From 017a5e79af02480813c98cf949e190d45fd96ca7 Mon Sep 17 00:00:00 2001 From: Richy HBM Date: Tue, 28 May 2019 19:44:42 +0100 Subject: [PATCH 01/61] Enable android backup by default --- app/src/main/res/xml/preferences.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 1192c623..fa898dbf 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -104,11 +104,11 @@ - + android:defaultValue="true" /> - \ No newline at end of file + From 1e1695634f3a7c7464eea8a8b543077de57e61cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gl=C3=B6ckl?= Date: Tue, 9 Jul 2019 21:05:58 +0200 Subject: [PATCH 02/61] Added functionality to instantly generate new code when showing hidden code for HOTP token #334 --- .../flocke/andotp/Database/Entry.java | 2 ++ .../andotp/View/EntriesCardAdapter.java | 28 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java index 7aa53e5d..62e0ab4b 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java @@ -252,6 +252,8 @@ public class Entry { return type == OTPType.TOTP || type == OTPType.STEAM; } + public boolean isCounterBased() { return type == OTPType.HOTP; } + public OTPType getType() { return type; } diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 3e6ccc1a..27b6ac38 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -247,6 +247,9 @@ public class EntriesCardAdapter extends RecyclerView.Adapter }); taskHandler.postDelayed(entries.get(realIndex).getHideTask(), settings.getTapToRevealTimeout() * 1000); + if (entry.isCounterBased()) { + updateEntry(entry, entries.get(realIndex), position); + } entry.setVisible(true); notifyItemChanged(position); } @@ -255,18 +258,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter @Override public void onCounterClicked(int position) { - Entry entry = displayedEntries.get(position); - Entry realEntry = entries.get(getRealIndex(position)); - - long counter = entry.getCounter() + 1; - - entry.setCounter(counter); - entry.updateOTP(); - notifyItemChanged(position); - - realEntry.setCounter(counter); - realEntry.updateOTP(); - DatabaseHelper.saveDatabase(context, entries, encryptionKey); + updateEntry(displayedEntries.get(position), entries.get(getRealIndex(position)), position); } @Override @@ -278,6 +270,18 @@ public class EntriesCardAdapter extends RecyclerView.Adapter return viewHolder; } + private void updateEntry(Entry entry, Entry realEntry, final int position) { + long counter = entry.getCounter() + 1; + + entry.setCounter(counter); + entry.updateOTP(); + notifyItemChanged(position); + + realEntry.setCounter(counter); + realEntry.updateOTP(); + DatabaseHelper.saveDatabase(context, entries, encryptionKey); + } + private void hideEntry(Entry entry) { int pos = displayedEntries.indexOf(entry); int realIndex = entries.indexOf(entry); From 5db1c587b3b7b6c7e19d379521f3123c5ea0c337 Mon Sep 17 00:00:00 2001 From: Luca Vallerini Date: Sun, 4 Aug 2019 12:23:58 +0200 Subject: [PATCH 03/61] Save and show issuer and label separately --- .../flocke/andotp/Database/Entry.java | 29 ++++++++--- .../andotp/View/EntriesCardAdapter.java | 50 ++++++++++++++++++- .../flocke/andotp/View/EntryViewHolder.java | 10 ++++ .../flocke/andotp/View/ManualEntryDialog.java | 6 ++- app/src/main/res/layout/component_card.xml | 9 ++++ .../main/res/layout/dialog_manual_entry.xml | 21 ++++++++ app/src/main/res/menu/menu_popup.xml | 3 ++ app/src/main/res/values/strings_main.xml | 2 + 8 files changed, 121 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java index 7aa53e5d..a606190c 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java @@ -50,6 +50,7 @@ public class Entry { private static final int DEFAULT_PERIOD = 30; private static final String JSON_SECRET = "secret"; + private static final String JSON_ISSUER = "issuer"; private static final String JSON_LABEL = "label"; private static final String JSON_PERIOD = "period"; private static final String JSON_COUNTER = "counter"; @@ -66,6 +67,7 @@ public class Entry { private TokenCalculator.HashAlgorithm algorithm = TokenCalculator.DEFAULT_ALGORITHM; private byte[] secret; private long counter; + private String issuer; private String label; private String currentOTP; private boolean visible = false; @@ -77,21 +79,23 @@ public class Entry { public Entry(){} - public Entry(OTPType type, String secret, int period, int digits, String label, TokenCalculator.HashAlgorithm algorithm, List tags) { + public Entry(OTPType type, String secret, int period, int digits, String issuer, String label, TokenCalculator.HashAlgorithm algorithm, List tags) { this.type = type; this.secret = new Base32().decode(secret.toUpperCase()); this.period = period; this.digits = digits; + this.issuer = issuer; this.label = label; this.algorithm = algorithm; this.tags = tags; } - public Entry(OTPType type, String secret, long counter, int digits, String label, TokenCalculator.HashAlgorithm algorithm, List tags) { + public Entry(OTPType type, String secret, long counter, int digits, String issuer, String label, TokenCalculator.HashAlgorithm algorithm, List tags) { this.type = type; this.secret = new Base32().decode(secret.toUpperCase()); this.counter = counter; this.digits = digits; + this.issuer = issuer; this.label = label; this.algorithm = algorithm; this.tags = tags; @@ -124,10 +128,6 @@ public class Entry { String algorithm = uri.getQueryParameter("algorithm"); List tags = uri.getQueryParameters("tags"); - if (issuer != null){ - label = issuer +" - "+label; - } - if (type == OTPType.HOTP) { if (counter != null) { this.counter = Long.parseLong(counter); @@ -142,6 +142,7 @@ public class Entry { } } + this.issuer = issuer; this.label = label; this.secret = new Base32().decode(secret.toUpperCase()); @@ -169,6 +170,13 @@ public class Entry { this.secret = new Base32().decode(jsonObj.getString(JSON_SECRET).toUpperCase()); this.label = jsonObj.getString(JSON_LABEL); + try { + this.issuer = jsonObj.getString(JSON_ISSUER); + } catch (JSONException e) { + // Older backup version did not save issuer and label separately + this.issuer = ""; + } + try { this.type = OTPType.valueOf(jsonObj.getString(JSON_TYPE)); } catch(Exception e) { @@ -227,6 +235,7 @@ public class Entry { public JSONObject toJSON() throws JSONException { JSONObject jsonObj = new JSONObject(); jsonObj.put(JSON_SECRET, new String(new Base32().encode(getSecret()))); + jsonObj.put(JSON_ISSUER, getIssuer()); jsonObj.put(JSON_LABEL, getLabel()); jsonObj.put(JSON_DIGITS, getDigits()); jsonObj.put(JSON_TYPE, getType().toString()); @@ -268,6 +277,14 @@ public class Entry { this.secret = secret; } + public String getIssuer() { + return issuer; + } + + public void setIssuer(String issuer) { + this.issuer = issuer; + } + public String getLabel() { return label; } diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 3e6ccc1a..1de03462 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -371,6 +371,51 @@ public class EntriesCardAdapter extends RecyclerView.Adapter return true; } + public void editEntryIssuer(final int pos) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + + int marginSmall = context.getResources().getDimensionPixelSize(R.dimen.activity_margin_small); + int marginMedium = context.getResources().getDimensionPixelSize(R.dimen.activity_margin_medium); + + final EditText input = new EditText(context); + input.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); + input.setText(displayedEntries.get(pos).getIssuer()); + input.setSingleLine(); + + FrameLayout container = new FrameLayout(context); + container.setPaddingRelative(marginMedium, marginSmall, marginMedium, 0); + container.addView(input); + + builder.setTitle(R.string.dialog_title_rename) + .setView(container) + .setPositiveButton(R.string.button_save, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + int realIndex = getRealIndex(pos); + String newIssuer = input.getEditableText().toString(); + + displayedEntries.get(pos).setIssuer(newIssuer); + if (sortMode == SortMode.LABEL) { + displayedEntries = sortEntries(displayedEntries); + notifyDataSetChanged(); + } else { + notifyItemChanged(pos); + } + + Entry e = entries.get(realIndex); + e.setIssuer(newIssuer); + + DatabaseHelper.saveDatabase(context, entries, encryptionKey); + } + }) + .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) {} + }) + .create() + .show(); + } + public void editEntryLabel(final int pos) { AlertDialog.Builder builder = new AlertDialog.Builder(context); @@ -585,7 +630,10 @@ public class EntriesCardAdapter extends RecyclerView.Adapter public boolean onMenuItemClick(MenuItem item) { int id = item.getItemId(); - if (id == R.id.menu_popup_editLabel) { + if (id == R.id.menu_popup_editIssuer) { + editEntryIssuer(pos); + return true; + } else if (id == R.id.menu_popup_editLabel) { editEntryLabel(pos); return true; } else if(id == R.id.menu_popup_changeImage) { diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java index 4c470860..06e2df6d 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java @@ -64,6 +64,7 @@ public class EntryViewHolder extends RecyclerView.ViewHolder private ImageView visibleImg; private ImageView thumbnailImg; private TextView value; + private TextView issuer; private TextView label; private TextView counter; private TextView tags; @@ -81,6 +82,7 @@ public class EntryViewHolder extends RecyclerView.ViewHolder thumbnailFrame = v.findViewById(R.id.thumbnailFrame); thumbnailImg = v.findViewById(R.id.thumbnailImg); coverLayout = v.findViewById(R.id.coverLayout); + issuer = v.findViewById(R.id.textViewIssuer); label = v.findViewById(R.id.textViewLabel); tags = v.findViewById(R.id.textViewTags); counterLayout = v.findViewById(R.id.counterLayout); @@ -149,6 +151,14 @@ public class EntryViewHolder extends RecyclerView.ViewHolder final String tokenFormatted = Tools.formatToken(entry.getCurrentOTP(), settings.getTokenSplitGroupSize()); + String issuerText = entry.getIssuer(); + if (!TextUtils.isEmpty(issuerText)) { + issuer.setText(entry.getIssuer()); + issuer.setVisibility(View.VISIBLE); + } else { + issuer.setVisibility(View.GONE); + } + label.setText(entry.getLabel()); value.setText(tokenFormatted); // save the unformatted token to the tag of this TextView for copy/paste diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/ManualEntryDialog.java b/app/src/main/java/org/shadowice/flocke/andotp/View/ManualEntryDialog.java index 52fae359..c2af36b4 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/ManualEntryDialog.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/ManualEntryDialog.java @@ -59,6 +59,7 @@ public class ManualEntryDialog { View inputView = callingActivity.getLayoutInflater().inflate(R.layout.dialog_manual_entry, container, false); final Spinner typeInput = inputView.findViewById(R.id.manual_type); + final EditText issuerInput = inputView.findViewById(R.id.manual_issuer); final EditText labelInput = inputView.findViewById(R.id.manual_label); final EditText secretInput = inputView.findViewById(R.id.manual_secret); final EditText counterInput = inputView.findViewById(R.id.manual_counter); @@ -192,6 +193,7 @@ public class ManualEntryDialog { Entry.OTPType type = (Entry.OTPType) typeInput.getSelectedItem(); TokenCalculator.HashAlgorithm algorithm = (TokenCalculator.HashAlgorithm) algorithmInput.getSelectedItem(); + String issuer = issuerInput.getText().toString(); String label = labelInput.getText().toString(); String secret = secretInput.getText().toString(); int digits = Integer.parseInt(digitsInput.getText().toString()); @@ -199,7 +201,7 @@ public class ManualEntryDialog { if (type == Entry.OTPType.TOTP || type == Entry.OTPType.STEAM) { int period = Integer.parseInt(periodInput.getText().toString()); - Entry e = new Entry(type, secret, period, digits, label, algorithm, tagsAdapter.getActiveTags()); + Entry e = new Entry(type, secret, period, digits, issuer, label, algorithm, tagsAdapter.getActiveTags()); e.updateOTP(); e.setLastUsed(System.currentTimeMillis()); adapter.addEntry(e); @@ -209,7 +211,7 @@ public class ManualEntryDialog { } else if (type == Entry.OTPType.HOTP) { long counter = Long.parseLong(counterInput.getText().toString()); - Entry e = new Entry(type, secret, counter, digits, label, algorithm, tagsAdapter.getActiveTags()); + Entry e = new Entry(type, secret, counter, digits, issuer, label, algorithm, tagsAdapter.getActiveTags()); e.updateOTP(); e.setLastUsed(System.currentTimeMillis()); adapter.addEntry(e); diff --git a/app/src/main/res/layout/component_card.xml b/app/src/main/res/layout/component_card.xml index 1149c3d9..9adeba80 100644 --- a/app/src/main/res/layout/component_card.xml +++ b/app/src/main/res/layout/component_card.xml @@ -105,6 +105,15 @@ + + + + + + + + + + + diff --git a/app/src/main/res/values/strings_main.xml b/app/src/main/res/values/strings_main.xml index 7fb51cf5..fc1cedf3 100644 --- a/app/src/main/res/values/strings_main.xml +++ b/app/src/main/res/values/strings_main.xml @@ -26,6 +26,7 @@ Period Digits Counter + Issuer Label Algorithm Tags @@ -47,6 +48,7 @@ Label Last used + Edit issuer Edit label Change image Edit tags From cf39fa3c77584e4398225b44da6006e0091f89c5 Mon Sep 17 00:00:00 2001 From: Marc Schwede <9077622+schwedenmut@users.noreply.github.com> Date: Tue, 1 Oct 2019 15:05:05 +0200 Subject: [PATCH 04/61] Added automatic icon mapping if issuer is provided Necessary additions: - cases insensitive search for thumbnails inside enum --- .../shadowice/flocke/andotp/Database/Entry.java | 16 +++++++++++++++- .../flocke/andotp/Utilities/EntryThumbnail.java | 6 ++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java index a606190c..4bb91615 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java @@ -88,6 +88,7 @@ public class Entry { this.label = label; this.algorithm = algorithm; this.tags = tags; + setThumbnailFromIssuer(issuer); } public Entry(OTPType type, String secret, long counter, int digits, String issuer, String label, TokenCalculator.HashAlgorithm algorithm, List tags) { @@ -99,6 +100,7 @@ public class Entry { this.label = label; this.algorithm = algorithm; this.tags = tags; + setThumbnailFromIssuer(issuer); } public Entry(String contents) throws Exception { @@ -158,11 +160,15 @@ public class Entry { this.algorithm = TokenCalculator.DEFAULT_ALGORITHM; } - if(tags != null) { + if (tags != null) { this.tags = tags; } else { this.tags = new ArrayList<>(); } + + if (issuer != null) { + setThumbnailFromIssuer(issuer); + } } public Entry (JSONObject jsonObj) @@ -390,6 +396,14 @@ public class Entry { } } + private void setThumbnailFromIssuer(String issuer) { + try { + this.thumbnail = EntryThumbnail.EntryThumbnails.valueOfIgnoreCase(issuer); + } catch(Exception e) { + this.thumbnail = EntryThumbnail.EntryThumbnails.Default; + } + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java index 9a197c88..14e6451e 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java @@ -234,6 +234,12 @@ public class EntryThumbnail { public AssetType getAssetType() { return assetType; } + + public static EntryThumbnails valueOfIgnoreCase(String thumbnail) { + for (EntryThumbnails entryThumbnails : values()) + if (entryThumbnails.name().equalsIgnoreCase(thumbnail)) return entryThumbnails; + throw new IllegalArgumentException(); + } } public static Bitmap getThumbnailGraphic(Context context, String label, int size, EntryThumbnails thumbnail) { From d289bcbe066ccb939dbef8da3868841a4ed48588 Mon Sep 17 00:00:00 2001 From: Martin Betcher Date: Wed, 2 Oct 2019 21:42:09 +0200 Subject: [PATCH 05/61] Hide OTP Cards on Screen-Off for Device Credentials authentication --- .../flocke/andotp/Activities/MainActivity.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java index b7de7cd9..664ceb01 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java @@ -329,12 +329,20 @@ public class MainActivity extends BaseActivity // ensure the current filter string is applied after a resume setFilterString(this.filterString); } - + if(settings.getAuthMethod() == AuthMethod.DEVICE) + findViewById(R.id.cardList).setVisibility(View.VISIBLE); startUpdater(); } @Override public void onPause() { + if(settings.getAuthMethod() == AuthMethod.DEVICE) + runOnUiThread(new Runnable() { + @Override + public void run() { + findViewById(R.id.cardList).setVisibility(View.INVISIBLE); + } + }); super.onPause(); stopUpdater(); } From 7a850c408a746e4a45d3255dac4b1bd8888279d7 Mon Sep 17 00:00:00 2001 From: Martin Betcher Date: Wed, 2 Oct 2019 21:54:14 +0200 Subject: [PATCH 06/61] Check for OTP CardList Visibility regardless of AuthMethod --- .../shadowice/flocke/andotp/Activities/MainActivity.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java index 664ceb01..f95fc064 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java @@ -329,8 +329,11 @@ public class MainActivity extends BaseActivity // ensure the current filter string is applied after a resume setFilterString(this.filterString); } - if(settings.getAuthMethod() == AuthMethod.DEVICE) - findViewById(R.id.cardList).setVisibility(View.VISIBLE); + + View cardList = findViewById(R.id.cardList); + if(cardList.getVisibility() == View.INVISIBLE) + cardList.setVisibility(View.VISIBLE); + startUpdater(); } From 1ca16cb07aa16783075316f156333a9f3c9ddc13 Mon Sep 17 00:00:00 2001 From: Ullas-Aithal Date: Wed, 2 Oct 2019 18:28:42 -0500 Subject: [PATCH 07/61] Implemented #373. Added code to move the activity to background after copy to clipboard is selected. This causes the app to 'minimize' and the homescreen will be brought up. Added checkbox in app settings to enable/disable this feature. Added appropriate english strings --- .../shadowice/flocke/andotp/Activities/MainActivity.java | 3 ++- .../org/shadowice/flocke/andotp/Utilities/Settings.java | 5 +++++ .../shadowice/flocke/andotp/View/EntriesCardAdapter.java | 4 ++++ app/src/main/res/values/settings.xml | 2 ++ app/src/main/res/values/strings_settings.xml | 3 ++- app/src/main/res/xml/preferences.xml | 6 ++++++ 6 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java index b7de7cd9..0e05ffb8 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java @@ -349,7 +349,8 @@ public class MainActivity extends BaseActivity if (key.equals(getString(R.string.settings_key_label_size)) || key.equals(getString(R.string.settings_key_label_scroll)) || key.equals(getString(R.string.settings_key_split_group_size)) || - key.equals(getString(R.string.settings_key_thumbnail_size))) { + key.equals(getString(R.string.settings_key_thumbnail_size)) || + key.equals(getString(R.string.settings_key_minimize_on_copy))) { adapter.notifyDataSetChanged(); } else if (key.equals(getString(R.string.settings_key_tap_to_reveal)) || key.equals(getString(R.string.settings_key_theme)) || diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java index 5f767c76..84e93f82 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java @@ -524,4 +524,9 @@ public class Settings { public boolean getIsAppendingDateTimeToBackups() { return getBoolean(R.string.settings_key_backup_append_date_time, false); } + + public boolean isMinimizeAppOnCopyEnabled() { + return getBoolean(R.string.settings_key_minimize_on_copy, false); + } + } diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 3e6ccc1a..6a4acaa0 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -48,6 +48,7 @@ import android.widget.GridView; import android.widget.LinearLayout; import android.widget.Toast; +import org.shadowice.flocke.andotp.Activities.MainActivity; import org.shadowice.flocke.andotp.Database.Entry; import org.shadowice.flocke.andotp.R; import org.shadowice.flocke.andotp.Utilities.Constants; @@ -228,6 +229,9 @@ public class EntriesCardAdapter extends RecyclerView.Adapter public void onCopyButtonClicked(String text, int position) { copyToClipboard(text); updateLastUsed(position, getRealIndex(position)); + if(context != null && settings.isMinimizeAppOnCopyEnabled()) { + ((MainActivity)context).moveTaskToBack(true); + } } @Override diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index ee21c34f..3d27b276 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -22,10 +22,12 @@ pref_theme pref_label_size_sp pref_label_scroll + pref_minimize_on_copy pref_thumbnail_size pref_split_group_size pref_tag_functionality + pref_backup_append_date_time pref_backup_ask pref_backup_directory diff --git a/app/src/main/res/values/strings_settings.xml b/app/src/main/res/values/strings_settings.xml index 8809a0bb..f4c2a80d 100644 --- a/app/src/main/res/values/strings_settings.xml +++ b/app/src/main/res/values/strings_settings.xml @@ -24,6 +24,7 @@ Thumbnail size Split Token with space Tag selection behavior + Minimize app after copying OTP Append date to filename Ask for filename @@ -50,7 +51,7 @@ has been turned off Scroll overlong labels instead of truncating them - + App will be minimized when you copy the OTP to clipboard Append the current date and time to the suggested backup filename diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 363b52e1..3261faa7 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -105,6 +105,12 @@ android:entryValues="@array/settings_values_tag_functionality" android:defaultValue="@string/settings_default_tag_functionality" /> + + Date: Thu, 3 Oct 2019 09:04:44 +0200 Subject: [PATCH 08/61] Implemented intent-filter to receive otpauth requests --- app/src/main/AndroidManifest.xml | 7 ++++++ .../andotp/Activities/MainActivity.java | 24 +++++++++++++++---- app/src/main/res/values/strings_main.xml | 4 +++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c6d57ba..42208050 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,6 +27,13 @@ + + + + + + + diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java index b7de7cd9..06c6b937 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java @@ -277,18 +277,33 @@ public class MainActivity extends BaseActivity setupDrawer(); + checkIntent(); + + if (savedInstanceState != null){ + setFilterString(savedInstanceState.getString("filterString", "")); + } + } + + private void checkIntent() { Intent callingIntent = getIntent(); if (callingIntent != null && callingIntent.getAction() != null) { if (callingIntent.getAction().equals(INTENT_SCAN_QR)) { scanQRCode(); } else if (callingIntent.getAction().equals(INTENT_ENTER_DETAILS)) { ManualEntryDialog.show(MainActivity.this, settings, adapter); + } else if (callingIntent.getAction().equals(Intent.ACTION_VIEW) && !requireAuthentication) { + try { + Entry entry = new Entry(getIntent().getDataString()); + entry.updateOTP(); + entry.setLastUsed(System.currentTimeMillis()); + adapter.addEntry(entry); + adapter.saveEntries(); + Toast.makeText(this, R.string.toast_intent_creation_succeeded, Toast.LENGTH_LONG).show(); + } catch (Exception e) { + Toast.makeText(this, R.string.toast_intent_creation_failed, Toast.LENGTH_LONG).show(); + } } } - - if (savedInstanceState != null){ - setFilterString(savedInstanceState.getString("filterString", "")); - } } @Override @@ -321,6 +336,7 @@ public class MainActivity extends BaseActivity updateEncryption(null); } else { populateAdapter(); + checkIntent(); } } } diff --git a/app/src/main/res/values/strings_main.xml b/app/src/main/res/values/strings_main.xml index 68e730e9..6aba68ca 100644 --- a/app/src/main/res/values/strings_main.xml +++ b/app/src/main/res/values/strings_main.xml @@ -10,7 +10,7 @@ Settings All tags No tags - + %d s @@ -59,6 +59,8 @@ This entry already exists Invalid QR Code Encryption key not loaded + Invalid intent-provided code + Intent-provided code added Authenticate From b50388fbf6c43d53661d35f9f692283d8b0415f1 Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Fri, 4 Oct 2019 12:55:08 +0200 Subject: [PATCH 09/61] New translations from Crowdin --- .../main/res/values-ar-rSA/strings_about.xml | 3 +- .../main/res/values-ar-rSA/strings_backup.xml | 8 + .../res/values-ar-rSA/strings_settings.xml | 2 +- .../main/res/values-ca-rES/strings_about.xml | 75 +++-- .../main/res/values-ca-rES/strings_auth.xml | 28 +- .../main/res/values-ca-rES/strings_backup.xml | 106 +++---- .../main/res/values-ca-rES/strings_intro.xml | 26 +- .../main/res/values-ca-rES/strings_main.xml | 136 ++++----- .../res/values-ca-rES/strings_settings.xml | 246 ++++++++-------- .../main/res/values-cs-rCZ/strings_about.xml | 3 +- .../main/res/values-cs-rCZ/strings_backup.xml | 7 + .../main/res/values-de-rDE/strings_about.xml | 3 +- .../main/res/values-de-rDE/strings_backup.xml | 8 + .../main/res/values-es-rES/strings_about.xml | 3 +- .../main/res/values-es-rES/strings_backup.xml | 8 + .../main/res/values-es-rES/strings_intro.xml | 2 +- .../main/res/values-fa-rIR/strings_about.xml | 3 +- .../main/res/values-fa-rIR/strings_backup.xml | 4 + .../main/res/values-fr-rFR/strings_about.xml | 75 +++-- .../main/res/values-fr-rFR/strings_auth.xml | 28 +- .../main/res/values-fr-rFR/strings_backup.xml | 107 +++---- .../main/res/values-fr-rFR/strings_intro.xml | 26 +- .../main/res/values-fr-rFR/strings_main.xml | 132 ++++----- .../res/values-fr-rFR/strings_settings.xml | 247 ++++++++-------- .../main/res/values-gl-rES/strings_about.xml | 75 +++-- .../main/res/values-gl-rES/strings_auth.xml | 28 +- .../main/res/values-gl-rES/strings_backup.xml | 106 +++---- .../main/res/values-gl-rES/strings_intro.xml | 26 +- .../main/res/values-gl-rES/strings_main.xml | 132 ++++----- .../res/values-gl-rES/strings_settings.xml | 246 ++++++++-------- .../main/res/values-hu-rHU/strings_about.xml | 45 +++ .../main/res/values-hu-rHU/strings_auth.xml | 18 ++ .../main/res/values-hu-rHU/strings_backup.xml | 64 +++++ .../main/res/values-hu-rHU/strings_intro.xml | 19 ++ .../main/res/values-hu-rHU/strings_main.xml | 72 +++++ .../res/values-hu-rHU/strings_settings.xml | 129 +++++++++ .../main/res/values-it-rIT/strings_about.xml | 3 +- .../main/res/values-it-rIT/strings_backup.xml | 4 + .../main/res/values-it-rIT/strings_main.xml | 6 +- .../main/res/values-ja-rJP/strings_about.xml | 3 +- .../main/res/values-ja-rJP/strings_backup.xml | 4 + .../main/res/values-nl-rNL/strings_about.xml | 75 +++-- .../main/res/values-nl-rNL/strings_auth.xml | 28 +- .../main/res/values-nl-rNL/strings_backup.xml | 106 +++---- .../main/res/values-nl-rNL/strings_intro.xml | 26 +- .../main/res/values-nl-rNL/strings_main.xml | 132 ++++----- .../res/values-nl-rNL/strings_settings.xml | 246 ++++++++-------- .../main/res/values-pl-rPL/strings_about.xml | 82 +++--- .../main/res/values-pl-rPL/strings_auth.xml | 28 +- .../main/res/values-pl-rPL/strings_backup.xml | 113 ++++---- .../main/res/values-pl-rPL/strings_intro.xml | 37 +-- .../main/res/values-pl-rPL/strings_main.xml | 136 +++++---- .../res/values-pl-rPL/strings_settings.xml | 268 ++++++++---------- .../main/res/values-pt-rBR/strings_about.xml | 3 +- .../main/res/values-pt-rBR/strings_backup.xml | 8 + .../main/res/values-pt-rBR/strings_intro.xml | 2 +- .../main/res/values-ru-rRU/strings_about.xml | 3 +- .../main/res/values-ru-rRU/strings_backup.xml | 8 + .../main/res/values-sl-rSI/strings_about.xml | 75 +++-- .../main/res/values-sl-rSI/strings_auth.xml | 28 +- .../main/res/values-sl-rSI/strings_backup.xml | 105 +++---- .../main/res/values-sl-rSI/strings_intro.xml | 26 +- .../main/res/values-sl-rSI/strings_main.xml | 132 ++++----- .../res/values-sl-rSI/strings_settings.xml | 246 ++++++++-------- .../main/res/values-sv-rSE/strings_about.xml | 3 +- .../main/res/values-sv-rSE/strings_backup.xml | 8 + .../main/res/values-tr-rTR/strings_about.xml | 75 +++-- .../main/res/values-tr-rTR/strings_auth.xml | 28 +- .../main/res/values-tr-rTR/strings_backup.xml | 103 +++---- .../main/res/values-tr-rTR/strings_intro.xml | 28 +- .../main/res/values-tr-rTR/strings_main.xml | 132 ++++----- .../res/values-tr-rTR/strings_settings.xml | 246 ++++++++-------- .../main/res/values-uk-rUA/strings_about.xml | 3 +- .../main/res/values-uk-rUA/strings_backup.xml | 8 + .../main/res/values-zh-rCN/strings_about.xml | 3 +- .../main/res/values-zh-rCN/strings_backup.xml | 5 + .../main/res/values-zh-rTW/strings_about.xml | 3 +- .../main/res/values-zh-rTW/strings_backup.xml | 6 + .../main/res/values-zh-rTW/strings_main.xml | 2 +- app/src/main/res/values/settings.xml | 2 + 80 files changed, 2622 insertions(+), 2212 deletions(-) create mode 100644 app/src/main/res/values-hu-rHU/strings_about.xml create mode 100644 app/src/main/res/values-hu-rHU/strings_auth.xml create mode 100644 app/src/main/res/values-hu-rHU/strings_backup.xml create mode 100644 app/src/main/res/values-hu-rHU/strings_intro.xml create mode 100644 app/src/main/res/values-hu-rHU/strings_main.xml create mode 100644 app/src/main/res/values-hu-rHU/strings_settings.xml diff --git a/app/src/main/res/values-ar-rSA/strings_about.xml b/app/src/main/res/values-ar-rSA/strings_about.xml index d2241800..294e756a 100644 --- a/app/src/main/res/values-ar-rSA/strings_about.xml +++ b/app/src/main/res/values-ar-rSA/strings_about.xml @@ -18,8 +18,7 @@ مؤلف التطبيق الأصلي التطبيق الأصلي الموقع الإلكتروني - التبرع (Paypal) - التبرع (Bitcoin) + التبرع المساهمون المترجمون diff --git a/app/src/main/res/values-ar-rSA/strings_backup.xml b/app/src/main/res/values-ar-rSA/strings_backup.xml index a2ccb14f..bae36169 100644 --- a/app/src/main/res/values-ar-rSA/strings_backup.xml +++ b/app/src/main/res/values-ar-rSA/strings_backup.xml @@ -10,6 +10,7 @@ النسخ الاحتياطي (أوبن بي جي بي) إسترجاع (نص مجرّد) إسترجاع (مشفّر) + Restore (encrypted, old encryption) إسترجاع (أوبن بي جي بي) إستبدال البيانات الموجودة أنسخ إحتياطيا لكافة الحسابات في ملف JSON نص مُجرَّد @@ -17,6 +18,8 @@ أنسخ إحتياطيا لكافة الحسابات في ملف JSON مشفّر بواسطة أوبن بي جي بي استعادة حسابات من ملف JSON نص مجرّد استعادة حسابات من ملف JSON محمي بكلمة مرور + Restore accounts from a password-protected JSON file + created with an andOTP version lower than 0.6.3 استعادة حسابات من ملف JSON (مشفر بتقنية اوبن بي جي بي) فشل في تحميل كلمة مرور النسخ الاحتياطي من الإعدادات، هذا أما يعني إنه لم يتم تعيين أية كلمة مرور أو حدث خطأ ما. سيطلب منك إدخال كلمة المرور يدوياً عند إنشاء أو استيراد نسخة احتياطية. @@ -34,6 +37,11 @@ الإذن للقراءة لم يمنح. الرجاء تمكينها قبل محاولة النسخ الإذن للكتابة لم يمنح. الرجاء تمكينها قبل محاولة النسخ التشفير عبر كلمة المرور / PIN غير مدعومة مع البث الإحتياطي + New encryption method + Since version 0.6.3 of andOTP, a new and improved + encryption method is used for password-protected backups. The old backups can still be + imported, but it is highly recommended to create new backups with the improved + encryption.\n\nThis message will not be shown again. فشل النسخ التلقائي نجح النسخ التلقائي diff --git a/app/src/main/res/values-ar-rSA/strings_settings.xml b/app/src/main/res/values-ar-rSA/strings_settings.xml index bf1b44c9..bde929de 100644 --- a/app/src/main/res/values-ar-rSA/strings_settings.xml +++ b/app/src/main/res/values-ar-rSA/strings_settings.xml @@ -46,7 +46,7 @@ دليل النسخ الإحتياطي (أسماء الملف يعتمدون على نوع النسخ الإحتياطي) إختر كلمة المرور التي سوف تستخدم لتشفير النسخ الإحتياطية حدد أنواع النسخ الإحتياطي التي يمكن تشغيلها بواسطة تطبيقات البث - البريد الإلكتلتروني التابع الى مفتاح المستخدم لتشفير النسخ + عنوان البريد الإلكتروني للمفتاح المستخدَم لتشفير النسخ الإحتياطية النسخ المشفرة تسترد فقط إذا وقعوا بمفتاح صالح قم بإلغاء الخيار لتعطيل الميزات الخاصة مجددا السماح بالتقاط لقطات للشاشة الرئيسية diff --git a/app/src/main/res/values-ca-rES/strings_about.xml b/app/src/main/res/values-ca-rES/strings_about.xml index 5b455b0b..64cb3d76 100644 --- a/app/src/main/res/values-ca-rES/strings_about.xml +++ b/app/src/main/res/values-ca-rES/strings_about.xml @@ -1,50 +1,49 @@ - Quant a - Autenticació de dos factors de codi obert per a Android - Acerca de - Biblioteques - - Registre de canvis - Llicència - Llicència MIT - Codi font - Versió - - Autors - Programador principal - Autor - Autor de l\'aplicació original - Aplicació original - Lloc web - Donar (PayPal) - Donar (Bitcoin) - Col·laboradors - Traductors - - Avís miniatura - 1. totes les miniatures són marques registrades dels seus + Quant a + Autenticació de dos factors de codi obert per a Android + Acerca de + Biblioteques + + Registre de canvis + Llicència + Llicència MIT + Codi font + Versió + + Autors + Programador principal + Autor + Autor de l\'aplicació original + Aplicació original + Lloc web + Donar + Col·laboradors + Traductors + + Avís miniatura + 1. totes les miniatures són marques registrades dels seus respectius propietaris. - 2. l\'ús de les marques comercials no + 2. l\'ús de les marques comercials no indica aprovació del titular de la marca per andOTP, ni viceversa. - 3. Miniatures només usades per + 3. Miniatures només usades per representar l\'empresa o producte al qual es refereixen. - 4. No utilitzeu miniatures per a qualsevol propòsit + 4. No utilitzeu miniatures per a qualsevol propòsit excepte per representar aquella marca determinada o servei. - - Doneu suport al desenvolupament - Informe d\'errors - Tradueix - Aviseu d\'un error o demaneu funcions noves - Com podeu ajudar a traduir andOTP a la vostra llengua - Característiques especials - Esteu segur que voleu habilitar les característiques + + Doneu suport al desenvolupament + Informe d\'errors + Tradueix + Aviseu d\'un error o demaneu funcions noves + Com podeu ajudar a traduir andOTP a la vostra llengua + Característiques especials + Esteu segur que voleu habilitar les característiques especials? La major part són algorismes OTP no estàndard que es van implementar ad-hoc. No tenen suport oficial i pateixen de certes limitacions, per favor, llegiu (i assegureu-vos d\'entendre) la pàgina \"característiques especials\" en la wiki de Github per a saber-ne més abans de fer-les servir. - Característiques especials habilitades - Característiques especials ja habilitades - S\'ha copiat l\'enllaç de donació al porta-retalls + Característiques especials habilitades + Característiques especials ja habilitades + S\'ha copiat l\'enllaç de donació al porta-retalls diff --git a/app/src/main/res/values-ca-rES/strings_auth.xml b/app/src/main/res/values-ca-rES/strings_auth.xml index d874fcb4..c7fa9146 100644 --- a/app/src/main/res/values-ca-rES/strings_auth.xml +++ b/app/src/main/res/values-ca-rES/strings_auth.xml @@ -1,19 +1,19 @@ - Autentica - - Contrasenya - PIN - - Per favor, autentiqueu-vos per a iniciar andOTP! - Per favor, confirmeu la vostra autenticació per a generar + Autentica + + Contrasenya + PIN + + Per favor, autentiqueu-vos per a iniciar andOTP! + Per favor, confirmeu la vostra autenticació per a generar la clau de xifratge nova! - - Desbloqueja - - Please set a password in the Settings! - Please set a PIN in the Settings! - Contrasenya incorrecta; per favor, torneu-ho a intentar! - PIN incorrecte; per favor, torneu-ho a intentar! + + Desbloqueja + + Per favor, establiu una contrasenya a la configuració! + Per favor, establiu un PIN en la configuració! + Contrasenya incorrecta; per favor, torneu-ho a intentar! + PIN incorrecte; per favor, torneu-ho a intentar! diff --git a/app/src/main/res/values-ca-rES/strings_backup.xml b/app/src/main/res/values-ca-rES/strings_backup.xml index 1634cb69..2cb80497 100644 --- a/app/src/main/res/values-ca-rES/strings_backup.xml +++ b/app/src/main/res/values-ca-rES/strings_backup.xml @@ -1,71 +1,79 @@ - Còpies de seguretat - Còpies de seguretat en text net - Còpies de seguretat xifrades - Còpies de seguretat xifrades amb OpenPGP - Còpia de seguretat (text net) - Còpia de seguretat (xifrada) - Còpia de seguretat (OpenPGP) - Restaura (text net) - Restaura (xifrada) - Restaura (OpenPGP) - Substitueix els comptes existents - Fes una còpia de seguretat de tots els comptes en un fitxer de text net JSON - Fes una còpia de seguretat de tots els comptes en un fitxer JSON protegit per contrasenya - Fes una còpia de seguretat tots els comptes en un fitxer JSON encriptat amb OpenPGP - Restaura els comptes d\'un fitxer de text net JSON - Restaura els comptes d\'un fitxer JSON protegit amb contrasenya - Restaura els comptes d\'un fitxer JSON xifrat amb OpenPGP - Failed to load the backup password from the Settings, + Còpies de seguretat + Còpies de seguretat en text net + Còpies de seguretat xifrades + Còpies de seguretat xifrades amb OpenPGP + Còpia de seguretat (text net) + Còpia de seguretat (xifrada) + Còpia de seguretat (OpenPGP) + Restaura (text net) + Restaura (xifrada) + Restaura (encriptat, encriptació vella) + Restaura (OpenPGP) + Substitueix els comptes existents + Fes una còpia de seguretat de tots els comptes en un fitxer de text net JSON + Fes una còpia de seguretat de tots els comptes en un fitxer JSON protegit per contrasenya + Fes una còpia de seguretat tots els comptes en un fitxer JSON encriptat amb OpenPGP + Restaura els comptes d\'un fitxer de text net JSON + Restaura els comptes d\'un fitxer JSON protegit amb contrasenya + Restaura el conte desde un ficher JSON protegit amb contrasenya + creat amb una versió de andOTP prévia a 0.6.3 + Restaura els comptes d\'un fitxer JSON xifrat amb OpenPGP + Failed to load the backup password from the Settings, this either means no password was set or something went wrong. You will be asked to enter the password manually when creating or importing a backup. - You need to install an OpenPGP provider and enable + You need to install an OpenPGP provider and enable it in the Settings to use this feature. - You need to select an OpenPGP key in the Settings + You need to select an OpenPGP key in the Settings before you can create encrypted backups. - Si està activat les entrades antigues són substituïdes quan s\'importa una + Si està activat les entrades antigues són substituïdes quan s\'importa una còpia de seguretat i només hi queda la còpia. Si no, les entrades velles i les còpies de seguretat es fusionen. - - Avís de seguretat - Realment voleu exportar la base de dades com a + + Avís de seguretat + Realment voleu exportar la base de dades com a fitxer de text net JSON? Aquest fitxer contindrà les vostres claus secretes; per favor, manteniu-lo ben protegit! - Backup failed - Backup successful - Plain-text backups are currently not allowed, + Backup failed + Backup successful + Plain-text backups are currently not allowed, please go to the Settings to enable them - Encrypted backups are currently not allowed, + Encrypted backups are currently not allowed, please go to the Settings to enable them - Read permission not granted, please do + Read permission not granted, please do this before attempting backup - Write permission not granted, please do + Write permission not granted, please do this before attempting backup - Password/PIN based encryption not + Password/PIN based encryption not supported with broadcast backup - - Automatic backup failed - Automatic backup successful - These notifications are shown when an + New encryption method + Since version 0.6.3 of andOTP, a new and improved + encryption method is used for password-protected backups. The old backups can still be + imported, but it is highly recommended to create new backups with the improved + encryption.\n\nThis message will not be shown again. + + Automatic backup failed + Automatic backup successful + These notifications are shown when an automatic backup has failed for some reason - These notifications are shown when an + These notifications are shown when an automatic backup was successful - - No ha pogut crear el directori de còpia de seguretat - Exportació a l\'emmagatzematge extern correcta - L\'exportació a emmagatzematge extern ha fallat - Importació des de l\'emmagatzematge extern correcta - No s\'han pogut desar les entrades restaurades - El desxifratge de la còpia ha fallat - No s\'han trobat cap entrada en les dades importades - L\'emmagatzematge extern no és accessible actualment - Permisos d\'emmagatzematge no concedits - Error OpenPGP: %s - No s\'ha detectat cap signatura verificada - Password not set, check the Settings + + No ha pogut crear el directori de còpia de seguretat + Exportació a l\'emmagatzematge extern correcta + L\'exportació a emmagatzematge extern ha fallat + Importació des de l\'emmagatzematge extern correcta + No s\'han pogut desar les entrades restaurades + El desxifratge de la còpia ha fallat + No s\'han trobat cap entrada en les dades importades + L\'emmagatzematge extern no és accessible actualment + Permisos d\'emmagatzematge no concedits + Error OpenPGP: %s + No s\'ha detectat cap signatura verificada + Password not set, check the Settings diff --git a/app/src/main/res/values-ca-rES/strings_intro.xml b/app/src/main/res/values-ca-rES/strings_intro.xml index 72081b28..5cb2e135 100644 --- a/app/src/main/res/values-ca-rES/strings_intro.xml +++ b/app/src/main/res/values-ca-rES/strings_intro.xml @@ -1,14 +1,14 @@ - Let\'s get started - Welcome to andOTP, this wizard will guide you through + Let\'s get started + Welcome to andOTP, this wizard will guide you through the initial setup. Please pay attention and read carefully otherwise you could lose data! \n\nDon\'t worry, you can still change any of the options later in the Settings. - To ensure the security of your accounts andOTP only + To ensure the security of your accounts andOTP only stores them in encrypted data files. Here you can choose which method of encryption will be used. - The KeyStore is a system component of Android for + The KeyStore is a system component of Android for securely storing cryptographic keys. The advantage of this method is that the keys are stored separated from the data files and can be backed by hardware cryptography (if your device supports it). However, as the keys are not stored with the apps data, this method @@ -17,21 +17,21 @@ \n\nWarning: The KeyStore is known to cause a lot of problems, please only use it if you absolutely have to. If you don\'t mind entering a password / PIN every time you start andOTP it is highly recommended to use the password-based encryption instead. - This method will encrypt your data with a key + This method will encrypt your data with a key generated from a password or PIN. The main advantage here is that this will work with external backup solutions (like Titanium) and is much less failure-prone than the KeyStore. However, you will have to enter your credentials every time you start andOTP. - Here you can setup an authentication to lock + Here you can setup an authentication to lock andOTP. Since you have chosen Android KeyStore as encryption method this is optional. - Here you can setup an authentication to lock + Here you can setup an authentication to lock andOTP. Since you have chosen Password / PIN as encryption method you need to set either a password or a PIN to proceed. - Please set a password to continue! - Please set a PIN to continue! - Please confirm your password to continue! - Please confirm your PIN to continue! - Finished - Your settings have been saved, you are all set to use + Please set a password to continue! + Please set a PIN to continue! + Please confirm your password to continue! + Please confirm your PIN to continue! + Finished + Your settings have been saved, you are all set to use andOTP now! diff --git a/app/src/main/res/values-ca-rES/strings_main.xml b/app/src/main/res/values-ca-rES/strings_main.xml index 70ad87cf..135d2f5a 100644 --- a/app/src/main/res/values-ca-rES/strings_main.xml +++ b/app/src/main/res/values-ca-rES/strings_main.xml @@ -1,74 +1,74 @@ - - Cancel·la - Introduïu-ne els detalls - Escaneja un codi QR - Desa - Etiqueta nova - Configuració - Totes les etiquetes - Sense etiquetes - - %d s - - Etiqueta - Secret - - Ocult - Tipus - Secret - Període - Dígits - Counter - Etiqueta - Algorisme - Etiquetes - Opcions avançades - - Mostra les etiquetes - Amaga les etiquetes - - Quant a - Còpia de seguretat - Cerca - Configuració - Ordena - Sense ordenar - Etiqueta - Últimes utilitzades - Edita l\'etiqueta - Canvia la imatge - Edita etiquetes - Suprimeix - - Error d\'autenticació. Torneu-ho a intentar! - L\'autenticació ha fallat, andOTP es tancarà! - Copiat al porta-retalls - Aquest element ja existeix - Codi QR no vàlid - No s\'ha carregat la clau de xifratge - - Autentica - Introduïu-ne els detalls - Suprimeix - Canvia el nom - Counter - Últimes utilitzades - Error al magatzem de claus - Enter password - Enter password - Confirm password - Per favor, introduïu les vostres credencials per a iniciar andOTP. - Segur que voleu suprimir el compte \"%1$s\"? - Per tal que andOTP reconega quin testimoni va ser l\'últim + + Cancel·la + Introduïu-ne els detalls + Escaneja un codi QR + Desa + Etiqueta nova + Configuració + Totes les etiquetes + Sense etiquetes + + %d s + + Etiqueta + Secret + + Ocult + Tipus + Secret + Període + Dígits + Comptador + Etiqueta + Algorisme + Etiquetes + Opcions avançades + + Mostra les etiquetes + Amaga les etiquetes + + Quant a + Còpia de seguretat + Cerca + Configuració + Ordena + Sense ordenar + Etiqueta + Últimes utilitzades + Edita l\'etiqueta + Canvia la imatge + Edita etiquetes + Suprimeix + + Error d\'autenticació. Torneu-ho a intentar! + L\'autenticació ha fallat, andOTP es tancarà! + Copiat al porta-retalls + Aquest element ja existeix + Codi QR no vàlid + No s\'ha carregat la clau de xifratge + + Autentica + Introduïu-ne els detalls + Suprimeix + Canvia el nom + Comptador + Últimes utilitzades + Error al magatzem de claus + Introduïu la contrasenya + Introduïu la contrasenya + Confirmeu la contrasenya + Per favor, introduïu les vostres credencials per a iniciar andOTP. + Segur que voleu suprimir el compte \"%1$s\"? + Per tal que andOTP reconega quin testimoni va ser l\'últim heu d\'habilitar \"toqueu per a mostrar\" o feu servir el botó de copia.\n\nAquest missatge no tornarà a aparéixer. - Failed to load the encryption key from the KeyStore. - Any entries that are added will get lost.\n\nTo still be able to use andOTP you can go - to the Settings and switch the Database encryption to Password / PIN. - - Escaneja un codi QR - Enter details + No s\'ha pogut carregar la clau de xifratge del KeyStore. + Qualsevol entrada que s\'hi hagin afegit es perdrà.\n\nPer a continuar usant andOTP, podeu + anar a la Configuració i canviar el xifratge de la base de dades a Contrasenyes / PIN. + + Escaneja un codi QR + Introduïu-ne els detalls diff --git a/app/src/main/res/values-ca-rES/strings_settings.xml b/app/src/main/res/values-ca-rES/strings_settings.xml index 1cf91eed..5d19cb98 100644 --- a/app/src/main/res/values-ca-rES/strings_settings.xml +++ b/app/src/main/res/values-ca-rES/strings_settings.xml @@ -1,158 +1,158 @@ - Configuració - - Seguretat - Interfície d\'usuari - Còpia de seguretat - - Toqueu per a mostrar - Temps d\'espera per a \"toqueu per a mostrar\" - Autenticació - Contrasenya - PIN - Xifratge de la base de dades - Botó del pànic - Re-lock on screen off - Idioma - Tema - Mida de la lletra de l\'etiqueta - Permet el desplaçament a les etiquetes - Mida de la miniatura - Separa el testimoni amb espais - Tag selection behavior - Append date to filename - Demana el nom de fitxer - Directori de còpia de seguretat - Contrasenya de la còpia de seguretat - Backup Broadcasts - OpenPGP provider - OpenPGP encryption key - OpenPGP signing key (optional) - Verifica les còpies de seguretat xifrades - Habilita les característiques especials - Permet screenshots - Enable Android sync - Neteja el magatzem de claus - - Amaga els testimonis OTP per defecte, caldrà + Configuració + + Seguretat + Interfície d\'usuari + Còpia de seguretat + + Toqueu per a mostrar + Temps d\'espera per a \"toqueu per a mostrar\" + Autenticació + Contrasenya + PIN + Xifratge de la base de dades + Botó del pànic + Re-lock on screen off + Idioma + Tema + Mida de la lletra de l\'etiqueta + Permet el desplaçament a les etiquetes + Mida de la miniatura + Separa el testimoni amb espais + Tag selection behavior + Append date to filename + Demana el nom de fitxer + Directori de còpia de seguretat + Contrasenya de la còpia de seguretat + Backup Broadcasts + OpenPGP provider + OpenPGP encryption key + OpenPGP signing key (optional) + Verifica les còpies de seguretat xifrades + Habilita les característiques especials + Permet screenshots + Enable Android sync + Neteja el magatzem de claus + + Amaga els testimonis OTP per defecte, caldrà mostrar-los manualment - Indiqueu durant quant de temps (en segons) + Indiqueu durant quant de temps (en segons) es mostraran les entrades - Decidiu què fer quan es prem el botó del pànic - Require authentication after the devices screen + Decidiu què fer quan es prem el botó del pànic + Require authentication after the devices screen has been turned off - Les etiquetes llargues es desplacen en comptes de truncar-les - Append the current date and time to the suggested + Les etiquetes llargues es desplacen en comptes de truncar-les + Append the current date and time to the suggested backup filename - Demana el nom del fitxer cada vegada que es crea o restaura una còpia de seguretat - Directori per a les còpies de seguretat (el nom dels fitxers + Demana el nom del fitxer cada vegada que es crea o restaura una còpia de seguretat + Directori per a les còpies de seguretat (el nom dels fitxers depén del tipus de còpia) - Contrasenya que s\'usarà per a xifrar les + Contrasenya que s\'usarà per a xifrar les còpies de seguretat - Select which backup types can be triggered by + Select which backup types can be triggered by 3rd-party apps using Broadcasts - Mail address of the OpenPGP key used to encrypt + Mail address of the OpenPGP key used to encrypt the backups - Només s\'importaran còipes xifrades si s\'han + Només s\'importaran còipes xifrades si s\'han signat amb una clau vàlida - Desmarqueu per a deshabilitar les característiques especials - Permet fer captures de la pantalla principal + Desmarqueu per a deshabilitar les característiques especials + Permet fer captures de la pantalla principal (desactivat per defecte per motius de seguretat) - Enables andOTP to use Android\'s + Enables andOTP to use Android\'s built in backup service to backup keys and preferences - Esborra la clau d\'encriptació del magatzem de claus - - Aquesta característica només funciona amb + Esborra la clau d\'encriptació del magatzem de claus + + Aquesta característica només funciona amb Android 5.0 (Lollipop) o superior - Aquesta característica requereix un bloqueig de pantalla + Aquesta característica requereix un bloqueig de pantalla segur (Configuració -> Seguretat -> Bloqueig de pantalla) - Les contrasenyes buides no són permeses, + Les contrasenyes buides no són permeses, trieu autenticació nul·la per a desactivar-la! - S\'està mirant de canviar el xifratge de la base de dades; + S\'està mirant de canviar el xifratge de la base de dades; per favor, espereu! - S\'ha canviat el xifratge de la base de + S\'ha canviat el xifratge de la base de dades amb èxit! - No ha estat possible canviar el xifratge de la + No ha estat possible canviar el xifratge de la base de dades: romandrà en l\'estat original! - No ha estat possible crear la còpia + No ha estat possible crear la còpia interna, s\'ha interromput! - No ha estat possible obtenir la clau de xifratge, s\'ha interromput! - Ha fallat l\'autenticació! - Ha fallat l\'actualització automàtica de la contrasenya / PIN + No ha estat possible obtenir la clau de xifratge, s\'ha interromput! + Ha fallat l\'autenticació! + Ha fallat l\'actualització automàtica de la contrasenya / PIN per al nou xifratge; per favor, reinicialitzeu-la manualment en la configuració! - Warning - Error - Voleu neteja el magatzem de claus? - Android sync - andOTP will now try to change the database + Warning + Error + Voleu neteja el magatzem de claus? + Android sync + andOTP will now try to change the database encryption. In case of a failure an internal backup will be restored and the encryption remains unchanged.\n\nHowever, it\'s always a good idea to have a backup in case something unexpected happens! - Només podeu usar una contrasenya o un PIN + Només podeu usar una contrasenya o un PIN si el xifratge de la base de dades s\'ha establert a \"contrasenya / PIN\"! - Primer cal definir l\'autenticació a \"contrasenya\" o \"PIN\"! - Cal establir una contrasenya o PIN abans de canviar l\'encriptació! - En alguns casos, netejar el magatzem de claus + Primer cal definir l\'autenticació a \"contrasenya\" o \"PIN\"! + Cal establir una contrasenya o PIN abans de canviar l\'encriptació! + En alguns casos, netejar el magatzem de claus pot ajudar a resoldre problemes. Feu-ho només si sabeu què feu!\\n\nAtés que el xifratge de la base de dades està definit a contrasenya / PIN no hauríeu de perdre-hi dades (fer una cópia de seguretat sempre va bé, però).\n\nSegur que voleu netejar el magatzem de claus (KeyStore)? - En alguns casos, netejar el magatzem de claus + En alguns casos, netejar el magatzem de claus pot ajudar a resoldre problemes. Feu-ho només si sabeu què feu!\\n\nAlerta: Atés que el xifratge de la base de dades està definit a Android KeyStore perdreu tots els comptes. Comproveu que n\'heu fet una còpia!\n\nSegur que voleu netejar el magatzem de claus (KeyStore)? - Android sync can not be used with keystore + Android sync can not be used with keystore encryption, you should perform a manual backup! - - - Cap - Contrasenya - PIN - Credencials del dispositiu - - - Android KeyStore - Contrasenya / PIN - - - Suprimeix tots els comptes - Reinicialitza les opcions de l\'aplicació - - - Tema clar - Tema fosc - Tema negre - - - Ocult - Petita - Per defecte - Mitjana - Grossa - - - No dividir - Després de dos caràcters - Després de tres caràcters - - - Show all entries matching any of the selected tags (or) - Only show entries matching all of the selected tags (and) - Switch between tags (only allow one tag to be selected at a time) - - - Plain-text backups - Encrypted backups - - - Valor del sistema per defecte - - Introduïu la contrasenya nova - Introduïu el PIN nou - Confirmeu la contrasenya - Confirmeu el PIN - La contrasenya ha de tenir, si més no, %1$d caràcters! - El PIN ha de tindre, si més no, %1$d xifres! + + + Cap + Contrasenya + PIN + Credencials del dispositiu + + + Android KeyStore + Contrasenya / PIN + + + Suprimeix tots els comptes + Reinicialitza les opcions de l\'aplicació + + + Tema clar + Tema fosc + Tema negre + + + Ocult + Petita + Per defecte + Mitjana + Grossa + + + No dividir + Després de dos caràcters + Després de tres caràcters + + + Show all entries matching any of the selected tags (or) + Only show entries matching all of the selected tags (and) + Switch between tags (only allow one tag to be selected at a time) + + + Plain-text backups + Encrypted backups + + + Valor del sistema per defecte + + Introduïu la contrasenya nova + Introduïu el PIN nou + Confirmeu la contrasenya + Confirmeu el PIN + La contrasenya ha de tenir, si més no, %1$d caràcters! + El PIN ha de tindre, si més no, %1$d xifres! diff --git a/app/src/main/res/values-cs-rCZ/strings_about.xml b/app/src/main/res/values-cs-rCZ/strings_about.xml index ccacdb01..2103c2d3 100644 --- a/app/src/main/res/values-cs-rCZ/strings_about.xml +++ b/app/src/main/res/values-cs-rCZ/strings_about.xml @@ -18,8 +18,7 @@ Autor původní aplikace Původní aplikace Webová stránka - Podpořit přes PayPal - Podpořit Bitcoinem + Podpořit K vývoji přispěli Překladatelé diff --git a/app/src/main/res/values-cs-rCZ/strings_backup.xml b/app/src/main/res/values-cs-rCZ/strings_backup.xml index 34d6d722..5e737175 100644 --- a/app/src/main/res/values-cs-rCZ/strings_backup.xml +++ b/app/src/main/res/values-cs-rCZ/strings_backup.xml @@ -10,6 +10,7 @@ Zálohovat (OpenPGP) Obnovit zálohu (nechráněnou) Obnovit zálohu (šifrovanou) + Obnova (šifrované, staré šifrování) Obnovit zálohu (OpenPGP) Nahrazovat předchozí záznamy Zálohovat všechny účty do nechráněného souboru JSON @@ -17,6 +18,8 @@ Zálohovat všechny účty do souboru JSON šifrovaného OpenPGP Obnovit účty z nechráněného souboru JSON Obnovit účty ze souboru JSON chráněného heslem + Obnoví účty z JSON souboru chráněného heslem, +který byl vytvořen pomocí verze andOTP nižší než 0.6.3 Obnovit účty ze souboru JSON šifrovaného OpenPGP Nepodařilo se načíst záložní heslo z Nastavení, to buď znamená, že není nastaveno žádné heslo nebo něco se pokazilo. Budete vyzváni k ručnímu zadání hesla při vytváření nebo importu zálohy. @@ -33,6 +36,10 @@ Nebylo uděleno oprávnění ke čtení, prosím udělte ho před pokusem o zálohování Nebylo uděleno oprávnění k zápisu, prosím udělte ho před pokusem o zálohování Šifrování heslem/PINem není podporováno v kombinaci s automatizovaným zálohováním + Nová metoda šifrování + Od veze 0.6.3 se pro ochranu heslem používá nová a vylepšená metoda šifrování +Stále lze importovat staré zálohy, ale velmi se doporučuje vytvořit novou zálohu s vylepšeným šifrováním. +\n\nTato zpráva se již nezobrazí. Automatické zálohování selhalo Automatické zálohování proběhlo úspěšně diff --git a/app/src/main/res/values-de-rDE/strings_about.xml b/app/src/main/res/values-de-rDE/strings_about.xml index 5d5f5738..a216af4d 100644 --- a/app/src/main/res/values-de-rDE/strings_about.xml +++ b/app/src/main/res/values-de-rDE/strings_about.xml @@ -18,8 +18,7 @@ Autor der ursprünglichen App Ursprüngliche App Webseite - Spenden (PayPal) - Spenden (Bitcoin) + Spenden Mitwirkende Übersetzer diff --git a/app/src/main/res/values-de-rDE/strings_backup.xml b/app/src/main/res/values-de-rDE/strings_backup.xml index 712ed41e..a750fa93 100644 --- a/app/src/main/res/values-de-rDE/strings_backup.xml +++ b/app/src/main/res/values-de-rDE/strings_backup.xml @@ -10,6 +10,7 @@ Datensicherung (OpenPGP) Wiederherstellen (Klartext) Wiederherstellen (verschlüsselt) + Datensicherung (verschlüsselt, alte Verschlüsselungsmethode) Wiederherstellen (OpenPGP) Vorhandene Einträge ersetzen Alle Konten in einer Klartext-JSON-Datei sichern @@ -17,6 +18,8 @@ Alle Konten in einer OpenPGP-verschlüsselten JSON-Datei sichern Konten aus einer Klartext-JSON-Datei wiederherstellen Konten aus einer passwortgeschützten JSON-Datei wiederherstellen + Konten aus einer passwortgeschützten JSON-Datei wiederherstellen + erstellt mit einer andOTP-Version unter 0.6.3 Konten aus einer OpenPGP-verschlüsselten JSON-Datei wiederherstellen Laden des Backup-Passworts aus den Einstellungen fehlgeschlagen, was bedeutet, dass entweder kein Passwort gesetzt wurde oder etwas schiefgelaufen ist. @@ -40,6 +43,11 @@ zum Sichern benötigt Passwort/PIN Verschlüsselung ist nicht unterstützt mit Broadcast Datensicherung + Neue Verschlüsselungsmethode + Seit Version 0.6.3 von andOTP, wird eine neue und verbesserte + Verschlüsselungsmethode für passwortgeschützte Datensicherungen benutzt. Alte Datensicherungen + können weiterhin importiert werden, aber es wird nachdrücklich empfohlen neue Datensicherungen mit + der verbesserten Verschlüsselung zu erstellen.\n\nDiese Nachricht wird nicht erneut angezeigt. Automatische Sicherung fehlgeschlagen Automatische Sicherung erfolgreich diff --git a/app/src/main/res/values-es-rES/strings_about.xml b/app/src/main/res/values-es-rES/strings_about.xml index ee8e2ae3..1ee44e83 100644 --- a/app/src/main/res/values-es-rES/strings_about.xml +++ b/app/src/main/res/values-es-rES/strings_about.xml @@ -18,8 +18,7 @@ Autor de la aplicación original Aplicación original Página web - Donar (PayPal) - Donar (Bitcoin) + Donar Contribuidores Traductores diff --git a/app/src/main/res/values-es-rES/strings_backup.xml b/app/src/main/res/values-es-rES/strings_backup.xml index e4f342a1..a8b6a64f 100644 --- a/app/src/main/res/values-es-rES/strings_backup.xml +++ b/app/src/main/res/values-es-rES/strings_backup.xml @@ -10,6 +10,7 @@ Copia de seguridad (OpenPGP) Restaurar (texto plano) Restaurar (cifradas) + Restaurar (cifrado, antiguo cifrado) Restaurar (OpenPGP) Reemplazar entradas existentes Hace copia de seguridad de todas las cuentas en un fichero JSON de texto plano @@ -17,6 +18,8 @@ Hace copia de seguridad de todas las cuentas en un fichero JSON cifrado con OpenPGP Restaurar cuentas desde fichero JSON de texto plano Restaurar cuentas desde fichero JSON con contraseña + Restaurar cuentas de un archivo JSON protegido por contraseña + creado con una versión de andOTP inferior a 0.6.3 Restaurar cuentas desde fichero JSON cifrado con OpenPGP Error al cargar la contraseña del respaldo de los Ajustes, esto puede deberse a que no se ha establecido una contraseña o a que algo ha salido mal. Se te pedirá que ingreses la contraseña manualmente cuando crees o importes un respaldo. Necesitas instalar un proveedor de OpenPGP y activarlo @@ -43,6 +46,11 @@ hazlo antes de intentar hacer una copia de seguridad Cifrado basado en clave/PIN no soportado en la copia de seguridad de difusión + Nuevo método de cifrado + A partir de la versión 0.6.3 de andOTP, se utiliza un nuevo y mejorado + método de cifrado para copias de seguridad protegidas por contraseña. Las copias de seguridad antiguas aún pueden ser + importadas, pero es sumamente recomendable crear nuevas copias de seguridad con + el cifrado mejorado.\n\nEste mensaje no se mostrará nuevamente. Falló la copia de seguridad automática La copia de seguridad automática se realizó con éxito diff --git a/app/src/main/res/values-es-rES/strings_intro.xml b/app/src/main/res/values-es-rES/strings_intro.xml index 0e5ba0a6..55fb3c61 100644 --- a/app/src/main/res/values-es-rES/strings_intro.xml +++ b/app/src/main/res/values-es-rES/strings_intro.xml @@ -7,7 +7,7 @@ \n\nNo te preocupes, siempre podrás modificar la configuración en los Ajustes. Para asegurar la seguridad de tus cuentas andOTP solo las almacena en ficheros cifrados. Aquí puedes elegir qué método de cifrado se usará. - El almacén de claves es una herramienta de Android que permite almacenar claves criptográficas con seguridad. La ventaja de este método es que las llaves se almacenan apartadas de los archivos y pueden ser respaldadas con criptografía por hardware (si tienes un dispositivo compatible). Sin embargo, ya que las claves no se almacenan en los archivos de la aplicación, este método no es compatible con copias de seguridad externas (como Titanium) . Si eliges este método, te verás limitado a las copias de respaldo de andOTP. \n\nAtención: El almacén de claves suele causar problemas, por favor, evita usarlo a menos que realmente tengas que hacerlo. Si no te importa ingresar una contraseña / PIN cuando inicias andOTP, es altamente recomendable que utilices la encriptación por contraseña. + El almacén de claves es una herramienta de Android que permite almacenar claves criptográficas con seguridad. La ventaja de este método es que las llaves se almacenan apartadas de los archivos y pueden ser respaldadas con criptografía por hardware (si tienes un dispositivo compatible). Sin embargo, ya que las claves no se almacenan en los archivos de la aplicación, <b>este método no es compatible con copias de seguridad externas (como Titanium) </b>. Si eliges este método, te verás limitado a las copias de respaldo de <b>andOTP</b>. \n\n<b>Atención</b>: El almacén de claves suele causar problemas, por favor, evita usarlo a menos que realmente tengas que hacerlo. Si no te importa ingresar una contraseña / PIN cuando inicias <b>andOTP</b>, es <b>altamente recomendable que utilices la encriptación por contraseña<b>. Este método cifrará tus datos con una clave generada desde una contraseña o PIN. La ventaja principal es que funcionará con herramientas de copia de seguridad externas (como Titanium) y da menos problemas que el almacen de claves. diff --git a/app/src/main/res/values-fa-rIR/strings_about.xml b/app/src/main/res/values-fa-rIR/strings_about.xml index 58eaab88..ebf48dff 100644 --- a/app/src/main/res/values-fa-rIR/strings_about.xml +++ b/app/src/main/res/values-fa-rIR/strings_about.xml @@ -18,8 +18,7 @@ سازنده برنامه اصلی برنامه اصلی وب‌سایت - حمایت مالی (PayPal) - حمایت مالی (Bitcoin) + حمایت مالی مشارکت‌کنندگان مترجمان diff --git a/app/src/main/res/values-fa-rIR/strings_backup.xml b/app/src/main/res/values-fa-rIR/strings_backup.xml index 87bb0b44..66a9fdeb 100644 --- a/app/src/main/res/values-fa-rIR/strings_backup.xml +++ b/app/src/main/res/values-fa-rIR/strings_backup.xml @@ -10,6 +10,7 @@ پشتیبان‌گیری (OpenPGP) بازنشانی (متن ساده) بازنشانی (رمزگذاری شده) + بازگردانی (رمزگذاری شده، رمزگذاری قدیمی) بازنشانی (OpenPGP) موارد موجود را جایگزین کن پشتیبان‌گیری از همه حساب‌ها در پرونده JSON متن ساده @@ -17,6 +18,7 @@ پشتیبان‌گیری از همه حساب‌ها در پرونده JSON رمزگذاری شده با OpenPGP بازنشانی از پرونده JSON متن ساده بازنشانی از پرونده JSON رمز دار + بازگردانی حساب‌خا از پرونده JSON محافظت‌شده با رمز ساخته شده با یک andOTP با نسخه پایین‌تر از ۰.۶.۳ بازنشانی از پرونده JSON رمزگذاری شده با OpenPGP شکست در بارگیری رمز عبور پشتیبان از تنظیمات، این به معنای عدم وجود رمز عبور است یا اشکالی پیش آمده. زمانی که شما یک پشتیبان می‌سازید یا یک پشتیبان وارد می‌کنید، از شما خواسته خواهد شد تا رمز عبور را به صورت دستی وارد کنید. شما نیاز دارید که یک مهیاکننده OpenPGP نصب کنید و آن را در تنظیمات فعال کنید تا از این قابلیت استفاده کنید. @@ -32,6 +34,8 @@ اجازه خواندن داده نشده، لطفا قبل از تلاش برای پشتیبان‌گیری این اجازه را بدهید اجازه نوشتن داده نشده، لطفا قبل از تلاش برای پشتیبان‌گیری این اجازه را بدهید رمز عبور / پین بر اساس رمزگذاری، توسط Broadcast Backup پشتیبانی نمی‌شود + روش رمزگذاری جدید + از نسخه‌ی ۰.۶.۳ ی andOTP، یک روش بهبودیافته و جدید رمزگذاری برای پشتیبان‌های محافظت‌شده با رمز استفاده شده است. پشتیبان‌های قدیمی هنوز می‌توانند وارد شوند، اما بسیار پیشنهاد می‌شود که از روش بهبودیافته‌ی رمزگذاری استفاده کنید.\n\nاین پیام دوباره نشان داده نخواهد شد. شکست در پشتیبان‌گیری خودکار پشتیبان‌گیری خودکار با موفقیت انجام شد diff --git a/app/src/main/res/values-fr-rFR/strings_about.xml b/app/src/main/res/values-fr-rFR/strings_about.xml index 7d8cbfd0..9bbd53ee 100644 --- a/app/src/main/res/values-fr-rFR/strings_about.xml +++ b/app/src/main/res/values-fr-rFR/strings_about.xml @@ -1,42 +1,41 @@ - À propos - Authentification à double facteur open source pour Android - À propos - Bibliothèques - - Liste des changements - Licence - Licence MIT - Code source - Version - - Auteurs - Développeur principal - Développeur - Auteur de l\'application originale - Application originale - Site web - Faire un don (PayPal) - Faire un don (Bitcoin) - Contributeurs - Traducteurs - - Notice légale abrégée - 1. Toutes les icônes sont des marques déposées de leur propriétaires respectifs. - 2. L\'utilisation de ces marques déposées n\'implique pas l\'approbation d\'andOTP pour ces marques et réciproquement. - 3. Les icônes ne doivent être utilisées que pour représenter l\'entreprise ou le produit auquel elles font référence. - 4. Veillez à ne pas utiliser les icônes pour d\'autre raisons que la représentation de ces marques ou services déterminés. - - Aider au développement - Rapporter des bugs - Traduire - Rapporter des bugs ou demander de nouvelles fonctionnalités - Aider à la traduction d\'andOTP dans votre langue - Fonctionnalités spéciales - Êtes-vous certain de vouloir activer les fonctionnalités spéciales? La plupart d\'entre elles sont des algorithmes OTP non standard qui ont été implémentés pour des demandes spécifiques. Elles ne sont pas supportées officiellement et peuvent venir avec certaines limitations. Veuillez consulter (et comprendre) la page « Fonctionnalités spéciales » sur le wiki du GitHub pour en apprendre d\'avantage avant de les utiliser. - Fonctionnalités spéciales activées - Fonctionnalités spéciales déjà activées - Lien de don copié dans le presse-papier + À propos + Authentification à double facteur open source pour Android + À propos + Bibliothèques + + Liste des changements + Licence + Licence MIT + Code source + Version + + Auteurs + Développeur principal + Développeur + Auteur de l\'application originale + Application originale + Site web + Faire un don + Contributeurs + Traducteurs + + Notice légale abrégée + 1. Toutes les icônes sont des marques déposées de leur propriétaires respectifs. + 2. L\'utilisation de ces marques déposées n\'implique pas l\'approbation d\'andOTP pour ces marques et réciproquement. + 3. Les icônes ne doivent être utilisées que pour représenter l\'entreprise ou le produit auquel elles font référence. + 4. Veillez à ne pas utiliser les icônes pour d\'autre raisons que la représentation de ces marques ou services déterminés. + + Aider au développement + Rapporter des bugs + Traduire + Rapporter des bugs ou demander de nouvelles fonctionnalités + Aider à la traduction d\'andOTP dans votre langue + Fonctionnalités spéciales + Êtes-vous certain de vouloir activer les fonctionnalités spéciales? La plupart d\'entre elles sont des algorithmes OTP non standard qui ont été implémentés pour des demandes spécifiques. Elles ne sont pas supportées officiellement et peuvent venir avec certaines limitations. Veuillez consulter (et comprendre) la page « Fonctionnalités spéciales » sur le wiki du GitHub pour en apprendre d\'avantage avant de les utiliser. + Fonctionnalités spéciales activées + Fonctionnalités spéciales déjà activées + Lien de don copié dans le presse-papier diff --git a/app/src/main/res/values-fr-rFR/strings_auth.xml b/app/src/main/res/values-fr-rFR/strings_auth.xml index 1ac79373..6c2979e1 100644 --- a/app/src/main/res/values-fr-rFR/strings_auth.xml +++ b/app/src/main/res/values-fr-rFR/strings_auth.xml @@ -1,19 +1,19 @@ - Identifiez-vous - - Mot de passe - Code PIN - - Veuillez vous authentifier pour lancer andOTP ! - Veuillez confirmer votre authentification pour générer la + Identifiez-vous + + Mot de passe + Code PIN + + Veuillez vous authentifier pour lancer andOTP ! + Veuillez confirmer votre authentification pour générer la nouvelle clé de chiffrement ! - - Déverrouiller - - Veuillez définir un mot de passe dans les paramètres ! - Veuillez définir un code PIN dans les paramètres ! - Mot de passe incorrect, veuillez réessayer ! - Code PIN incorrect, veuillez réessayer ! + + Déverrouiller + + Veuillez définir un mot de passe dans les paramètres ! + Veuillez définir un code PIN dans les paramètres ! + Mot de passe incorrect, veuillez réessayer ! + Code PIN incorrect, veuillez réessayer ! diff --git a/app/src/main/res/values-fr-rFR/strings_backup.xml b/app/src/main/res/values-fr-rFR/strings_backup.xml index 3c7e5c9b..63e4ca37 100644 --- a/app/src/main/res/values-fr-rFR/strings_backup.xml +++ b/app/src/main/res/values-fr-rFR/strings_backup.xml @@ -1,55 +1,64 @@ - Sauvegardes - Sauvegardes en clair - Sauvegardes chiffrées - Sauvegardes avec OpenPGP - Sauvegarde (en clair) - Sauvegarde (chiffrée) - Sauvegarde (OpenPGP) - Restauration (en clair) - Restauration (chiffrée) - Restauration (OpenPGP) - Remplacer les entrées existantes - Sauvegarder tous les comptes en clair dans un fichier JSON - Sauvegarder tous les comptes dans un fichier JSON protégé par un mot de passe - Sauvegarder tous les comptes dans un fichier JSON chiffré avec OpenPGP - Restaurer tous les comptes à partir d\'un fichier JSON en clair - Restaurer tous les comptes à partir d\'un fichier JSON protégé par un mot de passe - Restaurer tous les comptes à partir d\'un fichier JSON chiffré avec OpenPGP - Le mot de passe de sauvegarde n\'a pas été chargé à partir des Réglages, + Sauvegardes + Sauvegardes en clair + Sauvegardes chiffrées + Sauvegardes avec OpenPGP + Sauvegarde (en clair) + Sauvegarde (chiffrée) + Sauvegarde (OpenPGP) + Restauration (en clair) + Restauration (chiffrée) + Restaurer (chiffré, ancien chiffrement) + Restauration (OpenPGP) + Remplacer les entrées existantes + Sauvegarder tous les comptes en clair dans un fichier JSON + Sauvegarder tous les comptes dans un fichier JSON protégé par un mot de passe + Sauvegarder tous les comptes dans un fichier JSON chiffré avec OpenPGP + Restaurer tous les comptes à partir d\'un fichier JSON en clair + Restaurer tous les comptes à partir d\'un fichier JSON protégé par un mot de passe + Restaurer les comptes depuis un fichier JSON protégé par un mot de passe + créé avec une version andOTP inférieure à 0.6.3 + Restaurer tous les comptes à partir d\'un fichier JSON chiffré avec OpenPGP + Le mot de passe de sauvegarde n\'a pas été chargé à partir des Réglages, cela signifie soit qu\'aucun mot de passe n\'a été défini, soit que quelque chose n\'a pas fonctionné. Il vous sera demandé d\'entrer le mot de passe manuellement lors de la création ou de l\'importation d\'une sauvegarde. - Vous devez installer un fournisseur OpenPGP et l\'activer dans les paramètres pour utiliser cette fonctionnalité. - Vous devez sélectionner un fournisseur OpenPGP dans les paramètres afin de pouvoir créer des sauvegardes chiffrées. - Si activé, à l\'import d\'une sauvegarde toutes les entrées seront supprimées et remplacées par les entrées de la sauvegarde. Si désactivé, les entrées seront fusionnées avec celles de la sauvegarde. - - Avertissement de sécurité - Êtes-vous sûr de vouloir exporter la base de données en clair dans un fichier JSON ? Ce fichier contiendra toutes vos clés privées, veuillez le placer dans un endroit sûr ! - La sauvegarde a échoué - Sauvegarde réussie - Les sauvegardes en clair ne sont actuellement pas autorisées, veuillez aller dans les Paramètres afin de les activer - Les sauvegardes chiffrées ne sont actuellement pas autorisées, veuillez aller dans les Paramètres afin de les activer - L\'autorisation de lecture n\'est pas accordée, veuillez le faire avant d’effectuer la sauvegarde - L\'autorisation d\'écriture n\'est pas accordée, veuillez le faire avant d’effectuer la sauvegarde - Le chiffrement à base de mot de passe ou code PIN n\'est pas supporté par la sauvegarde par diffusion - - Échec de la sauvegarde automatique - Succès de la sauvegarde automatique - Ces notifications sont affichées quand une sauvegarde automatique a échoué pour une raison quelconque - Ces notifications sont affichées quand une sauvegarde automatique a réussi - - Échec de la création du répertoire de sauvegarde - Sauvegarde vers le stockage externe effectuée avec succès - La sauvegarde vers le stockage externe a échoué - Restauration depuis le stockage externe effectuée avec succès - Échec de l\'enregistrement des entrées restaurées - Échec du déchiffrement de la sauvegarde - Aucune entrée trouvée dans les données importées - Stockage externe non disponible - Permission d\'accéder au stockage refusée - Erreur OpenPGP : %s - Aucune signature vérifiée n\'a été trouvée - Aucun mot de passe défini, vérifiez les paramètres + Vous devez installer un fournisseur OpenPGP et l\'activer dans les paramètres pour utiliser cette fonctionnalité. + Vous devez sélectionner un fournisseur OpenPGP dans les paramètres afin de pouvoir créer des sauvegardes chiffrées. + Si activé, à l\'import d\'une sauvegarde toutes les entrées seront supprimées et remplacées par les entrées de la sauvegarde. Si désactivé, les entrées seront fusionnées avec celles de la sauvegarde. + + Avertissement de sécurité + Êtes-vous sûr de vouloir exporter la base de données en clair dans un fichier JSON ? Ce fichier contiendra toutes vos clés privées, veuillez le placer dans un endroit sûr ! + La sauvegarde a échoué + Sauvegarde réussie + Les sauvegardes en clair ne sont actuellement pas autorisées, veuillez aller dans les Paramètres afin de les activer + Les sauvegardes chiffrées ne sont actuellement pas autorisées, veuillez aller dans les Paramètres afin de les activer + L\'autorisation de lecture n\'est pas accordée, veuillez le faire avant d’effectuer la sauvegarde + L\'autorisation d\'écriture n\'est pas accordée, veuillez le faire avant d’effectuer la sauvegarde + Le chiffrement à base de mot de passe ou code PIN n\'est pas supporté par la sauvegarde par diffusion + Nouvelle méthode de chiffrement + Depuis la version 0.6.3 de andOTP, une nouvelle méthode + de chiffrement améliorée est utilisée pour les sauvegardres protégées par mot de passe + . Les anciennes sauvegardes peuvent jours être importées mais il est hautement + recommandé de créer de nouvelles sauvegardes avec le chiffrement amélioré.\n\nCe + message ne sera pas affiché une seconde fois. + + Échec de la sauvegarde automatique + Succès de la sauvegarde automatique + Ces notifications sont affichées quand une sauvegarde automatique a échoué pour une raison quelconque + Ces notifications sont affichées quand une sauvegarde automatique a réussi + + Échec de la création du répertoire de sauvegarde + Sauvegarde vers le stockage externe effectuée avec succès + La sauvegarde vers le stockage externe a échoué + Restauration depuis le stockage externe effectuée avec succès + Échec de l\'enregistrement des entrées restaurées + Échec du déchiffrement de la sauvegarde + Aucune entrée trouvée dans les données importées + Stockage externe non disponible + Permission d\'accéder au stockage refusée + Erreur OpenPGP : %s + Aucune signature vérifiée n\'a été trouvée + Aucun mot de passe défini, vérifiez les paramètres diff --git a/app/src/main/res/values-fr-rFR/strings_intro.xml b/app/src/main/res/values-fr-rFR/strings_intro.xml index 517a0b78..884375bc 100644 --- a/app/src/main/res/values-fr-rFR/strings_intro.xml +++ b/app/src/main/res/values-fr-rFR/strings_intro.xml @@ -1,14 +1,14 @@ - C\'est parti - Bienvenue sur andOTP, cet assistant vous guidera lors + C\'est parti + Bienvenue sur andOTP, cet assistant vous guidera lors de la configuration initiale. Veuillez prêter attention et lire attentivement sous peine de perdre des données ! \n\nNe vous inquiétez pas, vous pouvez toujours modifier ces options ultérieurement dans les paramètres. - Pour assurer la sécurité de vos comptes, andOTP ne les + Pour assurer la sécurité de vos comptes, andOTP ne les stocke uniquement dans des fichiers de données chiffrés. Ici, vous pouvez choisir quelle méthode de chiffrement sera utilisée. - Le KeyStore est un composant système d\'Android pour + Le KeyStore est un composant système d\'Android pour stocker de façon sécurisée les clés de chiffrage. L\'avantage de cette méthode est que les clés sont stockées séparément des fichiers de données et peuvent être sauvegardées par un matériel cryptographique (si votre appareil le supporte). Cependant, comme les clés ne sont pas stockée avec les données des applis, cette méthode @@ -16,21 +16,21 @@ méthode, vous devrez vous reposer sur les fonctionnalités de sauvegarde internes fournies par andOTP. \n\nAvertissement : le KeyStore est connu pour être problématique, ne l\'utilisez que si vous êtes obligé. Si saisir un mot de passe / code PIN à chaque démarrage de andOTP ne vous dérange pas, il est fortement recommandé d\'utiliser un chiffrement basé sur un mot de passe . - Cette méthode va chiffrer vos données avec une clé + Cette méthode va chiffrer vos données avec une clé générée à partir d\'un mot de passe ou code PIN. Le principal avantage ici est que cela fonctionnera avec des solutions de sauvegarde externes (comme Titanium) et est bien moins propice aux erreurs que le KeyStore. Cependant, vous devrez saisir vos identifiants à chaque lancement de andOTP. - Ici vous pouvez définir une authentification pour verrouiller + Ici vous pouvez définir une authentification pour verrouiller andOTP. Puisque vous avez choisi le KeyStore Android comme méthode de chiffrement, ceci est optionnel. - Ici vous pouvez définir une authentification pour verrouiller + Ici vous pouvez définir une authentification pour verrouiller andOTP. Puisque vous avez choisi un mot de passe / code PIN comme méthode de chiffrement, vous devez définir un mot de passe ou un code PIN pour continuer. - Veuillez définir un mot de passe pour continuer ! - Veuillez définir un code PIN pour continuer ! - Veuillez confirmer votre mot de passe pour continuer ! - Veuillez confirmer votre code PIN pour continuer ! - Terminé - Vos paramètres ont été enregistrés, vous pouvez maintenant utiliser + Veuillez définir un mot de passe pour continuer ! + Veuillez définir un code PIN pour continuer ! + Veuillez confirmer votre mot de passe pour continuer ! + Veuillez confirmer votre code PIN pour continuer ! + Terminé + Vos paramètres ont été enregistrés, vous pouvez maintenant utiliser andOTP ! diff --git a/app/src/main/res/values-fr-rFR/strings_main.xml b/app/src/main/res/values-fr-rFR/strings_main.xml index e6bc5cf4..0165d31c 100644 --- a/app/src/main/res/values-fr-rFR/strings_main.xml +++ b/app/src/main/res/values-fr-rFR/strings_main.xml @@ -1,71 +1,71 @@ - - Annuler - Ajouter les détails - Scanner un code QR - Enregistrer - Nouveau tag - Paramètres - Tous les tags - Aucun tag - - %d s - - Titre - Secret - - Cachés - Type - Secret - Période - Nombre de chiffres - Compteur - Titre - Algorithme - Tags - Options avancées - - Afficher les tags - Cacher les tags - - À propos - Sauvegarde - Recherche - Paramètres - Trier - Non trié - Titre - Dernier utilisé - Renommer - Modifier l\'image - Éditer les tags - Supprimer - - Échec d\'authentification, veuillez réessayer ! - Échec d\'authentification, fermeture d\'andOTP ! - Copié dans le presse-papier - Cette entrée existe déjà - Code QR invalide - Clé de chiffrement non chargée - - Identifiez-vous - Ajouter les détails - Supprimer - Renommer - Compteur - Dernier utilisé - Erreur KeyStore - Saisir le mot de passe - Saisir le mot de passe - Confirmer le mot de passe - Veuillez entrer les informations d\'identification du périphérique pour démarrer andOTP. - Êtes-vous sûr(e) de vouloir supprimer le compte \"%1$s\" ? - Afin que andOTP puisse reconnaitre le dernier jeton utilisé vous devez activer l\'option \"appuyer pour afficher\" ou utiliser le bouton de copie.\n\nCe message ne s\'affichera plus. - Échec du chargement de la clé de chiffrement à partir de l\'armoire à clés. + + Annuler + Ajouter les détails + Scanner un QR-Code + Enregistrer + Nouveau tag + Paramètres + Tous les tags + Aucun tag + + %d s + + Titre + Secret + + Cachés + Type + Secret + Période + Nombre de chiffres + Compteur + Titre + Algorithme + Tags + Options avancées + + Afficher les tags + Cacher les tags + + À propos + Sauvegarde + Recherche + Paramètres + Trier + Non trié + Titre + Dernier utilisé + Renommer + Modifier l\'image + Éditer les tags + Supprimer + + Échec d\'authentification, veuillez réessayer ! + Échec d\'authentification, fermeture d\'andOTP ! + Copié dans le presse-papier + Cette entrée existe déjà + QR-Code invalide + Clé de chiffrement non chargée + + Identifiez-vous + Ajouter les détails + Supprimer + Renommer + Compteur + Dernier utilisé + Erreur KeyStore + Saisir le mot de passe + Saisir le mot de passe + Confirmer le mot de passe + Veuillez entrer les informations d\'identification du périphérique pour démarrer andOTP. + Êtes-vous sûr(e) de vouloir supprimer le compte \"%1$s\" ? + Afin que andOTP puisse reconnaitre le dernier jeton utilisé vous devez activer l\'option \"appuyer pour afficher\" ou utiliser le bouton de copie.\n\nCe message ne s\'affichera plus. + Échec du chargement de la clé de chiffrement à partir de l\'armoire à clés. Toute entrée ajoutée sera perdue.\n\nPour continuer à utiliser andOTP, vous pouvez aller dans les paramètres pour passer de Chiffrement de la base de données à Mot de passe / Code PIN. - - Scanner le code QR - Ajouter les détails + + Scanner le QR-code + Ajouter les détails diff --git a/app/src/main/res/values-fr-rFR/strings_settings.xml b/app/src/main/res/values-fr-rFR/strings_settings.xml index 3a719d2d..1bdd0a1a 100644 --- a/app/src/main/res/values-fr-rFR/strings_settings.xml +++ b/app/src/main/res/values-fr-rFR/strings_settings.xml @@ -1,142 +1,141 @@ - Paramètres - - Sécurité - Interface - Sauvegarde - - Appuyer pour afficher - Durée d\'affichage des jetons - Identification - Mot de passe - Code PIN - Chiffrement de la base de données - Bouton d\'urgence - Re-verouiller à l\'extinction de l\'écran - Langage - Thème - Taille de la police des titres - Défilement des libellés - Taille des miniatures - Séparer le jeton avec des espaces - Comportement de la sélection par tag - Ajouter la date au nom de fichier - Demander le nom du fichier - Répertoire de sauvegarde - Mot de passe de sauvegarde - Sauvegardes par diffusion - Fournisseur OpenPGP - Clé de chiffrage OpenPGP - Clé de signature OpenPGP (optionnel) - Vérifier les sauvegardes chiffrées - Activer les fonctionnalités spéciales - Permettre les copies d\'écran - Activer la synchronisation Android - Effacer le KeyStore - - Cacher les jetons OTP par défaut et les afficher manuellement - Sélectionnez la durée (en secondes) après laquelle cacher à nouveau les entrées révélées - Choisir quoi faire lorsque que le bouton d\'urgence est déclenché - Exiger une authentification après l\'extinction de l\'écran - Faire défiler les libellés trop longs plutôt que de les tronquer - Ajouter la date et l\'heure au nom de fichier de sauvegarde proposé - Demander le nom du fichier à chaque fois qu\'une sauvegarde est créée ou restaurée - Répertoire de sauvegarde (les noms de fichier dépendront du type de sauvegarde) - Configurer le mot de passe utilisé pour chiffrer les sauvegardes - Sélectionner quelles types de sauvegardes peuvent être appelés pas les applications tiers en utilisant la diffusion - Adresse mail de la clé OpenPGP utilisée pour chiffrer + Paramètres + + Sécurité + Interface + Sauvegarde + + Appuyer pour afficher + Durée d\'affichage des jetons + Identification + Mot de passe + Code PIN + Chiffrement de la base de données + Bouton d\'urgence + Re-verouiller à l\'extinction de l\'écran + Langage + Thème + Taille de la police des titres + Défilement des libellés + Taille des miniatures + Séparer le jeton avec des espaces + Comportement de la sélection par tag + Ajouter la date au nom de fichier + Demander le nom du fichier + Répertoire de sauvegarde + Mot de passe de sauvegarde + Sauvegardes par diffusion + Fournisseur OpenPGP + Clé de chiffrage OpenPGP + Clé de signature OpenPGP (optionnel) + Vérifier les sauvegardes chiffrées + Activer les fonctionnalités spéciales + Permettre les copies d\'écran + Activer la synchronisation Android + Effacer le KeyStore + + Cacher les jetons OTP par défaut et les afficher manuellement + Sélectionnez la durée (en secondes) après laquelle cacher à nouveau les entrées révélées + Choisir quoi faire lorsque que le bouton d\'urgence est déclenché + Exiger une authentification après l\'extinction de l\'écran + Faire défiler les libellés trop longs plutôt que de les tronquer + Ajouter la date et l\'heure au nom de fichier de sauvegarde proposé + Demander le nom du fichier à chaque fois qu\'une sauvegarde est créée ou restaurée + Répertoire de sauvegarde (les noms de fichier dépendront du type de sauvegarde) + Configurer le mot de passe utilisé pour chiffrer les sauvegardes + Sélectionner quelles types de sauvegardes peuvent être appelés pas les applications tiers en utilisant la diffusion + Adresse mail de la clé OpenPGP utilisée pour chiffrer les sauvegardes - Les sauvegardes chiffrées ne sont restaurées que lorsqu\'elles sont signées avec une clé valide - Décochez pour désactiver les fonctionnalités spéciales - Permettre de prendre des copies d\'écran de la vue principale (désactivé par défaut pour des raisons de sécurité) - Permet à AndOTP d\'utiliser le service de sauvegarde Android natif pour la sauvegarde des clés et préférences - Supprimer la clé de chiffrement depuis le KeyStore - - Cette fonctionnalité n\'est disponible que sur Android 5.0 (Lollipop) ou supérieur - Cette fonctionnalité nécessite l\'activation du verrouillage de l’écran (Paramètres -> Sécurité -> Verrouillage de l\'écran) - Un mot de passe vide n\'est pas autorisé, définissez l\'Authentification sur \"Aucune\" pour la désactiver ! - Changement du chiffrement de la base de données, veuillez patienter ! - Chiffrement de la base de données changé avec succès ! - Impossible de changer le chiffrement de la base de données, retour à l\'état original ! - Échec de la création d\'une sauvegarde interne, annulation ! - Impossible d’obtenir la clé de chiffrement, abandon ! - Échec de l\'authentification ! - Échec de la mise à jour de votre mot de passe / code PIN + Les sauvegardes chiffrées ne sont restaurées que lorsqu\'elles sont signées avec une clé valide + Décochez pour désactiver les fonctionnalités spéciales + Permettre de prendre des copies d\'écran de la vue principale (désactivé par défaut pour des raisons de sécurité) + Permet à AndOTP d\'utiliser le service de sauvegarde Android natif pour la sauvegarde des clés et préférences + Supprimer la clé de chiffrement depuis le KeyStore + + Cette fonctionnalité n\'est disponible que sur Android 5.0 (Lollipop) ou supérieur + Cette fonctionnalité nécessite l\'activation du verrouillage de l’écran (Paramètres -> Sécurité -> Verrouillage de l\'écran) + Un mot de passe vide n\'est pas autorisé, définissez l\'Authentification sur \"Aucune\" pour la désactiver ! + Changement du chiffrement de la base de données, veuillez patienter ! + Chiffrement de la base de données changé avec succès ! + Impossible de changer le chiffrement de la base de données, retour à l\'état original ! + Échec de la création d\'une sauvegarde interne, annulation ! + Impossible d’obtenir la clé de chiffrement, abandon ! + Échec de l\'authentification ! + Échec de la mise à jour de votre mot de passe / code PIN pour le nouveau chiffrement, veuillez le réinitialiser manuellement depuis les paramètres ! - Attention - Erreur - Vider le KeyStore ? - Synchronisation Android - andOTP va maintenant essayer de changer le chiffrement de la base de données. En cas d\'échec, une sauvegarde interne sera restaurée et le chiffrement restera inchangé.\n\nCependant, c’est toujours une bonne idée d’avoir une sauvegarde au cas où quelque chose d’inattendu arrive ! - Vous pouvez seulement utiliser un mot de passe ou un code PIN si + Attention + Erreur + Vider le KeyStore ? + Synchronisation Android + andOTP va maintenant essayer de changer le chiffrement de la base de données. En cas d\'échec, une sauvegarde interne sera restaurée et le chiffrement restera inchangé.\n\nCependant, c’est toujours une bonne idée d’avoir une sauvegarde au cas où quelque chose d’inattendu arrive ! + Vous pouvez seulement utiliser un mot de passe ou un code PIN si le chiffrement de la base de données est défini sur \"Mot de passe / Code PIN\" ! - Vous devez d\'abord définir + Vous devez d\'abord définir l\'authentification sur \"Mot de passe / Code PIN\" ! - Vous devez d\'abord définir un + Vous devez d\'abord définir un mot de passe ou code PIN avant de changer le chiffrement ! - Dans certains cas, effacer le KeyStore + Dans certains cas, effacer le KeyStore peut aider à résoudre des problèmes. Vous ne devriez seulement le faire si vous savez ce que vous faites !\n\nVu que le chiffrement de la base de données est défini sur Mot de passe / Code PIN, vous ne devriez perdre aucune donnée en le faisant (mais ça ne fait jamais de mal de faire une sauvegarde).\n\nÊtes-vous sûr(e) de vouloir effacer le KeyStore ? - Dans certains cas, effacer le KeyStore + Dans certains cas, effacer le KeyStore peut aider à résoudre des problèmes. Vous ne devriez seulement le faire si vous savez ce que vous faites !\n\nAttention: Vu que le chiffrement de la base de données est défini sur KeyStore Android, vous allez perdre tous vos comptes. Assurez-vous d\'avoir une sauvegarde !\n\nÊtes-vous sûr(e) de vouloir effacer le KeyStore ? - La synchronisation Android ne peut être utilisée avec le chiffrement de l\'armoire à clés, vous devriez effectuer une sauvegarde manuelle ! - - - Aucune - Mot de passe - Code PIN - Identification du périphérique - - - KeyStore Android - Mot de passe / PIN - - - Supprimer l\'ensemble des comptes - Réinitialiser les paramètres de l\'application - - - Thème clair - Thème sombre - Thème noir - - - Caché - Petit - Par défaut - Moyen - Grand - - - Ne pas séparer - Après deux caractères - Après trois caractères - - - Afficher les entrées correspondant à au moins une des balises sélectionnées (ou) - Afficher les entrées correspondant à toutes les balises sélectionnées (et) - Basculer entre les tags (seul un tag ne peut être sélectionné à la fois) - - - Sauvegardes en clair - Sauvegardes chiffrées - - - Par défaut du système - - Saisir le nouveau mot de passe - Saisir le nouveau code PIN - - Confirmer le mot de passe + La synchronisation Android ne peut être utilisée avec le chiffrement de l\'armoire à clés, vous devriez effectuer une sauvegarde manuelle ! + + + Aucune + Mot de passe + Code PIN + Identification du périphérique + + + KeyStore Android + Mot de passe / PIN + + + Supprimer l\'ensemble des comptes + Réinitialiser les paramètres de l\'application + + + Thème clair + Thème sombre + Thème noir + + + Caché + Petit + Par défaut + Moyen + Grand + + + Ne pas séparer + Après deux caractères + Après trois caractères + + + Afficher les entrées correspondant à au moins une des balises sélectionnées (ou) + Afficher les entrées correspondant à toutes les balises sélectionnées (et) + Basculer entre les tags (seul un tag ne peut être sélectionné à la fois) + + + Sauvegardes en clair + Sauvegardes chiffrées + + + Par défaut du système + + Saisir le nouveau mot de passe + Saisir le nouveau code PIN + Confirmer le mot de passe - Confirmer le code PIN - Le mot de passe doit comporter au moins %1$d caractères ! - Le code PIN doit comporter au moins %1$d chiffres ! + Confirmer le code PIN + Le mot de passe doit comporter au moins %1$d caractères ! + Le code PIN doit comporter au moins %1$d chiffres ! diff --git a/app/src/main/res/values-gl-rES/strings_about.xml b/app/src/main/res/values-gl-rES/strings_about.xml index ac6ce548..b888cd2b 100644 --- a/app/src/main/res/values-gl-rES/strings_about.xml +++ b/app/src/main/res/values-gl-rES/strings_about.xml @@ -1,50 +1,49 @@ - Sobre - Autenticación de doble-factor de código aberto para Android - Sobre - Librerías - - Cambios - Licenza - Licenza MIT - Código fonte - Versión - - Autores - Desenvolvedor principal - Desenvolvedor - Autor do aplicativo orixinal - Aplicativo orixinal - Páxina web - Doar (PayPal) - Doar (Bitcoin) - Colaboradores - Tradutores/as - - Rexeitamento de responsabilidade - 1. Todas as imaxes son marcas rexistradas dos + Sobre + Autenticación de dobre-factor de código aberto para Android + Sobre + Librerías + + Cambios + Licenza + Licenza MIT + Código fonte + Versión + + Autores + Desenvolvedor principal + Desenvolvedor + Autor do aplicativo orixinal + Aplicativo orixinal + Páxina web + Doar + Colaboradores + Tradutores/as + + Rexeitamento de responsabilidade + 1. Todas as imaxes son marcas rexistradas dos seus respectivos donos. - 2. A utilización de estas marcas rexistradas non + 2. A utilización de estas marcas rexistradas non representa unha recomendación de dita marca por parte de andOTP, nin viceversa. - 3. As imaxes só deberán ser utilizadas para + 3. As imaxes só deberán ser utilizadas para representar a empresa ou producto aos que se refiren. - 4. Por favor non utilice estas imaxes para ningún propósito + 4. Por favor non utilice estas imaxes para ningún propósito excepto representar unha marca ou servizo particulares. - - Apoiar o desenvolvemento - Informar dun fallo - Traducir - Informar dun fallo ou solicitar novas funcionalidades - Axuda a traducir andOTP á túa lingua - Funcionalidades especiais - Queres activar as funcionalidades + + Apoiar o desenvolvemento + Informar dun fallo + Traducir + Informar dun fallo ou solicitar novas funcionalidades + Axuda a traducir andOTP á túa lingua + Funcionalidades especiais + Queres activar as funcionalidades especiais? A maioría delas son algoritmos OTP non estándar que foron implementados por petición especial. Non están oficialmente soportados e poden ter certas limitacións, por favor lea (e comprenda) a páxina \"Special features\" na wiki Github para aprender máis antes de usalas. - Funcionalidades especiais activadas - As funcionalidades especiais xa están activadas - Ligazón de doazóns copiada ao portapapeis + Funcionalidades especiais activadas + As funcionalidades especiais xa están activadas + Ligazón de doazóns copiada ao portapapeis diff --git a/app/src/main/res/values-gl-rES/strings_auth.xml b/app/src/main/res/values-gl-rES/strings_auth.xml index 0e1c266f..2b4521ca 100644 --- a/app/src/main/res/values-gl-rES/strings_auth.xml +++ b/app/src/main/res/values-gl-rES/strings_auth.xml @@ -1,19 +1,19 @@ - Autenticación - - Contrasinal - PIN - - Por favor autentíquese para iniciar andOTP! - Por favor confirme a súa autenticación para xerar + Autenticación + + Contrasinal + PIN + + Por favor autentíquese para iniciar andOTP! + Por favor confirme a súa autenticación para xerar a nova chave de cifrado! - - Desbloquear - - Establecer un contrasinal en axustes! - Establecer un PIN en axustes! - Contrasinal incorrecto, téntao de novo! - PIN incorrecto, téntao de novo! + + Desbloquear + + Establecer un contrasinal en axustes! + Establecer un PIN en axustes! + Contrasinal incorrecto, téntao de novo! + PIN incorrecto, téntao de novo! diff --git a/app/src/main/res/values-gl-rES/strings_backup.xml b/app/src/main/res/values-gl-rES/strings_backup.xml index a3908333..81cca295 100644 --- a/app/src/main/res/values-gl-rES/strings_backup.xml +++ b/app/src/main/res/values-gl-rES/strings_backup.xml @@ -1,70 +1,78 @@ - Copias de seguranza - Copias de seguranza en texto plano - Copias de seguranza cifradas - Copias de seguranza OpenPGP - Copia de seguranza (texto plano) - Copia de seguranza (cifrada) - Copia de seguranza (OpenPGP) - Restaurar (texto plano) - Restaurar (cifrada) - Restaurar (OpenPGP) - Substituír as entradas existentes - Facer copia de seguranza de todas as contas nun ficheiro de texto plano JSON - Facer copia de seguranza de todas as contas nun ficheiro JSON con contrasinal - Facer copia de seguranza de todas as contas nun ficheiro JSON cifrado con OpenPGP - Restaurar contas desde un ficheiro JSON de texto plano - Restaurar contas desde un ficheiro JSON con contrasinal - Restaurar contas desde un ficheiro JSON cifrado con OpenPGP - Houbo un erro ao cargar o contrasinal de respaldo desde os Axustes, + Copias de seguranza + Copias de seguranza en texto plano + Copias de seguranza cifradas + Copias de seguranza OpenPGP + Copia de seguranza (texto plano) + Copia de seguranza (cifrada) + Copia de seguranza (OpenPGP) + Restaurar (texto plano) + Restaurar (cifrada) + Restaurar (cifrado, cifrado antigo) + Restaurar (OpenPGP) + Substituír as entradas existentes + Facer copia de seguranza de todas as contas nun ficheiro de texto plano JSON + Facer copia de seguranza de todas as contas nun ficheiro JSON con contrasinal + Facer copia de seguranza de todas as contas nun ficheiro JSON cifrado con OpenPGP + Restaurar contas desde un ficheiro JSON de texto plano + Restaurar contas desde un ficheiro JSON con contrasinal + Restuarar contas dun ficheiro JSON protexido por contrasinal + creado cunha versión de andOTP inferior a 0.6.3 + Restaurar contas desde un ficheiro JSON cifrado con OpenPGP + Houbo un erro ao cargar o contrasinal de respaldo desde os Axustes, ou ben non se estableceu o contrasinal ou algo fallou. Pediráselle introducir o contrasinal manualmente ao crear ou importar un respaldo. - Necesitas instalar un aplicarivo OpenPGP e activalo + Necesitas instalar un aplicarivo OpenPGP e activalo na configuración para usar esta opción. - Necesitas seleccionar unha chave OpenPGP nos Axustes + Necesitas seleccionar unha chave OpenPGP nos Axustes antes de crear unha copia de seguranza cifrada. - Si se habilita todas as entradas antigas reemplazaranse ao importar + Si se habilita todas as entradas antigas reemplazaranse ao importar o respaldo e só aparecerán as do respaldo. Si se deshabilita aparecerán tanto as entradas antigas como as do respaldo. - - Advertencia de seguranza - ¿Queres exportar a base de datos como + + Advertencia de seguranza + ¿Queres exportar a base de datos como ficheiro de texto plano JSON? Este ficheiro inclúe as túas chaves secretas, por favor manteno seguro! - Erro na copia de seguranza - Respaldo realizado correctamente - Actualmente non se permiten os respaldos en texto plano, + Erro na copia de seguranza + Respaldo realizado correctamente + Actualmente non se permiten os respaldos en texto plano, vaia aos Axustes para activalos - Actualmente non se permiten os respaldos cifrados, + Actualmente non se permiten os respaldos cifrados, vaia aos Axustes para activalos - Non se obtivo permiso de lectura, por favor + Non se obtivo permiso de lectura, por favor axuste esto antes de intentar o respaldo - Non ten permiso de escritura, por favor + Non ten permiso de escritura, por favor arranxe esto ante de intentas o respaldo - O cifrado con Contrasinal/PIN non + O cifrado con Contrasinal/PIN non está soportado con respaldo remoto - - Fallo no respaldo automático - Respaldo automático correcto - Estas notificacións móstranse cando un respaldo + Novo método de cifrado + Dende a versión 0.6.3 de andOTP, úsase un novo e mellorado + método de cifrado para copias de seguridade protexidas por contrasinal. As copias de seguridade antigas + aínd poden ser importadas, pero é moi recomendable crear novas copias de seguridade co novo cifrado + mellorado.\n\nEsta mensaxe non se mostrará de novo. + + Fallo no respaldo automático + Respaldo automático correcto + Estas notificacións móstranse cando un respaldo automático fallou por algunha razón - Estas notificacións mótranse cando + Estas notificacións mótranse cando un respaldo automático se realizou correctamente - - Erro ao crear o directorio de copia de seguranza - Exportado correctamente ao almacenamento externo - Fallo ao exportar ao almacenamento externo - Importado correctamente desde o almacenamento externo - Erro ao gardar os elementos restaurados - Erro ao descifrar a copia de seguranza - Non se atoparon elementos nos datos importados - O almacenamento externo non é accesible actualmente - Permiso de almacenamento non concedido - Error OpenPGP: %s - Non se detectou unha sinatura verificable - No se estableceu un contrasinal, revisa os axustes + + Erro ao crear o directorio de copia de seguranza + Exportado correctamente ao almacenamento externo + Fallo ao exportar ao almacenamento externo + Importado correctamente desde o almacenamento externo + Erro ao gardar os elementos restaurados + Erro ao descifrar a copia de seguranza + Non se atoparon elementos nos datos importados + O almacenamento externo non é accesible actualmente + Permiso de almacenamento non concedido + Error OpenPGP: %s + Non se detectou unha sinatura verificable + No se estableceu un contrasinal, revisa os axustes diff --git a/app/src/main/res/values-gl-rES/strings_intro.xml b/app/src/main/res/values-gl-rES/strings_intro.xml index 1a634874..57602be0 100644 --- a/app/src/main/res/values-gl-rES/strings_intro.xml +++ b/app/src/main/res/values-gl-rES/strings_intro.xml @@ -1,14 +1,14 @@ - Comecemos - Ben vido a andOTP, este asistente guiarao a través da configuración + Comecemos + Ben vido a andOTP, este asistente guiarao a través da configuración inicial. Poña atención e lea coidadosamente xa que pode perder datos importantes! \n\nNon se preocupe, pode mudar as opcións a posteriori nos Axustes. - Para asegurar a seguridade das súas contas andOTP só + Para asegurar a seguridade das súas contas andOTP só garda información en ficheiros cifrados. Aquí pode escoller o método de cifrado que se utilizará. - A KeyStore é un compoñente do sistema Android para + A KeyStore é un compoñente do sistema Android para gardar de xeito seguro chaves de cifrado. A vantaxe de este método é que as chaves gárdanse de xeito separado dos ficheiros de datos e poden ser respaldadas por cifrado de hardware (si o seu dispositivo o admite). Porén, as chaves non se gardan cos datos do aplicativo, este método @@ -16,19 +16,19 @@ deberá confiar nas funcións internas de respaldo proporcionadas por andOTP. \n\nAviso:: A KeyStore sábese que da problemas, utilícea só si non lle queda alternativa. Si non lle importa introducir un contrasinal/PIN cada vez que inicia andOTP é moito máis recomendable utilizar o cifrado baseado en contrasinal. - Este método cifrará os seus datos con unha chave + Este método cifrará os seus datos con unha chave xerada por un contrasinal ou PIN. A principal vantaxe é que esto é compatible con solucións externas de respaldo (como Titanium) e é moito menos proclive ao fallo que a KeyStore. Porén, deberá introducir as súas credenciais cada vez que inicia andOTP. - Aquí pode configurar a autenticación para asegurar + Aquí pode configurar a autenticación para asegurar andOTP. Esto é opcional xa que escolleu Android KeyStore como método de cifrado. - Aquí pode configurar a autenticación da seguranza + Aquí pode configurar a autenticación da seguranza de andOTP. Debe establecer un Contrasinal ou PIN xa que escolleu Contrasinal/PIN como método de cifrado. - Por favor estableza un contrasinal para continuar! - Por favor escolla un PIN para continuar! - Confirme o contrasinal para continuar! - Confirme o PIN para continuar! - Rematou - Gardáronse os seus axustes, xa pode utilizar + Por favor estableza un contrasinal para continuar! + Por favor escolla un PIN para continuar! + Confirme o contrasinal para continuar! + Confirme o PIN para continuar! + Rematou + Gardáronse os seus axustes, xa pode utilizar andOTP agora! diff --git a/app/src/main/res/values-gl-rES/strings_main.xml b/app/src/main/res/values-gl-rES/strings_main.xml index 093dcfc2..f9f5de7c 100644 --- a/app/src/main/res/values-gl-rES/strings_main.xml +++ b/app/src/main/res/values-gl-rES/strings_main.xml @@ -1,74 +1,74 @@ - - Cancelar - Introducir datos - Escanear código QR - Gardar - Nova etiqueta - Axustes - Todas as etiquetas - Sen etiquetas - - %d s - - Etiqueta - Secreto - - Agochado - Tipo - Secreto - Período - Díxitos - Contador - Etiqueta - Algoritmo - Etiquetas - Opcións avanzadas - - Mostrar etiquetas - Agochar as etiquetas - - Sobre - Copia de seguranza - Buscar - Axustes - Ordenar - Sen ordenar - Etiqueta - Último usado - Editar etiqueta - Cambiar imaxe - Editar etiquetas - Eliminar - - Fallou a autenticación, por favor inténteo de novo! - Fallou a autenticación, pechando andOTP! - Copiado ao portapapeis - Este nome xa existe - Código QR inválido - Non se cargou a chave de cifrado - - Autenticar - Introducir datos - Eliminar - Renomear - Contador - Último usado - Fallo no KeyStore - Introducir contrasinal - Introducir contrasinal - Confirmar contrasinal - Introduce as credenciais do dispositivo para iniciar andOTP. - Está seguro de que quere quitar a conta \"%1$s\"? - Para que andOTP poida saber que código foi o último usado + + Cancelar + Introducir datos + Escanear código QR + Gardar + Nova etiqueta + Axustes + Todas as etiquetas + Sen etiquetas + + %d s + + Etiqueta + Secreto + + Agochado + Tipo + Secreto + Período + Díxitos + Contador + Etiqueta + Algoritmo + Etiquetas + Opcións avanzadas + + Mostrar etiquetas + Agochar as etiquetas + + Sobre + Copia de seguranza + Buscar + Axustes + Ordenar + Sen ordenar + Etiqueta + Último usado + Editar etiqueta + Cambiar imaxe + Editar etiquetas + Eliminar + + Fallou a autenticación, por favor inténteo de novo! + Fallou a autenticación, pechando andOTP! + Copiado ao portapapeis + Este nome xa existe + Código QR inválido + Non se cargou a chave de cifrado + + Autenticar + Introducir datos + Eliminar + Renomear + Contador + Último usado + Fallo no KeyStore + Introducir contrasinal + Introducir contrasinal + Confirmar contrasinal + Introduce as credenciais do dispositivo para iniciar andOTP. + Está seguro de que quere quitar a conta \"%1$s\"? + Para que andOTP poida saber que código foi o último usado tes que activar \"Tocar para mostrar\" ou usar o botón de copiar.\n\nEsta mensaxe non se mostrará de novo. - Fallo ao cargar a chave de cifrado desde KeyStore. + Fallo ao cargar a chave de cifrado desde KeyStore. Calquer entrada que se engada perderase.\n\nPara poder seguir usando andOTP pode ir a Axustes e cambiar o Cifrado da base da datos a Contrasinal / PIN. - - Escanear código-QR - Introducir detalles + + Escanear código-QR + Introducir detalles diff --git a/app/src/main/res/values-gl-rES/strings_settings.xml b/app/src/main/res/values-gl-rES/strings_settings.xml index 82fc6d05..d790eb3a 100644 --- a/app/src/main/res/values-gl-rES/strings_settings.xml +++ b/app/src/main/res/values-gl-rES/strings_settings.xml @@ -1,158 +1,158 @@ - Axustes - - Seguranza - Interface de usuario - Copia de seguranza - - Tocar para mostrar - Tempo de espera para tocar para mostrar - Autenticación - Contrasinal - PIN - Cifrado de Base de datos - Panic Trigger - Coa pantalla apagada voltar a asegurar - Idioma - Tema - Tamaño da tipografía - Desprazar etiqueta - Tamaño de miniatura - Separe o testemuño con espazo - Comportamento do selector de etiquetas - Engadir data ao nome do ficheiro - Preguntar polo nome do ficheiro - Directorio de copias de seguranza - Contrasinal da copia de seguranza - Respaldo Broadcasts - Provedor OpenPGP - Chave de cifrado OpenPGP - Chave de firma OpenPGP (optativa) - Comprobar copias de seguranza cifradas - Activar funcionalidades especiais - Activar capturas de pantalla - Habilitar Android sync - Limpar KeyStore - - Agochar códigos OTP, require mostralos manualmente - Selecciona o tempo (en segundos) tras o cal esconder + Axustes + + Seguranza + Interface de usuario + Copia de seguranza + + Tocar para mostrar + Tempo de espera para tocar para mostrar + Autenticación + Contrasinal + PIN + Cifrado de Base de datos + Panic Trigger + Coa pantalla apagada voltar a asegurar + Idioma + Tema + Tamaño da tipografía + Desprazar etiqueta + Tamaño de miniatura + Separe o testemuño con espazo + Comportamento do selector de etiquetas + Engadir data ao nome do ficheiro + Preguntar polo nome do ficheiro + Directorio de copias de seguranza + Contrasinal da copia de seguranza + Respaldo Broadcasts + Provedor OpenPGP + Chave de cifrado OpenPGP + Chave de firma OpenPGP (optativa) + Comprobar copias de seguranza cifradas + Activar funcionalidades especiais + Activar capturas de pantalla + Habilitar Android sync + Limpar KeyStore + + Agochar códigos OTP, require mostralos manualmente + Selecciona o tempo (en segundos) tras o cal esconder as entradas reveladas - Decide que facer cando se recibe un Panic Trigger - Require autenticación depois de que a pantalla + Decide que facer cando se recibe un Panic Trigger + Require autenticación depois de que a pantalla se apague - Desprazar etiquetas largas no canto de truncalas - Engadir a data actual e hora ao nome de + Desprazar etiquetas largas no canto de truncalas + Engadir a data actual e hora ao nome de ficheiro de respaldo suxerido - Preguntar polo nome do ficheiro cada vez que unha copia de seguranza sexa creada ou + Preguntar polo nome do ficheiro cada vez que unha copia de seguranza sexa creada ou restaurada - Directorio para as copias de seguranza (o nome do ficheiro dependerá + Directorio para as copias de seguranza (o nome do ficheiro dependerá do tipo de copia) - Establecer o contrasinal para cifrar as + Establecer o contrasinal para cifrar as copias de seguranza - Escolla que tipos de respaldo se poden activar por + Escolla que tipos de respaldo se poden activar por aplicativos de terceiros utilizando Broadcasts - Enderezo de correo para a chave OpenPGP utilizada para cifrar + Enderezo de correo para a chave OpenPGP utilizada para cifrar os respaldos - As copias de seguranza cifradas só se importan + As copias de seguranza cifradas só se importan se están asinadas con unha chave válida - Desmarcar para desactivar as funcionalidades especiais - Permitir capturas de pantalla da vista principal + Desmarcar para desactivar as funcionalidades especiais + Permitir capturas de pantalla da vista principal (Desactivado por defecto por razóns de seguridade) - Permite que andOTP utilice o servizo de respaldo + Permite que andOTP utilice o servizo de respaldo incluído en Android para respaldar chaves e axustes - Eliminar a chave de cifrado da KeyStore - - Esta característica require polo menos + Eliminar a chave de cifrado da KeyStore + + Esta característica require polo menos Android 5.0 (Lollipop) - Esta característica require bloqueo de pantalla + Esta característica require bloqueo de pantalla seguro (Axustes -> Seguranza -> Bloqueo de pantalla) - Non se pode deixar baldeiro o contrasinal, estableza + Non se pode deixar baldeiro o contrasinal, estableza Autenticación a \"Nada\" para deshabilitala! - Intentando cambiar o cifrado da base de datos, + Intentando cambiar o cifrado da base de datos, agarde por favor! - Cambiouse correctamente o cifrado + Cambiouse correctamente o cifrado da base de datos! - Fallou o cambio do cifrado da base de datos, + Fallou o cambio do cifrado da base de datos, voltando ao estado orixinal! - Fallou a creación do respaldo + Fallou a creación do respaldo interno, abortando! - Fallou ao obter a chave de cifrado, abortanto! - Fallou a autenticación! - Fallo ao actualizar o seu contrasinal / PIN + Fallou ao obter a chave de cifrado, abortanto! + Fallou a autenticación! + Fallo ao actualizar o seu contrasinal / PIN ao novo cifrado, por favor restablezao en Axustes! - Aviso - Erro - Limpar a KeyStore? - Android sync - andOTP intentará agora cambiar o cifrado + Aviso + Erro + Limpar a KeyStore? + Android sync + andOTP intentará agora cambiar o cifrado da base de datos. En caso de fallo restaurarase un respaldo interno e o cifrado permanecerá sin cambios.\n\nPorén, sempre é boa idea ter copias de respaldo por si algo terrible acontece! - Só pode utilizar Contrasinal ou PIN + Só pode utilizar Contrasinal ou PIN si o cifrado da base de datos se establece como \"Contrasinal / PIN\"! - Primeiro debe establecer + Primeiro debe establecer a Autenticación a \"Password\" ou \"PIN\"! - Primeiro debe establecer un Contrasinal + Primeiro debe establecer un Contrasinal ou PIN antes de cambiar o cifrado! - En algúns casos limpar o KeyStore + En algúns casos limpar o KeyStore pode axudar a resolver problemas. Só debería facer esto si sabe o que fai!\n\nXa que o Cifrado da Base de datos está establecida a Cotrasinal / PIN non debería perder ningún dato facendo esto (pero non está de máis ter un respaldo).\n\nEstá seguro de querer limpar a KeyStore? - En algúns casos limpar a KeyStore + En algúns casos limpar a KeyStore pode axudar a resolver problemas. Só debería seguir si sabe o que fai!\n\nAviso: Xa que o cifrado da base de datos está establecido a Android KeyStore perderá todas as súas contas. Asegúrese de ter un respaldo!\n\nSeguro que quere limpar a KeyStore? - Android sync non se pode usar co cifrado + Android sync non se pode usar co cifrado do almacén de chaves, debe facer un respaldo manual! - - - Ningún - Contrasinal - PIN - Credenciais do dispositivo - - - Android KeyStore - Contrasinal / PIN - - - Eliminar todas as contas - Restablecer axustes - - - Tema claro - Tema escuro - Tema negro - - - Agochado - Pequeno - Predefinido - Mediano - Grande - - - Non separar - Despóis de dous caracteres - Despois de tres caracteres - - - Mostra todas as entradas coincidentes de calquera das etiquetas seleccionadas (ou) - Só mostra entradas coincidentes de todas as etiquetas seleccionadas (e) - Cambiar entre etiquetas (só permite unha etiqueta seleccionada cada vez) - - - Respaldos en texto-plano - Respaldos cifrados - - - Predefinido do sistema - - Inserir o novo contrasinal - Inserir o novo PIN - Confirmar contrasinal - Confirmar PIN - O contrasinal deber ter polo menos %1$d caracteres! - O PIN deber ter polo menos %1$d caracteres! + + + Ningún + Contrasinal + PIN + Credenciais do dispositivo + + + Android KeyStore + Contrasinal / PIN + + + Eliminar todas as contas + Restablecer axustes + + + Tema claro + Tema escuro + Tema negro + + + Agochado + Pequeno + Predefinido + Mediano + Grande + + + Non separar + Despóis de dous caracteres + Despois de tres caracteres + + + Mostra todas as entradas coincidentes de calquera das etiquetas seleccionadas (ou) + Só mostra entradas coincidentes de todas as etiquetas seleccionadas (e) + Cambiar entre etiquetas (só permite unha etiqueta seleccionada cada vez) + + + Respaldos en texto-plano + Respaldos cifrados + + + Predefinido do sistema + + Inserir o novo contrasinal + Inserir o novo PIN + Confirmar contrasinal + Confirmar PIN + O contrasinal deber ter polo menos %1$d caracteres! + O PIN deber ter polo menos %1$d caracteres! diff --git a/app/src/main/res/values-hu-rHU/strings_about.xml b/app/src/main/res/values-hu-rHU/strings_about.xml new file mode 100644 index 00000000..3bc48c59 --- /dev/null +++ b/app/src/main/res/values-hu-rHU/strings_about.xml @@ -0,0 +1,45 @@ + + + + Rólunk + Nyílt forráskódú kétfaktoros hitelesítő Androidra + Rólunk + Könyvtárak + + Újdonságok + Licensz + MIT Licensz + Forráskód + Verzió + + Készítő + Fő fejlesztők + Fejlesztő + Az eredeti alkalmazás készítője + Az eredeti alkalmazás + Honlap + Adományozz + Közreműködők + Fordítók + + Bélyegkép vélemény + 1. Az összes bélyegkép a tulajdonosuk védjegye. + 2. Ezen védjegyek használata nem + jelzi a védjegyjogosultnak az andOTP által történő jóváhagyását, és nem fordítva. + 3. A bélyegképek csak arra használódnak, hogy + képviseljék azt a vállalatot vagy terméket, amelyre vonatkoznak. + 4. Kérjük, ne használja a bélyegképeket + más célra, kivéve az adott márkát vagy szolgáltatást. + + Támogassa a fejlesztést + Hibajelentés + Fordítás + Hibák bejelentése vagy új funkciók igénylése + Segítsen lefordítani az andOTP-t az Ön nyelvére + Speciális tulajdonságok + Biztos benne hogy szeretné engedélyezni a speciális tulajdonságokat? A javuk nem szokványos OTP algoritmus melyek bekerültek különleges kérésre. Ezek nem hivatalosan támogatottak és különböző korlátozásokkal jöhetnek kérem olvassa (és értse meg) az oldalt \"Speciális tulajdonságok\" a Github +wiki-n hogy többet tudhasson meg a használatukról. + Speciális tulajdonságok engedélyezve + A speciális tulajdonságok már engedélyezve + Az adományozó link a vágólapra lett másolva + diff --git a/app/src/main/res/values-hu-rHU/strings_auth.xml b/app/src/main/res/values-hu-rHU/strings_auth.xml new file mode 100644 index 00000000..9502201c --- /dev/null +++ b/app/src/main/res/values-hu-rHU/strings_auth.xml @@ -0,0 +1,18 @@ + + + + Hitelesítés + + Jelszó + PIN kód + + Kérem azonosítsa magát az andOTP indításához! + Kérem erősítse meg az azonosítóját az új kulcsfájl létrehozásához! + + Feloldás + + Kérem állítsa be a jelszót a Beállítások -ban! + Kérem állítsa be a PIN kódot a Beállítások -ban! + Rossz jelszó, kérem, próbálja újra! + Hibás PIN kód, kérem próbálja újra! + diff --git a/app/src/main/res/values-hu-rHU/strings_backup.xml b/app/src/main/res/values-hu-rHU/strings_backup.xml new file mode 100644 index 00000000..c20d6804 --- /dev/null +++ b/app/src/main/res/values-hu-rHU/strings_backup.xml @@ -0,0 +1,64 @@ + + + + Biztonsági mentések + Egyszerű szöveges biztonsági mentések + Titkosított biztonsági mentések + OpenPGP biztonsági mentések + Biztonsági mentés (egyszerű szöveges) + Biztonsági mentés (titkosított) + Biztonsági mentés (OpenPGP) + Visszaállítás (egyszerű szöveges) + Visszaállítás (titkosított) + Visszaállítás (titkosított, régi titkosítás) + Visszaállítás (OpenPGP) + Létező bejegyzés lecserélése + Minden fiók biztonsági mentése egyszerű szöveges JSON fájlba + Minden fiók biztonsági mentése jelszóval védett JSON fájlba + Minden fiók biztonsági mentése OpenPGP titkosított JSON fájlba + Minden fiók visszaállítása egyszerű szöveges JSON fájlból + Minden fiók visszaállítása jelszóval titkosított JSON fájlból + Fiókok visszaállítása jelszóval védett JSON fájlból + Létrehozva andOTP 0.6.3 vagy kisebb verzióval + Minden fiók visszaállítása OpenPGP titkosított JSON fájlból + Nem sikerült betölteni a biztonsági mentés jelszavát a Beállítások -ból, +ez azt is jelentheti hogy nem volt jelszó beállítva, vagy valami rosszul sikerült. Ön meg lesz kérve a jelszó újbóli beírására a biztonsági másolat mentésekor vagy visszaállításakor. + Telepítenie kell az OpenPGP szolgáltatót és engedélyeznie a Beállítások alatt a funkció használatához. + + Ki kell választania az OpenPGP kulcsot a Beállítások + alatt, mielőtt létrehozhatna titkosított biztonsági mentéseket. + Ha engedélyezve van, akkor az összes régi bejegyzést helyettesíti, ha egy biztonsági másolatot importál, és csak a biztonsági mentés van jelen. Ha le van tiltva, a régi bejegyzések és a biztonsági mentések tartalma összeolvad. + + Biztonsági figyelmeztetés + Biztosan szeretné exportálni az adatbázist egyszerű szöveges JSON fájlként? Ez a fájl tartalmazza az összes kulcsot, kérem tartsa biztonságban! + Sikertelen mentés + A mentés sikerült + Az egyszerű szöveges biztonsági mentések nem engedélyezettek, kérem menjen a Beállításokba engedélyezni őket + A titkosított biztonsági mentések nem engedélyezettek, kérem menjen a Beállításokba engedélyezni őket + Az olvasási engedély nincs jóváhagyva, kérem engedélyezze mielőtt biztonsági mentést hozna létre + Az írási engedély nincs jóváhagyva, kérem engedélyezze mielőtt biztonsági mentést hozna létre + A jelszó/PIN kód általi titkosítás nem támogatott közvetítő biztonsági mentéssel + Új titkosítási mód + Az andOTP 0.6.3 verziója óta az új és továbbfejlesztett + titkosítási eljárása jelszók titkosítására használt. A régi mentések továbbra is + importálhatóak de erősen ajánlott új biztonsági mentések létrehozására a továbbfejlesztett + titkosítással.\n\nEz az üzenet nem jelenik meg újra. + + Az automatikus biztonsági mentés sikertelen + Az automatikus biztonsági mentés sikeres + Ezek az értesítések látszódnak ha a biztonsági mentés nem sikerül valamilyen okból + Ezek az értesítések látszódnak ha a biztonsági mentés sikerül + + Nem sikerült létrehozni a mappát + A memória kártyára történő exportálás sikeres volt + A memória kártyára történő exportálás sikertelen volt + A memória kártyára történő importálás sikeres volt + Nem sikerült elmenteni a bejegyzéseket + A biztonsági másolat dekódolása sikertelen + Nem található bejegyzés az importált adatokban + A memória kártya jelenleg nem érhető el + Nincsenek engedélyezve a tárolók engedélyei + OpenPGP hiba: %s + Nem hitelesített aláírás észlelve + A jelszó nincs beállítva, ellenőrizze a Beállítások alatt + diff --git a/app/src/main/res/values-hu-rHU/strings_intro.xml b/app/src/main/res/values-hu-rHU/strings_intro.xml new file mode 100644 index 00000000..99da00ba --- /dev/null +++ b/app/src/main/res/values-hu-rHU/strings_intro.xml @@ -0,0 +1,19 @@ + + + + Lássunk neki + Üdvözöl az andOTP, ez a varázsló végig fog vezetni az általános beállításokon. Kérem olvassa el figyelmesen máskülönben adatot veszíthet! + \n\nNe aggódjon, ezeket a beállításokat később megváltoztathatja a Beállítások alatt. + Hogy biztosítsa önt a fiókjai biztonságáról az andOTP csakis titkosítva tárolja az adatokat. Itt kiválaszthatja melyik módszert kívánja használni. + A KeyStore az Android rendszerkomponense a kriptográfiai kulcsok biztonságos tárolásához. Ennek a módszernek az az előnye, hogy a kulcsokat az adatfájloktól elkülönítve tároljuk, és hardveres titkosítással (ha a készülék támogatja). Mivel azonban a kulcsok nem tárolódnak az alkalmazásadatokkal, a ez a módszer megakadályozza a külső biztonsági megoldások (például a Titanium) használatát . Ha ezt a módszert választja, az andOTP által biztosított belső biztonsági mentési funkciókra kell támaszkodnia. n\n\ Figyelmeztetés: : A KeyStore-ról ismert, hogy sok problémát okoz, kérjük, csak akkor használja, ha feltétlenül szükség van rá. Ha nem bánja a jelszót / PIN-kódot minden alkalommal, amikor elindítja az andOTP programot, akkor ajánlott a jelszó alapú titkosítás használata . + Ez a módszer titkosítja az adatokat egy jelszóval vagy PIN-kóddal létrehozott kulccsal. A fő előnye, hogy ez külső biztonsági megoldásokkal (például a Titaniummal) működik, és sokkal kevésbé hajlamos a hibákra mint a KeyStore. Az andOTP elindításakor azonban meg kell adnia hitelesítő adatait. + Itt beállíthat egy hitelesítést az andOTP zárolásához. Mivel titkosítási módként a Android KeyStore lehetőséget választotta, ez nem kötelező. + Itt beállíthat egy hitelesítést az andOTP zárolásához. Mivel titkosítási módként a Jelszó / PIN kód lehetőséget választotta, a folytatáshoz jelszót vagy PIN-kódot kell beállítania. + Kérem állítsa be a jelszót a folytatáshoz! + Kérem állítsa be PIN kódot a folytatáshoz! + Kérem erősítse meg a jelszavát a folytatáshoz! + Kérem erősítse meg a PIN kódját a folytatáshoz! + Kész + Az ön beállításai mentésre kerültek, minden be van állítva és elkezdheti az + andOTP használatát! + diff --git a/app/src/main/res/values-hu-rHU/strings_main.xml b/app/src/main/res/values-hu-rHU/strings_main.xml new file mode 100644 index 00000000..5064ce31 --- /dev/null +++ b/app/src/main/res/values-hu-rHU/strings_main.xml @@ -0,0 +1,72 @@ + + + + + Mégsem + Adja meg a részleteket + QR kód beolvasása + Mentés + Új címke + Beállítások + Összes címke + Nincs címke + + %d másodperc + + Címke + Titkos + + Rejtett + Típus + Titkos + Időtartam + Számok + Számláló + Cím + Algoritmus + Cimkék + Haladó beállítások + + Cimkék megjelenítése + Címkék elrejtése + + Rólunk + Biztonsági mentés + Keresés + Beállítások + Rendezés + Rendezetlen + Cím + Utoljára használt + Cím szerkesztése + Kép módosítása + Címkék szerkesztése + Eltávolítás + + A hitelesítés nem sikerült. Kérem próbáld újra! + A hitelesítés sikertelen, az andOTP bezárul! + Vágólapra másolva + Ez a bejegyzés már létezik + Hibás QR kód + A titkosítási kulcs nem töltődött be + + Hitelesítés + Adja meg a részleteket + Eltávolítás + Átnevezés + Számláló + Utoljára használt + KeyStore hiba + Jelszó megadása + Jelszó megadása + Jelszó megerősítése + Kérjük, adja meg a készülék hitelesítő adatait az andOTP indításához. + Biztosan törölni szeretné a %1$s\" fiókot? + Annak érdekében, hogy az andOTP felismerje, hogy melyik tokent használták utoljára, engedélyeznie kell a \"érintés általi felfedést\", vagy használja a másolás gombot. \n\nEz az üzenet nem jelenik meg újra. + Nem sikerült betölteni a titkosítási kulcsot a KeyStore-ból. + Az újonnan hozzáadott bejegyzések eltűnnek. \n\nHa továbbra is használni szeretné az andOTP-t, + akkor a Beállítások alatt, leválthatja Adatbázis-titkosítást Jelszó / PIN kódra. + + QR kód beolvasása + Adja meg a részleteket + diff --git a/app/src/main/res/values-hu-rHU/strings_settings.xml b/app/src/main/res/values-hu-rHU/strings_settings.xml new file mode 100644 index 00000000..30af4872 --- /dev/null +++ b/app/src/main/res/values-hu-rHU/strings_settings.xml @@ -0,0 +1,129 @@ + + + + Beállítások + + Biztonság + Felhasználói felület + Biztonsági mentés + + Érintse meg a felfedéshez + Az Érintse meg a felfedés időtúllépése + Hitelesítés + Jelszó + PIN kód + Adatbázis titkosítás + Pánik kioldás + Lezárás a kijelző kikapcsolásakor + Nyelv + Téma + Cím betűmérete + Cím görgetése + Bélyegkép méret + Token elválasztása üres hellyel + Címke kiválasztás viselkedése + Dátum hozzáadása a fájlnévhez + Fájlnév kérése + Biztonsági mentés mappája + Biztonsági mentés jelszava + Közvetítés biztonsági mentése + OpenPGP szolgáltató + OpenPGP titkosítási kulcs + OpenPGP aláíró kulcs (opcionális) + Titkosított biztonsági másolatok hitelesítése + Speciális funkciók engedélyezése + Képernyőmentés engedélyezése + Az Android sync engedélyezése + A KeyStore törlése + + Az OTP tokenek elrejtése alapértelmezetten, manuálisan fedhetőek fel + Válassza ki az időt (másodpercekben) miután a felfedett bejegyzések újra eltünnek + Határozza meg hogy mi történik a Pánik kioldáskor + Hitelesítés kérése miután a készülék kijelzője kikapcsol + Görgesse a hosszabb címkéket, ne pedig letörje a végüket + Adja hozzá a jelenlegi időt a javasolt biztonsági mentés nevéhez + Fájl nevének kérése minden alkalommal amikor biztonsági mentés jön létre vagy állítódik vissza + A biztonsági mentések mappája ( a fájlnevek a biztonsági mentés típusától fognak függeni) + Állítsa be a jelszót amit a biztonsági mentések titkosításához használ + Jelölje ki, hogy melyik biztonsági másolat típusokat indíthatja el a harmadik féltől származó alkalmazás a Broadcasts segítségével + A biztonsági mentések titkosításához használt OpenPGP-kulcs e-mail címe + A titkosított biztonsági másolatokat csak akkor lehet importálni, ha érvényes kulccsal írnak alá + Törölje a jelölést, hogy ismét kikapcsolja a speciális funkciókat + Lehetővé teszi a főképernyőképek készítését (alapértelmezés szerint letiltva biztonsági okokból) + Lehetővé teszi az andOTP számára az Android beépített biztonsági mentési szolgáltatás használatát a kulcsok és tulajdonságok mentéséhez + Törölje a titkosítási kulcsot a KeyStore-ból + + Ehhez a funkcióhoz legalább Android 5.0 (Lollipop) szükséges + Ezen funkció használatához biztonságos képernyőzár + szükséges (Beállítások -> Biztonság -> Képernyőzár) + Egy üres jelszó nem engedélyezett, állítsa a Hitelesítést \"Nincs\" értékre, hogy letiltsa! + Próbáljuk megváltoztatni az adatbázis titkosítását, kérjük várjon! + Sikeresen megváltoztatta az adatbázis titkosítását! + Nem sikerült megváltoztatni az adatbázis titkosítását, visszaállt az eredeti állapotba! + Nem sikerült belső biztonsági mentést létrehozni, megszakítás! + Sikertelen a titkosítási kulcs elérése, megszakítás! + A hitelesítés sikertelen! + Nem sikerült a jelszó / PIN-kód frissítése csendesen az új titkosításra, kérjük, kézzel állítsa vissza a beállításokban! + Figyelem + Hiba + A KeyStore törlése? + Android sync + az andOTP most megpróbálja megváltoztatni az adatbázis titkosítását. Meghibásodás esetén a belső biztonsági mentés visszaáll, és a titkosítás változatlan marad \n\n Mindig jó ötlet, ha van egy biztonsági mentés, ha valami váratlan történik! + Csak akkor használhatja a jelszót vagy a PIN-kódot, amíg az adatbázis-titkosítás beállítása \"Jelszó / PIN kód\"! + Először be kell állítania a hitelesítést \"Jelszó\" vagy \"PIN kód\" -ra! + A titkosítás megváltoztatása előtt először be kell állítania egy jelszót vagy a PIN-kódot! + Egyes esetekben a KeyStore törlése segít megoldani a problémákat. Csak akkor folytassa, ha tudja, hogy mit csinál!\n\nMert az Adatbázis titkosítás beállítása Jelszó / PIN kód , nem szabad elveszíteni ezt az adatot (de egyébként soha nem fáj ha van egybiztonsági mentés.) \n\n Valóban biztos, hogy törölni szeretné a KeyStore-t? + Egyes esetekben a KeyStore törlése segít megoldani a problémákat. Csak akkor folytassa, ha tudja, mit csinál!\n\nFigyelem: +Mivel az Adatbázis titkosítás Android KeyStore -ra van beállítva, így elveszíti az összes fiókját. Győződjön meg róla, hogy van egy biztonsági mentése!\n\nBiztosan szeretné törölni a KeyStore-t? + Az Android szinkronizálás nem használható a KeyStore titkosítással, manuális biztonsági mentést kell készítenie! + + + Semmi + Jelszó + PIN kód + Készülék adatai + + + Android KeyStore + Jelszó / PIN kód + + + Összes fiók törlése + Beállítások visszaállítása + + + Világos téma + Sötét téma + Fekete téma + + + Rejtett + Kicsi + Alapértelmezett + Közepes + Nagy + + + Ne válassza szét + Két karakter után + Három karakter után + + + A kiválasztott címkéknek bármely megfelelő bejegyzésének megjelenítése (vagy) + Csak a kiválasztott címkéknek bármely megfelelő bejegyzésének megjelenítése (vagy) + Váltás a címkék között (egyszerre csak egy címkét lehet kiválasztani) + + + Egyszerű szöveges biztonsági mentések + Titkosított biztonsági mentések + + + Rendszer alapértelmezett + + Adja meg az új jelszót + Új PIN kód megadása + Jelszó megerősítése + PIN kód megerősítése + A jelszó legalább %1$d karakter hosszú legyen! + A PIN kód legalább %1$d karakter hosszú legyen! + diff --git a/app/src/main/res/values-it-rIT/strings_about.xml b/app/src/main/res/values-it-rIT/strings_about.xml index ef4f5569..3e248dd2 100644 --- a/app/src/main/res/values-it-rIT/strings_about.xml +++ b/app/src/main/res/values-it-rIT/strings_about.xml @@ -18,8 +18,7 @@ Autore dell\'app originale App originale Sito Web - Dona (PayPal) - Dona (Bitcoin) + Dona Hanno contribuito Traduttori diff --git a/app/src/main/res/values-it-rIT/strings_backup.xml b/app/src/main/res/values-it-rIT/strings_backup.xml index 2568e1af..f5579144 100644 --- a/app/src/main/res/values-it-rIT/strings_backup.xml +++ b/app/src/main/res/values-it-rIT/strings_backup.xml @@ -10,6 +10,7 @@ Backup (OpenPGP) Ripristina (non crittografato) Ripristina (crittografato) + Ripristina (cifrato, vecchia cifratura) Ripristina (OpenPGP) Sostituire le voci esistenti Salva tutti gli account in un file JSON non crittografato @@ -17,6 +18,7 @@ Salva tutti gli account in un file JSON crittografato on OpenPGP Ripristina tutti gli account da file JSON non crittografato Ripristina tutti gli account da file JSON protetto da password + Ripristina account da un file JSON protetto con password. Creato con una versione di anOTP inferiore alla 0.6.3 Ripristina tutti gli account da file JSON crittografato con OpenPGP Impossibile caricare la password di backup dalle Impostazioni, questo significa che nessuna password è stata impostata o qualcosa è andato storto. Ti verrà chiesto di @@ -48,6 +50,8 @@ di autorizzarli prima di tentare il backup Crittografia basata su password / PIN non supportata con backup broadcast + Nuovo metodo di cifratura + Dalla versione 0.6.3 di andOTP è stato aggiunto un nuovo e migliore metodo di cifratura, usato per i backup protetti da password. I vecchi backup possono ancora essere importati, ma è altamente consigliata la creazione di nuovi backup con le funzionalità migliorate di cifratura. Questo messaggio non sarà visualizzato nuovamente. Backup automatico fallito Backup automatico eseguito con successo diff --git a/app/src/main/res/values-it-rIT/strings_main.xml b/app/src/main/res/values-it-rIT/strings_main.xml index 2fabec2e..b8d9fb3a 100644 --- a/app/src/main/res/values-it-rIT/strings_main.xml +++ b/app/src/main/res/values-it-rIT/strings_main.xml @@ -4,7 +4,7 @@ Annulla Aggiungi dettagli - Scansiona il codice QR + Scansiona il QR Code Salva Nuovo tag Impostazioni @@ -47,7 +47,7 @@ Autenticazione non riuscita, andOTP verrà chiuso! Copiato negli appunti Questa voce esiste già - Codice QR non valido + QR code non valido Chiave di crittografia non caricata Autenticazione @@ -69,6 +69,6 @@ Qualsiasi voce aggiunta verrà persa\n\nPer continuare ad utilizzare andOTP, vai nelle Impostazioni e imposta la Crittografia del database su Password / PIN. - Scansione codice QR + Scansione QR-Code Inserisci dettagli diff --git a/app/src/main/res/values-ja-rJP/strings_about.xml b/app/src/main/res/values-ja-rJP/strings_about.xml index d85c344a..6d0048e6 100644 --- a/app/src/main/res/values-ja-rJP/strings_about.xml +++ b/app/src/main/res/values-ja-rJP/strings_about.xml @@ -18,8 +18,7 @@ 元のアプリの作者 元のアプリ ウェブサイト - 寄付 (PayPal) - 寄付 (Bitcoin) + 寄付 貢献者 翻訳者 diff --git a/app/src/main/res/values-ja-rJP/strings_backup.xml b/app/src/main/res/values-ja-rJP/strings_backup.xml index 63ec15ce..e13f38f3 100644 --- a/app/src/main/res/values-ja-rJP/strings_backup.xml +++ b/app/src/main/res/values-ja-rJP/strings_backup.xml @@ -10,6 +10,7 @@ バックアップ (OpenPGP) 復元 (非暗号化) 復元 (暗号化) + 復元 (暗号化、古い暗号化形式) 復元 (OpenPGP) 既存のエントリを置き換える 暗号化されていない JSON ファイルにすべてのアカウントをバックアップします @@ -17,6 +18,7 @@ OpenPGP で暗号化された JSON ファイルにすべてのアカウントをバックアップします 暗号化されていない JSON ファイルからアカウントを復元します パスワードで暗号化された JSON ファイルからアカウントを復元します + andOTP 0.6.3 よりも前のバージョンで作成された、パスワードで暗号化された JSON ファイルからアカウントを復元します OpenPGP で暗号化された JSON ファイルからアカウントを復元します 設定 からバックアップパスワードをロードできませんでした、これはパスワードが設定されなかったか何かが間違っていたことを意味します。バックアップを作成またはインポートするときに、パスワードを手動で入力するように求められます。 この機能を使用するには OpenPGP プロバイダをインストールし 設定 で有効にする必要があります。 @@ -32,6 +34,8 @@ 読み込み権限が付与されていないため、バックアップを実行する前に許可してください 書き込み権限が付与されていないため、バックアップを実行する前に許可してください パスワード / PIN ベースの暗号化はブロードキャストバックアップでサポートされていません + 新しい暗号化形式 + andOTP 0.6.3 以降のバージョンでは、パスワードで暗号化されたバックアップに、新しく改良された暗号化形式が利用されます。古い暗号化形式を利用したバックアップは引き続き復元に利用できますが、新しい暗号化形式を利用して新たにバックアップを作成することを強くお勧めします。\n\nこのメッセージは再度表示はされません。 自動バックアップに失敗しました 自動バックアップに成功しました diff --git a/app/src/main/res/values-nl-rNL/strings_about.xml b/app/src/main/res/values-nl-rNL/strings_about.xml index 6045be0d..8fe26b4a 100644 --- a/app/src/main/res/values-nl-rNL/strings_about.xml +++ b/app/src/main/res/values-nl-rNL/strings_about.xml @@ -1,43 +1,42 @@ - Over - Open source twee-factor-authenticatie voor Android - Over - Bibliotheken - - Wijzigingen - Licentie - MIT-licentie - Broncode - Versie - - Auteurs - Hoofdontwikkelaar - Ontwikkelaar - Auteur van de oorspronkelijke app - Originele App - Website - Doneren (PayPal) - Doneren (Bitcoin) - Bijdragers - Vertalers - - Miniatuur disclaimer - 1. alle miniaturen zijn handelsmerken van hun respectieve eigenaren. - 2. Het gebruik van deze handelsmerken duid niet op goedkeuring van de merkhouder door andOTP, noch omgekeerd. - 3. Miniaturen zijn alleen voor gebruikt om naar het bedrijf of het product te verwijzen. - 4. Gebruik geen miniaturen voor enig doel + Over + Open source twee-factor-authenticatie voor Android + Over + Bibliotheken + + Wijzigingen + Licentie + MIT-licentie + Broncode + Versie + + Auteurs + Hoofdontwikkelaar + Ontwikkelaar + Auteur van de oorspronkelijke app + Originele App + Website + Doneer + Bijdragers + Vertalers + + Miniatuur disclaimer + 1. alle miniaturen zijn handelsmerken van hun respectieve eigenaren. + 2. Het gebruik van deze handelsmerken duid niet op goedkeuring van de merkhouder door andOTP, noch omgekeerd. + 3. Miniaturen zijn alleen voor gebruikt om naar het bedrijf of het product te verwijzen. + 4. Gebruik geen miniaturen voor enig doel behalve het vertegenwoordigen van het betreffende merk of dienst. - - Steun de App ontwikkeling - Fouten melden - Vertalen - Meld een bug of verzoek nieuwe functies - Help andOTP te vertalen in jouw taal - Speciale functies - Weet u zeker dat u de speciale functies wilt inschakelen? De meeste van hen zijn atypische OTP-algoritmen die op verzoek zijn toegevoegd. Ze zijn niet officieel ondersteund en kunnen komen met bepaalde beperkingen, lees (en begrijp) de pagina \"Special features\" in de Github wiki voordat je ze gebruikt. - Speciale functies zijn ingeschakeld - Speciale functies zijn al ingeschakeld - Donatielink naar het klembord gekopieerd + + Steun de App ontwikkeling + Fouten melden + Vertalen + Meld een bug of verzoek nieuwe functies + Help andOTP te vertalen in jouw taal + Speciale functies + Weet u zeker dat u de speciale functies wilt inschakelen? De meeste van hen zijn atypische OTP-algoritmen die op verzoek zijn toegevoegd. Ze zijn niet officieel ondersteund en kunnen komen met bepaalde beperkingen, lees (en begrijp) de pagina \"Special features\" in de Github wiki voordat je ze gebruikt. + Speciale functies zijn ingeschakeld + Speciale functies zijn al ingeschakeld + Donatielink naar het klembord gekopieerd diff --git a/app/src/main/res/values-nl-rNL/strings_auth.xml b/app/src/main/res/values-nl-rNL/strings_auth.xml index c675f04b..b7ded7bc 100644 --- a/app/src/main/res/values-nl-rNL/strings_auth.xml +++ b/app/src/main/res/values-nl-rNL/strings_auth.xml @@ -1,18 +1,18 @@ - Verifiëren - - Wachtwoord - Pincode - - Gelieve verifiëren om andOTP te starten! - Bevestig je verificatie om een nieuwe sleutel aan te maken! - - Ontgrendelen - - Stel een wachtwoord in de Instellingen in! - Stel een pincode in de Instellingen in! - Fout wachtwoord, probeer het opnieuw! - Foute pincode, probeer het opnieuw! + Verifiëren + + Wachtwoord + Pincode + + Gelieve verifiëren om andOTP te starten! + Bevestig je verificatie om een nieuwe sleutel aan te maken! + + Ontgrendelen + + Stel een wachtwoord in de Instellingen in! + Stel een pincode in de Instellingen in! + Fout wachtwoord, probeer het opnieuw! + Foute pincode, probeer het opnieuw! diff --git a/app/src/main/res/values-nl-rNL/strings_backup.xml b/app/src/main/res/values-nl-rNL/strings_backup.xml index f8aad9ca..06188022 100644 --- a/app/src/main/res/values-nl-rNL/strings_backup.xml +++ b/app/src/main/res/values-nl-rNL/strings_backup.xml @@ -1,56 +1,64 @@ - Reservekopieën - Reservekopieën zonder tekstopmaak - Versleutelde reservekopieën - OpenPGP reservekopie - Reservekopie (tekst zonder opmaak) - Reservekopie (versleuteld) - Reservekopie (OpenPGP) - Herstellen (tekst zonder opmaak) - Herstellen (versleuteld) - Herstellen (OpenPGP) - Vervang bestaande vermeldingen - Back-up JSON bestand van alle accounts in tekst zonder opmaak - Maak een reservekopie van alle accounts in een JSON-bestand met wachtwoordbeveiliging - Maak een reservekopie van alle accounts in een JSON-bestand met OpenPGP versleuteling - Herstel accounts vanuit een JSON tekstbestand - Herstel alle accounts vanuit een JSON-bestand met wachtwoordbeveiliging - Herstel accounts vanuit een OpenPGP versleuteld JSON-bestand - Fout bij het laden van het back-wachtwoord van de instellingen, + Reservekopieën + Reservekopieën zonder tekstopmaak + Versleutelde reservekopieën + OpenPGP reservekopieën + Reservekopie (tekst zonder opmaak) + Reservekopie (versleuteld) + Reservekopie (OpenPGP) + Herstellen (tekst zonder opmaak) + Herstellen (versleuteld) + Herstellen (versleuteld, oude encryptie) + Herstellen (OpenPGP) + Bestaande accounts vervangen + Maak een reservekopie van alle accounts in een niet-versleuteld JSON-bestand + Maak een reservekopie van alle accounts in een JSON-bestand met wachtwoordbeveiliging + Maak een reservekopie van alle accounts in een JSON-bestand met OpenPGP versleuteling + Herstel accounts vanuit een JSON tekstbestand + Herstel alle accounts vanuit een JSON-bestand met wachtwoordbeveiliging + Herstel accounts vanuit een met een wachtwoord beveiligd JSON-bestand + gemaakt met een andOTP versie lager dan 0.6.3 + Herstel accounts vanuit een OpenPGP versleuteld JSON-bestand + Fout bij het laden van het back-wachtwoord van de instellingen, betekent dit ofwel geen wachtwoord is ingesteld of iets misgegaan. U zal worden gevraagd te geven het wachtwoord handmatig bij het maken of importeren een back-up. - Je dient een OpenPGP-provider te installeren en in de Instellingen in te schakelen om deze functie te gebruiken. - Je dient een OpenPGP-sleutel in de Instellingen te selecteren voor je versleutelde reservekopieën kunt maken. - Indien ingeschakeld worden alle oude vermeldingen vervangen wanneer een reservekopie geïmporteerd wordt en alleen de reservekopie is aanwezig. Indien uitgeschakeld worden de oude vermeldingen en reservekopieën samengevoegd. - - Veiligheidswaarschuwing - Wilt u echt de database exporteren als JSON-bestand zonder opmaak? Dit bestand bevat al uw geheime sleutels. Houdt het veilig! - Reservekopie mislukt - Reservekopie geslaagd - Niet-versleutelde reservekopieën zijn op dit moment uitgeschakeld, ga naar de Instellingen om deze in te schakelen - Versleutelde reservekopieën zijn op dit moment uitgeschakeld, ga naar de Instellingen om deze in te schakelen - Verleen eerst toestemming om te lezen voordat je een reservekopie gaat maken - Geen machtiging tot schrijven verleend, gelieve dit te doen voordat u een back-up maakt - Versleuteling op basis van wachtwoord/pincode niet ondersteund bij reservekopieën gemaakt op afstand - - Automatische reservekopie mislukt - Automatische reservekopie geslaagd - Deze meldingen worden getoond wanneer een automatische reservekopie niet geslaagd is - Deze meldingen worden getoond wanneer een automatische reservekopie geslaagd is - - Het maken van een reservekopiemap is mislukt - Exporteren naar een extern opslagmedium was succesvol - Exporteren naar een extern opslagmedium is mislukt - Importeren uit externe opslag was succesvol - Opslaan van herstelde vermeldingen mislukt - Ontsleutelen van de reservekopie is mislukt - Geen vermeldingen gevonden in geïmporteerde gegevens - Externe opslag is momenteel niet toegankelijk - Geen machtiging tot de opslagruimte verleend - OpenPGP fout: %s - Geen geverifieerde handtekening gevonden - Wachtwoord niet ingesteld, controleer de Instellingen + Je dient een OpenPGP-provider te installeren en in de Instellingen in te schakelen om deze functie te gebruiken. + Je dient een OpenPGP-sleutel in de Instellingen te selecteren voor je versleutelde reservekopieën kunt maken. + Indien ingeschakeld worden alle oude vermeldingen vervangen wanneer een reservekopie geïmporteerd wordt en alleen de reservekopie is aanwezig. Indien uitgeschakeld worden de oude vermeldingen en reservekopieën samengevoegd. + + Veiligheidswaarschuwing + Wilt u echt de database exporteren als JSON-bestand zonder opmaak? Dit bestand bevat al uw geheime sleutels. Houdt het veilig! + Reservekopie mislukt + Reservekopie geslaagd + Niet-versleutelde reservekopieën zijn op dit moment uitgeschakeld, ga naar de Instellingen om deze in te schakelen + Versleutelde reservekopieën zijn op dit moment uitgeschakeld, ga naar de Instellingen om deze in te schakelen + Verleen eerst toestemming om te lezen voordat je een reservekopie gaat maken + Geen machtiging tot schrijven verleend, gelieve dit te doen voordat je een reservekopie maakt + Versleuteling op basis van wachtwoord/pincode niet ondersteund bij reservekopieën gemaakt op afstand + Nieuwe versleutelingsmethode + Sinds versie 0.6.3 van andOTP, een nieuwe en verbeterde + encryptiemethode wordt gebruikt voor wachtwoordbeveiligde back-ups. De oude backups kunnen nog steeds + worden geïmporteerd, maar het is aanbevolen om nieuwe backups te maken met de verbeterde + encryptie.\n\nDit bericht zal niet meer worden weergegeven. + + Automatische reservekopie mislukt + Automatische reservekopie geslaagd + Deze meldingen worden getoond wanneer een automatische reservekopie niet geslaagd is + Deze meldingen worden getoond wanneer een automatische reservekopie geslaagd is + + Het maken van een reservekopiemap is mislukt + Exporteren naar een extern opslagmedium was succesvol + Exporteren naar een extern opslagmedium is mislukt + Importeren uit externe opslag was succesvol + Opslaan van herstelde vermeldingen mislukt + Ontsleutelen van de reservekopie is mislukt + Geen vermeldingen gevonden in geïmporteerde gegevens + Externe opslag is momenteel niet toegankelijk + Geen machtiging tot de opslagruimte verleend + OpenPGP fout: %s + Geen geverifieerde handtekening gevonden + Wachtwoord niet ingesteld, controleer de Instellingen diff --git a/app/src/main/res/values-nl-rNL/strings_intro.xml b/app/src/main/res/values-nl-rNL/strings_intro.xml index f664330e..b1b9e296 100644 --- a/app/src/main/res/values-nl-rNL/strings_intro.xml +++ b/app/src/main/res/values-nl-rNL/strings_intro.xml @@ -1,19 +1,19 @@ - Laten we aan de slag gaan - Welkom bij andOTP, deze wizard zal je tijdens het instellen begeleiden. Let goed op en lees alles zorgvuldig anders kun je je gegevens verliezen! \n\nGeen zorgen, je kunt hierna nog wijzigingen maken bij de Instellingen. - Om de veiligheid van uw accounts te verzekeren zal andOTP ze alleen opslaan in versleutelde gegevensbestanden. Hier kan je kiezen welke versleutelingsmethode er zal gebruikt worden. - De Sleutelopslag is een systeemonderdeel van Android voor het veilig opslaan van cryptografische sleutels. Het voordeel van deze methode is dat de sleutels gescheiden van andere gegevens worden opgeslagen met ondersteuning voor hardware-gebaseerde encryptie (als je telefoon dit ondersteunt). Omdat de sleutels echter niet worden opgeslagen met de gegevens van de app zullen externe oplossingen voor het maken van reservekopieën (zoals Titanium) niet werken. Wanneer je deze methode te kiest moet je volledig vertrouwen op de interne mogelijkheden van andOTP. + Laten we aan de slag gaan + Welkom bij andOTP, deze wizard zal je tijdens het instellen begeleiden. Let goed op en lees alles zorgvuldig anders kun je je gegevens verliezen! \n\nGeen zorgen, je kunt hierna nog wijzigingen maken bij de Instellingen. + Om de veiligheid van uw accounts te verzekeren zal andOTP ze alleen opslaan in versleutelde gegevensbestanden. Hier kan je kiezen welke versleutelingsmethode er zal gebruikt worden. + De Sleutelopslag is een systeemonderdeel van Android voor het veilig opslaan van cryptografische sleutels. Het voordeel van deze methode is dat de sleutels gescheiden van andere gegevens worden opgeslagen met ondersteuning voor hardware-gebaseerde encryptie (als je telefoon dit ondersteunt). Omdat de sleutels echter niet worden opgeslagen met de gegevens van de app zullen externe oplossingen voor het maken van reservekopieën (zoals Titanium) niet werken. Wanneer je deze methode te kiest moet je volledig vertrouwen op de interne mogelijkheden van andOTP. \n\nWaarschuwing: Het is bekend dat de sleutelopslag problemen veroorzaakt en gebruik het alleen als je niet anders kan. Het wordt sterk aangeraden om een versleuteling op basis van een wachtwoord te gebruiken zodat je om elke keer een wachtwoord / pincode invult tijdens het opstarten van andOTP. - Deze methode zal je gegevens versleutelen met een sleutel gegenereerd op basis van een wachtwoord of pincode. Het belangrijkste voordeel hiervan is dat dit werkt externe oplossingen voor het maken van reservekopieën (zoals Titanium), daarnaast is dit minder storingsgevoelig dan de sleutelopslag. Echter, zul je elke keer een wachtwoord / pincode moeten invullen tijdens het opstarten van andOTP. - Hier kun je een opstartbeveiliging instellen voor andOTP. Aangezien je de Android sleutelopslag als versleutelingsmethode hebt gekozen is dit optioneel. - Hier kun je een opstartbeveiliging instellen voor andOTP. Aangezien je wachtwoord / pincode als versleutelingsmethode hebt gekozen is dit verplicht. - Stel alsjeblief een wachtwoord in voordat je verder gaat! - Stel alsjeblief een pincode in voordat je verder gaat! - Bevestig je wachtwoord om verder te gaan! - Bevestig je pincode om verder te gaan! - Voltooid - Je instellingen zijn opgeslagen, je bent nu helemaal klaar voor het gebruik van + Deze methode zal je gegevens versleutelen met een sleutel gegenereerd op basis van een wachtwoord of pincode. Het belangrijkste voordeel hiervan is dat dit werkt externe oplossingen voor het maken van reservekopieën (zoals Titanium), daarnaast is dit minder storingsgevoelig dan de sleutelopslag. Echter, zul je elke keer een wachtwoord / pincode moeten invullen tijdens het opstarten van andOTP. + Hier kun je een opstartbeveiliging instellen voor andOTP. Aangezien je de Android sleutelopslag als versleutelingsmethode hebt gekozen is dit optioneel. + Hier kun je een opstartbeveiliging instellen voor andOTP. Aangezien je wachtwoord / pincode als versleutelingsmethode hebt gekozen is dit verplicht. + Stel alsjeblief een wachtwoord in voordat je verder gaat! + Stel alsjeblief een pincode in voordat je verder gaat! + Bevestig je wachtwoord om verder te gaan! + Bevestig je pincode om verder te gaan! + Voltooid + Je instellingen zijn opgeslagen, je bent nu helemaal klaar voor het gebruik van andOTP! diff --git a/app/src/main/res/values-nl-rNL/strings_main.xml b/app/src/main/res/values-nl-rNL/strings_main.xml index a19dc239..55bcbad9 100644 --- a/app/src/main/res/values-nl-rNL/strings_main.xml +++ b/app/src/main/res/values-nl-rNL/strings_main.xml @@ -1,72 +1,72 @@ - - Annuleren - Details ingeven - QR-code scannen - Opslaan - Nieuw label - Instellingen - Alle labels - Geen labels - - %d s - - Etiket - Geheim - - Verborgen - Soort - Geheim - Periode - Cijfers - Teller - Etiket - Algoritme - Labels - Geavanceerde opties - - Labels tonen - Labels verbergen - - Over - Reservekopie - Zoeken - Instellingen - Sorteer - Ongesorteerd - Etiket - Laatst gebruikt - Etiket bewerken - Afbeelding wijzigen - Labels bewerken - Verwijderen - - Authenticatie mislukt. Probeer opnieuw! - Verificatie is mislukt, andOTP wordt afgesloten! - Gekopieerd naar klembord - Deze toegang bestaat al - Ongeldige QR Code - Coderingssleutel niet geladen - - Verifiëren - Details ingeven - Verwijderen - Hernoemen - Teller - Laatst gebruikt - Sleutelkast fout - Wachtwoord invoeren - Wachtwoord invoeren - Wachtwoord bevestigen - Voer de referenties van uw apparaat in om te beginnen met andOTP. - Weet je zeker dat je account \"%1$s\" wil verwijderen? - Om andOTP te laten herkennen welke token als laatste was gebruikt + + Annuleren + Details ingeven + QR-code scannen + Opslaan + Nieuw label + Instellingen + Alle labels + Geen labels + + %d s + + Etiket + Geheim + + Verborgen + Soort + Geheim + Periode + Cijfers + Teller + Etiket + Algoritme + Labels + Geavanceerde opties + + Labels tonen + Labels verbergen + + Over + Reservekopie + Zoeken + Instellingen + Sorteer + Ongesorteerd + Etiket + Laatst gebruikt + Etiket bewerken + Afbeelding wijzigen + Labels bewerken + Verwijderen + + Authenticatie mislukt. Probeer opnieuw! + Verificatie is mislukt, andOTP wordt afgesloten! + Gekopieerd naar klembord + Deze toegang bestaat al + Ongeldige QR Code + Coderingssleutel niet geladen + + Verifiëren + Details ingeven + Verwijderen + Hernoemen + Teller + Laatst gebruikt + Sleutelkast fout + Wachtwoord invoeren + Wachtwoord invoeren + Wachtwoord bevestigen + Voer de referenties van uw apparaat in om te beginnen met andOTP. + Weet je zeker dat je account \"%1$s\" wil verwijderen? + Om andOTP te laten herkennen welke token als laatste was gebruikt dien je \"tik om te onthullen\" in te schakelen of gebruik de kopie button.\n\n Dit bericht wordt niet opnieuw getoond. - Fout bij het laden van de coderingssleuten van de sleutelopslag. Alle vermeldingen die worden toegevoegd zullen verloren gaan.\n\nOm nog steeds andOTP te kunnen gebruiken kan je naar de Instellingen gaan en de Database codering omschakelen naar Wachtwoord / PIN. - - QR-code scannen - Details ingeven + Fout bij het laden van de coderingssleuten van de sleutelopslag. Alle vermeldingen die worden toegevoegd zullen verloren gaan.\n\nOm nog steeds andOTP te kunnen gebruiken kan je naar de Instellingen gaan en de Database codering omschakelen naar Wachtwoord / PIN. + + QR-code scannen + Details ingeven diff --git a/app/src/main/res/values-nl-rNL/strings_settings.xml b/app/src/main/res/values-nl-rNL/strings_settings.xml index 768d9c9a..1b582ab7 100644 --- a/app/src/main/res/values-nl-rNL/strings_settings.xml +++ b/app/src/main/res/values-nl-rNL/strings_settings.xml @@ -1,133 +1,133 @@ - Instellingen - - Beveiliging - Gebruikersinterface - Reservekopie - - Tik om te tonen - Tijdslimiet voor tik om te onthullen - Authenticatie - Wachtwoord - PIN - Database encryptie - Panieksignaal - Vergrendelen na uitschakelen scherm - Taal - Thema - Lettergrootte vermeldingen - Scroll vermeldingen - Miniatuurgrootte - Verdeel Token met spatie - Gedrag tag selecteren - Datum toevoegen aan bestandsnaam - Vraag naar de bestandsnaam - Reservekopie map - Wachtwoord reservekopie - Reservekopieën op afstand - OpenPGP Provider - OpenPGP encryptiesleutel - OpenPGP handtekening sleutel (optioneel) - Versleutelde reservekopieën verifiëren - Speciale functies inschakelen - Schermafbeeldingen toestaan - Android synchronisatie inschakelen - Sleutelopslag leegmaken - - De OTP tokens standaard verbergen en maak ze handmatig zichtbaar - Selecteer de tijd (in seconden) waarna de vermeldingen weer verborgen worden - Beslis wat er gebeurt wanneer er een panieksignaal wordt ontvangen - Verificatie verplichten als het scherm is vergrendeld - Vermeldingen horizontaal scrollen in plaats van ze af te korten - Voeg de huidige datum en tijd toe aan de voorgestelde back-up bestandsnaam - Vraag naar de bestandsnaam elke keer als een reservekopie is gemaakt of wordt teruggezet - Map voor de reservekopieën (bestandsnamen hangen af van het type archief) - Stel het wachtwoord in dat wordt gebruikt voor het versleutelen van de reservekopieën - Selecteer welke soorten reservekopieën op afstand gemaakt kunnen worden - Mail adres van de OpenPGP sleutel gebruikt voor het coderen van + Instellingen + + Beveiliging + Gebruikersinterface + Reservekopie + + Tik om te tonen + Tijdslimiet voor tik om te onthullen + Authenticatie + Wachtwoord + PIN + Database encryptie + Panieksignaal + Vergrendelen na uitschakelen scherm + Taal + Thema + Lettergrootte vermeldingen + Scroll vermeldingen + Miniatuurgrootte + Verdeel Token met spatie + Gedrag tag selecteren + Datum toevoegen aan bestandsnaam + Vraag naar de bestandsnaam + Reservekopie map + Wachtwoord reservekopie + Reservekopieën op afstand + OpenPGP Provider + OpenPGP encryptiesleutel + OpenPGP handtekening sleutel (optioneel) + Versleutelde reservekopieën verifiëren + Speciale functies inschakelen + Schermafbeeldingen toestaan + Android synchronisatie inschakelen + Sleutelopslag leegmaken + + De OTP tokens standaard verbergen en maak ze handmatig zichtbaar + Selecteer de tijd (in seconden) waarna de vermeldingen weer verborgen worden + Beslis wat er gebeurt wanneer er een panieksignaal wordt ontvangen + Verificatie verplichten als het scherm is vergrendeld + Vermeldingen horizontaal scrollen in plaats van ze af te korten + Voeg de huidige datum en tijd toe aan de voorgestelde back-up bestandsnaam + Vraag naar de bestandsnaam elke keer als een reservekopie is gemaakt of wordt teruggezet + Map voor de reservekopieën (bestandsnamen hangen af van het type archief) + Stel het wachtwoord in dat wordt gebruikt voor het versleutelen van de reservekopieën + Selecteer welke soorten reservekopieën op afstand gemaakt kunnen worden + Mail adres van de OpenPGP sleutel gebruikt voor het coderen van de reservekopieën - Gecodeerde reservekopieën worden alleen geïmporteerd als ze zijn ondertekend met een geldige sleutel - Deselecteer om speciale functies weer uit te schakelen - Schermafbeeldingen toestaan op het hoofdscherm (standaard uitgeschakeld om veiligheidsredenen) - Laat andOTP toe om Android\'s ingebouwde reservekopie service te gebruiken om een kopie te maken van sleutels en voorkeuren - Verwijderen de encryptiesleutel uit de sleutelopslag - - Deze functie vereist ten minste Android 5.0 (Lollipop) - Deze functie vereist een beveiligd vergrendelingsscherm (Instellingen -> Beveiliging -> Schermvergrendeling) - Een leeg wachtwoord is niet toegestaan, stel de verificatie in op \"Geen\" om het uit te schakelen! - Bezig met de database encryptie te proberen wijzigen, even geduld aub! - Wijzigen van de database encryptie is geslaagd! - Mislukt om de database versleuteling te veranderen en in oorspronkelijke staat terug te vallen! - Het maken van een interne reservekopie mislukte, afbreken! - Het ophalen van de encryptiesleutel mislukte, afbreken! - Authenticatie mislukt! - Het bijwerken van je wachtwoord / PIN naar de nieuwe codering mislukte, herstel het handmatig bij de instellingen! - Waarschuwing - Fout - Sleutelopslag leegmaken? - Android synchronisatie - andOTP zal nu proberen de database encryptie te wijzigen. In het geval dat dit niet lukt, zal een intern reservekopie teruggeplaatst worden en blijft de encryptie onveranderd.\n\nHet is echter altijd een goed idee om een kopie te hebben voor het geval dat er iets onverwachts gebeurd! - U kunt alleen een wachtwoord of pincode gebruiken zolang de database encryptie is ingesteld op \"Wachtwoord / PIN\"! - U moet eerst de authenticatie instellen op \"Wachtwoord\" of \"PIN\"! - Je moet een wachtwoord of pincode instellen voor het wijzigen van de versleuteiing! - In sommige gevallen kan het leegmaken van de sleutelopslag problemen verhelpen. Ga enkel verder wanneer je weet waar je mee bezig bent!\n\n + Gecodeerde reservekopieën worden alleen geïmporteerd als ze zijn ondertekend met een geldige sleutel + Deselecteer om speciale functies weer uit te schakelen + Schermafbeeldingen toestaan op het hoofdscherm (standaard uitgeschakeld om veiligheidsredenen) + Laat andOTP toe om Android\'s ingebouwde reservekopie service te gebruiken om een kopie te maken van sleutels en voorkeuren + Verwijderen de encryptiesleutel uit de sleutelopslag + + Deze functie vereist ten minste Android 5.0 (Lollipop) + Deze functie vereist een beveiligd vergrendelingsscherm (Instellingen -> Beveiliging -> Schermvergrendeling) + Een leeg wachtwoord is niet toegestaan, stel de verificatie in op \"Geen\" om het uit te schakelen! + Bezig met de database encryptie te proberen wijzigen, even geduld aub! + Wijzigen van de database encryptie is geslaagd! + Mislukt om de database versleuteling te veranderen en in oorspronkelijke staat terug te vallen! + Het maken van een interne reservekopie mislukte, afbreken! + Het ophalen van de encryptiesleutel mislukte, afbreken! + Authenticatie mislukt! + Het bijwerken van je wachtwoord / PIN naar de nieuwe codering mislukte, herstel het handmatig bij de instellingen! + Waarschuwing + Fout + Sleutelopslag leegmaken? + Android synchronisatie + andOTP zal nu proberen de database encryptie te wijzigen. In het geval dat dit niet lukt, zal een intern reservekopie teruggeplaatst worden en blijft de encryptie onveranderd.\n\nHet is echter altijd een goed idee om een kopie te hebben voor het geval dat er iets onverwachts gebeurd! + U kunt alleen een wachtwoord of pincode gebruiken zolang de database encryptie is ingesteld op \"Wachtwoord / PIN\"! + U moet eerst de authenticatie instellen op \"Wachtwoord\" of \"PIN\"! + Je moet een wachtwoord of pincode instellen voor het wijzigen van de versleuteiing! + In sommige gevallen kan het leegmaken van de sleutelopslag problemen verhelpen. Ga enkel verder wanneer je weet waar je mee bezig bent!\n\n Doordat de Database encryptie is ingesteld op Wachtwoord / Pincode zou u hiermee geen gegevens mogen verliezen (maar een kopie nemen kan nooit kwaad).\n\n Bent je heel zeker dat je de sleutelopslag wil leegmaken? - In sommige gevallen kan het leegmaken van de sleutelopslag problemen verhelpen. Ga enkel verder als je weet waar je mee bezig bent!\n\n + In sommige gevallen kan het leegmaken van de sleutelopslag problemen verhelpen. Ga enkel verder als je weet waar je mee bezig bent!\n\n Waarschuwing: Doordat de Database encryptie is ingesteld op Android sleutelopslag zal je al je accounts verliezen. Wees dus zeker dat je een backup hebt!\n\n Bent je heel zeker dat je de sleutelopslag wil leegmaken? - Android synchronisatie kan niet gebruikt worden met een versleutelde sleutelopslag, je kan een handmatige reservekopie uitvoeren! - - - Geen - Wachtwoord - PIN - Apparaatreferenties - - - Android Sleutelopslag - Wachtwoord / PIN - - - Alle accounts verwijderen - Appinstellingen terugzetten - - - Licht thema - Donker thema - Zwart thema - - - Verborgen - Klein - Standaard - Normaal - Groot - - - Niet splitsen - Na twee karakters - Na drie karakters - - - Toon alle items die overeenkomen met een van de geselecteerde tags (or) - Toon alleen items die overeenkomen met allemaal van de geselecteerde tags (en) - Schakel tussen tags (maar één tag tegelijk te selecteren is toegestaan) - - - Niet-versleutelde reservekopieën - Versleutelde reservekopieën - - - Systeemstandaard - - Nieuw wachtwoord invoeren - Nieuwe PIN invoeren - Bevestig wachtwoord - Bevestig PIN - Het wachtwoord moet minstens %1$d karakters bevatten! - De pincode moet minstens %1$d cijfers bevatten! + Android synchronisatie kan niet gebruikt worden met een versleutelde sleutelopslag, je kan een handmatige reservekopie uitvoeren! + + + Geen + Wachtwoord + PIN + Apparaatreferenties + + + Android Sleutelopslag + Wachtwoord / PIN + + + Alle accounts verwijderen + Appinstellingen terugzetten + + + Licht thema + Donker thema + Zwart thema + + + Verborgen + Klein + Standaard + Normaal + Groot + + + Niet splitsen + Na twee karakters + Na drie karakters + + + Toon alle items die overeenkomen met een van de geselecteerde tags (or) + Toon alleen items die overeenkomen met allemaal van de geselecteerde tags (en) + Schakel tussen tags (maar één tag tegelijk te selecteren is toegestaan) + + + Niet-versleutelde reservekopieën + Versleutelde reservekopieën + + + Systeemstandaard + + Nieuw wachtwoord invoeren + Nieuwe PIN invoeren + Bevestig wachtwoord + Bevestig PIN + Het wachtwoord moet minstens %1$d karakters bevatten! + De pincode moet minstens %1$d cijfers bevatten! diff --git a/app/src/main/res/values-pl-rPL/strings_about.xml b/app/src/main/res/values-pl-rPL/strings_about.xml index 7356191f..133a238d 100644 --- a/app/src/main/res/values-pl-rPL/strings_about.xml +++ b/app/src/main/res/values-pl-rPL/strings_about.xml @@ -1,49 +1,41 @@ - O mnie - Otwórz kod źródłowy dwu-składnikowgo uwierzytelniania dla Androida - O programie - Biblioteki - - Dziennik zmian - Licencja - Licencja MIT - Kod źródłowy - Wersja - - Autorzy - Główny programista - Programista - Autor oryginalnej aplikacji - Oryginalna aplikacja - Strona WWW - Donate (PayPal) - Donate (Bitcoin) - Współpracownicy - Tłumacze - - Thumbnail disclaimer - 1. Wszystkie miniaturki są znakami towarowymi ich odpowiednich właścicieli. - 2. The use of these trademarks does not - indicate endorsement of the trademark holder by andOTP, nor vice versa. - 3. Thumbnails should only be used to - represent the company or product to which they refer. - 4. Please do not use thumbnails for any - purpose except to represent that particular brand or service. - - Wesprzyj rozwój - Zgłoś błąd - Tłumacz - Zgłoś błąd lub poproś o funkcję - Pomóż przetłumaczyć andOTP na swój język - Specjalne funkcje - Czy jesteś pewny/a, że chcesz włączyć specjalne - funkcje? Większość z tych algorytmów nie jest standardowa i została dodana na prośby użytkowników. - Algorytmy te nie są oficjalnie wspierane i zawierają limity , - przed włączeniem zapoznaj się z stroną \"Specjalne funkcje\" na stronie projektu w serwisie Github, - która opisuje, jak ich używać. - Specjalne funkcje włączone - Specjalne funkcje są już włączone - Link darowizny skopiowano do schowka + O aplikacji + Dwuskładnikowe uwierzytelnianie dla systemu Android o otwartych źródłach + O aplikacji + Biblioteki + + Dziennik zmian + Licencja + Licencja MIT + Kod źródłowy + Wersja + + Autorzy + Główny programista + Programista + Autor oryginalnej aplikacji + Oryginalna aplikacja + Strona WWW + Wspomóż + Współtwórcy + Tłumacze + + Zrzeczenie + 1. Wszystkie miniaturki są znakami towarowymi ich odpowiednich właścicieli. + 2. Użycie tych znaków towarowych nie oznacza wzajemnego poparcia właścicieli tychże znaków i andOTP. + 3. Miniaturki powinny być używane wyłącznie w celu reprezentacji firmy lub produktu, którego dotyczą. + 4. Proszę nie używaj tych miniaturek w innym celu, niż reprezentacja określonej marki czy usługi. + + Wesprzyj rozwój + Zgłoś błąd + Tłumacz + Zgłoś błąd lub poproś o nową funkcję + Pomóż przetłumaczyć andOTP na swój język + Specjalne funkcje + Czy na pewno chcesz włączyć specjalne funkcje? Większość z nich to niestandardowe algorytmy OTP zaimplementowane na życzenie użytkowników. Algorytmy te nie są oficjalnie wspierane i mogą posiadać pewne ograniczenia. Aby dowiedzieć się więcej, odwiedź stronę projektu pt. „Specjalne funkcje” w serwisie GitHub. + Specjalne funkcje włączone + Specjalne funkcje są już włączone + Link darowizny skopiowano do schowka diff --git a/app/src/main/res/values-pl-rPL/strings_auth.xml b/app/src/main/res/values-pl-rPL/strings_auth.xml index 1f349aa3..3ee19525 100644 --- a/app/src/main/res/values-pl-rPL/strings_auth.xml +++ b/app/src/main/res/values-pl-rPL/strings_auth.xml @@ -1,18 +1,18 @@ - Uwierzytelnianie - - Hasło - PIN - - Proszę uwierzytelnij się aby uruchomić andOTP! - Potwierdź proszę swoją tożsamość aby wygenerować nowy klucz szyfrujący! - - Odblokuj - - Ustaw hasło w Ustawienia! - Ustaw kod PIN w Ustawienia! - Błędne hasło, spróbuj ponownie! - Zły kod PIN, spróbuj ponownie! + Uwierzytelnianie + + Hasło + Kod PIN + + Uwierzytelnij się, aby uruchomić andOTP. + Potwierdź swoją tożsamość, aby wygenerować nowy klucz szyfrujący. + + Odblokuj + + Ustaw hasło w Ustawieniach! + Ustaw kod PIN w Ustawieniach! + Błędne hasło, spróbuj ponownie! + Zły kod PIN, spróbuj ponownie! diff --git a/app/src/main/res/values-pl-rPL/strings_backup.xml b/app/src/main/res/values-pl-rPL/strings_backup.xml index e157395a..8e75a125 100644 --- a/app/src/main/res/values-pl-rPL/strings_backup.xml +++ b/app/src/main/res/values-pl-rPL/strings_backup.xml @@ -1,65 +1,60 @@ - Kopie bezpieczeństwa - Kopia tekstowa - Szyfrowana kopia - Kopia OpenPGP - Kopia (tekst) - Kopia (szyfrowana) - Kopia (OpenPGP) - Przywróc kopię (tekst) - Przywróc kopię (szyfrowana) - Przywróć kopię (OpenPGP) - Zastąp istniejące konta - Zapisz wszystkie konta do pliku JSON - Zapisz kopie do zabezpieczonego hasłem pliku JSON - Zapisz wszystkie konta w zaszyfrowanym przez OpenPGP pliku JSON - Przywróć konta z pliku JSON - Przywróć konta z pliku JSON zabezpieczonego hasłem - Przywróć konta z szyfrowanego OpenPGP pliku JSON - Failed to load the backup password from the Settings, - this either means no password was set or something went wrong. You will be asked to enter - the password manually when creating or importing a backup. - - Musisz zainstalować dostawcę OpenPGP i włączyć - go w Ustawienia aby użyć tej funkcji. - - Musisz wybrać klucz OpenPGP w Ustawienia - zanim będziesz mógł stworzyć zaszyfrowane kopie. - - Jeśli włączone wszystkie stare konta zostaną zastąpione podczas importowania - kopii. Jeśli wyłączone stare konta zostaną - scalone. - - Ostrzeżenie bezpieczeństwa - Czy na pewno chcesz zapisać kopie bazy w niezaszyfrowanym pliku JSON? Ten plik zawiera prywatne klucze, zachowaj ostrożność! - Tworzenie kopii zapasowej nie powiodło się - Kopia zapasowa wykonana pomyślnie - Tekstowe kopie zapasowe obecnie nie są dozwolone, proszę przejść do ustawień, aby włączyć je - Zaszyfrowane kopie zapasowe obecnie nie są dozwolone, proszę przejść do ustawień, aby włączyć je - Uprawnienia odczytu nie przyznane, proszę + Kopia zapasowa + Niezaszyfrowana kopia zapasowa + Zaszyfrowana kopia zapasowa + Kopia zapasowa OpenPGP + Kopia zapasowa (niezaszyfrowana) + Kopia zapasowa (zaszyfrowana) + Kopia zapasowa (OpenPGP) + Przywróc kopię (tekst) + Przywróć kopię (szyfrowana) + Przywróć zaszyfrowaną kopię (stare szyfrowanie) + Przywróć kopię OpenPGP + Zastąp istniejące konta + Zapisz kopię zapasową wszystkich kont do niezaszyfrowanego pliku JSON + Zapisz kopię zapasową wszystkich kont do zabezpieczonego hasłem pliku JSON + Zapisz kopię zapasową wszystkich kont do pliku JSON zaszyfrowanego przy użyciu OpenPGP + Przywróć konta z niezaszyfrowanego pliku JSON + Przywróć konta z zabezpieczonego hasłem pliku JSON + Przywróć konta z chronionego hasłem pliku JSON + utworzonego w wersji andOTP niższej niż 0.6.3 + Przywróć konta z pliku JSON zaszyfrowanego przy użyciu OpenPGP + Nie udało się wczytać hasła kopii zapasowej z Ustawień. Oznacza to, że albo nie ustawiono hasła, albo coś poszło nie tak. Zostaniesz poproszony o ręczne wprowadzenie hasła podczas tworzenia lub importowania kopii zapasowej. + Aby móc użyć tej funkcji, należy zainstalować dostawcę OpenPGP i włączyć go w Ustawieniach. + Zanim będzie można tworzyć zaszyfrowane kopie zapasowe, należy wybrać klucz OpenPGP w Ustawieniach. + Jeśli włączone, wszystkie stare konta zostaną zastąpione podczas importowania kopii zapasowej. Jeśli wyłączone, stare konta zostaną scalone z kontami z importowanej kopii zapasowej. + + Ostrzeżenie bezpieczeństwa + Czy na pewno chcesz zapisać bazę danych do niezaszyfrowanego pliku JSON? Plik ten zawiera wszystkie twoje klucze prywatne. Przechowuj go w bezpiecznym miejscu! + Tworzenie kopii zapasowej nie powiodło się + Kopia zapasowa wykonana pomyślnie + Niezaszyfrowane kopie zapasowe nie są obecnie dozwolone, proszę przejść do ustawień, aby je włączyć + Zaszyfrowane kopie zapasowe nie są obecnie dozwolone, proszę przejść do ustawień, aby je włączyć + Uprawnienia odczytu nie przyznane, proszę nadaj uprawnienia przed rozpoczęciem przywracania kopii - Uprawnienia zapisu nie przyznane, proszę + Uprawnienia zapisu nie przyznane, proszę nadaj uprawnienia przed rozpoczęciem tworzenia kopii - Password/PIN based encryption not - supported with broadcast backup - - Automatyczne tworzenie kopii zapasowej nie powiodło się - Automatyczne tworzenie kopii zapasowej powiodło się - Te powiadomienia są wyświetlane, kiedy automatyczna kopia zapasowa nie powiedzie się z jakiegoś powodu - Te powiadomienia są wyświetlane, kiedy automatyczna kopia zapasowa powiedzie się - - Próba utworzenia katalogu kopii bezpieczeństwa nie powiodła się - Poprawnie zapisano kopie w zewnętrznej pamięci - Wystąpił problem z zapisaniem pliku w zewnętrznej pamięci - Poprawnie wczytano kopię z zewnętrznej pamięci - Zapisywanie odzyskanych wejść zakończone niepowodzeniem - Odszyfrowywanie kopii zapasowej zakończone niepowodzeniem - Nie znaleziono żadnych wejść w importowanych danych - Zewnętrzna pamięć aktualnie niedostępna - Brak uprawnień dostępu do pamięci - Błąd OpenPGP: %s - Nie znaleziono zweryfikowanej sygnatury - Nie ustawiono hasła, sprawdź Ustawienia + Szyfrowanie przy pomocy hasła / kodu PIN nie jest obsługiwane przy wywoływaniu kopii zapasowej przez broadcast + Nowa metoda szyfrowania + Poczynając od wersji 0.6.3 andOTP do tworzenia kopii zapasowych chronionych hasłem używana jest nowa i ulepszona metoda szyfrowania. Stare kopie zapasowe nadal mogą być zaimportowane, ale wysoce zalecanym jest, aby tworzyć nowe kopie zapasowe z ulepszonym szyfrowaniem.\n\nTa wiadomość nie zostanie wyświetlona ponownie. + + Tworzenie automatycznej kopii zapasowej nie powiodło się + Automatyczna kopia zapasowa wykonana pomyślnie + Te powiadomienia są wyświetlane, gdy automatyczne wykonywanie kopii zapasowej nie powiedzie się z jakiegoś powodu + Te powiadomienia są wyświetlane, gdy automatyczne wykonywanie kopii zapasowej powiedzie się + + Nie udało się utworzyć katalogu kopii zapasowej + Pomyślnie zapisano w pamięci zewnętrznej + Zapis w pamięci zewnętrznej nie powiódł się + Pomyślnie wczytano z pamięci zewnętrznej + Zapisywanie odzyskanych kont nie powiodło się + Odszyfrowywanie kopii zapasowej nie powiodło się + We wczytywanych danych nie znaleziono żadnych kont + Pamięć zewnętrzna jest aktualnie niedostępna + Brak uprawnień dostępu do pamięci + Błąd OpenPGP: %s + Nie znaleziono zweryfikowanej sygnatury + Nie ustawiono hasła, sprawdź Ustawienia diff --git a/app/src/main/res/values-pl-rPL/strings_intro.xml b/app/src/main/res/values-pl-rPL/strings_intro.xml index 17c9e4e1..b66901f6 100644 --- a/app/src/main/res/values-pl-rPL/strings_intro.xml +++ b/app/src/main/res/values-pl-rPL/strings_intro.xml @@ -1,29 +1,18 @@ - Zaczynajmy - Witaj w andOTP, ten kreator przeprowadzi Cię przez - wstępną konfigurację. Proszę zwróć uwagę i czytaj uważnie inaczej możesz stracić swoje dane! - \n\nNie martw się, możesz później je zmienić wUstawienia. - Aby zapewnić bezpieczeństwo Twoim danym andOTP przechowuje - je w zaszyfrowanych plikach. Tutaj możesz wybrać, która metoda szyfrowania będzie - użyta. - KeyStore jest systemowym komponentem Androida który bezpiecznie przechowuje klucze kryptograficzne. Zaletą tej metody jest to że klucze są przechowywane oddzielnie od danych i mogą być zabezpieczone sprzętowo (jeśli Twoje urządzenie jest kompatybilne). Klucze nie są przechowywane w danych aplikacji, metoda ta uniemożliwia tworzenia zewnętrznych kopii (np. Titanium). Jeśli wybierzesz tą metodę będziesz musiał polegać na wewnętrznych funkcjach zapewnionych przez andOTP.\n\nUwaga: KeyStore może stworzyć wiele problemów, proszę użyj go tylko, jeśli koniecznie musisz. Jeśli nie masz nic przeciwko wpisywaniu hasła / kodu PIN za każdym uruchomieniem andOTP zaleca się użyć szyfrowania na podstawie hasła. - Ta metoda zaszyfruje Twoje dane za pomocą klucza - wygenerowanego na podstawie hasła lub kodu PIN. Główną zaletą tego rozwiązania jest że możliwe - będzie tworzenie zewnętrznych kopii (np. Titanium) i jest znacznie mniej podatne na usterki KeyStore. - Ale za każdym razem będziesz musiał wpisać swoje poświadczenia podczas uruchamiania andOTP. - Tutaj możesz skonfigurować blokadę - andOTP. Ponieważ wybrano szyfrowanie za pomocą Android KeyStore ta metoda jest - opcjonalna. - Tutaj możesz skonfigurować blokadę - andOTP. Ponieważ wybrano szyfrowanie za pomocą hasła / kodu PIN musisz - podać hasło lub kod PIN aby kontynuować. - Ustaw hasło, aby kontynuować! - Ustaw kod PIN, aby kontynuować! - Potwierdź hasło, aby kontynuować! - Potwierdź kod PIN, aby kontynuować! - Ukończono - Twoje ustawienia zostały zapisane, możesz teraz + Zaczynajmy + Witaj w andOTP. Ten kreator przeprowadzi Cię przez wstępną konfigurację. Zapoznaj się dokładnie z informacjami zawartymi na następnych stronach, w przeciwnym razie istnieje ryzyko utraty danych!\n\nNie martw się, wszystkie opcje będzie można później zmienić w Ustawieniach. + Aby zapewnić bezpieczeństwo Twoim danym andOTP przechowuje je tylko w zaszyfrowanych plikach. Tutaj możesz wybrać, która metoda szyfrowania będzie użyta. + KeyStore jest systemowym komponentem Androida, który służy do bezpiecznego przechowywania kluczy kryptograficznych. Zaletą używania KeyStore jest to, że klucze przechowywane są oddzielnie od danych i mogą – jeśli twoje urządzenie jest kompatybilne – być zabezpieczone sprzętowo. Ponieważ klucze nie są przechowywane wraz z danymi aplikacji, metoda ta uniemożliwia tworzenie kopii zapasowych przy pomocy zewnętrznych aplikacji (np. Titanium Backup). Jeśli wybierzesz tą metodę, będziesz musiał polegać na wbudowanym w andOTP narzędziu wykonywania kopii zapasowej.\n\nUwaga: KeyStore może powodować wiele problemów. Używaj go tylko, jeśli musisz. Jeżeli nie masz nic przeciwko wpisywaniu hasła / kodu PIN przy każdym uruchomieniu andOTP, użyj hasła do zaszyfrowania danych. + Ta metoda zaszyfruje twoje dane za pomocą klucza wygenerowanego na podstawie hasła lub kodu PIN. To rozwiązanie umożliwia tworzenie kopii zapasowych przy pomocy zewnętrznych aplikacji (np. Titanium Backup) i jest znacznie mniej podatne na usterki niż KeyStore. Przy każdym uruchomieniu andOTP będziesz musiał wprowadzić swoje poświadczenia. + Tutaj możesz skonfigurować uwierzytelnianie w celu zablokowania andOTP. Ponieważ wybrano szyfrowanie za pomocą Android KeyStore, ta metoda jest opcjonalna. + Tutaj możesz skonfigurować uwierzytelnianie w celu zablokowania andOTP. Ponieważ wybrano szyfrowanie za pomocą hasła / kodu PIN, musisz podać hasło lub kod PIN aby kontynuować. + Ustaw hasło, aby kontynuować! + Ustaw kod PIN, aby kontynuować! + Potwierdź hasło, aby kontynuować! + Potwierdź kod PIN, aby kontynuować! + Ukończono + Twoje ustawienia zostały zapisane, możesz teraz korzystać z andOTP! diff --git a/app/src/main/res/values-pl-rPL/strings_main.xml b/app/src/main/res/values-pl-rPL/strings_main.xml index 34b67178..5faf2298 100644 --- a/app/src/main/res/values-pl-rPL/strings_main.xml +++ b/app/src/main/res/values-pl-rPL/strings_main.xml @@ -1,74 +1,70 @@ - - Anuluj - Wprowadź szczegóły - Skanuj kod QR - Zapisz - Nowy znacznik - Ustawienia - Wszystkie znaczniki - Brak znaczników - - %d s - - Etykieta - Sekret - - Ukryte - Napisz - Sekret - Okres - Cyfry - Licznik - Etykieta - Algorytm - Znaczniki - Opcje zaawansowane - - Pokaż znaczniki - Ukryj znaczniki - - O aplikacji - Kopia - Szukaj - Ustawienia - Sortuj - Nieposortowane - Etykieta - Ostatnio używane - Edytuj etykietę - Zmień obraz - Edytuj znaczniki - Usuń - - Uwierzytelnianie nie powiodło się. Proszę spróbować ponownie! - Autoryzacja nie powiodła się, zamykam andOTP! - Skopiowano do schowka - Taki rekord już istnieje - Nieprawidłowy kod QR - Klucz szyfrowania nie załadowany - - Autoryzuj - Wprowadź szczegóły - Usuń - Zmień nazwę - Licznik - Ostatnio używane - Błąd KeyStore - Wprowadź hasło - Wprowadź hasło - Potwierdź hasło - Podaj swoje dane uwierzytelniające, aby uruchomić andOTP. - Czy na pewno chcesz usunąć konto \"%1$s\"? - W celu rozpoznania który token był użyty jako ostatni - musisz włączyć \"naciśnij aby odkryć\" lub użyć przycisku kopiuj.\n\nTa wiadomość nie - zostanie pokazana ponownie. - Nie udało się wczytać klucza kryptograficznego z KeyStore. - Wszystkie konta zostały stracone.\n\nAby dalej korzystać z andOTP możesz przejść - do Ustawienia i zmienić Szyfrowanie bazy danych na Hasło/ kod PIN. - - Skanuj kod QR - Wprowadź szczegóły + + Anuluj + Wprowadź szczegóły + Skanuj kod QR + Zapisz + Nowy znacznik + Ustawienia + Wszystkie znaczniki + Brak znaczników + + %d s + + Etykieta + Sekret + + Ukryte + Typ + Sekret + Okres + Cyfry + Licznik + Etykieta + Algorytm + Znaczniki + Opcje zaawansowane + + Pokaż znaczniki + Ukryj znaczniki + + O aplikacji + Kopia zapasowa + Szukaj + Ustawienia + Sortuj + Nieposortowane + Etykieta + Ostatnio używane + Edytuj etykietę + Zmień obraz + Edytuj znaczniki + Usuń + + Uwierzytelnianie nie powiodło się, proszę spróbować ponownie + Uwierzytelnianie nie powiodło się, zamykanie andOTP + Skopiowano do schowka + Takie konto już istnieje + Nieprawidłowy kod QR + Klucz szyfrowania nie jest załadowany + + Uwierzytelnianie + Wprowadź szczegóły + Usuń + Zmień nazwę + Licznik + Ostatnio używane + Błąd KeyStore + Wprowadź hasło + Wprowadź hasło + Potwierdź hasło + Podaj swoje dane uwierzytelniające, aby uruchomić andOTP. + Czy na pewno chcesz usunąć konto „%1$s”? + W celu rozpoznania, który token był użyty jako ostatni, musisz włączyć opcję „Kliknij, aby odkryć” lub użyć przycisku kopiuj.\n\nTa wiadomość nie zostanie wyświetlona ponownie. + Nie udało się wczytać klucza szyfrowania z KeyStore. Wszystkie nowo dodane konta zostaną utracone.\n\nAby móc dalej korzystać z andOTP, należy przejść do Ustawień i zmienić opcję Szyfrowanie bazy danych na Hasło / kod PIN. + + Skanuj kod QR + Wprowadź szczegóły diff --git a/app/src/main/res/values-pl-rPL/strings_settings.xml b/app/src/main/res/values-pl-rPL/strings_settings.xml index 282738c3..b253d056 100644 --- a/app/src/main/res/values-pl-rPL/strings_settings.xml +++ b/app/src/main/res/values-pl-rPL/strings_settings.xml @@ -1,156 +1,134 @@ - Ustawienia - - Bezpieczeństwo - Interfejs użytkownika - Kopia - - Kliknij, aby odkryć - Limit czasu upłynął - Uwierzytelnianie - Hasło - Kod PIN - Szyfrowanie bazy danych - Panic Trigger - Re-lock on screen off - Język - Motyw - Etykieta rozmiaru czcionki - Przewiń etykietę - Rozmiar miniatury - Oddzielanie tokenu spacjami - Zachowanie zaznaczenia znacznika - Dodaj datę do nazwy pliku - Pytaj o nazwę pliku - Katalog kopii - Hasło do kopii - Backup Broadcasts - Dostawca OpenPGP - Klucz szyfrowania OpenPGP - OpenPGP signing key (optional) - Sprawdź poprawność zaszyfrowanych kopii - Włącz funkcje specjalne - Zezwól na zrzuty ekranu - Włącz synchronizację Androida - Wyczyść KeyStore - - Domyślnie ukrywaj tokeny OTP; wymaga kliknięcia, aby odkryć token - Wybierz czas (w sekundach) po których - ukryty zostanie token - Zdecyduj, co ma się stać po otrzymaniu sygnału Panic Trigger - Require authentication after the devices screen - has been turned off - Przewijaj etykiety zamiast ucinać je - Dodaj bieżącą datę i czas do proponowanej - nazwy pliku kopii - Pytaj o nazwę pliku za każdym razem, kiedy kopia jest - tworzona lub przywracana - Katalog z kopiami (nazwy plików zależą od typu kopii) - Ustaw hasło używane do szyfrowania kopii - Select which backup types can be triggered by - 3rd-party apps using Broadcasts - Mail address of the OpenPGP key used to encrypt - the backups - Szyfrowane kopie mogą zostać zaimportowane tylko wtedy, gdy zostały podpisane Twoim kluczem - Odhacz aby wyłączyć specjalne funkcje - Pozwól na wykonanie zrzutu ekranu głównego + Ustawienia + + Bezpieczeństwo + Interfejs użytkownika + Kopia zapasowa + + Kliknij, aby odkryć + Czas wyświetlania + Uwierzytelnianie + Hasło + Kod PIN + Szyfrowanie bazy danych + Panic Trigger + Zablokuj po wyłączeniu ekranu + Język + Motyw + Rozmiar czcionki etykiet + Przewijaj etykiety + Rozmiar miniaturek + Rozdzielanie tokenu + Zachowanie znacznika + Dodaj datę do nazwy pliku + Pytaj o nazwę pliku + Katalog kopii zapasowej + Hasło kopii zapasowej + Broadcast kopii zapasowej + Dostawca OpenPGP + Klucz szyfrujący OpenPGP + Klucz podpisujący OpenPGP (opcjonalnie) + Sprawdź poprawność zaszyfrowanych kopii + Włącz specjalne funkcje + Zezwól na zrzuty ekranu + Włącz synchronizację Androida + Wyczyść KeyStore + + Domyślnie ukrywaj tokeny OTP; wymaga kliknięcia, aby odkryć token + Wybierz czas (w sekundach), po którym wyświetlane tokeny zostaną ukryte + Zdecyduj, co ma się stać po otrzymaniu sygnału Panic Trigger + Wymagaj uwierzytelnienia po wyłączeniu ekranu urządzenia + Przewijaj etykiety zamiast je ucinać + Dodaj bieżącą datę i czas do proponowanej nazwy pliku kopii zapasowej + Pytaj o nazwę pliku za każdym razem, gdy kopia zapasowa jest tworzona lub przywracana + Katalog z kopiami (nazwy plików zależą od typu kopii) + Ustaw hasło używane do szyfrowania kopii + Wybierz typy kopii zapasowych, które mogą być wywoływane przez aplikacje innych firm poprzez Broadcast + Adres e-mail klucza OpenPGP używanego do szyfrowania kopii zapasowych + Szyfrowane kopie mogą zostać zaimportowane tylko wtedy, gdy zostały podpisane Twoim kluczem + Odhacz aby wyłączyć specjalne funkcje + Pozwól na wykonanie zrzutu ekranu głównego (wyłączone domyślnie z powodów bezpieczeństwa) - Pozwala andOTP używać usługi + Pozwala andOTP używać usługi Androida do tworzenia kopii kluczy i ustawień - Usuń klucz kryptograficzny z KeyStore - - Ta funkcja wymaga systemu Android w wersji co najmniej 5.0 (Lolipop) - Ta funkcja wymaga włączenia blokady ekranu. Sprawdź Ustawienia - > Zabezpieczenia - > Blokada ekranu - Puste hasło nie jest dozwolone, skonfiguruj - Uwierzytelnianie na \"Brak\" aby je wyłaczyć! - Próbuję zmienić szyfrowanie bazy danych, - proszę czekać! - Udało się zmienić szyfrowanie bazy - danych! - Nie udało się zmienić szyfrowania bazy danych, + Usuń klucz kryptograficzny z KeyStore + + Ta funkcja wymaga systemu Android w wersji co najmniej 5.0 (Lolipop) + Ta funkcja wymaga włączenia blokady ekranu. Sprawdź Ustawienia - > Zabezpieczenia - > Blokada ekranu + Puste hasło nie jest dozwolone. Zmień uwierzytelnianie na „Brak”, aby je wyłączyć! + Próba zmiany szyfrowania bazy danych, proszę czekać! + Pomyślnie zmieniono szyfrowanie bazy danych! + Nie udało się zmienić szyfrowania bazy danych, przywracanie do poprzedniego stanu! - Nie udało się utworzyć wewnętrznej + Nie udało się utworzyć wewnętrznej kopii, przerywam! - Nie można uzyskać klucza szyfrowania, przerywam! - Uwierzytelnianie nie powiodło się! - Nie powiodła się zmiana hasła / kodu PIN, - zmień ręcznie w ustawieniach! - Uwaga - Błąd - Wyczyść KeyStore? - Android sync - andOTP spróbuje teraz zmienić szyfrowanie + Nie można uzyskać klucza szyfrowania, przerywam! + Uwierzytelnianie nie powiodło się! + Zmiana hasła / kodu PIN nie powiodła się. Zmień swoje hasło ręcznie w ustawieniach. + Uwaga + Błąd + Wyczyść KeyStore? + Synchronizacja Android + andOTP spróbuje teraz zmienić szyfrowanie bazy danych. W razie wypadku wewnętrzna kopia zapasowa zostanie przywrócona i szyfrowanie zostanie niezmienione.\n\nW przypadku gdy wydarzy się coś nieprzewidzianego dobrze jest mieć kopię zapasową - Możesz użyć tylko hasła lub kodu PIN - dopuki szyfrowanie bazy danych jest za pomocą \"Hasło / PIN\"! - Najpierw musisz skonfigurować - Uwierzytelnianie jako \"Hasło\" lub \"PIN\"! - Najpierw musisz skonfigurować - hasło lub PIN zanim zmienisz szyfrowanie! - W niektórych przypadkach czyszczenie KeyStore - może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku gdy wiesz co robisz!\n\nOdkąd - Szyfrowanie bazy danych jest ustawione na Hasło / PIN nie powinieneś utracić żadnych - danych robiąc to (ale nigdy nie zaszkodzi mieć kopię).\n\nCzy jesteś pewien że chcesz - wyczyścić KeyStore? - W niektórych przypadkach czyszczenie KeyStore - może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku gdy wiesz co robisz!\n\nUwaga: - Szyfrowanie bazy danych jest ustawione na Android KeyStoreutracisz wszystkie - konta. Miej pewność że masz kopię zapasową!\n\nCzy jesteś pewien że chcesz - wyczyścić KeyStore? - Android sync nie może zostać użyte wraz z - szyfrowaniem KeyStore, powinieneś utworzyć własną kopię! - - - Brak - Hasło - PIN - Poświadczenia urządzenia - - - Android KeyStore - Hasło / PIN - - - Usuń wszystkie konta - Resetowanie ustawień - - - Jasny motyw - Ciemny motyw - Czarny motyw - - - Ukryte - Mała - Domyślne - Średni - Duże - - - Nie dziel - Po dwóch znakach - Po trzech znakach - - - Pokaż wszystkie konta pasujące jakiekolwiek z zaznaczonych etykiet (lub) - Pokaż wszystkie konta pasujące wszystkim z zaznaczonych etykiet (i) - Przełącz między etykietami (pozwól aby tylko jedna etykieta mogła być zaznaczona) - - - Kopia tekstowa - Szyfrowana kopia - - - Domyślny systemowy - - Wpisz nowe hasło - Wprowadź nowy kod PIN - Potwierdź hasło - Potwierdź PIN - Hasło powinno liczyć co najmniej %1$d znaków! - Kod PIN musi liczyć co najmniej %1$d cyfr! + Dopóki szyfrowanie bazy danych ustawione jest jako „Hasło / kod PIN”, możesz używać tylko hasła lub kodu PIN! + Najpierw należy skonfigurować uwierzytelnianie jako hasło lub kod PIN! + Zanim zmienisz szyfrowanie, najpierw musisz skonfigurować hasło lub kod PIN! + W niektórych przypadkach wyczyszczenie KeyStore może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku, gdy wiesz co robisz!\n\nPonieważ Szyfrowanie bazy danych jest ustawione na Hasło / kod PIN, nie powinieneś utracić żadnych danych (ale i tak nie zaszkodzi posiadać kopię zapasową).\n\nCzy na pewno chcesz wyczyścić KeyStore? + W niektórych przypadkach wyczyszczenie KeyStore może pomóc rozwiązać problemy. Powinieneś kontynuować tylko w przypadku, gdy wiesz co robisz!\n\nUwaga: Szyfrowanie bazy danych ustawione jest na Android KeyStore, dlatego utracisz wszystkie konta. Upewnij się, że posiadasz aktualną kopię zapasową!\n\nCzy na pewno chcesz wyczyścić KeyStore? + Synchronizacja Android nie może być używana wraz z szyfrowaniem KeyStore, zaleca się ręczne tworzenie kopii zapasowej! + + + Brak + Hasło + PIN + Poświadczenia urządzenia + + + Android KeyStore + Hasło / kod PIN + + + Usuń wszystkie konta + Resetowanie ustawień + + + Jasny motyw + Ciemny motyw + Czarny motyw + + + Ukryte + Małe + Domyślne + Średnie + Duże + + + Nie dziel + Po dwóch znakach + Po trzech znakach + + + Pokaż wszystkie konta pasujące jakiekolwiek z zaznaczonych etykiet (lub) + Pokaż wszystkie konta pasujące wszystkim z zaznaczonych etykiet (i) + Przełącz między etykietami (pozwól aby tylko jedna etykieta mogła być zaznaczona) + + + Niezaszyfrowana kopia zapasowa + Zaszyfrowana kopia zapasowa + + + Domyślny + + Wpisz nowe hasło + Wprowadź nowy kod PIN + Potwierdź hasło + Potwierdź kod PIN + Hasło musi mieć co najmniej %1$d znaków! + Kod PIN musi mieć co najmniej %1$d cyfr! diff --git a/app/src/main/res/values-pt-rBR/strings_about.xml b/app/src/main/res/values-pt-rBR/strings_about.xml index fc8391ce..6ff540ab 100644 --- a/app/src/main/res/values-pt-rBR/strings_about.xml +++ b/app/src/main/res/values-pt-rBR/strings_about.xml @@ -18,8 +18,7 @@ Desenvolvedor do aplicativo original Aplicativo original Site - Doar com PayPal - Doar com Bitcoin + Doar Colaboradores Tradutores diff --git a/app/src/main/res/values-pt-rBR/strings_backup.xml b/app/src/main/res/values-pt-rBR/strings_backup.xml index c9e83624..2455ea29 100644 --- a/app/src/main/res/values-pt-rBR/strings_backup.xml +++ b/app/src/main/res/values-pt-rBR/strings_backup.xml @@ -10,6 +10,7 @@ Fazer backup (OpenPGP) Restaurar backup (texto puro) Restaurar backup (criptografado) + Restaurar (criptografado, criptografia antiga) Restaurar backup (OpenPGP) Substituir as contas existentes Fazer o backup de todas as contas em um arquivo JSON desprotegido @@ -17,6 +18,8 @@ Fazer o backup de todas as contas em um arquivo JSON criptografado com OpenPGP Restaurar contas de um arquivo JSON desprotegido Restaurar contas de um arquivo JSON protegido por senha + Recupere contas de um arquivo JSON protegido por senha + criado com uma versão do andOTP menor que a 0.6.3 Restaurar contas de um arquivo JSON criptografado com OpenPGP Falha ao carregar a senha de backup de Configurações, isso pode significar que nenhuma senha foi definida ou que algo deu errado. Será pedido que @@ -36,6 +39,11 @@ insira A permissão de leitura não foi concedida. Por favor, conceda-a antes de iniciar um backup A permissão de escrita não foi concedida. Por favor, conceda-a antes de iniciar um backup A criptografia de senha ou PIN não pode ser usada com o backup de ativação remota + Novo método de criptografia + Desde a versão 0.6.3 do andOTP, um método novo e aprimorado + de criptografia é usado para backups protegidos por senha. Os backups antigos ainda podem ser + importados, mas é altamente recomendado criar novos backups com o método aprimorado de + criptografia.\n\nEsta mensagem não será exibida novamente. Falha ao realizar o backup automático Backup automático concluído diff --git a/app/src/main/res/values-pt-rBR/strings_intro.xml b/app/src/main/res/values-pt-rBR/strings_intro.xml index 0925603f..a8e8c8ce 100644 --- a/app/src/main/res/values-pt-rBR/strings_intro.xml +++ b/app/src/main/res/values-pt-rBR/strings_intro.xml @@ -2,7 +2,7 @@ Vamos começar! - Bem vindo ao andOTP, este assistente irá guiá-lo pela configuração inicial. Por favor, leia atentamente ou correrá o risco de perder dados! \n\nNão se preocupe, você ainda pode modificar qualquer uma das opções mais tarde nas configurações. + Bem vindo ao <b>andOTP</b>, este assistente irá guiá-lo pela configuração inicial. Por favor, leia atentamente ou correrá o risco de perder dados! \n\nNão se preocupe, você ainda pode modificar qualquer uma das opções mais tarde nas </b>configurações</b>. Para garantir a segurança de suas contas, andOTP somente armazena seus dados em arquivos criptografados. Aqui vocẽ pode escolher qual método de criptografia será usado. O KeyStore é um componente do sistema do Android para armazenar com segurança chaves criptográficas. A vantagem deste método é que as chaves são armazenadas separadas dos arquivos de dados e podem ser backupeadas pela criptografia de hardware (se o seu dispositivo suportar isso). No entanto, como as chaves não são armazenadas com os dados do aplicativo, este método impede que as soluções externas de backup (como o Titanium) funcionem. Se você escolher este método, você terá que confiar nas funções internas de backup fornecidas pelo andOTP. \n\nAtenção: O KeyStore é conhecido por causar muitos problemas, por favor, use-o apenas se for absolutamente necessário. Se você não se importa em digitar uma senha / PIN sempre que iniciar o andOTP, então é altamente recomendável usar a criptografia baseada em senha. Esse método irá criptografar seus dados com uma chave gerada a partir de uma senha ou PIN. A principal vantagem aqui é que irá funcionar com soluções de backup externas (como Titanium) e é muito menos suscetível a falhas que a KeyStore. diff --git a/app/src/main/res/values-ru-rRU/strings_about.xml b/app/src/main/res/values-ru-rRU/strings_about.xml index c9b328cf..f0a64ff7 100644 --- a/app/src/main/res/values-ru-rRU/strings_about.xml +++ b/app/src/main/res/values-ru-rRU/strings_about.xml @@ -18,8 +18,7 @@ Автор оригинального приложения Оригинальное приложение Сайт - Сделать пожертвование (PayPal) - Сделать пожертвование (Bitcoin) + Пожертвовать Участники проекта Переводчики diff --git a/app/src/main/res/values-ru-rRU/strings_backup.xml b/app/src/main/res/values-ru-rRU/strings_backup.xml index f9ba075c..899e6075 100644 --- a/app/src/main/res/values-ru-rRU/strings_backup.xml +++ b/app/src/main/res/values-ru-rRU/strings_backup.xml @@ -10,6 +10,7 @@ Резервная копия (OpenPGP) Восстановление (из текстового файла) Восстановление (зашифрованной копии) + Восстановление (зашифрованное, старое шифрование) Восстановление (OpenPGP) Заменить существующие записи Резервное копирование всех учетных записей в текстовый файл JSON @@ -17,6 +18,8 @@ Резервное копирование всех учетных записей в зашифрованный OpenPGP файл JSON Восстановление учетных записей из текстового файла JSON Восстановление учетных записей из защищённого паролем файла JSON + Восстановление учетных записей из защищенного паролем JSON-файла, + созданного в версии andOTP ниже 0.6.3 Восстановление учетных записей из зашифрованного OpenPGP файла JSON Не удалось загрузить пароль для резервной копии из Настроек, это означает, что пароль не был установлен или что-то пошло не так. При создании или импорте @@ -45,6 +48,11 @@ сделайте это перед началом резервного копирования Пароль/PIN-код на основе шифрования не поддерживается со сторонними приложениями для создания резервных копий + Новый метод шифрования + Начиная с версии andOTP 0.6.3 <b>используется новый + и улучшенный метод</b> шифрования для защищенных паролем резервных копий. Старые резервные копии могут быть + импортированы, однако настоятельно рекомендуется создать новые резервные копии с улучшенным + шифрованием</b>.\n\nЭто сообщение не будет показано снова. Автоматическое резервное копирование не удалось Автоматическое резервное копирование успешно завершено diff --git a/app/src/main/res/values-sl-rSI/strings_about.xml b/app/src/main/res/values-sl-rSI/strings_about.xml index 23788230..9ec00754 100644 --- a/app/src/main/res/values-sl-rSI/strings_about.xml +++ b/app/src/main/res/values-sl-rSI/strings_about.xml @@ -1,49 +1,48 @@ - O programu - Odprtokodno dvo-faktorsko preverjanje pristnosti za Android - O programu - Knjižnice - - Zadnje spremembe - Licenca - MIT licenca - Izvorna koda - Različica - - Avtorji - Glavni razvijalec - Razvijalec - Avtor izvirne aplikacije - Originalna aplikacija - Spletna stran - Prispevajte (PayPal) - Prispevajte (Bitcoin) - Sodelavci - Prevajalci - - Oznanilo sličic - 1. Vse sličice so blagovne znamke njihovih lastnikov. - 2. Uporaba teh blagovnih znamk ne nakazujejo niti andOTP + O programu + Odprtokodno dvo-faktorsko preverjanje pristnosti za Android + O programu + Knjižnice + + Zadnje spremembe + Licenca + MIT licenca + Izvorna koda + Različica + + Avtorji + Glavni razvijalec + Razvijalec + Avtor izvirne aplikacije + Originalna aplikacija + Spletna stran + Prispevaj + Sodelavci + Prevajalci + + Oznanilo sličic + 1. Vse sličice so blagovne znamke njihovih lastnikov. + 2. Uporaba teh blagovnih znamk ne nakazujejo niti andOTP podpore imetniku blagovne znamke niti obratno. - 3. Sličice so uporabljanje samo za + 3. Sličice so uporabljanje samo za predstavitev podjetja ali izdelka na katerega se nanašajo. - 4. Ne uporabljajte sličic za kakršenkoli namen kot + 4. Ne uporabljajte sličic za kakršenkoli namen kot predstavljanje določene blagovne znamke ali storitve. - - Podprite razvoj - Prijavi napake - Prevedi - Prijavi napako ali zahtevaj nove funkcije - Pomagaj prevesti andOTP v domači jezik - Posebne funkcije - Ali ste prepričani, da želite omogočiti posebne funkcije? + + Podprite razvoj + Prijavi napake + Prevedi + Prijavi napako ali zahtevaj nove funkcije + Pomagaj prevesti andOTP v domači jezik + Posebne funkcije + Ali ste prepričani, da želite omogočiti posebne funkcije? Večina so nestandardni OTP algoritmi, ki so bili narejeni na posebno zahtevo. Ti niso uradno podprti in imajo lahkonekatere omejitve. Preberite (in razumete) stran \"Posebnosti\" na Github Wiki, da se o njih podučite preden jih uporabite. - Posebne funkcije so omogočene - Posebne funkcije so že omogočene - Povezava za finančno podporo je kopirana v odložišče + Posebne funkcije so omogočene + Posebne funkcije so že omogočene + Povezava za finančno podporo je kopirana v odložišče diff --git a/app/src/main/res/values-sl-rSI/strings_auth.xml b/app/src/main/res/values-sl-rSI/strings_auth.xml index 0b01a536..60578b38 100644 --- a/app/src/main/res/values-sl-rSI/strings_auth.xml +++ b/app/src/main/res/values-sl-rSI/strings_auth.xml @@ -1,19 +1,19 @@ - Preveri identiteto - - Geslo - PIN - - Prosim preverite svojo identiteto, da lahko začnete uporabljati andOTP! - Potrdite metodo preverjanja pristnosti, da ustvarite + Preveri identiteto + + Geslo + PIN + + Prosim preverite svojo identiteto, da lahko začnete uporabljati andOTP! + Potrdite metodo preverjanja pristnosti, da ustvarite nov šifrirni ključ! - - Odkleni - - Prosim, nastavi geslo v Nastavitve! - Prosim, nastavi PIN v Nastavitve! - Napačno geslo, poizkusite znova! - Napačen PIN. Prosimo, poskusite znova! + + Odkleni + + Prosim, nastavi geslo v Nastavitve! + Prosim, nastavi PIN v Nastavitve! + Napačno geslo, poizkusite znova! + Napačen PIN. Prosimo, poskusite znova! diff --git a/app/src/main/res/values-sl-rSI/strings_backup.xml b/app/src/main/res/values-sl-rSI/strings_backup.xml index d38659ab..c11d45e9 100644 --- a/app/src/main/res/values-sl-rSI/strings_backup.xml +++ b/app/src/main/res/values-sl-rSI/strings_backup.xml @@ -1,71 +1,78 @@ - Varnostne kopije - Navadne varnostne kopije - Kodirane varnostne kopije - OpenPGP varnostne kopije - Varnostna kopija (navadna) - Varnostna kopija (kodirana) - Varnostna kopija (OpenPGP) - Obnovi varnostno kopijo (navadna) - Obnovi varnostna kopijo (kodirana) - Obnovi varnostno kopijo(OpenPGP) - Zamenjaj obstoječe račune - Naredi varnostno kopijo vseh računov v navadni JSON datoteki - Naredi varnostno kopijo vseh računov v z geslom zaščiteni JSON datoteki - Naredi varnostno kopijo vseh računov v z OpenPGP zaščiteni JSON datoteki - Obnovi varnostno kopijo iz navadne JSON datoteke - Obnovi varnostno kopijo iz z geslom zaščitene JSON datoteke - Obnovi varnostno kopijo iz z OpenPGP zaščitene JSON datoteke - Pri nalaganju varnostnega gesla iz Nastavitve je prišlo do napake, + Varnostne kopije + Navadne varnostne kopije + Kodirane varnostne kopije + OpenPGP varnostne kopije + Varnostna kopija (navadna) + Varnostna kopija (kodirana) + Varnostna kopija (OpenPGP) + Obnovi varnostno kopijo (navadna) + Obnovi varnostna kopijo (kodirana) + Obnovi (enkriptirano, stara enkripcija) + Obnovi varnostno kopijo(OpenPGP) + Zamenjaj obstoječe račune + Naredi varnostno kopijo vseh računov v navadni JSON datoteki + Naredi varnostno kopijo vseh računov v z geslom zaščiteni JSON datoteki + Naredi varnostno kopijo vseh računov v z OpenPGP zaščiteni JSON datoteki + Obnovi varnostno kopijo iz navadne JSON datoteke + Obnovi varnostno kopijo iz z geslom zaščitene JSON datoteke + Obnovi račune s pomočjo z geslom zaščitene JSON datoteke, + ustvarjene z andOTP verzijo nižjo od 0.6.3 + Obnovi varnostno kopijo iz z OpenPGP zaščitene JSON datoteke + Pri nalaganju varnostnega gesla iz Nastavitve je prišlo do napake, to bodisi pomeni, da geslo ni bilo določeno ali je pa nekaj šlo narobe. Geslo boste morali vnesti ročno ob ustvarjanju ali uvozu varnostne kopije. - Namestiti morate OpenPGP ponudnika in omogočiti + Namestiti morate OpenPGP ponudnika in omogočiti to funkcijo v Nastavitve. - Izbrati morate OpenPGP ključ v Nastavitve + Izbrati morate OpenPGP ključ v Nastavitve preden lahko ustvarite kodirane varnostne kopije. - Če omogočeno, bodo vsi stari računi nadomeščeni ob uvozu + Če omogočeno, bodo vsi stari računi nadomeščeni ob uvozu varnostne kopije in prisotna bo samo varnostna kopija. Če onemogočeno, bodo računi in vsebina varnostne kopije združene. - - Varnostno opozorilo - Ali res želite izvoziti zbirko podatkov v + + Varnostno opozorilo + Ali res želite izvoziti zbirko podatkov v navadni JSON datoteki? Ta datoteka vsebuje vse vaše tajne ključe, prosimo shranite na varnem! - Varnostna kopija ni uspela - Varnostna kopija uspela - Navadne varnostne kopije trenutno niso dovoljene, + Varnostna kopija ni uspela + Varnostna kopija uspela + Navadne varnostne kopije trenutno niso dovoljene, prosimo, pojdite v Nastavitve, da jih omogočite - Kodirane varnostne kopije trenutno niso dovoljene, + Kodirane varnostne kopije trenutno niso dovoljene, prosimo, pojdite v Nastavitve, da jih omogočite - Dovoljenja za branje niso odobrena, prosimo, da + Dovoljenja za branje niso odobrena, prosimo, da jih odobrite pred varnostnim kopiranjem - Dovoljenja za zapis niso odobrena, prosimo, da + Dovoljenja za zapis niso odobrena, prosimo, da jih odobrite pred varnostnim kopiranjem - Kodiranje s pomočjo gesla/PIN ni + Kodiranje s pomočjo gesla/PIN ni podprto pri varnostnem kopiranju preko zunanjih aplikacij - - Samodejno varnostno kopiranje ni uspelo - Samodejna izdelava varnostne kopije je bila uspešna - Ta obvestila so prikazana, ko + Nova enkripcijska metoda + Od andOTP verzije 0.6.3 naprej, obstaja nova in izboljšana + enkripcijska metoda za varnostne kopije zaščitene z geslom. Prejšnje verzije varnostnih kopij, so še vedno lahko uvožene, ampak je zelo priporočeno, da ustvarite nove varnostne kopije z izboljšano + enkripcijo.\n\n To sporočilo ne bo več prikazano. + + Samodejno varnostno kopiranje ni uspelo + Samodejna izdelava varnostne kopije je bila uspešna + Ta obvestila so prikazana, ko samodejno varnostno kopiranje ni uspelo iz neznanega razloga - Ta obvestila so prikazana, ko + Ta obvestila so prikazana, ko je samodejno varnostno kopiranje uspelo - - Ni bilo mogoče ustvariti mape z varnostnimi kopijami - Izvoz v zunanjo shrambo je bil uspešen - Izvoz v zunanjo shrambo ni bil uspešen - Uvoz iz zunanje shrambe je bil uspešen - Obnovljenih računov ni bilo mogoče shraniti - Dekodiranje varnostne kopije ni uspelo - V uvoženi datoteki ni bilo najdenih uporabniških računov - Zunanja shramba trenutno ni dostopna - Dovoljenja za shranjevanje niso bila dodeljena - OpenPGP napaka: %s - Overjenih podpisov ni bilo mogoče najti - Geslo ni bilo nastavljeno, preverite Nastavitve + + Ni bilo mogoče ustvariti mape z varnostnimi kopijami + Izvoz v zunanjo shrambo je bil uspešen + Izvoz v zunanjo shrambo ni bil uspešen + Uvoz iz zunanje shrambe je bil uspešen + Obnovljenih računov ni bilo mogoče shraniti + Dekodiranje varnostne kopije ni uspelo + V uvoženi datoteki ni bilo najdenih uporabniških računov + Zunanja shramba trenutno ni dostopna + Dovoljenja za shranjevanje niso bila dodeljena + OpenPGP napaka: %s + Overjenih podpisov ni bilo mogoče najti + Geslo ni bilo nastavljeno, preverite Nastavitve diff --git a/app/src/main/res/values-sl-rSI/strings_intro.xml b/app/src/main/res/values-sl-rSI/strings_intro.xml index fcb5a6b3..2209a26b 100644 --- a/app/src/main/res/values-sl-rSI/strings_intro.xml +++ b/app/src/main/res/values-sl-rSI/strings_intro.xml @@ -1,14 +1,14 @@ - Pa začnimo! - Dobrodošli v andOTP, čarovnik Vas bo vodil skozi + Pa začnimo! + Dobrodošli v andOTP, čarovnik Vas bo vodil skozi uvodne nastavitve. Prosimo, bodite pozorni in berete pazljivo, sicer lahko izgubite svoje podatke! \n\nBrez skrbi, vse nastavitve lahko spremenite še vedno kasneje v menijunastavitve. - Za zagotovitev varnosti vašega računa andOTP je najbolje, da shranjujte + Za zagotovitev varnosti vašega računa andOTP je najbolje, da shranjujte datoteke v šifrirani obliki. Tukaj lahko izberete, kateri način šifriranja bo uporabljen. - KeyStore je sistemska komponenta Androida, ki se uporablja + KeyStore je sistemska komponenta Androida, ki se uporablja za varno shranjevanje kriptografskih ključev. Prednost te metode je, da so ključi shranjeni ločeno od podatkovnih datotek in so lahko varnostno kopirane s strojno kriptografijo(če vaša naprava to podpira). Kakorkoli, ključi niso shranjeni skupaj s podatki od aplikacije in tako ta metoda @@ -17,21 +17,21 @@ \n\nOpozorilo: Za KeyStore je znano, da rad povzroča veliko težav in ga prosim uporabite samo, če res morate. Če vam ni odveč vnašanje gesla/PIN ob vsaki uporabi andOTP, je zelo priporočeno, da uporabite kodiranje v pomočjo gesla. - Ta metoda bo kodirala vaše podatke s ključem + Ta metoda bo kodirala vaše podatke s ključem nastalim iz gesla ali PIN-a. Glavna prednost tega načina je, da bo varnostno kopiranje delovalo tudi z zunanjim varnostnim kopiranjem (kot npr. Titanium) in bo tako veliko manj napak, ki bi bile sicer možne s KeyStore kodiranjem. Kakorkoli, boste morali vedno pred uporabo aplikacije andOTP vnesti geslo/PIN. - Tukaj lahko nastavite metodo zaklepanja za + Tukaj lahko nastavite metodo zaklepanja za andOTP. Ker ste izbrali Android KeyStore kot način šifriranja, je to neobvezno. - Tukaj lahko nastavite metodo zaklepanja za + Tukaj lahko nastavite metodo zaklepanja za andOTP. Ker ste izbrali Geslo/PIN kot način šifriranja, je potrebno nastaviti ali geslo ali PIN, da nadaljujete. - Prosim, izberite si geslo, da nadaljujete! - Prosim, izberite si PIN številko, da nadaljujete! - Prosim, potrdite vaše geslo, da nadaljujete! - Prosim, potrdite vašo PIN številko, da nadaljujete! - Končano - Vaše nastavitve so bile shranjene, sedaj lahko začnete + Prosim, izberite si geslo, da nadaljujete! + Prosim, izberite si PIN številko, da nadaljujete! + Prosim, potrdite vaše geslo, da nadaljujete! + Prosim, potrdite vašo PIN številko, da nadaljujete! + Končano + Vaše nastavitve so bile shranjene, sedaj lahko začnete uporabljati andOTP! diff --git a/app/src/main/res/values-sl-rSI/strings_main.xml b/app/src/main/res/values-sl-rSI/strings_main.xml index 6bbd83d5..ca76301b 100644 --- a/app/src/main/res/values-sl-rSI/strings_main.xml +++ b/app/src/main/res/values-sl-rSI/strings_main.xml @@ -1,74 +1,74 @@ - - Prekliči - Vnesite podatke - Skeniraj QR kodo - Shrani - Nova oznaka - Nastavitve - Vse oznake - Ni oznak - - %d s - - Oznaka - Skrivni ključ - - Skrit - Vrsta - Skrivni ključ - Obdobje - Številke - Števec - Oznaka - Algoritem - Oznake - Napredne nastavitve - - Pokaži oznake - Skrij oznake - - O programu - Varnostna kopija - Išči - Nastavitve - Razvrsti - Nesortirano - Oznaka - Nazadnje uporabljeno - Uredi oznako - Spremeni podobo - Uredi oznako - Odstrani - - Prišlo je do napake pri preverjanju vaše identitete. Prosimo, poskusite ponovno! - Preverjanje pristnosti ni uspelo, andOTP se zapira! - Kopirano v odložišče - Ta vnos že obstaja - Neveljavna QR koda - Šifrirni ključ ni naložen - - Preveri identiteto - Vnesite podatke - Odstrani - Preimenuj - Števec - Nazadnje uporabljeno - KeyStore napaka - Vnesite geslo - Vnesite geslo - Potrdite geslo - Prosim, vnesite podatke o napravi za zagon andOTP. - Ali res želite odstraniti %1$s? - Za prepoznavo zadnjega uporabljenega žetona v andOTP, + + Prekliči + Vnesite podatke + Skeniraj QR kodo + Shrani + Nova oznaka + Nastavitve + Vse oznake + Ni oznak + + %d s + + Oznaka + Skrivni ključ + + Skrit + Vrsta + Skrivni ključ + Obdobje + Številke + Števec + Oznaka + Algoritem + Oznake + Napredne nastavitve + + Pokaži oznake + Skrij oznake + + O programu + Varnostna kopija + Išči + Nastavitve + Razvrsti + Nesortirano + Oznaka + Nazadnje uporabljeno + Uredi oznako + Spremeni podobo + Uredi oznako + Odstrani + + Prišlo je do napake pri preverjanju vaše identitete. Prosimo, poskusite ponovno! + Preverjanje pristnosti ni uspelo, andOTP se zapira! + Kopirano v odložišče + Ta vnos že obstaja + Neveljavna QR koda + Šifrirni ključ ni naložen + + Preveri identiteto + Vnesite podatke + Odstrani + Preimenuj + Števec + Nazadnje uporabljeno + KeyStore napaka + Vnesite geslo + Vnesite geslo + Potrdite geslo + Prosim, vnesite podatke o napravi za zagon andOTP. + Ali res želite odstraniti %1$s? + Za prepoznavo zadnjega uporabljenega žetona v andOTP, morate imeti omogočeno\"tapni za odkritje\" ali uporabiti gumb za kopiranje.\n\nTo sporočilo ne bo več prikazano. - Napaka pri nalaganju šifrirnega ključa iz KeyStore. + Napaka pri nalaganju šifrirnega ključa iz KeyStore. Vsi vnosi, ki bodo dodani, bodo izgubljeni.\n\nZa nadaljnjo uporabo andOTP lahko greste pod Nastavitve in spremenite Šifriranje zbirke podatkov v Geslo / PIN. - - Skeniraj QR kodo - Vnesite podatke + + Skeniraj QR kodo + Vnesite podatke diff --git a/app/src/main/res/values-sl-rSI/strings_settings.xml b/app/src/main/res/values-sl-rSI/strings_settings.xml index 86dd506c..024400bc 100644 --- a/app/src/main/res/values-sl-rSI/strings_settings.xml +++ b/app/src/main/res/values-sl-rSI/strings_settings.xml @@ -1,162 +1,162 @@ - Nastavitve - - Varnost - Uporabniški vmesnik - Varnostna kopija - - Tapnite, če želite odkriti - Časovna omejitev za razkritje ob dotiku - Avtentikacija - Geslo - PIN - Kodiranje zbirke podatkov - Sprožilec za paniko - Ponovno zaklepanje ob zaklenitvi zaslona - Jezik - Tema - Velikost pisave - Premakni oznako - Nastavi velikost sličic - Razdeli žeton s prostorom - Označi izbor obnašanja - Pripni datum imenu datoteke - Vprašaj za ime datoteke - Mapa varnostnega kopiranja - Varnostno geslo - Varnostno kopiranje preko zunanjih naprav - OpenPGP ponudnik - OpenPGP kodirni ključ - OpenPGP signing key (optional) - Preveri kodirane varnostne kopije - Omogočite posebne možnosti - Omogoči zajemanje posnetka zaslona - Omogoči android sinhronizacijo - Izbriši KeyStore - - Privzeto skrij OTP žetone, prikazani so samo, če + Nastavitve + + Varnost + Uporabniški vmesnik + Varnostna kopija + + Tapnite, če želite odkriti + Časovna omejitev za razkritje ob dotiku + Avtentikacija + Geslo + PIN + Kodiranje zbirke podatkov + Sprožilec za paniko + Ponovno zaklepanje ob zaklenitvi zaslona + Jezik + Tema + Velikost pisave + Premakni oznako + Nastavi velikost sličic + Razdeli žeton s prostorom + Označi izbor obnašanja + Pripni datum imenu datoteke + Vprašaj za ime datoteke + Mapa varnostnega kopiranja + Varnostno geslo + Varnostno kopiranje preko zunanjih naprav + OpenPGP ponudnik + OpenPGP kodirni ključ + OpenPGP podpisna komponenta (po želji) + Preveri kodirane varnostne kopije + Omogočite posebne možnosti + Omogoči zajemanje posnetka zaslona + Omogoči android sinhronizacijo + Izbriši KeyStore + + Privzeto skrij OTP žetone, prikazani so samo, če so odkriti ročno - Izberite čas (v sekundah) po katerem se + Izberite čas (v sekundah) po katerem se skrijejo izbrani računi - Določite, kaj se zgodi ob sprožitvi paničnega sprožilca - Zahtevaj ponovno avtentikacijo po + Določite, kaj se zgodi ob sprožitvi paničnega sprožilca + Zahtevaj ponovno avtentikacijo po zaklepanju zaslona - Premakni predolge oznake namesto njihovega odrezanja z zaslona - Dodaj trenutni datum in čas kot predlog + Premakni predolge oznake namesto njihovega odrezanja z zaslona + Dodaj trenutni datum in čas kot predlog imena varnostne kopije - Vprašaj po imenu varnostne kopije ob vsakem ustvarjanju + Vprašaj po imenu varnostne kopije ob vsakem ustvarjanju ali obnavljanju - Mapa za varnostne kopije (imena varnostnih kopij so odvisna + Mapa za varnostne kopije (imena varnostnih kopij so odvisna od tipa varnostne kopije) - Nastavi geslo, ki bo uporabljeno za kodiranje + Nastavi geslo, ki bo uporabljeno za kodiranje varnostnih kopij - Izberite katera varnostna kopiranja so lahko sprožena + Izberite katera varnostna kopiranja so lahko sprožena preko tretjih aplikacij - Poštni naslov OpenPGP ključa je uporabljen za kodiranje + Poštni naslov OpenPGP ključa je uporabljen za kodiranje varnostne kopije - Kodirane varnostne kopije so lahko uvožene, če so + Kodirane varnostne kopije so lahko uvožene, če so podpisane z veljavnim ključem - Odoznači za ponovno onemogočenje posebnih funkcij - Dovoli posnetek glavnega zaslona + Odoznači za ponovno onemogočenje posebnih funkcij + Dovoli posnetek glavnega zaslona (privzeto je zaradi varnosti onemogočno) - Omogoči andOTP in Androidov vgrajen mehanizem + Omogoči andOTP in Androidov vgrajen mehanizem varnostnega kopiranja za varnostno kopiranje ključev in nastavitev - Izbrišite kodirni ključ iz KeyStore - - Ta funkcija za delovanje potrebuje vsaj + Izbrišite kodirni ključ iz KeyStore + + Ta funkcija za delovanje potrebuje vsaj Android 5.0(Lollipop) - Ta funkcija zahteva, da imate nastavljeno + Ta funkcija zahteva, da imate nastavljeno zaklepanje zaslona ( Nastavitve -> Varnost -> Zaklepanje zaslona) - Prazno geslo ni dovoljeno. Nastavite + Prazno geslo ni dovoljeno. Nastavite Preverjanje pristnosti na Brez, da jo onemogočite! - Poskus spreminjanja kodiranja zbirke podatkov je v teku, + Poskus spreminjanja kodiranja zbirke podatkov je v teku, prosim počakajte! - Uspešno spremenjeno kodiranje + Uspešno spremenjeno kodiranje zbirke podatkov! - Spreminjanje kodiranje zbirke podatkov ni uspelo, + Spreminjanje kodiranje zbirke podatkov ni uspelo, obnavljanja prejšnjega načina kodiranja! - Notranja varnostna kopija ni + Notranja varnostna kopija ni uspela, v preklicu! - Kodirnega ključa ni bilo mogoče pridobiti, v preklicu! - Preverjanje pristnosti ni uspelo! - Tiha posodobitev vašega gesla/PIN na novo kodiranje + Kodirnega ključa ni bilo mogoče pridobiti, v preklicu! + Preverjanje pristnosti ni uspelo! + Tiha posodobitev vašega gesla/PIN na novo kodiranje ni uspelo, prosimo ročno ga ponastavite v Nastavitve! - Opozorilo - Napaka - Izbriši KeyStore? - Android sinhronizacija - andOTP bo sedaj poskusil spremeniti kodiranje zbirke podatkov. + Opozorilo + Napaka + Izbriši KeyStore? + Android sinhronizacija + andOTP bo sedaj poskusil spremeniti kodiranje zbirke podatkov. V primeru napake bo obnovljena notranja varnostna kopija in kodiranje bo ostalo nespremenjeno.\n\nKakorkoli, vedno je dobro za vsak slučaj imeti napravljeno varnostno kopijo, če se zgodi kaj nepričakovanega! - Geslo ali PIN lahko uporabljate samo, če + Geslo ali PIN lahko uporabljate samo, če je kodiranje baze podatkov nastavljeno na \"Geslo/PIN\"! - Najprej morate nastaviti + Najprej morate nastaviti Preverjanje identitete na ali \"Geslo\" ali \"PIN\"! - Najprej morate nastaviti + Najprej morate nastaviti Geslo ali PIN pred spreminjanjem načina kodiranja! - V nekaterih primerih lahko brisanje KeyStore + V nekaterih primerih lahko brisanje KeyStore pomaga rešiti probleme. Svetovano je, da nadaljujete, če veste kaj delate!\n\n Ker je kodiranje zbirke podatkovnastavljeno na Geslo / PIN ne bi smeli pri tem izgubiti nič podatkov, (ampak nikoli ne škodi prej vseeno narediti varnostne kopije).\n\n Ali ste prepričani, da želite izbrisati KeyStore? - V nekaterih primerih lahko brisanje KeyStore + V nekaterih primerih lahko brisanje KeyStore pomaga rešiti probleme. Svetovano je, da nadaljujete, če veste kaj delate!\n\n Opozorilo: Ker je Kodiranje zbirke podatkovnastavljeno na Android KeyStore bostei pri tem izgubili vse vaše račune. Preverite, da imate ustvarjeno varnostno kopijo.\n\n Ali ste prepričani, da želite izbrisati KeyStore? - Android sinhronizacija ne more biti uporabljena s Keystore + Android sinhronizacija ne more biti uporabljena s Keystore kodiranjem, izvedite raje ročno varnostno kopiranje! - - - Brez - Geslo - PIN - Podatki naprave - - - Android KeyStore - Geslo / PIN - - - Izbrišite vse račune - Ponastavi nastavitve aplikacije - - - Svetla tema - Temna tema - Črna tema - - - Skrit - Majhno - Privzeto - Srednje - Veliko - - - Ne razdeli - Po dveh vnešenih znakih - Po treh vnešenih znakih - - - Prikaži vse račune, ki ustrezajo katerikoli od izbranih oznak (ali) - Prikaži samo račune, ki ustrezajo vsem od izbranih oznak (in) - Preklopi med oznakami (dovoli samo eno izbrano oznako naenkrat) - - - Navadne varnostne kopije - Kodirane varnostne kopije - - - Privzeto - - Vnesi novo geslo - Vnesi nov PIN - Potrdite geslo - Potrdi PIN - Geslo mora imeti najmanj %1$d znakov! - PIN mora imeti najmanj %1$d znakov! + + + Brez + Geslo + PIN + Podatki naprave + + + Android KeyStore + Geslo / PIN + + + Izbrišite vse račune + Ponastavi nastavitve aplikacije + + + Svetla tema + Temna tema + Črna tema + + + Skrit + Majhno + Privzeto + Srednje + Veliko + + + Ne razdeli + Po dveh vnešenih znakih + Po treh vnešenih znakih + + + Prikaži vse račune, ki ustrezajo katerikoli od izbranih oznak (ali) + Prikaži samo račune, ki ustrezajo vsem od izbranih oznak (in) + Preklopi med oznakami (dovoli samo eno izbrano oznako naenkrat) + + + Navadne varnostne kopije + Kodirane varnostne kopije + + + Privzeto + + Vnesi novo geslo + Vnesi nov PIN + Potrdite geslo + Potrdi PIN + Geslo mora imeti najmanj %1$d znakov! + PIN mora imeti najmanj %1$d znakov! diff --git a/app/src/main/res/values-sv-rSE/strings_about.xml b/app/src/main/res/values-sv-rSE/strings_about.xml index 312c5915..02977046 100644 --- a/app/src/main/res/values-sv-rSE/strings_about.xml +++ b/app/src/main/res/values-sv-rSE/strings_about.xml @@ -18,8 +18,7 @@ Upphovsman till den ursprungliga appen Ursprunglig App Webbplats - Donera (PayPal) - Donera (Bitcoin) + Donera Bidragsgivare Översättare diff --git a/app/src/main/res/values-sv-rSE/strings_backup.xml b/app/src/main/res/values-sv-rSE/strings_backup.xml index d02aa58d..99a29664 100644 --- a/app/src/main/res/values-sv-rSE/strings_backup.xml +++ b/app/src/main/res/values-sv-rSE/strings_backup.xml @@ -10,6 +10,7 @@ Säkerhetskopia (OpenPGP) Återställ (klartext) Återställ (krypterad) + Restore (encrypted, old encryption) Återställ (OpenPGP) Ersätt befintliga poster Säkerhetskopiera alla konton i en fil i klartext i JSON @@ -17,6 +18,8 @@ Säkerhetskopiera alla konton i en OpenPGP-krypterad JSON-fil Återställa konton från en oformaterad JSON-fil Återställ konton från en lösenordsskyddad JSON-fil + Restore accounts from a password-protected JSON file + created with an andOTP version lower than 0.6.3 Återställ konton från en OpenPGP-krypterad JSON-fil Det gick inte att läsa in säkerhetskopieringslösenordet från Inställningar, det betyder antingen att inget lösenord har ställts in eller att något gick fel. Du kommer att bli ombedd att ange @@ -48,6 +51,11 @@ detta innan du försöker säkerhetskopiera Lösenord/PIN-baserad kryptering stöds inte med broadcast-säkerhetskopiering + New encryption method + Since version 0.6.3 of andOTP, a new and improved + encryption method is used for password-protected backups. The old backups can still be + imported, but it is highly recommended to create new backups with the improved + encryption.\n\nThis message will not be shown again. Automatisk säkerhetskopiering misslyckades Automatisk säkerhetskopiering lyckades diff --git a/app/src/main/res/values-tr-rTR/strings_about.xml b/app/src/main/res/values-tr-rTR/strings_about.xml index d7aff891..2cef4a80 100644 --- a/app/src/main/res/values-tr-rTR/strings_about.xml +++ b/app/src/main/res/values-tr-rTR/strings_about.xml @@ -1,46 +1,45 @@ - Hakkında - Android için açık kaynaklı iki aşamalı doğrulama aracı - Hakkında - Kütüphaneler - - Güncelleme Notları - Lisans - MIT Lisansı - Kaynak Kodu - Versiyon - - Yazarlar - Ana geliştirici - Geliştirici - Orijinal Uygulamanın Yazarı - Orijinal Uygulama - Web sitesi - PayPal ile bağış yap - Bitcoin ile bağış yap - Katkıda Bulunanlar - Çevirmenler - - Küçük resimlerin telifleri hakkında - 1. tüm küçük resimler temsil ettikleri şirket veya kuruluşun telifleri altındadır. - 2. bu resimlerin kullanımı, resmin sahibi şirket veya kuruluşun andOTP tarafından, veya tam tersi yönde reklamı yapıldığı anlamına gelmemektedir. - 3. küçük resimler sadece sahipleri olan şirket veya kuruluşu temsil etmek için kullanılmaktadır. - 4. Lütfen ilgili şirket veya kuruluşu temsil etme amacı dışında herhangi bir amaç için küçük resimleri kullanmayın. - - Geliştiriciyi Destekle - Hataları Bildir - Çeviri - Hataları veya istediğin yeni özellikleri bildir - andOTP\'yi kendi dilinize çevirmede yardımcı olun - Özel Seçenekler - Bu özel + Hakkında + Android için açık kaynaklı iki aşamalı doğrulama aracı + Hakkında + Kütüphaneler + + Güncelleme Notları + Lisans + MIT Lisansı + Kaynak Kodu + Versiyon + + Yazarlar + Ana geliştirici + Geliştirici + Orijinal Uygulamanın Yazarı + Orijinal Uygulama + Web sitesi + Bağış Yap + Katkıda Bulunanlar + Çevirmenler + + Küçük resimlerin telifleri hakkında + 1. tüm küçük resimler temsil ettikleri şirket veya kuruluşun telifleri altındadır. + 2. bu resimlerin kullanımı, resmin sahibi şirket veya kuruluşun andOTP tarafından, veya tam tersi yönde reklamı yapıldığı anlamına gelmemektedir. + 3. küçük resimler sadece sahipleri olan şirket veya kuruluşu temsil etmek için kullanılmaktadır. + 4. Lütfen ilgili şirket veya kuruluşu temsil etme amacı dışında herhangi bir amaç için küçük resimleri kullanmayın. + + Geliştiriciyi Destekle + Hataları Bildir + Çeviri + Hataları veya istediğin yeni özellikleri bildir + andOTP\'yi kendi dilinize çevirmede yardımcı olun + Özel Seçenekler + Bu özel içerikleri etkinleştirmek istediğinizden emin misiniz? Çoğu özel istek üzeinde uygulanan standart olmayan OTP algoritmalarıdır. Resmi olarak desteklenmezler ve bazı limitlemelerle beraber gelirler, lütfen daha fazla bilgi sahibi olmak için kullanmadan önce Github wiki\'deki \"Özel içerikler\" sayfasını okuyunuz(ve anlayınız). - Özel içerikler etkinleştirildi - Özel içerikler zaten etkinleştirilmiş - Bağış linki panoya kopyalandı + Özel içerikler etkinleştirildi + Özel içerikler zaten etkinleştirilmiş + Bağış linki panoya kopyalandı diff --git a/app/src/main/res/values-tr-rTR/strings_auth.xml b/app/src/main/res/values-tr-rTR/strings_auth.xml index 50e2ceb3..c31face9 100644 --- a/app/src/main/res/values-tr-rTR/strings_auth.xml +++ b/app/src/main/res/values-tr-rTR/strings_auth.xml @@ -1,19 +1,19 @@ - Kimlik doğrulama - - Şifre - PIN - - andOTP\'yi başlatmak için lütfen kimliğinizi doğrulayın! - Lütfen yeni şifreleme anahtarını oluşturmak için + Kimlik doğrulama + + Şifre + PIN + + andOTP\'yi başlatmak için lütfen kimliğinizi doğrulayın! + Lütfen yeni şifreleme anahtarını oluşturmak için kimlik doğrulamasını onaylayın! - - Kilidi Aç - - Lütfen Ayarlar kısmından bir şifre belirleyin! - Lütfen Ayarlar kısmından bir PIN belirleyin! - Yanlış şifre, lütfen tekrar deneyin! - Yanlış PIN, lütfen tekrar deneyin! + + Kilidi Aç + + Lütfen Ayarlar kısmından bir şifre belirleyin! + Lütfen Ayarlar kısmından bir PIN belirleyin! + Yanlış şifre, lütfen tekrar deneyin! + Yanlış PIN, lütfen tekrar deneyin! diff --git a/app/src/main/res/values-tr-rTR/strings_backup.xml b/app/src/main/res/values-tr-rTR/strings_backup.xml index 494c4f75..c3281501 100644 --- a/app/src/main/res/values-tr-rTR/strings_backup.xml +++ b/app/src/main/res/values-tr-rTR/strings_backup.xml @@ -1,70 +1,75 @@ - Yedekler - Düz metin yedekler - Şifrelenmiş yedekler - OpenPGP yedekleri - Yedekler (düz metin) - Yedekler (şifrelenmiş) - Yedekler (OpenPGP) - Kurtar (düz metin) - Kurtar (şifreli) - Kurtar (OpenPGP) - Mevcut girdiyi değiştir - Tüm hesapları düz metin JSON dosyası olarak yedekle - Tüm hesapları şifre korumalı JSON dosyası olarak yedekle - Tüm hesapları şifreli OpenPGP JSON dosyası olarak yedekle - Hesapları düz metin JSON dosyasından geri yükle - Hesapları şifre korumalı JSON dosyasından geri yükle - Hesapları şifrelendirilmiş OpenPGP JSON dosyasından geri yükle - Ayarlar kısmından yedek parola yüklenemedi. + Yedekler + Düz metin yedekler + Şifrelenmiş yedekler + OpenPGP yedekleri + Yedekler (düz metin) + Yedekler (şifrelenmiş) + Yedekler (OpenPGP) + Kurtar (düz metin) + Kurtar (şifreli) + Kurtar (şifreli, eski tip şifreleme) + Kurtar (OpenPGP) + Mevcut girdiyi değiştir + Tüm hesapları düz metin JSON dosyası olarak yedekle + Tüm hesapları şifre korumalı JSON dosyası olarak yedekle + Tüm hesapları şifreli OpenPGP JSON dosyası olarak yedekle + Hesapları düz metin JSON dosyasından geri yükle + Hesapları şifre korumalı JSON dosyasından geri yükle + Hesapları, andOTP 0.6.3\'ten daha eski bir sürüm kullanılarak +oluşturulmuş ve şifre ile korunmuş JSON dosyasından geri yükle + Hesapları şifrelendirilmiş OpenPGP JSON dosyasından geri yükle + Ayarlar kısmından yedek parola yüklenemedi. Bunun sebebi parolanım tanımlanmamış olması, veya başka bir hata olabilir. Yedeğinizi geri yüklerken sizden bu parola talep edilecek. - Bu özelliği kullanmak istiyorsanız öncelikle bir OpenPGP + Bu özelliği kullanmak istiyorsanız öncelikle bir OpenPGP sağlayıcısı kurmalı, ve de ardından Ayarlar kısmından bu özelliği aktif etmelisiniz. - Yedeklerinizi şifreli biçimde saklamak için öncelikle Ayarlar + Yedeklerinizi şifreli biçimde saklamak için öncelikle Ayarlar kısmından OpenPGP anahtarı seçmelisiniz. - Etkinleştirilirse, yedeklemeyi çekerken tüm eski girdiler değiştirilir ve sadece + Etkinleştirilirse, yedeklemeyi çekerken tüm eski girdiler değiştirilir ve sadece yedek bulundurulur. Devre dışı bırakılırsa eski girdiler ve yedekler birleştirilir. - - Güvenlik uyarısı - Veritabanını + + Güvenlik uyarısı + Veritabanını düz metin Json dosyası olarak dışa aktarmak istiyor musunuz? Bu dosya tüm gizli anahtarlarınızı barındıracak, lütfen iyi saklayınız!! - Yedekleme başarısız - Yedekleme başarılı - Düz metin biçimindeki yedeklemelere şimdilik izin verilmiyor. + Yedekleme başarısız + Yedekleme başarılı + Düz metin biçimindeki yedeklemelere şimdilik izin verilmiyor. Lütfen ayarlar kısmından bu özelliği aktifleştirin - Şifrelenmiş biçimdeki yedeklemelere şimdilik izin verilmiyor. + Şifrelenmiş biçimdeki yedeklemelere şimdilik izin verilmiyor. Lütfen ayarlar kısmından bu özelliği aktifleştirin - Dosya okuma izni alınamadı. Yedek oluşturmadan önce + Dosya okuma izni alınamadı. Yedek oluşturmadan önce lütfen bu iznin tanımlanmış olduğundan emin olun - Dosya yazma izni alınamadı. Yedek oluşturmadan önce + Dosya yazma izni alınamadı. Yedek oluşturmadan önce lütfen bu iznin tanımlanmış olduğundan emin olun - Şifre/PIN temelli şifreli yedekleme, 3. parti, + Şifre/PIN temelli şifreli yedekleme, 3. parti, Tasker gibi ugulamalarla alınmış yedek biçimlerinde desteklenmiyor - - Otomatik yedekleme başarısız - Otomatik yedekleme başarılı - Bu bildirimler otomatik yedekleme bir sebepten dolayı + Yeni şifreleme metodu + andOTP 0.6.3\'ten beri şifre ile korunmuş yedekler için daha yeni bir şifreleme metodu kullanılmakta. Eski yedekleri halen içeri aktarabilirsiniz, lakin yeni şifreleme metodu ile yeni bir yedek oluşturup onu saklamanızı şiddetle öneririz.\n\nBu mesaj bir daha gözükmeyecek. + + Otomatik yedekleme başarısız + Otomatik yedekleme başarılı + Bu bildirimler otomatik yedekleme bir sebepten dolayı başarısız olursa gözükmekte - Bu bildirimler otomatik yedekleme başarılı + Bu bildirimler otomatik yedekleme başarılı olursa gözükmekte - - Yedekleme dizini oluşturulamadı - Harici depoya aktarım başarılı - Harici depoya aktarım başarısız - Harici depodan aktarım başarılı - Kurtarılmış girdiler kaydedilemedi - Yedeğin şifre çözülmesi başarısız oldu - İçe aktarılan veride girdi bulunamadı - Harici depolama şu anda erişilemez durumda - Depolama izni verilmedi - OpenPGP Hatası: %s - Doğrulanmış imza tespit edilemedi - Şifre tanımlanmamış, Ayarlar\'ı kontrol edin + + Yedekleme dizini oluşturulamadı + Harici depoya aktarım başarılı + Harici depoya aktarım başarısız + Harici depodan aktarım başarılı + Kurtarılmış girdiler kaydedilemedi + Yedeğin şifre çözülmesi başarısız oldu + İçe aktarılan veride girdi bulunamadı + Harici depolama şu anda erişilemez durumda + Depolama izni verilmedi + OpenPGP Hatası: %s + Doğrulanmış imza tespit edilemedi + Şifre tanımlanmamış, Ayarlar\'ı kontrol edin diff --git a/app/src/main/res/values-tr-rTR/strings_intro.xml b/app/src/main/res/values-tr-rTR/strings_intro.xml index 5c9b47b8..257e06ef 100644 --- a/app/src/main/res/values-tr-rTR/strings_intro.xml +++ b/app/src/main/res/values-tr-rTR/strings_intro.xml @@ -1,25 +1,25 @@ - Hadi başlayalım - andOTP\'ye hoş geldiniz, bu araç size ilk kurulum aşamasında yardımcı olacak. + Hadi başlayalım + andOTP\'ye hoş geldiniz, bu araç size ilk kurulum aşamasında yardımcı olacak. Lütfen mesajları dikkatlice inceleyin, aksi taktirde veriniz kaybolabilir! \n\nMerak etmeyin, şimdi seçeceğiniz ayarların tümü ilerde Ayarlar kısmından değiştirilebilir. - Hesaplarınızın güvenliği için andOTP onları sadece şifreli verileri olarak saklamakta. + Hesaplarınızın güvenliği için andOTP onları sadece şifreli verileri olarak saklamakta. Buradan hangi yollarla şifreleme yapılacağını seçebilirsiniz. - Keystore, Android\'in kriptografik anahtarları güvenle saklamak için barındırdığı bir bileşendir. Bu alanın avantajı, anahtarların veriden bağımsız bir alanda tutulması ve de bu kısmın eğer cihazınız destekliyorsa kriptografik donanımlar tarafından da desteklenebilmesidir. Bu, anahtarların uygulama alanında barındırılmadığı anlamına geliyor. Bu metod, anahtarlar uygulama alanının dışında saklandığından dolayı, Titanium Backup gibi harici yedekleme çözümlerini bu uygulama için işlevsiz kılar. Eğer bu metodu seçecekseniz, andOTP tarafından sağlanmış dahili yedekleme özelliğini kullanmalısınız. \n\n Dikkat: KeyStore, pek çok kez sorun yaşatmasıyla bilinen bir metod. Bu yolu, mecbur kalmadığınız sürece kullanmamanızı öneririz. andOTP\'yi her başlattığınızda parola/pin kodu girmek işinize geliyorsa KeyStore yerine parola veya pin girmenizi şiddetle öneririz. - Bu metod verinizi parola veya PIN kodundan oluşmuş bir anahtarla şifreleyecek. Bu metodun ana avantajı + Keystore, Android\'in kriptografik anahtarları güvenle saklamak için barındırdığı bir bileşendir. Bu alanın avantajı, anahtarların veriden bağımsız bir alanda tutulması ve de bu kısmın eğer cihazınız destekliyorsa kriptografik donanımlar tarafından da desteklenebilmesidir. Bu, anahtarların uygulama alanında barındırılmadığı anlamına geliyor. Bu metod, anahtarlar uygulama alanının dışında saklandığından dolayı, Titanium Backup gibi harici yedekleme çözümlerini bu uygulama için işlevsiz kılar. Eğer bu metodu seçecekseniz, andOTP tarafından sağlanmış dahili yedekleme özelliğini kullanmalısınız. \n\n Dikkat: KeyStore, pek çok kez sorun yaşatmasıyla bilinen bir metod. Bu yolu, mecbur kalmadığınız sürece kullanmamanızı öneririz. andOTP\'yi her başlattığınızda parola/pin kodu girmek işinize geliyorsa KeyStore yerine parola veya pin girmenizi şiddetle öneririz. + Bu metod verinizi parola veya PIN kodundan oluşmuş bir anahtarla şifreleyecek. Bu metodun ana avantajı bu metodun Titanium gibi harici yedekleme çözümleri ile çalışması, ve de KeyStore gibi çözümlere kıyasla -çok daha az hata riski teşkil etmesidir. Lakin, andOTP\'yi her açtığınızda şifre veya PIN kodunu girmeniz +çok daha az hata riski teşkil etmesidir. Lakin, </b>andOTP</b>\'yi her açtığınızda şifre veya PIN kodunu girmeniz gerekmekte. - Buradan andOTP\'yi kilitlemek için bir kimlik tanımlayabilirsiniz. Hali hazırda Android KeyStore + Buradan andOTP\'yi kilitlemek için bir kimlik tanımlayabilirsiniz. Hali hazırda Android KeyStore seçildiği için bu seçenek isteğe bağlıdır. - Buradan andOTP\'yi kilitlemek için bir kimlik tanımlayabilirsiniz. Hali hazırda Android KeyStore + Buradan andOTP\'yi kilitlemek için bir kimlik tanımlayabilirsiniz. Hali hazırda Android KeyStore seçili olmadığı için bir şifre veya PIN kodu tanımlamalısınız. - Lütfen devam etmek için bir şifre belirleyiniz! - Lütfen devam etmek için PIN belirleyiniz! - Lütfen devam etmek için parolanızı doğrulayın! - Lütfen devam etmek için PIN\'inizi doğrulayın! - Tamamlandı - Ayarlarınız kaydedildi, artık andOTP\'yi kullanmaya hazırsınız! + Lütfen devam etmek için bir şifre belirleyiniz! + Lütfen devam etmek için PIN belirleyiniz! + Lütfen devam etmek için parolanızı doğrulayın! + Lütfen devam etmek için PIN\'inizi doğrulayın! + Tamamlandı + Ayarlarınız kaydedildi, artık andOTP\'yi kullanmaya hazırsınız! diff --git a/app/src/main/res/values-tr-rTR/strings_main.xml b/app/src/main/res/values-tr-rTR/strings_main.xml index b7f6e6df..f12bb035 100644 --- a/app/src/main/res/values-tr-rTR/strings_main.xml +++ b/app/src/main/res/values-tr-rTR/strings_main.xml @@ -1,72 +1,72 @@ - - İptal - Detayları Girin - QR Kodu Tara - Kaydet - Yeni etiket - Ayarlar - Tüm etiketler - Etiket yok - - %d lar(ler) - - Etiket - Gizlenmiş - - Gizli - Tip - Gizlenmiş - Periyot - Haneler - Sayaç - Etiket - Algoritma - Etiketler - Gelişmiş ayarlar - - Etiketleri göster - Etiketleri gizle - - Hakkında - Yedek - Ara - Ayarlar - Sırala - Sıralanmamış - Etiket - Son kullanılan - Etiketi düzenle - Görseli değiştir - Etiketleri düzenle - Kaldır - - Kimlik doğrulama başarısız oldu, lütfen tekrar deneyin! - Kimlik doğrulama başarısız oldu, andOTP kapatılıyor! - Panoya kopyalandı - Bu girdi zaten mevcut - Geçersiz bir QR kodu - Şifreleme anahtarı yüklenmedi - - Kimlik doğrulama - Detayları girin - Kaldır - Yeniden adlandır - Sayaç - Son kullanılan - KeyStore hatası - Şifre girin - Şifre Girin - Şifreyi doğrula - Lütfen andOTP\'yi başlatmak için cihaz kimlik bilgilerinizi girin. - \"%1$s\" Hesabını kaldırmak istiyor musunuz? - AndOTP\'nin en son hangi token\'nın kullanıldığınızı anlaması için \"ortaya çıkarmak için dokunun\" u aktifleştirmelisiniz ya da kopyalama tuşunu kullanın.\n\nBu mesaj tekrar gösterilecek. - Şifreleme anahtarı KeyStore\'dan yüklenemedi. + + İptal + Detayları Girin + QR Kodu Tara + Kaydet + Yeni etiket + Ayarlar + Tüm etiketler + Etiket yok + + %d lar(ler) + + Etiket + Gizlenmiş + + Gizli + Tip + Gizlenmiş + Periyot + Haneler + Sayaç + Etiket + Algoritma + Etiketler + Gelişmiş ayarlar + + Etiketleri göster + Etiketleri gizle + + Hakkında + Yedek + Ara + Ayarlar + Sırala + Sıralanmamış + Etiket + Son kullanılan + Etiketi düzenle + Görseli değiştir + Etiketleri düzenle + Kaldır + + Kimlik doğrulama başarısız oldu, lütfen tekrar deneyin! + Kimlik doğrulama başarısız oldu, andOTP kapatılıyor! + Panoya kopyalandı + Bu girdi zaten mevcut + Geçersiz bir QR kodu + Şifreleme anahtarı yüklenmedi + + Kimlik doğrulama + Detayları girin + Kaldır + Yeniden adlandır + Sayaç + Son kullanılan + KeyStore hatası + Şifre girin + Şifre Girin + Şifreyi doğrula + Lütfen andOTP\'yi başlatmak için cihaz kimlik bilgilerinizi girin. + \"%1$s\" Hesabını kaldırmak istiyor musunuz? + AndOTP\'nin en son hangi token\'nın kullanıldığınızı anlaması için \"ortaya çıkarmak için dokunun\" u aktifleştirmelisiniz ya da kopyalama tuşunu kullanın.\n\nBu mesaj tekrar gösterilecek. + Şifreleme anahtarı KeyStore\'dan yüklenemedi. Eklenen girdiler kaybolacak.\n\nandOTP\'yi kullanmaya devam edebilmek için Ayarlar\'a gidip Veritabanı şifrelemesini Şifre / PIN\'e çevirin. - - QR Kodu Tara - Detayları Girin + + QR Kodu Tara + Detayları Girin diff --git a/app/src/main/res/values-tr-rTR/strings_settings.xml b/app/src/main/res/values-tr-rTR/strings_settings.xml index 1f69cfe9..51564e0f 100644 --- a/app/src/main/res/values-tr-rTR/strings_settings.xml +++ b/app/src/main/res/values-tr-rTR/strings_settings.xml @@ -1,156 +1,156 @@ - Ayarlar - - Güvenlik - Kullanıcı arayüzü - Yedek - - Görüntülemek için dokunun - Görüntülemek için dokunma zaman aşımı - Kimlik Doğrulama - Şifre - PIN - Veritabanı şifreleme - Panik Tetikleyici - Ekran kapandığında yeniden kilitle - Dil - Tema - Etiket yazı tipi boyutu - Kaydırma etiketi - Küçük resim boyutu - Token\'ı boşluk karakteri ile böl - Etiket seçimi davranışı - Dosya adına tarihi ekleme - Dosya adı için sor - Yedekleme dizini - Yedekleme şifresi - Yedek Yayınları (Broadcast) - OpenPGP sağlayıcı - OpenPGP şifreleme anahtarı - OpenPGP imza anahtarı (opsiyonel) - Şifrelenmiş yedekleri onayla - Özel özellikleri etkinleştir - Ekran görüntülerini aktifleştir - Android sync\'i etkinleştir - KeyStore\'u temizle - - Varsayılan olarak OTP tokenlarını gizle, manuel olarak + Ayarlar + + Güvenlik + Kullanıcı arayüzü + Yedek + + Görüntülemek için dokunun + Görüntülemek için dokunma zaman aşımı + Kimlik Doğrulama + Şifre + PIN + Veritabanı şifreleme + Panik Tetikleyici + Ekran kapandığında yeniden kilitle + Dil + Tema + Etiket yazı tipi boyutu + Kaydırma etiketi + Küçük resim boyutu + Token\'ı boşluk karakteri ile böl + Etiket seçimi davranışı + Dosya adına tarihi ekleme + Dosya adı için sor + Yedekleme dizini + Yedekleme şifresi + Yedek Yayınları (Broadcast) + OpenPGP sağlayıcı + OpenPGP şifreleme anahtarı + OpenPGP imza anahtarı (opsiyonel) + Şifrelenmiş yedekleri onayla + Özel özellikleri etkinleştir + Ekran görüntülerini aktifleştir + Android sync\'i etkinleştir + KeyStore\'u temizle + + Varsayılan olarak OTP tokenlarını gizle, manuel olarak açığa çıkarılmalarını gerektirir - Ortaya çıkarılan girdileri tekrar gizlemek için geçecek süreyi (saniye cinsinden) seçin - Panik tetikleyici algılandığında ne yapılacağını seçin - Ekran kapandığında kimlik doğrulama sor - Büyük etiketlerin kırpmak yerine kaydırın - Önerilen yedek adına mevcut tarih ve saati ekleme - Yedek yaratıldığında ya da + Ortaya çıkarılan girdileri tekrar gizlemek için geçecek süreyi (saniye cinsinden) seçin + Panik tetikleyici algılandığında ne yapılacağını seçin + Ekran kapandığında kimlik doğrulama sor + Büyük etiketlerin kırpmak yerine kaydırın + Önerilen yedek adına mevcut tarih ve saati ekleme + Yedek yaratıldığında ya da kurtarıldığında her zaman dosya adı sor - Yedekler için dizin (dosya isimleri + Yedekler için dizin (dosya isimleri yedek türüne bağlı olacak) - Yedekleri şifrelemek için parola ayarların - Hangi yedekleme tiplerinin Broadcast kullanan 3. parti uygulamalar + Yedekleri şifrelemek için parola ayarların + Hangi yedekleme tiplerinin Broadcast kullanan 3. parti uygulamalar ile yedeklenebileceğini seçin - Şifrelemede kullanılacak OpenPGP anahtarının e-posta adresi - Şifrelenmiş yedekler sadece uygun anahtar ile + Şifrelemede kullanılacak OpenPGP anahtarının e-posta adresi + Şifrelenmiş yedekler sadece uygun anahtar ile onaylanırsa içe aktarılır - Özel içerikleri devre dışı bırakmak için onayı kaldırın - Ana ekranın ekran görüntüsü alınmasına izi ver + Özel içerikleri devre dışı bırakmak için onayı kaldırın + Ana ekranın ekran görüntüsü alınmasına izi ver (güvenlik nedenleriyle varsayılan olarak etkin değildir) - andOTP\'nin anahtar ve ayarları yedeklemek için Android\'in dahili yedekleme servisini kullanmasını etkinleştirir - KeyStore\'dan iifreleme anahtarını silin - - Bu özelliği kullanabilmek içim en az Android 5.0 + andOTP\'nin anahtar ve ayarları yedeklemek için Android\'in dahili yedekleme servisini kullanmasını etkinleştirir + KeyStore\'dan iifreleme anahtarını silin + + Bu özelliği kullanabilmek içim en az Android 5.0 (Lollipop) gereklidir - Bu özelliğin + Bu özelliğin kurulabilmesi için güvenli bir kilit ekranı gereklidir. (Ayarlar > Güvenlik > Ekran Kilidi) - Boş bir şifreye izin verilmez, Kimlik Doğrulama özelliğini + Boş bir şifreye izin verilmez, Kimlik Doğrulama özelliğini devre dışı bırakmak için \"Hiçbiri\" olarak ayarlayın! - Veritabanı şifrelemesi değiştirmeye çalışılıyor, + Veritabanı şifrelemesi değiştirmeye çalışılıyor, lütfen bekleyin! - Veritabanı şifrelemesini başarıyla + Veritabanı şifrelemesini başarıyla değiştirildi! - Veritabanı şifrele etkinleştirilemedi, + Veritabanı şifrele etkinleştirilemedi, ilk haline dönülüyor! - Dahili yedekleme oluşturma işlemi + Dahili yedekleme oluşturma işlemi başarısız, durduruluyor! - Şifreleme anahtarı alınamadı, durduruluyor! - Kimlik doğrulama başarısız! - Şifrenizi / PIN\'inizi yeni şifrelemeye sessizce yükseltme başarısız oldu, + Şifreleme anahtarı alınamadı, durduruluyor! + Kimlik doğrulama başarısız! + Şifrenizi / PIN\'inizi yeni şifrelemeye sessizce yükseltme başarısız oldu, lütfen ayarları el ile sıfırlayın! - Uyarı - Hata - KeyStore\'u temizle? - Android sync (Google) - andOTP şimdi veritabanı şifreleme metodunu değiştirmeye çalışacak. Olası bir hata karşısında + Uyarı + Hata + KeyStore\'u temizle? + Android sync (Google) + andOTP şimdi veritabanı şifreleme metodunu değiştirmeye çalışacak. Olası bir hata karşısında dahili yedeklerden biri geri yüklenecek ve de şifreleme metodu değiştirimeyecek.\n\nLakin, beklenmedik durumlar karşısında her zaman bir yedek barındırmak iyi bir alışkanlık! - Veritabanı şifrelemesi \"Şifre / PIN\" olarak ayarlandığı sürece + Veritabanı şifrelemesi \"Şifre / PIN\" olarak ayarlandığı sürece yalnızca Şifre veya PIN\'i kullanabilirsiniz! - Önce Kimlik Doğrulama\'yı + Önce Kimlik Doğrulama\'yı \"Şifre\" veya \"PIN\" olarak ayarlamanız gerek! - Şifrelemeyi değiştirmeden önce + Şifrelemeyi değiştirmeden önce bir Şifre veya PIN ayarlamanız gerek! - Bazı durumlarda KeyStore\'u temizlemek + Bazı durumlarda KeyStore\'u temizlemek sorunu çözebilir. Bunu yanlızca ne yaptığınızı biliyorsanız yapmalısınız!\n\nVeritabanı şifrelemesi Şifre / PIN olarak ayarlandığından bunu yaparken herhangi bir veri kaybetmemelisiniz(ancak yine de bir yedekleme yapmak iyi olur).\n\nGerçekten KeyStore\'u temizlemek istediğinizden emin misiniz? - Bazı durumlarda KeyStore\'u temizlemek + Bazı durumlarda KeyStore\'u temizlemek sorunu çözebilir. Bunu yanlızca ne yaptığınızı biliyorsanız yapmalısınız!\n \nUyarı: Veritabanı şifrelemesi Android KeyStore olarak ayarlandığından tüm hesaplarını kaybedeceksin. Yedek aldığınızdan emin olunuz!\n\nGerçekten KeyStore\'u temizlemek istediğine emin misin? - Android Sync özelliği KeyStore şifrelemesi ile kullanılamaz, + Android Sync özelliği KeyStore şifrelemesi ile kullanılamaz, Manuel yedekleme yapmanız gerekmekte! - - - Hiçbiri - Şifre - PIN - Alet kimlik bilgileri - - - Android KeyStore - Şifre / PIN - - - Tüm hesapları sil - Uygulama ayarlarını sıfırla - - - Aydınlık tema - Koyu tema - Siyah tema - - - Gizli - Küçük - Varsayılan - Orta - Büyük - - - Bölünmesin - İki karakterden sonra - Üç karakterden sonra - - - Seçili etkiketlerin herhangi biri ile eşleşen tüm girdileri göster (veya) - Seçili etkiketlerin tümü ile eşleşen girdileri göster (ve) - Etiketler arası geçiş (tek seferde sadece bir etiket seçilebilir) - - - Düz metin yedekler - Şifrelenmiş yedekler - - - Sistem varsayılanı - - Yeni bir şifre gir - Yeni PIN giriniz - Şifreyi doğrula - PIN\'i doğrula - Parola en az %1$d karakter olmalıdır! - PIN en az %1$d uzunluğunda olmalıdır! + + + Hiçbiri + Şifre + PIN + Alet kimlik bilgileri + + + Android KeyStore + Şifre / PIN + + + Tüm hesapları sil + Uygulama ayarlarını sıfırla + + + Aydınlık tema + Koyu tema + Siyah tema + + + Gizli + Küçük + Varsayılan + Orta + Büyük + + + Bölünmesin + İki karakterden sonra + Üç karakterden sonra + + + Seçili etkiketlerin herhangi biri ile eşleşen tüm girdileri göster (veya) + Seçili etkiketlerin tümü ile eşleşen girdileri göster (ve) + Etiketler arası geçiş (tek seferde sadece bir etiket seçilebilir) + + + Düz metin yedekler + Şifrelenmiş yedekler + + + Sistem varsayılanı + + Yeni bir şifre gir + Yeni PIN giriniz + Şifreyi doğrula + PIN\'i doğrula + Parola en az %1$d karakter olmalıdır! + PIN en az %1$d uzunluğunda olmalıdır! diff --git a/app/src/main/res/values-uk-rUA/strings_about.xml b/app/src/main/res/values-uk-rUA/strings_about.xml index a07d5a8f..539e002c 100644 --- a/app/src/main/res/values-uk-rUA/strings_about.xml +++ b/app/src/main/res/values-uk-rUA/strings_about.xml @@ -18,8 +18,7 @@ Автор оригінального додатку Оригінальний додаток Сайт - Фінансово посприяти розробці (PayPal) - Фінансово сприяти розробці (Bitcoin) + Фінансово посприяти розробці Автори Перекладачі diff --git a/app/src/main/res/values-uk-rUA/strings_backup.xml b/app/src/main/res/values-uk-rUA/strings_backup.xml index 64e460c8..c8e4151d 100644 --- a/app/src/main/res/values-uk-rUA/strings_backup.xml +++ b/app/src/main/res/values-uk-rUA/strings_backup.xml @@ -10,6 +10,7 @@ Резервне копіювання (OpenPGP) Відновлення (текстові дані) Відновлення (зашифровані дані) + Restore (encrypted, old encryption) Відновлення (OpenPGP) Замінити існуючі дані Створити резервну копію усіх облікових записів у текстовому JSON файлі @@ -17,6 +18,8 @@ Створити резервну копію усіх облікових записів у зашифрованому OpenPGP JSON файлі Відновити облікові записи з текстового JSON файлу Відновити облікові записи з захищеного паролем JSON файлу + Restore accounts from a password-protected JSON file + created with an andOTP version lower than 0.6.3 Відновити облікові записи з зашифрованого за допомогою OpenPGP JSON файлу Завантаження паролю резервної копії з Налаштувань завершилося невдало, це означає, що або пароль не було встановлено, або щось пішло не так. Вам буде запропоновано ввести @@ -39,6 +42,11 @@ Дозволу на читання не надано, будь ласка, надайте доступ на читання перед тим, як почнете створення резервної копії Дозволу на запис не надано, будь ласка, надайте доступ на запис перед тим, як почнете створення резервної копії Створення резервних копії на основі шифрування за допомогою паролю/PIN-коду не підтримується сторонніми додатками + New encryption method + Since version 0.6.3 of andOTP, a new and improved + encryption method is used for password-protected backups. The old backups can still be + imported, but it is highly recommended to create new backups with the improved + encryption.\n\nThis message will not be shown again. Автоматичне резервне копіювання завершилося невдало Автоматичне резервне копіювання завершилося успішно diff --git a/app/src/main/res/values-zh-rCN/strings_about.xml b/app/src/main/res/values-zh-rCN/strings_about.xml index 5b86f1b2..553158d6 100644 --- a/app/src/main/res/values-zh-rCN/strings_about.xml +++ b/app/src/main/res/values-zh-rCN/strings_about.xml @@ -18,8 +18,7 @@ 原应用作者 原应用 网站 - 捐款 (PayPal) - 捐款 (Bitcoin) + 捐赠 贡献者 译者 diff --git a/app/src/main/res/values-zh-rCN/strings_backup.xml b/app/src/main/res/values-zh-rCN/strings_backup.xml index da4fff6f..f604fdd1 100644 --- a/app/src/main/res/values-zh-rCN/strings_backup.xml +++ b/app/src/main/res/values-zh-rCN/strings_backup.xml @@ -10,6 +10,7 @@ 备份 (OpenPGP) 还原 (纯文本) 还原 (已加密) + 恢复 (加密的,旧加密) 还原 (OpenPGP) 替换现有条目 备份所有帐户到一个纯文本 JSON 文件。 @@ -17,6 +18,8 @@ 备份所有帐户到一个 OpenPGP 加密的 JSON 文件。 从纯文本 JSON 文件还原帐户 从受密码保护的 JSON 文件还原帐户 + 从密码保护的 JSON 文件恢复账户 + (适用于早于 andOTP 0.6.3 版本 所创建的备份) 从 OpenPGP 加密的 JSON 文件还原帐户 未能从 设置 中加载备份密码,这可能是您没有设置密码,或者某处发生错误。在创建或导入备份时,系统将要求您手动输入密码。 您需要安装 OpenPGP 提供程序,并在 设置 中启用,才能使用此功能。 @@ -32,6 +35,8 @@ 没有读取权限,请在执行备份前授予。 没有写入权限,请在执行备份前授予。 广播备份不支持基于 密码/PIN 的加密 + 新加密方法 + 自 andOTP 0.6.3 版本开始,我们对密码保护的备份采用新的改进型加密方法。旧的备份仍可导入,但我们强烈推荐使用改进后的加密方法创建新的备份。\n\n此消息只显示一次。 自动备份失败 自动备份成功 diff --git a/app/src/main/res/values-zh-rTW/strings_about.xml b/app/src/main/res/values-zh-rTW/strings_about.xml index 27dcf167..14970c0e 100644 --- a/app/src/main/res/values-zh-rTW/strings_about.xml +++ b/app/src/main/res/values-zh-rTW/strings_about.xml @@ -18,8 +18,7 @@ 原始應用程式的作者 原始應用程式 網站 - 捐贈(PayPal) - 捐贈(Bitcoin) + 捐獻 貢獻者 譯者 diff --git a/app/src/main/res/values-zh-rTW/strings_backup.xml b/app/src/main/res/values-zh-rTW/strings_backup.xml index bde344dc..9039cd18 100644 --- a/app/src/main/res/values-zh-rTW/strings_backup.xml +++ b/app/src/main/res/values-zh-rTW/strings_backup.xml @@ -10,6 +10,7 @@ 備份(OpenPGP) 還原(明碼) 還原(加密) + 還原 (已加密,舊的加密方式) 還原(OpenPGP) 取代現有的條目 備份所有帳戶為明碼 JSON 檔 @@ -17,6 +18,7 @@ 備份所有帳戶為 OpenPGP 加密的 JSON 檔 從明碼 JSON 檔中還原帳戶 從密碼 JSON 檔中還原帳戶 + 從以版本低於0.6.3的andOTP所創建之密碼保護的JSON檔案中還原帳戶 從 OpenPGP 加密的 JSON 檔中還原帳戶 使用 設定 中的密碼載入備份時失敗, 這可能是因為沒有設定密碼或者是密碼錯誤造成的。 當您在建立或匯入備份時 @@ -36,6 +38,10 @@ 讀取被拒絕,請在備份前允許此權限 寫入被拒絕,請在備份前允許此權限 透過外部程式執行自動備份時,不支援基於 密碼 / PIN 的加密方式 + 新加密方法 + andOTP自0.6.3版開始,全新和改進了的加密方式是用於密碼保護的備份。 + 舊備份的仍然可以導入,但是我們強烈建議你使用改進了的加密方式來創建新的備份。 + \n\n此消息將不再顯示。 自動備份失敗 自動備份成功 diff --git a/app/src/main/res/values-zh-rTW/strings_main.xml b/app/src/main/res/values-zh-rTW/strings_main.xml index b563cfb5..1595b22b 100644 --- a/app/src/main/res/values-zh-rTW/strings_main.xml +++ b/app/src/main/res/values-zh-rTW/strings_main.xml @@ -4,7 +4,7 @@ 取消 鍵入詳細資訊 - 掃描 QR code + 掃描 QR-Code 儲存 新標籤 設定 diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index ee21c34f..2c0fe721 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -93,6 +93,7 @@ es_ES fr_FR gl_ES + hu_HU it_IT nl_NL pl_PL @@ -149,6 +150,7 @@ Español Français Galego + Magyar Italiano Nederlands Polski From 583f13dc745fba57cadb6bba08b70d8342813fe6 Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Sun, 6 Oct 2019 13:09:32 +0200 Subject: [PATCH 10/61] Force usage of English locales to save the auth method --- .../flocke/andotp/Preferences/CredentialsPreference.java | 7 ++++--- .../org/shadowice/flocke/andotp/Utilities/Settings.java | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Preferences/CredentialsPreference.java b/app/src/main/java/org/shadowice/flocke/andotp/Preferences/CredentialsPreference.java index 0b61bc44..e856b444 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Preferences/CredentialsPreference.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Preferences/CredentialsPreference.java @@ -50,6 +50,7 @@ import org.shadowice.flocke.andotp.Utilities.UIHelper; import java.util.Arrays; import java.util.List; +import java.util.Locale; import static android.content.Context.KEYGUARD_SERVICE; import static org.shadowice.flocke.andotp.Utilities.Constants.AuthMethod; @@ -145,11 +146,11 @@ public class CredentialsPreference extends DialogPreference @Override protected void onSetInitialValue(boolean restorePersistedValue, Object defaultValue) { if (restorePersistedValue) { - String stringValue = getPersistedString(DEFAULT_VALUE.name().toLowerCase()); - value = AuthMethod.valueOf(stringValue.toUpperCase()); + String stringValue = getPersistedString(DEFAULT_VALUE.name().toLowerCase(Locale.ENGLISH)); + value = AuthMethod.valueOf(stringValue.toUpperCase(Locale.ENGLISH)); } else { value = DEFAULT_VALUE; - persistString(value.name().toLowerCase()); + persistString(value.name().toLowerCase(Locale.ENGLISH)); } setSummary(entries.get(entryValues.indexOf(value))); diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java index 5f767c76..b5ca455a 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java @@ -216,12 +216,12 @@ public class Settings { } public AuthMethod getAuthMethod() { - String authString = getString(R.string.settings_key_auth, CredentialsPreference.DEFAULT_VALUE.name().toLowerCase()); - return AuthMethod.valueOf(authString.toUpperCase()); + String authString = getString(R.string.settings_key_auth, CredentialsPreference.DEFAULT_VALUE.name().toLowerCase(Locale.ENGLISH)); + return AuthMethod.valueOf(authString.toUpperCase(Locale.ENGLISH)); } public void setAuthMethod(AuthMethod authMethod) { - setString(R.string.settings_key_auth, authMethod.name().toLowerCase()); + setString(R.string.settings_key_auth, authMethod.name().toLowerCase(Locale.ENGLISH)); } public void removeAuthPasswordHash() { From 9bc3f20a6236292a6e802c7913826832c0c5ad73 Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Sun, 6 Oct 2019 12:33:52 +0200 Subject: [PATCH 11/61] Bump to version 0.6.3 --- CHANGELOG.md | 2 ++ README.md | 2 +- app/build.gradle | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a69812b..a2e6949c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,10 @@ * Bug fix: Always use arabic numerals for the tokens (Issue #359) * Bug fix: Refactor storage access code to allow importing and exporting from cloud storage directly * Bug fix: Hardcode the black background color to avoid strange behaviour on some custom ROMs + * Bug fix: Force English locales for saving AuthMethod * Misc: Update donation links (PR #351) * Thumbnails: Lots of new thumbnails + * Translations: Hungarian #### v0.6.2 diff --git a/README.md b/README.md index 09f2ce96..ecd0713a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # andOTP - Android OTP Authenticator [![Build Status](https://travis-ci.org/andOTP/andOTP.svg?branch=master)](https://travis-ci.org/andOTP/andOTP) -[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.6.3-beta1/andOTP_v0.6.3-beta1.apk) +[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.6.3/andOTP_v0.6.3.apk) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/andotp/localized.svg)](https://crowdin.com/project/andotp) [![Chat - Telegram](https://img.shields.io/badge/chat-Telegram-blue.svg)](https://t.me/andOTP) [![Chat - Matrix](https://img.shields.io/badge/chat-Matrix-blue.svg)](https://matrix.to/#/#andOTP:privacytools.io) diff --git a/app/build.gradle b/app/build.gradle index 0596ad1c..faa834a7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.shadowice.flocke.andotp" minSdkVersion 19 targetSdkVersion 28 - versionCode 24 - versionName "0.6.3-beta1" + versionCode 25 + versionName "0.6.3" vectorDrawables.useSupportLibrary = true } buildTypes { From be994a0093d470dea1341b1c8a86d1cc6ea10252 Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Fri, 11 Oct 2019 17:19:49 +0200 Subject: [PATCH 12/61] Introduce build flavors * "fdroid": Shows donate options in the About activity * "play": Doesn't show donate options (yet) --- app/build.gradle | 9 ++++ .../andotp/Fragments/AboutFragment.java | 54 +++++++++++++++++++ .../fdroid/res/layout/part_author_extra.xml | 10 ++++ ...utFragment.java => BaseAboutFragment.java} | 29 +--------- app/src/main/res/layout/fragment_about.xml | 22 +------- .../andotp/Fragments/AboutFragment.java | 5 ++ 6 files changed, 81 insertions(+), 48 deletions(-) create mode 100644 app/src/fdroid/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java create mode 100644 app/src/fdroid/res/layout/part_author_extra.xml rename app/src/main/java/org/shadowice/flocke/andotp/Fragments/{AboutFragment.java => BaseAboutFragment.java} (89%) create mode 100644 app/src/play/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java diff --git a/app/build.gradle b/app/build.gradle index faa834a7..ac69c782 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,15 @@ android { dataBinding { enabled = true } + flavorDimensions 'market' + productFlavors { + fdroid { + dimension = 'market' + } + play { + dimension = 'market' + } + } } dependencies { diff --git a/app/src/fdroid/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java b/app/src/fdroid/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java new file mode 100644 index 00000000..213a60bc --- /dev/null +++ b/app/src/fdroid/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java @@ -0,0 +1,54 @@ +package org.shadowice.flocke.andotp.Fragments; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; + +import org.shadowice.flocke.andotp.R; + +public class AboutFragment extends BaseAboutFragment { + private static final String ABOUT_AUTHOR1_EXTRA_LINK = "https://flocke.shadowice.org/donate.html"; + private static final String ABOUT_AUTHOR2_EXTRA_LINK = "https://richyhbm.co.uk/donate"; + + @Override + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = super.onCreateView(inflater, container, savedInstanceState); + + LinearLayout author1Content = v.findViewById(R.id.aboutLayoutAuthor1Content); + LinearLayout author2Content = v.findViewById(R.id.aboutLayoutAuthor2Content); + + View extra1 = inflater.inflate(R.layout.part_author_extra, null); + View extra2 = inflater.inflate(R.layout.part_author_extra, null); + + extra1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + try { + openURI(ABOUT_AUTHOR1_EXTRA_LINK); + } catch (Exception ignored) { + copyToClipboard(ABOUT_AUTHOR1_EXTRA_LINK); + } + } + }); + + extra2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + try { + openURI(ABOUT_AUTHOR2_EXTRA_LINK); + } catch (Exception ignored) { + copyToClipboard(ABOUT_AUTHOR2_EXTRA_LINK); + } + } + }); + + author1Content.addView(extra1); + author2Content.addView(extra2); + + return v; + } +} diff --git a/app/src/fdroid/res/layout/part_author_extra.xml b/app/src/fdroid/res/layout/part_author_extra.xml new file mode 100644 index 00000000..4442bc9c --- /dev/null +++ b/app/src/fdroid/res/layout/part_author_extra.xml @@ -0,0 +1,10 @@ + + \ No newline at end of file diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java b/app/src/main/java/org/shadowice/flocke/andotp/Fragments/BaseAboutFragment.java similarity index 89% rename from app/src/main/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java rename to app/src/main/java/org/shadowice/flocke/andotp/Fragments/BaseAboutFragment.java index f733d33a..2fd3d483 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Fragments/BaseAboutFragment.java @@ -25,16 +25,13 @@ import org.shadowice.flocke.andotp.R; import org.shadowice.flocke.andotp.Utilities.Settings; import org.shadowice.flocke.andotp.Utilities.Tools; -public class AboutFragment extends Fragment { +public class BaseAboutFragment extends Fragment { private static final String GITHUB_URI = "https://github.com/andOTP/andOTP"; private static final String CHANGELOG_URI = GITHUB_URI + "/blob/master/CHANGELOG.md"; private static final String MIT_URI = GITHUB_URI + "/blob/master/LICENSE.txt"; private static final String AUTHOR1_GITHUB = "https://github.com/flocke"; - private static final String AUTHOR1_EXTRA = "https://flocke.shadowice.org/donate.html"; - private static final String AUTHOR2_GITHUB = "https://github.com/richyhbm"; - private static final String AUTHOR2_EXTRA = "https://richyhbm.co.uk/donate"; private static final String AUTHOR_ORIGINAL_GITHUB = "https://github.com/0xbb"; private static final String AUTHOR_ORIGINAL_EXTRA = AUTHOR_ORIGINAL_GITHUB + "/otp-authenticator"; @@ -138,43 +135,20 @@ public class AboutFragment extends Fragment { }); LinearLayout author1Layout = v.findViewById(R.id.aboutLayoutAuthor1); - TextView author1Donate = v.findViewById(R.id.about_author1_extra); author1Layout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { openURI(AUTHOR1_GITHUB); } }); - author1Donate.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - try { - openURI(AUTHOR1_EXTRA); - } catch(Exception ignored) { - copyToClipboard(AUTHOR1_EXTRA); - } - } - }); - LinearLayout author2Layout = v.findViewById(R.id.aboutLayoutAuthor2); - TextView author2Donate = v.findViewById(R.id.about_author2_extra); author2Layout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { openURI(AUTHOR2_GITHUB); } }); - author2Donate.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - try { - openURI(AUTHOR2_EXTRA); - } catch(Exception ignored) { - copyToClipboard(AUTHOR2_EXTRA); - } - } - }); LinearLayout authorOrigialLayout = v.findViewById(R.id.aboutLayoutOriginalAuthor); TextView authorOriginalApp = v.findViewById(R.id.about_author_original_extra); @@ -259,5 +233,4 @@ public class AboutFragment extends Fragment { clipboard.setPrimaryClip(clip); Toast.makeText(getActivity(), getString(R.string.about_toast_copied_to_clipboard), Toast.LENGTH_SHORT).show(); } - } diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 54c65626..a1df7d28 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -249,6 +249,7 @@ android:src="@mipmap/ic_author_flocke" /> - - @@ -306,6 +297,7 @@ app:srcCompat="@drawable/ic_account_circle_gray" /> - - diff --git a/app/src/play/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java b/app/src/play/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java new file mode 100644 index 00000000..e3c148c8 --- /dev/null +++ b/app/src/play/java/org/shadowice/flocke/andotp/Fragments/AboutFragment.java @@ -0,0 +1,5 @@ +package org.shadowice.flocke.andotp.Fragments; + +public class AboutFragment extends BaseAboutFragment { + // Nothing here yet, maybe Google Play Billing will be added here as donation option in the future +} From 70a7adcfc849ee3d20a1d4d09931e82014c9fc42 Mon Sep 17 00:00:00 2001 From: RichyHBM Date: Sat, 12 Oct 2019 11:45:31 +0100 Subject: [PATCH 13/61] Create an encrypted backup when ever a new entry is added, if the following conditions are met: Have write permissions, Using date appended filenames, Not requesting the user for the backup name, Have valid backup directory, Have set an encrypted backup password --- .../andotp/Activities/BackupActivity.java | 24 +------ .../flocke/andotp/Utilities/BackupHelper.java | 64 +++++++++++++++++++ .../flocke/andotp/Utilities/Constants.java | 2 +- .../andotp/View/EntriesCardAdapter.java | 18 ++++++ 4 files changed, 84 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java index 1e0a4b8b..bb3cb21b 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java @@ -528,30 +528,8 @@ public class BackupActivity extends BaseActivity { private void doBackupCryptWithPassword(Uri uri, String password) { if (Tools.isExternalStorageWritable()) { - ArrayList entries = DatabaseHelper.loadDatabase(this, encryptionKey); - String plain = DatabaseHelper.entriesToString(entries); - boolean success = true; - - try { - int iter = EncryptionHelper.generateRandomIterations(); - byte[] salt = EncryptionHelper.generateRandom(Constants.ENCRYPTION_IV_LENGTH); - - SecretKey key = EncryptionHelper.generateSymmetricKeyPBKDF2(password, iter, salt); - byte[] encrypted = EncryptionHelper.encrypt(key, plain.getBytes(StandardCharsets.UTF_8)); - - byte[] iterBytes = ByteBuffer.allocate(Constants.INT_LENGTH).putInt(iter).array(); - byte[] data = new byte[Constants.INT_LENGTH + Constants.ENCRYPTION_IV_LENGTH + encrypted.length]; - - System.arraycopy(iterBytes, 0, data, 0, Constants.INT_LENGTH); - System.arraycopy(salt, 0, data, Constants.INT_LENGTH, Constants.ENCRYPTION_IV_LENGTH); - System.arraycopy(encrypted, 0, data, Constants.INT_LENGTH + Constants.ENCRYPTION_IV_LENGTH, encrypted.length); - - StorageAccessHelper.saveFile(this, uri, data); - } catch (Exception e) { - e.printStackTrace(); - success = false; - } + boolean success = BackupHelper.backupToFile(this, uri, password, encryptionKey); if (success) { Toast.makeText(this, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show(); diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/BackupHelper.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/BackupHelper.java index f288fb36..b3dc4064 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/BackupHelper.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/BackupHelper.java @@ -1,6 +1,21 @@ package org.shadowice.flocke.andotp.Utilities; +import android.Manifest; import android.content.Context; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.support.v4.content.ContextCompat; +import android.text.TextUtils; +import android.widget.Toast; + +import org.shadowice.flocke.andotp.Database.Entry; +import org.shadowice.flocke.andotp.R; + +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; + +import javax.crypto.SecretKey; public class BackupHelper { public static String backupFilename(Context context, Constants.BackupType type) { @@ -28,4 +43,53 @@ public class BackupHelper { return Constants.BACKUP_FILENAME_PLAIN; } + + public static Constants.BackupType autoBackupType(Context context) { + Settings settings = new Settings(context); + if(ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + return Constants.BackupType.UNAVAILABLE; + } + + if(!settings.getIsAppendingDateTimeToBackups() || settings.getBackupAsk()) { + return Constants.BackupType.UNAVAILABLE; + } + + if(!Tools.mkdir(settings.getBackupDir())) { + return Constants.BackupType.UNAVAILABLE; + } + + if (!settings.getBackupPasswordEnc().isEmpty()) { + return Constants.BackupType.ENCRYPTED; + } + + return Constants.BackupType.UNAVAILABLE; + } + + public static boolean backupToFile(Context context, Uri uri, String password, SecretKey encryptionKey) + { + ArrayList entries = DatabaseHelper.loadDatabase(context, encryptionKey); + String plain = DatabaseHelper.entriesToString(entries); + + try { + int iter = EncryptionHelper.generateRandomIterations(); + byte[] salt = EncryptionHelper.generateRandom(Constants.ENCRYPTION_IV_LENGTH); + + SecretKey key = EncryptionHelper.generateSymmetricKeyPBKDF2(password, iter, salt); + byte[] encrypted = EncryptionHelper.encrypt(key, plain.getBytes(StandardCharsets.UTF_8)); + + byte[] iterBytes = ByteBuffer.allocate(Constants.INT_LENGTH).putInt(iter).array(); + byte[] data = new byte[Constants.INT_LENGTH + Constants.ENCRYPTION_IV_LENGTH + encrypted.length]; + + System.arraycopy(iterBytes, 0, data, 0, Constants.INT_LENGTH); + System.arraycopy(salt, 0, data, Constants.INT_LENGTH, Constants.ENCRYPTION_IV_LENGTH); + System.arraycopy(encrypted, 0, data, Constants.INT_LENGTH + Constants.ENCRYPTION_IV_LENGTH, encrypted.length); + + StorageAccessHelper.saveFile(context, uri, data); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + return true; + } } diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java index 379d9432..e74c5c3e 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java @@ -41,7 +41,7 @@ public class Constants { } public enum BackupType { - PLAIN_TEXT, ENCRYPTED, OPEN_PGP + PLAIN_TEXT, ENCRYPTED, OPEN_PGP, UNAVAILABLE } public enum TagFunctionality { diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 3e6ccc1a..bd01c879 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -27,6 +27,7 @@ import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.DialogInterface; +import android.net.Uri; import android.os.Handler; import android.support.annotation.NonNull; import android.support.v7.widget.PopupMenu; @@ -50,8 +51,10 @@ import android.widget.Toast; import org.shadowice.flocke.andotp.Database.Entry; import org.shadowice.flocke.andotp.R; +import org.shadowice.flocke.andotp.Utilities.BackupHelper; import org.shadowice.flocke.andotp.Utilities.Constants; import org.shadowice.flocke.andotp.Utilities.DatabaseHelper; +import org.shadowice.flocke.andotp.Utilities.EncryptionHelper; import org.shadowice.flocke.andotp.Utilities.EntryThumbnail; import org.shadowice.flocke.andotp.Utilities.Settings; import org.shadowice.flocke.andotp.Utilities.Tools; @@ -133,6 +136,21 @@ public class EntriesCardAdapter extends RecyclerView.Adapter public void saveEntries() { DatabaseHelper.saveDatabase(context, entries, encryptionKey); + + Constants.BackupType backupType = BackupHelper.autoBackupType(context); + if(backupType == Constants.BackupType.ENCRYPTED){ + Uri backupFilename = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED)); + + byte[] keyMaterial = encryptionKey.getEncoded(); + SecretKey encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial); + + boolean success = BackupHelper.backupToFile(context, backupFilename, settings.getBackupPasswordEnc(), encryptionKey); + if (success) { + Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show(); + } + } } public void loadEntries() { From 7c34318c407c4677d3afdf27bdeb998244759720 Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Sat, 19 Oct 2019 09:55:58 +0200 Subject: [PATCH 14/61] Bump to version 0.6.3.1 --- CHANGELOG.md | 6 ++++++ README.md | 2 +- app/build.gradle | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2e6949c..dc745ee1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +#### v0.6.3.1 + + * Introduce build flavors: + - fdroid: Shows donation links in the About section + - play: Doesn't show donation links in the About section + #### v0.6.3 * Security: Improved password derivation for the password protected backups diff --git a/README.md b/README.md index ecd0713a..9431fc87 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # andOTP - Android OTP Authenticator [![Build Status](https://travis-ci.org/andOTP/andOTP.svg?branch=master)](https://travis-ci.org/andOTP/andOTP) -[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.6.3/andOTP_v0.6.3.apk) +[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.6.3.1/andOTP_v0.6.3.1.apk) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/andotp/localized.svg)](https://crowdin.com/project/andotp) [![Chat - Telegram](https://img.shields.io/badge/chat-Telegram-blue.svg)](https://t.me/andOTP) [![Chat - Matrix](https://img.shields.io/badge/chat-Matrix-blue.svg)](https://matrix.to/#/#andOTP:privacytools.io) diff --git a/app/build.gradle b/app/build.gradle index ac69c782..e11831c0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.shadowice.flocke.andotp" minSdkVersion 19 targetSdkVersion 28 - versionCode 25 - versionName "0.6.3" + versionCode 26 + versionName "0.6.3.1" vectorDrawables.useSupportLibrary = true } buildTypes { @@ -36,6 +36,7 @@ android { } play { dimension = 'market' + versionNameSuffix = "-play" } } } From debd6afbc53e46a7e98dfcbe7a9bebc15e531589 Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Sun, 20 Oct 2019 14:44:17 +0200 Subject: [PATCH 15/61] Add setting to specify which values should be searched Closes #327 --- .../andotp/Activities/MainActivity.java | 2 ++ .../flocke/andotp/Utilities/Settings.java | 4 ++++ .../andotp/View/EntriesCardAdapter.java | 21 ++++++++++++++++++- app/src/main/res/values/settings.xml | 11 ++++++++++ app/src/main/res/values/strings_settings.xml | 9 +++++++- app/src/main/res/xml/preferences.xml | 8 +++++++ 6 files changed, 53 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java index b7de7cd9..5ed6fbf6 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java @@ -351,6 +351,8 @@ public class MainActivity extends BaseActivity key.equals(getString(R.string.settings_key_split_group_size)) || key.equals(getString(R.string.settings_key_thumbnail_size))) { adapter.notifyDataSetChanged(); + } else if (key.equals(getString(R.string.settings_key_search_values))) { + adapter.clearFilter(); } else if (key.equals(getString(R.string.settings_key_tap_to_reveal)) || key.equals(getString(R.string.settings_key_theme)) || key.equals(getString(R.string.settings_key_locale)) || diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java index b5ca455a..61562373 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java @@ -379,6 +379,10 @@ public class Settings { setString(R.string.settings_key_sort_mode, value.toString()); } + public Set getSearchValues() { + return settings.getStringSet(getResString(R.string.settings_key_search_values), new HashSet<>(Arrays.asList(context.getResources().getStringArray(R.array.settings_defaults_search)))); + } + public boolean getBackupAsk() { return getBoolean(R.string.settings_key_backup_ask, true); } diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 37cb6e33..93236856 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -65,6 +65,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Set; import java.util.concurrent.Callable; import javax.crypto.SecretKey; @@ -697,6 +698,11 @@ public class EntriesCardAdapter extends RecyclerView.Adapter return filter; } + public void clearFilter() { + if (filter != null) + filter = null; + } + public List getTags() { HashSet tags = new HashSet(); @@ -708,15 +714,28 @@ public class EntriesCardAdapter extends RecyclerView.Adapter } public class EntryFilter extends Filter { + private Set filterValues = settings.getSearchValues(); + @Override protected FilterResults performFiltering(CharSequence constraint) { + final FilterResults filterResults = new FilterResults(); ArrayList filtered = new ArrayList<>(); if (constraint != null && constraint.length() != 0){ for (int i = 0; i < entries.size(); i++) { - if (entries.get(i).getLabel().toLowerCase().contains(constraint.toString().toLowerCase())) { + if (filterValues.contains("label") && entries.get(i).getLabel().toLowerCase().contains(constraint.toString().toLowerCase())) { filtered.add(entries.get(i)); + } else if (filterValues.contains("issuer") && entries.get(i).getIssuer().toLowerCase().contains(constraint.toString().toLowerCase())) { + filtered.add(entries.get(i)); + } else if (filterValues.contains("tags")) { + List tags = entries.get(i).getTags(); + for (int j = 0; j < tags.size(); j++) { + if (tags.get(j).toLowerCase().contains(constraint.toString().toLowerCase())) { + filtered.add(entries.get(i)); + break; + } + } } } } else { diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index 2c0fe721..7217682d 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -25,6 +25,7 @@ pref_thumbnail_size pref_split_group_size pref_tag_functionality + pref_search_includes pref_backup_append_date_time pref_backup_ask @@ -61,6 +62,10 @@ 3 or + + labels + issuer + @@ -85,6 +90,12 @@ settings + + label + issuer + tags + + system ca_ES diff --git a/app/src/main/res/values/strings_settings.xml b/app/src/main/res/values/strings_settings.xml index 8809a0bb..dd340727 100644 --- a/app/src/main/res/values/strings_settings.xml +++ b/app/src/main/res/values/strings_settings.xml @@ -24,6 +24,7 @@ Thumbnail size Split Token with space Tag selection behavior + Search values Append date to filename Ask for filename @@ -50,7 +51,7 @@ has been turned off Scroll overlong labels instead of truncating them - + Define which values should be included in the search Append the current date and time to the suggested backup filename @@ -147,6 +148,12 @@ Reset app settings + + Label + Issuer + Tags + + Light theme Dark theme diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 363b52e1..87f79542 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -105,6 +105,14 @@ android:entryValues="@array/settings_values_tag_functionality" android:defaultValue="@string/settings_default_tag_functionality" /> + + Date: Sun, 20 Oct 2019 14:49:20 +0200 Subject: [PATCH 16/61] Hide label if empty --- .../shadowice/flocke/andotp/View/EntryViewHolder.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java index 06e2df6d..93c32315 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java @@ -159,7 +159,14 @@ public class EntryViewHolder extends RecyclerView.ViewHolder issuer.setVisibility(View.GONE); } - label.setText(entry.getLabel()); + String labelText = entry.getLabel(); + if (!TextUtils.isEmpty(labelText)) { + label.setText(entry.getLabel()); + label.setVisibility(View.VISIBLE); + } else { + label.setVisibility(View.GONE); + } + value.setText(tokenFormatted); // save the unformatted token to the tag of this TextView for copy/paste value.setTag(entry.getCurrentOTP()); From 6a1da061dd5479e08837b11a497fab82586e8b4d Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Sun, 20 Oct 2019 15:01:21 +0200 Subject: [PATCH 17/61] Fix typo and minor rewording --- .../flocke/andotp/Activities/MainActivity.java | 2 +- .../shadowice/flocke/andotp/Utilities/Settings.java | 2 +- app/src/main/res/values/settings.xml | 8 ++++---- app/src/main/res/values/strings_settings.xml | 6 +++--- app/src/main/res/xml/preferences.xml | 12 ++++++------ 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java index 5ed6fbf6..1bd376d8 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/MainActivity.java @@ -351,7 +351,7 @@ public class MainActivity extends BaseActivity key.equals(getString(R.string.settings_key_split_group_size)) || key.equals(getString(R.string.settings_key_thumbnail_size))) { adapter.notifyDataSetChanged(); - } else if (key.equals(getString(R.string.settings_key_search_values))) { + } else if (key.equals(getString(R.string.settings_key_search_includes))) { adapter.clearFilter(); } else if (key.equals(getString(R.string.settings_key_tap_to_reveal)) || key.equals(getString(R.string.settings_key_theme)) || diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java index 61562373..e66ff03b 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java @@ -380,7 +380,7 @@ public class Settings { } public Set getSearchValues() { - return settings.getStringSet(getResString(R.string.settings_key_search_values), new HashSet<>(Arrays.asList(context.getResources().getStringArray(R.array.settings_defaults_search)))); + return settings.getStringSet(getResString(R.string.settings_key_search_includes), new HashSet<>(Arrays.asList(context.getResources().getStringArray(R.array.settings_defaults_search_includes)))); } public boolean getBackupAsk() { diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index 7217682d..2fe1f3d4 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -25,7 +25,7 @@ pref_thumbnail_size pref_split_group_size pref_tag_functionality - pref_search_includes + pref_search_includes pref_backup_append_date_time pref_backup_ask @@ -62,8 +62,8 @@ 3 or - - labels + + label issuer @@ -90,7 +90,7 @@ settings - + label issuer tags diff --git a/app/src/main/res/values/strings_settings.xml b/app/src/main/res/values/strings_settings.xml index dd340727..78792325 100644 --- a/app/src/main/res/values/strings_settings.xml +++ b/app/src/main/res/values/strings_settings.xml @@ -24,7 +24,7 @@ Thumbnail size Split Token with space Tag selection behavior - Search values + Search behavior Append date to filename Ask for filename @@ -51,7 +51,7 @@ has been turned off Scroll overlong labels instead of truncating them - Define which values should be included in the search + Specify which values should be included when searching Append the current date and time to the suggested backup filename @@ -148,7 +148,7 @@ Reset app settings - + Label Issuer Tags diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 87f79542..bd7e865e 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -106,12 +106,12 @@ android:defaultValue="@string/settings_default_tag_functionality" /> + android:key="@string/settings_key_search_includes" + android:title="@string/settings_title_search_includes" + android:summary="@string/settings_desc_search_includes" + android:entries="@array/settings_entries_search_includes" + android:entryValues="@array/settings_values_search_includes" + android:defaultValue="@array/settings_defaults_search_includes" /> From 0f54078ddf961cc35230610e2eabb2f497be2a8f Mon Sep 17 00:00:00 2001 From: Jakob Nixdorf Date: Sun, 20 Oct 2019 15:14:19 +0200 Subject: [PATCH 18/61] Use an enum instead of strings for the search values --- .../flocke/andotp/Utilities/Constants.java | 4 ++++ .../shadowice/flocke/andotp/Utilities/Settings.java | 13 +++++++++++-- .../flocke/andotp/View/EntriesCardAdapter.java | 8 ++++---- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java index 379d9432..9337c427 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Constants.java @@ -52,6 +52,10 @@ public class Constants { BACKUP_FAILED, BACKUP_SUCCESS } + public enum SearchIncludes { + LABEL, ISSUER, TAGS + } + // Intents (Format: A0x with A = parent Activity, x = number of the intent) public final static int INTENT_MAIN_AUTHENTICATE = 100; public final static int INTENT_MAIN_SETTINGS = 101; diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java index e66ff03b..6c1201ab 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java @@ -34,6 +34,7 @@ import java.nio.charset.StandardCharsets; import java.security.KeyPair; import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; @@ -379,8 +380,16 @@ public class Settings { setString(R.string.settings_key_sort_mode, value.toString()); } - public Set getSearchValues() { - return settings.getStringSet(getResString(R.string.settings_key_search_includes), new HashSet<>(Arrays.asList(context.getResources().getStringArray(R.array.settings_defaults_search_includes)))); + public List getSearchValues() { + Set stringValues = settings.getStringSet(getResString(R.string.settings_key_search_includes), new HashSet<>(Arrays.asList(context.getResources().getStringArray(R.array.settings_defaults_search_includes)))); + + List values = new ArrayList<>(); + + for (String value : stringValues) { + values.add(Constants.SearchIncludes.valueOf(value.toUpperCase(Locale.ENGLISH))); + } + + return values; } public boolean getBackupAsk() { diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 93236856..0e338c63 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -714,7 +714,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter } public class EntryFilter extends Filter { - private Set filterValues = settings.getSearchValues(); + private List filterValues = settings.getSearchValues(); @Override protected FilterResults performFiltering(CharSequence constraint) { @@ -724,11 +724,11 @@ public class EntriesCardAdapter extends RecyclerView.Adapter ArrayList filtered = new ArrayList<>(); if (constraint != null && constraint.length() != 0){ for (int i = 0; i < entries.size(); i++) { - if (filterValues.contains("label") && entries.get(i).getLabel().toLowerCase().contains(constraint.toString().toLowerCase())) { + if (filterValues.contains(Constants.SearchIncludes.LABEL) && entries.get(i).getLabel().toLowerCase().contains(constraint.toString().toLowerCase())) { filtered.add(entries.get(i)); - } else if (filterValues.contains("issuer") && entries.get(i).getIssuer().toLowerCase().contains(constraint.toString().toLowerCase())) { + } else if (filterValues.contains(Constants.SearchIncludes.ISSUER) && entries.get(i).getIssuer().toLowerCase().contains(constraint.toString().toLowerCase())) { filtered.add(entries.get(i)); - } else if (filterValues.contains("tags")) { + } else if (filterValues.contains(Constants.SearchIncludes.TAGS)) { List tags = entries.get(i).getTags(); for (int j = 0; j < tags.size(); j++) { if (tags.get(j).toLowerCase().contains(constraint.toString().toLowerCase())) { From 9b9974a163710e8535a6de2731593cebe4451ffa Mon Sep 17 00:00:00 2001 From: RichyHBM Date: Sun, 20 Oct 2019 16:43:22 +0100 Subject: [PATCH 19/61] Add settings for auto backup --- .../andotp/Activities/SettingsActivity.java | 11 ++++++++++ .../flocke/andotp/Utilities/Settings.java | 4 ++++ .../andotp/View/EntriesCardAdapter.java | 22 ++++++++++--------- app/src/main/res/values/settings.xml | 1 + app/src/main/res/values/strings_settings.xml | 5 +++++ app/src/main/res/xml/preferences.xml | 6 +++++ 6 files changed, 39 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java index 4339f282..a9a5c0b1 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/SettingsActivity.java @@ -44,6 +44,7 @@ import org.openintents.openpgp.util.OpenPgpKeyPreference; import org.shadowice.flocke.andotp.Database.Entry; import org.shadowice.flocke.andotp.Preferences.CredentialsPreference; import org.shadowice.flocke.andotp.R; +import org.shadowice.flocke.andotp.Utilities.BackupHelper; import org.shadowice.flocke.andotp.Utilities.Constants; import org.shadowice.flocke.andotp.Utilities.DatabaseHelper; import org.shadowice.flocke.andotp.Utilities.EncryptionHelper; @@ -143,6 +144,10 @@ public class SettingsActivity extends BaseActivity fragment.useAndroidSync.setEnabled(true); } } + + fragment.useAutoBackup.setEnabled(BackupHelper.autoBackupType(this) == Constants.BackupType.ENCRYPTED); + if(!fragment.useAutoBackup.isEnabled()) + fragment.useAutoBackup.setChecked(false); } private void generateNewEncryptionKey() { @@ -236,6 +241,7 @@ public class SettingsActivity extends BaseActivity Settings settings; ListPreference encryption; + CheckBoxPreference useAutoBackup; CheckBoxPreference useAndroidSync; OpenPgpAppPreference pgpProvider; @@ -344,6 +350,11 @@ public class SettingsActivity extends BaseActivity } }); + useAutoBackup = (CheckBoxPreference) findPreference(getString(R.string.settings_key_auto_backup_password_enc)); + useAutoBackup.setEnabled(BackupHelper.autoBackupType(getActivity()) == Constants.BackupType.ENCRYPTED); + if(!useAutoBackup.isEnabled()) + useAutoBackup.setChecked(false); + useAndroidSync = (CheckBoxPreference) findPreference(getString(R.string.settings_key_enable_android_backup_service)); useAndroidSync.setEnabled(settings.getEncryption() == EncryptionType.PASSWORD); if(!useAndroidSync.isEnabled()) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java index 5f767c76..659b8628 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java @@ -524,4 +524,8 @@ public class Settings { public boolean getIsAppendingDateTimeToBackups() { return getBoolean(R.string.settings_key_backup_append_date_time, false); } + + public boolean getAutoBackupEncryptedPasswordsEnabled() { + return getBoolean(R.string.settings_key_auto_backup_password_enc, false); + } } diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index bd01c879..762fb5d8 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -137,18 +137,20 @@ public class EntriesCardAdapter extends RecyclerView.Adapter public void saveEntries() { DatabaseHelper.saveDatabase(context, entries, encryptionKey); - Constants.BackupType backupType = BackupHelper.autoBackupType(context); - if(backupType == Constants.BackupType.ENCRYPTED){ - Uri backupFilename = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED)); + if(settings.getAutoBackupEncryptedPasswordsEnabled()) { + Constants.BackupType backupType = BackupHelper.autoBackupType(context); + if (backupType == Constants.BackupType.ENCRYPTED) { + Uri backupFilename = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED)); - byte[] keyMaterial = encryptionKey.getEncoded(); - SecretKey encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial); + byte[] keyMaterial = encryptionKey.getEncoded(); + SecretKey encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial); - boolean success = BackupHelper.backupToFile(context, backupFilename, settings.getBackupPasswordEnc(), encryptionKey); - if (success) { - Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show(); - } else { - Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show(); + boolean success = BackupHelper.backupToFile(context, backupFilename, settings.getBackupPasswordEnc(), encryptionKey); + if (success) { + Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show(); + } } } } diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index ee21c34f..5a7b2fdd 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -31,6 +31,7 @@ pref_backup_directory pref_backup_password pref_backup_password_enc + pref_backup_auto_password_enc pref_backup_broadcasts pref_openpgp_provider pref_openpgp_key_encrypt diff --git a/app/src/main/res/values/strings_settings.xml b/app/src/main/res/values/strings_settings.xml index 8809a0bb..1b923b14 100644 --- a/app/src/main/res/values/strings_settings.xml +++ b/app/src/main/res/values/strings_settings.xml @@ -29,6 +29,8 @@ Ask for filename Backup directory Backup password + Automatically backup on new entries + Backup Broadcasts OpenPGP provider OpenPGP encryption key @@ -61,6 +63,9 @@ Set the password that is used to encrypt the backups + Creates a new encrypted backup when new + entries are added if settings conditions are met + Select which backup types can be triggered by 3rd-party apps using Broadcasts diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 363b52e1..10f7e45d 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -140,6 +140,12 @@ android:title="@string/settings_title_backup_password" android:summary="@string/settings_desc_backup_password" /> + + Date: Sun, 20 Oct 2019 16:51:45 +0100 Subject: [PATCH 20/61] Move backup function to any saveDatabase call --- .../flocke/andotp/Utilities/DatabaseHelper.java | 16 ++++++++++++++++ .../flocke/andotp/View/EntriesCardAdapter.java | 17 ----------------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/DatabaseHelper.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/DatabaseHelper.java index 05db3379..c62ca7a5 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/DatabaseHelper.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/DatabaseHelper.java @@ -25,6 +25,7 @@ package org.shadowice.flocke.andotp.Utilities; import android.app.backup.BackupManager; import android.content.Context; +import android.net.Uri; import android.widget.Toast; import org.json.JSONArray; @@ -109,6 +110,21 @@ public class DatabaseHelper { byte[] data = EncryptionHelper.encrypt(encryptionKey, jsonString.getBytes()); FileHelper.writeBytesToFile(new File(context.getFilesDir() + "/" + Constants.FILENAME_DATABASE), data); + + Settings settings = new Settings(context); + if(settings.getAutoBackupEncryptedPasswordsEnabled()) { + Constants.BackupType backupType = BackupHelper.autoBackupType(context); + if (backupType == Constants.BackupType.ENCRYPTED) { + Uri backupFilename = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED)); + + boolean success = BackupHelper.backupToFile(context, backupFilename, settings.getBackupPasswordEnc(), encryptionKey); + if (success) { + Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show(); + } + } + } } } catch (Exception error) { error.printStackTrace(); diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 762fb5d8..111fad11 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -136,23 +136,6 @@ public class EntriesCardAdapter extends RecyclerView.Adapter public void saveEntries() { DatabaseHelper.saveDatabase(context, entries, encryptionKey); - - if(settings.getAutoBackupEncryptedPasswordsEnabled()) { - Constants.BackupType backupType = BackupHelper.autoBackupType(context); - if (backupType == Constants.BackupType.ENCRYPTED) { - Uri backupFilename = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED)); - - byte[] keyMaterial = encryptionKey.getEncoded(); - SecretKey encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial); - - boolean success = BackupHelper.backupToFile(context, backupFilename, settings.getBackupPasswordEnc(), encryptionKey); - if (success) { - Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show(); - } else { - Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show(); - } - } - } } public void loadEntries() { From e98a8a65e7333ce8f7eb61b0104b054a5f4231e4 Mon Sep 17 00:00:00 2001 From: TotalCaesar659 <14265316+TotalCaesar659@users.noreply.github.com> Date: Tue, 22 Oct 2019 05:40:32 +0300 Subject: [PATCH 21/61] Update links to HTTPS --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9431fc87..97951f41 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ key, which renders them useless. ### Opening the backups on your PC: - * [OpenPGP](http://openpgp.org/): OpenPGP can be used to easily decrypt the **OpenPGP-encrypted backups** on your PC. + * [OpenPGP](https://openpgp.org/): OpenPGP can be used to easily decrypt the **OpenPGP-encrypted backups** on your PC. * [WebDecrypt](https://flocke.shadowice.org/andOTP/decrypt/): JavaScript-based decryption of the **new password-protected backup format** in the browser ([source code](https://github.com/andOTP/WebDecrypt)). * [andOTP-decrypt](https://github.com/asmw/andOTP-decrypt): Python script written by @asmw to decrypt the **old password-protected backup format** on your PC. @@ -136,7 +136,7 @@ So make sure you have a **current backup** before switching! * [Android-ItemTouchHelper-Demo](https://github.com/iPaulPro/Android-ItemTouchHelper-Demo/tree/master/app/src/main/java/co/paulburke/android/itemtouchhelperdemo/helper) * [Code Parts from Google's Android Samples](https://android.googlesource.com/platform/development/+/master/samples/Vault/src/com/example/android/vault) - * [LetterBitmap](http://stackoverflow.com/questions/23122088/colored-boxed-with-letters-a-la-gmail) + * [LetterBitmap](https://stackoverflow.com/questions/23122088/colored-boxed-with-letters-a-la-gmail) * [DimensionConverter](https://stackoverflow.com/questions/8343971/how-to-parse-a-dimension-string-and-convert-it-to-a-dimension-value) #### Previously used open-source components: From 0aade46d776c91a58485217e5fee31409cbc6d3c Mon Sep 17 00:00:00 2001 From: FingerlessGlov3s <3495647+FingerlessGlov3s@users.noreply.github.com> Date: Sat, 26 Oct 2019 19:29:27 +0100 Subject: [PATCH 22/61] Add OPNsense, LibreNMS and PIA Icons --- .../andotp/Utilities/EntryThumbnail.java | 3 + app/src/main/res/drawable/thumb_librenms.xml | 12 ++ app/src/main/res/drawable/thumb_opnsense.xml | 31 ++++ .../thumb_private_internet_access.xml | 155 ++++++++++++++++++ 4 files changed, 201 insertions(+) create mode 100644 app/src/main/res/drawable/thumb_librenms.xml create mode 100644 app/src/main/res/drawable/thumb_opnsense.xml create mode 100644 app/src/main/res/drawable/thumb_private_internet_access.xml diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java index fbdfc60d..20581e66 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/EntryThumbnail.java @@ -127,6 +127,7 @@ public class EntryThumbnail { Kraken(R.drawable.thumb_kraken), Kucoin(R.drawable.thumb_kucoin), LastPass(R.drawable.thumb_lastpass), + LibreNMS(R.drawable.thumb_librenms), Lichess(R.drawable.thumb_lichess), LinkedIn(R.drawable.thumb_linkedin), Linode(R.drawable.thumb_linode), @@ -158,6 +159,7 @@ public class EntryThumbnail { Okta(R.drawable.thumb_okta), OnlineNet(R.drawable.thumb_online), OpenVZ(R.drawable.thumb_openvz), + OPNsense(R.drawable.thumb_opnsense), Origin(R.drawable.thumb_origin), OVH(R.drawable.thumb_ovh), Packet(R.drawable.thumb_packet), @@ -170,6 +172,7 @@ public class EntryThumbnail { phpMyAdmin(R.drawable.thumb_phpmyadmin), Plurk(R.drawable.thumb_plurk), Posteo(R.drawable.thumb_posteo), + PrivateInternetAccess(R.drawable.thumb_private_internet_access), ProtonMail(R.drawable.thumb_protonmail), Proxmox(R.drawable.thumb_proxmox), PyPI(R.drawable.thumb_pypi), diff --git a/app/src/main/res/drawable/thumb_librenms.xml b/app/src/main/res/drawable/thumb_librenms.xml new file mode 100644 index 00000000..a328c935 --- /dev/null +++ b/app/src/main/res/drawable/thumb_librenms.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/thumb_opnsense.xml b/app/src/main/res/drawable/thumb_opnsense.xml new file mode 100644 index 00000000..5c9fa6ad --- /dev/null +++ b/app/src/main/res/drawable/thumb_opnsense.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/app/src/main/res/drawable/thumb_private_internet_access.xml b/app/src/main/res/drawable/thumb_private_internet_access.xml new file mode 100644 index 00000000..537134bb --- /dev/null +++ b/app/src/main/res/drawable/thumb_private_internet_access.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 029d964795f00a14de9d80cb8163d97b9c1c2869 Mon Sep 17 00:00:00 2001 From: FingerlessGlov3s <3495647+FingerlessGlov3s@users.noreply.github.com> Date: Sat, 26 Oct 2019 20:30:31 +0100 Subject: [PATCH 23/61] Update icons to 128px --- app/src/main/res/drawable/thumb_librenms.xml | 14 +- app/src/main/res/drawable/thumb_opnsense.xml | 18 +-- .../thumb_private_internet_access.xml | 142 +++++++++--------- 3 files changed, 88 insertions(+), 86 deletions(-) diff --git a/app/src/main/res/drawable/thumb_librenms.xml b/app/src/main/res/drawable/thumb_librenms.xml index a328c935..66ad675d 100644 --- a/app/src/main/res/drawable/thumb_librenms.xml +++ b/app/src/main/res/drawable/thumb_librenms.xml @@ -1,12 +1,14 @@ + android:width="128dp" + android:height="128dp" + android:viewportWidth="128" + android:viewportHeight="128"> diff --git a/app/src/main/res/drawable/thumb_opnsense.xml b/app/src/main/res/drawable/thumb_opnsense.xml index 5c9fa6ad..50b8c8fa 100644 --- a/app/src/main/res/drawable/thumb_opnsense.xml +++ b/app/src/main/res/drawable/thumb_opnsense.xml @@ -1,30 +1,30 @@ + android:width="128dp" + android:height="128dp" + android:viewportWidth="128" + android:viewportHeight="128"> diff --git a/app/src/main/res/drawable/thumb_private_internet_access.xml b/app/src/main/res/drawable/thumb_private_internet_access.xml index 537134bb..0f9858a1 100644 --- a/app/src/main/res/drawable/thumb_private_internet_access.xml +++ b/app/src/main/res/drawable/thumb_private_internet_access.xml @@ -1,50 +1,50 @@ + android:width="128dp" + android:height="128dp" + android:viewportWidth="128" + android:viewportHeight="128"> + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:fillColor="#4bb749" + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"> @@ -52,21 +52,21 @@ + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"> @@ -83,46 +83,46 @@ + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"> @@ -130,22 +130,22 @@ + android:strokeColor="#00000000" + android:fillType="nonZero"/> + android:strokeColor="#00000000" + android:fillType="nonZero"> From 9a3b408720f5a6e613ac5a446b5d73eb62fb39af Mon Sep 17 00:00:00 2001 From: Ullas-Aithal Date: Sat, 26 Oct 2019 21:15:54 -0500 Subject: [PATCH 24/61] Implemented #311. OTP details will turn red if it's about to expire in 8 seconds. --- .../flocke/andotp/Database/Entry.java | 35 ++++++++++++++++++- .../andotp/View/EntriesCardAdapter.java | 6 ++-- .../flocke/andotp/View/EntryViewHolder.java | 31 +++++++++++++++- app/src/main/res/layout/component_card.xml | 1 + app/src/main/res/values/colors.xml | 3 ++ app/src/main/res/values/styles.xml | 8 +++++ 6 files changed, 80 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java index 152fbf53..dd9127c5 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Database/Entry.java @@ -23,6 +23,7 @@ package org.shadowice.flocke.andotp.Database; +import android.graphics.ColorFilter; import android.net.Uri; import org.apache.commons.codec.binary.Base32; @@ -76,6 +77,10 @@ public class Entry { private long last_used = 0; public List tags = new ArrayList<>(); private EntryThumbnail.EntryThumbnails thumbnail = EntryThumbnail.EntryThumbnails.Default; + private static final int COLOR_DEFAULT = 0; + public static final int COLOR_RED = 1; + private static final int EXPIRY_TIME = 8; + private int color = COLOR_DEFAULT; public Entry(){} @@ -385,7 +390,8 @@ public class Entry { currentOTP = TokenCalculator.TOTP_Steam(secret, period, digits, algorithm); last_update = counter; - + //New OTP. Change color to default color + setColor(COLOR_DEFAULT); return true; } else { return false; @@ -398,6 +404,25 @@ public class Entry { } } + /** + * Checks if the OTP is expiring. The color for the entry will be changed to red if the expiry time is less than or equal to 8 seconds + * COLOR_DEFAULT indicates that the OTP has not expired. In this case check if the OTP is about to expire. Update color to COLOR_RED if it's about to expire + * COLOR_RED indicates that the OTP is already about to expire. Don't check again. + * The color will be reset to COLOR_DEFAULT in {@link #updateOTP()} method + * + * @return Return true only if the color has changed to red to save from unnecessary notifying dataset + * */ + public boolean hasColorChanged() { + if(color == COLOR_DEFAULT){ + long time = System.currentTimeMillis() / 1000; + if ((time % getPeriod()) > (getPeriod() - EXPIRY_TIME)) { + setColor(COLOR_RED); + return true; + } + } + return false; + } + private void setThumbnailFromIssuer(String issuer) { try { this.thumbnail = EntryThumbnail.EntryThumbnails.valueOfIgnoreCase(issuer); @@ -424,4 +449,12 @@ public class Entry { public int hashCode() { return Objects.hash(type, period, counter, digits, algorithm, secret, label); } + + public void setColor(int color) { + this.color = color; + } + + public int getColor() { + return color; + } } diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java index 0e338c63..037009a9 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntriesCardAdapter.java @@ -65,7 +65,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Locale; -import java.util.Set; import java.util.concurrent.Callable; import javax.crypto.SecretKey; @@ -178,7 +177,9 @@ public class EntriesCardAdapter extends RecyclerView.Adapter for (Entry e : entries) { if (e.isTimeBased()) { boolean item_changed = e.updateOTP(); - change = change || item_changed || e.hasNonDefaultPeriod(); + boolean color_changed = e.hasColorChanged(); + + change = change || item_changed || e.hasNonDefaultPeriod() || color_changed; } } @@ -193,6 +194,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter if (!entry.isTimeBased()) entry.updateOTP(); + entryViewHolder.updateColor(entry.getColor()); entryViewHolder.updateValues(entry); entryViewHolder.setLabelSize(settings.getLabelSize()); diff --git a/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java b/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java index 93c32315..f284c758 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/View/EntryViewHolder.java @@ -62,7 +62,9 @@ public class EntryViewHolder extends RecyclerView.ViewHolder private LinearLayout counterLayout; private FrameLayout thumbnailFrame; private ImageView visibleImg; + private ImageView invisibleImg; private ImageView thumbnailImg; + private TextView hidden; private TextView value; private TextView issuer; private TextView label; @@ -78,6 +80,7 @@ public class EntryViewHolder extends RecyclerView.ViewHolder card = v.findViewById(R.id.card_view); value = v.findViewById(R.id.valueText); valueLayout = v.findViewById(R.id.valueLayout); + hidden = v.findViewById(R.id.hiddenText); visibleImg = v.findViewById(R.id.valueImg); thumbnailFrame = v.findViewById(R.id.thumbnailFrame); thumbnailImg = v.findViewById(R.id.thumbnailImg); @@ -88,10 +91,10 @@ public class EntryViewHolder extends RecyclerView.ViewHolder counterLayout = v.findViewById(R.id.counterLayout); counter = v.findViewById(R.id.counter); progressBar = v.findViewById(R.id.cardProgressBar); + invisibleImg = v.findViewById(R.id.coverImg); ImageButton menuButton = v.findViewById(R.id.menuButton); ImageButton copyButton = v.findViewById(R.id.copyButton); - ImageView invisibleImg = v.findViewById(R.id.coverImg); // Style the buttons in the current theme colors ColorFilter colorFilter = Tools.getThemeColorFilter(context, android.R.attr.textColorSecondary); @@ -296,4 +299,30 @@ public class EntryViewHolder extends RecyclerView.ViewHolder void onCounterClicked(int position); void onCounterLongPressed(int position); } + /** + * Updates the color of the following items to red (if expiring) or default color (if new OTP) + * TextViews: OTP, "Hidden" text, issuer, label, tags + * ImageViews: Visible, Invisible + * + * @param color will define if the color needs to be changed to red or default + * */ + public void updateColor(int color) { + int textColor; + ColorFilter colorFilter; + if(color == Entry.COLOR_RED) { + textColor = Tools.getThemeColor(context, R.attr.colorExpiring); + colorFilter = Tools.getThemeColorFilter(context, R.attr.colorExpiring); + } else { + textColor = Tools.getThemeColor(context, android.R.attr.textColorSecondary); + colorFilter = Tools.getThemeColorFilter(context, android.R.attr.textColorSecondary); + } + + value.setTextColor(textColor); + hidden.setTextColor(textColor); + issuer.setTextColor(textColor); + label.setTextColor(textColor); + tags.setTextColor(textColor); + visibleImg.setColorFilter(colorFilter); + invisibleImg.setColorFilter(colorFilter); + } } diff --git a/app/src/main/res/layout/component_card.xml b/app/src/main/res/layout/component_card.xml index 9adeba80..a43bd3f8 100644 --- a/app/src/main/res/layout/component_card.xml +++ b/app/src/main/res/layout/component_card.xml @@ -94,6 +94,7 @@ app:srcCompat="@drawable/ic_visibility_invisible"/> #ffe0e0e0 #212121 + + #f05545 + #d50000 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index cf0dc9a1..67265447 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -7,6 +7,8 @@ + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index cf0dc9a1..a5b9149c 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -7,6 +7,8 @@ + +