summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/fronts4
-rw-r--r--app/assets/fronts-amp4
-rw-r--r--app/assets/fronts-http3
-rw-r--r--app/assets/fronts-sqs3
-rw-r--r--app/build.gradle130
-rw-r--r--app/src/androidTest/java/se/leap/bitmaskclient/BitmaskTest.java124
-rw-r--r--app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java64
-rw-r--r--app/src/androidTest/java/se/leap/bitmaskclient/suite/ScreenshotTest.java2
-rw-r--r--app/src/androidTest/java/utils/CustomInteractions.java8
-rw-r--r--app/src/androidTest/java/utils/ProviderSetupUtils.java137
-rw-r--r--app/src/main/AndroidManifest.xml4
-rw-r--r--app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java10
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/AppQueryReceiver.java36
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/BitmaskApp.java12
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java4
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java2
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java3
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java19
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java263
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java2
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/LanguageSelectionFragment.java128
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java37
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java32
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java2
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/models/Introducer.java86
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java69
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/ApplicationInfoManager.java80
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/ClientTransportPluginProvider.java39
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java2
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/MapCompat.java13
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java125
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/StringUtils.java27
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java101
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/Gateway.java49
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java4
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java8
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java8
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java3
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java6
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java102
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV3.java6
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java8
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiSetupBroadcastReceiver.java92
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java6
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupFailedDialog.java55
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupInterface.java43
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java17
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java18
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java23
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupSuccessFragment.java5
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/helpers/AbstractQrScannerHelper.java3
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java41
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java260
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/tor/SnowflakePlugin.java328
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/tor/TorServiceCommand.java5
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java84
-rw-r--r--app/src/main/res/layout-port/f_eip.xml10
-rw-r--r--app/src/main/res/layout-sw600dp-port/f_eip.xml10
-rw-r--r--app/src/main/res/layout-xlarge-port/f_eip.xml8
-rw-r--r--app/src/main/res/layout-xlarge/f_eip.xml9
-rw-r--r--app/src/main/res/layout/activity_setup.xml10
-rw-r--r--app/src/main/res/layout/allowed_vpn_apps.xml8
-rw-r--r--app/src/main/res/layout/f_eip.xml13
-rw-r--r--app/src/main/res/layout/f_provider_selection.xml7
-rw-r--r--app/src/main/res/values-ar/strings.xml517
-rw-r--r--app/src/main/res/values-az/strings.xml268
-rw-r--r--app/src/main/res/values-bg/strings.xml76
-rw-r--r--app/src/main/res/values-bn/strings.xml218
-rw-r--r--app/src/main/res/values-br/strings.xml192
-rw-r--r--app/src/main/res/values-ca/strings.xml314
-rw-r--r--app/src/main/res/values-cs/strings.xml538
-rw-r--r--app/src/main/res/values-de/strings.xml535
-rw-r--r--app/src/main/res/values-el/strings.xml495
-rw-r--r--app/src/main/res/values-es-rAR/strings.xml411
-rw-r--r--app/src/main/res/values-es-rCU/strings.xml463
-rw-r--r--app/src/main/res/values-es/strings.xml475
-rw-r--r--app/src/main/res/values-et/strings.xml232
-rw-r--r--app/src/main/res/values-eu/strings.xml290
-rw-r--r--app/src/main/res/values-fa-rIR/strings.xml404
-rw-r--r--app/src/main/res/values-fi/strings.xml418
-rw-r--r--app/src/main/res/values-fr/strings.xml506
-rw-r--r--app/src/main/res/values-gl/strings.xml312
-rw-r--r--app/src/main/res/values-he/strings.xml416
-rw-r--r--app/src/main/res/values-hr/strings.xml122
-rw-r--r--app/src/main/res/values-hu/strings.xml392
-rw-r--r--app/src/main/res/values-id/strings.xml128
-rw-r--r--app/src/main/res/values-it/strings.xml250
-rw-r--r--app/src/main/res/values-ja/strings.xml522
-rw-r--r--app/src/main/res/values-lt/strings.xml511
-rw-r--r--app/src/main/res/values-my/strings.xml312
-rw-r--r--app/src/main/res/values-nb/arrays.xml (renamed from app/src/main/res/values-no/arrays.xml)0
-rwxr-xr-xapp/src/main/res/values-nb/plurals-icsopenvpn.xml (renamed from app/src/main/res/values-no/plurals-icsopenvpn.xml)0
-rwxr-xr-xapp/src/main/res/values-nb/strings-icsopenvpn.xml (renamed from app/src/main/res/values-no/strings-icsopenvpn.xml)0
-rw-r--r--app/src/main/res/values-nb/strings.xml103
-rw-r--r--app/src/main/res/values-nl/strings.xml496
-rw-r--r--app/src/main/res/values-no/strings.xml103
-rw-r--r--app/src/main/res/values-pl/strings.xml228
-rw-r--r--app/src/main/res/values-pt-rBR/strings.xml536
-rw-r--r--app/src/main/res/values-pt-rPT/strings.xml206
-rw-r--r--app/src/main/res/values-ro/strings.xml120
-rw-r--r--app/src/main/res/values-ru/strings.xml524
-rw-r--r--app/src/main/res/values-tr/strings.xml534
-rw-r--r--app/src/main/res/values-ug/strings.xml306
-rw-r--r--app/src/main/res/values-uk/strings.xml352
-rw-r--r--app/src/main/res/values-vi/strings.xml412
-rw-r--r--app/src/main/res/values-zh-rTW/strings.xml508
-rw-r--r--app/src/main/res/values-zh/strings.xml506
-rw-r--r--app/src/main/res/values/strings.xml31
-rw-r--r--app/src/main/res/values/untranslatable.xml52
-rw-r--r--app/src/main/res/xml/locales_config.xml28
-rw-r--r--app/src/normal/assets/beta.coopvpn.net.json47
-rw-r--r--app/src/normal/assets/beta.coopvpn.net.pem10
-rw-r--r--app/src/normal/assets/calyx.net.json37
-rw-r--r--app/src/normal/assets/calyx.net.pem41
-rw-r--r--app/src/normal/assets/riseup.net.json52
-rw-r--r--app/src/normal/assets/urls/beta.coopvpn.net.url3
-rw-r--r--app/src/normal/assets/urls/calyx.net.url5
-rw-r--r--app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java36
-rw-r--r--app/src/normalProductionFatDebug/assets/beta.coopvpn.net.json47
-rw-r--r--app/src/normalProductionFatDebug/assets/beta.coopvpn.net.pem10
-rw-r--r--app/src/normalProductionFatDebug/assets/calyx.net.json37
-rw-r--r--app/src/normalProductionFatDebug/assets/calyx.net.pem41
-rw-r--r--app/src/normalProductionFatDebug/assets/urls/beta.coopvpn.net.url3
-rw-r--r--app/src/normalProductionFatDebug/assets/urls/calyx.net.url5
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/base/models/IntroducerTest.java19
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/base/utils/CredentialsParserTest.java2
126 files changed, 9124 insertions, 8457 deletions
diff --git a/app/assets/fronts b/app/assets/fronts
deleted file mode 100644
index acd1cd94..00000000
--- a/app/assets/fronts
+++ /dev/null
@@ -1,4 +0,0 @@
-snowflake-target https://1098762253.rsc.cdn77.org
-snowflake-fronts www.cdn77.com,www.phpmyadmin.net
-snowflake-stun stun:stun.antisip.com:3478,stun:stun.epygi.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.mixvoip.com:3478,stun:stun.nextcloud.com:3478,stun:stun.bethesda.net:3478,stun:stun.nextcloud.com:443
-utls-imitate hellorandomizedalpn \ No newline at end of file
diff --git a/app/assets/fronts-amp b/app/assets/fronts-amp
new file mode 100644
index 00000000..94ec0212
--- /dev/null
+++ b/app/assets/fronts-amp
@@ -0,0 +1,4 @@
+url https://1098762253.rsc.cdn77.org
+fronts www.google.com
+ice stun:stun.antisip.com:3478,stun:stun.epygi.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.mixvoip.com:3478,stun:stun.nextcloud.com:3478,stun:stun.bethesda.net:3478,stun:stun.nextcloud.com:443
+ampcache https://cdn.ampproject.org/
diff --git a/app/assets/fronts-http b/app/assets/fronts-http
new file mode 100644
index 00000000..57fa7ff9
--- /dev/null
+++ b/app/assets/fronts-http
@@ -0,0 +1,3 @@
+url https://1098762253.rsc.cdn77.org
+fronts www.cdn77.com,www.phpmyadmin.net
+ice stun:stun.antisip.com:3478,stun:stun.epygi.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.mixvoip.com:3478,stun:stun.nextcloud.com:3478,stun:stun.bethesda.net:3478,stun:stun.nextcloud.com:443
diff --git a/app/assets/fronts-sqs b/app/assets/fronts-sqs
new file mode 100644
index 00000000..83f99a28
--- /dev/null
+++ b/app/assets/fronts-sqs
@@ -0,0 +1,3 @@
+ice stun:stun.antisip.com:3478,stun:stun.epygi.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.nextcloud.com:3478,stun:stun.bethesda.net:3478,stun:stun.nextcloud.com:443
+sqsqueue https://sqs.us-east-2.amazonaws.com/490393006362/snowflake-broker
+sqscreds eyJhd3MtYWNjZXNzLWtleS1pZCI6IkFLSUFYRUxOVE9FTkdCWVU3NkVBIiwiYXdzLXNlY3JldC1rZXkiOiJHdTlTWm9xTVg2WENIa2dZazlHZnBvYlpoVFZMdzNpL0N5cFdVVGZOIn0=
diff --git a/app/build.gradle b/app/build.gradle
index 48ec9f0f..3a39fc9c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,12 +4,12 @@ import java.util.regex.Pattern
apply plugin: 'com.android.application'
android {
- ndkVersion "21.4.7075529"
+ ndkVersion "28.2.13676358"
namespace = "se.leap.bitmaskclient"
compileOptions {
- targetCompatibility = JavaVersion.VERSION_17
- sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_21
+ sourceCompatibility = JavaVersion.VERSION_21
}
viewBinding {
@@ -32,11 +32,11 @@ android {
// the factor 1000 is used so that gplay users can upgrade from split apks ((current version number - 1) * 1000) + n
// to extracted bundle apks, supplied by google
// however we don't calculate the versionCode here, because F-Droid doesn't like that
- versionCode 181000
- versionName "1.5.2RC2"
- compileSdk 34
- minSdkVersion 21
- targetSdkVersion 34
+ versionCode 185000
+ versionName "1.6.2"
+ compileSdk 35
+ minSdkVersion 24
+ targetSdkVersion 35
vectorDrawables.useSupportLibrary = true
buildConfigField 'boolean', 'openvpn3', 'false'
@@ -83,10 +83,6 @@ android {
buildConfigField 'boolean', 'actionbar_capitalize_title', 'true'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- dexOptions {
- jumboMode true
- multiDexEnabled true
- }
ndk {
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
@@ -272,20 +268,19 @@ android {
applicationIdSuffix ".beta"
appSuffix = " Beta"
buildConfigField "Boolean", "DEBUG_MODE", "true"
- testCoverageEnabled = false
// tor-android doesn't know this build-type, fallback to release in that case
matchingFallbacks = ['release']
+ enableUnitTestCoverage false
+ enableAndroidTestCoverage false
}
debug {
- testCoverageEnabled = false
buildConfigField "Boolean", "DEBUG_MODE", "true"
+ enableUnitTestCoverage false
+ enableAndroidTestCoverage false
}
}
- lintOptions {
- abortOnError false
- }
sourceSets {
main {
@@ -381,63 +376,66 @@ android {
setIgnore(true)
}
}
+ lint {
+ abortOnError false
+ }
}
dependencies {
- testImplementation 'junit:junit:4.13.2'
+ testImplementation libs.junit
//outdated mockito-core version due to powermock dependency
- testImplementation 'org.mockito:mockito-core:3.6.0'
- testImplementation('org.powermock:powermock-api-mockito2:2.0.9')
+ testImplementation libs.mockito.core
+ testImplementation(libs.powermock.api.mockito2)
// { exclude group: 'junit' exclude group: 'org.mockito' }
- testImplementation 'org.robolectric:robolectric:4.13'
- testImplementation 'org.conscrypt:conscrypt-openjdk-uber:2.5.2'
-
- testImplementation 'org.powermock:powermock-module-junit4:2.0.9'
- testImplementation 'org.powermock:powermock-core:2.0.9'
- testImplementation 'org.powermock:powermock-module-junit4-rule:2.0.9'
- testImplementation group: 'com.tngtech.java', name: 'junit-dataprovider', version: '1.10.0'
-
- androidTestImplementation 'org.mockito:mockito-core:3.9.0'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0'
- androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.5.0'
- androidTestImplementation 'androidx.test.espresso:espresso-intents:3.5.0'
- androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
-
- androidTestImplementation 'tools.fastlane:screengrab:2.1.1'
- testImplementation 'tools.fastlane:screengrab:2.1.1'
-
- testImplementation 'org.json:json:20180813'
- androidTestImplementation 'androidx.test.ext:junit:1.1.4'
- debugImplementation 'com.squareup.leakcanary:leakcanary-android-core:2.9.1'
- debugImplementation 'androidx.fragment:fragment-testing:1.6.2'
- debugImplementation 'androidx.test:core:1.5.0'
-
- implementation 'com.google.code.gson:gson:2.10.1'
- implementation 'com.squareup.okhttp3:okhttp:4.10.0'
- implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.10.0'
- implementation 'org.conscrypt:conscrypt-android:2.5.2'
- implementation 'org.bouncycastle:bcprov-jdk15on:1.70'
- implementation 'androidx.security:security-crypto:1.1.0-alpha06'
- implementation 'androidx.legacy:legacy-support-core-utils:1.0.0'
- implementation 'androidx.annotation:annotation:1.7.0'
- implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'androidx.core:core:1.12.0'
- implementation 'androidx.appcompat:appcompat:1.6.1'
- implementation 'com.google.android.material:material:1.10.0'
- implementation 'androidx.fragment:fragment:1.6.2'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
- implementation 'androidx.multidex:multidex:2.0.1'
- implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
- implementation 'androidx.lifecycle:lifecycle-process:2.7.0'
- implementation 'de.hdodenhof:circleimageview:3.1.0'
+ testImplementation libs.robolectric
+ testImplementation libs.conscrypt.openjdk.uber
+
+ testImplementation libs.powermock.module.junit4
+ testImplementation libs.powermock.core
+ testImplementation libs.powermock.module.junit4.rule
+ testImplementation libs.junit.dataprovider
+
+ androidTestImplementation libs.mockito.core.v390
+ androidTestImplementation libs.androidx.espresso.core
+ androidTestImplementation libs.androidx.espresso.contrib
+ androidTestImplementation libs.androidx.espresso.intents
+ androidTestImplementation libs.androidx.uiautomator
+
+ androidTestImplementation libs.screengrab
+ testImplementation libs.screengrab
+
+ testImplementation libs.json
+ androidTestImplementation libs.androidx.junit.v121
+ debugImplementation libs.leakcanary.android.core
+ debugImplementation libs.androidx.fragment.testing
+ debugImplementation libs.androidx.core
+
+ implementation libs.gson
+ implementation libs.okhttp
+ implementation libs.okhttp.dnsoverhttps
+ implementation libs.conscrypt.android
+ implementation libs.bcprov.jdk15on
+ implementation libs.androidx.security.crypto
+ implementation libs.androidx.legacy.support.core.utils
+ implementation libs.androidx.annotation
+ implementation libs.androidx.legacy.support.v4
+ implementation libs.core
+ implementation libs.androidx.appcompat.v170
+ implementation libs.material
+ implementation libs.androidx.fragment
+ implementation libs.androidx.constraintlayout
+ implementation libs.androidx.multidex
+ implementation libs.androidx.localbroadcast
+ implementation libs.androidx.lifecycle.process
+ implementation libs.circleimageview
// swagger dependencies
- implementation 'io.swagger:swagger-annotations:1.5.17'
- implementation 'io.gsonfire:gson-fire:1.8.0'
- implementation 'org.threeten:threetenbp:1.3.5'
+ implementation libs.swagger.annotations
+ implementation libs.gson.fire
+ implementation libs.threetenbp
// Start:: QR Code Scanner
- normalImplementation 'com.journeyapps:zxing-android-embedded:4.3.0'
+ normalImplementation libs.zxing.android.embedded
// End:: QR Code Scanner
//implementation 'info.guardianproject:tor-android:0.4.5.7'
@@ -502,7 +500,7 @@ subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
- compileSdkVersion 34
+ compileSdkVersion 35
}
}
}
diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/BitmaskTest.java b/app/src/androidTest/java/se/leap/bitmaskclient/BitmaskTest.java
index 1ca0980a..b984042b 100644
--- a/app/src/androidTest/java/se/leap/bitmaskclient/BitmaskTest.java
+++ b/app/src/androidTest/java/se/leap/bitmaskclient/BitmaskTest.java
@@ -1,7 +1,11 @@
package se.leap.bitmaskclient;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static org.junit.Assert.assertNotNull;
+import static utils.ProviderSetupUtils.isVerboseScreenshots;
import android.Manifest;
import android.app.Activity;
@@ -10,12 +14,12 @@ import android.content.Intent;
import android.os.Build;
import android.view.Gravity;
-import androidx.test.espresso.Espresso;
import androidx.test.espresso.ViewInteraction;
import androidx.test.espresso.action.ViewActions;
import androidx.test.espresso.assertion.ViewAssertions;
import androidx.test.espresso.contrib.DrawerActions;
import androidx.test.espresso.contrib.DrawerMatchers;
+import androidx.test.espresso.contrib.RecyclerViewActions;
import androidx.test.espresso.matcher.RootMatchers;
import androidx.test.espresso.matcher.ViewMatchers;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -34,6 +38,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
+import de.blinkt.openvpn.core.VpnStatus;
import se.leap.bitmaskclient.base.MainActivity;
import se.leap.bitmaskclient.base.StartActivity;
import se.leap.bitmaskclient.providersetup.activities.SetupActivity;
@@ -66,71 +71,138 @@ public class BitmaskTest {
public void test01_vpnStartTest() throws InterruptedException, UiObjectNotFoundException {
startMainActivity();
- Screengrab.screenshot("VPN_connecting");
- ViewInteraction mainButtonStop = CustomInteractions.tryResolve(
- Espresso.onView(Matchers.allOf(
- ViewMatchers.withId(R.id.button),
+ ViewInteraction mainButton = null;
+ if (!VpnStatus.isVPNActive()) {
+ mainButton = CustomInteractions.tryResolve(
+ onView(Matchers.allOf(
+ withId(R.id.button)//,
+ /*ViewMatchers.withTagValue(Matchers.is("button_circle_start"))*/)),
+ ViewAssertions.matches(ViewMatchers.isDisplayed()),
+ 20);
+ // turn VPN on
+ mainButton.perform(ViewActions.click());
+
+ // resolve connecting state
+ CustomInteractions.tryResolve(
+ onView(Matchers.allOf(
+ withId(R.id.button),
+ ViewMatchers.withTagValue(Matchers.is("button_circle_cancel")))),
+ ViewAssertions.matches(ViewMatchers.isDisplayed()),
+ 3, "attempt to resolve connecting state");
+ }
+
+ mainButton = CustomInteractions.tryResolve(
+ onView(Matchers.allOf(
+ withId(R.id.button),
ViewMatchers.withTagValue(Matchers.is("button_circle_stop")))),
ViewAssertions.matches(ViewMatchers.isDisplayed()),
- 20);
- Screengrab.screenshot("VPN_connected");
+ 20, "attempt to resolve connected state");
+ Screengrab.screenshot("01_VPN_connected");
- mainButtonStop.perform(ViewActions.click());
- Screengrab.screenshot("VPN_ask_disconnect");
+ // turn VPN off
+ mainButton.perform(ViewActions.click());
+ if (isVerboseScreenshots()) {
+ Screengrab.screenshot("031_VPN_ask_disconnect");
+ }
- Espresso.onView(ViewMatchers.withText(android.R.string.yes))
+ onView(ViewMatchers.withText(android.R.string.yes))
.inRoot(RootMatchers.isDialog())
.check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
.perform(ViewActions.click());
- Screengrab.screenshot("VPN_disconnected");
+ Screengrab.screenshot("03_VPN_disconnected");
+ }
+
+ @Test
+ public void test02_vpnConnectingStateTest() throws InterruptedException, UiObjectNotFoundException {
+ startMainActivity();
+
+ ViewInteraction mainButton = CustomInteractions.tryResolve(
+ onView(Matchers.allOf(
+ withId(R.id.button),
+ ViewMatchers.withTagValue(Matchers.is("button_circle_start")))),
+ ViewAssertions.matches(ViewMatchers.isDisplayed()),
+ 20);
+ // turn VPN on
+ mainButton.perform(ViewActions.click());
+
+ // resolve connecting state
+ CustomInteractions.tryResolve(
+ onView(Matchers.allOf(
+ withId(R.id.button),
+ ViewMatchers.withTagValue(Matchers.is("button_circle_cancel")))),
+ ViewAssertions.matches(ViewMatchers.isDisplayed()),
+ 3, "attempt to resolve connecting state");
+ Screengrab.screenshot("02_VPN_connecting");
+
+ CustomInteractions.tryResolve(
+ onView(Matchers.allOf(
+ withId(R.id.button),
+ ViewMatchers.withTagValue(Matchers.is("button_circle_stop")))),
+ ViewAssertions.matches(ViewMatchers.isDisplayed()),
+ 20, "attempt to resolve connected state");
}
@Test
public void test02_SettingsFragmentScreenshots() {
startMainActivity();
- Espresso.onView(ViewMatchers.withId(R.id.drawer_layout))
+ onView(withId(R.id.drawer_layout))
.check(ViewAssertions.matches(DrawerMatchers.isClosed(Gravity.LEFT))) // Left Drawer should be closed.
.perform(DrawerActions.open()); // Open Drawer
- Screengrab.screenshot("navigationDrawer");
+ Screengrab.screenshot("05_navigationDrawer");
// Start the screen of your activity.
- Espresso.onView(ViewMatchers.withId(R.id.advancedSettings))
+ onView(withId(R.id.advancedSettings))
.perform(ViewActions.click());
- Screengrab.screenshot("settingsFragment");
+ Screengrab.screenshot("06_settingsFragment");
}
@Test
public void test03_LocationSelectionFragmentScreenshots() {
startMainActivity();
- Espresso.onView(ViewMatchers.withId(R.id.drawer_layout))
+ onView(withId(R.id.drawer_layout))
.check(ViewAssertions.matches(DrawerMatchers.isClosed(Gravity.LEFT))) // Left Drawer should be closed.
.perform(DrawerActions.open()); // Open Drawer
- Espresso.onView(ViewMatchers.withId(R.id.manualGatewaySelection))
+ onView(withId(R.id.manualGatewaySelection))
.perform(ViewActions.click());
- Screengrab.screenshot("GatewaySelectionFragment");
+ Screengrab.screenshot("07_GatewaySelectionFragment");
}
@Test
- public void test04_AppExclusionFragmentScreenshots() {
+ public void test04_LanguageSelectionFragmentScreenshots() {
startMainActivity();
- Espresso.onView(ViewMatchers.withId(R.id.drawer_layout))
+ onView(withId(R.id.drawer_layout))
.check(ViewAssertions.matches(DrawerMatchers.isClosed(Gravity.LEFT))) // Left Drawer should be closed.
.perform(DrawerActions.open()); // Open Drawer
- Espresso.onView(ViewMatchers.withId(R.id.advancedSettings)).perform(ViewActions.click());
+ onView(withId(R.id.language_switcher))
+ .perform(ViewActions.click());
+
+ Screengrab.screenshot("08_LanguageSelectionFragment");
+ }
+
+ @Test
+ public void test05_AppExclusionFragmentScreenshots() {
+ startMainActivity();
+ onView(withId(R.id.drawer_layout))
+ .check(ViewAssertions.matches(DrawerMatchers.isClosed(Gravity.LEFT))) // Left Drawer should be closed.
+ .perform(DrawerActions.open()); // Open Drawer
- Espresso.onView(ViewMatchers.withId(R.id.exclude_apps)).perform(ViewActions.click());
+ onView(withId(R.id.advancedSettings)).perform(ViewActions.click());
+ onView(withId(R.id.exclude_apps)).perform(ViewActions.click());
CustomInteractions.tryResolve(
- Espresso.onData(Matchers.anything()).inAdapterView(ViewMatchers.withId(android.R.id.list)).atPosition(2),
+ onView(Matchers.allOf(
+ withId(R.id.list),
+ withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)
+ )).perform(RecyclerViewActions.scrollToPosition(0)),
ViewAssertions.matches(ViewMatchers.isDisplayed()),
- 5);
+ 30, "waiting until app list appears");
- Screengrab.screenshot("App_Exclusion_Fragment");
+ Screengrab.screenshot("09_App_Exclusion_Fragment");
}
private void startMainActivity() {
@@ -146,7 +218,7 @@ public class BitmaskTest {
if (setupActivity != null) {
ProviderSetupUtils.runProviderSetup(device, false, false, InstrumentationRegistry.getInstrumentation().getTargetContext());
}
- Activity mainActivity = instrumentation.waitForMonitorWithTimeout(mainActivityMonitor, 1000);
+ Activity mainActivity = instrumentation.waitForMonitorWithTimeout(mainActivityMonitor, 1000L);
assertNotNull(mainActivity);
}
}
diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java b/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java
index 133b834b..e8b65d3f 100644
--- a/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java
+++ b/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java
@@ -6,24 +6,33 @@ import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.replaceText;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.isEnabled;
+import static androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static org.junit.Assert.assertNotNull;
import static se.leap.bitmaskclient.base.models.Constants.SHARED_ENCRYPTED_PREFERENCES;
import static utils.CustomInteractions.tryResolve;
+import static utils.ProviderSetupUtils.isVerboseScreenshots;
+import android.Manifest;
import android.app.Activity;
import android.app.Instrumentation;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import androidx.test.espresso.ViewInteraction;
-import androidx.test.ext.junit.rules.ActivityScenarioRule;
+import androidx.test.espresso.matcher.ViewMatchers;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.rule.GrantPermissionRule;
import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObjectNotFoundException;
+import org.hamcrest.Matchers;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.FixMethodOrder;
@@ -31,13 +40,10 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
-import org.junit.Assume;
-import se.leap.bitmaskclient.base.MainActivity;
import se.leap.bitmaskclient.base.StartActivity;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.models.ProviderObservable;
-import se.leap.bitmaskclient.base.utils.PreferenceHelper;
import se.leap.bitmaskclient.providersetup.activities.SetupActivity;
import tools.fastlane.screengrab.Screengrab;
import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
@@ -52,9 +58,8 @@ public class ProviderSetupTest {
@ClassRule
public static final LocaleTestRule localeTestRule = new LocaleTestRule();
- // @Rule
- // public ActivityScenarioRule<SetupActivity> mActivityScenarioRule =
- // new ActivityScenarioRule<>(SetupActivity.class);
+ @Rule
+ public GrantPermissionRule notificationPermissionRule = (Build.VERSION.SDK_INT >= 33) ? GrantPermissionRule.grant(Manifest.permission.POST_NOTIFICATIONS) : null;
UiDevice device;
@@ -73,39 +78,58 @@ public class ProviderSetupTest {
// Assume the branding is not "custom" to skip this test when it is.
Assume.assumeFalse("custom".equals(BuildConfig.FLAVOR_branding));
startSetupActivity();
- ProviderSetupUtils.runProviderSetup(device, true, false, InstrumentationRegistry.getInstrumentation().getTargetContext());
+ ProviderSetupUtils.runProviderSelection(true);
}
@Test
public void test02_setupProviderCircumvention() {
startSetupActivity();
- ProviderSetupUtils.runProviderSetup(device, true, true, InstrumentationRegistry.getInstrumentation().getTargetContext());
+ ProviderSetupUtils.runProviderSelection(false);
+ ProviderSetupUtils.runCircumventionSelection(isVerboseScreenshots(), true, false, InstrumentationRegistry.getInstrumentation().getTargetContext());
}
@Test
- public void test03_addManuallyNewProviderScreenshot() {
+ public void test03_addManuallyNewProviderScreenshot() throws UiObjectNotFoundException {
if (!"normal".equals(BuildConfig.FLAVOR_branding)) {
System.out.println("skipping custom provider url test");
return;
}
startSetupActivity();
- Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
ViewInteraction radioButtonSelection = tryResolve(onView(withText(R.string.add_provider)), matches(isDisplayed()));
radioButtonSelection.perform(click());
onView(withId(R.id.edit_customProvider)).perform(replaceText("https://leapvpn.myserver.org"));
tryResolve(onView(withId(R.id.edit_customProvider)), matches(withText("https://leapvpn.myserver.org")));
- Screengrab.screenshot("setup_custom_provider");
- onView(withId(R.id.setup_next_button)).perform(click());
+ Screengrab.screenshot("043_setup_custom_provider");
+ Screengrab.screenshot("043_setup_custom_provider");
+
+ }
+
+ @Test
+ public void test04_addInviteCode() throws UiObjectNotFoundException {
+ if (!"normal".equals(BuildConfig.FLAVOR_branding)) {
+ System.out.println("skipping custom provider url test");
+ return;
+ }
+ startSetupActivity();
- onView(withText(context.getString(R.string.use_standard_vpn, context.getString(R.string.app_name)))).perform(click());
- onView(withId(R.id.setup_next_button)).perform(click());
+ ViewInteraction radioButtonSelection = tryResolve(onView(withText(R.string.enter_invite_code)), matches(isDisplayed()));
+ radioButtonSelection.perform(click());
+ onView(withId(R.id.edit_customProvider)).perform(replaceText("obfsvpnintro://13.12.2.161:443/?cert=faXUc56JJAJP%2B0Gc2zHZX0I2RNXuwR0jz937PrpR%2FNopWkuJFkBQwN%2Bzm4ib%2BXvXxXxXxX&fqdn=mysecret.vpnserver.org&kcp=0&auth=_zYOreyzAh+x79j9Ab0DU3A=="));
+
+ tryResolve(onView(
+ Matchers.allOf(
+ withId(R.id.syntax_check_result),
+ withText(R.string.validation_status_success))
+ ), matches(isDisplayed()), 3);
+ tryResolve(onView(
+ Matchers.allOf(
+ withId(R.id.setup_next_button),
+ isEnabled())
+ ), matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)), 3);
+ Screengrab.screenshot("044_setup_invite_code_provider");
+ Screengrab.screenshot("044_setup_invite_code_provider");
- tryResolve(
- onView(withText(context.getString(R.string.malformed_url, context.getString(R.string.app_name)))),
- matches(isDisplayed()),
- 20);
- Screengrab.screenshot("setup_provider_error_dialog");
}
private void startSetupActivity() {
diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/suite/ScreenshotTest.java b/app/src/androidTest/java/se/leap/bitmaskclient/suite/ScreenshotTest.java
index f3a8d73c..70e08cff 100644
--- a/app/src/androidTest/java/se/leap/bitmaskclient/suite/ScreenshotTest.java
+++ b/app/src/androidTest/java/se/leap/bitmaskclient/suite/ScreenshotTest.java
@@ -12,8 +12,8 @@ import se.leap.bitmaskclient.ProviderSetupTest;
@LargeTest
@RunWith(Suite.class)
@Suite.SuiteClasses({
- ProviderSetupTest.class,
BitmaskTest.class,
+ ProviderSetupTest.class,
})
public class ScreenshotTest {
}
diff --git a/app/src/androidTest/java/utils/CustomInteractions.java b/app/src/androidTest/java/utils/CustomInteractions.java
index 4890c20c..35f8b48f 100644
--- a/app/src/androidTest/java/utils/CustomInteractions.java
+++ b/app/src/androidTest/java/utils/CustomInteractions.java
@@ -18,7 +18,11 @@ public class CustomInteractions {
return tryResolve(viewInteraction, assertion, 10);
}
- public static @Nullable ViewInteraction tryResolve(ViewInteraction viewInteraction, ViewAssertion assertion, int maxTries) {
+ public static @Nullable ViewInteraction tryResolve(ViewInteraction viewInteraction, ViewAssertion assertion, int maxTries) {
+ return tryResolve(viewInteraction, assertion, maxTries, "");
+ }
+
+ public static @Nullable ViewInteraction tryResolve(ViewInteraction viewInteraction, ViewAssertion assertion, int maxTries, String message) {
ViewInteraction resolvedViewInteraction = null;
int attempt = 0;
boolean hasFound = false;
@@ -30,7 +34,7 @@ public class CustomInteractions {
}
hasFound = true;
} catch (NoMatchingViewException exception) {
- System.out.println("NoMatchingViewException - attempt: " + attempt + ". " + exception.getLocalizedMessage());
+ System.out.println("NoMatchingViewException " + message +" - attempt: " + attempt + ". " + exception.getLocalizedMessage());
attempt++;
if (attempt == maxTries) {
throw exception;
diff --git a/app/src/androidTest/java/utils/ProviderSetupUtils.java b/app/src/androidTest/java/utils/ProviderSetupUtils.java
index 9b76ffbd..f72d8a50 100644
--- a/app/src/androidTest/java/utils/ProviderSetupUtils.java
+++ b/app/src/androidTest/java/utils/ProviderSetupUtils.java
@@ -12,10 +12,11 @@ import static utils.CustomInteractions.tryResolve;
import android.content.Context;
import android.net.VpnService;
+import android.os.Bundle;
import androidx.test.espresso.NoMatchingViewException;
import androidx.test.espresso.ViewInteraction;
-import androidx.test.espresso.matcher.ViewMatchers;
+import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.uiautomator.UiDevice;
import androidx.test.uiautomator.UiObject;
import androidx.test.uiautomator.UiObjectNotFoundException;
@@ -31,62 +32,11 @@ public class ProviderSetupUtils {
public static void runProviderSetup(UiDevice device, boolean takeConfigurationScreenshots, boolean useCircumvention, Context targetContext) {
try {
- // ------- PROVIDER SELECTION --------------
- if ("normal".equals(BuildConfig.FLAVOR_branding)) {
- System.out.println("next: provider selection");
- ViewInteraction radioButtonSelection = tryResolve(onView(withText("Riseup")), matches(isDisplayed()));
- if (takeConfigurationScreenshots) Screengrab.screenshot("provider_selection");
- radioButtonSelection.perform(click());
- // next button click
- onView(withText(R.string.next)).perform(click());
- }
-
- // ------- CIRCUMVENTION SELECTION --------------
- System.out.println("next: standard/circumvention selection");
- if (useCircumvention) {
- onView(withText(targetContext.getString(R.string.use_circumvention_tech))).perform(click());
- } else {
- onView(withText(targetContext.getString(R.string.use_standard_vpn, targetContext.getString(R.string.app_name)))).perform(click());
- }
- if (takeConfigurationScreenshots) Screengrab.screenshot("circumvention_selection");
-
- // ------- CONFIGURATION PROGRESS --------------
- System.out.println("next: configuring");
- onView(withText(R.string.next)).perform(click());
- tryResolve(
- onView(
- Matchers.allOf(
- withText(R.string.configuring_provider),
- withId(R.id.tv_title)
- )
- ),
- matches(isDisplayed())
- );
- if (takeConfigurationScreenshots) Screengrab.screenshot("configuring_provider");
-
- // ------- VPN PERMISSON DIALOG --------------
- boolean showPermissionDialog = false;
- if (VpnService.prepare(getApplicationContext()) != null) {
- showPermissionDialog = true;
- tryResolve(onView(withText(R.string.upcoming_connection_request_description)), matches(isDisplayed()), useCircumvention ? 180 : 20);
- System.out.println("next: next permission request");
- if (takeConfigurationScreenshots) Screengrab.screenshot("vpn_permission_rationale");
- onView(withText(R.string.next)).perform(click());
- UiObject okButton = device.findObject(new UiSelector().packageName("com.android.vpndialogs").resourceId("android:id/button1"));
- okButton.waitForExists(30000);
- okButton.click();
- device.waitForWindowUpdate("com.android.vpndialogs", 1000);
- }
-
- // ------- START VPN --------------
- System.out.println("next: perform click on VPN button");
- ViewInteraction interaction = tryResolve(onView(withTagValue(Matchers.is("button_setup_circle_custom"))), matches(isDisplayed()), useCircumvention && !showPermissionDialog ? 180 : 20);
- if (takeConfigurationScreenshots) {
- Screengrab.screenshot("all_set_start_vpn");
- } else {
- // we only want to start the VPN in case we're not running the ProviderSetupTest
- interaction.perform(click());
- }
+ runProviderSelection(takeConfigurationScreenshots);
+ runCircumventionSelection(takeConfigurationScreenshots, useCircumvention, true, targetContext);
+ boolean showPermissionDialog = runVPNPermissionApproval(device, takeConfigurationScreenshots, useCircumvention);
+ runConfiguration(takeConfigurationScreenshots);
+ runStartVPN(takeConfigurationScreenshots, useCircumvention, showPermissionDialog);
} catch (NoMatchingViewException e) {
// it might be that the provider was already configured, so we print the stack
// trace here and try to continue
@@ -95,4 +45,77 @@ public class ProviderSetupUtils {
e.printStackTrace();
}
}
+
+ public static void runStartVPN(boolean takeConfigurationScreenshots, boolean useCircumvention, boolean showPermissionDialog) {
+ // ------- START VPN --------------
+ System.out.println("next: perform click on VPN button");
+ ViewInteraction interaction = tryResolve(onView(withTagValue(Matchers.is("button_setup_circle_custom"))), matches(isDisplayed()), useCircumvention && !showPermissionDialog ? 180 : 20);
+ if (takeConfigurationScreenshots) {
+ Screengrab.screenshot("all_set_start_vpn");
+ } else {
+ // we only want to start the VPN in case we're not running the ProviderSetupTest
+ interaction.perform(click());
+ }
+ }
+
+ public static boolean runVPNPermissionApproval(UiDevice device, boolean takeConfigurationScreenshots, boolean useCircumvention) throws UiObjectNotFoundException {
+ // ------- VPN PERMISSON DIALOG --------------
+ if (VpnService.prepare(getApplicationContext()) != null) {
+ tryResolve(onView(withId(R.id.tv_title)), matches(withText(R.string.title_upcoming_connection_request)));
+ Screengrab.screenshot("permissions_screen");
+ onView(withId(R.id.setup_next_button)).perform(click());
+
+ UiObject okButton = device.findObject(new UiSelector().packageName("com.android.vpndialogs").resourceId("android:id/button1"));
+ okButton.waitForExists(30000);
+ okButton.click();
+ device.waitForWindowUpdate("com.android.vpndialogs", 1000);
+ return true;
+ }
+ return false;
+ }
+
+ public static void runConfiguration(boolean takeConfigurationScreenshots) {
+ // ------- CONFIGURATION PROGRESS --------------
+ System.out.println("next: configuring");
+ tryResolve(
+ onView(
+ Matchers.allOf(
+ withText(R.string.configuring_provider),
+ withId(R.id.tv_title)
+ )
+ ),
+ matches(isDisplayed())
+ );
+ if (takeConfigurationScreenshots) Screengrab.screenshot("configuring_provider");
+ }
+
+ public static void runCircumventionSelection(boolean takeConfigurationScreenshots, boolean useCircumvention, boolean clickNext, Context targetContext) {
+ // ------- CIRCUMVENTION SELECTION --------------
+ if (useCircumvention) {
+ onView(withText(targetContext.getString(R.string.use_circumvention_tech))).perform(click());
+ } else {
+ onView(withText(targetContext.getString(R.string.use_standard_vpn, targetContext.getString(R.string.app_name)))).perform(click());
+ }
+ if (takeConfigurationScreenshots) Screengrab.screenshot("041_circumvention_selection");
+ if (clickNext) onView(withText(R.string.next)).perform(click());
+ }
+
+
+ public static void runProviderSelection(boolean takeConfigurationScreenshots) {
+ // ------- PROVIDER SELECTION --------------
+ if ("normal".equals(BuildConfig.FLAVOR_branding)) {
+ System.out.println("next: provider selection");
+ ViewInteraction radioButtonSelection = tryResolve(onView(withText("CoopVPN Beta")), matches(isDisplayed()));
+ radioButtonSelection.perform(click());
+ if (takeConfigurationScreenshots) Screengrab.screenshot("040_provider_selection");
+ // next button click
+ onView(withText(R.string.next)).perform(click());
+ }
+ }
+
+ public static boolean isVerboseScreenshots() {
+ Bundle arguments = InstrumentationRegistry.getArguments();
+ String verbose = arguments.getString("verbose_screenshots", "false");
+ return "true".equalsIgnoreCase(verbose);
+ }
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 254f38d6..784b8e5d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -28,15 +28,15 @@
android:dataExtractionRules="@xml/data_extraction_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
- android:extractNativeLibs="true"
android:appCategory="productivity"
android:logo="@mipmap/ic_launcher"
android:theme="@style/BitmaskTheme"
android:localeConfig="@xml/locales_config">
<activity
android:name=".providersetup.activities.SetupActivity"
- android:launchMode="singleInstance"
+ android:launchMode="singleTop"
android:screenOrientation="portrait"
+ android:windowSoftInputMode="adjustResize"
android:exported="false" />
<activity-alias
diff --git a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
index a82a87d9..faa96349 100644
--- a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
+++ b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
@@ -393,7 +393,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
// An old running VPN should now be exited
mStarting = false;
- // optionally start start obfsvpn and adapt openvpn config to the port obfsvpn is listening to
+ // optionally start obfsvpn and adapt openvpn config to the port obfsvpn is listening to
Connection.TransportType transportType = connection.getTransportType();
if (mProfile.usePluggableTransports() && transportType.isPluggableTransport()) {
try {
@@ -1093,7 +1093,13 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
@Override
public void onNotificationBuild(int notificationId, Notification notification) {
- ServiceCompat.startForeground(this, notificationId, notification, FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED);
+ try {
+ ServiceCompat.startForeground(this, notificationId, notification, FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED);
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ VpnStatus.logError(e.getLocalizedMessage());
+ stopVPN(false);
+ }
}
public void trigger_url_open(String info) {
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/AppQueryReceiver.java b/app/src/main/java/se/leap/bitmaskclient/base/AppQueryReceiver.java
new file mode 100644
index 00000000..d5788345
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/base/AppQueryReceiver.java
@@ -0,0 +1,36 @@
+package se.leap.bitmaskclient.base;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import se.leap.bitmaskclient.base.utils.ApplicationInfoManager;
+
+public class AppQueryReceiver extends BroadcastReceiver {
+
+ private static final String TAG = AppQueryReceiver.class.getSimpleName();
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (context == null || intent == null ||
+ intent.getAction() == null || intent.getData() == null ||
+ !intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED) ||
+ intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
+ return;
+ }
+
+ String packageName = intent.getData().getEncodedSchemeSpecificPart();
+ if (packageName != null) {
+ ApplicationInfoManager appManager = new ApplicationInfoManager(context);
+ appManager.onApplicationRemoved(packageName);
+ }
+ }
+
+ public static void register(Context context) {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+ filter.addDataScheme("package");
+ context.registerReceiver(new AppQueryReceiver(), filter);
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/BitmaskApp.java b/app/src/main/java/se/leap/bitmaskclient/base/BitmaskApp.java
index 6b3ba348..ae4d7e08 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/BitmaskApp.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/BitmaskApp.java
@@ -28,6 +28,7 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getSavedProvider
import android.content.IntentFilter;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
@@ -44,6 +45,8 @@ import java.security.Security;
import se.leap.bitmaskclient.BuildConfig;
import se.leap.bitmaskclient.appUpdate.DownloadBroadcastReceiver;
import se.leap.bitmaskclient.base.models.ProviderObservable;
+import se.leap.bitmaskclient.base.utils.ApplicationInfoManager;
+import se.leap.bitmaskclient.base.utils.ClientTransportPluginProvider;
import se.leap.bitmaskclient.base.utils.PRNGFixes;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
import se.leap.bitmaskclient.eip.EipSetupObserver;
@@ -61,12 +64,12 @@ public class BitmaskApp extends MultiDexApplication implements DefaultLifecycleO
private ProviderObservable providerObservable;
private DownloadBroadcastReceiver downloadBroadcastReceiver;
private TorStatusObservable torStatusObservable;
-
private ProviderSetupObservable providerSetupObservable;
private PreferenceHelper preferenceHelper;
+
@Override
public void onCreate() {
super.onCreate();
@@ -85,6 +88,7 @@ public class BitmaskApp extends MultiDexApplication implements DefaultLifecycleO
providerObservable.updateProvider(getSavedProviderFromSharedPreferences());
torStatusObservable = TorStatusObservable.getInstance();
providerSetupObservable = ProviderSetupObservable.getInstance();
+ ClientTransportPluginProvider.init(this);
EipSetupObserver.init(this);
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
@@ -100,6 +104,12 @@ public class BitmaskApp extends MultiDexApplication implements DefaultLifecycleO
intentFilter.addCategory(CATEGORY_DEFAULT);
LocalBroadcastManager.getInstance(this.getApplicationContext()).registerReceiver(downloadBroadcastReceiver, intentFilter);
}
+ AppQueryReceiver.register(this);
+ new Thread(() -> {
+ ApplicationInfoManager applicationInfoManager = new ApplicationInfoManager(BitmaskApp.this);
+ applicationInfoManager.updateExcludedApps();
+ }).start();
+
}
@Override
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java b/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java
index 5363f16e..590af74c 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java
@@ -258,7 +258,7 @@ public class StartActivity extends Activity{
if (requestCode == REQUEST_CODE_CONFIGURE_LEAP) {
if (resultCode == RESULT_OK && data != null && data.hasExtra(Provider.KEY)) {
Provider provider = data.getParcelableExtra(Provider.KEY);
- storeProviderInPreferences( provider);
+ storeProviderInPreferences(provider);
ProviderObservable.getInstance().updateProvider(provider);
EipCommand.startVPN(this, false);
showNextActivity(provider);
@@ -296,7 +296,7 @@ public class StartActivity extends Activity{
lastSeenHashes.add(hash);
p.setMotdLastSeenHashes(lastSeenHashes);
p.setLastMotdSeen(System.currentTimeMillis());
- PreferenceHelper.persistProviderAsync(p);
+ PreferenceHelper.storeProviderInPreferences(p, true);
ProviderObservable.getInstance().updateProvider(p);
}
showMotdFragment(message);
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java
index 275dc1c4..36d8afb5 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java
@@ -11,8 +11,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import se.leap.bitmaskclient.BuildConfig;
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java
index fc561d48..25cf0660 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java
@@ -1,5 +1,6 @@
package se.leap.bitmaskclient.base.fragments;
+import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseBridges;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseObfs4;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseObfs4Kcp;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUsePortHopping;
@@ -115,7 +116,7 @@ public class CensorshipCircumventionFragment extends Fragment {
private void initTunneling() {
RadioButton noneRadioButton = new RadioButton(binding.getRoot().getContext());
noneRadioButton.setText(getText(R.string.automatically_select));
- noneRadioButton.setChecked(!getUseObfs4() && !getUseObfs4Kcp() && !getUseObfs4Quic());
+ noneRadioButton.setChecked(getUseBridges() && !getUseObfs4() && !getUseObfs4Kcp() && !getUseObfs4Quic());
noneRadioButton.setId(TUNNELING_AUTOMATICALLY);
binding.tunnelingRadioGroup.addView(noneRadioButton);
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
index 76834332..f618b22b 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
@@ -30,8 +30,10 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.graphics.Rect;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable;
+import android.os.Build;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
@@ -41,6 +43,7 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
import android.widget.Toast;
import androidx.annotation.ColorRes;
@@ -59,6 +62,7 @@ import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.util.Collections;
import de.blinkt.openvpn.core.ConnectionStatus;
import de.blinkt.openvpn.core.VpnStatus;
@@ -150,6 +154,8 @@ public class EipFragment extends Fragment implements PropertyChangeListener {
mainButton = binding.mainButton;
locationButton = binding.gatewayLocationButton;
locationButton.setTextColor(R.color.black800);
+ ViewHelper.applyInsetsToViewMargin(locationButton, false, false, false, true);
+ excludeBackGesture(binding);
mainDescription = binding.mainDescription;
subDescription = binding.subDescription;
stateView = binding.stateView;
@@ -189,6 +195,19 @@ public class EipFragment extends Fragment implements PropertyChangeListener {
return binding.getRoot();
}
+ private void excludeBackGesture(FEipBinding binding) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) return;
+ ViewTreeObserver treeObserver = binding.gestureSuppressView.getViewTreeObserver();
+ treeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ binding.gestureSuppressView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+ Rect rect = new Rect(0, 0, binding.gestureSuppressView.getWidth(), binding.gestureSuppressView.getHeight());
+ binding.gestureSuppressView.setSystemGestureExclusionRects(Collections.singletonList(rect));
+ }
+ });
+ }
+
@Override
public void onStart() {
super.onStart();
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java
index 07608211..3e981aa7 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java
@@ -5,13 +5,12 @@
package se.leap.bitmaskclient.base.fragments;
+import static android.view.View.VISIBLE;
import static se.leap.bitmaskclient.R.string.exclude_apps_fragment_title;
-import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
@@ -20,25 +19,26 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
-import android.widget.ListView;
import android.widget.SearchView;
+import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.annotation.WorkerThread;
import androidx.appcompat.widget.AppCompatTextView;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
-import java.util.Collections;
-import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.Vector;
-import de.blinkt.openvpn.VpnProfile;
import se.leap.bitmaskclient.R;
+import se.leap.bitmaskclient.base.utils.ApplicationInfoManager;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
import se.leap.bitmaskclient.base.utils.ViewHelper;
import se.leap.bitmaskclient.base.views.SimpleCheckBox;
@@ -46,54 +46,38 @@ import se.leap.bitmaskclient.base.views.SimpleCheckBox;
/**
* Created by arne on 16.11.14.
*/
-public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemClickListener, SimpleCheckBox.OnCheckedChangeListener, View.OnClickListener {
- private ListView mListView;
- private VpnProfile mProfile;
+public class ExcludeAppsFragment extends Fragment implements SimpleCheckBox.OnCheckedChangeListener {
+ private static final String TAG = ExcludeAppsFragment.class.getSimpleName();
+ private RecyclerView mRecyclerView;
private PackageAdapter mListAdapter;
-
private Set<String> apps;
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- AppViewHolder avh = (AppViewHolder) view.getTag();
- avh.checkBox.toggle();
- }
-
- @Override
- public void onClick(View v) {
-
- }
-
- static class AppViewHolder {
+ static class AppViewHolder extends RecyclerView.ViewHolder {
public ApplicationInfo mInfo;
- public View rootView;
public AppCompatTextView appName;
public ImageView appIcon;
- //public AppCompatTextView appSize;
- //public AppCompatTextView disabled;
public SimpleCheckBox checkBox;
- static public AppViewHolder createOrRecycle(LayoutInflater inflater, View convertView, ViewGroup parent) {
- if (convertView == null) {
- convertView = inflater.inflate(R.layout.allowed_application_layout, parent, false);
-
- // Creates a ViewHolder and store references to the two children views
- // we want to bind data to.
- AppViewHolder holder = new AppViewHolder();
- holder.rootView = convertView;
- holder.appName = convertView.findViewById(R.id.app_name);
- holder.appIcon = convertView.findViewById(R.id.app_icon);
- holder.checkBox = convertView.findViewById(R.id.app_selected);
- convertView.setTag(holder);
-
- return holder;
- } else {
- // Get the ViewHolder back to get fast access to the TextView
- // and the ImageView.
- return (AppViewHolder) convertView.getTag();
- }
+ public AppViewHolder(@NonNull View itemView) {
+ super(itemView);
+ appName = itemView.findViewById(R.id.app_name);
+ appIcon = itemView.findViewById(R.id.app_icon);
+ checkBox = itemView.findViewById(R.id.app_selected);
+ itemView.setOnClickListener(v -> checkBox.toggle());
}
+ public void bind(ApplicationInfo info, ApplicationInfoManager appInfoManager, Set<String> apps, SimpleCheckBox.OnCheckedChangeListener listener) {
+ mInfo = info;
+ CharSequence appLabelText = appInfoManager.loadLabel(info);
+ if (TextUtils.isEmpty(appLabelText)) {
+ appLabelText = info.packageName;
+ }
+ appName.setText(appLabelText);
+ appIcon.setImageDrawable(appInfoManager.loadDrawable(info));
+ checkBox.setTag(info.packageName);
+ checkBox.setOnCheckedChangeListener(listener);
+ checkBox.setChecked(apps.contains(info.packageName));
+ }
}
@Override
@@ -110,11 +94,11 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
}
}
- class PackageAdapter extends BaseAdapter implements Filterable {
+ class PackageAdapter extends RecyclerView.Adapter<AppViewHolder> implements Filterable {
private Vector<ApplicationInfo> mPackages;
private final LayoutInflater mInflater;
- private final PackageManager mPm;
- private ItemFilter mFilter = new ItemFilter();
+ private final ApplicationInfoManager mAppInfoManager;
+ private final ItemFilter mFilter = new ItemFilter();
private Vector<ApplicationInfo> mFilteredData;
@@ -126,25 +110,25 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
FilterResults results = new FilterResults();
-
int count = mPackages.size();
final Vector<ApplicationInfo> nlist = new Vector<>(count);
for (int i = 0; i < count; i++) {
ApplicationInfo pInfo = mPackages.get(i);
- CharSequence appName = pInfo.loadLabel(mPm);
+ CharSequence appName = mAppInfoManager.loadLabel(pInfo);
if (TextUtils.isEmpty(appName))
appName = pInfo.packageName;
- if (appName instanceof String) {
+ if (appName instanceof String) {
if (((String) appName).toLowerCase(Locale.getDefault()).contains(filterString))
- nlist.add(pInfo);
+ nlist.add(pInfo);
} else {
if (appName.toString().toLowerCase(Locale.getDefault()).contains(filterString))
nlist.add(pInfo);
}
}
+ sortList(nlist);
results.values = nlist;
results.count = nlist.size();
@@ -156,90 +140,63 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
mFilteredData = (Vector<ApplicationInfo>) results.values;
notifyDataSetChanged();
}
-
}
-
- PackageAdapter(Context c, VpnProfile vp) {
- mPm = c.getPackageManager();
- mProfile = vp;
+ PackageAdapter(Context c) {
+ mAppInfoManager = new ApplicationInfoManager(c);
mInflater = LayoutInflater.from(c);
mPackages = new Vector<>();
mFilteredData = mPackages;
}
-
+ @WorkerThread
private void populateList(Activity c) {
- List<ApplicationInfo> installedPackages = mPm.getInstalledApplications(PackageManager.GET_META_DATA);
-
- // Remove apps not using Internet
-
- int androidSystemUid = 0;
- ApplicationInfo system = null;
- Vector<ApplicationInfo> apps = new Vector<ApplicationInfo>();
-
- try {
- system = mPm.getApplicationInfo("android", PackageManager.GET_META_DATA);
- androidSystemUid = system.uid;
- apps.add(system);
- } catch (PackageManager.NameNotFoundException e) {
- }
-
-
- for (ApplicationInfo app : installedPackages) {
+ Vector<ApplicationInfo> appsList = mAppInfoManager.getApplicationInfos();
+ sortList(appsList);
+ mPackages = appsList;
+ mFilteredData = appsList;
+ c.runOnUiThread(() -> {
+ if (!appsList.isEmpty()) {
+ mRecyclerView.setVisibility(VISIBLE);
+ }
+ this.notifyDataSetChanged();
+ });
+ }
- if (mPm.checkPermission(Manifest.permission.INTERNET, app.packageName) == PackageManager.PERMISSION_GRANTED &&
- app.uid != androidSystemUid) {
+ private void sortList(Vector<ApplicationInfo> appsList) {
+ appsList.sort((info1, info2) -> {
+ boolean app1IsExcluded = apps.contains(info1.packageName);
+ boolean app2IsExcluded = apps.contains(info2.packageName);
- apps.add(app);
+ // First, sort by the app exclusion boolean condition
+ if (app1IsExcluded != app2IsExcluded) {
+ return Boolean.compare(app2IsExcluded, app1IsExcluded);
}
- }
- Collections.sort(apps, new ApplicationInfo.DisplayNameComparator(mPm));
- mPackages = apps;
- mFilteredData = apps;
- c.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- notifyDataSetChanged();
- }
+ // If boolean conditions are equal, sort alphabetically by label
+ String label1 = mAppInfoManager.loadLabel(info1).toString();
+ String label2 = mAppInfoManager.loadLabel(info2).toString();
+ return label1.compareToIgnoreCase(label2);
});
- }
- @Override
- public int getCount() {
- return mFilteredData.size();
}
@Override
- public Object getItem(int position) {
- return mFilteredData.get(position);
+ public int getItemCount() {
+ return mFilteredData.size();
}
+ @NonNull
@Override
- public long getItemId(int position) {
- return mFilteredData.get(position).packageName.hashCode();
+ public AppViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View itemView = mInflater.inflate(R.layout.allowed_application_layout, parent, false);
+ return new AppViewHolder(itemView);
}
@Override
- public View getView(int position, View convertView, ViewGroup parent) {
- AppViewHolder viewHolder = AppViewHolder.createOrRecycle(mInflater, convertView, parent);
-
- viewHolder.mInfo = mFilteredData.get(position);
- final ApplicationInfo mInfo = mFilteredData.get(position);
-
-
- CharSequence appName = mInfo.loadLabel(mPm);
-
- if (TextUtils.isEmpty(appName))
- appName = mInfo.packageName;
- viewHolder.appName.setText(appName);
- viewHolder.appIcon.setImageDrawable(mInfo.loadIcon(mPm));
- viewHolder.checkBox.setTag(mInfo.packageName);
- viewHolder.checkBox.setOnCheckedChangeListener(ExcludeAppsFragment.this);
- viewHolder.checkBox.setChecked(apps.contains(mInfo.packageName));
-
- return viewHolder.rootView;
+ public void onBindViewHolder(@NonNull AppViewHolder holder, int position) {
+ ApplicationInfo mInfo = mFilteredData.get(position);
+ holder.bind(mInfo, mAppInfoManager, apps, ExcludeAppsFragment.this);
}
@Override
@@ -271,33 +228,37 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.allowed_apps, menu);
- SearchView searchView = (SearchView) menu.findItem( R.id.app_search_widget ).getActionView();
- searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String query) {
- mListView.setFilterText(query);
- mListView.setTextFilterEnabled(true);
- return true;
- }
+ SearchView searchView = (SearchView) menu.findItem(R.id.app_search_widget).getActionView();
+ if (searchView != null) {
+ searchView.setOnSearchClickListener(v -> {
+ ViewHelper.showCustomActionBar(ExcludeAppsFragment.this, false);
+ });
- @Override
- public boolean onQueryTextChange(String newText) {
- mListView.setFilterText(newText);
- if (TextUtils.isEmpty(newText))
- mListView.setTextFilterEnabled(false);
- else
- mListView.setTextFilterEnabled(true);
-
- return true;
- }
- });
- searchView.setOnCloseListener(() -> {
- mListView.clearTextFilter();
- mListAdapter.getFilter().filter("");
- return false;
- });
-
- tintSearchViewChild(searchView);
+ searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ mListAdapter.getFilter().filter(query);
+ return true;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ if (TextUtils.isEmpty(newText)) {
+ mListAdapter.getFilter().filter("");
+ } else {
+ mListAdapter.getFilter().filter(newText);
+ }
+ return true;
+ }
+ });
+ searchView.setOnCloseListener(() -> {
+ mListAdapter.getFilter().filter("");
+ ViewHelper.showCustomActionBar(this, true);
+ return false;
+ });
+
+ tintSearchViewChild(searchView);
+ }
super.onCreateOptionsMenu(menu, inflater);
}
@@ -308,8 +269,10 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
tintSearchViewChild((ViewGroup) v);
}
if (v instanceof ImageView) {
- ((ImageView) v).setColorFilter(getResources().getColor(R.color.colorActionBarTitleFont),
+ ((ImageView) v).setColorFilter(ContextCompat.getColor(view.getContext(), R.color.colorActionBarTitleFont),
android.graphics.PorterDuff.Mode.SRC_IN);
+ } else if (v instanceof TextView) {
+ ((TextView) v).setTextColor(ContextCompat.getColor(view.getContext(), R.color.colorActionBarTitleFont));
}
}
}
@@ -318,18 +281,24 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.allowed_vpn_apps, container, false);
- mListView = v.findViewById(android.R.id.list);
+ mRecyclerView = v.findViewById(R.id.list);
+ mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
- mListAdapter = new PackageAdapter(getActivity(), mProfile);
- mListView.setAdapter(mListAdapter);
- mListView.setOnItemClickListener(this);
+ mListAdapter = new PackageAdapter(getActivity());
+ mRecyclerView.setAdapter(mListAdapter);
- mListView.setEmptyView(v.findViewById(R.id.loading_container));
ViewHelper.setActionBarSubtitle(this, exclude_apps_fragment_title);
+ ViewHelper.showCustomActionBar(this, true);
new Thread(() -> mListAdapter.populateList(getActivity())).start();
return v;
}
-}
+ @Override
+ public void onDestroyView() {
+ mRecyclerView.setAdapter(null);
+ mListAdapter = null;
+ super.onDestroyView();
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
index 5cd6c2a0..78407a12 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2021 LEAP Encryption Access Project and contributors
+ * Copyright (c) 2021-2026 LEAP Encryption Access Project and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/LanguageSelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/LanguageSelectionFragment.java
index 263a8d46..8b6efbc7 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/LanguageSelectionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/LanguageSelectionFragment.java
@@ -1,7 +1,12 @@
package se.leap.bitmaskclient.base.fragments;
+import static android.content.res.Resources.getSystem;
+import static androidx.core.app.LocaleManagerCompat.getSystemLocales;
+import static androidx.core.os.ConfigurationCompat.getLocales;
import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
+import android.content.Context;
+import android.content.res.Configuration;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -17,19 +22,19 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
+import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import se.leap.bitmaskclient.R;
+import se.leap.bitmaskclient.base.utils.StringUtils;
import se.leap.bitmaskclient.base.views.SimpleCheckBox;
import se.leap.bitmaskclient.databinding.FLanguageSelectionBinding;
import se.leap.bitmaskclient.databinding.VSelectTextListItemBinding;
public class LanguageSelectionFragment extends BottomSheetDialogFragment {
- static final String TAG = LanguageSelectionFragment.class.getSimpleName();
+ public static final String TAG = LanguageSelectionFragment.class.getSimpleName();
static final String SYSTEM_LOCALE = "systemLocale";
private FLanguageSelectionBinding binding;
@@ -63,29 +68,35 @@ public class LanguageSelectionFragment extends BottomSheetDialogFragment {
}
private void initRecyclerView(List<String> supportedLanguages) {
- Locale defaultLocale = AppCompatDelegate.getApplicationLocales().get(0);
- if (defaultLocale == null) {
- defaultLocale = LocaleListCompat.getDefault().get(0);
- }
- // NOTE: Sort the supported languages by their display names.
- // This would make updating supported languages easier as we don't have to tip toe around the order
- Collections.sort(supportedLanguages, (lang1, lang2) -> {
- String displayName1 = Locale.forLanguageTag(lang1).getDisplayName(Locale.ENGLISH);
- String displayName2 = Locale.forLanguageTag(lang2).getDisplayName(Locale.ENGLISH);
- return displayName1.compareTo(displayName2);
+ Locale currentLocale = getCurrentLocale();
+
+ // new list so it doesn't crash on fixed size
+ List<String> languagesWithSystem = new ArrayList<>(supportedLanguages);
+
+ // Sort by the language's native name (endonym)
+ languagesWithSystem.sort((lang1, lang2) -> {
+ Locale loc1 = Locale.forLanguageTag(lang1);
+ Locale loc2 = Locale.forLanguageTag(lang2);
+
+ String name1 = loc1.getDisplayName(loc1);
+ String name2 = loc2.getDisplayName(loc2);
+
+ return name1.compareToIgnoreCase(name2);
});
+
+ // using add(0) because addFirst() causes a NoSuchMethodError on Android 7
+ languagesWithSystem.add(0, "");
+
binding.languages.setAdapter(
- new LanguageSelectionAdapter(supportedLanguages, this::updateLocale, defaultLocale)
+ new LanguageSelectionAdapter(languagesWithSystem, this::updateLocale, currentLocale)
);
binding.languages.setLayoutManager(new LinearLayoutManager(getContext()));
}
+ // use current locale or fallback to system default
public static Locale getCurrentLocale() {
- Locale defaultLocale = AppCompatDelegate.getApplicationLocales().get(0);
- if (defaultLocale == null) {
- defaultLocale = LocaleListCompat.getDefault().get(0);
- }
- return defaultLocale;
+ LocaleListCompat appLocales = AppCompatDelegate.getApplicationLocales();
+ return appLocales.isEmpty() ? LocaleListCompat.getDefault().get(0) : appLocales.get(0);
}
/**
@@ -102,7 +113,7 @@ public class LanguageSelectionFragment extends BottomSheetDialogFragment {
}
/**
- * Adapter for the language selection recycler view.
+ * Adapter for language selection recycler view.
*/
static class LanguageSelectionAdapter extends RecyclerView.Adapter<LanguageSelectionAdapter.LanguageViewHolder> {
@@ -126,12 +137,62 @@ public class LanguageSelectionFragment extends BottomSheetDialogFragment {
@Override
public void onBindViewHolder(@NonNull LanguageViewHolder holder, int position) {
String languageTag = languages.get(position);
- holder.languageName.setText(Locale.forLanguageTag(languageTag).getDisplayName(Locale.ENGLISH));
- if (languages.contains(selectedLocale.toLanguageTag())) {
- holder.selected.setChecked(selectedLocale.toLanguageTag().equals(languageTag));
+
+ // using system lang or not
+ boolean isSystemSet = AppCompatDelegate.getApplicationLocales().isEmpty();
+
+ if (languageTag.isEmpty()) {
+ // handle empty string (system default)
+ Locale systemLocale = null;
+
+ try {
+ // Use LocaleManagerCompat to reliably bypass app-level locale overrides
+ LocaleListCompat trueSystemLocales = getSystemLocales(holder.itemView.getContext());
+ if (!trueSystemLocales.isEmpty()) {
+ systemLocale = trueSystemLocales.get(0);
+ }
+ } catch (Exception e) {
+ // Fallback for older AndroidX library versions
+ }
+
+ if (systemLocale == null) {
+ systemLocale = getLocales(getSystem().getConfiguration()).get(0);
+ }
+
+ String systemLabel = systemLocale != null ?
+ getLocalizedSystemLabel(holder.itemView.getContext(), systemLocale) :
+ "";
+
+ holder.languageName.setText(systemLabel);
+ holder.selected.setChecked(isSystemSet);
+
} else {
- holder.selected.setChecked(selectedLocale.getLanguage().equals(languageTag));
+ // standard language
+ Locale targetLocale = Locale.forLanguageTag(languageTag);
+
+ // Pass targetLocale into getDisplayName to get the native name (endonym)
+ String displayName = targetLocale.getDisplayName(targetLocale);
+
+ // Capitalize the first letter
+ if (!displayName.isEmpty()) {
+ displayName = StringUtils.capitalize(displayName, targetLocale);
+ }
+
+ holder.languageName.setText(displayName);
+
+ // no double-check items if system default is active
+ if (isSystemSet) {
+ holder.selected.setChecked(false);
+ } else {
+ // match exact tag or just the language code
+ if (languages.contains(selectedLocale.toLanguageTag())) {
+ holder.selected.setChecked(selectedLocale.toLanguageTag().equals(languageTag));
+ } else {
+ holder.selected.setChecked(selectedLocale.getLanguage().equals(languageTag));
+ }
+ }
}
+
holder.itemView.setOnClickListener(v -> clickListener.onLanguageClick(languageTag));
}
@@ -140,6 +201,22 @@ public class LanguageSelectionFragment extends BottomSheetDialogFragment {
return languages.size();
}
+ // Language name in system language, suffix translated to current app language
+ private String getLocalizedSystemLabel(Context context, Locale systemLocale) {
+ // 1. Force the suffix to fetch strings in the APP'S current language (selectedLocale)
+ Configuration appConfig = new Configuration(context.getResources().getConfiguration());
+ appConfig.setLocale(selectedLocale);
+ Context appLocalizedContext = context.createConfigurationContext(appConfig);
+
+ String suffix = appLocalizedContext.getString(R.string.system_default);
+
+ // 2. The language name uses its endonym (true system language's own name)
+ String languageName = systemLocale.getDisplayName(systemLocale);
+ languageName = StringUtils.capitalize(languageName, systemLocale);
+
+ return String.format("%s\n(%s)", languageName, suffix);
+ }
+
/**
* View holder for the language item
*/
@@ -156,11 +233,10 @@ public class LanguageSelectionFragment extends BottomSheetDialogFragment {
}
}
-
/**
* Interface for the language click listener
*/
interface LanguageClickListener {
void onLanguageClick(String languageTag);
}
-}
+} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java
index 41e102bb..98d0fb8c 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2021 LEAP Encryption Access Project and contributers
+ * Copyright (c) 2026 LEAP Encryption Access Project and contributers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,8 +17,11 @@
package se.leap.bitmaskclient.base.fragments;
+import static android.content.res.Resources.getSystem;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
+import static androidx.core.os.ConfigurationCompat.getLocales;
+import static se.leap.bitmaskclient.base.fragments.LanguageSelectionFragment.getCurrentLocale;
import static se.leap.bitmaskclient.base.models.Constants.DONATION_URL;
import static se.leap.bitmaskclient.base.models.Constants.ENABLE_DONATION;
import static se.leap.bitmaskclient.base.models.Constants.PREFERRED_CITY;
@@ -50,7 +53,6 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.graphics.drawable.DrawerArrowDrawable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
-import androidx.core.os.LocaleListCompat;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
@@ -58,7 +60,6 @@ import androidx.fragment.app.Fragment;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Locale;
-import java.util.Map;
import se.leap.bitmaskclient.BuildConfig;
import se.leap.bitmaskclient.R;
@@ -67,6 +68,8 @@ import se.leap.bitmaskclient.base.MainActivity;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.models.ProviderObservable;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
+import se.leap.bitmaskclient.base.utils.StringUtils;
+import se.leap.bitmaskclient.base.utils.ViewHelper;
import se.leap.bitmaskclient.base.views.IconSwitchEntry;
import se.leap.bitmaskclient.base.views.IconTextEntry;
import se.leap.bitmaskclient.eip.EipStatus;
@@ -127,6 +130,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
restoreFromSavedInstance(savedInstanceState);
TetheringObservable.getInstance().addObserver(this);
EipStatus.getInstance().addObserver(this);
+ ViewHelper.applyInsetsToViewMargin(drawerView, true, true, true, false);
return drawerView;
}
@@ -169,6 +173,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
// set a custom shadow that overlays the main content when the drawer opens
this.drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
toolbar = this.drawerLayout.findViewById(R.id.toolbar);
+ ViewHelper.applyInsetsToViewPadding(toolbar, true, true, true, false);
setupEntries();
setupActionBarDrawerToggle(activity);
@@ -207,7 +212,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
activity.invalidateOptionsMenu();
}
};
- setDrawerToggleColor(activity, ContextCompat.getColor(activity, R.color.amber200));
+ setDrawerToggleColor(activity, ContextCompat.getColor(drawerView.getContext(), R.color.colorActionBarTitleFont));
}
private void setupEntries() {
@@ -319,12 +324,29 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
});
}
-
private void initLanguageSettingsEntry() {
IconTextEntry languageSwitcher = drawerView.findViewById(R.id.language_switcher);
- Locale currentLocale = LanguageSelectionFragment.getCurrentLocale();
- languageSwitcher.setSubtitle(currentLocale.getDisplayName(Locale.ENGLISH));
+ if (AppCompatDelegate.getApplicationLocales().isEmpty()) {
+ // system locale
+ Locale systemLocale = getLocales(getSystem().getConfiguration()).get(0);
+ // getDisplayLanguage() gets "English" instead of "English (United States)"
+ String languageName = systemLocale != null ?
+ systemLocale.getDisplayLanguage(systemLocale) :
+ "";
+ languageName = StringUtils.capitalize(languageName, systemLocale);
+
+ // Don't add "System default" suffix here, no multi line possible
+ languageSwitcher.setSubtitle(languageName);
+ } else {
+ // Standard user-selected language
+ Locale currentLocale = getCurrentLocale();
+
+ // Use getDisplayLanguage() for consistency
+ String languageName = currentLocale.getDisplayLanguage(currentLocale);
+ languageName = StringUtils.capitalize(languageName,currentLocale);
+ languageSwitcher.setSubtitle(languageName);
+ }
languageSwitcher.setOnClickListener(v -> {
FragmentManagerEnhanced fragmentManager = new FragmentManagerEnhanced(getActivity().getSupportFragmentManager());
@@ -347,7 +369,6 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
closeDrawer();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(DONATION_URL));
startActivity(browserIntent);
-
});
}
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java
index d4d72812..ad977348 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java
@@ -4,6 +4,7 @@ import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static se.leap.bitmaskclient.R.string.advanced_settings;
import static se.leap.bitmaskclient.base.fragments.CensorshipCircumventionFragment.TUNNELING_AUTOMATICALLY;
+import static se.leap.bitmaskclient.base.models.Constants.EXCLUDED_APPS;
import static se.leap.bitmaskclient.base.models.Constants.GATEWAY_PINNING;
import static se.leap.bitmaskclient.base.models.Constants.PREFER_UDP;
import static se.leap.bitmaskclient.base.models.Constants.USE_BRIDGES;
@@ -15,8 +16,6 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getExcludedApps;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getPreferUDP;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getShowAlwaysOnDialog;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseBridges;
-import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseSnowflake;
-import static se.leap.bitmaskclient.base.utils.PreferenceHelper.hasSnowflakePrefs;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.preferUDP;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.resetSnowflakeSettings;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setAllowExperimentalTransports;
@@ -24,10 +23,10 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseObfuscatio
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUsePortHopping;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseTunnel;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useBridges;
+import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useManualBridgeSettings;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useManualDiscoverySettings;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useObfuscationPinning;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useSnowflake;
-import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useManualBridgeSettings;
import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
import android.app.AlertDialog;
@@ -46,7 +45,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.widget.AppCompatTextView;
import androidx.appcompat.widget.SwitchCompat;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
@@ -68,6 +66,7 @@ import se.leap.bitmaskclient.firewall.FirewallManager;
public class SettingsFragment extends Fragment implements SharedPreferences.OnSharedPreferenceChangeListener {
+ private static final String TAG = SettingsFragment.class.getSimpleName();
private FirewallManager firewallManager;
private IconTextEntry tethering;
private IconSwitchEntry firewall;
@@ -100,7 +99,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
private void initAutomaticCircumventionEntry(View rootView) {
IconSwitchEntry automaticCircumvention = rootView.findViewById(R.id.bridge_automatic_switch);
- automaticCircumvention.setChecked(getUseBridges() && !useManualBridgeSettings());
+ automaticCircumvention.setChecked(getUseBridges() && !useManualBridgeSettings() && !useManualDiscoverySettings());
automaticCircumvention.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
@@ -135,14 +134,19 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
manualConfigRoot.setVisibility(ProviderObservable.getInstance().getCurrentProvider().supportsPluggableTransports() ? VISIBLE : GONE);
IconTextEntry manualConfiguration = rootView.findViewById(R.id.bridge_manual_switch);
SwitchCompat manualConfigurationSwitch = rootView.findViewById(R.id.bridge_manual_switch_control);
- boolean useManualCircumventionSettings = useManualBridgeSettings() || useManualDiscoverySettings();
+ boolean useManualCircumventionSettings = (getUseBridges() && useManualBridgeSettings()) || useManualDiscoverySettings();
manualConfigurationSwitch.setChecked(useManualCircumventionSettings);
manualConfigurationSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
- resetManualConfig();
- if (!useManualCircumventionSettings){
+ if (isChecked) {
+ useBridges(true);
+ } else {
+ resetManualConfig();
+ }
+ initAutomaticCircumventionEntry(rootView);
+ if (!useManualBridgeSettings() && !useManualDiscoverySettings()){
openManualConfigurationFragment();
}
});
@@ -166,11 +170,6 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
EipCommand.startVPN(getContext(), false);
Toast.makeText(getContext(), R.string.reconnecting, Toast.LENGTH_LONG).show();
}
- View rootView = getView();
- if (rootView == null) {
- return;
- }
- initAutomaticCircumventionEntry(rootView);
}
private void openManualConfigurationFragment() {
@@ -409,8 +408,13 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
initFirewallEntry(getView());
} else if (key.equals(GATEWAY_PINNING)) {
initGatewayPinningEntry(rootView);
+ } else if (key.equals(EXCLUDED_APPS)) {
+ initExcludeAppsEntry(rootView);
+ if (VpnStatus.isVPNActive()) {
+ EipCommand.startVPN(getContext(), false);
+ Toast.makeText(getContext(), R.string.reconnecting, Toast.LENGTH_LONG).show();
+ }
}
-
if (key.equals(USE_OBFUSCATION_PINNING) || key.equals(USE_BRIDGES)) {
initObfuscationPinningEntry(rootView);
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java
index b8849c4d..e01542f5 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java
@@ -44,6 +44,8 @@ public interface Constants {
String PREFERRED_CITY = "preferred_city";
// ATTENTION: this key is also used in bitmask-core for persistence
String COUNTRYCODE = "COUNTRYCODE";
+ // ATTENTION: this key is also used in bitmask-core
+ String GEOIP_LOOKUP_URL = "";
String USE_SNOWFLAKE = "use_snowflake";
String PREFER_UDP = "prefer_UDP";
String GATEWAY_PINNING = "gateway_pinning";
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Introducer.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Introducer.java
index e3175010..fe30a324 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/models/Introducer.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Introducer.java
@@ -1,15 +1,30 @@
package se.leap.bitmaskclient.base.models;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.ADDRESS_FORMAT;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.AUTH_MISSING;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.CERTIFICATE_LENGTH;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.CERTIFICATE_MISSING;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.FQDN_INVALID;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.FQDN_LENGTH;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.FQDN_MISSING;
+import static se.leap.bitmaskclient.base.models.Introducer.IntroducerException.UNKNOWN_TYPE;
+
+import android.content.Context;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
+import androidx.annotation.Nullable;
+
import java.io.UnsupportedEncodingException;
import java.net.IDN;
import java.net.URISyntaxException;
import java.net.URLEncoder;
+import java.util.IllegalFormatException;
import java.util.Locale;
+import se.leap.bitmaskclient.R;
+
public class Introducer implements Parcelable {
private final String type;
private final String address;
@@ -69,45 +84,52 @@ public class Introducer implements Parcelable {
public boolean validate() {
if (!"obfsvpnintro".equals(type)) {
- throw new IllegalArgumentException("Unknown type: " + type);
+ throw new IntroducerException(UNKNOWN_TYPE, "Unknown type: ", type);
}
if (!address.contains(":") || address.split(":").length != 2) {
- throw new IllegalArgumentException("Expected address in format ipaddr:port");
+ throw new IntroducerException(ADDRESS_FORMAT, "Expected address in format ipaddr:port");
}
if (certificate.length() != 70) {
- throw new IllegalArgumentException("Wrong certificate length: " + certificate.length());
+ throw new IntroducerException(CERTIFICATE_LENGTH, "Wrong certificate length: ", String.valueOf(certificate.length()));
}
if (!"localhost".equals(fullyQualifiedDomainName) && fullyQualifiedDomainName.split("\\.").length < 2) {
- throw new IllegalArgumentException("Expected a FQDN, got: " + fullyQualifiedDomainName);
+ throw new IntroducerException(FQDN_LENGTH, "Expected a FQDN, got: ", fullyQualifiedDomainName);
}
if (auth == null || auth.isEmpty()) {
- throw new IllegalArgumentException("Auth token is missing");
+ throw new IntroducerException(AUTH_MISSING, "Auth token is missing");
}
return true;
}
- public static Introducer fromUrl(String introducerUrl) throws URISyntaxException, IllegalArgumentException {
+ /**
+ * Helper method to create an Introducer model object, containing the information how to query a menshen API via a proxy
+ * @param introducerUrl String representing an 'invite code'
+ * @return Introducer model
+ * @throws NullPointerException in case the parameter introducerUrl is null
+ * @throws IntroducerException in case the parameter introducerUrl is invalid
+ */
+ public static Introducer fromUrl(String introducerUrl) throws NullPointerException, IntroducerException {
Uri uri = Uri.parse(introducerUrl);
String fqdn = uri.getQueryParameter("fqdn");
if (fqdn == null || fqdn.isEmpty()) {
- throw new IllegalArgumentException("FQDN not found in the introducer URL");
+ throw new IntroducerException(FQDN_MISSING, "FQDN not found in the introducer URL");
}
if (!isAscii(fqdn)) {
- throw new IllegalArgumentException("FQDN is not ASCII: " + fqdn);
+ throw new IntroducerException(FQDN_INVALID, "FQDN is not ASCII: " + fqdn, fqdn);
}
boolean kcp = "1".equals(uri.getQueryParameter( "kcp"));
String cert = uri.getQueryParameter( "cert");
if (cert == null || cert.isEmpty()) {
- throw new IllegalArgumentException("Cert not found in the introducer URL");
+ throw new IntroducerException(CERTIFICATE_MISSING, "Cert not found in the introducer URL");
}
String auth = uri.getQueryParameter( "auth");
if (auth == null || auth.isEmpty()) {
- throw new IllegalArgumentException("Authentication token not found in the introducer URL");
+ throw new IntroducerException(AUTH_MISSING, "Authentication token not found in the introducer URL");
}
return new Introducer(uri.getScheme(), uri.getAuthority(), cert, fqdn, kcp, auth);
}
@@ -129,4 +151,48 @@ public class Introducer implements Parcelable {
return String.format(Locale.US, "%s://%s?fqdn=%s&kcp=%d&cert=%s&auth=%s", type, address, URLEncoder.encode(fullyQualifiedDomainName, "UTF-8"), kcpEnabled ? 1 : 0, URLEncoder.encode(certificate, "UTF-8"), URLEncoder.encode(auth, "UTF-8"));
}
+ public static class IntroducerException extends IllegalArgumentException {
+ public static final int UNKNOWN_TYPE = 100;
+ public static final int ADDRESS_FORMAT = 200;
+ public static final int CERTIFICATE_LENGTH = 300;
+ public static final int CERTIFICATE_MISSING = 310;
+ public static final int FQDN_LENGTH = 400;
+ public static final int FQDN_MISSING = 410;
+ public static final int FQDN_INVALID = 420;
+ public static final int AUTH_MISSING = 500;
+
+ private final Object[] args;
+ private final int type;
+
+ public IntroducerException(int type, String defaultMsg, Object... args) {
+ super(args == null ? defaultMsg : String.format(defaultMsg, args));
+ this.type = type;
+ this.args = args;
+ }
+
+
+ @Nullable
+ public String getLocalizedMessage(Context context) {
+ if (context == null) {
+ return getMessage();
+ }
+ try {
+ return switch (type) {
+ case UNKNOWN_TYPE -> context.getString(R.string.error_invite_unknown_type, args);
+ case ADDRESS_FORMAT -> context.getString(R.string.error_invite_address_format);
+ case CERTIFICATE_LENGTH -> context.getString(R.string.error_invite_certificate_length, args);
+ case CERTIFICATE_MISSING -> context.getString(R.string.error_invite_certificate_missing);
+ case FQDN_LENGTH -> context.getString(R.string.error_invite_fqdn_length, args);
+ case FQDN_MISSING -> context.getString(R.string.error_invite_fqdn_missing);
+ case FQDN_INVALID -> context.getString(R.string.error_invite_fqdn_invalid, args);
+ case AUTH_MISSING -> context.getString(R.string.error_invite_auth_missing);
+ default -> getMessage();
+ };
+ } catch (IllegalFormatException e) {
+ e.printStackTrace();
+ return getMessage();
+ }
+
+ }
+ }
} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java
index b4ec23e6..ec4babc1 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java
@@ -47,7 +47,6 @@ import org.json.JSONException;
import org.json.JSONObject;
import java.net.MalformedURLException;
-import java.net.URISyntaxException;
import java.net.URL;
import java.security.PrivateKey;
import java.util.ArrayList;
@@ -67,6 +66,7 @@ import io.swagger.client.model.ModelsProvider;
import motd.IStringCollection;
import motd.Motd;
import se.leap.bitmaskclient.BuildConfig;
+import se.leap.bitmaskclient.base.utils.MapCompat;
/**
* @author Sean Leonard <meanderingcode@aetherislands.net>
@@ -131,7 +131,9 @@ public final class Provider implements Parcelable {
GEOIP_URL = "geoip_url",
MOTD_URL = "motd_url";
- private static final String API_TERM_NAME = "name";
+ private static final String
+ API_TERM_NAME = "name",
+ DEFAULT_LANGUAGE = "default_language";
public Provider() { }
@@ -181,6 +183,10 @@ public final class Provider implements Parcelable {
} catch (JSONException e) {
e.printStackTrace();
}
+
+ if (this.apiVersion >= 5) {
+ setModelsProvider(definition);
+ }
}
}
@@ -508,36 +514,49 @@ public final class Provider implements Parcelable {
// Should we pass the locale in, or query the system here?
String lang = Locale.getDefault().getLanguage();
String name = "";
+ if (apiVersion < 5) {
+ name = getApiv3Name(lang);
+ } else if (modelsProvider != null) {
+ name = MapCompat.getOrDefault(modelsProvider.getName(), lang, modelsProvider.getName().getOrDefault(modelsProvider.getDefaultLanguage(), modelsProvider.getDomain()));
+ }
+ if (name == null || name.isEmpty()) {
+ name = getHostFromUrl(mainUrl);
+ }
+
+ return name;
+ }
+
+ private String getApiv3Name(String language) {
+ String name = null;
+ if (definition == null) {
+ return null;
+ }
try {
- if (definition != null)
- name = definition.getJSONObject(API_TERM_NAME).getString(lang);
- else throw new JSONException("Provider not defined");
+ return definition.getJSONObject(API_TERM_NAME).getString(language);
} catch (JSONException e) {
try {
- name = definition.getJSONObject(API_TERM_NAME).getString("en");
- } catch (JSONException e2) {
- if (mainUrl != null) {
- String host = getHostFromUrl(mainUrl);
- name = host.substring(0, host.indexOf("."));
- }
- }
+ String defaultLanguage = definition.getString(DEFAULT_LANGUAGE);
+ return definition.getJSONObject(API_TERM_NAME).getString(defaultLanguage);
+ } catch (JSONException ignored) { }
}
-
- return name;
+ return null;
}
public String getDescription() {
String lang = Locale.getDefault().getLanguage();
String desc = null;
- try {
- desc = definition.getJSONObject("description").getString(lang);
- } catch (JSONException e) {
- // TODO: handle exception!!
+ if (definition.has("description")) {
try {
- desc = definition.getJSONObject("description").getString(definition.getString("default_language"));
- } catch (JSONException e2) {
- // TODO: i can't believe you're doing it again!
+ desc = definition.getJSONObject("description").getString(lang);
+ } catch (JSONException e) {
+ try {
+ desc = definition.getJSONObject("description").getString(definition.getString(DEFAULT_LANGUAGE));
+ } catch (JSONException e2) {
+ // TODO: i can't believe you're doing it again!
+ }
}
+ } else if (modelsProvider != null) {
+ desc = MapCompat.getOrDefault(modelsProvider.getDescription(), lang, modelsProvider.getDescription().get(modelsProvider.getDefaultLanguage()));
}
return desc;
@@ -983,8 +1002,12 @@ public final class Provider implements Parcelable {
return introducer;
}
- public void setIntroducer(String introducerUrl) throws URISyntaxException, IllegalArgumentException {
- this.introducer = Introducer.fromUrl(introducerUrl);
+ public void setIntroducer(String introducerUrl) throws NullPointerException, IllegalArgumentException {
+ this.introducer = Introducer.fromUrl(introducerUrl);
+ }
+
+ public void setIntroducer(Introducer introducer) {
+ this.introducer = introducer;
}
/**
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/ApplicationInfoManager.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/ApplicationInfoManager.java
new file mode 100644
index 00000000..4ddbc92f
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/ApplicationInfoManager.java
@@ -0,0 +1,80 @@
+package se.leap.bitmaskclient.base.utils;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+
+import androidx.annotation.WorkerThread;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.Vector;
+
+public class ApplicationInfoManager {
+
+ public final static String TAG = ApplicationInfoManager.class.getSimpleName();
+ final PackageManager packageManager;
+ public ApplicationInfoManager(Context context) {
+ packageManager = context.getPackageManager();
+ }
+
+ @WorkerThread
+ public Vector<ApplicationInfo> getApplicationInfos() {
+ List<ApplicationInfo> installedPackages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
+
+ // Remove apps not using Internet
+
+ int androidSystemUid = 0;
+ ApplicationInfo system = null;
+ Vector<ApplicationInfo> apps = new Vector<>();
+
+ try {
+ system = packageManager.getApplicationInfo("android", PackageManager.GET_META_DATA);
+ androidSystemUid = system.uid;
+ apps.add(system);
+ } catch (PackageManager.NameNotFoundException e) {
+ }
+
+
+ for (ApplicationInfo app : installedPackages) {
+
+ if (packageManager.checkPermission(Manifest.permission.INTERNET, app.packageName) == PackageManager.PERMISSION_GRANTED &&
+ app.uid != androidSystemUid) {
+
+ apps.add(app);
+ }
+ }
+
+ Collections.sort(apps, new ApplicationInfo.DisplayNameComparator(packageManager));
+ return apps;
+ }
+
+ public CharSequence loadLabel(ApplicationInfo appInfo) {
+ return appInfo.loadLabel(packageManager);
+ }
+
+ public Drawable loadDrawable(ApplicationInfo appInfo) {
+ return appInfo.loadIcon(packageManager);
+ }
+
+ public void onApplicationRemoved(String appPackage) {
+ Set<String> excludedApps = PreferenceHelper.getExcludedApps();
+ excludedApps.remove(appPackage);
+ PreferenceHelper.setExcludedApps(excludedApps);
+ }
+
+ @WorkerThread
+ public void updateExcludedApps() {
+ Set<String> excludedApps = PreferenceHelper.getExcludedApps();
+ List<ApplicationInfo> appInfos = getApplicationInfos();
+ excludedApps.removeIf(s ->
+ appInfos.stream().noneMatch(
+ applicationInfo -> s.equals(applicationInfo.packageName)
+ )
+ );
+ PreferenceHelper.setExcludedApps(excludedApps);
+ }
+}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/ClientTransportPluginProvider.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/ClientTransportPluginProvider.java
new file mode 100644
index 00000000..8e6387d4
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/ClientTransportPluginProvider.java
@@ -0,0 +1,39 @@
+package se.leap.bitmaskclient.base.utils;
+
+import android.content.Context;
+
+import org.torproject.jni.ClientTransportPluginInterface;
+
+import se.leap.bitmaskclient.tor.SnowflakePlugin;
+
+/**
+ * ClientTransportPluginProvider keeps a global reference of an implementation of ClientTransportPluginInterface.
+ * Currently the underlying plugin is utilizing IPtPtroxy and that library cannot be instantiated twice.
+ * Therefore we need keep a global reference to it and pass that around.
+ */
+public class ClientTransportPluginProvider {
+ private final SnowflakePlugin plugin;
+ private static ClientTransportPluginProvider instance = null;
+
+ private ClientTransportPluginProvider(Context context) throws IllegalStateException {
+ plugin = new SnowflakePlugin(context);
+ }
+
+ public static void init(Context context) {
+ if (instance == null) {
+ try {
+ instance = new ClientTransportPluginProvider(context);
+ } catch (IllegalStateException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+ public static ClientTransportPluginInterface get() {
+ if (instance != null) {
+ return instance.plugin;
+ }
+ return null;
+ }
+}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java
index 74328f45..2960c443 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java
@@ -253,7 +253,7 @@ public class ConfigHelper {
}
public static int getPendingIntentFlags() {
- int flags = PendingIntent.FLAG_CANCEL_CURRENT;
+ int flags = PendingIntent.FLAG_UPDATE_CURRENT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
flags |= PendingIntent.FLAG_IMMUTABLE;
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/MapCompat.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/MapCompat.java
new file mode 100644
index 00000000..c7be03e3
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/MapCompat.java
@@ -0,0 +1,13 @@
+package se.leap.bitmaskclient.base.utils;
+
+import androidx.annotation.NonNull;
+import java.util.Map;
+
+public class MapCompat {
+ public static <K, V> V getOrDefault(@NonNull Map<K, V> map, K key, V defaultValue) {
+ V value;
+ return (((value = map.get(key)) != null) || map.containsKey(key))
+ ? value
+ : defaultValue;
+ }
+}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java
index ba644b91..38e32861 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java
@@ -20,6 +20,7 @@ import static se.leap.bitmaskclient.base.models.Constants.EIP_RESTART_ON_BOOT;
import static se.leap.bitmaskclient.base.models.Constants.EXCLUDED_APPS;
import static se.leap.bitmaskclient.base.models.Constants.FIRST_TIME_USER_DATE;
import static se.leap.bitmaskclient.base.models.Constants.GATEWAY_PINNING;
+import static se.leap.bitmaskclient.base.models.Constants.GEOIP_LOOKUP_URL;
import static se.leap.bitmaskclient.base.models.Constants.LAST_DONATION_REMINDER_DATE;
import static se.leap.bitmaskclient.base.models.Constants.LAST_UPDATE_CHECK;
import static se.leap.bitmaskclient.base.models.Constants.LAST_USED_PROFILE;
@@ -54,6 +55,10 @@ import static se.leap.bitmaskclient.base.models.Constants.USE_PORT_HOPPING;
import static se.leap.bitmaskclient.base.models.Constants.USE_SNOWFLAKE;
import static se.leap.bitmaskclient.base.models.Constants.USE_SYSTEM_PROXY;
import static se.leap.bitmaskclient.base.models.Constants.USE_TUNNEL;
+import static se.leap.bitmaskclient.base.models.Provider.CA_CERT;
+import static se.leap.bitmaskclient.base.models.Provider.GEOIP_URL;
+import static se.leap.bitmaskclient.base.models.Provider.PROVIDER_API_IP;
+import static se.leap.bitmaskclient.base.models.Provider.PROVIDER_IP;
import static se.leap.bitmaskclient.base.utils.BitmaskCoreProvider.getBitmaskMobile;
import android.content.Context;
@@ -196,16 +201,8 @@ public class PreferenceHelper {
}
}
- public static void persistProviderAsync(Provider provider) {
- synchronized (LOCK) {
- storeProviderInPreferences(provider, true);
- }
- }
-
public static void storeProviderInPreferences(Provider provider) {
- synchronized (LOCK) {
- storeProviderInPreferences(provider, false);
- }
+ storeProviderInPreferences(provider, false);
}
/**
@@ -216,15 +213,20 @@ public class PreferenceHelper {
Set<String> providerDomains = getCustomProviderDomains();
HashMap<String, Provider> customProviders = new HashMap<>();
for (String domain : providerDomains) {
- String mainURL = preferences.getString(Provider.MAIN_URL + "." + domain, null);
- if (mainURL != null) {
+ String mainURL = getFromPersistedProvider(Provider.MAIN_URL, domain);
+ if (!mainURL.isEmpty()) {
Introducer introducer = null;
try {
introducer = Introducer.fromUrl(BitmaskCoreProvider.getBitmaskMobile().getIntroducerURLByDomain(domain));
} catch (Exception e) {
- e.printStackTrace();
+ Log.w(TAG, "introducer lookup: " + e.getMessage());
+ }
+ Provider customProvider = new Provider(mainURL);
+ customProvider.setIntroducer(introducer);
+ if (hasUpdatedProviderDetails(domain)) {
+ getPersistedProviderUpdates(customProvider);
}
- customProviders.put(mainURL, Provider.createCustomProvider(mainURL, domain, introducer));
+ customProviders.put(mainURL, customProvider);
}
}
@@ -300,6 +302,10 @@ public class PreferenceHelper {
putStringSet(PROVIDER_MOTD_HASHES + "." + providerDomain, provider.getMotdLastSeenHashes()).
putLong(PROVIDER_MOTD_LAST_SEEN + "." + providerDomain, provider.getLastMotdSeen()).
putLong(PROVIDER_MOTD_LAST_UPDATED + "." + providerDomain, provider.getLastMotdUpdate()).
+ putString(PROVIDER_MODELS_GATEWAYS + "." + providerDomain, provider.getGatewaysJson()).
+ putString(PROVIDER_MODELS_BRIDGES + "." + providerDomain, provider.getBridgesJson()).
+ putString(PROVIDER_MODELS_EIPSERVICE + "." + providerDomain, provider.getServiceJson()).
+ putString(PROVIDER_MODELS_PROVIDER + "." + providerDomain, provider.getModelsProviderJson()).
apply();
}
}
@@ -347,6 +353,10 @@ public class PreferenceHelper {
remove(PROVIDER_MOTD_HASHES + "." + providerDomain).
remove(PROVIDER_MOTD_LAST_SEEN + "." + providerDomain).
remove(PROVIDER_MOTD_LAST_UPDATED + "." + providerDomain).
+ remove(PROVIDER_MODELS_PROVIDER + "." + providerDomain).
+ remove(PROVIDER_MODELS_EIPSERVICE + "." + providerDomain).
+ remove(PROVIDER_MODELS_GATEWAYS + "." + providerDomain).
+ remove(PROVIDER_MODELS_BRIDGES + "." + providerDomain).
apply();
}
}
@@ -368,6 +378,10 @@ public class PreferenceHelper {
remove(PROVIDER_MOTD_HASHES).
remove(PROVIDER_MOTD_LAST_SEEN).
remove(PROVIDER_MOTD_LAST_UPDATED).
+ remove(PROVIDER_MODELS_PROVIDER).
+ remove(PROVIDER_MODELS_EIPSERVICE).
+ remove(PROVIDER_MODELS_GATEWAYS).
+ remove(PROVIDER_MODELS_BRIDGES).
apply();
}
}
@@ -657,6 +671,13 @@ public class PreferenceHelper {
putString(COUNTRYCODE, countryCode);
}
+ public static void setGeoIPLookupURL(String url) {
+ putString(GEOIP_LOOKUP_URL, url);
+ }
+ public static String getGeoIPLookupURL() {
+ return getString(GEOIP_LOOKUP_URL, null);
+ }
+
public static String getPreferredCity() {
return useObfuscationPinning() ? null : getString(PREFERRED_CITY, null);
}
@@ -701,6 +722,84 @@ public class PreferenceHelper {
return result;
}
+ public static void getPersistedProviderUpdates(Provider provider) {
+ String providerDomain = provider.getDomain();
+ if (hasUpdatedProviderDetails(providerDomain)) {
+ provider.setCaCert(getPersistedProviderCA(providerDomain));
+ provider.define(getPersistedProviderDefinition(providerDomain));
+ provider.setPrivateKeyString(getPersistedPrivateKey(providerDomain));
+ provider.setVpnCertificate(getPersistedVPNCertificate(providerDomain));
+ provider.setProviderApiIp(getPersistedProviderApiIp(providerDomain));
+ provider.setProviderIp(getPersistedProviderIp(providerDomain));
+ provider.setGeoipUrl(getPersistedGeoIp(providerDomain)); // TODO: do we really need to persist the Geoip URL??
+ provider.setLastMotdSeen(getPersistedMotdLastSeen(providerDomain));
+ provider.setMotdLastSeenHashes(getPersistedMotdHashes(providerDomain));
+ provider.setLastMotdUpdate(getPersistedMotdLastUpdate(providerDomain));
+ provider.setMotdJson(getPersistedMotd(providerDomain));
+ provider.setModelsProvider(getFromPersistedProvider(PROVIDER_MODELS_PROVIDER, providerDomain));
+ provider.setService(getFromPersistedProvider(PROVIDER_MODELS_EIPSERVICE, providerDomain));
+ provider.setGateways(getFromPersistedProvider(PROVIDER_MODELS_GATEWAYS, providerDomain));
+ provider.setBridges(getFromPersistedProvider(PROVIDER_MODELS_BRIDGES, providerDomain));
+ }
+ }
+
+ public static String getPersistedPrivateKey(String providerDomain) {
+ return getFromPersistedProvider(PROVIDER_PRIVATE_KEY, providerDomain);
+ }
+
+ public static String getPersistedVPNCertificate(String providerDomain) {
+ return getFromPersistedProvider(PROVIDER_VPN_CERTIFICATE, providerDomain);
+ }
+
+ public static JSONObject getPersistedProviderDefinition(String providerDomain) {
+ try {
+ return new JSONObject(getFromPersistedProvider(Provider.KEY, providerDomain));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ return new JSONObject();
+ }
+ }
+
+ public static String getPersistedProviderCA(String providerDomain) {
+ return getFromPersistedProvider(CA_CERT, providerDomain);
+ }
+
+ public static String getPersistedProviderApiIp(String providerDomain) {
+ return getFromPersistedProvider(PROVIDER_API_IP, providerDomain);
+ }
+
+ public static String getPersistedProviderIp(String providerDomain) {
+ return getFromPersistedProvider(PROVIDER_IP, providerDomain);
+ }
+
+ public static String getPersistedGeoIp(String providerDomain) {
+ return getFromPersistedProvider(GEOIP_URL, providerDomain);
+ }
+
+ public static JSONObject getPersistedMotd(String providerDomain) {
+ try {
+ return new JSONObject(getFromPersistedProvider(PROVIDER_MOTD, providerDomain));
+ } catch (JSONException e) {
+ return new JSONObject();
+ }
+ }
+
+ public static long getPersistedMotdLastSeen(String providerDomain) {
+ return getLongFromPersistedProvider(PROVIDER_MOTD_LAST_SEEN, providerDomain);
+ }
+
+ public static long getPersistedMotdLastUpdate(String providerDomain) {
+ return getLongFromPersistedProvider(PROVIDER_MOTD_LAST_UPDATED, providerDomain);
+ }
+
+ public static Set<String> getPersistedMotdHashes(String providerDomain) {
+ return getStringSetFromPersistedProvider(PROVIDER_MOTD_HASHES, providerDomain);
+ }
+
+ public static boolean hasUpdatedProviderDetails(String domain) {
+ return PreferenceHelper.hasKey(Provider.KEY + "." + domain) && PreferenceHelper.hasKey(CA_CERT + "." + domain);
+ }
+
public static void setExcludedApps(Set<String> apps) {
putStringSet(EXCLUDED_APPS, apps);
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/StringUtils.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/StringUtils.java
new file mode 100644
index 00000000..a5edde41
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/StringUtils.java
@@ -0,0 +1,27 @@
+package se.leap.bitmaskclient.base.utils;
+
+import androidx.annotation.Nullable;
+
+import java.util.Locale;
+
+public class StringUtils {
+
+ /**
+ * Capitalizes the first character of the given string using the specified locale.
+ *
+ * <p>This method handles null and empty strings by returning them unchanged.
+ * If the locale is null, the string is also returned unchanged.</p>
+ *
+ * @param string the string to be capitalized, may be null or empty
+ * @param locale the locale to be used for capitalization, may be null
+ * @return the capitalized string, or the original string
+ * @see String#toUpperCase(Locale)
+ */
+ public static @Nullable String capitalize(@Nullable String string, @Nullable Locale locale) {
+ if (string == null || string.isEmpty() || locale == null) {
+ return string;
+ }
+
+ return string.substring(0, 1).toUpperCase(locale) + string.substring(1);
+ }
+}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java
index e04ba70d..5e2f7680 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java
@@ -2,6 +2,7 @@ package se.leap.bitmaskclient.base.utils;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
+import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS;
import android.animation.Animator;
import android.animation.ValueAnimator;
@@ -10,6 +11,7 @@ import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
+import android.os.Build;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
@@ -17,7 +19,9 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.view.Window;
+import android.view.WindowInsetsController;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
@@ -29,7 +33,10 @@ import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
+import androidx.core.graphics.Insets;
import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import se.leap.bitmaskclient.R;
@@ -50,6 +57,20 @@ public class ViewHelper {
/**
* Sets the subtitle of an activities action bar. The activity needs to be an AppCompatActivity.
* @param fragment
+ */
+ public static void showCustomActionBar(Fragment fragment, Boolean isVisible) {
+ AppCompatActivity appCompatActivity = (AppCompatActivity) fragment.getActivity();
+ if (appCompatActivity != null) {
+ ActionBar actionBar = appCompatActivity.getSupportActionBar();
+ if (actionBar != null) {
+ actionBar.getCustomView().setVisibility(isVisible ? VISIBLE : GONE);
+ }
+ }
+ }
+
+ /**
+ * Sets the subtitle of an activities action bar. The activity needs to be an AppCompatActivity.
+ * @param fragment
* @param stringId
*/
public static void setActionBarSubtitle(Fragment fragment, @StringRes int stringId) {
@@ -94,7 +115,7 @@ public class ViewHelper {
setActivityBarColor(activity, R.color.colorPrimary, R.color.colorPrimaryDark, R.color.colorActionBarTitleFont);
}
- public static void setActivityBarColor(Activity activity, @ColorRes int primaryColor, @ColorRes int secondaryColor, @ColorRes int textColor) {
+ public static void setActivityBarColor(Activity activity, @ColorRes int primaryColorRes, @ColorRes int secondaryColorRes, @ColorRes int textColor) {
if (!(activity instanceof AppCompatActivity)) {
return;
}
@@ -103,16 +124,12 @@ public class ViewHelper {
if (bar == null) {
return;
}
- int color = ContextCompat.getColor(activity, secondaryColor);
- bar.setBackgroundDrawable(new ColorDrawable(color));
- Window window = activity.getWindow();
- window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
- window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
- window.setStatusBarColor(ContextCompat.getColor(activity, primaryColor));
-
+ int secondaryColor = ContextCompat.getColor(activity, secondaryColorRes);
+ bar.setBackgroundDrawable(new ColorDrawable(secondaryColor));
+ setStatusBarColor(activity, primaryColorRes);
int actionBarTextColor;
if (textColor == 0) {
- actionBarTextColor = isBrightColor(color) ? R.color.actionbar_connectivity_state_text_color_dark : R.color.actionbar_connectivity_state_text_color_light;
+ actionBarTextColor = isBrightColor(secondaryColor) ? R.color.actionbar_connectivity_state_text_color_dark : R.color.actionbar_connectivity_state_text_color_light;
} else {
actionBarTextColor = textColor;
}
@@ -130,6 +147,72 @@ public class ViewHelper {
}
}
+ public static void applyInsetsToViewPadding(View view, boolean left, boolean top, boolean right, boolean bottom) {
+ ViewCompat.setOnApplyWindowInsetsListener(view, (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
+ if (left) {
+ view.setPadding(insets.left, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
+ }
+ if (right) {
+ view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), insets.right, view.getPaddingBottom());
+ }
+ if (bottom) {
+ view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), insets.bottom);
+ }
+ if (top) {
+ view.setPadding(view.getPaddingLeft(), insets.top, view.getPaddingRight(), view.getPaddingBottom());
+ }
+
+ // Return CONSUMED if you don't want the window insets to keep passing
+ // down to descendant views.
+ return WindowInsetsCompat.CONSUMED;
+ });
+ }
+
+ public static void applyInsetsToViewMargin(View view, boolean left, boolean top, boolean right, boolean bottom) {
+ ViewCompat.setOnApplyWindowInsetsListener(view, (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
+ ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
+ if (left) {
+ mlp.leftMargin = insets.left;
+ }
+ if (right) {
+ mlp.rightMargin = insets.right;
+ }
+ if (bottom) {
+ mlp.bottomMargin = insets.bottom;
+ }
+ if (top) {
+ mlp.topMargin = insets.top;
+ }
+ v.setLayoutParams(mlp);
+
+ // Return CONSUMED if you don't want the window insets to keep passing
+ // down to descendant views.
+ return WindowInsetsCompat.CONSUMED;
+ });
+ }
+
+ private static void setStatusBarColor(Activity activity, int colorRes) {
+ Window window = activity.getWindow();
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.VANILLA_ICE_CREAM) {
+ window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+ window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ window.setStatusBarColor(ContextCompat.getColor(activity, colorRes));
+ } else {
+ // in Androiid 15+, the status bar is transparent. Hence we need to make sure that the status bar icons
+ // have enough contrast to be visible above the the underlying UI
+ WindowInsetsController controller = window.getInsetsController();
+ if (controller != null) {
+ int color = ContextCompat.getColor(activity, colorRes);
+ if (isBrightColor(color)) {
+ controller.setSystemBarsAppearance(APPEARANCE_LIGHT_STATUS_BARS, APPEARANCE_LIGHT_STATUS_BARS);
+ } else {
+ controller.setSystemBarsAppearance(0, APPEARANCE_LIGHT_STATUS_BARS);
+ }
+ }
+ }
+ }
public static boolean isBrightColor(int color) {
if (android.R.color.transparent == color)
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/Gateway.java b/app/src/main/java/se/leap/bitmaskclient/eip/Gateway.java
index 783f9124..5672ca38 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/Gateway.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/Gateway.java
@@ -30,6 +30,8 @@ import static se.leap.bitmaskclient.base.models.Constants.TIMEZONE;
import static se.leap.bitmaskclient.base.models.Constants.VERSION;
import static se.leap.bitmaskclient.base.models.Transport.createTransportsFrom;
+import android.util.Log;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -90,12 +92,12 @@ public class Gateway {
* and create a VpnProfile belonging to it.
*/
public Gateway(JSONObject eipDefinition, JSONObject secrets, JSONObject gateway)
- throws ConfigParser.ConfigParseError, JSONException, IOException {
+ throws ConfigParser.ConfigParseError, JSONException, IOException, NumberFormatException {
this(eipDefinition, secrets, gateway, null);
}
public Gateway(JSONObject eipDefinition, JSONObject secrets, JSONObject gateway, JSONObject load)
- throws ConfigParser.ConfigParseError, JSONException, IOException {
+ throws ConfigParser.ConfigParseError, JSONException, IOException, NumberFormatException {
this.gateway = gateway;
this.secrets = secrets;
@@ -106,7 +108,7 @@ public class Gateway {
this.host = gateway.optString(HOST);
JSONObject location = getLocationInfo(gateway, eipDefinition);
this.locationName = location.optString(NAME);
- this.timezone = location.optInt(TIMEZONE);
+ this.timezone = Integer.parseInt(location.optString(TIMEZONE));
VpnConfigGenerator.Configuration configuration = getProfileConfig(Transport.createTransportsFrom(gateway, apiVersion));
this.generalConfiguration = getGeneralConfiguration(eipDefinition);
this.name = configuration.profileName;
@@ -125,7 +127,12 @@ public class Gateway {
this.remoteIpAddress = modelsGateway.getIpAddr();
this.remoteIpAddressV6 = modelsGateway.getIp6Addr();
this.host = modelsGateway.getHost();
- ModelsLocation modelsLocation = eipService.getLocations().get(modelsGateway.getLocation());
+ ModelsLocation modelsLocation = null;
+ try {
+ modelsLocation = eipService.getLocations().get(modelsGateway.getLocation());
+ } catch (NullPointerException npe) {
+ Log.e(TAG, "No locations configured in service endpoint. This smells like a provider misconfiguration.");
+ }
if (modelsLocation != null) {
this.locationName = modelsLocation.getDisplayName();
this.timezone = Integer.parseInt(modelsLocation.getTimezone());
@@ -147,7 +154,12 @@ public class Gateway {
this.modelsBridges.add(modelsBridge);
remoteIpAddress = modelsBridge.getIpAddr();
host = modelsBridge.getHost();
- ModelsLocation modelsLocation = eipService.getLocations().get(modelsBridge.getLocation());
+ ModelsLocation modelsLocation = null;
+ try {
+ modelsLocation = eipService.getLocations().get(modelsBridge.getLocation());
+ } catch (NullPointerException npe) {
+ Log.e(TAG, "No locations configured in service endpoint. This smells like a provider misconfiguration.");
+ }
if (modelsLocation != null) {
this.locationName = modelsLocation.getDisplayName();
this.timezone = Integer.parseInt(modelsLocation.getTimezone());
@@ -179,19 +191,24 @@ public class Gateway {
private JSONObject getGeneralConfiguration(ModelsEIPService eipService) {
JSONObject config = new JSONObject();
- Map<String, Object> openvpnOptions = eipService.getOpenvpnConfiguration();
- Set<String> keys = openvpnOptions.keySet();
- Iterator<String> i = keys.iterator();
- while (i.hasNext()) {
- try {
- String key = i.next();
- Object o = openvpnOptions.get(key);
- config.put(key, o);
- } catch (JSONException e) {
- e.printStackTrace();
+ try {
+ Map<String, Object> openvpnOptions = eipService.getOpenvpnConfiguration();
+ Set<String> keys = openvpnOptions.keySet();
+ Iterator<String> i = keys.iterator();
+ while (i.hasNext()) {
+ try {
+ String key = i.next();
+ Object o = openvpnOptions.get(key);
+ config.put(key, o);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
}
+ } catch (NullPointerException npe) {
+ Log.e(TAG, "Failed to get openvpn configuration. This smells like a provider misconfiguration");
}
+
return config;
}
@@ -269,7 +286,7 @@ public class Gateway {
}
}
}
- if (results.size() == 0) {
+ if (results.isEmpty()) {
return null;
}
int randomIndex = (int) (Math.random() * (results.size()));
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java
index b207fb14..ba9dc769 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java
@@ -454,7 +454,7 @@ public class GatewaysManager {
), null, PINNED_OBFUSCATION_PROXY, capabilities);
Gateway gateway = new Gateway(eipDefinition, secrets, new JSONObject(gatewayJson.toString()));
addGateway(gateway);
- } catch (JSONException | ConfigParser.ConfigParseError | IOException e) {
+ } catch (JSONException | ConfigParser.ConfigParseError | IOException | NumberFormatException e) {
e.printStackTrace();
}
} else {
@@ -465,7 +465,7 @@ public class GatewaysManager {
if (gateways.get(aux.getHost()) == null) {
addGateway(aux);
}
- } catch (JSONException | IOException e) {
+ } catch (JSONException | IOException | NumberFormatException e) {
e.printStackTrace();
VpnStatus.logError("Unable to parse gateway config!");
} catch (ConfigParser.ConfigParseError e) {
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java b/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java
index 8e15ca3e..c43740eb 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java
@@ -211,7 +211,13 @@ public class VoidVpnService extends VpnService implements PropertyChangeListener
@Override
public void onNotificationBuild(int notificationId, Notification notification) {
- ServiceCompat.startForeground(this, notificationId, notification, FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED);
+ try {
+ ServiceCompat.startForeground(this, notificationId, notification, FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED);
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ VpnStatus.logError(e.getLocalizedMessage());
+ stopForeground(true);
+ }
}
public void startWithForegroundNotification() {
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java b/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java
index f32dc240..95ca27c6 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java
@@ -43,6 +43,7 @@ import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.StyleSpan;
+import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
@@ -280,8 +281,11 @@ public class VpnNotificationManager {
if (vpnServiceCallback != null) {
vpnServiceCallback.onNotificationBuild(notificationId, notification);
} else {
- compatNotificationManager.notify(notificationId, notification);
-
+ try {
+ compatNotificationManager.notify(notificationId, notification);
+ } catch (SecurityException e) {
+ Log.e(TAG, "Failed to send notification", e);
+ }
}
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
index 63ae3731..46b4f10b 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
@@ -30,6 +30,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import java.util.concurrent.TimeoutException;
import se.leap.bitmaskclient.base.models.Provider;
+import se.leap.bitmaskclient.base.utils.PreferenceHelper;
import se.leap.bitmaskclient.tor.TorServiceCommand;
/**
@@ -75,6 +76,7 @@ public class ProviderAPI extends JobIntentService implements ProviderApiManagerB
ERRORS = "errors",
ERRORID = "errorId",
INITIAL_ACTION = "initalAction",
+ ERROR_EXTRA = "errorExtra",
BACKEND_ERROR_KEY = "error",
BACKEND_ERROR_MESSAGE = "message",
USER_MESSAGE = "userMessage",
@@ -172,6 +174,7 @@ public class ProviderAPI extends JobIntentService implements ProviderApiManagerB
ProviderManager pm = ProviderManager.getInstance(this.getAssets());
pm.add(p);
pm.saveCustomProviders();
+ PreferenceHelper.storeProviderInPreferences(p);
}
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java
index 79c6f5c4..d27253c6 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java
@@ -2,6 +2,7 @@ package se.leap.bitmaskclient.providersetup;
import static se.leap.bitmaskclient.R.string.malformed_url;
import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_KEY;
+import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getPersistedProviderUpdates;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.DELAY;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.MISSING_NETWORK_CONNECTION;
@@ -10,9 +11,7 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.PROVIDER_NOK;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.RECEIVER_KEY;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.TOR_EXCEPTION;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.TOR_TIMEOUT;
-import static se.leap.bitmaskclient.providersetup.ProviderApiManagerV5.PROXY_HOST;
-import static se.leap.bitmaskclient.providersetup.ProviderApiManagerV5.SOCKS_PROXY_SCHEME;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_TOR_TIMEOUT;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.ERROR_TOR_TIMEOUT;
import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_PROVIDER_JSON;
import static se.leap.bitmaskclient.tor.TorStatusObservable.TorStatus.OFF;
@@ -25,7 +24,6 @@ import android.util.Log;
import androidx.core.content.IntentCompat;
import org.jetbrains.annotations.Blocking;
-import org.json.JSONException;
import org.json.JSONObject;
import java.util.concurrent.TimeoutException;
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
index 25a9fcce..09273983 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
@@ -17,25 +17,7 @@
package se.leap.bitmaskclient.providersetup;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MODELS_BRIDGES;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MODELS_EIPSERVICE;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MODELS_GATEWAYS;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MODELS_PROVIDER;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MOTD;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MOTD_HASHES;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MOTD_LAST_SEEN;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_MOTD_LAST_UPDATED;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_PRIVATE_KEY;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_VPN_CERTIFICATE;
-import static se.leap.bitmaskclient.base.models.Provider.CA_CERT;
-import static se.leap.bitmaskclient.base.models.Provider.GEOIP_URL;
-import static se.leap.bitmaskclient.base.models.Provider.PROVIDER_API_IP;
-import static se.leap.bitmaskclient.base.models.Provider.PROVIDER_IP;
import static se.leap.bitmaskclient.base.utils.CertificateHelper.getFingerprintFromCertificate;
-import static se.leap.bitmaskclient.base.utils.ConfigHelper.getDomainFromMainURL;
-import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getFromPersistedProvider;
-import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getLongFromPersistedProvider;
-import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getStringSetFromPersistedProvider;
import android.content.Intent;
import android.content.res.Resources;
@@ -47,12 +29,10 @@ import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
-import java.util.Set;
import java.util.concurrent.TimeoutException;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.utils.ConfigHelper;
-import se.leap.bitmaskclient.base.utils.PreferenceHelper;
/**
* Implements the logic of the http api calls. The methods of this class needs to be called from
@@ -134,86 +114,4 @@ public abstract class ProviderApiManagerBase {
return result;
}
- protected void getPersistedProviderUpdates(Provider provider) {
- String providerDomain = getDomainFromMainURL(provider.getMainUrl());
- if (providerDomain == null) {
- return;
- }
- if (hasUpdatedProviderDetails(providerDomain)) {
- provider.setCaCert(getPersistedProviderCA(providerDomain));
- provider.define(getPersistedProviderDefinition(providerDomain));
- provider.setPrivateKeyString(getPersistedPrivateKey(providerDomain));
- provider.setVpnCertificate(getPersistedVPNCertificate(providerDomain));
- provider.setProviderApiIp(getPersistedProviderApiIp(providerDomain));
- provider.setProviderIp(getPersistedProviderIp(providerDomain));
- provider.setGeoipUrl(getPersistedGeoIp(providerDomain)); // TODO: do we really need to persist the Geoip URL??
- provider.setLastMotdSeen(getPersistedMotdLastSeen(providerDomain));
- provider.setMotdLastSeenHashes(getPersistedMotdHashes(providerDomain));
- provider.setLastMotdUpdate(getPersistedMotdLastUpdate(providerDomain));
- provider.setMotdJson(getPersistedMotd(providerDomain));
- provider.setModelsProvider(getFromPersistedProvider(PROVIDER_MODELS_PROVIDER, providerDomain));
- provider.setService(getFromPersistedProvider(PROVIDER_MODELS_EIPSERVICE, providerDomain));
- provider.setGateways(getFromPersistedProvider(PROVIDER_MODELS_GATEWAYS, providerDomain));
- provider.setBridges(getFromPersistedProvider(PROVIDER_MODELS_BRIDGES, providerDomain));
- }
- }
-
- protected String getPersistedPrivateKey(String providerDomain) {
- return getFromPersistedProvider(PROVIDER_PRIVATE_KEY, providerDomain);
- }
-
- protected String getPersistedVPNCertificate(String providerDomain) {
- return getFromPersistedProvider(PROVIDER_VPN_CERTIFICATE, providerDomain);
- }
-
- protected JSONObject getPersistedProviderDefinition(String providerDomain) {
- try {
- return new JSONObject(getFromPersistedProvider(Provider.KEY, providerDomain));
- } catch (JSONException e) {
- e.printStackTrace();
- return new JSONObject();
- }
- }
-
- protected String getPersistedProviderCA(String providerDomain) {
- return getFromPersistedProvider(CA_CERT, providerDomain);
- }
-
- protected String getPersistedProviderApiIp(String providerDomain) {
- return getFromPersistedProvider(PROVIDER_API_IP, providerDomain);
- }
-
- protected String getPersistedProviderIp(String providerDomain) {
- return getFromPersistedProvider(PROVIDER_IP, providerDomain);
- }
-
- protected String getPersistedGeoIp(String providerDomain) {
- return getFromPersistedProvider(GEOIP_URL, providerDomain);
- }
-
- protected JSONObject getPersistedMotd(String providerDomain) {
- try {
- return new JSONObject(getFromPersistedProvider(PROVIDER_MOTD, providerDomain));
- } catch (JSONException e) {
- return new JSONObject();
- }
- }
-
- protected long getPersistedMotdLastSeen(String providerDomain) {
- return getLongFromPersistedProvider(PROVIDER_MOTD_LAST_SEEN, providerDomain);
- }
-
- protected long getPersistedMotdLastUpdate(String providerDomain) {
- return getLongFromPersistedProvider(PROVIDER_MOTD_LAST_UPDATED, providerDomain);
- }
-
- protected Set<String> getPersistedMotdHashes(String providerDomain) {
- return getStringSetFromPersistedProvider(PROVIDER_MOTD_HASHES, providerDomain);
- }
-
-
- protected boolean hasUpdatedProviderDetails(String domain) {
- return PreferenceHelper.hasKey(Provider.KEY + "." + domain) && PreferenceHelper.hasKey(CA_CERT + "." + domain);
- }
-
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV3.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV3.java
index 965741f0..5a922419 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV3.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV3.java
@@ -59,9 +59,9 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.PROVIDER_OK;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.QUIETLY_UPDATE_VPN_CERTIFICATE;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.SET_UP_PROVIDER;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_CERTIFICATE_PINNING;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_CORRUPTED_PROVIDER_JSON;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_INVALID_CERTIFICATE;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.ERROR_CERTIFICATE_PINNING;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.ERROR_CORRUPTED_PROVIDER_JSON;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.ERROR_INVALID_CERTIFICATE;
import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_CA_CERT;
import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_EIP_SERVICE_JSON;
import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_GEOIP_JSON;
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java
index 2680f612..34203c15 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java
@@ -19,7 +19,7 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.PROVIDER_OK;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.QUIETLY_UPDATE_VPN_CERTIFICATE;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.SET_UP_PROVIDER;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_INVALID_CERTIFICATE;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.ERROR_INVALID_CERTIFICATE;
import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_V5_BRIDGES;
import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_V5_GATEWAYS;
import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_V5_SERVICE_JSON;
@@ -171,12 +171,6 @@ public class ProviderApiManagerV5 extends ProviderApiManagerBase implements IPro
return currentDownload;
}
- //provider certificate invalid
- if (currentDownload.containsKey(ERRORS)) {
- currentDownload.putParcelable(PROVIDER_KEY, provider);
- return currentDownload;
- }
-
BitmaskMobile bm;
try {
bm = new BitmaskMobile(provider.getMainUrl(), new PreferenceHelper.SharedPreferenceStore());
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiSetupBroadcastReceiver.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiSetupBroadcastReceiver.java
deleted file mode 100644
index 4b8e8e18..00000000
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiSetupBroadcastReceiver.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Copyright (c) 2018 LEAP Encryption Access Project and contributers
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package se.leap.bitmaskclient.providersetup;
-
-import static android.app.Activity.RESULT_CANCELED;
-
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_KEY;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-
-import androidx.core.os.BundleCompat;
-
-import java.lang.ref.WeakReference;
-
-import se.leap.bitmaskclient.base.models.Constants;
-import se.leap.bitmaskclient.base.models.Provider;
-import se.leap.bitmaskclient.providersetup.ProviderSetupInterface.ProviderConfigState;
-
-/**
- * Broadcast receiver that handles callback intents of ProviderApi during provider setup.
- * It is used by CustomProviderSetupActivity for custom branded apps and ProviderListActivity
- * for 'normal' Bitmask.
- *
- * Created by cyberta on 17.08.18.
- */
-
-public class ProviderApiSetupBroadcastReceiver extends BroadcastReceiver {
- private static final String TAG = ProviderApiSetupBroadcastReceiver.class.getSimpleName();
- private final WeakReference<ProviderSetupInterface> setupInterfaceRef;
-
- public ProviderApiSetupBroadcastReceiver(ProviderSetupInterface setupInterface) {
- this.setupInterfaceRef = new WeakReference<>(setupInterface);
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- Log.d(TAG, "received Broadcast");
- ProviderSetupInterface setupInterface = setupInterfaceRef.get();
- String action = intent.getAction();
- if (action == null || !action.equalsIgnoreCase(Constants.BROADCAST_PROVIDER_API_EVENT) || setupInterface == null) {
- return;
- }
-
- if (setupInterface.getConfigState() != null &&
- setupInterface.getConfigState() == ProviderConfigState.SETTING_UP_PROVIDER) {
- int resultCode = intent.getIntExtra(Constants.BROADCAST_RESULT_CODE, RESULT_CANCELED);
- Log.d(TAG, "Broadcast resultCode: " + resultCode);
-
- Bundle resultData = intent.getParcelableExtra(Constants.BROADCAST_RESULT_KEY);
- Provider handledProvider = resultData == null ? null : BundleCompat.getParcelable(resultData, PROVIDER_KEY, Provider.class);
-
- if (handledProvider != null && setupInterface.getProvider() != null &&
- handledProvider.getMainUrl().equalsIgnoreCase(setupInterface.getProvider().getMainUrl())) {
- switch (resultCode) {
- case ProviderAPI.PROVIDER_OK:
- setupInterface.handleProviderSetUp(handledProvider);
- break;
- case ProviderAPI.MISSING_NETWORK_CONNECTION:
- case ProviderAPI.TOR_TIMEOUT:
- case ProviderAPI.PROVIDER_NOK:
- setupInterface.handleError(resultData);
- break;
- case ProviderAPI.CORRECTLY_DOWNLOADED_VPN_CERTIFICATE:
- setupInterface.handleCorrectlyDownloadedCertificate(handledProvider);
- break;
- case ProviderAPI.INCORRECTLY_DOWNLOADED_VPN_CERTIFICATE:
- setupInterface.handleIncorrectlyDownloadedCertificate();
- break;
- }
- }
- }
- }
-
-} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java
index bcb177e2..72341033 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java
@@ -140,6 +140,12 @@ public class ProviderManager {
return allProviders;
}
+ public List<Provider> getDefaultProviders() {
+ List<Provider> providers = new ArrayList<>();
+ providers.addAll(defaultProviders);
+ return providers;
+ }
+
public int size() {
return providers().size();
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupFailedDialog.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupFailedDialog.java
index 172d2636..ab4a64d4 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupFailedDialog.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupFailedDialog.java
@@ -16,8 +16,20 @@
*/
package se.leap.bitmaskclient.providersetup;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORID;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERROR_EXTRA;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.INITIAL_ACTION;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.SET_UP_PROVIDER;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_PROVIDER_DETAILS;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.DEFAULT;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.valueOf;
+
import android.app.AlertDialog;
import android.app.Dialog;
+import android.content.ClipData;
+import android.content.ClipboardManager;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
@@ -33,16 +45,6 @@ import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_KEY;
-import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORID;
-import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
-import static se.leap.bitmaskclient.providersetup.ProviderAPI.INITIAL_ACTION;
-import static se.leap.bitmaskclient.providersetup.ProviderAPI.SET_UP_PROVIDER;
-import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE;
-import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_PROVIDER_DETAILS;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.DEFAULT;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.valueOf;
-
/**
* Implements a dialog to show why a download failed.
*
@@ -56,21 +58,24 @@ public class ProviderSetupFailedDialog extends DialogFragment {
private final static String KEY_DOWNLOAD_ERROR = "key_download_error";
private final static String KEY_INITAL_ACTION = "key_inital_action";
private String reasonToFail;
- private DOWNLOAD_ERRORS downloadError = DEFAULT;
+ private SETUP_ERRORS setupError = DEFAULT;
private String initialAction;
+ private String errorExtra;
+
private Provider provider;
/**
* Represent error types that need different error handling actions
*/
- public enum DOWNLOAD_ERRORS {
+ public enum SETUP_ERRORS {
DEFAULT,
ERROR_CORRUPTED_PROVIDER_JSON,
ERROR_INVALID_CERTIFICATE,
ERROR_CERTIFICATE_PINNING,
ERROR_NEW_URL_NO_VPN_PROVIDER,
- ERROR_TOR_TIMEOUT
+ ERROR_TOR_TIMEOUT,
+ ERROR_QR_CODE_SCANNING
}
/**
@@ -98,9 +103,13 @@ public class ProviderSetupFailedDialog extends DialogFragment {
}
if (errorJson.has(ERRORID)) {
- dialogFragment.downloadError = valueOf(errorJson.getString(ERRORID));
+ dialogFragment.setupError = valueOf(errorJson.getString(ERRORID));
} else if (testNewURL) {
- dialogFragment.downloadError = DOWNLOAD_ERRORS.ERROR_NEW_URL_NO_VPN_PROVIDER;
+ dialogFragment.setupError = SETUP_ERRORS.ERROR_NEW_URL_NO_VPN_PROVIDER;
+ }
+
+ if (errorJson.has(ERROR_EXTRA)) {
+ dialogFragment.errorExtra = errorJson.getString(ERROR_EXTRA);
}
if (errorJson.has(INITIAL_ACTION)) {
@@ -126,7 +135,7 @@ public class ProviderSetupFailedDialog extends DialogFragment {
builder.setMessage(reasonToFail)
.setNegativeButton(R.string.cancel, (dialog, id)
-> interfaceWithConfigurationWizard.cancelSettingUpProvider());
- switch (downloadError) {
+ switch (setupError) {
case ERROR_CORRUPTED_PROVIDER_JSON:
builder.setPositiveButton(R.string.update_provider_details, (dialog, which)
-> interfaceWithConfigurationWizard.updateProviderDetails());
@@ -140,6 +149,15 @@ public class ProviderSetupFailedDialog extends DialogFragment {
builder.setPositiveButton(R.string.retry, (dialog, id)
-> interfaceWithConfigurationWizard.addAndSelectNewProvider(provider.getMainUrl()));
break;
+ case ERROR_QR_CODE_SCANNING:
+ builder.setNegativeButton(android.R.string.cancel, null);
+ builder.setPositiveButton(R.string.error_invite_copy, ((dialog, id) -> {
+ ClipboardManager clipboard = (ClipboardManager)
+ getContext().getSystemService(Context.CLIPBOARD_SERVICE);
+ ClipData clip = ClipData.newPlainText(getContext().getString(R.string.error), errorExtra);
+ clipboard.setPrimaryClip(clip);
+ }));
+ break;
case ERROR_TOR_TIMEOUT:
builder.setPositiveButton(R.string.retry, (dialog, id) -> {
handleTorTimeoutError();
@@ -148,6 +166,7 @@ public class ProviderSetupFailedDialog extends DialogFragment {
PreferenceHelper.useSnowflake(false);
handleTorTimeoutError();
}));
+ break;
default:
builder.setPositiveButton(R.string.retry, (dialog, id)
-> interfaceWithConfigurationWizard.retrySetUpProvider(provider));
@@ -212,7 +231,7 @@ public class ProviderSetupFailedDialog extends DialogFragment {
super.onSaveInstanceState(outState);
outState.putParcelable(KEY_PROVIDER, provider);
outState.putString(KEY_REASON_TO_FAIL, reasonToFail);
- outState.putString(KEY_DOWNLOAD_ERROR, downloadError.toString());
+ outState.putString(KEY_DOWNLOAD_ERROR, setupError.toString());
outState.putString(KEY_INITAL_ACTION, initialAction);
}
@@ -227,7 +246,7 @@ public class ProviderSetupFailedDialog extends DialogFragment {
this.reasonToFail = savedInstanceState.getString(KEY_REASON_TO_FAIL);
}
if (savedInstanceState.containsKey(KEY_DOWNLOAD_ERROR)) {
- this.downloadError = valueOf(savedInstanceState.getString(KEY_DOWNLOAD_ERROR));
+ this.setupError = valueOf(savedInstanceState.getString(KEY_DOWNLOAD_ERROR));
}
if (savedInstanceState.containsKey(KEY_INITAL_ACTION)) {
this.initialAction = savedInstanceState.getString(KEY_INITAL_ACTION);
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupInterface.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupInterface.java
deleted file mode 100644
index 0c60a3ce..00000000
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupInterface.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * Copyright (c) 2018 LEAP Encryption Access Project and contributers
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package se.leap.bitmaskclient.providersetup;
-
-import android.os.Bundle;
-
-import se.leap.bitmaskclient.base.models.Provider;
-
-/**
- * Created by cyberta on 17.08.18.
- */
-
-public interface ProviderSetupInterface {
- enum ProviderConfigState {
- PROVIDER_NOT_SET,
- SETTING_UP_PROVIDER,
- SHOWING_PROVIDER_DETAILS,
- PENDING_SHOW_PROVIDER_DETAILS,
- PENDING_SHOW_FAILED_DIALOG,
- SHOW_FAILED_DIALOG,
- }
-
- void handleProviderSetUp(Provider provider);
- void handleError(Bundle resultData);
- void handleCorrectlyDownloadedCertificate(Provider provider);
- void handleIncorrectlyDownloadedCertificate();
- Provider getProvider();
- ProviderConfigState getConfigState();
-}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java
index 191db42b..0f84b3f3 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java
@@ -28,6 +28,7 @@ import android.view.ViewGroup;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
@@ -69,6 +70,7 @@ public class SetupActivity extends AppCompatActivity implements SetupActivityCal
public static final String EXTRA_SWITCH_PROVIDER = "EXTRA_SWITCH_PROVIDER";
private static final String TAG = SetupActivity.class.getSimpleName();
ActivitySetupBinding binding;
+ @Nullable
Provider provider;
private int currentPosition = 0;
private boolean switchProvider = false;
@@ -155,12 +157,12 @@ public class SetupActivity extends AppCompatActivity implements SetupActivityCal
});
binding.viewPager.setAdapter(adapter);
binding.viewPager.setUserInputEnabled(false);
-
+ ViewHelper.applyInsetsToViewMargin(binding.bottomNavigation, true, false, true, true);
binding.setupNextButton.setOnClickListener(v -> {
int currentPos = binding.viewPager.getCurrentItem();
int newPos = currentPos + 1;
- if (newPos == CIRCUMVENTION_SETUP_FRAGMENT && provider.hasIntroducer()) {
+ if (newPos == CIRCUMVENTION_SETUP_FRAGMENT && provider != null && provider.hasIntroducer()) {
newPos = newPos + 1; // skip configuration of `CIRCUMVENTION_SETUP_FRAGMENT` when invite code provider is selected
}
if (newPos >= binding.viewPager.getAdapter().getItemCount()) {
@@ -265,6 +267,7 @@ public class SetupActivity extends AppCompatActivity implements SetupActivityCal
private void setupActionBar() {
setSupportActionBar(binding.toolbar);
+ ViewHelper.applyInsetsToViewPadding(binding.toolbar, false, true, false, false);
final ActionBar actionBar = getSupportActionBar();
Context context = actionBar.getThemedContext();
actionBar.setDisplayOptions(DISPLAY_SHOW_CUSTOM);
@@ -408,9 +411,13 @@ public class SetupActivity extends AppCompatActivity implements SetupActivityCal
@Override
public void updateProviderDetails() {
- provider.reset();
- deleteProviderDetailsFromPreferences(provider.getDomain());
- binding.viewPager.setCurrentItem(adapter.getFragmentPostion(CONFIGURE_PROVIDER_FRAGMENT));
+ if (provider != null) {
+ provider.reset();
+ deleteProviderDetailsFromPreferences(provider.getDomain());
+ binding.viewPager.setCurrentItem(adapter.getFragmentPostion(CONFIGURE_PROVIDER_FRAGMENT));
+ } else {
+ cancel();
+ }
}
@Override
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java
index b9051b1e..a8a90b1e 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java
@@ -76,7 +76,7 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
private boolean ignoreProviderAPIUpdates = false;
private TorLogAdapter torLogAdapter;
- private Handler handler = new Handler(Looper.getMainLooper());
+ private final Handler handler = new Handler(Looper.getMainLooper());
public static ConfigureProviderFragment newInstance(int position) {
@@ -95,8 +95,8 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
binding = FConfigureProviderBinding.inflate(inflater, container, false);
- binding.detailContainer.setVisibility(getUseSnowflake() ? VISIBLE : GONE);
- binding.tvCircumventionDescription.setText(getUseSnowflake() ? getString(description_configure_provider_circumvention, getString(app_name)) : getString(description_configure_provider, getString(app_name)));
+ binding.detailContainer.setVisibility(!VpnStatus.isVPNActive() && hasSnowflakePrefs() && getUseSnowflake() ? VISIBLE : GONE);
+ binding.tvCircumventionDescription.setText(hasSnowflakePrefs() && getUseSnowflake() ? getString(description_configure_provider_circumvention, getString(app_name)) : getString(description_configure_provider, getString(app_name)));
binding.detailHeaderContainer.setOnClickListener(v -> {
binding.ivExpand.animate().setDuration(250).rotation(isExpanded ? -90 : 0);
showConnectionDetails();
@@ -133,7 +133,7 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
super.onFragmentSelected();
ignoreProviderAPIUpdates = false;
binding.detailContainer.setVisibility(!VpnStatus.isVPNActive() && hasSnowflakePrefs() && getUseSnowflake() ? VISIBLE : GONE);
- binding.tvCircumventionDescription.setText(getUseSnowflake() ? getString(description_configure_provider_circumvention, getString(app_name)) : getString(description_configure_provider, getString(app_name)));
+ binding.tvCircumventionDescription.setText(hasSnowflakePrefs() && getUseSnowflake() ? getString(description_configure_provider_circumvention, getString(app_name)) : getString(description_configure_provider, getString(app_name)));
if (!isDefaultBitmask()) {
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.setup_progress_spinner, null);
binding.progressSpinner.setAnimatedSpinnerDrawable(drawable);
@@ -167,7 +167,7 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
super.onScrollStateChanged(recyclerView, newState);
if (newState != SCROLL_STATE_IDLE) {
torLogAdapter.postponeUpdate = true;
- } else if (newState == SCROLL_STATE_IDLE && getFirstVisibleItemPosion() == 0) {
+ } else if (newState == SCROLL_STATE_IDLE && getFirstVisibleItemPosition() == 0) {
torLogAdapter.postponeUpdate = false;
}
}
@@ -177,8 +177,12 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
binding.torState.setText(getLastTorLog());
}
- private int getFirstVisibleItemPosion() {
- return ((LinearLayoutManager) binding.connectionDetailLogs.getLayoutManager()).findFirstVisibleItemPosition();
+ private int getFirstVisibleItemPosition() {
+ try {
+ return ((LinearLayoutManager) binding.connectionDetailLogs.getLayoutManager()).findFirstVisibleItemPosition();
+ } catch (NullPointerException npe) {
+ return 0;
+ }
}
@Override
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
index f3da117b..8bfda801 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
@@ -14,8 +14,12 @@ import android.widget.RadioButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
import androidx.lifecycle.ViewModelProvider;
+import org.json.JSONObject;
+
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
@@ -26,9 +30,9 @@ import se.leap.bitmaskclient.base.utils.ViewHelper;
import se.leap.bitmaskclient.databinding.FProviderSelectionBinding;
import se.leap.bitmaskclient.providersetup.activities.CancelCallback;
import se.leap.bitmaskclient.providersetup.fragments.helpers.AbstractQrScannerHelper;
-import se.leap.bitmaskclient.providersetup.helpers.QrScannerHelper;
import se.leap.bitmaskclient.providersetup.fragments.viewmodel.ProviderSelectionViewModel;
import se.leap.bitmaskclient.providersetup.fragments.viewmodel.ProviderSelectionViewModelFactory;
+import se.leap.bitmaskclient.providersetup.helpers.QrScannerHelper;
public class ProviderSelectionFragment extends BaseSetupFragment implements CancelCallback, AbstractQrScannerHelper.ScanResultCallback {
@@ -61,6 +65,8 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc
@Nullable Bundle savedInstanceState) {
binding = FProviderSelectionBinding.inflate(inflater, container, false);
+ binding.tvProviderDescription.setText(viewModel.getGeneralDescription(binding.getRoot().getContext()));
+
radioButtons = new ArrayList<>();
// add configured providers
for (int i = 0; i < viewModel.size(); i++) {
@@ -88,6 +94,14 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc
binding.editCustomProvider.setVisibility(viewModel.getEditProviderVisibility());
binding.syntaxCheck.setVisibility(viewModel.getEditProviderVisibility());
binding.qrScanner.setVisibility(viewModel.getQrScannerVisibility());
+
+ ViewCompat.setOnApplyWindowInsetsListener(binding.scrollView, (v, insets) -> {
+ int imeHeight = insets.getInsets(WindowInsetsCompat.Type.ime()).bottom;
+ int systemBarsHeight = insets.getInsets(WindowInsetsCompat.Type.systemBars()).bottom;
+ binding.scrollView.setPadding(binding.scrollView.getPaddingLeft(), binding.scrollView.getPaddingTop(), binding.scrollView.getPaddingRight(), Math.max(imeHeight - (int) v.getContext().getResources().getDimension(R.dimen.setup_bottom_bar), systemBarsHeight));
+ return insets;
+ });
+
return binding.getRoot();
}
@@ -231,4 +245,11 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc
e.printStackTrace();
}
}
+
+ @Override
+ public void onScanError(JSONObject error) {
+ if (setupActivityCallback != null) {
+ setupActivityCallback.onError(error.toString());
+ }
+ }
} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupSuccessFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupSuccessFragment.java
index daf4ed6c..bcdad153 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupSuccessFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupSuccessFragment.java
@@ -10,6 +10,8 @@ import androidx.annotation.Nullable;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.databinding.FSetupSuccessBinding;
+import se.leap.bitmaskclient.tor.TorServiceCommand;
+import se.leap.bitmaskclient.tor.TorStatusObservable;
public class SetupSuccessFragment extends BaseSetupFragment {
@@ -39,6 +41,9 @@ public class SetupSuccessFragment extends BaseSetupFragment {
super.onFragmentSelected();
setupActivityCallback.setNavigationButtonHidden(true);
setupActivityCallback.setCancelButtonHidden(true);
+ if (TorStatusObservable.isRunning()) {
+ TorServiceCommand.stopTorServiceAsync(this.requireContext());
+ }
}
} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/helpers/AbstractQrScannerHelper.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/helpers/AbstractQrScannerHelper.java
index 132d8cc9..08cb6c82 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/helpers/AbstractQrScannerHelper.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/helpers/AbstractQrScannerHelper.java
@@ -2,11 +2,14 @@ package se.leap.bitmaskclient.providersetup.fragments.helpers;
import androidx.fragment.app.Fragment;
+import org.json.JSONObject;
+
import se.leap.bitmaskclient.base.models.Introducer;
public abstract class AbstractQrScannerHelper {
public interface ScanResultCallback {
void onScanResult(Introducer introducer);
+ void onScanError(JSONObject error);
}
public AbstractQrScannerHelper(Fragment fragment, ScanResultCallback callback) {
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java
index 954c9301..c68e3404 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java
@@ -70,6 +70,31 @@ public class ProviderSelectionViewModel extends ViewModel {
return selected == ADD_PROVIDER || selected == INVITE_CODE_PROVIDER;
}
+ public CharSequence getGeneralDescription(Context context) {
+ List<Provider> providerList = providerManager.getDefaultProviders();
+ StringBuilder builder = new StringBuilder();
+ if (providerList.size() < 2) {
+ // Our string sources expect at least 2 pre-shipped providers
+ return "";
+ }
+ if (providerList.size() > 2) {
+ // enumerate all but last provider, comma separated
+ int penultimateIndex = providerList.size() - 1;
+ for (int i = 0; i < penultimateIndex; i++) {
+ builder.append(getProviderNameForGeneralDescription(providerList.get(i)));
+ if (i + 1 < penultimateIndex) {
+ builder.append(", ");
+ }
+ }
+ } else {
+ // exactly 2 providers
+ builder.append(getProviderNameForGeneralDescription(providerList.get(0)));
+ }
+ String arg1 = builder.toString();
+ String arg2 = getProviderNameForGeneralDescription(providerList.get(providerList.size() - 1));
+ return context.getString(R.string.select_provider_description, arg1, arg2);
+ }
+
public CharSequence getProviderDescription(Context context) {
if (selected == ADD_PROVIDER) {
return context.getText(R.string.add_provider_description);
@@ -137,7 +162,21 @@ public class ProviderSelectionViewModel extends ViewModel {
if ("calyx.net".equals(domain)) {
return "The Calyx Institute";
}
- return domain;
+ return getProvider(pos).getName();
+ }
+
+ private String getProviderNameForGeneralDescription(Provider p) {
+ if (p == null) {
+ return "";
+ }
+ String domain = p.getDomain();
+ if ("riseup.net".equals(domain) || "black.riseup.net".equals(domain)) {
+ return "Riseup";
+ }
+ if ("calyx.net".equals(domain)) {
+ return "Calyx";
+ }
+ return p.getName();
}
public CharSequence getHint(Context context) {
diff --git a/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java b/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java
deleted file mode 100644
index b7909865..00000000
--- a/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java
+++ /dev/null
@@ -1,260 +0,0 @@
-package se.leap.bitmaskclient.tor;
-/**
- * Copyright (c) 2024 LEAP Encryption Access Project and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.RETRY_AMP_CACHE_RENDEZVOUS;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.RETRY_HTTP_RENDEZVOUS;
-
-import android.content.Context;
-import android.os.FileObserver;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import org.torproject.jni.ClientTransportPluginInterface;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.lang.ref.WeakReference;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Random;
-import java.util.Scanner;
-import java.util.Vector;
-import java.util.concurrent.TimeoutException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import IPtProxy.IPtProxy;
-
-public class ClientTransportPlugin implements ClientTransportPluginInterface, PropertyChangeListener {
- public static String TAG = ClientTransportPlugin.class.getSimpleName();
-
- private HashMap<String, String> mFronts;
- private final WeakReference<Context> contextRef;
- private long snowflakePort = -1;
- private FileObserver logFileObserver;
- private static final Pattern SNOWFLAKE_LOG_TIMESTAMP_PATTERN = Pattern.compile("((19|2[0-9])[0-9]{2}\\/\\d{1,2}\\/\\d{1,2} \\d{1,2}:\\d{1,2}:\\d{1,2}) ([\\S|\\s]+)");
- private TorStatusObservable.SnowflakeStatus snowflakeStatus;
- private String logfilePath;
- Handler handler;
- HandlerThread handlerThread;
-
- public ClientTransportPlugin(Context context) {
- this.contextRef = new WeakReference<>(context);
- handlerThread = new HandlerThread("clientTransportPlugin", Thread.MIN_PRIORITY);
- loadCdnFronts(context);
- IPtProxy.setStateLocation(context.getApplicationContext().getCacheDir() + "/pt_state");
- }
-
- @Override
- public void start() {
- Context context = contextRef.get();
- if (context == null) {
- return;
- }
- handlerThread.start();
- handler = new Handler(handlerThread.getLooper());
- TorStatusObservable.getInstance().addObserver(this);
- File logfile = new File(context.getApplicationContext().getCacheDir(), "snowflake.log");
- try {
- if (logfile.exists()) {
- logfile.delete();
- }
- logfile.createNewFile();
- } catch (IOException e) {
- e.printStackTrace();
- }
- this.logfilePath = logfile.getAbsolutePath();
- Random random = new Random();
- boolean useAmpCache = random.nextInt(2) == 0;
- startConnectionAttempt(useAmpCache, logfilePath);
- watchLogFile(logfile);
- }
-
- private void startConnectionAttempt(boolean useAmpCache, @NonNull String logfilePath) {
- //this is using the current, default Tor snowflake infrastructure
- String target = getCdnFront("snowflake-target");
- String fronts = getCdnFront("snowflake-fronts");
- String stunServer = getCdnFront("snowflake-stun");
- String ampCache = null;
- if (useAmpCache) {
- target = "https://snowflake-broker.torproject.net/";
- ampCache = "https://cdn.ampproject.org/";
- fronts = "www.google.com";
- }
-
- snowflakePort = startSnowflake(stunServer, target, fronts, ampCache, null, null, logfilePath, false, false, false, 5);
- Log.d(TAG, "startSnowflake running on port: " + snowflakePort);
- }
-
-/**
- StartSnowflake - Start IPtProxy's Snowflake client.
- @param ice Comma-separated list of ICE servers.
- @param url URL of signaling broker.
- @param fronts Comma-separated list of front domains.
- @param ampCache OPTIONAL. URL of AMP cache to use as a proxy for signaling.
- Only needed when you want to do the rendezvous over AMP instead of a domain fronted server.
- @param sqsQueueURL OPTIONAL. URL of SQS Queue to use as a proxy for signaling.
- @param sqsCredsStr OPTIONAL. Credentials to access SQS Queue
- @param logFile Name of log file. OPTIONAL. Defaults to no log.
- @param logToStateDir Resolve the log file relative to Tor's PT state dir.
- @param keepLocalAddresses Keep local LAN address ICE candidates.
- @param unsafeLogging Prevent logs from being scrubbed.
- @param maxPeers Capacity for number of multiplexed WebRTC peers. DEFAULTs to 1 if less than that.
- @return Port number where Snowflake will listen on, if no error happens during start up.
- */
- private long startSnowflake(String ice, String url, String fronts, String ampCache, String sqsQueueURL, String sqsCredsStr, String logFile, boolean logToStateDir, boolean keepLocalAddresses, boolean unsafeLogging, long maxPeers) {
- return IPtProxy.startSnowflake(ice, url, fronts, ampCache, sqsQueueURL, sqsCredsStr, logFile, logToStateDir, keepLocalAddresses, unsafeLogging, maxPeers);
- }
-
- private void retryConnectionAttempt(boolean useAmpCache) {
- Log.d(TAG, ">> retryConnectionAttempt - " + (useAmpCache ? "amp cache" : "http domain fronting"));
- stopConnectionAttempt();
- startConnectionAttempt(useAmpCache, logfilePath);
- }
-
- private void watchLogFile(File logfile) {
- final Vector<String> lastBuffer = new Vector<>();
- logFileObserver = new FileObserver(logfile.getAbsolutePath()) {
- @Override
- public void onEvent(int event, @Nullable String name) {
- if (FileObserver.MODIFY == event) {
- try (Scanner scanner = new Scanner(logfile)) {
- Vector<String> currentBuffer = new Vector<>();
- while (scanner.hasNextLine()) {
- currentBuffer.add(scanner.nextLine());
- }
- if (lastBuffer.size() < currentBuffer.size()) {
- int startIndex = lastBuffer.size() > 0 ? lastBuffer.size() - 1 : 0;
- int endIndex = currentBuffer.size() - 1;
- Collection<String> newMessages = currentBuffer.subList(startIndex, endIndex);
- for (String message : newMessages) {
- logSnowflakeMessage(message);
- }
- lastBuffer.addAll(newMessages);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- }
- }
- };
- logFileObserver.startWatching();
- }
-
- @Override
- public void stop() {
- stopConnectionAttempt();
- if (logFileObserver != null) {
- logFileObserver.stopWatching();
- logFileObserver = null;
- }
- TorStatusObservable.getInstance().deleteObserver(this);
- handlerThread.quit();
- handler = null;
- handlerThread = null;
- }
-
- private void stopConnectionAttempt() {
- IPtProxy.stopSnowflake();
- try {
- TorStatusObservable.waitUntil(this::isSnowflakeOff, 10);
- } catch (InterruptedException | TimeoutException e) {
- e.printStackTrace();
- }
- snowflakePort = -1;
- }
-
- private boolean isSnowflakeOff() {
- return TorStatusObservable.getSnowflakeStatus() == TorStatusObservable.SnowflakeStatus.STOPPED;
- }
-
- @Override
- public String getTorrc() {
- return "UseBridges 1\n" +
- "ClientTransportPlugin snowflake socks5 127.0.0.1:" + snowflakePort + "\n" +
- "Bridge snowflake 192.0.2.3:1";
- }
-
- private void loadCdnFronts(Context context) {
- if (mFronts == null) {
- mFronts = new HashMap<>();
- }
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(context.getAssets().open("fronts")));
- String line;
- while (true) {
- line = reader.readLine();
- if (line == null) break;
- String[] front = line.split(" ");
- mFronts.put(front[0], front[1]);
- Log.d(TAG, "front: " + front[0] + ", " + front[1]);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Nullable
- private String getCdnFront(String service) {
- if (mFronts != null) {
- return mFronts.get(service);
- }
- return null;
- }
-
- private void logSnowflakeMessage(String message) {
- Matcher matcher = SNOWFLAKE_LOG_TIMESTAMP_PATTERN.matcher(message);
- if (matcher.matches()) {
- try {
- String strippedString = matcher.group(3).trim();
- if (strippedString.length() > 0) {
- TorStatusObservable.logSnowflakeMessage(contextRef.get(), strippedString);
- }
- } catch (IndexOutOfBoundsException | IllegalStateException | NullPointerException e) {
- e.printStackTrace();
- }
- } else {
- TorStatusObservable.logSnowflakeMessage(contextRef.get(), message);
- }
- }
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if(TorStatusObservable.PROPERTY_CHANGE.equals(evt.getPropertyName())) {
- TorStatusObservable.SnowflakeStatus snowflakeStatus = TorStatusObservable.getSnowflakeStatus();
- if (snowflakeStatus == this.snowflakeStatus) {
- return;
- }
- if (snowflakeStatus == RETRY_HTTP_RENDEZVOUS) {
- handler.post(() -> retryConnectionAttempt(false));
- } else if (snowflakeStatus == RETRY_AMP_CACHE_RENDEZVOUS) {
- handler.post(() -> retryConnectionAttempt(true));
- }
- this.snowflakeStatus = snowflakeStatus;
- }
- }
-}
diff --git a/app/src/main/java/se/leap/bitmaskclient/tor/SnowflakePlugin.java b/app/src/main/java/se/leap/bitmaskclient/tor/SnowflakePlugin.java
new file mode 100644
index 00000000..04f43932
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/tor/SnowflakePlugin.java
@@ -0,0 +1,328 @@
+package se.leap.bitmaskclient.tor;
+/**
+ * Copyright (c) 2026 LEAP Encryption Access Project and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import static se.leap.bitmaskclient.tor.SnowflakePlugin.RendezvousStrategy.HTTP;
+import static se.leap.bitmaskclient.tor.SnowflakePlugin.RendezvousStrategy.SQS;
+import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.RECONNECTING;
+import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.STOPPED;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.util.Log;
+
+import org.jetbrains.annotations.Blocking;
+import org.torproject.jni.ClientTransportPluginInterface;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Random;
+import java.util.concurrent.TimeoutException;
+
+import IPtProxy.Controller;
+import IPtProxy.IPtProxy;
+import IPtProxy.OnTransportEvents;
+import mobilemodels.BitmaskMobileCore;
+import se.leap.bitmaskclient.R;
+import se.leap.bitmaskclient.base.utils.BitmaskCoreProvider;
+import se.leap.bitmaskclient.base.utils.PreferenceHelper;
+
+public class SnowflakePlugin implements ClientTransportPluginInterface {
+ public static String TAG = SnowflakePlugin.class.getSimpleName();
+
+ enum RendezvousStrategy {
+ HTTP,
+ // sqs queue
+ SQS,
+ //amp cache
+ AMP
+ }
+
+ private HashMap<String, String> mFronts;
+ private final WeakReference<Context> contextRef;
+ Handler handler;
+ HandlerThread handlerThread;
+ Controller controller;
+
+ /**
+ * Constructs a SnowflakePlugin instance.
+ *
+ * @param context an arbitrary context
+ * @throws IllegalStateException if initialization of the IPtProxy controller fails
+ */
+ public SnowflakePlugin(Context context) throws IllegalStateException {
+ Log.d(TAG, "initialize ClientTransport Plugin");
+ controller = initializeController(context.getApplicationContext());
+ this.contextRef = new WeakReference<>(context.getApplicationContext());
+ handlerThread = new HandlerThread("clientTransportPlugin", Thread.MIN_PRIORITY);
+ handlerThread.start();
+ handler = new Handler(handlerThread.getLooper());
+ loadFronts(context.getApplicationContext());
+ }
+
+ private Controller initializeController(Context context) throws IllegalStateException {
+ File ptDir = new File(context.getCacheDir(), "/pt_state/");
+ Controller controller = IPtProxy.newController(ptDir.getAbsolutePath(), true, false, "DEBUG", new OnTransportEvents() {
+ @Override
+ public void connected(String s) {
+ Log.d(TAG, "snowflake status callback: connected");
+ TorStatusObservable.logSnowflakeMessage(context, context.getString(R.string.log_done));
+ TorStatusObservable.setSnowflakeStatus(TorStatusObservable.SnowflakeStatus.CONNECTED);
+ }
+
+ @Override
+ public void error(String s, Exception e) {
+ Log.d(TAG, "snowflake status callback: error - " + e.getMessage());
+ TorStatusObservable.logSnowflakeMessage(context, e.getMessage());
+ TorStatusObservable.logSnowflakeMessage(context, context.getString(R.string.state_reconnecting));
+ TorStatusObservable.setSnowflakeStatus(RECONNECTING, e.getMessage());
+ }
+
+ @Override
+ public void stopped(String s, Exception e) {
+ Log.d(TAG, "snowflake status callback: stopped");
+ if (e != null && e.getMessage() != null) {
+ Log.e(TAG, e.getMessage());
+ }
+ TorStatusObservable.logSnowflakeMessage(context, context.getString(R.string.state_noprocess));
+ TorStatusObservable.setSnowflakeStatus(STOPPED);
+ }
+ });
+
+ if (controller == null) {
+ throw new IllegalStateException("Failed to initialize IPtProxy controller");
+ }
+ return controller;
+ }
+
+ /**
+ * Starts Snowflake.
+ *
+ * This method selects the best rendezvous strategy based on the user's
+ * estimated broad geographical location and initiates the connection attempt.
+ */
+ @Override
+ public void start() {
+ Context context = contextRef.get();
+ if (context == null) {
+ return;
+ }
+
+ shortenLogs(context);
+ RendezvousStrategy strategy = selectRendezvousStrategy();
+ startConnectionAttempt(strategy);
+ }
+
+ private void shortenLogs(Context context) {
+ // ensure we keep the persisted logfile short
+ File logfile = new File(context.getApplicationContext().getCacheDir(), "/pt_state/" + IPtProxy.LogFileName);
+ try {
+ if (logfile.exists()) {
+ logfile.delete();
+ }
+ logfile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Attempt to select best rendezvous strategy depending on users broad location.
+ * @return a snowflake RendezvousStrategy
+ */
+ private RendezvousStrategy selectRendezvousStrategy() {
+ Random random = new Random();
+ ArrayList<RendezvousStrategy> strategies = new ArrayList<>(Arrays.asList(RendezvousStrategy.values()));
+ String countryCode = getCountryCode();
+ if ("RU".equals(countryCode) || "CN".equals(countryCode)) {
+ strategies.remove(RendezvousStrategy.HTTP);
+ } else {
+ strategies.remove(SQS);
+ }
+ int randomIndex = random.nextInt(strategies.size());
+ return strategies.get(randomIndex);
+ }
+
+ /**
+ * Attempt to determine the country code from the users IP address
+ * @return country code or null if geoip lookup failed
+ */
+ private String getCountryCode() {
+ try {
+ String geoIPLookupURL = PreferenceHelper.getGeoIPLookupURL();
+ if (geoIPLookupURL != null) {
+ BitmaskMobileCore bm = BitmaskCoreProvider.getBitmaskMobile();
+ String stunServers = getFront(HTTP, "ice").replaceAll("stun:", "");
+ List<String> serverList = Arrays.asList(stunServers.split(","));
+ Collections.shuffle(serverList);
+ stunServers = String.join(",", serverList);
+ bm.setStunServers(stunServers);
+ bm.setCountryCodeLookupURL(geoIPLookupURL);
+ return bm.getGeolocation();
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+ return PreferenceHelper.getBaseCountry();
+ }
+
+ private void startConnectionAttempt(RendezvousStrategy strategy) {
+ try {
+ String target = null;
+ String fronts = null;
+ String ampCache = null;
+ String sqsQueue = null;
+ String sqsCreds = null;
+ String stunServer = getFront(strategy, "ice");
+ switch (strategy) {
+ case HTTP -> {
+ target = getFront(strategy, "url");
+ fronts = getFront(strategy, "fronts");
+ }
+ case AMP -> {
+ target = getFront(strategy, "url");
+ fronts = getFront(strategy, "fronts");
+ ampCache = getFront(strategy, "ampcache");
+ }
+ case SQS -> {
+ sqsCreds = getFront(strategy, "sqscreds");
+ sqsQueue = getFront(strategy, "sqsqueue");
+ }
+ }
+
+
+ startSnowflake(stunServer, target, fronts, ampCache, sqsQueue, sqsCreds, 5);
+ } catch (NullPointerException npe) {
+ Log.e(TAG, "failed to start Snowflake: " + npe.getMessage());
+ Context c = contextRef.get();
+ if (c != null) {
+ TorStatusObservable.logSnowflakeMessage(c, npe.getMessage());
+ }
+ TorStatusObservable.setSnowflakeStatus(STOPPED);
+ }
+ }
+
+/**
+ StartSnowflake - Start IPtProxy's Snowflake client.
+ @param ice Comma-separated list of ICE servers.
+ @param url URL of signaling broker.
+ @param fronts Comma-separated list of front domains.
+ @param ampCache OPTIONAL. URL of AMP cache to use as a proxy for signaling.
+ Only needed when you want to do the rendezvous over AMP instead of a domain fronted server.
+ @param sqsQueueURL OPTIONAL. URL of SQS Queue to use as a proxy for signaling.
+ @param sqsCredsStr OPTIONAL. Credentials to access SQS Queue
+ @param maxPeers Capacity for number of multiplexed WebRTC peers. DEFAULTs to 1 if less than that.
+ */
+ private void startSnowflake(String ice, String url, String fronts, String ampCache, String sqsQueueURL, String sqsCredsStr, long maxPeers) {
+ Context c = contextRef.get();
+ try {
+ Log.d(TAG, "start snowflake with ice " + ice + "\nurl: " + url + "\nfronts: " + fronts + "\nampCache: " + ampCache + "\nsqsQueue: " + sqsQueueURL);
+ if (ice != null) controller.setSnowflakeIceServers(ice);
+ if (url != null) controller.setSnowflakeBrokerUrl(url);
+ if (fronts != null) controller.setSnowflakeFrontDomains(fronts);
+ if (ampCache != null) controller.setSnowflakeAmpCacheUrl(ampCache);
+ if (sqsQueueURL != null) controller.setSnowflakeSqsUrl(sqsQueueURL);
+ if (sqsCredsStr != null) controller.setSnowflakeSqsCreds(sqsCredsStr);
+ controller.setSnowflakeMaxPeers(maxPeers);
+ controller.start(IPtProxy.Snowflake, "");
+ if (c != null) {
+ TorStatusObservable.logSnowflakeMessage(c, c.getString(R.string.snowflake_started));
+ }
+ TorStatusObservable.setSnowflakeStatus(TorStatusObservable.SnowflakeStatus.STARTED);
+ } catch (Exception e) {
+ Log.e(TAG, this.toString() + "failed to start Snowflake: " + e.getMessage());
+ if (c != null) {
+ TorStatusObservable.logSnowflakeMessage(c, e.getMessage());
+ }
+ TorStatusObservable.setSnowflakeStatus(STOPPED);
+ }
+ }
+
+ /**
+ * Stops Snowflake connection.
+ * This method is blocking the current thread until snowflake was stopped or the timeout reached.
+ */
+ @Blocking
+ @Override
+ public void stop() {
+ controller.stop(IPtProxy.Snowflake);
+ try {
+ TorStatusObservable.waitUntil(this::isSnowflakeOff, 10);
+ } catch (InterruptedException | TimeoutException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private boolean isSnowflakeOff() {
+ return TorStatusObservable.getSnowflakeStatus() == TorStatusObservable.SnowflakeStatus.STOPPED;
+ }
+
+ /**
+ * Retrieves the Tor configuration string for the Snowflake pluggable transport.
+ *
+ * @return a Tor configuration string if the controller is running, otherwise an empty string
+ */
+ @Override
+ public String getTorrc() {
+ if (controller.port(IPtProxy.Snowflake) <= 0) {
+ return "";
+ }
+ return "UseBridges 1\n" +
+ "ClientTransportPlugin snowflake socks5 127.0.0.1:" + controller.port(IPtProxy.Snowflake) + "\n" +
+ "Bridge snowflake 192.0.2.3:1";
+ }
+
+ private void loadFronts(Context context) {
+ if (mFronts == null) {
+ mFronts = new HashMap<>();
+ }
+ for (RendezvousStrategy strategy : RendezvousStrategy.values()) {
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(context.getAssets().open("fronts-"+strategy.toString().toLowerCase())));
+ String line;
+ while (true) {
+ line = reader.readLine();
+ if (line == null) break;
+ String[] front = line.split(" ");
+ mFronts.put(strategy+front[0], front[1]);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ private String getFront(RendezvousStrategy strategy, String arg) throws NullPointerException {
+ if (mFronts != null) {
+ String front = mFronts.get(strategy+arg);
+ if (front != null) {
+ return front;
+ }
+ }
+ throw new NullPointerException("expected value "+ arg + " for rendezvous strategy " + strategy + " not found.");
+ }
+}
diff --git a/app/src/main/java/se/leap/bitmaskclient/tor/TorServiceCommand.java b/app/src/main/java/se/leap/bitmaskclient/tor/TorServiceCommand.java
index 4c6ddaba..4acf512a 100644
--- a/app/src/main/java/se/leap/bitmaskclient/tor/TorServiceCommand.java
+++ b/app/src/main/java/se/leap/bitmaskclient/tor/TorServiceCommand.java
@@ -33,6 +33,7 @@ import org.torproject.jni.TorService;
import java.util.concurrent.TimeoutException;
+import se.leap.bitmaskclient.base.utils.ClientTransportPluginProvider;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
public class TorServiceCommand {
@@ -77,7 +78,7 @@ public class TorServiceCommand {
context.getApplicationContext().startService(torServiceIntent);
}
startedForeground = true;
- } catch (IllegalStateException e) {
+ } catch (Exception e) {
e.printStackTrace();
}
@@ -159,7 +160,7 @@ public class TorServiceCommand {
if (PreferenceHelper.getUseSnowflake()) {
Log.d(TAG, "serviceConnection is still null");
if (!TorService.hasClientTransportPlugin()) {
- TorService.setClientTransportPlugin(new ClientTransportPlugin(context.getApplicationContext()));
+ TorService.setClientTransportPlugin(ClientTransportPluginProvider.get());
}
return new TorServiceConnection(context);
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java b/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java
index 5a49fda2..92e74a9e 100644
--- a/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java
+++ b/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java
@@ -15,13 +15,7 @@ package se.leap.bitmaskclient.tor;
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.BROKER_REPLIED_SUCCESS;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.NEGOTIATING_RENDEZVOUS_VIA_AMP_CACHE;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.NEGOTIATING_RENDEZVOUS_VIA_HTTP;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.RETRY_AMP_CACHE_RENDEZVOUS;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.RETRY_HTTP_RENDEZVOUS;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.SENDING_DATA;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.STARTED;
+
import static se.leap.bitmaskclient.tor.TorStatusObservable.SnowflakeStatus.STOPPED;
import android.content.Context;
@@ -59,12 +53,8 @@ public class TorStatusObservable {
public enum SnowflakeStatus {
STARTED,
- NEGOTIATING_RENDEZVOUS_VIA_HTTP,
- NEGOTIATING_RENDEZVOUS_VIA_AMP_CACHE,
- RETRY_HTTP_RENDEZVOUS,
- RETRY_AMP_CACHE_RENDEZVOUS,
- BROKER_REPLIED_SUCCESS,
- SENDING_DATA,
+ CONNECTED,
+ RECONNECTING,
STOPPED
}
@@ -72,21 +62,6 @@ public class TorStatusObservable {
// the TorService has sent the shutdown signal
private boolean cancelled = false;
- public static final String LOG_TAG_TOR = "[TOR]";
- public static final String LOG_TAG_SNOWFLAKE = "[SNOWFLAKE]";
- public static final String SNOWFLAKE_STARTED = "--- Starting Snowflake Client ---";
- public static final String SNOWFLAKE_STOPPED_COLLECTING = "---- SnowflakeConn: end collecting snowflakes ---";
- public static final String SNOWFLAKE_COPY_LOOP_STOPPED = "copy loop ended";
- public static final String SNOWFLAKE_SOCKS_ERROR = "SOCKS accept error";
- public static final String SNOWFLAKE_NEGOTIATING_HTTP = "Negotiating via HTTP rendezvous...";
- public static final String SNOWFLAKE_NEGOTIATING_AMP_CACHE = "Negotiating via AMP cache rendezvous...";
- public static final String SNOWFLAKE_CONNECTION_CLOSING = "WebRTC: Closing";
- public static final String SNOWFLAKE_HTTP_RESPONSE_200 = "HTTP rendezvous response: 200";
- public static final String SNOWFLAKE_AMP_CACHE_RESPONSE_200 = "AMP cache rendezvous response: 200";
-
- public static final String SNOWFLAKE_SENDING_DATA = "Traffic Bytes (in|out):";
-
-
private static TorStatusObservable instance;
private TorStatus status = TorStatus.OFF;
private SnowflakeStatus snowflakeStatus = STOPPED;
@@ -97,7 +72,6 @@ public class TorStatusObservable {
private int port = -1;
private int socksPort = -1;
private int bootstrapPercent = -1;
- private int retrySnowflakeRendezVous = 0;
private final Vector<String> lastLogs = new Vector<>(100);
private TorStatusObservable() {
@@ -120,6 +94,18 @@ public class TorStatusObservable {
return getInstance().snowflakeStatus;
}
+ public static void setSnowflakeStatus(TorStatusObservable.SnowflakeStatus snowflakeStatus) {
+ setSnowflakeStatus(snowflakeStatus, null);
+ }
+
+ public static void setSnowflakeStatus(TorStatusObservable.SnowflakeStatus snowflakeStatus, String snowflakeLog) {
+ if (snowflakeLog != null) {
+ getInstance().lastSnowflakeLog = snowflakeLog;
+ }
+ getInstance().snowflakeStatus = snowflakeStatus;
+ instance.notifyObservers();
+ }
+
/**
* Waits on the current Thread until a certain tor/snowflake status has been reached
* @param condition defines when wait should be interrupted
@@ -163,46 +149,8 @@ public class TorStatusObservable {
if (getInstance().status != TorStatus.OFF) {
getInstance().torNotificationManager.buildTorNotification(context, getStringForCurrentStatus(context), getNotificationLog(), getBootstrapProgress());
}
- //TODO: implement proper state signalling in IPtProxy
message = message.trim();
- if (SNOWFLAKE_STARTED.equals(message)) {
- getInstance().snowflakeStatus = STARTED;
- getInstance().lastSnowflakeLog = context.getString(R.string.snowflake_started);
- } else if (SNOWFLAKE_NEGOTIATING_HTTP.equals(message)) {
- getInstance().snowflakeStatus = NEGOTIATING_RENDEZVOUS_VIA_HTTP;
- getInstance().lastSnowflakeLog = context.getString(R.string.snowflake_negotiating_rendezvous_http);
- } else if (SNOWFLAKE_NEGOTIATING_AMP_CACHE.equals(message)) {
- getInstance().snowflakeStatus = NEGOTIATING_RENDEZVOUS_VIA_AMP_CACHE;
- getInstance().lastSnowflakeLog = context.getString(R.string.snowflake_negotiating_rendezvous_amp_cache);
- } else if (SNOWFLAKE_STOPPED_COLLECTING.equals(message) ||
- SNOWFLAKE_COPY_LOOP_STOPPED.equals(message) ||
- message.contains(SNOWFLAKE_SOCKS_ERROR)) {
- getInstance().snowflakeStatus = STOPPED;
- getInstance().lastSnowflakeLog = context.getString(R.string.snowflake_socks_error);
- } else if (SNOWFLAKE_CONNECTION_CLOSING.equals(message)) {
- if (getInstance().snowflakeStatus == NEGOTIATING_RENDEZVOUS_VIA_HTTP) {
- if (getInstance().retrySnowflakeRendezVous < 3) {
- getInstance().retrySnowflakeRendezVous += 1;
- } else {
- getInstance().retrySnowflakeRendezVous = 0;
- getInstance().snowflakeStatus = RETRY_AMP_CACHE_RENDEZVOUS;
- }
- } else if (getInstance().snowflakeStatus == NEGOTIATING_RENDEZVOUS_VIA_AMP_CACHE) {
- if (getInstance().retrySnowflakeRendezVous < 3) {
- getInstance().retrySnowflakeRendezVous += 1;
- } else {
- getInstance().retrySnowflakeRendezVous = 0;
- getInstance().snowflakeStatus = RETRY_HTTP_RENDEZVOUS;
- }
- }
- } else if (SNOWFLAKE_AMP_CACHE_RESPONSE_200.equals(message) || SNOWFLAKE_HTTP_RESPONSE_200.equals(message)) {
- getInstance().snowflakeStatus = BROKER_REPLIED_SUCCESS;
- getInstance().retrySnowflakeRendezVous = 0;
- getInstance().lastSnowflakeLog = context.getString(R.string.snowflake_broker_success);
- } else if (message.contains(SNOWFLAKE_SENDING_DATA)) {
- getInstance().snowflakeStatus = SENDING_DATA;
- getInstance().lastSnowflakeLog = context.getString(R.string.snowflake_sending_data);
- }
+ getInstance().lastSnowflakeLog = message;
Log.d(TAG, "snowflake status " + getInstance().snowflakeStatus);
instance.notifyObservers();
}
diff --git a/app/src/main/res/layout-port/f_eip.xml b/app/src/main/res/layout-port/f_eip.xml
index e14c7a10..457dee38 100644
--- a/app/src/main/res/layout-port/f_eip.xml
+++ b/app/src/main/res/layout-port/f_eip.xml
@@ -114,6 +114,16 @@
app:layout_constraintVertical_bias="1"
app:srcCompat="@drawable/state_disconnected"
/>
+
+ <View
+ android:id="@+id/gesture_suppress_view"
+ android:layout_width="36dp"
+ android:layout_height="200dp"
+ app:layout_constraintTop_toTopOf="@id/state_view"
+ app:layout_constraintBottom_toBottomOf="@id/state_view"
+ app:layout_constraintStart_toStartOf="parent"
+ />
+
<se.leap.bitmaskclient.base.views.MainButton
android:id="@+id/main_button"
android:layout_width="0dp"
diff --git a/app/src/main/res/layout-sw600dp-port/f_eip.xml b/app/src/main/res/layout-sw600dp-port/f_eip.xml
index 88e51652..bab12d62 100644
--- a/app/src/main/res/layout-sw600dp-port/f_eip.xml
+++ b/app/src/main/res/layout-sw600dp-port/f_eip.xml
@@ -114,6 +114,16 @@
app:layout_constraintVertical_bias="1"
app:srcCompat="@drawable/state_disconnected"
/>
+
+ <View
+ android:id="@+id/gesture_suppress_view"
+ android:layout_width="36dp"
+ android:layout_height="200dp"
+ app:layout_constraintTop_toTopOf="@id/state_view"
+ app:layout_constraintBottom_toBottomOf="@id/state_view"
+ app:layout_constraintStart_toStartOf="parent"
+ />
+
<se.leap.bitmaskclient.base.views.MainButton
android:id="@+id/main_button"
android:layout_width="0dp"
diff --git a/app/src/main/res/layout-xlarge-port/f_eip.xml b/app/src/main/res/layout-xlarge-port/f_eip.xml
index 590cf1a4..022e0b0e 100644
--- a/app/src/main/res/layout-xlarge-port/f_eip.xml
+++ b/app/src/main/res/layout-xlarge-port/f_eip.xml
@@ -119,6 +119,14 @@
app:layout_constraintVertical_bias="1"
app:srcCompat="@drawable/state_disconnected"
/>
+ <View
+ android:id="@+id/gesture_suppress_view"
+ android:layout_width="36dp"
+ android:layout_height="200dp"
+ app:layout_constraintTop_toTopOf="@id/state_view"
+ app:layout_constraintBottom_toBottomOf="@id/state_view"
+ app:layout_constraintStart_toStartOf="parent"
+ />
<se.leap.bitmaskclient.base.views.MainButton
android:id="@+id/main_button"
diff --git a/app/src/main/res/layout-xlarge/f_eip.xml b/app/src/main/res/layout-xlarge/f_eip.xml
index e413319a..37441bca 100644
--- a/app/src/main/res/layout-xlarge/f_eip.xml
+++ b/app/src/main/res/layout-xlarge/f_eip.xml
@@ -119,6 +119,15 @@
app:srcCompat="@drawable/state_disconnected"
/>
+ <View
+ android:id="@+id/gesture_suppress_view"
+ android:layout_width="36dp"
+ android:layout_height="200dp"
+ app:layout_constraintTop_toTopOf="@id/state_view"
+ app:layout_constraintBottom_toBottomOf="@id/state_view"
+ app:layout_constraintStart_toStartOf="parent"
+ />
+
<se.leap.bitmaskclient.base.views.MainButton
android:id="@+id/main_button"
android:layout_width="0dp"
diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml
index a63592f4..568a2da0 100644
--- a/app/src/main/res/layout/activity_setup.xml
+++ b/app/src/main/res/layout/activity_setup.xml
@@ -5,7 +5,9 @@
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:weightSum="1"
- xmlns:app="http://schemas.android.com/apk/res-auto">
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:background="@color/colorPrimary_transparent"
+ >
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
@@ -19,18 +21,16 @@
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
- android:layout_alignParentTop="true"
- android:layout_below="@id/toolbar"
- android:layout_alignParentBottom="true"
android:layout_weight="1"
+ android:background="@color/white"
/>
<RelativeLayout
+ android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="@dimen/setup_bottom_bar"
android:layout_alignParentBottom="true"
android:padding="@dimen/stdpadding"
- android:background="@color/colorPrimary_transparent"
>
<LinearLayout
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/allowed_vpn_apps.xml b/app/src/main/res/layout/allowed_vpn_apps.xml
index 1930adf2..2bdbcc62 100644
--- a/app/src/main/res/layout/allowed_vpn_apps.xml
+++ b/app/src/main/res/layout/allowed_vpn_apps.xml
@@ -16,8 +16,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
+ android:background="@color/amber200"
android:textStyle="bold"
- android:textColor="@color/colorWarning"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
@@ -27,12 +27,12 @@
<View
android:layout_width="match_parent"
- android:layout_height="1dp"
+ android:layout_height="1.5dp"
android:background="?android:attr/listDivider"/>
- <ListView
+ <androidx.recyclerview.widget.RecyclerView
android:visibility="gone"
- android:id="@android:id/list"
+ android:id="@+id/list"
android:drawSelectorOnTop="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
diff --git a/app/src/main/res/layout/f_eip.xml b/app/src/main/res/layout/f_eip.xml
index 1e1f8e41..615e1ab7 100644
--- a/app/src/main/res/layout/f_eip.xml
+++ b/app/src/main/res/layout/f_eip.xml
@@ -66,6 +66,8 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintGuide_percent="0.7" />
+
+
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/background"
android:layout_width="match_parent"
@@ -73,7 +75,6 @@
android:scaleType="fitXY"
app:srcCompat="@drawable/bg_disconnected" />
-
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/main_description"
android:layout_width="wrap_content"
@@ -128,6 +129,16 @@
app:srcCompat="@drawable/state_disconnected"
/>
+ <View
+ android:id="@+id/gesture_suppress_view"
+ android:layout_width="36dp"
+ android:layout_height="200dp"
+ app:layout_constraintTop_toTopOf="@id/state_view"
+ app:layout_constraintBottom_toBottomOf="@id/state_view"
+ app:layout_constraintStart_toStartOf="parent"
+ />
+
+
<se.leap.bitmaskclient.base.views.MainButton
android:id="@+id/main_button"
android:layout_width="0dp"
diff --git a/app/src/main/res/layout/f_provider_selection.xml b/app/src/main/res/layout/f_provider_selection.xml
index 8ec7e7c0..6623aa03 100644
--- a/app/src/main/res/layout/f_provider_selection.xml
+++ b/app/src/main/res/layout/f_provider_selection.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
-
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/stdpadding"
+ android:id="@+id/scrollView"
android:layout_margin="@dimen/activity_margin"
+ android:layout_marginBottom="0dp"
+ android:clipToPadding="false"
tools:context=".providersetup.fragments.ProviderSelectionFragment">
<androidx.appcompat.widget.LinearLayoutCompat
@@ -37,7 +39,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
- android:text="@string/select_provider_description"/>
+ tools:text="@string/select_provider_description"/>
<androidx.cardview.widget.CardView
android:id="@+id/cv_provider_selection_container"
@@ -69,7 +71,6 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/activity_margin"
- android:paddingBottom="@dimen/list_view_margin_top"
android:background="@color/color_provider_description_background"
android:id="@+id/expandable_detail_container">
<androidx.appcompat.widget.AppCompatTextView
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index c6178979..6b3bd6c0 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -1,268 +1,255 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">حاول مجدداً</string>
- <string name="repository_url_text">كود المصدر متاح هنا https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">متتبع الأعطال متوافر هنا
+ <string name="retry">حاول مجدداً</string>
+ <string name="repository_url_text">كود المصدر متاح هنا https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">متتبع الأعطال متوافر هنا
https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">يمكنك الترجمة؟ اطلع على مشروع الترجمة الخاص بنا عبر هذا الرابط
-https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">بدّل مزود الخدمة</string>
- <string name="info">معلومات</string>
- <string name="show_connection_details">عرض تفاصيل الاتصال</string>
- <string name="connection_details">تفاصيل الاتصال</string>
- <string name="routes_info">المسارات: %s</string>
- <string name="routes_info6">مسارات IPv6: %s</string>
- <string name="error_empty_username">لا ينبغي أن يظل مكان اسم المستخدم فارغاً.</string>
- <string name="cert_from_keystore">احصل على شهادة \'%s\' من مستودع مفاتيح</string>
- <string name="provider_label">مزود الخدمة:</string>
- <string name="provider_label_none">لا مزود خدمة مفعل</string>
- <string name="status_unknown">الحالة غير معروفة.</string>
- <string name="eip_service_label">نفاذ مشفّر إلى الإنترنت عبر الـ VPN</string>
- <string name="configuration_wizard_title">اختر مزود خدمة</string>
- <string name="add_provider">أضف مزود خدمة</string>
- <string name="introduce_new_provider">أضف مزود خدمة جديد</string>
- <string name="save">حفظ</string>
- <string name="new_provider_uri">اسم النطاق</string>
- <string name="valid_url_entered">الرابط صحيح</string>
- <string name="not_valid_url_entered">الرابط مشوه</string>
- <string name="provider_details_title">تفاصيل مزود الخدمة</string>
- <string name="use_anonymously_button">استخدم كمجهول</string>
- <string name="username_hint">اسم المستخدم</string>
- <string name="username_ask">فضلا أدخل اسم المستخدم</string>
- <string name="password_ask">فضلا أدخل كلمة السر</string>
- <string name="password_hint">كلمة السر</string>
- <string name="password_match">كلمتا السر متطابقتان</string>
- <string name="password_mismatch">كلمتا السر غير متطابقتين</string>
- <string name="user_message">رسالة المستخدم</string>
- <string name="about_fragment_title">عن التطبيق</string>
- <string name="exclude_apps_fragment_title">إقصاء تطبيقات من الـ VPN</string>
- <string name="error_srp_math_error_user_message">أعد المحاولة: خطأ حسابي في الخادم</string>
- <string name="error_bad_user_password_user_message">اسم المستخدم أو كلمة السر غير صحيحة</string>
- <string name="error_not_valid_password_user_message">يجب أن تكون 8 حروف على الأقل</string>
- <string name="error_client_http_user_message">أعد المحاولة: خطأ بعميل HTTP</string>
- <string name="error_io_exception_user_message">أعد المحاولة: خطأ I/O</string>
- <string name="error_json_exception_user_message">أعد المحاولة: استجابة خاطئة من الخادم</string>
- <string name="error_no_such_algorithm_exception_user_message">خوارزمية التشفير غير مدعومة. فضلا حدث نظام أندرويد!</string>
- <string name="signup_or_login_button">سجل حساب/سجل دخول</string>
- <string name="login_button">تسجيل الدخول</string>
- <string name="login_to_profile">سجل الدخول إلى ملفك</string>
- <string name="logout_button">تسجيل الخروج</string>
- <string name="signup_button">سجل حسابا</string>
- <string name="create_profile">أنشئ ملفا</string>
- <string name="setup_provider">إعداد مزود الخدمة</string>
- <string name="setup_error_title">خطأ في الضبط</string>
- <string name="setup_error_configure_button">ضبط</string>
- <string name="setup_error_close_button">خروج</string>
- <string name="setup_error_text">حدث خطأ أثناء ضبط %s مع مزود الخدمة المختار.\n\nيمكنك عمل إعادة الضبط أو الخروج وضبط المزود عند التشغيل اللاحق.</string>
- <string name="setup_error_text_custom">‎حدث خطأ أثناء تكوين %s.\n\nيمكنك اختيار إعادة التكوين أو الخروج.</string>
- <string name="server_unreachable_message">لا يمكن الوصول إلى لخادم، فضلا أعد المحاولة.</string>
- <string name="error.security.pinnedcertificate">خطأ أمني، قم بتحديث التطبيق أو اختر مزودا آخر.</string>
- <string name="malformed_url">لا يبدو أنه مزود خدمة %s.</string>
- <string name="certificate_error">هذا ليس مزود خدمة %s موثوق.</string>
- <string name="service_is_down_error">الخدمة متوقفة.</string>
- <string name="configuring_provider">جاري ضبط مزود الخدمة</string>
- <string name="incorrectly_downloaded_certificate_message">شهادتك المجهلة لم يتم تحميلها</string>
- <string name="downloading_certificate_message">جارٍ تنزيل شهادة الشبكة الافتراضية الخاصة</string>
- <string name="updating_certificate_message">جارٍ تحديث شهادة الشبكة الافتراضية الخاصة</string>
- <string name="login.riseup.warning">مستخدمي Riseup سيحتاجون إلى إنشاء حساب منفصل لاستخدام خدمة VPN</string>
- <string name="succesful_authentication_message">تم التحقق بنجاح</string>
- <string name="authentication_failed_message">فشلت المصادقة</string>
- <string name="registration_failed_message">فشل التسجيل</string>
- <string name="eip_status_start_pending">جارٍ ربط الاتصال</string>
- <string name="eip_status_connecting">جار الاتصال بشبكة خاصة افتراضية VPN</string>
- <string name="eip_status_unsecured">اتصال غير آمن</string>
- <string name="eip_status_secured">اتصال آمن</string>
- <string name="eip_cancel_connect_title">إلغاء الاتصال؟</string>
- <string name="eip_cancel_connect_text">هناك محاولة اتصال جارية. هل تريد إلغاءها؟</string>
- <string name="eip.warning.browser_inconsistency">هل أقطع اتصال VPN؟ عندما يتم إيقاف VPN فيمكن أن تتسرب بياناتك الشخصية إلى مزود خدمة الانترنت أو الشبكة المحلية.</string>
- <string name="eip_state_not_connected">لا يعمل! اتصال غير آمن!</string>
- <string name="eip_state_connected">الاتصال آمن</string>
- <string name="provider_problem">يبدو أنه توجد مشكلة ما عند مزود الخدمة.</string>
- <string name="try_another_provider">فضلا جرب مزود خدمة آخر أو تواصل مع الحالي.</string>
- <string name="default_username">مجهول</string>
- <string name="logging_in">جاري تسجيل الدخول</string>
- <string name="signing_up">جاري التسجيل</string>
- <string name="vpn.button.turn.on">تشغيل</string>
- <string name="vpn.button.turn.off">إيقاف</string>
- <string name="vpn_button_turn_off_blocking">أوقف الحجب</string>
- <string name="vpn_securely_routed">بيانات اتصالاتك يتم تمريرها بأمان من خلال:</string>
- <string name="vpn_securely_routed_no_internet">لم يُعثر على اتصال انترنت، عندما يعود سيتم تمرير اتصالك بأمان من خلال:</string>
- <string name="log_fragment_title">السجل</string>
- <string name="vpn_fragment_title">الشبكة الافتراضية الخاصة</string>
- <string name="navigation_drawer_open">افتح راسم التصفح</string>
- <string name="navigation_drawer_close">أغلق راسم التصفح</string>
- <string name="action_example">مثال لإجراء</string>
- <string name="action_settings">الإعدادات</string>
- <string name="void_vpn_establish">%s يحجب جميع اتصالات الإنترنت الخارجة.</string>
- <string name="void_vpn_error_establish">فشل حجب جميع اتصالات الانترنت</string>
- <string name="void_vpn_stopped">تم إيقاف حجب الاتصالات الخارجة.</string>
- <string name="void_vpn_title">جاري حجب الاتصالات</string>
- <string name="update_provider_details">قم بتحديث تفاصيل المزود</string>
- <string name="update_certificate">قم بتحديث الشهادة</string>
- <string name="warning_eip_json_corrupted">فشل تحديث ضبط مزود الخدمة.</string>
- <string name="eip_json_corrupted_user_message">فشل تحديث ضبط مزود الخدمة. سجل دخول وأعد المحاولة.</string>
- <string name="warning_client_parsing_error_gateways">لا يمكن التعرف على بوابة مزود الخدمة. من المحتمل أنها مضبوطة بطريقة خاطئة.</string>
- <string name="warning_corrupted_provider_details">بيانات مزود الخدمة المخزنة فسدت. يمكنك تحديث %s (موصى به) أو تحديث بيانات مزود الخدمة باستخدام شهادة CA تجارية.</string>
- <string name="warning_corrupted_provider_cert">شهادة مزود الخدمة المخزنة غير صالحة. يمكنك تحديث %s (موصى به) أو تحديث بيانات مزود الخدمة باستخدام شهادة CA تجارية.</string>
- <string name="warning_expired_provider_cert">شهادة مزود الخدمة المخزنة انتهت مدتها. يمكنك تحديث %s (موصى به) أو تحديث بيانات مزود الخدمة باستخدام شهادة CA تجارية.</string>
- <string name="downloading_vpn_certificate_failed">فشل تحميل شهادة VPN. أعد المحاولة أو اختر مزود خدمة آخر.</string>
- <string name="vpn_certificate_is_invalid">شهادة VPN غير صالحة. حاول تحميل أخرى جديدة.</string>
- <string name="vpn_certificate_user_message">شهادة VPN غير صالحة. سجل دخول لتحميل أخرى جديدة.</string>
- <string name="save_battery">وفّر البطارية</string>
- <string name="subtitle_save_battery">معطل في حالة استخدام نقطة اتصال VPN</string>
- <string name="save_battery_message">اتصالات البيانات في الخلفية ستتوقف حين يكون هاتفك غير نشط.</string>
- <string name="always_on_vpn">‏شبكة افتراضية خاصة (VPN) دائمة التشغيل</string>
- <string name="subtitle_always_on_vpn">افتح إعدادات نظام الأندرويد</string>
- <string name="tethering">نقطة اتصال شبكة خاصة افتراضية VPN</string>
- <string name="ipv6Firewall">حظر الإصدار السادس من عناوين الإنترنت IPv6</string>
- <string name="require_root">يتطلب صلاحية الجذر (الروت)</string>
- <string name="show_experimental">عرض مزايا تجريبية</string>
- <string name="hide_experimental">إخفاء الخصائص التجريبية</string>
- <string name="experimental_features">خصائص تجريبية</string>
- <string name="tethering_enabled_message">يُرجى التأكد من تفعيل خيار الربط من <![CDATA[1<b> إعدادات النظام أولا </b>]]> أولا.</string>
- <string name="tethering_message">مشاركة اتصال الـ VPN الخاص بك مع الآخرين عبر:</string>
- <string name="tethering_wifi">نقطة اتصال واي فاي</string>
- <string name="tethering_usb">اتصال USB</string>
- <string name="tethering_bluetooth">اتصال بلوتوث</string>
- <string name="do_not_show_again">‮لا تظهر مجدداً</string>
- <string name="always_on_vpn_user_message">لتفعيل الاتصال الدائم بالشبكة الافتراضية الخاصة في إعدادات آندرويد لل VPN، يجب النقر على أيقونة الضبط [img src] ومن ثمّ تشغيل \"شبكة ظاهريّة خاصّة (VPN) دائمة التشغيل\".</string>
- <string name="always_on_blocking_vpn_user_message">لحماية خصوصيتكم على نحو أمثل ، يجب عليكم أيضا تفعيل خيار \"منع الاتصالات بدون الشبكة الافتراضية الخاصة\".</string>
- <string name="donate_title">تبرّع</string>
- <string name="donate_default_message">فضلا تبرع اليوم إذا كنت تُقدّر الاتصال الآمن المتوفر بسهولة سواءا للمستخدم النهائي ولمزود الخدمة.</string>
- <string name="donate_message">LEAP تعتمد على التبرعات والمنح. فضلا تبرع اليوم إذا كنت تقدر الاتصال الآمن المتوفر بسهولة للمستخدم النهائي ومزود الخدمة.</string>
- <string name="donate_button_remind_later">ذكرني لاحقا</string>
- <string name="donate_button_donate">تبرّع</string>
- <string name="obfuscated_connection">جاري استخدام اتصال مموه.</string>
- <string name="obfuscated_connection_try">جارى محاولة استخدام اتصال مموه.</string>
- <string name="nav_drawer_obfuscated_connection">استخدم الجسور</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">تخطى تصفية VPN</string>
- <string name="warning_exclude_apps_message">إحذر استثناء التطبيقات من الشبكة الافتراضية الخاصة (VPN). هذا سيكشف هويتك ويعرضك للخطر.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="zero">%d لا يوجد تطبيقات غير محمية</item>
- <item quantity="one">%d تطبيق واحد غير محمي</item>
- <item quantity="two">%d تطبيقان غير محميان</item>
- <item quantity="few">%d تطبيقات غير محمية</item>
- <item quantity="many">%d تطبيق غير محمي</item>
- <item quantity="other">%d تطبيق غير محمي</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s لا يمكنه الاتصال. من المحتمل ان اتصالات ال VPN محجوبة. هل تريد أن تحاول الاتصال ياستخدام الاتصالات المموهة؟</string>
- <string name="warning_no_more_gateways_no_pt">%s لم نتمكن من الاتصال. هل تريد إعادة المحاولة؟</string>
- <string name="warning_no_more_gateways_use_ovpn">%s لا يمكنه الاتصال ياستخدام اتصالات VPN مموهة. هل تريد أن تحاول الاتصال باستخدام VPN عادية؟</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s تعذر الاتصال %2$s . هل تريد محاولة الاتصال تلقائيًا بأفضل موقع؟</string>
- <string name="warning_option_try_best">جرّب الموقع الجغرافي الأفضل</string>
- <string name="warning_option_try_pt">جرّب الاتصال المموه</string>
- <string name="warning_option_try_ovpn">جرّب الاتصال العادي</string>
- <string name="vpn_error_establish">فشل نظام أندرويد في تأسيس خدمة الشبكة الافتراضية الخاصة (VPN). </string>
- <string name="root_permission_error">%s لا يمكن عمل مميزات مثل نقطة اتصال لشبكة خاصة افتراضية VPN أو جدار ناري للإصدار السادس من عنوان الإنترنت IPv6 بدون صلاحية الجذر (الروت).</string>
- <string name="qs_enable_vpn">إبدأ%s</string>
- <string name="version_update_found">انقر هنا لبدء التحميل.</string>
- <string name="version_update_title">تم اكتشاف %s نسخة جديدة.</string>
- <string name="version_update_apk_description">تحميل %s نسخة جديدة.</string>
- <string name="version_update_download_title">نسخة جديدة %s تم تحميلها.</string>
- <string name="version_update_download_description">انقر هنا لتثبيت التحديث.</string>
- <string name="version_update_error_pgp_verification">خطأ في التحقق من صحة التوقيع. تجاهل التحميل.</string>
- <string name="version_update_error">فشل التحديث.</string>
- <string name="version_update_error_permissions">لاتوجد صلاحيات لتثبيت التطبيق.</string>
- <string name="gateway_selection_title">اختار الموقع</string>
- <string name="gateway_selection_recommended_location">الموقع المقترح</string>
- <string name="gateway_selection_recommended">مقترح</string>
- <string name="gateway_selection_manually">اختار يدوياً</string>
- <string name="gateway_selection_automatic_location">اختار الاتصال الأفضل تلقائياً</string>
- <string name="gateway_selection_automatic">تلقائي</string>
- <string name="reconnecting">إعادة الاتصال...</string>
- <string name="tor_starting">بدء جسور تجاوز الرقابة...</string>
- <string name="tor_stopping">إيقاف الجسور</string>
- <string name="tor_started">استخدام الجسور لتجاوز الرقابة</string>
- <string name="log_conn_done_pt">ناقل قابل للوصل متصل</string>
- <string name="log_conn_pt">ناقل قابل للوصل قيد الاتصال</string>
- <string name="log_conn_done">متصل بعقدة التوجيه</string>
- <string name="log_handshake">التفاوض على اتصال مع عقدة التوجيه</string>
- <string name="log_handshake_done">تم التفاوض على الاتصال مع عقدة التوجيه</string>
- <string name="log_onehop_create">ينشئ اتصالا مشفرا بالدليل</string>
- <string name="log_requesting_status">طلب التوافق على حالة الشبكة</string>
- <string name="log_loading_status">جارٍ تحميل توافق حالة الشبكة</string>
- <string name="log_loading_keys">يحمل شهادات السلطة</string>
- <string name="log_requesting_descriptors">السؤال عن واصفات عقدة التوجيه</string>
- <string name="log_loading_descriptors">يجري تحميل واصفات عقدة التوجيه</string>
- <string name="log_enough_dirinfo">تم تحميل معلومات الدليل الكافية لبناء المسارات</string>
- <string name="log_ap_handshake_done">انتهى التفاوض بعقدة التوجيه لبناء المسارات</string>
- <string name="log_circuit_create">ينشئ دائرة Tor</string>
- <string name="log_done">يعمل</string>
- <string name="channel_name_tor_service">خدمة الجسور%s</string>
- <string name="channel_description_tor_service">يبلغ عن استخدام الجسور أثناء تهيئ %s.</string>
- <string name="error_tor_timeout">فشل بدء الجسور. هل تريد إعادة المحاولة أو الاستمرار في اجراء اتصال آمن غير غامض %s؟</string>
- <string name="retry_unobfuscated">أعد المحاولة بدون تشويش</string>
- <string name="hide">إخفاء</string>
- <string name="error_network_connection">%s ليس لديه اتصال بالإنترنت. يرجى التحقق من إعدادات WiFi والبيانات الخلوية.</string>
- <string name="censorship_circumvention">تجاوز الرقابة</string>
- <string name="use_snowflake">استخدم Snowflake</string>
- <string name="snowflake_description">حماية عملية التهيئة ضد الرقابة.</string>
- <string name="vpn_settings">إعدادات الشبكة الخاصة الافتراضية (VPN)</string>
- <string name="prefer_udp">استخدم UDP إن كان متواجداً</string>
- <string name="prefer_udp_subtitle">يمكن أن يكون UDP \"بروتوكول مخطط المستخدم\" أسرع وأفضل للبث، ولكنه لا يعمل مع جميع الشبكات.</string>
- <string name="disabled_while_bridges_on">معطّل أثناء استخدام الجسور</string>
- <string name="hint_bridges">فقط المواقع التي تدعم الجسور متاحة للاختيار</string>
- <string name="option_disable_bridges">عطّل الجسور</string>
- <string name="eip_state_insecure">الاتصال غير آمن</string>
- <string name="connection_not_connected">من الممكن أن معلوماتك تتسرب لشركة الاتصالات أو الشبكة المحلية </string>
- <string name="eip_state_no_network">لا يوجد إنترنت. عندما يتوفر الإنترنت، ستتصل تلقائياً إلى</string>
- <string name="eip_state_blocking">%1$s يقوم بحجب الاتصال</string>
- <string name="disabled_while_udp_on">معطّل في حال تشغيل UDP</string>
- <string name="advanced_settings">إعدادات متقدمة</string>
- <string name="cancel_connection">قطع الإتصال</string>
- <string name="unknown_location">موقع مجهول</string>
- <string name="splash_footer">تم تطويره بواسطة LEAP</string>
- <string name="welcome">مرحبا!</string>
- <string name="select_provider">تحديد مُزوِّدك</string>
- <string name="select_provider_description">عند استخدام شبكة خاصة افتراضية VPN، فإنك تنقل ثقتك من مزود خدمة الإنترنت الخاص بك إلى مزود VPN الخاص بك. يتصل Bitmask فقط بمقدمي الخدمات الذين لديهم سجل واضح لحماية الخصوصية والدعوة.</string>
- <string name="provider_description_riseup">توفر Riseup أدوات اتصال عبر الإنترنت للأشخاص والمجموعات التي تعمل على التغيير الاجتماعي التحرري. نحن مشروع لخلق بدائل ديمقراطية وممارسة تقرير المصير من خلال التحكم في وسائل الاتصالات الآمنة الخاصة بنا.</string>
- <string name="next">التالي</string>
- <string name="add_provider_description">يتصل Bitmask بمزودي الخدمات الموثوقين غير المدرجين بشكل علني. أدخل عنوان URL الخاص بمزود الخدمة الخاص بك أدناه.</string>
- <string name="add_provider_prompt">أدخل عنوان URL الخاص بموفر الخدمة هنا.</string>
- <string name="invite_code_provider_description">يتيح لك Bitmask التواصل مع مزودي الخدمة عبر رمز أو كود دعوة خاص.</string>
- <string name="invite_code_provider_prompt">أدخل رمزك هنا.</string>
- <string name="qr_scanner_prompt">مسح رمز كيو آر</string>
- <string name="provider_description_calyx">كاليكس Calyx هي منظمة تعليمية وبحثية غير ربحية مكرسة لدراسة واختبار وتطوير وتنفيذ تكنولوجيا وأدوات الخصوصية لتعزيز حرية الراي وحرية التعبير والمشاركة المدنية وحقوق الخصوصية على الإنترنت وفي صناعة الاتصالات المتنقلة.</string>
- <string name="title_circumvention_setup">هل تحتاج إلى تجاوز الرقابة؟</string>
- <string name="circumvention_setup_description">إذا كنت تعيش في مكان يخضع فيه الإنترنت للرقابة، فيمكنك استخدام خيارات التحايل على الرقابة للوصول إلى جميع خدمات الإنترنت. هذه الخيارات سوف تبطئ اتصالك!</string>
- <string name="circumvention_setup_hint">%s سيحاول تلقائيًا توصيلك بالإنترنت باستخدام مجموعة متنوعة من تقنيات التجاوز. يمكنك ضبط هذا في الإعدادات المتقدمة.</string>
- <string name="use_standard_vpn">استخدم معيار %s</string>
- <string name="use_circumvention_tech">استخدام تقنية التحايل (أبطأ)</string>
- <string name="description_configure_provider">للاتصال بمزود الخدمة الخاص بك، يقوم %1$s بجلب جميع معلومات التهيئة المطلوبة. يحدث هذا فقط أثناء الإعداد الأول.</string>
- <string name="description_configure_provider_circumvention"> %1$s يحاول جمع كافة بيانات التهيئة المطلوبة من المُزوِّد. يحدث هذا فقط أثناء الإعداد الأول. لقد اخترت استخدام تقنية التجاوز، لذا قد يستغرق ذلك بعض الوقت.</string>
- <string name="details">التفاصيل</string>
- <string name="tor_status">حالة تور</string>
- <string name="snowflake_status">حالة Snowflake</string>
- <string name="snowflake_started">بدأ مستخدم Snowflake</string>
- <string name="snowflake_negotiating_rendezvous_http">التفاوض بشأن موعد وكيل Snowflake (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">التفاوض على موعد وكيل Snowflake (ذاكرة التخزين المؤقت amp)</string>
- <string name="snowflake_socks_error">خطأ في برتوكول Snowflake SOCKS</string>
- <string name="snowflake_broker_success">نجح لقاء وكيل Snowflake</string>
- <string name="snowflake_sending_data">إرسال البيانات عبر Snowflake</string>
- <string name="title_upcoming_connection_request">طلب اتصال القادم</string>
- <string name="title_upcoming_notifications_request">طلب إشعارات القادمة</string>
- <string name="title_setup_success">كل شيء جاهز!</string>
- <string name="setup_success_description">انقر الزر ادناه للاتصال</string>
- <string name="permission_rejected">تم رفض طلب ترخيص.</string>
- <string name="login_not_supported">لا يدعم إصدار التطبيق الحالي عمليات تسجيل الدخول، وهو ما تحتاجه لتحديث شهادة VPN الخاصة بك لهذا المزود.</string>
- <string name="select_language">اختر اللغة</string>
- <string name="syntax_check">التحقق من البنية:</string>
- <string name="validation_status_success">جيد</string>
- <string name="validation_status_failure">سيء</string>
- <string name="enter_invite_code">أدخل رمز الدعوة</string>
- <string name="scan_qr_code">مسح رمز كيو آر</string>
- <string name="invalid_code">الرمز باطل</string>
- <string name="automatic_bridge">تلقائي (مستحسن)</string>
- <string name="automatic_bridge_description">ستتم محاولة الاتصال باستخدام أفضل الجسور والبروتوكولات المتاحة.</string>
- <string name="manual_bridge">تهيئة يدوية</string>
- <string name="manual_bridge_description">اختر جسور خاصة وبروتوكولات محددة</string>
- <string name="censorship_circumvention_description">تتطلب التهيئة اليدوية فهماً تقنياً. توخَّ الحذر.</string>
- <string name="discovery">اكشتاف</string>
- <string name="discovery_description">يمكن لأجهزة الحجب أن تمنع الكشف عن معلومات التهيئة المهمة الصادرة عن مزودك. استخدم خاصية التحايل لتجاوز الحظر.</string>
- <string name="automatically_select">اختيار تلقائي</string>
- <string name="invite_proxy">وكيل دعوة</string>
- <string name="tunnelling">نفقي</string>
- <string name="tunnelling_description">يمكن لأجهزة الحجب أن تمنع الوصول إلى الإنترنت المفتوح. استخدم خاصية التحايل لتجاوز الحظر.</string>
- <string name="port_hopping">القفز بين المنافذ</string>
- <string name="port_hopping_description">تلجأ أدوات الحجب إلى تحليل حركة المرور لمنع الوصول إلى الإنترنت المفتوح. يمكن للقفز عبر المنافذ أن يصعّب هذه المهمة. </string>
+ <string name="translation_project_text">يمكنك الترجمة؟ اطلع على مشروع الترجمة الخاص بنا عبر هذا الرابط https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">بدّل مزود الخدمة</string>
+ <string name="info">معلومات</string>
+ <string name="show_connection_details">عرض تفاصيل الاتصال</string>
+ <string name="connection_details">تفاصيل الاتصال</string>
+ <string name="routes_info">المسارات: %s</string>
+ <string name="routes_info6">مسارات IPv6: %s</string>
+ <string name="error_empty_username">لا ينبغي أن يظل مكان اسم المستخدم فارغاً.</string>
+ <string name="cert_from_keystore">احصل على شهادة \'%s\' من مستودع مفاتيح</string>
+ <string name="provider_label">مزود الخدمة:</string>
+ <string name="provider_label_none">لا مزود خدمة مفعل</string>
+ <string name="status_unknown">الحالة غير معروفة.</string>
+ <string name="eip_service_label">نفاذ مشفّر إلى الإنترنت عبر الـ VPN</string>
+ <string name="configuration_wizard_title">اختر مزود خدمة</string>
+ <string name="add_provider">أضف مزود خدمة</string>
+ <string name="introduce_new_provider">أضف مزود خدمة جديد</string>
+ <string name="save">حفظ</string>
+ <string name="new_provider_uri">اسم النطاق</string>
+ <string name="valid_url_entered">الرابط صحيح</string>
+ <string name="not_valid_url_entered">الرابط مشوه</string>
+ <string name="provider_details_title">تفاصيل مزود الخدمة</string>
+ <string name="use_anonymously_button">استخدم كمجهول</string>
+ <string name="username_hint">اسم المستخدم</string>
+ <string name="username_ask">فضلا أدخل اسم المستخدم</string>
+ <string name="password_ask">فضلا أدخل كلمة السر</string>
+ <string name="password_hint">كلمة السر</string>
+ <string name="password_match">كلمتا السر متطابقتان</string>
+ <string name="password_mismatch">كلمتا السر غير متطابقتين</string>
+ <string name="user_message">رسالة المستخدم</string>
+ <string name="about_fragment_title">عن التطبيق</string>
+ <string name="exclude_apps_fragment_title">إقصاء تطبيقات من الـ VPN</string>
+ <string name="error_srp_math_error_user_message">أعد المحاولة: خطأ حسابي في الخادم</string>
+ <string name="error_bad_user_password_user_message">اسم المستخدم أو كلمة السر غير صحيحة</string>
+ <string name="error_not_valid_password_user_message">يجب أن تكون 8 حروف على الأقل</string>
+ <string name="error_client_http_user_message">أعد المحاولة: خطأ بعميل HTTP</string>
+ <string name="error_io_exception_user_message">أعد المحاولة: خطأ I/O</string>
+ <string name="error_json_exception_user_message">أعد المحاولة: استجابة خاطئة من الخادم</string>
+ <string name="error_no_such_algorithm_exception_user_message">خوارزمية التشفير غير مدعومة. فضلا حدث نظام أندرويد!</string>
+ <string name="signup_or_login_button">سجل حساب/سجل دخول</string>
+ <string name="login_button">تسجيل الدخول</string>
+ <string name="login_to_profile">سجل الدخول إلى ملفك</string>
+ <string name="logout_button">تسجيل الخروج</string>
+ <string name="signup_button">سجل حسابا</string>
+ <string name="create_profile">أنشئ ملفا</string>
+ <string name="setup_provider">إعداد مزود الخدمة</string>
+ <string name="setup_error_title">خطأ في الضبط</string>
+ <string name="setup_error_configure_button">ضبط</string>
+ <string name="setup_error_close_button">خروج</string>
+ <string name="setup_error_text">حدث خطأ أثناء ضبط %s مع مزود الخدمة المختار.\n\nيمكنك عمل إعادة الضبط أو الخروج وضبط المزود عند التشغيل اللاحق.</string>
+ <string name="setup_error_text_custom">‎حدث خطأ أثناء تكوين %s.\n\nيمكنك اختيار إعادة التكوين أو الخروج.</string>
+ <string name="server_unreachable_message">لا يمكن الوصول إلى لخادم، فضلا أعد المحاولة.</string>
+ <string name="error.security.pinnedcertificate">خطأ أمني، قم بتحديث التطبيق أو اختر مزودا آخر.</string>
+ <string name="malformed_url">لا يبدو أنه مزود خدمة %s.</string>
+ <string name="certificate_error">هذا ليس مزود خدمة %s موثوق.</string>
+ <string name="service_is_down_error">الخدمة متوقفة.</string>
+ <string name="configuring_provider">جاري ضبط مزود الخدمة</string>
+ <string name="downloading_certificate_message">جارٍ تنزيل شهادة الشبكة الافتراضية الخاصة</string>
+ <string name="updating_certificate_message">جارٍ تحديث شهادة الشبكة الافتراضية الخاصة</string>
+ <string name="login.riseup.warning">مستخدمي Riseup سيحتاجون إلى إنشاء حساب منفصل لاستخدام خدمة VPN</string>
+ <string name="succesful_authentication_message">تم التحقق بنجاح</string>
+ <string name="authentication_failed_message">فشلت المصادقة</string>
+ <string name="registration_failed_message">فشل التسجيل</string>
+ <string name="eip_status_start_pending">جارٍ ربط الاتصال</string>
+ <string name="eip_status_connecting">جار الاتصال بشبكة خاصة افتراضية VPN</string>
+ <string name="eip_status_unsecured">اتصال غير آمن</string>
+ <string name="eip_status_secured">اتصال آمن</string>
+ <string name="eip_cancel_connect_title">إلغاء الاتصال؟</string>
+ <string name="eip_cancel_connect_text">هناك محاولة اتصال جارية. هل تريد إلغاءها؟</string>
+ <string name="eip.warning.browser_inconsistency">هل أقطع اتصال VPN؟ عندما يتم إيقاف VPN فيمكن أن تتسرب بياناتك الشخصية إلى مزود خدمة الانترنت أو الشبكة المحلية.</string>
+ <string name="eip_state_not_connected">لا يعمل! اتصال غير آمن!</string>
+ <string name="eip_state_connected">الاتصال آمن</string>
+ <string name="provider_problem">يبدو أنه توجد مشكلة ما عند مزود الخدمة.</string>
+ <string name="try_another_provider">فضلا جرب مزود خدمة آخر أو تواصل مع الحالي.</string>
+ <string name="default_username">مجهول</string>
+ <string name="logging_in">جاري تسجيل الدخول</string>
+ <string name="signing_up">جاري التسجيل</string>
+ <string name="vpn.button.turn.on">تشغيل</string>
+ <string name="vpn.button.turn.off">إيقاف</string>
+ <string name="vpn_button_turn_off_blocking">أوقف الحجب</string>
+ <string name="vpn_securely_routed">بيانات اتصالاتك يتم تمريرها بأمان من خلال:</string>
+ <string name="vpn_securely_routed_no_internet">لم يُعثر على اتصال انترنت، عندما يعود سيتم تمرير اتصالك بأمان من خلال:</string>
+ <string name="log_fragment_title">السجل</string>
+ <string name="vpn_fragment_title">الشبكة الافتراضية الخاصة</string>
+ <string name="navigation_drawer_open">افتح راسم التصفح</string>
+ <string name="navigation_drawer_close">أغلق راسم التصفح</string>
+ <string name="action_example">مثال لإجراء</string>
+ <string name="action_settings">الإعدادات</string>
+ <string name="void_vpn_establish">%s يحجب جميع اتصالات الإنترنت الخارجة.</string>
+ <string name="void_vpn_error_establish">فشل حجب جميع اتصالات الانترنت</string>
+ <string name="void_vpn_stopped">تم إيقاف حجب الاتصالات الخارجة.</string>
+ <string name="void_vpn_title">جاري حجب الاتصالات</string>
+ <string name="update_provider_details">قم بتحديث تفاصيل المزود</string>
+ <string name="update_certificate">قم بتحديث الشهادة</string>
+ <string name="warning_eip_json_corrupted">فشل تحديث ضبط مزود الخدمة.</string>
+ <string name="eip_json_corrupted_user_message">فشل تحديث ضبط مزود الخدمة. سجل دخول وأعد المحاولة.</string>
+ <string name="warning_client_parsing_error_gateways">لا يمكن التعرف على بوابة مزود الخدمة. من المحتمل أنها مضبوطة بطريقة خاطئة.</string>
+ <string name="warning_corrupted_provider_details">بيانات مزود الخدمة المخزنة فسدت. يمكنك تحديث %s (موصى به) أو تحديث بيانات مزود الخدمة باستخدام شهادة CA تجارية.</string>
+ <string name="warning_corrupted_provider_cert">شهادة مزود الخدمة المخزنة غير صالحة. يمكنك تحديث %s (موصى به) أو تحديث بيانات مزود الخدمة باستخدام شهادة CA تجارية.</string>
+ <string name="warning_expired_provider_cert">شهادة مزود الخدمة المخزنة انتهت مدتها. يمكنك تحديث %s (موصى به) أو تحديث بيانات مزود الخدمة باستخدام شهادة CA تجارية.</string>
+ <string name="downloading_vpn_certificate_failed">فشل تحميل شهادة VPN. أعد المحاولة أو اختر مزود خدمة آخر.</string>
+ <string name="save_battery">وفّر البطارية</string>
+ <string name="subtitle_save_battery">معطل في حالة استخدام نقطة اتصال VPN</string>
+ <string name="save_battery_message">اتصالات البيانات في الخلفية ستتوقف حين يكون هاتفك غير نشط.</string>
+ <string name="always_on_vpn">‏شبكة افتراضية خاصة (VPN) دائمة التشغيل</string>
+ <string name="subtitle_always_on_vpn">افتح إعدادات نظام الأندرويد</string>
+ <string name="tethering">نقطة اتصال شبكة خاصة افتراضية VPN</string>
+ <string name="ipv6Firewall">حظر الإصدار السادس من عناوين الإنترنت IPv6</string>
+ <string name="require_root">يتطلب صلاحية الجذر (الروت)</string>
+ <string name="show_experimental">عرض مزايا تجريبية</string>
+ <string name="hide_experimental">إخفاء الخصائص التجريبية</string>
+ <string name="experimental_features">خصائص تجريبية</string>
+ <string name="tethering_enabled_message">يُرجى التأكد من تفعيل خيار الربط من <![CDATA[1<b> إعدادات النظام أولا </b>]]> أولا.</string>
+ <string name="tethering_message">مشاركة اتصال الـ VPN الخاص بك مع الآخرين عبر:</string>
+ <string name="tethering_wifi">نقطة اتصال واي فاي</string>
+ <string name="tethering_usb">اتصال USB</string>
+ <string name="tethering_bluetooth">اتصال بلوتوث</string>
+ <string name="do_not_show_again">‮لا تظهر مجدداً</string>
+ <string name="always_on_vpn_user_message">لتفعيل الاتصال الدائم بالشبكة الافتراضية الخاصة في إعدادات آندرويد لل VPN، يجب النقر على أيقونة الضبط [img src] ومن ثمّ تشغيل \"شبكة ظاهريّة خاصّة (VPN) دائمة التشغيل\".</string>
+ <string name="always_on_blocking_vpn_user_message">لحماية خصوصيتكم على نحو أمثل ، يجب عليكم أيضا تفعيل خيار \"منع الاتصالات بدون الشبكة الافتراضية الخاصة\".</string>
+ <string name="donate_title">تبرّع</string>
+ <string name="donate_default_message">فضلا تبرع اليوم إذا كنت تُقدّر الاتصال الآمن المتوفر بسهولة سواءا للمستخدم النهائي ولمزود الخدمة.</string>
+ <string name="donate_message">LEAP تعتمد على التبرعات والمنح. فضلا تبرع اليوم إذا كنت تقدر الاتصال الآمن المتوفر بسهولة للمستخدم النهائي ومزود الخدمة.</string>
+ <string name="donate_button_remind_later">ذكرني لاحقا</string>
+ <string name="donate_button_donate">تبرّع</string>
+ <string name="obfuscated_connection">جاري استخدام اتصال مموه.</string>
+ <string name="obfuscated_connection_try">جارى محاولة استخدام اتصال مموه.</string>
+ <string name="nav_drawer_obfuscated_connection">استخدم الجسور</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">تخطى تصفية VPN</string>
+ <string name="warning_exclude_apps_message">إحذر استثناء التطبيقات من الشبكة الافتراضية الخاصة (VPN). هذا سيكشف هويتك ويعرضك للخطر.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="zero">%d لا يوجد تطبيقات غير محمية</item>
+ <item quantity="one">%d تطبيق واحد غير محمي</item>
+ <item quantity="two">%d تطبيقان غير محميان</item>
+ <item quantity="few">%d تطبيقات غير محمية</item>
+ <item quantity="many">%d تطبيق غير محمي</item>
+ <item quantity="other">%d تطبيق غير محمي</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s لا يمكنه الاتصال. من المحتمل ان اتصالات ال VPN محجوبة. هل تريد أن تحاول الاتصال ياستخدام الاتصالات المموهة؟</string>
+ <string name="warning_no_more_gateways_no_pt">%s لم نتمكن من الاتصال. هل تريد إعادة المحاولة؟</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s لا يمكنه الاتصال ياستخدام اتصالات VPN مموهة. هل تريد أن تحاول الاتصال باستخدام VPN عادية؟</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s تعذر الاتصال %2$s . هل تريد محاولة الاتصال تلقائيًا بأفضل موقع؟</string>
+ <string name="warning_option_try_best">جرّب الموقع الجغرافي الأفضل</string>
+ <string name="warning_option_try_pt">جرّب الاتصال المموه</string>
+ <string name="warning_option_try_ovpn">جرّب الاتصال العادي</string>
+ <string name="vpn_error_establish">فشل نظام أندرويد في تأسيس خدمة الشبكة الافتراضية الخاصة (VPN). </string>
+ <string name="root_permission_error">%s لا يمكن عمل مميزات مثل نقطة اتصال لشبكة خاصة افتراضية VPN أو جدار ناري للإصدار السادس من عنوان الإنترنت IPv6 بدون صلاحية الجذر (الروت).</string>
+ <string name="qs_enable_vpn">إبدأ%s</string>
+ <string name="version_update_found">انقر هنا لبدء التحميل.</string>
+ <string name="version_update_title">تم اكتشاف %s نسخة جديدة.</string>
+ <string name="version_update_apk_description">تحميل %s نسخة جديدة.</string>
+ <string name="version_update_download_title">نسخة جديدة %s تم تحميلها.</string>
+ <string name="version_update_download_description">انقر هنا لتثبيت التحديث.</string>
+ <string name="version_update_error_pgp_verification">خطأ في التحقق من صحة التوقيع. تجاهل التحميل.</string>
+ <string name="version_update_error">فشل التحديث.</string>
+ <string name="version_update_error_permissions">لاتوجد صلاحيات لتثبيت التطبيق.</string>
+ <string name="gateway_selection_title">اختار الموقع</string>
+ <string name="gateway_selection_recommended_location">الموقع المقترح</string>
+ <string name="gateway_selection_recommended">مقترح</string>
+ <string name="gateway_selection_manually">اختار يدوياً</string>
+ <string name="gateway_selection_automatic_location">اختار الاتصال الأفضل تلقائياً</string>
+ <string name="gateway_selection_automatic">تلقائي</string>
+ <string name="reconnecting">إعادة الاتصال...</string>
+ <string name="tor_starting">بدء جسور تجاوز الرقابة...</string>
+ <string name="tor_stopping">إيقاف الجسور</string>
+ <string name="tor_started">استخدام الجسور لتجاوز الرقابة</string>
+ <string name="log_conn_done_pt">ناقل قابل للوصل متصل</string>
+ <string name="log_conn_pt">ناقل قابل للوصل قيد الاتصال</string>
+ <string name="log_conn_done">متصل بعقدة التوجيه</string>
+ <string name="log_handshake">التفاوض على اتصال مع عقدة التوجيه</string>
+ <string name="log_handshake_done">تم التفاوض على الاتصال مع عقدة التوجيه</string>
+ <string name="log_onehop_create">ينشئ اتصالا مشفرا بالدليل</string>
+ <string name="log_requesting_status">طلب التوافق على حالة الشبكة</string>
+ <string name="log_loading_status">جارٍ تحميل توافق حالة الشبكة</string>
+ <string name="log_loading_keys">يحمل شهادات السلطة</string>
+ <string name="log_requesting_descriptors">السؤال عن واصفات عقدة التوجيه</string>
+ <string name="log_loading_descriptors">يجري تحميل واصفات عقدة التوجيه</string>
+ <string name="log_enough_dirinfo">تم تحميل معلومات الدليل الكافية لبناء المسارات</string>
+ <string name="log_ap_handshake_done">انتهى التفاوض بعقدة التوجيه لبناء المسارات</string>
+ <string name="log_circuit_create">ينشئ دائرة Tor</string>
+ <string name="log_done">يعمل</string>
+ <string name="channel_name_tor_service">خدمة الجسور%s</string>
+ <string name="channel_description_tor_service">يبلغ عن استخدام الجسور أثناء تهيئ %s.</string>
+ <string name="error_tor_timeout">فشل بدء الجسور. هل تريد إعادة المحاولة أو الاستمرار في اجراء اتصال آمن غير غامض %s؟</string>
+ <string name="retry_unobfuscated">أعد المحاولة بدون تشويش</string>
+ <string name="hide">إخفاء</string>
+ <string name="error_network_connection">%s ليس لديه اتصال بالإنترنت. يرجى التحقق من إعدادات WiFi والبيانات الخلوية.</string>
+ <string name="censorship_circumvention">تجاوز الرقابة</string>
+ <string name="use_snowflake">استخدم Snowflake</string>
+ <string name="snowflake_description">حماية عملية التهيئة ضد الرقابة.</string>
+ <string name="vpn_settings">إعدادات الشبكة الخاصة الافتراضية (VPN)</string>
+ <string name="prefer_udp">استخدم UDP إن كان متواجداً</string>
+ <string name="prefer_udp_subtitle">يمكن أن يكون UDP \"بروتوكول مخطط المستخدم\" أسرع وأفضل للبث، ولكنه لا يعمل مع جميع الشبكات.</string>
+ <string name="disabled_while_bridges_on">معطّل أثناء استخدام الجسور</string>
+ <string name="hint_bridges">فقط المواقع التي تدعم الجسور متاحة للاختيار</string>
+ <string name="option_disable_bridges">عطّل الجسور</string>
+ <string name="eip_state_insecure">الاتصال غير آمن</string>
+ <string name="connection_not_connected">من الممكن أن معلوماتك تتسرب لشركة الاتصالات أو الشبكة المحلية </string>
+ <string name="eip_state_no_network">لا يوجد إنترنت. عندما يتوفر الإنترنت، ستتصل تلقائياً إلى</string>
+ <string name="eip_state_blocking">%1$s يقوم بحجب الاتصال</string>
+ <string name="disabled_while_udp_on">معطّل في حال تشغيل UDP</string>
+ <string name="advanced_settings">إعدادات متقدمة</string>
+ <string name="cancel_connection">قطع الإتصال</string>
+ <string name="unknown_location">موقع مجهول</string>
+ <string name="splash_footer">تم تطويره بواسطة LEAP</string>
+ <string name="welcome">مرحبا!</string>
+ <string name="select_provider">تحديد مُزوِّدك</string>
+ <string name="provider_description_riseup">توفر Riseup أدوات اتصال عبر الإنترنت للأشخاص والمجموعات التي تعمل على التغيير الاجتماعي التحرري. نحن مشروع لخلق بدائل ديمقراطية وممارسة تقرير المصير من خلال التحكم في وسائل الاتصالات الآمنة الخاصة بنا.</string>
+ <string name="next">التالي</string>
+ <string name="add_provider_prompt">أدخل عنوان URL الخاص بموفر الخدمة هنا.</string>
+ <string name="invite_code_provider_description">يتيح لك Bitmask التواصل مع مزودي الخدمة عبر رمز أو كود دعوة خاص.</string>
+ <string name="invite_code_provider_prompt">أدخل رمزك هنا.</string>
+ <string name="qr_scanner_prompt">مسح رمز كيو آر</string>
+ <string name="provider_description_calyx">كاليكس Calyx هي منظمة تعليمية وبحثية غير ربحية مكرسة لدراسة واختبار وتطوير وتنفيذ تكنولوجيا وأدوات الخصوصية لتعزيز حرية الراي وحرية التعبير والمشاركة المدنية وحقوق الخصوصية على الإنترنت وفي صناعة الاتصالات المتنقلة.</string>
+ <string name="title_circumvention_setup">هل تحتاج إلى تجاوز الرقابة؟</string>
+ <string name="circumvention_setup_description">إذا كنت تعيش في مكان يخضع فيه الإنترنت للرقابة، فيمكنك استخدام خيارات التحايل على الرقابة للوصول إلى جميع خدمات الإنترنت. هذه الخيارات سوف تبطئ اتصالك!</string>
+ <string name="use_standard_vpn">استخدم معيار %s</string>
+ <string name="use_circumvention_tech">استخدام تقنية التحايل (أبطأ)</string>
+ <string name="description_configure_provider">للاتصال بمزود الخدمة الخاص بك، يقوم %1$s بجلب جميع معلومات التهيئة المطلوبة. يحدث هذا فقط أثناء الإعداد الأول.</string>
+ <string name="description_configure_provider_circumvention"> %1$s يحاول جمع كافة بيانات التهيئة المطلوبة من المُزوِّد. يحدث هذا فقط أثناء الإعداد الأول. لقد اخترت استخدام تقنية التجاوز، لذا قد يستغرق ذلك بعض الوقت.</string>
+ <string name="details">التفاصيل</string>
+ <string name="tor_status">حالة تور</string>
+ <string name="snowflake_status">حالة Snowflake</string>
+ <string name="snowflake_started">بدأ مستخدم Snowflake</string>
+ <string name="title_upcoming_connection_request">طلب اتصال القادم</string>
+ <string name="title_upcoming_notifications_request">طلب إشعارات القادمة</string>
+ <string name="title_setup_success">كل شيء جاهز!</string>
+ <string name="setup_success_description">انقر الزر ادناه للاتصال</string>
+ <string name="permission_rejected">تم رفض طلب ترخيص.</string>
+ <string name="login_not_supported">لا يدعم إصدار التطبيق الحالي عمليات تسجيل الدخول، وهو ما تحتاجه لتحديث شهادة VPN الخاصة بك لهذا المزود.</string>
+ <string name="select_language">اختر اللغة</string>
+ <string name="syntax_check">التحقق من البنية:</string>
+ <string name="validation_status_success">جيد</string>
+ <string name="validation_status_failure">سيء</string>
+ <string name="enter_invite_code">أدخل رمز الدعوة</string>
+ <string name="invalid_code">الرمز باطل</string>
+ <string name="automatic_bridge">تلقائي (مستحسن)</string>
+ <string name="automatic_bridge_description">ستتم محاولة الاتصال باستخدام أفضل الجسور والبروتوكولات المتاحة.</string>
+ <string name="manual_bridge">تهيئة يدوية</string>
+ <string name="manual_bridge_description">اختر جسور خاصة وبروتوكولات محددة</string>
+ <string name="censorship_circumvention_description">تتطلب التهيئة اليدوية فهماً تقنياً. توخَّ الحذر.</string>
+ <string name="discovery">اكشتاف</string>
+ <string name="discovery_description">يمكن لأجهزة الحجب أن تمنع الكشف عن معلومات التهيئة المهمة الصادرة عن مزودك. استخدم خاصية التحايل لتجاوز الحظر.</string>
+ <string name="automatically_select">اختيار تلقائي</string>
+ <string name="invite_proxy">وكيل دعوة</string>
+ <string name="tunnelling">نفقي</string>
+ <string name="tunnelling_description">يمكن لأجهزة الحجب أن تمنع الوصول إلى الإنترنت المفتوح. استخدم خاصية التحايل لتجاوز الحظر.</string>
+ <string name="port_hopping">القفز بين المنافذ</string>
+ <string name="port_hopping_description">تلجأ أدوات الحجب إلى تحليل حركة المرور لمنع الوصول إلى الإنترنت المفتوح. يمكن للقفز عبر المنافذ أن يصعّب هذه المهمة.</string>
</resources>
diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml
index 2cc74764..9c22663b 100644
--- a/app/src/main/res/values-az/strings.xml
+++ b/app/src/main/res/values-az/strings.xml
@@ -1,137 +1,137 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Təkrar</string>
- <string name="repository_url_text">Başlanğıc kodunu https://0xacab.org/leap/bitmask_android ünvanından əldə edə bilərsiniz</string>
- <string name="leap_tracker">Issue tracker available at https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Tərcümələri xoşlayır və qiymətləndirir. Bizim Transifex layihəsinə https://www.transifex.com/projects/p/bitmask/ səhifəsinə baxın.</string>
- <string name="switch_provider_menu_option">Provayderi dəyiş</string>
- <string name="info">Məlumat</string>
- <string name="show_connection_details">Qoşulma məlumatlarını göstər</string>
- <string name="routes_info">Routerlər: %s</string>
- <string name="routes_info6">IPv6 routerləri: %s</string>
- <string name="error_empty_username">İstifadəçi adı boş olmamalıdır.</string>
- <string name="cert_from_keystore">Sertifikat \'%s\' açar mağazasından verildi</string>
- <string name="provider_label">Provayder: </string>
- <string name="provider_label_none">Heç bir provayder konfiqurasiya yoxdur</string>
- <string name="status_unknown">Status naməlumdur. </string>
- <string name="eip_service_label">Şifrəli VPN İnternet qoşulub</string>
- <string name="configuration_wizard_title">Bir servis provayderini seçin</string>
- <string name="add_provider">Yeni provayderi əlavə et</string>
- <string name="introduce_new_provider">Yeni servis provayderini əlavə et</string>
- <string name="save">Saxla</string>
- <string name="new_provider_uri">Domen adı</string>
- <string name="valid_url_entered">URL etibarlıdır</string>
- <string name="not_valid_url_entered">Səhv olan URL</string>
- <string name="provider_details_title">Provayder məlumatı</string>
- <string name="use_anonymously_button">Anonim olaraq istifadə et</string>
- <string name="username_hint">istifadəçi ad</string>
- <string name="username_ask">Zəhmət olmasa istifadəçi adı daxil edin</string>
- <string name="password_ask">Zəhmət olmasa parolunuzu daxil edin </string>
- <string name="password_hint">parol</string>
- <string name="password_match">Parollar uyğun gəlir</string>
- <string name="password_mismatch">Parollar uyğun gəlmir</string>
- <string name="user_message">İstifadəçi mesajı</string>
- <string name="about_fragment_title">Haqqında</string>
- <string name="exclude_apps_fragment_title">VPN-dən istisna proqramlar</string>
- <string name="error_srp_math_error_user_message">Yenidən cəhd edin: Server səhvi</string>
- <string name="error_bad_user_password_user_message">Yanlış istifadəçi adı və ya parol</string>
- <string name="error_not_valid_password_user_message">Ən azı 8 simvol olmalıdır</string>
- <string name="error_client_http_user_message">Yenidən cəhd edin: Müştəri HTTP səhvi</string>
- <string name="error_io_exception_user_message">Yenidən cəhd edin: I/O səhv</string>
- <string name="error_json_exception_user_message">Yenidən cəhd edin: Serverdan gələn pis cavab</string>
- <string name="error_no_such_algorithm_exception_user_message">Şifrələmə alqoritmi tapılmadı. Xahiş edirik Android-ni yeniləyin!</string>
- <string name="signup_or_login_button">Qeydiyyat / Daxil ol</string>
- <string name="login_button">Daxil ol</string>
- <string name="login_to_profile">Profilə daxil ol</string>
- <string name="logout_button">Çıx</string>
- <string name="signup_button">Qeydiyyatdan keç</string>
- <string name="create_profile">Profil yarat</string>
- <string name="setup_provider">Provayderi quraşdırın</string>
- <string name="setup_error_title">Konfiqurasiya xətası</string>
- <string name="setup_error_configure_button">Konfiqurasiya</string>
- <string name="setup_error_close_button">Çıxış</string>
- <string name="setup_error_text">Seçilmiş provayder %s konfiqurasiya zaman bir səhv meydana gəldi.\ n\nSiz növbəti dəfə yenidən tənzimləmə və ya çıxış və provayder parametrlərini seçə bilər.</string>
- <string name="server_unreachable_message">Server ələçatmazdır, yenidən cəhd edin.</string>
- <string name="error.security.pinnedcertificate">Təhlükəsizlik xətası, tətbiqi yeniləyin və ya başqa bir provayder seçin.</string>
- <string name="malformed_url">Deyəsən bu provayder %s deyil.</string>
- <string name="certificate_error">Bu etibarlı provayder %s deyil.</string>
- <string name="service_is_down_error">Bu servis işini başa vurur. </string>
- <string name="configuring_provider">Provayderin konfiqurasiyası</string>
- <string name="incorrectly_downloaded_certificate_message">Anonim sertifikatınız yüklənməyib</string>
- <string name="downloading_certificate_message">VPN sertifikatını yükləmək</string>
- <string name="updating_certificate_message">VPN sertifikatının yenilənməsi</string>
- <string name="login.riseup.warning">Пользователи Riseup должны будут создать отдельную учетную запись для использования службы VPN</string>
- <string name="succesful_authentication_message">Tanınmış</string>
- <string name="authentication_failed_message">Kimlik təsdiqləməsi uğursuzdur</string>
- <string name="registration_failed_message">Qeydiyyat alınmadı</string>
- <string name="eip_status_start_pending">Təşəbbüslü əlaqə</string>
- <string name="eip_cancel_connect_title">Bağlantıı ləğv etmək? </string>
- <string name="eip_cancel_connect_text">Qoşulma cəhdi var. Siz onu ləğv etmək istəyirsiniz?</string>
- <string name="eip.warning.browser_inconsistency">VPN bağlantısını söndürmək? VPN söndürüldükdə, şəxsi məlumatlarınızı internet provayderinizə və ya yerli şəbəkəyə ötürə bilərsiniz.</string>
- <string name="eip_state_not_connected">İşləmir! Təhlükəli əlaqə!</string>
- <string name="eip_state_connected">Bağlantı təhlükəsizliyi</string>
- <string name="provider_problem">Görünür ki, provayderla problem var. </string>
- <string name="try_another_provider">Başqa bir provaydera müraciət etməyə çalışın. </string>
- <string name="default_username">Anonim</string>
- <string name="logging_in">Giriş</string>
- <string name="signing_up">Qeydiyyat</string>
- <string name="vpn.button.turn.on">Açıq</string>
- <string name="vpn.button.turn.off">Bağlı</string>
- <string name="vpn_button_turn_off_blocking">Bloku dayandır</string>
- <string name="vpn_securely_routed">Sizin trafik təhlükəsiz vasitə ilə yönləndiriləcək:</string>
- <string name="vpn_securely_routed_no_internet">İnternet yoxdur. Bağlantısı geri gəldiyi zaman aşkar, biz vasitəsilə təhlükəsiz trafik yönəldəcəyik:</string>
- <string name="log_fragment_title">Loq</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Naviqasiya drayveri aç</string>
- <string name="navigation_drawer_close">İdarəetmə panelini bağlayın</string>
- <string name="action_example">Fəaliyyət nümunəsi</string>
- <string name="action_settings">Tənzimləmələr</string>
- <string name="void_vpn_establish">%s bütün gedən internet trafikini blok etdirir.</string>
- <string name="void_vpn_stopped">Bütün gedən internet trafikini dayandırıldı. </string>
- <string name="void_vpn_title">Trafik kilidi</string>
- <string name="update_provider_details">Provayder məlumatlarının yenilənməsi</string>
- <string name="update_certificate">Sertifikatı yeniləyin</string>
- <string name="warning_eip_json_corrupted">Provayderı konfiqurasiyasınını yeniləməsi alınmadı.</string>
- <string name="eip_json_corrupted_user_message">Provayderı konfiqurasiya yeniləməsi allnmadı. Xahiş edirik yenidən cəhd etmək üçün daxil olun.</string>
- <string name="warning_client_parsing_error_gateways">Provayderin şlüzlərini tanımaq mümkün olmadı. Onlar düzgün düzəlməmiş ola bilər.</string>
- <string name="warning_corrupted_provider_details">Saxlanılan provayder məlumatları zədələnmişdir. Siz ya %s (tövsiyə olunur) yeniləyə və ya kommersiya CA sertifikatı ilə təchizatçı məlumatlarını yeniləyə bilərsiniz.</string>
- <string name="warning_corrupted_provider_cert">Saxlanılan provayder sertifikatı qəbuledilməzdir. Siz ya %s (tövsiyə olunur) yeniləmə və ya kommersiya CA sertifikatı istifadə edərək satıcı sertifikatı təkmilləşdirə bilər.</string>
- <string name="warning_expired_provider_cert">Provayderin saxlanılan sertifikatının qüvvədə olma müddəti başa çatmışdır. Siz ya %s (tövsiyə olunur) yeniləmə və ya kommersiya CA sertifikatı istifadə edərək provayder sertifikatı təkmilləşdirə bilərərsiniz.</string>
- <string name="downloading_vpn_certificate_failed">VPN sertifikatını yükləyə bilmədi. Yenidən cəhd edin və ya başqa bir provayder seçin.</string>
- <string name="vpn_certificate_is_invalid">VPN sertifikatı etibarsızdır. Yenisini yükləməyə çalışın.</string>
- <string name="vpn_certificate_user_message">VPN sertifikatı etibarsızdır. Yeni birini yükləmək üçün daxil olun.</string>
- <string name="save_battery">Enerji qənaəti</string>
- <string name="save_battery_message">Telefonunuz aktiv olmadıqda məlumat bağlantıları gözləmə rejimində olacaq.</string>
- <string name="always_on_vpn">Həmişə VPN-la</string>
- <string name="subtitle_always_on_vpn">Android tənzimatını açın</string>
- <string name="do_not_show_again">Bir daha görünməsin</string>
- <string name="always_on_vpn_user_message">Həmişə VPN-ni Android VPN parametrlərində aktivləşdirmək üçün [img src] düyməsini basın və açarı aktivləşdirin.</string>
- <string name="always_on_blocking_vpn_user_message">Gizliliyinizi optimal şəkildə qorumaq üçün \"VPN olmadan əlaqələri bloklayın\" seçimini də aktivləşdirməlisiniz.</string>
- <string name="donate_title">Maddi dəstək</string>
- <string name="donate_default_message">Xahiş edirik, həm son istifadəçi, həm də xidmət təminatçınız üçün asan olan təhlükəsiz əlaqəni qiymətləndirirsinizsə, bu gün bəxşiş edin.</string>
- <string name="donate_message">LEAP ianələr və qrantlardan asılıdır. Xahiş edirik, həm istifadəçi, həm də xidmət təminatçınız üçün asan olan təhlükəsiz əlaqəni qiymətləndirirsinizsə, bu gün bəxşiş edin.</string>
- <string name="donate_button_remind_later">Sonra yadıma sal</string>
- <string name="donate_button_donate">Maddi dəstək</string>
- <string name="obfuscated_connection">Confusing bağlantısı istifadə edir.</string>
- <string name="obfuscated_connection_try">Aldadıcı əlaqə qurmağa çalışır.</string>
- <string name="nav_drawer_obfuscated_connection">Körpü İstifadə Et</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">VPN filtrini keçmək</string>
- <string name="warning_exclude_apps_message">VPN-dən tətbiq istisna olmaqla diqqətli olun. Bu, şəxsiyyətinizi ortaya qoyacaq və təhlükəsizliyinizi təhlükəyə salacaq.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d müdafiəsiz proqram</item>
- <item quantity="other">%d müdafiəsiz proqram</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s qoşula bilmədi. VPN əlaqələrinin bloklanması mümkündür. Siz obfuksasiya əlaqələri istifadə edərək, qoşulmaq üçün cəhd etmək istəyirsiniz?</string>
- <string name="warning_no_more_gateways_no_pt">%s qoşula bilmədi. Siz yenidən cəhd etmək istəyirsiniz?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s obfuksasiya olunmuş VPN əlaqələri ilə əlaqə qura bilmədi. Standart VPN ilə əlaqə qurmağa cəhd etmək istəyirsiniz?</string>
- <string name="warning_option_try_pt">Obfuksasiya (çaşdırmaq) üçün cəhd edin</string>
- <string name="warning_option_try_ovpn">Standart əlaqəni cəhd edin</string>
- <string name="vpn_error_establish">Android VPN xidmətini qura bilmədi.</string>
- <string name="gateway_selection_automatic">Avtomatik</string>
- <string name="log_onehop_create">Şifrələnmiş kataloq əlaqəsinin yaradılması</string>
- <string name="log_loading_keys">Səlahiyyət sertifikatlarının yüklənməsi</string>
- <string name="log_circuit_create">Tor dövrəsinin yaradılması</string>
- <string name="log_done">İşləyir</string>
- <string name="hide">Gizlət</string>
- <string name="advanced_settings">Təkmilləşdirilmiş tənzimləmələr</string>
+ <string name="retry">Təkrar</string>
+ <string name="repository_url_text">Başlanğıc kodunu https://0xacab.org/leap/bitmask_android ünvanından əldə edə bilərsiniz</string>
+ <string name="leap_tracker">Issue tracker available at https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Tərcümələri xoşlayır və qiymətləndirir. Bizim Transifex layihəsinə https://www.transifex.com/projects/p/bitmask/ səhifəsinə baxın.</string>
+ <string name="switch_provider_menu_option">Provayderi dəyiş</string>
+ <string name="info">Məlumat</string>
+ <string name="show_connection_details">Qoşulma məlumatlarını göstər</string>
+ <string name="routes_info">Routerlər: %s</string>
+ <string name="routes_info6">IPv6 routerləri: %s</string>
+ <string name="error_empty_username">İstifadəçi adı boş olmamalıdır.</string>
+ <string name="cert_from_keystore">Sertifikat \'%s\' açar mağazasından verildi</string>
+ <string name="provider_label">Provayder: </string>
+ <string name="provider_label_none">Heç bir provayder konfiqurasiya yoxdur</string>
+ <string name="status_unknown">Status naməlumdur. </string>
+ <string name="eip_service_label">Şifrəli VPN İnternet qoşulub</string>
+ <string name="configuration_wizard_title">Bir servis provayderini seçin</string>
+ <string name="add_provider">Yeni provayderi əlavə et</string>
+ <string name="introduce_new_provider">Yeni servis provayderini əlavə et</string>
+ <string name="save">Saxla</string>
+ <string name="new_provider_uri">Domen adı</string>
+ <string name="valid_url_entered">URL etibarlıdır</string>
+ <string name="not_valid_url_entered">Səhv olan URL</string>
+ <string name="provider_details_title">Provayder məlumatı</string>
+ <string name="use_anonymously_button">Anonim olaraq istifadə et</string>
+ <string name="username_hint">istifadəçi ad</string>
+ <string name="username_ask">Zəhmət olmasa istifadəçi adı daxil edin</string>
+ <string name="password_ask">Zəhmət olmasa parolunuzu daxil edin </string>
+ <string name="password_hint">parol</string>
+ <string name="password_match">Parollar uyğun gəlir</string>
+ <string name="password_mismatch">Parollar uyğun gəlmir</string>
+ <string name="user_message">İstifadəçi mesajı</string>
+ <string name="about_fragment_title">Haqqında</string>
+ <string name="exclude_apps_fragment_title">VPN-dən istisna proqramlar</string>
+ <string name="error_srp_math_error_user_message">Yenidən cəhd edin: Server səhvi</string>
+ <string name="error_bad_user_password_user_message">Yanlış istifadəçi adı və ya parol</string>
+ <string name="error_not_valid_password_user_message">Ən azı 8 simvol olmalıdır</string>
+ <string name="error_client_http_user_message">Yenidən cəhd edin: Müştəri HTTP səhvi</string>
+ <string name="error_io_exception_user_message">Yenidən cəhd edin: I/O səhv</string>
+ <string name="error_json_exception_user_message">Yenidən cəhd edin: Serverdan gələn pis cavab</string>
+ <string name="error_no_such_algorithm_exception_user_message">Şifrələmə alqoritmi tapılmadı. Xahiş edirik Android-ni yeniləyin!</string>
+ <string name="signup_or_login_button">Qeydiyyat / Daxil ol</string>
+ <string name="login_button">Daxil ol</string>
+ <string name="login_to_profile">Profilə daxil ol</string>
+ <string name="logout_button">Çıx</string>
+ <string name="signup_button">Qeydiyyatdan keç</string>
+ <string name="create_profile">Profil yarat</string>
+ <string name="setup_provider">Provayderi quraşdırın</string>
+ <string name="setup_error_title">Konfiqurasiya xətası</string>
+ <string name="setup_error_configure_button">Konfiqurasiya</string>
+ <string name="setup_error_close_button">Çıxış</string>
+ <string name="setup_error_text">Seçilmiş provayder %s konfiqurasiya zaman bir səhv meydana gəldi.\ n\nSiz növbəti dəfə yenidən tənzimləmə və ya çıxış və provayder parametrlərini seçə bilər.</string>
+ <string name="server_unreachable_message">Server ələçatmazdır, yenidən cəhd edin.</string>
+ <string name="error.security.pinnedcertificate">Təhlükəsizlik xətası, tətbiqi yeniləyin və ya başqa bir provayder seçin.</string>
+ <string name="malformed_url">Deyəsən bu provayder %s deyil.</string>
+ <string name="certificate_error">Bu etibarlı provayder %s deyil.</string>
+ <string name="service_is_down_error">Bu servis işini başa vurur. </string>
+ <string name="configuring_provider">Provayderin konfiqurasiyası</string>
+ <string name="incorrectly_downloaded_certificate_message">Anonim sertifikatınız yüklənməyib</string>
+ <string name="downloading_certificate_message">VPN sertifikatını yükləmək</string>
+ <string name="updating_certificate_message">VPN sertifikatının yenilənməsi</string>
+ <string name="login.riseup.warning">Пользователи Riseup должны будут создать отдельную учетную запись для использования службы VPN</string>
+ <string name="succesful_authentication_message">Tanınmış</string>
+ <string name="authentication_failed_message">Kimlik təsdiqləməsi uğursuzdur</string>
+ <string name="registration_failed_message">Qeydiyyat alınmadı</string>
+ <string name="eip_status_start_pending">Təşəbbüslü əlaqə</string>
+ <string name="eip_cancel_connect_title">Bağlantıı ləğv etmək? </string>
+ <string name="eip_cancel_connect_text">Qoşulma cəhdi var. Siz onu ləğv etmək istəyirsiniz?</string>
+ <string name="eip.warning.browser_inconsistency">VPN bağlantısını söndürmək? VPN söndürüldükdə, şəxsi məlumatlarınızı internet provayderinizə və ya yerli şəbəkəyə ötürə bilərsiniz.</string>
+ <string name="eip_state_not_connected">İşləmir! Təhlükəli əlaqə!</string>
+ <string name="eip_state_connected">Bağlantı təhlükəsizliyi</string>
+ <string name="provider_problem">Görünür ki, provayderla problem var. </string>
+ <string name="try_another_provider">Başqa bir provaydera müraciət etməyə çalışın. </string>
+ <string name="default_username">Anonim</string>
+ <string name="logging_in">Giriş</string>
+ <string name="signing_up">Qeydiyyat</string>
+ <string name="vpn.button.turn.on">Açıq</string>
+ <string name="vpn.button.turn.off">Bağlı</string>
+ <string name="vpn_button_turn_off_blocking">Bloku dayandır</string>
+ <string name="vpn_securely_routed">Sizin trafik təhlükəsiz vasitə ilə yönləndiriləcək:</string>
+ <string name="vpn_securely_routed_no_internet">İnternet yoxdur. Bağlantısı geri gəldiyi zaman aşkar, biz vasitəsilə təhlükəsiz trafik yönəldəcəyik:</string>
+ <string name="log_fragment_title">Loq</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Naviqasiya drayveri aç</string>
+ <string name="navigation_drawer_close">İdarəetmə panelini bağlayın</string>
+ <string name="action_example">Fəaliyyət nümunəsi</string>
+ <string name="action_settings">Tənzimləmələr</string>
+ <string name="void_vpn_establish">%s bütün gedən internet trafikini blok etdirir.</string>
+ <string name="void_vpn_stopped">Bütün gedən internet trafikini dayandırıldı. </string>
+ <string name="void_vpn_title">Trafik kilidi</string>
+ <string name="update_provider_details">Provayder məlumatlarının yenilənməsi</string>
+ <string name="update_certificate">Sertifikatı yeniləyin</string>
+ <string name="warning_eip_json_corrupted">Provayderı konfiqurasiyasınını yeniləməsi alınmadı.</string>
+ <string name="eip_json_corrupted_user_message">Provayderı konfiqurasiya yeniləməsi allnmadı. Xahiş edirik yenidən cəhd etmək üçün daxil olun.</string>
+ <string name="warning_client_parsing_error_gateways">Provayderin şlüzlərini tanımaq mümkün olmadı. Onlar düzgün düzəlməmiş ola bilər.</string>
+ <string name="warning_corrupted_provider_details">Saxlanılan provayder məlumatları zədələnmişdir. Siz ya %s (tövsiyə olunur) yeniləyə və ya kommersiya CA sertifikatı ilə təchizatçı məlumatlarını yeniləyə bilərsiniz.</string>
+ <string name="warning_corrupted_provider_cert">Saxlanılan provayder sertifikatı qəbuledilməzdir. Siz ya %s (tövsiyə olunur) yeniləmə və ya kommersiya CA sertifikatı istifadə edərək satıcı sertifikatı təkmilləşdirə bilər.</string>
+ <string name="warning_expired_provider_cert">Provayderin saxlanılan sertifikatının qüvvədə olma müddəti başa çatmışdır. Siz ya %s (tövsiyə olunur) yeniləmə və ya kommersiya CA sertifikatı istifadə edərək provayder sertifikatı təkmilləşdirə bilərərsiniz.</string>
+ <string name="downloading_vpn_certificate_failed">VPN sertifikatını yükləyə bilmədi. Yenidən cəhd edin və ya başqa bir provayder seçin.</string>
+ <string name="vpn_certificate_is_invalid">VPN sertifikatı etibarsızdır. Yenisini yükləməyə çalışın.</string>
+ <string name="vpn_certificate_user_message">VPN sertifikatı etibarsızdır. Yeni birini yükləmək üçün daxil olun.</string>
+ <string name="save_battery">Enerji qənaəti</string>
+ <string name="save_battery_message">Telefonunuz aktiv olmadıqda məlumat bağlantıları gözləmə rejimində olacaq.</string>
+ <string name="always_on_vpn">Həmişə VPN-la</string>
+ <string name="subtitle_always_on_vpn">Android tənzimatını açın</string>
+ <string name="do_not_show_again">Bir daha görünməsin</string>
+ <string name="always_on_vpn_user_message">Həmişə VPN-ni Android VPN parametrlərində aktivləşdirmək üçün [img src] düyməsini basın və açarı aktivləşdirin.</string>
+ <string name="always_on_blocking_vpn_user_message">Gizliliyinizi optimal şəkildə qorumaq üçün \"VPN olmadan əlaqələri bloklayın\" seçimini də aktivləşdirməlisiniz.</string>
+ <string name="donate_title">Maddi dəstək</string>
+ <string name="donate_default_message">Xahiş edirik, həm son istifadəçi, həm də xidmət təminatçınız üçün asan olan təhlükəsiz əlaqəni qiymətləndirirsinizsə, bu gün bəxşiş edin.</string>
+ <string name="donate_message">LEAP ianələr və qrantlardan asılıdır. Xahiş edirik, həm istifadəçi, həm də xidmət təminatçınız üçün asan olan təhlükəsiz əlaqəni qiymətləndirirsinizsə, bu gün bəxşiş edin.</string>
+ <string name="donate_button_remind_later">Sonra yadıma sal</string>
+ <string name="donate_button_donate">Maddi dəstək</string>
+ <string name="obfuscated_connection">Confusing bağlantısı istifadə edir.</string>
+ <string name="obfuscated_connection_try">Aldadıcı əlaqə qurmağa çalışır.</string>
+ <string name="nav_drawer_obfuscated_connection">Körpü İstifadə Et</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">VPN filtrini keçmək</string>
+ <string name="warning_exclude_apps_message">VPN-dən tətbiq istisna olmaqla diqqətli olun. Bu, şəxsiyyətinizi ortaya qoyacaq və təhlükəsizliyinizi təhlükəyə salacaq.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d müdafiəsiz proqram</item>
+ <item quantity="other">%d müdafiəsiz proqram</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s qoşula bilmədi. VPN əlaqələrinin bloklanması mümkündür. Siz obfuksasiya əlaqələri istifadə edərək, qoşulmaq üçün cəhd etmək istəyirsiniz?</string>
+ <string name="warning_no_more_gateways_no_pt">%s qoşula bilmədi. Siz yenidən cəhd etmək istəyirsiniz?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s obfuksasiya olunmuş VPN əlaqələri ilə əlaqə qura bilmədi. Standart VPN ilə əlaqə qurmağa cəhd etmək istəyirsiniz?</string>
+ <string name="warning_option_try_pt">Obfuksasiya (çaşdırmaq) üçün cəhd edin</string>
+ <string name="warning_option_try_ovpn">Standart əlaqəni cəhd edin</string>
+ <string name="vpn_error_establish">Android VPN xidmətini qura bilmədi.</string>
+ <string name="gateway_selection_automatic">Avtomatik</string>
+ <string name="log_onehop_create">Şifrələnmiş kataloq əlaqəsinin yaradılması</string>
+ <string name="log_loading_keys">Səlahiyyət sertifikatlarının yüklənməsi</string>
+ <string name="log_circuit_create">Tor dövrəsinin yaradılması</string>
+ <string name="log_done">İşləyir</string>
+ <string name="hide">Gizlət</string>
+ <string name="advanced_settings">Təkmilləşdirilmiş tənzimləmələr</string>
</resources>
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index 78e2c4de..8c234580 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -1,41 +1,41 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Опитайте отново</string>
- <string name="switch_provider_menu_option">Превключи Доставчика</string>
- <string name="provider_label_none">Няма конфигуриран доставчик</string>
- <string name="status_unknown">Статус неизвестен.</string>
- <string name="save">Запази</string>
- <string name="new_provider_uri">Име на домейна</string>
- <string name="username_hint">потребителско име</string>
- <string name="username_ask">Моля въведете потребителско име</string>
- <string name="password_ask">Моля въведете вашата парола</string>
- <string name="password_hint">Парола</string>
- <string name="password_match">Паролоте съответстват</string>
- <string name="password_mismatch">Паролите не съвпадат</string>
- <string name="user_message">Съобщение за потребителя</string>
- <string name="about_fragment_title">Относно</string>
- <string name="login_button">Влизане</string>
- <string name="logout_button">Излизане</string>
- <string name="setup_error_title">Конфигурационна грешка </string>
- <string name="setup_error_configure_button">Конфигуриране</string>
- <string name="setup_error_close_button">Изход</string>
- <string name="succesful_authentication_message">Удостоверен</string>
- <string name="authentication_failed_message">Проверката за самоличност е неуспешна</string>
- <string name="eip_status_start_pending">Започване на връзка</string>
- <string name="logging_in">Влизане</string>
- <string name="log_fragment_title">Лог</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="action_settings">Настройки</string>
- <string name="tethering_wifi">Безжична точка за достъп</string>
- <string name="donate_title">Дарете</string>
- <string name="donate_button_donate">Дарете</string>
- <string name="nav_drawer_obfuscated_connection">Използвай Бриджове</string>
- <string name="gateway_selection_automatic">Автоматично</string>
- <string name="log_onehop_create">Осъществяване на връзка с криптираната директория</string>
- <string name="log_loading_keys">Зареждане на сертификати от достоверен източник</string>
- <string name="log_circuit_create">Осъществяване на Тор верига</string>
- <string name="log_done">Изпълнява се</string>
- <string name="hide">Скриване</string>
- <string name="advanced_settings">Разширени настройки</string>
- <string name="cancel_connection">Прекъсване</string>
+ <string name="retry">Опитайте отново</string>
+ <string name="switch_provider_menu_option">Превключи Доставчика</string>
+ <string name="provider_label_none">Няма конфигуриран доставчик</string>
+ <string name="status_unknown">Статус неизвестен.</string>
+ <string name="save">Запази</string>
+ <string name="new_provider_uri">Име на домейна</string>
+ <string name="username_hint">потребителско име</string>
+ <string name="username_ask">Моля въведете потребителско име</string>
+ <string name="password_ask">Моля въведете вашата парола</string>
+ <string name="password_hint">Парола</string>
+ <string name="password_match">Паролоте съответстват</string>
+ <string name="password_mismatch">Паролите не съвпадат</string>
+ <string name="user_message">Съобщение за потребителя</string>
+ <string name="about_fragment_title">Относно</string>
+ <string name="login_button">Влизане</string>
+ <string name="logout_button">Излизане</string>
+ <string name="setup_error_title">Конфигурационна грешка </string>
+ <string name="setup_error_configure_button">Конфигуриране</string>
+ <string name="setup_error_close_button">Изход</string>
+ <string name="succesful_authentication_message">Удостоверен</string>
+ <string name="authentication_failed_message">Проверката за самоличност е неуспешна</string>
+ <string name="eip_status_start_pending">Започване на връзка</string>
+ <string name="logging_in">Влизане</string>
+ <string name="log_fragment_title">Лог</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="action_settings">Настройки</string>
+ <string name="tethering_wifi">Безжична точка за достъп</string>
+ <string name="donate_title">Дарете</string>
+ <string name="donate_button_donate">Дарете</string>
+ <string name="nav_drawer_obfuscated_connection">Използвай Бриджове</string>
+ <string name="gateway_selection_automatic">Автоматично</string>
+ <string name="log_onehop_create">Осъществяване на връзка с криптираната директория</string>
+ <string name="log_loading_keys">Зареждане на сертификати от достоверен източник</string>
+ <string name="log_circuit_create">Осъществяване на Тор верига</string>
+ <string name="log_done">Изпълнява се</string>
+ <string name="hide">Скриване</string>
+ <string name="advanced_settings">Разширени настройки</string>
+ <string name="cancel_connection">Прекъсване</string>
</resources>
diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml
index 919717b3..03e86947 100644
--- a/app/src/main/res/values-bn/strings.xml
+++ b/app/src/main/res/values-bn/strings.xml
@@ -1,112 +1,112 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">আবার চেষ্টা করুন</string>
- <string name="repository_url_text">সোর্স কোড উপলব্ধ আছে- https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">ইস্যু ট্র্যাকার উপলব্ধ আছে- https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">অনুবাদে স্বাগত জানাই এবং প্রশংসা করি। আমাদের Transifex প্রকল্প দেখুন- https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">সুইচ প্রদানকারী</string>
- <string name="info">তথ্য</string>
- <string name="show_connection_details">সংযোগের তথ্য দেখান</string>
- <string name="routes_info">রুটসমূহ: %s</string>
- <string name="routes_info6">IPv6 রুটসমূহ: %s</string>
- <string name="error_empty_username">ব্যবহারকারীর নাম খালি রাখা যাবে না।</string>
- <string name="cert_from_keystore">সার্টিফিকেট \'%s\' কীস্টোর থেকে প্রাপ্ত</string>
- <string name="provider_label">সেবা প্রদানকারী:</string>
- <string name="provider_label_none">কোন সেবা প্রদানকারী কনফিগার করা হয়নি</string>
- <string name="status_unknown">অবস্থা অজানা</string>
- <string name="eip_service_label">এনক্রিপ্ট করা ভিপিএন ইন্টারনেট অ্যাক্সেস</string>
- <string name="configuration_wizard_title">একটি সেবা প্রদানকারী নির্বাচন করুন</string>
- <string name="add_provider">নতুন সেবা প্রদানকারী যোগ করুন</string>
- <string name="introduce_new_provider">নতুন সেবা প্রদানকারী যোগ করুন</string>
- <string name="save">সংরক্ষণ করুন</string>
- <string name="new_provider_uri">ডোমেইনের নাম</string>
- <string name="valid_url_entered">URL ঠিক আছে</string>
- <string name="not_valid_url_entered">Malformed URL</string>
- <string name="provider_details_title">প্রদানকারীর বিবরণ</string>
- <string name="use_anonymously_button">বেনামে ব্যবহার করুন</string>
- <string name="username_hint">ব্যবহারকারীর নাম</string>
- <string name="username_ask">আপনার ব্যবহারকারীর নাম লিখুন</string>
- <string name="password_ask">আপনার পাসওয়ার্ড দিন</string>
- <string name="password_hint">পাসওয়ার্ড</string>
- <string name="password_match">পাসওয়ার্ড মিল আছে</string>
- <string name="password_mismatch">পাসওয়ার্ড মিল নেই</string>
- <string name="user_message">ব্যবহারকারী বার্তা</string>
- <string name="about_fragment_title">সম্পর্কিত</string>
- <string name="error_srp_math_error_user_message">আবার চেষ্টা করুন: সার্ভারে ত্রুটি</string>
- <string name="error_bad_user_password_user_message">ভুল ব্যাবহারকারী অথবা পাসওয়ার্ড</string>
- <string name="error_not_valid_password_user_message">কমপক্ষে ৮ অক্ষরেরর হতে হবে</string>
- <string name="error_client_http_user_message">আবার চেষ্টা করুন: HTTP Client ত্রুটি</string>
- <string name="error_io_exception_user_message">আবার চেষ্টা করুন: I / O ত্রুটি</string>
- <string name="error_json_exception_user_message">আবার চেষ্টা করুন: সার্ভার থেকে খারাপ প্রতিক্রিয়া</string>
- <string name="error_no_such_algorithm_exception_user_message">এনক্রিপশন অ্যালগরিদম পাওয়া যায় নি। অ্যান্ড্রয়েড আপগ্রেড করুন!</string>
- <string name="signup_or_login_button">লগ ইন/ সাইন আপ</string>
- <string name="login_button">লগ ইন</string>
- <string name="login_to_profile">প্রোফাইলে লগ ইন করুন</string>
- <string name="logout_button">লগ আউট</string>
- <string name="signup_button">সাইন আপ</string>
- <string name="create_profile">প্রোফাইল তৈরি করুন</string>
- <string name="setup_provider">প্রদানকারী সেট আপ করুন</string>
- <string name="setup_error_title">কনফিগারেশন ত্রুটি</string>
- <string name="setup_error_configure_button">কনফিগারেশন</string>
- <string name="setup_error_close_button">বন্ধ</string>
- <string name="server_unreachable_message">সার্ভার অপ্রচলিত, আবার চেষ্টা করুন।</string>
- <string name="error.security.pinnedcertificate">নিরাপত্তা ত্রুটি, অ্যাপ্লিকেশন আপগ্রেড করুন বা অন্য প্রদানকারীর নির্বাচন করুন।</string>
- <string name="service_is_down_error">পরিষেবা বন্ধ আছে</string>
- <string name="configuring_provider">প্রদানকারী কনফিগারেশন</string>
- <string name="incorrectly_downloaded_certificate_message">আপনার অজ্ঞাত সার্টিফিকেট ডাউনলোড করা হয়নি</string>
- <string name="downloading_certificate_message">ভিপিএন সার্টিফিকেট ডাউনলোড করা হচ্ছে</string>
- <string name="updating_certificate_message">ভিপিএন সার্টিফিকেট আপডেট করা হচ্ছে</string>
- <string name="login.riseup.warning">Riseup ব্যবহারকারীদের VPN পরিষেবা ব্যবহার করার জন্য একটি পৃথক অ্যাকাউন্ট তৈরি করতে হবে</string>
- <string name="succesful_authentication_message">যাচাইকৃত</string>
- <string name="authentication_failed_message">যাচাই করতে ব্যার্থ হয়েছে</string>
- <string name="registration_failed_message">নিবন্থন করতে ব্যর্থ</string>
- <string name="eip_status_start_pending">সংযোগ আরম্ভ করা হচ্ছে</string>
- <string name="eip_cancel_connect_title">সংযোগ বাতিল করবেন?</string>
- <string name="eip_cancel_connect_text">একটি সংযোগ প্রচেষ্টা অব্যহত আছে। আপনি কি বাতিল করতে চান?</string>
- <string name="eip.warning.browser_inconsistency">ভিপিএন সংযোগ বন্ধ করতে চান? যখন ভিপিএন বন্ধ থাকে, আপনার ব্যক্তিগত তথ্য আপনার ইন্টারনেট সরবরাহকারী বা স্থানীয় নেটওয়ার্কে প্রকাশ্য হতে পারে।</string>
- <string name="eip_state_not_connected">চলমান নয়! অনিরাপদ সংযোগ!</string>
- <string name="eip_state_connected">সংযোগ নিরাপদ</string>
- <string name="provider_problem">এটি প্রদানকারীর সাথে একটি সমস্যা আছে মনে হচ্ছে।</string>
- <string name="try_another_provider">অন্য প্রদানকারী চেষ্টা করুন, অথবা নিজেদের সাথে যোগাযোগ করুন।</string>
- <string name="default_username">অজ্ঞাতপরিচয়</string>
- <string name="logging_in">লগ ইন হচ্ছে</string>
- <string name="signing_up">সাইন আপ হচ্ছে</string>
- <string name="vpn.button.turn.on">চালু করুন</string>
- <string name="vpn.button.turn.off">বন্ধ করুন</string>
- <string name="vpn_button_turn_off_blocking">বল্ক করা বন্ধ করুন</string>
- <string name="vpn_securely_routed">আপনার ট্র্যাফিক নিরাপদে রাউট করার মাধ্যম :</string>
- <string name="vpn_securely_routed_no_internet">কোনও ইন্টারনেট সংযোগ সনাক্ত হয়নি, এটি যখন আসবে তখন আমরা আপনার ট্র্যাফিককে সুরক্ষিতভাবে যে মাধ্যমে রাউট করব:</string>
- <string name="log_fragment_title">লগ</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">ন্যাভিগেশন ড্রয়ার খুলুন</string>
- <string name="navigation_drawer_close">ন্যাভিগেশন ড্রয়ার বন্ধ করুন</string>
- <string name="action_example">কাজের উদাহরণ</string>
- <string name="action_settings">সেটিংস</string>
- <string name="void_vpn_stopped">সমস্ত বহির্গামী ইন্টারনেট ট্রাফিক ব্লক করা বন্ধ।</string>
- <string name="void_vpn_title">ট্রাফিক ব্লক করা হচ্ছে</string>
- <string name="update_provider_details">প্রদানকারীর বিবরণ আপডেট করুন</string>
- <string name="update_certificate">সার্টিফিকেট আপডেট করুন</string>
- <string name="warning_eip_json_corrupted">আপডেট প্রদানকারী কনফিগারেশন ব্যর্থ হয়েছে।</string>
- <string name="eip_json_corrupted_user_message">আপডেট প্রদানকারী কনফিগারেশন ব্যর্থ হয়েছে। দয়া করে আবার চেষ্টা করুন।</string>
- <string name="downloading_vpn_certificate_failed">VPN সার্টিফিকেট ডাউনলোড ব্যর্থ হয়েছে। আবার চেষ্টা করুন অথবা অন্য প্রদানকারীর নির্বাচন করুন।</string>
- <string name="vpn_certificate_is_invalid">VPN সার্টিফিকেট অবৈধ। একটি নতুন ডাউনলোড করার চেষ্টা করুন।</string>
- <string name="vpn_certificate_user_message">VPN সার্টিফিকেট অবৈধ। একটি নতুন ডাউনলোড করতে লগ ইন করুন।</string>
- <string name="save_battery">ব্যাটারি সংরক্ষণ করুন</string>
- <string name="save_battery_message">আপনার ফোন নিষ্ক্রিয় থাকলে ব্যাকগ্রাউন্ড ডেটা সংযোগগুলি হাইবারনেট হবে।</string>
- <string name="always_on_vpn">সর্বদা সচল VPN</string>
- <string name="do_not_show_again">পূনরায় দেখাবেন না</string>
- <string name="always_on_vpn_user_message">Android VPN সেটিংসে সর্বদা সচল- VPN সক্ষম করতে কনফিগার আইকন [img src] ক্লিক করুন এবং সুইচ চালু করুন। \"</string>
- <string name="donate_title">দান করুন</string>
- <string name="donate_default_message">আপনি যদি নিরাপদ যোগাযোগের মূল্য দেন যা ব্যবহারকারী এবং পরিষেবা সরবরাহকারী উভয়ের জন্য সহজ তবে দান করুন।</string>
- <string name="donate_message">LEAP দান এবং অনুদানের উপর নির্ভরশীল। আপনি যদি নিরাপদ যোগাযোগের মূল্য দেন যা ব্যবহারকারী এবং পরিষেবা সরবরাহকারী উভয়ের জন্য সহজ তবে দান করুন।</string>
- <string name="donate_button_remind_later">আমাকে পরে মনে করিয়ে দিবেন</string>
- <string name="donate_button_donate">দান করুন</string>
- <string name="gateway_selection_automatic">স্বয়ংক্রিয়</string>
- <string name="log_onehop_create">Establishing an encrypted directory connection</string>
- <string name="log_loading_keys">কর্তৃপক্ষ সার্টিফিকেট লোড হচ্ছে</string>
- <string name="log_circuit_create">একটি টর্ক সার্কিট স্থাপন</string>
- <string name="log_done">চলমান</string>
- <string name="hide">লুকাও</string>
- <string name="advanced_settings">আডভান্সড সেটিংস</string>
- <string name="cancel_connection">সংযোগ বিচ্ছিন্ন করা</string>
+ <string name="retry">আবার চেষ্টা করুন</string>
+ <string name="repository_url_text">সোর্স কোড উপলব্ধ আছে- https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">ইস্যু ট্র্যাকার উপলব্ধ আছে- https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">অনুবাদে স্বাগত জানাই এবং প্রশংসা করি। আমাদের Transifex প্রকল্প দেখুন- https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">সুইচ প্রদানকারী</string>
+ <string name="info">তথ্য</string>
+ <string name="show_connection_details">সংযোগের তথ্য দেখান</string>
+ <string name="routes_info">রুটসমূহ: %s</string>
+ <string name="routes_info6">IPv6 রুটসমূহ: %s</string>
+ <string name="error_empty_username">ব্যবহারকারীর নাম খালি রাখা যাবে না।</string>
+ <string name="cert_from_keystore">সার্টিফিকেট \'%s\' কীস্টোর থেকে প্রাপ্ত</string>
+ <string name="provider_label">সেবা প্রদানকারী:</string>
+ <string name="provider_label_none">কোন সেবা প্রদানকারী কনফিগার করা হয়নি</string>
+ <string name="status_unknown">অবস্থা অজানা</string>
+ <string name="eip_service_label">এনক্রিপ্ট করা ভিপিএন ইন্টারনেট অ্যাক্সেস</string>
+ <string name="configuration_wizard_title">একটি সেবা প্রদানকারী নির্বাচন করুন</string>
+ <string name="add_provider">নতুন সেবা প্রদানকারী যোগ করুন</string>
+ <string name="introduce_new_provider">নতুন সেবা প্রদানকারী যোগ করুন</string>
+ <string name="save">সংরক্ষণ করুন</string>
+ <string name="new_provider_uri">ডোমেইনের নাম</string>
+ <string name="valid_url_entered">URL ঠিক আছে</string>
+ <string name="not_valid_url_entered">Malformed URL</string>
+ <string name="provider_details_title">প্রদানকারীর বিবরণ</string>
+ <string name="use_anonymously_button">বেনামে ব্যবহার করুন</string>
+ <string name="username_hint">ব্যবহারকারীর নাম</string>
+ <string name="username_ask">আপনার ব্যবহারকারীর নাম লিখুন</string>
+ <string name="password_ask">আপনার পাসওয়ার্ড দিন</string>
+ <string name="password_hint">পাসওয়ার্ড</string>
+ <string name="password_match">পাসওয়ার্ড মিল আছে</string>
+ <string name="password_mismatch">পাসওয়ার্ড মিল নেই</string>
+ <string name="user_message">ব্যবহারকারী বার্তা</string>
+ <string name="about_fragment_title">সম্পর্কিত</string>
+ <string name="error_srp_math_error_user_message">আবার চেষ্টা করুন: সার্ভারে ত্রুটি</string>
+ <string name="error_bad_user_password_user_message">ভুল ব্যাবহারকারী অথবা পাসওয়ার্ড</string>
+ <string name="error_not_valid_password_user_message">কমপক্ষে ৮ অক্ষরেরর হতে হবে</string>
+ <string name="error_client_http_user_message">আবার চেষ্টা করুন: HTTP Client ত্রুটি</string>
+ <string name="error_io_exception_user_message">আবার চেষ্টা করুন: I / O ত্রুটি</string>
+ <string name="error_json_exception_user_message">আবার চেষ্টা করুন: সার্ভার থেকে খারাপ প্রতিক্রিয়া</string>
+ <string name="error_no_such_algorithm_exception_user_message">এনক্রিপশন অ্যালগরিদম পাওয়া যায় নি। অ্যান্ড্রয়েড আপগ্রেড করুন!</string>
+ <string name="signup_or_login_button">লগ ইন/ সাইন আপ</string>
+ <string name="login_button">লগ ইন</string>
+ <string name="login_to_profile">প্রোফাইলে লগ ইন করুন</string>
+ <string name="logout_button">লগ আউট</string>
+ <string name="signup_button">সাইন আপ</string>
+ <string name="create_profile">প্রোফাইল তৈরি করুন</string>
+ <string name="setup_provider">প্রদানকারী সেট আপ করুন</string>
+ <string name="setup_error_title">কনফিগারেশন ত্রুটি</string>
+ <string name="setup_error_configure_button">কনফিগারেশন</string>
+ <string name="setup_error_close_button">বন্ধ</string>
+ <string name="server_unreachable_message">সার্ভার অপ্রচলিত, আবার চেষ্টা করুন।</string>
+ <string name="error.security.pinnedcertificate">নিরাপত্তা ত্রুটি, অ্যাপ্লিকেশন আপগ্রেড করুন বা অন্য প্রদানকারীর নির্বাচন করুন।</string>
+ <string name="service_is_down_error">পরিষেবা বন্ধ আছে</string>
+ <string name="configuring_provider">প্রদানকারী কনফিগারেশন</string>
+ <string name="incorrectly_downloaded_certificate_message">আপনার অজ্ঞাত সার্টিফিকেট ডাউনলোড করা হয়নি</string>
+ <string name="downloading_certificate_message">ভিপিএন সার্টিফিকেট ডাউনলোড করা হচ্ছে</string>
+ <string name="updating_certificate_message">ভিপিএন সার্টিফিকেট আপডেট করা হচ্ছে</string>
+ <string name="login.riseup.warning">Riseup ব্যবহারকারীদের VPN পরিষেবা ব্যবহার করার জন্য একটি পৃথক অ্যাকাউন্ট তৈরি করতে হবে</string>
+ <string name="succesful_authentication_message">যাচাইকৃত</string>
+ <string name="authentication_failed_message">যাচাই করতে ব্যার্থ হয়েছে</string>
+ <string name="registration_failed_message">নিবন্থন করতে ব্যর্থ</string>
+ <string name="eip_status_start_pending">সংযোগ আরম্ভ করা হচ্ছে</string>
+ <string name="eip_cancel_connect_title">সংযোগ বাতিল করবেন?</string>
+ <string name="eip_cancel_connect_text">একটি সংযোগ প্রচেষ্টা অব্যহত আছে। আপনি কি বাতিল করতে চান?</string>
+ <string name="eip.warning.browser_inconsistency">ভিপিএন সংযোগ বন্ধ করতে চান? যখন ভিপিএন বন্ধ থাকে, আপনার ব্যক্তিগত তথ্য আপনার ইন্টারনেট সরবরাহকারী বা স্থানীয় নেটওয়ার্কে প্রকাশ্য হতে পারে।</string>
+ <string name="eip_state_not_connected">চলমান নয়! অনিরাপদ সংযোগ!</string>
+ <string name="eip_state_connected">সংযোগ নিরাপদ</string>
+ <string name="provider_problem">এটি প্রদানকারীর সাথে একটি সমস্যা আছে মনে হচ্ছে।</string>
+ <string name="try_another_provider">অন্য প্রদানকারী চেষ্টা করুন, অথবা নিজেদের সাথে যোগাযোগ করুন।</string>
+ <string name="default_username">অজ্ঞাতপরিচয়</string>
+ <string name="logging_in">লগ ইন হচ্ছে</string>
+ <string name="signing_up">সাইন আপ হচ্ছে</string>
+ <string name="vpn.button.turn.on">চালু করুন</string>
+ <string name="vpn.button.turn.off">বন্ধ করুন</string>
+ <string name="vpn_button_turn_off_blocking">বল্ক করা বন্ধ করুন</string>
+ <string name="vpn_securely_routed">আপনার ট্র্যাফিক নিরাপদে রাউট করার মাধ্যম :</string>
+ <string name="vpn_securely_routed_no_internet">কোনও ইন্টারনেট সংযোগ সনাক্ত হয়নি, এটি যখন আসবে তখন আমরা আপনার ট্র্যাফিককে সুরক্ষিতভাবে যে মাধ্যমে রাউট করব:</string>
+ <string name="log_fragment_title">লগ</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">ন্যাভিগেশন ড্রয়ার খুলুন</string>
+ <string name="navigation_drawer_close">ন্যাভিগেশন ড্রয়ার বন্ধ করুন</string>
+ <string name="action_example">কাজের উদাহরণ</string>
+ <string name="action_settings">সেটিংস</string>
+ <string name="void_vpn_stopped">সমস্ত বহির্গামী ইন্টারনেট ট্রাফিক ব্লক করা বন্ধ।</string>
+ <string name="void_vpn_title">ট্রাফিক ব্লক করা হচ্ছে</string>
+ <string name="update_provider_details">প্রদানকারীর বিবরণ আপডেট করুন</string>
+ <string name="update_certificate">সার্টিফিকেট আপডেট করুন</string>
+ <string name="warning_eip_json_corrupted">আপডেট প্রদানকারী কনফিগারেশন ব্যর্থ হয়েছে।</string>
+ <string name="eip_json_corrupted_user_message">আপডেট প্রদানকারী কনফিগারেশন ব্যর্থ হয়েছে। দয়া করে আবার চেষ্টা করুন।</string>
+ <string name="downloading_vpn_certificate_failed">VPN সার্টিফিকেট ডাউনলোড ব্যর্থ হয়েছে। আবার চেষ্টা করুন অথবা অন্য প্রদানকারীর নির্বাচন করুন।</string>
+ <string name="vpn_certificate_is_invalid">VPN সার্টিফিকেট অবৈধ। একটি নতুন ডাউনলোড করার চেষ্টা করুন।</string>
+ <string name="vpn_certificate_user_message">VPN সার্টিফিকেট অবৈধ। একটি নতুন ডাউনলোড করতে লগ ইন করুন।</string>
+ <string name="save_battery">ব্যাটারি সংরক্ষণ করুন</string>
+ <string name="save_battery_message">আপনার ফোন নিষ্ক্রিয় থাকলে ব্যাকগ্রাউন্ড ডেটা সংযোগগুলি হাইবারনেট হবে।</string>
+ <string name="always_on_vpn">সর্বদা সচল VPN</string>
+ <string name="do_not_show_again">পূনরায় দেখাবেন না</string>
+ <string name="always_on_vpn_user_message">Android VPN সেটিংসে সর্বদা সচল- VPN সক্ষম করতে কনফিগার আইকন [img src] ক্লিক করুন এবং সুইচ চালু করুন। \"</string>
+ <string name="donate_title">দান করুন</string>
+ <string name="donate_default_message">আপনি যদি নিরাপদ যোগাযোগের মূল্য দেন যা ব্যবহারকারী এবং পরিষেবা সরবরাহকারী উভয়ের জন্য সহজ তবে দান করুন।</string>
+ <string name="donate_message">LEAP দান এবং অনুদানের উপর নির্ভরশীল। আপনি যদি নিরাপদ যোগাযোগের মূল্য দেন যা ব্যবহারকারী এবং পরিষেবা সরবরাহকারী উভয়ের জন্য সহজ তবে দান করুন।</string>
+ <string name="donate_button_remind_later">আমাকে পরে মনে করিয়ে দিবেন</string>
+ <string name="donate_button_donate">দান করুন</string>
+ <string name="gateway_selection_automatic">স্বয়ংক্রিয়</string>
+ <string name="log_onehop_create">Establishing an encrypted directory connection</string>
+ <string name="log_loading_keys">কর্তৃপক্ষ সার্টিফিকেট লোড হচ্ছে</string>
+ <string name="log_circuit_create">একটি টর্ক সার্কিট স্থাপন</string>
+ <string name="log_done">চলমান</string>
+ <string name="hide">লুকাও</string>
+ <string name="advanced_settings">আডভান্সড সেটিংস</string>
+ <string name="cancel_connection">সংযোগ বিচ্ছিন্ন করা</string>
</resources>
diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml
index 41d378ab..6c1af3e7 100644
--- a/app/src/main/res/values-br/strings.xml
+++ b/app/src/main/res/values-br/strings.xml
@@ -1,99 +1,99 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Adklask</string>
- <string name="repository_url_text">Kod mammenn hegerz war https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Heulier kudennoù hegerz war https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Ouzhpenn mat e vez degemeret an troidigezhioù. Gwelet hor raktres Transifex war https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Pourvezer Switch</string>
- <string name="info">Titou</string>
- <string name="show_connection_details">Diskouez munudoù ar c\'hevreañ</string>
- <string name="routes_info">Hentoù: %s</string>
- <string name="routes_info6">Hentoù IPv6: %s</string>
- <string name="error_empty_username">An anv-implijer na rank ket bezañ goullo.</string>
- <string name="cert_from_keystore">Kaout un testeni \'%s\' diwar Keystore</string>
- <string name="provider_label">Pourvezer:</string>
- <string name="provider_label_none">Pourvezer kefluniet ebet</string>
- <string name="status_unknown">Statud dianav.</string>
- <string name="eip_service_label">Moned internet VPN rineget</string>
- <string name="configuration_wizard_title">Diuzit ur pourvezer servijoù</string>
- <string name="add_provider">Ouzhpennañ ur pourvezer nevez</string>
- <string name="introduce_new_provider">Ouzhpennañ ur pourvezer servijoù nevez</string>
- <string name="save">Enrollañ</string>
- <string name="new_provider_uri">Anv domani</string>
- <string name="valid_url_entered">Mat eo an URL</string>
- <string name="not_valid_url_entered">URL distummet</string>
- <string name="provider_details_title">Munudoù pourvezer</string>
- <string name="use_anonymously_button">Implijout en un doare dianv</string>
- <string name="username_hint">anv-implijer</string>
- <string name="username_ask">Ebarzhit hoc\'h anv-implijer mar plij</string>
- <string name="password_ask">Ebarzhit ho ker-tremen mar plij</string>
- <string name="password_hint">ger-tremen</string>
- <string name="password_match">Klotañ a ra ar gerioù-tremen</string>
- <string name="password_mismatch">Ne genglot ket ar gerioù-tremen</string>
- <string name="user_message">Kemennadenn an implijer</string>
- <string name="about_fragment_title">Diwar-benn</string>
- <string name="error_client_http_user_message">Klaskit en-dro: Fazi pratik HTTP</string>
- <string name="error_io_exception_user_message">Klaskit en-dro: Fazi I/O</string>
- <string name="error_json_exception_user_message">Klaskit en-dro: Respont fall a-berzh ar servijer</string>
- <string name="error_no_such_algorithm_exception_user_message">Algoritm sifradur digavus. Hizivait Android mar plij!</string>
- <string name="signup_or_login_button">Marilhañ/Kevreañ</string>
- <string name="login_button">Marilhañ</string>
- <string name="login_to_profile">Kevreañ ouzh ar profil</string>
- <string name="logout_button">Divarilhañ</string>
- <string name="signup_button">Digevreañ</string>
- <string name="create_profile">Krouiñ ar profil</string>
- <string name="setup_provider">Keflunit ar pourvezer</string>
- <string name="setup_error_title">Fazi kefluniadur</string>
- <string name="setup_error_configure_button">Kefluniañ</string>
- <string name="setup_error_close_button">Kuitaat</string>
- <string name="server_unreachable_message">Didizhus ez eo ar servijer, klaskit en-dro mar plij.</string>
- <string name="error.security.pinnedcertificate">Fazi surentez, hizivait an arload pe dibabit ur pourvezer all.</string>
- <string name="service_is_down_error">Bout eo ar servij.</string>
- <string name="configuring_provider">O kefluniañ ar pourvezer</string>
- <string name="downloading_certificate_message">O pellgargañ an testeni VPN</string>
- <string name="updating_certificate_message">Hoc\'h hizivaat ho testoni VPN</string>
- <string name="login.riseup.warning">Implijerien Riseup o do ezhomm krouiñ ur gont dispartiet evit implijout ar servijoù VPN</string>
- <string name="eip_status_start_pending">Loc\'hañ ar c\'hevreadur</string>
- <string name="eip_cancel_connect_title">Nullañ ar c\'hevreañ?</string>
- <string name="eip_cancel_connect_text">Bez ez eus ur glaskadenn gevreañ war ober. C\'hoant ho peus da nullañ anezhi?</string>
- <string name="eip.warning.browser_inconsistency">Lazhañ ar c\'hevreadur VPN? Pa vez lazhet ar VPN, gellout a reer treuzkas titouroù personel d\'ho pourvezer kenrouedadel pe ho rouedad lec\'hel.</string>
- <string name="eip_state_not_connected">N\'a ket mont en-dro! Kevreadur nann-suraet!</string>
- <string name="provider_problem">War a-seblant ez eus ur gudenn gant ar pourvezer.</string>
- <string name="try_another_provider">Klaskit en-dro gant ur pourvezer all, pe kit e derempred ouzh ho re.</string>
- <string name="default_username">Anonymous</string>
- <string name="logging_in">O kevreañ</string>
- <string name="signing_up">O tigevreañ</string>
- <string name="vpn.button.turn.on">Enaouiñ</string>
- <string name="vpn.button.turn.off">Lazhañ</string>
- <string name="vpn_button_turn_off_blocking">Herzel ar stankadur</string>
- <string name="vpn_securely_routed">Ho froud a zo kaset en un doare suraet dre:</string>
- <string name="vpn_securely_routed_no_internet">N\'eus diguzhet kevreadur ebet, ur wech ma tistroio, kas a reomp ho froud e surentez dre:</string>
- <string name="log_fragment_title">Renabl</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Digeriñ an diretenn verdeiñ</string>
- <string name="navigation_drawer_close">Serriñ an diretenn verdeiñ</string>
- <string name="action_example">Skouer obererezh</string>
- <string name="action_settings">Arventennoù</string>
- <string name="void_vpn_stopped">Herzel da stankañ ar froud genrouedadel ezvont a-bezh.</string>
- <string name="void_vpn_title">Stankañ ar froud</string>
- <string name="update_provider_details">Hizivaat munudoù ar pourvezer</string>
- <string name="update_certificate">Hizivaat an testoni</string>
- <string name="warning_eip_json_corrupted">C\'hwitet ez eus bet war hizivadur ar c\'hefluniadur ar pourvezer.</string>
- <string name="eip_json_corrupted_user_message">C\'hwitet ez eus bet war hizivadur ar c\'hefluniadur ar pourvezer. Kevreit evit klask en-dro mar plij.</string>
- <string name="downloading_vpn_certificate_failed">En ur bellgargañ un testeni VPN a zo c\'hwitet. Klaskit en-dro pe dibabit ur pourvezer all.</string>
- <string name="vpn_certificate_is_invalid">Neket mat an testeni VPN. Klaskit pellgargañ unan nevez.</string>
- <string name="vpn_certificate_user_message">Neket mat an testeni VPN. Kevreit evit pellgargañ unan nevez mar plij.</string>
- <string name="save_battery">Espern bateri</string>
- <string name="save_battery_message">Ar c\'hevreadurioù roadennoù drekleur a c\'hoañvo pa vo dioberiant ho pellgomzer.</string>
- <string name="always_on_vpn">VPN enaouet bepred</string>
- <string name="always_on_vpn_user_message">Evit enaouiñ ar VPN enaouet bepred en arventennoù VPN evit Android, klikit war an arlun kefluniañ [img src] hag enaouit ar c\'homutor.</string>
- <string name="donate_title">Reiñ arc\'hant</string>
- <string name="donate_default_message">Roit arc\'hant hiziv mar plij ma roit un dalvoudegezh d\'ar c\'hehenterezhioù suraet aes d\'ober ganto evit an implijer fin hag ar pourvezer servijoù.</string>
- <string name="donate_message">LEAP a zepand eus ar roadennoù-arc\'hant hag ar sikourioù. Roit arc\'hant hiziv mar plij ma roit un dalvoudegezh d\'ar c\'hehenterezhioù suraet aes d\'ober ganto evit an implijer fin hag ar pourvezer servijoù.</string>
- <string name="donate_button_remind_later">Adkas da soñj din</string>
- <string name="donate_button_donate">Reiñ arc\'hant</string>
- <string name="gateway_selection_automatic">Emgefreek</string>
- <string name="log_done">O vont en-dro</string>
- <string name="hide">Kuzhaat</string>
- <string name="advanced_settings">Arventennoù araokaet</string>
+ <string name="retry">Adklask</string>
+ <string name="repository_url_text">Kod mammenn hegerz war https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Heulier kudennoù hegerz war https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Ouzhpenn mat e vez degemeret an troidigezhioù. Gwelet hor raktres Transifex war https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Pourvezer Switch</string>
+ <string name="info">Titou</string>
+ <string name="show_connection_details">Diskouez munudoù ar c\'hevreañ</string>
+ <string name="routes_info">Hentoù: %s</string>
+ <string name="routes_info6">Hentoù IPv6: %s</string>
+ <string name="error_empty_username">An anv-implijer na rank ket bezañ goullo.</string>
+ <string name="cert_from_keystore">Kaout un testeni \'%s\' diwar Keystore</string>
+ <string name="provider_label">Pourvezer:</string>
+ <string name="provider_label_none">Pourvezer kefluniet ebet</string>
+ <string name="status_unknown">Statud dianav.</string>
+ <string name="eip_service_label">Moned internet VPN rineget</string>
+ <string name="configuration_wizard_title">Diuzit ur pourvezer servijoù</string>
+ <string name="add_provider">Ouzhpennañ ur pourvezer nevez</string>
+ <string name="introduce_new_provider">Ouzhpennañ ur pourvezer servijoù nevez</string>
+ <string name="save">Enrollañ</string>
+ <string name="new_provider_uri">Anv domani</string>
+ <string name="valid_url_entered">Mat eo an URL</string>
+ <string name="not_valid_url_entered">URL distummet</string>
+ <string name="provider_details_title">Munudoù pourvezer</string>
+ <string name="use_anonymously_button">Implijout en un doare dianv</string>
+ <string name="username_hint">anv-implijer</string>
+ <string name="username_ask">Ebarzhit hoc\'h anv-implijer mar plij</string>
+ <string name="password_ask">Ebarzhit ho ker-tremen mar plij</string>
+ <string name="password_hint">ger-tremen</string>
+ <string name="password_match">Klotañ a ra ar gerioù-tremen</string>
+ <string name="password_mismatch">Ne genglot ket ar gerioù-tremen</string>
+ <string name="user_message">Kemennadenn an implijer</string>
+ <string name="about_fragment_title">Diwar-benn</string>
+ <string name="error_client_http_user_message">Klaskit en-dro: Fazi pratik HTTP</string>
+ <string name="error_io_exception_user_message">Klaskit en-dro: Fazi I/O</string>
+ <string name="error_json_exception_user_message">Klaskit en-dro: Respont fall a-berzh ar servijer</string>
+ <string name="error_no_such_algorithm_exception_user_message">Algoritm sifradur digavus. Hizivait Android mar plij!</string>
+ <string name="signup_or_login_button">Marilhañ/Kevreañ</string>
+ <string name="login_button">Marilhañ</string>
+ <string name="login_to_profile">Kevreañ ouzh ar profil</string>
+ <string name="logout_button">Divarilhañ</string>
+ <string name="signup_button">Digevreañ</string>
+ <string name="create_profile">Krouiñ ar profil</string>
+ <string name="setup_provider">Keflunit ar pourvezer</string>
+ <string name="setup_error_title">Fazi kefluniadur</string>
+ <string name="setup_error_configure_button">Kefluniañ</string>
+ <string name="setup_error_close_button">Kuitaat</string>
+ <string name="server_unreachable_message">Didizhus ez eo ar servijer, klaskit en-dro mar plij.</string>
+ <string name="error.security.pinnedcertificate">Fazi surentez, hizivait an arload pe dibabit ur pourvezer all.</string>
+ <string name="service_is_down_error">Bout eo ar servij.</string>
+ <string name="configuring_provider">O kefluniañ ar pourvezer</string>
+ <string name="downloading_certificate_message">O pellgargañ an testeni VPN</string>
+ <string name="updating_certificate_message">Hoc\'h hizivaat ho testoni VPN</string>
+ <string name="login.riseup.warning">Implijerien Riseup o do ezhomm krouiñ ur gont dispartiet evit implijout ar servijoù VPN</string>
+ <string name="eip_status_start_pending">Loc\'hañ ar c\'hevreadur</string>
+ <string name="eip_cancel_connect_title">Nullañ ar c\'hevreañ?</string>
+ <string name="eip_cancel_connect_text">Bez ez eus ur glaskadenn gevreañ war ober. C\'hoant ho peus da nullañ anezhi?</string>
+ <string name="eip.warning.browser_inconsistency">Lazhañ ar c\'hevreadur VPN? Pa vez lazhet ar VPN, gellout a reer treuzkas titouroù personel d\'ho pourvezer kenrouedadel pe ho rouedad lec\'hel.</string>
+ <string name="eip_state_not_connected">N\'a ket mont en-dro! Kevreadur nann-suraet!</string>
+ <string name="provider_problem">War a-seblant ez eus ur gudenn gant ar pourvezer.</string>
+ <string name="try_another_provider">Klaskit en-dro gant ur pourvezer all, pe kit e derempred ouzh ho re.</string>
+ <string name="default_username">Anonymous</string>
+ <string name="logging_in">O kevreañ</string>
+ <string name="signing_up">O tigevreañ</string>
+ <string name="vpn.button.turn.on">Enaouiñ</string>
+ <string name="vpn.button.turn.off">Lazhañ</string>
+ <string name="vpn_button_turn_off_blocking">Herzel ar stankadur</string>
+ <string name="vpn_securely_routed">Ho froud a zo kaset en un doare suraet dre:</string>
+ <string name="vpn_securely_routed_no_internet">N\'eus diguzhet kevreadur ebet, ur wech ma tistroio, kas a reomp ho froud e surentez dre:</string>
+ <string name="log_fragment_title">Renabl</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Digeriñ an diretenn verdeiñ</string>
+ <string name="navigation_drawer_close">Serriñ an diretenn verdeiñ</string>
+ <string name="action_example">Skouer obererezh</string>
+ <string name="action_settings">Arventennoù</string>
+ <string name="void_vpn_stopped">Herzel da stankañ ar froud genrouedadel ezvont a-bezh.</string>
+ <string name="void_vpn_title">Stankañ ar froud</string>
+ <string name="update_provider_details">Hizivaat munudoù ar pourvezer</string>
+ <string name="update_certificate">Hizivaat an testoni</string>
+ <string name="warning_eip_json_corrupted">C\'hwitet ez eus bet war hizivadur ar c\'hefluniadur ar pourvezer.</string>
+ <string name="eip_json_corrupted_user_message">C\'hwitet ez eus bet war hizivadur ar c\'hefluniadur ar pourvezer. Kevreit evit klask en-dro mar plij.</string>
+ <string name="downloading_vpn_certificate_failed">En ur bellgargañ un testeni VPN a zo c\'hwitet. Klaskit en-dro pe dibabit ur pourvezer all.</string>
+ <string name="vpn_certificate_is_invalid">Neket mat an testeni VPN. Klaskit pellgargañ unan nevez.</string>
+ <string name="vpn_certificate_user_message">Neket mat an testeni VPN. Kevreit evit pellgargañ unan nevez mar plij.</string>
+ <string name="save_battery">Espern bateri</string>
+ <string name="save_battery_message">Ar c\'hevreadurioù roadennoù drekleur a c\'hoañvo pa vo dioberiant ho pellgomzer.</string>
+ <string name="always_on_vpn">VPN enaouet bepred</string>
+ <string name="always_on_vpn_user_message">Evit enaouiñ ar VPN enaouet bepred en arventennoù VPN evit Android, klikit war an arlun kefluniañ [img src] hag enaouit ar c\'homutor.</string>
+ <string name="donate_title">Reiñ arc\'hant</string>
+ <string name="donate_default_message">Roit arc\'hant hiziv mar plij ma roit un dalvoudegezh d\'ar c\'hehenterezhioù suraet aes d\'ober ganto evit an implijer fin hag ar pourvezer servijoù.</string>
+ <string name="donate_message">LEAP a zepand eus ar roadennoù-arc\'hant hag ar sikourioù. Roit arc\'hant hiziv mar plij ma roit un dalvoudegezh d\'ar c\'hehenterezhioù suraet aes d\'ober ganto evit an implijer fin hag ar pourvezer servijoù.</string>
+ <string name="donate_button_remind_later">Adkas da soñj din</string>
+ <string name="donate_button_donate">Reiñ arc\'hant</string>
+ <string name="gateway_selection_automatic">Emgefreek</string>
+ <string name="log_done">O vont en-dro</string>
+ <string name="hide">Kuzhaat</string>
+ <string name="advanced_settings">Arventennoù araokaet</string>
</resources>
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index d0413585..eed33414 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -1,160 +1,160 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Reintenta</string>
- <string name="repository_url_text">El codi font està disponible a https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">El seguidor d\'incidències està disponible a https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Les traduccions són benvingudes i apreciades. Vegeu el nostre projecte Transifex a https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Canvia el proveïdor</string>
- <string name="info">info</string>
- <string name="show_connection_details">Mostra els detalls de conexió</string>
- <string name="routes_info">Rutes: %s</string>
- <string name="routes_info6">Rutes IPv6: %s</string>
- <string name="error_empty_username">El nom d\'usuari no pot estar buit</string>
- <string name="cert_from_keystore">S\'ha obtingut el certificat «%s» des de l\'emmagatzematge de claus</string>
- <string name="provider_label">Proveïdor:</string>
- <string name="provider_label_none">No s\'ha configurat cap proveïdor</string>
- <string name="status_unknown">Estat desconegut.</string>
- <string name="eip_service_label">Accés a Internet amb VPN xifrada</string>
- <string name="configuration_wizard_title">Seleccioneu un proveïdor de serveis</string>
- <string name="add_provider">Afegiu un nou proveïdor</string>
- <string name="introduce_new_provider">Afegeix un nou proveïdor de serveis</string>
- <string name="save">Guardar</string>
- <string name="new_provider_uri">Nom del domini</string>
- <string name="valid_url_entered">L\'URL és vàlida</string>
- <string name="not_valid_url_entered">URL incorrecta</string>
- <string name="provider_details_title">Detalls del proveïdor</string>
- <string name="use_anonymously_button">Utilitza de forma anònima</string>
- <string name="username_hint">nom d\'usuari</string>
- <string name="username_ask">Introduïu el vostre nom d\'usuari</string>
- <string name="password_ask">Introduïu la vostra contrasenya</string>
- <string name="password_hint">contrasenya</string>
- <string name="password_match">Les contrasenyes coincideixen</string>
- <string name="password_mismatch">Les contrasenyes no coincideixen</string>
- <string name="user_message">Missatge de l\'usuari</string>
- <string name="about_fragment_title">Quant a</string>
- <string name="exclude_apps_fragment_title">Exclou aplicacions de la VPN </string>
- <string name="error_srp_math_error_user_message">Torneu-ho a provar: error matemàtic del servidor</string>
- <string name="error_bad_user_password_user_message">Nom d\'usuari o contrasenya incorrecta</string>
- <string name="error_not_valid_password_user_message">Ha de tenir com a mínim 8 caràcters</string>
- <string name="error_client_http_user_message">Torneu-ho a provar: error HTTP del client</string>
- <string name="error_io_exception_user_message">Torneu-ho a provar: error d\'E/S</string>
- <string name="error_json_exception_user_message">Torneu-ho a provar: resposta no vàlida del servidor</string>
- <string name="error_no_such_algorithm_exception_user_message">No s\'ha trobat l\'algorisme de xifrat. Actualitzeu l\'Android!</string>
- <string name="signup_or_login_button">Registre/Inicia sessió</string>
- <string name="login_button">Inicia sessió</string>
- <string name="login_to_profile">Inicia sessió al perfil</string>
- <string name="logout_button">Tanca sessió </string>
- <string name="signup_button">Registre</string>
- <string name="create_profile">Crea un perfil</string>
- <string name="setup_provider">Configura un proveïdor</string>
- <string name="setup_error_title">Error de configuració</string>
- <string name="setup_error_configure_button">Configurar</string>
- <string name="setup_error_close_button">Surt</string>
- <string name="setup_error_text">S\'ha produït un error en configurar %s amb el proveïdor escollit.\n\nPodeu triar reconfigurar o sortir i configurar un proveïdor en el proper llançament. </string>
- <string name="server_unreachable_message">El servidor no és accessible, torneu-ho a provar.</string>
- <string name="error.security.pinnedcertificate">Error de seguretat, actualitzeu l\'aplicació o trieu un altre proveïdor.</string>
- <string name="malformed_url">Sembla que no és un proveïdor de %s. </string>
- <string name="certificate_error">Aquest no és un proveïdor de %s de confiança. </string>
- <string name="service_is_down_error">El servei no està disponible.</string>
- <string name="configuring_provider">Configuració del proveïdor</string>
- <string name="incorrectly_downloaded_certificate_message">El vostre certificat anònim no s\'ha baixat</string>
- <string name="downloading_certificate_message">S\'està baixant el certificat VPN</string>
- <string name="updating_certificate_message">S\'està actualitzant el certificat VPN</string>
- <string name="login.riseup.warning">Els usuaris de Riseup hauran de crear un compte per separat per utilitzar el servei VPN</string>
- <string name="succesful_authentication_message">Autenticat</string>
- <string name="authentication_failed_message">Autentificació fallida</string>
- <string name="registration_failed_message">El registre ha fallat</string>
- <string name="eip_status_start_pending">S\'està iniciant la connexió</string>
- <string name="eip_cancel_connect_title">Voleu cancel·lar la connexió?</string>
- <string name="eip_cancel_connect_text">Hi ha un intent de connexió en progrés. Voleu cancel·lar-la?</string>
- <string name="eip.warning.browser_inconsistency">Voleu desactivar la connexió VPN? Quan la VPN està desactivada, podeu filtrar informació personal al vostre proveïdor d\'Internet o a la vostra xarxa local.</string>
- <string name="eip_state_not_connected">No s\'està executant! Connexió insegura!</string>
- <string name="eip_state_connected">Connexió segura</string>
- <string name="provider_problem">Sembla que hi ha un problema amb el proveïdor.</string>
- <string name="try_another_provider">Proveu amb un altre proveïdor o contacteu amb el vostre.</string>
- <string name="default_username">Anònim </string>
- <string name="logging_in">S\'està iniciant sessió</string>
- <string name="signing_up">Registreu‐vos</string>
- <string name="vpn.button.turn.on">Activa</string>
- <string name="vpn.button.turn.off">Desactiva</string>
- <string name="vpn_button_turn_off_blocking">Atura el bloqueig</string>
- <string name="vpn_securely_routed">El trànsit s\'encamina de manera segura a través de:</string>
- <string name="vpn_securely_routed_no_internet">No s\'ha detectat cap connexió a Internet, quan torni, encaminarem el trànsit de manera segura a través de:</string>
- <string name="log_fragment_title">Registre</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Obre el calaix de navegació</string>
- <string name="navigation_drawer_close">Tanca el calaix de navegació</string>
- <string name="action_example">Exemple d\'acció</string>
- <string name="action_settings">Configuració</string>
- <string name="void_vpn_establish">%s bloqueja tot el trànsit d\'Internet sortint.</string>
- <string name="void_vpn_stopped">S\'ha deixat de bloquejar tot el trànsit sortint d\'Internet.</string>
- <string name="void_vpn_title">Bloqueja el trànsit</string>
- <string name="update_provider_details">Actualitza els detalls del proveïdor</string>
- <string name="update_certificate">Actualitza el certificat</string>
- <string name="warning_eip_json_corrupted">No s\'ha pogut actualitzar la configuració del proveïdor.</string>
- <string name="eip_json_corrupted_user_message">No s\'ha pogut actualitzar la configuració del proveïdor.Inicieu sessió per tornar-ho a provar.</string>
- <string name="warning_client_parsing_error_gateways">No s\'han pogut reconèixer les passarel·les del proveïdor. Es poden configurar incorrectament.</string>
- <string name="warning_corrupted_provider_details">Les dades del proveïdor emmagatzemat estan malmeses. Podeu actualitzar %s (recomanat) o actualitzar les dades del proveïdor mitjançant un certificat de CA comercial.</string>
- <string name="warning_corrupted_provider_cert">El certificat del proveïdor emmagatzemat no és vàlid. Podeu actualitzar %s (recomanat) o actualitzar el certificat del proveïdor mitjançant un certificat de CA comercial.</string>
- <string name="warning_expired_provider_cert">El certificat del proveïdor emmagatzemat ha caducat. Podeu actualitzar %s (recomanat) o actualitzar el certificat del proveïdor mitjançant un certificat de CA comercial. </string>
- <string name="downloading_vpn_certificate_failed">Ha fallat la baixada del certificat VPN. Torneu-ho a provar o trieu un altre proveïdor.</string>
- <string name="vpn_certificate_is_invalid">El certificat VPN no és vàlid. Proveu a baixar-ne un de nou.</string>
- <string name="vpn_certificate_user_message">El certificat VPN no és vàlid. Inicieu sessió per baixar-ne un de nou.</string>
- <string name="save_battery">Estalvieu bateria</string>
- <string name="subtitle_save_battery">Desactivat mentre el punt d\'accés VPN està activat</string>
- <string name="save_battery_message">Les connexions de dades de fons s\'aturaran quan el telèfon estigui inactiu.</string>
- <string name="always_on_vpn">VPN sempre activa</string>
- <string name="subtitle_always_on_vpn">Obre la configuració del sistema Android</string>
- <string name="tethering">Punt d\'accés VPN</string>
- <string name="ipv6Firewall">Bloca IPv6</string>
- <string name="require_root">Requereix permisos root</string>
- <string name="show_experimental">Mostra les funcions experimentals </string>
- <string name="hide_experimental">Amaga les funcions experimentals</string>
- <string name="tethering_enabled_message">Assegureu-vos d\'activar l\'ancoratge de xarxa a <![CDATA[<b>la configuració del sistema</b>]]> primer.</string>
- <string name="tethering_message">Compartiu la vostra VPN amb altres dispositius mitjançant:</string>
- <string name="tethering_wifi">Punt d\'accés Wi-Fi</string>
- <string name="tethering_usb">Ancoratge USB</string>
- <string name="tethering_bluetooth">Ancoratge Bluetooth </string>
- <string name="do_not_show_again">No ho tornis a mostrar</string>
- <string name="always_on_vpn_user_message">Per activar la VPN sempre activada a la configuració de la VPN d\'Android, feu clic a la icona de configuració [img src] i activeu el commutador.</string>
- <string name="always_on_blocking_vpn_user_message">Per protegir la vostra privadesa de manera òptima, també heu d’activar l’opció «Bloqueja connexions sense VPN».</string>
- <string name="donate_title">Fes una donació</string>
- <string name="donate_default_message">Feu un donatiu avui mateix si valoreu una comunicació segura que sigui fàcil tant per a l\'usuari final com per al proveïdor de serveis.</string>
- <string name="donate_message">LEAP depèn de donatius i subvencions. Feu un donatiu avui mateix si valoreu una comunicació segura que sigui fàcil tant per a l\'usuari final com per al proveïdor de serveis.</string>
- <string name="donate_button_remind_later">Recordeu-m\'ho més tard</string>
- <string name="donate_button_donate">Fes una donació</string>
- <string name="obfuscated_connection">S\'està utilitzant una connexió ofuscada.</string>
- <string name="obfuscated_connection_try">S\'està provant una connexió ofuscada.</string>
- <string name="nav_drawer_obfuscated_connection">Utilitza ponts</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Elusió del filtratge VPN</string>
- <string name="warning_exclude_apps_message">Aneu amb compte d’excloure les aplicacions de la VPN. Això revelarà la vostra identitat i comprometrà la vostra seguretat.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d aplicació sense protecció </item>
- <item quantity="other">%d aplicacions sense protecció </item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s no s\'ha pogut connectar. Pot ser que les connexions VPN es bloquegin. Voleu provar de connectar-vos mitjançant connexions ofuscades?</string>
- <string name="warning_no_more_gateways_no_pt">%s no s\'ha pogut connectar. Voleu tornar-ho a provar? </string>
- <string name="warning_no_more_gateways_use_ovpn">%s no s\'ha pogut connectar mitjançant connexions VPN ofuscades. Voleu provar de connectar-vos mitjançant una VPN estàndard?</string>
- <string name="warning_option_try_pt">Prova la connexió ofuscada</string>
- <string name="warning_option_try_ovpn">Prova la connexió estàndard</string>
- <string name="vpn_error_establish">Android no ha pogut establir el servei VPN.</string>
- <string name="root_permission_error">%s no pot executar funcions com el punt d\'accés VPN o el tallafoc IPv6 sense permisos root. </string>
- <string name="qs_enable_vpn">Inicia %s</string>
- <string name="version_update_found">Toqueu aquí per iniciar la baixada. </string>
- <string name="version_update_title">S\'ha trobat una nova versió de %s. </string>
- <string name="version_update_apk_description">S\'està baixant una nova versió de %s</string>
- <string name="version_update_download_title">S\'ha baixat una nova versió de %s. </string>
- <string name="version_update_download_description">Toqueu aquí per instal·lar l\'actualització.</string>
- <string name="version_update_error_pgp_verification">Error de verificació PGP. S\'està ignorant la baixada.</string>
- <string name="version_update_error">No s\'ha pogut actualitzar.</string>
- <string name="version_update_error_permissions">No hi ha permisos per instal·lar l\'aplicació.</string>
- <string name="gateway_selection_automatic">Automàtic</string>
- <string name="log_onehop_create">S\'està establint una connexió xifrada amb un directori</string>
- <string name="log_loading_keys">S\'estan carregant els certificats d\'autoritat</string>
- <string name="log_circuit_create">S\'està establint un circuit Tor</string>
- <string name="log_done">S\'està executant</string>
- <string name="hide">Oculta</string>
- <string name="use_snowflake">Utilitzi Snowflake</string>
- <string name="advanced_settings">Configuració avançada</string>
- <string name="cancel_connection">Desconecta</string>
+ <string name="retry">Reintenta</string>
+ <string name="repository_url_text">El codi font està disponible a https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">El seguidor d\'incidències està disponible a https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Les traduccions són benvingudes i apreciades. Vegeu el nostre projecte Transifex a https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Canvia el proveïdor</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Mostra els detalls de conexió</string>
+ <string name="routes_info">Rutes: %s</string>
+ <string name="routes_info6">Rutes IPv6: %s</string>
+ <string name="error_empty_username">El nom d\'usuari no pot estar buit</string>
+ <string name="cert_from_keystore">S\'ha obtingut el certificat «%s» des de l\'emmagatzematge de claus</string>
+ <string name="provider_label">Proveïdor:</string>
+ <string name="provider_label_none">No s\'ha configurat cap proveïdor</string>
+ <string name="status_unknown">Estat desconegut.</string>
+ <string name="eip_service_label">Accés a Internet amb VPN xifrada</string>
+ <string name="configuration_wizard_title">Seleccioneu un proveïdor de serveis</string>
+ <string name="add_provider">Afegiu un nou proveïdor</string>
+ <string name="introduce_new_provider">Afegeix un nou proveïdor de serveis</string>
+ <string name="save">Guardar</string>
+ <string name="new_provider_uri">Nom del domini</string>
+ <string name="valid_url_entered">L\'URL és vàlida</string>
+ <string name="not_valid_url_entered">URL incorrecta</string>
+ <string name="provider_details_title">Detalls del proveïdor</string>
+ <string name="use_anonymously_button">Utilitza de forma anònima</string>
+ <string name="username_hint">nom d\'usuari</string>
+ <string name="username_ask">Introduïu el vostre nom d\'usuari</string>
+ <string name="password_ask">Introduïu la vostra contrasenya</string>
+ <string name="password_hint">contrasenya</string>
+ <string name="password_match">Les contrasenyes coincideixen</string>
+ <string name="password_mismatch">Les contrasenyes no coincideixen</string>
+ <string name="user_message">Missatge de l\'usuari</string>
+ <string name="about_fragment_title">Quant a</string>
+ <string name="exclude_apps_fragment_title">Exclou aplicacions de la VPN </string>
+ <string name="error_srp_math_error_user_message">Torneu-ho a provar: error matemàtic del servidor</string>
+ <string name="error_bad_user_password_user_message">Nom d\'usuari o contrasenya incorrecta</string>
+ <string name="error_not_valid_password_user_message">Ha de tenir com a mínim 8 caràcters</string>
+ <string name="error_client_http_user_message">Torneu-ho a provar: error HTTP del client</string>
+ <string name="error_io_exception_user_message">Torneu-ho a provar: error d\'E/S</string>
+ <string name="error_json_exception_user_message">Torneu-ho a provar: resposta no vàlida del servidor</string>
+ <string name="error_no_such_algorithm_exception_user_message">No s\'ha trobat l\'algorisme de xifrat. Actualitzeu l\'Android!</string>
+ <string name="signup_or_login_button">Registre/Inicia sessió</string>
+ <string name="login_button">Inicia sessió</string>
+ <string name="login_to_profile">Inicia sessió al perfil</string>
+ <string name="logout_button">Tanca sessió </string>
+ <string name="signup_button">Registre</string>
+ <string name="create_profile">Crea un perfil</string>
+ <string name="setup_provider">Configura un proveïdor</string>
+ <string name="setup_error_title">Error de configuració</string>
+ <string name="setup_error_configure_button">Configurar</string>
+ <string name="setup_error_close_button">Surt</string>
+ <string name="setup_error_text">S\'ha produït un error en configurar %s amb el proveïdor escollit.\n\nPodeu triar reconfigurar o sortir i configurar un proveïdor en el proper llançament. </string>
+ <string name="server_unreachable_message">El servidor no és accessible, torneu-ho a provar.</string>
+ <string name="error.security.pinnedcertificate">Error de seguretat, actualitzeu l\'aplicació o trieu un altre proveïdor.</string>
+ <string name="malformed_url">Sembla que no és un proveïdor de %s. </string>
+ <string name="certificate_error">Aquest no és un proveïdor de %s de confiança. </string>
+ <string name="service_is_down_error">El servei no està disponible.</string>
+ <string name="configuring_provider">Configuració del proveïdor</string>
+ <string name="incorrectly_downloaded_certificate_message">El vostre certificat anònim no s\'ha baixat</string>
+ <string name="downloading_certificate_message">S\'està baixant el certificat VPN</string>
+ <string name="updating_certificate_message">S\'està actualitzant el certificat VPN</string>
+ <string name="login.riseup.warning">Els usuaris de Riseup hauran de crear un compte per separat per utilitzar el servei VPN</string>
+ <string name="succesful_authentication_message">Autenticat</string>
+ <string name="authentication_failed_message">Autentificació fallida</string>
+ <string name="registration_failed_message">El registre ha fallat</string>
+ <string name="eip_status_start_pending">S\'està iniciant la connexió</string>
+ <string name="eip_cancel_connect_title">Voleu cancel·lar la connexió?</string>
+ <string name="eip_cancel_connect_text">Hi ha un intent de connexió en progrés. Voleu cancel·lar-la?</string>
+ <string name="eip.warning.browser_inconsistency">Voleu desactivar la connexió VPN? Quan la VPN està desactivada, podeu filtrar informació personal al vostre proveïdor d\'Internet o a la vostra xarxa local.</string>
+ <string name="eip_state_not_connected">No s\'està executant! Connexió insegura!</string>
+ <string name="eip_state_connected">Connexió segura</string>
+ <string name="provider_problem">Sembla que hi ha un problema amb el proveïdor.</string>
+ <string name="try_another_provider">Proveu amb un altre proveïdor o contacteu amb el vostre.</string>
+ <string name="default_username">Anònim </string>
+ <string name="logging_in">S\'està iniciant sessió</string>
+ <string name="signing_up">Registreu‐vos</string>
+ <string name="vpn.button.turn.on">Activa</string>
+ <string name="vpn.button.turn.off">Desactiva</string>
+ <string name="vpn_button_turn_off_blocking">Atura el bloqueig</string>
+ <string name="vpn_securely_routed">El trànsit s\'encamina de manera segura a través de:</string>
+ <string name="vpn_securely_routed_no_internet">No s\'ha detectat cap connexió a Internet, quan torni, encaminarem el trànsit de manera segura a través de:</string>
+ <string name="log_fragment_title">Registre</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Obre el calaix de navegació</string>
+ <string name="navigation_drawer_close">Tanca el calaix de navegació</string>
+ <string name="action_example">Exemple d\'acció</string>
+ <string name="action_settings">Configuració</string>
+ <string name="void_vpn_establish">%s bloqueja tot el trànsit d\'Internet sortint.</string>
+ <string name="void_vpn_stopped">S\'ha deixat de bloquejar tot el trànsit sortint d\'Internet.</string>
+ <string name="void_vpn_title">Bloqueja el trànsit</string>
+ <string name="update_provider_details">Actualitza els detalls del proveïdor</string>
+ <string name="update_certificate">Actualitza el certificat</string>
+ <string name="warning_eip_json_corrupted">No s\'ha pogut actualitzar la configuració del proveïdor.</string>
+ <string name="eip_json_corrupted_user_message">No s\'ha pogut actualitzar la configuració del proveïdor.Inicieu sessió per tornar-ho a provar.</string>
+ <string name="warning_client_parsing_error_gateways">No s\'han pogut reconèixer les passarel·les del proveïdor. Es poden configurar incorrectament.</string>
+ <string name="warning_corrupted_provider_details">Les dades del proveïdor emmagatzemat estan malmeses. Podeu actualitzar %s (recomanat) o actualitzar les dades del proveïdor mitjançant un certificat de CA comercial.</string>
+ <string name="warning_corrupted_provider_cert">El certificat del proveïdor emmagatzemat no és vàlid. Podeu actualitzar %s (recomanat) o actualitzar el certificat del proveïdor mitjançant un certificat de CA comercial.</string>
+ <string name="warning_expired_provider_cert">El certificat del proveïdor emmagatzemat ha caducat. Podeu actualitzar %s (recomanat) o actualitzar el certificat del proveïdor mitjançant un certificat de CA comercial. </string>
+ <string name="downloading_vpn_certificate_failed">Ha fallat la baixada del certificat VPN. Torneu-ho a provar o trieu un altre proveïdor.</string>
+ <string name="vpn_certificate_is_invalid">El certificat VPN no és vàlid. Proveu a baixar-ne un de nou.</string>
+ <string name="vpn_certificate_user_message">El certificat VPN no és vàlid. Inicieu sessió per baixar-ne un de nou.</string>
+ <string name="save_battery">Estalvieu bateria</string>
+ <string name="subtitle_save_battery">Desactivat mentre el punt d\'accés VPN està activat</string>
+ <string name="save_battery_message">Les connexions de dades de fons s\'aturaran quan el telèfon estigui inactiu.</string>
+ <string name="always_on_vpn">VPN sempre activa</string>
+ <string name="subtitle_always_on_vpn">Obre la configuració del sistema Android</string>
+ <string name="tethering">Punt d\'accés VPN</string>
+ <string name="ipv6Firewall">Bloca IPv6</string>
+ <string name="require_root">Requereix permisos root</string>
+ <string name="show_experimental">Mostra les funcions experimentals </string>
+ <string name="hide_experimental">Amaga les funcions experimentals</string>
+ <string name="tethering_enabled_message">Assegureu-vos d\'activar l\'ancoratge de xarxa a <![CDATA[<b>la configuració del sistema</b>]]> primer.</string>
+ <string name="tethering_message">Compartiu la vostra VPN amb altres dispositius mitjançant:</string>
+ <string name="tethering_wifi">Punt d\'accés Wi-Fi</string>
+ <string name="tethering_usb">Ancoratge USB</string>
+ <string name="tethering_bluetooth">Ancoratge Bluetooth </string>
+ <string name="do_not_show_again">No ho tornis a mostrar</string>
+ <string name="always_on_vpn_user_message">Per activar la VPN sempre activada a la configuració de la VPN d\'Android, feu clic a la icona de configuració [img src] i activeu el commutador.</string>
+ <string name="always_on_blocking_vpn_user_message">Per protegir la vostra privadesa de manera òptima, també heu d’activar l’opció «Bloqueja connexions sense VPN».</string>
+ <string name="donate_title">Fes una donació</string>
+ <string name="donate_default_message">Feu un donatiu avui mateix si valoreu una comunicació segura que sigui fàcil tant per a l\'usuari final com per al proveïdor de serveis.</string>
+ <string name="donate_message">LEAP depèn de donatius i subvencions. Feu un donatiu avui mateix si valoreu una comunicació segura que sigui fàcil tant per a l\'usuari final com per al proveïdor de serveis.</string>
+ <string name="donate_button_remind_later">Recordeu-m\'ho més tard</string>
+ <string name="donate_button_donate">Fes una donació</string>
+ <string name="obfuscated_connection">S\'està utilitzant una connexió ofuscada.</string>
+ <string name="obfuscated_connection_try">S\'està provant una connexió ofuscada.</string>
+ <string name="nav_drawer_obfuscated_connection">Utilitza ponts</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Elusió del filtratge VPN</string>
+ <string name="warning_exclude_apps_message">Aneu amb compte d’excloure les aplicacions de la VPN. Això revelarà la vostra identitat i comprometrà la vostra seguretat.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d aplicació sense protecció </item>
+ <item quantity="other">%d aplicacions sense protecció </item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s no s\'ha pogut connectar. Pot ser que les connexions VPN es bloquegin. Voleu provar de connectar-vos mitjançant connexions ofuscades?</string>
+ <string name="warning_no_more_gateways_no_pt">%s no s\'ha pogut connectar. Voleu tornar-ho a provar? </string>
+ <string name="warning_no_more_gateways_use_ovpn">%s no s\'ha pogut connectar mitjançant connexions VPN ofuscades. Voleu provar de connectar-vos mitjançant una VPN estàndard?</string>
+ <string name="warning_option_try_pt">Prova la connexió ofuscada</string>
+ <string name="warning_option_try_ovpn">Prova la connexió estàndard</string>
+ <string name="vpn_error_establish">Android no ha pogut establir el servei VPN.</string>
+ <string name="root_permission_error">%s no pot executar funcions com el punt d\'accés VPN o el tallafoc IPv6 sense permisos root. </string>
+ <string name="qs_enable_vpn">Inicia %s</string>
+ <string name="version_update_found">Toqueu aquí per iniciar la baixada. </string>
+ <string name="version_update_title">S\'ha trobat una nova versió de %s. </string>
+ <string name="version_update_apk_description">S\'està baixant una nova versió de %s</string>
+ <string name="version_update_download_title">S\'ha baixat una nova versió de %s. </string>
+ <string name="version_update_download_description">Toqueu aquí per instal·lar l\'actualització.</string>
+ <string name="version_update_error_pgp_verification">Error de verificació PGP. S\'està ignorant la baixada.</string>
+ <string name="version_update_error">No s\'ha pogut actualitzar.</string>
+ <string name="version_update_error_permissions">No hi ha permisos per instal·lar l\'aplicació.</string>
+ <string name="gateway_selection_automatic">Automàtic</string>
+ <string name="log_onehop_create">S\'està establint una connexió xifrada amb un directori</string>
+ <string name="log_loading_keys">S\'estan carregant els certificats d\'autoritat</string>
+ <string name="log_circuit_create">S\'està establint un circuit Tor</string>
+ <string name="log_done">S\'està executant</string>
+ <string name="hide">Oculta</string>
+ <string name="use_snowflake">Utilitzi Snowflake</string>
+ <string name="advanced_settings">Configuració avançada</string>
+ <string name="cancel_connection">Desconecta</string>
</resources>
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 16cd8d9f..53f14dc6 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -1,269 +1,273 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Opakovat</string>
- <string name="repository_url_text">Zdrojový kód je dostupný na https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Sledování problémů je dostupné na https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Překlady jsou vítány. Podívejte se na náš projekt Transifex na https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Přepnout poskytovatele</string>
- <string name="info">info</string>
- <string name="show_connection_details">Zobrazit detaily spojení</string>
- <string name="connection_details">Podrobnosti o připojení</string>
- <string name="routes_info">Směrování: %s</string>
- <string name="routes_info6">Trasy IPv6: %s</string>
- <string name="error_empty_username">Jméno nesmí být prázdné.</string>
- <string name="cert_from_keystore">Načten certifikát „%s“ ze systémového úložiště</string>
- <string name="provider_label">Poskytovatel</string>
- <string name="provider_label_none">Žádný poskytovatel nenakonfigurován.</string>
- <string name="status_unknown">Status neznámý</string>
- <string name="eip_service_label">Přístup k šifrované internetové VPN</string>
- <string name="configuration_wizard_title">Vyberte si poskytovatele služeb</string>
- <string name="add_provider">Přidejte nového poskytovatele</string>
- <string name="introduce_new_provider">Přidejte nového poskytovatele služeb</string>
- <string name="save">Uložit</string>
- <string name="new_provider_uri">Jméno domény</string>
- <string name="valid_url_entered">Adresa URL je neplatná</string>
- <string name="not_valid_url_entered">Poškozená adresa URL</string>
- <string name="provider_details_title">Detaily poskytovatele</string>
- <string name="use_anonymously_button">Použít anonymně</string>
- <string name="username_hint">uživatelské jméno</string>
- <string name="username_ask">Prosím zadejte své uživatelské jméno</string>
- <string name="password_ask">Zadejte své heslo</string>
- <string name="password_hint">heslo</string>
- <string name="password_match">Shoda zadání hesla</string>
- <string name="password_mismatch">Zadaná hesla se neshodují</string>
- <string name="user_message">Zpráva uživatele</string>
- <string name="about_fragment_title">O programu</string>
- <string name="exclude_apps_fragment_title">Vyloučit aplikace z VPN</string>
- <string name="error_srp_math_error_user_message">Zkuste to znovu: chyba matematiky serveru</string>
- <string name="error_bad_user_password_user_message">Nesprávné uživatelské jméno nebo heslo</string>
- <string name="error_not_valid_password_user_message">Musí být dlouhé alespoň 8 znaků</string>
- <string name="error_client_http_user_message">Zkuste znovu: chyba HTTP klienta.</string>
- <string name="error_io_exception_user_message">Zkuste znovu: I/O chyba</string>
- <string name="error_json_exception_user_message">Zkuste znovu: Špatná odpověď serveru</string>
- <string name="error_no_such_algorithm_exception_user_message">Šifrovací algoritmus nenalezen. Aktualizujte prosím svůj systém!</string>
- <string name="signup_or_login_button">Registrovat/přihlásit se</string>
- <string name="login_button">Přihlásit</string>
- <string name="login_to_profile">Přihlásit se k profilu</string>
- <string name="logout_button">Odhlásit</string>
- <string name="signup_button">Registrovat</string>
- <string name="create_profile">Vytvořit profil</string>
- <string name="setup_provider">Nastavit poskytovatele</string>
- <string name="setup_error_title">Chyba konfigurace</string>
- <string name="setup_error_configure_button">Konfigurovat</string>
- <string name="setup_error_close_button">Odejít</string>
- <string name="setup_error_text">Při nastavování aplikace %s s vaším vybraným poskytovatelem došlo k chybě.\n\nMůžete změnit nastavení nebo aplikaci ukončit a nastavit poskytovatele při dalším spuštění.</string>
- <string name="setup_error_text_custom">Při nastavování aplikace %s došlo k chybě.\n\nMůžete změnit nastavení nebo aplikaci ukončit.</string>
- <string name="server_unreachable_message">Server je nedostupný, zkuste to prosím znovu.</string>
- <string name="error.security.pinnedcertificate">Chyba zabezpečení, aktualizujte aplikaci nebo vyberte jiného poskytovatele.</string>
- <string name="malformed_url">Zdá se, že nejde o poskytovatele %s.</string>
- <string name="certificate_error">Toto není důvěryhodný poskytovatel %s.</string>
- <string name="service_is_down_error">Služba je offline.</string>
- <string name="configuring_provider">Konfigurace poskytovatele</string>
- <string name="incorrectly_downloaded_certificate_message">Váš anonymní certifikát nebyl stažen</string>
- <string name="downloading_certificate_message">Stahování VPN certifikátu</string>
- <string name="updating_certificate_message">Aktualizace VPN certifikátu</string>
- <string name="login.riseup.warning">Uživatelé služby Riseup si budou muset vytvořit samostatný účet, aby mohli službu VPN používat</string>
- <string name="succesful_authentication_message">Ověřené</string>
- <string name="authentication_failed_message">Chyba ověření</string>
- <string name="registration_failed_message">Registrace selhala</string>
- <string name="eip_status_start_pending">Zahajování připojení</string>
- <string name="eip_status_connecting">Připojování k VPN</string>
- <string name="eip_status_unsecured">Nezabezpečené připojení</string>
- <string name="eip_status_secured">Zabezpečené připojení</string>
- <string name="eip_cancel_connect_title">Zrušit připojení?</string>
- <string name="eip_cancel_connect_text">Probíhá pokus o přihlášení. Přejete si jej zrušit?</string>
- <string name="eip.warning.browser_inconsistency">Vypnout připojení k VPN? Když je VPN vypnutá, může dojít k úniku osobních údajů k poskytovateli internetu nebo do místní sítě.</string>
- <string name="eip_state_not_connected">Neběží! Nezabezpečené připojení!</string>
- <string name="eip_state_connected">Připojení je zabezpečené</string>
- <string name="provider_problem">Zdá se, že u poskytovatele došlo k chybě.</string>
- <string name="try_another_provider">Vyberte prosím jiného poskytovatele, nebo kontaktujte svého.</string>
- <string name="default_username">Anonymní</string>
- <string name="logging_in">Přihlašování</string>
- <string name="signing_up">Registrace</string>
- <string name="vpn.button.turn.on">Zapnout</string>
- <string name="vpn.button.turn.off">Vypnout</string>
- <string name="vpn_button_turn_off_blocking">Přestat blokovat</string>
- <string name="vpn_securely_routed">Váš provoz je bezpečně směrován přes:</string>
- <string name="vpn_securely_routed_no_internet">Nebylo zjištěno připojení k internetu. Jakmile bude připojení obnoveno, budeme bezpečně směrovat váš provoz přes:</string>
- <string name="log_fragment_title">Log</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Otevřít navigační panel</string>
- <string name="navigation_drawer_close">Zavří navigační panel</string>
- <string name="action_example">Příklad akce</string>
- <string name="action_settings">Nastavení</string>
- <string name="void_vpn_establish">%s blokuje všechen odchozí internetový provoz.</string>
- <string name="void_vpn_error_establish">Blokování veškerého internetového provozu selhalo.</string>
- <string name="void_vpn_stopped">Zastaveno blokování veškerého odchozího internetového provozu.</string>
- <string name="void_vpn_title">Blokování provozu</string>
- <string name="update_provider_details">Aktualizovat podrobnosti o poskytovateli</string>
- <string name="update_certificate">Aktualizovat certifikát</string>
- <string name="warning_eip_json_corrupted">Aktualizace nastavení poskytovatele selhala.</string>
- <string name="eip_json_corrupted_user_message">Aktualizace nastavení poskytovatele selhala. Přihlaste se a zkuste to znovu.</string>
- <string name="warning_client_parsing_error_gateways">Nepodařilo se rozpoznat brány poskytovatele. Možná není správně nastaven.</string>
- <string name="warning_corrupted_provider_details">Uložené informace o poskytovateli jsou poškozené. Můžete buď aktualizovat aplikaci %s (doporučeno) nebo aktualizovat informace o poskytovateli použitím komerčního certifikátu CA.</string>
- <string name="warning_corrupted_provider_cert">Uložený certifikát poskytovatele je neplatný. Můžete buď aktualizovat aplikaci %s (doporučeno) nebo aktualizovat certifikát poskytovatele použitím komerčního certifikátu CA.</string>
- <string name="warning_expired_provider_cert">Uložený certifikát poskytovatele vypršel. Můžete buď aktualizovat aplikaci %s (doporučeno) nebo aktualizovat certifikát poskytovatele použitím komerčního certifikátu CA.</string>
- <string name="downloading_vpn_certificate_failed">Stahování certifikátu VPN selhalo. Zkuste to znovu nebo vyberte jiného poskytovatele.</string>
- <string name="vpn_certificate_is_invalid">Je čas aktualizovat váš certifikát VPN. Stáhněte si nový certifikát, aby bylo vaše připojení bezpečné. Jedná se o běžnou aktualizaci.</string>
- <string name="vpn_certificate_user_message">Certifikát VPN je neplatný. Přihlaste se pro stažení nového.</string>
- <string name="save_battery">Spořič baterie</string>
- <string name="subtitle_save_battery">Zakázáno při zapnutém VPN hotspotu</string>
- <string name="save_battery_message">Datová připojení na pozací budou hibernovat, když je váš telefon neaktivní.</string>
- <string name="always_on_vpn">Vždy zapnutá VPN</string>
- <string name="subtitle_always_on_vpn">Otevřít nastavení systému Android</string>
- <string name="tethering">VPN hotspot</string>
- <string name="ipv6Firewall">Blokovat IPv6</string>
- <string name="require_root">Vyžaduje oprávnění root</string>
- <string name="show_experimental">Zobrazit experimentální funkce</string>
- <string name="hide_experimental">Skrýt experimentální funkce</string>
- <string name="experimental_features">Experimentální funkce</string>
- <string name="tethering_enabled_message">Nejprve prosím povolte tethering v <![CDATA[<b>systémových nastaveních</b>]]>.</string>
- <string name="tethering_message">Sdílejte svou VPN s ostatními zařízeními přes:</string>
- <string name="tethering_wifi">Wi-Fi hotspot</string>
- <string name="tethering_usb">USB tethering</string>
- <string name="tethering_bluetooth">Bluetooth tethering</string>
- <string name="do_not_show_again">Nezobrazovat znovu</string>
- <string name="always_on_vpn_user_message">Chcete-li v nastavení sítě VPN pro Android povolit funkci trvalé VPN, klepněte na ikonu konfigurace [img src] a přepínač zapněte.</string>
- <string name="always_on_blocking_vpn_user_message">Chcete-li optimálně chránit své soukromí, měli byste také aktivovat možnost „Blokovat připojení bez VPN“.</string>
- <string name="donate_title">Darujte</string>
- <string name="donate_default_message">Pokud si vážíte bezpečné komunikace, která je snadná jak pro koncového uživatele, tak pro poskytovatele služeb, přispějte prosím ještě dnes.</string>
- <string name="donate_message">LEAP je závislý na darech a grantech. Pokud si vážíte bezpečné komunikace, která je snadná jak pro koncového uživatele, tak pro poskytovatele služeb, přispějte prosím ještě dnes.</string>
- <string name="donate_button_remind_later">Připomenout později</string>
- <string name="donate_button_donate">Darujte</string>
- <string name="obfuscated_connection">Používám maskované připojení.</string>
- <string name="obfuscated_connection_try">Pokus o maskované připojení.</string>
- <string name="nav_drawer_obfuscated_connection">Použít bridge</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Obejít filtrování VPN</string>
- <string name="warning_exclude_apps_message">Dávejte pozor na vyloučení aplikací ze sítě VPN. Odhalíte tak svou identitu a ohrozíte svou bezpečnost.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d nechráněná aplikace</item>
- <item quantity="few">%d nechráněné aplikace</item>
- <item quantity="many">%d nechráněných aplikací</item>
- <item quantity="other">%d nechráněných aplikací</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">Aplikaci %s se nepodařilo připojit. Je možné, že připojení VPN jsou blokována. Chcete se zkusit připojit pomocí maskovaného připojení?</string>
- <string name="warning_no_more_gateways_no_pt">Aplikaci %s se nepodařilo připojit. Chcete to zkusit znovu?</string>
- <string name="warning_no_more_gateways_use_ovpn">Aplikaci %s se nepodařilo připojit pomocí maskovaného připojení. Chcete se zkusit připojit pomocí standardní VPN?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">Aplikaci %1$s se nepodařilo připojit k %2$s. Chcete se zkusit automaticky připojit k nejlepší lokaci?</string>
- <string name="warning_option_try_best">Vyzkoušet nejlepší lokaci</string>
- <string name="warning_option_try_pt">Vyzkoušet maskované připojení</string>
- <string name="warning_option_try_ovpn">Vyzkoušet standardní připojení</string>
- <string name="vpn_error_establish">Systému Android se nepodařilo navázat službu VPN.</string>
- <string name="root_permission_error">Aplikace %s nedokáže bez oprávnění root vykonávat funkce, jako je VPN hotspot nebo IPv6 firewall.</string>
- <string name="qs_enable_vpn">Spustit %s</string>
- <string name="version_update_found">Klepněte sem pro zahájení stahování.</string>
- <string name="version_update_title">Byla nalezena nová verze aplikace %s.</string>
- <string name="version_update_apk_description">Stahování nové verze aplikace %s</string>
- <string name="version_update_download_title">Byla stažena nová verze aplikace %s.-</string>
- <string name="version_update_download_description">Klepněte sem pro instalaci aktualizace.</string>
- <string name="version_update_error_pgp_verification">Chyba ověření PGP. Ignoruji stahování.</string>
- <string name="version_update_error">Aktualizace selhala.</string>
- <string name="version_update_error_permissions">Chybějící oprávnění k instalaci aplikace.</string>
- <string name="gateway_selection_title">Vyberte lokaci</string>
- <string name="gateway_selection_recommended_location">Doporučená lokace</string>
- <string name="gateway_selection_recommended">Doporučená</string>
- <string name="gateway_selection_manually">Vybrat ručně</string>
- <string name="gateway_selection_automatic_location">Automaticky použít nejlepší připojení</string>
- <string name="gateway_selection_automatic">Automaticky</string>
- <string name="reconnecting">Obnovuji připojení...</string>
- <string name="tor_starting">Spouštění mostů pro obcházení cenzury...</string>
- <string name="tor_stopping">Zastavování mostů</string>
- <string name="tor_started">Používám mosty pro obcházení cenzury</string>
- <string name="log_conn_done_pt">Připojeno k zásuvnému transportu</string>
- <string name="log_conn_pt">Připojování k zásuvnému transportu</string>
- <string name="log_conn_done">Připojeno k uzlu</string>
- <string name="log_handshake">Vyjednávání spojení s uzlem</string>
- <string name="log_handshake_done">Spojení s uzlem vyjednáno</string>
- <string name="log_onehop_create">Spojování s šifrovaným adresářem</string>
- <string name="log_requesting_status">Žádost o souhlas se stavem sítě</string>
- <string name="log_loading_status">Načítání souhlasu se stavem sítě</string>
- <string name="log_loading_keys">Nahrávání certifikátů autorit</string>
- <string name="log_requesting_descriptors">Žádost o popisy uzlu</string>
- <string name="log_loading_descriptors">Načítání popisů uzlu</string>
- <string name="log_enough_dirinfo">Načteno dostatečné množství informací o adresářích pro sestavení obvodů</string>
- <string name="log_ap_handshake_done">Vyjednávání s uzlem pro sestavování obvodů dokončeno</string>
- <string name="log_circuit_create">Navazování okruhu Tor</string>
- <string name="log_done">Běží</string>
- <string name="channel_name_tor_service">Služba mostů %s</string>
- <string name="channel_description_tor_service">Informuje o využití mostů během konfigurace %s.</string>
- <string name="error_tor_timeout">Spuštění mostů selhalo. Chcete pokus opakovat nebo pokračovat bez maskovaného bezpečného spojení pro nastavení aplikace %s?</string>
- <string name="retry_unobfuscated">Opakovat pokus bez maskování</string>
- <string name="hide">Skrýt</string>
- <string name="error_network_connection">Aplikace %s nemá připojení k internetu. Zkontrolujte prosím nastavení Wi-Fi a mobilních dat.</string>
- <string name="censorship_circumvention">Obcházení cenzury</string>
- <string name="use_snowflake">Použít Snowflake</string>
- <string name="snowflake_description">Chránit proces konfigurace před cenzurou.</string>
- <string name="vpn_settings">Nastavení VPN</string>
- <string name="prefer_udp">Použít UDP, pokud je dostupné</string>
- <string name="prefer_udp_subtitle">UDP může být rychlejší a lepší pro streamování, nefunguje ale u všech sítí.</string>
- <string name="disabled_while_bridges_on">Zakázáno při používání mostů.</string>
- <string name="hint_bridges">V současné době lze vybrat pouze lokace podporující mosty.</string>
- <string name="option_disable_bridges">Zakázat mosty</string>
- <string name="eip_state_insecure">Připojení není zabezpečené</string>
- <string name="connection_not_connected">Může dojít k úniku informací k poskytovateli internetu nebo do místní sítě.</string>
- <string name="eip_state_no_network">Nemáte funkční připojení k internetu. Jakmile ho získáte zpět, budete automaticky připojeni k</string>
- <string name="eip_state_blocking">%1$s blokuje veškerý síťový provoz.</string>
- <string name="disabled_while_udp_on">Zakázáno při zapnutém UDP.</string>
- <string name="advanced_settings">Rozšířené nastavení</string>
- <string name="cancel_connection">Odpojit</string>
- <string name="unknown_location">Neznámá lokace</string>
- <string name="splash_footer">Vyvinuto v projektu LEAP</string>
- <string name="welcome">Vítejte!</string>
- <string name="select_provider">Vyberte svého poskytovatele</string>
- <string name="select_provider_description">Při používání sítě VPN přenášíte svou důvěru z poskytovatele internetových služeb na poskytovatele sítě VPN. Bitmask se připojuje pouze k poskytovatelům s jasnou historií ochrany soukromí.</string>
- <string name="provider_description_riseup">Riseup poskytuje online komunikační nástroje pro lidi a skupiny pracující na svobodné sociální změně. Jsme projekt, jehož cílem je vytvářet demokratické alternativy a praktikovat sebeurčení prostřednictvím kontroly vlastních bezpečných komunikačních prostředků.</string>
- <string name="next">Další</string>
- <string name="add_provider_description">Bitmask umožňuje připojení k poskytovatelům, kteří nejsou veřejně uvedeni. Ujistěte se, že poskytovatele, kterého přidáváte, znáte a důvěřujete mu.</string>
- <string name="add_provider_prompt">Sem zadejte adresu URL poskytovatele.</string>
- <string name="invite_code_provider_description">Bitmask umožňuje připojení k poskytovatelům pomocí soukromého zvacího kódu.</string>
- <string name="invite_code_provider_prompt">Sem zadejte váš důvěryhodný zvací kód.</string>
- <string name="qr_scanner_prompt">Naskenovat QR kód</string>
- <string name="provider_description_calyx">Calyx je nezisková vzdělávací a výzkumná organizace, která se věnuje studiu, testování, vývoji a zavádění technologií a nástrojů pro ochranu soukromí s cílem podpořit svobodu slova, svobodu projevu, občanskou angažovanost a práva na ochranu soukromí na internetu a v odvětví mobilních komunikací.</string>
- <string name="title_circumvention_setup">Vyžadujete obcházení cenzury?</string>
- <string name="circumvention_setup_description">Pokud žijete v místě, kde je internet cenzurován, můžete využít naše možnosti obcházení cenzury a získat přístup ke všem internetovým službám. Tyto možnosti zpomalí vaše připojení!</string>
- <string name="circumvention_setup_hint">%s se automaticky pokusí připojit k internetu pomocí různých technologií obcházení. Tuto funkci můžete jemně doladit v pokročilém nastavení.</string>
- <string name="use_standard_vpn">Použít standardní %s</string>
- <string name="use_circumvention_tech">Použít technologii obcházení (pomalejší)</string>
- <string name="description_configure_provider">Pro připojení k poskytovateli %1$s je třeba načíst všechny požadované konfigurační informace. K tomu dochází pouze při prvním nastavení.</string>
- <string name="description_configure_provider_circumvention">%1$s se pokouší shromáždit od zprostředkovatele všechna požadovaná konfigurační data. K tomu dochází pouze při prvním nastavení. Zvolili jste použití technologie obcházení, takže to může nějakou dobu trvat.</string>
- <string name="details">Detaily</string>
- <string name="tor_status">Stav sítě Tor</string>
- <string name="snowflake_status">Stav Snowflake</string>
- <string name="snowflake_started">Klient Snowflake spuštěn</string>
- <string name="snowflake_negotiating_rendezvous_http">Vyjednávání setkání s proxy serverem Snowflake (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Vyjednávání setkání s proxy serverem Snowflake (amp cache)</string>
- <string name="snowflake_socks_error">Chyba Snowflake SOCKS</string>
- <string name="snowflake_broker_success">Úspěšné setkání s proxy serverem Snowflake</string>
- <string name="snowflake_sending_data">Posílání dat přes Snowflake</string>
- <string name="title_upcoming_connection_request">Nadcházející žádost o připojení</string>
- <string name="title_upcoming_request">Nadcházející požadavky</string>
- <string name="title_upcoming_request_summary">V dalších panelech vás systém Android požádá o oprávnění ve formě žádosti o připojení a žádosti o oznámení.</string>
- <string name="title_upcoming_connection_request_summary_custom">Přijetí požadavku na připojení je nezbytné pro používání základních funkcí aplikace %s.</string>
- <string name="title_upcoming_connection_request_summary">Pokud jde o žádost o připojení, je důležité vědět, že Bitmask spolupracuje pouze s důvěryhodnými partnerskými poskytovateli, kteří dodržují osvědčené postupy pro sítě VPN a mají ověřitelnou historii ochrany dat a identit uživatelů. Pokud se však ručně připojujete k neveřejnému poskytovateli, ujistěte se, že mu důvěřujete.</string>
- <string name="title_upcoming_notification_request_summary">Přijetí požadavku na oznámení umožní aplikaci běžet na pozadí a zobrazit využití dat v centru oznámení systému Android.</string>
- <string name="title_upcoming_notifications_request">Nadcházející žádost o oznámení</string>
- <string name="title_setup_success">Jste připraveni!</string>
- <string name="setup_success_description">Klepněte na tlačítko níže pro připojení</string>
- <string name="permission_rejected">Žádost o oprávnění zamítnuta.</string>
- <string name="login_not_supported">Aktuální verze aplikace nepodporuje přihlašování, proto je třeba aktualizovat certifikát VPN pro tohoto poskytovatele.</string>
- <string name="select_language">Vybrat jazyk</string>
- <string name="syntax_check">Kontrola syntaxe:</string>
- <string name="validation_status_success">Dobrá</string>
- <string name="validation_status_failure">Špatná</string>
- <string name="enter_invite_code">Zadejte kód pozvánky</string>
- <string name="scan_qr_code">Naskenovat QR kód</string>
- <string name="invalid_code">Neplatný kód</string>
- <string name="automatic_bridge">Automaticky (doporučeno)</string>
- <string name="automatic_bridge_description">O připojení se pokusíme pomocí nejlepších dostupných mostů a protokolů.</string>
- <string name="manual_bridge">Ruční nastavení</string>
- <string name="manual_bridge_description">Vybrat soukromé mosty a specifické protokoly</string>
- <string name="censorship_circumvention_description">Ruční nastavení vyžaduje technické znalosti. Postupujte opatrně.</string>
- <string name="discovery">Objevování</string>
- <string name="discovery_description">Cenzoři mohou blokovat zjišťování kritických informací o konfiguraci od vašeho poskytovatele. Chcete-li blokování obejít, zvolte možnost obcházení.</string>
- <string name="automatically_select">Automaticky vybrat</string>
- <string name="invite_proxy">Proxy pozvánek</string>
- <string name="tunnelling">Tunelování</string>
- <string name="tunnelling_description">Cenzoři mohou blokovat přístup k otevřenému internetu. Chcete-li blokování obejít, zvolte možnost obcházení.</string>
- <string name="port_hopping">Přeskakování portů</string>
- <string name="port_hopping_description">Cenzoři používají analýzu provozu k blokování přístupu k otevřenému internetu. Přeskakování portů jim to může ztížit.</string>
+ <string name="retry">Opakovat</string>
+ <string name="repository_url_text">Zdrojový kód je dostupný na https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Sledování problémů je dostupné na https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Překlady jsou vítány. Podívejte se na náš projekt na https://localizationlab.weblate.cloud/projects/bitmask/</string>
+ <string name="switch_provider_menu_option">Přepnout poskytovatele</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Zobrazit detaily spojení</string>
+ <string name="connection_details">Podrobnosti o připojení</string>
+ <string name="routes_info">Směrování: %s</string>
+ <string name="routes_info6">Trasy IPv6: %s</string>
+ <string name="error_empty_username">Jméno nesmí být prázdné.</string>
+ <string name="cert_from_keystore">Načten certifikát „%s“ ze systémového úložiště</string>
+ <string name="provider_label">Poskytovatel:</string>
+ <string name="provider_label_none">Není nastaven žádný poskytovatel</string>
+ <string name="status_unknown">Stav neznámý.</string>
+ <string name="eip_service_label">Přístup k šifrované internetové VPN</string>
+ <string name="configuration_wizard_title">Vyberte si poskytovatele služeb</string>
+ <string name="add_provider">Přidejte nového poskytovatele</string>
+ <string name="introduce_new_provider">Přidejte nového poskytovatele služeb</string>
+ <string name="save">Uložit</string>
+ <string name="new_provider_uri">Jméno domény</string>
+ <string name="valid_url_entered">Adresa URL je neplatná</string>
+ <string name="not_valid_url_entered">Poškozená adresa URL</string>
+ <string name="provider_details_title">Detaily poskytovatele</string>
+ <string name="use_anonymously_button">Použít anonymně</string>
+ <string name="username_hint">uživatelské jméno</string>
+ <string name="username_ask">Prosím zadejte své uživatelské jméno</string>
+ <string name="password_ask">Zadejte své heslo</string>
+ <string name="password_hint">heslo</string>
+ <string name="password_match">Shoda zadání hesla</string>
+ <string name="password_mismatch">Zadaná hesla se neshodují</string>
+ <string name="user_message">Zpráva uživatele</string>
+ <string name="about_fragment_title">O programu</string>
+ <string name="exclude_apps_fragment_title">Vyloučit aplikace z VPN</string>
+ <string name="error_srp_math_error_user_message">Zkuste to znovu: chyba matematiky serveru</string>
+ <string name="error_bad_user_password_user_message">Nesprávné uživatelské jméno nebo heslo</string>
+ <string name="error_not_valid_password_user_message">Musí být dlouhé alespoň 8 znaků</string>
+ <string name="error_client_http_user_message">Zkuste to znovu: chyba HTTP klienta</string>
+ <string name="error_io_exception_user_message">Zkuste znovu: I/O chyba</string>
+ <string name="error_json_exception_user_message">Zkuste znovu: Špatná odpověď serveru</string>
+ <string name="error_no_such_algorithm_exception_user_message">Šifrovací algoritmus nenalezen. Aktualizujte prosím svůj systém!</string>
+ <string name="signup_or_login_button">Registrovat/přihlásit se</string>
+ <string name="login_button">Přihlásit</string>
+ <string name="login_to_profile">Přihlásit se k profilu</string>
+ <string name="logout_button">Odhlásit</string>
+ <string name="signup_button">Registrovat</string>
+ <string name="create_profile">Vytvořit profil</string>
+ <string name="setup_provider">Nastavit poskytovatele</string>
+ <string name="setup_error_title">Chyba konfigurace</string>
+ <string name="setup_error_configure_button">Konfigurovat</string>
+ <string name="setup_error_close_button">Odejít</string>
+ <string name="setup_error_text">Při nastavování aplikace %s s vaším vybraným poskytovatelem došlo k chybě.\n\nMůžete změnit nastavení nebo aplikaci ukončit a nastavit poskytovatele při dalším spuštění.</string>
+ <string name="setup_error_text_custom">Při nastavování aplikace %s došlo k chybě.\n\nMůžete změnit nastavení nebo aplikaci ukončit.</string>
+ <string name="server_unreachable_message">Server je nedostupný, zkuste to prosím znovu.</string>
+ <string name="error.security.pinnedcertificate">Chyba zabezpečení, aktualizujte aplikaci nebo vyberte jiného poskytovatele.</string>
+ <string name="malformed_url">Zdá se, že nejde o poskytovatele %s.</string>
+ <string name="certificate_error">Toto není důvěryhodný poskytovatel %s.</string>
+ <string name="service_is_down_error">Služba je offline.</string>
+ <string name="configuring_provider">Konfigurace poskytovatele</string>
+ <string name="downloading_certificate_message">Stahování VPN certifikátu</string>
+ <string name="updating_certificate_message">Aktualizace VPN certifikátu</string>
+ <string name="login.riseup.warning">Uživatelé služby Riseup si budou muset vytvořit samostatný účet, aby mohli službu VPN používat</string>
+ <string name="succesful_authentication_message">Ověřené</string>
+ <string name="authentication_failed_message">Chyba ověření</string>
+ <string name="registration_failed_message">Registrace selhala</string>
+ <string name="eip_status_start_pending">Zahajování připojení</string>
+ <string name="eip_status_connecting">Připojování k VPN</string>
+ <string name="eip_status_unsecured">Nezabezpečené připojení</string>
+ <string name="eip_status_secured">Zabezpečené připojení</string>
+ <string name="eip_cancel_connect_title">Zrušit připojení?</string>
+ <string name="eip_cancel_connect_text">Probíhá pokus o přihlášení. Přejete si jej zrušit?</string>
+ <string name="eip.warning.browser_inconsistency">Vypnout připojení k VPN? Když je VPN vypnutá, může dojít k úniku osobních údajů k poskytovateli internetu nebo do místní sítě.</string>
+ <string name="eip_state_not_connected">Neběží! Nezabezpečené připojení!</string>
+ <string name="eip_state_connected">Připojení je zabezpečené</string>
+ <string name="provider_problem">Zdá se, že u poskytovatele došlo k chybě.</string>
+ <string name="try_another_provider">Vyberte prosím jiného poskytovatele, nebo kontaktujte svého.</string>
+ <string name="default_username">Anonymní</string>
+ <string name="logging_in">Přihlašování</string>
+ <string name="signing_up">Registrace</string>
+ <string name="vpn.button.turn.on">Zapnout</string>
+ <string name="vpn.button.turn.off">Vypnout</string>
+ <string name="vpn_button_turn_off_blocking">Přestat blokovat</string>
+ <string name="vpn_securely_routed">Váš provoz je bezpečně směrován přes:</string>
+ <string name="vpn_securely_routed_no_internet">Nebylo zjištěno připojení k internetu. Jakmile bude připojení obnoveno, budeme bezpečně směrovat váš provoz přes:</string>
+ <string name="log_fragment_title">Log</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Otevřít navigační panel</string>
+ <string name="navigation_drawer_close">Zavří navigační panel</string>
+ <string name="action_example">Příklad akce</string>
+ <string name="action_settings">Nastavení</string>
+ <string name="void_vpn_establish">%s blokuje všechen odchozí internetový provoz.</string>
+ <string name="void_vpn_error_establish">Blokování veškerého internetového provozu selhalo.</string>
+ <string name="void_vpn_stopped">Zastaveno blokování veškerého odchozího internetového provozu.</string>
+ <string name="void_vpn_title">Blokování provozu</string>
+ <string name="update_provider_details">Aktualizovat podrobnosti o poskytovateli</string>
+ <string name="update_certificate">Aktualizovat certifikát</string>
+ <string name="warning_eip_json_corrupted">Aktualizace nastavení poskytovatele selhala.</string>
+ <string name="eip_json_corrupted_user_message">Aktualizace nastavení poskytovatele selhala. Přihlaste se a zkuste to znovu.</string>
+ <string name="warning_client_parsing_error_gateways">Nepodařilo se rozpoznat brány poskytovatele. Možná není správně nastaven.</string>
+ <string name="warning_corrupted_provider_details">Uložené informace o poskytovateli jsou poškozené. Můžete buď aktualizovat aplikaci %s (doporučeno) nebo aktualizovat informace o poskytovateli použitím komerčního certifikátu CA.</string>
+ <string name="warning_corrupted_provider_cert">Uložený certifikát poskytovatele je neplatný. Můžete buď aktualizovat aplikaci %s (doporučeno) nebo aktualizovat certifikát poskytovatele použitím komerčního certifikátu CA.</string>
+ <string name="warning_expired_provider_cert">Uložený certifikát poskytovatele vypršel. Můžete buď aktualizovat aplikaci %s (doporučeno) nebo aktualizovat certifikát poskytovatele použitím komerčního certifikátu CA.</string>
+ <string name="downloading_vpn_certificate_failed">Stahování certifikátu VPN selhalo. Zkuste to znovu nebo vyberte jiného poskytovatele.</string>
+ <string name="vpn_certificate_is_invalid">Je čas aktualizovat váš certifikát VPN. Stáhněte si nový certifikát, aby bylo vaše připojení bezpečné. Jedná se o běžnou aktualizaci.</string>
+ <string name="save_battery">Spořič baterie</string>
+ <string name="subtitle_save_battery">Zakázáno při zapnutém VPN hotspotu</string>
+ <string name="save_battery_message">Datová připojení na pozací budou hibernovat, když je váš telefon neaktivní.</string>
+ <string name="always_on_vpn">Vždy zapnutá VPN</string>
+ <string name="subtitle_always_on_vpn">Otevřít nastavení systému Android</string>
+ <string name="tethering">VPN hotspot</string>
+ <string name="ipv6Firewall">Blokovat IPv6</string>
+ <string name="require_root">Vyžaduje oprávnění root</string>
+ <string name="show_experimental">Zobrazit experimentální funkce</string>
+ <string name="hide_experimental">Skrýt experimentální funkce</string>
+ <string name="experimental_features">Experimentální funkce</string>
+ <string name="tethering_enabled_message">Nejprve prosím povolte tethering v <![CDATA[<b>systémových nastaveních</b>]]>.</string>
+ <string name="tethering_message">Sdílejte svou VPN s ostatními zařízeními přes:</string>
+ <string name="tethering_wifi">Wi-Fi hotspot</string>
+ <string name="tethering_usb">USB tethering</string>
+ <string name="tethering_bluetooth">Bluetooth tethering</string>
+ <string name="do_not_show_again">Nezobrazovat znovu</string>
+ <string name="always_on_vpn_user_message">Chcete-li v nastavení sítě VPN pro Android povolit funkci trvalé VPN, klepněte na ikonu konfigurace [img src] a přepínač zapněte.</string>
+ <string name="always_on_blocking_vpn_user_message">Chcete-li optimálně chránit své soukromí, měli byste také aktivovat možnost „Blokovat připojení bez VPN“.</string>
+ <string name="donate_title">Darujte</string>
+ <string name="donate_default_message">Pokud si vážíte bezpečné komunikace, která je snadná jak pro koncového uživatele, tak pro poskytovatele služeb, přispějte prosím ještě dnes.</string>
+ <string name="donate_message">LEAP je závislý na darech a grantech. Pokud si vážíte bezpečné komunikace, která je snadná jak pro koncového uživatele, tak pro poskytovatele služeb, přispějte prosím ještě dnes.</string>
+ <string name="donate_button_remind_later">Připomenout později</string>
+ <string name="donate_button_donate">Darujte</string>
+ <string name="obfuscated_connection">Používám maskované připojení.</string>
+ <string name="obfuscated_connection_try">Pokus o maskované připojení.</string>
+ <string name="nav_drawer_obfuscated_connection">Použít bridge</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Obejít filtrování VPN</string>
+ <string name="warning_exclude_apps_message">Dávejte pozor na vyloučení aplikací ze sítě VPN. Odhalíte tak svou identitu a ohrozíte svou bezpečnost.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d nechráněná aplikace</item>
+ <item quantity="few">%d nechráněné aplikace</item>
+ <item quantity="many">%d nechráněných aplikací</item>
+ <item quantity="other">%d nechráněných aplikací</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">Aplikaci %s se nepodařilo připojit. Je možné, že připojení VPN jsou blokována. Chcete se zkusit připojit pomocí maskovaného připojení?</string>
+ <string name="warning_no_more_gateways_no_pt">Aplikaci %s se nepodařilo připojit. Chcete to zkusit znovu?</string>
+ <string name="warning_no_more_gateways_use_ovpn">Aplikaci %s se nepodařilo připojit pomocí maskovaného připojení. Chcete se zkusit připojit pomocí standardní VPN?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">Aplikaci %1$s se nepodařilo připojit k %2$s. Chcete se zkusit automaticky připojit k nejlepší lokaci?</string>
+ <string name="warning_option_try_best">Vyzkoušet nejlepší lokaci</string>
+ <string name="warning_option_try_pt">Vyzkoušet maskované připojení</string>
+ <string name="warning_option_try_ovpn">Vyzkoušet standardní připojení</string>
+ <string name="vpn_error_establish">Systému Android se nepodařilo navázat službu VPN.</string>
+ <string name="root_permission_error">Aplikace %s nedokáže bez oprávnění root vykonávat funkce, jako je VPN hotspot nebo IPv6 firewall.</string>
+ <string name="qs_enable_vpn">Spustit %s</string>
+ <string name="version_update_found">Klepněte sem pro zahájení stahování.</string>
+ <string name="version_update_title">Byla nalezena nová verze aplikace %s.</string>
+ <string name="version_update_apk_description">Stahování nové verze aplikace %s</string>
+ <string name="version_update_download_title">Byla stažena nová verze aplikace %s.-</string>
+ <string name="version_update_download_description">Klepněte sem pro instalaci aktualizace.</string>
+ <string name="version_update_error_pgp_verification">Chyba ověření PGP. Ignoruji stahování.</string>
+ <string name="version_update_error">Aktualizace selhala.</string>
+ <string name="version_update_error_permissions">Chybějící oprávnění k instalaci aplikace.</string>
+ <string name="gateway_selection_title">Vyberte lokaci</string>
+ <string name="gateway_selection_recommended_location">Doporučená lokace</string>
+ <string name="gateway_selection_recommended">Doporučená</string>
+ <string name="gateway_selection_manually">Vybrat ručně</string>
+ <string name="gateway_selection_automatic_location">Automaticky použít nejlepší připojení</string>
+ <string name="gateway_selection_automatic">Automaticky</string>
+ <string name="reconnecting">Obnovuji připojení…</string>
+ <string name="tor_starting">Spouštění mostů pro obcházení cenzury…</string>
+ <string name="tor_stopping">Zastavování mostů</string>
+ <string name="tor_started">Používám mosty pro obcházení cenzury</string>
+ <string name="log_conn_done_pt">Připojeno k zásuvnému transportu</string>
+ <string name="log_conn_pt">Připojování k zásuvnému transportu</string>
+ <string name="log_conn_done">Připojeno k uzlu</string>
+ <string name="log_handshake">Vyjednávání spojení s uzlem</string>
+ <string name="log_handshake_done">Spojení s uzlem vyjednáno</string>
+ <string name="log_onehop_create">Spojování s šifrovaným adresářem</string>
+ <string name="log_requesting_status">Žádost o souhlas se stavem sítě</string>
+ <string name="log_loading_status">Načítání souhlasu se stavem sítě</string>
+ <string name="log_loading_keys">Nahrávání certifikátů autorit</string>
+ <string name="log_requesting_descriptors">Žádost o popisy uzlu</string>
+ <string name="log_loading_descriptors">Načítání popisů uzlu</string>
+ <string name="log_enough_dirinfo">Načteno dostatečné množství informací o adresářích pro sestavení obvodů</string>
+ <string name="log_ap_handshake_done">Vyjednávání s uzlem pro sestavování obvodů dokončeno</string>
+ <string name="log_circuit_create">Navazování okruhu Tor</string>
+ <string name="log_done">Běží</string>
+ <string name="channel_name_tor_service">Služba mostů %s</string>
+ <string name="channel_description_tor_service">Informuje o využití mostů během konfigurace %s.</string>
+ <string name="error_tor_timeout">Spuštění mostů selhalo. Chcete pokus opakovat nebo pokračovat bez maskovaného bezpečného spojení pro nastavení aplikace %s?</string>
+ <string name="retry_unobfuscated">Opakovat pokus bez maskování</string>
+ <string name="hide">Skrýt</string>
+ <string name="error_network_connection">Aplikace %s nemá připojení k internetu. Zkontrolujte prosím nastavení Wi-Fi a mobilních dat.</string>
+ <string name="censorship_circumvention">Obcházení cenzury</string>
+ <string name="use_snowflake">Použít Snowflake</string>
+ <string name="snowflake_description">Chránit proces konfigurace před cenzurou.</string>
+ <string name="vpn_settings">Nastavení VPN</string>
+ <string name="prefer_udp">Použít UDP, pokud je dostupné</string>
+ <string name="prefer_udp_subtitle">UDP může být rychlejší a lepší pro streamování, nefunguje ale u všech sítí.</string>
+ <string name="disabled_while_bridges_on">Zakázáno při používání mostů.</string>
+ <string name="hint_bridges">V současné době lze vybrat pouze lokace podporující mosty.</string>
+ <string name="option_disable_bridges">Zakázat mosty</string>
+ <string name="eip_state_insecure">Připojení není zabezpečené</string>
+ <string name="connection_not_connected">Může dojít k úniku informací k poskytovateli internetu nebo do místní sítě.</string>
+ <string name="eip_state_no_network">Nemáte funkční připojení k internetu. Jakmile ho získáte zpět, budete automaticky připojeni k</string>
+ <string name="eip_state_blocking">%1$s blokuje veškerý síťový provoz.</string>
+ <string name="disabled_while_udp_on">Zakázáno při zapnutém UDP.</string>
+ <string name="advanced_settings">Rozšířené nastavení</string>
+ <string name="cancel_connection">Odpojit</string>
+ <string name="unknown_location">Neznámá lokace</string>
+ <string name="splash_footer">Vyvinuto v projektu LEAP</string>
+ <string name="welcome">Vítejte!</string>
+ <string name="select_provider">Vyberte svého poskytovatele</string>
+ <string name="select_provider_description">Při používání sítě VPN přenášíte svou důvěru z poskytovatele internetových služeb na poskytovatele sítě VPN. %1$s a %2$s mají čistou historii ochrany soukromí a jeho prosazování. Pokud přidáváte poskytovatele nebo používáte kód pozvánky, ujistěte se, že znáte a důvěřujete poskytovateli.</string>
+ <string name="provider_description_riseup">Riseup poskytuje online komunikační nástroje pro lidi a skupiny pracující na svobodné sociální změně. Jsme projekt, jehož cílem je vytvářet demokratické alternativy a praktikovat sebeurčení prostřednictvím kontroly vlastních bezpečných komunikačních prostředků.</string>
+ <string name="next">Další</string>
+ <string name="add_provider_description">Bitmask umožňuje připojení k poskytovatelům, kteří nejsou veřejně uvedeni. Ujistěte se, že poskytovatele, kterého přidáváte, znáte a důvěřujete mu.</string>
+ <string name="add_provider_prompt">Sem zadejte adresu URL poskytovatele.</string>
+ <string name="invite_code_provider_description">Bitmask umožňuje připojení k poskytovatelům pomocí soukromého zvacího kódu.</string>
+ <string name="invite_code_provider_prompt">Sem zadejte váš důvěryhodný zvací kód.</string>
+ <string name="qr_scanner_prompt">Naskenovat QR kód</string>
+ <string name="provider_description_calyx">Calyx je nezisková vzdělávací a výzkumná organizace, která se věnuje studiu, testování, vývoji a zavádění technologií a nástrojů pro ochranu soukromí s cílem podpořit svobodu slova, svobodu projevu, občanskou angažovanost a práva na ochranu soukromí na internetu a v odvětví mobilních komunikací.</string>
+ <string name="title_circumvention_setup">Vyžadujete obcházení cenzury?</string>
+ <string name="circumvention_setup_description">Pokud žijete v místě, kde je internet cenzurován, můžete využít naše možnosti obcházení cenzury a získat přístup ke všem internetovým službám. Tyto možnosti zpomalí vaše připojení!</string>
+ <string name="circumvention_setup_hint">%s se vás automaticky pokusí připojit k internetu pomocí různých technologií obcházení, včetně sítě Tor. Tuto funkci můžete doladit v pokročilých nastaveních.</string>
+ <string name="use_standard_vpn">Použít standardní %s</string>
+ <string name="use_circumvention_tech">Použít technologii obcházení (pomalejší)</string>
+ <string name="description_configure_provider">Pro připojení k poskytovateli %1$s je třeba načíst všechny požadované konfigurační informace. K tomu dochází pouze při prvním nastavení.</string>
+ <string name="description_configure_provider_circumvention">%1$s se pokouší shromáždit od zprostředkovatele všechna požadovaná konfigurační data. K tomu dochází pouze při prvním nastavení. Zvolili jste použití technologie obcházení, takže to může nějakou dobu trvat.</string>
+ <string name="details">Detaily</string>
+ <string name="tor_status">Stav sítě Tor</string>
+ <string name="snowflake_status">Stav Snowflake</string>
+ <string name="snowflake_started">Klient Snowflake spuštěn</string>
+ <string name="title_upcoming_connection_request">Nadcházející žádost o připojení</string>
+ <string name="title_upcoming_request">Nadcházející požadavky</string>
+ <string name="title_upcoming_request_summary">V dalších panelech vás systém Android požádá o oprávnění ve formě žádosti o připojení a žádosti o oznámení.</string>
+ <string name="title_upcoming_connection_request_summary_custom">Přijetí požadavku na připojení je nezbytné pro používání základních funkcí aplikace %s.</string>
+ <string name="title_upcoming_connection_request_summary">Pokud jde o žádost o připojení, je důležité vědět, že Bitmask spolupracuje pouze s důvěryhodnými partnerskými poskytovateli, kteří dodržují osvědčené postupy pro sítě VPN a mají ověřitelnou historii ochrany dat a identit uživatelů. Pokud se však ručně připojujete k neveřejnému poskytovateli, ujistěte se, že mu důvěřujete.</string>
+ <string name="title_upcoming_notification_request_summary">Přijetí požadavku na oznámení umožní aplikaci běžet na pozadí a zobrazit využití dat v centru oznámení systému Android.</string>
+ <string name="title_upcoming_notifications_request">Nadcházející žádost o oznámení</string>
+ <string name="title_setup_success">Jste připraveni!</string>
+ <string name="setup_success_description">Klepněte na tlačítko níže pro připojení</string>
+ <string name="permission_rejected">Žádost o oprávnění zamítnuta.</string>
+ <string name="login_not_supported">Aktuální verze aplikace nepodporuje přihlašování, proto je třeba aktualizovat certifikát VPN pro tohoto poskytovatele.</string>
+ <string name="select_language">Vybrat jazyk</string>
+ <string name="syntax_check">Kontrola syntaxe:</string>
+ <string name="validation_status_success">Dobrá</string>
+ <string name="validation_status_failure">Špatná</string>
+ <string name="enter_invite_code">Zadejte kód pozvánky</string>
+ <string name="invalid_code">Neplatný kód</string>
+ <string name="automatic_bridge">Automaticky (doporučeno)</string>
+ <string name="automatic_bridge_description">O připojení se pokusíme pomocí nejlepších dostupných mostů a protokolů.</string>
+ <string name="manual_bridge">Ruční nastavení</string>
+ <string name="manual_bridge_description">Vybrat soukromé mosty a specifické protokoly</string>
+ <string name="censorship_circumvention_description">Ruční nastavení vyžaduje technické znalosti. Postupujte opatrně.</string>
+ <string name="discovery">Objevování</string>
+ <string name="discovery_description">Cenzoři mohou blokovat zjišťování kritických informací o konfiguraci od vašeho poskytovatele. Chcete-li blokování obejít, zvolte možnost obcházení.</string>
+ <string name="automatically_select">Automaticky vybrat</string>
+ <string name="invite_proxy">Proxy pozvánek</string>
+ <string name="tunnelling">Tunelování</string>
+ <string name="tunnelling_description">Cenzoři mohou blokovat přístup k otevřenému internetu. Chcete-li blokování obejít, zvolte možnost obcházení.</string>
+ <string name="port_hopping">Přeskakování portů</string>
+ <string name="port_hopping_description">"Cenzoři používají analýzu provozu k blokování přístupu k otevřenému internetu. Přeskakování portů jim to může ztížit. "</string>
+ <string name="error_invite_title">Jejda, s tímto kódem pozvánky je něco špatně:</string>
+ <string name="error_invite">Neplatný kód pozvánky: %1$s</string>
+ <string name="error_invite_copy">Kopírovat kód pozvánky</string>
+ <string name="error_invite_hint">Kód můžete zkopírovat a sdílet s vaším poskytovatelem pro žádost o podporu.</string>
+ <string name="error_invite_unknown_type">typ kódu pozvánky %1$s je neplatný.</string>
+ <string name="error_invite_address_format">adresa proxy pozvánky nedodržuje formát ipadresa:port.</string>
+ <string name="error_invite_certificate_length">certifikát má nesprávný počet znaků (%1$s).</string>
+ <string name="error_invite_certificate_missing">certifikát proxy pozvánky chybí.</string>
+ <string name="error_invite_fqdn_length">kód pozvánky by měl obsahovat plně kvalifikované doménové jméno, bylo obdrženo %1$s.</string>
+ <string name="error_invite_fqdn_missing">chybí plně kvalifikované doménové jméno.</string>
+ <string name="error_invite_auth_missing">chybí ověřovací token.</string>
+ <string name="error_invite_fqdn_invalid">kód pozvánky obsahuje neplatné znaky v %1$s</string>
</resources>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 0d3c80a2..b5cde499 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -1,267 +1,272 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Wiederholen</string>
- <string name="repository_url_text">Quelltext verfügbar unter: https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Fehlerticketsystem zugänglich unter https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Übersetzungen sind sehr willkommen. Schau dir unser Transifex Projekt unter https://www.transifex.com/projects/p/bitmask an.</string>
- <string name="switch_provider_menu_option">Provider wechseln</string>
- <string name="info">Info</string>
- <string name="show_connection_details">Zeige Verbindungsdetails</string>
- <string name="connection_details">Verbindungsdetails</string>
- <string name="routes_info">Routen: %s</string>
- <string name="routes_info6">IPv6 Routen: %s</string>
- <string name="error_empty_username">Der Benutzername darf nicht leer sein</string>
- <string name="cert_from_keystore">Zertifikat aus dem Keystore: \'%s\' </string>
- <string name="provider_label">Provider:</string>
- <string name="provider_label_none">Kein Provider konfiguriert</string>
- <string name="status_unknown">Status unbekannt.</string>
- <string name="eip_service_label">Verschlüsselte Internetverbindung über VPN</string>
- <string name="configuration_wizard_title">Serviceprovider auswählen</string>
- <string name="add_provider">Neuen Provider hinzufügen</string>
- <string name="introduce_new_provider">Neuen Serviceprovider hinzufügen</string>
- <string name="save">Speichern</string>
- <string name="new_provider_uri">Domain</string>
- <string name="valid_url_entered">Gültige URL</string>
- <string name="not_valid_url_entered">Ungültige URL</string>
- <string name="provider_details_title">Provider Details</string>
- <string name="use_anonymously_button">Anonym benutzen</string>
- <string name="username_hint">Benutzer*innenname</string>
- <string name="username_ask">Bitte geben Sie Ihren Benutzer*innennamen ein</string>
- <string name="password_ask">Bitte Passwort eingeben</string>
- <string name="password_hint">Passwort</string>
- <string name="password_match">Passwörter stimmen überein</string>
- <string name="password_mismatch">Passwörter stimmen nicht überein</string>
- <string name="user_message">Nachricht</string>
- <string name="about_fragment_title">Über</string>
- <string name="exclude_apps_fragment_title">Apps vom VPN ausschließen</string>
- <string name="error_srp_math_error_user_message">Noch einmal versuchen: Serverrechenfehler</string>
- <string name="error_bad_user_password_user_message">Benutzername oder Passwort falsch</string>
- <string name="error_not_valid_password_user_message">Passwort muss mindestens 8 Zeichen lang sein</string>
- <string name="error_client_http_user_message">Noch einmal versuchen: clientseitiger HTTP-Fehler</string>
- <string name="error_io_exception_user_message">Noch einmal versuchen: Eingabe-/Ausgabefehler</string>
- <string name="error_json_exception_user_message">Noch einmal versuchen: falsche Serverantwort</string>
- <string name="error_no_such_algorithm_exception_user_message">Verschlüsselungsalgorithmus nicht gefunden. Bitte aktualisiere deine Android-Version!</string>
- <string name="signup_or_login_button">Registrieren / Anmelden</string>
- <string name="login_button">Anmelden</string>
- <string name="login_to_profile">Anmelden</string>
- <string name="logout_button">Abmelden</string>
- <string name="signup_button">Registrieren</string>
- <string name="create_profile">Profil erstellen</string>
- <string name="setup_provider">Provider einrichten.</string>
- <string name="setup_error_title">Konfigurationsfehler</string>
- <string name="setup_error_configure_button">Konfigurieren</string>
- <string name="setup_error_close_button">Beenden</string>
- <string name="setup_error_text">Es gab einen Fehler beim Konfigurieren von %s. \n\n Starte die Konfiguration erneut oder wähle einen anderen Provider aus, der beim nächsten Start eingerichtet werden soll</string>
- <string name="setup_error_text_custom">Es gab einen Fehler beim Konfigurieren von %s.\n\nMöchtest du erneut konfigurieren oder die App beenden?</string>
- <string name="server_unreachable_message">Der Server ist nicht erreichbar. Bitte versuche es noch einmal.</string>
- <string name="error.security.pinnedcertificate">Sicherheitsfehler. Aktualisiere die App oder wähle einen anderen Provider.</string>
- <string name="malformed_url">Dies scheint kein Provider für %s zu sein.</string>
- <string name="certificate_error">Das ist kein vertrauenswürdiger Provider für %s.</string>
- <string name="service_is_down_error">Service ist nicht verfügbar.</string>
- <string name="configuring_provider">Provider konfigurieren</string>
- <string name="incorrectly_downloaded_certificate_message">Ihr anonymes Zertifikat wurde nicht heruntergeladen</string>
- <string name="downloading_certificate_message">VPN Zertifikat wird heruntergeladen.</string>
- <string name="updating_certificate_message">VPN Zertifikat wird aktualisiert.</string>
- <string name="login.riseup.warning">Riseup Benutzer*innen müssen einen separaten Account erstellen, um den VPN Service nutzen zu können.</string>
- <string name="succesful_authentication_message">Bestätigt</string>
- <string name="authentication_failed_message">Authentifizierung fehlgeschlagen</string>
- <string name="registration_failed_message">Registrierung fehlgeschlagen</string>
- <string name="eip_status_start_pending">Initiiere Verbindung</string>
- <string name="eip_status_connecting">Verbinde VPN</string>
- <string name="eip_status_unsecured">Ungesicherte Verbindung</string>
- <string name="eip_status_secured">Sichere Verbindung</string>
- <string name="eip_cancel_connect_title">Verbindung abbrechen?</string>
- <string name="eip_cancel_connect_text">Es existiert ein Verbindungsversuch. Möchtest du diesen abbrechen?</string>
- <string name="eip.warning.browser_inconsistency">Vpn Verbindung deaktivieren? Wenn das VPN aus ist, können persönliche Daten gegenüber deinem Internet Provider oder im lokalen Netzwerk ungeschützt sein.</string>
- <string name="eip_state_not_connected">Nicht am Laufen! Verbindung ist nicht sicher!</string>
- <string name="eip_state_connected">Verbindung sicher</string>
- <string name="provider_problem">Ein Problem mit dem Provider scheint aufgetaucht zu sein.</string>
- <string name="try_another_provider">Bitte versuche einen anderen Provider oder kontaktieren deinen gerade genutzten.</string>
- <string name="default_username">Anonym</string>
- <string name="logging_in">Am Anmelden</string>
- <string name="signing_up">Am Registrieren</string>
- <string name="vpn.button.turn.on">Einschalten</string>
- <string name="vpn.button.turn.off">Ausschalten</string>
- <string name="vpn_button_turn_off_blocking">Blocken beenden</string>
- <string name="vpn_securely_routed">Dein Internetverkehr wird sicher durchgeleitet durch:</string>
- <string name="vpn_securely_routed_no_internet">Keine Internetverbindung vorhanden. Sobald du wieder online bist verbindest du dich automatisch mit:</string>
- <string name="log_fragment_title">Log</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Navigationsleiste öffnen</string>
- <string name="navigation_drawer_close">Navigationsleiste schliessen</string>
- <string name="action_example">Beispielaktion</string>
- <string name="action_settings">Einstellungen</string>
- <string name="void_vpn_establish"> %s blockt den ausgehenden Internetverkehr. </string>
- <string name="void_vpn_error_establish">Das Blockieren deines Internetverkehrs schlug fehl. </string>
- <string name="void_vpn_stopped">Blockieren des ausgehenden Internetverkehrs wurde beendet.</string>
- <string name="void_vpn_title">Internetverkehr wird blockiert</string>
- <string name="update_provider_details">Providerdetails werden aktualisiert</string>
- <string name="update_certificate">Zertifikat aktualisieren</string>
- <string name="warning_eip_json_corrupted">Die Aktualisierung der Providerkonfiguration ist fehlgeschlagen.</string>
- <string name="eip_json_corrupted_user_message">Die Aktualisierung der Providerkonfiguration ist fehlgeschlagen. Bitte einloggen, um es erneut zu versuchen.</string>
- <string name="warning_client_parsing_error_gateways">Die Gateways des Providers konnten nicht erkannt werden und sind eventuell falsch konfiguriert. </string>
- <string name="warning_corrupted_provider_details">Die gespeicherten Providerdetails sind fehlerhaft. Du kannst entweder %s aktualisieren (Empfehlung) oder die Providerdetails mithilfe eines kommerziellen CA Zertifikates aktualisieren. </string>
- <string name="warning_corrupted_provider_cert">Das gespeicherte Providerzertifikat ist ungültig. Du kannst entweder %s aktualisieren (Empfehlung) oder das Providerzertifikat mithilfe eines kommerziellen CA Zertifikates aktualisieren. </string>
- <string name="warning_expired_provider_cert">Das gespeicherte Providerzertifikat ist abgelaufen. Du kannst entweder %s aktualisieren (Empfehlung) oder das Providerzertifikat mithilfe eines kommerziellen CA Zertifikates aktualisieren. </string>
- <string name="downloading_vpn_certificate_failed">Das Herunterladen des VPN Zertifikates ist fehlgeschlagen. Versuche es erneut oder wähle einen anderen Provider aus.</string>
- <string name="vpn_certificate_is_invalid">Es ist Zeit, dein VPN Zertifikat zu aktualisieren. Lade ein neues herunter, um dich weiterhin sicher zu verbinden. Dies ist ein Routineaktualisierung.</string>
- <string name="vpn_certificate_user_message">Das VPN Zertifikat ist ungültig. Bitte melde dich an, um ein neues herunterzuladen.</string>
- <string name="save_battery">Batteriesparmodus</string>
- <string name="subtitle_save_battery">Deaktiviert während der VPN Hotspot an ist</string>
- <string name="save_battery_message">Datenverbindungen im Hintergrund bleiben inaktiv solange dein Handy inaktiv ist.</string>
- <string name="always_on_vpn">VPN immer anlassen</string>
- <string name="subtitle_always_on_vpn">Systemeinstellungen öffnen</string>
- <string name="tethering">VPN-Hotspot</string>
- <string name="ipv6Firewall">IPv6 blockieren</string>
- <string name="require_root">Benötigt Rootrechte</string>
- <string name="show_experimental">Experimentelle Funktionen anzeigen</string>
- <string name="hide_experimental">Experimentelle Funktionen verstecken</string>
- <string name="experimental_features">Experimentelle Funktionen</string>
- <string name="tethering_enabled_message">Bitte aktiviere zuerst Tethering in deinen <![CDATA[<b>Systemeinstellungen</b>]]>.</string>
- <string name="tethering_message">Teile dein VPN mit anderen Geräten über:</string>
- <string name="tethering_wifi">Wifi-Hotspot</string>
- <string name="tethering_usb">USB-Tethering</string>
- <string name="tethering_bluetooth">Bluetooth-Tethering</string>
- <string name="do_not_show_again">Nicht erneut anzeigen</string>
- <string name="always_on_vpn_user_message">Um durchgehend aktives VPN in den Android VPN Einstellungen einzuschalten, klicke auf das Zahnrad [img src] und aktiviere den Schalter.</string>
- <string name="always_on_blocking_vpn_user_message">Aktiviere zusätzlich die Option \"Verbindungen nur über VPN zulassen\", um deine Privatsphäre optimal zu schützen.</string>
- <string name="donate_title">Spenden</string>
- <string name="donate_default_message">Spende noch heute, wenn du sichere Kommunikation wertschätzt, die sowohl für Endnutzer*innen als auch Menschen die den Service bereit stellen leicht nutzbar ist.</string>
- <string name="donate_message">LEAP benötigt Spenden und Stipendien. Spende noch heute wenn du sichere Kommunikation wertschätzt, die sowohl für Enandwender*innen als auch Menschen die den Dienst anbieten leicht nutzbar ist.</string>
- <string name="donate_button_remind_later">Später erinnern</string>
- <string name="donate_button_donate">Spenden</string>
- <string name="obfuscated_connection">Mit einer verschleierten Verbindung</string>
- <string name="obfuscated_connection_try">Versuche eine verschleierte Verbindung</string>
- <string name="nav_drawer_obfuscated_connection">Bridges benutzen</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">VPN Filterung umgehen</string>
- <string name="warning_exclude_apps_message">Sei vorsichtig beim Ausschließen von Apps vom VPN. Du verrätst dadurch deine Identität und gefährdest deine Sicherheit.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d ungeschützte App</item>
- <item quantity="other">%d ungeschützte Apps</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s konnte sich nicht verbinden. Es kann sein, dass VPN Verkehr geblockt wird. Möchtest du versuchen, eine verschleierte Verbindung herzustellen?</string>
- <string name="warning_no_more_gateways_no_pt">%s konnte sich nicht verbinden. Möchtest du es noch einmal versuchen?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s konnte keine verschleierte Verbindung herstellen. Möchtest du versuchen, eine normale VPN Verbindung herzustellen?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s konnte sich nicht mit %2$s verbinden. Möchtest du versuchen, dich automatisch mit dem besten Standort zu verbinden?</string>
- <string name="warning_option_try_best">Versuche besten Standort</string>
- <string name="warning_option_try_pt">Teste verschleierte Verbindung</string>
- <string name="warning_option_try_ovpn">Teste normale Verbindung</string>
- <string name="vpn_error_establish">Android konnte nicht den VPN Dienst starten.</string>
- <string name="root_permission_error">%s kann keine Funktionen wie VPN-Hotspot oder IPv6-Firewall ohne Rootrechte ausführen.</string>
- <string name="qs_enable_vpn">%s starten</string>
- <string name="version_update_found">Hier klicken, um das Herunterladen zu starten.</string>
- <string name="version_update_title">Eine neue %s Version wurde gefunden.</string>
- <string name="version_update_apk_description">Eine neue %s Version wird heruntergeladen</string>
- <string name="version_update_download_title">Eine neue %s wurde heruntergeladen.</string>
- <string name="version_update_download_description">Hier klicken um die Aktualisierung zu installieren.</string>
- <string name="version_update_error_pgp_verification">PGP Verifikationsfehler. Heruntergeladene Datei wird ignoriert.</string>
- <string name="version_update_error">Aktualisierung schlug fehl.</string>
- <string name="version_update_error_permissions">Keine Rechte, um die App zu installieren.</string>
- <string name="gateway_selection_title">Ort wählen</string>
- <string name="gateway_selection_recommended_location">Empfohlener Standort</string>
- <string name="gateway_selection_recommended">Empfohlen</string>
- <string name="gateway_selection_manually">Manuell auswählen</string>
- <string name="gateway_selection_automatic_location">Benutze automatisch die beste Verbindung</string>
- <string name="gateway_selection_automatic">Automatisch</string>
- <string name="reconnecting">Wiederverbindung...</string>
- <string name="tor_starting">Brücken werden gestartet, um Zensur zu umgehen...</string>
- <string name="tor_stopping">Stoppe Brücken</string>
- <string name="tor_started">Benutze Brücken, um Internetzensur zu umgehen</string>
- <string name="log_conn_done_pt">Mit der austauschbaren Übertragungsart verbunden</string>
- <string name="log_conn_pt">Verbinde mit einer austauschbaren Übertragungsart</string>
- <string name="log_conn_done">Verbunden mit einem Tor Relay</string>
- <string name="log_handshake">Baue Verbindung mit Relay auf</string>
- <string name="log_handshake_done">Verbindung mit Relay aufgebaut</string>
- <string name="log_onehop_create">Es wird eine verschlüsselte Verbindung zu einem Verzeichnis hergestellt</string>
- <string name="log_requesting_status">Frage den Konsens zum Netzwerkstatus ab</string>
- <string name="log_loading_status">Lade den Konsens zum Netzwerkstatus</string>
- <string name="log_loading_keys">Autorisierungszertifikate werden geladen</string>
- <string name="log_requesting_descriptors">Frage Relay-Deskriptoren ab</string>
- <string name="log_loading_descriptors">Lade Relay-Deskriptoren</string>
- <string name="log_enough_dirinfo">Ausreichend Verzeichnisinformationen geladen, um einen Tor-Kanal aufzubauen</string>
- <string name="log_ap_handshake_done">Relay-Aushandlung zum Aufbau eines Pfades durch das Tor-Netzwerk beendet</string>
- <string name="log_circuit_create">Tor-Kanal wird hergestellt</string>
- <string name="log_done">Läuft</string>
- <string name="channel_name_tor_service">%s Brücken Service</string>
- <string name="channel_description_tor_service">Informiert über die Nutzung von Brücken während der Konfiguration von %s.</string>
- <string name="error_tor_timeout">Das Starten der Brücken schlug fehl. Möchtest du es noch einmal versuchen, oder mit einer unverschleierten, sicheren Verbindung fortfahren, um %s zu konfigurieren?</string>
- <string name="retry_unobfuscated">Unverschleiert wiederholen</string>
- <string name="hide">Verstecken</string>
- <string name="error_network_connection">%s hat keine Internetverbindung. Bitte überprüfe deine WLAN- und Mobilfunknetzeinstellungen. </string>
- <string name="censorship_circumvention">Umgehung von Zensur</string>
- <string name="use_snowflake">Snowflake verwenden</string>
- <string name="snowflake_description">Schützt den Konfigurationsprozess vor Zensur. </string>
- <string name="vpn_settings">VPN-Einstellungen</string>
- <string name="prefer_udp">Nutze UDP, falls verfügbar</string>
- <string name="prefer_udp_subtitle">UDP kann schneller und besser für Streaming sein, ist aber nicht in allen Netzwerken verfügbar.</string>
- <string name="disabled_while_bridges_on">Deaktiviert während Brücken genutzt werden.</string>
- <string name="hint_bridges">Nur Orte, die Brücken unterstützen, können gerade ausgewählt werden. </string>
- <string name="option_disable_bridges">Brücken ausschalten</string>
- <string name="eip_state_insecure">Verbindung unsicher</string>
- <string name="connection_not_connected">Möglicherweise gelangen Informationen an Ihren Internet-Provider oder Ihr lokales Netzwerk.</string>
- <string name="eip_state_no_network">Du hast keine funktionierende Internetverbindung. Sobald sie wieder da ist, wirst du automatisch verbunden mit</string>
- <string name="eip_state_blocking">%1$s blockiert die Intenetverbindung</string>
- <string name="disabled_while_udp_on">Deaktiviert während UDP eingeschaltet ist</string>
- <string name="advanced_settings">Erweiterte Einstellungen</string>
- <string name="cancel_connection">Trennen</string>
- <string name="unknown_location">Unbekannter Standort</string>
- <string name="splash_footer">Entwickelt von: LEAP</string>
- <string name="welcome">Willkommen!</string>
- <string name="select_provider">Wähle deinen Provider</string>
- <string name="select_provider_description">Wenn du ein VPN benutzt, überträgst du dein Vertrauen von deinem Internet Service Provider auf deinen VPN-Anbieter. Bitmask verbindet sich nur mit VPN Providern, die in der Vergangenheit bewiesen haben, dass sie für einen guten Datenschutz einstehen.</string>
- <string name="provider_description_riseup">Riseup bietet Online-Kommunikationswerkzeuge für Menschen und Gruppen, die sich für einen progressiven sozialen Wandel einsetzen. Wir sind ein Projekt zur Verwirklichung demokratischer Alternativen und ermöglichen mehr Selbstbestimmung, indem wir eigene sichere Kommunikationsmittel bereitstellen.</string>
- <string name="next">Weiter</string>
- <string name="add_provider_description">Bitmask ermöglicht es, sich mit Anbietern zu verbinden, die nicht öffentlich gelistet sind. Stelle sicher, dass du den Anbieter kennst und ihm vertraust, wenn du ihn hinzufügst!</string>
- <string name="add_provider_prompt">Gibt die Anbieter URL hier ein.</string>
- <string name="invite_code_provider_description">Bitmask ermöglicht es dir, dich mittels Einladungscodes mit einem VPN-Anbieter zu verbinden.</string>
- <string name="invite_code_provider_prompt">Gibt deinen Einladungscode hier ein.</string>
- <string name="qr_scanner_prompt">Lese QR Code</string>
- <string name="provider_description_calyx">Calyx ist eine gemeinnützige Bildungs- und Forschungsorganisation, die sich dem Studium, der Erprobung, Entwicklung und Umsetzung von Technologien und Instrumenten zum Schutz der Privatsphäre widmet, um Rede- und Meinungsfreiheit, zivilgesellschaftliches Engagement und Datenschutzrechte im Internet und in der Mobilfunkbranche zu fördern.</string>
- <string name="title_circumvention_setup">Benötigst du die Umgehung von Zensur?</string>
- <string name="circumvention_setup_description">Wenn du an einem Ort lebst, wo das Internet zensiert wird, kannst du unsere Optionen zur Umgehung der Zensur nutzen, um auf alle Internetdienste zuzugreifen. Diese Optionen werden deine Verbindung verlangsamen!</string>
- <string name="circumvention_setup_hint">%s versucht automatisch, dich mithilfe einer Reihe von Umgehungstechnologien mit dem Internet zu verbinden. Du kannst dies in den erweiterten Einstellungen genau anpassen.</string>
- <string name="use_standard_vpn">Benutze die Standardverbindung von %s</string>
- <string name="use_circumvention_tech">Benutze Umgehungstechnologie (langsamer)</string>
- <string name="description_configure_provider">Um eine Verbindung zu Ihrem Provider herzustellen, holt %1$s alle erforderlichen Konfigurationsinformationen ein. Dies geschieht nur während der Ersteinrichtung.</string>
- <string name="description_configure_provider_circumvention">%1$s versucht, alle erforderlichen Konfigurationsdaten vom Anbieter zu empfangen. Dies geschieht nur bei der Ersteinrichtung. Du hast dich für die Umgehungstechnologie entschieden, daher kann dies einige Zeit dauern.</string>
- <string name="details">Details</string>
- <string name="tor_status">Tor-Status</string>
- <string name="snowflake_status">Snowflake-Status</string>
- <string name="snowflake_started">Snowflake-Client gestartet</string>
- <string name="snowflake_negotiating_rendezvous_http">Aushandlung eines Snowflake-Proxy-Rendezvous (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Aushandlung eines Snowflake-Proxy-Rendezvous (AMP Cache)</string>
- <string name="snowflake_socks_error">Snowflake SOCKS Fehler</string>
- <string name="snowflake_broker_success">Snowflake-Proxy-Rendezvous erfolgreich</string>
- <string name="snowflake_sending_data">Sende Daten über Snowflake</string>
- <string name="title_upcoming_connection_request">Bevorstehende Verbindungsanfrage</string>
- <string name="title_upcoming_request">Anstehende Anfragen</string>
- <string name="title_upcoming_request_summary">In den nächsten Schritten fragt dich Android um die Erlaubnis für die VPN-Nutzung und für das Anzeigen von Benachrichtigungen.</string>
- <string name="title_upcoming_connection_request_summary_custom">Das Akzeptieren der Verbindungsanfrage ist wichtig, um die Kernfunktionalität von %s ausführen zu können.</string>
- <string name="title_upcoming_connection_request_summary">In Hinsicht auf die Verbindungsanfrage ist es wichtig zu wissen, dass Bitmask nur mit vertrauenswürdigen Anbietern zusammenarbeitet, die sich an bewährte Praktiken für VPNs halten und nachweislich die Daten und Identitäten der Benutzer*innen schützen. Wenn du dich jedoch manuell mit einem nicht-öffentlichen Anbieter verbindest, stelle sicher, dass du diesem vertraust.</string>
- <string name="title_upcoming_notification_request_summary">Das Akzeptieren der Benachrichtungsanfrage ermöglicht der App im Hintergrund zu laufen und erlaubt es dir den Datenverbrauch im Benachrichtungscenter zu sehen.</string>
- <string name="title_upcoming_notifications_request">Bevorstehende Benachrichtigungsanfrage</string>
- <string name="title_setup_success">Du bist startklar!</string>
- <string name="setup_success_description">Klicke auf die Schaltfläche unten, um eine Verbindung herzustellen</string>
- <string name="permission_rejected">Rechteanfrage abgelehnt.</string>
- <string name="login_not_supported">Die aktuelle App-Version unterstützt keine Logins, was du benötigst, um dein VPN-Zertifikat für diesen Anbieter zu aktualisieren.</string>
- <string name="select_language">Sprache auswählen</string>
- <string name="syntax_check">Syntax-Überprüfung:</string>
- <string name="validation_status_success">Gut</string>
- <string name="validation_status_failure">ungültig</string>
- <string name="enter_invite_code">Einladungscode eingeben</string>
- <string name="scan_qr_code">Lese QR Code</string>
- <string name="invalid_code">Ungültiger Code</string>
- <string name="automatic_bridge">Automatisch (empfohlen)</string>
- <string name="automatic_bridge_description">Die Verbindung wird mit den besten verfügbaren Brücken und Protokollen versucht.</string>
- <string name="manual_bridge">Manuelle Konfiguration</string>
- <string name="manual_bridge_description">Wähle private Brücken und spezifische Protokolle aus</string>
- <string name="censorship_circumvention_description">Die manuelle Konfiguration verlangt technisches Verständnis. Gehe mit Bedacht vor!</string>
- <string name="discovery">Provider-Erkennung</string>
- <string name="discovery_description">Zensoren können den Konfigurationsprozess mit deinem Provider blockieren. Wähle eine der Optionen, um die Sperren zu umgehen.</string>
- <string name="automatically_select">Automatisch auswählen</string>
- <string name="invite_proxy">Einladungsproxy</string>
- <string name="tunnelling">Tunnelaufbau</string>
- <string name="tunnelling_description">Zensoren können den Zugang zum offenen Internet blockieren. Wähle eine der Optionen, um solche Sperren zu umgehen.</string>
- <string name="port_hopping">Springen über verschiedene Ports</string>
- <string name="port_hopping_description">Zensoren nutzen die Analyse des Datenverkehrs, um den Zugang zum offenen Internet zu blockieren. Das Springen über verschiedene Ports kann dies für sie schwieriger machen. </string>
+ <string name="retry">Wiederholen</string>
+ <string name="repository_url_text">Quelltext verfügbar unter: https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Fehlerticketsystem zugänglich unter https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Übersetzungen sind herzlich willkommen. Sieh dir unser Projekt unter https://localizationlab.weblate.cloud/projects/bitmask/ an.</string>
+ <string name="switch_provider_menu_option">Provider wechseln</string>
+ <string name="info">Info</string>
+ <string name="show_connection_details">Zeige Verbindungsdetails</string>
+ <string name="connection_details">Verbindungsdetails</string>
+ <string name="routes_info">Routen: %s</string>
+ <string name="routes_info6">IPv6 Routen: %s</string>
+ <string name="error_empty_username">Der Benutzername darf nicht leer sein</string>
+ <string name="cert_from_keystore">Zertifikat aus dem Keystore: \'%s\' </string>
+ <string name="provider_label">Provider:</string>
+ <string name="provider_label_none">Kein Provider konfiguriert</string>
+ <string name="status_unknown">Status unbekannt.</string>
+ <string name="eip_service_label">Verschlüsselte Internetverbindung über VPN</string>
+ <string name="configuration_wizard_title">Serviceprovider auswählen</string>
+ <string name="add_provider">Neuen Provider hinzufügen</string>
+ <string name="introduce_new_provider">Neuen Serviceprovider hinzufügen</string>
+ <string name="save">Speichern</string>
+ <string name="new_provider_uri">Domain</string>
+ <string name="valid_url_entered">Gültige URL</string>
+ <string name="not_valid_url_entered">Ungültige URL</string>
+ <string name="provider_details_title">Provider Details</string>
+ <string name="use_anonymously_button">Anonym benutzen</string>
+ <string name="username_hint">Benutzer*innenname</string>
+ <string name="username_ask">Bitte geben Sie Ihren Benutzer*innennamen ein</string>
+ <string name="password_ask">Bitte Passwort eingeben</string>
+ <string name="password_hint">Passwort</string>
+ <string name="password_match">Passwörter stimmen überein</string>
+ <string name="password_mismatch">Passwörter stimmen nicht überein</string>
+ <string name="user_message">Nachricht</string>
+ <string name="about_fragment_title">Über</string>
+ <string name="exclude_apps_fragment_title">Apps vom VPN ausschließen</string>
+ <string name="error_srp_math_error_user_message">Noch einmal versuchen: Serverrechenfehler</string>
+ <string name="error_bad_user_password_user_message">Benutzername oder Passwort falsch</string>
+ <string name="error_not_valid_password_user_message">Passwort muss mindestens 8 Zeichen lang sein</string>
+ <string name="error_client_http_user_message">Noch einmal versuchen: clientseitiger HTTP-Fehler</string>
+ <string name="error_io_exception_user_message">Noch einmal versuchen: Eingabe-/Ausgabefehler</string>
+ <string name="error_json_exception_user_message">Noch einmal versuchen: falsche Serverantwort</string>
+ <string name="error_no_such_algorithm_exception_user_message">Verschlüsselungsalgorithmus nicht gefunden. Bitte aktualisiere deine Android-Version!</string>
+ <string name="signup_or_login_button">Registrieren / Anmelden</string>
+ <string name="login_button">Anmelden</string>
+ <string name="login_to_profile">Anmelden</string>
+ <string name="logout_button">Abmelden</string>
+ <string name="signup_button">Registrieren</string>
+ <string name="create_profile">Profil erstellen</string>
+ <string name="setup_provider">Provider einrichten.</string>
+ <string name="setup_error_title">Konfigurationsfehler</string>
+ <string name="setup_error_configure_button">Konfigurieren</string>
+ <string name="setup_error_close_button">Beenden</string>
+ <string name="setup_error_text">Es gab einen Fehler beim Konfigurieren von %s. \n\n Starte die Konfiguration erneut oder wähle einen anderen Provider aus, der beim nächsten Start eingerichtet werden soll</string>
+ <string name="setup_error_text_custom">Es gab einen Fehler beim Konfigurieren von %s.\n\nMöchtest du erneut konfigurieren oder die App beenden?</string>
+ <string name="server_unreachable_message">Der Server ist nicht erreichbar. Bitte versuche es noch einmal.</string>
+ <string name="error.security.pinnedcertificate">Sicherheitsfehler. Aktualisiere die App oder wähle einen anderen Provider.</string>
+ <string name="malformed_url">Dies scheint kein Provider für %s zu sein.</string>
+ <string name="certificate_error">Das ist kein vertrauenswürdiger Provider für %s.</string>
+ <string name="service_is_down_error">Service ist nicht verfügbar.</string>
+ <string name="configuring_provider">Provider konfigurieren</string>
+ <string name="downloading_certificate_message">VPN Zertifikat wird heruntergeladen.</string>
+ <string name="updating_certificate_message">VPN Zertifikat wird aktualisiert.</string>
+ <string name="login.riseup.warning">Riseup Benutzer*innen müssen einen separaten Account erstellen, um den VPN Service nutzen zu können.</string>
+ <string name="succesful_authentication_message">Bestätigt</string>
+ <string name="authentication_failed_message">Authentifizierung fehlgeschlagen</string>
+ <string name="registration_failed_message">Registrierung fehlgeschlagen</string>
+ <string name="eip_status_start_pending">Initiiere Verbindung</string>
+ <string name="eip_status_connecting">Verbinde VPN</string>
+ <string name="eip_status_unsecured">Ungesicherte Verbindung</string>
+ <string name="eip_status_secured">Sichere Verbindung</string>
+ <string name="eip_cancel_connect_title">Verbindung abbrechen?</string>
+ <string name="eip_cancel_connect_text">Es existiert ein Verbindungsversuch. Möchtest du diesen abbrechen?</string>
+ <string name="eip.warning.browser_inconsistency">Vpn Verbindung deaktivieren? Wenn das VPN aus ist, können persönliche Daten gegenüber deinem Internet Provider oder im lokalen Netzwerk ungeschützt sein.</string>
+ <string name="eip_state_not_connected">Nicht am Laufen! Verbindung ist nicht sicher!</string>
+ <string name="eip_state_connected">Verbindung sicher</string>
+ <string name="provider_problem">Ein Problem mit dem Provider scheint aufgetaucht zu sein.</string>
+ <string name="try_another_provider">Bitte versuche einen anderen Provider oder kontaktieren deinen gerade genutzten.</string>
+ <string name="default_username">Anonym</string>
+ <string name="logging_in">Am Anmelden</string>
+ <string name="signing_up">Am Registrieren</string>
+ <string name="vpn.button.turn.on">Einschalten</string>
+ <string name="vpn.button.turn.off">Ausschalten</string>
+ <string name="vpn_button_turn_off_blocking">Blocken beenden</string>
+ <string name="vpn_securely_routed">Dein Internetverkehr wird sicher durchgeleitet durch:</string>
+ <string name="vpn_securely_routed_no_internet">Keine Internetverbindung vorhanden. Sobald du wieder online bist verbindest du dich automatisch mit:</string>
+ <string name="log_fragment_title">Log</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Navigationsleiste öffnen</string>
+ <string name="navigation_drawer_close">Navigationsleiste schliessen</string>
+ <string name="action_example">Beispielaktion</string>
+ <string name="action_settings">Einstellungen</string>
+ <string name="void_vpn_establish"> %s blockt den ausgehenden Internetverkehr. </string>
+ <string name="void_vpn_error_establish">Das Blockieren deines Internetverkehrs schlug fehl. </string>
+ <string name="void_vpn_stopped">Blockieren des ausgehenden Internetverkehrs wurde beendet.</string>
+ <string name="void_vpn_title">Internetverkehr wird blockiert</string>
+ <string name="update_provider_details">Providerdetails werden aktualisiert</string>
+ <string name="update_certificate">Zertifikat aktualisieren</string>
+ <string name="warning_eip_json_corrupted">Die Aktualisierung der Providerkonfiguration ist fehlgeschlagen.</string>
+ <string name="eip_json_corrupted_user_message">Die Aktualisierung der Providerkonfiguration ist fehlgeschlagen. Bitte einloggen, um es erneut zu versuchen.</string>
+ <string name="warning_client_parsing_error_gateways">Die Gateways des Providers konnten nicht erkannt werden und sind eventuell falsch konfiguriert. </string>
+ <string name="warning_corrupted_provider_details">Die gespeicherten Providerdetails sind fehlerhaft. Du kannst entweder %s aktualisieren (Empfehlung) oder die Providerdetails mithilfe eines kommerziellen CA Zertifikates aktualisieren. </string>
+ <string name="warning_corrupted_provider_cert">Das gespeicherte Providerzertifikat ist ungültig. Du kannst entweder %s aktualisieren (Empfehlung) oder das Providerzertifikat mithilfe eines kommerziellen CA Zertifikates aktualisieren. </string>
+ <string name="warning_expired_provider_cert">Das gespeicherte Providerzertifikat ist abgelaufen. Du kannst entweder %s aktualisieren (Empfehlung) oder das Providerzertifikat mithilfe eines kommerziellen CA Zertifikates aktualisieren. </string>
+ <string name="downloading_vpn_certificate_failed">Das Herunterladen des VPN Zertifikates ist fehlgeschlagen. Versuche es erneut oder wähle einen anderen Provider aus.</string>
+ <string name="vpn_certificate_is_invalid">Es ist Zeit, dein VPN Zertifikat zu aktualisieren. Lade ein neues herunter, um dich weiterhin sicher zu verbinden. Dies ist ein Routineaktualisierung.</string>
+ <string name="save_battery">Batteriesparmodus</string>
+ <string name="subtitle_save_battery">Deaktiviert während der VPN Hotspot an ist</string>
+ <string name="save_battery_message">Datenverbindungen im Hintergrund bleiben inaktiv solange dein Handy inaktiv ist.</string>
+ <string name="always_on_vpn">VPN immer anlassen</string>
+ <string name="subtitle_always_on_vpn">Systemeinstellungen öffnen</string>
+ <string name="tethering">VPN-Hotspot</string>
+ <string name="ipv6Firewall">IPv6 blockieren</string>
+ <string name="require_root">Benötigt Rootrechte</string>
+ <string name="show_experimental">Experimentelle Funktionen anzeigen</string>
+ <string name="hide_experimental">Experimentelle Funktionen verstecken</string>
+ <string name="experimental_features">Experimentelle Funktionen</string>
+ <string name="tethering_enabled_message">Bitte aktiviere zuerst Tethering in deinen <![CDATA[<b>Systemeinstellungen</b>]]>.</string>
+ <string name="tethering_message">Teile dein VPN mit anderen Geräten über:</string>
+ <string name="tethering_wifi">Wifi-Hotspot</string>
+ <string name="tethering_usb">USB-Tethering</string>
+ <string name="tethering_bluetooth">Bluetooth-Tethering</string>
+ <string name="do_not_show_again">Nicht erneut anzeigen</string>
+ <string name="always_on_vpn_user_message">Um durchgehend aktives VPN in den Android VPN Einstellungen einzuschalten, klicke auf das Zahnrad [img src] und aktiviere den Schalter.</string>
+ <string name="always_on_blocking_vpn_user_message">Aktiviere zusätzlich die Option \"Verbindungen nur über VPN zulassen\", um deine Privatsphäre optimal zu schützen.</string>
+ <string name="donate_title">Spenden</string>
+ <string name="donate_default_message">Spende noch heute, wenn du sichere Kommunikation wertschätzt, die sowohl für Endnutzer*innen als auch Menschen die den Service bereit stellen leicht nutzbar ist.</string>
+ <string name="donate_message">LEAP benötigt Spenden und Stipendien. Spende noch heute wenn du sichere Kommunikation wertschätzt, die sowohl für Endandwender*innen als auch Menschen die den Dienst anbieten leicht nutzbar ist.</string>
+ <string name="donate_button_remind_later">Später erinnern</string>
+ <string name="donate_button_donate">Spenden</string>
+ <string name="obfuscated_connection">Mit einer verschleierten Verbindung</string>
+ <string name="obfuscated_connection_try">Versuche eine verschleierte Verbindung</string>
+ <string name="nav_drawer_obfuscated_connection">Bridges benutzen</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">VPN Filterung umgehen</string>
+ <string name="warning_exclude_apps_message">Sei vorsichtig beim Ausschließen von Apps vom VPN. Du verrätst dadurch deine Identität und gefährdest deine Sicherheit.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d ungeschützte App</item>
+ <item quantity="other">%d ungeschützte Apps</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s konnte sich nicht verbinden. Es kann sein, dass VPN Verkehr geblockt wird. Möchtest du versuchen, eine verschleierte Verbindung herzustellen?</string>
+ <string name="warning_no_more_gateways_no_pt">%s konnte sich nicht verbinden. Möchtest du es noch einmal versuchen?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s konnte keine verschleierte Verbindung herstellen. Möchtest du versuchen, eine normale VPN Verbindung herzustellen?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s konnte sich nicht mit %2$s verbinden. Möchtest du versuchen, dich automatisch mit dem besten Standort zu verbinden?</string>
+ <string name="warning_option_try_best">Versuche besten Standort</string>
+ <string name="warning_option_try_pt">Teste verschleierte Verbindung</string>
+ <string name="warning_option_try_ovpn">Teste normale Verbindung</string>
+ <string name="vpn_error_establish">Android konnte nicht den VPN Dienst starten.</string>
+ <string name="root_permission_error">%s kann keine Funktionen wie VPN-Hotspot oder IPv6-Firewall ohne Rootrechte ausführen.</string>
+ <string name="qs_enable_vpn">%s starten</string>
+ <string name="version_update_found">Hier klicken, um das Herunterladen zu starten.</string>
+ <string name="version_update_title">Eine neue %s Version wurde gefunden.</string>
+ <string name="version_update_apk_description">Eine neue %s Version wird heruntergeladen</string>
+ <string name="version_update_download_title">Eine neue %s wurde heruntergeladen.</string>
+ <string name="version_update_download_description">Hier klicken um die Aktualisierung zu installieren.</string>
+ <string name="version_update_error_pgp_verification">PGP Verifikationsfehler. Heruntergeladene Datei wird ignoriert.</string>
+ <string name="version_update_error">Aktualisierung schlug fehl.</string>
+ <string name="version_update_error_permissions">Keine Rechte, um die App zu installieren.</string>
+ <string name="gateway_selection_title">Ort wählen</string>
+ <string name="gateway_selection_recommended_location">Empfohlener Standort</string>
+ <string name="gateway_selection_recommended">Empfohlen</string>
+ <string name="gateway_selection_manually">Manuell auswählen</string>
+ <string name="gateway_selection_automatic_location">Benutze automatisch die beste Verbindung</string>
+ <string name="gateway_selection_automatic">Automatisch</string>
+ <string name="reconnecting">Wiederverbindung...</string>
+ <string name="tor_starting">Brücken werden gestartet, um Zensur zu umgehen...</string>
+ <string name="tor_stopping">Stoppe Brücken</string>
+ <string name="tor_started">Benutze Brücken, um Internetzensur zu umgehen</string>
+ <string name="log_conn_done_pt">Mit der austauschbaren Übertragungsart verbunden</string>
+ <string name="log_conn_pt">Verbinde mit einer austauschbaren Übertragungsart</string>
+ <string name="log_conn_done">Verbunden mit einem Tor Relay</string>
+ <string name="log_handshake">Baue Verbindung mit Relay auf</string>
+ <string name="log_handshake_done">Verbindung mit Relay aufgebaut</string>
+ <string name="log_onehop_create">Es wird eine verschlüsselte Verbindung zu einem Verzeichnis hergestellt</string>
+ <string name="log_requesting_status">Frage den Konsens zum Netzwerkstatus ab</string>
+ <string name="log_loading_status">Lade den Konsens zum Netzwerkstatus</string>
+ <string name="log_loading_keys">Autorisierungszertifikate werden geladen</string>
+ <string name="log_requesting_descriptors">Frage Relay-Deskriptoren ab</string>
+ <string name="log_loading_descriptors">Lade Relay-Deskriptoren</string>
+ <string name="log_enough_dirinfo">Ausreichend Verzeichnisinformationen geladen, um einen Tor-Kanal aufzubauen</string>
+ <string name="log_ap_handshake_done">Relay-Aushandlung zum Aufbau eines Pfades durch das Tor-Netzwerk beendet</string>
+ <string name="log_circuit_create">Tor-Kanal wird hergestellt</string>
+ <string name="log_done">Läuft</string>
+ <string name="channel_name_tor_service">%s Brücken Service</string>
+ <string name="channel_description_tor_service">Informiert über die Nutzung von Brücken während der Konfiguration von %s.</string>
+ <string name="error_tor_timeout">Das Starten der Brücken schlug fehl. Möchtest du es noch einmal versuchen, oder mit einer unverschleierten, sicheren Verbindung fortfahren, um %s zu konfigurieren?</string>
+ <string name="retry_unobfuscated">Unverschleiert wiederholen</string>
+ <string name="hide">Verstecken</string>
+ <string name="error_network_connection">%s hat keine Internetverbindung. Bitte überprüfe deine WLAN- und Mobilfunknetzeinstellungen. </string>
+ <string name="censorship_circumvention">Umgehung von Zensur</string>
+ <string name="use_snowflake">Snowflake verwenden</string>
+ <string name="snowflake_description">Schützt den Konfigurationsprozess vor Zensur. </string>
+ <string name="vpn_settings">VPN-Einstellungen</string>
+ <string name="prefer_udp">Nutze UDP, falls verfügbar</string>
+ <string name="prefer_udp_subtitle">UDP kann schneller und besser für Streaming sein, ist aber nicht in allen Netzwerken verfügbar.</string>
+ <string name="disabled_while_bridges_on">Deaktiviert während Brücken genutzt werden.</string>
+ <string name="hint_bridges">Nur Orte, die Brücken unterstützen, können gerade ausgewählt werden. </string>
+ <string name="option_disable_bridges">Brücken ausschalten</string>
+ <string name="eip_state_insecure">Verbindung unsicher</string>
+ <string name="connection_not_connected">Möglicherweise gelangen Informationen an Ihren Internet-Provider oder Ihr lokales Netzwerk.</string>
+ <string name="eip_state_no_network">Du hast keine funktionierende Internetverbindung. Sobald sie wieder da ist, wirst du automatisch verbunden mit</string>
+ <string name="eip_state_blocking">%1$s blockiert die Intenetverbindung</string>
+ <string name="disabled_while_udp_on">Deaktiviert während UDP eingeschaltet ist</string>
+ <string name="advanced_settings">Erweiterte Einstellungen</string>
+ <string name="cancel_connection">Trennen</string>
+ <string name="unknown_location">Unbekannter Standort</string>
+ <string name="splash_footer">Entwickelt von: LEAP</string>
+ <string name="welcome">Willkommen!</string>
+ <string name="select_provider">Wähle deinen Provider</string>
+ <string name="provider_description_riseup">Riseup bietet Online-Kommunikationswerkzeuge für Menschen und Gruppen, die sich für einen progressiven sozialen Wandel einsetzen. Wir sind ein Projekt zur Verwirklichung demokratischer Alternativen und ermöglichen mehr Selbstbestimmung, indem wir eigene sichere Kommunikationsmittel bereitstellen.</string>
+ <string name="next">Weiter</string>
+ <string name="add_provider_description">Bitmask ermöglicht es, sich mit Anbietern zu verbinden, die nicht öffentlich gelistet sind. Stelle sicher, dass du den Anbieter kennst und ihm vertraust, wenn du ihn hinzufügst!</string>
+ <string name="add_provider_prompt">Gibt die Anbieter URL hier ein.</string>
+ <string name="invite_code_provider_description">Bitmask ermöglicht es dir, dich mittels Einladungscodes mit einem VPN-Anbieter zu verbinden.</string>
+ <string name="invite_code_provider_prompt">Gibt deinen Einladungscode hier ein.</string>
+ <string name="qr_scanner_prompt">Lese QR Code</string>
+ <string name="provider_description_calyx">Calyx ist eine gemeinnützige Bildungs- und Forschungsorganisation, die sich dem Studium, der Erprobung, Entwicklung und Umsetzung von Technologien und Instrumenten zum Schutz der Privatsphäre widmet, um Rede- und Meinungsfreiheit, zivilgesellschaftliches Engagement und Datenschutzrechte im Internet und in der Mobilfunkbranche zu fördern.</string>
+ <string name="title_circumvention_setup">Benötigst du die Umgehung von Zensur?</string>
+ <string name="circumvention_setup_description">Wenn du an einem Ort lebst, wo das Internet zensiert wird, kannst du unsere Optionen zur Umgehung der Zensur nutzen, um auf alle Internetdienste zuzugreifen. Diese Optionen werden deine Verbindung verlangsamen!</string>
+ <string name="use_standard_vpn">Benutze die Standardverbindung von %s</string>
+ <string name="use_circumvention_tech">Benutze Umgehungstechnologie (langsamer)</string>
+ <string name="description_configure_provider">Um eine Verbindung zu Ihrem Provider herzustellen, holt %1$s alle erforderlichen Konfigurationsinformationen ein. Dies geschieht nur während der Ersteinrichtung.</string>
+ <string name="description_configure_provider_circumvention">%1$s versucht, alle erforderlichen Konfigurationsdaten vom Anbieter zu empfangen. Dies geschieht nur bei der Ersteinrichtung. Du hast dich für die Umgehungstechnologie entschieden, daher kann dies einige Zeit dauern.</string>
+ <string name="details">Details</string>
+ <string name="tor_status">Tor-Status</string>
+ <string name="snowflake_status">Snowflake-Status</string>
+ <string name="snowflake_started">Snowflake-Client gestartet</string>
+ <string name="title_upcoming_connection_request">Bevorstehende Verbindungsanfrage</string>
+ <string name="title_upcoming_request">Anstehende Anfragen</string>
+ <string name="title_upcoming_request_summary">In den nächsten Schritten fragt dich Android um die Erlaubnis für die VPN-Nutzung und für das Anzeigen von Benachrichtigungen.</string>
+ <string name="title_upcoming_connection_request_summary_custom">Das Akzeptieren der Verbindungsanfrage ist wichtig, um die Kernfunktionalität von %s ausführen zu können.</string>
+ <string name="title_upcoming_connection_request_summary">In Hinsicht auf die Verbindungsanfrage ist es wichtig zu wissen, dass Bitmask nur mit vertrauenswürdigen Anbietern zusammenarbeitet, die sich an bewährte Praktiken für VPNs halten und nachweislich die Daten und Identitäten der Benutzer*innen schützen. Wenn du dich jedoch manuell mit einem nicht-öffentlichen Anbieter verbindest, stelle sicher, dass du diesem vertraust.</string>
+ <string name="title_upcoming_notification_request_summary">Das Akzeptieren der Benachrichtungsanfrage ermöglicht der App im Hintergrund zu laufen und erlaubt es dir den Datenverbrauch im Benachrichtungscenter zu sehen.</string>
+ <string name="title_upcoming_notifications_request">Bevorstehende Benachrichtigungsanfrage</string>
+ <string name="title_setup_success">Du bist startklar!</string>
+ <string name="setup_success_description">Klicke auf die Schaltfläche unten, um eine Verbindung herzustellen</string>
+ <string name="permission_rejected">Rechteanfrage abgelehnt.</string>
+ <string name="login_not_supported">Die aktuelle App-Version unterstützt keine Logins, was du benötigst, um dein VPN-Zertifikat für diesen Anbieter zu aktualisieren.</string>
+ <string name="select_language">Sprache auswählen</string>
+ <string name="system_default">Gerätesprache</string>
+ <string name="syntax_check">Syntax-Überprüfung:</string>
+ <string name="validation_status_success">Gut</string>
+ <string name="validation_status_failure">ungültig</string>
+ <string name="enter_invite_code">Einladungscode eingeben</string>
+ <string name="invalid_code">Ungültiger Code</string>
+ <string name="automatic_bridge">Automatisch (empfohlen)</string>
+ <string name="automatic_bridge_description">Die Verbindung wird mit den besten verfügbaren Brücken und Protokollen versucht.</string>
+ <string name="manual_bridge">Manuelle Konfiguration</string>
+ <string name="manual_bridge_description">Wähle private Brücken und spezifische Protokolle aus</string>
+ <string name="censorship_circumvention_description">Die manuelle Konfiguration verlangt technisches Verständnis. Gehe mit Bedacht vor!</string>
+ <string name="discovery">Provider-Erkennung</string>
+ <string name="discovery_description">Zensoren können den Konfigurationsprozess mit deinem Provider blockieren. Wähle eine der Optionen, um die Sperren zu umgehen.</string>
+ <string name="automatically_select">Automatisch auswählen</string>
+ <string name="invite_proxy">Einladungsproxy</string>
+ <string name="tunnelling">Tunnelaufbau</string>
+ <string name="tunnelling_description">Zensoren können den Zugang zum offenen Internet blockieren. Wähle eine der Optionen, um solche Sperren zu umgehen.</string>
+ <string name="port_hopping">Springen über verschiedene Ports</string>
+ <string name="port_hopping_description">"Zensoren nutzen die Analyse des Datenverkehrs, um den Zugang zum offenen Internet zu blockieren. Das Springen über verschiedene Ports kann dies für sie schwieriger machen. "</string>
+ <string name="select_provider_description">Wenn du ein VPN benutzt, musst du deinem VPN Provider statt deines Internetanbieters vertrauen können. %1$s und %2$s haben in der Vergangenheit bewiesen, für guten Datenschutz einzustehen. Wenn du einen Provider mittels eines Einladungscodes hinzufügst, stelle sicher, dass du ihn kennst und ihm vertraust.</string>
+ <string name="circumvention_setup_hint">%s versucht dich mit Hilfe einer Reihe von Umgehungstechnologien, inklusive Tor, automatisch mit dem Internet zu verbinden. Du kannst dies in den erweiterten Einstellungen genauer konfigurieren.</string>
+ <string name="error_invite_title">Upsi, da ist etwas mit deinem Einladungscode falsch:</string>
+ <string name="error_invite">Ungültiger Einladungscode: %1$s</string>
+ <string name="error_invite_copy">Einladungscode kopieren</string>
+ <string name="error_invite_hint">Du kannst den Code kopieren und mit deinem Provider teilen, um Hilfe anzufragen.</string>
+ <string name="error_invite_unknown_type">der Einladungscode-Typ %1$s ist unbekannt.</string>
+ <string name="error_invite_address_format">die Adresse des Einladungsproxys entspricht nicht dem Format IP-Addresse:Port.</string>
+ <string name="error_invite_certificate_length">das Zertifikat hat eine falsche Anzahl an Zeichen (%1$s).</string>
+ <string name="error_invite_certificate_missing">das Zertifikat des Einladungsproxys fehlt.</string>
+ <string name="error_invite_fqdn_length">der Einladungscode sollte den vollständigen Namen der Domain enthalten, hat aber %1$s.</string>
+ <string name="error_invite_fqdn_missing">der vollständige Name der Domain fehlt.</string>
+ <string name="error_invite_auth_missing">der Authentifizierungstoken fehlt.</string>
+ <string name="error_invite_fqdn_invalid">der Einladungscode enthält ungültige Zeichen in %1$s</string>
</resources>
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 7c228f65..0fc1213a 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -1,249 +1,250 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Επανάληψη</string>
- <string name="repository_url_text">Ο πηγαίος κώδικας είναι διαθέσιμος στο https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Ο ιχνηλάτης τεχνικών θεμάτων είναι διαθέσιμος στο https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Οι μεταφράσεις είναι ευπρόσδεκτες. Δείτε τη σελίδα μας στο Transifex στο https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Αλλαγή παρόχου</string>
- <string name="info">Πληροφορίες</string>
- <string name="show_connection_details">Προβολή λεπτομερειών σύνδεσης</string>
- <string name="connection_details">Λεπτομέρειες σύνδεσης</string>
- <string name="routes_info">Δρομολογήσεις: %s</string>
- <string name="routes_info6">Δρομολογήσεις IPv6: %s</string>
- <string name="error_empty_username">Το όνομα χρήστη δεν μπορεί να είναι κενό.</string>
- <string name="cert_from_keystore">Λήψη πιστοποιητικού \'%s\' από τη κλειδοθήκη</string>
- <string name="provider_label">Πάροχος</string>
- <string name="provider_label_none">Δε ρυθμίστηκε κάποιος πάροχος</string>
- <string name="status_unknown">Άγνωστη κατάσταση.</string>
- <string name="eip_service_label">Κρυπτογραφημένη πρόσβαση στο διαδίκτυο μέσω VPN</string>
- <string name="configuration_wizard_title">Επίλεξε έναν πάροχο υπηρεσίας</string>
- <string name="add_provider">Προσθήκη νέου παρόχου</string>
- <string name="introduce_new_provider">Πρόσθεσε ένα νέο πάροχο υπηρεσίας</string>
- <string name="save">Αποθήκευση</string>
- <string name="new_provider_uri">Όνομα τομέα</string>
- <string name="valid_url_entered">Η διεύθυνση URL είναι έγκυρη</string>
- <string name="not_valid_url_entered">Μη έγκυρη διεύθυνση URL</string>
- <string name="provider_details_title">Πληροφορίες παρόχου</string>
- <string name="use_anonymously_button">Χρήση ανώνυμα</string>
- <string name="username_hint">Όνομα χρήστη</string>
- <string name="username_ask">Παρακαλούμε εισάγετε όνομα χρήστη</string>
- <string name="password_ask">Παρακαλώ εισάγετε κωδικό</string>
- <string name="password_hint">κωδικός πρόσβασης</string>
- <string name="password_match">Οι κωδικοί ταιριάζουν</string>
- <string name="password_mismatch">Οι κωδικοί δεν ταιριάζουν</string>
- <string name="user_message">Μήνυμα χρήστη</string>
- <string name="about_fragment_title">Σχετικά</string>
- <string name="exclude_apps_fragment_title">Αποκλεισμός εφαρμογών από το VPN </string>
- <string name="error_srp_math_error_user_message">Προσπάθησε ξανά: Μαθηματικό σφάλμα διακομιστή.</string>
- <string name="error_bad_user_password_user_message">Λάθος όνομα χρήστη ή κωδικός πρόσβασης</string>
- <string name="error_not_valid_password_user_message">Πρέπει να έχει τουλάχιστον 8 χαρακτήρες</string>
- <string name="error_client_http_user_message">Προσπάθησε ξανά: Σφάλμα HTTP πελάτη</string>
- <string name="error_io_exception_user_message">Προσπάθησε ξανά: Σφάλμα Ι/Ο</string>
- <string name="error_json_exception_user_message">Προσπάθησε ξανά: Κακή απάντηση από τον διακομιστή</string>
- <string name="error_no_such_algorithm_exception_user_message">Δε βρέθηκε ο αλγόριθμος κρυπτογράφησης. Παρακαλούμε αναβαθμίστε το Android!</string>
- <string name="signup_or_login_button">Εγγραφή/Σύνδεση</string>
- <string name="login_button">Σύνδεση</string>
- <string name="login_to_profile">Σύνδεση στο προφίλ</string>
- <string name="logout_button">Αποσύνδεση</string>
- <string name="signup_button">Εγγραφή</string>
- <string name="create_profile">Δημιουργία προφίλ</string>
- <string name="setup_provider">Ρύθμιση παρόχου</string>
- <string name="setup_error_title">Σφάλμα ρυθμίσεων</string>
- <string name="setup_error_configure_button">Ρύθμιση </string>
- <string name="setup_error_close_button">Έξοδος</string>
- <string name="setup_error_text">Υπήρξε ένα σφάλμα κατά τη ρύθμιση του %s με τον πάροχο που επιλέξατε.\n\nΜπορείτε να ξανακάνετε τις ρυθμίσεις ή να κλείσετε την εφαρμογή και να ρυθμίσετε έναν άλλο πάροχο με την επανεκκίνηση της.</string>
- <string name="setup_error_text_custom">Παρουσιάστηκε σφάλμα κατά τη διαμόρφωση του %s.\n\nΜπορείτε να επιλέξετε επαναδιαμόρφωση ή έξοδο.</string>
- <string name="server_unreachable_message">Ο διακομιστής δεν είναι προσπελάσιμος, παρακαλούμε προσπάθησε ξανά.</string>
- <string name="error.security.pinnedcertificate">Σφάλμα ασφάλειας. Αναβαθμίστε την εφαρμογή ή επιλέξτε άλλο πάροχο.</string>
- <string name="malformed_url">Δεν φαίνεται να είναι πάροχος %s.</string>
- <string name="certificate_error">Δεν είναι έμπιστος πάροχος %s.</string>
- <string name="service_is_down_error">Η υπηρεσία δε λειτουργεί.</string>
- <string name="configuring_provider">Ο πάροχος ρυθμίζεται</string>
- <string name="incorrectly_downloaded_certificate_message">Το ανώνυμο πιστοποιητικό σας δεν ελήφθη</string>
- <string name="downloading_certificate_message">Λήψη πιστοποιητικού VPN</string>
- <string name="updating_certificate_message">Αναβάθμιση πιστοποιητικού VPN</string>
- <string name="login.riseup.warning">Οι χρήστες του Riseup θα πρέπει να δημιουργήσουν ένα ξεχωριστό λογαριασμό για να χρησιμοποιήσουν την υπηρεσία VPN</string>
- <string name="succesful_authentication_message">Πιστοποιήθηκε</string>
- <string name="authentication_failed_message">Αποτυχία πιστοποίησης</string>
- <string name="registration_failed_message">Η εγγραφή απέτυχε</string>
- <string name="eip_status_start_pending">Έναρξη σύνδεσης</string>
- <string name="eip_status_connecting">Σύνδεση σε VPN</string>
- <string name="eip_status_unsecured">Μη ασφαλής σύνδεση</string>
- <string name="eip_status_secured">Ασφαλής σύνδεση</string>
- <string name="eip_cancel_connect_title">Ακύρωση σύνδεσης;</string>
- <string name="eip_cancel_connect_text">Υπάρχει μια προσπάθεια σύνδεσης σε εξέλιξη. Θέλετε να την ακυρώσετε;</string>
- <string name="eip.warning.browser_inconsistency">Κλείσιμο της σύνδεσης VPN; Όταν το VPN είναι κλειστό, μπορεί να διαρρέουν προσωπικές σας πληροφορίες στον πάροχο σας ή στο τοπικό δίκτυο.</string>
- <string name="eip_state_not_connected">Δεν εκτελείται! Μη ασφαλής σύνδεση!</string>
- <string name="eip_state_connected">Ασφαλής σύνδεση</string>
- <string name="provider_problem">Φαίνεται πως υπάρχει κάποιο πρόβλημα με τον πάροχο.</string>
- <string name="try_another_provider">Παρακαλούμε προσπαθήστε με άλλο πάροχο, ή επικοινωνήστε με τον δικό σας.</string>
- <string name="default_username">Ανώνυμος/η</string>
- <string name="logging_in">Συνδέεται</string>
- <string name="signing_up">Εγγράφεται</string>
- <string name="vpn.button.turn.on">Άνοιγμα</string>
- <string name="vpn.button.turn.off">Κλείσιμο</string>
- <string name="vpn_button_turn_off_blocking">Παύση μπλοκαρίσματος</string>
- <string name="vpn_securely_routed">Η κίνηση δεδομένων σας δρομολογείται ασφαλώς μέσω:</string>
- <string name="vpn_securely_routed_no_internet">Δεν εντοπίστηκε σύνδεση στο διαδίκτυο. Όταν επανέλθει θα δρομολογήσουμε την κίνηση σας ασφαλώς μέσω:</string>
- <string name="log_fragment_title">Αρχείο Καταγραφής</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Άνοιγμα συρταριού πλοήγησης</string>
- <string name="navigation_drawer_close">Κλείσιμο συρταριού πλοήγησης</string>
- <string name="action_example">Ενέργεια - παράδειγμα</string>
- <string name="action_settings">Ρυθμίσεις</string>
- <string name="void_vpn_establish">Το %s μπλοκάρει όλη την εξερχόμενη κίνηση διαδικτύου.</string>
- <string name="void_vpn_error_establish">Ο αποκλεισμός όλης της κίνησης στο διαδίκτυο απέτυχε.</string>
- <string name="void_vpn_stopped">Παύση μπλοκαρίσματος όλης της εξερχόμενης κίνησης διαδικτύου.</string>
- <string name="void_vpn_title">Η κίνηση διαδικτύου μπλοκάρεται</string>
- <string name="update_provider_details">Αναβάθμιση λεπτομερειών παρόχου</string>
- <string name="update_certificate">Αναβάθμιση πιστοποιητικού</string>
- <string name="warning_eip_json_corrupted">Η αναβάθμιση των ρυθμίσεων παρόχου απέτυχε.</string>
- <string name="eip_json_corrupted_user_message">Η αναβάθμιση των ρυθμίσεων παρόχου απέτυχε. Παρακαλούμε συνδεθείτε για να ξαναπροσπαθήσετε.</string>
- <string name="warning_client_parsing_error_gateways">Δεν ήταν δυνατή η αναγνώριση των πυλών δικτύου παρόχου. Μπορεί να έχουν ρυθμιστεί λανθασμένα.</string>
- <string name="warning_corrupted_provider_details">Οι αποθηκευμένες λεπτομέρειες του παρόχου έχουν σφάλματα. Μπορείτε είτε να αναβαθμίσετε το %s (προτείνεται), είτε να αναβαθμίσετε τις λεπτομέρειες παρόχου χρησιμοποιώντας ένα εμπορικό πιστοποιητικό CA.</string>
- <string name="warning_corrupted_provider_cert">Το αποθηκευμένο πιστοποιητικό του παρόχου δεν είναι έγκυρο. Μπορείτε είτε να αναβαθμίσετε το %s (προτείνεται), είτε να αναβαθμίσετε τις λεπτομέρειες παρόχου χρησιμοποιώντας ένα εμπορικό πιστοποιητικό CA.</string>
- <string name="warning_expired_provider_cert">Το αποθηκευμένο πιστοποιητικό του παρόχου έχει λήξει. Μπορείτε είτε να αναβαθμίσετε το %s (προτείνεται), είτε να αναβαθμίσετε τις λεπτομέρειες παρόχου χρησιμοποιώντας ένα εμπορικό πιστοποιητικό CA.</string>
- <string name="downloading_vpn_certificate_failed">Το κατέβασμα του πιστοποιητικού του VPN απέτυχε. Προσπαθήστε ξανά ή επιλέξτε άλλο πάροχο.</string>
- <string name="vpn_certificate_is_invalid">Το πιστοποιητικό του VPN δεν είναι έγκυρο. Δοκιμάστε να κατεβάσετε ένα καινούργιο.</string>
- <string name="vpn_certificate_user_message">Το πιστοποιητικό VPN δεν είναι έγκυρο. Παρακαλούμε συνδεθείτε για να κατεβάσετε ένα καινούργιο.</string>
- <string name="save_battery">Εξοικονόμηση μπαταρίας</string>
- <string name="subtitle_save_battery">Απενεργοποιημένο όσο το VPN Hotspot είναι ενεργό</string>
- <string name="save_battery_message">Οι συνδέσεις δεδομένων στο υπόβαθρο θα παύονται όταν το τηλέφωνό σας δεν είναι ενεργό.</string>
- <string name="always_on_vpn">Πάντα ενεργοποιημένο VPN</string>
- <string name="subtitle_always_on_vpn">Άνοιγμα Ρυθμίσεων Συστήματος Android</string>
- <string name="tethering">VPN Hotspot</string>
- <string name="ipv6Firewall">Φραγή IPv6</string>
- <string name="require_root">Απαιτούνται δικαιώματα root</string>
- <string name="show_experimental">Εμφάνιση πειραματικών λειτουργιών</string>
- <string name="hide_experimental">Απόκρυψη πειραματικών λειτουργιών</string>
- <string name="experimental_features">Πειραματικά χαρακτηριστικά</string>
- <string name="tethering_enabled_message">Παρακαλούμε επιβεβαιώστε ότι έχετε πρώτα ενεργοποιήσει το διαμοιρασμό της σύνδεσής σας / tethering στις <![CDATA[<b>ρυθμίσεις συστήματος</b>]]>.</string>
- <string name="tethering_message">Διαμοιρασμός του VPN σας με άλλες συσκευές μέσω:</string>
- <string name="tethering_wifi">Wi-Fi hotspot</string>
- <string name="tethering_usb">Διαμοιρασμός μέσω USB tethering</string>
- <string name="tethering_bluetooth">Διαμοιρασμός μέσω Bluetooth tethering</string>
- <string name="do_not_show_again">Να μην εμφανιστεί ξανά</string>
- <string name="always_on_vpn_user_message">Για να ενεργοποιηθεί το always-on VPN στις ρυθμίσεις VPN του Android, πατήστε το εικονίδιο παραμετροποίησης [img src] και ενεργοποιήστε το.</string>
- <string name="always_on_blocking_vpn_user_message">Για βέλτιστη προστασία της ιδιωτικότητας σας, πρέπει να ενεργοποιήσετε επίσης την επιλογή \"Μπλοκάρισμα συνδέσεων χωρίς VPN\".</string>
- <string name="donate_title">Δωρεά</string>
- <string name="donate_default_message">Παρακαλούμε κάντε σήμερα μια δωρεά, αν εκτιμάτε την εύκολη και ασφαλής επικοινωνία, τόσο για τον τελικό χρήστη όσο και για τον πάροχο της υπηρεσίας.</string>
- <string name="donate_message">Το LEAP στηρίζεται σε δωρεές και χρηματοδοτήσεις. Αν εκτιμάτε την ασφαλή επικοινωνία, που είναι εύκολη τόσο για τον τελικό χρήστη όσο και για τον πάροχο της υπηρεσίας, κάντε τώρα μια δωρεά.</string>
- <string name="donate_button_remind_later">Υπενθύμιση αργότερα</string>
- <string name="donate_button_donate">Δωρεά</string>
- <string name="obfuscated_connection">Χρησιμοποιείται καμουφλαρισμένη σύνδεση.</string>
- <string name="obfuscated_connection_try">Γίνεται δοκιμή καμουφλαρισμένης σύνδεσης.</string>
- <string name="nav_drawer_obfuscated_connection">Χρήση γεφυρών</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Παράκαμψη φιλτραρίσματος VPN</string>
- <string name="warning_exclude_apps_message">Προσοχή στην εξαίρεση εφαρμογών από το VPN. Αυτό θα αποκαλύψει την ταυτότητά σας και θα θέσει σε κίνδυνο την ασφάλειά σας.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d απροστάτευτη εφαρμογή</item>
- <item quantity="other">%d απροστάτευτες εφαρμογές</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">Το %s δεν μπόρεσε να συνδεθεί. Ίσως οι συνδέσεις VPN να μπλοκάρονται. Θέλετε να προσπαθήσετε να συνδεθείτε χρησιμοποιώντας καμουφλαρισμένες συνδέσεις;</string>
- <string name="warning_no_more_gateways_no_pt">Το %s δεν μπόρεσε να συνδεθεί. Θέλετε να προσπαθήσετε ξανά;</string>
- <string name="warning_no_more_gateways_use_ovpn">Το %s δεν μπόρεσε να συνδεθεί χρησιμοποιώντας καμουφλαρισμένες συνδέσεις VPN. Θέλετε να προσπαθήσετε να συνδεθείτε χρησιμοποιώντας ένα κανονικό VPN;</string>
- <string name="warning_no_more_gateways_manual_gw_selection">Το %1$s δεν μπόρεσε να συνδεθεί στο %2$s. Θέλετε να δοκιμάσετε να συνδεθείτε αυτόματα με την καλύτερη τοποθεσία;</string>
- <string name="warning_option_try_best">Δοκιμή καλύτερης τοποθεσίας</string>
- <string name="warning_option_try_pt">Δοκιμή καμουφλαρισμένης σύνδεσης</string>
- <string name="warning_option_try_ovpn">Δοκιμή κανονικής σύνδεσης</string>
- <string name="vpn_error_establish">Το Android απέτυχε να εγκαθιδρύσει την υπηρεσία VPN.</string>
- <string name="root_permission_error">Το %s δεν μπορεί να εκτελέσει δυνατότητες όπως το VPN Hotspot ή το IPv6 firewall, χωρίς δικαιώματα root.</string>
- <string name="qs_enable_vpn">Εκκίνηση %s</string>
- <string name="version_update_found">Πατήστε εδώ για να ξεκινήσει η λήψη.</string>
- <string name="version_update_title">Μια νέα έκδοση %s βρέθηκε.</string>
- <string name="version_update_apk_description">Η νέα έκδοση %s κατεβαίνει.</string>
- <string name="version_update_download_title">Η νέα έκδοση %s κατέβηκε.</string>
- <string name="version_update_download_description">Πατήστε εδώ για εγκατάσταση της αναβάθμισης.</string>
- <string name="version_update_error_pgp_verification">Σφάλμα επιβεβαίωσης PGP. Η λήψη παραβλέπεται.</string>
- <string name="version_update_error">Αποτυχία αναβάθμισης.</string>
- <string name="version_update_error_permissions">Δεν υπάρχουν δικαιώματα για εγκατάσταση εφαρμογής.</string>
- <string name="gateway_selection_title">Επιλογή τοποθεσίας</string>
- <string name="gateway_selection_recommended_location">Προτεινόμενη τοποθεσία</string>
- <string name="gateway_selection_recommended">Προτεινόμενο</string>
- <string name="gateway_selection_manually">Χειροκίνητη επιλογή</string>
- <string name="gateway_selection_automatic_location">Χρήση της καλύτερης σύνδεσης αυτόματα</string>
- <string name="gateway_selection_automatic">Αυτόματο</string>
- <string name="reconnecting">Επανασυνδέεται...</string>
- <string name="tor_starting">Εκκίνηση γεφυρών για παράκαμψη λογοκρισίας...</string>
- <string name="tor_stopping">Παύση γεφυρών</string>
- <string name="tor_started">Χρήση γεφυρών για παράκαμψη λογοκρισίας</string>
- <string name="log_conn_done_pt">Συνδέθηκε στο pluggable transport</string>
- <string name="log_conn_pt">Συνδέεται στο pluggable transport</string>
- <string name="log_conn_done">Συνδέθηκε σε αναμεταδότη</string>
- <string name="log_handshake">Πραγματοποιείται διαπραγμάτευση σύνδεσης με κόμβο</string>
- <string name="log_handshake_done">Η διαπραγμάτευση σύνδεσης με κόμβο έχει ολοκληρωθεί</string>
- <string name="log_onehop_create">Πραγματοποιήθηκε σύνδεση σε κρυπτογραφημένο κατάλογο</string>
- <string name="log_requesting_status">Αίτηση για συναίνεση κατάστασης δικτύου</string>
- <string name="log_loading_status">Φόρτωση συναίνεσης κατάστασης δικτύου</string>
- <string name="log_loading_keys">Φόρτωση των πιστοποιητικών του φορέα</string>
- <string name="log_requesting_descriptors">Αίτημα περιγραφέων του αναμεταδότη</string>
- <string name="log_loading_descriptors">Φόρτωση περιγραφέων αναμεταδότη</string>
- <string name="log_enough_dirinfo">Φορτώθηκαν αρκετές πληροφορίες καταλόγου για τη δημιουργία κυκλωμάτων</string>
- <string name="log_ap_handshake_done">Η διαπραγμάτευση με κόμβο ολοκληρώθηκε για δημιουργία κυκλωμάτων</string>
- <string name="log_circuit_create">Σύνδεση σε ένα κύκλωμα Tor</string>
- <string name="log_done">Εκτελείται</string>
- <string name="channel_name_tor_service">Υπηρεσία γεφυρών %s</string>
- <string name="channel_description_tor_service">Πληροφορεί για τη χρήση γεφυρών κατά τη παραμετροποίηση %s.</string>
- <string name="error_tor_timeout">Αποτυχία έναρξης γεφυρών. Θέλεις να δοκιμάσεις ξανά ή να συνεχίσουμε με μια αποκρυμμένη ασφαλή σύνδεση για τη παραμετροποίηση του %s;</string>
- <string name="retry_unobfuscated">Δοκιμή ξανά με απόκρυψη</string>
- <string name="hide">Απόκρυψη</string>
- <string name="error_network_connection">Το %s δεν έχει σύνδεση στο διαδίκτυο. Παρακαλώ έλεγξε τις ρυθμίσεις WiFi και δεδομένων κινητής.</string>
- <string name="censorship_circumvention">Παράκαμψη λογοκρισίας</string>
- <string name="use_snowflake">Χρήση του Snowflake</string>
- <string name="snowflake_description">Προστασία της διαδικασίας παραμετροποίησης από λογοκρισία.</string>
- <string name="vpn_settings">Ρυθμίσεις VPN</string>
- <string name="prefer_udp">Χρήση UDP αν είναι διαθέσιμο</string>
- <string name="prefer_udp_subtitle">Το UDP είναι γρηγορότερο και καλύτερο για streaming, αλλά δεν δουλεύει σε όλα τα δίκτυα.</string>
- <string name="disabled_while_bridges_on">Απενεργοποιείται όταν χρησιμοποιούνται γέφυρες.</string>
- <string name="hint_bridges">Μπορούν να επιλεχθούν μόνο τοποθεσίες που υποστηρίζουν γέφυρες.</string>
- <string name="option_disable_bridges">Απενεργοποίηση γεφυρών</string>
- <string name="eip_state_insecure">Μη ασφαλής σύνδεση</string>
- <string name="connection_not_connected">Μπορεί να διαρρέουν πληροφορίες σου στον πάροχο διαδικτύου ή στο τοπικό δίκτυο.</string>
- <string name="eip_state_no_network">Δεν έχεις σύνδεση στο διαδίκτυο. Μόλις αυτή επανέλθει, θα συνδεθείς αυτόματα στο </string>
- <string name="eip_state_blocking">Το %1$s μπλοκάρει όλη τη κίνηση διαδικτύου.</string>
- <string name="disabled_while_udp_on">Απενεργοποιημένο όταν είναι ενεργό το UDP.</string>
- <string name="advanced_settings">Προηγμένες ρυθμίσεις</string>
- <string name="cancel_connection">Αποσύνδεση</string>
- <string name="unknown_location">Άγνωστη τοποθεσία</string>
- <string name="splash_footer">Αναπτύχθηκε από την LEAP</string>
- <string name="welcome">Καλώς ήρθατε!</string>
- <string name="select_provider">Επιλέξτε πάροχο</string>
- <string name="select_provider_description">Όταν χρησιμοποιείτε ένα VPN, μεταφέρετε την εμπιστοσύνη σας από τον πάροχο υπηρεσιών διαδικτύου στον πάροχο VPN. Το Bitmask συνδέεται μόνο με παρόχους με σαφές ιστορικό προστασίας της ιδιωτικής ζωής και υπεράσπισης.</string>
- <string name="provider_description_riseup">Το Riseup παρέχει διαδικτυακά εργαλεία επικοινωνίας για άτομα και ομάδες που εργάζονται για την απελευθερωτική κοινωνική αλλαγή. Είμαστε ένα έργο για τη δημιουργία δημοκρατικών εναλλακτικών λύσεων και την πρακτική της αυτοδιάθεσης ελέγχοντας τα δικά μας ασφαλή μέσα επικοινωνίας.</string>
- <string name="next">Επόμενο</string>
- <string name="add_provider_description">Το Bitmask συνδέεται με αξιόπιστους παρόχους που δεν αναφέρονται δημόσια. Εισαγάγετε τη διεύθυνση url του παρόχου σας παρακάτω.</string>
- <string name="add_provider_prompt">Εισάγετε τη διεύθυνση URL του παρόχου εδώ.</string>
- <string name="invite_code_provider_description">Το Bitmask σάς επιτρέπει να συνδεθείτε με παρόχους χρησιμοποιώντας έναν ιδιωτικό Κωδικό Πρόσκλησης.</string>
- <string name="invite_code_provider_prompt">Εισάγετε τον αξιόπιστο κωδικό πρόσκλησής σας εδώ.</string>
- <string name="qr_scanner_prompt">Σκανάρισμα κωδικού QR</string>
- <string name="provider_description_calyx">Το Calyx είναι ένας μη κερδοσκοπικός οργανισμός εκπαίδευσης και έρευνας που ασχολείται με τη μελέτη, τη δοκιμή, την ανάπτυξη και την εφαρμογή τεχνολογίας και εργαλείων προστασίας της ιδιωτικής ζωής για την προώθηση της ελευθερίας του λόγου, της ελεύθερης έκφρασης, της συμμετοχής των πολιτών και των δικαιωμάτων ιδιωτικότητας στο διαδίκτυο και στον κλάδο των κινητών επικοινωνιών.</string>
- <string name="title_circumvention_setup">Απαιτείτε παράκαμψη λογοκρισίας;</string>
- <string name="circumvention_setup_description">Εάν ζείτε όπου το διαδίκτυο είναι λογοκριμένο, μπορείτε να χρησιμοποιήσετε τις επιλογές παράκαμψης λογοκρισίας για πρόσβαση σε όλες τις υπηρεσίες διαδικτύου. Αυτές οι επιλογές θα επιβραδύνουν τη σύνδεσή σας!</string>
- <string name="circumvention_setup_hint">Το %s θα προσπαθήσει αυτόματα να σας συνδέσει στο διαδίκτυο χρησιμοποιώντας μια ποικιλία τεχνολογιών παράκαμψης. Μπορείτε να το ρυθμίσετε με ακρίβεια στις ρυθμίσεις για προχωρημένους.</string>
- <string name="use_standard_vpn">Χρήση τυπικού %s</string>
- <string name="use_circumvention_tech">Χρήση τεχνολογίας παράκαμψης (πιο αργή)</string>
- <string name="description_configure_provider">Για να συνδεθείτε στον πάροχο σας, το %1$s ανακτά όλες τις απαιτούμενες πληροφορίες διαμόρφωσης. Αυτό συμβαίνει μόνο κατά την πρώτη εγκατάσταση.</string>
- <string name="description_configure_provider_circumvention">Το %1$s προσπαθεί να συλλέξει όλα τα απαιτούμενα δεδομένα διαμόρφωσης από τον πάροχο. Αυτό συμβαίνει μόνο κατά την πρώτη εγκατάσταση. Επιλέξατε να χρησιμοποιήσετε την τεχνολογία παράκαμψης, επομένως αυτό μπορεί να πάρει κάποιο χρόνο.</string>
- <string name="details">Λεπτομέρειες</string>
- <string name="tor_status">Κατάσταση του Tor </string>
- <string name="snowflake_status">Κατάσταση Snowflake</string>
- <string name="snowflake_started">Ο πελάτης Snowflake ξεκίνησε</string>
- <string name="snowflake_negotiating_rendezvous_http">Διαπραγμάτευση του ραντεβού διακομιστή Snowflake (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Διαπραγμάτευση του ραντεβού διακομιστή Snowflake (amp cache)</string>
- <string name="snowflake_socks_error">Σφάλμα Snowflake SOCKS</string>
- <string name="snowflake_broker_success">Επιτυχές ραντεβού διακομιστή Snowflake</string>
- <string name="snowflake_sending_data">Αποστολή δεδομένων μέσω Snowflake</string>
- <string name="title_upcoming_connection_request">Επικείμενο αίτημα σύνδεσης</string>
- <string name="title_upcoming_notifications_request">Αίτημα για επερχόμενες ειδοποιήσεις</string>
- <string name="title_setup_success">Είστε έτοιμος!</string>
- <string name="setup_success_description">Κάντε κλικ στο κουμπί παρακάτω για να συνδεθείτε</string>
- <string name="permission_rejected">Το αίτημα άδειας απορρίφθηκε.</string>
- <string name="login_not_supported">Η τρέχουσα έκδοση της εφαρμογής δεν υποστηρίζει συνδέσεις, τις οποίες χρειάζεστε για να ενημερώσετε το πιστοποιητικό VPN για αυτόν τον πάροχο.</string>
- <string name="select_language">Επιλογή Γλώσσας</string>
- <string name="syntax_check">Έλεγχος σύνταξης:</string>
- <string name="validation_status_success">Ωραία</string>
- <string name="validation_status_failure">Κακή</string>
- <string name="enter_invite_code">Εισάγετε κωδικό πρόσκλησης</string>
- <string name="scan_qr_code">Σκανάρισμα κωδικού QR</string>
- <string name="invalid_code">Μη έγκυρος κωδικός</string>
+ <string name="retry">Επανάληψη</string>
+ <string name="repository_url_text">Ο πηγαίος κώδικας είναι διαθέσιμος στο https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Ο ιχνηλάτης τεχνικών θεμάτων είναι διαθέσιμος στο https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Οι μεταφράσεις είναι ευπρόσδεκτες. Δείτε τη σελίδα μας στο Transifex στο https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Αλλαγή παρόχου</string>
+ <string name="info">Πληροφορίες</string>
+ <string name="show_connection_details">Προβολή λεπτομερειών σύνδεσης</string>
+ <string name="connection_details">Λεπτομέρειες σύνδεσης</string>
+ <string name="routes_info">Δρομολογήσεις: %s</string>
+ <string name="routes_info6">Δρομολογήσεις IPv6: %s</string>
+ <string name="error_empty_username">Το όνομα χρήστη δεν μπορεί να είναι κενό.</string>
+ <string name="cert_from_keystore">Λήψη πιστοποιητικού \'%s\' από τη κλειδοθήκη</string>
+ <string name="provider_label">Πάροχος</string>
+ <string name="provider_label_none">Δε ρυθμίστηκε κάποιος πάροχος</string>
+ <string name="status_unknown">Άγνωστη κατάσταση.</string>
+ <string name="eip_service_label">Κρυπτογραφημένη πρόσβαση στο διαδίκτυο μέσω VPN</string>
+ <string name="configuration_wizard_title">Επίλεξε έναν πάροχο υπηρεσίας</string>
+ <string name="add_provider">Προσθήκη νέου παρόχου</string>
+ <string name="introduce_new_provider">Πρόσθεσε ένα νέο πάροχο υπηρεσίας</string>
+ <string name="save">Αποθήκευση</string>
+ <string name="new_provider_uri">Όνομα τομέα</string>
+ <string name="valid_url_entered">Η διεύθυνση URL είναι έγκυρη</string>
+ <string name="not_valid_url_entered">Μη έγκυρη διεύθυνση URL</string>
+ <string name="provider_details_title">Πληροφορίες παρόχου</string>
+ <string name="use_anonymously_button">Χρήση ανώνυμα</string>
+ <string name="username_hint">Όνομα χρήστη</string>
+ <string name="username_ask">Παρακαλούμε εισάγετε όνομα χρήστη</string>
+ <string name="password_ask">Παρακαλώ εισάγετε κωδικό</string>
+ <string name="password_hint">κωδικός πρόσβασης</string>
+ <string name="password_match">Οι κωδικοί ταιριάζουν</string>
+ <string name="password_mismatch">Οι κωδικοί δεν ταιριάζουν</string>
+ <string name="user_message">Μήνυμα χρήστη</string>
+ <string name="about_fragment_title">Σχετικά</string>
+ <string name="exclude_apps_fragment_title">Αποκλεισμός εφαρμογών από το VPN </string>
+ <string name="error_srp_math_error_user_message">Προσπάθησε ξανά: Μαθηματικό σφάλμα διακομιστή.</string>
+ <string name="error_bad_user_password_user_message">Λάθος όνομα χρήστη ή κωδικός πρόσβασης</string>
+ <string name="error_not_valid_password_user_message">Πρέπει να έχει τουλάχιστον 8 χαρακτήρες</string>
+ <string name="error_client_http_user_message">Προσπάθησε ξανά: Σφάλμα HTTP πελάτη</string>
+ <string name="error_io_exception_user_message">Προσπάθησε ξανά: Σφάλμα Ι/Ο</string>
+ <string name="error_json_exception_user_message">Προσπάθησε ξανά: Κακή απάντηση από τον διακομιστή</string>
+ <string name="error_no_such_algorithm_exception_user_message">Δε βρέθηκε ο αλγόριθμος κρυπτογράφησης. Παρακαλούμε αναβαθμίστε το Android!</string>
+ <string name="signup_or_login_button">Εγγραφή/Σύνδεση</string>
+ <string name="login_button">Σύνδεση</string>
+ <string name="login_to_profile">Σύνδεση στο προφίλ</string>
+ <string name="logout_button">Αποσύνδεση</string>
+ <string name="signup_button">Εγγραφή</string>
+ <string name="create_profile">Δημιουργία προφίλ</string>
+ <string name="setup_provider">Ρύθμιση παρόχου</string>
+ <string name="setup_error_title">Σφάλμα ρυθμίσεων</string>
+ <string name="setup_error_configure_button">Ρύθμιση </string>
+ <string name="setup_error_close_button">Έξοδος</string>
+ <string name="setup_error_text">Υπήρξε ένα σφάλμα κατά τη ρύθμιση του %s με τον πάροχο που επιλέξατε.\n\nΜπορείτε να ξανακάνετε τις ρυθμίσεις ή να κλείσετε την εφαρμογή και να ρυθμίσετε έναν άλλο πάροχο με την επανεκκίνηση της.</string>
+ <string name="setup_error_text_custom">Παρουσιάστηκε σφάλμα κατά τη διαμόρφωση του %s.\n\nΜπορείτε να επιλέξετε επαναδιαμόρφωση ή έξοδο.</string>
+ <string name="server_unreachable_message">Ο διακομιστής δεν είναι προσπελάσιμος, παρακαλούμε προσπάθησε ξανά.</string>
+ <string name="error.security.pinnedcertificate">Σφάλμα ασφάλειας. Αναβαθμίστε την εφαρμογή ή επιλέξτε άλλο πάροχο.</string>
+ <string name="malformed_url">Δεν φαίνεται να είναι πάροχος %s.</string>
+ <string name="certificate_error">Δεν είναι έμπιστος πάροχος %s.</string>
+ <string name="service_is_down_error">Η υπηρεσία δε λειτουργεί.</string>
+ <string name="configuring_provider">Ο πάροχος ρυθμίζεται</string>
+ <string name="downloading_certificate_message">Λήψη πιστοποιητικού VPN</string>
+ <string name="updating_certificate_message">Αναβάθμιση πιστοποιητικού VPN</string>
+ <string name="login.riseup.warning">Οι χρήστες του Riseup θα πρέπει να δημιουργήσουν ένα ξεχωριστό λογαριασμό για να χρησιμοποιήσουν την υπηρεσία VPN</string>
+ <string name="succesful_authentication_message">Πιστοποιήθηκε</string>
+ <string name="authentication_failed_message">Αποτυχία πιστοποίησης</string>
+ <string name="registration_failed_message">Η εγγραφή απέτυχε</string>
+ <string name="eip_status_start_pending">Έναρξη σύνδεσης</string>
+ <string name="eip_status_connecting">Σύνδεση σε VPN</string>
+ <string name="eip_status_unsecured">Μη ασφαλής σύνδεση</string>
+ <string name="eip_status_secured">Ασφαλής σύνδεση</string>
+ <string name="eip_cancel_connect_title">Ακύρωση σύνδεσης;</string>
+ <string name="eip_cancel_connect_text">Υπάρχει μια προσπάθεια σύνδεσης σε εξέλιξη. Θέλετε να την ακυρώσετε;</string>
+ <string name="eip.warning.browser_inconsistency">Κλείσιμο της σύνδεσης VPN; Όταν το VPN είναι κλειστό, μπορεί να διαρρέουν προσωπικές σας πληροφορίες στον πάροχο σας ή στο τοπικό δίκτυο.</string>
+ <string name="eip_state_not_connected">Δεν εκτελείται! Μη ασφαλής σύνδεση!</string>
+ <string name="eip_state_connected">Ασφαλής σύνδεση</string>
+ <string name="provider_problem">Φαίνεται πως υπάρχει κάποιο πρόβλημα με τον πάροχο.</string>
+ <string name="try_another_provider">Παρακαλούμε προσπαθήστε με άλλο πάροχο, ή επικοινωνήστε με τον δικό σας.</string>
+ <string name="default_username">Ανώνυμος/η</string>
+ <string name="logging_in">Συνδέεται</string>
+ <string name="signing_up">Εγγράφεται</string>
+ <string name="vpn.button.turn.on">Άνοιγμα</string>
+ <string name="vpn.button.turn.off">Κλείσιμο</string>
+ <string name="vpn_button_turn_off_blocking">Παύση μπλοκαρίσματος</string>
+ <string name="vpn_securely_routed">Η κίνηση δεδομένων σας δρομολογείται ασφαλώς μέσω:</string>
+ <string name="vpn_securely_routed_no_internet">Δεν εντοπίστηκε σύνδεση στο διαδίκτυο. Όταν επανέλθει θα δρομολογήσουμε την κίνηση σας ασφαλώς μέσω:</string>
+ <string name="log_fragment_title">Αρχείο Καταγραφής</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Άνοιγμα συρταριού πλοήγησης</string>
+ <string name="navigation_drawer_close">Κλείσιμο συρταριού πλοήγησης</string>
+ <string name="action_example">Ενέργεια - παράδειγμα</string>
+ <string name="action_settings">Ρυθμίσεις</string>
+ <string name="void_vpn_establish">Το %s μπλοκάρει όλη την εξερχόμενη κίνηση διαδικτύου.</string>
+ <string name="void_vpn_error_establish">Ο αποκλεισμός όλης της κίνησης στο διαδίκτυο απέτυχε.</string>
+ <string name="void_vpn_stopped">Παύση μπλοκαρίσματος όλης της εξερχόμενης κίνησης διαδικτύου.</string>
+ <string name="void_vpn_title">Η κίνηση διαδικτύου μπλοκάρεται</string>
+ <string name="update_provider_details">Αναβάθμιση λεπτομερειών παρόχου</string>
+ <string name="update_certificate">Αναβάθμιση πιστοποιητικού</string>
+ <string name="warning_eip_json_corrupted">Η αναβάθμιση των ρυθμίσεων παρόχου απέτυχε.</string>
+ <string name="eip_json_corrupted_user_message">Η αναβάθμιση των ρυθμίσεων παρόχου απέτυχε. Παρακαλούμε συνδεθείτε για να ξαναπροσπαθήσετε.</string>
+ <string name="warning_client_parsing_error_gateways">Δεν ήταν δυνατή η αναγνώριση των πυλών δικτύου παρόχου. Μπορεί να έχουν ρυθμιστεί λανθασμένα.</string>
+ <string name="warning_corrupted_provider_details">Οι αποθηκευμένες λεπτομέρειες του παρόχου έχουν σφάλματα. Μπορείτε είτε να αναβαθμίσετε το %s (προτείνεται), είτε να αναβαθμίσετε τις λεπτομέρειες παρόχου χρησιμοποιώντας ένα εμπορικό πιστοποιητικό CA.</string>
+ <string name="warning_corrupted_provider_cert">Το αποθηκευμένο πιστοποιητικό του παρόχου δεν είναι έγκυρο. Μπορείτε είτε να αναβαθμίσετε το %s (προτείνεται), είτε να αναβαθμίσετε τις λεπτομέρειες παρόχου χρησιμοποιώντας ένα εμπορικό πιστοποιητικό CA.</string>
+ <string name="warning_expired_provider_cert">Το αποθηκευμένο πιστοποιητικό του παρόχου έχει λήξει. Μπορείτε είτε να αναβαθμίσετε το %s (προτείνεται), είτε να αναβαθμίσετε τις λεπτομέρειες παρόχου χρησιμοποιώντας ένα εμπορικό πιστοποιητικό CA.</string>
+ <string name="downloading_vpn_certificate_failed">Το κατέβασμα του πιστοποιητικού του VPN απέτυχε. Προσπαθήστε ξανά ή επιλέξτε άλλο πάροχο.</string>
+ <string name="vpn_certificate_is_invalid">Ήρθε η ώρα να ενημερώσετε το πιστοποιητικό VPN σας. Κατεβάστε ένα νέο πιστοποιητικό για να διατηρήσετε ασφαλή τη σύνδεσή σας. Αυτή είναι μια τακτική ενημέρωση.</string>
+ <string name="save_battery">Εξοικονόμηση μπαταρίας</string>
+ <string name="subtitle_save_battery">Απενεργοποιημένο όσο το VPN Hotspot είναι ενεργό</string>
+ <string name="save_battery_message">Οι συνδέσεις δεδομένων στο υπόβαθρο θα παύονται όταν το τηλέφωνό σας δεν είναι ενεργό.</string>
+ <string name="always_on_vpn">Πάντα ενεργοποιημένο VPN</string>
+ <string name="subtitle_always_on_vpn">Άνοιγμα Ρυθμίσεων Συστήματος Android</string>
+ <string name="tethering">VPN Hotspot</string>
+ <string name="ipv6Firewall">Φραγή IPv6</string>
+ <string name="require_root">Απαιτούνται δικαιώματα root</string>
+ <string name="show_experimental">Εμφάνιση πειραματικών λειτουργιών</string>
+ <string name="hide_experimental">Απόκρυψη πειραματικών λειτουργιών</string>
+ <string name="experimental_features">Πειραματικά χαρακτηριστικά</string>
+ <string name="tethering_enabled_message">Παρακαλούμε επιβεβαιώστε ότι έχετε πρώτα ενεργοποιήσει το διαμοιρασμό της σύνδεσής σας / tethering στις <![CDATA[<b>ρυθμίσεις συστήματος</b>]]>.</string>
+ <string name="tethering_message">Διαμοιρασμός του VPN σας με άλλες συσκευές μέσω:</string>
+ <string name="tethering_wifi">Wi-Fi hotspot</string>
+ <string name="tethering_usb">Διαμοιρασμός μέσω USB tethering</string>
+ <string name="tethering_bluetooth">Διαμοιρασμός μέσω Bluetooth tethering</string>
+ <string name="do_not_show_again">Να μην εμφανιστεί ξανά</string>
+ <string name="always_on_vpn_user_message">Για να ενεργοποιηθεί το always-on VPN στις ρυθμίσεις VPN του Android, πατήστε το εικονίδιο παραμετροποίησης [img src] και ενεργοποιήστε το.</string>
+ <string name="always_on_blocking_vpn_user_message">Για βέλτιστη προστασία της ιδιωτικότητας σας, πρέπει να ενεργοποιήσετε επίσης την επιλογή \"Μπλοκάρισμα συνδέσεων χωρίς VPN\".</string>
+ <string name="donate_title">Δωρεά</string>
+ <string name="donate_default_message">Παρακαλούμε κάντε σήμερα μια δωρεά, αν εκτιμάτε την εύκολη και ασφαλής επικοινωνία, τόσο για τον τελικό χρήστη όσο και για τον πάροχο της υπηρεσίας.</string>
+ <string name="donate_message">Το LEAP στηρίζεται σε δωρεές και χρηματοδοτήσεις. Αν εκτιμάτε την ασφαλή επικοινωνία, που είναι εύκολη τόσο για τον τελικό χρήστη όσο και για τον πάροχο της υπηρεσίας, κάντε τώρα μια δωρεά.</string>
+ <string name="donate_button_remind_later">Υπενθύμιση αργότερα</string>
+ <string name="donate_button_donate">Δωρεά</string>
+ <string name="obfuscated_connection">Χρησιμοποιείται καμουφλαρισμένη σύνδεση.</string>
+ <string name="obfuscated_connection_try">Γίνεται δοκιμή καμουφλαρισμένης σύνδεσης.</string>
+ <string name="nav_drawer_obfuscated_connection">Χρήση γεφυρών</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Παράκαμψη φιλτραρίσματος VPN</string>
+ <string name="warning_exclude_apps_message">Προσοχή στην εξαίρεση εφαρμογών από το VPN. Αυτό θα αποκαλύψει την ταυτότητά σας και θα θέσει σε κίνδυνο την ασφάλειά σας.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d απροστάτευτη εφαρμογή</item>
+ <item quantity="other">%d απροστάτευτες εφαρμογές</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">Το %s δεν μπόρεσε να συνδεθεί. Ίσως οι συνδέσεις VPN να μπλοκάρονται. Θέλετε να προσπαθήσετε να συνδεθείτε χρησιμοποιώντας καμουφλαρισμένες συνδέσεις;</string>
+ <string name="warning_no_more_gateways_no_pt">Το %s δεν μπόρεσε να συνδεθεί. Θέλετε να προσπαθήσετε ξανά;</string>
+ <string name="warning_no_more_gateways_use_ovpn">Το %s δεν μπόρεσε να συνδεθεί χρησιμοποιώντας καμουφλαρισμένες συνδέσεις VPN. Θέλετε να προσπαθήσετε να συνδεθείτε χρησιμοποιώντας ένα κανονικό VPN;</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">Το %1$s δεν μπόρεσε να συνδεθεί στο %2$s. Θέλετε να δοκιμάσετε να συνδεθείτε αυτόματα με την καλύτερη τοποθεσία;</string>
+ <string name="warning_option_try_best">Δοκιμή καλύτερης τοποθεσίας</string>
+ <string name="warning_option_try_pt">Δοκιμή καμουφλαρισμένης σύνδεσης</string>
+ <string name="warning_option_try_ovpn">Δοκιμή κανονικής σύνδεσης</string>
+ <string name="vpn_error_establish">Το Android απέτυχε να εγκαθιδρύσει την υπηρεσία VPN.</string>
+ <string name="root_permission_error">Το %s δεν μπορεί να εκτελέσει δυνατότητες όπως το VPN Hotspot ή το IPv6 firewall, χωρίς δικαιώματα root.</string>
+ <string name="qs_enable_vpn">Εκκίνηση %s</string>
+ <string name="version_update_found">Πατήστε εδώ για να ξεκινήσει η λήψη.</string>
+ <string name="version_update_title">Μια νέα έκδοση %s βρέθηκε.</string>
+ <string name="version_update_apk_description">Η νέα έκδοση %s κατεβαίνει.</string>
+ <string name="version_update_download_title">Η νέα έκδοση %s κατέβηκε.</string>
+ <string name="version_update_download_description">Πατήστε εδώ για εγκατάσταση της αναβάθμισης.</string>
+ <string name="version_update_error_pgp_verification">Σφάλμα επιβεβαίωσης PGP. Η λήψη παραβλέπεται.</string>
+ <string name="version_update_error">Αποτυχία αναβάθμισης.</string>
+ <string name="version_update_error_permissions">Δεν υπάρχουν δικαιώματα για εγκατάσταση εφαρμογής.</string>
+ <string name="gateway_selection_title">Επιλογή τοποθεσίας</string>
+ <string name="gateway_selection_recommended_location">Προτεινόμενη τοποθεσία</string>
+ <string name="gateway_selection_recommended">Προτεινόμενο</string>
+ <string name="gateway_selection_manually">Χειροκίνητη επιλογή</string>
+ <string name="gateway_selection_automatic_location">Χρήση της καλύτερης σύνδεσης αυτόματα</string>
+ <string name="gateway_selection_automatic">Αυτόματο</string>
+ <string name="reconnecting">Επανασυνδέεται...</string>
+ <string name="tor_starting">Εκκίνηση γεφυρών για παράκαμψη λογοκρισίας...</string>
+ <string name="tor_stopping">Παύση γεφυρών</string>
+ <string name="tor_started">Χρήση γεφυρών για παράκαμψη λογοκρισίας</string>
+ <string name="log_conn_done_pt">Συνδέθηκε στο pluggable transport</string>
+ <string name="log_conn_pt">Συνδέεται στο pluggable transport</string>
+ <string name="log_conn_done">Συνδέθηκε σε αναμεταδότη</string>
+ <string name="log_handshake">Πραγματοποιείται διαπραγμάτευση σύνδεσης με κόμβο</string>
+ <string name="log_handshake_done">Η διαπραγμάτευση σύνδεσης με κόμβο έχει ολοκληρωθεί</string>
+ <string name="log_onehop_create">Πραγματοποιήθηκε σύνδεση σε κρυπτογραφημένο κατάλογο</string>
+ <string name="log_requesting_status">Αίτηση για συναίνεση κατάστασης δικτύου</string>
+ <string name="log_loading_status">Φόρτωση συναίνεσης κατάστασης δικτύου</string>
+ <string name="log_loading_keys">Φόρτωση των πιστοποιητικών του φορέα</string>
+ <string name="log_requesting_descriptors">Αίτημα περιγραφέων του αναμεταδότη</string>
+ <string name="log_loading_descriptors">Φόρτωση περιγραφέων αναμεταδότη</string>
+ <string name="log_enough_dirinfo">Φορτώθηκαν αρκετές πληροφορίες καταλόγου για τη δημιουργία κυκλωμάτων</string>
+ <string name="log_ap_handshake_done">Η διαπραγμάτευση με κόμβο ολοκληρώθηκε για δημιουργία κυκλωμάτων</string>
+ <string name="log_circuit_create">Σύνδεση σε ένα κύκλωμα Tor</string>
+ <string name="log_done">Εκτελείται</string>
+ <string name="channel_name_tor_service">Υπηρεσία γεφυρών %s</string>
+ <string name="channel_description_tor_service">Πληροφορεί για τη χρήση γεφυρών κατά τη παραμετροποίηση %s.</string>
+ <string name="error_tor_timeout">Αποτυχία έναρξης γεφυρών. Θέλεις να δοκιμάσεις ξανά ή να συνεχίσουμε με μια αποκρυμμένη ασφαλή σύνδεση για τη παραμετροποίηση του %s;</string>
+ <string name="retry_unobfuscated">Δοκιμή ξανά με απόκρυψη</string>
+ <string name="hide">Απόκρυψη</string>
+ <string name="error_network_connection">Το %s δεν έχει σύνδεση στο διαδίκτυο. Παρακαλώ έλεγξε τις ρυθμίσεις WiFi και δεδομένων κινητής.</string>
+ <string name="censorship_circumvention">Παράκαμψη λογοκρισίας</string>
+ <string name="use_snowflake">Χρήση του Snowflake</string>
+ <string name="snowflake_description">Προστασία της διαδικασίας παραμετροποίησης από λογοκρισία.</string>
+ <string name="vpn_settings">Ρυθμίσεις VPN</string>
+ <string name="prefer_udp">Χρήση UDP αν είναι διαθέσιμο</string>
+ <string name="prefer_udp_subtitle">Το UDP είναι γρηγορότερο και καλύτερο για streaming, αλλά δεν δουλεύει σε όλα τα δίκτυα.</string>
+ <string name="disabled_while_bridges_on">Απενεργοποιείται όταν χρησιμοποιούνται γέφυρες.</string>
+ <string name="hint_bridges">Μπορούν να επιλεχθούν μόνο τοποθεσίες που υποστηρίζουν γέφυρες.</string>
+ <string name="option_disable_bridges">Απενεργοποίηση γεφυρών</string>
+ <string name="eip_state_insecure">Μη ασφαλής σύνδεση</string>
+ <string name="connection_not_connected">Μπορεί να διαρρέουν πληροφορίες σου στον πάροχο διαδικτύου ή στο τοπικό δίκτυο.</string>
+ <string name="eip_state_no_network">Δεν έχεις σύνδεση στο διαδίκτυο. Μόλις αυτή επανέλθει, θα συνδεθείς αυτόματα στο </string>
+ <string name="eip_state_blocking">Το %1$s μπλοκάρει όλη τη κίνηση διαδικτύου.</string>
+ <string name="disabled_while_udp_on">Απενεργοποιημένο όταν είναι ενεργό το UDP.</string>
+ <string name="advanced_settings">Προηγμένες ρυθμίσεις</string>
+ <string name="cancel_connection">Αποσύνδεση</string>
+ <string name="unknown_location">Άγνωστη τοποθεσία</string>
+ <string name="splash_footer">Αναπτύχθηκε από την LEAP</string>
+ <string name="welcome">Καλώς ήρθατε!</string>
+ <string name="select_provider">Επιλέξτε πάροχο</string>
+ <string name="select_provider_description">Όταν χρησιμοποιείτε ένα VPN, μεταφέρετε την εμπιστοσύνη σας από τον Πάροχο Υπηρεσιών Διαδικτύου στον πάροχο VPN. Τα %1$s και %2$s έχουν ένα σαφές ιστορικό προστασίας και προάσπισης του απορρήτου. Εάν προσθέτετε έναν πάροχο ή χρησιμοποιείτε έναν κωδικό πρόσκλησης (invite code), βεβαιωθείτε ότι γνωρίζετε και εμπιστεύεστε τον πάροχο.</string>
+ <string name="provider_description_riseup">Το Riseup παρέχει διαδικτυακά εργαλεία επικοινωνίας για άτομα και ομάδες που εργάζονται για την απελευθερωτική κοινωνική αλλαγή. Είμαστε ένα έργο για τη δημιουργία δημοκρατικών εναλλακτικών λύσεων και την πρακτική της αυτοδιάθεσης ελέγχοντας τα δικά μας ασφαλή μέσα επικοινωνίας.</string>
+ <string name="next">Επόμενο</string>
+ <string name="add_provider_description">Το Bitmask σάς επιτρέπει να συνδεθείτε με παρόχους οι οποίοι δεν είναι δημόσια καταχωρημένοι. Βεβαιωθείτε ότι γνωρίζετε και εμπιστεύεστε τον πάροχο που προσθέτετε.</string>
+ <string name="add_provider_prompt">Εισάγετε τη διεύθυνση URL του παρόχου εδώ.</string>
+ <string name="invite_code_provider_description">Το Bitmask σάς επιτρέπει να συνδεθείτε με παρόχους χρησιμοποιώντας έναν ιδιωτικό Κωδικό Πρόσκλησης.</string>
+ <string name="invite_code_provider_prompt">Εισάγετε τον αξιόπιστο κωδικό πρόσκλησής σας εδώ.</string>
+ <string name="qr_scanner_prompt">Σκανάρισμα κωδικού QR</string>
+ <string name="provider_description_calyx">Το Calyx είναι ένας μη κερδοσκοπικός οργανισμός εκπαίδευσης και έρευνας που ασχολείται με τη μελέτη, τη δοκιμή, την ανάπτυξη και την εφαρμογή τεχνολογίας και εργαλείων προστασίας της ιδιωτικής ζωής για την προώθηση της ελευθερίας του λόγου, της ελεύθερης έκφρασης, της συμμετοχής των πολιτών και των δικαιωμάτων ιδιωτικότητας στο διαδίκτυο και στον κλάδο των κινητών επικοινωνιών.</string>
+ <string name="title_circumvention_setup">Απαιτείτε παράκαμψη λογοκρισίας;</string>
+ <string name="circumvention_setup_description">Εάν ζείτε όπου το διαδίκτυο είναι λογοκριμένο, μπορείτε να χρησιμοποιήσετε τις επιλογές παράκαμψης λογοκρισίας για πρόσβαση σε όλες τις υπηρεσίες διαδικτύου. Αυτές οι επιλογές θα επιβραδύνουν τη σύνδεσή σας!</string>
+ <string name="circumvention_setup_hint">Το %s θα προσπαθήσει να σας συνδέσει στο διαδίκτυο αυτόματα χρησιμοποιώντας μια ποικιλία τεχνολογιών παράκαμψης, συμπεριλαμβανομένου του Tor. Αυτό μπορείτε να το ρυθμίσετε στις ρυθμίσεις για προχωρημένους.</string>
+ <string name="use_standard_vpn">Χρήση τυπικού %s</string>
+ <string name="use_circumvention_tech">Χρήση τεχνολογίας παράκαμψης (πιο αργή)</string>
+ <string name="description_configure_provider">Για να συνδεθείτε στον πάροχο σας, το %1$s ανακτά όλες τις απαιτούμενες πληροφορίες διαμόρφωσης. Αυτό συμβαίνει μόνο κατά την πρώτη εγκατάσταση.</string>
+ <string name="description_configure_provider_circumvention">Το %1$s προσπαθεί να συλλέξει όλα τα απαιτούμενα δεδομένα διαμόρφωσης από τον πάροχο. Αυτό συμβαίνει μόνο κατά την πρώτη εγκατάσταση. Επιλέξατε να χρησιμοποιήσετε την τεχνολογία παράκαμψης, επομένως αυτό μπορεί να πάρει κάποιο χρόνο.</string>
+ <string name="details">Λεπτομέρειες</string>
+ <string name="tor_status">Κατάσταση του Tor </string>
+ <string name="snowflake_status">Κατάσταση Snowflake</string>
+ <string name="snowflake_started">Ο πελάτης Snowflake ξεκίνησε</string>
+ <string name="title_upcoming_connection_request">Επικείμενο αίτημα σύνδεσης</string>
+ <string name="title_upcoming_request">Προσεχή αιτήματα</string>
+ <string name="title_upcoming_notifications_request">Αίτημα για επερχόμενες ειδοποιήσεις</string>
+ <string name="title_setup_success">Είστε έτοιμος!</string>
+ <string name="setup_success_description">Κάντε κλικ στο κουμπί παρακάτω για να συνδεθείτε</string>
+ <string name="permission_rejected">Το αίτημα άδειας απορρίφθηκε.</string>
+ <string name="login_not_supported">Η τρέχουσα έκδοση της εφαρμογής δεν υποστηρίζει συνδέσεις, τις οποίες χρειάζεστε για να ενημερώσετε το πιστοποιητικό VPN για αυτόν τον πάροχο.</string>
+ <string name="select_language">Επιλογή Γλώσσας</string>
+ <string name="syntax_check">Έλεγχος σύνταξης:</string>
+ <string name="validation_status_success">Ωραία</string>
+ <string name="validation_status_failure">Κακή</string>
+ <string name="enter_invite_code">Εισάγετε κωδικό πρόσκλησης</string>
+ <string name="invalid_code">Μη έγκυρος κωδικός</string>
+ <string name="automatic_bridge">Αυτόματο (συνιστάται)</string>
+ <string name="manual_bridge">Χειροκίνητη Διαμόρφωση</string>
+ <string name="tunnelling">Tunneling</string>
+ <string name="port_hopping">Port Hopping</string>
+ <string name="error_invite_title">Ωχ, κάτι δεν πάει καλά με αυτόν τον κωδικό πρόσκλησης:</string>
+ <string name="error_invite">Μη έγκυρος κωδικός πρόσβασης: %1$s</string>
+ <string name="error_invite_copy">Αντιγραφή κωδικού πρόσκλησης</string>
+ <string name="error_invite_certificate_length">το πιστοποιητικό έχει λάθος αριθμό χαρακτήρων (%1$s).</string>
</resources>
diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml
index 14ecfe95..a9de63ff 100644
--- a/app/src/main/res/values-es-rAR/strings.xml
+++ b/app/src/main/res/values-es-rAR/strings.xml
@@ -1,209 +1,206 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Reintentar</string>
- <string name="repository_url_text">Código fuente disponible en https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Rastreador de dificultades disponible en https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Traducciones son bienvenidas y apreciadas. Mirá nuestro proyecto en Transifex en https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Intercambiar proveedor</string>
- <string name="info">información</string>
- <string name="show_connection_details">Mostrar detalles de conexión</string>
- <string name="connection_details">Detalles de conexión</string>
- <string name="routes_info">Rutas: %s</string>
- <string name="routes_info6">Rutas IPv6: %s</string>
- <string name="error_empty_username">El nombre de usuario no debe estar vacío.</string>
- <string name="cert_from_keystore">Se obtuvo certificado \'%s\' desde repositorio de claves</string>
- <string name="provider_label">Proveedor:</string>
- <string name="provider_label_none">No hay un proveedor configurado</string>
- <string name="status_unknown">Estado desconocido</string>
- <string name="eip_service_label">Acceso encriptado a Internet por RPV</string>
- <string name="configuration_wizard_title">Seleccionar un proveedor de servicio</string>
- <string name="add_provider">Añadir nuevo proveedor</string>
- <string name="introduce_new_provider">Añadir un nuevo proveedor de servicio</string>
- <string name="save">Guardar</string>
- <string name="new_provider_uri">Nombre de dominio</string>
- <string name="valid_url_entered">El URL es válido</string>
- <string name="not_valid_url_entered">Formato incorrecto de URL</string>
- <string name="provider_details_title">Detalles de proveedor</string>
- <string name="use_anonymously_button">Usar anónimamente</string>
- <string name="username_hint">nombre de usuario</string>
- <string name="username_ask">Por favor ingresá tu nombre de usuario</string>
- <string name="password_ask">Por favor ingresá tu contraseña</string>
- <string name="password_hint">contraseña</string>
- <string name="password_match">Las contraseñas coinciden</string>
- <string name="password_mismatch">Las contraseñas no coinciden</string>
- <string name="user_message">Mensaje de usuario</string>
- <string name="about_fragment_title">Acerca de</string>
- <string name="exclude_apps_fragment_title">Excluir aplicaciones del VPN</string>
- <string name="error_srp_math_error_user_message">Intentar de nuevo: Error matemático de servidor.</string>
- <string name="error_bad_user_password_user_message">Nombre de usuario o contraseña incorrecto.</string>
- <string name="error_not_valid_password_user_message">Debe ser al menos 8 caracteres de largo.</string>
- <string name="error_client_http_user_message">Intentar de nuevo: Error de cliente HTTP</string>
- <string name="error_io_exception_user_message">Intentar de nuevo: Error de Entrada/Salida</string>
- <string name="error_json_exception_user_message">Intentar de nuevo: Mala respuesta desde el servidor</string>
- <string name="error_no_such_algorithm_exception_user_message">Algoritmo de encriptación no encontrado. ¡Por favor, instalá una versión más nueva de Android!</string>
- <string name="signup_or_login_button">Suscribirte/Iniciar sesión</string>
- <string name="login_button">Iniciar sesión</string>
- <string name="login_to_profile">Iniciar sesión en el perfil</string>
- <string name="logout_button">Cerrar sesión</string>
- <string name="signup_button">Suscribirte</string>
- <string name="create_profile">Crear perfil</string>
- <string name="setup_provider">Definir ajustes de proveedor</string>
- <string name="setup_error_title">Error de configuración</string>
- <string name="setup_error_configure_button">Configurar</string>
- <string name="setup_error_close_button">Salir</string>
- <string name="setup_error_text">Hubo un error al configurar %s con tu proveedor seleccionado.\n\nPodés elegir reconfigurar, o salir y configurar un proveedor en el próximo inicio.</string>
- <string name="setup_error_text_custom">Hubo un error configurando %s.\n\nPodrías elegir reconfigurar, o salir.</string>
- <string name="server_unreachable_message">El servidor es inalcanzable, por favor intentá de nuevo.</string>
- <string name="error.security.pinnedcertificate">Error de seguridad, instalar una nueva versión de la aplicación o elegir otro proveedor.</string>
- <string name="malformed_url">No parece ser un proveedor %s.</string>
- <string name="certificate_error">Este no es un proveedor %s de confianza.</string>
- <string name="service_is_down_error">El servicio está caído.</string>
- <string name="configuring_provider">Configurando proveedor.</string>
- <string name="incorrectly_downloaded_certificate_message">Tu certificado anónimo no fue descargado</string>
- <string name="downloading_certificate_message">Descargando certificado de RPV</string>
- <string name="updating_certificate_message">Actualizando certificado de RPV</string>
- <string name="login.riseup.warning">Usuarios de Riseup necesitarán crear una cuenta separada para usar el servicio de RPV.</string>
- <string name="succesful_authentication_message">Autenticado.</string>
- <string name="authentication_failed_message">Falló autenticación.</string>
- <string name="registration_failed_message">Falló el registro.</string>
- <string name="eip_status_start_pending">Iniciando conexión</string>
- <string name="eip_cancel_connect_title">¿Cancelar conexión?</string>
- <string name="eip_cancel_connect_text">Hay un intento de conexión en curso. ¿Deseás cancelarlo?</string>
- <string name="eip.warning.browser_inconsistency">¿Desactivar conexión RPV? Cuando la RPV está desactivada, podés filtrar información personal a tu proveedor de Internet o red local.</string>
- <string name="eip_state_not_connected">¡No está corriendo! ¡Conexión insegura!</string>
- <string name="eip_state_connected">Conexión segura.</string>
- <string name="provider_problem">Parece que hay un problema con el proveedor.</string>
- <string name="try_another_provider">Por favor intentá con otro proveedor, o contactá al tuyo.</string>
- <string name="default_username">Anónimo.</string>
- <string name="logging_in">Iniciando sesión.</string>
- <string name="signing_up">Suscribiéndose.</string>
- <string name="vpn.button.turn.on">Activar.</string>
- <string name="vpn.button.turn.off">Desactivar.</string>
- <string name="vpn_button_turn_off_blocking">Detener bloqueo</string>
- <string name="vpn_securely_routed">Tu tráfico está ruteado en forma segura a través de:</string>
- <string name="vpn_securely_routed_no_internet">No hay conexión a Internet, cuando vuelva, tu tráfico será ruteado en forma segura a través de:</string>
- <string name="log_fragment_title">Bitácora</string>
- <string name="vpn_fragment_title">RPV</string>
- <string name="navigation_drawer_open">Abrir cajón de navegación</string>
- <string name="navigation_drawer_close">Cerrar cajón de navegación</string>
- <string name="action_example">Acción de ejemplo</string>
- <string name="action_settings">Ajustes</string>
- <string name="void_vpn_establish">%s bloquea todo el tráfico saliente de internet</string>
- <string name="void_vpn_error_establish">Fallo al bloquear todo el tráfico de Internet.</string>
- <string name="void_vpn_stopped">Detener bloqueo a todo el tráfico saliente hacia Internet.</string>
- <string name="void_vpn_title">Bloqueando tráfico</string>
- <string name="update_provider_details">Actualizar detalles de proveedor</string>
- <string name="update_certificate">Actualizar certificado</string>
- <string name="warning_eip_json_corrupted">Actualización de configuración de proveedor falló.</string>
- <string name="eip_json_corrupted_user_message">Actualización de configuración de proveedor falló. Por favor iniciar sesión para intentar nuevamente.</string>
- <string name="warning_client_parsing_error_gateways">Los portales de salida del proveedor no pudieron ser reconocidos. Pueden estar configurados incorrectamente.</string>
- <string name="warning_corrupted_provider_details">Los detalles almacenados de este proveedor están corrompidos. Podés actualizar %s (recomendado), o bien actualizar los detalles del proveedor usando un certificado de una autoridad de certificación comercial.</string>
- <string name="warning_corrupted_provider_cert">El certificado almacenado de este proveedor es inválido. Podés actualizar %s (recomendado) o actualizar el certificado del proveedor usando una autoridad de certificación comercial. </string>
- <string name="warning_expired_provider_cert">El certificado almacenado de este proveedor ha caducado. Podés actualizar %s (recomendado) o actualizar el certificado de proveedor usando una autoridad de certificación comercial.</string>
- <string name="downloading_vpn_certificate_failed">La descarga del certificado de RPV falló. Intentá de nuevo o elegí otro proveedor.</string>
- <string name="vpn_certificate_is_invalid">El certificado de RPV es inválido. Intentá descargar uno nuevo.</string>
- <string name="vpn_certificate_user_message">El certificado de RPV es inválido. Por favor iniciá sesión para descargar uno nuevo.</string>
- <string name="save_battery">Ahorrando batería</string>
- <string name="subtitle_save_battery">Deshabilitado mientras está activo como punto de acceso a VPN</string>
- <string name="save_battery_message">Conexiones de datos en segundo plano hibernarán cuando tu teléfono esté inactivo.</string>
- <string name="always_on_vpn">RPV siempre activa</string>
- <string name="subtitle_always_on_vpn">Abrir Configuración del Sistema Android</string>
- <string name="tethering">Punto de acceso a VPN</string>
- <string name="ipv6Firewall">Bloquear IPv6</string>
- <string name="require_root">Requiere permisos de superusuario</string>
- <string name="show_experimental">Mostrar características experimentales</string>
- <string name="hide_experimental">Ocultar características experimentales</string>
- <string name="experimental_features">Características experimentales</string>
- <string name="tethering_enabled_message">Por favor asegurate de habilitar primero tethering en los <![CDATA[<b>ajustes de sistema</b>]]>.</string>
- <string name="tethering_message">Compartí tu VPN con otros dispositivos vía:</string>
- <string name="tethering_wifi">Punto de acceso Wi-fi</string>
- <string name="tethering_usb">Tethering USB</string>
- <string name="tethering_bluetooth">Tethering bluetooth</string>
- <string name="do_not_show_again">No mostrar de nuevo.</string>
- <string name="always_on_vpn_user_message">Para habilitar always-on VPN en los ajustes de VPN de Android cliqueá en el icono de configuración [img src] y activá el selector.</string>
- <string name="always_on_blocking_vpn_user_message">Para proteger tu privacidad de manera óptima, también deberías activar la opción \\"Bloquear conexiones sin VPN\\". </string>
- <string name="donate_title">Doná</string>
- <string name="donate_default_message">Por favor doná hoy si valorás las comunicaciones seguras que son fáciles tanto para el usuario final como para el proveedor de servicio.</string>
- <string name="donate_message">LEAP depende de donaciones y becas. Por favor doná hoy si valorás las comunicaciones seguras que son fáciles tanto para el usuario final como para el proveedor de servicio.</string>
- <string name="donate_button_remind_later">Recordame más tarde</string>
- <string name="donate_button_donate">Doná</string>
- <string name="obfuscated_connection">Usando una conexión ofuscada.</string>
- <string name="obfuscated_connection_try">Probando una conexión ofuscada.</string>
- <string name="nav_drawer_obfuscated_connection">Usar puentes</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Evadir filtrado de VPN</string>
- <string name="warning_exclude_apps_message">Tené cuidado de excluir aplicaciones de la VPN. Esto va a revelar tu identidad y comprometer a tu seguridad.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d aplicación desprotegida</item>
- <item quantity="many">%d aplicaciones desprotegidas</item>
- <item quantity="other">%d aplicaciones desprotegidas</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s no se pudo conectar. Puede ser que las conexiones al VPN estén bloqueadas. ¿Querés intentar conectar usando conexiones ofuscadas?</string>
- <string name="warning_no_more_gateways_no_pt">%s no se pudo conectar. ¿Querés intentarlo de nuevo?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s no se pudo conectar al VPN usando conexiones ofuscadas. ¿Querés intentar conectar usando VPN estándar? </string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s no pudo conectarse a %2$s. ¿Quieres intentar conectarte automáticamente con la mejor ubicación?</string>
- <string name="warning_option_try_best">Intentar la mejor ubicación</string>
- <string name="warning_option_try_pt">Probar conexión ofuscada</string>
- <string name="warning_option_try_ovpn">Probar conexión estándar</string>
- <string name="vpn_error_establish">Android no pudo establecer el servicio VPN.</string>
- <string name="root_permission_error">%s no puede ejecutar características como punto de acceso a VPN o cortafuego IPv6 sin permisos de superusuario.</string>
- <string name="qs_enable_vpn">Iniciar %s</string>
- <string name="version_update_found">Pulsá acá para empezar la descarga.</string>
- <string name="version_update_title">Fue encontrada una nueva versión de %s.</string>
- <string name="version_update_apk_description">Descargando una nueva versión de %s</string>
- <string name="version_update_download_title">Fue descargada una nueva versión de %s.</string>
- <string name="version_update_download_description">Pulsá acá para instalar la actualización.</string>
- <string name="version_update_error_pgp_verification">Error de verificación PGP. Ignorando la descarga.</string>
- <string name="version_update_error">Falló la actualización.</string>
- <string name="version_update_error_permissions">No tenés permisos para instalar la aplicación.</string>
- <string name="gateway_selection_title">Seleccionar ubicación</string>
- <string name="gateway_selection_recommended_location">Ubicación recomendada</string>
- <string name="gateway_selection_recommended">Recomendado</string>
- <string name="gateway_selection_manually">Seleccionado manualmente</string>
- <string name="gateway_selection_automatic_location">Usar la mejor conexión automáticamente</string>
- <string name="gateway_selection_automatic">Automática</string>
- <string name="reconnecting">Reconectando...</string>
- <string name="tor_starting">Iniciando puentes para la evasión de la censura...</string>
- <string name="tor_stopping">Deteniendo puentes</string>
- <string name="tor_started">Usando puentes para la evasión de la censura</string>
- <string name="log_conn_done_pt">Vinculado con transporte conectable</string>
- <string name="log_conn_pt">Vinculando con transporte conectable</string>
- <string name="log_conn_done">Conectado a un repetidor</string>
- <string name="log_handshake">Negociando la conexión con un repetidor</string>
- <string name="log_handshake_done">Conexión con repetidor negociada</string>
- <string name="log_onehop_create">Estableciendo una conexión encriptada al directorio</string>
- <string name="log_requesting_status">Solicitando consenso de estado de red</string>
- <string name="log_loading_status">Cargando consenso de estado de red</string>
- <string name="log_loading_keys">Cargando certificados de autoridad</string>
- <string name="log_requesting_descriptors">Solicitando descriptores de repetidores</string>
- <string name="log_loading_descriptors">Cargando descriptores de repetidores</string>
- <string name="log_enough_dirinfo">Suficiente información de directorios cargada para establecer circuitos</string>
- <string name="log_ap_handshake_done">Negociación con repetidor finalizada para establecer circuitos</string>
- <string name="log_circuit_create">Estableciendo un circuito Tor</string>
- <string name="log_done">Ejecutándose</string>
- <string name="channel_name_tor_service">%s Servicio de Puentes</string>
- <string name="channel_description_tor_service">Informa acerca del uso de puentes mientras está configurando %s.</string>
- <string name="error_tor_timeout">Fallo al iniciar puentes. ¿Querés reintentar o continuar con una conexión segura sin ofuscación para configurar %s?</string>
- <string name="retry_unobfuscated">Reintentar sin ofuscación</string>
- <string name="hide">Ocultar</string>
- <string name="error_network_connection">%s no tiene conexión a Internet. Por favor comprueba tus ajustes de WiFi y datos móviles.</string>
- <string name="censorship_circumvention">Evasión de la censura</string>
- <string name="use_snowflake">Usar Snowflake</string>
- <string name="snowflake_description">Proteger el proceso de configuración contra la censura.</string>
- <string name="vpn_settings">Ajustes de RPV</string>
- <string name="prefer_udp">Usar UDP si está disponible</string>
- <string name="prefer_udp_subtitle">UDP puede ser más rápido y mejor para el streaming, pero no funciona para todas las redes.</string>
- <string name="disabled_while_bridges_on">Deshabilitado mientras se usan puentes.</string>
- <string name="hint_bridges">Solo ubicaciones que soportan puentes son seleccionables actualmente.</string>
- <string name="option_disable_bridges">Deshabilitar puentes</string>
- <string name="eip_state_insecure">Conexión insegura</string>
- <string name="connection_not_connected">Podrías estar filtrando información a tu proveedor de Internet o red local.</string>
- <string name="eip_state_no_network">No tenés una conexión a Internet funcional. Una vez que la tengas, automáticamente vas a estar conectado a</string>
- <string name="eip_state_blocking">%1$s está bloqueando todo el tráfico de Internet.</string>
- <string name="disabled_while_udp_on">Deshabilitado mientras está activo UDP.</string>
- <string name="advanced_settings">Configuraciones avanzadas</string>
- <string name="cancel_connection">Desconectar</string>
- <string name="next">Siguiente</string>
- <string name="details">Detalles</string>
- <string name="tor_status">Estado de Tor</string>
- <string name="select_language">Seleccionar idioma</string>
+ <string name="retry">Reintentar</string>
+ <string name="repository_url_text">Código fuente disponible en https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Rastreador de dificultades disponible en https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Traducciones son bienvenidas y apreciadas. Mirá nuestro proyecto en Transifex en https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Intercambiar proveedor</string>
+ <string name="info">información</string>
+ <string name="show_connection_details">Mostrar detalles de conexión</string>
+ <string name="connection_details">Detalles de conexión</string>
+ <string name="routes_info">Rutas: %s</string>
+ <string name="routes_info6">Rutas IPv6: %s</string>
+ <string name="error_empty_username">El nombre de usuario no debe estar vacío.</string>
+ <string name="cert_from_keystore">Se obtuvo certificado \'%s\' desde repositorio de claves</string>
+ <string name="provider_label">Proveedor:</string>
+ <string name="provider_label_none">No hay un proveedor configurado</string>
+ <string name="status_unknown">Estado desconocido</string>
+ <string name="eip_service_label">Acceso encriptado a Internet por RPV</string>
+ <string name="configuration_wizard_title">Seleccionar un proveedor de servicio</string>
+ <string name="add_provider">Añadir nuevo proveedor</string>
+ <string name="introduce_new_provider">Añadir un nuevo proveedor de servicio</string>
+ <string name="save">Guardar</string>
+ <string name="new_provider_uri">Nombre de dominio</string>
+ <string name="valid_url_entered">El URL es válido</string>
+ <string name="not_valid_url_entered">Formato incorrecto de URL</string>
+ <string name="provider_details_title">Detalles de proveedor</string>
+ <string name="use_anonymously_button">Usar anónimamente</string>
+ <string name="username_hint">nombre de usuario</string>
+ <string name="username_ask">Por favor ingresá tu nombre de usuario</string>
+ <string name="password_ask">Por favor ingresá tu contraseña</string>
+ <string name="password_hint">contraseña</string>
+ <string name="password_match">Las contraseñas coinciden</string>
+ <string name="password_mismatch">Las contraseñas no coinciden</string>
+ <string name="user_message">Mensaje de usuario</string>
+ <string name="about_fragment_title">Acerca de</string>
+ <string name="exclude_apps_fragment_title">Excluir aplicaciones del VPN</string>
+ <string name="error_srp_math_error_user_message">Intentar de nuevo: Error matemático de servidor.</string>
+ <string name="error_bad_user_password_user_message">Nombre de usuario o contraseña incorrecto.</string>
+ <string name="error_not_valid_password_user_message">Debe ser al menos 8 caracteres de largo.</string>
+ <string name="error_client_http_user_message">Intentar de nuevo: Error de cliente HTTP</string>
+ <string name="error_io_exception_user_message">Intentar de nuevo: Error de Entrada/Salida</string>
+ <string name="error_json_exception_user_message">Intentar de nuevo: Mala respuesta desde el servidor</string>
+ <string name="error_no_such_algorithm_exception_user_message">Algoritmo de encriptación no encontrado. ¡Por favor, instalá una versión más nueva de Android!</string>
+ <string name="signup_or_login_button">Suscribirte/Iniciar sesión</string>
+ <string name="login_button">Iniciar sesión</string>
+ <string name="login_to_profile">Iniciar sesión en el perfil</string>
+ <string name="logout_button">Cerrar sesión</string>
+ <string name="signup_button">Suscribirte</string>
+ <string name="create_profile">Crear perfil</string>
+ <string name="setup_provider">Definir ajustes de proveedor</string>
+ <string name="setup_error_title">Error de configuración</string>
+ <string name="setup_error_configure_button">Configurar</string>
+ <string name="setup_error_close_button">Salir</string>
+ <string name="setup_error_text">Hubo un error al configurar %s con tu proveedor seleccionado.\n\nPodés elegir reconfigurar, o salir y configurar un proveedor en el próximo inicio.</string>
+ <string name="setup_error_text_custom">Hubo un error configurando %s.\n\nPodrías elegir reconfigurar, o salir.</string>
+ <string name="server_unreachable_message">El servidor es inalcanzable, por favor intentá de nuevo.</string>
+ <string name="error.security.pinnedcertificate">Error de seguridad, instalar una nueva versión de la aplicación o elegir otro proveedor.</string>
+ <string name="malformed_url">No parece ser un proveedor %s.</string>
+ <string name="certificate_error">Este no es un proveedor %s de confianza.</string>
+ <string name="service_is_down_error">El servicio está caído.</string>
+ <string name="configuring_provider">Configurando proveedor.</string>
+ <string name="downloading_certificate_message">Descargando certificado de RPV</string>
+ <string name="updating_certificate_message">Actualizando certificado de RPV</string>
+ <string name="login.riseup.warning">Usuarios de Riseup necesitarán crear una cuenta separada para usar el servicio de RPV.</string>
+ <string name="succesful_authentication_message">Autenticado.</string>
+ <string name="authentication_failed_message">Falló autenticación.</string>
+ <string name="registration_failed_message">Falló el registro.</string>
+ <string name="eip_status_start_pending">Iniciando conexión</string>
+ <string name="eip_cancel_connect_title">¿Cancelar conexión?</string>
+ <string name="eip_cancel_connect_text">Hay un intento de conexión en curso. ¿Deseás cancelarlo?</string>
+ <string name="eip.warning.browser_inconsistency">¿Desactivar conexión RPV? Cuando la RPV está desactivada, podés filtrar información personal a tu proveedor de Internet o red local.</string>
+ <string name="eip_state_not_connected">¡No está corriendo! ¡Conexión insegura!</string>
+ <string name="eip_state_connected">Conexión segura.</string>
+ <string name="provider_problem">Parece que hay un problema con el proveedor.</string>
+ <string name="try_another_provider">Por favor intentá con otro proveedor, o contactá al tuyo.</string>
+ <string name="default_username">Anónimo.</string>
+ <string name="logging_in">Iniciando sesión.</string>
+ <string name="signing_up">Suscribiéndose.</string>
+ <string name="vpn.button.turn.on">Activar.</string>
+ <string name="vpn.button.turn.off">Desactivar.</string>
+ <string name="vpn_button_turn_off_blocking">Detener bloqueo</string>
+ <string name="vpn_securely_routed">Tu tráfico está ruteado en forma segura a través de:</string>
+ <string name="vpn_securely_routed_no_internet">No hay conexión a Internet, cuando vuelva, tu tráfico será ruteado en forma segura a través de:</string>
+ <string name="log_fragment_title">Bitácora</string>
+ <string name="vpn_fragment_title">RPV</string>
+ <string name="navigation_drawer_open">Abrir cajón de navegación</string>
+ <string name="navigation_drawer_close">Cerrar cajón de navegación</string>
+ <string name="action_example">Acción de ejemplo</string>
+ <string name="action_settings">Ajustes</string>
+ <string name="void_vpn_establish">%s bloquea todo el tráfico saliente de internet</string>
+ <string name="void_vpn_error_establish">Fallo al bloquear todo el tráfico de Internet.</string>
+ <string name="void_vpn_stopped">Detener bloqueo a todo el tráfico saliente hacia Internet.</string>
+ <string name="void_vpn_title">Bloqueando tráfico</string>
+ <string name="update_provider_details">Actualizar detalles de proveedor</string>
+ <string name="update_certificate">Actualizar certificado</string>
+ <string name="warning_eip_json_corrupted">Actualización de configuración de proveedor falló.</string>
+ <string name="eip_json_corrupted_user_message">Actualización de configuración de proveedor falló. Por favor iniciar sesión para intentar nuevamente.</string>
+ <string name="warning_client_parsing_error_gateways">Los portales de salida del proveedor no pudieron ser reconocidos. Pueden estar configurados incorrectamente.</string>
+ <string name="warning_corrupted_provider_details">Los detalles almacenados de este proveedor están corrompidos. Podés actualizar %s (recomendado), o bien actualizar los detalles del proveedor usando un certificado de una autoridad de certificación comercial.</string>
+ <string name="warning_corrupted_provider_cert">El certificado almacenado de este proveedor es inválido. Podés actualizar %s (recomendado) o actualizar el certificado del proveedor usando una autoridad de certificación comercial. </string>
+ <string name="warning_expired_provider_cert">El certificado almacenado de este proveedor ha caducado. Podés actualizar %s (recomendado) o actualizar el certificado de proveedor usando una autoridad de certificación comercial.</string>
+ <string name="downloading_vpn_certificate_failed">La descarga del certificado de RPV falló. Intentá de nuevo o elegí otro proveedor.</string>
+ <string name="save_battery">Ahorrando batería</string>
+ <string name="subtitle_save_battery">Deshabilitado mientras está activo como punto de acceso a VPN</string>
+ <string name="save_battery_message">Conexiones de datos en segundo plano hibernarán cuando tu teléfono esté inactivo.</string>
+ <string name="always_on_vpn">RPV siempre activa</string>
+ <string name="subtitle_always_on_vpn">Abrir Configuración del Sistema Android</string>
+ <string name="tethering">Punto de acceso a VPN</string>
+ <string name="ipv6Firewall">Bloquear IPv6</string>
+ <string name="require_root">Requiere permisos de superusuario</string>
+ <string name="show_experimental">Mostrar características experimentales</string>
+ <string name="hide_experimental">Ocultar características experimentales</string>
+ <string name="experimental_features">Características experimentales</string>
+ <string name="tethering_enabled_message">Por favor asegurate de habilitar primero tethering en los <![CDATA[<b>ajustes de sistema</b>]]>.</string>
+ <string name="tethering_message">Compartí tu VPN con otros dispositivos vía:</string>
+ <string name="tethering_wifi">Punto de acceso Wi-fi</string>
+ <string name="tethering_usb">Tethering USB</string>
+ <string name="tethering_bluetooth">Tethering bluetooth</string>
+ <string name="do_not_show_again">No mostrar de nuevo.</string>
+ <string name="always_on_vpn_user_message">Para habilitar always-on VPN en los ajustes de VPN de Android cliqueá en el icono de configuración [img src] y activá el selector.</string>
+ <string name="always_on_blocking_vpn_user_message">Para proteger tu privacidad de manera óptima, también deberías activar la opción \\"Bloquear conexiones sin VPN\\". </string>
+ <string name="donate_title">Doná</string>
+ <string name="donate_default_message">Por favor doná hoy si valorás las comunicaciones seguras que son fáciles tanto para el usuario final como para el proveedor de servicio.</string>
+ <string name="donate_message">LEAP depende de donaciones y becas. Por favor doná hoy si valorás las comunicaciones seguras que son fáciles tanto para el usuario final como para el proveedor de servicio.</string>
+ <string name="donate_button_remind_later">Recordame más tarde</string>
+ <string name="donate_button_donate">Doná</string>
+ <string name="obfuscated_connection">Usando una conexión ofuscada.</string>
+ <string name="obfuscated_connection_try">Probando una conexión ofuscada.</string>
+ <string name="nav_drawer_obfuscated_connection">Usar puentes</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Evadir filtrado de VPN</string>
+ <string name="warning_exclude_apps_message">Tené cuidado de excluir aplicaciones de la VPN. Esto va a revelar tu identidad y comprometer a tu seguridad.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d aplicación desprotegida</item>
+ <item quantity="many">%d aplicaciones desprotegidas</item>
+ <item quantity="other">%d aplicaciones desprotegidas</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s no se pudo conectar. Puede ser que las conexiones al VPN estén bloqueadas. ¿Querés intentar conectar usando conexiones ofuscadas?</string>
+ <string name="warning_no_more_gateways_no_pt">%s no se pudo conectar. ¿Querés intentarlo de nuevo?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s no se pudo conectar al VPN usando conexiones ofuscadas. ¿Querés intentar conectar usando VPN estándar? </string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s no pudo conectarse a %2$s. ¿Quieres intentar conectarte automáticamente con la mejor ubicación?</string>
+ <string name="warning_option_try_best">Intentar la mejor ubicación</string>
+ <string name="warning_option_try_pt">Probar conexión ofuscada</string>
+ <string name="warning_option_try_ovpn">Probar conexión estándar</string>
+ <string name="vpn_error_establish">Android no pudo establecer el servicio VPN.</string>
+ <string name="root_permission_error">%s no puede ejecutar características como punto de acceso a VPN o cortafuego IPv6 sin permisos de superusuario.</string>
+ <string name="qs_enable_vpn">Iniciar %s</string>
+ <string name="version_update_found">Pulsá acá para empezar la descarga.</string>
+ <string name="version_update_title">Fue encontrada una nueva versión de %s.</string>
+ <string name="version_update_apk_description">Descargando una nueva versión de %s</string>
+ <string name="version_update_download_title">Fue descargada una nueva versión de %s.</string>
+ <string name="version_update_download_description">Pulsá acá para instalar la actualización.</string>
+ <string name="version_update_error_pgp_verification">Error de verificación PGP. Ignorando la descarga.</string>
+ <string name="version_update_error">Falló la actualización.</string>
+ <string name="version_update_error_permissions">No tenés permisos para instalar la aplicación.</string>
+ <string name="gateway_selection_title">Seleccionar ubicación</string>
+ <string name="gateway_selection_recommended_location">Ubicación recomendada</string>
+ <string name="gateway_selection_recommended">Recomendado</string>
+ <string name="gateway_selection_manually">Seleccionado manualmente</string>
+ <string name="gateway_selection_automatic_location">Usar la mejor conexión automáticamente</string>
+ <string name="gateway_selection_automatic">Automática</string>
+ <string name="reconnecting">Reconectando...</string>
+ <string name="tor_starting">Iniciando puentes para la evasión de la censura...</string>
+ <string name="tor_stopping">Deteniendo puentes</string>
+ <string name="tor_started">Usando puentes para la evasión de la censura</string>
+ <string name="log_conn_done_pt">Vinculado con transporte conectable</string>
+ <string name="log_conn_pt">Vinculando con transporte conectable</string>
+ <string name="log_conn_done">Conectado a un repetidor</string>
+ <string name="log_handshake">Negociando la conexión con un repetidor</string>
+ <string name="log_handshake_done">Conexión con repetidor negociada</string>
+ <string name="log_onehop_create">Estableciendo una conexión encriptada al directorio</string>
+ <string name="log_requesting_status">Solicitando consenso de estado de red</string>
+ <string name="log_loading_status">Cargando consenso de estado de red</string>
+ <string name="log_loading_keys">Cargando certificados de autoridad</string>
+ <string name="log_requesting_descriptors">Solicitando descriptores de repetidores</string>
+ <string name="log_loading_descriptors">Cargando descriptores de repetidores</string>
+ <string name="log_enough_dirinfo">Suficiente información de directorios cargada para establecer circuitos</string>
+ <string name="log_ap_handshake_done">Negociación con repetidor finalizada para establecer circuitos</string>
+ <string name="log_circuit_create">Estableciendo un circuito Tor</string>
+ <string name="log_done">Ejecutándose</string>
+ <string name="channel_name_tor_service">%s Servicio de Puentes</string>
+ <string name="channel_description_tor_service">Informa acerca del uso de puentes mientras está configurando %s.</string>
+ <string name="error_tor_timeout">Fallo al iniciar puentes. ¿Querés reintentar o continuar con una conexión segura sin ofuscación para configurar %s?</string>
+ <string name="retry_unobfuscated">Reintentar sin ofuscación</string>
+ <string name="hide">Ocultar</string>
+ <string name="error_network_connection">%s no tiene conexión a Internet. Por favor comprueba tus ajustes de WiFi y datos móviles.</string>
+ <string name="censorship_circumvention">Evasión de la censura</string>
+ <string name="use_snowflake">Usar Snowflake</string>
+ <string name="snowflake_description">Proteger el proceso de configuración contra la censura.</string>
+ <string name="vpn_settings">Ajustes de RPV</string>
+ <string name="prefer_udp">Usar UDP si está disponible</string>
+ <string name="prefer_udp_subtitle">UDP puede ser más rápido y mejor para el streaming, pero no funciona para todas las redes.</string>
+ <string name="disabled_while_bridges_on">Deshabilitado mientras se usan puentes.</string>
+ <string name="hint_bridges">Solo ubicaciones que soportan puentes son seleccionables actualmente.</string>
+ <string name="option_disable_bridges">Deshabilitar puentes</string>
+ <string name="eip_state_insecure">Conexión insegura</string>
+ <string name="connection_not_connected">Podrías estar filtrando información a tu proveedor de Internet o red local.</string>
+ <string name="eip_state_no_network">No tenés una conexión a Internet funcional. Una vez que la tengas, automáticamente vas a estar conectado a</string>
+ <string name="eip_state_blocking">%1$s está bloqueando todo el tráfico de Internet.</string>
+ <string name="disabled_while_udp_on">Deshabilitado mientras está activo UDP.</string>
+ <string name="advanced_settings">Configuraciones avanzadas</string>
+ <string name="cancel_connection">Desconectar</string>
+ <string name="next">Siguiente</string>
+ <string name="details">Detalles</string>
+ <string name="tor_status">Estado de Tor</string>
+ <string name="select_language">Seleccionar idioma</string>
</resources>
diff --git a/app/src/main/res/values-es-rCU/strings.xml b/app/src/main/res/values-es-rCU/strings.xml
index 2fb56504..629e0160 100644
--- a/app/src/main/res/values-es-rCU/strings.xml
+++ b/app/src/main/res/values-es-rCU/strings.xml
@@ -1,239 +1,228 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Intenta de nuevo</string>
- <string name="repository_url_text">Código fuente disponible en https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Rastreador de problemas disponible en https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Las traducciones son bienvenidas y apreciadas. Mira nuestro proyecto de Transifex en https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Cambia de proveedor</string>
- <string name="info">información</string>
- <string name="show_connection_details">Ver detalles de conexión</string>
- <string name="connection_details">Detalles de la conexión</string>
- <string name="routes_info">Rutas: %s</string>
- <string name="routes_info6">Rutas IPv6: %s</string>
- <string name="error_empty_username">El nombre de usuario no debe estar vacío.</string>
- <string name="cert_from_keystore">Se obtuvo certificado \'%s\' desde el almacenamiento de claves</string>
- <string name="provider_label">Proveedor:</string>
- <string name="provider_label_none">No se ha configurado ningún proveedor</string>
- <string name="status_unknown">Estado desconocido</string>
- <string name="eip_service_label">Acceso seguro a Internet mediante VPN</string>
- <string name="configuration_wizard_title">Selecciona un proveedor de servicios</string>
- <string name="add_provider">Añade un nuevo Proveedor</string>
- <string name="introduce_new_provider">Añade un nuevo proveedor de servicio</string>
- <string name="save">Guardar</string>
- <string name="new_provider_uri">Nombre de dominio</string>
- <string name="valid_url_entered">La URL es válida</string>
- <string name="not_valid_url_entered">Formato incorrecto de URL</string>
- <string name="provider_details_title">Detalles del proveedor</string>
- <string name="use_anonymously_button">Usa anónimamente</string>
- <string name="username_hint">Nombre de usuario</string>
- <string name="username_ask">Por favor, escribe tu nombre de usuario aquí.</string>
- <string name="password_ask">Por favor, escribe tu contraseña aquí</string>
- <string name="password_hint">contraseña</string>
- <string name="password_match">Las contraseñas coinciden</string>
- <string name="password_mismatch">Las contraseñas no coinciden</string>
- <string name="user_message">Mensaje de usuario</string>
- <string name="about_fragment_title">Acerca de </string>
- <string name="exclude_apps_fragment_title">Excluye aplicaciones de la VPN</string>
- <string name="error_srp_math_error_user_message">Inténtalo de nuevo: Error matemático del servidor.</string>
- <string name="error_bad_user_password_user_message">El nombre de usuario o la contraseña no son correctos.</string>
- <string name="error_not_valid_password_user_message">Debe tener al menos 8 caracteres</string>
- <string name="error_client_http_user_message">Inténtalo de nuevo: Error del cliente HTTP</string>
- <string name="error_io_exception_user_message">Inténtalo de nuevo: Error de E/S</string>
- <string name="error_json_exception_user_message">Inténtalo de nuevo: No es válida la respuesta desde el servidor.</string>
- <string name="error_no_such_algorithm_exception_user_message">No se encontró el algoritmo de cifrado. ¡Por favor, instala una versión más nueva de Android!</string>
- <string name="signup_or_login_button">Registrarte/Iniciar sesión</string>
- <string name="login_button">Iniciar sesión</string>
- <string name="login_to_profile">Iniciar sesión en el perfil</string>
- <string name="logout_button">Cerrar sesión</string>
- <string name="signup_button">Regístrate</string>
- <string name="create_profile">Hacer una cuenta</string>
- <string name="setup_provider">Establecer servidor</string>
- <string name="setup_error_title">Error de configuración</string>
- <string name="setup_error_configure_button">Configurar</string>
- <string name="setup_error_close_button">Salir</string>
- <string name="setup_error_text">Ocurrió un error al configurar %s con tu servidor seleccionado.\n\nPuedes elegir reconfigurar, o salir y configurar un servidor en el próximo inicio.</string>
- <string name="setup_error_text_custom">Ocurrió un error configurando %s.\n\nPuedes elegir reconfigurar o salir.</string>
- <string name="server_unreachable_message">No se pudo alcanzar el servidor, por favor inténtalo de nuevo.</string>
- <string name="error.security.pinnedcertificate">Error de seguridad, actualiza la aplicación o elige otro proveedor.</string>
- <string name="malformed_url">Parece que no hay un proveedor %s.</string>
- <string name="certificate_error">Este proveedor %s no es de confianza.</string>
- <string name="service_is_down_error">No se puede acceder en este momento</string>
- <string name="configuring_provider">Configurando proveedor</string>
- <string name="incorrectly_downloaded_certificate_message">Tu certificado anónimo de seguridad no se pudo descargar</string>
- <string name="downloading_certificate_message">Descargando certificado de seguridad de VPN</string>
- <string name="updating_certificate_message">Actualizando certificado de seguridad de VPN</string>
- <string name="login.riseup.warning">Los usuarios de Riseup necesitarán crear una cuenta aparte para usar el servicio VPN</string>
- <string name="succesful_authentication_message">Autenticado</string>
- <string name="authentication_failed_message">Autenticación fallida</string>
- <string name="registration_failed_message">Registración fallida</string>
- <string name="eip_status_start_pending">Iniciando conexión</string>
- <string name="eip_status_connecting">Conectando a VPN</string>
- <string name="eip_status_unsecured">Conexión insegura</string>
- <string name="eip_status_secured">Conexión segura</string>
- <string name="eip_cancel_connect_title">¿Cancelar conexión?</string>
- <string name="eip_cancel_connect_text">Se está intentando establecer la conexión. ¿Deseas cancelarla?</string>
- <string name="eip.warning.browser_inconsistency">¿Quieres desactivar la conexión VPN? Si desactivas la VPN vas a exponer tu información personal a tu proveedor de Internet o a la red local.</string>
- <string name="eip_state_not_connected">¡La conexión no es segura!</string>
- <string name="eip_state_connected">Conexión segura</string>
- <string name="provider_problem">Parece que hay un problema con el proveedor.</string>
- <string name="try_another_provider">Por favor intentá con otro proveedor, o contactá al tuyo.</string>
- <string name="default_username">Anónimo</string>
- <string name="logging_in">Iniciando sesión</string>
- <string name="signing_up">Registrándote</string>
- <string name="vpn.button.turn.on">Activar</string>
- <string name="vpn.button.turn.off">Desactivar</string>
- <string name="vpn_button_turn_off_blocking">Detener bloqueo</string>
- <string name="vpn_securely_routed">Tu información está siendo dirigida de manera segura a través de:</string>
- <string name="vpn_securely_routed_no_internet">No se detectó conexión a Internet, cuando vuelva, enrutaremos tu información de forma segura a través de:</string>
- <string name="log_fragment_title">Historial del servidor</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Abrir panel de navegación</string>
- <string name="navigation_drawer_close">Cerrar panel de navegación</string>
- <string name="action_example">Demostración</string>
- <string name="action_settings">Configuración</string>
- <string name="void_vpn_establish">%s bloquea todo el tráfico saliente de internet</string>
- <string name="void_vpn_error_establish">Fallo al bloquear todo el tráfico de Internet.</string>
- <string name="void_vpn_stopped">Se detuvo el bloqueo de todo el tráfico saliente de Internet.</string>
- <string name="void_vpn_title">Bloqueando el tráfico</string>
- <string name="update_provider_details">Actualizar detalles del proveedor</string>
- <string name="update_certificate">Actualizar certificado</string>
- <string name="warning_eip_json_corrupted">Error al actualizar la configuración del proveedor</string>
- <string name="eip_json_corrupted_user_message">Error al actualizar la configuración del proveedor. Por favor, inicia sesión e inténtalo de nuevo.</string>
- <string name="warning_client_parsing_error_gateways">Las puertas de enlace del proveedor no fueron reconocidas, es posible que estén configuradas incorrectamente.</string>
- <string name="warning_corrupted_provider_details">Los detalles almacenados de este proveedor están corruptos. Puedes actualizar %s (recomendado), o bien actualizar los detalles del proveedor usando un certificado de una autoridad de certificación comercial.</string>
- <string name="warning_corrupted_provider_cert">El certificado almacenado del proveedor es inválido. Puedes actualizar %s (recomendado) o actualizar el certificado del proveedor usando una autoridad de certificación comercial. </string>
- <string name="warning_expired_provider_cert">El certificado almacenado de este proveedor ha caducado. Puedes actualizar %s (recomendado) o actualizar el certificado de proveedor usando una autoridad de certificación comercial.</string>
- <string name="downloading_vpn_certificate_failed">La descarga del certificado de la VPN falló. Intentá de nuevo o elige otro proveedor.</string>
- <string name="vpn_certificate_is_invalid">El certificado de la VPN es inválido. Intentá descargar uno nuevo.</string>
- <string name="vpn_certificate_user_message">El certificado de la VPN es inválido. Por favor iniciá sesión para descargar uno nuevo.</string>
- <string name="save_battery">Ahorrar batería</string>
- <string name="subtitle_save_battery">Deshabilitado mientras está activo el punto de acceso a la VPN</string>
- <string name="save_battery_message">Conexiones de datos en segundo plano hibernarán cuando tu teléfono esté inactivo.</string>
- <string name="always_on_vpn">VPN siempre activa</string>
- <string name="subtitle_always_on_vpn">Configuración del sistema Open Android</string>
- <string name="tethering">Punto de acceso a la VPN</string>
- <string name="ipv6Firewall">Bloquear IPv6</string>
- <string name="require_root">Requiere permisos de superusuario</string>
- <string name="show_experimental">Mostrar características experimentales</string>
- <string name="hide_experimental">Ocultar características experimentales</string>
- <string name="experimental_features">Características experimentales</string>
- <string name="tethering_enabled_message">Por favor, primero asegúrate de habilitar el anclaje de red en los <![CDATA[<b>ajustes de sistema</b>]]>.</string>
- <string name="tethering_message">Comparte tu VPN con otros dispositivos vía:</string>
- <string name="tethering_wifi">Punto de acceso Wi-fi</string>
- <string name="tethering_usb">Conexión USB</string>
- <string name="tethering_bluetooth">Conexión bluetooth</string>
- <string name="do_not_show_again">No mostrar de nuevo.</string>
- <string name="always_on_vpn_user_message">Para habilitar la VPN siempre activa, en las configuraciones de VPN de Android, haz click en el ícono de configuración [img src] y activa el selector.</string>
- <string name="always_on_blocking_vpn_user_message">Para proteger tu privacidad de manera óptima, también deberías activar la opción \"Bloquear conexiones sin VPN\". </string>
- <string name="donate_title">Donar</string>
- <string name="donate_default_message">Por favor haz una donación hoy si valoras la comunicación segura, que es fácil de usar tanto para el usuario final como para el proveedor de servicio.</string>
- <string name="donate_message">LEAP depende de donaciones y subvenciones. Por favor haz una donación hoy si valoras la comunicación segura, que es fácil de usar tanto para el usuario final como para el proveedor de servicio.</string>
- <string name="donate_button_remind_later">Recuérdamelo más tarde</string>
- <string name="donate_button_donate">Donar</string>
- <string name="obfuscated_connection">Usando una conexión ofuscada.</string>
- <string name="obfuscated_connection_try">Probando una conexión ofuscada.</string>
- <string name="nav_drawer_obfuscated_connection">Usar puentes</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Evitar filtrado de VPN</string>
- <string name="warning_exclude_apps_message">Ten cuidado de excluir aplicaciones de la VPN. Esto va a revelar tu identidad y comprometer tu seguridad.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d aplicación no protegida</item>
- <item quantity="many">%d aplicaciones no protegidas</item>
- <item quantity="other">%d aplicaciones no protegidas</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s no se pudo conectar. Puede ser que las conexiones al VPN estén bloqueadas. ¿Quieres intentar conectar usando conexiones ofuscadas?</string>
- <string name="warning_no_more_gateways_no_pt">%s no se pudo conectar. ¿Quieres intentarlo de nuevo?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s no se pudo conectar al VPN usando conexiones ofuscadas. ¿Quieres intentar conectar usando la VPN estándar? </string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s no pudo conectarse a %2$s. ¿Quieres intentar conectarte automáticamente con la mejor ubicación?</string>
- <string name="warning_option_try_best">Intentar la mejor ubicación</string>
- <string name="warning_option_try_pt">Intentar conexión ofuscada</string>
- <string name="warning_option_try_ovpn">Intentar conexión estándar</string>
- <string name="vpn_error_establish">Android no pudo establecer el servicio VPN.</string>
- <string name="root_permission_error">%s no puede ejecutar las funciones de punto de acceso a VPN o cortafuegos IPv6 si no dispone de permisos de superusuario.</string>
- <string name="qs_enable_vpn">Iniciar %s</string>
- <string name="version_update_found">Haz click aquí para iniciar la descarga.</string>
- <string name="version_update_title">Se ha encontrado una nueva versión de %s.</string>
- <string name="version_update_apk_description">Descargando una nueva versión de %s</string>
- <string name="version_update_download_title">La nueva versión de %s se ha descargado.</string>
- <string name="version_update_download_description">Haz click aquí para instalar la actualización.</string>
- <string name="version_update_error_pgp_verification">Error de verificación PGP. Ignorando la descarga.</string>
- <string name="version_update_error">Falló la actualización.</string>
- <string name="version_update_error_permissions">No tienes permisos para instalar la aplicación.</string>
- <string name="gateway_selection_title">Seleccionar ubicación</string>
- <string name="gateway_selection_recommended_location">Ubicación recomendada</string>
- <string name="gateway_selection_recommended">Recomendado</string>
- <string name="gateway_selection_manually">Seleccionar manualmente</string>
- <string name="gateway_selection_automatic_location">Usar la mejor conexión automáticamente</string>
- <string name="gateway_selection_automatic">Automática</string>
- <string name="reconnecting">Reconectando...</string>
- <string name="tor_starting">Iniciando puentes para evasión de la censura...</string>
- <string name="tor_stopping">Deteniendo puentes</string>
- <string name="tor_started">Usando puentes para evasión de la censura</string>
- <string name="log_conn_done_pt">Conectado al transporte conectable</string>
- <string name="log_conn_pt">Conectando al transporte conectable</string>
- <string name="log_conn_done">Conectado a un repetidor</string>
- <string name="log_handshake">Negociando la conexión con un repetidor</string>
- <string name="log_handshake_done">Conexión con repetidor negociada</string>
- <string name="log_onehop_create">Estableciendo conexión cifrada con el repositorio de repetidores</string>
- <string name="log_requesting_status">Solicitando consenso del estado de red</string>
- <string name="log_loading_status">Cargando consenso del estado de red</string>
- <string name="log_loading_keys">Cargando las autoridades certificadoras</string>
- <string name="log_requesting_descriptors">Solicitando descriptores de repetidores</string>
- <string name="log_loading_descriptors">Cargando descriptores de repetidores</string>
- <string name="log_enough_dirinfo">Suficiente información de directorios cargada para establecer circuitos</string>
- <string name="log_ap_handshake_done">Ha finalizado la negociación con repetidor para establecer circuitos</string>
- <string name="log_circuit_create">Estableciendo circuito Tor</string>
- <string name="log_done">En ejecución</string>
- <string name="channel_name_tor_service">%s Servicio de Puentes</string>
- <string name="channel_description_tor_service">Reporta el uso de puentes configurando %s.</string>
- <string name="error_tor_timeout">Fallo al iniciar puentes. ¿Quieres reintentar o continuar con una conexión segura sin ofuscación para configurar %s?</string>
- <string name="retry_unobfuscated">Intentar de nuevo sin ofuscación</string>
- <string name="hide">Ocultar</string>
- <string name="error_network_connection">%s no tiene conexión a internet. Por favor comprueba tus ajustes de WiFi y datos móviles.</string>
- <string name="censorship_circumvention">Evadir censura</string>
- <string name="use_snowflake">Usar Snowflake</string>
- <string name="snowflake_description">Proteger el proceso de configuración contra la censura.</string>
- <string name="vpn_settings">Ajustes de VPN</string>
- <string name="prefer_udp">Usar UDP si está disponible</string>
- <string name="prefer_udp_subtitle">UDP puede ser más rápido y mejor para streaming, pero no funciona para todas las redes.</string>
- <string name="disabled_while_bridges_on">Deshabilitado mientras se usan puentes.</string>
- <string name="hint_bridges">Solo las ubicaciones que soportan puentes se pueden elegir por el momento.</string>
- <string name="option_disable_bridges">Deshabilitar puentes</string>
- <string name="eip_state_insecure">Conexión no segura</string>
- <string name="connection_not_connected">Podrías estar filtrando información a tu proveedor de internet o red local.</string>
- <string name="eip_state_no_network">No tienes conexión a internet ahora. Una vez que la tengas, automáticamente vas a estar conectado a</string>
- <string name="eip_state_blocking">%1$s está bloqueando todo el tráfico de internet.</string>
- <string name="disabled_while_udp_on">Deshabilitado mientras UDP está activado.</string>
- <string name="advanced_settings">Configuración avanzada</string>
- <string name="cancel_connection">Desconectar</string>
- <string name="unknown_location">Ubicación desconocida</string>
- <string name="splash_footer">Desarrollado por LEAP</string>
- <string name="welcome">¡Bienvenido!</string>
- <string name="select_provider">Selecciona tu proveedor</string>
- <string name="select_provider_description">Cuando utilizas una VPN, estás transfiriendo la confianza de tu proveedor de servicios de internet a tu proveedor de VPN. Bitmask solo se conecta con proveedores con un historial claro de protección y defensa de la privacidad.</string>
- <string name="provider_description_riseup">Riseup proporciona herramientas de comunicación en línea a personas y grupos que trabajan por un cambio social en favor de la libertad. Somos un proyecto que crea alternativas democráticas y practica la autodeterminación controlando nuestros propios medios de comunicación seguros.</string>
- <string name="next">Siguiente</string>
- <string name="add_provider_description">Bitmask se conecta a proveedores confiables que no aparecen en la lista pública. Ingresa la URL de tu proveedor. </string>
- <string name="provider_description_calyx">Calyx es una organización de educación e investigación sin fines de lucro, dedicada a estudiar, probar, desarrollar e implementar tecnologías y herramientas de privacidad para promover la libertad de expresión, el compromiso cívico y los derechos de privacidad en Internet y en la industria de las comunicaciones telefónicas.</string>
- <string name="title_circumvention_setup">¿Necesitas evitar la censura?</string>
- <string name="circumvention_setup_description">Si vives en un lugar donde Internet está censurado, puedes usar nuestras opciones de evasión de censura para acceder a todos los servicios de Internet. ¡Estas opciones disminuirán la velocidad de tu conexión!</string>
- <string name="circumvention_setup_hint">%s tratará de conectarte a Internet usando varias tecnologías de evasión. Puedes modificar algunas opciones en la configuración avanzada.</string>
- <string name="use_standard_vpn">Utiliza el estándar %s</string>
- <string name="use_circumvention_tech">Usa tecnología de evasión (más lento)</string>
- <string name="description_configure_provider">Para conectarte a tu proveedor, %1$s está obteniendo toda la información de configuración requerida. Esto solo ocurrirá durante la primera configuración. </string>
- <string name="description_configure_provider_circumvention">%1$s está intentando obtener toda la información de tu proveedor. Esto solo ocurrirá durante la primera configuración y podría demorar algún tiempo.</string>
- <string name="details">Detalles</string>
- <string name="tor_status">Estado de Tor</string>
- <string name="snowflake_status">Estado Snowflake</string>
- <string name="snowflake_started">cliente Snowflake iniciado</string>
- <string name="snowflake_negotiating_rendezvous_http">Intentando conectarse al proxy Snowflake (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Intentando conectarse al proxy Snowflake (amp cache)</string>
- <string name="snowflake_socks_error">error Snowflake SOCKS</string>
- <string name="snowflake_broker_success">Conexión del proxy Snowflake exitosa.</string>
- <string name="snowflake_sending_data">Enviando datos a través de Snowflake</string>
- <string name="title_upcoming_connection_request">Próxima Solicitud de Conexión</string>
- <string name="title_upcoming_notifications_request">Solicitud de Próximas Notificaciones</string>
- <string name="title_setup_success">¡Estás listo! </string>
- <string name="setup_success_description">Haz click en el botón de abajo para conectar.</string>
- <string name="permission_rejected">Permiso rechazado.</string>
- <string name="login_not_supported">Tu versión de esta aplicación está desactualizada y no puedes iniciar sesión. Necesitas actualizar tus certificados de VPN para este proveedor. </string>
+ <string name="retry">Intenta de nuevo</string>
+ <string name="repository_url_text">Código fuente disponible en https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Rastreador de problemas disponible en https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Las traducciones son bienvenidas y apreciadas. Mira nuestro proyecto de Transifex en https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Cambia de proveedor</string>
+ <string name="info">información</string>
+ <string name="show_connection_details">Ver detalles de conexión</string>
+ <string name="connection_details">Detalles de la conexión</string>
+ <string name="routes_info">Rutas: %s</string>
+ <string name="routes_info6">Rutas IPv6: %s</string>
+ <string name="error_empty_username">El nombre de usuario no debe estar vacío.</string>
+ <string name="cert_from_keystore">Se obtuvo certificado \'%s\' desde el almacenamiento de claves</string>
+ <string name="provider_label">Proveedor:</string>
+ <string name="provider_label_none">No se ha configurado ningún proveedor</string>
+ <string name="status_unknown">Estado desconocido</string>
+ <string name="eip_service_label">Acceso seguro a Internet mediante VPN</string>
+ <string name="configuration_wizard_title">Selecciona un proveedor de servicios</string>
+ <string name="add_provider">Añade un nuevo Proveedor</string>
+ <string name="introduce_new_provider">Añade un nuevo proveedor de servicio</string>
+ <string name="save">Guardar</string>
+ <string name="new_provider_uri">Nombre de dominio</string>
+ <string name="valid_url_entered">La URL es válida</string>
+ <string name="not_valid_url_entered">Formato incorrecto de URL</string>
+ <string name="provider_details_title">Detalles del proveedor</string>
+ <string name="use_anonymously_button">Usa anónimamente</string>
+ <string name="username_hint">Nombre de usuario</string>
+ <string name="username_ask">Por favor, escribe tu nombre de usuario aquí.</string>
+ <string name="password_ask">Por favor, escribe tu contraseña aquí</string>
+ <string name="password_hint">contraseña</string>
+ <string name="password_match">Las contraseñas coinciden</string>
+ <string name="password_mismatch">Las contraseñas no coinciden</string>
+ <string name="user_message">Mensaje de usuario</string>
+ <string name="about_fragment_title">Acerca de </string>
+ <string name="exclude_apps_fragment_title">Excluye aplicaciones de la VPN</string>
+ <string name="error_srp_math_error_user_message">Inténtalo de nuevo: Error matemático del servidor.</string>
+ <string name="error_bad_user_password_user_message">El nombre de usuario o la contraseña no son correctos.</string>
+ <string name="error_not_valid_password_user_message">Debe tener al menos 8 caracteres</string>
+ <string name="error_client_http_user_message">Inténtalo de nuevo: Error del cliente HTTP</string>
+ <string name="error_io_exception_user_message">Inténtalo de nuevo: Error de E/S</string>
+ <string name="error_json_exception_user_message">Inténtalo de nuevo: No es válida la respuesta desde el servidor.</string>
+ <string name="error_no_such_algorithm_exception_user_message">No se encontró el algoritmo de cifrado. ¡Por favor, instala una versión más nueva de Android!</string>
+ <string name="signup_or_login_button">Registrarte/Iniciar sesión</string>
+ <string name="login_button">Iniciar sesión</string>
+ <string name="login_to_profile">Iniciar sesión en el perfil</string>
+ <string name="logout_button">Cerrar sesión</string>
+ <string name="signup_button">Regístrate</string>
+ <string name="create_profile">Hacer una cuenta</string>
+ <string name="setup_provider">Establecer servidor</string>
+ <string name="setup_error_title">Error de configuración</string>
+ <string name="setup_error_configure_button">Configurar</string>
+ <string name="setup_error_close_button">Salir</string>
+ <string name="setup_error_text">Ocurrió un error al configurar %s con tu servidor seleccionado.\n\nPuedes elegir reconfigurar, o salir y configurar un servidor en el próximo inicio.</string>
+ <string name="setup_error_text_custom">Ocurrió un error configurando %s.\n\nPuedes elegir reconfigurar o salir.</string>
+ <string name="server_unreachable_message">No se pudo alcanzar el servidor, por favor inténtalo de nuevo.</string>
+ <string name="error.security.pinnedcertificate">Error de seguridad, actualiza la aplicación o elige otro proveedor.</string>
+ <string name="malformed_url">Parece que no hay un proveedor %s.</string>
+ <string name="certificate_error">Este proveedor %s no es de confianza.</string>
+ <string name="service_is_down_error">No se puede acceder en este momento</string>
+ <string name="configuring_provider">Configurando proveedor</string>
+ <string name="downloading_certificate_message">Descargando certificado de seguridad de VPN</string>
+ <string name="updating_certificate_message">Actualizando certificado de seguridad de VPN</string>
+ <string name="login.riseup.warning">Los usuarios de Riseup necesitarán crear una cuenta aparte para usar el servicio VPN</string>
+ <string name="succesful_authentication_message">Autenticado</string>
+ <string name="authentication_failed_message">Autenticación fallida</string>
+ <string name="registration_failed_message">Registración fallida</string>
+ <string name="eip_status_start_pending">Iniciando conexión</string>
+ <string name="eip_status_connecting">Conectando a VPN</string>
+ <string name="eip_status_unsecured">Conexión insegura</string>
+ <string name="eip_status_secured">Conexión segura</string>
+ <string name="eip_cancel_connect_title">¿Cancelar conexión?</string>
+ <string name="eip_cancel_connect_text">Se está intentando establecer la conexión. ¿Deseas cancelarla?</string>
+ <string name="eip.warning.browser_inconsistency">¿Quieres desactivar la conexión VPN? Si desactivas la VPN vas a exponer tu información personal a tu proveedor de Internet o a la red local.</string>
+ <string name="eip_state_not_connected">¡La conexión no es segura!</string>
+ <string name="eip_state_connected">Conexión segura</string>
+ <string name="provider_problem">Parece que hay un problema con el proveedor.</string>
+ <string name="try_another_provider">Por favor intentá con otro proveedor, o contactá al tuyo.</string>
+ <string name="default_username">Anónimo</string>
+ <string name="logging_in">Iniciando sesión</string>
+ <string name="signing_up">Registrándote</string>
+ <string name="vpn.button.turn.on">Activar</string>
+ <string name="vpn.button.turn.off">Desactivar</string>
+ <string name="vpn_button_turn_off_blocking">Detener bloqueo</string>
+ <string name="vpn_securely_routed">Tu información está siendo dirigida de manera segura a través de:</string>
+ <string name="vpn_securely_routed_no_internet">No se detectó conexión a Internet, cuando vuelva, enrutaremos tu información de forma segura a través de:</string>
+ <string name="log_fragment_title">Historial del servidor</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Abrir panel de navegación</string>
+ <string name="navigation_drawer_close">Cerrar panel de navegación</string>
+ <string name="action_example">Demostración</string>
+ <string name="action_settings">Configuración</string>
+ <string name="void_vpn_establish">%s bloquea todo el tráfico saliente de internet</string>
+ <string name="void_vpn_error_establish">Fallo al bloquear todo el tráfico de Internet.</string>
+ <string name="void_vpn_stopped">Se detuvo el bloqueo de todo el tráfico saliente de Internet.</string>
+ <string name="void_vpn_title">Bloqueando el tráfico</string>
+ <string name="update_provider_details">Actualizar detalles del proveedor</string>
+ <string name="update_certificate">Actualizar certificado</string>
+ <string name="warning_eip_json_corrupted">Error al actualizar la configuración del proveedor</string>
+ <string name="eip_json_corrupted_user_message">Error al actualizar la configuración del proveedor. Por favor, inicia sesión e inténtalo de nuevo.</string>
+ <string name="warning_client_parsing_error_gateways">Las puertas de enlace del proveedor no fueron reconocidas, es posible que estén configuradas incorrectamente.</string>
+ <string name="warning_corrupted_provider_details">Los detalles almacenados de este proveedor están corruptos. Puedes actualizar %s (recomendado), o bien actualizar los detalles del proveedor usando un certificado de una autoridad de certificación comercial.</string>
+ <string name="warning_corrupted_provider_cert">El certificado almacenado del proveedor es inválido. Puedes actualizar %s (recomendado) o actualizar el certificado del proveedor usando una autoridad de certificación comercial. </string>
+ <string name="warning_expired_provider_cert">El certificado almacenado de este proveedor ha caducado. Puedes actualizar %s (recomendado) o actualizar el certificado de proveedor usando una autoridad de certificación comercial.</string>
+ <string name="downloading_vpn_certificate_failed">La descarga del certificado de la VPN falló. Intentá de nuevo o elige otro proveedor.</string>
+ <string name="save_battery">Ahorrar batería</string>
+ <string name="subtitle_save_battery">Deshabilitado mientras está activo el punto de acceso a la VPN</string>
+ <string name="save_battery_message">Conexiones de datos en segundo plano hibernarán cuando tu teléfono esté inactivo.</string>
+ <string name="always_on_vpn">VPN siempre activa</string>
+ <string name="subtitle_always_on_vpn">Configuración del sistema Open Android</string>
+ <string name="tethering">Punto de acceso a la VPN</string>
+ <string name="ipv6Firewall">Bloquear IPv6</string>
+ <string name="require_root">Requiere permisos de superusuario</string>
+ <string name="show_experimental">Mostrar características experimentales</string>
+ <string name="hide_experimental">Ocultar características experimentales</string>
+ <string name="experimental_features">Características experimentales</string>
+ <string name="tethering_enabled_message">Por favor, primero asegúrate de habilitar el anclaje de red en los <![CDATA[<b>ajustes de sistema</b>]]>.</string>
+ <string name="tethering_message">Comparte tu VPN con otros dispositivos vía:</string>
+ <string name="tethering_wifi">Punto de acceso Wi-fi</string>
+ <string name="tethering_usb">Conexión USB</string>
+ <string name="tethering_bluetooth">Conexión bluetooth</string>
+ <string name="do_not_show_again">No mostrar de nuevo.</string>
+ <string name="always_on_vpn_user_message">Para habilitar la VPN siempre activa, en las configuraciones de VPN de Android, haz click en el ícono de configuración [img src] y activa el selector.</string>
+ <string name="always_on_blocking_vpn_user_message">Para proteger tu privacidad de manera óptima, también deberías activar la opción \"Bloquear conexiones sin VPN\". </string>
+ <string name="donate_title">Donar</string>
+ <string name="donate_default_message">Por favor haz una donación hoy si valoras la comunicación segura, que es fácil de usar tanto para el usuario final como para el proveedor de servicio.</string>
+ <string name="donate_message">LEAP depende de donaciones y subvenciones. Por favor haz una donación hoy si valoras la comunicación segura, que es fácil de usar tanto para el usuario final como para el proveedor de servicio.</string>
+ <string name="donate_button_remind_later">Recuérdamelo más tarde</string>
+ <string name="donate_button_donate">Donar</string>
+ <string name="obfuscated_connection">Usando una conexión ofuscada.</string>
+ <string name="obfuscated_connection_try">Probando una conexión ofuscada.</string>
+ <string name="nav_drawer_obfuscated_connection">Usar puentes</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Evitar filtrado de VPN</string>
+ <string name="warning_exclude_apps_message">Ten cuidado de excluir aplicaciones de la VPN. Esto va a revelar tu identidad y comprometer tu seguridad.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d aplicación no protegida</item>
+ <item quantity="many">%d aplicaciones no protegidas</item>
+ <item quantity="other">%d aplicaciones no protegidas</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s no se pudo conectar. Puede ser que las conexiones al VPN estén bloqueadas. ¿Quieres intentar conectar usando conexiones ofuscadas?</string>
+ <string name="warning_no_more_gateways_no_pt">%s no se pudo conectar. ¿Quieres intentarlo de nuevo?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s no se pudo conectar al VPN usando conexiones ofuscadas. ¿Quieres intentar conectar usando la VPN estándar? </string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s no pudo conectarse a %2$s. ¿Quieres intentar conectarte automáticamente con la mejor ubicación?</string>
+ <string name="warning_option_try_best">Intentar la mejor ubicación</string>
+ <string name="warning_option_try_pt">Intentar conexión ofuscada</string>
+ <string name="warning_option_try_ovpn">Intentar conexión estándar</string>
+ <string name="vpn_error_establish">Android no pudo establecer el servicio VPN.</string>
+ <string name="root_permission_error">%s no puede ejecutar las funciones de punto de acceso a VPN o cortafuegos IPv6 si no dispone de permisos de superusuario.</string>
+ <string name="qs_enable_vpn">Iniciar %s</string>
+ <string name="version_update_found">Haz click aquí para iniciar la descarga.</string>
+ <string name="version_update_title">Se ha encontrado una nueva versión de %s.</string>
+ <string name="version_update_apk_description">Descargando una nueva versión de %s</string>
+ <string name="version_update_download_title">La nueva versión de %s se ha descargado.</string>
+ <string name="version_update_download_description">Haz click aquí para instalar la actualización.</string>
+ <string name="version_update_error_pgp_verification">Error de verificación PGP. Ignorando la descarga.</string>
+ <string name="version_update_error">Falló la actualización.</string>
+ <string name="version_update_error_permissions">No tienes permisos para instalar la aplicación.</string>
+ <string name="gateway_selection_title">Seleccionar ubicación</string>
+ <string name="gateway_selection_recommended_location">Ubicación recomendada</string>
+ <string name="gateway_selection_recommended">Recomendado</string>
+ <string name="gateway_selection_manually">Seleccionar manualmente</string>
+ <string name="gateway_selection_automatic_location">Usar la mejor conexión automáticamente</string>
+ <string name="gateway_selection_automatic">Automática</string>
+ <string name="reconnecting">Reconectando...</string>
+ <string name="tor_starting">Iniciando puentes para evasión de la censura...</string>
+ <string name="tor_stopping">Deteniendo puentes</string>
+ <string name="tor_started">Usando puentes para evasión de la censura</string>
+ <string name="log_conn_done_pt">Conectado al transporte conectable</string>
+ <string name="log_conn_pt">Conectando al transporte conectable</string>
+ <string name="log_conn_done">Conectado a un repetidor</string>
+ <string name="log_handshake">Negociando la conexión con un repetidor</string>
+ <string name="log_handshake_done">Conexión con repetidor negociada</string>
+ <string name="log_onehop_create">Estableciendo conexión cifrada con el repositorio de repetidores</string>
+ <string name="log_requesting_status">Solicitando consenso del estado de red</string>
+ <string name="log_loading_status">Cargando consenso del estado de red</string>
+ <string name="log_loading_keys">Cargando las autoridades certificadoras</string>
+ <string name="log_requesting_descriptors">Solicitando descriptores de repetidores</string>
+ <string name="log_loading_descriptors">Cargando descriptores de repetidores</string>
+ <string name="log_enough_dirinfo">Suficiente información de directorios cargada para establecer circuitos</string>
+ <string name="log_ap_handshake_done">Ha finalizado la negociación con repetidor para establecer circuitos</string>
+ <string name="log_circuit_create">Estableciendo circuito Tor</string>
+ <string name="log_done">En ejecución</string>
+ <string name="channel_name_tor_service">%s Servicio de Puentes</string>
+ <string name="channel_description_tor_service">Reporta el uso de puentes configurando %s.</string>
+ <string name="error_tor_timeout">Fallo al iniciar puentes. ¿Quieres reintentar o continuar con una conexión segura sin ofuscación para configurar %s?</string>
+ <string name="retry_unobfuscated">Intentar de nuevo sin ofuscación</string>
+ <string name="hide">Ocultar</string>
+ <string name="error_network_connection">%s no tiene conexión a internet. Por favor comprueba tus ajustes de WiFi y datos móviles.</string>
+ <string name="censorship_circumvention">Evadir censura</string>
+ <string name="use_snowflake">Usar Snowflake</string>
+ <string name="snowflake_description">Proteger el proceso de configuración contra la censura.</string>
+ <string name="vpn_settings">Ajustes de VPN</string>
+ <string name="prefer_udp">Usar UDP si está disponible</string>
+ <string name="prefer_udp_subtitle">UDP puede ser más rápido y mejor para streaming, pero no funciona para todas las redes.</string>
+ <string name="disabled_while_bridges_on">Deshabilitado mientras se usan puentes.</string>
+ <string name="hint_bridges">Solo las ubicaciones que soportan puentes se pueden elegir por el momento.</string>
+ <string name="option_disable_bridges">Deshabilitar puentes</string>
+ <string name="eip_state_insecure">Conexión no segura</string>
+ <string name="connection_not_connected">Podrías estar filtrando información a tu proveedor de internet o red local.</string>
+ <string name="eip_state_no_network">No tienes conexión a internet ahora. Una vez que la tengas, automáticamente vas a estar conectado a</string>
+ <string name="eip_state_blocking">%1$s está bloqueando todo el tráfico de internet.</string>
+ <string name="disabled_while_udp_on">Deshabilitado mientras UDP está activado.</string>
+ <string name="advanced_settings">Configuración avanzada</string>
+ <string name="cancel_connection">Desconectar</string>
+ <string name="unknown_location">Ubicación desconocida</string>
+ <string name="splash_footer">Desarrollado por LEAP</string>
+ <string name="welcome">¡Bienvenido!</string>
+ <string name="select_provider">Selecciona tu proveedor</string>
+ <string name="provider_description_riseup">Riseup proporciona herramientas de comunicación en línea a personas y grupos que trabajan por un cambio social en favor de la libertad. Somos un proyecto que crea alternativas democráticas y practica la autodeterminación controlando nuestros propios medios de comunicación seguros.</string>
+ <string name="next">Siguiente</string>
+ <string name="provider_description_calyx">Calyx es una organización de educación e investigación sin fines de lucro, dedicada a estudiar, probar, desarrollar e implementar tecnologías y herramientas de privacidad para promover la libertad de expresión, el compromiso cívico y los derechos de privacidad en Internet y en la industria de las comunicaciones telefónicas.</string>
+ <string name="title_circumvention_setup">¿Necesitas evitar la censura?</string>
+ <string name="circumvention_setup_description">Si vives en un lugar donde Internet está censurado, puedes usar nuestras opciones de evasión de censura para acceder a todos los servicios de Internet. ¡Estas opciones disminuirán la velocidad de tu conexión!</string>
+ <string name="use_standard_vpn">Utiliza el estándar %s</string>
+ <string name="use_circumvention_tech">Usa tecnología de evasión (más lento)</string>
+ <string name="description_configure_provider">Para conectarte a tu proveedor, %1$s está obteniendo toda la información de configuración requerida. Esto solo ocurrirá durante la primera configuración. </string>
+ <string name="description_configure_provider_circumvention">%1$s está intentando obtener toda la información de tu proveedor. Esto solo ocurrirá durante la primera configuración y podría demorar algún tiempo.</string>
+ <string name="details">Detalles</string>
+ <string name="tor_status">Estado de Tor</string>
+ <string name="snowflake_status">Estado Snowflake</string>
+ <string name="snowflake_started">cliente Snowflake iniciado</string>
+ <string name="title_upcoming_connection_request">Próxima Solicitud de Conexión</string>
+ <string name="title_upcoming_notifications_request">Solicitud de Próximas Notificaciones</string>
+ <string name="title_setup_success">¡Estás listo! </string>
+ <string name="setup_success_description">Haz click en el botón de abajo para conectar.</string>
+ <string name="permission_rejected">Permiso rechazado.</string>
+ <string name="login_not_supported">Tu versión de esta aplicación está desactualizada y no puedes iniciar sesión. Necesitas actualizar tus certificados de VPN para este proveedor. </string>
</resources>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 039e553e..4149b6ac 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -1,241 +1,240 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Reintentar</string>
- <string name="repository_url_text">El código fuente está disponible en https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Rastreador de problemas disponible en https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Las traducciones son bienvenidas y apreciadas. Mira nuestro proyecto de Transifex en https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Cambiar de proveedor</string>
- <string name="info">información</string>
- <string name="show_connection_details">Mostrar detalles de la conexión</string>
- <string name="connection_details">Detalles de la conexión</string>
- <string name="routes_info">Rutas: %s</string>
- <string name="routes_info6">Rutas IPv6: %s</string>
- <string name="error_empty_username">El nombre de usuario no debería estar vacío.</string>
- <string name="cert_from_keystore">Se obtuvo el certificado \'%s\' desde el almacenamiento de claves</string>
- <string name="provider_label">Proveedor:</string>
- <string name="provider_label_none">No se ha configurado ningún proveedor</string>
- <string name="status_unknown">Estado desconocido.</string>
- <string name="eip_service_label">Acceso a Internet VPN cifrado </string>
- <string name="configuration_wizard_title">Selecciona un proveedor de servicios</string>
- <string name="add_provider">Añadir nuevo proveedor</string>
- <string name="introduce_new_provider">Añade un nuevo proveedor de servicios</string>
- <string name="save">Guardar</string>
- <string name="new_provider_uri">Nombre del dominio</string>
- <string name="valid_url_entered">La URL es válida</string>
- <string name="not_valid_url_entered">URL mal formada</string>
- <string name="provider_details_title">Detalles del proveedor</string>
- <string name="use_anonymously_button">Usar anónimamente</string>
- <string name="username_hint">nombre de usuario</string>
- <string name="username_ask">Por favor, introduce tu nombre de usuario</string>
- <string name="password_ask">Por favor, introduce tu contraseña</string>
- <string name="password_hint">contraseña</string>
- <string name="password_match">Las contraseñas coinciden</string>
- <string name="password_mismatch">Las contraseñas no coinciden</string>
- <string name="user_message">Mensaje del usuario</string>
- <string name="about_fragment_title">Acerca de</string>
- <string name="exclude_apps_fragment_title">Excluir aplicaciones del VPN</string>
- <string name="error_srp_math_error_user_message">Inténtalo de nuevo: Error matemático del servidor.</string>
- <string name="error_bad_user_password_user_message">Nombre de usuario o contraseña incorrectos.</string>
- <string name="error_not_valid_password_user_message">Debe tener al menos 8 caracteres.</string>
- <string name="error_client_http_user_message">Inténtalo de nuevo: Error del cliente HTTP</string>
- <string name="error_io_exception_user_message">Inténtalo de nuevo: Error de E/S</string>
- <string name="error_json_exception_user_message">Inténtalo de nuevo: Mala respuesta desde el servidor</string>
- <string name="error_no_such_algorithm_exception_user_message">Algoritmo de cifrado no encontrado. Por favor, ¡actualiza Android!</string>
- <string name="signup_or_login_button">Registrarse/Iniciar sesión</string>
- <string name="login_button">Iniciar sesión</string>
- <string name="login_to_profile">Inicia sesión en el perfil</string>
- <string name="logout_button">Cerrar sesión</string>
- <string name="signup_button">Registrarse</string>
- <string name="create_profile">Crear perfil</string>
- <string name="setup_provider">Establecer proveedor</string>
- <string name="setup_error_title">Error de configuración</string>
- <string name="setup_error_configure_button">Configurar</string>
- <string name="setup_error_close_button">Salir</string>
- <string name="setup_error_text">Hubo un error al configurar %s con tu proveedor seleccionado.\n\nPuedes escoger reconfigurar, o salir y configurar un proveedor en el próximo inicio.</string>
- <string name="setup_error_text_custom">Hubo un error configurando %s.\n\nPodrías elegir reconfigurar, o salir.</string>
- <string name="server_unreachable_message">No se pudo alcanzar el servidor, por favor inténtalo de nuevo.</string>
- <string name="error.security.pinnedcertificate">Error de seguridad, actualiza la aplicación o escoge otro proveedor.</string>
- <string name="malformed_url">No parece ser un proveedor %s.</string>
- <string name="certificate_error">Este no es un proveedor %s de confianza.</string>
- <string name="service_is_down_error">El servicio está caído.</string>
- <string name="configuring_provider">Configurando proveedor</string>
- <string name="incorrectly_downloaded_certificate_message">Tu certificado anónimo no se pudo descargar</string>
- <string name="downloading_certificate_message">Descargando certificado de VPN</string>
- <string name="updating_certificate_message">Actualizando certificado de VPN</string>
- <string name="login.riseup.warning">Los usuarios de Riseup necesitarán crear una cuenta aparte para usar el servicio VPN</string>
- <string name="succesful_authentication_message">Autenticado</string>
- <string name="authentication_failed_message">Autentificación fallida</string>
- <string name="registration_failed_message">El registro falló.</string>
- <string name="eip_status_start_pending">Iniciando conexión</string>
- <string name="eip_status_connecting">Conectando a VPN</string>
- <string name="eip_status_unsecured">Conexión Insegura</string>
- <string name="eip_status_secured">Conexión Segura</string>
- <string name="eip_cancel_connect_title">¿Cancelar conexión?</string>
- <string name="eip_cancel_connect_text">Se está intentando establecer la conexión. ¿Desea cancelarla?</string>
- <string name="eip.warning.browser_inconsistency">¿Desactivar la conexión VPN? Cuando la VPN está desactivada, su información personal se puede filtrar a su proveedor de Internet o red local.</string>
- <string name="eip_state_not_connected">¡No está en marcha! ¡Conexión no segura!</string>
- <string name="eip_state_connected">Conexión segura.</string>
- <string name="provider_problem">Parece que hay un problema con el proveedor.</string>
- <string name="try_another_provider">Por favor, prueba otro proveedor, o contacta con el tuyo.</string>
- <string name="default_username">Anónimo</string>
- <string name="logging_in">Iniciando sesión</string>
- <string name="signing_up">Registrándose</string>
- <string name="vpn.button.turn.on">Activar</string>
- <string name="vpn.button.turn.off">Desactivar</string>
- <string name="vpn_button_turn_off_blocking">Detener bloqueo</string>
- <string name="vpn_securely_routed">Tu tráfico se está enrutando de forma segura a través de:</string>
- <string name="vpn_securely_routed_no_internet">No se detectó conexión a Internet, cuando vuelva, enrutaremos tu tráfico de forma segura a través de:</string>
- <string name="log_fragment_title">Registro</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Abrir panel de navegación</string>
- <string name="navigation_drawer_close">Cerrar panel de navegación</string>
- <string name="action_example">Acción de ejemplo</string>
- <string name="action_settings">Configuración</string>
- <string name="void_vpn_establish">%s bloquea todo el tráfico saliente de internet</string>
- <string name="void_vpn_error_establish">Fallo al bloquear todo el tráfico de Internet.</string>
- <string name="void_vpn_stopped">Se detuvo el bloqueo de todo el tráfico saliente de Internet.</string>
- <string name="void_vpn_title">Bloqueando el tráfico</string>
- <string name="update_provider_details">Actualizar detalles del proveedor</string>
- <string name="update_certificate">Actualizar certificado</string>
- <string name="warning_eip_json_corrupted">No se pudo actualizar la configuración del proveedor.</string>
- <string name="eip_json_corrupted_user_message">No se pudo actualizar la configuración del proveedor. Por favor inicia sesión e inténtalo de nuevo.</string>
- <string name="warning_client_parsing_error_gateways">Pasarela de proveedor no encontrado o no conocida. Es posible que no esté bien configurada.</string>
- <string name="warning_corrupted_provider_details">Los detalles almacenados de este proveedor están corrompidos. Puedes actualizar %s (recomendado), o bien actualizar los detalles del proveedor usando un certificado de una autoridad de certificación comercial.</string>
- <string name="warning_corrupted_provider_cert">El certificado almacenado de este proveedor es inválido. Puedes actualizar %s (recomendado) o actualizar el certificado del proveedor usando una autoridad de certificación comercial. </string>
- <string name="warning_expired_provider_cert">El certificado almacenado de este proveedor ha caducado. Puedes actualizar %s (recomendado) o actualizar el certificado de proveedor usando una autoridad de certificación comercial.</string>
- <string name="downloading_vpn_certificate_failed">No se pudo descargar el certificado de la VPN. Inténtalo de nuevo o escoge otro proveedor.</string>
- <string name="vpn_certificate_is_invalid">El certificado de la VPN no es válido. Trata de descargar uno nuevo.</string>
- <string name="vpn_certificate_user_message">El certificado de la VPN no es válido. Por favor inicia sesión para descargar uno nuevo.</string>
- <string name="save_battery">Ahorrar batería</string>
- <string name="subtitle_save_battery">Deshabilitado mientras está activo como punto de acceso a VPN</string>
- <string name="save_battery_message">Las conexiones de datos de segundo plano hibernarán cuando tu teléfono esté inactivo.</string>
- <string name="always_on_vpn">VPN siempre activa</string>
- <string name="subtitle_always_on_vpn">Configuración del sistema Open Android</string>
- <string name="tethering">Punto de acceso a VPN</string>
- <string name="ipv6Firewall">Bloquear IPv6</string>
- <string name="require_root">Requiere permisos de superusuaria</string>
- <string name="show_experimental">Mostrar características experimentales</string>
- <string name="hide_experimental">Ocultar características experimentales</string>
- <string name="experimental_features">Características experimentales</string>
- <string name="tethering_enabled_message">Por favor asegúrate de habilitar primero tethering en los <![CDATA[<b>ajustes de sistema</b>]]>.</string>
- <string name="tethering_message">Comparte tu VPN con otros dispositivos vía:</string>
- <string name="tethering_wifi">Punto de acceso Wi-fi</string>
- <string name="tethering_usb">Tethering USB</string>
- <string name="tethering_bluetooth">Tethering bluetooth</string>
- <string name="do_not_show_again">No mostrar de nuevo.</string>
- <string name="always_on_vpn_user_message">Para habilitar VPN siempre activa en las configuraciones de VPN de Android, haz clic en el ícono de configuración [img src] y activa el selector.</string>
- <string name="always_on_blocking_vpn_user_message">Para proteger tu privacidad de manera óptima, también deberías activar la opción \"Bloquear conexiones sin VPN\". </string>
- <string name="donate_title">Donar</string>
- <string name="donate_default_message">Por favor haz una donación hoy si valoras la comunicación segura que es fácil tanto para el usuario final como para el proveedor de servicio.</string>
- <string name="donate_message">LEAP depende de donaciones y subvenciones. Por favor haz una donación hoy si valoras la comunicación segura que es fácil tanto para el usuario final como para el proveedor de servicio.</string>
- <string name="donate_button_remind_later">Recordármelo más tarde</string>
- <string name="donate_button_donate">Donar</string>
- <string name="obfuscated_connection">Usando una conexión ofuscada.</string>
- <string name="obfuscated_connection_try">Probando una conexión ofuscada.</string>
- <string name="nav_drawer_obfuscated_connection">Usar bridges</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Evadir cribado de VPN</string>
- <string name="warning_exclude_apps_message">Ten cuidado de excluir aplicaciones de la VPN. Esto revelará tu identidad y comprometerá tu seguridad.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d aplicación desprotegida</item>
- <item quantity="many">%d aplicaciones desprotegidas</item>
- <item quantity="other">%d aplicaciones desprotegidas</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s no se pudo conectar. Puede ser que las conexiones al VPN estén bloqueadas. ¿Quieres intentar a conectar usando conexiones ofuscadas?</string>
- <string name="warning_no_more_gateways_no_pt">%s no se pudo conectar. ¿Quieres intentarlo de nuevo?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s no se pudo conectar al VPN usando conexiones ofuscadas. ¿Quieres intentar a conectar usando el VPN estándar? </string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s no pudo conectarse a %2$s. ¿Quieres intentar conectarte automáticamente con la mejor ubicación?</string>
- <string name="warning_option_try_best">Intentar la mejor ubicación</string>
- <string name="warning_option_try_pt">Probar conexión ofuscada</string>
- <string name="warning_option_try_ovpn">Probar conexión estándar</string>
- <string name="vpn_error_establish">Android no se pudo establecer el servicio VPN.</string>
- <string name="root_permission_error">%s no puede ejecutar las funciones de punto de acceso a VPN o cortafuegos IPv6 si no dispone de permisos de superusuaria.</string>
- <string name="qs_enable_vpn">Iniciar %s</string>
- <string name="version_update_found">Pulsa aquí para empezar la descarga.</string>
- <string name="version_update_title">Fue encontrada una nueva versión de %s.</string>
- <string name="version_update_apk_description">Descargando una nueva versión de %s</string>
- <string name="version_update_download_title">Fue descargada una nueva versión de %s.</string>
- <string name="version_update_download_description">Pulsa aquí para instalar la actualización.</string>
- <string name="version_update_error_pgp_verification">Error de verificación PGP. Ignorando la descarga.</string>
- <string name="version_update_error">Falló la actualización.</string>
- <string name="version_update_error_permissions">No tienes permisos para instalar la aplicación.</string>
- <string name="gateway_selection_title">Seleccionar ubicación</string>
- <string name="gateway_selection_recommended_location">Ubicación recomendada</string>
- <string name="gateway_selection_recommended">Recomendado</string>
- <string name="gateway_selection_manually">Seleccionar manualmente</string>
- <string name="gateway_selection_automatic_location">Usar la mejor conexión automáticamente</string>
- <string name="gateway_selection_automatic">Automática</string>
- <string name="reconnecting">Reconectando...</string>
- <string name="tor_starting">Iniciando puentes para evasión de censura...</string>
- <string name="tor_stopping">Deteniendo puentes</string>
- <string name="tor_started">Usando puentes para la evasión de la censura</string>
- <string name="log_conn_done_pt">Conectado al transporte conectable</string>
- <string name="log_conn_pt">Vinculando con transporte conectable</string>
- <string name="log_conn_done">Conectado a un repetidor</string>
- <string name="log_handshake">Negociando la conexión con un repetidor</string>
- <string name="log_handshake_done">Conexión con repetidor negociada</string>
- <string name="log_onehop_create">Estableciendo una conexión cifrada con el repositorio de repetidores</string>
- <string name="log_requesting_status">Solicitando consenso de estado de red</string>
- <string name="log_loading_status">Cargando consenso de estado de red</string>
- <string name="log_loading_keys">Cargando los certificados de autoridades</string>
- <string name="log_requesting_descriptors">Solicitando descriptores de repetidores</string>
- <string name="log_loading_descriptors">Cargando descriptores de repetidores</string>
- <string name="log_enough_dirinfo">Suficiente información de directorios cargada para establecer circuitos</string>
- <string name="log_ap_handshake_done">Negociación con repetidor finalizada para establecer circuitos</string>
- <string name="log_circuit_create">Estableciendo un circuito Tor</string>
- <string name="log_done">En marcha</string>
- <string name="channel_name_tor_service">%s Servicio de Puentes</string>
- <string name="channel_description_tor_service">Informa acerca del uso de puentes al configurar %s.</string>
- <string name="error_tor_timeout">Fallo al iniciar puentes. ¿Querés reintentar o continuar con una conexión segura sin ofuscación para configurar %s?</string>
- <string name="retry_unobfuscated">Reintentar sin ofuscación</string>
- <string name="hide">Ocultar</string>
- <string name="error_network_connection">%s no tiene conexión a Internet. Por favor comprueba tus ajustes de WiFi y datos móviles.</string>
- <string name="censorship_circumvention">Evasión de censura</string>
- <string name="use_snowflake">Usa Snowflake</string>
- <string name="snowflake_description">Proteger el proceso de configuración contra la censura.</string>
- <string name="vpn_settings">Ajustes de VPN</string>
- <string name="prefer_udp">Usar UDP si está disponible</string>
- <string name="prefer_udp_subtitle">UDP puede ser más rápido y mejor para el streaming, pero no funciona para todas las redes.</string>
- <string name="disabled_while_bridges_on">Deshabilitado mientras se usan puentes.</string>
- <string name="hint_bridges">Solo las ubicaciones que soportan puentes se pueden elegir por el momento.</string>
- <string name="option_disable_bridges">Deshabilitar puentes</string>
- <string name="eip_state_insecure">Conexión insegura</string>
- <string name="connection_not_connected">Podrías estar filtrando información a tu proveedor de Internet o red local.</string>
- <string name="eip_state_no_network">No tenés una conexión a Internet funcional. Una vez que la tengas, automáticamente vas a estar conectado a</string>
- <string name="eip_state_blocking">%1$s está bloqueando todo el tráfico de Internet.</string>
- <string name="disabled_while_udp_on">Deshabilitado mientras UDP está activado.</string>
- <string name="advanced_settings">Configuración avanzada</string>
- <string name="cancel_connection">Desconectar</string>
- <string name="unknown_location">Ubicación desconocida</string>
- <string name="splash_footer">Desarrollado por LEAP</string>
- <string name="welcome">¡Bienvenido!</string>
- <string name="select_provider">Seleccione Su Proveedor</string>
- <string name="select_provider_description">Cuando utilizas una VPN, estás transfiriendo tu confianza de su Proveedor de Servicios de Internet a su proveedor de VPN. Bitmask solo se conecta con proveedores con un historial claro de protección y defensa de la privacidad.</string>
- <string name="provider_description_riseup">Riseup proporciona herramientas de comunicación en línea para personas y grupos que trabajan por un cambio social liberador. Somos un proyecto para crear alternativas democráticas y practicar la autodeterminación controlando nuestros propios medios de comunicación seguros.</string>
- <string name="next">Siguiente</string>
- <string name="add_provider_description">Bitmask se conecta a proveedores confiables que no figuran en la lista pública. Ingrese la URL de su proveedor a continuación.</string>
- <string name="qr_scanner_prompt">Escanear código QR</string>
- <string name="provider_description_calyx">Calyx es una organización de educación e investigación sin fines de lucro dedicada a estudiar, probar, desarrollar e implementar tecnologías y herramientas de privacidad para promover la libertad de expresión, el compromiso cívico y los derechos de privacidad en Internet y en la industria de las comunicaciones móviles.</string>
- <string name="title_circumvention_setup">¿Necesita eludir la Censura?</string>
- <string name="circumvention_setup_description">Si vive en un lugar donde Internet está censurado, puede utilizar nuestras opciones de elusión de la censura para acceder a todos los servicios de Internet. ¡Estas opciones ralentizarán tu conexión!</string>
- <string name="use_standard_vpn">Usar estándar %s</string>
- <string name="use_circumvention_tech">Utilice tecnología de elusión (más lento)</string>
- <string name="description_configure_provider">Para conectarse a su proveedor, %1$s está obteniendo toda la información de configuración requerida. Esto sólo sucede durante la primera configuración.</string>
- <string name="details">Detalles</string>
- <string name="tor_status">Estado de Tor</string>
- <string name="snowflake_status">Estado Snowflake</string>
- <string name="snowflake_started">cliente Snowflake iniciado</string>
- <string name="snowflake_negotiating_rendezvous_http">Negociando Snowflake proxy rendezvous (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Negociando Snowflake proxy rendezvous (amp cache)</string>
- <string name="snowflake_socks_error">error Snowflake SOCKS</string>
- <string name="snowflake_broker_success">Snowflake proxy rendezvous exitoso</string>
- <string name="snowflake_sending_data">Enviando datos via Snowflake</string>
- <string name="title_upcoming_connection_request">Próxima Solicitud de Conexión</string>
- <string name="title_upcoming_notifications_request">Solicitud de Próximas Notificaciones</string>
- <string name="title_setup_success">¡Lo tiene todo listo!</string>
- <string name="setup_success_description">Haga clic en el botón de abajo para conectarse</string>
- <string name="permission_rejected">Solicitud de permiso rechazada.</string>
- <string name="select_language">Seleccionar idioma</string>
- <string name="validation_status_success">Bueno</string>
- <string name="validation_status_failure">Malo</string>
- <string name="scan_qr_code">Escanear código QR</string>
+ <string name="retry">Reintentar</string>
+ <string name="repository_url_text">El código fuente está disponible en https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Rastreador de problemas disponible en https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Las traducciones son bienvenidas y apreciadas. Mira nuestro proyecto de Transifex en https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Cambiar de proveedor</string>
+ <string name="info">información</string>
+ <string name="show_connection_details">Mostrar detalles de la conexión</string>
+ <string name="connection_details">Detalles de la conexión</string>
+ <string name="routes_info">Rutas: %s</string>
+ <string name="routes_info6">Rutas IPv6: %s</string>
+ <string name="error_empty_username">El nombre de usuario no debería estar vacío.</string>
+ <string name="cert_from_keystore">Se obtuvo el certificado \'%s\' desde el almacenamiento de claves</string>
+ <string name="provider_label">Proveedor:</string>
+ <string name="provider_label_none">No se ha configurado ningún proveedor</string>
+ <string name="status_unknown">Estado desconocido.</string>
+ <string name="eip_service_label">Acceso a Internet VPN cifrado </string>
+ <string name="configuration_wizard_title">Selecciona un proveedor de servicios</string>
+ <string name="add_provider">Añadir nuevo proveedor</string>
+ <string name="introduce_new_provider">Añade un nuevo proveedor de servicios</string>
+ <string name="save">Guardar</string>
+ <string name="new_provider_uri">Nombre del dominio</string>
+ <string name="valid_url_entered">La URL es válida</string>
+ <string name="not_valid_url_entered">URL mal formada</string>
+ <string name="provider_details_title">Detalles del proveedor</string>
+ <string name="use_anonymously_button">Usar anónimamente</string>
+ <string name="username_hint">nombre de usuario</string>
+ <string name="username_ask">Por favor, introduce tu nombre de usuario</string>
+ <string name="password_ask">Por favor, introduce tu contraseña</string>
+ <string name="password_hint">contraseña</string>
+ <string name="password_match">Las contraseñas coinciden</string>
+ <string name="password_mismatch">Las contraseñas no coinciden</string>
+ <string name="user_message">Mensaje del usuario</string>
+ <string name="about_fragment_title">Acerca de</string>
+ <string name="exclude_apps_fragment_title">Excluir aplicaciones del VPN</string>
+ <string name="error_srp_math_error_user_message">Inténtalo de nuevo: Error matemático del servidor.</string>
+ <string name="error_bad_user_password_user_message">Nombre de usuario o contraseña incorrectos.</string>
+ <string name="error_not_valid_password_user_message">Debe tener al menos 8 caracteres.</string>
+ <string name="error_client_http_user_message">Inténtalo de nuevo: Error del cliente HTTP</string>
+ <string name="error_io_exception_user_message">Inténtalo de nuevo: Error de E/S</string>
+ <string name="error_json_exception_user_message">Inténtalo de nuevo: Mala respuesta desde el servidor</string>
+ <string name="error_no_such_algorithm_exception_user_message">Algoritmo de cifrado no encontrado. Por favor, ¡actualiza Android!</string>
+ <string name="signup_or_login_button">Registrarse/Iniciar sesión</string>
+ <string name="login_button">Iniciar sesión</string>
+ <string name="login_to_profile">Inicia sesión en el perfil</string>
+ <string name="logout_button">Cerrar sesión</string>
+ <string name="signup_button">Registrarse</string>
+ <string name="create_profile">Crear perfil</string>
+ <string name="setup_provider">Establecer proveedor</string>
+ <string name="setup_error_title">Error de configuración</string>
+ <string name="setup_error_configure_button">Configurar</string>
+ <string name="setup_error_close_button">Salir</string>
+ <string name="setup_error_text">Hubo un error al configurar %s con tu proveedor seleccionado.\n\nPuedes escoger reconfigurar, o salir y configurar un proveedor en el próximo inicio.</string>
+ <string name="setup_error_text_custom">Hubo un error configurando %s.\n\nPodrías elegir reconfigurar, o salir.</string>
+ <string name="server_unreachable_message">No se pudo alcanzar el servidor, por favor inténtalo de nuevo.</string>
+ <string name="error.security.pinnedcertificate">Error de seguridad, actualiza la aplicación o escoge otro proveedor.</string>
+ <string name="malformed_url">No parece ser un proveedor %s.</string>
+ <string name="certificate_error">Este no es un proveedor %s de confianza.</string>
+ <string name="service_is_down_error">El servicio está caído.</string>
+ <string name="configuring_provider">Configurando proveedor</string>
+ <string name="incorrectly_downloaded_certificate_message">Tu certificado anónimo no se pudo descargar</string>
+ <string name="downloading_certificate_message">Descargando certificado de VPN</string>
+ <string name="updating_certificate_message">Actualizando certificado de VPN</string>
+ <string name="login.riseup.warning">Los usuarios de Riseup necesitarán crear una cuenta aparte para usar el servicio VPN</string>
+ <string name="succesful_authentication_message">Autenticado</string>
+ <string name="authentication_failed_message">Autentificación fallida</string>
+ <string name="registration_failed_message">El registro falló.</string>
+ <string name="eip_status_start_pending">Iniciando conexión</string>
+ <string name="eip_status_connecting">Conectando a VPN</string>
+ <string name="eip_status_unsecured">Conexión Insegura</string>
+ <string name="eip_status_secured">Conexión Segura</string>
+ <string name="eip_cancel_connect_title">¿Cancelar conexión?</string>
+ <string name="eip_cancel_connect_text">Se está intentando establecer la conexión. ¿Desea cancelarla?</string>
+ <string name="eip.warning.browser_inconsistency">¿Desactivar la conexión VPN? Cuando la VPN está desactivada, su información personal se puede filtrar a su proveedor de Internet o red local.</string>
+ <string name="eip_state_not_connected">¡No está en marcha! ¡Conexión no segura!</string>
+ <string name="eip_state_connected">Conexión segura.</string>
+ <string name="provider_problem">Parece que hay un problema con el proveedor.</string>
+ <string name="try_another_provider">Por favor, prueba otro proveedor, o contacta con el tuyo.</string>
+ <string name="default_username">Anónimo</string>
+ <string name="logging_in">Iniciando sesión</string>
+ <string name="signing_up">Registrándose</string>
+ <string name="vpn.button.turn.on">Activar</string>
+ <string name="vpn.button.turn.off">Desactivar</string>
+ <string name="vpn_button_turn_off_blocking">Detener bloqueo</string>
+ <string name="vpn_securely_routed">Tu tráfico se está enrutando de forma segura a través de:</string>
+ <string name="vpn_securely_routed_no_internet">No se detectó conexión a Internet, cuando vuelva, enrutaremos tu tráfico de forma segura a través de:</string>
+ <string name="log_fragment_title">Registro</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Abrir panel de navegación</string>
+ <string name="navigation_drawer_close">Cerrar panel de navegación</string>
+ <string name="action_example">Acción de ejemplo</string>
+ <string name="action_settings">Configuración</string>
+ <string name="void_vpn_establish">%s bloquea todo el tráfico saliente de internet</string>
+ <string name="void_vpn_error_establish">Fallo al bloquear todo el tráfico de Internet.</string>
+ <string name="void_vpn_stopped">Se detuvo el bloqueo de todo el tráfico saliente de Internet.</string>
+ <string name="void_vpn_title">Bloqueando el tráfico</string>
+ <string name="update_provider_details">Actualizar detalles del proveedor</string>
+ <string name="update_certificate">Actualizar certificado</string>
+ <string name="warning_eip_json_corrupted">No se pudo actualizar la configuración del proveedor.</string>
+ <string name="eip_json_corrupted_user_message">No se pudo actualizar la configuración del proveedor. Por favor inicia sesión e inténtalo de nuevo.</string>
+ <string name="warning_client_parsing_error_gateways">Pasarela de proveedor no encontrado o no conocida. Es posible que no esté bien configurada.</string>
+ <string name="warning_corrupted_provider_details">Los detalles almacenados de este proveedor están corrompidos. Puedes actualizar %s (recomendado), o bien actualizar los detalles del proveedor usando un certificado de una autoridad de certificación comercial.</string>
+ <string name="warning_corrupted_provider_cert">El certificado almacenado de este proveedor es inválido. Puedes actualizar %s (recomendado) o actualizar el certificado del proveedor usando una autoridad de certificación comercial. </string>
+ <string name="warning_expired_provider_cert">El certificado almacenado de este proveedor ha caducado. Puedes actualizar %s (recomendado) o actualizar el certificado de proveedor usando una autoridad de certificación comercial.</string>
+ <string name="downloading_vpn_certificate_failed">No se pudo descargar el certificado de la VPN. Inténtalo de nuevo o escoge otro proveedor.</string>
+ <string name="vpn_certificate_is_invalid">El certificado de la VPN no es válido. Trata de descargar uno nuevo.</string>
+ <string name="vpn_certificate_user_message">El certificado de la VPN no es válido. Por favor inicia sesión para descargar uno nuevo.</string>
+ <string name="save_battery">Ahorrar batería</string>
+ <string name="subtitle_save_battery">Deshabilitado mientras está activo como punto de acceso a VPN</string>
+ <string name="save_battery_message">Las conexiones de datos de segundo plano hibernarán cuando tu teléfono esté inactivo.</string>
+ <string name="always_on_vpn">VPN siempre activa</string>
+ <string name="subtitle_always_on_vpn">Configuración del sistema Open Android</string>
+ <string name="tethering">Punto de acceso a VPN</string>
+ <string name="ipv6Firewall">Bloquear IPv6</string>
+ <string name="require_root">Requiere permisos de superusuaria</string>
+ <string name="show_experimental">Mostrar características experimentales</string>
+ <string name="hide_experimental">Ocultar características experimentales</string>
+ <string name="experimental_features">Características experimentales</string>
+ <string name="tethering_enabled_message">Por favor asegúrate de habilitar primero tethering en los <![CDATA[<b>ajustes de sistema</b>]]>.</string>
+ <string name="tethering_message">Comparte tu VPN con otros dispositivos vía:</string>
+ <string name="tethering_wifi">Punto de acceso Wi-fi</string>
+ <string name="tethering_usb">Tethering USB</string>
+ <string name="tethering_bluetooth">Tethering bluetooth</string>
+ <string name="do_not_show_again">No mostrar de nuevo.</string>
+ <string name="always_on_vpn_user_message">Para habilitar VPN siempre activa en las configuraciones de VPN de Android, haz clic en el ícono de configuración [img src] y activa el selector.</string>
+ <string name="always_on_blocking_vpn_user_message">Para proteger tu privacidad de manera óptima, también deberías activar la opción \"Bloquear conexiones sin VPN\". </string>
+ <string name="donate_title">Donar</string>
+ <string name="donate_default_message">Por favor haz una donación hoy si valoras la comunicación segura que es fácil tanto para el usuario final como para el proveedor de servicio.</string>
+ <string name="donate_message">LEAP depende de donaciones y subvenciones. Por favor haz una donación hoy si valoras la comunicación segura que es fácil tanto para el usuario final como para el proveedor de servicio.</string>
+ <string name="donate_button_remind_later">Recordármelo más tarde</string>
+ <string name="donate_button_donate">Donar</string>
+ <string name="obfuscated_connection">Usando una conexión ofuscada.</string>
+ <string name="obfuscated_connection_try">Probando una conexión ofuscada.</string>
+ <string name="nav_drawer_obfuscated_connection">Usar bridges</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Evadir cribado de VPN</string>
+ <string name="warning_exclude_apps_message">Ten cuidado de excluir aplicaciones de la VPN. Esto revelará tu identidad y comprometerá tu seguridad.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d aplicación desprotegida</item>
+ <item quantity="many">%d aplicaciones desprotegidas</item>
+ <item quantity="other">%d aplicaciones desprotegidas</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s no se pudo conectar. Puede ser que las conexiones al VPN estén bloqueadas. ¿Quieres intentar a conectar usando conexiones ofuscadas?</string>
+ <string name="warning_no_more_gateways_no_pt">%s no se pudo conectar. ¿Quieres intentarlo de nuevo?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s no se pudo conectar al VPN usando conexiones ofuscadas. ¿Quieres intentar a conectar usando el VPN estándar? </string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s no pudo conectarse a %2$s. ¿Quieres intentar conectarte automáticamente con la mejor ubicación?</string>
+ <string name="warning_option_try_best">Intentar la mejor ubicación</string>
+ <string name="warning_option_try_pt">Probar conexión ofuscada</string>
+ <string name="warning_option_try_ovpn">Probar conexión estándar</string>
+ <string name="vpn_error_establish">Android no se pudo establecer el servicio VPN.</string>
+ <string name="root_permission_error">%s no puede ejecutar las funciones de punto de acceso a VPN o cortafuegos IPv6 si no dispone de permisos de superusuaria.</string>
+ <string name="qs_enable_vpn">Iniciar %s</string>
+ <string name="version_update_found">Pulsa aquí para empezar la descarga.</string>
+ <string name="version_update_title">Fue encontrada una nueva versión de %s.</string>
+ <string name="version_update_apk_description">Descargando una nueva versión de %s</string>
+ <string name="version_update_download_title">Fue descargada una nueva versión de %s.</string>
+ <string name="version_update_download_description">Pulsa aquí para instalar la actualización.</string>
+ <string name="version_update_error_pgp_verification">Error de verificación PGP. Ignorando la descarga.</string>
+ <string name="version_update_error">Falló la actualización.</string>
+ <string name="version_update_error_permissions">No tienes permisos para instalar la aplicación.</string>
+ <string name="gateway_selection_title">Seleccionar ubicación</string>
+ <string name="gateway_selection_recommended_location">Ubicación recomendada</string>
+ <string name="gateway_selection_recommended">Recomendado</string>
+ <string name="gateway_selection_manually">Seleccionar manualmente</string>
+ <string name="gateway_selection_automatic_location">Usar la mejor conexión automáticamente</string>
+ <string name="gateway_selection_automatic">Automática</string>
+ <string name="reconnecting">Reconectando...</string>
+ <string name="tor_starting">Iniciando puentes para evasión de censura...</string>
+ <string name="tor_stopping">Deteniendo puentes</string>
+ <string name="tor_started">Usando puentes para la evasión de la censura</string>
+ <string name="log_conn_done_pt">Conectado al transporte conectable</string>
+ <string name="log_conn_pt">Vinculando con transporte conectable</string>
+ <string name="log_conn_done">Conectado a un repetidor</string>
+ <string name="log_handshake">Negociando la conexión con un repetidor</string>
+ <string name="log_handshake_done">Conexión con repetidor negociada</string>
+ <string name="log_onehop_create">Estableciendo una conexión cifrada con el repositorio de repetidores</string>
+ <string name="log_requesting_status">Solicitando consenso de estado de red</string>
+ <string name="log_loading_status">Cargando consenso de estado de red</string>
+ <string name="log_loading_keys">Cargando los certificados de autoridades</string>
+ <string name="log_requesting_descriptors">Solicitando descriptores de repetidores</string>
+ <string name="log_loading_descriptors">Cargando descriptores de repetidores</string>
+ <string name="log_enough_dirinfo">Suficiente información de directorios cargada para establecer circuitos</string>
+ <string name="log_ap_handshake_done">Negociación con repetidor finalizada para establecer circuitos</string>
+ <string name="log_circuit_create">Estableciendo un circuito Tor</string>
+ <string name="log_done">En marcha</string>
+ <string name="channel_name_tor_service">%s Servicio de Puentes</string>
+ <string name="channel_description_tor_service">Informa acerca del uso de puentes al configurar %s.</string>
+ <string name="error_tor_timeout">Fallo al iniciar puentes. ¿Querés reintentar o continuar con una conexión segura sin ofuscación para configurar %s?</string>
+ <string name="retry_unobfuscated">Reintentar sin ofuscación</string>
+ <string name="hide">Ocultar</string>
+ <string name="error_network_connection">%s no tiene conexión a Internet. Por favor comprueba tus ajustes de WiFi y datos móviles.</string>
+ <string name="censorship_circumvention">Evasión de censura</string>
+ <string name="use_snowflake">Usa Snowflake</string>
+ <string name="snowflake_description">Proteger el proceso de configuración contra la censura.</string>
+ <string name="vpn_settings">Ajustes de VPN</string>
+ <string name="prefer_udp">Usar UDP si está disponible</string>
+ <string name="prefer_udp_subtitle">UDP puede ser más rápido y mejor para el streaming, pero no funciona para todas las redes.</string>
+ <string name="disabled_while_bridges_on">Deshabilitado mientras se usan puentes.</string>
+ <string name="hint_bridges">Solo las ubicaciones que soportan puentes se pueden elegir por el momento.</string>
+ <string name="option_disable_bridges">Deshabilitar puentes</string>
+ <string name="eip_state_insecure">Conexión insegura</string>
+ <string name="connection_not_connected">Podrías estar filtrando información a tu proveedor de Internet o red local.</string>
+ <string name="eip_state_no_network">No tenés una conexión a Internet funcional. Una vez que la tengas, automáticamente vas a estar conectado a</string>
+ <string name="eip_state_blocking">%1$s está bloqueando todo el tráfico de Internet.</string>
+ <string name="disabled_while_udp_on">Deshabilitado mientras UDP está activado.</string>
+ <string name="advanced_settings">Configuración avanzada</string>
+ <string name="cancel_connection">Desconectar</string>
+ <string name="unknown_location">Ubicación desconocida</string>
+ <string name="splash_footer">Desarrollado por LEAP</string>
+ <string name="welcome">¡Bienvenido!</string>
+ <string name="select_provider">Seleccione Su Proveedor</string>
+ <string name="provider_description_riseup">Riseup proporciona herramientas de comunicación en línea para personas y grupos que trabajan por un cambio social liberador. Somos un proyecto para crear alternativas democráticas y practicar la autodeterminación controlando nuestros propios medios de comunicación seguros.</string>
+ <string name="next">Siguiente</string>
+ <string name="add_provider_description">Bitmask se conecta a proveedores confiables que no figuran en la lista pública. Ingrese la URL de su proveedor a continuación.</string>
+ <string name="qr_scanner_prompt">Escanear código QR</string>
+ <string name="provider_description_calyx">Calyx es una organización de educación e investigación sin fines de lucro dedicada a estudiar, probar, desarrollar e implementar tecnologías y herramientas de privacidad para promover la libertad de expresión, el compromiso cívico y los derechos de privacidad en Internet y en la industria de las comunicaciones móviles.</string>
+ <string name="title_circumvention_setup">¿Necesita eludir la Censura?</string>
+ <string name="circumvention_setup_description">Si vive en un lugar donde Internet está censurado, puede utilizar nuestras opciones de elusión de la censura para acceder a todos los servicios de Internet. ¡Estas opciones ralentizarán tu conexión!</string>
+ <string name="use_standard_vpn">Usar estándar %s</string>
+ <string name="use_circumvention_tech">Utilice tecnología de elusión (más lento)</string>
+ <string name="description_configure_provider">Para conectarse a su proveedor, %1$s está obteniendo toda la información de configuración requerida. Esto sólo sucede durante la primera configuración.</string>
+ <string name="details">Detalles</string>
+ <string name="tor_status">Estado de Tor</string>
+ <string name="snowflake_status">Estado Snowflake</string>
+ <string name="snowflake_started">cliente Snowflake iniciado</string>
+ <string name="snowflake_negotiating_rendezvous_http">Negociando Snowflake proxy rendezvous (http)</string>
+ <string name="snowflake_negotiating_rendezvous_amp_cache">Negociando Snowflake proxy rendezvous (amp cache)</string>
+ <string name="snowflake_socks_error">error Snowflake SOCKS</string>
+ <string name="snowflake_broker_success">Snowflake proxy rendezvous exitoso</string>
+ <string name="snowflake_sending_data">Enviando datos via Snowflake</string>
+ <string name="title_upcoming_connection_request">Próxima Solicitud de Conexión</string>
+ <string name="title_upcoming_notifications_request">Solicitud de Próximas Notificaciones</string>
+ <string name="title_setup_success">¡Lo tiene todo listo!</string>
+ <string name="setup_success_description">Haga clic en el botón de abajo para conectarse</string>
+ <string name="permission_rejected">Solicitud de permiso rechazada.</string>
+ <string name="select_language">Seleccionar idioma</string>
+ <string name="validation_status_success">Bueno</string>
+ <string name="validation_status_failure">Malo</string>
+ <string name="scan_qr_code">Escanear código QR</string>
</resources>
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index 91e81af1..763f78da 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -1,120 +1,120 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Proovi uuesti</string>
- <string name="repository_url_text">Lähtekood saadaval aadressil https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Vealoend saadaval aadressil https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Tõlked on teretulnud ja väärtustatud. Vaata meie Transifexi projekti aadressil https://www.transifex.com/projects/p/bitmask/
+ <string name="retry">Proovi uuesti</string>
+ <string name="repository_url_text">Lähtekood saadaval aadressil https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Vealoend saadaval aadressil https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Tõlked on teretulnud ja väärtustatud. Vaata meie Transifexi projekti aadressil https://www.transifex.com/projects/p/bitmask/
</string>
- <string name="switch_provider_menu_option">Vaheta pakkujat</string>
- <string name="info">info</string>
- <string name="show_connection_details">Näita ühenduse andmeid</string>
- <string name="routes_info">Marsruudid: %s</string>
- <string name="routes_info6">IPv6 suunamine: %s</string>
- <string name="error_empty_username">Kasutajanimi peab olema määratud.</string>
- <string name="cert_from_keystore">Võtmehoidlast saadi sertifikaat \"%s\"</string>
- <string name="provider_label">Pakkuja:</string>
- <string name="provider_label_none">Pakkuja on seadistamata</string>
- <string name="status_unknown">Olek teadmata.</string>
- <string name="eip_service_label">Krüptitud VPNiga internetiühendus</string>
- <string name="configuration_wizard_title">Vali teenusepakkuja</string>
- <string name="add_provider">Lisa uus pakkuja</string>
- <string name="introduce_new_provider">Lisa uus teenusepakkuja</string>
- <string name="save">Salvesta</string>
- <string name="new_provider_uri">Domeeninimi</string>
- <string name="valid_url_entered">URL on sobiv</string>
- <string name="not_valid_url_entered">Sobimatu URL</string>
- <string name="provider_details_title">Pakkuja andmed</string>
- <string name="use_anonymously_button">Kasuta anonüümselt</string>
- <string name="username_hint">kasutajanimi</string>
- <string name="username_ask">Palun sisesta oma kasutajanimi</string>
- <string name="password_ask">Palun sisesta oma parool</string>
- <string name="password_hint">parool</string>
- <string name="password_match">Paroolid ühtivad</string>
- <string name="password_mismatch">Paroolid ei ühti</string>
- <string name="user_message">Kasutaja sõnum</string>
- <string name="about_fragment_title">Teave</string>
- <string name="exclude_apps_fragment_title">Välista rakendusi VPNist</string>
- <string name="error_srp_math_error_user_message">Proovi uuesti: serveripoolne matemaatika viga.</string>
- <string name="error_bad_user_password_user_message">Sobimatu kasutajanimi või parool.</string>
- <string name="error_not_valid_password_user_message">See peab olema vähemalt 8 tähemärki pikk.</string>
- <string name="error_client_http_user_message">Proovi uuesti: rakenduse HTTP viga</string>
- <string name="error_io_exception_user_message">Proovi uuesti: I/O viga</string>
- <string name="error_json_exception_user_message">Proovi uuesti: serverist saadeti halb vastus</string>
- <string name="error_no_such_algorithm_exception_user_message">Enkrüptimisalgoritmi ei leitud. Palun täienda oma Androidi!</string>
- <string name="signup_or_login_button">Registreeru/logi sisse</string>
- <string name="login_button">Logi sisse</string>
- <string name="login_to_profile">Logi profiili sisse</string>
- <string name="logout_button">Logi välja</string>
- <string name="signup_button">Registreeru</string>
- <string name="create_profile">Loo profiil</string>
- <string name="setup_provider">Seadista pakkuja</string>
- <string name="setup_error_title">Häälestusviga</string>
- <string name="setup_error_configure_button">Seadista</string>
- <string name="setup_error_close_button">Välju</string>
- <string name="setup_error_text">Esines viga %s seadistamisel sinu valitud pakkujaga.\n\nSa võid proovida uuesti seadistada või väljud ja seadistad pakkuja järgmisel käivitusel.</string>
- <string name="server_unreachable_message">Server on ligipääsmatu, palun proovi uuesti.</string>
- <string name="error.security.pinnedcertificate">Turvaviga, täienda rakendust või vali teine pakkuja.</string>
- <string name="malformed_url">See ei paista olevat %s pakkuja.</string>
- <string name="certificate_error">See ei ole usaldatud %s pakkuja.</string>
- <string name="service_is_down_error">Teenus on maas.</string>
- <string name="configuring_provider">Häälestan pakkujat</string>
- <string name="incorrectly_downloaded_certificate_message">Sinu anonüümset sertifikaati ei laaditud alla</string>
- <string name="downloading_certificate_message">Laadin alla VPN-sertifikaati</string>
- <string name="updating_certificate_message">Uuendan VPN-sertifikaati</string>
- <string name="login.riseup.warning">Riseup kasutajad peavad looma VPN-teenuse kasutamiseks eraldi konto</string>
- <string name="succesful_authentication_message">Tuvastatud</string>
- <string name="authentication_failed_message">Autentimine ebaõnnestus</string>
- <string name="registration_failed_message">Registreerimine ebaõnnestus</string>
- <string name="eip_status_start_pending">Alustan ühendust</string>
- <string name="eip_cancel_connect_title">Tühistan ühenduse?</string>
- <string name="eip_cancel_connect_text">Hetkel toimub ühendumiskatse. Kas soovid seda tühistada?</string>
- <string name="eip.warning.browser_inconsistency">Lülitad VPN-ühenduse välja? Kui VPN on väljas, võid sa lekitada isiklikke andmeid oma Internetipakkujale või kohalikku võrku.</string>
- <string name="eip_state_not_connected">Pole käivitatud! Ebaturvaline ühendus!</string>
- <string name="eip_state_connected">Ühendus on turvaline</string>
- <string name="provider_problem">Tundub, et pakkujal on probleem.</string>
- <string name="try_another_provider">Palun proovi teist pakkujat, või kontakteeru enda omaga.</string>
- <string name="default_username">Anonüümne</string>
- <string name="logging_in">Sisselogimine</string>
- <string name="signing_up">Registreerumine</string>
- <string name="vpn.button.turn.on">Lülita sisse</string>
- <string name="vpn.button.turn.off">Lülita välja</string>
- <string name="vpn_button_turn_off_blocking">Peata blokeerimine</string>
- <string name="vpn_securely_routed">Sinu liiklus on turvaliselt suunatud läbi:</string>
- <string name="vpn_securely_routed_no_internet">Internetiühendust ei tuvastatud, kui see tuleb tagasi, suuname me su liikluse läbi:</string>
- <string name="log_fragment_title">Logi</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Ava navigatsioonisahtel</string>
- <string name="navigation_drawer_close">Sule navigatsioonisahtel</string>
- <string name="action_example">Näidistegevus</string>
- <string name="action_settings">Seaded</string>
- <string name="void_vpn_establish">%s blokeerib kogu väljuva internetiliikluse.</string>
- <string name="void_vpn_stopped">Kogu väljuva internetiliikluse blokeerimine peatatud.</string>
- <string name="void_vpn_title">Liikluse blokeerimine</string>
- <string name="update_provider_details">Uuenda pakkuja andmeid</string>
- <string name="update_certificate">Uuenda sertifikaati</string>
- <string name="warning_eip_json_corrupted">Pakkuja seadistuse uuendamine ebaõnnestus.</string>
- <string name="eip_json_corrupted_user_message">Pakkuja seadistuse uuendamine ebaõnnestus. Palun logi sisse, et uuesti proovida.</string>
- <string name="warning_corrupted_provider_details">Säilitatud pakkujaandmed on korrumpeerunud. Sa võid kas uuendada %s (soovitatud) või uuendada pakkujaandmeid, kasutades kommerts-sertifitseerimiskeskuse sertifikaati.</string>
- <string name="warning_corrupted_provider_cert">Säilitatud pakkuja sertifikaat on sobimatu. Sa võid kas uuendada %s (soovitatud) või uuendada pakkujaandmeid, kasutades kommerts-sertifitseerimiskeskuse sertifikaati.</string>
- <string name="warning_expired_provider_cert">Säilitatud pakkuja sertifikaat on aegunud. Sa võid kas uuendada %s (soovitatud) või uuendada pakkujaandmeid, kasutades kommerts-sertifitseerimiskeskuse sertifikaati.</string>
- <string name="downloading_vpn_certificate_failed">VPN-sertifikaadi allalaadimine ebaõnnestus. Proovi uuesti või vali teine pakkuja.</string>
- <string name="vpn_certificate_is_invalid">VPN-sertifikaat on sobimatu. Proovi alla laadida uus.</string>
- <string name="vpn_certificate_user_message">VPN-sertifikaat on sobimatu. Palun logi sisse, et alla laadida uus.</string>
- <string name="save_battery">Säästa akut</string>
- <string name="save_battery_message">Taustal olevad andmeühendused uinuvad, kui su telefon pole aktiivne.</string>
- <string name="always_on_vpn">Alati sees VPN</string>
- <string name="do_not_show_again">Ära kuva uuesti</string>
- <string name="always_on_vpn_user_message">Et lubada alati-sees VPN Androidi VPNi seadetes, vajuta seadistusikoonile [img src] ning lülita lüliti sisse.</string>
- <string name="always_on_blocking_vpn_user_message">Et optimaalset oma privaatsust kaitsta, peaksid aktiveerima ka valiku \"VPN-ita ühenduste blokeerimine\".</string>
- <string name="donate_title">Anneta</string>
- <string name="donate_default_message">Palun anneta täna, kui väärtustad turvalist suhtlust, mis on lihtne nii kasutajale kui teenusepakkujale.</string>
- <string name="donate_message">LEAP sõltub annetustest ja toetustest. Palun anneta täna, kui väärtustad turvalist suhtlust, mis on lihtne nii kasutajale kui teenusepakkujale.</string>
- <string name="donate_button_remind_later">Tuleta hiljem meelde</string>
- <string name="donate_button_donate">Anneta</string>
- <string name="nav_drawer_obfuscated_connection">Kasuta sildu</string>
- <string name="log_circuit_create">Tor\'i ringtee sätestamine</string>
- <string name="log_done">Töötab</string>
- <string name="hide">Peida</string>
- <string name="advanced_settings">Täpsemad seaded</string>
- <string name="cancel_connection">Katkesta ühendus</string>
+ <string name="switch_provider_menu_option">Vaheta pakkujat</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Näita ühenduse andmeid</string>
+ <string name="routes_info">Marsruudid: %s</string>
+ <string name="routes_info6">IPv6 suunamine: %s</string>
+ <string name="error_empty_username">Kasutajanimi peab olema määratud.</string>
+ <string name="cert_from_keystore">Võtmehoidlast saadi sertifikaat \"%s\"</string>
+ <string name="provider_label">Pakkuja:</string>
+ <string name="provider_label_none">Pakkuja on seadistamata</string>
+ <string name="status_unknown">Olek teadmata.</string>
+ <string name="eip_service_label">Krüptitud VPNiga internetiühendus</string>
+ <string name="configuration_wizard_title">Vali teenusepakkuja</string>
+ <string name="add_provider">Lisa uus pakkuja</string>
+ <string name="introduce_new_provider">Lisa uus teenusepakkuja</string>
+ <string name="save">Salvesta</string>
+ <string name="new_provider_uri">Domeeninimi</string>
+ <string name="valid_url_entered">URL on sobiv</string>
+ <string name="not_valid_url_entered">Sobimatu URL</string>
+ <string name="provider_details_title">Pakkuja andmed</string>
+ <string name="use_anonymously_button">Kasuta anonüümselt</string>
+ <string name="username_hint">kasutajanimi</string>
+ <string name="username_ask">Palun sisesta oma kasutajanimi</string>
+ <string name="password_ask">Palun sisesta oma parool</string>
+ <string name="password_hint">parool</string>
+ <string name="password_match">Paroolid ühtivad</string>
+ <string name="password_mismatch">Paroolid ei ühti</string>
+ <string name="user_message">Kasutaja sõnum</string>
+ <string name="about_fragment_title">Teave</string>
+ <string name="exclude_apps_fragment_title">Välista rakendusi VPNist</string>
+ <string name="error_srp_math_error_user_message">Proovi uuesti: serveripoolne matemaatika viga.</string>
+ <string name="error_bad_user_password_user_message">Sobimatu kasutajanimi või parool.</string>
+ <string name="error_not_valid_password_user_message">See peab olema vähemalt 8 tähemärki pikk.</string>
+ <string name="error_client_http_user_message">Proovi uuesti: rakenduse HTTP viga</string>
+ <string name="error_io_exception_user_message">Proovi uuesti: I/O viga</string>
+ <string name="error_json_exception_user_message">Proovi uuesti: serverist saadeti halb vastus</string>
+ <string name="error_no_such_algorithm_exception_user_message">Enkrüptimisalgoritmi ei leitud. Palun täienda oma Androidi!</string>
+ <string name="signup_or_login_button">Registreeru/logi sisse</string>
+ <string name="login_button">Logi sisse</string>
+ <string name="login_to_profile">Logi profiili sisse</string>
+ <string name="logout_button">Logi välja</string>
+ <string name="signup_button">Registreeru</string>
+ <string name="create_profile">Loo profiil</string>
+ <string name="setup_provider">Seadista pakkuja</string>
+ <string name="setup_error_title">Häälestusviga</string>
+ <string name="setup_error_configure_button">Seadista</string>
+ <string name="setup_error_close_button">Välju</string>
+ <string name="setup_error_text">Esines viga %s seadistamisel sinu valitud pakkujaga.\n\nSa võid proovida uuesti seadistada või väljud ja seadistad pakkuja järgmisel käivitusel.</string>
+ <string name="server_unreachable_message">Server on ligipääsmatu, palun proovi uuesti.</string>
+ <string name="error.security.pinnedcertificate">Turvaviga, täienda rakendust või vali teine pakkuja.</string>
+ <string name="malformed_url">See ei paista olevat %s pakkuja.</string>
+ <string name="certificate_error">See ei ole usaldatud %s pakkuja.</string>
+ <string name="service_is_down_error">Teenus on maas.</string>
+ <string name="configuring_provider">Häälestan pakkujat</string>
+ <string name="incorrectly_downloaded_certificate_message">Sinu anonüümset sertifikaati ei laaditud alla</string>
+ <string name="downloading_certificate_message">Laadin alla VPN-sertifikaati</string>
+ <string name="updating_certificate_message">Uuendan VPN-sertifikaati</string>
+ <string name="login.riseup.warning">Riseup kasutajad peavad looma VPN-teenuse kasutamiseks eraldi konto</string>
+ <string name="succesful_authentication_message">Tuvastatud</string>
+ <string name="authentication_failed_message">Autentimine ebaõnnestus</string>
+ <string name="registration_failed_message">Registreerimine ebaõnnestus</string>
+ <string name="eip_status_start_pending">Alustan ühendust</string>
+ <string name="eip_cancel_connect_title">Tühistan ühenduse?</string>
+ <string name="eip_cancel_connect_text">Hetkel toimub ühendumiskatse. Kas soovid seda tühistada?</string>
+ <string name="eip.warning.browser_inconsistency">Lülitad VPN-ühenduse välja? Kui VPN on väljas, võid sa lekitada isiklikke andmeid oma Internetipakkujale või kohalikku võrku.</string>
+ <string name="eip_state_not_connected">Pole käivitatud! Ebaturvaline ühendus!</string>
+ <string name="eip_state_connected">Ühendus on turvaline</string>
+ <string name="provider_problem">Tundub, et pakkujal on probleem.</string>
+ <string name="try_another_provider">Palun proovi teist pakkujat, või kontakteeru enda omaga.</string>
+ <string name="default_username">Anonüümne</string>
+ <string name="logging_in">Sisselogimine</string>
+ <string name="signing_up">Registreerumine</string>
+ <string name="vpn.button.turn.on">Lülita sisse</string>
+ <string name="vpn.button.turn.off">Lülita välja</string>
+ <string name="vpn_button_turn_off_blocking">Peata blokeerimine</string>
+ <string name="vpn_securely_routed">Sinu liiklus on turvaliselt suunatud läbi:</string>
+ <string name="vpn_securely_routed_no_internet">Internetiühendust ei tuvastatud, kui see tuleb tagasi, suuname me su liikluse läbi:</string>
+ <string name="log_fragment_title">Logi</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Ava navigatsioonisahtel</string>
+ <string name="navigation_drawer_close">Sule navigatsioonisahtel</string>
+ <string name="action_example">Näidistegevus</string>
+ <string name="action_settings">Seaded</string>
+ <string name="void_vpn_establish">%s blokeerib kogu väljuva internetiliikluse.</string>
+ <string name="void_vpn_stopped">Kogu väljuva internetiliikluse blokeerimine peatatud.</string>
+ <string name="void_vpn_title">Liikluse blokeerimine</string>
+ <string name="update_provider_details">Uuenda pakkuja andmeid</string>
+ <string name="update_certificate">Uuenda sertifikaati</string>
+ <string name="warning_eip_json_corrupted">Pakkuja seadistuse uuendamine ebaõnnestus.</string>
+ <string name="eip_json_corrupted_user_message">Pakkuja seadistuse uuendamine ebaõnnestus. Palun logi sisse, et uuesti proovida.</string>
+ <string name="warning_corrupted_provider_details">Säilitatud pakkujaandmed on korrumpeerunud. Sa võid kas uuendada %s (soovitatud) või uuendada pakkujaandmeid, kasutades kommerts-sertifitseerimiskeskuse sertifikaati.</string>
+ <string name="warning_corrupted_provider_cert">Säilitatud pakkuja sertifikaat on sobimatu. Sa võid kas uuendada %s (soovitatud) või uuendada pakkujaandmeid, kasutades kommerts-sertifitseerimiskeskuse sertifikaati.</string>
+ <string name="warning_expired_provider_cert">Säilitatud pakkuja sertifikaat on aegunud. Sa võid kas uuendada %s (soovitatud) või uuendada pakkujaandmeid, kasutades kommerts-sertifitseerimiskeskuse sertifikaati.</string>
+ <string name="downloading_vpn_certificate_failed">VPN-sertifikaadi allalaadimine ebaõnnestus. Proovi uuesti või vali teine pakkuja.</string>
+ <string name="vpn_certificate_is_invalid">VPN-sertifikaat on sobimatu. Proovi alla laadida uus.</string>
+ <string name="vpn_certificate_user_message">VPN-sertifikaat on sobimatu. Palun logi sisse, et alla laadida uus.</string>
+ <string name="save_battery">Säästa akut</string>
+ <string name="save_battery_message">Taustal olevad andmeühendused uinuvad, kui su telefon pole aktiivne.</string>
+ <string name="always_on_vpn">Alati sees VPN</string>
+ <string name="do_not_show_again">Ära kuva uuesti</string>
+ <string name="always_on_vpn_user_message">Et lubada alati-sees VPN Androidi VPNi seadetes, vajuta seadistusikoonile [img src] ning lülita lüliti sisse.</string>
+ <string name="always_on_blocking_vpn_user_message">Et optimaalset oma privaatsust kaitsta, peaksid aktiveerima ka valiku \"VPN-ita ühenduste blokeerimine\".</string>
+ <string name="donate_title">Anneta</string>
+ <string name="donate_default_message">Palun anneta täna, kui väärtustad turvalist suhtlust, mis on lihtne nii kasutajale kui teenusepakkujale.</string>
+ <string name="donate_message">LEAP sõltub annetustest ja toetustest. Palun anneta täna, kui väärtustad turvalist suhtlust, mis on lihtne nii kasutajale kui teenusepakkujale.</string>
+ <string name="donate_button_remind_later">Tuleta hiljem meelde</string>
+ <string name="donate_button_donate">Anneta</string>
+ <string name="nav_drawer_obfuscated_connection">Kasuta sildu</string>
+ <string name="log_circuit_create">Tor\'i ringtee sätestamine</string>
+ <string name="log_done">Töötab</string>
+ <string name="hide">Peida</string>
+ <string name="advanced_settings">Täpsemad seaded</string>
+ <string name="cancel_connection">Katkesta ühendus</string>
</resources>
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 59fac074..1797ae14 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -1,148 +1,148 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Saiatu berriro</string>
- <string name="repository_url_text">Kode-iturria hemen eskuragarri: https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Aplikazioaren akats kudeatzailea hemen eskuragarri https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Itzulpenak ongi etorriak eta estimatuak dira. Ikusi gure Transifex proiektua https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Aldatu hornitzailea</string>
- <string name="info">informazioa</string>
- <string name="show_connection_details">Ikusi konexio xehetasunak</string>
- <string name="routes_info">Bideratzaileak: %s</string>
- <string name="routes_info6">IPv6 bideratzaileak: %s</string>
- <string name="error_empty_username">Erabiltzaile izena ezin da hutsik utzi.</string>
- <string name="cert_from_keystore"> \'%s\' gako-biltegitik jaso da ziurtagiria</string>
- <string name="provider_label">Hornitzailea:</string>
- <string name="provider_label_none">Hornitzailea konfiguratu gabe</string>
- <string name="status_unknown">Egoera ezezaguna.</string>
- <string name="eip_service_label">Zifratutako VPN Internet Sarbidea</string>
- <string name="configuration_wizard_title">Aukeratu zerbitzu hornitzailea</string>
- <string name="add_provider">Hornitzaile berria gehitu</string>
- <string name="introduce_new_provider">Zerbitzu hornitzaile berria gehitu</string>
- <string name="save">Gorde</string>
- <string name="new_provider_uri">Domeinu izena</string>
- <string name="valid_url_entered">URLa baliozkoa da</string>
- <string name="not_valid_url_entered">URLa ez da egokia</string>
- <string name="provider_details_title">Hornitzailearen xehetasunak</string>
- <string name="use_anonymously_button">Modu anonimoan erabili</string>
- <string name="username_hint">erabiltzaile-izena</string>
- <string name="username_ask">Mesedez, sar ezazu zure erabiltzaile-izena</string>
- <string name="password_ask">Sartu zure pasahitza, mesedez</string>
- <string name="password_hint">pasahitza</string>
- <string name="password_match">Pasahitzek bat datoz</string>
- <string name="password_mismatch">Pasahitzek ez datoz bat</string>
- <string name="user_message">Erabiltzaile mezua</string>
- <string name="about_fragment_title">Honi buruz</string>
- <string name="exclude_apps_fragment_title">Baztertu aplikazioak VPNtik</string>
- <string name="error_srp_math_error_user_message">Saiatu berriro: Zerbitzariaren errore matematikoa</string>
- <string name="error_bad_user_password_user_message">Erabiltzaile-izen edo pasahitz okerra</string>
- <string name="error_not_valid_password_user_message">Gutxienez 8 karaktere izan behar ditu</string>
- <string name="error_client_http_user_message">Saiatu berriz: Bezero HTTP errorea</string>
- <string name="error_io_exception_user_message">Saiatu berriz: I/O errorea</string>
- <string name="error_json_exception_user_message">Saiatu berriz: Zerbitzariaren erantzun okerra</string>
- <string name="error_no_such_algorithm_exception_user_message">Ez da zifratze algoritmoa topatu. Mesedez eguneratu Android!</string>
- <string name="signup_or_login_button">Izena eman/Saioa hasi</string>
- <string name="login_button">Saioa hasi</string>
- <string name="login_to_profile">Saioa hasi profilera</string>
- <string name="logout_button">Saioa itxi</string>
- <string name="signup_button">Izena eman</string>
- <string name="create_profile">Sortu profila</string>
- <string name="setup_provider">Konfiguratu hornitzailea</string>
- <string name="setup_error_title">Konfigurazio-errorea</string>
- <string name="setup_error_configure_button">Konfiguratu</string>
- <string name="setup_error_close_button">Irten</string>
- <string name="setup_error_text">Akats bat egon da %s konfiguratzean aukeratu duzun hornitzailearekin.\n\nBerriz konfiguratu, edo irten eta konfiguratu hornitzaile bat hurrengo abiorako.</string>
- <string name="server_unreachable_message">Zerbitzaria ezin da atzitu, saiatu berriz.</string>
- <string name="error.security.pinnedcertificate">Segurtasun errorea, bertsio-berritu aplikazioa edo aukeratu beste hornitzaile bat.</string>
- <string name="malformed_url">Ez dirudi %s hornitzailea denik.</string>
- <string name="certificate_error">Hau ez da %shornitzaile fidagarria.</string>
- <string name="service_is_down_error">Zerbitzua erorita dago.</string>
- <string name="configuring_provider">Hornitzailea konfiguratzen.</string>
- <string name="incorrectly_downloaded_certificate_message">Zure ziurtagiri anonimoa ez da deskargatu</string>
- <string name="downloading_certificate_message">Deskargatzen VPN ziurtagiria</string>
- <string name="updating_certificate_message">Eguneratzen VPN ziurtagiria</string>
- <string name="login.riseup.warning">Riseup erabiltzaileek aparteko kontu bat sortu beharko dute VPN zerbitzua erabiltzeko</string>
- <string name="succesful_authentication_message">Egiaztatua</string>
- <string name="authentication_failed_message">Autentifikazioak huts egin du</string>
- <string name="registration_failed_message">Izena emateak hust egin du</string>
- <string name="eip_status_start_pending">Konexioa hasten</string>
- <string name="eip_cancel_connect_title">Konexioa bertan behera utzi?</string>
- <string name="eip_cancel_connect_text">Konexio saiakera bat dago martxan. Ezeztatu nahi duzu?</string>
- <string name="eip.warning.browser_inconsistency">Desaktibatu VPN konexioa? VPNa desaktibatuta dagoenean, informazio pertsonala zure Interneteko hornitzailera edo sare lokalera filtratu daiteke.</string>
- <string name="eip_state_not_connected">Ez dago exekutatzen! Konexioa ez da segurua!</string>
- <string name="eip_state_connected">Konexioa segurua</string>
- <string name="provider_problem">Badirudi arazoren bat dagoela hornitzailearekin.</string>
- <string name="try_another_provider">Saiatu beste hornitzaile batekin, edo harremanetan jarri hornitzaile honekin.</string>
- <string name="default_username">Anonimo</string>
- <string name="logging_in">Saioa hasten</string>
- <string name="signing_up">Izena ematen</string>
- <string name="vpn.button.turn.on">Aktibatu</string>
- <string name="vpn.button.turn.off">Desaktibatu</string>
- <string name="vpn_button_turn_off_blocking">Blokeaketa gelditu</string>
- <string name="vpn_securely_routed">Zure trafikoa seguru bideratuta dago hemendik:</string>
- <string name="vpn_securely_routed_no_internet">Ez da Interneteko konexioa detektatu, itzultzean trafikoa modu seguruan zehar bideratuko dugu:</string>
- <string name="log_fragment_title">Egunkaria</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Ireki nabigazio-tiradera</string>
- <string name="navigation_drawer_close">Itxi nabigazio-tiradera</string>
- <string name="action_example">Ekintza adibidea</string>
- <string name="action_settings">Ezarpenak</string>
- <string name="void_vpn_establish">%s nterneteko irteerako trafiko guztia blokeatzen du.</string>
- <string name="void_vpn_stopped">Interneteko irteera trafikoaren blokeoa gelditu da.</string>
- <string name="void_vpn_title">Trafikoa blokeatzen</string>
- <string name="update_provider_details">Eduneratu hornitzailearen xehetasunak</string>
- <string name="update_certificate">Eguneratu ziurtagiria</string>
- <string name="warning_eip_json_corrupted">Hornitzailearen konfigurazioaren eguneraketak huts egin du.</string>
- <string name="eip_json_corrupted_user_message">Hornitzailearen konfigurazioaren eguneraketak hust egin du. Saioa hasi berriz saiatzeko.</string>
- <string name="warning_client_parsing_error_gateways">Ezin izan dira hornitzailearen ateak identifikatu. Baliteke gaizki konfiguratuak izanak.</string>
- <string name="warning_corrupted_provider_details">Gordetako hornitzailearen datuak hondatuta daude. Konpontzeko bai CA ziurtagiri komertzial baten bidez hornitzailearen ziurtagiria, bai %s bera (gomendatua) egunera dezakezu.</string>
- <string name="warning_corrupted_provider_cert">Gordetako hornitzailearen ziurtagiria ez da baliozkoa. Konpontzeko bai CA ziurtagiri komertzial baten bidez hornitzailearen ziurtagiria, bai %s bera (gomendatua) egunera dezakezu.</string>
- <string name="warning_expired_provider_cert">Gordetako hornitzailearen ziurtagiria iraungi da. Konpontzeko bai CA ziurtagiri komertzial baten bidez hornitzailearen ziurtagiria, bai %s bera (gomendatua) egunera dezakezu.</string>
- <string name="downloading_vpn_certificate_failed">VPN ziurtagiriaren deskargak huts egin du. Saiatu berriz edo aukeratu beste hornitzaile bat.</string>
- <string name="vpn_certificate_is_invalid">VPN ziurtagiria ez da baliozkoa. Saiatu berri bat deskargatzen.</string>
- <string name="vpn_certificate_user_message">VPN ziurtagiria ez da baliozkoa. Saioa hasi berri bat deskargatzeko.</string>
- <string name="save_battery">Bateria aurreztu</string>
- <string name="subtitle_save_battery">Desgaituta VPNra sarbide-puntua gaituta dagoelako</string>
- <string name="save_battery_message">Atzeko planoko datu konexioak hibernatuko dira telefonoa aktibo ez dagoenean.</string>
- <string name="always_on_vpn">VPN beti aktibatuta</string>
- <string name="subtitle_always_on_vpn">Open Android sistemako ezarpenak</string>
- <string name="tethering">VPNra sarbide-puntua</string>
- <string name="ipv6Firewall">Blokeatu IPv6</string>
- <string name="require_root">Beharrezkoa da supererabiltzailearen baimenak izatea</string>
- <string name="show_experimental">Erakutsi funtzionalitate esperimentalak</string>
- <string name="hide_experimental">Ezkutatu funtzionalitate esperimentalak</string>
- <string name="tethering_enabled_message">Mesedez, ziurtatu <![CDATA[<b>Sistemaren ezarpenetan</b>]]> ainguraketa gaitu duzula.</string>
- <string name="tethering_message">Partekatu VPN zerbitzua beste gailuekin honakoa erabiliz:</string>
- <string name="tethering_wifi">Wifi sarbide-puntua</string>
- <string name="tethering_usb">USB ainguraketa</string>
- <string name="tethering_bluetooth">Bluetooth ainguraketa</string>
- <string name="do_not_show_again">Ez erakutsi berriro</string>
- <string name="always_on_vpn_user_message">VPN-a beti aktibo egoteko, Androideko VPN ezarpenetan sakatu konfigurazio ikonoa [img src] eta aktibatu etengailua.</string>
- <string name="always_on_blocking_vpn_user_message">Zure pribatutasuna ahalik eta hoberen babestu ahal izateko \"Blokeatu VPN zerbitzua erabiltzen ez duten konexioak\" gaitzea gomendagarria duzu</string>
- <string name="donate_title">Dirulaguntza</string>
- <string name="donate_default_message">Dohaintza egin erabiltzaileen eta hornitzaileentzat erreza den komunikazio segurua baloratzen baduzu.</string>
- <string name="donate_message">LEAP dohaintzen eta laguntzen menpekoa da. Dohaintza egin erabiltzaileen eta hornitzaileentzat erreza den komunikazio segurua baloratzen baduzu.</string>
- <string name="donate_button_remind_later">Gogorarazi geroago</string>
- <string name="donate_button_donate">Dirulaguntza</string>
- <string name="obfuscated_connection">Konexio itsutua erabiltzen ari zara</string>
- <string name="obfuscated_connection_try">Konexio itsutua erabiltzen saiatzen ari zara</string>
- <string name="nav_drawer_obfuscated_connection">Zubiak erabili</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Saihestu VPN zerbitzuaren iragaztea</string>
- <string name="warning_exclude_apps_message">Kontuz ibili aplikazioak VPNtik baztertzerako orduan. Zure identitatea jakinarazi eta zure segurtasuna arriskuan jarri dezake.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">babestu gabeko aplikazio %d</item>
- <item quantity="other">%d babestu gabeko aplikazio</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s ezin izan da konektatu. Baliteke VPN konexioak blokeatuak izatea. Konexio nahasiak erabiliz berriz saiatu nahi duzu?</string>
- <string name="warning_no_more_gateways_no_pt">%s ezin izan da konektatu. Berriz saiatu nahi duzu?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s ezin izan da konektatu konexio nahasiak erabiliz. Konexio arrunta erabiliz berriz saiatu nahi duzu?</string>
- <string name="warning_option_try_pt">Saiatu konexio itsutua erabiltzen</string>
- <string name="warning_option_try_ovpn">Saiatu konexio estandarra</string>
- <string name="vpn_error_establish">Androidek VPN zerbitzua ezartzean huts egin du</string>
- <string name="root_permission_error">Ezin dira VPNra sarbide-puntua eta IPv6 suebakia funtzionalitateak abiarazi %s-i supererabiltzailearen baimenik eman ez zaiolako</string>
- <string name="qs_enable_vpn">%sabiarazi</string>
- <string name="log_onehop_create">Enkriptatutako direktorio batera konexioa ezartzen</string>
- <string name="log_loading_keys">Aginpide ziurtagiriak kargatzen</string>
- <string name="log_circuit_create">Tor zirkuitu bat ezartzen</string>
- <string name="hide">Ezkutatu</string>
- <string name="cancel_connection">Deskonektatu</string>
+ <string name="retry">Saiatu berriro</string>
+ <string name="repository_url_text">Kode-iturria hemen eskuragarri: https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Aplikazioaren akats kudeatzailea hemen eskuragarri https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Itzulpenak ongi etorriak eta estimatuak dira. Ikusi gure Transifex proiektua https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Aldatu hornitzailea</string>
+ <string name="info">informazioa</string>
+ <string name="show_connection_details">Ikusi konexio xehetasunak</string>
+ <string name="routes_info">Bideratzaileak: %s</string>
+ <string name="routes_info6">IPv6 bideratzaileak: %s</string>
+ <string name="error_empty_username">Erabiltzaile izena ezin da hutsik utzi.</string>
+ <string name="cert_from_keystore"> \'%s\' gako-biltegitik jaso da ziurtagiria</string>
+ <string name="provider_label">Hornitzailea:</string>
+ <string name="provider_label_none">Hornitzailea konfiguratu gabe</string>
+ <string name="status_unknown">Egoera ezezaguna.</string>
+ <string name="eip_service_label">Zifratutako VPN Internet Sarbidea</string>
+ <string name="configuration_wizard_title">Aukeratu zerbitzu hornitzailea</string>
+ <string name="add_provider">Hornitzaile berria gehitu</string>
+ <string name="introduce_new_provider">Zerbitzu hornitzaile berria gehitu</string>
+ <string name="save">Gorde</string>
+ <string name="new_provider_uri">Domeinu izena</string>
+ <string name="valid_url_entered">URLa baliozkoa da</string>
+ <string name="not_valid_url_entered">URLa ez da egokia</string>
+ <string name="provider_details_title">Hornitzailearen xehetasunak</string>
+ <string name="use_anonymously_button">Modu anonimoan erabili</string>
+ <string name="username_hint">erabiltzaile-izena</string>
+ <string name="username_ask">Mesedez, sar ezazu zure erabiltzaile-izena</string>
+ <string name="password_ask">Sartu zure pasahitza, mesedez</string>
+ <string name="password_hint">pasahitza</string>
+ <string name="password_match">Pasahitzek bat datoz</string>
+ <string name="password_mismatch">Pasahitzek ez datoz bat</string>
+ <string name="user_message">Erabiltzaile mezua</string>
+ <string name="about_fragment_title">Honi buruz</string>
+ <string name="exclude_apps_fragment_title">Baztertu aplikazioak VPNtik</string>
+ <string name="error_srp_math_error_user_message">Saiatu berriro: Zerbitzariaren errore matematikoa</string>
+ <string name="error_bad_user_password_user_message">Erabiltzaile-izen edo pasahitz okerra</string>
+ <string name="error_not_valid_password_user_message">Gutxienez 8 karaktere izan behar ditu</string>
+ <string name="error_client_http_user_message">Saiatu berriz: Bezero HTTP errorea</string>
+ <string name="error_io_exception_user_message">Saiatu berriz: I/O errorea</string>
+ <string name="error_json_exception_user_message">Saiatu berriz: Zerbitzariaren erantzun okerra</string>
+ <string name="error_no_such_algorithm_exception_user_message">Ez da zifratze algoritmoa topatu. Mesedez eguneratu Android!</string>
+ <string name="signup_or_login_button">Izena eman/Saioa hasi</string>
+ <string name="login_button">Saioa hasi</string>
+ <string name="login_to_profile">Saioa hasi profilera</string>
+ <string name="logout_button">Saioa itxi</string>
+ <string name="signup_button">Izena eman</string>
+ <string name="create_profile">Sortu profila</string>
+ <string name="setup_provider">Konfiguratu hornitzailea</string>
+ <string name="setup_error_title">Konfigurazio-errorea</string>
+ <string name="setup_error_configure_button">Konfiguratu</string>
+ <string name="setup_error_close_button">Irten</string>
+ <string name="setup_error_text">Akats bat egon da %s konfiguratzean aukeratu duzun hornitzailearekin.\n\nBerriz konfiguratu, edo irten eta konfiguratu hornitzaile bat hurrengo abiorako.</string>
+ <string name="server_unreachable_message">Zerbitzaria ezin da atzitu, saiatu berriz.</string>
+ <string name="error.security.pinnedcertificate">Segurtasun errorea, bertsio-berritu aplikazioa edo aukeratu beste hornitzaile bat.</string>
+ <string name="malformed_url">Ez dirudi %s hornitzailea denik.</string>
+ <string name="certificate_error">Hau ez da %shornitzaile fidagarria.</string>
+ <string name="service_is_down_error">Zerbitzua erorita dago.</string>
+ <string name="configuring_provider">Hornitzailea konfiguratzen.</string>
+ <string name="incorrectly_downloaded_certificate_message">Zure ziurtagiri anonimoa ez da deskargatu</string>
+ <string name="downloading_certificate_message">Deskargatzen VPN ziurtagiria</string>
+ <string name="updating_certificate_message">Eguneratzen VPN ziurtagiria</string>
+ <string name="login.riseup.warning">Riseup erabiltzaileek aparteko kontu bat sortu beharko dute VPN zerbitzua erabiltzeko</string>
+ <string name="succesful_authentication_message">Egiaztatua</string>
+ <string name="authentication_failed_message">Autentifikazioak huts egin du</string>
+ <string name="registration_failed_message">Izena emateak hust egin du</string>
+ <string name="eip_status_start_pending">Konexioa hasten</string>
+ <string name="eip_cancel_connect_title">Konexioa bertan behera utzi?</string>
+ <string name="eip_cancel_connect_text">Konexio saiakera bat dago martxan. Ezeztatu nahi duzu?</string>
+ <string name="eip.warning.browser_inconsistency">Desaktibatu VPN konexioa? VPNa desaktibatuta dagoenean, informazio pertsonala zure Interneteko hornitzailera edo sare lokalera filtratu daiteke.</string>
+ <string name="eip_state_not_connected">Ez dago exekutatzen! Konexioa ez da segurua!</string>
+ <string name="eip_state_connected">Konexioa segurua</string>
+ <string name="provider_problem">Badirudi arazoren bat dagoela hornitzailearekin.</string>
+ <string name="try_another_provider">Saiatu beste hornitzaile batekin, edo harremanetan jarri hornitzaile honekin.</string>
+ <string name="default_username">Anonimo</string>
+ <string name="logging_in">Saioa hasten</string>
+ <string name="signing_up">Izena ematen</string>
+ <string name="vpn.button.turn.on">Aktibatu</string>
+ <string name="vpn.button.turn.off">Desaktibatu</string>
+ <string name="vpn_button_turn_off_blocking">Blokeaketa gelditu</string>
+ <string name="vpn_securely_routed">Zure trafikoa seguru bideratuta dago hemendik:</string>
+ <string name="vpn_securely_routed_no_internet">Ez da Interneteko konexioa detektatu, itzultzean trafikoa modu seguruan zehar bideratuko dugu:</string>
+ <string name="log_fragment_title">Egunkaria</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Ireki nabigazio-tiradera</string>
+ <string name="navigation_drawer_close">Itxi nabigazio-tiradera</string>
+ <string name="action_example">Ekintza adibidea</string>
+ <string name="action_settings">Ezarpenak</string>
+ <string name="void_vpn_establish">%s nterneteko irteerako trafiko guztia blokeatzen du.</string>
+ <string name="void_vpn_stopped">Interneteko irteera trafikoaren blokeoa gelditu da.</string>
+ <string name="void_vpn_title">Trafikoa blokeatzen</string>
+ <string name="update_provider_details">Eduneratu hornitzailearen xehetasunak</string>
+ <string name="update_certificate">Eguneratu ziurtagiria</string>
+ <string name="warning_eip_json_corrupted">Hornitzailearen konfigurazioaren eguneraketak huts egin du.</string>
+ <string name="eip_json_corrupted_user_message">Hornitzailearen konfigurazioaren eguneraketak hust egin du. Saioa hasi berriz saiatzeko.</string>
+ <string name="warning_client_parsing_error_gateways">Ezin izan dira hornitzailearen ateak identifikatu. Baliteke gaizki konfiguratuak izanak.</string>
+ <string name="warning_corrupted_provider_details">Gordetako hornitzailearen datuak hondatuta daude. Konpontzeko bai CA ziurtagiri komertzial baten bidez hornitzailearen ziurtagiria, bai %s bera (gomendatua) egunera dezakezu.</string>
+ <string name="warning_corrupted_provider_cert">Gordetako hornitzailearen ziurtagiria ez da baliozkoa. Konpontzeko bai CA ziurtagiri komertzial baten bidez hornitzailearen ziurtagiria, bai %s bera (gomendatua) egunera dezakezu.</string>
+ <string name="warning_expired_provider_cert">Gordetako hornitzailearen ziurtagiria iraungi da. Konpontzeko bai CA ziurtagiri komertzial baten bidez hornitzailearen ziurtagiria, bai %s bera (gomendatua) egunera dezakezu.</string>
+ <string name="downloading_vpn_certificate_failed">VPN ziurtagiriaren deskargak huts egin du. Saiatu berriz edo aukeratu beste hornitzaile bat.</string>
+ <string name="vpn_certificate_is_invalid">VPN ziurtagiria ez da baliozkoa. Saiatu berri bat deskargatzen.</string>
+ <string name="vpn_certificate_user_message">VPN ziurtagiria ez da baliozkoa. Saioa hasi berri bat deskargatzeko.</string>
+ <string name="save_battery">Bateria aurreztu</string>
+ <string name="subtitle_save_battery">Desgaituta VPNra sarbide-puntua gaituta dagoelako</string>
+ <string name="save_battery_message">Atzeko planoko datu konexioak hibernatuko dira telefonoa aktibo ez dagoenean.</string>
+ <string name="always_on_vpn">VPN beti aktibatuta</string>
+ <string name="subtitle_always_on_vpn">Open Android sistemako ezarpenak</string>
+ <string name="tethering">VPNra sarbide-puntua</string>
+ <string name="ipv6Firewall">Blokeatu IPv6</string>
+ <string name="require_root">Beharrezkoa da supererabiltzailearen baimenak izatea</string>
+ <string name="show_experimental">Erakutsi funtzionalitate esperimentalak</string>
+ <string name="hide_experimental">Ezkutatu funtzionalitate esperimentalak</string>
+ <string name="tethering_enabled_message">Mesedez, ziurtatu <![CDATA[<b>Sistemaren ezarpenetan</b>]]> ainguraketa gaitu duzula.</string>
+ <string name="tethering_message">Partekatu VPN zerbitzua beste gailuekin honakoa erabiliz:</string>
+ <string name="tethering_wifi">Wifi sarbide-puntua</string>
+ <string name="tethering_usb">USB ainguraketa</string>
+ <string name="tethering_bluetooth">Bluetooth ainguraketa</string>
+ <string name="do_not_show_again">Ez erakutsi berriro</string>
+ <string name="always_on_vpn_user_message">VPN-a beti aktibo egoteko, Androideko VPN ezarpenetan sakatu konfigurazio ikonoa [img src] eta aktibatu etengailua.</string>
+ <string name="always_on_blocking_vpn_user_message">Zure pribatutasuna ahalik eta hoberen babestu ahal izateko \"Blokeatu VPN zerbitzua erabiltzen ez duten konexioak\" gaitzea gomendagarria duzu</string>
+ <string name="donate_title">Dirulaguntza</string>
+ <string name="donate_default_message">Dohaintza egin erabiltzaileen eta hornitzaileentzat erreza den komunikazio segurua baloratzen baduzu.</string>
+ <string name="donate_message">LEAP dohaintzen eta laguntzen menpekoa da. Dohaintza egin erabiltzaileen eta hornitzaileentzat erreza den komunikazio segurua baloratzen baduzu.</string>
+ <string name="donate_button_remind_later">Gogorarazi geroago</string>
+ <string name="donate_button_donate">Dirulaguntza</string>
+ <string name="obfuscated_connection">Konexio itsutua erabiltzen ari zara</string>
+ <string name="obfuscated_connection_try">Konexio itsutua erabiltzen saiatzen ari zara</string>
+ <string name="nav_drawer_obfuscated_connection">Zubiak erabili</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Saihestu VPN zerbitzuaren iragaztea</string>
+ <string name="warning_exclude_apps_message">Kontuz ibili aplikazioak VPNtik baztertzerako orduan. Zure identitatea jakinarazi eta zure segurtasuna arriskuan jarri dezake.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">babestu gabeko aplikazio %d</item>
+ <item quantity="other">%d babestu gabeko aplikazio</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s ezin izan da konektatu. Baliteke VPN konexioak blokeatuak izatea. Konexio nahasiak erabiliz berriz saiatu nahi duzu?</string>
+ <string name="warning_no_more_gateways_no_pt">%s ezin izan da konektatu. Berriz saiatu nahi duzu?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s ezin izan da konektatu konexio nahasiak erabiliz. Konexio arrunta erabiliz berriz saiatu nahi duzu?</string>
+ <string name="warning_option_try_pt">Saiatu konexio itsutua erabiltzen</string>
+ <string name="warning_option_try_ovpn">Saiatu konexio estandarra</string>
+ <string name="vpn_error_establish">Androidek VPN zerbitzua ezartzean huts egin du</string>
+ <string name="root_permission_error">Ezin dira VPNra sarbide-puntua eta IPv6 suebakia funtzionalitateak abiarazi %s-i supererabiltzailearen baimenik eman ez zaiolako</string>
+ <string name="qs_enable_vpn">%sabiarazi</string>
+ <string name="log_onehop_create">Enkriptatutako direktorio batera konexioa ezartzen</string>
+ <string name="log_loading_keys">Aginpide ziurtagiriak kargatzen</string>
+ <string name="log_circuit_create">Tor zirkuitu bat ezartzen</string>
+ <string name="hide">Ezkutatu</string>
+ <string name="cancel_connection">Deskonektatu</string>
</resources>
diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml
index 704b6053..60c62947 100644
--- a/app/src/main/res/values-fa-rIR/strings.xml
+++ b/app/src/main/res/values-fa-rIR/strings.xml
@@ -1,206 +1,202 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="retry">تلاش دوباره</string>
- <string name="repository_url_text">منبع کد قابل دسترس در https://0xacab.org/leap/bitmask_android </string>
- <string name="leap_tracker">سامانهٔ پیگیری اشکالات قابل دسترس در https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">از همکاری شما برای ترجمه استقبال می‌کنیم. پروژهٔ Transifex ما را در اینجا ببینید:
-https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">تعویض ارائه‌دهنده</string>
- <string name="info">اطلاعات</string>
- <string name="show_connection_details">نمایش جزئیات اتصال</string>
- <string name="connection_details">جزئیات اتصال</string>
- <string name="routes_info">مسیرها: %s</string>
- <string name="routes_info6">مسیرهای IPv6: %s</string>
- <string name="error_empty_username">نام کاربری نباید خالی باشد.</string>
- <string name="cert_from_keystore">گرفتن تصدیق \'%s\' از کی‌استور</string>
- <string name="provider_label">ارائه‌دهنده:</string>
- <string name="provider_label_none">ارائه‌دهنده‌ای تنظیم نشده است</string>
- <string name="status_unknown">وضعیت نامشخص</string>
- <string name="eip_service_label">دسترسی کدگزاری شده به اینترنت با وی‌پی‌ان</string>
- <string name="configuration_wizard_title">انتخاب سرویس ارائه‌دهنده</string>
- <string name="add_provider">اضافه کردن ارائه‌دهنده جدید</string>
- <string name="introduce_new_provider">ارائه‌دهنده‌ی سرویس جدید وارد کنید</string>
- <string name="save">ذخیره</string>
- <string name="new_provider_uri">نام دامنه</string>
- <string name="valid_url_entered">URL معتبر است</string>
- <string name="not_valid_url_entered">URL صحیح نیست</string>
- <string name="provider_details_title">اطلاعات ارائه‌دهنده</string>
- <string name="use_anonymously_button">استفاده به صورت ناشناس</string>
- <string name="username_hint">نام کاربری</string>
- <string name="username_ask">لطفا شناسه‌ی خود را وارد کنید</string>
- <string name="password_ask">لطفا رمز عبور خود را وارد کنید</string>
- <string name="password_hint">رمز عبور</string>
- <string name="password_match">رمزهای عبور یکسان است</string>
- <string name="password_mismatch">رمزهای عبور یکسان نیست</string>
- <string name="user_message">پیغام کاربر</string>
- <string name="about_fragment_title">درباره‌</string>
- <string name="exclude_apps_fragment_title">استثناء کردن برنامه‌ها از VPN</string>
- <string name="error_srp_math_error_user_message">اشکال ریاضی در سرور: دوباره تلاش کنید.</string>
- <string name="error_bad_user_password_user_message">نام کاربری یا رمز نادرست</string>
- <string name="error_not_valid_password_user_message">باید حداقل ۸ حرف باشد.</string>
- <string name="error_client_http_user_message">دوباره تلاش کنید: خطای HTTP کاربر</string>
- <string name="error_io_exception_user_message">دوباره تلاش کنید: خطای I/O</string>
- <string name="error_json_exception_user_message">دوباره تلاش کنید: پاسخ نامناسب از سرور</string>
- <string name="error_no_such_algorithm_exception_user_message">الگوریتم کدگذاری‌شده یافت نشد. لطفا آندروید را به‌روز رسانی کنید!</string>
- <string name="signup_or_login_button">ثبت نام/ ورود</string>
- <string name="login_button">ورود</string>
- <string name="login_to_profile">ورود به صفحه شخصی</string>
- <string name="logout_button">خروج</string>
- <string name="signup_button">ثبت‌نام</string>
- <string name="create_profile">درست‌کردن صفحه شخصی</string>
- <string name="setup_provider">تنظیم ارائه‌دهنده</string>
- <string name="setup_error_title">خطای تنظیمات</string>
- <string name="setup_error_configure_button">تنظیم</string>
- <string name="setup_error_close_button">خروج</string>
- <string name="setup_error_text">هنگام تنظیم %s با سرویس دهنده‌ی شما خطایی رخ داد. می‌توانید تنظیم را دوباره انجام دهید یا از برنامه خارج شوید و بار دیگر که برنامه را آغاز کردید یک سرویس دهنده تنظیم کنید.</string>
- <string name="setup_error_text_custom">در پیکربندی خطایی روی داد.%s\n\nمی‌توانید پیکربندی مجدد یا خروج را انتخاب کنید.</string>
- <string name="server_unreachable_message">سرور قابل دسترس نیست، لطفا دوباره تلاش کنید.</string>
- <string name="error.security.pinnedcertificate">اخطار امنیتی، برنامه app را به‌روز رسانی کنید یا ارائه‌دهنده دیگری انتخاب کنید.</string>
- <string name="malformed_url">به نظر نمی‌آید یک سرویس دهنده‌ی%s باشد.</string>
- <string name="certificate_error">این یک سرویس دهنده‌ی قابل اعتماد %s نیست.</string>
- <string name="service_is_down_error">سرور وی‌پی‌ان در دسترس نیست.</string>
- <string name="configuring_provider">در حال تنظیم کردن ارائه‌دهنده</string>
- <string name="incorrectly_downloaded_certificate_message">گواهی ناشناسی شما دریافت نشد</string>
- <string name="downloading_certificate_message">دریافت گواهی وی‌پی‌ان</string>
- <string name="updating_certificate_message">به‌روز رسانی گواهی وی‌پی‌ان</string>
- <string name="login.riseup.warning">کاربران Riseup نیاز به ساختن حساب کاربری جداگانه‌ای برای استفاده از وی‌پی‌ان دارند</string>
- <string name="succesful_authentication_message">احراز هویت</string>
- <string name="authentication_failed_message">احراز هویت ناموفق بود</string>
- <string name="registration_failed_message">ثبت‌ ناموفق</string>
- <string name="eip_status_start_pending">آماده‌سازی اتصال</string>
- <string name="eip_cancel_connect_title">انصراف از اتصال؟</string>
- <string name="eip_cancel_connect_text">تلاشی برای برقراری ارتباط در جریان است. آیا می‌خواهید آن را قطع کنید؟</string>
- <string name="eip.warning.browser_inconsistency">خاموش کردن اتصال با وی‌پی‌ان؟ وقتی وی‌پی‌ان خاموش است، اطلاعات شما ممکن است توسط ارائه‌دهنده اینترنت و یا شبکه محلی قابل دسترس باشد.</string>
- <string name="eip_state_not_connected">کار نمی‌کند! اتصال ناامن!</string>
- <string name="eip_state_connected">اتصال امن.</string>
- <string name="provider_problem">به نظر می‌رسد مشکلی با ارائه‌دهنده وجود دارد.</string>
- <string name="try_another_provider">لطفا از ارائه‌دهنده دیگری استفاده کنید و یا با ارائه‌دهنده تماس بگیرید.</string>
- <string name="default_username">ناشناس</string>
- <string name="logging_in">وارد شدن</string>
- <string name="signing_up">ثبت‌نام کردن</string>
- <string name="vpn.button.turn.on">روشن کردن</string>
- <string name="vpn.button.turn.off">خاموش کردن</string>
- <string name="vpn_button_turn_off_blocking">توقف مسدود کردن</string>
- <string name="vpn_securely_routed">ترافیک شما به صورت امن از اینجا گذشته است:</string>
- <string name="vpn_securely_routed_no_internet">ارتباط با اینترنت وجود ندارد. پس از برقراری مجدد، ما ترافیک شما را به شکل امن از این مسیر هدایت خواهیم کرد:</string>
- <string name="log_fragment_title">لاگ</string>
- <string name="vpn_fragment_title">وی‌پی‌ان</string>
- <string name="navigation_drawer_open">بازکردن نوار ابزار</string>
- <string name="navigation_drawer_close">بستن نوار ابزار</string>
- <string name="action_example">فعالیت نمونه</string>
- <string name="action_settings">تنظیمات</string>
- <string name="void_vpn_establish">%s تمام ترافیک خروجی را مسدود می‌کند.</string>
- <string name="void_vpn_error_establish">مسدود کردن تمام ترافیک اینترنت انجام نشد.</string>
- <string name="void_vpn_stopped">مسدودکردن تمام ترافیک خروجی اینترنت متوقف شد.</string>
- <string name="void_vpn_title">مسدود کردن ترافیک</string>
- <string name="update_provider_details">به‌روز رسانی اطلاعات ارائه‌دهنده</string>
- <string name="update_certificate">به‌روز رسانی گواهی </string>
- <string name="warning_eip_json_corrupted">ناموفق در به‌روز رسانی تنظیمات ارا‌ئه‌دهنده</string>
- <string name="eip_json_corrupted_user_message">ناموفق در به‌روز رسانی تنظیمات ارا‌ئه‌دهنده. برای تلاش مجدد، لطفا دوباره وارد شوید.</string>
- <string name="warning_client_parsing_error_gateways">دروازه‌های سرویس دهنده شناسایی نمی‌شوند. ممکن است که تنظیمات آنها اشتباه باشد.</string>
- <string name="warning_corrupted_provider_details">جزییات ذخیره شده‌ی سرویس دهنده خراب است. شما می‌توانید %s را به روز رسانی کنید (گزینه پیشنهادی) ویا جزییات سرویس دهنده را با استفاده از یک گواهی تجاری CA به روز رسانی کنید.</string>
- <string name="warning_corrupted_provider_cert">گواهی سرویس دهنده‌ی ذخیره شده نامعتبر است. شما می‌توانید %s را به روز رسانی کنید (گزینه پیشنهادی) و یا گواهی سرویس دهنده را با استفاده از گواهی تجاری CA به روز رسانی کنید.</string>
- <string name="warning_expired_provider_cert">گواهی سرویس دهنده‌ی ذخیره شده تاریخ گذشته است. شما می‌توانید %s را به روز رسانی کنید (گزینه پیشنهادی)، ویا گواهی سرویس دهنده را با استفاده از گواهی تجاری CA به روز رسانی کنید.</string>
- <string name="downloading_vpn_certificate_failed">ناموفق در دریافت گواهی وی‌پی‌ان. لطفا دوباره تلاش کنید و یا ارائه‌دهنده دیگری را انتخاب کنید.</string>
- <string name="vpn_certificate_is_invalid">گواهی وی‌پی‌ان نامعتبر است. تلاش کنید که گواهی جدیدی دریافت کنید.</string>
- <string name="vpn_certificate_user_message">گواهی وی‌پی‌ان نامعتبر است. لطفا برای دریافت گواهی جدید وارد شوید. </string>
- <string name="save_battery">صرفه جویی در باطری</string>
- <string name="subtitle_save_battery">غیرفعال حین روشن بودن نقطه اتصال وی‌پی‌ان</string>
- <string name="save_battery_message">هنگامی که تلفن شما غیر فعال است، ارتباط اطلاعات پشت صحنه غیر فعال می‌شود.</string>
- <string name="always_on_vpn">وی پی ان در حالت همیشه روشن</string>
- <string name="subtitle_always_on_vpn">تنظیمات سیستم اندرویدرا باز کنید.</string>
- <string name="tethering">VPN Hotspot</string>
- <string name="ipv6Firewall">مسدود کردن IPv6</string>
- <string name="require_root">نیازمند دسترسی به روت</string>
- <string name="show_experimental">نمایش ویژگی‌های آزمایشی</string>
- <string name="hide_experimental">پنهان‌سازی ویژگی‌های آزمایشی</string>
- <string name="experimental_features">ویژگی‌های آزمایشی</string>
- <string name="tethering_enabled_message">ابتدا اطمینان حاصی کنید که اشتراک‌گذاری در <![CDATA[system settings]]> فعال است.</string>
- <string name="tethering_message">به اشتراک گذاری VPN با دیگر دستگاه ها از طریق:</string>
- <string name="tethering_wifi">هات اسپات Wi-Fi</string>
- <string name="tethering_usb">اتصال به USB</string>
- <string name="tethering_bluetooth">اتصال به بلوتوث</string>
- <string name="do_not_show_again">دوباره نشان نده</string>
- <string name="always_on_vpn_user_message">برای روشن کردن VPN همیشه فعال، در تنظیمات VPN آندروید روی آیکون [img src] کلیک کنید و آن را به حالت روشن تغییر دهید.</string>
- <string name="always_on_blocking_vpn_user_message">برای بهینه سازی حفاظت از حریم شخصی شما، بهتر است گزینه‌ی \"جلوگیری از ارتباطات بدون VPN\" را نیز فعال کنید.</string>
- <string name="donate_title">کمک مالی</string>
- <string name="donate_default_message">اگر برای ارتباطات امن که برای کاربر نهایی و ارائه دهنده سرویس آسان است ارزش قائل هستید، لطفا کمک مالی کنید.</string>
- <string name="donate_message">LEAP به کمک‌های مالی و وام‌های بلاعوض متکی است. اگر برای ارتباطات امن که برای کاربر نهایی و ارائه دهنده سرویس آسان است ارزش قائل هستید، لطفا کمک مالی کنید.</string>
- <string name="donate_button_remind_later">بعداً به من یادآوری کن</string>
- <string name="donate_button_donate">کمک مالی</string>
- <string name="obfuscated_connection">با استفاده از یک ارتباط مبهم شده.</string>
- <string name="obfuscated_connection_try">در حال امتحان یک ارتباط مبهم شده.</string>
- <string name="nav_drawer_obfuscated_connection">استفاده از پل‌ها</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">دور زدن فیلترینگ VPN</string>
- <string name="warning_exclude_apps_message">در استثناء کردن برنامه ها از اتصال با VPN احتیاط کنید. این کار هویت شما را آشکار می‌کند و امنیت شما را به خطر می‌اندازد. </string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d برنامه محافظت نشده.</item>
- <item quantity="other">%d برنامه‌های محافظت نشده</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s نتوانست متصل شود. ممکن است ارتباط VPN مسدود باشد. آیا می‌خواهید اتصال های مبهم شده را امتحان کنید؟</string>
- <string name="warning_no_more_gateways_no_pt">%s نتوانست متصل شود. می‌خواهید دوباره امتحان کنید؟</string>
- <string name="warning_no_more_gateways_use_ovpn">%s نتوانست با ارتباط مبهم شده‌ی VPN متصل شود. می‌خواهید یک VPN استاندارد را امتحان کنید؟</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s قادر به اتصال به %2$s نیست. آیا می‌خواهید به طور خودکار به بهترین مکان متصل شوید؟</string>
- <string name="warning_option_try_best">امتحان بهترین مکان</string>
- <string name="warning_option_try_pt">اتصال مبهم شده را امتحان کنید.</string>
- <string name="warning_option_try_ovpn">اتصال عادی را امتحان کنید.</string>
- <string name="vpn_error_establish">آندروید نتوانست با یک سرویس VPN ارتباط برقرار کند.</string>
- <string name="root_permission_error">%s بدون دسترسی به روت نمیتواند ویژگی هایی مانند VPN Hotspot یا IPv6 firewall را اجرا کند.</string>
- <string name="qs_enable_vpn">آغاز %s</string>
- <string name="version_update_found">برای آغاز بارگیری، اینجا را لمس کنید.</string>
- <string name="version_update_title">نسخه جدید %s یافت شده است.</string>
- <string name="version_update_apk_description">درحال بارگیری نسخه جدید %s</string>
- <string name="version_update_download_title">نسخه جدید %s بارگیری شده است.</string>
- <string name="version_update_download_description">برای نصب به‌روزرسانی، اینجا را لمس کنید.</string>
- <string name="version_update_error_pgp_verification">خطا در اعتبارسنجی PGP. نادیده‌گرفتن بارگیری.</string>
- <string name="version_update_error">به‌روزرسانی با شکست مواجه شد.</string>
- <string name="version_update_error_permissions">مجوزی برای نصب برنامه داده نشده است.</string>
- <string name="gateway_selection_title">انتخاب مکان</string>
- <string name="gateway_selection_recommended_location">مکان پیشنهادی</string>
- <string name="gateway_selection_recommended">توصیه‌شده</string>
- <string name="gateway_selection_manually">انتخاب دستی</string>
- <string name="gateway_selection_automatic_location">استفاده از بهترین مکان به صورت خودکار</string>
- <string name="gateway_selection_automatic">خودکار</string>
- <string name="reconnecting">اتصال مجدد...</string>
- <string name="tor_starting">راه‌اندازی پل‌ها برای دور زدن سانسور...</string>
- <string name="tor_stopping">توقف پل‌ها</string>
- <string name="tor_started">در حال استفاده از پل‌ها برای دور زدن سانسور</string>
- <string name="log_conn_done_pt">متصل به حامل‌های قابل جابجایی</string>
- <string name="log_conn_pt">در حال اتصال به حامل‌های قابل جابجایی</string>
- <string name="log_conn_done">متصل به یک رله</string>
- <string name="log_handshake">در حال مذاکره برای اتصال با یک رله</string>
- <string name="log_handshake_done">مذاکره برای اتصال با رله انجام شد</string>
- <string name="log_onehop_create">در حال ایجاد یک اتصال دایرکتوری رمزگذاری شده</string>
- <string name="log_requesting_status">درخواست موافقت وضعیت شبکه</string>
- <string name="log_loading_status">بارگیری موافقت وضعیت شبکه</string>
- <string name="log_loading_keys">بارگیری گواهینامه‌های مرجع</string>
- <string name="log_requesting_descriptors">در حال درخواست توصیف‌کننده‌های رله</string>
- <string name="log_loading_descriptors">بارگیری توصیف‌کننده‌های رله</string>
- <string name="log_enough_dirinfo">اطلاعات دایرکتوری کافی برای ساخت مدارها بارگیری شد</string>
- <string name="log_ap_handshake_done">مذاکره با یک رله برای ساخت مدارها به پایان رسید</string>
- <string name="log_circuit_create">در حال ایجاد مدار تور</string>
- <string name="log_done">در حال اجرا</string>
- <string name="channel_name_tor_service">خدمات پل‌های %s</string>
- <string name="channel_description_tor_service">در مورد استفاده از پل‌ها هنگام پیکربندی %s اطلاعات می‌دهد.</string>
- <string name="error_tor_timeout">راه‌اندازی پل‌ها ناموفق بود. آیا می‌خواهید دوباره امتحان کنید یا با یک اتصال امن غیرمبهم برای پیکربندی %s ادامه دهید؟</string>
- <string name="retry_unobfuscated">به صورت غیرمبهم امتحان کن</string>
- <string name="hide">پنهان کردن</string>
- <string name="error_network_connection">%s به اینترنت متصل نیست. لطفا تنظیمات WiFi و داده‌های تلفن خود را ببررسی کنید.</string>
- <string name="censorship_circumvention">دور زدن سانسور</string>
- <string name="use_snowflake">استفاده از Snowflake</string>
- <string name="snowflake_description">از فرآیند پیکربندی در برابر سانسور محافظت کنید.</string>
- <string name="vpn_settings">تنظیمات VPN</string>
- <string name="prefer_udp">استفاده از UDP در صورت مهیا بودن</string>
- <string name="prefer_udp_subtitle">UDP می‌تواند برای استریم سریع‌تر و بهتر باشد، اما در همه شبکه‌ها کار نمی‌کند.</string>
- <string name="disabled_while_bridges_on">در هنگام استفاده از پل‌ها غیرفعال است.</string>
- <string name="hint_bridges">در حال حاضر تنها مکان‌هایی که از پل‌ها پشتیبانی می‌کنند قابل انتخاب هستند.</string>
- <string name="option_disable_bridges">غیرفعال‌سازی پل‌ها</string>
- <string name="eip_state_insecure">اتصال ناامن</string>
- <string name="connection_not_connected">شما ممکن است اطلاعاتی را به ارائه‌دهنده اینترنت یا شبکه محلی خود نشت کنید.</string>
- <string name="eip_state_no_network">شما هیچ اتصال اینترنتی فعال ندارید. به محض اینکه که آن را برگردانید، به طور خودکار متصل خواهید شد</string>
- <string name="eip_state_blocking">%1$s تمامی ترافیک اینترنت را مسدود کرده است.</string>
- <string name="disabled_while_udp_on">غیرفعال در صورت روشن بودن UDP</string>
- <string name="advanced_settings">تنظیمات پیشرفته</string>
- <string name="cancel_connection">قطع اتصال</string>
- <string name="next">بعدی</string>
+ <string name="retry">تلاش دوباره</string>
+ <string name="repository_url_text">منبع کد قابل دسترس در https://0xacab.org/leap/bitmask_android </string>
+ <string name="leap_tracker">سامانهٔ پیگیری اشکالات قابل دسترس در https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">از همکاری شما برای ترجمه استقبال می‌کنیم. پروژهٔ Transifex ما را در اینجا ببینید: https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">تعویض ارائه‌دهنده</string>
+ <string name="info">اطلاعات</string>
+ <string name="show_connection_details">نمایش جزئیات اتصال</string>
+ <string name="connection_details">جزئیات اتصال</string>
+ <string name="routes_info">مسیرها: %s</string>
+ <string name="routes_info6">مسیرهای IPv6: %s</string>
+ <string name="error_empty_username">نام کاربری نباید خالی باشد.</string>
+ <string name="cert_from_keystore">گرفتن تصدیق \'%s\' از کی‌استور</string>
+ <string name="provider_label">ارائه‌دهنده:</string>
+ <string name="provider_label_none">ارائه‌دهنده‌ای تنظیم نشده است</string>
+ <string name="status_unknown">وضعیت نامشخص</string>
+ <string name="eip_service_label">دسترسی کدگزاری شده به اینترنت با وی‌پی‌ان</string>
+ <string name="configuration_wizard_title">انتخاب سرویس ارائه‌دهنده</string>
+ <string name="add_provider">اضافه کردن ارائه‌دهنده جدید</string>
+ <string name="introduce_new_provider">ارائه‌دهنده‌ی سرویس جدید وارد کنید</string>
+ <string name="save">ذخیره</string>
+ <string name="new_provider_uri">نام دامنه</string>
+ <string name="valid_url_entered">URL معتبر است</string>
+ <string name="not_valid_url_entered">URL صحیح نیست</string>
+ <string name="provider_details_title">اطلاعات ارائه‌دهنده</string>
+ <string name="use_anonymously_button">استفاده به صورت ناشناس</string>
+ <string name="username_hint">نام کاربری</string>
+ <string name="username_ask">لطفا شناسه‌ی خود را وارد کنید</string>
+ <string name="password_ask">لطفا رمز عبور خود را وارد کنید</string>
+ <string name="password_hint">رمز عبور</string>
+ <string name="password_match">رمزهای عبور یکسان است</string>
+ <string name="password_mismatch">رمزهای عبور یکسان نیست</string>
+ <string name="user_message">پیغام کاربر</string>
+ <string name="about_fragment_title">درباره‌</string>
+ <string name="exclude_apps_fragment_title">استثناء کردن برنامه‌ها از VPN</string>
+ <string name="error_srp_math_error_user_message">اشکال ریاضی در سرور: دوباره تلاش کنید.</string>
+ <string name="error_bad_user_password_user_message">نام کاربری یا رمز نادرست</string>
+ <string name="error_not_valid_password_user_message">باید حداقل ۸ حرف باشد.</string>
+ <string name="error_client_http_user_message">دوباره تلاش کنید: خطای HTTP کاربر</string>
+ <string name="error_io_exception_user_message">دوباره تلاش کنید: خطای I/O</string>
+ <string name="error_json_exception_user_message">دوباره تلاش کنید: پاسخ نامناسب از سرور</string>
+ <string name="error_no_such_algorithm_exception_user_message">الگوریتم کدگذاری‌شده یافت نشد. لطفا آندروید را به‌روز رسانی کنید!</string>
+ <string name="signup_or_login_button">ثبت نام/ ورود</string>
+ <string name="login_button">ورود</string>
+ <string name="login_to_profile">ورود به صفحه شخصی</string>
+ <string name="logout_button">خروج</string>
+ <string name="signup_button">ثبت‌نام</string>
+ <string name="create_profile">درست‌کردن صفحه شخصی</string>
+ <string name="setup_provider">تنظیم ارائه‌دهنده</string>
+ <string name="setup_error_title">خطای تنظیمات</string>
+ <string name="setup_error_configure_button">تنظیم</string>
+ <string name="setup_error_close_button">خروج</string>
+ <string name="setup_error_text">هنگام تنظیم %s با سرویس دهنده‌ی شما خطایی رخ داد. می‌توانید تنظیم را دوباره انجام دهید یا از برنامه خارج شوید و بار دیگر که برنامه را آغاز کردید یک سرویس دهنده تنظیم کنید.</string>
+ <string name="setup_error_text_custom">در پیکربندی خطایی روی داد.%s\n\nمی‌توانید پیکربندی مجدد یا خروج را انتخاب کنید.</string>
+ <string name="server_unreachable_message">سرور قابل دسترس نیست، لطفا دوباره تلاش کنید.</string>
+ <string name="error.security.pinnedcertificate">اخطار امنیتی، برنامه app را به‌روز رسانی کنید یا ارائه‌دهنده دیگری انتخاب کنید.</string>
+ <string name="malformed_url">به نظر نمی‌آید یک سرویس دهنده‌ی%s باشد.</string>
+ <string name="certificate_error">این یک سرویس دهنده‌ی قابل اعتماد %s نیست.</string>
+ <string name="service_is_down_error">سرور وی‌پی‌ان در دسترس نیست.</string>
+ <string name="configuring_provider">در حال تنظیم کردن ارائه‌دهنده</string>
+ <string name="downloading_certificate_message">دریافت گواهی وی‌پی‌ان</string>
+ <string name="updating_certificate_message">به‌روز رسانی گواهی وی‌پی‌ان</string>
+ <string name="login.riseup.warning">کاربران Riseup نیاز به ساختن حساب کاربری جداگانه‌ای برای استفاده از وی‌پی‌ان دارند</string>
+ <string name="succesful_authentication_message">احراز هویت</string>
+ <string name="authentication_failed_message">احراز هویت ناموفق بود</string>
+ <string name="registration_failed_message">ثبت‌ ناموفق</string>
+ <string name="eip_status_start_pending">آماده‌سازی اتصال</string>
+ <string name="eip_cancel_connect_title">انصراف از اتصال؟</string>
+ <string name="eip_cancel_connect_text">تلاشی برای برقراری ارتباط در جریان است. آیا می‌خواهید آن را قطع کنید؟</string>
+ <string name="eip.warning.browser_inconsistency">خاموش کردن اتصال با وی‌پی‌ان؟ وقتی وی‌پی‌ان خاموش است، اطلاعات شما ممکن است توسط ارائه‌دهنده اینترنت و یا شبکه محلی قابل دسترس باشد.</string>
+ <string name="eip_state_not_connected">کار نمی‌کند! اتصال ناامن!</string>
+ <string name="eip_state_connected">اتصال امن.</string>
+ <string name="provider_problem">به نظر می‌رسد مشکلی با ارائه‌دهنده وجود دارد.</string>
+ <string name="try_another_provider">لطفا از ارائه‌دهنده دیگری استفاده کنید و یا با ارائه‌دهنده تماس بگیرید.</string>
+ <string name="default_username">ناشناس</string>
+ <string name="logging_in">وارد شدن</string>
+ <string name="signing_up">ثبت‌نام کردن</string>
+ <string name="vpn.button.turn.on">روشن کردن</string>
+ <string name="vpn.button.turn.off">خاموش کردن</string>
+ <string name="vpn_button_turn_off_blocking">توقف مسدود کردن</string>
+ <string name="vpn_securely_routed">ترافیک شما به صورت امن از اینجا گذشته است:</string>
+ <string name="vpn_securely_routed_no_internet">ارتباط با اینترنت وجود ندارد. پس از برقراری مجدد، ما ترافیک شما را به شکل امن از این مسیر هدایت خواهیم کرد:</string>
+ <string name="log_fragment_title">لاگ</string>
+ <string name="vpn_fragment_title">وی‌پی‌ان</string>
+ <string name="navigation_drawer_open">بازکردن نوار ابزار</string>
+ <string name="navigation_drawer_close">بستن نوار ابزار</string>
+ <string name="action_example">فعالیت نمونه</string>
+ <string name="action_settings">تنظیمات</string>
+ <string name="void_vpn_establish">%s تمام ترافیک خروجی را مسدود می‌کند.</string>
+ <string name="void_vpn_error_establish">مسدود کردن تمام ترافیک اینترنت انجام نشد.</string>
+ <string name="void_vpn_stopped">مسدودکردن تمام ترافیک خروجی اینترنت متوقف شد.</string>
+ <string name="void_vpn_title">مسدود کردن ترافیک</string>
+ <string name="update_provider_details">به‌روز رسانی اطلاعات ارائه‌دهنده</string>
+ <string name="update_certificate">به‌روز رسانی گواهی </string>
+ <string name="warning_eip_json_corrupted">ناموفق در به‌روز رسانی تنظیمات ارا‌ئه‌دهنده</string>
+ <string name="eip_json_corrupted_user_message">ناموفق در به‌روز رسانی تنظیمات ارا‌ئه‌دهنده. برای تلاش مجدد، لطفا دوباره وارد شوید.</string>
+ <string name="warning_client_parsing_error_gateways">دروازه‌های سرویس دهنده شناسایی نمی‌شوند. ممکن است که تنظیمات آنها اشتباه باشد.</string>
+ <string name="warning_corrupted_provider_details">جزییات ذخیره شده‌ی سرویس دهنده خراب است. شما می‌توانید %s را به روز رسانی کنید (گزینه پیشنهادی) ویا جزییات سرویس دهنده را با استفاده از یک گواهی تجاری CA به روز رسانی کنید.</string>
+ <string name="warning_corrupted_provider_cert">گواهی سرویس دهنده‌ی ذخیره شده نامعتبر است. شما می‌توانید %s را به روز رسانی کنید (گزینه پیشنهادی) و یا گواهی سرویس دهنده را با استفاده از گواهی تجاری CA به روز رسانی کنید.</string>
+ <string name="warning_expired_provider_cert">گواهی سرویس دهنده‌ی ذخیره شده تاریخ گذشته است. شما می‌توانید %s را به روز رسانی کنید (گزینه پیشنهادی)، ویا گواهی سرویس دهنده را با استفاده از گواهی تجاری CA به روز رسانی کنید.</string>
+ <string name="downloading_vpn_certificate_failed">ناموفق در دریافت گواهی وی‌پی‌ان. لطفا دوباره تلاش کنید و یا ارائه‌دهنده دیگری را انتخاب کنید.</string>
+ <string name="save_battery">صرفه جویی در باطری</string>
+ <string name="subtitle_save_battery">غیرفعال حین روشن بودن نقطه اتصال وی‌پی‌ان</string>
+ <string name="save_battery_message">هنگامی که تلفن شما غیر فعال است، ارتباط اطلاعات پشت صحنه غیر فعال می‌شود.</string>
+ <string name="always_on_vpn">وی پی ان در حالت همیشه روشن</string>
+ <string name="subtitle_always_on_vpn">تنظیمات سیستم اندرویدرا باز کنید.</string>
+ <string name="tethering">VPN Hotspot</string>
+ <string name="ipv6Firewall">مسدود کردن IPv6</string>
+ <string name="require_root">نیازمند دسترسی به روت</string>
+ <string name="show_experimental">نمایش ویژگی‌های آزمایشی</string>
+ <string name="hide_experimental">پنهان‌سازی ویژگی‌های آزمایشی</string>
+ <string name="experimental_features">ویژگی‌های آزمایشی</string>
+ <string name="tethering_enabled_message">ابتدا اطمینان حاصی کنید که اشتراک‌گذاری در <![CDATA[system settings]]> فعال است.</string>
+ <string name="tethering_message">به اشتراک گذاری VPN با دیگر دستگاه ها از طریق:</string>
+ <string name="tethering_wifi">هات اسپات Wi-Fi</string>
+ <string name="tethering_usb">اتصال به USB</string>
+ <string name="tethering_bluetooth">اتصال به بلوتوث</string>
+ <string name="do_not_show_again">دوباره نشان نده</string>
+ <string name="always_on_vpn_user_message">برای روشن کردن VPN همیشه فعال، در تنظیمات VPN آندروید روی آیکون [img src] کلیک کنید و آن را به حالت روشن تغییر دهید.</string>
+ <string name="always_on_blocking_vpn_user_message">برای بهینه سازی حفاظت از حریم شخصی شما، بهتر است گزینه‌ی \"جلوگیری از ارتباطات بدون VPN\" را نیز فعال کنید.</string>
+ <string name="donate_title">کمک مالی</string>
+ <string name="donate_default_message">اگر برای ارتباطات امن که برای کاربر نهایی و ارائه دهنده سرویس آسان است ارزش قائل هستید، لطفا کمک مالی کنید.</string>
+ <string name="donate_message">LEAP به کمک‌های مالی و وام‌های بلاعوض متکی است. اگر برای ارتباطات امن که برای کاربر نهایی و ارائه دهنده سرویس آسان است ارزش قائل هستید، لطفا کمک مالی کنید.</string>
+ <string name="donate_button_remind_later">بعداً به من یادآوری کن</string>
+ <string name="donate_button_donate">کمک مالی</string>
+ <string name="obfuscated_connection">با استفاده از یک ارتباط مبهم شده.</string>
+ <string name="obfuscated_connection_try">در حال امتحان یک ارتباط مبهم شده.</string>
+ <string name="nav_drawer_obfuscated_connection">استفاده از پل‌ها</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">دور زدن فیلترینگ VPN</string>
+ <string name="warning_exclude_apps_message">در استثناء کردن برنامه ها از اتصال با VPN احتیاط کنید. این کار هویت شما را آشکار می‌کند و امنیت شما را به خطر می‌اندازد. </string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d برنامه محافظت نشده.</item>
+ <item quantity="other">%d برنامه‌های محافظت نشده</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s نتوانست متصل شود. ممکن است ارتباط VPN مسدود باشد. آیا می‌خواهید اتصال های مبهم شده را امتحان کنید؟</string>
+ <string name="warning_no_more_gateways_no_pt">%s نتوانست متصل شود. می‌خواهید دوباره امتحان کنید؟</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s نتوانست با ارتباط مبهم شده‌ی VPN متصل شود. می‌خواهید یک VPN استاندارد را امتحان کنید؟</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s قادر به اتصال به %2$s نیست. آیا می‌خواهید به طور خودکار به بهترین مکان متصل شوید؟</string>
+ <string name="warning_option_try_best">امتحان بهترین مکان</string>
+ <string name="warning_option_try_pt">اتصال مبهم شده را امتحان کنید.</string>
+ <string name="warning_option_try_ovpn">اتصال عادی را امتحان کنید.</string>
+ <string name="vpn_error_establish">آندروید نتوانست با یک سرویس VPN ارتباط برقرار کند.</string>
+ <string name="root_permission_error">%s بدون دسترسی به روت نمیتواند ویژگی هایی مانند VPN Hotspot یا IPv6 firewall را اجرا کند.</string>
+ <string name="qs_enable_vpn">آغاز %s</string>
+ <string name="version_update_found">برای آغاز بارگیری، اینجا را لمس کنید.</string>
+ <string name="version_update_title">نسخه جدید %s یافت شده است.</string>
+ <string name="version_update_apk_description">درحال بارگیری نسخه جدید %s</string>
+ <string name="version_update_download_title">نسخه جدید %s بارگیری شده است.</string>
+ <string name="version_update_download_description">برای نصب به‌روزرسانی، اینجا را لمس کنید.</string>
+ <string name="version_update_error_pgp_verification">خطا در اعتبارسنجی PGP. نادیده‌گرفتن بارگیری.</string>
+ <string name="version_update_error">به‌روزرسانی با شکست مواجه شد.</string>
+ <string name="version_update_error_permissions">مجوزی برای نصب برنامه داده نشده است.</string>
+ <string name="gateway_selection_title">انتخاب مکان</string>
+ <string name="gateway_selection_recommended_location">مکان پیشنهادی</string>
+ <string name="gateway_selection_recommended">توصیه‌شده</string>
+ <string name="gateway_selection_manually">انتخاب دستی</string>
+ <string name="gateway_selection_automatic_location">استفاده از بهترین مکان به صورت خودکار</string>
+ <string name="gateway_selection_automatic">خودکار</string>
+ <string name="reconnecting">اتصال مجدد...</string>
+ <string name="tor_starting">راه‌اندازی پل‌ها برای دور زدن سانسور...</string>
+ <string name="tor_stopping">توقف پل‌ها</string>
+ <string name="tor_started">در حال استفاده از پل‌ها برای دور زدن سانسور</string>
+ <string name="log_conn_done_pt">متصل به حامل‌های قابل جابجایی</string>
+ <string name="log_conn_pt">در حال اتصال به حامل‌های قابل جابجایی</string>
+ <string name="log_conn_done">متصل به یک رله</string>
+ <string name="log_handshake">در حال مذاکره برای اتصال با یک رله</string>
+ <string name="log_handshake_done">مذاکره برای اتصال با رله انجام شد</string>
+ <string name="log_onehop_create">در حال ایجاد یک اتصال دایرکتوری رمزگذاری شده</string>
+ <string name="log_requesting_status">درخواست موافقت وضعیت شبکه</string>
+ <string name="log_loading_status">بارگیری موافقت وضعیت شبکه</string>
+ <string name="log_loading_keys">بارگیری گواهینامه‌های مرجع</string>
+ <string name="log_requesting_descriptors">در حال درخواست توصیف‌کننده‌های رله</string>
+ <string name="log_loading_descriptors">بارگیری توصیف‌کننده‌های رله</string>
+ <string name="log_enough_dirinfo">اطلاعات دایرکتوری کافی برای ساخت مدارها بارگیری شد</string>
+ <string name="log_ap_handshake_done">مذاکره با یک رله برای ساخت مدارها به پایان رسید</string>
+ <string name="log_circuit_create">در حال ایجاد مدار تور</string>
+ <string name="log_done">در حال اجرا</string>
+ <string name="channel_name_tor_service">خدمات پل‌های %s</string>
+ <string name="channel_description_tor_service">در مورد استفاده از پل‌ها هنگام پیکربندی %s اطلاعات می‌دهد.</string>
+ <string name="error_tor_timeout">راه‌اندازی پل‌ها ناموفق بود. آیا می‌خواهید دوباره امتحان کنید یا با یک اتصال امن غیرمبهم برای پیکربندی %s ادامه دهید؟</string>
+ <string name="retry_unobfuscated">به صورت غیرمبهم امتحان کن</string>
+ <string name="hide">پنهان کردن</string>
+ <string name="error_network_connection">%s به اینترنت متصل نیست. لطفا تنظیمات WiFi و داده‌های تلفن خود را ببررسی کنید.</string>
+ <string name="censorship_circumvention">دور زدن سانسور</string>
+ <string name="use_snowflake">استفاده از Snowflake</string>
+ <string name="snowflake_description">از فرآیند پیکربندی در برابر سانسور محافظت کنید.</string>
+ <string name="vpn_settings">تنظیمات VPN</string>
+ <string name="prefer_udp">استفاده از UDP در صورت مهیا بودن</string>
+ <string name="prefer_udp_subtitle">UDP می‌تواند برای استریم سریع‌تر و بهتر باشد، اما در همه شبکه‌ها کار نمی‌کند.</string>
+ <string name="disabled_while_bridges_on">در هنگام استفاده از پل‌ها غیرفعال است.</string>
+ <string name="hint_bridges">در حال حاضر تنها مکان‌هایی که از پل‌ها پشتیبانی می‌کنند قابل انتخاب هستند.</string>
+ <string name="option_disable_bridges">غیرفعال‌سازی پل‌ها</string>
+ <string name="eip_state_insecure">اتصال ناامن</string>
+ <string name="connection_not_connected">شما ممکن است اطلاعاتی را به ارائه‌دهنده اینترنت یا شبکه محلی خود نشت کنید.</string>
+ <string name="eip_state_no_network">شما هیچ اتصال اینترنتی فعال ندارید. به محض اینکه که آن را برگردانید، به طور خودکار متصل خواهید شد</string>
+ <string name="eip_state_blocking">%1$s تمامی ترافیک اینترنت را مسدود کرده است.</string>
+ <string name="disabled_while_udp_on">غیرفعال در صورت روشن بودن UDP</string>
+ <string name="advanced_settings">تنظیمات پیشرفته</string>
+ <string name="cancel_connection">قطع اتصال</string>
+ <string name="next">بعدی</string>
</resources>
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 6d43088f..fa00c807 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -1,212 +1,212 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Toista</string>
- <string name="repository_url_text">Lähdekoodi saatavilla https://0xacab.org/leap/bitmask_android:ssa</string>
- <string name="leap_tracker">Ongelmaseuranta saatavilla https://0xacab.org/leap/bitmask_android/issues:sta</string>
- <string name="translation_project_text">Käännökset ovat tervetulleita ja arvostettuja. Katso Transifex-hankkeemme https://www.transifex.com/projects/p/bitmask/:ssa</string>
- <string name="switch_provider_menu_option">Vaihda palvelutarjoajaa</string>
- <string name="info">tiedot</string>
- <string name="show_connection_details">Näytä lisätiedot yhteydestä</string>
- <string name="connection_details">Yhteyden yksityiskohdat</string>
- <string name="routes_info">Reitittää: %s</string>
- <string name="routes_info6">IPv6-reitit: %s</string>
- <string name="error_empty_username">Käyttäjätunnus ei saa olla tyhjä.</string>
- <string name="cert_from_keystore">Hanki varmenne \'%s\' avainsäilöstä</string>
- <string name="provider_label">Palvelutarjoaja:</string>
- <string name="provider_label_none">Yhtään palvelutarjoajaa ei ole asetettu</string>
- <string name="status_unknown">Tila tuntematon.</string>
- <string name="eip_service_label">Salattu VPN:n Internet-yhteys</string>
- <string name="configuration_wizard_title">Valitse palvelutarjoaja</string>
- <string name="add_provider">Lisää uusi palvelutarjoaja</string>
- <string name="introduce_new_provider">Lisää uusi palvelutarjoaja</string>
- <string name="save">Tallenna</string>
- <string name="new_provider_uri">Verkkotunnusnimi</string>
- <string name="valid_url_entered">URL on kelvollinen</string>
- <string name="not_valid_url_entered">Väärin muotoiltu URL</string>
- <string name="provider_details_title">Palvelutarjoajan lisätiedot</string>
- <string name="use_anonymously_button">Käytä anonyymisti</string>
- <string name="username_hint">käyttäjätunnus</string>
- <string name="username_ask">Kirjoita käyttäjätunnuksesi</string>
- <string name="password_ask">Kirjoita salasana</string>
- <string name="password_hint">salasana</string>
- <string name="password_match">Salasanat täsmäävät</string>
- <string name="password_mismatch">Salasanat eivät täsmää</string>
- <string name="user_message">Käyttäjäviesti</string>
- <string name="about_fragment_title">Tietoja</string>
- <string name="exclude_apps_fragment_title">Sulje sovellukset pois VPN:stä</string>
- <string name="error_srp_math_error_user_message">Yritä uudelleen: palvelimen matemaattinen virhe</string>
- <string name="error_bad_user_password_user_message">Väärä käyttäjänimi tai salasana</string>
- <string name="error_not_valid_password_user_message">Sen on oltava vähintään 8 merkkiä pitkä</string>
- <string name="error_client_http_user_message">Yritä uudelleen: Asiakasohjelman HTTP-virhe</string>
- <string name="error_io_exception_user_message">Yritä uudelleen: Siirräntävirhe</string>
- <string name="error_json_exception_user_message">Yritä uudelleen: Väärä vastaus palvelimelta</string>
- <string name="error_no_such_algorithm_exception_user_message">Salausalgoritmia ei löydy. Päivitä Android!</string>
- <string name="signup_or_login_button">Rekisteröidy Kirjaudu sisään</string>
- <string name="login_button">Kirjaudu</string>
- <string name="login_to_profile">Kirjaudu profiiliin</string>
- <string name="logout_button">Kirjaudu ulos</string>
- <string name="signup_button">Kirjaudu</string>
- <string name="create_profile">Luo profiili</string>
- <string name="setup_provider">Määritä palveluntarjoaja</string>
- <string name="setup_error_title">Asetusvirhe</string>
- <string name="setup_error_configure_button">Aseta</string>
- <string name="setup_error_close_button">Poistu</string>
- <string name="setup_error_text">Virhe määritettäessä%svalitsemasi palveluntarjoajan kanssa.\n\nVoit määrittää asetukset uudelleen tai poistua ja määrittää palveluntarjoajan seuraavan käynnistyksen yhteydessä.</string>
- <string name="setup_error_text_custom"> %s:n määrittämisessä tapahtui virhe.\n\nVoit määrittää uudelleen tai poistua</string>
- <string name="server_unreachable_message">Palvelimeen ei saada yhteyttä, yritä uudelleen.</string>
- <string name="error.security.pinnedcertificate">Turvallisuusvirhe, päivitä sovellus tai valitse toinen palveluntarjoaja.</string>
- <string name="malformed_url">Se ei näytä olevan %s palveluntarjoaja.</string>
- <string name="certificate_error">Tämä ei ole luotetttu %s palveluntarjoaja.</string>
- <string name="service_is_down_error">Palvelu on poissa.</string>
- <string name="configuring_provider">Asetetaan palvelutarjoaja</string>
- <string name="incorrectly_downloaded_certificate_message">Anonyymia varmennettasi ei ladattu</string>
- <string name="downloading_certificate_message">Ladataan VPN-varmennetta</string>
- <string name="updating_certificate_message">Päivitetään VPN-varmennetta</string>
- <string name="login.riseup.warning">Riseup-käyttäjien on luotava erillinen tili VPN-palvelun käyttöä varten</string>
- <string name="succesful_authentication_message">Todennettu</string>
- <string name="authentication_failed_message">Tunnistautuminen epäonnistui</string>
- <string name="registration_failed_message">Rekisteröityminen epäonnistui</string>
- <string name="eip_status_start_pending">Alustetaan yhteys</string>
- <string name="eip_cancel_connect_title">Perutaanko yhteys?</string>
- <string name="eip_cancel_connect_text">Yhteysyritys on käynnissä. Haluatko perua sen?</string>
- <string name="eip.warning.browser_inconsistency">Kytketäänkö pois VPN-yhteys? Kun VPN on pois päältä, saatat vuotaa henkilökohtaisia tietoja Internet-palveluntarjoajaasi tai paikallisverkkoon.</string>
- <string name="eip_state_not_connected">Ei käynnissä! Epävarvullinen yhteys.</string>
- <string name="eip_state_connected">Yhteys suojattu</string>
- <string name="provider_problem">Vaikuttaa siltä, että palveluntarjoajan kanssa on ongelma.</string>
- <string name="try_another_provider">Kokeile toista palveluntarjoajaa tai ota yhteyttä omaasi.</string>
- <string name="default_username">Anonyymi</string>
- <string name="logging_in">Kirjaudutaan</string>
- <string name="signing_up">Rekisteröiminen</string>
- <string name="vpn.button.turn.on">Kytke päälle</string>
- <string name="vpn.button.turn.off">Kytke pois päältä</string>
- <string name="vpn_button_turn_off_blocking">Lopeta estäminen</string>
- <string name="vpn_securely_routed">Liikenne ohjataan turvallisesti seuraavien kautta:</string>
- <string name="vpn_securely_routed_no_internet">Internet-yhteyttä ei havaittu, kun se palaa, reititämme liikenteen turvallisesti seuraavien kautta:</string>
- <string name="log_fragment_title">Loki</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Avaa navigointilaatikko</string>
- <string name="navigation_drawer_close">Sulje navigointilaatikko</string>
- <string name="action_example">Esimerkki toimia</string>
- <string name="action_settings">Asetukset</string>
- <string name="void_vpn_establish">%s estää kaiken lähtevän Internet-liikenteen.</string>
- <string name="void_vpn_error_establish">Kaiken Internet-liikenteen estäminen epäonnistui.</string>
- <string name="void_vpn_stopped">Kaiken lähtevän Internet-liikenteen estäminen lopetettiin.</string>
- <string name="void_vpn_title">Liikenteen estäminen</string>
- <string name="update_provider_details">Päivitä palveluntarjoajan yksityiskohdat</string>
- <string name="update_certificate">Päivitä varmenne</string>
- <string name="warning_eip_json_corrupted">Palveluntarjoajan kokoonpanon päivittäminen epäonnistui.</string>
- <string name="eip_json_corrupted_user_message">Palveluntarjoajan kokoonpanon päivittäminen epäonnistui. Kirjaudu sisään ja yritä uudelleen.</string>
- <string name="warning_client_parsing_error_gateways">Palveluntarjoajan yhdyskäytäviä ei voitu tunnistaa. Ne voivat olla määritetty väärin.</string>
- <string name="warning_corrupted_provider_details">Tallennetut palveluntarjoajan yksityiskohdat ovat vioittuneet. Voit joko päivittää %s (suositus) tai päivittää palveluntarjoajan tiedot kaupallisen CA-varmenteen avulla.</string>
- <string name="warning_corrupted_provider_cert">Tallennettu palveluntarjoajan varmenne on virheellinen. Voit joko päivittää %s (suositus) tai päivittää toimittajan varmenteen kaupallisen CA-varmenteen avulla.</string>
- <string name="warning_expired_provider_cert">Tallennettu palveluntarjoajan varmenne on vanhentunut. Voit joko päivittää %s (suositus) tai päivittää toimittajan varmenteen kaupallisen CA-varmenteen avulla.</string>
- <string name="downloading_vpn_certificate_failed">VPN-varmenteen lataaminen epäonnistui. Yritä uudelleen tai valitse toinen palveluntarjoaja.</string>
- <string name="vpn_certificate_is_invalid">VPN-varmenne on virheellinen. Yritä ladata uusi.</string>
- <string name="vpn_certificate_user_message">VPN-varmenne on virheellinen. Kirjaudu sisään ladataksesi uuden.</string>
- <string name="save_battery">Säästä akkua</string>
- <string name="subtitle_save_battery">Pois käytöstä, kun VPN Hotspot on päällä</string>
- <string name="save_battery_message">Taustadatayhteydet horrostuvat kun puhelimesi on passiivinen.</string>
- <string name="always_on_vpn">Aina-päällä VPN</string>
- <string name="subtitle_always_on_vpn">Avaa Android-järjestelmäasetukset</string>
- <string name="tethering">VPN Hotspot</string>
- <string name="ipv6Firewall">Estä IPv6</string>
- <string name="require_root">Vaatii rootin oikeudet</string>
- <string name="show_experimental">Näytä kokeelliset ominaisuudet</string>
- <string name="hide_experimental">Piilota kokeelliset ominaisuudet</string>
- <string name="experimental_features">Kokeelliset ominaisuudet</string>
- <string name="tethering_enabled_message">Varmista, että olet ensin ottanut jakamisen käyttöön kohdassa <![CDATA[<b>järjestelmäasetukset</b>]]>.</string>
- <string name="tethering_message">Jaa VPN muiden laitteiden kanssa kautta:</string>
- <string name="tethering_wifi">Wi-Fi hotspot</string>
- <string name="tethering_usb">USB-jako</string>
- <string name="tethering_bluetooth">Bluetooth-jako</string>
- <string name="do_not_show_again">Älä näytä uudelleen</string>
- <string name="always_on_vpn_user_message">Aina-päällä VPN:n käyttöön ottamiseksi, napsauta Android VPN -asetuksissa konfigurointikuvaketta [img src] ja kytke kytkin päälle.</string>
- <string name="always_on_blocking_vpn_user_message">Yksityisyytesi optimaalisen suojaamiseksi sinun tulee aktivoida myös vaihtoehto \"Estä yhteydet ilman VPN:ää\".</string>
- <string name="donate_title">Lahjoita</string>
- <string name="donate_default_message">Lahjoita jo tänään, jos arvostat turvallista viestintää, joka on helppoa sekä loppukäyttäjälle että palveluntarjoajalle.</string>
- <string name="donate_message">LEAP riippuu lahjoituksista ja apurahoista. Lahjoita jo tänään, jos arvostat turvallista viestintää, joka on helppoa sekä loppukäyttäjälle että palveluntarjoajalle.</string>
- <string name="donate_button_remind_later">Muistuta minua myöhemmin</string>
- <string name="donate_button_donate">Lahjoita</string>
- <string name="obfuscated_connection">Käyttää hämärää yhteyttä.</string>
- <string name="obfuscated_connection_try">Kokeillaan hämärää yhteyttä.</string>
- <string name="nav_drawer_obfuscated_connection">Käytä siltoja</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Kierrä VPN-suodatus</string>
- <string name="warning_exclude_apps_message">Ole varovainen sulkemasta sovelluksia pois VPN:stä. Tämä paljastaa henkilöllisyytesi ja vaarantaa turvallisuutesi.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d suojaamaton sovellus</item>
- <item quantity="other">%d suojaamatonta sovellusta</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%sei pystynyt yhdistämään. Voi olla, että VPN-yhteydet estyvät. Haluatko yrittää muodostaa yhteyden käyttämällä hämäriä yhteyksiä?</string>
- <string name="warning_no_more_gateways_no_pt">%s ei pystynyt yhdistämään. Haluatko yrittää uudelleen?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s ei voinut muodostaa yhteyttä käyttämällä hämäriä VPN-yhteyksiä. Haluatko yrittää muodostaa yhteyden tavallisella VPN:lla?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s ei voi muodostaa yhteyttä %2$s:een. Haluatko yrittää muodostaa yhteyden automaattisesti parhaaseen sijaintiin?</string>
- <string name="warning_option_try_best">Kokeile parasta sijaintia</string>
- <string name="warning_option_try_pt">Kokeile hämärää yhteyttä</string>
- <string name="warning_option_try_ovpn">Kokeile tavallista yhteyttä</string>
- <string name="vpn_error_establish">Android ei pystynyt vahvistamaan VPN-palvelua.</string>
- <string name="root_permission_error">%s ei voi suorittaa ominaisuuksia, kuten VPN Hotspot tai IPv6-palomuuri ilman rootin oikeuksia.</string>
- <string name="qs_enable_vpn">Käynnistä %s</string>
- <string name="version_update_found">Tap here to start the download.</string>
- <string name="version_update_title">Uusi versio %s :ta on löydetty.</string>
- <string name="version_update_apk_description">Ladataan uutta versiota %s :ta</string>
- <string name="version_update_download_title">Uusi versio %s :ta on ladattu.</string>
- <string name="version_update_download_description">Asenna päivitys napauttamalla tätä</string>
- <string name="version_update_error_pgp_verification">PGP-vahvistusvirhe. Ohitetaan lataus.</string>
- <string name="version_update_error">Päivitys epäonnistui.</string>
- <string name="version_update_error_permissions">Ei oikeuksia sovellusten asentamiseen</string>
- <string name="gateway_selection_title">Valitse sijainti</string>
- <string name="gateway_selection_recommended_location">Suositeltu sijainti</string>
- <string name="gateway_selection_recommended">Suositeltu</string>
- <string name="gateway_selection_manually">Valitse manuaalisesti</string>
- <string name="gateway_selection_automatic_location">Käytä automaattisesti parasta yhteyttä</string>
- <string name="gateway_selection_automatic">Automaattinen</string>
- <string name="reconnecting">Yhdistetään uudelleen.</string>
- <string name="tor_starting">Käynnistetään siltoja sensuurin kiertämiseksi.</string>
- <string name="tor_stopping">Siltoja pysäytetään</string>
- <string name="tor_started">Siltojen käyttäminen sensuurin kiertämiseksi</string>
- <string name="log_conn_done_pt">Yhdistetty kytkettävään kuljetukseen</string>
- <string name="log_conn_pt">Yhdistetään liitettävään kuljetukseen</string>
- <string name="log_conn_done">Kytketty releeseen</string>
- <string name="log_handshake">Yhteyden neuvottelu releen kanssa</string>
- <string name="log_handshake_done">Yhteys releen kanssa neuvoteltu</string>
- <string name="log_onehop_create">Muodostetaan suojattu yhteys hakemistoon</string>
- <string name="log_requesting_status">Pyydetään konsensusta verkon tilasta</string>
- <string name="log_loading_status">Ladataan verkon tilakonsensusta</string>
- <string name="log_loading_keys">Ladataan juurivarmenteita</string>
- <string name="log_requesting_descriptors">Pyydetään relekuvauksia</string>
- <string name="log_loading_descriptors">Ladataan releen kuvauksia</string>
- <string name="log_enough_dirinfo">Ladattu tarpeeksi hakemistotietoja piirien rakentamiseen</string>
- <string name="log_ap_handshake_done">Neuvottelut päättyivät releellä piirien rakentamiseksi</string>
- <string name="log_circuit_create">Muodostetaan Tor-kiertotie</string>
- <string name="log_done">Käynnissä</string>
- <string name="channel_name_tor_service">%s siltapalvelu</string>
- <string name="channel_description_tor_service">Ilmoittaa siltojen käytöstä määritettäessä %s.</string>
- <string name="error_tor_timeout">Siltojen käynnistys epäonnistui. Haluatko yrittää uudelleen vai jatkaa suojatulla ei-hämärällä yhteydellä %s:n määrittämistä?</string>
- <string name="retry_unobfuscated">Yritä uudelleen ilman hämärtymistä</string>
- <string name="hide">Piilota</string>
- <string name="error_network_connection">%s :lla ei ole internetyhteyttä. Tarkista Wi-Fi- ja mobiilidata-asetukset.</string>
- <string name="censorship_circumvention">Sensuurin kiertäminen</string>
- <string name="use_snowflake">Käytä Snowflakea</string>
- <string name="snowflake_description">Suojaa määritysprosessia sensuurilta.</string>
- <string name="vpn_settings">VPN-asetukset</string>
- <string name="prefer_udp">Käytä UDP:tä, jos mahdollista</string>
- <string name="prefer_udp_subtitle">UDP voi olla nopeampi ja parempi suoratoistoon, mutta se ei toimi kaikissa verkoissa.</string>
- <string name="disabled_while_bridges_on">Pois käytöstä siltoja käytettäessä.</string>
- <string name="hint_bridges">Vain siltoja tukevat sijainnit ovat tällä hetkellä valittavissa.</string>
- <string name="option_disable_bridges">Poista sillat käytöstä</string>
- <string name="eip_state_insecure">Yhteys epäturvallinen</string>
- <string name="connection_not_connected">Saatat vuotaa tietoja Internet-palveluntarjoajaltasi tai paikallisverkkoon.</string>
- <string name="eip_state_no_network">Sinulla ei ole toimivaa Internet-yhteyttä. Kun saat sen takaisin, sinut yhdistetään automaattisesti</string>
- <string name="eip_state_blocking">%1$s estää kaiken Internet-liikenteen.</string>
- <string name="disabled_while_udp_on">Ei käytössä, kun UDP on päällä.</string>
- <string name="advanced_settings">Lisäasetukset</string>
- <string name="cancel_connection">Katkaise yhteys</string>
- <string name="welcome">Tervetuloa!</string>
- <string name="next">Seuraava</string>
- <string name="qr_scanner_prompt">Lue QR-koodi</string>
- <string name="details">Lisätiedot</string>
- <string name="tor_status">Tor-tila</string>
- <string name="select_language">Valitse kieli</string>
- <string name="validation_status_success">Hyvä</string>
- <string name="scan_qr_code">Lue QR-koodi</string>
+ <string name="retry">Toista</string>
+ <string name="repository_url_text">Lähdekoodi saatavilla https://0xacab.org/leap/bitmask_android:ssa</string>
+ <string name="leap_tracker">Ongelmaseuranta saatavilla https://0xacab.org/leap/bitmask_android/issues:sta</string>
+ <string name="translation_project_text">Käännökset ovat tervetulleita ja arvostettuja. Katso Transifex-hankkeemme https://www.transifex.com/projects/p/bitmask/:ssa</string>
+ <string name="switch_provider_menu_option">Vaihda palvelutarjoajaa</string>
+ <string name="info">tiedot</string>
+ <string name="show_connection_details">Näytä lisätiedot yhteydestä</string>
+ <string name="connection_details">Yhteyden yksityiskohdat</string>
+ <string name="routes_info">Reitittää: %s</string>
+ <string name="routes_info6">IPv6-reitit: %s</string>
+ <string name="error_empty_username">Käyttäjätunnus ei saa olla tyhjä.</string>
+ <string name="cert_from_keystore">Hanki varmenne \'%s\' avainsäilöstä</string>
+ <string name="provider_label">Palvelutarjoaja:</string>
+ <string name="provider_label_none">Yhtään palvelutarjoajaa ei ole asetettu</string>
+ <string name="status_unknown">Tila tuntematon.</string>
+ <string name="eip_service_label">Salattu VPN:n Internet-yhteys</string>
+ <string name="configuration_wizard_title">Valitse palvelutarjoaja</string>
+ <string name="add_provider">Lisää uusi palvelutarjoaja</string>
+ <string name="introduce_new_provider">Lisää uusi palvelutarjoaja</string>
+ <string name="save">Tallenna</string>
+ <string name="new_provider_uri">Verkkotunnusnimi</string>
+ <string name="valid_url_entered">URL on kelvollinen</string>
+ <string name="not_valid_url_entered">Väärin muotoiltu URL</string>
+ <string name="provider_details_title">Palvelutarjoajan lisätiedot</string>
+ <string name="use_anonymously_button">Käytä anonyymisti</string>
+ <string name="username_hint">käyttäjätunnus</string>
+ <string name="username_ask">Kirjoita käyttäjätunnuksesi</string>
+ <string name="password_ask">Kirjoita salasana</string>
+ <string name="password_hint">salasana</string>
+ <string name="password_match">Salasanat täsmäävät</string>
+ <string name="password_mismatch">Salasanat eivät täsmää</string>
+ <string name="user_message">Käyttäjäviesti</string>
+ <string name="about_fragment_title">Tietoja</string>
+ <string name="exclude_apps_fragment_title">Sulje sovellukset pois VPN:stä</string>
+ <string name="error_srp_math_error_user_message">Yritä uudelleen: palvelimen matemaattinen virhe</string>
+ <string name="error_bad_user_password_user_message">Väärä käyttäjänimi tai salasana</string>
+ <string name="error_not_valid_password_user_message">Sen on oltava vähintään 8 merkkiä pitkä</string>
+ <string name="error_client_http_user_message">Yritä uudelleen: Asiakasohjelman HTTP-virhe</string>
+ <string name="error_io_exception_user_message">Yritä uudelleen: Siirräntävirhe</string>
+ <string name="error_json_exception_user_message">Yritä uudelleen: Väärä vastaus palvelimelta</string>
+ <string name="error_no_such_algorithm_exception_user_message">Salausalgoritmia ei löydy. Päivitä Android!</string>
+ <string name="signup_or_login_button">Rekisteröidy Kirjaudu sisään</string>
+ <string name="login_button">Kirjaudu</string>
+ <string name="login_to_profile">Kirjaudu profiiliin</string>
+ <string name="logout_button">Kirjaudu ulos</string>
+ <string name="signup_button">Kirjaudu</string>
+ <string name="create_profile">Luo profiili</string>
+ <string name="setup_provider">Määritä palveluntarjoaja</string>
+ <string name="setup_error_title">Asetusvirhe</string>
+ <string name="setup_error_configure_button">Aseta</string>
+ <string name="setup_error_close_button">Poistu</string>
+ <string name="setup_error_text">Virhe määritettäessä%svalitsemasi palveluntarjoajan kanssa.\n\nVoit määrittää asetukset uudelleen tai poistua ja määrittää palveluntarjoajan seuraavan käynnistyksen yhteydessä.</string>
+ <string name="setup_error_text_custom"> %s:n määrittämisessä tapahtui virhe.\n\nVoit määrittää uudelleen tai poistua</string>
+ <string name="server_unreachable_message">Palvelimeen ei saada yhteyttä, yritä uudelleen.</string>
+ <string name="error.security.pinnedcertificate">Turvallisuusvirhe, päivitä sovellus tai valitse toinen palveluntarjoaja.</string>
+ <string name="malformed_url">Se ei näytä olevan %s palveluntarjoaja.</string>
+ <string name="certificate_error">Tämä ei ole luotetttu %s palveluntarjoaja.</string>
+ <string name="service_is_down_error">Palvelu on poissa.</string>
+ <string name="configuring_provider">Asetetaan palvelutarjoaja</string>
+ <string name="incorrectly_downloaded_certificate_message">Anonyymia varmennettasi ei ladattu</string>
+ <string name="downloading_certificate_message">Ladataan VPN-varmennetta</string>
+ <string name="updating_certificate_message">Päivitetään VPN-varmennetta</string>
+ <string name="login.riseup.warning">Riseup-käyttäjien on luotava erillinen tili VPN-palvelun käyttöä varten</string>
+ <string name="succesful_authentication_message">Todennettu</string>
+ <string name="authentication_failed_message">Tunnistautuminen epäonnistui</string>
+ <string name="registration_failed_message">Rekisteröityminen epäonnistui</string>
+ <string name="eip_status_start_pending">Alustetaan yhteys</string>
+ <string name="eip_cancel_connect_title">Perutaanko yhteys?</string>
+ <string name="eip_cancel_connect_text">Yhteysyritys on käynnissä. Haluatko perua sen?</string>
+ <string name="eip.warning.browser_inconsistency">Kytketäänkö pois VPN-yhteys? Kun VPN on pois päältä, saatat vuotaa henkilökohtaisia tietoja Internet-palveluntarjoajaasi tai paikallisverkkoon.</string>
+ <string name="eip_state_not_connected">Ei käynnissä! Epävarvullinen yhteys.</string>
+ <string name="eip_state_connected">Yhteys suojattu</string>
+ <string name="provider_problem">Vaikuttaa siltä, että palveluntarjoajan kanssa on ongelma.</string>
+ <string name="try_another_provider">Kokeile toista palveluntarjoajaa tai ota yhteyttä omaasi.</string>
+ <string name="default_username">Anonyymi</string>
+ <string name="logging_in">Kirjaudutaan</string>
+ <string name="signing_up">Rekisteröiminen</string>
+ <string name="vpn.button.turn.on">Kytke päälle</string>
+ <string name="vpn.button.turn.off">Kytke pois päältä</string>
+ <string name="vpn_button_turn_off_blocking">Lopeta estäminen</string>
+ <string name="vpn_securely_routed">Liikenne ohjataan turvallisesti seuraavien kautta:</string>
+ <string name="vpn_securely_routed_no_internet">Internet-yhteyttä ei havaittu, kun se palaa, reititämme liikenteen turvallisesti seuraavien kautta:</string>
+ <string name="log_fragment_title">Loki</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Avaa navigointilaatikko</string>
+ <string name="navigation_drawer_close">Sulje navigointilaatikko</string>
+ <string name="action_example">Esimerkki toimia</string>
+ <string name="action_settings">Asetukset</string>
+ <string name="void_vpn_establish">%s estää kaiken lähtevän Internet-liikenteen.</string>
+ <string name="void_vpn_error_establish">Kaiken Internet-liikenteen estäminen epäonnistui.</string>
+ <string name="void_vpn_stopped">Kaiken lähtevän Internet-liikenteen estäminen lopetettiin.</string>
+ <string name="void_vpn_title">Liikenteen estäminen</string>
+ <string name="update_provider_details">Päivitä palveluntarjoajan yksityiskohdat</string>
+ <string name="update_certificate">Päivitä varmenne</string>
+ <string name="warning_eip_json_corrupted">Palveluntarjoajan kokoonpanon päivittäminen epäonnistui.</string>
+ <string name="eip_json_corrupted_user_message">Palveluntarjoajan kokoonpanon päivittäminen epäonnistui. Kirjaudu sisään ja yritä uudelleen.</string>
+ <string name="warning_client_parsing_error_gateways">Palveluntarjoajan yhdyskäytäviä ei voitu tunnistaa. Ne voivat olla määritetty väärin.</string>
+ <string name="warning_corrupted_provider_details">Tallennetut palveluntarjoajan yksityiskohdat ovat vioittuneet. Voit joko päivittää %s (suositus) tai päivittää palveluntarjoajan tiedot kaupallisen CA-varmenteen avulla.</string>
+ <string name="warning_corrupted_provider_cert">Tallennettu palveluntarjoajan varmenne on virheellinen. Voit joko päivittää %s (suositus) tai päivittää toimittajan varmenteen kaupallisen CA-varmenteen avulla.</string>
+ <string name="warning_expired_provider_cert">Tallennettu palveluntarjoajan varmenne on vanhentunut. Voit joko päivittää %s (suositus) tai päivittää toimittajan varmenteen kaupallisen CA-varmenteen avulla.</string>
+ <string name="downloading_vpn_certificate_failed">VPN-varmenteen lataaminen epäonnistui. Yritä uudelleen tai valitse toinen palveluntarjoaja.</string>
+ <string name="vpn_certificate_is_invalid">VPN-varmenne on virheellinen. Yritä ladata uusi.</string>
+ <string name="vpn_certificate_user_message">VPN-varmenne on virheellinen. Kirjaudu sisään ladataksesi uuden.</string>
+ <string name="save_battery">Säästä akkua</string>
+ <string name="subtitle_save_battery">Pois käytöstä, kun VPN Hotspot on päällä</string>
+ <string name="save_battery_message">Taustadatayhteydet horrostuvat kun puhelimesi on passiivinen.</string>
+ <string name="always_on_vpn">Aina-päällä VPN</string>
+ <string name="subtitle_always_on_vpn">Avaa Android-järjestelmäasetukset</string>
+ <string name="tethering">VPN Hotspot</string>
+ <string name="ipv6Firewall">Estä IPv6</string>
+ <string name="require_root">Vaatii rootin oikeudet</string>
+ <string name="show_experimental">Näytä kokeelliset ominaisuudet</string>
+ <string name="hide_experimental">Piilota kokeelliset ominaisuudet</string>
+ <string name="experimental_features">Kokeelliset ominaisuudet</string>
+ <string name="tethering_enabled_message">Varmista, että olet ensin ottanut jakamisen käyttöön kohdassa <![CDATA[<b>järjestelmäasetukset</b>]]>.</string>
+ <string name="tethering_message">Jaa VPN muiden laitteiden kanssa kautta:</string>
+ <string name="tethering_wifi">Wi-Fi hotspot</string>
+ <string name="tethering_usb">USB-jako</string>
+ <string name="tethering_bluetooth">Bluetooth-jako</string>
+ <string name="do_not_show_again">Älä näytä uudelleen</string>
+ <string name="always_on_vpn_user_message">Aina-päällä VPN:n käyttöön ottamiseksi, napsauta Android VPN -asetuksissa konfigurointikuvaketta [img src] ja kytke kytkin päälle.</string>
+ <string name="always_on_blocking_vpn_user_message">Yksityisyytesi optimaalisen suojaamiseksi sinun tulee aktivoida myös vaihtoehto \"Estä yhteydet ilman VPN:ää\".</string>
+ <string name="donate_title">Lahjoita</string>
+ <string name="donate_default_message">Lahjoita jo tänään, jos arvostat turvallista viestintää, joka on helppoa sekä loppukäyttäjälle että palveluntarjoajalle.</string>
+ <string name="donate_message">LEAP riippuu lahjoituksista ja apurahoista. Lahjoita jo tänään, jos arvostat turvallista viestintää, joka on helppoa sekä loppukäyttäjälle että palveluntarjoajalle.</string>
+ <string name="donate_button_remind_later">Muistuta minua myöhemmin</string>
+ <string name="donate_button_donate">Lahjoita</string>
+ <string name="obfuscated_connection">Käyttää hämärää yhteyttä.</string>
+ <string name="obfuscated_connection_try">Kokeillaan hämärää yhteyttä.</string>
+ <string name="nav_drawer_obfuscated_connection">Käytä siltoja</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Kierrä VPN-suodatus</string>
+ <string name="warning_exclude_apps_message">Ole varovainen sulkemasta sovelluksia pois VPN:stä. Tämä paljastaa henkilöllisyytesi ja vaarantaa turvallisuutesi.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d suojaamaton sovellus</item>
+ <item quantity="other">%d suojaamatonta sovellusta</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%sei pystynyt yhdistämään. Voi olla, että VPN-yhteydet estyvät. Haluatko yrittää muodostaa yhteyden käyttämällä hämäriä yhteyksiä?</string>
+ <string name="warning_no_more_gateways_no_pt">%s ei pystynyt yhdistämään. Haluatko yrittää uudelleen?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s ei voinut muodostaa yhteyttä käyttämällä hämäriä VPN-yhteyksiä. Haluatko yrittää muodostaa yhteyden tavallisella VPN:lla?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s ei voi muodostaa yhteyttä %2$s:een. Haluatko yrittää muodostaa yhteyden automaattisesti parhaaseen sijaintiin?</string>
+ <string name="warning_option_try_best">Kokeile parasta sijaintia</string>
+ <string name="warning_option_try_pt">Kokeile hämärää yhteyttä</string>
+ <string name="warning_option_try_ovpn">Kokeile tavallista yhteyttä</string>
+ <string name="vpn_error_establish">Android ei pystynyt vahvistamaan VPN-palvelua.</string>
+ <string name="root_permission_error">%s ei voi suorittaa ominaisuuksia, kuten VPN Hotspot tai IPv6-palomuuri ilman rootin oikeuksia.</string>
+ <string name="qs_enable_vpn">Käynnistä %s</string>
+ <string name="version_update_found">Tap here to start the download.</string>
+ <string name="version_update_title">Uusi versio %s :ta on löydetty.</string>
+ <string name="version_update_apk_description">Ladataan uutta versiota %s :ta</string>
+ <string name="version_update_download_title">Uusi versio %s :ta on ladattu.</string>
+ <string name="version_update_download_description">Asenna päivitys napauttamalla tätä</string>
+ <string name="version_update_error_pgp_verification">PGP-vahvistusvirhe. Ohitetaan lataus.</string>
+ <string name="version_update_error">Päivitys epäonnistui.</string>
+ <string name="version_update_error_permissions">Ei oikeuksia sovellusten asentamiseen</string>
+ <string name="gateway_selection_title">Valitse sijainti</string>
+ <string name="gateway_selection_recommended_location">Suositeltu sijainti</string>
+ <string name="gateway_selection_recommended">Suositeltu</string>
+ <string name="gateway_selection_manually">Valitse manuaalisesti</string>
+ <string name="gateway_selection_automatic_location">Käytä automaattisesti parasta yhteyttä</string>
+ <string name="gateway_selection_automatic">Automaattinen</string>
+ <string name="reconnecting">Yhdistetään uudelleen.</string>
+ <string name="tor_starting">Käynnistetään siltoja sensuurin kiertämiseksi.</string>
+ <string name="tor_stopping">Siltoja pysäytetään</string>
+ <string name="tor_started">Siltojen käyttäminen sensuurin kiertämiseksi</string>
+ <string name="log_conn_done_pt">Yhdistetty kytkettävään kuljetukseen</string>
+ <string name="log_conn_pt">Yhdistetään liitettävään kuljetukseen</string>
+ <string name="log_conn_done">Kytketty releeseen</string>
+ <string name="log_handshake">Yhteyden neuvottelu releen kanssa</string>
+ <string name="log_handshake_done">Yhteys releen kanssa neuvoteltu</string>
+ <string name="log_onehop_create">Muodostetaan suojattu yhteys hakemistoon</string>
+ <string name="log_requesting_status">Pyydetään konsensusta verkon tilasta</string>
+ <string name="log_loading_status">Ladataan verkon tilakonsensusta</string>
+ <string name="log_loading_keys">Ladataan juurivarmenteita</string>
+ <string name="log_requesting_descriptors">Pyydetään relekuvauksia</string>
+ <string name="log_loading_descriptors">Ladataan releen kuvauksia</string>
+ <string name="log_enough_dirinfo">Ladattu tarpeeksi hakemistotietoja piirien rakentamiseen</string>
+ <string name="log_ap_handshake_done">Neuvottelut päättyivät releellä piirien rakentamiseksi</string>
+ <string name="log_circuit_create">Muodostetaan Tor-kiertotie</string>
+ <string name="log_done">Käynnissä</string>
+ <string name="channel_name_tor_service">%s siltapalvelu</string>
+ <string name="channel_description_tor_service">Ilmoittaa siltojen käytöstä määritettäessä %s.</string>
+ <string name="error_tor_timeout">Siltojen käynnistys epäonnistui. Haluatko yrittää uudelleen vai jatkaa suojatulla ei-hämärällä yhteydellä %s:n määrittämistä?</string>
+ <string name="retry_unobfuscated">Yritä uudelleen ilman hämärtymistä</string>
+ <string name="hide">Piilota</string>
+ <string name="error_network_connection">%s :lla ei ole internetyhteyttä. Tarkista Wi-Fi- ja mobiilidata-asetukset.</string>
+ <string name="censorship_circumvention">Sensuurin kiertäminen</string>
+ <string name="use_snowflake">Käytä Snowflakea</string>
+ <string name="snowflake_description">Suojaa määritysprosessia sensuurilta.</string>
+ <string name="vpn_settings">VPN-asetukset</string>
+ <string name="prefer_udp">Käytä UDP:tä, jos mahdollista</string>
+ <string name="prefer_udp_subtitle">UDP voi olla nopeampi ja parempi suoratoistoon, mutta se ei toimi kaikissa verkoissa.</string>
+ <string name="disabled_while_bridges_on">Pois käytöstä siltoja käytettäessä.</string>
+ <string name="hint_bridges">Vain siltoja tukevat sijainnit ovat tällä hetkellä valittavissa.</string>
+ <string name="option_disable_bridges">Poista sillat käytöstä</string>
+ <string name="eip_state_insecure">Yhteys epäturvallinen</string>
+ <string name="connection_not_connected">Saatat vuotaa tietoja Internet-palveluntarjoajaltasi tai paikallisverkkoon.</string>
+ <string name="eip_state_no_network">Sinulla ei ole toimivaa Internet-yhteyttä. Kun saat sen takaisin, sinut yhdistetään automaattisesti</string>
+ <string name="eip_state_blocking">%1$s estää kaiken Internet-liikenteen.</string>
+ <string name="disabled_while_udp_on">Ei käytössä, kun UDP on päällä.</string>
+ <string name="advanced_settings">Lisäasetukset</string>
+ <string name="cancel_connection">Katkaise yhteys</string>
+ <string name="welcome">Tervetuloa!</string>
+ <string name="next">Seuraava</string>
+ <string name="qr_scanner_prompt">Lue QR-koodi</string>
+ <string name="details">Lisätiedot</string>
+ <string name="tor_status">Tor-tila</string>
+ <string name="select_language">Valitse kieli</string>
+ <string name="validation_status_success">Hyvä</string>
+ <string name="scan_qr_code">Lue QR-koodi</string>
</resources>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index e769bd76..b2501a0a 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -1,259 +1,251 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Réessayer</string>
- <string name="repository_url_text">Le code source se trouve sur https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Le système de suivi des problèmes se trouve sur https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Les traductions sont les bienvenues et nous les valorisons. Consulter notre projet Transifex sur https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Changer de fournisseur</string>
- <string name="info">renseignements</string>
- <string name="show_connection_details">Afficher les détails de connexion</string>
- <string name="connection_details">Détails de la connexion</string>
- <string name="routes_info">Routes : %s</string>
- <string name="routes_info6">Routes IPv6 : %s</string>
- <string name="error_empty_username">Le nom d’utilisateur ne doit pas être vide.</string>
- <string name="cert_from_keystore">Le certificat \'%s\' a été obtenu du magasin de clés</string>
- <string name="provider_label">Fournisseur :</string>
- <string name="provider_label_none">Aucun fournisseur n’est configuré</string>
- <string name="status_unknown">État inconnu.</string>
- <string name="eip_service_label">Accès à Internet par RPV chiffré</string>
- <string name="configuration_wizard_title">Choisir un fournisseur de services</string>
- <string name="add_provider">Ajouter un nouveau fournisseur</string>
- <string name="introduce_new_provider">Ajouter un nouveau fournisseur de services</string>
- <string name="save">Enregistrer</string>
- <string name="new_provider_uri">Nom de domaine</string>
- <string name="valid_url_entered">Cette URL est valide</string>
- <string name="not_valid_url_entered">URL malformée</string>
- <string name="provider_details_title">Renseignements sur le fournisseur</string>
- <string name="use_anonymously_button">Utiliser anonymement</string>
- <string name="username_hint">nom d’utilisateur</string>
- <string name="username_ask">Veuillez saisir votre nom d’utilisateur</string>
- <string name="password_ask">Veuillez saisir votre mot de passe</string>
- <string name="password_hint">mot de passe</string>
- <string name="password_match">Les mots de passe correspondent</string>
- <string name="password_mismatch">Les mots de passe ne correspondent pas</string>
- <string name="user_message">Message utilisateur</string>
- <string name="about_fragment_title">À propos</string>
- <string name="exclude_apps_fragment_title">Exclure des applis du RPV</string>
- <string name="error_srp_math_error_user_message">Réessayez : erreur mathématique du serveur</string>
- <string name="error_bad_user_password_user_message">Nom d’utilisateur ou mot de passe erroné</string>
- <string name="error_not_valid_password_user_message">ll doit comporter au moins 8 caractères</string>
- <string name="error_client_http_user_message">Réessayez : erreur HTTP du client</string>
- <string name="error_io_exception_user_message">Réessayez : erreur E/S</string>
- <string name="error_json_exception_user_message">Réessayez : mauvaise réponse du serveur</string>
- <string name="error_no_such_algorithm_exception_user_message">L’algorithme de chiffrement est introuvable. Veuillez mettre votre Android à niveau.</string>
- <string name="signup_or_login_button">Inscription/Connexion</string>
- <string name="login_button">Connexion</string>
- <string name="login_to_profile">Connexion au profil</string>
- <string name="logout_button">Déconnexion</string>
- <string name="signup_button">Inscription</string>
- <string name="create_profile">Créer un profil</string>
- <string name="setup_provider">Configurer un fournisseur</string>
- <string name="setup_error_title">Erreur de configuration</string>
- <string name="setup_error_configure_button">Configurer</string>
- <string name="setup_error_close_button">Quitter</string>
- <string name="setup_error_text">Une erreur est survenue lors de la configuration de %s avec le fournisseur de votre choix.\n\nVous pouvez soit reconfigurer, soit quitter et configurer un fournisseur lors du prochain lancement.</string>
- <string name="setup_error_text_custom">Une erreur est survenue en configurant %s.\n\nVous pouvez soit reconfigurer soit sortir.</string>
- <string name="server_unreachable_message">Le serveur est inaccessible, veuillez réessayer.</string>
- <string name="error.security.pinnedcertificate">Erreur de sécurité. Mettre l’appli à niveau ou choisir un autre fournisseur.</string>
- <string name="malformed_url">Cela ne semble pas être un fournisseur %s.</string>
- <string name="certificate_error">Ce n’est pas un fournisseur %s de confiance.</string>
- <string name="service_is_down_error">Le service est interrompu.</string>
- <string name="configuring_provider">Configuration du fournisseur</string>
- <string name="incorrectly_downloaded_certificate_message">Votre certificat anonyme n’a pas été téléchargé</string>
- <string name="downloading_certificate_message">Téléchargement du certificat RPV</string>
- <string name="updating_certificate_message">Mise à jour du certificat RPV</string>
- <string name="login.riseup.warning">Les utilisateurs de Riseup devront créer un compte séparé pour utiliser le service RPV</string>
- <string name="succesful_authentication_message">Authentifié</string>
- <string name="authentication_failed_message">Échec d’authentification</string>
- <string name="registration_failed_message">L’inscription a échoué</string>
- <string name="eip_status_start_pending">Initialisation de la connexion</string>
- <string name="eip_status_connecting">Connecter au RPV</string>
- <string name="eip_status_unsecured">Connexion non sécurisée</string>
- <string name="eip_status_secured">Connexion sécurisée</string>
- <string name="eip_cancel_connect_title">Annuler la connexion ?</string>
- <string name="eip_cancel_connect_text">Une tentative de connexion est en cours. Voulez-vous l’annuler ?</string>
- <string name="eip.warning.browser_inconsistency">Désactiver la connexion RPV ? Si votre RPV est désactivé, vous pourriez divulguer des renseignements personnels à votre fournisseur d’accès à Internet ou à votre réseau local.</string>
- <string name="eip_state_not_connected">Ne s’exécute pas ! La connexion n’est pas sécurisée !</string>
- <string name="eip_state_connected">La connexion est sécurisée</string>
- <string name="provider_problem">Il semble que le fournisseur pose un problème.</string>
- <string name="try_another_provider">Veuillez essayer un autre fournisseur ou nous contacter.</string>
- <string name="default_username">Anonyme</string>
- <string name="logging_in">Connexion</string>
- <string name="signing_up">Inscription</string>
- <string name="vpn.button.turn.on">Activer</string>
- <string name="vpn.button.turn.off">Désactiver</string>
- <string name="vpn_button_turn_off_blocking">Arrêter le blocage</string>
- <string name="vpn_securely_routed">Votre trafic est acheminé en toute sécurité par :</string>
- <string name="vpn_securely_routed_no_internet">Aucune connexion à Internet n’a été détectée. Une fois que vous serez connecté, nous acheminerons votre trafic de façon sécuritaire par :</string>
- <string name="log_fragment_title">Journal</string>
- <string name="vpn_fragment_title">RPV</string>
- <string name="navigation_drawer_open">Ouvrir le tiroir de navigation</string>
- <string name="navigation_drawer_close">Fermer le tiroir de navigation</string>
- <string name="action_example">Exemple d’action</string>
- <string name="action_settings">Paramètres</string>
- <string name="void_vpn_establish">%s bloque tout le trafic Internet sortant.</string>
- <string name="void_vpn_error_establish">Échec de blocage de tout le trafic d’Internet</string>
- <string name="void_vpn_stopped">Le trafic Internet sortant n’est plus bloqué.</string>
- <string name="void_vpn_title">Blocage du trafic</string>
- <string name="update_provider_details">Mettre les renseignements de fournisseur à jour</string>
- <string name="update_certificate">Mettre le certificat à jour</string>
- <string name="warning_eip_json_corrupted">Échec de mise à jour de la configuration du fournisseur.</string>
- <string name="eip_json_corrupted_user_message">Échec de mise à jour de la configuration du fournisseur. Veuillez vous connecter pour réessayer.</string>
- <string name="warning_client_parsing_error_gateways">Les passerelles du fournisseur n’ont pas été reconnues. Elles ont peut-être été configurées incorrectement.</string>
- <string name="warning_corrupted_provider_details">Les renseignements de fournisseur enregistrés sont corrompus. Vous pouvez soit mettre %s à jour (recommandé), soit mettre les renseignements de fournisseur à jour en utilisant un certificat CA commercial.</string>
- <string name="warning_corrupted_provider_cert">Le certificat de fournisseur enregistré est invalide. Vous pouvez soit mettre %s à jour (recommandé), soit mettre le certificat de fournisseur à jour en utilisant un certificat CA commercial.</string>
- <string name="warning_expired_provider_cert">Le certificat de fournisseur enregistré est expiré. Vous pouvez soit mettre %s à jour (recommandé), soit mettre le certificat de fournisseur à jour en utilisant un certificat CA commercial.</string>
- <string name="downloading_vpn_certificate_failed">Échec de téléchargement du certificat du RPV. Réessayez ou choisissez un autre fournisseur.</string>
- <string name="vpn_certificate_is_invalid">Le certificat du RPV est invalide. Essayez d’en télécharger un nouveau.</string>
- <string name="vpn_certificate_user_message">Le certificat du RPV est invalide. Veuillez vous connecter pour en télécharger un nouveau.</string>
- <string name="save_battery">Économiser la pile</string>
- <string name="subtitle_save_battery">Désactivé pendant que le point d’accès RPV est activé</string>
- <string name="save_battery_message">Les connexions de données d’arrière-plan seront mises en veille quand votre téléphone sera inactif.</string>
- <string name="always_on_vpn">RPV permanent</string>
- <string name="subtitle_always_on_vpn">Ouvrir les paramètres système d’Android</string>
- <string name="tethering">Point d’accès RPV</string>
- <string name="ipv6Firewall">Bloquer IPv6</string>
- <string name="require_root">Exige les autorisations superutilisateur (racine)</string>
- <string name="show_experimental">Afficher les fonctions expérimentales</string>
- <string name="hide_experimental">Cacher les fonctions expérimentales</string>
- <string name="experimental_features">Fonctions expérimentales</string>
- <string name="tethering_enabled_message">Veuillez d’abord vous assurer d’activer la fonction modem dans les <![CDATA[<b>paramètres système</b>]]>.</string>
- <string name="tethering_message">Partager votre RPV avec d’autres appareils par :</string>
- <string name="tethering_wifi">Point d’accès Wi-Fi</string>
- <string name="tethering_usb">fonction modem USB</string>
- <string name="tethering_bluetooth">fonction modem Bluetooth</string>
- <string name="do_not_show_again">Ne plus afficher</string>
- <string name="always_on_vpn_user_message">Pour activer l’option « RPV permanent » ou « VPN permanent » des paramètres RPV d’Android, cliquez sur l’icône de configuration [img src] et basculez l’interrupteur.</string>
- <string name="always_on_blocking_vpn_user_message">Afin de protéger de façon optimale votre vie privée et vos données personnelles, vous devriez activer l’option « Bloquer les connexions sans RPV ».</string>
- <string name="donate_title">Faire un don</string>
- <string name="donate_default_message">Veuillez faire un don aujourd’hui si des communications sécurisées faciles à mettre en place pour l’utilisateur final et le fournisseur de services sont importantes à vous yeux.</string>
- <string name="donate_message">LEAP dépend de dons et de subventions. Veuillez faire un don aujourd’hui si des communications sécurisées faciles à mettre en place pour l’utilisateur final et le fournisseur de services sont importantes à vous yeux.</string>
- <string name="donate_button_remind_later">Me rappeler plus tard</string>
- <string name="donate_button_donate">Faire un don</string>
- <string name="obfuscated_connection">Une connexion brouillée est utilisée.</string>
- <string name="obfuscated_connection_try">Tentative de connexion brouillée.</string>
- <string name="nav_drawer_obfuscated_connection">Utiliser des ponts</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Contourner le filtrage du RPV</string>
- <string name="warning_exclude_apps_message">Soyez prudent en excluant des applis du RPV. Cela divulguera votre identité et compromettra votre sécurité.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d appli non protégée</item>
- <item quantity="many">%d applis non protégées</item>
- <item quantity="other">%d applis non protégées</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s n’a pas pu se connecter. Les connexions RPV sont peut-être bloquées. Voulez-vous tenter de vous connecter en essayant des connexions brouillées ?</string>
- <string name="warning_no_more_gateways_no_pt">%s n’a pas pu se connecter. Voulez-vous réessayer ?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s n’a pas pu se connecter en utilisant des connexions RPV brouillées. Voulez-vous tenter de vous connecter en essayant un RPV normal ?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s n’a pas réussi à se connecter à %2$s. Voulez-vous essayer de vous connecter automatiquement au meilleur emplacement ?</string>
- <string name="warning_option_try_best">Essayer le meilleur emplacement</string>
- <string name="warning_option_try_pt">Essayer une connexion brouillée.</string>
- <string name="warning_option_try_ovpn">Essayer une connexion normal.</string>
- <string name="vpn_error_establish">Android n’a pas réussi à établir le service RPV.</string>
- <string name="root_permission_error">%s ne peut pas exécuter des fonctions telles que le point d’accès RPV ou le pare-feu IPv6 sans autorisations superutilisateur (racine).</string>
- <string name="qs_enable_vpn">Démarrer %s</string>
- <string name="version_update_found">Toucher ici pour lancer le téléchargement.</string>
- <string name="version_update_title">Une nouvelle version de %s a été trouvée.</string>
- <string name="version_update_apk_description">Téléchargement d’une nouvelle version de %s</string>
- <string name="version_update_download_title">Une nouvelle version de %s a été téléchargée.</string>
- <string name="version_update_download_description">Toucher ici pour installer la mise à jour.</string>
- <string name="version_update_error_pgp_verification">Erreur de vérification PGP. Le téléchargement est ignoré.</string>
- <string name="version_update_error">Échec de mise à jour.</string>
- <string name="version_update_error_permissions">Manque de droits pour installer l’appli.</string>
- <string name="gateway_selection_title">Sélectionner l’emplacement</string>
- <string name="gateway_selection_recommended_location">Emplacement recommandé</string>
- <string name="gateway_selection_recommended">Recommandé</string>
- <string name="gateway_selection_manually">Sélectionner manuellement</string>
- <string name="gateway_selection_automatic_location">Utiliser automatiquement la meilleure connexion</string>
- <string name="gateway_selection_automatic">Automatique</string>
- <string name="reconnecting">Reconnexion…</string>
- <string name="tor_starting">Démarrage des ponts pour le contournement de la censure…</string>
- <string name="tor_stopping">Arrêt des ponts</string>
- <string name="tor_started">Utilisation de ponts pour le contournement de la censure</string>
- <string name="log_conn_done_pt">Connecté au transport enfichable</string>
- <string name="log_conn_pt">Connexion au transport enfichable</string>
- <string name="log_conn_done">Connecté au relais</string>
- <string name="log_handshake">Négociation de la connexion avec relais</string>
- <string name="log_handshake_done">La connexion avec le relais a été négociée</string>
- <string name="log_onehop_create">Mise en place d’une connexion chiffrée vers l’annuaire</string>
- <string name="log_requesting_status">Demande du consensus de l’état du réseau</string>
- <string name="log_loading_status">Chargement du consensus de l’état du réseau</string>
- <string name="log_loading_keys">Chargement des certificats d’autorité</string>
- <string name="log_requesting_descriptors">Demande des descripteurs de relais</string>
- <string name="log_loading_descriptors">Chargement des descripteurs de relais</string>
- <string name="log_enough_dirinfo">Suffisamment de renseignements d’annuaire ont été chargés pour établir les circuits</string>
- <string name="log_ap_handshake_done">Négociation terminée avec un relais afin de construire les circuits</string>
- <string name="log_circuit_create">Mise en place d’un circuit Tor</string>
- <string name="log_done">En fonction</string>
- <string name="channel_name_tor_service">Service de ponts %s</string>
- <string name="channel_description_tor_service">Renseigne sur l’utilisation des ponts lors de la configuration %s.</string>
- <string name="error_tor_timeout">Échec de démarrage des ponts. Voulez-vous réessayer ou poursuivre avec une connexion sécurisée non brouillée pour configurer %s ?</string>
- <string name="retry_unobfuscated">Réessayer sans brouillage</string>
- <string name="hide">Cacher</string>
- <string name="error_network_connection">%s n’as pas de connexion Internet. Veuillez vérifier vos paramètres Wi-Fi et de données mobiles.</string>
- <string name="censorship_circumvention">Contournement de la censure</string>
- <string name="use_snowflake">Utiliser Snowflake</string>
- <string name="snowflake_description">Protéger le processus de configuration contre la censure.</string>
- <string name="vpn_settings">Paramètres du RPV</string>
- <string name="prefer_udp">Utiliser l’UDP si disponible</string>
- <string name="prefer_udp_subtitle">L’UDP peut être plus rapide et meilleur pour la diffusion en continu, mais ne fonctionne pas sur tous les réseaux.</string>
- <string name="disabled_while_bridges_on">Désactivé lors de l’utilisation de ponts.</string>
- <string name="hint_bridges">Seuls les emplacements qui prennent en charge les ponts sont sélectionnables actuellement.</string>
- <string name="option_disable_bridges">Désactiver les ponts</string>
- <string name="eip_state_insecure">La connexion n’est pas sécurisée</string>
- <string name="connection_not_connected">Vous pourriez révéler des renseignements à votre fournisseur d’Internet ou à votre réseau local.</string>
- <string name="eip_state_no_network">Vous n’avez pas de connexion Internet fonctionnelle. Une fois qu’elle sera rétablie, vous pourrez automatiquement vous connecter à</string>
- <string name="eip_state_blocking">%1$s bloque tout le trafic Internet.</string>
- <string name="disabled_while_udp_on">Désactivé pendant que l’UDP est activé</string>
- <string name="advanced_settings">Paramètres avancés</string>
- <string name="cancel_connection">Se déconnecter</string>
- <string name="unknown_location">Site inconnu</string>
- <string name="splash_footer">Développé par LEAP</string>
- <string name="welcome">Bienvenue.</string>
- <string name="select_provider">Choisir un fournisseur</string>
- <string name="select_provider_description">Lorsque vous utilisez un RPV, vous transférez la confiance que vous accorde votre fournisseur d\'accès à Internet à votre fournisseur RPV. Bitmask ne se connecte qu\'à des fournisseurs ayant un bilan clair en matière de protection de la vie privée et de défense des droits.</string>
- <string name="provider_description_riseup">Riseup fournit des outils de communication en ligne pour les personnes et les groupes qui œuvrent en faveur d\'un changement social libéral. Nous voulons créer des alternatives démocratiques et pratiquer l\'autodétermination en contrôlant nos propres moyens de communication sécurisés.</string>
- <string name="next">Suivant</string>
- <string name="add_provider_description">Bitmask se connecte à des fournisseurs fiables qui ne sont pas répertoriés publiquement. Saisissez l\'adresse URL de votre fournisseur ci-dessous.</string>
- <string name="add_provider_prompt">Saisissez ici le fournisseur de l\'URK.</string>
- <string name="invite_code_provider_description">Bitmask vous permet de vous connecter aux fournisseurs à l\'aide d\'un code d\'invitation privé. </string>
- <string name="invite_code_provider_prompt">Saisissez ici votre code d\'invitation. </string>
- <string name="qr_scanner_prompt">Balayer un code QR</string>
- <string name="provider_description_calyx">Calyx est un organisme d\'éducation et de recherche à but non lucratif qui se consacre à l\'étude, au test, au développement et à la mise en œuvre de technologies et d\'outils de protection de la vie privée afin de promouvoir la liberté d\'expression, la liberté de parole, l\'engagement civique et le droit à la vie privée sur l\'internet et dans l\'industrie des communications mobiles.</string>
- <string name="title_circumvention_setup">Avez-vous besoin de contourner la censure ?</string>
- <string name="circumvention_setup_description">Si vous vivez dans un pays où l\'internet est censuré, vous pouvez recourir à nos options de contournement de la censure pour accéder à tous les services web. Ces solutions ralentiront votre connexion !</string>
- <string name="circumvention_setup_hint">%sessaiera automatiquement de vous connecter à Internet au moyen de diverses technologies de contournement. Vous pouvez régler cela dans les paramètres avancés.</string>
- <string name="use_standard_vpn">Utilisez %s normal</string>
- <string name="use_circumvention_tech">Utilisez des techniques de contournement (plus lentes)</string>
- <string name="description_configure_provider">Pour se connecter à votre fournisseur d\'accès, %1$s récupère toutes les informations de configuration requises. Cela ne se produit que lors de la première installation.</string>
- <string name="description_configure_provider_circumvention">%1$stente de collecter auprès du fournisseur toutes les données de configuration requises. Cela est uniquement réalisé lors de la première installation. Vous avez opté d\'utiliser une technologie de contournement, ce qui peut prendre un certain temps.</string>
- <string name="details">Détails</string>
- <string name="tor_status">État de Tor</string>
- <string name="snowflake_status">État de Snowflake</string>
- <string name="snowflake_started">L\'appli client Snowflake a démarré</string>
- <string name="snowflake_socks_error">Erreur Snowflake SOCKS</string>
- <string name="snowflake_sending_data">Envoi de données via Snowflake</string>
- <string name="title_upcoming_connection_request">Demande de connexion à venir</string>
- <string name="title_upcoming_notifications_request">Demande de notifications à venir</string>
- <string name="title_setup_success">Tout est prêt !</string>
- <string name="setup_success_description">Cliquez sur le bouton ci-dessous pour vous connecter</string>
- <string name="permission_rejected">Demande d’autorisation refusée.</string>
- <string name="login_not_supported">La version actuelle de l\'application ne supporte pas les connexions, ce qui vous oblige à mettre à jour votre certification VPN pour ce fournisseur.</string>
- <string name="select_language">Sélectionner une langue</string>
- <string name="syntax_check">Vérification de la syntaxe:</string>
- <string name="validation_status_success">Bon</string>
- <string name="validation_status_failure">Mauvaise</string>
- <string name="enter_invite_code">Saisir le code d\'invitation</string>
- <string name="scan_qr_code">Balayer un code QR</string>
- <string name="invalid_code">Le code est invalide</string>
- <string name="automatic_bridge">Automatique (recommandé)</string>
- <string name="automatic_bridge_description">La connexion sera tentée au moyen des meilleurs ponts et protocoles disponibles.</string>
- <string name="manual_bridge">Configuration manuelle</string>
- <string name="manual_bridge_description">Sélectionnez des ponts privés et des protocoles spécifiques</string>
- <string name="censorship_circumvention_description">La configuration manuelle nécessite des connaissances techniques. Agissez avec prudence.</string>
- <string name="discovery">Découverte</string>
- <string name="discovery_description">Les censeurs peuvent empêcher la découverte d\'informations critiques sur la configuration de votre fournisseur. Choisissez une option de contournement pour éviter les blocages.</string>
- <string name="automatically_select">Sélection automatique</string>
- <string name="tunnelling">Tunnellisation</string>
- <string name="tunnelling_description">Les censeurs peuvent bloquer l\'accès à l\'internet ouvert. Choisissez une option de contournement pour éviter les blocages.</string>
- <string name="port_hopping">Saut de port</string>
- <string name="port_hopping_description">Les censeurs utilisent l\'analyse du trafic pour bloquer l\'accès à l\'internet ouvert. Le saut de port peut leur compliquer la tâche. </string>
+ <string name="retry">Réessayer</string>
+ <string name="repository_url_text">Le code source se trouve sur https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Le système de suivi des problèmes se trouve sur https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Les traductions sont les bienvenues et nous les valorisons. Consulter notre projet Transifex sur https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Changer de fournisseur</string>
+ <string name="info">renseignements</string>
+ <string name="show_connection_details">Afficher les détails de connexion</string>
+ <string name="connection_details">Détails de la connexion</string>
+ <string name="routes_info">Routes : %s</string>
+ <string name="routes_info6">Routes IPv6 : %s</string>
+ <string name="error_empty_username">Le nom d’utilisateur ne doit pas être vide.</string>
+ <string name="cert_from_keystore">Le certificat \'%s\' a été obtenu du magasin de clés</string>
+ <string name="provider_label">Fournisseur :</string>
+ <string name="provider_label_none">Aucun fournisseur n’est configuré</string>
+ <string name="status_unknown">État inconnu.</string>
+ <string name="eip_service_label">Accès à Internet par RPV chiffré</string>
+ <string name="configuration_wizard_title">Choisir un fournisseur de services</string>
+ <string name="add_provider">Ajouter un nouveau fournisseur</string>
+ <string name="introduce_new_provider">Ajouter un nouveau fournisseur de services</string>
+ <string name="save">Enregistrer</string>
+ <string name="new_provider_uri">Nom de domaine</string>
+ <string name="valid_url_entered">Cette URL est valide</string>
+ <string name="not_valid_url_entered">URL malformée</string>
+ <string name="provider_details_title">Renseignements sur le fournisseur</string>
+ <string name="use_anonymously_button">Utiliser anonymement</string>
+ <string name="username_hint">nom d’utilisateur</string>
+ <string name="username_ask">Veuillez saisir votre nom d’utilisateur</string>
+ <string name="password_ask">Veuillez saisir votre mot de passe</string>
+ <string name="password_hint">mot de passe</string>
+ <string name="password_match">Les mots de passe correspondent</string>
+ <string name="password_mismatch">Les mots de passe ne correspondent pas</string>
+ <string name="user_message">Message utilisateur</string>
+ <string name="about_fragment_title">À propos</string>
+ <string name="exclude_apps_fragment_title">Exclure des applis du RPV</string>
+ <string name="error_srp_math_error_user_message">Réessayez : erreur mathématique du serveur</string>
+ <string name="error_bad_user_password_user_message">Nom d’utilisateur ou mot de passe erroné</string>
+ <string name="error_not_valid_password_user_message">ll doit comporter au moins 8 caractères</string>
+ <string name="error_client_http_user_message">Réessayez : erreur HTTP du client</string>
+ <string name="error_io_exception_user_message">Réessayez : erreur E/S</string>
+ <string name="error_json_exception_user_message">Réessayez : mauvaise réponse du serveur</string>
+ <string name="error_no_such_algorithm_exception_user_message">L’algorithme de chiffrement est introuvable. Veuillez mettre votre Android à niveau.</string>
+ <string name="signup_or_login_button">Inscription/Connexion</string>
+ <string name="login_button">Connexion</string>
+ <string name="login_to_profile">Connexion au profil</string>
+ <string name="logout_button">Déconnexion</string>
+ <string name="signup_button">Inscription</string>
+ <string name="create_profile">Créer un profil</string>
+ <string name="setup_provider">Configurer un fournisseur</string>
+ <string name="setup_error_title">Erreur de configuration</string>
+ <string name="setup_error_configure_button">Configurer</string>
+ <string name="setup_error_close_button">Quitter</string>
+ <string name="setup_error_text">Une erreur est survenue lors de la configuration de %s avec le fournisseur de votre choix.\n\nVous pouvez soit reconfigurer, soit quitter et configurer un fournisseur lors du prochain lancement.</string>
+ <string name="setup_error_text_custom">Une erreur est survenue en configurant %s.\n\nVous pouvez soit reconfigurer soit sortir.</string>
+ <string name="server_unreachable_message">Le serveur est inaccessible, veuillez réessayer.</string>
+ <string name="error.security.pinnedcertificate">Erreur de sécurité. Mettre l’appli à niveau ou choisir un autre fournisseur.</string>
+ <string name="malformed_url">Cela ne semble pas être un fournisseur %s.</string>
+ <string name="certificate_error">Ce n’est pas un fournisseur %s de confiance.</string>
+ <string name="service_is_down_error">Le service est interrompu.</string>
+ <string name="configuring_provider">Configuration du fournisseur</string>
+ <string name="downloading_certificate_message">Téléchargement du certificat RPV</string>
+ <string name="updating_certificate_message">Mise à jour du certificat RPV</string>
+ <string name="login.riseup.warning">Les utilisateurs de Riseup devront créer un compte séparé pour utiliser le service RPV</string>
+ <string name="succesful_authentication_message">Authentifié</string>
+ <string name="authentication_failed_message">Échec d’authentification</string>
+ <string name="registration_failed_message">L’inscription a échoué</string>
+ <string name="eip_status_start_pending">Initialisation de la connexion</string>
+ <string name="eip_status_connecting">Connecter au RPV</string>
+ <string name="eip_status_unsecured">Connexion non sécurisée</string>
+ <string name="eip_status_secured">Connexion sécurisée</string>
+ <string name="eip_cancel_connect_title">Annuler la connexion ?</string>
+ <string name="eip_cancel_connect_text">Une tentative de connexion est en cours. Voulez-vous l’annuler ?</string>
+ <string name="eip.warning.browser_inconsistency">Désactiver la connexion RPV ? Si votre RPV est désactivé, vous pourriez divulguer des renseignements personnels à votre fournisseur d’accès à Internet ou à votre réseau local.</string>
+ <string name="eip_state_not_connected">Ne s’exécute pas ! La connexion n’est pas sécurisée !</string>
+ <string name="eip_state_connected">La connexion est sécurisée</string>
+ <string name="provider_problem">Il semble que le fournisseur pose un problème.</string>
+ <string name="try_another_provider">Veuillez essayer un autre fournisseur ou nous contacter.</string>
+ <string name="default_username">Anonyme</string>
+ <string name="logging_in">Connexion</string>
+ <string name="signing_up">Inscription</string>
+ <string name="vpn.button.turn.on">Activer</string>
+ <string name="vpn.button.turn.off">Désactiver</string>
+ <string name="vpn_button_turn_off_blocking">Arrêter le blocage</string>
+ <string name="vpn_securely_routed">Votre trafic est acheminé en toute sécurité par :</string>
+ <string name="vpn_securely_routed_no_internet">Aucune connexion à Internet n’a été détectée. Une fois que vous serez connecté, nous acheminerons votre trafic de façon sécuritaire par :</string>
+ <string name="log_fragment_title">Journal</string>
+ <string name="vpn_fragment_title">RPV</string>
+ <string name="navigation_drawer_open">Ouvrir le tiroir de navigation</string>
+ <string name="navigation_drawer_close">Fermer le tiroir de navigation</string>
+ <string name="action_example">Exemple d’action</string>
+ <string name="action_settings">Paramètres</string>
+ <string name="void_vpn_establish">%s bloque tout le trafic Internet sortant.</string>
+ <string name="void_vpn_error_establish">Échec de blocage de tout le trafic d’Internet</string>
+ <string name="void_vpn_stopped">Le trafic Internet sortant n’est plus bloqué.</string>
+ <string name="void_vpn_title">Blocage du trafic</string>
+ <string name="update_provider_details">Mettre les renseignements de fournisseur à jour</string>
+ <string name="update_certificate">Mettre le certificat à jour</string>
+ <string name="warning_eip_json_corrupted">Échec de mise à jour de la configuration du fournisseur.</string>
+ <string name="eip_json_corrupted_user_message">Échec de mise à jour de la configuration du fournisseur. Veuillez vous connecter pour réessayer.</string>
+ <string name="warning_client_parsing_error_gateways">Les passerelles du fournisseur n’ont pas été reconnues. Elles ont peut-être été configurées incorrectement.</string>
+ <string name="warning_corrupted_provider_details">Les renseignements de fournisseur enregistrés sont corrompus. Vous pouvez soit mettre %s à jour (recommandé), soit mettre les renseignements de fournisseur à jour en utilisant un certificat CA commercial.</string>
+ <string name="warning_corrupted_provider_cert">Le certificat de fournisseur enregistré est invalide. Vous pouvez soit mettre %s à jour (recommandé), soit mettre le certificat de fournisseur à jour en utilisant un certificat CA commercial.</string>
+ <string name="warning_expired_provider_cert">Le certificat de fournisseur enregistré est expiré. Vous pouvez soit mettre %s à jour (recommandé), soit mettre le certificat de fournisseur à jour en utilisant un certificat CA commercial.</string>
+ <string name="downloading_vpn_certificate_failed">Échec de téléchargement du certificat du RPV. Réessayez ou choisissez un autre fournisseur.</string>
+ <string name="save_battery">Économiser la pile</string>
+ <string name="subtitle_save_battery">Désactivé pendant que le point d’accès RPV est activé</string>
+ <string name="save_battery_message">Les connexions de données d’arrière-plan seront mises en veille quand votre téléphone sera inactif.</string>
+ <string name="always_on_vpn">RPV permanent</string>
+ <string name="subtitle_always_on_vpn">Ouvrir les paramètres système d’Android</string>
+ <string name="tethering">Point d’accès RPV</string>
+ <string name="ipv6Firewall">Bloquer IPv6</string>
+ <string name="require_root">Exige les autorisations superutilisateur (racine)</string>
+ <string name="show_experimental">Afficher les fonctions expérimentales</string>
+ <string name="hide_experimental">Cacher les fonctions expérimentales</string>
+ <string name="experimental_features">Fonctions expérimentales</string>
+ <string name="tethering_enabled_message">Veuillez d’abord vous assurer d’activer la fonction modem dans les <![CDATA[<b>paramètres système</b>]]>.</string>
+ <string name="tethering_message">Partager votre RPV avec d’autres appareils par :</string>
+ <string name="tethering_wifi">Point d’accès Wi-Fi</string>
+ <string name="tethering_usb">fonction modem USB</string>
+ <string name="tethering_bluetooth">fonction modem Bluetooth</string>
+ <string name="do_not_show_again">Ne plus afficher</string>
+ <string name="always_on_vpn_user_message">Pour activer l’option « RPV permanent » ou « VPN permanent » des paramètres RPV d’Android, cliquez sur l’icône de configuration [img src] et basculez l’interrupteur.</string>
+ <string name="always_on_blocking_vpn_user_message">Afin de protéger de façon optimale votre vie privée et vos données personnelles, vous devriez activer l’option « Bloquer les connexions sans RPV ».</string>
+ <string name="donate_title">Faire un don</string>
+ <string name="donate_default_message">Veuillez faire un don aujourd’hui si des communications sécurisées faciles à mettre en place pour l’utilisateur final et le fournisseur de services sont importantes à vous yeux.</string>
+ <string name="donate_message">LEAP dépend de dons et de subventions. Veuillez faire un don aujourd’hui si des communications sécurisées faciles à mettre en place pour l’utilisateur final et le fournisseur de services sont importantes à vous yeux.</string>
+ <string name="donate_button_remind_later">Me rappeler plus tard</string>
+ <string name="donate_button_donate">Faire un don</string>
+ <string name="obfuscated_connection">Une connexion brouillée est utilisée.</string>
+ <string name="obfuscated_connection_try">Tentative de connexion brouillée.</string>
+ <string name="nav_drawer_obfuscated_connection">Utiliser des ponts</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Contourner le filtrage du RPV</string>
+ <string name="warning_exclude_apps_message">Soyez prudent en excluant des applis du RPV. Cela divulguera votre identité et compromettra votre sécurité.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d appli non protégée</item>
+ <item quantity="many">%d applis non protégées</item>
+ <item quantity="other">%d applis non protégées</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s n’a pas pu se connecter. Les connexions RPV sont peut-être bloquées. Voulez-vous tenter de vous connecter en essayant des connexions brouillées ?</string>
+ <string name="warning_no_more_gateways_no_pt">%s n’a pas pu se connecter. Voulez-vous réessayer ?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s n’a pas pu se connecter en utilisant des connexions RPV brouillées. Voulez-vous tenter de vous connecter en essayant un RPV normal ?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s n’a pas réussi à se connecter à %2$s. Voulez-vous essayer de vous connecter automatiquement au meilleur emplacement ?</string>
+ <string name="warning_option_try_best">Essayer le meilleur emplacement</string>
+ <string name="warning_option_try_pt">Essayer une connexion brouillée.</string>
+ <string name="warning_option_try_ovpn">Essayer une connexion normal.</string>
+ <string name="vpn_error_establish">Android n’a pas réussi à établir le service RPV.</string>
+ <string name="root_permission_error">%s ne peut pas exécuter des fonctions telles que le point d’accès RPV ou le pare-feu IPv6 sans autorisations superutilisateur (racine).</string>
+ <string name="qs_enable_vpn">Démarrer %s</string>
+ <string name="version_update_found">Toucher ici pour lancer le téléchargement.</string>
+ <string name="version_update_title">Une nouvelle version de %s a été trouvée.</string>
+ <string name="version_update_apk_description">Téléchargement d’une nouvelle version de %s</string>
+ <string name="version_update_download_title">Une nouvelle version de %s a été téléchargée.</string>
+ <string name="version_update_download_description">Toucher ici pour installer la mise à jour.</string>
+ <string name="version_update_error_pgp_verification">Erreur de vérification PGP. Le téléchargement est ignoré.</string>
+ <string name="version_update_error">Échec de mise à jour.</string>
+ <string name="version_update_error_permissions">Manque de droits pour installer l’appli.</string>
+ <string name="gateway_selection_title">Sélectionner l’emplacement</string>
+ <string name="gateway_selection_recommended_location">Emplacement recommandé</string>
+ <string name="gateway_selection_recommended">Recommandé</string>
+ <string name="gateway_selection_manually">Sélectionner manuellement</string>
+ <string name="gateway_selection_automatic_location">Utiliser automatiquement la meilleure connexion</string>
+ <string name="gateway_selection_automatic">Automatique</string>
+ <string name="reconnecting">Reconnexion…</string>
+ <string name="tor_starting">Démarrage des ponts pour le contournement de la censure…</string>
+ <string name="tor_stopping">Arrêt des ponts</string>
+ <string name="tor_started">Utilisation de ponts pour le contournement de la censure</string>
+ <string name="log_conn_done_pt">Connecté au transport enfichable</string>
+ <string name="log_conn_pt">Connexion au transport enfichable</string>
+ <string name="log_conn_done">Connecté au relais</string>
+ <string name="log_handshake">Négociation de la connexion avec relais</string>
+ <string name="log_handshake_done">La connexion avec le relais a été négociée</string>
+ <string name="log_onehop_create">Mise en place d’une connexion chiffrée vers l’annuaire</string>
+ <string name="log_requesting_status">Demande du consensus de l’état du réseau</string>
+ <string name="log_loading_status">Chargement du consensus de l’état du réseau</string>
+ <string name="log_loading_keys">Chargement des certificats d’autorité</string>
+ <string name="log_requesting_descriptors">Demande des descripteurs de relais</string>
+ <string name="log_loading_descriptors">Chargement des descripteurs de relais</string>
+ <string name="log_enough_dirinfo">Suffisamment de renseignements d’annuaire ont été chargés pour établir les circuits</string>
+ <string name="log_ap_handshake_done">Négociation terminée avec un relais afin de construire les circuits</string>
+ <string name="log_circuit_create">Mise en place d’un circuit Tor</string>
+ <string name="log_done">En fonction</string>
+ <string name="channel_name_tor_service">Service de ponts %s</string>
+ <string name="channel_description_tor_service">Renseigne sur l’utilisation des ponts lors de la configuration %s.</string>
+ <string name="error_tor_timeout">Échec de démarrage des ponts. Voulez-vous réessayer ou poursuivre avec une connexion sécurisée non brouillée pour configurer %s ?</string>
+ <string name="retry_unobfuscated">Réessayer sans brouillage</string>
+ <string name="hide">Cacher</string>
+ <string name="error_network_connection">%s n’as pas de connexion Internet. Veuillez vérifier vos paramètres Wi-Fi et de données mobiles.</string>
+ <string name="censorship_circumvention">Contournement de la censure</string>
+ <string name="use_snowflake">Utiliser Snowflake</string>
+ <string name="snowflake_description">Protéger le processus de configuration contre la censure.</string>
+ <string name="vpn_settings">Paramètres du RPV</string>
+ <string name="prefer_udp">Utiliser l’UDP si disponible</string>
+ <string name="prefer_udp_subtitle">L’UDP peut être plus rapide et meilleur pour la diffusion en continu, mais ne fonctionne pas sur tous les réseaux.</string>
+ <string name="disabled_while_bridges_on">Désactivé lors de l’utilisation de ponts.</string>
+ <string name="hint_bridges">Seuls les emplacements qui prennent en charge les ponts sont sélectionnables actuellement.</string>
+ <string name="option_disable_bridges">Désactiver les ponts</string>
+ <string name="eip_state_insecure">La connexion n’est pas sécurisée</string>
+ <string name="connection_not_connected">Vous pourriez révéler des renseignements à votre fournisseur d’Internet ou à votre réseau local.</string>
+ <string name="eip_state_no_network">Vous n’avez pas de connexion Internet fonctionnelle. Une fois qu’elle sera rétablie, vous pourrez automatiquement vous connecter à</string>
+ <string name="eip_state_blocking">%1$s bloque tout le trafic Internet.</string>
+ <string name="disabled_while_udp_on">Désactivé pendant que l’UDP est activé</string>
+ <string name="advanced_settings">Paramètres avancés</string>
+ <string name="cancel_connection">Se déconnecter</string>
+ <string name="unknown_location">Site inconnu</string>
+ <string name="splash_footer">Développé par LEAP</string>
+ <string name="welcome">Bienvenue.</string>
+ <string name="select_provider">Choisir un fournisseur</string>
+ <string name="provider_description_riseup">Riseup fournit des outils de communication en ligne pour les personnes et les groupes qui œuvrent en faveur d\'un changement social libéral. Nous voulons créer des alternatives démocratiques et pratiquer l\'autodétermination en contrôlant nos propres moyens de communication sécurisés.</string>
+ <string name="next">Suivant</string>
+ <string name="add_provider_prompt">Saisissez ici le fournisseur de l\'URK.</string>
+ <string name="invite_code_provider_description">Bitmask vous permet de vous connecter aux fournisseurs à l\'aide d\'un code d\'invitation privé. </string>
+ <string name="invite_code_provider_prompt">Saisissez ici votre code d\'invitation. </string>
+ <string name="qr_scanner_prompt">Balayer un code QR</string>
+ <string name="provider_description_calyx">Calyx est un organisme d\'éducation et de recherche à but non lucratif qui se consacre à l\'étude, au test, au développement et à la mise en œuvre de technologies et d\'outils de protection de la vie privée afin de promouvoir la liberté d\'expression, la liberté de parole, l\'engagement civique et le droit à la vie privée sur l\'internet et dans l\'industrie des communications mobiles.</string>
+ <string name="title_circumvention_setup">Avez-vous besoin de contourner la censure ?</string>
+ <string name="circumvention_setup_description">Si vous vivez dans un pays où l\'internet est censuré, vous pouvez recourir à nos options de contournement de la censure pour accéder à tous les services web. Ces solutions ralentiront votre connexion !</string>
+ <string name="use_standard_vpn">Utilisez %s normal</string>
+ <string name="use_circumvention_tech">Utilisez des techniques de contournement (plus lentes)</string>
+ <string name="description_configure_provider">Pour se connecter à votre fournisseur d\'accès, %1$s récupère toutes les informations de configuration requises. Cela ne se produit que lors de la première installation.</string>
+ <string name="description_configure_provider_circumvention">%1$stente de collecter auprès du fournisseur toutes les données de configuration requises. Cela est uniquement réalisé lors de la première installation. Vous avez opté d\'utiliser une technologie de contournement, ce qui peut prendre un certain temps.</string>
+ <string name="details">Détails</string>
+ <string name="tor_status">État de Tor</string>
+ <string name="snowflake_status">État de Snowflake</string>
+ <string name="snowflake_started">L\'appli client Snowflake a démarré</string>
+ <string name="title_upcoming_connection_request">Demande de connexion à venir</string>
+ <string name="title_upcoming_notifications_request">Demande de notifications à venir</string>
+ <string name="title_setup_success">Tout est prêt !</string>
+ <string name="setup_success_description">Cliquez sur le bouton ci-dessous pour vous connecter</string>
+ <string name="permission_rejected">Demande d’autorisation refusée.</string>
+ <string name="login_not_supported">La version actuelle de l\'application ne supporte pas les connexions, ce qui vous oblige à mettre à jour votre certification VPN pour ce fournisseur.</string>
+ <string name="select_language">Sélectionner une langue</string>
+ <string name="system_default">Langue du système</string>
+ <string name="syntax_check">Vérification de la syntaxe:</string>
+ <string name="validation_status_success">Bon</string>
+ <string name="validation_status_failure">Mauvaise</string>
+ <string name="enter_invite_code">Saisir le code d\'invitation</string>
+ <string name="invalid_code">Le code est invalide</string>
+ <string name="automatic_bridge">Automatique (recommandé)</string>
+ <string name="automatic_bridge_description">La connexion sera tentée au moyen des meilleurs ponts et protocoles disponibles.</string>
+ <string name="manual_bridge">Configuration manuelle</string>
+ <string name="manual_bridge_description">Sélectionnez des ponts privés et des protocoles spécifiques</string>
+ <string name="censorship_circumvention_description">La configuration manuelle nécessite des connaissances techniques. Agissez avec prudence.</string>
+ <string name="discovery">Découverte</string>
+ <string name="discovery_description">Les censeurs peuvent empêcher la découverte d\'informations critiques sur la configuration de votre fournisseur. Choisissez une option de contournement pour éviter les blocages.</string>
+ <string name="automatically_select">Sélection automatique</string>
+ <string name="tunnelling">Tunnellisation</string>
+ <string name="tunnelling_description">Les censeurs peuvent bloquer l\'accès à l\'internet ouvert. Choisissez une option de contournement pour éviter les blocages.</string>
+ <string name="port_hopping">Saut de port</string>
+ <string name="port_hopping_description">Les censeurs utilisent l\'analyse du trafic pour bloquer l\'accès à l\'internet ouvert. Le saut de port peut leur compliquer la tâche.</string>
</resources>
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index 9b0539ab..876cb46c 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -1,160 +1,160 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Intentar de novo</string>
- <string name="repository_url_text">Código fonte dispoñible en https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Seguimento de incidencias en https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Agradécese a tradución. Aquí está o noso proxecto en Transifex https://www.transifex.com/projects/p/bitmask/
+ <string name="retry">Intentar de novo</string>
+ <string name="repository_url_text">Código fonte dispoñible en https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Seguimento de incidencias en https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Agradécese a tradución. Aquí está o noso proxecto en Transifex https://www.transifex.com/projects/p/bitmask/
</string>
- <string name="switch_provider_menu_option">Cambiar provedor</string>
- <string name="info">info</string>
- <string name="show_connection_details">Mostrar detalles da conexión</string>
- <string name="routes_info">Rutas: %s</string>
- <string name="routes_info6">Rutas IPv6: %s</string>
- <string name="error_empty_username">A caixa nome de usuaria non pode estar baldeira.</string>
- <string name="cert_from_keystore">Obteña o certificado \'%s\' do almacén de chaves</string>
- <string name="provider_label">Provedor:</string>
- <string name="provider_label_none">Non hai provedor configurado</string>
- <string name="status_unknown">Estado descoñecido.</string>
- <string name="eip_service_label">Acceso a internet con VPN cifrado</string>
- <string name="configuration_wizard_title">Escolla un provedor de acceso</string>
- <string name="add_provider">Engadir novo provedor</string>
- <string name="introduce_new_provider">Engadir novo provedor de servizo</string>
- <string name="save">Gardar</string>
- <string name="new_provider_uri">Nome de dominio</string>
- <string name="valid_url_entered">O URL é válido</string>
- <string name="not_valid_url_entered">URL mal formado</string>
- <string name="provider_details_title">Detalles do provedor</string>
- <string name="use_anonymously_button">Utilizar de xeito anónimo</string>
- <string name="username_hint">nome de usuaria</string>
- <string name="username_ask">Por favor introduza o seu nome de usuaria</string>
- <string name="password_ask">Por favor introduza o seu contrasinal</string>
- <string name="password_hint">contrasinal</string>
- <string name="password_match">Os contrasinais concordan</string>
- <string name="password_mismatch">Os contrasinais non concordan</string>
- <string name="user_message">Mensaxe de usuaria</string>
- <string name="about_fragment_title">Sobre</string>
- <string name="exclude_apps_fragment_title">Excluír apps da VPN</string>
- <string name="error_srp_math_error_user_message">Inténteo de novo: fallo no Servidor</string>
- <string name="error_bad_user_password_user_message">Nome de usuaria ou contrasinal incorrectos</string>
- <string name="error_not_valid_password_user_message">Debe ter ao menos 8 caracteres</string>
- <string name="error_client_http_user_message">Intentar de novo: Fallo no cliente HTTP</string>
- <string name="error_io_exception_user_message">Intentar de novo: fallo I/O</string>
- <string name="error_json_exception_user_message">Intentar de novo: resposta incorrecta desde o servidor</string>
- <string name="error_no_such_algorithm_exception_user_message">Non se atopou algoritmo de cifrado. Por favor actualice Android!</string>
- <string name="signup_or_login_button">Conexión/Rexistro</string>
- <string name="login_button">Conectar</string>
- <string name="login_to_profile">Conectar perfil</string>
- <string name="logout_button">Desconectar</string>
- <string name="signup_button">Rexistro</string>
- <string name="create_profile">Crear perfil</string>
- <string name="setup_provider">Establecer provedor</string>
- <string name="setup_error_title">Fallo na configuración</string>
- <string name="setup_error_configure_button">Configurar</string>
- <string name="setup_error_close_button">Saír</string>
- <string name="setup_error_text">Algo fallou ao configurar %s co teu provedor.\n\nPodes tentalo de novo, ou saír e configurar un provedor no seguinte inicio.</string>
- <string name="server_unreachable_message">Non se puido conectar ao servidor, por favor inténteo de novo.</string>
- <string name="error.security.pinnedcertificate">Fallo de seguridade, anove o aplicativo ou escolla outro provedor</string>
- <string name="malformed_url">%s non semella ser un provedor.</string>
- <string name="certificate_error">Non é un provedor %s de confianza.</string>
- <string name="service_is_down_error">O servizo está caído.</string>
- <string name="configuring_provider">Configurando provedor</string>
- <string name="incorrectly_downloaded_certificate_message">Non se descargou o seu certificado anónimo</string>
- <string name="downloading_certificate_message">Descargando certificado VPN</string>
- <string name="updating_certificate_message">Anovando certificado VPN</string>
- <string name="login.riseup.warning">As usuarias de Riseup precisarán crear unha conta separada para utilizar o servizo VPN</string>
- <string name="succesful_authentication_message">Autenticado</string>
- <string name="authentication_failed_message">Fallou a autenticación</string>
- <string name="registration_failed_message">Fallo no rexistro</string>
- <string name="eip_status_start_pending">Iniciando conexión</string>
- <string name="eip_cancel_connect_title">Cancelar a conexión?</string>
- <string name="eip_cancel_connect_text">Hai un intento de conexión en proceso. Desexa cancelalo?</string>
- <string name="eip.warning.browser_inconsistency">Apagar a conexión VPN? Si está desconectada a VPN podería suministrar información personal ao seu provedor de acceso a internet ou rede local.</string>
- <string name="eip_state_not_connected">Non está a conectada! Conexión insegura!</string>
- <string name="eip_state_connected">Conexión segura</string>
- <string name="provider_problem">Semella que hai un problema co provedor.</string>
- <string name="try_another_provider">Por favor, inténteo con un novo provedor ou contacte co seu.</string>
- <string name="default_username">Anónimo</string>
- <string name="logging_in">Conectando</string>
- <string name="signing_up">Rexistrando</string>
- <string name="vpn.button.turn.on">Acender</string>
- <string name="vpn.button.turn.off">Apagar</string>
- <string name="vpn_button_turn_off_blocking">Deixar de bloquear</string>
- <string name="vpn_securely_routed">O seu tráfico está securizado a través de:</string>
- <string name="vpn_securely_routed_no_internet">Non se detectou conexión a internet, cando volte enrutaremos o seu tráfico de xeito seguro a través de:</string>
- <string name="log_fragment_title">Rexistro</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Abrir cadro de navegación</string>
- <string name="navigation_drawer_close">Pechar cadro de navegación</string>
- <string name="action_example">Acción de exemplo</string>
- <string name="action_settings">Axustes</string>
- <string name="void_vpn_establish">%s bloquea todo o tráfico saínte de internet.</string>
- <string name="void_vpn_stopped">Deixou de bloquear todo o tráfico saínte.</string>
- <string name="void_vpn_title">Bloqueando tráfico</string>
- <string name="update_provider_details">Actualizar detalles do provedor</string>
- <string name="update_certificate">Anovar certificado</string>
- <string name="warning_eip_json_corrupted">Fallo ao anovar a configuración do provedor.</string>
- <string name="eip_json_corrupted_user_message">Fallo ao anovar a configuración do provedor. Por favor conéctese para intentalo de novo.</string>
- <string name="warning_client_parsing_error_gateways">As pasarelas do provedor non se recoñecen. Pode que non estén ben configuradas.</string>
- <string name="warning_corrupted_provider_details">Os detalles gardados do provedor están corruptos. Podes actualizar %s (recomendado) ou actualizar os detalles do provedor utilizando un certificado CA comercial.</string>
- <string name="warning_corrupted_provider_cert">O certificado gardado do provedor non é válido. Podes actualizar %s (recomendado) ou actualizar o certificado do provedor utilizando un certificado CA comercial.</string>
- <string name="warning_expired_provider_cert">O certificado gardado do provedor caducou. Podes actualizar %s (recomendado) ou actualizar o certificado do provedor utilizando un certificado CA comercial.</string>
- <string name="downloading_vpn_certificate_failed">Fallou a descarga do certificado do VPN. Inténteo de novo ou escolla outro provedor.</string>
- <string name="vpn_certificate_is_invalid">O certificado do VPN non é válido. Intente descargar un novo.</string>
- <string name="vpn_certificate_user_message">O certificado VPN non é válido. Por favor conéctese para descargar un novo.</string>
- <string name="save_battery">Aforro de batería</string>
- <string name="subtitle_save_battery">Desactivado cando o Hotspot da VPN está aceso</string>
- <string name="save_battery_message">As conexións de datos en segundo plano hibernarán cando o móbil estea inactivo.</string>
- <string name="always_on_vpn">VPN sempre activa</string>
- <string name="subtitle_always_on_vpn">Abrir os Axustes do sistema android</string>
- <string name="tethering">Hotspot VPN</string>
- <string name="ipv6Firewall">Bloquear IPv6</string>
- <string name="require_root">Require permiso root</string>
- <string name="show_experimental">Mostrar funcións experimentais</string>
- <string name="hide_experimental">Agochar funcións experimentais</string>
- <string name="tethering_enabled_message">Asegúrate de ter antes activada a compartición da conexión en <![CDATA[<b>system settings</b>]]>.</string>
- <string name="tethering_message">Comparte a túa VPN con outros dispositivos vía:</string>
- <string name="tethering_wifi">Punto de acceso Wi-Fi</string>
- <string name="tethering_usb">Compartición USB</string>
- <string name="tethering_bluetooth">Compartición Bluetooth</string>
- <string name="do_not_show_again">Non mostrar de novo</string>
- <string name="always_on_vpn_user_message">Para activar VPN sempre acendida nos axustes VPN de Android pulse na icona de configuración [img src] en active a opción.</string>
- <string name="always_on_blocking_vpn_user_message">Para protexer de xeito óptimo a túa intimidade, deberías activar a opción \"Bloquear conexións sen VPN\".</string>
- <string name="donate_title">Doar</string>
- <string name="donate_default_message">Considere doar agora si valora a comunicación segura que é sinxela para a usuaria final e a proveedora do servizo.</string>
- <string name="donate_message">LEAP depende das doazóns e contribucións. Por favor, doe agroa si valora a comunicación segura que é sinxela tanto para a usuaria final como a proveedora do servizo.</string>
- <string name="donate_button_remind_later">Lembramo máis tarde</string>
- <string name="donate_button_donate">Doar</string>
- <string name="obfuscated_connection">Usando unha conexión agochada.</string>
- <string name="obfuscated_connection_try">Intentando facer unha conexión agochada.</string>
- <string name="nav_drawer_obfuscated_connection">Usar Pontes</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Evitar o filtro VPN</string>
- <string name="warning_exclude_apps_message">Ten coidado ao excluír apps da VPN. Esto revelará a túa identidade e comprometerá a seguridade.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d app desprotexida</item>
- <item quantity="other">%dapps desprotexidas</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s non puido conectar. Pode que as conexións VPN sexan bloqueadas. Queres conectar utilizando conexións agochadas?</string>
- <string name="warning_no_more_gateways_no_pt">%s non puido conectar. Queres volver a intentalo?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s non puido conectar usando conexións VPN agochadas. Queres intentar conectar utilizando a VPN estándar?</string>
- <string name="warning_option_try_pt">Intentar conexión agochada</string>
- <string name="warning_option_try_ovpn">Intentar conexión estándar</string>
- <string name="vpn_error_establish">Android non puido establecer o servizo VPN.</string>
- <string name="root_permission_error">%s non pode executar ferramentas como Punto de acceso VPN ou cortalumes IPv6 se non ten acceso root.</string>
- <string name="qs_enable_vpn">Inciar %s</string>
- <string name="version_update_found">Toca aquí para iniciar a descarga.</string>
- <string name="version_update_title">Hai unha nova versión de %s dispoñible</string>
- <string name="version_update_apk_description">Descargando a nova versión de %s</string>
- <string name="version_update_download_title">Descargouse a nova versión de %s.</string>
- <string name="version_update_download_description">Toca aquí para instalar a actualización.</string>
- <string name="version_update_error_pgp_verification">Fallou a verificación PGP. Ignorando a descarga.</string>
- <string name="version_update_error">Fallou a actualización.</string>
- <string name="version_update_error_permissions">Non tes permiso para instalar a app.</string>
- <string name="gateway_selection_title">Establecer localización</string>
- <string name="gateway_selection_automatic">Automática</string>
- <string name="log_onehop_create">Estabelecendo unha conexión cifrada co directorio</string>
- <string name="log_loading_keys">Cargando os certificados de autoridade</string>
- <string name="log_circuit_create">Estabelecendo o circuíto Tor</string>
- <string name="log_done">Executando</string>
- <string name="hide">Agochar</string>
- <string name="advanced_settings">Configuración avanzada</string>
+ <string name="switch_provider_menu_option">Cambiar provedor</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Mostrar detalles da conexión</string>
+ <string name="routes_info">Rutas: %s</string>
+ <string name="routes_info6">Rutas IPv6: %s</string>
+ <string name="error_empty_username">A caixa nome de usuaria non pode estar baldeira.</string>
+ <string name="cert_from_keystore">Obteña o certificado \'%s\' do almacén de chaves</string>
+ <string name="provider_label">Provedor:</string>
+ <string name="provider_label_none">Non hai provedor configurado</string>
+ <string name="status_unknown">Estado descoñecido.</string>
+ <string name="eip_service_label">Acceso a internet con VPN cifrado</string>
+ <string name="configuration_wizard_title">Escolla un provedor de acceso</string>
+ <string name="add_provider">Engadir novo provedor</string>
+ <string name="introduce_new_provider">Engadir novo provedor de servizo</string>
+ <string name="save">Gardar</string>
+ <string name="new_provider_uri">Nome de dominio</string>
+ <string name="valid_url_entered">O URL é válido</string>
+ <string name="not_valid_url_entered">URL mal formado</string>
+ <string name="provider_details_title">Detalles do provedor</string>
+ <string name="use_anonymously_button">Utilizar de xeito anónimo</string>
+ <string name="username_hint">nome de usuaria</string>
+ <string name="username_ask">Por favor introduza o seu nome de usuaria</string>
+ <string name="password_ask">Por favor introduza o seu contrasinal</string>
+ <string name="password_hint">contrasinal</string>
+ <string name="password_match">Os contrasinais concordan</string>
+ <string name="password_mismatch">Os contrasinais non concordan</string>
+ <string name="user_message">Mensaxe de usuaria</string>
+ <string name="about_fragment_title">Sobre</string>
+ <string name="exclude_apps_fragment_title">Excluír apps da VPN</string>
+ <string name="error_srp_math_error_user_message">Inténteo de novo: fallo no Servidor</string>
+ <string name="error_bad_user_password_user_message">Nome de usuaria ou contrasinal incorrectos</string>
+ <string name="error_not_valid_password_user_message">Debe ter ao menos 8 caracteres</string>
+ <string name="error_client_http_user_message">Intentar de novo: Fallo no cliente HTTP</string>
+ <string name="error_io_exception_user_message">Intentar de novo: fallo I/O</string>
+ <string name="error_json_exception_user_message">Intentar de novo: resposta incorrecta desde o servidor</string>
+ <string name="error_no_such_algorithm_exception_user_message">Non se atopou algoritmo de cifrado. Por favor actualice Android!</string>
+ <string name="signup_or_login_button">Conexión/Rexistro</string>
+ <string name="login_button">Conectar</string>
+ <string name="login_to_profile">Conectar perfil</string>
+ <string name="logout_button">Desconectar</string>
+ <string name="signup_button">Rexistro</string>
+ <string name="create_profile">Crear perfil</string>
+ <string name="setup_provider">Establecer provedor</string>
+ <string name="setup_error_title">Fallo na configuración</string>
+ <string name="setup_error_configure_button">Configurar</string>
+ <string name="setup_error_close_button">Saír</string>
+ <string name="setup_error_text">Algo fallou ao configurar %s co teu provedor.\n\nPodes tentalo de novo, ou saír e configurar un provedor no seguinte inicio.</string>
+ <string name="server_unreachable_message">Non se puido conectar ao servidor, por favor inténteo de novo.</string>
+ <string name="error.security.pinnedcertificate">Fallo de seguridade, anove o aplicativo ou escolla outro provedor</string>
+ <string name="malformed_url">%s non semella ser un provedor.</string>
+ <string name="certificate_error">Non é un provedor %s de confianza.</string>
+ <string name="service_is_down_error">O servizo está caído.</string>
+ <string name="configuring_provider">Configurando provedor</string>
+ <string name="incorrectly_downloaded_certificate_message">Non se descargou o seu certificado anónimo</string>
+ <string name="downloading_certificate_message">Descargando certificado VPN</string>
+ <string name="updating_certificate_message">Anovando certificado VPN</string>
+ <string name="login.riseup.warning">As usuarias de Riseup precisarán crear unha conta separada para utilizar o servizo VPN</string>
+ <string name="succesful_authentication_message">Autenticado</string>
+ <string name="authentication_failed_message">Fallou a autenticación</string>
+ <string name="registration_failed_message">Fallo no rexistro</string>
+ <string name="eip_status_start_pending">Iniciando conexión</string>
+ <string name="eip_cancel_connect_title">Cancelar a conexión?</string>
+ <string name="eip_cancel_connect_text">Hai un intento de conexión en proceso. Desexa cancelalo?</string>
+ <string name="eip.warning.browser_inconsistency">Apagar a conexión VPN? Si está desconectada a VPN podería suministrar información personal ao seu provedor de acceso a internet ou rede local.</string>
+ <string name="eip_state_not_connected">Non está a conectada! Conexión insegura!</string>
+ <string name="eip_state_connected">Conexión segura</string>
+ <string name="provider_problem">Semella que hai un problema co provedor.</string>
+ <string name="try_another_provider">Por favor, inténteo con un novo provedor ou contacte co seu.</string>
+ <string name="default_username">Anónimo</string>
+ <string name="logging_in">Conectando</string>
+ <string name="signing_up">Rexistrando</string>
+ <string name="vpn.button.turn.on">Acender</string>
+ <string name="vpn.button.turn.off">Apagar</string>
+ <string name="vpn_button_turn_off_blocking">Deixar de bloquear</string>
+ <string name="vpn_securely_routed">O seu tráfico está securizado a través de:</string>
+ <string name="vpn_securely_routed_no_internet">Non se detectou conexión a internet, cando volte enrutaremos o seu tráfico de xeito seguro a través de:</string>
+ <string name="log_fragment_title">Rexistro</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Abrir cadro de navegación</string>
+ <string name="navigation_drawer_close">Pechar cadro de navegación</string>
+ <string name="action_example">Acción de exemplo</string>
+ <string name="action_settings">Axustes</string>
+ <string name="void_vpn_establish">%s bloquea todo o tráfico saínte de internet.</string>
+ <string name="void_vpn_stopped">Deixou de bloquear todo o tráfico saínte.</string>
+ <string name="void_vpn_title">Bloqueando tráfico</string>
+ <string name="update_provider_details">Actualizar detalles do provedor</string>
+ <string name="update_certificate">Anovar certificado</string>
+ <string name="warning_eip_json_corrupted">Fallo ao anovar a configuración do provedor.</string>
+ <string name="eip_json_corrupted_user_message">Fallo ao anovar a configuración do provedor. Por favor conéctese para intentalo de novo.</string>
+ <string name="warning_client_parsing_error_gateways">As pasarelas do provedor non se recoñecen. Pode que non estén ben configuradas.</string>
+ <string name="warning_corrupted_provider_details">Os detalles gardados do provedor están corruptos. Podes actualizar %s (recomendado) ou actualizar os detalles do provedor utilizando un certificado CA comercial.</string>
+ <string name="warning_corrupted_provider_cert">O certificado gardado do provedor non é válido. Podes actualizar %s (recomendado) ou actualizar o certificado do provedor utilizando un certificado CA comercial.</string>
+ <string name="warning_expired_provider_cert">O certificado gardado do provedor caducou. Podes actualizar %s (recomendado) ou actualizar o certificado do provedor utilizando un certificado CA comercial.</string>
+ <string name="downloading_vpn_certificate_failed">Fallou a descarga do certificado do VPN. Inténteo de novo ou escolla outro provedor.</string>
+ <string name="vpn_certificate_is_invalid">O certificado do VPN non é válido. Intente descargar un novo.</string>
+ <string name="vpn_certificate_user_message">O certificado VPN non é válido. Por favor conéctese para descargar un novo.</string>
+ <string name="save_battery">Aforro de batería</string>
+ <string name="subtitle_save_battery">Desactivado cando o Hotspot da VPN está aceso</string>
+ <string name="save_battery_message">As conexións de datos en segundo plano hibernarán cando o móbil estea inactivo.</string>
+ <string name="always_on_vpn">VPN sempre activa</string>
+ <string name="subtitle_always_on_vpn">Abrir os Axustes do sistema android</string>
+ <string name="tethering">Hotspot VPN</string>
+ <string name="ipv6Firewall">Bloquear IPv6</string>
+ <string name="require_root">Require permiso root</string>
+ <string name="show_experimental">Mostrar funcións experimentais</string>
+ <string name="hide_experimental">Agochar funcións experimentais</string>
+ <string name="tethering_enabled_message">Asegúrate de ter antes activada a compartición da conexión en <![CDATA[<b>system settings</b>]]>.</string>
+ <string name="tethering_message">Comparte a túa VPN con outros dispositivos vía:</string>
+ <string name="tethering_wifi">Punto de acceso Wi-Fi</string>
+ <string name="tethering_usb">Compartición USB</string>
+ <string name="tethering_bluetooth">Compartición Bluetooth</string>
+ <string name="do_not_show_again">Non mostrar de novo</string>
+ <string name="always_on_vpn_user_message">Para activar VPN sempre acendida nos axustes VPN de Android pulse na icona de configuración [img src] en active a opción.</string>
+ <string name="always_on_blocking_vpn_user_message">Para protexer de xeito óptimo a túa intimidade, deberías activar a opción \"Bloquear conexións sen VPN\".</string>
+ <string name="donate_title">Doar</string>
+ <string name="donate_default_message">Considere doar agora si valora a comunicación segura que é sinxela para a usuaria final e a proveedora do servizo.</string>
+ <string name="donate_message">LEAP depende das doazóns e contribucións. Por favor, doe agroa si valora a comunicación segura que é sinxela tanto para a usuaria final como a proveedora do servizo.</string>
+ <string name="donate_button_remind_later">Lembramo máis tarde</string>
+ <string name="donate_button_donate">Doar</string>
+ <string name="obfuscated_connection">Usando unha conexión agochada.</string>
+ <string name="obfuscated_connection_try">Intentando facer unha conexión agochada.</string>
+ <string name="nav_drawer_obfuscated_connection">Usar Pontes</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Evitar o filtro VPN</string>
+ <string name="warning_exclude_apps_message">Ten coidado ao excluír apps da VPN. Esto revelará a túa identidade e comprometerá a seguridade.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d app desprotexida</item>
+ <item quantity="other">%dapps desprotexidas</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s non puido conectar. Pode que as conexións VPN sexan bloqueadas. Queres conectar utilizando conexións agochadas?</string>
+ <string name="warning_no_more_gateways_no_pt">%s non puido conectar. Queres volver a intentalo?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s non puido conectar usando conexións VPN agochadas. Queres intentar conectar utilizando a VPN estándar?</string>
+ <string name="warning_option_try_pt">Intentar conexión agochada</string>
+ <string name="warning_option_try_ovpn">Intentar conexión estándar</string>
+ <string name="vpn_error_establish">Android non puido establecer o servizo VPN.</string>
+ <string name="root_permission_error">%s non pode executar ferramentas como Punto de acceso VPN ou cortalumes IPv6 se non ten acceso root.</string>
+ <string name="qs_enable_vpn">Inciar %s</string>
+ <string name="version_update_found">Toca aquí para iniciar a descarga.</string>
+ <string name="version_update_title">Hai unha nova versión de %s dispoñible</string>
+ <string name="version_update_apk_description">Descargando a nova versión de %s</string>
+ <string name="version_update_download_title">Descargouse a nova versión de %s.</string>
+ <string name="version_update_download_description">Toca aquí para instalar a actualización.</string>
+ <string name="version_update_error_pgp_verification">Fallou a verificación PGP. Ignorando a descarga.</string>
+ <string name="version_update_error">Fallou a actualización.</string>
+ <string name="version_update_error_permissions">Non tes permiso para instalar a app.</string>
+ <string name="gateway_selection_title">Establecer localización</string>
+ <string name="gateway_selection_automatic">Automática</string>
+ <string name="log_onehop_create">Estabelecendo unha conexión cifrada co directorio</string>
+ <string name="log_loading_keys">Cargando os certificados de autoridade</string>
+ <string name="log_circuit_create">Estabelecendo o circuíto Tor</string>
+ <string name="log_done">Executando</string>
+ <string name="hide">Agochar</string>
+ <string name="advanced_settings">Configuración avanzada</string>
</resources>
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index 31f1bc58..4c6b2fd6 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -1,213 +1,209 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">נסה שוב</string>
- <string name="repository_url_text">קוד מקור זמין בכתובת https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">גשש סוגיות זמין בכתובת
+ <string name="retry">נסה שוב</string>
+ <string name="repository_url_text">קוד מקור זמין בכתובת https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">גשש סוגיות זמין בכתובת
https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">תרגומים מבורכים ומוערכים. ראה את מיזם Transifex שלנו בכתובת https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">החלף ספק</string>
- <string name="info">מידע</string>
- <string name="show_connection_details">הראה פרטי חיבור</string>
- <string name="connection_details">פרטי חיבור</string>
- <string name="routes_info">נתיבים: %s</string>
- <string name="routes_info6">IPv6 נתיבי: %s</string>
- <string name="error_empty_username">שם המשתמש חייב לא להיות ריק.</string>
- <string name="cert_from_keystore">השיג את התעודה \'%s\' ממחסן מפתחות</string>
- <string name="provider_label">ספק:</string>
- <string name="provider_label_none">לא נקבעה תצורת ספק</string>
- <string name="status_unknown">מעמד בלתי ידוע.</string>
- <string name="eip_service_label">גישת אינטרנט VPN מוצפנת</string>
- <string name="configuration_wizard_title">בחר ספק שירות</string>
- <string name="add_provider">הוסף ספק חדש</string>
- <string name="introduce_new_provider">הוסף ספק חדש של שירות</string>
- <string name="save">שמור</string>
- <string name="new_provider_uri">שם תחום</string>
- <string name="valid_url_entered">הכתובת תקפה</string>
- <string name="not_valid_url_entered">הכתובת מעוותת</string>
- <string name="provider_details_title">פרטי ספק</string>
- <string name="use_anonymously_button">השתמש באופן אלמוני</string>
- <string name="username_hint">שם משתמש</string>
- <string name="username_ask">אנא הכנס את שם המשתמש שלך</string>
- <string name="password_ask">אנא הכנס את הסיסמה שלך</string>
- <string name="password_hint">סיסמה</string>
- <string name="password_match">הסיסמאות תואמות</string>
- <string name="password_mismatch">הסיסמאות אינן תואמות</string>
- <string name="user_message">הודעת משתמש</string>
- <string name="about_fragment_title">אודות</string>
- <string name="exclude_apps_fragment_title">שלול יישומים מן VPN</string>
- <string name="error_srp_math_error_user_message">נסה שוב: שגיאת מתמטיקה של שרת</string>
- <string name="error_bad_user_password_user_message">שם משתמש או סיסמה שגויים</string>
- <string name="error_not_valid_password_user_message">סיסמה חייבת להיות באורך 8 תווים לפחות</string>
- <string name="error_client_http_user_message">נסה שוב: שגיאת HTTP של לקוח</string>
- <string name="error_io_exception_user_message">נסה שוב: שגיאת ק/פ</string>
- <string name="error_json_exception_user_message">נסה שוב: תגובה גרועה מהשרת</string>
- <string name="error_no_such_algorithm_exception_user_message">אלגוריתם הצפנה לא נמצא. אנא שדרג את Android!</string>
- <string name="signup_or_login_button">הירשם/התחבר</string>
- <string name="login_button">התחבר</string>
- <string name="login_to_profile">התחבר אל פרופיל</string>
- <string name="logout_button">התנתק</string>
- <string name="signup_button">הירשם</string>
- <string name="create_profile">צור פרופיל</string>
- <string name="setup_provider">קבע ספק</string>
- <string name="setup_error_title">שגיאת תצורה</string>
- <string name="setup_error_configure_button">תצר</string>
- <string name="setup_error_close_button">צא</string>
- <string name="setup_error_text">הייתה שגיאה בתיצור %s ם הספק הנבחר שלך.\n\nאתה יכול לבחור לתצר מחדש, או לצאת ולתצר ספק בעת ההפעלה הבאה.</string>
- <string name="setup_error_text_custom">הייתה שגיאה בתיצור %s.\n\nאתה יכול לבחור לתצר מחדש, או לצאת.</string>
- <string name="server_unreachable_message">השרת בלתי נגיש, אנא נסה שוב.</string>
- <string name="error.security.pinnedcertificate">שגיאת אבטחה. שדרג את היישום או נסה ספק אחר.</string>
- <string name="malformed_url">נראה שזה לא ספק %s.</string>
- <string name="certificate_error">זה לא ספק %s מהימן.</string>
- <string name="service_is_down_error">השירות אינו פעיל.</string>
- <string name="configuring_provider">מתצר ספק</string>
- <string name="incorrectly_downloaded_certificate_message">התעודה האלמונית שלך לא ירדה</string>
- <string name="downloading_certificate_message">מוריד תעודת VPN</string>
- <string name="updating_certificate_message">מעדכן תעודת VPN</string>
- <string name="login.riseup.warning">משתמשי Riseup יצטרכו ליצור חשבון נפרד כדי להשתמש בשירות ה־VPN</string>
- <string name="succesful_authentication_message">אומת בהצלחה</string>
- <string name="authentication_failed_message">אימות נכשל</string>
- <string name="registration_failed_message">הרשמה נכשלה</string>
- <string name="eip_status_start_pending">יוזם חיבור</string>
- <string name="eip_cancel_connect_title">לבטל חיבור?</string>
- <string name="eip_cancel_connect_text">יש ניסיון חיבור בתהליך. האם אתה רוצה לבטל אותו?</string>
- <string name="eip.warning.browser_inconsistency">לכבות חיבור VPN? כאשר ה־VPN כבוי, אתה עשוי להדליף מידע אישי אל ספק האינטרנט או הרשת המקומית שלך.</string>
- <string name="eip_state_not_connected">לא רץ! חיבור בלתי מאובטח!</string>
- <string name="eip_state_connected">חיבור מאובטח</string>
- <string name="provider_problem">נראה שיש בעיה עם הספק.</string>
- <string name="try_another_provider">אנא נסה ספק אחר, או צור קשר עם הספק שלך.</string>
- <string name="default_username">אלמוני</string>
- <string name="logging_in">התחברות</string>
- <string name="signing_up">הרשמה</string>
- <string name="vpn.button.turn.on">הפעל</string>
- <string name="vpn.button.turn.off">כבה</string>
- <string name="vpn_button_turn_off_blocking">הפסק לחסום</string>
- <string name="vpn_securely_routed">התעבורה שלך מנותבת באופן מאובטח דרך:</string>
- <string name="vpn_securely_routed_no_internet">לא התגלה חיבור אינטרנט, כשהוא יחזור אנחנו ננתב את התעבורה שלך באופן מאובטח דרך:</string>
- <string name="log_fragment_title">יומן</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">פתח מגירת ניווט</string>
- <string name="navigation_drawer_close">סגור מגירת ניווט</string>
- <string name="action_example">פעולת דוגמה</string>
- <string name="action_settings">הגדרות</string>
- <string name="void_vpn_establish">%s חוסם את כל תעבורת האינטרנט היוצאת.</string>
- <string name="void_vpn_error_establish">חסימת כל תעבורת האינטרנט נכשלה.</string>
- <string name="void_vpn_stopped">הפסיק לחסום את כל תעבורת האינטרנט היוצאת.</string>
- <string name="void_vpn_title">חוסם תעבורה</string>
- <string name="update_provider_details">עדכן פרטי ספק</string>
- <string name="update_certificate">עדכן תעודה</string>
- <string name="warning_eip_json_corrupted">עדכון תצורת ספק נכשל.</string>
- <string name="eip_json_corrupted_user_message">עדכון תצורת ספק נכשל. אנא התחבר כדי לנסות שוב.</string>
- <string name="warning_client_parsing_error_gateways">שערי הכניסה של הספק לא יכלו להיות מזוהים. ייתכן שהם תוצרו באופן שגוי.</string>
- <string name="warning_corrupted_provider_details">פרטי הספק השמורים פגומים. אתה יכול לעדכן את %s (מומלץ) או לעדכן את פרטי הספק ע״י שימוש בתעודת CA מסחרית.</string>
- <string name="warning_corrupted_provider_cert">התעודה המאוחסנת של הספק בלתי תקפה. אתה יכול לעדכן את %s (מומלץ) או לעדכן את תעודת הספק ע״י שימוש בתעודת CA מסחרית.</string>
- <string name="warning_expired_provider_cert">התעודה השמורה של הספק פגה. אתה יכול לעדכן את %s (מומלץ) או לעדכן את תעודת הספק ע״י שימוש בתעודת CA מסחרית.</string>
- <string name="downloading_vpn_certificate_failed">הורדת תעודת VPN נכשלה. נסה שוב או בחר ספק אחר.</string>
- <string name="vpn_certificate_is_invalid">תעודת VPN בלתי תקפה. נסה להוריד אחת חדשה.</string>
- <string name="vpn_certificate_user_message">תעודת ה־VPN בלתי תקפה. אנא התחבר כדי להוריד אחת חדשה.</string>
- <string name="save_battery">חסוך סוללה</string>
- <string name="subtitle_save_battery">מושבת בזמן שנקודה חמה של VPN מופעלת</string>
- <string name="save_battery_message">חיבורים של נתוני רקע יחרפו כאשר הטלפון שלך אינו פעיל.</string>
- <string name="always_on_vpn">VPN פועל תמיד</string>
- <string name="subtitle_always_on_vpn">פתח הגדרות מערכת של Android</string>
- <string name="tethering">נקודה חמה של VPN</string>
- <string name="ipv6Firewall">חסום IPv6</string>
- <string name="require_root">דורש הרשאות שורש</string>
- <string name="show_experimental">הראה מאפיינים ניסיוניים</string>
- <string name="hide_experimental">הסתר מאפיינים ניסיוניים</string>
- <string name="experimental_features">מאפיינים ניסיוניים</string>
- <string name="tethering_enabled_message">אנא וודא כי אפשרת מצב מודם ב<![CDATA[<b>הגדרות המערכת</b>]]> תחילה.</string>
- <string name="tethering_message">שתף את ה־VPN שלך עם מכשירים אחרים דרך:</string>
- <string name="tethering_wifi">נקודה חמה של Wi-Fi</string>
- <string name="tethering_usb">מצב מודם דרך USB</string>
- <string name="tethering_bluetooth">מצב מודם דרך Bluetooth</string>
- <string name="do_not_show_again">אל תראה שוב</string>
- <string name="always_on_vpn_user_message">כדי לאפשר VPN תמיד פועל בהגדרות VPN של Android, לחץ על הצלמית הגדר [img src] והפעל את המתג.</string>
- <string name="always_on_blocking_vpn_user_message">כדי להגן על פרטיותך באופן הרצוי ביותר, אתה גם צריך להפעיל את האפשרות \"חסום חיבורים ללא VPN\".</string>
- <string name="donate_title">תרום</string>
- <string name="donate_default_message">אנא תרום היום אם אתה מעריך תקשורת מאובטחת שקלה גם עבור משתמש־הקצה וגם עבור ספק השירות.</string>
- <string name="donate_message">LEAP מסתמך על תרומות ומענקים. אנא תרום היום אם אתה מעריך תקשורת מאובטחת שקלה גם עבור משתמש־הקצה וגם עבור ספק השירות.</string>
- <string name="donate_button_remind_later">הזכר לי מאוחר יותר</string>
- <string name="donate_button_donate">תרום</string>
- <string name="obfuscated_connection">משתמש בחיבור מאופל.</string>
- <string name="obfuscated_connection_try">מנסה חיבור מאופל.</string>
- <string name="nav_drawer_obfuscated_connection">השתמש בגשרים</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">עקוף סינון VPN</string>
- <string name="warning_exclude_apps_message">היזהר מפני שלילת יישומים מן VPN. שלילה תחשוף את זהותך ותפגום באבטחתך.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">יישום בלתי מוגן %d</item>
- <item quantity="two">%d יישומים בלתי מוגנים</item>
- <item quantity="other">%d יישומים בלתי מוגנים</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s לא היה יכול להתחבר. ייתכן שחיבורי VPN נחסמו. האם אתה רוצה לנסות להתחבר ע״י שימוש בחיבורים מאופלים?</string>
- <string name="warning_no_more_gateways_no_pt">%s לא היה יכול להתחבר. הם אתה רוצה לנסות מחדש?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s לא היה יכול להתחבר ע״י שימוש בחיבורי VPN מאורפלים. האם אתה רוצה לנסות להתחבר ע״י שימוש בחיבור VPN תקני?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s לא היה יכול להתחבר אל %2$s. האם אתה רוצה לנסות להתחבר באופן אוטומטי עם המיקום הטוב ביותר?</string>
- <string name="warning_option_try_best">נסה את המיקום הטוב ביותר</string>
- <string name="warning_option_try_pt">נסה חיבור מאופל</string>
- <string name="warning_option_try_ovpn">נסה חיבור תקני</string>
- <string name="vpn_error_establish">Android נכשל בהקמת שירות VPN.</string>
- <string name="root_permission_error">%s אינו יכול לבצע מאפיינים כמו נקודה חמה של VPN או חומת אש IPv6 בלי הרשאות שורש.</string>
- <string name="qs_enable_vpn">התחל את %s</string>
- <string name="version_update_found">הקש כאן כדי להתחיל את ההורדה.</string>
- <string name="version_update_title">גרסה חדשה של %s נמצאה.</string>
- <string name="version_update_apk_description">מוריד גרסה חדשה של %s</string>
- <string name="version_update_download_title">גרסה חדשה של %s ירדה.</string>
- <string name="version_update_download_description">הקש כאן כדי להתקין את העדכון.</string>
- <string name="version_update_error_pgp_verification">שגיאת וידוא PGP. מתעלם מהורדה.</string>
- <string name="version_update_error">עדכון נכשל.</string>
- <string name="version_update_error_permissions">אין הרשאות להתקין את היישום.</string>
- <string name="gateway_selection_title">בחר מיקום</string>
- <string name="gateway_selection_recommended_location">מיקום מומלץ</string>
- <string name="gateway_selection_recommended">מומלץ</string>
- <string name="gateway_selection_manually">בחר באופן ידני</string>
- <string name="gateway_selection_automatic_location">השתמש באופן אוטומטי בחיבור הטוב ביותר</string>
- <string name="gateway_selection_automatic">אוטומטי</string>
- <string name="reconnecting">מתחבר מחדש…</string>
- <string name="tor_starting">מתחיל גשרים עבור עקיפת צנזורה…</string>
- <string name="tor_stopping">עוצר גשרים</string>
- <string name="tor_started">משתמש בגשרים עבור עקיפת צנזורה</string>
- <string name="log_conn_done_pt">מחובר אל תחבורה נתיקה</string>
- <string name="log_conn_pt">מתחבר אל תחבורה נתיקה</string>
- <string name="log_conn_done">מחובר אל ממסר</string>
- <string name="log_handshake">מתמקח על חיבור עם ממסר</string>
- <string name="log_handshake_done">חיבור עם ממסר התמקח</string>
- <string name="log_onehop_create">מקים חיבור סיפרייה מוצפן</string>
- <string name="log_requesting_status">מבקש הסכמת מעמד רשת</string>
- <string name="log_loading_status">טוען הסכמת מעמד רשת</string>
- <string name="log_loading_keys">טוען אישורי רָשׁוּת</string>
- <string name="log_requesting_descriptors">מבקש מתארי ממסר</string>
- <string name="log_loading_descriptors">טוען מתארי ממסר</string>
- <string name="log_enough_dirinfo">מידע תיקיות מספיק נטען כדי לבנות מעגלים</string>
- <string name="log_ap_handshake_done">התמקחות הסתיימה עם ממסר לבנות מעגלים</string>
- <string name="log_circuit_create">מקים מעגל Tor</string>
- <string name="log_done">רץ</string>
- <string name="channel_name_tor_service">שירות גשרים %s</string>
- <string name="channel_description_tor_service">מודיע לגבי שימוש בגשרים בזמן תיצור %s.</string>
- <string name="error_tor_timeout">התחלת גשרים נכשלה. האם אתה רוצה לנסות מחדש או להמשיך עם חיבור מאובטח בלתי מאופל כדי לתצר את %s?</string>
- <string name="retry_unobfuscated">נסה בלתי מאופל</string>
- <string name="hide">הסתר</string>
- <string name="error_network_connection">אל %s אין חיבור אינטרנט. אנא בדוק את ההגדרות של Wi-Fi וההגדרות של נתונים סלולריים.</string>
- <string name="censorship_circumvention">עקיפת צנזורה</string>
- <string name="use_snowflake">השתמש ב־Snowflake</string>
- <string name="snowflake_description">הגן על תהליך תצורה נגד צנזורה.</string>
- <string name="vpn_settings">הגדרות VPN</string>
- <string name="prefer_udp">השתמש ב־UDP אם זמין</string>
- <string name="prefer_udp_subtitle">UDP יכול להיות מהיר יותר וטוב יותר עבור הזרמה, אבל הוא לא עובד עבור כל הרשתות.</string>
- <string name="disabled_while_bridges_on">מושבת בזמן שימוש בגשרים.</string>
- <string name="hint_bridges">רק מיקומים שתומכים בגשרים ניתנים לבחירה כרגע.</string>
- <string name="option_disable_bridges">השבת גשרים</string>
- <string name="eip_state_insecure">חיבור בלתי מאובטח</string>
- <string name="connection_not_connected">ייתכן שאתה מדליף מידע אל ספק האינטרנט שלך או הרשת המקומית שלך.</string>
- <string name="eip_state_no_network">אין לך חיבור עובד של אינטרנט. ברגע שתחזיר אותו, תחובר באופן אוטומטי אל</string>
- <string name="eip_state_blocking">%1$s חוסם את כל תעבורת האינטרנט.</string>
- <string name="disabled_while_udp_on">מושבת כאשר UDP פועל.</string>
- <string name="advanced_settings">הגדרות מתקדמות</string>
- <string name="cancel_connection">התנתק</string>
- <string name="welcome">ברוך הבא!</string>
- <string name="next">הבא</string>
- <string name="qr_scanner_prompt">סרוק קוד QR</string>
- <string name="details">פרטים</string>
- <string name="tor_status">מעמד Tor</string>
- <string name="select_language">בחר שפה</string>
- <string name="scan_qr_code">סרוק קוד QR</string>
+ <string name="translation_project_text">תרגומים מבורכים ומוערכים. ראה את מיזם Transifex שלנו בכתובת https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">החלף ספק</string>
+ <string name="info">מידע</string>
+ <string name="show_connection_details">הראה פרטי חיבור</string>
+ <string name="connection_details">פרטי חיבור</string>
+ <string name="routes_info">נתיבים: %s</string>
+ <string name="routes_info6">IPv6 נתיבי: %s</string>
+ <string name="error_empty_username">שם המשתמש חייב לא להיות ריק.</string>
+ <string name="cert_from_keystore">השיג את התעודה \'%s\' ממחסן מפתחות</string>
+ <string name="provider_label">ספק:</string>
+ <string name="provider_label_none">לא נקבעה תצורת ספק</string>
+ <string name="status_unknown">מעמד בלתי ידוע.</string>
+ <string name="eip_service_label">גישת אינטרנט VPN מוצפנת</string>
+ <string name="configuration_wizard_title">בחר ספק שירות</string>
+ <string name="add_provider">הוסף ספק חדש</string>
+ <string name="introduce_new_provider">הוסף ספק חדש של שירות</string>
+ <string name="save">שמור</string>
+ <string name="new_provider_uri">שם תחום</string>
+ <string name="valid_url_entered">הכתובת תקפה</string>
+ <string name="not_valid_url_entered">הכתובת מעוותת</string>
+ <string name="provider_details_title">פרטי ספק</string>
+ <string name="use_anonymously_button">השתמש באופן אלמוני</string>
+ <string name="username_hint">שם משתמש</string>
+ <string name="username_ask">אנא הכנס את שם המשתמש שלך</string>
+ <string name="password_ask">אנא הכנס את הסיסמה שלך</string>
+ <string name="password_hint">סיסמה</string>
+ <string name="password_match">הסיסמאות תואמות</string>
+ <string name="password_mismatch">הסיסמאות אינן תואמות</string>
+ <string name="user_message">הודעת משתמש</string>
+ <string name="about_fragment_title">אודות</string>
+ <string name="exclude_apps_fragment_title">שלול יישומים מן VPN</string>
+ <string name="error_srp_math_error_user_message">נסה שוב: שגיאת מתמטיקה של שרת</string>
+ <string name="error_bad_user_password_user_message">שם משתמש או סיסמה שגויים</string>
+ <string name="error_not_valid_password_user_message">סיסמה חייבת להיות באורך 8 תווים לפחות</string>
+ <string name="error_client_http_user_message">נסה שוב: שגיאת HTTP של לקוח</string>
+ <string name="error_io_exception_user_message">נסה שוב: שגיאת ק/פ</string>
+ <string name="error_json_exception_user_message">נסה שוב: תגובה גרועה מהשרת</string>
+ <string name="error_no_such_algorithm_exception_user_message">אלגוריתם הצפנה לא נמצא. אנא שדרג את Android!</string>
+ <string name="signup_or_login_button">הירשם/התחבר</string>
+ <string name="login_button">התחבר</string>
+ <string name="login_to_profile">התחבר אל פרופיל</string>
+ <string name="logout_button">התנתק</string>
+ <string name="signup_button">הירשם</string>
+ <string name="create_profile">צור פרופיל</string>
+ <string name="setup_provider">קבע ספק</string>
+ <string name="setup_error_title">שגיאת תצורה</string>
+ <string name="setup_error_configure_button">תצר</string>
+ <string name="setup_error_close_button">צא</string>
+ <string name="setup_error_text">הייתה שגיאה בתיצור %s ם הספק הנבחר שלך.\n\nאתה יכול לבחור לתצר מחדש, או לצאת ולתצר ספק בעת ההפעלה הבאה.</string>
+ <string name="setup_error_text_custom">הייתה שגיאה בתיצור %s.\n\nאתה יכול לבחור לתצר מחדש, או לצאת.</string>
+ <string name="server_unreachable_message">השרת בלתי נגיש, אנא נסה שוב.</string>
+ <string name="error.security.pinnedcertificate">שגיאת אבטחה. שדרג את היישום או נסה ספק אחר.</string>
+ <string name="malformed_url">נראה שזה לא ספק %s.</string>
+ <string name="certificate_error">זה לא ספק %s מהימן.</string>
+ <string name="service_is_down_error">השירות אינו פעיל.</string>
+ <string name="configuring_provider">מתצר ספק</string>
+ <string name="downloading_certificate_message">מוריד תעודת VPN</string>
+ <string name="updating_certificate_message">מעדכן תעודת VPN</string>
+ <string name="login.riseup.warning">משתמשי Riseup יצטרכו ליצור חשבון נפרד כדי להשתמש בשירות ה־VPN</string>
+ <string name="succesful_authentication_message">אומת בהצלחה</string>
+ <string name="authentication_failed_message">אימות נכשל</string>
+ <string name="registration_failed_message">הרשמה נכשלה</string>
+ <string name="eip_status_start_pending">יוזם חיבור</string>
+ <string name="eip_cancel_connect_title">לבטל חיבור?</string>
+ <string name="eip_cancel_connect_text">יש ניסיון חיבור בתהליך. האם אתה רוצה לבטל אותו?</string>
+ <string name="eip.warning.browser_inconsistency">לכבות חיבור VPN? כאשר ה־VPN כבוי, אתה עשוי להדליף מידע אישי אל ספק האינטרנט או הרשת המקומית שלך.</string>
+ <string name="eip_state_not_connected">לא רץ! חיבור בלתי מאובטח!</string>
+ <string name="eip_state_connected">חיבור מאובטח</string>
+ <string name="provider_problem">נראה שיש בעיה עם הספק.</string>
+ <string name="try_another_provider">אנא נסה ספק אחר, או צור קשר עם הספק שלך.</string>
+ <string name="default_username">אלמוני</string>
+ <string name="logging_in">התחברות</string>
+ <string name="signing_up">הרשמה</string>
+ <string name="vpn.button.turn.on">הפעל</string>
+ <string name="vpn.button.turn.off">כבה</string>
+ <string name="vpn_button_turn_off_blocking">הפסק לחסום</string>
+ <string name="vpn_securely_routed">התעבורה שלך מנותבת באופן מאובטח דרך:</string>
+ <string name="vpn_securely_routed_no_internet">לא התגלה חיבור אינטרנט, כשהוא יחזור אנחנו ננתב את התעבורה שלך באופן מאובטח דרך:</string>
+ <string name="log_fragment_title">יומן</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">פתח מגירת ניווט</string>
+ <string name="navigation_drawer_close">סגור מגירת ניווט</string>
+ <string name="action_example">פעולת דוגמה</string>
+ <string name="action_settings">הגדרות</string>
+ <string name="void_vpn_establish">%s חוסם את כל תעבורת האינטרנט היוצאת.</string>
+ <string name="void_vpn_error_establish">חסימת כל תעבורת האינטרנט נכשלה.</string>
+ <string name="void_vpn_stopped">הפסיק לחסום את כל תעבורת האינטרנט היוצאת.</string>
+ <string name="void_vpn_title">חוסם תעבורה</string>
+ <string name="update_provider_details">עדכן פרטי ספק</string>
+ <string name="update_certificate">עדכן תעודה</string>
+ <string name="warning_eip_json_corrupted">עדכון תצורת ספק נכשל.</string>
+ <string name="eip_json_corrupted_user_message">עדכון תצורת ספק נכשל. אנא התחבר כדי לנסות שוב.</string>
+ <string name="warning_client_parsing_error_gateways">שערי הכניסה של הספק לא יכלו להיות מזוהים. ייתכן שהם תוצרו באופן שגוי.</string>
+ <string name="warning_corrupted_provider_details">פרטי הספק השמורים פגומים. אתה יכול לעדכן את %s (מומלץ) או לעדכן את פרטי הספק ע״י שימוש בתעודת CA מסחרית.</string>
+ <string name="warning_corrupted_provider_cert">התעודה המאוחסנת של הספק בלתי תקפה. אתה יכול לעדכן את %s (מומלץ) או לעדכן את תעודת הספק ע״י שימוש בתעודת CA מסחרית.</string>
+ <string name="warning_expired_provider_cert">התעודה השמורה של הספק פגה. אתה יכול לעדכן את %s (מומלץ) או לעדכן את תעודת הספק ע״י שימוש בתעודת CA מסחרית.</string>
+ <string name="downloading_vpn_certificate_failed">הורדת תעודת VPN נכשלה. נסה שוב או בחר ספק אחר.</string>
+ <string name="save_battery">חסוך סוללה</string>
+ <string name="subtitle_save_battery">מושבת בזמן שנקודה חמה של VPN מופעלת</string>
+ <string name="save_battery_message">חיבורים של נתוני רקע יחרפו כאשר הטלפון שלך אינו פעיל.</string>
+ <string name="always_on_vpn">VPN פועל תמיד</string>
+ <string name="subtitle_always_on_vpn">פתח הגדרות מערכת של Android</string>
+ <string name="tethering">נקודה חמה של VPN</string>
+ <string name="ipv6Firewall">חסום IPv6</string>
+ <string name="require_root">דורש הרשאות שורש</string>
+ <string name="show_experimental">הראה מאפיינים ניסיוניים</string>
+ <string name="hide_experimental">הסתר מאפיינים ניסיוניים</string>
+ <string name="experimental_features">מאפיינים ניסיוניים</string>
+ <string name="tethering_enabled_message">אנא וודא כי אפשרת מצב מודם ב<![CDATA[<b>הגדרות המערכת</b>]]> תחילה.</string>
+ <string name="tethering_message">שתף את ה־VPN שלך עם מכשירים אחרים דרך:</string>
+ <string name="tethering_wifi">נקודה חמה של Wi-Fi</string>
+ <string name="tethering_usb">מצב מודם דרך USB</string>
+ <string name="tethering_bluetooth">מצב מודם דרך Bluetooth</string>
+ <string name="do_not_show_again">אל תראה שוב</string>
+ <string name="always_on_vpn_user_message">כדי לאפשר VPN תמיד פועל בהגדרות VPN של Android, לחץ על הצלמית הגדר [img src] והפעל את המתג.</string>
+ <string name="always_on_blocking_vpn_user_message">כדי להגן על פרטיותך באופן הרצוי ביותר, אתה גם צריך להפעיל את האפשרות \"חסום חיבורים ללא VPN\".</string>
+ <string name="donate_title">תרום</string>
+ <string name="donate_default_message">אנא תרום היום אם אתה מעריך תקשורת מאובטחת שקלה גם עבור משתמש־הקצה וגם עבור ספק השירות.</string>
+ <string name="donate_message">LEAP מסתמך על תרומות ומענקים. אנא תרום היום אם אתה מעריך תקשורת מאובטחת שקלה גם עבור משתמש־הקצה וגם עבור ספק השירות.</string>
+ <string name="donate_button_remind_later">הזכר לי מאוחר יותר</string>
+ <string name="donate_button_donate">תרום</string>
+ <string name="obfuscated_connection">משתמש בחיבור מאופל.</string>
+ <string name="obfuscated_connection_try">מנסה חיבור מאופל.</string>
+ <string name="nav_drawer_obfuscated_connection">השתמש בגשרים</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">עקוף סינון VPN</string>
+ <string name="warning_exclude_apps_message">היזהר מפני שלילת יישומים מן VPN. שלילה תחשוף את זהותך ותפגום באבטחתך.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">יישום בלתי מוגן %d</item>
+ <item quantity="two">%d יישומים בלתי מוגנים</item>
+ <item quantity="other">%d יישומים בלתי מוגנים</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s לא היה יכול להתחבר. ייתכן שחיבורי VPN נחסמו. האם אתה רוצה לנסות להתחבר ע״י שימוש בחיבורים מאופלים?</string>
+ <string name="warning_no_more_gateways_no_pt">%s לא היה יכול להתחבר. הם אתה רוצה לנסות מחדש?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s לא היה יכול להתחבר ע״י שימוש בחיבורי VPN מאורפלים. האם אתה רוצה לנסות להתחבר ע״י שימוש בחיבור VPN תקני?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s לא היה יכול להתחבר אל %2$s. האם אתה רוצה לנסות להתחבר באופן אוטומטי עם המיקום הטוב ביותר?</string>
+ <string name="warning_option_try_best">נסה את המיקום הטוב ביותר</string>
+ <string name="warning_option_try_pt">נסה חיבור מאופל</string>
+ <string name="warning_option_try_ovpn">נסה חיבור תקני</string>
+ <string name="vpn_error_establish">Android נכשל בהקמת שירות VPN.</string>
+ <string name="root_permission_error">%s אינו יכול לבצע מאפיינים כמו נקודה חמה של VPN או חומת אש IPv6 בלי הרשאות שורש.</string>
+ <string name="qs_enable_vpn">התחל את %s</string>
+ <string name="version_update_found">הקש כאן כדי להתחיל את ההורדה.</string>
+ <string name="version_update_title">גרסה חדשה של %s נמצאה.</string>
+ <string name="version_update_apk_description">מוריד גרסה חדשה של %s</string>
+ <string name="version_update_download_title">גרסה חדשה של %s ירדה.</string>
+ <string name="version_update_download_description">הקש כאן כדי להתקין את העדכון.</string>
+ <string name="version_update_error_pgp_verification">שגיאת וידוא PGP. מתעלם מהורדה.</string>
+ <string name="version_update_error">עדכון נכשל.</string>
+ <string name="version_update_error_permissions">אין הרשאות להתקין את היישום.</string>
+ <string name="gateway_selection_title">בחר מיקום</string>
+ <string name="gateway_selection_recommended_location">מיקום מומלץ</string>
+ <string name="gateway_selection_recommended">מומלץ</string>
+ <string name="gateway_selection_manually">בחר באופן ידני</string>
+ <string name="gateway_selection_automatic_location">השתמש באופן אוטומטי בחיבור הטוב ביותר</string>
+ <string name="gateway_selection_automatic">אוטומטי</string>
+ <string name="reconnecting">מתחבר מחדש…</string>
+ <string name="tor_starting">מתחיל גשרים עבור עקיפת צנזורה…</string>
+ <string name="tor_stopping">עוצר גשרים</string>
+ <string name="tor_started">משתמש בגשרים עבור עקיפת צנזורה</string>
+ <string name="log_conn_done_pt">מחובר אל תחבורה נתיקה</string>
+ <string name="log_conn_pt">מתחבר אל תחבורה נתיקה</string>
+ <string name="log_conn_done">מחובר אל ממסר</string>
+ <string name="log_handshake">מתמקח על חיבור עם ממסר</string>
+ <string name="log_handshake_done">חיבור עם ממסר התמקח</string>
+ <string name="log_onehop_create">מקים חיבור סיפרייה מוצפן</string>
+ <string name="log_requesting_status">מבקש הסכמת מעמד רשת</string>
+ <string name="log_loading_status">טוען הסכמת מעמד רשת</string>
+ <string name="log_loading_keys">טוען אישורי רָשׁוּת</string>
+ <string name="log_requesting_descriptors">מבקש מתארי ממסר</string>
+ <string name="log_loading_descriptors">טוען מתארי ממסר</string>
+ <string name="log_enough_dirinfo">מידע תיקיות מספיק נטען כדי לבנות מעגלים</string>
+ <string name="log_ap_handshake_done">התמקחות הסתיימה עם ממסר לבנות מעגלים</string>
+ <string name="log_circuit_create">מקים מעגל Tor</string>
+ <string name="log_done">רץ</string>
+ <string name="channel_name_tor_service">שירות גשרים %s</string>
+ <string name="channel_description_tor_service">מודיע לגבי שימוש בגשרים בזמן תיצור %s.</string>
+ <string name="error_tor_timeout">התחלת גשרים נכשלה. האם אתה רוצה לנסות מחדש או להמשיך עם חיבור מאובטח בלתי מאופל כדי לתצר את %s?</string>
+ <string name="retry_unobfuscated">נסה בלתי מאופל</string>
+ <string name="hide">הסתר</string>
+ <string name="error_network_connection">אל %s אין חיבור אינטרנט. אנא בדוק את ההגדרות של Wi-Fi וההגדרות של נתונים סלולריים.</string>
+ <string name="censorship_circumvention">עקיפת צנזורה</string>
+ <string name="use_snowflake">השתמש ב־Snowflake</string>
+ <string name="snowflake_description">הגן על תהליך תצורה נגד צנזורה.</string>
+ <string name="vpn_settings">הגדרות VPN</string>
+ <string name="prefer_udp">השתמש ב־UDP אם זמין</string>
+ <string name="prefer_udp_subtitle">UDP יכול להיות מהיר יותר וטוב יותר עבור הזרמה, אבל הוא לא עובד עבור כל הרשתות.</string>
+ <string name="disabled_while_bridges_on">מושבת בזמן שימוש בגשרים.</string>
+ <string name="hint_bridges">רק מיקומים שתומכים בגשרים ניתנים לבחירה כרגע.</string>
+ <string name="option_disable_bridges">השבת גשרים</string>
+ <string name="eip_state_insecure">חיבור בלתי מאובטח</string>
+ <string name="connection_not_connected">ייתכן שאתה מדליף מידע אל ספק האינטרנט שלך או הרשת המקומית שלך.</string>
+ <string name="eip_state_no_network">אין לך חיבור עובד של אינטרנט. ברגע שתחזיר אותו, תחובר באופן אוטומטי אל</string>
+ <string name="eip_state_blocking">%1$s חוסם את כל תעבורת האינטרנט.</string>
+ <string name="disabled_while_udp_on">מושבת כאשר UDP פועל.</string>
+ <string name="advanced_settings">הגדרות מתקדמות</string>
+ <string name="cancel_connection">התנתק</string>
+ <string name="welcome">ברוך הבא!</string>
+ <string name="next">הבא</string>
+ <string name="qr_scanner_prompt">סרוק קוד QR</string>
+ <string name="details">פרטים</string>
+ <string name="tor_status">מעמד Tor</string>
+ <string name="select_language">בחר שפה</string>
</resources>
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index 9ee1a5b1..cdcc7cc4 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -1,64 +1,64 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Pokušaj ponovo</string>
- <string name="switch_provider_menu_option">Switch provider</string>
- <string name="info">Info</string>
- <string name="show_connection_details">Pokaži detalje veze</string>
- <string name="routes_info">Rute: %s</string>
- <string name="error_empty_username">Korisničko ime ne smije biti prazno!</string>
- <string name="provider_label">Pružatelj:</string>
- <string name="provider_label_none">Nema konfiguriranog pružatelja</string>
- <string name="status_unknown">Status nepoznat.</string>
- <string name="configuration_wizard_title">Odaberi pružatelja usluga</string>
- <string name="add_provider">Dodaj novog pružatelja</string>
- <string name="introduce_new_provider">Dodaj novog pružatelja usluga</string>
- <string name="save">Spremi</string>
- <string name="new_provider_uri">Ime domene</string>
- <string name="provider_details_title">Detalji o pružatelju</string>
- <string name="use_anonymously_button">Koristi anonimno</string>
- <string name="username_hint">Korisničko ime</string>
- <string name="username_ask">Unesite Vaše korisničko ime</string>
- <string name="password_ask">Unesi svoju lozinku</string>
- <string name="password_hint">Lozinka</string>
- <string name="password_match">Lozinke su iste</string>
- <string name="password_mismatch">Lozinke nisu iste</string>
- <string name="user_message">Poruka korisnika</string>
- <string name="about_fragment_title">O nama</string>
- <string name="error_bad_user_password_user_message">Netočna lozinka ili korisničko ime</string>
- <string name="error_client_http_user_message">Pokušajte ponovo: Client HTTP error</string>
- <string name="error_io_exception_user_message">Pokušajte ponovo: I/O error</string>
- <string name="error_json_exception_user_message">Pokušajte ponovo: Bad response from the server</string>
- <string name="login_button">Prijavite se</string>
- <string name="logout_button">Odjavite se</string>
- <string name="signup_button">Prijavi se</string>
- <string name="setup_error_title">Greška u konfiguraciji</string>
- <string name="setup_error_configure_button">Konfiguriraj</string>
- <string name="setup_error_close_button">Izađi</string>
- <string name="configuring_provider">Konfiguriram pružatelja</string>
- <string name="succesful_authentication_message">Autenticiran</string>
- <string name="authentication_failed_message">Autentifikacija nije uspjela</string>
- <string name="eip_status_start_pending">Pokrećem vezu</string>
- <string name="eip_cancel_connect_title">Prekinuti vezu?</string>
- <string name="eip_cancel_connect_text">U tijeku je pokušaj povezivanja. Želite li ga prekinuti?</string>
- <string name="default_username">Anonimno</string>
- <string name="logging_in">Prijavljivanje</string>
- <string name="log_fragment_title">Dnevnik</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Otvori navigacijsku ladicu</string>
- <string name="navigation_drawer_close">Zatvori navigacijsku ladicu</string>
- <string name="action_settings">Postavke</string>
- <string name="always_on_vpn">Uvijek upaljen VPN</string>
- <string name="donate_title">Donirajte</string>
- <string name="donate_button_remind_later">Podsjeti me kasnije</string>
- <string name="donate_button_donate">Donirajte</string>
- <string name="nav_drawer_obfuscated_connection">Koristi Mostove</string>
- <string name="gateway_selection_recommended">Preporučeno</string>
- <string name="gateway_selection_automatic">Automatski</string>
- <string name="log_onehop_create">Uspostavljanje šifrirane veze direktorija</string>
- <string name="log_loading_keys">Učitavanje certifikata autoriteta</string>
- <string name="log_circuit_create">Uspostavljanje Tor kruga</string>
- <string name="log_done">Pokrenuto</string>
- <string name="hide">Sakrij</string>
- <string name="use_snowflake">Koristi Snowflake</string>
- <string name="cancel_connection">Odspoji</string>
+ <string name="retry">Pokušaj ponovo</string>
+ <string name="switch_provider_menu_option">Switch provider</string>
+ <string name="info">Info</string>
+ <string name="show_connection_details">Pokaži detalje veze</string>
+ <string name="routes_info">Rute: %s</string>
+ <string name="error_empty_username">Korisničko ime ne smije biti prazno!</string>
+ <string name="provider_label">Pružatelj:</string>
+ <string name="provider_label_none">Nema konfiguriranog pružatelja</string>
+ <string name="status_unknown">Status nepoznat.</string>
+ <string name="configuration_wizard_title">Odaberi pružatelja usluga</string>
+ <string name="add_provider">Dodaj novog pružatelja</string>
+ <string name="introduce_new_provider">Dodaj novog pružatelja usluga</string>
+ <string name="save">Spremi</string>
+ <string name="new_provider_uri">Ime domene</string>
+ <string name="provider_details_title">Detalji o pružatelju</string>
+ <string name="use_anonymously_button">Koristi anonimno</string>
+ <string name="username_hint">Korisničko ime</string>
+ <string name="username_ask">Unesite Vaše korisničko ime</string>
+ <string name="password_ask">Unesi svoju lozinku</string>
+ <string name="password_hint">Lozinka</string>
+ <string name="password_match">Lozinke su iste</string>
+ <string name="password_mismatch">Lozinke nisu iste</string>
+ <string name="user_message">Poruka korisnika</string>
+ <string name="about_fragment_title">O nama</string>
+ <string name="error_bad_user_password_user_message">Netočna lozinka ili korisničko ime</string>
+ <string name="error_client_http_user_message">Pokušajte ponovo: Client HTTP error</string>
+ <string name="error_io_exception_user_message">Pokušajte ponovo: I/O error</string>
+ <string name="error_json_exception_user_message">Pokušajte ponovo: Bad response from the server</string>
+ <string name="login_button">Prijavite se</string>
+ <string name="logout_button">Odjavite se</string>
+ <string name="signup_button">Prijavi se</string>
+ <string name="setup_error_title">Greška u konfiguraciji</string>
+ <string name="setup_error_configure_button">Konfiguriraj</string>
+ <string name="setup_error_close_button">Izađi</string>
+ <string name="configuring_provider">Konfiguriram pružatelja</string>
+ <string name="succesful_authentication_message">Autenticiran</string>
+ <string name="authentication_failed_message">Autentifikacija nije uspjela</string>
+ <string name="eip_status_start_pending">Pokrećem vezu</string>
+ <string name="eip_cancel_connect_title">Prekinuti vezu?</string>
+ <string name="eip_cancel_connect_text">U tijeku je pokušaj povezivanja. Želite li ga prekinuti?</string>
+ <string name="default_username">Anonimno</string>
+ <string name="logging_in">Prijavljivanje</string>
+ <string name="log_fragment_title">Dnevnik</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Otvori navigacijsku ladicu</string>
+ <string name="navigation_drawer_close">Zatvori navigacijsku ladicu</string>
+ <string name="action_settings">Postavke</string>
+ <string name="always_on_vpn">Uvijek upaljen VPN</string>
+ <string name="donate_title">Donirajte</string>
+ <string name="donate_button_remind_later">Podsjeti me kasnije</string>
+ <string name="donate_button_donate">Donirajte</string>
+ <string name="nav_drawer_obfuscated_connection">Koristi Mostove</string>
+ <string name="gateway_selection_recommended">Preporučeno</string>
+ <string name="gateway_selection_automatic">Automatski</string>
+ <string name="log_onehop_create">Uspostavljanje šifrirane veze direktorija</string>
+ <string name="log_loading_keys">Učitavanje certifikata autoriteta</string>
+ <string name="log_circuit_create">Uspostavljanje Tor kruga</string>
+ <string name="log_done">Pokrenuto</string>
+ <string name="hide">Sakrij</string>
+ <string name="use_snowflake">Koristi Snowflake</string>
+ <string name="cancel_connection">Odspoji</string>
</resources>
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 3a6a907d..8b063f0e 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -1,199 +1,199 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Ismétlés</string>
- <string name="repository_url_text">A forráskód elérhető itt: https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Az Issue tracker elérhető itt: https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">A fordításokat szívesen vesszük. Tekintse meg Transifex projektünket a https://www.transifex.com/projects/p/bitmask/ címen.</string>
- <string name="switch_provider_menu_option">Szolgáltató váltása</string>
- <string name="info">Információ</string>
- <string name="show_connection_details">Kapcsolat adatok mutatása</string>
- <string name="connection_details">Kapcsolat részletek</string>
- <string name="routes_info">IPv4 útvonal: %s</string>
- <string name="routes_info6">IPv6 útvonalak: %s</string>
- <string name="error_empty_username">A felhasználónév nem lehet üres.</string>
- <string name="cert_from_keystore">Kapott tanúsítvány \'%s\' a Keystore-tól</string>
- <string name="provider_label">Szolgáltató:</string>
- <string name="provider_label_none">Nincs szolgáltató konfigurálva</string>
- <string name="status_unknown">Státusz ismeretlen.</string>
- <string name="eip_service_label">Titkosított VPN internetkapcsolat</string>
- <string name="configuration_wizard_title">Válasszon szolgáltatót</string>
- <string name="add_provider">Szolgáltató hozzáadása</string>
- <string name="introduce_new_provider">Új szolgáltató hozzáadása</string>
- <string name="save">Mentés</string>
- <string name="new_provider_uri">Domain név</string>
- <string name="valid_url_entered">Az URL érvényes</string>
- <string name="not_valid_url_entered">Hibás formátumú URL</string>
- <string name="provider_details_title">Szolgáltató részletek</string>
- <string name="use_anonymously_button">Névtelenül használ</string>
- <string name="username_hint">felhasználónév</string>
- <string name="username_ask">Kérjük adja meg a felhasználó nevét</string>
- <string name="password_ask">Kérjük adja meg jelszavát</string>
- <string name="password_hint">jelszó</string>
- <string name="password_match">Jelszavak egyeznek</string>
- <string name="password_mismatch">Jelszavak nem egyeznek</string>
- <string name="user_message">Üzenet</string>
- <string name="about_fragment_title">Névjegy</string>
- <string name="exclude_apps_fragment_title">Appok kihagyása a VPN-ből</string>
- <string name="error_srp_math_error_user_message">Próbálja újra: szerver matematikai hiba</string>
- <string name="error_bad_user_password_user_message">Hibás felhasználó-jelszó páros</string>
- <string name="error_not_valid_password_user_message">Legalább 8 karakter hosszúnak kell lennie</string>
- <string name="error_client_http_user_message">Próbálja újra: Kliens HTTP hiba</string>
- <string name="error_io_exception_user_message">Próbálja újra: I/O hiba</string>
- <string name="error_json_exception_user_message">Próbálja újra: Hibás válasz a szervertől</string>
- <string name="error_no_such_algorithm_exception_user_message">Titkosító algoritmus nem található. Kérjük frissítse Androidját!</string>
- <string name="signup_or_login_button">Feliratkozás/Belépés</string>
- <string name="login_button">Belépés</string>
- <string name="login_to_profile">Belépés a profilba</string>
- <string name="logout_button">Kilépés</string>
- <string name="signup_button">Feliratkozás</string>
- <string name="create_profile">Profil létrehozása</string>
- <string name="setup_provider">Szolgáltató beállítása</string>
- <string name="setup_error_title">Konfigurációs hiba</string>
- <string name="setup_error_configure_button">Konfigurálás</string>
- <string name="setup_error_close_button">Kilépés</string>
- <string name="setup_error_text">Hiba történt a(z) %s konfigurálása közben a kiválasztott szolgáltatóval.\n\nÁtkonfigurálhatja vagy kiléphet és beállíthatja a legközelebbi indításkor.</string>
- <string name="server_unreachable_message">A szerver elérhetetlen, kérjük próbálja újra.</string>
- <string name="error.security.pinnedcertificate">Biztonsági hiba, frissítse az alkalmazást vagy válasszon másik szolgáltatót.</string>
- <string name="malformed_url">Ez nem látszik egy %s szolgáltatónak.</string>
- <string name="certificate_error">Ez egy nem megbízható %s szolgáltató.</string>
- <string name="service_is_down_error">A szolgáltatás áll.</string>
- <string name="configuring_provider">Szolgáltató konfigurálása</string>
- <string name="incorrectly_downloaded_certificate_message">Az Ön anonim tanúsítványa nem került letöltésre</string>
- <string name="downloading_certificate_message">VPN tanúsítvány letöltése</string>
- <string name="updating_certificate_message">VPN tanúsítvány frissítése</string>
- <string name="login.riseup.warning">A Riseup felhasználóknak egy külön fiók kell a VPN szolgáltatáshoz</string>
- <string name="succesful_authentication_message">Hitelesítve</string>
- <string name="authentication_failed_message">Hitelesítés sikertelen</string>
- <string name="registration_failed_message">Regisztráció sikertelen</string>
- <string name="eip_status_start_pending">Kapcsolat létrehozása</string>
- <string name="eip_cancel_connect_title">Megszakítja a kapcsolatot?</string>
- <string name="eip_cancel_connect_text">Egy kapcsolódási kísérlet folyamatban van. Megszakítja?</string>
- <string name="eip.warning.browser_inconsistency">Kikapcsoljuk a VPN-t? Ha VPN kikapcsolt, akkor lehet hogy személyes adatot szivárogtat internet szolgáltatójának vagy a helyi hálózatnak.</string>
- <string name="eip_state_not_connected">Nem fut! A kapcsolat nem biztonságos!</string>
- <string name="eip_state_connected">Biztonságos kapcsolat</string>
- <string name="provider_problem">Úgy tűnik, probléma van ezzel a szolgáltatóval.</string>
- <string name="try_another_provider">Kérjük próbáljon másik szolgáltatót vagy vegye fel kapcsolatot sajátjával.</string>
- <string name="default_username">Névtelen</string>
- <string name="logging_in">Belépés</string>
- <string name="signing_up">Feliratkozás</string>
- <string name="vpn.button.turn.on">Bekapcsol</string>
- <string name="vpn.button.turn.off">Kikapcsolt</string>
- <string name="vpn_button_turn_off_blocking">Blokkolás leállítása</string>
- <string name="vpn_securely_routed">A forgalma biztonságosan keresztül routolt:</string>
- <string name="vpn_securely_routed_no_internet">Nem található internet kapcsolat, ha visszajön, a kapcsolatát a következőn keresztül routoljuk:</string>
- <string name="log_fragment_title">Napló</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Navigációs fiók megnyitása</string>
- <string name="navigation_drawer_close">Navigációs fiók bezárása</string>
- <string name="action_example">Példa művelet</string>
- <string name="action_settings">Beállítások</string>
- <string name="void_vpn_establish">%sblokkol minden kimenő internet forgalmat.</string>
- <string name="void_vpn_stopped">Minden kimenő internet forgalom blokkolása leállítva.</string>
- <string name="void_vpn_title">Forgalom blokkolása</string>
- <string name="update_provider_details">Szolgáltató adatainak frissítése</string>
- <string name="update_certificate">Tanúsítvány frissítése</string>
- <string name="warning_eip_json_corrupted">Szolgáltató konfiguráció frissítése sikertelen.</string>
- <string name="eip_json_corrupted_user_message">Szolgáltató konfiguráció frissítése sikertelen. Kérjük lépjen be és próbálja újra.</string>
- <string name="warning_client_parsing_error_gateways">A szolgáltató gateway nem felismerhető. Vélhetően hibásan konfigurált.</string>
- <string name="warning_corrupted_provider_details">A tárolt szolgáltató részletek sérültek. Frissítheti őket %s (ajánlott) vagy a szolgáltató adatait egy kereskedelmi tanúsítvánnyal.</string>
- <string name="warning_corrupted_provider_cert">A tárolt szolgáltató tanúsítvány érvénytelen. Frissítheti őket %s (ajánlott) vagy a szolgáltató adatait egy kereskedelmi tanúsítvánnyal.</string>
- <string name="warning_expired_provider_cert">A tárolt szolgáltató tanúsítvány lejárt. Frissítheti őket %s (ajánlott) vagy a szolgáltató adatait egy kereskedelmi tanúsítvánnyal.</string>
- <string name="downloading_vpn_certificate_failed">A VPN tanúsítvány letöltése sikertelen. Próbálja újra vagy válasszon másik szolgáltatót.</string>
- <string name="vpn_certificate_is_invalid">A VPN tanúsítvány érvénytelen. Próbáljon meg letölteni egy újat.</string>
- <string name="vpn_certificate_user_message">A VPN tanúsítvány érvénytelen. Kérjük lépjen be egy új letöltéséhez.</string>
- <string name="save_battery">Akkumulátor takarékos</string>
- <string name="subtitle_save_battery">Letiltás, ha VPN Hotspot bekapcsolt</string>
- <string name="save_battery_message">A háttér adat kommunikációk hibernálásra kerülnek, ha a telefonja inaktív.</string>
- <string name="always_on_vpn">Mindig bekapcsolt VPN</string>
- <string name="subtitle_always_on_vpn">Az Android Rendszer beállítások megnyitása</string>
- <string name="tethering">VPN Hotspot</string>
- <string name="ipv6Firewall">IPv6 letiltása</string>
- <string name="require_root">Szükséges root jogosultság</string>
- <string name="show_experimental">Kísérleti funkciók megjelenítése</string>
- <string name="hide_experimental">Kísérleti funkciók elrejtése</string>
- <string name="experimental_features">Kísérleti funkciók</string>
- <string name="tethering_enabled_message">Kérjük biztosítsa, hogy engedélyezi a tetheringet a <![CDATA[<b>rendszer beállításokba</b>]]> először.</string>
- <string name="tethering_message">Oszd meg a VPN-t más eszközökkel ezen keresztül:</string>
- <string name="tethering_wifi">Wifi hotspot</string>
- <string name="tethering_usb">USB tethering</string>
- <string name="tethering_bluetooth">Bluetooth tethering</string>
- <string name="do_not_show_again">Ne mutassa újra</string>
- <string name="always_on_vpn_user_message">Ahhoz, hogy beállítsa a mindig engedélyezett VPN-t kattintson beállítások ikonra [img src] az Android VPN beállítások között és kapcsolja be a kapcsolót.</string>
- <string name="always_on_blocking_vpn_user_message">Ahhoz, hogy az adatait optimálisan védje, javasolt bekapcsolni az \"Blokkolja a kapcsolatokat VPN nélkül\" opciót is. </string>
- <string name="donate_title">Támogatás</string>
- <string name="donate_default_message">Kérjük támogasson még ma, ha értékeli a biztonságos kommunikációt ami egyszerű a végfelhasználónak és a szolgáltatónak is.</string>
- <string name="donate_message">A LEAP támogatásoktól és adományoktól függ. Kérjük támogasson még ma, ha értékeli a biztonságos kommunikációt ami egyszerű a végfelhasználónak és a szolgáltatónak is.</string>
- <string name="donate_button_remind_later">Emlékeztessen később</string>
- <string name="donate_button_donate">Támogatás</string>
- <string name="obfuscated_connection">Obfuszkált csatorna használata.</string>
- <string name="obfuscated_connection_try">Obfuszkált csatorna létrehozás megkísérlése.</string>
- <string name="nav_drawer_obfuscated_connection">Hidak használata</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">VPN szűrés megkerülése</string>
- <string name="warning_exclude_apps_message">Legyen óvatos, milyen appokat zár ki a VPN-ből. Ez felfedheti identitását és kompromittálhaja biztonságát.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d védetlen app</item>
- <item quantity="other">%d védetlen app</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s nem tud csatlakozni. Lehet, hogy a VPN kapcsolatok n. Szeretné megpróbálni hagyományos VPN kapcsolaton?</string>
- <string name="warning_no_more_gateways_no_pt">%s nem tud csatlakozni. Megpróbálja újra?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s nem tud csatlakozni obfuszkált VPN kapcsolatokn. Szeretné megpróbálni hagyományos VPN kapcsolaton?</string>
- <string name="warning_option_try_pt">Obfuszkált kapcsolat próbálkozás</string>
- <string name="warning_option_try_ovpn">Hagyományos kapcsolat próbálkozás</string>
- <string name="vpn_error_establish">Az Androidnak nem sikerült létre hozni VPN szolgáltatást.</string>
- <string name="root_permission_error">%s nem tud elindítani szolgáltatásokat, mint VPN Hotpsot vagy IPv6 tűzfal, root jogok nélkül.</string>
- <string name="qs_enable_vpn">%s indítása</string>
- <string name="version_update_found">Koppints itt a letöltés elindításához.</string>
- <string name="version_update_title">Egy új %s verzió elérhető.</string>
- <string name="version_update_apk_description">A %s új verzió letöltése</string>
- <string name="version_update_download_title">Az új %s verzió letöltésre került.</string>
- <string name="version_update_download_description">Koppintson ide a frissítés telepítéséhez.</string>
- <string name="version_update_error_pgp_verification">PGP ellenőrzési hiba. Letöltés figyelmen kívül hagyása.</string>
- <string name="version_update_error">Frissítés sikertelen.</string>
- <string name="version_update_error_permissions">Nincs jogosultság az app telepítésére.</string>
- <string name="gateway_selection_title">Hely kiválasztása</string>
- <string name="gateway_selection_recommended_location">Ajánlott hely</string>
- <string name="gateway_selection_recommended">Ajánlott</string>
- <string name="gateway_selection_manually">Kézi kiválasztás</string>
- <string name="gateway_selection_automatic">Automatikus</string>
- <string name="reconnecting">Újrakapcsolódás...</string>
- <string name="tor_starting">Hidak indítása a cenzúra megkerülése érdekében...</string>
- <string name="log_conn_done_pt">Csatlakoztatva a cserélhető átvitelhez</string>
- <string name="log_conn_pt">Csatlakozás a cserélhető átvitelhez</string>
- <string name="log_conn_done">Csatlakoztatva egy reléhez</string>
- <string name="log_onehop_create">Titkosított címtárkapcsolat létrehozása</string>
- <string name="log_loading_keys">Tanúsítványkiadó tanúsítványok betöltése</string>
- <string name="log_requesting_descriptors">Relé leírók kérése</string>
- <string name="log_loading_descriptors">Relé leírók betöltése</string>
- <string name="log_enough_dirinfo">Elegendő könyvtár információ betöltve az áramkörök építéséhez</string>
- <string name="log_circuit_create">Tor kapcsolat felépítése</string>
- <string name="log_done">Fut</string>
- <string name="channel_name_tor_service">%s híd szolgáltatás</string>
- <string name="channel_description_tor_service">Informál a hidak használatáról a(z) %s konfigurálása alatt.</string>
- <string name="error_tor_timeout">A hidak indítása sikertelen. Szeretnéd megpróbálni egy obfuszkálatlan biztonságos kapcsolaton a(z) %s konfigurálását?</string>
- <string name="retry_unobfuscated">Obfuszkáció nélküli újrapróbálkozás</string>
- <string name="hide">Elrejt</string>
- <string name="error_network_connection">%s nem kapcsolódik az internethez. Kérjük ellenőrizd a WiFi és mobil hálózati beállításaid.</string>
- <string name="censorship_circumvention">Cenzúra megkerülés</string>
- <string name="use_snowflake">Snowflake használata</string>
- <string name="snowflake_description">A konfigurációs folyamat védelme cenzúra ellen.</string>
- <string name="vpn_settings">VPN beállítások</string>
- <string name="prefer_udp">UDP használata, ha elérhető</string>
- <string name="prefer_udp_subtitle">Az UDP gyorsabb lehet streamelésre, de nem minden hálózatban működik.</string>
- <string name="disabled_while_bridges_on">Letiltva a hidak használata esetén.</string>
- <string name="hint_bridges">Csak hidakat támogató helyek választhatók jelenleg.</string>
- <string name="option_disable_bridges">Hidak tiltása</string>
- <string name="eip_state_insecure">Nem biztonságos kapcsolat</string>
- <string name="connection_not_connected">Információk szivárogtathatsz az internet szolgáltatód vagy a helyi hálózat felé.</string>
- <string name="eip_state_no_network">Nincs működő internet kapcsolatod. Ha visszajött, automatikusan csatlakoztatva leszel</string>
- <string name="eip_state_blocking">%1$s blokkolja az internet forgalmat.</string>
- <string name="disabled_while_udp_on">Letiltás, ha az UDP bekapcsolt.</string>
- <string name="cancel_connection">Kapcsolat bontása</string>
- <string name="welcome">Köszöntjük!</string>
- <string name="next">Következő</string>
- <string name="qr_scanner_prompt">QR kód beolvasása</string>
- <string name="details">Részletek</string>
- <string name="tor_status">Tor állapot</string>
- <string name="select_language">Nyelv választása</string>
- <string name="validation_status_success">Jó</string>
- <string name="scan_qr_code">QR kód beolvasása</string>
+ <string name="retry">Ismétlés</string>
+ <string name="repository_url_text">A forráskód elérhető itt: https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Az Issue tracker elérhető itt: https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">A fordításokat szívesen vesszük. Tekintse meg Transifex projektünket a https://www.transifex.com/projects/p/bitmask/ címen.</string>
+ <string name="switch_provider_menu_option">Szolgáltató váltása</string>
+ <string name="info">Információ</string>
+ <string name="show_connection_details">Kapcsolat adatok mutatása</string>
+ <string name="connection_details">Kapcsolat részletek</string>
+ <string name="routes_info">IPv4 útvonal: %s</string>
+ <string name="routes_info6">IPv6 útvonalak: %s</string>
+ <string name="error_empty_username">A felhasználónév nem lehet üres.</string>
+ <string name="cert_from_keystore">Kapott tanúsítvány \'%s\' a Keystore-tól</string>
+ <string name="provider_label">Szolgáltató:</string>
+ <string name="provider_label_none">Nincs szolgáltató konfigurálva</string>
+ <string name="status_unknown">Státusz ismeretlen.</string>
+ <string name="eip_service_label">Titkosított VPN internetkapcsolat</string>
+ <string name="configuration_wizard_title">Válasszon szolgáltatót</string>
+ <string name="add_provider">Szolgáltató hozzáadása</string>
+ <string name="introduce_new_provider">Új szolgáltató hozzáadása</string>
+ <string name="save">Mentés</string>
+ <string name="new_provider_uri">Domain név</string>
+ <string name="valid_url_entered">Az URL érvényes</string>
+ <string name="not_valid_url_entered">Hibás formátumú URL</string>
+ <string name="provider_details_title">Szolgáltató részletek</string>
+ <string name="use_anonymously_button">Névtelenül használ</string>
+ <string name="username_hint">felhasználónév</string>
+ <string name="username_ask">Kérjük adja meg a felhasználó nevét</string>
+ <string name="password_ask">Kérjük adja meg jelszavát</string>
+ <string name="password_hint">jelszó</string>
+ <string name="password_match">Jelszavak egyeznek</string>
+ <string name="password_mismatch">Jelszavak nem egyeznek</string>
+ <string name="user_message">Üzenet</string>
+ <string name="about_fragment_title">Névjegy</string>
+ <string name="exclude_apps_fragment_title">Appok kihagyása a VPN-ből</string>
+ <string name="error_srp_math_error_user_message">Próbálja újra: szerver matematikai hiba</string>
+ <string name="error_bad_user_password_user_message">Hibás felhasználó-jelszó páros</string>
+ <string name="error_not_valid_password_user_message">Legalább 8 karakter hosszúnak kell lennie</string>
+ <string name="error_client_http_user_message">Próbálja újra: Kliens HTTP hiba</string>
+ <string name="error_io_exception_user_message">Próbálja újra: I/O hiba</string>
+ <string name="error_json_exception_user_message">Próbálja újra: Hibás válasz a szervertől</string>
+ <string name="error_no_such_algorithm_exception_user_message">Titkosító algoritmus nem található. Kérjük frissítse Androidját!</string>
+ <string name="signup_or_login_button">Feliratkozás/Belépés</string>
+ <string name="login_button">Belépés</string>
+ <string name="login_to_profile">Belépés a profilba</string>
+ <string name="logout_button">Kilépés</string>
+ <string name="signup_button">Feliratkozás</string>
+ <string name="create_profile">Profil létrehozása</string>
+ <string name="setup_provider">Szolgáltató beállítása</string>
+ <string name="setup_error_title">Konfigurációs hiba</string>
+ <string name="setup_error_configure_button">Konfigurálás</string>
+ <string name="setup_error_close_button">Kilépés</string>
+ <string name="setup_error_text">Hiba történt a(z) %s konfigurálása közben a kiválasztott szolgáltatóval.\n\nÁtkonfigurálhatja vagy kiléphet és beállíthatja a legközelebbi indításkor.</string>
+ <string name="server_unreachable_message">A szerver elérhetetlen, kérjük próbálja újra.</string>
+ <string name="error.security.pinnedcertificate">Biztonsági hiba, frissítse az alkalmazást vagy válasszon másik szolgáltatót.</string>
+ <string name="malformed_url">Ez nem látszik egy %s szolgáltatónak.</string>
+ <string name="certificate_error">Ez egy nem megbízható %s szolgáltató.</string>
+ <string name="service_is_down_error">A szolgáltatás áll.</string>
+ <string name="configuring_provider">Szolgáltató konfigurálása</string>
+ <string name="incorrectly_downloaded_certificate_message">Az Ön anonim tanúsítványa nem került letöltésre</string>
+ <string name="downloading_certificate_message">VPN tanúsítvány letöltése</string>
+ <string name="updating_certificate_message">VPN tanúsítvány frissítése</string>
+ <string name="login.riseup.warning">A Riseup felhasználóknak egy külön fiók kell a VPN szolgáltatáshoz</string>
+ <string name="succesful_authentication_message">Hitelesítve</string>
+ <string name="authentication_failed_message">Hitelesítés sikertelen</string>
+ <string name="registration_failed_message">Regisztráció sikertelen</string>
+ <string name="eip_status_start_pending">Kapcsolat létrehozása</string>
+ <string name="eip_cancel_connect_title">Megszakítja a kapcsolatot?</string>
+ <string name="eip_cancel_connect_text">Egy kapcsolódási kísérlet folyamatban van. Megszakítja?</string>
+ <string name="eip.warning.browser_inconsistency">Kikapcsoljuk a VPN-t? Ha VPN kikapcsolt, akkor lehet hogy személyes adatot szivárogtat internet szolgáltatójának vagy a helyi hálózatnak.</string>
+ <string name="eip_state_not_connected">Nem fut! A kapcsolat nem biztonságos!</string>
+ <string name="eip_state_connected">Biztonságos kapcsolat</string>
+ <string name="provider_problem">Úgy tűnik, probléma van ezzel a szolgáltatóval.</string>
+ <string name="try_another_provider">Kérjük próbáljon másik szolgáltatót vagy vegye fel kapcsolatot sajátjával.</string>
+ <string name="default_username">Névtelen</string>
+ <string name="logging_in">Belépés</string>
+ <string name="signing_up">Feliratkozás</string>
+ <string name="vpn.button.turn.on">Bekapcsol</string>
+ <string name="vpn.button.turn.off">Kikapcsolt</string>
+ <string name="vpn_button_turn_off_blocking">Blokkolás leállítása</string>
+ <string name="vpn_securely_routed">A forgalma biztonságosan keresztül routolt:</string>
+ <string name="vpn_securely_routed_no_internet">Nem található internet kapcsolat, ha visszajön, a kapcsolatát a következőn keresztül routoljuk:</string>
+ <string name="log_fragment_title">Napló</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Navigációs fiók megnyitása</string>
+ <string name="navigation_drawer_close">Navigációs fiók bezárása</string>
+ <string name="action_example">Példa művelet</string>
+ <string name="action_settings">Beállítások</string>
+ <string name="void_vpn_establish">%sblokkol minden kimenő internet forgalmat.</string>
+ <string name="void_vpn_stopped">Minden kimenő internet forgalom blokkolása leállítva.</string>
+ <string name="void_vpn_title">Forgalom blokkolása</string>
+ <string name="update_provider_details">Szolgáltató adatainak frissítése</string>
+ <string name="update_certificate">Tanúsítvány frissítése</string>
+ <string name="warning_eip_json_corrupted">Szolgáltató konfiguráció frissítése sikertelen.</string>
+ <string name="eip_json_corrupted_user_message">Szolgáltató konfiguráció frissítése sikertelen. Kérjük lépjen be és próbálja újra.</string>
+ <string name="warning_client_parsing_error_gateways">A szolgáltató gateway nem felismerhető. Vélhetően hibásan konfigurált.</string>
+ <string name="warning_corrupted_provider_details">A tárolt szolgáltató részletek sérültek. Frissítheti őket %s (ajánlott) vagy a szolgáltató adatait egy kereskedelmi tanúsítvánnyal.</string>
+ <string name="warning_corrupted_provider_cert">A tárolt szolgáltató tanúsítvány érvénytelen. Frissítheti őket %s (ajánlott) vagy a szolgáltató adatait egy kereskedelmi tanúsítvánnyal.</string>
+ <string name="warning_expired_provider_cert">A tárolt szolgáltató tanúsítvány lejárt. Frissítheti őket %s (ajánlott) vagy a szolgáltató adatait egy kereskedelmi tanúsítvánnyal.</string>
+ <string name="downloading_vpn_certificate_failed">A VPN tanúsítvány letöltése sikertelen. Próbálja újra vagy válasszon másik szolgáltatót.</string>
+ <string name="vpn_certificate_is_invalid">A VPN tanúsítvány érvénytelen. Próbáljon meg letölteni egy újat.</string>
+ <string name="vpn_certificate_user_message">A VPN tanúsítvány érvénytelen. Kérjük lépjen be egy új letöltéséhez.</string>
+ <string name="save_battery">Akkumulátor takarékos</string>
+ <string name="subtitle_save_battery">Letiltás, ha VPN Hotspot bekapcsolt</string>
+ <string name="save_battery_message">A háttér adat kommunikációk hibernálásra kerülnek, ha a telefonja inaktív.</string>
+ <string name="always_on_vpn">Mindig bekapcsolt VPN</string>
+ <string name="subtitle_always_on_vpn">Az Android Rendszer beállítások megnyitása</string>
+ <string name="tethering">VPN Hotspot</string>
+ <string name="ipv6Firewall">IPv6 letiltása</string>
+ <string name="require_root">Szükséges root jogosultság</string>
+ <string name="show_experimental">Kísérleti funkciók megjelenítése</string>
+ <string name="hide_experimental">Kísérleti funkciók elrejtése</string>
+ <string name="experimental_features">Kísérleti funkciók</string>
+ <string name="tethering_enabled_message">Kérjük biztosítsa, hogy engedélyezi a tetheringet a <![CDATA[<b>rendszer beállításokba</b>]]> először.</string>
+ <string name="tethering_message">Oszd meg a VPN-t más eszközökkel ezen keresztül:</string>
+ <string name="tethering_wifi">Wifi hotspot</string>
+ <string name="tethering_usb">USB tethering</string>
+ <string name="tethering_bluetooth">Bluetooth tethering</string>
+ <string name="do_not_show_again">Ne mutassa újra</string>
+ <string name="always_on_vpn_user_message">Ahhoz, hogy beállítsa a mindig engedélyezett VPN-t kattintson beállítások ikonra [img src] az Android VPN beállítások között és kapcsolja be a kapcsolót.</string>
+ <string name="always_on_blocking_vpn_user_message">Ahhoz, hogy az adatait optimálisan védje, javasolt bekapcsolni az \"Blokkolja a kapcsolatokat VPN nélkül\" opciót is. </string>
+ <string name="donate_title">Támogatás</string>
+ <string name="donate_default_message">Kérjük támogasson még ma, ha értékeli a biztonságos kommunikációt ami egyszerű a végfelhasználónak és a szolgáltatónak is.</string>
+ <string name="donate_message">A LEAP támogatásoktól és adományoktól függ. Kérjük támogasson még ma, ha értékeli a biztonságos kommunikációt ami egyszerű a végfelhasználónak és a szolgáltatónak is.</string>
+ <string name="donate_button_remind_later">Emlékeztessen később</string>
+ <string name="donate_button_donate">Támogatás</string>
+ <string name="obfuscated_connection">Obfuszkált csatorna használata.</string>
+ <string name="obfuscated_connection_try">Obfuszkált csatorna létrehozás megkísérlése.</string>
+ <string name="nav_drawer_obfuscated_connection">Hidak használata</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">VPN szűrés megkerülése</string>
+ <string name="warning_exclude_apps_message">Legyen óvatos, milyen appokat zár ki a VPN-ből. Ez felfedheti identitását és kompromittálhaja biztonságát.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d védetlen app</item>
+ <item quantity="other">%d védetlen app</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s nem tud csatlakozni. Lehet, hogy a VPN kapcsolatok n. Szeretné megpróbálni hagyományos VPN kapcsolaton?</string>
+ <string name="warning_no_more_gateways_no_pt">%s nem tud csatlakozni. Megpróbálja újra?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s nem tud csatlakozni obfuszkált VPN kapcsolatokn. Szeretné megpróbálni hagyományos VPN kapcsolaton?</string>
+ <string name="warning_option_try_pt">Obfuszkált kapcsolat próbálkozás</string>
+ <string name="warning_option_try_ovpn">Hagyományos kapcsolat próbálkozás</string>
+ <string name="vpn_error_establish">Az Androidnak nem sikerült létre hozni VPN szolgáltatást.</string>
+ <string name="root_permission_error">%s nem tud elindítani szolgáltatásokat, mint VPN Hotpsot vagy IPv6 tűzfal, root jogok nélkül.</string>
+ <string name="qs_enable_vpn">%s indítása</string>
+ <string name="version_update_found">Koppints itt a letöltés elindításához.</string>
+ <string name="version_update_title">Egy új %s verzió elérhető.</string>
+ <string name="version_update_apk_description">A %s új verzió letöltése</string>
+ <string name="version_update_download_title">Az új %s verzió letöltésre került.</string>
+ <string name="version_update_download_description">Koppintson ide a frissítés telepítéséhez.</string>
+ <string name="version_update_error_pgp_verification">PGP ellenőrzési hiba. Letöltés figyelmen kívül hagyása.</string>
+ <string name="version_update_error">Frissítés sikertelen.</string>
+ <string name="version_update_error_permissions">Nincs jogosultság az app telepítésére.</string>
+ <string name="gateway_selection_title">Hely kiválasztása</string>
+ <string name="gateway_selection_recommended_location">Ajánlott hely</string>
+ <string name="gateway_selection_recommended">Ajánlott</string>
+ <string name="gateway_selection_manually">Kézi kiválasztás</string>
+ <string name="gateway_selection_automatic">Automatikus</string>
+ <string name="reconnecting">Újrakapcsolódás...</string>
+ <string name="tor_starting">Hidak indítása a cenzúra megkerülése érdekében...</string>
+ <string name="log_conn_done_pt">Csatlakoztatva a cserélhető átvitelhez</string>
+ <string name="log_conn_pt">Csatlakozás a cserélhető átvitelhez</string>
+ <string name="log_conn_done">Csatlakoztatva egy reléhez</string>
+ <string name="log_onehop_create">Titkosított címtárkapcsolat létrehozása</string>
+ <string name="log_loading_keys">Tanúsítványkiadó tanúsítványok betöltése</string>
+ <string name="log_requesting_descriptors">Relé leírók kérése</string>
+ <string name="log_loading_descriptors">Relé leírók betöltése</string>
+ <string name="log_enough_dirinfo">Elegendő könyvtár információ betöltve az áramkörök építéséhez</string>
+ <string name="log_circuit_create">Tor kapcsolat felépítése</string>
+ <string name="log_done">Fut</string>
+ <string name="channel_name_tor_service">%s híd szolgáltatás</string>
+ <string name="channel_description_tor_service">Informál a hidak használatáról a(z) %s konfigurálása alatt.</string>
+ <string name="error_tor_timeout">A hidak indítása sikertelen. Szeretnéd megpróbálni egy obfuszkálatlan biztonságos kapcsolaton a(z) %s konfigurálását?</string>
+ <string name="retry_unobfuscated">Obfuszkáció nélküli újrapróbálkozás</string>
+ <string name="hide">Elrejt</string>
+ <string name="error_network_connection">%s nem kapcsolódik az internethez. Kérjük ellenőrizd a WiFi és mobil hálózati beállításaid.</string>
+ <string name="censorship_circumvention">Cenzúra megkerülés</string>
+ <string name="use_snowflake">Snowflake használata</string>
+ <string name="snowflake_description">A konfigurációs folyamat védelme cenzúra ellen.</string>
+ <string name="vpn_settings">VPN beállítások</string>
+ <string name="prefer_udp">UDP használata, ha elérhető</string>
+ <string name="prefer_udp_subtitle">Az UDP gyorsabb lehet streamelésre, de nem minden hálózatban működik.</string>
+ <string name="disabled_while_bridges_on">Letiltva a hidak használata esetén.</string>
+ <string name="hint_bridges">Csak hidakat támogató helyek választhatók jelenleg.</string>
+ <string name="option_disable_bridges">Hidak tiltása</string>
+ <string name="eip_state_insecure">Nem biztonságos kapcsolat</string>
+ <string name="connection_not_connected">Információk szivárogtathatsz az internet szolgáltatód vagy a helyi hálózat felé.</string>
+ <string name="eip_state_no_network">Nincs működő internet kapcsolatod. Ha visszajött, automatikusan csatlakoztatva leszel</string>
+ <string name="eip_state_blocking">%1$s blokkolja az internet forgalmat.</string>
+ <string name="disabled_while_udp_on">Letiltás, ha az UDP bekapcsolt.</string>
+ <string name="cancel_connection">Kapcsolat bontása</string>
+ <string name="welcome">Köszöntjük!</string>
+ <string name="next">Következő</string>
+ <string name="qr_scanner_prompt">QR kód beolvasása</string>
+ <string name="details">Részletek</string>
+ <string name="tor_status">Tor állapot</string>
+ <string name="select_language">Nyelv választása</string>
+ <string name="validation_status_success">Jó</string>
+ <string name="scan_qr_code">QR kód beolvasása</string>
</resources>
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index da63aa0f..1dc00298 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -1,67 +1,67 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Coba Ulang</string>
- <string name="switch_provider_menu_option">Penyedia/provider beralih</string>
- <string name="info">Info</string>
- <string name="show_connection_details">Detail koneksi</string>
- <string name="routes_info">Rute: %s</string>
- <string name="error_empty_username">Nama pengguna tidak boleh kosong.</string>
- <string name="provider_label">Penyedia</string>
- <string name="provider_label_none">Tidak ada penyedia yang dikonfigurasi</string>
- <string name="status_unknown">Status tidak dikenal</string>
- <string name="configuration_wizard_title">Pilih penyedia layanan</string>
- <string name="add_provider">Tambah penyedia baru</string>
- <string name="introduce_new_provider">Tambah penyedia layanan baru</string>
- <string name="save">Simpan</string>
- <string name="new_provider_uri">Nama domain</string>
- <string name="provider_details_title">Detail penyedia</string>
- <string name="use_anonymously_button">Menggunakan secara anonim</string>
- <string name="username_hint">Nama pengguna</string>
- <string name="username_ask">Silakan masukkan nama pengguna anda</string>
- <string name="password_ask">Silahkan memasukkan password anda</string>
- <string name="password_hint">Pasword</string>
- <string name="password_match">Kata sandi cocok</string>
- <string name="password_mismatch">Kata sandi tidak cocok</string>
- <string name="user_message">Pesan pengguna</string>
- <string name="about_fragment_title">Tentang</string>
- <string name="error_bad_user_password_user_message">Nama pengguna atau kata sandi salah</string>
- <string name="error_client_http_user_message">Coba lagi: client HTTP eror</string>
- <string name="error_io_exception_user_message">Coba lagi: kesalahan I/O</string>
- <string name="error_json_exception_user_message">Coba lagi: respon buruk dari penyedia</string>
- <string name="login_button">Masuk</string>
- <string name="logout_button">Keluar</string>
- <string name="signup_button">Daftar</string>
- <string name="setup_error_title">Kesalahan konfigurasi</string>
- <string name="setup_error_configure_button">Konfigurasi</string>
- <string name="setup_error_close_button">Keluar</string>
- <string name="configuring_provider">Penyedia menkonfigurasi</string>
- <string name="succesful_authentication_message">Terkonfirmasi</string>
- <string name="authentication_failed_message">Autentikasi gagal</string>
- <string name="eip_status_start_pending">Memulai sambungan</string>
- <string name="eip_cancel_connect_title">Membatalkan sambungan</string>
- <string name="eip_cancel_connect_text">Upaya penyambungan sedang berlangsung. Apakah anda berharap untuk membatalkannya?</string>
- <string name="default_username">Anonim</string>
- <string name="logging_in">Masuk</string>
- <string name="log_fragment_title">Log</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Buka laci navigasi</string>
- <string name="navigation_drawer_close">Tutup laci navigasi</string>
- <string name="action_settings">Pengaturan</string>
- <string name="always_on_vpn">VPN selalu menyala</string>
- <string name="donate_title">Donasi</string>
- <string name="donate_button_remind_later">Ingatkan saya nanti</string>
- <string name="donate_button_donate">Donasi</string>
- <string name="nav_drawer_obfuscated_connection">Pakai Bridges</string>
- <string name="gateway_selection_title">Lokasi yang dipilih</string>
- <string name="gateway_selection_recommended">Direkomendasikan</string>
- <string name="gateway_selection_automatic">Otomatis</string>
- <string name="log_onehop_create">Membuat koneksi direktori terenkripsi </string>
- <string name="log_loading_keys">Memuat sertifikat otoritas</string>
- <string name="log_circuit_create">Membuat sirkuit Tor</string>
- <string name="log_done">Menjalankan</string>
- <string name="hide">Sembunyikan</string>
- <string name="use_snowflake">Gunakan Snowflake</string>
- <string name="vpn_settings">Pengaturan VPN</string>
- <string name="advanced_settings">Pengaturan lanjutan</string>
- <string name="cancel_connection">Putus sambungan</string>
+ <string name="retry">Coba Ulang</string>
+ <string name="switch_provider_menu_option">Penyedia/provider beralih</string>
+ <string name="info">Info</string>
+ <string name="show_connection_details">Detail koneksi</string>
+ <string name="routes_info">Rute: %s</string>
+ <string name="error_empty_username">Nama pengguna tidak boleh kosong.</string>
+ <string name="provider_label">Penyedia</string>
+ <string name="provider_label_none">Tidak ada penyedia yang dikonfigurasi</string>
+ <string name="status_unknown">Status tidak dikenal</string>
+ <string name="configuration_wizard_title">Pilih penyedia layanan</string>
+ <string name="add_provider">Tambah penyedia baru</string>
+ <string name="introduce_new_provider">Tambah penyedia layanan baru</string>
+ <string name="save">Simpan</string>
+ <string name="new_provider_uri">Nama domain</string>
+ <string name="provider_details_title">Detail penyedia</string>
+ <string name="use_anonymously_button">Menggunakan secara anonim</string>
+ <string name="username_hint">Nama pengguna</string>
+ <string name="username_ask">Silakan masukkan nama pengguna anda</string>
+ <string name="password_ask">Silahkan memasukkan password anda</string>
+ <string name="password_hint">Pasword</string>
+ <string name="password_match">Kata sandi cocok</string>
+ <string name="password_mismatch">Kata sandi tidak cocok</string>
+ <string name="user_message">Pesan pengguna</string>
+ <string name="about_fragment_title">Tentang</string>
+ <string name="error_bad_user_password_user_message">Nama pengguna atau kata sandi salah</string>
+ <string name="error_client_http_user_message">Coba lagi: client HTTP eror</string>
+ <string name="error_io_exception_user_message">Coba lagi: kesalahan I/O</string>
+ <string name="error_json_exception_user_message">Coba lagi: respon buruk dari penyedia</string>
+ <string name="login_button">Masuk</string>
+ <string name="logout_button">Keluar</string>
+ <string name="signup_button">Daftar</string>
+ <string name="setup_error_title">Kesalahan konfigurasi</string>
+ <string name="setup_error_configure_button">Konfigurasi</string>
+ <string name="setup_error_close_button">Keluar</string>
+ <string name="configuring_provider">Penyedia menkonfigurasi</string>
+ <string name="succesful_authentication_message">Terkonfirmasi</string>
+ <string name="authentication_failed_message">Autentikasi gagal</string>
+ <string name="eip_status_start_pending">Memulai sambungan</string>
+ <string name="eip_cancel_connect_title">Membatalkan sambungan</string>
+ <string name="eip_cancel_connect_text">Upaya penyambungan sedang berlangsung. Apakah anda berharap untuk membatalkannya?</string>
+ <string name="default_username">Anonim</string>
+ <string name="logging_in">Masuk</string>
+ <string name="log_fragment_title">Log</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Buka laci navigasi</string>
+ <string name="navigation_drawer_close">Tutup laci navigasi</string>
+ <string name="action_settings">Pengaturan</string>
+ <string name="always_on_vpn">VPN selalu menyala</string>
+ <string name="donate_title">Donasi</string>
+ <string name="donate_button_remind_later">Ingatkan saya nanti</string>
+ <string name="donate_button_donate">Donasi</string>
+ <string name="nav_drawer_obfuscated_connection">Pakai Bridges</string>
+ <string name="gateway_selection_title">Lokasi yang dipilih</string>
+ <string name="gateway_selection_recommended">Direkomendasikan</string>
+ <string name="gateway_selection_automatic">Otomatis</string>
+ <string name="log_onehop_create">Membuat koneksi direktori terenkripsi </string>
+ <string name="log_loading_keys">Memuat sertifikat otoritas</string>
+ <string name="log_circuit_create">Membuat sirkuit Tor</string>
+ <string name="log_done">Menjalankan</string>
+ <string name="hide">Sembunyikan</string>
+ <string name="use_snowflake">Gunakan Snowflake</string>
+ <string name="vpn_settings">Pengaturan VPN</string>
+ <string name="advanced_settings">Pengaturan lanjutan</string>
+ <string name="cancel_connection">Putus sambungan</string>
</resources>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 58ef4de9..7c713159 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -1,128 +1,128 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Riprova</string>
- <string name="repository_url_text">Codice sorgente disponibile all\'indirizzo https://0xacab.org/leap/bitmask_android</string>
- <string name="translation_project_text">Le traduzioni sono benvenute e apprezzate. Visitare la pagina del progetto su Transifex https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Cambia provider</string>
- <string name="info">Informazioni</string>
- <string name="show_connection_details">Visualizza i dettagli della connessione</string>
- <string name="connection_details">Dettagli connessione</string>
- <string name="routes_info">Instradamenti (route): %s</string>
- <string name="routes_info6">Instradamenti IPv6: %s</string>
- <string name="error_empty_username">Il nome utente non deve essere vuoto.</string>
- <string name="cert_from_keystore">Ottenuto il certificato \'%s\' dal keystore</string>
- <string name="provider_label">Provider:</string>
- <string name="provider_label_none">Nessun provider configurato</string>
- <string name="status_unknown">Stato sconosciuto.</string>
- <string name="configuration_wizard_title">Seleziona un provider di servizi</string>
- <string name="add_provider">Aggiungi nuovo Provider</string>
- <string name="introduce_new_provider">Aggiungi un nuovo provider di servizi</string>
- <string name="save">Salva</string>
- <string name="new_provider_uri">Nome dominio</string>
- <string name="valid_url_entered">L\'URL è valido</string>
- <string name="not_valid_url_entered">URL malformato</string>
- <string name="provider_details_title">Dettagli provider</string>
- <string name="use_anonymously_button">Usa in modo anonimo</string>
- <string name="username_hint">nome utente</string>
- <string name="username_ask">Inserire il nome utente</string>
- <string name="password_ask">Inserire la password</string>
- <string name="password_hint">password</string>
- <string name="password_match">Le password corrispondono</string>
- <string name="password_mismatch">Le password non corrispondono</string>
- <string name="user_message">Messaggio utente</string>
- <string name="about_fragment_title">Informazioni</string>
- <string name="error_srp_math_error_user_message">Riprova: Errore matematico del server</string>
- <string name="error_bad_user_password_user_message">Nome utente o password errati</string>
- <string name="error_not_valid_password_user_message">Deve essere composta da almeno 8 caratteri</string>
- <string name="error_client_http_user_message">Riprova: errore Client HTTP</string>
- <string name="error_io_exception_user_message">Riprova: errore I/O</string>
- <string name="error_json_exception_user_message">Riprova: risposta errata dal server</string>
- <string name="signup_or_login_button">Registrati/Accedi</string>
- <string name="login_button">Accedi</string>
- <string name="login_to_profile">Accedi al profilo</string>
- <string name="logout_button">Disconnetti</string>
- <string name="signup_button">Iscriviti</string>
- <string name="create_profile">Crea profilo</string>
- <string name="setup_error_title">Errore di Configurazione</string>
- <string name="setup_error_configure_button">Configura</string>
- <string name="setup_error_close_button">Esci</string>
- <string name="malformed_url">Non sembra essere un provider %s.</string>
- <string name="service_is_down_error">Il servizio non è disponibile.</string>
- <string name="configuring_provider">Configurazione provider</string>
- <string name="incorrectly_downloaded_certificate_message">Il tuo certificato anonimo non è stato scaricato</string>
- <string name="downloading_certificate_message">Download del certificato VPN in corso</string>
- <string name="updating_certificate_message">Aggiornamento del certificato VPN in corso</string>
- <string name="succesful_authentication_message">Autentificato</string>
- <string name="authentication_failed_message">Autenticazione fallita</string>
- <string name="registration_failed_message">Registrazione fallita</string>
- <string name="eip_status_start_pending">Iniziazione connessione</string>
- <string name="eip_cancel_connect_title">Annullare la connessione?</string>
- <string name="eip_cancel_connect_text">C\'è un tentativo di connessione in corso. Vuoi annullarlo?</string>
- <string name="eip_state_connected">Connessione sicura</string>
- <string name="provider_problem">Sembra esserci stato un problema con il provider.</string>
- <string name="try_another_provider">Prova ad usare un altro provider o contatta il tuo.</string>
- <string name="default_username">Anonimo</string>
- <string name="logging_in">Accesso in corso</string>
- <string name="vpn.button.turn.on">Accendi</string>
- <string name="vpn.button.turn.off">Spegni</string>
- <string name="log_fragment_title">Log</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Apri Drawer</string>
- <string name="navigation_drawer_close">Chiudi drawer</string>
- <string name="action_settings">Impostazioni</string>
- <string name="void_vpn_title">Blocco del traffico in corso</string>
- <string name="update_certificate">Aggiorna certificato</string>
- <string name="vpn_certificate_is_invalid">Il certificato VPN non è valido. Prova a scaricarne uno nuovo.</string>
- <string name="vpn_certificate_user_message">Il certificato VPN non è valido. Accedi per scaricarne uno nuovo.</string>
- <string name="save_battery">Risparmio batteria</string>
- <string name="always_on_vpn">VPN sempre attivo</string>
- <string name="subtitle_always_on_vpn">Apri le impostazioni di sistema di Android</string>
- <string name="tethering">Hotspot VPN</string>
- <string name="ipv6Firewall">Blocca IPv6</string>
- <string name="require_root">Richiede i permessi di root</string>
- <string name="show_experimental">Mostra funzionalità sperimentali</string>
- <string name="hide_experimental">Nascondi funzionalità sperimentali</string>
- <string name="experimental_features">Funzionalità sperimentali</string>
- <string name="tethering_wifi">Hotspot Wi-Fi</string>
- <string name="tethering_usb">Tethering USB</string>
- <string name="tethering_bluetooth">Tethering Bluetooth</string>
- <string name="do_not_show_again">Non mostrare più</string>
- <string name="donate_title">Fai una donazione</string>
- <string name="donate_button_remind_later">Ricordamelo più tardi</string>
- <string name="donate_button_donate">Fai una donazione</string>
- <string name="obfuscated_connection_try">Prova di una connessione offuscata in corso</string>
- <string name="nav_drawer_obfuscated_connection">Utilizza i bridge</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d app non protetta</item>
- <item quantity="other">%d app non protette</item>
- </plurals>
- <string name="warning_no_more_gateways_no_pt">%s non è riuscito a connettersi. Riprovare?</string>
- <string name="warning_option_try_best">Prova la posizione migliore</string>
- <string name="warning_option_try_pt">Prova a connetterti in maniera offuscata</string>
- <string name="warning_option_try_ovpn">Prova a connetterti normalmente</string>
- <string name="qs_enable_vpn">Avvia %s</string>
- <string name="version_update_found">Premi qui per iniziare il download.</string>
- <string name="version_update_title">Una nuova versione %s è stata trovata.</string>
- <string name="version_update_apk_description">Scaricamento della nuova versione %s in corso</string>
- <string name="version_update_download_description">Premi qui per installare l\'aggiornamento.</string>
- <string name="version_update_error">Aggiornamento fallito.</string>
- <string name="version_update_error_permissions">Permessi insufficienti per installare l\'app.</string>
- <string name="gateway_selection_title">Seleziona il percorso</string>
- <string name="gateway_selection_recommended">Raccomandate</string>
- <string name="gateway_selection_manually">Seleziona manualmente</string>
- <string name="gateway_selection_automatic_location">Usa automaticamente la connessione migliore</string>
- <string name="gateway_selection_automatic">Automatica</string>
- <string name="reconnecting">Riconnessione in corso...</string>
- <string name="tor_stopping">Arresto dei bridges in corso</string>
- <string name="log_conn_done_pt">Connesso ad un pluggable transport</string>
- <string name="log_onehop_create">Sto creando una connessione cifrata alla directory</string>
- <string name="log_loading_keys">Caricamento dei certificati delle authority</string>
- <string name="log_circuit_create">Sto creando un circuito Tor</string>
- <string name="log_done">Attivo</string>
- <string name="hide">Nascosto</string>
- <string name="censorship_circumvention">Aggirare la censura</string>
- <string name="use_snowflake">Usa Snowflake</string>
- <string name="prefer_udp">Utilizza UDP se disponibile</string>
- <string name="advanced_settings">Impostazioni avanzate</string>
- <string name="cancel_connection">Disconnetti</string>
+ <string name="retry">Riprova</string>
+ <string name="repository_url_text">Codice sorgente disponibile all\'indirizzo https://0xacab.org/leap/bitmask_android</string>
+ <string name="translation_project_text">Le traduzioni sono benvenute e apprezzate. Visitare la pagina del progetto su Transifex https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Cambia provider</string>
+ <string name="info">Informazioni</string>
+ <string name="show_connection_details">Visualizza i dettagli della connessione</string>
+ <string name="connection_details">Dettagli connessione</string>
+ <string name="routes_info">Instradamenti (route): %s</string>
+ <string name="routes_info6">Instradamenti IPv6: %s</string>
+ <string name="error_empty_username">Il nome utente non deve essere vuoto.</string>
+ <string name="cert_from_keystore">Ottenuto il certificato \'%s\' dal keystore</string>
+ <string name="provider_label">Provider:</string>
+ <string name="provider_label_none">Nessun provider configurato</string>
+ <string name="status_unknown">Stato sconosciuto.</string>
+ <string name="configuration_wizard_title">Seleziona un provider di servizi</string>
+ <string name="add_provider">Aggiungi nuovo Provider</string>
+ <string name="introduce_new_provider">Aggiungi un nuovo provider di servizi</string>
+ <string name="save">Salva</string>
+ <string name="new_provider_uri">Nome dominio</string>
+ <string name="valid_url_entered">L\'URL è valido</string>
+ <string name="not_valid_url_entered">URL malformato</string>
+ <string name="provider_details_title">Dettagli provider</string>
+ <string name="use_anonymously_button">Usa in modo anonimo</string>
+ <string name="username_hint">nome utente</string>
+ <string name="username_ask">Inserire il nome utente</string>
+ <string name="password_ask">Inserire la password</string>
+ <string name="password_hint">password</string>
+ <string name="password_match">Le password corrispondono</string>
+ <string name="password_mismatch">Le password non corrispondono</string>
+ <string name="user_message">Messaggio utente</string>
+ <string name="about_fragment_title">Informazioni</string>
+ <string name="error_srp_math_error_user_message">Riprova: Errore matematico del server</string>
+ <string name="error_bad_user_password_user_message">Nome utente o password errati</string>
+ <string name="error_not_valid_password_user_message">Deve essere composta da almeno 8 caratteri</string>
+ <string name="error_client_http_user_message">Riprova: errore Client HTTP</string>
+ <string name="error_io_exception_user_message">Riprova: errore I/O</string>
+ <string name="error_json_exception_user_message">Riprova: risposta errata dal server</string>
+ <string name="signup_or_login_button">Registrati/Accedi</string>
+ <string name="login_button">Accedi</string>
+ <string name="login_to_profile">Accedi al profilo</string>
+ <string name="logout_button">Disconnetti</string>
+ <string name="signup_button">Iscriviti</string>
+ <string name="create_profile">Crea profilo</string>
+ <string name="setup_error_title">Errore di Configurazione</string>
+ <string name="setup_error_configure_button">Configura</string>
+ <string name="setup_error_close_button">Esci</string>
+ <string name="malformed_url">Non sembra essere un provider %s.</string>
+ <string name="service_is_down_error">Il servizio non è disponibile.</string>
+ <string name="configuring_provider">Configurazione provider</string>
+ <string name="incorrectly_downloaded_certificate_message">Il tuo certificato anonimo non è stato scaricato</string>
+ <string name="downloading_certificate_message">Download del certificato VPN in corso</string>
+ <string name="updating_certificate_message">Aggiornamento del certificato VPN in corso</string>
+ <string name="succesful_authentication_message">Autentificato</string>
+ <string name="authentication_failed_message">Autenticazione fallita</string>
+ <string name="registration_failed_message">Registrazione fallita</string>
+ <string name="eip_status_start_pending">Iniziazione connessione</string>
+ <string name="eip_cancel_connect_title">Annullare la connessione?</string>
+ <string name="eip_cancel_connect_text">C\'è un tentativo di connessione in corso. Vuoi annullarlo?</string>
+ <string name="eip_state_connected">Connessione sicura</string>
+ <string name="provider_problem">Sembra esserci stato un problema con il provider.</string>
+ <string name="try_another_provider">Prova ad usare un altro provider o contatta il tuo.</string>
+ <string name="default_username">Anonimo</string>
+ <string name="logging_in">Accesso in corso</string>
+ <string name="vpn.button.turn.on">Accendi</string>
+ <string name="vpn.button.turn.off">Spegni</string>
+ <string name="log_fragment_title">Log</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Apri Drawer</string>
+ <string name="navigation_drawer_close">Chiudi drawer</string>
+ <string name="action_settings">Impostazioni</string>
+ <string name="void_vpn_title">Blocco del traffico in corso</string>
+ <string name="update_certificate">Aggiorna certificato</string>
+ <string name="vpn_certificate_is_invalid">Il certificato VPN non è valido. Prova a scaricarne uno nuovo.</string>
+ <string name="vpn_certificate_user_message">Il certificato VPN non è valido. Accedi per scaricarne uno nuovo.</string>
+ <string name="save_battery">Risparmio batteria</string>
+ <string name="always_on_vpn">VPN sempre attivo</string>
+ <string name="subtitle_always_on_vpn">Apri le impostazioni di sistema di Android</string>
+ <string name="tethering">Hotspot VPN</string>
+ <string name="ipv6Firewall">Blocca IPv6</string>
+ <string name="require_root">Richiede i permessi di root</string>
+ <string name="show_experimental">Mostra funzionalità sperimentali</string>
+ <string name="hide_experimental">Nascondi funzionalità sperimentali</string>
+ <string name="experimental_features">Funzionalità sperimentali</string>
+ <string name="tethering_wifi">Hotspot Wi-Fi</string>
+ <string name="tethering_usb">Tethering USB</string>
+ <string name="tethering_bluetooth">Tethering Bluetooth</string>
+ <string name="do_not_show_again">Non mostrare più</string>
+ <string name="donate_title">Fai una donazione</string>
+ <string name="donate_button_remind_later">Ricordamelo più tardi</string>
+ <string name="donate_button_donate">Fai una donazione</string>
+ <string name="obfuscated_connection_try">Prova di una connessione offuscata in corso</string>
+ <string name="nav_drawer_obfuscated_connection">Utilizza i bridge</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d app non protetta</item>
+ <item quantity="other">%d app non protette</item>
+ </plurals>
+ <string name="warning_no_more_gateways_no_pt">%s non è riuscito a connettersi. Riprovare?</string>
+ <string name="warning_option_try_best">Prova la posizione migliore</string>
+ <string name="warning_option_try_pt">Prova a connetterti in maniera offuscata</string>
+ <string name="warning_option_try_ovpn">Prova a connetterti normalmente</string>
+ <string name="qs_enable_vpn">Avvia %s</string>
+ <string name="version_update_found">Premi qui per iniziare il download.</string>
+ <string name="version_update_title">Una nuova versione %s è stata trovata.</string>
+ <string name="version_update_apk_description">Scaricamento della nuova versione %s in corso</string>
+ <string name="version_update_download_description">Premi qui per installare l\'aggiornamento.</string>
+ <string name="version_update_error">Aggiornamento fallito.</string>
+ <string name="version_update_error_permissions">Permessi insufficienti per installare l\'app.</string>
+ <string name="gateway_selection_title">Seleziona il percorso</string>
+ <string name="gateway_selection_recommended">Raccomandate</string>
+ <string name="gateway_selection_manually">Seleziona manualmente</string>
+ <string name="gateway_selection_automatic_location">Usa automaticamente la connessione migliore</string>
+ <string name="gateway_selection_automatic">Automatica</string>
+ <string name="reconnecting">Riconnessione in corso...</string>
+ <string name="tor_stopping">Arresto dei bridges in corso</string>
+ <string name="log_conn_done_pt">Connesso ad un pluggable transport</string>
+ <string name="log_onehop_create">Sto creando una connessione cifrata alla directory</string>
+ <string name="log_loading_keys">Caricamento dei certificati delle authority</string>
+ <string name="log_circuit_create">Sto creando un circuito Tor</string>
+ <string name="log_done">Attivo</string>
+ <string name="hide">Nascosto</string>
+ <string name="censorship_circumvention">Aggirare la censura</string>
+ <string name="use_snowflake">Usa Snowflake</string>
+ <string name="prefer_udp">Utilizza UDP se disponibile</string>
+ <string name="advanced_settings">Impostazioni avanzate</string>
+ <string name="cancel_connection">Disconnetti</string>
</resources>
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index d845bae1..a7e78a6f 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -1,256 +1,270 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">再試行</string>
- <string name="repository_url_text">ソースコードは https://0xacab.org/leap/bitmask_android で入手可能です</string>
- <string name="leap_tracker">問題トラッカーは https://0xacab.org/leap/bitmask_android/issues で利用できます</string>
- <string name="translation_project_text">翻訳を歓迎、感謝します。 Transifex プロジェクトをご覧ください https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">プロバイダーを切り替え</string>
- <string name="info">情報</string>
- <string name="show_connection_details">接続の詳細を表示</string>
- <string name="connection_details">接続の詳細</string>
- <string name="routes_info">経路:%s</string>
- <string name="routes_info6">IPv6 経路: %s</string>
- <string name="error_empty_username">ユーザー名を空に設定することはできません</string>
- <string name="cert_from_keystore">\'%s\'の証明書をキーストアから読み出しました</string>
- <string name="provider_label">プロバイダー:</string>
- <string name="provider_label_none">プロバイダーが設定されていません</string>
- <string name="status_unknown">状態が不明です。</string>
- <string name="eip_service_label">暗号化されたVPNインターネットアクセス</string>
- <string name="configuration_wizard_title">サービスプロバイダーを選択してください</string>
- <string name="add_provider">新しいプロバイダーを追加</string>
- <string name="introduce_new_provider">新しいサービスプロバイダーを追加</string>
- <string name="save">保存</string>
- <string name="new_provider_uri">ドメイン名</string>
- <string name="valid_url_entered">URLは有効です</string>
- <string name="not_valid_url_entered">不正なURL</string>
- <string name="provider_details_title">プロバイダー詳細</string>
- <string name="use_anonymously_button">匿名を使用</string>
- <string name="username_hint">ユーザー名</string>
- <string name="username_ask">ユーザー名を入力してください</string>
- <string name="password_ask">パスワードを入力してください</string>
- <string name="password_hint">パスワード</string>
- <string name="password_match">パスワードが一致しました</string>
- <string name="password_mismatch">パスワードが一致しません</string>
- <string name="user_message">ユーザーメッセージ</string>
- <string name="about_fragment_title">アプリについて</string>
- <string name="exclude_apps_fragment_title">VPNからアプリを除外する</string>
- <string name="error_srp_math_error_user_message">再度実行してください: サーバー計算エラー</string>
- <string name="error_bad_user_password_user_message">ユーザー名またはパスワードが間違っています</string>
- <string name="error_not_valid_password_user_message">8文字以上入力してください。</string>
- <string name="error_client_http_user_message">再度実行してください: クライアントHTTPエラー</string>
- <string name="error_io_exception_user_message">再度実行してください: I/Oエラー</string>
- <string name="error_json_exception_user_message">再度実行してください: サーバーからの応答が正しくありません</string>
- <string name="error_no_such_algorithm_exception_user_message">暗号化アルゴリズムが見つかりません。Androidをアップグレードしてください!</string>
- <string name="signup_or_login_button">サインアップ/ログイン</string>
- <string name="login_button">ログイン</string>
- <string name="login_to_profile">プロファイルにログイン</string>
- <string name="logout_button">ログアウト</string>
- <string name="signup_button">サインアップ</string>
- <string name="create_profile">プロファイルを作成</string>
- <string name="setup_provider">プロバイダーを設定</string>
- <string name="setup_error_title">構成エラー</string>
- <string name="setup_error_configure_button">構成</string>
- <string name="setup_error_close_button">終了</string>
- <string name="setup_error_text">選択されたプロバイダーで%sを構成中にエラーが発生しました。\n\nもう一度構成するか、終了して次回の起動時にプロバイダーを構成することができます。</string>
- <string name="setup_error_text_custom">%sを構成中にエラーが発生しました。\n\nもう一度構成するか、終了することができます。</string>
- <string name="server_unreachable_message">サーバーに到達できません。再度実行してください。</string>
- <string name="error.security.pinnedcertificate">セキュリティエラー。アプリをアップグレードするか別のプロバイダーを選択してください。</string>
- <string name="malformed_url">%sのプロバイダーではないようです。</string>
- <string name="certificate_error">これは、信頼できる%sプロバイダーではありません。</string>
- <string name="service_is_down_error">サービスがダウンしています。</string>
- <string name="configuring_provider">プロバイダーを構成中</string>
- <string name="incorrectly_downloaded_certificate_message">匿名の証明書はダウンロードされませんでした</string>
- <string name="downloading_certificate_message">VPN証明書のダウンロード中</string>
- <string name="updating_certificate_message">VPN証明書のアップデート中</string>
- <string name="login.riseup.warning">通知 ユーザーはVPNサービスを使用するために別のアカウントを作成する必要があります</string>
- <string name="succesful_authentication_message">認証されました</string>
- <string name="authentication_failed_message">認証に失敗しました</string>
- <string name="registration_failed_message">登録に失敗しました。</string>
- <string name="eip_status_start_pending">接続を初期化中</string>
- <string name="eip_status_connecting">VPNに接続中</string>
- <string name="eip_status_unsecured">保護されてない接続</string>
- <string name="eip_status_secured">保護された接続</string>
- <string name="eip_cancel_connect_title">接続を中止しますか?</string>
- <string name="eip_cancel_connect_text">試行中の接続があります。中止しますか?</string>
- <string name="eip.warning.browser_inconsistency">VPN接続をオフにしますか? VPNをオフにすると、お使いのインターネットプロバイダーやローカルネットワークに個人情報を漏洩することがあります。</string>
- <string name="eip_state_not_connected">稼働していません! 接続は安全ではありません!</string>
- <string name="eip_state_connected">接続は安全です</string>
- <string name="provider_problem">プロバイダーに問題があるようです。</string>
- <string name="try_another_provider">別のプロバイダーを試すか、連絡してください。</string>
- <string name="default_username">匿名</string>
- <string name="logging_in">ログイン中</string>
- <string name="signing_up">サインアップ中</string>
- <string name="vpn.button.turn.on">オンにする</string>
- <string name="vpn.button.turn.off">オフにする</string>
- <string name="vpn_button_turn_off_blocking">ブロックを停止</string>
- <string name="vpn_securely_routed">通信は安全に次の経路でルーティングされます:</string>
- <string name="vpn_securely_routed_no_internet">インターネット接続が検出されませんでした。回復した時に通信を安全にルーティングします:</string>
- <string name="log_fragment_title">履歴</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">ナビゲーションドロワーを開く</string>
- <string name="navigation_drawer_close">ナビゲーションドロワーを閉じる</string>
- <string name="action_example">サンプルアクション</string>
- <string name="action_settings">設定</string>
- <string name="void_vpn_establish">%sはすべての送信インターネット通信をブロックします</string>
- <string name="void_vpn_error_establish">すべてのインターネット通信のブロックに失敗しました。</string>
- <string name="void_vpn_stopped">すべての送信インターネット通信の遮断を停止しました。</string>
- <string name="void_vpn_title">通信を遮断</string>
- <string name="update_provider_details">プロバイダーの詳細を更新</string>
- <string name="update_certificate">証明書を更新</string>
- <string name="warning_eip_json_corrupted">プロバイダー設定の更新に失敗しました。</string>
- <string name="eip_json_corrupted_user_message">プロバイダー設定の更新に失敗しました。もう一度ログインし直してください。</string>
- <string name="warning_client_parsing_error_gateways">プロバイダーゲートウェイを認識できませんでした。正しく設定されていない可能性があります。</string>
- <string name="warning_corrupted_provider_details">保存されたプロバイダーの詳細が壊れています。 %sを更新する(推奨)か、商用CA証明書を使用してプロバイダーの詳細を更新することができます。</string>
- <string name="warning_corrupted_provider_cert">保存されたプロバイダーの証明書が無効です。 商用CA証明書を使用して%sを更新する(推奨)か、プロバイダーの証明書を更新することができます。</string>
- <string name="warning_expired_provider_cert">保存されたプロバイダーの証明書が有効期限切れです。 商用CA証明書を使用して%sを更新する(推奨)か、プロバイダー証明書を更新することができます。</string>
- <string name="downloading_vpn_certificate_failed">VPN証明書のダウンロードに失敗しました。 もう一度やり直すか、別のプロバイダーを選択してください。</string>
- <string name="vpn_certificate_is_invalid">VPN証明書を更新する時間です。接続を安全にするために、新しい証明書をダウンロードしてください。これは、通常の繰り返し行われる処理です。</string>
- <string name="vpn_certificate_user_message">VPN証明書が不正です。 ログインして新しくダウンロードし直してください。</string>
- <string name="save_battery">電池節約</string>
- <string name="subtitle_save_battery">VPNホットスポットがオンの間無効にします</string>
- <string name="save_battery_message">お使いの携帯電話を使用していない時に、バックグラウンドのデータ接続は休止状態になります。</string>
- <string name="always_on_vpn">常時VPN接続</string>
- <string name="subtitle_always_on_vpn">Androidのシステム設定を開く</string>
- <string name="tethering">VPNホットスポット</string>
- <string name="ipv6Firewall">IPv6 をブロック</string>
- <string name="require_root">root権限が必要です</string>
- <string name="show_experimental">試験的な機能を表示する</string>
- <string name="hide_experimental">試験的な機能を表示しない</string>
- <string name="experimental_features">試験的な機能</string>
- <string name="tethering_enabled_message">先に <![CDATA[<b>システム設定</b>]]> で、テザリングを有効にしてください。</string>
- <string name="tethering_message">お使いのVPNを他のデバイスと共有:</string>
- <string name="tethering_wifi">Wi-Fiホットスポット</string>
- <string name="tethering_usb">USBテザリング</string>
- <string name="tethering_bluetooth">Bluetoothテザリング</string>
- <string name="do_not_show_again">今後表示しない</string>
- <string name="always_on_vpn_user_message">Android VPNの設定で常時VPN接続を有効にするには、設定アイコン [img src] をクリックしてスイッチをオンにします。</string>
- <string name="always_on_blocking_vpn_user_message">あなたのプライバシーを最適に保護するために、「VPNを使用しない接続をブロックする」オプションも有効にするべきです。</string>
- <string name="donate_title">寄付</string>
- <string name="donate_default_message">エンドユーザーとサービスプロバイダーの両側に対する簡単で安全な通信を評価するなら、今日寄付してください。</string>
- <string name="donate_message">LEAPは寄付と助成金に依存しています。 エンドユーザーとサービスプロバイダーの両側に対して簡単で安全な通信を評価するなら、今日寄付してください。</string>
- <string name="donate_button_remind_later">後で知らせる</string>
- <string name="donate_button_donate">寄付</string>
- <string name="obfuscated_connection">難読化された接続を使用します。</string>
- <string name="obfuscated_connection_try">難読化された接続を試行します。</string>
- <string name="nav_drawer_obfuscated_connection">ブリッジを使用</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">VPNフィルタリングを迂回</string>
- <string name="warning_exclude_apps_message">注意してVPNからアプリを除外してください。これにより、身元が明らかになり、セキュリティが侵害される可能性があります。</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="other">%d の保護されていないアプリ</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%sは接続できませんでした。 VPN接続が遮断されている可能性があります。難読化された接続を使用して接続を試みますか?</string>
- <string name="warning_no_more_gateways_no_pt">%s は接続できませんでした。 再試行しますか?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s は難読化されたVPN接続を使用して接続できませんでした。標準VPNを使用して接続を試みますか?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$sは%2$sへ接続できませんでした。最適な場所へ自動的な接続を試みますか?</string>
- <string name="warning_option_try_best">最適な場所を試みる</string>
- <string name="warning_option_try_pt">難読化された接続を試みる</string>
- <string name="warning_option_try_ovpn">標準接続を試みる</string>
- <string name="vpn_error_establish">AndroidはVPNサービスを確立できませんでした。</string>
- <string name="root_permission_error">root権限なしに %s がVPNホットスポットやIPv6ファイアウォールなどの機能を実行できません。</string>
- <string name="qs_enable_vpn">%s 開始</string>
- <string name="version_update_found">ここをタップしてダウンロードを開始する</string>
- <string name="version_update_title">新しいバージョン %s が見つかりました</string>
- <string name="version_update_apk_description">新しいバージョン %s をダウンロード中</string>
- <string name="version_update_download_title">新しいバージョン %sはダウンロードされました。 </string>
- <string name="version_update_download_description">ここをタップして更新をインストールする。</string>
- <string name="version_update_error_pgp_verification">PGP検証エラー。ダウンロードを無視。</string>
- <string name="version_update_error">更新失敗。</string>
- <string name="version_update_error_permissions">アプリをインストールする権限がありません。</string>
- <string name="gateway_selection_title">場所を選択</string>
- <string name="gateway_selection_recommended_location">推奨の場所</string>
- <string name="gateway_selection_recommended">推奨</string>
- <string name="gateway_selection_manually">手動で選択</string>
- <string name="gateway_selection_automatic_location">自動的に最適な接続を使用</string>
- <string name="gateway_selection_automatic">自動</string>
- <string name="reconnecting">再接続中…</string>
- <string name="tor_starting">検閲を回避するためにブリッジを起動中…</string>
- <string name="tor_stopping">ブリッジを停止</string>
- <string name="tor_started">検閲を回避するためにブリッジを使用</string>
- <string name="log_conn_done_pt">pluggable transportに接続しました</string>
- <string name="log_conn_pt">pluggable transportに接続中です</string>
- <string name="log_conn_done">中継に接続しました</string>
- <string name="log_handshake">中継と接続をネゴシエート中です</string>
- <string name="log_handshake_done">中継と接続をネゴシエートしました</string>
- <string name="log_onehop_create">暗号化されたディレクトリとの接続を確立中</string>
- <string name="log_requesting_status">ネットワーク状態の合意を要求中</string>
- <string name="log_loading_status">ネットワーク状態の合意を読み込み中</string>
- <string name="log_loading_keys">認証局の署名を読込中</string>
- <string name="log_requesting_descriptors">中継の記述子を尋ねています</string>
- <string name="log_loading_descriptors">中継の記述子を読み込み中です</string>
- <string name="log_enough_dirinfo">回路を構築する必要なディレクトリ情報を読み込みました</string>
- <string name="log_ap_handshake_done">中継で回路を構築するネゴシエーションが終了しました</string>
- <string name="log_circuit_create">Tor 回路を確立しています</string>
- <string name="log_done">実行中</string>
- <string name="channel_name_tor_service">%sブリッジサービス</string>
- <string name="channel_description_tor_service">%sの構成中にブリッジの使用について伝えます。</string>
- <string name="error_tor_timeout">ブリッジの開始に失敗しました。再試行、または%sを構成してobfuscateではない安全な接続で続行しますか?</string>
- <string name="retry_unobfuscated">obfuscateなしに再試行</string>
- <string name="hide">隠す</string>
- <string name="error_network_connection">%sはインターネット接続がありません。WiFiとセルラーデータの設定を確認してください。</string>
- <string name="censorship_circumvention">検閲を回避</string>
- <string name="use_snowflake">Snowflake を使用</string>
- <string name="snowflake_description">検閲から設定処理を保護する。</string>
- <string name="vpn_settings">VPN設定</string>
- <string name="prefer_udp">利用可能であればUDPを使用</string>
- <string name="prefer_udp_subtitle">UDPは高速になり、ストリーミングに好ましいですが、ネットワークのすべてには動作しません。</string>
- <string name="disabled_while_bridges_on">ブリッジ使用中に無効化されます。</string>
- <string name="hint_bridges">現在選択できるのは、ブリッジをサポートしている場所のみです。</string>
- <string name="option_disable_bridges">ブリッジを無効化</string>
- <string name="eip_state_insecure">接続は安全ではありません</string>
- <string name="connection_not_connected">あなたのインターネットプロバイダーまたはローカルネットワークに情報が漏洩するかもしれません。</string>
- <string name="eip_state_no_network">インターネットに接続できない状態です。インターネット接続が戻れば、自動的に接続します</string>
- <string name="eip_state_blocking">%1$sはすべてのインターネット転送を遮断しています。</string>
- <string name="disabled_while_udp_on">UDPがオンの間は無効化されます。</string>
- <string name="advanced_settings">詳細設定</string>
- <string name="cancel_connection">切断</string>
- <string name="unknown_location">未知の場所</string>
- <string name="splash_footer">LEAPによって開発されました</string>
- <string name="welcome">ようこそ!</string>
- <string name="select_provider">プロバイダーを選択</string>
- <string name="select_provider_description">VPNを使用するとインターネットサービスプロバイダーからVPNプロバイダーへ、信頼されなければならない組織が移ります。Bitmaskは、プライバシーの保護と擁護の明瞭な歴史があるプロバイダーに限って接続します。</string>
- <string name="provider_description_riseup">プロバイダーRiseupは、解放的社会変革に粘り強く取り組む事業団体です。我々は新方式の民主主義を創り、通信の安全を意図して自己制御による自己決定を実践します。</string>
- <string name="next">次へ</string>
- <string name="add_provider_description">Bitmaskは、公開一覧に記載されていないプロバイダーに接続できます。追加するプロバイダーは、あなたが知っていて、信頼しているものであることを確かめてください。</string>
- <string name="add_provider_prompt">ここに、プロバイダーのURLを入力してください。</string>
- <string name="invite_code_provider_description">Bitmaskは非公開の招待文字列を使用してプロバイダーに接続できます。</string>
- <string name="invite_code_provider_prompt">ここに、信用する招待文字列を入力してください。</string>
- <string name="qr_scanner_prompt">QR コードをスキャン</string>
- <string name="provider_description_calyx">Calyxは、プライバシー技術を検討、試験、開発及び実装し、言論の自由、表現の自由、市民の参画及びインターネットと携帯電話通信事業でプライバシー権を助長する道具の製作に取り組む、教育と研究の非営利団体です。</string>
- <string name="title_circumvention_setup">検閲の回避策が必要ですか?</string>
- <string name="circumvention_setup_description">インターネットが検閲された地域にお住まいであれば、全てのインターネットサービスを利用するために検閲回避策を使用できます。これらの策を使用すると、接続が低速になります。</string>
- <string name="circumvention_setup_hint">%sは自動的に様々な検閲回避技術を使用して、インターネットへ接続を試みます。詳細設定内でこれを細かく調整できます。</string>
- <string name="use_standard_vpn">標準の%sを使用</string>
- <string name="use_circumvention_tech">検閲回避技術を使用(低速)</string>
- <string name="description_configure_provider">プロバイダーに接続するために、%1$sは必要な全ての設定情報を取得します。これは最初のセットアップ時にのみ発生します。</string>
- <string name="description_configure_provider_circumvention">%1$sはプロバイダーから必要な設定データを全て収集しようとしています。これは最初のセットアップ時にのみ発生します。検閲迂回技術の使用を選択すると、時間がかかる場合があります。</string>
- <string name="details">詳細</string>
- <string name="tor_status">Tor の状態</string>
- <string name="snowflake_status">Snowflake の状態</string>
- <string name="snowflake_started">Snowflake クライアントを開始しました</string>
- <string name="snowflake_negotiating_rendezvous_http">Snowflakeプロキシ接触接続情報交換中(http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Snowflakeプロキシ接触接続情報交換中(amp cache)</string>
- <string name="snowflake_socks_error">Snowflake SOCKSエラー</string>
- <string name="snowflake_broker_success">Snowflakeプロキシ接触成功</string>
- <string name="snowflake_sending_data">Snowflake 経由でデータを送信中</string>
- <string name="title_upcoming_connection_request">今度は接続要求だ</string>
- <string name="title_upcoming_notifications_request">今度は通知要求だ</string>
- <string name="title_setup_success">全て設定しました!</string>
- <string name="setup_success_description">接続するには、下のボタンをクリック</string>
- <string name="permission_rejected">権限の要求が拒否されました。</string>
- <string name="login_not_supported">現在のアプリのバージョンは、このプロバイダー用のVPN証明書を更新するのに必要なログインに対応しません。</string>
- <string name="select_language">言語の選択</string>
- <string name="validation_status_success">良</string>
- <string name="enter_invite_code">招待文字列を入力</string>
- <string name="scan_qr_code">QR コードをスキャン</string>
- <string name="invalid_code">無効なコード</string>
- <string name="automatic_bridge">自動(推奨)</string>
- <string name="automatic_bridge_description">接続は、利用可能な最良のブリッジとプロトコルの使用を試行します。</string>
- <string name="manual_bridge">手動設定</string>
- <string name="manual_bridge_description">非公開のブリッジと特定のプロトコルを選択します</string>
- <string name="censorship_circumvention_description">手動設定には、技術の理解が必要です。慎重に続行してください。</string>
- <string name="discovery_description">検閲官は、プロバイダーからの極めて重要な設定情報の発見を遮断できます。遮断を回避するために、検閲回避法を選択してください。</string>
- <string name="tunnelling">トンネリング</string>
- <string name="tunnelling_description">検閲官は、開放的インターネットへのアクセスを遮断できます。遮断を回避するために、検閲回避法を選択してください。</string>
- <string name="port_hopping">ポート探索(ポートホッピング)</string>
- <string name="port_hopping_description">検閲官は、開放的インターネットへのアクセスを遮断するために、転送の分析を使用します。ポート探索(ポートホッピング)は転送の分析を難しくすることができます。</string>
+ <string name="retry">再試行</string>
+ <string name="repository_url_text">ソースコードは https://0xacab.org/leap/bitmask_android で入手可能です</string>
+ <string name="leap_tracker">問題トラッカーは https://0xacab.org/leap/bitmask_android/issues で利用できます</string>
+ <string name="translation_project_text">翻訳を歓迎、感謝します。 Transifex プロジェクトをご覧ください https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">プロバイダーを切り替え</string>
+ <string name="info">情報</string>
+ <string name="show_connection_details">接続の詳細を表示</string>
+ <string name="connection_details">接続の詳細</string>
+ <string name="routes_info">経路:%s</string>
+ <string name="routes_info6">IPv6 経路: %s</string>
+ <string name="error_empty_username">ユーザー名を空に設定することはできません</string>
+ <string name="cert_from_keystore">\'%s\'の証明書をキーストアから読み出しました</string>
+ <string name="provider_label">プロバイダー:</string>
+ <string name="provider_label_none">プロバイダーが設定されていません</string>
+ <string name="status_unknown">状態が不明です。</string>
+ <string name="eip_service_label">暗号化されたVPNインターネットアクセス</string>
+ <string name="configuration_wizard_title">サービスプロバイダーを選択してください</string>
+ <string name="add_provider">新しいプロバイダーを追加</string>
+ <string name="introduce_new_provider">新しいサービスプロバイダーを追加</string>
+ <string name="save">保存</string>
+ <string name="new_provider_uri">ドメイン名</string>
+ <string name="valid_url_entered">URLは有効です</string>
+ <string name="not_valid_url_entered">不正なURL</string>
+ <string name="provider_details_title">プロバイダー詳細</string>
+ <string name="use_anonymously_button">匿名を使用</string>
+ <string name="username_hint">ユーザー名</string>
+ <string name="username_ask">ユーザー名を入力してください</string>
+ <string name="password_ask">パスワードを入力してください</string>
+ <string name="password_hint">パスワード</string>
+ <string name="password_match">パスワードが一致しました</string>
+ <string name="password_mismatch">パスワードが一致しません</string>
+ <string name="user_message">ユーザーメッセージ</string>
+ <string name="about_fragment_title">アプリについて</string>
+ <string name="exclude_apps_fragment_title">VPNからアプリを除外する</string>
+ <string name="error_srp_math_error_user_message">再度実行してください: サーバー計算エラー</string>
+ <string name="error_bad_user_password_user_message">ユーザー名またはパスワードが間違っています</string>
+ <string name="error_not_valid_password_user_message">8文字以上入力してください。</string>
+ <string name="error_client_http_user_message">再度実行してください: クライアントHTTPエラー</string>
+ <string name="error_io_exception_user_message">再度実行してください: I/Oエラー</string>
+ <string name="error_json_exception_user_message">再度実行してください: サーバーからの応答が正しくありません</string>
+ <string name="error_no_such_algorithm_exception_user_message">暗号化アルゴリズムが見つかりません。Androidをアップグレードしてください!</string>
+ <string name="signup_or_login_button">サインアップ/ログイン</string>
+ <string name="login_button">ログイン</string>
+ <string name="login_to_profile">プロファイルにログイン</string>
+ <string name="logout_button">ログアウト</string>
+ <string name="signup_button">サインアップ</string>
+ <string name="create_profile">プロファイルを作成</string>
+ <string name="setup_provider">プロバイダーを設定</string>
+ <string name="setup_error_title">構成エラー</string>
+ <string name="setup_error_configure_button">構成</string>
+ <string name="setup_error_close_button">終了</string>
+ <string name="setup_error_text">選択されたプロバイダーで%sを構成中にエラーが発生しました。\n\nもう一度構成するか、終了して次回の起動時にプロバイダーを構成することができます。</string>
+ <string name="setup_error_text_custom">%sを構成中にエラーが発生しました。\n\nもう一度構成するか、終了することができます。</string>
+ <string name="server_unreachable_message">サーバーに到達できません。再度実行してください。</string>
+ <string name="error.security.pinnedcertificate">セキュリティエラー。アプリをアップグレードするか別のプロバイダーを選択してください。</string>
+ <string name="malformed_url">%sのプロバイダーではないようです。</string>
+ <string name="certificate_error">これは、信頼できる%sプロバイダーではありません。</string>
+ <string name="service_is_down_error">サービスがダウンしています。</string>
+ <string name="configuring_provider">プロバイダーを構成中</string>
+ <string name="downloading_certificate_message">VPN証明書のダウンロード中</string>
+ <string name="updating_certificate_message">VPN証明書のアップデート中</string>
+ <string name="login.riseup.warning">通知 ユーザーはVPNサービスを使用するために別のアカウントを作成する必要があります</string>
+ <string name="succesful_authentication_message">認証されました</string>
+ <string name="authentication_failed_message">認証に失敗しました</string>
+ <string name="registration_failed_message">登録に失敗しました。</string>
+ <string name="eip_status_start_pending">接続を初期化中</string>
+ <string name="eip_status_connecting">VPNに接続中</string>
+ <string name="eip_status_unsecured">保護されてない接続</string>
+ <string name="eip_status_secured">保護された接続</string>
+ <string name="eip_cancel_connect_title">接続を中止しますか?</string>
+ <string name="eip_cancel_connect_text">試行中の接続があります。中止しますか?</string>
+ <string name="eip.warning.browser_inconsistency">VPN接続をオフにしますか? VPNをオフにすると、お使いのインターネットプロバイダーやローカルネットワークに個人情報を漏洩することがあります。</string>
+ <string name="eip_state_not_connected">稼働していません! 接続は安全ではありません!</string>
+ <string name="eip_state_connected">接続は安全です</string>
+ <string name="provider_problem">プロバイダーに問題があるようです。</string>
+ <string name="try_another_provider">別のプロバイダーを試すか、連絡してください。</string>
+ <string name="default_username">匿名</string>
+ <string name="logging_in">ログイン中</string>
+ <string name="signing_up">サインアップ中</string>
+ <string name="vpn.button.turn.on">オンにする</string>
+ <string name="vpn.button.turn.off">オフにする</string>
+ <string name="vpn_button_turn_off_blocking">ブロックを停止</string>
+ <string name="vpn_securely_routed">通信は安全に次の経路でルーティングされます:</string>
+ <string name="vpn_securely_routed_no_internet">インターネット接続が検出されませんでした。回復した時に通信を安全にルーティングします:</string>
+ <string name="log_fragment_title">履歴</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">ナビゲーションドロワーを開く</string>
+ <string name="navigation_drawer_close">ナビゲーションドロワーを閉じる</string>
+ <string name="action_example">サンプルアクション</string>
+ <string name="action_settings">設定</string>
+ <string name="void_vpn_establish">%sはすべての送信インターネット通信をブロックします</string>
+ <string name="void_vpn_error_establish">すべてのインターネット通信のブロックに失敗しました。</string>
+ <string name="void_vpn_stopped">すべての送信インターネット通信の遮断を停止しました。</string>
+ <string name="void_vpn_title">通信を遮断</string>
+ <string name="update_provider_details">プロバイダーの詳細を更新</string>
+ <string name="update_certificate">証明書を更新</string>
+ <string name="warning_eip_json_corrupted">プロバイダー設定の更新に失敗しました。</string>
+ <string name="eip_json_corrupted_user_message">プロバイダー設定の更新に失敗しました。もう一度ログインし直してください。</string>
+ <string name="warning_client_parsing_error_gateways">プロバイダーゲートウェイを認識できませんでした。正しく設定されていない可能性があります。</string>
+ <string name="warning_corrupted_provider_details">保存されたプロバイダーの詳細が壊れています。 %sを更新する(推奨)か、商用CA証明書を使用してプロバイダーの詳細を更新することができます。</string>
+ <string name="warning_corrupted_provider_cert">保存されたプロバイダーの証明書が無効です。 商用CA証明書を使用して%sを更新する(推奨)か、プロバイダーの証明書を更新することができます。</string>
+ <string name="warning_expired_provider_cert">保存されたプロバイダーの証明書が有効期限切れです。 商用CA証明書を使用して%sを更新する(推奨)か、プロバイダー証明書を更新することができます。</string>
+ <string name="downloading_vpn_certificate_failed">VPN証明書のダウンロードに失敗しました。 もう一度やり直すか、別のプロバイダーを選択してください。</string>
+ <string name="vpn_certificate_is_invalid">VPN証明書を更新する時間です。接続を安全にするために、新しい証明書をダウンロードしてください。これは、通常の繰り返し行われる処理です。</string>
+ <string name="save_battery">電池節約</string>
+ <string name="subtitle_save_battery">VPNホットスポットがオンの間無効にします</string>
+ <string name="save_battery_message">お使いの携帯電話を使用していない時に、バックグラウンドのデータ接続は休止状態になります。</string>
+ <string name="always_on_vpn">常時VPN接続</string>
+ <string name="subtitle_always_on_vpn">Androidのシステム設定を開く</string>
+ <string name="tethering">VPNホットスポット</string>
+ <string name="ipv6Firewall">IPv6 をブロック</string>
+ <string name="require_root">root権限が必要です</string>
+ <string name="show_experimental">試験的な機能を表示する</string>
+ <string name="hide_experimental">試験的な機能を表示しない</string>
+ <string name="experimental_features">試験的な機能</string>
+ <string name="tethering_enabled_message">先に <![CDATA[<b>システム設定</b>]]> で、テザリングを有効にしてください。</string>
+ <string name="tethering_message">お使いのVPNを他のデバイスと共有:</string>
+ <string name="tethering_wifi">Wi-Fiホットスポット</string>
+ <string name="tethering_usb">USBテザリング</string>
+ <string name="tethering_bluetooth">Bluetoothテザリング</string>
+ <string name="do_not_show_again">今後表示しない</string>
+ <string name="always_on_vpn_user_message">Android VPNの設定で常時VPN接続を有効にするには、設定アイコン [img src] をクリックしてスイッチをオンにします。</string>
+ <string name="always_on_blocking_vpn_user_message">あなたのプライバシーを最適に保護するために、「VPNを使用しない接続をブロックする」オプションも有効にするべきです。</string>
+ <string name="donate_title">寄付</string>
+ <string name="donate_default_message">エンドユーザーとサービスプロバイダーの両側に対する簡単で安全な通信を評価するなら、今日寄付してください。</string>
+ <string name="donate_message">LEAPは寄付と助成金に依存しています。 エンドユーザーとサービスプロバイダーの両側に対して簡単で安全な通信を評価するなら、今日寄付してください。</string>
+ <string name="donate_button_remind_later">後で知らせる</string>
+ <string name="donate_button_donate">寄付</string>
+ <string name="obfuscated_connection">難読化された接続を使用します。</string>
+ <string name="obfuscated_connection_try">難読化された接続を試行します。</string>
+ <string name="nav_drawer_obfuscated_connection">ブリッジを使用</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">VPNフィルタリングを迂回</string>
+ <string name="warning_exclude_apps_message">注意してVPNからアプリを除外してください。これにより、身元が明らかになり、セキュリティが侵害される可能性があります。</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="other">%d の保護されていないアプリ</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%sは接続できませんでした。 VPN接続が遮断されている可能性があります。難読化された接続を使用して接続を試みますか?</string>
+ <string name="warning_no_more_gateways_no_pt">%s は接続できませんでした。 再試行しますか?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s は難読化されたVPN接続を使用して接続できませんでした。標準VPNを使用して接続を試みますか?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$sは%2$sへ接続できませんでした。最適な場所へ自動的な接続を試みますか?</string>
+ <string name="warning_option_try_best">最適な場所を試みる</string>
+ <string name="warning_option_try_pt">難読化された接続を試みる</string>
+ <string name="warning_option_try_ovpn">標準接続を試みる</string>
+ <string name="vpn_error_establish">AndroidはVPNサービスを確立できませんでした。</string>
+ <string name="root_permission_error">root権限なしに %s がVPNホットスポットやIPv6ファイアウォールなどの機能を実行できません。</string>
+ <string name="qs_enable_vpn">%s 開始</string>
+ <string name="version_update_found">ここをタップしてダウンロードを開始する</string>
+ <string name="version_update_title">新しいバージョン %s が見つかりました</string>
+ <string name="version_update_apk_description">新しいバージョン %s をダウンロード中</string>
+ <string name="version_update_download_title">新しいバージョン %sはダウンロードされました。 </string>
+ <string name="version_update_download_description">ここをタップして更新をインストールする。</string>
+ <string name="version_update_error_pgp_verification">PGP検証エラー。ダウンロードを無視。</string>
+ <string name="version_update_error">更新失敗。</string>
+ <string name="version_update_error_permissions">アプリをインストールする権限がありません。</string>
+ <string name="gateway_selection_title">場所を選択</string>
+ <string name="gateway_selection_recommended_location">推奨の場所</string>
+ <string name="gateway_selection_recommended">推奨</string>
+ <string name="gateway_selection_manually">手動で選択</string>
+ <string name="gateway_selection_automatic_location">自動的に最適な接続を使用</string>
+ <string name="gateway_selection_automatic">自動</string>
+ <string name="reconnecting">再接続中…</string>
+ <string name="tor_starting">検閲を回避するためにブリッジを起動中…</string>
+ <string name="tor_stopping">ブリッジを停止</string>
+ <string name="tor_started">検閲を回避するためにブリッジを使用</string>
+ <string name="log_conn_done_pt">pluggable transportに接続しました</string>
+ <string name="log_conn_pt">pluggable transportに接続中です</string>
+ <string name="log_conn_done">中継に接続しました</string>
+ <string name="log_handshake">中継と接続をネゴシエート中です</string>
+ <string name="log_handshake_done">中継と接続をネゴシエートしました</string>
+ <string name="log_onehop_create">暗号化されたディレクトリとの接続を確立中</string>
+ <string name="log_requesting_status">ネットワーク状態の合意を要求中</string>
+ <string name="log_loading_status">ネットワーク状態の合意を読み込み中</string>
+ <string name="log_loading_keys">認証局の署名を読込中</string>
+ <string name="log_requesting_descriptors">中継の記述子を尋ねています</string>
+ <string name="log_loading_descriptors">中継の記述子を読み込み中です</string>
+ <string name="log_enough_dirinfo">回路を構築する必要なディレクトリ情報を読み込みました</string>
+ <string name="log_ap_handshake_done">中継で回路を構築するネゴシエーションが終了しました</string>
+ <string name="log_circuit_create">Tor 回路を確立しています</string>
+ <string name="log_done">実行中</string>
+ <string name="channel_name_tor_service">%sブリッジサービス</string>
+ <string name="channel_description_tor_service">%sの構成中にブリッジの使用について伝えます。</string>
+ <string name="error_tor_timeout">ブリッジの開始に失敗しました。再試行、または%sを構成してobfuscateではない安全な接続で続行しますか?</string>
+ <string name="retry_unobfuscated">obfuscateなしに再試行</string>
+ <string name="hide">隠す</string>
+ <string name="error_network_connection">%sはインターネット接続がありません。WiFiとセルラーデータの設定を確認してください。</string>
+ <string name="censorship_circumvention">検閲を回避</string>
+ <string name="use_snowflake">Snowflake を使用</string>
+ <string name="snowflake_description">検閲から設定処理を保護する。</string>
+ <string name="vpn_settings">VPN設定</string>
+ <string name="prefer_udp">利用可能であればUDPを使用</string>
+ <string name="prefer_udp_subtitle">UDPは高速になり、ストリーミングに好ましいですが、ネットワークのすべてには動作しません。</string>
+ <string name="disabled_while_bridges_on">ブリッジ使用中に無効化されます。</string>
+ <string name="hint_bridges">現在選択できるのは、ブリッジをサポートしている場所のみです。</string>
+ <string name="option_disable_bridges">ブリッジを無効化</string>
+ <string name="eip_state_insecure">接続は安全ではありません</string>
+ <string name="connection_not_connected">あなたのインターネットプロバイダーまたはローカルネットワークに情報が漏洩するかもしれません。</string>
+ <string name="eip_state_no_network">インターネットに接続できない状態です。インターネット接続が戻れば、自動的に接続します</string>
+ <string name="eip_state_blocking">%1$sはすべてのインターネット転送を遮断しています。</string>
+ <string name="disabled_while_udp_on">UDPがオンの間は無効化されます。</string>
+ <string name="advanced_settings">詳細設定</string>
+ <string name="cancel_connection">切断</string>
+ <string name="unknown_location">未知の場所</string>
+ <string name="splash_footer">LEAPによって開発されました</string>
+ <string name="welcome">ようこそ!</string>
+ <string name="select_provider">プロバイダーを選択</string>
+ <string name="select_provider_description">VPNを使用するとインターネットサービスプロバイダーからVPNプロバイダーへ、信頼されなければならない組織が移ります。 %1$s と %2$s は、プライバシーの保護と擁護の明瞭な歴史があります。招待コードを使用してプロバイダーを追加する場合は、知っていて信頼できるプロバイダーであることを確実にしてください。</string>
+ <string name="provider_description_riseup">プロバイダーRiseupは、解放的社会変革に粘り強く取り組む事業団体です。我々は新方式の民主主義を創り、通信の安全を意図して自己制御による自己決定を実践します。</string>
+ <string name="next">次へ</string>
+ <string name="add_provider_description">Bitmaskは、公開一覧に記載されていないプロバイダーに接続できます。追加するプロバイダーは、あなたが知っていて、信頼しているものであることを確かめてください。</string>
+ <string name="add_provider_prompt">ここに、プロバイダーのURLを入力してください。</string>
+ <string name="invite_code_provider_description">Bitmaskは非公開の招待文字列を使用してプロバイダーに接続できます。</string>
+ <string name="invite_code_provider_prompt">ここに、信用する招待文字列を入力してください。</string>
+ <string name="qr_scanner_prompt">QR コードをスキャン</string>
+ <string name="provider_description_calyx">Calyxは、プライバシー技術を検討、試験、開発及び実装し、言論の自由、表現の自由、市民の参画及びインターネットと携帯電話通信事業でプライバシー権を助長する道具の製作に取り組む、教育と研究の非営利団体です。</string>
+ <string name="title_circumvention_setup">検閲の回避策が必要ですか?</string>
+ <string name="circumvention_setup_description">インターネットが検閲された地域にお住まいであれば、全てのインターネットサービスを利用するために検閲回避策を使用できます。これらの策を使用すると、接続が低速になります。</string>
+ <string name="circumvention_setup_hint">%sは、 Tor を含む自動的に様々な検閲回避技術を使用して、インターネットへ接続を試みます。詳細設定内でこれを細かく調整できます。</string>
+ <string name="use_standard_vpn">標準の%sを使用</string>
+ <string name="use_circumvention_tech">検閲回避技術を使用(低速)</string>
+ <string name="description_configure_provider">プロバイダーに接続するために、%1$sは必要な全ての設定情報を取得します。これは最初のセットアップ時にのみ発生します。</string>
+ <string name="description_configure_provider_circumvention">%1$sはプロバイダーから必要な設定データを全て収集しようとしています。これは最初のセットアップ時にのみ発生します。検閲迂回技術の使用を選択すると、時間がかかる場合があります。</string>
+ <string name="details">詳細</string>
+ <string name="tor_status">Tor の状態</string>
+ <string name="snowflake_status">Snowflake の状態</string>
+ <string name="snowflake_started">Snowflake クライアントを開始しました</string>
+ <string name="title_upcoming_connection_request">今度は接続要求だ</string>
+ <string name="title_upcoming_request">今度は要求</string>
+ <string name="title_upcoming_request_summary">次の小枠内で、Androidは接続要求と通知要求の欄にて、権限を尋ねます。</string>
+ <string name="title_upcoming_connection_request_summary_custom">接続要求を承認することは、 %s の中核機能を使用するために必須です。</string>
+ <string name="title_upcoming_connection_request_summary">接続要求については、BitmaskはVPNの最良の実践に固執し、利用者のデータと識別情報を保護の、検証可能な歴史がある信頼できる協力者のプロバイダーとのみ提携していることを知ることが重要です。しかしながら、非公開のプロバイダーに手動で接続するには、信頼しているものであることを確かめてください。</string>
+ <string name="title_upcoming_notification_request_summary">通知要求を承認することで、アプリをバックグラウンドで実行可能にし、また、Androidの通知センター内からデータ使用量を確認可能にします。</string>
+ <string name="title_upcoming_notifications_request">今度は通知要求だ</string>
+ <string name="title_setup_success">全て設定しました!</string>
+ <string name="setup_success_description">接続するには、下のボタンをクリック</string>
+ <string name="permission_rejected">権限の要求が拒否されました。</string>
+ <string name="login_not_supported">現在のアプリのバージョンは、このプロバイダー用のVPN証明書を更新するのに必要なログインに対応しません。</string>
+ <string name="select_language">言語の選択</string>
+ <string name="syntax_check">構文確認:</string>
+ <string name="validation_status_success">正当</string>
+ <string name="validation_status_failure">不当</string>
+ <string name="enter_invite_code">招待文字列を入力</string>
+ <string name="invalid_code">無効なコード</string>
+ <string name="automatic_bridge">自動(推奨)</string>
+ <string name="automatic_bridge_description">接続は、利用可能な最良のブリッジとプロトコルの使用を試行します。</string>
+ <string name="manual_bridge">手動設定</string>
+ <string name="manual_bridge_description">非公開のブリッジと特定のプロトコルを選択します</string>
+ <string name="censorship_circumvention_description">手動設定には、技術の理解が必要です。慎重に続行してください。</string>
+ <string name="discovery">発見</string>
+ <string name="discovery_description">検閲官は、プロバイダーからの極めて重要な設定情報の発見を遮断できます。遮断を回避するために、検閲回避法を選択してください。</string>
+ <string name="automatically_select">自動選択</string>
+ <string name="invite_proxy">招待プロキシ</string>
+ <string name="tunnelling">トンネリング</string>
+ <string name="tunnelling_description">検閲官は、開放的インターネットへのアクセスを遮断できます。遮断を回避するために、検閲回避法を選択してください。</string>
+ <string name="port_hopping">ポート探索(ポートホッピング)</string>
+ <string name="port_hopping_description">検閲官は、開放的インターネットへのアクセスを遮断するために、転送の分析を使用します。ポート探索(ポートホッピング)は転送の分析を難しくすることができます。</string>
+ <string name="error_invite_title">おや、この招待コードに何か誤りがあります:</string>
+ <string name="error_invite">無効な招待コード: %1$s</string>
+ <string name="error_invite_copy">招待コードをコピー</string>
+ <string name="error_invite_hint">補助を要求するために、あなたのプロバイダーのコードをコピーして共有できます。</string>
+ <string name="error_invite_unknown_type">招待コードの種類 %1$s は未知です。</string>
+ <string name="error_invite_address_format">招待プロキシアドレスは、 「ipアドレス:ポート」の形式に従っていません。</string>
+ <string name="error_invite_certificate_length">証明書は文字数(%1$s)の誤りがあります。</string>
+ <string name="error_invite_certificate_missing">招待プロキシの証明書が欠落しています。</string>
+ <string name="error_invite_fqdn_length">招待コードには完全修飾ドメイン名が含まれていなければなりませんが、 %1$s を受け取りました。</string>
+ <string name="error_invite_fqdn_missing">完全修飾ドメイン名が欠落しています。</string>
+ <string name="error_invite_auth_missing">認証トークンが欠落しています。</string>
+ <string name="error_invite_fqdn_invalid">招待コードは %1$s 内に不正な文字が含まれています。</string>
</resources>
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index e0220d4d..baadaae2 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -1,263 +1,252 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Bandyti iš naujo</string>
- <string name="repository_url_text">Pradinis kodas prieinamas, adresu https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Klaidų sekiklis yra prieinamas, adresu https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Vertimai ir sveikintini ir vertinami. Žiūrėkite mūsų „Transifex“ projektą, adresu https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Perjungti teikėją</string>
- <string name="info">informacija</string>
- <string name="show_connection_details">Rodyti išsamesnę informaciją apie ryšį</string>
- <string name="connection_details">Išsamiau apie ryšį</string>
- <string name="routes_info">Maršrutai: %s</string>
- <string name="routes_info6">IPv6 maršrutai: %s</string>
- <string name="error_empty_username">Naudotojo vardas negali būti tuščias.</string>
- <string name="cert_from_keystore">Gautas liudijimas „%s“ iš raktų saugyklos</string>
- <string name="provider_label">Teikėjas:</string>
- <string name="provider_label_none">Nesukonfigūruotas joks teikėjas</string>
- <string name="status_unknown">Būsena nežinoma.</string>
- <string name="eip_service_label">Šifruota VPN interneto prieiga</string>
- <string name="configuration_wizard_title">Pasirinkite paslaugų teikėją</string>
- <string name="add_provider">Pridėti naują teikėją</string>
- <string name="introduce_new_provider">Pridėti naują paslaugų teikėją</string>
- <string name="save">Įrašyti</string>
- <string name="new_provider_uri">Domeno pavadinimas</string>
- <string name="valid_url_entered">URL adresas yra tinkamas</string>
- <string name="not_valid_url_entered">Netaisyklingas URL adresas</string>
- <string name="provider_details_title">Išsamiau apie teikėją</string>
- <string name="use_anonymously_button">Naudoti anonimiškai</string>
- <string name="username_hint">naudotojo vardas</string>
- <string name="username_ask">Įveskite naudotojo vardą</string>
- <string name="password_ask">Įveskite slaptažodį</string>
- <string name="password_hint">slaptažodis</string>
- <string name="password_match">Slaptažodžiai sutampa</string>
- <string name="password_mismatch">Slaptažodžiai nesutampa</string>
- <string name="user_message">Naudotojo žinutė</string>
- <string name="about_fragment_title">Apie</string>
- <string name="exclude_apps_fragment_title">Išbraukti programėles iš VPN</string>
- <string name="error_srp_math_error_user_message">Bandykite dar kartą: Serverio matematinė klaida</string>
- <string name="error_bad_user_password_user_message">Neteisingas naudotojo vardas ar slaptažodis</string>
- <string name="error_not_valid_password_user_message">Jis privalo būti bent 8 simbolių ilgio</string>
- <string name="error_client_http_user_message">Bandykite dar kartą: Kliento HTTP klaida</string>
- <string name="error_io_exception_user_message">Bandykite dar kartą: I/O klaida</string>
- <string name="error_json_exception_user_message">Bandykite dar kartą: Blogas atsakas iš serverio</string>
- <string name="error_no_such_algorithm_exception_user_message">Šifravimo algoritmas nerastas. Atsinaujinkite „Android“!</string>
- <string name="signup_or_login_button">Registruotis/Prisijungti</string>
- <string name="login_button">Prisijungti</string>
- <string name="login_to_profile">Prisijungti prie profilio</string>
- <string name="logout_button">Atsijungti</string>
- <string name="signup_button">Užsiregistruoti</string>
- <string name="create_profile">Sukurti profilį</string>
- <string name="setup_provider">Nustatyti teikėją</string>
- <string name="setup_error_title">Konfigūracijos klaida</string>
- <string name="setup_error_configure_button">Konfigūruoti</string>
- <string name="setup_error_close_button">Išeiti</string>
- <string name="setup_error_text">Įvyko klaida, konfigūruojant %s, naudojant jūsų pasirinktą teikėją.\n\nGalite pasirinkti konfigūruoti iš naujo arba išeiti ir kito paleidimo metu sukonfigūruoti teikėją.</string>
- <string name="setup_error_text_custom">Įvyko klaida, konfigūruojant %s.\n\nGalite pasirinkti konfigūruoti iš naujo arba išeiti.</string>
- <string name="server_unreachable_message">Serveris yra nepasiekiamas, bandykite dar kartą.</string>
- <string name="error.security.pinnedcertificate">Saugumo klaida. Atnaujinkite programėlę arba pasirinkite kitą teikėją.</string>
- <string name="malformed_url">Atrodo, kad tai nėra %s teikėjas.</string>
- <string name="certificate_error">Tai nėra patikimas %s teikėjas.</string>
- <string name="service_is_down_error">Paslauga neveikia.</string>
- <string name="configuring_provider">Konfigūruojamas teikėjas</string>
- <string name="incorrectly_downloaded_certificate_message">Jūsų anoniminis liudijimas nebuvo atsisiųstas</string>
- <string name="downloading_certificate_message">Atsiunčiamas VPN liudijimas</string>
- <string name="updating_certificate_message">Atnaujinamas VPN liudijimas</string>
- <string name="login.riseup.warning">„Riseup“ naudotojai, norėdami naudotis VPN paslauga, turės susikurti atskirą paskyrą</string>
- <string name="succesful_authentication_message">Tapatybė patvirtinta</string>
- <string name="authentication_failed_message">Tapatybės nustatyti nepavyko</string>
- <string name="registration_failed_message">Registracija nepavyko</string>
- <string name="eip_status_start_pending">Inicijuojamas ryšys</string>
- <string name="eip_status_connecting">Jungiamas VPN</string>
- <string name="eip_status_unsecured">Neapsaugotas ryšys</string>
- <string name="eip_status_secured">Apsaugotas ryšys</string>
- <string name="eip_cancel_connect_title">Atsisakyti ryšio?</string>
- <string name="eip_cancel_connect_text">Šiuo metu yra bandoma užmegzti ryšį. Ar norite to atsisakyti?</string>
- <string name="eip.warning.browser_inconsistency">Išjungti VPN ryšį? Kai VPN yra išjungtas, yra tikimybė, kad galite atskleisti asmeninę informaciją savo interneto paslaugų teikėjui ar vietiniam tinklui.</string>
- <string name="eip_state_not_connected"> Neveikia! Nesaugus ryšys!</string>
- <string name="eip_state_connected">Ryšys saugus</string>
- <string name="provider_problem">Atrodo, kad atsirado problemų su teikėju.</string>
- <string name="try_another_provider">Pabandykite kitą teikėją arba susisiekite su savo teikėju.</string>
- <string name="default_username">Anonimas</string>
- <string name="logging_in">Prisijungiama</string>
- <string name="signing_up">Registruojamasi</string>
- <string name="vpn.button.turn.on">Įjungti</string>
- <string name="vpn.button.turn.off">Išjungti</string>
- <string name="vpn_button_turn_off_blocking">Nustoti blokuoti</string>
- <string name="vpn_securely_routed">Jūsų interneto srautas yra saugiai peradresuojamas per:</string>
- <string name="vpn_securely_routed_no_internet">Neaptikta jokio interneto ryšio, kai jis atsiras, jūsų interneto duomenų srautas bus saugiai peradresuojamas per:</string>
- <string name="log_fragment_title">Žurnalas</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Atidaryti naršymo stalčių</string>
- <string name="navigation_drawer_close">Uždaryti naršymo stalčių</string>
- <string name="action_example">Pavyzdinis veiksmas</string>
- <string name="action_settings">Nustatymai</string>
- <string name="void_vpn_establish">%s blokuoja visą jūsų siunčiamą interneto duomenų srautą.</string>
- <string name="void_vpn_error_establish">Nepavyko blokuoti viso interneto duomenų srauto.</string>
- <string name="void_vpn_stopped">Nustota blokuoti visą jūsų siunčiamą interneto duomenų srautą.</string>
- <string name="void_vpn_title">Interneto duomenų srauto blokavimas</string>
- <string name="update_provider_details">Atnaujinti išsamią teikėjo informaciją</string>
- <string name="update_certificate">Atnaujinti liudijimą</string>
- <string name="warning_eip_json_corrupted">Nepavyko atnaujinti teikėjo konfigūracijos.</string>
- <string name="eip_json_corrupted_user_message">Nepavyko atnaujinti teikėjo konfigūracijos. Prisijunkite ir bandykite dar kartą.</string>
- <string name="warning_client_parsing_error_gateways">Nepavyko atpažinti teikėjo tinklų sietuvų. Gali būti, kad jie neteisingai sukonfigūruoti.</string>
- <string name="warning_corrupted_provider_details">Laikoma informacija apie teikėją yra sugadinta. Jūs galite arba atnaujinti %s (rekomenduojama), arba atnaujinti informaciją apie teikėją, naudodami komercinį LĮ liudijimą.</string>
- <string name="warning_corrupted_provider_cert">Laikomas teikėjo liudijimas negalioja. Jūs galite arba atnaujinti %s (rekomenduojama), arba atnaujinti teikėjo liudijimą, naudodami komercinį LĮ liudijimą.</string>
- <string name="warning_expired_provider_cert">Laikomas teikėjo liudijimas nebegalioja. Jūs galite arba atnaujinti %s (rekomenduojama), arba atnaujinti teikėjo liudijimą, naudodami komercinį LĮ liudijimą.</string>
- <string name="downloading_vpn_certificate_failed">Nepavyko atsisiųsti VPN liudijimo. Bandykite dar kartą arba pasirinkite kitą teikėją.</string>
- <string name="vpn_certificate_is_invalid">Metas atnaujinti jūsų VPN liudijimą. Atsisiųskite naują liudijimą, kad išlaikytumėte savo ryšį saugų. Tai yra įprastas atnaujinimas.</string>
- <string name="vpn_certificate_user_message">VPN liudijimas negalioja. Prisijunkite norėdami atsisiųsti naują.</string>
- <string name="save_battery">Taupyti akumuliatoriaus energiją</string>
- <string name="subtitle_save_battery">Išjungta, kol įjungtas VPN viešosios interneto prieigos taškas</string>
- <string name="save_battery_message">Kai jūsų telefonas nebus aktyvus, foniniai duomenų ryšiai bus užmigdomi.</string>
- <string name="always_on_vpn">Visada įjungtas VPN</string>
- <string name="subtitle_always_on_vpn">Atverti „Android“ sistemos nustatymus</string>
- <string name="tethering">VPN viešosios interneto prieigos taškas</string>
- <string name="ipv6Firewall">Blokuoti IPv6</string>
- <string name="require_root">Reikalauja pagrindinio naudotojo leidimų</string>
- <string name="show_experimental">Rodyti eksperimentines ypatybes</string>
- <string name="hide_experimental">Slėpti eksperimentines ypatybes</string>
- <string name="experimental_features">Eksperimentinės ypatybės</string>
- <string name="tethering_enabled_message">Pirmiausia, įsitikinkite, kad <![CDATA[<b>sistemos nustatymuose</b>]]> įjungėte susiejimus.</string>
- <string name="tethering_message">Bendrinti VPN su kitais įrenginiais per:</string>
- <string name="tethering_wifi">Belaidį (Wi-Fi) viešosios interneto prieigos tašką</string>
- <string name="tethering_usb">USB susiejimą</string>
- <string name="tethering_bluetooth">Bluetooth susiejimą</string>
- <string name="do_not_show_again">Daugiau neberodyti</string>
- <string name="always_on_vpn_user_message">Norėdami įjungti visada įjungtą VPN, savo „Android“ VPN nustatymuose spustelėkite [img src] piktogramą ir perjunkite jungiklį taip, kad būtų įjungtas.</string>
- <string name="always_on_blocking_vpn_user_message">Norėdami optimaliai apsaugoti savo privatumą, taip pat turėtumėte aktyvuoti parinktį „Blokuoti ryšius be VPN“</string>
- <string name="donate_title">Paaukoti</string>
- <string name="donate_default_message">Paaukokite, prašome, jei vertinate saugią komunikaciją, kuri yra lengva naudoti tiek galutiniam naudotojui, tiek teikėjui.</string>
- <string name="donate_message">„LEAP“ yra priklausoma nuo paaukojimų ir subsidijų. Paaukokite, prašome, jei vertinate saugią komunikaciją, kuri yra lengva naudoti tiek galutiniam naudotojui, tiek teikėjui.</string>
- <string name="donate_button_remind_later">Priminti vėliau</string>
- <string name="donate_button_donate">Paaukoti</string>
- <string name="obfuscated_connection">Naudojamas užmaskuotas ryšys.</string>
- <string name="obfuscated_connection_try">Bandomas užmaskuotas ryšys.</string>
- <string name="nav_drawer_obfuscated_connection">Naudoti tinklų tiltus</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Apeiti VPN filtravimą</string>
- <string name="warning_exclude_apps_message">Būkite atsargūs, išbraukdami programėles iš VPN. Tai atskleis jūsų tapatybę ir statys į pavojų jūsų saugumą.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d neapsaugota programėlė</item>
- <item quantity="few">%d neapsaugotos programėlės</item>
- <item quantity="many">%d neapsaugotų programėlių</item>
- <item quantity="other">%d neapsaugota programėlė</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s nepavyko prisijungti. Gali būti, kad VPN ryšiai yra blokuojami. Ar norite bandyti prisijungti naudojant užmaskuotus ryšius?</string>
- <string name="warning_no_more_gateways_no_pt">%s nepavyko prisijungti. Ar norite bandyti dar kartą?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s nepavyko prisijungti naudojant užmaskuotus VPN ryšius. Ar norite bandyti prisijungti naudojant standartinį VPN?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s nepavyko prisijungti prie %2$s. Ar norite bandyti automatiškai jungtis prie geriausios vietos?</string>
- <string name="warning_option_try_best">Bandyti geriausią vietą</string>
- <string name="warning_option_try_pt">Bandyti užmaskuotą ryšį</string>
- <string name="warning_option_try_ovpn">Bandyti standartinį ryšį</string>
- <string name="vpn_error_establish">„Android“ nepavyko paleisti VPN paslaugos.</string>
- <string name="root_permission_error">%s be pagrindinio naudotojo teisių negali naudoti tokių ypatybių, kaip VPN viešosios interneto prieigos taškas ar IPv6 užkarda.</string>
- <string name="qs_enable_vpn">Paleisti %s</string>
- <string name="version_update_found">Bakstelėkite čia, norėdami pradėti atsiuntimą.</string>
- <string name="version_update_title">Rasta nauja %s versija.</string>
- <string name="version_update_apk_description">Atsiunčiama nauja %s versija</string>
- <string name="version_update_download_title">Atsiųsta nauja %s versija.</string>
- <string name="version_update_download_description">Bakstelėkite čia, norėdami įdiegti atnaujinimą.</string>
- <string name="version_update_error_pgp_verification">PGP patikrinimo klaida. Atsiuntimo nepaisoma.</string>
- <string name="version_update_error">Nepavyko atnaujinti.</string>
- <string name="version_update_error_permissions">Nėra leidimų įdiegti programėlę.</string>
- <string name="gateway_selection_title">Pasirinkti vietą</string>
- <string name="gateway_selection_recommended_location">Rekomenduojama vieta</string>
- <string name="gateway_selection_recommended">Rekomenduojama</string>
- <string name="gateway_selection_manually">Pasirinkti rankiniu būdu</string>
- <string name="gateway_selection_automatic_location">Automatiškai naudoti geriausią ryšį</string>
- <string name="gateway_selection_automatic">Automatiškai</string>
- <string name="reconnecting">Jungiamasi iš naujo…</string>
- <string name="tor_starting">Paleidžiami tinklų tiltai, kad būtų apeita cenzūra…</string>
- <string name="tor_stopping">Stabdomi tinklų tiltai</string>
- <string name="tor_started">Naudojami tinklų tiltai, kad būtų apeita cenzūra</string>
- <string name="log_conn_done_pt">Prisijungta prie keičiamojo perdavimo</string>
- <string name="log_conn_pt">Jungiamasi prie keičiamojo perdavimo</string>
- <string name="log_conn_done">Prisijungta prie retransliavimo</string>
- <string name="log_handshake">Derinamas ryšys su retransliavimu</string>
- <string name="log_handshake_done">Ryšys su retransliavimu suderintas</string>
- <string name="log_onehop_create">Užmezgiamas šifruoto katalogo ryšys</string>
- <string name="log_requesting_status">Prašoma sutarimo dėl tinklo būsenos</string>
- <string name="log_loading_status">Įkeliamas sutarimas dėl tinklo būsenos</string>
- <string name="log_loading_keys">Įkeliami liudijimų įstaigos liudijimai</string>
- <string name="log_requesting_descriptors">Prašoma retransliavimo deskriptorių</string>
- <string name="log_loading_descriptors">Įkeliami retransliavimo deskriptoriai</string>
- <string name="log_enough_dirinfo">Įkelta pakankamai katalogo informacijos, kad būtų sudarytos grandinės</string>
- <string name="log_ap_handshake_done">Derinimas su retransliavimu užbaigtas, kad būtų sudarytos grandinės</string>
- <string name="log_circuit_create">Užmezgiama Tor grandinė</string>
- <string name="log_done">Vykdoma</string>
- <string name="channel_name_tor_service">%s tinklų tiltų paslauga</string>
- <string name="channel_description_tor_service">Informuoja apie tinklų tiltų naudojimą, kol konfigūruojama %s.</string>
- <string name="error_tor_timeout">Nepavyko paleisti tinklų tiltų. Norite bandyti iš naujo ar tęsti naudojant neužmaskuotą saugų ryšį, skirtą konfigūruoti %s?</string>
- <string name="retry_unobfuscated">Bandyti neužmaskuotą</string>
- <string name="hide">Slėpti</string>
- <string name="error_network_connection">%s neturi interneto ryšio. Patikrinkite belaidžio (WiFi) ryšio ir mobiliųjų duomenų nustatymus.</string>
- <string name="censorship_circumvention">Cenzūros apėjimas</string>
- <string name="use_snowflake">Naudoti „Snowflake“</string>
- <string name="snowflake_description">Apsaugoti konfigūracijos procesą nuo cenzūros.</string>
- <string name="vpn_settings">VPN nustatymai</string>
- <string name="prefer_udp">Jei prieinama, naudoti UDP</string>
- <string name="prefer_udp_subtitle">UDP gali būti greitesnis ir geresnis transliavimui, bet veikia ne visuose tinkluose.</string>
- <string name="disabled_while_bridges_on">Išjungta, kol naudojami tinklų tiltai.</string>
- <string name="hint_bridges">Šiuo metu galima pasirinkti tik vietas, kurios palaiko tinklų tiltus.</string>
- <string name="option_disable_bridges">Išjungti tinklų tiltus</string>
- <string name="eip_state_insecure">Ryšys nesaugus</string>
- <string name="connection_not_connected">Gali būti, kad atskleidžiate informaciją savo interneto paslaugų teikėjui ar vietiniam tinklui.</string>
- <string name="eip_state_no_network">Jūs neturite veikiančio interneto ryšio. Kai jį turėsite, būsite automatiškai prijungti prie</string>
- <string name="eip_state_blocking">%1$s blokuoja visą interneto duomenų srautą.</string>
- <string name="disabled_while_udp_on">Išjungta, kol yra įjungta UDP.</string>
- <string name="advanced_settings">Išplėstinės nuostatos</string>
- <string name="cancel_connection">Atsijungti</string>
- <string name="unknown_location">Nežinoma vieta</string>
- <string name="splash_footer">Sukūrė „LEAP“</string>
- <string name="welcome">Sveiki!</string>
- <string name="select_provider">Pasirinkite teikėją</string>
- <string name="select_provider_description">Naudodamiesi VPN, jūs iš interneto paslaugų teikėjo perduodate savo pasitikėjimą VPN teikėjui. Bitmask jungiasi tik prie teikėjų, turinčių nesugadintą privatumo apsaugos ir gynimo istoriją.</string>
- <string name="provider_description_riseup">„Riseup“ teikia internetinio susisiekimo įrankius žmonėms ir grupėms, siekiantiems išvaduojamųjų socialinių pokyčių. Mes esame projektas, kurio tikslas – kurti demokratines alternatyvas ir praktikuoti apsisprendimo teisę, valdant mūsų asmenines saugias komunikacijos priemones.</string>
- <string name="next">Kitas</string>
- <string name="add_provider_description">Bitmask jungiasi prie patikimų teikėjų, kurie nėra viešai išvardyti. Žemiau įveskite savo teikėjo URL adresą.</string>
- <string name="add_provider_prompt">Čia įrašykite teikėjo URL adresą.</string>
- <string name="invite_code_provider_description">Bitmask jums leidžia prisijungti prie teikėjų naudojant privatų pakvietimo kodą. </string>
- <string name="invite_code_provider_prompt">Čia įveskite savo patikimą pakvietimo kodą.</string>
- <string name="qr_scanner_prompt">Skenuoti QR kodą</string>
- <string name="provider_description_calyx">„Calyx“ yra ne pelno siekianti švietimo ir tyrinėjimų organizacija, pasišventusi tyrinėti, testuoti, plėtoti ir įgyvendinti privatumo technologijas bei įrankius, skatinant žodžio laisvę, laisvą raišką, piliečių įsitraukimą ir teises į privatumą internete bei mobiliųjų komunikacijų pramonėje.</string>
- <string name="title_circumvention_setup">Ar jums reikia cenzūros apėjimo?</string>
- <string name="circumvention_setup_description">Jei gyvenate šalyje, kurioje internetas yra cenzūruojamas, galite naudoti mūsų cenzūros apėjimo parinktis, kad pasiektumėte visas interneto paslaugas. Šios parinktys sulėtins jūsų interneto ryšio greitį!</string>
- <string name="circumvention_setup_hint">%s automatiškai bandys prijungti jus prie interneto, naudojant įvairias apėjimo technologijas. Jūs galite derinti šias parinktis išplėstiniuose nustatymuose.</string>
- <string name="use_standard_vpn">Naudoti standartinį %s</string>
- <string name="use_circumvention_tech">Naudoti apėjimo technologijas (lėčiau)</string>
- <string name="description_configure_provider">Tam, kad prisijungtų prie jūsų teikėjo, %1$s gauna visą reikiamą konfigūracijos informaciją. Tai vyksta tik pirmosios sąrankos metu.</string>
- <string name="description_configure_provider_circumvention">%1$s bando iš teikėjo surinkti visus reikiamus konfigūracijos duomenis. Tai vyksta tik pirmosios sąrankos metu. Jūs pasirinkote naudoti apėjimo technologiją, todėl tai gali šiek tiek užtrukti.</string>
- <string name="details">Išsamiau</string>
- <string name="tor_status">Tor būsena</string>
- <string name="snowflake_status">„Snowflake“ būsena</string>
- <string name="snowflake_started">Paleista „Snowflake“ kliento programėlė</string>
- <string name="snowflake_negotiating_rendezvous_http">Derinamas „Snowflake“ įgaliotojo serverio pasimatymas (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Derinamas „Snowflake“ įgaliotojo serverio pasimatymas (amp podėlis)</string>
- <string name="snowflake_socks_error">„Snowflake“ SOCKS klaida</string>
- <string name="snowflake_broker_success">„Snowflake“ įgaliotojo serverio pasimatymas sėkmingas</string>
- <string name="snowflake_sending_data">Siunčiami duomenys per „Snowflake“</string>
- <string name="title_upcoming_connection_request">Būsima ryšio užklausa</string>
- <string name="title_upcoming_notifications_request">Būsima pranešimų užklausa</string>
- <string name="title_setup_success">Viskas paruošta!</string>
- <string name="setup_success_description">Norėdami prisijungti, spustelėkite žemiau esantį mygtuką</string>
- <string name="permission_rejected">Leidimo užklausa atmesta.</string>
- <string name="login_not_supported">Dabartinė programėlės versija nepalaiko prisijungimų, kurių reikia, kad atnaujintumėte savo VPN liudijimą šiam teikėjui.</string>
- <string name="select_language">Pasirinkti kalbą</string>
- <string name="syntax_check">Sintaksės tikrinimas:</string>
- <string name="validation_status_success">Gerai</string>
- <string name="validation_status_failure">Blogai</string>
- <string name="enter_invite_code">Įveskite pakvietimo kodą</string>
- <string name="scan_qr_code">Skenuoti QR kodą</string>
- <string name="invalid_code">Neteisingas kodas</string>
- <string name="automatic_bridge">Automatiškai (rekomenduojama)</string>
- <string name="automatic_bridge_description">Bus bandoma užmegzti ryšį naudojant geriausius prieinamus tinklų tiltus bei protokolus.</string>
- <string name="manual_bridge">Rankinė konfigūracija</string>
- <string name="manual_bridge_description">Pasirinkti privačius tinklų tiltus ir tam tikrus protokolus</string>
- <string name="censorship_circumvention_description">Rankinė konfigūracija reikalauja techninių žinių. Tęskite apdairiai.</string>
- <string name="discovery">Atradimas</string>
- <string name="discovery_description">Cenzoriai gali blokuoti informacijos apie kritinę konfigūraciją atradimą iš jūsų teikėjo. Pasirinkite apėjimo parinktį, skirtą apeiti blokuotes. </string>
- <string name="automatically_select">Pasirinkti automatiškai</string>
- <string name="tunnelling">Tuneliavimas</string>
- <string name="tunnelling_description">Cenzoriai gali blokuoti prieigą prie atvirojo interneto. Pasirinkite apėjimo parinktį, skirtą apeiti blokuotes.</string>
- <string name="port_hopping">Prievadų keitinėjimas</string>
- <string name="port_hopping_description">Cenzoriai naudoja duomenų srauto analizę, kad blokuotų prieigą prie atvirojo interneto. Prievadų keitinėjimas gali jiems tai apsunkinti.</string>
+ <string name="retry">Bandyti iš naujo</string>
+ <string name="repository_url_text">Pradinis kodas prieinamas, adresu https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Klaidų sekiklis yra prieinamas, adresu https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Vertimai ir sveikintini ir vertinami. Žiūrėkite mūsų „Transifex“ projektą, adresu https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Perjungti teikėją</string>
+ <string name="info">informacija</string>
+ <string name="show_connection_details">Rodyti išsamesnę informaciją apie ryšį</string>
+ <string name="connection_details">Išsamiau apie ryšį</string>
+ <string name="routes_info">Maršrutai: %s</string>
+ <string name="routes_info6">IPv6 maršrutai: %s</string>
+ <string name="error_empty_username">Naudotojo vardas negali būti tuščias.</string>
+ <string name="cert_from_keystore">Gautas liudijimas „%s“ iš raktų saugyklos</string>
+ <string name="provider_label">Teikėjas:</string>
+ <string name="provider_label_none">Nesukonfigūruotas joks teikėjas</string>
+ <string name="status_unknown">Būsena nežinoma.</string>
+ <string name="eip_service_label">Šifruota VPN interneto prieiga</string>
+ <string name="configuration_wizard_title">Pasirinkite paslaugų teikėją</string>
+ <string name="add_provider">Pridėti naują teikėją</string>
+ <string name="introduce_new_provider">Pridėti naują paslaugų teikėją</string>
+ <string name="save">Įrašyti</string>
+ <string name="new_provider_uri">Domeno pavadinimas</string>
+ <string name="valid_url_entered">URL adresas yra tinkamas</string>
+ <string name="not_valid_url_entered">Netaisyklingas URL adresas</string>
+ <string name="provider_details_title">Išsamiau apie teikėją</string>
+ <string name="use_anonymously_button">Naudoti anonimiškai</string>
+ <string name="username_hint">naudotojo vardas</string>
+ <string name="username_ask">Įveskite naudotojo vardą</string>
+ <string name="password_ask">Įveskite slaptažodį</string>
+ <string name="password_hint">slaptažodis</string>
+ <string name="password_match">Slaptažodžiai sutampa</string>
+ <string name="password_mismatch">Slaptažodžiai nesutampa</string>
+ <string name="user_message">Naudotojo žinutė</string>
+ <string name="about_fragment_title">Apie</string>
+ <string name="exclude_apps_fragment_title">Išbraukti programėles iš VPN</string>
+ <string name="error_srp_math_error_user_message">Bandykite dar kartą: Serverio matematinė klaida</string>
+ <string name="error_bad_user_password_user_message">Neteisingas naudotojo vardas ar slaptažodis</string>
+ <string name="error_not_valid_password_user_message">Jis privalo būti bent 8 simbolių ilgio</string>
+ <string name="error_client_http_user_message">Bandykite dar kartą: Kliento HTTP klaida</string>
+ <string name="error_io_exception_user_message">Bandykite dar kartą: I/O klaida</string>
+ <string name="error_json_exception_user_message">Bandykite dar kartą: Blogas atsakas iš serverio</string>
+ <string name="error_no_such_algorithm_exception_user_message">Šifravimo algoritmas nerastas. Atsinaujinkite „Android“!</string>
+ <string name="signup_or_login_button">Registruotis/Prisijungti</string>
+ <string name="login_button">Prisijungti</string>
+ <string name="login_to_profile">Prisijungti prie profilio</string>
+ <string name="logout_button">Atsijungti</string>
+ <string name="signup_button">Užsiregistruoti</string>
+ <string name="create_profile">Sukurti profilį</string>
+ <string name="setup_provider">Nustatyti teikėją</string>
+ <string name="setup_error_title">Konfigūracijos klaida</string>
+ <string name="setup_error_configure_button">Konfigūruoti</string>
+ <string name="setup_error_close_button">Išeiti</string>
+ <string name="setup_error_text">Įvyko klaida, konfigūruojant %s, naudojant jūsų pasirinktą teikėją.\n\nGalite pasirinkti konfigūruoti iš naujo arba išeiti ir kito paleidimo metu sukonfigūruoti teikėją.</string>
+ <string name="setup_error_text_custom">Įvyko klaida, konfigūruojant %s.\n\nGalite pasirinkti konfigūruoti iš naujo arba išeiti.</string>
+ <string name="server_unreachable_message">Serveris yra nepasiekiamas, bandykite dar kartą.</string>
+ <string name="error.security.pinnedcertificate">Saugumo klaida. Atnaujinkite programėlę arba pasirinkite kitą teikėją.</string>
+ <string name="malformed_url">Atrodo, kad tai nėra %s teikėjas.</string>
+ <string name="certificate_error">Tai nėra patikimas %s teikėjas.</string>
+ <string name="service_is_down_error">Paslauga neveikia.</string>
+ <string name="configuring_provider">Konfigūruojamas teikėjas</string>
+ <string name="downloading_certificate_message">Atsiunčiamas VPN liudijimas</string>
+ <string name="updating_certificate_message">Atnaujinamas VPN liudijimas</string>
+ <string name="login.riseup.warning">„Riseup“ naudotojai, norėdami naudotis VPN paslauga, turės susikurti atskirą paskyrą</string>
+ <string name="succesful_authentication_message">Tapatybė patvirtinta</string>
+ <string name="authentication_failed_message">Tapatybės nustatyti nepavyko</string>
+ <string name="registration_failed_message">Registracija nepavyko</string>
+ <string name="eip_status_start_pending">Inicijuojamas ryšys</string>
+ <string name="eip_status_connecting">Jungiamas VPN</string>
+ <string name="eip_status_unsecured">Neapsaugotas ryšys</string>
+ <string name="eip_status_secured">Apsaugotas ryšys</string>
+ <string name="eip_cancel_connect_title">Atsisakyti ryšio?</string>
+ <string name="eip_cancel_connect_text">Šiuo metu yra bandoma užmegzti ryšį. Ar norite to atsisakyti?</string>
+ <string name="eip.warning.browser_inconsistency">Išjungti VPN ryšį? Kai VPN yra išjungtas, yra tikimybė, kad galite atskleisti asmeninę informaciją savo interneto paslaugų teikėjui ar vietiniam tinklui.</string>
+ <string name="eip_state_not_connected"> Neveikia! Nesaugus ryšys!</string>
+ <string name="eip_state_connected">Ryšys saugus</string>
+ <string name="provider_problem">Atrodo, kad atsirado problemų su teikėju.</string>
+ <string name="try_another_provider">Pabandykite kitą teikėją arba susisiekite su savo teikėju.</string>
+ <string name="default_username">Anonimas</string>
+ <string name="logging_in">Prisijungiama</string>
+ <string name="signing_up">Registruojamasi</string>
+ <string name="vpn.button.turn.on">Įjungti</string>
+ <string name="vpn.button.turn.off">Išjungti</string>
+ <string name="vpn_button_turn_off_blocking">Nustoti blokuoti</string>
+ <string name="vpn_securely_routed">Jūsų interneto srautas yra saugiai peradresuojamas per:</string>
+ <string name="vpn_securely_routed_no_internet">Neaptikta jokio interneto ryšio, kai jis atsiras, jūsų interneto duomenų srautas bus saugiai peradresuojamas per:</string>
+ <string name="log_fragment_title">Žurnalas</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Atidaryti naršymo stalčių</string>
+ <string name="navigation_drawer_close">Uždaryti naršymo stalčių</string>
+ <string name="action_example">Pavyzdinis veiksmas</string>
+ <string name="action_settings">Nustatymai</string>
+ <string name="void_vpn_establish">%s blokuoja visą jūsų siunčiamą interneto duomenų srautą.</string>
+ <string name="void_vpn_error_establish">Nepavyko blokuoti viso interneto duomenų srauto.</string>
+ <string name="void_vpn_stopped">Nustota blokuoti visą jūsų siunčiamą interneto duomenų srautą.</string>
+ <string name="void_vpn_title">Interneto duomenų srauto blokavimas</string>
+ <string name="update_provider_details">Atnaujinti išsamią teikėjo informaciją</string>
+ <string name="update_certificate">Atnaujinti liudijimą</string>
+ <string name="warning_eip_json_corrupted">Nepavyko atnaujinti teikėjo konfigūracijos.</string>
+ <string name="eip_json_corrupted_user_message">Nepavyko atnaujinti teikėjo konfigūracijos. Prisijunkite ir bandykite dar kartą.</string>
+ <string name="warning_client_parsing_error_gateways">Nepavyko atpažinti teikėjo tinklų sietuvų. Gali būti, kad jie neteisingai sukonfigūruoti.</string>
+ <string name="warning_corrupted_provider_details">Laikoma informacija apie teikėją yra sugadinta. Jūs galite arba atnaujinti %s (rekomenduojama), arba atnaujinti informaciją apie teikėją, naudodami komercinį LĮ liudijimą.</string>
+ <string name="warning_corrupted_provider_cert">Laikomas teikėjo liudijimas negalioja. Jūs galite arba atnaujinti %s (rekomenduojama), arba atnaujinti teikėjo liudijimą, naudodami komercinį LĮ liudijimą.</string>
+ <string name="warning_expired_provider_cert">Laikomas teikėjo liudijimas nebegalioja. Jūs galite arba atnaujinti %s (rekomenduojama), arba atnaujinti teikėjo liudijimą, naudodami komercinį LĮ liudijimą.</string>
+ <string name="downloading_vpn_certificate_failed">Nepavyko atsisiųsti VPN liudijimo. Bandykite dar kartą arba pasirinkite kitą teikėją.</string>
+ <string name="vpn_certificate_is_invalid">Metas atnaujinti jūsų VPN liudijimą. Atsisiųskite naują liudijimą, kad išlaikytumėte savo ryšį saugų. Tai yra įprastas atnaujinimas.</string>
+ <string name="save_battery">Taupyti akumuliatoriaus energiją</string>
+ <string name="subtitle_save_battery">Išjungta, kol įjungtas VPN viešosios interneto prieigos taškas</string>
+ <string name="save_battery_message">Kai jūsų telefonas nebus aktyvus, foniniai duomenų ryšiai bus užmigdomi.</string>
+ <string name="always_on_vpn">Visada įjungtas VPN</string>
+ <string name="subtitle_always_on_vpn">Atverti „Android“ sistemos nustatymus</string>
+ <string name="tethering">VPN viešosios interneto prieigos taškas</string>
+ <string name="ipv6Firewall">Blokuoti IPv6</string>
+ <string name="require_root">Reikalauja pagrindinio naudotojo leidimų</string>
+ <string name="show_experimental">Rodyti eksperimentines ypatybes</string>
+ <string name="hide_experimental">Slėpti eksperimentines ypatybes</string>
+ <string name="experimental_features">Eksperimentinės ypatybės</string>
+ <string name="tethering_enabled_message">Pirmiausia, įsitikinkite, kad <![CDATA[<b>sistemos nustatymuose</b>]]> įjungėte susiejimus.</string>
+ <string name="tethering_message">Bendrinti VPN su kitais įrenginiais per:</string>
+ <string name="tethering_wifi">Belaidį (Wi-Fi) viešosios interneto prieigos tašką</string>
+ <string name="tethering_usb">USB susiejimą</string>
+ <string name="tethering_bluetooth">Bluetooth susiejimą</string>
+ <string name="do_not_show_again">Daugiau neberodyti</string>
+ <string name="always_on_vpn_user_message">Norėdami įjungti visada įjungtą VPN, savo „Android“ VPN nustatymuose spustelėkite [img src] piktogramą ir perjunkite jungiklį taip, kad būtų įjungtas.</string>
+ <string name="always_on_blocking_vpn_user_message">Norėdami optimaliai apsaugoti savo privatumą, taip pat turėtumėte aktyvuoti parinktį „Blokuoti ryšius be VPN“</string>
+ <string name="donate_title">Paaukoti</string>
+ <string name="donate_default_message">Paaukokite, prašome, jei vertinate saugią komunikaciją, kuri yra lengva naudoti tiek galutiniam naudotojui, tiek teikėjui.</string>
+ <string name="donate_message">„LEAP“ yra priklausoma nuo paaukojimų ir subsidijų. Paaukokite, prašome, jei vertinate saugią komunikaciją, kuri yra lengva naudoti tiek galutiniam naudotojui, tiek teikėjui.</string>
+ <string name="donate_button_remind_later">Priminti vėliau</string>
+ <string name="donate_button_donate">Paaukoti</string>
+ <string name="obfuscated_connection">Naudojamas užmaskuotas ryšys.</string>
+ <string name="obfuscated_connection_try">Bandomas užmaskuotas ryšys.</string>
+ <string name="nav_drawer_obfuscated_connection">Naudoti tinklų tiltus</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Apeiti VPN filtravimą</string>
+ <string name="warning_exclude_apps_message">Būkite atsargūs, išbraukdami programėles iš VPN. Tai atskleis jūsų tapatybę ir statys į pavojų jūsų saugumą.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d neapsaugota programėlė</item>
+ <item quantity="few">%d neapsaugotos programėlės</item>
+ <item quantity="many">%d neapsaugotų programėlių</item>
+ <item quantity="other">%d neapsaugota programėlė</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s nepavyko prisijungti. Gali būti, kad VPN ryšiai yra blokuojami. Ar norite bandyti prisijungti naudojant užmaskuotus ryšius?</string>
+ <string name="warning_no_more_gateways_no_pt">%s nepavyko prisijungti. Ar norite bandyti dar kartą?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s nepavyko prisijungti naudojant užmaskuotus VPN ryšius. Ar norite bandyti prisijungti naudojant standartinį VPN?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s nepavyko prisijungti prie %2$s. Ar norite bandyti automatiškai jungtis prie geriausios vietos?</string>
+ <string name="warning_option_try_best">Bandyti geriausią vietą</string>
+ <string name="warning_option_try_pt">Bandyti užmaskuotą ryšį</string>
+ <string name="warning_option_try_ovpn">Bandyti standartinį ryšį</string>
+ <string name="vpn_error_establish">„Android“ nepavyko paleisti VPN paslaugos.</string>
+ <string name="root_permission_error">%s be pagrindinio naudotojo teisių negali naudoti tokių ypatybių, kaip VPN viešosios interneto prieigos taškas ar IPv6 užkarda.</string>
+ <string name="qs_enable_vpn">Paleisti %s</string>
+ <string name="version_update_found">Bakstelėkite čia, norėdami pradėti atsiuntimą.</string>
+ <string name="version_update_title">Rasta nauja %s versija.</string>
+ <string name="version_update_apk_description">Atsiunčiama nauja %s versija</string>
+ <string name="version_update_download_title">Atsiųsta nauja %s versija.</string>
+ <string name="version_update_download_description">Bakstelėkite čia, norėdami įdiegti atnaujinimą.</string>
+ <string name="version_update_error_pgp_verification">PGP patikrinimo klaida. Atsiuntimo nepaisoma.</string>
+ <string name="version_update_error">Nepavyko atnaujinti.</string>
+ <string name="version_update_error_permissions">Nėra leidimų įdiegti programėlę.</string>
+ <string name="gateway_selection_title">Pasirinkti vietą</string>
+ <string name="gateway_selection_recommended_location">Rekomenduojama vieta</string>
+ <string name="gateway_selection_recommended">Rekomenduojama</string>
+ <string name="gateway_selection_manually">Pasirinkti rankiniu būdu</string>
+ <string name="gateway_selection_automatic_location">Automatiškai naudoti geriausią ryšį</string>
+ <string name="gateway_selection_automatic">Automatiškai</string>
+ <string name="reconnecting">Jungiamasi iš naujo…</string>
+ <string name="tor_starting">Paleidžiami tinklų tiltai, kad būtų apeita cenzūra…</string>
+ <string name="tor_stopping">Stabdomi tinklų tiltai</string>
+ <string name="tor_started">Naudojami tinklų tiltai, kad būtų apeita cenzūra</string>
+ <string name="log_conn_done_pt">Prisijungta prie keičiamojo perdavimo</string>
+ <string name="log_conn_pt">Jungiamasi prie keičiamojo perdavimo</string>
+ <string name="log_conn_done">Prisijungta prie retransliavimo</string>
+ <string name="log_handshake">Derinamas ryšys su retransliavimu</string>
+ <string name="log_handshake_done">Ryšys su retransliavimu suderintas</string>
+ <string name="log_onehop_create">Užmezgiamas šifruoto katalogo ryšys</string>
+ <string name="log_requesting_status">Prašoma sutarimo dėl tinklo būsenos</string>
+ <string name="log_loading_status">Įkeliamas sutarimas dėl tinklo būsenos</string>
+ <string name="log_loading_keys">Įkeliami liudijimų įstaigos liudijimai</string>
+ <string name="log_requesting_descriptors">Prašoma retransliavimo deskriptorių</string>
+ <string name="log_loading_descriptors">Įkeliami retransliavimo deskriptoriai</string>
+ <string name="log_enough_dirinfo">Įkelta pakankamai katalogo informacijos, kad būtų sudarytos grandinės</string>
+ <string name="log_ap_handshake_done">Derinimas su retransliavimu užbaigtas, kad būtų sudarytos grandinės</string>
+ <string name="log_circuit_create">Užmezgiama Tor grandinė</string>
+ <string name="log_done">Vykdoma</string>
+ <string name="channel_name_tor_service">%s tinklų tiltų paslauga</string>
+ <string name="channel_description_tor_service">Informuoja apie tinklų tiltų naudojimą, kol konfigūruojama %s.</string>
+ <string name="error_tor_timeout">Nepavyko paleisti tinklų tiltų. Norite bandyti iš naujo ar tęsti naudojant neužmaskuotą saugų ryšį, skirtą konfigūruoti %s?</string>
+ <string name="retry_unobfuscated">Bandyti neužmaskuotą</string>
+ <string name="hide">Slėpti</string>
+ <string name="error_network_connection">%s neturi interneto ryšio. Patikrinkite belaidžio (WiFi) ryšio ir mobiliųjų duomenų nustatymus.</string>
+ <string name="censorship_circumvention">Cenzūros apėjimas</string>
+ <string name="use_snowflake">Naudoti „Snowflake“</string>
+ <string name="snowflake_description">Apsaugoti konfigūracijos procesą nuo cenzūros.</string>
+ <string name="vpn_settings">VPN nustatymai</string>
+ <string name="prefer_udp">Jei prieinama, naudoti UDP</string>
+ <string name="prefer_udp_subtitle">UDP gali būti greitesnis ir geresnis transliavimui, bet veikia ne visuose tinkluose.</string>
+ <string name="disabled_while_bridges_on">Išjungta, kol naudojami tinklų tiltai.</string>
+ <string name="hint_bridges">Šiuo metu galima pasirinkti tik vietas, kurios palaiko tinklų tiltus.</string>
+ <string name="option_disable_bridges">Išjungti tinklų tiltus</string>
+ <string name="eip_state_insecure">Ryšys nesaugus</string>
+ <string name="connection_not_connected">Gali būti, kad atskleidžiate informaciją savo interneto paslaugų teikėjui ar vietiniam tinklui.</string>
+ <string name="eip_state_no_network">Jūs neturite veikiančio interneto ryšio. Kai jį turėsite, būsite automatiškai prijungti prie</string>
+ <string name="eip_state_blocking">%1$s blokuoja visą interneto duomenų srautą.</string>
+ <string name="disabled_while_udp_on">Išjungta, kol yra įjungta UDP.</string>
+ <string name="advanced_settings">Išplėstinės nuostatos</string>
+ <string name="cancel_connection">Atsijungti</string>
+ <string name="unknown_location">Nežinoma vieta</string>
+ <string name="splash_footer">Sukūrė „LEAP“</string>
+ <string name="welcome">Sveiki!</string>
+ <string name="select_provider">Pasirinkite teikėją</string>
+ <string name="provider_description_riseup">„Riseup“ teikia internetinio susisiekimo įrankius žmonėms ir grupėms, siekiantiems išvaduojamųjų socialinių pokyčių. Mes esame projektas, kurio tikslas – kurti demokratines alternatyvas ir praktikuoti apsisprendimo teisę, valdant mūsų asmenines saugias komunikacijos priemones.</string>
+ <string name="next">Kitas</string>
+ <string name="add_provider_prompt">Čia įrašykite teikėjo URL adresą.</string>
+ <string name="invite_code_provider_description">Bitmask jums leidžia prisijungti prie teikėjų naudojant privatų pakvietimo kodą. </string>
+ <string name="invite_code_provider_prompt">Čia įveskite savo patikimą pakvietimo kodą.</string>
+ <string name="qr_scanner_prompt">Skenuoti QR kodą</string>
+ <string name="provider_description_calyx">„Calyx“ yra ne pelno siekianti švietimo ir tyrinėjimų organizacija, pasišventusi tyrinėti, testuoti, plėtoti ir įgyvendinti privatumo technologijas bei įrankius, skatinant žodžio laisvę, laisvą raišką, piliečių įsitraukimą ir teises į privatumą internete bei mobiliųjų komunikacijų pramonėje.</string>
+ <string name="title_circumvention_setup">Ar jums reikia cenzūros apėjimo?</string>
+ <string name="circumvention_setup_description">Jei gyvenate šalyje, kurioje internetas yra cenzūruojamas, galite naudoti mūsų cenzūros apėjimo parinktis, kad pasiektumėte visas interneto paslaugas. Šios parinktys sulėtins jūsų interneto ryšio greitį!</string>
+ <string name="use_standard_vpn">Naudoti standartinį %s</string>
+ <string name="use_circumvention_tech">Naudoti apėjimo technologijas (lėčiau)</string>
+ <string name="description_configure_provider">Tam, kad prisijungtų prie jūsų teikėjo, %1$s gauna visą reikiamą konfigūracijos informaciją. Tai vyksta tik pirmosios sąrankos metu.</string>
+ <string name="description_configure_provider_circumvention">%1$s bando iš teikėjo surinkti visus reikiamus konfigūracijos duomenis. Tai vyksta tik pirmosios sąrankos metu. Jūs pasirinkote naudoti apėjimo technologiją, todėl tai gali šiek tiek užtrukti.</string>
+ <string name="details">Išsamiau</string>
+ <string name="tor_status">Tor būsena</string>
+ <string name="snowflake_status">„Snowflake“ būsena</string>
+ <string name="snowflake_started">Paleista „Snowflake“ kliento programėlė</string>
+ <string name="title_upcoming_connection_request">Būsima ryšio užklausa</string>
+ <string name="title_upcoming_notifications_request">Būsima pranešimų užklausa</string>
+ <string name="title_setup_success">Viskas paruošta!</string>
+ <string name="setup_success_description">Norėdami prisijungti, spustelėkite žemiau esantį mygtuką</string>
+ <string name="permission_rejected">Leidimo užklausa atmesta.</string>
+ <string name="login_not_supported">Dabartinė programėlės versija nepalaiko prisijungimų, kurių reikia, kad atnaujintumėte savo VPN liudijimą šiam teikėjui.</string>
+ <string name="select_language">Pasirinkti kalbą</string>
+ <string name="syntax_check">Sintaksės tikrinimas:</string>
+ <string name="validation_status_success">Gerai</string>
+ <string name="validation_status_failure">Blogai</string>
+ <string name="enter_invite_code">Įveskite pakvietimo kodą</string>
+ <string name="invalid_code">Neteisingas kodas</string>
+ <string name="automatic_bridge">Automatiškai (rekomenduojama)</string>
+ <string name="automatic_bridge_description">Bus bandoma užmegzti ryšį naudojant geriausius prieinamus tinklų tiltus bei protokolus.</string>
+ <string name="manual_bridge">Rankinė konfigūracija</string>
+ <string name="manual_bridge_description">Pasirinkti privačius tinklų tiltus ir tam tikrus protokolus</string>
+ <string name="censorship_circumvention_description">Rankinė konfigūracija reikalauja techninių žinių. Tęskite apdairiai.</string>
+ <string name="discovery">Atradimas</string>
+ <string name="discovery_description">Cenzoriai gali blokuoti informacijos apie kritinę konfigūraciją atradimą iš jūsų teikėjo. Pasirinkite apėjimo parinktį, skirtą apeiti blokuotes. </string>
+ <string name="automatically_select">Pasirinkti automatiškai</string>
+ <string name="tunnelling">Tuneliavimas</string>
+ <string name="tunnelling_description">Cenzoriai gali blokuoti prieigą prie atvirojo interneto. Pasirinkite apėjimo parinktį, skirtą apeiti blokuotes.</string>
+ <string name="port_hopping">Prievadų keitinėjimas</string>
+ <string name="port_hopping_description">Cenzoriai naudoja duomenų srauto analizę, kad blokuotų prieigą prie atvirojo interneto. Prievadų keitinėjimas gali jiems tai apsunkinti.</string>
</resources>
diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml
index 17aca927..f5ae8078 100644
--- a/app/src/main/res/values-my/strings.xml
+++ b/app/src/main/res/values-my/strings.xml
@@ -1,159 +1,159 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">ပြန်စမ်းကြည့်မယ်</string>
- <string name="repository_url_text">အရင်းအမြစ်ကုဒ် ကိုဤ လင့်တွင်ရရှိနိုင်ပါသည် - https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">ခြေရာခံမှတ်တမ်း ကိုဤ လင့်တွင်ရရှိနိုင်ပါသည် - https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">ဘာသာပြန်များကို ကြိုဆိုပြီး တန်ဖိုးထားကြိုဆိုပါသည်။ ကျွန်ုပ်တို့ Transifex စီမံကိန်းကို https://www.transifex.com/projects/p/bitmask/ တွင်ကြည့်ရှုနိုင်ပါသည်။</string>
- <string name="switch_provider_menu_option">ဝန်ဆောင်မှုပေးသူ ပြောင်းမယ်</string>
- <string name="info">အချက်အလက်များ</string>
- <string name="show_connection_details">ဆက်သွယ်မှုအချက်အလက်များ ဖော်ပြမယ်</string>
- <string name="routes_info">လမ်းကြောင်းများ %s</string>
- <string name="routes_info6">IPv6 လမ်းကြောင်းများ %s</string>
- <string name="error_empty_username">အသုံးပြုသူအမည်အား ကွက်လပ်ထား၍မရပါ။</string>
- <string name="cert_from_keystore">keystore မှ \'%s\' လက်မှတ်ကိုရရှိ</string>
- <string name="provider_label">ဝန်ဆောင်မှုပေးသူ -</string>
- <string name="provider_label_none">ဝန်ဆောင်မှုပေးသူများ စီစဥ်ထားခြင်းမရှိ</string>
- <string name="status_unknown">အခြေအနေ မသိရှိရပါ။</string>
- <string name="eip_service_label">VPN နှင့် ကုဒ်အတူ ချိတ်ထားသော အင်တာနက်လိုင်း</string>
- <string name="configuration_wizard_title">ဝန်ဆောင်မှုပေးသူအား ရွေးမယ်</string>
- <string name="add_provider">ဝန်ဆောင်မှုပေးသူ အသစ်ထည့်မယ်</string>
- <string name="introduce_new_provider">ဝန်ဆောင်မှုပေးသူ အသစ်ထည့်မယ်</string>
- <string name="save">သိမ်းဆည်းမယ်</string>
- <string name="new_provider_uri">ဒိုမိန်းအမည်</string>
- <string name="valid_url_entered">ဤ URL သည် အကျုံးဝင်သည်</string>
- <string name="not_valid_url_entered">URL ပျက်နေသည်</string>
- <string name="provider_details_title">ဝန်ဆောင်မှုပေးသူ အချက်အလက်များ</string>
- <string name="use_anonymously_button">အမည်မဖေါ်ရန် အသုံးပြုမယ်</string>
- <string name="username_hint">အသုံးပြုသူအမည်</string>
- <string name="username_ask">အသုံးပြုသူအမည် ရိုက်ထည့်ပေးပါ</string>
- <string name="password_ask">သင့်စကားဝှက် ရိုက်ထည့်ပါ</string>
- <string name="password_hint">စကားဝှက်</string>
- <string name="password_match">စကားဝှက်များ ကိုက်ညီပါသည်</string>
- <string name="password_mismatch">စကားဝှက်များ မကိုက်ညီပါ</string>
- <string name="user_message">အသုံးပြုသူစာ</string>
- <string name="about_fragment_title">အကြောင်းအရာ</string>
- <string name="exclude_apps_fragment_title">VPN မှ အပ္ပလီကေးရှင်းများကို ဖယ်ထုတ်မယ်</string>
- <string name="error_srp_math_error_user_message">ပြန်စမ်းကြည့်ပါ - ဆာဗာသင်္ချာအမှား</string>
- <string name="error_bad_user_password_user_message">အသုံးပြုသူအမည် သို့မဟုတ် စကားဝှက်မှာ မှားယွင်းနေပါသည်</string>
- <string name="error_not_valid_password_user_message">စာသားသည် စာလုံးရေ အနည်းဆုံး ၈ လုံးရှိရမည်</string>
- <string name="error_client_http_user_message">ပြန်စမ်းမယ် - သုံးသူ HTTP အမှား</string>
- <string name="error_io_exception_user_message">ပြန်စမ်းမယ် - I/O အမှား</string>
- <string name="error_json_exception_user_message">ပြန်စမ်းမယ် - ဆာဗာမှ မှားယွင်းသော တုံ့ပြန်မှု</string>
- <string name="error_no_such_algorithm_exception_user_message">ကုဒ်တွက်ချက်မှု ရှာ၍မရပါ။ Android ကို အဆင့်မြှင့်ပါ!</string>
- <string name="signup_or_login_button">အကောင့်အသစ်ဖွင့်မယ် / လော့အင်ဝင်မယ်</string>
- <string name="login_button">လော့အင်ဝင်မယ်</string>
- <string name="login_to_profile">အကောင့်ထဲ လော့အင်ဝင်မယ်</string>
- <string name="logout_button">ထွက်မယ်</string>
- <string name="signup_button">အကောင့်အသစ်ဖွင့်မယ်</string>
- <string name="create_profile">ပရိုဖိုင် ဖန်တီးမယ်</string>
- <string name="setup_provider">ဝန်ဆောင်မှုပေးသူ ထည့်သွင်းမယ်</string>
- <string name="setup_error_title">စီစဉ်မှု ပြဿနာ</string>
- <string name="setup_error_configure_button">စီစဥ်မယ်</string>
- <string name="setup_error_close_button">ထွက်မယ်</string>
- <string name="setup_error_text">သင့် အင်တာနက်ဝန်ဆောင်မှုပေးသူနှင့် စီစဥ်ရာတွင် %s မအောင်မြင်ခဲ့ပါ။ \n\nပြန်စမ်းကြည့်နိုင်ပါသည် သို့မဟုတ် ထွက်၍ နောက်တစ်ခေါက် ပြန်ဝင်ပြီး အင်တာနက်ဝန်ဆောင်မှုပေးသူနှင့် ပြန်စီစဥ်နိုင်ပါသည်။</string>
- <string name="server_unreachable_message">ဆာဗာအား ချိတ်၍မရပါ၊ ပြန်စမ်းကြည့်ပေးပါ။</string>
- <string name="error.security.pinnedcertificate">လုံခြုံရေး မှားယွင်းချက်ရှိသည်။ အပ္ပလီကေးရှင်းအား အဆင့်မြှင့်ပေးပါ သို့မဟုတ် အခြား အင်တာနက်ဝန်ဆောင်မှုပေးသူအား ပြောင်းသုံးပါ။</string>
- <string name="malformed_url">၎င်းအား %sဝန်ဆောင်မှုပေးသူဟု သတ်မှတ်၍မရပါ။</string>
- <string name="certificate_error">၎င်းသည် ယုံကြည်ရသော %s ဝန်ဆောင်မှုပေးသူ မဟုတ်ပါ။</string>
- <string name="service_is_down_error">ဝန်ဆောင်မှု မရနိုင်ပါ။</string>
- <string name="configuring_provider">ဝန်ဆောင်မှုပေးသူကို စီစဥ်နေပါသည်</string>
- <string name="incorrectly_downloaded_certificate_message">သင်၏ အမည်မဖော်ပြသည့်လက်မှတ်ကို မသိမ်းဆည်းခဲ့ပါ</string>
- <string name="downloading_certificate_message">VPN လက်မှတ်ဒေါင်းလုပ်နေပါသည်</string>
- <string name="updating_certificate_message">VPN လက်မှတ်ကို အဆင့်မြှင့်နေပါသည်</string>
- <string name="login.riseup.warning">RiseUp အသုံးပြုသူများသည် VPN ဝန်ဆောင်မှုသုံးရန် သီးသန့်အကောင့်တစ်ခု ဖွင့်ရပါမည်။ </string>
- <string name="succesful_authentication_message">စစ်မှန်ပါသည်</string>
- <string name="authentication_failed_message">စစ်မှန်ကြောင်းစစ်ဆေးခြင်း မအောင်မြင်ပါ</string>
- <string name="registration_failed_message">စာရင်းတင်ခြင်း မအောင်မြင်ပါ</string>
- <string name="eip_status_start_pending">ဆက်သွယ်မှု စတင်ချိတ်ဆက်နေပါသည်</string>
- <string name="eip_cancel_connect_title">ဆက်သွယ်မှု ပယ်ဖျက်မယ်?</string>
- <string name="eip_cancel_connect_text">ဆက်သွယ်မှုရရှိရန် လုပ်ဆောင်နေသည်။ ဖျက်သိမ်းချင်ပါသလား?</string>
- <string name="eip.warning.browser_inconsistency">VPN လိုင်းအားပိတ်မည်လား? VPN လိုင်းပိတ်ထားလျှင် သင်၏ ပုဂ္ဂိုလ်ရေးရာ အချက်အလက်များကို သင်၏ အင်တာနက်ဝန်ဆောင်မှုပေးသူ သို့မဟုတ် လိုကယ်ကွန်ယက်ဆီသို့ ပေးအပ်နိုင်ပါသည်။</string>
- <string name="eip_state_not_connected">လိုင်းမမိပါ! ဆက်သွယ်မှုလိုင်း မလုံခြုံပါ!</string>
- <string name="eip_state_connected">ဆက်သွယ်မှုလိုင်း လုံခြုံပါသည်</string>
- <string name="provider_problem">ဝန်ဆောင်မှုပေးသူနှင့် ပြဿနာတစ်စုံတစ်ရာ ဖြစ်နေပါသည်။</string>
- <string name="try_another_provider">အခြား အင်တာနက်ဝန်ဆောင်မှုပေးသူ နှင့် စမ်းကြည့်ပါ။ သို့မဟုတ် သင်၏ အင်တာနက်ဝန်ဆောင်မှုပေးသူအား ဆက်သွယ်ပါ။</string>
- <string name="default_username">အမည်မဖေါ်</string>
- <string name="logging_in">အကောင့်ထဲဝင်ရောက်နေသည်</string>
- <string name="signing_up">အကောင့်သစ် ဖွင့်နေသည်</string>
- <string name="vpn.button.turn.on">ဖွင့်မယ်</string>
- <string name="vpn.button.turn.off">ပိတ်မယ်</string>
- <string name="vpn_button_turn_off_blocking">ပိတ်ဆို့ခြင်းကို ရပ်မယ်</string>
- <string name="vpn_securely_routed">သင့် အင်တာနက်အသွားအလာကို လုံခြုံစွာ ပို့ဆောင်နေသည် -</string>
- <string name="vpn_securely_routed_no_internet">အင်တာနက်လိုင်းအား မတွေ့ရှိပါ။ ပြန်လည်တွေ့ရှိလျှင် သင့် အင်တာနက်အသွားအလာကို လုံခြုံစွာ ပြန်ချိတ်ဆက်ပေးပါမည် -</string>
- <string name="log_fragment_title">မှတ်တမ်း</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">အညွှန်းဘုတ် ဖွင့်မယ်</string>
- <string name="navigation_drawer_close">အညွှန်းဘုတ် ပိတ်မယ်</string>
- <string name="action_example">နမူနာ လုပ်ဆောင်ချက်</string>
- <string name="action_settings">အပြင်အဆင်များ</string>
- <string name="void_vpn_establish">%sသည် အထွက်အင်တာနက်အသွားအလာများ ပိတ်ဆို့သည်</string>
- <string name="void_vpn_stopped">အထွက်အင်တာနက်အသွားအလာများ ပိတ်ဆို့ခြင်း မရှိတော့ပါ။</string>
- <string name="void_vpn_title">လိုင်းပိတ်နေသည်</string>
- <string name="update_provider_details">ဝန်ဆောင်မှုပေးသူ၏ အချက်အလက်များအား အဆင့်မြှင့်မယ်</string>
- <string name="update_certificate">လက်မှတ်ကို အဆင့်မြှင့်မယ်</string>
- <string name="warning_eip_json_corrupted">ဝန်ဆောင်မှုပေးသူ စီစဥ်မှု အဆင့်မြှင့်ရန် မအောင်မြင်ပါ။</string>
- <string name="eip_json_corrupted_user_message">ဝန်ဆောင်မှုပေးသူ စီစဥ်မှု အဆင့်မြှင့်ရန် မအောင်မြင်ပါ။ လော့အင် ပြန်ဝင်ကြည့်ပါ။</string>
- <string name="warning_client_parsing_error_gateways">ဝန်ဆောင်သူ gateway များကို အသိအမှတ်ပြု၍မရပါ။ ၎င်းတို့ကို မှားယွင်းစွာ စီစဥ်ထားသောကြောင့် ဖြစ်နိုင်သည်။</string>
- <string name="warning_corrupted_provider_details">သိမ်းဆည်းထားသော ဝန်ဆောင်သူ၏ အချက်အလက်များ ပျက်နေသည်။ %sကို အဆင့်မြှင့်ရန် အကြံပြုသည် (သို့မဟုတ်) စီးပွားဖြစ် CA လက်မှတ်သုံး၍ ဝန်ဆောင်သူအချက်အလက်များ အဆင့်မြှင့်ပါ။</string>
- <string name="warning_corrupted_provider_cert">သိမ်းဆည်းထားသော ဝန်ဆောင်သူလက်မှတ်သည် အကျုံးမဝင်ပါ။ %sကို အဆင့်မြှင့်ရန် အကြံပြုသည် (သို့မဟုတ်) စီးပွားဖြစ် CA လက်မှတ်သုံး၍ ဝန်ဆောင်သူလက်မှတ်ကို အဆင့်မြှင့်ပါ။</string>
- <string name="warning_expired_provider_cert">သိမ်းဆည်းထားသော ဝန်ဆောင်သူလက်မှတ်သည် သက်တမ်းကုန်နေပါသည်။ %s ကို အဆင့်မြှင့်ရန် အကြံပြုသည် (သို့မဟုတ်) စီးပွားဖြစ် CA လက်မှတ်သုံး၍ ဝန်ဆောင်သူလက်မှတ်ကို အဆင့်မြှင့်ပါ။</string>
- <string name="downloading_vpn_certificate_failed">VPN လက်မှတ်အား ဒေါင်းလုပ်ဆွဲခြင်း မအောင်မြင်ခဲ့ပါ။ ပြန်စမ်းကြည့်ပေးပါ သို့မဟုတ် အခြားအင်တာနက်ဝန်ဆောင်မှုပေးသူ သို့ ပြောင်းသုံးကြည့်ပေးပါ။</string>
- <string name="vpn_certificate_is_invalid">VPN လက်မှတ်သည် အကျုံးမဝင်ပါ။ အသစ်တစ်ခု ပြန်ဒေါင်းလုပ်ဆွဲပြီး စမ်းကြည့်ပါ။</string>
- <string name="vpn_certificate_user_message">VPN လက်မှတ်သည် အကျုံးမဝင်ပါ။ လက်မှတ်အသစ် ဒေါင်းလုပ်ဆွဲရန် ပြန်လည် လော့အင်ဝင်ပါ။</string>
- <string name="save_battery">ဘက်ထရီကို ချွေတာမယ်</string>
- <string name="subtitle_save_battery">VPN ဟော့စပေါ့ ဖွင့်ထား၍ ပယ်ဖျက်ထားသည်</string>
- <string name="save_battery_message">ဖုန်းကို အသုံးမပြုလျှင် နောက်ခံဒေတာ ချိတ်ဆက်မှုများကို ယာယီရပ်ဆိုင်းပေးထားပါမည်။</string>
- <string name="always_on_vpn">အမြဲတမ်းဖွင့် VPN</string>
- <string name="subtitle_always_on_vpn">Android စနစ်အပြင်အဆင်များ ဖွင့်မယ်</string>
- <string name="tethering">VPN ဟော့စပေါ့</string>
- <string name="ipv6Firewall">IPv6 ကိုပိတ်မယ်</string>
- <string name="require_root">Root ခွင့်ပြုချက်များ လိုအပ်သည်</string>
- <string name="show_experimental">စမ်းသပ်ထားသည်များ ပြမယ်</string>
- <string name="hide_experimental">စမ်းသပ်ထားသည်များ ဖုံးကွယ်မယ်</string>
- <string name="tethering_enabled_message">ရှေးဦးစွာ tethering ကို <![CDATA[<b>system settings</b>]]> တွင် ဖွင့်ထားခြင်းရှိ/မရှိ စစ်ဆေးပါ။</string>
- <string name="tethering_message">မိမိ VPN ကို အခြားစက်များဖြင့် ဝေမျှရန် -</string>
- <string name="tethering_wifi">ဝိုင်ဖိုင် ဟော့စပေါ့</string>
- <string name="tethering_usb">USB နှင့် ချိတ်ဆက်ခြင်း</string>
- <string name="tethering_bluetooth">ဘလူးတု နှင့် ချိတ်ဆက်ခြင်း</string>
- <string name="do_not_show_again">နောက်တစ်ကြိမ် မဖေါ်ပြရန်</string>
- <string name="always_on_vpn_user_message">Android VPN အပြင်အဆင်အတွင်း စီစဥ်ခြင်း [img src] ခလုတ်နှိပ်ပြီး အမြဲတမ်းဖွင့် VPN ကိုဖွင့်လို့ရပါသည်။</string>
- <string name="always_on_blocking_vpn_user_message">သင့်ပုဂ္ဂိုလ်ရေးရာ အချက်အလက်များကို အလုံခြုံဆုံး ကာကွယ်နိုင်ရန် \"VPN မပါသော ချိတ်ဆက်မှုများ ပိတ်ဆို့ရန်\" ဆိုသည် ကို ရွေးထားသင့်သည်။</string>
- <string name="donate_title">လှူဒါန်းမယ်</string>
- <string name="donate_default_message">သုံးသူများနှင့် အင်တာနက်ဝန်ဆောင်မှုပေးသူများ အတွက် လုံခြုံသော ဆက်သွယ်မှုလိုင်းရရှိရန် တန်ဖိုးထားလျှင် ကျေးဇူးပြု၍ လှူဒါန်းပေးပါ။</string>
- <string name="donate_message">LEAP သည် လှူဒါန်းငွေ နှင့် ထောက်ပံ့ငွေများ ဖြင့်ရပ်တည်နေပါသည်။ သုံးသူများနှင့် အင်တာနက်ဝန်ဆောင်မှုပေးသူများ အတွက် လုံခြုံသော ဆက်သွယ်မှုလိုင်းရရှိရန် တန်ဖိုးထားလျှင် ကျေးဇူးပြု၍ လှူဒါန်းပေးပါ။</string>
- <string name="donate_button_remind_later">နေက်မှ သတိပေးပါ</string>
- <string name="donate_button_donate">လှူဒါန်းမယ်</string>
- <string name="obfuscated_connection">ရှုပ်ထွေးသော ချိတ်ဆက်မှုနဲ့ သုံးနေသည်။</string>
- <string name="obfuscated_connection_try">ရှုပ်ထွေးသော ချိတ်ဆက်မှုနဲ့ စမ်းချိတ်နေသည်။</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">VPN စစ်ထုတ်ခြင်းအား သွယ်ဝိုက်၍သုံးမယ်</string>
- <string name="warning_exclude_apps_message">VPN မှ အပ္ပလီကေးရှင်းများ ဖယ်ထုတ်ခြင်းကို သတိထားပါ။ ဖယ်ထုတ်ထားခြင်းကြောင့် သင်၏ ကိုယ်ပိုင်အချက်အလက်များ နှင့် လုံခြုံရေးကို ထိခိုက်စေနိုင်ပါသည်။</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="other">%d မကာကွယ်ထားသော အပ္ပလီကေးရှင်းများ</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s ချိတ်လို့မရပါ။ VPN လိုင်းများပိတ်ထားခြင်း ကြောင့်ဖြစ်နိုင်ပါသည်။ ရှုပ်ထွေးသော ချိတ်ဆက်မှုဖြင့် ပြန်စမ်းချိတ်ကြည့်ချင်ပါသလား? </string>
- <string name="warning_no_more_gateways_no_pt">%s ချိတ်ဆက်လို့မရပါ။ ပြန်စမ်းကြည့်မလား?</string>
- <string name="warning_no_more_gateways_use_ovpn">ရှုပ်ထွေးသော ချိတ်ဆက်မှုဖြင့် %s ချိတ်ဆက်လို့မရပါ။ ရိုးရိုး ချိတ်ဆက်မှုဖြင့် ပြန်စမ်းချိတ်ကြည့်ချင်ပါသလား?</string>
- <string name="warning_option_try_pt">ရှုပ်ထွေးသော ချိတ်ဆက်မှု နည်းလမ်းဖြင့် စမ်းကြည့်မယ်</string>
- <string name="warning_option_try_ovpn">ရိုးရိုးချိတ်ဆက်မှု နည်းလမ်းဖြင့် စမ်းကြည့်မယ်</string>
- <string name="vpn_error_establish">Android မှ VPN ဝန်ဆောင်မှု ထူထောင်ခြင်း မအောင်မြင်ပါ။</string>
- <string name="root_permission_error">Root ခွင့်ပြုချက်များ မရရှိ၍ VPN ဟော့စပေါ့ သို့မဟုတ် IPv6 firewall အရာများကိုလုပ်ဆောင်နိုင်ရန် %s မရပါ။</string>
- <string name="qs_enable_vpn">%s စမယ်</string>
- <string name="version_update_found">ဤနေရာကိုနှိပ်၍ စဒေါင်းလုပ်လုပ်မယ်</string>
- <string name="version_update_title">ဗားရှင်းအသစ် %s တွေ့ရှိထားပါသည်။</string>
- <string name="version_update_apk_description">ဗားရှင်းအသစ် %s ဒေါင်းလုပ်ဆွဲနေပါသည်</string>
- <string name="version_update_download_title">ဗားရှင်းအသစ် %s ဒေါင်းလုပ်ဆွဲပြီးပါပြီ။</string>
- <string name="version_update_download_description">ဤနေရာကိုနှိပ်၍ အဆင့်မြှင့်မယ်</string>
- <string name="version_update_error_pgp_verification">PGP အတည်ပြုခြင်း မအောင်မြင်ပါ။ ဒေါင်းလုပ်အား လျစ်လျူရှုနေသည်။</string>
- <string name="version_update_error">အဆင်မြှင့်ခြင်း မအောင်မြင်ပါ။</string>
- <string name="version_update_error_permissions">အပ္ပလီကေးရှင်းကို ဒေါင်းလုပ်ဆွဲရန် ခွင့်ပြုချက်မရှိပါ။</string>
- <string name="gateway_selection_automatic">အလိုအလျောက်</string>
- <string name="log_onehop_create">ကုဒ်ဖြင့်စာဝှက်ထားသည့် ဖိုင်လမ်းကြောင်း ချိတ်ဆက်မှု တစ်ခု တည်ဆောက်နေသည်</string>
- <string name="log_loading_keys">လုပ်ပိုင်ခွင့် လက်မှတ်များကို ရယူနေသည်</string>
- <string name="log_circuit_create">Tor ဆားကစ် တစ်ခုကို တည်ဆောက်နေသည်</string>
- <string name="log_done">လုပ်ဆောင်နေသည်</string>
- <string name="hide">ဝှက်မည်</string>
- <string name="use_snowflake">Snowflake အသုံးပြုရန်</string>
- <string name="vpn_settings">VPN အပြင်အဆင်များ</string>
- <string name="advanced_settings">အဆင့်မြင့်သော ဆက်တင်များ</string>
- <string name="cancel_connection">ချိတ်ဆက်မှုဖြတ်တောက်မယ်</string>
+ <string name="retry">ပြန်စမ်းကြည့်မယ်</string>
+ <string name="repository_url_text">အရင်းအမြစ်ကုဒ် ကိုဤ လင့်တွင်ရရှိနိုင်ပါသည် - https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">ခြေရာခံမှတ်တမ်း ကိုဤ လင့်တွင်ရရှိနိုင်ပါသည် - https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">ဘာသာပြန်များကို ကြိုဆိုပြီး တန်ဖိုးထားကြိုဆိုပါသည်။ ကျွန်ုပ်တို့ Transifex စီမံကိန်းကို https://www.transifex.com/projects/p/bitmask/ တွင်ကြည့်ရှုနိုင်ပါသည်။</string>
+ <string name="switch_provider_menu_option">ဝန်ဆောင်မှုပေးသူ ပြောင်းမယ်</string>
+ <string name="info">အချက်အလက်များ</string>
+ <string name="show_connection_details">ဆက်သွယ်မှုအချက်အလက်များ ဖော်ပြမယ်</string>
+ <string name="routes_info">လမ်းကြောင်းများ %s</string>
+ <string name="routes_info6">IPv6 လမ်းကြောင်းများ %s</string>
+ <string name="error_empty_username">အသုံးပြုသူအမည်အား ကွက်လပ်ထား၍မရပါ။</string>
+ <string name="cert_from_keystore">keystore မှ \'%s\' လက်မှတ်ကိုရရှိ</string>
+ <string name="provider_label">ဝန်ဆောင်မှုပေးသူ -</string>
+ <string name="provider_label_none">ဝန်ဆောင်မှုပေးသူများ စီစဥ်ထားခြင်းမရှိ</string>
+ <string name="status_unknown">အခြေအနေ မသိရှိရပါ။</string>
+ <string name="eip_service_label">VPN နှင့် ကုဒ်အတူ ချိတ်ထားသော အင်တာနက်လိုင်း</string>
+ <string name="configuration_wizard_title">ဝန်ဆောင်မှုပေးသူအား ရွေးမယ်</string>
+ <string name="add_provider">ဝန်ဆောင်မှုပေးသူ အသစ်ထည့်မယ်</string>
+ <string name="introduce_new_provider">ဝန်ဆောင်မှုပေးသူ အသစ်ထည့်မယ်</string>
+ <string name="save">သိမ်းဆည်းမယ်</string>
+ <string name="new_provider_uri">ဒိုမိန်းအမည်</string>
+ <string name="valid_url_entered">ဤ URL သည် အကျုံးဝင်သည်</string>
+ <string name="not_valid_url_entered">URL ပျက်နေသည်</string>
+ <string name="provider_details_title">ဝန်ဆောင်မှုပေးသူ အချက်အလက်များ</string>
+ <string name="use_anonymously_button">အမည်မဖေါ်ရန် အသုံးပြုမယ်</string>
+ <string name="username_hint">အသုံးပြုသူအမည်</string>
+ <string name="username_ask">အသုံးပြုသူအမည် ရိုက်ထည့်ပေးပါ</string>
+ <string name="password_ask">သင့်စကားဝှက် ရိုက်ထည့်ပါ</string>
+ <string name="password_hint">စကားဝှက်</string>
+ <string name="password_match">စကားဝှက်များ ကိုက်ညီပါသည်</string>
+ <string name="password_mismatch">စကားဝှက်များ မကိုက်ညီပါ</string>
+ <string name="user_message">အသုံးပြုသူစာ</string>
+ <string name="about_fragment_title">အကြောင်းအရာ</string>
+ <string name="exclude_apps_fragment_title">VPN မှ အပ္ပလီကေးရှင်းများကို ဖယ်ထုတ်မယ်</string>
+ <string name="error_srp_math_error_user_message">ပြန်စမ်းကြည့်ပါ - ဆာဗာသင်္ချာအမှား</string>
+ <string name="error_bad_user_password_user_message">အသုံးပြုသူအမည် သို့မဟုတ် စကားဝှက်မှာ မှားယွင်းနေပါသည်</string>
+ <string name="error_not_valid_password_user_message">စာသားသည် စာလုံးရေ အနည်းဆုံး ၈ လုံးရှိရမည်</string>
+ <string name="error_client_http_user_message">ပြန်စမ်းမယ် - သုံးသူ HTTP အမှား</string>
+ <string name="error_io_exception_user_message">ပြန်စမ်းမယ် - I/O အမှား</string>
+ <string name="error_json_exception_user_message">ပြန်စမ်းမယ် - ဆာဗာမှ မှားယွင်းသော တုံ့ပြန်မှု</string>
+ <string name="error_no_such_algorithm_exception_user_message">ကုဒ်တွက်ချက်မှု ရှာ၍မရပါ။ Android ကို အဆင့်မြှင့်ပါ!</string>
+ <string name="signup_or_login_button">အကောင့်အသစ်ဖွင့်မယ် / လော့အင်ဝင်မယ်</string>
+ <string name="login_button">လော့အင်ဝင်မယ်</string>
+ <string name="login_to_profile">အကောင့်ထဲ လော့အင်ဝင်မယ်</string>
+ <string name="logout_button">ထွက်မယ်</string>
+ <string name="signup_button">အကောင့်အသစ်ဖွင့်မယ်</string>
+ <string name="create_profile">ပရိုဖိုင် ဖန်တီးမယ်</string>
+ <string name="setup_provider">ဝန်ဆောင်မှုပေးသူ ထည့်သွင်းမယ်</string>
+ <string name="setup_error_title">စီစဉ်မှု ပြဿနာ</string>
+ <string name="setup_error_configure_button">စီစဥ်မယ်</string>
+ <string name="setup_error_close_button">ထွက်မယ်</string>
+ <string name="setup_error_text">သင့် အင်တာနက်ဝန်ဆောင်မှုပေးသူနှင့် စီစဥ်ရာတွင် %s မအောင်မြင်ခဲ့ပါ။ \n\nပြန်စမ်းကြည့်နိုင်ပါသည် သို့မဟုတ် ထွက်၍ နောက်တစ်ခေါက် ပြန်ဝင်ပြီး အင်တာနက်ဝန်ဆောင်မှုပေးသူနှင့် ပြန်စီစဥ်နိုင်ပါသည်။</string>
+ <string name="server_unreachable_message">ဆာဗာအား ချိတ်၍မရပါ၊ ပြန်စမ်းကြည့်ပေးပါ။</string>
+ <string name="error.security.pinnedcertificate">လုံခြုံရေး မှားယွင်းချက်ရှိသည်။ အပ္ပလီကေးရှင်းအား အဆင့်မြှင့်ပေးပါ သို့မဟုတ် အခြား အင်တာနက်ဝန်ဆောင်မှုပေးသူအား ပြောင်းသုံးပါ။</string>
+ <string name="malformed_url">၎င်းအား %sဝန်ဆောင်မှုပေးသူဟု သတ်မှတ်၍မရပါ။</string>
+ <string name="certificate_error">၎င်းသည် ယုံကြည်ရသော %s ဝန်ဆောင်မှုပေးသူ မဟုတ်ပါ။</string>
+ <string name="service_is_down_error">ဝန်ဆောင်မှု မရနိုင်ပါ။</string>
+ <string name="configuring_provider">ဝန်ဆောင်မှုပေးသူကို စီစဥ်နေပါသည်</string>
+ <string name="incorrectly_downloaded_certificate_message">သင်၏ အမည်မဖော်ပြသည့်လက်မှတ်ကို မသိမ်းဆည်းခဲ့ပါ</string>
+ <string name="downloading_certificate_message">VPN လက်မှတ်ဒေါင်းလုပ်နေပါသည်</string>
+ <string name="updating_certificate_message">VPN လက်မှတ်ကို အဆင့်မြှင့်နေပါသည်</string>
+ <string name="login.riseup.warning">RiseUp အသုံးပြုသူများသည် VPN ဝန်ဆောင်မှုသုံးရန် သီးသန့်အကောင့်တစ်ခု ဖွင့်ရပါမည်။ </string>
+ <string name="succesful_authentication_message">စစ်မှန်ပါသည်</string>
+ <string name="authentication_failed_message">စစ်မှန်ကြောင်းစစ်ဆေးခြင်း မအောင်မြင်ပါ</string>
+ <string name="registration_failed_message">စာရင်းတင်ခြင်း မအောင်မြင်ပါ</string>
+ <string name="eip_status_start_pending">ဆက်သွယ်မှု စတင်ချိတ်ဆက်နေပါသည်</string>
+ <string name="eip_cancel_connect_title">ဆက်သွယ်မှု ပယ်ဖျက်မယ်?</string>
+ <string name="eip_cancel_connect_text">ဆက်သွယ်မှုရရှိရန် လုပ်ဆောင်နေသည်။ ဖျက်သိမ်းချင်ပါသလား?</string>
+ <string name="eip.warning.browser_inconsistency">VPN လိုင်းအားပိတ်မည်လား? VPN လိုင်းပိတ်ထားလျှင် သင်၏ ပုဂ္ဂိုလ်ရေးရာ အချက်အလက်များကို သင်၏ အင်တာနက်ဝန်ဆောင်မှုပေးသူ သို့မဟုတ် လိုကယ်ကွန်ယက်ဆီသို့ ပေးအပ်နိုင်ပါသည်။</string>
+ <string name="eip_state_not_connected">လိုင်းမမိပါ! ဆက်သွယ်မှုလိုင်း မလုံခြုံပါ!</string>
+ <string name="eip_state_connected">ဆက်သွယ်မှုလိုင်း လုံခြုံပါသည်</string>
+ <string name="provider_problem">ဝန်ဆောင်မှုပေးသူနှင့် ပြဿနာတစ်စုံတစ်ရာ ဖြစ်နေပါသည်။</string>
+ <string name="try_another_provider">အခြား အင်တာနက်ဝန်ဆောင်မှုပေးသူ နှင့် စမ်းကြည့်ပါ။ သို့မဟုတ် သင်၏ အင်တာနက်ဝန်ဆောင်မှုပေးသူအား ဆက်သွယ်ပါ။</string>
+ <string name="default_username">အမည်မဖေါ်</string>
+ <string name="logging_in">အကောင့်ထဲဝင်ရောက်နေသည်</string>
+ <string name="signing_up">အကောင့်သစ် ဖွင့်နေသည်</string>
+ <string name="vpn.button.turn.on">ဖွင့်မယ်</string>
+ <string name="vpn.button.turn.off">ပိတ်မယ်</string>
+ <string name="vpn_button_turn_off_blocking">ပိတ်ဆို့ခြင်းကို ရပ်မယ်</string>
+ <string name="vpn_securely_routed">သင့် အင်တာနက်အသွားအလာကို လုံခြုံစွာ ပို့ဆောင်နေသည် -</string>
+ <string name="vpn_securely_routed_no_internet">အင်တာနက်လိုင်းအား မတွေ့ရှိပါ။ ပြန်လည်တွေ့ရှိလျှင် သင့် အင်တာနက်အသွားအလာကို လုံခြုံစွာ ပြန်ချိတ်ဆက်ပေးပါမည် -</string>
+ <string name="log_fragment_title">မှတ်တမ်း</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">အညွှန်းဘုတ် ဖွင့်မယ်</string>
+ <string name="navigation_drawer_close">အညွှန်းဘုတ် ပိတ်မယ်</string>
+ <string name="action_example">နမူနာ လုပ်ဆောင်ချက်</string>
+ <string name="action_settings">အပြင်အဆင်များ</string>
+ <string name="void_vpn_establish">%sသည် အထွက်အင်တာနက်အသွားအလာများ ပိတ်ဆို့သည်</string>
+ <string name="void_vpn_stopped">အထွက်အင်တာနက်အသွားအလာများ ပိတ်ဆို့ခြင်း မရှိတော့ပါ။</string>
+ <string name="void_vpn_title">လိုင်းပိတ်နေသည်</string>
+ <string name="update_provider_details">ဝန်ဆောင်မှုပေးသူ၏ အချက်အလက်များအား အဆင့်မြှင့်မယ်</string>
+ <string name="update_certificate">လက်မှတ်ကို အဆင့်မြှင့်မယ်</string>
+ <string name="warning_eip_json_corrupted">ဝန်ဆောင်မှုပေးသူ စီစဥ်မှု အဆင့်မြှင့်ရန် မအောင်မြင်ပါ။</string>
+ <string name="eip_json_corrupted_user_message">ဝန်ဆောင်မှုပေးသူ စီစဥ်မှု အဆင့်မြှင့်ရန် မအောင်မြင်ပါ။ လော့အင် ပြန်ဝင်ကြည့်ပါ။</string>
+ <string name="warning_client_parsing_error_gateways">ဝန်ဆောင်သူ gateway များကို အသိအမှတ်ပြု၍မရပါ။ ၎င်းတို့ကို မှားယွင်းစွာ စီစဥ်ထားသောကြောင့် ဖြစ်နိုင်သည်။</string>
+ <string name="warning_corrupted_provider_details">သိမ်းဆည်းထားသော ဝန်ဆောင်သူ၏ အချက်အလက်များ ပျက်နေသည်။ %sကို အဆင့်မြှင့်ရန် အကြံပြုသည် (သို့မဟုတ်) စီးပွားဖြစ် CA လက်မှတ်သုံး၍ ဝန်ဆောင်သူအချက်အလက်များ အဆင့်မြှင့်ပါ။</string>
+ <string name="warning_corrupted_provider_cert">သိမ်းဆည်းထားသော ဝန်ဆောင်သူလက်မှတ်သည် အကျုံးမဝင်ပါ။ %sကို အဆင့်မြှင့်ရန် အကြံပြုသည် (သို့မဟုတ်) စီးပွားဖြစ် CA လက်မှတ်သုံး၍ ဝန်ဆောင်သူလက်မှတ်ကို အဆင့်မြှင့်ပါ။</string>
+ <string name="warning_expired_provider_cert">သိမ်းဆည်းထားသော ဝန်ဆောင်သူလက်မှတ်သည် သက်တမ်းကုန်နေပါသည်။ %s ကို အဆင့်မြှင့်ရန် အကြံပြုသည် (သို့မဟုတ်) စီးပွားဖြစ် CA လက်မှတ်သုံး၍ ဝန်ဆောင်သူလက်မှတ်ကို အဆင့်မြှင့်ပါ။</string>
+ <string name="downloading_vpn_certificate_failed">VPN လက်မှတ်အား ဒေါင်းလုပ်ဆွဲခြင်း မအောင်မြင်ခဲ့ပါ။ ပြန်စမ်းကြည့်ပေးပါ သို့မဟုတ် အခြားအင်တာနက်ဝန်ဆောင်မှုပေးသူ သို့ ပြောင်းသုံးကြည့်ပေးပါ။</string>
+ <string name="vpn_certificate_is_invalid">VPN လက်မှတ်သည် အကျုံးမဝင်ပါ။ အသစ်တစ်ခု ပြန်ဒေါင်းလုပ်ဆွဲပြီး စမ်းကြည့်ပါ။</string>
+ <string name="vpn_certificate_user_message">VPN လက်မှတ်သည် အကျုံးမဝင်ပါ။ လက်မှတ်အသစ် ဒေါင်းလုပ်ဆွဲရန် ပြန်လည် လော့အင်ဝင်ပါ။</string>
+ <string name="save_battery">ဘက်ထရီကို ချွေတာမယ်</string>
+ <string name="subtitle_save_battery">VPN ဟော့စပေါ့ ဖွင့်ထား၍ ပယ်ဖျက်ထားသည်</string>
+ <string name="save_battery_message">ဖုန်းကို အသုံးမပြုလျှင် နောက်ခံဒေတာ ချိတ်ဆက်မှုများကို ယာယီရပ်ဆိုင်းပေးထားပါမည်။</string>
+ <string name="always_on_vpn">အမြဲတမ်းဖွင့် VPN</string>
+ <string name="subtitle_always_on_vpn">Android စနစ်အပြင်အဆင်များ ဖွင့်မယ်</string>
+ <string name="tethering">VPN ဟော့စပေါ့</string>
+ <string name="ipv6Firewall">IPv6 ကိုပိတ်မယ်</string>
+ <string name="require_root">Root ခွင့်ပြုချက်များ လိုအပ်သည်</string>
+ <string name="show_experimental">စမ်းသပ်ထားသည်များ ပြမယ်</string>
+ <string name="hide_experimental">စမ်းသပ်ထားသည်များ ဖုံးကွယ်မယ်</string>
+ <string name="tethering_enabled_message">ရှေးဦးစွာ tethering ကို <![CDATA[<b>system settings</b>]]> တွင် ဖွင့်ထားခြင်းရှိ/မရှိ စစ်ဆေးပါ။</string>
+ <string name="tethering_message">မိမိ VPN ကို အခြားစက်များဖြင့် ဝေမျှရန် -</string>
+ <string name="tethering_wifi">ဝိုင်ဖိုင် ဟော့စပေါ့</string>
+ <string name="tethering_usb">USB နှင့် ချိတ်ဆက်ခြင်း</string>
+ <string name="tethering_bluetooth">ဘလူးတု နှင့် ချိတ်ဆက်ခြင်း</string>
+ <string name="do_not_show_again">နောက်တစ်ကြိမ် မဖေါ်ပြရန်</string>
+ <string name="always_on_vpn_user_message">Android VPN အပြင်အဆင်အတွင်း စီစဥ်ခြင်း [img src] ခလုတ်နှိပ်ပြီး အမြဲတမ်းဖွင့် VPN ကိုဖွင့်လို့ရပါသည်။</string>
+ <string name="always_on_blocking_vpn_user_message">သင့်ပုဂ္ဂိုလ်ရေးရာ အချက်အလက်များကို အလုံခြုံဆုံး ကာကွယ်နိုင်ရန် \"VPN မပါသော ချိတ်ဆက်မှုများ ပိတ်ဆို့ရန်\" ဆိုသည် ကို ရွေးထားသင့်သည်။</string>
+ <string name="donate_title">လှူဒါန်းမယ်</string>
+ <string name="donate_default_message">သုံးသူများနှင့် အင်တာနက်ဝန်ဆောင်မှုပေးသူများ အတွက် လုံခြုံသော ဆက်သွယ်မှုလိုင်းရရှိရန် တန်ဖိုးထားလျှင် ကျေးဇူးပြု၍ လှူဒါန်းပေးပါ။</string>
+ <string name="donate_message">LEAP သည် လှူဒါန်းငွေ နှင့် ထောက်ပံ့ငွေများ ဖြင့်ရပ်တည်နေပါသည်။ သုံးသူများနှင့် အင်တာနက်ဝန်ဆောင်မှုပေးသူများ အတွက် လုံခြုံသော ဆက်သွယ်မှုလိုင်းရရှိရန် တန်ဖိုးထားလျှင် ကျေးဇူးပြု၍ လှူဒါန်းပေးပါ။</string>
+ <string name="donate_button_remind_later">နေက်မှ သတိပေးပါ</string>
+ <string name="donate_button_donate">လှူဒါန်းမယ်</string>
+ <string name="obfuscated_connection">ရှုပ်ထွေးသော ချိတ်ဆက်မှုနဲ့ သုံးနေသည်။</string>
+ <string name="obfuscated_connection_try">ရှုပ်ထွေးသော ချိတ်ဆက်မှုနဲ့ စမ်းချိတ်နေသည်။</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">VPN စစ်ထုတ်ခြင်းအား သွယ်ဝိုက်၍သုံးမယ်</string>
+ <string name="warning_exclude_apps_message">VPN မှ အပ္ပလီကေးရှင်းများ ဖယ်ထုတ်ခြင်းကို သတိထားပါ။ ဖယ်ထုတ်ထားခြင်းကြောင့် သင်၏ ကိုယ်ပိုင်အချက်အလက်များ နှင့် လုံခြုံရေးကို ထိခိုက်စေနိုင်ပါသည်။</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="other">%d မကာကွယ်ထားသော အပ္ပလီကေးရှင်းများ</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s ချိတ်လို့မရပါ။ VPN လိုင်းများပိတ်ထားခြင်း ကြောင့်ဖြစ်နိုင်ပါသည်။ ရှုပ်ထွေးသော ချိတ်ဆက်မှုဖြင့် ပြန်စမ်းချိတ်ကြည့်ချင်ပါသလား? </string>
+ <string name="warning_no_more_gateways_no_pt">%s ချိတ်ဆက်လို့မရပါ။ ပြန်စမ်းကြည့်မလား?</string>
+ <string name="warning_no_more_gateways_use_ovpn">ရှုပ်ထွေးသော ချိတ်ဆက်မှုဖြင့် %s ချိတ်ဆက်လို့မရပါ။ ရိုးရိုး ချိတ်ဆက်မှုဖြင့် ပြန်စမ်းချိတ်ကြည့်ချင်ပါသလား?</string>
+ <string name="warning_option_try_pt">ရှုပ်ထွေးသော ချိတ်ဆက်မှု နည်းလမ်းဖြင့် စမ်းကြည့်မယ်</string>
+ <string name="warning_option_try_ovpn">ရိုးရိုးချိတ်ဆက်မှု နည်းလမ်းဖြင့် စမ်းကြည့်မယ်</string>
+ <string name="vpn_error_establish">Android မှ VPN ဝန်ဆောင်မှု ထူထောင်ခြင်း မအောင်မြင်ပါ။</string>
+ <string name="root_permission_error">Root ခွင့်ပြုချက်များ မရရှိ၍ VPN ဟော့စပေါ့ သို့မဟုတ် IPv6 firewall အရာများကိုလုပ်ဆောင်နိုင်ရန် %s မရပါ။</string>
+ <string name="qs_enable_vpn">%s စမယ်</string>
+ <string name="version_update_found">ဤနေရာကိုနှိပ်၍ စဒေါင်းလုပ်လုပ်မယ်</string>
+ <string name="version_update_title">ဗားရှင်းအသစ် %s တွေ့ရှိထားပါသည်။</string>
+ <string name="version_update_apk_description">ဗားရှင်းအသစ် %s ဒေါင်းလုပ်ဆွဲနေပါသည်</string>
+ <string name="version_update_download_title">ဗားရှင်းအသစ် %s ဒေါင်းလုပ်ဆွဲပြီးပါပြီ။</string>
+ <string name="version_update_download_description">ဤနေရာကိုနှိပ်၍ အဆင့်မြှင့်မယ်</string>
+ <string name="version_update_error_pgp_verification">PGP အတည်ပြုခြင်း မအောင်မြင်ပါ။ ဒေါင်းလုပ်အား လျစ်လျူရှုနေသည်။</string>
+ <string name="version_update_error">အဆင်မြှင့်ခြင်း မအောင်မြင်ပါ။</string>
+ <string name="version_update_error_permissions">အပ္ပလီကေးရှင်းကို ဒေါင်းလုပ်ဆွဲရန် ခွင့်ပြုချက်မရှိပါ။</string>
+ <string name="gateway_selection_automatic">အလိုအလျောက်</string>
+ <string name="log_onehop_create">ကုဒ်ဖြင့်စာဝှက်ထားသည့် ဖိုင်လမ်းကြောင်း ချိတ်ဆက်မှု တစ်ခု တည်ဆောက်နေသည်</string>
+ <string name="log_loading_keys">လုပ်ပိုင်ခွင့် လက်မှတ်များကို ရယူနေသည်</string>
+ <string name="log_circuit_create">Tor ဆားကစ် တစ်ခုကို တည်ဆောက်နေသည်</string>
+ <string name="log_done">လုပ်ဆောင်နေသည်</string>
+ <string name="hide">ဝှက်မည်</string>
+ <string name="use_snowflake">Snowflake အသုံးပြုရန်</string>
+ <string name="vpn_settings">VPN အပြင်အဆင်များ</string>
+ <string name="advanced_settings">အဆင့်မြင့်သော ဆက်တင်များ</string>
+ <string name="cancel_connection">ချိတ်ဆက်မှုဖြတ်တောက်မယ်</string>
</resources>
diff --git a/app/src/main/res/values-no/arrays.xml b/app/src/main/res/values-nb/arrays.xml
index 045e125f..045e125f 100644
--- a/app/src/main/res/values-no/arrays.xml
+++ b/app/src/main/res/values-nb/arrays.xml
diff --git a/app/src/main/res/values-no/plurals-icsopenvpn.xml b/app/src/main/res/values-nb/plurals-icsopenvpn.xml
index f4716401..f4716401 100755
--- a/app/src/main/res/values-no/plurals-icsopenvpn.xml
+++ b/app/src/main/res/values-nb/plurals-icsopenvpn.xml
diff --git a/app/src/main/res/values-no/strings-icsopenvpn.xml b/app/src/main/res/values-nb/strings-icsopenvpn.xml
index 926c1ff0..926c1ff0 100755
--- a/app/src/main/res/values-no/strings-icsopenvpn.xml
+++ b/app/src/main/res/values-nb/strings-icsopenvpn.xml
diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml
new file mode 100644
index 00000000..2a28d093
--- /dev/null
+++ b/app/src/main/res/values-nb/strings.xml
@@ -0,0 +1,103 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+ <string name="retry">Prøv på nytt</string>
+ <string name="repository_url_text">Kildekode tilgjengelig på https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Feilsporer tilgjengelig på https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Oversettelser er velkomne og verdsatt. Se vårt Transifex-prosjekt på https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Bytt tilbyder</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Vis tilkoblingsdetaljer</string>
+ <string name="routes_info">Ruter: %s</string>
+ <string name="routes_info6">IPv6-ruter: %s</string>
+ <string name="error_empty_username">Brukernavnet kan ikke være tomt.</string>
+ <string name="cert_from_keystore">Fikk sertifikatet \'%s\' fra nøkkelhvelv</string>
+ <string name="provider_label">Tilbyder:</string>
+ <string name="provider_label_none">Ingen tilbyder satt opp</string>
+ <string name="status_unknown">Ukjent status.</string>
+ <string name="eip_service_label">Kryptert VPN-internettilgang</string>
+ <string name="configuration_wizard_title">Velg en tjenestetilbyder</string>
+ <string name="add_provider">Legg til ny tilbyder</string>
+ <string name="introduce_new_provider">Legg til ny tjenestetilbyder</string>
+ <string name="save">Lagre</string>
+ <string name="new_provider_uri">Domenenavn</string>
+ <string name="valid_url_entered">Nettadressen er ugyldig</string>
+ <string name="not_valid_url_entered">Feilformatert nettadresse</string>
+ <string name="provider_details_title">Tilbyderdetaljer</string>
+ <string name="use_anonymously_button">Bruk anonymt</string>
+ <string name="username_hint">brukernavn</string>
+ <string name="username_ask">Skriv inn brukernavn</string>
+ <string name="password_ask">Skriv inn passordet ditt</string>
+ <string name="password_hint">passord</string>
+ <string name="password_match">Passordene samsvarer</string>
+ <string name="password_mismatch">Passordene stemmer ikke overens</string>
+ <string name="user_message">Bruker-melding</string>
+ <string name="about_fragment_title">Om</string>
+ <string name="error_client_http_user_message">Prøv igjen: HTTP-feil hos klient.</string>
+ <string name="error_io_exception_user_message">Prøv igjen: Kommunikasjonsfeil.</string>
+ <string name="error_json_exception_user_message">Prøv igjen: Feil svar fra tjener.</string>
+ <string name="error_no_such_algorithm_exception_user_message">Krypteringsalgoritmen ble ikke funnet. Oppgrader Android!</string>
+ <string name="signup_or_login_button">Registrering/innlogging</string>
+ <string name="login_button">Logg inn</string>
+ <string name="login_to_profile">Logg inn på profil</string>
+ <string name="logout_button">Logg ut</string>
+ <string name="signup_button">Registrering</string>
+ <string name="create_profile">Opprett profil</string>
+ <string name="setup_provider">Sett opp tilbyder</string>
+ <string name="setup_error_title">Oppsettsfeil</string>
+ <string name="setup_error_configure_button">Oppsett</string>
+ <string name="setup_error_close_button">Avslutt</string>
+ <string name="server_unreachable_message">Tjeneren kunne ikke nås, prøv igjen.</string>
+ <string name="error.security.pinnedcertificate">Sikkerhetsfeil, oppgrader programmet eller velg en annen tilbyder.</string>
+ <string name="service_is_down_error">Tjenesten er nede.</string>
+ <string name="configuring_provider">Oppsettstilbyder</string>
+ <string name="downloading_certificate_message">Laster ned VPN-sertifikat</string>
+ <string name="updating_certificate_message">Oppdaterer VPN-sertifikat</string>
+ <string name="login.riseup.warning">Riseup-brukere må opprette en egen konto for å bruke VPN-tjenesten</string>
+ <string name="eip_status_start_pending">Oppretter forbindelse</string>
+ <string name="eip_cancel_connect_title">Avbryt forbindelse?</string>
+ <string name="eip_cancel_connect_text">Det er et tilkoblingsforsøk igang. Vil du avbryte det?</string>
+ <string name="eip.warning.browser_inconsistency">Skru av VPN-tilkobling? Når VPN er av, kan du lekke personlig informasjon til din internettilbyder eller lokalnettverk.</string>
+ <string name="eip_state_not_connected">Kjører ikke! Usikker tilkobling!</string>
+ <string name="provider_problem">Det later til at det er et problem med tilbyderen.</string>
+ <string name="try_another_provider">Prøv en annen tilbyder, eller kontakt den du har.</string>
+ <string name="default_username">Anonym</string>
+ <string name="logging_in">Logger inn</string>
+ <string name="signing_up">Registrerer</string>
+ <string name="vpn.button.turn.on">Skru på</string>
+ <string name="vpn.button.turn.off">Skru av</string>
+ <string name="vpn_button_turn_off_blocking">Slutt å blokkere</string>
+ <string name="vpn_securely_routed">Trafikken din sendes trygt gjennom:</string>
+ <string name="vpn_securely_routed_no_internet">Fant ingen internettilknytning, når den forefinnes igjen vil din trafikk bli sendt sikkert gjennom:</string>
+ <string name="log_fragment_title">Logg</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Åpne navigasjonsskuff</string>
+ <string name="navigation_drawer_close">Lukk navigasjonsskuff</string>
+ <string name="action_example">Eksempelhanding</string>
+ <string name="action_settings">Innstillinger</string>
+ <string name="void_vpn_stopped">Stoppet blokkering av all utgående internettrafikk.</string>
+ <string name="void_vpn_title">Blokkerer trafikk</string>
+ <string name="update_provider_details">Oppdater tilbyderdetaljer</string>
+ <string name="update_certificate">Oppdater sertifikat</string>
+ <string name="warning_eip_json_corrupted">Oppdatering av tilbyderoppsett mislyktes</string>
+ <string name="eip_json_corrupted_user_message">Oppdatering av tilbyderoppsett mislyktes. Logg inn og prøv igjen.</string>
+ <string name="downloading_vpn_certificate_failed">Nedlasting av VPN-sertifikat mislyktes. Prøv igjen eller velg en annen tilbyder.</string>
+ <string name="vpn_certificate_is_invalid">VPN-sertifikatet er ugyldig. Prøv å laste ned et nytt et.</string>
+ <string name="vpn_certificate_user_message">VPN-sertifikatet er ugyldig. Logg inn for å laste ned et nytt et.</string>
+ <string name="save_battery">Spar batteri.</string>
+ <string name="save_battery_message">Bakgrunnsdatatilkoblinger vil gå i dvale når delefonen din ikke brukes.</string>
+ <string name="always_on_vpn">VPN alltid på.</string>
+ <string name="donate_title">Doner</string>
+ <string name="donate_default_message">Doner i dag hvis du verdsetter sikker kommunikasjon som er enkel for både sluttbruker og tjenestetilbyder.</string>
+ <string name="donate_message">LEAP avhenger av støtte og fondsmidler. Doner i dag hvis du verdsetter sikker kommunikasjon som er enkel for både sluttbruker og tjenestetilbyder.</string>
+ <string name="donate_button_remind_later">Påminn meg senere.</string>
+ <string name="donate_button_donate">Doner</string>
+ <string name="nav_drawer_obfuscated_connection">Bruk broer</string>
+ <string name="gateway_selection_automatic">Automatisk</string>
+ <string name="log_onehop_create">Etablerer en kryptert katalogforbindelse</string>
+ <string name="log_loading_keys">Laster identitetsbekreftende sertifikater</string>
+ <string name="log_circuit_create">Etablerer en Tor-krets</string>
+ <string name="log_done">Kjører</string>
+ <string name="hide">Gjem</string>
+ <string name="use_snowflake">Bruk Snowflake</string>
+ <string name="advanced_settings">Avanserte innstillinger</string>
+</resources>
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 46975559..5be0f1a7 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -1,248 +1,256 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Opnieuw proberen</string>
- <string name="repository_url_text">Broncode is beschikbaar op https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Issue tracker https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Vertalingen zijnhartelijk welkom. Kijk voor meer info op https://wiki.localizationlab.org/index.php/Bitmask of ga direct naar onze Transifex pagina: https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Provider wisselen</string>
- <string name="info">info</string>
- <string name="show_connection_details">Details van de verbinding weergeven</string>
- <string name="connection_details">Verbindingsdetails</string>
- <string name="routes_info">Routes: %s</string>
- <string name="routes_info6">IPv6 routes: %s</string>
- <string name="error_empty_username">De gebruikersnaam moet niet leeg zijn.</string>
- <string name="cert_from_keystore">Kreeg certificaat \'%s\' van de keystore</string>
- <string name="provider_label">Provider:</string>
- <string name="provider_label_none">Geen provider ingesteld</string>
- <string name="status_unknown">Status onbekend</string>
- <string name="eip_service_label">Versleutelde internettoegang met VPN</string>
- <string name="configuration_wizard_title">Service provider selecteren</string>
- <string name="add_provider">Nieuwe provider toevoegen</string>
- <string name="introduce_new_provider">Nieuwe serviceprovider toevoegen</string>
- <string name="save">Opslaan</string>
- <string name="new_provider_uri">Domeinnaam</string>
- <string name="valid_url_entered">De URL is correct</string>
- <string name="not_valid_url_entered">Incorrecte URL</string>
- <string name="provider_details_title">Provider details</string>
- <string name="use_anonymously_button">Anoniem gebruiken</string>
- <string name="username_hint">gebruikersnaam</string>
- <string name="username_ask">Geef je gebruikersnaam in</string>
- <string name="password_ask">Voer je wachtwoord in</string>
- <string name="password_hint">wachtwoord</string>
- <string name="password_match">Wachtwoorden komen overeen</string>
- <string name="password_mismatch">Wachtwoorden komen niet overeen</string>
- <string name="user_message">Bericht</string>
- <string name="about_fragment_title">Over</string>
- <string name="exclude_apps_fragment_title">Apps uitsluiten van de VPN</string>
- <string name="error_srp_math_error_user_message">Probeer opnieuw: serverrekenfout</string>
- <string name="error_bad_user_password_user_message">Gebruikersnaam of wachtwoord verkeerd</string>
- <string name="error_not_valid_password_user_message">Wachtwoord moet minstens 8 tekens lang zijn</string>
- <string name="error_client_http_user_message">Probeer opnieuw: Client HTTP fout</string>
- <string name="error_io_exception_user_message">Probeer opnieuw: I/O fout</string>
- <string name="error_json_exception_user_message">Probeer opnieuw: incorrect antwoord van de server</string>
- <string name="error_no_such_algorithm_exception_user_message">Coderingsalgoritme niet gevonden. Gelieve Android te upgraden!</string>
- <string name="signup_or_login_button">Inschrijven/Inloggen</string>
- <string name="login_button">Aanmelden</string>
- <string name="login_to_profile">Login voor profiel</string>
- <string name="logout_button">Afmelden</string>
- <string name="signup_button">Registreer</string>
- <string name="create_profile">Creëer profiel</string>
- <string name="setup_provider">Setup provider</string>
- <string name="setup_error_title">Configuratiefout</string>
- <string name="setup_error_configure_button">Configureren</string>
- <string name="setup_error_close_button">Aflsluiten</string>
- <string name="setup_error_text">Er is een probleem opgetreden om %s te configureren met je gekozen provider.
+ <string name="retry">Opnieuw proberen</string>
+ <string name="repository_url_text">Broncode is beschikbaar op https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Issue tracker https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Vertalingen zijn hartelijk welkom. Kijk voor meer info op https://localizationlab.weblate.cloud/projects/bitmask/</string>
+ <string name="switch_provider_menu_option">Provider wisselen</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Details van de verbinding weergeven</string>
+ <string name="connection_details">Verbindingsdetails</string>
+ <string name="routes_info">Routes: %s</string>
+ <string name="routes_info6">IPv6 routes: %s</string>
+ <string name="error_empty_username">De gebruikersnaam moet niet leeg zijn.</string>
+ <string name="cert_from_keystore">Kreeg certificaat \'%s\' van de keystore</string>
+ <string name="provider_label">Provider:</string>
+ <string name="provider_label_none">Geen provider ingesteld</string>
+ <string name="status_unknown">Status onbekend.</string>
+ <string name="eip_service_label">Versleutelde internettoegang met VPN</string>
+ <string name="configuration_wizard_title">Service provider selecteren</string>
+ <string name="add_provider">Nieuwe provider toevoegen</string>
+ <string name="introduce_new_provider">Nieuwe serviceprovider toevoegen</string>
+ <string name="save">Opslaan</string>
+ <string name="new_provider_uri">Domeinnaam</string>
+ <string name="valid_url_entered">De URL is correct</string>
+ <string name="not_valid_url_entered">Incorrecte URL</string>
+ <string name="provider_details_title">Provider details</string>
+ <string name="use_anonymously_button">Anoniem gebruiken</string>
+ <string name="username_hint">gebruikersnaam</string>
+ <string name="username_ask">Geef je gebruikersnaam in</string>
+ <string name="password_ask">Voer je wachtwoord in</string>
+ <string name="password_hint">wachtwoord</string>
+ <string name="password_match">Wachtwoorden komen overeen</string>
+ <string name="password_mismatch">Wachtwoorden komen niet overeen</string>
+ <string name="user_message">Bericht</string>
+ <string name="about_fragment_title">Over</string>
+ <string name="exclude_apps_fragment_title">Apps uitsluiten van de VPN</string>
+ <string name="error_srp_math_error_user_message">Probeer opnieuw: serverrekenfout</string>
+ <string name="error_bad_user_password_user_message">Gebruikersnaam of wachtwoord verkeerd</string>
+ <string name="error_not_valid_password_user_message">Wachtwoord moet minstens 8 tekens lang zijn</string>
+ <string name="error_client_http_user_message">Probeer opnieuw: Client HTTP fout</string>
+ <string name="error_io_exception_user_message">Probeer opnieuw: I/O fout</string>
+ <string name="error_json_exception_user_message">Probeer opnieuw: incorrect antwoord van de server</string>
+ <string name="error_no_such_algorithm_exception_user_message">Coderingsalgoritme niet gevonden. Gelieve Android te upgraden!</string>
+ <string name="signup_or_login_button">Inschrijven/Inloggen</string>
+ <string name="login_button">Aanmelden</string>
+ <string name="login_to_profile">Login voor profiel</string>
+ <string name="logout_button">Afmelden</string>
+ <string name="signup_button">Registreer</string>
+ <string name="create_profile">Creëer profiel</string>
+ <string name="setup_provider">Setup provider</string>
+ <string name="setup_error_title">Configuratiefout</string>
+ <string name="setup_error_configure_button">Configureren</string>
+ <string name="setup_error_close_button">Aflsluiten</string>
+ <string name="setup_error_text">Er is een probleem opgetreden om %s te configureren met je gekozen provider.
Je kan kiezen om te herconfigureren of af te sluiten en bij de volgende start een provider in te stellen.</string>
- <string name="setup_error_text_custom">Er was een probleem bij het configureren van %s.\n\nJe kan opnieuw configureren of afsluiten.</string>
- <string name="server_unreachable_message">Server is onbereikbaar, probeer later opnieuw.</string>
- <string name="error.security.pinnedcertificate">Beveiligingsprobleem, upgrade de app of kies een andere provider.</string>
- <string name="malformed_url">Dit lijkt geen %s provider te zijn.</string>
- <string name="certificate_error">Dit is geen vertrouwde %s provider.</string>
- <string name="service_is_down_error">Service is onbereikbaar.</string>
- <string name="configuring_provider">Provider wordt ingesteld</string>
- <string name="incorrectly_downloaded_certificate_message">Je anonieme certificaat is niet gedownload</string>
- <string name="downloading_certificate_message">Downloading VPN-certificaat</string>
- <string name="updating_certificate_message">Updaten VPN-certificaat</string>
- <string name="login.riseup.warning">Riseup gebruikers moeten een apart account aanmaken om de VPN service te gebruiken</string>
- <string name="succesful_authentication_message">Geauthenticeerd</string>
- <string name="authentication_failed_message">Authenticatie is mislukt</string>
- <string name="registration_failed_message">Registratie mislukt</string>
- <string name="eip_status_start_pending">Verbinding wordt geïnitialiseerd</string>
- <string name="eip_status_connecting">Verbinden met VPN</string>
- <string name="eip_status_unsecured">Onbeveiligde Verbinding</string>
- <string name="eip_status_secured">Beveiligde Verbinding</string>
- <string name="eip_cancel_connect_title">Verbinding verbreken?</string>
- <string name="eip_cancel_connect_text">We proberen een verbinding tot stand te brengen. Wil je dit annuleren?</string>
- <string name="eip.warning.browser_inconsistency">VPN verbinding verbreken? Wanneer de VPN uitstaat, kan je persoonlijke data lekken naar je internetprovider of je lokale netwerk.</string>
- <string name="eip_state_not_connected">Uitgeschakeld! Onbeveiligde verbinding!</string>
- <string name="eip_state_connected">Verbinding beveiligd</string>
- <string name="provider_problem">Het lijkt er op dat er een probleem is met de provider.</string>
- <string name="try_another_provider">Gelieve een andere provider te proberen of contacteer je huidige.</string>
- <string name="default_username">Anoniem</string>
- <string name="logging_in">Aanmelden</string>
- <string name="signing_up">Sign up</string>
- <string name="vpn.button.turn.on">Inschakelen</string>
- <string name="vpn.button.turn.off">Uitschakelen</string>
- <string name="vpn_button_turn_off_blocking">Stop blokkeren</string>
- <string name="vpn_securely_routed">Je internetverkeer gaat nu beveiligd via:</string>
- <string name="vpn_securely_routed_no_internet">Geen internetverbinding gevonden, wanneer deze terugkomt, routeren we je verkeer veilig via:</string>
- <string name="log_fragment_title">Log</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Open navigatiemenu</string>
- <string name="navigation_drawer_close">Sluit navigatiemenu</string>
- <string name="action_example">Voorbeeld</string>
- <string name="action_settings">Instellingen</string>
- <string name="void_vpn_establish">%s blokkeert alle uitgaande internetverkeer.</string>
- <string name="void_vpn_error_establish">Blokeren van alle internetverkeerd mislukt.</string>
- <string name="void_vpn_stopped">Gestopt met blokkkeren van alle uitgaande internetverkeer.</string>
- <string name="void_vpn_title">Blokkeert verkeer</string>
- <string name="update_provider_details">Update provider details</string>
- <string name="update_certificate">Update certificaat</string>
- <string name="warning_eip_json_corrupted">Updaten providerconfiguratie mislukt</string>
- <string name="eip_json_corrupted_user_message">Updaten providerconfiguratie mislukt. Login of probeer opnieuw.</string>
- <string name="warning_client_parsing_error_gateways">De provider-gateways werden niet herkend. Ze zijn mogelijk onjuist geconfigureerd.</string>
- <string name="warning_corrupted_provider_details">Opgeslagen providerdetails zijn corrupt. Je kan Bitmask %s (aanbevolen) of de provider details updaten met een commercieel CA-certificaat.</string>
- <string name="warning_corrupted_provider_cert">Opgeslagen providercertificaat is ongeldig. Je kan %s updaten (aanbevolen) of het provider certificaat updaten met een commercieel CA-certificaat.</string>
- <string name="warning_expired_provider_cert">Opgeslagen providercertificaat is verlopen. Je kan %s updaten (aanbevolen) of het provider certificaat updaten met een commercieel CA-certificaat.</string>
- <string name="downloading_vpn_certificate_failed">Downloaden van het VPN certificaat mislukt. Probeer opnieuw of kies een andere provider.</string>
- <string name="vpn_certificate_is_invalid">VPN certificaat is ongeldig. Probeer een nieuw te downloaden.</string>
- <string name="vpn_certificate_user_message">Het VPN certificaat in ongeldig. Gelieve opnieuw in te loggen om een nieuw te downloaden.</string>
- <string name="save_battery">Batterij besparen</string>
- <string name="subtitle_save_battery">Uitschakelen wanneer VPN Hotspot is ingeschakeld</string>
- <string name="save_battery_message">Dataverbindingen in de achtergrond worden in slaapstand gezet wanneer je telefoon inactief is.</string>
- <string name="always_on_vpn">VPN altijd aan</string>
- <string name="subtitle_always_on_vpn">Open Android systeeminstellingen</string>
- <string name="tethering">VPN Hotspot</string>
- <string name="ipv6Firewall">Blokkeer IPv6</string>
- <string name="require_root">Vereist root-rechten</string>
- <string name="show_experimental">Toon experimentele functies</string>
- <string name="hide_experimental">Experimentele functies verbergen</string>
- <string name="experimental_features">Experimentele functies</string>
- <string name="tethering_enabled_message">Zorg er eerst voor dat tethering is ingeschakeld in de <![CDATA[<b>system settings</b>]]></string>
- <string name="tethering_message">Deel je VPN met andere apparaten via:</string>
- <string name="tethering_wifi">Wifi-hotspot</string>
- <string name="tethering_usb">USB tethering</string>
- <string name="tethering_bluetooth">Bluetooth-tethering</string>
- <string name="do_not_show_again">Laat niet meer zien</string>
- <string name="always_on_vpn_user_message">Om \"always-on VPN\" (continu verbonden blijven) in te schakelen op Android, klik op het configuratie-icoon [img src] en zet aan.</string>
- <string name="always_on_blocking_vpn_user_message">Om je privacy optimaal te beschermen, moet je ook de optie \"Verbindingen zonder VPN blokkeren\" activeren.</string>
- <string name="donate_title">Doneren</string>
- <string name="donate_default_message">Doneer vandaag als je beveiligde communicatie op prijs stelt die zowel eenvoudig is voor de eindgebruikers als de provider. </string>
- <string name="donate_message">LEAP is afhankelijk van donaties en schenkingen. Doneer nu als je beveiligde communicatie op prijs stelt die zowel eenvoudig is voor de eindgebruikers als de provider. </string>
- <string name="donate_button_remind_later">Herinner mij later</string>
- <string name="donate_button_donate">Doneren</string>
- <string name="obfuscated_connection">Gebruikt een versluierde verbinding</string>
- <string name="obfuscated_connection_try">Probeer een versluierde verbinding op te zetten.</string>
- <string name="nav_drawer_obfuscated_connection">Gebruik bridges</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">VPN-filters omzeilen</string>
- <string name="warning_exclude_apps_message">Wees voorzichtig met het uitsluiten van apps van de VPN. Dit onthult je identiteit en brengt je veiligheid in gevaar.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d onbeschermde app</item>
- <item quantity="other">%d onbeschermde apps</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s kon geen verbinding maken. Het kan zijn dat VPN-verbindingen worden geblokkeerd. Wil je je proberen te verbinden met versluierde verbindingen?</string>
- <string name="warning_no_more_gateways_no_pt">%s kon niet verbinden. Wil je opnieuw proberen?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s kon geen verbinding maken met versluierde VPN-verbindingen. Wil je het opnieuw proberen met een standaard VPN?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s kon niet verbinden met %2$s. Wil je proberen om automatisch met de beste locatie te verbinden?</string>
- <string name="warning_option_try_best">Probeer de beste locatie</string>
- <string name="warning_option_try_pt">Probeer een versluierde verbinding</string>
- <string name="warning_option_try_ovpn">Probeer een standaard verbinding</string>
- <string name="vpn_error_establish">Android is er niet in geslaagd de VPN-dienst op te zetten.</string>
- <string name="root_permission_error">%s kan bepaalde functies zoals VPN-hotspot of IPv6-firewall niet uitvoeren zonder root-rechten.</string>
- <string name="qs_enable_vpn">Start %s</string>
- <string name="version_update_found">Tik hier om de download te starten.</string>
- <string name="version_update_title">Een nieuwe %s versie is gevonden.</string>
- <string name="version_update_apk_description">Download een nieuwe %s versie</string>
- <string name="version_update_download_title">Een nieuwe %s versie is gedownload.</string>
- <string name="version_update_download_description">Tik hier om de update te installeren.</string>
- <string name="version_update_error_pgp_verification">PGP verificatiefout. Download genegeerd.</string>
- <string name="version_update_error">Update mislukt.</string>
- <string name="version_update_error_permissions">Geen toestemming om de app te installeren.</string>
- <string name="gateway_selection_title">Selecteer locatie</string>
- <string name="gateway_selection_recommended_location">Aanbevolen locatie</string>
- <string name="gateway_selection_recommended">Aanbevolen</string>
- <string name="gateway_selection_manually">Selecteer manueel</string>
- <string name="gateway_selection_automatic_location">Gebruik automatisch de beste verbinding</string>
- <string name="gateway_selection_automatic">Automatisch</string>
- <string name="reconnecting">Opnieuw verbinden…</string>
- <string name="tor_starting">Bridges starten om censuur te omzeilen…</string>
- <string name="tor_stopping">Bridges stoppen</string>
- <string name="tor_started">Gebruik bridges om censuur te omzeilen</string>
- <string name="log_conn_done_pt">Verbonden met inplugbare transport</string>
- <string name="log_conn_pt">Verbinden met inplugbare transport</string>
- <string name="log_conn_done">Verbonden met een relay</string>
- <string name="log_handshake">Onderhandelen van de verbinding met een relay</string>
- <string name="log_handshake_done">Verbinding met relay onderhandeld</string>
- <string name="log_onehop_create">Een versleutelde adreslijstverbinding maken</string>
- <string name="log_requesting_status">Netwerk consensus status opvragen</string>
- <string name="log_loading_status">Netwerk consensusstatus status laden</string>
- <string name="log_loading_keys">Autoriteitscertificaten laden</string>
- <string name="log_requesting_descriptors">Relay beschrijving opvragen</string>
- <string name="log_loading_descriptors">Relay beschrijving laden</string>
- <string name="log_enough_dirinfo">Voldoende directory informatien om circuits te bouwen</string>
- <string name="log_ap_handshake_done">Onderhandeling met relay beëindigd om een circuit op te bouwen</string>
- <string name="log_circuit_create">Maken van een Tor circuit</string>
- <string name="log_done">Wordt uitgevoerd</string>
- <string name="channel_name_tor_service">%s Bridges dienst</string>
- <string name="channel_description_tor_service">Informeert over het gebruik van bridges tijdens het configureren van %s.</string>
- <string name="error_tor_timeout">Het starten van bridges mislukte. Wil je opnieuw proberen of verder gaan met een onversluierde beveiligde verbinding om %s te configureren?</string>
- <string name="retry_unobfuscated">Probeer opnieuw zonder versluiering</string>
- <string name="hide">Verberg</string>
- <string name="error_network_connection">%s heeft geen internetverbinding. Controleer je wifi-verbinding en mobiele data instellingen.</string>
- <string name="censorship_circumvention">Censuur omzeilen</string>
- <string name="use_snowflake">Gebruik Snowflake</string>
- <string name="snowflake_description">Configuratie proces wordt beschermd tegen censuur.</string>
- <string name="vpn_settings">VPN instellingen</string>
- <string name="prefer_udp">Gebruik UDP indien beschikbaar</string>
- <string name="prefer_udp_subtitle">UDP kan sneller zijn en beter voor streams, maar werkt niet op alle netwerken.</string>
- <string name="disabled_while_bridges_on">Uitgeschakeld wanneer bridges worden gebruikt.</string>
- <string name="hint_bridges">Alleen locaties die bridges ondersteunen kan je nu selecteren.</string>
- <string name="option_disable_bridges">Bridges uitschakelen</string>
- <string name="eip_state_insecure">Onbeveiligde verbinding</string>
- <string name="connection_not_connected">Het kan zijn dat je informatie lekt aan je internet provider of lokale netwerk.</string>
- <string name="eip_state_no_network">Je internetverbinding werkt niet. Zodra die weer werkt, wil je automatisch verbinden met</string>
- <string name="eip_state_blocking">%1$s blokkeert alle internetverkeer.</string>
- <string name="disabled_while_udp_on">Uitgeschakeld wanneer UDP aan is.</string>
- <string name="advanced_settings">Geavanceerde instellingen</string>
- <string name="cancel_connection">Verbreek</string>
- <string name="unknown_location">Onbekende locatie</string>
- <string name="splash_footer">Ontwikkeld door LEAP</string>
- <string name="welcome">Welkom</string>
- <string name="select_provider">Selecteer je provider</string>
- <string name="select_provider_description">Als je een VPN gebruikt, verplaats je het vertrouwen van je lokale internet provider naar de VPN provider. Bitmask maakt alleen verbinding met providers met een bewezen staat van dienst voor het beschermen van privacy en het promoten van privacy rechten. </string>
- <string name="provider_description_riseup">Riseup biedt online communicatiemiddelen voor mensen en groepen die werken aan sociale verandering. Wij zijn een project dat democratische alternatieven creëert en zelfbeschikking in de praktijk brengt door onze eigen veilige communicatiemiddelen te beheren.</string>
- <string name="next">Volgende</string>
- <string name="add_provider_description">Bitmask maakt verbinding met betrouwbare aanbieders die niet openbaar vermeld zijn. Vul hieronder de URL van jouw aanbieder in.</string>
- <string name="qr_scanner_prompt">QR-code scannen</string>
- <string name="provider_description_calyx">Calyx is een non-profit voor onderwijs en onderzoek die zich focust op het bestuderen, testen, ontwikkelen en implementeren van privacytechnologie en -hulpmiddelen om vrije meningsuiting, expressie, burgerparticipatie en privacyrechten op internet en in de mobiele communicatiesector te promoten.</string>
- <string name="title_circumvention_setup">Moet je censuur omzeilen?</string>
- <string name="circumvention_setup_description">Als je in ergens woont waar het internet gecensureerd is, kun je onze opties om censuur te ontwijken gebruiken en zo toegang te krijgen tot alle internetdiensten. Deze opties zullen je verbinding vertragen!</string>
- <string name="circumvention_setup_hint">%s zal automatisch proberen te verbinden met het internet met verschillende censuur omzeilende technologieën. Dit kun je verfijnen in de geavanceerde instellingen.</string>
- <string name="use_standard_vpn">Gebruik standaard %s</string>
- <string name="use_circumvention_tech">Gebruik censuur omzeilende technologie (trager)</string>
- <string name="description_configure_provider">Om te verbinden met je provider, haalt %1$s, alle configuratie details op. Dit gebeurd alleen tijdens de eerste installatie.</string>
- <string name="description_configure_provider_circumvention">%1$s probeert alle configuratie details van de provider op te halen. Dit gebeurt alleen tijdens de eerste installatie. U heeft gekozen om censuur omzeilendefuncties te gebruiken, dus dit kan enige tijd duren.</string>
- <string name="details">Details</string>
- <string name="tor_status">Tor-status</string>
- <string name="snowflake_status">Snowflake status</string>
- <string name="snowflake_started">Snowflake client status</string>
- <string name="snowflake_negotiating_rendezvous_http">Bezig met Snowflake proxy verbinding (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Bezig met Snowflake proxy verbinding (amp cache)</string>
- <string name="snowflake_socks_error">Snowflake SOCKS fout</string>
- <string name="snowflake_broker_success">Snowflake proxy rendezvous succesvol</string>
- <string name="snowflake_sending_data">Data versturen via Snowflake</string>
- <string name="title_upcoming_connection_request">Nu volgt een verzoek om een verbinding te maken.</string>
- <string name="title_upcoming_notifications_request">Nu volgt de vraag om meldingen toe te staan.</string>
- <string name="title_setup_success">Je bent klaar! </string>
- <string name="setup_success_description">Tik hieronder om een verbinding te maken</string>
- <string name="permission_rejected">Toestemmingsverzoek afgewezen.</string>
- <string name="login_not_supported">Je kunt in deze versie van de app niet inloggen, wat je nodig hebt om de VPN certificaten van deze provider te updaten.</string>
- <string name="select_language">Selecteer taal</string>
- <string name="validation_status_success">Goed</string>
- <string name="enter_invite_code">Voer de uitnodigingscode in</string>
- <string name="scan_qr_code">QR-code scannen</string>
- <string name="invalid_code">Ongeldige code</string>
- <string name="automatic_bridge">Automatisch (aanbevolen)</string>
- <string name="automatically_select">Automatisch geselecteerd</string>
+ <string name="setup_error_text_custom">Er was een probleem bij het configureren van %s.\n\nJe kan opnieuw configureren of afsluiten.</string>
+ <string name="server_unreachable_message">Server is onbereikbaar, probeer later opnieuw.</string>
+ <string name="error.security.pinnedcertificate">Beveiligingsprobleem, upgrade de app of kies een andere provider.</string>
+ <string name="malformed_url">Dit lijkt geen %s provider te zijn.</string>
+ <string name="certificate_error">Dit is geen vertrouwde %s provider.</string>
+ <string name="service_is_down_error">Service is onbereikbaar.</string>
+ <string name="configuring_provider">Provider wordt ingesteld</string>
+ <string name="downloading_certificate_message">Downloading VPN-certificaat</string>
+ <string name="updating_certificate_message">Updaten VPN-certificaat</string>
+ <string name="login.riseup.warning">Riseup gebruikers moeten een apart account aanmaken om de VPN service te gebruiken</string>
+ <string name="succesful_authentication_message">Geauthenticeerd</string>
+ <string name="authentication_failed_message">Authenticatie is mislukt</string>
+ <string name="registration_failed_message">Registratie mislukt</string>
+ <string name="eip_status_start_pending">Verbinding wordt geïnitialiseerd</string>
+ <string name="eip_status_connecting">Verbinden met VPN</string>
+ <string name="eip_status_unsecured">Onbeveiligde Verbinding</string>
+ <string name="eip_status_secured">Beveiligde Verbinding</string>
+ <string name="eip_cancel_connect_title">Verbinding verbreken?</string>
+ <string name="eip_cancel_connect_text">We proberen een verbinding tot stand te brengen. Wil je dit annuleren?</string>
+ <string name="eip.warning.browser_inconsistency">VPN verbinding verbreken? Wanneer de VPN uitstaat, kan je persoonlijke data lekken naar je internetprovider of je lokale netwerk.</string>
+ <string name="eip_state_not_connected">Uitgeschakeld! Onbeveiligde verbinding!</string>
+ <string name="eip_state_connected">Verbinding beveiligd</string>
+ <string name="provider_problem">Het lijkt er op dat er een probleem is met de provider.</string>
+ <string name="try_another_provider">Gelieve een andere provider te proberen of contacteer je huidige.</string>
+ <string name="default_username">Anoniem</string>
+ <string name="logging_in">Aanmelden</string>
+ <string name="signing_up">Sign up</string>
+ <string name="vpn.button.turn.on">Inschakelen</string>
+ <string name="vpn.button.turn.off">Uitschakelen</string>
+ <string name="vpn_button_turn_off_blocking">Stop blokkeren</string>
+ <string name="vpn_securely_routed">Je internetverkeer gaat nu beveiligd via:</string>
+ <string name="vpn_securely_routed_no_internet">Geen internetverbinding gevonden, wanneer deze terugkomt, routeren we je verkeer veilig via:</string>
+ <string name="log_fragment_title">Log</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Open navigatiemenu</string>
+ <string name="navigation_drawer_close">Sluit navigatiemenu</string>
+ <string name="action_example">Voorbeeld</string>
+ <string name="action_settings">Instellingen</string>
+ <string name="void_vpn_establish">%s blokkeert alle uitgaande internetverkeer.</string>
+ <string name="void_vpn_error_establish">Blokeren van alle internetverkeerd mislukt.</string>
+ <string name="void_vpn_stopped">Gestopt met blokkkeren van alle uitgaande internetverkeer.</string>
+ <string name="void_vpn_title">Blokkeert verkeer</string>
+ <string name="update_provider_details">Update provider details</string>
+ <string name="update_certificate">Update certificaat</string>
+ <string name="warning_eip_json_corrupted">Updaten providerconfiguratie mislukt.</string>
+ <string name="eip_json_corrupted_user_message">Updaten providerconfiguratie mislukt. Login of probeer opnieuw.</string>
+ <string name="warning_client_parsing_error_gateways">De provider-gateways werden niet herkend. Ze zijn mogelijk onjuist geconfigureerd.</string>
+ <string name="warning_corrupted_provider_details">Opgeslagen providerdetails zijn corrupt. Je kan Bitmask %s (aanbevolen) of de provider details updaten met een commercieel CA-certificaat.</string>
+ <string name="warning_corrupted_provider_cert">Opgeslagen providercertificaat is ongeldig. Je kan %s updaten (aanbevolen) of het provider certificaat updaten met een commercieel CA-certificaat.</string>
+ <string name="warning_expired_provider_cert">Opgeslagen providercertificaat is verlopen. Je kan %s updaten (aanbevolen) of het provider certificaat updaten met een commercieel CA-certificaat.</string>
+ <string name="downloading_vpn_certificate_failed">Downloaden van het VPN certificaat mislukt. Probeer opnieuw of kies een andere provider.</string>
+ <string name="save_battery">Batterij besparen</string>
+ <string name="subtitle_save_battery">Uitschakelen wanneer VPN Hotspot is ingeschakeld</string>
+ <string name="save_battery_message">Dataverbindingen in de achtergrond worden in slaapstand gezet wanneer je telefoon inactief is.</string>
+ <string name="always_on_vpn">VPN altijd aan</string>
+ <string name="subtitle_always_on_vpn">Open Android systeeminstellingen</string>
+ <string name="tethering">VPN Hotspot</string>
+ <string name="ipv6Firewall">Blokkeer IPv6</string>
+ <string name="require_root">Vereist root-rechten</string>
+ <string name="show_experimental">Toon experimentele functies</string>
+ <string name="hide_experimental">Experimentele functies verbergen</string>
+ <string name="experimental_features">Experimentele functies</string>
+ <string name="tethering_enabled_message">Zorg er eerst voor dat tethering is ingeschakeld in de <![CDATA[<b>system settings</b>]]>.</string>
+ <string name="tethering_message">Deel je VPN met andere apparaten via:</string>
+ <string name="tethering_wifi">Wifi-hotspot</string>
+ <string name="tethering_usb">USB tethering</string>
+ <string name="tethering_bluetooth">Bluetooth-tethering</string>
+ <string name="do_not_show_again">Laat niet meer zien</string>
+ <string name="always_on_vpn_user_message">Om \"always-on VPN\" (continu verbonden blijven) in te schakelen op Android, klik op het configuratie-icoon [img src] en zet aan.</string>
+ <string name="always_on_blocking_vpn_user_message">Om je privacy optimaal te beschermen, moet je ook de optie \"Verbindingen zonder VPN blokkeren\" activeren.</string>
+ <string name="donate_title">Doneren</string>
+ <string name="donate_default_message">Doneer vandaag als je beveiligde communicatie op prijs stelt die zowel eenvoudig is voor de eindgebruikers als de provider. </string>
+ <string name="donate_message">LEAP is afhankelijk van donaties en schenkingen. Doneer nu als je beveiligde communicatie op prijs stelt die zowel eenvoudig is voor de eindgebruikers als de provider. </string>
+ <string name="donate_button_remind_later">Herinner mij later</string>
+ <string name="donate_button_donate">Doneren</string>
+ <string name="obfuscated_connection">Gebruikt een versluierde verbinding.</string>
+ <string name="obfuscated_connection_try">Probeer een versluierde verbinding op te zetten.</string>
+ <string name="nav_drawer_obfuscated_connection">Gebruik bridges</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">VPN-filters omzeilen</string>
+ <string name="warning_exclude_apps_message">Wees voorzichtig met het uitsluiten van apps van de VPN. Dit onthult je identiteit en brengt je veiligheid in gevaar.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d onbeschermde app</item>
+ <item quantity="other">%d onbeschermde apps</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s kon geen verbinding maken. Het kan zijn dat VPN-verbindingen worden geblokkeerd. Wil je proberen verbinding te maken via versluierde verbindingen?</string>
+ <string name="warning_no_more_gateways_no_pt">%s kon niet verbinden. Wil je opnieuw proberen?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s kon geen verbinding maken met versluierde VPN-verbindingen. Wil je het opnieuw proberen met een standaard VPN?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s kon niet verbinden met %2$s. Wil je proberen om automatisch met de beste locatie te verbinden?</string>
+ <string name="warning_option_try_best">Probeer de beste locatie</string>
+ <string name="warning_option_try_pt">Probeer een versluierde verbinding</string>
+ <string name="warning_option_try_ovpn">Probeer een standaard verbinding</string>
+ <string name="vpn_error_establish">Android is er niet in geslaagd de VPN-dienst op te zetten.</string>
+ <string name="root_permission_error">%s kan bepaalde functies zoals VPN-hotspot of IPv6-firewall niet uitvoeren zonder root-rechten.</string>
+ <string name="qs_enable_vpn">Start %s</string>
+ <string name="version_update_found">Tik hier om de download te starten.</string>
+ <string name="version_update_title">Een nieuwe %s versie is gevonden.</string>
+ <string name="version_update_apk_description">Download een nieuwe %s versie</string>
+ <string name="version_update_download_title">Een nieuwe %s versie is gedownload.</string>
+ <string name="version_update_download_description">Tik hier om de update te installeren.</string>
+ <string name="version_update_error_pgp_verification">PGP verificatiefout. Download genegeerd.</string>
+ <string name="version_update_error">Update mislukt.</string>
+ <string name="version_update_error_permissions">Geen toestemming om de app te installeren.</string>
+ <string name="gateway_selection_title">Selecteer locatie</string>
+ <string name="gateway_selection_recommended_location">Aanbevolen locatie</string>
+ <string name="gateway_selection_recommended">Aanbevolen</string>
+ <string name="gateway_selection_manually">Selecteer manueel</string>
+ <string name="gateway_selection_automatic_location">Gebruik automatisch de beste verbinding</string>
+ <string name="gateway_selection_automatic">Automatisch</string>
+ <string name="reconnecting">Opnieuw verbinden…</string>
+ <string name="tor_starting">Bridges starten om censuur te omzeilen…</string>
+ <string name="tor_stopping">Bridges stoppen</string>
+ <string name="tor_started">Gebruik bridges om censuur te omzeilen</string>
+ <string name="log_conn_done_pt">Verbonden met inplugbare transport</string>
+ <string name="log_conn_pt">Verbinden met inplugbare transport</string>
+ <string name="log_conn_done">Verbonden met een relay</string>
+ <string name="log_handshake">Onderhandelen van de verbinding met een relay</string>
+ <string name="log_handshake_done">Verbinding met relay onderhandeld</string>
+ <string name="log_onehop_create">Een versleutelde adreslijstverbinding maken</string>
+ <string name="log_requesting_status">Netwerk consensus status opvragen</string>
+ <string name="log_loading_status">Netwerk consensusstatus status laden</string>
+ <string name="log_loading_keys">Autoriteitscertificaten laden</string>
+ <string name="log_requesting_descriptors">Relay beschrijving opvragen</string>
+ <string name="log_loading_descriptors">Relay beschrijving laden</string>
+ <string name="log_enough_dirinfo">Voldoende directory informatien om circuits te bouwen</string>
+ <string name="log_ap_handshake_done">Onderhandeling met relay beëindigd om een circuit op te bouwen</string>
+ <string name="log_circuit_create">Maken van een Tor circuit</string>
+ <string name="log_done">Wordt uitgevoerd</string>
+ <string name="channel_name_tor_service">%s Bridges dienst</string>
+ <string name="channel_description_tor_service">Informeert over het gebruik van bridges tijdens het configureren van %s.</string>
+ <string name="error_tor_timeout">Het starten van bridges mislukte. Wil je opnieuw proberen of verder gaan met een onversluierde beveiligde verbinding om %s te configureren?</string>
+ <string name="retry_unobfuscated">Probeer opnieuw zonder versluiering</string>
+ <string name="hide">Verberg</string>
+ <string name="error_network_connection">%s heeft geen internetverbinding. Controleer je wifi-verbinding en mobiele data instellingen.</string>
+ <string name="censorship_circumvention">Censuur omzeilen</string>
+ <string name="use_snowflake">Gebruik Snowflake</string>
+ <string name="snowflake_description">Configuratie proces wordt beschermd tegen censuur.</string>
+ <string name="vpn_settings">VPN instellingen</string>
+ <string name="prefer_udp">Gebruik UDP indien beschikbaar</string>
+ <string name="prefer_udp_subtitle">UDP kan sneller zijn en beter voor streams, maar werkt niet op alle netwerken.</string>
+ <string name="disabled_while_bridges_on">Uitgeschakeld wanneer bridges worden gebruikt.</string>
+ <string name="hint_bridges">Alleen locaties die bridges ondersteunen kan je nu selecteren.</string>
+ <string name="option_disable_bridges">Bridges uitschakelen</string>
+ <string name="eip_state_insecure">Onbeveiligde verbinding</string>
+ <string name="connection_not_connected">Het kan zijn dat je informatie lekt aan je internet provider of lokale netwerk.</string>
+ <string name="eip_state_no_network">Je internetverbinding werkt niet. Zodra die weer werkt, wil je automatisch verbinden met</string>
+ <string name="eip_state_blocking">%1$s blokkeert alle internetverkeer.</string>
+ <string name="disabled_while_udp_on">Uitgeschakeld wanneer UDP aan is.</string>
+ <string name="advanced_settings">Geavanceerde instellingen</string>
+ <string name="cancel_connection">Verbreek</string>
+ <string name="unknown_location">Onbekende locatie</string>
+ <string name="splash_footer">Ontwikkeld door LEAP</string>
+ <string name="welcome">Welkom!</string>
+ <string name="select_provider">Selecteer je provider</string>
+ <string name="provider_description_riseup">Riseup biedt online communicatiemiddelen voor mensen en groepen die werken aan sociale verandering. Wij zijn een project dat democratische alternatieven creëert en zelfbeschikking in de praktijk brengt door onze eigen veilige communicatiemiddelen te beheren.</string>
+ <string name="next">Volgende</string>
+ <string name="add_provider_prompt">Geef hier de URL van de provider in.</string>
+ <string name="qr_scanner_prompt">QR-code scannen</string>
+ <string name="provider_description_calyx">Calyx is een non-profit voor onderwijs en onderzoek die zich focust op het bestuderen, testen, ontwikkelen en implementeren van privacytechnologie en -hulpmiddelen om vrije meningsuiting, expressie, burgerparticipatie en privacyrechten op internet en in de mobiele communicatiesector te promoten.</string>
+ <string name="title_circumvention_setup">Moet je censuur omzeilen?</string>
+ <string name="circumvention_setup_description">Als je in ergens woont waar het internet gecensureerd is, kun je onze opties om censuur te ontwijken gebruiken en zo toegang te krijgen tot alle internetdiensten. Deze opties zullen je verbinding vertragen!</string>
+ <string name="use_standard_vpn">Gebruik standaard %s</string>
+ <string name="use_circumvention_tech">Gebruik censuur omzeilende technologie (trager)</string>
+ <string name="description_configure_provider">Om te verbinden met je provider, haalt %1$s, alle configuratie details op. Dit gebeurd alleen tijdens de eerste installatie.</string>
+ <string name="description_configure_provider_circumvention">%1$s probeert alle configuratie details van de provider op te halen. Dit gebeurt alleen tijdens de eerste installatie. U heeft gekozen om censuur omzeilendefuncties te gebruiken, dus dit kan enige tijd duren.</string>
+ <string name="details">Details</string>
+ <string name="tor_status">Tor-status</string>
+ <string name="snowflake_status">Snowflake status</string>
+ <string name="snowflake_started">Snowflake client status</string>
+ <string name="title_upcoming_connection_request">Nu volgt een verzoek om een verbinding te maken</string>
+ <string name="title_upcoming_request">Aanstaand verzoek</string>
+ <string name="title_upcoming_notifications_request">Nu volgt de vraag om meldingen toe te staan</string>
+ <string name="title_setup_success">Je bent klaar! </string>
+ <string name="setup_success_description">Tik hieronder om een verbinding te maken</string>
+ <string name="permission_rejected">Toestemmingsverzoek afgewezen.</string>
+ <string name="login_not_supported">Je kunt in deze versie van de app niet inloggen, wat je nodig hebt om de VPN certificaten van deze provider te updaten.</string>
+ <string name="select_language">Selecteer taal</string>
+ <string name="validation_status_success">Goed</string>
+ <string name="validation_status_failure">Fout</string>
+ <string name="enter_invite_code">Voer de uitnodigingscode in</string>
+ <string name="invalid_code">Ongeldige code</string>
+ <string name="automatic_bridge">Automatisch (aanbevolen)</string>
+ <string name="automatically_select">Automatisch geselecteerd</string>
+ <string name="vpn_certificate_is_invalid">Het is tijd om je VPN-certificaat te updaten. Download een nieuw certificaat om uw verbinding veilig te houden. Dit is een routine update.</string>
+ <string name="manual_bridge">Handmatige configuratie</string>
+ <string name="error_invite_title">Oeps, er is iets mis met deze uitnodigingscode:</string>
+ <string name="error_invite">Ongeldige uitnodigingscode: %1$s</string>
+ <string name="error_invite_copy">Uitnodigingscode kopiëren</string>
+ <string name="select_provider_description">Wanneer je een VPN gebruikt, draag je jouw vertrouwen over van de internetprovider naar uw VPN-provider. %1$s en %2$s hebben een duidelijke geschiedenis van privacybescherming en belangenbehartiging. Wanneer je een provider toevoegt of een uitnodigingscode gebruikt, zorg er dan voor dat je de provider kent en vertrouwt.</string>
+ <string name="add_provider_description">Via Bitmask kun je ook verbinden met niet-openbare providers. Voeg alleen een provider toe als je deze kent en vertrouwt.</string>
+ <string name="invite_code_provider_prompt">Voer hier je uitnodigingscode in.</string>
+ <string name="circumvention_setup_hint">%s zal automatisch proberen om je te verbinden met het internet met behulp van diverse omzeilingstechnieken, zoals Tor. Je kunt dit verder aanpassen in de geavanceerde instellingen.</string>
+ <string name="invite_code_provider_description">Met Bitmask kun je verbinding maken met providers via een privé-uitnodigingscode.</string>
+ <string name="title_upcoming_request_summary">Hierna volgen twee schermen waarin Android je om toestemming vraagt voor de VPN-verbinding en notificaties.</string>
+ <string name="title_upcoming_connection_request_summary_custom">Accepteer het verbindingsverzoek om %s te kunnen gebruiken.</string>
+ <string name="system_default">Systeemtaal</string>
+ <string name="title_upcoming_connection_request_summary">Voor het verbindingsverzoek is het belangrijk om te weten dat Bitmask alleen samenwerkt met vertrouwde providers die de hoogste standaarden voor VPN\'s hanteren en een aantoonbare geschiedenis hebben in het beschermen van de gegevens en identiteiten van gebruikers. Als je echter handmatig verbinding maakt met een niet-openbare provider, zorg er dan voor dat je deze vertrouwt.</string>
+ <string name="title_upcoming_notification_request_summary">Als je meldingen toestaat, kan de app op de achtergrond blijven draaien. Zo kun je ook je dataverbruik bekijken in het meldingenpaneel.</string>
+ <string name="syntax_check">Syntaxcontrole:</string>
+ <string name="automatic_bridge_description">Er wordt geprobeerd verbinding te maken via de best beschikbare bridges en protocollen.</string>
</resources>
diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml
deleted file mode 100644
index a6018926..00000000
--- a/app/src/main/res/values-no/strings.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
- <string name="retry">Prøv på nytt</string>
- <string name="repository_url_text">Kildekode tilgjengelig på https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Feilsporer tilgjengelig på https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Oversettelser er velkomne og verdsatt. Se vårt Transifex-prosjekt på https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Bytt tilbyder</string>
- <string name="info">info</string>
- <string name="show_connection_details">Vis tilkoblingsdetaljer</string>
- <string name="routes_info">Ruter: %s</string>
- <string name="routes_info6">IPv6-ruter: %s</string>
- <string name="error_empty_username">Brukernavnet kan ikke være tomt.</string>
- <string name="cert_from_keystore">Fikk sertifikatet \'%s\' fra nøkkelhvelv</string>
- <string name="provider_label">Tilbyder:</string>
- <string name="provider_label_none">Ingen tilbyder satt opp</string>
- <string name="status_unknown">Ukjent status.</string>
- <string name="eip_service_label">Kryptert VPN-internettilgang</string>
- <string name="configuration_wizard_title">Velg en tjenestetilbyder</string>
- <string name="add_provider">Legg til ny tilbyder</string>
- <string name="introduce_new_provider">Legg til ny tjenestetilbyder</string>
- <string name="save">Lagre</string>
- <string name="new_provider_uri">Domenenavn</string>
- <string name="valid_url_entered">Nettadressen er ugyldig</string>
- <string name="not_valid_url_entered">Feilformatert nettadresse</string>
- <string name="provider_details_title">Tilbyderdetaljer</string>
- <string name="use_anonymously_button">Bruk anonymt</string>
- <string name="username_hint">brukernavn</string>
- <string name="username_ask">Skriv inn brukernavn</string>
- <string name="password_ask">Skriv inn passordet ditt</string>
- <string name="password_hint">passord</string>
- <string name="password_match">Passordene samsvarer</string>
- <string name="password_mismatch">Passordene stemmer ikke overens</string>
- <string name="user_message">Bruker-melding</string>
- <string name="about_fragment_title">Om</string>
- <string name="error_client_http_user_message">Prøv igjen: HTTP-feil hos klient.</string>
- <string name="error_io_exception_user_message">Prøv igjen: Kommunikasjonsfeil.</string>
- <string name="error_json_exception_user_message">Prøv igjen: Feil svar fra tjener.</string>
- <string name="error_no_such_algorithm_exception_user_message">Krypteringsalgoritmen ble ikke funnet. Oppgrader Android!</string>
- <string name="signup_or_login_button">Registrering/innlogging</string>
- <string name="login_button">Logg inn</string>
- <string name="login_to_profile">Logg inn på profil</string>
- <string name="logout_button">Logg ut</string>
- <string name="signup_button">Registrering</string>
- <string name="create_profile">Opprett profil</string>
- <string name="setup_provider">Sett opp tilbyder</string>
- <string name="setup_error_title">Oppsettsfeil</string>
- <string name="setup_error_configure_button">Oppsett</string>
- <string name="setup_error_close_button">Avslutt</string>
- <string name="server_unreachable_message">Tjeneren kunne ikke nås, prøv igjen.</string>
- <string name="error.security.pinnedcertificate">Sikkerhetsfeil, oppgrader programmet eller velg en annen tilbyder.</string>
- <string name="service_is_down_error">Tjenesten er nede.</string>
- <string name="configuring_provider">Oppsettstilbyder</string>
- <string name="downloading_certificate_message">Laster ned VPN-sertifikat</string>
- <string name="updating_certificate_message">Oppdaterer VPN-sertifikat</string>
- <string name="login.riseup.warning">Riseup-brukere må opprette en egen konto for å bruke VPN-tjenesten</string>
- <string name="eip_status_start_pending">Oppretter forbindelse</string>
- <string name="eip_cancel_connect_title">Avbryt forbindelse?</string>
- <string name="eip_cancel_connect_text">Det er et tilkoblingsforsøk igang. Vil du avbryte det?</string>
- <string name="eip.warning.browser_inconsistency">Skru av VPN-tilkobling? Når VPN er av, kan du lekke personlig informasjon til din internettilbyder eller lokalnettverk.</string>
- <string name="eip_state_not_connected">Kjører ikke! Usikker tilkobling!</string>
- <string name="provider_problem">Det later til at det er et problem med tilbyderen.</string>
- <string name="try_another_provider">Prøv en annen tilbyder, eller kontakt den du har.</string>
- <string name="default_username">Anonym</string>
- <string name="logging_in">Logger inn</string>
- <string name="signing_up">Registrerer</string>
- <string name="vpn.button.turn.on">Skru på</string>
- <string name="vpn.button.turn.off">Skru av</string>
- <string name="vpn_button_turn_off_blocking">Slutt å blokkere</string>
- <string name="vpn_securely_routed">Trafikken din sendes trygt gjennom:</string>
- <string name="vpn_securely_routed_no_internet">Fant ingen internettilknytning, når den forefinnes igjen vil din trafikk bli sendt sikkert gjennom:</string>
- <string name="log_fragment_title">Logg</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Åpne navigasjonsskuff</string>
- <string name="navigation_drawer_close">Lukk navigasjonsskuff</string>
- <string name="action_example">Eksempelhanding</string>
- <string name="action_settings">Innstillinger</string>
- <string name="void_vpn_stopped">Stoppet blokkering av all utgående internettrafikk.</string>
- <string name="void_vpn_title">Blokkerer trafikk</string>
- <string name="update_provider_details">Oppdater tilbyderdetaljer</string>
- <string name="update_certificate">Oppdater sertifikat</string>
- <string name="warning_eip_json_corrupted">Oppdatering av tilbyderoppsett mislyktes</string>
- <string name="eip_json_corrupted_user_message">Oppdatering av tilbyderoppsett mislyktes. Logg inn og prøv igjen.</string>
- <string name="downloading_vpn_certificate_failed">Nedlasting av VPN-sertifikat mislyktes. Prøv igjen eller velg en annen tilbyder.</string>
- <string name="vpn_certificate_is_invalid">VPN-sertifikatet er ugyldig. Prøv å laste ned et nytt et.</string>
- <string name="vpn_certificate_user_message">VPN-sertifikatet er ugyldig. Logg inn for å laste ned et nytt et.</string>
- <string name="save_battery">Spar batteri.</string>
- <string name="save_battery_message">Bakgrunnsdatatilkoblinger vil gå i dvale når delefonen din ikke brukes.</string>
- <string name="always_on_vpn">VPN alltid på.</string>
- <string name="donate_title">Doner</string>
- <string name="donate_default_message">Doner i dag hvis du verdsetter sikker kommunikasjon som er enkel for både sluttbruker og tjenestetilbyder.</string>
- <string name="donate_message">LEAP avhenger av støtte og fondsmidler. Doner i dag hvis du verdsetter sikker kommunikasjon som er enkel for både sluttbruker og tjenestetilbyder.</string>
- <string name="donate_button_remind_later">Påminn meg senere.</string>
- <string name="donate_button_donate">Doner</string>
- <string name="nav_drawer_obfuscated_connection">Bruk broer</string>
- <string name="gateway_selection_automatic">Automatisk</string>
- <string name="log_onehop_create">Etablerer en kryptert katalogforbindelse</string>
- <string name="log_loading_keys">Laster identitetsbekreftende sertifikater</string>
- <string name="log_circuit_create">Etablerer en Tor-krets</string>
- <string name="log_done">Kjører</string>
- <string name="hide">Gjem</string>
- <string name="use_snowflake">Bruk Snowflake</string>
- <string name="advanced_settings">Avanserte innstillinger</string>
-</resources>
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 809ecd00..c5fc3096 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -1,117 +1,117 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Spróbuj ponownie</string>
- <string name="repository_url_text">Kod źródłowy dostępny na https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Śledzenie problemów dostępne pod adresem https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Tłumaczenia mile widziane i doceniane. Zobacz nasz projekt Transifex na https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Zmień dostawcę</string>
- <string name="info">info</string>
- <string name="show_connection_details">Pokaż szczegóły połączenia</string>
- <string name="routes_info">Ścieżki: %s</string>
- <string name="routes_info6">Droga IPv6:%s</string>
- <string name="error_empty_username">Nazwa użytkownika nie może być pusta.</string>
- <string name="cert_from_keystore">Wzięto certyfikat \'%s\' z magazynu kluczy</string>
- <string name="provider_label">Dostawca:</string>
- <string name="provider_label_none">Brak skonfigurowanych dostawców</string>
- <string name="status_unknown">Nieznany status.</string>
- <string name="eip_service_label">Szyfrowany przez VPN dostęp do internetu</string>
- <string name="configuration_wizard_title">Wybierz dostawcę usługi</string>
- <string name="add_provider">Dodaj nowego dostawcę</string>
- <string name="introduce_new_provider">Dodaj nowego dostawcę usługi</string>
- <string name="save">Zapisz</string>
- <string name="new_provider_uri">Nazwa domeny</string>
- <string name="valid_url_entered">Adres URL jest prawidłowy</string>
- <string name="not_valid_url_entered">Błędny adres URL</string>
- <string name="provider_details_title">Szczegóły dostawcy</string>
- <string name="use_anonymously_button">Używaj anonimowo</string>
- <string name="username_hint">użytkownik</string>
- <string name="username_ask">Wpisz swoją nazwę użytkownika</string>
- <string name="password_ask">Wprowadź swoje hasło</string>
- <string name="password_hint">hasło</string>
- <string name="password_match">Hasła zgadzają się</string>
- <string name="password_mismatch">Hasła się nie zgadzają</string>
- <string name="user_message">Wiadomość użytkownika</string>
- <string name="about_fragment_title">O aplikacji</string>
- <string name="error_srp_math_error_user_message">Spróbuj ponownie: błąd w obliczeniach serwera.</string>
- <string name="error_bad_user_password_user_message">Nieprawidłowa nazwa użytkownika lub hasło </string>
- <string name="error_not_valid_password_user_message">Hasło musi składać się z co najmniej z 8 znaków</string>
- <string name="error_client_http_user_message">Spróbuj ponownie: błąd klienta HTTP</string>
- <string name="error_io_exception_user_message">Spróbuj ponownie: Błąd I/O </string>
- <string name="error_json_exception_user_message">Spróbuj ponownie: Zła odpowiedź z serwera</string>
- <string name="error_no_such_algorithm_exception_user_message">Algorytm szyfrowania nie znaleziony. Zaktualizuj Androida!</string>
- <string name="signup_or_login_button">Zarejestruj się/Zaloguj się</string>
- <string name="login_button">Zaloguj</string>
- <string name="login_to_profile">Zaloguj się do profilu</string>
- <string name="logout_button">Wyloguj</string>
- <string name="signup_button">Zarejestruj się</string>
- <string name="create_profile">Utwórz profil</string>
- <string name="setup_provider">Ustaw dostawcę</string>
- <string name="setup_error_title">Błąd konfiguracji</string>
- <string name="setup_error_configure_button">Konfiguruj</string>
- <string name="setup_error_close_button">Zamknij</string>
- <string name="server_unreachable_message">Serwer jest niedostępny, spróbuj ponownie.</string>
- <string name="error.security.pinnedcertificate">Błąd zabezpieczeń, zaktualizuj aplikację lub wybierz innego dostawcę.</string>
- <string name="service_is_down_error">Serwis nie działa.</string>
- <string name="configuring_provider">Konfigurowanie dostawcy</string>
- <string name="incorrectly_downloaded_certificate_message">Twój anonimowy certyfikat nie został pobrany </string>
- <string name="downloading_certificate_message">Pobieranie certyfikatu VPN</string>
- <string name="updating_certificate_message">Aktualizowanie certyfikatu VPN</string>
- <string name="login.riseup.warning">Użytkownicy RiseUp\'a będą musieli stworzyć osobne konto żeby używać serwis VPN</string>
- <string name="succesful_authentication_message">Uwierzytelniony</string>
- <string name="authentication_failed_message">Uwierzytelnienie nie powiodło się</string>
- <string name="registration_failed_message">Rejestracja nie powiodła się</string>
- <string name="eip_status_start_pending">Inicjowanie połączenia</string>
- <string name="eip_cancel_connect_title">Anulować połączenie?</string>
- <string name="eip_cancel_connect_text">Próba połączenia jest już w toku. Czy chcesz ją anulować?</string>
- <string name="eip.warning.browser_inconsistency">Wyłączyć połączenie VPN? Gdy sieć VPN jest wyłączona, możesz ujawnić dane osobowe swojemu dostawcy Internetu lub sieci lokalnej.</string>
- <string name="eip_state_not_connected">Nie włączony! Połączenie niezabezpieczone!</string>
- <string name="eip_state_connected">Połączenie jest zabezpieczone</string>
- <string name="provider_problem">Wygląda na to, że nastąpił problem z dostawcą.</string>
- <string name="try_another_provider">Spróbuj z innym dostawcą lub skontaktuj dotychczasowego.</string>
- <string name="default_username">Używaj anonimowo</string>
- <string name="logging_in">Logowanie</string>
- <string name="signing_up">Rejestrowanie</string>
- <string name="vpn.button.turn.on">Włącz</string>
- <string name="vpn.button.turn.off">Wyłącz</string>
- <string name="vpn_button_turn_off_blocking">Przestań blokować</string>
- <string name="vpn_securely_routed">Twoje połączenie jest bezpiecznie przekierowane przez:</string>
- <string name="vpn_securely_routed_no_internet">Nie wykryto połączenia z internetem, gdy zostanie ono przywrócone twoje połączenie zostanie bezpiecznie przekierowane przez:</string>
- <string name="log_fragment_title">Logi</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Otwórz pasek nawigacyjny</string>
- <string name="navigation_drawer_close">Zamknij pasek nawigacyjny</string>
- <string name="action_example">Przykładowa akcja</string>
- <string name="action_settings">Ustawienia</string>
- <string name="void_vpn_stopped">Zatrzymano blokowanie całego wychodzącego ruchu.</string>
- <string name="void_vpn_title">Blokowanie ruchu</string>
- <string name="update_provider_details">Zaktualizuj szczegóły dostawcy</string>
- <string name="update_certificate">Zaktualizuj certyfikat</string>
- <string name="warning_eip_json_corrupted">Aktualizowanie konfiguracji dostawcy nie udało się.</string>
- <string name="eip_json_corrupted_user_message">Aktualizowanie konfiguracji dostawcy nie udało się. Proszę zaloguj się, aby spróbować ponownie.</string>
- <string name="downloading_vpn_certificate_failed">Pobieranie certyfikatu VPN nie powiodło się. Spróbuj ponownie lub wybierz innego dostawcę.</string>
- <string name="vpn_certificate_is_invalid">Certyfikat VPN jest nieprawidłowy. Spróbuj pobrać nowy.</string>
- <string name="vpn_certificate_user_message">Certyfikat VPN jest nieprawidłowy. Zaloguj się, aby pobrać nowy.</string>
- <string name="save_battery">Oszczędzaj baterię</string>
- <string name="save_battery_message">Połączenia w tle zostaną zahibernowane, gdy Twój telefon jest nieaktywny.</string>
- <string name="always_on_vpn">Stałe połączenie VPN</string>
- <string name="tethering_wifi">Hotspot Wi-Fi</string>
- <string name="do_not_show_again">Nie pokazuj ponownie</string>
- <string name="always_on_vpn_user_message">Aby włączyć stałe połączenie VPN w ustawieniach VPN Androida, kliknij ikonę konfiguracji [img src] i włącz przełącznik.</string>
- <string name="donate_title">Wpłać darowiznę</string>
- <string name="donate_default_message">Przekaż darowiznę dzisiaj, jeśli cenisz bezpieczną komunikację, która jest łatwa zarówno dla użytkownika końcowego, jak i dla dostawcy usług.</string>
- <string name="donate_message">LEAP zależy od darowizn i dotacji. Przekaż darowiznę dzisiaj, jeśli cenisz bezpieczną komunikację, która jest łatwa zarówno dla użytkownika końcowego, jak i dostawcy usług.</string>
- <string name="donate_button_remind_later">Przypomnij później</string>
- <string name="donate_button_donate">Wpłać darowiznę</string>
- <string name="nav_drawer_obfuscated_connection">Użyj mostków</string>
- <string name="gateway_selection_title">Wybierz położenie</string>
- <string name="gateway_selection_recommended">Polecane</string>
- <string name="gateway_selection_automatic">Automatycznie</string>
- <string name="log_onehop_create">Ustanawianie szyfrowanego połączenia z katalogiem</string>
- <string name="log_loading_keys">Wczytywanie certyfikatów uwierzytelnienia</string>
- <string name="log_circuit_create">Ustanawianie ścieżki Tora</string>
- <string name="log_done">Uruchomiony</string>
- <string name="hide">Ukryj</string>
- <string name="use_snowflake">Użyj Snowflake</string>
- <string name="advanced_settings">Ustawienia zaawansowane</string>
- <string name="cancel_connection">Rozłącz</string>
+ <string name="retry">Spróbuj ponownie</string>
+ <string name="repository_url_text">Kod źródłowy dostępny na https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Śledzenie problemów dostępne pod adresem https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Tłumaczenia mile widziane i doceniane. Zobacz nasz projekt Transifex na https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Zmień dostawcę</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Pokaż szczegóły połączenia</string>
+ <string name="routes_info">Ścieżki: %s</string>
+ <string name="routes_info6">Droga IPv6:%s</string>
+ <string name="error_empty_username">Nazwa użytkownika nie może być pusta.</string>
+ <string name="cert_from_keystore">Wzięto certyfikat \'%s\' z magazynu kluczy</string>
+ <string name="provider_label">Dostawca:</string>
+ <string name="provider_label_none">Brak skonfigurowanych dostawców</string>
+ <string name="status_unknown">Nieznany status.</string>
+ <string name="eip_service_label">Szyfrowany przez VPN dostęp do internetu</string>
+ <string name="configuration_wizard_title">Wybierz dostawcę usługi</string>
+ <string name="add_provider">Dodaj nowego dostawcę</string>
+ <string name="introduce_new_provider">Dodaj nowego dostawcę usługi</string>
+ <string name="save">Zapisz</string>
+ <string name="new_provider_uri">Nazwa domeny</string>
+ <string name="valid_url_entered">Adres URL jest prawidłowy</string>
+ <string name="not_valid_url_entered">Błędny adres URL</string>
+ <string name="provider_details_title">Szczegóły dostawcy</string>
+ <string name="use_anonymously_button">Używaj anonimowo</string>
+ <string name="username_hint">użytkownik</string>
+ <string name="username_ask">Wpisz swoją nazwę użytkownika</string>
+ <string name="password_ask">Wprowadź swoje hasło</string>
+ <string name="password_hint">hasło</string>
+ <string name="password_match">Hasła zgadzają się</string>
+ <string name="password_mismatch">Hasła się nie zgadzają</string>
+ <string name="user_message">Wiadomość użytkownika</string>
+ <string name="about_fragment_title">O aplikacji</string>
+ <string name="error_srp_math_error_user_message">Spróbuj ponownie: błąd w obliczeniach serwera.</string>
+ <string name="error_bad_user_password_user_message">Nieprawidłowa nazwa użytkownika lub hasło </string>
+ <string name="error_not_valid_password_user_message">Hasło musi składać się z co najmniej z 8 znaków</string>
+ <string name="error_client_http_user_message">Spróbuj ponownie: błąd klienta HTTP</string>
+ <string name="error_io_exception_user_message">Spróbuj ponownie: Błąd I/O </string>
+ <string name="error_json_exception_user_message">Spróbuj ponownie: Zła odpowiedź z serwera</string>
+ <string name="error_no_such_algorithm_exception_user_message">Algorytm szyfrowania nie znaleziony. Zaktualizuj Androida!</string>
+ <string name="signup_or_login_button">Zarejestruj się/Zaloguj się</string>
+ <string name="login_button">Zaloguj</string>
+ <string name="login_to_profile">Zaloguj się do profilu</string>
+ <string name="logout_button">Wyloguj</string>
+ <string name="signup_button">Zarejestruj się</string>
+ <string name="create_profile">Utwórz profil</string>
+ <string name="setup_provider">Ustaw dostawcę</string>
+ <string name="setup_error_title">Błąd konfiguracji</string>
+ <string name="setup_error_configure_button">Konfiguruj</string>
+ <string name="setup_error_close_button">Zamknij</string>
+ <string name="server_unreachable_message">Serwer jest niedostępny, spróbuj ponownie.</string>
+ <string name="error.security.pinnedcertificate">Błąd zabezpieczeń, zaktualizuj aplikację lub wybierz innego dostawcę.</string>
+ <string name="service_is_down_error">Serwis nie działa.</string>
+ <string name="configuring_provider">Konfigurowanie dostawcy</string>
+ <string name="incorrectly_downloaded_certificate_message">Twój anonimowy certyfikat nie został pobrany </string>
+ <string name="downloading_certificate_message">Pobieranie certyfikatu VPN</string>
+ <string name="updating_certificate_message">Aktualizowanie certyfikatu VPN</string>
+ <string name="login.riseup.warning">Użytkownicy RiseUp\'a będą musieli stworzyć osobne konto żeby używać serwis VPN</string>
+ <string name="succesful_authentication_message">Uwierzytelniony</string>
+ <string name="authentication_failed_message">Uwierzytelnienie nie powiodło się</string>
+ <string name="registration_failed_message">Rejestracja nie powiodła się</string>
+ <string name="eip_status_start_pending">Inicjowanie połączenia</string>
+ <string name="eip_cancel_connect_title">Anulować połączenie?</string>
+ <string name="eip_cancel_connect_text">Próba połączenia jest już w toku. Czy chcesz ją anulować?</string>
+ <string name="eip.warning.browser_inconsistency">Wyłączyć połączenie VPN? Gdy sieć VPN jest wyłączona, możesz ujawnić dane osobowe swojemu dostawcy Internetu lub sieci lokalnej.</string>
+ <string name="eip_state_not_connected">Nie włączony! Połączenie niezabezpieczone!</string>
+ <string name="eip_state_connected">Połączenie jest zabezpieczone</string>
+ <string name="provider_problem">Wygląda na to, że nastąpił problem z dostawcą.</string>
+ <string name="try_another_provider">Spróbuj z innym dostawcą lub skontaktuj dotychczasowego.</string>
+ <string name="default_username">Używaj anonimowo</string>
+ <string name="logging_in">Logowanie</string>
+ <string name="signing_up">Rejestrowanie</string>
+ <string name="vpn.button.turn.on">Włącz</string>
+ <string name="vpn.button.turn.off">Wyłącz</string>
+ <string name="vpn_button_turn_off_blocking">Przestań blokować</string>
+ <string name="vpn_securely_routed">Twoje połączenie jest bezpiecznie przekierowane przez:</string>
+ <string name="vpn_securely_routed_no_internet">Nie wykryto połączenia z internetem, gdy zostanie ono przywrócone twoje połączenie zostanie bezpiecznie przekierowane przez:</string>
+ <string name="log_fragment_title">Logi</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Otwórz pasek nawigacyjny</string>
+ <string name="navigation_drawer_close">Zamknij pasek nawigacyjny</string>
+ <string name="action_example">Przykładowa akcja</string>
+ <string name="action_settings">Ustawienia</string>
+ <string name="void_vpn_stopped">Zatrzymano blokowanie całego wychodzącego ruchu.</string>
+ <string name="void_vpn_title">Blokowanie ruchu</string>
+ <string name="update_provider_details">Zaktualizuj szczegóły dostawcy</string>
+ <string name="update_certificate">Zaktualizuj certyfikat</string>
+ <string name="warning_eip_json_corrupted">Aktualizowanie konfiguracji dostawcy nie udało się.</string>
+ <string name="eip_json_corrupted_user_message">Aktualizowanie konfiguracji dostawcy nie udało się. Proszę zaloguj się, aby spróbować ponownie.</string>
+ <string name="downloading_vpn_certificate_failed">Pobieranie certyfikatu VPN nie powiodło się. Spróbuj ponownie lub wybierz innego dostawcę.</string>
+ <string name="vpn_certificate_is_invalid">Certyfikat VPN jest nieprawidłowy. Spróbuj pobrać nowy.</string>
+ <string name="vpn_certificate_user_message">Certyfikat VPN jest nieprawidłowy. Zaloguj się, aby pobrać nowy.</string>
+ <string name="save_battery">Oszczędzaj baterię</string>
+ <string name="save_battery_message">Połączenia w tle zostaną zahibernowane, gdy Twój telefon jest nieaktywny.</string>
+ <string name="always_on_vpn">Stałe połączenie VPN</string>
+ <string name="tethering_wifi">Hotspot Wi-Fi</string>
+ <string name="do_not_show_again">Nie pokazuj ponownie</string>
+ <string name="always_on_vpn_user_message">Aby włączyć stałe połączenie VPN w ustawieniach VPN Androida, kliknij ikonę konfiguracji [img src] i włącz przełącznik.</string>
+ <string name="donate_title">Wpłać darowiznę</string>
+ <string name="donate_default_message">Przekaż darowiznę dzisiaj, jeśli cenisz bezpieczną komunikację, która jest łatwa zarówno dla użytkownika końcowego, jak i dla dostawcy usług.</string>
+ <string name="donate_message">LEAP zależy od darowizn i dotacji. Przekaż darowiznę dzisiaj, jeśli cenisz bezpieczną komunikację, która jest łatwa zarówno dla użytkownika końcowego, jak i dostawcy usług.</string>
+ <string name="donate_button_remind_later">Przypomnij później</string>
+ <string name="donate_button_donate">Wpłać darowiznę</string>
+ <string name="nav_drawer_obfuscated_connection">Użyj mostków</string>
+ <string name="gateway_selection_title">Wybierz położenie</string>
+ <string name="gateway_selection_recommended">Polecane</string>
+ <string name="gateway_selection_automatic">Automatycznie</string>
+ <string name="log_onehop_create">Ustanawianie szyfrowanego połączenia z katalogiem</string>
+ <string name="log_loading_keys">Wczytywanie certyfikatów uwierzytelnienia</string>
+ <string name="log_circuit_create">Ustanawianie ścieżki Tora</string>
+ <string name="log_done">Uruchomiony</string>
+ <string name="hide">Ukryj</string>
+ <string name="use_snowflake">Użyj Snowflake</string>
+ <string name="advanced_settings">Ustawienia zaawansowane</string>
+ <string name="cancel_connection">Rozłącz</string>
</resources>
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 81f77a0a..05622a4f 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -1,268 +1,272 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Tentar novamente</string>
- <string name="repository_url_text">Código fonte disponível em https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">O gerenciador de bugs está disponível em https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Traduções são bem-vindas. Veja nosso projeto do Transifex em https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Trocar provedor</string>
- <string name="info">info</string>
- <string name="show_connection_details">Mostrar os detalhes da conexão</string>
- <string name="connection_details">Detalhes da conexão</string>
- <string name="routes_info">Rotas: %s</string>
- <string name="routes_info6">Rotas IPv6 %s</string>
- <string name="error_empty_username">O nome do usuário não pode estar vazio.</string>
- <string name="cert_from_keystore">Certificado \'1%s\' adquirido da keystore</string>
- <string name="provider_label">Provedor:</string>
- <string name="provider_label_none">Nenhum provedor configurado</string>
- <string name="status_unknown">Status desconhecido.</string>
- <string name="eip_service_label">Acesso criptografado a internet via VPN</string>
- <string name="configuration_wizard_title">Escolha um serviço de provedor</string>
- <string name="add_provider">Adicione um novo provedor</string>
- <string name="introduce_new_provider">Adicione um novo provedor de serviço</string>
- <string name="save">Salvar</string>
- <string name="new_provider_uri">Domínio</string>
- <string name="valid_url_entered">Essa URL é inválida</string>
- <string name="not_valid_url_entered">URL mal formatada</string>
- <string name="provider_details_title">Detalhes do provedor</string>
- <string name="use_anonymously_button">Usar anonimamente</string>
- <string name="username_hint">usuário</string>
- <string name="username_ask">Por favor digite seu nome de usuário</string>
- <string name="password_ask">Por favor insira sua senha</string>
- <string name="password_hint">senha</string>
- <string name="password_match">Senhas coincidem</string>
- <string name="password_mismatch">Senhas não coincidem</string>
- <string name="user_message">Mensagem do usuário</string>
- <string name="about_fragment_title">Sobre</string>
- <string name="exclude_apps_fragment_title">Excluir apps da VPN</string>
- <string name="error_srp_math_error_user_message">Tente novamente: Erro matemático do servidor</string>
- <string name="error_bad_user_password_user_message">Usuário ou senha incorretos</string>
- <string name="error_not_valid_password_user_message">Deve ter pelo menos 8 caracteres</string>
- <string name="error_client_http_user_message">Tente de novo: erro do Cliente HTTP</string>
- <string name="error_io_exception_user_message">Tente de novo: erro I/O</string>
- <string name="error_json_exception_user_message">Tente de novo: resposta inválida do servidor</string>
- <string name="error_no_such_algorithm_exception_user_message">Algoritmo criptográfico não encontrado. Por favor atualize o Android!</string>
- <string name="signup_or_login_button">Cadastrar/Entrar</string>
- <string name="login_button">Conectar</string>
- <string name="login_to_profile">Entrar para o perfil</string>
- <string name="logout_button">Desconectar</string>
- <string name="signup_button">Cadastrar-se</string>
- <string name="create_profile">Criar perfil</string>
- <string name="setup_provider">Definir provedor</string>
- <string name="setup_error_title">Erro de Configuração</string>
- <string name="setup_error_configure_button">Configurar</string>
- <string name="setup_error_close_button">Sair</string>
- <string name="setup_error_text">Houve um erro configurando %s com o provedor escolhido por você.\n\nVocê pode optar por reconfigurar ou sair e configurar um provedor na próxima vez que abrir o programa. </string>
- <string name="setup_error_text_custom">Houve um erro ao configurar %s.\n\nVocê pode reconfigurar ou sair.</string>
- <string name="server_unreachable_message">O servidor está inalcançável, tente novamente.</string>
- <string name="error.security.pinnedcertificate">Erro de segurança, atualize seu aplicativo ou escolha outro provedor.</string>
- <string name="malformed_url">Não parece ser um provedor %s.</string>
- <string name="certificate_error">Esse não é um provedor confiável %s.</string>
- <string name="service_is_down_error">O Serviço está fora do ar</string>
- <string name="configuring_provider">Configurando o provedor</string>
- <string name="incorrectly_downloaded_certificate_message">O download de seu certificado anônimo não foi efetuado.</string>
- <string name="downloading_certificate_message">Baixando o certificado VPN</string>
- <string name="updating_certificate_message">Atualizando o certificado VPN</string>
- <string name="login.riseup.warning">Usuários do Riseup necessitarão criar uma conta separada para usar o serviço de VPN</string>
- <string name="succesful_authentication_message">Autenticado</string>
- <string name="authentication_failed_message">Falha na Autenticação</string>
- <string name="registration_failed_message">Falha no cadastro</string>
- <string name="eip_status_start_pending">Inicializando conexão</string>
- <string name="eip_status_connecting">Conectando VPN</string>
- <string name="eip_status_unsecured">Conexão insegura</string>
- <string name="eip_status_secured">Conexão segura</string>
- <string name="eip_cancel_connect_title">Cancelar conexão?</string>
- <string name="eip_cancel_connect_text">Há uma tentativa de conexão em andamento. Você deseja cancelar?</string>
- <string name="eip.warning.browser_inconsistency">Desligar conexão VPN? Quando a VPN está desligada, você pode vazar informações pessoais para o seu provedor de internet ou na rede local.</string>
- <string name="eip_state_not_connected">Não está rodando! Conexão insegura!</string>
- <string name="eip_state_connected">Conexão Segura</string>
- <string name="provider_problem">Parece que há um problema com o provedor.</string>
- <string name="try_another_provider">Por favor tente outro provedor, ou entre em contato conosco.</string>
- <string name="default_username">Anônimo</string>
- <string name="logging_in">Logando</string>
- <string name="signing_up">Cadastrando</string>
- <string name="vpn.button.turn.on">Ligar</string>
- <string name="vpn.button.turn.off">Desligar</string>
- <string name="vpn_button_turn_off_blocking">Parar bloqueio</string>
- <string name="vpn_securely_routed">Seu tráfego está direcionado com segurança através do:</string>
- <string name="vpn_securely_routed_no_internet">Conexão com a internet não detectada, quando a conexão for recuperada seu tráfego será direcionado com segurança através do:</string>
- <string name="log_fragment_title">Log</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Abrir menu de navegação</string>
- <string name="navigation_drawer_close">Fechar menu de navegação</string>
- <string name="action_example">Ação de exemplo</string>
- <string name="action_settings">Configurações</string>
- <string name="void_vpn_establish">%s bloqueia todo o tráfego de saída de internet.</string>
- <string name="void_vpn_error_establish">Falha ao bloquear todo o tráfego de Internet.</string>
- <string name="void_vpn_stopped">Parou de bloquear todo o tráfego de saída de internet.</string>
- <string name="void_vpn_title">Bloqueando tráfego</string>
- <string name="update_provider_details">Atualizar detalhes do provedor</string>
- <string name="update_certificate">Atualizar certificado</string>
- <string name="warning_eip_json_corrupted">Atualização de configurações do provedor falhou.</string>
- <string name="eip_json_corrupted_user_message">Atualização do provedor falhou. Por favor, faça login e tente novamente.</string>
- <string name="warning_client_parsing_error_gateways">Os gateways fornecidos são inválidos. Eles podem estar configurados incorretamente.</string>
- <string name="warning_corrupted_provider_details">Os dados armazenados do provedor estão corrompidos. Você pode atualizar %s (recomendado) ou atualizar os detalhes do provedor utilizando um certificado CA comercial. </string>
- <string name="warning_corrupted_provider_cert">O certificado armazenado do provedor é invalido. Você pode atualizar %s (recomendado) ou atualizar o certificado do provedor utilizando um certificado CA comercial. </string>
- <string name="warning_expired_provider_cert">O certificado do provedor está expirado. Você pode atualizar %s (recomendado) ou atualizar o certificado do provedor utilizando um certificado CA comercial. </string>
- <string name="downloading_vpn_certificate_failed">Download do certificado VPN falhou. Tente novamente ou escolha outro provedor.</string>
- <string name="vpn_certificate_is_invalid">É hora de atualizar seu certificado VPN. Faça o download de um novo certificado para manter sua conexão segura. Esta é uma atualização de rotina.</string>
- <string name="vpn_certificate_user_message">O certificado VPN é inválido. Por favor, faça login e baixe um novo.</string>
- <string name="save_battery">Economizar energia</string>
- <string name="subtitle_save_battery">Desabilitado enquanto o Ponto de acesso VPN estiver ligado</string>
- <string name="save_battery_message">Conexões de dados em segundo plano vão hibernar quando o seu telefone estiver inativo.</string>
- <string name="always_on_vpn">VPN sempre ativa</string>
- <string name="subtitle_always_on_vpn">Abrir configurações do Android</string>
- <string name="tethering">Ponto de acesso VPN</string>
- <string name="ipv6Firewall">Bloquear IPv6</string>
- <string name="require_root">Requer permissões de root</string>
- <string name="show_experimental">Mostrar recursos experimentais</string>
- <string name="hide_experimental">Esconder recursos experimentais</string>
- <string name="experimental_features">Funcionalidades experimentais</string>
- <string name="tethering_enabled_message">Por favor tenha certeza de primeiro habilitar tethering nas <![CDATA[<b>configurações de sistema</b>]]>.</string>
- <string name="tethering_message">Compartilhe sua VPN com outros dispositivos através de:</string>
- <string name="tethering_wifi">Hotspot Wi-Fi</string>
- <string name="tethering_usb">Tethering USB</string>
- <string name="tethering_bluetooth">Tethering Bluetooth</string>
- <string name="do_not_show_again">Não mostrar novamente</string>
- <string name="always_on_vpn_user_message">Para habilitar VPN sempre ativa nas configurações de VPN clique no ícone de configurar [img src] e mude para ligado. </string>
- <string name="always_on_blocking_vpn_user_message">Para proteger sua privacidade da melhor forma, você deveria ativar também a opção \"Bloqueie conexões sem VPN\"</string>
- <string name="donate_title">Doar</string>
- <string name="donate_default_message">Por favor doe hoje se você valoriza uma comunicação segura que é simples de usar para o usuário final e para o servidor.</string>
- <string name="donate_message">LEAP depende de doações. Por favor doe hoje se você valoriza uma comunicação segura que é simples de usar para o usuário final e para o servidor.</string>
- <string name="donate_button_remind_later">Lembre-me depois</string>
- <string name="donate_button_donate">Doar</string>
- <string name="obfuscated_connection">Utilizando conexão ofuscada.</string>
- <string name="obfuscated_connection_try">Tentando conexão ofuscada.</string>
- <string name="nav_drawer_obfuscated_connection">Usar pontes</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Contornar filtragem de VPN</string>
- <string name="warning_exclude_apps_message">Seja cuidadoso ao excluir apps da VPN. Isso pode revelar sua identidade e comprometer sua segurança.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d app desprotegido</item>
- <item quantity="many">%d apps desprotegidos</item>
- <item quantity="other">%d apps desprotegidos</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s não pode se conectar. Isso pode ser devido ao bloqueio de conexões via VPN. Você deseja se conectar usando uma conexão ofuscada?</string>
- <string name="warning_no_more_gateways_no_pt">%s não pode se conectar. Gostaria de tentar novamente?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s não pode se conectar usando uma VPN ofuscada. Voce gostaria de tentar usando uma conexão padrão?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s não pôde conectar a %2$s. Você quer tentar conectar automaticamente ao melhor local?</string>
- <string name="warning_option_try_best">Tentar o melhor local</string>
- <string name="warning_option_try_pt">Tentar conexão ofuscada</string>
- <string name="warning_option_try_ovpn">Tentar conexão padrão</string>
- <string name="vpn_error_establish">Android falhou ao estabelecer o serviço VPN.</string>
- <string name="root_permission_error">%s não pode ativar funcionalidades como Ponto de acesso VPN ou Firewall IPv6 sem permissões de root.</string>
- <string name="qs_enable_vpn">Iniciar %s</string>
- <string name="version_update_found">Toque aqui para iniciar o download.</string>
- <string name="version_update_title">Uma nova versão de %s foi encontrada.</string>
- <string name="version_update_apk_description">Baixando uma nova versão de %s</string>
- <string name="version_update_download_title">Uma nova versão de %s foi baixada.</string>
- <string name="version_update_download_description">Toque aqui para instalar a atualização.</string>
- <string name="version_update_error_pgp_verification">Erro de verificação PGP. Ignorando arquivo baixado.</string>
- <string name="version_update_error">Falha ao atualizar.</string>
- <string name="version_update_error_permissions">Sem permissões para instalar o aplicativo.</string>
- <string name="gateway_selection_title">Selecione o local</string>
- <string name="gateway_selection_recommended_location">Local recomendado</string>
- <string name="gateway_selection_recommended">Recomendado</string>
- <string name="gateway_selection_manually">Selecione manualmente</string>
- <string name="gateway_selection_automatic_location">Use a melhor conexão automaticamente</string>
- <string name="gateway_selection_automatic">Automático</string>
- <string name="reconnecting">Reconectando...</string>
- <string name="tor_starting">Iniciando bridges para driblar a censura...</string>
- <string name="tor_stopping">Parando bridges</string>
- <string name="tor_started">Usando bridges para driblar a censura</string>
- <string name="log_conn_done_pt">Conectado a um transporte plugável</string>
- <string name="log_conn_pt">Conectando a um transporte plugável</string>
- <string name="log_conn_done">Conectando a um relay</string>
- <string name="log_handshake">Negociando conexão com um relay</string>
- <string name="log_handshake_done">Conexão com relay negociada</string>
- <string name="log_onehop_create">Estabelecendo uma conexão de diretório criptografado</string>
- <string name="log_requesting_status">Solicitando consenso do estado da rede</string>
- <string name="log_loading_status">Carregando o consenso do estado da rede</string>
- <string name="log_loading_keys">Carregando certificados de autoridade</string>
- <string name="log_requesting_descriptors">Solicitando descritores de relay</string>
- <string name="log_loading_descriptors">Carregando descritores de relay</string>
- <string name="log_enough_dirinfo">Informações suficientes sobre diretório foram carregadas para construir circuitos</string>
- <string name="log_ap_handshake_done">Negociação finalizada com relay para construção de circuitos</string>
- <string name="log_circuit_create">Estabelecendo um circuito Tor</string>
- <string name="log_done">Executando</string>
- <string name="channel_name_tor_service">%s Serviço de Bridges</string>
- <string name="channel_description_tor_service">Informa sobre o uso de bridges ao configurar %s.</string>
- <string name="error_tor_timeout">A inicialização de bridges falhou. Você quer tentar novamente ou continuar com uma conexão segura sem ofuscação para configurar %s?</string>
- <string name="retry_unobfuscated">Tentar sem ofuscação</string>
- <string name="hide">Esconder</string>
- <string name="error_network_connection">%s não tem conexão à Internet. Por favor verifique suas configurações de WiFi e dados móveis.</string>
- <string name="censorship_circumvention">Driblando censura</string>
- <string name="use_snowflake">Usar Snowflake</string>
- <string name="snowflake_description">Proteger processo de configuração contra censura.</string>
- <string name="vpn_settings">Configurações de VPN</string>
- <string name="prefer_udp">Usar UDP se disponível</string>
- <string name="prefer_udp_subtitle">UDP pode ser mais rápido e melhor para transmissões (streaming), mas não funciona para todas as redes.</string>
- <string name="disabled_while_bridges_on">Desabilitado durante o uso de bridges.</string>
- <string name="hint_bridges">Apenas locais com suporte a bridges podem ser selecionados.</string>
- <string name="option_disable_bridges">Desabilitar bridges</string>
- <string name="eip_state_insecure">Conexão insegura</string>
- <string name="connection_not_connected">Você pode estar vazando informações para seu provedor de Internet ou rede local.</string>
- <string name="eip_state_no_network">Você não tem uma conexão de Internet funcionando. Assim que houver uma, você será automaticamente conectada a</string>
- <string name="eip_state_blocking">%1$s está bloqueando todo o tráfego de Internet.</string>
- <string name="disabled_while_udp_on">Desabilitado enquanto UDP estiver ligado.</string>
- <string name="advanced_settings">Configurações avançadas</string>
- <string name="cancel_connection">Desconectar</string>
- <string name="unknown_location">Local desconhecido</string>
- <string name="splash_footer">Desenvolvido pela LEAP</string>
- <string name="welcome">Bem-vindo!</string>
- <string name="select_provider">Selecione seu provedor</string>
- <string name="select_provider_description">Ao usar uma VPN, você está transferindo sua confiança do seu provedor de serviços de Internet para o seu provedor de VPN. O Bitmask se conecta apenas a provedores com um histórico claro de proteção e defesa da privacidade.</string>
- <string name="provider_description_riseup">Riseup fornece ferramentas de comunicação online para pessoas e grupos que trabalham em mudanças sociais libertadoras. Somos um projeto para criar alternativas democráticas e praticar a autodeterminação, controlando os nossos próprios meios de comunicação seguros.</string>
- <string name="next">Próximo</string>
- <string name="add_provider_description">O Bitmask permite que você se conecte a provedores que não estão listados publicamente. Certifique-se de conhecer e confiar no provedor que você está adicionando.</string>
- <string name="add_provider_prompt">Digite o URL do provedor aqui.</string>
- <string name="invite_code_provider_description">O Bitmask permite que você se conecte a provedores usando um código de convite privado. </string>
- <string name="invite_code_provider_prompt">Digite seu código de convite confiável aqui.</string>
- <string name="qr_scanner_prompt">Ler QR Code</string>
- <string name="provider_description_calyx">Calyx é uma organização sem fins lucrativos de educação e pesquisa dedicada a estudar, testar, desenvolver e implementar tecnologias e ferramentas de privacidade para promover a liberdade de expressão, a liberdade de expressão, o envolvimento cívico e os direitos de privacidade na Internet e na indústria de comunicações móveis.</string>
- <string name="title_circumvention_setup">Você exige evasão da censura?</string>
- <string name="circumvention_setup_description">Se você mora em um local onde a Internet é censurada, você pode usar nossas opções de evasão de censura para acessar todos os serviços da Internet. Essas opções irão desacelerar sua conexão!</string>
- <string name="circumvention_setup_hint">%s tentará conectá-lo automaticamente à Internet usando uma variedade de tecnologias de evasão. Você pode ajustar isso nas configurações avançadas.</string>
- <string name="use_standard_vpn">Usar padrão %s</string>
- <string name="use_circumvention_tech">Use tecnologia de evasão (mais lenta)</string>
- <string name="description_configure_provider">Para se conectar ao seu provedor, o %1$s está buscando todas as informações de configuração necessárias. Isso só acontece durante a primeira configuração.</string>
- <string name="description_configure_provider_circumvention">%1$s está tentando coletar todos os dados de configuração necessários do provedor. Isso só acontece durante a primeira configuração. Você optou por usar tecnologia de evasão, então isso pode levar algum tempo.</string>
- <string name="details">Detalhes</string>
- <string name="tor_status">Estado do Tor</string>
- <string name="snowflake_status">Status do floco de neve</string>
- <string name="snowflake_started">Cliente Snowflake iniciado</string>
- <string name="snowflake_negotiating_rendezvous_http">Negociando encontro de proxy do Snowflake (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Negociando encontro de proxy Snowflake (cache de amplificador)</string>
- <string name="snowflake_socks_error">Erro de floco de neve SOCKS</string>
- <string name="snowflake_broker_success">Encontro do proxy Snowflake bem-sucedido</string>
- <string name="snowflake_sending_data">Enviando dados via Snowflake</string>
- <string name="title_upcoming_connection_request">Próxima solicitação de conexão</string>
- <string name="title_upcoming_request">Próximas solicitações</string>
- <string name="title_upcoming_request_summary">Nos próximos painéis, o Android pedirá sua permissão na forma de uma Solicitação de Conexão e Solicitação de Notificação.</string>
- <string name="title_upcoming_connection_request_summary_custom">Aceitar a Solicitação de Conexão é essencial para usar a funcionalidade principal de %s.</string>
- <string name="title_upcoming_connection_request_summary">Para a solicitação de conexão, é importante saber que a Bitmask só faz parceria com provedores parceiros confiáveis que aderem às práticas recomendadas para VPNs e têm um histórico verificável de proteção dos dados e identidades do usuário. No entanto, se você estiver se conectando manualmente a um provedor não público, certifique-se de confiar neles.</string>
- <string name="title_upcoming_notification_request_summary">Aceitar a solicitação de notificação permite que o aplicativo seja executado em segundo plano e permite que você veja o uso de dados no centro de notificações do Android.</string>
- <string name="title_upcoming_notifications_request">Próxima solicitação de notificações</string>
- <string name="title_setup_success">Está tudo pronto!</string>
- <string name="setup_success_description">Clique no botão abaixo para conectar</string>
- <string name="permission_rejected">Solicitação de permissão rejeitada.</string>
- <string name="login_not_supported">A versão atual do aplicativo não oferece suporte a logins, necessários para atualizar seu certificado VPN para este provedor.</string>
- <string name="select_language">Selecionar idioma</string>
- <string name="syntax_check">Verificação de sintaxe:</string>
- <string name="validation_status_success">Bom</string>
- <string name="validation_status_failure">Mau</string>
- <string name="enter_invite_code">Digite o código de convite</string>
- <string name="scan_qr_code">Ler QR Code</string>
- <string name="invalid_code">Código inválido</string>
- <string name="automatic_bridge">Automático (recomendado)</string>
- <string name="automatic_bridge_description">A conexão será tentada usando as melhores pontes e protocolos disponíveis.</string>
- <string name="manual_bridge">Configuração manual</string>
- <string name="manual_bridge_description">Selecione pontes privadas e protocolos específicos</string>
- <string name="censorship_circumvention_description">A configuração manual requer compreensão técnica. Prossiga com cautela.</string>
- <string name="discovery">Descobrir</string>
- <string name="discovery_description">Os sensores podem bloquear a descoberta de informações críticas de configuração do seu provedor. Escolha uma opção de evasão para contornar blocos.</string>
- <string name="automatically_select">Selecione automaticamente</string>
- <string name="invite_proxy">Código Proxy</string>
- <string name="tunnelling">Tunneling</string>
- <string name="tunnelling_description">Os censores podem bloquear o acesso à internet aberta. Escolha uma opção de evasão para contornar blocos.</string>
- <string name="port_hopping">Port Hopping</string>
- <string name="port_hopping_description">Os censores usam a análise de tráfego para bloquear o acesso à internet aberta. Port Hopping pode tornar isso mais difícil para eles.</string>
+ <string name="retry">Tentar novamente</string>
+ <string name="repository_url_text">Código fonte disponível em https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">O gerenciador de bugs está disponível em https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Traduções são bem-vindas. Veja nosso projeto do Transifex em https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Trocar provedor</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Mostrar os detalhes da conexão</string>
+ <string name="connection_details">Detalhes da conexão</string>
+ <string name="routes_info">Rotas: %s</string>
+ <string name="routes_info6">Rotas IPv6 %s</string>
+ <string name="error_empty_username">O nome do usuário não pode estar vazio.</string>
+ <string name="cert_from_keystore">Certificado \'1%s\' adquirido da keystore</string>
+ <string name="provider_label">Provedor:</string>
+ <string name="provider_label_none">Nenhum provedor configurado</string>
+ <string name="status_unknown">Status desconhecido.</string>
+ <string name="eip_service_label">Acesso criptografado a internet via VPN</string>
+ <string name="configuration_wizard_title">Escolha um serviço de provedor</string>
+ <string name="add_provider">Adicione um novo provedor</string>
+ <string name="introduce_new_provider">Adicione um novo provedor de serviço</string>
+ <string name="save">Salvar</string>
+ <string name="new_provider_uri">Domínio</string>
+ <string name="valid_url_entered">Essa URL é inválida</string>
+ <string name="not_valid_url_entered">URL mal formatada</string>
+ <string name="provider_details_title">Detalhes do provedor</string>
+ <string name="use_anonymously_button">Usar anonimamente</string>
+ <string name="username_hint">usuário</string>
+ <string name="username_ask">Por favor digite seu nome de usuário</string>
+ <string name="password_ask">Por favor insira sua senha</string>
+ <string name="password_hint">senha</string>
+ <string name="password_match">Senhas coincidem</string>
+ <string name="password_mismatch">Senhas não coincidem</string>
+ <string name="user_message">Mensagem do usuário</string>
+ <string name="about_fragment_title">Sobre</string>
+ <string name="exclude_apps_fragment_title">Excluir apps da VPN</string>
+ <string name="error_srp_math_error_user_message">Tente novamente: Erro matemático do servidor</string>
+ <string name="error_bad_user_password_user_message">Usuário ou senha incorretos</string>
+ <string name="error_not_valid_password_user_message">Deve ter pelo menos 8 caracteres</string>
+ <string name="error_client_http_user_message">Tente de novo: erro do Cliente HTTP</string>
+ <string name="error_io_exception_user_message">Tente de novo: erro I/O</string>
+ <string name="error_json_exception_user_message">Tente de novo: resposta inválida do servidor</string>
+ <string name="error_no_such_algorithm_exception_user_message">Algoritmo criptográfico não encontrado. Por favor atualize o Android!</string>
+ <string name="signup_or_login_button">Cadastrar/Entrar</string>
+ <string name="login_button">Conectar</string>
+ <string name="login_to_profile">Entrar para o perfil</string>
+ <string name="logout_button">Desconectar</string>
+ <string name="signup_button">Cadastrar-se</string>
+ <string name="create_profile">Criar perfil</string>
+ <string name="setup_provider">Definir provedor</string>
+ <string name="setup_error_title">Erro de Configuração</string>
+ <string name="setup_error_configure_button">Configurar</string>
+ <string name="setup_error_close_button">Sair</string>
+ <string name="setup_error_text">Houve um erro configurando %s com o provedor escolhido por você.\n\nVocê pode optar por reconfigurar ou sair e configurar um provedor na próxima vez que abrir o programa. </string>
+ <string name="setup_error_text_custom">Houve um erro ao configurar %s.\n\nVocê pode reconfigurar ou sair.</string>
+ <string name="server_unreachable_message">O servidor está inalcançável, tente novamente.</string>
+ <string name="error.security.pinnedcertificate">Erro de segurança, atualize seu aplicativo ou escolha outro provedor.</string>
+ <string name="malformed_url">Não parece ser um provedor %s.</string>
+ <string name="certificate_error">Esse não é um provedor confiável %s.</string>
+ <string name="service_is_down_error">O Serviço está fora do ar</string>
+ <string name="configuring_provider">Configurando o provedor</string>
+ <string name="downloading_certificate_message">Baixando o certificado VPN</string>
+ <string name="updating_certificate_message">Atualizando o certificado VPN</string>
+ <string name="login.riseup.warning">Usuários do Riseup necessitarão criar uma conta separada para usar o serviço de VPN</string>
+ <string name="succesful_authentication_message">Autenticado</string>
+ <string name="authentication_failed_message">Falha na Autenticação</string>
+ <string name="registration_failed_message">Falha no cadastro</string>
+ <string name="eip_status_start_pending">Inicializando conexão</string>
+ <string name="eip_status_connecting">Conectando VPN</string>
+ <string name="eip_status_unsecured">Conexão insegura</string>
+ <string name="eip_status_secured">Conexão segura</string>
+ <string name="eip_cancel_connect_title">Cancelar conexão?</string>
+ <string name="eip_cancel_connect_text">Há uma tentativa de conexão em andamento. Você deseja cancelar?</string>
+ <string name="eip.warning.browser_inconsistency">Desligar conexão VPN? Quando a VPN está desligada, você pode vazar informações pessoais para o seu provedor de internet ou na rede local.</string>
+ <string name="eip_state_not_connected">Não está rodando! Conexão insegura!</string>
+ <string name="eip_state_connected">Conexão Segura</string>
+ <string name="provider_problem">Parece que há um problema com o provedor.</string>
+ <string name="try_another_provider">Por favor tente outro provedor, ou entre em contato conosco.</string>
+ <string name="default_username">Anônimo</string>
+ <string name="logging_in">Logando</string>
+ <string name="signing_up">Cadastrando</string>
+ <string name="vpn.button.turn.on">Ligar</string>
+ <string name="vpn.button.turn.off">Desligar</string>
+ <string name="vpn_button_turn_off_blocking">Parar bloqueio</string>
+ <string name="vpn_securely_routed">Seu tráfego está direcionado com segurança através do:</string>
+ <string name="vpn_securely_routed_no_internet">Conexão com a internet não detectada, quando a conexão for recuperada seu tráfego será direcionado com segurança através do:</string>
+ <string name="log_fragment_title">Log</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Abrir menu de navegação</string>
+ <string name="navigation_drawer_close">Fechar menu de navegação</string>
+ <string name="action_example">Ação de exemplo</string>
+ <string name="action_settings">Configurações</string>
+ <string name="void_vpn_establish">%s bloqueia todo o tráfego de saída de internet.</string>
+ <string name="void_vpn_error_establish">Falha ao bloquear todo o tráfego de Internet.</string>
+ <string name="void_vpn_stopped">Parou de bloquear todo o tráfego de saída de internet.</string>
+ <string name="void_vpn_title">Bloqueando tráfego</string>
+ <string name="update_provider_details">Atualizar detalhes do provedor</string>
+ <string name="update_certificate">Atualizar certificado</string>
+ <string name="warning_eip_json_corrupted">Atualização de configurações do provedor falhou.</string>
+ <string name="eip_json_corrupted_user_message">Atualização do provedor falhou. Por favor, faça login e tente novamente.</string>
+ <string name="warning_client_parsing_error_gateways">Os gateways fornecidos são inválidos. Eles podem estar configurados incorretamente.</string>
+ <string name="warning_corrupted_provider_details">Os dados armazenados do provedor estão corrompidos. Você pode atualizar %s (recomendado) ou atualizar os detalhes do provedor utilizando um certificado CA comercial. </string>
+ <string name="warning_corrupted_provider_cert">O certificado armazenado do provedor é invalido. Você pode atualizar %s (recomendado) ou atualizar o certificado do provedor utilizando um certificado CA comercial. </string>
+ <string name="warning_expired_provider_cert">O certificado do provedor está expirado. Você pode atualizar %s (recomendado) ou atualizar o certificado do provedor utilizando um certificado CA comercial. </string>
+ <string name="downloading_vpn_certificate_failed">Download do certificado VPN falhou. Tente novamente ou escolha outro provedor.</string>
+ <string name="vpn_certificate_is_invalid">É hora de atualizar seu certificado VPN. Faça o download de um novo certificado para manter sua conexão segura. Esta é uma atualização de rotina.</string>
+ <string name="save_battery">Economizar energia</string>
+ <string name="subtitle_save_battery">Desabilitado enquanto o Ponto de acesso VPN estiver ligado</string>
+ <string name="save_battery_message">Conexões de dados em segundo plano vão hibernar quando o seu telefone estiver inativo.</string>
+ <string name="always_on_vpn">VPN sempre ativa</string>
+ <string name="subtitle_always_on_vpn">Abrir configurações do Android</string>
+ <string name="tethering">Ponto de acesso VPN</string>
+ <string name="ipv6Firewall">Bloquear IPv6</string>
+ <string name="require_root">Requer permissões de root</string>
+ <string name="show_experimental">Mostrar recursos experimentais</string>
+ <string name="hide_experimental">Esconder recursos experimentais</string>
+ <string name="experimental_features">Funcionalidades experimentais</string>
+ <string name="tethering_enabled_message">Por favor tenha certeza de primeiro habilitar tethering nas <![CDATA[<b>configurações de sistema</b>]]>.</string>
+ <string name="tethering_message">Compartilhe sua VPN com outros dispositivos através de:</string>
+ <string name="tethering_wifi">Hotspot Wi-Fi</string>
+ <string name="tethering_usb">Tethering USB</string>
+ <string name="tethering_bluetooth">Tethering Bluetooth</string>
+ <string name="do_not_show_again">Não mostrar novamente</string>
+ <string name="always_on_vpn_user_message">Para habilitar VPN sempre ativa nas configurações de VPN clique no ícone de configurar [img src] e mude para ligado. </string>
+ <string name="always_on_blocking_vpn_user_message">Para proteger sua privacidade da melhor forma, você deveria ativar também a opção \"Bloqueie conexões sem VPN\"</string>
+ <string name="donate_title">Doar</string>
+ <string name="donate_default_message">Por favor doe hoje se você valoriza uma comunicação segura que é simples de usar para o usuário final e para o servidor.</string>
+ <string name="donate_message">LEAP depende de doações. Por favor doe hoje se você valoriza uma comunicação segura que é simples de usar para o usuário final e para o servidor.</string>
+ <string name="donate_button_remind_later">Lembre-me depois</string>
+ <string name="donate_button_donate">Doar</string>
+ <string name="obfuscated_connection">Utilizando conexão ofuscada.</string>
+ <string name="obfuscated_connection_try">Tentando conexão ofuscada.</string>
+ <string name="nav_drawer_obfuscated_connection">Usar pontes</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Contornar filtragem de VPN</string>
+ <string name="warning_exclude_apps_message">Seja cuidadoso ao excluir apps da VPN. Isso pode revelar sua identidade e comprometer sua segurança.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d app desprotegido</item>
+ <item quantity="many">%d apps desprotegidos</item>
+ <item quantity="other">%d apps desprotegidos</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s não pode se conectar. Isso pode ser devido ao bloqueio de conexões via VPN. Você deseja se conectar usando uma conexão ofuscada?</string>
+ <string name="warning_no_more_gateways_no_pt">%s não pode se conectar. Gostaria de tentar novamente?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s não pode se conectar usando uma VPN ofuscada. Voce gostaria de tentar usando uma conexão padrão?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s não pôde conectar a %2$s. Você quer tentar conectar automaticamente ao melhor local?</string>
+ <string name="warning_option_try_best">Tentar o melhor local</string>
+ <string name="warning_option_try_pt">Tentar conexão ofuscada</string>
+ <string name="warning_option_try_ovpn">Tentar conexão padrão</string>
+ <string name="vpn_error_establish">Android falhou ao estabelecer o serviço VPN.</string>
+ <string name="root_permission_error">%s não pode ativar funcionalidades como Ponto de acesso VPN ou Firewall IPv6 sem permissões de root.</string>
+ <string name="qs_enable_vpn">Iniciar %s</string>
+ <string name="version_update_found">Toque aqui para iniciar o download.</string>
+ <string name="version_update_title">Uma nova versão de %s foi encontrada.</string>
+ <string name="version_update_apk_description">Baixando uma nova versão de %s</string>
+ <string name="version_update_download_title">Uma nova versão de %s foi baixada.</string>
+ <string name="version_update_download_description">Toque aqui para instalar a atualização.</string>
+ <string name="version_update_error_pgp_verification">Erro de verificação PGP. Ignorando arquivo baixado.</string>
+ <string name="version_update_error">Falha ao atualizar.</string>
+ <string name="version_update_error_permissions">Sem permissões para instalar o aplicativo.</string>
+ <string name="gateway_selection_title">Selecione o local</string>
+ <string name="gateway_selection_recommended_location">Local recomendado</string>
+ <string name="gateway_selection_recommended">Recomendado</string>
+ <string name="gateway_selection_manually">Selecione manualmente</string>
+ <string name="gateway_selection_automatic_location">Use a melhor conexão automaticamente</string>
+ <string name="gateway_selection_automatic">Automático</string>
+ <string name="reconnecting">Reconectando...</string>
+ <string name="tor_starting">Iniciando bridges para driblar a censura...</string>
+ <string name="tor_stopping">Parando bridges</string>
+ <string name="tor_started">Usando bridges para driblar a censura</string>
+ <string name="log_conn_done_pt">Conectado a um transporte plugável</string>
+ <string name="log_conn_pt">Conectando a um transporte plugável</string>
+ <string name="log_conn_done">Conectando a um relay</string>
+ <string name="log_handshake">Negociando conexão com um relay</string>
+ <string name="log_handshake_done">Conexão com relay negociada</string>
+ <string name="log_onehop_create">Estabelecendo uma conexão de diretório criptografado</string>
+ <string name="log_requesting_status">Solicitando consenso do estado da rede</string>
+ <string name="log_loading_status">Carregando o consenso do estado da rede</string>
+ <string name="log_loading_keys">Carregando certificados de autoridade</string>
+ <string name="log_requesting_descriptors">Solicitando descritores de relay</string>
+ <string name="log_loading_descriptors">Carregando descritores de relay</string>
+ <string name="log_enough_dirinfo">Informações suficientes sobre diretório foram carregadas para construir circuitos</string>
+ <string name="log_ap_handshake_done">Negociação finalizada com relay para construção de circuitos</string>
+ <string name="log_circuit_create">Estabelecendo um circuito Tor</string>
+ <string name="log_done">Executando</string>
+ <string name="channel_name_tor_service">%s Serviço de Bridges</string>
+ <string name="channel_description_tor_service">Informa sobre o uso de bridges ao configurar %s.</string>
+ <string name="error_tor_timeout">A inicialização de bridges falhou. Você quer tentar novamente ou continuar com uma conexão segura sem ofuscação para configurar %s?</string>
+ <string name="retry_unobfuscated">Tentar sem ofuscação</string>
+ <string name="hide">Esconder</string>
+ <string name="error_network_connection">%s não tem conexão à Internet. Por favor verifique suas configurações de WiFi e dados móveis.</string>
+ <string name="censorship_circumvention">Driblando censura</string>
+ <string name="use_snowflake">Usar Snowflake</string>
+ <string name="snowflake_description">Proteger processo de configuração contra censura.</string>
+ <string name="vpn_settings">Configurações de VPN</string>
+ <string name="prefer_udp">Usar UDP se disponível</string>
+ <string name="prefer_udp_subtitle">UDP pode ser mais rápido e melhor para transmissões (streaming), mas não funciona para todas as redes.</string>
+ <string name="disabled_while_bridges_on">Desabilitado durante o uso de bridges.</string>
+ <string name="hint_bridges">Apenas locais com suporte a bridges podem ser selecionados.</string>
+ <string name="option_disable_bridges">Desabilitar bridges</string>
+ <string name="eip_state_insecure">Conexão insegura</string>
+ <string name="connection_not_connected">Você pode estar vazando informações para seu provedor de Internet ou rede local.</string>
+ <string name="eip_state_no_network">Você não tem uma conexão de Internet funcionando. Assim que houver uma, você será automaticamente conectada a</string>
+ <string name="eip_state_blocking">%1$s está bloqueando todo o tráfego de Internet.</string>
+ <string name="disabled_while_udp_on">Desabilitado enquanto UDP estiver ligado.</string>
+ <string name="advanced_settings">Configurações avançadas</string>
+ <string name="cancel_connection">Desconectar</string>
+ <string name="unknown_location">Local desconhecido</string>
+ <string name="splash_footer">Desenvolvido pela LEAP</string>
+ <string name="welcome">Bem-vindo!</string>
+ <string name="select_provider">Selecione seu provedor</string>
+ <string name="select_provider_description">Ao usar uma VPN, você está transferindo sua confiança do seu provedor de serviços de Internet para o seu provedor de VPN.%1$se %2$s deve ter um histórico claro de proteção de privacidade e defesa de direitos. Se você estiver adicionando um provedor ou usando um código de convite, certifique-se de conhecer e confiar no provedor.</string>
+ <string name="provider_description_riseup">Riseup fornece ferramentas de comunicação online para pessoas e grupos que trabalham em mudanças sociais libertadoras. Somos um projeto para criar alternativas democráticas e praticar a autodeterminação, controlando os nossos próprios meios de comunicação seguros.</string>
+ <string name="next">Próximo</string>
+ <string name="add_provider_description">O Bitmask permite que você se conecte a provedores que não estão listados publicamente. Certifique-se de conhecer e confiar no provedor que você está adicionando.</string>
+ <string name="add_provider_prompt">Digite o URL do provedor aqui.</string>
+ <string name="invite_code_provider_description">O Bitmask permite que você se conecte a provedores usando um código de convite privado. </string>
+ <string name="invite_code_provider_prompt">Digite seu código de convite confiável aqui.</string>
+ <string name="qr_scanner_prompt">Ler QR Code</string>
+ <string name="provider_description_calyx">Calyx é uma organização sem fins lucrativos de educação e pesquisa dedicada a estudar, testar, desenvolver e implementar tecnologias e ferramentas de privacidade para promover a liberdade de expressão, a liberdade de expressão, o envolvimento cívico e os direitos de privacidade na Internet e na indústria de comunicações móveis.</string>
+ <string name="title_circumvention_setup">Você exige evasão da censura?</string>
+ <string name="circumvention_setup_description">Se você mora em um local onde a Internet é censurada, você pode usar nossas opções de evasão de censura para acessar todos os serviços da Internet. Essas opções irão desacelerar sua conexão!</string>
+ <string name="circumvention_setup_hint">%stentará automaticamente conectá-lo à internet usando uma variedade de tecnologias de circunvenção, incluindo Tor. Você pode ajustar isso nas configurações avançadas. </string>
+ <string name="use_standard_vpn">Usar padrão %s</string>
+ <string name="use_circumvention_tech">Use tecnologia de evasão (mais lenta)</string>
+ <string name="description_configure_provider">Para se conectar ao seu provedor, o %1$s está buscando todas as informações de configuração necessárias. Isso só acontece durante a primeira configuração.</string>
+ <string name="description_configure_provider_circumvention">%1$s está tentando coletar todos os dados de configuração necessários do provedor. Isso só acontece durante a primeira configuração. Você optou por usar tecnologia de evasão, então isso pode levar algum tempo.</string>
+ <string name="details">Detalhes</string>
+ <string name="tor_status">Estado do Tor</string>
+ <string name="snowflake_status">Status do floco de neve</string>
+ <string name="snowflake_started">Cliente Snowflake iniciado</string>
+ <string name="title_upcoming_connection_request">Próxima solicitação de conexão</string>
+ <string name="title_upcoming_request">Próximas solicitações</string>
+ <string name="title_upcoming_request_summary">Nos próximos painéis, o Android pedirá sua permissão na forma de uma Solicitação de Conexão e Solicitação de Notificação.</string>
+ <string name="title_upcoming_connection_request_summary_custom">Aceitar a Solicitação de Conexão é essencial para usar a funcionalidade principal de %s.</string>
+ <string name="title_upcoming_connection_request_summary">Para a solicitação de conexão, é importante saber que a Bitmask só faz parceria com provedores parceiros confiáveis que aderem às práticas recomendadas para VPNs e têm um histórico verificável de proteção dos dados e identidades do usuário. No entanto, se você estiver se conectando manualmente a um provedor não público, certifique-se de confiar neles.</string>
+ <string name="title_upcoming_notification_request_summary">Aceitar a solicitação de notificação permite que o aplicativo seja executado em segundo plano e permite que você veja o uso de dados no centro de notificações do Android.</string>
+ <string name="title_upcoming_notifications_request">Próxima solicitação de notificações</string>
+ <string name="title_setup_success">Está tudo pronto!</string>
+ <string name="setup_success_description">Clique no botão abaixo para conectar</string>
+ <string name="permission_rejected">Solicitação de permissão rejeitada.</string>
+ <string name="login_not_supported">A versão atual do aplicativo não oferece suporte a logins, necessários para atualizar seu certificado VPN para este provedor.</string>
+ <string name="select_language">Selecionar idioma</string>
+ <string name="syntax_check">Verificação de sintaxe:</string>
+ <string name="validation_status_success">Bom</string>
+ <string name="validation_status_failure">Mau</string>
+ <string name="enter_invite_code">Digite o código de convite</string>
+ <string name="invalid_code">Código inválido</string>
+ <string name="automatic_bridge">Automático (recomendado)</string>
+ <string name="automatic_bridge_description">A conexão será tentada usando as melhores pontes e protocolos disponíveis.</string>
+ <string name="manual_bridge">Configuração manual</string>
+ <string name="manual_bridge_description">Selecione pontes privadas e protocolos específicos</string>
+ <string name="censorship_circumvention_description">A configuração manual requer compreensão técnica. Prossiga com cautela.</string>
+ <string name="discovery">Descobrir</string>
+ <string name="discovery_description">Os sensores podem bloquear a descoberta de informações críticas de configuração do seu provedor. Escolha uma opção de evasão para contornar blocos.</string>
+ <string name="automatically_select">Selecione automaticamente</string>
+ <string name="invite_proxy">Código Proxy</string>
+ <string name="tunnelling">Tunneling</string>
+ <string name="tunnelling_description">Os censores podem bloquear o acesso à internet aberta. Escolha uma opção de evasão para contornar blocos.</string>
+ <string name="port_hopping">Port Hopping</string>
+ <string name="port_hopping_description">Os censores usam a análise de tráfego para bloquear o acesso à internet aberta. Port Hopping pode tornar isso mais difícil para eles.</string>
+ <string name="error_invite_title">Ops, há algo de errado com este código de convite:</string>
+ <string name="error_invite">Código de convite inválido: %1$s</string>
+ <string name="error_invite_copy">Copiar código de convite</string>
+ <string name="error_invite_hint">Você pode copiar e compartilhar o código com seu provedor para solicitar suporte.</string>
+ <string name="error_invite_unknown_type">o tipo de código de convite %1$s é desconhecido.</string>
+ <string name="error_invite_address_format">O endereço de proxy do convite não segue o formato ipaddr:porta.</string>
+ <string name="error_invite_certificate_length">o certificado tem o número errado de caracteres (%1$s).</string>
+ <string name="error_invite_certificate_missing">O certificado de proxy do convite está ausente.</string>
+ <string name="error_invite_fqdn_length">o código de convite deve conter um nome de domínio totalmente qualificado, mas recebeu .%1$s.</string>
+ <string name="error_invite_fqdn_missing">o nome de domínio totalmente qualificado está ausente.</string>
+ <string name="error_invite_auth_missing">o token de autenticação está ausente.</string>
+ <string name="error_invite_fqdn_invalid">o código de convite contém caracteres inválidos %1$s</string>
</resources>
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index c74335bb..7a5ad970 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -1,106 +1,106 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Repetir</string>
- <string name="repository_url_text">O código fonte está disponível em https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">O rastreador de problemas está disponível em https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">As traduções são bem-vindas e apreciadas. Consulte o nosso projeto na Transifex em https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Mudar Provedor</string>
- <string name="info">informação</string>
- <string name="show_connection_details">Mostrar detalhes da ligação</string>
- <string name="routes_info">Rotas: %s</string>
- <string name="routes_info6">Rotas de IPv6: %s</string>
- <string name="error_empty_username">O nome de utilizador não deve estar em branco</string>
- <string name="cert_from_keystore">Obteve certificado \'%s\' do gestor de chaves</string>
- <string name="provider_label">Provedor:</string>
- <string name="provider_label_none">Nenhum provedor configurado</string>
- <string name="status_unknown">Estado desconhecido</string>
- <string name="eip_service_label">Acesso de VPN à Internet Encriptado</string>
- <string name="configuration_wizard_title">Selecione um provedor de serviço</string>
- <string name="add_provider">Adicionar novo Provedor</string>
- <string name="introduce_new_provider">Adicione um novo provedor de serviço</string>
- <string name="save">Guardar</string>
- <string name="new_provider_uri">Nome do Domínio</string>
- <string name="valid_url_entered">O URL é válido</string>
- <string name="not_valid_url_entered">URL errado</string>
- <string name="provider_details_title">Detalhes do provedor</string>
- <string name="use_anonymously_button">Utilizar anonimamente</string>
- <string name="username_hint">nome de utilizador</string>
- <string name="username_ask">Por favor, insira o seu nome de utilizador</string>
- <string name="password_ask">Por favor, insira a sua palavra-passe</string>
- <string name="password_hint">senha</string>
- <string name="password_match">As palavras-passe coincidem</string>
- <string name="password_mismatch">As palavras-passe não coincidem</string>
- <string name="user_message">Mensagem do Utilizador</string>
- <string name="about_fragment_title">Sobre</string>
- <string name="error_bad_user_password_user_message">Nome de utilizador ou palavra-passe incorreta</string>
- <string name="error_client_http_user_message">Tente de novo: Erro HTTP de Cliente</string>
- <string name="error_io_exception_user_message">Tente de novo: Erro I/O</string>
- <string name="error_json_exception_user_message">Tente de novo: Má resposta do servidor</string>
- <string name="error_no_such_algorithm_exception_user_message">Algoritmo de encriptação não encontrado. Por favor, atualize o Android!</string>
- <string name="signup_or_login_button">Registar / Iniciar Sessão</string>
- <string name="login_button">Iniciar Sessão</string>
- <string name="login_to_profile">Inicie a sessão para o perfil</string>
- <string name="logout_button">Terminar Sessão</string>
- <string name="signup_button">Registar</string>
- <string name="create_profile">Criar perfil</string>
- <string name="setup_provider">Configurar provedor</string>
- <string name="setup_error_title">Erro de Configuração</string>
- <string name="setup_error_configure_button">Configurar</string>
- <string name="setup_error_close_button">Sair</string>
- <string name="server_unreachable_message">O servidor não está a responder, por favor, tente novamente.</string>
- <string name="error.security.pinnedcertificate">Erro de segurança, atualize a aplicação ou escolha outro provedor.</string>
- <string name="service_is_down_error">O serviço está desligado.</string>
- <string name="configuring_provider">A configurar o provedor</string>
- <string name="downloading_certificate_message">A transferir o certificado de VPN</string>
- <string name="updating_certificate_message">A enviar o certificado de VPN</string>
- <string name="login.riseup.warning">Os utilizadores de Riseup terão de criar uma conta separada para usar o serviço de VPN</string>
- <string name="authentication_failed_message">Falhou a autenticação</string>
- <string name="eip_status_start_pending">A iniciar a conexão</string>
- <string name="eip_cancel_connect_title">Cancelar coneção?</string>
- <string name="eip_cancel_connect_text">Existe uma tentativa de conexão em progresso. Deseja-a cancelar?</string>
- <string name="eip.warning.browser_inconsistency">Desativar a ligação de VPN? Quando a VPN está desativada, poderá divulgar informação pessoal para o seu provedor da Internet ou rede local.</string>
- <string name="eip_state_not_connected">Não está em execução! Ligação insegura!</string>
- <string name="provider_problem">Parece que há um problema com o provedor.</string>
- <string name="try_another_provider">Por favor, tente outro provedor, ou entre em contacto com o seu.</string>
- <string name="default_username">Anónimo</string>
- <string name="logging_in">A iniciar a sessão</string>
- <string name="signing_up">A registar</string>
- <string name="vpn.button.turn.on">Ativar</string>
- <string name="vpn.button.turn.off">Desativar</string>
- <string name="vpn_button_turn_off_blocking">Parar de bloquear</string>
- <string name="vpn_securely_routed">O seu tráfego está encaminhado de forma segura através de:</string>
- <string name="vpn_securely_routed_no_internet">Detetado, sem ligação à Internet. Quando esta voltar, nós encaminharemos o seu tráfego com segurança através de:</string>
- <string name="log_fragment_title">Registo</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Abrir gaveta de navegação</string>
- <string name="navigation_drawer_close">Fechar gaveta de navegação</string>
- <string name="action_example">Exemplo de ação</string>
- <string name="action_settings">Definições</string>
- <string name="void_vpn_stopped">Parado o bloqueio de todo o tráfego de saída da Internet.</string>
- <string name="void_vpn_title">A bloquear tráfego</string>
- <string name="update_provider_details">Atualizar detalhes do provedor</string>
- <string name="update_certificate">Atualizar certificado</string>
- <string name="warning_eip_json_corrupted">A atualização da configuração do provedor falhou. </string>
- <string name="eip_json_corrupted_user_message">A atualização da configuração do provedor falhou. Por favor, inicie a sessão e tente novamente.</string>
- <string name="downloading_vpn_certificate_failed">A transferência do certificado da VPN falhou. Tente novamente ou escolha outro provedor.</string>
- <string name="vpn_certificate_is_invalid">O certificado da VPN é inválido. Tente transferir um novo.</string>
- <string name="vpn_certificate_user_message">O certificado da VPN é inválido. Por favor, inicie a sessão para transferir um novo.</string>
- <string name="save_battery">Poupar bateria</string>
- <string name="save_battery_message">As ligações de dados em segundo plano hibernarão quando o seu telefone estiver inativo.</string>
- <string name="always_on_vpn">VPN - Sempre ligada</string>
- <string name="donate_title">Doar</string>
- <string name="donate_default_message">Por favor, doe hoje se valoriza a comunicação segura que é fácil, tanto para o utilizador final quanto para o provedor de serviços.</string>
- <string name="donate_message">LEAP depende de doações. Por favor, doe hoje se valoriza a comunicação segura que é fácil, tanto para o utilizador final quanto para o provedor de serviços.</string>
- <string name="donate_button_remind_later">Lembrar-me mais tarde</string>
- <string name="donate_button_donate">Doar</string>
- <string name="nav_drawer_obfuscated_connection">Usar Pontes</string>
- <string name="gateway_selection_automatic">Automático</string>
- <string name="log_onehop_create">A estabelecer uma ligação de diretório encriptada</string>
- <string name="log_loading_keys">A carregar os certificados de autoridade</string>
- <string name="log_circuit_create">A estabelecer um circuito Tor</string>
- <string name="log_done">Em execução</string>
- <string name="hide">Ocultar</string>
- <string name="use_snowflake">Use o Snowflake</string>
- <string name="advanced_settings">Configurações Avançadas</string>
- <string name="cancel_connection">Desligar</string>
+ <string name="retry">Repetir</string>
+ <string name="repository_url_text">O código fonte está disponível em https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">O rastreador de problemas está disponível em https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">As traduções são bem-vindas e apreciadas. Consulte o nosso projeto na Transifex em https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Mudar Provedor</string>
+ <string name="info">informação</string>
+ <string name="show_connection_details">Mostrar detalhes da ligação</string>
+ <string name="routes_info">Rotas: %s</string>
+ <string name="routes_info6">Rotas de IPv6: %s</string>
+ <string name="error_empty_username">O nome de utilizador não deve estar em branco</string>
+ <string name="cert_from_keystore">Obteve certificado \'%s\' do gestor de chaves</string>
+ <string name="provider_label">Provedor:</string>
+ <string name="provider_label_none">Nenhum provedor configurado</string>
+ <string name="status_unknown">Estado desconhecido</string>
+ <string name="eip_service_label">Acesso de VPN à Internet Encriptado</string>
+ <string name="configuration_wizard_title">Selecione um provedor de serviço</string>
+ <string name="add_provider">Adicionar novo Provedor</string>
+ <string name="introduce_new_provider">Adicione um novo provedor de serviço</string>
+ <string name="save">Guardar</string>
+ <string name="new_provider_uri">Nome do Domínio</string>
+ <string name="valid_url_entered">O URL é válido</string>
+ <string name="not_valid_url_entered">URL errado</string>
+ <string name="provider_details_title">Detalhes do provedor</string>
+ <string name="use_anonymously_button">Utilizar anonimamente</string>
+ <string name="username_hint">nome de utilizador</string>
+ <string name="username_ask">Por favor, insira o seu nome de utilizador</string>
+ <string name="password_ask">Por favor, insira a sua palavra-passe</string>
+ <string name="password_hint">senha</string>
+ <string name="password_match">As palavras-passe coincidem</string>
+ <string name="password_mismatch">As palavras-passe não coincidem</string>
+ <string name="user_message">Mensagem do Utilizador</string>
+ <string name="about_fragment_title">Sobre</string>
+ <string name="error_bad_user_password_user_message">Nome de utilizador ou palavra-passe incorreta</string>
+ <string name="error_client_http_user_message">Tente de novo: Erro HTTP de Cliente</string>
+ <string name="error_io_exception_user_message">Tente de novo: Erro I/O</string>
+ <string name="error_json_exception_user_message">Tente de novo: Má resposta do servidor</string>
+ <string name="error_no_such_algorithm_exception_user_message">Algoritmo de encriptação não encontrado. Por favor, atualize o Android!</string>
+ <string name="signup_or_login_button">Registar / Iniciar Sessão</string>
+ <string name="login_button">Iniciar Sessão</string>
+ <string name="login_to_profile">Inicie a sessão para o perfil</string>
+ <string name="logout_button">Terminar Sessão</string>
+ <string name="signup_button">Registar</string>
+ <string name="create_profile">Criar perfil</string>
+ <string name="setup_provider">Configurar provedor</string>
+ <string name="setup_error_title">Erro de Configuração</string>
+ <string name="setup_error_configure_button">Configurar</string>
+ <string name="setup_error_close_button">Sair</string>
+ <string name="server_unreachable_message">O servidor não está a responder, por favor, tente novamente.</string>
+ <string name="error.security.pinnedcertificate">Erro de segurança, atualize a aplicação ou escolha outro provedor.</string>
+ <string name="service_is_down_error">O serviço está desligado.</string>
+ <string name="configuring_provider">A configurar o provedor</string>
+ <string name="downloading_certificate_message">A transferir o certificado de VPN</string>
+ <string name="updating_certificate_message">A enviar o certificado de VPN</string>
+ <string name="login.riseup.warning">Os utilizadores de Riseup terão de criar uma conta separada para usar o serviço de VPN</string>
+ <string name="authentication_failed_message">Falhou a autenticação</string>
+ <string name="eip_status_start_pending">A iniciar a conexão</string>
+ <string name="eip_cancel_connect_title">Cancelar coneção?</string>
+ <string name="eip_cancel_connect_text">Existe uma tentativa de conexão em progresso. Deseja-a cancelar?</string>
+ <string name="eip.warning.browser_inconsistency">Desativar a ligação de VPN? Quando a VPN está desativada, poderá divulgar informação pessoal para o seu provedor da Internet ou rede local.</string>
+ <string name="eip_state_not_connected">Não está em execução! Ligação insegura!</string>
+ <string name="provider_problem">Parece que há um problema com o provedor.</string>
+ <string name="try_another_provider">Por favor, tente outro provedor, ou entre em contacto com o seu.</string>
+ <string name="default_username">Anónimo</string>
+ <string name="logging_in">A iniciar a sessão</string>
+ <string name="signing_up">A registar</string>
+ <string name="vpn.button.turn.on">Ativar</string>
+ <string name="vpn.button.turn.off">Desativar</string>
+ <string name="vpn_button_turn_off_blocking">Parar de bloquear</string>
+ <string name="vpn_securely_routed">O seu tráfego está encaminhado de forma segura através de:</string>
+ <string name="vpn_securely_routed_no_internet">Detetado, sem ligação à Internet. Quando esta voltar, nós encaminharemos o seu tráfego com segurança através de:</string>
+ <string name="log_fragment_title">Registo</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Abrir gaveta de navegação</string>
+ <string name="navigation_drawer_close">Fechar gaveta de navegação</string>
+ <string name="action_example">Exemplo de ação</string>
+ <string name="action_settings">Definições</string>
+ <string name="void_vpn_stopped">Parado o bloqueio de todo o tráfego de saída da Internet.</string>
+ <string name="void_vpn_title">A bloquear tráfego</string>
+ <string name="update_provider_details">Atualizar detalhes do provedor</string>
+ <string name="update_certificate">Atualizar certificado</string>
+ <string name="warning_eip_json_corrupted">A atualização da configuração do provedor falhou. </string>
+ <string name="eip_json_corrupted_user_message">A atualização da configuração do provedor falhou. Por favor, inicie a sessão e tente novamente.</string>
+ <string name="downloading_vpn_certificate_failed">A transferência do certificado da VPN falhou. Tente novamente ou escolha outro provedor.</string>
+ <string name="vpn_certificate_is_invalid">O certificado da VPN é inválido. Tente transferir um novo.</string>
+ <string name="vpn_certificate_user_message">O certificado da VPN é inválido. Por favor, inicie a sessão para transferir um novo.</string>
+ <string name="save_battery">Poupar bateria</string>
+ <string name="save_battery_message">As ligações de dados em segundo plano hibernarão quando o seu telefone estiver inativo.</string>
+ <string name="always_on_vpn">VPN - Sempre ligada</string>
+ <string name="donate_title">Doar</string>
+ <string name="donate_default_message">Por favor, doe hoje se valoriza a comunicação segura que é fácil, tanto para o utilizador final quanto para o provedor de serviços.</string>
+ <string name="donate_message">LEAP depende de doações. Por favor, doe hoje se valoriza a comunicação segura que é fácil, tanto para o utilizador final quanto para o provedor de serviços.</string>
+ <string name="donate_button_remind_later">Lembrar-me mais tarde</string>
+ <string name="donate_button_donate">Doar</string>
+ <string name="nav_drawer_obfuscated_connection">Usar Pontes</string>
+ <string name="gateway_selection_automatic">Automático</string>
+ <string name="log_onehop_create">A estabelecer uma ligação de diretório encriptada</string>
+ <string name="log_loading_keys">A carregar os certificados de autoridade</string>
+ <string name="log_circuit_create">A estabelecer um circuito Tor</string>
+ <string name="log_done">Em execução</string>
+ <string name="hide">Ocultar</string>
+ <string name="use_snowflake">Use o Snowflake</string>
+ <string name="advanced_settings">Configurações Avançadas</string>
+ <string name="cancel_connection">Desligar</string>
</resources>
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index 8357f1d2..d18332fc 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -1,63 +1,63 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Reâncearcă</string>
- <string name="switch_provider_menu_option">Schimbare furnizor</string>
- <string name="info">info</string>
- <string name="show_connection_details">Arată detaliile conexiunii</string>
- <string name="routes_info">Rute: %s</string>
- <string name="error_empty_username">Numele de utilizator nu trebuie să fie gol.</string>
- <string name="provider_label">Furnizor:</string>
- <string name="provider_label_none">Niciun furnizor configurat</string>
- <string name="status_unknown">Statut necunoscut.</string>
- <string name="configuration_wizard_title">Selectare furnizor de servicii</string>
- <string name="add_provider">Adaugare Furnizor nou</string>
- <string name="introduce_new_provider">Adaugă un nou serviciu furnizor</string>
- <string name="save">Salvare</string>
- <string name="new_provider_uri">Nume domeniu</string>
- <string name="provider_details_title">Detalii furnizor</string>
- <string name="use_anonymously_button">Utilizează anonim</string>
- <string name="username_hint">Nume utilizator</string>
- <string name="username_ask">Vă rugăm introduceți numele dumneavoastră de utilizator</string>
- <string name="password_hint">parola</string>
- <string name="password_mismatch">Parolele nu se potrivesc</string>
- <string name="user_message">Mesaj utilizator</string>
- <string name="about_fragment_title">Despre</string>
- <string name="error_client_http_user_message">Încercați din nou: Eroare client HTTP</string>
- <string name="error_io_exception_user_message">Încercați din nou: Eroare I/O</string>
- <string name="error_json_exception_user_message">Încercați din nou: Răspuns greșit de la server</string>
- <string name="login_button">Autentificare</string>
- <string name="logout_button">Deautentificare</string>
- <string name="signup_button">Înscrieți-vă</string>
- <string name="setup_error_title">Eroare Configurație</string>
- <string name="setup_error_configure_button">Configurare</string>
- <string name="setup_error_close_button">Ieșire</string>
- <string name="configuring_provider">Configurare furnizor</string>
- <string name="succesful_authentication_message">Autentificat</string>
- <string name="authentication_failed_message">Autentificare esuata</string>
- <string name="eip_status_start_pending">Inițiere conexiune</string>
- <string name="eip_cancel_connect_title">Anulare conexiune?</string>
- <string name="eip_cancel_connect_text">Există o încercare de conexiune în progres. Doriți să o anulați?</string>
- <string name="default_username">Anonim</string>
- <string name="logging_in">Autentificare</string>
- <string name="vpn.button.turn.on">Deschidere</string>
- <string name="vpn.button.turn.off">Închidere</string>
- <string name="log_fragment_title">Jurnal</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Deschide sertarul de navigare</string>
- <string name="navigation_drawer_close">Închide sertarul de navigare</string>
- <string name="action_settings">Setări</string>
- <string name="tethering_wifi">Hotspot Wi-Fi</string>
- <string name="donate_title">Donează</string>
- <string name="donate_button_donate">Donează</string>
- <string name="nav_drawer_obfuscated_connection">Foloseşte punţi</string>
- <string name="gateway_selection_title">Alege locația</string>
- <string name="gateway_selection_automatic">Automatic</string>
- <string name="log_onehop_create">Se stabileşte o conexiune criptată la director</string>
- <string name="log_loading_keys">Se încarcă certificatele de autoritate</string>
- <string name="log_circuit_create">Se stabileşte un circuit Tor</string>
- <string name="log_done">Rulează</string>
- <string name="hide">Ascunde</string>
- <string name="use_snowflake">Folosește Snowflake</string>
- <string name="advanced_settings">Setări avansate</string>
- <string name="cancel_connection">Deconectaţi</string>
+ <string name="retry">Reâncearcă</string>
+ <string name="switch_provider_menu_option">Schimbare furnizor</string>
+ <string name="info">info</string>
+ <string name="show_connection_details">Arată detaliile conexiunii</string>
+ <string name="routes_info">Rute: %s</string>
+ <string name="error_empty_username">Numele de utilizator nu trebuie să fie gol.</string>
+ <string name="provider_label">Furnizor:</string>
+ <string name="provider_label_none">Niciun furnizor configurat</string>
+ <string name="status_unknown">Statut necunoscut.</string>
+ <string name="configuration_wizard_title">Selectare furnizor de servicii</string>
+ <string name="add_provider">Adaugare Furnizor nou</string>
+ <string name="introduce_new_provider">Adaugă un nou serviciu furnizor</string>
+ <string name="save">Salvare</string>
+ <string name="new_provider_uri">Nume domeniu</string>
+ <string name="provider_details_title">Detalii furnizor</string>
+ <string name="use_anonymously_button">Utilizează anonim</string>
+ <string name="username_hint">Nume utilizator</string>
+ <string name="username_ask">Vă rugăm introduceți numele dumneavoastră de utilizator</string>
+ <string name="password_hint">parola</string>
+ <string name="password_mismatch">Parolele nu se potrivesc</string>
+ <string name="user_message">Mesaj utilizator</string>
+ <string name="about_fragment_title">Despre</string>
+ <string name="error_client_http_user_message">Încercați din nou: Eroare client HTTP</string>
+ <string name="error_io_exception_user_message">Încercați din nou: Eroare I/O</string>
+ <string name="error_json_exception_user_message">Încercați din nou: Răspuns greșit de la server</string>
+ <string name="login_button">Autentificare</string>
+ <string name="logout_button">Deautentificare</string>
+ <string name="signup_button">Înscrieți-vă</string>
+ <string name="setup_error_title">Eroare Configurație</string>
+ <string name="setup_error_configure_button">Configurare</string>
+ <string name="setup_error_close_button">Ieșire</string>
+ <string name="configuring_provider">Configurare furnizor</string>
+ <string name="succesful_authentication_message">Autentificat</string>
+ <string name="authentication_failed_message">Autentificare esuata</string>
+ <string name="eip_status_start_pending">Inițiere conexiune</string>
+ <string name="eip_cancel_connect_title">Anulare conexiune?</string>
+ <string name="eip_cancel_connect_text">Există o încercare de conexiune în progres. Doriți să o anulați?</string>
+ <string name="default_username">Anonim</string>
+ <string name="logging_in">Autentificare</string>
+ <string name="vpn.button.turn.on">Deschidere</string>
+ <string name="vpn.button.turn.off">Închidere</string>
+ <string name="log_fragment_title">Jurnal</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Deschide sertarul de navigare</string>
+ <string name="navigation_drawer_close">Închide sertarul de navigare</string>
+ <string name="action_settings">Setări</string>
+ <string name="tethering_wifi">Hotspot Wi-Fi</string>
+ <string name="donate_title">Donează</string>
+ <string name="donate_button_donate">Donează</string>
+ <string name="nav_drawer_obfuscated_connection">Foloseşte punţi</string>
+ <string name="gateway_selection_title">Alege locația</string>
+ <string name="gateway_selection_automatic">Automatic</string>
+ <string name="log_onehop_create">Se stabileşte o conexiune criptată la director</string>
+ <string name="log_loading_keys">Se încarcă certificatele de autoritate</string>
+ <string name="log_circuit_create">Se stabileşte un circuit Tor</string>
+ <string name="log_done">Rulează</string>
+ <string name="hide">Ascunde</string>
+ <string name="use_snowflake">Folosește Snowflake</string>
+ <string name="advanced_settings">Setări avansate</string>
+ <string name="cancel_connection">Deconectaţi</string>
</resources>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 9c906834..7d730f3f 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -1,271 +1,261 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Повтор</string>
- <string name="repository_url_text">Исходный код доступен на https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Отслеживание проблем доступно на
+ <string name="retry">Повтор</string>
+ <string name="repository_url_text">Исходный код доступен на https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Отслеживание проблем доступно на
https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Переводы приветствуются. Наш проект на Transifex: https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Сменить провайдера</string>
- <string name="info">информация</string>
- <string name="show_connection_details">Показать сведения о подключении</string>
- <string name="connection_details">Сведения о подключении</string>
- <string name="routes_info">Маршруты: %s</string>
- <string name="routes_info6">Маршруты IPv6: %s</string>
- <string name="error_empty_username">Имя пользователя не должно быть пустым</string>
- <string name="cert_from_keystore">Получен сертификат \'%s\' из хранилища ключей</string>
- <string name="provider_label">Провайдер:</string>
- <string name="provider_label_none">Провайдер не настроен</string>
- <string name="status_unknown">Статус неизвестен.</string>
- <string name="eip_service_label">Зашифрованный доступ в интернет через VPN</string>
- <string name="configuration_wizard_title">Выбрать провайдера</string>
- <string name="add_provider">Добавить нового провайдера</string>
- <string name="introduce_new_provider">Добавить нового провайдера</string>
- <string name="save">Сохранить</string>
- <string name="new_provider_uri">Доменное имя</string>
- <string name="valid_url_entered">URL действителен</string>
- <string name="not_valid_url_entered">Неправильный URL</string>
- <string name="provider_details_title">Информация о провайдере</string>
- <string name="use_anonymously_button">Использовать анонимно</string>
- <string name="username_hint">имя пользователя</string>
- <string name="username_ask">Введите имя пользователя</string>
- <string name="password_ask">Введите пароль</string>
- <string name="password_hint">пароль</string>
- <string name="password_match">Пароли совпадают</string>
- <string name="password_mismatch">Пароли не совпадают</string>
- <string name="user_message">Сообщение пользователя</string>
- <string name="about_fragment_title">О нас</string>
- <string name="exclude_apps_fragment_title">Исключение приложений из VPN</string>
- <string name="error_srp_math_error_user_message">Повторите попытку: ошибка сервера</string>
- <string name="error_bad_user_password_user_message">Неправильное имя пользователя или пароль</string>
- <string name="error_not_valid_password_user_message">Длина должна быть не менее 8 символов</string>
- <string name="error_client_http_user_message">Повторите попытку: ошибка HTTP-клиента</string>
- <string name="error_io_exception_user_message">Повторите попытку: ошибка ввода/вывода</string>
- <string name="error_json_exception_user_message">Повторите попытку: некорректный ответ от сервера</string>
- <string name="error_no_such_algorithm_exception_user_message">Алгоритм шифрования не найден. Обновите Android!</string>
- <string name="signup_or_login_button">Регистрация/вход</string>
- <string name="login_button">Войти</string>
- <string name="login_to_profile">Войти в свой профиль</string>
- <string name="logout_button">Выйти</string>
- <string name="signup_button">Зарегистрироваться</string>
- <string name="create_profile">Создать профиль</string>
- <string name="setup_provider">Выбор провайдера</string>
- <string name="setup_error_title">Ошибка конфигурации</string>
- <string name="setup_error_configure_button">Настройка</string>
- <string name="setup_error_close_button">Выход</string>
- <string name="setup_error_text">Произошла ошибка при настройке %s с выбранным вами провайдером.\n\nВы можете выбрать повторную настройку или выйти и настроить провайдера при следующем запуске.</string>
- <string name="setup_error_text_custom">Произошла ошибка в конфигурации %s.\n\nМожно изменить конфигурацию или выйти.</string>
- <string name="server_unreachable_message">Сервер недоступен, попробуйте ещё раз.</string>
- <string name="error.security.pinnedcertificate">Ошибка безопасности, обновите приложение или выберите другого провайдера.</string>
- <string name="malformed_url">Похоже, %s не провайдер.</string>
- <string name="certificate_error">%s не надёжный провайдер.</string>
- <string name="service_is_down_error">Сервис недоступен.</string>
- <string name="configuring_provider">Настройка провайдера</string>
- <string name="incorrectly_downloaded_certificate_message">Ваш анонимный сертификат не был загружен</string>
- <string name="downloading_certificate_message">Скачивание сертификата VPN</string>
- <string name="updating_certificate_message">Обновление сертификата VPN</string>
- <string name="login.riseup.warning">Пользователям Riseup потребуется создать отдельную учётную запись для использования VPN</string>
- <string name="succesful_authentication_message">Аутентифицирован</string>
- <string name="authentication_failed_message">Ошибка аутентификации</string>
- <string name="registration_failed_message">Регистрация не выполнена</string>
- <string name="eip_status_start_pending">Установка подключения</string>
- <string name="eip_status_connecting">Подключение VPN</string>
- <string name="eip_status_unsecured">Небезопасное подключение</string>
- <string name="eip_status_secured">Безопасное подключение</string>
- <string name="eip_cancel_connect_title">Отменить подключение?</string>
- <string name="eip_cancel_connect_text">Идёт попытка подключения. Вы хотите её отменить?</string>
- <string name="eip.warning.browser_inconsistency">Отключить VPN-подключение? При отключённой VPN ваша персональная информация может стать доступна провайдеру или в местной сети.</string>
- <string name="eip_state_not_connected">Не работает! Подключение небезопасно!</string>
- <string name="eip_state_connected">Безопасное подключение</string>
- <string name="provider_problem">Похоже, проблема с провайдером.</string>
- <string name="try_another_provider">Попробуйте сменить провайдера или свяжитесь с вашим.</string>
- <string name="default_username">Анонимно</string>
- <string name="logging_in">Вход…</string>
- <string name="signing_up">Регистрация…</string>
- <string name="vpn.button.turn.on">ВКЛ</string>
- <string name="vpn.button.turn.off">ВЫКЛ</string>
- <string name="vpn_button_turn_off_blocking">Остановить блокирование</string>
- <string name="vpn_securely_routed">Ваш трафик безопасно маршрутизируется через:</string>
- <string name="vpn_securely_routed_no_internet">Подключение к интернету отсутствует. Когда оно восстановится, мы безопасно перенаправим ваш трафик через:</string>
- <string name="log_fragment_title">Журнал</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Открыть панель навигации</string>
- <string name="navigation_drawer_close">Закрыть панель навигации</string>
- <string name="action_example">Пример действия</string>
- <string name="action_settings">Настройки</string>
- <string name="void_vpn_establish">%s блокирует весь исходящий интернет-трафик.</string>
- <string name="void_vpn_error_establish">Невозможно блокировать весь интернет-трафик.</string>
- <string name="void_vpn_stopped">Прекращена блокировка всего исходящего интернет-трафика.</string>
- <string name="void_vpn_title">Блокирование трафика</string>
- <string name="update_provider_details">Обновление информации провайдера</string>
- <string name="update_certificate">Обновление сертификата</string>
- <string name="warning_eip_json_corrupted">Невозможно обновить конфигурацию провайдера.</string>
- <string name="eip_json_corrupted_user_message">Невозможно обновить конфигурацию провайдера. Войдите, чтобы повторить попытку.</string>
- <string name="warning_client_parsing_error_gateways">Невозможно распознать шлюзы провайдера. Они могут быть настроены неправильно.</string>
- <string name="warning_corrupted_provider_details">Сохранённые сведения о провайдере повреждены. Можно либо обновить %s (рекомендуется), либо обновить сведения о провайдере с помощью коммерческого сертификата ЦС.</string>
- <string name="warning_corrupted_provider_cert">Сохранённый сертификат провайдера недействителен. Вы можете либо обновить %s (рекомендуется), либо обновить сертификат провайдера используя коммерческий сертификат центра сертификации.</string>
- <string name="warning_expired_provider_cert">Срок действия сохранённого сертификата провайдера истёк. Можно либо обновить %s (рекомендуется), либо обновить сертификат провайдера с помощью коммерческого сертификата ЦС.</string>
- <string name="downloading_vpn_certificate_failed">Загрузка сертификата VPN не выполнена. Попробуйте ещё раз или выберите другого провайдера.</string>
- <string name="vpn_certificate_is_invalid">Пришло время обновить сертификат VPN. Загрузите новый сертификат, чтобы обеспечить безопасность соединения. Это рутинное обновление.</string>
- <string name="vpn_certificate_user_message">Сертификат VPN недействителен. Войдите для загрузки нового.</string>
- <string name="save_battery">Экономия батареи</string>
- <string name="subtitle_save_battery">Отключено при использовании точки доступа VPN</string>
- <string name="save_battery_message">Фоновые подключения перейдут в спящий режим на время неактивности вашего устройства.</string>
- <string name="always_on_vpn">VPN всегда включена</string>
- <string name="subtitle_always_on_vpn">Открыть системные настройки Android</string>
- <string name="tethering">Точка доступа VPN</string>
- <string name="ipv6Firewall">Блокировать IPv6</string>
- <string name="require_root">Требуются права root</string>
- <string name="show_experimental">Показать экспериментальные функции</string>
- <string name="hide_experimental">Скрыть экспериментальные функции</string>
- <string name="experimental_features">Экспериментальные функции</string>
- <string name="tethering_enabled_message">Не забудьте сначала включить модем в <![CDATA[<b>системных настройках</b>]]>.</string>
- <string name="tethering_message">Поделиться VPN с другими устройствами через:</string>
- <string name="tethering_wifi">Точка доступа Wi-Fi</string>
- <string name="tethering_usb">USB-модем</string>
- <string name="tethering_bluetooth">Bluetooth-модем</string>
- <string name="do_not_show_again">Не показывать снова</string>
- <string name="always_on_vpn_user_message">Для включения постоянной VPN в настройках Android, нажмите значок конфигурации [img src] и переведите его во включённое состояние.</string>
- <string name="always_on_blocking_vpn_user_message">Чтобы оптимально защитить конфиденциальность, вы также должны активировать функцию \'Блокировать подключения без VPN\'.</string>
- <string name="donate_title">Пожертвование</string>
- <string name="donate_default_message">Пожалуйста, сделайте пожертвование сегодня, если вы цените безопасное общение, простое как для конечного пользователя, так и для поставщика услуг.</string>
- <string name="donate_message">LEAP зависит от пожертвований и грантов. Пожалуйста, сделайте пожертвование сегодня, если вы цените безопасное общение, простое как для конечного пользователя, так и для поставщика услуг.</string>
- <string name="donate_button_remind_later">Напомнить позже</string>
- <string name="donate_button_donate">Пожертвование</string>
- <string name="obfuscated_connection">Использование маскировки подключения.</string>
- <string name="obfuscated_connection_try">Попытка маскировки подключения.</string>
- <string name="nav_drawer_obfuscated_connection">Использовать мосты</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Обход фильтрации VPN</string>
- <string name="warning_exclude_apps_message">Будьте осторожны, исключая приложения из VPN. Это позволит раскрыть вашу личность и поставить под угрозу вашу безопасность.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d незащищённое приложение</item>
- <item quantity="few">%d незащищённых приложения</item>
- <item quantity="many">%d незащищённых приложений</item>
- <item quantity="other">%d незащищённых приложений</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s не подключается. Возможно, что VPN-подключения блокируются. Попробовать подключиться с помощью маскировки подключения?</string>
- <string name="warning_no_more_gateways_no_pt">%s не удалось подключиться. Повторить попытку?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s не подключается с помощью маскированного VPN-подключения. Попробовать подключиться с помощью стандартного VPN?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s не может подключиться к %2$s. Использовать автоматический выбор лучшего расположения?</string>
- <string name="warning_option_try_best">Попробовать лучшее расположение</string>
- <string name="warning_option_try_pt">Попробовать маскировку подключения</string>
- <string name="warning_option_try_ovpn">Попробовать стандартное подключение</string>
- <string name="vpn_error_establish">Android не удалось установить службу VPN.</string>
- <string name="root_permission_error">%s не может использовать такие функции, как точка доступа VPN или брандмауэр IPv6, без root-прав.</string>
- <string name="qs_enable_vpn">Запустить %s</string>
- <string name="version_update_found">Нажмите здесь, чтобы начать загрузку.</string>
- <string name="version_update_title">Найдена новая версия %s.</string>
- <string name="version_update_apk_description">Загрузка новой версии %s</string>
- <string name="version_update_download_title">Новая версия %s загружена.</string>
- <string name="version_update_download_description">Нажмите здесь, чтобы установить обновление.</string>
- <string name="version_update_error_pgp_verification">Ошибка проверки PGP: загрузка отклонена.</string>
- <string name="version_update_error">Обновление не выполнено.</string>
- <string name="version_update_error_permissions">Нет разрешения на установку приложения.</string>
- <string name="gateway_selection_title">Выбор расположения</string>
- <string name="gateway_selection_recommended_location">Рекомендуемое расположение</string>
- <string name="gateway_selection_recommended">Рекомендовано</string>
- <string name="gateway_selection_manually">Выбор вручную</string>
- <string name="gateway_selection_automatic_location">Автоматически использовать лучшее подключение</string>
- <string name="gateway_selection_automatic">Автоматически</string>
- <string name="reconnecting">Повторное подключение…</string>
- <string name="tor_starting">Запуск мостов для обхода цензуры…</string>
- <string name="tor_stopping">Остановка мостов</string>
- <string name="tor_started">Использовать мосты для обхода цензуры</string>
- <string name="log_conn_done_pt">Подключено к подключаемому транспорту</string>
- <string name="log_conn_pt">Подключение к подключаемому транспорту</string>
- <string name="log_conn_done">Подключено к ретранслятору</string>
- <string name="log_handshake">Согласование подключения с ретранслятором</string>
- <string name="log_handshake_done">Подключение с ретранслятором согласовано</string>
- <string name="log_onehop_create">Создание шифрованного подключения</string>
- <string name="log_requesting_status">Запрос консенсуса состояния сети</string>
- <string name="log_loading_status">Загрузка консенсуса состояния сети</string>
- <string name="log_loading_keys">Загрузка сертификатов</string>
- <string name="log_requesting_descriptors">Запрос дескрипторов ретранслятора</string>
- <string name="log_loading_descriptors">Загрузка дескрипторов ретранслятора</string>
- <string name="log_enough_dirinfo">Загружено достаточно информации для построения цепочек</string>
- <string name="log_ap_handshake_done">Согласование подключения с ретранслятором выполнено с построением цепочек</string>
- <string name="log_circuit_create">Создание цепочки Tor</string>
- <string name="log_done">Запущено</string>
- <string name="channel_name_tor_service">Служба мостов %s</string>
- <string name="channel_description_tor_service">Информирует об использовании мостов при конфигурации %s.</string>
- <string name="error_tor_timeout">Невозможно запустить мосты. Повторить попытку или продолжить безопасное подключение без маскировки, чтобы настроить %s?</string>
- <string name="retry_unobfuscated">Повтор без маскировки</string>
- <string name="hide">Скрыть</string>
- <string name="error_network_connection">%s не имеет подключения к интернету. Проверьте настройки Wi-Fi и сотовой связи.</string>
- <string name="censorship_circumvention">Обход цензуры</string>
- <string name="use_snowflake">Использовать Snowflake</string>
- <string name="snowflake_description">Защита процесса конфигурации от цензуры.</string>
- <string name="vpn_settings">Настройки VPN</string>
- <string name="prefer_udp">Использовать UDP, если доступно</string>
- <string name="prefer_udp_subtitle">UDP может быть быстрее и лучше для потоковой передачи, но работает не во всех сетях.</string>
- <string name="disabled_while_bridges_on">Отключено при использовании мостов.</string>
- <string name="hint_bridges">В настоящее время можно выбрать только местоположения, поддерживающие мосты.</string>
- <string name="option_disable_bridges">Отключить мосты</string>
- <string name="eip_state_insecure">Подключение небезопасно</string>
- <string name="connection_not_connected">Возможна утечка информации вашему интернет-провайдеру или в локальную сеть.</string>
- <string name="eip_state_no_network">Отсутствует рабочее подключение к интернету. Как только оно появится, вы будете автоматически подключены к</string>
- <string name="eip_state_blocking">%1$s блокирует весь интернет-трафик.</string>
- <string name="disabled_while_udp_on">Отключено при использовании UDP.</string>
- <string name="advanced_settings">Расширенные настройки</string>
- <string name="cancel_connection">Отключить</string>
- <string name="unknown_location">Неизвестное местоположение</string>
- <string name="splash_footer">Разработано LEAP</string>
- <string name="welcome">Добро пожаловать!</string>
- <string name="select_provider">Выберите провайдера</string>
- <string name="select_provider_description">При использовании VPN вы передаёте своё доверие от интернет-провайдера к VPN-провайдеру. Bitmask подключается только к тем провайдерам, которые имеют чистую историю защиты и отстаивания конфиденциальности.</string>
- <string name="provider_description_riseup">Riseup предоставляет инструменты онлайн-коммуникации для людей и групп, работающих над освободительными социальными изменениями. Мы — проект, направленный на создание демократических альтернатив и самоопределения путём контроля за безопасностью собственных средств связи.</string>
- <string name="next">Далее</string>
- <string name="add_provider_description">Bitmask позволяет подключаться к провайдерам, которые не публичны. Убедитесь, что вы знаете и доверяете провайдеру, которого добавляете.</string>
- <string name="add_provider_prompt">Введите здесь URL-адрес провайдера.</string>
- <string name="invite_code_provider_description">Bitmask позволяет использовать провайдеров с помощью приватного кода приглашения. </string>
- <string name="invite_code_provider_prompt">Введите ваш надежный код приглашения здесь.</string>
- <string name="qr_scanner_prompt">Сканировать QR-код</string>
- <string name="provider_description_calyx">Calyx — некоммерческая образовательная и исследовательская организация, занимающаяся изучением, тестированием, разработкой и внедрением технологий и инструментов обеспечения конфиденциальности для продвижения свободы слова, свободы самовыражения, гражданской активности и прав на неприкосновенность частной жизни в интернете и в индустрии мобильной связи.</string>
- <string name="title_circumvention_setup">Вам требуется обход цензуры?</string>
- <string name="circumvention_setup_description">Если вы живёте там, где интернет цензурируется, то можете использовать наши средства обхода цензуры для доступа ко всем услугам интернета. Это замедлит подключение!</string>
- <string name="circumvention_setup_hint">%s автоматически попытается подключить вас к интернету, используя различные технологии обхода. Параметры можно изменить в настройках.</string>
- <string name="use_standard_vpn">Использовать стандарт %s</string>
- <string name="use_circumvention_tech">Использовать технологию обхода (медленнее)</string>
- <string name="description_configure_provider">Для подключения к вашему провайдеру %1$s получает всю необходимую информацию о конфигурации. Это происходит только при первичной настройке.</string>
- <string name="description_configure_provider_circumvention">%1$s пытается получить все необходимые конфигурационные данные от провайдера. Это происходит только при первичной настройке. Вы выбрали использование технологии обхода, поэтому процесс может занять некоторое время.</string>
- <string name="details">Подробности</string>
- <string name="tor_status">Статус Tor</string>
- <string name="snowflake_status">Статус Snowflake</string>
- <string name="snowflake_started">Клиент Snowflake запущен</string>
- <string name="snowflake_negotiating_rendezvous_http">Согласование прокси Snowflake (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Согласование прокси Snowflake (amp cache)</string>
- <string name="snowflake_socks_error">Ошибка SOCKS Snowflake</string>
- <string name="snowflake_broker_success">Прокси Snowflake успешно согласованы</string>
- <string name="snowflake_sending_data">Отправка данных через Snowflake</string>
- <string name="title_upcoming_connection_request">Запрос на предстоящее подключение</string>
- <string name="title_upcoming_request">Предстоящие запросы</string>
- <string name="title_upcoming_request_summary">На следующих панелях Android запросит у вас разрешение в виде запроса на подключение и запроса на уведомление.</string>
- <string name="title_upcoming_connection_request_summary_custom">Принятие запроса на подключение важно для использования базовой функциональности %s.</string>
- <string name="title_upcoming_connection_request_summary">Что касается запроса на подключение, важно знать, что Bitmask сотрудничает только с надежными провайдерами, которые придерживаются лучших практик для VPN и имеют подтвержденную историю защиты данных и личных данных пользователей. Однако если вы вручную подключаетесь к непубличному провайдеру, убедитесь, что вы ему доверяете.</string>
- <string name="title_upcoming_notification_request_summary">Приняв запрос на включение уведомления, приложение будет работать в фоновом режиме и позволит вам видеть расход данных в центре уведомлений Android.
+ <string name="translation_project_text">Переводы приветствуются. Наш проект на Transifex: https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Сменить провайдера</string>
+ <string name="info">информация</string>
+ <string name="show_connection_details">Показать сведения о подключении</string>
+ <string name="connection_details">Сведения о подключении</string>
+ <string name="routes_info">Маршруты: %s</string>
+ <string name="routes_info6">Маршруты IPv6: %s</string>
+ <string name="error_empty_username">Имя пользователя не должно быть пустым</string>
+ <string name="cert_from_keystore">Получен сертификат \'%s\' из хранилища ключей</string>
+ <string name="provider_label">Провайдер:</string>
+ <string name="provider_label_none">Провайдер не настроен</string>
+ <string name="status_unknown">Статус неизвестен.</string>
+ <string name="eip_service_label">Зашифрованный доступ в интернет через VPN</string>
+ <string name="configuration_wizard_title">Выбрать провайдера</string>
+ <string name="add_provider">Добавить нового провайдера</string>
+ <string name="introduce_new_provider">Добавить нового провайдера</string>
+ <string name="save">Сохранить</string>
+ <string name="new_provider_uri">Доменное имя</string>
+ <string name="valid_url_entered">URL действителен</string>
+ <string name="not_valid_url_entered">Неправильный URL</string>
+ <string name="provider_details_title">Информация о провайдере</string>
+ <string name="use_anonymously_button">Использовать анонимно</string>
+ <string name="username_hint">имя пользователя</string>
+ <string name="username_ask">Введите имя пользователя</string>
+ <string name="password_ask">Введите пароль</string>
+ <string name="password_hint">пароль</string>
+ <string name="password_match">Пароли совпадают</string>
+ <string name="password_mismatch">Пароли не совпадают</string>
+ <string name="user_message">Сообщение пользователя</string>
+ <string name="about_fragment_title">О нас</string>
+ <string name="exclude_apps_fragment_title">Исключение приложений из VPN</string>
+ <string name="error_srp_math_error_user_message">Повторите попытку: ошибка сервера</string>
+ <string name="error_bad_user_password_user_message">Неправильное имя пользователя или пароль</string>
+ <string name="error_not_valid_password_user_message">Длина должна быть не менее 8 символов</string>
+ <string name="error_client_http_user_message">Повторите попытку: ошибка HTTP-клиента</string>
+ <string name="error_io_exception_user_message">Повторите попытку: ошибка ввода/вывода</string>
+ <string name="error_json_exception_user_message">Повторите попытку: некорректный ответ от сервера</string>
+ <string name="error_no_such_algorithm_exception_user_message">Алгоритм шифрования не найден. Обновите Android!</string>
+ <string name="signup_or_login_button">Регистрация/вход</string>
+ <string name="login_button">Войти</string>
+ <string name="login_to_profile">Войти в свой профиль</string>
+ <string name="logout_button">Выйти</string>
+ <string name="signup_button">Зарегистрироваться</string>
+ <string name="create_profile">Создать профиль</string>
+ <string name="setup_provider">Выбор провайдера</string>
+ <string name="setup_error_title">Ошибка конфигурации</string>
+ <string name="setup_error_configure_button">Настройка</string>
+ <string name="setup_error_close_button">Выход</string>
+ <string name="setup_error_text">Произошла ошибка при настройке %s с выбранным вами провайдером.\n\nВы можете выбрать повторную настройку или выйти и настроить провайдера при следующем запуске.</string>
+ <string name="setup_error_text_custom">Произошла ошибка в конфигурации %s.\n\nМожно изменить конфигурацию или выйти.</string>
+ <string name="server_unreachable_message">Сервер недоступен, попробуйте ещё раз.</string>
+ <string name="error.security.pinnedcertificate">Ошибка безопасности, обновите приложение или выберите другого провайдера.</string>
+ <string name="malformed_url">Похоже, %s не провайдер.</string>
+ <string name="certificate_error">%s не надёжный провайдер.</string>
+ <string name="service_is_down_error">Сервис недоступен.</string>
+ <string name="configuring_provider">Настройка провайдера</string>
+ <string name="downloading_certificate_message">Скачивание сертификата VPN</string>
+ <string name="updating_certificate_message">Обновление сертификата VPN</string>
+ <string name="login.riseup.warning">Пользователям Riseup потребуется создать отдельную учётную запись для использования VPN</string>
+ <string name="succesful_authentication_message">Аутентифицирован</string>
+ <string name="authentication_failed_message">Ошибка аутентификации</string>
+ <string name="registration_failed_message">Регистрация не выполнена</string>
+ <string name="eip_status_start_pending">Установка подключения</string>
+ <string name="eip_status_connecting">Подключение VPN</string>
+ <string name="eip_status_unsecured">Небезопасное подключение</string>
+ <string name="eip_status_secured">Безопасное подключение</string>
+ <string name="eip_cancel_connect_title">Отменить подключение?</string>
+ <string name="eip_cancel_connect_text">Идёт попытка подключения. Вы хотите её отменить?</string>
+ <string name="eip.warning.browser_inconsistency">Отключить VPN-подключение? При отключённой VPN ваша персональная информация может стать доступна провайдеру или в местной сети.</string>
+ <string name="eip_state_not_connected">Не работает! Подключение небезопасно!</string>
+ <string name="eip_state_connected">Безопасное подключение</string>
+ <string name="provider_problem">Похоже, проблема с провайдером.</string>
+ <string name="try_another_provider">Попробуйте сменить провайдера или свяжитесь с вашим.</string>
+ <string name="default_username">Анонимно</string>
+ <string name="logging_in">Вход…</string>
+ <string name="signing_up">Регистрация…</string>
+ <string name="vpn.button.turn.on">ВКЛ</string>
+ <string name="vpn.button.turn.off">ВЫКЛ</string>
+ <string name="vpn_button_turn_off_blocking">Остановить блокирование</string>
+ <string name="vpn_securely_routed">Ваш трафик безопасно маршрутизируется через:</string>
+ <string name="vpn_securely_routed_no_internet">Подключение к интернету отсутствует. Когда оно восстановится, мы безопасно перенаправим ваш трафик через:</string>
+ <string name="log_fragment_title">Журнал</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Открыть панель навигации</string>
+ <string name="navigation_drawer_close">Закрыть панель навигации</string>
+ <string name="action_example">Пример действия</string>
+ <string name="action_settings">Настройки</string>
+ <string name="void_vpn_establish">%s блокирует весь исходящий интернет-трафик.</string>
+ <string name="void_vpn_error_establish">Невозможно блокировать весь интернет-трафик.</string>
+ <string name="void_vpn_stopped">Прекращена блокировка всего исходящего интернет-трафика.</string>
+ <string name="void_vpn_title">Блокирование трафика</string>
+ <string name="update_provider_details">Обновление информации провайдера</string>
+ <string name="update_certificate">Обновление сертификата</string>
+ <string name="warning_eip_json_corrupted">Невозможно обновить конфигурацию провайдера.</string>
+ <string name="eip_json_corrupted_user_message">Невозможно обновить конфигурацию провайдера. Войдите, чтобы повторить попытку.</string>
+ <string name="warning_client_parsing_error_gateways">Невозможно распознать шлюзы провайдера. Они могут быть настроены неправильно.</string>
+ <string name="warning_corrupted_provider_details">Сохранённые сведения о провайдере повреждены. Можно либо обновить %s (рекомендуется), либо обновить сведения о провайдере с помощью коммерческого сертификата ЦС.</string>
+ <string name="warning_corrupted_provider_cert">Сохранённый сертификат провайдера недействителен. Вы можете либо обновить %s (рекомендуется), либо обновить сертификат провайдера используя коммерческий сертификат центра сертификации.</string>
+ <string name="warning_expired_provider_cert">Срок действия сохранённого сертификата провайдера истёк. Можно либо обновить %s (рекомендуется), либо обновить сертификат провайдера с помощью коммерческого сертификата ЦС.</string>
+ <string name="downloading_vpn_certificate_failed">Загрузка сертификата VPN не выполнена. Попробуйте ещё раз или выберите другого провайдера.</string>
+ <string name="vpn_certificate_is_invalid">Пришло время обновить сертификат VPN. Загрузите новый сертификат, чтобы обеспечить безопасность соединения. Это рутинное обновление.</string>
+ <string name="save_battery">Экономия батареи</string>
+ <string name="subtitle_save_battery">Отключено при использовании точки доступа VPN</string>
+ <string name="save_battery_message">Фоновые подключения перейдут в спящий режим на время неактивности вашего устройства.</string>
+ <string name="always_on_vpn">VPN всегда включена</string>
+ <string name="subtitle_always_on_vpn">Открыть системные настройки Android</string>
+ <string name="tethering">Точка доступа VPN</string>
+ <string name="ipv6Firewall">Блокировать IPv6</string>
+ <string name="require_root">Требуются права root</string>
+ <string name="show_experimental">Показать экспериментальные функции</string>
+ <string name="hide_experimental">Скрыть экспериментальные функции</string>
+ <string name="experimental_features">Экспериментальные функции</string>
+ <string name="tethering_enabled_message">Не забудьте сначала включить модем в <![CDATA[<b>системных настройках</b>]]>.</string>
+ <string name="tethering_message">Поделиться VPN с другими устройствами через:</string>
+ <string name="tethering_wifi">Точка доступа Wi-Fi</string>
+ <string name="tethering_usb">USB-модем</string>
+ <string name="tethering_bluetooth">Bluetooth-модем</string>
+ <string name="do_not_show_again">Не показывать снова</string>
+ <string name="always_on_vpn_user_message">Для включения постоянной VPN в настройках Android, нажмите значок конфигурации [img src] и переведите его во включённое состояние.</string>
+ <string name="always_on_blocking_vpn_user_message">Чтобы оптимально защитить конфиденциальность, вы также должны активировать функцию \'Блокировать подключения без VPN\'.</string>
+ <string name="donate_title">Пожертвование</string>
+ <string name="donate_default_message">Пожалуйста, сделайте пожертвование сегодня, если вы цените безопасное общение, простое как для конечного пользователя, так и для поставщика услуг.</string>
+ <string name="donate_message">LEAP зависит от пожертвований и грантов. Пожалуйста, сделайте пожертвование сегодня, если вы цените безопасное общение, простое как для конечного пользователя, так и для поставщика услуг.</string>
+ <string name="donate_button_remind_later">Напомнить позже</string>
+ <string name="donate_button_donate">Пожертвование</string>
+ <string name="obfuscated_connection">Использование маскировки подключения.</string>
+ <string name="obfuscated_connection_try">Попытка маскировки подключения.</string>
+ <string name="nav_drawer_obfuscated_connection">Использовать мосты</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Обход фильтрации VPN</string>
+ <string name="warning_exclude_apps_message">Будьте осторожны, исключая приложения из VPN. Это позволит раскрыть вашу личность и поставить под угрозу вашу безопасность.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d незащищённое приложение</item>
+ <item quantity="few">%d незащищённых приложения</item>
+ <item quantity="many">%d незащищённых приложений</item>
+ <item quantity="other">%d незащищённых приложений</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s не подключается. Возможно, что VPN-подключения блокируются. Попробовать подключиться с помощью маскировки подключения?</string>
+ <string name="warning_no_more_gateways_no_pt">%s не удалось подключиться. Повторить попытку?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s не подключается с помощью маскированного VPN-подключения. Попробовать подключиться с помощью стандартного VPN?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s не может подключиться к %2$s. Использовать автоматический выбор лучшего расположения?</string>
+ <string name="warning_option_try_best">Попробовать лучшее расположение</string>
+ <string name="warning_option_try_pt">Попробовать маскировку подключения</string>
+ <string name="warning_option_try_ovpn">Попробовать стандартное подключение</string>
+ <string name="vpn_error_establish">Android не удалось установить службу VPN.</string>
+ <string name="root_permission_error">%s не может использовать такие функции, как точка доступа VPN или брандмауэр IPv6, без root-прав.</string>
+ <string name="qs_enable_vpn">Запустить %s</string>
+ <string name="version_update_found">Нажмите здесь, чтобы начать загрузку.</string>
+ <string name="version_update_title">Найдена новая версия %s.</string>
+ <string name="version_update_apk_description">Загрузка новой версии %s</string>
+ <string name="version_update_download_title">Новая версия %s загружена.</string>
+ <string name="version_update_download_description">Нажмите здесь, чтобы установить обновление.</string>
+ <string name="version_update_error_pgp_verification">Ошибка проверки PGP: загрузка отклонена.</string>
+ <string name="version_update_error">Обновление не выполнено.</string>
+ <string name="version_update_error_permissions">Нет разрешения на установку приложения.</string>
+ <string name="gateway_selection_title">Выбор расположения</string>
+ <string name="gateway_selection_recommended_location">Рекомендуемое расположение</string>
+ <string name="gateway_selection_recommended">Рекомендовано</string>
+ <string name="gateway_selection_manually">Выбор вручную</string>
+ <string name="gateway_selection_automatic_location">Автоматически использовать лучшее подключение</string>
+ <string name="gateway_selection_automatic">Автоматически</string>
+ <string name="reconnecting">Повторное подключение…</string>
+ <string name="tor_starting">Запуск мостов для обхода цензуры…</string>
+ <string name="tor_stopping">Остановка мостов</string>
+ <string name="tor_started">Использовать мосты для обхода цензуры</string>
+ <string name="log_conn_done_pt">Подключено к подключаемому транспорту</string>
+ <string name="log_conn_pt">Подключение к подключаемому транспорту</string>
+ <string name="log_conn_done">Подключено к ретранслятору</string>
+ <string name="log_handshake">Согласование подключения с ретранслятором</string>
+ <string name="log_handshake_done">Подключение с ретранслятором согласовано</string>
+ <string name="log_onehop_create">Создание шифрованного подключения</string>
+ <string name="log_requesting_status">Запрос консенсуса состояния сети</string>
+ <string name="log_loading_status">Загрузка консенсуса состояния сети</string>
+ <string name="log_loading_keys">Загрузка сертификатов</string>
+ <string name="log_requesting_descriptors">Запрос дескрипторов ретранслятора</string>
+ <string name="log_loading_descriptors">Загрузка дескрипторов ретранслятора</string>
+ <string name="log_enough_dirinfo">Загружено достаточно информации для построения цепочек</string>
+ <string name="log_ap_handshake_done">Согласование подключения с ретранслятором выполнено с построением цепочек</string>
+ <string name="log_circuit_create">Создание цепочки Tor</string>
+ <string name="log_done">Запущено</string>
+ <string name="channel_name_tor_service">Служба мостов %s</string>
+ <string name="channel_description_tor_service">Информирует об использовании мостов при конфигурации %s.</string>
+ <string name="error_tor_timeout">Невозможно запустить мосты. Повторить попытку или продолжить безопасное подключение без маскировки, чтобы настроить %s?</string>
+ <string name="retry_unobfuscated">Повтор без маскировки</string>
+ <string name="hide">Скрыть</string>
+ <string name="error_network_connection">%s не имеет подключения к интернету. Проверьте настройки Wi-Fi и сотовой связи.</string>
+ <string name="censorship_circumvention">Обход цензуры</string>
+ <string name="use_snowflake">Использовать Snowflake</string>
+ <string name="snowflake_description">Защита процесса конфигурации от цензуры.</string>
+ <string name="vpn_settings">Настройки VPN</string>
+ <string name="prefer_udp">Использовать UDP, если доступно</string>
+ <string name="prefer_udp_subtitle">UDP может быть быстрее и лучше для потоковой передачи, но работает не во всех сетях.</string>
+ <string name="disabled_while_bridges_on">Отключено при использовании мостов.</string>
+ <string name="hint_bridges">В настоящее время можно выбрать только местоположения, поддерживающие мосты.</string>
+ <string name="option_disable_bridges">Отключить мосты</string>
+ <string name="eip_state_insecure">Подключение небезопасно</string>
+ <string name="connection_not_connected">Возможна утечка информации вашему интернет-провайдеру или в локальную сеть.</string>
+ <string name="eip_state_no_network">Отсутствует рабочее подключение к интернету. Как только оно появится, вы будете автоматически подключены к</string>
+ <string name="eip_state_blocking">%1$s блокирует весь интернет-трафик.</string>
+ <string name="disabled_while_udp_on">Отключено при использовании UDP.</string>
+ <string name="advanced_settings">Расширенные настройки</string>
+ <string name="cancel_connection">Отключить</string>
+ <string name="unknown_location">Неизвестное местоположение</string>
+ <string name="splash_footer">Разработано LEAP</string>
+ <string name="welcome">Добро пожаловать!</string>
+ <string name="select_provider">Выберите провайдера</string>
+ <string name="provider_description_riseup">Riseup предоставляет инструменты онлайн-коммуникации для людей и групп, работающих над освободительными социальными изменениями. Мы — проект, направленный на создание демократических альтернатив и самоопределения путём контроля за безопасностью собственных средств связи.</string>
+ <string name="next">Далее</string>
+ <string name="add_provider_description">Bitmask позволяет подключаться к провайдерам, которые не публичны. Убедитесь, что вы знаете и доверяете провайдеру, которого добавляете.</string>
+ <string name="add_provider_prompt">Введите здесь URL-адрес провайдера.</string>
+ <string name="invite_code_provider_description">Bitmask позволяет использовать провайдеров с помощью приватного кода приглашения. </string>
+ <string name="invite_code_provider_prompt">Введите ваш надежный код приглашения здесь.</string>
+ <string name="qr_scanner_prompt">Сканировать QR-код</string>
+ <string name="provider_description_calyx">Calyx — некоммерческая образовательная и исследовательская организация, занимающаяся изучением, тестированием, разработкой и внедрением технологий и инструментов обеспечения конфиденциальности для продвижения свободы слова, свободы самовыражения, гражданской активности и прав на неприкосновенность частной жизни в интернете и в индустрии мобильной связи.</string>
+ <string name="title_circumvention_setup">Вам требуется обход цензуры?</string>
+ <string name="circumvention_setup_description">Если вы живёте там, где интернет цензурируется, то можете использовать наши средства обхода цензуры для доступа ко всем услугам интернета. Это замедлит подключение!</string>
+ <string name="use_standard_vpn">Использовать стандарт %s</string>
+ <string name="use_circumvention_tech">Использовать технологию обхода (медленнее)</string>
+ <string name="description_configure_provider">Для подключения к вашему провайдеру %1$s получает всю необходимую информацию о конфигурации. Это происходит только при первичной настройке.</string>
+ <string name="description_configure_provider_circumvention">%1$s пытается получить все необходимые конфигурационные данные от провайдера. Это происходит только при первичной настройке. Вы выбрали использование технологии обхода, поэтому процесс может занять некоторое время.</string>
+ <string name="details">Подробности</string>
+ <string name="tor_status">Статус Tor</string>
+ <string name="snowflake_status">Статус Snowflake</string>
+ <string name="snowflake_started">Клиент Snowflake запущен</string>
+ <string name="title_upcoming_connection_request">Запрос на предстоящее подключение</string>
+ <string name="title_upcoming_request">Предстоящие запросы</string>
+ <string name="title_upcoming_request_summary">На следующих панелях Android запросит у вас разрешение в виде запроса на подключение и запроса на уведомление.</string>
+ <string name="title_upcoming_connection_request_summary_custom">Принятие запроса на подключение важно для использования базовой функциональности %s.</string>
+ <string name="title_upcoming_connection_request_summary">Что касается запроса на подключение, важно знать, что Bitmask сотрудничает только с надежными провайдерами, которые придерживаются лучших практик для VPN и имеют подтвержденную историю защиты данных и личных данных пользователей. Однако если вы вручную подключаетесь к непубличному провайдеру, убедитесь, что вы ему доверяете.</string>
+ <string name="title_upcoming_notification_request_summary">Приняв запрос на включение уведомления, приложение будет работать в фоновом режиме и позволит вам видеть расход данных в центре уведомлений Android.
</string>
- <string name="title_upcoming_notifications_request">Запрос на предстоящие уведомления</string>
- <string name="title_setup_success">Всё готово!</string>
- <string name="setup_success_description">Нажмите кнопку ниже для подключения</string>
- <string name="permission_rejected">Запрос на разрешение отклонён.</string>
- <string name="login_not_supported">Текущая версия приложения не поддерживает возможность входа, которая необходима для обновления сертификата VPN для этого провайдера.</string>
- <string name="select_language">Выберите язык</string>
- <string name="syntax_check">Проверка синтаксиса:</string>
- <string name="validation_status_success">Хорошо</string>
- <string name="validation_status_failure">Недопустимый</string>
- <string name="enter_invite_code">Введите код приглашения</string>
- <string name="scan_qr_code">Сканировать QR-код</string>
- <string name="invalid_code"> Неверный код</string>
- <string name="automatic_bridge">Автоматически (рекомендуется)</string>
- <string name="automatic_bridge_description">Подключение будет осуществляться с использованием наилучших доступных мостов и протоколов.</string>
- <string name="manual_bridge">Ручная конфигурация</string>
- <string name="manual_bridge_description">Выбор приватных мостов и определенных протоколов</string>
- <string name="censorship_circumvention_description">Ручная настройка требует технических знаний. Действуйте с осторожностью.</string>
- <string name="discovery">Дискавери</string>
- <string name="discovery_description">Цензоры могут блокировать получение важной информации о конфигурации от вашего провайдера. Выберите вариант обхода блокировки.</string>
- <string name="automatically_select">Автоматический выбор</string>
- <string name="invite_proxy">Приглашение-прокси</string>
- <string name="tunnelling">Туннель</string>
- <string name="tunnelling_description">Цензоры могут блокировать доступ к свободному интернету. Выберите вариант обхода блокировки.</string>
- <string name="port_hopping">Переход через порт</string>
- <string name="port_hopping_description">Цензоры используют анализ трафика, чтобы блокировать доступ к открытому интернету. Переход через порт может усложнить им эту задачу.</string>
+ <string name="title_upcoming_notifications_request">Запрос на предстоящие уведомления</string>
+ <string name="title_setup_success">Всё готово!</string>
+ <string name="setup_success_description">Нажмите кнопку ниже для подключения</string>
+ <string name="permission_rejected">Запрос на разрешение отклонён.</string>
+ <string name="login_not_supported">Текущая версия приложения не поддерживает возможность входа, которая необходима для обновления сертификата VPN для этого провайдера.</string>
+ <string name="select_language">Выберите язык</string>
+ <string name="syntax_check">Проверка синтаксиса:</string>
+ <string name="validation_status_success">Хорошо</string>
+ <string name="validation_status_failure">Недопустимый</string>
+ <string name="enter_invite_code">Введите код приглашения</string>
+ <string name="invalid_code"> Неверный код</string>
+ <string name="automatic_bridge">Автоматически (рекомендуется)</string>
+ <string name="automatic_bridge_description">Подключение будет осуществляться с использованием наилучших доступных мостов и протоколов.</string>
+ <string name="manual_bridge">Ручная конфигурация</string>
+ <string name="manual_bridge_description">Выбор приватных мостов и определенных протоколов</string>
+ <string name="censorship_circumvention_description">Ручная настройка требует технических знаний. Действуйте с осторожностью.</string>
+ <string name="discovery">Дискавери</string>
+ <string name="discovery_description">Цензоры могут блокировать получение важной информации о конфигурации от вашего провайдера. Выберите вариант обхода блокировки.</string>
+ <string name="automatically_select">Автоматический выбор</string>
+ <string name="invite_proxy">Приглашение-прокси</string>
+ <string name="tunnelling">Туннель</string>
+ <string name="tunnelling_description">Цензоры могут блокировать доступ к свободному интернету. Выберите вариант обхода блокировки.</string>
+ <string name="port_hopping">Переход через порт</string>
+ <string name="port_hopping_description">Цензоры используют анализ трафика, чтобы блокировать доступ к открытому интернету. Переход через порт может усложнить им эту задачу.</string>
</resources>
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 7fb0690c..79489508 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -1,267 +1,271 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Yeniden dene</string>
- <string name="repository_url_text">Kaynak kodlar https://0xacab.org/leap/bitmask_android adresinde bulunabilir.</string>
- <string name="leap_tracker">Hata izleme sistemi https://0xacab.org/leap/bitmask_android/issues adresinde bulunabilir.</string>
- <string name="translation_project_text">Çevirileri minnettarlıkla kabul ederiz. Transifex projemizi https://www.transifex.com/projects/p/bitmask/ adresinde bulabilirsiniz.</string>
- <string name="switch_provider_menu_option">Hizmet sağlayıcı değiştir</string>
- <string name="info">bilgiler</string>
- <string name="show_connection_details">Bağlantı bilgilerini görüntüle</string>
- <string name="connection_details">Bağlantı bilgileri</string>
- <string name="routes_info">Yollar: %s</string>
- <string name="routes_info6">IPv6 yolları: %s</string>
- <string name="error_empty_username">Kullanıcı adı boş bırakılamaz.</string>
- <string name="cert_from_keystore">Anahtar deposundan \'%s\' sertifikası alındı</string>
- <string name="provider_label">Hizmet sağlayıcı:</string>
- <string name="provider_label_none">Herhangi bir hizmet sağlayıcı yapılandırılmamış</string>
- <string name="status_unknown">Durum bilinmiyor.</string>
- <string name="eip_service_label">Şifreli VPN İnternet erişimi</string>
- <string name="configuration_wizard_title">Bir hizmet sağlayıcı seçin</string>
- <string name="add_provider">Hizmet sağlayıcı ekle</string>
- <string name="introduce_new_provider">Yeni bir hizmet sağlayıcı ekle</string>
- <string name="save">Kaydet</string>
- <string name="new_provider_uri">Etki alanı adı</string>
- <string name="valid_url_entered">Adres geçerli</string>
- <string name="not_valid_url_entered">Adres biçimi hatalı</string>
- <string name="provider_details_title">Hizmet sağlayıcı bilgileri</string>
- <string name="use_anonymously_button">Anonim olarak kullan</string>
- <string name="username_hint">kullanıcı adı</string>
- <string name="username_ask">Lütfen kullanıcı adınızı yazın</string>
- <string name="password_ask">Lütfen parolanızı yazın</string>
- <string name="password_hint">parola</string>
- <string name="password_match">Parola ile onayı aynı</string>
- <string name="password_mismatch">Parolalar ile onayı aynı değil</string>
- <string name="user_message">Kullanıcı iletisi</string>
- <string name="about_fragment_title">Hakkında</string>
- <string name="exclude_apps_fragment_title">VPN kullanmayacak uygulamalar</string>
- <string name="error_srp_math_error_user_message">Yeniden dene: Sunucu matematik hatası</string>
- <string name="error_bad_user_password_user_message">Kullanıcı adı ya da parola yanlış</string>
- <string name="error_not_valid_password_user_message">En az 8 karakter uzunluğunda olmalı</string>
- <string name="error_client_http_user_message">Yeniden deneyin: İstemci HTTP hatası</string>
- <string name="error_io_exception_user_message">Yeniden deneyin: Giriş/çıkış hatası</string>
- <string name="error_json_exception_user_message">Yeniden deneyin: Sunucudan alınan yanıt bozuk</string>
- <string name="error_no_such_algorithm_exception_user_message">Şifreleme algoritması bulunamadı. Lütfen Android sürümünü yükseltin!</string>
- <string name="signup_or_login_button">Hesap/oturum aç</string>
- <string name="login_button">Oturum aç</string>
- <string name="login_to_profile">Profil oturumu aç</string>
- <string name="logout_button">Oturumu kapat</string>
- <string name="signup_button">Hesap aç</string>
- <string name="create_profile">Profil oluştur</string>
- <string name="setup_provider">Hizmet sağlayıcıyı ayarla</string>
- <string name="setup_error_title">Yapılandırma hatası</string>
- <string name="setup_error_configure_button">Yapılandır</string>
- <string name="setup_error_close_button">Çık</string>
- <string name="setup_error_text">Seçtiğiniz hizmet sağlayıcıda %s yapılandırırken bir sorun çıktı.\n\nHizmet sağlayıcıyı yeniden yapılandırmayı ya da çıkıp bir sonraki açılışta hizmet sağlayıcı yapılandırmayı seçebilirsiniz.</string>
- <string name="setup_error_text_custom">%s yapılandırılırken bir sorun çıktı.\n\nYeniden yapılandırmayı ya da çıkmayı seçebilirsiniz.</string>
- <string name="server_unreachable_message">Sunucuya ulaşılamıyor. Lütfen yeniden deneyin.</string>
- <string name="error.security.pinnedcertificate">Güvenlik hatası. Uygulamayı yükseltin veya başka bir hizmet sağlayıcı seçin.</string>
- <string name="malformed_url">%s bir hizmet sağlayıcısı gibi görünmüyor.</string>
- <string name="certificate_error">Bu güvenilir bir %s hizmet sağlayıcısı değil.</string>
- <string name="service_is_down_error">Hizmet çalışmıyor.</string>
- <string name="configuring_provider">Hizmet sağlayıcı yapılandırılıyor</string>
- <string name="incorrectly_downloaded_certificate_message">Anonim sertifikanız indirilmedi</string>
- <string name="downloading_certificate_message">VPN sertifikası indiriliyor</string>
- <string name="updating_certificate_message">VPN sertifikası güncelleniyor</string>
- <string name="login.riseup.warning">Riseup kullanıcıların VPN hizmetini kullanabilmesi için ayrı bir hesap oluşturmaları gerekir</string>
- <string name="succesful_authentication_message">Kimliği doğrulanmış</string>
- <string name="authentication_failed_message">Kimlik doğrulanamadı</string>
- <string name="registration_failed_message">Hesap açılamadı</string>
- <string name="eip_status_start_pending">Bağlantı kuruluyor</string>
- <string name="eip_status_connecting">VPN bağlantısı kuruluyor</string>
- <string name="eip_status_unsecured">Güvenli olmayan bağlantı</string>
- <string name="eip_status_secured">Güvenli bağlantı</string>
- <string name="eip_cancel_connect_title">Bağlantı iptal edilsin mi?</string>
- <string name="eip_cancel_connect_text">Sürmekte olan bir bağlantı kurma girişimi var. İptal etmek istediğinize emin misiniz?</string>
- <string name="eip.warning.browser_inconsistency">VPN bağlantısını kapatmak istiyor musunuz? VPN kapalıyken, kişisel bilgileriniz Internet hizmeti sağlayıcınıza veya yerel ağınıza sızabilir.</string>
- <string name="eip_state_not_connected">Çalışmıyor! Bağlantı güvenli değil!</string>
- <string name="eip_state_connected">Bağlantı güvenli</string>
- <string name="provider_problem">Hizmet sağlayıcı ile ilgili bir sorun var gibi görünüyor.</string>
- <string name="try_another_provider">Lütfen başka bir hizmet sağlayıcıyı deneyin ya da sizinkiyle bağlantı kurun.</string>
- <string name="default_username">Anonim</string>
- <string name="logging_in">Oturum açılıyor</string>
- <string name="signing_up">Hesap açılıyor</string>
- <string name="vpn.button.turn.on">Aç</string>
- <string name="vpn.button.turn.off">Kapat</string>
- <string name="vpn_button_turn_off_blocking">Engellemeyi durdur</string>
- <string name="vpn_securely_routed">Trafiğiniz güvenli bir şekilde şuradan yönlendiriliyor:</string>
- <string name="vpn_securely_routed_no_internet">İnternet bağlantısı algılanamadı. Geri döndüğünde trafiğinizi güvenli bir şekilde yönlendireceğiz:</string>
- <string name="log_fragment_title">Günlük</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Gezinme çekmecesini aç</string>
- <string name="navigation_drawer_close">Gezinme çekmecesini kapat</string>
- <string name="action_example">Örnek işlem</string>
- <string name="action_settings">Ayarlar</string>
- <string name="void_vpn_establish">%s tüm giden internet trafiğini engeller.</string>
- <string name="void_vpn_error_establish">Tüm İnternet trafiği engellenemedi.</string>
- <string name="void_vpn_stopped">Tüm giden İnternet trafiğinin engellenmesi durduruldu.</string>
- <string name="void_vpn_title">Trafik engelleme</string>
- <string name="update_provider_details">Hizmet sağlayıcı bilgilerini güncelle</string>
- <string name="update_certificate">Sertifikayı güncelle</string>
- <string name="warning_eip_json_corrupted">Hizmet sağlayıcı yapılandırması güncellenemedi.</string>
- <string name="eip_json_corrupted_user_message">Hizmet sağlayıcı yapılandırması güncellenemedi. Yeniden denemek için oturum açın.</string>
- <string name="warning_client_parsing_error_gateways">Hizmet sağlayıcı ağ geçitleri tanınamadı. Ağ geçitleri hatalı yapılandırılmış olabilir.</string>
- <string name="warning_corrupted_provider_details">Kaydedilmiş hizmet sağlayıcı bilgileri bozuk. %s güncellemeyi (önerilir) ya da ticari bir CA sertifikası kullanarak hizmet sağlayıcı bilgilerini güncellemeyi seçebilirsiniz.</string>
- <string name="warning_corrupted_provider_cert">Kaydedilmiş hizmet sağlayıcı sertifikası geçersiz. %s güncellemeyi (önerilir) ya da ticari bir CA sertifikası kullanarak hizmet sağlayıcı sertifikasını güncellemeyi seçebilirsiniz.</string>
- <string name="warning_expired_provider_cert">Kaydedilmiş hizmet sağlayıcı sertifikasının süresi dolmuş. %s güncellemeyi (önerilir) ya da ticari bir CA sertifikası kullanarak hizmet sağlayıcı sertifikasını güncellemeyi seçebilirsiniz.</string>
- <string name="downloading_vpn_certificate_failed">VPN sertifikası indirilemedi. Yeniden deneyin ya da başka bir hizmet sağlayıcı seçin.</string>
- <string name="vpn_certificate_is_invalid">VPN sertifikanızı yenileme zamanınız geldi. Bağlantınızı güvende tutmak için yeni bir sertifika indirin. Bu güncelleme belirli aralıklarla yapılan normal bir işlemdir.</string>
- <string name="vpn_certificate_user_message">VPN sertifikası geçersiz. Lütfen yeni bir sertifika indirmek için oturum açın.</string>
- <string name="save_battery">Güç tasarrufu</string>
- <string name="subtitle_save_battery">VPN erişim noktası açıkken devre dışı</string>
- <string name="save_battery_message">Telefonunuz etkin olmadığında, arka plan veri bağlantıları hazırda beklemeye geçer.</string>
- <string name="always_on_vpn">Her zaman açık VPN</string>
- <string name="subtitle_always_on_vpn">Android sistem ayarlarını aç</string>
- <string name="tethering">VPN erişim noktası</string>
- <string name="ipv6Firewall">IPv6 engellensin</string>
- <string name="require_root">Yönetici yetkileri gerekir</string>
- <string name="show_experimental">Deneysel özellikler görüntülensin</string>
- <string name="hide_experimental">Deneysel özellikler gizlensin</string>
- <string name="experimental_features">Deneysel özellikler</string>
- <string name="tethering_enabled_message">Lütfen önce <![CDATA[<b>sistem ayarlarından</b>]]> mobil erişim noktasını etkinleştirdiğinizden emin olun.</string>
- <string name="tethering_message">VPN bağlantısını diğer aygıtlarla şununla paylaş:</string>
- <string name="tethering_wifi">Wi-Fi erişim noktası</string>
- <string name="tethering_usb">USB paylaşımı</string>
- <string name="tethering_bluetooth">Bluetooth paylaşımı</string>
- <string name="do_not_show_again">Bir daha görüntülenmesin</string>
- <string name="always_on_vpn_user_message">Her zaman açık VPN sunmak için Android VPN ayarlarında yapılandır simgesine [img src] tıklayın ve anahtarı açık konuma getirin. </string>
- <string name="always_on_blocking_vpn_user_message">Gizliliğinizi en iyi şekilde korumak için, \"VPN kullanmayan bağlantılar engellensin\" seçeneğini de etkinleştirmelisiniz.</string>
- <string name="donate_title">Bağış yapın</string>
- <string name="donate_default_message">Hem son kullanıcılar hem de hizmet sağlayıcılar için kolay ve güvenli iletişime önem veriyorsanız, lütfen bağış yapın.</string>
- <string name="donate_message">LEAP hibe ve bağışlara güveniyor. Hem son kullanıcılar hem de hizmet sağlayıcılar için kolay ve güvenli iletişime önem veriyorsanız, lütfen bağış yapın.</string>
- <string name="donate_button_remind_later">Beni hatırla</string>
- <string name="donate_button_donate">Bağış yapın</string>
- <string name="obfuscated_connection">Karartılmış bağlantı kullanılıyor.</string>
- <string name="obfuscated_connection_try">Karartılmış bir bağlantı deneniyor.</string>
- <string name="nav_drawer_obfuscated_connection">Köprüler kullanılsın</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">VPN süzgeçleri aşılsın</string>
- <string name="warning_exclude_apps_message">Uygulamaları VPN bağlantısı dışında tutarken dikkatli olun. Bu durum kimliğinizin açığa çıkmasına ve güvenliğinizin tehlikeye düşmesine neden olabilir.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d korunmayan uygulama</item>
- <item quantity="other">%d korunmayan uygulama</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s bağlantı kuramadı. VPN bağlantıları engelleniyor olabilir. Karartılmış bağlantıları kullanarak bağlantı kurmayı denemek ister misiniz?</string>
- <string name="warning_no_more_gateways_no_pt">%s bağlantı kuramadı. Yeniden denemek ister misiniz?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s karartılmış VPN bağlantılarını kullanarak bağlantı kuramadı. Standart VPN bağlantıları kullanarak bağlantı kurmayı denemek ister misiniz?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s ile %2$s bağlantısı kurulamadı. En iyi konum ile bağlantı kurulmaya çalışılsın mı?</string>
- <string name="warning_option_try_best">En iyi konum denensin</string>
- <string name="warning_option_try_pt">Karartılmış bağlantıyı dene</string>
- <string name="warning_option_try_ovpn">Standart bağlantıyı dene</string>
- <string name="vpn_error_establish">Android, VPN hizmetini başlatamadı.</string>
- <string name="root_permission_error">%s, VPN erişim noktası ya da IPv6 güvenlik duvarı özelliklerini yönetici yetkileri olmadan çalıştıramıyor.</string>
- <string name="qs_enable_vpn">%s başlat</string>
- <string name="version_update_found">İndirmeyi başlatmak için buraya dokunun.</string>
- <string name="version_update_title">Yeni bir %s sürümü yayınlanmış.</string>
- <string name="version_update_apk_description">Yeni %s sürümü indiriliyor.</string>
- <string name="version_update_download_title">Yeni %s sürümü indirildi.</string>
- <string name="version_update_download_description">Güncellemeyi kurmak için buraya dokunun.</string>
- <string name="version_update_error_pgp_verification">PGP doğrulama sorunu. İndirme yok sayılıyor.</string>
- <string name="version_update_error">Güncellenemedi.</string>
- <string name="version_update_error_permissions">Uygulamayı kurma izni yok.</string>
- <string name="gateway_selection_title">Konum seçin</string>
- <string name="gateway_selection_recommended_location">Önerilen konum</string>
- <string name="gateway_selection_recommended">Önerilen</string>
- <string name="gateway_selection_manually">El ile seçim</string>
- <string name="gateway_selection_automatic_location">Otomatik olarak en iyi bağlantı kullanılsın</string>
- <string name="gateway_selection_automatic">Otomatik</string>
- <string name="reconnecting">Yeniden bağlantı kuruluyor…</string>
- <string name="tor_starting">Engellemeyi aşmak için köprüler başlatılıyor…</string>
- <string name="tor_stopping">Köprüler durduruluyor</string>
- <string name="tor_started">Engellemeyi aşmak için köprüler kullanılıyor</string>
- <string name="log_conn_done_pt">Değiştirilebilir taşıyıcı ile bağlantı kuruldu</string>
- <string name="log_conn_pt">Değiştirilebilir taşıyıcı ile bağlantı kuruluyor</string>
- <string name="log_conn_done">Bir aktarıcı ile bağlantı kuruldu</string>
- <string name="log_handshake">Bir aktarıcı ile bağlantı kuruluyor</string>
- <string name="log_handshake_done">Aktarıcı ile bağlantı kuruldu</string>
- <string name="log_onehop_create">Bir şifrelenmiş dizin bağlantısı kuruluyor</string>
- <string name="log_requesting_status">Ağ durumu uzlaşması soruluyor</string>
- <string name="log_loading_status">Ağ durumu uzlaşması yükleniyor</string>
- <string name="log_loading_keys">Otorite sertifikaları yükleniyor</string>
- <string name="log_requesting_descriptors">Aktarıcı tanımlayıcıları soruluyor</string>
- <string name="log_loading_descriptors">Aktarıcı tanımlayıcıları yükleniyor</string>
- <string name="log_enough_dirinfo">Devreleri kurmak için yeterli dizin bilgisi yüklendi</string>
- <string name="log_ap_handshake_done">Devreleri kurmak için bir aktarıcıyla uzlaşma tamamlandı</string>
- <string name="log_circuit_create">Bir Tor devresi kuruluyor</string>
- <string name="log_done">Çalışıyor</string>
- <string name="channel_name_tor_service">%s köprü hizmeti</string>
- <string name="channel_description_tor_service">%s yapılandırması sırasında köprü kullanımı hakkında bilgi verir.</string>
- <string name="error_tor_timeout">Köprüler başlatılamadı. Yeniden denemeyi ya da %s yapılandırması için karartılmamış güvenli bağlantı kullanmayı seçebilirsiniz.</string>
- <string name="retry_unobfuscated">Karartmadan yeniden dene</string>
- <string name="hide">Gizle</string>
- <string name="error_network_connection">%s İnternet bağlantısına yok. Lütfen Wi-Fi ve hücresel veri ayarlarınızı denetleyin.</string>
- <string name="censorship_circumvention">Engellemeyi aşma</string>
- <string name="use_snowflake">Snowflake kullanılsın</string>
- <string name="snowflake_description">Engellemeye karşı yapılandırma sürecini korur.</string>
- <string name="vpn_settings">VPN ayarları</string>
- <string name="prefer_udp">Olabiliyorsa UDP kullanılsın</string>
- <string name="prefer_udp_subtitle">UDP akışlar için daha iyi ve daha hızlı olabilir, ancak tüm ağlarda çalışmaz.</string>
- <string name="disabled_while_bridges_on">Köprüler kullanılırken devre dışıdır.</string>
- <string name="hint_bridges">Şu an yalnızca köprüleri destekleyen konumlar seçilebilir</string>
- <string name="option_disable_bridges">Köprüleri devre dışı bırak</string>
- <string name="eip_state_insecure">Güvenli olmayan bağlantı</string>
- <string name="connection_not_connected">Bilgileriniz İnternet hizmeti sağlayıcınıza ya da yerel ağınıza sızıyor olabilir.</string>
- <string name="eip_state_no_network">Çalışan bir İnternet bağlantınız yok. Geri geldiğinde, bağlantınız otomatik olarak kurulacak.</string>
- <string name="eip_state_blocking">%1$s tüm İnternet trafiğini engelliyor.</string>
- <string name="disabled_while_udp_on">UDP açıkken devre dışı.</string>
- <string name="advanced_settings">Gelişmiş ayarlar</string>
- <string name="cancel_connection">Bağlantıyı kes</string>
- <string name="unknown_location">Konum bilinmiyor</string>
- <string name="splash_footer">LEAP tarafından geliştirildi</string>
- <string name="welcome">Hoş geldiniz!</string>
- <string name="select_provider">Hizmet sağlayıcınızı seçin</string>
- <string name="select_provider_description">VPN kullandığınızda, İnternet hizmeti sağlayıcınızına olan güveninizi VPN hizmeti sağlayıcınıza aktarmış olursunuz. Bitmask yalnızca temiz bir gizlilik koruma ve savunma geçmişi olan hizmet sağlayıcılar ile bağlantı kurar.</string>
- <string name="provider_description_riseup">Riseup özgürleştirici toplumsal değişim üzerine çalışan kişi ve gruplara çevrim içi iletişim araçları sağlıyor. Projemiz, demokratik alternatifleri oluşturmayı ve kendi denetimimiz altında güvenli iletişim araçları geliştirmeyi amaçlıyor.</string>
- <string name="next">Sonraki</string>
- <string name="add_provider_description">Bitmask, herkese açık olarak listelenmeyen hizmet sağlayıcılara bağlanmanızı sağlar. Eklediğiniz hizmet sağlayıcıyı bildiğinizden ve güvendiğinizden emin olun.</string>
- <string name="add_provider_prompt">Hizmet sağlayıcının adresini buraya yazın.</string>
- <string name="invite_code_provider_description">Bitmask bir özel davet kodu ile hizmet sağlayıcılara bağlanmanızı sağlar.</string>
- <string name="invite_code_provider_prompt">Güvenli davet Kodunuzu buraya yazın.</string>
- <string name="qr_scanner_prompt">Kare kodu tara</string>
- <string name="provider_description_calyx">Calyx, İnternet ve mobil iletişim endüstrisinde konuşma özgürlüğü, ifade özgürlüğü, sivil katılım ve gizlilik haklarını özendirmek için gizlilik teknolojileri üzerine çalışan, bunları sınayan, geliştiren ve gerçekleştiren kâr amacı gütmeyen bir eğitim ve araştırma örgütüdür.</string>
- <string name="title_circumvention_setup">Engellemeyi aşmanız mı gerekiyor?</string>
- <string name="circumvention_setup_description">İnternet\'in engellendiği bir yerde yaşıyorsanız, tüm İnternet hizmetlerine erişmek için engellemeyi aşma seçeneklerimizi kullanabilirsiniz. Bu seçenekler bağlantınızı yavaşlatır!</string>
- <string name="circumvention_setup_hint">%s otomatik olarak çeşitli engellemeyi aşma teknolojileri kullanarak sizi İnternet\'e ulaştırmaya çalışır. Gelişmiş ayarlar bölümünden ince ayarları yapabilirsiniz.</string>
- <string name="use_standard_vpn">Standart %s kullanılsın</string>
- <string name="use_circumvention_tech">Engellemeyi aşma teknolojisi kullanılsın (daha yavaş)</string>
- <string name="description_configure_provider">%1$s, hizmet sağlayıcınızla bağlantı kurmak için gerekli yapılandırma bilgilerini alıyor. Bu işlem yalnızca ilk kurulum sırasında yapılır.</string>
- <string name="description_configure_provider_circumvention">%1$s, hizmet sağlayıcıdan gerekli yapılandırma verilerini almaya çalışıyor. Bu işlem yalnızca ilk kurulum sırasında yapılır. Engellemeyi aşma teknolojisini kullanmayı seçtiniz, bu yüzden işlemin yapılması biraz zaman alabilir.</string>
- <string name="details">Ayrıntılar</string>
- <string name="tor_status">Tor durumu</string>
- <string name="snowflake_status">Snowflake durumu</string>
- <string name="snowflake_started">Snowflake istemcisi başlatıldı</string>
- <string name="snowflake_negotiating_rendezvous_http">Snowflake vekil sunucusuna erişilmeye çalışılıyor (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Snowflake vekil sunucusuna erişilmeye çalışılıyor (amp ön belleği)</string>
- <string name="snowflake_socks_error">Snowflake SOCKS hatası</string>
- <string name="snowflake_broker_success">Snowflake vekil sunucusuna erişildi</string>
- <string name="snowflake_sending_data">Veriler Snowflake ile gönderiliyor</string>
- <string name="title_upcoming_connection_request">Gelen bağlantı isteği</string>
- <string name="title_upcoming_request">İstenecek izinler</string>
- <string name="title_upcoming_request_summary">Sonraki panolarda Android sizden Bağlantı isteği ve Bildirim isteği ile izninizi isteyecek.</string>
- <string name="title_upcoming_connection_request_summary_custom">Temel %s işlevselliğini sağlamak için bağlantı isteğinin kabul edilmesi önemlidir.</string>
- <string name="title_upcoming_connection_request_summary">Bağlantı isteği için, Bitmask uygulamasının yalnızca VPN uygulamaları için iyi örnekleri uygulayan ve kullanıcıların verileri ile kimliklerini koruma konusunda doğrulanabilir bir geçmişi olan güvenilir hizmet sağlayıcılarla işbirliği yaptığını bilmeniz önemlidir. Bununla birlikte, herkese açık olmayan bir hizmet sağlayıcıya el ile bağlanıyorsanız, onun güvenilir olduğundan emin olun.</string>
- <string name="title_upcoming_notification_request_summary">Bildirim isteğini kabul etmek, uygulamanın arka planda çalışmasına yol açar ve Android bildirim merkezinde veri kullanımınızı görmenizi sağlar.</string>
- <string name="title_upcoming_notifications_request">Gelen bildirim isteği</string>
- <string name="title_setup_success">Hazırsınız!</string>
- <string name="setup_success_description">Bağlanmak için aşağıdaki düğmeye tıklayın</string>
- <string name="permission_rejected">İzin isteği reddedildi</string>
- <string name="login_not_supported">Bu hizmet sağlayıcı için VPN sertifikanızı güncellemeniz gerektiğinden geçerli uygulama sürümü oturum açmayı desteklemiyor. </string>
- <string name="select_language">Dil seçin</string>
- <string name="syntax_check">Yazım denetimi:</string>
- <string name="validation_status_success">İyi</string>
- <string name="validation_status_failure">Kötü</string>
- <string name="enter_invite_code">Davet kodunu yazın</string>
- <string name="scan_qr_code">Kare kodu tara</string>
- <string name="invalid_code">Kod geçersiz</string>
- <string name="automatic_bridge">Otomatik (önerilen)</string>
- <string name="automatic_bridge_description">Bağlantı kullanılabilecek en iyi köprüler ve iletişim kuralları ile kurulmaya çalışılacak.</string>
- <string name="manual_bridge">El ile yapılandırma</string>
- <string name="manual_bridge_description">Özel köprüler ve belirli iletişim kuralları seçin</string>
- <string name="censorship_circumvention_description">El ile yapılandırma için teknik bilgi gereklidir. Dikkatli davranın.</string>
- <string name="discovery">Keşif</string>
- <string name="discovery_description">Sansür uygulayıcılar, hizmet sağlayıcınızın sunduğu kritik yapılandırma bilgisinin keşfini engelleyebilir. Engellemeleri aşmak için bir seçenek seçin.</string>
- <string name="automatically_select">Otomatik olarak seçilsin</string>
- <string name="invite_proxy">Vekil sunucu daveti</string>
- <string name="tunnelling">Tünelleme</string>
- <string name="tunnelling_description">Sansür uygulayıcılar açık internete erişimi engelleyebilir. Engellemeleri aşmak için bir seçenek seçin.</string>
- <string name="port_hopping">Bağlantı noktası değiştirme</string>
- <string name="port_hopping_description">Sansür uygulayıcılar açık internete erişimi engellemek için trafik analizini kullanırlar. Bağlantı noktası değiştirme bunu onlar için zorlaştırır.</string>
+ <string name="retry">Yeniden dene</string>
+ <string name="repository_url_text">Kaynak kodlar https://0xacab.org/leap/bitmask_android adresinde bulunabilir.</string>
+ <string name="leap_tracker">Hata izleme sistemi https://0xacab.org/leap/bitmask_android/issues adresinde bulunabilir.</string>
+ <string name="translation_project_text">Çevirileri minnettarlıkla kabul ederiz. Çeviri projemizi https://localizationlab.weblate.cloud/projects/bitmask/ adresinde bulabilirsiniz.</string>
+ <string name="switch_provider_menu_option">Hizmet sağlayıcı değiştir</string>
+ <string name="info">bilgiler</string>
+ <string name="show_connection_details">Bağlantı bilgilerini görüntüle</string>
+ <string name="connection_details">Bağlantı bilgileri</string>
+ <string name="routes_info">Yollar: %s</string>
+ <string name="routes_info6">IPv6 yolları: %s</string>
+ <string name="error_empty_username">Kullanıcı adı boş bırakılamaz.</string>
+ <string name="cert_from_keystore">Anahtar deposundan \'%s\' sertifikası alındı</string>
+ <string name="provider_label">Hizmet sağlayıcı:</string>
+ <string name="provider_label_none">Herhangi bir hizmet sağlayıcı yapılandırılmamış</string>
+ <string name="status_unknown">Durum bilinmiyor.</string>
+ <string name="eip_service_label">Şifreli VPN İnternet erişimi</string>
+ <string name="configuration_wizard_title">Bir hizmet sağlayıcı seçin</string>
+ <string name="add_provider">Hizmet sağlayıcı ekle</string>
+ <string name="introduce_new_provider">Yeni bir hizmet sağlayıcı ekle</string>
+ <string name="save">Kaydet</string>
+ <string name="new_provider_uri">Etki alanı adı</string>
+ <string name="valid_url_entered">Adres geçerli</string>
+ <string name="not_valid_url_entered">Adres biçimi hatalı</string>
+ <string name="provider_details_title">Hizmet sağlayıcı bilgileri</string>
+ <string name="use_anonymously_button">Anonim olarak kullan</string>
+ <string name="username_hint">kullanıcı adı</string>
+ <string name="username_ask">Lütfen kullanıcı adınızı yazın</string>
+ <string name="password_ask">Lütfen parolanızı yazın</string>
+ <string name="password_hint">parola</string>
+ <string name="password_match">Parola ile onayı aynı</string>
+ <string name="password_mismatch">Parolalar ile onayı aynı değil</string>
+ <string name="user_message">Kullanıcı iletisi</string>
+ <string name="about_fragment_title">Hakkında</string>
+ <string name="exclude_apps_fragment_title">VPN kullanmayacak uygulamalar</string>
+ <string name="error_srp_math_error_user_message">Yeniden dene: Sunucu matematik hatası</string>
+ <string name="error_bad_user_password_user_message">Kullanıcı adı ya da parola yanlış</string>
+ <string name="error_not_valid_password_user_message">En az 8 karakter uzunluğunda olmalı</string>
+ <string name="error_client_http_user_message">Yeniden deneyin: İstemci HTTP hatası</string>
+ <string name="error_io_exception_user_message">Yeniden deneyin: Giriş/çıkış hatası</string>
+ <string name="error_json_exception_user_message">Yeniden deneyin: Sunucudan alınan yanıt bozuk</string>
+ <string name="error_no_such_algorithm_exception_user_message">Şifreleme algoritması bulunamadı. Lütfen Android sürümünü yükseltin!</string>
+ <string name="signup_or_login_button">Hesap/oturum aç</string>
+ <string name="login_button">Oturum aç</string>
+ <string name="login_to_profile">Profil oturumu aç</string>
+ <string name="logout_button">Oturumu kapat</string>
+ <string name="signup_button">Hesap aç</string>
+ <string name="create_profile">Profil oluştur</string>
+ <string name="setup_provider">Hizmet sağlayıcıyı ayarla</string>
+ <string name="setup_error_title">Yapılandırma hatası</string>
+ <string name="setup_error_configure_button">Yapılandır</string>
+ <string name="setup_error_close_button">Çık</string>
+ <string name="setup_error_text">Seçtiğiniz hizmet sağlayıcıda %s yapılandırırken bir sorun çıktı.\n\nHizmet sağlayıcıyı yeniden yapılandırmayı ya da çıkıp bir sonraki açılışta hizmet sağlayıcı yapılandırmayı seçebilirsiniz.</string>
+ <string name="setup_error_text_custom">%s yapılandırılırken bir sorun çıktı.\n\nYeniden yapılandırmayı ya da çıkmayı seçebilirsiniz.</string>
+ <string name="server_unreachable_message">Sunucuya ulaşılamıyor. Lütfen yeniden deneyin.</string>
+ <string name="error.security.pinnedcertificate">Güvenlik hatası. Uygulamayı yükseltin veya başka bir hizmet sağlayıcı seçin.</string>
+ <string name="malformed_url">%s bir hizmet sağlayıcısı gibi görünmüyor.</string>
+ <string name="certificate_error">Bu güvenilir bir %s hizmet sağlayıcısı değil.</string>
+ <string name="service_is_down_error">Hizmet çalışmıyor.</string>
+ <string name="configuring_provider">Hizmet sağlayıcı yapılandırılıyor</string>
+ <string name="downloading_certificate_message">VPN sertifikası indiriliyor</string>
+ <string name="updating_certificate_message">VPN sertifikası güncelleniyor</string>
+ <string name="login.riseup.warning">Riseup kullanıcıların VPN hizmetini kullanabilmesi için ayrı bir hesap oluşturmaları gerekir</string>
+ <string name="succesful_authentication_message">Kimliği doğrulanmış</string>
+ <string name="authentication_failed_message">Kimlik doğrulanamadı</string>
+ <string name="registration_failed_message">Hesap açılamadı</string>
+ <string name="eip_status_start_pending">Bağlantı kuruluyor</string>
+ <string name="eip_status_connecting">VPN bağlantısı kuruluyor</string>
+ <string name="eip_status_unsecured">Güvenli olmayan bağlantı</string>
+ <string name="eip_status_secured">Güvenli bağlantı</string>
+ <string name="eip_cancel_connect_title">Bağlantı iptal edilsin mi?</string>
+ <string name="eip_cancel_connect_text">Sürmekte olan bir bağlantı kurma girişimi var. İptal etmek istediğinize emin misiniz?</string>
+ <string name="eip.warning.browser_inconsistency">VPN bağlantısını kapatmak istiyor musunuz? VPN kapalıyken, kişisel bilgileriniz Internet hizmeti sağlayıcınıza veya yerel ağınıza sızabilir.</string>
+ <string name="eip_state_not_connected">Çalışmıyor! Bağlantı güvenli değil!</string>
+ <string name="eip_state_connected">Bağlantı güvenli</string>
+ <string name="provider_problem">Hizmet sağlayıcı ile ilgili bir sorun var gibi görünüyor.</string>
+ <string name="try_another_provider">Lütfen başka bir hizmet sağlayıcıyı deneyin ya da sizinkiyle bağlantı kurun.</string>
+ <string name="default_username">Anonim</string>
+ <string name="logging_in">Oturum açılıyor</string>
+ <string name="signing_up">Hesap açılıyor</string>
+ <string name="vpn.button.turn.on">Aç</string>
+ <string name="vpn.button.turn.off">Kapat</string>
+ <string name="vpn_button_turn_off_blocking">Engellemeyi durdur</string>
+ <string name="vpn_securely_routed">Trafiğiniz güvenli bir şekilde şuradan yönlendiriliyor:</string>
+ <string name="vpn_securely_routed_no_internet">İnternet bağlantısı algılanamadı. Geri döndüğünde trafiğinizi güvenli bir şekilde yönlendireceğiz:</string>
+ <string name="log_fragment_title">Günlük</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Gezinme çekmecesini aç</string>
+ <string name="navigation_drawer_close">Gezinme çekmecesini kapat</string>
+ <string name="action_example">Örnek işlem</string>
+ <string name="action_settings">Ayarlar</string>
+ <string name="void_vpn_establish">%s tüm giden internet trafiğini engeller.</string>
+ <string name="void_vpn_error_establish">Tüm İnternet trafiği engellenemedi.</string>
+ <string name="void_vpn_stopped">Tüm giden İnternet trafiğinin engellenmesi durduruldu.</string>
+ <string name="void_vpn_title">Trafik engelleme</string>
+ <string name="update_provider_details">Hizmet sağlayıcı bilgilerini güncelle</string>
+ <string name="update_certificate">Sertifikayı güncelle</string>
+ <string name="warning_eip_json_corrupted">Hizmet sağlayıcı yapılandırması güncellenemedi.</string>
+ <string name="eip_json_corrupted_user_message">Hizmet sağlayıcı yapılandırması güncellenemedi. Yeniden denemek için oturum açın.</string>
+ <string name="warning_client_parsing_error_gateways">Hizmet sağlayıcı ağ geçitleri tanınamadı. Ağ geçitleri hatalı yapılandırılmış olabilir.</string>
+ <string name="warning_corrupted_provider_details">Kaydedilmiş hizmet sağlayıcı bilgileri bozuk. %s güncellemeyi (önerilir) ya da ticari bir CA sertifikası kullanarak hizmet sağlayıcı bilgilerini güncellemeyi seçebilirsiniz.</string>
+ <string name="warning_corrupted_provider_cert">Kaydedilmiş hizmet sağlayıcı sertifikası geçersiz. %s güncellemeyi (önerilir) ya da ticari bir CA sertifikası kullanarak hizmet sağlayıcı sertifikasını güncellemeyi seçebilirsiniz.</string>
+ <string name="warning_expired_provider_cert">Kaydedilmiş hizmet sağlayıcı sertifikasının süresi dolmuş. %s güncellemeyi (önerilir) ya da ticari bir CA sertifikası kullanarak hizmet sağlayıcı sertifikasını güncellemeyi seçebilirsiniz.</string>
+ <string name="downloading_vpn_certificate_failed">VPN sertifikası indirilemedi. Yeniden deneyin ya da başka bir hizmet sağlayıcı seçin.</string>
+ <string name="vpn_certificate_is_invalid">VPN sertifikanızı yenileme zamanınız geldi. Bağlantınızı güvende tutmak için yeni bir sertifika indirin. Bu güncelleme belirli aralıklarla yapılan normal bir işlemdir.</string>
+ <string name="save_battery">Güç tasarrufu</string>
+ <string name="subtitle_save_battery">VPN erişim noktası açıkken etkisiz</string>
+ <string name="save_battery_message">Telefonunuz etkin olmadığında, arka plan veri bağlantıları hazırda beklemeye geçer.</string>
+ <string name="always_on_vpn">Her zaman açık VPN</string>
+ <string name="subtitle_always_on_vpn">Android sistem ayarlarını aç</string>
+ <string name="tethering">VPN erişim noktası</string>
+ <string name="ipv6Firewall">IPv6 engellensin</string>
+ <string name="require_root">Yönetici yetkileri gerekir</string>
+ <string name="show_experimental">Deneysel özellikler görüntülensin</string>
+ <string name="hide_experimental">Deneysel özellikler gizlensin</string>
+ <string name="experimental_features">Deneysel özellikler</string>
+ <string name="tethering_enabled_message">Lütfen önce <![CDATA[<b>sistem ayarlarından</b>]]> mobil erişim noktasını açtığınızdan emin olun.</string>
+ <string name="tethering_message">VPN bağlantısını diğer aygıtlarla şununla paylaş:</string>
+ <string name="tethering_wifi">Wi-Fi erişim noktası</string>
+ <string name="tethering_usb">USB paylaşımı</string>
+ <string name="tethering_bluetooth">Bluetooth paylaşımı</string>
+ <string name="do_not_show_again">Bir daha görüntülenmesin</string>
+ <string name="always_on_vpn_user_message">Her zaman açık VPN sunmak için Android VPN ayarlarında yapılandır simgesine [img src] tıklayın ve anahtarı açık konuma getirin. </string>
+ <string name="always_on_blocking_vpn_user_message">Gizliliğinizi en iyi şekilde korumak için, \"VPN kullanmayan bağlantılar engellensin\" seçeneğini de etkinleştirmelisiniz.</string>
+ <string name="donate_title">Bağış yapın</string>
+ <string name="donate_default_message">Hem son kullanıcılar hem de hizmet sağlayıcılar için kolay ve güvenli iletişime önem veriyorsanız, lütfen bağış yapın.</string>
+ <string name="donate_message">LEAP gücünü hibe ve bağışlardan alıyor. Hem son kullanıcılar hem de hizmet sağlayıcılar için kolay ve güvenli iletişime önem veriyorsanız, lütfen bağış yapın.</string>
+ <string name="donate_button_remind_later">Beni hatırla</string>
+ <string name="donate_button_donate">Bağış yapın</string>
+ <string name="obfuscated_connection">Karartılmış bağlantı kullanılıyor.</string>
+ <string name="obfuscated_connection_try">Karartılmış bir bağlantı deneniyor.</string>
+ <string name="nav_drawer_obfuscated_connection">Köprüler kullanılsın</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">VPN süzgeçleri aşılsın</string>
+ <string name="warning_exclude_apps_message">Uygulamaları VPN bağlantısı dışında tutarken dikkatli olun. Bu durum kimliğinizin açığa çıkmasına ve güvenliğinizin tehlikeye düşmesine neden olabilir.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d uygulama korunmuyor</item>
+ <item quantity="other">%d uygulama korunmuyor</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s bağlantı kuramadı. VPN bağlantıları engelleniyor olabilir. Karartılmış bağlantıları kullanarak bağlantı kurmayı denemek ister misiniz?</string>
+ <string name="warning_no_more_gateways_no_pt">%s bağlantı kuramadı. Yeniden denemek ister misiniz?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s karartılmış VPN bağlantılarını kullanarak bağlantı kuramadı. Standart VPN bağlantıları kullanarak bağlantı kurmayı denemek ister misiniz?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s ile %2$s bağlantısı kurulamadı. En iyi konum ile bağlantı kurulmaya çalışılsın mı?</string>
+ <string name="warning_option_try_best">En iyi konum denensin</string>
+ <string name="warning_option_try_pt">Karartılmış bağlantıyı dene</string>
+ <string name="warning_option_try_ovpn">Standart bağlantıyı dene</string>
+ <string name="vpn_error_establish">Android, VPN hizmetini başlatamadı.</string>
+ <string name="root_permission_error">%s, VPN erişim noktası ya da IPv6 güvenlik duvarı özelliklerini yönetici yetkileri olmadan çalıştıramıyor.</string>
+ <string name="qs_enable_vpn">%s başlat</string>
+ <string name="version_update_found">İndirmeyi başlatmak için buraya dokunun.</string>
+ <string name="version_update_title">Yeni bir %s sürümü yayınlanmış.</string>
+ <string name="version_update_apk_description">Yeni %s sürümü indiriliyor.</string>
+ <string name="version_update_download_title">Yeni %s sürümü indirildi.</string>
+ <string name="version_update_download_description">Güncellemeyi kurmak için buraya dokunun.</string>
+ <string name="version_update_error_pgp_verification">PGP doğrulama sorunu. İndirme yok sayılıyor.</string>
+ <string name="version_update_error">Güncellenemedi.</string>
+ <string name="version_update_error_permissions">Uygulamayı kurma izni yok.</string>
+ <string name="gateway_selection_title">Konum seçin</string>
+ <string name="gateway_selection_recommended_location">Önerilen konum</string>
+ <string name="gateway_selection_recommended">Önerilen</string>
+ <string name="gateway_selection_manually">El ile seçim</string>
+ <string name="gateway_selection_automatic_location">Otomatik olarak en iyi bağlantı kullanılsın</string>
+ <string name="gateway_selection_automatic">Otomatik</string>
+ <string name="reconnecting">Yeniden bağlantı kuruluyor…</string>
+ <string name="tor_starting">Engellemeyi aşmak için köprüler başlatılıyor…</string>
+ <string name="tor_stopping">Köprüler durduruluyor</string>
+ <string name="tor_started">Engellemeyi aşmak için köprüler kullanılıyor</string>
+ <string name="log_conn_done_pt">Değiştirilebilir taşıyıcı ile bağlantı kuruldu</string>
+ <string name="log_conn_pt">Değiştirilebilir taşıyıcı ile bağlantı kuruluyor</string>
+ <string name="log_conn_done">Bir aktarıcı ile bağlantı kuruldu</string>
+ <string name="log_handshake">Bir aktarıcı ile bağlantı kuruluyor</string>
+ <string name="log_handshake_done">Aktarıcı ile bağlantı kuruldu</string>
+ <string name="log_onehop_create">Bir şifrelenmiş dizin bağlantısı kuruluyor</string>
+ <string name="log_requesting_status">Ağ durumu uzlaşması soruluyor</string>
+ <string name="log_loading_status">Ağ durumu uzlaşması yükleniyor</string>
+ <string name="log_loading_keys">Otorite sertifikaları yükleniyor</string>
+ <string name="log_requesting_descriptors">Aktarıcı tanımlayıcıları soruluyor</string>
+ <string name="log_loading_descriptors">Aktarıcı tanımlayıcıları yükleniyor</string>
+ <string name="log_enough_dirinfo">Devreleri kurmak için yeterli dizin bilgisi yüklendi</string>
+ <string name="log_ap_handshake_done">Devreleri kurmak için bir aktarıcıyla uzlaşma tamamlandı</string>
+ <string name="log_circuit_create">Bir Tor devresi kuruluyor</string>
+ <string name="log_done">Çalışıyor</string>
+ <string name="channel_name_tor_service">%s köprü hizmeti</string>
+ <string name="channel_description_tor_service">%s yapılandırması sırasında köprü kullanımı hakkında bilgi verir.</string>
+ <string name="error_tor_timeout">Köprüler başlatılamadı. Yeniden denemek ya da %s yapılandırması için karartılmamış güvenli bağlantı ile ilerlemek ister misiniz?</string>
+ <string name="retry_unobfuscated">Karartmadan yeniden dene</string>
+ <string name="hide">Gizle</string>
+ <string name="error_network_connection">%s İnternet bağlantısına yok. Lütfen Wi-Fi ve hücresel veri ayarlarınızı denetleyin.</string>
+ <string name="censorship_circumvention">Engellemeyi aşma</string>
+ <string name="use_snowflake">Snowflake kullanılsın</string>
+ <string name="snowflake_description">Engellemeye karşı yapılandırma sürecini korur.</string>
+ <string name="vpn_settings">VPN ayarları</string>
+ <string name="prefer_udp">Olabiliyorsa UDP kullanılsın</string>
+ <string name="prefer_udp_subtitle">UDP akışlar için daha iyi ve daha hızlı olabilir, ancak tüm ağlarda çalışmaz.</string>
+ <string name="disabled_while_bridges_on">Köprüler kullanılırken etkisiz.</string>
+ <string name="hint_bridges">Şu anda yalnızca köprüleri destekleyen konumlar seçilebilir.</string>
+ <string name="option_disable_bridges">Köprüleri etkisizleştir</string>
+ <string name="eip_state_insecure">Bağlantı güvenli değil</string>
+ <string name="connection_not_connected">Bilgileriniz İnternet hizmeti sağlayıcınıza ya da yerel ağınıza sızıyor olabilir.</string>
+ <string name="eip_state_no_network">Çalışan bir internet bağlantınız yok. Geri geldiğinizde, bağlantınız otomatik olarak kurulacak.</string>
+ <string name="eip_state_blocking">%1$s tüm İnternet trafiğini engelliyor.</string>
+ <string name="disabled_while_udp_on">UDP açıkken etkisiz.</string>
+ <string name="advanced_settings">Gelişmiş ayarlar</string>
+ <string name="cancel_connection">Bağlantıyı kes</string>
+ <string name="unknown_location">Konum bilinmiyor</string>
+ <string name="splash_footer">LEAP tarafından geliştirildi</string>
+ <string name="welcome">Hoş geldiniz!</string>
+ <string name="select_provider">Hizmet sağlayıcınızı seçin</string>
+ <string name="select_provider_description">VPN kullandığınızda, İnternet hizmeti sağlayıcınıza duyduğunuz güveni VPN hizmeti sağlayıcınıza aktarmış olursunuz. %1$s ve %2$s hizmet sağlayıcılarının geçmişi, gizliliği korumaları ve savunmaları açısından temizdir. Bir hizmet sağlayıcı ekliyorsanız veya bir davet kodu kullanıyorsanız, hizmet sağlayıcıyı tanıdığınızdan ve güvendiğinizden emin olun.</string>
+ <string name="provider_description_riseup">Riseup özgürleştirici toplumsal değişim üzerine çalışan kişi ve gruplara çevrim içi iletişim araçları sağlıyor. Projemiz, demokratik alternatifleri oluşturmayı ve kendi denetimimiz altında güvenli iletişim araçları geliştirmeyi amaçlıyor.</string>
+ <string name="next">Sonraki</string>
+ <string name="add_provider_description">Bitmask, herkese açık olarak listelenmeyen hizmet sağlayıcılara bağlanmanızı sağlar. Eklediğiniz hizmet sağlayıcıyı bildiğinizden ve güvendiğinizden emin olun.</string>
+ <string name="add_provider_prompt">Hizmet sağlayıcının adresini buraya yazın.</string>
+ <string name="invite_code_provider_description">Bitmask bir özel davet kodu ile hizmet sağlayıcılara bağlanmanızı sağlar.</string>
+ <string name="invite_code_provider_prompt">Güvenli davet Kodunuzu buraya yazın.</string>
+ <string name="qr_scanner_prompt">Kare kodu tara</string>
+ <string name="provider_description_calyx">Calyx, İnternet ve mobil iletişim endüstrisinde konuşma özgürlüğü, ifade özgürlüğü, sivil katılım ve gizlilik haklarını özendirmek için gizlilik teknolojileri üzerine çalışan, bunları sınayan, geliştiren ve gerçekleştiren kâr amacı gütmeyen bir eğitim ve araştırma örgütüdür.</string>
+ <string name="title_circumvention_setup">Engellemeyi aşmanız mı gerekiyor?</string>
+ <string name="circumvention_setup_description">İnternet\'in engellendiği bir yerde yaşıyorsanız, tüm İnternet hizmetlerine erişmek için engellemeyi aşma seçeneklerimizi kullanabilirsiniz. Bu seçenekler bağlantınızı yavaşlatır!</string>
+ <string name="circumvention_setup_hint">%s Tor gibi otomatik olarak çeşitli engellemeyi aşma teknolojileri kullanarak size internet erişimi sağlamayı dener. Gelişmiş ayarlar bölümünden ince ayarları yapabilirsiniz.</string>
+ <string name="use_standard_vpn">Standart %s kullanılsın</string>
+ <string name="use_circumvention_tech">Engellemeyi aşma teknolojisi kullanılsın (daha yavaş)</string>
+ <string name="description_configure_provider">%1$s, hizmet sağlayıcınızla bağlantı kurmak için gerekli yapılandırma bilgilerini alıyor. Bu işlem yalnızca ilk kurulum sırasında yapılır.</string>
+ <string name="description_configure_provider_circumvention">%1$s, hizmet sağlayıcıdan gerekli yapılandırma verilerini almaya çalışıyor. Bu işlem yalnızca ilk kurulum sırasında yapılır. Engellemeyi aşma teknolojisini kullanmayı seçtiniz, bu yüzden işlemin yapılması biraz zaman alabilir.</string>
+ <string name="details">Ayrıntılar</string>
+ <string name="tor_status">Tor durumu</string>
+ <string name="snowflake_status">Snowflake durumu</string>
+ <string name="snowflake_started">Snowflake istemcisi başlatıldı</string>
+ <string name="title_upcoming_connection_request">Gelen bağlantı isteği</string>
+ <string name="title_upcoming_request">İstenecek izinler</string>
+ <string name="title_upcoming_request_summary">Sonraki panolarda Android sizden Bağlantı isteği ve Bildirim isteği ile izninizi isteyecek.</string>
+ <string name="title_upcoming_connection_request_summary_custom">Temel %s işlevselliğini sağlamak için bağlantı isteğinin kabul edilmesi önemlidir.</string>
+ <string name="title_upcoming_connection_request_summary">Bağlantı isteği için, Bitmask uygulamasının yalnızca VPN uygulamaları için iyi örnekleri uygulayan ve kullanıcıların verileri ile kimliklerini koruma konusunda doğrulanabilir bir geçmişi olan güvenilir hizmet sağlayıcılarla işbirliği yaptığını bilmeniz önemlidir. Bununla birlikte, herkese açık olmayan bir hizmet sağlayıcıya el ile bağlanıyorsanız, onun güvenilir olduğundan emin olun.</string>
+ <string name="title_upcoming_notification_request_summary">Bildirim isteğini kabul etmek, uygulamanın arka planda çalışmasına yol açar ve Android bildirim merkezinde veri kullanımınızı görmenizi sağlar.</string>
+ <string name="title_upcoming_notifications_request">Gelen bildirim isteği</string>
+ <string name="title_setup_success">Hazırsınız!</string>
+ <string name="setup_success_description">Bağlanmak için aşağıdaki düğmeye tıklayın</string>
+ <string name="permission_rejected">İzin isteği reddedildi.</string>
+ <string name="login_not_supported">Bu hizmet sağlayıcı için VPN sertifikanızı güncellemeniz gerektiğinden geçerli uygulama sürümü oturum açmayı desteklemiyor. </string>
+ <string name="select_language">Dil seçin</string>
+ <string name="syntax_check">Yazım denetimi:</string>
+ <string name="validation_status_success">İyi</string>
+ <string name="validation_status_failure">Kötü</string>
+ <string name="enter_invite_code">Davet kodunu yazın</string>
+ <string name="invalid_code">Kod geçersiz</string>
+ <string name="automatic_bridge">Otomatik (önerilen)</string>
+ <string name="automatic_bridge_description">Bağlantı kullanılabilecek en iyi köprüler ve iletişim kuralları ile kurulmaya çalışılacak.</string>
+ <string name="manual_bridge">El ile yapılandırma</string>
+ <string name="manual_bridge_description">Özel köprüler ve belirli iletişim kuralları seçin</string>
+ <string name="censorship_circumvention_description">El ile yapılandırma için teknik bilgi gereklidir. Dikkatli davranın.</string>
+ <string name="discovery">Keşif</string>
+ <string name="discovery_description">Sansür uygulayıcılar, hizmet sağlayıcınızın sunduğu kritik yapılandırma bilgisinin keşfini engelleyebilir. Engellemeleri aşmak için bir seçenek seçin.</string>
+ <string name="automatically_select">Otomatik olarak seçilsin</string>
+ <string name="invite_proxy">Vekil sunucu daveti</string>
+ <string name="tunnelling">Tünelleme</string>
+ <string name="tunnelling_description">Sansür uygulayıcılar açık internete erişimi engelleyebilir. Engellemeleri aşmak için bir seçenek seçin.</string>
+ <string name="port_hopping">Bağlantı noktası değiştirme</string>
+ <string name="port_hopping_description">"Sansür uygulayıcılar açık internete erişimi engellemek için trafik analizini kullanırlar. Bağlantı noktası değiştirme bunu onlar için zorlaştırır. "</string>
+ <string name="error_invite_title">Ne yazık ki, bu davet kodunda bir yanlışlık var:</string>
+ <string name="error_invite">Davet kodu geçersiz: %1$s</string>
+ <string name="error_invite_copy">Davet kodunu kopyala</string>
+ <string name="error_invite_hint">Destek isteğinde bulunmak için davet kodunu kopyalayıp hizmet sağlayıcınızla paylaşabilirsiniz.</string>
+ <string name="error_invite_unknown_type">%1$s davet kodu türü bilinmiyor.</string>
+ <string name="error_invite_address_format">davet vekil sunucusunun adresi IpAdresi:BaglantiNoktasi biçiminde değil.</string>
+ <string name="error_invite_certificate_length">sertifikanın karakter sayısı doğru değil (%1$s).</string>
+ <string name="error_invite_certificate_missing">davet vekil sunucusunun sertifikası eksik.</string>
+ <string name="error_invite_fqdn_length">davet kodunda tam belirtilmiş etki alanı adı bulunmalı. Ancak %1$s alındı.</string>
+ <string name="error_invite_fqdn_missing">tam belirtilmiş etki alanı adı eksik.</string>
+ <string name="error_invite_auth_missing">kimlik doğrulama kodu eksik.</string>
+ <string name="error_invite_fqdn_invalid">%1$s davet kodunda geçersiz karakterler var</string>
</resources>
diff --git a/app/src/main/res/values-ug/strings.xml b/app/src/main/res/values-ug/strings.xml
index 746978f8..a18f9c58 100644
--- a/app/src/main/res/values-ug/strings.xml
+++ b/app/src/main/res/values-ug/strings.xml
@@ -1,158 +1,158 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">قايتا سىناڭ</string>
- <string name="repository_url_text">ئەسلى كودى بۇ يەردە https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">مەسىلە ئىز قوغلىغۇچى بۇ يەردە https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">تەرجىمىلەرنى قارشى ئالىمىز ۋە رەھمەت ئېيتىمىز. بىزنىڭ Transifex تۈرىمىزنى كۆرۈش ئۈچۈن بۇ يەرگە قاراڭ
+ <string name="retry">قايتا سىناڭ</string>
+ <string name="repository_url_text">ئەسلى كودى بۇ يەردە https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">مەسىلە ئىز قوغلىغۇچى بۇ يەردە https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">تەرجىمىلەرنى قارشى ئالىمىز ۋە رەھمەت ئېيتىمىز. بىزنىڭ Transifex تۈرىمىزنى كۆرۈش ئۈچۈن بۇ يەرگە قاراڭ
https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">تەمىنلىگۈچىنى ئالماشتۇرۇش</string>
- <string name="info">ئۇچۇر</string>
- <string name="show_connection_details">باغلانمىنىڭ تەپسىلاتىنى كۆرسەت</string>
- <string name="routes_info">يوللار: %s</string>
- <string name="routes_info6">IPv6 يوللىرى: %s</string>
- <string name="error_empty_username">ئىشلەتكۈچى ئىسمى بوش قالماسلىقى كېرەك.</string>
- <string name="cert_from_keystore">كېنىشكە \'%s\' كە ئاچقۇچ ساقلىغۇچتىن ئېرىشتۇق</string>
- <string name="provider_label">تەمىنلىگۈچى:</string>
- <string name="provider_label_none">تەمىنلىگۈچى سەپلەنمىدى</string>
- <string name="status_unknown">ھالىتى نامەلۇم</string>
- <string name="eip_service_label">شىفرەلەنگەن VPN ئىنتېرنېت ئالاقىسى</string>
- <string name="configuration_wizard_title">مۇلازىمەت تەمىنلىگۈچىنى تاللاش</string>
- <string name="add_provider">يېڭى تەمىنلىگۈچى قوشۇش</string>
- <string name="introduce_new_provider">يېڭى بىر تەمىنلىگۈچى قوشۇش</string>
- <string name="save">ساقلاش</string>
- <string name="new_provider_uri">تور نامى</string>
- <string name="valid_url_entered">ئۇلانما ئىناۋەتسىز</string>
- <string name="not_valid_url_entered">غەيرى URL</string>
- <string name="provider_details_title">تەمىنلىگۈچىنىڭ تەپسىلاتى</string>
- <string name="use_anonymously_button">نامسىز قوللىنىش</string>
- <string name="username_hint">ئىشلەتكۈچى ئىسمى</string>
- <string name="username_ask">ئىشلەتكۈچى ئىسمىڭىزنى كىرگۈزۈڭ</string>
- <string name="password_ask">پارولىڭىزنى كىرگۈزۈڭ</string>
- <string name="password_hint">پارول</string>
- <string name="password_match">پاروللار ئوخشاش</string>
- <string name="password_mismatch">پاروللار ئوخشاش ئەمەس</string>
- <string name="user_message">ئىشلەتكۈچى ئۇچۇرى</string>
- <string name="about_fragment_title">ھەققىدە</string>
- <string name="exclude_apps_fragment_title">VPN نىڭ سىرتىدىكى ئەپلەر</string>
- <string name="error_srp_math_error_user_message">قايتا سىناڭ: مۇلازىمېتىر ئوخشاش ئەمەس</string>
- <string name="error_bad_user_password_user_message">ئىشلەتكۈچى ئىسمى ياكى پارول خاتا</string>
- <string name="error_not_valid_password_user_message">ئۇزۇنلىغى ئەڭ ئاز بولغاندا 8 بەلگە بولىشى كېرەك</string>
- <string name="error_client_http_user_message">قايتا سىناڭ: ئىشلەتكۈچى HTTP خاتاسى</string>
- <string name="error_io_exception_user_message">قايتا سىناڭ: I/O خاتالىقى</string>
- <string name="error_json_exception_user_message">قايتا سىناڭ: مۇلازىمېرتنىڭ ئىنكاسى ناچار</string>
- <string name="error_no_such_algorithm_exception_user_message">شىفرەلىمە ئالگورىفمىسى مەۋجۇت ئەمەس. ئاندروئىدىڭىزنى يۇقىرىلىتىڭ</string>
- <string name="signup_or_login_button">تىزىملىتىش\كىرىش</string>
- <string name="login_button">كىرىش</string>
- <string name="login_to_profile">باش سۈرىتىگە كىرىش</string>
- <string name="logout_button">چىقىش</string>
- <string name="signup_button">تىزىملىتىش</string>
- <string name="create_profile">تەرجىمھال قۇرۇش</string>
- <string name="setup_provider">تەمىنلىگۈچىنى بەلگىلەش</string>
- <string name="setup_error_title">سەپلىمە خاتا</string>
- <string name="setup_error_configure_button">سەپلە</string>
- <string name="setup_error_close_button">چېكىنىش</string>
- <string name="setup_error_text">سىز تاللىغان تەمىنلىگۈچى بىلەن %s نى ساپلەشتە بىر خاتالىق كۆرۈلدى.\n\n قايتىدىن سەپلەشنى تاللىسىڭىزمۇ ياكى چېكىنىپ چىقىپ، كېيىنكى قېتىم قايتا باشلىغاندا بىر تەمىنلىگۈچى سەپلىسىڭىزمۇ بولىدۇ. </string>
- <string name="server_unreachable_message">مۇلازىمېرتىرغا ئۇلاشقىلى بولمايۋاتىدۇ، قايتا سىنىسىڭىز.</string>
- <string name="error.security.pinnedcertificate">بىخەتەرلىك خاتاسى، ئەپىڭىزنى يۇقىرىلىتىنىڭ ياكى باشقا تەمىنلىگۈچى تاللاڭ.</string>
- <string name="malformed_url">قارىماققا %s تەمىنلىگۈچىدەك كۆرۈنمەيۋاتىدۇ.</string>
- <string name="certificate_error">بۇ ئىشەنچلىك %s تەمىنلىگۈچى ئەمەس.</string>
- <string name="service_is_down_error">مۇلازىمەت توختىدى</string>
- <string name="configuring_provider">تەمىنلىگۈچىنى سەپلەش</string>
- <string name="incorrectly_downloaded_certificate_message">سىزنىڭ نامسىز كېنىشكىڭىزنى چۈشۈرەلمىدۇق</string>
- <string name="downloading_certificate_message">VPN كېنىشكىڭىزنى چۈشۈرىۋاتىمىز</string>
- <string name="updating_certificate_message">VPN كېنىشكىڭىزنى يېڭىلاۋاتىمىز</string>
- <string name="login.riseup.warning">Riseup قوللانغۇچىلىرى VPN مۇلازىمىتىنى ئىشلىتىش ئۈچۈن ئايرىم ھېساپ ئېچىشى كېرەك</string>
- <string name="succesful_authentication_message">توغرۇلاندى</string>
- <string name="authentication_failed_message">توغرۇلاش مەغلۇپ بولدى</string>
- <string name="registration_failed_message">تىزىملاش مەغلۇپ بولدى</string>
- <string name="eip_status_start_pending">باغلىنىش باشلىنىۋاتىدۇ</string>
- <string name="eip_cancel_connect_title">باغلىنىشنى بىكار قىلامسىز؟</string>
- <string name="eip_cancel_connect_text">داۋام قىلىۋاتقان بىر باغلىنىش بار، راستلا بىكار قىلامسىز؟</string>
- <string name="eip.warning.browser_inconsistency">VPNباغلىنىشنى ئتىۋېتەمسىز؟ ئەگەر VPN ئېتىۋېتىلسە، سەخسىي ئۇچۇرلىرىڭىز ئىنتېرنېت تەمىنلىگۈچى ياكى يەرلىك توردا ئاشكارىلنىپ قېلىشى مۈمكىن.</string>
- <string name="eip_state_not_connected">ئىشلىمەيدۇ! باغلىنىش بىخەتەر ئەمەس! </string>
- <string name="eip_state_connected">باغلانما بىخەتەرلىگى</string>
- <string name="provider_problem">تەمىنلىگۈچىدە مەسىلە باردەك قىلىدۇ.</string>
- <string name="try_another_provider">باشقا تەمىنلىگۈچىنى سىناپ بېقىڭ، ياكى ئۆزىڭىزنىڭكى بىلەن ئالاقىلىشىڭ.</string>
- <string name="default_username">نامسىز</string>
- <string name="logging_in">كىرىۋاتىدۇ</string>
- <string name="signing_up">تىزىملىنىۋاتىدۇ</string>
- <string name="vpn.button.turn.on">ئاچ</string>
- <string name="vpn.button.turn.off">ئەت</string>
- <string name="vpn_button_turn_off_blocking">چەكلىمىنى توختات</string>
- <string name="vpn_securely_routed">سىزنىڭ تور قاتنىشىڭىز بىخەتەر ھالدا شۇ يەردىن ئۆتۈشكە يوللاندى:</string>
- <string name="vpn_securely_routed_no_internet">ئىنتېرنېت باغلىنىشى بايقالمىدى. قايتا باغلانسا، تور قاتنىشىڭىزنى شۇ يەردىن بىخەتەر ئۆتۈشكە يوللايمىز: </string>
- <string name="log_fragment_title">خاتىرە</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">يول باشلىغۇچىنىڭ تارتمىسىنى ئاچ</string>
- <string name="navigation_drawer_close">يول اشلىغۇچىنىڭ تاتمىسىنى ئەت</string>
- <string name="action_example">ئۈلگىلىك ھەرىكەت</string>
- <string name="action_settings">ئورناتمىلار</string>
- <string name="void_vpn_establish">%s پۈتۈن سىرتقا چىقىدىغان ئىنتېرنېت قاتنىشىنى چەكلەش.</string>
- <string name="void_vpn_stopped">بارلىق سىرتقا چىقىدىغان ئىنتېرنېت قاتنىشىنى چەكلەشنى توختىتىش</string>
- <string name="void_vpn_title">ئالاقىنى تاقاش</string>
- <string name="update_provider_details">تەمىنلىگۈچىنىڭ تەپسىلاتلىرىنى يېڭىلاش</string>
- <string name="update_certificate">كېنىشكە يېڭىلاش</string>
- <string name="warning_eip_json_corrupted">تەمىنلىگۈچىنىڭ سەپلىمىلىرىنى يېڭىلاش مەغلۇپ بولدى.</string>
- <string name="eip_json_corrupted_user_message">تەمىنلىگۈچىنىڭ سەپلىمىسنى يېڭىلاش مەغلۇپ بولدى.
+ <string name="switch_provider_menu_option">تەمىنلىگۈچىنى ئالماشتۇرۇش</string>
+ <string name="info">ئۇچۇر</string>
+ <string name="show_connection_details">باغلانمىنىڭ تەپسىلاتىنى كۆرسەت</string>
+ <string name="routes_info">يوللار: %s</string>
+ <string name="routes_info6">IPv6 يوللىرى: %s</string>
+ <string name="error_empty_username">ئىشلەتكۈچى ئىسمى بوش قالماسلىقى كېرەك.</string>
+ <string name="cert_from_keystore">كېنىشكە \'%s\' كە ئاچقۇچ ساقلىغۇچتىن ئېرىشتۇق</string>
+ <string name="provider_label">تەمىنلىگۈچى:</string>
+ <string name="provider_label_none">تەمىنلىگۈچى سەپلەنمىدى</string>
+ <string name="status_unknown">ھالىتى نامەلۇم</string>
+ <string name="eip_service_label">شىفرەلەنگەن VPN ئىنتېرنېت ئالاقىسى</string>
+ <string name="configuration_wizard_title">مۇلازىمەت تەمىنلىگۈچىنى تاللاش</string>
+ <string name="add_provider">يېڭى تەمىنلىگۈچى قوشۇش</string>
+ <string name="introduce_new_provider">يېڭى بىر تەمىنلىگۈچى قوشۇش</string>
+ <string name="save">ساقلاش</string>
+ <string name="new_provider_uri">تور نامى</string>
+ <string name="valid_url_entered">ئۇلانما ئىناۋەتسىز</string>
+ <string name="not_valid_url_entered">غەيرى URL</string>
+ <string name="provider_details_title">تەمىنلىگۈچىنىڭ تەپسىلاتى</string>
+ <string name="use_anonymously_button">نامسىز قوللىنىش</string>
+ <string name="username_hint">ئىشلەتكۈچى ئىسمى</string>
+ <string name="username_ask">ئىشلەتكۈچى ئىسمىڭىزنى كىرگۈزۈڭ</string>
+ <string name="password_ask">پارولىڭىزنى كىرگۈزۈڭ</string>
+ <string name="password_hint">پارول</string>
+ <string name="password_match">پاروللار ئوخشاش</string>
+ <string name="password_mismatch">پاروللار ئوخشاش ئەمەس</string>
+ <string name="user_message">ئىشلەتكۈچى ئۇچۇرى</string>
+ <string name="about_fragment_title">ھەققىدە</string>
+ <string name="exclude_apps_fragment_title">VPN نىڭ سىرتىدىكى ئەپلەر</string>
+ <string name="error_srp_math_error_user_message">قايتا سىناڭ: مۇلازىمېتىر ئوخشاش ئەمەس</string>
+ <string name="error_bad_user_password_user_message">ئىشلەتكۈچى ئىسمى ياكى پارول خاتا</string>
+ <string name="error_not_valid_password_user_message">ئۇزۇنلىغى ئەڭ ئاز بولغاندا 8 بەلگە بولىشى كېرەك</string>
+ <string name="error_client_http_user_message">قايتا سىناڭ: ئىشلەتكۈچى HTTP خاتاسى</string>
+ <string name="error_io_exception_user_message">قايتا سىناڭ: I/O خاتالىقى</string>
+ <string name="error_json_exception_user_message">قايتا سىناڭ: مۇلازىمېرتنىڭ ئىنكاسى ناچار</string>
+ <string name="error_no_such_algorithm_exception_user_message">شىفرەلىمە ئالگورىفمىسى مەۋجۇت ئەمەس. ئاندروئىدىڭىزنى يۇقىرىلىتىڭ</string>
+ <string name="signup_or_login_button">تىزىملىتىش\كىرىش</string>
+ <string name="login_button">كىرىش</string>
+ <string name="login_to_profile">باش سۈرىتىگە كىرىش</string>
+ <string name="logout_button">چىقىش</string>
+ <string name="signup_button">تىزىملىتىش</string>
+ <string name="create_profile">تەرجىمھال قۇرۇش</string>
+ <string name="setup_provider">تەمىنلىگۈچىنى بەلگىلەش</string>
+ <string name="setup_error_title">سەپلىمە خاتا</string>
+ <string name="setup_error_configure_button">سەپلە</string>
+ <string name="setup_error_close_button">چېكىنىش</string>
+ <string name="setup_error_text">سىز تاللىغان تەمىنلىگۈچى بىلەن %s نى ساپلەشتە بىر خاتالىق كۆرۈلدى.\n\n قايتىدىن سەپلەشنى تاللىسىڭىزمۇ ياكى چېكىنىپ چىقىپ، كېيىنكى قېتىم قايتا باشلىغاندا بىر تەمىنلىگۈچى سەپلىسىڭىزمۇ بولىدۇ. </string>
+ <string name="server_unreachable_message">مۇلازىمېرتىرغا ئۇلاشقىلى بولمايۋاتىدۇ، قايتا سىنىسىڭىز.</string>
+ <string name="error.security.pinnedcertificate">بىخەتەرلىك خاتاسى، ئەپىڭىزنى يۇقىرىلىتىنىڭ ياكى باشقا تەمىنلىگۈچى تاللاڭ.</string>
+ <string name="malformed_url">قارىماققا %s تەمىنلىگۈچىدەك كۆرۈنمەيۋاتىدۇ.</string>
+ <string name="certificate_error">بۇ ئىشەنچلىك %s تەمىنلىگۈچى ئەمەس.</string>
+ <string name="service_is_down_error">مۇلازىمەت توختىدى</string>
+ <string name="configuring_provider">تەمىنلىگۈچىنى سەپلەش</string>
+ <string name="incorrectly_downloaded_certificate_message">سىزنىڭ نامسىز كېنىشكىڭىزنى چۈشۈرەلمىدۇق</string>
+ <string name="downloading_certificate_message">VPN كېنىشكىڭىزنى چۈشۈرىۋاتىمىز</string>
+ <string name="updating_certificate_message">VPN كېنىشكىڭىزنى يېڭىلاۋاتىمىز</string>
+ <string name="login.riseup.warning">Riseup قوللانغۇچىلىرى VPN مۇلازىمىتىنى ئىشلىتىش ئۈچۈن ئايرىم ھېساپ ئېچىشى كېرەك</string>
+ <string name="succesful_authentication_message">توغرۇلاندى</string>
+ <string name="authentication_failed_message">توغرۇلاش مەغلۇپ بولدى</string>
+ <string name="registration_failed_message">تىزىملاش مەغلۇپ بولدى</string>
+ <string name="eip_status_start_pending">باغلىنىش باشلىنىۋاتىدۇ</string>
+ <string name="eip_cancel_connect_title">باغلىنىشنى بىكار قىلامسىز؟</string>
+ <string name="eip_cancel_connect_text">داۋام قىلىۋاتقان بىر باغلىنىش بار، راستلا بىكار قىلامسىز؟</string>
+ <string name="eip.warning.browser_inconsistency">VPNباغلىنىشنى ئتىۋېتەمسىز؟ ئەگەر VPN ئېتىۋېتىلسە، سەخسىي ئۇچۇرلىرىڭىز ئىنتېرنېت تەمىنلىگۈچى ياكى يەرلىك توردا ئاشكارىلنىپ قېلىشى مۈمكىن.</string>
+ <string name="eip_state_not_connected">ئىشلىمەيدۇ! باغلىنىش بىخەتەر ئەمەس! </string>
+ <string name="eip_state_connected">باغلانما بىخەتەرلىگى</string>
+ <string name="provider_problem">تەمىنلىگۈچىدە مەسىلە باردەك قىلىدۇ.</string>
+ <string name="try_another_provider">باشقا تەمىنلىگۈچىنى سىناپ بېقىڭ، ياكى ئۆزىڭىزنىڭكى بىلەن ئالاقىلىشىڭ.</string>
+ <string name="default_username">نامسىز</string>
+ <string name="logging_in">كىرىۋاتىدۇ</string>
+ <string name="signing_up">تىزىملىنىۋاتىدۇ</string>
+ <string name="vpn.button.turn.on">ئاچ</string>
+ <string name="vpn.button.turn.off">ئەت</string>
+ <string name="vpn_button_turn_off_blocking">چەكلىمىنى توختات</string>
+ <string name="vpn_securely_routed">سىزنىڭ تور قاتنىشىڭىز بىخەتەر ھالدا شۇ يەردىن ئۆتۈشكە يوللاندى:</string>
+ <string name="vpn_securely_routed_no_internet">ئىنتېرنېت باغلىنىشى بايقالمىدى. قايتا باغلانسا، تور قاتنىشىڭىزنى شۇ يەردىن بىخەتەر ئۆتۈشكە يوللايمىز: </string>
+ <string name="log_fragment_title">خاتىرە</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">يول باشلىغۇچىنىڭ تارتمىسىنى ئاچ</string>
+ <string name="navigation_drawer_close">يول اشلىغۇچىنىڭ تاتمىسىنى ئەت</string>
+ <string name="action_example">ئۈلگىلىك ھەرىكەت</string>
+ <string name="action_settings">ئورناتمىلار</string>
+ <string name="void_vpn_establish">%s پۈتۈن سىرتقا چىقىدىغان ئىنتېرنېت قاتنىشىنى چەكلەش.</string>
+ <string name="void_vpn_stopped">بارلىق سىرتقا چىقىدىغان ئىنتېرنېت قاتنىشىنى چەكلەشنى توختىتىش</string>
+ <string name="void_vpn_title">ئالاقىنى تاقاش</string>
+ <string name="update_provider_details">تەمىنلىگۈچىنىڭ تەپسىلاتلىرىنى يېڭىلاش</string>
+ <string name="update_certificate">كېنىشكە يېڭىلاش</string>
+ <string name="warning_eip_json_corrupted">تەمىنلىگۈچىنىڭ سەپلىمىلىرىنى يېڭىلاش مەغلۇپ بولدى.</string>
+ <string name="eip_json_corrupted_user_message">تەمىنلىگۈچىنىڭ سەپلىمىسنى يېڭىلاش مەغلۇپ بولدى.
كىرىپ قايتىدىن سىنىغايسىز.</string>
- <string name="warning_client_parsing_error_gateways">تەمىنلىگۈچىنىڭ دەرۋازىسىنى تونۇغىلى بولمايۋاتىدۇ. ئۇلار خاتا سەپلەنگەندەك قىلىدۇ.</string>
- <string name="warning_corrupted_provider_details">ساقلانغان تەمىنلىگۈچى تەپسىلاتلىرى بۇزۇلغان. سىز %s نى يېڭىلىسىڭىزمۇ(تەۋسىيە قىلىمىز) بولىدۇ ياكى بىر تىجارەت خاراكتىرلىك CA كېنىشكىسى ئىشلەتسىڭىزمۇ بولىدۇ.</string>
- <string name="warning_corrupted_provider_cert">ساقلانغان تەمىنلىگۈچى كېنىشكىسى ئىناۋەتسىز. سىز %s نى يېڭىلىسىڭىزمۇ(تەۋسىيە قىلىمىز) بولىدۇ ياكى تەمىنلىگۈچى كېنىشكىسىنى بىر تىجارەت خاراكتىرلىك CA كېنىشكىسى بىلەن يېڭىلىسىڭىزمۇ بولىدۇ.</string>
- <string name="warning_expired_provider_cert">ساقلانغان تەمىنلىگۈچى كېنىشكىسىنىڭ ۋاقتى ئۆتۈپ كېتىپتۇ. سىز %s نى يېڭىلىسىڭىزمۇ(تەۋسىيە قىلىمىز) بولىدۇ ياكى تەمىنلىگۈچى كېنىشكىسىنى بىر تىجارەت خاراكتىرلىك CA كېنىشكىسى بىلەن يېڭىلىسىڭىزمۇ بولىدۇ.</string>
- <string name="downloading_vpn_certificate_failed">VPN كېنىشكىسىنى چۈشۈرۈۋاتقاندا مەغلۇپ بولدى. قايتا سىناڭ ياكى باشقا بىر تەمىنلىگۈچى تاللاڭ.</string>
- <string name="vpn_certificate_is_invalid">VPN كېنىشكىسى ئىناۋەتسىز. يېڭى بىرنى چۈشۈرۈپ سىناپ بېقىڭ.</string>
- <string name="vpn_certificate_user_message">بۇ VPN كېنىشكىسى ئىناۋەتسىز. سېستىمىغا كىرىپ يېڭى بىرنى چۈشۈرۈڭ.</string>
- <string name="save_battery">باتارىيە تېجەش</string>
- <string name="subtitle_save_battery">VPN قىزىق نۇقتىسى ئوچۇق بولسا تاقاش</string>
- <string name="save_battery_message">ئارقىدىكى سانلىق باغلىنىشلار تېلىفونىڭىز ئاكتىپ بولغىچە ساقلىتىلىدۇ.</string>
- <string name="always_on_vpn">VPN ھەر ۋاقىت ئوچۇق</string>
- <string name="subtitle_always_on_vpn">ئاندروئىد سېستىما بەلگىلەشلىرىنى ئېچىش</string>
- <string name="tethering">VPN قىزىق نۇقتىسى</string>
- <string name="ipv6Firewall">IPv6 نى چەكلەش </string>
- <string name="require_root">رۇت ھوقۇقىنى تەلەپ قىلىدۇ</string>
- <string name="show_experimental">سىناق ئالاھىدىلىكلەرنى كۆرسەت</string>
- <string name="hide_experimental">سىناق ئالاھىدىلىكلەرنى يوشۇر</string>
- <string name="tethering_enabled_message">ئاۋال <![CDATA[<b>سېستىما بېكىتىلمىلىرى</b>]]> ئىچىدىكى باغلانمىنىڭ ئوچۇق ياكى ئەمەسلىگىنى تەكشۈرۈڭ.</string>
- <string name="tethering_message">VPN نىڭىزنى باشقا ئۈسكىنىلەرگە ھەمبەھرلەڭ:</string>
- <string name="tethering_wifi">Wifi قىزىق نۇقتىسى</string>
- <string name="tethering_usb">USB باغلىنىشى</string>
- <string name="tethering_bluetooth">كۆك چىش باغلانىشى</string>
- <string name="do_not_show_again">قايتا كۆرسەتمە</string>
- <string name="always_on_vpn_user_message">VPNنى ئاندروئىد VPN بېكىتىلمىلىرىدە دائىم-ئوچۇق قىلىش ئۈچۈن، سەپلىمىلەر سىن بەلگىسى [img src] گە چېكىڭ ۋە ئاچقۇچنى ئېچىڭ. </string>
- <string name="always_on_blocking_vpn_user_message">خۇسۇسىي مەخپىيىتىڭىزنى ئەڭ ياخشى قوغداش ئۈچۈن، \"VPN سىز باغلىنىشنى چەكلەش\" دىگەن تاللاشنى ئاكتىپ قىلسىڭىزمۇ بولىدۇ.</string>
- <string name="donate_title">ئىئانە</string>
- <string name="donate_default_message">بىخەتەر ئالاقىلىلىشنى ئاخىرقى ئىشلەتكۈچى ۋە مۇلازىمەت تەمىنلىگۈچى ھەر ئىككى تەرەپكە ئاسانلاشتۇرغىنىمىزنى قىممەتلىك دەپ قارىسىڭىز، بۈگۈنلا ئىئانە قىلغايسىز.</string>
- <string name="donate_message">LEAP ئىئانە ۋە ياردەملەرگە باغلىق. بىخەتەر ئالاقىلىلىشنى ئاخىرقى ئىشلەتكۈچى ۋە مۇلازىمەت تەمىنلىگۈچى ھەر ئىككى تەرەپكە ئاسانلاشتۇرۇشنى قىممەتلىك دەپ قارىسىڭىز، بۈگۈنلا ئىئانە قىلغايسىز.</string>
- <string name="donate_button_remind_later">كېيىن ئەسكەرت</string>
- <string name="donate_button_donate">ئىئانە</string>
- <string name="obfuscated_connection">بىر مۇجىمەللەشتۈرۈلگەن باغلىنىشنى ئىشلىتىش.</string>
- <string name="obfuscated_connection_try">بىر مۇجىمەللەشتۈرۈلگەن باغلىنىشنى سىناش.</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">ئايلانما VPN سۈزگۈچ</string>
- <string name="warning_exclude_apps_message">VPN نىڭ سىرتىدا قالغان ئەپلەرگە دىققەت قىلىپ قويۇڭ. بۇ كىملگىڭىزنى ئاشكارىلاپ قويۇشى ۋە بىخەتەرلىكىڭىزگە خەۋپ يەتكۈزۈشى مۈمكىن.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="one">%d قوغداقسىز ئەپ</item>
- <item quantity="other">%d قوغداقسىز ئەپلەر</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s باغلىنالمايۋاتىدۇ. بەلكىم VPN باغلىنىشلىرىڭىز چەكلەنگەن بولىشى مۈمكىن. مۇجىمەل باغلىنىشلار بىلەن باغلىنىشنى سىنىغىڭىز بارمۇ؟</string>
- <string name="warning_no_more_gateways_no_pt">%s گە ئباغلىنالمىدى. قايتا سىنامسىز؟</string>
- <string name="warning_no_more_gateways_use_ovpn">%s باغلىنالمايۋاتىدۇ. بەلكىم VPN باغلىنىشلىرىڭىز چەكلەنگەن بولىشى مۈمكىن. بىز ئۆلچەملىك باغلىنىش بىلەن باغلىنىشنى سىنىغىڭىز بارمۇ؟ </string>
- <string name="warning_option_try_pt">مۈجىمەل باغلىنىشنى سىناش</string>
- <string name="warning_option_try_ovpn">ئۆلچەملىك باغلىنىشنى سىنا</string>
- <string name="vpn_error_establish">ئاندروئىدتا VPN مۇلازىمىتى قۇرۇش مەغلۇپ بولدى.</string>
- <string name="root_permission_error">%s VPN قىزىق نۇقتا ياكى IPv6 ئوخشاش ئىقتىدارلار، رۇت ھوقۇقلىرى بولمىسا ئىجرا قىلىنمايدۇ. </string>
- <string name="qs_enable_vpn">باشلا%s</string>
- <string name="version_update_found">بۇ يەرنى چېكىپ چۈشۈرۈشنى باشلاڭ.</string>
- <string name="version_update_title">يېڭى بىر %s نەشرى تېپىلدى.</string>
- <string name="version_update_apk_description">يېڭى بىر %s نەشرى چۈشىرىلىۋاتىدۇ</string>
- <string name="version_update_download_title">بىر يېڭى %s نەشرى چۈشۈرۈلگەن.</string>
- <string name="version_update_download_description">بۇ يەرنى بېسىپ يېڭىلىمىنى قاچىلاڭ</string>
- <string name="version_update_error_pgp_verification">PGP دەلىللەش خاتاسى: چۈشۈرۈش ئېتىبارغا ئېلىنمايدۇ.</string>
- <string name="version_update_error">يېڭىلاش مەغلۇپ بولدى</string>
- <string name="version_update_error_permissions">بۇ ئەپنى قاچىلاشقا ھوقۇقىڭىز يوق</string>
- <string name="gateway_selection_title">ئورنىڭىزنى تاللاڭ</string>
- <string name="gateway_selection_recommended">تەۋسىيە</string>
- <string name="gateway_selection_automatic">ئاپتۇماتىك</string>
- <string name="log_done">ئىجرا قىلىنىۋاتىدۇ</string>
- <string name="hide">يوشۇر</string>
- <string name="advanced_settings">ئالىي تەڭشەكلەر</string>
+ <string name="warning_client_parsing_error_gateways">تەمىنلىگۈچىنىڭ دەرۋازىسىنى تونۇغىلى بولمايۋاتىدۇ. ئۇلار خاتا سەپلەنگەندەك قىلىدۇ.</string>
+ <string name="warning_corrupted_provider_details">ساقلانغان تەمىنلىگۈچى تەپسىلاتلىرى بۇزۇلغان. سىز %s نى يېڭىلىسىڭىزمۇ(تەۋسىيە قىلىمىز) بولىدۇ ياكى بىر تىجارەت خاراكتىرلىك CA كېنىشكىسى ئىشلەتسىڭىزمۇ بولىدۇ.</string>
+ <string name="warning_corrupted_provider_cert">ساقلانغان تەمىنلىگۈچى كېنىشكىسى ئىناۋەتسىز. سىز %s نى يېڭىلىسىڭىزمۇ(تەۋسىيە قىلىمىز) بولىدۇ ياكى تەمىنلىگۈچى كېنىشكىسىنى بىر تىجارەت خاراكتىرلىك CA كېنىشكىسى بىلەن يېڭىلىسىڭىزمۇ بولىدۇ.</string>
+ <string name="warning_expired_provider_cert">ساقلانغان تەمىنلىگۈچى كېنىشكىسىنىڭ ۋاقتى ئۆتۈپ كېتىپتۇ. سىز %s نى يېڭىلىسىڭىزمۇ(تەۋسىيە قىلىمىز) بولىدۇ ياكى تەمىنلىگۈچى كېنىشكىسىنى بىر تىجارەت خاراكتىرلىك CA كېنىشكىسى بىلەن يېڭىلىسىڭىزمۇ بولىدۇ.</string>
+ <string name="downloading_vpn_certificate_failed">VPN كېنىشكىسىنى چۈشۈرۈۋاتقاندا مەغلۇپ بولدى. قايتا سىناڭ ياكى باشقا بىر تەمىنلىگۈچى تاللاڭ.</string>
+ <string name="vpn_certificate_is_invalid">VPN كېنىشكىسى ئىناۋەتسىز. يېڭى بىرنى چۈشۈرۈپ سىناپ بېقىڭ.</string>
+ <string name="vpn_certificate_user_message">بۇ VPN كېنىشكىسى ئىناۋەتسىز. سېستىمىغا كىرىپ يېڭى بىرنى چۈشۈرۈڭ.</string>
+ <string name="save_battery">باتارىيە تېجەش</string>
+ <string name="subtitle_save_battery">VPN قىزىق نۇقتىسى ئوچۇق بولسا تاقاش</string>
+ <string name="save_battery_message">ئارقىدىكى سانلىق باغلىنىشلار تېلىفونىڭىز ئاكتىپ بولغىچە ساقلىتىلىدۇ.</string>
+ <string name="always_on_vpn">VPN ھەر ۋاقىت ئوچۇق</string>
+ <string name="subtitle_always_on_vpn">ئاندروئىد سېستىما بەلگىلەشلىرىنى ئېچىش</string>
+ <string name="tethering">VPN قىزىق نۇقتىسى</string>
+ <string name="ipv6Firewall">IPv6 نى چەكلەش </string>
+ <string name="require_root">رۇت ھوقۇقىنى تەلەپ قىلىدۇ</string>
+ <string name="show_experimental">سىناق ئالاھىدىلىكلەرنى كۆرسەت</string>
+ <string name="hide_experimental">سىناق ئالاھىدىلىكلەرنى يوشۇر</string>
+ <string name="tethering_enabled_message">ئاۋال <![CDATA[<b>سېستىما بېكىتىلمىلىرى</b>]]> ئىچىدىكى باغلانمىنىڭ ئوچۇق ياكى ئەمەسلىگىنى تەكشۈرۈڭ.</string>
+ <string name="tethering_message">VPN نىڭىزنى باشقا ئۈسكىنىلەرگە ھەمبەھرلەڭ:</string>
+ <string name="tethering_wifi">Wifi قىزىق نۇقتىسى</string>
+ <string name="tethering_usb">USB باغلىنىشى</string>
+ <string name="tethering_bluetooth">كۆك چىش باغلانىشى</string>
+ <string name="do_not_show_again">قايتا كۆرسەتمە</string>
+ <string name="always_on_vpn_user_message">VPNنى ئاندروئىد VPN بېكىتىلمىلىرىدە دائىم-ئوچۇق قىلىش ئۈچۈن، سەپلىمىلەر سىن بەلگىسى [img src] گە چېكىڭ ۋە ئاچقۇچنى ئېچىڭ. </string>
+ <string name="always_on_blocking_vpn_user_message">خۇسۇسىي مەخپىيىتىڭىزنى ئەڭ ياخشى قوغداش ئۈچۈن، \"VPN سىز باغلىنىشنى چەكلەش\" دىگەن تاللاشنى ئاكتىپ قىلسىڭىزمۇ بولىدۇ.</string>
+ <string name="donate_title">ئىئانە</string>
+ <string name="donate_default_message">بىخەتەر ئالاقىلىلىشنى ئاخىرقى ئىشلەتكۈچى ۋە مۇلازىمەت تەمىنلىگۈچى ھەر ئىككى تەرەپكە ئاسانلاشتۇرغىنىمىزنى قىممەتلىك دەپ قارىسىڭىز، بۈگۈنلا ئىئانە قىلغايسىز.</string>
+ <string name="donate_message">LEAP ئىئانە ۋە ياردەملەرگە باغلىق. بىخەتەر ئالاقىلىلىشنى ئاخىرقى ئىشلەتكۈچى ۋە مۇلازىمەت تەمىنلىگۈچى ھەر ئىككى تەرەپكە ئاسانلاشتۇرۇشنى قىممەتلىك دەپ قارىسىڭىز، بۈگۈنلا ئىئانە قىلغايسىز.</string>
+ <string name="donate_button_remind_later">كېيىن ئەسكەرت</string>
+ <string name="donate_button_donate">ئىئانە</string>
+ <string name="obfuscated_connection">بىر مۇجىمەللەشتۈرۈلگەن باغلىنىشنى ئىشلىتىش.</string>
+ <string name="obfuscated_connection_try">بىر مۇجىمەللەشتۈرۈلگەن باغلىنىشنى سىناش.</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">ئايلانما VPN سۈزگۈچ</string>
+ <string name="warning_exclude_apps_message">VPN نىڭ سىرتىدا قالغان ئەپلەرگە دىققەت قىلىپ قويۇڭ. بۇ كىملگىڭىزنى ئاشكارىلاپ قويۇشى ۋە بىخەتەرلىكىڭىزگە خەۋپ يەتكۈزۈشى مۈمكىن.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="one">%d قوغداقسىز ئەپ</item>
+ <item quantity="other">%d قوغداقسىز ئەپلەر</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s باغلىنالمايۋاتىدۇ. بەلكىم VPN باغلىنىشلىرىڭىز چەكلەنگەن بولىشى مۈمكىن. مۇجىمەل باغلىنىشلار بىلەن باغلىنىشنى سىنىغىڭىز بارمۇ؟</string>
+ <string name="warning_no_more_gateways_no_pt">%s گە ئباغلىنالمىدى. قايتا سىنامسىز؟</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s باغلىنالمايۋاتىدۇ. بەلكىم VPN باغلىنىشلىرىڭىز چەكلەنگەن بولىشى مۈمكىن. بىز ئۆلچەملىك باغلىنىش بىلەن باغلىنىشنى سىنىغىڭىز بارمۇ؟ </string>
+ <string name="warning_option_try_pt">مۈجىمەل باغلىنىشنى سىناش</string>
+ <string name="warning_option_try_ovpn">ئۆلچەملىك باغلىنىشنى سىنا</string>
+ <string name="vpn_error_establish">ئاندروئىدتا VPN مۇلازىمىتى قۇرۇش مەغلۇپ بولدى.</string>
+ <string name="root_permission_error">%s VPN قىزىق نۇقتا ياكى IPv6 ئوخشاش ئىقتىدارلار، رۇت ھوقۇقلىرى بولمىسا ئىجرا قىلىنمايدۇ. </string>
+ <string name="qs_enable_vpn">باشلا%s</string>
+ <string name="version_update_found">بۇ يەرنى چېكىپ چۈشۈرۈشنى باشلاڭ.</string>
+ <string name="version_update_title">يېڭى بىر %s نەشرى تېپىلدى.</string>
+ <string name="version_update_apk_description">يېڭى بىر %s نەشرى چۈشىرىلىۋاتىدۇ</string>
+ <string name="version_update_download_title">بىر يېڭى %s نەشرى چۈشۈرۈلگەن.</string>
+ <string name="version_update_download_description">بۇ يەرنى بېسىپ يېڭىلىمىنى قاچىلاڭ</string>
+ <string name="version_update_error_pgp_verification">PGP دەلىللەش خاتاسى: چۈشۈرۈش ئېتىبارغا ئېلىنمايدۇ.</string>
+ <string name="version_update_error">يېڭىلاش مەغلۇپ بولدى</string>
+ <string name="version_update_error_permissions">بۇ ئەپنى قاچىلاشقا ھوقۇقىڭىز يوق</string>
+ <string name="gateway_selection_title">ئورنىڭىزنى تاللاڭ</string>
+ <string name="gateway_selection_recommended">تەۋسىيە</string>
+ <string name="gateway_selection_automatic">ئاپتۇماتىك</string>
+ <string name="log_done">ئىجرا قىلىنىۋاتىدۇ</string>
+ <string name="hide">يوشۇر</string>
+ <string name="advanced_settings">ئالىي تەڭشەكلەر</string>
</resources>
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index b6fd056a..0c9d605b 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -1,179 +1,179 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="retry">Повторити</string>
- <string name="repository_url_text">Вихідний код доступний на: https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Відстеження проблем доступно на https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Ми вітаємо перекладацькі зусилля. Перегляньте проєкт на Transifex: https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Змінити постачальника</string>
- <string name="info">Інформація</string>
- <string name="show_connection_details">Показати відомості про підключення</string>
- <string name="connection_details">Відомості про підключення</string>
- <string name="routes_info">Маршрути: %s</string>
- <string name="routes_info6">Маршрути IPv6: %s</string>
- <string name="error_empty_username">Ім\'я користувача не може бути порожнім.</string>
- <string name="provider_label">Постачальник:</string>
- <string name="provider_label_none">Постачальника не налаштовано</string>
- <string name="status_unknown">Стан невідомий.</string>
- <string name="eip_service_label">Шифрований VPN для доступу до інтернету</string>
- <string name="configuration_wizard_title">Обрати постачальника послуг</string>
- <string name="add_provider">Додати нового постачальника</string>
- <string name="introduce_new_provider">Додати нового постачальника послуг</string>
- <string name="save">Зберегти</string>
- <string name="new_provider_uri">Назва домена</string>
- <string name="valid_url_entered">URL-адреса правильна</string>
- <string name="not_valid_url_entered">URL-адреса неправильна</string>
- <string name="provider_details_title">Деталі постачальника</string>
- <string name="use_anonymously_button">Використовувати анонімно</string>
- <string name="username_hint">ім\'я користувача</string>
- <string name="username_ask">Будь ласка, введіть ім\'я користувача</string>
- <string name="password_ask">Будь ласка, введіть свій пароль</string>
- <string name="password_hint">пароль</string>
- <string name="password_match">Паролі збігаються</string>
- <string name="password_mismatch">Паролі не збігаються</string>
- <string name="user_message">Повідомлення користувача</string>
- <string name="about_fragment_title">Про</string>
- <string name="exclude_apps_fragment_title">Виключити застосунки з VPN</string>
- <string name="error_srp_math_error_user_message">Спробуйте знов: Помилка підрахунку сервера</string>
- <string name="error_bad_user_password_user_message">Неправильне ім\'я користувача або пароль</string>
- <string name="error_not_valid_password_user_message">Він має бути щонайменше 8 символів</string>
- <string name="error_client_http_user_message">Спробуйте знов: Помилка клієнта HTTP</string>
- <string name="error_io_exception_user_message">Спробуйте знов: Помилка введення / виведення</string>
- <string name="error_json_exception_user_message">Спробуйте знов: Неправильна відповідь від сервера</string>
- <string name="error_no_such_algorithm_exception_user_message">Алгоритм шифрування не знайдено. Будь ласка, оновіть Android!</string>
- <string name="signup_or_login_button">Зареєструватись / Увійти</string>
- <string name="login_button">Вхід у систему</string>
- <string name="login_to_profile">Увійти до облікового запису</string>
- <string name="logout_button">Вийти</string>
- <string name="signup_button">Зареєструватись</string>
- <string name="create_profile">Створити обліковий запис</string>
- <string name="setup_provider">Налаштувати постачальника</string>
- <string name="setup_error_title">Помилка налаштування</string>
- <string name="setup_error_configure_button">Налаштування</string>
- <string name="setup_error_close_button">Вихід</string>
- <string name="server_unreachable_message">Сервер недоступний, будь ласка, спробуйте знов.</string>
- <string name="error.security.pinnedcertificate">Помилка безпеки, оновіть застосунок або оберіть іншого постачальника.</string>
- <string name="malformed_url">Здається, це не постачальник %s.</string>
- <string name="certificate_error">Це не довірений постачальник %s.</string>
- <string name="service_is_down_error">Служба не працює.</string>
- <string name="configuring_provider">Налаштування постачальника</string>
- <string name="incorrectly_downloaded_certificate_message">Ваш анонімний сертифікат не завантажено</string>
- <string name="downloading_certificate_message">Завантаження сертифіката VPN</string>
- <string name="updating_certificate_message">Оновлення сертифіката VPN</string>
- <string name="login.riseup.warning">Користувачам Riseup потрібно створити окремий обліковий запис задля користування службою VPN</string>
- <string name="succesful_authentication_message">Автентифіковано</string>
- <string name="authentication_failed_message">Збій автентифікації</string>
- <string name="registration_failed_message">Реєстрація не вдалась</string>
- <string name="eip_status_start_pending">Починаємо з\'єднання</string>
- <string name="eip_status_connecting">Під\'єднуємось до VPN</string>
- <string name="eip_status_unsecured">Незахищене з\'єднання</string>
- <string name="eip_status_secured">Захищене з\'єднання</string>
- <string name="eip_cancel_connect_title">Скасувати з\'єднання?</string>
- <string name="eip_cancel_connect_text">Зараз відбувається спроба з\'єднання. Бажаєте скасувати її?</string>
- <string name="eip.warning.browser_inconsistency">Вимкнути з\'єднання VPN? Коли VPN вимкнено, ваша персональна інформація може потрапити до постачальника послуг інтернету або локальної мережі.</string>
- <string name="eip_state_not_connected">Не працює! Небезпечне з\'єднання!</string>
- <string name="eip_state_connected">Безпечне з\'єднання</string>
- <string name="provider_problem">Схоже на проблему у постачальника.</string>
- <string name="try_another_provider">Будь ласка, спробуйте іншого постачальника, або сконтактуйте зі своїм. </string>
- <string name="default_username">Анонімно</string>
- <string name="logging_in">Вхід</string>
- <string name="signing_up">Реєстрація</string>
- <string name="vpn.button.turn.on">Увімкнути</string>
- <string name="vpn.button.turn.off">Вимкнути</string>
- <string name="vpn_button_turn_off_blocking">Не блокувати</string>
- <string name="vpn_securely_routed">Ваш трафік безпечно перенаправляється через:</string>
- <string name="vpn_securely_routed_no_internet">Відсутнє з\'єднання з інтернетом, щойно воно з\'явиться – ваш трафік безпечно перенаправлятиметься через:</string>
- <string name="log_fragment_title">Журнал</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Відкрити панель навігації</string>
- <string name="navigation_drawer_close">Закрити панель навігації</string>
- <string name="action_settings">Налаштування</string>
- <string name="void_vpn_establish">%s блокує увесь вихідний трафік інтернету.</string>
- <string name="void_vpn_error_establish">Блокування всього трафіку інтернету не вдалось.</string>
- <string name="void_vpn_stopped">Блокування вихідного трафіку припинилось.</string>
- <string name="void_vpn_title">Блокування трафіку</string>
- <string name="update_provider_details">Оновити дані постачальника</string>
- <string name="update_certificate">Оновити сертифікат</string>
- <string name="warning_eip_json_corrupted">Оновлення налаштувань постачальника не вдалось.</string>
- <string name="vpn_certificate_is_invalid">Сертифікат VPN недійсний. Спробуйте завантажити новий.</string>
- <string name="vpn_certificate_user_message">Сертифікат VPN недійсний. Будь ласка, увійдіть для завантаження нового сертифікату.</string>
- <string name="save_battery">Економія заряду</string>
- <string name="subtitle_save_battery">Недоступне під час використання Точки доступу VPN</string>
- <string name="always_on_vpn">VPN завжди увімкнено</string>
- <string name="subtitle_always_on_vpn">Відкрити системні налаштування Android</string>
- <string name="tethering">Точка доступу VPN</string>
- <string name="ipv6Firewall">Блокувати IPv6</string>
- <string name="require_root">Вимагає прав кореневого доступу</string>
- <string name="show_experimental">Показувати експериментальні можливості</string>
- <string name="hide_experimental">Приховати експериментальні можливості</string>
- <string name="experimental_features">Експериментальні можливості</string>
- <string name="tethering_enabled_message">Будь ласка, спочатку впевніться, що можливість використання комп\'ютером мобільного пристрою як точки доступу увімкнено у <![CDATA[<b>системних налаштуваннях</b>]]>.</string>
- <string name="tethering_message">Поділитись VPN з іншими пристроями через:</string>
- <string name="tethering_wifi">Точка доступу Wi-Fi</string>
- <string name="tethering_usb">Використання мобільного пристрою як модема через USB</string>
- <string name="tethering_bluetooth">Використання мобільного пристрою як модема через Bluetooth</string>
- <string name="do_not_show_again">Не показувати знов</string>
- <string name="donate_title">Пожертвування</string>
- <string name="donate_button_remind_later">Нагадайте мені пізніше</string>
- <string name="donate_button_donate">Пожертвування</string>
- <string name="obfuscated_connection">Використовувати замасковане з\'єднання.</string>
- <string name="obfuscated_connection_try">Спроба встановлення замаскованого з\'єднання.</string>
- <string name="nav_drawer_obfuscated_connection">Використати мости</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Обходити фільтрування VPN</string>
- <string name="warning_option_try_best">Обрати найкраще місцеперебування</string>
- <string name="warning_option_try_pt">Обрати замасковане з\'єднання</string>
- <string name="warning_option_try_ovpn">Обрати стандартне з\'єднання</string>
- <string name="version_update_found">Торкніться для завантаження.</string>
- <string name="version_update_title">Знайдено нову версію %s.</string>
- <string name="version_update_apk_description">Завантаження нової версії %s</string>
- <string name="version_update_download_title">Нова версія %s завантажена.</string>
- <string name="version_update_download_description">Торкніться для встановлення оновлення.</string>
- <string name="version_update_error_pgp_verification">Помилка перевірки PGP. Завантаження ігнороване.</string>
- <string name="version_update_error">Оновлення не вдалось.</string>
- <string name="version_update_error_permissions">Відсутні дозволи на встановлення застосунку.</string>
- <string name="gateway_selection_title">Вибрати місцеперебування</string>
- <string name="gateway_selection_recommended_location">Рекомендоване місцеперебування</string>
- <string name="gateway_selection_recommended">Рекомендоване</string>
- <string name="gateway_selection_manually">Обрати вручну</string>
- <string name="gateway_selection_automatic_location">Автоматично використовувати найкраще з\'єднання</string>
- <string name="gateway_selection_automatic">Автоматично</string>
- <string name="reconnecting">З\'єднання знов...</string>
- <string name="tor_starting">Наводимо мости для обходу цензурування...</string>
- <string name="tor_stopping">Розводимо мости</string>
- <string name="tor_started">Використовуємо мости для обходу цензурування</string>
- <string name="log_conn_done_pt">З\'єднано з додатковим передавачем</string>
- <string name="log_conn_pt">З\'єднання з додатковим передавачем</string>
- <string name="log_conn_done">Під\'єднано до ретранслятора</string>
- <string name="log_onehop_create">Встановлення зашифрованого з\'єднання до каталогу</string>
- <string name="log_loading_keys">Завантаження сертифікатів авторизації</string>
- <string name="log_circuit_create">Створення ланцюга Tor </string>
- <string name="log_done">Запуск</string>
- <string name="channel_name_tor_service">Служба мостів %s</string>
- <string name="channel_description_tor_service">Інформує про використання мостів під час налаштування %s.</string>
- <string name="hide">Приховати</string>
- <string name="error_network_connection">%s не має інтернет з\'єднання. Будь ласка, перевірте налаштування WiFi та стільникових даних.</string>
- <string name="censorship_circumvention">Обхід цензурування</string>
- <string name="use_snowflake">Використовувати Snowflake</string>
- <string name="vpn_settings">Налаштування VPN</string>
- <string name="prefer_udp">Використовувати UDP за можливості</string>
- <string name="advanced_settings">Додаткові налаштування</string>
- <string name="cancel_connection">Від\'єднати</string>
- <string name="unknown_location">Невідоме місцеперебування</string>
- <string name="splash_footer">Розроблено LEAP</string>
- <string name="welcome">Ласкаво просимо!</string>
- <string name="select_provider">Обрати постачальника</string>
- <string name="next">Далі</string>
- <string name="title_circumvention_setup">Чи потрібен Вам обхід цензури?</string>
- <string name="circumvention_setup_description">Якщо ви живете там, де Інтернет цензурується, ви можете скористатися нашими параметрами обходу цензури, щоб отримати доступ до всіх інтернет-сервісів. Ці налаштування сповільнять ваше з’єднання!</string>
- <string name="circumvention_setup_hint">%s автоматично намагатиметься під\'єднати вас до Інтернету за допомогою різноманітних технологій обходу цензури. Ви можете додатково налаштувати це в розширених налаштуваннях.</string>
- <string name="use_standard_vpn">Використовувати стандартний %s</string>
- <string name="use_circumvention_tech">Використовувати способи обходи цензури (повільніше)</string>
- <string name="description_configure_provider">Для з\'єднання з вашим постачальником послуг %1$s отримує усю інформацію, необхідну для з\'єднання. Це відбувається лише під час першого налаштування.</string>
- <string name="details">Деталі</string>
- <string name="tor_status">Статус Tor</string>
- <string name="snowflake_status">Статус Snowflake</string>
- <string name="snowflake_started">Клієнт Snowflake запущений</string>
- <string name="snowflake_sending_data">Пересилання даних через Snowflake</string>
- <string name="title_setup_success">Усе налаштовано!</string>
- <string name="setup_success_description">Натисніть на кнопку нижче для з\'єднання</string>
- <string name="permission_rejected">Запит на дозвіл відхилено.</string>
+ <string name="retry">Повторити</string>
+ <string name="repository_url_text">Вихідний код доступний на: https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Відстеження проблем доступно на https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Ми вітаємо перекладацькі зусилля. Перегляньте проєкт на Transifex: https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Змінити постачальника</string>
+ <string name="info">Інформація</string>
+ <string name="show_connection_details">Показати відомості про підключення</string>
+ <string name="connection_details">Відомості про підключення</string>
+ <string name="routes_info">Маршрути: %s</string>
+ <string name="routes_info6">Маршрути IPv6: %s</string>
+ <string name="error_empty_username">Ім\'я користувача не може бути порожнім.</string>
+ <string name="provider_label">Постачальник:</string>
+ <string name="provider_label_none">Постачальника не налаштовано</string>
+ <string name="status_unknown">Стан невідомий.</string>
+ <string name="eip_service_label">Шифрований VPN для доступу до інтернету</string>
+ <string name="configuration_wizard_title">Обрати постачальника послуг</string>
+ <string name="add_provider">Додати нового постачальника</string>
+ <string name="introduce_new_provider">Додати нового постачальника послуг</string>
+ <string name="save">Зберегти</string>
+ <string name="new_provider_uri">Назва домена</string>
+ <string name="valid_url_entered">URL-адреса правильна</string>
+ <string name="not_valid_url_entered">URL-адреса неправильна</string>
+ <string name="provider_details_title">Деталі постачальника</string>
+ <string name="use_anonymously_button">Використовувати анонімно</string>
+ <string name="username_hint">ім\'я користувача</string>
+ <string name="username_ask">Будь ласка, введіть ім\'я користувача</string>
+ <string name="password_ask">Будь ласка, введіть свій пароль</string>
+ <string name="password_hint">пароль</string>
+ <string name="password_match">Паролі збігаються</string>
+ <string name="password_mismatch">Паролі не збігаються</string>
+ <string name="user_message">Повідомлення користувача</string>
+ <string name="about_fragment_title">Про</string>
+ <string name="exclude_apps_fragment_title">Виключити застосунки з VPN</string>
+ <string name="error_srp_math_error_user_message">Спробуйте знов: Помилка підрахунку сервера</string>
+ <string name="error_bad_user_password_user_message">Неправильне ім\'я користувача або пароль</string>
+ <string name="error_not_valid_password_user_message">Він має бути щонайменше 8 символів</string>
+ <string name="error_client_http_user_message">Спробуйте знов: Помилка клієнта HTTP</string>
+ <string name="error_io_exception_user_message">Спробуйте знов: Помилка введення / виведення</string>
+ <string name="error_json_exception_user_message">Спробуйте знов: Неправильна відповідь від сервера</string>
+ <string name="error_no_such_algorithm_exception_user_message">Алгоритм шифрування не знайдено. Будь ласка, оновіть Android!</string>
+ <string name="signup_or_login_button">Зареєструватись / Увійти</string>
+ <string name="login_button">Вхід у систему</string>
+ <string name="login_to_profile">Увійти до облікового запису</string>
+ <string name="logout_button">Вийти</string>
+ <string name="signup_button">Зареєструватись</string>
+ <string name="create_profile">Створити обліковий запис</string>
+ <string name="setup_provider">Налаштувати постачальника</string>
+ <string name="setup_error_title">Помилка налаштування</string>
+ <string name="setup_error_configure_button">Налаштування</string>
+ <string name="setup_error_close_button">Вихід</string>
+ <string name="server_unreachable_message">Сервер недоступний, будь ласка, спробуйте знов.</string>
+ <string name="error.security.pinnedcertificate">Помилка безпеки, оновіть застосунок або оберіть іншого постачальника.</string>
+ <string name="malformed_url">Здається, це не постачальник %s.</string>
+ <string name="certificate_error">Це не довірений постачальник %s.</string>
+ <string name="service_is_down_error">Служба не працює.</string>
+ <string name="configuring_provider">Налаштування постачальника</string>
+ <string name="incorrectly_downloaded_certificate_message">Ваш анонімний сертифікат не завантажено</string>
+ <string name="downloading_certificate_message">Завантаження сертифіката VPN</string>
+ <string name="updating_certificate_message">Оновлення сертифіката VPN</string>
+ <string name="login.riseup.warning">Користувачам Riseup потрібно створити окремий обліковий запис задля користування службою VPN</string>
+ <string name="succesful_authentication_message">Автентифіковано</string>
+ <string name="authentication_failed_message">Збій автентифікації</string>
+ <string name="registration_failed_message">Реєстрація не вдалась</string>
+ <string name="eip_status_start_pending">Починаємо з\'єднання</string>
+ <string name="eip_status_connecting">Під\'єднуємось до VPN</string>
+ <string name="eip_status_unsecured">Незахищене з\'єднання</string>
+ <string name="eip_status_secured">Захищене з\'єднання</string>
+ <string name="eip_cancel_connect_title">Скасувати з\'єднання?</string>
+ <string name="eip_cancel_connect_text">Зараз відбувається спроба з\'єднання. Бажаєте скасувати її?</string>
+ <string name="eip.warning.browser_inconsistency">Вимкнути з\'єднання VPN? Коли VPN вимкнено, ваша персональна інформація може потрапити до постачальника послуг інтернету або локальної мережі.</string>
+ <string name="eip_state_not_connected">Не працює! Небезпечне з\'єднання!</string>
+ <string name="eip_state_connected">Безпечне з\'єднання</string>
+ <string name="provider_problem">Схоже на проблему у постачальника.</string>
+ <string name="try_another_provider">Будь ласка, спробуйте іншого постачальника, або сконтактуйте зі своїм. </string>
+ <string name="default_username">Анонімно</string>
+ <string name="logging_in">Вхід</string>
+ <string name="signing_up">Реєстрація</string>
+ <string name="vpn.button.turn.on">Увімкнути</string>
+ <string name="vpn.button.turn.off">Вимкнути</string>
+ <string name="vpn_button_turn_off_blocking">Не блокувати</string>
+ <string name="vpn_securely_routed">Ваш трафік безпечно перенаправляється через:</string>
+ <string name="vpn_securely_routed_no_internet">Відсутнє з\'єднання з інтернетом, щойно воно з\'явиться – ваш трафік безпечно перенаправлятиметься через:</string>
+ <string name="log_fragment_title">Журнал</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Відкрити панель навігації</string>
+ <string name="navigation_drawer_close">Закрити панель навігації</string>
+ <string name="action_settings">Налаштування</string>
+ <string name="void_vpn_establish">%s блокує увесь вихідний трафік інтернету.</string>
+ <string name="void_vpn_error_establish">Блокування всього трафіку інтернету не вдалось.</string>
+ <string name="void_vpn_stopped">Блокування вихідного трафіку припинилось.</string>
+ <string name="void_vpn_title">Блокування трафіку</string>
+ <string name="update_provider_details">Оновити дані постачальника</string>
+ <string name="update_certificate">Оновити сертифікат</string>
+ <string name="warning_eip_json_corrupted">Оновлення налаштувань постачальника не вдалось.</string>
+ <string name="vpn_certificate_is_invalid">Сертифікат VPN недійсний. Спробуйте завантажити новий.</string>
+ <string name="vpn_certificate_user_message">Сертифікат VPN недійсний. Будь ласка, увійдіть для завантаження нового сертифікату.</string>
+ <string name="save_battery">Економія заряду</string>
+ <string name="subtitle_save_battery">Недоступне під час використання Точки доступу VPN</string>
+ <string name="always_on_vpn">VPN завжди увімкнено</string>
+ <string name="subtitle_always_on_vpn">Відкрити системні налаштування Android</string>
+ <string name="tethering">Точка доступу VPN</string>
+ <string name="ipv6Firewall">Блокувати IPv6</string>
+ <string name="require_root">Вимагає прав кореневого доступу</string>
+ <string name="show_experimental">Показувати експериментальні можливості</string>
+ <string name="hide_experimental">Приховати експериментальні можливості</string>
+ <string name="experimental_features">Експериментальні можливості</string>
+ <string name="tethering_enabled_message">Будь ласка, спочатку впевніться, що можливість використання комп\'ютером мобільного пристрою як точки доступу увімкнено у <![CDATA[<b>системних налаштуваннях</b>]]>.</string>
+ <string name="tethering_message">Поділитись VPN з іншими пристроями через:</string>
+ <string name="tethering_wifi">Точка доступу Wi-Fi</string>
+ <string name="tethering_usb">Використання мобільного пристрою як модема через USB</string>
+ <string name="tethering_bluetooth">Використання мобільного пристрою як модема через Bluetooth</string>
+ <string name="do_not_show_again">Не показувати знов</string>
+ <string name="donate_title">Пожертвування</string>
+ <string name="donate_button_remind_later">Нагадайте мені пізніше</string>
+ <string name="donate_button_donate">Пожертвування</string>
+ <string name="obfuscated_connection">Використовувати замасковане з\'єднання.</string>
+ <string name="obfuscated_connection_try">Спроба встановлення замаскованого з\'єднання.</string>
+ <string name="nav_drawer_obfuscated_connection">Використати мости</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Обходити фільтрування VPN</string>
+ <string name="warning_option_try_best">Обрати найкраще місцеперебування</string>
+ <string name="warning_option_try_pt">Обрати замасковане з\'єднання</string>
+ <string name="warning_option_try_ovpn">Обрати стандартне з\'єднання</string>
+ <string name="version_update_found">Торкніться для завантаження.</string>
+ <string name="version_update_title">Знайдено нову версію %s.</string>
+ <string name="version_update_apk_description">Завантаження нової версії %s</string>
+ <string name="version_update_download_title">Нова версія %s завантажена.</string>
+ <string name="version_update_download_description">Торкніться для встановлення оновлення.</string>
+ <string name="version_update_error_pgp_verification">Помилка перевірки PGP. Завантаження ігнороване.</string>
+ <string name="version_update_error">Оновлення не вдалось.</string>
+ <string name="version_update_error_permissions">Відсутні дозволи на встановлення застосунку.</string>
+ <string name="gateway_selection_title">Вибрати місцеперебування</string>
+ <string name="gateway_selection_recommended_location">Рекомендоване місцеперебування</string>
+ <string name="gateway_selection_recommended">Рекомендоване</string>
+ <string name="gateway_selection_manually">Обрати вручну</string>
+ <string name="gateway_selection_automatic_location">Автоматично використовувати найкраще з\'єднання</string>
+ <string name="gateway_selection_automatic">Автоматично</string>
+ <string name="reconnecting">З\'єднання знов...</string>
+ <string name="tor_starting">Наводимо мости для обходу цензурування...</string>
+ <string name="tor_stopping">Розводимо мости</string>
+ <string name="tor_started">Використовуємо мости для обходу цензурування</string>
+ <string name="log_conn_done_pt">З\'єднано з додатковим передавачем</string>
+ <string name="log_conn_pt">З\'єднання з додатковим передавачем</string>
+ <string name="log_conn_done">Під\'єднано до ретранслятора</string>
+ <string name="log_onehop_create">Встановлення зашифрованого з\'єднання до каталогу</string>
+ <string name="log_loading_keys">Завантаження сертифікатів авторизації</string>
+ <string name="log_circuit_create">Створення ланцюга Tor </string>
+ <string name="log_done">Запуск</string>
+ <string name="channel_name_tor_service">Служба мостів %s</string>
+ <string name="channel_description_tor_service">Інформує про використання мостів під час налаштування %s.</string>
+ <string name="hide">Приховати</string>
+ <string name="error_network_connection">%s не має інтернет з\'єднання. Будь ласка, перевірте налаштування WiFi та стільникових даних.</string>
+ <string name="censorship_circumvention">Обхід цензурування</string>
+ <string name="use_snowflake">Використовувати Snowflake</string>
+ <string name="vpn_settings">Налаштування VPN</string>
+ <string name="prefer_udp">Використовувати UDP за можливості</string>
+ <string name="advanced_settings">Додаткові налаштування</string>
+ <string name="cancel_connection">Від\'єднати</string>
+ <string name="unknown_location">Невідоме місцеперебування</string>
+ <string name="splash_footer">Розроблено LEAP</string>
+ <string name="welcome">Ласкаво просимо!</string>
+ <string name="select_provider">Обрати постачальника</string>
+ <string name="next">Далі</string>
+ <string name="title_circumvention_setup">Чи потрібен Вам обхід цензури?</string>
+ <string name="circumvention_setup_description">Якщо ви живете там, де Інтернет цензурується, ви можете скористатися нашими параметрами обходу цензури, щоб отримати доступ до всіх інтернет-сервісів. Ці налаштування сповільнять ваше з’єднання!</string>
+ <string name="circumvention_setup_hint">%s автоматично намагатиметься під\'єднати вас до Інтернету за допомогою різноманітних технологій обходу цензури. Ви можете додатково налаштувати це в розширених налаштуваннях.</string>
+ <string name="use_standard_vpn">Використовувати стандартний %s</string>
+ <string name="use_circumvention_tech">Використовувати способи обходи цензури (повільніше)</string>
+ <string name="description_configure_provider">Для з\'єднання з вашим постачальником послуг %1$s отримує усю інформацію, необхідну для з\'єднання. Це відбувається лише під час першого налаштування.</string>
+ <string name="details">Деталі</string>
+ <string name="tor_status">Статус Tor</string>
+ <string name="snowflake_status">Статус Snowflake</string>
+ <string name="snowflake_started">Клієнт Snowflake запущений</string>
+ <string name="snowflake_sending_data">Пересилання даних через Snowflake</string>
+ <string name="title_setup_success">Усе налаштовано!</string>
+ <string name="setup_success_description">Натисніть на кнопку нижче для з\'єднання</string>
+ <string name="permission_rejected">Запит на дозвіл відхилено.</string>
</resources>
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index 4914d69f..6a186c03 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -1,210 +1,206 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">Thử lại</string>
- <string name="repository_url_text">Mã nguồn có ở https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">Trình theo dõi vấn đề có ở https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Các bản dịch được chào đón và đánh giá cao. Hãy xem dự án Transifex của chúng tôi ở https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">Chuyển nhà cung cấp</string>
- <string name="info">thông tin</string>
- <string name="show_connection_details">Hiện chi tiết kết nối</string>
- <string name="connection_details">Chi tiết kết nối</string>
- <string name="routes_info">Đường dẫn: %s</string>
- <string name="routes_info6">Đường dẫn IPv6: %s</string>
- <string name="error_empty_username">Tên người dùng không được trống.</string>
- <string name="cert_from_keystore">Đã lấy chứng chỉ \'%s\' từ kho mã khoá</string>
- <string name="provider_label">Nhà cung cấp:</string>
- <string name="provider_label_none">Không có nhà cung cấp nào được thiết lập</string>
- <string name="status_unknown">Trạng thái không xác định.</string>
- <string name="eip_service_label">Truy cập Internet qua VPN được mã hoá</string>
- <string name="configuration_wizard_title">Chọn một nhà cung cấp dịch vụ</string>
- <string name="add_provider">Thêm nhà cung cấp mới</string>
- <string name="introduce_new_provider">Thêm một nhà cung cấp dịch vụ mới</string>
- <string name="save">Lưu</string>
- <string name="new_provider_uri">Tên miền</string>
- <string name="valid_url_entered">URL là hợp lệ</string>
- <string name="not_valid_url_entered">URL bị hỏng</string>
- <string name="provider_details_title">Chi tiết nhà cung cấp</string>
- <string name="use_anonymously_button">Sử dụng nặc danh</string>
- <string name="username_hint">tên người dùng</string>
- <string name="username_ask">Vui lòng nhập tên người dùng</string>
- <string name="password_ask">Vui lòng nhập mật khẩu</string>
- <string name="password_hint">mật khẩu</string>
- <string name="password_match">Các mật khẩu có khớp</string>
- <string name="password_mismatch">Các mật khẩu không khớp</string>
- <string name="user_message">Thông báo người dùng</string>
- <string name="about_fragment_title">Giới thiệu</string>
- <string name="exclude_apps_fragment_title">Loại trừ các ứng dụng khỏi VPN</string>
- <string name="error_srp_math_error_user_message">Hãy thử lại: Lỗi toán học máy chủ</string>
- <string name="error_bad_user_password_user_message">Tên người dùng hoặc mật khẩu không đúng</string>
- <string name="error_not_valid_password_user_message">Nó phải có ít nhất 8 kí tự</string>
- <string name="error_client_http_user_message">Hãy thử lại: Lỗi HTTP ứng dụng khách</string>
- <string name="error_io_exception_user_message">Hãy thử lại: Lỗi I/O</string>
- <string name="error_json_exception_user_message">Hãy thử lại: Phản hồi bị lỗi từ máy chủ</string>
- <string name="error_no_such_algorithm_exception_user_message">Không tìm thấy thuật toán mã hoá. Vui lòng nâng cấp Android!</string>
- <string name="signup_or_login_button">Đăng ký/Đăng nhập</string>
- <string name="login_button">Đăng nhập</string>
- <string name="login_to_profile">Đăng nhập vào hồ sơ</string>
- <string name="logout_button">Đăng xuất</string>
- <string name="signup_button">Đăng ký</string>
- <string name="create_profile">Tạo hồ sơ</string>
- <string name="setup_provider">Thiết lập nhà cung cấp</string>
- <string name="setup_error_title">Lỗi thiết lập</string>
- <string name="setup_error_configure_button">Thiết lập</string>
- <string name="setup_error_close_button">Thoát</string>
- <string name="setup_error_text">Đã xảy ra lỗi khi thiết lập %s với nhà cung cấp đã chọn.\n\nBạn có thể chọn thiết lập lại, hoặc thoát và thiết lập một nhà cung cấp vào lần khởi động sau.</string>
- <string name="setup_error_text_custom">Có lỗi khi thiết lập %s.\n\nBạn có thể chọn thiết lập lại hoặc thoát.</string>
- <string name="server_unreachable_message">Máy chủ không thể kết nối đến được, vui lòng thử lại.</string>
- <string name="error.security.pinnedcertificate">Lỗi bảo mật, hãy nâng cấp ứng dụng hoặc chọn một nhà cung cấp khác.</string>
- <string name="malformed_url">Nó không có vẻ là một nhà cung cấp %s.</string>
- <string name="certificate_error">Đây không phải là một nhà cung cấp %s được tin cậy.</string>
- <string name="service_is_down_error">Dịch vụ hiện không hoạt động.</string>
- <string name="configuring_provider">Đang thiết lập nhà cung cấp</string>
- <string name="incorrectly_downloaded_certificate_message">Chứng chỉ nặc danh của bạn đã không được tải xuống</string>
- <string name="downloading_certificate_message">Đang tải xuống chứng chỉ VPN</string>
- <string name="updating_certificate_message">Đang cập nhật chứng chỉ VPN</string>
- <string name="login.riseup.warning">Những người dùng Riseup sẽ cần tạo một tài khoản riêng để sử dụng dịch vụ VPN</string>
- <string name="succesful_authentication_message">Đã xác thực</string>
- <string name="authentication_failed_message">Xác thực thất bại</string>
- <string name="registration_failed_message">Đăng ký thất bại</string>
- <string name="eip_status_start_pending">Đang bắt đầu kết nối</string>
- <string name="eip_cancel_connect_title">Huỷ kết nối?</string>
- <string name="eip_cancel_connect_text">Có một lần thử kết nối đang được thực hiện. Bạn có muốn huỷ nó không?</string>
- <string name="eip.warning.browser_inconsistency">Tắt kết nối VPN? Khi VPN bị tắt, bạn có thể sẽ bị rò rỉ thông tin cá nhân đến nhà cung cấp Internet hoặc mạng cục bộ.</string>
- <string name="eip_state_not_connected">Đang không chạy! Kết nối không bảo mật!</string>
- <string name="eip_state_connected">Kết nối bảo mật</string>
- <string name="provider_problem">Có vẻ là có vấn đề với nhà cung cấp.</string>
- <string name="try_another_provider">Vui lòng thử một nhà cung cấp khác, hoặc liên hệ với nhà cung cấp của bạn.</string>
- <string name="default_username">Nặc danh</string>
- <string name="logging_in">Đang đăng nhập</string>
- <string name="signing_up">Đang đăng ký</string>
- <string name="vpn.button.turn.on">Bật</string>
- <string name="vpn.button.turn.off">Tắt</string>
- <string name="vpn_button_turn_off_blocking">Dừng chặn</string>
- <string name="vpn_securely_routed">Lưu lượng của bạn được dẫn một cách bảo mật qua:</string>
- <string name="vpn_securely_routed_no_internet">Không phát hiện kết nối internet, khi có kết nối chúng tôi sẽ dẫn lưu lượng của bạn một cách bảo mật qua:</string>
- <string name="log_fragment_title">Nhật ký</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">Mở ngăn điều hướng</string>
- <string name="navigation_drawer_close">Đóng ngăn điều hướng</string>
- <string name="action_example">Hành động ví dụ</string>
- <string name="action_settings">Cài đặt</string>
- <string name="void_vpn_establish">%s chặn tất cả lưu lượng internet đi ra.</string>
- <string name="void_vpn_error_establish">Chặn tất cả lưu lượng internet thất bại.</string>
- <string name="void_vpn_stopped">Đã dừng chặn tất cả lưu lượng internet đi ra.</string>
- <string name="void_vpn_title">Đang chặn lưu lượng</string>
- <string name="update_provider_details">Cập nhật chi tiết nhà cung cấp</string>
- <string name="update_certificate">Cập nhật chứng chỉ</string>
- <string name="warning_eip_json_corrupted">Cập nhật thiết lập nhà cung cấp thất bại.</string>
- <string name="eip_json_corrupted_user_message">Cập nhật thiết lập nhà cung cấp thất bại. Vui lòng đăng nhập để thử lại.</string>
- <string name="warning_client_parsing_error_gateways">Gateway của nhà cung cấp không thể được nhận dạng. Chúng có thể đã được thiết lập không đúng.</string>
- <string name="warning_corrupted_provider_details">Chi tiết nhà cung cấp được lưu trữ bị hỏng. Bạn có thể cập nhật %s (được khuyến nghị) hoặc cập nhật chi tiết nhà cung cấp bằng một chứng chỉ CA thương mại.</string>
- <string name="warning_corrupted_provider_cert">Chứng chỉ nhà cung cấp được lưu trữ là không hợp lệ. Bạn có thể cập nhật %s (được khuyến nghị) hoặc cập nhật chứng chỉ nhà cung cấp bằng một chứng chỉ CA thương mại.</string>
- <string name="warning_expired_provider_cert">Chứng chỉ nhà cung cấp được lưu trữ đã hết hạn. Bạn có thể cập nhật %s (được khuyến nghị) hoặc cập nhật chứng chỉ nhà cung cấp bằng một chứng chỉ CA thương mại.</string>
- <string name="downloading_vpn_certificate_failed">Tải xuống chứng chỉ VPN thất bại. Hãy thử lại hoặc chọn một nhà cung cấp khác.</string>
- <string name="vpn_certificate_is_invalid">Chứng chỉ VPN không hợp lệ. Hãy thử tải xuống một chứng chỉ mới.</string>
- <string name="vpn_certificate_user_message">Chứng chỉ VPN không hợp lệ. Vui lòng đăng nhập để tải xuống một chứng chỉ mới.</string>
- <string name="save_battery">Tiết kiệm pin</string>
- <string name="subtitle_save_battery">Bị tắt khi Điểm phát sỏng VPN được bật</string>
- <string name="save_battery_message">Các kết nối dữ liệu trong nền sẽ ngủ đông khi điện thoại của bạn không hoạt động.</string>
- <string name="always_on_vpn">VPN luôn bật</string>
- <string name="subtitle_always_on_vpn">Mở cài đặt hệ thống Android</string>
- <string name="tethering">Điểm phát sóng VPN</string>
- <string name="ipv6Firewall">Chặn IPv6</string>
- <string name="require_root">Yêu cầu quyền root</string>
- <string name="show_experimental">Hiện các tính năng thử nghiệm</string>
- <string name="hide_experimental">Ẩn các tính năng thử nghiệm</string>
- <string name="experimental_features">Tính năng thử nghiệm</string>
- <string name="tethering_enabled_message">Vui lòng chắc chắn là bạn bật chia sẻ mạng trong <![CDATA[<b>cài đặt hệ thống</b>]]> trước.</string>
- <string name="tethering_message">Chia sẻ VPN của bạn với các thiết bị khác qua:</string>
- <string name="tethering_wifi">Điểm phát sóng Wi-Fi</string>
- <string name="tethering_usb">Chia sẻ mạng qua USB</string>
- <string name="tethering_bluetooth">Chia sẻ mạng qua Bluetooth</string>
- <string name="do_not_show_again">Không hiện lại</string>
- <string name="always_on_vpn_user_message">Để bật VPN luôn bật trong cài đặt VPN của Android, hãy nhấn vào biểu tượng thiết lập [img src] và bật công tắc.</string>
- <string name="always_on_blocking_vpn_user_message">Để bảo vệ sự riêng tư một cách tối ưu, bạn cũng nên kích hoạt tuỳ chọn \"Chặn các kết nối không có VPN\".</string>
- <string name="donate_title">Quyên góp</string>
- <string name="donate_default_message">Vui lòng quyên góp hôm nay nếu bạn quý trọng sự giao tiếp bảo mật và dễ dàng cho cả người dùng cuối và nhà cung cấp dịch vụ.</string>
- <string name="donate_message">LEAP phụ thuộc vào các khoản quyên góp và tiền phụ cấp. Vui lòng quyên góp hôm nay nếu bạn quý trọng sự giao tiếp bảo mật và dễ dàng cho cả người dùng cuối và nhà cung cấp dịch vụ.</string>
- <string name="donate_button_remind_later">Nhắc lại tôi vào lúc sau</string>
- <string name="donate_button_donate">Quyên góp</string>
- <string name="obfuscated_connection">Đang sử dụng một kết nối được làm rối tung.</string>
- <string name="obfuscated_connection_try">Đang thử một kết nối được làm rối tung.</string>
- <string name="nav_drawer_obfuscated_connection">Dùng Cầu Nối</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">Vượt qua việc lọc VPN</string>
- <string name="warning_exclude_apps_message">Hãy cẩn thận khi loại trừ các ứng dụng khỏi VPN. Việc này sẽ làm lộ danh tính của bạn và gây hại cho sự bảo mật.</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="other">%d ứng dụng không được bảo vệ</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s không thể kết nối. Có thể là các kết nối VPN bị chặn. Bạn có muốn thử kết nối bằng các kết nối được làm rối tung không?</string>
- <string name="warning_no_more_gateways_no_pt">%s không thể kết nối. Bạn có muốn thử lại không?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s không thể kết nối bằng các kết nối VPN được làm rối tung. Bạn có muốn thử kết nối bằng VPN tiêu chuẩn không?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s không thể kết nối đến %2$s. Bạn có muốn thử kết nối tự động với vị trí tốt nhất không?</string>
- <string name="warning_option_try_best">Thử vị trí tốt nhất</string>
- <string name="warning_option_try_pt">Thử kết nối được làm rối tung</string>
- <string name="warning_option_try_ovpn">Thử kết nối tiêu chuẩn</string>
- <string name="vpn_error_establish">Android đã không thể tạo dịch vụ VPN.</string>
- <string name="root_permission_error">%s không thể thực thi các tính năng như Điểm phát sóng VPN hoặc Tường lửa IPv6 mà không có quyền root.</string>
- <string name="qs_enable_vpn">Bắt đầu %s</string>
- <string name="version_update_found">Nhấn vào đây để bắt đầu tải xuống.</string>
- <string name="version_update_title">Phiên bản %s mới đã được tìm thấy.</string>
- <string name="version_update_apk_description">Đang tải xuống phiên bản %s mới</string>
- <string name="version_update_download_title">Phiên bản %s mới đã được tải xuống.</string>
- <string name="version_update_download_description">Nhấn vào đây để cài đặt bản cập nhật.</string>
- <string name="version_update_error_pgp_verification">Lỗi xác minh PGP. Đang bỏ qua mục tải xuống.</string>
- <string name="version_update_error">Cập nhật thất bại.</string>
- <string name="version_update_error_permissions">Không có quyền để cài đặt ứng dụng.</string>
- <string name="gateway_selection_title">Chọn vị trí</string>
- <string name="gateway_selection_recommended_location">Vị trí khuyên dùng</string>
- <string name="gateway_selection_recommended">Khuyên dùng</string>
- <string name="gateway_selection_manually">Chọn thủ công</string>
- <string name="gateway_selection_automatic_location">Tự động dùng kết nối tốt nhất</string>
- <string name="gateway_selection_automatic">Tự động</string>
- <string name="reconnecting">Đang kết nối lại...</string>
- <string name="tor_starting">Đang khởi động cầu nối để vượt qua sự che đậy...</string>
- <string name="tor_stopping">Đang dừng cầu nối</string>
- <string name="tor_started">Đang sử dụng cầu nối để vượt qua sự che đậy</string>
- <string name="log_conn_done_pt">Đã kết nối đến điểm trung chuyển có thể sử dụng</string>
- <string name="log_conn_pt">Đang kết nối đến điểm trung chuyển có thể sử dụng</string>
- <string name="log_conn_done">Đã kết nối đến một rơle</string>
- <string name="log_handshake">Đang thương lượng kết nối với một rơle</string>
- <string name="log_handshake_done">Đã thương lượng kết nối với rơle</string>
- <string name="log_onehop_create">Đang thiết lập một kết nối danh mục được mã hóa</string>
- <string name="log_requesting_status">Đang hỏi sự nhất trí trạng thái mạng</string>
- <string name="log_loading_status">Đang tải sự nhất trí trạng thái mạng</string>
- <string name="log_loading_keys">Đang tải chứng nhận quyền</string>
- <string name="log_requesting_descriptors">Đang hỏi bộ mô tả rơle</string>
- <string name="log_loading_descriptors">Đang tải bộ mô tả rơle</string>
- <string name="log_enough_dirinfo">Đã tải đủ thông tin thư mục để xây dựng mạch</string>
- <string name="log_ap_handshake_done">Đã hoàn thành thương lượng với một rowle để xây dụng mạch</string>
- <string name="log_circuit_create">Thành lập một mạch Tor</string>
- <string name="log_done">Đang chạy</string>
- <string name="channel_name_tor_service">Dịch vụ cầu nối %s</string>
- <string name="channel_description_tor_service">Thông báo về việc sử dụng cầu nối khi thiết lập %s.</string>
- <string name="error_tor_timeout">Khởi động cầu nối thất bại. Bạn có muốn thử lại, hay tiếp tục với kết nối bảo mật không được làm rối để thiết lập %s?</string>
- <string name="retry_unobfuscated">Thử lại (không làm rối)</string>
- <string name="hide">Dấu</string>
- <string name="error_network_connection">%s không có kết nối internet. Vui lòng kiểm tra cài đặt WiFi và dữ liệu di động.</string>
- <string name="censorship_circumvention">Vượt qua sự che đậy</string>
- <string name="use_snowflake">Dùng Snowflake</string>
- <string name="snowflake_description">Bảo vệ quá trình thiết lập khỏi sự che đậy.</string>
- <string name="vpn_settings">Cài đặt VPN</string>
- <string name="prefer_udp">Sử dụng UDP nếu có sẵn</string>
- <string name="prefer_udp_subtitle">UDP có thể nhanh hơn và tốt hơn với việc stream, nhưng không hoạt động với tất cả các mạng.</string>
- <string name="disabled_while_bridges_on">Bị tắt khi sử dụng cầu nối.</string>
- <string name="hint_bridges">Hiện tại chỉ có các vị trí có hỗ trợ cầu nối mới có thể chọn được.</string>
- <string name="option_disable_bridges">Tắt cầu nối</string>
- <string name="eip_state_insecure">Kết nối không bảo mật</string>
- <string name="connection_not_connected">Bạn có thể đang làm rò rỉ thông tin đến nhà cung cấp internet hoặc mạng cục bộ.</string>
- <string name="eip_state_no_network">Bạn không có kết nối internet hoạt động. Khi bạn có lại kết nối, bạn sẽ được tự động kết nối đến</string>
- <string name="eip_state_blocking">%1$s đang chặn tất cả lưu lượng internet.</string>
- <string name="disabled_while_udp_on">Bị tắt khi UDP đang bật.</string>
- <string name="advanced_settings">Thiết đặt nâng cao</string>
- <string name="cancel_connection">Ngắt kết nối</string>
- <string name="welcome">Chào mừng bạn!</string>
- <string name="next">Tiếp</string>
- <string name="qr_scanner_prompt">Quét mã QR</string>
- <string name="details">Chi Tiết</string>
- <string name="tor_status">Trạng thái Tor</string>
- <string name="select_language">Chọn Ngôn Ngữ</string>
- <string name="scan_qr_code">Quét mã QR</string>
+ <string name="retry">Thử lại</string>
+ <string name="repository_url_text">Mã nguồn có ở https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">Trình theo dõi vấn đề có ở https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">Các bản dịch được chào đón và đánh giá cao. Hãy xem dự án Transifex của chúng tôi ở https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="switch_provider_menu_option">Chuyển nhà cung cấp</string>
+ <string name="info">thông tin</string>
+ <string name="show_connection_details">Hiện chi tiết kết nối</string>
+ <string name="connection_details">Chi tiết kết nối</string>
+ <string name="routes_info">Đường dẫn: %s</string>
+ <string name="routes_info6">Đường dẫn IPv6: %s</string>
+ <string name="error_empty_username">Tên người dùng không được trống.</string>
+ <string name="cert_from_keystore">Đã lấy chứng chỉ \'%s\' từ kho mã khoá</string>
+ <string name="provider_label">Nhà cung cấp:</string>
+ <string name="provider_label_none">Không có nhà cung cấp nào được thiết lập</string>
+ <string name="status_unknown">Trạng thái không xác định.</string>
+ <string name="eip_service_label">Truy cập Internet qua VPN được mã hoá</string>
+ <string name="configuration_wizard_title">Chọn một nhà cung cấp dịch vụ</string>
+ <string name="add_provider">Thêm nhà cung cấp mới</string>
+ <string name="introduce_new_provider">Thêm một nhà cung cấp dịch vụ mới</string>
+ <string name="save">Lưu</string>
+ <string name="new_provider_uri">Tên miền</string>
+ <string name="valid_url_entered">URL là hợp lệ</string>
+ <string name="not_valid_url_entered">URL bị hỏng</string>
+ <string name="provider_details_title">Chi tiết nhà cung cấp</string>
+ <string name="use_anonymously_button">Sử dụng nặc danh</string>
+ <string name="username_hint">tên người dùng</string>
+ <string name="username_ask">Vui lòng nhập tên người dùng</string>
+ <string name="password_ask">Vui lòng nhập mật khẩu</string>
+ <string name="password_hint">mật khẩu</string>
+ <string name="password_match">Các mật khẩu có khớp</string>
+ <string name="password_mismatch">Các mật khẩu không khớp</string>
+ <string name="user_message">Thông báo người dùng</string>
+ <string name="about_fragment_title">Giới thiệu</string>
+ <string name="exclude_apps_fragment_title">Loại trừ các ứng dụng khỏi VPN</string>
+ <string name="error_srp_math_error_user_message">Hãy thử lại: Lỗi toán học máy chủ</string>
+ <string name="error_bad_user_password_user_message">Tên người dùng hoặc mật khẩu không đúng</string>
+ <string name="error_not_valid_password_user_message">Nó phải có ít nhất 8 kí tự</string>
+ <string name="error_client_http_user_message">Hãy thử lại: Lỗi HTTP ứng dụng khách</string>
+ <string name="error_io_exception_user_message">Hãy thử lại: Lỗi I/O</string>
+ <string name="error_json_exception_user_message">Hãy thử lại: Phản hồi bị lỗi từ máy chủ</string>
+ <string name="error_no_such_algorithm_exception_user_message">Không tìm thấy thuật toán mã hoá. Vui lòng nâng cấp Android!</string>
+ <string name="signup_or_login_button">Đăng ký/Đăng nhập</string>
+ <string name="login_button">Đăng nhập</string>
+ <string name="login_to_profile">Đăng nhập vào hồ sơ</string>
+ <string name="logout_button">Đăng xuất</string>
+ <string name="signup_button">Đăng ký</string>
+ <string name="create_profile">Tạo hồ sơ</string>
+ <string name="setup_provider">Thiết lập nhà cung cấp</string>
+ <string name="setup_error_title">Lỗi thiết lập</string>
+ <string name="setup_error_configure_button">Thiết lập</string>
+ <string name="setup_error_close_button">Thoát</string>
+ <string name="setup_error_text">Đã xảy ra lỗi khi thiết lập %s với nhà cung cấp đã chọn.\n\nBạn có thể chọn thiết lập lại, hoặc thoát và thiết lập một nhà cung cấp vào lần khởi động sau.</string>
+ <string name="setup_error_text_custom">Có lỗi khi thiết lập %s.\n\nBạn có thể chọn thiết lập lại hoặc thoát.</string>
+ <string name="server_unreachable_message">Máy chủ không thể kết nối đến được, vui lòng thử lại.</string>
+ <string name="error.security.pinnedcertificate">Lỗi bảo mật, hãy nâng cấp ứng dụng hoặc chọn một nhà cung cấp khác.</string>
+ <string name="malformed_url">Nó không có vẻ là một nhà cung cấp %s.</string>
+ <string name="certificate_error">Đây không phải là một nhà cung cấp %s được tin cậy.</string>
+ <string name="service_is_down_error">Dịch vụ hiện không hoạt động.</string>
+ <string name="configuring_provider">Đang thiết lập nhà cung cấp</string>
+ <string name="downloading_certificate_message">Đang tải xuống chứng chỉ VPN</string>
+ <string name="updating_certificate_message">Đang cập nhật chứng chỉ VPN</string>
+ <string name="login.riseup.warning">Những người dùng Riseup sẽ cần tạo một tài khoản riêng để sử dụng dịch vụ VPN</string>
+ <string name="succesful_authentication_message">Đã xác thực</string>
+ <string name="authentication_failed_message">Xác thực thất bại</string>
+ <string name="registration_failed_message">Đăng ký thất bại</string>
+ <string name="eip_status_start_pending">Đang bắt đầu kết nối</string>
+ <string name="eip_cancel_connect_title">Huỷ kết nối?</string>
+ <string name="eip_cancel_connect_text">Có một lần thử kết nối đang được thực hiện. Bạn có muốn huỷ nó không?</string>
+ <string name="eip.warning.browser_inconsistency">Tắt kết nối VPN? Khi VPN bị tắt, bạn có thể sẽ bị rò rỉ thông tin cá nhân đến nhà cung cấp Internet hoặc mạng cục bộ.</string>
+ <string name="eip_state_not_connected">Đang không chạy! Kết nối không bảo mật!</string>
+ <string name="eip_state_connected">Kết nối bảo mật</string>
+ <string name="provider_problem">Có vẻ là có vấn đề với nhà cung cấp.</string>
+ <string name="try_another_provider">Vui lòng thử một nhà cung cấp khác, hoặc liên hệ với nhà cung cấp của bạn.</string>
+ <string name="default_username">Nặc danh</string>
+ <string name="logging_in">Đang đăng nhập</string>
+ <string name="signing_up">Đang đăng ký</string>
+ <string name="vpn.button.turn.on">Bật</string>
+ <string name="vpn.button.turn.off">Tắt</string>
+ <string name="vpn_button_turn_off_blocking">Dừng chặn</string>
+ <string name="vpn_securely_routed">Lưu lượng của bạn được dẫn một cách bảo mật qua:</string>
+ <string name="vpn_securely_routed_no_internet">Không phát hiện kết nối internet, khi có kết nối chúng tôi sẽ dẫn lưu lượng của bạn một cách bảo mật qua:</string>
+ <string name="log_fragment_title">Nhật ký</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">Mở ngăn điều hướng</string>
+ <string name="navigation_drawer_close">Đóng ngăn điều hướng</string>
+ <string name="action_example">Hành động ví dụ</string>
+ <string name="action_settings">Cài đặt</string>
+ <string name="void_vpn_establish">%s chặn tất cả lưu lượng internet đi ra.</string>
+ <string name="void_vpn_error_establish">Chặn tất cả lưu lượng internet thất bại.</string>
+ <string name="void_vpn_stopped">Đã dừng chặn tất cả lưu lượng internet đi ra.</string>
+ <string name="void_vpn_title">Đang chặn lưu lượng</string>
+ <string name="update_provider_details">Cập nhật chi tiết nhà cung cấp</string>
+ <string name="update_certificate">Cập nhật chứng chỉ</string>
+ <string name="warning_eip_json_corrupted">Cập nhật thiết lập nhà cung cấp thất bại.</string>
+ <string name="eip_json_corrupted_user_message">Cập nhật thiết lập nhà cung cấp thất bại. Vui lòng đăng nhập để thử lại.</string>
+ <string name="warning_client_parsing_error_gateways">Gateway của nhà cung cấp không thể được nhận dạng. Chúng có thể đã được thiết lập không đúng.</string>
+ <string name="warning_corrupted_provider_details">Chi tiết nhà cung cấp được lưu trữ bị hỏng. Bạn có thể cập nhật %s (được khuyến nghị) hoặc cập nhật chi tiết nhà cung cấp bằng một chứng chỉ CA thương mại.</string>
+ <string name="warning_corrupted_provider_cert">Chứng chỉ nhà cung cấp được lưu trữ là không hợp lệ. Bạn có thể cập nhật %s (được khuyến nghị) hoặc cập nhật chứng chỉ nhà cung cấp bằng một chứng chỉ CA thương mại.</string>
+ <string name="warning_expired_provider_cert">Chứng chỉ nhà cung cấp được lưu trữ đã hết hạn. Bạn có thể cập nhật %s (được khuyến nghị) hoặc cập nhật chứng chỉ nhà cung cấp bằng một chứng chỉ CA thương mại.</string>
+ <string name="downloading_vpn_certificate_failed">Tải xuống chứng chỉ VPN thất bại. Hãy thử lại hoặc chọn một nhà cung cấp khác.</string>
+ <string name="save_battery">Tiết kiệm pin</string>
+ <string name="subtitle_save_battery">Bị tắt khi Điểm phát sỏng VPN được bật</string>
+ <string name="save_battery_message">Các kết nối dữ liệu trong nền sẽ ngủ đông khi điện thoại của bạn không hoạt động.</string>
+ <string name="always_on_vpn">VPN luôn bật</string>
+ <string name="subtitle_always_on_vpn">Mở cài đặt hệ thống Android</string>
+ <string name="tethering">Điểm phát sóng VPN</string>
+ <string name="ipv6Firewall">Chặn IPv6</string>
+ <string name="require_root">Yêu cầu quyền root</string>
+ <string name="show_experimental">Hiện các tính năng thử nghiệm</string>
+ <string name="hide_experimental">Ẩn các tính năng thử nghiệm</string>
+ <string name="experimental_features">Tính năng thử nghiệm</string>
+ <string name="tethering_enabled_message">Vui lòng chắc chắn là bạn bật chia sẻ mạng trong <![CDATA[<b>cài đặt hệ thống</b>]]> trước.</string>
+ <string name="tethering_message">Chia sẻ VPN của bạn với các thiết bị khác qua:</string>
+ <string name="tethering_wifi">Điểm phát sóng Wi-Fi</string>
+ <string name="tethering_usb">Chia sẻ mạng qua USB</string>
+ <string name="tethering_bluetooth">Chia sẻ mạng qua Bluetooth</string>
+ <string name="do_not_show_again">Không hiện lại</string>
+ <string name="always_on_vpn_user_message">Để bật VPN luôn bật trong cài đặt VPN của Android, hãy nhấn vào biểu tượng thiết lập [img src] và bật công tắc.</string>
+ <string name="always_on_blocking_vpn_user_message">Để bảo vệ sự riêng tư một cách tối ưu, bạn cũng nên kích hoạt tuỳ chọn \"Chặn các kết nối không có VPN\".</string>
+ <string name="donate_title">Quyên góp</string>
+ <string name="donate_default_message">Vui lòng quyên góp hôm nay nếu bạn quý trọng sự giao tiếp bảo mật và dễ dàng cho cả người dùng cuối và nhà cung cấp dịch vụ.</string>
+ <string name="donate_message">LEAP phụ thuộc vào các khoản quyên góp và tiền phụ cấp. Vui lòng quyên góp hôm nay nếu bạn quý trọng sự giao tiếp bảo mật và dễ dàng cho cả người dùng cuối và nhà cung cấp dịch vụ.</string>
+ <string name="donate_button_remind_later">Nhắc lại tôi vào lúc sau</string>
+ <string name="donate_button_donate">Quyên góp</string>
+ <string name="obfuscated_connection">Đang sử dụng một kết nối được làm rối tung.</string>
+ <string name="obfuscated_connection_try">Đang thử một kết nối được làm rối tung.</string>
+ <string name="nav_drawer_obfuscated_connection">Dùng Cầu Nối</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">Vượt qua việc lọc VPN</string>
+ <string name="warning_exclude_apps_message">Hãy cẩn thận khi loại trừ các ứng dụng khỏi VPN. Việc này sẽ làm lộ danh tính của bạn và gây hại cho sự bảo mật.</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="other">%d ứng dụng không được bảo vệ</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s không thể kết nối. Có thể là các kết nối VPN bị chặn. Bạn có muốn thử kết nối bằng các kết nối được làm rối tung không?</string>
+ <string name="warning_no_more_gateways_no_pt">%s không thể kết nối. Bạn có muốn thử lại không?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s không thể kết nối bằng các kết nối VPN được làm rối tung. Bạn có muốn thử kết nối bằng VPN tiêu chuẩn không?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s không thể kết nối đến %2$s. Bạn có muốn thử kết nối tự động với vị trí tốt nhất không?</string>
+ <string name="warning_option_try_best">Thử vị trí tốt nhất</string>
+ <string name="warning_option_try_pt">Thử kết nối được làm rối tung</string>
+ <string name="warning_option_try_ovpn">Thử kết nối tiêu chuẩn</string>
+ <string name="vpn_error_establish">Android đã không thể tạo dịch vụ VPN.</string>
+ <string name="root_permission_error">%s không thể thực thi các tính năng như Điểm phát sóng VPN hoặc Tường lửa IPv6 mà không có quyền root.</string>
+ <string name="qs_enable_vpn">Bắt đầu %s</string>
+ <string name="version_update_found">Nhấn vào đây để bắt đầu tải xuống.</string>
+ <string name="version_update_title">Phiên bản %s mới đã được tìm thấy.</string>
+ <string name="version_update_apk_description">Đang tải xuống phiên bản %s mới</string>
+ <string name="version_update_download_title">Phiên bản %s mới đã được tải xuống.</string>
+ <string name="version_update_download_description">Nhấn vào đây để cài đặt bản cập nhật.</string>
+ <string name="version_update_error_pgp_verification">Lỗi xác minh PGP. Đang bỏ qua mục tải xuống.</string>
+ <string name="version_update_error">Cập nhật thất bại.</string>
+ <string name="version_update_error_permissions">Không có quyền để cài đặt ứng dụng.</string>
+ <string name="gateway_selection_title">Chọn vị trí</string>
+ <string name="gateway_selection_recommended_location">Vị trí khuyên dùng</string>
+ <string name="gateway_selection_recommended">Khuyên dùng</string>
+ <string name="gateway_selection_manually">Chọn thủ công</string>
+ <string name="gateway_selection_automatic_location">Tự động dùng kết nối tốt nhất</string>
+ <string name="gateway_selection_automatic">Tự động</string>
+ <string name="reconnecting">Đang kết nối lại...</string>
+ <string name="tor_starting">Đang khởi động cầu nối để vượt qua sự che đậy...</string>
+ <string name="tor_stopping">Đang dừng cầu nối</string>
+ <string name="tor_started">Đang sử dụng cầu nối để vượt qua sự che đậy</string>
+ <string name="log_conn_done_pt">Đã kết nối đến điểm trung chuyển có thể sử dụng</string>
+ <string name="log_conn_pt">Đang kết nối đến điểm trung chuyển có thể sử dụng</string>
+ <string name="log_conn_done">Đã kết nối đến một rơle</string>
+ <string name="log_handshake">Đang thương lượng kết nối với một rơle</string>
+ <string name="log_handshake_done">Đã thương lượng kết nối với rơle</string>
+ <string name="log_onehop_create">Đang thiết lập một kết nối danh mục được mã hóa</string>
+ <string name="log_requesting_status">Đang hỏi sự nhất trí trạng thái mạng</string>
+ <string name="log_loading_status">Đang tải sự nhất trí trạng thái mạng</string>
+ <string name="log_loading_keys">Đang tải chứng nhận quyền</string>
+ <string name="log_requesting_descriptors">Đang hỏi bộ mô tả rơle</string>
+ <string name="log_loading_descriptors">Đang tải bộ mô tả rơle</string>
+ <string name="log_enough_dirinfo">Đã tải đủ thông tin thư mục để xây dựng mạch</string>
+ <string name="log_ap_handshake_done">Đã hoàn thành thương lượng với một rowle để xây dụng mạch</string>
+ <string name="log_circuit_create">Thành lập một mạch Tor</string>
+ <string name="log_done">Đang chạy</string>
+ <string name="channel_name_tor_service">Dịch vụ cầu nối %s</string>
+ <string name="channel_description_tor_service">Thông báo về việc sử dụng cầu nối khi thiết lập %s.</string>
+ <string name="error_tor_timeout">Khởi động cầu nối thất bại. Bạn có muốn thử lại, hay tiếp tục với kết nối bảo mật không được làm rối để thiết lập %s?</string>
+ <string name="retry_unobfuscated">Thử lại (không làm rối)</string>
+ <string name="hide">Dấu</string>
+ <string name="error_network_connection">%s không có kết nối internet. Vui lòng kiểm tra cài đặt WiFi và dữ liệu di động.</string>
+ <string name="censorship_circumvention">Vượt qua sự che đậy</string>
+ <string name="use_snowflake">Dùng Snowflake</string>
+ <string name="snowflake_description">Bảo vệ quá trình thiết lập khỏi sự che đậy.</string>
+ <string name="vpn_settings">Cài đặt VPN</string>
+ <string name="prefer_udp">Sử dụng UDP nếu có sẵn</string>
+ <string name="prefer_udp_subtitle">UDP có thể nhanh hơn và tốt hơn với việc stream, nhưng không hoạt động với tất cả các mạng.</string>
+ <string name="disabled_while_bridges_on">Bị tắt khi sử dụng cầu nối.</string>
+ <string name="hint_bridges">Hiện tại chỉ có các vị trí có hỗ trợ cầu nối mới có thể chọn được.</string>
+ <string name="option_disable_bridges">Tắt cầu nối</string>
+ <string name="eip_state_insecure">Kết nối không bảo mật</string>
+ <string name="connection_not_connected">Bạn có thể đang làm rò rỉ thông tin đến nhà cung cấp internet hoặc mạng cục bộ.</string>
+ <string name="eip_state_no_network">Bạn không có kết nối internet hoạt động. Khi bạn có lại kết nối, bạn sẽ được tự động kết nối đến</string>
+ <string name="eip_state_blocking">%1$s đang chặn tất cả lưu lượng internet.</string>
+ <string name="disabled_while_udp_on">Bị tắt khi UDP đang bật.</string>
+ <string name="advanced_settings">Thiết đặt nâng cao</string>
+ <string name="cancel_connection">Ngắt kết nối</string>
+ <string name="welcome">Chào mừng bạn!</string>
+ <string name="next">Tiếp</string>
+ <string name="qr_scanner_prompt">Quét mã QR</string>
+ <string name="details">Chi Tiết</string>
+ <string name="tor_status">Trạng thái Tor</string>
+ <string name="select_language">Chọn Ngôn Ngữ</string>
</resources>
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 5c77ccac..5ed3d8ca 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -1,242 +1,270 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">重試</string>
- <string name="repository_url_text">原始碼請參閱 https://0xacab.org/leap/bitmask_android</string>
- <string name="leap_tracker">議題追蹤 (Issue tracker) 請參閱 https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">我們非常歡迎並感謝您提供翻譯。請參閱我們的 Transifex 專案 https://www.transifex.com/projects/p/bitmask/</string>
- <string name="switch_provider_menu_option">切換服務提供者</string>
- <string name="info">資訊</string>
- <string name="show_connection_details">顯示連線的詳細資料</string>
- <string name="connection_details">連線詳細資料</string>
- <string name="routes_info">路由:%s</string>
- <string name="routes_info6">IPv6 路由:%s</string>
- <string name="error_empty_username">使用者名稱不能為空。</string>
- <string name="cert_from_keystore">已從憑證庫取得 \'%s\' 憑證</string>
- <string name="provider_label">服務提供者:</string>
- <string name="provider_label_none">未指定服務提供者</string>
- <string name="status_unknown">狀態未知。</string>
- <string name="eip_service_label">加密的 VPN 網路連線</string>
- <string name="configuration_wizard_title">選擇一個服務提供者</string>
- <string name="add_provider">新增服務提供者</string>
- <string name="introduce_new_provider">新增服務提供者</string>
- <string name="save">儲存</string>
- <string name="new_provider_uri">網域名稱</string>
- <string name="valid_url_entered">該 URL 有效</string>
- <string name="not_valid_url_entered">URL 格式錯誤</string>
- <string name="provider_details_title">服務提供者詳細資料</string>
- <string name="use_anonymously_button">匿名使用</string>
- <string name="username_hint">使用者名稱</string>
- <string name="username_ask">請輸入您的使用者名稱</string>
- <string name="password_ask">請輸入密碼</string>
- <string name="password_hint">密碼</string>
- <string name="password_match">密碼相符</string>
- <string name="password_mismatch">密碼不符</string>
- <string name="user_message">使用者訊息</string>
- <string name="about_fragment_title">關於</string>
- <string name="exclude_apps_fragment_title">排除於 VPN 之外的程式</string>
- <string name="error_srp_math_error_user_message">請重試:伺服器運算錯誤</string>
- <string name="error_bad_user_password_user_message">錯誤的使用者名稱或密碼</string>
- <string name="error_not_valid_password_user_message">長度必須至少為 8 個字元</string>
- <string name="error_client_http_user_message">請重試:用戶端 HTTP 錯誤</string>
- <string name="error_io_exception_user_message">請重試:I/O 錯誤</string>
- <string name="error_json_exception_user_message">請重試:伺服器回應錯誤</string>
- <string name="error_no_such_algorithm_exception_user_message">找不到加密演算法。請升級 Android!</string>
- <string name="signup_or_login_button">註冊/登入</string>
- <string name="login_button">登入</string>
- <string name="login_to_profile">登入設定檔</string>
- <string name="logout_button">登出</string>
- <string name="signup_button">註冊</string>
- <string name="create_profile">建立設定檔</string>
- <string name="setup_provider">設定服務提供者</string>
- <string name="setup_error_title">設定錯誤</string>
- <string name="setup_error_configure_button">設定</string>
- <string name="setup_error_close_button">離開</string>
- <string name="setup_error_text">您選擇的服務提供者於設定 %s 時發生錯誤。\n\n您可以重新指定,或結束程式並於下次啟動時再變更設定。</string>
- <string name="setup_error_text_custom">設定 %s 時發生錯誤。\n\n您可以重新指定,或結束程式。</string>
- <string name="server_unreachable_message">無法連線到該伺服器,請再試一次。</string>
- <string name="error.security.pinnedcertificate">安全性錯誤,請升級程式或選擇其他服務提供者。</string>
- <string name="malformed_url">這似乎不是 %s 服務提供者。</string>
- <string name="certificate_error">這不是受信任的 %s 服務提供者。</string>
- <string name="service_is_down_error">該服務已停止。</string>
- <string name="configuring_provider">正在設定服務提供者</string>
- <string name="incorrectly_downloaded_certificate_message">未下載您的匿名憑證</string>
- <string name="downloading_certificate_message">正在下載 VPN 憑證</string>
- <string name="updating_certificate_message">正在更新 VPN 憑證</string>
- <string name="login.riseup.warning">Riseup 使用者必須建立另一個帳戶來使用本 VPN 服務</string>
- <string name="succesful_authentication_message">已驗證</string>
- <string name="authentication_failed_message">無法驗證</string>
- <string name="registration_failed_message">無法註冊</string>
- <string name="eip_status_start_pending">正在初始化連線</string>
- <string name="eip_status_connecting">正在連線到 VPN</string>
- <string name="eip_status_unsecured">不安全的連線</string>
- <string name="eip_status_secured">安全連線</string>
- <string name="eip_cancel_connect_title">取消連線?</string>
- <string name="eip_cancel_connect_text">已在嘗試連線中。您想要取消嗎?</string>
- <string name="eip.warning.browser_inconsistency">關閉 VPN 連線?當 VPN 關閉時,您的個人資料可能會曝露於網路服務提供者或區域網路。</string>
- <string name="eip_state_not_connected">未執行!連線不安全!</string>
- <string name="eip_state_connected">連線安全</string>
- <string name="provider_problem">該服務提供者似乎出現問題。</string>
- <string name="try_another_provider">請嘗試使用其他服務提供者,或聯繫您的服務提供者。</string>
- <string name="default_username">匿名</string>
- <string name="logging_in">正在登入</string>
- <string name="signing_up">正在註冊</string>
- <string name="vpn.button.turn.on">開啟</string>
- <string name="vpn.button.turn.off">關閉</string>
- <string name="vpn_button_turn_off_blocking">停止阻擋</string>
- <string name="vpn_securely_routed">您的流量已使用安全的路由傳輸:</string>
- <string name="vpn_securely_routed_no_internet">沒有偵測到網際網路連線,當您恢復連線時,我們將使用安全路由來傳輸您的流量:</string>
- <string name="log_fragment_title">日誌</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">開啟導航抽屜</string>
- <string name="navigation_drawer_close">關閉導航抽屜</string>
- <string name="action_example">操作範例</string>
- <string name="action_settings">設定</string>
- <string name="void_vpn_establish">%s 會封鎖所有連出的網路流量。</string>
- <string name="void_vpn_error_establish">無法阻擋所有網路流量。</string>
- <string name="void_vpn_stopped">已停止阻擋所有連出的網路流量。</string>
- <string name="void_vpn_title">正在阻擋流量</string>
- <string name="update_provider_details">更新服務提供者的詳細資料</string>
- <string name="update_certificate">更新憑證</string>
- <string name="warning_eip_json_corrupted">無法更新服務提供者設定。</string>
- <string name="eip_json_corrupted_user_message">無法更新服務提供者設定。請於登入後再試一次。</string>
- <string name="warning_client_parsing_error_gateways">無法辨識服務提供者閘道。對方的設定可能不正確。</string>
- <string name="warning_corrupted_provider_details">儲存的服務提供者詳細資料已損毀。您可以更新 %s (建議),或使用商用憑證授權機構 (CA) 的憑證來更新服務提供者憑證。</string>
- <string name="warning_corrupted_provider_cert">儲存的服務提供者憑證無效。您可以更新 %s (建議),或使用商用憑證授權機構 (CA) 的憑證來更新服務提供者憑證。</string>
- <string name="warning_expired_provider_cert">儲存的服務提供者憑證已過期。您可以更新 %s (建議),或使用商用憑證授權機構 (CA) 的憑證來更新服務提供者憑證。</string>
- <string name="downloading_vpn_certificate_failed">無法下載 VPN 憑證。請再試一次或選擇其他服務提供者。</string>
- <string name="vpn_certificate_is_invalid">無效的 VPN 憑證。請嘗試下載新憑證。</string>
- <string name="vpn_certificate_user_message">該 VPN 憑證無效。請登入以下載新憑證。</string>
- <string name="save_battery">省電模式</string>
- <string name="subtitle_save_battery">VPN 熱點開啟時停用</string>
- <string name="save_battery_message">當您未使用手機時,背景資料傳輸將進入休眠狀態。</string>
- <string name="always_on_vpn">永久連線的 VPN</string>
- <string name="subtitle_always_on_vpn">開啟 Android 系統設定</string>
- <string name="tethering">VPN 熱點</string>
- <string name="ipv6Firewall">封鎖 IPv6</string>
- <string name="require_root">需要 root 權限</string>
- <string name="show_experimental">顯示實驗性功能</string>
- <string name="hide_experimental">隱藏實驗性功能</string>
- <string name="experimental_features">實驗性功能</string>
- <string name="tethering_enabled_message">請先確認已於 <![CDATA[<b>系統設定</b>]]> 啟用網路分享。</string>
- <string name="tethering_message">透過以下方式與其他裝置分享您的 VPN:</string>
- <string name="tethering_wifi">Wi-Fi 熱點</string>
- <string name="tethering_usb">USB 網路分享</string>
- <string name="tethering_bluetooth">藍牙網路分享</string>
- <string name="do_not_show_again">不再顯示</string>
- <string name="always_on_vpn_user_message">若要啟用永久連線的 VPN,請在 Android VPN 設定中點選該圖示 [img src] 並選擇開啟。</string>
- <string name="always_on_blocking_vpn_user_message">為了最大程度保障您的隱私,您也應該啟用「封鎖未使用 VPN 的連線」選項。</string>
- <string name="donate_title">捐助</string>
- <string name="donate_default_message">如果您重視讓使用者與服務提供者皆能輕鬆且安全的通訊,請捐助本服務。</string>
- <string name="donate_message">LEAP 仰賴捐助及補助來運作。如果您重視讓使用者與服務提供者皆能輕鬆且安全的通訊,請捐助本服務。</string>
- <string name="donate_button_remind_later">稍後提醒</string>
- <string name="donate_button_donate">捐助</string>
- <string name="obfuscated_connection">正在使用混淆連線。</string>
- <string name="obfuscated_connection_try">正在嘗試使用混淆連線。</string>
- <string name="nav_drawer_obfuscated_connection">使用橋接</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">規避 VPN 過濾</string>
- <string name="warning_exclude_apps_message">請小心設定排除於 VPN 之外的程式。這會曝露您的身分並危害到安全性。</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="other">%d 未受保護的程式</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s 無法連線。原因可能是 VPN 連線被封鎖。您想嘗試使用混淆連線嗎?</string>
- <string name="warning_no_more_gateways_no_pt">%s 無法連線。您想再試一次嗎?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s 無法使用混淆的 VPN 連線。您想嘗試使用標準 VPN 連線嗎?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s 無法連線到 %2$s。您想嘗試自動連線到最佳地理位置嗎?</string>
- <string name="warning_option_try_best">嘗試最佳地理位置</string>
- <string name="warning_option_try_pt">嘗試使用混淆連線</string>
- <string name="warning_option_try_ovpn">嘗試使用標準連線</string>
- <string name="vpn_error_establish">Android 無法建立 VPN 服務。</string>
- <string name="root_permission_error">若無 root 權限,%s 無法執行如 VPN 熱點或 IPv6 防火牆等功能。</string>
- <string name="qs_enable_vpn">啟動 %s</string>
- <string name="version_update_found">按這裡以開始下載。</string>
- <string name="version_update_title">有新版本的 %s 可用。</string>
- <string name="version_update_apk_description">正在下載新版本的 %s</string>
- <string name="version_update_download_title">已下載新版本的 %s。</string>
- <string name="version_update_download_description">按這裡以安裝更新。</string>
- <string name="version_update_error_pgp_verification">PGP 驗證錯誤。將忽略該下載。</string>
- <string name="version_update_error">無法更新。</string>
- <string name="version_update_error_permissions">沒有安裝程式的權限。</string>
- <string name="gateway_selection_title">選擇地理位置</string>
- <string name="gateway_selection_recommended_location">建議的地理位置</string>
- <string name="gateway_selection_recommended">(建議)</string>
- <string name="gateway_selection_manually">手動選擇</string>
- <string name="gateway_selection_automatic_location">自動使用最佳的連線</string>
- <string name="gateway_selection_automatic">自動</string>
- <string name="reconnecting">正在重新連線…</string>
- <string name="tor_starting">正在啟動橋接以規避網路審查…</string>
- <string name="tor_stopping">正在停止橋接</string>
- <string name="tor_started">正在使用橋接以規避網路審查</string>
- <string name="log_conn_done_pt">已連線到可插拔式傳輸</string>
- <string name="log_conn_pt">正在連線到可插拔式傳輸</string>
- <string name="log_conn_done">已連線到中繼</string>
- <string name="log_handshake">正在和中繼交涉連線</string>
- <string name="log_handshake_done">已完成中繼連線交涉</string>
- <string name="log_onehop_create">正在建立加密的目錄連線</string>
- <string name="log_requesting_status">正在請求網路狀態一致性</string>
- <string name="log_loading_status">正在載入網路狀態一致性</string>
- <string name="log_loading_keys">正在載入授權憑證</string>
- <string name="log_requesting_descriptors">正在請求中繼描述元</string>
- <string name="log_loading_descriptors">正在載入中繼描述元</string>
- <string name="log_enough_dirinfo">已載入足以建立迴路的目錄資料</string>
- <string name="log_ap_handshake_done">已和中繼完成建立連線的交涉</string>
- <string name="log_circuit_create">正在建立 Tor 迴路連線</string>
- <string name="log_done">執行</string>
- <string name="channel_name_tor_service">%s 橋接服務</string>
- <string name="channel_description_tor_service">設定 %s 時顯示橋接的使用情況。</string>
- <string name="error_tor_timeout">無法啟動橋接。您想再試一次,或改用未混淆的連線繼續設定 %s 嗎?</string>
- <string name="retry_unobfuscated">重試使用未混淆的連線</string>
- <string name="hide">隱藏</string>
- <string name="error_network_connection">%s 沒有連線到網際網路。請檢查您的 WiFi 和行動數據設定。</string>
- <string name="censorship_circumvention">規避網路審查</string>
- <string name="use_snowflake">使用 Snowflake</string>
- <string name="snowflake_description">保護設定程式免於網路審查。</string>
- <string name="vpn_settings">VPN 設置</string>
- <string name="prefer_udp">可用時使用 UDP</string>
- <string name="prefer_udp_subtitle">UDP 於串流時更快速也更好,但並不適用於所有網路。</string>
- <string name="disabled_while_bridges_on">使用橋接時停用。</string>
- <string name="hint_bridges">目前只有支援橋接的地理位置可供選擇。</string>
- <string name="option_disable_bridges">停用橋接</string>
- <string name="eip_state_insecure">連線不安全</string>
- <string name="connection_not_connected">您的個人資料可能正曝露於網路服務提供者或區域網路。</string>
- <string name="eip_state_no_network">您目前沒有連線到網際網路。當您恢復連線時,將自動連線到</string>
- <string name="eip_state_blocking">%1$s 正在封鎖所有網路流量。</string>
- <string name="disabled_while_udp_on">UDP 開啟時停用。</string>
- <string name="advanced_settings">進階設定</string>
- <string name="cancel_connection">中斷連缐</string>
- <string name="unknown_location">未知的地理位置</string>
- <string name="splash_footer">由 LEAP 開發</string>
- <string name="welcome">歡迎!</string>
- <string name="select_provider">選擇供應商</string>
- <string name="select_provider_description">使用 VPN 是將信任從網路服務供應商轉移到 VPN 提供者。 Bitmask 僅與明確保護和倡導隱私的提供者建立連線。</string>
- <string name="provider_description_riseup">Riseup 致力於為解放社會變革的人民和團體提供線上交流工具。 我們透過控制自己的安全通訊方式來創造民主替代方案並實踐自決計畫。</string>
- <string name="next">下一個</string>
- <string name="add_provider_description">Bitmask 連接到未公開的可信任提供者。 在下面輸入提供者的網址。</string>
- <string name="qr_scanner_prompt">掃描二維條碼</string>
- <string name="provider_description_calyx">Calyx 為非營利教育和研究組織,致力於研究、測試、開發和實施隱私技術和工具,以促進網路和行動通訊產業的言論自由、表達自由、公民參與和隱私權。</string>
- <string name="title_circumvention_setup">需規避審查?</string>
- <string name="circumvention_setup_description">如果住在網路審查的地區,可以使用我們的審查規避工具來存取所有網路服務。 這些選項會減慢您的連線速度!</string>
- <string name="circumvention_setup_hint">%s 會自動嘗試使用各種規避技術來連接網際網路,進階設定中可對此進行微調。</string>
- <string name="use_standard_vpn">使用標準 %s</string>
- <string name="use_circumvention_tech">使用審查規避技術 (較慢)</string>
- <string name="description_configure_provider">連接到供應商%1$s取得所有必要的設定資訊。 這僅發生在初次設定。</string>
- <string name="description_configure_provider_circumvention">%1$s 嘗試從供應商收集所需的配置資料。 這僅發生在初次設定。 因選用規避技術,可能需要一些時間。</string>
- <string name="details">詳情</string>
- <string name="tor_status">洋蔥路由狀態</string>
- <string name="snowflake_status">Snowflake 狀態</string>
- <string name="snowflake_started">Snowflake 用戶端啟動</string>
- <string name="snowflake_negotiating_rendezvous_http">協商 Snowflake 代理滙合點 (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">協商 Snowflake 代理集合點 (amp 快取)</string>
- <string name="snowflake_socks_error">Snowflake SOCKS 錯誤</string>
- <string name="snowflake_broker_success">Snowflake 代理握手成功</string>
- <string name="snowflake_sending_data">透過 Snowflake 發送數據</string>
- <string name="title_upcoming_connection_request">即將到來的連接請求</string>
- <string name="title_upcoming_notifications_request">即將到來通知請求</string>
- <string name="title_setup_success">一切就緒!</string>
- <string name="setup_success_description">點擊下方按鈕來接線</string>
- <string name="permission_rejected">授權請求被拒。</string>
- <string name="login_not_supported">應用程式當前的版本不支援登入,須為此供應商更新 VPN 憑證。</string>
- <string name="select_language">選取語言</string>
- <string name="validation_status_success">優</string>
- <string name="validation_status_failure">不良</string>
- <string name="scan_qr_code">掃描二維條碼</string>
+ <string name="retry">重試</string>
+ <string name="repository_url_text">原始碼請參閱 https://0xacab.org/leap/bitmask_android</string>
+ <string name="leap_tracker">議題追蹤 (Issue tracker) 請參閱 https://0xacab.org/leap/bitmask_android/issues</string>
+ <string name="translation_project_text">歡迎並感謝您協助翻譯。請參閱我們的專案:https://localizationlab.weblate.cloud/projects/bitmask/</string>
+ <string name="switch_provider_menu_option">切換服務提供者</string>
+ <string name="info">資訊</string>
+ <string name="show_connection_details">顯示連線的詳細資料</string>
+ <string name="connection_details">連線詳細資料</string>
+ <string name="routes_info">路由:%s</string>
+ <string name="routes_info6">IPv6 路由:%s</string>
+ <string name="error_empty_username">使用者名稱不能為空。</string>
+ <string name="cert_from_keystore">已從憑證庫取得 \'%s\' 憑證</string>
+ <string name="provider_label">服務提供者:</string>
+ <string name="provider_label_none">未指定服務提供者</string>
+ <string name="status_unknown">狀態未知。</string>
+ <string name="eip_service_label">加密的 VPN 網路連線</string>
+ <string name="configuration_wizard_title">選擇一個服務提供者</string>
+ <string name="add_provider">新增服務提供者</string>
+ <string name="introduce_new_provider">新增服務提供者</string>
+ <string name="save">儲存</string>
+ <string name="new_provider_uri">網域名稱</string>
+ <string name="valid_url_entered">該 URL 有效</string>
+ <string name="not_valid_url_entered">URL 格式錯誤</string>
+ <string name="provider_details_title">服務提供者詳細資料</string>
+ <string name="use_anonymously_button">匿名使用</string>
+ <string name="username_hint">使用者名稱</string>
+ <string name="username_ask">請輸入您的使用者名稱</string>
+ <string name="password_ask">請輸入密碼</string>
+ <string name="password_hint">密碼</string>
+ <string name="password_match">密碼相符</string>
+ <string name="password_mismatch">密碼不符</string>
+ <string name="user_message">使用者訊息</string>
+ <string name="about_fragment_title">關於</string>
+ <string name="exclude_apps_fragment_title">排除於 VPN 之外的程式</string>
+ <string name="error_srp_math_error_user_message">請重試:伺服器運算錯誤</string>
+ <string name="error_bad_user_password_user_message">錯誤的使用者名稱或密碼</string>
+ <string name="error_not_valid_password_user_message">長度必須至少為 8 個字元</string>
+ <string name="error_client_http_user_message">請重試:用戶端 HTTP 錯誤</string>
+ <string name="error_io_exception_user_message">請重試:I/O 錯誤</string>
+ <string name="error_json_exception_user_message">請重試:伺服器回應錯誤</string>
+ <string name="error_no_such_algorithm_exception_user_message">找不到加密演算法。請升級 Android!</string>
+ <string name="signup_or_login_button">註冊/登入</string>
+ <string name="login_button">登入</string>
+ <string name="login_to_profile">登入設定檔</string>
+ <string name="logout_button">登出</string>
+ <string name="signup_button">註冊</string>
+ <string name="create_profile">建立設定檔</string>
+ <string name="setup_provider">設定服務提供者</string>
+ <string name="setup_error_title">設定錯誤</string>
+ <string name="setup_error_configure_button">設定</string>
+ <string name="setup_error_close_button">離開</string>
+ <string name="setup_error_text">您選擇的服務提供者於設定 %s 時發生錯誤。\n\n您可以重新指定,或結束程式並於下次啟動時再變更設定。</string>
+ <string name="setup_error_text_custom">設定 %s 時發生錯誤。\n\n您可以重新指定,或結束程式。</string>
+ <string name="server_unreachable_message">無法連線到該伺服器,請再試一次。</string>
+ <string name="error.security.pinnedcertificate">安全性錯誤,請升級程式或選擇其他服務提供者。</string>
+ <string name="malformed_url">這似乎不是 %s 服務提供者。</string>
+ <string name="certificate_error">這不是受信任的 %s 服務提供者。</string>
+ <string name="service_is_down_error">該服務已停止。</string>
+ <string name="configuring_provider">正在設定服務提供者</string>
+ <string name="downloading_certificate_message">正在下載 VPN 憑證</string>
+ <string name="updating_certificate_message">正在更新 VPN 憑證</string>
+ <string name="login.riseup.warning">Riseup 使用者必須建立另一個帳戶來使用本 VPN 服務</string>
+ <string name="succesful_authentication_message">已驗證</string>
+ <string name="authentication_failed_message">無法驗證</string>
+ <string name="registration_failed_message">無法註冊</string>
+ <string name="eip_status_start_pending">正在初始化連線</string>
+ <string name="eip_status_connecting">正在連線到 VPN</string>
+ <string name="eip_status_unsecured">不安全的連線</string>
+ <string name="eip_status_secured">安全連線</string>
+ <string name="eip_cancel_connect_title">取消連線?</string>
+ <string name="eip_cancel_connect_text">已在嘗試連線中。您想要取消嗎?</string>
+ <string name="eip.warning.browser_inconsistency">關閉 VPN 連線?當 VPN 關閉時,您的個人資料可能會曝露於網路服務提供者或區域網路。</string>
+ <string name="eip_state_not_connected">未執行!連線不安全!</string>
+ <string name="eip_state_connected">連線安全</string>
+ <string name="provider_problem">該服務提供者似乎出現問題。</string>
+ <string name="try_another_provider">請嘗試使用其他服務提供者,或聯繫您的服務提供者。</string>
+ <string name="default_username">匿名</string>
+ <string name="logging_in">正在登入</string>
+ <string name="signing_up">正在註冊</string>
+ <string name="vpn.button.turn.on">開啟</string>
+ <string name="vpn.button.turn.off">關閉</string>
+ <string name="vpn_button_turn_off_blocking">停止阻擋</string>
+ <string name="vpn_securely_routed">您的流量已使用安全的路由傳輸:</string>
+ <string name="vpn_securely_routed_no_internet">沒有偵測到網際網路連線,當您恢復連線時,我們將使用安全路由來傳輸您的流量:</string>
+ <string name="log_fragment_title">日誌</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">開啟導航抽屜</string>
+ <string name="navigation_drawer_close">關閉導航抽屜</string>
+ <string name="action_example">操作範例</string>
+ <string name="action_settings">設定</string>
+ <string name="void_vpn_establish">%s 會封鎖所有連出的網路流量。</string>
+ <string name="void_vpn_error_establish">無法阻擋所有網路流量。</string>
+ <string name="void_vpn_stopped">已停止阻擋所有連出的網路流量。</string>
+ <string name="void_vpn_title">正在阻擋流量</string>
+ <string name="update_provider_details">更新服務提供者的詳細資料</string>
+ <string name="update_certificate">更新憑證</string>
+ <string name="warning_eip_json_corrupted">無法更新服務提供者設定。</string>
+ <string name="eip_json_corrupted_user_message">無法更新服務提供者設定。請於登入後再試一次。</string>
+ <string name="warning_client_parsing_error_gateways">無法辨識服務提供者閘道。對方的設定可能不正確。</string>
+ <string name="warning_corrupted_provider_details">儲存的服務提供者詳細資料已損毀。您可以更新 %s (建議),或使用商用憑證授權機構 (CA) 的憑證來更新服務提供者憑證。</string>
+ <string name="warning_corrupted_provider_cert">儲存的服務提供者憑證無效。您可以更新 %s (建議),或使用商用憑證授權機構 (CA) 的憑證來更新服務提供者憑證。</string>
+ <string name="warning_expired_provider_cert">儲存的服務提供者憑證已過期。您可以更新 %s (建議),或使用商用憑證授權機構 (CA) 的憑證來更新服務提供者憑證。</string>
+ <string name="downloading_vpn_certificate_failed">無法下載 VPN 憑證。請再試一次或選擇其他服務提供者。</string>
+ <string name="save_battery">省電模式</string>
+ <string name="subtitle_save_battery">VPN 熱點開啟時停用</string>
+ <string name="save_battery_message">當您未使用手機時,背景資料傳輸將進入休眠狀態。</string>
+ <string name="always_on_vpn">永久連線的 VPN</string>
+ <string name="subtitle_always_on_vpn">開啟 Android 系統設定</string>
+ <string name="tethering">VPN 熱點</string>
+ <string name="ipv6Firewall">封鎖 IPv6</string>
+ <string name="require_root">需要 root 權限</string>
+ <string name="show_experimental">顯示實驗性功能</string>
+ <string name="hide_experimental">隱藏實驗性功能</string>
+ <string name="experimental_features">實驗性功能</string>
+ <string name="tethering_enabled_message">請先確認已於 <![CDATA[<b>系統設定</b>]]> 啟用網路分享。</string>
+ <string name="tethering_message">透過以下方式與其他裝置分享您的 VPN:</string>
+ <string name="tethering_wifi">Wi-Fi 熱點</string>
+ <string name="tethering_usb">USB 網路分享</string>
+ <string name="tethering_bluetooth">藍牙網路分享</string>
+ <string name="do_not_show_again">不再顯示</string>
+ <string name="always_on_vpn_user_message">若要啟用永久連線的 VPN,請在 Android VPN 設定中點選該圖示 [img src] 並選擇開啟。</string>
+ <string name="always_on_blocking_vpn_user_message">為了最大程度保障您的隱私,您也應該啟用「封鎖未使用 VPN 的連線」選項。</string>
+ <string name="donate_title">捐助</string>
+ <string name="donate_default_message">如果您重視讓使用者與服務提供者皆能輕鬆且安全的通訊,請捐助本服務。</string>
+ <string name="donate_message">LEAP 仰賴捐助及補助來運作。如果您重視讓使用者與服務提供者皆能輕鬆且安全的通訊,請捐助本服務。</string>
+ <string name="donate_button_remind_later">稍後提醒</string>
+ <string name="donate_button_donate">捐助</string>
+ <string name="obfuscated_connection">正在使用混淆連線。</string>
+ <string name="obfuscated_connection_try">正在嘗試使用混淆連線。</string>
+ <string name="nav_drawer_obfuscated_connection">使用橋接</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">規避 VPN 過濾</string>
+ <string name="warning_exclude_apps_message">請小心設定排除於 VPN 之外的程式。這會曝露您的身分並危害到安全性。</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="other">%d 未受保護的程式</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s 無法連線。原因可能是 VPN 連線被封鎖。您想嘗試使用混淆連線嗎?</string>
+ <string name="warning_no_more_gateways_no_pt">%s 無法連線。您想再試一次嗎?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s 無法使用混淆的 VPN 連線。您想嘗試使用標準 VPN 連線嗎?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s 無法連線到 %2$s。您想嘗試自動連線到最佳地理位置嗎?</string>
+ <string name="warning_option_try_best">嘗試最佳地理位置</string>
+ <string name="warning_option_try_pt">嘗試使用混淆連線</string>
+ <string name="warning_option_try_ovpn">嘗試使用標準連線</string>
+ <string name="vpn_error_establish">Android 無法建立 VPN 服務。</string>
+ <string name="root_permission_error">若無 root 權限,%s 無法執行如 VPN 熱點或 IPv6 防火牆等功能。</string>
+ <string name="qs_enable_vpn">啟動 %s</string>
+ <string name="version_update_found">按這裡以開始下載。</string>
+ <string name="version_update_title">有新版本的 %s 可用。</string>
+ <string name="version_update_apk_description">正在下載新版本的 %s</string>
+ <string name="version_update_download_title">已下載新版本的 %s。</string>
+ <string name="version_update_download_description">按這裡以安裝更新。</string>
+ <string name="version_update_error_pgp_verification">PGP 驗證錯誤。將忽略該下載。</string>
+ <string name="version_update_error">無法更新。</string>
+ <string name="version_update_error_permissions">沒有安裝程式的權限。</string>
+ <string name="gateway_selection_title">選擇地理位置</string>
+ <string name="gateway_selection_recommended_location">建議的地理位置</string>
+ <string name="gateway_selection_recommended">(建議)</string>
+ <string name="gateway_selection_manually">手動選擇</string>
+ <string name="gateway_selection_automatic_location">自動使用最佳的連線</string>
+ <string name="gateway_selection_automatic">自動</string>
+ <string name="reconnecting">正在重新連線…</string>
+ <string name="tor_starting">正在啟動橋接以規避網路審查…</string>
+ <string name="tor_stopping">正在停止橋接</string>
+ <string name="tor_started">正在使用橋接以規避網路審查</string>
+ <string name="log_conn_done_pt">已連線到可插拔式傳輸</string>
+ <string name="log_conn_pt">正在連線到可插拔式傳輸</string>
+ <string name="log_conn_done">已連線到中繼</string>
+ <string name="log_handshake">正在和中繼交涉連線</string>
+ <string name="log_handshake_done">已完成中繼連線交涉</string>
+ <string name="log_onehop_create">正在建立加密的目錄連線</string>
+ <string name="log_requesting_status">正在請求網路狀態一致性</string>
+ <string name="log_loading_status">正在載入網路狀態一致性</string>
+ <string name="log_loading_keys">正在載入授權憑證</string>
+ <string name="log_requesting_descriptors">正在請求中繼描述元</string>
+ <string name="log_loading_descriptors">正在載入中繼描述元</string>
+ <string name="log_enough_dirinfo">已載入足以建立迴路的目錄資料</string>
+ <string name="log_ap_handshake_done">已和中繼完成建立連線的交涉</string>
+ <string name="log_circuit_create">正在建立 Tor 迴路連線</string>
+ <string name="log_done">執行</string>
+ <string name="channel_name_tor_service">%s 橋接服務</string>
+ <string name="channel_description_tor_service">設定 %s 時顯示橋接的使用情況。</string>
+ <string name="error_tor_timeout">無法啟動橋接。您想再試一次,或改用未混淆的連線繼續設定 %s 嗎?</string>
+ <string name="retry_unobfuscated">重試使用未混淆的連線</string>
+ <string name="hide">隱藏</string>
+ <string name="error_network_connection">%s 沒有連線到網際網路。請檢查您的 WiFi 和行動數據設定。</string>
+ <string name="censorship_circumvention">規避網路審查</string>
+ <string name="use_snowflake">使用 Snowflake</string>
+ <string name="snowflake_description">保護設定程式免於網路審查。</string>
+ <string name="vpn_settings">VPN 設置</string>
+ <string name="prefer_udp">可用時使用 UDP</string>
+ <string name="prefer_udp_subtitle">UDP 於串流時更快速也更好,但並不適用於所有網路。</string>
+ <string name="disabled_while_bridges_on">使用橋接時停用。</string>
+ <string name="hint_bridges">目前只有支援橋接的地理位置可供選擇。</string>
+ <string name="option_disable_bridges">停用橋接</string>
+ <string name="eip_state_insecure">連線不安全</string>
+ <string name="connection_not_connected">您的個人資料可能正曝露於網路服務提供者或區域網路。</string>
+ <string name="eip_state_no_network">您目前沒有連線到網際網路。當您恢復連線時,將自動連線到</string>
+ <string name="eip_state_blocking">%1$s 正在封鎖所有網路流量。</string>
+ <string name="disabled_while_udp_on">UDP 開啟時停用。</string>
+ <string name="advanced_settings">進階設定</string>
+ <string name="cancel_connection">中斷連缐</string>
+ <string name="unknown_location">未知的地理位置</string>
+ <string name="splash_footer">由 LEAP 開發</string>
+ <string name="welcome">歡迎!</string>
+ <string name="select_provider">選擇供應商</string>
+ <string name="provider_description_riseup">Riseup 致力於為解放社會變革的人民和團體提供線上交流工具。 我們透過控制自己的安全通訊方式來創造民主替代方案並實踐自決計畫。</string>
+ <string name="next">下一個</string>
+ <string name="qr_scanner_prompt">掃描二維條碼</string>
+ <string name="provider_description_calyx">Calyx 為非營利教育和研究組織,致力於研究、測試、開發和實施隱私技術和工具,以促進網路和行動通訊產業的言論自由、表達自由、公民參與和隱私權。</string>
+ <string name="title_circumvention_setup">需規避審查?</string>
+ <string name="circumvention_setup_description">如果住在網路審查的地區,可以使用我們的審查規避工具來存取所有網路服務。 這些選項會減慢您的連線速度!</string>
+ <string name="use_standard_vpn">使用標準 %s</string>
+ <string name="use_circumvention_tech">使用審查規避技術 (較慢)</string>
+ <string name="description_configure_provider">連接到供應商%1$s取得所有必要的設定資訊。 這僅發生在初次設定。</string>
+ <string name="description_configure_provider_circumvention">%1$s 嘗試從供應商收集所需的配置資料。 這僅發生在初次設定。 因選用規避技術,可能需要一些時間。</string>
+ <string name="details">詳情</string>
+ <string name="tor_status">洋蔥路由狀態</string>
+ <string name="snowflake_status">Snowflake 狀態</string>
+ <string name="snowflake_started">Snowflake 用戶端啟動</string>
+ <string name="title_upcoming_connection_request">即將到來的連接請求</string>
+ <string name="title_upcoming_notifications_request">即將到來通知請求</string>
+ <string name="title_setup_success">一切就緒!</string>
+ <string name="setup_success_description">點擊下方按鈕來接線</string>
+ <string name="permission_rejected">授權請求被拒。</string>
+ <string name="login_not_supported">應用程式當前的版本不支援登入,須為此供應商更新 VPN 憑證。</string>
+ <string name="select_language">選取語言</string>
+ <string name="validation_status_success">優</string>
+ <string name="validation_status_failure">不良</string>
+ <string name="vpn_certificate_is_invalid">該更新您的 VPN 憑證了。請下載新憑證以維持連線安全。這是例行更新。</string>
+ <string name="select_provider_description">使用 VPN 時,您是將信任從網路服務供應商轉移到 VPN 供應商。%1$s 與 %2$s 在隱私保護與倡議上有明確的紀錄。若您要新增供應商或使用邀請碼,請確認您了解並信任該供應商。</string>
+ <string name="add_provider_description">Bitmask 讓您能連線到未公開列出的供應商。請確認您了解並信任所新增的供應商。</string>
+ <string name="add_provider_prompt">請在此輸入供應商的網址。</string>
+ <string name="invite_code_provider_description">Bitmask 讓您能使用私人邀請碼連線到供應商。</string>
+ <string name="invite_code_provider_prompt">請在此輸入您信任的邀請碼。</string>
+ <string name="circumvention_setup_hint">%s 會自動嘗試使用多種規避審查技術(包含 Tor)將您連上網際網路。您可以在進階設定中微調此項。</string>
+ <string name="title_upcoming_request">即將出現的請求</string>
+ <string name="title_upcoming_request_summary">在接下來的畫面中,Android 會以連線請求與通知請求的形式詢問您的授權。</string>
+ <string name="title_upcoming_connection_request_summary_custom">接受連線請求是使用 %s 核心功能的必要步驟。</string>
+ <string name="title_upcoming_connection_request_summary">關於連線請求,請了解 Bitmask 只與信任的合作供應商往來,這些供應商遵循 VPN 最佳實務,並在保護使用者資料與身分上有可驗證的紀錄。但若您是手動連線到非公開的供應商,請確認您信任他們。</string>
+ <string name="title_upcoming_notification_request_summary">接受通知請求可讓 App 在背景執行,並讓您在 Android 的通知中心查看您的數據用量。</string>
+ <string name="syntax_check">語法檢查:</string>
+ <string name="enter_invite_code">輸入邀請碼</string>
+ <string name="invalid_code">無效的代碼</string>
+ <string name="automatic_bridge">自動(建議)</string>
+ <string name="automatic_bridge_description">將使用最佳可用的橋接與協定嘗試連線。</string>
+ <string name="manual_bridge">手動設定</string>
+ <string name="manual_bridge_description">選擇私人橋接與特定協定</string>
+ <string name="censorship_circumvention_description">手動設定需要技術知識。請謹慎操作。</string>
+ <string name="discovery">探索</string>
+ <string name="discovery_description">審查者可能封鎖您探索供應商關鍵設定資訊的過程。請選擇一種規避方式來繞過封鎖。</string>
+ <string name="automatically_select">自動選擇</string>
+ <string name="invite_proxy">邀請代理</string>
+ <string name="tunnelling">通道傳輸</string>
+ <string name="tunnelling_description">審查者可能封鎖對開放網際網路的存取。請選擇一種規避方式來繞過封鎖。</string>
+ <string name="port_hopping">連接埠跳換</string>
+ <string name="port_hopping_description">"審查者利用流量分析來封鎖對開放網際網路的存取。連接埠跳換能讓他們更難做到這點。 "</string>
+ <string name="error_invite_title">糟糕,這個邀請碼有點問題:</string>
+ <string name="error_invite">無效的邀請碼:%1$s</string>
+ <string name="error_invite_copy">複製邀請碼</string>
+ <string name="error_invite_hint">您可以複製此代碼並分享給您的供應商以尋求支援。</string>
+ <string name="error_invite_unknown_type">邀請碼類型 %1$s 未知。</string>
+ <string name="error_invite_address_format">邀請代理位址不符合 ipaddr:port 的格式。</string>
+ <string name="error_invite_certificate_length">憑證的字元數量錯誤(%1$s)。</string>
+ <string name="error_invite_certificate_missing">缺少邀請代理憑證。</string>
+ <string name="error_invite_fqdn_length">邀請碼應包含完整網域名稱,但收到的是 %1$s。</string>
+ <string name="error_invite_fqdn_missing">缺少完整網域名稱。</string>
+ <string name="error_invite_auth_missing">缺少身分驗證權杖。</string>
+ <string name="error_invite_fqdn_invalid">邀請碼在 %1$s 中包含無效字元</string>
</resources>
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index d0901e88..b0807fd3 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -1,240 +1,270 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<resources>
- <string name="retry">重试</string>
- <string name="repository_url_text">源代码可在 https://0xacab.org/leap/bitmask_android 找到</string>
- <string name="leap_tracker">问题追踪器可在 https://0xacab.org/leap/bitmask_android/issues 找到</string>
- <string name="translation_project_text">我们鼓励并感谢诸位提供翻译。请在 https://www.transifex.com/projects/p/bitmask/ 参阅我们的 Transifex 项目</string>
- <string name="switch_provider_menu_option">切换提供商</string>
- <string name="info">信息</string>
- <string name="show_connection_details">显示连接详情</string>
- <string name="connection_details">连接详情</string>
- <string name="routes_info">路由:%s</string>
- <string name="routes_info6">IPv6 路由:%s</string>
- <string name="error_empty_username">用户名不能为空。</string>
- <string name="cert_from_keystore">获取来自密钥库“%s”证书</string>
- <string name="provider_label">提供商:</string>
- <string name="provider_label_none">未配置提供商</string>
- <string name="status_unknown">状态未知。</string>
- <string name="eip_service_label">接入互联网的加密 VPN</string>
- <string name="configuration_wizard_title">选择服务提供商</string>
- <string name="add_provider">添加新提供商</string>
- <string name="introduce_new_provider">添加新服务提供商</string>
- <string name="save">保存</string>
- <string name="new_provider_uri">域名</string>
- <string name="valid_url_entered">输入的 URL 有效</string>
- <string name="not_valid_url_entered">畸形 URL</string>
- <string name="provider_details_title">提供商详情</string>
- <string name="use_anonymously_button">匿名使用</string>
- <string name="username_hint">用户名</string>
- <string name="username_ask">请输入您的用户名</string>
- <string name="password_ask">请输入您的密码</string>
- <string name="password_hint">密码</string>
- <string name="password_match">密码匹配</string>
- <string name="password_mismatch">密码不匹配</string>
- <string name="user_message">用户消息</string>
- <string name="about_fragment_title">关于</string>
- <string name="exclude_apps_fragment_title">VPN 应用例外</string>
- <string name="error_srp_math_error_user_message">请重试:服务器计算错误</string>
- <string name="error_bad_user_password_user_message">密码或用户名错误</string>
- <string name="error_not_valid_password_user_message">密码长度必须至少要 8 个字符</string>
- <string name="error_client_http_user_message">请重试:客户端 HTTP 错误</string>
- <string name="error_io_exception_user_message">请重试:I/O 错误</string>
- <string name="error_json_exception_user_message">请重试:服务器无响应</string>
- <string name="error_no_such_algorithm_exception_user_message">加密算法未找到。请升级 Android!</string>
- <string name="signup_or_login_button">注册/登录</string>
- <string name="login_button">登录</string>
- <string name="login_to_profile">登录配置</string>
- <string name="logout_button">退出</string>
- <string name="signup_button">注册</string>
- <string name="create_profile">创建配置</string>
- <string name="setup_provider">设置提供商</string>
- <string name="setup_error_title">配置错误</string>
- <string name="setup_error_configure_button">配置</string>
- <string name="setup_error_close_button">退出</string>
- <string name="setup_error_text">选择的提供商 %s 配置错误。\n\n您可选择重新配置,或退出并在下次启动时配置提供商。</string>
- <string name="setup_error_text_custom">错误配置 %s 。\n\n您可选择重新配置或退出。</string>
- <string name="server_unreachable_message">无法访问服务器,请重试。</string>
- <string name="error.security.pinnedcertificate">安全错误,升级应用或选择其他提供商。</string>
- <string name="malformed_url">这似乎不是一个 %s 提供商。</string>
- <string name="certificate_error">这不是一个信任 %s 提供商。</string>
- <string name="service_is_down_error">此服务已下线。</string>
- <string name="configuring_provider">正在配置提供商</string>
- <string name="incorrectly_downloaded_certificate_message">您的匿名证书未被下载</string>
- <string name="downloading_certificate_message">正在下载 VPN 证书</string>
- <string name="updating_certificate_message">正在更新 VPN 证书</string>
- <string name="login.riseup.warning">使用此 VPN 服务的 Riseup 用户需要创建一个单独的账号</string>
- <string name="succesful_authentication_message">已验证</string>
- <string name="authentication_failed_message">认证失败</string>
- <string name="registration_failed_message">注册失败</string>
- <string name="eip_status_start_pending">正在初始化连接</string>
- <string name="eip_status_connecting">正在连接 VPN</string>
- <string name="eip_status_unsecured">不安全连接</string>
- <string name="eip_status_secured">安全连接</string>
- <string name="eip_cancel_connect_title">取消连接?</string>
- <string name="eip_cancel_connect_text">尝试连接中。您希望取消吗?</string>
- <string name="eip.warning.browser_inconsistency">是否关闭 VPN 连接?关闭 VPN 可能会造成向您的互联网提供商或本地网络泄露个人信息的后果。</string>
- <string name="eip_state_not_connected">未运行!不安全连接!</string>
- <string name="eip_state_connected">连接不安全</string>
- <string name="provider_problem">提供商似乎出了问题。</string>
- <string name="try_another_provider">请尝试使用其他提供商,或联系您的提供商。</string>
- <string name="default_username">匿名</string>
- <string name="logging_in">正在登录</string>
- <string name="signing_up">正在注册</string>
- <string name="vpn.button.turn.on">开启</string>
- <string name="vpn.button.turn.off">关闭</string>
- <string name="vpn_button_turn_off_blocking">停止屏蔽</string>
- <string name="vpn_securely_routed">您的流量安全地途经:</string>
- <string name="vpn_securely_routed_no_internet">未检测到互联网连接,连接恢复时将安全地代理您的流量:</string>
- <string name="log_fragment_title">日志</string>
- <string name="vpn_fragment_title">VPN</string>
- <string name="navigation_drawer_open">打开导航栏</string>
- <string name="navigation_drawer_close">关闭导航栏</string>
- <string name="action_example">示范操作</string>
- <string name="action_settings">设置</string>
- <string name="void_vpn_establish">%s 屏蔽所有出站网络流量。</string>
- <string name="void_vpn_error_establish">屏蔽所有互联网流量失败。</string>
- <string name="void_vpn_stopped">已停止屏蔽所有出站网络流量。</string>
- <string name="void_vpn_title">正在屏蔽流量</string>
- <string name="update_provider_details">更新提供商详情</string>
- <string name="update_certificate">更新证书</string>
- <string name="warning_eip_json_corrupted">更新服务商配置失败。</string>
- <string name="eip_json_corrupted_user_message">更新服务商配置失败。请登录后再试。</string>
- <string name="warning_client_parsing_error_gateways">无法识别提供商网关。网关配置可能不正确。</string>
- <string name="warning_corrupted_provider_details">存储的提供商详情已损坏。您可以更新 %s(推荐),或更新使用商业 CA 证书的提供商详情。</string>
- <string name="warning_corrupted_provider_cert">存储的提供商证书无效。您可以更新 %s(推荐),或更新使用商业 CA 证书的提供商详情。</string>
- <string name="warning_expired_provider_cert">存储的提供商证书过期。您可以更新 %s(推荐),或更新使用商业 CA 证书的提供商详情。</string>
- <string name="downloading_vpn_certificate_failed">下载 VPN 证书失败。请重试或选择其他提供商。</string>
- <string name="vpn_certificate_is_invalid">VPN 证书无效。尝试下载新的证书。</string>
- <string name="vpn_certificate_user_message">VPN 证书无效。请登录后下载新证书。</string>
- <string name="save_battery">省电模式</string>
- <string name="subtitle_save_battery"> VPN 热点开启时禁用。</string>
- <string name="save_battery_message">您的手机锁屏时,后台数据连接处于休眠状态。</string>
- <string name="always_on_vpn">始终开启的 VPN</string>
- <string name="subtitle_always_on_vpn">打开 Android 系统设置</string>
- <string name="tethering">VPN 热点</string>
- <string name="ipv6Firewall">屏蔽 IPv6</string>
- <string name="require_root">需要 Root 权限</string>
- <string name="show_experimental">显示实验性功能</string>
- <string name="hide_experimental">隐藏实验性功能</string>
- <string name="experimental_features">实验性功能</string>
- <string name="tethering_enabled_message">请先确保在<![CDATA[<b>系统设置</b>]]>启用网络共享。</string>
- <string name="tethering_message">通过以下方式与其他设备分享您的 VPN:</string>
- <string name="tethering_wifi">Wi-Fi 热点</string>
- <string name="tethering_usb">USB 网络共享</string>
- <string name="tethering_bluetooth">蓝牙网络共享</string>
- <string name="do_not_show_again">不再显示</string>
- <string name="always_on_vpn_user_message">在 Android 的 VPN 设置中点击配置图标 [img src] 并启用始终开启的 VPN 开启。</string>
- <string name="always_on_blocking_vpn_user_message">为最大程度保障您的隐私,您也应当启用“屏蔽未使用 VPN 的所有连接”选项。</string>
- <string name="donate_title">捐助</string>
- <string name="donate_default_message">如果您重视为终端用户和服务提供商双方提供便捷的安全通信,请捐助此服务。</string>
- <string name="donate_message">LEAP 的运作依赖捐赠和补助。如果您重视为终端用户和服务提供商双方提供便捷的安全通信,请捐助此服务。</string>
- <string name="donate_button_remind_later">稍后提醒</string>
- <string name="donate_button_donate">捐助</string>
- <string name="obfuscated_connection">正在使用混淆连接。</string>
- <string name="obfuscated_connection_try">正在尝试混淆连接。</string>
- <string name="nav_drawer_obfuscated_connection">使用网桥</string>
- <string name="nav_drawer_subtitle_obfuscated_connection">规避 VPN 过滤</string>
- <string name="warning_exclude_apps_message">请小心 VPN 例外应用。这些应用会泄露您的身份,从而让您在安全问题上作出让步。</string>
- <plurals name="subtitle_exclude_apps">
- <item quantity="other">%d 未保护应用</item>
- </plurals>
- <string name="warning_no_more_gateways_use_pt">%s 无法连接。VPN 连接可能被屏蔽。您是否想使用混淆连接再试?</string>
- <string name="warning_no_more_gateways_no_pt">%s 无法连接。您是否想再试?</string>
- <string name="warning_no_more_gateways_use_ovpn">%s 无法使用混淆 VPN 连接。您是否想使用标准 VPN 再试?</string>
- <string name="warning_no_more_gateways_manual_gw_selection">%1$s 无法连接至 %2$s。您是否想自动连接至最佳位置再试?</string>
- <string name="warning_option_try_best">尝试最佳位置</string>
- <string name="warning_option_try_pt">尝试混淆连接</string>
- <string name="warning_option_try_ovpn">尝试标准连接</string>
- <string name="vpn_error_establish">Android 建立 VPN 服务失败。</string>
- <string name="root_permission_error">若无 Root 权限,像是 VPN 热点或 IPv6 防火墙的 %s 功能无法使用。</string>
- <string name="qs_enable_vpn">启动 %s</string>
- <string name="version_update_found">点击这里开始下载。</string>
- <string name="version_update_title">已发现新版本 %s。</string>
- <string name="version_update_apk_description">正在下载新版本 %s</string>
- <string name="version_update_download_title">新版本 %s 已下载。</string>
- <string name="version_update_download_description">点击这里安装更新。</string>
- <string name="version_update_error_pgp_verification">PGP 验证错误。正在忽略下载。</string>
- <string name="version_update_error">升级失败。</string>
- <string name="version_update_error_permissions">没有安装应用的权限。</string>
- <string name="gateway_selection_title">选择位置</string>
- <string name="gateway_selection_recommended_location">推荐位置</string>
- <string name="gateway_selection_recommended">推荐</string>
- <string name="gateway_selection_manually">手动选择</string>
- <string name="gateway_selection_automatic_location">自动使用最佳连接</string>
- <string name="gateway_selection_automatic">自动</string>
- <string name="reconnecting">正在重新连接…</string>
- <string name="tor_starting">正在启用用于审查规避的网桥…</string>
- <string name="tor_stopping">正在关闭网桥</string>
- <string name="tor_started">正在使用用于审查规避的网桥</string>
- <string name="log_conn_done_pt">已连接可插拔传输</string>
- <string name="log_conn_pt">正在连接可插拔传输</string>
- <string name="log_conn_done">已连接中继</string>
- <string name="log_handshake">正在与中继协商连接</string>
- <string name="log_handshake_done">与中继协商连接完成</string>
- <string name="log_onehop_create">正在建立加密目录连接</string>
- <string name="log_requesting_status">正在请求网络状态一致性</string>
- <string name="log_loading_status">正在加载网络状态一致性</string>
- <string name="log_loading_keys">正在加载颁发机构发放的证书</string>
- <string name="log_requesting_descriptors">正在请求中继描述符</string>
- <string name="log_loading_descriptors">正在加载中继描述符</string>
- <string name="log_enough_dirinfo">已加载足以用于构建链路的目录信息</string>
- <string name="log_ap_handshake_done">与用于构建链路的中继协商完成</string>
- <string name="log_circuit_create">正在建立 Tor 链路</string>
- <string name="log_done">正在运行</string>
- <string name="channel_name_tor_service">%s 网桥服务</string>
- <string name="channel_description_tor_service">配置 %s 时告知有关网桥的使用情况。</string>
- <string name="error_tor_timeout">启动网桥失败。您是否想重试或继续使用未经混淆的安全连接来配置 %s?</string>
- <string name="retry_unobfuscated">重试未经混淆的连接</string>
- <string name="hide">隐藏</string>
- <string name="error_network_connection">%s 未连网。请检查您的 WiFi 和移动数据设置。</string>
- <string name="censorship_circumvention">审查规避</string>
- <string name="use_snowflake">使用 Snowflake</string>
- <string name="snowflake_description">保护对抗审查的配置进程。</string>
- <string name="vpn_settings">VPN 设置</string>
- <string name="prefer_udp">可用时使用 UDP</string>
- <string name="prefer_udp_subtitle">UDP 对直播更快更好,但并非对所有网络可用。</string>
- <string name="disabled_while_bridges_on">使用网桥时禁用。</string>
- <string name="hint_bridges">目前仅支持网桥的位置可供选择。</string>
- <string name="option_disable_bridges">禁用网桥</string>
- <string name="eip_state_insecure">连接不安全</string>
- <string name="connection_not_connected">您可能会向您的互联网提供商或本地网络泄露信息。</string>
- <string name="eip_state_no_network">您未正常联网。网络恢复后将自动连接。</string>
- <string name="eip_state_blocking">%1$s 正在屏蔽所有互联网流量。</string>
- <string name="disabled_while_udp_on">UDP 开启时禁用。</string>
- <string name="advanced_settings">高级设置</string>
- <string name="cancel_connection">中断连接</string>
- <string name="unknown_location">未知位置</string>
- <string name="splash_footer">由 LEAP 开发</string>
- <string name="welcome">欢迎!</string>
- <string name="select_provider">选择提供商</string>
- <string name="select_provider_description">使用 VPN 是将信任从网路服务供应商转移到 VPN 提供者。 Bitmask 只和有良好记录保护和倡导隐私的提供者建立连线。</string>
- <string name="provider_description_riseup">Riseup 为解放社会变革的人民和团体提供线上交流工具,透过控制自己的安全通讯方式来创造民主替代方案并实践自决方案。</string>
- <string name="next">下一步</string>
- <string name="add_provider_description">Bitmask 连接未公开的可信任提供者。 在下面输入提供者的网址。</string>
- <string name="qr_scanner_prompt">扫描二维码</string>
- <string name="provider_description_calyx">Calyx 为非营利教育研究组织,致力研究、测试、开发和实施隐私技术和工具,促进网路和行动通讯产业的言论自由、表达自由、公民参与和隐私权。</string>
- <string name="title_circumvention_setup">需要进行审查规避?</string>
- <string name="circumvention_setup_description">如果居住在网路审查的地区,可以使用我们的审查规避工具来存取所有网路服务。 但这些选项会减慢连线速度!</string>
- <string name="circumvention_setup_hint">%s会自动尝试使用各种规避技术来连接互联网,高级设定下可对此作微调。</string>
- <string name="use_standard_vpn">使用标准 %s</string>
- <string name="use_circumvention_tech">使用审查规避技术(慢速)</string>
- <string name="description_configure_provider">连接到供应商%1$s取得必要的设定资讯。 这仅发生在首次设定。</string>
- <string name="description_configure_provider_circumvention">%1$s 试图向供应商收集所需的配置数据。 这只发生在初次设定。 因选用规避技术,可能要多花点时间。</string>
- <string name="details">详情</string>
- <string name="tor_status">Tor 状态</string>
- <string name="snowflake_status">Snowflake 状态</string>
- <string name="snowflake_started">Snowflake 客户端已启动</string>
- <string name="snowflake_negotiating_rendezvous_http">正在与 Snowflake 代理协商握手(HTTP)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">正在与 Snowflake 代理协商握手(AMP 缓存)</string>
- <string name="snowflake_socks_error">Snowflake SOCKS 错误</string>
- <string name="snowflake_broker_success">Snowflake 代理握手成功</string>
- <string name="snowflake_sending_data">通过 Snowflake 发送数据</string>
- <string name="title_upcoming_connection_request">即将到来的连接请求</string>
- <string name="title_upcoming_notifications_request">即将到来的通知请求</string>
- <string name="title_setup_success">一切就绪!</string>
- <string name="setup_success_description">点按下方按钮进行连接</string>
- <string name="permission_rejected">权限请求被拒绝。</string>
- <string name="login_not_supported">应用程序当前的版本不支援登入,须为此供应商更新 VPN 凭证。</string>
- <string name="select_language">选择语言</string>
- <string name="scan_qr_code">扫描二维码</string>
+ <string name="retry">重试</string>
+ <string name="repository_url_text">源代码可在 https://0xacab.org/leap/bitmask_android 找到</string>
+ <string name="leap_tracker">问题追踪器可在 https://0xacab.org/leap/bitmask_android/issues 找到</string>
+ <string name="translation_project_text">我们鼓励并感谢诸位提供翻译。请查看我们的项目:https://localizationlab.weblate.cloud/projects/bitmask/</string>
+ <string name="switch_provider_menu_option">切换提供商</string>
+ <string name="info">信息</string>
+ <string name="show_connection_details">显示连接详情</string>
+ <string name="connection_details">连接详情</string>
+ <string name="routes_info">路由:%s</string>
+ <string name="routes_info6">IPv6 路由:%s</string>
+ <string name="error_empty_username">用户名不能为空。</string>
+ <string name="cert_from_keystore">获取来自密钥库“%s”证书</string>
+ <string name="provider_label">提供商:</string>
+ <string name="provider_label_none">未配置提供商</string>
+ <string name="status_unknown">状态未知。</string>
+ <string name="eip_service_label">接入互联网的加密 VPN</string>
+ <string name="configuration_wizard_title">选择服务提供商</string>
+ <string name="add_provider">添加新提供商</string>
+ <string name="introduce_new_provider">添加新服务提供商</string>
+ <string name="save">保存</string>
+ <string name="new_provider_uri">域名</string>
+ <string name="valid_url_entered">输入的 URL 有效</string>
+ <string name="not_valid_url_entered">URL 格式不正确</string>
+ <string name="provider_details_title">提供商详情</string>
+ <string name="use_anonymously_button">匿名使用</string>
+ <string name="username_hint">用户名</string>
+ <string name="username_ask">请输入您的用户名</string>
+ <string name="password_ask">请输入您的密码</string>
+ <string name="password_hint">密码</string>
+ <string name="password_match">密码匹配</string>
+ <string name="password_mismatch">密码不匹配</string>
+ <string name="user_message">用户消息</string>
+ <string name="about_fragment_title">关于</string>
+ <string name="exclude_apps_fragment_title">VPN 应用例外</string>
+ <string name="error_srp_math_error_user_message">请重试:服务器计算错误</string>
+ <string name="error_bad_user_password_user_message">密码或用户名错误</string>
+ <string name="error_not_valid_password_user_message">密码长度必须至少要 8 个字符</string>
+ <string name="error_client_http_user_message">请重试:客户端 HTTP 错误</string>
+ <string name="error_io_exception_user_message">请重试:I/O 错误</string>
+ <string name="error_json_exception_user_message">请重试:服务器无响应</string>
+ <string name="error_no_such_algorithm_exception_user_message">加密算法未找到。请升级 Android!</string>
+ <string name="signup_or_login_button">注册/登录</string>
+ <string name="login_button">登录</string>
+ <string name="login_to_profile">登录配置</string>
+ <string name="logout_button">登出</string>
+ <string name="signup_button">注册</string>
+ <string name="create_profile">创建配置</string>
+ <string name="setup_provider">设置提供商</string>
+ <string name="setup_error_title">配置错误</string>
+ <string name="setup_error_configure_button">配置</string>
+ <string name="setup_error_close_button">退出</string>
+ <string name="setup_error_text">选择的提供商 %s 配置错误。\n\n您可选择重新配置,或退出并在下次启动时配置提供商。</string>
+ <string name="setup_error_text_custom">错误配置 %s 。\n\n您可选择重新配置或退出。</string>
+ <string name="server_unreachable_message">无法访问服务器,请重试。</string>
+ <string name="error.security.pinnedcertificate">安全错误,升级应用或选择其他提供商。</string>
+ <string name="malformed_url">这似乎不是一个 %s 提供商。</string>
+ <string name="certificate_error">这不是一个信任 %s 提供商。</string>
+ <string name="service_is_down_error">此服务已下线。</string>
+ <string name="configuring_provider">正在配置提供商</string>
+ <string name="downloading_certificate_message">正在下载 VPN 证书</string>
+ <string name="updating_certificate_message">正在更新 VPN 证书</string>
+ <string name="login.riseup.warning">使用此 VPN 服务的 Riseup 用户需要创建一个单独的账号</string>
+ <string name="succesful_authentication_message">已验证</string>
+ <string name="authentication_failed_message">认证失败</string>
+ <string name="registration_failed_message">注册失败</string>
+ <string name="eip_status_start_pending">正在初始化连接</string>
+ <string name="eip_status_connecting">正在连接 VPN</string>
+ <string name="eip_status_unsecured">不安全连接</string>
+ <string name="eip_status_secured">安全连接</string>
+ <string name="eip_cancel_connect_title">取消连接?</string>
+ <string name="eip_cancel_connect_text">尝试连接中。您希望取消吗?</string>
+ <string name="eip.warning.browser_inconsistency">是否关闭 VPN 连接?关闭 VPN 可能会造成向您的互联网提供商或本地网络泄露个人信息的后果。</string>
+ <string name="eip_state_not_connected">未运行!不安全连接!</string>
+ <string name="eip_state_connected">连接不安全</string>
+ <string name="provider_problem">提供商似乎出了问题。</string>
+ <string name="try_another_provider">请尝试使用其他提供商,或联系您的提供商。</string>
+ <string name="default_username">匿名</string>
+ <string name="logging_in">正在登录</string>
+ <string name="signing_up">正在注册</string>
+ <string name="vpn.button.turn.on">开启</string>
+ <string name="vpn.button.turn.off">关闭</string>
+ <string name="vpn_button_turn_off_blocking">停止屏蔽</string>
+ <string name="vpn_securely_routed">您的流量安全地途经:</string>
+ <string name="vpn_securely_routed_no_internet">未检测到互联网连接,连接恢复时将安全地代理您的流量:</string>
+ <string name="log_fragment_title">日志</string>
+ <string name="vpn_fragment_title">VPN</string>
+ <string name="navigation_drawer_open">打开导航栏</string>
+ <string name="navigation_drawer_close">关闭导航栏</string>
+ <string name="action_example">示范操作</string>
+ <string name="action_settings">设置</string>
+ <string name="void_vpn_establish">%s 屏蔽所有出站网络流量。</string>
+ <string name="void_vpn_error_establish">屏蔽所有互联网流量失败。</string>
+ <string name="void_vpn_stopped">已停止屏蔽所有出站网络流量。</string>
+ <string name="void_vpn_title">正在屏蔽流量</string>
+ <string name="update_provider_details">更新提供商详情</string>
+ <string name="update_certificate">更新证书</string>
+ <string name="warning_eip_json_corrupted">更新服务商配置失败。</string>
+ <string name="eip_json_corrupted_user_message">更新服务商配置失败。请登录后再试。</string>
+ <string name="warning_client_parsing_error_gateways">无法识别提供商网关。网关配置可能不正确。</string>
+ <string name="warning_corrupted_provider_details">存储的提供商详情已损坏。您可以更新 %s(推荐),或更新使用商业 CA 证书的提供商详情。</string>
+ <string name="warning_corrupted_provider_cert">存储的提供商证书无效。您可以更新 %s(推荐),或更新使用商业 CA 证书的提供商详情。</string>
+ <string name="warning_expired_provider_cert">存储的提供商证书过期。您可以更新 %s(推荐),或更新使用商业 CA 证书的提供商详情。</string>
+ <string name="downloading_vpn_certificate_failed">下载 VPN 证书失败。请重试或选择其他提供商。</string>
+ <string name="save_battery">省电模式</string>
+ <string name="subtitle_save_battery">VPN 热点开启时禁用</string>
+ <string name="save_battery_message">您的手机锁屏时,后台数据连接处于休眠状态。</string>
+ <string name="always_on_vpn">始终开启的 VPN</string>
+ <string name="subtitle_always_on_vpn">打开 Android 系统设置</string>
+ <string name="tethering">VPN 热点</string>
+ <string name="ipv6Firewall">屏蔽 IPv6</string>
+ <string name="require_root">需要 Root 权限</string>
+ <string name="show_experimental">显示实验性功能</string>
+ <string name="hide_experimental">隐藏实验性功能</string>
+ <string name="experimental_features">实验性功能</string>
+ <string name="tethering_enabled_message">请先确保在<![CDATA[<b>系统设置</b>]]>启用网络共享。</string>
+ <string name="tethering_message">通过以下方式与其他设备分享您的 VPN:</string>
+ <string name="tethering_wifi">Wi-Fi 热点</string>
+ <string name="tethering_usb">USB 网络共享</string>
+ <string name="tethering_bluetooth">蓝牙网络共享</string>
+ <string name="do_not_show_again">不再显示</string>
+ <string name="always_on_vpn_user_message">在 Android 的 VPN 设置中点击配置图标 [img src] 并启用始终开启的 VPN 开启。</string>
+ <string name="always_on_blocking_vpn_user_message">为最大程度保障您的隐私,您也应当启用“屏蔽未使用 VPN 的所有连接”选项。</string>
+ <string name="donate_title">捐助</string>
+ <string name="donate_default_message">如果您重视为终端用户和服务提供商双方提供便捷的安全通信,请捐助此服务。</string>
+ <string name="donate_message">LEAP 的运作依赖捐赠和补助。如果您重视为终端用户和服务提供商双方提供便捷的安全通信,请捐助此服务。</string>
+ <string name="donate_button_remind_later">稍后提醒</string>
+ <string name="donate_button_donate">捐助</string>
+ <string name="obfuscated_connection">正在使用混淆连接。</string>
+ <string name="obfuscated_connection_try">正在尝试混淆连接。</string>
+ <string name="nav_drawer_obfuscated_connection">使用网桥</string>
+ <string name="nav_drawer_subtitle_obfuscated_connection">规避 VPN 过滤</string>
+ <string name="warning_exclude_apps_message">请小心 VPN 例外应用。这些应用会泄露您的身份,从而让您在安全问题上作出让步。</string>
+ <plurals name="subtitle_exclude_apps">
+ <item quantity="other">%d 未保护应用</item>
+ </plurals>
+ <string name="warning_no_more_gateways_use_pt">%s 无法连接。VPN 连接可能被屏蔽。您是否想使用混淆连接再试?</string>
+ <string name="warning_no_more_gateways_no_pt">%s 无法连接。您是否想再试?</string>
+ <string name="warning_no_more_gateways_use_ovpn">%s 无法使用混淆 VPN 连接。您是否想使用标准 VPN 再试?</string>
+ <string name="warning_no_more_gateways_manual_gw_selection">%1$s 无法连接至 %2$s。您是否想自动连接至最佳位置再试?</string>
+ <string name="warning_option_try_best">尝试最佳位置</string>
+ <string name="warning_option_try_pt">尝试混淆连接</string>
+ <string name="warning_option_try_ovpn">尝试标准连接</string>
+ <string name="vpn_error_establish">Android 建立 VPN 服务失败。</string>
+ <string name="root_permission_error">若无 Root 权限,像是 VPN 热点或 IPv6 防火墙的 %s 功能无法使用。</string>
+ <string name="qs_enable_vpn">启动 %s</string>
+ <string name="version_update_found">点击这里开始下载。</string>
+ <string name="version_update_title">已发现新版本 %s。</string>
+ <string name="version_update_apk_description">正在下载新版本 %s</string>
+ <string name="version_update_download_title">新版本 %s 已下载。</string>
+ <string name="version_update_download_description">点击这里安装更新。</string>
+ <string name="version_update_error_pgp_verification">PGP 验证错误。正在忽略下载。</string>
+ <string name="version_update_error">升级失败。</string>
+ <string name="version_update_error_permissions">没有安装应用的权限。</string>
+ <string name="gateway_selection_title">选择位置</string>
+ <string name="gateway_selection_recommended_location">推荐位置</string>
+ <string name="gateway_selection_recommended">推荐</string>
+ <string name="gateway_selection_manually">手动选择</string>
+ <string name="gateway_selection_automatic_location">自动使用最佳连接</string>
+ <string name="gateway_selection_automatic">自动</string>
+ <string name="reconnecting">正在重新连接…</string>
+ <string name="tor_starting">正在启用用于审查规避的网桥…</string>
+ <string name="tor_stopping">正在关闭网桥</string>
+ <string name="tor_started">正在使用用于审查规避的网桥</string>
+ <string name="log_conn_done_pt">已连接可插拔传输</string>
+ <string name="log_conn_pt">正在连接可插拔传输</string>
+ <string name="log_conn_done">已连接中继</string>
+ <string name="log_handshake">正在与中继协商连接</string>
+ <string name="log_handshake_done">与中继协商连接完成</string>
+ <string name="log_onehop_create">正在建立加密目录连接</string>
+ <string name="log_requesting_status">正在请求网络状态一致性</string>
+ <string name="log_loading_status">正在加载网络状态一致性</string>
+ <string name="log_loading_keys">正在加载颁发机构发放的证书</string>
+ <string name="log_requesting_descriptors">正在请求中继描述符</string>
+ <string name="log_loading_descriptors">正在加载中继描述符</string>
+ <string name="log_enough_dirinfo">已加载足以用于构建链路的目录信息</string>
+ <string name="log_ap_handshake_done">与用于构建链路的中继协商完成</string>
+ <string name="log_circuit_create">正在建立 Tor 链路</string>
+ <string name="log_done">正在运行</string>
+ <string name="channel_name_tor_service">%s 网桥服务</string>
+ <string name="channel_description_tor_service">配置 %s 时告知有关网桥的使用情况。</string>
+ <string name="error_tor_timeout">启动网桥失败。您是否想重试或继续使用未经混淆的安全连接来配置 %s?</string>
+ <string name="retry_unobfuscated">重试未经混淆的连接</string>
+ <string name="hide">隐藏</string>
+ <string name="error_network_connection">%s 未连网。请检查您的 WiFi 和移动数据设置。</string>
+ <string name="censorship_circumvention">审查规避</string>
+ <string name="use_snowflake">使用 Snowflake</string>
+ <string name="snowflake_description">保护对抗审查的配置进程。</string>
+ <string name="vpn_settings">VPN 设置</string>
+ <string name="prefer_udp">可用时使用 UDP</string>
+ <string name="prefer_udp_subtitle">UDP 对直播更快更好,但并非对所有网络可用。</string>
+ <string name="disabled_while_bridges_on">使用网桥时禁用。</string>
+ <string name="hint_bridges">目前仅支持网桥的位置可供选择。</string>
+ <string name="option_disable_bridges">禁用网桥</string>
+ <string name="eip_state_insecure">连接不安全</string>
+ <string name="connection_not_connected">您可能会向您的互联网提供商或本地网络泄露信息。</string>
+ <string name="eip_state_no_network">您当前未连接到互联网。一旦恢复连接,您将自动连接到</string>
+ <string name="eip_state_blocking">%1$s 正在屏蔽所有互联网流量。</string>
+ <string name="disabled_while_udp_on">UDP 开启时禁用。</string>
+ <string name="advanced_settings">高级设置</string>
+ <string name="cancel_connection">断开连接</string>
+ <string name="unknown_location">未知位置</string>
+ <string name="splash_footer">由 LEAP 开发</string>
+ <string name="welcome">欢迎!</string>
+ <string name="select_provider">选择提供商</string>
+ <string name="provider_description_riseup">Riseup 为解放社会变革的人民和团体提供线上交流工具,透过控制自己的安全通讯方式来创造民主替代方案并实践自决方案。</string>
+ <string name="next">下一步</string>
+ <string name="qr_scanner_prompt">扫描二维码</string>
+ <string name="provider_description_calyx">Calyx 为非营利教育研究组织,致力研究、测试、开发和实施隐私技术和工具,促进网路和行动通讯产业的言论自由、表达自由、公民参与和隐私权。</string>
+ <string name="title_circumvention_setup">需要进行审查规避?</string>
+ <string name="circumvention_setup_description">如果居住在网路审查的地区,可以使用我们的审查规避工具来存取所有网路服务。 但这些选项会减慢连线速度!</string>
+ <string name="use_standard_vpn">使用标准 %s</string>
+ <string name="use_circumvention_tech">使用审查规避技术(慢速)</string>
+ <string name="description_configure_provider">连接到供应商%1$s取得必要的设定资讯。 这仅发生在首次设定。</string>
+ <string name="description_configure_provider_circumvention">%1$s 试图向供应商收集所需的配置数据。 这只发生在初次设定。 因选用规避技术,可能要多花点时间。</string>
+ <string name="details">详情</string>
+ <string name="tor_status">Tor 状态</string>
+ <string name="snowflake_status">Snowflake 状态</string>
+ <string name="snowflake_started">Snowflake 客户端已启动</string>
+ <string name="title_upcoming_connection_request">即将到来的连接请求</string>
+ <string name="title_upcoming_notifications_request">即将到来的通知请求</string>
+ <string name="title_setup_success">一切就绪!</string>
+ <string name="setup_success_description">点按下方按钮进行连接</string>
+ <string name="permission_rejected">权限请求被拒绝。</string>
+ <string name="login_not_supported">应用程序当前的版本不支援登入,须为此供应商更新 VPN 凭证。</string>
+ <string name="select_language">选择语言</string>
+ <string name="vpn_certificate_is_invalid">是时候更新您的 VPN 证书了。下载新证书以保持连接安全。这是例行更新。</string>
+ <string name="select_provider_description">当您使用 VPN 时,您正在将信任从您的互联网服务提供商转移到您的 VPN 提供商。%1$s 和 %2$s 在隐私保护和倡导方面有着良好的记录。如果您要添加提供商或使用邀请码,请确保您了解并信任该提供商。</string>
+ <string name="add_provider_description">Bitmask 允许您连接到未公开列出的提供商。请确保您了解并信任您正在添加的提供商。</string>
+ <string name="add_provider_prompt">请在此处输入提供商的 URL。</string>
+ <string name="invite_code_provider_description">Bitmask 允许您使用私人邀请码连接到提供商。</string>
+ <string name="invite_code_provider_prompt">请在此处输入您信任的邀请码。</string>
+ <string name="circumvention_setup_hint">%s 将自动尝试使用各种规避技术(包括 Tor)将您连接到互联网。您可以在高级设置中对其进行微调。</string>
+ <string name="title_upcoming_request">即将到来的请求</string>
+ <string name="title_upcoming_request_summary">在接下来的面板中,Android 将以连接请求和通知请求的形式请求您的权限。</string>
+ <string name="title_upcoming_connection_request_summary_custom">接受连接请求对于使用 %s 的核心功能至关重要。</string>
+ <string name="title_upcoming_connection_request_summary">关于连接请求,您需要知道的是:Bitmask 仅与值得信赖的合作伙伴提供商合作,这些提供商遵循 VPN 最佳实践,并拥有可验证的用户数据和身份保护记录。但是,如果您手动连接到非公开提供商,请确保您信任他们。</string>
+ <string name="title_upcoming_notification_request_summary">接受通知请求允许应用在后台运行,并使您能够从 Android 的通知中心查看数据使用情况。</string>
+ <string name="syntax_check">语法检查:</string>
+ <string name="validation_status_success">良好</string>
+ <string name="validation_status_failure">错误</string>
+ <string name="enter_invite_code">输入邀请码</string>
+ <string name="invalid_code">邀请码无效</string>
+ <string name="automatic_bridge">自动(推荐)</string>
+ <string name="automatic_bridge_description">将尝试使用最佳的可用网桥和协议进行连接。</string>
+ <string name="manual_bridge">手动配置</string>
+ <string name="manual_bridge_description">选择私有网桥和特定协议</string>
+ <string name="censorship_circumvention_description">手动配置需要具备技术知识。请谨慎操作。</string>
+ <string name="discovery">发现</string>
+ <string name="discovery_description">审查者可能会屏蔽从您的提供商处发现关键配置信息。选择一种规避选项以绕过屏蔽。</string>
+ <string name="automatically_select">自动选择</string>
+ <string name="invite_proxy">邀请代理</string>
+ <string name="tunnelling">隧道</string>
+ <string name="tunnelling_description">审查者可能会屏蔽对开放互联网的访问。选择一种规避选项以绕过屏蔽。</string>
+ <string name="port_hopping">端口跳跃</string>
+ <string name="port_hopping_description">"审查者使用流量分析来屏蔽对开放互联网的访问。端口跳跃可以使其更难屏蔽。 "</string>
+ <string name="error_invite_title">糟糕,此邀请码有问题:</string>
+ <string name="error_invite">无效的邀请码:%1$s</string>
+ <string name="error_invite_copy">复制邀请码</string>
+ <string name="error_invite_hint">您可以复制并向您的提供商分享此码以请求支持。</string>
+ <string name="error_invite_unknown_type">邀请码类型 %1$s 未知。</string>
+ <string name="error_invite_address_format">邀请代理地址不遵循 ipaddr:port 格式。</string>
+ <string name="error_invite_certificate_length">证书字符数不正确(%1$s)。</string>
+ <string name="error_invite_certificate_missing">缺少邀请代理证书。</string>
+ <string name="error_invite_fqdn_length">邀请码应包含完全限定的域名,但收到 %1$s。</string>
+ <string name="error_invite_fqdn_missing">缺少完全限定域名。</string>
+ <string name="error_invite_auth_missing">缺少身份验证令牌。</string>
+ <string name="error_invite_fqdn_invalid">邀请码在 %1$s 中包含无效字符</string>
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 41904f13..7967505f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,7 +3,7 @@
<string name="retry">Retry</string>
<string name="repository_url_text">Source code available at https://0xacab.org/leap/bitmask_android</string>
<string name="leap_tracker">Issue tracker available at https://0xacab.org/leap/bitmask_android/issues</string>
- <string name="translation_project_text">Translations welcome and appreciated. See our Transifex project at https://www.transifex.com/projects/p/bitmask/</string>
+ <string name="translation_project_text">Translations welcome and appreciated. See our project at https://localizationlab.weblate.cloud/projects/bitmask/</string>
<string name="switch_provider_menu_option">Switch provider</string>
<string name="info">info</string>
<string name="show_connection_details">Show connection details</string>
@@ -59,7 +59,6 @@
<string name="certificate_error">This is not a trusted %s provider.</string>
<string name="service_is_down_error">The service is down.</string>
<string name="configuring_provider">Configuring provider</string>
- <string name="incorrectly_downloaded_certificate_message">Your anonymous certificate was not downloaded</string>
<string name="downloading_certificate_message">Downloading VPN certificate</string>
<string name="updating_certificate_message">Updating VPN certificate</string>
<string name="login.riseup.warning">Riseup users will need to create a separate account to use the VPN service</string>
@@ -105,7 +104,6 @@
<string name="warning_expired_provider_cert">Stored provider certificate is expired. You can either update %s (recommended) or update the provider certificate using a commercial CA certificate.</string>
<string name="downloading_vpn_certificate_failed">Downloading the VPN certificate failed. Try again or choose another provider.</string>
<string name="vpn_certificate_is_invalid">It\'s time to update your VPN certificate. Download a new certificate to keep your connection secure. This is a routine update.</string>
- <string name="vpn_certificate_user_message">The VPN certificate is invalid. Please log in to download a new one.</string>
<string name="save_battery">Save battery</string>
<string name="subtitle_save_battery">Disabled while VPN Hotspot is on</string>
<string name="save_battery_message">Background data connections will hibernate when your phone is inactive.</string>
@@ -208,7 +206,7 @@
<string name="splash_footer">Developed by LEAP</string>
<string name="welcome">Welcome!</string>
<string name="select_provider">Select Your Provider</string>
- <string name="select_provider_description">When using a VPN you are transferring your trust from your Internet Service Provider to your VPN provider. Bitmask only connects to providers with a clear history of privacy protection and advocacy.</string>
+ <string name="select_provider_description">When using a VPN you are transferring your trust from your Internet Service Provider to your VPN provider. %1$s and %2$s have a clear history of privacy protection and advocacy. If you are adding a provider or using an invite code make sure you know and trust the provider.</string>
<string name="provider_description_riseup">Riseup provides online communication tools for people and groups working on liberatory social change. We are a project to create democratic alternatives and practice self-determination by controlling our own secure means of communications.</string>
<string name="next">Next</string>
<string name="add_provider_description">Bitmask allows you to connect to providers that are not publicly listed. Make sure you know and trust the provider you are adding.</string>
@@ -219,7 +217,7 @@
<string name="provider_description_calyx">Calyx is a non-profit education and research organization devoted to studying, testing, developing and implementing privacy technology and tools to promote free speech, free expression, civic engagement and privacy rights on the internet and in the mobile communications industry.</string>
<string name="title_circumvention_setup">Do You Require Censorship Circumvention?</string>
<string name="circumvention_setup_description">If you live where the internet is censored you can use our censorship circumvention options to access all internet services. These options will slow down your connection!</string>
- <string name="circumvention_setup_hint">%s will automatically try to connect you to the internet using a variety of circumvention technologies. You can fine tune this in the advanced settings.</string>
+ <string name="circumvention_setup_hint">%s will automatically try to connect you to the internet using a variety of circumvention technologies, including Tor. You can fine tune this in the advanced settings.</string>
<string name="use_standard_vpn">Use standard %s</string>
<string name="use_circumvention_tech">Use circumvention tech (slower)</string>
<string name="description_configure_provider">To connect to your provider %1$s is fetching all the required configuration information. This only happens during first setup.</string>
@@ -229,28 +227,23 @@
<string name="tor_status">Tor Status</string>
<string name="snowflake_status">Snowflake Status</string>
<string name="snowflake_started">Snowflake client started</string>
- <string name="snowflake_negotiating_rendezvous_http">Negotiating Snowflake proxy rendezvous (http)</string>
- <string name="snowflake_negotiating_rendezvous_amp_cache">Negotiating Snowflake proxy rendezvous (amp cache)</string>
- <string name="snowflake_socks_error">Snowflake SOCKS error</string>
- <string name="snowflake_broker_success">Snowflake proxy rendezvous successful</string>
- <string name="snowflake_sending_data">Sending data via Snowflake</string>
<string name="title_upcoming_connection_request">Upcoming Connection Request</string>
<string name="title_upcoming_request">Upcoming requests</string>
<string name="title_upcoming_request_summary">In the next panels Android will ask for your permission in form of a Connection Request and Notification Request.</string>
<string name="title_upcoming_connection_request_summary_custom">Accepting the Connection Request is essential to use the core functionality of %s.</string>
<string name="title_upcoming_connection_request_summary">For the Connection Request it’s important to know that Bitmask only partners with trusted partner providers that adhere to best practices for VPNs and have a verifiable history of protecting user’s data and identities. However, if you are manually connecting to a non-public provider, make sure you trust them.</string>
- <string name="title_upcoming_notification_request_summary">Accepting the Notification Request allows the app to run in the background and enables you to see your data usage from within Android’s notification center.</string>
+ <string name="title_upcoming_notification_request_summary">Accepting the Notification Request lets the app run in the background and shows your data usage in the notifications center.</string>
<string name="title_upcoming_notifications_request">Upcoming Notifications Request</string>
<string name="title_setup_success">You\'re all set!</string>
<string name="setup_success_description">Click the button below to connect</string>
<string name="permission_rejected">Permission request rejected.</string>
<string name="login_not_supported">The current app version doesn\'t support logins, which you need to update your VPN certificate for this provider.</string>
<string name="select_language">Select Language</string>
+ <string name="system_default">System default</string>
<string name="syntax_check">Syntax Check:</string>
<string name="validation_status_success">Good</string>
<string name="validation_status_failure">Bad</string>
<string name="enter_invite_code">Enter invite Code</string>
- <string name="scan_qr_code">Scan QR Code</string>
<string name="invalid_code">Invalid code</string>
<string name="automatic_bridge">Automatic (recommended)</string>
<string name="automatic_bridge_description">Connection will be attempted using the best available bridges and protocols.</string>
@@ -264,5 +257,17 @@
<string name="tunnelling">Tunneling</string>
<string name="tunnelling_description">Censors can block access to the open internet. Choose a circumvention option to bypass blocks.</string>
<string name="port_hopping">Port Hopping</string>
- <string name="port_hopping_description">"Censors use traffic analysis to block access to the open internet. Port Hopping can make this harder for them. "</string>
+ <string name="port_hopping_description">"Censors use traffic analysis to block access to the open internet. Port Hopping can make this harder for them."</string>
+ <string name="error_invite_title">Oops, there\'s something wrong with this invite code:</string>
+ <string name="error_invite">Invalid invite code: %1$s</string>
+ <string name="error_invite_copy">Copy invite code</string>
+ <string name="error_invite_hint">You can copy and share the code with your provider to request support.</string>
+ <string name="error_invite_unknown_type">the invite code type %1$s is unknown.</string>
+ <string name="error_invite_address_format">the invite proxy address doesn\'t follow the format ipaddr:port.</string>
+ <string name="error_invite_certificate_length">the certificate has the wrong number of characters (%1$s).</string>
+ <string name="error_invite_certificate_missing">the invite proxy certificate is missing.</string>
+ <string name="error_invite_fqdn_length">the invite code should contain a fully qualified domain name, but got %1$s.</string>
+ <string name="error_invite_fqdn_missing">the fully qualified domain name is missing.</string>
+ <string name="error_invite_auth_missing">the authentication token is missing.</string>
+ <string name="error_invite_fqdn_invalid">the invite code contains invalid characters in %1$s</string>
</resources>
diff --git a/app/src/main/res/values/untranslatable.xml b/app/src/main/res/values/untranslatable.xml
index 3d499e85..d58cb8d2 100644
--- a/app/src/main/res/values/untranslatable.xml
+++ b/app/src/main/res/values/untranslatable.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="notifcation_title_bitmask" translatable="false">%s - %s</string>
- <string name="copyright_leapgui" translatable="false">Copyright (c) 2012-2024\nLEAP Encryption Access Project &lt;info@leap.se></string>
- <string name="opevpn_copyright" translatable="false">Copyright (C) 2002-2024 OpenVPN Inc &lt;sales@openvpn.net></string>
+ <string name="copyright_leapgui" translatable="false">Copyright (c) 2012-2026\nLEAP Encryption Access Project &lt;info@leap.se></string>
+ <string name="opevpn_copyright" translatable="false">Copyright (C) 2002-2026 OpenVPN Inc &lt;sales@openvpn.net></string>
<string name="lzo_copyright" translatable="false">Copyright (c) 1996 - 2011 Markus Franz Xaver Johannes Oberhumer.\nCopyright (C) 2002-2024 OpenVPN Inc &lt;sales@openvpn.net></string>
- <string name="copyright_openssl" translatable="false"> Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.\n\n
+ <string name="copyright_openssl" translatable="false"> Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.\n\n
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)\n
Copyright 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved.</string>
- <string name="copyright_okhttp" translatable="false">Copyright (c) 2024 Square, Inc.</string>
+ <string name="copyright_okhttp" translatable="false">Copyright (c) 2026 Square, Inc.</string>
<string name="okhttp" translatable="false">OkHttp</string>
<string name="openvpn" translatable="false">OpenVPN</string>
<string name="lzo" translatable="false">LZO</string>
@@ -17,11 +17,11 @@
https://github.com/schwabe/polarssl/blob/icsopenvpn_270/apache-2.0.txt
</string>
<string name="asio" translatable="false">Asio</string>
- <string name="copyright_asio" translatable="false">Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com).\n\nDistributed under the Boost Software License, Version 1.0.</string>
+ <string name="copyright_asio" translatable="false">Copyright (c) 2003-2026 Christopher M. Kohlhoff (chris at kohlhoff dot com).\n\nDistributed under the Boost Software License, Version 1.0.</string>
<string name="openvpn3" translatable="false">OpenVPN 3</string>
- <string name="copyright_openvpn3" translatable="false">Copyright (C) 2012-2024 OpenVPN Inc.</string>
+ <string name="copyright_openvpn3" translatable="false">Copyright (C) 2012-2026 OpenVPN Inc.</string>
<string name="unknown_state" translatable="false">Unknown state</string>
- <string name="copyright_blinktgui" translatable="false">Copyright (c) 2012-2024 Arne Schwabe &lt;arne@rfc2549.org></string>
+ <string name="copyright_blinktgui" translatable="false">Copyright (c) 2012-2026 Arne Schwabe &lt;arne@rfc2549.org></string>
<string name="defaultserver" translatable="false">openvpn.uni-paderborn.de</string>
<string name="defaultport" translatable="false">1194</string>
<string name="copyright_file_dialog" translatable="false">File Dialog based on work by Alexander Ponomarev</string>
@@ -36,43 +36,43 @@
<string name="obfs4" translatable="false">obfs4 - The obfourscator</string>
<string name="copyright_obfs4" translatable="false">Copyright (c) 2014, Yawning Angel \n yawning at schwanenlied dot me \n All rights reserved.</string>
<string name="snowflake" translatable="false">Snowflake</string>
- <string name="copyright_snowflake" translatable="false">Copyright (c) 2016, Serene Han, Arlo Breault \n Copyright (c) 2019-2024, The Tor Project, Inc.\nDistributed under 3-clause BSD license.</string>
+ <string name="copyright_snowflake" translatable="false">Copyright (c) 2016, Serene Han, Arlo Breault \n Copyright (c) 2019-2026, The Tor Project, Inc.\nDistributed under 3-clause BSD license.</string>
<string name="iptproxy" translatable="false">IPtProxy</string>
- <string name="copyright_iptproxy" translatable="false">Copyright (c) 2020 - 2024 Benjamin Erhart (berhart@netzarchitekten.com). Distributed under the MIT License</string>
+ <string name="copyright_iptproxy" translatable="false">Copyright (c) 2020 - 2026 Benjamin Erhart (berhart@netzarchitekten.com). Distributed under the MIT License</string>
<string name="tor" translatable="false">Tor</string>
- <string name="copyright_tor" translatable="false">Copyright (c) 2001-2004, Roger Dingledine \n Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson \n Copyright (c) 2007-2024, The Tor Project, Inc. \n Distributed under the 3-clause BSD license</string>
+ <string name="copyright_tor" translatable="false">Copyright (c) 2001-2004, Roger Dingledine \n Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson \n Copyright (c) 2007-2026, The Tor Project, Inc. \n Distributed under the 3-clause BSD license</string>
<string name="tor_android" translatable="false">Tor Android</string>
- <string name="copyright_tor_android" translatable="false">Copyright (c) 2009-2010, Nathan Freitas, The Guardian Project. Distributed under the 3-clause BSD license.</string>
+ <string name="copyright_tor_android" translatable="false">Copyright (c) 2009-2026, Nathan Freitas, The Guardian Project. Distributed under the 3-clause BSD license.</string>
<string name="circleImageView" translatable="false">CircleImageView</string>
- <string name="copyright_circleImageView" translatable="false">Copyright 2014 - 2024 Henning Dodenhof. Licensed under the Apache License, Version 2.0 </string>
+ <string name="copyright_circleImageView" translatable="false">Copyright 2014 - 2026 Henning Dodenhof. Licensed under the Apache License, Version 2.0 </string>
<!-- gateway selector, move to strings.xml, once the wording is clear -->
<string name="no_location" translatable="false">---</string>
<string-array name="supported_languages" translatable="false">
+ <item>ar</item>
<item>cs</item>
- <item>lt</item>
- <item>tr</item>
- <item>pt-BR</item>
+ <item>de</item>
<item>el</item>
<item>en</item>
- <item>nl</item>
- <item>de</item>
- <item>zh-TW</item>
- <item>ru</item>
- <item>ar</item>
<item>es</item>
- <item>es-CU</item>
- <item>zh</item>
- <item>ja</item>
- <item>fr</item>
- <item>fi</item>
<item>es-AR</item>
+ <item>es-CU</item>
<item>fa-IR</item>
+ <item>fi</item>
+ <item>fr</item>
<item>he</item>
- <item>uk</item>
<item>hu</item>
+ <item>ja</item>
+ <item>lt</item>
+ <item>nl</item>
+ <item>pt-BR</item>
+ <item>ru</item>
+ <item>tr</item>
+ <item>uk</item>
<item>vi</item>
+ <item>zh</item>
+ <item>zh-TW</item>
</string-array>
<string name="tunnelling_obfs4" translatable="false">Obfs4</string>
<string name="tunnelling_obfs4_kcp" translatable="false">Obfs4+KCP</string>
diff --git a/app/src/main/res/xml/locales_config.xml b/app/src/main/res/xml/locales_config.xml
index 48baa6fc..c2d56c4f 100644
--- a/app/src/main/res/xml/locales_config.xml
+++ b/app/src/main/res/xml/locales_config.xml
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
+ <locale android:name="ar"/>
<locale android:name="cs"/>
- <locale android:name="lt"/>
- <locale android:name="tr"/>
- <locale android:name="pt-BR"/>
- <locale android:name="el"/>
- <locale android:name="nl"/>
<locale android:name="de"/>
+ <locale android:name="el"/>
<locale android:name="en"/>
- <locale android:name="zh-TW"/>
- <locale android:name="ru"/>
- <locale android:name="ar"/>
<locale android:name="es"/>
- <locale android:name="es-CU"/>
- <locale android:name="zh"/>
- <locale android:name="ja"/>
- <locale android:name="fr"/>
- <locale android:name="fi"/>
<locale android:name="es-AR"/>
+ <locale android:name="es-CU"/>
<locale android:name="fa-IR"/>
+ <locale android:name="fi"/>
+ <locale android:name="fr"/>
<locale android:name="he"/>
- <locale android:name="uk"/>
<locale android:name="hu"/>
+ <locale android:name="ja"/>
+ <locale android:name="lt"/>
+ <locale android:name="nl"/>
+ <locale android:name="pt-BR"/>
+ <locale android:name="ru"/>
+ <locale android:name="tr"/>
+ <locale android:name="uk"/>
<locale android:name="vi"/>
+ <locale android:name="zh"/>
+ <locale android:name="zh-TW"/>
</locale-config>
diff --git a/app/src/normal/assets/beta.coopvpn.net.json b/app/src/normal/assets/beta.coopvpn.net.json
new file mode 100644
index 00000000..e729f9db
--- /dev/null
+++ b/app/src/normal/assets/beta.coopvpn.net.json
@@ -0,0 +1,47 @@
+{
+ "api_uri": "https://beta.coopvpn.net",
+ "api_version": "5",
+ "api_versions": [
+ "5"
+ ],
+ "ask_for_donations": false,
+ "ca_cert_fingerprint": "305B4428E0D70AC3BBCC96501239BC86A9B9720309D89AB80C9EDE532AE7FE56",
+ "ca_cert_uri": "",
+ "default_language": "en",
+ "description": {
+ "de": "CoopVPN Beta ist ein neu entstehender VPN-Anbieter, der eng mit dem LEAP-Team zusammenarbeitet. Dies ist ein Early-Access-Release, das für Tests und Feedback gedacht ist.",
+ "en": "CoopVPN Beta is an emerging VPN provider working closely with the LEAP team. This is an early access release intended for testing and feedback.",
+ "es": "CoopVPN Beta es un proveedor VPN emergente que trabaja en estrecha colaboración con el equipo LEAP. Esta es una versión de acceso anticipado destinada a pruebas y comentarios.",
+ "fr": "CoopVPN Beta est un fournisseur VPN émergent qui collabore étroitement avec l'équipe LEAP. Il s'agit d'une version en accès anticipé destinée aux tests et aux retours d'expérience.",
+ "it": "CoopVPN Beta è un emerging VPN provider che collabora strettamente con il team LEAP. Si tratta di una versione in early access pensata per test e feedback.",
+ "pt": "CoopVPN Beta é um provedor VPN emergente que trabalha em estreita colaboração com a equipe LEAP. Esta é uma versão de acesso antecipado destinada a testes e feedback.",
+ "ru": "CoopVPN Beta — это новый VPN-провайдер, тесно сотрудничающий с командой LEAP. Это ранний доступ к релизу, предназначенный для тестирования и обратной связи."
+ },
+ "domain": "beta.coopvpn.net",
+ "donate_period": "",
+ "languages": [
+ "en",
+ "de",
+ "fr",
+ "es",
+ "ru",
+ "it",
+ "pt"
+ ],
+ "name": {
+ "de": "CoopVPN Beta",
+ "en": "CoopVPN Beta",
+ "es": "CoopVPN Beta",
+ "fr": "CoopVPN Beta",
+ "it": "CoopVPN Beta",
+ "pt": "CoopVPN Beta",
+ "ru": "CoopVPN Beta"
+ },
+ "service": {
+ "allow_anonymous": true,
+ "allow_registration": false
+ },
+ "services": [
+ "openvpn"
+ ]
+} \ No newline at end of file
diff --git a/app/src/normal/assets/beta.coopvpn.net.pem b/app/src/normal/assets/beta.coopvpn.net.pem
new file mode 100644
index 00000000..820af1ca
--- /dev/null
+++ b/app/src/normal/assets/beta.coopvpn.net.pem
@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE-----
+MIIBcjCCARigAwIBAgIBATAKBggqhkjOPQQDAjAfMR0wGwYDVQQDExRDTj1Db29w
+IGJldGEgUm9vdCBDQTAeFw0yNjAzMjAxMjM4MjVaFw0zMTAzMjAxMjQzMjVaMB8x
+HTAbBgNVBAMTFENOPUNvb3AgYmV0YSBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEazOxKTrFlxHCKszepWlhDUCEeYiyCTacKkhp7pP5B22tPNyoQklC
+8VGTrIaAXnLsubLNdxh5nMkr3LmPUF2AyKNFMEMwDgYDVR0PAQH/BAQDAgKkMBIG
+A1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYEFPD8IfwU8c4cvIt97Q90guapPhXK
+MAoGCCqGSM49BAMCA0gAMEUCIQDGmuGXA0+uQv52H9oc/Gwu1NWIgV8JhdIasR5v
+w2X1AQIgK1375W4zG/gdq1Nq78N6qDSL+arHWLSbq297Tk8kio0=
+-----END CERTIFICATE-----
diff --git a/app/src/normal/assets/calyx.net.json b/app/src/normal/assets/calyx.net.json
deleted file mode 100644
index 876fdaab..00000000
--- a/app/src/normal/assets/calyx.net.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "api_uri": "https://api.calyx.net:4430",
- "api_version": "3",
- "ca_cert_fingerprint": "SHA256: 43683c9ba3862c5384a8c1885072fcac40b5d2d4dd67331443f13a3077fa2e69",
- "ca_cert_uri": "https://calyx.net/ca.crt",
- "default_language": "en",
- "description": {
- "en": "Calyx Institute privacy focused ISP testbed"
- },
- "domain": "calyx.net",
- "enrollment_policy": "open",
- "languages": [
- "en"
- ],
- "name": {
- "en": "calyx"
- },
- "service": {
- "allow_anonymous": true,
- "allow_free": true,
- "allow_limited_bandwidth": false,
- "allow_paid": false,
- "allow_registration": false,
- "allow_unlimited_bandwidth": true,
- "bandwidth_limit": 102400,
- "default_service_level": 1,
- "levels": {
- "1": {
- "description": "Please donate.",
- "name": "free"
- }
- }
- },
- "services": [
- "openvpn"
- ]
-} \ No newline at end of file
diff --git a/app/src/normal/assets/calyx.net.pem b/app/src/normal/assets/calyx.net.pem
deleted file mode 100644
index f9189122..00000000
--- a/app/src/normal/assets/calyx.net.pem
+++ /dev/null
@@ -1,41 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQ0FADBEMQ4wDAYDVQQKDAVjYWx5
-eDEaMBgGA1UECwwRaHR0cHM6Ly9jYWx5eC5uZXQxFjAUBgNVBAMMDWNhbHl4IFJv
-b3QgQ0EwHhcNMjMwNzA3MDAwMDAwWhcNMzMwNzA3MDAwMDAwWjBEMQ4wDAYDVQQK
-DAVjYWx5eDEaMBgGA1UECwwRaHR0cHM6Ly9jYWx5eC5uZXQxFjAUBgNVBAMMDWNh
-bHl4IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6XPE2
-yo/eZvmT/moOWilKRkKtQ1RtZYodcPnCkw1ogbUbQpv45nwrYO5c0PPf44MkaKdQ
-6lAjrbgqYY6VxmktBYTkxV8DMIg+xu816x2vZ9wv9Dbf80F3abU7L3aKb1esCPzi
-zDdwZ8d/8C4WTXfT9EdsbjJvL+nkMbVIYdGVJ0sDb6JmblohWyVyIjLSPW+xVwjF
-p0XzcOwHGknSiUDactoILOW8uBtu51XVa2MpD2UC+ZojsoNaHOYT8w9u1qKCUQ3w
-zUx9kCbhnt4h7JjzrAtLAB9PYP01/TDTmoIBR6LySqImXUpGTF4mSw05BqJMHnm5
-n/WXhYCUhWLf4C0ioPrc/oMBUFurd3t/QcZk639MzIx4lqi3TbSeoyOHtmuWRFbV
-UAcLp3PiNbQKPVGgR6OsaXeQvhgXgetMfYiDhGLm7zcrwuyuCmQeiBqgwzc9lCXi
-FAnldKY7TmweIj9FZHOZuEjKNYH/XMJpPG8E8E265XLv8qqfOyDWWzZCgwWZqcJl
-Bf7GgCdR2m/sJaNjYzcOsWqrk4qmIGDAOgRPCjyXrmWkvCstK2GQDZVryw8hQNcw
-hm4Ww5nmV1kmJia5Hth5e8V3TZv7IBroJeCiuAQyq+TccvXz4taHFVNyHwA9hQHn
-UpZufEKDpmDIXbSl4VTEgfO/TRiTgeTm6WJj/QIDAQABo2AwXjAdBgNVHQ4EFgQU
-VHsNI6ke1wvusobYCw7o1mw6qh0wDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMB
-Af8wHwYDVR0jBBgwFoAUVHsNI6ke1wvusobYCw7o1mw6qh0wDQYJKoZIhvcNAQEN
-BQADggIBACiyutZdXpcNWrXg8xNPnS5EK7R6rmAZOm6/tzEUmcQMC0Mz9vEogdWi
-3qXemzVbiyFh3v/0nspL4fJrZGrcdZJF4/VKYlWfWBnv8l0kaoT4NjZSaaiD4ZTD
-adrOiJHf4/BcZhI0IivKF4jEd4DSuRTX3yKwOXVf2Tz8xOjPmrWGwuxhHpvPTo3U
-/b+h9GQ2sMYNV8Zw/M0EUXSofy2C7II+qGpNhxtIuQzCPIKUphY4qzHFlMdwIl0w
-G60nCmX1IFa6gV20g/VGxX1afBcNieMUNOPrEjQWyg3ev6+qLFGcR7mJ0nfko0eU
-BldofGEmxWtGmlhUyqPHPaAp6M9p4YQJmPWqVKz3r5Sy0s+XILV1NV1Dd8ZW1iUv
-5ufrco6Dpw+uM833adOGzAkXnoAFWciIbfftX52cV+va3jIxLm5B6dSBIzldcJSX
-nnxnqsLQJ6EM5lTCdl8pIGnQMu+pzL21SgTf+yKPdXzADt4Xq4wMneC3AgpdxqAj
-vDyLdyhY63mtWpaa68FKpeYlHXOOS3Z+VXkz1DvFLNRAqQv9DakuJSqiUkuctABN
-tPFtO/W9CsQPveD5XKi5uG/OFa8ljruSoJ4l6V7mrMljgfy20RRNmmOnyEuP5z6u
-uVY1VgsuQUqf08TV0h3vLVBD6QICq5P8A3MahYoJZ7MRbbE+tgcC
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIBYjCCAQigAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxMRUFQIFJv
-b3QgQ0EwHhcNMjIwMTI1MjAwODQ4WhcNMjcwMTI1MjAxMzQ4WjAXMRUwEwYDVQQD
-EwxMRUFQIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR5sb4Lwq77
-09TgMRcZWuzgeSI4/oCBynRt6aDiMMMcbEqRbp968UT+1swcsoPmMBBm0YhODPWb
-8o55JCJcyMfro0UwQzAOBgNVHQ8BAf8EBAMCAqQwEgYDVR0TAQH/BAgwBgEB/wIB
-ATAdBgNVHQ4EFgQU64nDDTqCutWEISvwMgXNfSjqOXUwCgYIKoZIzj0EAwIDSAAw
-RQIgQIccvto5OJ1GA3u3sZ2v8XRXvCpeZ3GnIKld9VFHSIcCIQDjhOmkF7y2jeAA
-MwurWljzGRHJqBJwHdNVQQlxbUMfxA==
------END CERTIFICATE-----
diff --git a/app/src/normal/assets/riseup.net.json b/app/src/normal/assets/riseup.net.json
index 407e2e22..5e14abc3 100644
--- a/app/src/normal/assets/riseup.net.json
+++ b/app/src/normal/assets/riseup.net.json
@@ -1,37 +1,37 @@
{
- "api_uri": "https://api.black.riseup.net:4430",
- "api_version": "3",
- "ca_cert_fingerprint": "SHA256: dd919b7513b4a1368faa20e38cd3314156805677f48b787cdd9b4a92dec64eb0",
- "ca_cert_uri": "https://black.riseup.net/ca.crt",
- "default_language": "en",
- "description": {
- "en": "Riseup Networks"
+ "api_uri":"https://api.black.riseup.net:4430",
+ "api_version":"3",
+ "ca_cert_fingerprint":"SHA256: dd919b7513b4a1368faa20e38cd3314156805677f48b787cdd9b4a92dec64eb0",
+ "ca_cert_uri":"https://black.riseup.net/ca.crt",
+ "default_language":"en",
+ "description":{
+ "en": "Riseup is a non-profit collective in Seattle that provides online communication tools for people and groups working toward liberatory social change."
},
- "domain": "riseup.net",
- "enrollment_policy": "open",
- "languages": [
+ "domain":"riseup.net",
+ "enrollment_policy":"open",
+ "languages":[
"en"
],
- "name": {
- "en": "Riseup Networks"
+ "name":{
+ "en":"Riseup Networks"
},
- "service": {
- "allow_anonymous": true,
- "allow_free": true,
- "allow_limited_bandwidth": false,
- "allow_paid": false,
- "allow_registration": false,
- "allow_unlimited_bandwidth": true,
- "bandwidth_limit": 102400,
- "default_service_level": 1,
- "levels": {
- "1": {
- "description": "Please donate.",
- "name": "free"
+ "service":{
+ "allow_anonymous":true,
+ "allow_free":true,
+ "allow_limited_bandwidth":false,
+ "allow_paid":false,
+ "allow_registration":false,
+ "allow_unlimited_bandwidth":true,
+ "bandwidth_limit":102400,
+ "default_service_level":1,
+ "levels":{
+ "1":{
+ "description":"Please donate.",
+ "name":"free"
}
}
},
- "services": [
+ "services":[
"openvpn"
]
} \ No newline at end of file
diff --git a/app/src/normal/assets/urls/beta.coopvpn.net.url b/app/src/normal/assets/urls/beta.coopvpn.net.url
new file mode 100644
index 00000000..c748fd4b
--- /dev/null
+++ b/app/src/normal/assets/urls/beta.coopvpn.net.url
@@ -0,0 +1,3 @@
+{
+ "main_url" : "https://beta.coopvpn.net"
+}
diff --git a/app/src/normal/assets/urls/calyx.net.url b/app/src/normal/assets/urls/calyx.net.url
deleted file mode 100644
index 0a23532c..00000000
--- a/app/src/normal/assets/urls/calyx.net.url
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "main_url" : "https://calyx.net",
- "provider_ip" : "162.247.72.194",
- "provider_api_ip" : "162.247.72.194"
-}
diff --git a/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java b/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java
index 88046360..243c9f07 100644
--- a/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java
+++ b/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java
@@ -1,11 +1,22 @@
package se.leap.bitmaskclient.providersetup.helpers;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORID;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERROR_EXTRA;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.ERROR_QR_CODE_SCANNING;
+
+import android.content.Context;
+
import androidx.activity.result.ActivityResultLauncher;
import androidx.fragment.app.Fragment;
import com.journeyapps.barcodescanner.ScanContract;
import com.journeyapps.barcodescanner.ScanOptions;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.models.Introducer;
import se.leap.bitmaskclient.providersetup.fragments.helpers.AbstractQrScannerHelper;
@@ -16,14 +27,26 @@ public class QrScannerHelper extends AbstractQrScannerHelper {
public QrScannerHelper(Fragment fragment, ScanResultCallback callback) {
super(fragment, callback);
this.scannerActivityResultLauncher = fragment.registerForActivityResult(new ScanContract(), result -> {
- if(result.getContents() != null) {
+ if(result.getContents() == null) {
+ return;
+ }
+ try {
+ Introducer introducer = Introducer.fromUrl(result.getContents());
+ callback.onScanResult(introducer);
+ } catch (Introducer.IntroducerException e) {
+ e.printStackTrace();
+ JSONObject jsonObject = new JSONObject();
try {
- Introducer introducer = Introducer.fromUrl(result.getContents());
- callback.onScanResult(introducer);
- } catch (Exception e) {
- e.printStackTrace();
- //binding.editCustomProvider.setText(result.getContents());
+ Context c = fragment.getContext();
+ jsonObject.put(ERRORS, c.getString(R.string.error_invite_title) + " " + e.getLocalizedMessage(c) + "\n\n" + c.getString(R.string.error_invite_hint));
+ jsonObject.put(ERRORID, ERROR_QR_CODE_SCANNING.toString());
+ jsonObject.put(ERROR_EXTRA, c.getString(R.string.error_invite, "\n" + result.getContents().trim()));
+ callback.onScanError(jsonObject);
+ } catch (JSONException | NullPointerException ex) {
+ ex.printStackTrace();
}
+ } catch (NullPointerException npe) {
+ npe.printStackTrace();
}
});
}
@@ -34,6 +57,7 @@ public class QrScannerHelper extends AbstractQrScannerHelper {
options.setBeepEnabled(false);
options.setBarcodeImageEnabled(false);
options.setOrientationLocked(false);
+ options.setPrompt("");
scannerActivityResultLauncher.launch(options);
}
}
diff --git a/app/src/normalProductionFatDebug/assets/beta.coopvpn.net.json b/app/src/normalProductionFatDebug/assets/beta.coopvpn.net.json
new file mode 100644
index 00000000..e729f9db
--- /dev/null
+++ b/app/src/normalProductionFatDebug/assets/beta.coopvpn.net.json
@@ -0,0 +1,47 @@
+{
+ "api_uri": "https://beta.coopvpn.net",
+ "api_version": "5",
+ "api_versions": [
+ "5"
+ ],
+ "ask_for_donations": false,
+ "ca_cert_fingerprint": "305B4428E0D70AC3BBCC96501239BC86A9B9720309D89AB80C9EDE532AE7FE56",
+ "ca_cert_uri": "",
+ "default_language": "en",
+ "description": {
+ "de": "CoopVPN Beta ist ein neu entstehender VPN-Anbieter, der eng mit dem LEAP-Team zusammenarbeitet. Dies ist ein Early-Access-Release, das für Tests und Feedback gedacht ist.",
+ "en": "CoopVPN Beta is an emerging VPN provider working closely with the LEAP team. This is an early access release intended for testing and feedback.",
+ "es": "CoopVPN Beta es un proveedor VPN emergente que trabaja en estrecha colaboración con el equipo LEAP. Esta es una versión de acceso anticipado destinada a pruebas y comentarios.",
+ "fr": "CoopVPN Beta est un fournisseur VPN émergent qui collabore étroitement avec l'équipe LEAP. Il s'agit d'une version en accès anticipé destinée aux tests et aux retours d'expérience.",
+ "it": "CoopVPN Beta è un emerging VPN provider che collabora strettamente con il team LEAP. Si tratta di una versione in early access pensata per test e feedback.",
+ "pt": "CoopVPN Beta é um provedor VPN emergente que trabalha em estreita colaboração com a equipe LEAP. Esta é uma versão de acesso antecipado destinada a testes e feedback.",
+ "ru": "CoopVPN Beta — это новый VPN-провайдер, тесно сотрудничающий с командой LEAP. Это ранний доступ к релизу, предназначенный для тестирования и обратной связи."
+ },
+ "domain": "beta.coopvpn.net",
+ "donate_period": "",
+ "languages": [
+ "en",
+ "de",
+ "fr",
+ "es",
+ "ru",
+ "it",
+ "pt"
+ ],
+ "name": {
+ "de": "CoopVPN Beta",
+ "en": "CoopVPN Beta",
+ "es": "CoopVPN Beta",
+ "fr": "CoopVPN Beta",
+ "it": "CoopVPN Beta",
+ "pt": "CoopVPN Beta",
+ "ru": "CoopVPN Beta"
+ },
+ "service": {
+ "allow_anonymous": true,
+ "allow_registration": false
+ },
+ "services": [
+ "openvpn"
+ ]
+} \ No newline at end of file
diff --git a/app/src/normalProductionFatDebug/assets/beta.coopvpn.net.pem b/app/src/normalProductionFatDebug/assets/beta.coopvpn.net.pem
new file mode 100644
index 00000000..820af1ca
--- /dev/null
+++ b/app/src/normalProductionFatDebug/assets/beta.coopvpn.net.pem
@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE-----
+MIIBcjCCARigAwIBAgIBATAKBggqhkjOPQQDAjAfMR0wGwYDVQQDExRDTj1Db29w
+IGJldGEgUm9vdCBDQTAeFw0yNjAzMjAxMjM4MjVaFw0zMTAzMjAxMjQzMjVaMB8x
+HTAbBgNVBAMTFENOPUNvb3AgYmV0YSBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEazOxKTrFlxHCKszepWlhDUCEeYiyCTacKkhp7pP5B22tPNyoQklC
+8VGTrIaAXnLsubLNdxh5nMkr3LmPUF2AyKNFMEMwDgYDVR0PAQH/BAQDAgKkMBIG
+A1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYEFPD8IfwU8c4cvIt97Q90guapPhXK
+MAoGCCqGSM49BAMCA0gAMEUCIQDGmuGXA0+uQv52H9oc/Gwu1NWIgV8JhdIasR5v
+w2X1AQIgK1375W4zG/gdq1Nq78N6qDSL+arHWLSbq297Tk8kio0=
+-----END CERTIFICATE-----
diff --git a/app/src/normalProductionFatDebug/assets/calyx.net.json b/app/src/normalProductionFatDebug/assets/calyx.net.json
deleted file mode 100644
index 1e3a9e7b..00000000
--- a/app/src/normalProductionFatDebug/assets/calyx.net.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "api_uri": "https://api.calyx.net:4430",
- "api_version": "1",
- "ca_cert_fingerprint": "SHA256: 43683c9ba3862c5384a8c1885072fcac40b5d2d4dd67331443f13a3077fa2e69",
- "ca_cert_uri": "https://calyx.net/ca.crt",
- "default_language": "en",
- "description": {
- "en": "Calyx Institute privacy focused ISP testbed"
- },
- "domain": "calyx.net",
- "enrollment_policy": "open",
- "languages": [
- "en"
- ],
- "name": {
- "en": "calyx"
- },
- "service": {
- "allow_anonymous": true,
- "allow_free": true,
- "allow_limited_bandwidth": false,
- "allow_paid": false,
- "allow_registration": true,
- "allow_unlimited_bandwidth": true,
- "bandwidth_limit": 102400,
- "default_service_level": 1,
- "levels": {
- "1": {
- "description": "Please donate.",
- "name": "free"
- }
- }
- },
- "services": [
- "openvpn"
- ]
-} \ No newline at end of file
diff --git a/app/src/normalProductionFatDebug/assets/calyx.net.pem b/app/src/normalProductionFatDebug/assets/calyx.net.pem
deleted file mode 100644
index f9189122..00000000
--- a/app/src/normalProductionFatDebug/assets/calyx.net.pem
+++ /dev/null
@@ -1,41 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQ0FADBEMQ4wDAYDVQQKDAVjYWx5
-eDEaMBgGA1UECwwRaHR0cHM6Ly9jYWx5eC5uZXQxFjAUBgNVBAMMDWNhbHl4IFJv
-b3QgQ0EwHhcNMjMwNzA3MDAwMDAwWhcNMzMwNzA3MDAwMDAwWjBEMQ4wDAYDVQQK
-DAVjYWx5eDEaMBgGA1UECwwRaHR0cHM6Ly9jYWx5eC5uZXQxFjAUBgNVBAMMDWNh
-bHl4IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6XPE2
-yo/eZvmT/moOWilKRkKtQ1RtZYodcPnCkw1ogbUbQpv45nwrYO5c0PPf44MkaKdQ
-6lAjrbgqYY6VxmktBYTkxV8DMIg+xu816x2vZ9wv9Dbf80F3abU7L3aKb1esCPzi
-zDdwZ8d/8C4WTXfT9EdsbjJvL+nkMbVIYdGVJ0sDb6JmblohWyVyIjLSPW+xVwjF
-p0XzcOwHGknSiUDactoILOW8uBtu51XVa2MpD2UC+ZojsoNaHOYT8w9u1qKCUQ3w
-zUx9kCbhnt4h7JjzrAtLAB9PYP01/TDTmoIBR6LySqImXUpGTF4mSw05BqJMHnm5
-n/WXhYCUhWLf4C0ioPrc/oMBUFurd3t/QcZk639MzIx4lqi3TbSeoyOHtmuWRFbV
-UAcLp3PiNbQKPVGgR6OsaXeQvhgXgetMfYiDhGLm7zcrwuyuCmQeiBqgwzc9lCXi
-FAnldKY7TmweIj9FZHOZuEjKNYH/XMJpPG8E8E265XLv8qqfOyDWWzZCgwWZqcJl
-Bf7GgCdR2m/sJaNjYzcOsWqrk4qmIGDAOgRPCjyXrmWkvCstK2GQDZVryw8hQNcw
-hm4Ww5nmV1kmJia5Hth5e8V3TZv7IBroJeCiuAQyq+TccvXz4taHFVNyHwA9hQHn
-UpZufEKDpmDIXbSl4VTEgfO/TRiTgeTm6WJj/QIDAQABo2AwXjAdBgNVHQ4EFgQU
-VHsNI6ke1wvusobYCw7o1mw6qh0wDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMB
-Af8wHwYDVR0jBBgwFoAUVHsNI6ke1wvusobYCw7o1mw6qh0wDQYJKoZIhvcNAQEN
-BQADggIBACiyutZdXpcNWrXg8xNPnS5EK7R6rmAZOm6/tzEUmcQMC0Mz9vEogdWi
-3qXemzVbiyFh3v/0nspL4fJrZGrcdZJF4/VKYlWfWBnv8l0kaoT4NjZSaaiD4ZTD
-adrOiJHf4/BcZhI0IivKF4jEd4DSuRTX3yKwOXVf2Tz8xOjPmrWGwuxhHpvPTo3U
-/b+h9GQ2sMYNV8Zw/M0EUXSofy2C7II+qGpNhxtIuQzCPIKUphY4qzHFlMdwIl0w
-G60nCmX1IFa6gV20g/VGxX1afBcNieMUNOPrEjQWyg3ev6+qLFGcR7mJ0nfko0eU
-BldofGEmxWtGmlhUyqPHPaAp6M9p4YQJmPWqVKz3r5Sy0s+XILV1NV1Dd8ZW1iUv
-5ufrco6Dpw+uM833adOGzAkXnoAFWciIbfftX52cV+va3jIxLm5B6dSBIzldcJSX
-nnxnqsLQJ6EM5lTCdl8pIGnQMu+pzL21SgTf+yKPdXzADt4Xq4wMneC3AgpdxqAj
-vDyLdyhY63mtWpaa68FKpeYlHXOOS3Z+VXkz1DvFLNRAqQv9DakuJSqiUkuctABN
-tPFtO/W9CsQPveD5XKi5uG/OFa8ljruSoJ4l6V7mrMljgfy20RRNmmOnyEuP5z6u
-uVY1VgsuQUqf08TV0h3vLVBD6QICq5P8A3MahYoJZ7MRbbE+tgcC
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIBYjCCAQigAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxMRUFQIFJv
-b3QgQ0EwHhcNMjIwMTI1MjAwODQ4WhcNMjcwMTI1MjAxMzQ4WjAXMRUwEwYDVQQD
-EwxMRUFQIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR5sb4Lwq77
-09TgMRcZWuzgeSI4/oCBynRt6aDiMMMcbEqRbp968UT+1swcsoPmMBBm0YhODPWb
-8o55JCJcyMfro0UwQzAOBgNVHQ8BAf8EBAMCAqQwEgYDVR0TAQH/BAgwBgEB/wIB
-ATAdBgNVHQ4EFgQU64nDDTqCutWEISvwMgXNfSjqOXUwCgYIKoZIzj0EAwIDSAAw
-RQIgQIccvto5OJ1GA3u3sZ2v8XRXvCpeZ3GnIKld9VFHSIcCIQDjhOmkF7y2jeAA
-MwurWljzGRHJqBJwHdNVQQlxbUMfxA==
------END CERTIFICATE-----
diff --git a/app/src/normalProductionFatDebug/assets/urls/beta.coopvpn.net.url b/app/src/normalProductionFatDebug/assets/urls/beta.coopvpn.net.url
new file mode 100644
index 00000000..c748fd4b
--- /dev/null
+++ b/app/src/normalProductionFatDebug/assets/urls/beta.coopvpn.net.url
@@ -0,0 +1,3 @@
+{
+ "main_url" : "https://beta.coopvpn.net"
+}
diff --git a/app/src/normalProductionFatDebug/assets/urls/calyx.net.url b/app/src/normalProductionFatDebug/assets/urls/calyx.net.url
deleted file mode 100644
index 0b26dc25..00000000
--- a/app/src/normalProductionFatDebug/assets/urls/calyx.net.url
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "main_url" : "https://calyx.net",
- "provider_ip" : "162.247.73.194",
- "provider_api_ip" : "162.247.73.194"
-}
diff --git a/app/src/test/java/se/leap/bitmaskclient/base/models/IntroducerTest.java b/app/src/test/java/se/leap/bitmaskclient/base/models/IntroducerTest.java
index b53f06fe..9db18114 100644
--- a/app/src/test/java/se/leap/bitmaskclient/base/models/IntroducerTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/base/models/IntroducerTest.java
@@ -12,9 +12,10 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.io.UnsupportedEncodingException;
-import java.net.URISyntaxException;
import java.net.URLEncoder;
+import se.leap.bitmaskclient.base.models.Introducer.IntroducerException;
+
@RunWith(RobolectricTestRunner.class)
@Config(sdk = {Build.VERSION_CODES.P})
@@ -40,7 +41,7 @@ public class IntroducerTest {
assertEquals(intro.getFullyQualifiedDomainName(), "ft1.example.org");
assertEquals("solitech_w4gOlm+sbF8spFL8E1Q6dg==", intro.getAuthToken());
assertEquals("obfsvpnintro://37.2.240.90:443?fqdn=ft1.example.org&kcp=1&cert=XXXXXXX&auth=solitech_w4gOlm%2BsbF8spFL8E1Q6dg%3D%3D", intro.toUrl());
- } catch (URISyntaxException | UnsupportedEncodingException e) {
+ } catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
@@ -48,36 +49,36 @@ public class IntroducerTest {
@Test
public void testFromUrl_homograph_attack() {
String code = "obfsvpnintro://37.2.240.90:443?fqdn=ft1.bitmasк.net&kcp=0&cert=XXXXXXX&auth=solitech_w4gOlm%2BseC5spDL8E1Q6dg";
- assertThrows(IllegalArgumentException.class, () -> Introducer.fromUrl(code));
+ assertThrows(IntroducerException.class, () -> Introducer.fromUrl(code));
}
@Test
public void testFromUrl_invalid_fqdn() {
String code = "obfsvpnintro://37.2.240.90:443?fqdn=file://var/wwww&kcp=0&cert=XXXXXXX&auth=solitech_w4gOlm%2BseC5spDL8E1Q6dg";
- assertThrows(IllegalArgumentException.class, () -> Introducer.fromUrl(code));
+ assertThrows(IntroducerException.class, () -> Introducer.fromUrl(code));
}
@Test
public void testFromUrl_missing_fqdn() {
String code = "obfsvpnintro://37.2.240.90:443?fqdn=&kcp=0&cert=XXXXXXX&auth=solitech_w4gOlm%2BseC5spDL8E1Q6dg";
- assertThrows(IllegalArgumentException.class, () -> Introducer.fromUrl(code));
+ assertThrows(IntroducerException.class, () -> Introducer.fromUrl(code));
String code2 = "obfsvpnintro://37.2.240.90:443?kcp=0&cert=XXXXXXX&auth=solitech_w4gOlm%2BseC5spDL8E1Q6dg";
- assertThrows(IllegalArgumentException.class, () -> Introducer.fromUrl(code2));
+ assertThrows(IntroducerException.class, () -> Introducer.fromUrl(code2));
}
@Test
public void testFromUrl_missing_cert() {
String code = "obfsvpnintro://37.2.240.90:443?fqdn=ft1.bitmask.net&kcp=0&cert=&auth=solitech_w4gOlm%2BseC5spDL8E1Q6dg";
- assertThrows(IllegalArgumentException.class, () -> Introducer.fromUrl(code));
+ assertThrows(IntroducerException.class, () -> Introducer.fromUrl(code));
}
@Test
public void testFromUrl_missing_auth() {
String code = "obfsvpnintro://37.2.240.90:443?fqdn=ft1.bitmask.net&kcp=0&cert=XXXXXXX&auth=";
- assertThrows(IllegalArgumentException.class, () -> Introducer.fromUrl(code));
+ assertThrows(IntroducerException.class, () -> Introducer.fromUrl(code));
String code2 = "obfsvpnintro://37.2.240.90:443?fqdn=ft1.bitmask.net&kcp=0&cert=XXXXXXX";
- assertThrows(IllegalArgumentException.class, () -> Introducer.fromUrl(code2));
+ assertThrows(IntroducerException.class, () -> Introducer.fromUrl(code2));
}
}
diff --git a/app/src/test/java/se/leap/bitmaskclient/base/utils/CredentialsParserTest.java b/app/src/test/java/se/leap/bitmaskclient/base/utils/CredentialsParserTest.java
index 55a9e94f..8754d572 100644
--- a/app/src/test/java/se/leap/bitmaskclient/base/utils/CredentialsParserTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/base/utils/CredentialsParserTest.java
@@ -16,7 +16,7 @@ import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.testutils.TestSetupHelper;
@RunWith(RobolectricTestRunner.class)
-@Config(sdk = {Build.VERSION_CODES.LOLLIPOP, Build.VERSION_CODES.P})
+@Config(sdk = {Build.VERSION_CODES.N, Build.VERSION_CODES.P})
public class CredentialsParserTest {
@Test