Compare commits

...

20 commits

Author SHA1 Message Date
Michael Schättgen
19fe7bd4d2
Merge pull request #1611 from alexbakker/update-divider-decor
Some checks failed
build / build (push) Has been cancelled
build / test (push) Has been cancelled
codeql / analyze (push) Has been cancelled
crowdin / upload-sources (push) Has been cancelled
Update divider decoration when filter/sort changes
2025-02-25 18:22:19 +01:00
Michael Schättgen
7882ecc33a
Merge pull request #1604 from alexbakker/flush-export
Some checks are pending
build / build (push) Waiting to run
build / test (push) Waiting to run
codeql / analyze (push) Waiting to run
crowdin / upload-sources (push) Waiting to run
Flush temporary export file before starting ExportTask
2025-02-24 23:43:56 +01:00
Alexander Bakker
d39b44f0c3 Update divider decoration when filter/sort changes
This fixes an issue where the item decoration may be wrong in some
cases. For example, adding a new entry to the bottom of the list may not
update the decoration of the item that was previously the last one in
the list.

To reproduce, use this vault: https://alexbakker.me/u/mov4455gp5.json.
Start without a group filter, apply sorting based on Issuer (A to Z) and
enable group multiselect. Then:
- Tap the "Test" chip
- Tap the "Test2" chip
- Tap the "No group" chip
- Notice that the offset between the last 2 entries looks wrong: https://alexbakker.me/u/nedcyiro2q.png

Probably introduced in 9131cae944.
2025-02-24 14:16:43 +01:00
Alexander Bakker
7c6e3ae2a8
Merge pull request #1559 from michaelschattgen/feature/multiselect-groups
Some checks are pending
build / build (push) Waiting to run
build / test (push) Waiting to run
codeql / analyze (push) Waiting to run
crowdin / upload-sources (push) Waiting to run
Add ability to multiselect groups
2025-02-24 13:38:29 +01:00
Michael Schättgen
78ee38ba7d Add ability to multiselect groups 2025-01-25 20:21:02 +01:00
Alexander Bakker
8ddf8c58da
Merge pull request #1602 from michaelschattgen/feature/color-contrast-hidden-codes
Improve color contrast on hidden codes
2025-01-24 16:42:30 +01:00
Alexander Bakker
ce29d120a9
Merge pull request #1600 from michaelschattgen/fix/import-entries-padding
Fix obstructing snackbar padding
2025-01-24 16:15:33 +01:00
Alexander Bakker
6bbb42fb83
Merge pull request #1593 from dcrewi/feature/test-html-exports
add test for html exports
2025-01-24 14:41:29 +01:00
Alexander Bakker
e8d712ec71 Flush temporary export file before starting ExportTask
The previous logic was not an issue because FileOutputStream is
unbuffered, but still, this is more correct.
2025-01-24 14:34:41 +01:00
Alexander Bakker
ad2dc803fb
Merge pull request #1592 from dcrewi/feature/delete-temp-file
delete temporary export file when finished
2025-01-24 14:17:01 +01:00
Michael Schättgen
3d50ab1b65 Improve color contrast on hidden codes 2025-01-22 22:17:52 +01:00
Michael Schättgen
a4812c530d Fix obstructing snackbar padding 2025-01-22 18:33:54 +01:00
Alexander Bakker
9ab949a59e Release v3.3.4 2025-01-12 19:01:02 +01:00
Alexander Bakker
e8bf7b0506 Update translations from Crowdin 2025-01-12 18:49:41 +01:00
Michael Schättgen
ec92fb2b31
Merge pull request #1591 from alexbakker/resize-icons
Store non-SVG icons at a maximum of 512x512 and migrate existing icons
2025-01-12 15:29:08 +01:00
David Creswick
919e6854e8 add test for html exports
Do some basic tests of the html export code.

- Make sure that a file was created.
- Make sure that the file can be parsed by an xml parser without error.
- Make sure that the document tag is "html".
2025-01-05 16:31:49 -06:00
David Creswick
d98e23a1e5 delete temporary export file when finished 2025-01-05 16:19:45 -06:00
Alexander Bakker
e59df63e94 Store non-SVG icons at a maximum of 512x512 and migrate existing icons 2025-01-05 22:47:26 +01:00
Michael Schättgen
14643b4000
Merge pull request #1588 from alexbakker/stratum
Rename Authenticator Pro -> Stratum
2025-01-05 17:22:58 +01:00
Alexander Bakker
5439067e9f Rename Authenticator Pro -> Stratum 2025-01-05 13:49:51 +01:00
62 changed files with 467 additions and 141 deletions

View file

