mirror of
https://github.com/amnezia-vpn/amneziawg-android.git
synced 2026-07-03 14:05:13 +02:00
Compare commits
81 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 32fc760053 | |||
| 5459c6d531 | |||
| a1889b801c | |||
| a86dff9433 | |||
| 02f59b6b27 | |||
| 29bb93cdf7 | |||
| eae06aade7 | |||
| a8b2fc15de | |||
| f699d9cf9a | |||
| ae00e8ce6e | |||
| 2730e75474 | |||
| 00e0224fd1 | |||
| 82c9b75ea1 | |||
| a23c57bab0 | |||
| 02b92c178a | |||
| 8dd6c3e35e | |||
| 78f2fda6ca | |||
| 2f822aa1f6 | |||
| 40f2f073cd | |||
| 37fabf0229 | |||
| fe61522f2a | |||
| 24ded8070f | |||
| 24569a4c49 | |||
| b448d605f0 | |||
| 0dcfde35f4 | |||
| 6acc1125b8 | |||
| 94ecb13d2f | |||
| 6008efcd95 | |||
| d6a8e9d4dc | |||
| bcd8c33005 | |||
| e71c84a785 | |||
| 3474849b1d | |||
| f32c5cc222 | |||
| cf6e1490f4 | |||
| 86951f509c | |||
| 8e9b2c6f05 | |||
| 9ace8dd928 | |||
| 8f727903f3 | |||
| b6aa09bc19 | |||
| 782550318a | |||
| d02543639b | |||
| e1e16cdf3b | |||
| 1bbcf83f43 | |||
| 169bd408f2 | |||
| 777e3b71ba | |||
| 511e54764e | |||
| d0b5fb5107 | |||
| 7c3137e2c8 | |||
| 12a3ec28bc | |||
| 892295c42a | |||
| ea9ef4af24 | |||
| b8870f3599 | |||
| 11301617d2 | |||
| 617be576f8 | |||
| 8523979c9c | |||
| 8768acee68 | |||
| a73d2121e1 | |||
| dd58fad69e | |||
| ba9d689ef9 | |||
| 97d82740d0 | |||
| 0750c29c7f | |||
| 639ee6b5b2 | |||
| f764f2aaa9 | |||
| d2a9c56d9c | |||
| 4c3289aa52 | |||
| 79376bca64 | |||
| b709d36c01 | |||
| 0301c85e2c | |||
| 7e979817e2 | |||
| 13cc4436ca | |||
| bcfbf37ed1 | |||
| 74ff870cf5 | |||
| b4f54e8958 | |||
| d179a3af15 | |||
| 2bac2feeb5 | |||
| 261236c8ce | |||
| 4a7969ef24 | |||
| f670ff22c6 | |||
| cb3194f10a | |||
| f6b2bbf433 | |||
| 56a4862442 |
Generated
+4
-9
@@ -62,17 +62,9 @@
|
||||
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PACKAGES_IMPORT_LAYOUT">
|
||||
<value>
|
||||
<package name="" alias="false" withSubpackages="true" />
|
||||
<package name="java" alias="false" withSubpackages="true" />
|
||||
<package name="javax" alias="false" withSubpackages="true" />
|
||||
<package name="kotlin" alias="false" withSubpackages="true" />
|
||||
<package name="" alias="true" withSubpackages="true" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="10" />
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="10" />
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
</JetCodeStyleSettings>
|
||||
<XML>
|
||||
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
|
||||
@@ -477,5 +469,8 @@
|
||||
</rules>
|
||||
</arrangement>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="kotlin">
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
</component>
|
||||
@@ -16,7 +16,7 @@ macOS users may need [flock(1)](https://github.com/discoteq/flock).
|
||||
|
||||
## Embedding
|
||||
|
||||
The tunnel library is [on JCenter](https://bintray.com/wireguard/wireguard-android/wireguard-android/_latestVersion), alongside [extensive class library documentation](https://javadoc.io/doc/com.wireguard.android/tunnel).
|
||||
The tunnel library is [on Maven Central](https://search.maven.org/artifact/com.wireguard.android/tunnel), alongside [extensive class library documentation](https://javadoc.io/doc/com.wireguard.android/tunnel).
|
||||
|
||||
```
|
||||
implementation 'com.wireguard.android:tunnel:$wireguardTunnelVersion'
|
||||
|
||||
+17
-35
@@ -1,40 +1,30 @@
|
||||
buildscript {
|
||||
ext {
|
||||
activityVersion = '1.2.0-beta02'
|
||||
agpVersion = '4.1.1'
|
||||
annotationsVersion = '1.1.0'
|
||||
appcompatVersion = '1.2.0'
|
||||
biometricVersion = '1.1.0-rc01'
|
||||
activityVersion = '1.3.1'
|
||||
annotationsVersion = '1.2.0'
|
||||
appcompatVersion = '1.3.1'
|
||||
biometricVersion = '1.1.0'
|
||||
collectionVersion = '1.1.0'
|
||||
constraintLayoutVersion = '2.0.4'
|
||||
constraintLayoutVersion = '2.1.0'
|
||||
coordinatorLayoutVersion = '1.1.0'
|
||||
coreKtxVersion = '1.3.2'
|
||||
coroutinesVersion = '1.4.2'
|
||||
datastoreVersion = '1.0.0-alpha02'
|
||||
desugarVersion = '1.0.10'
|
||||
fragmentVersion = '1.3.0-beta02'
|
||||
coreKtxVersion = '1.6.0'
|
||||
coroutinesVersion = '1.5.2'
|
||||
datastoreVersion = '1.0.0'
|
||||
desugarVersion = '1.1.5'
|
||||
fragmentVersion = '1.3.6'
|
||||
jsr305Version = '3.0.2'
|
||||
junitVersion = '4.13.1'
|
||||
kotlinVersion = '1.4.21'
|
||||
lifecycleRuntimeKtxVersion = '2.3.0-beta01'
|
||||
materialComponentsVersion = '1.3.0-alpha04'
|
||||
junitVersion = '4.13.2'
|
||||
lifecycleRuntimeKtxVersion = '2.3.1'
|
||||
materialComponentsVersion = '1.4.0'
|
||||
preferenceVersion = '1.1.1'
|
||||
zxingEmbeddedVersion = '3.6.0'
|
||||
zxingEmbeddedVersion = '4.2.0'
|
||||
|
||||
groupName = 'com.wireguard.android'
|
||||
}
|
||||
dependencies {
|
||||
classpath "com.android.tools.build:gradle:$agpVersion"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id "de.undercouch.download" version "4.1.1"
|
||||
id "de.undercouch.download" version "4.1.2"
|
||||
}
|
||||
|
||||
task downloadCrowdin(type: Download) {
|
||||
@@ -66,22 +56,14 @@ task crowdin(type: Copy, dependsOn: ['extractCrowdin']) {
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
|
||||
tasks {
|
||||
wrapper {
|
||||
gradleVersion = "6.7.1"
|
||||
distributionType = Wrapper.DistributionType.ALL
|
||||
distributionSha256Sum = "22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb"
|
||||
gradleVersion = "7.1.1"
|
||||
distributionSha256Sum = "bf8b869948901d422e9bb7d1fa61da6a6e19411baa7ad6ee929073df85d6365d"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+63
-21
@@ -1,30 +1,72 @@
|
||||
# Project-wide Gradle settings.
|
||||
|
||||
# IDE (e.g. Android Studio) users:
|
||||
# Gradle settings configured through the IDE *will override*
|
||||
# any settings specified in this file.
|
||||
|
||||
# For more details on how to configure your build environment visit
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
android.enableJetifier=true
|
||||
android.useAndroidX=true
|
||||
org.gradle.jvmargs=-Xmx1536m
|
||||
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
org.gradle.parallel=true
|
||||
org.gradle.configureondemand=true
|
||||
org.gradle.caching=true
|
||||
|
||||
# https://jakewharton.com/increased-accuracy-of-aapt2-keep-rules/
|
||||
android.useMinimalKeepRules=true
|
||||
# Enable Kotlin incremental compilation
|
||||
kotlin.incremental=true
|
||||
|
||||
# Enable rudimentary R class namespacing where each library only contains
|
||||
# Enable AndroidX support
|
||||
android.useAndroidX=true
|
||||
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
org.gradle.jvmargs=-Xmx1536m
|
||||
|
||||
# Turn off AP discovery in compile path to enable compile avoidance
|
||||
kapt.include.compile.classpath=false
|
||||
|
||||
# Enable AndroidX
|
||||
android.useAndroidX=true
|
||||
|
||||
# Enable non-transitive R class namespacing where each library only contains
|
||||
# references to the resources it declares instead of declarations plus all
|
||||
# transitive dependency references.
|
||||
android.namespacedRClass=true
|
||||
android.nonTransitiveRClass=true
|
||||
|
||||
# Experimental AGP flags
|
||||
# Generate compile-time only R class for app modules.
|
||||
android.enableAppCompileTimeRClass=true
|
||||
# Keep AAPT2 daemons alive between incremental builds.
|
||||
android.keepWorkerActionServicesBetweenBuilds=true
|
||||
# Make R fields non-final to improve build speeds.
|
||||
# http://tools.android.com/tips/non-constant-fields
|
||||
android.nonFinalResIds=true
|
||||
# Enable the newly refactored resource shrinker.
|
||||
android.experimental.enableNewResourceShrinker=true
|
||||
# Enable precise shrinking in the new resource shrinker.
|
||||
android.experimental.enableNewResourceShrinker.preciseShrinking=true
|
||||
# Generate manifest class as a .class directly rather than a Java source file.
|
||||
android.generateManifestClass=true
|
||||
# Generate the text map of source sets and absolute paths to allow
|
||||
# generating relative paths from absolute paths later in the build.
|
||||
android.experimental.enableSourceSetPathsMap=true
|
||||
# Use relative paths for better Gradle caching of library build tasks
|
||||
android.experimental.cacheCompileLibResources=true
|
||||
|
||||
# Default Android build features
|
||||
# Disable BuildConfig generation by default
|
||||
android.defaults.buildfeatures.buildconfig=false
|
||||
# Disable AIDL stub generation by default
|
||||
android.defaults.buildfeatures.aidl=false
|
||||
# Disable RenderScript compilation by default
|
||||
android.defaults.buildfeatures.renderscript=false
|
||||
# Disable resource values generation by default in libraries
|
||||
android.defaults.buildfeatures.resvalues=false
|
||||
# Disable shader compilation by default
|
||||
android.defaults.buildfeatures.shaders=false
|
||||
# Disable Android resource processing by default
|
||||
android.library.defaults.buildfeatures.androidresources=false
|
||||
|
||||
# Suppress warnings for some features that aren't yet stabilized
|
||||
android.suppressUnsupportedOptionWarnings=android.enableR8.fullMode,android.useMinimalKeepRules,android.namespacedRClass,android.suppressUnsupportedOptionWarnings
|
||||
android.suppressUnsupportedOptionWarnings=android.keepWorkerActionServicesBetweenBuilds,\
|
||||
android.experimental.enableNewResourceShrinker,android.experimental.enableNewResourceShrinker.preciseShrinking,\
|
||||
android.enableAppCompileTimeRClass,android.experimental.enableSourceSetPathsMap,android.experimental.cacheCompileLibResources,\
|
||||
android.suppressUnsupportedOptionWarnings
|
||||
|
||||
# OSSRH sometimes struggles with slow deployments, so this makes Gradle
|
||||
# more tolerant to those delays.
|
||||
systemProp.org.gradle.internal.http.connectionTimeout=500000
|
||||
systemProp.org.gradle.internal.http.socketTimeout=500000
|
||||
|
||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
|
||||
distributionSha256Sum=bf8b869948901d422e9bb7d1fa61da6a6e19411baa7ad6ee929073df85d6365d
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -72,7 +72,7 @@ case "`uname`" in
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
MSYS* | MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
|
||||
@@ -1,2 +1,28 @@
|
||||
pluginManagement {
|
||||
def agpVersion = "7.0.2"
|
||||
def kotlinVersion = "1.5.31"
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
plugins {
|
||||
id("com.android.application") version "$agpVersion"
|
||||
id("com.android.library") version "$agpVersion"
|
||||
id("org.jetbrains.kotlin.android") version "$kotlinVersion"
|
||||
id("org.jetbrains.kotlin.kapt") version "$kotlinVersion"
|
||||
}
|
||||
}
|
||||
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "wireguard-android"
|
||||
|
||||
include ':tunnel'
|
||||
include ':ui'
|
||||
|
||||
+3
-4
@@ -1,4 +1,6 @@
|
||||
apply plugin: 'com.android.library'
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
}
|
||||
|
||||
version wireguardVersionName
|
||||
group groupName
|
||||
@@ -20,9 +22,6 @@ android {
|
||||
path 'tools/CMakeLists.txt'
|
||||
}
|
||||
}
|
||||
libraryVariants.all {
|
||||
it.generateBuildConfigProvider.configure { enabled = false }
|
||||
}
|
||||
testOptions.unitTests.all {
|
||||
testLogging {
|
||||
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
|
||||
|
||||
+14
-4
@@ -1,4 +1,5 @@
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'signing'
|
||||
|
||||
afterEvaluate {
|
||||
publishing {
|
||||
@@ -35,17 +36,21 @@ afterEvaluate {
|
||||
name = 'WireGuard'
|
||||
url = 'https://www.wireguard.com/'
|
||||
}
|
||||
developer {
|
||||
name = 'WireGuard'
|
||||
email = 'team@wireguard.com'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "bintray"
|
||||
url = uri("https://api.bintray.com/maven/wireguard/wireguard-android/wireguard-android/;publish=1;override=0")
|
||||
name = "sonatype"
|
||||
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
|
||||
credentials {
|
||||
username = hasProperty('BINTRAY_USER') ? getProperty('BINTRAY_USER') : System.getenv('BINTRAY_USER')
|
||||
password = hasProperty('BINTRAY_KEY') ? getProperty('BINTRAY_KEY') : System.getenv('BINTRAY_KEY')
|
||||
username = hasProperty('SONATYPE_USER') ? getProperty('SONATYPE_USER') : System.getenv('SONATYPE_USER')
|
||||
password = hasProperty('SONATYPE_PASSWORD') ? getProperty('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,3 +75,8 @@ android.libraryVariants.all { variant ->
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
useGpgCmd()
|
||||
sign publishing.publications
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ public final class BackendException extends Exception {
|
||||
VPN_NOT_AUTHORIZED,
|
||||
UNABLE_TO_START_VPN,
|
||||
TUN_CREATION_ERROR,
|
||||
GO_ACTIVATION_ERROR_CODE
|
||||
GO_ACTIVATION_ERROR_CODE,
|
||||
DNS_RESOLUTION_FAILURE,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.wireguard.android.backend.BackendException.Reason;
|
||||
import com.wireguard.android.backend.Tunnel.State;
|
||||
import com.wireguard.android.util.SharedLibraryLoader;
|
||||
import com.wireguard.config.Config;
|
||||
import com.wireguard.config.InetEndpoint;
|
||||
import com.wireguard.config.InetNetwork;
|
||||
import com.wireguard.config.Peer;
|
||||
import com.wireguard.crypto.Key;
|
||||
@@ -40,6 +41,7 @@ import androidx.collection.ArraySet;
|
||||
*/
|
||||
@NonNullForAll
|
||||
public final class GoBackend implements Backend {
|
||||
private static final int DNS_RESOLUTION_RETRIES = 10;
|
||||
private static final String TAG = "WireGuard/GoBackend";
|
||||
@Nullable private static AlwaysOnCallback alwaysOnCallback;
|
||||
private static GhettoCompletableFuture<VpnService> vpnService = new GhettoCompletableFuture<>();
|
||||
@@ -68,7 +70,7 @@ public final class GoBackend implements Backend {
|
||||
alwaysOnCallback = cb;
|
||||
}
|
||||
|
||||
private static native String wgGetConfig(int handle);
|
||||
@Nullable private static native String wgGetConfig(int handle);
|
||||
|
||||
private static native int wgGetSocketV4(int handle);
|
||||
|
||||
@@ -115,10 +117,11 @@ public final class GoBackend implements Backend {
|
||||
@Override
|
||||
public Statistics getStatistics(final Tunnel tunnel) {
|
||||
final Statistics stats = new Statistics();
|
||||
if (tunnel != currentTunnel) {
|
||||
if (tunnel != currentTunnel || currentTunnelHandle == -1)
|
||||
return stats;
|
||||
}
|
||||
final String config = wgGetConfig(currentTunnelHandle);
|
||||
if (config == null)
|
||||
return stats;
|
||||
Key key = null;
|
||||
long rx = 0;
|
||||
long tx = 0;
|
||||
@@ -233,6 +236,25 @@ public final class GoBackend implements Backend {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
dnsRetry: for (int i = 0; i < DNS_RESOLUTION_RETRIES; ++i) {
|
||||
// Pre-resolve IPs so they're cached when building the userspace string
|
||||
for (final Peer peer : config.getPeers()) {
|
||||
final InetEndpoint ep = peer.getEndpoint().orElse(null);
|
||||
if (ep == null)
|
||||
continue;
|
||||
if (ep.getResolved().orElse(null) == null) {
|
||||
if (i < DNS_RESOLUTION_RETRIES - 1) {
|
||||
Log.w(TAG, "DNS host \"" + ep.getHost() + "\" failed to resolve; trying again");
|
||||
Thread.sleep(1000);
|
||||
continue dnsRetry;
|
||||
} else
|
||||
throw new BackendException(Reason.DNS_RESOLUTION_FAILURE, ep.getHost());
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Build config
|
||||
final String goConfig = config.toWgUserspaceString();
|
||||
|
||||
@@ -278,7 +300,7 @@ public final class GoBackend implements Backend {
|
||||
try (final ParcelFileDescriptor tun = builder.establish()) {
|
||||
if (tun == null)
|
||||
throw new BackendException(Reason.TUN_CREATION_ERROR);
|
||||
Log.d(TAG, "Go backend v" + wgVersion());
|
||||
Log.d(TAG, "Go backend " + wgVersion());
|
||||
currentTunnelHandle = wgTurnOn(tunnel.getName(), tun.detachFd(), goConfig);
|
||||
}
|
||||
if (currentTunnelHandle < 0)
|
||||
@@ -294,11 +316,11 @@ public final class GoBackend implements Backend {
|
||||
Log.w(TAG, "Tunnel already down");
|
||||
return;
|
||||
}
|
||||
|
||||
wgTurnOff(currentTunnelHandle);
|
||||
int handleToClose = currentTunnelHandle;
|
||||
currentTunnel = null;
|
||||
currentTunnelHandle = -1;
|
||||
currentConfig = null;
|
||||
wgTurnOff(handleToClose);
|
||||
}
|
||||
|
||||
tunnel.onStateChange(state);
|
||||
|
||||
@@ -94,7 +94,11 @@ public class ModuleLoader {
|
||||
final byte[] input = new byte[1024 * 1024 * 3 /* 3MiB */];
|
||||
int len;
|
||||
try (final InputStream inputStream = connection.getInputStream()) {
|
||||
len = inputStream.read(input);
|
||||
int offset = 0;
|
||||
while (input.length - offset > 0 && (len = inputStream.read(input, offset, input.length - offset)) > 0) {
|
||||
offset += len;
|
||||
}
|
||||
len = offset;
|
||||
}
|
||||
if (len <= 0)
|
||||
throw new IOException("Hash list was empty");
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
|
||||
|
||||
cmake_minimum_required(VERSION 3.4.1)
|
||||
project("WireGuard")
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||||
|
||||
# Work around https://github.com/android-ndk/ndk/issues/602
|
||||
|
||||
@@ -20,11 +20,12 @@ export GOARCH := $(NDK_GO_ARCH_MAP_$(ANDROID_ARCH_NAME))
|
||||
export GOOS := android
|
||||
export CGO_ENABLED := 1
|
||||
|
||||
GO_VERSION := 1.15.2
|
||||
GO_VERSION := 1.17.1
|
||||
GO_PLATFORM := $(shell uname -s | tr '[:upper:]' '[:lower:]')-$(NDK_GO_ARCH_MAP_$(shell uname -m))
|
||||
GO_TARBALL := go$(GO_VERSION).$(GO_PLATFORM).tar.gz
|
||||
GO_HASH_darwin-amd64 := 9bd39600d9fa1fa4a5ccce8761d249f7421cffe671376f791293c4138f3d7c62
|
||||
GO_HASH_linux-amd64 := b49fda1ca29a1946d6bb2a5a6982cf07ccd2aba849289508ee0f9918f6bb4552
|
||||
GO_HASH_darwin-amd64 := 3c452046b1dfa27b70d3217c9fe6de266f9fd74d83aad81382fead70efcdffca
|
||||
GO_HASH_darwin-arm64 := 48f48a3cfe49b7bb448510ec9bf1682439e4e95fa6888580914a3115fe853d8c
|
||||
GO_HASH_linux-amd64 := dab7d9c34361dc21ec237d584590d72500652e7c909bf082758fb63064fca0ef
|
||||
|
||||
default: $(DESTDIR)/libwg-go.so
|
||||
|
||||
|
||||
@@ -10,14 +10,13 @@ package main
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"log"
|
||||
"fmt"
|
||||
"math"
|
||||
"net"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"runtime/debug"
|
||||
"strings"
|
||||
"unsafe"
|
||||
|
||||
@@ -29,13 +28,21 @@ import (
|
||||
)
|
||||
|
||||
type AndroidLogger struct {
|
||||
level C.int
|
||||
interfaceName string
|
||||
level C.int
|
||||
tag *C.char
|
||||
}
|
||||
|
||||
func (l AndroidLogger) Write(p []byte) (int, error) {
|
||||
C.__android_log_write(l.level, C.CString("WireGuard/GoBackend/"+l.interfaceName), C.CString(string(p)))
|
||||
return len(p), nil
|
||||
func cstring(s string) *C.char {
|
||||
b, err := unix.BytePtrFromString(s)
|
||||
if err != nil {
|
||||
b := [1]C.char{}
|
||||
return &b[0]
|
||||
}
|
||||
return (*C.char)(unsafe.Pointer(b))
|
||||
}
|
||||
|
||||
func (l AndroidLogger) Printf(format string, args ...interface{}) {
|
||||
C.__android_log_write(l.level, l.tag, cstring(fmt.Sprintf(format, args...)))
|
||||
}
|
||||
|
||||
type TunnelHandle struct {
|
||||
@@ -55,39 +62,38 @@ func init() {
|
||||
select {
|
||||
case <-signals:
|
||||
n := runtime.Stack(buf, true)
|
||||
if n == len(buf) {
|
||||
n--
|
||||
}
|
||||
buf[n] = 0
|
||||
C.__android_log_write(C.ANDROID_LOG_ERROR, C.CString("WireGuard/GoBackend/Stacktrace"), (*C.char)(unsafe.Pointer(&buf[0])))
|
||||
C.__android_log_write(C.ANDROID_LOG_ERROR, cstring("WireGuard/GoBackend/Stacktrace"), (*C.char)(unsafe.Pointer(&buf[0])))
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
//export wgTurnOn
|
||||
func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
interfaceName := string([]byte(ifnameRef))
|
||||
|
||||
func wgTurnOn(interfaceName string, tunFd int32, settings string) int32 {
|
||||
tag := cstring("WireGuard/GoBackend/" + interfaceName)
|
||||
logger := &device.Logger{
|
||||
Debug: log.New(&AndroidLogger{level: C.ANDROID_LOG_DEBUG, interfaceName: interfaceName}, "", 0),
|
||||
Info: log.New(&AndroidLogger{level: C.ANDROID_LOG_INFO, interfaceName: interfaceName}, "", 0),
|
||||
Error: log.New(&AndroidLogger{level: C.ANDROID_LOG_ERROR, interfaceName: interfaceName}, "", 0),
|
||||
Verbosef: AndroidLogger{level: C.ANDROID_LOG_DEBUG, tag: tag}.Printf,
|
||||
Errorf: AndroidLogger{level: C.ANDROID_LOG_ERROR, tag: tag}.Printf,
|
||||
}
|
||||
|
||||
logger.Debug.Println("Debug log enabled")
|
||||
|
||||
tun, name, err := tun.CreateUnmonitoredTUNFromFD(int(tunFd))
|
||||
if err != nil {
|
||||
unix.Close(int(tunFd))
|
||||
logger.Error.Println(err)
|
||||
logger.Errorf("CreateUnmonitoredTUNFromFD: %v", err)
|
||||
return -1
|
||||
}
|
||||
|
||||
logger.Info.Println("Attaching to interface", name)
|
||||
device := device.NewDevice(tun, logger)
|
||||
logger.Verbosef("Attaching to interface %v", name)
|
||||
device := device.NewDevice(tun, conn.NewStdNetBind(), logger)
|
||||
|
||||
setError := device.IpcSetOperation(bufio.NewReader(strings.NewReader(settings)))
|
||||
if setError != nil {
|
||||
err = device.IpcSet(settings)
|
||||
if err != nil {
|
||||
unix.Close(int(tunFd))
|
||||
logger.Error.Println(setError)
|
||||
logger.Errorf("IpcSet: %v", err)
|
||||
return -1
|
||||
}
|
||||
device.DisableSomeRoamingForBrokenMobileSemantics()
|
||||
@@ -96,12 +102,12 @@ func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
|
||||
uapiFile, err := ipc.UAPIOpen(name)
|
||||
if err != nil {
|
||||
logger.Error.Println(err)
|
||||
logger.Errorf("UAPIOpen: %v", err)
|
||||
} else {
|
||||
uapi, err = ipc.UAPIListen(name, uapiFile)
|
||||
if err != nil {
|
||||
uapiFile.Close()
|
||||
logger.Error.Println(err)
|
||||
logger.Errorf("UAPIListen: %v", err)
|
||||
} else {
|
||||
go func() {
|
||||
for {
|
||||
@@ -115,8 +121,14 @@ func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
}
|
||||
}
|
||||
|
||||
device.Up()
|
||||
logger.Info.Println("Device started")
|
||||
err = device.Up()
|
||||
if err != nil {
|
||||
logger.Errorf("Unable to bring up device: %v", err)
|
||||
uapiFile.Close()
|
||||
device.Close()
|
||||
return -1
|
||||
}
|
||||
logger.Verbosef("Device started")
|
||||
|
||||
var i int32
|
||||
for i = 0; i < math.MaxInt32; i++ {
|
||||
@@ -125,7 +137,9 @@ func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
}
|
||||
}
|
||||
if i == math.MaxInt32 {
|
||||
unix.Close(int(tunFd))
|
||||
logger.Errorf("Unable to find empty handle")
|
||||
uapiFile.Close()
|
||||
device.Close()
|
||||
return -1
|
||||
}
|
||||
tunnelHandles[i] = TunnelHandle{device: device, uapi: uapi}
|
||||
@@ -185,19 +199,29 @@ func wgGetConfig(tunnelHandle int32) *C.char {
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
settings := new(bytes.Buffer)
|
||||
writer := bufio.NewWriter(settings)
|
||||
err := handle.device.IpcGetOperation(writer)
|
||||
settings, err := handle.device.IpcGet()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
writer.Flush()
|
||||
return C.CString(settings.String())
|
||||
return C.CString(settings)
|
||||
}
|
||||
|
||||
//export wgVersion
|
||||
func wgVersion() *C.char {
|
||||
return C.CString(device.WireGuardGoVersion)
|
||||
info, ok := debug.ReadBuildInfo()
|
||||
if !ok {
|
||||
return C.CString("unknown")
|
||||
}
|
||||
for _, dep := range info.Deps {
|
||||
if dep.Path == "golang.zx2c4.com/wireguard" {
|
||||
parts := strings.Split(dep.Version, "-")
|
||||
if len(parts) == 3 && len(parts[2]) == 12 {
|
||||
return C.CString(parts[2][:7])
|
||||
}
|
||||
return C.CString(dep.Version)
|
||||
}
|
||||
}
|
||||
return C.CString("unknown")
|
||||
}
|
||||
|
||||
func main() {}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
module golang.zx2c4.com/wireguard/android
|
||||
|
||||
go 1.14
|
||||
go 1.16
|
||||
|
||||
require (
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 // indirect
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924 // indirect
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201215171155-74008520cdd9
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect
|
||||
golang.org/x/net v0.0.0-20210924151903-3ad01bbaa167 // indirect
|
||||
golang.org/x/sys v0.0.0-20210923061019-b8560ed6a9b7
|
||||
golang.zx2c4.com/wireguard v0.0.0-20210923155401-217ac1016bc5
|
||||
)
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 h1:sYNJzB4J8toYPQTM6pAkcmBRgw9SnQKP9oXCHfgy604=
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924 h1:QsnDpLLOKwHBBDa8nDws4DYNc/ryVW2vCpxCs09d4PY=
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210924151903-3ad01bbaa167 h1:eDd+TJqbgfXruGQ5sJRU7tEtp/58OAx4+Ayjxg4SM+4=
|
||||
golang.org/x/net v0.0.0-20210924151903-3ad01bbaa167/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e h1:AyodaIpKjppX+cBfTASF2E1US3H2JFBj920Ot3rtDjs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210923061019-b8560ed6a9b7 h1:c20P3CcPbopVp2f7099WLOqSNKURf30Z0uq66HpijZY=
|
||||
golang.org/x/sys v0.0.0-20210923061019-b8560ed6a9b7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201215171155-74008520cdd9 h1:rdbSLajsO6nfT4NViHeB/6lMW4vaO1bfsTvmeDpYvVs=
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201215171155-74008520cdd9/go.mod h1:ITsWNpkFv78VPB7f8MiyuxeEMcHR4jfxHGCJLPP3GHs=
|
||||
golang.zx2c4.com/wireguard v0.0.0-20210923155401-217ac1016bc5 h1:iXtWdri0M6DdLa0wsT6zVSXqlyFBJAoEQPGMGmsYh4E=
|
||||
golang.zx2c4.com/wireguard v0.0.0-20210923155401-217ac1016bc5/go.mod h1:laHzsbfMhGSobUmruXWAyMKKHSqvIcrqZJMyHD+/3O8=
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
From 1d1ba1da11afd73008c0e942db7621697055a6b6 Mon Sep 17 00:00:00 2001
|
||||
From b83553d9f260ba20c6faaa52e6fe6f74309eb41a Mon Sep 17 00:00:00 2001
|
||||
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
||||
Date: Tue, 15 Sep 2020 13:39:22 +0200
|
||||
Date: Mon, 22 Feb 2021 02:36:03 +0100
|
||||
Subject: [PATCH] runtime: use CLOCK_BOOTTIME in nanotime on Linux
|
||||
|
||||
This makes timers account for having expired while a computer was
|
||||
@@ -28,10 +28,10 @@ Change-Id: I7b2a6ca0c5bc5fce57ec0eeafe7b68270b429321
|
||||
8 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/runtime/sys_linux_386.s b/src/runtime/sys_linux_386.s
|
||||
index 5b9b638ad7..448ad8b2e6 100644
|
||||
index 1e3a834812..78b6021fc7 100644
|
||||
--- a/src/runtime/sys_linux_386.s
|
||||
+++ b/src/runtime/sys_linux_386.s
|
||||
@@ -339,13 +339,13 @@ noswitch:
|
||||
@@ -337,13 +337,13 @@ noswitch:
|
||||
|
||||
LEAL 8(SP), BX // &ts (struct timespec)
|
||||
MOVL BX, 4(SP)
|
||||
@@ -48,18 +48,18 @@ index 5b9b638ad7..448ad8b2e6 100644
|
||||
INVOKE_SYSCALL
|
||||
|
||||
diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s
|
||||
index fe9c6bce85..4836a7c774 100644
|
||||
index 37cb8dad03..e8b730bcaa 100644
|
||||
--- a/src/runtime/sys_linux_amd64.s
|
||||
+++ b/src/runtime/sys_linux_amd64.s
|
||||
@@ -311,7 +311,7 @@ noswitch:
|
||||
MOVQ runtime·vdsoClockgettimeSym(SB), AX
|
||||
CMPQ AX, $0
|
||||
JEQ fallback
|
||||
@@ -302,7 +302,7 @@ noswitch:
|
||||
SUBQ $16, SP // Space for results
|
||||
ANDQ $~15, SP // Align for C code
|
||||
|
||||
- MOVL $1, DI // CLOCK_MONOTONIC
|
||||
+ MOVL $7, DI // CLOCK_BOOTTIME
|
||||
LEAQ 0(SP), SI
|
||||
CALL AX
|
||||
MOVQ 0(SP), AX // sec
|
||||
MOVQ runtime·vdsoClockgettimeSym(SB), AX
|
||||
CMPQ AX, $0
|
||||
diff --git a/src/runtime/sys_linux_arm.s b/src/runtime/sys_linux_arm.s
|
||||
index 475f52344c..bb567abcf4 100644
|
||||
--- a/src/runtime/sys_linux_arm.s
|
||||
@@ -105,10 +105,10 @@ index 198a5bacef..9715387f36 100644
|
||||
CBZ R2, fallback
|
||||
|
||||
diff --git a/src/runtime/sys_linux_mips64x.s b/src/runtime/sys_linux_mips64x.s
|
||||
index afad056d06..2c9162b903 100644
|
||||
index c3e9f37694..e3879acd38 100644
|
||||
--- a/src/runtime/sys_linux_mips64x.s
|
||||
+++ b/src/runtime/sys_linux_mips64x.s
|
||||
@@ -304,7 +304,7 @@ noswitch:
|
||||
@@ -312,7 +312,7 @@ noswitch:
|
||||
AND $~15, R1 // Align for C code
|
||||
MOVV R1, R29
|
||||
|
||||
@@ -157,5 +157,5 @@ index c15a1d5364..f52c4d5098 100644
|
||||
MOVW $SYS_clock_gettime, R1
|
||||
SYSCALL
|
||||
--
|
||||
2.28.0
|
||||
2.30.1
|
||||
|
||||
|
||||
Submodule tunnel/tools/wireguard-tools updated: 265e81a344...3ba6527130
+11
-6
@@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-kapt'
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
id 'org.jetbrains.kotlin.kapt'
|
||||
}
|
||||
|
||||
version wireguardVersionName
|
||||
group groupName
|
||||
@@ -11,8 +13,11 @@ final def keystorePropertiesFile = rootProject.file("keystore.properties")
|
||||
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
buildFeatures.dataBinding = true
|
||||
buildFeatures.viewBinding = true
|
||||
buildFeatures {
|
||||
buildConfig = true
|
||||
dataBinding = true
|
||||
viewBinding = true
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId 'com.wireguard.android'
|
||||
minSdkVersion 21
|
||||
@@ -64,7 +69,6 @@ dependencies {
|
||||
implementation "androidx.coordinatorlayout:coordinatorlayout:$coordinatorLayoutVersion"
|
||||
implementation "androidx.biometric:biometric:$biometricVersion"
|
||||
implementation "androidx.core:core-ktx:$coreKtxVersion"
|
||||
implementation "androidx.databinding:databinding-runtime:$agpVersion"
|
||||
implementation "androidx.fragment:fragment-ktx:$fragmentVersion"
|
||||
implementation "androidx.preference:preference-ktx:$preferenceVersion"
|
||||
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleRuntimeKtxVersion"
|
||||
@@ -84,5 +88,6 @@ tasks.withType(JavaCompile) {
|
||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_1_8
|
||||
useIR = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">WireGuard β</string>
|
||||
<string name="app_name" translatable="false">WireGuard β</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
android:name="android.software.leanback"
|
||||
android:required="false" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera"
|
||||
android:name="android.hardware.camera.any"
|
||||
android:required="false" />
|
||||
|
||||
<permission
|
||||
@@ -29,6 +29,9 @@
|
||||
android:label="@string/permission_label"
|
||||
android:protectionLevel="dangerous" />
|
||||
|
||||
<!-- This is safe to override, the APIs we use work perfectly fine on Android 6 -->
|
||||
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
|
||||
|
||||
<application
|
||||
android:name=".Application"
|
||||
android:allowBackup="false"
|
||||
|
||||
@@ -12,9 +12,10 @@ import android.os.StrictMode.ThreadPolicy
|
||||
import android.os.StrictMode.VmPolicy
|
||||
import android.util.Log
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.datastore.DataStore
|
||||
import androidx.datastore.preferences.Preferences
|
||||
import androidx.datastore.preferences.createDataStore
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.preferencesDataStoreFile
|
||||
import com.wireguard.android.backend.Backend
|
||||
import com.wireguard.android.backend.GoBackend
|
||||
import com.wireguard.android.backend.WgQuickBackend
|
||||
@@ -100,7 +101,7 @@ class Application : android.app.Application() {
|
||||
rootShell = RootShell(applicationContext)
|
||||
toolsInstaller = ToolsInstaller(applicationContext, rootShell)
|
||||
moduleLoader = ModuleLoader(applicationContext, rootShell, USER_AGENT)
|
||||
preferencesDataStore = applicationContext.createDataStore(name = "settings")
|
||||
preferencesDataStore = PreferenceDataStoreFactory.create { applicationContext.preferencesDataStoreFile("settings") }
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
||||
coroutineScope.launch {
|
||||
AppCompatDelegate.setDefaultNightMode(
|
||||
|
||||
@@ -114,7 +114,7 @@ class LogViewerActivity : AppCompatActivity() {
|
||||
val key = KeyPair().privateKey.toHex()
|
||||
LOGS[key] = rawLogLines.toString().toByteArray(Charsets.UTF_8)
|
||||
lastUri = Uri.parse("content://${BuildConfig.APPLICATION_ID}.exported-log/$key")
|
||||
val shareIntent = ShareCompat.IntentBuilder.from(this)
|
||||
val shareIntent = ShareCompat.IntentBuilder(this)
|
||||
.setType("text/plain")
|
||||
.setSubject(getString(R.string.log_export_subject))
|
||||
.setStream(lastUri)
|
||||
@@ -202,11 +202,7 @@ class LogViewerActivity : AppCompatActivity() {
|
||||
it.scrollToPosition(logLines.size - 1)
|
||||
}
|
||||
} else {
|
||||
/* TODO: I'd prefer for the next line to be:
|
||||
* logLines.lastOrNull()?.msg += "\n$line"
|
||||
* However, as of writing, that causes the kotlin compiler to freak out and crash, spewing bytecode.
|
||||
*/
|
||||
logLines.lastOrNull()?.apply { msg += "\n$line" }
|
||||
logLines.lastOrNull()?.msg += "\n$line"
|
||||
if (haveScrolled) logAdapter.notifyDataSetChanged()
|
||||
}
|
||||
if (!haveScrolled) {
|
||||
|
||||
@@ -43,7 +43,7 @@ class TunnelDetailFragment : BaseFragment() {
|
||||
super.onCreateView(inflater, container, savedInstanceState)
|
||||
binding = TunnelDetailFragmentBinding.inflate(inflater, container, false)
|
||||
binding?.executePendingBindings()
|
||||
return binding!!.root
|
||||
return binding?.root
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
|
||||
@@ -101,7 +101,7 @@ class TunnelListFragment : BaseFragment() {
|
||||
}
|
||||
executePendingBindings()
|
||||
}
|
||||
return binding!!.root
|
||||
return binding?.root
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
@@ -239,7 +239,7 @@ class TunnelListFragment : BaseFragment() {
|
||||
resources = null
|
||||
animateFab(binding?.createFab, true)
|
||||
checkedItems.clear()
|
||||
binding!!.tunnelList.adapter!!.notifyDataSetChanged()
|
||||
binding?.tunnelList?.adapter?.notifyDataSetChanged()
|
||||
}
|
||||
|
||||
override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean {
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
|
||||
package com.wireguard.android.model
|
||||
|
||||
import java.util.Locale
|
||||
|
||||
object TunnelComparator : Comparator<String> {
|
||||
private class NaturalSortString(originalString: String) {
|
||||
class NaturalSortToken(val maybeString: String?, val maybeNumber: Int?) : Comparable<NaturalSortToken> {
|
||||
@@ -29,7 +27,7 @@ object TunnelComparator : Comparator<String> {
|
||||
val tokens: MutableList<NaturalSortToken> = ArrayList()
|
||||
|
||||
init {
|
||||
for (s in NATURAL_SORT_DIGIT_FINDER.findAll(originalString.split(WHITESPACE_FINDER).joinToString(" ").toLowerCase(Locale.ENGLISH))) {
|
||||
for (s in NATURAL_SORT_DIGIT_FINDER.findAll(originalString.split(WHITESPACE_FINDER).joinToString(" ").lowercase())) {
|
||||
try {
|
||||
val n = s.value.toInt()
|
||||
tokens.add(NaturalSortToken(null, n))
|
||||
|
||||
+21
-18
@@ -5,12 +5,15 @@
|
||||
|
||||
package com.wireguard.android.preference
|
||||
|
||||
import androidx.datastore.DataStore
|
||||
import androidx.datastore.preferences.Preferences
|
||||
import androidx.datastore.preferences.edit
|
||||
import androidx.datastore.preferences.preferencesKey
|
||||
import androidx.datastore.preferences.preferencesSetKey
|
||||
import androidx.datastore.preferences.remove
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.core.booleanPreferencesKey
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.floatPreferencesKey
|
||||
import androidx.datastore.preferences.core.intPreferencesKey
|
||||
import androidx.datastore.preferences.core.longPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringSetPreferencesKey
|
||||
import androidx.preference.PreferenceDataStore
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.first
|
||||
@@ -21,7 +24,7 @@ import kotlinx.coroutines.runBlocking
|
||||
class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope, private val dataStore: DataStore<Preferences>) : PreferenceDataStore() {
|
||||
override fun putString(key: String?, value: String?) {
|
||||
if (key == null) return
|
||||
val pk = preferencesKey<String>(key)
|
||||
val pk = stringPreferencesKey(key)
|
||||
coroutineScope.launch {
|
||||
dataStore.edit {
|
||||
if (value == null) it.remove(pk)
|
||||
@@ -32,7 +35,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun putStringSet(key: String?, values: Set<String?>?) {
|
||||
if (key == null) return
|
||||
val pk = preferencesSetKey<String>(key)
|
||||
val pk = stringSetPreferencesKey(key)
|
||||
val filteredValues = values?.filterNotNull()?.toSet()
|
||||
coroutineScope.launch {
|
||||
dataStore.edit {
|
||||
@@ -44,7 +47,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun putInt(key: String?, value: Int) {
|
||||
if (key == null) return
|
||||
val pk = preferencesKey<Int>(key)
|
||||
val pk = intPreferencesKey(key)
|
||||
coroutineScope.launch {
|
||||
dataStore.edit {
|
||||
it[pk] = value
|
||||
@@ -54,7 +57,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun putLong(key: String?, value: Long) {
|
||||
if (key == null) return
|
||||
val pk = preferencesKey<Long>(key)
|
||||
val pk = longPreferencesKey(key)
|
||||
coroutineScope.launch {
|
||||
dataStore.edit {
|
||||
it[pk] = value
|
||||
@@ -64,7 +67,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun putFloat(key: String?, value: Float) {
|
||||
if (key == null) return
|
||||
val pk = preferencesKey<Float>(key)
|
||||
val pk = floatPreferencesKey(key)
|
||||
coroutineScope.launch {
|
||||
dataStore.edit {
|
||||
it[pk] = value
|
||||
@@ -74,7 +77,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun putBoolean(key: String?, value: Boolean) {
|
||||
if (key == null) return
|
||||
val pk = preferencesKey<Boolean>(key)
|
||||
val pk = booleanPreferencesKey(key)
|
||||
coroutineScope.launch {
|
||||
dataStore.edit {
|
||||
it[pk] = value
|
||||
@@ -84,7 +87,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun getString(key: String?, defValue: String?): String? {
|
||||
if (key == null) return defValue
|
||||
val pk = preferencesKey<String>(key)
|
||||
val pk = stringPreferencesKey(key)
|
||||
return runBlocking {
|
||||
dataStore.data.map { it[pk] ?: defValue }.first()
|
||||
}
|
||||
@@ -92,7 +95,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun getStringSet(key: String?, defValues: Set<String?>?): Set<String?>? {
|
||||
if (key == null) return defValues
|
||||
val pk = preferencesSetKey<String>(key)
|
||||
val pk = stringSetPreferencesKey(key)
|
||||
return runBlocking {
|
||||
dataStore.data.map { it[pk] ?: defValues }.first()
|
||||
}
|
||||
@@ -100,7 +103,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun getInt(key: String?, defValue: Int): Int {
|
||||
if (key == null) return defValue
|
||||
val pk = preferencesKey<Int>(key)
|
||||
val pk = intPreferencesKey(key)
|
||||
return runBlocking {
|
||||
dataStore.data.map { it[pk] ?: defValue }.first()
|
||||
}
|
||||
@@ -108,7 +111,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun getLong(key: String?, defValue: Long): Long {
|
||||
if (key == null) return defValue
|
||||
val pk = preferencesKey<Long>(key)
|
||||
val pk = longPreferencesKey(key)
|
||||
return runBlocking {
|
||||
dataStore.data.map { it[pk] ?: defValue }.first()
|
||||
}
|
||||
@@ -116,7 +119,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun getFloat(key: String?, defValue: Float): Float {
|
||||
if (key == null) return defValue
|
||||
val pk = preferencesKey<Float>(key)
|
||||
val pk = floatPreferencesKey(key)
|
||||
return runBlocking {
|
||||
dataStore.data.map { it[pk] ?: defValue }.first()
|
||||
}
|
||||
@@ -124,7 +127,7 @@ class PreferencesPreferenceDataStore(private val coroutineScope: CoroutineScope,
|
||||
|
||||
override fun getBoolean(key: String?, defValue: Boolean): Boolean {
|
||||
if (key == null) return defValue
|
||||
val pk = preferencesKey<Boolean>(key)
|
||||
val pk = booleanPreferencesKey(key)
|
||||
return runBlocking {
|
||||
dataStore.data.map { it[pk] ?: defValue }.first()
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ import com.wireguard.android.util.lifecycleScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.util.Locale
|
||||
|
||||
class VersionPreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) {
|
||||
private var versionSummary: String? = null
|
||||
@@ -49,12 +48,12 @@ class VersionPreference(context: Context, attrs: AttributeSet?) : Preference(con
|
||||
init {
|
||||
lifecycleScope.launch {
|
||||
val backend = Application.getBackend()
|
||||
versionSummary = getContext().getString(R.string.version_summary_checking, getBackendPrettyName(context, backend).toLowerCase(Locale.ENGLISH))
|
||||
versionSummary = getContext().getString(R.string.version_summary_checking, getBackendPrettyName(context, backend).lowercase())
|
||||
notifyChanged()
|
||||
versionSummary = try {
|
||||
getContext().getString(R.string.version_summary, getBackendPrettyName(context, backend), withContext(Dispatchers.IO) { backend.version })
|
||||
} catch (_: Throwable) {
|
||||
getContext().getString(R.string.version_summary_unknown, getBackendPrettyName(context, backend).toLowerCase(Locale.ENGLISH))
|
||||
getContext().getString(R.string.version_summary_unknown, getBackendPrettyName(context, backend).lowercase())
|
||||
}
|
||||
notifyChanged()
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.widget.TextView
|
||||
import androidx.core.content.getSystemService
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import com.wireguard.android.R
|
||||
|
||||
/**
|
||||
* Standalone utilities for interacting with the system clipboard.
|
||||
@@ -28,6 +29,6 @@ object ClipboardUtils {
|
||||
}
|
||||
val service = view.context.getSystemService<ClipboardManager>() ?: return
|
||||
service.setPrimaryClip(ClipData.newPlainText(data.second, data.first))
|
||||
Snackbar.make(view, "${data.second} copied to clipboard", Snackbar.LENGTH_LONG).show()
|
||||
Snackbar.make(view, view.context.getString(R.string.copied_to_clipboard, data.second), Snackbar.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,8 @@ object ErrorMessages {
|
||||
BackendException.Reason.VPN_NOT_AUTHORIZED to R.string.vpn_not_authorized_error,
|
||||
BackendException.Reason.UNABLE_TO_START_VPN to R.string.vpn_start_error,
|
||||
BackendException.Reason.TUN_CREATION_ERROR to R.string.tun_create_error,
|
||||
BackendException.Reason.GO_ACTIVATION_ERROR_CODE to R.string.tunnel_on_error
|
||||
BackendException.Reason.GO_ACTIVATION_ERROR_CODE to R.string.tunnel_on_error,
|
||||
BackendException.Reason.DNS_RESOLUTION_FAILURE to R.string.tunnel_dns_failure
|
||||
)
|
||||
private val KFE_FORMAT_MAP = mapOf(
|
||||
Key.Format.BASE64 to R.string.key_length_explanation_base64,
|
||||
|
||||
@@ -25,7 +25,6 @@ import java.io.ByteArrayInputStream
|
||||
import java.io.InputStreamReader
|
||||
import java.nio.charset.StandardCharsets
|
||||
import java.util.ArrayList
|
||||
import java.util.Locale
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipInputStream
|
||||
|
||||
@@ -50,8 +49,8 @@ object TunnelImporter {
|
||||
require(idx < name.length - 1) { context.getString(R.string.illegal_filename_error, name) }
|
||||
name = name.substring(idx + 1)
|
||||
}
|
||||
val isZip = name.toLowerCase(Locale.ROOT).endsWith(".zip")
|
||||
if (name.toLowerCase(Locale.ROOT).endsWith(".conf")) {
|
||||
val isZip = name.lowercase().endsWith(".zip")
|
||||
if (name.lowercase().endsWith(".conf")) {
|
||||
name = name.substring(0, name.length - ".conf".length)
|
||||
} else {
|
||||
require(isZip) { context.getString(R.string.bad_extension_error) }
|
||||
@@ -71,7 +70,7 @@ object TunnelImporter {
|
||||
}
|
||||
name = name.substring(name.lastIndexOf('/') + 1)
|
||||
}
|
||||
if (name.toLowerCase(Locale.ROOT).endsWith(".conf")) {
|
||||
if (name.lowercase().endsWith(".conf")) {
|
||||
name = name.substring(0, name.length - ".conf".length)
|
||||
} else {
|
||||
continue
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
|
||||
package com.wireguard.android.util
|
||||
|
||||
import androidx.datastore.preferences.edit
|
||||
import androidx.datastore.preferences.preferencesKey
|
||||
import androidx.datastore.preferences.preferencesSetKey
|
||||
import androidx.datastore.preferences.remove
|
||||
import androidx.datastore.preferences.core.booleanPreferencesKey
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringSetPreferencesKey
|
||||
import com.wireguard.android.Application
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
object UserKnobs {
|
||||
private val DISABLE_KERNEL_MODULE = preferencesKey<Boolean>("disable_kernel_module")
|
||||
private val DISABLE_KERNEL_MODULE = booleanPreferencesKey("disable_kernel_module")
|
||||
val disableKernelModule: Flow<Boolean>
|
||||
get() = Application.getPreferencesDataStore().data.map {
|
||||
it[DISABLE_KERNEL_MODULE] ?: false
|
||||
@@ -29,31 +29,31 @@ object UserKnobs {
|
||||
}
|
||||
}
|
||||
|
||||
private val MULTIPLE_TUNNELS = preferencesKey<Boolean>("multiple_tunnels")
|
||||
private val MULTIPLE_TUNNELS = booleanPreferencesKey("multiple_tunnels")
|
||||
val multipleTunnels: Flow<Boolean>
|
||||
get() = Application.getPreferencesDataStore().data.map {
|
||||
it[MULTIPLE_TUNNELS] ?: false
|
||||
}
|
||||
|
||||
private val DARK_THEME = preferencesKey<Boolean>("dark_theme")
|
||||
private val DARK_THEME = booleanPreferencesKey("dark_theme")
|
||||
val darkTheme: Flow<Boolean>
|
||||
get() = Application.getPreferencesDataStore().data.map {
|
||||
it[DARK_THEME] ?: false
|
||||
}
|
||||
|
||||
private val ALLOW_REMOTE_CONTROL_INTENTS = preferencesKey<Boolean>("allow_remote_control_intents")
|
||||
private val ALLOW_REMOTE_CONTROL_INTENTS = booleanPreferencesKey("allow_remote_control_intents")
|
||||
val allowRemoteControlIntents: Flow<Boolean>
|
||||
get() = Application.getPreferencesDataStore().data.map {
|
||||
it[ALLOW_REMOTE_CONTROL_INTENTS] ?: false
|
||||
}
|
||||
|
||||
private val RESTORE_ON_BOOT = preferencesKey<Boolean>("restore_on_boot")
|
||||
private val RESTORE_ON_BOOT = booleanPreferencesKey("restore_on_boot")
|
||||
val restoreOnBoot: Flow<Boolean>
|
||||
get() = Application.getPreferencesDataStore().data.map {
|
||||
it[RESTORE_ON_BOOT] ?: false
|
||||
}
|
||||
|
||||
private val LAST_USED_TUNNEL = preferencesKey<String>("last_used_tunnel")
|
||||
private val LAST_USED_TUNNEL = stringPreferencesKey("last_used_tunnel")
|
||||
val lastUsedTunnel: Flow<String?>
|
||||
get() = Application.getPreferencesDataStore().data.map {
|
||||
it[LAST_USED_TUNNEL]
|
||||
@@ -68,7 +68,7 @@ object UserKnobs {
|
||||
}
|
||||
}
|
||||
|
||||
private val RUNNING_TUNNELS = preferencesSetKey<String>("enabled_configs")
|
||||
private val RUNNING_TUNNELS = stringSetPreferencesKey("enabled_configs")
|
||||
val runningTunnels: Flow<Set<String>>
|
||||
get() = Application.getPreferencesDataStore().data.map {
|
||||
it[RUNNING_TUNNELS] ?: emptySet()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="400dp"
|
||||
android:height="400dp"
|
||||
android:width="200dp"
|
||||
android:height="200dp"
|
||||
android:viewportWidth="400.0"
|
||||
android:viewportHeight="400.0">
|
||||
<path
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_success">
|
||||
<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>
|
||||
<plurals name="delete_title">
|
||||
<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>
|
||||
</resources>
|
||||
@@ -1,5 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">No s\'ha pogut esborrar %d túnel: %s</item>
|
||||
<item quantity="other">No s\'han pogut esborrar %d túnels: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d túnel seleccionat</item>
|
||||
<item quantity="other">%d túnels seleccionats</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d exclòs</item>
|
||||
<item quantity="other">%d exclosos</item>
|
||||
@@ -27,6 +35,7 @@
|
||||
<item quantity="one">segon</item>
|
||||
<item quantity="other">segons</item>
|
||||
</plurals>
|
||||
<string name="add_peer">Afegir parell</string>
|
||||
<string name="addresses">Adreces</string>
|
||||
<string name="applications">Aplicacions</string>
|
||||
<string name="allowed_ips">IPs permeses</string>
|
||||
@@ -38,7 +47,12 @@
|
||||
<string name="bad_config_reason_unknown_attribute">Atribut desconegut</string>
|
||||
<string name="bad_config_reason_unknown_section">Secció desconeguda</string>
|
||||
<string name="cancel">Cancel·la</string>
|
||||
<string name="create_activity_title">Crear túnel WireGuard</string>
|
||||
<string name="create_empty">Crea des de zero</string>
|
||||
<string name="create_from_file">Importa des de fitxer o arxiu</string>
|
||||
<string name="create_from_qr_code">Escaneja codi QR</string>
|
||||
<string name="create_tunnel">Crear túnel</string>
|
||||
<string name="dark_theme_title">Utilitza tema fosc</string>
|
||||
<string name="delete">Elimina</string>
|
||||
<string name="dns_servers">Servidors DNS</string>
|
||||
<string name="edit">Edita</string>
|
||||
@@ -49,22 +63,36 @@
|
||||
<string name="hint_optional">(opcional)</string>
|
||||
<string name="hint_optional_discouraged">(opcional, no recomanat)</string>
|
||||
<string name="hint_random">(aleatori)</string>
|
||||
<string name="import_from_qr_code">Importa túnel desde codi QR</string>
|
||||
<string name="import_success">Importat “%s”</string>
|
||||
<string name="interface_title">Interfície</string>
|
||||
<string name="key_length_error">Longitud de clau incorrecta</string>
|
||||
<string name="log_export_success">Guardat a \"%s\"</string>
|
||||
<string name="log_export_title">Exporta el registre</string>
|
||||
<string name="log_saver_activity_label">Guarda registre</string>
|
||||
<string name="log_viewer_pref_title">Mostra el registre d\'aplicació</string>
|
||||
<string name="log_viewer_title">Registre</string>
|
||||
<string name="multiple_tunnels_title">Permet múltiples túnels simultanis</string>
|
||||
<string name="name">Nom</string>
|
||||
<string name="no_tunnels_error">No existeixen túnels</string>
|
||||
<string name="parse_error_inet_address">Adreça IP</string>
|
||||
<string name="parse_error_inet_network">Xarxa IP</string>
|
||||
<string name="parse_error_integer">número</string>
|
||||
<string name="peer">Parell</string>
|
||||
<string name="pre_shared_key_enabled">activat</string>
|
||||
<string name="private_key">Clau privada</string>
|
||||
<string name="public_key">Clau pública</string>
|
||||
<string name="restore_on_boot_title">Restableix a l\'inici</string>
|
||||
<string name="save">Guarda</string>
|
||||
<string name="select_all">Selecciona-ho tot</string>
|
||||
<string name="settings">Configuració</string>
|
||||
<string name="tunnel_error_already_exists">El túnel \"%s\" ja existeix</string>
|
||||
<string name="tunnel_error_invalid_name">Nom no vàlid</string>
|
||||
<string name="tunnel_list_placeholder">Afegiu un túnel usant el botó blau</string>
|
||||
<string name="tunnel_name">Nom del túnel</string>
|
||||
<string name="unknown_error">Error desconegut</string>
|
||||
<string name="version_summary_unknown">Versió de %s desconeguda</string>
|
||||
<string name="zip_export_success">Guardat a \"%s\"</string>
|
||||
<string name="biometric_auth_error">Error d\'autenticació</string>
|
||||
<string name="biometric_auth_error_reason">Error d\'autenticació: %s</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">%d tunel nelze smazat: %s</item>
|
||||
<item quantity="few">%d tunely nelze smazat: %s</item>
|
||||
<item quantity="many">%d tunelů nelze smazat: %s</item>
|
||||
<item quantity="other">%d tunelů nelze smazat: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">%d tunel byl smazán</item>
|
||||
<item quantity="few">%d tunely byly smazány</item>
|
||||
<item quantity="many">%d tunelů bylo smazáno</item>
|
||||
<item quantity="other">%d tunelů bylo smazáno</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">Vybrán %d tunel</item>
|
||||
<item quantity="few">Vybrány %d tunely</item>
|
||||
<item quantity="many">Vybráno %d tunelů</item>
|
||||
<item quantity="other">Vybráno %d tunelů</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">Importován %1$d z %2$d tunelů</item>
|
||||
<item quantity="few">Importovány %1$d z %2$d tunelů</item>
|
||||
<item quantity="many">Importováno %1$d z %2$d tunelů</item>
|
||||
<item quantity="other">Importováno %1$d z %2$d tunelů</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">Importován %d tunel</item>
|
||||
<item quantity="few">Importovány %d tunely</item>
|
||||
<item quantity="many">Importováno %d tunelů</item>
|
||||
<item quantity="other">Importováno %d tunelů</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d vyloučená aplikace</item>
|
||||
<item quantity="few">%d vyloučené aplikace</item>
|
||||
<item quantity="many">%d vyloučených aplikací</item>
|
||||
<item quantity="other">%d vyloučených aplikací</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d zahrnutá aplikace</item>
|
||||
<item quantity="few">%d zahrnuté aplikace</item>
|
||||
<item quantity="many">%d zahrnutých aplikací</item>
|
||||
<item quantity="other">%d zahrnutých aplikací</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d vyloučena</item>
|
||||
<item quantity="few">%d vyloučeny</item>
|
||||
<item quantity="many">%d vyloučeno</item>
|
||||
<item quantity="other">%d vyloučeno</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d zahrnuta</item>
|
||||
<item quantity="few">%d zahrnuty</item>
|
||||
<item quantity="many">%d zahrnuto</item>
|
||||
<item quantity="other">%d zahrnuto</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Všechny aplikace</string>
|
||||
<string name="exclude_from_tunnel">Vyloučit</string>
|
||||
<string name="include_in_tunnel">Zahrnout pouze</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Zahrnout %d aplikaci</item>
|
||||
<item quantity="few">Zahrnout %d aplikace</item>
|
||||
<item quantity="many">Zahrnout %d aplikací</item>
|
||||
<item quantity="other">Zahrnout %d aplikací</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Vyloučit %d aplikaci</item>
|
||||
<item quantity="few">Vyloučit %d aplikace</item>
|
||||
<item quantity="many">Vyloučit %d aplikací</item>
|
||||
<item quantity="other">Vyloučit %d aplikací</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">každou sekundu</item>
|
||||
<item quantity="few">každé %d sekundy</item>
|
||||
<item quantity="many">každých %d sekund</item>
|
||||
<item quantity="other">každých %d sekund</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">sekunda</item>
|
||||
<item quantity="few">sekundy</item>
|
||||
<item quantity="many">sekund</item>
|
||||
<item quantity="other">sekund</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Použít všechny aplikace</string>
|
||||
<string name="add_peer">Přidat peera</string>
|
||||
<string name="addresses">Adresy</string>
|
||||
<string name="applications">Aplikace</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Externí aplikace nemohou přepínat tunely (doporučeno)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Externí aplikace mohou přepínat tunely (pokročilé)</string>
|
||||
<string name="allow_remote_control_intents_title">Povolit aplikace vzdálené správy</string>
|
||||
<string name="allowed_ips">Povolené IP</string>
|
||||
<string name="bad_config_context">%2$s položky %1$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s v %2$s</string>
|
||||
<string name="bad_config_explanation_pka">: Musí být kladný a maximálně 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Musí být kladný</string>
|
||||
<string name="bad_config_explanation_udp_port">: Musí být platné číslo UDP portu</string>
|
||||
<string name="bad_config_reason_invalid_key">Neplatný klíč</string>
|
||||
<string name="bad_config_reason_invalid_number">Neplatné číslo</string>
|
||||
<string name="bad_config_reason_invalid_value">Neplatná hodnota</string>
|
||||
<string name="bad_config_reason_missing_attribute">Chybějící atribut</string>
|
||||
<string name="bad_config_reason_missing_section">Chybějící sekce</string>
|
||||
<string name="bad_config_reason_syntax_error">Syntaktická chyba</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Neznámý atribut</string>
|
||||
<string name="bad_config_reason_unknown_section">Neznámá sekce</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Hodnota je mimo rozsah</string>
|
||||
<string name="bad_extension_error">Soubor musí být .conf nebo .zip</string>
|
||||
<string name="cancel">Zrušit</string>
|
||||
<string name="config_delete_error">Nelze smazat konfigurační soubor %s</string>
|
||||
<string name="config_exists_error">Konfigurace pro „%s“ již existuje</string>
|
||||
<string name="config_file_exists_error">Konfigurační soubor „%s“ již existuje</string>
|
||||
<string name="config_not_found_error">Konfigurační soubor „%s“ nebyl nalezen</string>
|
||||
<string name="config_rename_error">Konfigurační soubor „%s“ nelze přejmenovat</string>
|
||||
<string name="config_save_error">Nelze uložit konfiguraci pro „%1$s“: %2$s</string>
|
||||
<string name="config_save_success">Konfigurace pro „%s“ byla úspěšně uložena</string>
|
||||
<string name="create_activity_title">Vytvořit WireGuard tunel</string>
|
||||
<string name="log_viewer_pref_summary">Logy mohou pomoci s debuggingem</string>
|
||||
<string name="log_viewer_pref_title">Zobrazit log aplikace</string>
|
||||
<string name="log_viewer_title">Log</string>
|
||||
<string name="logcat_error">Nelze spustit logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">Experimentální kernel modul může zlepšit výkon</string>
|
||||
<string name="module_disabler_disabled_title">Povolit backend kernel modulu</string>
|
||||
<string name="module_disabler_enabled_title">Vypnout backend kernel modulu</string>
|
||||
<string name="module_installer_error">Něco se pokazilo. Zkuste to prosím znovu</string>
|
||||
<string name="module_installer_initial">Experimentální kernel modul může zlepšit výkon</string>
|
||||
<string name="module_installer_not_found">Pro toto zařízení nejsou dostupné žádné moduly</string>
|
||||
<string name="module_installer_title">Stáhnout a nainstalovat kernel modul</string>
|
||||
<string name="module_installer_working">Stahování a instalace…</string>
|
||||
<string name="module_version_error">Nelze určit verzi kernel modulu</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Zapnutí jednoho tunelu vypne ostatní tunely</string>
|
||||
<string name="multiple_tunnels_summary_on">Více tunelů může být zapnuto najednou</string>
|
||||
<string name="multiple_tunnels_title">Povolit více simultánních tunelů</string>
|
||||
<string name="name">Název</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">Kan ikke slette %d tunnel: %s</item>
|
||||
<item quantity="other">Ikke i stand til at slette %d tunneler: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">Slettede %d tunnel</item>
|
||||
<item quantity="other">%d tunneller blev slettet</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
@@ -56,14 +56,13 @@
|
||||
<item quantity="other">Sekunden</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Alle Apps verwenden</string>
|
||||
<string name="add_peer">Teilnehmer hinzufügen</string>
|
||||
<string name="add_peer">Gegenüber hinzufügen</string>
|
||||
<string name="addresses">Adressen</string>
|
||||
<string name="applications">Anwendungen</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Externe Apps dürfen keine Tunnel umschalten (empfohlen)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Externe Apps dürfen Tunnel umschalten (erweitert)</string>
|
||||
<string name="allow_remote_control_intents_title">Erlaube Steuerung über externe Apps</string>
|
||||
<string name="allowed_ips">Erlaubte IPs</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%2$s des %1$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s in %2$s</string>
|
||||
@@ -97,11 +96,18 @@
|
||||
<string name="create_output_dir_error">Konnte das Ausgabeverzeichnis nicht erstellen</string>
|
||||
<string name="create_temp_dir_error">Lokales temporäres Verzeichnis kann nicht erstellt werden</string>
|
||||
<string name="create_tunnel">Tunnel erstellen</string>
|
||||
<string name="copied_to_clipboard">%s in die Zwischenanlage kopiert</string>
|
||||
<string name="dark_theme_summary_off">Verwende helles Design (Tag)</string>
|
||||
<string name="dark_theme_summary_on">Verwende dunkles Design (Nacht)</string>
|
||||
<string name="dark_theme_title">Dunkles Design verwenden</string>
|
||||
<string name="delete">Entfernen</string>
|
||||
<string name="dns_servers">DNS-Server</string>
|
||||
<string name="tv_delete">Wählen Sie den zu löschenden Tunnel aus</string>
|
||||
<string name="tv_select_a_storage_drive">Wählen Sie ein Speicherlaufwerk</string>
|
||||
<string name="tv_no_file_picker">Bitte installieren Sie ein Dateiverwaltungsprogramm, um Dateien zu durchsuchen</string>
|
||||
<string name="tv_add_tunnel_get_started">Fügen Sie einen Tunnel hinzu, um loszulegen</string>
|
||||
<string name="disable_config_export_title">Deaktivieren Sie den Konfigurationsexport</string>
|
||||
<string name="disable_config_export_description">Durch Deaktivieren des Konfigurationsexports werden private Schlüssel weniger zugänglich</string>
|
||||
<string name="dns_servers">Nameserver</string>
|
||||
<string name="edit">Bearbeiten</string>
|
||||
<string name="endpoint">Endpunkt</string>
|
||||
<string name="error_down">Fehler beim Abschalten des Tunnels: %s</string>
|
||||
@@ -112,7 +118,7 @@
|
||||
<string name="generate_new_private_key">Neuen privaten Schlüssel generieren</string>
|
||||
<string name="generic_error">Unbekannter „%s“ Fehler</string>
|
||||
<string name="hint_automatic">(auto)</string>
|
||||
<string name="hint_generated">(generiert)</string>
|
||||
<string name="hint_generated">(erzeugt)</string>
|
||||
<string name="hint_optional">(optional)</string>
|
||||
<string name="hint_optional_discouraged">(optional, nicht empfohlen)</string>
|
||||
<string name="hint_random">(zufällig)</string>
|
||||
@@ -212,7 +218,6 @@
|
||||
<string name="type_name_go_userspace">Go userspace</string>
|
||||
<string name="type_name_kernel_module">Kernelmodul</string>
|
||||
<string name="unknown_error">Unbekannter Fehler</string>
|
||||
<string name="version_summary">%1$s Backend v%2$s</string>
|
||||
<string name="version_summary_checking">Überprüfe %s Backend-Version</string>
|
||||
<string name="version_summary_unknown">Unbekannte %s Version</string>
|
||||
<string name="version_title">WireGuard für Android v%s</string>
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d excluido</item>
|
||||
<item quantity="other">%d excluidos</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Todas las Aplicaciones</string>
|
||||
<string name="exclude_from_tunnel">Excluir</string>
|
||||
<string name="include_in_tunnel">Sólo inclusión</string>
|
||||
<string name="use_all_applications">Usar todas las aplicaciones</string>
|
||||
<string name="add_peer">Añadir par</string>
|
||||
<string name="addresses">Direcciones</string>
|
||||
<string name="applications">Aplicaciones</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Las aplicaciones externas no pueden cambiar túneles (recomendado)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Las aplicaciones externas pueden cambiar túneles (avanzado)</string>
|
||||
<string name="allow_remote_control_intents_title">Permitir aplicaciones de mando remoto</string>
|
||||
<string name="allowed_ips">IPs permitidas</string>
|
||||
<string name="bad_config_context">%1$s de %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s en %2$s</string>
|
||||
<string name="bad_config_explanation_pka">: Debe ser positivo y no más de 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Debe ser positivo</string>
|
||||
<string name="bad_config_explanation_udp_port">: Debe ser un número válido de puerto UDP</string>
|
||||
<string name="bad_config_reason_invalid_key">Clave inválida</string>
|
||||
<string name="bad_config_reason_invalid_number">Número inválido</string>
|
||||
<string name="bad_config_reason_invalid_value">Valor inválido</string>
|
||||
<string name="bad_config_reason_missing_attribute">Falta atributo</string>
|
||||
<string name="bad_config_reason_missing_section">Sección faltante</string>
|
||||
<string name="bad_config_reason_syntax_error">Error de sintaxis</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Atributo desconocido</string>
|
||||
<string name="bad_config_reason_unknown_section">Sección desconocida</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Valor fuera de rango</string>
|
||||
<string name="bad_extension_error">El archivo debe ser .conf o .zip</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="config_delete_error">No se puede eliminar el archivo de configuración %s</string>
|
||||
<string name="config_exists_error">La configuración para “%s” ya existe</string>
|
||||
<string name="config_file_exists_error">El archivo de configuración “%s” ya existe</string>
|
||||
<string name="config_not_found_error">Archivo de configuración “%s” no encontrado</string>
|
||||
<string name="config_rename_error">No se puede renombrar el archivo de configuración “%s”</string>
|
||||
<string name="config_save_error">No se puede guardar la configuración para “%1$s”: %2$s</string>
|
||||
<string name="config_save_success">Configuración guardada correctamente para “%s”</string>
|
||||
<string name="create_activity_title">Crear túnel WireGuard</string>
|
||||
<string name="create_bin_dir_error">No se puede crear el directorio binario local</string>
|
||||
<string name="create_downloads_file_error">No se puede crear archivo en el directorio de descargas</string>
|
||||
<string name="create_empty">Crear de cero</string>
|
||||
<string name="create_from_file">Importar desde archivo</string>
|
||||
<string name="create_from_qr_code">Escanear desde código QR</string>
|
||||
<string name="create_output_dir_error">No se puede crear el directorio de salida</string>
|
||||
<string name="create_temp_dir_error">No se puede crear la carpeta temporal</string>
|
||||
<string name="create_tunnel">Crear túnel</string>
|
||||
<string name="dark_theme_summary_off">Actualmente usando tema claro (día)</string>
|
||||
<string name="dark_theme_summary_on">Actualmente usando tema oscuro (noche)</string>
|
||||
<string name="dark_theme_title">Usar tema oscuro</string>
|
||||
<string name="delete">Eliminar</string>
|
||||
<string name="dns_servers">Servidores DNS</string>
|
||||
<string name="edit">Editar</string>
|
||||
<string name="endpoint">Punto final</string>
|
||||
<string name="error_down">Error al bajar el túnel: %s</string>
|
||||
<string name="error_fetching_apps">Error al obtener la lista de aplicaciones: %s</string>
|
||||
<string name="error_root">Por favor, obtén acceso root y vuelve a intentarlo</string>
|
||||
<string name="error_up">Error al abrir el túnel: %s</string>
|
||||
<string name="exclude_private_ips">Excluir direcciones privadas</string>
|
||||
<string name="generate_new_private_key">Generar nueva clave privada</string>
|
||||
<string name="generic_error">Error desconocido “%s”</string>
|
||||
<string name="hint_automatic">(auto)</string>
|
||||
<string name="hint_generated">(generado)</string>
|
||||
<string name="hint_optional">(opcional)</string>
|
||||
<string name="hint_optional_discouraged">(opcional, no recomendado)</string>
|
||||
<string name="hint_random">(aleatorio)</string>
|
||||
<string name="illegal_filename_error">Nombre de archivo no válido “%s”</string>
|
||||
<string name="import_error">No se puede importar túnel: %s</string>
|
||||
<string name="import_from_qr_code">Importar túnel desde código QR</string>
|
||||
<string name="import_success">Importado “%s”</string>
|
||||
<string name="interface_title">Interfaz</string>
|
||||
<string name="key_contents_error">Caracteres incorrectos en la clave</string>
|
||||
<string name="key_length_error">Longitud de clave incorrecta</string>
|
||||
<string name="key_length_explanation_base64">Las claves base64 de WireGuard deben tener 44 caracteres (32 bytes)</string>
|
||||
<string name="key_length_explanation_binary">: Las claves WireGuard deben tener 32 bytes</string>
|
||||
<string name="key_length_explanation_hex">: Las claves hexadecimales de Wirex deben tener 64 caracteres (32 bytes)</string>
|
||||
<string name="listen_port">Puerto de escucha</string>
|
||||
<string name="log_export_error">No se pudo exportar el registro: %s</string>
|
||||
<string name="log_export_subject">Archivo de registro WireGuard Android</string>
|
||||
<string name="log_export_success">Guardado en “%s”</string>
|
||||
<string name="log_export_title">Exportar archivo de registro</string>
|
||||
<string name="log_saver_activity_label">Guardar registro</string>
|
||||
<string name="log_viewer_pref_summary">Los registros pueden ayudar con la depuración</string>
|
||||
<string name="log_viewer_pref_title">Ver registro de aplicación</string>
|
||||
<string name="log_viewer_title">Registro</string>
|
||||
<string name="logcat_error">No se puede ejecutar logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">El módulo experimental del kernel puede mejorar el rendimiento</string>
|
||||
<string name="module_disabler_disabled_title">Habilitar backend del módulo del kernel</string>
|
||||
<string name="module_disabler_enabled_summary">El backend más lento del espacio de usuario puede mejorar la estabilidad</string>
|
||||
<string name="module_disabler_enabled_title">Desactivar backend del módulo del kernel</string>
|
||||
<string name="module_installer_error">Ocurrió un error. Intente de nuevo</string>
|
||||
<string name="module_installer_initial">El módulo experimental del kernel puede mejorar el rendimiento</string>
|
||||
<string name="module_installer_not_found">No hay módulos disponibles para tu dispositivo</string>
|
||||
<string name="module_installer_title">Descargar e instalar el módulo del kernel</string>
|
||||
<string name="module_installer_working">Descargando e instalando…</string>
|
||||
<string name="module_version_error">No se puede determinar la versión del módulo del kernel</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Activar un túnel apagará los demás</string>
|
||||
<string name="multiple_tunnels_summary_on">Múltiples túneles pueden ser activados simultáneamente</string>
|
||||
<string name="multiple_tunnels_title">Permitir múltiples túneles simultáneos</string>
|
||||
<string name="name">Nombre</string>
|
||||
<string name="no_config_error">Intentando abrir un túnel sin configuración</string>
|
||||
<string name="no_configs_error">No se encontraron configuraciones</string>
|
||||
<string name="no_tunnels_error">No existen túneles</string>
|
||||
<string name="parse_error_generic">cadena</string>
|
||||
<string name="parse_error_inet_address">Dirección IP</string>
|
||||
<string name="parse_error_inet_endpoint">punto final</string>
|
||||
<string name="parse_error_inet_network">Red IP</string>
|
||||
<string name="parse_error_integer">número</string>
|
||||
<string name="parse_error_reason">No se puede analizar %1$s “%2$s”</string>
|
||||
<string name="peer">Pares</string>
|
||||
<string name="permission_description">controlar túneles de WireGuard, habilitando y desactivando túneles a su antojo, lo que podría conducir mal al tráfico de Internet</string>
|
||||
<string name="permission_label">controlar túneles de WireGuard</string>
|
||||
<string name="persistent_keepalive">Mantenimiento persistente</string>
|
||||
<string name="pre_shared_key">Clave precompartida</string>
|
||||
<string name="pre_shared_key_enabled">activado</string>
|
||||
<string name="private_key">Clave privada</string>
|
||||
<string name="public_key">Clave pública</string>
|
||||
<string name="qr_code_hint">Consejo: generar con `qrencode -t ansiutf8 < tunnel.conf`.</string>
|
||||
<string name="restore_on_boot_summary_off">No mostrará túneles habilitados al arrancar</string>
|
||||
<string name="restore_on_boot_summary_on">Mostrará túneles habilitados al arrancar</string>
|
||||
<string name="restore_on_boot_title">Restaurar al arrancar</string>
|
||||
<string name="save">Guardar</string>
|
||||
<string name="select_all">Seleccionar todo</string>
|
||||
<string name="settings">Preferencias</string>
|
||||
<string name="shell_exit_status_read_error">Shell no puede leer estado de salida</string>
|
||||
<string name="shell_marker_count_error">Shell esperaba 4 marcadores, recibió %d</string>
|
||||
<string name="shell_start_error">No se pudo iniciar Shell: %d</string>
|
||||
<string name="success_application_will_restart">Éxito. La aplicación se reiniciará ahora…</string>
|
||||
<string name="toggle_all">Cambiar Todos</string>
|
||||
<string name="toggle_error">Error al cambiar el túnel WireGuard: %s</string>
|
||||
<string name="tools_installer_already">wg y wg-quick ya están instalados</string>
|
||||
<string name="tools_installer_failure">No se puede instalar herramientas de línea de comandos (sin root?)</string>
|
||||
<string name="tools_installer_initial">Instalar herramientas opcionales para el scripting</string>
|
||||
<string name="tools_installer_initial_magisk">Instalar herramientas opcionales para el scripting como módulo Magisk</string>
|
||||
<string name="tools_installer_initial_system">Instalar herramientas opcionales para el scripting en la partición del sistema</string>
|
||||
<string name="tools_installer_success_magisk">wg y wg-quick instalados como un módulo Magisk (requiere reinicio)</string>
|
||||
<string name="tools_installer_success_system">wg y wg-quick instalados en la partición del sistema</string>
|
||||
<string name="tools_installer_title">Instalar herramientas de línea de comandos</string>
|
||||
<string name="tools_installer_working">Instalando wg y wg-quick</string>
|
||||
<string name="tools_unavailable_error">Herramientas requeridas no disponibles</string>
|
||||
<string name="transfer">Transferir</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">No se puede crear el dispositivo túnel</string>
|
||||
<string name="tunnel_config_error">No se puede configurar el túnel (wg-quick devuelto %d)</string>
|
||||
<string name="tunnel_create_error">No se puede crear el dispositivo túnel: %s</string>
|
||||
<string name="tunnel_create_success">Túnel creado con éxito “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Túnel “%s” ya existe</string>
|
||||
<string name="tunnel_error_invalid_name">Nombre inválido</string>
|
||||
<string name="tunnel_list_placeholder">Añadir un túnel usando el botón azul</string>
|
||||
<string name="tunnel_name">Nombre del túnel</string>
|
||||
<string name="tunnel_on_error">No se puede activar el túnel (wgTurnOn devolvió %d)</string>
|
||||
<string name="tunnel_rename_error">No se puede renombrar túnel: %s</string>
|
||||
<string name="tunnel_rename_success">Túnel renombrado con éxito a “%s”</string>
|
||||
<string name="type_name_go_userspace">Ir al espacio de usuario</string>
|
||||
<string name="type_name_kernel_module">Módulo Kernel</string>
|
||||
<string name="unknown_error">Error desconocido</string>
|
||||
<string name="version_summary_checking">Comprobando versión de backend %s</string>
|
||||
<string name="version_summary_unknown">Versión %s desconocida</string>
|
||||
<string name="version_title">WireGuard para Android -%s</string>
|
||||
<string name="vpn_not_authorized_error">Servicio VPN no autorizado por el usuario</string>
|
||||
<string name="vpn_start_error">No se puede iniciar el servicio VPN Android</string>
|
||||
<string name="zip_export_error">No se pueden exportar túneles: %s</string>
|
||||
<string name="zip_export_success">Guardado en “%s”</string>
|
||||
<string name="zip_export_summary">El archivo Zip se guardará en la carpeta de descargas</string>
|
||||
<string name="zip_export_title">Exportar túneles a archivo zip</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Autenticar para exportar túneles</string>
|
||||
<string name="biometric_prompt_private_key_title">Autenticar para ver la clave privada</string>
|
||||
<string name="biometric_auth_error">Error de autenticación</string>
|
||||
<string name="biometric_auth_error_reason">Error de autenticación: %s</string>
|
||||
</resources>
|
||||
@@ -64,7 +64,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">برنامههای بیرونی تونلها را عوض کنند (پیشرفته)</string>
|
||||
<string name="allow_remote_control_intents_title">اجازه به برنامههای کنترل از راهدور</string>
|
||||
<string name="allowed_ips">IPهای مجاز</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s\'s %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s در %2$s</string>
|
||||
@@ -102,6 +101,12 @@
|
||||
<string name="dark_theme_summary_on">اکنون از پوسته تاریک(شب) استفاده میشود</string>
|
||||
<string name="dark_theme_title">استفاده از پوسته تاریک</string>
|
||||
<string name="delete">حذف</string>
|
||||
<string name="tv_delete">موارد را برای حذف انتخاب کنید</string>
|
||||
<string name="tv_select_a_storage_drive">حافظه ذخیره سازی موردنظر را انتخاب کنید</string>
|
||||
<string name="tv_no_file_picker">برای مدیریت پوشه های حافظه، یک برنامه مدیریت فایل نصب کنید</string>
|
||||
<string name="tv_add_tunnel_get_started">یک پروفایل تونل برای شروع انتخاب کنید</string>
|
||||
<string name="disable_config_export_title">غیرفعال سازی خروجی گرفتن از کانفیگ ها</string>
|
||||
<string name="disable_config_export_description">غیرفعال سازی خروجی گرفتن، دسترسی کلیدهای خصوصی را کم می کند</string>
|
||||
<string name="dns_servers">سرورهای DNS</string>
|
||||
<string name="edit">ویرایش</string>
|
||||
<string name="endpoint">نقطه پایان</string>
|
||||
@@ -139,14 +144,18 @@
|
||||
<string name="logcat_error">نمیتوان logcat را اجرا کرد: </string>
|
||||
<string name="module_disabler_disabled_summary">ماژول آزمایشیِ کرنل می تواند کارایی را افزایش دهد</string>
|
||||
<string name="module_disabler_disabled_title">فعالسازی ماژول کرنل ِبک اند</string>
|
||||
<string name="module_disabler_enabled_summary">فضای کاربری کند ممکن است پایداری را بهبود ببخشد</string>
|
||||
<string name="module_disabler_enabled_title">غیرفعالسازی پسزمینه واحد هسته</string>
|
||||
<string name="module_installer_error">مشکلی پیش آمد. لطفا دوباره تلاش کنید</string>
|
||||
<string name="module_installer_initial">ماژول آزمایشیِ کرنل می تواند کارایی را افزایش دهد</string>
|
||||
<string name="module_installer_not_found">هیچ واحدی برای دستگاه شما در دسترس نیست</string>
|
||||
<string name="module_installer_title">واحد هسته را بارگیری و نصب کن</string>
|
||||
<string name="module_installer_working">در حال بارگیری و نصب…</string>
|
||||
<string name="module_version_error">نمیتوان نگارش واحد هسته را مشخص کرد</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">روشن کردن یک تونل ، تونل های دیگر را خاموش خواهد کرد</string>
|
||||
<string name="multiple_tunnels_summary_on">تونل های چندتایی ممکن است استفاده همزمان را فعال کند</string>
|
||||
<string name="multiple_tunnels_title">تونل چندگانه همزمان</string>
|
||||
<string name="name">نام</string>
|
||||
<string name="no_config_error">تلاش برای فعالسازی تونل بدون تنظیمات</string>
|
||||
<string name="no_configs_error">هیچ پیکربندی یافت نشد</string>
|
||||
@@ -165,14 +174,27 @@
|
||||
<string name="pre_shared_key_enabled">فعال شده</string>
|
||||
<string name="private_key">کلید خصوصی</string>
|
||||
<string name="public_key">کلید عمومی</string>
|
||||
<string name="qr_code_hint">نکته: با `qrencode -t ansiutf8 < tunnel.conf` تولید کنید.</string>
|
||||
<string name="restore_on_boot_summary_off">تونل های فعال در لحظه بالا آمدن سیستم، روشن نخواهند شد</string>
|
||||
<string name="restore_on_boot_summary_on">تونل های فعال در لحظه بالا آمدن سیستم، روشن خواهند شد</string>
|
||||
<string name="restore_on_boot_title">بازگردانی در بوت</string>
|
||||
<string name="save">ذخیره</string>
|
||||
<string name="select_all">انتخاب همه</string>
|
||||
<string name="settings">تنظیمات</string>
|
||||
<string name="shell_exit_status_read_error">پوسته نمی تواند وضعیت خروجی را بخواند</string>
|
||||
<string name="shell_marker_count_error">شل انتظار داشت 4 نشانگر دریافت شود %d</string>
|
||||
<string name="shell_start_error">آغاز پوسته شکست خورد: %d</string>
|
||||
<string name="success_application_will_restart">موفقیت. برنامه اکنون دوباره راهاندازی خواهد شد…</string>
|
||||
<string name="toggle_all">معکوس کردن همه</string>
|
||||
<string name="toggle_error">خطا در ضامن تونل WireGuard: %s</string>
|
||||
<string name="tools_installer_already">wg و wg-quick قبلاً نصب شده اند</string>
|
||||
<string name="tools_installer_failure">ابزارهای خط-فرمان نصب نمیشود (روت نیستید؟)</string>
|
||||
<string name="tools_installer_initial">ابزارهای اختیاری را برای اسکریپت نویسی نصب کنید</string>
|
||||
<string name="tools_installer_initial_magisk">ابزار اختیاری را برای اسکریپت نویسی به عنوان ماژول Magisk نصب کنید</string>
|
||||
<string name="tools_installer_initial_system">ابزارهای اختیاری را برای اسکریپت نویسی در پارتیشن سیستم نصب کنید</string>
|
||||
<string name="tools_installer_success_magisk">wg و wg-quick به عنوان پودمان Magisk نصب شدند
|
||||
( نیاز به راهاندازی دوباره)</string>
|
||||
<string name="tools_installer_success_system">wg و wg-fast در پارتیشن سیستم نصب شده است</string>
|
||||
<string name="tools_installer_title">ابزارهای خط فرمان را نصب کنید</string>
|
||||
<string name="tools_installer_working">در حال نصب wg و wg-quick</string>
|
||||
<string name="tools_unavailable_error">ابزارهای لازم در دسترس نیست</string>
|
||||
@@ -183,18 +205,20 @@
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">نمیتوان تونل را ساخت</string>
|
||||
<string name="tunnel_config_error">ناتوان در کانفیگ و ساخت تونل (wg-quick returned %d)</string>
|
||||
<string name="tunnel_create_error">نمیتوان تونل را ساخت: %s</string>
|
||||
<string name="tunnel_create_success">تونل “%s” با موفقیت ساخته شد</string>
|
||||
<string name="tunnel_error_already_exists">تونل “%s” از قبل وجود دارد</string>
|
||||
<string name="tunnel_error_invalid_name">نام نامعتبر</string>
|
||||
<string name="tunnel_list_placeholder">بهوسیله دکمه آبی یک تونل بیفزایید</string>
|
||||
<string name="tunnel_name">نام تونل</string>
|
||||
<string name="tunnel_on_error">روشن کردن تونل امکان پذیر نیست (wgTurnOn برگشت %d )</string>
|
||||
<string name="tunnel_rename_error">ناتوان در تغییر نام تونل: %s</string>
|
||||
<string name="tunnel_rename_success">نام تونل با موفقیت تغییر یافت به “%s”</string>
|
||||
<string name="type_name_go_userspace">رفتن به فضای کاربر</string>
|
||||
<string name="type_name_kernel_module">واحد هسته</string>
|
||||
<string name="unknown_error">خطای نامشخص</string>
|
||||
<string name="version_summary">%1$s پسزمینه نگارش%2$s</string>
|
||||
<string name="version_summary_checking">در حال بررسی نگارش پسزمینه %s</string>
|
||||
<string name="version_summary_unknown">نگارش %s ناشناخته</string>
|
||||
<string name="version_title">WireGuard برای اندروید نگارش %s</string>
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">joka sekunti</item>
|
||||
<item quantity="other">%d sekunnin välein</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">sekunti</item>
|
||||
<item quantity="other">sekuntia</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Käytä kaikkia sovelluksia</string>
|
||||
<string name="add_peer">Lisää toinen osapuoli</string>
|
||||
<string name="addresses">Osoitteet</string>
|
||||
<string name="applications">Sovellukset</string>
|
||||
<string name="allowed_ips">Sallitut IP-osoitteet</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_reason_invalid_key">Virheellinen avain</string>
|
||||
<string name="bad_config_reason_invalid_number">Virheellinen luku</string>
|
||||
<string name="bad_config_reason_invalid_value">Virheellinen arvo</string>
|
||||
<string name="bad_config_reason_missing_attribute">Attribuutti puuttuu</string>
|
||||
<string name="bad_config_reason_missing_section">Osio puuttuu</string>
|
||||
<string name="bad_config_reason_syntax_error">Syntaksivirhe</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Tuntematon määrite</string>
|
||||
<string name="bad_config_reason_unknown_section">Tuntematon osio</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Arvo alueen ulkopuolella</string>
|
||||
<string name="bad_extension_error">Tiedoston on oltava .conf tai .zip</string>
|
||||
<string name="cancel">Peruuta</string>
|
||||
<string name="config_not_found_error">Asetustiedostoa “%s” ei löydy</string>
|
||||
<string name="config_rename_error">Asetustiedostoa \"%s\" ei voi nimetä uudelleen</string>
|
||||
<string name="config_save_success">Asetustiedosto \"%s\" tallennettu onnistuneesti</string>
|
||||
<string name="create_activity_title">Luo WireGuard Tunnel</string>
|
||||
<string name="exclude_private_ips">Jätä pois yksityiset IP-osoitteet</string>
|
||||
<string name="generate_new_private_key">Luo uusi yksityinen avain</string>
|
||||
<string name="generic_error">Tuntematon ”%s” virhe</string>
|
||||
<string name="hint_automatic">(oletus)</string>
|
||||
<string name="hint_generated">(generoitu)</string>
|
||||
<string name="hint_optional">(valinnainen)</string>
|
||||
<string name="hint_optional_discouraged">(valinnainen, ei suositeltava)</string>
|
||||
<string name="hint_random">(satunnainen)</string>
|
||||
<string name="illegal_filename_error">Virheellinen tiedostonimi “%s”</string>
|
||||
<string name="import_error">Tunnelia \"%s\" ei voitu tuoda</string>
|
||||
<string name="import_from_qr_code">Tuo tunneli QR-koodista</string>
|
||||
<string name="import_success">Tuotu ”%s”</string>
|
||||
<string name="key_contents_error">Virheellinen merkki avaimessa</string>
|
||||
<string name="key_length_error">Virheellinen avaimen pituus</string>
|
||||
<string name="key_length_explanation_base64">: WireGuardin base64-avainten pituus on oltava 44 merkkiä (32 tavua)</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard-avainten on oltava 32 tavua</string>
|
||||
<string name="key_length_explanation_hex">: WireGuardin base64-avainten pituus on oltava 64 merkkiä (32 tavua)</string>
|
||||
<string name="listen_port">Kuuntele porttia</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="no_configs_error">Asetuksia ei löydy</string>
|
||||
<string name="no_tunnels_error">Tunneleita ei ole</string>
|
||||
<string name="parse_error_generic">merkkijono</string>
|
||||
<string name="parse_error_inet_address">IP-osoite</string>
|
||||
<string name="parse_error_inet_network">IP-verkko</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tunnel_name">Tunnelin nimi</string>
|
||||
</resources>
|
||||
@@ -63,7 +63,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">Les applications externes peuvent activer les tunnels (avancés)</string>
|
||||
<string name="allow_remote_control_intents_title">Autoriser les applications de contrôle à distance</string>
|
||||
<string name="allowed_ips">Adresses IP autorisées</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s de %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s dans %2$s</string>
|
||||
@@ -97,10 +96,17 @@
|
||||
<string name="create_output_dir_error">Impossible de créer le répertoire de sortie</string>
|
||||
<string name="create_temp_dir_error">Impossible de créer le répertoire temporaire local</string>
|
||||
<string name="create_tunnel">Créer un tunnel</string>
|
||||
<string name="copied_to_clipboard">%s copié dans le presse-papier</string>
|
||||
<string name="dark_theme_summary_off">Utilisation en cours du thème clair (jour)</string>
|
||||
<string name="dark_theme_summary_on">Utilisation en cours du thème sombre (nuit)</string>
|
||||
<string name="dark_theme_title">Utilisez le thème sombre</string>
|
||||
<string name="delete">Supprimer</string>
|
||||
<string name="tv_delete">Sélectionner le tunnel à supprimer</string>
|
||||
<string name="tv_select_a_storage_drive">Sélectionner un disque de stockage</string>
|
||||
<string name="tv_no_file_picker">Veuillez installer un utilitaire de gestion de fichiers pour parcourir les fichiers</string>
|
||||
<string name="tv_add_tunnel_get_started">Ajouter un tunnel pour commencer</string>
|
||||
<string name="disable_config_export_title">Désactiver l\'export de configuration</string>
|
||||
<string name="disable_config_export_description">La désactivation de l\'export de configuration rend les clés privées moins accessibles</string>
|
||||
<string name="dns_servers">Serveurs DNS</string>
|
||||
<string name="edit">Modifier</string>
|
||||
<string name="endpoint">Point de terminaison</string>
|
||||
@@ -212,7 +218,6 @@
|
||||
<string name="type_name_go_userspace">Nom de l\'espace utilisateur</string>
|
||||
<string name="type_name_kernel_module">Module noyau</string>
|
||||
<string name="unknown_error">Erreur inconnue</string>
|
||||
<string name="version_summary">%1$s backend v%2$s</string>
|
||||
<string name="version_summary_checking">Vérification de la version %s du backend</string>
|
||||
<string name="version_summary_unknown">Version %s inconnue</string>
|
||||
<string name="version_title">WireGuard pour Android v%s</string>
|
||||
|
||||
@@ -63,7 +63,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">बाहरी ऐप्स टनल्स को चालू कर सकते है (एडवांस्ड)</string>
|
||||
<string name="allow_remote_control_intents_title">रिमोट कंट्रोल ऐप्स की अनुमति दें</string>
|
||||
<string name="allowed_ips">अनुमत आईपी</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_explanation_pka">: सकारात्मक होना चाहिए और 65535 से अधिक नहीं होना चाहिए</string>
|
||||
<string name="bad_config_explanation_positive_number">: सकारात्मक होना चाहिए</string>
|
||||
<string name="bad_config_explanation_udp_port">: एक वैध यूडीपी पोर्ट नंबर होना चाहिए</string>
|
||||
@@ -175,7 +174,7 @@
|
||||
<string name="shell_exit_status_read_error">शेल बाहर निकलने की स्थिति नहीं पढ़ सकता</string>
|
||||
<string name="shell_marker_count_error">शेल ने 4 मार्करों की अपेक्षा की, %d प्राप्त किया</string>
|
||||
<string name="shell_start_error">शेल शुरू करने में विफल: %d</string>
|
||||
<string name="success_application_will_restart">सफलता। एप्लीकेशन अब पुनः आरंभ होगा...</string>
|
||||
<string name="success_application_will_restart">सफलता। एप्लीकेशन अब पुनः आरंभ होगा…</string>
|
||||
<string name="toggle_all">सबको स्विच करे</string>
|
||||
<string name="toggle_error">वायरगार्ड टनल टॉगल करने में त्रुटि: %s</string>
|
||||
<string name="tools_installer_already">wg और wg-quick पहले से इंस्टॉल हैं</string>
|
||||
@@ -203,7 +202,6 @@
|
||||
<string name="type_name_go_userspace">userspace पे जाए </string>
|
||||
<string name="type_name_kernel_module">कर्नेल मॉड्यूल</string>
|
||||
<string name="unknown_error">अज्ञात त्रुटि</string>
|
||||
<string name="version_summary">%1$s बैकएंड v%2$s</string>
|
||||
<string name="version_summary_checking">%s बैकएंड संस्करण की जाँच कर रहा है</string>
|
||||
<string name="version_summary_unknown">अज्ञात %s संस्करण</string>
|
||||
<string name="version_title">WireGuard for Android v%s</string>
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
<string name="type_name_go_userspace">userspace पे जाए </string>
|
||||
<string name="type_name_kernel_module">कर्नेल मॉड्यूल</string>
|
||||
<string name="unknown_error">अज्ञात त्रुटि</string>
|
||||
<string name="version_summary">%1$s बैकएंड v%2$s</string>
|
||||
<string name="version_summary">%1$s बैकएंड %2$s</string>
|
||||
<string name="version_summary_checking">%s बैकएंड संस्करण की जाँच कर रहा है</string>
|
||||
<string name="version_summary_unknown">अज्ञात %s संस्करण</string>
|
||||
<string name="version_title">WireGuard for Android v%s</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<item quantity="other">%d Aplikasi Dikecualikan</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="other">%d Aplikasi Dikecualikan</item>
|
||||
<item quantity="other">%d Aplikasi Disertakan</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="other">%d dikecualikan</item>
|
||||
@@ -46,11 +46,10 @@
|
||||
<string name="add_peer">Tambahkan rekan</string>
|
||||
<string name="addresses">Alamat</string>
|
||||
<string name="applications">Aplikasi</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Apl eksternal tidak dapat mengalihkan tunnel (disarankan)</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Aplikasi eksternal tidak dapat mengalihkan tunnel (disarankan)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Apl eksternal dapat mengalihkan tunnel (lanjutan)</string>
|
||||
<string name="allow_remote_control_intents_title">Izinkan apl kendali jarak jauh</string>
|
||||
<string name="allow_remote_control_intents_title">Izinkan kendali jarak jauh</string>
|
||||
<string name="allowed_ips">IP diizinkan</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s di %2$s</string>
|
||||
@@ -84,10 +83,17 @@
|
||||
<string name="create_output_dir_error">Tidak dapat membuat direktori keluaran</string>
|
||||
<string name="create_temp_dir_error">Tidak dapat membuat direktori lokal sementara</string>
|
||||
<string name="create_tunnel">Buat tunel</string>
|
||||
<string name="copied_to_clipboard">%s Disalin ke Clipboard</string>
|
||||
<string name="dark_theme_summary_off">Saat ini menggunakan tema terang (siang)</string>
|
||||
<string name="dark_theme_summary_on">Saat ini menggunakan tema gelap (malam)</string>
|
||||
<string name="dark_theme_title">Gunakan tema gelap</string>
|
||||
<string name="delete">Hapus</string>
|
||||
<string name="tv_delete">Pilih tunnel yang akan dihapus</string>
|
||||
<string name="tv_select_a_storage_drive">Pilih lokasi penyimpanan</string>
|
||||
<string name="tv_no_file_picker">Silakan instal aplikasi file manajer untuk memilih file</string>
|
||||
<string name="tv_add_tunnel_get_started">Tambahkan tunnel untuk memulai</string>
|
||||
<string name="disable_config_export_title">Nonaktifkan ekspor konfigurasi</string>
|
||||
<string name="disable_config_export_description">Menonaktifkan ekspor konfigurasi akan membuat kunci pribadi sulit diakses</string>
|
||||
<string name="dns_servers">Server DNS</string>
|
||||
<string name="edit">Edit</string>
|
||||
<string name="endpoint">Endpoint</string>
|
||||
@@ -199,7 +205,6 @@
|
||||
<string name="type_name_go_userspace">Ke userspace</string>
|
||||
<string name="type_name_kernel_module">Modul kernel</string>
|
||||
<string name="unknown_error">Eror tidak diketahui</string>
|
||||
<string name="version_summary">%1$s backend v%2$s</string>
|
||||
<string name="version_summary_checking">Mengecek versi backend %s</string>
|
||||
<string name="version_summary_unknown">Versi %s Tidak diketahui</string>
|
||||
<string name="version_title">WireGuard untuk Android v%s</string>
|
||||
@@ -63,7 +63,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">Le applicazioni esterne possono attivare tunnel (avanzato)</string>
|
||||
<string name="allow_remote_control_intents_title">Consenti applicazioni di controllo remoto</string>
|
||||
<string name="allowed_ips">IP consentiti</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%2$s di %1$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s in %2$s</string>
|
||||
@@ -97,10 +96,17 @@
|
||||
<string name="create_output_dir_error">Impossibile creare la cartella di output</string>
|
||||
<string name="create_temp_dir_error">Impossibile creare la cartella locale temporanea</string>
|
||||
<string name="create_tunnel">Crea tunnel</string>
|
||||
<string name="copied_to_clipboard">%s copiato negli appunti</string>
|
||||
<string name="dark_theme_summary_off">Stai usando il tema chiaro (giorno)</string>
|
||||
<string name="dark_theme_summary_on">Stai usando il tema scuro (notte)</string>
|
||||
<string name="dark_theme_title">Usa tema scuro</string>
|
||||
<string name="delete">Elimina</string>
|
||||
<string name="tv_delete">Seleziona il tunnel da eliminare</string>
|
||||
<string name="tv_select_a_storage_drive">Seleziona un\'unità di archiviazione</string>
|
||||
<string name="tv_no_file_picker">Installa un\'utilità di gestione file per sfogliare i file</string>
|
||||
<string name="tv_add_tunnel_get_started">Aggiungi un tunnel per iniziare</string>
|
||||
<string name="disable_config_export_title">Disattiva esportazione config</string>
|
||||
<string name="disable_config_export_description">Disabilitare l\'esportazione della configurazione rende le chiavi private meno accessibili</string>
|
||||
<string name="dns_servers">Server DNS</string>
|
||||
<string name="edit">Modifica</string>
|
||||
<string name="endpoint">Endpoint</string>
|
||||
@@ -212,7 +218,6 @@
|
||||
<string name="type_name_go_userspace">Spazio utente Go</string>
|
||||
<string name="type_name_kernel_module">Modulo kernel</string>
|
||||
<string name="unknown_error">Errore sconosciuto</string>
|
||||
<string name="version_summary">Backend %1$s v%2$s</string>
|
||||
<string name="version_summary_checking">Controllo versione backend %s</string>
|
||||
<string name="version_summary_unknown">Versione %s sconosciuta</string>
|
||||
<string name="version_title">WireGuard per Android v%s</string>
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">外部アプリにトンネルの制御を許可(上級者向け)</string>
|
||||
<string name="allow_remote_control_intents_title">外部アプリからの制御</string>
|
||||
<string name="allowed_ips">Allowed IPs</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s の %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%2$s 中の %1$s</string>
|
||||
@@ -84,10 +83,17 @@
|
||||
<string name="create_output_dir_error">出力ディレクトリを作成できません</string>
|
||||
<string name="create_temp_dir_error">ローカルに一時ディレクトリを作成できません</string>
|
||||
<string name="create_tunnel">トンネルを作成</string>
|
||||
<string name="copied_to_clipboard">%s をクリップボードにコピーしました</string>
|
||||
<string name="dark_theme_summary_off">ライトテーマを使用中</string>
|
||||
<string name="dark_theme_summary_on">ダークテーマを使用中</string>
|
||||
<string name="dark_theme_title">ダークテーマを使用する</string>
|
||||
<string name="delete">削除</string>
|
||||
<string name="tv_delete">削除するトンネルを選択</string>
|
||||
<string name="tv_select_a_storage_drive">ストレージを選択</string>
|
||||
<string name="tv_no_file_picker">ファイルを参照するにはファイル管理アプリをインストールしてください</string>
|
||||
<string name="tv_add_tunnel_get_started">トンネルを追加して開始する</string>
|
||||
<string name="disable_config_export_title">設定のエクスポートを無効にする</string>
|
||||
<string name="disable_config_export_description">設定のエクスポートを無効にすると、秘密鍵にアクセスしにくくなります</string>
|
||||
<string name="dns_servers">DNS サーバ</string>
|
||||
<string name="edit">編集</string>
|
||||
<string name="endpoint">エンドポイント</string>
|
||||
@@ -199,7 +205,6 @@
|
||||
<string name="type_name_go_userspace">Go ユーザースペース</string>
|
||||
<string name="type_name_kernel_module">カーネルモジュール</string>
|
||||
<string name="unknown_error">未知のエラー</string>
|
||||
<string name="version_summary">%1$s backend v%2$s</string>
|
||||
<string name="version_summary_checking">%s バックエンドのバージョンを確認中</string>
|
||||
<string name="version_summary_unknown">未知の %s バージョン</string>
|
||||
<string name="version_title">WireGuard for Android v%s</string>
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="other">%d개의 터널을 삭제할 수 없습니다: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="other">%d개의 터널을 성공적으로 삭제했습니다</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="other">%d개의 터널이 선택되었습니다</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="other">%2$d개의 터널 중에서 %1$d개를 가져왔습니다</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="other">%d개의 터널을 가져왔습니다</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="other">%d개의 앱이 제외됨</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="other">%d개의 앱이 포함됨</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="other">%d개 제외됨</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="other">%d개 포함됨</item>
|
||||
</plurals>
|
||||
<string name="all_applications">모든 앱</string>
|
||||
<string name="exclude_from_tunnel">제외</string>
|
||||
<string name="include_in_tunnel">이것만 포함</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="other">%d개의 앱을 포함함</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="other">%d개의 앱을 제외함</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="other">%d초 마다</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="other">초</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">모든 앱을 사용</string>
|
||||
<string name="add_peer">피어 추가</string>
|
||||
<string name="addresses">주소</string>
|
||||
<string name="applications">앱</string>
|
||||
<string name="allow_remote_control_intents_summary_off">다른 앱이 터널을 조작할 수 없음 (권장)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">다른 앱이 터널을 조작할 수 있음 (상급자용)</string>
|
||||
<string name="allow_remote_control_intents_title">앱을 원격으로 조정할 수 있음</string>
|
||||
<string name="allowed_ips">허용된 IP</string>
|
||||
<string name="bad_config_context">%1$s의 %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%2$s의 %1$s</string>
|
||||
<string name="bad_config_explanation_pka">: 65535 이하의 양수여야 합니다</string>
|
||||
<string name="bad_config_explanation_positive_number">: 양수여야 합니다</string>
|
||||
<string name="bad_config_explanation_udp_port">: 올바른 UDP 포트가 아닙니다</string>
|
||||
<string name="bad_config_reason_invalid_key">잘못된 키</string>
|
||||
<string name="bad_config_reason_invalid_number">잘못된 숫자</string>
|
||||
<string name="bad_config_reason_invalid_value">잘못된 값</string>
|
||||
<string name="bad_config_reason_missing_attribute">누락된 특성</string>
|
||||
<string name="bad_config_reason_missing_section">누락된 섹션</string>
|
||||
<string name="bad_config_reason_syntax_error">구문 오류</string>
|
||||
<string name="bad_config_reason_unknown_attribute">알 수 없는 속성</string>
|
||||
<string name="bad_config_reason_unknown_section">알수 없는 섹션</string>
|
||||
<string name="bad_config_reason_value_out_of_range">범위를 벗어난 값</string>
|
||||
<string name="bad_extension_error">.conf 또는 .zip 파일이어야 함</string>
|
||||
<string name="cancel">취소</string>
|
||||
<string name="config_delete_error">설정파일 %s를 삭제할 수 없음</string>
|
||||
<string name="config_exists_error">\"%s\"에 대한 설정이 이미 존재함</string>
|
||||
<string name="config_file_exists_error">\"%s\" 설정 파일이 이미 존재함</string>
|
||||
<string name="config_not_found_error">설정파일 \"%s\"를 찾을 수 없음</string>
|
||||
<string name="config_rename_error">설정파일 \"%s\"의 이름을 변경할 수 없음</string>
|
||||
<string name="config_save_error">\"%1$s\"에 대한 설정을 저장할 수 없음: %2$s</string>
|
||||
<string name="config_save_success">\"%s\"에 대한 설정을 성공적으로 저장했습니다</string>
|
||||
<string name="create_activity_title">WireGuard 터널 만들기</string>
|
||||
<string name="create_bin_dir_error">로컬 바이너리 디렉터리를 만들 수 없음</string>
|
||||
<string name="create_downloads_file_error">다운로드 디렉토리에 파일을 만들 수 없음</string>
|
||||
<string name="create_empty">직접 만들기</string>
|
||||
<string name="create_from_file">파일 또는 압축파일에서 불러오기</string>
|
||||
<string name="create_from_qr_code">QR코드 스캔</string>
|
||||
<string name="create_output_dir_error">출력 디렉토리를 만들 수 없음</string>
|
||||
<string name="create_temp_dir_error">로컬 임시 디렉토리를 만들 수 없음</string>
|
||||
<string name="create_tunnel">터널 만들기</string>
|
||||
<string name="copied_to_clipboard">%s가 클립보드에 복사됨</string>
|
||||
<string name="dark_theme_summary_off">밝은(주간) 테마 사용 중</string>
|
||||
<string name="dark_theme_summary_on">다크(야간) 테마 사용 중</string>
|
||||
<string name="dark_theme_title">다크 테마 사용하기</string>
|
||||
<string name="delete">삭제</string>
|
||||
<string name="tv_delete">삭제할 터널을 선택</string>
|
||||
<string name="tv_select_a_storage_drive">저장소를 선택</string>
|
||||
<string name="tv_no_file_picker">파일을 찾는 데 사용할 파일 관리자를 설치하시오</string>
|
||||
<string name="tv_add_tunnel_get_started">시작하려면 터널을 추가하시오</string>
|
||||
<string name="disable_config_export_title">설정 내보내기 기능을 중지</string>
|
||||
<string name="disable_config_export_description">설정 내보내기 기능을 중지하면 개인키 유출을 줄일 수 있음</string>
|
||||
<string name="dns_servers">DNS 서버</string>
|
||||
<string name="edit"> 수정</string>
|
||||
<string name="endpoint">엔드포인트</string>
|
||||
<string name="error_down">터널 중단 시 오류 발생: %s</string>
|
||||
<string name="error_fetching_apps">앱 목록을 받는 도중 오류 발생: %s</string>
|
||||
<string name="error_root">관리자 권한이 필요함</string>
|
||||
<string name="error_up">터널을 시작 시 오류 발생: %s</string>
|
||||
<string name="exclude_private_ips">사설 IP 제외</string>
|
||||
<string name="generate_new_private_key">새로운 개인 키 만들기</string>
|
||||
<string name="generic_error">알려지지 않은 오류: “%s”</string>
|
||||
<string name="hint_automatic">(자동)</string>
|
||||
<string name="hint_generated">(생성됨)</string>
|
||||
<string name="hint_optional">(선택사항)</string>
|
||||
<string name="hint_optional_discouraged">(선택사항, 권장되지 않음)</string>
|
||||
<string name="hint_random">(무작위)</string>
|
||||
<string name="illegal_filename_error">잘못된 파일 이름: \"%s\"</string>
|
||||
<string name="import_error">터널을 불러올 수 없음: %s</string>
|
||||
<string name="import_from_qr_code">QR코드에서 터널 불러오기</string>
|
||||
<string name="import_success">\"%s\" 불러옴</string>
|
||||
<string name="interface_title">인터페이스</string>
|
||||
<string name="key_contents_error">키에서 잘못된 글자 발견</string>
|
||||
<string name="key_length_error">잘못된 키 길이</string>
|
||||
<string name="key_length_explanation_base64">: WireGuard의 base64 키는 반드시 44 글자(32 바이트)임</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard의 키는 반드시 32 바이트임</string>
|
||||
<string name="key_length_explanation_hex">: WireGuard의 16진수 키는 반드시 64 글자(32 바이트)임</string>
|
||||
<string name="listen_port">수신 대기 포트</string>
|
||||
<string name="log_export_error">로그를 내보낼 수 없음: %s</string>
|
||||
<string name="log_export_subject">WireGuard 안드로이드 로그 파일</string>
|
||||
<string name="log_export_success">“%s”에 저장됨</string>
|
||||
<string name="log_export_title">로그 파일 내보내기</string>
|
||||
<string name="log_saver_activity_label">로그를 저장하기</string>
|
||||
<string name="log_viewer_pref_summary">로그는 디버깅에 활용됨</string>
|
||||
<string name="log_viewer_pref_title">앱 로그 보기</string>
|
||||
<string name="log_viewer_title">로그</string>
|
||||
<string name="logcat_error">logcat을 실행할 수 없음: </string>
|
||||
<string name="module_disabler_disabled_summary">아직 실험중이 커널 모듈을 사용하면 성능이 향상될 수 있음</string>
|
||||
<string name="module_disabler_disabled_title">커널 모듈 백엔드 활성화하기</string>
|
||||
<string name="module_disabler_enabled_summary">사용자공간 백엔드를 사용하면 느리지만 안정성이 좋아짐</string>
|
||||
<string name="module_disabler_enabled_title">커널 모듈 백엔드를 비활성화하기</string>
|
||||
<string name="module_installer_error">문제가 발생했습니다. 다시 시도하십시오</string>
|
||||
<string name="module_installer_initial">아직 실험중이 커널 모듈을 사용하면 성능이 향상될 수 있음</string>
|
||||
<string name="module_installer_not_found">이 기기에서 사용가능한 모듈이 없음</string>
|
||||
<string name="module_installer_title">커널 모듈을 다운로드하고 설치하기</string>
|
||||
<string name="module_installer_working">다운로드 및 설치 중…</string>
|
||||
<string name="module_version_error">커널 모듈 버전을 인식할 수 없음</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">한 터널을 켜면 다른 터널은 꺼짐</string>
|
||||
<string name="multiple_tunnels_summary_on">여러 터널이 동시에 켜질 수 있음</string>
|
||||
<string name="multiple_tunnels_title">여러 터널을 동시에 사용하기</string>
|
||||
<string name="name">이름</string>
|
||||
<string name="no_config_error">아무 설정 없이 터널을 시작할 수 없음</string>
|
||||
<string name="no_configs_error">설정을 찾을 수 없음</string>
|
||||
<string name="no_tunnels_error">터널이 존재하지 않음</string>
|
||||
<string name="parse_error_generic">문자열</string>
|
||||
<string name="parse_error_inet_address">IP 주소</string>
|
||||
<string name="parse_error_inet_endpoint">엔드포인트</string>
|
||||
<string name="parse_error_inet_network">IP 네트워크</string>
|
||||
<string name="parse_error_integer">횟수</string>
|
||||
<string name="parse_error_reason">%1$s을 파싱할 수 없음: “%2$s”</string>
|
||||
<string name="peer">피어</string>
|
||||
<string name="permission_description">마음대로 터널을 활성화 및 비활성화하는 등 WireGuard 터널을 제어하면, 인터넷 트래픽을 잘못 전달할 위험이 있음</string>
|
||||
<string name="permission_label">WireGuard 터널 제어</string>
|
||||
<string name="persistent_keepalive">Persistent keepalive</string>
|
||||
<string name="pre_shared_key">사전 공유 키</string>
|
||||
<string name="pre_shared_key_enabled">활성화됨</string>
|
||||
<string name="private_key">개인 키</string>
|
||||
<string name="public_key">공개 키</string>
|
||||
<string name="qr_code_hint">팁: `qrencode -t ansiutf8 < tunnel.conf` 로 생성가능함.</string>
|
||||
<string name="restore_on_boot_summary_off">부팅 시 활성화된 터널들을 켜지 않음</string>
|
||||
<string name="restore_on_boot_summary_on">부팅 시 활성화된 터널들을 켬</string>
|
||||
<string name="restore_on_boot_title">부트 후 복구</string>
|
||||
<string name="save">저장</string>
|
||||
<string name="select_all">모두 선택</string>
|
||||
<string name="settings">설정</string>
|
||||
<string name="shell_exit_status_read_error">쉘은 종료 상태를 읽을 수 없음</string>
|
||||
<string name="shell_marker_count_error">쉘은 4 개의 마커를 받아야 하지만 %d 개만 받음</string>
|
||||
<string name="shell_start_error">쉘이 실행 실패함: %d</string>
|
||||
<string name="success_application_will_restart">성공. 앱이 곧 재시작됨…</string>
|
||||
<string name="toggle_all">모두 반전</string>
|
||||
<string name="toggle_error">WireGuard 터널 토글링 오류: %s</string>
|
||||
<string name="tools_installer_already">wg와 wg-quick 모두 이미 설치되었음</string>
|
||||
<string name="tools_installer_failure">커맨드라인 도구 설치 불가 (루트 권한 필요)</string>
|
||||
<string name="tools_installer_initial">스크립팅에 필요한 선택적 도구 설치하기</string>
|
||||
<string name="tools_installer_initial_magisk">Magisk 모듈로 설치할 때의 스크립팅에 필요한 선택적 도구 설치하기</string>
|
||||
<string name="tools_installer_initial_system">시스템 파티션에 설치할 때의 스크립팅에 필요한 선택적 도구 설치하기</string>
|
||||
<string name="tools_installer_success_magisk">wg와 wg-quick가 Magisk 모듈로 설치됨 (재부팅 필요)</string>
|
||||
<string name="tools_installer_success_system">wg와 wg-quick가 시스템 파티션에 설치됨</string>
|
||||
<string name="tools_installer_title">커맨드라인 도구 설치하기</string>
|
||||
<string name="tools_installer_working">wg와 wg-quick 설치하는 중</string>
|
||||
<string name="tools_unavailable_error">필요한 도구를 사용할 수 없음</string>
|
||||
<string name="transfer">전송</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">수신: %1$s, 송신: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">tun 장치를 만들 수 없음</string>
|
||||
<string name="tunnel_config_error">터널을 설정할 수 없음 (wg-quick가 %d을 반환함)</string>
|
||||
<string name="tunnel_create_error">터널을 생성할 수 없음: %s</string>
|
||||
<string name="tunnel_create_success">터널 \"%s\"을 성공적으로 생성함</string>
|
||||
<string name="tunnel_error_already_exists">터널 \"%s\"가 이미 존재함</string>
|
||||
<string name="tunnel_error_invalid_name">잘못된 이름</string>
|
||||
<string name="tunnel_list_placeholder">파란 단추를 눌러 터널을 추가하시오</string>
|
||||
<string name="tunnel_name">터널 이름</string>
|
||||
<string name="tunnel_on_error">터널을 켤 수 없음 (wgTurnOn이 %d를 반환함)</string>
|
||||
<string name="tunnel_rename_error">터널 이름을 바꿀 수 없음: %s</string>
|
||||
<string name="tunnel_rename_success">터널 이름을 \"%s\"로 변경 성공</string>
|
||||
<string name="type_name_go_userspace">Go userspace</string>
|
||||
<string name="type_name_kernel_module">커널 모듈</string>
|
||||
<string name="unknown_error">알 수 없는 오류</string>
|
||||
<string name="version_summary_checking">%s 백엔드 버전 확인 중</string>
|
||||
<string name="version_summary_unknown">알 수 없는 버전: %s</string>
|
||||
<string name="version_title">WireGuard for 안드로이드 v%s</string>
|
||||
<string name="vpn_not_authorized_error">VPN 서비스는 사용자에 의해 승인되지 않았음</string>
|
||||
<string name="vpn_start_error">안드로이드 VPN 서비스를 시작할 수 없음</string>
|
||||
<string name="zip_export_error">터널을 내보낼 수 없음: %s</string>
|
||||
<string name="zip_export_success">“%s”에 저장됨</string>
|
||||
<string name="zip_export_summary">Zip 파일은 다운로드 폴더에 저장됨</string>
|
||||
<string name="zip_export_title">터널들을 Zip 파일에 내보내기</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">터널들을 내보내기 위한 인증과정</string>
|
||||
<string name="biometric_prompt_private_key_title">개인 키를 보기 위한 인증과정</string>
|
||||
<string name="biometric_auth_error">인증 실패</string>
|
||||
<string name="biometric_auth_error_reason">인증 실패: %s</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">Kan %d tunnel niet verwijderen: %s</item>
|
||||
<item quantity="other">Kan %d tunnels niet verwijderen: %s</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
@@ -4,9 +4,49 @@
|
||||
<item quantity="one">Kan ikke slette %d tunnel %s</item>
|
||||
<item quantity="other">Kan ikke slette %d tunneler %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">Slettet %d tunnel</item>
|
||||
<item quantity="other">Slettet %d tunneler</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d tunnel valgt</item>
|
||||
<item quantity="other">%d tunneler valgt</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">Importerte %1$d av %2$d tunneler</item>
|
||||
<item quantity="other">Importerte %1$d av %2$d tunneler</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">Importerte %d tunnel</item>
|
||||
<item quantity="other">Importerte %d tunneler</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d ekskludert program</item>
|
||||
<item quantity="other">%d ekskluderte apper</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d inkludert app</item>
|
||||
<item quantity="other">%d inkluderte apper</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d ekskludert</item>
|
||||
<item quantity="other">%d ekskluderte</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d inkludert</item>
|
||||
<item quantity="other">%d inkluderte</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Alle applikasjoner</string>
|
||||
<string name="exclude_from_tunnel">Ekskluder</string>
|
||||
<string name="include_in_tunnel">Inkluder kun</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Inkluder %d app</item>
|
||||
<item quantity="other">Inkluder %d apper</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Ekskluder %d app</item>
|
||||
<item quantity="other">Ekskluder %d apper</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">hvert %d sekund</item>
|
||||
<item quantity="other">hvert %d sekund</item>
|
||||
@@ -19,5 +59,176 @@
|
||||
<string name="add_peer">Legg til peer</string>
|
||||
<string name="addresses">Adresser</string>
|
||||
<string name="applications">Applikasjoner</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Fjernstyrte apper kan ikke toggle tunneler (anbefalt)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Fjernstyrte apper toggle tunneler (avansert)</string>
|
||||
<string name="allow_remote_control_intents_title">Tillat fjernstyrte apper</string>
|
||||
<string name="allowed_ips">Tillatte IP-adresser</string>
|
||||
<string name="bad_config_context">%1$s sin %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s i %2$s</string>
|
||||
<string name="bad_config_explanation_pka">: Må være positiv og ikke mer enn 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Må være positiv</string>
|
||||
<string name="bad_config_explanation_udp_port">: Må være et gyldig UDP portnummer</string>
|
||||
<string name="bad_config_reason_invalid_key">Ugyldig tegn</string>
|
||||
<string name="bad_config_reason_invalid_number">Ugyldig tall</string>
|
||||
<string name="bad_config_reason_invalid_value">Ugyldig verdi</string>
|
||||
<string name="bad_config_reason_missing_attribute">Manglende attributt</string>
|
||||
<string name="bad_config_reason_missing_section">Manglende seksjon</string>
|
||||
<string name="bad_config_reason_syntax_error">Syntaksfeil</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Ukjent attributt</string>
|
||||
<string name="bad_config_reason_unknown_section">Ukjent seksjon</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Verdien er utenfor gyldig område</string>
|
||||
<string name="bad_extension_error">Filen må være .conf eller .zip</string>
|
||||
<string name="cancel">Avbryt</string>
|
||||
<string name="config_delete_error">Kan ikke slette konfigurasjonsfilen %s</string>
|
||||
<string name="config_exists_error">Konfigurasjon for «%s» finnes allerede</string>
|
||||
<string name="config_file_exists_error">Konfigurasjonsfil «%s» finnes allerede</string>
|
||||
<string name="config_not_found_error">Konfigurasjonsfil «%s» ble ikke funnet</string>
|
||||
<string name="config_rename_error">Kan ikke endre navn på konfigurasjonsfilen «%s»</string>
|
||||
<string name="config_save_error">Kan ikke lagre konfigurasjonen for “%1$s”: %2$s</string>
|
||||
<string name="config_save_success">Vellykket lagring av konfigurasjon for «%s»</string>
|
||||
<string name="create_activity_title">Opprett WireGuard tunnel</string>
|
||||
<string name="create_bin_dir_error">Kan ikke opprette lokal binærmappe</string>
|
||||
<string name="create_downloads_file_error">Kan ikke opprette fil i nedlastingsmappen</string>
|
||||
<string name="create_empty">Lag fra begynnelsen</string>
|
||||
<string name="create_from_file">Importer fra fil eller arkiv</string>
|
||||
<string name="create_from_qr_code">Skann QR-kode</string>
|
||||
<string name="create_output_dir_error">Kan ikke opprette utdata-katalog</string>
|
||||
<string name="create_temp_dir_error">Kan ikke opprette lokal, midlertidig mappe</string>
|
||||
<string name="create_tunnel">Opprett tunnel</string>
|
||||
<string name="copied_to_clipboard">%s kopiert til utklippstavlen</string>
|
||||
<string name="dark_theme_summary_off">Bruker nå lyst (dag) tema</string>
|
||||
<string name="dark_theme_summary_on">Bruker nå mørkt (natt) tema</string>
|
||||
<string name="dark_theme_title">Bruk mørkt tema</string>
|
||||
<string name="delete">Slett</string>
|
||||
<string name="tv_delete">Velg tunnel som skal slettes</string>
|
||||
<string name="tv_select_a_storage_drive">Velg en lagringsenhet</string>
|
||||
<string name="tv_no_file_picker">Vennligst installer et filhåndteringsverktøy for å bla i filer</string>
|
||||
<string name="tv_add_tunnel_get_started">Opprett en ny tunnel for å komme i gang</string>
|
||||
<string name="disable_config_export_title">Deaktiver eksport av konfigurasjon</string>
|
||||
<string name="disable_config_export_description">Deaktivering av konfigurasjonseksport gjør private nøkler mindre tilgjengelig</string>
|
||||
<string name="dns_servers">DNS tjenere</string>
|
||||
<string name="edit">Rediger</string>
|
||||
<string name="endpoint">Endepunkt</string>
|
||||
<string name="error_down">Feil når tunnel skulle tas ned: %s</string>
|
||||
<string name="error_fetching_apps">Feil ved henting av applikasjonsliste: %s</string>
|
||||
<string name="error_root">Vennligst få root-tilgang og prøv igjen</string>
|
||||
<string name="error_up">Feil når tunnel skulle tas opp: %s</string>
|
||||
<string name="exclude_private_ips">Utelukk private IP-adresser</string>
|
||||
<string name="generate_new_private_key">Lag ny privat nøkkel</string>
|
||||
<string name="generic_error">Ukjent «%s» feil</string>
|
||||
<string name="hint_automatic">(automatisk)</string>
|
||||
<string name="hint_generated">(generert)</string>
|
||||
<string name="hint_optional">(valgfritt)</string>
|
||||
<string name="hint_optional_discouraged">(valgfritt, anbefales ikke)</string>
|
||||
<string name="hint_random">(tilfeldig)</string>
|
||||
<string name="illegal_filename_error">Ugyldig filnavn «%s»</string>
|
||||
<string name="import_error">Kan ikke importere tunnel: %s</string>
|
||||
<string name="import_from_qr_code">Importer tunnel fra QR-kode</string>
|
||||
<string name="import_success">Importerte «%s»</string>
|
||||
<string name="interface_title">Grensesnitt</string>
|
||||
<string name="key_contents_error">Ugyldig tegn i nøkkel</string>
|
||||
<string name="key_length_error">Ugyldig nøkkellengde</string>
|
||||
<string name="key_length_explanation_base64">: WireGuard base64-nøkler må være 44 tegn (32 byte)</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard nøkler må være 32 byte</string>
|
||||
<string name="key_length_explanation_hex">: WireGuard hex-nøkler må være 64 tegn (32 byte)</string>
|
||||
<string name="listen_port">Lytt på port</string>
|
||||
<string name="log_export_error">Kan ikke eksportere logg: %s</string>
|
||||
<string name="log_export_subject">WireGuard Android loggfil</string>
|
||||
<string name="log_export_success">Lagret til «%s»</string>
|
||||
<string name="log_export_title">Eksporter loggfil</string>
|
||||
<string name="log_saver_activity_label">Lagre logg</string>
|
||||
<string name="log_viewer_pref_summary">Logger kan være til hjelp med feilsøking</string>
|
||||
<string name="log_viewer_pref_title">Vis programlogg</string>
|
||||
<string name="log_viewer_title">Logg</string>
|
||||
<string name="logcat_error">Kan ikke kjøre logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">Den eksperimentelle kjernemodulen kan gi bedre ytelse</string>
|
||||
<string name="module_disabler_disabled_title">Aktiver backend for kjerne-modul</string>
|
||||
<string name="module_disabler_enabled_summary">Backend i userspace er litt tregere men kan gi bedre stabilitet</string>
|
||||
<string name="module_disabler_enabled_title">Deaktiver backend for kjerne-modul</string>
|
||||
<string name="module_installer_error">Noe gikk galt. Vennligst prøv igjen</string>
|
||||
<string name="module_installer_initial">Den eksperimentelle kjernemodulen kan gi bedre ytelse</string>
|
||||
<string name="module_installer_not_found">Ingen moduler er tilgjengelige for din enhet</string>
|
||||
<string name="module_installer_title">Last ned og installer kjernelenmodul</string>
|
||||
<string name="module_installer_working">Laster ned og installerer…</string>
|
||||
<string name="module_version_error">Kunne ikke finne versjon av kjerne-modulen</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Når en tunnel slås på vil andre slås av</string>
|
||||
<string name="multiple_tunnels_summary_on">Flere tunneler kan være aktivert samtidig</string>
|
||||
<string name="multiple_tunnels_title">Tillat flere samtidige tunneler</string>
|
||||
<string name="name">Navn</string>
|
||||
<string name="no_config_error">Prøver å få opp en tunnel uten konfigurasjon</string>
|
||||
<string name="no_configs_error">Ingen konfigurasjoner funnet</string>
|
||||
<string name="no_tunnels_error">Ingen tunneler er opprettet</string>
|
||||
<string name="parse_error_generic">streng</string>
|
||||
<string name="parse_error_inet_address">IP-adresse</string>
|
||||
<string name="parse_error_inet_endpoint">endepunkt</string>
|
||||
<string name="parse_error_inet_network">IP nettverk</string>
|
||||
<string name="parse_error_integer">nummer</string>
|
||||
<string name="parse_error_reason">Kan ikke tolke %1$s “%2$s”</string>
|
||||
<string name="peer">Partner</string>
|
||||
<string name="permission_description">kontroller WireGuard-tunneler, aktiver og deaktiver dem. Kan potensielt ta ned internett-tilgangen</string>
|
||||
<string name="permission_label">kontroller WireGuard-tunneler</string>
|
||||
<string name="persistent_keepalive">Send keepalive-pakker</string>
|
||||
<string name="pre_shared_key">Forhåndsdelt nøkkel</string>
|
||||
<string name="pre_shared_key_enabled">aktivert</string>
|
||||
<string name="private_key">Privat Nøkkel</string>
|
||||
<string name="public_key">Offentlig nøkkel</string>
|
||||
<string name="qr_code_hint">Tips: generer med `qrencode -t ansiutf8 < tunnel.conf`.</string>
|
||||
<string name="restore_on_boot_summary_off">Vil ikke ta opp aktive tunneler ved oppstart</string>
|
||||
<string name="restore_on_boot_summary_on">Vil ta opp aktive tunneler ved oppstart</string>
|
||||
<string name="restore_on_boot_title">Gjenopprett ved oppstart</string>
|
||||
<string name="save">Lagre</string>
|
||||
<string name="select_all">Velg alle</string>
|
||||
<string name="settings">Innstillinger</string>
|
||||
<string name="shell_exit_status_read_error">Skallet kan ikke lese avslutningsstatus</string>
|
||||
<string name="shell_marker_count_error">Skallet forventet 4 markører, mottok %d</string>
|
||||
<string name="shell_start_error">Skallet klarte ikke å starte: %d</string>
|
||||
<string name="success_application_will_restart">Suksess. Programmet vil nå starte på nytt…</string>
|
||||
<string name="toggle_all">Toggle alle</string>
|
||||
<string name="toggle_error">Feil under toggling av WireGuard tunnel: %s</string>
|
||||
<string name="tools_installer_already">wg og wg-quick er allerede installert</string>
|
||||
<string name="tools_installer_failure">Kunne ikke installere kommandolinjeverktøy (ingen root-tilgang?)</string>
|
||||
<string name="tools_installer_initial">Installer valgfrie verktøy for skripting</string>
|
||||
<string name="tools_installer_initial_magisk">Installer valgfrie verktøy for skripting som Magisk modul</string>
|
||||
<string name="tools_installer_initial_system">Installer valgfrie verktøy for skripting på systempartisjonen</string>
|
||||
<string name="tools_installer_success_magisk">wg og wg-quick installert som en Magisk modul (omstart kreves)</string>
|
||||
<string name="tools_installer_success_system">wg og wg-quick installert på systempartisjonen</string>
|
||||
<string name="tools_installer_title">Installer kommandolinjeverktøy</string>
|
||||
<string name="tools_installer_working">Installerer wg og wg-quick</string>
|
||||
<string name="tools_unavailable_error">Påkrevde verktøy er ikke tilgjengelig</string>
|
||||
<string name="transfer">Overfør</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">Kan ikke opprette tun enhetsfil</string>
|
||||
<string name="tunnel_config_error">Kunne ikke konfigurere tunnel (wg-quick returnerte %d)</string>
|
||||
<string name="tunnel_create_error">Kan ikke opprette tunnel: %s</string>
|
||||
<string name="tunnel_create_success">Opprettet tunnelen «%s»</string>
|
||||
<string name="tunnel_error_already_exists">Tunnel «%s» finnes allerede</string>
|
||||
<string name="tunnel_error_invalid_name">Ugyldig navn</string>
|
||||
<string name="tunnel_list_placeholder">Opprett ny tunnel med den blå knappen</string>
|
||||
<string name="tunnel_name">Tunnelnavn</string>
|
||||
<string name="tunnel_on_error">Kan ikke slå på tunnel (wgTurnOn returnerte %d)</string>
|
||||
<string name="tunnel_rename_error">Kan ikke endre navn på tunnel: %s</string>
|
||||
<string name="tunnel_rename_success">Endret navn på tunnelen til «%s»</string>
|
||||
<string name="type_name_go_userspace">Bruk userspace</string>
|
||||
<string name="type_name_kernel_module">Kjernemodul</string>
|
||||
<string name="unknown_error">Ukjent feil</string>
|
||||
<string name="version_summary_checking">Sjekker %s backend versjon</string>
|
||||
<string name="version_summary_unknown">Ukjent %s versjon</string>
|
||||
<string name="version_title">WireGuard for Android v%s</string>
|
||||
<string name="vpn_not_authorized_error">VPN-tjeneste er ikke autorisert av bruker</string>
|
||||
<string name="vpn_start_error">Kan ikke starte Android VPN-tjenesten</string>
|
||||
<string name="zip_export_error">Kan ikke eksportere tunneler: %s</string>
|
||||
<string name="zip_export_success">Lagret til «%s»</string>
|
||||
<string name="zip_export_summary">Zip-filen vil bli lagret i nedlastingsmappen</string>
|
||||
<string name="zip_export_title">Eksporter tunneler til zip-fil</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Autentiser for å eksportere tunneler</string>
|
||||
<string name="biometric_prompt_private_key_title">Autentiser for å vise privatnøkkel</string>
|
||||
<string name="biometric_auth_error">Autentiseringsfeil</string>
|
||||
<string name="biometric_auth_error_reason">Autentiseringsfeil: %s</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">%d ਟਨਲ ਹਟਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s</item>
|
||||
<item quantity="other">%d ਟਨਲਾਂ ਹਟਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">%d ਟਨਲ ਕਾਮਯਾਬੀ ਨਾਲ ਹਟਾਈ</item>
|
||||
<item quantity="other">%d ਟਨਲਾਂ ਕਾਮਯਾਬੀ ਨਾਲ ਹਟਾਈਆਂ</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d ਟਨਲ ਚੁਣੀ</item>
|
||||
<item quantity="other">%d ਟਨਲਾਂ ਚੁਣੀਆਂ</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">%2$d ਟਨਲਾਂ ਵਿੱਚੋਂ %1$d ਇੰਪੋਰਟ ਕੀਤੀ</item>
|
||||
<item quantity="other">%2$d ਟਨਲਾਂ ਵਿੱਚੋਂ %1$d ਇੰਪੋਰਟ ਕੀਤੀਆਂ</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">%d ਟਨਲ ਇੰਪੋਰਟ ਕੀਤੀ</item>
|
||||
<item quantity="other">%d ਟਨਲਾਂ ਇੰਪੋਰਟ ਕੀਤੀਆਂ</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d ਅਲਹਿਦਾ ਕੀਤੀ ਐਪਲੀਕੇਸ਼ਨ</item>
|
||||
<item quantity="other">%d ਅਲਹਿਦਾ ਕੀਤੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d ਐਪਲੀਕੇਸ਼ਨ ਸਮੇਤ</item>
|
||||
<item quantity="other">%d ਐਪਲੀਕੇਸ਼ਨਾਂ ਸਮੇਤ</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d ਅਲਹਿਦਾ ਰੱਖਿਆ</item>
|
||||
<item quantity="other">%d ਅਲਹਿਦਾ ਰੱਖੇ</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d ਸਮੇਤ</item>
|
||||
<item quantity="other">%d ਸਮੇਤ</item>
|
||||
</plurals>
|
||||
<string name="all_applications">ਸਾਰੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ</string>
|
||||
<string name="exclude_from_tunnel">ਅਲਹਿਦਾ</string>
|
||||
<string name="include_in_tunnel">ਸਿਰਫ਼ ਸ਼ਾਮਲ</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">%d ਐਪ ਸ਼ਾਮਲ ਕਰੋ</item>
|
||||
<item quantity="other">%d ਐਪਾਂ ਸ਼ਾਮਲ ਕਰੋ</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">%d ਐਪ ਅਲਹਿਦਾ ਰੱਖੋ</item>
|
||||
<item quantity="other">%d ਐਪਾਂ ਅਲਹਿਦਾ ਰੱਖੋ</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">ਹਰ ਸਕਿੰਟ</item>
|
||||
<item quantity="other">ਹਰ %d ਸਕਿੰਟ</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">ਸਕਿੰਟ</item>
|
||||
<item quantity="other">ਸਕਿੰਟ</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">ਸਾਰੀਆਂ ਐਪਾਂ ਵਰਤੋਂ</string>
|
||||
<string name="add_peer">ਪੀਅਰ ਜੋੜੋ</string>
|
||||
<string name="addresses">ਸਿਰਨਾਵੇ</string>
|
||||
<string name="applications">ਐਪਲੀਕੇਸ਼ਨਾਂ</string>
|
||||
<string name="allow_remote_control_intents_summary_off">ਬਾਹਰੀ ਐਪਾਂ ਟਨਲਾਂ ਨੂੰ ਬਦਲ ਨਹੀਂ ਸਕਦੀਆਂ (ਸਿਫਾਰਸ਼ੀ)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">ਬਾਹਰੀ ਐਪਾਂ ਟਨਲਾਂ ਨੂੰ ਬਦਲ ਸਕਦੀਆਂ ਹਨ (ਤਕਨੀਕੀ)</string>
|
||||
<string name="allow_remote_control_intents_title">ਰਿਮੋਟ ਕੰਟਰੋਲ ਐਪਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ</string>
|
||||
<string name="allowed_ips">ਮਨਜ਼ੂਰ ਕੀਤੇ IP</string>
|
||||
<string name="bad_config_context">%1$s ਦੇ %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%2$s ਵਿੱਚ %1$s</string>
|
||||
<string name="bad_config_explanation_pka">: ਧਨਾਤਮਕ ਅਤੇ 65535 ਤੋਂ ਘੱਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ</string>
|
||||
<string name="bad_config_explanation_positive_number">: ਧਨਾਤਮਕ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ</string>
|
||||
<string name="bad_config_explanation_udp_port">: ਢੁੱਕਵਾਂ UDP ਪੋਰਟ ਨੰਬਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ</string>
|
||||
<string name="bad_config_reason_invalid_key">ਗ਼ੈਰਵਾਜਬ ਕੁੰਜੀ</string>
|
||||
<string name="bad_config_reason_invalid_number">ਗ਼ੈਰਵਾਜਬ ਨੰਬਰ</string>
|
||||
<string name="bad_config_reason_invalid_value">ਗ਼ੈਰਵਾਜਬ ਮੁੱਲ</string>
|
||||
<string name="bad_config_reason_missing_attribute">ਨਾ-ਮੌਜੂਦ ਗੁਣ</string>
|
||||
<string name="bad_config_reason_missing_section">ਨਾ-ਮੌਜੂਦ ਚੋਣ</string>
|
||||
<string name="bad_config_reason_syntax_error">ਸੰਟੈਕਸ ਗ਼ਲਤੀ</string>
|
||||
<string name="bad_config_reason_unknown_attribute">ਅਣਪਛਾਤਾ ਗੁਣ</string>
|
||||
<string name="bad_config_reason_unknown_section">ਅਣਪਛਾਤਾ ਭਾਗ</string>
|
||||
<string name="bad_config_reason_value_out_of_range">ਮੁੱਲ ਹੱਦ ਤੋਂ ਬਾਹਰ ਹੈ</string>
|
||||
<string name="bad_extension_error">ਫ਼ਾਇਲ .conf ਜਾਂ .zip ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ</string>
|
||||
<string name="cancel">ਰੱਦ ਕਰੋ</string>
|
||||
<string name="config_delete_error">ਸੰਰਚਨਾ ਫ਼ਾਇਲ %s ਹਟਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ</string>
|
||||
<string name="config_exists_error">“%s” ਲਈ ਸੰਰਚਨਾ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
|
||||
<string name="config_file_exists_error">ਸੰਰਚਨਾ ਫ਼ਾਇਲ “%s” ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
|
||||
<string name="config_not_found_error">ਸੰਰਚਨਾ ਫ਼ਾਇਲ “%s” ਨਹੀਂ ਲੱਭੀ</string>
|
||||
<string name="config_rename_error">ਸੰਰਚਨਾ ਫ਼ਾਇਲ “%s” ਦਾ ਨਾਂ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ</string>
|
||||
<string name="config_save_error"> “%1$s” ਲਈ ਸੰਰਚਨਾ ਫ਼ਾਇਲ ਸੰਭਾਲੀ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ: %2$s</string>
|
||||
<string name="config_save_success">“%s” ਲਈ ਸੰਰਚਨਾ ਕਾਮਯਾਬੀ ਨਾਲ ਸੰਭਾਲੀ ਗਈ ਹੈ</string>
|
||||
<string name="create_activity_title">ਵਾਇਰਗਾਰਡ ਟਨਲ ਬਣਾਓ</string>
|
||||
<string name="create_bin_dir_error">ਲੋਕਲ ਬਾਈਨਰੀ ਡਾਇਰੈਕਟਰੀ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ</string>
|
||||
<string name="create_downloads_file_error">ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਫ਼ਾਇਲ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ</string>
|
||||
<string name="create_empty">ਮੁੱਢ ਤੋਂ ਬਣਾਓ</string>
|
||||
<string name="create_from_file">ਫ਼ਾਇਲ ਜਾਂ ਅਕਾਇਵ ਤੋਂ ਦਰਾਮਦ ਕਰੋ</string>
|
||||
<string name="create_from_qr_code">QR ਕੋਡ ਤੋਂ ਸਕੈਨ ਕਰੋ</string>
|
||||
<string name="create_output_dir_error">ਆਉਟਪੁੱਟ ਡਾਇਰੈਕਟਰੀ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ</string>
|
||||
<string name="create_temp_dir_error">ਲੋਕਲ ਆਰਜ਼ੀ ਡਾਇਰੈਕਟਰੀ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ</string>
|
||||
<string name="create_tunnel">ਟਨਲ ਬਣਾਓ</string>
|
||||
<string name="copied_to_clipboard">%s ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕੀਤਾ</string>
|
||||
<string name="dark_theme_summary_off">ਇਸ ਵੇਲੇ ਹਲਕਾ (ਦਿਨ) ਥੀਮ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ</string>
|
||||
<string name="dark_theme_summary_on">ਇਸ ਵੇਲੇ ਗੂੜ੍ਹਾ (ਰਾਤ) ਥੀਮ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ</string>
|
||||
<string name="dark_theme_title">ਗੂੜ੍ਹਾ ਥੀਮ ਵਰਤੋਂ</string>
|
||||
<string name="delete">ਹਟਾਓ</string>
|
||||
<string name="tv_delete">ਹਟਾਉਣ ਲਈ ਟਨਲ ਚੁਣੋ</string>
|
||||
<string name="tv_select_a_storage_drive">ਸਟੋਰੇਜ਼ ਡਰਾਈਵ ਚੁਣੋ</string>
|
||||
<string name="tv_no_file_picker">ਫਾਇਲਾਂ ਬਰਾਊਜ਼ ਕਰਨ ਲਈ ਫਾਇਲ ਪਰਬੰਧਕੀ ਸਹੂਲਤ ਇੰਸਟਾਲ ਕਰੋ</string>
|
||||
<string name="tv_add_tunnel_get_started">ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਟਨਲ ਜੋੜੋ</string>
|
||||
<string name="disable_config_export_title">ਸੰਰਚਨਾ ਐਕਸਪੋਰਟ ਕਰਨ ਨੂੰ ਅਸਮਰੱਥ ਕਰੋ</string>
|
||||
<string name="disable_config_export_description">ਸੰਰਚਨਾ ਐਕਸਪੋਰਟ ਕਰਨ ਉੱਤੇ ਰੋਕ ਲਾਉਣ ਨਾਲ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀਆਂ ਲਈ ਪਹੁੰਚ ਘਟੇਗੀ</string>
|
||||
<string name="dns_servers">DNS ਸਰਵਰ</string>
|
||||
<string name="edit">ਸੋਧੋ</string>
|
||||
<string name="endpoint">ਐਂਡ-ਪੁਆਇੰਟ</string>
|
||||
<string name="error_down">ਟਨਲ ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਗ਼ਲਤੀ: %s</string>
|
||||
<string name="error_fetching_apps">ਐਪ ਸੂਚੀ ਲੈਣ ਦੌਰਾਨ ਗ਼ਲਤੀ: %s</string>
|
||||
<string name="error_root">ਰੂਟ ਪਹੁੰਚ ਲਵੋ ਅਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ</string>
|
||||
<string name="error_up">ਟਨਲ ਚਾਲੂ ਕਰਨ ਦੌਰਾਨ ਗ਼ਲਤੀ: %s</string>
|
||||
<string name="exclude_private_ips">ਪ੍ਰਾਈਵੇਟ IP ਅਲਹਿਦਾ ਰੱਖੋ</string>
|
||||
<string name="generate_new_private_key">ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਬਣਾਓ</string>
|
||||
<string name="generic_error">ਅਣਪਛਾਤੀ “%s” ਗਲਤੀ</string>
|
||||
<string name="hint_automatic">(ਆਟੋ)</string>
|
||||
<string name="hint_generated">(ਤਿਆਰ ਕੀਤਾ)</string>
|
||||
<string name="hint_optional">(ਚੋਣਵਾਂ)</string>
|
||||
<string name="hint_optional_discouraged">(ਚੋਣਵਾਂ, ਪਰ ਸਿਫਾਰਸ਼ੀ ਨਹੀਂ)</string>
|
||||
<string name="hint_random">(ਰਲਵਾਂ)</string>
|
||||
<string name="illegal_filename_error">ਗ਼ੈਰ-ਵਾਜਬ ਫ਼ਾਇਲ ਨਾਂ \"%s\"</string>
|
||||
<string name="import_error">ਟਨਲ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: %s</string>
|
||||
<string name="import_from_qr_code">QR ਕੋਡ ਤੋਂ ਟਨਲ ਇੰਪੋਰਟ ਕਰੋ</string>
|
||||
<string name="import_success">\"%s\" ਇੰਪੋਰਟ ਕੀਤੀ</string>
|
||||
<string name="interface_title">ਇੰਟਰਫੇਸ</string>
|
||||
<string name="key_contents_error">ਕੁੰਜੀ ਵਿੱਚ ਗ਼ਲਤ ਅੱਖਰ</string>
|
||||
<string name="key_length_error">ਗ਼ਲਤ ਕੁੰਜੀ ਦੀ ਲੰਬਾਈ</string>
|
||||
<string name="key_length_explanation_base64">: WireGuard base64 ਕੁੰਜੀਆਂ ਵਿੱਚ 44 ਅੱਖਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ (32 ਬਾਈਟ)</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard ਕੁੰਜੀਆਂ 32 ਬਾਈਟ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ</string>
|
||||
<string name="key_length_explanation_hex">: WireGuard ਹੈਕਸਾ ਕੁੰਜੀਆਂ ਵਿੱਚ 64 ਅੱਖਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ (32 ਬਾਈਟ)</string>
|
||||
<string name="listen_port">ਸੁਣਨ ਵਾਲੀ ਪੋਰਟ</string>
|
||||
<string name="log_export_error">ਲਾਗ ਐਕਸਪੋਰਟ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: %s</string>
|
||||
<string name="log_export_subject">ਵਾਇਰਗਾਰਡ ਐਂਡਰਾਈਡ ਲਾਗ ਫ਼ਾਇਲ</string>
|
||||
<string name="log_export_success">“%s” ਵਜੋਂ ਸੰਭਾਲਿਆ ਗਿਆ</string>
|
||||
<string name="log_export_title">ਲਾਗ ਫ਼ਾਇਲ ਬਰਾਮਦ ਕਰੋ</string>
|
||||
<string name="log_saver_activity_label">ਲਾਗ ਸੰਭਾਲੋ</string>
|
||||
<string name="log_viewer_pref_summary">ਲਾਗ ਡੀਬੱਗ ਕਰਨ ਲਈ ਸਹਾਇਤਾ ਕਰ ਸਕਦੇ ਹਨ</string>
|
||||
<string name="log_viewer_pref_title">ਐਪਲੀਕੇਸ਼ਨ ਲਾਗ ਵੇਖੋ</string>
|
||||
<string name="log_viewer_title">ਲਾਗ</string>
|
||||
<string name="logcat_error">logcat ਚਲਾਉਣ ਲਈ ਅਸਮਰੱਥ: </string>
|
||||
<string name="module_disabler_disabled_summary">ਤਜਰਬੇ ਅਧੀਨ ਕਰਨਲ ਮੋਡੀਊਲ ਕਾਰਗੁਜ਼ਾਰੀ ਸੁਧਾਰ ਸਕਦਾ ਹੈ</string>
|
||||
<string name="module_disabler_disabled_title">ਕਰਨਲ ਮੋਡੀਊਲ ਬੈਕਐਂਡ ਸਮਰੱਥ ਕਰੋ</string>
|
||||
<string name="module_disabler_enabled_summary">ਹੌਲੀ ਵਰਤੋਂਕਾਰ-ਸਪੇਸ ਬੈਂਕਡ ਸਥਿਰਤਾ ਸੁਧਾਰ ਕਰ ਸਕਦਾ ਹੈ</string>
|
||||
<string name="module_disabler_enabled_title">ਕਰਨਲ ਮੋਡੀਊਲ ਬੈਕਐਂਡ ਅਸਮਰੱਥ ਕਰੋ</string>
|
||||
<string name="module_installer_error">ਕੁਝ ਗਲਤ ਵਾਪਰ ਗਿਆ। ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ</string>
|
||||
<string name="module_installer_initial">ਤਜਰਬੇ ਅਧੀਨ ਕਰਨਲ ਮੋਡੀਊਲ ਕਾਰਗੁਜ਼ਾਰੀ ਸੁਧਾਰ ਸਕਦਾ ਹੈ</string>
|
||||
<string name="module_installer_not_found">ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਲਈ ਕੋਈ ਮੋਡੀਊਲ ਮੌਜੂਦ ਨਹੀਂ ਹਨ</string>
|
||||
<string name="module_installer_title">ਕਰਨਲ ਮੋਡੀਊਲ ਡਾਊਨਲੋਡ ਕਰਕੇ ਇੰਸਟਾਲ ਕਰੋ</string>
|
||||
<string name="module_installer_working">ਡਾਊਨਲੋਡ ਤੇ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ…</string>
|
||||
<string name="module_version_error">ਕਰਨਲ ਮੋਡੀਊਲ ਵਰਜ਼ਨ ਪਤਾ ਲਗਾਉਣ ਲਈ ਅਸਮਰੱਥ ਹੈ</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">ਇੱਕ ਟਨਲ ਨੂੰ ਚਾਲੂ ਕਰਨ ਨਾਲ ਹੋਰ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ</string>
|
||||
<string name="multiple_tunnels_summary_on">ਕਈ ਟਨਲਾਂ ਇੱਕੋ ਸਮੇਂ ਵੀ ਚਾਲੂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ</string>
|
||||
<string name="multiple_tunnels_title">ਇੱਕੋ ਸਮੇਂ ਕਈ ਟਨਲਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ</string>
|
||||
<string name="name">ਨਾਂ</string>
|
||||
<string name="no_config_error">ਬਿਨਾਂ ਸੰਰਚਨਾ ਦੇ ਟਲਨ ਨੂੰ ਚਾਲੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ</string>
|
||||
<string name="no_configs_error">ਕੋਈ ਸੰਰਚਨਾ ਨਹੀਂ ਲੱਭੀ</string>
|
||||
<string name="no_tunnels_error">ਕੋਈ ਟਨਲ ਮੌਜੂਦ ਨਹੀਂ ਹੈ</string>
|
||||
<string name="parse_error_generic">ਸਤਰ</string>
|
||||
<string name="parse_error_inet_address">IP ਸਿਰਨਾਵਾਂ</string>
|
||||
<string name="parse_error_inet_endpoint">ਐਂਡ-ਪੁਆਇੰਟ</string>
|
||||
<string name="parse_error_inet_network">IP ਨੈੱਟਵਰਕ</string>
|
||||
<string name="parse_error_integer">ਨੰਬਰ</string>
|
||||
<string name="parse_error_reason">%1$s “%2$s” ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ</string>
|
||||
<string name="peer">ਪੀਅਰ</string>
|
||||
<string name="permission_description">ਵਾਇਰਗਾਰਡ ਟਨਲਾਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ, ਮਨਮਰਜ਼ੀ ਮੁਤਾਬਕ ਟਨਲਾਂ ਨੂੰ ਸਮਰੱਥ ਤੇ ਅਸਮਰੱਥ ਕਰੋ, ਸੰਭਾਵਿਤ ਇੰਟਰਨੈੱਟ ਟਰੈਫਿਕ ਦੀ ਦਿਸ਼ਾ ਬਦਲੋ</string>
|
||||
<string name="permission_label">ਵਾਇਰਗਰਾਡ ਟਨਲਾਂ ਕੰਟਰੋਲ ਕਰੋ</string>
|
||||
<string name="persistent_keepalive">ਸਥਿਰ ਲਗਾਤਾਰ ਜਾਰੀ ਰੱਖੋ</string>
|
||||
<string name="pre_shared_key">ਪਹਿਲਾਂ-ਸਾਂਝੀ ਕੀਤੀ ਕੁੰਜੀ</string>
|
||||
<string name="pre_shared_key_enabled">ਸਮਰੱਥ ਹੈ</string>
|
||||
<string name="private_key">ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ</string>
|
||||
<string name="public_key">ਪਬਲਿਕ ਕੁੰਜੀ</string>
|
||||
<string name="qr_code_hint">ਟੋਟਕਾ: `qrencode -t ansiutf8 < tunnel.conf` ਨਾਲ ਤਿਆਰ ਕਰੋ।</string>
|
||||
<string name="restore_on_boot_summary_off">ਬੂਟ ਕਰਨ ਸਮੇਂ ਸਮਰੱਥ ਕੀਤੀਆਂ ਟਨਲਾਂ ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ</string>
|
||||
<string name="restore_on_boot_summary_on">ਬੂਟ ਕਰਨ ਸਮੇਂ ਸਮਰੱਥ ਕੀਤੀਆਂ ਟਨਲਾਂ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾਵੇਗਾ</string>
|
||||
<string name="restore_on_boot_title">ਬੂਟ ਕਰਨ ਉੱਤੇ ਬਹਾਲ ਕਰੋ</string>
|
||||
<string name="save">ਸੰਭਾਲੋ</string>
|
||||
<string name="select_all">ਸਾਰੇ ਚੁਣੋ</string>
|
||||
<string name="settings">ਸੈਟਿੰਗਾਂ</string>
|
||||
<string name="shell_exit_status_read_error">ਸ਼ੈਲ ਬਾਹਰ ਜਾਣ (exit) ਸਥਿਤੀ ਪੜ੍ਹ ਨਹੀਂ ਸਕਦੀ</string>
|
||||
<string name="shell_marker_count_error">ਸ਼ੈਲ 4 ਮਾਰਕਰਾਂ ਦੀ ਉਮੀਦ ਕਰਦੀ ਸੀ, %d ਮਿਲੇ</string>
|
||||
<string name="shell_start_error">ਸ਼ੈਲ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਸਫ਼ਲ ਹੈ: %d</string>
|
||||
<string name="success_application_will_restart">ਕਾਮਯਾਬ। ਐਪਲੀਕੇਸ਼ਨ ਹੁਣ ਮੁੜ-ਚਾਲੂ ਹੋਵੇਗੀ…</string>
|
||||
<string name="toggle_all">ਸਭ ਪਲਟੋ</string>
|
||||
<string name="toggle_error">ਵਾਇਰਗਾਰਡ ਟਨਲ ਬਦਲਣ ਦੌਰਾਨ ਗ਼ਲਤੀ: %s</string>
|
||||
<string name="tools_installer_already">wg ਅਤੇ wg-quick ਪਹਿਲਾਂ ਹੀ ਇੰਸਟਾਲ ਹਨ</string>
|
||||
<string name="tools_installer_failure">ਕਮਾਂਡ-ਲਾਈਨ ਟੂਲ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਅਸਮਰੱਥ (ਰੂਟ ਨਹੀਂ ਹੋ?)</string>
|
||||
<string name="tools_installer_initial">ਸਕ੍ਰਿਪਟ ਲਿਖਣ ਲਈ ਚੋਣਵੇਂ ਟੂਲ ਇੰਸਟਾਲ ਕਰੋ</string>
|
||||
<string name="tools_installer_initial_magisk">Magisk ਮੋਡੀਊਲ ਵਜੋਂ ਸਕ੍ਰਿਪਟਾਂ ਲਿਖਣ ਲਈ ਚੋਣਵੇਂ ਟੂਲ ਇੰਸਟਾਲ ਕਰੋ</string>
|
||||
<string name="tools_installer_initial_system">ਸਿਸਟਮ ਪਾਰਟੀਸ਼ਨ ਵਿੱਚ ਸਕ੍ਰਿਪਟ ਲਿਖਣ ਲਈ ਚੋਣਵੇਂ ਟੂਲ ਇੰਸਟਾਲ ਕਰੋ</string>
|
||||
<string name="tools_installer_success_magisk">wg ਅਤੇ wg-quick ਨੂੰ Magisk ਮੋਡੀਊਲ ਵਜੋਂ ਇੰਸਟਾਲ ਕੀਤਾ (ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ)</string>
|
||||
<string name="tools_installer_success_system">wg ਅਤੇ wg-quick ਨੂੰ ਸਿਸਟਮ ਪਾਰਟੀਸ਼ਨ ਵਿੱਚ ਇੰਸਟਾਲ ਕੀਤਾ</string>
|
||||
<string name="tools_installer_title">ਕਮਾਂਡ ਲਾਈਨ ਟੂਲ ਇੰਸਟਾਲ ਕਰੋ</string>
|
||||
<string name="tools_installer_working">wg ਤੇ wg-quick ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ</string>
|
||||
<string name="tools_unavailable_error">ਚਾਹੀਦੇ ਟੂਲ ਮੌਜੂਦ ਨਹੀਂ ਹਨ</string>
|
||||
<string name="transfer">ਟਰਾਂਸਫਰ</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">tun ਡਿਵਾਈਸ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ</string>
|
||||
<string name="tunnel_config_error">ਟਨਲ ਦੀ ਸੰਰਚਨਾ ਕਰਨ ਲਈ ਅਸਮਰੱਥ (wg-quick ਨੇ %d ਵਾਪਸ ਕੀਤਾ)</string>
|
||||
<string name="tunnel_create_error">ਟਨਲ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s</string>
|
||||
<string name="tunnel_create_success">“%s” ਟਨਲ ਕਾਮਯਾਬੀ ਨਾਲ ਬਣਾਈ</string>
|
||||
<string name="tunnel_error_already_exists">ਟਨਲ “%s” ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
|
||||
<string name="tunnel_error_invalid_name">ਅਯੋਗ ਨਾਂ</string>
|
||||
<string name="tunnel_list_placeholder">ਨੀਲੇ ਬਟਨ ਨੂੰ ਵਰਤ ਕੇ ਟਨਲ ਬਣਾਓ</string>
|
||||
<string name="tunnel_name">ਟਨਲ ਦਾ ਨਾਂ</string>
|
||||
<string name="tunnel_on_error">ਟਨਲ ਚਾਲੂ ਕਰਨ ਲਈ ਅਸਮਰੱਥ (wgTurnOn ਨੇ %d ਵਾਪਸ ਕੀਤਾ)</string>
|
||||
<string name="tunnel_rename_error">ਟਨਲ ਨਾਂ-ਬਦਲਣ ਲਈ ਅਸਮਰੱਥ: %s</string>
|
||||
<string name="tunnel_rename_success">ਟਨਲ ਦਾ ਨਾਂ \"%s\" ਵਜੋਂ ਕਾਮਯਾਬੀ ਨਾਲ ਬਦਲਿਆ ਗਿਆ</string>
|
||||
<string name="type_name_go_userspace">ਵਰਤੋਂ-ਸਪੇਸ ਤੇ ਜਾਓ</string>
|
||||
<string name="type_name_kernel_module">ਕਰਨਲ ਮੋਡੀਊਲ</string>
|
||||
<string name="unknown_error">ਅਣਪਛਾਤੀ ਗਲਤੀ</string>
|
||||
<string name="version_summary_checking">%s ਬੈਕਐਂਡ ਵਰਜ਼ਨ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ</string>
|
||||
<string name="version_summary_unknown">ਅਣਪਛਾਤਾ %s ਵਰਜਨ</string>
|
||||
<string name="version_title">Android ਲਈ WireGuard v%s</string>
|
||||
<string name="vpn_not_authorized_error">VPN ਸੇਵਾ ਨੂੰ ਵਰਤੋਂਕਾਰ ਨੇ ਪਰਮਾਣਿਤ ਨਹੀਂ ਕੀਤਾ</string>
|
||||
<string name="vpn_start_error">ਐਂਡਰਾਈਡ VPN ਸੇਵਾ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਸਮਰੱਥ</string>
|
||||
<string name="zip_export_error">ਟਨਲਾਂ ਐਕਸਪੋਰਟ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: %s</string>
|
||||
<string name="zip_export_success">“%s” ਉੱਤੇ ਸੰਭਾਲਿਆ ਗਿਆ</string>
|
||||
<string name="zip_export_summary">ਜ਼ਿਪ ਫਾਈਲ ਨੂੰ ਡਾਊਨਲੋਡ ਫੋਲਡਰ ਵਿੱਚ ਸੰਭਾਲਿਆ ਜਾਵੇਗਾ</string>
|
||||
<string name="zip_export_title">ਟਨਲ ਨੂੰ ਜ਼ਿੱਪ ਫ਼ਾਇਲ ਵਜੋਂ ਬਰਾਮਦ ਕਰੋ</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">ਟਨਲ ਬਰਾਮਦ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ</string>
|
||||
<string name="biometric_prompt_private_key_title">ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਵੇਖਣ ਲਈ ਪਰਮਾਣਕਿਤਾ</string>
|
||||
<string name="biometric_auth_error">ਪਰਮਾਣਿਤ ਕਰਨ ਲਈ ਅਸਫ਼ਲ</string>
|
||||
<string name="biometric_auth_error_reason">ਪਰਮਾਣਿਤ ਕਰਨ ਲਈ ਅਸਫ਼ਲ: %s</string>
|
||||
</resources>
|
||||
@@ -14,7 +14,7 @@
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d wybrany tunel</item>
|
||||
<item quantity="few">%d wybranych tuneli</item>
|
||||
<item quantity="few">%d wybrane tunele</item>
|
||||
<item quantity="many">%d wybranych tuneli</item>
|
||||
<item quantity="other">%d wybranych tuneli</item>
|
||||
</plurals>
|
||||
@@ -81,23 +81,22 @@
|
||||
<item quantity="many">sekund</item>
|
||||
<item quantity="other">sekundy</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Używaj wszystkich aplikacji</string>
|
||||
<string name="add_peer">Dodaj Peer\'a</string>
|
||||
<string name="use_all_applications">Użyj wszystkich</string>
|
||||
<string name="add_peer">Dodaj klienta</string>
|
||||
<string name="addresses">Adresy</string>
|
||||
<string name="applications">Aplikacje</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Zewnętrzne aplikacje nie mogą przełączać tuneli (zalecane)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Zewnętrzne aplikacje mogą przełączać tunele (zaawansowane)</string>
|
||||
<string name="allow_remote_control_intents_title">Zezwól na kontrolowanie przez zewnętrzne aplikacje</string>
|
||||
<string name="allowed_ips">Dozwolone adresy IP</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s dla %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s w %2$s</string>
|
||||
<string name="bad_config_explanation_pka">: Musi być dodatnia i nie większa niż 65535</string>
|
||||
<string name="bad_config_explanation_pka">: Musi być dodatni i nie większy niż 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Musi być dodatni</string>
|
||||
<string name="bad_config_explanation_udp_port">: Musi być poprawnym numerem portu UDP</string>
|
||||
<string name="bad_config_explanation_udp_port">: Musi być prawidłowym numerem portu UDP</string>
|
||||
<string name="bad_config_reason_invalid_key">Nieprawidłowy klucz</string>
|
||||
<string name="bad_config_reason_invalid_number">Numer jest nieprawidłowy</string>
|
||||
<string name="bad_config_reason_invalid_number">Nieprawidłowa liczba</string>
|
||||
<string name="bad_config_reason_invalid_value">Nieprawidłowa wartość</string>
|
||||
<string name="bad_config_reason_missing_attribute">Brakujący atrybut</string>
|
||||
<string name="bad_config_reason_missing_section">Brakująca sekcja</string>
|
||||
@@ -105,88 +104,95 @@
|
||||
<string name="bad_config_reason_unknown_attribute">Nieznany atrybut</string>
|
||||
<string name="bad_config_reason_unknown_section">Nieznana sekcja</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Wartość poza zakresem</string>
|
||||
<string name="bad_extension_error">Plik musi być .conf lub .zip</string>
|
||||
<string name="bad_extension_error">Plik musi posiadać rozszerzenie CONF lub ZIP</string>
|
||||
<string name="cancel">Anuluj</string>
|
||||
<string name="config_delete_error">Nie można usunąć pliku konfiguracyjnego %s</string>
|
||||
<string name="config_exists_error">Konfiguracja dla \"%s\" już istnieje</string>
|
||||
<string name="config_file_exists_error">Plik konfiguracyjny \"%s\" już istnieje</string>
|
||||
<string name="config_not_found_error">Plik konfiguracyjny \"%s\" nie został znaleziony</string>
|
||||
<string name="config_rename_error">Nie można zmienić nazwy pliku konfiguracyjnego \"%s\"</string>
|
||||
<string name="config_save_error">Nie można zapisać konfiguracji dla \"%1$s\": %2$s</string>
|
||||
<string name="config_save_success">Pomyślnie zapisano konfigurację dla \"%s\"</string>
|
||||
<string name="config_delete_error">Nie można usunąć pliku konfiguracyjnego „%s”</string>
|
||||
<string name="config_exists_error">Konfiguracja dla „%s” już istnieje</string>
|
||||
<string name="config_file_exists_error">Plik konfiguracyjny „%s” już istnieje</string>
|
||||
<string name="config_not_found_error">Nie znaleziono pliku konfiguracyjnego „%s”</string>
|
||||
<string name="config_rename_error">Nie można zmienić nazwy pliku konfiguracyjnego „%s”</string>
|
||||
<string name="config_save_error">Nie można zapisać konfiguracji dla „%1$s”: %2$s</string>
|
||||
<string name="config_save_success">Pomyślnie zapisano konfigurację dla „%s”</string>
|
||||
<string name="create_activity_title">Utwórz tunel WireGuard</string>
|
||||
<string name="create_bin_dir_error">Nie można stworzyć tymczasowego folderu lokalnego</string>
|
||||
<string name="create_bin_dir_error">Nie można utworzyć lokalnego folderu dla plików wykonywalnych</string>
|
||||
<string name="create_downloads_file_error">Nie można utworzyć pliku w folderze pobierania</string>
|
||||
<string name="create_empty">Utwórz od podstaw</string>
|
||||
<string name="create_empty">Utwórz ręcznie</string>
|
||||
<string name="create_from_file">Utwórz z pliku lub archiwum</string>
|
||||
<string name="create_from_qr_code">Zeskanuj kod QR</string>
|
||||
<string name="create_output_dir_error">Nie można utworzyć folderu wyjściowego</string>
|
||||
<string name="create_temp_dir_error">Nie można stworzyć tymczasowego folderu lokalnego</string>
|
||||
<string name="create_tunnel">Utwórz Tunel</string>
|
||||
<string name="dark_theme_summary_off">Obecnie używasz jasnego (dzień) motywu</string>
|
||||
<string name="dark_theme_summary_on">Obecnie używa ciemnego (nocnego) motywu</string>
|
||||
<string name="create_temp_dir_error">Nie można utworzyć tymczasowego folderu lokalnego</string>
|
||||
<string name="create_tunnel">Utwórz tunel</string>
|
||||
<string name="copied_to_clipboard">%s skopiowano do schowka</string>
|
||||
<string name="dark_theme_summary_off">Obecnie używany jest jasny motyw</string>
|
||||
<string name="dark_theme_summary_on">Obecnie używany jest ciemny motyw</string>
|
||||
<string name="dark_theme_title">Użyj ciemnego motywu</string>
|
||||
<string name="delete">Usuń</string>
|
||||
<string name="tv_delete">Wybierz tunel do usunięcia</string>
|
||||
<string name="tv_select_a_storage_drive">Wybierz dysk pamięci</string>
|
||||
<string name="tv_no_file_picker">Zainstaluj narzędzie do zarządzania plikami, aby przeglądać pliki</string>
|
||||
<string name="tv_add_tunnel_get_started">Dodaj tunel, aby rozpocząć</string>
|
||||
<string name="disable_config_export_title">Wyłącz eksportowanie konfiguracji</string>
|
||||
<string name="disable_config_export_description">Wyłączenie eksportowania konfiguracji sprawi, że klucze prywatne będą mniej dostępne</string>
|
||||
<string name="dns_servers">Serwery DNS</string>
|
||||
<string name="edit">Edytuj</string>
|
||||
<string name="endpoint">Punkt końcowy</string>
|
||||
<string name="error_down">Błąd podczas zamykania tunelu: %s</string>
|
||||
<string name="error_fetching_apps">Błąd podczas pobierania listy aplikacji: %s</string>
|
||||
<string name="error_root">Proszę uzyskać dostęp do root\'a i spróbować ponownie</string>
|
||||
<string name="error_up">Błąd podczas włączania tunelu: %s</string>
|
||||
<string name="error_root">Proszę uzyskać dostęp do root-a i spróbować ponownie</string>
|
||||
<string name="error_up">Błąd podczas otwierania tunelu: %s</string>
|
||||
<string name="exclude_private_ips">Wyklucz prywatne adresy IP</string>
|
||||
<string name="generate_new_private_key">Wygeneruj nowy klucz prywatny</string>
|
||||
<string name="generic_error">Nieznany błąd \"%s\"</string>
|
||||
<string name="hint_automatic">(automatycznie)</string>
|
||||
<string name="hint_generated">(wygenerowane)</string>
|
||||
<string name="generic_error">Nieznany błąd „%s”</string>
|
||||
<string name="hint_automatic">(auto.)</string>
|
||||
<string name="hint_generated">(wygenerowany)</string>
|
||||
<string name="hint_optional">(opcjonalnie)</string>
|
||||
<string name="hint_optional_discouraged">(opcjonalnie, niezalecane)</string>
|
||||
<string name="hint_random">(losowy)</string>
|
||||
<string name="illegal_filename_error">Niedozwolona nazwa pliku \"%s\"</string>
|
||||
<string name="illegal_filename_error">Niedozwolona nazwa pliku „%s”</string>
|
||||
<string name="import_error">Nie można zaimportować tunelu: %s</string>
|
||||
<string name="import_from_qr_code">Importuj tunel za pomocą kodu QR</string>
|
||||
<string name="import_success">Zaimportowano \"%s\"</string>
|
||||
<string name="import_success">Zaimportowano „%s”</string>
|
||||
<string name="interface_title">Interfejs</string>
|
||||
<string name="key_contents_error">Niepoprawne znaki w kluczu</string>
|
||||
<string name="key_length_error">Niewłaściwa długość klucza</string>
|
||||
<string name="key_length_explanation_base64">: klucze base64 WireGuard\'a muszą mieć długość 44 znaków (32 bajty)</string>
|
||||
<string name="key_length_explanation_binary">: klucze WireGuard\'a muszą wynosić 32 bajty</string>
|
||||
<string name="key_length_explanation_hex">: klucze hex WireGuard\'a muszą mieć długość 64 znaków (32 bajty)</string>
|
||||
<string name="key_contents_error">Nieprawidłowe znaki w kluczu</string>
|
||||
<string name="key_length_error">Nieprawidłowa długość klucza</string>
|
||||
<string name="key_length_explanation_base64">: Klucze Base64 WireGuard-a muszą mieć długość 44 znaków (32 bajty)</string>
|
||||
<string name="key_length_explanation_binary">: Klucze WireGuard-a muszą mieć wielkość 32 bajtów</string>
|
||||
<string name="key_length_explanation_hex">: Klucze Hex WireGuard-a muszą mieć długość 64 znaków (32 bajty)</string>
|
||||
<string name="listen_port">Port nasłuchu</string>
|
||||
<string name="log_export_error">Nie można wyeksportować logu: %s</string>
|
||||
<string name="log_export_subject">Plik logu programu WireGuard dla systemu Android</string>
|
||||
<string name="log_export_success">Zapisano w \"%s\"</string>
|
||||
<string name="log_export_success">Zapisano w „%s”</string>
|
||||
<string name="log_export_title">Wyeksportuj plik logu</string>
|
||||
<string name="log_saver_activity_label">Zapisz log</string>
|
||||
<string name="log_viewer_pref_summary">Logi mogą pomóc w debugowaniu</string>
|
||||
<string name="log_viewer_pref_title">Wyświetl log aplikacji</string>
|
||||
<string name="log_viewer_title">Log</string>
|
||||
<string name="logcat_error">Nie można uruchomić logcat: </string>
|
||||
<string name="logcat_error">Nie można uruchomić narzędzia logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">Eksperymentalny moduł jądra może poprawić wydajność</string>
|
||||
<string name="module_disabler_disabled_title">Włącz moduł jądra</string>
|
||||
<string name="module_disabler_enabled_summary">Wolniejsza implementacja w przestrzeni użytkownika może poprawić stabilność</string>
|
||||
<string name="module_disabler_enabled_title">Wyłącz moduł jądra</string>
|
||||
<string name="module_installer_error">Coś poszło nie tak. Proszę spróbować ponownie</string>
|
||||
<string name="module_installer_initial">Eksperymentalny moduł jądra może poprawić wydajność</string>
|
||||
<string name="module_installer_not_found">Brak dostępnych modułów dla twojego urządzenia</string>
|
||||
<string name="module_installer_not_found">Brak dostępnych modułów dla tego urządzenia</string>
|
||||
<string name="module_installer_title">Pobierz i zainstaluj moduł jądra</string>
|
||||
<string name="module_installer_working">Pobieranie i instalowanie…</string>
|
||||
<string name="module_version_error">Nie można określić wersji modułu jądra</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Włączenie jednego tunelu spowoduje wyłączenie innych</string>
|
||||
<string name="multiple_tunnels_summary_on">Wiele tuneli może być włączonych jednocześnie</string>
|
||||
<string name="multiple_tunnels_title">Zezwalaj na wiele tuneli równoległych</string>
|
||||
<string name="multiple_tunnels_title">Zezwól na wiele równoległych tuneli</string>
|
||||
<string name="name">Nazwa</string>
|
||||
<string name="no_config_error">Próba przywołania tunelu bez konfiguracji</string>
|
||||
<string name="no_config_error">Próba otwarcia tunelu bez konfiguracji</string>
|
||||
<string name="no_configs_error">Nie odnaleziono żadnych konfiguracji</string>
|
||||
<string name="no_tunnels_error">Brak tuneli</string>
|
||||
<string name="parse_error_generic">ciągu</string>
|
||||
<string name="parse_error_generic">ciąg</string>
|
||||
<string name="parse_error_inet_address">Adresy IP</string>
|
||||
<string name="parse_error_inet_endpoint">punkt końcowy</string>
|
||||
<string name="parse_error_inet_network">Sieć IP</string>
|
||||
<string name="parse_error_integer">numer</string>
|
||||
<string name="parse_error_integer">liczba</string>
|
||||
<string name="parse_error_reason">Nie można przetworzyć %1$s „%2$s”</string>
|
||||
<string name="peer">Peer</string>
|
||||
<string name="peer">Klient</string>
|
||||
<string name="permission_description">kontrolowanie tuneli WireGuard, włączanie i wyłączanie tuneli, potencjalnie błędne kierowanie ruchem internetowym</string>
|
||||
<string name="permission_label">sterowanie tunelami WireGuard</string>
|
||||
<string name="persistent_keepalive">Utrzymanie połączenia</string>
|
||||
@@ -195,9 +201,9 @@
|
||||
<string name="private_key">Klucz prywatny</string>
|
||||
<string name="public_key">Klucz publiczny</string>
|
||||
<string name="qr_code_hint">Wskazówka: wygeneruj za pomocą `qrencode -t ansiutf8 < tunnel.conf`.</string>
|
||||
<string name="restore_on_boot_summary_off">Włączone tunele nie zostaną przywrócone przy uruchomieniu</string>
|
||||
<string name="restore_on_boot_summary_on">Włączone tunele zostaną przywrócone przy uruchomieniu</string>
|
||||
<string name="restore_on_boot_title">Przywróć przy uruchomieniu</string>
|
||||
<string name="restore_on_boot_summary_off">Włączone tunele nie zostaną przywrócone podczas uruchamiania</string>
|
||||
<string name="restore_on_boot_summary_on">Włączone tunele zostaną przywrócone podczas uruchamiania</string>
|
||||
<string name="restore_on_boot_title">Przywróć podczas uruchamiania</string>
|
||||
<string name="save">Zapisz</string>
|
||||
<string name="select_all">Wybierz wszystko</string>
|
||||
<string name="settings">Ustawienia</string>
|
||||
@@ -207,13 +213,13 @@
|
||||
<string name="success_application_will_restart">Ukończono pomyślnie. Aplikacja zostanie uruchomiona ponownie…</string>
|
||||
<string name="toggle_all">Przełącz wszystkie</string>
|
||||
<string name="toggle_error">Błąd podczas przełączania tunelu WireGuard: %s</string>
|
||||
<string name="tools_installer_already">wg i wg-quick są już zainstalowane</string>
|
||||
<string name="tools_installer_failure">Nie można zainstalować narzędzi wiersza poleceń (brak root\'a?)</string>
|
||||
<string name="tools_installer_already">Narzędzia wg i wg-quick są już zainstalowane</string>
|
||||
<string name="tools_installer_failure">Nie można zainstalować narzędzi wiersza poleceń (brak root-a?)</string>
|
||||
<string name="tools_installer_initial">Zainstaluj opcjonalne narzędzia do tworzenia skryptów</string>
|
||||
<string name="tools_installer_initial_magisk">Zainstaluj opcjonalne narzędzia do tworzenia skryptów jako moduł Magisk</string>
|
||||
<string name="tools_installer_initial_system">Zainstaluj opcjonalne narzędzia do tworzenia skryptów w partycji systemowej</string>
|
||||
<string name="tools_installer_success_magisk">wg i wg-quick zostały zainstalowane jako moduł Magisk (wymagane ponowne uruchomienie)</string>
|
||||
<string name="tools_installer_success_system">wg i wg-quick zostały zainstalowane w partycji systemowej</string>
|
||||
<string name="tools_installer_initial_system">Zainstaluj opcjonalne narzędzia do tworzenia skryptów na partycji systemowej</string>
|
||||
<string name="tools_installer_success_magisk">Narzędzia wg i wg-quick zostały zainstalowane jako moduł Magisk (wymagane ponowne uruchomienie)</string>
|
||||
<string name="tools_installer_success_system">Narzędzia wg i wg-quick zostały zainstalowane na partycji systemowej</string>
|
||||
<string name="tools_installer_title">Zainstaluj narzędzia wiersza poleceń</string>
|
||||
<string name="tools_installer_working">Instalowanie wg i wg-quick</string>
|
||||
<string name="tools_unavailable_error">Wymagane narzędzia są niedostępne</string>
|
||||
@@ -224,28 +230,27 @@
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">odebrano: %1$s, wysłano: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">Nie można utworzyć urządzenia tun</string>
|
||||
<string name="tun_create_error">Nie można utworzyć urządzenia TUN</string>
|
||||
<string name="tunnel_config_error">Nie można skonfigurować tunelu (wg-quick zwróciło %d)</string>
|
||||
<string name="tunnel_create_error">Nie można utworzyć tunelu: %s</string>
|
||||
<string name="tunnel_create_success">Pomyślnie utworzono tunel \"%s\"</string>
|
||||
<string name="tunnel_create_success">Pomyślnie utworzono tunel „%s”</string>
|
||||
<string name="tunnel_error_already_exists">Tunel \"%s\" już istnieje</string>
|
||||
<string name="tunnel_error_invalid_name">Nieprawidłowa nazwa</string>
|
||||
<string name="tunnel_list_placeholder">Dodaj tunel za pomocą niebieskiego przycisku</string>
|
||||
<string name="tunnel_name">Nazwa tunelu</string>
|
||||
<string name="tunnel_on_error">Nie można włączyć tunelu (wgTurnOn zwróciło %d)</string>
|
||||
<string name="tunnel_rename_error">Nie można zmienić nazwy tunelu: %s</string>
|
||||
<string name="tunnel_rename_success">Pomyślnie zmieniono nazwę tunelu na \"%s\"</string>
|
||||
<string name="tunnel_rename_success">Pomyślnie zmieniono nazwę tunelu na „%s”</string>
|
||||
<string name="type_name_go_userspace">Przestrzeń użytkownika Go</string>
|
||||
<string name="type_name_kernel_module">Moduł jądra</string>
|
||||
<string name="unknown_error">Nieznany błąd</string>
|
||||
<string name="version_summary">Implementacja %1$s v%2$s</string>
|
||||
<string name="version_summary_checking">Sprawdzanie wersji %s implementacji</string>
|
||||
<string name="version_summary_unknown">Nieznana %s wersja</string>
|
||||
<string name="version_summary_checking">Sprawdzanie wersji implementacji: %s</string>
|
||||
<string name="version_summary_unknown">Nieznana wersja %s</string>
|
||||
<string name="version_title">WireGuard dla systemu Android v%s</string>
|
||||
<string name="vpn_not_authorized_error">Usługa VPN nie została autoryzowana przez użytkownika</string>
|
||||
<string name="vpn_start_error">Nie można uruchomić usługi VPN systemu Android</string>
|
||||
<string name="zip_export_error">Nie można wyeksportować tuneli: %s</string>
|
||||
<string name="zip_export_success">Zapisano w \"%s\"</string>
|
||||
<string name="zip_export_success">Zapisano w „%s”</string>
|
||||
<string name="zip_export_summary">Plik ZIP zostanie zapisany w folderze pobierania</string>
|
||||
<string name="zip_export_title">Wyeksportuj tunele do pliku ZIP</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Uwierzytelnij, aby wyeksportować tunele</string>
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">Não foi possível apagar %d túnel: %s</item>
|
||||
<item quantity="other">Não foi possível apagar %d túneis: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">%d túnel apagado com sucesso</item>
|
||||
<item quantity="other">%d túneis apagados com sucesso</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d túnel selecionado</item>
|
||||
<item quantity="other">%d túneis selecionados</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">Importado %1$d de %2$d túneis</item>
|
||||
<item quantity="other">Importados %1$d de %2$d túneis</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">%d túnel importado</item>
|
||||
<item quantity="other">%d túneis importados</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d Aplicação Excluída</item>
|
||||
<item quantity="other">%d Aplicações Excluídas</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d Aplicação Incluída</item>
|
||||
<item quantity="other">%d Aplicações incluídas</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d Excluída</item>
|
||||
<item quantity="other">%d Excluídas</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d Incluída</item>
|
||||
<item quantity="other">%d Incluídas</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Todas as Aplicações</string>
|
||||
<string name="exclude_from_tunnel">Excluir</string>
|
||||
<string name="include_in_tunnel">Apenas aplicações incluídas</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Incluir %d Aplicação</item>
|
||||
<item quantity="other">Incluir %d Aplicações</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Excluir %d Aplicação</item>
|
||||
<item quantity="other">Exluir %d Aplicações</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">a cada %d segundo</item>
|
||||
<item quantity="other">a cada %d segundos</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">segundo</item>
|
||||
<item quantity="other">segundos</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Usar todas as aplicações</string>
|
||||
<string name="add_peer">Adicionar nó</string>
|
||||
<string name="addresses">Endereços</string>
|
||||
<string name="applications">Aplicações</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Aplicações externas não podem controlar túneis (recomendado)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Aplicações externas podem controlar túneis (avançado)</string>
|
||||
<string name="allow_remote_control_intents_title">Permitir controlo remoto por outras aplicações</string>
|
||||
<string name="allowed_ips">IPs permitidos</string>
|
||||
<string name="bad_config_context">%2$s de %1$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s em %2$s</string>
|
||||
<string name="bad_config_explanation_pka">: Tem que ser positivo e não mais do que 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: tem que ser positivo</string>
|
||||
<string name="bad_config_explanation_udp_port">: Tem que ser um número de porta UDP válido</string>
|
||||
<string name="bad_config_reason_invalid_key">Chave inválida</string>
|
||||
<string name="bad_config_reason_invalid_number">Número inválido</string>
|
||||
<string name="bad_config_reason_invalid_value">Valor inválido</string>
|
||||
<string name="bad_config_reason_missing_attribute">Atributo em falta</string>
|
||||
<string name="bad_config_reason_missing_section">Secção em falta</string>
|
||||
<string name="bad_config_reason_syntax_error">Erro de sintaxe</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Atributo desconhecido</string>
|
||||
<string name="bad_config_reason_unknown_section">Secção desconhecida</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Valor fora do intervalo</string>
|
||||
<string name="bad_extension_error">O ficheiro tem que ser do tipo .conf ou .zip</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="config_delete_error">Não é possível apagar arquivo de configuração %s</string>
|
||||
<string name="config_exists_error">A configuração para \"%s\" já existe</string>
|
||||
<string name="config_file_exists_error">O ficheiro de configuração \"%s\" já existe</string>
|
||||
<string name="config_not_found_error">O ficheiro de configuração \"%s\" não foi encontrado</string>
|
||||
<string name="config_rename_error">Não foi possível renomear o ficheiro de configuração “%s\"</string>
|
||||
<string name="config_save_error">Não foi possível guardar a configuração para “%1$s”: %2$s</string>
|
||||
<string name="config_save_success">A configuração para \"%s\" foi guardada com sucesso</string>
|
||||
<string name="create_activity_title">Criar túnel WireGuard</string>
|
||||
<string name="create_bin_dir_error">Não foi possível criar diretoria de binários local</string>
|
||||
<string name="create_downloads_file_error">Não foi possível criar diretoria de downloads local</string>
|
||||
<string name="create_empty">Criar do zero</string>
|
||||
<string name="create_from_file">Importar de ficheiro ou arquivo</string>
|
||||
<string name="create_from_qr_code">Digitalizar a partir de código QR</string>
|
||||
<string name="create_output_dir_error">Não foi possível criar diretoria de saída</string>
|
||||
<string name="create_temp_dir_error">Não foi possível criar diretoria local temporária</string>
|
||||
<string name="create_tunnel">Criar túnel</string>
|
||||
<string name="copied_to_clipboard">%s copiado para a área de transferências</string>
|
||||
<string name="dark_theme_summary_off">Atualmente a usar tema claro (dia)</string>
|
||||
<string name="dark_theme_summary_on">Atualmente a usar tema escuro (noite)</string>
|
||||
<string name="dark_theme_title">Usar tema escuro</string>
|
||||
<string name="delete">Eliminar</string>
|
||||
<string name="tv_delete">Selecione o túnel para apagar</string>
|
||||
<string name="tv_select_a_storage_drive">Selecione uma unidade de armazenamento</string>
|
||||
<string name="tv_no_file_picker">Por favor, instale um utilitário de gestão de ficheiros para procurar arquivos</string>
|
||||
<string name="tv_add_tunnel_get_started">Adicionar um túnel para começar</string>
|
||||
<string name="disable_config_export_title">Desativar exportação de configuração</string>
|
||||
<string name="disable_config_export_description">Desativar a exportação de configuração torna as chaves privadas menos acessíveis</string>
|
||||
<string name="dns_servers">Servidores de DNS</string>
|
||||
<string name="edit">Editar</string>
|
||||
<string name="endpoint">Endpoint</string>
|
||||
<string name="error_down">Erro ao fechar túnel: %s</string>
|
||||
<string name="error_fetching_apps">Erro ao obter lista de aplicações: %s</string>
|
||||
<string name="error_root">Por favor, obtenha acesso root e tente novamente</string>
|
||||
<string name="error_up">Erro ao abrir túnel: %s</string>
|
||||
<string name="exclude_private_ips">Excluir IPs privados</string>
|
||||
<string name="generate_new_private_key">Gerar nova chave privada</string>
|
||||
<string name="generic_error">Erro desconhecido “%s”</string>
|
||||
<string name="hint_automatic">(automático)</string>
|
||||
<string name="hint_generated">(gerado)</string>
|
||||
<string name="hint_optional">(opcional)</string>
|
||||
<string name="hint_optional_discouraged">(opcional, não recomendado)</string>
|
||||
<string name="hint_random">(aleatório)</string>
|
||||
<string name="illegal_filename_error">Nome de arquivo inválido “%s”</string>
|
||||
<string name="import_error">Não foi possível importar túnel: %s</string>
|
||||
<string name="import_from_qr_code">Importar Túnel a partir de Código QR</string>
|
||||
<string name="import_success">“%s” Importado</string>
|
||||
<string name="interface_title">Interface</string>
|
||||
<string name="key_contents_error">Caracteres inválidos na chave</string>
|
||||
<string name="key_length_error">Tamanho de chave incorreto</string>
|
||||
<string name="key_length_explanation_base64">: Chaves base64 do WireGuard têm que ter 44 caracteres (32 bytes)</string>
|
||||
<string name="key_length_explanation_binary">: Chaves de WireGuard têm que ter 32 bytes</string>
|
||||
<string name="key_length_explanation_hex">: Chaves hexadecimais do WireGuard têm que ter 64 caracteres (32 bytes)</string>
|
||||
<string name="listen_port">Porta de escuta</string>
|
||||
<string name="log_export_error">Não foi possível exportar o log: %s</string>
|
||||
<string name="log_export_subject">Arquivo de log do WireGuard Android</string>
|
||||
<string name="log_export_success">Guardado em “%s”</string>
|
||||
<string name="log_export_title">Exportar ficheiro de log</string>
|
||||
<string name="log_saver_activity_label">Guardar log</string>
|
||||
<string name="log_viewer_pref_summary">Logs podem ajudar na depuração</string>
|
||||
<string name="log_viewer_pref_title">Ver log da aplicação</string>
|
||||
<string name="log_viewer_title">Log</string>
|
||||
<string name="logcat_error">Não foi possível executar o logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">O módulo experimental de kernel pode melhorar o desempenho</string>
|
||||
<string name="module_disabler_disabled_title">Habilitar módulo backend do kernel</string>
|
||||
<string name="module_disabler_enabled_summary">O backend do userspace mais lento pode aumentar a estabilidade</string>
|
||||
<string name="module_disabler_enabled_title">Desabilitar módulo backend do kernel</string>
|
||||
<string name="module_installer_error">Ocorreu um erro. Por favor, tente novamente</string>
|
||||
<string name="module_installer_initial">O módulo experimental do kernel pode melhorar o desempenho</string>
|
||||
<string name="module_installer_not_found">Não há módulos disponíveis para o seu dispositivo</string>
|
||||
<string name="module_installer_title">Transferir e instalar módulo de kernel</string>
|
||||
<string name="module_installer_working">A transferir e instalar…</string>
|
||||
<string name="module_version_error">Não foi possível determinar a versão do módulo de kernel</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Ativar um túnel irá desativar todos os outros</string>
|
||||
<string name="multiple_tunnels_summary_on">Vários túneis podem ser ativados simultaneamente</string>
|
||||
<string name="multiple_tunnels_title">Permitir vários túneis em simultâneo</string>
|
||||
<string name="name">Nome</string>
|
||||
<string name="no_config_error">A tentar abrir um túnel sem configuração</string>
|
||||
<string name="no_configs_error">Nenhuma configuração encontrada</string>
|
||||
<string name="no_tunnels_error">Não existem túneis</string>
|
||||
<string name="parse_error_generic">texto</string>
|
||||
<string name="parse_error_inet_address">Endereço IP</string>
|
||||
<string name="parse_error_inet_endpoint">endpoint</string>
|
||||
<string name="parse_error_inet_network">Rede de IP</string>
|
||||
<string name="parse_error_integer">número</string>
|
||||
<string name="parse_error_reason">Não foi possível analisar %1$s “%2$s”</string>
|
||||
<string name="peer">Nó</string>
|
||||
<string name="permission_description">controlar túneis WireGuard, ativando e desativando túneis a vontade, potencialmente desviando o tráfego na Internet</string>
|
||||
<string name="permission_label">controlar túneis WireGuard</string>
|
||||
<string name="persistent_keepalive">Keepalive persistente</string>
|
||||
<string name="pre_shared_key">Chave pré-partilhada</string>
|
||||
<string name="pre_shared_key_enabled">ativo</string>
|
||||
<string name="private_key">Chave privada</string>
|
||||
<string name="public_key">Chave Pública</string>
|
||||
<string name="qr_code_hint">Dica: gerar com `qrencode -t ansiutf8 < tunnel.conf`.</string>
|
||||
<string name="restore_on_boot_summary_off">Não abrirá túneis ativos durante o arranque</string>
|
||||
<string name="restore_on_boot_summary_on">Abrirá túneis ativos durante o arranque</string>
|
||||
<string name="restore_on_boot_title">Restaurar no arranque</string>
|
||||
<string name="save">Guardar</string>
|
||||
<string name="select_all">Selecionar tudo</string>
|
||||
<string name="settings">Definições</string>
|
||||
<string name="shell_exit_status_read_error">A shell não pôde ler o estado de saída</string>
|
||||
<string name="shell_marker_count_error">A shell esperava 4 marcadores, recebeu %d</string>
|
||||
<string name="shell_start_error">A shell falhou ao iniciar: %d</string>
|
||||
<string name="success_application_will_restart">Sucesso. A aplicação irá reiniciar…</string>
|
||||
<string name="toggle_all">Ativar/Desativar todos</string>
|
||||
<string name="toggle_error">Erro ao alterar o túnel WireGuard: %s</string>
|
||||
<string name="tools_installer_already">wg e wg-quick já estão instalados</string>
|
||||
<string name="tools_installer_failure">Não foi possível instalar as ferramentas de linha de comando (sem root?)</string>
|
||||
<string name="tools_installer_initial">Instalar ferramentas opcionais para scripting</string>
|
||||
<string name="tools_installer_initial_magisk">Instalar ferramentas opcionais para scripting como módulo Magisk</string>
|
||||
<string name="tools_installer_initial_system">Instalar ferramentas opcionais para scripting na partição de sistema</string>
|
||||
<string name="tools_installer_success_magisk">wg e wg-quick instalados como módulo Magisk (requer reinicialização)</string>
|
||||
<string name="tools_installer_success_system">wg e wg-quick instalados na partição do sistema</string>
|
||||
<string name="tools_installer_title">Instalar ferramentas de linha de comando</string>
|
||||
<string name="tools_installer_working">A instalar wg e wg-quick</string>
|
||||
<string name="tools_unavailable_error">Ferramentas necessárias não disponíveis</string>
|
||||
<string name="transfer">Transferência</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">Não foi possível criar dispositivo tun</string>
|
||||
<string name="tunnel_config_error">Não foi possível configurar o túnel (wg-quick retornou %d)</string>
|
||||
<string name="tunnel_create_error">Não foi possível criar o túnel: %s</string>
|
||||
<string name="tunnel_create_success">Túnel criado com sucesso “%s”</string>
|
||||
<string name="tunnel_error_already_exists">O túnel “%s” já existe</string>
|
||||
<string name="tunnel_error_invalid_name">Nome inválido</string>
|
||||
<string name="tunnel_list_placeholder">Adicionar um túnel com o botão azul</string>
|
||||
<string name="tunnel_name">Nome do túnel</string>
|
||||
<string name="tunnel_on_error">Não foi possível ligar o túnel (wgTurnOn retornou %d)</string>
|
||||
<string name="tunnel_rename_error">Não foi possível renomear o túnel: %s</string>
|
||||
<string name="tunnel_rename_success">Túnel renomeado com sucesso para “%s”</string>
|
||||
<string name="type_name_go_userspace">Go userspace</string>
|
||||
<string name="type_name_kernel_module">Módulo de kernel</string>
|
||||
<string name="unknown_error">Erro desconhecido</string>
|
||||
<string name="version_summary_checking">A verificar versão de backend %s</string>
|
||||
<string name="version_summary_unknown">Versão %s desconhecida</string>
|
||||
<string name="version_title">WireGuard para Android v%s</string>
|
||||
<string name="vpn_not_authorized_error">Serviço VPN não foi autorizado pelo utilizador</string>
|
||||
<string name="vpn_start_error">Não foi possível iniciar o serviço de VPN do Android</string>
|
||||
<string name="zip_export_error">Não foi possível exportar túneis: %s</string>
|
||||
<string name="zip_export_success">Guardado em “%s”</string>
|
||||
<string name="zip_export_summary">O arquivo Zip será guardado na pasta de downloads</string>
|
||||
<string name="zip_export_title">Exportar túneis para arquivo zip</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Autenticar para exportar túneis</string>
|
||||
<string name="biometric_prompt_private_key_title">Autenticar para ver a chave privada</string>
|
||||
<string name="biometric_auth_error">Falha de autenticação</string>
|
||||
<string name="biometric_auth_error_reason">Falha de autenticação: %s</string>
|
||||
</resources>
|
||||
@@ -76,7 +76,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">Aplicațiile externe pot comuta tunelurile (avansat)</string>
|
||||
<string name="allow_remote_control_intents_title">Permite aplicații de control la distanță</string>
|
||||
<string name="allowed_ips">IP-uri permise</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%2$s pentru %1$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s în %2$s</string>
|
||||
@@ -110,10 +109,17 @@
|
||||
<string name="create_output_dir_error">Nu se poate crea directorul de ieșire</string>
|
||||
<string name="create_temp_dir_error">Nu se poate crea directorul temporar local</string>
|
||||
<string name="create_tunnel">Creare tunel</string>
|
||||
<string name="copied_to_clipboard">%s a fost copiat în memoria temporară</string>
|
||||
<string name="dark_theme_summary_off">În prezent este utilizată tema luminoasă (zi)</string>
|
||||
<string name="dark_theme_summary_on">În prezent este utilizată tema întunecată (noapte)</string>
|
||||
<string name="dark_theme_title">Utilizare temă întunecată</string>
|
||||
<string name="delete">Ștergere</string>
|
||||
<string name="tv_delete">Selectează tunelul de șters</string>
|
||||
<string name="tv_select_a_storage_drive">Selectează o unitate de stocare</string>
|
||||
<string name="tv_no_file_picker">Instalează un serviciu de administrare a fișierelor pentru a căuta fișiere</string>
|
||||
<string name="tv_add_tunnel_get_started">Adaugă un tunel pentru a începe</string>
|
||||
<string name="disable_config_export_title">Dezactivează exportarea configurației</string>
|
||||
<string name="disable_config_export_description">Dezactivarea exportării configurației face mai puțin accesibile cheile private</string>
|
||||
<string name="dns_servers">Servere DNS</string>
|
||||
<string name="edit">Editare</string>
|
||||
<string name="endpoint">Punct final</string>
|
||||
@@ -225,7 +231,6 @@
|
||||
<string name="type_name_go_userspace">Spațiu de utilizator Go</string>
|
||||
<string name="type_name_kernel_module">Modul nucleu</string>
|
||||
<string name="unknown_error">Eroare necunoscută</string>
|
||||
<string name="version_summary">Bibliotecă %1$s v%2$s</string>
|
||||
<string name="version_summary_checking">Se verifică versiunea bibliotecii %s</string>
|
||||
<string name="version_summary_unknown">Versiune %s necunoscută</string>
|
||||
<string name="version_title">WireGuard pentru Android v%s</string>
|
||||
|
||||
@@ -20,43 +20,43 @@
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">Импортирован %1$d из %2$d туннелей</item>
|
||||
<item quantity="few">Импортировано %1$d из %2$d туннеля</item>
|
||||
<item quantity="few">Импортировано %1$d из %2$d туннелей</item>
|
||||
<item quantity="many">Импортировано %1$d из %2$d туннелей</item>
|
||||
<item quantity="other">Импортировано %1$d из %2$d туннелей</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">Импортированный %d туннель</item>
|
||||
<item quantity="one">Импортирован %d туннель</item>
|
||||
<item quantity="few">Импортировано %d туннеля</item>
|
||||
<item quantity="many">Импортировано %d туннелей</item>
|
||||
<item quantity="other">Импортировано %d туннелей</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d Исключенное приложение</item>
|
||||
<item quantity="few">%d Исключенных приложений</item>
|
||||
<item quantity="few">%d Исключенных приложения</item>
|
||||
<item quantity="many">%d Исключенных приложений</item>
|
||||
<item quantity="other">%d Исключенных приложений</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d Включенное приложение</item>
|
||||
<item quantity="few">%d Включенных приложений</item>
|
||||
<item quantity="many">%d Включенных приложений</item>
|
||||
<item quantity="other">%d Включенных приложений</item>
|
||||
<item quantity="one">%d включенное приложение</item>
|
||||
<item quantity="few">%d включенных приложения</item>
|
||||
<item quantity="many">%d включенных приложений</item>
|
||||
<item quantity="other">%d включенных приложений</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d исключен</item>
|
||||
<item quantity="one">%d исключено</item>
|
||||
<item quantity="few">%d исключено</item>
|
||||
<item quantity="many">%d исключено</item>
|
||||
<item quantity="other">%d исключено</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d влючен</item>
|
||||
<item quantity="one">%d влючено</item>
|
||||
<item quantity="few">%d включено</item>
|
||||
<item quantity="many">%d включено</item>
|
||||
<item quantity="other">%d включено</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Все приложения</string>
|
||||
<string name="exclude_from_tunnel">Исключить</string>
|
||||
<string name="include_in_tunnel">Только включить</string>
|
||||
<string name="exclude_from_tunnel">Исключить для</string>
|
||||
<string name="include_in_tunnel">Включить для</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Включить %d приложение</item>
|
||||
<item quantity="few">Включить %d приложения</item>
|
||||
@@ -70,65 +70,71 @@
|
||||
<item quantity="other">Исключить %d приложений</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">каждую %d секунду</item>
|
||||
<item quantity="one">каждую секунду</item>
|
||||
<item quantity="few">каждые %d секунды</item>
|
||||
<item quantity="many">каждые %d секунд</item>
|
||||
<item quantity="other">каждые %d секунд</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">секунда</item>
|
||||
<item quantity="few">секунд</item>
|
||||
<item quantity="few">секунды</item>
|
||||
<item quantity="many">секунд</item>
|
||||
<item quantity="other">секунд</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Использовать все приложения</string>
|
||||
<string name="add_peer">Добавить пира</string>
|
||||
<string name="addresses">IP-адреса</string>
|
||||
<string name="add_peer">Добавить пир</string>
|
||||
<string name="addresses">Адреса</string>
|
||||
<string name="applications">Приложения</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Сторонние приложения не могут переключать туннели (рекомендуется)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Сторонние приложения могут переключать туннели (дополнительно)</string>
|
||||
<string name="allow_remote_control_intents_title">Доступ к другим приложениям</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Внешние приложения не могут переключать туннели (рекомендуется)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Внешние приложения могут переключать туннели (продвинутые)</string>
|
||||
<string name="allow_remote_control_intents_title">Разрешить управление через внешние приложения</string>
|
||||
<string name="allowed_ips">Разрешенные IP-адреса</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s из %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s в %2$s</string>
|
||||
<string name="bad_config_explanation_pka">: Должен быть положительный и не больше 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Должен быть положительный</string>
|
||||
<string name="bad_config_explanation_pka">: Значение должно быть больше нуля, но меньше 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Значение должно быть больше нуля</string>
|
||||
<string name="bad_config_explanation_udp_port">: Должен быть действительный номер порта UDP</string>
|
||||
<string name="bad_config_reason_invalid_key">Неправильный ключ</string>
|
||||
<string name="bad_config_reason_invalid_number">Неправильный номер</string>
|
||||
<string name="bad_config_reason_invalid_value">Неправильное значение</string>
|
||||
<string name="bad_config_reason_invalid_value">Недопустимое значение</string>
|
||||
<string name="bad_config_reason_missing_attribute">Несуществующий атрибут</string>
|
||||
<string name="bad_config_reason_missing_section">Несуществующий раздел</string>
|
||||
<string name="bad_config_reason_syntax_error">Синтаксическая ошибка</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Неизвестный атрибут</string>
|
||||
<string name="bad_config_reason_unknown_section">Неизвестный раздел</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Значение вне диапазона</string>
|
||||
<string name="bad_extension_error">Файл должен быть .conf или .zip</string>
|
||||
<string name="bad_extension_error">Файл должен иметь формат .conf или .zip</string>
|
||||
<string name="cancel">Отмена</string>
|
||||
<string name="config_delete_error">Не удалось удалить файл конфигурации %s</string>
|
||||
<string name="config_exists_error">Конфигурация для “%s” уже существует</string>
|
||||
<string name="config_file_exists_error">Файл конфигурации “%s” уже существует</string>
|
||||
<string name="config_not_found_error">Файл конфигурации “%s” не найден</string>
|
||||
<string name="config_rename_error">Не удалось переименовать файл конфигурации “%s”</string>
|
||||
<string name="config_save_error">Не удается сохранить конфигурацию для “%1$s”: %2$s</string>
|
||||
<string name="config_save_error">Не удалось сохранить конфигурацию для “%1$s”: %2$s</string>
|
||||
<string name="config_save_success">Конфигурация для “%s” успешно сохранена</string>
|
||||
<string name="create_activity_title">Создать WireGuard туннель</string>
|
||||
<string name="create_bin_dir_error">Не удалось создать локальный двоичный каталог</string>
|
||||
<string name="create_activity_title">Создать туннель WireGuard</string>
|
||||
<string name="create_bin_dir_error">Не удалось создать локальный бинарный каталог</string>
|
||||
<string name="create_downloads_file_error">Не удалось создать файл в каталоге загрузок</string>
|
||||
<string name="create_empty">Создать вручную</string>
|
||||
<string name="create_empty">Создать с нуля</string>
|
||||
<string name="create_from_file">Импорт из файла или архива</string>
|
||||
<string name="create_from_qr_code">Сканировать QR-код</string>
|
||||
<string name="create_output_dir_error">Не удалось создать выходной каталог</string>
|
||||
<string name="create_temp_dir_error">Не удалось создать временный локальный каталог</string>
|
||||
<string name="create_tunnel">Создать туннель</string>
|
||||
<string name="copied_to_clipboard">Скопирован(о) в буфер обмена: %s</string>
|
||||
<string name="dark_theme_summary_off">В данный момент используется светлая (дневная) тема</string>
|
||||
<string name="dark_theme_summary_on">В данный момент используется темная (ночная) тема</string>
|
||||
<string name="dark_theme_title">Использовать темную тему</string>
|
||||
<string name="delete">Удалить</string>
|
||||
<string name="tv_delete">Выберите туннель для удаления</string>
|
||||
<string name="tv_select_a_storage_drive">Выберите накопитель</string>
|
||||
<string name="tv_no_file_picker">Пожалуйста установите утилиту управления файлами для их просмотра</string>
|
||||
<string name="tv_add_tunnel_get_started">Добавьте туннель, чтобы начать</string>
|
||||
<string name="disable_config_export_title">Отключить экспорт конфигурации</string>
|
||||
<string name="disable_config_export_description">Отключение экспорта конфигурации делает приватные ключи менее доступными</string>
|
||||
<string name="dns_servers">DNS-серверы</string>
|
||||
<string name="edit">Редактировать</string>
|
||||
<string name="edit">Изменить</string>
|
||||
<string name="endpoint">Конечная точка</string>
|
||||
<string name="error_down">Ошибка при выходе из туннеля: %s</string>
|
||||
<string name="error_fetching_apps">Ошибка при получении списка приложений: %s</string>
|
||||
@@ -140,43 +146,43 @@
|
||||
<string name="hint_automatic">(авто)</string>
|
||||
<string name="hint_generated">(сгенерирован)</string>
|
||||
<string name="hint_optional">(опционально)</string>
|
||||
<string name="hint_optional_discouraged">(опционально, не рекомендуется)</string>
|
||||
<string name="hint_random">(авто)</string>
|
||||
<string name="illegal_filename_error">Неверное имя файла “%s”</string>
|
||||
<string name="import_error">Не удалось импортировать туннель: %s</string>
|
||||
<string name="hint_optional_discouraged">(необязательно, не рекомендуется)</string>
|
||||
<string name="hint_random">(случайно)</string>
|
||||
<string name="illegal_filename_error">Недопустимое имя файла “%s”</string>
|
||||
<string name="import_error">Невозможно импортировать туннель: %s</string>
|
||||
<string name="import_from_qr_code">Импортировать туннель из QR-кода</string>
|
||||
<string name="import_success">Импортировано “%s”</string>
|
||||
<string name="interface_title">Интерфейс</string>
|
||||
<string name="key_contents_error">Плохие символы в ключе</string>
|
||||
<string name="key_length_error">Неверная длина ключа</string>
|
||||
<string name="key_length_explanation_base64">: Ключи WireGuard base64 должны содержать 44 символа (32 байта)</string>
|
||||
<string name="key_length_explanation_binary">: Ключи WireGuard должны быть 32 байта</string>
|
||||
<string name="key_length_error">Неправильная длина ключа</string>
|
||||
<string name="key_length_explanation_base64">: ключи WireGuard base64 должны содержать 44 символа (32 байта)</string>
|
||||
<string name="key_length_explanation_binary">: ключи WireGuard должны быть 32 байта</string>
|
||||
<string name="key_length_explanation_hex">: HEX ключи WireGuard должны содержать 64 символа (32 байта)</string>
|
||||
<string name="listen_port">Порт</string>
|
||||
<string name="log_export_error">Не удалось экспортировать логи: %s</string>
|
||||
<string name="log_export_subject">Файл логов WireGuard Android</string>
|
||||
<string name="log_export_error">Не удалось экспортировать журнал: %s</string>
|
||||
<string name="log_export_subject">Файл журнала WireGuard Android</string>
|
||||
<string name="log_export_success">Сохранено в “%s”</string>
|
||||
<string name="log_export_title">Экспорт логов в файл</string>
|
||||
<string name="log_saver_activity_label">Сохранить логи</string>
|
||||
<string name="log_viewer_pref_summary">Логи могут помочь с отладкой</string>
|
||||
<string name="log_viewer_pref_title">Просмотр логов приложения</string>
|
||||
<string name="log_viewer_title">Логи</string>
|
||||
<string name="log_export_title">Экспорт журнала в файл</string>
|
||||
<string name="log_saver_activity_label">Сохранить журнал</string>
|
||||
<string name="log_viewer_pref_summary">Журналы могут помочь при отладке</string>
|
||||
<string name="log_viewer_pref_title">Просмотр журналов приложения</string>
|
||||
<string name="log_viewer_title">Журнал</string>
|
||||
<string name="logcat_error">Не удалось запустить logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">Экспериментальный модуль ядра приоритетнее и улучшает производительность</string>
|
||||
<string name="module_disabler_disabled_title">Включить модуль ядра</string>
|
||||
<string name="module_disabler_disabled_summary">Экспериментальный модуль ядра может улучшить производительность</string>
|
||||
<string name="module_disabler_disabled_title">Включить бэкэнд модуля ядра</string>
|
||||
<string name="module_disabler_enabled_summary">Пользовательское пространство немного медленнее и улучшает стабильность</string>
|
||||
<string name="module_disabler_enabled_title">Выключить модуль ядра</string>
|
||||
<string name="module_disabler_enabled_title">Отключить бэкэнд модуля ядра</string>
|
||||
<string name="module_installer_error">Что-то пошло не так. Пожалуйста, попробуйте еще раз</string>
|
||||
<string name="module_installer_initial">Экспериментальный модуль ядра может улучшить производительность</string>
|
||||
<string name="module_installer_not_found">Для вашего устройства нет доступных модулей</string>
|
||||
<string name="module_installer_title">Скачать и установить модуль ядра</string>
|
||||
<string name="module_installer_working">Скачивание и установка…</string>
|
||||
<string name="module_version_error">Не удалось определить версию модуля ядра</string>
|
||||
<string name="module_version_error">Невозможно определить версию модуля ядра</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Только один туннель, выключит другие</string>
|
||||
<string name="multiple_tunnels_summary_on">Могут быть включены несколько туннелей одновременно</string>
|
||||
<string name="multiple_tunnels_summary_off">Включение одного туннеля отключит другие</string>
|
||||
<string name="multiple_tunnels_summary_on">Одновременно можно включить несколько туннелей</string>
|
||||
<string name="multiple_tunnels_title">Несколько туннелей</string>
|
||||
<string name="name">Имя</string>
|
||||
<string name="name">Название</string>
|
||||
<string name="no_config_error">Попытка поднять туннель без конфигурации</string>
|
||||
<string name="no_configs_error">Конфигурации не найдены</string>
|
||||
<string name="no_tunnels_error">Туннелей не существует</string>
|
||||
@@ -185,7 +191,7 @@
|
||||
<string name="parse_error_inet_endpoint">конечная точка</string>
|
||||
<string name="parse_error_inet_network">IP-сеть</string>
|
||||
<string name="parse_error_integer">число</string>
|
||||
<string name="parse_error_reason">Не могу разобрать %1$s “%2$s”</string>
|
||||
<string name="parse_error_reason">Не удается спарсить %1$s “%2$s”</string>
|
||||
<string name="peer">Пир</string>
|
||||
<string name="permission_description">управлять туннелями WireGuard, включая и отключая туннели по желанию, потенциально перенаправляя интернет-трафик</string>
|
||||
<string name="permission_label">управлять туннелями WireGuard</string>
|
||||
@@ -197,21 +203,21 @@
|
||||
<string name="qr_code_hint">Совет: генерировать с `qrencode -t ansiutf8 < tunnel.conf`.</string>
|
||||
<string name="restore_on_boot_summary_off">Не поднимать ранее выбранные туннели при загрузке</string>
|
||||
<string name="restore_on_boot_summary_on">Поднимать ранее выбранные туннели при загрузке</string>
|
||||
<string name="restore_on_boot_title">Восстанавливать при загрузке</string>
|
||||
<string name="restore_on_boot_title">Восстановить при загрузке</string>
|
||||
<string name="save">Сохранить</string>
|
||||
<string name="select_all">Выбрать все</string>
|
||||
<string name="settings">Настройки</string>
|
||||
<string name="shell_exit_status_read_error">Shell не может прочитать статус выхода</string>
|
||||
<string name="shell_marker_count_error">Shell ожидает 4 маркера, получено %d</string>
|
||||
<string name="shell_start_error">Не удалось запустить Shell: %d</string>
|
||||
<string name="success_application_will_restart">Успех. Приложение перезапустится…</string>
|
||||
<string name="success_application_will_restart">Успешно. Приложение будет перезапущено…</string>
|
||||
<string name="toggle_all">Инвертировать все</string>
|
||||
<string name="toggle_error">Ошибка переключения туннеля WireGuard: %s</string>
|
||||
<string name="tools_installer_already">wg и wg-quick уже установлены</string>
|
||||
<string name="tools_installer_failure">Не удалось установить инструменты командной строки (нет root?)</string>
|
||||
<string name="tools_installer_initial">Установите дополнительные инструменты для сценариев</string>
|
||||
<string name="tools_installer_initial_magisk">Установите дополнительные инструменты для сценариев в качестве модуля Magisk</string>
|
||||
<string name="tools_installer_initial_system">Установите дополнительные инструменты для сценариев в системный раздел</string>
|
||||
<string name="tools_installer_initial">Установить дополнительные инструменты для сценариев</string>
|
||||
<string name="tools_installer_initial_magisk">Установить дополнительные инструменты для сценариев в качестве модуля Magisk</string>
|
||||
<string name="tools_installer_initial_system">Установить дополнительные инструменты для сценариев в системный раздел</string>
|
||||
<string name="tools_installer_success_magisk">wg и wg-quick установлены как модуль Magisk (требуется перезагрузка)</string>
|
||||
<string name="tools_installer_success_system">wg и wg-quick установлены в системный раздел</string>
|
||||
<string name="tools_installer_title">Установить инструменты командной строки</string>
|
||||
@@ -219,37 +225,36 @@
|
||||
<string name="tools_unavailable_error">Необходимые инструменты недоступны</string>
|
||||
<string name="transfer">Статистика</string>
|
||||
<string name="transfer_bytes">%d Б</string>
|
||||
<string name="transfer_gibibytes">%.2f Гб</string>
|
||||
<string name="transfer_kibibytes">%.2f Кб</string>
|
||||
<string name="transfer_mibibytes">%.2f Мб</string>
|
||||
<string name="transfer_rx_tx">Принято: %1$s, Отдано: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f Тб</string>
|
||||
<string name="transfer_gibibytes">%.2f ГиБ</string>
|
||||
<string name="transfer_kibibytes">%.2f КиБ</string>
|
||||
<string name="transfer_mibibytes">%.2f МиБ</string>
|
||||
<string name="transfer_rx_tx">Принято: %1$s, Передано: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f ТиБ</string>
|
||||
<string name="tun_create_error">Не удалось создать устройство tun</string>
|
||||
<string name="tunnel_config_error">Не удалось настроить туннель (wg-quick вернул %d)</string>
|
||||
<string name="tunnel_create_error">Не удалось создать туннель: %s</string>
|
||||
<string name="tunnel_create_success">Успешно созданный туннель “%s”</string>
|
||||
<string name="tunnel_create_success">Успешно создан туннель “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Туннель “%s” уже существует</string>
|
||||
<string name="tunnel_error_invalid_name">Неправильное имя</string>
|
||||
<string name="tunnel_error_invalid_name">Некорректное название</string>
|
||||
<string name="tunnel_list_placeholder">Добавьте туннель с помощью синей кнопки</string>
|
||||
<string name="tunnel_name">Название туннеля</string>
|
||||
<string name="tunnel_on_error">Не удалось включить туннель (wgTurnOn вернул %d)</string>
|
||||
<string name="tunnel_rename_error">Не удалось переименовать туннель: %s</string>
|
||||
<string name="tunnel_rename_success">Туннель успешно переименован в “%s”</string>
|
||||
<string name="type_name_go_userspace">Пользовательское пространство</string>
|
||||
<string name="type_name_go_userspace">Пользовательское пространство Go</string>
|
||||
<string name="type_name_kernel_module">Модуль ядра</string>
|
||||
<string name="unknown_error">Неизвестная ошибка</string>
|
||||
<string name="version_summary">%1$s v%2$s</string>
|
||||
<string name="version_summary_checking">Проверка версии %s</string>
|
||||
<string name="version_summary_checking">Проверка версии бэкэнда %s</string>
|
||||
<string name="version_summary_unknown">Неизвестная версия %s</string>
|
||||
<string name="version_title">WireGuard для Android v%s</string>
|
||||
<string name="vpn_not_authorized_error">VPN-сервис не авторизован пользователем</string>
|
||||
<string name="vpn_not_authorized_error">Сервис VPN не авторизован пользователем</string>
|
||||
<string name="vpn_start_error">Не удалось запустить службу Android VPN</string>
|
||||
<string name="zip_export_error">Не удалось экспортировать туннели: %s</string>
|
||||
<string name="zip_export_success">Сохранено в “%s”</string>
|
||||
<string name="zip_export_summary">Zip-архив будет сохранен в папке загрузок</string>
|
||||
<string name="zip_export_title">Экспорт туннелей в zip-архив</string>
|
||||
<string name="zip_export_summary">Zip-файл будет сохранен в папке загрузок</string>
|
||||
<string name="zip_export_title">Экспорт туннелей в zip-файл</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Аутентификация для экспорта туннелей</string>
|
||||
<string name="biometric_prompt_private_key_title">Аутентификация для просмотра приватного ключа</string>
|
||||
<string name="biometric_prompt_private_key_title">Аутентификация для просмотра закрытого ключа</string>
|
||||
<string name="biometric_auth_error">Ошибка аутентификации</string>
|
||||
<string name="biometric_auth_error_reason">Ошибка аутентификации: %s</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="all_applications">Všetky aplikácie</string>
|
||||
<string name="exclude_from_tunnel">Vylúč</string>
|
||||
<string name="include_in_tunnel">Zahrň len</string>
|
||||
<string name="use_all_applications">Použi všetky aplikácie</string>
|
||||
<string name="add_peer">Pridať peera</string>
|
||||
<string name="addresses">Adresy</string>
|
||||
<string name="applications">Aplikácie</string>
|
||||
<string name="allow_remote_control_intents_title">Povoliť aplikáciám vzdialenú správu</string>
|
||||
<string name="allowed_ips">Povolené IP adresy</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_explanation_pka">: Musí byť kladné a nie väčšie ako 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Musí byť kladné</string>
|
||||
<string name="bad_config_explanation_udp_port">: Musí byť platné číslo UDP portu</string>
|
||||
<string name="bad_config_reason_invalid_key">Neplatný kľúč</string>
|
||||
<string name="bad_config_reason_invalid_number">Neplatné číslo</string>
|
||||
<string name="bad_config_reason_invalid_value">Neplatná hodnota</string>
|
||||
<string name="bad_config_reason_missing_attribute">Chýbajúci atribút</string>
|
||||
<string name="bad_config_reason_missing_section">Chýbajúc sekcia</string>
|
||||
<string name="bad_config_reason_syntax_error">Chyba syntaxu</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Neznámy atribút</string>
|
||||
<string name="bad_config_reason_unknown_section">Neznáma sekcia</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Hodnota mimo povoleného rozsahu</string>
|
||||
<string name="bad_extension_error">Súbor musí byť .conf alebo .zip</string>
|
||||
<string name="cancel">Zrušiť</string>
|
||||
<string name="config_delete_error">Nemožete vymazať konfiguračný súbor %s</string>
|
||||
<string name="config_exists_error">Konfigurácia pre “%s” už existuje</string>
|
||||
<string name="config_file_exists_error">Konfiguračný súbor pre “%s” už existuje</string>
|
||||
<string name="config_not_found_error">Konfiguračný súbor “%s” sa nenašiel</string>
|
||||
<string name="config_rename_error">Nemôžete premenovať konfiguračný súbor “%s”</string>
|
||||
<string name="config_save_error">Nemôžete uložiť konfiguráciu pre “%1$s”: %2$s</string>
|
||||
<string name="config_save_success">Úspešne sa podarilo uložiť konfiguráciu pre “%s”</string>
|
||||
<string name="create_activity_title">Vytvoriť WireGuard tunel</string>
|
||||
<string name="create_bin_dir_error">Nemôžete vytvoriť lokálny binárny súbor</string>
|
||||
<string name="create_downloads_file_error">Nemôžete vytvoriť súbor v priečinku downloads</string>
|
||||
<string name="create_empty">Vytvoriť od počiatku</string>
|
||||
<string name="create_from_file">Importovať zo súboru alebo archívu</string>
|
||||
<string name="create_from_qr_code">Skenovať z QR kódu</string>
|
||||
<string name="create_tunnel">Vytvoriť tunel</string>
|
||||
<string name="copied_to_clipboard">%s skopírované do schránky</string>
|
||||
<string name="dark_theme_summary_off">Momentálne používate svetlý (denný) vzhľad</string>
|
||||
<string name="dark_theme_summary_on">Momentálne používate tmavý (nočný) vzhľad</string>
|
||||
<string name="dark_theme_title">Používať tmavý vzhľad</string>
|
||||
<string name="delete">Odstrániť</string>
|
||||
<string name="tv_delete">Vyberte tunel na odstránenie</string>
|
||||
<string name="tv_select_a_storage_drive">Vyberte úložnú jednotku</string>
|
||||
<string name="tv_no_file_picker">Prosím nainštalujte manažéra súbor aby ste mohli prehliadať súbory</string>
|
||||
<string name="tv_add_tunnel_get_started">Pridajte tunel aby ste mohli začať</string>
|
||||
<string name="dns_servers">Servery DNS</string>
|
||||
<string name="edit">Upraviť</string>
|
||||
<string name="endpoint">Koncový bod</string>
|
||||
<string name="error_down">Chyba pri vypínaní tunela: %s</string>
|
||||
<string name="error_fetching_apps">Chyba pri načítaní zoznamu aplikácií: %s</string>
|
||||
<string name="error_root">Získajte prístup root a skúste znova</string>
|
||||
<string name="error_up">Chyba pri vyvolávaní tunela: %s</string>
|
||||
<string name="exclude_private_ips">Vynechať privátne IP</string>
|
||||
<string name="generate_new_private_key">Generovať nový privátny kľúč</string>
|
||||
<string name="generic_error">Neznáma “%s” chyba</string>
|
||||
<string name="hint_generated">(generované)</string>
|
||||
<string name="hint_optional">(voliteľné)</string>
|
||||
<string name="hint_optional_discouraged">(voliteľné, neodporúča sa)</string>
|
||||
<string name="hint_random">(náhodné)</string>
|
||||
<string name="illegal_filename_error">Ilegálne meno súboru “%s”</string>
|
||||
<string name="import_error">Nepodarilo sa importovať tunel: %s</string>
|
||||
<string name="import_from_qr_code">Importovať tunel z QR kódu</string>
|
||||
<string name="import_success">Podarilo sa importovať “%s”</string>
|
||||
<string name="interface_title">Rozhranie</string>
|
||||
<string name="key_contents_error">Nepovolené charaktery v kľúči</string>
|
||||
<string name="key_length_error">Nesprávna dĺžka kľúču</string>
|
||||
<string name="key_length_explanation_base64">: WireGuard base64 kľúče musia mať 44 charakterov (32 bytes)</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard kľúče musia byť 32 bytové</string>
|
||||
<string name="key_length_explanation_hex">: WireGuard hex kľúče musia mať 64 charakterov (32 bytes)</string>
|
||||
<string name="log_export_error">Nepodarilo sa exportovať log: %s</string>
|
||||
<string name="log_export_success">Uložené do “%s”</string>
|
||||
<string name="log_export_title">Exportovať denník udalostí</string>
|
||||
<string name="log_saver_activity_label">Uložiť denník udalostí</string>
|
||||
<string name="log_viewer_pref_summary">Denník udalosti môžu byt nápomocné pri ladení aplikácie</string>
|
||||
<string name="log_viewer_pref_title">Zobraziť denník udalostí aplikácie</string>
|
||||
<string name="module_disabler_enabled_summary">Pomalšie užívatelské prostredie môže zlepšiť stabilitu</string>
|
||||
<string name="module_installer_error">Niečo sa pokazilo. Prosím, skúste znova</string>
|
||||
<string name="module_installer_not_found">Pre vaše zariadenie nie sú k dispozícii žiadne moduly</string>
|
||||
<string name="module_installer_title">Stiahni a nainštaluj kernel modul</string>
|
||||
<string name="module_installer_working">Sťahuje a inštalujem…</string>
|
||||
<string name="mtu">Maximálna prenosová jednotka</string>
|
||||
<string name="multiple_tunnels_summary_off">Zapnutím jedného tunela vypnete ostatné</string>
|
||||
<string name="multiple_tunnels_summary_on">Môžu byť zapnuté viaceré tunele naraz</string>
|
||||
<string name="name">Názov</string>
|
||||
<string name="no_config_error">Pokúšam sa vyvolať tunel bez konfigurácie</string>
|
||||
<string name="no_configs_error">Nenašli sa žiadne konfigurácie</string>
|
||||
<string name="no_tunnels_error">Neexistujú žiadne tunely</string>
|
||||
<string name="parse_error_inet_address">IP adresa</string>
|
||||
<string name="parse_error_inet_endpoint">koncový bod</string>
|
||||
<string name="parse_error_inet_network">IP sieť</string>
|
||||
<string name="parse_error_integer">číslo</string>
|
||||
<string name="pre_shared_key_enabled">povolené</string>
|
||||
<string name="private_key">Súkromný kľúč</string>
|
||||
<string name="public_key">Verejný kľúč</string>
|
||||
<string name="restore_on_boot_title">Obnov po štarte</string>
|
||||
<string name="save">Uložiť</string>
|
||||
<string name="select_all">Označiť všetko</string>
|
||||
<string name="settings">Nastavenia</string>
|
||||
<string name="toggle_all">Prepnúť všetko</string>
|
||||
<string name="tools_installer_already">wg a wg-quick už sú nainštalované</string>
|
||||
<string name="tools_installer_initial">Nainštalovať voliteľné nástroje pre skriptovanie</string>
|
||||
<string name="tools_installer_initial_magisk">Nainštalovať voliteľné nástroje pre skriptovanie ako Magisk module</string>
|
||||
<string name="tools_installer_success_magisk">wg a wg-quick sú nainštalované ako Magisk modul (reštart požadovaný)</string>
|
||||
<string name="tools_installer_title">Inštalácia nástrojov príkazového riadku</string>
|
||||
<string name="tools_installer_working">Inštalácia wg a wg-quick</string>
|
||||
<string name="tools_unavailable_error">Potrebné nástroje nie sú k dispozícii</string>
|
||||
<string name="transfer">Prenos</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">sem: %1$s, tam: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">Nepodarilo sa vytvoriť tun zariadenie</string>
|
||||
<string name="tunnel_create_error">Nepodarilo sa vytvoriť tunel: %s</string>
|
||||
<string name="tunnel_create_success">Úspešne vytvorený tunel “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Tunel “%s” už existuje</string>
|
||||
<string name="tunnel_error_invalid_name">Neplatný názov</string>
|
||||
<string name="tunnel_list_placeholder">Pridajte tunel pomocou modrého tlačidla</string>
|
||||
<string name="tunnel_name">Meno tunelu</string>
|
||||
<string name="tunnel_rename_error">Nepodarilo sa premenovať tunel: %s</string>
|
||||
<string name="tunnel_rename_success">Úspešne premenovaný tunel na “%s”</string>
|
||||
<string name="type_name_kernel_module">Modul jadra</string>
|
||||
<string name="unknown_error">Neznáma chyba</string>
|
||||
<string name="version_summary_unknown">Neznáma %s verzia</string>
|
||||
<string name="version_title">WireGuard pre Android v%s</string>
|
||||
<string name="vpn_not_authorized_error">VPN služba neautorizovaná používateľom</string>
|
||||
<string name="vpn_start_error">Nepodarilo sa spustiť Android VPN službu</string>
|
||||
<string name="zip_export_error">Nepodarilo sa exportovať tunely: %s</string>
|
||||
<string name="zip_export_success">Uložené ako “%s”</string>
|
||||
<string name="zip_export_summary">Zip súbor bude uložený do priečinka na sťahovanie</string>
|
||||
<string name="zip_export_title">Export tunelov do zip súboru</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Overovanie pre export tunelov</string>
|
||||
<string name="biometric_prompt_private_key_title">Overovanie pre zobrazenie privátneho kľúča</string>
|
||||
<string name="biometric_auth_error">Overovanie zlyhalo</string>
|
||||
<string name="biometric_auth_error_reason">Overovanie zlyhalo: %s</string>
|
||||
</resources>
|
||||
@@ -89,7 +89,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">Zunanje aplikacije lahko preklapljajo tunele (napredno)</string>
|
||||
<string name="allow_remote_control_intents_title">Dovoljeno upravljanje preko zunanjih aplikacij</string>
|
||||
<string name="allowed_ips">Dovoljeni naslovi IP</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s-ov %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s v %2$s</string>
|
||||
@@ -127,6 +126,11 @@
|
||||
<string name="dark_theme_summary_on">V uporabi temna (nočna) tema</string>
|
||||
<string name="dark_theme_title">Uporabi temno temo</string>
|
||||
<string name="delete">Izbriši</string>
|
||||
<string name="tv_delete">Izberi tunel za izbris</string>
|
||||
<string name="tv_no_file_picker">Prosim namesti orodje za upravljanje datotek za njihov ogled</string>
|
||||
<string name="tv_add_tunnel_get_started">Za začetek dodaj tunel</string>
|
||||
<string name="disable_config_export_title">Onemogoči izvoz nastavitev</string>
|
||||
<string name="disable_config_export_description">Onemogočavnje nastavitev za izvoz nastavitev naredi tajne kluče manj dostopne</string>
|
||||
<string name="dns_servers">Strežniki DNS</string>
|
||||
<string name="edit">Uredi</string>
|
||||
<string name="endpoint">Končna točka</string>
|
||||
@@ -238,7 +242,6 @@
|
||||
<string name="type_name_go_userspace">Uporabniški prostor Go</string>
|
||||
<string name="type_name_kernel_module">Modul jedra</string>
|
||||
<string name="unknown_error">Neznana napaka</string>
|
||||
<string name="version_summary">Zaledje %1$s v%2$s</string>
|
||||
<string name="version_summary_checking">Preverjam verzijo zaledja %s</string>
|
||||
<string name="version_summary_unknown">Neznana verzija %s</string>
|
||||
<string name="version_title">WireGuard za Android v%s</string>
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">Kunde inte ta bort %d tunnel: %s</item>
|
||||
<item quantity="other">Kunde inte ta bort %d tunnlar: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">Tog bort %d tunneln</item>
|
||||
<item quantity="other">Tog bort %d tunnlar</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d tunnel vald</item>
|
||||
<item quantity="other">%d tunnlar valda</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">Importerade %1$d av %2$d tunnlar</item>
|
||||
<item quantity="other">Importerade %1$d av %2$d tunnlar</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">Importerade %d tunnel</item>
|
||||
<item quantity="other">Importerade %d tunnlar</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d exkluderad applikation</item>
|
||||
<item quantity="other">%d Exkluderade applikationer</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d inkluderad applikation</item>
|
||||
<item quantity="other">%d inkluderade applikationer</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d exkluderad</item>
|
||||
<item quantity="other">%d exkluderade</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d inkluderad</item>
|
||||
<item quantity="other">%d inkluderade</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Alla applikationer</string>
|
||||
<string name="exclude_from_tunnel">Exkludera</string>
|
||||
<string name="include_in_tunnel">Inkludera endast</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Inkludera %d app</item>
|
||||
<item quantity="other">Inkludera %d appar</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Exkludera %d app</item>
|
||||
<item quantity="other">Exkludera %d appar</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">varje sekund</item>
|
||||
<item quantity="other">varje %d sekunder</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">sekund</item>
|
||||
<item quantity="other">sekunder</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Använd alla appar</string>
|
||||
<string name="add_peer">Lägg till klient</string>
|
||||
<string name="addresses">Adresser</string>
|
||||
<string name="applications">Applikationer</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Externa appar kan inte växla tunnlar (rekommenderas)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Externa appar kan växla tunnlar (avancerat)</string>
|
||||
<string name="allow_remote_control_intents_title">Tillåt fjärrstyrningsappar</string>
|
||||
<string name="allowed_ips">Tillåtna IP-adresser</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s i %2$s</string>
|
||||
<string name="bad_config_explanation_pka">: Måste vara positivt och högst 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Måste vara positivt</string>
|
||||
<string name="bad_config_explanation_udp_port">: Måste vara ett giltigt UDP-portnummer</string>
|
||||
<string name="bad_config_reason_invalid_key">Ogiltig nyckel</string>
|
||||
<string name="bad_config_reason_invalid_number">Ogiltigt nummer</string>
|
||||
<string name="bad_config_reason_invalid_value">Ogiltigt värde</string>
|
||||
<string name="bad_config_reason_missing_attribute">Attribut saknas</string>
|
||||
<string name="bad_config_reason_missing_section">Avsnitt saknas</string>
|
||||
<string name="bad_config_reason_syntax_error">Syntaxfel</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Okänt attribut</string>
|
||||
<string name="bad_config_reason_unknown_section">Okänt avsnitt</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Värde utanför giltigt intervall</string>
|
||||
<string name="bad_extension_error">Filen måste vara .conf eller .zip</string>
|
||||
<string name="cancel">Avbryt</string>
|
||||
<string name="config_delete_error">Kan inte ta bort konfigurationsfilen %s</string>
|
||||
<string name="config_exists_error">Konfiguration för ”%s” finns redan</string>
|
||||
<string name="config_file_exists_error">Konfigurationsfil ”%s” finns redan</string>
|
||||
<string name="config_not_found_error">Konfigurationsfil ”%s” hittades inte</string>
|
||||
<string name="config_rename_error">Kan inte byta namn på konfigurationsfil ”%s”</string>
|
||||
<string name="config_save_error">Kan inte spara konfigurationen för ”%1$s”: %2$s</string>
|
||||
<string name="config_save_success">Konfigurationen för ”%s ” sparades</string>
|
||||
<string name="create_activity_title">Skapa WireGuard Tunnel</string>
|
||||
<string name="create_from_file">Importera från fil eller arkiv</string>
|
||||
<string name="create_from_qr_code">Skanna från QR-kod</string>
|
||||
<string name="create_output_dir_error">Kan inte skapa utdatakatalog</string>
|
||||
<string name="create_temp_dir_error">Kan inte skapa lokal temporär katalog</string>
|
||||
<string name="create_tunnel">Skapa tunnel</string>
|
||||
<string name="copied_to_clipboard">%s kopierades till urklipp</string>
|
||||
<string name="dark_theme_summary_off">Använder just nu ljust (dag) tema</string>
|
||||
<string name="dark_theme_summary_on">Använder just nu mörkt (natt) tema</string>
|
||||
<string name="dark_theme_title">Använd mörkt tema</string>
|
||||
<string name="delete">Radera</string>
|
||||
<string name="tv_delete">Välj tunnel att ta bort</string>
|
||||
<string name="tv_select_a_storage_drive">Välj en lagringsenhet</string>
|
||||
<string name="tv_no_file_picker">Installera ett filhanteringsverktyg för att bläddra bland filer</string>
|
||||
<string name="tv_add_tunnel_get_started">Lägg till en tunnel för att komma igång</string>
|
||||
<string name="disable_config_export_title">Inaktivera export av konfiguration</string>
|
||||
<string name="disable_config_export_description">Inaktivering av konfigurationsexport gör privata nycklar mindre tillgängliga</string>
|
||||
<string name="dns_servers">DNS-servrar</string>
|
||||
<string name="edit">Redigera</string>
|
||||
<string name="endpoint">Ändpunkt</string>
|
||||
<string name="error_down">Fel vid nedtagning av tunnel: %s</string>
|
||||
<string name="error_fetching_apps">Fel vid hämtning av applista: %s</string>
|
||||
<string name="error_root">Vänligen få rootbehörighet och försök igen</string>
|
||||
<string name="log_saver_activity_label">Spara logg</string>
|
||||
<string name="log_viewer_pref_summary">Loggar kan hjälpa till med felsökning</string>
|
||||
<string name="log_viewer_pref_title">Visa applikationslogg</string>
|
||||
<string name="log_viewer_title">Logg</string>
|
||||
<string name="logcat_error">Kunde inte köra logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">Den experimentella kärnmodulen kan förbättra prestanda</string>
|
||||
<string name="module_disabler_disabled_title">Aktivera backend för kärnmodul</string>
|
||||
<string name="module_disabler_enabled_summary">Den långsammare backend för användarrymden kan förbättra stabiliteten</string>
|
||||
<string name="module_disabler_enabled_title">Inaktivera backend för kärnmodul</string>
|
||||
<string name="module_installer_error">Något gick fel. Vänligen försök igen</string>
|
||||
<string name="module_installer_initial">Den experimentella kärnmodulen kan förbättra prestanda</string>
|
||||
<string name="module_installer_not_found">Inga moduler finns tillgängliga för din enhet</string>
|
||||
<string name="module_installer_title">Ladda ner och installera kärnmodul</string>
|
||||
<string name="module_installer_working">Hämtar och installerar…</string>
|
||||
<string name="module_version_error">Kunde inte bestämma version av kärnmodulen</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Att slå på en tunnel stänger av andra</string>
|
||||
<string name="multiple_tunnels_summary_on">Flera tunnlar kan slås på samtidigt</string>
|
||||
<string name="multiple_tunnels_title">Tillåt flera samtidiga tunnlar</string>
|
||||
<string name="name">Namn</string>
|
||||
<string name="no_config_error">Försöker bygga en tunnel utan konfiguration</string>
|
||||
<string name="no_configs_error">Inga konfigurationer hittades</string>
|
||||
<string name="no_tunnels_error">Inga tunnlar finns</string>
|
||||
<string name="parse_error_generic">sträng</string>
|
||||
<string name="parse_error_inet_address">IP-adress</string>
|
||||
<string name="parse_error_inet_endpoint">endpoint</string>
|
||||
<string name="parse_error_inet_network">IP-nätverk</string>
|
||||
<string name="parse_error_integer">nummer</string>
|
||||
<string name="parse_error_reason">Kan inte tolka %1$s ”%2$s”</string>
|
||||
<string name="peer">Klient</string>
|
||||
<string name="permission_label">kontrollera WireGuard tunnlar</string>
|
||||
<string name="persistent_keepalive">Beständig keepalive</string>
|
||||
<string name="pre_shared_key">Fördelad nyckel</string>
|
||||
<string name="pre_shared_key_enabled">aktiverad</string>
|
||||
<string name="private_key">Privat nyckel</string>
|
||||
<string name="public_key">Publik nyckel</string>
|
||||
<string name="qr_code_hint">Tips: generera med `qrencode -t ansiutf8 < tunnel.conf`.</string>
|
||||
<string name="restore_on_boot_summary_off">Kommer inte ta upp aktiverade tunnlar vid uppstart</string>
|
||||
<string name="restore_on_boot_summary_on">Kommer ta upp aktiverade tunnlar vid uppstart</string>
|
||||
<string name="restore_on_boot_title">Återställ vid uppstart</string>
|
||||
<string name="save">Spara</string>
|
||||
<string name="select_all">Markera alla</string>
|
||||
<string name="settings">Inställningar</string>
|
||||
<string name="shell_exit_status_read_error">Shell kan inte läsa avslutningsstatus</string>
|
||||
<string name="shell_marker_count_error">Shell förväntade sig 4 markörer, tog emot %d</string>
|
||||
<string name="shell_start_error">Shell kunde inte starta: %d</string>
|
||||
<string name="success_application_will_restart">Framgång. Applikationen kommer nu att starta om…</string>
|
||||
<string name="toggle_all">Växla alla</string>
|
||||
<string name="toggle_error">Fel vid växling av WireGuard-tunnel: %s</string>
|
||||
</resources>
|
||||
@@ -1,24 +1,234 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">%d tüneli silinemiyor: %s</item>
|
||||
<item quantity="other">%d tünelleri silinemiyor: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">%d tüneli başarıyla silindi</item>
|
||||
<item quantity="other">%d tünelleri başarıyla silindi</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d tüneli seçildi</item>
|
||||
<item quantity="other">%d tünelleri seçildi</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">%1$d/%2$d tünel içe aktarıldı</item>
|
||||
<item quantity="other">%1$d/%2$d tünel içe aktarıldı</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">%d tünel içe aktarıldı</item>
|
||||
<item quantity="other">%d tünel içe aktarıldı</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d Hariç Tutulan Uygulama</item>
|
||||
<item quantity="other">%d Hariç Tutulan Uygulamalar</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d Dahil Edilen Uygulama</item>
|
||||
<item quantity="other">%d Dahil Edilen Uygulamalar</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d hariç tutuldu</item>
|
||||
<item quantity="other">%d hariç tutuldu</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d dahil edildi</item>
|
||||
<item quantity="other">%d dahil edildi</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Tüm Uygulamalar</string>
|
||||
<string name="exclude_from_tunnel">Hariç</string>
|
||||
<string name="include_in_tunnel">Yalnızca dahil</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">%d uygulamasını dahil et</item>
|
||||
<item quantity="other">%d uygulamalarını dahil et</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">%d uygulamasını hariç tut</item>
|
||||
<item quantity="other">%d uygulamalarını hariç tut</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">her saniye</item>
|
||||
<item quantity="other">%d saniyede bir</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">saniye</item>
|
||||
<item quantity="other">saniye</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Tüm uygulamaları kullan</string>
|
||||
<string name="add_peer">Eş ekle</string>
|
||||
<string name="addresses">Adresler</string>
|
||||
<string name="applications">Uygulamalar</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Harici uygulamalar tünelleri değiştiremez (önerilir)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Harici uygulamalar tünelleri değiştirebilir (gelişmiş)</string>
|
||||
<string name="allow_remote_control_intents_title">Uzaktan kontrol uygulamalarına izin ver</string>
|
||||
<string name="allowed_ips">İzin verilen IP\'ler</string>
|
||||
<string name="bad_config_context">%1$s\'in %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%2$s içinde %1$s</string>
|
||||
<string name="bad_config_explanation_pka">: Pozitif olmalı ve 65535\'ten fazla olmamalıdır</string>
|
||||
<string name="bad_config_explanation_positive_number">: Pozitif olmalıdır</string>
|
||||
<string name="bad_config_explanation_udp_port">: Geçerli bir UDP Port numarası olmalıdır</string>
|
||||
<string name="bad_config_reason_invalid_key">Geçersiz anahtar</string>
|
||||
<string name="bad_config_reason_invalid_number">Geçersiz numara</string>
|
||||
<string name="bad_config_reason_invalid_value">Geçersiz değer</string>
|
||||
<string name="bad_config_reason_missing_attribute">Eksik öznitelik</string>
|
||||
<string name="bad_config_reason_missing_section">Eksik bölüm</string>
|
||||
<string name="bad_config_reason_syntax_error">Sözdizimi hatası</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Bilinmeyen öznitelik</string>
|
||||
<string name="bad_config_reason_unknown_section">Bilinmeyen bölüm</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Aralık dışı değer</string>
|
||||
<string name="bad_extension_error">Dosya .conf veya .zip olmalıdır</string>
|
||||
<string name="cancel">İptal</string>
|
||||
<string name="config_delete_error">%s konfigürasyon dosyası silinemiyor</string>
|
||||
<string name="config_exists_error">“%s” için konfigürasyon zaten var</string>
|
||||
<string name="config_file_exists_error">“%s“ için konfigürasyon dosyası zaten var</string>
|
||||
<string name="config_not_found_error">“%s“ konfigürasyon dosyası bulunamadı</string>
|
||||
<string name="config_rename_error">“%s” konfigürasyon dosyası yeniden adlandırılamıyor</string>
|
||||
<string name="config_save_error">“%1$s” için konfigürasyon kaydedilemiyor: %2$s</string>
|
||||
<string name="config_save_success">“%s“ için konfigürasyon başarıyla kaydedildi</string>
|
||||
<string name="create_activity_title">WireGuard Tüneli Yarat</string>
|
||||
<string name="create_downloads_file_error">İndirilenler klasöründe dosya yaratılamadı</string>
|
||||
<string name="create_empty">Sıfırdan Yaratın</string>
|
||||
<string name="create_from_file">Arşivden geri yükle</string>
|
||||
<string name="create_from_qr_code">QR Kodu Tara</string>
|
||||
<string name="create_output_dir_error">Çıkış klasörü yaratılamadı</string>
|
||||
<string name="create_tunnel">Tünel Yarat</string>
|
||||
<string name="dark_theme_title">Koyu renk Temayı Kullan</string>
|
||||
<string name="create_bin_dir_error">Yerel ikili dizin oluşturulamıyor</string>
|
||||
<string name="create_downloads_file_error">İndirilenler klasöründe dosya oluşturulamadı</string>
|
||||
<string name="create_empty">Sıfırdan oluştur</string>
|
||||
<string name="create_from_file">Dosya veya arşivden ekle</string>
|
||||
<string name="create_from_qr_code">QR kodundan ekle</string>
|
||||
<string name="create_output_dir_error">Çıktı klasörü oluşturulamıyor</string>
|
||||
<string name="create_temp_dir_error">Yerel geçici dizin oluşturulamıyor</string>
|
||||
<string name="create_tunnel">Tünel Oluştur</string>
|
||||
<string name="copied_to_clipboard">%s panoya kopyalandı</string>
|
||||
<string name="dark_theme_summary_off">Şu anda açık (gündüz) teması kullanılıyor</string>
|
||||
<string name="dark_theme_summary_on">Şu anda karanlık (gece) teması kullanılıyor</string>
|
||||
<string name="dark_theme_title">Koyu tema kullan</string>
|
||||
<string name="delete">Sil</string>
|
||||
<string name="tv_delete">Silinecek tüneli seçin</string>
|
||||
<string name="tv_select_a_storage_drive">Bir depolama sürücüsü seçin</string>
|
||||
<string name="tv_no_file_picker">Dosyalara göz atmak için lütfen bir dosya yönetim aracı yükleyin</string>
|
||||
<string name="tv_add_tunnel_get_started">Başlamak için bir tünel ekleyin</string>
|
||||
<string name="disable_config_export_title">Ayarları dışa aktarmayı kapa</string>
|
||||
<string name="disable_config_export_description">Ayarları dışa aktarmayı kapamak gizli anahtarları daha az erişilebilir kılar</string>
|
||||
<string name="dns_servers">DNS sunucuları</string>
|
||||
<string name="edit">Düzenle</string>
|
||||
<string name="endpoint">Uç nokta</string>
|
||||
<string name="error_down">Tünel kapatılırken hata oluştu: %s</string>
|
||||
<string name="error_fetching_apps">Uygulama listesi getirilirken hata oluştu: %s</string>
|
||||
<string name="error_root">Lütfen root erişimi elde edin ve tekrar deneyin</string>
|
||||
<string name="error_up">Tünel açılırken hata oluştu: %s</string>
|
||||
<string name="exclude_private_ips">Özel IP’leri hariç tut</string>
|
||||
<string name="generate_new_private_key">Yeni özel anahtar oluştur</string>
|
||||
<string name="generic_error">Bilinmeyen “%s” hatası</string>
|
||||
<string name="hint_automatic">(otomatik)</string>
|
||||
<string name="hint_generated">(oluşturuldu)</string>
|
||||
<string name="hint_optional">(isteğe bağlı)</string>
|
||||
<string name="hint_optional_discouraged">(İsteğe bağlı-Önerilmez)</string>
|
||||
<string name="hint_random">(Rastgele)</string>
|
||||
<string name="import_from_qr_code">Tüneli içeri QR ile al</string>
|
||||
<string name="hint_optional_discouraged">(isteğe bağlı, önerilmez)</string>
|
||||
<string name="hint_random">(rastgele)</string>
|
||||
<string name="illegal_filename_error">Geçersiz dosya ismi “%s”</string>
|
||||
<string name="import_error">Tünel içeri aktarılamıyor: %s</string>
|
||||
<string name="import_from_qr_code">Tüneli QR Kod ile İçe Aktar</string>
|
||||
<string name="import_success">İçe aktarıldı “%s”</string>
|
||||
<string name="interface_title">Arayüz</string>
|
||||
<string name="listen_port">Dinleme portu</string>
|
||||
<string name="log_export_title">Dosyayı Dışarı Aktar</string>
|
||||
<string name="key_contents_error">Anahtardaki yanlış karakterler</string>
|
||||
<string name="key_length_error">Yanlış anahtar uzunluğu</string>
|
||||
<string name="key_length_explanation_base64">: WireGuard base64 anahtarları 44 karakter (32 bayt) olmalıdır</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard anahtarları 32 bayt olmalıdır</string>
|
||||
<string name="key_length_explanation_hex">: WireGuard onaltılık anahtarları 64 karakter (32 bayt) olmalıdır</string>
|
||||
<string name="listen_port">Dinlenen port</string>
|
||||
<string name="log_export_error">Günlük dışa aktarılamıyor: %s</string>
|
||||
<string name="log_export_subject">WireGuard Android Günlük Dosyası</string>
|
||||
<string name="log_export_success">“%s” ’e kaydedildi</string>
|
||||
<string name="log_export_title">Günlük dosyasını dışa aktar</string>
|
||||
<string name="log_saver_activity_label">Günlüğü kaydet</string>
|
||||
<string name="log_viewer_pref_title">Uygulama günlüğüne bak</string>
|
||||
<string name="log_viewer_pref_summary">Günlükler hata ayıklamaya yardımcı olabilir</string>
|
||||
<string name="log_viewer_pref_title">Uygulama günlüğünü görüntüle</string>
|
||||
<string name="log_viewer_title">Günlük</string>
|
||||
<string name="logcat_error">Logcat çalıştırılamıyor: </string>
|
||||
<string name="module_disabler_disabled_summary">Deneysel çekirdek modülü performansı artırabilir</string>
|
||||
<string name="module_disabler_disabled_title">Çekirdek modülü arka ucunu etkinleştir</string>
|
||||
<string name="module_disabler_enabled_summary">Daha yavaş kullanıcı alanı arka ucu kararlılığı artırabilir</string>
|
||||
<string name="module_disabler_enabled_title">Çekirdek modülü arka ucunu devre dışı bırak</string>
|
||||
<string name="module_installer_error">Bir şeyler yanlış gitti. Lütfen tekrar deneyin</string>
|
||||
<string name="module_installer_initial">Deneysel çekirdek modülü performansı artırabilir</string>
|
||||
<string name="module_installer_not_found">Cihazınız için uygun modül yok</string>
|
||||
<string name="module_installer_title">Çekirdek modülünü indir ve yükle</string>
|
||||
<string name="module_installer_working">İndiriliyor ve yükleniyor…</string>
|
||||
<string name="module_version_error">Çekirdek modülü sürümü belirlenemiyor</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Bir tüneli açmak diğerlerini kapatır</string>
|
||||
<string name="multiple_tunnels_summary_on">Aynı anda birden fazla tünel açılabilir</string>
|
||||
<string name="multiple_tunnels_title">Birden çok eşzamanlı tünele izin verin</string>
|
||||
<string name="name">İsim</string>
|
||||
<string name="no_config_error">Konfigürasyonsuz bir tünel açmaya çalışılıyor</string>
|
||||
<string name="no_configs_error">Konfigürasyon bulunamadı</string>
|
||||
<string name="no_tunnels_error">Tünel yok</string>
|
||||
<string name="parse_error_generic">dizi</string>
|
||||
<string name="parse_error_inet_address">IP adresi</string>
|
||||
<string name="parse_error_inet_endpoint">uç nokta</string>
|
||||
<string name="parse_error_inet_network">IP ağı</string>
|
||||
<string name="parse_error_integer">numara</string>
|
||||
<string name="parse_error_reason">%1$s “%2$s” ayrıştırılamıyor</string>
|
||||
<string name="peer">Eş</string>
|
||||
<string name="permission_description">WireGuard tünellerini kontrol edin, tünelleri istediğiniz zaman etkinleştirin ve devre dışı bırakın, İnternet trafiğini potansiyel olarak yanlış yönlendirin</string>
|
||||
<string name="permission_label">WireGuard tünellerini kontrol edin</string>
|
||||
<string name="persistent_keepalive">Kalıcı canlı tutma</string>
|
||||
<string name="pre_shared_key">Önceden paylaşılan anahtar</string>
|
||||
<string name="pre_shared_key_enabled">etkinleştirildi</string>
|
||||
<string name="private_key">Özel anahtar</string>
|
||||
<string name="public_key">Genel anahtar</string>
|
||||
<string name="qr_code_hint">İpucu: `qrencode -t ansiutf8 < tunnel.conf` ile oluşturun.</string>
|
||||
<string name="restore_on_boot_summary_off">Önyüklemede etkin tünelleri açmayacak</string>
|
||||
<string name="restore_on_boot_summary_on">Önyüklemede etkin tünelleri açacak</string>
|
||||
<string name="restore_on_boot_title">Cihaz açılırken başlat</string>
|
||||
<string name="save">Kaydet</string>
|
||||
<string name="select_all">Tümünü seç</string>
|
||||
<string name="settings">Ayarlar</string>
|
||||
<string name="shell_exit_status_read_error">Kabuk, çıktı durumunu okuyamıyor</string>
|
||||
<string name="shell_marker_count_error">Kabuk 4 işaret bekledi, %d aldı</string>
|
||||
<string name="shell_start_error">Kabuk başlatılamadı: %d</string>
|
||||
<string name="success_application_will_restart">Başarı. Uygulama şimdi yeniden başlayacak…</string>
|
||||
<string name="toggle_all">Tümünü Değiştir</string>
|
||||
<string name="toggle_error">WireGuard tüneli değiştirilirken hata oluştu: %s</string>
|
||||
<string name="tools_installer_already">wg ve wg-quick zaten kurulu</string>
|
||||
<string name="tools_installer_failure">Komut satırı araçları yüklenemiyor (root yok mu?)</string>
|
||||
<string name="tools_installer_initial">Komut dosyası oluşturmak için isteğe bağlı araçları yükleyin</string>
|
||||
<string name="tools_installer_initial_magisk">Magisk modülü olarak komut dosyası oluşturmak için isteğe bağlı araçları yükleyin</string>
|
||||
<string name="tools_installer_initial_system">Sistem bölümüne komut dosyası oluşturmak için isteğe bağlı araçlar yükleyin</string>
|
||||
<string name="tools_installer_success_magisk">wg ve wg-quick bir Magisk modülü olarak kuruldu (yeniden başlatma gerekir)</string>
|
||||
<string name="tools_installer_success_system">wg ve wg-quick, sistem bölümüne yüklendi</string>
|
||||
<string name="tools_installer_title">Komut satırı araçlarını yükleyin</string>
|
||||
<string name="tools_installer_working">wg ve wg-quick kuruluyor</string>
|
||||
<string name="tools_unavailable_error">Gerekli araçlar mevcut değil</string>
|
||||
<string name="transfer">Transfer</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">Tun cihazı oluşturulamıyor</string>
|
||||
<string name="tunnel_config_error">Tünel yapılandırılamıyor (wg-quick döndürdü: %d)</string>
|
||||
<string name="tunnel_create_error">Tünel oluşturulamıyor: %s</string>
|
||||
<string name="tunnel_create_success">Tünel başarıyla oluşturuldu “%s”</string>
|
||||
<string name="tunnel_error_already_exists">“%s” tüneli zaten mevcut</string>
|
||||
<string name="tunnel_error_invalid_name">Geçersiz isim</string>
|
||||
<string name="tunnel_list_placeholder">Mavi düğmeyi kullanarak bir tünel ekleyin</string>
|
||||
<string name="tunnel_name">Tünel İsmi</string>
|
||||
<string name="tunnel_on_error">Tünel aktif edilemiyor (wgTornOn döndürdü: %d)</string>
|
||||
<string name="tunnel_rename_error">Tünel yeniden adlandırılamıyor: %s</string>
|
||||
<string name="tunnel_rename_success">Tünel başarıyla yeniden adlandırıldı “%s”</string>
|
||||
<string name="type_name_go_userspace">Kullanıcı alanına git</string>
|
||||
<string name="type_name_kernel_module">Çekirdek modülü</string>
|
||||
<string name="unknown_error">Bilinmeyen hata</string>
|
||||
<string name="version_summary_checking">%s arka uç sürümü kontrol ediliyor</string>
|
||||
<string name="version_summary_unknown">Bilinmeyen %s sürümü</string>
|
||||
<string name="version_title">Android için WireGuard v%s</string>
|
||||
<string name="vpn_not_authorized_error">VPN hizmeti kullanıcı tarafından yetkilendirilmemiş</string>
|
||||
<string name="vpn_start_error">Android VPN hizmeti başlatılamıyor</string>
|
||||
<string name="zip_export_error">Tüneller dışa aktarılamıyor: %s</string>
|
||||
<string name="zip_export_success">“%s” ’e kaydedildi</string>
|
||||
<string name="zip_export_summary">Zip dosyası indirilenler klasörüne kaydedilecek</string>
|
||||
<string name="zip_export_title">Tünelleri zip dosyasına aktar</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Tünelleri dışa aktarmak için kimlik doğrulama</string>
|
||||
<string name="biometric_prompt_private_key_title">Özel anahtarı görüntülemek için kimlik doğrulaması</string>
|
||||
<string name="biometric_auth_error">Kimlik doğrulama hatası</string>
|
||||
<string name="biometric_auth_error_reason">Kimlik doğrulama hatası: %s</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
|
||||
<item name="colorPrimary">@color/primary_color</item>
|
||||
<item name="colorOnPrimary">@color/color_control_normal</item>
|
||||
<item name="colorPrimaryDark">@color/primary_color</item>
|
||||
<item name="colorPrimaryVariant">@color/primary_light_color</item>
|
||||
<item name="colorSecondary">@color/secondary_color</item>
|
||||
<item name="colorOnSecondary">@color/secondary_text_color</item>
|
||||
<item name="colorSurface">@color/primary_color</item>
|
||||
<item name="colorOnSurface">@color/color_control_normal</item>
|
||||
<item name="colorBackground">@color/primary_color</item>
|
||||
<item name="colorMultiselectActiveBackground">@color/list_multiselect_background</item>
|
||||
<item name="colorControlNormal">@color/color_control_normal</item>
|
||||
<item name="elevationOverlayColor">@color/primary_light_color</item>
|
||||
<item name="elevationOverlayEnabled">true</item>
|
||||
<item name="android:statusBarColor">#000000</item>
|
||||
<item name="android:navigationBarColor">#000000</item>
|
||||
<item name="android:windowBackground">@color/primary_color</item>
|
||||
<item name="alertDialogTheme">@style/AppTheme.Dialog</item>
|
||||
<item name="materialAlertDialogTheme">@style/AppTheme.Dialog</item>
|
||||
<item name="textInputStyle">@style/TextInputLayoutBase</item>
|
||||
<item name="materialCardViewStyle">@style/AppTheme.MaterialCardView</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,29 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
|
||||
<item name="colorPrimary">@color/primary_color</item>
|
||||
<item name="colorOnPrimary">@color/color_control_normal</item>
|
||||
<item name="colorPrimaryDark">@color/primary_color</item>
|
||||
<item name="colorPrimaryVariant">@color/primary_light_color</item>
|
||||
<item name="colorSecondary">@color/secondary_color</item>
|
||||
<item name="colorOnSecondary">@color/secondary_text_color</item>
|
||||
<item name="colorSurface">@color/primary_color</item>
|
||||
<item name="colorOnSurface">@color/color_control_normal</item>
|
||||
<item name="colorBackground">@color/primary_color</item>
|
||||
<item name="colorControlNormal">@color/color_control_normal</item>
|
||||
<item name="colorMultiselectActiveBackground">@color/list_multiselect_background</item>
|
||||
<item name="elevationOverlayColor">@color/primary_light_color</item>
|
||||
<item name="elevationOverlayEnabled">true</item>
|
||||
<item name="android:colorBackground">@color/primary_color</item>
|
||||
<style name="AppTheme" parent="WireGuardTheme">
|
||||
<item name="android:navigationBarColor">@color/navigation_bar_color</item>
|
||||
<item name="android:statusBarColor">@color/status_bar_color</item>
|
||||
<item name="android:windowLightNavigationBar">@bool/light_navigation_bar</item>
|
||||
<item name="android:windowLightStatusBar">@bool/light_status_bar</item>
|
||||
<item name="android:windowBackground">@color/primary_color</item>
|
||||
<item name="alertDialogTheme">@style/AppTheme.Dialog</item>
|
||||
<item name="materialAlertDialogTheme">@style/AppTheme.Dialog</item>
|
||||
<item name="textInputStyle">@style/TextInputLayoutBase</item>
|
||||
<item name="materialCardViewStyle">@style/AppTheme.MaterialCardView</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="other">对 %d 个应用生效</item>
|
||||
</plurals>
|
||||
<string name="all_applications">对全部应用生效</string>
|
||||
<string name="all_applications">应用过滤</string>
|
||||
<string name="exclude_from_tunnel">不生效</string>
|
||||
<string name="include_in_tunnel">生效</string>
|
||||
<plurals name="include_n_applications">
|
||||
@@ -50,7 +50,6 @@
|
||||
<string name="allow_remote_control_intents_summary_on">外部应用当前能够控制隧道(面向高级用户)</string>
|
||||
<string name="allow_remote_control_intents_title">授权外部控制</string>
|
||||
<string name="allowed_ips">路由的 IP 地址(段)</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s 的 %2$s 字段</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">在 %2$s发生了%1$s的问题</string>
|
||||
@@ -84,10 +83,17 @@
|
||||
<string name="create_output_dir_error">无法创建输出目录</string>
|
||||
<string name="create_temp_dir_error">无法创建本地临时目录</string>
|
||||
<string name="create_tunnel">创建隧道</string>
|
||||
<string name="copied_to_clipboard">%s 已复制到剪贴板</string>
|
||||
<string name="dark_theme_summary_off">正在使用亮色(白昼)主题</string>
|
||||
<string name="dark_theme_summary_on">正在使用暗色(黑夜)主题</string>
|
||||
<string name="dark_theme_title">使用暗色主题</string>
|
||||
<string name="delete">删除</string>
|
||||
<string name="tv_delete">选择要删除的隧道</string>
|
||||
<string name="tv_select_a_storage_drive">选择一个存储驱动器</string>
|
||||
<string name="tv_no_file_picker">请安装一个文件管理工具以浏览文件</string>
|
||||
<string name="tv_add_tunnel_get_started">添加第一个隧道</string>
|
||||
<string name="disable_config_export_title">禁止导出配置</string>
|
||||
<string name="disable_config_export_description">禁止导出配置可降低私钥泄露的风险</string>
|
||||
<string name="dns_servers">DNS 服务器</string>
|
||||
<string name="edit">编辑</string>
|
||||
<string name="endpoint">对端</string>
|
||||
@@ -131,7 +137,7 @@
|
||||
<string name="module_installer_initial">使用内核模块可以提升性能(实验性)</string>
|
||||
<string name="module_installer_not_found">没有可用于此设备的模块</string>
|
||||
<string name="module_installer_title">下载并安装内核模块</string>
|
||||
<string name="module_installer_working">正在下载安装...</string>
|
||||
<string name="module_installer_working">正在下载安装…</string>
|
||||
<string name="module_version_error">无法确定内核模块版本</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">当前一次只能开启一条隧道</string>
|
||||
@@ -165,7 +171,7 @@
|
||||
<string name="shell_exit_status_read_error">Shell 无法读取退出状态</string>
|
||||
<string name="shell_marker_count_error">Shell 应获取 4 个标记,获取到 %d 个</string>
|
||||
<string name="shell_start_error">Shell 启动失败:%d</string>
|
||||
<string name="success_application_will_restart">成功,应用即将重启...</string>
|
||||
<string name="success_application_will_restart">成功,应用即将重启…</string>
|
||||
<string name="toggle_all">反选</string>
|
||||
<string name="toggle_error">切换隧道状态时出错:%s</string>
|
||||
<string name="tools_installer_already">wg 与 wg-quick 已安装</string>
|
||||
@@ -176,7 +182,7 @@
|
||||
<string name="tools_installer_success_magisk">wg 与 wg-quick 已安装为 Magisk 模块(重启后生效)</string>
|
||||
<string name="tools_installer_success_system">wg 与 wg-quick 已安装至系统分区</string>
|
||||
<string name="tools_installer_title">安装命令行工具</string>
|
||||
<string name="tools_installer_working">正在安装 wg 与 wg-quick...</string>
|
||||
<string name="tools_installer_working">正在安装 wg 与 wg-quick…</string>
|
||||
<string name="tools_unavailable_error">所需工具不可用</string>
|
||||
<string name="transfer">流量</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
@@ -199,7 +205,6 @@
|
||||
<string name="type_name_go_userspace">Go userspace</string>
|
||||
<string name="type_name_kernel_module">Kernel module</string>
|
||||
<string name="unknown_error">未知错误</string>
|
||||
<string name="version_summary">%1$s backend v%2$s</string>
|
||||
<string name="version_summary_checking">正在检查 %s backend 版本</string>
|
||||
<string name="version_summary_unknown">未知的 %s 版本</string>
|
||||
<string name="version_title">WireGuard for Android v%s</string>
|
||||
|
||||
@@ -9,14 +9,45 @@
|
||||
<plurals name="delete_title">
|
||||
<item quantity="other">選擇了 %d 個通道</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="other">已匯入 %1$d 個隧道(共 %2$d 個)</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="other">匯入了 %d 個通道</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="other">排除了 %d 個應用程式</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="other">套用到 %d 個應用程式</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="other">已排除 %d</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="other">已套用 %d</item>
|
||||
</plurals>
|
||||
<string name="all_applications">套用到所有應用程式</string>
|
||||
<string name="exclude_from_tunnel">排除</string>
|
||||
<string name="include_in_tunnel">只套用到</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="other">套用到 %d 個應用程式</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="other">排除了 %d 個應用程式</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="other">每隔 %d 秒</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="other">秒</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">套用到所有應用程式</string>
|
||||
<string name="add_peer">新增端點</string>
|
||||
<string name="addresses">位址</string>
|
||||
<string name="applications">應用程式</string>
|
||||
<string name="allow_remote_control_intents_summary_off">外部程式無法控制通道 (推薦)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">外部程式可以控制通道 (進階)</string>
|
||||
<string name="allow_remote_control_intents_title">允許遠端控制應用程式</string>
|
||||
<string name="allowed_ips">允許的 IPs</string>
|
||||
<string name="bad_config_context">錯誤設定: %1$s 的 %2$s</string>
|
||||
@@ -52,10 +83,17 @@
|
||||
<string name="create_output_dir_error">無法建立輸出目錄</string>
|
||||
<string name="create_temp_dir_error">無法建立本地暫存目錄</string>
|
||||
<string name="create_tunnel">新建通道</string>
|
||||
<string name="copied_to_clipboard">%s 已複製到剪貼簿</string>
|
||||
<string name="dark_theme_summary_off">目前使用明亮(白晝)主題</string>
|
||||
<string name="dark_theme_summary_on">目前使用暗黑(夜晚)主題</string>
|
||||
<string name="dark_theme_title">使用暗黑主題</string>
|
||||
<string name="delete">刪除</string>
|
||||
<string name="tv_delete">選擇要刪除的通道</string>
|
||||
<string name="tv_select_a_storage_drive">選擇一個儲存裝置</string>
|
||||
<string name="tv_no_file_picker">請安裝一個檔案管理程式以便瀏覽檔案</string>
|
||||
<string name="tv_add_tunnel_get_started">新增第一個通道</string>
|
||||
<string name="disable_config_export_title">禁止匯出設定檔</string>
|
||||
<string name="disable_config_export_description">禁止匯出設定檔可以讓私鑰比較難存取到</string>
|
||||
<string name="dns_servers">DNS 伺服器</string>
|
||||
<string name="edit">編輯</string>
|
||||
<string name="endpoint">終端點</string>
|
||||
@@ -64,22 +102,35 @@
|
||||
<string name="error_root">請取得 root 存取權再試一次</string>
|
||||
<string name="error_up">起用通道錯誤: %s</string>
|
||||
<string name="exclude_private_ips">排除私有 IPs</string>
|
||||
<string name="generate_new_private_key">產生新的私鑰</string>
|
||||
<string name="generic_error">不明的「%s」錯誤</string>
|
||||
<string name="hint_automatic">(自動)</string>
|
||||
<string name="hint_generated">(產生的)</string>
|
||||
<string name="hint_optional">(可選的)</string>
|
||||
<string name="hint_optional_discouraged">(選填,但不建議設定)</string>
|
||||
<string name="hint_random">(隨機)</string>
|
||||
<string name="illegal_filename_error">不合規定的檔名「%s」</string>
|
||||
<string name="import_error">沒辦法匯入通道: %s</string>
|
||||
<string name="import_from_qr_code">從 QR Code 匯入通道</string>
|
||||
<string name="import_success">匯入了「%s」</string>
|
||||
<string name="interface_title">界面</string>
|
||||
<string name="key_contents_error">金鑰中有錯誤的字元</string>
|
||||
<string name="key_length_error">金鑰的長度錯誤</string>
|
||||
<string name="key_length_explanation_base64">: WireGuard 的 base64 密鑰必須是 44 個字元 (32 個位元組)</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard 密鑰必須是 32 個位元組</string>
|
||||
<string name="key_length_explanation_hex">: WireGuard 的16進位密鑰必須是 64 個字元 (32 個位元組)</string>
|
||||
<string name="listen_port">監聽連接埠</string>
|
||||
<string name="log_export_error">沒辦法匯出日誌: %s</string>
|
||||
<string name="log_export_subject">WireGuard Android 日誌檔</string>
|
||||
<string name="log_export_success">儲存到「%s」</string>
|
||||
<string name="log_export_title">匯出日誌檔</string>
|
||||
<string name="log_saver_activity_label">儲存日誌</string>
|
||||
<string name="log_viewer_pref_summary">程式的日誌對除錯有幫助</string>
|
||||
<string name="log_viewer_pref_title">檢視應用程式日誌</string>
|
||||
<string name="log_viewer_title">日誌</string>
|
||||
<string name="logcat_error">無法執行 logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">使用還在實驗階段的 kernel module 以便改善效能</string>
|
||||
<string name="module_disabler_disabled_title">啟用 kernel module</string>
|
||||
<string name="save">儲存</string>
|
||||
<string name="select_all">全選</string>
|
||||
<string name="toggle_all">切換全部</string>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
<string name="allow_remote_control_intents_summary_on">External apps may toggle tunnels (advanced)</string>
|
||||
<string name="allow_remote_control_intents_title">Allow remote control apps</string>
|
||||
<string name="allowed_ips">Allowed IPs</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="app_name" translatable="false">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s\'s %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%1$s in %2$s</string>
|
||||
@@ -97,6 +97,7 @@
|
||||
<string name="create_output_dir_error">Cannot create output directory</string>
|
||||
<string name="create_temp_dir_error">Cannot create local temporary directory</string>
|
||||
<string name="create_tunnel">Create Tunnel</string>
|
||||
<string name="copied_to_clipboard">%s copied to clipboard</string>
|
||||
<string name="dark_theme_summary_off">Currently using light (day) theme</string>
|
||||
<string name="dark_theme_summary_on">Currently using dark (night) theme</string>
|
||||
<string name="dark_theme_title">Use dark theme</string>
|
||||
@@ -213,12 +214,13 @@
|
||||
<string name="tunnel_list_placeholder">Add a tunnel using the blue button</string>
|
||||
<string name="tunnel_name">Tunnel Name</string>
|
||||
<string name="tunnel_on_error">Unable to turn tunnel on (wgTurnOn returned %d)</string>
|
||||
<string name="tunnel_dns_failure">Unable to resolve DNS hostname: “%s”</string>
|
||||
<string name="tunnel_rename_error">Unable to rename tunnel: %s</string>
|
||||
<string name="tunnel_rename_success">Successfully renamed tunnel to “%s”</string>
|
||||
<string name="type_name_go_userspace">Go userspace</string>
|
||||
<string name="type_name_kernel_module">Kernel module</string>
|
||||
<string name="unknown_error">Unknown error</string>
|
||||
<string name="version_summary">%1$s backend v%2$s</string>
|
||||
<string name="version_summary">%1$s backend %2$s</string>
|
||||
<string name="version_summary_checking">Checking %s backend version</string>
|
||||
<string name="version_summary_unknown">Unknown %s version</string>
|
||||
<string name="version_title">WireGuard for Android v%s</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
|
||||
<style name="WireGuardTheme" parent="Theme.MaterialComponents.DayNight">
|
||||
<item name="colorPrimary">@color/primary_color</item>
|
||||
<item name="colorOnPrimary">@color/color_control_normal</item>
|
||||
<item name="colorPrimaryDark">@color/primary_color</item>
|
||||
@@ -23,6 +23,8 @@
|
||||
<item name="materialCardViewStyle">@style/AppTheme.MaterialCardView</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme" parent="WireGuardTheme" />
|
||||
|
||||
<style name="AppTheme.MaterialCardView" parent="Widget.MaterialComponents.CardView">
|
||||
<item name="cornerRadius">4dp</item>
|
||||
<item name="cardElevation">4dp</item>
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
buildscript {
|
||||
ext {
|
||||
wireguardVersionCode = 484
|
||||
wireguardVersionName = '1.0.20201216'
|
||||
wireguardVersionCode = 489
|
||||
wireguardVersionName = '1.0.20210924'
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user