diff options
| author | Albin <albin@mullvad.net> | 2022-07-26 12:44:43 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-07-26 12:44:43 +0200 |
| commit | c8bd194d7d9ecad52902fd48f0c7dc507d0c3b01 (patch) | |
| tree | 3ec5df2f6d90d4612c5ca0c65eda792b4be3a720 /android | |
| parent | 32197e6ffc5178ade939cdfaac2ec21c8b0f9c2c (diff) | |
| parent | a6c9c0c8eda3160eb72284e876f027b6c1dfe56e (diff) | |
| download | mullvadvpn-c8bd194d7d9ecad52902fd48f0c7dc507d0c3b01.tar.xz mullvadvpn-c8bd194d7d9ecad52902fd48f0c7dc507d0c3b01.zip | |
Merge branch 'hide-account-number-in-settings'
Diffstat (limited to 'android')
29 files changed, 254 insertions, 45 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt index 415aa54046..9d3c9a86e6 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import java.text.DateFormat +import kotlin.properties.Delegates.observable import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.debounce @@ -77,6 +78,14 @@ class AccountFragment : BaseFragment() { redeemVoucherButton.setEnabled(!value) } + private var isAccountNumberShown by observable(false) { _, _, doShow -> + accountNumberView.informationState = if (doShow) { + InformationView.Masking.Show(GroupedTransformationMethod()) + } else { + InformationView.Masking.Hide(GroupedPasswordTransformationMethod()) + } + } + private lateinit var accountExpiryView: InformationView private lateinit var accountNumberView: CopyableInformationView private lateinit var deviceNameView: InformationView @@ -130,7 +139,10 @@ class AccountFragment : BaseFragment() { } accountNumberView = view.findViewById<CopyableInformationView>(R.id.account_number).apply { - displayFormatter = { rawAccountNumber -> addSpacesToAccountNumber(rawAccountNumber) } + informationState = InformationView.Masking.Hide(GroupedPasswordTransformationMethod()) + onToggleMaskingClicked = { + isAccountNumberShown = isAccountNumberShown.not() + } } accountExpiryView = view.findViewById(R.id.account_expiry) @@ -233,17 +245,4 @@ class AccountFragment : BaseFragment() { RedeemVoucherDialogFragment().show(transaction, null) } - - private fun addSpacesToAccountNumber(rawAccountNumber: String): String { - return rawAccountNumber - .asSequence() - .fold(StringBuilder()) { formattedAccountNumber, nextDigit -> - if ((formattedAccountNumber.length % 5) == 4) { - formattedAccountNumber.append(' ') - } - - formattedAccountNumber.append(nextDigit) - } - .toString() - } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/CustomTransformationMethod.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/CustomTransformationMethod.kt new file mode 100644 index 0000000000..9ec42e3b9f --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/CustomTransformationMethod.kt @@ -0,0 +1,49 @@ +package net.mullvad.mullvadvpn.ui + +import android.graphics.Rect +import android.text.method.PasswordTransformationMethod +import android.text.method.TransformationMethod +import android.view.View + +private const val BIG_DOT_CHAR = '●' +private const val DOT_CHAR = '\u2022' +private const val EMPTY_STRING = "" +private const val SPACE_CHAR = ' ' + +class GroupedTransformationMethod() : TransformationMethod { + override fun getTransformation(source: CharSequence?, view: View?): CharSequence { + return source?.groupWithSpaces() ?: EMPTY_STRING + } + + override fun onFocusChanged( + view: View?, + sourceText: CharSequence?, + focused: Boolean, + direction: Int, + previouslyFocusedRect: Rect? + ) { + // No focus handling required. + } +} + +class GroupedPasswordTransformationMethod() : PasswordTransformationMethod() { + override fun getTransformation(source: CharSequence?, view: View?): CharSequence { + return if (source != null && view != null) { + super.getTransformation(source, view)?.toString() + ?.replace(DOT_CHAR, BIG_DOT_CHAR) + ?.groupWithSpaces() + ?: EMPTY_STRING + } else { + EMPTY_STRING + } + } +} + +private fun CharSequence.groupWithSpaces(groupCharSize: Int = 4): CharSequence { + return fold(StringBuilder()) { formattedText, nextDigit -> + if ((formattedText.length % (groupCharSize + 1)) == groupCharSize) { + formattedText.append(SPACE_CHAR) + } + formattedText.append(nextDigit) + } +} diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CopyableInformationView.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CopyableInformationView.kt index a3f43fbac2..e19edc9d34 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CopyableInformationView.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CopyableInformationView.kt @@ -4,6 +4,8 @@ import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.util.AttributeSet +import android.view.View +import android.widget.ImageButton import android.widget.Toast import net.mullvad.mullvadvpn.R @@ -38,6 +40,11 @@ class CopyableInformationView : InformationView { init { onClick = { copyToClipboard() } + + findViewById<ImageButton>(R.id.copy_button).apply { + visibility = View.VISIBLE + setOnClickListener { copyToClipboard() } + } } private fun loadAttributes(attributes: AttributeSet) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/InformationView.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/InformationView.kt index 5840432d55..fec64d9e14 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/InformationView.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/InformationView.kt @@ -1,12 +1,14 @@ package net.mullvad.mullvadvpn.ui.widget import android.content.Context +import android.text.method.TransformationMethod import android.util.AttributeSet import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.widget.LinearLayout import android.widget.TextView +import androidx.appcompat.content.res.AppCompatResources import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R @@ -41,6 +43,7 @@ open class InformationView : LinearLayout { private val description: TextView = findViewById(R.id.description) private val informationDisplay: TextView = findViewById(R.id.information_display) private val spinner: View = findViewById(R.id.spinner) + private val toggleMaskingButton: View = findViewById(R.id.toggle_masking_button) var error by observable<String?>(null) { _, _, _ -> updateStatus() } var information by observable<String?>(null) { _, _, _ -> updateStatus() } @@ -50,7 +53,6 @@ open class InformationView : LinearLayout { updateStatus() } - var displayFormatter by observable<((String) -> String)?>(null) { _, _, _ -> updateStatus() } var maxLength by observable(0) { _, _, _ -> updateStatus() } var whenMissing by observable(WhenMissing.Nothing) { _, _, _ -> updateStatus() } @@ -60,6 +62,47 @@ open class InformationView : LinearLayout { container.setFocusable(callback != null) } + sealed class Masking { + object None : Masking() + data class Hide(val transformationMethod: TransformationMethod) : Masking() + data class Show(val transformationMethod: TransformationMethod) : Masking() + } + + var informationState by observable<Masking>(Masking.None) { _, _, newState -> + when (newState) { + is Masking.Hide -> { + informationDisplay.transformationMethod = newState.transformationMethod + + toggleMaskingButton.apply { + visibility = VISIBLE + contentDescription = context.getString(R.string.show_account_number) + background = AppCompatResources.getDrawable(context, R.drawable.icon_show) + } + } + + is Masking.Show -> { + informationDisplay.transformationMethod = newState.transformationMethod + + toggleMaskingButton.apply { + visibility = VISIBLE + contentDescription = context.getString(R.string.hide_account_number) + background = AppCompatResources.getDrawable(context, R.drawable.icon_hide) + } + } + + is Masking.None -> { + informationDisplay.transformationMethod = null + toggleMaskingButton.visibility = GONE + } + } + + updateStatus() + } + + var onToggleMaskingClicked by observable<(() -> Unit)?>(null) { _, _, callback -> + toggleMaskingButton.setOnClickListener { callback?.invoke() } + } + constructor(context: Context) : super(context) {} constructor(context: Context, attributes: AttributeSet) : super(context, attributes) { @@ -125,14 +168,12 @@ open class InformationView : LinearLayout { informationDisplay.setTextColor(errorColor) informationDisplay.text = error } else if (information != null) { - val formattedInformation = displayFormatter?.invoke(information) ?: information - informationDisplay.setTextColor(informationColor) - if (maxLength == 0 || formattedInformation.length <= maxLength) { - informationDisplay.text = formattedInformation + if (maxLength == 0 || information.length <= maxLength) { + informationDisplay.text = information } else { - informationDisplay.text = formattedInformation.substring(0, maxLength) + "..." + informationDisplay.text = information.substring(0, maxLength) + "..." } } diff --git a/android/app/src/main/res/drawable/icon_copy.xml b/android/app/src/main/res/drawable/icon_copy.xml new file mode 100644 index 0000000000..4a919a00b8 --- /dev/null +++ b/android/app/src/main/res/drawable/icon_copy.xml @@ -0,0 +1,8 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path android:pathData="M15.789,2.737L5.684,2.737A1.689,1.689 0,0 0,4 4.421v11.79a0.749,0.749 0,0 0,0.829 0.736,0.812 0.812,0 0,0 0.855,-0.736L5.684,4.421h10.105a0.9,0.9 0,0 0,0.832 -0.825,0.91 0.91,0 0,0 -0.832,-0.859zM18.315,6.105L9.053,6.105a1.689,1.689 0,0 0,-1.685 1.685v11.789a1.689,1.689 0,0 0,1.684 1.684h9.263A1.689,1.689 0,0 0,20 19.579L20,7.79a1.689,1.689 0,0 0,-1.684 -1.685zM18.315,19.579L9.053,19.579L9.053,7.79h9.263z" + android:fillColor="@android:color/white" /> +</vector> diff --git a/android/app/src/main/res/drawable/icon_hide.xml b/android/app/src/main/res/drawable/icon_hide.xml new file mode 100644 index 0000000000..b16cceff5c --- /dev/null +++ b/android/app/src/main/res/drawable/icon_hide.xml @@ -0,0 +1,8 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path android:pathData="M12,6a9.77,9.77 0,0 1,8.82 5.5,9.647 9.647,0 0,1 -2.41,3.12l1.41,1.41A11.8,11.8 0,0 0,23 11.5,11.834 11.834,0 0,0 8.36,4.57l1.65,1.65A10.108,10.108 0,0 1,12 6zM10.93,7.14L13,9.21a2.5,2.5 0,0 1,1.28 1.28l2.07,2.07a4.679,4.679 0,0 0,0.14 -1.07A4.483,4.483 0,0 0,12 7a4.244,4.244 0,0 0,-1.07 0.14zM2.01,3.87l2.68,2.68A11.738,11.738 0,0 0,1 11.5,11.827 11.827,0 0,0 12,19a11.73,11.73 0,0 0,4.32 -0.82l3.42,3.42a1,1 0,0 0,1.41 -1.41C20.8,19.807 3.791,2.777 3.42,2.45a1.1,1.1 0,0 0,-1.41 0,1.045 1.045,0 0,0 0,1.42zM9.51,11.37 L12.12,13.98A0.5,0.5 0,0 1,12 14a2.5,2.5 0,0 1,-2.5 -2.5c0,-0.05 0.01,-0.08 0.01,-0.13zM6.11,7.97 L7.86,9.72a4.6,4.6 0,0 0,-0.36 1.78,4.505 4.505,0 0,0 6.27,4.14l0.98,0.98A10.432,10.432 0,0 1,12 17a9.77,9.77 0,0 1,-8.82 -5.5,9.9 9.9,0 0,1 2.93,-3.53z" + android:fillColor="@android:color/white" /> +</vector> diff --git a/android/app/src/main/res/drawable/icon_show.xml b/android/app/src/main/res/drawable/icon_show.xml new file mode 100644 index 0000000000..9535f0287b --- /dev/null +++ b/android/app/src/main/res/drawable/icon_show.xml @@ -0,0 +1,8 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path android:pathData="M12,6a9.77,9.77 0,0 1,8.82 5.5,9.822 9.822,0 0,1 -17.64,0A9.77,9.77 0,0 1,12 6m0,-2a11.827,11.827 0,0 0,-11 7.5,11.817 11.817,0 0,0 22,0A11.827,11.827 0,0 0,12 4zM12,9a2.5,2.5 0,1 1,-2.5 2.5A2.5,2.5 0,0 1,12 9m0,-2a4.5,4.5 0,1 0,4.5 4.5A4.507,4.507 0,0 0,12 7z" + android:fillColor="@android:color/white" /> +</vector> diff --git a/android/app/src/main/res/layout/account.xml b/android/app/src/main/res/layout/account.xml index 7f2e2fb598..225ef71cc0 100644 --- a/android/app/src/main/res/layout/account.xml +++ b/android/app/src/main/res/layout/account.xml @@ -57,7 +57,8 @@ mullvad:clipboardLabel="@string/mullvad_account_number" mullvad:copiedToast="@string/copied_mullvad_account_number" mullvad:description="@string/account_number" - mullvad:whenMissing="hide" /> + mullvad:whenMissing="hide" + android:descendantFocusability="afterDescendants" /> <net.mullvad.mullvadvpn.ui.widget.InformationView android:id="@+id/account_expiry" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/android/app/src/main/res/layout/information_view.xml b/android/app/src/main/res/layout/information_view.xml index 7ac89aee62..88425fef50 100644 --- a/android/app/src/main/res/layout/information_view.xml +++ b/android/app/src/main/res/layout/information_view.xml @@ -1,28 +1,56 @@ <merge xmlns:android="http://schemas.android.com/apk/res/android"> - <TextView android:id="@+id/description" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginBottom="9dp" - android:textColor="@color/white60" - android:textSize="@dimen/text_small" - android:textStyle="bold" - android:text="" /> - <FrameLayout android:layout_width="wrap_content" - android:layout_height="wrap_content"> - <TextView android:id="@+id/information_display" + <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + <TextView android:id="@+id/description" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="@color/white" - android:textSize="@dimen/text_medium" - android:textStyle="bold" - android:text="" /> - <ProgressBar android:id="@+id/spinner" - android:layout_width="20dp" - android:layout_height="20dp" - android:indeterminate="true" - android:indeterminateOnly="true" - android:indeterminateDuration="600" - android:indeterminateDrawable="@drawable/icon_spinner" - android:visibility="invisible" /> - </FrameLayout> + android:layout_marginBottom="9dp" + android:text="" + android:textColor="@color/white60" + android:textSize="@dimen/text_small" + android:textStyle="bold" /> + <RelativeLayout android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <TextView android:id="@+id/information_display" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="" + android:textColor="@color/white" + android:textSize="@dimen/text_medium" + android:textStyle="bold" + android:layout_alignParentStart="true" /> + <ProgressBar android:id="@+id/spinner" + android:layout_width="20dp" + android:layout_height="20dp" + android:indeterminate="true" + android:indeterminateDrawable="@drawable/icon_spinner" + android:indeterminateDuration="600" + android:indeterminateOnly="true" + android:visibility="visible" + android:layout_alignParentStart="true" /> + <ImageButton android:id="@+id/toggle_masking_button" + android:layout_width="24dp" + android:layout_height="24dp" + android:layout_alignWithParentIfMissing="true" + android:layout_marginEnd="20dp" + android:layout_toStartOf="@id/copy_button" + android:background="@drawable/icon_show" + android:visibility="gone" + android:clickable="true" + android:focusable="true" + android:contentDescription="@string/show_account_number" /> + <ImageButton android:id="@+id/copy_button" + android:layout_width="24dp" + android:layout_height="24dp" + android:layout_alignParentEnd="true" + android:background="@drawable/icon_copy" + android:visibility="gone" + android:clickable="true" + android:focusable="true" + android:contentDescription="@string/copy_account_number" /> + </RelativeLayout> + </LinearLayout> </merge> diff --git a/android/app/src/main/res/values-da/strings.xml b/android/app/src/main/res/values-da/strings.xml index 53bb748a00..befa8dbdb6 100644 --- a/android/app/src/main/res/values-da/strings.xml +++ b/android/app/src/main/res/values-da/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Kopierede Mullvad-kontonummer til udklipsholder</string> <string name="copied_to_clipboard">Kopieret til udklipsholder</string> <string name="copied_wireguard_public_key">Kopierede offentlig WireGuard-nøgle til udklipsholder</string> + <string name="copy_account_number">Kopiér kontonummer</string> <string name="create_account">Opret konto</string> <string name="creating_new_account">Opretter konto...</string> <string name="creating_secure_connection">OPRETTER SIKKER FORBINDELSE</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN-tunnelstatus</string> <string name="go_to_login">Gå til login</string> <string name="here_is_your_account_number">Her er dit kontonummer. Gem det!</string> + <string name="hide_account_number">Skjul kontonummer</string> <string name="hint_default">Standard</string> <string name="in_address">Ind</string> <string name="invalid_dns_servers">Tilpassede DNS-serveradresser %1$s er ugyldige</string> @@ -114,6 +116,7 @@ <string name="settings_account">Konto</string> <string name="settings_advanced">Avanceret</string> <string name="settings_preferences">Indstillinger</string> + <string name="show_account_number">Vis kontonummer</string> <string name="show_system_apps">Vis systemapps</string> <string name="split_tunneling_description">Split tunneling gør det muligt at vælge, hvilke applikationer der ikke skal dirigeres gennem VPN-tunnelen.</string> <string name="start_tunnel_error">Kunne ikke starte tunnelforbindelsen</string> diff --git a/android/app/src/main/res/values-de/strings.xml b/android/app/src/main/res/values-de/strings.xml index 820e79f677..27391cf699 100644 --- a/android/app/src/main/res/values-de/strings.xml +++ b/android/app/src/main/res/values-de/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Mullvad-Kontonummer wurde in die Zwischenablage kopiert</string> <string name="copied_to_clipboard">In die Zwischenablage kopiert</string> <string name="copied_wireguard_public_key">Der öffentliche WireGuard Schlüssel wurde in die Zwischenablage kopiert</string> + <string name="copy_account_number">Kontonummer kopieren</string> <string name="create_account">Konto erstellen</string> <string name="creating_new_account">Konto wird erstellt ...</string> <string name="creating_secure_connection">SICHERE VERBINDUNG WIRD ERSTELLT</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">Status des VPN-Tunnels</string> <string name="go_to_login">Zur Anmeldung</string> <string name="here_is_your_account_number">Hier ist Ihre Kontonummer. Verlieren Sie sie nicht!</string> + <string name="hide_account_number">Kontonummer verbergen</string> <string name="hint_default">Standard</string> <string name="in_address">Eingehend</string> <string name="invalid_dns_servers">Eigene DNS-Server Adressen %1$s sind ungültig</string> @@ -114,6 +116,7 @@ <string name="settings_account">Konto</string> <string name="settings_advanced">Erweitert</string> <string name="settings_preferences">Präferenzen</string> + <string name="show_account_number">Kontonummer anzeigen</string> <string name="show_system_apps">Systemapps anzeigen</string> <string name="split_tunneling_description">Split-Tunnel-Steuerung macht es möglich, auszuwählen, welche Anwendungen nicht durch den VPN-Tunnel geroutet werden.</string> <string name="start_tunnel_error">Fehler beim Starten der Tunnel-Verbindung</string> diff --git a/android/app/src/main/res/values-es/strings.xml b/android/app/src/main/res/values-es/strings.xml index aac61efa34..5350762301 100644 --- a/android/app/src/main/res/values-es/strings.xml +++ b/android/app/src/main/res/values-es/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">El número de cuenta de Mullvad se copió en el Portapapeles</string> <string name="copied_to_clipboard">Copiado en el Portapapeles</string> <string name="copied_wireguard_public_key">La clave pública de WireGuard se copió en el Portapapeles</string> + <string name="copy_account_number">Copiar número de cuenta</string> <string name="create_account">Crear cuenta</string> <string name="creating_new_account">Creando cuenta…</string> <string name="creating_secure_connection">CREANDO CONEXIÓN SEGURA</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">Estado del túnel VPN</string> <string name="go_to_login">Iniciar sesión</string> <string name="here_is_your_account_number">Este es un número de cuenta. ¡Guárdelo bien!</string> + <string name="hide_account_number">Ocultar número de cuenta</string> <string name="hint_default">Predeterminado</string> <string name="in_address">Entrada</string> <string name="invalid_dns_servers">Las direcciones del servidor DNS personalizado %1$s no son válidas</string> @@ -114,6 +116,7 @@ <string name="settings_account">Cuenta</string> <string name="settings_advanced">Avanzadas</string> <string name="settings_preferences">Preferencias</string> + <string name="show_account_number">Mostrar número de cuenta</string> <string name="show_system_apps">Mostrar aplicaciones del sistema</string> <string name="split_tunneling_description">La tunelización dividida permite seleccionar qué aplicaciones no deben enrutarse a través del túnel VPN.</string> <string name="start_tunnel_error">No se pudo iniciar la conexión del túnel</string> diff --git a/android/app/src/main/res/values-fi/strings.xml b/android/app/src/main/res/values-fi/strings.xml index 1f07d1cddd..317901e6b1 100644 --- a/android/app/src/main/res/values-fi/strings.xml +++ b/android/app/src/main/res/values-fi/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Mullvad-tilin numero kopioitu leikepöydälle</string> <string name="copied_to_clipboard">Kopioitu leikepöydälle</string> <string name="copied_wireguard_public_key">Julkinen WireGuard-avain kopioitu leikepöydälle</string> + <string name="copy_account_number">Kopioi tilin numero</string> <string name="create_account">Luo tili</string> <string name="creating_new_account">Luodaan tiliä...</string> <string name="creating_secure_connection">LUODAAN SUOJATTU YHTEYS</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN-tunnelin tila</string> <string name="go_to_login">Siirry kirjautumiseen</string> <string name="here_is_your_account_number">Tässä tulee tilisi numero. Laita se talteen!</string> + <string name="hide_account_number">Piilota tilin numero</string> <string name="hint_default">Oletus</string> <string name="in_address">Saapuva</string> <string name="invalid_dns_servers">Mukautetut DNS-palvelimen osoitteet %1$s ovat virheellisiä</string> @@ -114,6 +116,7 @@ <string name="settings_account">Tili</string> <string name="settings_advanced">Lisäasetukset</string> <string name="settings_preferences">Asetukset</string> + <string name="show_account_number">Näytä tilin numero</string> <string name="show_system_apps">Näytä järjestelmäsovellukset</string> <string name="split_tunneling_description">Jaettu tunnelointi antaa mahdollisuuden valita, mitä sovelluksia ei reititetä VPN-tunnelin kautta.</string> <string name="start_tunnel_error">Tunneliyhteyden muodostaminen epäonnistui</string> diff --git a/android/app/src/main/res/values-fr/strings.xml b/android/app/src/main/res/values-fr/strings.xml index f37a064553..87d63b0c9e 100644 --- a/android/app/src/main/res/values-fr/strings.xml +++ b/android/app/src/main/res/values-fr/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Numéro de compte Mullvad copié dans le presse-papiers</string> <string name="copied_to_clipboard">Copié dans le presse-papiers</string> <string name="copied_wireguard_public_key">Clé WireGuard publique copiée dans le presse-papiers</string> + <string name="copy_account_number">Copier le numéro de compte</string> <string name="create_account">Créer un compte</string> <string name="creating_new_account">Création du compte…</string> <string name="creating_secure_connection">CRÉATION D\'UNE CONNEXION SÉCURISÉE</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">État du tunnel VPN</string> <string name="go_to_login">Aller à la connexion</string> <string name="here_is_your_account_number">Voici votre numéro de compte. Gardez-le !</string> + <string name="hide_account_number">Masquer le numéro de compte</string> <string name="hint_default">Par défaut</string> <string name="in_address">Entrante</string> <string name="invalid_dns_servers">Les adresses de serveur DNS personnalisées %1$s ne sont pas valides</string> @@ -114,6 +116,7 @@ <string name="settings_account">Compte</string> <string name="settings_advanced">Avancé</string> <string name="settings_preferences">Préférences</string> + <string name="show_account_number">Afficher le numéro de compte</string> <string name="show_system_apps">Afficher les applications système</string> <string name="split_tunneling_description">Le split tunneling permet de sélectionner quelles applications ne doivent pas passer par le tunnel VPN.</string> <string name="start_tunnel_error">Échec du démarrage de la connexion tunnel</string> diff --git a/android/app/src/main/res/values-it/strings.xml b/android/app/src/main/res/values-it/strings.xml index 1b8867c63f..16963598d6 100644 --- a/android/app/src/main/res/values-it/strings.xml +++ b/android/app/src/main/res/values-it/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Numero account di Mullvad copiato negli appunti</string> <string name="copied_to_clipboard">Copiato negli appunti</string> <string name="copied_wireguard_public_key">Chiave pubblica WireGuard copiata negli appunti</string> + <string name="copy_account_number">Copia numero di account</string> <string name="create_account">Crea account</string> <string name="creating_new_account">Creazione account...</string> <string name="creating_secure_connection">CREAZIONE CONNESSIONE PROTETTA</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">Stato del tunnel VPN</string> <string name="go_to_login">Vai al login</string> <string name="here_is_your_account_number">Ecco il tuo numero di account. Salvalo!</string> + <string name="hide_account_number">Nascondi numero di account</string> <string name="hint_default">Predefinito</string> <string name="in_address">Ricezione</string> <string name="invalid_dns_servers">Gli indirizzi del server DNS personalizzato %1$s non sono validi</string> @@ -114,6 +116,7 @@ <string name="settings_account">Account</string> <string name="settings_advanced">Avanzate</string> <string name="settings_preferences">Preferenze</string> + <string name="show_account_number">Mostra numero di account</string> <string name="show_system_apps">Mostra app di sistema</string> <string name="split_tunneling_description">Lo split tunneling consente di selezionare quali applicazioni non devono essere instradate attraverso il tunnel VPN.</string> <string name="start_tunnel_error">Impossibile avviare la connessione tunnel</string> diff --git a/android/app/src/main/res/values-ja/strings.xml b/android/app/src/main/res/values-ja/strings.xml index d939859238..2d511a1024 100644 --- a/android/app/src/main/res/values-ja/strings.xml +++ b/android/app/src/main/res/values-ja/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Mullvadアカウント番号をクリップボードにコピーしました</string> <string name="copied_to_clipboard">クリップボードにコピーしました</string> <string name="copied_wireguard_public_key">WireGuard公開鍵をクリップボードにコピーしました</string> + <string name="copy_account_number">アカウント番号のコピー</string> <string name="create_account">アカウントを作成する</string> <string name="creating_new_account">アカウントを作成中...</string> <string name="creating_secure_connection">セキュリティ保護接続を確立中</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPNトンネルのステータス</string> <string name="go_to_login">ログインに進む</string> <string name="here_is_your_account_number">これがあなたのアカウント番号です。保存してください!</string> + <string name="hide_account_number">アカウント番号の非表示</string> <string name="hint_default">デフォルト</string> <string name="in_address">内側</string> <string name="invalid_dns_servers">カスタムDNSサーバーアドレス %1$s は無効です</string> @@ -114,6 +116,7 @@ <string name="settings_account">アカウント</string> <string name="settings_advanced">詳細</string> <string name="settings_preferences">環境設定</string> + <string name="show_account_number">アカウント番号の表示</string> <string name="show_system_apps">システムアプリの表示</string> <string name="split_tunneling_description">スプリットトンネリングを使用すると、VPNトンネルを介してルーティングするべきでないアプリケーションを選択できます。</string> <string name="start_tunnel_error">トンネル接続の開始に失敗しました</string> diff --git a/android/app/src/main/res/values-ko/strings.xml b/android/app/src/main/res/values-ko/strings.xml index 5e62793c7f..8ccfd3162f 100644 --- a/android/app/src/main/res/values-ko/strings.xml +++ b/android/app/src/main/res/values-ko/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">클립보드에 Mullvad 계정 번호 복사됨</string> <string name="copied_to_clipboard">클립보드에 복사됨</string> <string name="copied_wireguard_public_key">WireGuard 공개 키가 클립보드에 복사됨</string> + <string name="copy_account_number">계정 번호 복사</string> <string name="create_account">계정 생성</string> <string name="creating_new_account">계정 생성 중...</string> <string name="creating_secure_connection">보안 연결 생성 중</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN 터널 상태</string> <string name="go_to_login">로그인하기</string> <string name="here_is_your_account_number">계정 번호는 다음과 같습니다. 저장하세요!</string> + <string name="hide_account_number">계정 번호 숨기기</string> <string name="hint_default">기본값</string> <string name="in_address">인</string> <string name="invalid_dns_servers">사용자 지정 DNS 서버 주소 %1$s이(가) 잘못되었습니다.</string> @@ -114,6 +116,7 @@ <string name="settings_account">계정</string> <string name="settings_advanced">고급</string> <string name="settings_preferences">환경 설정</string> + <string name="show_account_number">계정 번호 표시</string> <string name="show_system_apps">시스템 앱 표시</string> <string name="split_tunneling_description">분할 터널링을 사용하면 VPN 터널을 통해 라우팅되지 않아야 하는 애플리케이션을 선택할 수 있습니다.</string> <string name="start_tunnel_error">터널 연결을 시작하지 못했습니다.</string> diff --git a/android/app/src/main/res/values-my/strings.xml b/android/app/src/main/res/values-my/strings.xml index b86b81e0bd..befb621716 100644 --- a/android/app/src/main/res/values-my/strings.xml +++ b/android/app/src/main/res/values-my/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Mullvad အကောင့်နံပါတ်ကို ကလစ်ဘုတ်တွင် ကူးထားပါသည်</string> <string name="copied_to_clipboard">ကလစ်ဘုတ်တွင် ကူးယူပြီး</string> <string name="copied_wireguard_public_key">WireGuard အများသုံး ကီးကို ကလစ်ဘုတ်တွင် ကူးထားပါသည်</string> + <string name="copy_account_number">အကောင့်နံပါတ်ကို ကူးရန်</string> <string name="create_account">အကောင့် ဖန်တီးရန်</string> <string name="creating_new_account">အကောင့် ဖန်တီးနေဆဲ...</string> <string name="creating_secure_connection">လုံခြုံသည့် ချိတ်ဆက်မှုကို ဖန်တီးနေပါသည်</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN Tunnel အခြေအနေ</string> <string name="go_to_login">ဝင်ရောက်ရန် သွားပါ</string> <string name="here_is_your_account_number">ဤသည်မှာ သင့်အကောင့်နံပါတ် ဖြစ်ပါသည်။ သိမ်းမှတ်ထားပါ။</string> + <string name="hide_account_number">အကောင့်နံပါတ်ကို ဝှက်ရန်</string> <string name="hint_default">ပုံသေ</string> <string name="in_address">အဝင်</string> <string name="invalid_dns_servers">စိတ်ကြိုက် DNS ဆာဗာလိပ်စာများ %1$s မှားနေပါသည်</string> @@ -114,6 +116,7 @@ <string name="settings_account">အကောင့်</string> <string name="settings_advanced">အဆင့်မြင့်</string> <string name="settings_preferences">လိုလားမှုများ</string> + <string name="show_account_number">အကောင့်နံပါတ်ကို ပြရန်</string> <string name="show_system_apps">စနစ်အက်ပ်များ ပြရန်</string> <string name="split_tunneling_description">Split Tunneling သည် VPN Tunnel မှတစ်ဆင့် လမ်းကြောင်းအတိုင်း မပို့သင့်သည့် အက်ပ်များကို ရွေးချယ်နိုင်ပါသည်။</string> <string name="start_tunnel_error">Tunnel ချိတ်ဆက်မှုကို စတင်ရန် မအောင်မြင်ခဲ့ပါ</string> diff --git a/android/app/src/main/res/values-nb/strings.xml b/android/app/src/main/res/values-nb/strings.xml index 806f1bf330..9807a61cf1 100644 --- a/android/app/src/main/res/values-nb/strings.xml +++ b/android/app/src/main/res/values-nb/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Kopierte Mullvad-kontonummer til utklippstavlen</string> <string name="copied_to_clipboard">Kopiert til utklippstavlen</string> <string name="copied_wireguard_public_key">Kopierte WireGuard offentlig nøkkel til utklippstavlen</string> + <string name="copy_account_number">Kopier kontonummer</string> <string name="create_account">Opprett konto</string> <string name="creating_new_account">Oppretter konto ...</string> <string name="creating_secure_connection">OPPRETTER SIKKER TILKOBLING</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN-tunnelstatus</string> <string name="go_to_login">Gå til pålogging</string> <string name="here_is_your_account_number">Dette er kontonummeret ditt. Ta vare på det!</string> + <string name="hide_account_number">Skjul kontonummer</string> <string name="hint_default">Standard</string> <string name="in_address">Inngående</string> <string name="invalid_dns_servers">Egendefinerte DNS-serveradresser %1$s er ugyldige</string> @@ -114,6 +116,7 @@ <string name="settings_account">Konto</string> <string name="settings_advanced">Avansert</string> <string name="settings_preferences">Preferanser</string> + <string name="show_account_number">Vis kontonummer</string> <string name="show_system_apps">Vis systemapper</string> <string name="split_tunneling_description">Tunneldeling gjør det mulig å velge hvilke applikasjoner som ikke skal rutes gjennom VPN-tunnelen.</string> <string name="start_tunnel_error">Kunne ikke starte tunneltilkobling</string> diff --git a/android/app/src/main/res/values-nl/strings.xml b/android/app/src/main/res/values-nl/strings.xml index 6bc0f52435..a04955781d 100644 --- a/android/app/src/main/res/values-nl/strings.xml +++ b/android/app/src/main/res/values-nl/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Mullvad-accountnummer gekopieerd naar klembord</string> <string name="copied_to_clipboard">Gekopieerd naar klembord</string> <string name="copied_wireguard_public_key">Openbare WireGuard-sleutel gekopieerd naar klembord</string> + <string name="copy_account_number">Accountnummer kopiëren</string> <string name="create_account">Account aanmaken</string> <string name="creating_new_account">Account aanmaken...</string> <string name="creating_secure_connection">BEVEILIGDE VERBINDING AANMAKEN</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">Status VPN-tunnel</string> <string name="go_to_login">Ga naar aanmelden</string> <string name="here_is_your_account_number">Hier is uw accountnummer. Sla het op!</string> + <string name="hide_account_number">Accountnummer verbergen</string> <string name="hint_default">Standaard</string> <string name="in_address">In</string> <string name="invalid_dns_servers">Aangepaste DNS-serveradressen %1$s zijn ongeldig</string> @@ -114,6 +116,7 @@ <string name="settings_account">Account</string> <string name="settings_advanced">Geavanceerd</string> <string name="settings_preferences">Voorkeuren</string> + <string name="show_account_number">Accountnummer weergeven</string> <string name="show_system_apps">Systeemapps weergeven</string> <string name="split_tunneling_description">Split tunneling maakt het mogelijk te kiezen welke toepassingen niet via de VPN-tunnel moeten worden omgeleid.</string> <string name="start_tunnel_error">Starten van tunnelverbinding mislukt</string> diff --git a/android/app/src/main/res/values-pl/strings.xml b/android/app/src/main/res/values-pl/strings.xml index 4d41e2af93..66428fd280 100644 --- a/android/app/src/main/res/values-pl/strings.xml +++ b/android/app/src/main/res/values-pl/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Skopiowano numer konta Mullvad do schowka</string> <string name="copied_to_clipboard">Skopiowano do schowka</string> <string name="copied_wireguard_public_key">Skopiowano klucz publiczny WireGuard do schowka</string> + <string name="copy_account_number">Kopiuj numer konta</string> <string name="create_account">Utwórz konto</string> <string name="creating_new_account">Tworzenie konta...</string> <string name="creating_secure_connection">TWORZENIE BEZPIECZNEGO POŁĄCZENIA</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">Status tunelu VPN</string> <string name="go_to_login">Przejdź do logowania</string> <string name="here_is_your_account_number">Oto Twój numer konta. Zachowaj go!</string> + <string name="hide_account_number">Ukryj numer konta</string> <string name="hint_default">Domyślnie</string> <string name="in_address">Wejście</string> <string name="invalid_dns_servers">Niestandardowe adresy serwerów DNS %1$s są nieprawidłowe</string> @@ -114,6 +116,7 @@ <string name="settings_account">Konto</string> <string name="settings_advanced">Zaawansowane</string> <string name="settings_preferences">Preferencje</string> + <string name="show_account_number">Pokaż numer konta</string> <string name="show_system_apps">Pokaż aplikacje systemowe</string> <string name="split_tunneling_description">Dzielone tunelowanie umożliwia wybranie aplikacji, które nie powinny być kierowane przez tunel VPN.</string> <string name="start_tunnel_error">Niepowodzenie uruchomienia połączenia tunelowego</string> diff --git a/android/app/src/main/res/values-pt/strings.xml b/android/app/src/main/res/values-pt/strings.xml index c4d52949d9..05b1b80738 100644 --- a/android/app/src/main/res/values-pt/strings.xml +++ b/android/app/src/main/res/values-pt/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Número de conta Mullvad copiado para a área de transferência</string> <string name="copied_to_clipboard">Copiado para a área de transferência</string> <string name="copied_wireguard_public_key">A chave pública WireGuard foi copiada para a área de transferência</string> + <string name="copy_account_number">Copiar número de conta</string> <string name="create_account">Criar conta</string> <string name="creating_new_account">A criar conta...</string> <string name="creating_secure_connection">A CRIAR LIGAÇÃO SEGURA</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">Estado do túnel VPN</string> <string name="go_to_login">Ir para a ligação</string> <string name="here_is_your_account_number">Aqui tem o seu número de conta. Guarde-o!</string> + <string name="hide_account_number">Ocultar número de conta</string> <string name="hint_default">Padrão</string> <string name="in_address">Entrada</string> <string name="invalid_dns_servers">Os endereços do servidor DNS personalizado %1$s são inválidos</string> @@ -114,6 +116,7 @@ <string name="settings_account">Conta</string> <string name="settings_advanced">Avançadas</string> <string name="settings_preferences">Preferências</string> + <string name="show_account_number">Mostrar número de conta</string> <string name="show_system_apps">Mostrar aplicações do sistema</string> <string name="split_tunneling_description">A divisão do túnel permite selecionar quais as aplicações que devem ser direcionadas através do túnel VPN.</string> <string name="start_tunnel_error">Erro ao iniciar a ligação de túnel</string> diff --git a/android/app/src/main/res/values-ru/strings.xml b/android/app/src/main/res/values-ru/strings.xml index c998446862..30d75efee5 100644 --- a/android/app/src/main/res/values-ru/strings.xml +++ b/android/app/src/main/res/values-ru/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Номер учетной записи Mullvad скопирован в буфер обмена</string> <string name="copied_to_clipboard">Скопировано в буфер обмена</string> <string name="copied_wireguard_public_key">Открытый ключ WireGuard скопирован в буфер обмена</string> + <string name="copy_account_number">Копировать номер учетной записи</string> <string name="create_account">Создать учетную запись</string> <string name="creating_new_account">Создание учетной записи...</string> <string name="creating_secure_connection">СОЗДАНИЕ ЗАЩИЩЕННОГО ПОДКЛЮЧЕНИЯ</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">Состояние туннеля VPN</string> <string name="go_to_login">Войти</string> <string name="here_is_your_account_number">Вот номер вашей учетной записи. Сохраните его!</string> + <string name="hide_account_number">Скрыть номер учетной записи</string> <string name="hint_default">По умолчанию</string> <string name="in_address">Вход</string> <string name="invalid_dns_servers">Пользовательские адреса DNS-серверов %1$s недопустимы</string> @@ -114,6 +116,7 @@ <string name="settings_account">Учетная запись</string> <string name="settings_advanced">Дополнительные</string> <string name="settings_preferences">Параметры</string> + <string name="show_account_number">Показать номер учетной записи</string> <string name="show_system_apps">Показывать системные приложения</string> <string name="split_tunneling_description">Раздельное туннелирование позволяет выбрать, какие приложения не должны маршрутизироваться через VPN-туннель.</string> <string name="start_tunnel_error">Не удалось запустить подключение к туннелю</string> diff --git a/android/app/src/main/res/values-sv/strings.xml b/android/app/src/main/res/values-sv/strings.xml index 9bed848a31..c935f7705b 100644 --- a/android/app/src/main/res/values-sv/strings.xml +++ b/android/app/src/main/res/values-sv/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Kopierade Mullvad-kontonummer till urklipp</string> <string name="copied_to_clipboard">Kopierat till urklipp</string> <string name="copied_wireguard_public_key">Kopierade offentlig nyckel för WireGuard till urklipp</string> + <string name="copy_account_number">Kopiera kontonummer</string> <string name="create_account">Skapa konto</string> <string name="creating_new_account">Skapar konto...</string> <string name="creating_secure_connection">SKAPAR SÄKER ANSLUTNING</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN-tunnelstatus</string> <string name="go_to_login">Gå till inloggning</string> <string name="here_is_your_account_number">Här är ditt kontonummer. Spara det!</string> + <string name="hide_account_number">Dölj kontonummer</string> <string name="hint_default">Standard</string> <string name="in_address">In</string> <string name="invalid_dns_servers">Anpassade DNS-serveradresser %1$s är ogiltiga</string> @@ -114,6 +116,7 @@ <string name="settings_account">Konto</string> <string name="settings_advanced">Avancerat</string> <string name="settings_preferences">Inställningar</string> + <string name="show_account_number">Visa kontonummer</string> <string name="show_system_apps">Visa systemappar</string> <string name="split_tunneling_description">Delade tunnlar gör det möjligt att välja vilka applikationer som inte ska dirigeras genom VPN-tunneln.</string> <string name="start_tunnel_error">Det gick inte att starta tunnelanslutning</string> diff --git a/android/app/src/main/res/values-th/strings.xml b/android/app/src/main/res/values-th/strings.xml index 40ceaf58f0..32c325d0aa 100644 --- a/android/app/src/main/res/values-th/strings.xml +++ b/android/app/src/main/res/values-th/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">คัดลอกหมายเลขบัญชี Mullvad ไปยังคลิปบอร์ด</string> <string name="copied_to_clipboard">คัดลอกไปยังคลิปบอร์ดแล้ว</string> <string name="copied_wireguard_public_key">คัดลอกคีย์สาธารณะของ WireGuard ไปยังคลิปบอร์ด</string> + <string name="copy_account_number">คัดลอกหมายเลขบัญชี</string> <string name="create_account">สร้างบัญชี</string> <string name="creating_new_account">กำลังสร้างบัญชี...</string> <string name="creating_secure_connection">กำลังสร้างการเชื่อมต่อที่ปลอดภัย</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">สถานะช่องทาง VPN</string> <string name="go_to_login">ไปเข้าสู่ระบบ</string> <string name="here_is_your_account_number">นี่คือหมายเลขบัญชีของคุณ จดบันทึกไว้ด้วยนะ!</string> + <string name="hide_account_number">ซ่อนหมายเลขบัญชี</string> <string name="hint_default">ค่าเริ่มต้น</string> <string name="in_address">เข้า</string> <string name="invalid_dns_servers">ที่อยู่เซิร์ฟเวอร์ DNS %1$s ที่กำหนดเองไม่ถูกต้อง</string> @@ -114,6 +116,7 @@ <string name="settings_account">บัญชี</string> <string name="settings_advanced">ขั้นสูง</string> <string name="settings_preferences">การกำหนดค่า</string> + <string name="show_account_number">แสดงหมายเลขบัญชี</string> <string name="show_system_apps">แสดงแอประบบ</string> <string name="split_tunneling_description">การแยกช่องทางทำให้คุณสามารถเลือกได้ว่า แอปพลิเคชันใดไม่ควรได้รับการกำหนดเส้นทางผ่านช่องทาง VPN</string> <string name="start_tunnel_error">ไม่สามารถเริ่มการเชื่อมต่อช่องทางได้</string> diff --git a/android/app/src/main/res/values-tr/strings.xml b/android/app/src/main/res/values-tr/strings.xml index 5d5bef53fc..16c326961b 100644 --- a/android/app/src/main/res/values-tr/strings.xml +++ b/android/app/src/main/res/values-tr/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">Mullvad hesap numarası panoya kopyalandı</string> <string name="copied_to_clipboard">Panoya kopyalandı</string> <string name="copied_wireguard_public_key">WireGuard genel anahtarı panoya kopyalandı</string> + <string name="copy_account_number">Hesap numarasını kopyala</string> <string name="create_account">Hesap oluştur</string> <string name="creating_new_account">Hesap oluşturuluyor...</string> <string name="creating_secure_connection">GÜVENLİ BAĞLANTI OLUŞTURULUYOR</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN tüneli durumu</string> <string name="go_to_login">Giriş sayfasına git</string> <string name="here_is_your_account_number">İşte hesap numaranız. Kaydedin!</string> + <string name="hide_account_number">Hesap numarasını gizle</string> <string name="hint_default">Varsayılan</string> <string name="in_address">Giriş</string> <string name="invalid_dns_servers">Özel DNS sunucu adresleri (%1$s) geçersiz</string> @@ -114,6 +116,7 @@ <string name="settings_account">Hesap</string> <string name="settings_advanced">Gelişmiş</string> <string name="settings_preferences">Tercihler</string> + <string name="show_account_number">Hesap numarasını göster</string> <string name="show_system_apps">Sistem uygulamalarını göster</string> <string name="split_tunneling_description">Bölünmüş tünelleme, VPN tüneli üzerinden yönlendirilmemesi gereken uygulamaları seçmenize olanak tanır.</string> <string name="start_tunnel_error">Tünel bağlantısı başlatılamıyor</string> diff --git a/android/app/src/main/res/values-zh-rCN/strings.xml b/android/app/src/main/res/values-zh-rCN/strings.xml index 19a3b08d48..67f77a4835 100644 --- a/android/app/src/main/res/values-zh-rCN/strings.xml +++ b/android/app/src/main/res/values-zh-rCN/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">已将 Mullvad 帐号复制到剪贴板</string> <string name="copied_to_clipboard">已复制到剪贴板</string> <string name="copied_wireguard_public_key">已将 WireGuard 公钥复制到剪贴板</string> + <string name="copy_account_number">复制帐号</string> <string name="create_account">创建帐户</string> <string name="creating_new_account">正在创建帐户…</string> <string name="creating_secure_connection">正在创建安全连接</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN 隧道状态</string> <string name="go_to_login">前往登录</string> <string name="here_is_your_account_number">以下是您的帐号。请妥善保存!</string> + <string name="hide_account_number">隐藏帐号</string> <string name="hint_default">默认</string> <string name="in_address">内部</string> <string name="invalid_dns_servers">自定义 DNS 服务器地址 %1$s 无效</string> @@ -114,6 +116,7 @@ <string name="settings_account">帐户</string> <string name="settings_advanced">高级</string> <string name="settings_preferences">偏好设置</string> + <string name="show_account_number">显示帐号</string> <string name="show_system_apps">显示系统应用</string> <string name="split_tunneling_description">利用拆分隧道,您可以选择哪些应用程序不应通过 VPN 隧道进行路由。</string> <string name="start_tunnel_error">无法启动隧道连接</string> diff --git a/android/app/src/main/res/values-zh-rTW/strings.xml b/android/app/src/main/res/values-zh-rTW/strings.xml index 319307b9b7..10c14e595d 100644 --- a/android/app/src/main/res/values-zh-rTW/strings.xml +++ b/android/app/src/main/res/values-zh-rTW/strings.xml @@ -34,6 +34,7 @@ <string name="copied_mullvad_account_number">已將 Mullvad 帳號複製到剪貼簿</string> <string name="copied_to_clipboard">已複製到剪貼簿</string> <string name="copied_wireguard_public_key">已將 WireGuard 公開金鑰複製到剪貼簿</string> + <string name="copy_account_number">複製帳號</string> <string name="create_account">建立帳戶</string> <string name="creating_new_account">正在建立帳戶…</string> <string name="creating_secure_connection">建立安全連線</string> @@ -64,6 +65,7 @@ <string name="foreground_notification_channel_name">VPN 通道狀態</string> <string name="go_to_login">前往登入</string> <string name="here_is_your_account_number">以下是您的帳號。請妥善保管!</string> + <string name="hide_account_number">隱藏帳號</string> <string name="hint_default">預設</string> <string name="in_address">入境</string> <string name="invalid_dns_servers">自訂 DNS 伺服器位址 %1$s 無效</string> @@ -114,6 +116,7 @@ <string name="settings_account">帳戶</string> <string name="settings_advanced">進階</string> <string name="settings_preferences">喜好設定</string> + <string name="show_account_number">顯示帳號</string> <string name="show_system_apps">顯示系統應用程式</string> <string name="split_tunneling_description">利用拆分通道,您可以選擇哪些應用程式不應透過 VPN 通道進行路由。</string> <string name="start_tunnel_error">無法啟動通道連線</string> diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 8a04ad5bb9..29495c80e2 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -195,4 +195,7 @@ <string name="failed_to_fetch_devices">Failed to fetch list of devices</string> <string name="port_removal_notice">This will delete all forwarded ports. Local settings will be saved.</string> + <string name="copy_account_number">Copy account number</string> + <string name="hide_account_number">Hide account number</string> + <string name="show_account_number">Show account number</string> </resources> |