@ -28,8 +28,8 @@ android {
applicationId "${packageName}" applicationId "${packageName}"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 35 targetSdkVersion 35
versionCode 76 versionCode 77
versionName "3.3.3" versionName "3.3.4"
multiDexEnabled true multiDexEnabled true
buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\"" buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\""
buildConfigField "String", "GIT_BRANCH", "\"${getGitBranch()}\"" buildConfigField "String", "GIT_BRANCH", "\"${getGitBranch()}\""

View file

@ -61,13 +61,20 @@ import org.junit.Test;
import org.junit.rules.RuleChain; import org.junit.rules.RuleChain;
import org.junit.rules.TestRule; import org.junit.rules.TestRule;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.StandardCharsets;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Locale;
import javax.crypto.Cipher; import javax.crypto.Cipher;
import javax.crypto.SecretKey; import javax.crypto.SecretKey;
@ -183,7 +190,9 @@ public class BackupExportTest extends AegisTest {
onView(withText(R.string.export_format_html)).inRoot(RootMatchers.isPlatformPopup()).perform(click()); onView(withText(R.string.export_format_html)).inRoot(RootMatchers.isPlatformPopup()).perform(click());
onView(withId(android.R.id.button1)).perform(click()); onView(withId(android.R.id.button1)).perform(click());
onView(withId(R.id.checkbox_accept)).perform(click()); onView(withId(R.id.checkbox_accept)).perform(click());
doExport(); File file = doExport();
checkHtmlExport(file);
} }
@Test @Test
@ -196,7 +205,9 @@ public class BackupExportTest extends AegisTest {
onView(withText(R.string.export_format_html)).inRoot(RootMatchers.isPlatformPopup()).perform(click()); onView(withText(R.string.export_format_html)).inRoot(RootMatchers.isPlatformPopup()).perform(click());
onView(withId(android.R.id.button1)).perform(click()); onView(withId(android.R.id.button1)).perform(click());
onView(withId(R.id.checkbox_accept)).perform(click()); onView(withId(R.id.checkbox_accept)).perform(click());
doExport(); File file = doExport();
checkHtmlExport(file);
} }
@Test @Test
@ -380,6 +391,26 @@ public class BackupExportTest extends AegisTest {
checkReadEntries(entries); checkReadEntries(entries);
} }
private void checkHtmlExport(File file) {
try (InputStream inStream = new FileInputStream(file)) {
Reader inReader = new InputStreamReader(inStream, StandardCharsets.UTF_8);
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(inReader);
while (parser.getEventType() != XmlPullParser.START_TAG) {
parser.next();
}
if (!parser.getName().toLowerCase(Locale.ROOT).equals("html")) {
throw new RuntimeException("not an html document!");
}
while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
parser.next();
}
} catch (IOException | XmlPullParserException e) {
throw new RuntimeException("Unable to read html export file", e);
}
}
private void checkReadEntries(Collection<VaultEntry> entries) { private void checkReadEntries(Collection<VaultEntry> entries) {
List<VaultEntry> vectors = VaultEntries.get(); List<VaultEntry> vectors = VaultEntries.get();
assertEquals(vectors.size(), entries.size()); assertEquals(vectors.size(), entries.size());

View file

@ -150,7 +150,7 @@
</application> </application>
<queries> <queries>
<package android:name="me.jmh.authenticatorpro" /> <package android:name="com.stratumauth.app" />
<package android:name="com.authy.authy" /> <package android:name="com.authy.authy" />
<package android:name="org.fedorahosted.freeotp" /> <package android:name="org.fedorahosted.freeotp" />
<package android:name="org.liberty.android.freeotpplus" /> <package android:name="org.liberty.android.freeotpplus" />

View file

@ -31,6 +31,11 @@
</head> </head>
<body> <body>
<div></div> <div></div>
<h3>Version 3.3.4</h3>
<h4>Fixes</h4>
<ul>
<li>Icons are now resized to 512x512 to reduce the size of the vault file and to reduce the chance of encountering out of memory conditions</li>
</ul>
<h3>Version 3.3.3</h3> <h3>Version 3.3.3</h3>
<h4>Fixes</h4> <h4>Fixes</h4>
<ul> <ul>

View file

@ -86,6 +86,10 @@ public class Preferences {
return _prefs.getBoolean("pref_tap_to_reveal", false); return _prefs.getBoolean("pref_tap_to_reveal", false);
} }
public boolean isGroupMultiselectEnabled() {
return _prefs.getBoolean("pref_groups_multiselect", false);
}
public boolean isEntryHighlightEnabled() { public boolean isEntryHighlightEnabled() {
return _prefs.getBoolean("pref_highlight_entry", false); return _prefs.getBoolean("pref_highlight_entry", false);
} }

View file

@ -1,6 +1,13 @@
package com.beemdevelopment.aegis.helpers; package com.beemdevelopment.aegis.helpers;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.beemdevelopment.aegis.icons.IconType;
import com.beemdevelopment.aegis.vault.VaultEntryIcon;
import java.io.ByteArrayOutputStream;
import java.util.Objects;
public class BitmapHelper { public class BitmapHelper {
private BitmapHelper() { private BitmapHelper() {
@ -28,4 +35,29 @@ public class BitmapHelper {
return Bitmap.createScaledBitmap(bitmap, width, height, true); return Bitmap.createScaledBitmap(bitmap, width, height, true);
} }
public static boolean isVaultEntryIconOptimized(VaultEntryIcon icon) {
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeByteArray(icon.getBytes(), 0, icon.getBytes().length, opts);
return opts.outWidth <= VaultEntryIcon.MAX_DIMENS && opts.outHeight <= VaultEntryIcon.MAX_DIMENS;
}
public static VaultEntryIcon toVaultEntryIcon(Bitmap bitmap, IconType iconType) {
if (bitmap.getWidth() > VaultEntryIcon.MAX_DIMENS
|| bitmap.getHeight() > VaultEntryIcon.MAX_DIMENS) {
bitmap = resize(bitmap, VaultEntryIcon.MAX_DIMENS, VaultEntryIcon.MAX_DIMENS);
}
ByteArrayOutputStream stream = new ByteArrayOutputStream();
if (Objects.equals(iconType, IconType.PNG)) {
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
} else {
iconType = IconType.JPEG;
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, stream);
}
byte[] data = stream.toByteArray();
return new VaultEntryIcon(data, iconType);
}
} }

View file

@ -34,7 +34,6 @@ public abstract class DatabaseImporter {
_importers.add(new Definition("Aegis", AegisImporter.class, R.string.importer_help_aegis, false)); _importers.add(new Definition("Aegis", AegisImporter.class, R.string.importer_help_aegis, false));
_importers.add(new Definition("andOTP", AndOtpImporter.class, R.string.importer_help_andotp, false)); _importers.add(new Definition("andOTP", AndOtpImporter.class, R.string.importer_help_andotp, false));
_importers.add(new Definition("Authenticator Plus", AuthenticatorPlusImporter.class, R.string.importer_help_authenticator_plus, false)); _importers.add(new Definition("Authenticator Plus", AuthenticatorPlusImporter.class, R.string.importer_help_authenticator_plus, false));
_importers.add(new Definition("Authenticator Pro", AuthenticatorProImporter.class, R.string.importer_help_authenticator_pro, true));
_importers.add(new Definition("Authy", AuthyImporter.class, R.string.importer_help_authy, true)); _importers.add(new Definition("Authy", AuthyImporter.class, R.string.importer_help_authy, true));
_importers.add(new Definition("Battle.net Authenticator", BattleNetImporter.class, R.string.importer_help_battle_net_authenticator, true)); _importers.add(new Definition("Battle.net Authenticator", BattleNetImporter.class, R.string.importer_help_battle_net_authenticator, true));
_importers.add(new Definition("Bitwarden", BitwardenImporter.class, R.string.importer_help_bitwarden, false)); _importers.add(new Definition("Bitwarden", BitwardenImporter.class, R.string.importer_help_bitwarden, false));
@ -46,6 +45,7 @@ public abstract class DatabaseImporter {
_importers.add(new Definition("Microsoft Authenticator", MicrosoftAuthImporter.class, R.string.importer_help_microsoft_authenticator, true)); _importers.add(new Definition("Microsoft Authenticator", MicrosoftAuthImporter.class, R.string.importer_help_microsoft_authenticator, true));
_importers.add(new Definition("Plain text", GoogleAuthUriImporter.class, R.string.importer_help_plain_text, false)); _importers.add(new Definition("Plain text", GoogleAuthUriImporter.class, R.string.importer_help_plain_text, false));
_importers.add(new Definition("Steam", SteamImporter.class, R.string.importer_help_steam, true)); _importers.add(new Definition("Steam", SteamImporter.class, R.string.importer_help_steam, true));
_importers.add(new Definition("Stratum (Authenticator Pro)", StratumImporter.class, R.string.importer_help_stratum, true));
_importers.add(new Definition("TOTP Authenticator", TotpAuthenticatorImporter.class, R.string.importer_help_totp_authenticator, true)); _importers.add(new Definition("TOTP Authenticator", TotpAuthenticatorImporter.class, R.string.importer_help_totp_authenticator, true));
_importers.add(new Definition("WinAuth", WinAuthImporter.class, R.string.importer_help_winauth, false)); _importers.add(new Definition("WinAuth", WinAuthImporter.class, R.string.importer_help_winauth, false));
} }

View file

@ -45,11 +45,11 @@ import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey; import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.IvParameterSpec;
public class AuthenticatorProImporter extends DatabaseImporter { public class StratumImporter extends DatabaseImporter {
private static final String HEADER = "AUTHENTICATORPRO"; private static final String HEADER = "AUTHENTICATORPRO";
private static final String HEADER_LEGACY = "AuthenticatorPro"; private static final String HEADER_LEGACY = "AuthenticatorPro";
private static final String PKG_NAME = "me.jmh.authenticatorpro"; private static final String PKG_NAME = "com.stratumauth.app";
private static final String PKG_DB_PATH = "files/proauth.db3"; private static final String PKG_DB_PATH = "databases/authenticator.db3";
private enum Algorithm { private enum Algorithm {
SHA1, SHA1,
@ -57,7 +57,7 @@ public class AuthenticatorProImporter extends DatabaseImporter {
SHA512 SHA512
} }
public AuthenticatorProImporter(Context context) { public StratumImporter(Context context) {
super(context); super(context);
} }
@ -169,7 +169,7 @@ public class AuthenticatorProImporter extends DatabaseImporter {
Argon2Task.Params params = getKeyDerivationParams(password); Argon2Task.Params params = getKeyDerivationParams(password);
Argon2Task task = new Argon2Task(context, key -> { Argon2Task task = new Argon2Task(context, key -> {
try { try {
AuthenticatorProImporter.JsonState state = decrypt(key); StratumImporter.JsonState state = decrypt(key);
listener.onStateDecrypted(state); listener.onStateDecrypted(state);
} catch (DatabaseImporterException e) { } catch (DatabaseImporterException e) {
listener.onError(e); listener.onError(e);
@ -244,7 +244,7 @@ public class AuthenticatorProImporter extends DatabaseImporter {
PBKDFTask.Params params = getKeyDerivationParams(password); PBKDFTask.Params params = getKeyDerivationParams(password);
PBKDFTask task = new PBKDFTask(context, key -> { PBKDFTask task = new PBKDFTask(context, key -> {
try { try {
AuthenticatorProImporter.JsonState state = decrypt(key); StratumImporter.JsonState state = decrypt(key);
listener.onStateDecrypted(state); listener.onStateDecrypted(state);
} catch (DatabaseImporterException e) { } catch (DatabaseImporterException e) {
listener.onError(e); listener.onError(e);

View file

@ -35,12 +35,14 @@ import com.beemdevelopment.aegis.encoding.Base32;
import com.beemdevelopment.aegis.encoding.EncodingException; import com.beemdevelopment.aegis.encoding.EncodingException;
import com.beemdevelopment.aegis.encoding.Hex; import com.beemdevelopment.aegis.encoding.Hex;
import com.beemdevelopment.aegis.helpers.AnimationsHelper; import com.beemdevelopment.aegis.helpers.AnimationsHelper;
import com.beemdevelopment.aegis.helpers.BitmapHelper;
import com.beemdevelopment.aegis.helpers.DropdownHelper; import com.beemdevelopment.aegis.helpers.DropdownHelper;
import com.beemdevelopment.aegis.helpers.EditTextHelper; import com.beemdevelopment.aegis.helpers.EditTextHelper;
import com.beemdevelopment.aegis.helpers.SafHelper; import com.beemdevelopment.aegis.helpers.SafHelper;
import com.beemdevelopment.aegis.helpers.SimpleAnimationEndListener; import com.beemdevelopment.aegis.helpers.SimpleAnimationEndListener;
import com.beemdevelopment.aegis.helpers.SimpleTextWatcher; import com.beemdevelopment.aegis.helpers.SimpleTextWatcher;
import com.beemdevelopment.aegis.helpers.TextDrawableHelper; import com.beemdevelopment.aegis.helpers.TextDrawableHelper;
import com.beemdevelopment.aegis.helpers.ViewHelper;
import com.beemdevelopment.aegis.icons.IconPack; import com.beemdevelopment.aegis.icons.IconPack;
import com.beemdevelopment.aegis.icons.IconType; import com.beemdevelopment.aegis.icons.IconType;
import com.beemdevelopment.aegis.otp.GoogleAuthInfo; import com.beemdevelopment.aegis.otp.GoogleAuthInfo;
@ -59,7 +61,6 @@ import com.beemdevelopment.aegis.ui.tasks.ImportFileTask;
import com.beemdevelopment.aegis.ui.views.IconAdapter; import com.beemdevelopment.aegis.ui.views.IconAdapter;
import com.beemdevelopment.aegis.util.Cloner; import com.beemdevelopment.aegis.util.Cloner;
import com.beemdevelopment.aegis.util.IOUtils; import com.beemdevelopment.aegis.util.IOUtils;
import com.beemdevelopment.aegis.helpers.ViewHelper;
import com.beemdevelopment.aegis.vault.VaultEntry; import com.beemdevelopment.aegis.vault.VaultEntry;
import com.beemdevelopment.aegis.vault.VaultEntryIcon; import com.beemdevelopment.aegis.vault.VaultEntryIcon;
import com.beemdevelopment.aegis.vault.VaultGroup; import com.beemdevelopment.aegis.vault.VaultGroup;
@ -76,7 +77,6 @@ import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout; import com.google.android.material.textfield.TextInputLayout;
import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
@ -103,6 +103,7 @@ public class EditEntryActivity extends AegisActivity {
// keep track of icon changes separately as the generated jpeg's are not deterministic // keep track of icon changes separately as the generated jpeg's are not deterministic
private boolean _hasChangedIcon = false; private boolean _hasChangedIcon = false;
private IconPack.Icon _selectedIcon; private IconPack.Icon _selectedIcon;
private String _pickedMimeType;
private ShapeableImageView _iconView; private ShapeableImageView _iconView;
private ImageView _saveImageButton; private ImageView _saveImageButton;
@ -140,8 +141,8 @@ public class EditEntryActivity extends AegisActivity {
if (activityResult.getResultCode() != RESULT_OK || data == null || data.getData() == null) { if (activityResult.getResultCode() != RESULT_OK || data == null || data.getData() == null) {
return; return;
} }
String fileType = SafHelper.getMimeType(this, data.getData()); _pickedMimeType = SafHelper.getMimeType(this, data.getData());
if (fileType != null && fileType.equals(IconType.SVG.toMimeType())) { if (_pickedMimeType != null && _pickedMimeType.equals(IconType.SVG.toMimeType())) {
ImportFileTask.Params params = new ImportFileTask.Params(data.getData(), "icon", null); ImportFileTask.Params params = new ImportFileTask.Params(data.getData(), "icon", null);
ImportFileTask task = new ImportFileTask(this, result -> { ImportFileTask task = new ImportFileTask(this, result -> {
if (result.getError() == null) { if (result.getError() == null) {
@ -804,11 +805,12 @@ public class EditEntryActivity extends AegisActivity {
VaultEntryIcon icon; VaultEntryIcon icon;
if (_selectedIcon == null) { if (_selectedIcon == null) {
Bitmap bitmap = ((BitmapDrawable) _iconView.getDrawable()).getBitmap(); Bitmap bitmap = ((BitmapDrawable) _iconView.getDrawable()).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream(); IconType iconType = _pickedMimeType == null
// the quality parameter is ignored for PNG ? IconType.INVALID : IconType.fromMimeType(_pickedMimeType);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); if (iconType == IconType.INVALID) {
byte[] data = stream.toByteArray(); iconType = bitmap.hasAlpha() ? IconType.PNG : IconType.JPEG;
icon = new VaultEntryIcon(data, IconType.PNG); }
icon = BitmapHelper.toVaultEntryIcon(bitmap, iconType);
} else { } else {
byte[] iconBytes; byte[] iconBytes;
try (FileInputStream inStream = new FileInputStream(_selectedIcon.getFile())){ try (FileInputStream inStream = new FileInputStream(_selectedIcon.getFile())){

View file

@ -15,17 +15,21 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.R;
import com.beemdevelopment.aegis.helpers.BitmapHelper;
import com.beemdevelopment.aegis.helpers.FabScrollHelper; import com.beemdevelopment.aegis.helpers.FabScrollHelper;
import com.beemdevelopment.aegis.helpers.ViewHelper;
import com.beemdevelopment.aegis.icons.IconType;
import com.beemdevelopment.aegis.importers.DatabaseImporter; import com.beemdevelopment.aegis.importers.DatabaseImporter;
import com.beemdevelopment.aegis.importers.DatabaseImporterEntryException; import com.beemdevelopment.aegis.importers.DatabaseImporterEntryException;
import com.beemdevelopment.aegis.importers.DatabaseImporterException; import com.beemdevelopment.aegis.importers.DatabaseImporterException;
import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.dialogs.Dialogs;
import com.beemdevelopment.aegis.ui.models.ImportEntry; import com.beemdevelopment.aegis.ui.models.ImportEntry;
import com.beemdevelopment.aegis.ui.tasks.IconOptimizationTask;
import com.beemdevelopment.aegis.ui.tasks.RootShellTask; import com.beemdevelopment.aegis.ui.tasks.RootShellTask;
import com.beemdevelopment.aegis.ui.views.ImportEntriesAdapter; import com.beemdevelopment.aegis.ui.views.ImportEntriesAdapter;
import com.beemdevelopment.aegis.util.UUIDMap; import com.beemdevelopment.aegis.util.UUIDMap;
import com.beemdevelopment.aegis.helpers.ViewHelper;
import com.beemdevelopment.aegis.vault.VaultEntry; import com.beemdevelopment.aegis.vault.VaultEntry;
import com.beemdevelopment.aegis.vault.VaultEntryIcon;
import com.beemdevelopment.aegis.vault.VaultGroup; import com.beemdevelopment.aegis.vault.VaultGroup;
import com.beemdevelopment.aegis.vault.VaultRepository; import com.beemdevelopment.aegis.vault.VaultRepository;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -40,12 +44,15 @@ import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors;
public class ImportEntriesActivity extends AegisActivity { public class ImportEntriesActivity extends AegisActivity {
private View _view; private View _view;
private Menu _menu; private Menu _menu;
private RecyclerView _entriesView;
private ImportEntriesAdapter _adapter; private ImportEntriesAdapter _adapter;
private FabScrollHelper _fabScrollHelper; private FabScrollHelper _fabScrollHelper;
@ -68,8 +75,8 @@ public class ImportEntriesActivity extends AegisActivity {
bar.setDisplayHomeAsUpEnabled(true); bar.setDisplayHomeAsUpEnabled(true);
_adapter = new ImportEntriesAdapter(); _adapter = new ImportEntriesAdapter();
RecyclerView entriesView = findViewById(R.id.list_entries); _entriesView = findViewById(R.id.list_entries);
entriesView.addOnScrollListener(new RecyclerView.OnScrollListener() { _entriesView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override @Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy); super.onScrolled(recyclerView, dx, dy);
@ -78,9 +85,9 @@ public class ImportEntriesActivity extends AegisActivity {
}); });
LinearLayoutManager layoutManager = new LinearLayoutManager(this); LinearLayoutManager layoutManager = new LinearLayoutManager(this);
entriesView.setLayoutManager(layoutManager); _entriesView.setLayoutManager(layoutManager);
entriesView.setAdapter(_adapter); _entriesView.setAdapter(_adapter);
entriesView.setNestedScrollingEnabled(false); _entriesView.setNestedScrollingEnabled(false);
FloatingActionButton fab = findViewById(R.id.fab); FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(v -> { fab.setOnClickListener(v -> {
@ -172,7 +179,7 @@ public class ImportEntriesActivity extends AegisActivity {
state.decrypt(this, new DatabaseImporter.DecryptListener() { state.decrypt(this, new DatabaseImporter.DecryptListener() {
@Override @Override
public void onStateDecrypted(DatabaseImporter.State state) { public void onStateDecrypted(DatabaseImporter.State state) {
importDatabase(state); processDecryptedImporterState(state);
} }
@Override @Override
@ -187,7 +194,7 @@ public class ImportEntriesActivity extends AegisActivity {
} }
}); });
} else { } else {
importDatabase(state); processDecryptedImporterState(state);
} }
} catch (DatabaseImporterException e) { } catch (DatabaseImporterException e) {
e.printStackTrace(); e.printStackTrace();
@ -195,8 +202,7 @@ public class ImportEntriesActivity extends AegisActivity {
} }
} }
private void importDatabase(DatabaseImporter.State state) { private void processDecryptedImporterState(DatabaseImporter.State state) {
List<ImportEntry> importEntries = new ArrayList<>();
DatabaseImporter.Result result; DatabaseImporter.Result result;
try { try {
result = state.convert(); result = state.convert();
@ -206,8 +212,29 @@ public class ImportEntriesActivity extends AegisActivity {
return; return;
} }
UUIDMap<VaultEntry> entries = result.getEntries(); Map<UUID, VaultEntryIcon> icons = result.getEntries().getValues().stream()
for (VaultEntry entry : entries.getValues()) { .filter(e -> e.getIcon() != null
&& !e.getIcon().getType().equals(IconType.SVG)
&& !BitmapHelper.isVaultEntryIconOptimized(e.getIcon()))
.collect(Collectors.toMap(VaultEntry::getUUID, VaultEntry::getIcon));
if (!icons.isEmpty()) {
IconOptimizationTask task = new IconOptimizationTask(this, newIcons -> {
for (Map.Entry<UUID, VaultEntryIcon> mapEntry : newIcons.entrySet()) {
VaultEntry entry = result.getEntries().getByUUID(mapEntry.getKey());
entry.setIcon(mapEntry.getValue());
}
processImporterResult(result);
});
task.execute(getLifecycle(), icons);
} else {
processImporterResult(result);
}
}
private void processImporterResult(DatabaseImporter.Result result) {
List<ImportEntry> importEntries = new ArrayList<>();
for (VaultEntry entry : result.getEntries().getValues()) {
ImportEntry importEntry = new ImportEntry(entry); ImportEntry importEntry = new ImportEntry(entry);
_adapter.addEntry(importEntry); _adapter.addEntry(importEntry);
importEntries.add(importEntry); importEntries.add(importEntry);
@ -332,6 +359,31 @@ public class ImportEntriesActivity extends AegisActivity {
_adapter.setCheckboxStates(duplicateEntries, false); _adapter.setCheckboxStates(duplicateEntries, false);
Snackbar snackbar = Snackbar.make(_view, getResources().getQuantityString(R.plurals.import_duplicate_toast, duplicateEntries.size(), duplicateEntries.size()), Snackbar.LENGTH_INDEFINITE); Snackbar snackbar = Snackbar.make(_view, getResources().getQuantityString(R.plurals.import_duplicate_toast, duplicateEntries.size(), duplicateEntries.size()), Snackbar.LENGTH_INDEFINITE);
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onShown(Snackbar sb) {
int snackbarHeight = sb.getView().getHeight();
_entriesView.setPadding(
_entriesView.getPaddingLeft(),
_entriesView.getPaddingTop(),
_entriesView.getPaddingRight(),
_entriesView.getPaddingBottom() + snackbarHeight * 2
);
}
@Override
public void onDismissed(Snackbar sb, int event) {
int snackbarHeight = sb.getView().getHeight();
_entriesView.setPadding(
_entriesView.getPaddingLeft(),
_entriesView.getPaddingTop(),
_entriesView.getPaddingRight(),
_entriesView.getPaddingBottom() - snackbarHeight * 2
);
}
});
snackbar.setAction(R.string.undo, new View.OnClickListener() { snackbar.setAction(R.string.undo, new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {

View file

@ -44,9 +44,12 @@ import com.beemdevelopment.aegis.GroupPlaceholderType;
import com.beemdevelopment.aegis.Preferences; import com.beemdevelopment.aegis.Preferences;
import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.R;
import com.beemdevelopment.aegis.SortCategory; import com.beemdevelopment.aegis.SortCategory;
import com.beemdevelopment.aegis.helpers.BitmapHelper;
import com.beemdevelopment.aegis.helpers.DropdownHelper; import com.beemdevelopment.aegis.helpers.DropdownHelper;
import com.beemdevelopment.aegis.helpers.FabScrollHelper; import com.beemdevelopment.aegis.helpers.FabScrollHelper;
import com.beemdevelopment.aegis.helpers.PermissionHelper; import com.beemdevelopment.aegis.helpers.PermissionHelper;
import com.beemdevelopment.aegis.helpers.ViewHelper;
import com.beemdevelopment.aegis.icons.IconType;
import com.beemdevelopment.aegis.otp.GoogleAuthInfo; import com.beemdevelopment.aegis.otp.GoogleAuthInfo;
import com.beemdevelopment.aegis.otp.GoogleAuthInfoException; import com.beemdevelopment.aegis.otp.GoogleAuthInfoException;
import com.beemdevelopment.aegis.otp.OtpInfoException; import com.beemdevelopment.aegis.otp.OtpInfoException;
@ -55,12 +58,13 @@ import com.beemdevelopment.aegis.ui.fragments.preferences.BackupsPreferencesFrag
import com.beemdevelopment.aegis.ui.fragments.preferences.PreferencesFragment; import com.beemdevelopment.aegis.ui.fragments.preferences.PreferencesFragment;
import com.beemdevelopment.aegis.ui.models.ErrorCardInfo; import com.beemdevelopment.aegis.ui.models.ErrorCardInfo;
import com.beemdevelopment.aegis.ui.models.VaultGroupModel; import com.beemdevelopment.aegis.ui.models.VaultGroupModel;
import com.beemdevelopment.aegis.ui.tasks.IconOptimizationTask;
import com.beemdevelopment.aegis.ui.tasks.QrDecodeTask; import com.beemdevelopment.aegis.ui.tasks.QrDecodeTask;
import com.beemdevelopment.aegis.ui.views.EntryListView; import com.beemdevelopment.aegis.ui.views.EntryListView;
import com.beemdevelopment.aegis.util.TimeUtils; import com.beemdevelopment.aegis.util.TimeUtils;
import com.beemdevelopment.aegis.util.UUIDMap; import com.beemdevelopment.aegis.util.UUIDMap;
import com.beemdevelopment.aegis.helpers.ViewHelper;
import com.beemdevelopment.aegis.vault.VaultEntry; import com.beemdevelopment.aegis.vault.VaultEntry;
import com.beemdevelopment.aegis.vault.VaultEntryIcon;
import com.beemdevelopment.aegis.vault.VaultFile; import com.beemdevelopment.aegis.vault.VaultFile;
import com.beemdevelopment.aegis.vault.VaultGroup; import com.beemdevelopment.aegis.vault.VaultGroup;
import com.beemdevelopment.aegis.vault.VaultRepository; import com.beemdevelopment.aegis.vault.VaultRepository;
@ -216,8 +220,8 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
_entryListView.setPauseFocused(_prefs.isPauseFocusedEnabled()); _entryListView.setPauseFocused(_prefs.isPauseFocusedEnabled());
_entryListView.setTapToReveal(_prefs.isTapToRevealEnabled()); _entryListView.setTapToReveal(_prefs.isTapToRevealEnabled());
_entryListView.setTapToRevealTime(_prefs.getTapToRevealTime()); _entryListView.setTapToRevealTime(_prefs.getTapToRevealTime());
_entryListView.setSortCategory(_prefs.getCurrentSortCategory(), false);
_entryListView.setViewMode(_prefs.getCurrentViewMode()); _entryListView.setViewMode(_prefs.getCurrentViewMode());
_entryListView.setSortCategory(_prefs.getCurrentSortCategory(), false);
_entryListView.setCopyBehavior(_prefs.getCopyBehavior()); _entryListView.setCopyBehavior(_prefs.getCopyBehavior());
_entryListView.setSearchBehaviorMask(_prefs.getSearchBehaviorMask()); _entryListView.setSearchBehaviorMask(_prefs.getSearchBehaviorMask());
_prefGroupFilter = _prefs.getGroupFilter(); _prefGroupFilter = _prefs.getGroupFilter();
@ -274,6 +278,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
private void initializeGroups() { private void initializeGroups() {
_groupChip.removeAllViews(); _groupChip.removeAllViews();
_groupChip.setSingleSelection(!_prefs.isGroupMultiselectEnabled());
for (VaultGroup group : _groups) { for (VaultGroup group : _groups) {
addChipTo(_groupChip, new VaultGroupModel(group)); addChipTo(_groupChip, new VaultGroupModel(group));
@ -313,29 +318,24 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
} }
chip.setOnCheckedChangeListener((group1, isChecked) -> { chip.setOnCheckedChangeListener((group1, isChecked) -> {
Set<UUID> groupFilter = new HashSet<>();
if (_actionMode != null) { if (_actionMode != null) {
_actionMode.finish(); _actionMode.finish();
} }
setSaveChipVisibility(true); setSaveChipVisibility(true);
if (!isChecked) { // Reset group filter if last checked group gets unchecked
group1.setChecked(false); if (!isChecked && _groupFilter.size() == 1) {
Set<UUID> groupFilter = new HashSet<>();
chipGroup.clearCheck();
_groupFilter = groupFilter; _groupFilter = groupFilter;
_entryListView.setGroupFilter(groupFilter); _entryListView.setGroupFilter(groupFilter);
return; return;
} }
Object chipTag = group1.getTag(); _groupFilter = getGroupFilter(chipGroup);
if (chipTag == GroupPlaceholderType.NO_GROUP) { _entryListView.setGroupFilter(_groupFilter);
groupFilter.add(null);
} else {
groupFilter = getGroupFilter(chipGroup);
}
_groupFilter = groupFilter;
_entryListView.setGroupFilter(groupFilter);
}); });
chipGroup.addView(chip); chipGroup.addView(chip);
@ -368,8 +368,10 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
private static Set<UUID> getGroupFilter(ChipGroup chipGroup) { private static Set<UUID> getGroupFilter(ChipGroup chipGroup) {
return chipGroup.getCheckedChipIds().stream() return chipGroup.getCheckedChipIds().stream()
.filter(Objects::nonNull)
.map(i -> { .map(i -> {
Chip chip = chipGroup.findViewById(i); Chip chip = chipGroup.findViewById(i);
if (chip.getTag() instanceof VaultGroupModel) { if (chip.getTag() instanceof VaultGroupModel) {
VaultGroupModel group = (VaultGroupModel) chip.getTag(); VaultGroupModel group = (VaultGroupModel) chip.getTag();
return group.getUUID(); return group.getUUID();
@ -377,7 +379,6 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
return null; return null;
}) })
.filter(Objects::nonNull)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
} }
@ -724,6 +725,37 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
} }
} }
private void checkIconOptimization() {
if (!_vaultManager.getVault().areIconsOptimized()) {
Map<UUID, VaultEntryIcon> oldIcons = _vaultManager.getVault().getEntries().stream()
.filter(e -> e.getIcon() != null
&& !e.getIcon().getType().equals(IconType.SVG)
&& !BitmapHelper.isVaultEntryIconOptimized(e.getIcon()))
.collect(Collectors.toMap(VaultEntry::getUUID, VaultEntry::getIcon));
if (!oldIcons.isEmpty()) {
IconOptimizationTask task = new IconOptimizationTask(this, this::onIconsOptimized);
task.execute(getLifecycle(), oldIcons);
} else {
onIconsOptimized(Collections.emptyMap());
}
}
}
private void onIconsOptimized(Map<UUID, VaultEntryIcon> newIcons) {
for (Map.Entry<UUID, VaultEntryIcon> mapEntry : newIcons.entrySet()) {
VaultEntry entry = _vaultManager.getVault().getEntryByUUID(mapEntry.getKey());
entry.setIcon(mapEntry.getValue());
}
_vaultManager.getVault().setIconsOptimized(true);
saveAndBackupVault();
if (!newIcons.isEmpty()) {
_entryListView.setEntries(_vaultManager.getVault().getEntries());
}
}
private void onDecryptResult() { private void onDecryptResult() {
_auditLogRepository.addVaultUnlockedEvent(); _auditLogRepository.addVaultUnlockedEvent();
@ -912,6 +944,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
} else { } else {
loadEntries(); loadEntries();
checkTimeSyncSetting(); checkTimeSyncSetting();
checkIconOptimization();
} }
_lockBackPressHandler.setEnabled( _lockBackPressHandler.setEnabled(

View file

@ -518,11 +518,10 @@ public class ImportExportPreferencesFragment extends PreferencesFragment {
file = File.createTempFile(VaultRepository.FILENAME_PREFIX_EXPORT + "-", ".json", getExportCacheDir()); file = File.createTempFile(VaultRepository.FILENAME_PREFIX_EXPORT + "-", ".json", getExportCacheDir());
outStream = new FileOutputStream(file); outStream = new FileOutputStream(file);
cb.exportVault(outStream); cb.exportVault(outStream);
new ExportTask(requireContext(), new ExportResultListener()).execute(getLifecycle(), new ExportTask.Params(file, uri));
} catch (VaultRepositoryException | IOException e) { } catch (VaultRepositoryException | IOException e) {
e.printStackTrace(); e.printStackTrace();
Dialogs.showErrorDialog(requireContext(), R.string.exporting_vault_error, e); Dialogs.showErrorDialog(requireContext(), R.string.exporting_vault_error, e);
return;
} finally { } finally {
try { try {
if (outStream != null) { if (outStream != null) {
@ -532,6 +531,8 @@ public class ImportExportPreferencesFragment extends PreferencesFragment {
e.printStackTrace(); e.printStackTrace();
} }
} }
new ExportTask(requireContext(), new ExportResultListener()).execute(getLifecycle(), new ExportTask.Params(file, uri));
}, _exportFilter); }, _exportFilter);
_exportFilter = null; _exportFilter = null;
} }

View file

@ -34,6 +34,8 @@ public class ExportTask extends ProgressDialogTask<ExportTask.Params, Exception>
return null; return null;
} catch (IOException e) { } catch (IOException e) {
return e; return e;
} finally {
boolean ignored = params.getFile().delete();
} }
} }

View file

@ -0,0 +1,63 @@
package com.beemdevelopment.aegis.ui.tasks;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.beemdevelopment.aegis.R;
import com.beemdevelopment.aegis.helpers.BitmapHelper;
import com.beemdevelopment.aegis.icons.IconType;
import com.beemdevelopment.aegis.vault.VaultEntryIcon;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class IconOptimizationTask extends ProgressDialogTask<Map<UUID, VaultEntryIcon>, Map<UUID, VaultEntryIcon>> {
private final Callback _cb;
public IconOptimizationTask(Context context, Callback cb) {
super(context, context.getString(R.string.optimizing_icon));
_cb = cb;
}
@Override
protected Map<UUID, VaultEntryIcon> doInBackground(Map<UUID, VaultEntryIcon>... params) {
Map<UUID, VaultEntryIcon> res = new HashMap<>();
Context context = getDialog().getContext();
int i = 0;
Map<UUID, VaultEntryIcon> icons = params[0];
for (Map.Entry<UUID, VaultEntryIcon> entry : icons.entrySet()) {
if (icons.size() > 1) {
publishProgress(context.getString(R.string.optimizing_icon_multiple, i + 1, icons.size()));
}
i++;
VaultEntryIcon oldIcon = entry.getValue();
if (oldIcon == null || oldIcon.getType().equals(IconType.SVG)) {
continue;
}
if (BitmapHelper.isVaultEntryIconOptimized(oldIcon)) {
continue;
}
Bitmap bitmap = BitmapFactory.decodeByteArray(oldIcon.getBytes(), 0, oldIcon.getBytes().length);
VaultEntryIcon newIcon = BitmapHelper.toVaultEntryIcon(bitmap, oldIcon.getType());
bitmap.recycle();
res.put(entry.getKey(), newIcon);
}
return res;
}
@Override
protected void onPostExecute(Map<UUID, VaultEntryIcon> results) {
super.onPostExecute(results);
_cb.onTaskFinished(results);
}
public interface Callback {
void onTaskFinished(Map<UUID, VaultEntryIcon> results);
}
}

View file

@ -369,9 +369,11 @@ public class EntryHolder extends RecyclerView.ViewHolder {
public void hideCode() { public void hideCode() {
String code = getOtp(); String code = getOtp();
String hiddenText = code.replaceAll("\\S", Character.toString(HIDDEN_CHAR)); String hiddenText = code.replaceAll("\\S", Character.toString(HIDDEN_CHAR));
stopExpirationAnimation();
updateTextViewWithDots(_profileCode, hiddenText, code); updateTextViewWithDots(_profileCode, hiddenText, code);
updateTextViewWithDots(_nextProfileCode, hiddenText, code); updateTextViewWithDots(_nextProfileCode, hiddenText, code);
stopExpirationAnimation();
_hidden = true; _hidden = true;
} }
@ -384,6 +386,7 @@ public class EntryHolder extends RecyclerView.ViewHolder {
float dotsWidth = paint.measureText(hiddenCode); float dotsWidth = paint.measureText(hiddenCode);
float scaleFactor = codeWidth / dotsWidth; float scaleFactor = codeWidth / dotsWidth;
scaleFactor = (float)(Math.round(scaleFactor * 10.0) / 10.0); scaleFactor = (float)(Math.round(scaleFactor * 10.0) / 10.0);
textView.setTextColor(MaterialColors.getColor(textView, R.attr.colorCodeHidden));
// If scale is higher or equal to 0.8, do nothing and proceed with the normal text rendering // If scale is higher or equal to 0.8, do nothing and proceed with the normal text rendering
if (scaleFactor >= 0.8) { if (scaleFactor >= 0.8) {

View file

@ -200,6 +200,7 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener {
_adapter.setGroupFilter(groups); _adapter.setGroupFilter(groups);
_touchCallback.setIsLongPressDragEnabled(_adapter.isDragAndDropAllowed()); _touchCallback.setIsLongPressDragEnabled(_adapter.isDragAndDropAllowed());
updateEmptyState(); updateEmptyState();
updateDividerDecoration();
} }
public void setIsLongPressDragEnabled(boolean enabled) { public void setIsLongPressDragEnabled(boolean enabled) {
@ -232,6 +233,7 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener {
public void setSortCategory(SortCategory sortCategory, boolean apply) { public void setSortCategory(SortCategory sortCategory, boolean apply) {
_adapter.setSortCategory(sortCategory, apply); _adapter.setSortCategory(sortCategory, apply);
_touchCallback.setIsLongPressDragEnabled(_adapter.isDragAndDropAllowed()); _touchCallback.setIsLongPressDragEnabled(_adapter.isDragAndDropAllowed());
updateDividerDecoration();
} }
public void setUsageCounts(Map<UUID, Integer> usageCounts) { public void setUsageCounts(Map<UUID, Integer> usageCounts) {
@ -253,8 +255,8 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener {
public void setSearchFilter(String search) { public void setSearchFilter(String search) {
_adapter.setSearchFilter(search); _adapter.setSearchFilter(search);
_touchCallback.setIsLongPressDragEnabled(_adapter.isDragAndDropAllowed()); _touchCallback.setIsLongPressDragEnabled(_adapter.isDragAndDropAllowed());
updateEmptyState(); updateEmptyState();
updateDividerDecoration();
} }
public void setSelectedEntry(VaultEntry entry) { public void setSelectedEntry(VaultEntry entry) {

View file

@ -15,6 +15,7 @@ public class Vault {
private static final int VERSION = 3; private static final int VERSION = 3;
private final UUIDMap<VaultEntry> _entries = new UUIDMap<>(); private final UUIDMap<VaultEntry> _entries = new UUIDMap<>();
private final UUIDMap<VaultGroup> _groups = new UUIDMap<>(); private final UUIDMap<VaultGroup> _groups = new UUIDMap<>();
private boolean _iconsOptimized = true;
// Whether we've migrated the group list to the new format while parsing the vault // Whether we've migrated the group list to the new format while parsing the vault
private boolean _isGroupsMigrationFresh = false; private boolean _isGroupsMigrationFresh = false;
@ -42,6 +43,7 @@ public class Vault {
obj.put("version", VERSION); obj.put("version", VERSION);
obj.put("entries", entriesArray); obj.put("entries", entriesArray);
obj.put("groups", groupsArray); obj.put("groups", groupsArray);
obj.put("icons_optimized", _iconsOptimized);
return obj; return obj;
} catch (JSONException e) { } catch (JSONException e) {
@ -86,6 +88,10 @@ public class Vault {
entries.add(entry); entries.add(entry);
} }
if (!obj.optBoolean("icons_optimized")) {
vault.setIconsOptimized(false);
}
} catch (VaultEntryException | JSONException e) { } catch (VaultEntryException | JSONException e) {
throw new VaultException(e); throw new VaultException(e);
} }
@ -101,6 +107,14 @@ public class Vault {
return _isGroupsMigrationFresh; return _isGroupsMigrationFresh;
} }
public void setIconsOptimized(boolean optimized) {
_iconsOptimized = optimized;
}
public boolean areIconsOptimized() {
return _iconsOptimized;
}
public boolean migrateOldGroup(VaultEntry entry) { public boolean migrateOldGroup(VaultEntry entry) {
if (entry.getOldGroup() != null) { if (entry.getOldGroup() != null) {
Optional<VaultGroup> optGroup = getGroups().getValues() Optional<VaultGroup> optGroup = getGroups().getValues()

View file

@ -103,8 +103,14 @@ public class VaultEntry extends UUIDMap.Value {
entry.setOldGroup(JsonUtils.optString(obj, "group")); entry.setOldGroup(JsonUtils.optString(obj, "group"));
} }
// Silently ignore any errors that occur when trying to parse the icon of an
// entry. This allows us to introduce new icon types in the future (e.g. WebP)
// without breaking compatibility with older versions of Aegis.
try {
VaultEntryIcon icon = VaultEntryIcon.fromJson(obj); VaultEntryIcon icon = VaultEntryIcon.fromJson(obj);
entry.setIcon(icon); entry.setIcon(icon);
} catch (VaultEntryIconException ignored) {
}
return entry; return entry;
} catch (OtpInfoException | JSONException e) { } catch (OtpInfoException | JSONException e) {

View file

@ -23,6 +23,8 @@ public class VaultEntryIcon implements Serializable {
private final byte[] _hash; private final byte[] _hash;
private final IconType _type; private final IconType _type;
public static final int MAX_DIMENS = 512;
public VaultEntryIcon(byte @NonNull [] bytes, @NonNull IconType type) { public VaultEntryIcon(byte @NonNull [] bytes, @NonNull IconType type) {
this(bytes, type, generateHash(bytes, type)); this(bytes, type, generateHash(bytes, type));
} }
@ -70,7 +72,7 @@ public class VaultEntryIcon implements Serializable {
} }
@Nullable @Nullable
static VaultEntryIcon fromJson(@NonNull JSONObject obj) throws VaultEntryException { static VaultEntryIcon fromJson(@NonNull JSONObject obj) throws VaultEntryIconException {
try { try {
Object icon = obj.get("icon"); Object icon = obj.get("icon");
if (icon == JSONObject.NULL) { if (icon == JSONObject.NULL) {
@ -80,7 +82,7 @@ public class VaultEntryIcon implements Serializable {
String mime = JsonUtils.optString(obj, "icon_mime"); String mime = JsonUtils.optString(obj, "icon_mime");
IconType iconType = mime == null ? IconType.JPEG : IconType.fromMimeType(mime); IconType iconType = mime == null ? IconType.JPEG : IconType.fromMimeType(mime);
if (iconType == IconType.INVALID) { if (iconType == IconType.INVALID) {
throw new VaultEntryException(String.format("Bad icon MIME type: %s", mime)); throw new VaultEntryIconException(String.format("Bad icon MIME type: %s", mime));
} }
byte[] iconBytes = Base64.decode((String) icon); byte[] iconBytes = Base64.decode((String) icon);
@ -92,7 +94,7 @@ public class VaultEntryIcon implements Serializable {
return new VaultEntryIcon(iconBytes, iconType); return new VaultEntryIcon(iconBytes, iconType);
} catch (JSONException | EncodingException e) { } catch (JSONException | EncodingException e) {
throw new VaultEntryException(e); throw new VaultEntryIconException(e);
} }
} }

View file

@ -0,0 +1,11 @@
package com.beemdevelopment.aegis.vault;
public class VaultEntryIconException extends Exception {
public VaultEntryIconException(Throwable cause) {
super(cause);
}
public VaultEntryIconException(String message) {
super(message);
}
}

View file

@ -333,6 +333,14 @@ public class VaultRepository {
return _vault.isGroupsMigrationFresh(); return _vault.isGroupsMigrationFresh();
} }
public boolean areIconsOptimized() {
return _vault.areIconsOptimized();
}
public void setIconsOptimized(boolean optimized) {
_vault.setIconsOptimized(optimized);
}
public VaultFileCredentials getCredentials() { public VaultFileCredentials getCredentials() {
return _creds == null ? null : _creds.clone(); return _creds == null ? null : _creds.clone();
} }

View file

@ -23,7 +23,6 @@
android:id="@+id/list_entries" android:id="@+id/list_entries"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingBottom="60dp"
android:clipToPadding="false" android:clipToPadding="false"
android:scrollbars="vertical" android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/> app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

View file

@ -39,8 +39,7 @@
android:id="@+id/groupChipGroup" android:id="@+id/groupChipGroup"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:selectionRequired="true" app:selectionRequired="true"/>
app:singleSelection="true"/>
</LinearLayout> </LinearLayout>
</HorizontalScrollView> </HorizontalScrollView>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>

View file

@ -46,8 +46,13 @@
<string name="pref_code_group_size_summary">حدد عدد الأرقام لتجميع الرموز حسبها</string> <string name="pref_code_group_size_summary">حدد عدد الأرقام لتجميع الرموز حسبها</string>
<string name="pref_account_name_position_title">اضهِر اسم الحساب</string> <string name="pref_account_name_position_title">اضهِر اسم الحساب</string>
<string name="pref_show_next_code_title">أظهِر الرمز التالي</string> <string name="pref_show_next_code_title">أظهِر الرمز التالي</string>
<string name="pref_show_next_code_summary">ولّد وأظهِر الكود التالي قبل الوقت</string>
<string name="pref_expiration_state_title">أشر متى تكون الرموز على وشك الانتهاء</string>
<string name="pref_expiration_state_summary">غيّر لون الرموز البرمجية وجعلها غير واضحة عندما تكون على وشك الانتهاء</string>
<string name="pref_expiration_state_fallback">غيّر لون الرموز عندما تكون على وشك الانتهاء</string>
<string name="pref_shared_issuer_account_name_title">اضهِر اسم الحساب فقط عند الضرورة</string> <string name="pref_shared_issuer_account_name_title">اضهِر اسم الحساب فقط عند الضرورة</string>
<string name="pref_shared_issuer_account_name_summary">أضهِر أسماء الحسابات فقط عندما يشتركون نفس المصدر. سيتم إخفاء أسماء الحسابات الأخرى.</string> <string name="pref_shared_issuer_account_name_summary">أضهِر أسماء الحسابات فقط عندما يشتركون نفس المصدر. سيتم إخفاء أسماء الحسابات الأخرى.</string>
<string name="pref_account_name_position_summary_override">تم تجاوز هذا الإعداد بوضع عرض البلاط. سيتم عرض اسم الحساب أسفل المُصدّر.</string>
<string name="pref_import_file_title">استيراد من ملف</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_android_backups_title">النسخ الاحتياطية السحابية للأندرويد</string> <string name="pref_android_backups_title">النسخ الاحتياطية السحابية للأندرويد</string>
@ -59,7 +64,14 @@
<string name="pref_backups_reminder_summary">أظهر تذكيرًا للاحتفاظ بنسخة احتياطية من مخزنك في حالة عدم إجراء نسخ احتياطي لآخر تغييراتك.</string> <string name="pref_backups_reminder_summary">أظهر تذكيرًا للاحتفاظ بنسخة احتياطية من مخزنك في حالة عدم إجراء نسخ احتياطي لآخر تغييراتك.</string>
<string name="pref_backups_reminder_dialog_title">تعطيل تذكير النسخ الاحتياطي</string> <string name="pref_backups_reminder_dialog_title">تعطيل تذكير النسخ الاحتياطي</string>
<string name="pref_backups_reminder_dialog_summary">يعني تعطيل هذا التذكير أن Aegis لن يخبرك بما إذا كان لديك تغييرات لم يتم نسخها احتياطيًا حتى الآن أم لا. هذا يعرضك لخطر فقدان الوصول إلى الرموز الخاصة بك. هل أنت متأكد أنك تريد تعطيل التذكير؟</string> <string name="pref_backups_reminder_dialog_summary">يعني تعطيل هذا التذكير أن Aegis لن يخبرك بما إذا كان لديك تغييرات لم يتم نسخها احتياطيًا حتى الآن أم لا. هذا يعرضك لخطر فقدان الوصول إلى الرموز الخاصة بك. هل أنت متأكد أنك تريد تعطيل التذكير؟</string>
<string name="pref_backups_versioning_strategy_title">استراتيجية النسخ الاحتياطي</string>
<string name="pref_backups_versioning_strategy_keep_x_versions">احتفظ بعدد من الإصدارات</string>
<string name="pref_backups_versioning_strategy_single_backup">نُسخة احتياطية واحدة</string>
<string name="pref_backups_versioning_strategy_single_backup_warning">استراتيجية النسخ الاحتياطي المحددة غير موثوقة ولا يُنصح بها. فشل احتياطي واحد يمكن أن يؤدي إلى فقدان النسخة الاحتياطية الوحيدة.</string>
<string name="pref_backups_versioning_strategy_dialog_title">حدد استراتيجية النسخ الاحتياطي</string>
<string name="pref_backups_location_title">موقع النسخة الاحتياطية</string>
<string name="pref_backups_location_summary">سيتم تخزين النسخ الاحتياطية في</string> <string name="pref_backups_location_summary">سيتم تخزين النسخ الاحتياطية في</string>
<string name="pref_backup_location_summary">سيتم تخزين النسخ الاحتياطي في</string>
<string name="pref_backups_trigger_title">اصنع نسخة احتياطية</string> <string name="pref_backups_trigger_title">اصنع نسخة احتياطية</string>
<string name="pref_backups_trigger_summary">قم بعمل نسخة احتياطية يدويًّا</string> <string name="pref_backups_trigger_summary">قم بعمل نسخة احتياطية يدويًّا</string>
<string name="pref_backups_versions_title">عدد الإصدارات المراد الاحتفاظ بها</string> <string name="pref_backups_versions_title">عدد الإصدارات المراد الاحتفاظ بها</string>
@ -72,7 +84,7 @@
<item quantity="many">احتفظ ب%1$d إصدارات من النسخ الاحتياطية</item> <item quantity="many">احتفظ ب%1$d إصدارات من النسخ الاحتياطية</item>
<item quantity="other">احتفظ ب%1$d إصدارات من النسخ الاحتياطية</item> <item quantity="other">احتفظ ب%1$d إصدارات من النسخ الاحتياطية</item>
</plurals> </plurals>
<string name="pref_backups_versions_infinite_summary">الاحتفاظ بعدد غير محدود من النُسخ الاحتياطية</string> <string name="pref_backups_versions_infinite_summary">احتفظ بعدد غير محدود من النُسخ الاحتياطية</string>
<string name="pref_import_app_title">استيراد من تطبيق</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_title">تصدير</string>
@ -112,6 +124,8 @@
<string name="pref_encryption_summary">قم بتشفير المخزن وفك قفله بكملة مرور أو مصادقة بيومترية</string> <string name="pref_encryption_summary">قم بتشفير المخزن وفك قفله بكملة مرور أو مصادقة بيومترية</string>
<string name="pref_biometrics_title">الفتح البيومتري</string> <string name="pref_biometrics_title">الفتح البيومتري</string>
<string name="pref_biometrics_summary">السماح بالمصادقة البيومترية لفتح قفل المخزن</string> <string name="pref_biometrics_summary">السماح بالمصادقة البيومترية لفتح قفل المخزن</string>
<string name="pref_search_behavior_summary">البحث من خلال: %s</string>
<string name="pref_search_behavior_prompt">البحث في أي من الحقول التالية</string>
<string name="pref_search_behavior_type_name">الاسم</string> <string name="pref_search_behavior_type_name">الاسم</string>
<string name="pref_search_behavior_type_issuer">المصدِّر</string> <string name="pref_search_behavior_type_issuer">المصدِّر</string>
<string name="pref_search_behavior_type_note">ملاحظة</string> <string name="pref_search_behavior_type_note">ملاحظة</string>
@ -200,7 +214,7 @@
<string name="counter">العداد</string> <string name="counter">العداد</string>
<string name="digits">الأرقام</string> <string name="digits">الأرقام</string>
<string name="secret">السر</string> <string name="secret">السر</string>
<string name="scan">امسح كود QR</string> <string name="scan">امسح رمز QR</string>
<string name="scan_image">امسح الصورة</string> <string name="scan_image">امسح الصورة</string>
<string name="enter_manually">أدخل يدويًا</string> <string name="enter_manually">أدخل يدويًا</string>
<string name="set_up_biometric">تعيين الفتح البيومتري</string> <string name="set_up_biometric">تعيين الفتح البيومتري</string>
@ -225,6 +239,8 @@
<string name="snackbar_authentication_method">الرجاء تحديد طريقة مصادقة</string> <string name="snackbar_authentication_method">الرجاء تحديد طريقة مصادقة</string>
<string name="encrypting_vault">يتم تشفير المخزن</string> <string name="encrypting_vault">يتم تشفير المخزن</string>
<string name="exporting_vault">يجري تصدير المخزن</string> <string name="exporting_vault">يجري تصدير المخزن</string>
<string name="optimizing_icon">تحسين الأيقونة</string>
<string name="optimizing_icon_multiple">تحسين الأيقونات %1$d/%2$d</string>
<string name="reading_file">قراءة الملف</string> <string name="reading_file">قراءة الملف</string>
<string name="requesting_root_access">طلب صلاحية الجذر</string> <string name="requesting_root_access">طلب صلاحية الجذر</string>
<string name="analyzing_qr">تحليل رمز QR</string> <string name="analyzing_qr">تحليل رمز QR</string>
@ -338,6 +354,14 @@
<string name="partial_google_auth_import">اكتُشف تصدير Google Authenticator غير مكتمل</string> <string name="partial_google_auth_import">اكتُشف تصدير Google Authenticator غير مكتمل</string>
<string name="partial_google_auth_import_warning">بعض رموز QR مفقودة من الاستيراد. لم يتم العثور على الرموز التالية:\n\n<b>%s</b>\n\nيمكنك الاستمرار في استيراد هذا التصدير الجزئي ولكننا نوصي بإعادة المحاولة باستخدام جميع رموز QR حتى لا تخاطر بفقدان الوصول إلى أي رموز.</string> <string name="partial_google_auth_import_warning">بعض رموز QR مفقودة من الاستيراد. لم يتم العثور على الرموز التالية:\n\n<b>%s</b>\n\nيمكنك الاستمرار في استيراد هذا التصدير الجزئي ولكننا نوصي بإعادة المحاولة باستخدام جميع رموز QR حتى لا تخاطر بفقدان الوصول إلى أي رموز.</string>
<string name="missing_qr_code_descriptor">• رمز QR %d</string> <string name="missing_qr_code_descriptor">• رمز QR %d</string>
<plurals name="import_partial_export_anyway">
<item quantity="zero">استيراد %d رموز على أي حال</item>
<item quantity="one">استيراد رمز %d على أي حال</item>
<item quantity="two">استيراد رمزين على أي حال</item>
<item quantity="few">استيراد %d رموز على أي حال</item>
<item quantity="many">استيراد %d رموز على أي حال</item>
<item quantity="other">استيراد %d رموز على أي حال</item>
</plurals>
<string name="import_google_auth_failure">فشل استيراد تصدير Google Authenticator</string> <string name="import_google_auth_failure">فشل استيراد تصدير Google Authenticator</string>
<string name="unrelated_google_auth_batches_error">يحتوي التصدير على معلومات عن دُفعة غير ذات صلة. حاول استيراد دفعة واحدة في كل مرة.</string> <string name="unrelated_google_auth_batches_error">يحتوي التصدير على معلومات عن دُفعة غير ذات صلة. حاول استيراد دفعة واحدة في كل مرة.</string>
<string name="no_tokens_can_be_imported">نتيجة لذلك، لا يمكن استيراد أي رموز</string> <string name="no_tokens_can_be_imported">نتيجة لذلك، لا يمكن استيراد أي رموز</string>
@ -410,6 +434,7 @@
<string name="unable_to_process_deeplink">تعذرت معالجة الارتباط العميق</string> <string name="unable_to_process_deeplink">تعذرت معالجة الارتباط العميق</string>
<string name="unable_to_read_qrcode_file">غير قادر على قراءة ومعالجة رمز QR من الملف: %s.</string> <string name="unable_to_read_qrcode_file">غير قادر على قراءة ومعالجة رمز QR من الملف: %s.</string>
<string name="unable_to_process_shared_text">غير قادر على معالجة النص المُشارك ك OTP</string> <string name="unable_to_process_shared_text">غير قادر على معالجة النص المُشارك ك OTP</string>
<string name="unable_to_read_qrcode_files">غير قادر على قراءة ومعالجة بعض رموز QR. سيتم استيراد %1$d/%2$d فقط من المدخلات.</string>
<string name="unable_to_generate_qrcode">تعذّر توليد كود QR</string> <string name="unable_to_generate_qrcode">تعذّر توليد كود QR</string>
<string name="select_picture">اختر صورة</string> <string name="select_picture">اختر صورة</string>
<string name="select_icon">اختر أيقونة</string> <string name="select_icon">اختر أيقونة</string>
@ -440,7 +465,19 @@
<string name="time_sync_warning_message">يعتمد Aegis على وقت النظام لتوليد الأكواد الصحيحة. انحراف بمقادر بضعة ثواني يمكن أن يؤدي إلى أكواد خاطئة. يبدوا أن جهازك غير معيّن إلى مزامنة الوقت تلقائيًا. هل ترغب بفعل ذلك الآن؟</string> <string name="time_sync_warning_message">يعتمد Aegis على وقت النظام لتوليد الأكواد الصحيحة. انحراف بمقادر بضعة ثواني يمكن أن يؤدي إلى أكواد خاطئة. يبدوا أن جهازك غير معيّن إلى مزامنة الوقت تلقائيًا. هل ترغب بفعل ذلك الآن؟</string>
<string name="time_sync_warning_disable">إيقاف تحذيري. أنا أعرف ما أفعله.</string> <string name="time_sync_warning_disable">إيقاف تحذيري. أنا أعرف ما أفعله.</string>
<string name="google_qr_export_unrelated">تم العثور على كود QR لا علاقة له. حاول إعادة تشغيل الماسح.</string> <string name="google_qr_export_unrelated">تم العثور على كود QR لا علاقة له. حاول إعادة تشغيل الماسح.</string>
<plurals name="google_qr_export_scanned">
<item quantity="zero">تم مسح %1$d/%2$d رموز QR</item>
<item quantity="one">تم مسح %1$d/%2$d رمز QR</item>
<item quantity="two">تم مسح %1$d/%2$d رموز QR</item>
<item quantity="few">تم مسح %1$d/%2$d رموز QR</item>
<item quantity="many">تم مسح %1$d/%2$d رموز QR</item>
<item quantity="other">تم مسح %1$d/%2$d رموز QR</item>
</plurals>
<string name="google_qr_export_unexpected">انتظرت رمز QR #%1$d، ولكن مسحت #%2$d بدلًا منه</string>
<string name="backup_error_bar_message"><b>النسخ الاحتياطي للمخزن فشل مؤخرًا</b></string> <string name="backup_error_bar_message"><b>النسخ الاحتياطي للمخزن فشل مؤخرًا</b></string>
<string name="backup_error_dialog_details" comment="The first parameter is the type of backup (e.g. built-in or Android backup). The second parameter is an elapsed time in the style of 'x seconds/minutes/days ago'."> فشلت محاولة النسخ الاحتياطي للمخزون باستخدام %1$s بسبب حدوث خطأ. تمت محاولة النسخ الاحتياطي %2$s. الرجاء التحقق من إعدادات النسخ الاحتياطي للتأكد من أن النسخ الاحتياطي يمكن أن يكتمل بنجاح.
</string>
<string name="backup_permission_error_dialog_details" comment="The first parameter is the type of backup (e.g. built-in or Android backup). The second parameter is an elapsed time in the style of 'x seconds/minutes/days ago'.">فشلت محاولة النسخ الاحتياطي الأخيرة للمخزون باستخدام %1$s لأن Aegis لم يكن لديه الإذن قراءة وجهة النسخ الاحتياطي. تمت محاولة النسخ الاحتياطي %2$s. يمكن أن يحدث هذا الخطأ إذا قمت بنقل/إعادة تسمية وجهة النسخ الاحتياطي أو إذا قمت للتو باستعادة Aegis من نسخة احتياطية. الرجاء إعادة إعداد وجهة النسخ الإحتياطي. </string>
<string name="backup_system_builtin">النسخ الاحتياطية التلقائية المضنة في Aegis</string> <string name="backup_system_builtin">النسخ الاحتياطية التلقائية المضنة في Aegis</string>
<string name="backup_system_android">نظام النسخ الاحتياطي السحابي للأندرويد</string> <string name="backup_system_android">نظام النسخ الاحتياطي السحابي للأندرويد</string>
<string name="backup_reminder_bar_message_with_latest" comment="The parameter is an elapsed time in the style of 'x seconds/minutes/days ago'"> أحدث نسخة احتياطية قديمة (%s) <string name="backup_reminder_bar_message_with_latest" comment="The parameter is an elapsed time in the style of 'x seconds/minutes/days ago'"> أحدث نسخة احتياطية قديمة (%s)
@ -515,13 +552,13 @@
<string name="importer_help_2fas">توفير مِلَفّ النسخ الاحتياطي 2FAS Authenticator.</string> <string name="importer_help_2fas">توفير مِلَفّ النسخ الاحتياطي 2FAS Authenticator.</string>
<string name="importer_help_aegis">توفير مِلَفّ Aegis للتصدير / النسخ الاحتياطي.</string> <string name="importer_help_aegis">توفير مِلَفّ Aegis للتصدير / النسخ الاحتياطي.</string>
<string name="importer_help_authenticator_plus">توفير مِلَفّ تصدير Authenticator Plus الذي تم الحصول عليه من خلال <b>الإعدادات -&gt; النسخ الاحتياطي &amp; استعادة -&gt; تصدير كنص و HTML</b>.</string> <string name="importer_help_authenticator_plus">توفير مِلَفّ تصدير Authenticator Plus الذي تم الحصول عليه من خلال <b>الإعدادات -&gt; النسخ الاحتياطي &amp; استعادة -&gt; تصدير كنص و HTML</b>.</string>
<string name="importer_help_authenticator_pro">توفير مِلَفّ تصدير Authenticator Pro الذي تم الحصول عليه من خلال &lt;b&gt;الإعدادات -&gt; النسخ الاحتياطي -&gt; النسخ الاحتياطي إلى مِلَفّ مشفر (مستحسن).</string>
<string name="importer_help_authy">توفير نسخة من <b> /data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>، الموجود في دليل التخزين الداخلي لـ Authy.</string> <string name="importer_help_authy">توفير نسخة من <b> /data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>، الموجود في دليل التخزين الداخلي لـ Authy.</string>
<string name="importer_help_andotp">توفير مِلَفّ تصدير / نسخ احتياطي andOTP.</string> <string name="importer_help_andotp">توفير مِلَفّ تصدير / نسخ احتياطي andOTP.</string>
<string name="importer_help_bitwarden">توفير مِلَفّ تصدير / نسخ احتياطي لـ Bitwarden. الملفات المشفرة غير مدعومة.</string> <string name="importer_help_bitwarden">توفير مِلَفّ تصدير / نسخ احتياطي لـ Bitwarden. الملفات المشفرة غير مدعومة.</string>
<string name="importer_help_battle_net_authenticator">يرجى توفير نسخة من <b>/data/data/com.blizzard.messenger/shared_prefs/com.blizzard.messenger.authenticator_preferences.xml</b>، الموجود في دليل التخزين الداخلي لـ Battle.net Authenticator.</string> <string name="importer_help_battle_net_authenticator">يرجى توفير نسخة من <b>/data/data/com.blizzard.messenger/shared_prefs/com.blizzard.messenger.authenticator_preferences.xml</b>، الموجود في دليل التخزين الداخلي لـ Battle.net Authenticator.</string>
<string name="importer_help_duo">توفير نسخة من <b>/data/data/com.duosecurity.duomobile/files/duokit/accounts.json</b>، الموجودة في دليل التخزين الداخلي لـ DUO.</string> <string name="importer_help_duo">توفير نسخة من <b>/data/data/com.duosecurity.duomobile/files/duokit/accounts.json</b>، الموجودة في دليل التخزين الداخلي لـ DUO.</string>
<string name="importer_help_ente_auth">قم بتوفير ملف تصدير Ente Auth. حاليا فقط الملفات غير المشفرة مدعومة.</string> <string name="importer_help_ente_auth">قم بتوفير ملف تصدير Ente Auth. حاليا فقط الملفات غير المشفرة مدعومة.</string>
<string name="importer_help_freeotp">FreeOTP 2: توفير ملف احتياطي.\nFreeOTP 1.x: توفير نسخة من <b>/data/data/org.fedorahosted.freeotp/shared_prefs/tokens.xml</b>، الموجود في دليل التخزين الداخلي لـ FreeOTP.</string>
<string name="importer_help_freeotp_plus">توفير ملف تصدير FreeOTP +.</string> <string name="importer_help_freeotp_plus">توفير ملف تصدير FreeOTP +.</string>
<string name="importer_warning_title_freeotp2">توافق مع FreeOTP 2</string> <string name="importer_warning_title_freeotp2">توافق مع FreeOTP 2</string>
<string name="importer_warning_message_freeotp2">هناك عدد من المشاكل في FreeOTP 2 التي يمكن أن تؤدي إلى وجود نسخ احتياطية فاسدة. سوف يحاول درع إنقاذ أكبر عدد ممكن من الإدخالات، ولكن من الممكن أن يفشل البعض أو حتى الجميع في الاستيراد.</string> <string name="importer_warning_message_freeotp2">هناك عدد من المشاكل في FreeOTP 2 التي يمكن أن تؤدي إلى وجود نسخ احتياطية فاسدة. سوف يحاول درع إنقاذ أكبر عدد ممكن من الإدخالات، ولكن من الممكن أن يفشل البعض أو حتى الجميع في الاستيراد.</string>
@ -529,6 +566,7 @@
<string name="importer_help_microsoft_authenticator">توفير نسخة من<b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>، الموجود في دليل التخزين الداخلي لـ Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">توفير نسخة من<b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>، الموجود في دليل التخزين الداخلي لـ Microsoft Authenticator.</string>
<string name="importer_help_plain_text">توفير مِلَفّ نصي عادي مع Google Authenticator URI في كل سطر.</string> <string name="importer_help_plain_text">توفير مِلَفّ نصي عادي مع Google Authenticator URI في كل سطر.</string>
<string name="importer_help_steam"><b>لا يتم دعم Steam v3.0 والإصدارات الأحدث</b>. توفير نسخة من<b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>، الموجود في دليل التخزين الداخلي لـ Steam.</string> <string name="importer_help_steam"><b>لا يتم دعم Steam v3.0 والإصدارات الأحدث</b>. توفير نسخة من<b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>، الموجود في دليل التخزين الداخلي لـ Steam.</string>
<string name="importer_help_stratum">جهّز ملف تصدير Stratum تم الحصول عليه من خلال <b>الإعدادات -&gt; النسخ الاحتياطي -&gt; النسخ الاحتياطي للملف المشفر (موصى به)</b>.</string>
<string name="importer_help_totp_authenticator">توفير مِلَفّ تصدير TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">توفير مِلَفّ تصدير TOTP Authenticator.</string>
<string name="importer_help_winauth">توفير مِلَفّ تصدير WinAuth.</string> <string name="importer_help_winauth">توفير مِلَفّ تصدير WinAuth.</string>
<string name="import_assign_icons_dialog_title">تعيين أيقونات</string> <string name="import_assign_icons_dialog_title">تعيين أيقونات</string>

View file

@ -499,7 +499,6 @@
<string name="importer_help_2fas">Изберете файл с резервно копие на 2FAS Authenticator.</string> <string name="importer_help_2fas">Изберете файл с резервно копие на 2FAS Authenticator.</string>
<string name="importer_help_aegis">Изберете изнесен файл или резервно копие на Aegis.</string> <string name="importer_help_aegis">Изберете изнесен файл или резервно копие на Aegis.</string>
<string name="importer_help_authenticator_plus">Изберете файл с резервно копие на Authenticator Plus, получен от <b>Настройки → Резервни копия и възстановяване → Изнасяне като текст и HTML</b>.</string> <string name="importer_help_authenticator_plus">Изберете файл с резервно копие на Authenticator Plus, получен от <b>Настройки → Резервни копия и възстановяване → Изнасяне като текст и HTML</b>.</string>
<string name="importer_help_authenticator_pro">Изберете файл с резервно копие на Authenticator Pro, получен от <b>Настройки → Резервно копие → Резервно копие в шифрован файл (препотъчително)</b>.</string>
<string name="importer_help_authy">Изберете копие на файла <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, който се намира в папката с данни на Authy.</string> <string name="importer_help_authy">Изберете копие на файла <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, който се намира в папката с данни на Authy.</string>
<string name="importer_help_andotp">Изберете изнесен файл или резервно копие на andOTP.</string> <string name="importer_help_andotp">Изберете изнесен файл или резервно копие на andOTP.</string>
<string name="importer_help_bitwarden">Изберете изнесен файл или резервно копие на Bitwarden. Шифровани файлове не се поддържат.</string> <string name="importer_help_bitwarden">Изберете изнесен файл или резервно копие на Bitwarden. Шифровани файлове не се поддържат.</string>
@ -514,6 +513,7 @@
<string name="importer_help_microsoft_authenticator">Изберете копие на файла <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, който се намира в папката с данни на Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Изберете копие на файла <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, който се намира в папката с данни на Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Изберете чист текстов файл с Google Authenticator URI, по един на ред.</string> <string name="importer_help_plain_text">Изберете чист текстов файл с Google Authenticator URI, по един на ред.</string>
<string name="importer_help_steam"><b>Поддържат се файлове на Steam v3.0 и по-нови издания.</b>\n\nИзберете копие на файла <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, който се намира в папката с данни на Steam.</string> <string name="importer_help_steam"><b>Поддържат се файлове на Steam v3.0 и по-нови издания.</b>\n\nИзберете копие на файла <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, който се намира в папката с данни на Steam.</string>
<string name="importer_help_stratum">Изберете файл с резервно копие на Stratum, получен от <b>Настройки → Резервно копие → Резервно копие в шифрован файл (препотъчително)</b>.</string>
<string name="importer_help_totp_authenticator">Изберете изнесен файл от TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Изберете изнесен файл от TOTP Authenticator.</string>
<string name="importer_help_winauth">Изберете изнесен файл от WinAuth.</string> <string name="importer_help_winauth">Изберете изнесен файл от WinAuth.</string>
<string name="import_assign_icons_dialog_title">Задаване на икони</string> <string name="import_assign_icons_dialog_title">Задаване на икони</string>

View file

@ -227,6 +227,8 @@
<string name="snackbar_authentication_method">Si us plau, tria un mètode d\'autenticació</string> <string name="snackbar_authentication_method">Si us plau, tria un mètode d\'autenticació</string>
<string name="encrypting_vault">Xifrant la caixa forta</string> <string name="encrypting_vault">Xifrant la caixa forta</string>
<string name="exporting_vault">Exporta la caixa forta</string> <string name="exporting_vault">Exporta la caixa forta</string>
<string name="optimizing_icon">Optimitzant icona</string>
<string name="optimizing_icon_multiple">Optimitzant icones %1$d/%2$d</string>
<string name="reading_file">S\'està llegint el fitxer</string> <string name="reading_file">S\'està llegint el fitxer</string>
<string name="requesting_root_access">Demanant accés root</string> <string name="requesting_root_access">Demanant accés root</string>
<string name="analyzing_qr">Anàlisi del codi QR</string> <string name="analyzing_qr">Anàlisi del codi QR</string>
@ -497,7 +499,6 @@
<string name="importer_help_2fas">Subministra un fitxer exportat del 2FAS Authenticator.</string> <string name="importer_help_2fas">Subministra un fitxer exportat del 2FAS Authenticator.</string>
<string name="importer_help_aegis">Subministra un fitxer exportat del Aegis.</string> <string name="importer_help_aegis">Subministra un fitxer exportat del Aegis.</string>
<string name="importer_help_authenticator_plus">Subministra un fitxer exportat del Authenticator Plus, obtingut amb <b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>.</string> <string name="importer_help_authenticator_plus">Subministra un fitxer exportat del Authenticator Plus, obtingut amb <b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>.</string>
<string name="importer_help_authenticator_pro">Proveeix un fitxer exportat d\'Authenticat Pro, aconseguit a <b>Settings &gt; Back up &gt; Back up to encrypted file (recommended)</b>.</string>
<string name="importer_help_authy">Subministra una còpia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, que està a l\'emmagatzematge intern del teu dispositiu, al directori del Authy.</string> <string name="importer_help_authy">Subministra una còpia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, que està a l\'emmagatzematge intern del teu dispositiu, al directori del Authy.</string>
<string name="importer_help_andotp">Subministra un fitxer exportat del andOTP.</string> <string name="importer_help_andotp">Subministra un fitxer exportat del andOTP.</string>
<string name="importer_help_bitwarden">Subministreu un fitxer d\'exportació/còpia de seguretat de Bitwarden. Els fitxers xifrats no són compatibles.</string> <string name="importer_help_bitwarden">Subministreu un fitxer d\'exportació/còpia de seguretat de Bitwarden. Els fitxers xifrats no són compatibles.</string>
@ -512,6 +513,7 @@
<string name="importer_help_microsoft_authenticator">Subministra una còpia de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, que està a l\'emmagatzematge intern del teu dispositiu, al directori del Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Subministra una còpia de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, que està a l\'emmagatzematge intern del teu dispositiu, al directori del Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Subministra un fitxer de text pla amb una URI de Google Authenticator a cada línia.</string> <string name="importer_help_plain_text">Subministra un fitxer de text pla amb una URI de Google Authenticator a cada línia.</string>
<string name="importer_help_steam"><b>Steam v3.0 i posteriors no són compatibles</b>. Proporcioneu una còpia de <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, que es troba al directori d\'emmagatzematge intern de Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 i posteriors no són compatibles</b>. Proporcioneu una còpia de <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, que es troba al directori d\'emmagatzematge intern de Steam.</string>
<string name="importer_help_stratum">Proveeix un fitxer exportat de Stratum, aconseguit a <b>Settings &gt; Back up &gt; Back up to encrypted file (recommended)</b>.</string>
<string name="importer_help_totp_authenticator">Subministra un fitxer exportat del TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Subministra un fitxer exportat del TOTP Authenticator.</string>
<string name="importer_help_winauth">Subministra un fitxer exportat del WinAuth.</string> <string name="importer_help_winauth">Subministra un fitxer exportat del WinAuth.</string>
<string name="import_assign_icons_dialog_title">Assignar icones</string> <string name="import_assign_icons_dialog_title">Assignar icones</string>

View file

@ -525,7 +525,6 @@
<string name="importer_help_2fas">Dodejte záložní soubor 2FAS Authenticator.</string> <string name="importer_help_2fas">Dodejte záložní soubor 2FAS Authenticator.</string>
<string name="importer_help_aegis">Dodejte soubor exportu/zálohy Aegis.</string> <string name="importer_help_aegis">Dodejte soubor exportu/zálohy Aegis.</string>
<string name="importer_help_authenticator_plus">Dodejte exportovaný soubor Authenticator Plus získaný přes <b>Nastavení -&gt; Záloha a obnovení -&gt; Exportovat jako text a HTML</b>.</string> <string name="importer_help_authenticator_plus">Dodejte exportovaný soubor Authenticator Plus získaný přes <b>Nastavení -&gt; Záloha a obnovení -&gt; Exportovat jako text a HTML</b>.</string>
<string name="importer_help_authenticator_pro">Dodejte exportovaný soubor Authenticator Pro získaný přes <b>Nastavení -&gt; Záloha -&gt; Exportovat do šifrovaného souboru (doporučeno)</b>.</string>
<string name="importer_help_authy">Dodejte kopii <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, která se nachází v interním úložišti Authy.</string> <string name="importer_help_authy">Dodejte kopii <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, která se nachází v interním úložišti Authy.</string>
<string name="importer_help_andotp">Dodejte soubor exportu/zálohy andOTP.</string> <string name="importer_help_andotp">Dodejte soubor exportu/zálohy andOTP.</string>
<string name="importer_help_bitwarden">Vyberte soubor exportu/zálohy Bitwardenu. Šifrované soubory nejsou podporovány.</string> <string name="importer_help_bitwarden">Vyberte soubor exportu/zálohy Bitwardenu. Šifrované soubory nejsou podporovány.</string>
@ -540,6 +539,7 @@
<string name="importer_help_microsoft_authenticator">Dodejte kopii <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, která se nachází v interním úložišti Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Dodejte kopii <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, která se nachází v interním úložišti Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Dodejte prostý textový soubor Google Authenticator URI na každý řádek.</string> <string name="importer_help_plain_text">Dodejte prostý textový soubor Google Authenticator URI na každý řádek.</string>
<string name="importer_help_steam"><b>Steam v3.0 a novější nejsou podporovány</b>. Dodejte kopii souboru <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> umístěného v interním úložném adresáři aplikace Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 a novější nejsou podporovány</b>. Dodejte kopii souboru <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> umístěného v interním úložném adresáři aplikace Steam.</string>
<string name="importer_help_stratum">Dodejte exportovaný soubor Stratum získaný přes <b>Nastavení -&gt; Záloha -&gt; Exportovat do šifrovaného souboru (doporučeno)</b>.</string>
<string name="importer_help_totp_authenticator">Dodejte soubor exportu TOTP.</string> <string name="importer_help_totp_authenticator">Dodejte soubor exportu TOTP.</string>
<string name="importer_help_winauth">Dodejte soubor exportu WinAuth.</string> <string name="importer_help_winauth">Dodejte soubor exportu WinAuth.</string>
<string name="import_assign_icons_dialog_title">Přiřadit ikony</string> <string name="import_assign_icons_dialog_title">Přiřadit ikony</string>

View file

@ -499,7 +499,6 @@
<string name="importer_help_2fas">Stil en 2FAS-godkendelse sikkerhedskopifil til rådighed.</string> <string name="importer_help_2fas">Stil en 2FAS-godkendelse sikkerhedskopifil til rådighed.</string>
<string name="importer_help_aegis">Levér en Aegis eksport/backup fil.</string> <string name="importer_help_aegis">Levér en Aegis eksport/backup fil.</string>
<string name="importer_help_authenticator_plus">Levér en Authenticator Plus-eksportfil opnået gennem <b>Indstillinger -&gt; Sikkerhedskopi &amp; Gendan -&gt; Eksport som tekst og HTML</b>.</string> <string name="importer_help_authenticator_plus">Levér en Authenticator Plus-eksportfil opnået gennem <b>Indstillinger -&gt; Sikkerhedskopi &amp; Gendan -&gt; Eksport som tekst og HTML</b>.</string>
<string name="importer_help_authenticator_pro">Benyt en Authenticator Pro-eksportfil genereret via <b>Indstillinger -&gt; Sikkerhedskopiering -&gt; Sikkerhedskopiering til krypteret fil (anbefalet)</b>.</string>
<string name="importer_help_authy">Levér en kopi af <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, der er placeret i den interne lagermappe i Authy.</string> <string name="importer_help_authy">Levér en kopi af <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, der er placeret i den interne lagermappe i Authy.</string>
<string name="importer_help_andotp">Levér en andOTP eksport/backup fil.</string> <string name="importer_help_andotp">Levér en andOTP eksport/backup fil.</string>
<string name="importer_help_bitwarden">Vælg en Bitwarden-eksport-/sikkerhedskopifil. Krypterede filer understøttes ikke.</string> <string name="importer_help_bitwarden">Vælg en Bitwarden-eksport-/sikkerhedskopifil. Krypterede filer understøttes ikke.</string>
@ -514,6 +513,7 @@
<string name="importer_help_microsoft_authenticator">Levér en kopi af <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, der er placeret i den interne lagermappe i Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Levér en kopi af <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, der er placeret i den interne lagermappe i Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Levér en almindelig tekstfil med en Google Authenticator URI på hver linje.</string> <string name="importer_help_plain_text">Levér en almindelig tekstfil med en Google Authenticator URI på hver linje.</string>
<string name="importer_help_steam"><b>Steam v3.0 og nyere understøttes ikke</b>. Levér en kopi af <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> fra den interne lagermappe i Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 og nyere understøttes ikke</b>. Levér en kopi af <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> fra den interne lagermappe i Steam.</string>
<string name="importer_help_stratum">Benyt en Stratum-eksportfil genereret via <b>Indstillinger -&gt; Sikkerhedskopiering -&gt; Sikkerhedskopiering til krypteret fil (anbefalet)</b>.</string>
<string name="importer_help_totp_authenticator">Levér en TOTP Authenticator eksportfil.</string> <string name="importer_help_totp_authenticator">Levér en TOTP Authenticator eksportfil.</string>
<string name="importer_help_winauth">Levér en WinAuth eksportfil.</string> <string name="importer_help_winauth">Levér en WinAuth eksportfil.</string>
<string name="import_assign_icons_dialog_title">Tildel ikoner</string> <string name="import_assign_icons_dialog_title">Tildel ikoner</string>

View file

@ -227,6 +227,8 @@
<string name="snackbar_authentication_method">Bitte wähle eine Authentifizierungsmethode aus</string> <string name="snackbar_authentication_method">Bitte wähle eine Authentifizierungsmethode aus</string>
<string name="encrypting_vault">Verschlüsselung der Datenbank</string> <string name="encrypting_vault">Verschlüsselung der Datenbank</string>
<string name="exporting_vault">Exportieren der Datenbank</string> <string name="exporting_vault">Exportieren der Datenbank</string>
<string name="optimizing_icon">Symbol wird optimiert</string>
<string name="optimizing_icon_multiple">Symbol %1$d/%2$d wird optimiert</string>
<string name="reading_file">Datei wird gelesen</string> <string name="reading_file">Datei wird gelesen</string>
<string name="requesting_root_access">Root-Zugriff wird angefordert</string> <string name="requesting_root_access">Root-Zugriff wird angefordert</string>
<string name="analyzing_qr">QR-Code wird analysiert</string> <string name="analyzing_qr">QR-Code wird analysiert</string>
@ -499,7 +501,6 @@
<string name="importer_help_2fas">Gib eine 2FAS-Authenticator-Sicherungsdatei an.</string> <string name="importer_help_2fas">Gib eine 2FAS-Authenticator-Sicherungsdatei an.</string>
<string name="importer_help_aegis">Gib eine Aegis-Export-/Sicherungsdatei an.</string> <string name="importer_help_aegis">Gib eine Aegis-Export-/Sicherungsdatei an.</string>
<string name="importer_help_authenticator_plus">Gib eine Authenticator-Plus-Exportdatei an, die du über <b>Einstellungen -&gt; Sicherung &amp; Rücksicherung -&gt; Exportieren als Text und HTML Format</b> erhältst.</string> <string name="importer_help_authenticator_plus">Gib eine Authenticator-Plus-Exportdatei an, die du über <b>Einstellungen -&gt; Sicherung &amp; Rücksicherung -&gt; Exportieren als Text und HTML Format</b> erhältst.</string>
<string name="importer_help_authenticator_pro">Gib eine Authenticator-Pro-Exportdatei an, die du über <b>Einstellungen -&gt; Sicherung -&gt; Als verschlüsselte Datei sichern (empfohlen)</b> erhältst.</string>
<string name="importer_help_authy">Gib eine Kopie von <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> an, die sich im internen Speicherverzeichnis von Authy befindet.</string> <string name="importer_help_authy">Gib eine Kopie von <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> an, die sich im internen Speicherverzeichnis von Authy befindet.</string>
<string name="importer_help_andotp">Gib eine andOTP-Export-/Sicherungsdatei an.</string> <string name="importer_help_andotp">Gib eine andOTP-Export-/Sicherungsdatei an.</string>
<string name="importer_help_bitwarden">Gib eine Bitwarden-Export-/Sicherungsdatei an. Verschlüsselte Dateien werden nicht unterstützt.</string> <string name="importer_help_bitwarden">Gib eine Bitwarden-Export-/Sicherungsdatei an. Verschlüsselte Dateien werden nicht unterstützt.</string>
@ -514,6 +515,7 @@
<string name="importer_help_microsoft_authenticator">Gib eine Kopie von <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> an, die sich im internen Speicherverzeichnis von Microsoft Authenticator befindet.</string> <string name="importer_help_microsoft_authenticator">Gib eine Kopie von <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> an, die sich im internen Speicherverzeichnis von Microsoft Authenticator befindet.</string>
<string name="importer_help_plain_text">Gib eine Klartextdatei an, die in jeder Zeile eine Google-Authenticator-URI enthält.</string> <string name="importer_help_plain_text">Gib eine Klartextdatei an, die in jeder Zeile eine Google-Authenticator-URI enthält.</string>
<string name="importer_help_steam"><b>Steam v3.0 und neuer wird nicht unterstützt</b>. Gib eine Kopie von <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> an, die sich im internen Speicherverzeichnis von Steam befindet.</string> <string name="importer_help_steam"><b>Steam v3.0 und neuer wird nicht unterstützt</b>. Gib eine Kopie von <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> an, die sich im internen Speicherverzeichnis von Steam befindet.</string>
<string name="importer_help_stratum">Gib eine Stratum-Exportdatei an, die du über <b>Einstellungen -&gt; Sicherung -&gt; Als verschlüsselte Datei sichern (empfohlen)</b> erhältst.</string>
<string name="importer_help_totp_authenticator">Gib eine TOTP-Authenticator-Exportdatei an.</string> <string name="importer_help_totp_authenticator">Gib eine TOTP-Authenticator-Exportdatei an.</string>
<string name="importer_help_winauth">Gib eine WinAuth-Exportdatei an.</string> <string name="importer_help_winauth">Gib eine WinAuth-Exportdatei an.</string>
<string name="import_assign_icons_dialog_title">Symbole zuweisen</string> <string name="import_assign_icons_dialog_title">Symbole zuweisen</string>

View file

@ -227,6 +227,8 @@
<string name="snackbar_authentication_method">Παρακαλώ επιλέξτε μέθοδο ελέγχου ταυτότητας</string> <string name="snackbar_authentication_method">Παρακαλώ επιλέξτε μέθοδο ελέγχου ταυτότητας</string>
<string name="encrypting_vault">Κρυπτογράφηση κρύπτης</string> <string name="encrypting_vault">Κρυπτογράφηση κρύπτης</string>
<string name="exporting_vault">Εξαγωγή της κρύπτης</string> <string name="exporting_vault">Εξαγωγή της κρύπτης</string>
<string name="optimizing_icon">Βελτιστοποίηση εικονιδίου</string>
<string name="optimizing_icon_multiple">Βελτιστοποίηση εικονιδίων %1$d/%2$d</string>
<string name="reading_file">Ανάγνωση αρχείου</string> <string name="reading_file">Ανάγνωση αρχείου</string>
<string name="requesting_root_access">Αίτηση πρόσβασης root</string> <string name="requesting_root_access">Αίτηση πρόσβασης root</string>
<string name="analyzing_qr">Ανάλυση κωδικού QR</string> <string name="analyzing_qr">Ανάλυση κωδικού QR</string>
@ -498,7 +500,6 @@
<string name="importer_help_2fas">Παρέχετε ένα αντίγραφο ασφαλείας 2FAS Authenticator.</string> <string name="importer_help_2fas">Παρέχετε ένα αντίγραφο ασφαλείας 2FAS Authenticator.</string>
<string name="importer_help_aegis">Παρέχετε ένα αρχείο εξαγωγής/αντιγράφων ασφαλείας Aegis.</string> <string name="importer_help_aegis">Παρέχετε ένα αρχείο εξαγωγής/αντιγράφων ασφαλείας Aegis.</string>
<string name="importer_help_authenticator_plus">Παρέχετε ένα αρχείο εξαγωγής Authenticator Plus που αποκτήθηκε μέσω των <b> Ρυθμίσεων - &gt; Αντιγράφων ασφαλείας &amp; Επαναφορά - &gt; Εξαγωγή ως Κείμενο και HTML </b>.</string> <string name="importer_help_authenticator_plus">Παρέχετε ένα αρχείο εξαγωγής Authenticator Plus που αποκτήθηκε μέσω των <b> Ρυθμίσεων - &gt; Αντιγράφων ασφαλείας &amp; Επαναφορά - &gt; Εξαγωγή ως Κείμενο και HTML </b>.</string>
<string name="importer_help_authenticator_pro">Παρέχεται ένα αρχείο εξαγωγής Authenticator Pro που λαμβάνεται μέσω <b>Ρυθμίσεις -&gt; Δημιουργία αντιγράφων ασφαλείας -&gt; Δημιουργία σε κρυπτογραφημένο αρχείο (συνιστάται)</b>.</string>
<string name="importer_help_authy">Παρέχετε ένα αντίγραφο του <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, που βρίσκεται στον κατάλογο εσωτερικής αποθήκευσης του Authy.</string> <string name="importer_help_authy">Παρέχετε ένα αντίγραφο του <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, που βρίσκεται στον κατάλογο εσωτερικής αποθήκευσης του Authy.</string>
<string name="importer_help_andotp">Παρέχετε ένα αρχείο εξαγωγής/αντιγράφου ασφαλείας andOTP.</string> <string name="importer_help_andotp">Παρέχετε ένα αρχείο εξαγωγής/αντιγράφου ασφαλείας andOTP.</string>
<string name="importer_help_bitwarden">Παρέχετε ένα αρχείο εξαγωγής/αντιγράφων ασφαλείας Bitwarden. Τα κρυπτογραφημένα αρχεία δεν υποστηρίζονται.</string> <string name="importer_help_bitwarden">Παρέχετε ένα αρχείο εξαγωγής/αντιγράφων ασφαλείας Bitwarden. Τα κρυπτογραφημένα αρχεία δεν υποστηρίζονται.</string>
@ -513,6 +514,7 @@
<string name="importer_help_microsoft_authenticator">Παρέχεi ένα αντίγραφο του <b> /data/data/com.azure.authenticator/databases/PhoneFactor </b>, που βρίσκεται στον κατάλογο εσωτερικής αποθήκευσης του Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Παρέχεi ένα αντίγραφο του <b> /data/data/com.azure.authenticator/databases/PhoneFactor </b>, που βρίσκεται στον κατάλογο εσωτερικής αποθήκευσης του Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Παρέχεi ένα αρχείο απλού κειμένου με ένα URI Επαληθευτή Google σε κάθε γραμμή.</string> <string name="importer_help_plain_text">Παρέχεi ένα αρχείο απλού κειμένου με ένα URI Επαληθευτή Google σε κάθε γραμμή.</string>
<string name="importer_help_steam"><b>Το Steam v3.0 και νεότερα δεν υποστηρίζονται</b>. Παρέχετε αντίγραφο του <b>/data/data/com.valvesoftware. ndroid.steam.community/files/Steamguard-*.json</b>, που βρίσκεται στον εσωτερικό κατάλογο αποθήκευσης του Steam.</string> <string name="importer_help_steam"><b>Το Steam v3.0 και νεότερα δεν υποστηρίζονται</b>. Παρέχετε αντίγραφο του <b>/data/data/com.valvesoftware. ndroid.steam.community/files/Steamguard-*.json</b>, που βρίσκεται στον εσωτερικό κατάλογο αποθήκευσης του Steam.</string>
<string name="importer_help_stratum">Παροχή ενός αρχείου εξαγωγής Stratum που λαμβάνεται μέσω <b>Ρυθμίσεις -&gt; Αντίγραφα ασφαλείας -&gt; Δημιουργία αντιγράφου ασφαλείας σε κρυπτογραφημένο αρχείο (συνιστάται)</b>.</string>
<string name="importer_help_totp_authenticator">Παρέχετε ένα αρχείο εξαγωγής TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Παρέχετε ένα αρχείο εξαγωγής TOTP Authenticator.</string>
<string name="importer_help_winauth">Παρέχετε ένα αρχείο εξαγωγής WinAuth.</string> <string name="importer_help_winauth">Παρέχετε ένα αρχείο εξαγωγής WinAuth.</string>
<string name="import_assign_icons_dialog_title">Αντιστοίχιση εικονιδίων</string> <string name="import_assign_icons_dialog_title">Αντιστοίχιση εικονιδίων</string>

View file

@ -22,7 +22,7 @@
<string name="pref_cat_backups_android">Android</string> <string name="pref_cat_backups_android">Android</string>
<string name="pref_cat_backups_auto">Copias de seguridad automáticas</string> <string name="pref_cat_backups_auto">Copias de seguridad automáticas</string>
<string name="pref_section_behavior_title">Comportamiento</string> <string name="pref_section_behavior_title">Comportamiento</string>
<string name="pref_section_behavior_summary">Personaliza la funcionalidad y cómo se interactua con la lista de claves.</string> <string name="pref_section_behavior_summary">Personaliza la funcionalidad y cómo se interactúa con la lista de claves.</string>
<string name="pref_section_appearance_title">Apariencia</string> <string name="pref_section_appearance_title">Apariencia</string>
<string name="pref_section_appearance_summary">Ajusta el esquema de colores, idioma y otros parámetros relacionados con el aspecto de la aplicación.</string> <string name="pref_section_appearance_summary">Ajusta el esquema de colores, idioma y otros parámetros relacionados con el aspecto de la aplicación.</string>
<string name="pref_section_security_title">Seguridad</string> <string name="pref_section_security_title">Seguridad</string>
@ -34,7 +34,7 @@
<string name="pref_section_backups_title">Copias de seguridad</string> <string name="pref_section_backups_title">Copias de seguridad</string>
<string name="pref_section_backups_summary">Configura copias de seguridad automáticas en una carpeta local o activa el sistema de copia de seguridad en la nube de Android.</string> <string name="pref_section_backups_summary">Configura copias de seguridad automáticas en una carpeta local o activa el sistema de copia de seguridad en la nube de Android.</string>
<string name="pref_section_icon_packs">Paquetes de iconos</string> <string name="pref_section_icon_packs">Paquetes de iconos</string>
<string name="pref_section_icon_packs_summary">Gestiona e importa tus paquetes de iconos</string> <string name="pref_section_icon_packs_summary">Gestiona e importa tus paquetes de iconos.</string>
<string name="pref_select_theme_title">Tema</string> <string name="pref_select_theme_title">Tema</string>
<string name="pref_dynamic_colors_title">Colores dinámicos</string> <string name="pref_dynamic_colors_title">Colores dinámicos</string>
<string name="pref_dynamic_colors_summary">Colorear la interfaz con el mismo esquema de colores de tu tema de Android</string> <string name="pref_dynamic_colors_summary">Colorear la interfaz con el mismo esquema de colores de tu tema de Android</string>
@ -43,7 +43,7 @@
<string name="pref_show_icons_title">Mostrar iconos</string> <string name="pref_show_icons_title">Mostrar iconos</string>
<string name="pref_show_icons_summary">Mostrar iconos al lado de cada clave</string> <string name="pref_show_icons_summary">Mostrar iconos al lado de cada clave</string>
<string name="pref_code_group_size_title">Agrupación de los dígitos del código</string> <string name="pref_code_group_size_title">Agrupación de los dígitos del código</string>
<string name="pref_code_group_size_summary">Elige el número de dígitos por los que agrupar los códigos</string> <string name="pref_code_group_size_summary">Elige el número de dígitos por los que agrupar los códigos, dejando un espacio entre sí</string>
<string name="pref_account_name_position_title">Mostrar el nombre de la cuenta</string> <string name="pref_account_name_position_title">Mostrar el nombre de la cuenta</string>
<string name="pref_show_next_code_title">Ver siguiente clave</string> <string name="pref_show_next_code_title">Ver siguiente clave</string>
<string name="pref_show_next_code_summary">Generar y mostrar la siguiente clave antes de tiempo</string> <string name="pref_show_next_code_summary">Generar y mostrar la siguiente clave antes de tiempo</string>
@ -227,6 +227,8 @@
<string name="snackbar_authentication_method">Elige una forma de autenticarte</string> <string name="snackbar_authentication_method">Elige una forma de autenticarte</string>
<string name="encrypting_vault">Cifrando la bóveda</string> <string name="encrypting_vault">Cifrando la bóveda</string>
<string name="exporting_vault">Exportando la bóveda</string> <string name="exporting_vault">Exportando la bóveda</string>
<string name="optimizing_icon">Optimizando el icono</string>
<string name="optimizing_icon_multiple">Optimizando iconos: %1$d de %2$d</string>
<string name="reading_file">Leyendo archivo</string> <string name="reading_file">Leyendo archivo</string>
<string name="requesting_root_access">Solicitando acceso a la raíz</string> <string name="requesting_root_access">Solicitando acceso a la raíz</string>
<string name="analyzing_qr">Analizando código QR</string> <string name="analyzing_qr">Analizando código QR</string>
@ -276,9 +278,9 @@
<string name="backup_status_none">Aún no se han realizado copias de seguridad</string> <string name="backup_status_none">Aún no se han realizado copias de seguridad</string>
<string name="backup_warning_password">Las copias de seguridad se cifran usando una contraseña separada configurada en la configuración de seguridad</string> <string name="backup_warning_password">Las copias de seguridad se cifran usando una contraseña separada configurada en la configuración de seguridad</string>
<string name="documentsui_error">Tu dispositivo parece no tener DocumentsUI. Es un componente del sistema importante y necesario para elegir y crear archivos. Si utilizaste una herramienta para desinstalar (o hacer «debloat» de) aplicaciones que vienen de fábrica es posible que la hayas eliminado accidentalmente, tendrás que volverla a instalarla.</string> <string name="documentsui_error">Tu dispositivo parece no tener DocumentsUI. Es un componente del sistema importante y necesario para elegir y crear archivos. Si utilizaste una herramienta para desinstalar (o hacer «debloat» de) aplicaciones que vienen de fábrica es posible que la hayas eliminado accidentalmente, tendrás que volverla a instalarla.</string>
<string name="icon_pack_import_error">Se ha producido un error tratando de importar un paquete de iconos</string> <string name="icon_pack_import_error">Se ha producido un error al intentar importar un paquete de iconos</string>
<string name="icon_pack_import_exists_error">El paquete de iconos a importar ya existe. ¿Quieres reemplazarlo?</string> <string name="icon_pack_import_exists_error">El paquete de iconos a importar ya existe. ¿Quieres reemplazarlo?</string>
<string name="icon_pack_delete_error">Se ha producido un error tratando de eliminar un paquete de iconos</string> <string name="icon_pack_delete_error">Se ha producido un error al intentar borrar un paquete de iconos</string>
<plurals name="icon_pack_info"> <plurals name="icon_pack_info">
<item quantity="one">%d icono</item> <item quantity="one">%d icono</item>
<item quantity="other">%d iconos</item> <item quantity="other">%d iconos</item>
@ -321,7 +323,7 @@
<string name="partial_google_auth_import_warning">Algunos código QR de importación no están. Faltan los siguientes códigos:\n\n<b>%s</b>\n\nPuedes seguir adelante con esta importación parcial, pero te recomendamos volver a probar otra vez a escanear todos los códigos QR para evitar que pierdas el acceso a alguno de ellos.</string> <string name="partial_google_auth_import_warning">Algunos código QR de importación no están. Faltan los siguientes códigos:\n\n<b>%s</b>\n\nPuedes seguir adelante con esta importación parcial, pero te recomendamos volver a probar otra vez a escanear todos los códigos QR para evitar que pierdas el acceso a alguno de ellos.</string>
<string name="missing_qr_code_descriptor">• código QR %d</string> <string name="missing_qr_code_descriptor">• código QR %d</string>
<plurals name="import_partial_export_anyway"> <plurals name="import_partial_export_anyway">
<item quantity="one">Aún así quieres seguir con la importación de este código</item> <item quantity="one">Seguir con la importación de este código</item>
<item quantity="other">Seguir con la importación de estos %d códigos</item> <item quantity="other">Seguir con la importación de estos %d códigos</item>
</plurals> </plurals>
<string name="import_google_auth_failure">Ha fallado la importación de lo exportado de Google Authenticator</string> <string name="import_google_auth_failure">Ha fallado la importación de lo exportado de Google Authenticator</string>
@ -334,8 +336,8 @@
<string name="remove_group_description">¿Seguro que quieres borrar este grupo? Sus elementos se moverán automáticamente a «Sin grupo».</string> <string name="remove_group_description">¿Seguro que quieres borrar este grupo? Sus elementos se moverán automáticamente a «Sin grupo».</string>
<string name="remove_unused_groups">Eliminar grupos no utilizados</string> <string name="remove_unused_groups">Eliminar grupos no utilizados</string>
<string name="remove_unused_groups_description">¿Seguro que quieres borrar todos los grupos que estén vacíos y no tengan ninguna clave dentro?</string> <string name="remove_unused_groups_description">¿Seguro que quieres borrar todos los grupos que estén vacíos y no tengan ninguna clave dentro?</string>
<string name="remove_icon_pack">Eliminar paquete de iconos</string> <string name="remove_icon_pack">Borrar paquete de iconos</string>
<string name="remove_icon_pack_description">¿Está seguro de que desea eliminar este paquete de iconos? Las entradas que usen iconos de este paquete no se verán afectadas.</string> <string name="remove_icon_pack_description">¿Seguro que quieres borrar este paquete de iconos? Las claves que ya utilicen algún icono de este paquete no se verán afectadas.</string>
<string name="details">Más detalles</string> <string name="details">Más detalles</string>
<string name="show_error_details">Mostrar detalles del error</string> <string name="show_error_details">Mostrar detalles del error</string>
<string name="lock">Bloquear</string> <string name="lock">Bloquear</string>
@ -362,7 +364,7 @@
<string name="note" comment="Users can add a note to an entry">Nota</string> <string name="note" comment="Users can add a note to an entry">Nota</string>
<string name="clear">Restablecer</string> <string name="clear">Restablecer</string>
<string name="pref_highlight_entry_title">Resaltar códigos al pulsar</string> <string name="pref_highlight_entry_title">Resaltar códigos al pulsar</string>
<string name="pref_highlight_entry_summary">Resalta temporalmente cada código temporal que toques sobre los demás para que sea más fácil de distinguir</string> <string name="pref_highlight_entry_summary">Resalta temporalmente cada clave que toques sobre las demás para que sea más fácil de distinguir</string>
<string name="pref_minimize_on_copy_title">Minimizar al copiar</string> <string name="pref_minimize_on_copy_title">Minimizar al copiar</string>
<string name="pref_minimize_on_copy_summary">Minimiza la aplicación tras copiar claves</string> <string name="pref_minimize_on_copy_summary">Minimiza la aplicación tras copiar claves</string>
<string name="pref_copy_behavior_title">Copiar claves en el portapapeles</string> <string name="pref_copy_behavior_title">Copiar claves en el portapapeles</string>
@ -408,11 +410,11 @@
<string name="whats_new">Novedades</string> <string name="whats_new">Novedades</string>
<string name="github_description">Código fuente, problemas e información</string> <string name="github_description">Código fuente, problemas e información</string>
<string name="license">Licencia</string> <string name="license">Licencia</string>
<string name="license_description">Aegis Authenticator está licenciado bajo GPLv3</string> <string name="license_description">Aegis Authenticator se distribuye bajo los términos de la licencia GPLv3</string>
<string name="third_party_licenses">Licencias de terceros</string> <string name="third_party_licenses">Licencias de terceros</string>
<string name="third_party_licenses_description">Licencias de las bibliotecas de terceros usadas por Aegis</string> <string name="third_party_licenses_description">Licencias de las bibliotecas de terceros usadas por Aegis</string>
<string name="country_netherlands">Países Bajos</string> <string name="country_netherlands">Países Bajos</string>
<string name="email_us">Escribir un correo</string> <string name="email_us">Contacta por correo electrónico</string>
<string name="visit_website">Visita nuestra web</string> <string name="visit_website">Visita nuestra web</string>
<string name="about_support">Soporte</string> <string name="about_support">Soporte</string>
<string name="support_rate">Valorar</string> <string name="support_rate">Valorar</string>
@ -451,8 +453,8 @@
<string name="empty_list_title">No hay ninguna clave</string> <string name="empty_list_title">No hay ninguna clave</string>
<string name="empty_group_list">Todavía no hay ningún grupo; añade uno en la pantalla de editar claves</string> <string name="empty_group_list">Todavía no hay ningún grupo; añade uno en la pantalla de editar claves</string>
<string name="empty_group_list_title">No se encontraron grupos</string> <string name="empty_group_list_title">No se encontraron grupos</string>
<string name="no_icon_packs">Aún no se ha importado ningún paquete de iconos. Pulse el signo + para importar uno. Consejo: pruebe <a href="https://aegis-icons.github.io">aegis-icons</a>.</string> <string name="no_icon_packs">Aún no se ha importado ningún paquete de iconos. Pulsa «+» para importar uno. Consejo: te recomendamos que pruebes <a href="https://aegis-icons.github.io">aegis-icons</a>.</string>
<string name="no_icon_packs_title">Sin paquetes de iconos</string> <string name="no_icon_packs_title">No parece haber ningún paquete de iconos</string>
<string name="pick_icon">Seleccione un icono</string> <string name="pick_icon">Seleccione un icono</string>
<string name="uncategorized">Sin categorizar</string> <string name="uncategorized">Sin categorizar</string>
<string name="done">Hecho</string> <string name="done">Hecho</string>
@ -499,7 +501,6 @@
<string name="importer_help_2fas">Suministre un archivo exportado de 2FAS Authenticator.</string> <string name="importer_help_2fas">Suministre un archivo exportado de 2FAS Authenticator.</string>
<string name="importer_help_aegis">Suministre un archivo exportado/copia de seguridad de Aegis.</string> <string name="importer_help_aegis">Suministre un archivo exportado/copia de seguridad de Aegis.</string>
<string name="importer_help_authenticator_plus">Suministre un archivo exportado de Authenticator Plus obtenido a través de <b>Ajustes -&gt; Copias de seguridad -&gt; Exportar como texto y HTML</b>.</string> <string name="importer_help_authenticator_plus">Suministre un archivo exportado de Authenticator Plus obtenido a través de <b>Ajustes -&gt; Copias de seguridad -&gt; Exportar como texto y HTML</b>.</string>
<string name="importer_help_authenticator_pro">Suministra un archivo de exportación de Authenticator Pro obtenido a través de <b>Configuración -&gt; Copias de seguridad -&gt; Copia de seguridad en archivo cifrado (recomendado)</b>.</string>
<string name="importer_help_authy">Proporciona una copia del archivo <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, ubicado en la carpeta de almacenamiento interno de Authy.</string> <string name="importer_help_authy">Proporciona una copia del archivo <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, ubicado en la carpeta de almacenamiento interno de Authy.</string>
<string name="importer_help_andotp">Suministre un archivo exportado/copia de seguridad de andOTP.</string> <string name="importer_help_andotp">Suministre un archivo exportado/copia de seguridad de andOTP.</string>
<string name="importer_help_bitwarden">Suministra un archivo de exportación/copia de seguridad de Bitwarden. Los archivos encriptados no están soportados.</string> <string name="importer_help_bitwarden">Suministra un archivo de exportación/copia de seguridad de Bitwarden. Los archivos encriptados no están soportados.</string>
@ -514,6 +515,7 @@
<string name="importer_help_microsoft_authenticator">Suministre una copia de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, localizado en el directorio de almacenamiento interno de Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Suministre una copia de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, localizado en el directorio de almacenamiento interno de Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Suministre un archivo de texto plano con una URI de Google Authenticator en cada línea.</string> <string name="importer_help_plain_text">Suministre un archivo de texto plano con una URI de Google Authenticator en cada línea.</string>
<string name="importer_help_steam"><b>Steam v3.0 y posteriores no son compatibles</b>. Proporcione una copia de <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, ubicado en el directorio de almacenamiento interno de Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 y posteriores no son compatibles</b>. Proporcione una copia de <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, ubicado en el directorio de almacenamiento interno de Steam.</string>
<string name="importer_help_stratum">Suministra un archivo de exportación de Stratum obtenido a través de <b>Configuración -&gt; Copias de seguridad -&gt; Copia de seguridad en archivo cifrado (recomendado)</b>.</string>
<string name="importer_help_totp_authenticator">Suministre un archivo exportado de TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Suministre un archivo exportado de TOTP Authenticator.</string>
<string name="importer_help_winauth">Suministre un archivo exportado de WinAuth.</string> <string name="importer_help_winauth">Suministre un archivo exportado de WinAuth.</string>
<string name="import_assign_icons_dialog_title">Asignar iconos</string> <string name="import_assign_icons_dialog_title">Asignar iconos</string>
@ -523,11 +525,11 @@
<string name="groups">Grupos</string> <string name="groups">Grupos</string>
<string name="pref_focus_search">Resaltar el buscador al inicio</string> <string name="pref_focus_search">Resaltar el buscador al inicio</string>
<string name="pref_focus_search_summary">Enfoca la búsqueda inmediatamente después de abrir la aplicación.</string> <string name="pref_focus_search_summary">Enfoca la búsqueda inmediatamente después de abrir la aplicación.</string>
<string name="pref_grouping_halves">Mitades</string> <string name="pref_grouping_halves">En dos mitades</string>
<string name="pref_grouping_none">Sin agrupación</string> <string name="pref_grouping_none">Sin agrupar</string>
<string name="pref_grouping_size_two">Grupos de 2</string> <string name="pref_grouping_size_two">En grupos de dos</string>
<string name="pref_grouping_size_three">Grupos de 3</string> <string name="pref_grouping_size_three">En grupos de tres</string>
<string name="pref_grouping_size_four">Grupos de 4</string> <string name="pref_grouping_size_four">En grupos de cuatro</string>
<string name="pref_copy_behavior_never">Nunca</string> <string name="pref_copy_behavior_never">Nunca</string>
<string name="pref_copy_behavior_single_tap">Un toque</string> <string name="pref_copy_behavior_single_tap">Un toque</string>
<string name="pref_copy_behavior_double_tap">Dos toques</string> <string name="pref_copy_behavior_double_tap">Dos toques</string>

View file

@ -489,7 +489,6 @@
<string name="importer_help_2fas">Aukeratu 2FAS Authenticator segurtasun-kopia fitxategia.</string> <string name="importer_help_2fas">Aukeratu 2FAS Authenticator segurtasun-kopia fitxategia.</string>
<string name="importer_help_aegis">Aegisen esportazio/segurtasun-kopia fitxategia aukeratu.</string> <string name="importer_help_aegis">Aegisen esportazio/segurtasun-kopia fitxategia aukeratu.</string>
<string name="importer_help_authenticator_plus">Authenticator Plus esportazio fitxategia aukeratu. Lortzeko modua: <b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>.</string> <string name="importer_help_authenticator_plus">Authenticator Plus esportazio fitxategia aukeratu. Lortzeko modua: <b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>.</string>
<string name="importer_help_authenticator_pro">Aukeratu Authenticator Proren esportazio fitxategia <b>Settings -&gt; Back up -&gt; Back up to encrypted file (recommended)</b> aukeratik lortu bezala.</string>
<string name="importer_help_authy"><b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> fitxategia aukeratu.</string> <string name="importer_help_authy"><b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> fitxategia aukeratu.</string>
<string name="importer_help_andotp">andOTPren esportazio/segurtasun-kopia fitxategia aukeratu.</string> <string name="importer_help_andotp">andOTPren esportazio/segurtasun-kopia fitxategia aukeratu.</string>
<string name="importer_help_bitwarden">Kargatu Bitwardenen esportazio/segurtasun-kopia fitxategi bat. Ezin dituzu zifratutako fitxategiak kargatu.</string> <string name="importer_help_bitwarden">Kargatu Bitwardenen esportazio/segurtasun-kopia fitxategi bat. Ezin dituzu zifratutako fitxategiak kargatu.</string>

View file

@ -499,7 +499,6 @@
<string name="importer_help_2fas">Anna 2FAS Authenticatorin varmuuskopiotiedosto.</string> <string name="importer_help_2fas">Anna 2FAS Authenticatorin varmuuskopiotiedosto.</string>
<string name="importer_help_aegis">Anna Aegisisin vienti-/varmuuskopiotiedosto.</string> <string name="importer_help_aegis">Anna Aegisisin vienti-/varmuuskopiotiedosto.</string>
<string name="importer_help_authenticator_plus">Anna Authenticator Plus -varmuuskopiotiedosto, jonka saat menemällä <b>Asetukset -&gt;Varmuuskopiointi ja palautus -&gt; Vie teksti- tai HTML-tiedostona</b>.</string> <string name="importer_help_authenticator_plus">Anna Authenticator Plus -varmuuskopiotiedosto, jonka saat menemällä <b>Asetukset -&gt;Varmuuskopiointi ja palautus -&gt; Vie teksti- tai HTML-tiedostona</b>.</string>
<string name="importer_help_authenticator_pro">Toimita Authenticator Pro -vientitiedosto, jonka löydät menemällä <b>Asetukset -&gt; Varmuuskopioi -&gt; Varmuuskopioi salattuun tiedostoon (suositus)</b>.</string>
<string name="importer_help_authy">Anna kopio tiedostosta <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, joka sijaitsee Authyn sisäisessä tallennushakemistossa.</string> <string name="importer_help_authy">Anna kopio tiedostosta <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, joka sijaitsee Authyn sisäisessä tallennushakemistossa.</string>
<string name="importer_help_andotp">Anna andOTP:n vienti-/varmuuskopiotiedosto.</string> <string name="importer_help_andotp">Anna andOTP:n vienti-/varmuuskopiotiedosto.</string>
<string name="importer_help_bitwarden">Anna Bitwardenin vienti-/varmuuskopiotiedosto. Salattuja tiedostoja ei tueta.</string> <string name="importer_help_bitwarden">Anna Bitwardenin vienti-/varmuuskopiotiedosto. Salattuja tiedostoja ei tueta.</string>

View file

@ -499,7 +499,6 @@
<string name="importer_help_2fas">Fournir une sauvegarde 2FAS Authenticator.</string> <string name="importer_help_2fas">Fournir une sauvegarde 2FAS Authenticator.</string>
<string name="importer_help_aegis">Fournir un export/sauvegarde Aegis.</string> <string name="importer_help_aegis">Fournir un export/sauvegarde Aegis.</string>
<string name="importer_help_authenticator_plus">Fournir un export Authenticator Plus obtenu via <b>Paramètres -&gt; Sauvegarde &amp; Restauration -&gt; Exporter en tant que texte et HTML</b>.</string> <string name="importer_help_authenticator_plus">Fournir un export Authenticator Plus obtenu via <b>Paramètres -&gt; Sauvegarde &amp; Restauration -&gt; Exporter en tant que texte et HTML</b>.</string>
<string name="importer_help_authenticator_pro">Fournir un export Authenticator Pro obtenu via <b>Paramètres -&gt; Sauvegarde -&gt; Sauvegarder en tant que fichier chiffré (recommandé)</b>.</string>
<string name="importer_help_authy">Fournir une copie de <b>/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, situé dans le répertoire de stockage interne d\'Authy.</string> <string name="importer_help_authy">Fournir une copie de <b>/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, situé dans le répertoire de stockage interne d\'Authy.</string>
<string name="importer_help_andotp">Fournir un export/sauvegarde andOTP.</string> <string name="importer_help_andotp">Fournir un export/sauvegarde andOTP.</string>
<string name="importer_help_bitwarden">Fournir un export/sauvegarde Bitwarden. Les fichiers chiffrés ne sont pas pris en charge.</string> <string name="importer_help_bitwarden">Fournir un export/sauvegarde Bitwarden. Les fichiers chiffrés ne sont pas pris en charge.</string>
@ -514,6 +513,7 @@
<string name="importer_help_microsoft_authenticator">Fournir une copie de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, situé dans le répertoire de stockage interne de Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Fournir une copie de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, situé dans le répertoire de stockage interne de Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Fournir un fichier texte brut avec une URI Google Authenticator sur chaque ligne.</string> <string name="importer_help_plain_text">Fournir un fichier texte brut avec une URI Google Authenticator sur chaque ligne.</string>
<string name="importer_help_steam"><b>Steam 3.0 et plus récents ne sont pas pris en charge</b>. Fournissez une copie de <b>/data/data/com.valvesoftware. ndroid.steam.community/files/Steamguard-*.json</b>, situé dans le répertoire de stockage interne de Steam.</string> <string name="importer_help_steam"><b>Steam 3.0 et plus récents ne sont pas pris en charge</b>. Fournissez une copie de <b>/data/data/com.valvesoftware. ndroid.steam.community/files/Steamguard-*.json</b>, situé dans le répertoire de stockage interne de Steam.</string>
<string name="importer_help_stratum">Fournir un export Stratum obtenu via <b>Paramètres -&gt; Sauvegarde -&gt; Sauvegarder en tant que fichier chiffré (recommandé)</b>.</string>
<string name="importer_help_totp_authenticator">Fournir un export TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Fournir un export TOTP Authenticator.</string>
<string name="importer_help_winauth">Fournir un export WinAuth.</string> <string name="importer_help_winauth">Fournir un export WinAuth.</string>
<string name="import_assign_icons_dialog_title">Association des icônes</string> <string name="import_assign_icons_dialog_title">Association des icônes</string>

View file

@ -499,7 +499,6 @@
<string name="importer_help_2fas">Leverje in 2FAS-autentikator-eksportbestân oan.</string> <string name="importer_help_2fas">Leverje in 2FAS-autentikator-eksportbestân oan.</string>
<string name="importer_help_aegis">Leverje in Aegis-eksport-/reservekopybestân oan.</string> <string name="importer_help_aegis">Leverje in Aegis-eksport-/reservekopybestân oan.</string>
<string name="importer_help_authenticator_plus">Leverje in Authenticator Plus-eksportbestân oan krigen fia <b>Ynstellingen -&gt; Reservekopy &amp; Werstelle -&gt; Eksportearje as Tekst en HTML</b>.</string> <string name="importer_help_authenticator_plus">Leverje in Authenticator Plus-eksportbestân oan krigen fia <b>Ynstellingen -&gt; Reservekopy &amp; Werstelle -&gt; Eksportearje as Tekst en HTML</b>.</string>
<string name="importer_help_authenticator_pro">Leverje in Authenticator Pro-eksportbestân oan krigen fia <b>Ynstellingen -&gt; Reservekopy -&gt; Reservekopy nei fersifere bestân (oanrekommandearre)</b>.</string>
<string name="importer_help_authy">Leverje in kopy oan fan <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, pleatst yn de ynterne ûnthâldmap fan Authy.</string> <string name="importer_help_authy">Leverje in kopy oan fan <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, pleatst yn de ynterne ûnthâldmap fan Authy.</string>
<string name="importer_help_andotp">Leverje in andOTP-eksport-/reservekopybestân oan.</string> <string name="importer_help_andotp">Leverje in andOTP-eksport-/reservekopybestân oan.</string>
<string name="importer_help_bitwarden">Leverje in Bitwarden-eksport-/reservekopybestân oan. Fersifere bestannen wurde net stipe.</string> <string name="importer_help_bitwarden">Leverje in Bitwarden-eksport-/reservekopybestân oan. Fersifere bestannen wurde net stipe.</string>
@ -514,6 +513,7 @@
<string name="importer_help_microsoft_authenticator">Leverje in kopy oan fan <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, pleatst yn de ynterne ûnthâldmap fan Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Leverje in kopy oan fan <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, pleatst yn de ynterne ûnthâldmap fan Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Leverje in tekstbestân oan mei in Google Authenticator-URI op elke rigel.</string> <string name="importer_help_plain_text">Leverje in tekstbestân oan mei in Google Authenticator-URI op elke rigel.</string>
<string name="importer_help_steam"><b>Steam v3.0 en nijer wurde net stipe</b>. Soargje foar in kopy fan <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, te finen yn de ynterne ûnthâldmap fan Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 en nijer wurde net stipe</b>. Soargje foar in kopy fan <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, te finen yn de ynterne ûnthâldmap fan Steam.</string>
<string name="importer_help_stratum">Leverje in Stratum-eksportbestân oan, ûntfongen fia <b>Ynstellingen -&gt; Reservekopy -&gt; Reservekopy nei fersifere bestân (oanrekommandearre)</b>.</string>
<string name="importer_help_totp_authenticator">Leverje in TOTP-autentikator-eksportbestân oan.</string> <string name="importer_help_totp_authenticator">Leverje in TOTP-autentikator-eksportbestân oan.</string>
<string name="importer_help_winauth">Leverje in WinAuth-eksportbestân oan.</string> <string name="importer_help_winauth">Leverje in WinAuth-eksportbestân oan.</string>
<string name="import_assign_icons_dialog_title">Piktogrammen tawize</string> <string name="import_assign_icons_dialog_title">Piktogrammen tawize</string>

View file

@ -499,7 +499,6 @@
<string name="importer_help_2fas">Proporciona un ficheiro de copia de seguridade de 2FAS Authenticator.</string> <string name="importer_help_2fas">Proporciona un ficheiro de copia de seguridade de 2FAS Authenticator.</string>
<string name="importer_help_aegis">Proporciona un ficheiro de copia de seguridade ou de exportación de Aegis.</string> <string name="importer_help_aegis">Proporciona un ficheiro de copia de seguridade ou de exportación de Aegis.</string>
<string name="importer_help_authenticator_plus">Proporciona un ficheiro de exportación de Authenticator Plus obtido mediante <b>Axustes -&gt; Copia de seguridade e restauración -&gt; Exportar como texto e HTML</b>.</string> <string name="importer_help_authenticator_plus">Proporciona un ficheiro de exportación de Authenticator Plus obtido mediante <b>Axustes -&gt; Copia de seguridade e restauración -&gt; Exportar como texto e HTML</b>.</string>
<string name="importer_help_authenticator_pro">Proporciona un ficheiro de exportación de Authenticator Pro, obtido desde <b>Axustes -&gt; Copia de seguridade -&gt; Facer copia de seguridade nun ficheiro cifrado (recomendado)</b>.</string>
<string name="importer_help_authy">Proporciona unha copia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizado no directorio do almacenamento interno de Authy.</string> <string name="importer_help_authy">Proporciona unha copia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizado no directorio do almacenamento interno de Authy.</string>
<string name="importer_help_andotp">Proporciona un ficheiro de copia de seguridade ou de exportación de andOTP.</string> <string name="importer_help_andotp">Proporciona un ficheiro de copia de seguridade ou de exportación de andOTP.</string>
<string name="importer_help_bitwarden">Proporciona un ficheiro de copia de seguridade ou de exportación de Bitwarden. Non se admiten os ficheiros cifrados.</string> <string name="importer_help_bitwarden">Proporciona un ficheiro de copia de seguridade ou de exportación de Bitwarden. Non se admiten os ficheiros cifrados.</string>

View file

@ -399,7 +399,6 @@
<string name="importer_help_aegis">एजिस निर्यात/बैकअप फ़ाइल की आपूर्ति करें।</string> <string name="importer_help_aegis">एजिस निर्यात/बैकअप फ़ाइल की आपूर्ति करें।</string>
<string name="importer_help_authenticator_plus">एक प्रमाणक प्लस निर्यात फ़ाइल की आपूर्ति करें <string name="importer_help_authenticator_plus">एक प्रमाणक प्लस निर्यात फ़ाइल की आपूर्ति करें
<b>सेटिंग्स -&gt; बैकअप &amp; पुनर्स्थापना -&gt; पाठ और HTML के रूप में निर्यात करें</b></string> <b>सेटिंग्स -&gt; बैकअप &amp; पुनर्स्थापना -&gt; पाठ और HTML के रूप में निर्यात करें</b></string>
<string name="importer_help_authenticator_pro"><b>सेटिंग्स -&gt; बैक अप -&gt; के माध्यम से प्राप्त ऑथेंटिकेटर प्रो एक्सपोर्ट फ़ाइल की आपूर्ति करें। एन्क्रिप्टेड फ़ाइल का बैकअप लें (अनुशंसित)</b></string>
<string name="importer_help_authy">Authy की आंतरिक संग्रहण निर्देशिका में स्थित <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> की एक प्रति प्रदान करें।</string> <string name="importer_help_authy">Authy की आंतरिक संग्रहण निर्देशिका में स्थित <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> की एक प्रति प्रदान करें।</string>
<string name="importer_help_andotp">एक andOTP निर्यात/बैकअप फ़ाइल की आपूर्ति करें।</string> <string name="importer_help_andotp">एक andOTP निर्यात/बैकअप फ़ाइल की आपूर्ति करें।</string>
<string name="importer_help_bitwarden">एक बिटवर्डन निर्यात/बैकअप फ़ाइल की आपूर्ति करें। एन्क्रिप्टेड फ़ाइलें समर्थित नहीं हैं।</string> <string name="importer_help_bitwarden">एक बिटवर्डन निर्यात/बैकअप फ़ाइल की आपूर्ति करें। एन्क्रिप्टेड फ़ाइलें समर्थित नहीं हैं।</string>

View file

@ -358,7 +358,7 @@
<string name="preference_manage_groups_summary">Itt kezelheti és törölheti a csoportokat</string> <string name="preference_manage_groups_summary">Itt kezelheti és törölheti a csoportokat</string>
<string name="preference_reset_usage_count">Használati számláló visszaállítása</string> <string name="preference_reset_usage_count">Használati számláló visszaállítása</string>
<string name="preference_reset_usage_count_summary">Minden bejegyzés használati számlálójának visszaállítása</string> <string name="preference_reset_usage_count_summary">Minden bejegyzés használati számlálójának visszaállítása</string>
<string name="preference_reset_usage_count_dialog">Biztos, hogy visszaállítja a széf összes bejegyzésének használati számlálóját 0-ra?</string> <string name="preference_reset_usage_count_dialog">Biztos, hogy visszaállítja a széf összes bejegyzésének használati számlálóját nullára?</string>
<string name="note" comment="Users can add a note to an entry">Megjegyzés</string> <string name="note" comment="Users can add a note to an entry">Megjegyzés</string>
<string name="clear">Törlés</string> <string name="clear">Törlés</string>
<string name="pref_highlight_entry_title">Tokenek kiemelése koppintáskor</string> <string name="pref_highlight_entry_title">Tokenek kiemelése koppintáskor</string>
@ -499,7 +499,6 @@
<string name="importer_help_2fas">Adja meg a 2FAS Authenticator egy biztonsági mentési fájlját.</string> <string name="importer_help_2fas">Adja meg a 2FAS Authenticator egy biztonsági mentési fájlját.</string>
<string name="importer_help_aegis">Adja meg az Aegis egy exportját vagy biztonsági mentési fájlját.</string> <string name="importer_help_aegis">Adja meg az Aegis egy exportját vagy biztonsági mentési fájlját.</string>
<string name="importer_help_authenticator_plus">Adja meg az Authenticator Plus egy exportfájlját, melyet a <b>Beállítások -&gt; Mentés és visszaállítás -&gt; Exportálás szövegként vagy HTML-ként</b> résznél állíthat elő.</string> <string name="importer_help_authenticator_plus">Adja meg az Authenticator Plus egy exportfájlját, melyet a <b>Beállítások -&gt; Mentés és visszaállítás -&gt; Exportálás szövegként vagy HTML-ként</b> résznél állíthat elő.</string>
<string name="importer_help_authenticator_pro">Adja meg az Authenticator Plus egy exportfájlját, melyet a <b>Beállítások -&gt; Biztonsági mentés -&gt; Biztonsági mentés titkosított fájlba (ajánlott)</b> résznél állíthat elő.</string>
<string name="importer_help_authy">Adja meg a <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> másolatát, mely az Authy belső háttértáron levő mappájában található.</string> <string name="importer_help_authy">Adja meg a <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> másolatát, mely az Authy belső háttértáron levő mappájában található.</string>
<string name="importer_help_andotp">Adja meg az andOTP egy exportját vagy biztonsági mentési fájlját.</string> <string name="importer_help_andotp">Adja meg az andOTP egy exportját vagy biztonsági mentési fájlját.</string>
<string name="importer_help_bitwarden">Adja meg a Bitwarden egy exportját vagy biztonsági mentési fájlját. A titkosított fájlok nem támogatottak.</string> <string name="importer_help_bitwarden">Adja meg a Bitwarden egy exportját vagy biztonsági mentési fájlját. A titkosított fájlok nem támogatottak.</string>
@ -514,6 +513,7 @@
<string name="importer_help_microsoft_authenticator">Adja meg a <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> másolatát, mely a Microsoft Authenticator belső háttértáron levő mappájában található.</string> <string name="importer_help_microsoft_authenticator">Adja meg a <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> másolatát, mely a Microsoft Authenticator belső háttértáron levő mappájában található.</string>
<string name="importer_help_plain_text">Adjon meg egy szöveges fájlt, melynek minden sorában Google Hitelesítő URI található.</string> <string name="importer_help_plain_text">Adjon meg egy szöveges fájlt, melynek minden sorában Google Hitelesítő URI található.</string>
<string name="importer_help_steam"><b>A Steam v3.0 és újabb verziói nem támogatottak</b>. Adja hozzá a <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> mappából, mely a Steam belső háttértáron levő mappája.</string> <string name="importer_help_steam"><b>A Steam v3.0 és újabb verziói nem támogatottak</b>. Adja hozzá a <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> mappából, mely a Steam belső háttértáron levő mappája.</string>
<string name="importer_help_stratum">Adjon meg egy Stratum-exportálási fájlt, amelyet a <b>Beállítások &gt; Biztonsági mentés &gt; Biztonsági mentés titkosított fájlba (ajánlott)</b> menüpontban lehet előállítani.</string>
<string name="importer_help_totp_authenticator">Adjon meg egy TOTP Autheticator exportfájlt.</string> <string name="importer_help_totp_authenticator">Adjon meg egy TOTP Autheticator exportfájlt.</string>
<string name="importer_help_winauth">Adjon meg egy WinAuth exportfájlt.</string> <string name="importer_help_winauth">Adjon meg egy WinAuth exportfájlt.</string>
<string name="import_assign_icons_dialog_title">Ikonok hozzárendelése</string> <string name="import_assign_icons_dialog_title">Ikonok hozzárendelése</string>

View file

@ -484,7 +484,6 @@
<string name="importer_help_2fas">Sediakan sebuah berkas cadangan Autetikator 2FAS.</string> <string name="importer_help_2fas">Sediakan sebuah berkas cadangan Autetikator 2FAS.</string>
<string name="importer_help_aegis">Siapkan berkas ekspor/cadangan Aegis.</string> <string name="importer_help_aegis">Siapkan berkas ekspor/cadangan Aegis.</string>
<string name="importer_help_authenticator_plus">Siapkan berkas ekspor Authenticator Plus yang didapat melalui<b>Pengaturan -&gt; Pemulihan &amp; Cadangan -&gt; Ekspor sebagai Teks dan HTML</b>.</string> <string name="importer_help_authenticator_plus">Siapkan berkas ekspor Authenticator Plus yang didapat melalui<b>Pengaturan -&gt; Pemulihan &amp; Cadangan -&gt; Ekspor sebagai Teks dan HTML</b>.</string>
<string name="importer_help_authenticator_pro">Sediakan file ekspor Authenticator Pro yang diperoleh melalui <b>Pengaturan -&gt; Cadangkan -&gt; Cadangkan ke file terenkripsi (disarankan)</b>.</string>
<string name="importer_help_authy">Siapkan salinan <string name="importer_help_authy">Siapkan salinan
<b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, yang terletak di direktori penyimpanan internal Authy.</string> <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, yang terletak di direktori penyimpanan internal Authy.</string>
<string name="importer_help_andotp">Siapkan berkas ekspor/cadangan andOTP.</string> <string name="importer_help_andotp">Siapkan berkas ekspor/cadangan andOTP.</string>

View file

@ -445,7 +445,6 @@
<string name="importer_help_2fas">Seleziona un backup di 2FAS Authenticator.</string> <string name="importer_help_2fas">Seleziona un backup di 2FAS Authenticator.</string>
<string name="importer_help_aegis">Seleziona un file di backup di Aegis.</string> <string name="importer_help_aegis">Seleziona un file di backup di Aegis.</string>
<string name="importer_help_authenticator_plus">Seleziona un file di esportazione di Authenticator Plus ottenuto tramite <b>Impostazioni -&gt; Backup &amp; Ripristino -&gt; Esporta come testo e HTML</b>.</string> <string name="importer_help_authenticator_plus">Seleziona un file di esportazione di Authenticator Plus ottenuto tramite <b>Impostazioni -&gt; Backup &amp; Ripristino -&gt; Esporta come testo e HTML</b>.</string>
<string name="importer_help_authenticator_pro">Fornire un file di esportazione di Authenticator Pro ottenuto tramite <b>Impostazioni -&gt; Backup -&gt; Backup in file cifrato (raccomandato)</b>.</string>
<string name="importer_help_authy">Seleziona una copia di <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, situata nella directory della memoria interna di Authy.</string> <string name="importer_help_authy">Seleziona una copia di <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, situata nella directory della memoria interna di Authy.</string>
<string name="importer_help_andotp">Seleziona un file di backup di andOTP.</string> <string name="importer_help_andotp">Seleziona un file di backup di andOTP.</string>
<string name="importer_help_bitwarden">Seleziona un file di esportazione/backup di Bitwarden. I file crittografati non sono supportati.</string> <string name="importer_help_bitwarden">Seleziona un file di esportazione/backup di Bitwarden. I file crittografati non sono supportati.</string>

View file

@ -388,7 +388,6 @@
<string name="importer_help_2fas">ספק קובץ גיבוי של 2FAS Authenticator.</string> <string name="importer_help_2fas">ספק קובץ גיבוי של 2FAS Authenticator.</string>
<string name="importer_help_aegis">ספק קובץ ייצוא/גיבוי של Aegis.</string> <string name="importer_help_aegis">ספק קובץ ייצוא/גיבוי של Aegis.</string>
<string name="importer_help_authenticator_plus">ספק קובץ ייצוא של Authenticator Plus שהושג דרך <b>הגדרות -&gt; גיבוי &amp; שחזור -&gt; ייצוא כטקסט ו-HTML</b>.</string> <string name="importer_help_authenticator_plus">ספק קובץ ייצוא של Authenticator Plus שהושג דרך <b>הגדרות -&gt; גיבוי &amp; שחזור -&gt; ייצוא כטקסט ו-HTML</b>.</string>
<string name="importer_help_authenticator_pro">ספק קובץ ייצוא של Authenticator Pro שהושג דרך <b>הגדרות -&gt; גיבוי -&gt; גבה לקובץ מוצפן (מומלץ)</b>.</string>
<string name="importer_help_authy">ספק עותק של <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, הממוקם בספריית האחסון הפנימית של Authy.</string> <string name="importer_help_authy">ספק עותק של <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, הממוקם בספריית האחסון הפנימית של Authy.</string>
<string name="importer_help_andotp">ספק קובץ יצוא/גיבוי andOTP.</string> <string name="importer_help_andotp">ספק קובץ יצוא/גיבוי andOTP.</string>
<string name="importer_help_bitwarden">ספק קובץ יצוא/גיבוי של Bitwarden. קבצים מוצפנים אינם נתמכים.</string> <string name="importer_help_bitwarden">ספק קובץ יצוא/גיבוי של Bitwarden. קבצים מוצפנים אינם נתמכים.</string>

View file

@ -416,7 +416,6 @@
<string name="importer_help_2fas">2FAS Authenticatorのバックアップファイルを提供します。</string> <string name="importer_help_2fas">2FAS Authenticatorのバックアップファイルを提供します。</string>
<string name="importer_help_aegis">Aegisのエクスポート/バックアップファイルを提供します。</string> <string name="importer_help_aegis">Aegisのエクスポート/バックアップファイルを提供します。</string>
<string name="importer_help_authenticator_plus">Authenticator Plusの<b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>で取得したエクスポートファイルを提供します。</string> <string name="importer_help_authenticator_plus">Authenticator Plusの<b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>で取得したエクスポートファイルを提供します。</string>
<string name="importer_help_authenticator_pro">Authenticator Pro でファイルをエクスポートするには、<b>設定 -&gt; バックアップ -&gt; 暗号化されたファイルへバックアップ (推奨) </b> と進みます。</string>
<string name="importer_help_authy">Authyの内部ストレージディレクトリにある <b>/data/data/com.authy/shared_prefs/com.auth.storage.tokens.authenticator.xml</b>のコピーを提供します。</string> <string name="importer_help_authy">Authyの内部ストレージディレクトリにある <b>/data/data/com.authy/shared_prefs/com.auth.storage.tokens.authenticator.xml</b>のコピーを提供します。</string>
<string name="importer_help_andotp">andOTPのエクスポート/バックアップ ファイルを提供します。</string> <string name="importer_help_andotp">andOTPのエクスポート/バックアップ ファイルを提供します。</string>
<string name="importer_help_bitwarden">Bitwarden のエクスポート/バックアップファイルを提供します。暗号化されたファイルはサポートされていません。</string> <string name="importer_help_bitwarden">Bitwarden のエクスポート/バックアップファイルを提供します。暗号化されたファイルはサポートされていません。</string>

View file

@ -512,7 +512,6 @@
<string name="importer_help_2fas">Jāiesniedz 2FAS Authenticator izgūšanas datne.</string> <string name="importer_help_2fas">Jāiesniedz 2FAS Authenticator izgūšanas datne.</string>
<string name="importer_help_aegis">Jāiesniedz Aegis izgūšanas/rezerves kopijas datne.</string> <string name="importer_help_aegis">Jāiesniedz Aegis izgūšanas/rezerves kopijas datne.</string>
<string name="importer_help_authenticator_plus">Jāiesniedz Authenticator Plus izgūšanas datne, kas ir iegūta ar <b>Iestatījumi -&gt; Dublēšana un atjaunošana -&gt; Izgūt kā tekstu un HTML</b>.</string> <string name="importer_help_authenticator_plus">Jāiesniedz Authenticator Plus izgūšanas datne, kas ir iegūta ar <b>Iestatījumi -&gt; Dublēšana un atjaunošana -&gt; Izgūt kā tekstu un HTML</b>.</string>
<string name="importer_help_authenticator_pro">Jāiesniedz Authenticator Pro izgūšanas datne, kas ir iegūstama <b>Iestatījumi -&gt; Rezerves kopijas -&gt; Dublēt šifrētā datnē (ieteicams)</b>.</string>
<string name="importer_help_authy">Jāiesniedz <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> kopija, kas atrodas iekšējās krātuves Authy mapē.</string> <string name="importer_help_authy">Jāiesniedz <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> kopija, kas atrodas iekšējās krātuves Authy mapē.</string>
<string name="importer_help_andotp">Jāiesniedz andOTP izgūšanas/rezerves kopijas datne.</string> <string name="importer_help_andotp">Jāiesniedz andOTP izgūšanas/rezerves kopijas datne.</string>
<string name="importer_help_bitwarden">Jāiesniedz Bitwarden izgūšanas/rezerves kopijas datne. Šifrētas datnes netiek atbalstītas.</string> <string name="importer_help_bitwarden">Jāiesniedz Bitwarden izgūšanas/rezerves kopijas datne. Šifrētas datnes netiek atbalstītas.</string>
@ -527,6 +526,7 @@
<string name="importer_help_microsoft_authenticator">Jāiesniedz <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> kopija, kas atrodas iekšējās krātuves Microsoft Authenticator mapē.</string> <string name="importer_help_microsoft_authenticator">Jāiesniedz <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> kopija, kas atrodas iekšējās krātuves Microsoft Authenticator mapē.</string>
<string name="importer_help_plain_text">Jāiesniedz vienkārša teksta datne, kuras katra līnija satur vienu Google Authenticator URI.</string> <string name="importer_help_plain_text">Jāiesniedz vienkārša teksta datne, kuras katra līnija satur vienu Google Authenticator URI.</string>
<string name="importer_help_steam"><b>Steam v3.0 un jaunāks netiek atbalstīts</b>. Jāiesniedz <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> kopija, kas atrodas iekšējās krātuves Steam mapē.</string> <string name="importer_help_steam"><b>Steam v3.0 un jaunāks netiek atbalstīts</b>. Jāiesniedz <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b> kopija, kas atrodas iekšējās krātuves Steam mapē.</string>
<string name="importer_help_stratum">Jāiesniedz Stratum izgūšanas datne, kas ir iegūstama <b>Iestatījumi -&gt; Rezerves kopijas -&gt; Dublēt šifrētā datnē (ieteicams)</b>.</string>
<string name="importer_help_totp_authenticator">Jāiesniedz TOTP Authenticator izgūšanas datne.</string> <string name="importer_help_totp_authenticator">Jāiesniedz TOTP Authenticator izgūšanas datne.</string>
<string name="importer_help_winauth">Jāiesniedz WinAuth izgūšanas datne.</string> <string name="importer_help_winauth">Jāiesniedz WinAuth izgūšanas datne.</string>
<string name="import_assign_icons_dialog_title">Piešķirt ikonas</string> <string name="import_assign_icons_dialog_title">Piešķirt ikonas</string>

View file

@ -499,7 +499,6 @@
<string name="importer_help_2fas">Lever een 2FAS Authenticator-back-upbestand aan.</string> <string name="importer_help_2fas">Lever een 2FAS Authenticator-back-upbestand aan.</string>
<string name="importer_help_aegis">Lever een Aegis-export/-back-upbestand aan.</string> <string name="importer_help_aegis">Lever een Aegis-export/-back-upbestand aan.</string>
<string name="importer_help_authenticator_plus">Lever een Authenticator Plus-exportbestand aan verkregen via <b>Instellingen -&gt; Back-up &amp; Herstellen -&gt; Exporteren als Tekst en HTML</b>.</string> <string name="importer_help_authenticator_plus">Lever een Authenticator Plus-exportbestand aan verkregen via <b>Instellingen -&gt; Back-up &amp; Herstellen -&gt; Exporteren als Tekst en HTML</b>.</string>
<string name="importer_help_authenticator_pro">Lever een Authenticator Pro-exportbestand aan verkregen via <b>Instellingen -&gt; Back-up -&gt; Back-up naar versleuteld bestand (aanbevolen)</b>.</string>
<string name="importer_help_authy">Lever een kopie aan van <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, geplaatst in de interne opslagmap van Authy.</string> <string name="importer_help_authy">Lever een kopie aan van <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, geplaatst in de interne opslagmap van Authy.</string>
<string name="importer_help_andotp">Lever een andOTP-export/-back-upbestand aan.</string> <string name="importer_help_andotp">Lever een andOTP-export/-back-upbestand aan.</string>
<string name="importer_help_bitwarden">Lever een Bitwarden-export/-back-upbestand aan. Versleutelde bestanden worden niet ondersteund.</string> <string name="importer_help_bitwarden">Lever een Bitwarden-export/-back-upbestand aan. Versleutelde bestanden worden niet ondersteund.</string>
@ -514,6 +513,7 @@
<string name="importer_help_microsoft_authenticator">Lever een kopie aan van <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, geplaatst in de interne opslagmap van Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Lever een kopie aan van <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, geplaatst in de interne opslagmap van Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Lever een tekstbestand aan met een Google Authenticator URI op elke regel.</string> <string name="importer_help_plain_text">Lever een tekstbestand aan met een Google Authenticator URI op elke regel.</string>
<string name="importer_help_steam"><b>Steam v3.0 en nieuwer worden niet ondersteund</b>. Zorg voor een kopie van <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, te vinden in de interne opslagmap van Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 en nieuwer worden niet ondersteund</b>. Zorg voor een kopie van <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, te vinden in de interne opslagmap van Steam.</string>
<string name="importer_help_stratum">Lever een Stratum-exportbestand aan verkregen via <b>Instellingen -&gt; Back-up -&gt; Back-up naar versleuteld bestand (aanbevolen)</b>.</string>
<string name="importer_help_totp_authenticator">Lever een TOTP Authenticator-exportbestand aan.</string> <string name="importer_help_totp_authenticator">Lever een TOTP Authenticator-exportbestand aan.</string>
<string name="importer_help_winauth">Lever een WinAuth-exportbestand aan.</string> <string name="importer_help_winauth">Lever een WinAuth-exportbestand aan.</string>
<string name="import_assign_icons_dialog_title">Pictogrammen toewijzen</string> <string name="import_assign_icons_dialog_title">Pictogrammen toewijzen</string>

View file

@ -233,6 +233,8 @@
<string name="snackbar_authentication_method">Wybierz metodę uwierzytelnienia</string> <string name="snackbar_authentication_method">Wybierz metodę uwierzytelnienia</string>
<string name="encrypting_vault">Szyfrowanie sejfu</string> <string name="encrypting_vault">Szyfrowanie sejfu</string>
<string name="exporting_vault">Eksportowanie sejfu</string> <string name="exporting_vault">Eksportowanie sejfu</string>
<string name="optimizing_icon">Optymalizacja ikony</string>
<string name="optimizing_icon_multiple">Optymalizacja ikon %1$d/%2$d</string>
<string name="reading_file">Odczytywanie pliku</string> <string name="reading_file">Odczytywanie pliku</string>
<string name="requesting_root_access">Żądanie dostępu do roota</string> <string name="requesting_root_access">Żądanie dostępu do roota</string>
<string name="analyzing_qr">Analizowanie kodu QR</string> <string name="analyzing_qr">Analizowanie kodu QR</string>
@ -524,7 +526,6 @@
<string name="importer_help_2fas">Dostarcz plik zapasowy 2FAS Authenticator.</string> <string name="importer_help_2fas">Dostarcz plik zapasowy 2FAS Authenticator.</string>
<string name="importer_help_aegis">Dostarcz plik zapasowy Aegis.</string> <string name="importer_help_aegis">Dostarcz plik zapasowy Aegis.</string>
<string name="importer_help_authenticator_plus">Dostarcz plik eksportu Authenticator Plus uzyskany w <b>Ustawienia -&gt; Kopia zapasowa &amp; Przywróć -&gt; Eksportuj jako tekst i HTML</b>.</string> <string name="importer_help_authenticator_plus">Dostarcz plik eksportu Authenticator Plus uzyskany w <b>Ustawienia -&gt; Kopia zapasowa &amp; Przywróć -&gt; Eksportuj jako tekst i HTML</b>.</string>
<string name="importer_help_authenticator_pro">Dostarcz plik eksportu Authenticator Pro uzyskany przez <b>Ustawienia -&gt; Kopia zapasowa -&gt; Kopia zapasowa do zaszyfrowanego pliku (zalecana)</b>.</string>
<string name="importer_help_authy">Dostarcz kopię <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, znajdującą się w wewnętrznym katalogu pamięci Authy.</string> <string name="importer_help_authy">Dostarcz kopię <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, znajdującą się w wewnętrznym katalogu pamięci Authy.</string>
<string name="importer_help_andotp">Dostarcz plik andOTP eksportu/kopii zapasowej.</string> <string name="importer_help_andotp">Dostarcz plik andOTP eksportu/kopii zapasowej.</string>
<string name="importer_help_bitwarden">Dostarcz plik kopii zapasowej Bitwarden. Zaszyfrowane pliki nie są obsługiwane.</string> <string name="importer_help_bitwarden">Dostarcz plik kopii zapasowej Bitwarden. Zaszyfrowane pliki nie są obsługiwane.</string>
@ -542,6 +543,7 @@
<string name="importer_help_steam"><b>Steam v3.0 i nowsze nie są wspierane</b>. Dostarcz kopię <string name="importer_help_steam"><b>Steam v3.0 i nowsze nie są wspierane</b>. Dostarcz kopię
<b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>,
zlokalizowanego w wewnętrznym katalogu Steam.</string> zlokalizowanego w wewnętrznym katalogu Steam.</string>
<string name="importer_help_stratum">Dostarcz plik eksportu Stratum uzyskany przez <b>Ustawienia -&gt; Kopia zapasowa -&gt; Kopia zapasowa do zaszyfrowanego pliku (zalecana)</b>.</string>
<string name="importer_help_totp_authenticator">Dostarcz plik eksportowy TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Dostarcz plik eksportowy TOTP Authenticator.</string>
<string name="importer_help_winauth">Dostarcz plik eksportowy WinAuth.</string> <string name="importer_help_winauth">Dostarcz plik eksportowy WinAuth.</string>
<string name="import_assign_icons_dialog_title">Przypisz ikony</string> <string name="import_assign_icons_dialog_title">Przypisz ikony</string>

View file

@ -227,6 +227,8 @@
<string name="snackbar_authentication_method">Por favor selecione um método de autenticação</string> <string name="snackbar_authentication_method">Por favor selecione um método de autenticação</string>
<string name="encrypting_vault">Criptografando o cofre</string> <string name="encrypting_vault">Criptografando o cofre</string>
<string name="exporting_vault">Exportando o cofre</string> <string name="exporting_vault">Exportando o cofre</string>
<string name="optimizing_icon">Otimizando ícone</string>
<string name="optimizing_icon_multiple">Otimizando ícones %1$d/%2$d</string>
<string name="reading_file">Lendo arquivo</string> <string name="reading_file">Lendo arquivo</string>
<string name="requesting_root_access">Solicitando acesso root</string> <string name="requesting_root_access">Solicitando acesso root</string>
<string name="analyzing_qr">Analisando QR code</string> <string name="analyzing_qr">Analisando QR code</string>
@ -500,7 +502,6 @@ Por favor, configure o local de backup.
<string name="importer_help_2fas">Forneça um arquivo de backup do 2FAS Authenticator.</string> <string name="importer_help_2fas">Forneça um arquivo de backup do 2FAS Authenticator.</string>
<string name="importer_help_aegis">Fornecer um arquivo de exportação/backup do Aegis.</string> <string name="importer_help_aegis">Fornecer um arquivo de exportação/backup do Aegis.</string>
<string name="importer_help_authenticator_plus">Fornecer um arquivo de exportação do Autenticador Plus obtido através de <b>Configurações -&gt; Backup &amp; Restaurar -&gt; Exportar como Texto e HTML</b>.</string> <string name="importer_help_authenticator_plus">Fornecer um arquivo de exportação do Autenticador Plus obtido através de <b>Configurações -&gt; Backup &amp; Restaurar -&gt; Exportar como Texto e HTML</b>.</string>
<string name="importer_help_authenticator_pro">Forneça um arquivo de exportação do Autenticador Pro obtido através de <b>Configurações -&gt; Fazer backup -&gt; Fazer backup para arquivo criptografado (recomendado)</b>.</string>
<string name="importer_help_authy">Fornecer uma cópia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizado no diretório de armazenamento interno do Authy.</string> <string name="importer_help_authy">Fornecer uma cópia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizado no diretório de armazenamento interno do Authy.</string>
<string name="importer_help_andotp">Fornecer um arquivo de exportação/backup do andOTP.</string> <string name="importer_help_andotp">Fornecer um arquivo de exportação/backup do andOTP.</string>
<string name="importer_help_bitwarden">Forneça um arquivo de exportação/backup do Bitwarden. Arquivos criptografados não são suportados.</string> <string name="importer_help_bitwarden">Forneça um arquivo de exportação/backup do Bitwarden. Arquivos criptografados não são suportados.</string>
@ -515,6 +516,7 @@ Por favor, configure o local de backup.
<string name="importer_help_microsoft_authenticator">Fornecer uma cópia de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, localizado no diretório de armazenamento interno do Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Fornecer uma cópia de <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, localizado no diretório de armazenamento interno do Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Fornecer um arquivo de texto simples com um URI do Google Authenticator em cada linha.</string> <string name="importer_help_plain_text">Fornecer um arquivo de texto simples com um URI do Google Authenticator em cada linha.</string>
<string name="importer_help_steam"><b>Steam v3.0 e mais recentes não são suportados</b>. Forneça uma cópia de <b>/data/data/com.valvesoftware. ndroid.steam.community/files/Steamguard-*.json</b>, localizado no diretório de armazenamento interno do Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 e mais recentes não são suportados</b>. Forneça uma cópia de <b>/data/data/com.valvesoftware. ndroid.steam.community/files/Steamguard-*.json</b>, localizado no diretório de armazenamento interno do Steam.</string>
<string name="importer_help_stratum">Forneça um arquivo de exportação do Stratum obtido através das <b>Configurações -&gt; Backup -&gt; Fazer backup para arquivo criptografado (recomendado)</b>.</string>
<string name="importer_help_totp_authenticator">Fornecer um arquivo de exportação de Autenticador TOTP.</string> <string name="importer_help_totp_authenticator">Fornecer um arquivo de exportação de Autenticador TOTP.</string>
<string name="importer_help_winauth">Fornecer um arquivo de exportação do WinAuth.</string> <string name="importer_help_winauth">Fornecer um arquivo de exportação do WinAuth.</string>
<string name="import_assign_icons_dialog_title">Atribuir ícones</string> <string name="import_assign_icons_dialog_title">Atribuir ícones</string>

View file

@ -453,7 +453,6 @@
<string name="importer_help_2fas">Fornecer um arquivo de backup de 2FAS Authenticator.</string> <string name="importer_help_2fas">Fornecer um arquivo de backup de 2FAS Authenticator.</string>
<string name="importer_help_aegis">Fornecer um arquivo de exportação/backup do Aegis.</string> <string name="importer_help_aegis">Fornecer um arquivo de exportação/backup do Aegis.</string>
<string name="importer_help_authenticator_plus">Fornecer um arquivo de exportação do Autenticador Plus obtido através de <b>Configurações -&gt; Backup &amp; Restaurar -&gt; Exportar como Texto e HTML</b>.</string> <string name="importer_help_authenticator_plus">Fornecer um arquivo de exportação do Autenticador Plus obtido através de <b>Configurações -&gt; Backup &amp; Restaurar -&gt; Exportar como Texto e HTML</b>.</string>
<string name="importer_help_authenticator_pro">Forneça um ficheiro de exportação do Authenticator Pro obtido através de <b>Settings -&gt; Back up -&gt; Back up to encrypted file (recommended)</b>.</string>
<string name="importer_help_authy">Fornecer uma cópia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizado no diretório de armazenamento interno do Authy.</string> <string name="importer_help_authy">Fornecer uma cópia de <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizado no diretório de armazenamento interno do Authy.</string>
<string name="importer_help_andotp">Fornecer um arquivo de exportação/backup do andOTP.</string> <string name="importer_help_andotp">Fornecer um arquivo de exportação/backup do andOTP.</string>
<string name="importer_help_bitwarden">Forneça um ficheiro de exportação/backup Bitwarden. Os ficheiros encriptados não são suportados.</string> <string name="importer_help_bitwarden">Forneça um ficheiro de exportação/backup Bitwarden. Os ficheiros encriptados não são suportados.</string>

View file

@ -500,7 +500,6 @@
<string name="importer_help_2fas">Furnizează un fișier de backup 2FAS autentificator.</string> <string name="importer_help_2fas">Furnizează un fișier de backup 2FAS autentificator.</string>
<string name="importer_help_aegis">Furnizează un fișier export/copie de rezervă Aegis.</string> <string name="importer_help_aegis">Furnizează un fișier export/copie de rezervă Aegis.</string>
<string name="importer_help_authenticator_plus">Furnizează un fişier de export de Autentificator Plus obţinut prin <b>Setări -&gt; Copie de rezervă &amp; Restore -&gt; Export ca Text şi HTML</b>.</string> <string name="importer_help_authenticator_plus">Furnizează un fişier de export de Autentificator Plus obţinut prin <b>Setări -&gt; Copie de rezervă &amp; Restore -&gt; Export ca Text şi HTML</b>.</string>
<string name="importer_help_authenticator_pro">Furnizează fișierul cu parole provenit de la Authenticator Pro, fișier ce poate fi obținut prin <b>Setări -&gt; Backup -&gt; Backup criptat (recomandat)</b>.</string>
<string name="importer_help_authy">Furnizează o copie a <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizată în directorul de stocare internă al Authy.</string> <string name="importer_help_authy">Furnizează o copie a <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, localizată în directorul de stocare internă al Authy.</string>
<string name="importer_help_andotp">Furnizați un fişier de export/copie de rezervă andOTP.</string> <string name="importer_help_andotp">Furnizați un fişier de export/copie de rezervă andOTP.</string>
<string name="importer_help_bitwarden">Furnizează un fișier de backup din aplicația Bitwarden. Fișierele criptate nu sunt suportate.</string> <string name="importer_help_bitwarden">Furnizează un fișier de backup din aplicația Bitwarden. Fișierele criptate nu sunt suportate.</string>

View file

@ -525,7 +525,6 @@
<string name="importer_help_2fas">Необходим файл резервной копии 2FAS.</string> <string name="importer_help_2fas">Необходим файл резервной копии 2FAS.</string>
<string name="importer_help_aegis">Необходим файл экспорта/резервной копии Aegis.</string> <string name="importer_help_aegis">Необходим файл экспорта/резервной копии Aegis.</string>
<string name="importer_help_authenticator_plus">Необходим файл экспорта Authenticator Plus, полученный через <b>«Настройки» → «Рез. копия и восстановление» → «Экспорт текста и HTML»</b>.</string> <string name="importer_help_authenticator_plus">Необходим файл экспорта Authenticator Plus, полученный через <b>«Настройки» → «Рез. копия и восстановление» → «Экспорт текста и HTML»</b>.</string>
<string name="importer_help_authenticator_pro">Необходим файл экспорта Authenticator Pro, полученный через <b>«Настройки» → «Резервное копирование» → «Резервное копирование в зашифрованный файл (рекомендуется)»</b>.</string>
<string name="importer_help_authy">Необходима копия файла <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, расположенного в папке «Authy» во внутренней памяти.</string> <string name="importer_help_authy">Необходима копия файла <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, расположенного в папке «Authy» во внутренней памяти.</string>
<string name="importer_help_andotp">Необходим файл экспорта/резервной копии andOTP.</string> <string name="importer_help_andotp">Необходим файл экспорта/резервной копии andOTP.</string>
<string name="importer_help_bitwarden">Необходим файл экспорта/резервной копии Bitwarden. Зашифрованные файлы не поддерживаются.</string> <string name="importer_help_bitwarden">Необходим файл экспорта/резервной копии Bitwarden. Зашифрованные файлы не поддерживаются.</string>
@ -541,6 +540,7 @@
<string name="importer_help_plain_text">Необходим текстовый файл с URI Google Authenticator в каждой строке.</string> <string name="importer_help_plain_text">Необходим текстовый файл с URI Google Authenticator в каждой строке.</string>
<string name="importer_help_steam"><b>Steam v3.0 и новее не поддерживаются</b>. <string name="importer_help_steam"><b>Steam v3.0 и новее не поддерживаются</b>.
Необходима копия файла <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, расположенного в папке «Steam» во внутренней памяти.</string> Необходима копия файла <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, расположенного в папке «Steam» во внутренней памяти.</string>
<string name="importer_help_stratum">Необходим файл экспорта Stratum, полученный через <b>«Настройки» → «Резервное копирование» → «Резервное копирование в зашифрованный файл (рекомендуется)»</b>.</string>
<string name="importer_help_totp_authenticator">Необходим файл экспорта TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Необходим файл экспорта TOTP Authenticator.</string>
<string name="importer_help_winauth">Необходим файл экспорта WinAuth.</string> <string name="importer_help_winauth">Необходим файл экспорта WinAuth.</string>
<string name="import_assign_icons_dialog_title">Назначить значки</string> <string name="import_assign_icons_dialog_title">Назначить значки</string>

View file

@ -227,6 +227,8 @@
<string name="snackbar_authentication_method">Vänligen välj en autentiseringsmetod</string> <string name="snackbar_authentication_method">Vänligen välj en autentiseringsmetod</string>
<string name="encrypting_vault">Krypterar valvet</string> <string name="encrypting_vault">Krypterar valvet</string>
<string name="exporting_vault">Exporterar valvet</string> <string name="exporting_vault">Exporterar valvet</string>
<string name="optimizing_icon">Optimerar ikon</string>
<string name="optimizing_icon_multiple">Optimerar ikoner %1$d/%2$d</string>
<string name="reading_file">Läser fil</string> <string name="reading_file">Läser fil</string>
<string name="requesting_root_access">Begär rotåtkomst</string> <string name="requesting_root_access">Begär rotåtkomst</string>
<string name="analyzing_qr">Analyserar rutkod</string> <string name="analyzing_qr">Analyserar rutkod</string>
@ -294,7 +296,7 @@
<string name="choose_account_name_position">Välj önskad kontonamnsplacering</string> <string name="choose_account_name_position">Välj önskad kontonamnsplacering</string>
<string name="choose_view_mode">Välj önskat visningsläge</string> <string name="choose_view_mode">Välj önskat visningsläge</string>
<string name="choose_copy_behavior">Välj önskat kopieringsbeteende</string> <string name="choose_copy_behavior">Välj önskat kopieringsbeteende</string>
<string name="parsing_file_error">Ett fel uppstod när filen skulle analyseras</string> <string name="parsing_file_error">Ett fel uppstod när filen skulle tolkas</string>
<string name="file_not_found">Fel: Filen hittades inte</string> <string name="file_not_found">Fel: Filen hittades inte</string>
<string name="reading_file_error">Ett fel uppstod när filen skulle läsas</string> <string name="reading_file_error">Ett fel uppstod när filen skulle läsas</string>
<string name="app_lookup_error">Fel: Appen är inte installerad</string> <string name="app_lookup_error">Fel: Appen är inte installerad</string>
@ -499,7 +501,6 @@
<string name="importer_help_2fas">Tillhandahåll en säkerhetskopieringsfil från 2FAS Authenticator.</string> <string name="importer_help_2fas">Tillhandahåll en säkerhetskopieringsfil från 2FAS Authenticator.</string>
<string name="importer_help_aegis">Tillhandahåll en export-/säkerhetskopieringsfil från Aegis.</string> <string name="importer_help_aegis">Tillhandahåll en export-/säkerhetskopieringsfil från Aegis.</string>
<string name="importer_help_authenticator_plus">Tillhandahåll en exportfil från Authenticator Plus som har erhållits genom <b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>.</string> <string name="importer_help_authenticator_plus">Tillhandahåll en exportfil från Authenticator Plus som har erhållits genom <b>Settings -&gt; Backup &amp; Restore -&gt; Export as Text and HTML</b>.</string>
<string name="importer_help_authenticator_pro">Tillhandahåll en exportfil från Authenticator Pro som har erhållits genom <b>Inställningar -&gt; Säkerhetskopiera -&gt; Säkerhetskopiera till krypterad fil (rekommenderas)</b>.</string>
<string name="importer_help_authy">Tillhandahåll en kopia av <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, som finns i den interna lagringskatalogen för Authy.</string> <string name="importer_help_authy">Tillhandahåll en kopia av <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, som finns i den interna lagringskatalogen för Authy.</string>
<string name="importer_help_andotp">Tillhandahåll en export-/säkerhetskopieringsfil från andOTP.</string> <string name="importer_help_andotp">Tillhandahåll en export-/säkerhetskopieringsfil från andOTP.</string>
<string name="importer_help_bitwarden">Tillhandahåll en export-/säkerhetskopieringsfil från Bitwarden. Krypterade filer stöds ej.</string> <string name="importer_help_bitwarden">Tillhandahåll en export-/säkerhetskopieringsfil från Bitwarden. Krypterade filer stöds ej.</string>
@ -514,6 +515,7 @@
<string name="importer_help_microsoft_authenticator">Tillhandahåll en kopia av <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, som finns i den interna lagringskatalogen för Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Tillhandahåll en kopia av <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, som finns i den interna lagringskatalogen för Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Tillhandahåll en klartextfil med en Google Authenticator-URI per rad.</string> <string name="importer_help_plain_text">Tillhandahåll en klartextfil med en Google Authenticator-URI per rad.</string>
<string name="importer_help_steam"><b>Steam v3.0 och senare stöds inte.</b> Tillhandahåll en kopia av <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, som finns i den interna lagringskatalogen för Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 och senare stöds inte.</b> Tillhandahåll en kopia av <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, som finns i den interna lagringskatalogen för Steam.</string>
<string name="importer_help_stratum">Tillhandahåll en exportfil från Stratum som har erhållits genom <b>Inställningar -&gt; Säkerhetskopiera -&gt; Säkerhetskopiera till krypterad fil (rekommenderas)</b>.</string>
<string name="importer_help_totp_authenticator">Tillhandahåll en exportfil från TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Tillhandahåll en exportfil från TOTP Authenticator.</string>
<string name="importer_help_winauth">Tillhandahåll en exportfil från WinAuth.</string> <string name="importer_help_winauth">Tillhandahåll en exportfil från WinAuth.</string>
<string name="import_assign_icons_dialog_title">Tilldela ikoner</string> <string name="import_assign_icons_dialog_title">Tilldela ikoner</string>

View file

@ -432,7 +432,6 @@
<string name="importer_help_2fas">2FAS Authenticator dışa aktarım dosyasını sağlayın.</string> <string name="importer_help_2fas">2FAS Authenticator dışa aktarım dosyasını sağlayın.</string>
<string name="importer_help_aegis">Aegis dışarı aktarım/yedek dosyası sağlayın.</string> <string name="importer_help_aegis">Aegis dışarı aktarım/yedek dosyası sağlayın.</string>
<string name="importer_help_authenticator_plus"><b>Ayarlar -&gt; Yedekleme &amp; Geri Yükleme -&gt; Metin ya da HTML olarak dışa aktar</b> yolunu izleyerek bir Authenticator Plus dışa aktarım dosyası sağlayın.</string> <string name="importer_help_authenticator_plus"><b>Ayarlar -&gt; Yedekleme &amp; Geri Yükleme -&gt; Metin ya da HTML olarak dışa aktar</b> yolunu izleyerek bir Authenticator Plus dışa aktarım dosyası sağlayın.</string>
<string name="importer_help_authenticator_pro"><b>Ayarlar -&gt;; Yedekle -&gt;; Şifreli dosyaya yedekle (önerilir)</b> aracılığıyla elde edilen bir Authenticator Pro dışa aktarma dosyası sağlar.</string>
<string name="importer_help_authy"><b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>dosyasını sağlayın, Authy\'nin dahili depolama konumunda bulunabilir.</string> <string name="importer_help_authy"><b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>dosyasını sağlayın, Authy\'nin dahili depolama konumunda bulunabilir.</string>
<string name="importer_help_andotp">andOTP dışa aktarım dosyasını sağlayın.</string> <string name="importer_help_andotp">andOTP dışa aktarım dosyasını sağlayın.</string>
<string name="importer_help_bitwarden">Bitwarden\'a ait bir yedekleme/aktarma dosyası sağlayın. Şifrelenmiş dosyalar desteklenmiyor.</string> <string name="importer_help_bitwarden">Bitwarden\'a ait bir yedekleme/aktarma dosyası sağlayın. Şifrelenmiş dosyalar desteklenmiyor.</string>

View file

@ -46,7 +46,7 @@
<string name="pref_code_group_size_summary">Chọn số lượng chữ số để gộp mã</string> <string name="pref_code_group_size_summary">Chọn số lượng chữ số để gộp mã</string>
<string name="pref_account_name_position_title">Hiện tên tài khoản</string> <string name="pref_account_name_position_title">Hiện tên tài khoản</string>
<string name="pref_show_next_code_title">Hiện mã kế tiếp</string> <string name="pref_show_next_code_title">Hiện mã kế tiếp</string>
<string name="pref_show_next_code_summary">Tạo và hiỆn mã tiếp theo trước thời hạn</string> <string name="pref_show_next_code_summary">Hiện mã mới trước thời hạn</string>
<string name="pref_expiration_state_title">Nhấp nháy khi mã sắp hết hạn</string> <string name="pref_expiration_state_title">Nhấp nháy khi mã sắp hết hạn</string>
<string name="pref_expiration_state_summary">Thay đổi màu sắc của mã và nhấp nháy khi mã sắp hết hạn</string> <string name="pref_expiration_state_summary">Thay đổi màu sắc của mã và nhấp nháy khi mã sắp hết hạn</string>
<string name="pref_expiration_state_fallback">Thay đổi màu sắc của mã khi mã sắp hết hạn</string> <string name="pref_expiration_state_fallback">Thay đổi màu sắc của mã khi mã sắp hết hạn</string>
@ -63,17 +63,17 @@
<string name="pref_backups_reminder_title">Nhắc nhở sao lưu</string> <string name="pref_backups_reminder_title">Nhắc nhở sao lưu</string>
<string name="pref_backups_reminder_summary">Hiện lời nhắc sao lưu kho của bạn trong trường hợp bạn chưa sao lưu các thay đổi mới nhất.</string> <string name="pref_backups_reminder_summary">Hiện lời nhắc sao lưu kho của bạn trong trường hợp bạn chưa sao lưu các thay đổi mới nhất.</string>
<string name="pref_backups_reminder_dialog_title">Tắt nhắc nhở sao lưu</string> <string name="pref_backups_reminder_dialog_title">Tắt nhắc nhở sao lưu</string>
<string name="pref_backups_reminder_dialog_summary">Tắt lời nhắc này có nghĩa là Aegis sẽ không cho bạn biết liệu bạn có những thay đổi chưa được sao lưu hay không. Điều này khiến bạn có nguy cơ mất quyền truy cập vào token của mình. Bạn có chắc muốn tắt lời nhắc?</string> <string name="pref_backups_reminder_dialog_summary">Tắt lời nhắc này có nghĩa là Aegis sẽ không cho bạn biết liệu bạn có những thay đổi chưa được sao lưu hay không. Điều này khiến bạn có nguy cơ mất quyền truy cập vào của mình. Bạn có chắc muốn tắt lời nhắc?</string>
<string name="pref_backups_versioning_strategy_title">Chiến lược sao lưu</string> <string name="pref_backups_versioning_strategy_title">Chiến lược sao lưu</string>
<string name="pref_backups_versioning_strategy_keep_x_versions">Giữ một số phiên bản</string> <string name="pref_backups_versioning_strategy_keep_x_versions">Nhiều bản sao</string>
<string name="pref_backups_versioning_strategy_single_backup">Sao lưu đơn</string> <string name="pref_backups_versioning_strategy_single_backup">Một bản sao</string>
<string name="pref_backups_versioning_strategy_single_backup_warning">Chiến lược sao lưu được chọn không đáng tin cậy và không được khuyến khích. Một lỗi sao lưu duy nhất có thể dẫn đến mất bản sao lưu duy nhất của bạn.</string> <string name="pref_backups_versioning_strategy_single_backup_warning">Chiến lược sao lưu được chọn không đáng tin cậy và không được khuyến khích. Một lỗi sao lưu duy nhất có thể dẫn đến mất bản sao lưu duy nhất của bạn.</string>
<string name="pref_backups_versioning_strategy_dialog_title">Chọn chiến lược sao lưu</string> <string name="pref_backups_versioning_strategy_dialog_title">Chọn chiến lược sao lưu</string>
<string name="pref_backups_location_title">Vị trí sao lưu</string> <string name="pref_backups_location_title">Vị trí sao lưu</string>
<string name="pref_backups_location_summary">Các bản sao lưu sẽ được lưu vào</string> <string name="pref_backups_location_summary">Các bản sao lưu sẽ được lưu vào</string>
<string name="pref_backup_location_summary">Bản sao lưu sẽ được lưu vào</string> <string name="pref_backup_location_summary">Bản sao lưu sẽ được lưu vào</string>
<string name="pref_backups_trigger_title">Bật sao lưu</string> <string name="pref_backups_trigger_title">Thực hiện sao lưu</string>
<string name="pref_backups_trigger_summary">Bật sao lưu thủ công</string> <string name="pref_backups_trigger_summary">Sao lưu ngay cho tôi</string>
<string name="pref_backups_versions_title">Số lượng phiên bản tối đa</string> <string name="pref_backups_versions_title">Số lượng phiên bản tối đa</string>
<string name="pref_backups_versions_infinite">\u221E</string> <string name="pref_backups_versions_infinite">\u221E</string>
<plurals name="pref_backups_versions_summary"> <plurals name="pref_backups_versions_summary">
@ -81,7 +81,7 @@
</plurals> </plurals>
<string name="pref_backups_versions_infinite_summary">Không giới hạn số bản sao lưu</string> <string name="pref_backups_versions_infinite_summary">Không giới hạn số bản sao lưu</string>
<string name="pref_import_app_title">Nhập từ ứng dụng</string> <string name="pref_import_app_title">Nhập từ ứng dụng</string>
<string name="pref_import_app_summary">Nhập token từ một ứng dụng (yêu cầu truy cập root)</string> <string name="pref_import_app_summary">Nhập từ một ứng dụng (yêu cầu truy cập root)</string>
<string name="pref_export_title">Xuất</string> <string name="pref_export_title">Xuất</string>
<string name="pref_export_summary">Xuất kho</string> <string name="pref_export_summary">Xuất kho</string>
<string name="pref_password_reminder_title">Nhắc mật khẩu</string> <string name="pref_password_reminder_title">Nhắc mật khẩu</string>
@ -97,7 +97,7 @@
<string name="pref_secure_screen_summary">Chặn chụp ảnh màn hình trong ứng dụng.</string> <string name="pref_secure_screen_summary">Chặn chụp ảnh màn hình trong ứng dụng.</string>
<string name="pref_tap_to_reveal_title">Nhấn để hiện</string> <string name="pref_tap_to_reveal_title">Nhấn để hiện</string>
<string name="pref_tap_to_reveal_summary">Mã số được ẩn, nhấn vào thì mới hiện.</string> <string name="pref_tap_to_reveal_summary">Mã số được ẩn, nhấn vào thì mới hiện.</string>
<string name="pref_tap_to_reveal_time_title">Thời gian chờ nhấn</string> <string name="pref_tap_to_reveal_time_title">Thời hạn hiển thị mã</string>
<string name="pref_auto_lock_title">Tự động khóa</string> <string name="pref_auto_lock_title">Tự động khóa</string>
<string name="pref_auto_lock_summary">Khi %s</string> <string name="pref_auto_lock_summary">Khi %s</string>
<string name="pref_auto_lock_summary_disabled">Tắt</string> <string name="pref_auto_lock_summary_disabled">Tắt</string>
@ -314,11 +314,11 @@
<string name="partial_google_auth_import_warning">Một số mã QR bị thiếu trong quá trình nhập. Không tìm thấy các mã sau:\n\n<b>%s</b>\n\nBạn có thể tiếp tục nhập bản xuất này nhưng chúng tôi khuyên bạn nên thử lại với tất cả các mã QR để không có nguy cơ mất quyền truy cập vào bất kỳ token nào.</string> <string name="partial_google_auth_import_warning">Một số mã QR bị thiếu trong quá trình nhập. Không tìm thấy các mã sau:\n\n<b>%s</b>\n\nBạn có thể tiếp tục nhập bản xuất này nhưng chúng tôi khuyên bạn nên thử lại với tất cả các mã QR để không có nguy cơ mất quyền truy cập vào bất kỳ token nào.</string>
<string name="missing_qr_code_descriptor">• Mã QR %d</string> <string name="missing_qr_code_descriptor">• Mã QR %d</string>
<plurals name="import_partial_export_anyway"> <plurals name="import_partial_export_anyway">
<item quantity="other">Vẫn cứ nhập %d token</item> <item quantity="other">Vẫn cứ nhập %d </item>
</plurals> </plurals>
<string name="import_google_auth_failure">Quá trình xuất Google Authenticator thất bại</string> <string name="import_google_auth_failure">Quá trình xuất Google Authenticator thất bại</string>
<string name="unrelated_google_auth_batches_error">Bản xuất chứa thông tin về một batch không liên quan. Hãy thử nhập 1 batch mỗi lần.</string> <string name="unrelated_google_auth_batches_error">Bản xuất chứa thông tin về một batch không liên quan. Hãy thử nhập 1 batch mỗi lần.</string>
<string name="no_tokens_can_be_imported">Do đó, không thể nhập token nào</string> <string name="no_tokens_can_be_imported">Do đó, không thể nhập nào</string>
<string name="unlocking_vault">Đang mở khóa kho</string> <string name="unlocking_vault">Đang mở khóa kho</string>
<string name="rename_group">Đổi tên nhóm</string> <string name="rename_group">Đổi tên nhóm</string>
<string name="no_group_selection">Nếu một mục không thuộc bất kỳ nhóm nào, nó sẽ ở trong \"Chưa có nhóm\".</string> <string name="no_group_selection">Nếu một mục không thuộc bất kỳ nhóm nào, nó sẽ ở trong \"Chưa có nhóm\".</string>
@ -354,13 +354,13 @@
<string name="note" comment="Users can add a note to an entry">Chú thích</string> <string name="note" comment="Users can add a note to an entry">Chú thích</string>
<string name="clear">Xóa</string> <string name="clear">Xóa</string>
<string name="pref_highlight_entry_title">Làm nổi bật token khi nhấn vào</string> <string name="pref_highlight_entry_title">Làm nổi bật token khi nhấn vào</string>
<string name="pref_highlight_entry_summary">Làm cho các token dễ phân biệt với nhau hơn</string> <string name="pref_highlight_entry_summary">Làm cho các dễ phân biệt với nhau hơn</string>
<string name="pref_minimize_on_copy_title">Thu nhỏ khi sao chép</string> <string name="pref_minimize_on_copy_title">Thu nhỏ khi sao chép</string>
<string name="pref_minimize_on_copy_summary">Thu nhỏ ứng dụng sau khi sao chép một token</string> <string name="pref_minimize_on_copy_summary">Thu nhỏ ứng dụng sau khi sao chép một </string>
<string name="pref_copy_behavior_title">Sao chép token vào bộ nhớ tạm</string> <string name="pref_copy_behavior_title">Sao chép vào bộ nhớ tạm</string>
<string name="pref_search_behavior_title">Hành vi tìm kiếm</string> <string name="pref_search_behavior_title">Hành vi tìm kiếm</string>
<string name="pref_pause_entry_title">Đóng băng token khi nhấn vào</string> <string name="pref_pause_entry_title">Đóng băng khi nhấn vào</string>
<string name="pref_pause_entry_summary">Tạm dừng làm mới tự động các token bằng cách nhấn vào chúng.</string> <string name="pref_pause_entry_summary">Không tự động hiện mã mới khi đã nhấn vào mã.</string>
<string name="pin_keyboard_description">Nhập mật khẩu để bật bàn phím mã PIN. Lưu ý rằng việc này chỉ được nếu mật khẩu của bạn chỉ chứa các chữ số</string> <string name="pin_keyboard_description">Nhập mật khẩu để bật bàn phím mã PIN. Lưu ý rằng việc này chỉ được nếu mật khẩu của bạn chỉ chứa các chữ số</string>
<string name="pin_keyboard_error">Lỗi khi bật bàn phím mã PIN</string> <string name="pin_keyboard_error">Lỗi khi bật bàn phím mã PIN</string>
<string name="pin_keyboard_error_description">Không thể đặt bàn phím mã PIN. Mật khẩu của bạn phải chỉ chứa các chữ số.</string> <string name="pin_keyboard_error_description">Không thể đặt bàn phím mã PIN. Mật khẩu của bạn phải chỉ chứa các chữ số.</string>
@ -378,7 +378,7 @@
<string name="unknown_issuer">Dịch vụ chưa rõ</string> <string name="unknown_issuer">Dịch vụ chưa rõ</string>
<string name="unknown_account_name">Tên tài khoản không xác định</string> <string name="unknown_account_name">Tên tài khoản không xác định</string>
<plurals name="import_error_dialog"> <plurals name="import_error_dialog">
<item quantity="other">Aegis không thể nhập %d token. Các token đó sẽ bị bỏ qua. Hãy nhấn \'Chi tiết\' để xem thêm thông tin về các lỗi.</item> <item quantity="other">Aegis không thể nhập %d mã. Các mã đó sẽ bị bỏ qua. Nhấn \'Chi tiết\' để xem thêm thông tin về lỗi.</item>
</plurals> </plurals>
<string name="unable_to_process_deeplink">Không thể xử lý deep link</string> <string name="unable_to_process_deeplink">Không thể xử lý deep link</string>
<string name="unable_to_read_qrcode_file">Không thể đọc và xử lý mã QR từ tập tin: %s.</string> <string name="unable_to_read_qrcode_file">Không thể đọc và xử lý mã QR từ tập tin: %s.</string>
@ -437,7 +437,7 @@
<string name="pref_show_plaintext_warning_hint">Không hiện cảnh báo này nữa</string> <string name="pref_show_plaintext_warning_hint">Không hiện cảnh báo này nữa</string>
<string name="backup_plaintext_warning_explanation">Cảnh báo này xuất hiện vì gần đây bạn đã xuất một bản sao chưa được mã hóa của kho. Để giữ an toàn mã xác thực của bạn, chúng tôi khuyên bạn nên xóa tập tin này ngay khi bạn không còn cần đến nữa.</string> <string name="backup_plaintext_warning_explanation">Cảnh báo này xuất hiện vì gần đây bạn đã xuất một bản sao chưa được mã hóa của kho. Để giữ an toàn mã xác thực của bạn, chúng tôi khuyên bạn nên xóa tập tin này ngay khi bạn không còn cần đến nữa.</string>
<string name="switch_camera">Đổi camera</string> <string name="switch_camera">Đổi camera</string>
<string name="empty_list">Chưa có mã nào. Hãy bắt đầu thêm bằng cách nhấn vào ký hiệu dấu cộng ở góc dưới bên phải</string> <string name="empty_list">Chưa có mã nào. Thêm mã mới bằng cách nhấn vào dấu cộng ở góc dưới bên phải</string>
<string name="empty_list_title">Chưa có mục nào</string> <string name="empty_list_title">Chưa có mục nào</string>
<string name="empty_group_list">Chưa có nhãn nào. Hãy thêm các nhãn khi chỉnh sửa một mục</string> <string name="empty_group_list">Chưa có nhãn nào. Hãy thêm các nhãn khi chỉnh sửa một mục</string>
<string name="empty_group_list_title">Chưa có nhãn nào</string> <string name="empty_group_list_title">Chưa có nhãn nào</string>
@ -455,7 +455,7 @@
<string name="unable_to_copy_uri_to_clipboard">Không thể sao chép vào bộ nhớ tạm</string> <string name="unable_to_copy_uri_to_clipboard">Không thể sao chép vào bộ nhớ tạm</string>
<string name="uri_copied_to_clipboard">Đã sao chép vào bộ nhớ tạm</string> <string name="uri_copied_to_clipboard">Đã sao chép vào bộ nhớ tạm</string>
<string name="transfer_entry_description">Quét mã QR này bằng ứng dụng xác minh mà bạn muốn truyền mục này đến</string> <string name="transfer_entry_description">Quét mã QR này bằng ứng dụng xác minh mà bạn muốn truyền mục này đến</string>
<string name="google_auth_compatible_transfer_description">Quét các mã QR này bằng Aegis hoặc Google Authenticator.\n\nDo hạn chế của ứng dụng Google Authenticator, chỉ token TOTP &amp; HOTP sử dụng SHA1 và tạo mã gồm 6 chữ số dùng được</string> <string name="google_auth_compatible_transfer_description">Quét các mã QR này bằng Aegis hoặc Google Authenticator.\n\nDo hạn chế của ứng dụng Google Authenticator, chỉ mã TOTP &amp; HOTP 6 chữ số sử dụng SHA1 là dùng được</string>
<string name="password_strength_very_weak">Rất yếu</string> <string name="password_strength_very_weak">Rất yếu</string>
<string name="password_strength_weak">Yếu</string> <string name="password_strength_weak">Yếu</string>
<string name="password_strength_fair">Khá</string> <string name="password_strength_fair">Khá</string>
@ -487,7 +487,6 @@
<string name="importer_help_2fas">Cung cấp một tập tin sao lưu 2FAS Authenticator.</string> <string name="importer_help_2fas">Cung cấp một tập tin sao lưu 2FAS Authenticator.</string>
<string name="importer_help_aegis">Cung cấp một file xuất/sao lưu Aegis.</string> <string name="importer_help_aegis">Cung cấp một file xuất/sao lưu Aegis.</string>
<string name="importer_help_authenticator_plus">Cung cấp một tập tin xuất Authenticator Plus được nhận qua <b>Cài đặt -&gt; Sao lưu &amp; Khôi phục -&gt; Xuất dưới dạng Văn bản và HTML</b>.</string> <string name="importer_help_authenticator_plus">Cung cấp một tập tin xuất Authenticator Plus được nhận qua <b>Cài đặt -&gt; Sao lưu &amp; Khôi phục -&gt; Xuất dưới dạng Văn bản và HTML</b>.</string>
<string name="importer_help_authenticator_pro">Cung cấp tập tin xuất Authenticator Pro có được thông qua <b>Cài đặt -&gt; Sao lưu -&gt; Sao lưu tập tin mã hóa (đề xuất)</b>.</string>
<string name="importer_help_authy">Cung cấp một bản sao của <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, nằm trong thư mục bộ nhớ trong của Authy.</string> <string name="importer_help_authy">Cung cấp một bản sao của <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, nằm trong thư mục bộ nhớ trong của Authy.</string>
<string name="importer_help_andotp">Cung cấp một tập tin xuất/sao lưu andOTP.</string> <string name="importer_help_andotp">Cung cấp một tập tin xuất/sao lưu andOTP.</string>
<string name="importer_help_bitwarden">Hãy chọn tập tin xuất/sao lưu của Bitwarden. Tập tin mã hoá không được hỗ trợ.</string> <string name="importer_help_bitwarden">Hãy chọn tập tin xuất/sao lưu của Bitwarden. Tập tin mã hoá không được hỗ trợ.</string>
@ -502,6 +501,7 @@
<string name="importer_help_microsoft_authenticator">Cung cấp một bản sao của <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, nằm trong thư mục bộ nhớ trong của Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Cung cấp một bản sao của <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, nằm trong thư mục bộ nhớ trong của Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Cung cấp một tập tin văn bản thuần có một URI Google Authenticator trên mỗi dòng.</string> <string name="importer_help_plain_text">Cung cấp một tập tin văn bản thuần có một URI Google Authenticator trên mỗi dòng.</string>
<string name="importer_help_steam"><b>Không hỗ trợ Steam v3.0 trở lên</b>. Cung cấp một bản sao <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, nằm trong thư mục lưu trữ nội bộ của Steam.</string> <string name="importer_help_steam"><b>Không hỗ trợ Steam v3.0 trở lên</b>. Cung cấp một bản sao <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, nằm trong thư mục lưu trữ nội bộ của Steam.</string>
<string name="importer_help_stratum">Cung cấp tập tin xuất Stratum có được thông qua <b>Cài đặt -&gt; Sao lưu -&gt; Sao lưu tập tin mã hóa (đề xuất)</b>.</string>
<string name="importer_help_totp_authenticator">Cung cấp một tập tin xuất TOTP Authenticator.</string> <string name="importer_help_totp_authenticator">Cung cấp một tập tin xuất TOTP Authenticator.</string>
<string name="importer_help_winauth">Cung cấp một tập tin xuất WinAuth.</string> <string name="importer_help_winauth">Cung cấp một tập tin xuất WinAuth.</string>
<string name="import_assign_icons_dialog_title">Gán biểu tượng</string> <string name="import_assign_icons_dialog_title">Gán biểu tượng</string>

View file

@ -485,7 +485,6 @@
<string name="importer_help_2fas">提供一个 2FAS 身份验证器备份文件。</string> <string name="importer_help_2fas">提供一个 2FAS 身份验证器备份文件。</string>
<string name="importer_help_aegis">提供一个 Aegis 导出/备份文件。</string> <string name="importer_help_aegis">提供一个 Aegis 导出/备份文件。</string>
<string name="importer_help_authenticator_plus">提供一个通过 <b>设置 -&gt; 备份 &amp; 还原 -&gt; 导出为纯文本和 HTML</b> 获得的 Authenticator Plus 导出文件。</string> <string name="importer_help_authenticator_plus">提供一个通过 <b>设置 -&gt; 备份 &amp; 还原 -&gt; 导出为纯文本和 HTML</b> 获得的 Authenticator Plus 导出文件。</string>
<string name="importer_help_authenticator_pro">提供一个用如下方式获取的 Authenticator Pro 导出文件:<b>设置 -&gt; 备份 -&gt; 备份到加密文件(推荐)</b></string>
<string name="importer_help_authy">提供 <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> 的一个副本,位于 Authy 的内部存储目录。</string> <string name="importer_help_authy">提供 <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b> 的一个副本,位于 Authy 的内部存储目录。</string>
<string name="importer_help_andotp">提供 andOTP 导出/备份文件。</string> <string name="importer_help_andotp">提供 andOTP 导出/备份文件。</string>
<string name="importer_help_bitwarden">提供 Bitwarden 导出 / 备份文件。不支持加密的文件。</string> <string name="importer_help_bitwarden">提供 Bitwarden 导出 / 备份文件。不支持加密的文件。</string>
@ -500,6 +499,7 @@
<string name="importer_help_microsoft_authenticator">提供 <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> 的一个副本,位于 Microsoft Authenticator 的内部存储目录。</string> <string name="importer_help_microsoft_authenticator">提供 <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b> 的一个副本,位于 Microsoft Authenticator 的内部存储目录。</string>
<string name="importer_help_plain_text">提供一个每一行都有一个 Google Authenticator URI 的纯文本文件。</string> <string name="importer_help_plain_text">提供一个每一行都有一个 Google Authenticator URI 的纯文本文件。</string>
<string name="importer_help_steam"><b>不支持 Steam v3.0 和更新版本</b>。提供 <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>的副本, 位于Steam 内部存储目录。</string> <string name="importer_help_steam"><b>不支持 Steam v3.0 和更新版本</b>。提供 <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>的副本, 位于Steam 内部存储目录。</string>
<string name="importer_help_stratum">提供一个用如下方式获取的 Stratum 导出文件:<b>设置 -&gt; 备份 -&gt; 备份到加密文件(推荐)</b></string>
<string name="importer_help_totp_authenticator">提供一个 TOTP 身份验证器导出文件。</string> <string name="importer_help_totp_authenticator">提供一个 TOTP 身份验证器导出文件。</string>
<string name="importer_help_winauth">提供 WinAuth 导出文件。</string> <string name="importer_help_winauth">提供 WinAuth 导出文件。</string>
<string name="import_assign_icons_dialog_title">分配图标</string> <string name="import_assign_icons_dialog_title">分配图标</string>

View file

@ -8,6 +8,7 @@
<attr name="colorSuccess" /> <attr name="colorSuccess" />
<attr name="colorOnSurfaceDim" /> <attr name="colorOnSurfaceDim" />
<attr name="colorCode" /> <attr name="colorCode" />
<attr name="colorCodeHidden" />
<declare-styleable name="SlideIndicator"> <declare-styleable name="SlideIndicator">
<attr name="dot_radius" format="dimension" /> <attr name="dot_radius" format="dimension" />

View file

@ -236,6 +236,8 @@
<string name="snackbar_authentication_method">Please select an authentication method</string> <string name="snackbar_authentication_method">Please select an authentication method</string>
<string name="encrypting_vault">Encrypting the vault</string> <string name="encrypting_vault">Encrypting the vault</string>
<string name="exporting_vault">Exporting the vault</string> <string name="exporting_vault">Exporting the vault</string>
<string name="optimizing_icon">Optimizing icon</string>
<string name="optimizing_icon_multiple">Optimizing icons %1$d/%2$d</string>
<string name="reading_file">Reading file</string> <string name="reading_file">Reading file</string>
<string name="requesting_root_access">Requesting root access</string> <string name="requesting_root_access">Requesting root access</string>
<string name="analyzing_qr">Analyzing QR code</string> <string name="analyzing_qr">Analyzing QR code</string>
@ -373,6 +375,8 @@
<string name="pref_highlight_entry_title">Highlight tokens when tapped</string> <string name="pref_highlight_entry_title">Highlight tokens when tapped</string>
<string name="pref_highlight_entry_summary">Make tokens easier to distinguish from each other by temporarily highlighting them when tapped</string> <string name="pref_highlight_entry_summary">Make tokens easier to distinguish from each other by temporarily highlighting them when tapped</string>
<string name="pref_groups_multiselect_title">Multiselect groups</string>
<string name="pref_groups_multiselect_summary">Allow the selection of multiple groups at the same time</string>
<string name="pref_minimize_on_copy_title">Minimize on copy</string> <string name="pref_minimize_on_copy_title">Minimize on copy</string>
<string name="pref_minimize_on_copy_summary">Minimize the app after copying a token</string> <string name="pref_minimize_on_copy_summary">Minimize the app after copying a token</string>
<string name="pref_copy_behavior_title">Copy tokens to the clipboard</string> <string name="pref_copy_behavior_title">Copy tokens to the clipboard</string>
@ -530,7 +534,6 @@
<string name="importer_help_2fas">Supply a 2FAS Authenticator backup file.</string> <string name="importer_help_2fas">Supply a 2FAS Authenticator backup file.</string>
<string name="importer_help_aegis">Supply an Aegis export/backup file.</string> <string name="importer_help_aegis">Supply an Aegis export/backup file.</string>
<string name="importer_help_authenticator_plus">Supply an Authenticator Plus export file obtained through <b>Settings -> Backup &amp; Restore -> Export as Text and HTML</b>.</string> <string name="importer_help_authenticator_plus">Supply an Authenticator Plus export file obtained through <b>Settings -> Backup &amp; Restore -> Export as Text and HTML</b>.</string>
<string name="importer_help_authenticator_pro">Supply an Authenticator Pro export file obtained through <b>Settings -> Back up -> Back up to encrypted file (recommended)</b>.</string>
<string name="importer_help_authy">Supply a copy of <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, located in the internal storage directory of Authy.</string> <string name="importer_help_authy">Supply a copy of <b>/data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml</b>, located in the internal storage directory of Authy.</string>
<string name="importer_help_andotp">Supply an andOTP export/backup file.</string> <string name="importer_help_andotp">Supply an andOTP export/backup file.</string>
<string name="importer_help_bitwarden">Supply a Bitwarden export/backup file. Encrypted files are not supported.</string> <string name="importer_help_bitwarden">Supply a Bitwarden export/backup file. Encrypted files are not supported.</string>
@ -545,6 +548,7 @@
<string name="importer_help_microsoft_authenticator">Supply a copy of <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, located in the internal storage directory of Microsoft Authenticator.</string> <string name="importer_help_microsoft_authenticator">Supply a copy of <b>/data/data/com.azure.authenticator/databases/PhoneFactor</b>, located in the internal storage directory of Microsoft Authenticator.</string>
<string name="importer_help_plain_text">Supply a plain text file with a Google Authenticator URI on each line.</string> <string name="importer_help_plain_text">Supply a plain text file with a Google Authenticator URI on each line.</string>
<string name="importer_help_steam"><b>Steam v3.0 and newer are not supported</b>. Supply a copy of <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, located in the internal storage directory of Steam.</string> <string name="importer_help_steam"><b>Steam v3.0 and newer are not supported</b>. Supply a copy of <b>/data/data/com.valvesoftware.android.steam.community/files/Steamguard-*.json</b>, located in the internal storage directory of Steam.</string>
<string name="importer_help_stratum">Supply a Stratum export file obtained through <b>Settings -> Back up -> Back up to encrypted file (recommended)</b>.</string>
<string name="importer_help_totp_authenticator">Supply a TOTP Authenticator export file.</string> <string name="importer_help_totp_authenticator">Supply a TOTP Authenticator export file.</string>
<string name="importer_help_winauth">Supply a WinAuth export file.</string> <string name="importer_help_winauth">Supply a WinAuth export file.</string>
<string name="import_assign_icons_dialog_title">Assign icons</string> <string name="import_assign_icons_dialog_title">Assign icons</string>

View file

@ -62,6 +62,7 @@
<item name="colorSuccess">@color/aegis_theme_light_success</item> <item name="colorSuccess">@color/aegis_theme_light_success</item>
<item name="colorOnSurfaceDim">@color/aegis_theme_light_onSurfaceDim</item> <item name="colorOnSurfaceDim">@color/aegis_theme_light_onSurfaceDim</item>
<item name="colorCode">?attr/colorPrimary</item> <item name="colorCode">?attr/colorPrimary</item>
<item name="colorCodeHidden">?attr/colorOutlineVariant</item>
<!-- Intro colors --> <!-- Intro colors -->
<item name="dot_color">?attr/colorSurfaceVariant</item> <item name="dot_color">?attr/colorSurfaceVariant</item>
<item name="dot_color_selected">?attr/colorOnSurfaceVariant</item> <item name="dot_color_selected">?attr/colorOnSurfaceVariant</item>
@ -132,6 +133,7 @@
<item name="colorSuccess">@color/aegis_theme_dark_success</item> <item name="colorSuccess">@color/aegis_theme_dark_success</item>
<item name="colorOnSurfaceDim">@color/aegis_theme_dark_onSurfaceDim</item> <item name="colorOnSurfaceDim">@color/aegis_theme_dark_onSurfaceDim</item>
<item name="colorCode">?attr/colorPrimary</item> <item name="colorCode">?attr/colorPrimary</item>
<item name="colorCodeHidden">?attr/colorOutlineVariant</item>
<!-- Intro colors --> <!-- Intro colors -->
<item name="dot_color">?attr/colorSurfaceVariant</item> <item name="dot_color">?attr/colorSurfaceVariant</item>
<item name="dot_color_selected">?attr/colorOnSurfaceVariant</item> <item name="dot_color_selected">?attr/colorOnSurfaceVariant</item>
@ -159,6 +161,7 @@
<item name="colorSurfaceDim">#000000</item> <item name="colorSurfaceDim">#000000</item>
<item name="colorSurfaceBright">#000000</item> <item name="colorSurfaceBright">#000000</item>
<item name="colorCode">@android:color/white</item> <item name="colorCode">@android:color/white</item>
<item name="colorCodeHidden">#2F2F2F</item>
<item name="colorProgressbar">@android:color/white</item> <item name="colorProgressbar">@android:color/white</item>
</style> </style>
@ -179,6 +182,7 @@
<item name="colorSurfaceDim">#000000</item> <item name="colorSurfaceDim">#000000</item>
<item name="colorSurfaceBright">#000000</item> <item name="colorSurfaceBright">#000000</item>
<item name="colorCode">@android:color/white</item> <item name="colorCode">@android:color/white</item>
<item name="colorCodeHidden">#2F2F2F</item>
<item name="colorProgressbar">@android:color/white</item> <item name="colorProgressbar">@android:color/white</item>
</style> </style>

View file

@ -26,6 +26,13 @@
android:title="@string/pref_copy_behavior_title" android:title="@string/pref_copy_behavior_title"
app:iconSpaceReserved="false"/> app:iconSpaceReserved="false"/>
<androidx.preference.SwitchPreferenceCompat
android:defaultValue="false"
android:key="pref_groups_multiselect"
android:title="@string/pref_groups_multiselect_title"
android:summary="@string/pref_groups_multiselect_summary"
app:iconSpaceReserved="false"/>
<androidx.preference.SwitchPreferenceCompat <androidx.preference.SwitchPreferenceCompat
android:defaultValue="false" android:defaultValue="false"
android:key="pref_highlight_entry" android:key="pref_highlight_entry"

View file

@ -149,32 +149,32 @@ public class DatabaseImporterTest {
} }
@Test @Test
public void testImportAuthProEncrypted() throws DatabaseImporterException, IOException, OtpInfoException { public void testImportStratumEncrypted() throws DatabaseImporterException, IOException, OtpInfoException {
List<VaultEntry> entries = importEncrypted(AuthenticatorProImporter.class, "authpro_encrypted.bin", state -> { List<VaultEntry> entries = importEncrypted(StratumImporter.class, "stratum_encrypted.bin", state -> {
char[] password = "test".toCharArray(); char[] password = "test".toCharArray();
return ((AuthenticatorProImporter.EncryptedState) state).decrypt(password); return ((StratumImporter.EncryptedState) state).decrypt(password);
}); });
checkImportedEntries(entries); checkImportedEntries(entries);
} }
@Test @Test
public void testImportAuthProEncryptedLegacy() throws DatabaseImporterException, IOException, OtpInfoException { public void testImportStratumEncryptedLegacy() throws DatabaseImporterException, IOException, OtpInfoException {
List<VaultEntry> entries = importEncrypted(AuthenticatorProImporter.class, "authpro_encrypted_legacy.bin", state -> { List<VaultEntry> entries = importEncrypted(StratumImporter.class, "stratum_encrypted_legacy.bin", state -> {
char[] password = "test".toCharArray(); char[] password = "test".toCharArray();
return ((AuthenticatorProImporter.LegacyEncryptedState) state).decrypt(password); return ((StratumImporter.LegacyEncryptedState) state).decrypt(password);
}); });
checkImportedEntries(entries); checkImportedEntries(entries);
} }
@Test @Test
public void testImportAuthProInternal() throws DatabaseImporterException, IOException, OtpInfoException { public void testImportStratumInternal() throws DatabaseImporterException, IOException, OtpInfoException {
List<VaultEntry> entries = importPlain(AuthenticatorProImporter.class, "authpro_internal.db", true); List<VaultEntry> entries = importPlain(StratumImporter.class, "stratum_internal.db", true);
checkImportedEntries(entries); checkImportedEntries(entries);
} }
@Test @Test
public void testImportAuthProPlain() throws DatabaseImporterException, IOException, OtpInfoException { public void testImportStratumPlain() throws DatabaseImporterException, IOException, OtpInfoException {
List<VaultEntry> entries = importPlain(AuthenticatorProImporter.class, "authpro_plain.json"); List<VaultEntry> entries = importPlain(StratumImporter.class, "stratum_plain.json");
checkImportedEntries(entries); checkImportedEntries(entries);
} }