mirror of
https://github.com/amnezia-vpn/amneziawg-android.git
synced 2026-07-03 14:05:13 +02:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f670ff22c6 | |||
| cb3194f10a | |||
| f6b2bbf433 | |||
| 56a4862442 | |||
| 20390d65c8 | |||
| 177457e67b | |||
| 8caec4d739 | |||
| fb819b99a4 | |||
| fe82037f06 | |||
| c2aa1b21f8 | |||
| d69415b55a | |||
| 4fae2d1255 | |||
| a300f269f1 | |||
| 961cba3f7c | |||
| 6bc7386bff | |||
| 5fa08f286e | |||
| 35f868733c | |||
| e71b3d2583 | |||
| 755148242c | |||
| 15fea6f02f | |||
| cb2842e8ef | |||
| 106b67d892 | |||
| 996587f792 | |||
| 3a4bf35c77 | |||
| 46b37c0c26 | |||
| 5b5ba88a97 | |||
| ceb3095a0a | |||
| a31f0cf788 | |||
| 1dc74b171c | |||
| 9266487fe5 | |||
| 5d7ce139bc | |||
| ddb6c87ebf |
@@ -22,12 +22,16 @@ The tunnel library is [on JCenter](https://bintray.com/wireguard/wireguard-andro
|
||||
implementation 'com.wireguard.android:tunnel:$wireguardTunnelVersion'
|
||||
```
|
||||
|
||||
The library makes use of Java 8 features, so be sure to support those in your gradle configuration:
|
||||
The library makes use of Java 8 features, so be sure to support those in your gradle configuration with desugaring:
|
||||
|
||||
```
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
coreLibraryDesugaringEnabled = true
|
||||
}
|
||||
dependencies {
|
||||
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.0.10"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
+47
-19
@@ -1,25 +1,23 @@
|
||||
buildscript {
|
||||
ext {
|
||||
activityVersion = '1.2.0-alpha07'
|
||||
agpVersion = '4.0.1'
|
||||
activityVersion = '1.2.0-beta02'
|
||||
agpVersion = '4.1.1'
|
||||
annotationsVersion = '1.1.0'
|
||||
appcompatVersion = '1.2.0'
|
||||
bintrayPluginVersion = '1.8.5'
|
||||
biometricVersion = '1.1.0-alpha02'
|
||||
biometricVersion = '1.1.0-rc01'
|
||||
collectionVersion = '1.1.0'
|
||||
constraintLayoutVersion = '2.0.1'
|
||||
constraintLayoutVersion = '2.0.4'
|
||||
coordinatorLayoutVersion = '1.1.0'
|
||||
coreKtxVersion = '1.3.1'
|
||||
coroutinesVersion = '1.3.9'
|
||||
datastoreVersion = '1.0.0-alpha01'
|
||||
coreKtxVersion = '1.3.2'
|
||||
coroutinesVersion = '1.4.2'
|
||||
datastoreVersion = '1.0.0-alpha02'
|
||||
desugarVersion = '1.0.10'
|
||||
fragmentVersion = '1.3.0-alpha07'
|
||||
fragmentVersion = '1.3.0-beta02'
|
||||
jsr305Version = '3.0.2'
|
||||
junitVersion = '4.13'
|
||||
kotlinVersion = '1.4.10'
|
||||
lifecycleRuntimeKtxVersion = '2.3.0-alpha07'
|
||||
materialComponentsVersion = '22973ff10305397bfc72fed41684175fee8aeefb'
|
||||
mavenPluginVersion = '2.1'
|
||||
junitVersion = '4.13.1'
|
||||
kotlinVersion = '1.4.21'
|
||||
lifecycleRuntimeKtxVersion = '2.3.0-beta01'
|
||||
materialComponentsVersion = '1.3.0-beta01'
|
||||
preferenceVersion = '1.1.1'
|
||||
zxingEmbeddedVersion = '3.6.0'
|
||||
|
||||
@@ -28,8 +26,6 @@ buildscript {
|
||||
dependencies {
|
||||
classpath "com.android.tools.build:gradle:$agpVersion"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
||||
classpath "com.github.dcendents:android-maven-gradle-plugin:$mavenPluginVersion"
|
||||
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:$bintrayPluginVersion"
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
@@ -37,11 +33,43 @@ buildscript {
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id "de.undercouch.download" version "4.1.1"
|
||||
}
|
||||
|
||||
task downloadCrowdin(type: Download) {
|
||||
src 'https://crowdin.com/backend/download/project/wireguard.zip'
|
||||
dest file('build/translations.zip')
|
||||
overwrite true
|
||||
}
|
||||
|
||||
task cleanCrowdin(type: Delete) {
|
||||
delete 'ui/src/main/res/values-*/strings.xml'
|
||||
}
|
||||
|
||||
task extractCrowdin(type: Copy, dependsOn: ['downloadCrowdin', 'cleanCrowdin']) {
|
||||
mustRunAfter 'downloadCrowdin'
|
||||
from zipTree(file('build/translations.zip'))
|
||||
into file('build/translations')
|
||||
doFirst {
|
||||
delete 'build/translations'
|
||||
}
|
||||
}
|
||||
|
||||
task crowdin(type: Copy, dependsOn: ['extractCrowdin']) {
|
||||
mustRunAfter 'extractCrowdin'
|
||||
from 'build/translations/wireguard-android/ui/src/main/res'
|
||||
into 'ui/src/main/res/'
|
||||
doLast {
|
||||
delete 'build/translations'
|
||||
delete 'build/translations.zip'
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
maven { url 'https://jitpack.io' }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,9 +79,9 @@ task clean(type: Delete) {
|
||||
|
||||
tasks {
|
||||
wrapper {
|
||||
gradleVersion = "6.6.1"
|
||||
gradleVersion = "6.7.1"
|
||||
distributionType = Wrapper.DistributionType.ALL
|
||||
distributionSha256Sum = "11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5"
|
||||
distributionSha256Sum = "22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,9 +18,6 @@ org.gradle.jvmargs=-Xmx1536m
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
|
||||
# R8 Full mode
|
||||
android.enableR8.fullMode=true
|
||||
|
||||
# https://jakewharton.com/increased-accuracy-of-aapt2-keep-rules/
|
||||
android.useMinimalKeepRules=true
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip
|
||||
distributionSha256Sum=22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
curl -Lo - https://crowdin.com/backend/download/project/wireguard.zip | bsdtar -C ui/src/main/res -x -f - --strip-components 5 wireguard-android
|
||||
find ui/src/main/res -name strings.xml -exec bash -c '[[ $(xmllint --xpath "count(//resources/*)" {}) -ne 0 ]] || rm -rf "$(dirname {})"' \;
|
||||
@@ -46,6 +46,7 @@ android {
|
||||
}
|
||||
lintOptions {
|
||||
disable('LongLogTag')
|
||||
disable('NewApi') // Desugaring!
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+44
-48
@@ -1,53 +1,53 @@
|
||||
apply plugin: 'com.github.dcendents.android-maven'
|
||||
apply plugin: 'com.jfrog.bintray'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
install {
|
||||
repositories.mavenInstaller {
|
||||
pom.project {
|
||||
name 'WireGuard Tunnel Library'
|
||||
description 'Embeddable tunnel library for WireGuard for Android'
|
||||
url 'https://www.wireguard.com/'
|
||||
afterEvaluate {
|
||||
publishing {
|
||||
publications {
|
||||
release(MavenPublication) {
|
||||
groupId = groupName
|
||||
artifactId = 'tunnel'
|
||||
version wireguardVersionName
|
||||
|
||||
packaging 'aar'
|
||||
groupId groupName
|
||||
artifactId 'tunnel'
|
||||
version wireguardVersionName
|
||||
artifact sourcesJar
|
||||
artifact javadocJar
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name 'The Apache Software License, Version 2.0'
|
||||
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
||||
distribution 'repo'
|
||||
from components.getByName("release")
|
||||
|
||||
pom {
|
||||
name = 'WireGuard Tunnel Library'
|
||||
description = 'Embeddable tunnel library for WireGuard for Android'
|
||||
url = 'https://www.wireguard.com/'
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name = 'The Apache Software License, Version 2.0'
|
||||
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
||||
distribution = 'repo'
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection = 'scm:git:https://git.zx2c4.com/wireguard-android'
|
||||
developerConnection = 'scm:git:https://git.zx2c4.com/wireguard-android'
|
||||
url = 'https://git.zx2c4.com/wireguard-android'
|
||||
}
|
||||
developers {
|
||||
organization {
|
||||
name = 'WireGuard'
|
||||
url = 'https://www.wireguard.com/'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection 'scm:git:https://git.zx2c4.com/wireguard-android'
|
||||
url 'https://git.zx2c4.com/wireguard-android'
|
||||
}
|
||||
organization {
|
||||
name 'WireGuard'
|
||||
url 'https://www.wireguard.com/'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bintray {
|
||||
user = hasProperty('BINTRAY_USER') ? getProperty('BINTRAY_USER') : System.getenv('BINTRAY_USER')
|
||||
key = hasProperty('BINTRAY_KEY') ? getProperty('BINTRAY_KEY') : System.getenv('BINTRAY_KEY')
|
||||
|
||||
configurations = [ 'archives' ]
|
||||
|
||||
pkg {
|
||||
repo = 'wireguard-android'
|
||||
name = 'wireguard-android'
|
||||
userOrg = 'wireguard'
|
||||
licenses = [ 'Apache-2.0' ]
|
||||
vcsUrl = 'https://git.zx2c4.com/wireguard-android'
|
||||
publish = true
|
||||
|
||||
version {
|
||||
name = wireguardVersionName
|
||||
repositories {
|
||||
maven {
|
||||
name = "bintray"
|
||||
url = uri("https://api.bintray.com/maven/wireguard/wireguard-android/wireguard-android/;publish=1;override=0")
|
||||
credentials {
|
||||
username = hasProperty('BINTRAY_USER') ? getProperty('BINTRAY_USER') : System.getenv('BINTRAY_USER')
|
||||
password = hasProperty('BINTRAY_KEY') ? getProperty('BINTRAY_KEY') : System.getenv('BINTRAY_KEY')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -68,9 +68,5 @@ android.libraryVariants.all { variant ->
|
||||
archiveClassifier = 'sources'
|
||||
from android.sourceSets.main.java.srcDirs
|
||||
}
|
||||
artifacts {
|
||||
archives sourcesJar
|
||||
archives javadocJar
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,8 @@ import java.util.Set;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* WireGuard backend that uses {@code wg-quick} to implement tunnel configuration.
|
||||
* Implementation of {@link Backend} that uses the kernel module and {@code wg-quick} to provide
|
||||
* WireGuard tunnels.
|
||||
*/
|
||||
|
||||
@NonNullForAll
|
||||
|
||||
@@ -43,8 +43,11 @@ public class RootShell {
|
||||
public RootShell(final Context context) {
|
||||
localBinaryDir = new File(context.getCodeCacheDir(), "bin");
|
||||
localTemporaryDir = new File(context.getCacheDir(), "tmp");
|
||||
preamble = String.format("export CALLING_PACKAGE=%s PATH=\"%s:$PATH\" TMPDIR='%s'; id -u\n",
|
||||
context.getPackageName(), localBinaryDir, localTemporaryDir);
|
||||
final String packageName = context.getPackageName();
|
||||
if (packageName.contains("'"))
|
||||
throw new RuntimeException("Impossibly invalid package name contains a single quote");
|
||||
preamble = String.format("export CALLING_PACKAGE=%s PATH=\"%s:$PATH\" TMPDIR='%s'; magisk --sqlite \"UPDATE policies SET notification=0, logging=0 WHERE package_name='%s'\" >/dev/null 2>&1; id -u\n",
|
||||
packageName, localBinaryDir, localTemporaryDir, packageName);
|
||||
}
|
||||
|
||||
private static boolean isExecutableInPath(final String name) {
|
||||
|
||||
@@ -143,7 +143,7 @@ public final class ToolsInstaller {
|
||||
extract();
|
||||
final StringBuilder script = new StringBuilder("set -ex; ");
|
||||
|
||||
script.append("trap 'rm -rf /data/adb/moduleswireguard' INT TERM EXIT; ");
|
||||
script.append("trap 'rm -rf /data/adb/modules/wireguard' INT TERM EXIT; ");
|
||||
script.append(String.format("rm -rf /data/adb/modules/wireguard/; mkdir -p /data/adb/modules/wireguard%s; ", INSTALL_DIR));
|
||||
script.append("printf 'name=WireGuard Command Line Tools\nversion=1.0\nversionCode=1\nauthor=zx2c4\ndescription=Command line tools for WireGuard\nminMagisk=1500\n' > /data/adb/modules/wireguard/module.prop; ");
|
||||
script.append("touch /data/adb/modules/wireguard/auto_mount; ");
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.util.Arrays;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Implementation of the Curve25519 elliptic curve algorithm.
|
||||
* Implementation of Curve25519 ECDH.
|
||||
* <p>
|
||||
* This implementation was imported to WireGuard from noise-java:
|
||||
* https://github.com/rweather/noise-java
|
||||
|
||||
@@ -13,7 +13,9 @@ import java.security.MessageDigest;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* This implementation is based on the ed25519/ref10 implementation in NaCl.
|
||||
* Implementation of Ed25519 signature verification.
|
||||
*
|
||||
* <p>This implementation is based on the ed25519/ref10 implementation in NaCl.</p>
|
||||
*
|
||||
* <p>It implements this twisted Edwards curve:
|
||||
*
|
||||
|
||||
@@ -46,7 +46,6 @@ type TunnelHandle struct {
|
||||
var tunnelHandles map[int32]TunnelHandle
|
||||
|
||||
func init() {
|
||||
device.RoamingDisabled = true
|
||||
tunnelHandles = make(map[int32]TunnelHandle)
|
||||
signals := make(chan os.Signal)
|
||||
signal.Notify(signals, unix.SIGUSR2)
|
||||
@@ -91,6 +90,7 @@ func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
logger.Error.Println(setError)
|
||||
return -1
|
||||
}
|
||||
device.DisableSomeRoamingForBrokenMobileSemantics()
|
||||
|
||||
var uapi net.Listener
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
module golang.zx2c4.com/wireguard/android
|
||||
|
||||
go 1.14
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 // indirect
|
||||
golang.org/x/net v0.0.0-20200602114024-627f9648deb9 // indirect
|
||||
golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980
|
||||
golang.zx2c4.com/wireguard v0.0.20200321-0.20200622004228-b84f1d4db25e
|
||||
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad // indirect
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924 // indirect
|
||||
golang.org/x/sys v0.0.0-20201223074533-0d417f636930
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201223215156-09728dc6b340
|
||||
)
|
||||
|
||||
@@ -1,20 +1,24 @@
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20200429183012-4b2356b1ed79/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 h1:vEg9joUBmeBcK9iSJftGNf3coIG4HqZElCPehJsfAYM=
|
||||
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
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-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY=
|
||||
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM=
|
||||
golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
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/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-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980 h1:OjiUf46hAmXblsZdnoSXsEUSKU8r1UEzcL5RVZ4gO9Y=
|
||||
golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/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-20201223074533-0d417f636930 h1:vRgIt+nup/B/BwIS0g2oC0haq0iqbV3ZA+u6+0TlNCo=
|
||||
golang.org/x/sys v0.0.0-20201223074533-0d417f636930/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
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.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/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.20200321-0.20200622004228-b84f1d4db25e h1:f8BS3yEMeIGx/zzJfihxDRedx6lT7EiJlfih4j6LY98=
|
||||
golang.zx2c4.com/wireguard v0.0.20200321-0.20200622004228-b84f1d4db25e/go.mod h1:GJvYs5O24/ASlwPiRklVnjMx2xQzrOic0DuU6GvYJL4=
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201223215156-09728dc6b340 h1:X6jrf2sUEj3n+q2oB/I3C088vQFKREz2UzgVJ8wENtI=
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201223215156-09728dc6b340/go.mod h1:ITsWNpkFv78VPB7f8MiyuxeEMcHR4jfxHGCJLPP3GHs=
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ dependencies {
|
||||
implementation "androidx.preference:preference-ktx:$preferenceVersion"
|
||||
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleRuntimeKtxVersion"
|
||||
implementation "androidx.datastore:datastore-preferences:$datastoreVersion"
|
||||
implementation "com.github.material-components:material-components-android:$materialComponentsVersion"
|
||||
implementation "com.google.android.material:material:$materialComponentsVersion"
|
||||
implementation "com.journeyapps:zxing-android-embedded:$zxingEmbeddedVersion"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
|
||||
|
||||
@@ -147,12 +147,14 @@ class LogViewerActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private val downloadsFileSaver = DownloadsFileSaver(this)
|
||||
|
||||
private suspend fun saveLog() {
|
||||
var exception: Throwable? = null
|
||||
var outputFile: DownloadsFileSaver.DownloadsFile? = null
|
||||
withContext(Dispatchers.IO) {
|
||||
try {
|
||||
outputFile = DownloadsFileSaver.save(this@LogViewerActivity, "wireguard-log.txt", "text/plain", true)
|
||||
outputFile = downloadsFileSaver.save("wireguard-log.txt", "text/plain", true)
|
||||
outputFile?.outputStream?.write(rawLogLines.toString().toByteArray(Charsets.UTF_8))
|
||||
} catch (e: Throwable) {
|
||||
outputFile?.delete()
|
||||
|
||||
@@ -12,6 +12,7 @@ import android.view.View
|
||||
import androidx.appcompat.app.ActionBar
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import androidx.fragment.app.commit
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.fragment.TunnelDetailFragment
|
||||
import com.wireguard.android.fragment.TunnelEditorFragment
|
||||
@@ -72,11 +73,11 @@ class MainActivity : BaseActivity(), FragmentManager.OnBackStackChangedListener
|
||||
true
|
||||
}
|
||||
R.id.menu_action_edit -> {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.detail_container, TunnelEditorFragment())
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
|
||||
.addToBackStack(null)
|
||||
.commit()
|
||||
supportFragmentManager.commit {
|
||||
replace(R.id.detail_container, TunnelEditorFragment())
|
||||
setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
|
||||
addToBackStack(null)
|
||||
}
|
||||
true
|
||||
}
|
||||
// This menu item is handled by the editor fragment.
|
||||
@@ -104,11 +105,11 @@ class MainActivity : BaseActivity(), FragmentManager.OnBackStackChangedListener
|
||||
fragmentManager.popBackStackImmediate()
|
||||
} else if (backStackEntries == 0) {
|
||||
// Create and show a new detail fragment.
|
||||
fragmentManager.beginTransaction()
|
||||
.add(R.id.detail_container, TunnelDetailFragment())
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
|
||||
.addToBackStack(null)
|
||||
.commit()
|
||||
fragmentManager.commit {
|
||||
add(R.id.detail_container, TunnelDetailFragment())
|
||||
setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
|
||||
addToBackStack(null)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.MenuItem
|
||||
import androidx.fragment.app.commit
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
@@ -28,9 +29,9 @@ class SettingsActivity : ThemeChangeAwareActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
if (supportFragmentManager.findFragmentById(android.R.id.content) == null) {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.add(android.R.id.content, SettingsFragment())
|
||||
.commit()
|
||||
supportFragmentManager.commit {
|
||||
add(android.R.id.content, SettingsFragment())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
package com.wireguard.android.activity
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.commit
|
||||
import com.wireguard.android.fragment.TunnelEditorFragment
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
|
||||
@@ -15,9 +16,9 @@ class TunnelCreatorActivity : BaseActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
if (supportFragmentManager.findFragmentById(android.R.id.content) == null) {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.add(android.R.id.content, TunnelEditorFragment())
|
||||
.commit()
|
||||
supportFragmentManager.commit {
|
||||
add(android.R.id.content, TunnelEditorFragment())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class AddTunnelsSheet : BottomSheetDialogFragment() {
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
if (savedInstanceState != null) dismiss()
|
||||
val view = inflater.inflate(R.layout.add_tunnels_bottom_sheet, container, false)
|
||||
if (activity?.packageManager?.hasSystemFeature(PackageManager.FEATURE_CAMERA) != true) {
|
||||
if (activity?.packageManager?.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY) != true) {
|
||||
val qrcode = view.findViewById<View>(R.id.create_from_qrcode)
|
||||
qrcode.isEnabled = false
|
||||
qrcode.visibility = View.GONE
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Dialog
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.widget.Button
|
||||
import android.widget.Toast
|
||||
@@ -40,12 +40,11 @@ class AppListDialogFragment : DialogFragment() {
|
||||
try {
|
||||
val applicationData: MutableList<ApplicationData> = ArrayList()
|
||||
withContext(Dispatchers.IO) {
|
||||
val launcherIntent = Intent(Intent.ACTION_MAIN, null)
|
||||
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER)
|
||||
val resolveInfos = pm.queryIntentActivities(launcherIntent, 0)
|
||||
resolveInfos.forEach {
|
||||
val packageName = it.activityInfo.packageName
|
||||
val appData = ApplicationData(it.loadIcon(pm), it.loadLabel(pm).toString(), packageName, currentlySelectedApps.contains(packageName))
|
||||
val packageInfos = pm.getPackagesHoldingPermissions(arrayOf(Manifest.permission.INTERNET), 0)
|
||||
packageInfos.forEach {
|
||||
val packageName = it.packageName
|
||||
val appInfo = it.applicationInfo
|
||||
val appData = ApplicationData(appInfo.loadIcon(pm), appInfo.loadLabel(pm).toString(), packageName, currentlySelectedApps.contains(packageName))
|
||||
applicationData.add(appData)
|
||||
appData.addOnPropertyChangedCallback(object : Observable.OnPropertyChangedCallback() {
|
||||
override fun onPropertyChanged(sender: Observable?, propertyId: Int) {
|
||||
|
||||
@@ -63,13 +63,17 @@ class TunnelDetailFragment : BaseFragment() {
|
||||
}
|
||||
|
||||
override fun onSelectedTunnelChanged(oldTunnel: ObservableTunnel?, newTunnel: ObservableTunnel?) {
|
||||
binding ?: return
|
||||
binding!!.tunnel = newTunnel
|
||||
if (newTunnel == null) binding!!.config = null else lifecycleScope.launch {
|
||||
try {
|
||||
binding!!.config = newTunnel.getConfigAsync()
|
||||
} catch (_: Throwable) {
|
||||
binding!!.config = null
|
||||
val binding = binding ?: return
|
||||
binding.tunnel = newTunnel
|
||||
if (newTunnel == null) {
|
||||
binding.config = null
|
||||
} else {
|
||||
lifecycleScope.launch {
|
||||
try {
|
||||
binding.config = newTunnel.getConfigAsync()
|
||||
} catch (_: Throwable) {
|
||||
binding.config = null
|
||||
}
|
||||
}
|
||||
}
|
||||
lastState = Tunnel.State.TOGGLE
|
||||
|
||||
@@ -32,6 +32,8 @@ import java.util.zip.ZipOutputStream
|
||||
*/
|
||||
class ZipExporterPreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) {
|
||||
private var exportedFilePath: String? = null
|
||||
private val downloadsFileSaver = DownloadsFileSaver(activity)
|
||||
|
||||
private fun exportZip() {
|
||||
lifecycleScope.launch {
|
||||
val tunnels = Application.getTunnelManager().getTunnels()
|
||||
@@ -41,7 +43,7 @@ class ZipExporterPreference(context: Context, attrs: AttributeSet?) : Preference
|
||||
if (configs.isEmpty()) {
|
||||
throw IllegalArgumentException(context.getString(R.string.no_tunnels_error))
|
||||
}
|
||||
val outputFile = DownloadsFileSaver.save(activity, "wireguard-export.zip", "application/zip", true)
|
||||
val outputFile = downloadsFileSaver.save("wireguard-export.zip", "application/zip", true)
|
||||
if (outputFile == null) {
|
||||
withContext(Dispatchers.Main.immediate) {
|
||||
isEnabled = true
|
||||
|
||||
@@ -9,7 +9,6 @@ import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.biometric.BiometricConstants
|
||||
import androidx.biometric.BiometricManager
|
||||
import androidx.biometric.BiometricManager.Authenticators
|
||||
import androidx.biometric.BiometricPrompt
|
||||
@@ -41,12 +40,12 @@ object BiometricAuthenticator {
|
||||
super.onAuthenticationError(errorCode, errString)
|
||||
Log.d(TAG, "BiometricAuthentication error: errorCode=$errorCode, msg=$errString")
|
||||
callback(when (errorCode) {
|
||||
BiometricConstants.ERROR_CANCELED, BiometricConstants.ERROR_USER_CANCELED,
|
||||
BiometricConstants.ERROR_NEGATIVE_BUTTON -> {
|
||||
BiometricPrompt.ERROR_CANCELED, BiometricPrompt.ERROR_USER_CANCELED,
|
||||
BiometricPrompt.ERROR_NEGATIVE_BUTTON -> {
|
||||
Result.Cancelled
|
||||
}
|
||||
BiometricConstants.ERROR_HW_NOT_PRESENT, BiometricConstants.ERROR_HW_UNAVAILABLE,
|
||||
BiometricConstants.ERROR_NO_BIOMETRICS, BiometricConstants.ERROR_NO_DEVICE_CREDENTIAL -> {
|
||||
BiometricPrompt.ERROR_HW_NOT_PRESENT, BiometricPrompt.ERROR_HW_UNAVAILABLE,
|
||||
BiometricPrompt.ERROR_NO_BIOMETRICS, BiometricPrompt.ERROR_NO_DEVICE_CREDENTIAL -> {
|
||||
Result.HardwareUnavailableOrDisabled
|
||||
}
|
||||
else -> Result.Failure(errorCode, fragment.getString(R.string.biometric_auth_error_reason, errString))
|
||||
|
||||
@@ -14,6 +14,7 @@ import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.provider.MediaStore.MediaColumns
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.wireguard.android.R
|
||||
@@ -25,9 +26,18 @@ import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
import java.io.OutputStream
|
||||
|
||||
object DownloadsFileSaver {
|
||||
@Throws(Exception::class)
|
||||
suspend fun save(context: ComponentActivity, name: String, mimeType: String?, overwriteExisting: Boolean) = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
class DownloadsFileSaver(private val context: ComponentActivity) {
|
||||
private lateinit var activityResult: ActivityResultLauncher<String>
|
||||
private lateinit var futureGrant: CompletableDeferred<Boolean>
|
||||
|
||||
init {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
||||
futureGrant = CompletableDeferred()
|
||||
activityResult = context.registerForActivityResult(ActivityResultContracts.RequestPermission()) { ret -> futureGrant.complete(ret) }
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun save(name: String, mimeType: String?, overwriteExisting: Boolean) = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
withContext(Dispatchers.IO) {
|
||||
val contentResolver = context.contentResolver
|
||||
if (overwriteExisting)
|
||||
@@ -66,13 +76,12 @@ object DownloadsFileSaver {
|
||||
} else {
|
||||
withContext(Dispatchers.Main.immediate) {
|
||||
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
||||
val futureGrant = CompletableDeferred<Boolean>()
|
||||
val activityResult = context.registerForActivityResult(ActivityResultContracts.RequestPermission(), futureGrant::complete)
|
||||
activityResult.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
val granted = futureGrant.await()
|
||||
activityResult.unregister()
|
||||
if (!granted)
|
||||
if (!granted) {
|
||||
futureGrant = CompletableDeferred()
|
||||
return@withContext null
|
||||
}
|
||||
}
|
||||
@Suppress("DEPRECATION") val path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
|
||||
withContext(Dispatchers.IO) {
|
||||
|
||||
@@ -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>
|
||||
@@ -0,0 +1,98 @@
|
||||
<?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>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d inclòs</item>
|
||||
<item quantity="other">%d inclosos</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Totes les aplicacions</string>
|
||||
<string name="exclude_from_tunnel">Exclou</string>
|
||||
<string name="include_in_tunnel">Inclou només</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Inclou %d aplicació</item>
|
||||
<item quantity="other">Inclou %d aplicacions</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Exclou %d aplicació</item>
|
||||
<item quantity="other">Exclou %d aplicacions</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">cada segon</item>
|
||||
<item quantity="other">cada %d segons</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<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>
|
||||
<string name="bad_config_explanation_positive_number">: Ha de ser positiu</string>
|
||||
<string name="bad_config_reason_invalid_key">Clau no vàlida</string>
|
||||
<string name="bad_config_reason_invalid_number">Número no vàlid</string>
|
||||
<string name="bad_config_reason_invalid_value">Valor no vàlid</string>
|
||||
<string name="bad_config_reason_syntax_error">Error de sintaxi</string>
|
||||
<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>
|
||||
<string name="exclude_private_ips">Exclou IPs privades</string>
|
||||
<string name="generate_new_private_key">Genera nova clau privada</string>
|
||||
<string name="generic_error">Error “%s” desconegut</string>
|
||||
<string name="hint_generated">(generat)</string>
|
||||
<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,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>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">%d Tunnel konnte nicht gelöscht werden: %s</item>
|
||||
<item quantity="one">%d Tunnel konnten nicht gelöscht werden: %s</item>
|
||||
<item quantity="other">%d Tunnel konnten nicht gelöscht werden: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">Δεν είναι δυνατή η διαγραφή του %d tunnel: %s</item>
|
||||
<item quantity="other">Δεν είναι δυνατή η διαγραφή %d tunnels: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">Το %d tunnel διαγράφηκε με επιτυχία</item>
|
||||
<item quantity="other">Διαγράφηκαν επιτυχώς τα %d tunnels</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d επιλεγμένο tunnel</item>
|
||||
<item quantity="other">%d επιλεγμένα tunnels</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">Έγινε εισαγωγή %1$d από %2$d tunnels</item>
|
||||
<item quantity="other">Έγινε εισαγωγή %1$d από %2$d tunnels</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">Εισαγωγή tunnel %d</item>
|
||||
<item quantity="other">Εισαγωγή tunnels %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 app</item>
|
||||
<item quantity="other">Συμπερίληψη %d apps</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Εξαίρεση %d app</item>
|
||||
<item quantity="other">Εξαίρεση %d apps</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">Προσθήκη peer</string>
|
||||
<string name="addresses">Διευθύνσεις</string>
|
||||
<string name="applications">Εφαρμογές</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,180 @@
|
||||
<?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">%1$s backend v%2$s</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>
|
||||
@@ -0,0 +1,212 @@
|
||||
<?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">%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="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="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>
|
||||
<string name="bad_config_explanation_pka">: باید مثبت و بیشتر از ۶۵۵۳۵ نباشد</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="dark_theme_summary_off">اکنون از پوسته روشن(روز) استفاده میشود</string>
|
||||
<string name="dark_theme_summary_on">اکنون از پوسته تاریک(شب) استفاده میشود</string>
|
||||
<string name="dark_theme_title">استفاده از پوسته تاریک</string>
|
||||
<string name="delete">حذف</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 باید دارای ۴۴ نویسه باشند ( ۳۲ بایت)</string>
|
||||
<string name="key_length_explanation_binary">: کلیدهای WireGuard باید ۳۲ بایت باشند</string>
|
||||
<string name="key_length_explanation_hex">: کلیدهای هگز WireGuard باید دارای ۶۴ نویسه باشند ( ۳۲ بایت)</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_title">غیرفعالسازی پسزمینه واحد هسته</string>
|
||||
<string name="module_installer_error">مشکلی پیش آمد. لطفا دوباره تلاش کنید</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="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">کنترل تونلهای WireGuard</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="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_start_error">آغاز پوسته شکست خورد: %d</string>
|
||||
<string name="success_application_will_restart">موفقیت. برنامه اکنون دوباره راهاندازی خواهد شد…</string>
|
||||
<string name="toggle_all">معکوس کردن همه</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="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_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>
|
||||
<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>
|
||||
@@ -0,0 +1,64 @@
|
||||
<?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="app_name">WireGuard</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>
|
||||
@@ -5,7 +5,7 @@
|
||||
<item quantity="other">Impossible de supprimer %d tunnels : %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">Supprimé avec succès %d tunnel</item>
|
||||
<item quantity="one">Suppression réussie du tunnel %d</item>
|
||||
<item quantity="other">Supprimé avec succès %d tunnels</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
@@ -191,7 +191,7 @@
|
||||
<string name="tools_installer_title">Installer les outils de ligne de commande</string>
|
||||
<string name="tools_installer_working">Installation de wg et wg-quick</string>
|
||||
<string name="tools_unavailable_error">Outils requis indisponibles</string>
|
||||
<string name="transfer">Transférer</string>
|
||||
<string name="transfer">Données transférées</string>
|
||||
<string name="transfer_bytes">%d Octets</string>
|
||||
<string name="transfer_gibibytes">%.2f Go</string>
|
||||
<string name="transfer_kibibytes">%.2f Ko</string>
|
||||
|
||||
@@ -0,0 +1,220 @@
|
||||
<?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">आयातित %d %d टनल</item>
|
||||
<item quantity="other">आयातित %d %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">अनुमत आईपी</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>
|
||||
<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="dark_theme_summary_off">अभी प्रकाश (दिन) थीम का उपयोग कर रहे हैं</string>
|
||||
<string name="dark_theme_summary_on">अभी डार्क (रात) थीम का उपयोग कर रहे हैं</string>
|
||||
<string name="dark_theme_title">डार्क थीम का इस्तेमाल करें</string>
|
||||
<string name="delete">हटाएं</string>
|
||||
<string name="dns_servers">डीएनएस सर्वर</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">निजी आईपी को छोड़ दें</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">क्यूआर कोड से टनल को आयात करें</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">: वायरगार्ड बेस 64 कीज़ में 44 अक्षर (32 बाइट्स) होने चाहिए</string>
|
||||
<string name="key_length_explanation_binary">: वायरगार्ड कीज 32 बाइट होनी चाहिए</string>
|
||||
<string name="key_length_explanation_hex">: वायरगार्ड हेक्स कीज़ 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">लॉगकैट चलाने में असमर्थ: </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">आईपी पता</string>
|
||||
<string name="parse_error_inet_endpoint">समाप्त</string>
|
||||
<string name="parse_error_inet_network">आईपी नेटवर्क</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">शेल बाहर निकलने की स्थिति नहीं पढ़ सकता</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 को मैजिक मॉड्यूल के रूप में स्थापित किया गया है (रिबूट आवश्यक)</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="tun_create_error">ट्यून डिवाइस बनाने में असमर्थ</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">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>
|
||||
<string name="vpn_not_authorized_error">वीपीएन सेवा उपयोगकर्ता द्वारा अधिकृत नहीं है</string>
|
||||
<string name="vpn_start_error">एंड्रॉयड वीपीएन सेवा प्रारंभ करने में असमर्थ</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>
|
||||
@@ -105,7 +105,7 @@
|
||||
<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_from_qr_code">QR コードからトンネル設定をインポートします</string>
|
||||
<string name="import_success">“%s” をインポートしました</string>
|
||||
<string name="interface_title">インターフェース</string>
|
||||
<string name="key_contents_error">鍵に不正な文字があります</string>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?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">Kan ikke slette %d tunneler %s</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="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">hvert %d sekund</item>
|
||||
<item quantity="other">hvert %d sekund</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">sekund</item>
|
||||
<item quantity="other">sekunder</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Bruk alle apper</string>
|
||||
<string name="add_peer">Legg til peer</string>
|
||||
<string name="addresses">Adresser</string>
|
||||
<string name="applications">Applikasjoner</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,229 @@
|
||||
<?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="app_name">ਵਾਇਰਗਾਰਡ</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="dark_theme_summary_off">ਇਸ ਵੇਲੇ ਹਲਕਾ (ਦਿਨ) ਥੀਮ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ</string>
|
||||
<string name="dark_theme_summary_on">ਇਸ ਵੇਲੇ ਗੂੜ੍ਹਾ (ਰਾਤ) ਥੀਮ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ</string>
|
||||
<string name="dark_theme_title">ਗੂੜ੍ਹਾ ਥੀਮ ਵਰਤੋਂ</string>
|
||||
<string name="delete">ਹਟਾਓ</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">%1$s ਬੈਕਐਂਡ v%2$s</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>
|
||||
@@ -0,0 +1,255 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">Nie można usunąć %d tunelu: %s</item>
|
||||
<item quantity="few">Nie można usunąć %d tuneli: %s</item>
|
||||
<item quantity="many">Nie można usunąć %d tuneli: %s</item>
|
||||
<item quantity="other">Nie można usunąć %d tuneli: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">Pomyślnie usunięto tunel %d</item>
|
||||
<item quantity="few">Pomyślnie usunięto %d tunele</item>
|
||||
<item quantity="many">Pomyślnie usunięto %d tuneli</item>
|
||||
<item quantity="other">Pomyślnie usunięto %d tuneli</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d wybrany tunel</item>
|
||||
<item quantity="few">%d wybranych tuneli</item>
|
||||
<item quantity="many">%d wybranych tuneli</item>
|
||||
<item quantity="other">%d wybranych tuneli</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">Zaimportowano %1$d z %2$d tuneli</item>
|
||||
<item quantity="few">Zaimportowano %1$d z %2$d tuneli</item>
|
||||
<item quantity="many">Zaimportowano %1$d z %2$d tuneli</item>
|
||||
<item quantity="other">Zaimportowano %1$d z %2$d tuneli</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">Zaimportowano %d tunel</item>
|
||||
<item quantity="few">Zaimportowano %d tunele</item>
|
||||
<item quantity="many">Zaimportowano %d tuneli</item>
|
||||
<item quantity="other">Zaimportowano %d tuneli</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d wykluczona aplikacja</item>
|
||||
<item quantity="few">%d wykluczone aplikacje</item>
|
||||
<item quantity="many">%d wykluczonych aplikacji</item>
|
||||
<item quantity="other">%d wykluczonych aplikacji</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d dołączona aplikacja</item>
|
||||
<item quantity="few">%d dołączone aplikacje</item>
|
||||
<item quantity="many">%d dołączonych aplikacji</item>
|
||||
<item quantity="other">%d dołączonych aplikacji</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d wykluczona</item>
|
||||
<item quantity="few">%d wykluczone</item>
|
||||
<item quantity="many">%d wykluczonych</item>
|
||||
<item quantity="other">%d wykluczonych</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d dołączona</item>
|
||||
<item quantity="few">%d dołączone</item>
|
||||
<item quantity="many">%d dołączonych</item>
|
||||
<item quantity="other">%d dołączonych</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Wszystkie aplikacje</string>
|
||||
<string name="exclude_from_tunnel">Wyklucz</string>
|
||||
<string name="include_in_tunnel">Dołącz tylko</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Dołącz %d aplikację</item>
|
||||
<item quantity="few">Dołącz %d aplikacje</item>
|
||||
<item quantity="many">Dołącz %d aplikacji</item>
|
||||
<item quantity="other">Dołącz %d aplikacji</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Wyklucz %d aplikację</item>
|
||||
<item quantity="few">Wyklucz %d aplikacje</item>
|
||||
<item quantity="many">Wyklucz %d aplikacji</item>
|
||||
<item quantity="other">Wyklucz %d aplikacji</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">co sekundę</item>
|
||||
<item quantity="few">co %d sekundy</item>
|
||||
<item quantity="many">co %d sekund</item>
|
||||
<item quantity="other">co %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">sekundy</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Używaj wszystkich aplikacji</string>
|
||||
<string name="add_peer">Dodaj Peer\'a</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_positive_number">: Musi być dodatni</string>
|
||||
<string name="bad_config_explanation_udp_port">: Musi być poprawnym 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_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>
|
||||
<string name="bad_config_reason_syntax_error">Błąd składni</string>
|
||||
<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="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="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_downloads_file_error">Nie można utworzyć pliku w folderze pobierania</string>
|
||||
<string name="create_empty">Utwórz od podstaw</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="dark_theme_title">Użyj ciemnego motywu</string>
|
||||
<string name="delete">Usuń</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="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="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="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="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="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_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="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_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="name">Nazwa</string>
|
||||
<string name="no_config_error">Próba przywołania 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_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_reason">Nie można przetworzyć %1$s „%2$s”</string>
|
||||
<string name="peer">Peer</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>
|
||||
<string name="pre_shared_key">Klucz wstępnie udostępniony</string>
|
||||
<string name="pre_shared_key_enabled">włączone</string>
|
||||
<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="save">Zapisz</string>
|
||||
<string name="select_all">Wybierz wszystko</string>
|
||||
<string name="settings">Ustawienia</string>
|
||||
<string name="shell_exit_status_read_error">Powłoka nie może odczytać statusu wyjścia</string>
|
||||
<string name="shell_marker_count_error">Powłoka spodziewała się 4 znaczników, otrzymano %d</string>
|
||||
<string name="shell_start_error">Nie udało się uruchomić powłoki: %d</string>
|
||||
<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_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_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>
|
||||
<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">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="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_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="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_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_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>
|
||||
<string name="biometric_prompt_private_key_title">Uwierzytelnij, aby zobaczyć klucz prywatny</string>
|
||||
<string name="biometric_auth_error">Błąd uwierzytelnienia</string>
|
||||
<string name="biometric_auth_error_reason">Błąd uwierzytelnienia: %s</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,242 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">Nu se poate șterge %d tunel: %s</item>
|
||||
<item quantity="few">Nu se pot șterge %d tunele: %s</item>
|
||||
<item quantity="other">Nu se pot șterge %d de tunele: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">%d tunel a fost șters</item>
|
||||
<item quantity="few">%d tunele șterse</item>
|
||||
<item quantity="other">%d de tunele șterse</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d tunel selectat</item>
|
||||
<item quantity="few">%d tuneluri selectate</item>
|
||||
<item quantity="other">%d de tuneluri selectate</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">%1$d din %2$d tuneluri importate</item>
|
||||
<item quantity="few">%1$d din %2$d tuneluri importate</item>
|
||||
<item quantity="other">%1$d din %2$d de tuneluri importate</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">%d tunel importat</item>
|
||||
<item quantity="few">%d tuneluri importate</item>
|
||||
<item quantity="other">%d de tuneluri importate</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d aplicație exclusă</item>
|
||||
<item quantity="few">%d aplicații excluse</item>
|
||||
<item quantity="other">%d de aplicații excluse</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d aplicație inclusă</item>
|
||||
<item quantity="few">%d aplicații incluse</item>
|
||||
<item quantity="other">%d de aplicații incluse</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d exclusă</item>
|
||||
<item quantity="few">%d excluse</item>
|
||||
<item quantity="other">%d excluse</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d inclusă</item>
|
||||
<item quantity="few">%d incluse</item>
|
||||
<item quantity="other">%d incluse</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Toate aplicațiile</string>
|
||||
<string name="exclude_from_tunnel">Excludere</string>
|
||||
<string name="include_in_tunnel">Includere numai</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Include %d aplicație</item>
|
||||
<item quantity="few">Include %d aplicații</item>
|
||||
<item quantity="other">Include %d de aplicații</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">Exclude %d aplicație</item>
|
||||
<item quantity="few">Exclude %d aplicații</item>
|
||||
<item quantity="other">Exclude %d de aplicații</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">în fiecare secundă</item>
|
||||
<item quantity="few">la fiecare %d secunde</item>
|
||||
<item quantity="other">la fiecare %d secunde</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">secundă</item>
|
||||
<item quantity="few">secunde</item>
|
||||
<item quantity="other">secunde</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Utilizează toate aplicațiile</string>
|
||||
<string name="add_peer">Adăugare pereche</string>
|
||||
<string name="addresses">Adrese</string>
|
||||
<string name="applications">Aplicații</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Aplicațiile externe nu pot comuta tunelurile (recomandat)</string>
|
||||
<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>
|
||||
<string name="bad_config_explanation_pka">: Trebuie să fie pozitiv și nu mai mare decât 65535</string>
|
||||
<string name="bad_config_explanation_positive_number">: Trebuie să fie pozitiv</string>
|
||||
<string name="bad_config_explanation_udp_port">: Trebuie să fie un număr de port UDP valid</string>
|
||||
<string name="bad_config_reason_invalid_key">Cheie invalidă</string>
|
||||
<string name="bad_config_reason_invalid_number">Număr invalid</string>
|
||||
<string name="bad_config_reason_invalid_value">Valoare invalidă</string>
|
||||
<string name="bad_config_reason_missing_attribute">Atribuit lipsă</string>
|
||||
<string name="bad_config_reason_missing_section">Secțiune lipsă</string>
|
||||
<string name="bad_config_reason_syntax_error">Eroare de sintaxă</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Atribuit necunoscut</string>
|
||||
<string name="bad_config_reason_unknown_section">Secțiune necunoscută</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Valoare în afara intervalului</string>
|
||||
<string name="bad_extension_error">Fișierul trebuie să fie .conf sau .zip</string>
|
||||
<string name="cancel">Anulare</string>
|
||||
<string name="config_delete_error">Fișierul de configurare %s nu poate fi șters</string>
|
||||
<string name="config_exists_error">Configurația pentru „%s” există deja</string>
|
||||
<string name="config_file_exists_error">Fișierul de configurare „%s” există deja</string>
|
||||
<string name="config_not_found_error">Fișier de configurare „%s” negăsit</string>
|
||||
<string name="config_rename_error">Fișierul de configurare „%s” nu poate fi redenumit</string>
|
||||
<string name="config_save_error">Nu poate fi salvată configurația pentru „%1$s”: %2$s</string>
|
||||
<string name="config_save_success">Configurația pentru „%s” a fost salvată</string>
|
||||
<string name="create_activity_title">Creare tunel WireGuard</string>
|
||||
<string name="create_bin_dir_error">Nu se poate crea directorul binar local</string>
|
||||
<string name="create_downloads_file_error">Fișierul nu poate fi creat în directorul pentru descărcări</string>
|
||||
<string name="create_empty">Creare de la zero</string>
|
||||
<string name="create_from_file">Importare din fișier sau arhivă</string>
|
||||
<string name="create_from_qr_code">Scanare din cod QR</string>
|
||||
<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="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="dns_servers">Servere DNS</string>
|
||||
<string name="edit">Editare</string>
|
||||
<string name="endpoint">Punct final</string>
|
||||
<string name="error_down">Eroare la oprirea tunelului: %s</string>
|
||||
<string name="error_fetching_apps">Eroare la preluarea listei de aplicații: %s</string>
|
||||
<string name="error_root">Obține acces root și încearcă din nou</string>
|
||||
<string name="error_up">Eroare la pornirea tunelului: %s</string>
|
||||
<string name="exclude_private_ips">Excludere IP-uri private</string>
|
||||
<string name="generate_new_private_key">Generare cheie privată nouă</string>
|
||||
<string name="generic_error">Eroare „%s” necunoscută</string>
|
||||
<string name="hint_automatic">(auto)</string>
|
||||
<string name="hint_generated">(generată)</string>
|
||||
<string name="hint_optional">(opțională)</string>
|
||||
<string name="hint_optional_discouraged">(opțională, nerecomandată)</string>
|
||||
<string name="hint_random">(aleatorie)</string>
|
||||
<string name="illegal_filename_error">Nume nepermis de fișier „%s”</string>
|
||||
<string name="import_error">Tunelul nu poate fi importat: %s</string>
|
||||
<string name="import_from_qr_code">Importare tunel din cod QR</string>
|
||||
<string name="import_success">„%s” importat</string>
|
||||
<string name="interface_title">Interfață</string>
|
||||
<string name="key_contents_error">Caractere incorecte în cheie</string>
|
||||
<string name="key_length_error">Lungime incorectă a cheii</string>
|
||||
<string name="key_length_explanation_base64">: Cheile base64 ale WireGuard trebuie să aibă 44 de caractere (32 de octeți)</string>
|
||||
<string name="key_length_explanation_binary">: Cheile WireGuard trebuie să aibă 32 de octeți</string>
|
||||
<string name="key_length_explanation_hex">: Cheile hex WireGuard trebuie să aibă 64 de caractere (32 de octeți)</string>
|
||||
<string name="listen_port">Port de ascultare</string>
|
||||
<string name="log_export_error">Jurnalul nu poate fi exportat: %s</string>
|
||||
<string name="log_export_subject">Fișier de jurnal Android WireGuard</string>
|
||||
<string name="log_export_success">Salvat în „%s”</string>
|
||||
<string name="log_export_title">Exportare fișier de jurnal</string>
|
||||
<string name="log_saver_activity_label">Salvare jurnal</string>
|
||||
<string name="log_viewer_pref_summary">Jurnalele pot ajuta la depanare</string>
|
||||
<string name="log_viewer_pref_title">Vizualizare jurnal aplicație</string>
|
||||
<string name="log_viewer_title">Jurnal</string>
|
||||
<string name="logcat_error">Programul logcat nu poate fi executat: </string>
|
||||
<string name="module_disabler_disabled_summary">Modulul experimental de nucleu poate îmbunătăți performanța</string>
|
||||
<string name="module_disabler_disabled_title">Activează biblioteca modulului de nucleu</string>
|
||||
<string name="module_disabler_enabled_summary">Biblioteca mai lentă a spațiului utilizatorului poate îmbunătăți stabilitatea</string>
|
||||
<string name="module_disabler_enabled_title">Dezactivează biblioteca modulului de nucleu</string>
|
||||
<string name="module_installer_error">A apărut o eroare. Încearcă din nou</string>
|
||||
<string name="module_installer_initial">Modulul experimental de nucleu poate îmbunătăți performanța</string>
|
||||
<string name="module_installer_not_found">Nu sunt disponibile module pentru dispozitivul tău</string>
|
||||
<string name="module_installer_title">Descărcare și instalare modul nucleu</string>
|
||||
<string name="module_installer_working">Se descarcă și se instalează…</string>
|
||||
<string name="module_version_error">Nu se poate determina versiunea modulului de nucleu</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Pornirea unui tunel va opri celelalte tuneluri</string>
|
||||
<string name="multiple_tunnels_summary_on">Mai multe tunele pot fi pornite simultan</string>
|
||||
<string name="multiple_tunnels_title">Permite mai multe tuneluri simultane</string>
|
||||
<string name="name">Nume</string>
|
||||
<string name="no_config_error">Se încearcă pornirea unui tunel fără configurație</string>
|
||||
<string name="no_configs_error">Nu au fost găsite configurații</string>
|
||||
<string name="no_tunnels_error">Nu există tuneluri</string>
|
||||
<string name="parse_error_generic">șir</string>
|
||||
<string name="parse_error_inet_address">Adresă IP</string>
|
||||
<string name="parse_error_inet_endpoint">punct final</string>
|
||||
<string name="parse_error_inet_network">Rețea IP</string>
|
||||
<string name="parse_error_integer">număr</string>
|
||||
<string name="parse_error_reason">Nu se poate analiza %1$s „%2$s”</string>
|
||||
<string name="peer">Pereche</string>
|
||||
<string name="permission_description">controleze tuneluri WireGuard și, astfel, să activeze și să dezactiveze tuneluri în mod automat, existând posibilitatea de a dirija greșit traficul de internet</string>
|
||||
<string name="permission_label">controleze tuneluri WireGuard</string>
|
||||
<string name="persistent_keepalive">Mesaj keepalive persistent</string>
|
||||
<string name="pre_shared_key">Cheie predistribuită</string>
|
||||
<string name="pre_shared_key_enabled">activată</string>
|
||||
<string name="private_key">Cheie privată</string>
|
||||
<string name="public_key">Cheie publică</string>
|
||||
<string name="qr_code_hint">Sfat: generează cu `qrencode -t ansiutf8 < tunnel.conf`.</string>
|
||||
<string name="restore_on_boot_summary_off">Tunelurile activate nu vor fi pornite odată cu pornirea dispozitivului</string>
|
||||
<string name="restore_on_boot_summary_on">Tunelurile activate vor fi pornite odată cu pornirea dispozitivului</string>
|
||||
<string name="restore_on_boot_title">Restaurare la pornire</string>
|
||||
<string name="save">Salvare</string>
|
||||
<string name="select_all">Selectare totală</string>
|
||||
<string name="settings">Setări</string>
|
||||
<string name="shell_exit_status_read_error">Interfața de comunicare nu poate citi starea de ieșire</string>
|
||||
<string name="shell_marker_count_error">Interfața de comunicare a așteptat 4 marcatori, a primit %d</string>
|
||||
<string name="shell_start_error">Interfața de comunicare nu a putut porni: %d</string>
|
||||
<string name="success_application_will_restart">Succes. Aplicația se va reporni acum…</string>
|
||||
<string name="toggle_all">Comutare toate</string>
|
||||
<string name="toggle_error">Eroare la comutarea tunelului WireGuard: %s</string>
|
||||
<string name="tools_installer_already">wg și wg-quick sunt deja instalate</string>
|
||||
<string name="tools_installer_failure">Nu se pot instala instrumentele de linie de comandă (lipsă root?)</string>
|
||||
<string name="tools_installer_initial">Instalare instrumente opționale pentru scriptare</string>
|
||||
<string name="tools_installer_initial_magisk">Instalare instrumente opționale pentru scriptare ca modul Magisk</string>
|
||||
<string name="tools_installer_initial_system">Instalare instrumente opționale pentru scriptare în partiția de sistem</string>
|
||||
<string name="tools_installer_success_magisk">wg și wg-quick instalate ca modul Magisk (este necesară repornirea)</string>
|
||||
<string name="tools_installer_success_system">wg și wg-quick instalate în partiția de sistem</string>
|
||||
<string name="tools_installer_title">Instalare instrumente de linie de comandă</string>
|
||||
<string name="tools_installer_working">Se instalează wg și wg-quick</string>
|
||||
<string name="tools_unavailable_error">Instrumentele necesare sunt indisponibile</string>
|
||||
<string name="transfer">Transferare</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">Nu se poate crea dispozitiv TUN</string>
|
||||
<string name="tunnel_config_error">Tunelul nu poate fi configurat (wg-quick a returnat %d)</string>
|
||||
<string name="tunnel_create_error">Tunelul nu poate fi creat: %s</string>
|
||||
<string name="tunnel_create_success">Tunelul „%s” a fost creat</string>
|
||||
<string name="tunnel_error_already_exists">Tunelul „%s” există deja</string>
|
||||
<string name="tunnel_error_invalid_name">Nume invalid</string>
|
||||
<string name="tunnel_list_placeholder">Adaugă un tunel folosind butonul albastru</string>
|
||||
<string name="tunnel_name">Numele tunelului</string>
|
||||
<string name="tunnel_on_error">Tunelul nu poate fi pornit (wgTurnOn a returnat %d)</string>
|
||||
<string name="tunnel_rename_error">Tunelul nu poate fi redenumit: %s</string>
|
||||
<string name="tunnel_rename_success">Tunelul a fost redenumit ca „%s”</string>
|
||||
<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>
|
||||
<string name="vpn_not_authorized_error">Serviciul VPN nu este autorizat de utilizator</string>
|
||||
<string name="vpn_start_error">Serviciul VPN Android nu poate fi pornit</string>
|
||||
<string name="zip_export_error">Tunelurile nu pot fi exportate: %s</string>
|
||||
<string name="zip_export_success">Salvat în „%s”</string>
|
||||
<string name="zip_export_summary">Fișierul zip va fi salvat în dosarul pentru descărcări</string>
|
||||
<string name="zip_export_title">Exportare tuneluri în fișierul zip</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Autentifică-te pentru a exporta tunelurile</string>
|
||||
<string name="biometric_prompt_private_key_title">Autentifică-te pentru a vizualiza cheia privată</string>
|
||||
<string name="biometric_auth_error">Eroare la autentificare</string>
|
||||
<string name="biometric_auth_error_reason">Eroare la autentificare: %s</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<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="delete">Sil</string>
|
||||
<string name="edit">Düzenle</string>
|
||||
<string name="hint_automatic">(otomatik)</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="interface_title">Arayüz</string>
|
||||
<string name="listen_port">Dinleme portu</string>
|
||||
<string name="log_export_title">Dosyayı Dışarı 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_title">Günlük</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,86 @@
|
||||
<?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_total_success">
|
||||
<item quantity="other">匯入了 %d 個通道</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="other">排除了 %d 個應用程式</item>
|
||||
</plurals>
|
||||
<string name="add_peer">新增端點</string>
|
||||
<string name="addresses">位址</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>
|
||||
<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_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 code</string>
|
||||
<string name="create_output_dir_error">無法建立輸出目錄</string>
|
||||
<string name="create_temp_dir_error">無法建立本地暫存目錄</string>
|
||||
<string name="create_tunnel">新建通道</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="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">請取得 root 存取權再試一次</string>
|
||||
<string name="error_up">起用通道錯誤: %s</string>
|
||||
<string name="exclude_private_ips">排除私有 IPs</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_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_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_success">儲存到「%s」</string>
|
||||
<string name="log_export_title">匯出日誌檔</string>
|
||||
<string name="save">儲存</string>
|
||||
<string name="select_all">全選</string>
|
||||
<string name="toggle_all">切換全部</string>
|
||||
</resources>
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
buildscript {
|
||||
ext {
|
||||
wireguardVersionCode = 482
|
||||
wireguardVersionName = '1.0.20200927'
|
||||
wireguardVersionCode = 485
|
||||
wireguardVersionName = '1.0.20201224'
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user