Compare commits

..
11 Commits
Author SHA1 Message Date
Alexander Bakker dbedc9d1d3 Release v1.1.4 2020-01-22 20:42:22 +01:00
Michael SchättgenandGitHub 3bdcc25ebe Merge pull request #298 from alexbakker/saf-json
Append ".json" extension to export filenames
2020-01-22 00:40:03 -08:00
Alexander Bakker d0108e9859 Append ".json" extension to export filenames
Apparently not all SAF providers append a file extension based on the specified
MIME type.
2020-01-21 09:34:06 +01:00
Alexander Bakker 025c89d78c Release v1.1.3 2020-01-20 21:36:15 +01:00
Alexander BakkerandGitHub c52e60b410 Merge pull request #288 from michaelschattgen/set-locale
Fix setting locale on 7.0
2020-01-20 21:35:04 +01:00
Michael Schättgen 3cc644193f Update languages and gitignore 2020-01-20 21:34:20 +01:00
Michael Schättgen 8020792024 Fix setting locale on 7.0 2020-01-20 21:01:17 +01:00
Michael SchättgenandGitHub 837a27f9d7 Merge pull request #293 from alexbakker/password-reminder
Remind users who use biometrics to enter their password periodically
2020-01-20 11:56:49 -08:00
Michael SchättgenandGitHub 5c71f6254b Merge pull request #296 from alexbakker/fix-295
Fix #295
2020-01-20 11:56:32 -08:00
Alexander Bakker bbea6c2ae4 Fix #295 2020-01-19 23:00:03 +01:00
Alexander Bakker fa799e9542 Remind users who use biometrics to enter their password periodically
Instead of showing the reminder after x unlocks, I decided to show the reminder
2 weeks after the vault was last unlocked with the password. Let me know if you
agree with that.

