Merge branch 'master' into issuer_strip

This commit is contained in:
Jakob Nixdorf 2020-06-10 06:31:01 +02:00 committed by GitHub
commit 759d4217bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
141 changed files with 2231 additions and 1132 deletions

View file

@ -1,5 +1,17 @@
# Changelog
#### v0.8.0
* Internal: Update Gradle and build tools
* Internal: Min API Level set to 22 (Lollipop 5.1)
* Internal: Refactoring and reducing build warnings
#### v0.7.1.1
* Bug fix: Fix migration of old tap-to-reveal setting
* Bug fix: Cache encryption key when recreating main activity
#### v0.7.1
* Deprecation notice: This will be the last version to support Android versions below 5.1
@ -15,9 +27,10 @@
* Improvement: Rewording of the last used dialog (Issue #485)
* Improvement: Handle the back key to close open drawers or the FAB overlay (Issue #499)
* Improvement: Validate secrets during manual entry (Issue #500)
* Thumbnails: Lots of new ones (thanks to all contributors)
* Bug fix: Fix some remaining issues with the intro dialog (Issue #486)
* Bug fix: Fix images containing gradients on API versions below 24 (Issue #539)
* Thumbnails: Lots of new ones (thanks to all contributors)
* Translations: Bulgarian (thanks to all the contributors on Crowdin)
#### v0.7.0

View file

@ -1,4 +1,4 @@
Copyright (C) 2017-2018 Jakob Nixdorf <andotp@shadowice.org>
Copyright (C) 2017-2020 Jakob Nixdorf <andotp@shadowice.org>
Copyright (C) 2015 Bruno Bierbaumer
Permission is hereby granted, free of charge, to any person obtaining a copy of

View file

@ -1,14 +1,14 @@
# 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.7.1-beta2/andOTP_v0.7.1-beta2.apk)
[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.7.1.1/andOTP_v0.7.1.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)
![andOTP](./assets/logo.png)
andOTP is a two-factor authentication App for Android 4.4+.
andOTP is a two-factor authentication App for Android 5.1+.
It implements Time-based One-time Passwords (TOTP) and HMAC-Based One-Time Passwords (HOTP).
Simply scan the QR code and login with the generated 6-digit code.
@ -152,7 +152,7 @@ If you want to show your appreciation for our work with a small donation you can
## License:
```
Copyright (C) 2017-2018 Jakob Nixdorf <andotp@shadowice.org>
Copyright (C) 2017-2020 Jakob Nixdorf <andotp@shadowice.org>
Copyright (C) 2015 Bruno Bierbaumer
Permission is hereby granted, free of charge, to any person obtaining a copy of

View file

@ -6,10 +6,10 @@ android {
defaultConfig {
applicationId "org.shadowice.flocke.andotp"
minSdkVersion 19
minSdkVersion 22
targetSdkVersion 29
versionCode 30
versionName "0.7.1-beta2"
versionCode 33
versionName "0.8.0-alpha1"
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
@ -22,13 +22,17 @@ android {
applicationIdSuffix = ".dev"
versionNameSuffix = "-dev"
testCoverageEnabled = true
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
lintOptions {
abortOnError false
}
dataBinding {
enabled = true
buildFeatures{
dataBinding = true
}
flavorDimensions 'market'
productFlavors {
@ -41,6 +45,10 @@ android {
}
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
@ -55,10 +63,11 @@ dependencies {
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-process:${lifecycle_version}"
implementation "androidx.lifecycle:lifecycle-common-java8:${lifecycle_version}"
implementation 'com.google.android.material:material:1.1.0'
//noinspection GradleDependency - because they messed up their version numbering
implementation "commons-codec:commons-codec:1.14"
implementation "com.github.aakira:expandable-layout:1.6.0"
implementation "com.heinrichreimersoftware:material-intro:2.0.0"
@ -70,4 +79,6 @@ dependencies {
implementation "com.mikepenz:aboutlibraries:6.2.3"
androidTestImplementation "androidx.test.espresso:espresso-core:3.2.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2015 Bruno Bierbaumer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy

View file

@ -6,9 +6,6 @@
android:installLocation="auto"
package="org.shadowice.flocke.andotp">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:backupAgent=".Utilities.BackupAgent"

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -22,20 +22,16 @@
package org.shadowice.flocke.andotp.Activities;
import android.Manifest;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.appcompat.widget.Toolbar;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@ -117,7 +113,7 @@ public class BackupActivity extends BaseActivity {
restorePlain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN, Constants.PERMISSIONS_BACKUP_READ_IMPORT_PLAIN);
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN);
}
});
@ -137,21 +133,21 @@ public class BackupActivity extends BaseActivity {
backupCrypt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveFileWithPermissions(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BackupType.ENCRYPTED, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT);
showSaveFileSelector(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BackupType.ENCRYPTED, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT);
}
});
restoreCrypt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT, Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT);
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT);
}
});
restoreCryptOld.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD, Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT_OLD);
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD);
}
});
@ -179,14 +175,14 @@ public class BackupActivity extends BaseActivity {
backupPGP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveFileWithPermissions(Constants.BACKUP_MIMETYPE_PGP, Constants.BackupType.OPEN_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PGP);
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PGP, Constants.BackupType.OPEN_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP);
}
});
restorePGP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP, Constants.PERMISSIONS_BACKUP_READ_IMPORT_PGP);
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP);
}
});
}
@ -241,56 +237,6 @@ public class BackupActivity extends BaseActivity {
pgpServiceConnection.unbindFromService();
}
// Get the result from permission requests
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_PLAIN) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BackupType.PLAIN_TEXT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT_OLD) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showSaveFileSelector(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BackupType.ENCRYPTED, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_PGP) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PGP) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PGP, Constants.BackupType.OPEN_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
// Get the result from external activities
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
@ -332,7 +278,6 @@ public class BackupActivity extends BaseActivity {
/* Generic functions for all backup/restore options */
private void showOpenFileSelector(int intentId) {
if (settings.getBackupAsk() || settings.getIsAppendingDateTimeToBackups()) {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
@ -352,16 +297,6 @@ public class BackupActivity extends BaseActivity {
Log.d(TAG, "Failed to use ACTION_GET_CONTENT, no matching activity found!");
Toast.makeText(this, R.string.backup_toast_file_selection_failed, Toast.LENGTH_LONG).show();
}
} else {
if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN)
doRestorePlain(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_PLAIN));
else if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT)
doRestoreCrypt(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_CRYPT), false);
else if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD)
doRestoreCrypt(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_CRYPT), true);
else if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP)
restoreEncryptedWithPGP(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_PGP), null);
}
}
private void showSaveFileSelector(String mimeType, Constants.BackupType backupType, int intentId) {
@ -372,32 +307,32 @@ public class BackupActivity extends BaseActivity {
intent.putExtra(Intent.EXTRA_TITLE, BackupHelper.backupFilename(this, backupType));
startActivityForResult(intent, intentId);
} else {
if (Tools.mkdir(settings.getBackupDir())) {
if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN)
doBackupPlain(Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(this, Constants.BackupType.PLAIN_TEXT)));
else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT)
doBackupCrypt(Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(this, Constants.BackupType.ENCRYPTED)));
else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP)
backupEncryptedWithPGP(Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(this, Constants.BackupType.OPEN_PGP)), null);
} else {
Toast.makeText(this, R.string.backup_toast_mkdir_failed, Toast.LENGTH_LONG).show();
}
}
}
if (settings.isBackupLocationSet()) {
if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN) {
BackupHelper.BackupFile plainBackupFile = BackupHelper.backupFile(this, settings.getBackupLocation(), Constants.BackupType.PLAIN_TEXT);
private void openFileWithPermissions(int intentId, int requestId) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
showOpenFileSelector(intentId);
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, requestId);
}
}
if (plainBackupFile.file != null)
doBackupPlain(plainBackupFile.file.getUri());
else
Toast.makeText(this, plainBackupFile.errorMessage, Toast.LENGTH_LONG).show();
} else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT) {
BackupHelper.BackupFile cryptBackupFile = BackupHelper.backupFile(this, settings.getBackupLocation(), Constants.BackupType.ENCRYPTED);
private void saveFileWithPermissions(String mimeType, Constants.BackupType backupType, int intentId, int requestId) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
showSaveFileSelector(mimeType, backupType, intentId);
if (cryptBackupFile.file != null)
doBackupCrypt(cryptBackupFile.file.getUri());
else
Toast.makeText(this, cryptBackupFile.errorMessage, Toast.LENGTH_LONG).show();
} else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP) {
BackupHelper.BackupFile pgpBackupFile = BackupHelper.backupFile(this, settings.getBackupLocation(), Constants.BackupType.OPEN_PGP);
if (pgpBackupFile.file != null)
backupEncryptedWithPGP(pgpBackupFile.file.getUri(), null);
else
Toast.makeText(this, pgpBackupFile.errorMessage, Toast.LENGTH_LONG).show();
}
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestId);
Toast.makeText(this, R.string.backup_toast_no_location, Toast.LENGTH_LONG).show();
}
}
}
@ -459,7 +394,7 @@ public class BackupActivity extends BaseActivity {
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
saveFileWithPermissions(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BackupType.PLAIN_TEXT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN);
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BackupType.PLAIN_TEXT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 Jakob Nixdorf
* Copyright (C) 2018-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -27,10 +27,6 @@ import android.animation.ObjectAnimator;
import android.app.KeyguardManager;
import android.graphics.Color;
import android.os.Bundle;
import androidx.annotation.NonNull;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import androidx.viewpager.widget.ViewPager;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
@ -47,8 +43,12 @@ import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import com.heinrichreimersoftware.materialintro.app.IntroActivity;
import com.heinrichreimersoftware.materialintro.app.OnNavigationBlockedListener;
import com.heinrichreimersoftware.materialintro.app.SlideFragment;
import com.heinrichreimersoftware.materialintro.slide.FragmentSlide;
import com.heinrichreimersoftware.materialintro.slide.SimpleSlide;
@ -87,12 +87,7 @@ public class IntroScreenActivity extends IntroActivity {
encryptionFragment = new EncryptionFragment();
authenticationFragment = new AuthenticationFragment();
encryptionFragment.setEncryptionChangedCallback(new EncryptionFragment.EncryptionChangedCallback() {
@Override
public void onEncryptionChanged(Constants.EncryptionType newEncryptionType) {
authenticationFragment.updateEncryptionType(newEncryptionType);
}
});
encryptionFragment.setEncryptionChangedCallback(newEncryptionType -> authenticationFragment.updateEncryptionType(newEncryptionType));
setButtonBackFunction(BUTTON_BACK_FUNCTION_BACK);
@ -132,12 +127,9 @@ public class IntroScreenActivity extends IntroActivity {
.build()
);
addOnNavigationBlockedListener(new OnNavigationBlockedListener() {
@Override
public void onNavigationBlocked(int position, int direction) {
addOnNavigationBlockedListener((position, direction) -> {
if (position == 2)
authenticationFragment.flashWarning();
}
});
addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@ -474,10 +466,7 @@ public class IntroScreenActivity extends IntroActivity {
} else if (authMethod == Constants.AuthMethod.DEVICE) {
KeyguardManager km = (KeyguardManager) getContext().getSystemService(KEYGUARD_SERVICE);
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {
updateWarning(R.string.settings_toast_auth_device_pre_lollipop);
return false;
} else if (! km.isKeyguardSecure()) {
if (! km.isKeyguardSecure()) {
updateWarning(R.string.settings_toast_auth_device_not_secure);
return false;
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2015 Bruno Bierbaumer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
@ -23,22 +23,17 @@
package org.shadowice.flocke.andotp.Activities;
import android.Manifest;
import android.animation.ObjectAnimator;
import android.app.AlertDialog;
import android.app.KeyguardManager;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.preference.PreferenceManager;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle;
@ -106,6 +101,9 @@ public class MainActivity extends BaseActivity
private EncryptionType encryptionType = EncryptionType.KEYSTORE;
private boolean requireAuthentication = false;
private boolean recreateActivity = false;
private boolean cacheEncKey = false;
private Handler handler;
private Runnable handlerTask;
@ -131,27 +129,12 @@ public class MainActivity extends BaseActivity
startActivityForResult(introIntent, Constants.INTENT_MAIN_INTRO);
}
private void showAndroid21DeprecationNotice() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.dialog_title_android21_depreaction)
.setMessage(R.string.dialog_msg_android21_deprecation)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
settings.setAndroid21DeprecationNoticeShown(true);
}
})
.setCancelable(false)
.create()
.show();
}
public void authenticate(int messageId) {
AuthMethod authMethod = settings.getAuthMethod();
if (authMethod == AuthMethod.DEVICE) {
KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP && km.isKeyguardSecure()) {
if (km.isKeyguardSecure()) {
Intent authIntent = km.createConfirmDeviceCredentialIntent(getString(R.string.dialog_title_auth), getString(R.string.dialog_msg_auth));
startActivityForResult(authIntent, Constants.INTENT_MAIN_AUTHENTICATE);
}
@ -222,10 +205,6 @@ public class MainActivity extends BaseActivity
showFirstTimeWarning();
}
if (!settings.getAndroid21DeprecationNoticeShown()) {
showAndroid21DeprecationNotice();
}
speedDial = findViewById(R.id.speedDial);
speedDial.inflate(R.menu.menu_fab);
@ -240,7 +219,7 @@ public class MainActivity extends BaseActivity
ManualEntryDialog.show(MainActivity.this, settings, adapter);
return false;
case R.id.fabScanQRFromImage:
openFileWithPermissions(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
showOpenFileSelector(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
return false;
default:
return false;
@ -260,6 +239,14 @@ public class MainActivity extends BaseActivity
tagsDrawerAdapter = new TagsAdapter(this, new HashMap<String, Boolean>());
adapter = new EntriesCardAdapter(this, tagsDrawerAdapter);
if (savedInstanceState != null) {
byte[] encKey = savedInstanceState.getByteArray("encKey");
if (encKey != null) {
adapter.setEncryptionKey(EncryptionHelper.generateSymmetricKey(encKey));
requireAuthentication = false;
}
}
recList.setAdapter(adapter);
touchHelperCallback = new SimpleItemTouchHelperCallback(adapter);
@ -325,7 +312,7 @@ public class MainActivity extends BaseActivity
if (intentAction.equals(INTENT_SCAN_QR)) {
scanQRCode();
} else if (intentAction.equals(INTENT_IMPORT_QR)) {
openFileWithPermissions(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
showOpenFileSelector(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
} else if (intentAction.equals(INTENT_ENTER_DETAILS)) {
ManualEntryDialog.show(MainActivity.this, settings, adapter);
} else if (intentAction.equals(Intent.ACTION_VIEW)) {
@ -412,6 +399,11 @@ public class MainActivity extends BaseActivity
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("filterString", filterString);
if (cacheEncKey) {
outState.putByteArray("encKey", adapter.getEncryptionKey().getEncoded());
cacheEncKey = false;
}
}
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
@ -431,7 +423,7 @@ public class MainActivity extends BaseActivity
key.equals(getString(R.string.settings_key_label_highlight_token)) ||
key.equals(getString(R.string.settings_key_card_layout)) ||
key.equals(getString(R.string.settings_key_hide_global_timeout))) {
recreate();
recreateActivity = true;
}
}
@ -462,15 +454,15 @@ public class MainActivity extends BaseActivity
if (encryptionChanged)
updateEncryption(newKey);
if (recreateActivity) {
cacheEncKey = true;
recreate();
}
} else if (requestCode == Constants.INTENT_MAIN_AUTHENTICATE) {
if (resultCode != RESULT_OK) {
Toast.makeText(getBaseContext(), R.string.toast_auth_failed_fatal, Toast.LENGTH_LONG).show();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
finishAndRemoveTask();
} else {
finish();
}
} else {
requireAuthentication = false;
@ -831,14 +823,6 @@ public class MainActivity extends BaseActivity
return true;
}
private void openFileWithPermissions(int intentId){
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
showOpenFileSelector(intentId);
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, Constants.PERMISSIONS_MAIN_QR_READ_IMAGE);
}
}
private void showOpenFileSelector(int intentId){
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
@ -846,19 +830,6 @@ public class MainActivity extends BaseActivity
startActivityForResult(intent, intentId);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == Constants.PERMISSIONS_MAIN_QR_READ_IMAGE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showOpenFileSelector(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
} else {
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
}
} else {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
private void addQRCode(String result){
if(!TextUtils.isEmpty(result)) {
try {

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2017 Carlos Melero
*
* Permission is hereby granted, free of charge, to any person obtaining a copy

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -27,6 +27,8 @@ import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
@ -36,6 +38,8 @@ import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import androidx.appcompat.widget.Toolbar;
import android.provider.DocumentsContract;
import android.view.ViewStub;
import android.widget.Toast;
@ -85,6 +89,15 @@ public class SettingsActivity extends BaseActivity
if (keyMaterial != null && keyMaterial.length > 0)
encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial);
if (savedInstanceState != null) {
encryptionChanged = savedInstanceState.getBoolean(Constants.EXTRA_SETTINGS_ENCRYPTION_CHANGED, false);
byte[] encKey = savedInstanceState.getByteArray(Constants.EXTRA_SETTINGS_ENCRYPTION_KEY);
if (encKey != null) {
encryptionKey = EncryptionHelper.generateSymmetricKey(encKey);
}
}
fragment = new SettingsFragment();
getFragmentManager().beginTransaction()
@ -95,6 +108,14 @@ public class SettingsActivity extends BaseActivity
sharedPref.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(Constants.EXTRA_SETTINGS_ENCRYPTION_CHANGED, encryptionChanged);
outState.putByteArray(Constants.EXTRA_SETTINGS_ENCRYPTION_KEY, encryptionKey.getEncoded());
}
public void finishWithResult() {
Intent data = new Intent();
@ -124,7 +145,8 @@ public class SettingsActivity extends BaseActivity
if (key.equals(getString(R.string.settings_key_theme)) ||
key.equals(getString(R.string.settings_key_locale)) ||
key.equals(getString(R.string.settings_key_special_features))) {
key.equals(getString(R.string.settings_key_special_features)) ||
key.equals(getString(R.string.settings_key_backup_location))) {
recreate();
} else if(key.equals(getString(R.string.settings_key_encryption))) {
if (settings.getEncryption() != EncryptionType.PASSWORD) {
@ -215,6 +237,19 @@ public class SettingsActivity extends BaseActivity
return false;
}
private void requestBackupAccess() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION
| Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
| Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && settings.isBackupLocationSet())
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, settings.getBackupLocation());
startActivityForResult(intent, Constants.INTENT_SETTINGS_BACKUP_LOCATION);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@ -233,6 +268,13 @@ public class SettingsActivity extends BaseActivity
} else {
Toast.makeText(this, R.string.settings_toast_encryption_auth_failed, Toast.LENGTH_LONG).show();
}
} else if (requestCode == Constants.INTENT_SETTINGS_BACKUP_LOCATION && resultCode == RESULT_OK) {
Uri treeUri = data.getData();
if (treeUri != null) {
final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
getContentResolver().takePersistableUriPermission(treeUri, takeFlags);
settings.setBackupLocation(treeUri);
}
} else if (fragment.pgpSigningKey.handleOnActivityResult(requestCode, resultCode, data)) {
// handled by OpenPgpKeyPreference
return;
@ -244,6 +286,7 @@ public class SettingsActivity extends BaseActivity
Settings settings;
ListPreference encryption;
Preference backupLocation;
ListPreference useAutoBackup;
CheckBoxPreference useAndroidSync;
@ -325,6 +368,23 @@ public class SettingsActivity extends BaseActivity
}
});
// Backup location
backupLocation = findPreference(getString(R.string.settings_key_backup_location));
if (settings.isBackupLocationSet()) {
backupLocation.setSummary(R.string.settings_desc_backup_location_set);
} else {
backupLocation.setSummary(R.string.settings_desc_backup_location);
}
backupLocation.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
((SettingsActivity) getActivity()).requestBackupAccess();
return true;
}
});
// OpenPGP
pgpProvider = (OpenPgpAppPreference) findPreference(getString(R.string.settings_key_openpgp_provider));
pgpEncryptionKey = (EditTextPreference) findPreference(getString(R.string.settings_key_openpgp_key_encrypt));

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2015 Bruno Bierbaumer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
@ -235,7 +235,7 @@ public class Entry {
}
try {
this.thumbnail = EntryThumbnail.EntryThumbnails.valueOf(jsonObj.getString(JSON_THUMBNAIL));
this.thumbnail = EntryThumbnail.EntryThumbnails.valueOfIgnoreCase(jsonObj.getString(JSON_THUMBNAIL));
} catch(Exception e) {
this.thumbnail = EntryThumbnail.EntryThumbnails.Default;
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -278,27 +278,36 @@ public class ManualEntryDialog {
public void afterTextChanged(Editable editable) {
if ((TextUtils.isEmpty(labelInput.getText()) && TextUtils.isEmpty(issuerInput.getText())) ||
(TextUtils.isEmpty(secretInput.getText()) && isNewEntry) ||
TextUtils.isEmpty(digitsInput.getText()) ||
Integer.parseInt(digitsInput.getText().toString()) == 0) {
!isNonZeroIntegerInput(digitsInput)) {
positiveButton.setEnabled(false);
} else {
Entry.OTPType type = (Entry.OTPType) typeInput.getSelectedItem();
if (type == Entry.OTPType.HOTP) {
if (TextUtils.isEmpty(counterInput.getText())) {
positiveButton.setEnabled(false);
} else {
positiveButton.setEnabled(true);
}
positiveButton.setEnabled(isZeroOrPositiveLongInput(counterInput));
} else if (type == Entry.OTPType.TOTP || type == Entry.OTPType.STEAM) {
if (TextUtils.isEmpty(periodInput.getText()) || Integer.parseInt(periodInput.getText().toString()) == 0) {
positiveButton.setEnabled(false);
positiveButton.setEnabled(isNonZeroIntegerInput(periodInput));
} else {
positiveButton.setEnabled(true);
}
} else {
positiveButton.setEnabled(true);
}
}
private boolean isNonZeroIntegerInput(EditText editText) {
try {
Editable text = editText.getText();
return !TextUtils.isEmpty(text) && (Integer.parseInt(text.toString()) != 0);
} catch (NumberFormatException e) {
return false;
}
}
private boolean isZeroOrPositiveLongInput(EditText editText) {
try {
Editable text = editText.getText();
return !TextUtils.isEmpty(text) && (Long.parseLong(text.toString()) >= 0);
} catch (NumberFormatException e) {
return false;
}
}
};

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2018 RichyHBM
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2017-2020 Richy HBM
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -26,8 +26,6 @@ import android.app.AlertDialog;
import android.app.KeyguardManager;
import android.content.Context;
import android.preference.DialogPreference;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
@ -43,6 +41,9 @@ import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import org.shadowice.flocke.andotp.R;
import org.shadowice.flocke.andotp.Utilities.Constants;
import org.shadowice.flocke.andotp.Utilities.Settings;
@ -174,10 +175,7 @@ public class CredentialsPreference extends DialogPreference
if (value == AuthMethod.DEVICE) {
KeyguardManager km = (KeyguardManager) getContext().getSystemService(KEYGUARD_SERVICE);
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {
Toast.makeText(getContext(), R.string.settings_toast_auth_device_pre_lollipop, Toast.LENGTH_LONG).show();
return;
} else if (! km.isKeyguardSecure()) {
if (! km.isKeyguardSecure()) {
Toast.makeText(getContext(), R.string.settings_toast_auth_device_not_secure, Toast.LENGTH_LONG).show();
return;
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -23,37 +23,15 @@
package org.shadowice.flocke.andotp.Receivers;
import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.pm.PackageManager;
import androidx.core.content.ContextCompat;
import org.shadowice.flocke.andotp.R;
import org.shadowice.flocke.andotp.Utilities.Constants;
import org.shadowice.flocke.andotp.Utilities.NotificationHelper;
import org.shadowice.flocke.andotp.Utilities.Settings;
import java.io.File;
public abstract class BackupBroadcastReceiver extends BroadcastReceiver {
protected boolean canSaveBackup(Context context) {
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_receiver_read_permission_failed);
return false;
}
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_receiver_write_permission_failed);
return false;
}
Settings settings = new Settings(context);
File backupDir = new File(settings.getBackupDir());
if(!backupDir.exists())
backupDir.mkdirs();
return true;
return settings.isBackupLocationSet();
}
}

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2018 Jakob Nixdorf
* Copyright (C) 2018 Richy HBM
* Copyright (C) 2018-2020 Jakob Nixdorf
* Copyright (C) 2018-2020 Richy HBM
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -25,7 +25,6 @@ package org.shadowice.flocke.andotp.Receivers;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import org.shadowice.flocke.andotp.Database.Entry;
import org.shadowice.flocke.andotp.R;
@ -56,8 +55,6 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
if (!canSaveBackup(context))
return;
Uri savePath = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED));
String password = settings.getBackupPasswordEnc();
if (password.isEmpty()) {
@ -65,7 +62,7 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
return;
}
SecretKey encryptionKey = null;
SecretKey encryptionKey;
if (settings.getEncryption() == Constants.EncryptionType.KEYSTORE) {
encryptionKey = KeyStoreHelper.loadEncryptionKeyFromKeyStore(context, false);
@ -75,6 +72,13 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
}
if (Tools.isExternalStorageWritable()) {
BackupHelper.BackupFile cryptBackupFile = BackupHelper.backupFile(context, settings.getBackupLocation(), Constants.BackupType.ENCRYPTED);
if (cryptBackupFile.file == null) {
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, cryptBackupFile.errorMessage);
return;
}
ArrayList<Entry> entries = DatabaseHelper.loadDatabase(context, encryptionKey);
String plain = DatabaseHelper.entriesToString(entries);
@ -92,9 +96,9 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
System.arraycopy(salt, 0, data, Constants.INT_LENGTH, Constants.ENCRYPTION_IV_LENGTH);
System.arraycopy(encrypted, 0, data, Constants.INT_LENGTH + Constants.ENCRYPTION_IV_LENGTH, encrypted.length);
StorageAccessHelper.saveFile(context, savePath, data);
StorageAccessHelper.saveFile(context, cryptBackupFile.file.getUri(), data);
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, savePath.getPath());
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, cryptBackupFile.file.getName());
} catch (Exception e) {
e.printStackTrace();
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_toast_export_failed);

View file

@ -25,7 +25,6 @@ package org.shadowice.flocke.andotp.Receivers;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import org.shadowice.flocke.andotp.Database.Entry;
import org.shadowice.flocke.andotp.R;
@ -53,8 +52,6 @@ public class PlainTextBackupBroadcastReceiver extends BackupBroadcastReceiver {
if (!canSaveBackup(context))
return;
Uri savePath = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.PLAIN_TEXT));
SecretKey encryptionKey = null;
if (settings.getEncryption() == Constants.EncryptionType.KEYSTORE) {
@ -65,10 +62,17 @@ public class PlainTextBackupBroadcastReceiver extends BackupBroadcastReceiver {
}
if (Tools.isExternalStorageWritable()) {
BackupHelper.BackupFile backupFile = BackupHelper.backupFile(context, settings.getBackupLocation(), Constants.BackupType.PLAIN_TEXT);
if (backupFile.file == null) {
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, backupFile.errorMessage);
return;
}
ArrayList<Entry> entries = DatabaseHelper.loadDatabase(context, encryptionKey);
if (StorageAccessHelper.saveFile(context, savePath, DatabaseHelper.entriesToString(entries))) {
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, savePath.getPath());
if (StorageAccessHelper.saveFile(context, backupFile.file.getUri(), DatabaseHelper.entriesToString(entries))) {
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, backupFile.file.getName());
} else {
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_toast_export_failed);
}

View file

@ -1,12 +1,12 @@
package org.shadowice.flocke.andotp.Utilities;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.Uri;
import androidx.core.content.ContextCompat;
import androidx.documentfile.provider.DocumentFile;
import org.shadowice.flocke.andotp.Database.Entry;
import org.shadowice.flocke.andotp.R;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
@ -15,6 +15,52 @@ import java.util.ArrayList;
import javax.crypto.SecretKey;
public class BackupHelper {
public static class BackupFile {
public DocumentFile file = null;
public int errorMessage;
}
private static String backupMimeType(Constants.BackupType type) {
String mimeType = Constants.BACKUP_MIMETYPE_PLAIN;
switch(type) {
case PLAIN_TEXT:
mimeType = Constants.BACKUP_MIMETYPE_PLAIN;
break;
case ENCRYPTED:
mimeType = Constants.BACKUP_MIMETYPE_CRYPT;
break;
case OPEN_PGP:
mimeType = Constants.BACKUP_MIMETYPE_PGP;
break;
}
return mimeType;
}
public static BackupFile backupFile(Context context, Uri backupLocationUri, Constants.BackupType type) {
BackupFile backupFile = new BackupFile();
DocumentFile backupLocation = DocumentFile.fromTreeUri(context, backupLocationUri);
if (backupLocation != null) {
// Try to find an existing file to overwrite
backupFile.file = backupLocation.findFile(BackupHelper.backupFilename(context, type));
// Try to create a new file
if (backupFile.file == null) {
backupFile.file = backupLocation.createFile(backupMimeType(type), BackupHelper.backupFilename(context, type));
}
// Both failed
if (backupFile.file == null)
backupFile.errorMessage = R.string.backup_toast_file_creation_failed;
} else {
backupFile.errorMessage = R.string.backup_toast_location_access_failed;
}
return backupFile;
}
public static String backupFilename(Context context, Constants.BackupType type) {
Settings settings = new Settings(context);
switch (type) {
@ -43,11 +89,8 @@ public class BackupHelper {
public static Constants.BackupType autoBackupType(Context context) {
Settings settings = new Settings(context);
if(ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
return Constants.BackupType.UNAVAILABLE;
}
if(!Tools.mkdir(settings.getBackupDir())) {
if(!settings.isBackupLocationSet()) {
return Constants.BackupType.UNAVAILABLE;
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -86,16 +86,7 @@ public class Constants {
public final static int INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD = 208;
public static final int INTENT_SETTINGS_AUTHENTICATE = 300;
// Permission requests (Format: A1x with A = parent Activity, x = number of the request)
public final static int PERMISSIONS_MAIN_QR_READ_IMAGE = 111;
public final static int PERMISSIONS_BACKUP_READ_IMPORT_PLAIN = 210;
public final static int PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN = 211;
public final static int PERMISSIONS_BACKUP_READ_IMPORT_CRYPT = 212;
public final static int PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT = 213;
public final static int PERMISSIONS_BACKUP_READ_IMPORT_PGP = 214;
public final static int PERMISSIONS_BACKUP_WRITE_EXPORT_PGP = 215;
public final static int PERMISSIONS_BACKUP_READ_IMPORT_CRYPT_OLD = 216;
public static final int INTENT_SETTINGS_BACKUP_LOCATION = 301;
// Intent extras
public final static String EXTRA_AUTH_PASSWORD_KEY = "password_key";

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2015 Bruno Bierbaumer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2018 Richy HBM
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2017-2020 Richy HBM
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2015 Bruno Bierbaumer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2018 Richy HBM
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2017-2020 Richy HBM
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -168,6 +168,7 @@ public class EntryThumbnail {
Lobsters(R.drawable.thumb_lobsters),
LocalBitcoins(R.drawable.thumb_localbitcoins),
LocalMonero(R.drawable.thumb_localmonero),
LoginGov(R.drawable.thumb_login_gov),
LogMeIn(R.drawable.thumb_logmein),
Mailbox(R.drawable.thumb_mailbox),
Mailchimp(R.drawable.thumb_mailchimp),
@ -182,6 +183,7 @@ public class EntryThumbnail {
Microsoft(R.drawable.thumb_microsoft),
MicrosoftTeams(R.drawable.thumb_microsoft_teams),
Migadu(R.drawable.thumb_migadu),
Mint(R.drawable.thumb_mint),
Miraheze(R.drawable.thumb_miraheze),
Mixer(R.drawable.thumb_mixer),
MongoDB(R.drawable.thumb_mongodb),
@ -216,6 +218,7 @@ public class EntryThumbnail {
Plurk(R.drawable.thumb_plurk),
Posteo(R.drawable.thumb_posteo),
Pretix(R.drawable.thumb_pretix),
Prey(R.drawable.thumb_prey),
PrivateInternetAccess(R.drawable.thumb_private_internet_access),
ProtonMail(R.drawable.thumb_protonmail),
Proxmox(R.drawable.thumb_proxmox),
@ -264,6 +267,7 @@ public class EntryThumbnail {
Ubisoft(R.drawable.thumb_ubisoft),
UbuntuOne(R.drawable.thumb_ubuntu_one),
Uphold(R.drawable.thumb_uphold),
USAA(R.drawable.thumb_usaa),
VagrantCloud(R.drawable.thumb_vagrant_cloud),
VEXXHOST(R.drawable.thumb_vexxhost),
VK(R.drawable.thumb_vk),
@ -272,6 +276,7 @@ public class EntryThumbnail {
Wallet(R.drawable.thumb_wallet),
Wargaming(R.drawable.thumb_wargaming),
Wasabi(R.drawable.thumb_wasabi),
Weclapp(R.drawable.thumb_weclapp),
WebDe(R.drawable.thumb_web_de),
Wikimedia(R.drawable.thumb_wikimedia),
Wordpress(R.drawable.thumb_wordpress),

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2018 Richy HBM
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2017-2020 Richy HBM
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -24,6 +24,7 @@ package org.shadowice.flocke.andotp.Utilities;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
import android.util.Base64;
@ -57,17 +58,9 @@ public class Settings {
this.context = context;
this.settings = PreferenceManager.getDefaultSharedPreferences(context);
setupDeviceDependedDefaults();
migrateDeprecatedSettings();
}
private void setupDeviceDependedDefaults() {
if (! settings.contains(getResString(R.string.settings_key_backup_directory))
|| settings.getString(getResString(R.string.settings_key_backup_directory), "").isEmpty()) {
setString(R.string.settings_key_backup_directory, Constants.BACKUP_FOLDER);
}
}
private void migrateDeprecatedSettings() {
if (settings.contains(getResString(R.string.settings_key_auth_password))) {
setAuthCredentials(getString(R.string.settings_key_auth_password, ""));
@ -89,7 +82,9 @@ public class Settings {
}
if (settings.contains(getResString(R.string.settings_key_tap_to_reveal))) {
if (getBoolean(R.string.settings_key_tap_to_reveal, false)) {
setString(R.string.settings_key_tap_single, Constants.TapMode.REVEAL.toString().toLowerCase(Locale.ENGLISH));
}
remove(R.string.settings_key_tap_to_reveal);
}
@ -376,14 +371,6 @@ public class Settings {
setBoolean(R.string.settings_key_security_backup_warning, value);
}
public boolean getAndroid21DeprecationNoticeShown() {
return getBoolean(R.string.settings_key_android21_deprecation_notice_shown, false);
}
public void setAndroid21DeprecationNoticeShown(boolean value) {
setBoolean(R.string.settings_key_android21_deprecation_notice_shown, value);
}
public boolean getSpecialFeatures() {
return getBoolean(R.string.settings_key_special_features, false);
}
@ -561,7 +548,7 @@ public class Settings {
}
public boolean getIsAppendingDateTimeToBackups() {
return getBoolean(R.string.settings_key_backup_append_date_time, false);
return getBoolean(R.string.settings_key_backup_append_date_time, true);
}
public int getAuthInactivityDelay() {
@ -610,4 +597,16 @@ public class Settings {
String doubleTap = getString(R.string.settings_key_tap_double, R.string.settings_default_tap_double);
return Constants.TapMode.valueOf(doubleTap.toUpperCase(Locale.ENGLISH));
}
public void setBackupLocation(Uri uri) {
setString(R.string.settings_key_backup_location, uri.toString());
}
public Uri getBackupLocation() {
return Uri.parse(getString(R.string.settings_key_backup_location, ""));
}
public boolean isBackupLocationSet() {
return !getString(R.string.settings_key_backup_location, "").isEmpty();
}
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2015 Bruno Bierbaumer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -34,6 +34,7 @@ import androidx.appcompat.widget.PopupMenu;
import androidx.recyclerview.widget.RecyclerView;
import android.text.Editable;
import android.text.InputType;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.MenuInflater;
@ -41,6 +42,7 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Filter;
import android.widget.Filterable;
@ -173,17 +175,21 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
if(auto_backup) {
Constants.BackupType backupType = BackupHelper.autoBackupType(context);
if (backupType == Constants.BackupType.ENCRYPTED) {
Uri backupFilename = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED));
BackupHelper.BackupFile cryptBackupFile = BackupHelper.backupFile(context, settings.getBackupLocation(), Constants.BackupType.ENCRYPTED);
if (cryptBackupFile.file != null) {
byte[] keyMaterial = encryptionKey.getEncoded();
SecretKey encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial);
boolean success = BackupHelper.backupToFile(context, backupFilename, settings.getBackupPasswordEnc(), encryptionKey);
boolean success = BackupHelper.backupToFile(context, cryptBackupFile.file.getUri(), settings.getBackupPasswordEnc(), encryptionKey);
if (success) {
Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(context, cryptBackupFile.errorMessage, Toast.LENGTH_LONG).show();
}
}
}
}
@ -434,7 +440,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
container.setPaddingRelative(marginMedium, marginSmall, marginMedium, 0);
container.addView(input);
builder.setTitle(R.string.dialog_title_counter)
AlertDialog dialog = builder.setTitle(R.string.dialog_title_counter)
.setView(container)
.setPositiveButton(R.string.button_save, new DialogInterface.OnClickListener() {
@Override
@ -455,8 +461,38 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
@Override
public void onClick(DialogInterface dialogInterface, int i) {}
})
.create()
.show();
.create();
addCounterValidationWatcher(input, dialog);
dialog.show();
}
private void addCounterValidationWatcher(EditText input, AlertDialog dialog) {
TextWatcher counterWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable input) {
Button positive = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
if (positive != null) {
positive.setEnabled(isZeroOrPositiveLongInput(input));
}
}
private boolean isZeroOrPositiveLongInput(Editable input) {
try {
return !TextUtils.isEmpty(input) && (Long.parseLong(input.toString()) >= 0);
} catch (NumberFormatException e) {
return false;
}
}
};
input.addTextChangedListener(counterWatcher);
}
private boolean updateLastUsedAndFrequency(int position, int realIndex) {
@ -471,7 +507,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
entries.get(realIndex).setLastUsed(timeStamp);
entries.get(realIndex).setUsedFrequency(entryUsedFrequency + 1);
saveEntries(settings.getAutoBackupEncryptedFullEnabled());
saveEntries(false);
if (sortMode == SortMode.LAST_USED) {
displayedEntries = sortEntries(displayedEntries);
@ -494,7 +530,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
displayedEntries = new ArrayList<>(entries);
notifyItemMoved(fromPosition, toPosition);
saveEntries(settings.getAutoBackupEncryptedFullEnabled());
saveEntries(false);
}
return true;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2020 Jakob Nixdorf
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2018 RichyHBM
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2017-2020 Richy HBM
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2017-2018 Jakob Nixdorf
* Copyright (C) 2017-2018 Richy HBM
* Copyright (C) 2017-2020 Jakob Nixdorf
* Copyright (C) 2017-2020 Richy HBM
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View file

@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="33.07dp"
android:height="41.95dp"
android:viewportWidth="33.07"
android:viewportHeight="41.95">
<group>
<clip-path android:pathData="M-1.31,-0.78h34.38v42.74h-34.38z" />
<path
android:fillColor="#b51e23"
android:pathData="M28.43,0L16.52,0v42c11.3,-5 15.25,-11.48 16.25,-13.5 0.18,-0.38 0.28,-0.81 0.28,-1.24L33.05,4.62C33.05,3.39 32.56,2.21 31.69,1.35 30.83,0.48 29.65,0 28.43,0Z" />
<path
android:fillColor="#e21d3e"
android:pathData="M4.62,0C2.06,0 0.00,2.06 0.00,4.62v22.64c-0.00,0.42 0.09,0.85 0.28,1.24 1,2 5,8.53 16.24,13.5L16.52,0Z" />
<path
android:fillColor="#ffffff"
android:pathData="m19.45,18.1c1.57,-1.23 2.18,-3.33 1.53,-5.22C20.32,10.99 18.54,9.72 16.55,9.72c-1.99,0 -3.77,1.26 -4.43,3.15C11.46,14.76 12.07,16.86 13.65,18.1c-0.52,2.94 -1.03,5.88 -1.54,8.82 1.45,0.25 2.93,0.37 4.41,0.38 1.49,0.02 2.99,-0.07 4.48,-0.3 -0.52,-3 -1,-5.94 -1.55,-8.9z" />
</group>
</vector>

View file

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="98.23dp"
android:height="98.19dp"
android:viewportWidth="98.23"
android:viewportHeight="98.19">
<path
android:fillColor="#1a9ea1"
android:pathData="M49.09,49.09m-49.09,0a49.09,49.09 0,1 1,98.19 0a49.09,49.09 0,1 1,-98.19 0" />
<path
android:fillColor="#ffffff"
android:pathData="m49.09,13.50c-3.06,3.06 -25.16,26.39 -25.16,44.18 0,12.88 9.81,16.56 25.16,27.00C64.43,74.25 74.25,69.96 74.25,57.68 74.25,39.89 52.16,16.57 49.09,13.50ZM48.48,75.48 L46.02,73.64C33.75,66.28 30.68,63.82 30.68,57.68c0,-9.81 9.81,-23.93 17.79,-33.13z" />
</vector>

View file

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="125.92dp"
android:height="118.61dp"
android:viewportWidth="125.92"
android:viewportHeight="118.61">
<path
android:pathData="M62.96,0 L43.08,11.48 56.33,19.13 62.95,15.30l6.64,3.82 13.25,-7.65z"
android:fillColor="#1f2938"/>
<path
android:pathData="m62.97,118.61 l49.70,-28.69 -0.00,-30.61 -13.26,7.65 0.00,15.30 -36.45,21.04 -36.45,-21.05 -0.00,-15.30 -13.25,-7.65v30.60z"
android:fillColor="#1f2938"/>
<path
android:pathData="m119.29,24.86v0.01l0.00,15.29 -46.39,26.79 13.24,7.65L62.96,88.00 39.77,74.61 53.02,66.96 6.62,40.17 6.63,24.88 0,21.05L0,1.92l56.33,32.51 6.63,-3.82 6.61,3.82 56.34,-32.52v19.12z"
android:fillColor="#1f2938"/>
</vector>

View file

@ -0,0 +1,45 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="54.76dp"
android:height="62.26dp"
android:viewportWidth="14.49"
android:viewportHeight="16.47">
<group>
<clip-path android:pathData="M-3.03,-1.97h17.52v21.60h-17.52z" />
<path
android:fillColor="#1a3258"
android:pathData="m15.43,11.91c-0.49,-0 -0.90,0.37 -0.90,0.83 0,0.46 0.40,0.83 0.90,0.83 0.49,-0 0.90,-0.37 0.90,-0.83C16.33,12.29 15.92,11.91 15.43,11.91ZM15.43,13.44c-0.40,-0 -0.74,-0.30 -0.74,-0.68 0,-0.37 0.33,-0.68 0.74,-0.68 0.41,-0 0.74,0.30 0.74,0.68 0,0.37 -0.33,0.68 -0.74,0.68" />
<path
android:fillColor="#1a3258"
android:pathData="m0.04,12.02c0,-0 0,2.67 0,2.69 0,1.50 0.93,1.75 1.72,1.75 1.15,-0 1.69,-0.75 1.69,-1.76L3.46,12.02L2.69,12.02l0,2.77c0,0.34 -0.11,1.00 -0.92,0.98 -0.73,-0.01 -0.87,-0.67 -0.87,-1.10L0.89,12.02L0.04,12.02" />
<path
android:fillColor="#1a3258"
android:pathData="m6.67,12.20c0,-0 -0.49,-0.23 -1.04,-0.23 -0.69,-0 -1.56,0.34 -1.56,1.30 0,0.66 0.49,0.97 0.83,1.13 0.17,0.08 0.39,0.18 0.57,0.27 0.09,0.04 0.46,0.17 0.46,0.56 0,0.41 -0.46,0.56 -0.67,0.56 -0.74,-0 -1.25,-0.33 -1.25,-0.33l0.07,0.84c0,-0 0.30,0.15 1.22,0.15 0.87,-0.00 1.50,-0.55 1.50,-1.31 0,-0.58 -0.40,-0.92 -0.75,-1.09 -0.27,-0.13 -0.43,-0.20 -0.66,-0.31 -0.23,-0.10 -0.48,-0.29 -0.48,-0.59 0,-0.31 0.29,-0.54 0.72,-0.54 0.63,-0 0.89,0.28 1.04,0.36L6.67,12.20" />
<path
android:fillColor="#1a3258"
android:pathData="M12.91,12.01L11.99,12.01L12.14,12.38 10.71,16.12 9.23,12.01l-0.92,-0l0.14,0.36 -1.52,3.99l0.83,-0l0.26,-0.76l1.57,-0l0.26,0.76l1.57,-0l0.26,-0.76l1.57,-0l0.26,0.76l0.92,-0zM8.24,15.02 L8.85,13.31 9.40,15.02zM11.92,15.02 L12.53,13.31 13.08,15.02l-1.15,-0" />
<path
android:fillColor="#1a3258"
android:pathData="m15.60,12.77c0,-0 0.18,-0.06 0.18,-0.22 0,-0.16 -0.16,-0.25 -0.36,-0.25 -0.20,-0 -0.32,0.04 -0.32,0.04l0,0.80l0.23,-0l0,-0.29L15.41,12.85L15.66,13.14L15.96,13.14ZM15.44,12.71l-0.11,-0l0,-0.26c-0.00,-0 0.19,-0.01 0.19,0.11 0,0.13 -0.08,0.15 -0.08,0.15" />
<path
android:fillColor="#1a3258"
android:pathData="m0,7.12 l0.03,1.36c0,-0 0.34,-0.24 0.72,-0.24 0.38,-0 0.81,0.26 0.81,0.26l3.41,1.95 0.28,-1.22 -3.70,-2.12c0,-0 -0.42,-0.26 -0.81,-0.26C0.37,6.84 0,7.12 0,7.12" />
<path
android:fillColor="#1a3258"
android:pathData="m0,5.34 l0.03,1.36c0,-0 0.34,-0.24 0.72,-0.24 0.38,-0 0.81,0.26 0.81,0.26L5.35,8.89 5.64,7.66 1.57,5.33c0,-0 -0.42,-0.26 -0.81,-0.26C0.37,5.06 0,5.34 0,5.34" />
<path
android:fillColor="#1a3258"
android:pathData="m0,3.56 l0.03,1.36c0,-0 0.34,-0.24 0.72,-0.24 0.38,-0 0.81,0.26 0.81,0.26L5.72,7.32 6.01,6.09 1.57,3.55c0,-0 -0.42,-0.26 -0.81,-0.26C0.37,3.28 0,3.56 0,3.56" />
<path
android:fillColor="#1a3258"
android:pathData="M7.11,1.39 L7.49,3.00 12.69,5.98c0,-0 0.40,0.26 0.81,0.26 0.40,-0 0.76,-0.28 0.76,-0.28l-0.03,-1.36c0,-0 -0.32,0.24 -0.72,0.24 -0.39,-0 -0.81,-0.26 -0.81,-0.26L8.66,2.28 8.39,1.24c0,-0.04 0.03,-0.06 0.05,-0.06L9.12,0.97c0.09,-0 0.14,0.07 0.14,0.14L9.30,1.18C9.33,1.19 9.43,1.15 9.44,1.14l0,-0.40c0.00,-0.27 -0.21,-0.51 -0.51,-0.51 -0.19,-0 -0.68,-0 -0.68,-0 0,-0 -0.09,-0.22 -0.38,-0.22 -0.20,-0 -0.95,-0 -1.29,-0 -0.34,-0 -0.42,0.31 -0.42,0.31L5.24,3.87 1.57,1.77c0,-0 -0.39,-0.26 -0.81,-0.26 -0.41,-0 -0.76,0.27 -0.76,0.27l0.03,1.36c0,-0 0.30,-0.24 0.72,-0.24 0.41,-0 0.81,0.26 0.81,0.26L6.08,5.75 7.11,1.39" />
<path
android:fillColor="#1a3258"
android:pathData="M7.59,3.44 L7.97,5.05 12.69,7.76c0,-0 0.42,0.26 0.81,0.26 0.38,-0 0.76,-0.28 0.76,-0.28l-0.03,-1.36c0,-0 -0.30,0.24 -0.72,0.24 -0.42,-0 -0.81,-0.26 -0.81,-0.26L7.59,3.44" />
<path
android:fillColor="#1a3258"
android:pathData="M8.07,5.50 L8.45,7.11 12.69,9.54c0,-0 0.42,0.26 0.81,0.26 0.38,-0 0.76,-0.28 0.76,-0.28l-0.03,-1.36c0,-0 -0.30,0.24 -0.72,0.24 -0.42,-0 -0.81,-0.26 -0.81,-0.26L8.07,5.50" />
<path
android:fillColor="#1a3258"
android:pathData="M8.56,7.56 L8.94,9.17 12.69,11.32c0,-0 0.42,0.26 0.81,0.26 0.38,-0 0.76,-0.28 0.76,-0.28l-0.03,-1.36c0,-0 -0.30,0.24 -0.72,0.24 -0.42,-0 -0.81,-0.26 -0.81,-0.26L8.56,7.56" />
</group>
</vector>

View file

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="127.99999dp"
android:height="107.61286dp"
android:viewportWidth="127.99999"
android:viewportHeight="107.61286">
<path
android:fillColor="#43b183"
android:pathData="m35.25,11.148 l-9.216,61.661c-1.508,9.507 -15.384,9.295 -16.582,-0L0.235,11.148c-1.273,-5.688 2.787,-11.148 8.291,-11.148L26.959,0C32.463,0 36.523,5.46 35.25,11.148" />
<path
android:fillColor="#43b183"
android:pathData="m127.765,11.148 l-9.217,61.661c-1.508,9.507 -15.384,9.295 -16.581,-0L92.75,11.148c-1.273,-5.688 2.787,-11.148 8.291,-11.148L119.474,0C124.978,0 129.038,5.46 127.765,11.148" />
<path
android:fillColor="#43b183"
android:pathData="m46.493,96.465 l9.217,-61.661c1.508,-9.507 15.384,-9.295 16.581,-0L81.507,96.465c1.274,5.688 -2.787,11.148 -8.291,11.148L54.783,107.613C49.28,107.613 45.219,102.153 46.493,96.465" />
</vector>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">تسمية</string>
<string name="menu_sort_last_used">آخر استخدام</string>
<string name="menu_sort_most_used">الأكثر استخداما</string>
<string name="menu_popup_edit_issuer">تعديل المصدر</string>
<string name="menu_popup_edit_label">تعديل التسمية</string>
<string name="menu_popup_edit">Edit</string>
<string name="menu_popup_change_image">تغيير الصورة</string>
<string name="menu_popup_edit_tags">تعديل العلامات</string>
<string name="menu_popup_remove">حذف</string>
<string name="menu_popup_show_qr_code">Show QR Code</string>
<!-- Toast messages -->
<string name="toast_auth_failed">أخفقت المصادقة، الرجاء إعادة المحاولة !</string>
<string name="toast_auth_failed_fatal">أخفقت عملية المصادقة، جارٍ إغلاق التطبيق!</string>
@ -59,26 +58,36 @@
<string name="toast_qr_error">تعذر العثور على/تأكيد رمز كيو آر</string>
<string name="toast_qr_checksum_exception">Checksum verification failed while decoding QR code</string>
<string name="toast_qr_format_error">نسق خاطئ في رمز الكيو آر</string>
<string name="toast_qr_unsuported">QR Code not supported</string>
<string name="toast_qr_failed_to_generate">Failed to generate QR Code</string>
<!-- Errors -->
<string name="error_invalid_secret">Invalid secret</string>
<!-- Dialogs -->
<string name="dialog_title_auth">مصادقة</string>
<string name="dialog_title_manual_entry">أدخل التفاصيل</string>
<string name="dialog_title_remove">حذف</string>
<string name="dialog_title_rename">تعديل التسمية</string>
<string name="dialog_title_counter">عداد</string>
<string name="dialog_title_used_tokens">الرموز المُستخدَمة</string>
<string name="dialog_title_used_tokens">Tokens usage</string>
<string name="dialog_title_keystore_error">خطأ في مخزن المفاتيح</string>
<string name="dialog_title_qr_code">QR Code</string>
<string name="dialog_title_android21_depreaction">Deprecation notice</string>
<string name="dialog_title_enter_password">أدخل كلمة المرور</string>
<string name="dialog_label_enter_password">أدخل كلمة المرور</string>
<string name="dialog_label_confirm_password">تأكيد كلمة المرور</string>
<string name="dialog_msg_auth">الرجاء إدخال بيانات الإعتماد الخاصة بجهازك لتشغيل التطبيق.</string>
<string name="dialog_msg_confirm_delete">هل أنت متأكد من أنك تريد إزالة الحساب ؟</string>
<string name="dialog_msg_used_tokens">In order for andOTP to recognize which tokens get used you
have to have either \"tap to reveal\" enabled or use the copy button. This applies to the
sorting of the tokens by \"most used\" as well as by \"last used\".\n\nThis message will not
be shown again.</string>
<string name="dialog_msg_used_tokens">andOTP will track when you use your tokens (using the \"Tap
to reveal\" feature or copying to clipboard) to be able to sort them by \"Most used\" or
\"Last used\".\n\nThis message will not be shown again.</string>
<string name="dialog_msg_keystore_error">فشل تحميل مفتاح التشفير من مخزن المفاتيح.
الإدخالات المضافة سوف تحذف. لمزاولة التطبيق,
أبدل تشفيرة قاعدة البيانات الى كلمة مرور أو PIN في الإعدادات.</string>
<string name="dialog_msg_android21_deprecation">This will be the last version of andOTP to
support Android versions below 5.1 (Lollipop). The increased effort required to maintain a
separate storage implementation just for those older versions as well as their low market
shares make a continued support infeasible for our small team.\n\nThis message will not be
shown again.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">مسح رمز الكيو آر</string>
<string name="shortcut_name_import_qr">استيراد رمز كيو آر</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">تصميم البطاقة</string>
<string name="settings_title_label_size">حجم خط إسم العلامات</string>
<string name="settings_title_label_scroll">تسمية التمرير</string>
<string name="settings_title_tap_single">Single-tap</string>
<string name="settings_title_tap_double">Double-tap</string>
<string name="settings_title_thumbnail_size_ask">حجم الصور المصغرة</string>
<string name="settings_title_split_group_size">تقسيم تذكرة أمان النفاذ بمسافة بيضاء</string>
<string name="settings_title_tag_functionality">سلوك إختيار العلامة</string>
<string name="settings_title_minimize_on_copy">تصغير التطبيق عند نسخ رمز OTP</string>
<string name="settings_title_search_includes">سلوك البحث</string>
<string name="settings_title_label_highlight_token">Highlight expiring tokens</string>
<string name="settings_title_hide_global_timeout">Hide global timeout bar</string>
<string name="settings_title_show_individual_timeouts">Show individual timeouts</string>
<string name="settings_title_backup_append_date">إلحاق تاريخ اليوم باسم الملف</string>
<string name="settings_title_backup_ask">إسأل عن إسم الملف</string>
<string name="settings_title_backup_directory">مجلد النسخ الإحتياطي</string>
@ -60,10 +64,11 @@
<string name="settings_desc_minimize_on_copy">App will be minimized when you copy the OTP to clipboard</string>
<string name="settings_desc_search_includes">Specify which values should be included when searching</string>
<string name="settings_desc_label_highlight_token">Highlights token in red if it\'s expiring in 8 seconds</string>
<string name="settings_desc_hide_global_timeout">Hide the global timeout bar shown at the top of the screen</string>
<string name="settings_desc_show_individual_timeouts">Show an individual timeout bar for every entry.
This can slow down the app, only enable if really necessary.</string>
<string name="settings_desc_backup_append_date">إلحاق بالتاريخ الحالي والوقت إلى اسم الملف النسخ الاحتياطي المقترح</string>
<string name="settings_desc_backup_ask">اسأل عن اسم الملف كل مرة يتم إنشاء نسخة احتياطية أو نسخة مستعادة</string>
<string name="settings_desc_backup_directory">Directory for automatic and broadcast backups
(filenames will depend on the backup type)</string>
<string name="settings_desc_backup_password">إختر كلمة المرور التي سوف تستخدم لتشفير النسخ الإحتياطية</string>
<string name="settings_desc_auto_backup_password_enc">Creates a new encrypted backup when new
entries are added, or edited, if settings conditions are met</string>
@ -76,7 +81,6 @@
<string name="settings_desc_enable_android_backup_service">تمكين التطبيق أن يستعمل خدمة النسخ الموجودة في أندرويد لنسخ المفاتيح والتفضيلات</string>
<string name="settings_desc_clear_keystore">حذف مفتاح التعمية من مخزن المفاتيح</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">هذه الخاصة تتطلب أندرويد ٥.٠ (Lollipop) على الأقل</string>
<string name="settings_toast_auth_device_not_secure">هذه الخاصة تتطلب ضبط القفل الآمن
(الإعدادت -> شاشة القفل والحماية -> ضبط القفل الآمن) </string>
<string name="settings_toast_password_empty">كلمة مرور فارغة مرفوضة. إختر نوع المصادقة كفارغة لتعطيلها!</string>
@ -129,6 +133,12 @@
<item>افتراضية</item>
<item>كاملة</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nothing</item>
<item>Reveal/Hide</item>
<item>Copy</item>
<item>Copy and go to background</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Label</item>
<item>المصدر</item>

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_activity_title">Относно</string>
<string name="about_description">Двойно удостоверяване с отворен код за Андроид</string>
<string name="about_tab_about">Относно</string>
<string name="about_tab_libraries">Библиотеки</string>
<!-- Misc -->
<string name="about_label_changelog">Списък на промените</string>
<string name="about_label_license">Лиценз</string>
<string name="about_label_MIT">MIT лиценз</string>
<string name="about_label_source">Изходен код</string>
<string name="about_label_version">Версия</string>
<string name="about_label_faq">ЧЗВ</string>
<string name="about_label_faq_long">Често задавани въпроси</string>
<!-- Authors -->
<string name="about_title_authors">Автори</string>
<string name="about_label_main_developer">Основен разработчик</string>
<string name="about_label_developer">Разработчик</string>
<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">Даряване</string>
<string name="about_label_contributors">Разработчици</string>
<string name="about_label_translators">Преводачи</string>
<!-- Thumbnail disclaimer -->
<string name="about_title_thumbnail_disclaimer">Права върху миниатюрите</string>
<string name="about_thumbnails_disclaimer_no1"><b>1.</b> Всички миниатюри са търговски марки на съответните им
собственици.</string>
<string name="about_thumbnails_disclaimer_no2"><b>2.</b> Използването на тези марки не е с изричното съгласие
на притежателя на търговска марка от andOTP, нито обратното.</string>
<string name="about_thumbnails_disclaimer_no3"><b>3.</b> Миниатюрите трябва да се използват само, за да
представят компания или продукт, за който се отнасят.</string>
<string name="about_thumbnails_disclaimer_no4"><b>4. Моля, не използвайте миниатюри за каквато и да е
цел освен да представят тази конкретна марка или услуга.</b></string>
<!-- Support -->
<string name="about_title_support">Подкрепете разработката</string>
<string name="about_desc_support">Разберете как можете да подкрепите развитието на andOTP</string>
<string name="about_title_special_features">Специални функции</string>
<string name="about_dialog_special_features">Сигурни ли сте, че искате да активирате специалните функции?
Повечето от тях са нестандартни OTP алгоритми, които са имплементирани по заявка.
Те <b>не се поддържат официално</b> и могат до доведат до <b>известни ограничения</b>.
Моля прочетете (и разберете) страницата „Сепциални функции“ в нашата GitHub Wiki секция за да научете повече преди
използването им.</string>
<string name="about_toast_special_features">Специалните функции са ативирани</string>
<string name="about_toast_special_features_enabled">Специалните функции са вече ативирани</string>
<string name="about_toast_copied_to_clipboard">Връзката за дарения е копирана в клипборда</string>
</resources>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="auth_activity_title">Удостоверяване</string>
<!-- Hints -->
<string name="auth_hint_password">Парола</string>
<string name="auth_hint_pin">ПИН код</string>
<!-- Messages -->
<string name="auth_msg_authenticate">Моля, удостоверете се, за да стартирате andOTP!</string>
<string name="auth_msg_confirm_encryption">Моля, удостоверете се, за да генерирате
нов ключ за криптиране!</string>
<!-- Buttons -->
<string name="auth_button_unlock">Отключване</string>
<!-- Toast messages -->
<string name="auth_toast_password_missing">Моля, задайте парола в <b>Настройки</b>!</string>
<string name="auth_toast_pin_missing">Моля, задайте ПИН код в <b>Настройки</b>!</string>
<string name="auth_toast_password_again">Грешна парола, моля, опитайте отново!</string>
<string name="auth_toast_pin_again">Грешен ПИН код, моля, опитайте отново!</string>
</resources>

View file

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="backup_activity_title">Резервни копия</string>
<string name="backup_category_plain">Некриптирани резервни копия</string>
<string name="backup_category_crypt">Криптирани резервни копия</string>
<string name="backup_category_openpgp">OpenPGP резервни копия</string>
<string name="backup_title_export_plain">Резервно копие (некриптирано)</string>
<string name="backup_title_export_crypt">Резервно копие (криптирано)</string>
<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>
<string name="backup_desc_export_crypt">Архивиране на всички акаунти в криптиран, с парола, JSON файл</string>
<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>
<string name="backup_desc_openpgp_keyid">Трябва да изберете OpenPGP ключ в <b>Настройки</b>
         преди да можете да създадете криптирани резервни копия. </string>
<string name="backup_desc_replace">Ако е активирано, всички стари записи се подменят при импортиране на
резервно копие и само резервното копие присъства. Ако е деактивирано, старите записи и архивното съдържание
      се сливат.</string>
<!-- Dialogs -->
<string name="backup_dialog_title_security_warning">Предупреждение за сигурност</string>
<string name="backup_dialog_msg_export_warning">Наистина ли искате да експортирате базата данни като
         некриптиран JSON файл? Този файл съдържа всички ваши секретни ключове, моля <b>Пазете го</b>! </string>
<string name="backup_receiver_title_backup_failed">Архивирането не бе успешно</string>
<string name="backup_receiver_title_backup_success">Архивирането е успешно</string>
<string name="backup_receiver_plain_disabled">В момента, некриптираните резервни копия не са позволени,
         моля, отидете в Настройките, за да ги активирате</string>
<string name="backup_receiver_encrypted_disabled">В момента, криптираните резервни копия не са позволени,
         моля, отидете в Настройките, за да ги активирате</string>
<string name="backup_receiver_read_permission_failed">Разрешението за четене не е предоставено, моля, направете
         това преди да опитате да направите резервно копие</string>
<string name="backup_receiver_write_permission_failed">Разрешението за писане не е предоставено, моля, направете
         това преди да опитате да направите резервно копие</string>
<string name="backup_receiver_custom_encryption_failed">Криптиране на база Парола/ПИН код, не
         се поддържа с резервно копие чрез външно приложение</string>
<string name="backup_new_format_dialog_title">Нов метод за криптиране</string>
<string name="backup_new_format_dialog_msg">От версия 0.6.3 на 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>
<string name="notification_channel_desc_backup_failed">Тези известия се показват, когато
         автоматичното архивиране се е провалило по някаква причина</string>
<string name="notification_channel_desc_backup_success">Тези известия се показват, когато
         автоматичното архивиране е успешно</string>
<!-- Toast messages -->
<string name="backup_toast_mkdir_failed">Неуспешно създаване на директория за резервни копия</string>
<string name="backup_toast_export_success">Експортирането във външно хранилище е успешно</string>
<string name="backup_toast_export_failed">Експортирането в външно хранилище е неуспешно</string>
<string name="backup_toast_import_success">Импортиране от външно хранилище е успешно</string>
<string name="backup_toast_import_save_failed">Неуспешно запазване на възстановените записи</string>
<string name="backup_toast_import_decryption_failed">Декриптирането на архива не бе успешно</string>
<string name="backup_toast_import_no_entries">Няма намерени записи в импортираните данни</string>
<string name="backup_toast_storage_not_accessible">В момента външното хранилище не е достъпно</string>
<string name="backup_toast_storage_permissions">Разрешението за съхранение не е предоставено</string>
<string name="backup_toast_openpgp_error">OpenPGP Грешка: %s</string>
<string name="backup_toast_openpgp_not_verified">Не е открит проверен подпис</string>
<string name="backup_toast_crypt_password_not_set">Паролата не е зададена, проверете в <b>Настройки</b></string>
<string name="backup_toast_file_selection_failed">Не може да се отвори диалоговият прозорец за избор на файл!</string>
</resources>

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="intro_slide1_title">Да започваме</string>
<string name="intro_slide1_desc">Добре дошли в <b>andOTP</b>, този съветник ще ви преведе през
       първоначалната настройка. Моля, обърнете внимание и прочетете внимателно,
в противен случай може да загубите данни!
       \n\nНе се притеснявайте, винаги може да промените някоя от опциите по-късно в <b>Настройки</b>.</string>
<string name="intro_slide2_desc">За да осигурите сигурността на вашите акаунти в <b>andOTP</b>,
      съхранявайте ги само в криптирани файлове с данни. Тук можете да изберете кой метод на криптиране ще бъде
      използван.</string>
<string name="intro_slide2_desc_keystore">Хранилище за ключове е системен компонент на Android за
         сигурно съхраняване на криптографски ключове. Предимството на този метод е, че ключовете се
         съхраняват отделено от файловете с данни и могат да бъдат защитени с хардуерна криптография (ако вашето
         устройство го поддържа). Тъй като ключовете не се съхраняват с данните от приложенията, <b>този метод
         не позволява да се работи с външни решения за резервно копиране (като Titanium)</b>. Ако изберете този
         метод, ще трябва да разчитате на вътрешните функции за архивиране, предоставени от <b>andOTP</b>.
         \n\n<b>Предупреждение</b>: Известно е, че Хранилище за ключове на Android създава много проблеми, моля,
използвайте го само тогава, когато е наистина необходимо. Ако нямате нищо против да въведете парола/ПИН код, всеки
път, когато стартирате <b>andOTP</b>, <b>горещо се препоръчва използването на криптиране въз основа на парола </b>.</string>
<string name="intro_slide2_desc_password">Този метод ще шифрова вашите данни с ключ
         генериран от парола или ПИН код. Основните предимства на метода се изразяват в това, че ще може да се използват
         външни решения за резервно копие (като Titanium), също така, този метод е по-малко податливи на грешки, за разлика
от Хранилище за ключове на Android.
         Въпреки това, ще трябва да въвеждате своите идентификационни данни всеки път, когато стартирате <b>andOTP</b>.</string>
<string name="intro_slide3_desc_keystore">Тук можете да настроите удостоверяването, за да заключите
         <b>andOTP</b>. Тъй като сте избрали <b>Хранилище за ключове на Android</b> като метод за криптиране, това
не е задължително.</string>
<string name="intro_slide3_desc_password">Тук можете да настроите удостоверяването, за да заключите
         <b>andOTP</b>. Тъй като сте избрали <b>Парола/ПИН код</b> като метод за криптиране,
необходимо е да зададете парола или ПИН код, за да продължите.</string>
<string name="intro_slide3_warn_no_password">Моля, задайте парола, за да продължите!</string>
<string name="intro_slide3_warn_no_pin">Моля, задайте ПИН код, за да продължите!</string>
<string name="intro_slide3_warn_confirm_password">Потвърдете вашата парола, за да продължите!</string>
<string name="intro_slide3_warn_confirm_pin">Потвърдете вашия ПИН код, за да продължите!</string>
<string name="intro_slide4_title">Завършено</string>
<string name="intro_slide4_desc">Вашите настройки са запазени. Готови сте да използвате
      <b>andOTP</b> сега!</string>
</resources>

View file

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Buttons -->
<string name="button_cancel">Отказ</string>
<string name="button_enter_details">Въведете детайли</string>
<string name="button_scan_qr">Сканиране на QR кода</string>
<string name="button_save">Запази</string>
<string name="button_new_tag">Нов маркер</string>
<string name="button_settings">Настройки</string>
<string name="button_all_tags">Всички маркери</string>
<string name="button_no_tags">Няма маркери</string>
<string name="button_qr_from_image">QR код от изображение</string>
<!-- Custom formatting -->
<string name="format_custom_period">%d сек</string>
<!-- Hints -->
<string name="hint_label">Етикет</string>
<string name="hint_secret">Секретен</string>
<!-- Labels -->
<string name="label_hidden">Скрит</string>
<string name="label_type">Тип</string>
<string name="label_secret">Секретен</string>
<string name="label_period">Период</string>
<string name="label_digits">Цифри</string>
<string name="label_counter">Брояч</string>
<string name="label_issuer">Издател</string>
<string name="label_label">Етикет</string>
<string name="label_algorithm">Алгоритъм</string>
<string name="label_tags">Маркери</string>
<string name="label_advanced">Разширени настройки</string>
<!-- Drawer -->
<string name="drawer_open">Показване на маркерите</string>
<string name="drawer_close">Скриване на маркерите</string>
<!-- Menu -->
<string name="menu_main_about">За приложението</string>
<string name="menu_main_backup">Резервно копие</string>
<string name="menu_main_search">Търсене</string>
<string name="menu_main_settings">Настройки</string>
<string name="menu_main_sort">Сортиране</string>
<string name="menu_sort_none">Несортирани</string>
<string name="menu_sort_issuer">Издател</string>
<string name="menu_sort_label">Етикет</string>
<string name="menu_sort_last_used">Последно използвани</string>
<string name="menu_sort_most_used">Най-използвани</string>
<string name="menu_popup_edit">Редактиране</string>
<string name="menu_popup_change_image">Промяна на изображението</string>
<string name="menu_popup_remove">Премахване</string>
<string name="menu_popup_show_qr_code">Показване на QR кода</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Неуспешно удостоверяване. Моля, опитайте отново!</string>
<string name="toast_auth_failed_fatal">Неуспешно удостоверяване, затваряне на andOTP!</string>
<string name="toast_copied_to_clipboard">Копирано в клипборда</string>
<string name="toast_entry_exists">Този запис вече съществува</string>
<string name="toast_invalid_qr_code">Невалиден QR код</string>
<string name="toast_encryption_key_empty">Ключът за шрифоване не е зареден</string>
<string name="toast_intent_creation_failed">Невалиден код, предоставен от приложението</string>
<string name="toast_intent_creation_succeeded">Кодът, предоставен от приложението, е добавен</string>
<string name="toast_file_load_error">Файлът не може да бъде отворен</string>
<string name="toast_qr_error">Не може да бъде намерен/потвърден QR кода</string>
<string name="toast_qr_checksum_exception">Проверката на контролната сума не бе успешна при декодиране на QR кода</string>
<string name="toast_qr_format_error">Грешка при форматирането в QR кода</string>
<string name="toast_qr_unsuported">QR кодът не се поддържа</string>
<string name="toast_qr_failed_to_generate">Неуспешно генериране на QR код</string>
<!-- Errors -->
<string name="error_invalid_secret">Невалидна тайна</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Удостоверяване</string>
<string name="dialog_title_manual_entry">Въведете детайли</string>
<string name="dialog_title_remove">Премахване</string>
<string name="dialog_title_rename">Преименуване</string>
<string name="dialog_title_counter">Брояч</string>
<string name="dialog_title_used_tokens">Използване на токените</string>
<string name="dialog_title_keystore_error">Грешка в Хранилището за ключове на Android</string>
<string name="dialog_title_qr_code">QR код</string>
<string name="dialog_title_android21_depreaction">Остаряло известие</string>
<string name="dialog_title_enter_password">Въведете парола</string>
<string name="dialog_label_enter_password">Въведете парола</string>
<string name="dialog_label_confirm_password">Потвърдете паролата</string>
<string name="dialog_msg_auth">Моля, въведете идентификационните данни на устройството си, за да стартирате andOTP.</string>
<string name="dialog_msg_confirm_delete">Сигурни ли сте, че искате да премахнете акаунт \"%1$s\"?</string>
<string name="dialog_msg_used_tokens">andOTP ще проследява, когато използвате токените си (използвайки \"Докоснете, за да
разкриете\" функцията или копиране в клипборда), за да можете да ги сортирате по \"Най-използвани\" или
         \"Последно използвани“.\n\nТова съобщение няма да бъде показано отново.</string>
<string name="dialog_msg_keystore_error">Неуспешно зареждане на ключа за шифроване от Хранилище за ключове на Android.
         <b>Всички добавени записи ще се загубят.</b>\n\nЗа да продължите да използвате andOTP, можете да отидете
         в <b>Настройки</b> и да превключете <b>Криптиране на базата данни</b> на <b>Парола / ПИН код</b>.</string>
<string name="dialog_msg_android21_deprecation">Това ще бъде последната поддържана версия на andOTP за
         версия на Android под 5.1 (Lollipop). Увеличените усилия, необходими за поддържане на
         отделно приложение за съхранение, само за тези по-стари версии, както и за техния нисък пазар на
         споделянията, правят непрекъснатата поддръжка невъзможна за нашия малък екип. \n\nТова съобщение няма да бъде
         показани отново.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Сканиране на QR кода</string>
<string name="shortcut_name_import_qr">Импортиране на QR код</string>
<string name="shortcut_name_enter_details">Въведете детайли</string>
</resources>

View file

@ -0,0 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="settings_activity_title">Настройки</string>
<!-- Categories -->
<string name="settings_category_title_security">Сигурност</string>
<string name="settings_category_title_ui">Потребителски интерфейс</string>
<string name="settings_category_title_backup">Резервно копие</string>
<!-- Titles -->
<string name="settings_title_tap_to_reveal">Докоснете, за да разкриете</string>
<string name="settings_title_tap_to_reveal_timeout">Време за изчакване, за да се разкрие</string>
<string name="settings_title_auth">Удостоверяване</string>
<string name="settings_title_auth_password">Парола</string>
<string name="settings_title_auth_pin">ПИН код</string>
<string name="settings_title_encryption">Криптиране на база данни</string>
<string name="settings_title_panic">Тригер за спешен случай</string>
<string name="settings_title_relock_screen_off">Повторно заключване при изключване на екрана</string>
<string name="settings_title_relock_background">Повторно заключване при преминаване на заден план</string>
<string name="settings_title_auth_inactivity">Повторно заключване при бездействие</string>
<string name="settings_title_auth_inactivity_delay">Забавяне за повторно заключване при неактивност</string>
<string name="settings_title_block_accessibility">Блокиране на услугите за достъпност</string>
<string name="settings_title_lang">Език</string>
<string name="settings_title_theme">Тема</string>
<string name="settings_title_card_layout">Вид оформление</string>
<string name="settings_title_label_size">Размер на шрифта на етикета</string>
<string name="settings_title_label_scroll">Превъртане на етикетите</string>
<string name="settings_title_tap_single">Еднократно натискане</string>
<string name="settings_title_tap_double">Двойно натискане</string>
<string name="settings_title_thumbnail_size_ask">Размера на миниатюрите</string>
<string name="settings_title_split_group_size">Разделяне на токена с интервал</string>
<string name="settings_title_tag_functionality">Начин на избор на маркери</string>
<string name="settings_title_minimize_on_copy">Минимизиране на приложението след копиране на OTP</string>
<string name="settings_title_search_includes">Начин на търсене</string>
<string name="settings_title_label_highlight_token">Маркиране на изтичащите токени</string>
<string name="settings_title_hide_global_timeout">Скриване на глобалната лента за изчакване</string>
<string name="settings_title_show_individual_timeouts">Показване на индивидуални времена за изчакване</string>
<string name="settings_title_backup_append_date">Добавяне на датата към името на файла</string>
<string name="settings_title_backup_ask">Попитай за името на файла</string>
<string name="settings_title_backup_directory">Директория за резервни копия</string>
<string name="settings_title_backup_password">Парола за резервни копия</string>
<string name="settings_title_auto_backup_password_enc">Автоматично архивиране на нови записи</string>
<string name="settings_title_backup_broadcasts">Резервная копия с помощта на външни приложения</string>
<string name="settings_title_openpgp_provider">OpenPGP доставчик</string>
<string name="settings_title_openpgp_key_encrypt">OpenPGP криптиращ ключ</string>
<string name="settings_title_openpgp_key_sign">OpenPGP ключ за подписване (незадължително)</string>
<string name="settings_title_openpgp_verify">Проверяване на криптираните резервни копия</string>
<string name="settings_title_special_features">Включване на специалните възможности</string>
<string name="settings_title_enable_screenshot">Включване на екранни снимки</string>
<string name="settings_title_enable_android_backup_service">Включване на Android синхронизация</string>
<string name="settings_title_clear_keystore">Изчисване на Хранилището за ключове на Android</string>
<!-- Descriptions -->
<string name="settings_desc_tap_to_reveal">Скриване на OTP токените по подразбиране, необходимо е да се
показват ръчно</string>
<string name="settings_desc_tap_to_reveal_timeout">Изберете времето (в секунди), след което показаните токените
да се скрият автоматично отново</string>
<string name="settings_desc_panic">Изберете какво ще се случи, когато се натисне паник бутона</string>
<string name="settings_desc_relock_screen_off">Изисквайте удостоверяване, след като екрана на устройството
         се изключи</string>
<string name="settings_desc_relock_background">Изисквайте удостоверяване, след като приложението
         се изпрати на заден план (например, при натискане на бутона \"Начало\")</string>
<string name="settings_desc_auth_inactivity">Изисквайте удостоверяване, след като
устройството е неактивно</string>
<string name="settings_desc_auth_inactivity_delay">Изберете времето (в секунди), след което да
         изисква повторно удостоверяване</string>
<string name="settings_desc_block_accessibility">Скриване на чувствителни полета от услугите
за достъпност. <b>НЕ активирайте това, ако използвате услугите за достъпност!</b></string>
<string name="settings_desc_label_scroll">Превъртане на дългите етикети, вместо да бъдат съкращавани</string>
<string name="settings_desc_minimize_on_copy">Приложението ще бъде минимизирано, когато копирате OTP токенът в клипборда</string>
<string name="settings_desc_search_includes">Посочете кои стойности трябва да бъдат включени при търсенето</string>
<string name="settings_desc_label_highlight_token">Маркиране на токените в червено, ако изтичат след 8 секунди</string>
<string name="settings_desc_hide_global_timeout">Скриване на глобалната лента за изчакване в горната част на екрана</string>
<string name="settings_desc_show_individual_timeouts">Показване на индивидуална лента за изчакване за всеки запис.
Това може да забави приложението, да се активира само ако наистина е необходимо.</string>
<string name="settings_desc_backup_append_date">Добавете текущата дата и час към предложеното
         име на архивното копие</string>
<string name="settings_desc_backup_ask">Попитайте за името на файла всеки път, когато се създаде или възстановява
резервно копие
       </string>
<string name="settings_desc_backup_password">Задайте паролата, която да се използва за криптиране на
         резервните копия</string>
<string name="settings_desc_auto_backup_password_enc">Създаване на ново криптирано резервно копие, когато новите
         записи се добавят или редактират, ако са изпълнени условията за настройките</string>
<string name="settings_desc_backup_broadcasts">Изберете какви типове резервни копия могат да бъдат запазени от
         приложения на трети страни за създаване на резервно копие</string>
<string name="settings_desc_openpgp_key_encrypt">Пощенски адрес на OpenPGP ключа, използван за криптиране на
         резервните копия</string>
<string name="settings_desc_openpgp_verify">Криптираните архиви може да се импортират само тогава, когато са
         подписан с валиден ключ</string>
<string name="settings_desc_special_features">Премахнете отметката, за да деактивирате отново специалните функции</string>
<string name="settings_desc_enable_screenshot">Позволяване създаването на екранни снимки на началния екран
         (деактивирано по подразбиране от съображения за сигурност)</string>
<string name="settings_desc_enable_android_backup_service">Позволява на andOTP да използва
         вградената услуга на Android, за архивиране на ключове и предпочитания</string>
<string name="settings_desc_clear_keystore">Изтриване на ключа за шифроване от Хранилището за ключове на Android</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_not_secure">За тази функция се изисква защитата
за заключване на екрана да се настрои (Настройки -&gt; Сигурност -&gt; Заключване на екрана)
     </string>
<string name="settings_toast_password_empty">Използването на празна парола не е разрешено, за да
      премахнете паролата, изключете Удостоверяването!</string>
<string name="settings_toast_encryption_changing">Опит за промяна на криптирането на базата данни.
         Моля Изчакайте!</string>
<string name="settings_toast_encryption_change_success">Успешно променихте криптирането на
базата данни!</string>
<string name="settings_toast_encryption_change_failed">Промяната на криптирането на базата данни не бе успешно,
         връщане в първоначално състояние!</string>
<string name="settings_toast_encryption_backup_failed">Неуспешно създаване на вътрешно
         резервно копие, прекъсване!</string>
<string name="settings_toast_encryption_no_key">Неуспешно получаване на ключа за шифроване, прекъсване!</string>
<string name="settings_toast_encryption_auth_failed">Удостоверяването е неуспешно!</string>
<string name="settings_toast_auth_upgrade_failed">Неуспешно автоматично обновяване на вашата парола/ПИН код към
         новото криптиране, моля, нулирайте го ръчно в Настройките!</string>
<string name="settings_dialog_title_warning">Предупреждение</string>
<string name="settings_dialog_title_error">Грешка</string>
<string name="settings_dialog_title_clear_keystore">Да се изчисти ли Хранилището за ключове на Android?</string>
<string name="settings_dialog_title_android_sync">Android синхронизация</string>
<string name="settings_dialog_msg_encryption_change">andOTP сега ще се опита да промени криптирането на базата данни
         В случай на неуспех, ще се възстанови вътрешното резервно копие и криптирането
         ще остане непроменено.\n\n<b>Въпреки това, винаги е добра идея да имате резервно копие в случай, че се
         случи нещо неочаквано!</b></string>
<string name="settings_dialog_msg_auth_invalid_with_encryption">Можете да използвате само Парола или ПИН код, ако за
   криптирането на базата данни е зададена опцията \"Парола / ПИН код\"!</string>
<string name="settings_dialog_msg_encryption_invalid_with_auth">Първо трябва да настроите
         Удостоверяване на „Парола“ или „ПИН код“!</string>
<string name="settings_dialog_msg_encryption_invalid_without_credentials">Първо трябва да зададете
         Парола или ПИН код преди да промените криптирането!</string>
<string name="settings_dialog_msg_clear_keystore_password">В някои случаи, изчистване на Хранилището за ключове на Android
         може да помогне за разрешаване на проблеми. Трябва да продължите само ако знаете какво правите!\n\nКогато
         <b>криптирането на базата данни</b> е зададено на <b>Парола / ПИН код</b>, не бива да губите никакви данни, когато
         правите това (но никога не е лошо да имате резервно копие).\n\n<b>Наистина ли сте сигурни, че искате
         да изчистите Хранилището за ключове на Android?</b></string>
<string name="settings_dialog_msg_clear_keystore_keystore">В някои случаи, изчистване на Хранилището за ключове на Android
         може да помогне за разрешаване на проблеми. Трябва да продължите само ако знаете какво правите!\n\n<b>
Предупреждение</b>: Тъй като <b>криптирането на базата данни</b> е зададено на
<b>Хранилище за ключове на Android</b>, ще загубите всички вашите акаунти. Уверете се, че
имате резервно копие!\n\n<b>Наистина ли сте сигурни, че искате да изчистите
         Хранилището за ключове на Android?</b></string>
<string name="settings_dialog_msg_android_sync_disabled_encryption">Синхронизацията на Android не може да се използва с Хранилището за ключове на Android
        <b>трябва да извършите ръчно архивиране!</b></string>
<!-- List entries -->
<string-array name="settings_entries_auth">
<item>Няма</item>
<item>Парола</item>
<item>ПИН код</item>
<item>Удостоверения на устройството</item>
</string-array>
<string-array name="settings_entries_encryption">
<item>Хранилище за ключове на Android</item>
<item>Парола / ПИН код</item>
</string-array>
<string-array name="settings_entries_panic">
<item>Изтриване на всички акаунти</item>
<item>Нулиране настройките на приложението</item>
</string-array>
<string-array name="settings_entries_card_layout">
<item>Компактно</item>
<item>По подразбиране</item>
<item>Пълно</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Нищо</item>
<item>Разкриване/Скриване</item>
<item>Копиране</item>
<item>Копирайте и отидете на заден план</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Етикет</item>
<item>Издател</item>
<item>Маркери</item>
</string-array>
<string-array name="settings_entries_auto_backup_password_enc">
<item>Изключено</item>
<item>Нови записи</item>
<item>Всякакви редакции</item>
</string-array>
<string-array name="settings_entries_theme">
<item>Светла тема</item>
<item>Тъмна тема</item>
<item>Черна тема</item>
</string-array>
<string-array name="settings_entries_thumbnail_size">
<item>Скрит</item>
<item>Мъничък</item>
<item>Малък</item>
<item>По подразбиране</item>
<item>Среден</item>
<item>Голям</item>
</string-array>
<string-array name="settings_entries_split_group_size">
<item>Не разделяй</item>
<item>След два знака</item>
<item>След три знака</item>
</string-array>
<string-array name="settings_entries_tag_functionality">
<item>Показване на всички записи, които съвпадат <b>с всеки</b> от избраните маркери (или)</item>
<item>Показване само на тези записите, които съвпадат <b>с всички</b> от избраните маркери (и)</item>
<item>Превключване между маркерите (позволява се само един маркер да бъде избран едновременно)</item>
</string-array>
<string-array name="settings_entries_backup_broadcasts">
<item>Некриптирани резервни копия</item>
<item>Криптирани резервни копия</item>
</string-array>
<!-- Special -->
<string name="settings_lang_sys_default">По подразбиране за системата</string>
<!-- PasswordPreference -->
<string name="settings_hint_password">Въведи нова парола</string>
<string name="settings_hint_pin">Въведете нов ПИН код</string>
<string name="settings_hint_password_confirm">Потвърдете паролата</string>
<string name="settings_hint_pin_confirm">Потвърдете ПИН кода</string>
<string name="settings_label_short_password">Паролата трябва да съдържа не по-малко от %1$d символа!</string>
<string name="settings_label_short_pin">ПИН кодът трябва да съдържа не по-малко от %1$d цифри!</string>
</resources>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="about_activity_title">Quant a</string>
<string name="about_description">Autenticació de dos factors de codi obert per a Android</string>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="auth_activity_title">Autentica</string>
<!-- Hints -->

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="backup_activity_title">Còpies de seguretat</string>
<string name="backup_category_plain">Còpies de seguretat en text net</string>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="intro_slide1_title">Let\'s get started</string>
<string name="intro_slide1_desc">Welcome to <b>andOTP</b>, this wizard will guide you through

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Buttons -->
<string name="button_cancel">Cancel·la</string>
@ -42,11 +41,10 @@
<string name="menu_sort_label">Etiqueta</string>
<string name="menu_sort_last_used">Últimes utilitzades</string>
<string name="menu_sort_most_used">Most used</string>
<string name="menu_popup_edit_issuer">Edit issuer</string>
<string name="menu_popup_edit_label">Edita l\'etiqueta</string>
<string name="menu_popup_edit">Edit</string>
<string name="menu_popup_change_image">Canvia la imatge</string>
<string name="menu_popup_edit_tags">Edita etiquetes</string>
<string name="menu_popup_remove">Suprimeix</string>
<string name="menu_popup_show_qr_code">Show QR Code</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Error d\'autenticació. Torneu-ho a intentar!</string>
<string name="toast_auth_failed_fatal">L\'autenticació ha fallat, andOTP es tancarà!</string>
@ -60,26 +58,36 @@
<string name="toast_qr_error">Could not find/confirm QR code</string>
<string name="toast_qr_checksum_exception">Checksum verification failed while decoding QR code</string>
<string name="toast_qr_format_error">Format error in QR code</string>
<string name="toast_qr_unsuported">QR Code not supported</string>
<string name="toast_qr_failed_to_generate">Failed to generate QR Code</string>
<!-- Errors -->
<string name="error_invalid_secret">Invalid secret</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Autentica</string>
<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">Comptador</string>
<string name="dialog_title_used_tokens">Used tokens</string>
<string name="dialog_title_used_tokens">Tokens usage</string>
<string name="dialog_title_keystore_error">Error al magatzem de claus</string>
<string name="dialog_title_qr_code">QR Code</string>
<string name="dialog_title_android21_depreaction">Deprecation notice</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_used_tokens">In order for andOTP to recognize which tokens get used you
have to have either \"tap to reveal\" enabled or use the copy button. This applies to the
sorting of the tokens by \"most used\" as well as by \"last used\".\n\nThis message will not
be shown again.</string>
<string name="dialog_msg_used_tokens">andOTP will track when you use your tokens (using the \"Tap
to reveal\" feature or copying to clipboard) to be able to sort them by \"Most used\" or
\"Last used\".\n\nThis message will not be shown again.</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>
<string name="dialog_msg_android21_deprecation">This will be the last version of andOTP to
support Android versions below 5.1 (Lollipop). The increased effort required to maintain a
separate storage implementation just for those older versions as well as their low market
shares make a continued support infeasible for our small team.\n\nThis message will not be
shown again.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Escaneja un codi QR</string>
<string name="shortcut_name_import_qr">Import QR code</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">Card layout</string>
<string name="settings_title_label_size">Mida de la lletra de l\'etiqueta</string>
<string name="settings_title_label_scroll">Permet el desplaçament a les etiquetes</string>
<string name="settings_title_tap_single">Single-tap</string>
<string name="settings_title_tap_double">Double-tap</string>
<string name="settings_title_thumbnail_size_ask">Mida de la miniatura</string>
<string name="settings_title_split_group_size">Separa el testimoni amb espais</string>
<string name="settings_title_tag_functionality">Tag selection behavior</string>
<string name="settings_title_minimize_on_copy">Minimize app after copying OTP</string>
<string name="settings_title_search_includes">Search behavior</string>
<string name="settings_title_label_highlight_token">Highlight expiring tokens</string>
<string name="settings_title_hide_global_timeout">Hide global timeout bar</string>
<string name="settings_title_show_individual_timeouts">Show individual timeouts</string>
<string name="settings_title_backup_append_date">Append date to filename</string>
<string name="settings_title_backup_ask">Demana el nom de fitxer</string>
<string name="settings_title_backup_directory">Directori de còpia de seguretat</string>
@ -63,11 +67,12 @@
<string name="settings_desc_minimize_on_copy">App will be minimized when you copy the OTP to clipboard</string>
<string name="settings_desc_search_includes">Specify which values should be included when searching</string>
<string name="settings_desc_label_highlight_token">Highlights token in red if it\'s expiring in 8 seconds</string>
<string name="settings_desc_hide_global_timeout">Hide the global timeout bar shown at the top of the screen</string>
<string name="settings_desc_show_individual_timeouts">Show an individual timeout bar for every entry.
This can slow down the app, only enable if really necessary.</string>
<string name="settings_desc_backup_append_date">Append the current date and time to the suggested
backup filename</string>
<string name="settings_desc_backup_ask">Demana el nom del fitxer cada vegada que es crea o restaura una còpia de seguretat</string>
<string name="settings_desc_backup_directory">Directory for automatic and broadcast backups
(filenames will depend on the backup type)</string>
<string name="settings_desc_backup_password">Contrasenya que s\'usarà per a xifrar les
còpies de seguretat</string>
<string name="settings_desc_auto_backup_password_enc">Creates a new encrypted backup when new
@ -85,8 +90,6 @@
built in backup service to backup keys and preferences</string>
<string name="settings_desc_clear_keystore">Esborra la clau d\'encriptació del magatzem de claus</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Aquesta característica només funciona amb
Android 5.0 (Lollipop) o superior</string>
<string name="settings_toast_auth_device_not_secure">Aquesta característica requereix un bloqueig de pantalla
segur (Configuració -&gt; Seguretat -&gt; Bloqueig de pantalla)</string>
<string name="settings_toast_password_empty">Les contrasenyes buides no són permeses,
@ -146,6 +149,12 @@
<item>Default</item>
<item>Full</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nothing</item>
<item>Reveal/Hide</item>
<item>Copy</item>
<item>Copy and go to background</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Label</item>
<item>Issuer</item>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">Popis</string>
<string name="menu_sort_last_used">Naposledy použité</string>
<string name="menu_sort_most_used">Nejpoužívanější</string>
<string name="menu_popup_edit_issuer">Upravit vydavatele</string>
<string name="menu_popup_edit_label">Upravit popis</string>
<string name="menu_popup_edit">Edit</string>
<string name="menu_popup_change_image">Změnit obrázek</string>
<string name="menu_popup_edit_tags">Upravit štítky</string>
<string name="menu_popup_remove">Smazat</string>
<string name="menu_popup_show_qr_code">Ukaž QR kód</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Chyba ověření, zkuste to prosím znovu!</string>
<string name="toast_auth_failed_fatal">Ověření se nezdařilo, zavírám andOTP!</string>
@ -59,24 +58,35 @@
<string name="toast_qr_error">Nelze najít/potvrdit QR kód</string>
<string name="toast_qr_checksum_exception">Ověření kontrolního součtu se nezdařilo při dekódování QR kódu</string>
<string name="toast_qr_format_error">Chyba formátu v QR kódu</string>
<string name="toast_qr_unsuported">QR kód není podporován</string>
<string name="toast_qr_failed_to_generate">Generování QR kódu se nezdařilo</string>
<!-- Errors -->
<string name="error_invalid_secret">Neplatný klíč</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Ověřit</string>
<string name="dialog_title_manual_entry">Zadat detaily</string>
<string name="dialog_title_remove">Smazat</string>
<string name="dialog_title_rename">Přejmenování</string>
<string name="dialog_title_counter">Počítadlo</string>
<string name="dialog_title_used_tokens">Použité tokeny</string>
<string name="dialog_title_used_tokens">Tokens usage</string>
<string name="dialog_title_keystore_error">Chyba úložiště klíčů</string>
<string name="dialog_title_qr_code">QR kód</string>
<string name="dialog_title_android21_depreaction">Oznámení o ukončení podpory</string>
<string name="dialog_title_enter_password">Zadejte heslo</string>
<string name="dialog_label_enter_password">Zadejte heslo</string>
<string name="dialog_label_confirm_password">Potvrďte heslo</string>
<string name="dialog_msg_auth">Prosím zadejte heslo zařízení ke spuštění andOTP.</string>
<string name="dialog_msg_confirm_delete">Jste si jistí, že chcete odebrat účet \"%1$s\"?</string>
<string name="dialog_msg_used_tokens">Aby andOTP rozpoznal, které tokeny jsou používány,
musíte mít buď povoleno \"klepnutím zobrazit\" nebo použít tlačítko Kopírovat. Platí to pro
třídění tokenů podle \"nejvíce použito\" a také podle \"posledního použití\".\n\nTato zpráva nebude znovu zobrazena.</string>
<string name="dialog_msg_used_tokens">andOTP will track when you use your tokens (using the \"Tap
to reveal\" feature or copying to clipboard) to be able to sort them by \"Most used\" or
\"Last used\".\n\nThis message will not be shown again.</string>
<string name="dialog_msg_keystore_error">Nepodařilo se načíst šifrovací klíč z KeyStore.
<b>Veškeré přidané položky budou ztraceny.</b> \n\nPro zajištění použitelnosti andOTP v <b>Nastavení</b> přepněte <b>Šifrování databáze</b> na <b>heslo / PIN</b>.</string>
<string name="dialog_msg_android21_deprecation">This will be the last version of andOTP to
support Android versions below 5.1 (Lollipop). The increased effort required to maintain a
separate storage implementation just for those older versions as well as their low market
shares make a continued support infeasible for our small team.\n\nThis message will not be
shown again.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Načíst QR kód</string>
<string name="shortcut_name_import_qr">Importovat QR kód</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">Rozložení karet</string>
<string name="settings_title_label_size">Velikost písma popisku</string>
<string name="settings_title_label_scroll">Pohybující se popisky</string>
<string name="settings_title_tap_single">Single-tap</string>
<string name="settings_title_tap_double">Double-tap</string>
<string name="settings_title_thumbnail_size_ask">Velikost náhledu</string>
<string name="settings_title_split_group_size">Rozdělit token mezerami</string>
<string name="settings_title_tag_functionality">Chování výběru štítků</string>
<string name="settings_title_minimize_on_copy">Minimalizovat aplikaci po zkopírování OTP</string>
<string name="settings_title_search_includes">Způsob vyhledávání</string>
<string name="settings_title_label_highlight_token">Zvýraznit tokeny s končící platností</string>
<string name="settings_title_hide_global_timeout">Hide global timeout bar</string>
<string name="settings_title_show_individual_timeouts">Show individual timeouts</string>
<string name="settings_title_backup_append_date">Přidání data k názvu souboru</string>
<string name="settings_title_backup_ask">Zadejte název souboru</string>
<string name="settings_title_backup_directory">Adresář záloh</string>
@ -56,10 +60,11 @@
<string name="settings_desc_minimize_on_copy">Aplikace bude minimalizována, když zkopírujete OTP do schránky</string>
<string name="settings_desc_search_includes">Určete, které hodnoty by měly být zahrnuty při hledání</string>
<string name="settings_desc_label_highlight_token">Zvýraznit token červeně, pokud vyprší do 8 sekund</string>
<string name="settings_desc_hide_global_timeout">Hide the global timeout bar shown at the top of the screen</string>
<string name="settings_desc_show_individual_timeouts">Show an individual timeout bar for every entry.
This can slow down the app, only enable if really necessary.</string>
<string name="settings_desc_backup_append_date">Přidá aktuální datum a čas k navrhovanému názvu záložního souboru</string>
<string name="settings_desc_backup_ask">Dotazovat se na název souboru vždy při vytváření či obnovování zálohy</string>
<string name="settings_desc_backup_directory">Adresář pro automatické a příkazem spuštěné zálohování
(názvy souborů závisí na typu zálohy)</string>
<string name="settings_desc_backup_password">Nastaví heslo používané k šifrování záloh</string>
<string name="settings_desc_auto_backup_password_enc">Vytvoří novou šifrovanou zálohu při vytvoření či úpravě položek, když jsou splněny podmínky z nastavení</string>
<string name="settings_desc_backup_broadcasts">Vyberte, které typy zálohování můžou být spuštěny pomocí příkazů od aplikací třetí strany</string>
@ -70,7 +75,6 @@
<string name="settings_desc_enable_android_backup_service">Povolí andOTP používat zálohovací službu systému Android k zálohování klíčů a předvoleb</string>
<string name="settings_desc_clear_keystore">Odstranit šifrovací klíč z úložiště klíčů</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Tato funkce ke své činnosti vyžaduje alespoň Android 5.0 (Lollipop)</string>
<string name="settings_toast_auth_device_not_secure">Tato funkce vyžaduje nastavení zámku obrazovky (Nastavení -&gt; Zabezpečení -&gt; Zámek obrazovky)</string>
<string name="settings_toast_password_empty">Není povoleno prázdné heslo, nastavte přihlášení na \"Žádné\" pro zakázání!</string>
<string name="settings_toast_encryption_changing">Pokouším se změnit šifrování databáze, prosím čekejte!</string>
@ -112,6 +116,12 @@ V případě chyby bude obnovena interní záloha a šifrování zůstane nezmě
<item>Výchozí</item>
<item>Plná</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nothing</item>
<item>Reveal/Hide</item>
<item>Copy</item>
<item>Copy and go to background</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Popisek</item>
<item>Vydavatel</item>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">Beschriftung</string>
<string name="menu_sort_last_used">Zuletzt benutzt</string>
<string name="menu_sort_most_used">Am meisten verwendet</string>
<string name="menu_popup_edit_issuer">Aussteller bearbeiten</string>
<string name="menu_popup_edit_label">Beschriftung bearbeiten</string>
<string name="menu_popup_edit">Bearbeiten</string>
<string name="menu_popup_change_image">Bild ändern</string>
<string name="menu_popup_edit_tags">Marker bearbeiten</string>
<string name="menu_popup_remove">Entfernen</string>
<string name="menu_popup_show_qr_code">Zeige QR-Code</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Authentifizierung fehlgeschlagen, bitte erneut versuchen!</string>
<string name="toast_auth_failed_fatal">Authentifizierung fehlgeschlagen, andOTP wird geschlossen!</string>
@ -59,6 +58,10 @@
<string name="toast_qr_error">QR-Code konnte nicht gefunden/bestätigt werden</string>
<string name="toast_qr_checksum_exception">Überprüfung der Prüfsumme fehlgeschlagen beim Dekodieren des QR-Codes</string>
<string name="toast_qr_format_error">Formatfehler im QR-Code</string>
<string name="toast_qr_unsuported">QR-Code wird nicht unterstützt</string>
<string name="toast_qr_failed_to_generate">Fehler beim Generieren des QR-Codes</string>
<!-- Errors -->
<string name="error_invalid_secret">Ungültiges Geheimnis</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Authentifizieren</string>
<string name="dialog_title_manual_entry">Details eingeben</string>
@ -67,16 +70,22 @@
<string name="dialog_title_counter">Zähler</string>
<string name="dialog_title_used_tokens">Verwendete Token</string>
<string name="dialog_title_keystore_error">KeyStore Fehler</string>
<string name="dialog_title_qr_code">QR-Code</string>
<string name="dialog_title_android21_depreaction">Hinweis</string>
<string name="dialog_title_enter_password">Passwort eingeben</string>
<string name="dialog_label_enter_password">Passwort eingeben</string>
<string name="dialog_label_confirm_password">Passwort bestätigen</string>
<string name="dialog_msg_auth">Bitte geben Sie die Anmeldeinformationen Ihres Geräts ein, um andOTP zu starten.</string>
<string name="dialog_msg_confirm_delete">Sind Sie sicher, dass das Konto \"%1$s\" gelöscht werden soll?</string>
<string name="dialog_msg_used_tokens">Damit andOTP erkennen kann, welche Token verwendet werden, musst du
entweder \"Tippen zum Anzeigen\" aktivieren oder den Kopierknopf verwenden. Dies gilt sowohl für die
Sortierung der Token nach \"meistgenutzt\" als auch nach \"Zuletzt verwendet\".\n\nDiese Nachricht wird nicht erneut
angezeigt.</string>
<string name="dialog_msg_used_tokens">andOTP wird speichern, wie oft Sie Ihre Token verwenden (wenn Sie die Funktion \"Tippen
um anzuzeigen\" verwenden oder die sie in die Zwischenablage kopieren), um sie nach \"meistbenutzt\" oder
\"zuletzt verwendet\" zu sortieren.\n\nDiese Nachricht wird nicht wieder angezeigt.</string>
<string name="dialog_msg_keystore_error">Fehler beim Laden des Verschlüsselungsschlüssels aus dem KeyStore. <b>Alle Einträge, die hinzugefügt werden, gehen verloren.</b>\n\nUm andOTP dennoch verwenden zu können, rufe die <b>Einstellungen</b> auf und setze die <b>Datenbank-Verschlüsselung</b> auf <b>Passwort / PIN</b>.</string>
<string name="dialog_msg_android21_deprecation">Dies wird die letzte Version von andOTP sein, die
Android-Versionen niedriger als 5.1 (Lollipop) unterstützt. Der erhöhte Aufwand zur Aufrechterhaltung einer separaten
Speicherimplementierung nur für diese älteren Versionen und deren geringer Marktanteil
machen eine fortgesetzte Unterstützung für unser kleines Team unmöglich.\n\nDiese Nachricht wird nicht erneut
angezeigt.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">QR-Code scannen</string>
<string name="shortcut_name_import_qr">QR-Code importieren</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">Kartenlayout</string>
<string name="settings_title_label_size">Schriftgröße der Beschriftung</string>
<string name="settings_title_label_scroll">Beschriftung scrollen</string>
<string name="settings_title_tap_single">Einfaches Tippen</string>
<string name="settings_title_tap_double">Doppeltes Tippen</string>
<string name="settings_title_thumbnail_size_ask">Größe der Miniaturansichten</string>
<string name="settings_title_split_group_size">Token mit Leerzeichen unterteilen</string>
<string name="settings_title_tag_functionality">Schlagwort Auswahlverhalten</string>
<string name="settings_title_minimize_on_copy">App nach dem Kopieren von OTP minimieren</string>
<string name="settings_title_search_includes">Suchverhalten</string>
<string name="settings_title_label_highlight_token">Ablaufende Tokens hervorheben</string>
<string name="settings_title_hide_global_timeout">Globale Timeout-Leiste ausblenden</string>
<string name="settings_title_show_individual_timeouts">Individuelle Timeouts anzeigen</string>
<string name="settings_title_backup_append_date">Datum an den Dateinamen anhängen</string>
<string name="settings_title_backup_ask">Nach Dateinamen fragen</string>
<string name="settings_title_backup_directory">Sicherungsverzeichnis</string>
@ -61,10 +65,11 @@
<string name="settings_desc_minimize_on_copy">App wird minimiert wenn der OTP Code kopiert wurde</string>
<string name="settings_desc_search_includes">Welche Werte sollen in der Suche enthalten sein?</string>
<string name="settings_desc_label_highlight_token">Token wird rot markiert, wenn es in weniger als 8 Sekunden ausläuft</string>
<string name="settings_desc_hide_global_timeout">Globale Timeout-Leiste am oberen Bildschirmrand ausblenden</string>
<string name="settings_desc_show_individual_timeouts">Zeige eine individuelle Timeout-Leiste für jeden Eintrag.
Dies kann die App verlangsamen, nur aktivieren, wenn wirklich notwendig.</string>
<string name="settings_desc_backup_append_date">Aktuelles Datum und die aktuelle Uhrzeit an den vorgeschlagenen Sicherungsdateinamen anhängen</string>
<string name="settings_desc_backup_ask">Jedes Mal nach dem Dateinamen fragen, wenn eine Sicherung erstellt oder wiederhergestellt wird</string>
<string name="settings_desc_backup_directory">Verzeichnis für automatische und Broadcast-Backups
(Dateinamen hängen vom Backup-Typ ab)</string>
<string name="settings_desc_backup_password">Passwort festlegen, mit dem die Sicherungen verschlüsselt werden sollen</string>
<string name="settings_desc_auto_backup_password_enc">Erstellt eine neue verschlüsselte Datensicherung bei
Erstellung oder Bearbeitung von Einträgen, wenn Bedingungen erfüllt sind</string>
@ -78,8 +83,6 @@
<string name="settings_desc_enable_android_backup_service">andOTP ermöglichen, den integrierten Datensicherungsdienst von Android zu nutzen, um Schlüssel und Einstellungen zu sichern</string>
<string name="settings_desc_clear_keystore">Verschlüsselungsschlüssel aus dem KeyStore löschen</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Dieses Feature erfordert mindestens Android 5.0
(Lollipop) um zu funktionieren</string>
<string name="settings_toast_auth_device_not_secure">Dieses Feature erfordert das ein geschützter Sperrbildschirm
eingerichtet ist (Einstellungen -&gt; Sicherheit -&gt; Displaysperre)</string>
<string name="settings_toast_password_empty">Ein leeres Passwort ist nicht zulässig, setzen Sie die Authentifizierung auf \"Keine\", um es zu deaktivieren!</string>
@ -121,6 +124,12 @@
<item>Standard</item>
<item>Voll</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nichts</item>
<item>Anzeigen/Verstecken</item>
<item>Kopieren</item>
<item>Kopieren und in den Hintergrund wechseln</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Beschriftung</item>
<item>Aussteller</item>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">Ετικέτα</string>
<string name="menu_sort_last_used">Τελευταία χρήση</string>
<string name="menu_sort_most_used">Τελευταία χρήση</string>
<string name="menu_popup_edit_issuer">Επεξεργασία εκδότη</string>
<string name="menu_popup_edit_label">Επεξεργασία ετικέτας</string>
<string name="menu_popup_edit">Edit</string>
<string name="menu_popup_change_image">Αλλαγή εικόνας</string>
<string name="menu_popup_edit_tags">Επεξεργασία ετικετών</string>
<string name="menu_popup_remove">Διαγραφή</string>
<string name="menu_popup_show_qr_code">Show QR Code</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Η ταυτοποίηση απέτυχε. Παρακαλώ προσπάθησε ξανά!</string>
<string name="toast_auth_failed_fatal">Απέτυχε ο έλεγχος ταυτότητας, κλείνει το andOTP!</string>
@ -59,24 +58,34 @@
<string name="toast_qr_error">Δεν ήταν δυνατή η εύρεση/επιβεβαίωση του κώδικα QR</string>
<string name="toast_qr_checksum_exception">Αποτυχία επαλήθευσης κατά την αποκωδικοποίηση του QR κώδικα</string>
<string name="toast_qr_format_error">Σφάλμα μορφοποίησης κώδικα QR</string>
<string name="toast_qr_unsuported">QR Code not supported</string>
<string name="toast_qr_failed_to_generate">Failed to generate QR Code</string>
<!-- Errors -->
<string name="error_invalid_secret">Invalid secret</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Ταυτοποίηση</string>
<string name="dialog_title_manual_entry">Εισάγετε λεπτομέρειες</string>
<string name="dialog_title_remove">Διαγραφή</string>
<string name="dialog_title_rename">Μετονομασία</string>
<string name="dialog_title_counter">Μετρητής</string>
<string name="dialog_title_used_tokens">Τεκμήρια σε χρήση</string>
<string name="dialog_title_used_tokens">Tokens usage</string>
<string name="dialog_title_keystore_error">Σφάλμα KeyStore</string>
<string name="dialog_title_qr_code">QR Code</string>
<string name="dialog_title_android21_depreaction">Deprecation notice</string>
<string name="dialog_title_enter_password">Εισάγετε κωδικό</string>
<string name="dialog_label_enter_password">Εισάγετε κωδικό</string>
<string name="dialog_label_confirm_password">Επιβεβαίωση κωδικού</string>
<string name="dialog_msg_auth">Παρακαλούμε εισαγάγετε τα διαπιστευτήριά σας για να ανοίξετε το andOTP.</string>
<string name="dialog_msg_confirm_delete">Σίγουρα θέλετε να αφαιρέσετε το λογαριασμό \"%1$s\";</string>
<string name="dialog_msg_used_tokens">Προκειμένου το andOTP να αναγνωρίσει ποια τεκμήρια χρησιμοποιούνται
πρέπει να έχουν ενεργοποιηθεί ή χρήση ενέργειας αντιγραφής. Αυτό ισχύει για την
ταξινόμηση των τεκμηρίων \"Συχνής χρήσης\" καθώς και \"Τελευταίας χρήσης\".\n\nΑυτό το μήνυμα
δεν θα εμφανιστεί ξανά.</string>
<string name="dialog_msg_used_tokens">andOTP will track when you use your tokens (using the \"Tap
to reveal\" feature or copying to clipboard) to be able to sort them by \"Most used\" or
\"Last used\".\n\nThis message will not be shown again.</string>
<string name="dialog_msg_keystore_error">Αποτυχία φόρτωσης του κλειδιού κρυπτογράφησης από το KeyStore. <b>Τυχόν εγγραφές που προστέθηκαν θα χαθούν.</b>\n\nΓια να είναι εφικτή η χρήση του andOTP μπορείτε να μεταβείτε στις <b>Ρυθμίσεις</b> και να αλλάξετε από <b>Κρυπτογράφηση Βάσης Δεδομένων</b> σε <b>Κωδικός πρόσβασης / PIN</b>.</string>
<string name="dialog_msg_android21_deprecation">This will be the last version of andOTP to
support Android versions below 5.1 (Lollipop). The increased effort required to maintain a
separate storage implementation just for those older versions as well as their low market
shares make a continued support infeasible for our small team.\n\nThis message will not be
shown again.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Σάρωση κωδικού QR</string>
<string name="shortcut_name_import_qr">Εισαγωγή κώδικα QR</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">Διάταξη κάρτας</string>
<string name="settings_title_label_size">Μέγεθος γραμματοσειράς ετικέτας</string>
<string name="settings_title_label_scroll">Ετικέτα κύλισης</string>
<string name="settings_title_tap_single">Single-tap</string>
<string name="settings_title_tap_double">Double-tap</string>
<string name="settings_title_thumbnail_size_ask">Μέγεθος μικρογραφίας</string>
<string name="settings_title_split_group_size">Διαχωρισμός τεκμηρίων με διάστημα</string>
<string name="settings_title_tag_functionality">Επιλογή συμπεριφοράς ετικετών</string>
<string name="settings_title_minimize_on_copy">Ελαχιστοποίηση εφαρμογής μετά την αντιγραφή του OTP</string>
<string name="settings_title_search_includes">Συμπεριφορά αναζήτησης</string>
<string name="settings_title_label_highlight_token">Επισήμανση τεκμηρίων που λήγουν</string>
<string name="settings_title_hide_global_timeout">Hide global timeout bar</string>
<string name="settings_title_show_individual_timeouts">Show individual timeouts</string>
<string name="settings_title_backup_append_date">Προσθήκη ημερομηνίας στο όνομα αρχείου</string>
<string name="settings_title_backup_ask">Ερώτηση για όνομα αρχείου</string>
<string name="settings_title_backup_directory">Κατάλογος αντιγράφων</string>
@ -63,12 +67,13 @@
<string name="settings_desc_minimize_on_copy">Η εφαρμογή θα ελαχιστοποιείται όταν αντιγράφετε το OTP στο πρόχειρο</string>
<string name="settings_desc_search_includes">Καθορίστε ποιες τιμές θα πρέπει να συμπεριληφθούν κατά την αναζήτηση</string>
<string name="settings_desc_label_highlight_token">Επισήμανση τεκμηρίου με κόκκινο χρώμα αν λήγει σε 8 δευτερόλεπτα</string>
<string name="settings_desc_hide_global_timeout">Hide the global timeout bar shown at the top of the screen</string>
<string name="settings_desc_show_individual_timeouts">Show an individual timeout bar for every entry.
This can slow down the app, only enable if really necessary.</string>
<string name="settings_desc_backup_append_date">Προσθέστε την τρέχουσα ημερομηνία και ώρα στο προτεινόμενο
όνομα αρχείου αντιγράφου ασφαλείας</string>
<string name="settings_desc_backup_ask">Ερώτηση για το όνομα του αρχείου κάθε φορά που δημιουργείται ένα αντίγραφο ασφαλείας ή
επαναφορά αυτού</string>
<string name="settings_desc_backup_directory">Κατάλογος αυτόματων αντιγράφων και αντίγραφα broadcast
(τα ονόματα αρχείων θα εξαρτώνται από τον τύπο αντιγράφων ασφαλείας)</string>
<string name="settings_desc_backup_password">Ορισμός κωδικού που χρησιμοποιείται για την κρυπτογράφηση
αντιγράφων ασφαλείας</string>
<string name="settings_desc_auto_backup_password_enc">Δημιουργία ενός νέου κρυπτογραφημένου αντιγράφου ασφαλείας όταν νέες
@ -86,8 +91,6 @@
ενσωματωμένης υπηρεσίας δημιουργίας αντιγράφων κλειδιών και προτιμήσεων</string>
<string name="settings_desc_clear_keystore">Διαγραφή κλειδιού κρυπτογράφησης από το KeyStore</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Αυτή η λειτουργία απαιτεί τουλάχιστον Android 5.0
(Lollipop) για να δουλέψει</string>
<string name="settings_toast_auth_device_not_secure">Αυτή η λειτουργία απαιτεί μια ασφαλή οθόνη κλειδώματος
και μπορεί να ρυθμιστεί στις (Ρυθμίσεις -&gt; Ασφάλεια -&gt; Κλείδωμα οθόνης)</string>
<string name="settings_toast_password_empty">Δεν επιτρέπεται ένας κενός κωδικός πρόσβασης, ορίστε την
@ -150,6 +153,12 @@
<item>Προεπιλογή</item>
<item>Πλήρης</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nothing</item>
<item>Reveal/Hide</item>
<item>Copy</item>
<item>Copy and go to background</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Ετικέτα</item>
<item>Εκδότης</item>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">Nombre</string>
<string name="menu_sort_last_used">Último usado</string>
<string name="menu_sort_most_used">Más utilizado</string>
<string name="menu_popup_edit_issuer">Editar emisor</string>
<string name="menu_popup_edit_label">Editar nombre</string>
<string name="menu_popup_edit">Editar</string>
<string name="menu_popup_change_image">Cambiar imagen</string>
<string name="menu_popup_edit_tags">Editar etiquetas</string>
<string name="menu_popup_remove">Eliminar</string>
<string name="menu_popup_show_qr_code">Mostrar código QR</string>
<!-- Toast messages -->
<string name="toast_auth_failed">La autentificación ha fallado, por favor inténtelo otra vez!</string>
<string name="toast_auth_failed_fatal">La autenticación ha fallado, cerrando andOTP!</string>
@ -59,26 +58,36 @@
<string name="toast_qr_error">No se pudo encontrar/confirmar el código QR</string>
<string name="toast_qr_checksum_exception">Falló la suma de verificación al decodificar el código QR</string>
<string name="toast_qr_format_error">Error de formato en el código QR</string>
<string name="toast_qr_unsuported">Código QR no soportado</string>
<string name="toast_qr_failed_to_generate">Error al generar código QR</string>
<!-- Errors -->
<string name="error_invalid_secret">Secreto inválido</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Autenticar</string>
<string name="dialog_title_manual_entry">Introducir datos</string>
<string name="dialog_title_remove">Eliminar</string>
<string name="dialog_title_rename">Renombrar</string>
<string name="dialog_title_counter">Contador</string>
<string name="dialog_title_used_tokens">Tokens utilizados</string>
<string name="dialog_title_used_tokens">Uso de tokens</string>
<string name="dialog_title_keystore_error">Error en el almacen de claves</string>
<string name="dialog_title_qr_code">Código QR</string>
<string name="dialog_title_android21_depreaction">Aviso de deprecación</string>
<string name="dialog_title_enter_password">Introduzca la contraseña</string>
<string name="dialog_label_enter_password">Introduzca la contraseña</string>
<string name="dialog_label_confirm_password">Confirmar contraseña</string>
<string name="dialog_msg_auth">Por favor, introduce los credenciales del dispositivo para iniciar andOTP.</string>
<string name="dialog_msg_confirm_delete">¿Seguro que desea eliminar la cuenta \"%1$s\"?</string>
<string name="dialog_msg_used_tokens">In order for andOTP to recognize which tokens get used you
have to have either \"tap to reveal\" enabled or use the copy button. This applies to the
sorting of the tokens by \"most used\" as well as by \"last used\".\n\nThis message will not
be shown again.</string>
<string name="dialog_msg_used_tokens">andOTP hará un seguimiento cuando utilice sus tokens (usando la función \"Toque
para mostrar\" o copiando al portapapeles) para poder ordenarlos por \"Más usado\" o
\"Última utilización\".\n\nEste mensaje no se mostrará de nuevo.</string>
<string name="dialog_msg_keystore_error">Error al cargar la clave del almacen de claves.
<b>Cualquier entrada añadida se perderá.</b>\n\nPara poder seguir usando andOTP puedes ir
a <b>Ajustes</b> y cambiar el <b>Cifrado de base de datos</b> a <b>Contraseña / PIN</b>.</string>
<string name="dialog_msg_android21_deprecation">Esta será la última versión de andOTP para
versiones de Android inferiores a 5.1 (Lollipop). El esfuerzo necesario para mantener una
implementación de almacenamiento separada solo para esas versiones más antiguas, así como la baja cantidad
de dispositivos activos hacen que no sea sostenible su mantenimiento.\n\nEst e mensaje no será
mostrado de nuevo.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Escanear código QR</string>
<string name="shortcut_name_import_qr">Importar código QR</string>

View file

@ -14,7 +14,7 @@
<string name="settings_title_encryption">Cifrado de base de datos</string>
<string name="settings_title_panic">Botón del pánico</string>
<string name="settings_title_relock_screen_off">Volver a bloquear cuando se apaga la pantalla</string>
<string name="settings_title_relock_background">Re-lock when going into the background</string>
<string name="settings_title_relock_background">Volver a bloquear cuando se ponga en segundo plano</string>
<string name="settings_title_auth_inactivity">Volver a bloquear por inactividad</string>
<string name="settings_title_auth_inactivity_delay">Retraso para volver a bloquear por inactividad</string>
<string name="settings_title_block_accessibility">Bloquear servicios de accesibilidad</string>
@ -23,12 +23,16 @@
<string name="settings_title_card_layout">Diseño de tarjeta</string>
<string name="settings_title_label_size">Tamaño de fuente</string>
<string name="settings_title_label_scroll">Desplazar etiqueta</string>
<string name="settings_title_tap_single">Un toque</string>
<string name="settings_title_tap_double">Doble toque</string>
<string name="settings_title_thumbnail_size_ask">Tamaño de miniatura</string>
<string name="settings_title_split_group_size">Separar el código con espacio</string>
<string name="settings_title_tag_functionality">Comportamiento de la selección de etiquetas</string>
<string name="settings_title_minimize_on_copy">Minimizar aplicación después de copiar OTP</string>
<string name="settings_title_search_includes">Comportamiento de búsqueda</string>
<string name="settings_title_label_highlight_token">Resaltar tokens que expiran</string>
<string name="settings_title_hide_global_timeout">Ocultar barra de tiempo de espera global</string>
<string name="settings_title_show_individual_timeouts">Mostrar límites de tiempo individuales</string>
<string name="settings_title_backup_append_date">Concatenar fecha al nombre del fichero</string>
<string name="settings_title_backup_ask">Pedir nombre de fichero</string>
<string name="settings_title_backup_directory">Carpeta para copias de seguridad</string>
@ -62,12 +66,13 @@
<string name="settings_desc_minimize_on_copy">La aplicación se minimizará cuando copie el OTP al portapapeles</string>
<string name="settings_desc_search_includes">Especifique qué valores deben incluirse al buscar</string>
<string name="settings_desc_label_highlight_token">Resaltar token en rojo si expira en 8 segundos</string>
<string name="settings_desc_hide_global_timeout">Ocultar la barra de tiempo de espera global mostrada en la parte superior de la pantalla</string>
<string name="settings_desc_show_individual_timeouts">Mostrar una barra de tiempo de espera individual para cada entrada.
Esto puede ralentizar la aplicación, solo actívalo si es realmente necesario.</string>
<string name="settings_desc_backup_append_date">Concatena la fecha y hora actual al nombre sugerido
para el fichero de la copia de seguridad</string>
<string name="settings_desc_backup_ask">Pedir nombre de fichero cada vvez que una copia de seguridad
es creada o restaurada</string>
<string name="settings_desc_backup_directory">Directorio para copias de seguridad automáticas y de difusión
(los nombres de los archivos dependerán del tipo de copia de seguridad)</string>
<string name="settings_desc_backup_password">Establecer la contraseña usada para cifrar las
copias de seguridad</string>
<string name="settings_desc_auto_backup_password_enc">Crea una nueva copia de seguridad cifrada cuando se añaden o editan nuevas entradas
@ -85,8 +90,6 @@
incorporado en Android para hacer copias de seguridad de las claves y preferencias</string>
<string name="settings_desc_clear_keystore">Elimina la clave de cifrado del almacen de claves</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Esta característica requiere al menos
Android 5.0 (Lollipop)</string>
<string name="settings_toast_auth_device_not_secure">Esta característica requiere bloqueo de salvapantallas
seguro (Settings -&gt; Security -&gt; Screenlock)</string>
<string name="settings_toast_password_empty">Una contraseña vacía no está permitida,
@ -149,6 +152,12 @@
<item>Predeterminado</item>
<item>Completa</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nada</item>
<item>Revelar/Ocultar</item>
<item>Copiar</item>
<item>Copiar y poner en segundo plano</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Nombre</item>
<item>Emisor</item>
@ -157,7 +166,7 @@
<string-array name="settings_entries_auto_backup_password_enc">
<item>Desactivado</item>
<item>Nuevas entradas</item>
<item>Any Edits</item>
<item>Cualquier edición</item>
</string-array>
<string-array name="settings_entries_theme">
<item>Tema claro</item>

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="about_activity_title">درباره</string>
<string name="about_description">احراز هویت ۲ مرحله‌ای متن‌باز برای اندروید</string>
<string name="about_description">احراز هویت ۲ مرحله‌ای منبع‌باز برای اندروید</string>
<string name="about_tab_about">درباره</string>
<string name="about_tab_libraries">کتابخانه‌ها</string>
<!-- Misc -->
@ -11,8 +10,8 @@
<string name="about_label_MIT">مجوز MIT</string>
<string name="about_label_source">کد منبع</string>
<string name="about_label_version">نسخه</string>
<string name="about_label_faq">FAQ</string>
<string name="about_label_faq_long">Frequently asked questions</string>
<string name="about_label_faq">سوالات متداول</string>
<string name="about_label_faq_long">سوالات متداول</string>
<!-- Authors -->
<string name="about_title_authors">سازندگان</string>
<string name="about_label_main_developer">توسعه‌دهنده اصلی</string>
@ -31,7 +30,7 @@
<string name="about_thumbnails_disclaimer_no4"><b>۴. لطفا از تصاویر بندانگشتی برای هیچ هدفی به جز نشان دادن یک برند یا سرویس خاص استفاده نکنید</b></string>
<!-- Support -->
<string name="about_title_support">حمایت از توسعه</string>
<string name="about_desc_support">Find out how you can support the development of andOTP</string>
<string name="about_desc_support">ببینید که چه طور می‌توانید از توسعه andOTP حمایت کنید</string>
<string name="about_title_special_features">قابلیت‌های ویژه</string>
<string name="about_dialog_special_features">آیا مطمئن هستید که می‌خواهید قابلیت‌های ویژه را فعال کنید؟ بیشتر آن‌ها الگوریتم‌های OTP غیراستاندارد هستند که توسط یک درخواست ویژه پیاده‌سازی شده‌اند. آن‌ها <b>به صورت رسمی پشتیبانی نمی‌شوند</b> و می‌توانند همراه با <b>محدودیت‌های خاصی</b> باشند، لطفا برای آموختن بیشتر قبل از استفاده از آن‌ها صفحه «قابلیت‌های ویژه» در دانشنامه Github را بخوانید (و خوب متوجه شوید).</string>
<string name="about_toast_special_features">قابلیت‌های ویژه فعال شدند</string>

View file

@ -1,18 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="auth_activity_title">احراز هویت</string>
<!-- Hints -->
<string name="auth_hint_password">رمز عبور</string>
<string name="auth_hint_password">گذرواژه</string>
<string name="auth_hint_pin">پین</string>
<!-- Messages -->
<string name="auth_msg_authenticate">لطفا برای شروع andOTP احراز هویت کنید!</string>
<string name="auth_msg_confirm_encryption">لطفا احراز هویت خود را تایید کنید تا کلید رمزگذاری جدید تولید شوند!</string>
<string name="auth_msg_authenticate">لطفا برای شروع andOTP
احراز هویت کنید!</string>
<string name="auth_msg_confirm_encryption">لطفا احراز هویت خود را تایید کنید تا
کلید رمزنگاری جدید تولید شوند!</string>
<!-- Buttons -->
<string name="auth_button_unlock">بازگشایی قفل</string>
<!-- Toast messages -->
<string name="auth_toast_password_missing">لطفا در <b>تنظیمات</b> یک رمز عبور تعیین کنید!</string>
<string name="auth_toast_password_missing">لطفا در <b>تنظیمات</b> یک گذرواژه تعیین کنید!</string>
<string name="auth_toast_pin_missing">لطفا در <b>تنظیمات</b> یک پین تعیین کنید!</string>
<string name="auth_toast_password_again">رمز عبور اشتباه است. لطفاً دوباره امتحان کنید!</string>
<string name="auth_toast_pin_again">پین اشتباه است. لطفاً دوباره امتحان کنید!</string>
<string name="auth_toast_password_again">گذرواژه نادرست است. لطفاً دوباره تلاش کنید!</string>
<string name="auth_toast_pin_again">پین نادرست است. لطفاً دوباره تلاش کنید!</string>
</resources>

View file

@ -1,28 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="backup_activity_title">نسخه‌های پشتیبان</string>
<string name="backup_category_plain">پشتیبان‌های متن ساده</string>
<string name="backup_category_crypt">پشتیبان‌های رمزگذاری شده</string>
<string name="backup_category_crypt">پشتیبان‌های رمزنگاری شده</string>
<string name="backup_category_openpgp">پشتیبان‌های OpenPGP</string>
<string name="backup_title_export_plain">پشتیبان‌گیری (متن ساده)</string>
<string name="backup_title_export_crypt">پشتیبان‌گیری (رمزگذاری شده)</string>
<string name="backup_title_export_crypt">پشتیبان‌گیری (رمزنگاری شده)</string>
<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_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>
<string name="backup_desc_export_crypt">پشتیبان‌گیری از همه حساب‌ها در پرونده JSON رمز دار</string>
<string name="backup_desc_export_openpgp">پشتیبان‌گیری از همه حساب‌ها در پرونده JSON رمزگذاری شده با OpenPGP</string>
<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_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>
<string name="backup_desc_openpgp_keyid">قبل از اینکه یک پشتیبان رمزگذاری شده بسازید، باید یک کلید OpenPGP در <b>تنظیمات</b> انتخاب کنید. </string>
<string name="backup_desc_openpgp_keyid">قبل از اینکه یک پشتیبان رمزنگاری شده بسازید، باید یک کلید OpenPGP در <b>تنظیمات</b> انتخاب کنید. </string>
<string name="backup_desc_replace">اگر فعال باشد، در زمان وارد کردن یک پشتیبان، همه موارد قدیمی جایگزین می‌شوند و فقط پشتیبان باقی می‌ماند. اگر غیرفعال باشد، موارد قدیمی و محتوای پشتیبان با هم ترکیب می‌شوند.</string>
<!-- Dialogs -->
<string name="backup_dialog_title_security_warning">هشدار امنیتی</string>
@ -33,8 +32,9 @@
<string name="backup_receiver_encrypted_disabled">پشتیبان‌های رمزگذاری شده در حال حاضر مجاز نیستند، لطفا به تنظیمات بروید و آن‌ها را فعال کنید</string>
<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_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>
@ -53,6 +53,6 @@
<string name="backup_toast_storage_permissions">اجازه دسترسی به محل ذخیره‌سازی داده نشده</string>
<string name="backup_toast_openpgp_error">خطای OpenPGP: %s</string>
<string name="backup_toast_openpgp_not_verified">هیچ امضای تایید شده‌ای شناسایی نشد</string>
<string name="backup_toast_crypt_password_not_set">رمز عبور تنظیم نشده، <b>تنظیمات</b> را بررسی کنید</string>
<string name="backup_toast_file_selection_failed">Can\'t open file selection dialog!</string>
<string name="backup_toast_crypt_password_not_set">گذرواژه تنظیم نشده، <b>تنظیمات</b> را بررسی کنید</string>
<string name="backup_toast_file_selection_failed">ناتوانی در باز کردن پنجره انتخاب پرونده!</string>
</resources>

View file

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="intro_slide1_title">بیا شروع کنیم</string>
<string name="intro_slide1_desc">به <b>andOTP</b> خوش آمدید، این مراحل شما را در تنظیمات اولیه راهنمایی می‌کند. لطفا با توجه و دقت بخوانید، در غیر این صورت، ممکن است داده‌هایتان را از دست بدهید! \n\n نگران نباشید! شما می‌توانید هر خصیصه‌ای را بعدا در <b>تنظیمات</b> تغییر دهید.</string>
<string name="intro_slide2_desc">برای مطمئن شدن از امنیت حساب‌هایتان <b>andOTP</b> داده‌های شما را فقط در پرونده‌های رمزگذاری شده ذخیره می‌کند. اینجا شما می‌توانید روش رمزگذاری را انتخاب کنید.</string>
<string name="intro_slide1_desc">به <b>andOTP</b> خوش آمدید، این مراحل شما را در تنظیمات اولیه راهنمایی می‌کند. لطفا با توجه و دقت بخوانید، در غیر این صورت، ممکن است داده‌هایتان را از دست بدهید! \n\n نگران نباشید! شما می‌توانید هر گزینه ای را بعدا در <b>تنظیمات</b> تغییر دهید.</string>
<string name="intro_slide2_desc">برای مطمئن شدن از امنیت حساب‌هایتان <b>andOTP</b> داده‌های شما را فقط در پرونده‌های رمزنگاری شده ذخیره می‌کند. اینجا شما می‌توانید روش رمزنگاری را انتخاب کنید.</string>
<string name="intro_slide2_desc_keystore">KeyStore یک کامپوننت اندروید است، برای ذخیره امن کلیدهای رمزنگاری. فایده این روش این است که کلیدها جدا از پرونده‌های داده ذخیره می‌شوند و می‌توانند توسط سخت‌افزارهای رمزنگاری (اگر دستگاه از آن پشتیبانی کند) پشتیبانی شوند. با این حال، با توجه به اینکه کلیدها با داده‌های برنامه‌ها ذخیره نمی‌شوند، <b>این روش مانع کار کردن راه حل‌های پشتیبان‌گیری خارجی (مثل Titanium) می‌شود</b>. اگر این روش را انتخاب کنید، شما مجبورید به تکیه به توابع پشتیبان‌گیری داخلی ارائه شده توسط <b>andOTP</b> هستید. \n\n<b>هشدار</b>: KeyStore معروف است به ایجاد مشکلات زیاد، لطفا فقط زمانی از آن استفاده کنید که شما کاملا مجبور هستید. اگر برایتان مهم نیست که هر بار که <b>andOTP</b> را باز می‌کنید، رمز عبور / پین وارد کنید، <b>بسیار توصیه می‌شود که به جای آن از روش‌های رمزنگاری بر پایه رمز عبور استفاده کنید</b>.</string>
<string name="intro_slide2_desc_password">این روش داده‌ها را با یک کلید که از رمز عبور یا پین تولید شده، رمزنگاری می‌کند. فایده اصلی اینجا این است که این با روش‌های پشتیبان‌گیری خارجی (مانند Titanium) کار می‌کند و از KeyStore بسیار کمتر با شکست مواجه می‌شود. با این حال، شما باید اطلاعات هویتی خود را هر بار که وارد <b>andOTP</b> می‌شوید، وارد کنید.</string>
<string name="intro_slide3_desc_keystore">اینجا شما می‌توانید یک احراز هویت تنظیم کنید تا <b>andOTP</b> را قفل کنید. از آنجایی که شما <b>KeyStore اندروید</b> را به عنوان روش رمزگذاری انتخاب کرده‌اید، این اختیاری است.</string>
<string name="intro_slide3_desc_password">اینجا شما می‌توانید یک احراز هویت تنظیم کنید تا <b>andOTP</b> را قفل کنید. از آنجایی که شما <b>رمز عبور / پین</b> را به عنوان روش رمزگذاری انتخاب کرده‌اید، شما باید یک رمز یا پین تعیین کنید تا پیش برویم.</string>
<string name="intro_slide3_warn_no_password">لطفا برای ادامه، یک رمز عبور مشخص کنید!</string>
<string name="intro_slide3_warn_no_pin">لطفا برای ادامه، یک پین مشخص کنید!</string>
<string name="intro_slide3_warn_confirm_password">لطفا برای ادامه، رمز عبور خود را تایید کنید!</string>
<string name="intro_slide2_desc_password">این روش داده‌ها را با یک کلید که از گذرواژه یا پین تولید شده، رمزنگاری می‌کند. فایده اصلی اینجا این است که این با روش‌های پشتیبان‌گیری خارجی (مانند Titanium) کار می‌کند و از KeyStore بسیار کمتر با شکست مواجه می‌شود. با این حال، شما باید اطلاعات هویتی خود را هر بار که وارد <b>andOTP</b> می‌شوید، وارد کنید.</string>
<string name="intro_slide3_desc_keystore">اینجا شما می‌توانید یک احراز هویت تنظیم کنید تا <b>andOTP</b> را قفل کنید. از آنجایی که شما <b>KeyStore اندروید</b> را به عنوان روش رمزنگاری انتخاب کرده‌اید، این اختیاری است.</string>
<string name="intro_slide3_desc_password">اینجا شما می‌توانید یک احراز هویت تنظیم کنید تا <b>andOTP</b> را قفل کنید. از آنجایی که شما <b>رمز عبور / پین</b> را به عنوان روش رمزنگاری انتخاب کرده‌اید، شما باید یک رمز یا پین تعیین کنید تا پیش برویم.</string>
<string name="intro_slide3_warn_no_password">لطفا برای ادامه، یک گذرواژه تعیین کنید!</string>
<string name="intro_slide3_warn_no_pin">لطفا برای ادامه، یک پین تعیین کنید!</string>
<string name="intro_slide3_warn_confirm_password">لطفا برای ادامه، گذرواژه خود را تایید کنید!</string>
<string name="intro_slide3_warn_confirm_pin">لطفا برای ادامه، پین خود را تایید کنید!</string>
<string name="intro_slide4_title">تمام شد</string>
<string name="intro_slide4_desc">تنظیمات شما ذخیره شدند، حالا شما آماده استفاده از <b>andOTP</b> هستید!</string>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Buttons -->
<string name="button_cancel">لغو</string>
@ -10,9 +9,9 @@
<string name="button_settings">تنظیمات</string>
<string name="button_all_tags">همه تگ‌ها</string>
<string name="button_no_tags">بدون تگ</string>
<string name="button_qr_from_image">QR code from image</string>
<string name="button_qr_from_image">کد QR از تصویر</string>
<!-- Custom formatting -->
<string name="format_custom_period">%d</string>
<string name="format_custom_period">%d ثانیه</string>
<!-- Hints -->
<string name="hint_label">برچسب</string>
<string name="hint_secret">رمز</string>
@ -23,7 +22,7 @@
<string name="label_period">دوره</string>
<string name="label_digits">ارقام</string>
<string name="label_counter">شمارنده</string>
<string name="label_issuer">Issuer</string>
<string name="label_issuer">صادر کننده</string>
<string name="label_label">برچسب</string>
<string name="label_algorithm">الگوریتم</string>
<string name="label_tags">تگ‌ها</string>
@ -33,53 +32,61 @@
<string name="drawer_close">پنهان‌کردن تگ‌ها</string>
<!-- Menu -->
<string name="menu_main_about">درباره</string>
<string name="menu_main_backup">پشتیبان</string>
<string name="menu_main_backup">پشتیبان گیری</string>
<string name="menu_main_search">جستجو</string>
<string name="menu_main_settings">تنظیمات</string>
<string name="menu_main_sort">مرتب‌سازی</string>
<string name="menu_sort_none">نامرتب</string>
<string name="menu_sort_issuer">Issuer</string>
<string name="menu_sort_issuer">صادر کننده</string>
<string name="menu_sort_label">برچسب</string>
<string name="menu_sort_last_used">آخرین بار استفاده</string>
<string name="menu_sort_most_used">Most used</string>
<string name="menu_popup_edit_issuer">Edit issuer</string>
<string name="menu_popup_edit_label">ویرایش برچسب</string>
<string name="menu_sort_most_used">پراستفاده‌ترین</string>
<string name="menu_popup_edit">ویرایش</string>
<string name="menu_popup_change_image">تغییر تصویر</string>
<string name="menu_popup_edit_tags">ویرایش تگ‌ها</string>
<string name="menu_popup_remove">حذف</string>
<string name="menu_popup_show_qr_code">نمایش کد QR</string>
<!-- Toast messages -->
<string name="toast_auth_failed">مشکل در احراز هویت، لطفا دوباره امتحان کنید!</string>
<string name="toast_auth_failed_fatal">مشکل در احراز هویت، در حال بستن andOTP!</string>
<string name="toast_auth_failed">احراز هویت ناموفق بود، لطفا دوباره تلاش کنید!</string>
<string name="toast_auth_failed_fatal">احراز هویت ناموفق بود، در حال بستن andOTP!</string>
<string name="toast_copied_to_clipboard">به حافظه موقت کپی شد</string>
<string name="toast_entry_exists">این مورد از پیش وجود دارد</string>
<string name="toast_invalid_qr_code">کد QR نامعتبر</string>
<string name="toast_encryption_key_empty">کلید رمزگذاری بارگذاری نشده</string>
<string name="toast_intent_creation_failed">Invalid intent-provided code</string>
<string name="toast_intent_creation_succeeded">Intent-provided code added</string>
<string name="toast_file_load_error">Could not open the file</string>
<string name="toast_qr_error">Could not find/confirm QR code</string>
<string name="toast_qr_checksum_exception">Checksum verification failed while decoding QR code</string>
<string name="toast_qr_format_error">Format error in QR code</string>
<string name="toast_encryption_key_empty">کلید رمزنگاری بارگذاری نشده</string>
<string name="toast_intent_creation_failed">کد ارائه شده intent نادرست می باشد</string>
<string name="toast_intent_creation_succeeded">کد ارائه شده intent افزده شد</string>
<string name="toast_file_load_error">ناتوانی در باز کردن پرونده</string>
<string name="toast_qr_error">ناتوانی در یافتن/تایید کد QR</string>
<string name="toast_qr_checksum_exception">تایید Checksum هنگام رمزگشایی کد QR ناموفق بود</string>
<string name="toast_qr_format_error">خطای قالب در کد QR</string>
<string name="toast_qr_unsuported">کد QR پشتیبانی نمی شود</string>
<string name="toast_qr_failed_to_generate">ناموفق در تولید کد QR</string>
<!-- Errors -->
<string name="error_invalid_secret">رمز نامعتبر</string>
<!-- Dialogs -->
<string name="dialog_title_auth">احراز هویت</string>
<string name="dialog_title_manual_entry">جزئیات را وارد کنید</string>
<string name="dialog_title_remove">حذف</string>
<string name="dialog_title_rename">تغییر نام</string>
<string name="dialog_title_counter">شمارنده</string>
<string name="dialog_title_used_tokens">Used tokens</string>
<string name="dialog_title_used_tokens">کاربرد توکن</string>
<string name="dialog_title_keystore_error">خطای KeyStore</string>
<string name="dialog_title_enter_password">رمز عبور را وارد کنید</string>
<string name="dialog_label_enter_password">رمز عبور را وارد کنید</string>
<string name="dialog_label_confirm_password">تایید رمز عبور</string>
<string name="dialog_title_qr_code">کد QR</string>
<string name="dialog_title_android21_depreaction">اخطار استهلاک</string>
<string name="dialog_title_enter_password">گذرواژه را وارد کنید</string>
<string name="dialog_label_enter_password">گذرواژه را وارد کنید</string>
<string name="dialog_label_confirm_password">تایید گذرواژه</string>
<string name="dialog_msg_auth">برای شروع andOTP لطفا اعتبارنامه دستگاه خود را وارد کنید.</string>
<string name="dialog_msg_confirm_delete">آیا مطمئن هستید که می‌خواهید حساب «%1$s» را حذف کنید؟</string>
<string name="dialog_msg_used_tokens">In order for andOTP to recognize which tokens get used you
have to have either \"tap to reveal\" enabled or use the copy button. This applies to the
sorting of the tokens by \"most used\" as well as by \"last used\".\n\nThis message will not
be shown again.</string>
<string name="dialog_msg_keystore_error">شکست در بارگیری کلید رمزگذاری از KeyStore. <b>هر موردی که اضافه شده از دست می‌رود</b>\n\n برای اینکه هنوز از andOTP استفاده کنید، شما می‌توانید به <b>تنظیمات</b> بروید و <b>رمزگذاری پایگاه داده</b> را به <b>رمز عبور / پین</b> تغییر دهید.</string>
<string name="dialog_msg_used_tokens">andOTP اینکه چه زمانی شما از توکن هایتان استفاده میکنید را ردیابی خواهد کرد
(با استفاده از ویژگی \"tap
to reveal\" یا کپی به کلیپ بورد) تا بتواند آنان را به ترتیب \"بیشتر استفاده شده\" یا
\"آخرین استفاده\" مرتب کند.\n\n این پیام هرگز دوباره نمایش داده نخواهد شد.</string>
<string name="dialog_msg_keystore_error">شکست در بارگیری کلید رمزنگاری از KeyStore. <b>هر موردی که اضافه شده از دست می‌رود</b>\n\n برای اینکه هنوز از andOTP استفاده کنید، شما می‌توانید به <b>تنظیمات</b> بروید و <b>رمزنگاری پایگاه داده</b> را به <b>رمز عبور / پین</b> تغییر دهید.</string>
<string name="dialog_msg_android21_deprecation">این آخرین نسخه از andOTP خواهد بود که
که نسخه های اندروید پایین تر از ۵.۱(Lollipop) را پشتیبانی می کند. زحمت افزایش یافته برای حفظ
مخزن پیاده سازی جداگانه فقط برای نسخه های قدیمی و همچنین سهم کوچک آن ها در بازار ، پشتیبانی ادامه دار را برای تیم کوچک ما ناشدنی کرده.\n\n این پیام دیگر نمایش داده نخواهد شد.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">اسکن کد QR</string>
<string name="shortcut_name_import_qr">Import QR code</string>
<string name="shortcut_name_import_qr">وارد کردن کد QR</string>
<string name="shortcut_name_enter_details">جزئیات را وارد کنید</string>
</resources>

View file

@ -4,42 +4,46 @@
<!-- Categories -->
<string name="settings_category_title_security">امنیت</string>
<string name="settings_category_title_ui">رابط کاربری</string>
<string name="settings_category_title_backup">پشتیبان</string>
<string name="settings_category_title_backup">پشتیبان گیری</string>
<!-- Titles -->
<string name="settings_title_tap_to_reveal">ضربه برای آشکار کردن</string>
<string name="settings_title_tap_to_reveal_timeout">وقفه برای ضربه برای آشکار کردن</string>
<string name="settings_title_auth">احراز هویت</string>
<string name="settings_title_auth_password">رمز عبور</string>
<string name="settings_title_auth_password">گذرواژه</string>
<string name="settings_title_auth_pin">پین</string>
<string name="settings_title_encryption">رمزگذاری پایگاه داده</string>
<string name="settings_title_encryption">رمزنگاری پایگاه داده</string>
<string name="settings_title_panic">ماشه هراس</string>
<string name="settings_title_relock_screen_off">در زمان خاموش شدن صفحه، قفل شو</string>
<string name="settings_title_relock_background">Re-lock when going into the background</string>
<string name="settings_title_auth_inactivity">Re-lock on inactivity</string>
<string name="settings_title_auth_inactivity_delay">Delay for inactivity re-lock</string>
<string name="settings_title_block_accessibility">Block accessibility services</string>
<string name="settings_title_relock_background">هنگام رفتن به پس زمینه قفل شو</string>
<string name="settings_title_auth_inactivity">هنگام عدم فعالیت قفل شو</string>
<string name="settings_title_auth_inactivity_delay">تاخیر برای قفل شدن هنگام عدم فعالیت</string>
<string name="settings_title_block_accessibility">مسدود کردن خدمات دسترسی</string>
<string name="settings_title_lang">زبان</string>
<string name="settings_title_theme">پوسته</string>
<string name="settings_title_card_layout">Card layout</string>
<string name="settings_title_label_size">اندازه خط برچسب</string>
<string name="settings_title_label_scroll">اسکرول برچسب</string>
<string name="settings_title_card_layout">چیدمان کارت‌ها</string>
<string name="settings_title_label_size">اندازه قلم برچسب</string>
<string name="settings_title_label_scroll">برچسب فهرست</string>
<string name="settings_title_tap_single">تک-ضربه</string>
<string name="settings_title_tap_double">ضربه-دوتایی</string>
<string name="settings_title_thumbnail_size_ask">اندازه تصاویر بند انگشتی</string>
<string name="settings_title_split_group_size">توکن را با فاصله جدا کن</string>
<string name="settings_title_tag_functionality">رفتار انتخاب تگ</string>
<string name="settings_title_minimize_on_copy">Minimize app after copying OTP</string>
<string name="settings_title_search_includes">Search behavior</string>
<string name="settings_title_label_highlight_token">Highlight expiring tokens</string>
<string name="settings_title_minimize_on_copy">کوچک کردن برنامه بعد از روگرفت از رمز یک‌بارمصرف</string>
<string name="settings_title_search_includes">رفتار جستجو</string>
<string name="settings_title_label_highlight_token">برجسته سازی توکن های منقضی شده</string>
<string name="settings_title_hide_global_timeout">پنهان کردن نوار سراسری زمان بندی</string>
<string name="settings_title_show_individual_timeouts">نمایش زمان بندی های منحصر بفرد</string>
<string name="settings_title_backup_append_date">اضافه کردن تاریخ به نام پرونده</string>
<string name="settings_title_backup_ask">پرسیدن نام پرونده</string>
<string name="settings_title_backup_directory">پرونده پشتیبان</string>
<string name="settings_title_backup_password">رمز عبور پشتیبان</string>
<string name="settings_title_auto_backup_password_enc">Automatically backup on new entries</string>
<string name="settings_title_backup_broadcasts">Backup Broadcasts</string>
<string name="settings_title_backup_directory">محل پرونده پشتیبان</string>
<string name="settings_title_backup_password">گذرواژه پرونده پشتیبان</string>
<string name="settings_title_auto_backup_password_enc">پشتیبان گیری خودکار در موارد تازه</string>
<string name="settings_title_backup_broadcasts">پشتیبان گیری از Broadcasts</string>
<string name="settings_title_openpgp_provider">ارائه دهنده OpenPGP</string>
<string name="settings_title_openpgp_key_encrypt">کلید رمزگذاری OpenPGP</string>
<string name="settings_title_openpgp_key_encrypt">کلید رمزنگاری OpenPGP</string>
<string name="settings_title_openpgp_key_sign">کلید امضای OpenPGP (اختیاری)</string>
<string name="settings_title_openpgp_verify">تایید پشتیبان‌های رمزگذاری شده</string>
<string name="settings_title_special_features">فعال‌کردن ویژگی‌های ویژه</string>
<string name="settings_title_openpgp_verify">تایید پشتیبان‌های رمزنگاری شده</string>
<string name="settings_title_special_features">فعال‌کردن قابلیت های ویژه</string>
<string name="settings_title_enable_screenshot">فعال کردن عکس‌برداری از صفحه نمایش</string>
<string name="settings_title_enable_android_backup_service">فعال کردن همسان‌سازی اندروید</string>
<string name="settings_title_clear_keystore">تمیز کردن KeyStore</string>
@ -48,83 +52,89 @@
<string name="settings_desc_tap_to_reveal_timeout">زمانی را انتخاب کنید که بعد از آن موارد آشکار شده دوباره پنهان شوند (به ثانیه)</string>
<string name="settings_desc_panic">تصمیم بگیرید که چه اتفاقی بیوفتد، زمانی که ماشه هراس دریافت می‌شود</string>
<string name="settings_desc_relock_screen_off">وقتی که صفحه نمایش خاموش شد، نیاز به احراز هویت داشته باش</string>
<string name="settings_desc_relock_background">Require authentication after the app was sent to
the background (e.g. by pressing the home button)</string>
<string name="settings_desc_auth_inactivity">Require authentication after the device has been
inactive</string>
<string name="settings_desc_auth_inactivity_delay">Select the time (in sec) after which to
require reauthentication</string>
<string name="settings_desc_block_accessibility">Hide sensitive fields from the accessibility
services. <b>DO NOT enable this if you rely on the accessibility services!</b></string>
<string name="settings_desc_relock_background">نیاز به احراز هویت بعد از اینکه برنامه به پس زمینه
فرستاده شد.(برای مثال با فشردن دکمه خانه)</string>
<string name="settings_desc_auth_inactivity">نیاز به احراز هویت بعد از اینکه دستگاه
بدون فعالیت بوده</string>
<string name="settings_desc_auth_inactivity_delay">میزان زمانی (به ثانیه) که بعد از آن
احراز هویت دوباره نیاز است را انتخاب کنید</string>
<string name="settings_desc_block_accessibility">پنهان کردن فیلد های حساس از خدمات
دسترسی.<b>این گزینه را اگر به خدمات دسترسی تکیه دارید فعال نکنید! </b></string>
<string name="settings_desc_label_scroll">برچسب‌های بلند را اسکرول کن، به جای اینکه ادامه آن‌ها را ببُری</string>
<string name="settings_desc_minimize_on_copy">App will be minimized when you copy the OTP to clipboard</string>
<string name="settings_desc_search_includes">Specify which values should be included when searching</string>
<string name="settings_desc_label_highlight_token">Highlights token in red if it\'s expiring in 8 seconds</string>
<string name="settings_desc_minimize_on_copy">برنامه زمانی که شما رمز یکبار مصرف را به کلیپ بورد کپی کنید کوچک خواهد شد</string>
<string name="settings_desc_search_includes">مشخص کنید کدام مقادیر باید هنگام جستجو شامل شوند</string>
<string name="settings_desc_label_highlight_token">توکن را هنگامی که طی ۸ ثانیه منقضی میشود را به رنگ قرمز برجسته میکند</string>
<string name="settings_desc_hide_global_timeout">نوار زمان بندی سراسری نشان داده شده در بالای صفحه را پنهان کن</string>
<string name="settings_desc_show_individual_timeouts">برای هر مورد نوار زمان بندی منحصر بفرد نمایش داده شود.
اگر واقعا مورد نیاز است فعال شود ، زیرا میتواند موجب کند شدن برنامه شود.</string>
<string name="settings_desc_backup_append_date">تاریخ و زمان فعلی را به نام پرونده پشتیبان پیشنهادی اضافه کن</string>
<string name="settings_desc_backup_ask">هر بار پشتیبان ساخته می‌شود یا بازنشانی می‌شود، یک نام پرونده بپرس</string>
<string name="settings_desc_backup_directory">Directory for automatic and broadcast backups
(filenames will depend on the backup type)</string>
<string name="settings_desc_backup_password">رمز عبوری که برای رمزگذاری پشتیبان‌ها استفاده می‌شود را تنظیم کنید</string>
<string name="settings_desc_auto_backup_password_enc">Creates a new encrypted backup when new
entries are added, or edited, if settings conditions are met</string>
<string name="settings_desc_backup_password">گذرواژه ای که برای رمزنگاری پشتیبان‌ها استفاده می‌شود را تنظیم کنید</string>
<string name="settings_desc_auto_backup_password_enc">زمانی که موارد جدید افزوده، یا ویرایش شده
اگر شرایط تنظیمات برآورده شود، یک نسخه پشتیبان رمزنگاری شده تازه ایجاد میکند</string>
<string name="settings_desc_backup_broadcasts">انتخاب کنید کدام نوع پشتیبان‌گیری بتواند توسط Broadcast های برنامه‌های سوم شخص اعمال شود</string>
<string name="settings_desc_openpgp_key_encrypt">آدرس پست الکترونیکی کلید OpenPGP استفاده شود برای رمزگذاری پشتیبان‌ها</string>
<string name="settings_desc_openpgp_verify">پشتیبان‌های رمزگذاری شده، فقط اگر با یک کلید معتبر امضا شده اند، بازنشانی شوند</string>
<string name="settings_desc_openpgp_key_encrypt">آدرس پست الکترونیکی کلید OpenPGP استفاده شود برای رمزنگاری پشتیبان‌ها</string>
<string name="settings_desc_openpgp_verify">پشتیبان‌های رمزنگاری شده، فقط اگر با یک کلید معتبر امضا شده اند، بازنشانی شوند</string>
<string name="settings_desc_special_features">تیک را بردارید تا قابلیت‌های ویژه دوباره غیرفعال شوند</string>
<string name="settings_desc_enable_screenshot">اجازه بده تا از صفحه اصلی برنامه تصویر برداری شود (به صورت پیشفرض به دلایل امنیتی غیرفعال است)</string>
<string name="settings_desc_enable_android_backup_service">AndOTP را قادر می‌کند تا از سرویس پشتیبان‌گیری داخلی اندروید استفاده کند تا از کلید‌ها و تنظیمات پشتیبان‌گیری کند</string>
<string name="settings_desc_clear_keystore">کلید رمزگذاری را از KeyStore حذف کن</string>
<string name="settings_desc_clear_keystore">کلید رمزنگاری را از KeyStore حذف کن</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">این قابلیت حداقل به اندروید ۵. ۰ (Lollipop) نیاز دارد تا کار کند</string>
<string name="settings_toast_auth_device_not_secure">این قابلیت به یک قفل صفحه امن نیاز دارد تا تنظیم شود (تنظیمات-&lt; امنیت-&lt; قفل صفحه)</string>
<string name="settings_toast_password_empty">یک رمز عبور خالی مجاز نیست، احراز هویت را روی «هیچکدام» تنظیم کنید تا غیرفعال شود!</string>
<string name="settings_toast_encryption_changing">تلاش برای تغییر رمزگذاری پایگاه داده، لطفا صبر کنید!</string>
<string name="settings_toast_encryption_change_success">رمزگذاری پایگاه داده با موفقیت تغییر کرد!</string>
<string name="settings_toast_encryption_change_failed">شکست در تغییر رمزگذاری پایگاه داده، در حال برگشت به حالت اصلی!</string>
<string name="settings_toast_password_empty">یک گذرواژه خالی مجاز نیست، احراز هویت را روی «هیچکدام» تنظیم کنید تا غیرفعال شود!</string>
<string name="settings_toast_encryption_changing">تلاش برای تغییر رمزنگاری پایگاه داده، لطفا صبر کنید!</string>
<string name="settings_toast_encryption_change_success">رمزنگاری پایگاه داده با موفقیت تغییر کرد!</string>
<string name="settings_toast_encryption_change_failed">شکست در تغییر رمزنگاری پایگاه داده، در حال برگشت به حالت اصلی!</string>
<string name="settings_toast_encryption_backup_failed">شکست در ساخت یک پشتیبان داخلی، در حال بازگشت به حالت قبل!</string>
<string name="settings_toast_encryption_no_key">شکست در گرفتن کلید رمزگذاری، در حال بازگشت به حالت قبل!</string>
<string name="settings_toast_encryption_no_key">شکست در گرفتن کلید رمزنگاری، در حال بازگشت به حالت قبل!</string>
<string name="settings_toast_encryption_auth_failed">شکست در احراز هویت!</string>
<string name="settings_toast_auth_upgrade_failed">شکست در بهبود رمز عبور / پین به صورت نامحسوس به رمزگذاری جدید، لطفا به صورت دستی آن را در تنظیمات باز تنظیم کنید!</string>
<string name="settings_toast_auth_upgrade_failed">شکست در بهبود رمز عبور / پین به صورت نامحسوس به رمزنگاری جدید، لطفا به صورت دستی آن را در تنظیمات باز تنظیم کنید!</string>
<string name="settings_dialog_title_warning">هشدار</string>
<string name="settings_dialog_title_error">خطا</string>
<string name="settings_dialog_title_clear_keystore">تمیز کردن KeyStore؟</string>
<string name="settings_dialog_title_clear_keystore">پاکسازی KeyStore؟</string>
<string name="settings_dialog_title_android_sync">همسان‌سازی اندروید</string>
<string name="settings_dialog_msg_encryption_change">andOTP حالا سعی خواهد کرد تا رمزگذاری پایگاه داده را تغییر دهد. در صورت شکست، یک پشتیبان داخلی بازنشانی می‌شود و رمزگذاری بدون تغییر باقی می‌ماند.\n\n<b>با این حال، این همیشه ایده خوبیست که یک پشتیبان داشته باشید، برای مواردی که چیز پیش‌بینی نشده‌ای اتفاق بیوفتد!</b></string>
<string name="settings_dialog_msg_auth_invalid_with_encryption">شما می‌توانید همیشه از رمز عبور یا پین استفاده کنید، تا وقتی که رمزگذاری پایگاه داده روی «رمز عبور / پین» تنظیم شده باشد!</string>
<string name="settings_dialog_msg_encryption_invalid_with_auth">شما ابتدا باید احراز هویت را روی «رمز عبور» یا «پین» تنظیم کنید!</string>
<string name="settings_dialog_msg_encryption_invalid_without_credentials">شما باید ابتدا یک رمز عبور یا پین تنظیم کنید، پیش از آنکه رمزگذاری را تغییر دهید!</string>
<string name="settings_dialog_msg_clear_keystore_password">در برخی موارد، تمیز کردن KeyStore می‌تواند کمک کند به حل مشکلات. شما باید فقط زمانی آن را انجام دهید که می‌دانید در حال انجام چه کاری هستید!\n\n از آنجایی که <b>رمزگذاری پایگاه داده</b> روی <b>رمز عبور / پین</b> تنظیم شده است، شما نباید با انجام آن هیچ داده‌ای را از دست بدهید (اما به هر حال پشتیبان‌گیری هرگز ضرر ندارد).\n\n<b>آیا شما واقعا می‌خواهید که KeyStore را پاک‌سازی کنید؟</b></string>
<string name="settings_dialog_msg_clear_keystore_keystore">در برخی موارد، تمیز کردن KeyStore می‌تواند کمک کند به حل مشکلات. شما باید فقط زمانی آن را انجام دهید که می‌دانید در حال انجام چه کاری هستید!\n\n<b>هشدار</b>: از آنجایی که <b>رمزگذاری پایگاه داده</b> روی <b>KeyStore اندروید</b> تنظیم شده است، شما همه حساب‌های خود را از دست می‌دهید. مطمئن شوید که پشتیبان دارید!\n\n<b>آیا شما واقعا می‌خواهید که KeyStore را پاک‌سازی کنید؟</b></string>
<string name="settings_dialog_msg_android_sync_disabled_encryption">همسان‌سازی اندروید نمی‌تواند با رمزگذاری KeyStore استفاده شود، <b>شما باید پشتیبان‌گیری به صورت دستی انجام دهید!</b></string>
<string name="settings_dialog_msg_encryption_change">andOTP حالا سعی خواهد کرد تا رمزنگاری پایگاه داده را تغییر دهد. در صورت شکست، یک پشتیبان داخلی بازنشانی می‌شود و رمزنگاری بدون تغییر باقی می‌ماند.\n\n<b>با این حال، این همیشه ایده خوبیست که یک پشتیبان داشته باشید، برای مواردی که چیز پیش‌بینی نشده‌ای اتفاق بیوفتد!</b></string>
<string name="settings_dialog_msg_auth_invalid_with_encryption">شما می‌توانید همیشه از گذرواژه یا پین استفاده کنید، تا وقتی که رمزنگاری پایگاه داده روی «گذرواژه / پین» تنظیم شده باشد!</string>
<string name="settings_dialog_msg_encryption_invalid_with_auth">شما ابتدا باید احراز هویت را روی «گذرواژه» یا «پین» تنظیم کنید!</string>
<string name="settings_dialog_msg_encryption_invalid_without_credentials">شما باید ابتدا یک گذرواژه یا پین تنظیم کنید، پیش از آنکه رمزنگاری را تغییر دهید!</string>
<string name="settings_dialog_msg_clear_keystore_password">در برخی موارد، تمیز کردن KeyStore می‌تواند کمک کند به حل مشکلات. شما باید فقط زمانی آن را انجام دهید که می‌دانید در حال انجام چه کاری هستید!\n\n از آنجایی که <b>رمزنگاری پایگاه داده</b> روی <b>گذرواژه / پین</b> تنظیم شده است، شما نباید با انجام آن هیچ داده‌ای را از دست بدهید (اما به هر حال پشتیبان‌گیری هرگز ضرر ندارد).\n\n<b>آیا شما واقعا می‌خواهید که KeyStore را پاک‌سازی کنید؟</b></string>
<string name="settings_dialog_msg_clear_keystore_keystore">در برخی موارد، تمیز کردن KeyStore می‌تواند کمک کند به حل مشکلات. شما باید فقط زمانی آن را انجام دهید که می‌دانید در حال انجام چه کاری هستید!\n\n<b>هشدار</b>: از آنجایی که <b>رمزنگاری پایگاه داده</b> روی <b>KeyStore اندروید</b> تنظیم شده است، شما همه حساب‌های خود را از دست می‌دهید. مطمئن شوید که پشتیبان دارید!\n\n<b>آیا شما واقعا می‌خواهید که KeyStore را پاک‌سازی کنید؟</b></string>
<string name="settings_dialog_msg_android_sync_disabled_encryption">همسان‌سازی اندروید نمی‌تواند با رمزنگاری KeyStore استفاده شود، <b>شما باید پشتیبان‌گیری به صورت دستی انجام دهید!</b></string>
<!-- List entries -->
<string-array name="settings_entries_auth">
<item>هیچکدام</item>
<item>رمز عبور</item>
<item>هیچ کدام</item>
<item>گذرواژه</item>
<item>پین</item>
<item>اعتبارنامه دستگاه</item>
</string-array>
<string-array name="settings_entries_encryption">
<item>KeyStore اندروید</item>
<item>رمز عبور / پین</item>
<item>گذرواژه / پین</item>
</string-array>
<string-array name="settings_entries_panic">
<item>پاکسازی همه حساب‌ها</item>
<item>بازنشانی تنظیمات برنامه</item>
</string-array>
<string-array name="settings_entries_card_layout">
<item>Compact</item>
<item>Default</item>
<item>Full</item>
<item>فشرده</item>
<item>پیش‌فرض</item>
<item>کامل</item>
</string-array>
<string-array name="settings_entries_tap">
<item>هیچ چیز</item>
<item>نمایش/پهنان کردن</item>
<item>رونوشت</item>
<item>کپی کردن و رفتن به پس زمینه</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Label</item>
<item>Issuer</item>
<item>Tags</item>
<item>برچسب</item>
<item>صادر کننده</item>
<item>برچسب‌ها</item>
</string-array>
<string-array name="settings_entries_auto_backup_password_enc">
<item>Off</item>
<item>New Entries</item>
<item>Any Edits</item>
<item>خاموش</item>
<item>مدخل جدید</item>
<item>هر ویرایشی</item>
</string-array>
<string-array name="settings_entries_theme">
<item>پوسته روشن</item>
@ -133,11 +143,11 @@
</string-array>
<string-array name="settings_entries_thumbnail_size">
<item>پنهان</item>
<item>Tiny</item>
<item>Small</item>
<item>Default</item>
<item>Medium</item>
<item>Large</item>
<item>ریز</item>
<item>کوچک</item>
<item>پیش‌فرض</item>
<item>متوسط</item>
<item>بزرگ</item>
</string-array>
<string-array name="settings_entries_split_group_size">
<item>جدا نکن</item>
@ -150,16 +160,16 @@
<item>تغییر بین تگ‌ها (فقط یک تگ می‌تواند در هر بار انتخاب شود)</item>
</string-array>
<string-array name="settings_entries_backup_broadcasts">
<item>پشتیبان‌های متن ساده</item>
<item>پشتیبان‌های رمزگذاری شده</item>
<item>پشتیبان‌های متن آشکار</item>
<item>پشتیبان‌های رمزنگاری شده</item>
</string-array>
<!-- Special -->
<string name="settings_lang_sys_default">پیش‌فرض سیستم</string>
<!-- PasswordPreference -->
<string name="settings_hint_password">رمز عبور جدید را وارد کنید</string>
<string name="settings_hint_password">گذرواژه جدید را وارد کنید</string>
<string name="settings_hint_pin">پین جدید را وارد کنید</string>
<string name="settings_hint_password_confirm">تایید رمز عبور</string>
<string name="settings_hint_password_confirm">تایید گذرواژه</string>
<string name="settings_hint_pin_confirm">تایید پین</string>
<string name="settings_label_short_password">طول رمز عبور باید حداقل %1$d حرف باشد!</string>
<string name="settings_label_short_password">طول گذرواژه باید حداقل %1$d حرف باشد!</string>
<string name="settings_label_short_pin">طول پین باید حداقل %1$d عدد باشد!</string>
</resources>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="about_activity_title">À propos</string>
<string name="about_description">Authentification à double facteur open source pour Android</string>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="auth_activity_title">Identifiez-vous</string>
<!-- Hints -->

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="backup_activity_title">Sauvegardes</string>
<string name="backup_category_plain">Sauvegardes en clair</string>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="intro_slide1_title">C\'est parti</string>
<string name="intro_slide1_desc">Bienvenue sur <b>andOTP</b>, cet assistant vous guidera lors

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Buttons -->
<string name="button_cancel">Annuler</string>
@ -42,11 +41,10 @@
<string name="menu_sort_label">Titre</string>
<string name="menu_sort_last_used">Dernier utilisé</string>
<string name="menu_sort_most_used">Les plus utilisés</string>
<string name="menu_popup_edit_issuer">Modifier l\'émetteur</string>
<string name="menu_popup_edit_label">Renommer</string>
<string name="menu_popup_edit">Édition</string>
<string name="menu_popup_change_image">Modifier l\'image</string>
<string name="menu_popup_edit_tags">Éditer les tags</string>
<string name="menu_popup_remove">Supprimer</string>
<string name="menu_popup_show_qr_code">Montrer le QR Code</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Échec d\'authentification, veuillez réessayer !</string>
<string name="toast_auth_failed_fatal">Échec d\'authentification, fermeture d\'andOTP !</string>
@ -60,25 +58,35 @@
<string name="toast_qr_error">Impossible de trouver ou confirmer le QR-code</string>
<string name="toast_qr_checksum_exception">Échec de la vérification de la somme de contrôle lors du décodage du QR-code</string>
<string name="toast_qr_format_error">Erreur de format dans le QR-code</string>
<string name="toast_qr_unsuported">QR Code non pris en charge</string>
<string name="toast_qr_failed_to_generate">Échec de la création du QR Code</string>
<!-- Errors -->
<string name="error_invalid_secret">Secret invalide</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Identifiez-vous</string>
<string name="dialog_title_manual_entry">Ajouter les détails</string>
<string name="dialog_title_remove">Supprimer</string>
<string name="dialog_title_rename">Renommer</string>
<string name="dialog_title_counter">Compteur</string>
<string name="dialog_title_used_tokens">Jetons utilisés</string>
<string name="dialog_title_used_tokens">Utilisation des jetons</string>
<string name="dialog_title_keystore_error">Erreur KeyStore</string>
<string name="dialog_title_qr_code">QR Code</string>
<string name="dialog_title_android21_depreaction">Avis d\'obsolescence</string>
<string name="dialog_title_enter_password">Saisir le mot de passe</string>
<string name="dialog_label_enter_password">Saisir le mot de passe</string>
<string name="dialog_label_confirm_password">Confirmer le mot de passe</string>
<string name="dialog_msg_auth">Veuillez entrer les informations d\'identification du périphérique pour démarrer andOTP.</string>
<string name="dialog_msg_confirm_delete">Êtes-vous sûr(e) de vouloir supprimer le compte \"%1$s\" ?</string>
<string name="dialog_msg_used_tokens">Pour qu\'andOTP puisse reconnaître quels jetons sont utilisés,
vous devez soit activer l\'option « appuyer pour afficher » ou utiliser le bouton de copie.
cela s\'applique au tri des jetons par « les plus utilisés » et par « les derniers utilisés ».\n\nCe message ne
sera pas affiché à nouveau.</string>
<string name="dialog_msg_used_tokens">andOTP suivra votre usage de vos jetons (via la fonction
\"appuyer pour révéler\" ou copie dans le presse-papier) pour être capable de les trier
par \"Utilisé le plus\" ou \"Dernier utilisé\".\n\nCe message ne sera pas afficher à nouveau.</string>
<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>
<string name="dialog_msg_android21_deprecation">Ce sera la dernière version d\'andOTP à
supporter les versions d\'Android inférieures à 5.1 (Lollipop). Les efforts croissants
nécessaires pour maintenir une implémentation de stockage séparée juste pour les anciennes
versions ainsi que leurs parts de marché faibles rendent impossible le support continu
pour notre petite équipe.\n\nCe message ne sera pas affiché à nouveau.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Scanner le QR-code</string>
<string name="shortcut_name_import_qr">Importer un QR-code</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">Disposition des cartes</string>
<string name="settings_title_label_size">Taille de la police des titres</string>
<string name="settings_title_label_scroll">Défilement des libellés</string>
<string name="settings_title_tap_single">Appui simple</string>
<string name="settings_title_tap_double">Appui double</string>
<string name="settings_title_thumbnail_size_ask">Taille des miniatures</string>
<string name="settings_title_split_group_size">Séparer le jeton avec des espaces</string>
<string name="settings_title_tag_functionality">Comportement de la sélection par tag</string>
<string name="settings_title_minimize_on_copy">Minimiser l\'appli après la copie du jeton OTP</string>
<string name="settings_title_search_includes">Comportement de la recherche</string>
<string name="settings_title_label_highlight_token">Surligner les jetons qui vont expirer</string>
<string name="settings_title_hide_global_timeout">Masquer la barre globale d\'expiration</string>
<string name="settings_title_show_individual_timeouts">Afficher les expirations par entrée</string>
<string name="settings_title_backup_append_date">Ajouter la date au nom de fichier</string>
<string name="settings_title_backup_ask">Demander le nom du fichier</string>
<string name="settings_title_backup_directory">Répertoire de sauvegarde</string>
@ -59,10 +63,11 @@
<string name="settings_desc_minimize_on_copy">L\'appli sera réduite à la copie du jeton OTP dans le presse-papiers</string>
<string name="settings_desc_search_includes">Choisissez quelles valeurs seront incluses lors de la recherche</string>
<string name="settings_desc_label_highlight_token">Surligne les jeton en rouge s\'ils expirent dans moins de 8 secondes</string>
<string name="settings_desc_hide_global_timeout">Masquer la barre globale d\'expiration affichée en haut de l\'écran</string>
<string name="settings_desc_show_individual_timeouts">Afficher une barre d\'expiration individuelle pour chaque entrée.
Cela peut ralentir l\'application, à activer uniquement si nécessaire.</string>
<string name="settings_desc_backup_append_date">Ajouter la date et l\'heure au nom de fichier de sauvegarde proposé</string>
<string name="settings_desc_backup_ask">Demander le nom du fichier à chaque fois qu\'une sauvegarde est créée ou restaurée</string>
<string name="settings_desc_backup_directory">Répertoire pour les sauvegardes automatiques et diffusées
(le nom des fichiers dépend du type de sauvegarde)</string>
<string name="settings_desc_backup_password">Configurer le mot de passe utilisé pour chiffrer les sauvegardes</string>
<string name="settings_desc_auto_backup_password_enc">Crée une nouvelle sauvegarde chiffrée lorsque de nouvelles entrées
sont ajoutées ou modifiées, si les conditions paramétrées sont remplies</string>
@ -75,7 +80,6 @@
<string name="settings_desc_enable_android_backup_service">Permet à AndOTP d\'utiliser le service de sauvegarde Android natif pour la sauvegarde des clés et préférences</string>
<string name="settings_desc_clear_keystore">Supprimer la clé de chiffrement depuis le KeyStore</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Cette fonctionnalité n\'est disponible que sur Android 5.0 (Lollipop) ou supérieur</string>
<string name="settings_toast_auth_device_not_secure">Cette fonctionnalité nécessite l\'activation du verrouillage de lécran (Paramètres -&gt; Sécurité -&gt; Verrouillage de l\'écran)</string>
<string name="settings_toast_password_empty">Un mot de passe vide n\'est pas autorisé, définissez l\'Authentification sur \"Aucune\" pour la désactiver !</string>
<string name="settings_toast_encryption_changing">Changement du chiffrement de la base de données, veuillez patienter !</string>
@ -128,6 +132,12 @@
<item>Par défaut</item>
<item>Complète</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Ne rien faire</item>
<item>Révéler/Masquer</item>
<item>Copier</item>
<item>Copier et aller en arrière-plan</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Étiquette</item>
<item>Émetteur</item>

View file

@ -14,14 +14,14 @@
<string name="about_label_faq_long">Preguntas máis frecuentes</string>
<!-- Authors -->
<string name="about_title_authors">Autores</string>
<string name="about_label_main_developer">Desenvolvedor principal</string>
<string name="about_label_developer">Desenvolvedor</string>
<string name="about_label_original_author">Autor do aplicativo orixinal</string>
<string name="about_label_original_app">Aplicativo orixinal</string>
<string name="about_label_main_developer">Desenvolvedora principal</string>
<string name="about_label_developer">Desenvolvedora</string>
<string name="about_label_original_author">Autor da aplicación orixinal</string>
<string name="about_label_original_app">Aplicación orixinal</string>
<string name="about_label_website">Páxina web</string>
<string name="about_label_donate">Doar</string>
<string name="about_label_contributors">Colaboradores</string>
<string name="about_label_translators">Tradutores/as</string>
<string name="about_label_translators">Tradutoras</string>
<!-- Thumbnail disclaimer -->
<string name="about_title_thumbnail_disclaimer">Rexeitamento de responsabilidade</string>
<string name="about_thumbnails_disclaimer_no1"><b>1.</b> Todas as imaxes son marcas rexistradas dos
@ -39,7 +39,7 @@
<string name="about_dialog_special_features">Queres activar as funcionalidades
especiais? A maioría delas son algoritmos OTP non estándar que foron implementados por petición
especial. <b>Non están oficialmente soportados</b> e poden ter <b>certas
limitacións</b>, por favor lea (e comprenda) a páxina \"Special features\" na wiki Github
limitacións</b>, por favor le (e comprende) a páxina \"Special features\" na wiki Github
para aprender máis antes de usalas.</string>
<string name="about_toast_special_features">Funcionalidades especiais activadas</string>
<string name="about_toast_special_features_enabled">As funcionalidades especiais xa están activadas</string>

View file

@ -5,14 +5,14 @@
<string name="auth_hint_password">Contrasinal</string>
<string name="auth_hint_pin">PIN</string>
<!-- Messages -->
<string name="auth_msg_authenticate">Por favor autentíquese para iniciar andOTP!</string>
<string name="auth_msg_confirm_encryption">Por favor confirme a súa autenticación para xerar
<string name="auth_msg_authenticate">Identifícate para iniciar andOTP!</string>
<string name="auth_msg_confirm_encryption">Confirma a túa autenticación para crear
a nova chave de cifrado!</string>
<!-- Buttons -->
<string name="auth_button_unlock">Desbloquear</string>
<!-- Toast messages -->
<string name="auth_toast_password_missing">Establecer un contrasinal en <b>axustes</b>!</string>
<string name="auth_toast_pin_missing">Establecer un PIN en <b>axustes</b>!</string>
<string name="auth_toast_password_missing">Establece un contrasinal nos <b>axustes</b>!</string>
<string name="auth_toast_pin_missing">Establece un PIN nos <b>axustes</b>!</string>
<string name="auth_toast_password_again">Contrasinal incorrecto, téntao de novo!</string>
<string name="auth_toast_pin_again">PIN incorrecto, téntao de novo!</string>
</resources>

View file

@ -1,76 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="backup_activity_title">Copias de seguranza</string>
<string name="backup_category_plain">Copias de seguranza en texto plano</string>
<string name="backup_category_crypt">Copias de seguranza cifradas</string>
<string name="backup_category_openpgp">Copias de seguranza OpenPGP</string>
<string name="backup_title_export_plain">Copia de seguranza (texto plano)</string>
<string name="backup_title_export_crypt">Copia de seguranza (cifrada)</string>
<string name="backup_title_export_openpgp">Copia de seguranza (OpenPGP)</string>
<string name="backup_activity_title">Copias de apoio</string>
<string name="backup_category_plain">Copias de apoio en texto plano</string>
<string name="backup_category_crypt">Copias de apoio cifradas</string>
<string name="backup_category_openpgp">Copias de apoio OpenPGP</string>
<string name="backup_title_export_plain">Copia de apoio (texto plano)</string>
<string name="backup_title_export_crypt">Copia de apoio (cifrada)</string>
<string name="backup_title_export_openpgp">Copia de apoio (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>
<string name="backup_desc_export_crypt">Facer copia de seguranza de todas as contas nun ficheiro JSON con contrasinal</string>
<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_export_plain">Facer copia de apoio de todas as contas nun ficheiro de texto plano JSON</string>
<string name="backup_desc_export_crypt">Facer copia de apoio de todas as contas nun ficheiro JSON con contrasinal</string>
<string name="backup_desc_export_openpgp">Facer copia de apoio 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
o contrasinal manualmente ao crear ou importar un respaldo.
<string name="backup_desc_crypt_setup">Houbo un erro ao cargar o contrasinal da copia desde os <b>Axustes</b>,
ou ben non se estableceu o contrasinal ou algo fallou. Pediráseche introducir
o contrasinal manualmente ao crear ou importar unha copia.
</string>
<string name="backup_desc_openpgp_provider">Necesitas instalar un aplicarivo OpenPGP e activalo
<string name="backup_desc_openpgp_provider">Necesitas instalar unha aplicación OpenPGP e activala
na <b>configuración</b> para usar esta opción.
</string>
<string name="backup_desc_openpgp_keyid">Necesitas seleccionar unha chave OpenPGP nos <b>Axustes</b>
antes de crear unha copia de seguranza cifrada.
antes de crear unha copia de apoio cifrada.
</string>
<string name="backup_desc_replace">Si se habilita todas as entradas antigas reemplazaranse ao importar
o respaldo e só aparecerán as do respaldo. Si se deshabilita aparecerán tanto as entradas antigas como as do respaldo.</string>
<string name="backup_desc_replace">Se a activas, todas as entradas antigas reemplazaranse ao importar
a copia e só aparecerán as da copia. Sa a desactivas aparecerán tanto as entradas antigas como as do respaldo.</string>
<!-- Dialogs -->
<string name="backup_dialog_title_security_warning">Advertencia de seguranza</string>
<string name="backup_dialog_msg_export_warning">¿Queres exportar a base de datos como
ficheiro de texto plano JSON? Este ficheiro inclúe as túas chaves secretas, por favor <b>manteno seguro</b>!
ficheiro de texto plano JSON? Este ficheiro inclúe as túas chaves segredas, por favor <b>manteno seguro</b>!
</string>
<string name="backup_receiver_title_backup_failed">Erro na copia de seguranza</string>
<string name="backup_receiver_title_backup_success">Respaldo realizado correctamente</string>
<string name="backup_receiver_plain_disabled">Actualmente non se permiten os respaldos en texto plano,
vaia aos Axustes para activalos</string>
<string name="backup_receiver_encrypted_disabled">Actualmente non se permiten os respaldos cifrados,
vaia aos Axustes para activalos</string>
<string name="backup_receiver_read_permission_failed">Non se obtivo permiso de lectura, por favor
axuste esto antes de intentar o respaldo</string>
<string name="backup_receiver_write_permission_failed">Non ten permiso de escritura, por favor
arranxe esto ante de intentas o respaldo</string>
<string name="backup_receiver_title_backup_failed">Erro na copia de apoio</string>
<string name="backup_receiver_title_backup_success">Copia realizada correctamente</string>
<string name="backup_receiver_plain_disabled">Actualmente non se permiten as copias en texto plano,
vai aos Axustes para activalos</string>
<string name="backup_receiver_encrypted_disabled">Actualmente non se permiten as copias cifradas,
vai aos Axustes para activalos</string>
<string name="backup_receiver_read_permission_failed">Non tes permiso de lectura, por favor
arranxa esto antes de intentar a copia</string>
<string name="backup_receiver_write_permission_failed">Non tes permiso de escritura, por favor
arranxa esto ante de intentar a copia</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
<string name="backup_new_format_dialog_msg">Desde a versión 0.6.3 de andOTP, úsase un <b>novo e mellorado
método de cifrado</b> para copias de apoio protexidas por contrasinal. As copias de apoio antigas
aínda poden ser importadas, pero é <b>moi recomendable crear novas copias de apoio 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>
<string name="notification_channel_desc_backup_failed">Estas notificacións móstranse cando un respaldo
automático fallou por algunha razón</string>
<string name="notification_channel_desc_backup_success">Estas notificacións mótranse cando
un respaldo automático se realizou correctamente</string>
<string name="notification_channel_name_backup_failed">Fallo na copia automática</string>
<string name="notification_channel_name_backup_success">Copia automática correcta</string>
<string name="notification_channel_desc_backup_failed">Estas notificacións móstranse cando unha copia
automática fallou por algunha razón</string>
<string name="notification_channel_desc_backup_success">Estas notificacións móstranse cando
unha copia automática se realizou correctamente</string>
<!-- Toast messages -->
<string name="backup_toast_mkdir_failed">Erro ao crear o directorio de copia de seguranza</string>
<string name="backup_toast_mkdir_failed">Erro ao crear o directorio de copia de apoio</string>
<string name="backup_toast_export_success">Exportado correctamente ao almacenamento externo</string>
<string name="backup_toast_export_failed">Fallo ao exportar ao almacenamento externo</string>
<string name="backup_toast_import_success">Importado correctamente desde o almacenamento externo</string>
<string name="backup_toast_import_save_failed">Erro ao gardar os elementos restaurados</string>
<string name="backup_toast_import_decryption_failed">Erro ao descifrar a copia de seguranza</string>
<string name="backup_toast_import_decryption_failed">Erro ao descifrar a copia de apoio</string>
<string name="backup_toast_import_no_entries">Non se atoparon elementos nos datos importados</string>
<string name="backup_toast_storage_not_accessible">O almacenamento externo non é accesible actualmente</string>
<string name="backup_toast_storage_permissions">Permiso de almacenamento non concedido</string>
<string name="backup_toast_storage_not_accessible">O almacenaxe externo non é accesible actualmente</string>
<string name="backup_toast_storage_permissions">Permiso de almacenaxe non concedido</string>
<string name="backup_toast_openpgp_error">Error OpenPGP: %s</string>
<string name="backup_toast_openpgp_not_verified">Non se detectou unha sinatura verificable</string>
<string name="backup_toast_crypt_password_not_set">No se estableceu un contrasinal, revisa os <b>axustes</b></string>

View file

@ -1,33 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="intro_slide1_title">Comecemos</string>
<string name="intro_slide1_desc">Ben vido a <b>andOTP</b>, este asistente guiarao a través da configuración
inicial. Poña atención e lea coidadosamente xa que pode perder datos importantes!
\n\nNon se preocupe, pode mudar as opcións a posteriori nos <b>Axustes</b>.</string>
<string name="intro_slide2_desc">Para asegurar a seguridade das súas contas <b>andOTP</b>
garda información en ficheiros cifrados. Aquí pode escoller o método de cifrado que se
<string name="intro_slide1_desc">Ben vido a <b>andOTP</b>, este asistente guiarate a través da configuración
inicial. Pon atención e le coidadosamente xa que podes perder datos importantes!
\n\nNon te preocupes, podes mudar as opcións máis tarde nos <b>Axustes</b>.</string>
<string name="intro_slide2_desc">Para asegurar a seguridade das túas contas <b>andOTP</b>
garda información en ficheiros cifrados. Aquí podes escoller o método de cifrado que se
utilizará.</string>
<string name="intro_slide2_desc_keystore">A KeyStore é un compoñente do sistema Android para
gardar de xeito seguro chaves de cifrado. A vantaxe de este método é que as chaves gárdanse
de xeito separado dos ficheiros de datos e poden ser respaldadas por cifrado de hardware (si o seu dispositivo
o admite). Porén, as chaves non se gardan cos datos do aplicativo, <b>este método
non deixa utilizar solucións de respaldo externo (como Titanium)</b>. Si escolle este método
deberá confiar nas funcións internas de respaldo proporcionadas por <b>andOTP</b>.
\n\n<b>Aviso:</b>: A KeyStore sábese que da problemas, utilícea só si non lle queda alternativa.
Si non lle importa introducir un contrasinal/PIN cada vez que inicia <b>andOTP</b> é moito <b>máis recomendable utilizar o cifrado baseado en contrasinal</b>.</string>
<string name="intro_slide2_desc_password">Este método cifrará os seus datos con unha chave
xerada por un contrasinal ou PIN. A principal vantaxe é que esto é compatible con
gardar de xeito seguro chaves de cifrado. A vantaxe deste método é que as chaves gárdanse
de xeito separado dos ficheiros de datos e poden ser copiadas por cifrado de hardware (se o teu dispositivo
o admite). Debido a esto, as chaves non se gardan cos datos da aplicación, <b>este método
non deixa utilizar solucións de copia externa (como Titanium)</b>. Se escolles este método
deberás confiar nas funcións internas de copia proporcionadas por <b>andOTP</b>.
\n\n<b>Aviso:</b>: A KeyStore sábese que da problemas, utilízaa só se non che queda alternativa.
Se non che importa introducir un contrasinal/PIN cada vez que inicia <b>andOTP</b> é moito <b>máis recomendable utilizar o cifrado baseado en contrasinal</b>.</string>
<string name="intro_slide2_desc_password">Este método cifrará os seus datos cunha chave
creada por un contrasinal ou PIN. A principal vantaxe é que esto é compatible con
solucións externas de respaldo (como Titanium) e é moito menos proclive ao fallo que a KeyStore.
Porén, deberá introducir as súas credenciais cada vez que inicia <b>andOTP</b>.</string>
<string name="intro_slide3_desc_keystore">Aquí pode configurar a autenticación para asegurar
<b>andOTP</b>. Esto é opcional xa que escolleu <b>Android KeyStore</b> como método de cifrado.</string>
<string name="intro_slide3_desc_password">Aquí pode configurar a autenticación da seguranza
de <b>andOTP</b>. Debe establecer un Contrasinal ou PIN xa que escolleu <b>Contrasinal/PIN</b> como método de cifrado.</string>
<string name="intro_slide3_warn_no_password">Por favor estableza un contrasinal para continuar!</string>
<string name="intro_slide3_warn_no_pin">Por favor escolla un PIN para continuar!</string>
<string name="intro_slide3_warn_confirm_password">Confirme o contrasinal para continuar!</string>
<string name="intro_slide3_warn_confirm_pin">Confirme o PIN para continuar!</string>
<string name="intro_slide4_title">Rematou</string>
<string name="intro_slide4_desc">Gardáronse os seus axustes, xa pode utilizar
<b>andOTP</b> agora!</string>
<string name="intro_slide3_desc_keystore">Aquí podes configurar a autenticación para asegurar
<b>andOTP</b>. Esto é opcional xa que escolleches <b>Android KeyStore</b> como método de cifrado.</string>
<string name="intro_slide3_desc_password">Aquí podes configurar a autenticación da seguranza
de <b>andOTP</b>. Debes establecer un Contrasinal ou PIN xa que escolleches <b>Contrasinal/PIN</b> como método de cifrado.</string>
<string name="intro_slide3_warn_no_password">Escribe un contrasinal para continuar!</string>
<string name="intro_slide3_warn_no_pin">Escolle un PIN para continuar!</string>
<string name="intro_slide3_warn_confirm_password">Confirma o contrasinal para continuar!</string>
<string name="intro_slide3_warn_confirm_pin">Confirma o PIN para continuar!</string>
<string name="intro_slide4_title">Remataches</string>
<string name="intro_slide4_desc">Gardáronse os teus axustes, agora xa podes utilizar
<b>andOTP</b>!</string>
</resources>

View file

@ -14,11 +14,11 @@
<string name="format_custom_period">%d s</string>
<!-- Hints -->
<string name="hint_label">Etiqueta</string>
<string name="hint_secret">Secreto</string>
<string name="hint_secret">Segredo</string>
<!-- Labels -->
<string name="label_hidden">Agochado</string>
<string name="label_type">Tipo</string>
<string name="label_secret">Secreto</string>
<string name="label_secret">Segredo</string>
<string name="label_period">Período</string>
<string name="label_digits">Díxitos</string>
<string name="label_counter">Contador</string>
@ -41,17 +41,16 @@
<string name="menu_sort_label">Etiqueta</string>
<string name="menu_sort_last_used">Último usado</string>
<string name="menu_sort_most_used">Máis utilizado</string>
<string name="menu_popup_edit_issuer">Editar provedor</string>
<string name="menu_popup_edit_label">Editar etiqueta</string>
<string name="menu_popup_edit">Editar</string>
<string name="menu_popup_change_image">Cambiar imaxe</string>
<string name="menu_popup_edit_tags">Editar etiquetas</string>
<string name="menu_popup_remove">Eliminar</string>
<string name="menu_popup_show_qr_code">Mostrar código QR</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Fallou a autenticación, por favor inténteo de novo!</string>
<string name="toast_auth_failed">Fallou a autenticación, por favor inténtao de novo!</string>
<string name="toast_auth_failed_fatal">Fallou a autenticación, pechando andOTP!</string>
<string name="toast_copied_to_clipboard">Copiado ao portapapeis</string>
<string name="toast_entry_exists">Este nome xa existe</string>
<string name="toast_invalid_qr_code">Código QR inválido</string>
<string name="toast_entry_exists">Esta provedor xa existe</string>
<string name="toast_invalid_qr_code">Código QR non válido</string>
<string name="toast_encryption_key_empty">Non se cargou a chave de cifrado</string>
<string name="toast_intent_creation_failed">A información recibida non é válida</string>
<string name="toast_intent_creation_succeeded">Datos engadidos correctamente</string>
@ -59,25 +58,36 @@
<string name="toast_qr_error">Non se puido atopar/confirmar o código QR</string>
<string name="toast_qr_checksum_exception">A verificación da suma fallou ao descodificar o código QR</string>
<string name="toast_qr_format_error">Erro de formato no código QR</string>
<string name="toast_qr_unsuported">Código QR non soportado</string>
<string name="toast_qr_failed_to_generate">Fallou a creación do código QR</string>
<!-- Errors -->
<string name="error_invalid_secret">Chave segreda non válida</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Autenticar</string>
<string name="dialog_title_manual_entry">Introducir datos</string>
<string name="dialog_title_remove">Eliminar</string>
<string name="dialog_title_rename">Renomear</string>
<string name="dialog_title_counter">Contador</string>
<string name="dialog_title_used_tokens">Testemuños utilizados</string>
<string name="dialog_title_used_tokens">Utilizacións dos tokens</string>
<string name="dialog_title_keystore_error">Fallo no KeyStore</string>
<string name="dialog_title_qr_code">Código QR</string>
<string name="dialog_title_android21_depreaction">Aviso de abandono</string>
<string name="dialog_title_enter_password">Introducir contrasinal</string>
<string name="dialog_label_enter_password">Introducir contrasinal</string>
<string name="dialog_label_confirm_password">Confirmar contrasinal</string>
<string name="dialog_msg_auth">Introduce as credenciais do dispositivo para iniciar andOTP.</string>
<string name="dialog_msg_confirm_delete">Está seguro de que quere quitar a conta \"%1$s\"?</string>
<string name="dialog_msg_used_tokens">Para que andOTP recoñeza que testemuños que se utilizaron
debes ter ou ben \"tocar para revelar\" activado ou utilizar o botón de copiar. Esto aplícase
para ordenar os testemuños por \"máis utilizados\" así como por \"últimos utilizados\".\n\nEsta mensaxe non se amosará outra vez.</string>
<string name="dialog_msg_confirm_delete">Tes a certeza de querer quitar a conta \"%1$s\"?</string>
<string name="dialog_msg_used_tokens">andOTP irá seguindo a utilizacións dos token (usando a función
\"Toca para amosar\" ou da copia ao portapapeis) para poder ordenalos por
\"Máis utilizados\" ou \"Último utilizado\".\n\nNon se amosará esta mensaxe outra vez.</string>
<string name="dialog_msg_keystore_error">Fallo ao cargar a chave de cifrado desde KeyStore.
<b>Calquer entrada que se engada perderase.</b>\n\nPara poder seguir usando andOTP pode ir a
<b>Calquera entrada que se engada perderase.</b>\n\nPara poder seguir usando andOTP podes ir a
<b>Axustes</b> e cambiar o <b>Cifrado da base da datos</b> a <b>Contrasinal / PIN</b>.</string>
<string name="dialog_msg_android21_deprecation">Esta vai ser a derradeira versión de andOTP con
soporte para versións Android inferiores a 5.1 (Lollipop). O crecente esforzo requerido para
manter a implementación do almacenaxe separado só para versións antigas e con poucos
dispositivos activos fai que non sexa sostible o seu mantemento.\n\nNon voltaremos
a mostrar esta mensaxe.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Escanear código-QR</string>
<string name="shortcut_name_import_qr">Importar código QR</string>

View file

@ -7,28 +7,32 @@
<string name="settings_category_title_backup">Copia de seguranza</string>
<!-- Titles -->
<string name="settings_title_tap_to_reveal">Tocar para mostrar</string>
<string name="settings_title_tap_to_reveal_timeout">Tempo de espera para tocar para mostrar</string>
<string name="settings_title_tap_to_reveal_timeout">Tempo de espera para que ao tocar mostre</string>
<string name="settings_title_auth">Autenticación</string>
<string name="settings_title_auth_password">Contrasinal</string>
<string name="settings_title_auth_pin">PIN</string>
<string name="settings_title_encryption">Cifrado de Base de datos</string>
<string name="settings_title_panic">Panic Trigger</string>
<string name="settings_title_relock_screen_off">Coa pantalla apagada voltar a asegurar</string>
<string name="settings_title_panic">Botón do Pánico</string>
<string name="settings_title_relock_screen_off">Voltar a asegurar ao apagarse a pantalla</string>
<string name="settings_title_relock_background">Bloquear cando pasa a segundo plano</string>
<string name="settings_title_auth_inactivity">Bloquear ao quedar inactiva</string>
<string name="settings_title_auth_inactivity_delay">Retraso para bloqueo por inactividade</string>
<string name="settings_title_block_accessibility">Bloquear servizos de accesibilidade</string>
<string name="settings_title_lang">Idioma</string>
<string name="settings_title_theme">Tema</string>
<string name="settings_title_card_layout">Disposición da tarxeta</string>
<string name="settings_title_theme">Decorado</string>
<string name="settings_title_card_layout">Disposición das entradas</string>
<string name="settings_title_label_size">Tamaño da tipografía</string>
<string name="settings_title_label_scroll">Desprazar etiqueta</string>
<string name="settings_title_tap_single">Un toque</string>
<string name="settings_title_tap_double">Dobre toque</string>
<string name="settings_title_thumbnail_size_ask">Tamaño de miniatura</string>
<string name="settings_title_split_group_size">Separe o testemuño con espazo</string>
<string name="settings_title_split_group_size">Separa o testemuño cun espazo</string>
<string name="settings_title_tag_functionality">Comportamento do selector de etiquetas</string>
<string name="settings_title_minimize_on_copy">Minimizar app tras copiar OTP</string>
<string name="settings_title_search_includes">Comportamento da busca</string>
<string name="settings_title_label_highlight_token">Resaltar testemuños caducados</string>
<string name="settings_title_hide_global_timeout">Agochar a barra de caducidade</string>
<string name="settings_title_show_individual_timeouts">Mostrar caducidades individuais</string>
<string name="settings_title_backup_append_date">Engadir data ao nome do ficheiro</string>
<string name="settings_title_backup_ask">Preguntar polo nome do ficheiro</string>
<string name="settings_title_backup_directory">Directorio de copias de seguranza</string>
@ -41,13 +45,13 @@
<string name="settings_title_openpgp_verify">Comprobar copias de seguranza cifradas</string>
<string name="settings_title_special_features">Activar funcionalidades especiais</string>
<string name="settings_title_enable_screenshot">Activar capturas de pantalla</string>
<string name="settings_title_enable_android_backup_service">Habilitar Android sync</string>
<string name="settings_title_enable_android_backup_service">Activar Android sync</string>
<string name="settings_title_clear_keystore">Limpar KeyStore</string>
<!-- Descriptions -->
<string name="settings_desc_tap_to_reveal">Agochar códigos OTP, require mostralos manualmente</string>
<string name="settings_desc_tap_to_reveal_timeout">Selecciona o tempo (en segundos) tras o cal esconder
as entradas reveladas</string>
<string name="settings_desc_panic">Decide que facer cando se recibe un Panic Trigger</string>
<string name="settings_desc_panic">Escoller que facer cando se recibe unha ameaza de seguridade</string>
<string name="settings_desc_relock_screen_off">Require autenticación depois de que a pantalla
se apague</string>
<string name="settings_desc_relock_background">Solicitar autenticación após a app foi enviada ao
@ -58,41 +62,40 @@
solicita autenticación</string>
<string name="settings_desc_block_accessibility">Agocharlle aos servizos de accesibilidade os
campos con datos sensibles. <b>NON activar esto se dependes dos servizos de accesibilidade!</b></string>
<string name="settings_desc_label_scroll">Desprazar etiquetas largas no canto de truncalas</string>
<string name="settings_desc_label_scroll">Desprazar etiquetas largas no canto de recortalas</string>
<string name="settings_desc_minimize_on_copy">A app minimizarase ao copiar o OTP ao portapapeis</string>
<string name="settings_desc_search_includes">Indicar que valores se incluirán ao buscar</string>
<string name="settings_desc_label_highlight_token">Resaltar testemuño en vermello se vai caducar en 8 segundos</string>
<string name="settings_desc_hide_global_timeout">Agochar a barra de caducidade xeral mostrada na parte superior</string>
<string name="settings_desc_show_individual_timeouts">Mostrar unha barra de progreso individual para cada entrada.
Pode facer máis lenta a app, actívao só se é preciso.</string>
<string name="settings_desc_backup_append_date">Engadir a data actual e hora ao nome de
ficheiro de respaldo suxerido</string>
<string name="settings_desc_backup_ask">Preguntar polo nome do ficheiro cada vez que unha copia de seguranza sexa creada ou
restaurada</string>
<string name="settings_desc_backup_directory">O directorio para copia de apoio automática
(nomes de ficheiro dependerán to tipo de apoio)</string>
<string name="settings_desc_backup_password">Establecer o contrasinal para cifrar as
copias de seguranza</string>
copias de apoio</string>
<string name="settings_desc_auto_backup_password_enc">Crea unha nova copia de apoio cifrada cando
se engaden novas entradas, ou se editan, se se dan as condicións</string>
<string name="settings_desc_backup_broadcasts">Escolla que tipos de respaldo se poden activar por
aplicativos de terceiros utilizando Broadcasts</string>
<string name="settings_desc_backup_broadcasts">Escolle que tipos de copia se poden activar por
aplicacións de terceiros utilizando Broadcasts</string>
<string name="settings_desc_openpgp_key_encrypt">Enderezo de correo para a chave OpenPGP utilizada para cifrar
os respaldos</string>
<string name="settings_desc_openpgp_verify">As copias de seguranza cifradas só se importan
as copias de apoio</string>
<string name="settings_desc_openpgp_verify">As copias de apoio cifradas só se importan
se están asinadas con unha chave válida</string>
<string name="settings_desc_special_features">Desmarcar para desactivar as funcionalidades especiais</string>
<string name="settings_desc_enable_screenshot">Permitir capturas de pantalla da vista principal
(Desactivado por defecto por razóns de seguridade)</string>
<string name="settings_desc_enable_android_backup_service">Permite que andOTP utilice o servizo de respaldo
incluído en Android para respaldar chaves e axustes</string>
<string name="settings_desc_enable_android_backup_service">Permite que andOTP utilice o servizo de copias de apoio
incluído en Android para gardar chaves e axustes</string>
<string name="settings_desc_clear_keystore">Eliminar a chave de cifrado da KeyStore</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Esta característica require polo menos
Android 5.0 (Lollipop)</string>
<string name="settings_toast_auth_device_not_secure">Esta característica require bloqueo de pantalla
seguro (Axustes -&gt; Seguranza -&gt; Bloqueo de pantalla)</string>
<string name="settings_toast_password_empty">Non se pode deixar baldeiro o contrasinal, estableza
Autenticación a \"Nada\" para deshabilitala!</string>
<string name="settings_toast_password_empty">Non se pode deixar baleiro o contrasinal, establece
Autenticación a \"Nada\" para desactivala!</string>
<string name="settings_toast_encryption_changing">Intentando cambiar o cifrado da base de datos,
agarde por favor!</string>
agarda por favor!</string>
<string name="settings_toast_encryption_change_success">Cambiouse correctamente o cifrado
da base de datos!</string>
<string name="settings_toast_encryption_change_failed">Fallou o cambio do cifrado da base de datos,
@ -101,31 +104,31 @@
interno, abortando!</string>
<string name="settings_toast_encryption_no_key">Fallou ao obter a chave de cifrado, abortanto!</string>
<string name="settings_toast_encryption_auth_failed">Fallou a autenticación!</string>
<string name="settings_toast_auth_upgrade_failed">Fallo ao actualizar o seu contrasinal / PIN
ao novo cifrado, por favor restablezao en Axustes!</string>
<string name="settings_toast_auth_upgrade_failed">Fallo ao actualizar o teu contrasinal / PIN
ao novo cifrado, por favor restableceo en Axustes!</string>
<string name="settings_dialog_title_warning">Aviso</string>
<string name="settings_dialog_title_error">Erro</string>
<string name="settings_dialog_title_clear_keystore">Limpar a KeyStore?</string>
<string name="settings_dialog_title_clear_keystore">Baleirar a KeyStore?</string>
<string name="settings_dialog_title_android_sync">Android sync</string>
<string name="settings_dialog_msg_encryption_change">andOTP intentará agora cambiar o cifrado
da base de datos. En caso de fallo restaurarase un respaldo interno e o cifrado permanecerá
sin cambios.\n\n<b>Porén, sempre é boa idea ter copias de respaldo por si algo terrible acontece!</b></string>
<string name="settings_dialog_msg_auth_invalid_with_encryption">Só pode utilizar Contrasinal ou PIN
si o cifrado da base de datos se establece como \"Contrasinal / PIN\"!</string>
<string name="settings_dialog_msg_encryption_invalid_with_auth">Primeiro debe establecer
a Autenticación a \"Password\" ou \"PIN\"!</string>
<string name="settings_dialog_msg_encryption_invalid_without_credentials">Primeiro debe establecer un Contrasinal
da base de datos. En caso de fallo restaurarase unha copia interna e o cifrado permanecerá
sen cambios.\n\n<b>Porén, sempre é boa idea ter copias de apoio por se algo terrible acontece!</b></string>
<string name="settings_dialog_msg_auth_invalid_with_encryption">Só podes utilizar Contrasinal ou PIN
se o cifrado da base de datos se establece como \"Contrasinal / PIN\"!</string>
<string name="settings_dialog_msg_encryption_invalid_with_auth">Primeiro debes establecer
a Autenticación a \"Contrasinal\" ou \"PIN\"!</string>
<string name="settings_dialog_msg_encryption_invalid_without_credentials">Primeiro debes establecer un Contrasinal
ou PIN antes de cambiar o cifrado!</string>
<string name="settings_dialog_msg_clear_keystore_password">En algúns casos limpar o KeyStore
pode axudar a resolver problemas. Só debería facer esto si sabe o que fai!\n\nXa que
o <b>Cifrado da Base de datos</b> está establecida a <b>Cotrasinal / PIN</b> non debería perder ningún
dato facendo esto (pero non está de máis ter un respaldo).\n\n<b>Está seguro de querer limpar a KeyStore?</b></string>
<string name="settings_dialog_msg_clear_keystore_keystore">En algúns casos limpar a KeyStore
pode axudar a resolver problemas. Só debería seguir si sabe o que fai!\n\n<b>Aviso</b>:
Xa que o <b>cifrado da base de datos</b> está establecido a <b>Android KeyStore</b> perderá todas as súas contas.
Asegúrese de ter un respaldo!\n\n<b>Seguro que quere limpar a KeyStore?</b></string>
<string name="settings_dialog_msg_clear_keystore_password">Nalgúns casos baleirar o KeyStore
pode axudar a resolver problemas. Só deberías facer esto se sabes o que fas!\n\nXa que
o <b>Cifrado da Base de datos</b> está establecido a <b>Cotrasinal / PIN</b> non deberías perder ningún
dato facendo esto (pero non está de máis ter unha copia).\n\n<b>Tes a certeza de querer baleirar a KeyStore?</b></string>
<string name="settings_dialog_msg_clear_keystore_keystore">Nalgúns casos limpar a KeyStore
pode axudar a resolver problemas. Só deberías seguir se sabes o que fas!\n\n<b>Aviso</b>:
Xa que o <b>cifrado da base de datos</b> está establecido a <b>Android KeyStore</b> perderás todas as túas contas.
Asegúrate de ter unha copia!\n\n<b>Seguro que queres baleirar a KeyStore?</b></string>
<string name="settings_dialog_msg_android_sync_disabled_encryption">Android sync non se pode usar co cifrado
do almacén de chaves, <b>debe facer un respaldo manual!</b></string>
do almacén de chaves, <b>debes facer unha copia manual!</b></string>
<!-- List entries -->
<string-array name="settings_entries_auth">
<item>Ningún</item>
@ -146,6 +149,12 @@
<item>Por omisión</item>
<item>Completo</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nada</item>
<item>Mostrar/Agochar</item>
<item>Copiar</item>
<item>Copiar e mandar a segundo plano</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Etiqueta</item>
<item>Provedor</item>
@ -157,9 +166,9 @@
<item>Calquera edición</item>
</string-array>
<string-array name="settings_entries_theme">
<item>Tema claro</item>
<item>Tema escuro</item>
<item>Tema negro</item>
<item>Decorado claro</item>
<item>Decorado escuro</item>
<item>Decorado negro</item>
</string-array>
<string-array name="settings_entries_thumbnail_size">
<item>Agochado</item>
@ -171,8 +180,8 @@
</string-array>
<string-array name="settings_entries_split_group_size">
<item>Non separar</item>
<item>Despóis de dous caracteres</item>
<item>Despois de tres caracteres</item>
<item>Após dous caracteres</item>
<item>Após tres caracteres</item>
</string-array>
<string-array name="settings_entries_tag_functionality">
<item>Mostra todas as entradas coincidentes de <b>calquera</b> das etiquetas seleccionadas (ou)</item>
@ -180,8 +189,8 @@
<item>Cambiar entre etiquetas (só permite unha etiqueta seleccionada cada vez)</item>
</string-array>
<string-array name="settings_entries_backup_broadcasts">
<item>Respaldos en texto-plano</item>
<item>Respaldos cifrados</item>
<item>Copias en texto-plano</item>
<item>Copias cifradas</item>
</string-array>
<!-- Special -->
<string name="settings_lang_sys_default">Predefinido do sistema</string>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">लेबल</string>
<string name="menu_sort_last_used">आखरी इस्त्तमाल किया गया</string>
<string name="menu_sort_most_used">सर्वाधिक इस्तेमाल किया गया</string>
<string name="menu_popup_edit_issuer">जारीकर्ता संपादित करें</string>
<string name="menu_popup_edit_label">लेबल संपादित करें</string>
<string name="menu_popup_edit">Edit</string>
<string name="menu_popup_change_image">छवि बदलें</string>
<string name="menu_popup_edit_tags">टैग संपादित करें</string>
<string name="menu_popup_remove">हटाएं</string>
<string name="menu_popup_show_qr_code">Show QR Code</string>
<!-- Toast messages -->
<string name="toast_auth_failed">प्रमाणीकरण असफल| कृपया पुन: प्रयास करें!</string>
<string name="toast_auth_failed_fatal">प्रमाणीकरण विफल, समापन andOTP!</string>
@ -59,21 +58,34 @@
<string name="toast_qr_error">क्यूआर कोड नहीं मिला / पुष्टि नहीं की जा सकी</string>
<string name="toast_qr_checksum_exception">क्यूआर कोड को डिकोड करते समय चेकसम सत्यापन विफल हो गया</string>
<string name="toast_qr_format_error">क्यूआर कोड में प्रारूप त्रुटि</string>
<string name="toast_qr_unsuported">QR Code not supported</string>
<string name="toast_qr_failed_to_generate">Failed to generate QR Code</string>
<!-- Errors -->
<string name="error_invalid_secret">Invalid secret</string>
<!-- Dialogs -->
<string name="dialog_title_auth">प्रमाणित</string>
<string name="dialog_title_manual_entry">विवरण दर्ज करें</string>
<string name="dialog_title_remove">हटाएं</string>
<string name="dialog_title_rename">नाम बदलें</string>
<string name="dialog_title_counter">काउंटर</string>
<string name="dialog_title_used_tokens">टोकन का इस्तेमाल किया</string>
<string name="dialog_title_used_tokens">Tokens usage</string>
<string name="dialog_title_keystore_error">कुंजी स्टोर त्रुटि</string>
<string name="dialog_title_qr_code">QR Code</string>
<string name="dialog_title_android21_depreaction">Deprecation notice</string>
<string name="dialog_title_enter_password">अपना पासवोर्ड डाले</string>
<string name="dialog_label_enter_password">अपना पासवोर्ड डाले</string>
<string name="dialog_label_confirm_password">पासवर्ड की पुष्टि करें</string>
<string name="dialog_msg_auth">AndOTP शुरू करने के लिए कृपया अपनी यंत्र साख दर्ज करें।</string>
<string name="dialog_msg_confirm_delete">क्या आप वाकई \"%1$s\" खाता हटाना चाहते हैं?</string>
<string name="dialog_msg_used_tokens">AndOTP के लिए यह पहचानने के लिए कि कौन से टोकन का उपयोग किया जाता है, आपको सक्षम बटन का उपयोग करने के लिए या तो \"प्रकट करने के लिए टैप करें\" होना चाहिए या कॉपी बटन का उपयोग करना होगा। यह टोकन को \"सबसे अधिक उपयोग\" करने के साथ-साथ \"अंतिम उपयोग\" द्वारा लागू होता है। \n\nयह संदेश फिर से नहीं दिखाया जाएगा।</string>
<string name="dialog_msg_used_tokens">andOTP will track when you use your tokens (using the \"Tap
to reveal\" feature or copying to clipboard) to be able to sort them by \"Most used\" or
\"Last used\".\n\nThis message will not be shown again.</string>
<string name="dialog_msg_keystore_error">KeyStore से एन्क्रिप्शन कुंजी लोड करने में विफल। <b>जो भी प्रविष्टियाँ जोड़ी गई हैं, वे लुप्त हो जाएँगी।</b>\n\nअभी andOTP का उपयोग करने में सक्षम होने के लिए आप <b>सेटिंग</b> पर जा सकते हैं और <b>डेटाबेस एन्क्रिप्शन</b> को <b>पासवर्ड / पिन</b> स्विच कर सकते हैं।</string>
<string name="dialog_msg_android21_deprecation">This will be the last version of andOTP to
support Android versions below 5.1 (Lollipop). The increased effort required to maintain a
separate storage implementation just for those older versions as well as their low market
shares make a continued support infeasible for our small team.\n\nThis message will not be
shown again.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">क्यूआर कोड स्कैन करें</string>
<string name="shortcut_name_import_qr">क्यूआर कोड आयात करें</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">कार्ड ख़ाका</string>
<string name="settings_title_label_size">लेबल फ़ॉन्ट आकार</string>
<string name="settings_title_label_scroll">लेबल स्क्रॉल करें</string>
<string name="settings_title_tap_single">Single-tap</string>
<string name="settings_title_tap_double">Double-tap</string>
<string name="settings_title_thumbnail_size_ask">थंबनेल का आकार</string>
<string name="settings_title_split_group_size">स्पेस के साथ टोकन विभाजन</string>
<string name="settings_title_tag_functionality">टैग चयन व्यवहार</string>
<string name="settings_title_minimize_on_copy">ओटीपी कॉपी करने के बाद ऐप को छोटा करें</string>
<string name="settings_title_search_includes">व्यवहार खोज</string>
<string name="settings_title_label_highlight_token">समाप्त होने वाले टोकन पर प्रकाश डालें</string>
<string name="settings_title_hide_global_timeout">Hide global timeout bar</string>
<string name="settings_title_show_individual_timeouts">Show individual timeouts</string>
<string name="settings_title_backup_append_date">फ़ाइल नाम में तारीख जोड़ें</string>
<string name="settings_title_backup_ask">फ़ाइल नाम के लिए पूछें</string>
<string name="settings_title_backup_directory">बैकअप निर्देशिका</string>
@ -56,9 +60,11 @@
<string name="settings_desc_minimize_on_copy">जब आप ओटीपी को क्लिपबोर्ड पर कॉपी करेंगे तो ऐप को छोटा कर दिया जाएगा</string>
<string name="settings_desc_search_includes">निर्दिष्ट करें कि खोज करते समय किन मूल्यों को शामिल किया जाना चाहिए</string>
<string name="settings_desc_label_highlight_token">यदि यह 8 सेकंड में समाप्त हो रहा है तो लाल रंग में टोकन प्रकाशित करें</string>
<string name="settings_desc_hide_global_timeout">Hide the global timeout bar shown at the top of the screen</string>
<string name="settings_desc_show_individual_timeouts">Show an individual timeout bar for every entry.
This can slow down the app, only enable if really necessary.</string>
<string name="settings_desc_backup_append_date">बैकअप फ़ाइल नाम में सुझाए गए वर्तमान दिनांक और समय को लागू करें</string>
<string name="settings_desc_backup_ask">हर बार एक बैकअप बनाने या पुनर्स्थापित करने के लिए फ़ाइल नाम के लिए पूछें</string>
<string name="settings_desc_backup_directory">स्वचालित और प्रसारण बैकअप के लिए निर्देशिका (फ़ाइल नाम बैकअप प्रकार पर निर्भर करेगा)</string>
<string name="settings_desc_backup_password">पासवर्ड सेट करें जो बैकअप को कूटलेखन के लिए उपयोग होगा</string>
<string name="settings_desc_auto_backup_password_enc">जब नई प्रविष्टियाँ जोड़ी जाती हैं या संपादित की जाती हैं, तो एक नया एन्क्रिप्टेड बैकअप बनाता है, अगर सेटिंग्स की शर्तों को पूरा किया जाता है</string>
<string name="settings_desc_backup_broadcasts">ब्रॉडकास्ट का उपयोग करके तीसरी पार्टी ऐप्स द्वारा ट्रिगर होने वाले बैकअप प्रकार का चयन करें</string>
@ -69,7 +75,6 @@
<string name="settings_desc_enable_android_backup_service">बैकअप कुंजियों और वरीयताओं के लिए एंड्रॉयड की अंतर्निहित बैकअप सेवा का उपयोग करने में सक्षम करता है</string>
<string name="settings_desc_clear_keystore">कुंजी स्टोर से एन्क्रिप्शन कुंजी को हटाएं</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">इस फीचर को काम करने के लिए कम से कम एंड्रॉयड 5.0 (लॉलीपॉप) की आवश्यकता होती है</string>
<string name="settings_toast_auth_device_not_secure">इस सुविधा को सेट करने के लिए एक सुरक्षित लॉक स्क्रीन की आवश्यकता होती है (सेटिंग्स-&gt; सुरक्षा-&gt; स्क्रीन लॉक)</string>
<string name="settings_toast_password_empty">एक खाली पासवर्ड की अनुमति नहीं है, इसे अक्षम करने के लिए प्रमाणीकरण को \"कोई नहीं\" पर सेट करें!</string>
<string name="settings_toast_encryption_changing">डेटाबेस कूटलेखन को बदलने की कोशिश कर रहा है, कृपया प्रतीक्षा करें!</string>
@ -110,6 +115,12 @@
<item>निर्धारित</item>
<item>पूर्ण</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nothing</item>
<item>Reveal/Hide</item>
<item>Copy</item>
<item>Copy and go to background</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>लेबल</item>
<item>जारीकर्ता</item>

View file

@ -1,44 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="about_activity_title">Rólunk</string>
<string name="about_activity_title">Névjegy</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_about">Névjegy</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_changelog">Változásnapló</string>
<string name="about_label_license">Licenc</string>
<string name="about_label_MIT">MIT licenc</string>
<string name="about_label_source">Forráskód</string>
<string name="about_label_version">Verzió</string>
<string name="about_label_faq">FAQ</string>
<string name="about_label_faq_long">Frequently asked questions</string>
<string name="about_label_faq">GyIK</string>
<string name="about_label_faq_long">Gyakran ismételt kérdések</string>
<!-- Authors -->
<string name="about_title_authors">Készítő</string>
<string name="about_label_main_developer">Fő fejlesztők</string>
<string name="about_title_authors">Szerzők</string>
<string name="about_label_main_developer">Fő fejlesztő</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_author">Az eredeti alkalmazás szerző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_donate">Adományozás</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_title_thumbnail_disclaimer">Jogi nyilatkozat a bélyegképekről</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
jelenti azt, hogy az andOTP támogatná a védjegy tulajdonosát, vagy fordítva.</string>
<string name="about_thumbnails_disclaimer_no3"><b>3.</b> A bélyegképek csak arra vannak használva, 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>
<string name="about_thumbnails_disclaimer_no4"><b>4. Ne használja a más célra a bélyegképeket,
mint az adott márka vagy szolgáltatás reprezentálása.</b></string>
<!-- Support -->
<string name="about_title_support">Támogassa a fejlesztést</string>
<string name="about_desc_support">Find out how you can support the development of andOTP</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>
<string name="about_desc_support">Tudja meg hogyan támogathatja az andOTP fejlesztését</string>
<string name="about_title_special_features">Speciális funkciók</string>
<string name="about_dialog_special_features">Biztos, hogy engedélyezi a speciális
funkciókat? A javuk nem szabványos OTP algoritmus, melyek különleges kérésre lettek megvalósítva.
Ezek <b>nem hivatalosan támogatottak</b> és <b>különböző korlátozásokkal rendelkeznek</b>,
olvassa el (és értse meg) a „Speciális tulajdonságok” oldalt a Github wikin,
hogy többet tudjon meg a használatuk előtt.</string>
<string name="about_toast_special_features">Speciális funkciók engedélyezve</string>
<string name="about_toast_special_features_enabled">A speciális funkciók már engedélyezettek</string>
<string name="about_toast_copied_to_clipboard">Az adományozási hivatkozás a vágólapra lett másolva</string>
</resources>

View file

@ -1,18 +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>
<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>
<string name="auth_msg_authenticate">Hitelesítse magát az andOTP indításához!</string>
<string name="auth_msg_confirm_encryption">Erősítse meg a hitelesítését az új titkosítási
kulcs előállítá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>
<string name="auth_toast_password_missing">Állítsa be a jelszót a <b>Beállításokban</b>!</string>
<string name="auth_toast_pin_missing">Állítsa be a PIN-kódot a <b>Beállításokban</b>!</string>
<string name="auth_toast_password_again">Hibás jelszó, próbálja újra!</string>
<string name="auth_toast_pin_again">Hibás PIN-kód, próbálja újra!</string>
</resources>

View file

@ -1,5 +1,4 @@
<?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>
@ -12,54 +11,69 @@
<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_title_replace">Létező bejegyzések cseréje</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_export_openpgp">Minden fiók biztonsági mentése OpenPGP-vel 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 name="backup_desc_import_crypt">Minden fiók visszaállítása jelszóval védett JSON fájlból</string>
<string name="backup_desc_import_crypt_old">Fiókok visszaállítása olyan jelszóval védett JSON fájlból,
mely az <b>andOTP 0.6.3-as vagy régebbi verziójával</b> készült</string>
<string name="backup_desc_import_openpgp">Minden fiók visszaállítása OpenPGP-vel 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ásokból</b>,
ez azt is jelentheti hogy nem volt jelszó beállítva, vagy valami rosszul sikerült. 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_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>
<string name="backup_desc_openpgp_provider">Telepítenie kell az OpenPGP szolgáltatót, és engedélyeznie
kell a <b>Beállításokban</b> a funkció használatához.
</string>
<string name="backup_desc_openpgp_keyid">Ki kell választania az OpenPGP-kulcsot a <b>Beállításokban</b>,
mielőtt titkosított biztonsági mentéseket hozhat létre.
</string>
<string name="backup_desc_replace">Ha engedélyezve van, akkor az összes régi bejegyzést cseréli,
ha biztonsági másolatot importál, és csak a biztonsági mentés van jelen. Ha le van tiltva, akkor
a régi bejegyzések és a biztonsági mentés egyesítésre kerül.</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_dialog_msg_export_warning">Biztos, hogy egyszerű szöveges JSON-fájlként
exportálja az adatbázist? Ez a fájl tartalmazza az összes titkos kulcsot, így <b>tartsa biztonságban</b>!
</string>
<string name="backup_receiver_title_backup_failed">A biztonsági mentés sikertelen</string>
<string name="backup_receiver_title_backup_success">A biztonsági mentés sikeres</string>
<string name="backup_receiver_plain_disabled">Az egyszerű szöveges biztonsági mentések nem engedélyezettek,
az engedélyezéshez menjen a Beállításokba</string>
<string name="backup_receiver_encrypted_disabled">A titkosított biztonsági mentések nem engedélyezettek,
az engedélyezéshez menjen a Beállításokba</string>
<string name="backup_receiver_read_permission_failed">Az olvasási engedély nincs megadva, 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 megadva, engedélyezze
mielőtt biztonsági mentést hozna létre</string>
<string name="backup_receiver_custom_encryption_failed">A jelszó/PIN-kód alapú titkosítás nem
támogatott a közvetített biztonsági mentésnél</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
<string name="backup_new_format_dialog_msg">Az andOTP 0.6.3-as verziója óta a jelszavak egy <b>új és továbbfejlesztett
titkosítási eljárással</b> kerülnek titkosításra. A régi mentések továbbra is
importálhatók, de <b>erősen ajánlott új biztonsági mentést létrehozni 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>
<string name="notification_channel_desc_backup_failed">Ezek az értesítések akkor jelennek meg,
ha a biztonsági mentés valamilyen okból sikertelen</string>
<string name="notification_channel_desc_backup_success">Ezek az értesítések akkor jelennek meg,
ha a biztonsági mentés sikeres volt</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_mkdir_failed">A biztonsági mentés könyvtárának létrehozása sikertelen</string>
<string name="backup_toast_export_success">A külső tárolóra történő exportálás sikeres</string>
<string name="backup_toast_export_failed">A külső tárolóra történő exportálás sikertelen</string>
<string name="backup_toast_import_success">A külső tárolóról történő importálás sikeres</string>
<string name="backup_toast_import_save_failed">A visszaállított bejegyzések mentése sikertelen</string>
<string name="backup_toast_import_decryption_failed">A biztonsági másolat visszafejtése 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_storage_not_accessible">A külső tároló jelenleg nem érhető el</string>
<string name="backup_toast_storage_permissions">A Tároló engedély nincs megadva</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>
<string name="backup_toast_file_selection_failed">Can\'t open file selection dialog!</string>
<string name="backup_toast_file_selection_failed">A fájlválasztó párbeszédablak nem nyitható meg!</string>
</resources>

View file

@ -1,19 +1,37 @@
<?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_slide1_desc">Üdvözli az <b>andOTP</b>, ez a varázsló végigvezeti a
kezdeti beállításokon. Olvassa el figyelmesen, különben elveszítheti az adatait!
\n\nNe aggódjon, ezeket a beállításokat később megváltoztathatja a <b>Beállításokban</b>.</string>
<string name="intro_slide2_desc">Hogy biztosítsa a fiókjai biztonságát, az <b>andOTP</b> csak
titkosított adatfájlokban tárolja azokat. Itt kiválaszthatja melyik titkosítási eljárást akarja
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 kulcsok el vannak különítve az adatfájloktól, és hardveres titkosítást használnak
(ha a készüléke támogatja). Mivel azonban a kulcsok nem az alkalmazásadatok mellett vannak,
így <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, akkor 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 zavarja, hogy jelszót/PIN-kódot kell beírnia minden alkalommal, amikor elindítja az
<b>andOTP</b>-t, akkor <b>ajánlott a jelszóalapú titkosítás használata</b>.</string>
<string name="intro_slide2_desc_password">Ez a módszer egy jelszóból vagy PIN-kódból
előállított kulccsal titkosítja az adatait. A fő előnye, hogy ez külső biztonsági megoldásokkal
(például a Titaniummal) is működik, és sokkal kevésbé hajlamos a hibákra, mint a KeyStore.
Viszont az <b>andOTP</b> minden egyes indításakor meg kell adnia a 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ódszerként az <b>Android KeyStore</b> lehetőséget választotta,
így 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ódszerként az <b>Jelszó/PIN-kód</b> lehetőséget választotta,
így meg kell adnia egy jelszót vagy PIN-kódot a folytatáshoz.</string>
<string name="intro_slide3_warn_no_password">Állítson be jelszót a folytatáshoz!</string>
<string name="intro_slide3_warn_no_pin">Állítson be PIN-kódot a folytatáshoz!</string>
<string name="intro_slide3_warn_confirm_password">Erősítse meg a jelszavát a folytatáshoz!</string>
<string name="intro_slide3_warn_confirm_pin">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>
<string name="intro_slide4_desc">A beállításai mentésre kerültek, minden kész az
<b>andOTP</b> használatához!</string>
</resources>

View file

@ -1,87 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Buttons -->
<string name="button_cancel">Mégsem</string>
<string name="button_cancel">Mégse</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_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>
<string name="button_qr_from_image">QR code from image</string>
<string name="button_qr_from_image">QR-kód képből</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>
<string name="hint_secret">Titok</string>
<!-- Labels -->
<string name="label_hidden">Rejtett</string>
<string name="label_type">Típus</string>
<string name="label_secret">Titkos</string>
<string name="label_secret">Titok</string>
<string name="label_period">Időtartam</string>
<string name="label_digits">Számok</string>
<string name="label_digits">Számjegyek</string>
<string name="label_counter">Számláló</string>
<string name="label_issuer">Issuer</string>
<string name="label_issuer">Kibocsátó</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>
<string name="label_tags">Címkék</string>
<string name="label_advanced">Speciális beállítások</string>
<!-- Drawer -->
<string name="drawer_open">Cimkék megjelenítése</string>
<string name="drawer_open">Címké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_about">Névjegy</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_issuer">Issuer</string>
<string name="menu_sort_issuer">Kibocsátó</string>
<string name="menu_sort_label">Cím</string>
<string name="menu_sort_last_used">Utoljára használt</string>
<string name="menu_sort_most_used">Most used</string>
<string name="menu_popup_edit_issuer">Edit issuer</string>
<string name="menu_popup_edit_label">Cím szerkesztése</string>
<string name="menu_sort_most_used">Legtöbbet használt</string>
<string name="menu_popup_edit">Edit</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>
<string name="menu_popup_show_qr_code">Show QR Code</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">A hitelesítés sikertelen, próbálja ú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>
<string name="toast_intent_creation_failed">Invalid intent-provided code</string>
<string name="toast_intent_creation_succeeded">Intent-provided code added</string>
<string name="toast_file_load_error">Could not open the file</string>
<string name="toast_qr_error">Could not find/confirm QR code</string>
<string name="toast_qr_checksum_exception">Checksum verification failed while decoding QR code</string>
<string name="toast_qr_format_error">Format error in QR code</string>
<string name="toast_intent_creation_failed">Érvénytelen átadott kód</string>
<string name="toast_intent_creation_succeeded">Átadott kód hozzáadva</string>
<string name="toast_file_load_error">A fájlt nem lehetett megnyitni</string>
<string name="toast_qr_error">A QR-kód nem található/erősíthető meg</string>
<string name="toast_qr_checksum_exception">Az ellenőrzőösszeg-ellenőrzés a QR-kód dekódolásakor sikertelen</string>
<string name="toast_qr_format_error">Formátumhiba a QR-kódban</string>
<string name="toast_qr_unsuported">QR Code not supported</string>
<string name="toast_qr_failed_to_generate">Failed to generate QR Code</string>
<!-- Errors -->
<string name="error_invalid_secret">Invalid secret</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_used_tokens">Used tokens</string>
<string name="dialog_title_used_tokens">Tokens usage</string>
<string name="dialog_title_keystore_error">KeyStore hiba</string>
<string name="dialog_title_qr_code">QR Code</string>
<string name="dialog_title_android21_depreaction">Deprecation notice</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_used_tokens">In order for andOTP to recognize which tokens get used you
have to have either \"tap to reveal\" enabled or use the copy button. This applies to the
sorting of the tokens by \"most used\" as well as by \"last used\".\n\nThis message will not
be shown again.</string>
<string name="dialog_msg_used_tokens">andOTP will track when you use your tokens (using the \"Tap
to reveal\" feature or copying to clipboard) to be able to sort them by \"Most used\" or
\"Last used\".\n\nThis message will not be shown again.</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>
<string name="dialog_msg_android21_deprecation">This will be the last version of andOTP to
support Android versions below 5.1 (Lollipop). The increased effort required to maintain a
separate storage implementation just for those older versions as well as their low market
shares make a continued support infeasible for our small team.\n\nThis message will not be
shown again.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">QR kód beolvasása</string>
<string name="shortcut_name_import_qr">Import QR code</string>
<string name="shortcut_name_import_qr">QR-kód importálása</string>
<string name="shortcut_name_enter_details">Adja meg a részleteket</string>
</resources>

View file

@ -6,127 +6,165 @@
<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_tap_to_reveal">Koppintás a felfedéshez</string>
<string name="settings_title_tap_to_reveal_timeout">A koppintással történő 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_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_relock_background">Re-lock when going into the background</string>
<string name="settings_title_auth_inactivity">Re-lock on inactivity</string>
<string name="settings_title_auth_inactivity_delay">Delay for inactivity re-lock</string>
<string name="settings_title_block_accessibility">Block accessibility services</string>
<string name="settings_title_relock_background">Lezárás, ha háttérbe kerül</string>
<string name="settings_title_auth_inactivity">Lezárás tétlenségkor</string>
<string name="settings_title_auth_inactivity_delay">A tétlenség miatt lezárás késleltetése</string>
<string name="settings_title_block_accessibility">Akadálymentesítési szolgáltatások blokkolása</string>
<string name="settings_title_lang">Nyelv</string>
<string name="settings_title_theme">Téma</string>
<string name="settings_title_card_layout">Card layout</string>
<string name="settings_title_card_layout">Kártyák elrendezése</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_minimize_on_copy">Minimize app after copying OTP</string>
<string name="settings_title_search_includes">Search behavior</string>
<string name="settings_title_label_highlight_token">Highlight expiring tokens</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_tap_single">Single-tap</string>
<string name="settings_title_tap_double">Double-tap</string>
<string name="settings_title_thumbnail_size_ask">Bélyegképek mérete</string>
<string name="settings_title_split_group_size">Token elválasztása szóközzel</string>
<string name="settings_title_tag_functionality">Címkekiválasztás viselkedése</string>
<string name="settings_title_minimize_on_copy">Alkalmazás minimalizálása az OTP másolása után</string>
<string name="settings_title_search_includes">Keresés viselkedése</string>
<string name="settings_title_label_highlight_token">Lejáró tokenek kiemelése</string>
<string name="settings_title_hide_global_timeout">Hide global timeout bar</string>
<string name="settings_title_show_individual_timeouts">Show individual timeouts</string>
<string name="settings_title_backup_append_date">Dátum hozzáfűzése a fájlnévhez</string>
<string name="settings_title_backup_ask">Fájlnév bekérése</string>
<string name="settings_title_backup_directory">Biztonsági mentés könyvtára</string>
<string name="settings_title_backup_password">Biztonsági mentés jelszava</string>
<string name="settings_title_auto_backup_password_enc">Automatically backup on new entries</string>
<string name="settings_title_backup_broadcasts">Közvetítés biztonsági mentése</string>
<string name="settings_title_auto_backup_password_enc">Új bejegyzések automatikus biztonsági mentése</string>
<string name="settings_title_backup_broadcasts">Továbbított biztonsági mentés</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_openpgp_key_sign">OpenPGP aláírókulcs (nem kötelező)</string>
<string name="settings_title_openpgp_verify">Titkosított biztonsági másolatok ellenőrzé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>
<string name="settings_title_enable_screenshot">Képernyőképek engedélyezése</string>
<string name="settings_title_enable_android_backup_service">Android sync engedélyezése</string>
<string name="settings_title_clear_keystore">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_relock_background">Require authentication after the app was sent to
the background (e.g. by pressing the home button)</string>
<string name="settings_desc_auth_inactivity">Require authentication after the device has been
inactive</string>
<string name="settings_desc_auth_inactivity_delay">Select the time (in sec) after which to
require reauthentication</string>
<string name="settings_desc_block_accessibility">Hide sensitive fields from the accessibility
services. <b>DO NOT enable this if you rely on the accessibility services!</b></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_minimize_on_copy">App will be minimized when you copy the OTP to clipboard</string>
<string name="settings_desc_search_includes">Specify which values should be included when searching</string>
<string name="settings_desc_label_highlight_token">Highlights token in red if it\'s expiring in 8 seconds</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_tap_to_reveal">Az OTP tokenek alapértelmezett elrejtése,
kézzel fedhetők fel</string>
<string name="settings_desc_tap_to_reveal_timeout">Válassza ki az időt (másodpercben), miután
a felfedett bejegyzések újra eltűnnek</string>
<string name="settings_desc_panic">Döntse el, hogy mit történjen a Pánik aktiválásakor</string>
<string name="settings_desc_relock_screen_off">Hitelesítés megkövetelése, ha az eszköz
kijelzője kikapcsol</string>
<string name="settings_desc_relock_background">Hitelesítés megkövetelése, ha az alkalmazás
háttérbe lett küldve (például a kezdőképernyő gombbal)</string>
<string name="settings_desc_auth_inactivity">Hitelesítés megkövetelése az eszköz
tétlensége után</string>
<string name="settings_desc_auth_inactivity_delay">Válassza ki az időt (másodpercben), ami
után hitelesítés szükséges</string>
<string name="settings_desc_block_accessibility">Érzékeny mezők elrejtése az akadálymentesítési
szolgáltatások elől. <b>NE kapcsolja be, ha használja ezeket!</b></string>
<string name="settings_desc_label_scroll">A hosszabb címek görgetése a levágásuk helyett</string>
<string name="settings_desc_minimize_on_copy">Az alkalmazás minimalizálva lesz, ha a vágólapra másolja az OTP-t</string>
<string name="settings_desc_search_includes">Adja meg, hogy mely értékek legyenek belevéve a keresésbe</string>
<string name="settings_desc_label_highlight_token">Tokenek kiemelése vörössel, ha 8 másodpercen belül lejár</string>
<string name="settings_desc_hide_global_timeout">Hide the global timeout bar shown at the top of the screen</string>
<string name="settings_desc_show_individual_timeouts">Show an individual timeout bar for every entry.
This can slow down the app, only enable if really necessary.</string>
<string name="settings_desc_backup_append_date">A jelenlegi dátum és idő hozzáfűzése a biztonsági
mentés javasolt 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">Directory for automatic and broadcast backups
(filenames will depend on the backup type)</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_auto_backup_password_enc">Creates a new encrypted backup when new
entries are added, or edited, if settings conditions are met</string>
<string name="settings_desc_auto_backup_password_enc">Új titkosított biztonsági mentést hoz létre, ha új
bejegyzések kerülnek hozzáadásra, szerkesztésre, vagy ha a
beállításokban megadott feltételek teljesülnek</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>
<string name="settings_desc_enable_screenshot">Engedélyi a képernyőkép készítését a
kezdőképernyőről (alapértelmezetten biztonsági okokból tiltott)</string>
<string name="settings_desc_enable_android_backup_service">Engedélyezi az andOTP számára az Android beépített
biztonsági mentési szolgáltatásának használatát
a kulcsok és beállítások mentéséhez</string>
<string name="settings_desc_clear_keystore">Titkosítási kulcs törlése 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 -&gt; Biztonság -&gt; 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_password_empty">Az üres jelszó nem engedélyezett, a letiltáshoz
állítsa „Nincs” értékre a Hitelesítést!</string>
<string name="settings_toast_encryption_changing">Adatbázis-titkosítás módosítása,
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állítás 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">A titkosítási kulcs elérése sikertelen, 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_toast_auth_upgrade_failed">Nem sikerült a jelszó/PIN-kód néma frissítése az új titkosításra,
állítsa vissza kézzel a Beállításokban!</string>
<string name="settings_dialog_title_warning">Figyelmeztetés</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_clear_keystore">Törli a KeyStore-t?</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>
<string name="settings_dialog_msg_encryption_change">Az andOTP most megpróbálja megváltoztatni az adatbázis
titkosítását. Hiba esetén esetén a belső biztonsági mentés lesz visszaállítva, és a titkosítás
változatlan marad.\n\n<b>Mindig jó ötlet, ha van egy biztonsági mentése arra az esetre,
ha valami váratlan történik!</b></string>
<string name="settings_dialog_msg_auth_invalid_with_encryption">Csak akkor használhat jelszót vagy PIN-kódot, ha
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” típusú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 PIN-kódot!</string>
<string name="settings_dialog_msg_clear_keystore_password">Egyes esetekben a KeyStore törlése segíthet
megoldani a problémákat. Csak akkor folytassa, ha tudja, hogy mit csinál!\n\nMivel az
<b>Adatbázis-titkosítás</b> beállítása <b>Jelszó/PIN-kód</b>, így nem kellene, hogy
adatokat veszítsen (de sosem árt, ha van biztonsági mentése).\n\n<b>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íthet
megoldani a problémákat. Csak akkor folytassa, ha tudja, mit csinál!\n\n<b>Figyelmeztetés</b>:
Mivel az <b>Adatbázis-titkosítás</b> beállítása <b>Android KeyStore</b>, így elveszíti az
összes fiókját. Győződjön meg róla, hogy van biztonsági mentése!\n\n<b>Biztos, hogy
törölni szeretné a KeyStore-t?</b></string>
<string name="settings_dialog_msg_android_sync_disabled_encryption">Az Android sync nem használható KeyStore
titkosítással, <b>kézileg kell biztonsági mentést készítenie!</b></string>
<!-- List entries -->
<string-array name="settings_entries_auth">
<item>Semmi</item>
<item>Nincs</item>
<item>Jelszó</item>
<item>PIN kód</item>
<item>Készülék adatai</item>
<item>PIN-kód</item>
<item>Eszköz hitelesítő adatai</item>
</string-array>
<string-array name="settings_entries_encryption">
<item>Android KeyStore</item>
<item>Jelszó / PIN kód</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_card_layout">
<item>Compact</item>
<item>Default</item>
<item>Full</item>
<item>Kompakt</item>
<item>Alapértelmezett</item>
<item>Teljes</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Nothing</item>
<item>Reveal/Hide</item>
<item>Copy</item>
<item>Copy and go to background</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Label</item>
<item>Issuer</item>
<item>Tags</item>
<item>Cím</item>
<item>Kibocsátó</item>
<item>Címkék</item>
</string-array>
<string-array name="settings_entries_auto_backup_password_enc">
<item>Off</item>
<item>New Entries</item>
<item>Any Edits</item>
<item>Ki</item>
<item>Új bejegyzések</item>
<item>Bármilyen szerkesztés</item>
</string-array>
<string-array name="settings_entries_theme">
<item>Világos téma</item>
@ -135,11 +173,11 @@ Mivel az <b> Adatbázis titkosítás</b> <b> Android KeyStore</b> -ra van beáll
</string-array>
<string-array name="settings_entries_thumbnail_size">
<item>Rejtett</item>
<item>Tiny</item>
<item>Small</item>
<item>Default</item>
<item>Medium</item>
<item>Large</item>
<item>Apró</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>
@ -147,8 +185,8 @@ Mivel az <b> Adatbázis titkosítás</b> <b> Android KeyStore</b> -ra van beáll
<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>A kiválasztott címkék <b>bármelyikének</b> megfelelő bejegyzések megjelenítése (vagy)</item>
<item>Csak a kiválasztott címkék <b>mindegyikének</b> megfelelő bejegyzések megjelenítése (és)</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">
@ -156,12 +194,12 @@ Mivel az <b> Adatbázis titkosítás</b> <b> Android KeyStore</b> -ra van beáll
<item>Titkosított biztonsági mentések</item>
</string-array>
<!-- Special -->
<string name="settings_lang_sys_default">Rendszer alapértelmezett</string>
<string name="settings_lang_sys_default">Rendszer alapértelmezése</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_pin">Adja meg az új PIN-kódot</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>
<string name="settings_hint_pin_confirm">PIN-kód megerősítése</string>
<string name="settings_label_short_password">A jelszónak legalább %1$d karakter hosszúnak kell lennie!</string>
<string name="settings_label_short_pin">A PIN-kódnak legalább %1$d karakter hosszúnak kell lennie!</string>
</resources>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">Etichetta</string>
<string name="menu_sort_last_used">Ultimo utilizzo</string>
<string name="menu_sort_most_used">Più utilizzate</string>
<string name="menu_popup_edit_issuer">Modifica emittente</string>
<string name="menu_popup_edit_label">Modifica etichetta</string>
<string name="menu_popup_edit">Modifica</string>
<string name="menu_popup_change_image">Cambia Immagine</string>
<string name="menu_popup_edit_tags">Modifica tags</string>
<string name="menu_popup_remove">Rimuovi</string>
<string name="menu_popup_show_qr_code">Mostra codice QR</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Autenticazione non riuscita, riprova!</string>
<string name="toast_auth_failed_fatal">Autenticazione non riuscita, andOTP verrà chiuso!</string>
@ -59,26 +58,36 @@
<string name="toast_qr_error">Impossibile trovare/confermare il codice QR</string>
<string name="toast_qr_checksum_exception">Checksum fallito durante la decodifica del codice QR</string>
<string name="toast_qr_format_error">Formato QR Code errato</string>
<string name="toast_qr_unsuported">Codice QR non supportato</string>
<string name="toast_qr_failed_to_generate">Generazione del codice QR fallita</string>
<!-- Errors -->
<string name="error_invalid_secret">Segreto non valido</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Autenticazione</string>
<string name="dialog_title_manual_entry">Inserisci dettagli</string>
<string name="dialog_title_remove">Rimuovi</string>
<string name="dialog_title_rename">Rinomina</string>
<string name="dialog_title_counter">Contatore</string>
<string name="dialog_title_used_tokens">Token utilizzati</string>
<string name="dialog_title_used_tokens">Utilizzo dei token</string>
<string name="dialog_title_keystore_error">Errore KeyStore</string>
<string name="dialog_title_qr_code">Codice QR</string>
<string name="dialog_title_android21_depreaction">Avviso di deprecazione</string>
<string name="dialog_title_enter_password">Inserisci la password</string>
<string name="dialog_label_enter_password">Inserisci la password</string>
<string name="dialog_label_confirm_password">Conferma la password</string>
<string name="dialog_msg_auth">Si prega di inserire le credenziali del dispositivo per avviare andOTP.</string>
<string name="dialog_msg_confirm_delete">Sei sicuro di volere rimuovere l\'account \"%1$s\"?</string>
<string name="dialog_msg_used_tokens">Per consentire ad andOTP di riconoscere quali token vengono utilizzati
devi avere \"tocca per mostrare\" attivato o usare il pulsante copia. Questo vale per
l\'odinamento dei token per \"più usati\" e per \"ultimo utilizzo\".\n\nQuesto messaggio
non verrà più mostrato.</string>
<string name="dialog_msg_used_tokens">andOTP monitorerà quando utilizzi i tuoi token (usando la funzione
\"Tocca per mostrare\" o copiando negli appunti) in modo da ordinarli per \"Più utilizzate\" o
\"Ultimo utilizzo\".\n\nQuesto messaggio non verrà più mostrato.</string>
<string name="dialog_msg_keystore_error">Impossibile caricare la chiave di crittografia dal KeyStore.
<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>
<string name="dialog_msg_android21_deprecation">Questa sarà l\'ultima versione di andOTP che
supporta versioni di Android sotto alla 5.1 (Lollipop). L\'aumento dell\'impegno richiesto per
mantenere un\'implementazione di archiviazione separata solo per quelle vecchie versioni
e le loro basse quote di mercato rendono impossibile un supporto continuo per il nostro
piccolo team.\n\nQuesto messaggio non verrà più mostrato.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">Scansione QR-Code</string>
<string name="shortcut_name_import_qr">Importa codice QR</string>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">Layout scheda</string>
<string name="settings_title_label_size">Dimensione carattere dell\'etichetta</string>
<string name="settings_title_label_scroll">Etichette che scorrono</string>
<string name="settings_title_tap_single">Tocco singolo</string>
<string name="settings_title_tap_double">Doppio tocco</string>
<string name="settings_title_thumbnail_size_ask">Dimensioni dell\'anteprima</string>
<string name="settings_title_split_group_size">Dividi i Token con uno spazio</string>
<string name="settings_title_tag_functionality">Comportamento selezione tag</string>
<string name="settings_title_minimize_on_copy">Minimizza l\'app dopo aver copiato un codice OTP</string>
<string name="settings_title_search_includes">Comportamento della ricerca</string>
<string name="settings_title_label_highlight_token">Evidenzia token in scadenza</string>
<string name="settings_title_hide_global_timeout">Nascondi la barra di timeout globale</string>
<string name="settings_title_show_individual_timeouts">Mostra i singoli timeout</string>
<string name="settings_title_backup_append_date">Aggiungi la data al nome del file</string>
<string name="settings_title_backup_ask">Chiedi un nome di file</string>
<string name="settings_title_backup_directory">Cartella backup</string>
@ -63,12 +67,13 @@ sarà richiesta nuovamente l\'autenticazione</string>
<string name="settings_desc_minimize_on_copy">L\'app verrà minimizzata quando si copia un codice OTP negli appunti</string>
<string name="settings_desc_search_includes">Specifica quali valori devono essere inclusi durante la ricerca</string>
<string name="settings_desc_label_highlight_token">Evidenzia in rosso i token se scadono in 8 secondi</string>
<string name="settings_desc_hide_global_timeout">Nascondi la barra del conto alla rovescia globale mostrata nella parte superiore dello schermo</string>
<string name="settings_desc_show_individual_timeouts">Mostra una barra di conto alla rovescia individuale per ogni voce.
Ciò può rallentare l\'app, attivarlo solo se davvero necessario.</string>
<string name="settings_desc_backup_append_date">Aggiungi la data e l\'ora correnti al nome del
file di backup suggerito</string>
<string name="settings_desc_backup_ask">Chiedere il nome del file ogni volta che un backup
viene creato o ripristinato</string>
<string name="settings_desc_backup_directory">Cartella per backup automatici e broadcast
(i nomi dei file dipendono dal tipo di backup)</string>
<string name="settings_desc_backup_password">Impostare la password utilizzata per crittografare i
backup</string>
<string name="settings_desc_auto_backup_password_enc">Crea un nuovo backup cifrato quando vengono create nuove
@ -86,8 +91,6 @@ voci o editate, se le condizioni delle impostazioni sono configurate</string>
di backup integrato di Android per le chiavi di backup e le preferenze</string>
<string name="settings_desc_clear_keystore">Eliminare la chiave di crittografia dal KeyStore</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">Questa funzionalità richiede almeno Android 5.0
(Lollipop) per funzionare</string>
<string name="settings_toast_auth_device_not_secure">Questa funzionalità richiede la configurazione di una
schermata di blocco sicuro (Impostazioni -&gt; Sicurezza -&gt; Blocco schermo)</string>
<string name="settings_toast_password_empty">Non è consentita una password vuota, imposta
@ -150,6 +153,12 @@ voci o editate, se le condizioni delle impostazioni sono configurate</string>
<item>Predefinito</item>
<item>Pieno</item>
</string-array>
<string-array name="settings_entries_tap">
<item>Niente</item>
<item>Mostra/Nascondi</item>
<item>Copia</item>
<item>Copia e vai in secondo piano</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>Etichetta</item>
<item>Emittente</item>

View file

@ -34,7 +34,7 @@
<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>
<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>

View file

@ -3,13 +3,13 @@
<!-- Buttons -->
<string name="button_cancel">キャンセル</string>
<string name="button_enter_details">詳細を入力</string>
<string name="button_scan_qr">QRコードをスキャン</string>
<string name="button_scan_qr">QR コードをスキャン</string>
<string name="button_save">保存</string>
<string name="button_new_tag">新しいタグ</string>
<string name="button_settings">設定</string>
<string name="button_all_tags">すべてのタグ</string>
<string name="button_no_tags">タグなし</string>
<string name="button_qr_from_image">QRコードを画像からスキャン</string>
<string name="button_qr_from_image">QR コードを画像からスキャン</string>
<!-- Custom formatting -->
<string name="format_custom_period">%d 秒</string>
<!-- Hints -->
@ -41,42 +41,48 @@
<string name="menu_sort_label">ラベル順</string>
<string name="menu_sort_last_used">使用した順</string>
<string name="menu_sort_most_used">使用回数順</string>
<string name="menu_popup_edit_issuer">発行者を編集</string>
<string name="menu_popup_edit_label">ラベルを編集</string>
<string name="menu_popup_edit">編集</string>
<string name="menu_popup_change_image">画像を変更</string>
<string name="menu_popup_edit_tags">タグを編集</string>
<string name="menu_popup_remove">削除</string>
<string name="menu_popup_show_qr_code">QR コードを表示</string>
<!-- Toast messages -->
<string name="toast_auth_failed">認証に失敗しました、もう一度やり直してください!</string>
<string name="toast_auth_failed_fatal">認証に失敗しました、 andOTP を終了します!</string>
<string name="toast_copied_to_clipboard">クリップボードにコピーしました</string>
<string name="toast_entry_exists">そのエントリは既に存在します</string>
<string name="toast_invalid_qr_code">QRコードが無効です</string>
<string name="toast_invalid_qr_code">QR コードが無効です</string>
<string name="toast_encryption_key_empty">暗号化キーが読み込まれていません</string>
<string name="toast_intent_creation_failed">インテントから提供されたコードが無効です</string>
<string name="toast_intent_creation_succeeded">インテントから提供されたコードを追加しました</string>
<string name="toast_file_load_error">ファイルを開けませんでした</string>
<string name="toast_qr_error">QRコードを発見・確認できませんでした</string>
<string name="toast_qr_checksum_exception">QRコードのデコード中にチェックサムの検証に失敗しました</string>
<string name="toast_qr_format_error">QRコードの形式エラー</string>
<string name="toast_qr_error">QR コードを発見・確認できませんでした</string>
<string name="toast_qr_checksum_exception">QR コードのデコード中にチェックサムの検証に失敗しました</string>
<string name="toast_qr_format_error">QR コードの形式エラー</string>
<string name="toast_qr_unsuported">この QR コードはサポートされていません</string>
<string name="toast_qr_failed_to_generate">QR コードの生成に失敗しました</string>
<!-- Errors -->
<string name="error_invalid_secret">無効な秘密鍵です</string>
<!-- Dialogs -->
<string name="dialog_title_auth">認証</string>
<string name="dialog_title_manual_entry">詳細を入力</string>
<string name="dialog_title_remove">削除</string>
<string name="dialog_title_rename">ラベルを変更</string>
<string name="dialog_title_counter">カウンター</string>
<string name="dialog_title_used_tokens">使用されたトークンの認識</string>
<string name="dialog_title_used_tokens">トークンの使用</string>
<string name="dialog_title_keystore_error">キーストアエラー</string>
<string name="dialog_title_qr_code">QR コード</string>
<string name="dialog_title_android21_depreaction">サポート廃止の通知</string>
<string name="dialog_title_enter_password">パスワードを入力</string>
<string name="dialog_label_enter_password">パスワードを入力</string>
<string name="dialog_label_confirm_password">パスワードの確認</string>
<string name="dialog_msg_auth">andOTP を起動するためにデバイス認証情報を入力してください。</string>
<string name="dialog_msg_confirm_delete">アカウント \"%1$s\" を削除してもよろしいですか?</string>
<string name="dialog_msg_used_tokens">andOTP がどのトークンが使用されているかを認識するためには「タップして表示」を有効にするか、コピーボタンを使用する必要があります。これは、トークンを「使用回数順」または「使用した順」で並べ替える場合に必要です。\n\nこのメッセージは再度表示はされません。</string>
<string name="dialog_msg_used_tokens">andOTP はあなたがトークンを使用したタイミングを追跡します(「タップして表示」を使用するかクリップボードにコピーした場合)。これにより、トークンを「使用回数順」または「使用した順」で並び替えることができます。\n\nこのメッセージは再度表示されることはありません。</string>
<string name="dialog_msg_keystore_error">キーストアから暗号化キーを読み込めませんでした。 <b>追加されたエントリはすべて失われます。</b>
\n\n andOTP を引き続き使用できるようにするには <b>設定</b> に行き <b>データベース暗号化</b><b>パスワード / PIN</b> に切り替えます。</string>
<string name="dialog_msg_android21_deprecation">このアプリバージョンは、Android 5.1 (ロリポップ)以下の Android バージョンをサポートする andOTP の最後のバージョンになります。これらの Android バージョンは古く、私たちのような小さな開発チームが利用者の少ない Android バージョンをサポートし続けるために別のストレージ実装を維持するが困難であるため、今後のアプリバージョンではサポートされなくなります。\n\nこのメッセージは再度表示されることはありません。</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">QRコードをスキャン</string>
<string name="shortcut_name_import_qr">QRコードをインポート</string>
<string name="shortcut_name_scan_qr">QR コードをスキャン</string>
<string name="shortcut_name_import_qr">QR コードをインポート</string>
<string name="shortcut_name_enter_details">詳細を入力</string>
</resources>

View file

@ -23,12 +23,16 @@
<string name="settings_title_card_layout">カードレイアウト</string>
<string name="settings_title_label_size">ラベルのフォントサイズ</string>
<string name="settings_title_label_scroll">ラベルをスクロール</string>
<string name="settings_title_tap_single">シングルタップ</string>
<string name="settings_title_tap_double">ダブルタップ</string>
<string name="settings_title_thumbnail_size_ask">サムネイルのサイズ</string>
<string name="settings_title_split_group_size">トークンの分割表示</string>
<string name="settings_title_tag_functionality">タグ選択の動作</string>
<string name="settings_title_minimize_on_copy">OTP コピー後にアプリを最小化</string>
<string name="settings_title_search_includes">検索の動作</string>
<string name="settings_title_label_highlight_token">有効期限切れ直前のトークンを強調表示</string>
<string name="settings_title_hide_global_timeout">全体の有効期限表示を行わない</string>
<string name="settings_title_show_individual_timeouts">個別の有効期限表示を行う</string>
<string name="settings_title_backup_append_date">日付をファイル名に追加</string>
<string name="settings_title_backup_ask">ファイルを確認</string>
<string name="settings_title_backup_directory">バックアップディレクトリ</string>
@ -56,9 +60,10 @@
<string name="settings_desc_minimize_on_copy">OTP をクリップボードにコピーしたら、アプリを最小化する</string>
<string name="settings_desc_search_includes">検索の対象に含める値を指定します</string>
<string name="settings_desc_label_highlight_token">8秒以内に有効期限切れになるトークンを強調表示する</string>
<string name="settings_desc_hide_global_timeout">画面上部に表示される「全体の有効期限表示」を無効化します</string>
<string name="settings_desc_show_individual_timeouts">すべてのエントリで「個別の有効期限表示」を有効化します。この設定によりアプリの動作が遅くなる可能性があるため、本当に必要な場合のみ有効化してください。</string>
<string name="settings_desc_backup_append_date">提案されたバックアップファイル名に現在の日付と時刻を追加する</string>
<string name="settings_desc_backup_ask">バックアップが作成または復元されるたびにファイル名を確認する</string>
<string name="settings_desc_backup_directory">自動バックアップおよびブロードキャストバックアップ用のディレクトリ (ファイル名はバックアップの種類によって異なります)</string>
<string name="settings_desc_backup_password">バックアップの暗号化に使用するパスワードを設定</string>
<string name="settings_desc_auto_backup_password_enc">新しいエントリが追加された、または既存のエントリが編集された場合に、新しい暗号化バックアップを作成します</string>
<string name="settings_desc_backup_broadcasts">ブロードキャストを使用してサードパーティのアプリによってトリガーできるバックアップの種類を選択する</string>
@ -69,7 +74,6 @@
<string name="settings_desc_enable_android_backup_service">andOTP が Android の組み込みバックアップサービスを使用してキーと設定をバックアップできるようにする</string>
<string name="settings_desc_clear_keystore">キーストアからの暗号化キーを削除</string>
<!-- Toasts -->
<string name="settings_toast_auth_device_pre_lollipop">この機能を動作させるには Android 5.0 (Lollipop) 以上である必要があります</string>
<string name="settings_toast_auth_device_not_secure">この機能では、セキュリティで保護されたロック画面を設定する必要があります (設定 -&gt; セキュリティー -&gt; スクリーンロック)</string>
<string name="settings_toast_password_empty">空のパスワードは許可されていません、設定を「なし」にすると認証を無効にできます。</string>
<string name="settings_toast_encryption_changing">データベース暗号化の変更中です、少々お待ちください!</string>
@ -110,6 +114,12 @@
<item>デフォルト</item>
<item>フル</item>
</string-array>
<string-array name="settings_entries_tap">
<item>なし</item>
<item>表示/非表示</item>
<item>コピー</item>
<item>コピーしてバックグラウンドへ移動</item>
</string-array>
<string-array name="settings_entries_search_includes">
<item>ラベル</item>
<item>発行者</item>

View file

@ -41,11 +41,10 @@
<string name="menu_sort_label">Etiket</string>
<string name="menu_sort_last_used">Laatst gebruikt</string>
<string name="menu_sort_most_used">Meest gebruikt</string>
<string name="menu_popup_edit_issuer">Uitgever bewerken</string>
<string name="menu_popup_edit_label">Etiket bewerken</string>
<string name="menu_popup_edit">Edit</string>
<string name="menu_popup_change_image">Afbeelding wijzigen</string>
<string name="menu_popup_edit_tags">Labels bewerken</string>
<string name="menu_popup_remove">Verwijderen</string>
<string name="menu_popup_show_qr_code">Show QR Code</string>
<!-- Toast messages -->
<string name="toast_auth_failed">Authenticatie mislukt. Probeer opnieuw!</string>
<string name="toast_auth_failed_fatal">Verificatie is mislukt, andOTP wordt afgesloten!</string>
@ -59,24 +58,34 @@
<string name="toast_qr_error">Kon QR-code niet vinden/bevestigen</string>
<string name="toast_qr_checksum_exception">Checksum verificatie mislukte tijdens het decoderen van de QR-code</string>
<string name="toast_qr_format_error">Formaat fout in QR-code</string>
<string name="toast_qr_unsuported">QR Code not supported</string>
<string name="toast_qr_failed_to_generate">Failed to generate QR Code</string>
<!-- Errors -->
<string name="error_invalid_secret">Invalid secret</string>
<!-- Dialogs -->
<string name="dialog_title_auth">Verifiëren</string>
<string name="dialog_title_manual_entry">Details ingeven</string>
<string name="dialog_title_remove">Verwijderen</string>
<string name="dialog_title_rename">Hernoemen</string>
<string name="dialog_title_counter">Teller</string>
<string name="dialog_title_used_tokens">Gebruikte tokens</string>
<string name="dialog_title_used_tokens">Tokens usage</string>
<string name="dialog_title_keystore_error">Sleutelkast fout</string>
<string name="dialog_title_qr_code">QR Code</string>
<string name="dialog_title_android21_depreaction">Deprecation notice</string>
<string name="dialog_title_enter_password">Wachtwoord invoeren</string>
<string name="dialog_label_enter_password">Wachtwoord invoeren</string>
<string name="dialog_label_confirm_password">Wachtwoord bevestigen</string>
<string name="dialog_msg_auth">Voer de referenties van uw apparaat in om te beginnen met andOTP.</string>
<string name="dialog_msg_confirm_delete">Weet je zeker dat je account \"%1$s\" wil verwijderen?</string>
<string name="dialog_msg_used_tokens">In order for andOTP to recognize which tokens get used you
have to have either \"tap to reveal\" enabled or use the copy button. This applies to the
sorting of the tokens by \"most used\" as well as by \"last used\".\n\nThis message will not
be shown again.</string>
<string name="dialog_msg_used_tokens">andOTP will track when you use your tokens (using the \"Tap
to reveal\" feature or copying to clipboard) to be able to sort them by \"Most used\" or
\"Last used\".\n\nThis message will not be shown again.</string>
<string name="dialog_msg_keystore_error">Fout bij het laden van de coderingssleuten van de sleutelopslag. <b>Alle vermeldingen die worden toegevoegd zullen verloren gaan.</b>\n\nOm nog steeds andOTP te kunnen gebruiken kan je naar de <b>Instellingen</b> gaan en de <b>Database codering</b> omschakelen naar <b>Wachtwoord / PIN</b>.</string>
<string name="dialog_msg_android21_deprecation">This will be the last version of andOTP to
support Android versions below 5.1 (Lollipop). The increased effort required to maintain a
separate storage implementation just for those older versions as well as their low market
shares make a continued support infeasible for our small team.\n\nThis message will not be
shown again.</string>
<!-- Shortcuts -->
<string name="shortcut_name_scan_qr">QR-code scannen</string>
<string name="shortcut_name_import_qr">Importeer QR code</string>

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