diff --git a/CHANGELOG.md b/CHANGELOG.md
index 67e917a4..a8314d1f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
# Changelog
+#### v0.4.0
+
+ * New feature: **Password-based encryption** (a big thanks to all the testers)
+ * New feature: Enforce a minimum password / PIN length (Issue #107)
+ * New feature: Add an additional unlock button to the authentication (Issue #87)
+ * New feature: The thumbnail toggle is now in the size selector (Issue #98, PR #102)
+ * New feature: Split the tokens into blocks (Issue #83, PR #83 by DanielWeigl)
+ * New feature: Account name is now shown in the removal confirmation (Issue #84)
+ * New feature: Advanced options are now hidden in the manual entry dialog (Issue #85)
+ * New special feature: Clear the KeyStore (use with caution)
+ * Bug fix: Change the format used to store and set the language (Issue #112)
+ * Bug fix: Add some extra padding the the RecyclerView (Issue #95)
+ * Bug fix: Remove gradients from vector thumbnails (Issue #103, PR #97)
+ * Thumbnails: a lot of new thumbnails (check the wiki for details)
+ * Translation: Catalan (ca-rES) thanks to isard
+
#### v0.3.1
* Move: the Github repository was moved from flocke/andOTP to andOTP/andOTP for better organization of collaborators
diff --git a/README.md b/README.md
index db3b1e29..be06eb1a 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# andOTP - Android OTP Authenticator
[![Build Status](https://travis-ci.org/andOTP/andOTP.svg?branch=master)](https://travis-ci.org/andOTP/andOTP)
-[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.3.1/andOTP_v0.3.1.apk)
+[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.4.0.1/andOTP_v0.4.0.1.apk)
![andOTP](./assets/logo.png)
@@ -24,7 +24,9 @@ Don't worry, I will still continue to develop andOTP it will just slow down from
* Requires minimal permissions
- Camera access for QR code scanning
- Storage access for import and export of the database
- * Encrypted storage
+ * Encrypted storage with two backends:
+ - Android KeyStore
+ - Password / PIN
* Multiple backup options:
- Plain-text
- Password-protected
@@ -82,12 +84,17 @@ So make sure you have a **current backup** before switching!
- [XDA thread](https://forum.xda-developers.com/android/apps-games/app-andotp-android-otp-authenticator-t3636993) (please keep off-topic to a minimum)
- Telegram group [@andOTP](https://t.me/andOTP) (also check out the read-only announcement channel for important updates: [@andOTP_Broadcast](https://t.me/andOTP_Broadcast))
+#### Developers:
+
+ * [Jakob Nixdorf](https://github.com/flocke)
+ * [Richy HBM](https://github.com/RichyHBM)
+
#### Contributors:
* [Carlos Melero](https://github.com/carmebar) ([view contributions](https://github.com/andOTP/andOTP/commits/master?author=carmebar))
* [SuperVirus](https://github.com/SuperVirus) ([view contributions](https://github.com/andOTP/andOTP/commits/master?author=SuperVirus))
- * [RichyHBM](https://github.com/RichyHBM) ([view contributions](https://github.com/andOTP/andOTP/commits/master?author=RichyHBM))
-
+ * [DanielWeigl](https://github.com/DanielWeigl) ([view contributions](https://github.com/andOTP/andOTP/commits/master?author=DanielWeigl))
+ * [Matthias Bertram](https://github.com/mbertram) ([view contributions](https://github.com/andOTP/andOTP/commits?author=mbertram))
#### Translators:
@@ -95,13 +102,14 @@ So make sure you have a **current backup** before switching!
------ | ----------------- | -----------
🇵🇱 | Polish (pl-rPL) | [Daniel Pustuła](https://github.com/9Cube-dpustula)
:es: | Spanish (es-rES) | [Carlos Melero](https://crowdin.com/profile/carmebar)
-:de: | German (de-rDE) | [SuperVirus](https://crowdin.com/profile/SuperVirus)
-:fr: | French (fr-rFR) | [Johan Fleury](https://github.com/johanfleury), [David Sferruzza](https://crowdin.com/profile/dsferruzza), [primokorn](https://crowdin.com/profile/primokorn)
-🇳🇱 | Dutch (nl-rNL) | Toon, [rain2reign](https://crowdin.com/profile/rain2reign)
- | Galician (gl-rES) | [Triskel](https://crowdin.com/profile/triskel)
+:de: | German (de-rDE) | [SuperVirus](https://crowdin.com/profile/SuperVirus), [Jan](https://crowdin.com/profile/Dagefoerde)
+:fr: | French (fr-rFR) | [Johan Fleury](https://github.com/johanfleury), [David Sferruzza](https://crowdin.com/profile/dsferruzza), [primokorn](https://crowdin.com/profile/primokorn), [Poussinou](https://crowdin.com/profile/Poussinou)
+🇳🇱 | Dutch (nl-rNL) | Toon, [rain2reign](https://crowdin.com/profile/rain2reign), [thinkwell](https://crowdin.com/profile/thinkwell), [cpu20](https://crowdin.com/profile/cpu20)
+ | Galician (gl-rES) | [Triskel](https://crowdin.com/profile/triskel), [Xosé M.](https://crowdin.com/profile/XoseM)
:ru: | Russian (ru-rRU) | [Victor Nidens](https://crowdin.com/profile/vnidens), [Ilia Drogaitsev](https://crowdin.com/profile/waytoroot), [Dmitry](https://crowdin.com/profile/SaintDI)
🇨🇿 | Czech (cs-rCZ) | [Picard0147](https://crowdin.com/profile/Picard0147)
:cn: | Chinese Simplified (zh-rCN) | [Cp0204](https://crowdin.com/profile/Cp0204)
+ | Catalan (ca-rES) | [isard](https://crowdin.com/profile/isard)
## Screenshots:
diff --git a/app/build.gradle b/app/build.gradle
index 55a71849..45001d77 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId "org.shadowice.flocke.andotp"
minSdkVersion 19
targetSdkVersion 27
- versionCode 12
- versionName "0.3.1"
+ versionCode 14
+ versionName "0.4.0.1"
}
buildTypes {
release {
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/AboutActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/AboutActivity.java
index fa5e198b..2d34136f 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/AboutActivity.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/AboutActivity.java
@@ -23,6 +23,9 @@
package org.shadowice.flocke.andotp.Activities;
import android.app.AlertDialog;
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
@@ -177,7 +180,11 @@ public class AboutActivity extends BaseActivity {
author1Paypal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- openURI(AUTHOR1_EXTRA);
+ try {
+ openURI(AUTHOR1_EXTRA);
+ } catch(Exception ignored) {
+ copyToClipboard(AUTHOR1_EXTRA);
+ }
}
});
@@ -193,7 +200,11 @@ public class AboutActivity extends BaseActivity {
author2Paypal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- openURI(AUTHOR2_EXTRA);
+ try {
+ openURI(AUTHOR2_EXTRA);
+ } catch(Exception ignored) {
+ copyToClipboard(AUTHOR2_EXTRA);
+ }
}
});
@@ -208,7 +219,11 @@ public class AboutActivity extends BaseActivity {
authorOriginalApp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- openURI(AUTHOR_ORIGINAL_EXTRA);
+ try {
+ openURI(AUTHOR_ORIGINAL_EXTRA);
+ } catch(Exception ignored) {
+ copyToClipboard(AUTHOR_ORIGINAL_EXTRA);
+ }
}
});
@@ -280,6 +295,14 @@ public class AboutActivity extends BaseActivity {
openURI.setData(Uri.parse(uri));
startActivity(openURI);
}
+
+ public void copyToClipboard(String uri) {
+ ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
+ ClipData clip = ClipData.newPlainText("andOTP", uri);
+ clipboard.setPrimaryClip(clip);
+ Toast.makeText(this, getString(R.string.about_toast_copied_to_clipboard), Toast.LENGTH_SHORT).show();
+ }
+
public void showLicenses() {
new LicensesDialog.Builder(this)
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/AuthenticateActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/AuthenticateActivity.java
index 9343b7cc..577d11bc 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/AuthenticateActivity.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/AuthenticateActivity.java
@@ -158,7 +158,7 @@ public class AuthenticateActivity extends ThemedActivity
String hashedPassword = new String(Hex.encodeHex(DigestUtils.sha256(plainPassword)));
if (hashedPassword.equals(password)) {
- byte[] key = settings.setAuthCredentials(password);
+ byte[] key = settings.setAuthCredentials(plainPassword);
if (key == null)
Toast.makeText(this, R.string.settings_toast_auth_upgrade_failed, Toast.LENGTH_LONG).show();
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java
index ee9f04a6..81864aae 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java
@@ -133,7 +133,7 @@ public class BackupActivity extends BaseActivity {
backupCrypt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- saveFileWithPermissions(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BACKUP_FILENAME_CRYPT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT);
+ saveFileWithPermissions(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BackupType.ENCRYPTED, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT);
}
});
@@ -168,7 +168,7 @@ public class BackupActivity extends BaseActivity {
backupPGP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- saveFileWithPermissions(Constants.BACKUP_MIMETYPE_PGP, Constants.BACKUP_FILENAME_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PGP);
+ saveFileWithPermissions(Constants.BACKUP_MIMETYPE_PGP, Constants.BackupType.OPEN_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PGP);
}
});
@@ -224,7 +224,7 @@ public class BackupActivity extends BaseActivity {
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- showSaveFileSelector(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BACKUP_FILENAME_PLAIN, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN);
+ 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();
}
@@ -236,7 +236,7 @@ public class BackupActivity extends BaseActivity {
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- showSaveFileSelector(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BACKUP_FILENAME_CRYPT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT);
+ 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();
}
@@ -248,7 +248,7 @@ public class BackupActivity extends BaseActivity {
}
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PGP) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- showSaveFileSelector(Constants.BACKUP_MIMETYPE_PGP, Constants.BACKUP_FILENAME_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP);
+ 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();
}
@@ -294,7 +294,7 @@ public class BackupActivity extends BaseActivity {
/* Generic functions for all backup/restore options */
private void showOpenFileSelector(int intentId) {
- if (settings.getBackupAsk()) {
+ if (settings.getBackupAsk() || settings.getIsAppendingDateTimeToBackups()) {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
@@ -309,21 +309,21 @@ public class BackupActivity extends BaseActivity {
}
}
- private void showSaveFileSelector(String mimeType, String fileName, int intentId) {
+ private void showSaveFileSelector(String mimeType, Constants.BackupType backupType, int intentId) {
if (settings.getBackupAsk()) {
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(mimeType);
- intent.putExtra(Intent.EXTRA_TITLE, fileName);
+ intent.putExtra(Intent.EXTRA_TITLE, backupFilename(backupType));
startActivityForResult(intent, intentId);
} else {
if (Tools.mkdir(settings.getBackupDir())) {
if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN)
- doBackupPlain(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_PLAIN));
+ doBackupPlain(Tools.buildUri(settings.getBackupDir(), backupFilename(Constants.BackupType.PLAIN_TEXT)));
else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT)
- doBackupCrypt(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_CRYPT));
+ doBackupCrypt(Tools.buildUri(settings.getBackupDir(), backupFilename(Constants.BackupType.ENCRYPTED)));
else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP)
- backupEncryptedWithPGP(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_PGP), null);
+ backupEncryptedWithPGP(Tools.buildUri(settings.getBackupDir(), backupFilename(Constants.BackupType.OPEN_PGP)), null);
} else {
Toast.makeText(this, R.string.backup_toast_mkdir_failed, Toast.LENGTH_LONG).show();
}
@@ -338,9 +338,9 @@ public class BackupActivity extends BaseActivity {
}
}
- private void saveFileWithPermissions(String mimeType, String fileName, int intentId, int requestId) {
+ 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, fileName, intentId);
+ showSaveFileSelector(mimeType, backupType, intentId);
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestId);
}
@@ -404,7 +404,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.BACKUP_FILENAME_PLAIN, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN);
+ saveFileWithPermissions(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BackupType.PLAIN_TEXT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
@@ -586,4 +586,29 @@ public class BackupActivity extends BaseActivity {
Toast.makeText(this, String.format(getString(R.string.backup_toast_openpgp_error), error.getMessage()), Toast.LENGTH_LONG).show();
}
}
+
+ private String backupFilename(Constants.BackupType type) {
+ switch (type) {
+ case PLAIN_TEXT:
+ if (settings.getIsAppendingDateTimeToBackups()) {
+ return String.format(Constants.BACKUP_FILENAME_PLAIN_FORMAT, Tools.getDateTimeString());
+ } else {
+ return Constants.BACKUP_FILENAME_PLAIN;
+ }
+ case ENCRYPTED:
+ if (settings.getIsAppendingDateTimeToBackups()) {
+ return String.format(Constants.BACKUP_FILENAME_CRYPT_FORMAT, Tools.getDateTimeString());
+ } else {
+ return Constants.BACKUP_FILENAME_CRYPT;
+ }
+ case OPEN_PGP:
+ if (settings.getIsAppendingDateTimeToBackups()) {
+ return String.format(Constants.BACKUP_FILENAME_PGP_FORMAT, Tools.getDateTimeString());
+ } else {
+ return Constants.BACKUP_FILENAME_PGP;
+ }
+ }
+
+ return Constants.BACKUP_FILENAME_PLAIN;
+ }
}
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java
index ca8ce8a5..09d49a3a 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java
@@ -345,7 +345,7 @@ public class MainActivity extends BaseActivity
adapter.notifyDataSetChanged();
} else if (key.equals(getString(R.string.settings_key_tap_to_reveal)) ||
key.equals(getString(R.string.settings_key_theme)) ||
- key.equals(getString(R.string.settings_key_lang)) ||
+ key.equals(getString(R.string.settings_key_locale)) ||
key.equals(getString(R.string.settings_key_enable_screenshot))) {
recreate();
}
@@ -398,7 +398,11 @@ public class MainActivity extends BaseActivity
} else {
requireAuthentication = false;
- byte[] authKey = intent.getByteArrayExtra(Constants.EXTRA_AUTH_PASSWORD_KEY);
+ byte[] authKey = null;
+
+ if (intent != null)
+ authKey = intent.getByteArrayExtra(Constants.EXTRA_AUTH_PASSWORD_KEY);
+
updateEncryption(authKey);
}
}
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java
index fa6159d1..b793ffea 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java
@@ -115,7 +115,7 @@ public class SettingsActivity extends BaseActivity
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (key.equals(getString(R.string.settings_key_theme)) ||
- key.equals(getString(R.string.settings_key_lang)) ||
+ key.equals(getString(R.string.settings_key_locale)) ||
key.equals(getString(R.string.settings_key_special_features))) {
recreate();
}
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/ThemedActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/ThemedActivity.java
index 1824dbad..f02bddb7 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/ThemedActivity.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/ThemedActivity.java
@@ -64,7 +64,7 @@ public abstract class ThemedActivity extends AppCompatActivity {
}
public void setLocale() {
- Locale locale = settings.getLang();
+ Locale locale = settings.getLocale();
Locale.setDefault(locale);
Configuration config = new Configuration();
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java
index d8ac8716..2e459f1b 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java
@@ -40,6 +40,10 @@ public class Constants {
UNSORTED, LABEL, LAST_USED
}
+ public enum BackupType {
+ PLAIN_TEXT, ENCRYPTED, OPEN_PGP
+ }
+
// Intents (Format: A0x with A = parent Activity, x = number of the intent)
public final static int INTENT_MAIN_AUTHENTICATE = 100;
public final static int INTENT_MAIN_SETTINGS = 101;
@@ -78,13 +82,13 @@ public class Constants {
final static String ALGORITHM_SYMMETRIC = "AES/GCM/NoPadding";
final static String ALGORITHM_ASYMMETRIC = "RSA/ECB/PKCS1Padding";
- final static int ENCRYPTION_KEY_LENGTH = 16;
+ final static int ENCRYPTION_KEY_LENGTH = 16; // 128-bit encryption key (KeyStore-mode)
final static int ENCRYPTION_IV_LENGTH = 12;
final static int PBKDF2_MIN_ITERATIONS = 1000;
final static int PBKDF2_MAX_ITERATIONS = 5000;
final static int PBKDF2_DEFAULT_ITERATIONS = 1000;
- final static int PBKDF2_LENGTH = 512;
+ final static int PBKDF2_LENGTH = 256; // 128-bit encryption key (Password-mode)
final static int PBKDF2_SALT_LENGTH = 16;
// Authentication
@@ -107,6 +111,10 @@ public class Constants {
public final static String BACKUP_FILENAME_CRYPT = "otp_accounts.json.aes";
public final static String BACKUP_FILENAME_PGP = "otp_accounts.json.gpg";
+ public final static String BACKUP_FILENAME_PLAIN_FORMAT = "otp_accounts_%s.json";
+ public final static String BACKUP_FILENAME_CRYPT_FORMAT = "otp_accounts_%s.json.aes";
+ public final static String BACKUP_FILENAME_PGP_FORMAT = "otp_accounts_%s.json.gpg";
+
public final static String BACKUP_MIMETYPE_PLAIN = "application/json";
public final static String BACKUP_MIMETYPE_CRYPT = "binary/aes";
public final static String BACKUP_MIMETYPE_PGP = "application/pgp-encrypted";
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java
index 4ab70968..693f32d4 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java
@@ -29,6 +29,7 @@ public class EntryThumbnail {
Bittrex(R.drawable.thumb_bittrex),
Bitwarden(R.mipmap.thumb_bitwarden, AssetType.Bitmap),
BlockchainInfo(R.drawable.thumb_blockchain_info),
+ CloudDownload(R.drawable.thumb_cloud_download),
Cloudflare(R.drawable.thumb_cloudflare),
Coinbase(R.drawable.thumb_coinbase),
CozyCloud(R.drawable.thumb_cozycloud),
@@ -37,6 +38,9 @@ public class EntryThumbnail {
Dropbox(R.drawable.thumb_dropbox),
Email(R.drawable.thumb_email),
Facebook(R.drawable.thumb_facebook),
+ Fingerprint(R.drawable.thumb_fingerprint),
+ Flight(R.drawable.thumb_flight_takeoff),
+ Gamepad(R.drawable.thumb_gamepad),
Git(R.drawable.thumb_git),
Gitea(R.drawable.thumb_gitea),
Github(R.drawable.thumb_github),
@@ -44,6 +48,8 @@ public class EntryThumbnail {
GoDaddy(R.drawable.thumb_godaddy),
Google(R.drawable.thumb_google),
HackerOne(R.drawable.thumb_hackerone),
+ Heroku(R.drawable.thumb_heroku),
+ HumbleBundle(R.drawable.thumb_humblebundle),
HurricaneElectric(R.drawable.thumb_hurricane_electric),
Iconomi(R.drawable.thumb_iconomi),
IFTTT(R.drawable.thumb_ifttt),
@@ -56,25 +62,32 @@ public class EntryThumbnail {
Mastodon(R.drawable.thumb_mastodon),
Microsoft(R.drawable.thumb_microsoft),
Mixer(R.drawable.thumb_mixer),
+ NAS(R.drawable.thumb_nas),
NextCloud(R.drawable.thumb_nextcloud),
Nintendo(R.drawable.thumb_nintendo),
+ NPM(R.drawable.thumb_npm),
Origin(R.drawable.thumb_origin),
+ OVH(R.drawable.thumb_ovh),
Patreon(R.drawable.thumb_patreon),
PayPal(R.drawable.thumb_paypal),
ProtonMail(R.drawable.thumb_protonmail),
+ Reddit(R.drawable.thumb_reddit),
RSS(R.drawable.thumb_rss),
Seafile(R.mipmap.thumb_seafile, AssetType.Bitmap),
+ School(R.drawable.thumb_school),
Skrill(R.drawable.thumb_skrill),
Slack(R.drawable.thumb_slack),
Steam(R.drawable.thumb_steam),
Stripe(R.drawable.thumb_stripe),
Synology(R.drawable.thumb_synology),
TeamViewer(R.drawable.thumb_teamviewer),
+ Terminal(R.drawable.thumb_terminal),
Tumblr(R.drawable.thumb_tumblr),
Twitch(R.drawable.thumb_twitch),
Twitter(R.drawable.thumb_twitter),
Ubisoft(R.drawable.thumb_ubisoft),
UbuntuOne(R.drawable.thumb_ubuntu_one),
+ Wallet(R.drawable.thumb_wallet),
Wordpress(R.drawable.thumb_wordpress);
private int resource;
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java
index 7fd26cda..c7f69f43 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java
@@ -34,8 +34,10 @@ import java.nio.charset.StandardCharsets;
import java.security.KeyPair;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Locale;
import java.util.Set;
@@ -44,6 +46,9 @@ import static org.shadowice.flocke.andotp.Utilities.Constants.EncryptionType;
import static org.shadowice.flocke.andotp.Utilities.Constants.SortMode;
public class Settings {
+ private static final List oldLangs = Arrays.asList("system", "en", "cs", "de", "es", "fr", "gl", "nl", "pl", "ru", "zh");
+ private static final List newLangs = Arrays.asList("system", "en_US", "cs_CZ", "de_DE", "es_ES", "fr_FR", "gl_ES", "nl_NL", "pl_PL", "ru_RU", "zh_CN");
+
private Context context;
private SharedPreferences settings;
@@ -73,6 +78,15 @@ public class Settings {
remove(R.string.settings_key_auth_pin);
}
+ if (settings.contains(getResString(R.string.settings_key_lang))) {
+ String lang = getString(R.string.settings_key_lang, R.string.settings_default_locale);
+
+ if (oldLangs.contains(lang))
+ setLocale(newLangs.get(oldLangs.indexOf(lang)));
+
+ remove(R.string.settings_key_lang);
+ }
+
if (settings.contains(getResString(R.string.settings_key_backup_password))) {
String plainPassword = getBackupPassword();
@@ -284,13 +298,24 @@ public class Settings {
return settings.getStringSet(getResString(R.string.settings_key_panic), Collections.emptySet());
}
- public Locale getLang() {
- String lang = getString(R.string.settings_key_lang, R.string.settings_default_lang);
+ public void setLocale(String locale) {
+ setString(R.string.settings_key_locale, locale);
+ }
- if (lang.equals("system"))
+ public Locale getLocale() {
+ String lang = getString(R.string.settings_key_locale, R.string.settings_default_locale);
+
+ if (lang.equals("system")) {
return Tools.getSystemLocale();
- else
- return new Locale(lang);
+ } else {
+ String[] splitLang = lang.split("_");
+
+ if (splitLang.length > 1) {
+ return new Locale(splitLang[0], splitLang[1]);
+ } else {
+ return new Locale(lang);
+ }
+ }
}
public String getTheme() {
@@ -437,4 +462,8 @@ public class Settings {
public void setLastUsedDialogShown(boolean value) {
setBoolean(R.string.settings_key_last_used_dialog_shown, value);
}
+
+ public boolean getIsAppendingDateTimeToBackups() {
+ return getBoolean(R.string.settings_key_backup_append_date_time, false);
+ }
}
diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Tools.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Tools.java
index 198327fe..ec5a7ba9 100644
--- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Tools.java
+++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Tools.java
@@ -33,6 +33,10 @@ import android.os.Build;
import android.os.Environment;
import java.io.File;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
import java.util.Locale;
public class Tools {
@@ -94,4 +98,10 @@ public class Tools {
}
return ret.toString().trim();
}
+
+ public static String getDateTimeString() {
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.ENGLISH);
+ Date now = Calendar.getInstance().getTime();
+ return df.format(now);
+ }
}
diff --git a/app/src/main/res/drawable/thumb_cloud_download.xml b/app/src/main/res/drawable/thumb_cloud_download.xml
new file mode 100644
index 00000000..261c3121
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_cloud_download.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/thumb_email.xml b/app/src/main/res/drawable/thumb_email.xml
index f7b5ee76..ce97ab85 100644
--- a/app/src/main/res/drawable/thumb_email.xml
+++ b/app/src/main/res/drawable/thumb_email.xml
@@ -1,11 +1,9 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ android:fillColor="#FF000000"
+ android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
diff --git a/app/src/main/res/drawable/thumb_fingerprint.xml b/app/src/main/res/drawable/thumb_fingerprint.xml
new file mode 100644
index 00000000..f650f744
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_fingerprint.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/thumb_flight_takeoff.xml b/app/src/main/res/drawable/thumb_flight_takeoff.xml
new file mode 100644
index 00000000..bbc40647
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_flight_takeoff.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/thumb_gamepad.xml b/app/src/main/res/drawable/thumb_gamepad.xml
new file mode 100644
index 00000000..52658f65
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_gamepad.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/thumb_heroku.xml b/app/src/main/res/drawable/thumb_heroku.xml
new file mode 100644
index 00000000..8a7bcc9c
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_heroku.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/thumb_humblebundle.xml b/app/src/main/res/drawable/thumb_humblebundle.xml
new file mode 100644
index 00000000..4a8ad630
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_humblebundle.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/thumb_nas.xml b/app/src/main/res/drawable/thumb_nas.xml
new file mode 100644
index 00000000..dfdad016
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_nas.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/thumb_npm.xml b/app/src/main/res/drawable/thumb_npm.xml
new file mode 100644
index 00000000..f0632a5d
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_npm.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/thumb_ovh.xml b/app/src/main/res/drawable/thumb_ovh.xml
new file mode 100644
index 00000000..5ed1ed8e
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_ovh.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/thumb_reddit.xml b/app/src/main/res/drawable/thumb_reddit.xml
new file mode 100644
index 00000000..61ed0661
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_reddit.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/thumb_school.xml b/app/src/main/res/drawable/thumb_school.xml
new file mode 100644
index 00000000..30d83f84
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_school.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/thumb_terminal.xml b/app/src/main/res/drawable/thumb_terminal.xml
new file mode 100644
index 00000000..89fd74fb
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_terminal.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/thumb_wallet.xml b/app/src/main/res/drawable/thumb_wallet.xml
new file mode 100644
index 00000000..326c11a3
--- /dev/null
+++ b/app/src/main/res/drawable/thumb_wallet.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/content_about.xml b/app/src/main/res/layout/content_about.xml
index 33c8c63e..68b91334 100644
--- a/app/src/main/res/layout/content_about.xml
+++ b/app/src/main/res/layout/content_about.xml
@@ -22,23 +22,21 @@
+ android:padding="@dimen/activity_margin_small"
+ android:gravity="center_vertical"
+ android:orientation="horizontal" >
+
+
-
-
+ android:layout_height="wrap_content"
+ android:background="?android:attr/selectableItemBackground">
-
+
-
+
@@ -293,7 +288,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:text="@string/about_label_main_author"/>
+ android:text="@string/about_label_main_developer"/>
+
+
+ Quant a
+ Autenticació de dos factors de codi obert per a Android
+
+ Registre de canvis
+ Llicència
+ Llicencies de codi obert
+ Llicència MIT
+ Codi font
+ Versió
+
+ Autors
+ Programador principal
+ Autor
+ Autor de l\'aplicació original
+ Aplicació original
+ Lloc web
+ Feu una donació
+ Col·laboradors
+ Traductors
+
+ Doneu suport al desenvolupament
+ Informe d\'errors
+ Tradueix
+ Aviseu d\'un error o demaneu funcions noves
+ Com podeu ajudar a traduir andOTP a la vostra llengua
+ Característiques especials
+ Esteu segur que voleu habilitar les característiques
+ especials? La major part són algorismes OTP no estàndard que es van implementar
+ ad-hoc. No tenen suport oficial i pateixen de certes
+ limitacions, per favor, llegiu (i assegureu-vos d\'entendre) la pàgina \"característiques especials\" en la wiki de Github
+ per a saber-ne més abans de fer-les servir.
+ Característiques especials habilitades
+ Característiques especials ja habilitades
+ Donation link copied to clipboard
+
diff --git a/app/src/main/res/values-ca-rES/strings_auth.xml b/app/src/main/res/values-ca-rES/strings_auth.xml
new file mode 100644
index 00000000..d4e66a06
--- /dev/null
+++ b/app/src/main/res/values-ca-rES/strings_auth.xml
@@ -0,0 +1,19 @@
+
+
+
+ Autentica
+
+ Contrasenya
+ PIN
+
+ Per favor, autentiqueu-vos per a iniciar andOTP!
+ Per favor, confirmeu la vostra autenticació per a generar
+ la clau de xifratge nova!
+
+ Desbloqueja
+
+ Per favor, establiu una contrasenya en la configuració!
+ Per favor, establiu un PIN en la configuració!
+ Contrasenya incorrecta; per favor, torneu-ho a intentar!
+ PIN incorrecte; per favor, torneu-ho a intentar!
+
diff --git a/app/src/main/res/values-ca-rES/strings_backup.xml b/app/src/main/res/values-ca-rES/strings_backup.xml
new file mode 100644
index 00000000..214d2b8e
--- /dev/null
+++ b/app/src/main/res/values-ca-rES/strings_backup.xml
@@ -0,0 +1,51 @@
+
+
+
+ Còpies de seguretat
+ Còpies de seguretat en text net
+ Còpies de seguretat xifrades
+ Còpies de seguretat xifrades amb OpenPGP
+ Còpia de seguretat (text net)
+ Còpia de seguretat (xifrada)
+ Còpia de seguretat (OpenPGP)
+ Restaura (text net)
+ Restaura (xifrada)
+ Restaura (OpenPGP)
+ Substitueix els comptes existents
+ Fes una còpia de seguretat de tots els comptes en un fitxer de text net JSON
+ Fes una còpia de seguretat de tots els comptes en un fitxer JSON protegit per contrasenya
+ Fes una còpia de seguretat tots els comptes en un fitxer JSON encriptat amb OpenPGP
+ Restaura els comptes d\'un fitxer de text net JSON
+ Restaura els comptes d\'un fitxer JSON protegit amb contrasenya
+ Restaura els comptes d\'un fitxer JSON xifrat amb OpenPGP
+ Cal establir una contrasenya en la Configuració per a usar
+ còpies xifrades.
+
+ Cal instal·lar un programa OpenPGP i habilitar-lo
+ en la Configuració per a fer servir aquesta característica.
+
+ Cal triar una clau OpenPGP en la Configuració
+ per a poder crear còpies xifrades.
+
+ Si està activat les entrades antigues són substituïdes quan s\'importa una
+ còpia de seguretat i només hi queda la còpia. Si no, les entrades velles i les còpies de seguretat
+ es fusionen.
+
+ Avís de seguretat
+ Realment voleu exportar la base de dades com a
+ fitxer de text net JSON? Aquest fitxer contindrà les vostres claus secretes; per favor, manteniu-lo ben protegit!
+
+
+ No ha pogut crear el directori de còpia de seguretat
+ Exportació a l\'emmagatzematge extern correcta
+ L\'exportació a emmagatzematge extern ha fallat
+ Importació des de l\'emmagatzematge extern correcta
+ No s\'han pogut desar les entrades restaurades
+ El desxifratge de la còpia ha fallat
+ No s\'han trobat cap entrada en les dades importades
+ L\'emmagatzematge extern no és accessible actualment
+ Permisos d\'emmagatzematge no concedits
+ Error OpenPGP: %s
+ No s\'ha detectat cap signatura verificada
+ No hi ha cap contrasenya establerta, comproveu la configuració
+
diff --git a/app/src/main/res/values-ca-rES/strings_main.xml b/app/src/main/res/values-ca-rES/strings_main.xml
new file mode 100644
index 00000000..25fb10a8
--- /dev/null
+++ b/app/src/main/res/values-ca-rES/strings_main.xml
@@ -0,0 +1,84 @@
+
+
+
+
+ Cancel·la
+ Introduïu-ne els detalls
+ Escaneja un codi QR
+ Desa
+ Etiqueta nova
+ Configuració
+ Totes les etiquetes
+ Sense etiquetes
+
+ %d s
+
+ Etiqueta
+ Secret
+
+ Ocult
+ Tipus
+ Secret
+ Període
+ Dígits
+ Etiqueta
+ Algorisme
+ Etiquetes
+ Opcions avançades
+
+ Mostra les etiquetes
+ Amaga les etiquetes
+
+ Quant a
+ Còpia de seguretat
+ Cerca
+ Configuració
+ Ordena
+ Sense ordenar
+ Etiqueta
+ Últimes utilitzades
+ Edita l\'etiqueta
+ Canvia la imatge
+ Edita etiquetes
+ Suprimeix
+
+ Error d\'autenticació. Torneu-ho a intentar!
+ L\'autenticació ha fallat, andOTP es tancarà!
+ Copiat al porta-retalls
+ Aquest element ja existeix
+ Codi QR no vàlid
+ No s\'ha carregat la clau de xifratge
+
+ Autentica
+ Introduïu-ne els detalls
+ Suprimeix
+ Canvia el nom
+ Últimes utilitzades
+ Error al magatzem de claus
+ Xifratge de la base de dades
+ Per favor, introduïu les vostres credencials per a iniciar andOTP.
+ Segur que voleu suprimir el compte \"%1$s\"?
+ 1. Android KeyStore
+ 2. Contrasenya / PIN
+ Per a garantir la seguretat dels vostres comptes només
+ es desen en fitxers xifrats amb un dels mètodes següents:
+ KeyStore és un component del sistema d\'Android per a
+ emmagatzemar les claus criptogràfiques de forma segura. L\'avantatge és que les claus
+ són desades separades dels fitxers de dades i poden ser suportades per criptografia del maquinari (si
+ el maquinari ho permet). Tanmateix, com que les claus no s\'emmagatzemen amb les dades de l\'aplicació
+ no es pot usar amb programes de còpia de seguretat externs (com ara Titanium). Si trieu aquest mètode
+ haureu de confiar en les funcions de còpia de seguretat d\'andOTP.
+ Aquest mètode xifrarà les vostres dades amb una clau
+ generada a partir d\'una contrasenya o PIN. L\'avantatge principal és que funciona amb
+ programes de còpia de seguretat externs (com ara Titanium). Tanmateix haureu d\'escriure les credencials
+ cada vegada que inicieu andOTP.
+ Per defecte s\'usarà Android KeyStore, tanmateix
+ sabem que provoca problemes en certes ROM personalitzades (i en alguna de les prefabricades). Podeu
+ canviar el xifratge en la configuració fent clic en el botó inferior.
+ Per tal que andOTP reconega quin testimoni va ser l\'últim
+ heu d\'habilitar \"toqueu per a mostrar\" o feu servir el botó de copia.\n\nAquest missatge no tornarà
+ a aparéixer.
+ No s\'ha pogut carregar la clau de xifratge del KeyStore.
+ Algunes entrades que hi afegiu es perdran.\n\nPer a continuar usant andOTP podeu
+ anar a configuració i canviar xifratge de la base de dades a contrasenyes / PIN.
+
diff --git a/app/src/main/res/values-ca-rES/strings_settings.xml b/app/src/main/res/values-ca-rES/strings_settings.xml
new file mode 100644
index 00000000..bfdeadf8
--- /dev/null
+++ b/app/src/main/res/values-ca-rES/strings_settings.xml
@@ -0,0 +1,128 @@
+
+
+
+ Configuració
+
+ Seguretat
+ Interfície d\'usuari
+ Còpia de seguretat
+
+ Toqueu per a mostrar
+ Temps d\'espera per a \"toqueu per a mostrar\"
+ Autenticació
+ Contrasenya
+ PIN
+ Xifratge de la base de dades
+ Botó del pànic
+ Idioma
+ Tema
+ Mida de la lletra de l\'etiqueta
+ Permet el desplaçament a les etiquetes
+ Mida de la miniatura
+ Separa el testimoni amb espais
+ Demana el nom de fitxer
+ Directori de còpia de seguretat
+ Contrasenya de la còpia de seguretat
+ Selecciona el programa OpenPGP
+ Tria la clau OpenPGP
+ Signa les còpies de seguretat xifrades
+ Verifica les còpies de seguretat xifrades
+ Habilita les característiques especials
+ Permet screenshots
+ Neteja el magatzem de claus
+
+ Amaga els testimonis OTP per defecte, caldrà
+ mostrar-los manualment
+ Indiqueu durant quant de temps (en segons)
+ es mostraran les entrades
+ Decidiu què fer quan es prem el botó del pànic
+ Les etiquetes llargues es desplacen en comptes de truncar-les
+ Demana el nom del fitxer cada vegada que es crea o restaura una còpia de seguretat
+ Directori per a les còpies de seguretat (el nom dels fitxers
+ depén del tipus de còpia)
+ Contrasenya que s\'usarà per a xifrar les
+ còpies de seguretat
+ Cada còpia xifrada se signa a més amb la vostra clau
+ (cal contrasenya)
+ Només s\'importaran còipes xifrades si s\'han
+ signat amb una clau vàlida
+ Desmarqueu per a deshabilitar les característiques especials
+ Permet fer captures de la pantalla principal
+ (desactivat per defecte per motius de seguretat)
+ Esborra la clau d\'encriptació del magatzem de claus
+
+ Aquesta característica només funciona amb
+ Android 5.0 (Lollipop) o superior
+ Aquesta característica requereix un bloqueig de pantalla
+ segur (Configuració -> Seguretat -> Bloqueig de pantalla)
+ Les contrasenyes buides no són permeses,
+ trieu autenticació nul·la per a desactivar-la!
+ S\'està mirant de canviar el xifratge de la base de dades;
+ per favor, espereu!
+ S\'ha canviat el xifratge de la base de
+ dades amb èxit!
+ No ha estat possible canviar el xifratge de la
+ base de dades: romandrà en l\'estat original!
+ No ha estat possible crear la còpia
+ interna, s\'ha interromput!
+ No ha estat possible obtenir la clau de xifratge, s\'ha interromput!
+ Ha fallat l\'autenticació!
+ Ha fallat l\'actualització automàtica de la contrasenya / PIN
+ per al nou xifratge; per favor, reinicialitzeu-la manualment en la configuració!
+ Error
+ Voleu neteja el magatzem de claus?
+ Només podeu usar una contrasenya o un PIN
+ si el xifratge de la base de dades s\'ha establert a \"contrasenya / PIN\"!
+ Primer cal definir l\'autenticació a \"contrasenya\" o \"PIN\"!
+ Cal establir una contrasenya o PIN abans de canviar l\'encriptació!
+ En alguns casos, netejar el magatzem de claus
+ pot ajudar a resoldre problemes. Feu-ho només si sabeu què feu!\\n\nAtés que el xifratge de la base de dades està definit a contrasenya / PIN no hauríeu de perdre-hi
+ dades (fer una cópia de seguretat sempre va bé, però).\n\nSegur que voleu netejar
+ el magatzem de claus (KeyStore)?
+ En alguns casos, netejar el magatzem de claus
+ pot ajudar a resoldre problemes. Feu-ho només si sabeu què feu!\\n\nAlerta:
+ Atés que el xifratge de la base de dades està definit a Android KeyStore perdreu tots els
+ comptes. Comproveu que n\'heu fet una còpia!\n\nSegur que voleu netejar el magatzem de claus
+ (KeyStore)?
+
+
+ Cap
+ Contrasenya
+ PIN
+ Credencials del dispositiu
+
+
+ Android KeyStore
+ Contrasenya / PIN
+
+
+ Suprimeix tots els comptes
+ Reinicialitza les opcions de l\'aplicació
+
+
+ Tema clar
+ Tema fosc
+ Tema negre
+
+
+ Ocult
+ Petita
+ Per defecte
+ Mitjana
+ Grossa
+
+
+ No dividir
+ Després de dos caràcters
+ Després de tres caràcters
+
+
+ Valor del sistema per defecte
+
+ Introduïu la contrasenya nova
+ Introduïu el PIN nou
+ Confirmeu la contrasenya
+ Confirmeu el PIN
+ La contrasenya ha de tenir, si més no, %1$d caràcters!
+ El PIN ha de tindre, si més no, %1$d xifres!
+
diff --git a/app/src/main/res/values-cs-rCZ/strings_about.xml b/app/src/main/res/values-cs-rCZ/strings_about.xml
index 6e69b03a..a451ec23 100644
--- a/app/src/main/res/values-cs-rCZ/strings_about.xml
+++ b/app/src/main/res/values-cs-rCZ/strings_about.xml
@@ -2,8 +2,7 @@
O aplikaci
-
-Open source aplikace pro dvou-faktorové ověřování pro Android 4.4 a vyšší.
+ Open source dvoufaktorová autentifikace pro AndroidSeznam změnLicence
@@ -13,9 +12,11 @@ Open source aplikace pro dvou-faktorové ověřování pro Android 4.4 a vyšš
VerzeAutoři
- Hlavní autor
+ Hlavní vývojář
+ VývojářAutor původní aplikacePůvodní aplikace
+ Webová stránkaPřispětK vývoji přispěliPřekladatelé
@@ -31,4 +32,5 @@ Většina z nich jsou nestandardní OTP algoritmy, které byly implementovány n
Tyto funkce nejsou oficiálně podporovány a mohou přicházet s jistými omezeními, prosím přečtěte si (a pochopte) stránku \"Special features\" na Github wiki, ať se o nich dozvíte víc než je začnete používat.Specialní funkce povolenySpeciální funkce byly již povoleny
+ Odkaz pro příspěvek zkopírován do schránky
diff --git a/app/src/main/res/values-cs-rCZ/strings_auth.xml b/app/src/main/res/values-cs-rCZ/strings_auth.xml
index 8ca86fac..432d634c 100644
--- a/app/src/main/res/values-cs-rCZ/strings_auth.xml
+++ b/app/src/main/res/values-cs-rCZ/strings_auth.xml
@@ -6,9 +6,13 @@
HesloPIN
- Prosím zadejte své heslo pro spuštění andOTP.
- Prosím zadejte svůj PIN pro spuštění andOTP.
+ Přihlašte se pro spuštění andOTP!
+ Prosím potvrďte své přihlášení pro vygenerování nového šifrovacího klíče!
+
+ OdemknoutV nastavení si prosím nastavte heslo!V nastavení si prosím nastavte PIN!
+ Nesprávné heslo, zkuste to prosím znovu!
+ Nesprávný PIN, zkuste to prosím znovu!
diff --git a/app/src/main/res/values-cs-rCZ/strings_main.xml b/app/src/main/res/values-cs-rCZ/strings_main.xml
index 9fc0aeff..2ab9a994 100644
--- a/app/src/main/res/values-cs-rCZ/strings_main.xml
+++ b/app/src/main/res/values-cs-rCZ/strings_main.xml
@@ -7,7 +7,7 @@
Načíst QR kódUložitNový štítek
- Byli jste varováni!
+ NastaveníVšechny štítkyBez štítku
@@ -24,6 +24,7 @@
PopisAlgoritmusŠtítky
+ Pokročilé možnostiZobrazit štítkySkrýt štítky
@@ -41,22 +42,31 @@
Upravit štítkySmazat
+ Chyba ověření, zkuste to prosím znovu!Ověření se nezdařilo, zavírám andOTP!Zkopírováno do schránkyTento záznam již existujeNeplatný QR kód
+ Šifrovací klíč nenačtenPřihlášeníRuční zadáníSmazatPřejmenování
- Zabezpečení a zálohyNaposledy použité
+ Chyba úložiště klíčů
+ Šifrování databázeProsím zadejte heslo zařízení ke spuštění andOTP.
- Opravdu chcete odebrat tento účet?
- Pro zajištění bezpečnosti vašich údajů je tato aplikace ukládá šifrované. Část použitého šifrovacího klíče je uložena pomocí systému Android KeyStore. Výhodou tohoto přístupu je uložení dat aplikace odděleně od klíče, toto může být podpořeno HW šifrováním (pokud to Vaše zařízení podporuje).
- Nevýhodou je trochu ztížené zálohování dat aplikace. Užíváte-li aplikace třetích stran (jako Titanium Backup) zazálohujete pouze data aplikace ne však šifrovací klíč, následkem toho budou takové zálohy nepoužitelné.
- Používejte prosím k zálohování Vašich účtů pouze vlastní zálohovací funkce této aplikace! Cokoliv jiného povede ke ztrátě dat.
- Tato zpráva se víckrát nezobrazí.
+ Jste si jistí, že chcete odebrat účet \"%1$s\"?
+ 1. Android KeyStore
+ 2. Heslo / PIN
+ Pro zajištění bezpečnosti Vašich účtů ukládá aplikace data do šifrovaných souborů šifrovaných pomocí jedné z následujících dvou metod:
+ KeyStore je systémová komponenta Androidu sloužící k bezpečnému ukládání kryptografických klíčů. Výhodou tohoto přístupu je, že jsou klíče uloženy odděleně od dat a že může být podpořen hardwarovou kryptografií (pokud ji Hw podporuje).
+Nicméně vzhledem k tomu, že nejsou klíče uloženy spolu s daty aplikace znemožňuje tato metoda použití externích zálohovacích nástrojů (jako je Titanium).
+Pokud zvolíte tuto metodu budete muset spoléhat na vlastní zálohovací funkce aplikace andOTP.
+ Tato metoda zašifruje data pomocí klíče generovaného z PINu nebo hesla. Hlavní výhodou je, že bude fungovat s externími zálohovacími nástroji (např. Titanium). Budete ale muset zadat své heslo/PIN při každém spuštění andOTP.
+ Jako výchozí možnost se používá Android KeyStore, což ale může způsobit problémy s některými upravenými ROM (a s pár oficiálními také). Šifrování můžete změnit v Nastavení klepnutím na tlačítko níže.Aby andOTP poznal, který token byl použitý jako poslední, je potřeba mít zapnuté \"zobraz klepnutím\" nebo používat kopírovací tlačítko. \n\n Tato zpráva se již nezobrazí.
+ Nepodařilo se načíst šifrovací klíč z KeyStore.
+ Veškeré přidané položky budou ztraceny. \n\nPro zajištění použitelnosti andOTP můžete v Nastavení přepnout Šifrování databáze na heslo / PIN.
diff --git a/app/src/main/res/values-cs-rCZ/strings_settings.xml b/app/src/main/res/values-cs-rCZ/strings_settings.xml
index 2e01ee85..9d1d2401 100644
--- a/app/src/main/res/values-cs-rCZ/strings_settings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings_settings.xml
@@ -12,13 +12,14 @@
PřihlášeníHesloPIN
+ Šifrování databázePanikové tlačítkoJazykVzhledVelikost písma popiskuPohybující se popisky
- Zobrazit náhledyVelikost náhledu
+ Rozdělit token mezeramiZadejte název souboruAdresář zálohHeslo pro zálohu
@@ -28,6 +29,7 @@
Ověřit šifrované zálohyPovolit speciální funkcePovolit snímání obrazovky
+ Vymazat úložiště klíčůV základu skryje OTP tokeny, budou zobrazeny manuálněZvolte čas v sekundách, po kterém se zobrazené kódy opět skryjí
@@ -38,11 +40,27 @@
Nastaví heslo používané k šifrování zálohKaždá šifrovaná záloha bude navíc podepsána Vaším klíčem (vyžaduje heslo)Šifrované zálohy jsou importovány pouze, jsou-li podepsány platným klíčem
- Povolí pořizování snímků hlavní obrazovky (ve výchozím nastavení je z bezpečnostních důvodů zakázáno)Zrušte zaškrtnutí políčka opětovné zakázání speciálních funkcí
+ Povolí pořizování snímků hlavní obrazovky (ve výchozím nastavení je z bezpečnostních důvodů zakázáno)
+ Odstranit šifrovací klíč z úložiště klíčůTato funkce ke své činnosti vyžaduje alespoň Android 5.0 (Lollipop)Tato funkce vyžaduje nastavení zámku obrazovky (Nastavení -> Zabezpečení -> Zámek obrazovky)
+ Není povoleno prázdné heslo, nastavte přihlášení na \"Žádné\" pro zakázání!
+ Pokouším se změnit šifrování databáze, prosím čekejte!
+ Šifrování databáze úspěšně změněno!
+ Nepodařilo se změnit šifrování databáze, vracím se k původnímu stavu!
+ Nepodařilo se vytvořit zálohu vnitřní, operace byla zrušena!
+ Nepodařilo se získat šifrovací klíč, operace byla zrušena!
+ Ověření se nezdařilo!
+ Nepodařilo se automaticky převést heslo/PIN na nové šifrování, prosím nastavte jej znovu v Nastaveních!
+ Chyba
+ Vymazat úložiště klíčů?
+ Heslo nebo kód PIN lze použít pouze pokud je šifrování databáze nastaveno na \"Heslo / PIN\"!
+ Nejprve je třeba nastavit ověřování na \"Heslo\" nebo \"PIN\"!
+ Před změnou šifrování musíte nejprve nastavit heslo nebo PIN!
+ V některých případech vymazání KeyStore může pomoci vyřešit problémy. Pokračujte, pouze pokud víte, co děláte! \n\nVzhledem k tomu, že máte šifrování databáze nastaveno na heslo / PIN byste provedením tohoto postupu něměli přijít o data (ale mít zálohu nikdy neuškodí).\n\n Jste si opravdu jisti, že chcete vymyzat KeyStore?
+ V některých případech vymazání KeyStore může pomoci vyřešit problémy. Pokračujte, pouze pokud víte, co děláte! \n\n Varování: Vzhledem k tomu, že máte šifrování databáze nastaveno na Android KeyStore ztratíte tímto krokem všechny své účty. Ujistěte se, že máte zálohu!\n\n Jste si opravdu jisti, že chcete vymyzat KeyStore?Žádný
@@ -50,6 +68,10 @@
PINStejné jako zařízení
+
+ Android KeyStore
+ Heslo / PIN
+ Smazat všechny účtyObnovit výchozí nastavení
@@ -60,17 +82,24 @@
Černý vzhled
+ SkrytéMaléVýchozíStředníVelké
+
+ Nedělit
+ Po dvou znacích
+ Po třech znacích
+ Podle systému
- Heslo
- PIN
+ Zadejte nové heslo
+ Zadejte nový PINPotvrďte hesloPotvrďte PIN
- (beze změn)
+ Heslo musí obsahovat alespoň %1$d znaků!
+ PIN musí obsahovat alespoň %1$d číslic!
diff --git a/app/src/main/res/values-de-rDE/strings_about.xml b/app/src/main/res/values-de-rDE/strings_about.xml
index e69a7d16..e11797df 100644
--- a/app/src/main/res/values-de-rDE/strings_about.xml
+++ b/app/src/main/res/values-de-rDE/strings_about.xml
@@ -2,8 +2,7 @@
Über
-
-Eine OpenSource-zwei-Faktor-Authentifizierung App für Android 4.4+.
+ Quelloffene zwei-Faktor-Authentifizierung für AndroidÄnderungsprotokollLizenz
@@ -13,9 +12,11 @@ Eine OpenSource-zwei-Faktor-Authentifizierung App für Android 4.4+. VersionAutoren
- Hauptautor
+ Hauptentwickler
+ EntwicklerAutor der ursprünglichen AppUrsprüngliche App
+ WebseiteSpendenMitwirkendeÜbersetzer
@@ -29,4 +30,5 @@ Eine OpenSource-zwei-Faktor-Authentifizierung App für Android 4.4+. Sind Sie sicher, dass Sie die Sonderfunktionen aktivieren möchten? Die meisten davon sind nicht standardgemäße OTP-Algorithmen, die auf besonderen Wunsch umgesetzt wurden. Diese sind nicht offiziell unterstützt und mit gewissen Einschränkungen. Bitte lesen (und verstehen) Sie die Seite \"Special Features\" im Github Wiki um mehr darüber zu lernen, bevor Sie sie verwenden.
Sonderfunktionen aktiviertSonderfunktionen bereits aktiviert
+ Spenden-Link wurde in die Zwischenablage kopiert
diff --git a/app/src/main/res/values-de-rDE/strings_auth.xml b/app/src/main/res/values-de-rDE/strings_auth.xml
index 62483343..01b4e209 100644
--- a/app/src/main/res/values-de-rDE/strings_auth.xml
+++ b/app/src/main/res/values-de-rDE/strings_auth.xml
@@ -6,9 +6,13 @@
PasswortPIN
- Bitte geben Sie Ihr Passwort ein, um andOTP zu starten.
- Bitte geben Sie Ihre PIN ein, um andOTP zu starten.
+ Bitte authentifizieren Sie sich, um andOTP zu starten!
+ Bitte bestätigen Sie Ihre Authentifizierung um den neuen Verschlüsselungsschlüssel zu generieren!
+
+ EntsperrenBitte setzen Sie ein Passwort in den Einstellungen!Bitte setzen Sie eine PIN in den Einstellungen!
+ Falsches Passwort, bitte erneut versuchen!
+ Falsche PIN, bitte erneut versuchen!
diff --git a/app/src/main/res/values-de-rDE/strings_backup.xml b/app/src/main/res/values-de-rDE/strings_backup.xml
index 77159651..da4ae854 100644
--- a/app/src/main/res/values-de-rDE/strings_backup.xml
+++ b/app/src/main/res/values-de-rDE/strings_backup.xml
@@ -11,7 +11,7 @@
Wiederherstellen (Klartext)Wiederherstellen (verschlüsselt)Wiederherstellen (OpenPGP)
- Replace existing entries
+ Vorhandene Einträge ersetzenAlle Konten in einer Klartext-JSON-Datei sichernAlle Konten in einer passwortgeschützten JSON-Datei sichernAlle Konten in einer OpenPGP-verschlüsselten JSON-Datei sichern
@@ -27,9 +27,7 @@
Sie müssen einen OpenPGP-Schlüssel in den Einstellungen
auswählen, bevor Sie verschlüsselte Backups erstellen können.
- If enabled all old entries are replaced when importing a
- backup and only the backup is present. If disabled the old entries and the backups content
- are merged.
+ Wenn aktiviert, dann werden beim Import einer Datensicherung alle vorhandenen Einträge ersetzt, so das nur die Datensicherung übrig bleibt. Wenn deaktivert, dann werden die bestehenden Einträge mit dem Inhalt der Datensicherung zusammengeführt.SicherheitswarnungMöchten Sie wirklich die Datenbank als
diff --git a/app/src/main/res/values-de-rDE/strings_main.xml b/app/src/main/res/values-de-rDE/strings_main.xml
index 7c4f12df..92011e45 100644
--- a/app/src/main/res/values-de-rDE/strings_main.xml
+++ b/app/src/main/res/values-de-rDE/strings_main.xml
@@ -7,7 +7,7 @@
QR-Code scannenSichernNeuer Marker
- Sie wurden gewarnt!
+ EinstellungenAlle MarkerKeine Marker
@@ -24,6 +24,7 @@
BeschriftungAlgorithmusMarker
+ Erweiterte EinstellungenMarker anzeigenMarker ausblenden
@@ -41,35 +42,34 @@
Marker bearbeitenEntfernen
+ Authentifizierung fehlgeschlagen, bitte erneut versuchen!Authentifizierung fehlgeschlagen, andOTP wird geschlossen!In Zwischenablage kopiertDieser Eintrag ist bereits vorhandenUngültiger QR-Code
+ Verschlüsselungsschlüssel nicht geladenAuthentifizierenDetails eingebenEntfernenUmbenennen
- Sicherheit und BackupsZuletzt benutzt
+ KeyStore Fehler
+ DatenbankverschlüsselungBitte geben Sie die Anmeldeinformationen Ihres Geräts ein, um andOTP zu starten.
- Möchten Sie das Konto wirklich entfernen?
- Zum Schutz Ihrer Kontoinformationen werden diese
- von dieser App nur verschlüsselt gespeichert. Ein Teil des dafür verwendeten Schlüssels
- wird im Android KeyStore System gespeichert. Der Vorteil dieses Ansatzes ist, dass der
- Schlüssel getrennt von den Anwendungsdaten gehalten wird und kann durch
- Hardware-Kryptographie (sofern Ihr Endgerät dies unterstützt) geschützt werden.
-
- Als Nachteil werden dadurch Sicherungen der
- Anwendungs-Daten etwas schwieriger. Falls Sie Drittanbieter-Anwendungen
- (z. B. Titanium Backup) verwenden, werden nur die Datendateien gesichert, aber
- nicht der Verschlüsselungsschlüssel und solche Backups daher unbrauchbar.
-
- Bitte verwenden Sie nur die interne Backup-Funktionen,
- die von der App bereitgestellt werden, um Ihre Konten zu sichern! Alles andere WIRD zum Datenverlust führen.
-
- Diese Meldung wird nicht nochmal angezeigt.
+ Sind Sie sicher, dass das Konto \"%1$s\" gelöscht werden soll?
+ 1. Android KeyStore
+ 2. Passwort / PIN
+ Zur Gewährleistung der Sicherheit Ihrer Konten speichert diese App diese nur in verschlüsselten Dateien unter Benutzung einer der folgenden zwei Methoden:
+ Der KeyStore ist eine Systemkomponente von Android für die sichere Speicherung von kryptographischen Schlüsseln.
+Der Vorteil dieses Ansatzes ist, dass die Schlüssel getrennt von den Datendateien gespeichert und durch
+Hardware-Verschlüsselung (falls von der Hardware unterstützt) gesichert werden können.
+Aber dadurch das die Schlüssel nicht zusammen mit den Anwendungsdaten gespeichert werden, wird verhindert dass diese
+Methode mit externen Backup-Lösungen (z. B. Titanium) funktioniert. Wenn Sie diese Methode wählen, müssen Sie sich auf die internen Backup-Funktionen verlassen, die andOTP zur Verfügung stellt.
+ Diese Methode wird Ihre Daten mit einem Schlüssel verschlüsseln, der aus einem Passwort oder einer PIN erzeugt wird. Der Hauptvorteil ist, dass dies mit externen Backup-Lösungen (wie Titanium) funktioniert. Allerdings müssen Sie bei jedes Mal beim Start von andOTP Ihre Anmeldedaten eingeben.
+ Standardmäßig wird der Android KeyStore verwendet. Es jedoch bekannt, das dies bei bestimmten Custom-ROMs (und einigen wenigen Werksmäßigen) Probleme verursacht. Sie können die Verschlüsselung in den Einstellungen ändern, indem Sie auf den Button weiter unten klicken.Damit andOTP erkennt welches Token zuletzt benutzt wurde, muss entweder \"Tippen zum Anzeigen\" aktiv sein
oder der Kopieren-Button benutzt werden.\n\n
Diese Nachricht wird nicht erneut angezeigt.
+ Fehler beim Laden des Verschlüsselungsschlüssels aus dem KeyStore. Alle Einträge, die hinzugefügt werden gehen verloren.\n\nUm andOTP dennoch verwenden zu können, rufen Sie die Einstellungen auf und setzen die Datenbank-Verschlüsselung auf Passwort / PIN.
diff --git a/app/src/main/res/values-de-rDE/strings_settings.xml b/app/src/main/res/values-de-rDE/strings_settings.xml
index cf40c6eb..e689145b 100644
--- a/app/src/main/res/values-de-rDE/strings_settings.xml
+++ b/app/src/main/res/values-de-rDE/strings_settings.xml
@@ -12,13 +12,14 @@
AuthentifizierungPasswortPIN
+ DatenbankverschlüsselungPanik-TriggerSpracheDesignSchriftgrösse der BeschriftungBeschriftung scrollen
- Thumbnails anzeigenThumbnail-Größe
+ Token mit Leerzeichen unterteilenNach Dateinamen fragenSicherungsverzeichnisDatensicherungs-Passwort
@@ -28,6 +29,7 @@
Verschlüsselte Datensicherungen überprüfenSpezielle Funktionen aktivierenBildschirmfoto aktivieren
+ KeyStore leerenOTP-Token standardmäßig ausblenden, erfordert dass sie
manuell aufgedeckt werden
@@ -36,20 +38,36 @@
Überlange Beschriftungen scrollen, statt diese abzuschneidenJedes Mal nach dem Dateinamen fragen, wenn eine Sicherung erstellt oder wiederhergestellt wirdVerzeichnis für die Sicherungen (Dateinamen hängen vom Backup-Typ ab)
- Setzt das Kennwort, das verwendet wird, um die
+ Setzt das Passwort, das verwendet wird, um die
Sicherungen zu verschlüsselnJedes verschlüsselte Backup wird zusätzlich mit
Ihrem Schlüssel signiert (Passwort erforderlich)Verschlüsselte Backups werden nur importiert,
wenn sie mit einem gültigen Schlüssel signiert sind
+ Haken entfernen, um die speziellen Funktionen wieder zu deaktivierenErlauben von Bildschirmfotos des Hauptbildschirms
(aus Sicherheitsgründen standardmässig deaktiviert)
- Haken entfernen, um die speziellen Funktionen wieder zu deaktivieren
+ Verschlüsselungsschlüssel aus dem KeyStore löschenDieses Feature erfordert mindestens Android 5.0
(Lollipop) um zu funktionierenDieses Feature erfordert das ein geschützter Sperrbildschirm
eingerichtet ist (Einstellungen -> Sicherheit -> Displaysperre)
+ Ein leeres Passwort ist nicht zulässig, setzen Sie die Authentifizierung auf \"Keine\", um es zu deaktivieren!
+ Es wird versucht die Datenbank-Verschlüsselung zu ändern, bitte warten!
+ Die Datenbank-Verschlüsselung wurde erfolgreich geändert!
+ Fehler beim Ändern der Datenbank-Verschlüsselung, es wird auf den ursprünglichen Zustand zurückgegriffen!
+ Erstellung eines internen Backups fehlgeschlagen. Abbruch!
+ Fehler beim Abrufen des Verschlüsselungsschlüssels. Abbruch!
+ Authentifizierung fehlgeschlagen!
+ Transparentes Umstellen vom Ihrem Passwort / Ihrer PIN auf die neuen Verschlüsselung fehlgeschlagen, bitte setzen Sie es manuell in den Einstellungen zurück!
+ Fehler
+ KeyStore leeren?
+ Sie können nur ein Passwort oder eine PIN verwenden, solange die Datenbankverschlüsselung auf \"Passwort / PIN\" eingestellt ist!
+ Sie müssen zuerst die Authentifizierung auf \"Passwort\" oder \"PIN\" setzen!
+ Sie müssen zuerst ein Passwort oder eine PIN festlegen, bevor Sie die Verschlüsselung ändern!
+ In einigen Fällen kann das Leeren des KeyStores helfen, Probleme zu lösen. Sie sollten nur fortfahren, wenn Sie wissen, was Sie tun!\n\nDa die Datenbankverschlüsselung auf Passwort / PIN eingestellt ist, sollten Sie dadurch keine Daten verlieren (aber es schadet nie, Datensicherungen zu haben).\n\nSind Sie sich wirklich sicher, dass Sie den KeyStore leeren wollen?
+ In einigen Fällen kann das Leeren des KeyStore helfen, Probleme zu lösen. Sie sollten nur fortfahren, wenn Sie wissen, was Sie tun!\n\nWarnung: Da die Datenbankverschlüsselung auf Androd KeyStore eingestellt ist, werden Sie alle Konten verlieren. Stellen Sie sicher, dass Sie eine Datensicherung haben!.\n\nSind Sie sich wirklich sicher, dass Sie den KeyStore leeren wollen?Keine
@@ -57,6 +75,10 @@
PINGerät-Anmeldedaten
+
+ Android KeyStore
+ Passwort / PIN
+ Alle Konten löschenEinstellungen zurücksetzen
@@ -67,17 +89,24 @@
Schwarzes Design
+ VerstecktKleinStandardMittelGross
+
+ Nicht unterteilen
+ Nach zwei Zeichen
+ Nach drei Zeichen
+ Systemstandard
- Passwort
- PIN
+ Neues Passwort eingeben
+ Neue PIN eingebenPasswort bestätigenPIN bestätigen
- (unverändert)
+ Das Passwort muss mindestens %1$d Zeichen lang sein!
+ Die PIN muss mindestens %1$d Ziffern lang sein!
diff --git a/app/src/main/res/values-es-rES/strings_about.xml b/app/src/main/res/values-es-rES/strings_about.xml
index 898d50ff..6908b997 100644
--- a/app/src/main/res/values-es-rES/strings_about.xml
+++ b/app/src/main/res/values-es-rES/strings_about.xml
@@ -2,8 +2,7 @@
Acerca de
- Una aplicaciónde de código abierto de doble factor de
- autenticación para Android 4.4+.
+ Autenticación de código abierto de doble factor para AndroidHistorial de cambiosLicencia
@@ -13,9 +12,11 @@
VersiónAutores
- Autor principal
+ Desarrollador principal
+ DesarrolladorAutor de la aplicación originalAplicación original
+ Página webDonarContribuidoresTraductores
@@ -33,4 +34,5 @@
antes de usarlas.Funcionalidades especiales activadasFuncionalidades especiales ya activadas
+ Enlace de donativos copiado al portapapeles
diff --git a/app/src/main/res/values-es-rES/strings_auth.xml b/app/src/main/res/values-es-rES/strings_auth.xml
index ef6960c5..15eebdbf 100644
--- a/app/src/main/res/values-es-rES/strings_auth.xml
+++ b/app/src/main/res/values-es-rES/strings_auth.xml
@@ -6,9 +6,13 @@
ContraseñaPIN
- Introduzca su contraseña para iniciar andOTP.
- Introduzca su PIN para iniciar andOTP.
+ ¡Autentícate para iniciar andOTP!
+ ¡Autentícate para generar una nueva clave de cifrado!
+
+ DesbloquearConfigura una contraseña en los ajustes!Configura un PIN en los ajustes!
+ Contraseña incorrecta ¡Inténtelo de nuevo!
+ PIN incorrecto ¡Inténtelo de nuevo!
diff --git a/app/src/main/res/values-es-rES/strings_backup.xml b/app/src/main/res/values-es-rES/strings_backup.xml
index 6ae084b0..1bb6dcbb 100644
--- a/app/src/main/res/values-es-rES/strings_backup.xml
+++ b/app/src/main/res/values-es-rES/strings_backup.xml
@@ -11,7 +11,7 @@
Restaurar (texto plano)Restaurar (cifrada)Restaurar (OpenPGP)
- Replace existing entries
+ Reemplazar entradas existentesHace copia de seguridad de todas las cuentas en un fichero JSON de texto planoHace copia de seguridad de todas las cuentas en un fichero JSON con contraseñaHace copia de seguridad de todas las cuentas en un fichero JSON cifrado con OpenPGP
@@ -27,9 +27,9 @@
Necesitas seleccionar una clave OpenPGP en los Ajustes
antes de crear una copia de seguridad cifrada.
- If enabled all old entries are replaced when importing a
- backup and only the backup is present. If disabled the old entries and the backups content
- are merged.
+ Activado, las entradas antiguas se reemplazarán al importar una
+ copia de seguridad y solo quedarán las de la copia. Desactivado, las entradas
+ antiguas y las nuevas se juntan.Advertencia de seguridad¿Realmente quieres exportar la base de datos como
diff --git a/app/src/main/res/values-es-rES/strings_main.xml b/app/src/main/res/values-es-rES/strings_main.xml
index 93e9483d..315622f4 100644
--- a/app/src/main/res/values-es-rES/strings_main.xml
+++ b/app/src/main/res/values-es-rES/strings_main.xml
@@ -7,7 +7,7 @@
Escanear código QRGuardarNueva etiqueta
- ¡Has sido avisado!
+ AjustesTodas etiquetasSin etiquetas
@@ -24,6 +24,7 @@
EtiquetaAlgoritmoEtiquetas
+ Opciones AvanzadasMostrar etiquetasOcultar etiquetas
@@ -41,34 +42,43 @@
Editar etiquetasEliminar
+ La autentificación ha fallado, por favor inténtelo otra vez!La autenticación ha fallado, cerrando andOTP!Copiado al portapapelesLa entrada ya existeCódigo QR inválido
+ Clave de cifrado no cargadaAutenticarIntroducir datosEliminarRenombrar
- Seguridad y copias de seguridadÚltimo usado
+ Error en el almacen de claves
+ Cifrado de base de datosPor favor, introduce los credenciales del dispositivo para iniciar andOTP.
- ¿Está seguro de que desea eliminar esta cuenta?
- Para mantener la información de tu cuenta segura esta aplicación
- solo la guarda cifrada. Parte de la clave de cifrado utilizada es almacenada en el almacen
- de claves de Android. La ventaja de este método es que la clave está separada de los datos de la aplicación
- y puede ser almacenada en un enclave hardware (si el dispositivo lo soporta).
-
- Como desventaja esto hace la copia de seguridad de los datos
- de la aplicación un poco más díficil. Si usas una aplicación de terceros (como Titanium Backup) solo
- haces copias de seguridad de los ficheros de datos, no de la clave de cifrado.
- Como resultado esas copias son inútiles.
-
- Por favor útiliza sólo los métodos de copias de seguridad internos
- provistos por la aplicación. Cualquier otro método HARÁ que pierdas los datos.
-
- Este mensaje no volverá a ser mostrado.
+ ¿Seguro que desea eliminar la cuenta \"%1$s\"?
+ 1. Almacen de claves de Android
+ 2. Contraseña / PIN
+ Para garantizar la seguridad de tus cuentas, esta aplicación
+ solo las almacena cifradas usando alguno de estos dos métodos:
+ El almacen de claves es un componente de Android que sirve
+ para almacenar claves criptográficas de forma segura. La ventaja de este método es que las
+ claves se almacen por separado de los ficheros con datos y pueden ser respaldadas por criptografía
+ en el hardware (si el hardware lo soporta). Como las claves no están almacenadas con la información de la
+ aplicación este método no permite sistemas de copias de seguridad externos (como Titanium). Si eliges este método
+ tienes que utilizar el sistema interno de copias de seguridad que provee andOTP.
+ Este método cifrará tus datos con una clave
+ generada con tu contraseña o PIN. La ventaja principal es que funcionará con
+ sistemas externos de copias de seguridad (como Titanium). Aunque tendrás que introducir
+ los credenciales cada vez que inicies andOTP.
+ Por defecto se utiliza el almacen de claves de Android, aunque
+ se sabe que puede causar problemas en ciertas ROMs personalizas (y algunas por defecto).
+ Puedes cambiar el método desde los Ajustes pulsando el botón inferior.Para que andOTP pueda saber qué código ha sido el último usado
tienes que activar \"Tocar para mostrar\" o usar el botón de copiar.\n\nEste mensaje no
se mostrará de nuevo.
+ Error al cargar la clave del almacen de claves.
+ Cualquier entrada añadida se perderá.\n\nPara poder seguir usando andOTP puedes ir
+ a Ajustes y cambiar el Cifrado de base de datos a Contraseña / PIN.
diff --git a/app/src/main/res/values-es-rES/strings_settings.xml b/app/src/main/res/values-es-rES/strings_settings.xml
index 07ee442a..2ef14d2a 100644
--- a/app/src/main/res/values-es-rES/strings_settings.xml
+++ b/app/src/main/res/values-es-rES/strings_settings.xml
@@ -12,13 +12,14 @@
AutenticaciónContraseñaPIN
+ Cifrado de base de datosBotón del pánicoIdiomaAspectoTamaño de fuenteDesplazar etiqueta
- Mostrar miniaturasTamaño de miniatura
+ Separar el código con espacioPedir nombre de ficheroCarpeta para copias de seguridadContraseña de copia de seguridad
@@ -28,6 +29,7 @@
Comprobar copias de seguridad cifradasActivar funcionalidades especialesHabilitar capturas de pantalla
+ Vaciar el almacen de clavesEsconder códigos OTP por defecto,
necesitando mostrarlos manualmente
@@ -45,14 +47,47 @@
tu clave (necesita contraseña)Las contraseñas de copias de seguridad cifradas sólo se importan
si están firmadas con una clave válida
+ Desmarca para desactivar las funcionalidades especiales de nuevoPermitir capturas de pantalla de la vista principal
(Desactivado por defecto por razones de seguridad)
- Desmarca para desactivar las funcionalidades especiales de nuevo
+ Elimina la clave de cifrado del almacen de clavesEsta característica requiere al menos
Android 5.0 (Lollipop)Esta característica requiere bloqueo de salvapantallas
seguro (Settings -> Security -> Screenlock)
+ Una contraseña vacía no está permitida,
+ cambia autenticación a \"Ninguno\" para desactivarla!
+ Intentando cambiar el cifrado de la base de datos,
+ espera!
+ Cambio del cifrado de la base de datos
+ con éxito!
+ Fallo al cambiar el cirado de la base de datos,
+ revirtiendo al estado original!
+ Fallo al crear la copia de seguridad interna,
+ abortando!
+ Fallo al obtener la clave de cifrado, abortando!
+ Error de autenticación!
+ Fallo al actualizar la contraseña / PIN al nuevo cifrado,
+ por favor reinicia manualmente desde ajustes!
+ Error
+ Vaciar el almacen de claves?
+ Solo puedes usar la contraseña o el PIN si
+ el cifrado de la base de datos está establecido a \"Contraseña / PIN\"!
+ Primero tienes que establecer
+ la autenticación a \"Contraseña\" o \"PIN\"!
+ Primero necesitas establecer una
+ contraseña o PIN antes de cambiar el cifrado!
+ En algunos casos vaciar el almacen de claves
+ puede ayudar a solventar problemas. Deberías solo hacerlo si sabes lo que haces!\n\nPuesto
+ que el Cifrado de la base de datos está como Contraseña / PIN no deberías perder
+ ninguna información haciéndolo (pero nunca es malo tener una copia de seguridad igualmente).\n\n
+ ¿Seguro que quieres vaciar el almacen de claves?
+ En algunos casos vaciar el almacen de claves
+ puede ayudar a solventar problemas. Deberías solo hacerlo si sabes lo que haces!\n\nAdvertencia:
+ Puesto que el Cifrado de la base de datos está como Almacen de claves de Android perderás todas
+ tus cuentas. ¡Comprueba que tienes una copia de seguridad!\n\n
+ ¿Seguro que quieres vaciar el almacen de claves?Ninguno
@@ -60,6 +95,10 @@
PINCredenciales del dispositivo
+
+ Almacen de claves de Android
+ Contraseña / PIN
+ Eliminar todas las cuentasRestablecer la configuración
@@ -70,17 +109,24 @@
Tema negro
+ OcultoPequeñoPredeterminadoMedianoGrande
+
+ No partir
+ Tras dos carácteres
+ Tras tres carácteres
+ Predeterminado por el sistema
- Contraseña
- PIN
+ Introduce la nueva contraseña
+ Introducir nuevo PINConfirmar contraseñaConfirmar PIN
- (sin cambios)
+ ¡La contraseña debe ser al menos de %1$d caracteres!
+ ¡El PIN debe ser al menos de %1$d dígitos!
diff --git a/app/src/main/res/values-fr-rFR/strings_about.xml b/app/src/main/res/values-fr-rFR/strings_about.xml
index 18171a89..7c3124de 100644
--- a/app/src/main/res/values-fr-rFR/strings_about.xml
+++ b/app/src/main/res/values-fr-rFR/strings_about.xml
@@ -2,10 +2,7 @@
À propos
-
- Une application Open Source d\'authentification à deux facteurs pour
- Android 4.4+.
-
+ Authentification open source à double facteurs pour AndroidListe des changementsLicence
@@ -15,11 +12,13 @@
VersionAuteurs
- Auteur principal
+ Développeur principal
+ Développeur
Auteur de l\'application originale
Application originale
+ Site webFaire un donContributeursTraducteurs
@@ -37,4 +36,5 @@
Êtes-vous sûr de vouloir activer les fonctionnalités spéciales ? La plupart d\'entre elles sont des algorithmes OTP non standard qui ont été implémentés sur demande spéciale. Elles ne sont pas supportées officiellement et peuvent venir avec certaines limitations. Veuillez lire (et comprendre) la page « Fonctionnalités spéciales » sur le wiki du GitHub pour en apprendre d\'avantage avant de les utiliser.Fonctionnalités spéciales activéesFonctionnalités spéciales déjà activées
+ Lien de don copié dans le presse-papier
diff --git a/app/src/main/res/values-fr-rFR/strings_auth.xml b/app/src/main/res/values-fr-rFR/strings_auth.xml
index d197fd55..aac38b30 100644
--- a/app/src/main/res/values-fr-rFR/strings_auth.xml
+++ b/app/src/main/res/values-fr-rFR/strings_auth.xml
@@ -6,12 +6,11 @@
Mot de passeCode PIN
-
- Veuillez entrer votre mot de passe pour démarrer andOTP.
-
-
- Veuillez entrer votre code PIN pour démarrer andOTP.
-
+ Veuillez vous authentifier pour lancer andOTP !
+ Veuillez confirmer votre authentification pour générer la
+ nouvelle clé de chiffrement !
+
+ Déverrouiller
Veuillez ajouter un mot de passe dans les paramètres !
@@ -19,4 +18,6 @@
Veuillez ajouter un code PIN dans les paramètres !
+ Mot de passe incorrect, veuillez réessayer !
+ Code PIN incorrect, veuillez réessayer !
diff --git a/app/src/main/res/values-fr-rFR/strings_main.xml b/app/src/main/res/values-fr-rFR/strings_main.xml
index 1f78fd2e..90e40fe9 100644
--- a/app/src/main/res/values-fr-rFR/strings_main.xml
+++ b/app/src/main/res/values-fr-rFR/strings_main.xml
@@ -7,7 +7,7 @@
Scanner un QR-CodeEnregistrerNouveau tag
- Vous avez été prévenu !
+ ParamètresTous les tagsAucun tag
@@ -24,6 +24,7 @@
TitreAlgorithmeTags
+ Options avancéesAfficher les tagsCacher les tags
@@ -41,51 +42,46 @@
Éditer les tagsSupprimer
-
- L\'authentification a échoué, fermeture d’andOTP !
-
+ Échec d\'authentification, veuillez réessayer !
+ Échec d\'authentification, fermeture d\'andOTP !
Copié dans le presse-papier
Cette entrée existe déjàQR-Code invalide
+ Clé de chiffrement non chargéeIdentifiez-vousAjouter les détailsSupprimerRenommer
-
- Sécurité et sauvegardes
- Dernier utilisé
+ Erreur KeyStore
+ Chiffrement de la base de données
Veuillez entrer les informations d\'identification du périphérique pour
démarrer andOTP.
-
- Êtes-vous sûr de vouloir supprimer ce compte ?
-
-
- Pour conserver les informations de vos comptes de manière sécurisé, cette
- application ne les stocke que chiffrées. Une partie des clés de
- chiffrement utilisées à cet effet sont stockées dans le KeyStore
- d\'Android. Cette approche a l\'avantage de séparer les clés des données
- de l\'application et permet d’utiliser le matériel dédié à la
- cryptographie (s\'il est géré par votre périphérique).
-
-
- Néanmoins, cela rend plus difficile la réalisation de sauvegardes des
- données de l\'application. Si vous utilisez une application tierce (comme
- Titanium Backup), vous ne pourrez sauvegarder que les données et non les
- clés de chiffrement, rendant les sauvegardes inexploitables.
-
-
- Veuillez n\'utiliser que les fonctions de sauvegarde proposées par
- l\'application pour sauvegarder vos comptes ! Toute autre méthode
- provoquera des pertes de données.
-
-
- Ce message n\'apparaîtra plus par la suite.
-
+ Êtes-vous sûr(e) de vouloir supprimer le compte \"%1$s\" ?
+ 1. KeyStore Android
+ 2. Mot de passe / Code PIN
+ Pour assurer la sécurité de vos comptes, cette application
+ ne les stocke que dans des fichiers de données chiffrés en utilisant l\'une de ces deux méthodes :
+ Le KeyStore est un composant système d\'Android pour
+ stocker de manière sécurisée les clés cryptographiques. L\'avantage de cette approche est que les clés sont
+ stockées séparément des fichiers de données et peuvent être adossées à une cryptographie matérielle (si le
+ matériel le supporte). Cependant, comme les clés ne sont pas stockées avec les données des applications, cette méthode
+ empêche les solutions de sauvegarde externes (comme Titanium) de fonctionner. Si vous choisissez cette méthode
+ vous devrez faire confiance aux fonctionnalités internes de sauvegarde fournises par andOTP.
+ Cette méthode va chiffrer vos données avec une clé
+ générée à partir d\'un mot de passe ou code PIN. L\'avantage principal ici est que cela marchera avec
+ les solutions de sauvegarde externes (comme Titanium). Cependant, vous devrez saisir vos identifiants
+ à chaque fois que vous lancez andOTP.
+ Par défaut, le KeyStore d\'Android sera utilisé. Cependant,
+ il est connu pour causer des problèmes avec certaines ROMs custom (ainsi que certaines stock aussi). Vous
+ pouvez changer le chiffrement dans les paramètres en appuyant sur le bouton ci-dessous.Afin que andOTP puisse reconnaitre le dernier jeton utilisé vous devez activer l\'option \"appuyer pour afficher\" ou utiliser le bouton de copie.\n\nCe message ne s\'affichera plus.
+ Échec du chargement de la clé de chiffrement à partir du KeyStore.
+ Toute entrée ajoutée sera perdue.\n\nPour continuer à utiliser andOTP, vous pouvez aller
+ dans les paramètres pour passer de Chiffrement de la base de données vers Mot de passe / Code PIN.
diff --git a/app/src/main/res/values-fr-rFR/strings_settings.xml b/app/src/main/res/values-fr-rFR/strings_settings.xml
index cc0101de..57514fdf 100644
--- a/app/src/main/res/values-fr-rFR/strings_settings.xml
+++ b/app/src/main/res/values-fr-rFR/strings_settings.xml
@@ -12,6 +12,7 @@
IdentificationMot de passeCode PIN
+ Chiffrement de la base de donnéesBouton d\'urgenceLangageThème
@@ -19,8 +20,8 @@
Taille de la police des titres
Défilement des libellés
- Afficher les miniaturesTaille des miniatures
+ Séparer le jeton avec des espacesDemander le nom du fichierRépertoire de sauvegarde
@@ -40,6 +41,7 @@
Activer les fonctionnalités spécialesPermettre les copies d\'écran
+ Effacer le KeyStore
Cacher les jetons OTP par défaut et les afficher manuellement
@@ -62,8 +64,9 @@
Les sauvegardes chiffrées ne sont restaurées que lorsqu\'elles sont
signées avec une clé valide.
- Permettre de prendre des copies d\'écran de la vue principale (désactivé par défaut pour des raisons de sécurité)Décochez pour désactiver les fonctionnalités spéciales
+ Permettre de prendre des copies d\'écran de la vue principale (désactivé par défaut pour des raisons de sécurité)
+ Supprimer la clé de chiffrement depuis le KeyStore
Cette fonctionnalité n\'est disponible que sur Android 5.0 (Lollipop) ou
@@ -73,6 +76,38 @@
Cette fonctionnalité nécessite l\'activation du verrouillage de l’écran
(Paramètres -> Sécurité -> Verrouillage de l\'écran)
+ Un mot de passe vide n\'est pas autorisé, définissez
+ l\'Authentification sur \"Aucune\" pour la désactiver !
+ Changement du chiffrement de la base de données,
+ veuillez patienter !
+ Chiffrement de la base de données changé
+ avec succès !
+ Impossible de changer le chiffrement de la base de données,
+ retour à l\'état original !
+ Échec de la création d\'une sauvegarde
+ interne, annulation !
+ Impossible d’obtenir la clé de chiffrement, abandon !
+ Échec de l\'authentification !
+ Échec de la mise à jour de votre mot de passe / code PIN
+ pour le nouveau chiffrement, veuillez le réinitialiser manuellement depuis les paramètres !
+ Erreur
+ Vider le KeyStore ?
+ Vous pouvez seulement utiliser un mot de passe ou un code PIN si
+ le chiffrement de la base de données est défini sur \"Mot de passe / Code PIN\" !
+ Vous devez d\'abord définir
+ l\'authentification sur \"Mot de passe / Code PIN\" !
+ Vous devez d\'abord définir un
+ mot de passe ou code PIN avant de changer le chiffrement !
+ Dans certains cas, effacer le KeyStore
+ peut aider à résoudre des problèmes. Vous ne devriez seulement le faire si vous savez ce que vous faites !\n\nVu que
+ le chiffrement de la base de données est défini sur Mot de passe / Code PIN, vous ne devriez perdre aucune donnée
+ en le faisant (mais ça ne fait jamais de mal de faire une sauvegarde).\n\nÊtes-vous sûr(e) de vouloir
+ effacer le KeyStore ?
+ Dans certains cas, effacer le KeyStore
+ peut aider à résoudre des problèmes. Vous ne devriez seulement le faire si vous savez ce que vous faites !\n\nAttention:
+ Vu que le chiffrement de la base de données est défini sur KeyStore Android, vous allez perdre tous
+ vos comptes. Assurez-vous d\'avoir une sauvegarde !\n\nÊtes-vous sûr(e) de vouloir effacer le
+ KeyStore ?Aucune
@@ -80,6 +115,10 @@
Code PINIdentification du périphérique
+
+ KeyStore Android
+ Mot de passe / PIN
+ Supprimer l\'ensemble des comptesRéinitialiser les paramètres de l\'application
@@ -90,19 +129,26 @@
Thème noir
+ MasquéPetitPar défautMoyenGrand
+
+ Ne pas séparer
+ Après deux caractères
+ Après trois caractères
+ Par défaut du système
- Mot de passe
- Code PIN
+ Saisir le nouveau mot de passe
+ Saisir le nouveau code PIN
Confirmer le mot de passe
Confirmer le code PIN
- (inchangé)
+ Le mot de passe doit comporter au moins %1$d caractères !
+ Le code PIN doit comporter au moins %1$d chiffres !
diff --git a/app/src/main/res/values-gl-rES/strings_about.xml b/app/src/main/res/values-gl-rES/strings_about.xml
index 16fc9927..7cec8ba1 100644
--- a/app/src/main/res/values-gl-rES/strings_about.xml
+++ b/app/src/main/res/values-gl-rES/strings_about.xml
@@ -2,8 +2,7 @@
Sobre
-
-Un aplicativo libre de autenticación de dous factores para Android 4.4+.
+ Autenticación de doble-factor de código aberto para AndroidCambiosLicenza
@@ -13,9 +12,11 @@ Un aplicativo libre de autenticación de dous factores para Android 4.4+. VersiónAutores
- Autor principal
+ Desenvolvedor principal
+ DesenvolvedorAutor do aplicativo orixinalAplicativo orixinal
+ Páxina webDoarColaboradoresTradutores/as
@@ -33,4 +34,5 @@ Un aplicativo libre de autenticación de dous factores para Android 4.4+.
Funcionalidades especiais activadasAs funcionalidades especiais xa están activadas
+ Ligazón de doazóns copiada ao portapapeis
diff --git a/app/src/main/res/values-gl-rES/strings_auth.xml b/app/src/main/res/values-gl-rES/strings_auth.xml
index 18c5a284..2a295fdd 100644
--- a/app/src/main/res/values-gl-rES/strings_auth.xml
+++ b/app/src/main/res/values-gl-rES/strings_auth.xml
@@ -6,9 +6,14 @@
ContrasinalPIN
- Introduza o contrasinal para iniciar andOTP.
- Introduza o PIN para iniciar andOTP.
+ Por favor autentíquese para iniciar andOTP!
+ Por favor confirme a súa autenticación para xerar
+ a nova chave de cifrado!
+
+ DesbloquearEstablecer un contrasinal en axustes!Establecer un PIN en axustes!
+ Contrasinal incorrecto, téntao de novo!
+ PIN incorrecto, téntao de novo!
diff --git a/app/src/main/res/values-gl-rES/strings_backup.xml b/app/src/main/res/values-gl-rES/strings_backup.xml
index 03f3752d..b6179e89 100644
--- a/app/src/main/res/values-gl-rES/strings_backup.xml
+++ b/app/src/main/res/values-gl-rES/strings_backup.xml
@@ -11,7 +11,7 @@
Restaurar (texto plano)Restaurar (cifrada)Restaurar (OpenPGP)
- Replace existing entries
+ Substituír as entradas existentesFacer copia de seguranza de todas as contas nun ficheiro de texto plano JSONFacer copia de seguranza de todas as contas nun ficheiro JSON con contrasinalFacer copia de seguranza de todas as contas nun ficheiro JSON cifrado con OpenPGP
@@ -27,9 +27,8 @@
Necesitas seleccionar unha chave OpenPGP nos Axustes
antes de crear unha copia de seguranza cifrada.
- If enabled all old entries are replaced when importing a
- backup and only the backup is present. If disabled the old entries and the backups content
- are merged.
+ 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.Advertencia de seguranza¿Queres exportar a base de datos como
diff --git a/app/src/main/res/values-gl-rES/strings_main.xml b/app/src/main/res/values-gl-rES/strings_main.xml
index 452ba72f..27da98d2 100644
--- a/app/src/main/res/values-gl-rES/strings_main.xml
+++ b/app/src/main/res/values-gl-rES/strings_main.xml
@@ -7,7 +7,7 @@
Escanear código QRGardarNova etiqueta
- Estás avisado!
+ AxustesTodas as etiquetasSen etiquetas
@@ -24,6 +24,7 @@
EtiquetaAlgoritmoEtiquetas
+ Opcións avanzadasMostrar etiquetasAgochar as etiquetas
@@ -41,34 +42,43 @@
Editar etiquetasEliminar
- A autenticación fallou, cerrando andOTP!
+ Fallou a autenticación, por favor inténteo de novo!
+ Fallou a autenticación, pechando andOTP!Copiado ao portapapeisEste nome xa existeCódigo QR inválido
+ Non se cargou a chave de cifradoAutenticarIntroducir datosEliminarRenomear
- Seguranza e copias de seguranzaÚltimo usado
+ Fallo no KeyStore
+ Cifrado da base de datosIntroduce as credenciais do dispositivo para iniciar andOTP.
- Seguro que desexa borrar esta conta?
- Para manter a información da túa conta segura este aplicativo
- só a garda cifrada. Parte da chave de cifrado utilizada é almacenada no almacén
- de chaves de Android. A vantaxe deste método é que a chave está separada dos datos do aplicativo
- e pode ser almacenada nun enclave hardware (se o dispositivo o soporta).
-
- Coma desvantaxe isto fai a copia de seguranza dos datos
- do aplicativo un pouco máis difícil. Se usas un aplicativo de terceiros (como Titanium Backup) só
- fas copia de seguranza dos ficheiros de datos, non da chave de cifrado.
- Como resultado esas copias son inútiles.
-
- Por favor utiliza só os métodos de copias de seguranza internos
- fornecidos polo aplicativo. Calquera outro método FARÁ que perdas os datos.
-
- Esta mensaxe non volverá a mostrarse.
+ Está seguro de que quere quitar a conta \"%1$s\"?
+ 1. Android KeyStore
+ Contrasinal / PIN
+ Para certificar a seguridade das súas contas este aplicativo
+ só as garda en ficheiros cifrados utilizando un dos seguintes métodos:
+ O KeyStore e un compoñente do sistema Android para
+ gardar de xeito seguro chaves criptográficas. A vantaxe de este sistema é que as chaves
+ gárdanse separadas dos ficheiros de datos e poden respaldarse con criptografía de hardware (si o
+ hardware o soporta). Porén como as chaves non se gardan cos datos do aplicativo este método
+ non permiten utilizar solucións de respaldo externas (como Titanium). Si escolle este
+ método deberá confiar nos sistemas internos de respaldo proporcionados por andOTP.
+ Este método cifrará os seus datos con unha chave
+ xerada desde un contrasinal ou PIN. A principal vantaxe de este método é que funcionará con
+ solucións de respaldo externas (como Titanium). Porén deberá introducir as súas credenciais
+ cada vez que inicia andOTP.
+ Por omisión utilizase Android KeyStore, porén é coñecido
+ que esto pode causar problemas con algunhas ROMs personalizadas (e tamén nalgunhas oficiais).
+ Pode cambiar o cifrado en Axustes pulsando no botón inferior.Para que andOTP poida saber que código foi o último usado
tes que activar \"Tocar para mostrar\" ou usar o botón de copiar.\n\nEsta mensaxe non
se mostrará de novo.
+ Fallo ao cargar a chave de cifrado desde a KeyStore.
+ Perderase calquer entrada xa engadida.\n\nPara seguir utilizando andOTP pode ir a
+ Axustes e cambiar a Base de datos de cifrado a Contrasinal / PIN.
diff --git a/app/src/main/res/values-gl-rES/strings_settings.xml b/app/src/main/res/values-gl-rES/strings_settings.xml
index b8fc1e75..8b96ad1a 100644
--- a/app/src/main/res/values-gl-rES/strings_settings.xml
+++ b/app/src/main/res/values-gl-rES/strings_settings.xml
@@ -12,13 +12,14 @@
AutenticaciónContrasinalPIN
+ Cifrado de Base de datosPanic TriggerIdiomaTemaTamaño da tipografíaDesprazar etiqueta
- Mostrar miniaturasTamaño de miniatura
+ Separe o testemuño con espazoPreguntar polo nome do ficheiroDirectorio de copias de seguranzaContrasinal da copia de seguranza
@@ -28,6 +29,7 @@
Comprobar copias de seguranza cifradasActivar funcionalidades especiaisActivar capturas de pantalla
+ Limpar KeyStoreAgochar códigos OTP, require mostralos manualmenteSelecciona o tempo (en segundos) tras o cal esconder
@@ -44,14 +46,45 @@
túa chave (require contrasinal)As copias de seguranza cifradas só se importan
se están asinadas con unha chave válida
+ Desmarcar para desactivar as funcionalidades especiaisPermitir capturas de pantalla da vista principal
(Desactivado por defecto por razóns de seguridade)
- Desmarcar para desactivar as funcionalidades especiais
+ Eliminar a chave de cifrado da KeyStoreEsta característica require polo menos
Android 5.0 (Lollipop)Esta característica require bloqueo de pantalla
seguro (Axustes -> Seguranza -> Bloqueo de pantalla)
+ Non se pode deixar baldeiro o contrasinal, estableza
+ Autenticación a \"Nada\" para deshabilitala!
+ Intentando cambiar o cifrado da base de datos,
+ agarde por favor!
+ Cambiouse correctamente o cifrado
+ da base de datos!
+ Fallou o cambio do cifrado da base de datos,
+ voltando ao estado orixinal!
+ Fallou a creación do respaldo
+ interno, abortando!
+ Fallou ao obter a chave de cifrado, abortanto!
+ Fallou a autenticación!
+ Fallo ao actualizar o seu contrasinal / PIN
+ ao novo cifrado, por favor restablezao en Axustes!
+ Erro
+ Limpar a KeyStore?
+ Só pode utilizar Contrasinal ou PIN
+ si o cifrado da base de datos se establece como \"Contrasinal / PIN\"!
+ Primeiro debe establecer
+ a Autenticación a \"Password\" ou \"PIN\"!
+ Primeiro debe establecer un Contrasinal
+ ou PIN antes de cambiar o cifrado!
+ 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 Cifrado da Base de datos está establecida a Cotrasinal / PIN non debería perder ningún
+ dato facendo esto (pero non está de máis ter un respaldo).\n\nEstá seguro de querer limpar a KeyStore?
+ En algúns casos limpar a KeyStore
+ pode axudar a resolver problemas. Só debería seguir si sabe o que fai!\n\nAviso:
+ Xa que o cifrado da base de datos está establecido a Android KeyStore perderá todas as súas contas.
+ Asegúrese de ter un respaldo!\n\nSeguro que quere limpar a KeyStore?Ningún
@@ -59,6 +92,10 @@
PINCredenciais do dispositivo
+
+ Android KeyStore
+ Contrasinal / PIN
+ Eliminar todas as contasRestablecer axustes
@@ -69,17 +106,24 @@
Tema negro
+ AgochadoPequenoPredefinidoMedianoGrande
+
+ Non separar
+ Despóis de dous caracteres
+ Despois de tres caracteres
+ Predefinido do sistema
- Contrasinal
- PIN
+ Inserir o novo contrasinal
+ Inserir o novo PINConfirmar contrasinalConfirmar PIN
- (sen cambios)
+ O contrasinal deber ter polo menos %1$d caracteres!
+ O PIN deber ter polo menos %1$d caracteres!
diff --git a/app/src/main/res/values-nl-rNL/strings_about.xml b/app/src/main/res/values-nl-rNL/strings_about.xml
index 6fab5265..2746a6ad 100644
--- a/app/src/main/res/values-nl-rNL/strings_about.xml
+++ b/app/src/main/res/values-nl-rNL/strings_about.xml
@@ -2,8 +2,7 @@
Over
-
-Een open-source verificatie met twee factoren App voor Android 4.4 +.
+ Open source twee staps authenticatie voor AndroidWijzigingenLicentie
@@ -13,20 +12,23 @@ Een open-source verificatie met twee factoren App voor Android 4.4 +. VersieAuteurs
- Hoofd auteur
+ Hoofdontwikkelaar
+ OntwikkelaarAuteur van de oorspronkelijke appOriginele App
+ WebsiteDoneerBijdragersVertalers
- Ondersteunende ontwikkeling
- Fout melden
+ Steun de App ontwikkeling
+ Fouten meldenVertalenMeld een bug of verzoek nieuwe functiesHelp andOTP te vertalenSpeciale functies
- Weet u zeker dat u de speciale functies gebruikers wilt inschakelen? De meeste van hen zijn atypische OTP-algoritmen en op verzoek toegevoegd. Ze zijn niet officieel ondersteund en kunnen komen met bepaalde beperkingen, lees (en begrijp) de pagina \"Special features\" in de Github wiki voordat je ze gebruikt.
+ Weet u zeker dat u de speciale functies wilt inschakelen? De meeste van hen zijn atypische OTP-algoritmen die op verzoek zijn toegevoegd. Ze zijn niet officieel ondersteund en kunnen komen met bepaalde beperkingen, lees (en begrijp) de pagina \"Special features\" in de Github wiki voordat je ze gebruikt.Speciale functies zijn ingeschakeldSpeciale functies zijn al ingeschakeld
+ Donatielink is gekopieerd
diff --git a/app/src/main/res/values-nl-rNL/strings_auth.xml b/app/src/main/res/values-nl-rNL/strings_auth.xml
index 233f4dd1..427ef912 100644
--- a/app/src/main/res/values-nl-rNL/strings_auth.xml
+++ b/app/src/main/res/values-nl-rNL/strings_auth.xml
@@ -6,9 +6,13 @@
WachtwoordPincode
- Voer je wachtwoord in om andOTP op te starten.
- Voer je pincode in om andOTP op te starten.
+ Gelieve verifiëren om andOTP te starten!
+ Bevestig de verificatie voor het genereren van de nieuwe versleutelingssleutel!
+
+ OntgrendelenStel een wachtwoord in bij de instellingen!Stel een PIN in bij de instellingen!
+ Verkeerd wachtwoord, probeer het opnieuw!
+ Verkeerd PIN, probeer het opnieuw!
diff --git a/app/src/main/res/values-nl-rNL/strings_backup.xml b/app/src/main/res/values-nl-rNL/strings_backup.xml
index 8ea1fd9a..2fd999fa 100644
--- a/app/src/main/res/values-nl-rNL/strings_backup.xml
+++ b/app/src/main/res/values-nl-rNL/strings_backup.xml
@@ -1,9 +1,9 @@
- Reservekopie
- Reservekopie in tekst zonder opmaak
- Versleutelde reservekopie
+ Reservekopieën
+ Reservekopieën (tekst zonder opmaak)
+ Versleutelde reservekopieënOpenPGP reservekopieReservekopie (tekst zonder opmaak)Reservekopie (versleuteld)
@@ -11,33 +11,31 @@
Herstellen (tekst zonder opmaak)Herstellen (versleuteld)Herstellen (OpenPGP)
- Replace existing entries
+ Vervang bestaande vermeldingenBack-up JSON bestand van alle accounts in tekst zonder opmaak
- Back-up van alle accounts in een JSON-bestand met wachtwoordbeveiliging
+ Maak een reservekopie van alle accounts in een JSON-bestand met wachtwoordbeveiligingMaak een reservekopie van alle accounts in een JSON-bestand met OpenPGP versleutelingHerstel accounts vanuit een JSON tekstbestandHerstel alle accounts vanuit een JSON-bestand met wachtwoordbeveiligingHerstel accounts vanuit een OpenPGP versleuteld JSON-bestand
- Het is nodig een wachtwoord in te stellen bij de instellingen voor het gebruik van versleutelde reservekopiën.
- Je dient een OpenPGP-provider te installeren en in te schakelen bij de instellingen om deze functie te gebruiken.
- Je dient een OpenPGP sleutel te selecteren bij de instellingen voordat je versleutelde reservekopiën kunt maken.
- If enabled all old entries are replaced when importing a
- backup and only the backup is present. If disabled the old entries and the backups content
- are merged.
+ U dient een wachtwoord in te stellen bij de instellingen voor het gebruik van versleutelde reservekopieën.
+ U dient een OpenPGP-provider te installeren en in te schakelen bij de instellingen om deze functie te gebruiken.
+ U dient een OpenPGP sleutel te selecteren bij de instellingen voordat je versleutelde reservekopieën kunt maken.
+ Indien ingeschakeld worden alle oude vermeldingen vervangen wanneer een reservekopie geïmporteerd wordt en alleen de reservekopie is aanwezig. Indien uitgeschakeld worden de oude vermeldingen en reservekopieën samengevoegd.Veiligheidswaarschuwing
- Wilt je echt de database exporteren als JSON-bestand zonder opmaak? Dit bestand bevat al uw geheime sleutels. Houdt het veilig!
+ Wilt u echt de database exporteren als JSON-bestand zonder opmaak? Dit bestand bevat al uw geheime sleutels. Houdt het veilig! Het maken van een reservekopiemap is misluktExporteren naar een extern opslagmedium was succesvolExporteren naar een extern opslagmedium is misluktImporteren uit externe opslag was succesvol
- Failed to save restored entries
- Decryption of the backup failed
- No entries found in imported data
+ Opslaan van herstelde vermeldingen mislukt
+ Ontsleutelen van de reservekopie is mislukt
+ Geen vermeldingen gevonden in geïmporteerde gegevensExterne opslag is momenteel niet toegankelijk
- Opslag rechten zijn niet gemachtigt
+ Geen machtiging tot de opslagruimte verleendOpenPGP fout: %sGeen geverifieerde digitale handtekening gedetecteerd
- Wachtwoord niet ingesteld, controleer uw instellingen
+ Wachtwoord niet ingesteld, controleer de instellingen
diff --git a/app/src/main/res/values-nl-rNL/strings_main.xml b/app/src/main/res/values-nl-rNL/strings_main.xml
index 4887b09d..52534dab 100644
--- a/app/src/main/res/values-nl-rNL/strings_main.xml
+++ b/app/src/main/res/values-nl-rNL/strings_main.xml
@@ -6,10 +6,10 @@
Details ingevenQR-code scannenBewaren
- Nieuwe label
- Je bent gewaarschuwd!
+ Nieuw label
+ InstellingenAlle labels
- Geen Labels
+ Geen labels%d s
@@ -24,6 +24,7 @@
EtiketAlgoritmeLabels
+ Geavanceerde optiesLabels tonenLabels verbergen
@@ -35,30 +36,48 @@
SorteerOngesorteerdEtiket
- Last used
+ Laatst gebruiktEtiket bewerken
- Change image
+ Afbeelding wijzigenLabels bewerkenVerwijderen
- Verificatie is mislukt, sluiten andOTP!
+ Authenticatie mislukt. Probeer opnieuw!
+ Verificatie is mislukt, andOTP wordt afgesloten!Gekopieerd naar klembord
- Deze item bestaat al
+ Dit item bestaat alOngeldige QR Code
+ Coderingssleutel niet geladenVerifiërenDetails ingevenVerwijderenHernoemen
- Beveiliging en back-ups
- Last used
+ Laatst gebruikt
+ Sleutelkast fout
+ Database encryptieVoer de referenties van uw apparaat in om te beginnen met andOTP.
- Weet je zeker dat je het account wil verwijderen?
- Om je accountgegevens veilig te houden werkt deze app alleen met versleutelde bestanden. Onderdelen van de gebruikte versleuteling wordt opgeslagen in het Android KeyStore-systeem. Het voordeel van deze aanpak is dat de sleutel is gescheiden van de gegevens van de apps en kan worden ondersteund door de hardware cryptografie (indien apparaat dit ondersteunt).
- Een nadeel is dat back-ups van de gegevens van de apps moeilijkheden zullen geven. Bij een 3th partij apps (zoals Titanium Back-up) gebruikt u alleen de back-up van de gegevensbestanden, niet de sleutel voor bestandscodering en dientengevolge zal deze back-up niet bruikbaar zijn.
- Gebruik alleen de interne back-up functies in de app voor je accounts! Iets anders zal leiden tot gegevens verlies.
- Dit bericht wordt niet opnieuw getoond.
- In order for andOTP to recognize which token was used last
- you have to have \"tap to reveal\" enabled or use the copy button.\n\nThis message will not
- be shown again.
+ Weet je zeker dat je account \"%1$s\" wil verwijderen?
+ 1. Android KeyStore
+ Wachtwoord / PIN
+ Om de veiligheid van uw accounts te garanderen
+ slaat deze app ze alleen op in versleutelde bestanden gebruikmakend van één van de volgende twee methodes:
+ KeyStore is een systeemcomponent van Android voor het veilig opslaan van cryptografische sleutels.
+ Het voordeel van deze aanpak is dat de sleutels gescheiden van bestanden staan opgeslagen en
+ dat ze kunnen worden ondersteund door hardwarecryptografie (als de hardware dit ondersteunt).
+ Echter, omdat de sleutels niet met de apps zijn opgeslagen werken externe back-up apps (zoals
+ Titanium) hiermee niet. Als u deze optie kiest dient u gebruik te maken van de interne
+ back-upfunctie van andOTP.
+ Deze methode zal uw gegevens versleutelen met een sleutel gegenereerd op basis van een
+ wachtwoord of pincode. Het belangrijkste voordeel hiervan is dat dit werkt met externe
+ back-up oplossingen (zoals Titanium). Echter moet u uw gegevens ingeven iedere keer
+ als u andOTP opstart.
+ Standaard zal Android KeyStore worden gebruikt.
+ Het is echter bekend dat dit problemen veroorzaakt op bepaalde aangepaste ROMs (alsmede
+ een paar standaard ROMs). U kunt de versleuteling aanpassing in de instellingen door te
+ klikken op de onderstaande knop.
+ Om andOTP te laten herkennen welke token als laatste was gebruikt
+ dien je \"tik om te onthullen\" in te schakelen of gebruik de kopie button.\n\n
+ Dit bericht wordt niet opnieuw getoond.
+ Fout bij het laden van de coderingssleutel van de sleutelbewaarplaats. Alle vermeldingen gaan verloren. \n\nOm nog steeds andOTP te kunnen gebruiken kun je naar de instellingen gaan en de Database codering omschakelen naar wachtwoord / PIN.
diff --git a/app/src/main/res/values-nl-rNL/strings_settings.xml b/app/src/main/res/values-nl-rNL/strings_settings.xml
index 58e45689..f435dc90 100644
--- a/app/src/main/res/values-nl-rNL/strings_settings.xml
+++ b/app/src/main/res/values-nl-rNL/strings_settings.xml
@@ -7,54 +7,79 @@
GebruikersinterfaceReservekopie
- Tik om te onthullen
- Timeout for tap to reveal
+ Tik om te tonen
+ Tijdslimiet voor tik om te onthullenAuthenticatieWachtwoordPIN
- Paniek Trigger
+ Database encryptie
+ PanieksignaalTaalThema
- Label lettergrootte
- Scroll etiket
- Show thumbnails
- Thumbnail size
+ Lettergrootte vermeldingen
+ Scroll vermeldingen
+ Miniatuurgrootte
+ Verdeel Token met spatieVraag naar de bestandsnaam
- Archief map
- Wachtwoord reserve kopie
- Selecteer OpenPGP provider
- Select OpenPGP sleutel
- Versleutelde reserve kopieën verifiëren
- Versleutelde reserve kopie verifiëren
- Enable special features
- Enable screenshots
+ Map reservekopie
+ Wachtwoord reservekopie
+ Selecteer OpenPGP aanbieder
+ Selecteer OpenPGP sleutel
+ Versleutelde reservekopieën ondertekenen
+ Versleutelde reservekopieën verifiëren
+ Speciale functies inschakelen
+ Schermafbeeldingen toestaan
+ Sleutelopslag leegmaken
- De OTP tokens standaard verbergen, maak ze handmatig zichtbaar
- Select the time (in sec) after which to hide
- revealed entries again
- Beslissen wat er gebeurt wanneer een Paniek Trigger wordt ontvangen
- Scroll overlangs de etiketten in plaats van ze af te korten
- Vraag naar de bestandsnaam elke keer een reservekopie is gemaakt of wordt teruggezet
- Map voor de reservekopieën (bestandsnamen zullen afhangen van het type archief)
- Stel het wachtwoord in dat wordt gebruikt voor het versleutelen van de reserve kopie
- Elk versleuteld reservekopie is aanvullend ondertekend met je sleutel (wachtwoord vereist)
+ De OTP tokens standaard verbergen; maak ze handmatig zichtbaar
+ Selecteer de tijd (in seconden) waarna de vermeldingen weer verborgen worden
+ Beslis wat er gebeurt wanneer er een panieksignaal wordt ontvangen
+ Vermeldingen horizontaal scrollen in plaats van ze af te korten
+ Vraag naar de bestandsnaam elke keer als een reservekopie is gemaakt of wordt teruggezet
+ Map voor de reservekopieën (bestandsnamen hangen af van het type archief)
+ Stel het wachtwoord in dat wordt gebruikt voor het versleutelen van de reservekopieën
+ Elke versleutelde reservekopie is aanvullend ondertekend met uw sleutel (wachtwoord vereist)Gecodeerde reservekopieën worden alleen geïmporteerd als ze zijn ondertekend met een geldige sleutel
- Allow to take screenshots of the main screen
- (disabled by default for security reasons)
- Uncheck to disable the special features again
+ Deselecteer om speciale functies weer uit te schakelen
+ Schermafbeeldingen toestaan op het hoofdscherm (standaard uitgeschakeld om veiligheidsredenen)
+ Verwijderen de encryptie sleutel uit de sleutelopslagDeze functie vereist ten minste Android 5.0 (Lollipop)
- Deze functie vereist een beveiligd slotscherm (instellingen -> Beveiliging -> Schermlock)
+ Deze functie vereist een beveiligd vergrendelingsscherm (Instellingen -> Beveiliging -> Schermvergrendeling)
+ Een leeg wachtwoord is niet toegestaan, stel de verificatie in op \"Geen\" om het uit te schakelen!
+ Bezig met de database encryptie te proberen wijzigen, even geduld aub!
+ Wijzigen van de database encryptie is geslaagd!
+ Mislukt om de database versleuteling te veranderen en in oorspronkelijke staat terug te vallen!
+ Het maken van een interne back-up mislukte, afbreken!
+ Het ophalen van de encryptiesleutel mislukte, afbreken!
+ Authenticatie mislukt!
+ Het bijwerken van je wachtwoord / PIN naar de nieuwe codering mislukte, herstel het handmatig bij de instellingen!
+ Fout
+ Sleutelopslag leegmaken?
+ U kunt alleen een wachtwoord of pincode gebruiken zolang de database encryptie is ingesteld op \"Wachtwoord / PIN\"!
+ U moet eerst de authenticatie instellen op \"Wachtwoord\" of \"PIN\"!
+ Je moet een wachtwoord of pincode instellen voor het wijzigen van de versleuteiing!
+ In sommige gevallen kan het leegmaken van de sleutelopslag problemen verhelpen. Ga enkel verder als u weet waar u mee bezig bent!\n\n
+Doordat de Database encryptie is ingesteld op Wachtwoord / PIN zou u hiermee geen gegevens mogen verliezen (maar een backup nemen kan nooit kwaad).\n\n
+Bent u heel zeker dat u de sleutelopslag wil leegmaken?
+ In sommige gevallen kan het leegmaken van de sleutelopslag problemen verhelpen. Ga enkel verder als u weet waar u mee bezig bent!\n\n
+Waarschuwing:
+Doordat de Database encryptie is ingesteld op Android sleutelopslag zal u al uw accounts verliezen. Wees dus zeker dat u een backup hebt!\n\n
+Bent u heel zeker dat u de sleutelopslag wil leegmaken?GeenWachtwoordPIN
- Apparaat referenties
+ Zelfde als apparaat
+
+
+ Android Sleutelopslag
+ Wachtwoord / PINAlle accounts verwijderen
- App instellingen resetten
+ Appinstellingen terugzettenLicht thema
@@ -62,17 +87,24 @@
Zwart thema
- Small
- Default
- Medium
- Large
+ Verborgen
+ Klein
+ Standaard
+ Normaal
+ Groot
+
+
+ Niet splitsen
+ Na twee karakters
+ Na drie karakters
- Systeem standaard
+ Systeemstandaard
- Wachtwoord
- PIN
+ Nieuw wachtwoord invoeren
+ Nieuwe PIN invoerenBevestig wachtwoord
- PIN bevestigen
- (ongewijzigd)
+ Bevestig PIN
+ Het wachtwoord moet minstens %1$d karakters bevatten!
+ De pincode moet minstens %1$d cijfers bevatten!
diff --git a/app/src/main/res/values-pl-rPL/strings_main.xml b/app/src/main/res/values-pl-rPL/strings_main.xml
index a53c7f85..5fdbaaec 100644
--- a/app/src/main/res/values-pl-rPL/strings_main.xml
+++ b/app/src/main/res/values-pl-rPL/strings_main.xml
@@ -53,7 +53,6 @@
Bezpieczeństwo i kopieOstatnio używanePodaj swoje dane uwierzytelniające, aby uruchomić andOTP.
- Czy na pewno usunąć to konto?W celu zwiększenia bezpieczeństwa, wszystkie informacje dotyczące kont są zaszyfrowane. Część klucza szyfrującego przechowywana jest w systemie Android. Zaletą takiego rozwiązania jest oddzielenie klucza od danych i wsparcie sprzętowego szyfrowania (jeżeli Twój sprzęt to wspiera).Używanie aplikacji typu Titanium Backup jest bezużyteczne, ponieważ aplikacja szyfruje swoje dane.Proszę używaj Tylko wbudowanych funkcji robienia kopii zapasowej kont. Wszystkie inne metody nie są wspierane i mogą prowadzić do utraty danych.
diff --git a/app/src/main/res/values-ru-rRU/strings_about.xml b/app/src/main/res/values-ru-rRU/strings_about.xml
index 6edf2f92..57804db1 100644
--- a/app/src/main/res/values-ru-rRU/strings_about.xml
+++ b/app/src/main/res/values-ru-rRU/strings_about.xml
@@ -2,8 +2,7 @@
О программе
-
-Приложение двухфакторной аутентификации с открытым исходным кодом для Android 4.4 и выше.
+ Двухфакторная аутентификация для Android с открытым исходным кодомИстория измененийЛицензия
@@ -13,9 +12,11 @@
ВерсияАвторы
- Основной автор
+ Основной разработчик
+ РазработчикАвтор оригинального приложенияОригинальное приложение
+ СайтПожертвоватьУчастники проектаПереводчики
@@ -26,7 +27,8 @@
Сообщить об ошибках или запросить новые функцииПомогите перевести andOTP на ваш языкОсобые функции
- Вы уверены, что вы хотите включить особые функции? Большинство из них - нестандартные алгоритмы OTP, которые были добавлены по особым просьбам. Они официально не поддерживается и могут быть с некоторыми ограничениями, пожалуйста, прочитайте (и поймите) страницы «Особые функции» на Github wiki, чтобы узнать о них подробнее перед их использованием.
+ Вы уверены, что Вы хотите включить особые функции? Большинство из них - нестандартные алгоритмы OTP, которые были добавлены по особым просьбам. Они официально не поддерживается и могут быть с некоторыми ограничениями, пожалуйста, прочитайте (и поймите) страницы «Особые функции» на Github wiki, чтобы узнать о них подробнее перед их использованием.Особые функции включеныОсобые функции уже включены
+ Ссылка для пожертвований скопирована в буфер обмена
diff --git a/app/src/main/res/values-ru-rRU/strings_auth.xml b/app/src/main/res/values-ru-rRU/strings_auth.xml
index 347d3747..9c8522ef 100644
--- a/app/src/main/res/values-ru-rRU/strings_auth.xml
+++ b/app/src/main/res/values-ru-rRU/strings_auth.xml
@@ -1,14 +1,18 @@
- Аутентификация
+ Проверка подлинностиПарольPIN-код
- Пожалуйста, введите ваш пароль для запуска andOTP.
- Пожалуйста, введите Ваш ПИН-код для запуска andOTP.
+ Пожалуйста, пройдите аутентификацию для запуска andOTP!
+ Пожалуйста, подтвердите Вашу аутентификацию для генерации нового ключа шифрования!
+
+ РазблокироватьПожалуйста, установите пароль в настройках!
- Пожалуйста, установите ПИН-код в настройках!
+ Пожалуйста, установите PIN-код в настройках!
+ Неверный пароль, пожалуйста, попробуйте еще раз!
+ Неверный PIN-код, пожалуйста, попробуйте еще раз!
diff --git a/app/src/main/res/values-ru-rRU/strings_backup.xml b/app/src/main/res/values-ru-rRU/strings_backup.xml
index 71048793..9e17ad86 100644
--- a/app/src/main/res/values-ru-rRU/strings_backup.xml
+++ b/app/src/main/res/values-ru-rRU/strings_backup.xml
@@ -5,7 +5,7 @@
Текстовые резервные копииЗашифрованные резервные копииРезервные копии с OpenPGP
- Резервная копия (без шифрования)
+ Резервная копия (текстовый документ)Резервная копия (с шифрованием)Резервная копия (OpenPGP)Восстановление (из текстового файла)
@@ -18,13 +18,13 @@
Восстановление учетных записей из текстового файла JSONВосстановление учетных записей из защищённого паролем файла JSONВосстановление учетных записей из зашифрованного OpenPGP файла JSON
- Для создания зашифрованных резервных копий вам нужно установить пароль в Настройках.
- Для использования этой функции вам нужно выбрать и установить поставщика OpenPGP.
+ Для создания зашифрованных резервных копий Вам нужно установить пароль в Настройках.
+ Для использования этой функции Вам нужно выбрать и установить поставщика OpenPGP в настройках приложения. Вам нужно выбрать ключ OpenPGP в Настройках, прежде чем создавать зашифрованные резервные копии.
- Если включено, все старые записи заменяются при импорте резервной копии и остается только резервная копия. Если отключено, старые записи и содержимое резервной копии объединяются.
+ Если включено, все старые записи заменяются при импорте резервной копии и остается только резервная копия. Если отключено, старые записи и содержимое резервной копии объединяются.Предупреждение безопасности
- Вы действительно хотите экспортировать базу данных как незашифрованный текстовый JSON файл? Этот файл содержит все ваши секретные ключи, пожалуйста, надежно сохраните его!
+ Вы действительно хотите экспортировать базу данных как текстовый JSON файл? Этот файл содержит все Ваши секретные ключи, пожалуйста, надежно сохраните его! Не удалось создать каталог для резервной копииЭкспорт на внешний носитель выполнен успешно
diff --git a/app/src/main/res/values-ru-rRU/strings_main.xml b/app/src/main/res/values-ru-rRU/strings_main.xml
index 7721b9ce..1b98aaff 100644
--- a/app/src/main/res/values-ru-rRU/strings_main.xml
+++ b/app/src/main/res/values-ru-rRU/strings_main.xml
@@ -7,7 +7,7 @@
Сканировать QR-кодСохранитьНовый тег
- Вас предупредили!
+ НастройкиВсе тегиНет тегов
@@ -24,6 +24,7 @@
ЯрлыкАлгоритмТеги
+ Дополнительные настройкиПоказать тегиСкрыть теги
@@ -41,22 +42,30 @@
Изменить тегиУбрать
+ Ошибка аутентификации! Пожалуйста, попробуйте снова!Ошибка аутентификации, andOTP закрывается!Скопировано в буфер обменаЭта запись уже существуетНедопустимый QR-код
+ Ключ шифрования не загружен
- Аутентификация
+ Проверка подлинностиВведите деталиУбратьПереименовать
- Безопасность и резервное копированиеПоследнее использование
+ Ошибка хранилища ключей
+ Шифрование базы данныхПожалуйста, подтвердите учетные данные устройства для открытия andOTP.
- Вы уверены, что хотите удалить эту учетную запись?
- Для обеспечения безопасности ваших данных это приложение хранит их только в зашифрованном виде. Часть этого ключа шифрования хранится в системе Android KeyStore. Преимущество этого подхода в том, что ключ хранится отдельно от данных приложения и может быть защищён аппаратным шифрованием (если ваше устройство его поддерживает).
- С другой стороны, это делает резервное копирование данных приложения немного более сложным. Если вы используете сторонние приложения (вроде Titanium Backup) вы только лишь скопируете сами файлы, но не ключ шифрования, в результате чего резервная копия окажется нерабочей.
- Пожалуйста, используйте только функцию резервного копирования встроенную в это приложение! Прочие способы ПРИВЕДУТ к потере данных.
- Это сообщение повторно отображаться не будет.
+ Вы уверены, что хотите удалить учётную запись \"%1$s\"?
+ 1. Хранилище ключей Android
+ 2. Пароль / PIN-код
+ Для защиты ваших аккаунтов это приложение хранит их в зашифрованном виде используя один из двух этих способов:
+ Хранилище ключей это часть системы Android, предназначенная для безопасного хранения ключей шифрования. Преимущество этого способа в том, что ключи хранятся отдельно от данных и защищены аппаратным шифрованием (если Ваше устройство поддерживает его). Так как ключи не хранятся вместе с данными, то Вы не сможете использовать сторонние решения для создания резервных копий (например, Titanium Backup). При использовании этого метода Вы сможете использовать только резервные копии, созданные andOTP.
+ Этот способ зашифрует Ваши данные ключом, созданным на основе пароля или PIN-кода. Основное преимущество этого способа - Вы сможете использовать сторонние системы резервного копирования (например, Titanium Backup). При этом Вам будет необходимо выполнять аутентификацию при каждом запуске andOTP.
+ По умолчанию будет использовано Хранилище ключей Android, однако оно может не работать на некоторых модифицированных и официальных прошивках. Вы можете изменить способ шифрования в Настройках нажав на кнопку ниже.Чтобы andOTP знал время последнего использования токена необходимо включить настройку \"Нажмите, чтобы показать\" или копировать токен.\n\nЭто сообщение больше не будет показано.
+ Ошибка загрузки ключа шифрования из хранилища ключей.
+ Все добавленные записи будут утеряны.\n\nЧтобы использовать andOTP дальше Вы можете
+ перейти в Настройки и переключить Шифрование базы данных на Пароль / PIN-код.
diff --git a/app/src/main/res/values-ru-rRU/strings_settings.xml b/app/src/main/res/values-ru-rRU/strings_settings.xml
index d3967039..dc1302b9 100644
--- a/app/src/main/res/values-ru-rRU/strings_settings.xml
+++ b/app/src/main/res/values-ru-rRU/strings_settings.xml
@@ -9,16 +9,17 @@
Нажмите, чтобы показатьТаймаут скрытия токена
- Авторизация
+ АутентификацияПарольPIN-код
+ Шифрование базы данныхPanic TriggerЯзыкТема оформленияРазмер шрифта для ярлыкаПрокрутка ярлыка
- Показывать изображенияРазмер изображения
+ Добавлять пробел в токенСпрашивать об имени файлаКаталог резервной копииПароль для резервной копии
@@ -28,6 +29,7 @@
Проверять зашифрованные резервные копииВключить специальные возможностиРазрешить скриншоты
+ Очистить хранилище ключейСкрыть OTP-токены по-умолчанию, требуя их показ вручнуюВыберите время (в секундах) после которого автоматически скрывать показанные токены
@@ -36,13 +38,29 @@
Спрашивать об имени файла при создании резервной копии или восстановленииКаталог для резервных копий (имена файлов будут зависеть от типа резервного копирования)Установить пароль для шифрования резервных копий
- Все зашифрованные резервные копии дополнительно подписываются вашим ключом (требуется пароль)
+ Все зашифрованные резервные копии дополнительно подписываются Вашим ключом (требуется пароль)Зашифрованные резервные копии можно импортировать только если они подписаны действительным ключом
- Разрешить снятие скриншотов главного экрана (из соображений безопасности по умолчанию выключено)Снимите флажок для отключения специальных возможностей
+ Разрешить снятие скриншотов главного экрана (из соображений безопасности по умолчанию выключено)
+ Удалить ключ шифрования из хранилища ключейЭта функция поддерживается с версии Android 5.0 (Lollipop)Для этой функции требуется настроить безопасную блокировку экрана (Настройки -> Безопасность -> Блокировка экрана)
+ Пустой пароль запрещён, для отключения пароля выключите Аутентификацию!
+ Изменение шифрование базы данных, пожалуйста, подождите!
+ Шифрование базы данных успешно изменено!
+ Не удалось изменить шифрование базы данных, откат в исходное состояние!
+ Не удалось создать внутреннюю резервную копию, прерывание!
+ Не удалось получить ключ шифрования, прерывание!
+ Ошибка аутентификации!
+ Не удалось автоматически обновить Ваш пароль / PIN-код к новому шифрованию, пожалуйста сбросьте его вручную в настройках!
+ Ошибка
+ Очистить хранилище ключей?
+ Вы можете использовать только пароль или PIN-код, если для шифрования базы данных установлено значение «Пароль / PIN-код»!
+ Сначала необходимо задать проверку аутентификации «Пароль» или «PIN-код»!
+ Cначала необходимо задать пароль или PIN-код перед изменением шифрования!
+ В некоторых случаях, очистка хранилища ключей может помочь решить проблемы. Приступайте, только если Вы знаете, что делаете!\n\nПоскольку база данных зашифрована с помощью пароля / PIN-кода вы не потеряете данные (в любом случае, никогда не помешает иметь резервную копию).\n\nВы уверены, что вы действительно хотите очистить хранилище ключей?
+ В некоторых случаях, очистка хранилища ключей может помочь решить проблемы. Приступайте, только если Вы знаете, что делаете!\n\nВнимание: поскольку база данных зашифрована с помощью хранилища ключей Android Вы потеряете все Ваши аккаунты. Создайте резервную копию!\n\nВы уверены, что Вы действительно хотите очистить хранилище ключей?Нет
@@ -50,6 +68,10 @@
PIN-кодУчетные данные устройства
+
+ Хранилище ключей Android
+ Пароль / PIN-код
+ Удалить все аккаунтыСброс параметров приложения
@@ -60,17 +82,24 @@
Чёрная тема
+ СкрытьМаленькийПо умолчаниюСреднийБольшой
+
+ Не добавлять
+ После 2 символов
+ После 3 символов
+ Настройки по умолчанию
- Пароль
- PIN-код
- Подтвердить пароль
- Подтвердите ПИН-код
- (без изменений)
+ Введите новый пароль
+ Введите новый PIN-код
+ Подтвердите пароль
+ Подтвердите PIN-код
+ Пароль должен содержать не менее %1$d символов!
+ PIN-код должен содержать не менее %1$d цифр!
diff --git a/app/src/main/res/values-zh-rCN/strings_about.xml b/app/src/main/res/values-zh-rCN/strings_about.xml
index 39f89202..c38a57d3 100644
--- a/app/src/main/res/values-zh-rCN/strings_about.xml
+++ b/app/src/main/res/values-zh-rCN/strings_about.xml
@@ -2,9 +2,7 @@
关于
-
-一个开源的两步验证应用(支持 Android 4.4 以上)。
-
+ 面向 Android 的开源两步认证更新日志许可协议
@@ -14,9 +12,11 @@
版本作者
- 主要作者
+ 主要开发者
+ 开发者原应用作者原应用
+ 网站捐赠贡献者翻译者
@@ -30,4 +30,5 @@
确定要启用实验性功能吗?其中大多数是非标准 OTP 算法, 是在特殊要求下实现的。它们是 不受官方支持的,可能带有 某些限制, 请阅读(并了解) Github wiki 中的 \"实验性功能\" 页, 以便在使用它们之前了解更多信息。启用实验性功能已启用实验性功能
+ 捐赠链接已复制到剪贴板
diff --git a/app/src/main/res/values-zh-rCN/strings_auth.xml b/app/src/main/res/values-zh-rCN/strings_auth.xml
index 71ac2f4f..1b0b4097 100644
--- a/app/src/main/res/values-zh-rCN/strings_auth.xml
+++ b/app/src/main/res/values-zh-rCN/strings_auth.xml
@@ -6,9 +6,13 @@
密码PIN 码
- 请输入您的密码以启动 andOTP。
- 请输入您的 PIN 启动 andOTP。
+ 请验证启动 andOTP !
+ 请确认您的身份验证,以生成新的加密密钥!
+
+ 解锁请在设置中设置密码!请在设置中设置一个 PIN 码!
+ 密码错误,请重试!
+ PIN 码错误,请重试!
diff --git a/app/src/main/res/values-zh-rCN/strings_backup.xml b/app/src/main/res/values-zh-rCN/strings_backup.xml
index ccbbdab8..31f03b84 100644
--- a/app/src/main/res/values-zh-rCN/strings_backup.xml
+++ b/app/src/main/res/values-zh-rCN/strings_backup.xml
@@ -12,9 +12,9 @@
还原 (已加密)还原 (OpenPGP)替换现有条目
- 备份纯文本 JSON 文件中的所有帐户
- 备份受密码保护的 JSON 文件中的所有帐户
- 备份 OpenPGP 加密的 JSON 文件中的所有帐户
+ 备份所有帐户到纯文本 JSON 文件中。
+ 备份所有帐户到受密码保护的 JSON 文件中。
+ 备份所有帐户到 OpenPGP 加密的 JSON 文件中。从纯文本 JSON 文件还原帐户从受密码保护的 JSON 文件还原帐户从 OpenPGP 加密的 JSON 文件还原帐户
diff --git a/app/src/main/res/values-zh-rCN/strings_main.xml b/app/src/main/res/values-zh-rCN/strings_main.xml
index 3e9ef654..4e71c663 100644
--- a/app/src/main/res/values-zh-rCN/strings_main.xml
+++ b/app/src/main/res/values-zh-rCN/strings_main.xml
@@ -7,7 +7,7 @@
扫描二维码保存新建标签
- 你已被警告!
+ 设置所有标签无标签
@@ -24,6 +24,7 @@
标签算法标签
+ 高级选项显示标签隐藏标签
@@ -41,22 +42,28 @@
编辑标签移除
- 身份验证失败,andOTP 正在关闭!
+ 认证失败,请重试!
+ 验证失败,andOTP 正在关闭!已复制到剪贴板该项已存在无效二维码
+ 未加载加密密钥认证输入详细信息移除重命名
- 安全和备份上一次使用
+ KeyStore 错误
+ 数据库加密请输入您的设备凭据以启动 andOTP。
- 您确认想要删除您的账户?
- 为使您的帐户信息安全,此应用程序只存储加密内容。用于此的加密密钥的一部分存储在 Android 密钥库系统中。这种方法的优点是, 密钥与应用程序数据保持独立,并且可以通过硬件加密 (如果您的设备支持此项) 来支持。
- 这样做的缺点是,这使得应用数据的备份有点困难。如果您使用第三方应用 (如钛备份),则只能备份到数据文件,而不是加密密钥,因此这样的备份将变得无用。
- 请只使用应用程序提供的内部备份功能来备份您的帐户!其他任何备份都将导致数据丢失。
- 此消息将不再显示。
+ 您确定要删除账户“%1$s”吗?
+ 1. Android KeyStore
+ 2. 密码 / PIN码
+ 为了确保帐户的安全性,此应用只存储到加密的数据文件中,用以下两种方法之一加密:
+ KeyStore 是 Android 系统的组成部分, 用来安全地储存密钥。这种方法的优点是,密钥和数据文件分开储存,并且支持硬件加密(需硬件支持)。但是,由于密钥不与应用程序数据一起储存,这种方法会妨碍外部备份方案(如钛备份)工作。如果选择此方法,您将不得不依赖 andOTP 提供的内部备份功能。
+ 此方法将用密码或 PIN 码生成的密钥对数据加密。好处是支持外部备份方案 (如钛备份)。但是,您必须在每次启动 andOTP 时输入您的凭据。
+ 默认下使用 Android KeyStore,然而已知某些第三方定制 ROM 会有点问题。您可以点下面的按钮来更改加密设置。为了使 andOTP 能够识别最后使用的标记,您必须启用 \"点击显示\" 或使用 \"复制\" 按钮. \n\n 此消息将不会再次显示。
+ 无法从 KeyStore 加载密钥。 添加的任何条目都将丢失. \n\n为继续使用 andOTP 您可以转到设置并将 数据库加密 切换到 密码 / PIN码。
diff --git a/app/src/main/res/values-zh-rCN/strings_settings.xml b/app/src/main/res/values-zh-rCN/strings_settings.xml
index cf0ebd75..5f490f29 100644
--- a/app/src/main/res/values-zh-rCN/strings_settings.xml
+++ b/app/src/main/res/values-zh-rCN/strings_settings.xml
@@ -12,13 +12,14 @@
身份验证密码PIN 码
+ 数据库加密紧急触发语言主题标签字体大小滚动标签
- 显示缩略图缩略图大小
+ 用空格做分割符询问文件名备份目录备份密码
@@ -28,6 +29,7 @@
验证加密的备份启用实验性功能启用截屏
+ 清除 KeyStore默认情况下隐藏 OTP 令牌,需要手动显示它们。选择再次隐藏显示条目的时间 (秒)
@@ -38,11 +40,27 @@
设置用于加密备份的密码每个加密的备份都用您的密钥进行了签名 (需要密码)只有在使用有效密钥签名时才会导入加密备份
- 允许使用首屏截屏 (默认因安全原因禁用)取消选中再次禁用实验性功能
+ 允许使用首屏截屏 (默认因安全原因禁用)
+ 从 KeyStore 中删除密钥此功能需要 Android 5.0 以上才能工作此功能需要设置安全锁定屏幕 (设置 -> 安全 -> 锁屏)
+ 不允许用空密码,请将身份验证设置为“无”以禁用它!
+ 尝试更改数据库加密,请稍候!
+ 已成功更改数据库加密!
+ 无法更改数据库加密,回退到原始状态!
+ 未能创建内部备份,正在中止!
+ 未能获取密钥,正在中止!
+ 身份验证失败!
+ 无法静默升级您的 密码 / PIN码 到新的加密,请在设置手动复位!
+ 错误
+ 清除 KeyStore?
+ 只要将数据库加密设置为“密码 / PIN 码”, 即可以使用!
+ 您首先需要将身份验证设置为“密码”或“PIN码”!
+ 您首先需要设置密码或PIN码,然后再更改加密!
+ 在某些情况下,清除 KeyStore 可以帮助解决问题。继续前,您应明确知道自己在做什么!\n\n由于 数据库加密 设置为 密码 / PIN 码 这样做您应该不会丢失任何数据(但无论如何,这不会损害您的备份)。\n\n您是否确实要清除 KeyStore?
+ 在某些情况下,清除 KeyStore 可以帮助解决问题。继续前,您应明确知道自己在做什么!\n\n警告:由于 数据库加密 设置为 Android KeyStore 您会丢失所有账户。请确保您有备份!\n\n您是否确实要清除 KeyStore?无
@@ -50,6 +68,10 @@
PIN 码设备凭据
+
+ Android KeyStore
+ 密码 / PIN码
+ 清除所有帐户重置设置
@@ -60,17 +82,24 @@
黑色主题
+ 隐藏较小默认中等较大
+
+ 不分割
+ 在两个字符之后
+ 在三个字符之后
+ 系统默认
- 密码
- PIN 码
+ 输入新密码
+ 输入新 PIN 码确认密码确认PIN码
- (未更改)
+ 密码至少需要 %1$d 个字符!
+ PIN 码至少需要 %1$d 个字符!
diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml
index cd1d3ac9..1a4af210 100644
--- a/app/src/main/res/values/settings.xml
+++ b/app/src/main/res/values/settings.xml
@@ -16,13 +16,15 @@
pref_encryptionpref_panic
- pref_lang
+ pref_lang
+ pref_localepref_themepref_label_size_sppref_label_scrollpref_thumbnail_sizepref_split_group_size
+ pref_backup_append_date_timepref_backup_askpref_backup_directorypref_backup_password
@@ -47,7 +49,7 @@
30keystore
- system
+ systemlight1846dp
@@ -76,18 +78,19 @@
settings
-
+ system
- en
- cs
- de
- es
- fr
- gl
- nl
- pl
- ru
- zh
+ ca_ES
+ cs_CZ
+ de_DE
+ en_US
+ es_ES
+ fr_FR
+ gl_ES
+ nl_NL
+ pl_PL
+ ru_RU
+ zh_CN
@@ -112,9 +115,10 @@
@string/settings_lang_sys_default
- English
+ CatalàČeštinaDeutsch
+ EnglishEspañolFrançaisGalego
diff --git a/app/src/main/res/values/strings_about.xml b/app/src/main/res/values/strings_about.xml
index bcae247f..150755a2 100644
--- a/app/src/main/res/values/strings_about.xml
+++ b/app/src/main/res/values/strings_about.xml
@@ -2,9 +2,7 @@
About
-
- An open-source two-factor authentication App for Android 4.4+.
-
+ Open source two-factor authentication for AndroidChangelog
@@ -17,7 +15,7 @@
Authors
- Main author
+ Main developerDeveloperAuthor of the original appOriginal App
@@ -49,4 +47,5 @@
wiki to learn more before using them.
Special features enabledSpecial features already enabled
+ Donation link copied to clipboard
diff --git a/app/src/main/res/values/strings_settings.xml b/app/src/main/res/values/strings_settings.xml
index b32fc566..f5a8f77b 100644
--- a/app/src/main/res/values/strings_settings.xml
+++ b/app/src/main/res/values/strings_settings.xml
@@ -23,6 +23,7 @@
Thumbnail sizeSplit Token with space
+ Append date to filenameAsk for filenameBackup directoryBackup password
@@ -44,6 +45,9 @@
Scroll overlong labels instead of truncating them
+
+ Append the current date and time to the suggested
+ backup filenameAsk for the filename every time a backup is created or
restoredDirectory for the backups (filenames will depend
@@ -75,14 +79,14 @@
Successfully changed the database
encryption!Failed to change database encryption,
- restored database from internal backup!
+ falling back to original state!Failed to create an internal
backup, aborting!Failed to get the encryption key, aborting!
- Authentication failed, aborting!
+ Authentication failed!Failed to silently upgrade your password / PIN
- to the new encryption, please manually reset it in the settings!
+ to the new encryption, please manually reset it in the Settings!
ErrorClear the KeyStore?
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 45b9bdbd..e59feb08 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -48,12 +48,12 @@
android:title="@string/settings_category_title_ui">
+ android:entryValues="@array/settings_values_locale"
+ android:defaultValue="@string/settings_default_locale" />
+
+
+
+
+