Pair BE with manual code

This commit is contained in:
Rafał Kobyłko 2023-07-02 09:47:08 +02:00
parent 484938cbea
commit bfe03177c1
20 changed files with 325 additions and 95 deletions

View File

@ -1,7 +1,10 @@
package com.twofasapp.browserextension.ui.pairing.scan
import android.app.Activity
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
@ -10,8 +13,12 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.KeyboardType
import com.twofasapp.design.dialogs.InfoDialog
import com.twofasapp.designsystem.common.TwTopAppBar
import com.twofasapp.designsystem.dialog.InputDialog
import com.twofasapp.locale.TwLocale
import com.twofasapp.qrscanner.ui.QrScannerScreen
import com.twofasapp.resources.R
import org.koin.androidx.compose.koinViewModel
@ -24,10 +31,15 @@ fun PairingScanScreen(
val uiState = viewModel.uiState.collectAsState()
val activity = (LocalContext.current as? Activity)
var openSuccess by remember { mutableStateOf(true) }
var showManualDialog by remember { mutableStateOf(false) }
Scaffold(
topBar = {
TwTopAppBar(titleText = stringResource(id = R.string.commons__scan_qr_code), showBackButton = true)
TwTopAppBar(titleText = stringResource(id = R.string.commons__scan_qr_code), showBackButton = true, actions = {
TextButton(onClick = { showManualDialog = true }) {
Text(text = TwLocale.strings.browserPairManuallyCta)
}
})
}
) { padding ->
QrScannerScreen()
@ -46,4 +58,19 @@ fun PairingScanScreen(
).show()
}
}
if (showManualDialog) {
InputDialog(
onDismissRequest = { showManualDialog = false },
positive = TwLocale.strings.commonOk,
negative = TwLocale.strings.commonCancel,
hint = TwLocale.strings.browserPairManuallyHint,
keyboardOptions = KeyboardOptions(
capitalization = KeyboardCapitalization.None,
keyboardType = KeyboardType.Text,
),
positiveEnabled = { it.isNotBlank() },
onPositiveClick = { viewModel.codeEnteredManually(it.trim().lowercase()) }
)
}
}

View File