![](https://alexbakker.me/u/115z6be7go.png)
2020-01-19 15:53:04 +01:00
19 changed files with 283 additions and 110 deletions
+1
View File
@@ -39,3 +39,4 @@ captures/
# Keystore files
*.jks
crowdin.properties
+2 -2
View File
@@ -19,8 +19,8 @@ android {
applicationId "com.beemdevelopment.aegis"
minSdkVersion 19
targetSdkVersion 29
versionCode 26
versionName "1.1.2"
versionCode 28
versionName "1.1.4"
buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\""
buildConfigField "String", "GIT_BRANCH", "\"${getGitBranch()}\""
}
+14
View File
@@ -31,6 +31,20 @@
</head>
<body>
<div></div>
<h3>Version 1.1.4</h3>
<h4>Fixes</h4>
<ul>
<li>The export filename was missing the ".json" extension in some cases</li>
</ul>
<h3>Version 1.1.3</h3>
<h4>New</h4>
<ul>
<li>Password reminder for users who use biometric unlock</li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Tokens would not refresh in some rare cases</li>
</ul>
<h3>Version 1.1.2</h3>
<h4>New</h4>
<ul>
@@ -6,13 +6,19 @@ import android.content.res.Resources;
import android.os.Build;
import android.preference.PreferenceManager;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
public class Preferences {
private SharedPreferences _prefs;
public Preferences(Context context) {
_prefs = PreferenceManager.getDefaultSharedPreferences(context);
if (getPasswordReminderTimestamp().getTime() == 0) {
resetPasswordReminderTimestamp();
}
}
public boolean isTapToRevealEnabled() {
@@ -32,6 +38,24 @@ public class Preferences {
return _prefs.getBoolean("pref_secure_screen", !BuildConfig.DEBUG);
}
public boolean isPasswordReminderEnabled() {
return _prefs.getBoolean("pref_password_reminder", true);
}
public boolean isPasswordReminderNeeded() {
long diff = new Date().getTime() - getPasswordReminderTimestamp().getTime();
long days = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
return isPasswordReminderEnabled() && days >= 7;
}
public Date getPasswordReminderTimestamp() {
return new Date(_prefs.getLong("pref_password_reminder_counter", 0));
}
public void resetPasswordReminderTimestamp() {
_prefs.edit().putLong("pref_password_reminder_counter", new Date().getTime()).apply();
}
public boolean isAccountNameVisible() {
return _prefs.getBoolean("pref_account_name", true);
}
@@ -110,7 +110,7 @@ public abstract class AegisActivity extends AppCompatActivity implements AegisAp
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
this.getResources().updateConfiguration(config, this.getResources().getDisplayMetrics());
}
/**
@@ -2,15 +2,18 @@ package com.beemdevelopment.aegis.ui;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -18,19 +21,20 @@ import androidx.appcompat.app.AlertDialog;
import androidx.biometric.BiometricPrompt;
import com.beemdevelopment.aegis.CancelAction;
import com.beemdevelopment.aegis.Preferences;
import com.beemdevelopment.aegis.R;
import com.beemdevelopment.aegis.crypto.KeyStoreHandle;
import com.beemdevelopment.aegis.crypto.KeyStoreHandleException;
import com.beemdevelopment.aegis.helpers.BiometricsHelper;
import com.beemdevelopment.aegis.helpers.EditTextHelper;
import com.beemdevelopment.aegis.helpers.UiThreadExecutor;
import com.beemdevelopment.aegis.ui.tasks.SlotListTask;
import com.beemdevelopment.aegis.vault.VaultFileCredentials;
import com.beemdevelopment.aegis.vault.slots.BiometricSlot;
import com.beemdevelopment.aegis.vault.slots.PasswordSlot;
import com.beemdevelopment.aegis.vault.slots.Slot;
import com.beemdevelopment.aegis.vault.slots.SlotException;
import com.beemdevelopment.aegis.vault.slots.SlotList;
import com.beemdevelopment.aegis.helpers.BiometricsHelper;
import com.beemdevelopment.aegis.helpers.EditTextHelper;
import com.beemdevelopment.aegis.helpers.UiThreadExecutor;
import com.beemdevelopment.aegis.ui.tasks.SlotListTask;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
@@ -43,9 +47,12 @@ public class AuthActivity extends AegisActivity implements SlotListTask.Callback
private BiometricPrompt.CryptoObject _bioCryptoObj;
private BiometricPrompt _bioPrompt;
private Preferences _prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_prefs = new Preferences(this);
setContentView(R.layout.activity_auth);
_textPassword = findViewById(R.id.text_password);
LinearLayout boxBiometricInfo = findViewById(R.id.box_biometric_info);
@@ -112,11 +119,6 @@ public class AuthActivity extends AegisActivity implements SlotListTask.Callback
biometricsButton.setOnClickListener(v -> {
showBiometricPrompt();
});
if (_bioCryptoObj == null) {
_textPassword.requestFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
}
private void showError() {
@@ -158,10 +160,33 @@ public class AuthActivity extends AegisActivity implements SlotListTask.Callback
super.onResume();
if (_bioPrompt != null) {
showBiometricPrompt();
if (_prefs.isPasswordReminderNeeded()) {
focusPasswordField();
showPasswordReminder();
} else {
showBiometricPrompt();
}
} else {
focusPasswordField();
}
}
private void focusPasswordField() {
_textPassword.requestFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
private void showPasswordReminder() {
View popupLayout = getLayoutInflater().inflate(R.layout.popup_password, null);
PopupWindow popup = new PopupWindow(popupLayout, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popup.setFocusable(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
popup.setElevation(5.0f);
}
_textPassword.post(() -> popup.showAsDropDown(_textPassword));
_textPassword.postDelayed(popup::dismiss, 5000);
}
public void showBiometricPrompt() {
BiometricPrompt.PromptInfo info = new BiometricPrompt.PromptInfo.Builder()
.setTitle(getString(R.string.authentication))
@@ -187,6 +212,10 @@ public class AuthActivity extends AegisActivity implements SlotListTask.Callback
_slots.replace(result.getSlot());
}
if (result.getSlot().getType() == Slot.TYPE_DERIVED) {
_prefs.resetPasswordReminderTimestamp();
}
// send the master key back to the main activity
Intent intent = new Intent();
intent.putExtra("creds", new VaultFileCredentials(result.getKey(), _slots));
@@ -5,6 +5,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
@@ -85,6 +86,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
private Preference _setPasswordPreference;
private Preference _slotsPreference;
private Preference _groupsPreference;
private Preference _passwordReminderPreference;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -123,11 +125,16 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
});
Preference langPreference = findPreference("pref_lang");
langPreference.setOnPreferenceChangeListener((preference, newValue) -> {
_result.putExtra("needsRecreate", true);
getActivity().recreate();
return true;
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
langPreference.setOnPreferenceChangeListener((preference, newValue) -> {
_result.putExtra("needsRecreate", true);
getActivity().recreate();
return true;
});
} else {
// Setting locale doesn't work on Marshmallow or below
langPreference.setVisible(false);
}
int currentViewMode = app.getPreferences().getCurrentViewMode().ordinal();
Preference viewModePreference = findPreference("pref_view_mode");
@@ -354,6 +361,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
});
_autoLockPreference = findPreference("pref_auto_lock");
_passwordReminderPreference = findPreference("pref_password_reminder");
}
@Override
@@ -683,11 +691,13 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
_biometricsPreference.setEnabled(canUseBio && !multiBio);
_biometricsPreference.setChecked(slots.has(BiometricSlot.class), true);
_slotsPreference.setVisible(showSlots);
_passwordReminderPreference.setVisible(slots.has(BiometricSlot.class));
} else {
_setPasswordPreference.setEnabled(false);
_biometricsPreference.setEnabled(false);
_biometricsPreference.setChecked(false, true);
_slotsPreference.setVisible(false);
_passwordReminderPreference.setVisible(false);
}
}
@@ -38,6 +38,7 @@ public class EntryAdapter extends RecyclerView.Adapter<EntryHolder> implements I
private ViewMode _viewMode;
private String _searchFilter;
private boolean _isPeriodUniform = true;
private int _uniformPeriod = -1;
private Handler _dimHandler;
// keeps track of the viewholders that are currently bound
@@ -380,17 +381,19 @@ public class EntryAdapter extends RecyclerView.Adapter<EntryHolder> implements I
}
private void checkPeriodUniformity(boolean force) {
int uniformPeriod = getUniformPeriod();
boolean uniform = isPeriodUniform();
if (!force && uniform == _isPeriodUniform) {
if (!force && uniform == _isPeriodUniform && uniformPeriod == _uniformPeriod) {
return;
}
_isPeriodUniform = uniform;
_uniformPeriod = uniformPeriod;
for (EntryHolder holder : _holders) {
holder.setShowProgress(!_isPeriodUniform);
}
_view.onPeriodUniformityChanged(_isPeriodUniform);
_view.onPeriodUniformityChanged(_isPeriodUniform, _uniformPeriod);
}
public int getUniformPeriod() {
@@ -478,7 +481,11 @@ public class EntryAdapter extends RecyclerView.Adapter<EntryHolder> implements I
}
public boolean isPeriodUniform() {
return getUniformPeriod() != -1;
return isPeriodUniform(getUniformPeriod());
}
private static boolean isPeriodUniform(int period) {
return period != -1;
}
@Override
@@ -492,7 +499,7 @@ public class EntryAdapter extends RecyclerView.Adapter<EntryHolder> implements I
void onEntryMove(VaultEntry entry1, VaultEntry entry2);
void onEntryDrop(VaultEntry entry);
void onEntryChange(VaultEntry entry);
void onPeriodUniformityChanged(boolean uniform);
void onPeriodUniformityChanged(boolean uniform, int period);
void onSelect(VaultEntry entry);
void onDeselect(VaultEntry entry);
}
@@ -58,7 +58,7 @@ public class EntryHolder extends RecyclerView.ViewHolder {
_refresher = new UiRefresher(new UiRefresher.Listener() {
@Override
public void onRefresh() {
if (_hidden) {
if (!_hidden) {
refreshCode();
}
@@ -205,11 +205,12 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener {
public void onDeselect(VaultEntry entry) { _listener.onDeselect(entry); }
@Override
public void onPeriodUniformityChanged(boolean isUniform) {
public void onPeriodUniformityChanged(boolean isUniform, int period) {
setShowProgress(isUniform);
if (_showProgress) {
_refresher.stop();
_progressBar.setVisibility(View.VISIBLE);
_progressBar.setPeriod(_adapter.getUniformPeriod());
_progressBar.setPeriod(period);
_refresher.start();
} else {
_progressBar.setVisibility(View.GONE);
@@ -19,8 +19,8 @@ import java.util.TreeSet;
public class VaultManager {
private static final String FILENAME = "aegis.json";
public static final String FILENAME_EXPORT = "aegis_export";
public static final String FILENAME_EXPORT_PLAIN = "aegis_export_plain";
public static final String FILENAME_EXPORT = "aegis_export.json";
public static final String FILENAME_EXPORT_PLAIN = "aegis_export_plain.json";
private Vault _vault;
private VaultFile _file;
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/cardBackground">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="@string/password_reminder"/>
</LinearLayout>
+57 -41
View File
@@ -11,7 +11,7 @@
<string name="settings">Předvolby</string>
<string name="pref_appearance_group_title">Vzhled</string>
<string name="pref_general_group_title">Obecné</string>
<string name="pref_security_group_title">Bezpečnost</string>
<string name="pref_security_group_title">Zabezpečení</string>
<string name="pref_tools_group_title">Nástroje</string>
<string name="pref_select_theme_title">Vzhled</string>
<string name="pref_view_mode_title">Režim zobrazení</string>
@@ -21,29 +21,31 @@
<string name="pref_timeout_title">Časový limit</string>
<string name="pref_timeout_summary">Automaticky zamknout trezor po %1$s sekundách nečinnosti</string>
<string name="pref_slots_title">Sloty klíčů</string>
<string name="pref_slots_summary">Správa seznamu klíčů, které mohou dešifrovat databázi</string>
<string name="pref_slots_summary">Správa seznamu klíčů, které mohou dešifrovat trezor</string>
<string name="pref_import_file_title">Importovat ze souboru</string>
<string name="pref_import_file_summary">Importovat databázi ze souboru</string>
<string name="pref_import_file_summary">Importovat tokeny ze souboru</string>
<string name="pref_import_app_title">Importovat z aplikace</string>
<string name="pref_import_app_summary">Importovat databázi z aplikace (vyžaduje root přístup)</string>
<string name="pref_import_app_summary">Importovat tokeny z aplikace (vyžaduje root přístup)</string>
<string name="pref_export_title">Exportovat</string>
<string name="pref_export_summary">Exportovat databázi</string>
<string name="pref_export_summary">Exportovat trezor</string>
<string name="pref_secure_screen_title">Zabezpečení obrazovky</string>
<string name="pref_secure_screen_summary">Blokovat snímky obrazovky a další pokusy o zachycení obrazovky v rámci aplikace</string>
<string name="pref_tap_to_reveal_title">Zobrazit po klepnutí</string>
<string name="pref_tap_to_reveal_summary">Ve výchozím nastavení budou tokeny skryté. Kód zobrazíte klepnutím na token.</string>
<string name="pref_tap_to_reveal_time_title">Čas do skrytí zobrazeného kódu</string>
<string name="pref_tap_to_reveal_title">Zobrazit klepnutím</string>
<string name="pref_tap_to_reveal_summary">Ve výchozím stavu budou kódy skryté. Kód zobrazíte klepnutím na token.</string>
<string name="pref_tap_to_reveal_time_title">Prodleva zobrazení kódu</string>
<string name="pref_auto_lock_title">Automatické uzamknutí</string>
<string name="pref_auto_lock_summary">Automaticky zamknout trezor po zavření aplikace, nebo uzamknutí zařízení.</string>
<string name="pref_auto_lock_summary">Automaticky uzamknout trezor při zavření aplikace, nebo uzamčení zařízení.</string>
<string name="pref_encryption_title">Šifrování</string>
<string name="pref_encryption_summary">Šifrovat databázi a odemknout ji pomocí hesla nebo otisku prstu</string>
<string name="pref_encryption_summary">Šifrovat trezor a odemykat jej pomocí hesla, nebo biometrie</string>
<string name="pref_biometrics_title">Biometrické odemknutí</string>
<string name="pref_biometrics_summary">Povolit biometrické ověření pro odemčení trezoru</string>
<string name="pref_set_password_title">Změnit heslo</string>
<string name="pref_set_password_summary">Nastavení nového hesla potřebného pro odemknutí trezoru</string>
<string name="pref_set_password_summary">Nastavení nového hesla potřebného pro odemčení trezoru</string>
<string name="choose_authentication_method">Zabezpečení</string>
<string name="authentication_method_none">Žádné</string>
<string name="authentication_method_none_description">K odemknutí trezoru není potřeba heslo a trezor nebude šifrován. Tato volba není doporučena.</string>
<string name="authentication_method_password">Heslo</string>
<string name="authentication_method_password_description">K odemknutí trezoru potřebujete heslo.</string>
<string name="authentication_method_biometrics">Biometrie</string>
<string name="authentication_method_biometrics_description">Kromě hesla půjde k odemčení trezoru použít také biometrické prvky registrované v tomto zařízení jako je otisk prstu nebo tvář.</string>
<string name="authentication_method_set_password">Heslo</string>
<string name="authentication_enter_password">Zadejte své heslo</string>
<string name="authentication">Odemknout trezor</string>
@@ -51,7 +53,9 @@
<string name="set_group">Zadejte název skupiny</string>
<string name="set_number">Zadejte číslo</string>
<string name="set_password_confirm">Potvrďte heslo</string>
<string name="invalidated_biometrics">Zjištěna změna nastavení zabezpečení zařízení. Přejděte do „Aegis“ → „Nastavení“ → „Biometrie“ a povolte biometrické odemknutí znovu.</string>
<string name="unlock">Odemknout</string>
<string name="biometrics">Biometrie</string>
<string name="advanced">Pokročilé</string>
<string name="seconds">sekund</string>
<string name="counter">Počítadlo</string>
@@ -60,70 +64,80 @@
<string name="scan">Naskenovat QR kód</string>
<string name="scan_image">Skenovat obrázek</string>
<string name="enter_manually">Zadat ručně</string>
<string name="add_biometric">Přidat biometriku</string>
<string name="add_biometric_slot">Přidat biometrický slot</string>
<string name="set_up_biometric">Nastavení biometrického odemčení</string>
<string name="add_password">Přidat heslo</string>
<string name="slots_warning">Trezor je bezpečný jen jako nejslabší místo. Pokud bude do zařízení přidán nový otisk prstu, budete muset v Aegis reaktivovat ověření otiskem prstu.</string>
<string name="slots_warning">Trezor je stejně bezpečný jako jeho nejslabší místo. Změníte-li nastavení biometrického ověření ve vašem zařízení, budete muset v Aegis znovu aktivovat biometrické odemknutí.</string>
<string name="copy">Kopírovat</string>
<string name="edit">Upravit</string>
<string name="delete">Odstranit</string>
<string name="password">Heslo</string>
<string name="confirm_password">Potvrzení hesla</string>
<string name="confirm_password">Potvrdit heslo</string>
<string name="show_password">Zobrazit heslo</string>
<string name="new_profile">Nový profil</string>
<string name="add_new_profile">Přidat nový profil</string>
<string name="unlock_vault_error">Trezor nelze odemknout</string>
<string name="unlock_vault_error_description">Nesprávné heslo. Ujistěte se, že je heslo správně zadané.</string>
<string name="unlock_vault_error_description">Nesprávné heslo. Ujistěte se, že je zadané správně.</string>
<string name="password_equality_error">Hesla musí být stejná a nesmí být prázdná</string>
<string name="snackbar_authentication_method">Zvolte způsob ověření</string>
<string name="snackbar_authentication_method">Zvolte prosím způsob ověření</string>
<string name="encrypting_vault">Šifrování trezoru</string>
<string name="delete_entry">Odstranit položku</string>
<string name="delete_entry_description">Opravdu chcete odstranit tento záznam?</string>
<string name="delete_entry_description">Opravdu chcete odstranit tuto položku?</string>
<string name="discard_changes">Zahodit změny?</string>
<string name="discard_changes_description">Změny nebyly uloženy</string>
<string name="folder">Složka</string>
<string name="tap_to_select">Klepnutím vyberte</string>
<string name="tap_to_select">Vyberte klepnutím</string>
<string name="saving_profile_error">Chyba při ukládání profilu</string>
<string name="welcome">Vítejte</string>
<string name="app_description">Aegis je bezpečná open source 2FA aplikace. Aegis je zdarma.</string>
<string name="app_description">Aegis je bezpečná, bezplatná a open source 2FA aplikace</string>
<string name="setup_completed">Nastavení dokončeno</string>
<string name="setup_completed_description">Nastavení Aegis dokončeno. Můžeme začít.</string>
<string name="vault_not_found">Trezor nenalezen, spouštění nastavení…</string>
<string name="setup_completed_description">Aegis je nastaven a připraven k používání.</string>
<string name="vault_not_found">Trezor nebyl nenalezen, spouštím nastavení…</string>
<string name="code_copied">Kód zkopírován do schránky</string>
<string name="errors_copied">Chyby zkopírovány do schránky</string>
<string name="version_copied">Verze zkopírována do schránky</string>
<string name="decryption_error">Při odemykání trezoru došlo k chybě</string>
<string name="saving_error">Při pokusu o uložení trezoru došlo k chybě</string>
<string name="disable_encryption">Vypnout šifrování</string>
<string name="disable_encryption_description">Opravdu chcete vypnout šifrování úložiště? Obsah trezoru bude uložen jako prostý text.</string>
<string name="disable_encryption_description">Opravdu chcete vypnout šifrování úložiště? Obsah trezoru pak bude uložen jako prostý text.</string>
<string name="enable_encryption_error">Při zapínání šifrování došlo k chybě</string>
<string name="disable_encryption_error">Při vypínání šifrování došlo k chybě</string>
<string name="permission_denied">Přístup zamítnut</string>
<string name="choose_application">Zvolte aplikaci, ze které chcete importovat databázi</string>
<string name="andotp_new_format">Nový formát (v0.6.3 nebo novější) </string>
<string name="andotp_old_format">Starý formát (v0.6.2 a starší) </string>
<string name="choose_andotp_importer">Jaký formát má záložní andOTP soubor?</string>
<string name="choose_application">Zvolte aplikaci, ze které chcete importovat údaje</string>
<string name="choose_theme">Vyberte si vzhled rozhraní</string>
<string name="choose_view_mode">Vyberte si režim zobrazení</string>
<string name="parsing_file_error">Při zpracování souboru došlo k chybě</string>
<string name="file_not_found">Chyba: Soubor nenalezen</string>
<string name="reading_file_error">Při čtení souboru došlo k chybě</string>
<string name="reading_file_error">Při pokusu o čtení souboru došlo k chybě</string>
<string name="app_lookup_error">Chyba: Aplikace není nainstalována</string>
<string name="root_error">Chyba: Nelze získat root přístup</string>
<string name="imported_entries_count">Počet importovaných záznamů: %d</string>
<string name="read_entries_count">Čtení %d záznamů. %d chyby.</string>
<string name="imported_entries_count">Naimportováno %d záznamů</string>
<string name="read_entries_count">Čtení %d záznamů. %d chyb.</string>
<string name="import_error_title">Při importu došlo k jedné nebo více chybám</string>
<string name="export_warning">Databáze bude exportována mimo soukromé úložiště aplikace Aegis.</string>
<string name="exporting_vault_error">Při pokusu o export trezoru došlo k chybě</string>
<string name="export_warning">Trezor bude exportován mimo soukromé úložiště aplikace Aegis.</string>
<string name="encryption_set_password_error">Při pokusu o nastavení hesla došlo k chybě: </string>
<string name="no_cameras_available">Fotoaparát je nedostupný</string>
<string name="encryption_enable_biometrics_error">Při pokusu o zapnutí biometrického odemykání došlo k chybě</string>
<string name="no_cameras_available">Fotoaparát není dostupný</string>
<string name="read_qr_error">Při pokusu o přečtení QR kódu došlo k chybě</string>
<string name="authentication_method_raw">Prosté</string>
<string name="unlocking_vault">Odemykání trezoru</string>
<string name="unlocking_vault_repair">Odemykání trezoru (oprava)</string>
<string name="unlocking_vault_repair">Odemykání trezoru (opravuji)</string>
<string name="password_slot_error">Je potřeba alespoň jeden slot hesla</string>
<string name="remove_slot">Odstranit slot</string>
<string name="remove_slot_description">Opravdu chcete tento slot odstranit?</string>
<string name="remove_group">Odstranit skupinu</string>
<string name="remove_group_description">Opravdu chcete odstranit tuto skupinu? Záznamy v této skupině budou automaticky přeřazeny do „Žádná skupina“.</string>
<string name="remove_group_description">Opravdu chcete odstranit tuto skupinu? Záznamy z ní budou automaticky přemístěny do „Žádná skupina“.</string>
<string name="adding_new_slot_error">Při pokusu o přidání nového slotu došlo k chybě:</string>
<string name="progressbar_error">Měřítko trvání animace nelze resetovat. Ukazatele průběhu budou neviditelné.</string>
<string name="progressbar_error">Měřítko trvání animace nelze resetovat. Ukazatele průběhu nebudou viditelné.</string>
<string name="details">Podrobnosti</string>
<string name="filter">Filtr</string>
<string name="lock">Zamknout</string>
<string name="filter_ungrouped">Bez skupiny</string>
<string name="lock">Uzamknout</string>
<string name="all">Vše</string>
<string name="name">Název</string>
<string name="no_group">Žádná skupina</string>
@@ -139,24 +153,26 @@
<string name="preference_manage_groups_summary">Správa a odstranění skupin</string>
<string name="pref_search_name_title">Hledat v názvech účtů</string>
<string name="pref_search_name_summary">Zahrnout shody názvů účtů do výsledků hledání</string>
<string name="tap_to_reveal">Skryto</string>
<string name="pref_highlight_entry_title">Zvýraznit tokeny po klepnutí</string>
<string name="pref_highlight_entry_summary">Usnadnit vzájemné rozlišení tokenů dočasným zvýrazněním po kleputí</string>
<string name="tap_to_reveal"> skryto </string>
<string name="selected">Vybráno</string>
<string name="dark_theme_title">Tmavý vzhled</string>
<string name="light_theme_title">Světlý vzhled</string>
<string name="amoled_theme_title">Amoled vzhled</string>
<string name="amoled_theme_title">AMOLED vzhled</string>
<string name="normal_viewmode_title">Normální</string>
<string name="compact_mode_title">Kompaktní</string>
<string name="small_mode_title">Malý</string>
<string name="unknown_issuer">Neznámý poskytovatel</string>
<string name="unknown_account_name">Neznámý název účtu</string>
<string name="import_error_dialog">Aegis nedokáže importovat některé tokeny (%d). Tyto tokeny budou přeskočeny. Klepněte na „Podrobnosti“ pro více informací o chybách.</string>
<string name="import_error_dialog">Nepovedlo se naimportovat %d tokenů a byly přeskočeny. Klepněte na „podrobnosti“ pro více informací o chybách.</string>
<string name="unable_to_read_qrcode">QR kód nelze přečíst a zpracovat</string>
<string name="select_picture">Vyberte obrázek</string>
<string name="toggle_checkboxes">Přepnout zaškrtávací políčka</string>
<string name="search">Hledat</string>
<string name="channel_name_lock_status">Stav zámku</string>
<string name="channel_description_lock_status">Aegis může vytvořit trvalé oznámení, které vás upozorní, když je trezor uzamčen</string>
<string name="vault_unlocked_state">Trezor odemknut. Klepnutím ho zamknete.</string>
<string name="vault_unlocked_state">Trezor je odemčený. Klepnutím uzamkněte.</string>
<string name="title_activity_about">O aplikaci</string>
<string name="version">Verze</string>
<string name="changelog">Seznam změn</string>
@@ -169,9 +185,9 @@
<string name="visit_website">Navštivte náš web</string>
<string name="about_support">Podpora</string>
<string name="support_rate">Ohodnoťte aplikaci</string>
<string name="support_rate_description">Podpořte nás zanecháním recenze v obchodě Google Play</string>
<string name="webview_error">Vaše zařízení nepodporuje WebView, které je nutné pro zobrazení seznamu změn. Tato komponenta v systému zřejmě chybí.</string>
<string name="support_rate_description">Podpořte nás napsáním recenze v obchodě Google Play</string>
<string name="webview_error">Vaše zařízení nepodporuje WebView, které je nutné pro zobrazení seznamu změn. Tato komponenta zřejmě chybí v systému.</string>
<string name="email">E-mail</string>
<string name="empty_list">Žádné kódy. Začněte přidáním položek pomocí tlačítka plus v pravém dolním rohu.</string>
<string name="empty_list_title">Nenalezeny žádné záznamy</string>
<string name="empty_list">Žádné kódy. Začněte přidáním položek pomocí tlačítka + v pravém dolním rohu.</string>
<string name="empty_list_title">Žádné záznamy nenalezeny</string>
</resources>
+27 -10
View File
@@ -19,15 +19,15 @@
<string name="pref_account_name_title">Mostrar el nombre de la cuenta</string>
<string name="pref_account_name_summary">Active esto para mostrar el nombre de la cuenta junto al nombre</string>
<string name="pref_timeout_title">Tiempo de espera</string>
<string name="pref_timeout_summary">Bloquea automáticamente la base de datos después de %1$s segundos de inactividad</string>
<string name="pref_timeout_summary">Bloquear automáticamente la caja fuerte después de %1$s segundos de inactividad</string>
<string name="pref_slots_title">Claves</string>
<string name="pref_slots_summary">Administrar la lista de claves que puede descifrar la base de datos</string>
<string name="pref_slots_summary">Administrar la lista de claves que puede descifrar la caja fuerte</string>
<string name="pref_import_file_title">Importar desde un archivo</string>
<string name="pref_import_file_summary">Importar una base de datos desde un archivo</string>
<string name="pref_import_file_summary">Importar tokens desde un archivo</string>
<string name="pref_import_app_title">Importar desde una aplicación</string>
<string name="pref_import_app_summary">Importar una base de datos desde una aplicación (requiere acceso root)</string>
<string name="pref_import_app_summary">Importar tokens desde una aplicación (requiere acceso root)</string>
<string name="pref_export_title">Exportar</string>
<string name="pref_export_summary">Exportar la base de datos</string>
<string name="pref_export_summary">Exportar la caja fuerte</string>
<string name="pref_secure_screen_title">Seguridad en pantalla</string>
<string name="pref_secure_screen_summary">Bloquea las capturas de pantalla y otros intentos de captura dentro de la aplicación</string>
<string name="pref_tap_to_reveal_title">Pulsar para mostrar</string>
@@ -36,14 +36,17 @@
<string name="pref_auto_lock_title">Bloqueo automático</string>
<string name="pref_auto_lock_summary">Bloquear automáticamente cuando cierre la aplicación o bloquee su dispositivo.</string>
<string name="pref_encryption_title">Cifrado</string>
<string name="pref_encryption_summary">Cifra la base de datos y la desbloquea mediante una contraseña o huella dactilar</string>
<string name="pref_encryption_summary">Cifra la base de datos y la desbloquea mediante una contraseña o huella biométrica</string>
<string name="pref_biometrics_title">Desbloqueo biométrico</string>
<string name="pref_biometrics_summary">Permite la autenticación biométrica para desbloquear la caja fuerte</string>
<string name="pref_set_password_title">Cambiar contraseña</string>
<string name="pref_set_password_summary">Establece una nueva contraseña que necesitará para desbloquear su caja fuerte</string>
<string name="choose_authentication_method">Seguridad</string>
<string name="authentication_method_none">Ninguno</string>
<string name="authentication_method_none_description">No necesitará una contraseña para desbloquear la caja fuerte y no se cifrará. No se recomienda esta opción.</string>
<string name="authentication_method_password">Contraseña</string>
<string name="authentication_method_password_description">Necesita una contraseña para desbloquear la caja fuerte.</string>
<string name="authentication_method_biometrics">Biometría</string>
<string name="authentication_method_biometrics_description">Además de una contraseña, la biometría registrada en este dispositivo, como una huella digital o su cara, pueden ser usados para desbloquear la caja fuerte.</string>
<string name="authentication_method_set_password">Contraseña</string>
<string name="authentication_enter_password">Introduzca su contraseña</string>
<string name="authentication">Desbloquear la caja fuerte</string>
@@ -51,7 +54,9 @@
<string name="set_group">Por favor introduzca un nombre de grupo</string>
<string name="set_number">Por favor introduzca un número</string>
<string name="set_password_confirm">Por favor confirme la contraseña</string>
<string name="invalidated_biometrics">Se ha detectado un cambio en la configuración de seguridad de su dispositivo. Por favor, vaya a \"Aegis -&gt; Configuración -&gt; Biometría\" y vuelva a activar el desbloqueo biométrico.</string>
<string name="unlock">Desbloquear</string>
<string name="biometrics">Biometría</string>
<string name="advanced">Avanzado</string>
<string name="seconds">segundos</string>
<string name="counter">Contador</string>
@@ -60,13 +65,17 @@
<string name="scan">Escanear código QR</string>
<string name="scan_image">Escanear imagen</string>
<string name="enter_manually">Introducir manualmente</string>
<string name="add_biometric">Añadir biometría</string>
<string name="add_biometric_slot">Añadir clave biométrica</string>
<string name="set_up_biometric">Configurar desbloqueo biométrico</string>
<string name="add_password">Añadir contraseña</string>
<string name="slots_warning">La caja fuerte es solo tan segura como su código secreto más débil. Cuando añada una nueva huella dactilar a su dispositivo, necesitará reactivar la autentificación mediante huella en Aegis.</string>
<string name="slots_warning">La caja fuerte es tan segura como su código secreto más débil. Si cambia la configuración de autenticación biométrica de su dispositivo, tendrá que reactivar el desbloqueo biométrico dentro de Aegis.</string>
<string name="copy">Copiar</string>
<string name="edit">Editar</string>
<string name="delete">Eliminar</string>
<string name="password">Contraseña</string>
<string name="confirm_password">Confirmar contraseña</string>
<string name="show_password">Mostrar contraseña</string>
<string name="new_profile">Nuevo perfil</string>
<string name="add_new_profile">Añadir nuevo perfil</string>
<string name="unlock_vault_error">No se pudo desbloquear la caja fuerte</string>
@@ -96,7 +105,10 @@
<string name="enable_encryption_error">Se ha producido un error tratando de activar el cifrado</string>
<string name="disable_encryption_error">Se ha producido un error tratando de desactivar el cifrado</string>
<string name="permission_denied">Permiso denegado</string>
<string name="choose_application">Seleccione la aplicación desde la que desea importar la base de datos</string>
<string name="andotp_new_format">Formato nuevo (v0.6.3 o superior) </string>
<string name="andotp_old_format">Formato antiguo (v0.6.2 o anterior) </string>
<string name="choose_andotp_importer">¿Qué formato tiene el archivo de copia de seguridad de andOTP?</string>
<string name="choose_application">Seleccione la aplicación desde la que desea importar</string>
<string name="choose_theme">Seleccione su tema deseado</string>
<string name="choose_view_mode">Seleccione su modo de visualización deseado</string>
<string name="parsing_file_error">Se ha producido un error procesando el archivo</string>
@@ -107,8 +119,10 @@
<string name="imported_entries_count">Importadas %d entradas</string>
<string name="read_entries_count">Leídas %d entradas. %d errores.</string>
<string name="import_error_title">Se han producido uno o más errores durante la importación</string>
<string name="export_warning">Esta acción exportará la base de datos fuera del almacenamiento privado de Aegis.</string>
<string name="exporting_vault_error">Se ha producido un error tratando de exportar la caja fuerte</string>
<string name="export_warning">Esta acción exportará la caja fuerte fuera del almacenamiento privado de Aegis.</string>
<string name="encryption_set_password_error">Se ha producido un error tratando de establecer la contraseña: </string>
<string name="encryption_enable_biometrics_error">Se ha producido un error tratando de activar el desbloqueo biométrico</string>
<string name="no_cameras_available">No hay ninguna cámara disponible</string>
<string name="read_qr_error">Se ha producido un error tratando de leer el código QR</string>
<string name="authentication_method_raw">Raw</string>
@@ -123,6 +137,7 @@
<string name="progressbar_error">No se puede restablecer la escala de duración de la animación. Las barras de progreso serán invisibles.</string>
<string name="details">Detalles</string>
<string name="filter">Filtrar</string>
<string name="filter_ungrouped">Sin agrupar</string>
<string name="lock">Bloquear</string>
<string name="all">Todo</string>
<string name="name">Cuenta</string>
@@ -139,6 +154,8 @@
<string name="preference_manage_groups_summary">Gestione y elimine sus grupos aquí</string>
<string name="pref_search_name_title">Buscar en los nombres de cuenta</string>
<string name="pref_search_name_summary">Incluir coincidencias del nombre de la cuenta en los resultados de búsqueda</string>
<string name="pref_highlight_entry_title">Resaltar tokens al pulsarlos</string>
<string name="pref_highlight_entry_summary">Hace que los tokens sean más fáciles de distinguir entre ellos resaltándolos temporalmente tras ser pulsados</string>
<string name="tap_to_reveal">Oculto</string>
<string name="selected">Seleccionado</string>
<string name="dark_theme_title">Tema oscuro</string>
+23 -9
View File
@@ -19,15 +19,15 @@
<string name="pref_account_name_title">Mostra nome account</string>
<string name="pref_account_name_summary">Se attivo mostra il nome dell\'account accanto al login</string>
<string name="pref_timeout_title">Timeout</string>
<string name="pref_timeout_summary">Blocca automaticamente dopo %1$s secondi di inattività</string>
<string name="pref_timeout_summary">Blocca automaticamente la cassaforte dopo %1$s secondi di inattività</string>
<string name="pref_slots_title">Slot chiavi</string>
<string name="pref_slots_summary">Gestisci la lista delle chiavi che possono decriptare il database</string>
<string name="pref_import_file_title">Importa da file</string>
<string name="pref_import_file_summary">Importa database da file</string>
<string name="pref_import_file_summary">Importa token da file</string>
<string name="pref_import_app_title">Importa da un\'app</string>
<string name="pref_import_app_summary">Importa un database da un\'app (necessita root)</string>
<string name="pref_import_app_summary">Importa token da app (richiede accesso root)</string>
<string name="pref_export_title">Esporta</string>
<string name="pref_export_summary">Esporta database</string>
<string name="pref_export_summary">Esporta la cassaforte</string>
<string name="pref_secure_screen_title">Sicurezza schermo</string>
<string name="pref_secure_screen_summary">Blocca i tentativi di catturare lo schermo all\'interno dell\'app</string>
<string name="pref_tap_to_reveal_title">Tocca per mostrare</string>
@@ -36,14 +36,16 @@
<string name="pref_auto_lock_title">Blocco automatico</string>
<string name="pref_auto_lock_summary">Blocca automaticamente quando chiudi l\'app o blocca il dispositivo.</string>
<string name="pref_encryption_title">Crittografia</string>
<string name="pref_encryption_summary">Cripta il database con password o impronta digitale</string>
<string name="pref_encryption_summary">Cripta il database e sbloccalo con password o impronta digitale</string>
<string name="pref_biometrics_title">Sblocco biometrico</string>
<string name="pref_biometrics_summary">Consenti l\'autenticazione biometrica per sbloccare la cassaforte</string>
<string name="pref_set_password_title">Cambia password</string>
<string name="pref_set_password_summary">Modifica la password della tua cassaforte</string>
<string name="choose_authentication_method">Sicurezza</string>
<string name="authentication_method_none">Nessuna</string>
<string name="authentication_method_none_description">Non hai bisogno di una password per sbloccare la cassaforte e non sarà crittografata. Non consigliato.</string>
<string name="authentication_method_password">Password</string>
<string name="authentication_method_password_description">Hai bisogno di una password per sbloccare la cassaforte.</string>
<string name="authentication_method_biometrics">Biometrica</string>
<string name="authentication_method_biometrics_description">Oltre a una password, i dati biometrici registrati su questo dispositivo, come un\'impronta digitale o il tuo volto, possono essere utilizzati per sbloccare la cassaforte.</string>
<string name="authentication_method_set_password">Password</string>
<string name="authentication_enter_password">Inserisci la tua password</string>
<string name="authentication">Sblocca la cassaforte</string>
@@ -51,7 +53,9 @@
<string name="set_group">Inserisci il nome di un gruppo</string>
<string name="set_number">Inserisci un numero</string>
<string name="set_password_confirm">Conferma la tua password</string>
<string name="invalidated_biometrics">È stata rilevata una modifica delle impostazioni di sicurezza del dispositivo. Vai a \"Aegis -&gt; Impostazioni -&gt; Sicurezza\" e riattiva lo sblocco biometrico.</string>
<string name="unlock">Sblocca</string>
<string name="biometrics">Biometrica</string>
<string name="advanced">Avanzate</string>
<string name="seconds">secondi</string>
<string name="counter">Contatore</string>
@@ -60,13 +64,15 @@
<string name="scan">Scansiona codice QR</string>
<string name="scan_image">Scansiona immagine</string>
<string name="enter_manually">Inserisci manualmente</string>
<string name="add_biometric">Aggiungi dati biometrici</string>
<string name="set_up_biometric">Imposta sblocco biometrico</string>
<string name="add_password">Aggiungi password</string>
<string name="slots_warning">\"The vault is only as secure as your weakest secret\". Quando viene aggiunta una nuova impronta digitale al tuo dispositivo, dovrai riattivare l\'autenticazione con impronte digitali.</string>
<string name="copy">Copia</string>
<string name="edit">Modifica</string>
<string name="delete">Elimina</string>
<string name="password">Password</string>
<string name="confirm_password">Conferma password</string>
<string name="show_password">Mostra password</string>
<string name="new_profile">Nuovo profilo</string>
<string name="add_new_profile">Aggiungi nuovo profilo</string>
<string name="unlock_vault_error">Impossibile sbloccare la cassaforte</string>
@@ -96,6 +102,9 @@
<string name="enable_encryption_error">Errore durante l\'attivazione della crittografia</string>
<string name="disable_encryption_error">Errore durante la disabilitazione della crittografia</string>
<string name="permission_denied">Autorizzazione negata</string>
<string name="andotp_new_format">Nuovo formato (v0.6.3 o più recente) </string>
<string name="andotp_old_format">Vecchio formato (v0.6.2 o più vecchio) </string>
<string name="choose_andotp_importer">Quale formato ha il file di backup andOTP?</string>
<string name="choose_application">Seleziona l\'applicazione da cui vuoi importare un database</string>
<string name="choose_theme">Seleziona il tema</string>
<string name="choose_view_mode">Seleziona la modalità di visualizzazione</string>
@@ -107,8 +116,10 @@
<string name="imported_entries_count">Importati %d elementi</string>
<string name="read_entries_count">Letti %d elementi. %d errori.</string>
<string name="import_error_title">Errori durante l\'importazione</string>
<string name="export_warning">Questa azione esporterà il database fuori dalla memoria privata di Aegis.</string>
<string name="exporting_vault_error">Si è verificato un errore durante il tentativo di esportare la cassaforte</string>
<string name="export_warning">Questa azione esporterà la cassaforte dall\'archivio privato di Aegis.</string>
<string name="encryption_set_password_error">Errore durante l\'impostazione della password: </string>
<string name="encryption_enable_biometrics_error">Si è verificato un errore durante il tentativo di abilitare lo sblocco biometrico</string>
<string name="no_cameras_available">Nessuna fotocamera disponibile</string>
<string name="read_qr_error">Errore di lettura del codice QR</string>
<string name="authentication_method_raw">Raw</string>
@@ -123,6 +134,7 @@
<string name="progressbar_error">Impossibile ripristinare la durata delle animazioni. Le barre di caricamento non saranno visibili.</string>
<string name="details">Dettagli</string>
<string name="filter">Filtra</string>
<string name="filter_ungrouped">Non raggruppati</string>
<string name="lock">Blocca</string>
<string name="all">Tutti</string>
<string name="name">Nome</string>
@@ -139,6 +151,8 @@
<string name="preference_manage_groups_summary">Gestisci ed elimina i tuoi gruppi qui</string>
<string name="pref_search_name_title">Cerca nei nomi degli account</string>
<string name="pref_search_name_summary">Includi il nome dell\'account nei risultati di ricerca</string>
<string name="pref_highlight_entry_title">Evidenzia i token quando premuti</string>
<string name="pref_highlight_entry_summary">Rendi i token più facili da distinguere, evidenziandoli temporaneamente quando vengono toccati</string>
<string name="tap_to_reveal">Nascosto</string>
<string name="selected">Selezionato</string>
<string name="dark_theme_title">Tema scuro</string>
+2 -2
View File
@@ -19,9 +19,9 @@
<string name="pref_account_name_title">Toon de accountnaam</string>
<string name="pref_account_name_summary">Schakel in om de accountnaam naast de uitgever te tonen</string>
<string name="pref_timeout_title">Time-out</string>
<string name="pref_timeout_summary">Automatisch database vergrendelen na %1$s seconden zonder activiteit</string>
<string name="pref_timeout_summary">Automatisch kluis vergrendelen na %1$s seconden zonder activiteit</string>
<string name="pref_slots_title">Vergrendelingssleutels</string>
<string name="pref_slots_summary">Beheer de lijst van vergrendelingssleutels die de database kunnen decrypten</string>
<string name="pref_slots_summary">Beheer de lijst van vergrendelingssleutels die de kluis kunnen decrypten</string>
<string name="pref_import_file_title">Importeren vanuit een bestand</string>
<string name="pref_import_file_summary">Database importeren vanuit een bestand</string>
<string name="pref_import_app_title">Importeren vanuit een app</string>
+38 -21
View File
@@ -7,7 +7,7 @@
<string name="action_default_icon">恢复默认图标</string>
<string name="discard">放弃</string>
<string name="save">保存</string>
<string name="issuer">条目</string>
<string name="issuer">服务商</string>
<string name="settings">偏好设置</string>
<string name="pref_appearance_group_title">外观</string>
<string name="pref_general_group_title">常规​</string>
@@ -17,15 +17,15 @@
<string name="pref_view_mode_title">视图模式</string>
<string name="pref_lang_title">语言</string>
<string name="pref_account_name_title">显示帐户名称</string>
<string name="pref_account_name_summary">启用后在该条目旁显示账户名称</string>
<string name="pref_account_name_summary">在服务商名称旁边显示账户名称</string>
<string name="pref_timeout_title">超时</string>
<string name="pref_timeout_summary">在 %1$s 秒不活动后自动锁定数据库</string>
<string name="pref_timeout_summary">无操作 %1$s 秒后自动锁定数据库</string>
<string name="pref_slots_title">键槽</string>
<string name="pref_slots_summary">管理能够解密的密钥列表数据库</string>
<string name="pref_slots_summary">管理能够解密数据库的密钥列表</string>
<string name="pref_import_file_title">从文件导入</string>
<string name="pref_import_file_summary">从文件导入数据库</string>
<string name="pref_import_file_summary">从文件导入令牌</string>
<string name="pref_import_app_title">从其他程序导入</string>
<string name="pref_import_app_summary">从其他程序导入数据库(需要 root 访问</string>
<string name="pref_import_app_summary">从其他应用程序导入令牌(需要 root 权限</string>
<string name="pref_export_title">导出</string>
<string name="pref_export_summary">导出数据库</string>
<string name="pref_secure_screen_title">屏幕安全</string>
@@ -36,22 +36,27 @@
<string name="pref_auto_lock_title">自动锁定</string>
<string name="pref_auto_lock_summary">关闭应用或锁定设备时自动锁定</string>
<string name="pref_encryption_title">加密</string>
<string name="pref_encryption_summary">加密数据库,并使用密码或指纹解锁数据库</string>
<string name="pref_encryption_summary">加密数据库,并在解锁时要求密码或生物识别验证。</string>
<string name="pref_biometrics_title">生物识别解锁</string>
<string name="pref_biometrics_summary">通过生物识别验证来解锁数据库</string>
<string name="pref_set_password_title">更改密码</string>
<string name="pref_set_password_summary">设置解锁数据库所需的新密码</string>
<string name="choose_authentication_method">安全</string>
<string name="authentication_method_none">未设置</string>
<string name="authentication_method_none_description">您无需密码即可解锁数据库,也不会对其进行加密。不建议使用此选项。</string>
<string name="authentication_method_password">密码</string>
<string name="authentication_method_password_description">您需要密码来解锁数据库。</string>
<string name="authentication_method_biometrics">生物识别</string>
<string name="authentication_method_biometrics_description">除密码外,还可以用设备上的生物识别技术,如指纹或面部识别来解锁数据库。</string>
<string name="authentication_method_set_password">密码</string>
<string name="authentication_enter_password">输入您的密码</string>
<string name="authentication">解锁数据库</string>
<string name="set_password">请输入密码</string>
<string name="set_group">请输入组名</string>
<string name="set_number">输入号码</string>
<string name="set_number">选择时长</string>
<string name="set_password_confirm">请确认密码</string>
<string name="invalidated_biometrics">您的设备上更改了安全设置。请在“Aegis -&gt; 设置 -&gt; 生物识别”重新启用生物识别解锁。</string>
<string name="unlock">解锁</string>
<string name="biometrics">生物识别</string>
<string name="advanced">高级设置</string>
<string name="seconds"></string>
<string name="counter">计数器</string>
@@ -60,13 +65,17 @@
<string name="scan">扫描二维码</string>
<string name="scan_image">扫描本地图片</string>
<string name="enter_manually">手动输入</string>
<string name="add_biometric">添加生物识别</string>
<string name="add_biometric_slot">添加生物识别方式</string>
<string name="set_up_biometric">设置生物识别解锁</string>
<string name="add_password">添加密码</string>
<string name="slots_warning">数据库与您最薄弱的秘密一样安全。向设备添加新指纹时,您需要在 Aegis 中重新激活指纹身份验证</string>
<string name="slots_warning">只有当应用程序的每个环节都保证安全时,数据库才能保证安全。如果您更改了设备上的生物识别验证设置,您需要在 Aegis 中重新启用生物识别解锁</string>
<string name="copy">复制</string>
<string name="edit">编辑</string>
<string name="delete">删除</string>
<string name="password">密码</string>
<string name="confirm_password">确认密码</string>
<string name="show_password">显示密码</string>
<string name="new_profile">新的配置文件</string>
<string name="add_new_profile">添加新配置文件</string>
<string name="unlock_vault_error">无法解锁数据库</string>
@@ -92,10 +101,13 @@
<string name="decryption_error">试图解锁数据库时出错</string>
<string name="saving_error">试图保存数据库时出错</string>
<string name="disable_encryption">禁用加密</string>
<string name="disable_encryption_description">您确定您想禁用加密吗?这将导致数据存储为纯文本</string>
<string name="disable_encryption_description">您确定禁用加密吗?这将导致数据库以明文存储。</string>
<string name="enable_encryption_error">启用加密时出错</string>
<string name="disable_encryption_error">禁用加密时出错</string>
<string name="permission_denied">无权限</string>
<string name="andotp_new_format">新格式(v0.6.3以上版本)</string>
<string name="andotp_old_format">旧格式(v0.6.2以下版本)</string>
<string name="choose_andotp_importer">是哪种格式的 andOTP 备份文件?</string>
<string name="choose_application">选择您想要从中导入数据库的应用</string>
<string name="choose_theme">选择您想要的主题</string>
<string name="choose_view_mode">选择您想要的视图模式</string>
@@ -107,9 +119,11 @@
<string name="imported_entries_count">导入 %!d 项条目</string>
<string name="read_entries_count">读取 %!d 项条目。 %!d 项错误。</string>
<string name="import_error_title">导入时发生一个或多个错误</string>
<string name="export_warning">此操作将导出 Aegis 专用存储的数据库。</string>
<string name="exporting_vault_error">试图导出数据库时出错</string>
<string name="export_warning">此操作将把数据库从 Aegis 私有存储空间中导出。</string>
<string name="encryption_set_password_error">试图设置密码时出错:</string>
<string name="no_cameras_available">未找到可用的相机</string>
<string name="encryption_enable_biometrics_error">试图启用生物识别解锁时出错</string>
<string name="no_cameras_available">无可用的摄像头</string>
<string name="read_qr_error">试图读取二维码时出错</string>
<string name="authentication_method_raw">源文件</string>
<string name="unlocking_vault">解锁数据库</string>
@@ -121,16 +135,17 @@
<string name="remove_group_description">您确定您要删除这个群组吗??此群组内的条目将自动移动到“无群组”。</string>
<string name="adding_new_slot_error">试图添加新槽时出错</string>
<string name="progressbar_error">无法重置动画持续时间。进度条将不可见。</string>
<string name="details">细节</string>
<string name="filter">筛选</string>
<string name="details">详细信息</string>
<string name="filter">筛选</string>
<string name="filter_ungrouped">未分组</string>
<string name="lock">锁定</string>
<string name="all">所有</string>
<string name="name">名称</string>
<string name="no_group">无群组</string>
<string name="sort_alphabetically">条目A - Z</string>
<string name="sort_alphabetically_reverse">条目Z - A</string>
<string name="sort_alphabetically_name">账户(A - Z</string>
<string name="sort_alphabetically_name_reverse">账户(Z - A</string>
<string name="sort_alphabetically">服务商A Z</string>
<string name="sort_alphabetically_reverse">服务商Z A</string>
<string name="sort_alphabetically_name">账户(A Z</string>
<string name="sort_alphabetically_name_reverse">账户(Z A</string>
<string name="sort_custom">自定义</string>
<string name="new_group">新群组…</string>
<string name="enter_group_name">输入组名</string>
@@ -139,6 +154,8 @@
<string name="preference_manage_groups_summary">管理和删除您的群组</string>
<string name="pref_search_name_title">在帐户名称中搜索</string>
<string name="pref_search_name_summary">在搜索结果中包含匹配的帐户名称</string>
<string name="pref_highlight_entry_title">点击时高亮令牌</string>
<string name="pref_highlight_entry_summary">使令牌在点击后暂时高亮显示以便区分</string>
<string name="tap_to_reveal">隐藏</string>
<string name="selected">选择</string>
<string name="dark_theme_title">黑暗主题</string>
@@ -147,9 +164,9 @@
<string name="normal_viewmode_title">标准</string>
<string name="compact_mode_title">紧凑</string>
<string name="small_mode_title">小巧</string>
<string name="unknown_issuer">未知的条目</string>
<string name="unknown_issuer">未知的服务商</string>
<string name="unknown_account_name">未知的帐户名称</string>
<string name="import_error_dialog">Aegis 无法导入 %d 令牌。这些令牌将被忽略。点击“细节”查看更多关于错误的信息。</string>
<string name="import_error_dialog">Aegis 无法导入 %d 令牌。这些令牌将被忽略。点击“详细信息”查看更多关于错误的信息。</string>
<string name="unable_to_read_qrcode">无法读取和处理二维码</string>
<string name="select_picture">选择图片</string>
<string name="toggle_checkboxes">切换复选框</string>
+3
View File
@@ -32,6 +32,8 @@
<string name="pref_import_app_summary">Import tokens from an app (requires root access)</string>
<string name="pref_export_title">Export</string>
<string name="pref_export_summary">Export the vault</string>
<string name="pref_password_reminder_title">Password reminder</string>
<string name="pref_password_reminder_summary">Show a reminder to enter the password every once in a while, so that you don\'t forget it.</string>
<string name="pref_secure_screen_title">Screen security</string>
<string name="pref_secure_screen_summary">Block screenshots and other attempts to capture the screen within the app</string>
<string name="pref_tap_to_reveal_title">Tap to reveal</string>
@@ -63,6 +65,7 @@
<string name="set_number">Please enter a number</string>
<string name="set_password_confirm">Please confirm the password</string>
<string name="invalidated_biometrics">A change in your device\'s security settings has been detected. Please go to \"Aegis -> Settings -> Biometrics\" and re-enable biometric unlock.</string>
<string name="password_reminder">It\'s been a while since you\'ve entered your password. Do you still remember it?</string>
<string name="unlock">Unlock</string>
<string name="biometrics">Biometrics</string>
+8
View File
@@ -109,6 +109,14 @@
android:persistent="false"
app:iconSpaceReserved="false"/>
<androidx.preference.SwitchPreferenceCompat
android:defaultValue="true"
android:key="pref_password_reminder"
android:title="@string/pref_password_reminder_title"
android:summary="@string/pref_password_reminder_summary"
android:dependency="pref_biometrics"
app:iconSpaceReserved="false"/>
<androidx.preference.SwitchPreferenceCompat
android:defaultValue="true"
android:key="pref_auto_lock"