mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-12-24 07:58:50 -05:00
New work on PIN and lock pattern UI
This commit is contained in:
parent
320f825878
commit
610c4780f1
@ -659,6 +659,12 @@
|
||||
<activity
|
||||
android:name=".ui.PassphraseDialogActivity"
|
||||
android:theme="@android:style/Theme.NoDisplay" />
|
||||
<activity
|
||||
android:name="com.haibison.android.lockpattern.LockPatternActivity"
|
||||
android:label="@string/title_unlock"
|
||||
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
|
||||
android:screenOrientation="user"
|
||||
android:theme="@style/Alp.42447968.Theme.Dialog.Light" />
|
||||
<!--
|
||||
NOTE: singleTop is set to get NFC foreground dispatch to work.
|
||||
Then, all NFC intents will be broadcasted to onNewIntent() of this activity!
|
||||
|
@ -83,7 +83,8 @@ public class CanonicalizedSecretKey extends CanonicalizedPublicKey {
|
||||
}
|
||||
|
||||
public enum SecretKeyType {
|
||||
UNAVAILABLE(0), GNU_DUMMY(1), PASSPHRASE(2), PASSPHRASE_EMPTY(3), DIVERT_TO_CARD(4);
|
||||
UNAVAILABLE(0), GNU_DUMMY(1), PASSPHRASE(2), PASSPHRASE_EMPTY(3), DIVERT_TO_CARD(4), PIN(5),
|
||||
PATTERN(6);
|
||||
|
||||
final int mNum;
|
||||
|
||||
@ -101,6 +102,10 @@ public class CanonicalizedSecretKey extends CanonicalizedPublicKey {
|
||||
return PASSPHRASE_EMPTY;
|
||||
case 4:
|
||||
return DIVERT_TO_CARD;
|
||||
case 5:
|
||||
return PIN;
|
||||
case 6:
|
||||
return PATTERN;
|
||||
// if this case happens, it's probably a check from a database value
|
||||
default:
|
||||
return UNAVAILABLE;
|
||||
|
@ -41,6 +41,8 @@ import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.haibison.android.lockpattern.LockPatternActivity;
|
||||
|
||||
import org.sufficientlysecure.keychain.Constants;
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
|
||||
@ -68,6 +70,8 @@ public class PassphraseDialogActivity extends FragmentActivity {
|
||||
// special extra for OpenPgpService
|
||||
public static final String EXTRA_DATA = "data";
|
||||
|
||||
private static final int REQUEST_CODE_ENTER_PATTERN = 2;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@ -90,6 +94,40 @@ public class PassphraseDialogActivity extends FragmentActivity {
|
||||
show(this, keyId, serviceIntent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
switch (requestCode) {
|
||||
case REQUEST_CODE_ENTER_PATTERN: {
|
||||
/*
|
||||
* NOTE that there are 4 possible result codes!!!
|
||||
*/
|
||||
switch (resultCode) {
|
||||
case RESULT_OK:
|
||||
// The user passed
|
||||
break;
|
||||
case RESULT_CANCELED:
|
||||
// The user cancelled the task
|
||||
break;
|
||||
case LockPatternActivity.RESULT_FAILED:
|
||||
// The user failed to enter the pattern
|
||||
break;
|
||||
case LockPatternActivity.RESULT_FORGOT_PATTERN:
|
||||
// The user forgot the pattern and invoked your recovery Activity.
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* In any case, there's always a key EXTRA_RETRY_COUNT, which holds
|
||||
* the number of tries that the user did.
|
||||
*/
|
||||
int retryCount = data.getIntExtra(
|
||||
LockPatternActivity.EXTRA_RETRY_COUNT, 0);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows passphrase dialog to cache a new passphrase the user enters for using it later for
|
||||
* encryption. Based on mSecretKeyId it asks for a passphrase to open a private key or it asks
|
||||
@ -138,7 +176,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
|
||||
|
||||
CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(theme);
|
||||
|
||||
alert.setTitle(R.string.title_authentication);
|
||||
alert.setTitle(R.string.title_unlock);
|
||||
|
||||
String userId;
|
||||
CanonicalizedSecretKey.SecretKeyType keyType = CanonicalizedSecretKey.SecretKeyType.PASSPHRASE;
|
||||
@ -171,7 +209,10 @@ public class PassphraseDialogActivity extends FragmentActivity {
|
||||
message = getString(R.string.passphrase_for, userId);
|
||||
break;
|
||||
case DIVERT_TO_CARD:
|
||||
message = getString(R.string.yubikey_pin, userId);
|
||||
message = getString(R.string.yubikey_pin_for, userId);
|
||||
break;
|
||||
case PIN:
|
||||
message = getString(R.string.pin_for, userId);
|
||||
break;
|
||||
default:
|
||||
message = "This should not happen!";
|
||||
@ -209,39 +250,51 @@ public class PassphraseDialogActivity extends FragmentActivity {
|
||||
}
|
||||
});
|
||||
|
||||
// Hack to open keyboard.
|
||||
// This is the only method that I found to work across all Android versions
|
||||
// http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/
|
||||
// Notes: * onCreateView can't be used because we want to add buttons to the dialog
|
||||
// * opening in onActivityCreated does not work on Android 4.4
|
||||
mPassphraseEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
||||
@Override
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
mPassphraseEditText.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (getActivity() == null || mPassphraseEditText == null) {
|
||||
return;
|
||||
}
|
||||
InputMethodManager imm = (InputMethodManager) getActivity()
|
||||
.getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(mPassphraseEditText, InputMethodManager.SHOW_IMPLICIT);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
mPassphraseEditText.requestFocus();
|
||||
|
||||
mPassphraseEditText.setImeActionLabel(getString(android.R.string.ok), EditorInfo.IME_ACTION_DONE);
|
||||
mPassphraseEditText.setOnEditorActionListener(this);
|
||||
|
||||
if (keyType == CanonicalizedSecretKey.SecretKeyType.DIVERT_TO_CARD && Preferences.getPreferences(activity).useNumKeypadForYubikeyPin()) {
|
||||
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
if (keyType == CanonicalizedSecretKey.SecretKeyType.PATTERN) {
|
||||
// start pattern dialog and show progress circle here...
|
||||
Intent patternActivity = new Intent(getActivity(), LockPatternActivity.class);
|
||||
patternActivity.putExtra(LockPatternActivity.EXTRA_PATTERN, "123");
|
||||
startActivityForResult(patternActivity, REQUEST_CODE_ENTER_PATTERN);
|
||||
mInput.setVisibility(View.GONE);
|
||||
mProgress.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
}
|
||||
// Hack to open keyboard.
|
||||
// This is the only method that I found to work across all Android versions
|
||||
// http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/
|
||||
// Notes: * onCreateView can't be used because we want to add buttons to the dialog
|
||||
// * opening in onActivityCreated does not work on Android 4.4
|
||||
mPassphraseEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
||||
@Override
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
mPassphraseEditText.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (getActivity() == null || mPassphraseEditText == null) {
|
||||
return;
|
||||
}
|
||||
InputMethodManager imm = (InputMethodManager) getActivity()
|
||||
.getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(mPassphraseEditText, InputMethodManager.SHOW_IMPLICIT);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
mPassphraseEditText.requestFocus();
|
||||
|
||||
mPassphraseEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||
mPassphraseEditText.setImeActionLabel(getString(android.R.string.ok), EditorInfo.IME_ACTION_DONE);
|
||||
mPassphraseEditText.setOnEditorActionListener(this);
|
||||
|
||||
if (keyType == CanonicalizedSecretKey.SecretKeyType.DIVERT_TO_CARD && Preferences.getPreferences(activity).useNumKeypadForYubikeyPin()) {
|
||||
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
} else if (keyType == CanonicalizedSecretKey.SecretKeyType.PIN) {
|
||||
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
} else {
|
||||
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
}
|
||||
|
||||
mPassphraseEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||
}
|
||||
|
||||
AlertDialog dialog = alert.create();
|
||||
dialog.setButton(DialogInterface.BUTTON_POSITIVE,
|
||||
@ -264,7 +317,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
|
||||
// Early breakout if we are dealing with a symmetric key
|
||||
if (mSecretRing == null) {
|
||||
PassphraseCacheService.addCachedPassphrase(getActivity(),
|
||||
Constants.key.symmetric, Constants.key.symmetric, passphrase,
|
||||
Constants.key.symmetric, Constants.key.symmetric, passphrase,
|
||||
getString(R.string.passp_cache_notif_pwd));
|
||||
|
||||
finishCaching(passphrase);
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Zašifrovat text</string>
|
||||
<string name="title_encrypt_files">Zašifrovat soubory</string>
|
||||
<string name="title_decrypt">Rozšifrovat</string>
|
||||
<string name="title_authentication">Heslo</string>
|
||||
<string name="title_unlock">Heslo</string>
|
||||
<string name="title_add_subkey">Přidat podklíč</string>
|
||||
<string name="title_edit_key">Editovat klíč</string>
|
||||
<string name="title_preferences">Možnosti</string>
|
||||
@ -183,7 +183,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Prosím zadejte heslo.</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Symetrická šifra.</string>
|
||||
<string name="passphrase_for">Zadejte heslo pro \'%s\'</string>
|
||||
<string name="yubikey_pin">Zadejte PIN pro přístup k Yubikey pro \'%s\'</string>
|
||||
<string name="yubikey_pin_for">Zadejte PIN pro přístup k Yubikey pro \'%s\'</string>
|
||||
<string name="file_delete_confirmation">Chcete opravdu smazat\n%s?</string>
|
||||
<string name="file_delete_successful">Úspěšně smazáno.</string>
|
||||
<string name="no_file_selected">Nejprve vyberte soubor.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Text Verschlüsseln</string>
|
||||
<string name="title_encrypt_files">Dateien verschlüsseln</string>
|
||||
<string name="title_decrypt">Entschlüsseln</string>
|
||||
<string name="title_authentication">Passwort</string>
|
||||
<string name="title_unlock">Passwort</string>
|
||||
<string name="title_add_subkey">Unterschlüssel hinzufügen</string>
|
||||
<string name="title_edit_key">Schlüssel bearbeiten</string>
|
||||
<string name="title_preferences">Einstellungen</string>
|
||||
@ -189,7 +189,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Bitte ein Passwort eingeben.</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Symmetrische Verschlüsselung.</string>
|
||||
<string name="passphrase_for">Passwort für \'%s\' eingeben</string>
|
||||
<string name="yubikey_pin">PIN für Zugriff auf Yubikey für \'%s\' eingeben</string>
|
||||
<string name="yubikey_pin_for">PIN für Zugriff auf Yubikey für \'%s\' eingeben</string>
|
||||
<string name="file_delete_confirmation">%s wirklich löschen?</string>
|
||||
<string name="file_delete_successful">Erfolgreich gelöscht.</string>
|
||||
<string name="no_file_selected">Zuerst eine Datei auswählen.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Cifrar texto</string>
|
||||
<string name="title_encrypt_files">Cifrar ficheros</string>
|
||||
<string name="title_decrypt">Descifrar</string>
|
||||
<string name="title_authentication">Frase de contraseña</string>
|
||||
<string name="title_unlock">Frase de contraseña</string>
|
||||
<string name="title_add_subkey">Añadir subclave</string>
|
||||
<string name="title_edit_key"> Editar clave</string>
|
||||
<string name="title_preferences"> Preferencias</string>
|
||||
@ -189,7 +189,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Por favor, introduce una frase de contraseña.</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Cifrado simétrico.</string>
|
||||
<string name="passphrase_for">Introducir la frase de contraseña para \'%s\'</string>
|
||||
<string name="yubikey_pin">Introduzca el PIN de acceso a Yubikey para \'%s\'</string>
|
||||
<string name="yubikey_pin_for">Introduzca el PIN de acceso a Yubikey para \'%s\'</string>
|
||||
<string name="file_delete_confirmation">¿Está seguro de que quiere eliminar\n%s?</string>
|
||||
<string name="file_delete_successful">Borrado satisfactoriamente.</string>
|
||||
<string name="no_file_selected">Selecciona un archivo antes.</string>
|
||||
|
@ -4,7 +4,7 @@
|
||||
http://developer.android.com/guide/topics/resources/string-resource.html (scroll down to "Escaping apostrophes and quotes").-->
|
||||
<!--title-->
|
||||
<string name="title_decrypt">Dekrüpteeri</string>
|
||||
<string name="title_authentication">Salasõne</string>
|
||||
<string name="title_unlock">Salasõne</string>
|
||||
<string name="title_edit_key">Muuda võtit</string>
|
||||
<string name="title_preferences">Seaded</string>
|
||||
<string name="title_key_server_preference">Võtmeserveri seaded</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Chiffrer un texte</string>
|
||||
<string name="title_encrypt_files">Chiffrer des fichiers</string>
|
||||
<string name="title_decrypt">Déchiffrer</string>
|
||||
<string name="title_authentication">Phrase de passe</string>
|
||||
<string name="title_unlock">Phrase de passe</string>
|
||||
<string name="title_add_subkey">Ajouter une sous-clef</string>
|
||||
<string name="title_edit_key">Modifier une clef</string>
|
||||
<string name="title_preferences">Préférences</string>
|
||||
@ -189,7 +189,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Veuillez saisir une phrase de passe</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Chriffrement symétrique.</string>
|
||||
<string name="passphrase_for">Saisir une phrase de passe pour « %s »</string>
|
||||
<string name="yubikey_pin">Saisir le NIP pour accéder à la Yubikey pour « %s »</string>
|
||||
<string name="yubikey_pin_for">Saisir le NIP pour accéder à la Yubikey pour « %s »</string>
|
||||
<string name="file_delete_confirmation">Êtes-vous certain de vouloir supprimer\n%s?</string>
|
||||
<string name="file_delete_successful">Supprimé avec succès.</string>
|
||||
<string name="no_file_selected">Choisir d\'abord un fichier.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Testo Cifrato</string>
|
||||
<string name="title_encrypt_files">File Cifrati</string>
|
||||
<string name="title_decrypt">Decodifica</string>
|
||||
<string name="title_authentication">Frase di accesso</string>
|
||||
<string name="title_unlock">Frase di accesso</string>
|
||||
<string name="title_add_subkey">Aggiungi Sottochiave</string>
|
||||
<string name="title_edit_key">Modifica Chiave</string>
|
||||
<string name="title_preferences">Preferenze</string>
|
||||
@ -183,7 +183,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Si prega di inserire una frase di accesso.</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Codifica Simmetrica.</string>
|
||||
<string name="passphrase_for">Inserisci la frase di accesso per \'%s\'</string>
|
||||
<string name="yubikey_pin">Inserisci il PIN per accedere a Yubikey con \'%s\'</string>
|
||||
<string name="yubikey_pin_for">Inserisci il PIN per accedere a Yubikey con \'%s\'</string>
|
||||
<string name="file_delete_confirmation">Sei sicuro di voler eliminare\n%s?</string>
|
||||
<string name="file_delete_successful">Eliminato correttamente.</string>
|
||||
<string name="no_file_selected">Seleziona un file prima.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">テキスト暗号化</string>
|
||||
<string name="title_encrypt_files">ファイル暗号化</string>
|
||||
<string name="title_decrypt">復号化</string>
|
||||
<string name="title_authentication">パスフレーズ</string>
|
||||
<string name="title_unlock">パスフレーズ</string>
|
||||
<string name="title_add_subkey">副鍵の追加</string>
|
||||
<string name="title_edit_key">鍵の編集</string>
|
||||
<string name="title_preferences">設定</string>
|
||||
@ -187,7 +187,7 @@
|
||||
<string name="passphrase_must_not_be_empty">パスフレーズを入れてください。</string>
|
||||
<string name="passphrase_for_symmetric_encryption">対称暗号。</string>
|
||||
<string name="passphrase_for">\'%s\' にパスフレーズを入れてください。</string>
|
||||
<string name="yubikey_pin">\'%s\' の Yubikey にアクセスするためのPINを入力してください</string>
|
||||
<string name="yubikey_pin_for">\'%s\' の Yubikey にアクセスするためのPINを入力してください</string>
|
||||
<string name="file_delete_confirmation">%s
|
||||
を削除してもかまいませんか?</string>
|
||||
<string name="file_delete_successful">削除に成功しました。</string>
|
||||
|
@ -4,7 +4,7 @@
|
||||
http://developer.android.com/guide/topics/resources/string-resource.html (scroll down to "Escaping apostrophes and quotes").-->
|
||||
<!--title-->
|
||||
<string name="title_decrypt">Ontsleutelen</string>
|
||||
<string name="title_authentication">Wachtwoord</string>
|
||||
<string name="title_unlock">Wachtwoord</string>
|
||||
<string name="title_edit_key">Sleutel bewerken</string>
|
||||
<string name="title_preferences">Instellingen</string>
|
||||
<string name="title_key_server_preference">Sleutelserver Voorkeur</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Szyfruj tekst</string>
|
||||
<string name="title_encrypt_files">Szyfruj pliki</string>
|
||||
<string name="title_decrypt">Odszyfruj</string>
|
||||
<string name="title_authentication">Hasło</string>
|
||||
<string name="title_unlock">Hasło</string>
|
||||
<string name="title_add_subkey">Dodaj pod-klucz</string>
|
||||
<string name="title_edit_key">Edytuj klucz</string>
|
||||
<string name="title_preferences">Właściwości</string>
|
||||
@ -186,7 +186,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Podaj hasło.</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Szyfrowanie symetryczne.</string>
|
||||
<string name="passphrase_for">Podaj hasło dla \'%s\'</string>
|
||||
<string name="yubikey_pin">Wpisz PIN, aby otworzyć Yubikey dla \'%s\'</string>
|
||||
<string name="yubikey_pin_for">Wpisz PIN, aby otworzyć Yubikey dla \'%s\'</string>
|
||||
<string name="file_delete_confirmation">Czy jesteś pewny, że chcesz usunąć\n%s?</string>
|
||||
<string name="file_delete_successful">Usunięto pomyślnie.</string>
|
||||
<string name="no_file_selected">Najpierw wskaż plik.</string>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<string name="title_select_recipients">Выберите ключи</string>
|
||||
<string name="title_select_secret_key">Выберите Ваш ключ</string>
|
||||
<string name="title_decrypt">Расшифровать</string>
|
||||
<string name="title_authentication">Пароль</string>
|
||||
<string name="title_unlock">Пароль</string>
|
||||
<string name="title_add_subkey">Добавить доп. ключ</string>
|
||||
<string name="title_edit_key">Изменить ключ</string>
|
||||
<string name="title_preferences">Настройки</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Šifriraj besedilo</string>
|
||||
<string name="title_encrypt_files">Šifriraj datoteko</string>
|
||||
<string name="title_decrypt">Dešifriraj</string>
|
||||
<string name="title_authentication">Geslo</string>
|
||||
<string name="title_unlock">Geslo</string>
|
||||
<string name="title_add_subkey">Dodaj podključ</string>
|
||||
<string name="title_edit_key">Uredi ključ</string>
|
||||
<string name="title_preferences">Nastavitve</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Шифруј текст</string>
|
||||
<string name="title_encrypt_files">Шифруј фајлове</string>
|
||||
<string name="title_decrypt">Дешифруј</string>
|
||||
<string name="title_authentication">Лозинка</string>
|
||||
<string name="title_unlock">Лозинка</string>
|
||||
<string name="title_add_subkey">Додај поткључ</string>
|
||||
<string name="title_edit_key">Уреди кључ</string>
|
||||
<string name="title_preferences">Поставке</string>
|
||||
@ -191,7 +191,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Унесите лозинку.</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Симетрично шифровање.</string>
|
||||
<string name="passphrase_for">Унесите лозинку за „%s“</string>
|
||||
<string name="yubikey_pin">Унесите ПИН за приступ Јубикључу за „%s“</string>
|
||||
<string name="yubikey_pin_for">Унесите ПИН за приступ Јубикључу за „%s“</string>
|
||||
<string name="file_delete_confirmation">Желите ли заиста да обришете\n%s?</string>
|
||||
<string name="file_delete_successful">Брисање је успело.</string>
|
||||
<string name="no_file_selected">Најпре изаберите фајл.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Kryptera text</string>
|
||||
<string name="title_encrypt_files">Kryptera filer</string>
|
||||
<string name="title_decrypt">Dekryptera</string>
|
||||
<string name="title_authentication">Lösenordsfras</string>
|
||||
<string name="title_unlock">Lösenordsfras</string>
|
||||
<string name="title_add_subkey">Lägg till undernyckel</string>
|
||||
<string name="title_edit_key">Redigera nyckel</string>
|
||||
<string name="title_preferences">Inställningar</string>
|
||||
@ -180,7 +180,7 @@
|
||||
<string name="passphrase_must_not_be_empty">Ange en lösenordsfras.</string>
|
||||
<string name="passphrase_for_symmetric_encryption">Symmetrisk kryptering.</string>
|
||||
<string name="passphrase_for">Ange lösenordsfras för \'%s\'</string>
|
||||
<string name="yubikey_pin">Ange PIN för att få åtkomst till Yubikey för \'%s\'</string>
|
||||
<string name="yubikey_pin_for">Ange PIN för att få åtkomst till Yubikey för \'%s\'</string>
|
||||
<string name="file_delete_confirmation">Vill du verkligen radera\n%s?</string>
|
||||
<string name="file_delete_successful">Raderades.</string>
|
||||
<string name="no_file_selected">Välj en nyckel först.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">Metni Şifrele</string>
|
||||
<string name="title_encrypt_files">Dosyaları Şifrele</string>
|
||||
<string name="title_decrypt">Çözümle</string>
|
||||
<string name="title_authentication">Parola</string>
|
||||
<string name="title_unlock">Parola</string>
|
||||
<string name="title_add_subkey">Alt anahtar ekle</string>
|
||||
<string name="title_edit_key">Anahtarı düzenle</string>
|
||||
<string name="title_preferences">Seçenekler</string>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<string name="title_select_recipients">Вибрати ключі</string>
|
||||
<string name="title_select_secret_key">Виберіть ваш ключ</string>
|
||||
<string name="title_decrypt">Розшифрувати</string>
|
||||
<string name="title_authentication">Парольна фраза</string>
|
||||
<string name="title_unlock">Парольна фраза</string>
|
||||
<string name="title_add_subkey">Додати підключ</string>
|
||||
<string name="title_edit_key">Редагувати ключ</string>
|
||||
<string name="title_preferences">Налаштування</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<string name="title_encrypt_text">加密文字</string>
|
||||
<string name="title_encrypt_files">加密檔案</string>
|
||||
<string name="title_decrypt">解密</string>
|
||||
<string name="title_authentication">口令</string>
|
||||
<string name="title_unlock">口令</string>
|
||||
<string name="title_add_subkey">新增子金鑰</string>
|
||||
<string name="title_edit_key">編輯金鑰</string>
|
||||
<string name="title_preferences">偏好設定</string>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<string name="title_encrypt_text">加密文本</string>
|
||||
<string name="title_encrypt_files">加密文件</string>
|
||||
<string name="title_decrypt">解密</string>
|
||||
<string name="title_authentication">密码</string>
|
||||
<string name="title_unlock">密码</string>
|
||||
<string name="title_edit_key">编辑密钥</string>
|
||||
<string name="title_preferences">参数</string>
|
||||
<string name="title_api_registered_apps">已注册应用</string>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<string name="title_encrypt_text">"Encrypt Text"</string>
|
||||
<string name="title_encrypt_files">"Encrypt Files"</string>
|
||||
<string name="title_decrypt">"Decrypt"</string>
|
||||
<string name="title_authentication">"Passphrase"</string>
|
||||
<string name="title_unlock">"Unlock Key"</string>
|
||||
<string name="title_add_subkey">"Add subkey"</string>
|
||||
<string name="title_edit_key">"Edit Key"</string>
|
||||
<string name="title_preferences">"Preferences"</string>
|
||||
@ -205,7 +205,8 @@
|
||||
<string name="passphrase_must_not_be_empty">"Please enter a passphrase."</string>
|
||||
<string name="passphrase_for_symmetric_encryption">"Symmetric encryption."</string>
|
||||
<string name="passphrase_for">"Enter passphrase for '%s'"</string>
|
||||
<string name="yubikey_pin">"Enter PIN to access YubiKey for '%s'"</string>
|
||||
<string name="pin_for">"Enter PIN for '%s'"</string>
|
||||
<string name="yubikey_pin_for">"Enter PIN to access YubiKey for '%s'"</string>
|
||||
<string name="nfc_text">"Hold YubiKey against the back of your device."</string>
|
||||
<string name="file_delete_confirmation">"Are you sure you want to delete\n%s?"</string>
|
||||
<string name="file_delete_successful">"Successfully deleted."</string>
|
||||
|
Loading…
Reference in New Issue
Block a user