@ -6,7 +6,6 @@ import com.twofasapp.base.BaseViewModel
import com.twofasapp.qrscanner.domain.ScanQr
import com.twofasapp.resources.R
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
@ -14,8 +13,7 @@ class PairingScanViewModel(
private val scanQr: ScanQr,
) : BaseViewModel() {
private val _uiState = MutableStateFlow(PairingScanUiState())
val uiState = _uiState.asStateFlow()
val uiState = MutableStateFlow(PairingScanUiState())
init {
viewModelScope.launch {
@ -25,7 +23,7 @@ class PairingScanViewModel(
val uri = Uri.parse(it.text)
if (uri.scheme.equals("twofas_c").not()) {
_uiState.update { state ->
uiState.update { state ->
state.copy(
isSuccess = false,
showErrorDialog = true,
@ -36,7 +34,7 @@ class PairingScanViewModel(
}
return@collect
}
_uiState.update { state ->
uiState.update { state ->
state.copy(
isSuccess = true,
showErrorDialog = false,
@ -44,7 +42,7 @@ class PairingScanViewModel(
)
}
} catch (e: Exception) {
_uiState.update { state ->
uiState.update { state ->
state.copy(
isSuccess = false,
showErrorDialog = true,
@ -59,4 +57,14 @@ class PairingScanViewModel(
}
}
fun codeEnteredManually(text: String) {
uiState.update { state ->
state.copy(
isSuccess = true,
showErrorDialog = false,
extensionId = text
)
}
}
}

View File

@ -116,6 +116,8 @@ class Strings(c: Context) {
val browserExtPairedDevices = c.getString(R.string.browser__paired_devices_browser_title)
val browserExtDeviceName = c.getString(R.string.browser__this_device_name)
val browserExtDeviceNameSubtitle = c.getString(R.string.browser__this_device_footer)
val browserPairManuallyCta = c.getString(R.string.browser__pair_manually_cta)
val browserPairManuallyHint = c.getString(R.string.browser__pair_manually_hint)
val settingsTheme = c.getString(R.string.settings__option_theme)
val settingsShowNextCode = c.getString(R.string.settings__show_next_token)

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: de-DE, German (Germany)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -103,7 +103,7 @@
<!-- Original: Adding code -->
<string name="notifications__adding_code">Hinzufügen eines neuen Codes</string>
<!-- notifications__private_key_copied -->
<string name="notifications__service_key_copied">Service Schlüssel Kopiert</string>
<string name="notifications__service_key_copied">Geheimschlüssel Kopiert</string>
<!-- voiceover__token_is_already_on_the_list -->
<string name="notifications__token_already_added">Dieses Token ist bereits in der Liste vorhanden</string>
<string name="notifications__counter_copied">Zähler kopiert</string>
@ -158,15 +158,15 @@
<string name="tokens__move_to_trash">In den Papierkorb verschieben</string>
<string name="tokens__additional_info">Zusätzliche Informationen</string>
<string name="tokens__choose_method">Methode auswählen</string>
<string name="tokens__duplicated_private_key">Duplizierter Dienstschlüssel</string>
<string name="tokens__duplicated_private_key">Duplizierter Geheimschlüssel</string>
<!-- tokens__incorrect_private_key -->
<string name="tokens__incorrect_service_key">Falscher Dienstschlüssel (nur Zahlen von 2 bis 7, Buchstaben), max. 512 Zeichen lang</string>
<string name="tokens__incorrect_service_key">Falscher Geheimschlüssel (nur Zahlen von 2 bis 7, Buchstaben), max. 512 Zeichen lang</string>
<string name="tokens__try_again">OK, erneut versuchen</string>
<!-- Original: To capture the QR code
tokens__point_right_2fa_code -->
<string name="tokens__scan_qr_code_title">Richte die Kamera auf den Bildschirm, um den QR-Code zu scannen</string>
<!-- tokens__private_key -->
<string name="tokens__service_key">Serviceschlüssel</string>
<string name="tokens__service_key">Geheimschlüssel</string>
<string name="tokens__qr_code_leads_to_app_store">Dieser QR-Code führt dich zum App-Store</string>
<!-- tokens__remove_it_forever -->
<string name="tokens__remove_forever">Token löschen</string>
@ -180,7 +180,7 @@
<string name="tokens__service_key_to_short">Schlüssel zu kurz. Minimum 4 Zeichen</string>
<string name="tokens__service_name">Service-Name</string>
<!-- tokens__this_private_key_exists_used_in -->
<string name="tokens__service_key_already_used_title">Der Serviceschlüssel aus dem gescannten Code wird bereits in %s verwendet. Du scannst ihn wahrscheinlich erneut</string>
<string name="tokens__service_key_already_used_title">Der Geheimschlüssel aus dem gescannten Code wird bereits in %s verwendet. Du scannst ihn wahrscheinlich erneut</string>
<string name="tokens__this_qr_code_is_inavlid">Dieser Code ist falsch oder wird nicht unterstützt. Versuch es erneut.</string>
<string name="tokens__type_service_name">Dienstname eingeben</string>
<string name="tokens__enter_service_name">Dienstname eingeben</string>
@ -277,14 +277,14 @@
<string name="tokens__order_menu_option_company">Logo einreichen als Unternehmen</string>
<!-- tokens__you_will_not_be_able_to_sign_in_to_your -->
<string name="tokens__sign_in_not_possible_title">Ohne dieses Token kannst du dich nicht bei deinem %1$s-Konto anmelden, sofern du die Zweitfaktor-Authentifizierung für %2$s aktiviert hast.</string>
<string name="voiceover__show_service_key">Serviceschlüssel anzeigen</string>
<string name="voiceover__copy_service_key">Serviceschlüssel kopieren</string>
<string name="voiceover__show_service_key">Geheimschlüssel anzeigen</string>
<string name="voiceover__copy_service_key">Geheimschlüssel kopieren</string>
<!-- voiceover__seconds_left -->
<string name="voiceover__seconds_left_counter_title">Zähler mit den verbleibenden Sekunden bis zum Tokenwechsel</string>
<string name="voiceover__delete_button">Löschknopf</string>
<string name="voiceover__service_deleted">Dienst gelöscht</string>
<!-- voiceover__hidden_secret_key_use_show button -->
<string name="voiceover__reveal_hidden_secret_key_button_title">Dieses Feld beinhaltet einen versteckten geheimen Schlüssel. Verwende den Anzeigen Knopf, um ihn anzuzeigen. Es wird nur funktionieren wenn du den Apps Pin für den Sperrbildschirm eingerichtet hast</string>
<string name="voiceover__reveal_hidden_secret_key_button_title">Dieses Feld beinhaltet einen versteckten Geheimschlüssel. Verwende den Anzeigen Knopf, um ihn anzuzeigen. Es wird nur funktionieren wenn du den Apps Pin für den Sperrbildschirm eingerichtet hast</string>
<string name="voiceover__service_name">Dienstname: %s</string>
<string name="voiceover__additional_info">Zusätzliche Informationen: %s</string>
<string name="voiceover__token_tap_to_copy">Token %s. Tippe zum Kopieren</string>
@ -559,13 +559,13 @@
<string name="tokens__qr_read_image_try_again">Versuche eine andere Sprache auszuwählen.</string>
<string name="tokens__remove_it_forever">Dienst endgültig löschen</string>
<!-- Service could not be added, Service Key is invalid. Try again. -->
<string name="tokens__service_add_error">Dienst konnte nicht hinzugefügt werden, denn der Service Schlüssel ist ungültig. Bitte versuche es nochmal.</string>
<string name="tokens__service_add_error">Dienst konnte nicht hinzugefügt werden, denn der Geheimschlüssel ist ungültig. Bitte versuche es nochmal.</string>
<!-- A service with this Service Key already exists. Do you want to override it? -->
<string name="tokens__service_already_exists">Ein Dienst mit diesem Service Schlüssel existiert bereits. Möchtest du diesen ersetzen?</string>
<string name="tokens__service_already_exists">Ein Dienst mit diesem Geheimschlüssel existiert bereits. Möchtest du diesen ersetzen?</string>
<string name="tokens__service_key_invalid_characters">Schlüssel enthält ungültige Zeichen</string>
<string name="tokens__show_service_key">Service Schlüssel anzeigen</string>
<string name="tokens__show_service_key">Geheimschlüssel anzeigen</string>
<!-- Your Service Key is protected. Please add PIN or Fingerprint lock in order to see it. -->
<string name="tokens__show_service_key_setup_lock">Dein Service Schlüssel ist geschützt. Bitte füge einen PIN oder eine Fingerabdrucksperre hinzu, um ihn zu sehen.</string>
<string name="tokens__show_service_key_setup_lock">Dein Geheimschlüssel ist geschützt. Bitte füge einen PIN oder eine Fingerabdrucksperre hinzu, um ihn zu sehen.</string>
<string name="tokens__tokens_list_is_empty">Liste mit Diensten ist leer</string>
<string name="tokens__use_plus_button_to_add_tokens">Verwende den \"+\" Knopf, um einen neuen Dienst hinzuzufügen</string>
<string name="tokens__you_will_not_be_able_to_sign_in_to_your">Du kannst dich ohne dieses Token nicht mehr bei deinem %1$s-Konto anmelden, solange die Zwei-Faktor-Authentifizierung für %2$s aktiviert ist.\n\nDu kannst dieses Token nicht aus dem 2FAS-Papierkorb wiederherstellen.</string>
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Screenshots erlauben</string>
<string name="settings__option_screenshots_confirm_title">Willst du Screenshots innerhalb der App zulassen?</string>
<string name="settings__option_screenshots_confirm_description">Bist du dir sicher? Mit dieser Option kannst du Screenshots erstellen und jeden Bildschirm innerhalb der App aufzeichnen. Jedoch erlaubt dies auch alle externen Versuche, den Bildshirm innerhalb der App zu erfassen.\nAus Sicherheitsgründen wird diese Option automatisch nach 5 Minuten ausgeschaltet.</string>
<string name="social__social_media">Soziale Medien</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Token ausblenden</string>
<string name="settings__hide_tokens_description">Token werden nach dem antippen enthüllt</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: es-ES, Spanish (Spain)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Permitir capturas de pantalla</string>
<string name="settings__option_screenshots_confirm_title">¿Permitir capturas de pantalla de la aplicación?</string>
<string name="settings__option_screenshots_confirm_description">¿Estás seguro? Esta opción te permite tomar capturas y grabaciones de cualquier pantalla de la aplicación. Sin embargo, esto también podría permitir cualquier intento externo de capturar la pantalla de la aplicación.\nPor razones de seguridad, esta opción será deshabilitada automáticamente después de 5 minutos.</string>
<string name="social__social_media">Medios sociales</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Reddit</string>
<string name="settings__hide_tokens_title">Ocultar los tokens</string>
<string name="settings__hide_tokens_description">Los tokens se revelarán al tacto</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: fr-FR, French (France)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:18 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -103,7 +103,7 @@
<!-- Original: Adding code -->
<string name="notifications__adding_code">Ajouter un nouveau code</string>
<!-- notifications__private_key_copied -->
<string name="notifications__service_key_copied">Clé de configuration copiée</string>
<string name="notifications__service_key_copied">Clé secrète copiée</string>
<!-- voiceover__token_is_already_on_the_list -->
<string name="notifications__token_already_added">Cette clé 2FA est déjà présente sur la liste</string>
<string name="notifications__counter_copied">Compteur copié</string>
@ -158,15 +158,15 @@
<string name="tokens__move_to_trash">Déplacer vers la corbeille</string>
<string name="tokens__additional_info">Information supplémentaire</string>
<string name="tokens__choose_method">Sélectionner une méthode</string>
<string name="tokens__duplicated_private_key">Clé de configuration dupliquée</string>
<string name="tokens__duplicated_private_key">Clé secrète dupliquée</string>
<!-- tokens__incorrect_private_key -->
<string name="tokens__incorrect_service_key">Clé de configuration incorrecte (uniquement les nombres de 2 à 7 et les lettres), longueur max. de 512 caractères</string>
<string name="tokens__incorrect_service_key">Clé secrète incorrecte (uniquement les nombres de 2 à 7 et les lettres), longueur max. de 512 caractères</string>
<string name="tokens__try_again">OK, réessayons</string>
<!-- Original: To capture the QR code
tokens__point_right_2fa_code -->
<string name="tokens__scan_qr_code_title">Dirigez votre appareil photo vers l\'écran pour scanner le QR code.</string>
<!-- tokens__private_key -->
<string name="tokens__service_key">Clé de configuration</string>
<string name="tokens__service_key">Clé secrète</string>
<string name="tokens__qr_code_leads_to_app_store">Ce QR code vous renvoie vers l\'App Store</string>
<!-- tokens__remove_it_forever -->
<string name="tokens__remove_forever">Supprimer la clé</string>
@ -180,7 +180,7 @@
<string name="tokens__service_key_to_short">Trop court. Minimum 4 caractères</string>
<string name="tokens__service_name">Nom du service</string>
<!-- tokens__this_private_key_exists_used_in -->
<string name="tokens__service_key_already_used_title">La clé de configuration du code scanné est déjà utilisée dans %s. Vous êtes probablement en train de le scanner à nouveau</string>
<string name="tokens__service_key_already_used_title">La Clé secrète du code scanné est déjà utilisée dans %s. Vous êtes probablement en train de le scanner à nouveau</string>
<string name="tokens__this_qr_code_is_inavlid">Ce code est incorrect ou n\'est pas supporté. Réessayez.</string>
<string name="tokens__type_service_name">Saisir le nom du service</string>
<string name="tokens__enter_service_name">Entrer le nom du service</string>
@ -277,8 +277,8 @@
<string name="tokens__order_menu_option_company">Soumettre l\'icône en tant que société</string>
<!-- tokens__you_will_not_be_able_to_sign_in_to_your -->
<string name="tokens__sign_in_not_possible_title">Il vous sera impossible de vous connecter à votre compte %1$s sans ce code, tant que la vérification en deux étapes\u0020\u0020%2$s est activée.</string>
<string name="voiceover__show_service_key">Afficher la clé de configuration</string>
<string name="voiceover__copy_service_key">Copie de la clé de configuration</string>
<string name="voiceover__show_service_key">Afficher la Clé secrète</string>
<string name="voiceover__copy_service_key">Copie de la Clé secrète</string>
<!-- voiceover__seconds_left -->
<string name="voiceover__seconds_left_counter_title">Compteur avec les secondes restantes pour le changement de clé 2FA</string>
<string name="voiceover__delete_button">Bouton supprimer</string>
@ -559,13 +559,13 @@
<string name="tokens__qr_read_image_try_again">Veuillez sélectionner une autre image.</string>
<string name="tokens__remove_it_forever">Supprimer le service définitivement</string>
<!-- Service could not be added, Service Key is invalid. Try again. -->
<string name="tokens__service_add_error">Le service ne peut être ajouté car la clé de configuration est invalide. Veuillez réessayer.</string>
<string name="tokens__service_add_error">Le service ne peut être ajouté car la Clé secrète est invalide. Veuillez réessayer.</string>
<!-- A service with this Service Key already exists. Do you want to override it? -->
<string name="tokens__service_already_exists">Un service avec cette clé de configuration existe déjà. Voulez-vous lécraser ?</string>
<string name="tokens__service_already_exists">Un service avec cette Clé secrète existe déjà. Voulez-vous lécraser ?</string>
<string name="tokens__service_key_invalid_characters">La clé contient des caractères invalides</string>
<string name="tokens__show_service_key">Afficher la clé de configuration</string>
<string name="tokens__show_service_key">Afficher la Clé secrète</string>
<!-- Your Service Key is protected. Please add PIN or Fingerprint lock in order to see it. -->
<string name="tokens__show_service_key_setup_lock">Votre clé de configuration est protégée. Ajoutez un code PIN ou un verrouillage par empreinte pour l\'afficher.</string>
<string name="tokens__show_service_key_setup_lock">Votre Clé secrète est protégée. Ajoutez un code PIN ou un verrouillage par empreinte pour l\'afficher.</string>
<string name="tokens__tokens_list_is_empty">La liste des services est vide</string>
<string name="tokens__use_plus_button_to_add_tokens">Utilisez le bouton \"+\" pour ajouter un nouveau service</string>
<string name="tokens__you_will_not_be_able_to_sign_in_to_your">Impossible de vous connecter à votre compte %1$s sans ce code tant que la vérification en deux étapes %2$s est activée.</string>
@ -750,9 +750,9 @@
<string name="tokens__add_success_title">C\'est presque fini !</string>
<string name="tokens__add_success_description">Pour terminer l\'appairage du service, vous devez ressaisir ce token.</string>
<string name="tokens__add_manual_title">Associer le service à 2FAS</string>
<string name="tokens__add_manual_description">Saisissez le nom et la clé du service.</string>
<string name="tokens__add_manual_description">Saisissez le nom et la clé secrète.</string>
<string name="tokens__add_manual_service_name">Nom du service (obligatoire)</string>
<string name="tokens__add_manual_service_key">Clé de service (obligatoire)</string>
<string name="tokens__add_manual_service_key">Clé secrète (obligatoire)</string>
<string name="tokens__add_manual_other">Autres paramètres</string>
<string name="tokens__add_manual_other_optional">(facultatif)</string>
<string name="tokens__add_manual_done_cta">Ajouter un service</string>
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Autoriser les captures d\'écran</string>
<string name="settings__option_screenshots_confirm_title">Autoriser les captures d\'écran de l\'application ?</string>
<string name="settings__option_screenshots_confirm_description">Êtes-vous sûr ? Cette option vous permet de faire des captures d\'écran et d\'enregistrer n\'importe quel écran dans l\'application. Cependant, cette option autorise également toute tentative externe de capture d\'écran dans l\'application.\nPour des raisons de sécurité, cette option sera automatiquement désactivée au bout de 5 minutes.</string>
<string name="social__social_media">Médias sociaux</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Cacher les clés</string>
<string name="settings__hide_tokens_description">Les jetons sont révélés lorsque vous appuyez sur l\'écran.</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: it-IT, Italian (Italy)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Consenti gli screenshot</string>
<string name="settings__option_screenshots_confirm_title">Consentire gli screenshot dell\'app?</string>
<string name="settings__option_screenshots_confirm_description">Sei sicuro? Questa opzione consente di effettuare screenshot e registrare qualsiasi schermata all\'interno dell\'applicazione. Tuttavia, consentirà anche qualsiasi tentativo esterno di catturare schermate nell\'app.\nPer motivi di sicurezza, questa opzione si disattiva automaticamente dopo 5 minuti.</string>
<string name="social__social_media">Media sociali</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Nascondi token</string>
<string name="settings__hide_tokens_description">I token saranno rivelati al tocco</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: pl-PL, Polish (Poland)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -468,11 +468,11 @@
<string name="notifications__no_notifications">Brak powiadomień</string>
<string name="CFBundleSpokenName">2 F A S</string>
<string name="commons__2fas_toolbar">2FAS</string>
<string name="backup__google_drive_not_available">Google Drive nie jest dostępny</string>
<string name="backup__google_drive_disabled_title">Google Drive został wyłączony przez użytkownika</string>
<string name="backup__google_drive_not_available">Dysk Google nie jest dostępny</string>
<string name="backup__google_drive_disabled_title">Dysk Google został wyłączony przez użytkownika</string>
<string name="backup__update_required_to_import_title_2">Aby zaimportować zawartość tego pliku, będziesz potrzebował nowej wersji aplikacji. Najnowszą wersję znajdziesz w Sklepie Google</string>
<string name="tokens__qr_code_leads_to_google_store">Ten kod QR przeniesie Cię do Sklepu Google</string>
<string name="introduction__page_4_content_android">Twoje tokeny są przechowywane w trybie offline za pośrednictwem pamięci masowej urządzenia, więc pamiętaj o utworzeniu kopii zapasowej swoich usług! Użyj Google Drive Sync i hasła PIN, aby zabezpieczyć się przed nieautoryzowanym dostępem i uszkodzeniem urządzenia.</string>
<string name="introduction__page_4_content_android">Twoje tokeny są przechowywane w trybie offline za pośrednictwem pamięci masowej urządzenia, więc pamiętaj o utworzeniu kopii zapasowej swoich usług! Użyj Synchronizacji Dysku Google i hasła PIN, aby zabezpieczyć się przed nieautoryzowanym dostępem i uszkodzeniem urządzenia.</string>
<string name="new_version__new_version_message_android">W Sklepie Google dostępna jest nowa wersja programu 2FAS. Zaktualizuj teraz!</string>
<string name="security_error_no_match">PIN nie pasuje! Proszę spróbować ponownie.</string>
<string name="settings_developer_options">Opcje Dewelopera</string>
@ -484,17 +484,17 @@
<string name="tokens__service_unsaved_changes_title">Niezapisane zmiany</string>
<string name="tokens__service_key_invalid_format">Klucz ma nieprawidłowy format</string>
<string name="intent_error_no_gallery_app">Błąd systemu! Nie ma systemowej aplikacji Galeria.</string>
<string name="gdrive_permission_title">Zgoda na dostęp do Google Drive</string>
<string name="gdrive_permission_msg">Potrzebujemy zgody na dostęp do Google Drive, aby zapisać pliki kopii zapasowej w danych aplikacji.</string>
<string name="gdrive_permission_title">Zgoda na dostęp do Dysku Google</string>
<string name="gdrive_permission_msg">Potrzebujemy zgody na dostęp do Dysku Google, aby zapisać pliki kopii zapasowej w danych aplikacji.</string>
<string name="gdrive_internet_title">Wymagane połączenie z Internetem</string>
<string name="gdrive_internet_msg">W celu synchronizacji z Google należy włączyć połączenie z Internetem.</string>
<string name="gdrive_wipe_internet_msg">Aby cofnąć dostęp do Google Drive, należy włączyć połączenie internetowe.</string>
<string name="gdrive_wipe_internet_msg">Aby cofnąć dostęp do Dysku Google, należy włączyć połączenie internetowe.</string>
<string name="backup_explanation_msg">Włącz automatyczną synchronizacje Twoich danych z plikiem kopii zapasowej przechowywanym w ukrytym folderze na Twoim Dysku Google. Plik ten oraz folder dostępny jest jedynie dla aplikacji 2FAS.</string>
<string name="backup_error_unknown">Podczas synchronizacji kopii zapasowej wystąpił błąd. Proszę ponownie uruchomić aplikację i spróbować ponownie po kilku minutach.</string>
<string name="backup_error_encrypt_unknown">Podczas szyfrowania kopii zapasowej wystąpił błąd. Proszę ponownie ustawić hasło.</string>
<string name="backup_error_decrypt_unknown">Podczas odszyfrowywania kopii zapasowej wystąpił błąd. Proszę ponownie ustawić hasło.</string>
<string name="backup__google_drive_problem_title">Wystąpił problem z iCloud. Sprawdź ustawienia systemowe</string>
<string name="backup_error_auth">Wystąpił problem z uprawnieniami konta Google Drive. Spróbuj wyłączyć i włączyć synchronizację.</string>
<string name="backup_error_auth">Wystąpił problem z uprawnieniami konta Dysku Google. Spróbuj wyłączyć i włączyć synchronizację.</string>
<string name="backup_error_no_password">Kopia zapasowa jest chroniona hasłem. Włącz ją i wprowadź swoje hasło.</string>
<string name="backup_error_wrong_password">Kopia zapasowa jest chroniona hasłem, ale podane hasło jest nieprawidłowe. Włącz ją i wprowadź hasło.</string>
<string name="customization_service_assignment">Przydział serwisów</string>
@ -511,7 +511,7 @@
<string name="backup_notice_later">Może później</string>
<string name="backup_notice_cta">Włącz</string>
<string name="widgets_empty_msg">Nie dodano żadnych serwisów</string>
<string name="backup__section_description_google">ZALECANE: Synchronizacja Google Drive zabezpiecza tokeny w Google Drive w przypadku utraty lub uszkodzenia urządzenia. Miej ją włączoną.</string>
<string name="backup__section_description_google">ZALECANE: Synchronizacja z Dyskiem Google zabezpiecza tokeny na Dysku Google w przypadku utraty lub uszkodzenia urządzenia. Miej ją włączoną.</string>
<string name="backup_turn_off_title">Czy na pewno wyłączyć synchronizacje z Dyskiem Google?</string>
<string name="backup_turn_off_msg1">Wszystkie Twoje tokeny pozostaną na tym urządzeniu w pamięci lokalnej oraz w ukrytym pliku na Twoim Dysku Google. Nie będą one jednak synchronizowane. Zostaniesz również wylogowany z Twojego konta Google.</string>
<string name="backup_turn_off_msg2">Pamiętaj, że w przypadku utraty lub uszkodzenia tego urządzenia lub usunięcia aplikacji 2FAS, możesz nie być w stanie odzyskać swoich tokenów i stracisz dostęp do kont internetowych zabezpieczonych przez 2FA!</string>
@ -705,8 +705,8 @@
<string name="externalimport__aegis_success_msg">Ten plik JSON umożliwia import tokenów z Aegis.</string>
<string name="externalimport__raivo_success_msg">Ten plik JSON umożliwia import tokenów z Raivo.</string>
<string name="externalimport__read_error">Nie udało się odczytać żadnych tokenów. Spróbuj wybrać inny plik.</string>
<string name="settings__gd_sync_info">Pokazuj przypomnienie o synchronizacji z Google Drive</string>
<string name="settings__gd_sync_disable_confirm">Czy jesteś pewien? Bez synchronizacji z Google Drive nie będziesz mógł przywrócić swoich tokenów, jeśli zgubisz lub zresetujesz telefon!</string>
<string name="settings__gd_sync_info">Pokazuj przypomnienie o synchronizacji z Dyskiem Google</string>
<string name="settings__gd_sync_disable_confirm">Czy jesteś pewien? Bez synchronizacji z Dyskiem Google nie będziesz mógł przywrócić swoich tokenów, jeśli zgubisz lub zresetujesz telefon!</string>
<string name="extension__code_sent_msg">Kod wysłany pomyślnie</string>
<string name="extension__code_sent_error_msg">Wystąpił błąd podczas wysyłania kodu</string>
<string name="tokens__add_service_title">Dodaj nowy serwis</string>
@ -733,7 +733,7 @@
<string name="settings__appearance">Wygląd</string>
<string name="settings__show_next_token_desc">Pokaż następny token kilka sekund przez wygaśnięciem aktualnego tokenu</string>
<string name="settings__list_style">Styl listy serwisów</string>
<string name="backup__reminder_msg">Dysk Google nie zsynchronizowany.</string>
<string name="backup__reminder_msg">Dysk Google nie jest zsynchronizowany.</string>
<string name="backup__reminder_cta">Ustawienia</string>
<string name="settings__list_style_option_default">Domyślny</string>
<string name="settings__list_style_option_compact">Kompaktowy</string>
@ -770,4 +770,16 @@
<string name="settings__option_screenshots">Zezwalaj na zrzuty ekranu</string>
<string name="settings__option_screenshots_confirm_title">Pozwolić na zrzuty ekranu w aplikacji?</string>
<string name="settings__option_screenshots_confirm_description">Czy na pewno? Ta opcja umożliwia zrzuty ekranu i nagrywanie dowolnego ekranu w aplikacji. Jednocześnie umożliwia ona próby przechwycenia ekranu przez zewnętrzne aplikacje. Ze względów bezpieczeństwa, opcja ta zostanie automatycznie wyłączona po 5 minutach.</string>
<string name="social__social_media">Media społecznościowe</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Schowaj tokeny</string>
<string name="settings__hide_tokens_description">Pokaż token po kliknięciu</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: pt-PT, Portuguese (Portugal)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Permitir capturas de ecrã</string>
<string name="settings__option_screenshots_confirm_title">Permitir capturas de ecrã dentro da aplicação?</string>
<string name="settings__option_screenshots_confirm_description">Tens a certeza? Esta opção irá permitir capturas e gravações de ecrã dentro da aplicação. Contudo, isto irá também permitir tentativas externas de capturar ecrãs dentro da aplicação.\nPor razões de segurança, esta opção irá ser automaticamente desligada depois de 5 minutos.</string>
<string name="social__social_media">Redes sociais</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Esconder tokens</string>
<string name="settings__hide_tokens_description">Os tokens serão revelados ao tocar</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: uk-UA, Ukrainian (Ukraine)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -770,4 +770,16 @@
<string name="settings__option_screenshots">Дозволити скріншоти</string>
<string name="settings__option_screenshots_confirm_title">Дозволити скріншоти додатку?</string>
<string name="settings__option_screenshots_confirm_description">Ви впевнені? Ця опція дозволяє робити скріншоти та записувати будь-який екран додатку. Однак це також дозволить будь-які зовнішні спроби запису екранів у додатку.\nЗ міркувань безпеки ця опція автоматично вимкнеться через 5 хвилин.</string>
<string name="social__social_media">Соціальні медіа</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Сховати токени</string>
<string name="settings__hide_tokens_description">Показати токени при натисканні</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: en, English
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:18 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Allow screenshots</string>
<string name="settings__option_screenshots_confirm_title">Allow screenshots of the app?</string>
<string name="settings__option_screenshots_confirm_description">Are you sure? This option allows you to screenshot and record any screen within the app. However, this will also allow any external attempts of capturing screens in the app.\nFor safety reasons, this option will be automatically turned off after 5 minutes.</string>
<string name="social__social_media">Social media</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Hide tokens</string>
<string name="settings__hide_tokens_description">Tokens will be revealed on tap</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -93,6 +93,7 @@ fun QrScannerScreen(
modifier = Modifier
.fillMaxWidth()
.padding(24.dp)
.padding(top = 64.dp)
.background(color = Color(0xBF000000))
.padding(8.dp)

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: de-DE, German (Germany)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -103,7 +103,7 @@
<!-- Original: Adding code -->
<string name="notifications__adding_code">Hinzufügen eines neuen Codes</string>
<!-- notifications__private_key_copied -->
<string name="notifications__service_key_copied">Service Schlüssel Kopiert</string>
<string name="notifications__service_key_copied">Geheimschlüssel Kopiert</string>
<!-- voiceover__token_is_already_on_the_list -->
<string name="notifications__token_already_added">Dieses Token ist bereits in der Liste vorhanden</string>
<string name="notifications__counter_copied">Zähler kopiert</string>
@ -158,15 +158,15 @@
<string name="tokens__move_to_trash">In den Papierkorb verschieben</string>
<string name="tokens__additional_info">Zusätzliche Informationen</string>
<string name="tokens__choose_method">Methode auswählen</string>
<string name="tokens__duplicated_private_key">Duplizierter Dienstschlüssel</string>
<string name="tokens__duplicated_private_key">Duplizierter Geheimschlüssel</string>
<!-- tokens__incorrect_private_key -->
<string name="tokens__incorrect_service_key">Falscher Dienstschlüssel (nur Zahlen von 2 bis 7, Buchstaben), max. 512 Zeichen lang</string>
<string name="tokens__incorrect_service_key">Falscher Geheimschlüssel (nur Zahlen von 2 bis 7, Buchstaben), max. 512 Zeichen lang</string>
<string name="tokens__try_again">OK, erneut versuchen</string>
<!-- Original: To capture the QR code
tokens__point_right_2fa_code -->
<string name="tokens__scan_qr_code_title">Richte die Kamera auf den Bildschirm, um den QR-Code zu scannen</string>
<!-- tokens__private_key -->
<string name="tokens__service_key">Serviceschlüssel</string>
<string name="tokens__service_key">Geheimschlüssel</string>
<string name="tokens__qr_code_leads_to_app_store">Dieser QR-Code führt dich zum App-Store</string>
<!-- tokens__remove_it_forever -->
<string name="tokens__remove_forever">Token löschen</string>
@ -180,7 +180,7 @@
<string name="tokens__service_key_to_short">Schlüssel zu kurz. Minimum 4 Zeichen</string>
<string name="tokens__service_name">Service-Name</string>
<!-- tokens__this_private_key_exists_used_in -->
<string name="tokens__service_key_already_used_title">Der Serviceschlüssel aus dem gescannten Code wird bereits in %s verwendet. Du scannst ihn wahrscheinlich erneut</string>
<string name="tokens__service_key_already_used_title">Der Geheimschlüssel aus dem gescannten Code wird bereits in %s verwendet. Du scannst ihn wahrscheinlich erneut</string>
<string name="tokens__this_qr_code_is_inavlid">Dieser Code ist falsch oder wird nicht unterstützt. Versuch es erneut.</string>
<string name="tokens__type_service_name">Dienstname eingeben</string>
<string name="tokens__enter_service_name">Dienstname eingeben</string>
@ -277,14 +277,14 @@
<string name="tokens__order_menu_option_company">Logo einreichen als Unternehmen</string>
<!-- tokens__you_will_not_be_able_to_sign_in_to_your -->
<string name="tokens__sign_in_not_possible_title">Ohne dieses Token kannst du dich nicht bei deinem %1$s-Konto anmelden, sofern du die Zweitfaktor-Authentifizierung für %2$s aktiviert hast.</string>
<string name="voiceover__show_service_key">Serviceschlüssel anzeigen</string>
<string name="voiceover__copy_service_key">Serviceschlüssel kopieren</string>
<string name="voiceover__show_service_key">Geheimschlüssel anzeigen</string>
<string name="voiceover__copy_service_key">Geheimschlüssel kopieren</string>
<!-- voiceover__seconds_left -->
<string name="voiceover__seconds_left_counter_title">Zähler mit den verbleibenden Sekunden bis zum Tokenwechsel</string>
<string name="voiceover__delete_button">Löschknopf</string>
<string name="voiceover__service_deleted">Dienst gelöscht</string>
<!-- voiceover__hidden_secret_key_use_show button -->
<string name="voiceover__reveal_hidden_secret_key_button_title">Dieses Feld beinhaltet einen versteckten geheimen Schlüssel. Verwende den Anzeigen Knopf, um ihn anzuzeigen. Es wird nur funktionieren wenn du den Apps Pin für den Sperrbildschirm eingerichtet hast</string>
<string name="voiceover__reveal_hidden_secret_key_button_title">Dieses Feld beinhaltet einen versteckten Geheimschlüssel. Verwende den Anzeigen Knopf, um ihn anzuzeigen. Es wird nur funktionieren wenn du den Apps Pin für den Sperrbildschirm eingerichtet hast</string>
<string name="voiceover__service_name">Dienstname: %s</string>
<string name="voiceover__additional_info">Zusätzliche Informationen: %s</string>
<string name="voiceover__token_tap_to_copy">Token %s. Tippe zum Kopieren</string>
@ -559,13 +559,13 @@
<string name="tokens__qr_read_image_try_again">Versuche eine andere Sprache auszuwählen.</string>
<string name="tokens__remove_it_forever">Dienst endgültig löschen</string>
<!-- Service could not be added, Service Key is invalid. Try again. -->
<string name="tokens__service_add_error">Dienst konnte nicht hinzugefügt werden, denn der Service Schlüssel ist ungültig. Bitte versuche es nochmal.</string>
<string name="tokens__service_add_error">Dienst konnte nicht hinzugefügt werden, denn der Geheimschlüssel ist ungültig. Bitte versuche es nochmal.</string>
<!-- A service with this Service Key already exists. Do you want to override it? -->
<string name="tokens__service_already_exists">Ein Dienst mit diesem Service Schlüssel existiert bereits. Möchtest du diesen ersetzen?</string>
<string name="tokens__service_already_exists">Ein Dienst mit diesem Geheimschlüssel existiert bereits. Möchtest du diesen ersetzen?</string>
<string name="tokens__service_key_invalid_characters">Schlüssel enthält ungültige Zeichen</string>
<string name="tokens__show_service_key">Service Schlüssel anzeigen</string>
<string name="tokens__show_service_key">Geheimschlüssel anzeigen</string>
<!-- Your Service Key is protected. Please add PIN or Fingerprint lock in order to see it. -->
<string name="tokens__show_service_key_setup_lock">Dein Service Schlüssel ist geschützt. Bitte füge einen PIN oder eine Fingerabdrucksperre hinzu, um ihn zu sehen.</string>
<string name="tokens__show_service_key_setup_lock">Dein Geheimschlüssel ist geschützt. Bitte füge einen PIN oder eine Fingerabdrucksperre hinzu, um ihn zu sehen.</string>
<string name="tokens__tokens_list_is_empty">Liste mit Diensten ist leer</string>
<string name="tokens__use_plus_button_to_add_tokens">Verwende den \"+\" Knopf, um einen neuen Dienst hinzuzufügen</string>
<string name="tokens__you_will_not_be_able_to_sign_in_to_your">Du kannst dich ohne dieses Token nicht mehr bei deinem %1$s-Konto anmelden, solange die Zwei-Faktor-Authentifizierung für %2$s aktiviert ist.\n\nDu kannst dieses Token nicht aus dem 2FAS-Papierkorb wiederherstellen.</string>
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Screenshots erlauben</string>
<string name="settings__option_screenshots_confirm_title">Willst du Screenshots innerhalb der App zulassen?</string>
<string name="settings__option_screenshots_confirm_description">Bist du dir sicher? Mit dieser Option kannst du Screenshots erstellen und jeden Bildschirm innerhalb der App aufzeichnen. Jedoch erlaubt dies auch alle externen Versuche, den Bildshirm innerhalb der App zu erfassen.\nAus Sicherheitsgründen wird diese Option automatisch nach 5 Minuten ausgeschaltet.</string>
<string name="social__social_media">Soziale Medien</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Token ausblenden</string>
<string name="settings__hide_tokens_description">Token werden nach dem antippen enthüllt</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: es-ES, Spanish (Spain)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Permitir capturas de pantalla</string>
<string name="settings__option_screenshots_confirm_title">¿Permitir capturas de pantalla de la aplicación?</string>
<string name="settings__option_screenshots_confirm_description">¿Estás seguro? Esta opción te permite tomar capturas y grabaciones de cualquier pantalla de la aplicación. Sin embargo, esto también podría permitir cualquier intento externo de capturar la pantalla de la aplicación.\nPor razones de seguridad, esta opción será deshabilitada automáticamente después de 5 minutos.</string>
<string name="social__social_media">Medios sociales</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Reddit</string>
<string name="settings__hide_tokens_title">Ocultar los tokens</string>
<string name="settings__hide_tokens_description">Los tokens se revelarán al tacto</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: fr-FR, French (France)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:18 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -103,7 +103,7 @@
<!-- Original: Adding code -->
<string name="notifications__adding_code">Ajouter un nouveau code</string>
<!-- notifications__private_key_copied -->
<string name="notifications__service_key_copied">Clé de configuration copiée</string>
<string name="notifications__service_key_copied">Clé secrète copiée</string>
<!-- voiceover__token_is_already_on_the_list -->
<string name="notifications__token_already_added">Cette clé 2FA est déjà présente sur la liste</string>
<string name="notifications__counter_copied">Compteur copié</string>
@ -158,15 +158,15 @@
<string name="tokens__move_to_trash">Déplacer vers la corbeille</string>
<string name="tokens__additional_info">Information supplémentaire</string>
<string name="tokens__choose_method">Sélectionner une méthode</string>
<string name="tokens__duplicated_private_key">Clé de configuration dupliquée</string>
<string name="tokens__duplicated_private_key">Clé secrète dupliquée</string>
<!-- tokens__incorrect_private_key -->
<string name="tokens__incorrect_service_key">Clé de configuration incorrecte (uniquement les nombres de 2 à 7 et les lettres), longueur max. de 512 caractères</string>
<string name="tokens__incorrect_service_key">Clé secrète incorrecte (uniquement les nombres de 2 à 7 et les lettres), longueur max. de 512 caractères</string>
<string name="tokens__try_again">OK, réessayons</string>
<!-- Original: To capture the QR code
tokens__point_right_2fa_code -->
<string name="tokens__scan_qr_code_title">Dirigez votre appareil photo vers l\'écran pour scanner le QR code.</string>
<!-- tokens__private_key -->
<string name="tokens__service_key">Clé de configuration</string>
<string name="tokens__service_key">Clé secrète</string>
<string name="tokens__qr_code_leads_to_app_store">Ce QR code vous renvoie vers l\'App Store</string>
<!-- tokens__remove_it_forever -->
<string name="tokens__remove_forever">Supprimer la clé</string>
@ -180,7 +180,7 @@
<string name="tokens__service_key_to_short">Trop court. Minimum 4 caractères</string>
<string name="tokens__service_name">Nom du service</string>
<!-- tokens__this_private_key_exists_used_in -->
<string name="tokens__service_key_already_used_title">La clé de configuration du code scanné est déjà utilisée dans %s. Vous êtes probablement en train de le scanner à nouveau</string>
<string name="tokens__service_key_already_used_title">La Clé secrète du code scanné est déjà utilisée dans %s. Vous êtes probablement en train de le scanner à nouveau</string>
<string name="tokens__this_qr_code_is_inavlid">Ce code est incorrect ou n\'est pas supporté. Réessayez.</string>
<string name="tokens__type_service_name">Saisir le nom du service</string>
<string name="tokens__enter_service_name">Entrer le nom du service</string>
@ -277,8 +277,8 @@
<string name="tokens__order_menu_option_company">Soumettre l\'icône en tant que société</string>
<!-- tokens__you_will_not_be_able_to_sign_in_to_your -->
<string name="tokens__sign_in_not_possible_title">Il vous sera impossible de vous connecter à votre compte %1$s sans ce code, tant que la vérification en deux étapes\u0020\u0020%2$s est activée.</string>
<string name="voiceover__show_service_key">Afficher la clé de configuration</string>
<string name="voiceover__copy_service_key">Copie de la clé de configuration</string>
<string name="voiceover__show_service_key">Afficher la Clé secrète</string>
<string name="voiceover__copy_service_key">Copie de la Clé secrète</string>
<!-- voiceover__seconds_left -->
<string name="voiceover__seconds_left_counter_title">Compteur avec les secondes restantes pour le changement de clé 2FA</string>
<string name="voiceover__delete_button">Bouton supprimer</string>
@ -559,13 +559,13 @@
<string name="tokens__qr_read_image_try_again">Veuillez sélectionner une autre image.</string>
<string name="tokens__remove_it_forever">Supprimer le service définitivement</string>
<!-- Service could not be added, Service Key is invalid. Try again. -->
<string name="tokens__service_add_error">Le service ne peut être ajouté car la clé de configuration est invalide. Veuillez réessayer.</string>
<string name="tokens__service_add_error">Le service ne peut être ajouté car la Clé secrète est invalide. Veuillez réessayer.</string>
<!-- A service with this Service Key already exists. Do you want to override it? -->
<string name="tokens__service_already_exists">Un service avec cette clé de configuration existe déjà. Voulez-vous lécraser ?</string>
<string name="tokens__service_already_exists">Un service avec cette Clé secrète existe déjà. Voulez-vous lécraser ?</string>
<string name="tokens__service_key_invalid_characters">La clé contient des caractères invalides</string>
<string name="tokens__show_service_key">Afficher la clé de configuration</string>
<string name="tokens__show_service_key">Afficher la Clé secrète</string>
<!-- Your Service Key is protected. Please add PIN or Fingerprint lock in order to see it. -->
<string name="tokens__show_service_key_setup_lock">Votre clé de configuration est protégée. Ajoutez un code PIN ou un verrouillage par empreinte pour l\'afficher.</string>
<string name="tokens__show_service_key_setup_lock">Votre Clé secrète est protégée. Ajoutez un code PIN ou un verrouillage par empreinte pour l\'afficher.</string>
<string name="tokens__tokens_list_is_empty">La liste des services est vide</string>
<string name="tokens__use_plus_button_to_add_tokens">Utilisez le bouton \"+\" pour ajouter un nouveau service</string>
<string name="tokens__you_will_not_be_able_to_sign_in_to_your">Impossible de vous connecter à votre compte %1$s sans ce code tant que la vérification en deux étapes %2$s est activée.</string>
@ -750,9 +750,9 @@
<string name="tokens__add_success_title">C\'est presque fini !</string>
<string name="tokens__add_success_description">Pour terminer l\'appairage du service, vous devez ressaisir ce token.</string>
<string name="tokens__add_manual_title">Associer le service à 2FAS</string>
<string name="tokens__add_manual_description">Saisissez le nom et la clé du service.</string>
<string name="tokens__add_manual_description">Saisissez le nom et la clé secrète.</string>
<string name="tokens__add_manual_service_name">Nom du service (obligatoire)</string>
<string name="tokens__add_manual_service_key">Clé de service (obligatoire)</string>
<string name="tokens__add_manual_service_key">Clé secrète (obligatoire)</string>
<string name="tokens__add_manual_other">Autres paramètres</string>
<string name="tokens__add_manual_other_optional">(facultatif)</string>
<string name="tokens__add_manual_done_cta">Ajouter un service</string>
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Autoriser les captures d\'écran</string>
<string name="settings__option_screenshots_confirm_title">Autoriser les captures d\'écran de l\'application ?</string>
<string name="settings__option_screenshots_confirm_description">Êtes-vous sûr ? Cette option vous permet de faire des captures d\'écran et d\'enregistrer n\'importe quel écran dans l\'application. Cependant, cette option autorise également toute tentative externe de capture d\'écran dans l\'application.\nPour des raisons de sécurité, cette option sera automatiquement désactivée au bout de 5 minutes.</string>
<string name="social__social_media">Médias sociaux</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Cacher les clés</string>
<string name="settings__hide_tokens_description">Les jetons sont révélés lorsque vous appuyez sur l\'écran.</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: it-IT, Italian (Italy)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Consenti gli screenshot</string>
<string name="settings__option_screenshots_confirm_title">Consentire gli screenshot dell\'app?</string>
<string name="settings__option_screenshots_confirm_description">Sei sicuro? Questa opzione consente di effettuare screenshot e registrare qualsiasi schermata all\'interno dell\'applicazione. Tuttavia, consentirà anche qualsiasi tentativo esterno di catturare schermate nell\'app.\nPer motivi di sicurezza, questa opzione si disattiva automaticamente dopo 5 minuti.</string>
<string name="social__social_media">Media sociali</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Nascondi token</string>
<string name="settings__hide_tokens_description">I token saranno rivelati al tocco</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: pl-PL, Polish (Poland)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -468,11 +468,11 @@
<string name="notifications__no_notifications">Brak powiadomień</string>
<string name="CFBundleSpokenName">2 F A S</string>
<string name="commons__2fas_toolbar">2FAS</string>
<string name="backup__google_drive_not_available">Google Drive nie jest dostępny</string>
<string name="backup__google_drive_disabled_title">Google Drive został wyłączony przez użytkownika</string>
<string name="backup__google_drive_not_available">Dysk Google nie jest dostępny</string>
<string name="backup__google_drive_disabled_title">Dysk Google został wyłączony przez użytkownika</string>
<string name="backup__update_required_to_import_title_2">Aby zaimportować zawartość tego pliku, będziesz potrzebował nowej wersji aplikacji. Najnowszą wersję znajdziesz w Sklepie Google</string>
<string name="tokens__qr_code_leads_to_google_store">Ten kod QR przeniesie Cię do Sklepu Google</string>
<string name="introduction__page_4_content_android">Twoje tokeny są przechowywane w trybie offline za pośrednictwem pamięci masowej urządzenia, więc pamiętaj o utworzeniu kopii zapasowej swoich usług! Użyj Google Drive Sync i hasła PIN, aby zabezpieczyć się przed nieautoryzowanym dostępem i uszkodzeniem urządzenia.</string>
<string name="introduction__page_4_content_android">Twoje tokeny są przechowywane w trybie offline za pośrednictwem pamięci masowej urządzenia, więc pamiętaj o utworzeniu kopii zapasowej swoich usług! Użyj Synchronizacji Dysku Google i hasła PIN, aby zabezpieczyć się przed nieautoryzowanym dostępem i uszkodzeniem urządzenia.</string>
<string name="new_version__new_version_message_android">W Sklepie Google dostępna jest nowa wersja programu 2FAS. Zaktualizuj teraz!</string>
<string name="security_error_no_match">PIN nie pasuje! Proszę spróbować ponownie.</string>
<string name="settings_developer_options">Opcje Dewelopera</string>
@ -484,17 +484,17 @@
<string name="tokens__service_unsaved_changes_title">Niezapisane zmiany</string>
<string name="tokens__service_key_invalid_format">Klucz ma nieprawidłowy format</string>
<string name="intent_error_no_gallery_app">Błąd systemu! Nie ma systemowej aplikacji Galeria.</string>
<string name="gdrive_permission_title">Zgoda na dostęp do Google Drive</string>
<string name="gdrive_permission_msg">Potrzebujemy zgody na dostęp do Google Drive, aby zapisać pliki kopii zapasowej w danych aplikacji.</string>
<string name="gdrive_permission_title">Zgoda na dostęp do Dysku Google</string>
<string name="gdrive_permission_msg">Potrzebujemy zgody na dostęp do Dysku Google, aby zapisać pliki kopii zapasowej w danych aplikacji.</string>
<string name="gdrive_internet_title">Wymagane połączenie z Internetem</string>
<string name="gdrive_internet_msg">W celu synchronizacji z Google należy włączyć połączenie z Internetem.</string>
<string name="gdrive_wipe_internet_msg">Aby cofnąć dostęp do Google Drive, należy włączyć połączenie internetowe.</string>
<string name="gdrive_wipe_internet_msg">Aby cofnąć dostęp do Dysku Google, należy włączyć połączenie internetowe.</string>
<string name="backup_explanation_msg">Włącz automatyczną synchronizacje Twoich danych z plikiem kopii zapasowej przechowywanym w ukrytym folderze na Twoim Dysku Google. Plik ten oraz folder dostępny jest jedynie dla aplikacji 2FAS.</string>
<string name="backup_error_unknown">Podczas synchronizacji kopii zapasowej wystąpił błąd. Proszę ponownie uruchomić aplikację i spróbować ponownie po kilku minutach.</string>
<string name="backup_error_encrypt_unknown">Podczas szyfrowania kopii zapasowej wystąpił błąd. Proszę ponownie ustawić hasło.</string>
<string name="backup_error_decrypt_unknown">Podczas odszyfrowywania kopii zapasowej wystąpił błąd. Proszę ponownie ustawić hasło.</string>
<string name="backup__google_drive_problem_title">Wystąpił problem z iCloud. Sprawdź ustawienia systemowe</string>
<string name="backup_error_auth">Wystąpił problem z uprawnieniami konta Google Drive. Spróbuj wyłączyć i włączyć synchronizację.</string>
<string name="backup_error_auth">Wystąpił problem z uprawnieniami konta Dysku Google. Spróbuj wyłączyć i włączyć synchronizację.</string>
<string name="backup_error_no_password">Kopia zapasowa jest chroniona hasłem. Włącz ją i wprowadź swoje hasło.</string>
<string name="backup_error_wrong_password">Kopia zapasowa jest chroniona hasłem, ale podane hasło jest nieprawidłowe. Włącz ją i wprowadź hasło.</string>
<string name="customization_service_assignment">Przydział serwisów</string>
@ -511,7 +511,7 @@
<string name="backup_notice_later">Może później</string>
<string name="backup_notice_cta">Włącz</string>
<string name="widgets_empty_msg">Nie dodano żadnych serwisów</string>
<string name="backup__section_description_google">ZALECANE: Synchronizacja Google Drive zabezpiecza tokeny w Google Drive w przypadku utraty lub uszkodzenia urządzenia. Miej ją włączoną.</string>
<string name="backup__section_description_google">ZALECANE: Synchronizacja z Dyskiem Google zabezpiecza tokeny na Dysku Google w przypadku utraty lub uszkodzenia urządzenia. Miej ją włączoną.</string>
<string name="backup_turn_off_title">Czy na pewno wyłączyć synchronizacje z Dyskiem Google?</string>
<string name="backup_turn_off_msg1">Wszystkie Twoje tokeny pozostaną na tym urządzeniu w pamięci lokalnej oraz w ukrytym pliku na Twoim Dysku Google. Nie będą one jednak synchronizowane. Zostaniesz również wylogowany z Twojego konta Google.</string>
<string name="backup_turn_off_msg2">Pamiętaj, że w przypadku utraty lub uszkodzenia tego urządzenia lub usunięcia aplikacji 2FAS, możesz nie być w stanie odzyskać swoich tokenów i stracisz dostęp do kont internetowych zabezpieczonych przez 2FA!</string>
@ -705,8 +705,8 @@
<string name="externalimport__aegis_success_msg">Ten plik JSON umożliwia import tokenów z Aegis.</string>
<string name="externalimport__raivo_success_msg">Ten plik JSON umożliwia import tokenów z Raivo.</string>
<string name="externalimport__read_error">Nie udało się odczytać żadnych tokenów. Spróbuj wybrać inny plik.</string>
<string name="settings__gd_sync_info">Pokazuj przypomnienie o synchronizacji z Google Drive</string>
<string name="settings__gd_sync_disable_confirm">Czy jesteś pewien? Bez synchronizacji z Google Drive nie będziesz mógł przywrócić swoich tokenów, jeśli zgubisz lub zresetujesz telefon!</string>
<string name="settings__gd_sync_info">Pokazuj przypomnienie o synchronizacji z Dyskiem Google</string>
<string name="settings__gd_sync_disable_confirm">Czy jesteś pewien? Bez synchronizacji z Dyskiem Google nie będziesz mógł przywrócić swoich tokenów, jeśli zgubisz lub zresetujesz telefon!</string>
<string name="extension__code_sent_msg">Kod wysłany pomyślnie</string>
<string name="extension__code_sent_error_msg">Wystąpił błąd podczas wysyłania kodu</string>
<string name="tokens__add_service_title">Dodaj nowy serwis</string>
@ -733,7 +733,7 @@
<string name="settings__appearance">Wygląd</string>
<string name="settings__show_next_token_desc">Pokaż następny token kilka sekund przez wygaśnięciem aktualnego tokenu</string>
<string name="settings__list_style">Styl listy serwisów</string>
<string name="backup__reminder_msg">Dysk Google nie zsynchronizowany.</string>
<string name="backup__reminder_msg">Dysk Google nie jest zsynchronizowany.</string>
<string name="backup__reminder_cta">Ustawienia</string>
<string name="settings__list_style_option_default">Domyślny</string>
<string name="settings__list_style_option_compact">Kompaktowy</string>
@ -770,4 +770,16 @@
<string name="settings__option_screenshots">Zezwalaj na zrzuty ekranu</string>
<string name="settings__option_screenshots_confirm_title">Pozwolić na zrzuty ekranu w aplikacji?</string>
<string name="settings__option_screenshots_confirm_description">Czy na pewno? Ta opcja umożliwia zrzuty ekranu i nagrywanie dowolnego ekranu w aplikacji. Jednocześnie umożliwia ona próby przechwycenia ekranu przez zewnętrzne aplikacje. Ze względów bezpieczeństwa, opcja ta zostanie automatycznie wyłączona po 5 minutach.</string>
<string name="social__social_media">Media społecznościowe</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Schowaj tokeny</string>
<string name="settings__hide_tokens_description">Pokaż token po kliknięciu</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: pt-PT, Portuguese (Portugal)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Permitir capturas de ecrã</string>
<string name="settings__option_screenshots_confirm_title">Permitir capturas de ecrã dentro da aplicação?</string>
<string name="settings__option_screenshots_confirm_description">Tens a certeza? Esta opção irá permitir capturas e gravações de ecrã dentro da aplicação. Contudo, isto irá também permitir tentativas externas de capturar ecrãs dentro da aplicação.\nPor razões de segurança, esta opção irá ser automaticamente desligada depois de 5 minutos.</string>
<string name="social__social_media">Redes sociais</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Esconder tokens</string>
<string name="settings__hide_tokens_description">Os tokens serão revelados ao tocar</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: uk-UA, Ukrainian (Ukraine)
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:19 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -770,4 +770,16 @@
<string name="settings__option_screenshots">Дозволити скріншоти</string>
<string name="settings__option_screenshots_confirm_title">Дозволити скріншоти додатку?</string>
<string name="settings__option_screenshots_confirm_description">Ви впевнені? Ця опція дозволяє робити скріншоти та записувати будь-який екран додатку. Однак це також дозволить будь-які зовнішні спроби запису екранів у додатку.\nЗ міркувань безпеки ця опція автоматично вимкнеться через 5 хвилин.</string>
<string name="social__social_media">Соціальні медіа</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Сховати токени</string>
<string name="settings__hide_tokens_description">Показати токени при натисканні</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: en, English
Exported by: rafakob
Exported at: Sun, 04 Jun 2023 06:50:18 -0700
Exported at: Sun, 02 Jul 2023 00:37:49 -0700
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -764,4 +764,16 @@
<string name="settings__option_screenshots">Allow screenshots</string>
<string name="settings__option_screenshots_confirm_title">Allow screenshots of the app?</string>
<string name="settings__option_screenshots_confirm_description">Are you sure? This option allows you to screenshot and record any screen within the app. However, this will also allow any external attempts of capturing screens in the app.\nFor safety reasons, this option will be automatically turned off after 5 minutes.</string>
<string name="social__social_media">Social media</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
<string name="social__twitter">Twitter</string>
<string name="social__github">GitHub</string>
<string name="social__linkedin">LinkedIn</string>
<string name="social__reddit">Reddit</string>
<string name="social__facebook">Facebook</string>
<string name="settings__hide_tokens_title">Hide tokens</string>
<string name="settings__hide_tokens_description">Tokens will be revealed on tap</string>
<string name="browser__pair_manually_cta">Pair manually</string>
<string name="browser__pair_manually_hint">Pairing code</string>
</resources>