mirror of
https://github.com/amnezia-vpn/amneziawg-android.git
synced 2026-07-03 14:05:13 +02:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0750c29c7f | |||
| 639ee6b5b2 | |||
| f764f2aaa9 | |||
| d2a9c56d9c | |||
| 4c3289aa52 | |||
| 79376bca64 | |||
| b709d36c01 | |||
| 0301c85e2c | |||
| 7e979817e2 | |||
| 13cc4436ca | |||
| bcfbf37ed1 | |||
| 74ff870cf5 | |||
| b4f54e8958 | |||
| d179a3af15 | |||
| 2bac2feeb5 | |||
| 261236c8ce | |||
| 4a7969ef24 | |||
| f670ff22c6 | |||
| cb3194f10a | |||
| f6b2bbf433 | |||
| 56a4862442 |
+18
-10
@@ -1,7 +1,7 @@
|
||||
buildscript {
|
||||
ext {
|
||||
activityVersion = '1.2.0-beta02'
|
||||
agpVersion = '4.1.1'
|
||||
activityVersion = '1.2.0-rc01'
|
||||
agpVersion = '4.1.2'
|
||||
annotationsVersion = '1.1.0'
|
||||
appcompatVersion = '1.2.0'
|
||||
biometricVersion = '1.1.0-rc01'
|
||||
@@ -12,12 +12,12 @@ buildscript {
|
||||
coroutinesVersion = '1.4.2'
|
||||
datastoreVersion = '1.0.0-alpha02'
|
||||
desugarVersion = '1.0.10'
|
||||
fragmentVersion = '1.3.0-beta02'
|
||||
fragmentVersion = '1.3.0-rc02'
|
||||
jsr305Version = '3.0.2'
|
||||
junitVersion = '4.13.1'
|
||||
kotlinVersion = '1.4.21'
|
||||
lifecycleRuntimeKtxVersion = '2.3.0-beta01'
|
||||
materialComponentsVersion = '1.3.0-alpha04'
|
||||
kotlinVersion = '1.4.21-2'
|
||||
lifecycleRuntimeKtxVersion = '2.3.0-rc01'
|
||||
materialComponentsVersion = '1.3.0-rc01'
|
||||
preferenceVersion = '1.1.1'
|
||||
zxingEmbeddedVersion = '3.6.0'
|
||||
|
||||
@@ -29,7 +29,7 @@ buildscript {
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,15 @@ task crowdin(type: Copy, dependsOn: ['extractCrowdin']) {
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
jcenter() {
|
||||
content {
|
||||
// https://github.com/journeyapps/zxing-android-embedded/issues/606
|
||||
includeModule("com.journeyapps", "zxing-android-embedded")
|
||||
// https://youtrack.jetbrains.com/issue/IDEA-261387
|
||||
includeModule("org.jetbrains.trove4j", "trove4j")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,9 +87,9 @@ task clean(type: Delete) {
|
||||
|
||||
tasks {
|
||||
wrapper {
|
||||
gradleVersion = "6.7.1"
|
||||
gradleVersion = "6.8.2"
|
||||
distributionType = Wrapper.DistributionType.ALL
|
||||
distributionSha256Sum = "22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb"
|
||||
distributionSha256Sum = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
#Thu Feb 11 16:09:16 CET 2021
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-all.zip
|
||||
|
||||
+14
-4
@@ -1,4 +1,5 @@
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'signing'
|
||||
|
||||
afterEvaluate {
|
||||
publishing {
|
||||
@@ -35,17 +36,21 @@ afterEvaluate {
|
||||
name = 'WireGuard'
|
||||
url = 'https://www.wireguard.com/'
|
||||
}
|
||||
developer {
|
||||
name = 'WireGuard'
|
||||
email = 'team@wireguard.com'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "bintray"
|
||||
url = uri("https://api.bintray.com/maven/wireguard/wireguard-android/wireguard-android/;publish=1;override=0")
|
||||
name = "sonatype"
|
||||
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
|
||||
credentials {
|
||||
username = hasProperty('BINTRAY_USER') ? getProperty('BINTRAY_USER') : System.getenv('BINTRAY_USER')
|
||||
password = hasProperty('BINTRAY_KEY') ? getProperty('BINTRAY_KEY') : System.getenv('BINTRAY_KEY')
|
||||
username = hasProperty('SONATYPE_USER') ? getProperty('SONATYPE_USER') : System.getenv('SONATYPE_USER')
|
||||
password = hasProperty('SONATYPE_PASSWORD') ? getProperty('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,3 +75,8 @@ android.libraryVariants.all { variant ->
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
useGpgCmd()
|
||||
sign publishing.publications
|
||||
}
|
||||
|
||||
@@ -20,11 +20,11 @@ export GOARCH := $(NDK_GO_ARCH_MAP_$(ANDROID_ARCH_NAME))
|
||||
export GOOS := android
|
||||
export CGO_ENABLED := 1
|
||||
|
||||
GO_VERSION := 1.15.2
|
||||
GO_VERSION := 1.15.6
|
||||
GO_PLATFORM := $(shell uname -s | tr '[:upper:]' '[:lower:]')-$(NDK_GO_ARCH_MAP_$(shell uname -m))
|
||||
GO_TARBALL := go$(GO_VERSION).$(GO_PLATFORM).tar.gz
|
||||
GO_HASH_darwin-amd64 := 9bd39600d9fa1fa4a5ccce8761d249f7421cffe671376f791293c4138f3d7c62
|
||||
GO_HASH_linux-amd64 := b49fda1ca29a1946d6bb2a5a6982cf07ccd2aba849289508ee0f9918f6bb4552
|
||||
GO_HASH_darwin-amd64 := 940a73b45993a3bae5792cf324140dded34af97c548af4864d22fd6d49f3bd9f
|
||||
GO_HASH_linux-amd64 := 3918e6cc85e7eaaa6f859f1bdbaac772e7a825b0eb423c63d3ae68b21f84b844
|
||||
|
||||
default: $(DESTDIR)/libwg-go.so
|
||||
|
||||
|
||||
@@ -10,15 +10,12 @@ package main
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"log"
|
||||
"fmt"
|
||||
"math"
|
||||
"net"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"strings"
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
@@ -29,13 +26,21 @@ import (
|
||||
)
|
||||
|
||||
type AndroidLogger struct {
|
||||
level C.int
|
||||
interfaceName string
|
||||
level C.int
|
||||
tag *C.char
|
||||
}
|
||||
|
||||
func (l AndroidLogger) Write(p []byte) (int, error) {
|
||||
C.__android_log_write(l.level, C.CString("WireGuard/GoBackend/"+l.interfaceName), C.CString(string(p)))
|
||||
return len(p), nil
|
||||
func cstring(s string) *C.char {
|
||||
b, err := unix.BytePtrFromString(s)
|
||||
if err != nil {
|
||||
b := [1]C.char{}
|
||||
return &b[0]
|
||||
}
|
||||
return (*C.char)(unsafe.Pointer(b))
|
||||
}
|
||||
|
||||
func (l AndroidLogger) Printf(format string, args ...interface{}) {
|
||||
C.__android_log_write(l.level, l.tag, cstring(fmt.Sprintf(format, args...)))
|
||||
}
|
||||
|
||||
type TunnelHandle struct {
|
||||
@@ -55,39 +60,38 @@ func init() {
|
||||
select {
|
||||
case <-signals:
|
||||
n := runtime.Stack(buf, true)
|
||||
if n == len(buf) {
|
||||
n--
|
||||
}
|
||||
buf[n] = 0
|
||||
C.__android_log_write(C.ANDROID_LOG_ERROR, C.CString("WireGuard/GoBackend/Stacktrace"), (*C.char)(unsafe.Pointer(&buf[0])))
|
||||
C.__android_log_write(C.ANDROID_LOG_ERROR, cstring("WireGuard/GoBackend/Stacktrace"), (*C.char)(unsafe.Pointer(&buf[0])))
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
//export wgTurnOn
|
||||
func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
interfaceName := string([]byte(ifnameRef))
|
||||
|
||||
func wgTurnOn(interfaceName string, tunFd int32, settings string) int32 {
|
||||
tag := cstring("WireGuard/GoBackend/" + interfaceName)
|
||||
logger := &device.Logger{
|
||||
Debug: log.New(&AndroidLogger{level: C.ANDROID_LOG_DEBUG, interfaceName: interfaceName}, "", 0),
|
||||
Info: log.New(&AndroidLogger{level: C.ANDROID_LOG_INFO, interfaceName: interfaceName}, "", 0),
|
||||
Error: log.New(&AndroidLogger{level: C.ANDROID_LOG_ERROR, interfaceName: interfaceName}, "", 0),
|
||||
Verbosef: AndroidLogger{level: C.ANDROID_LOG_DEBUG, tag: tag}.Printf,
|
||||
Errorf: AndroidLogger{level: C.ANDROID_LOG_ERROR, tag: tag}.Printf,
|
||||
}
|
||||
|
||||
logger.Debug.Println("Debug log enabled")
|
||||
|
||||
tun, name, err := tun.CreateUnmonitoredTUNFromFD(int(tunFd))
|
||||
if err != nil {
|
||||
unix.Close(int(tunFd))
|
||||
logger.Error.Println(err)
|
||||
logger.Errorf("CreateUnmonitoredTUNFromFD: %v", err)
|
||||
return -1
|
||||
}
|
||||
|
||||
logger.Info.Println("Attaching to interface", name)
|
||||
logger.Verbosef("Attaching to interface %v", name)
|
||||
device := device.NewDevice(tun, logger)
|
||||
|
||||
setError := device.IpcSetOperation(bufio.NewReader(strings.NewReader(settings)))
|
||||
if setError != nil {
|
||||
err = device.IpcSet(settings)
|
||||
if err != nil {
|
||||
unix.Close(int(tunFd))
|
||||
logger.Error.Println(setError)
|
||||
logger.Errorf("IpcSet: %v", err)
|
||||
return -1
|
||||
}
|
||||
device.DisableSomeRoamingForBrokenMobileSemantics()
|
||||
@@ -96,12 +100,12 @@ func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
|
||||
uapiFile, err := ipc.UAPIOpen(name)
|
||||
if err != nil {
|
||||
logger.Error.Println(err)
|
||||
logger.Errorf("UAPIOpen: %v", err)
|
||||
} else {
|
||||
uapi, err = ipc.UAPIListen(name, uapiFile)
|
||||
if err != nil {
|
||||
uapiFile.Close()
|
||||
logger.Error.Println(err)
|
||||
logger.Errorf("UAPIListen: %v", err)
|
||||
} else {
|
||||
go func() {
|
||||
for {
|
||||
@@ -115,8 +119,14 @@ func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
}
|
||||
}
|
||||
|
||||
device.Up()
|
||||
logger.Info.Println("Device started")
|
||||
err = device.Up()
|
||||
if err != nil {
|
||||
logger.Errorf("Unable to bring up device: %v", err)
|
||||
uapiFile.Close()
|
||||
device.Close()
|
||||
return -1
|
||||
}
|
||||
logger.Verbosef("Device started")
|
||||
|
||||
var i int32
|
||||
for i = 0; i < math.MaxInt32; i++ {
|
||||
@@ -125,7 +135,9 @@ func wgTurnOn(ifnameRef string, tunFd int32, settings string) int32 {
|
||||
}
|
||||
}
|
||||
if i == math.MaxInt32 {
|
||||
unix.Close(int(tunFd))
|
||||
logger.Errorf("Unable to find empty handle")
|
||||
uapiFile.Close()
|
||||
device.Close()
|
||||
return -1
|
||||
}
|
||||
tunnelHandles[i] = TunnelHandle{device: device, uapi: uapi}
|
||||
@@ -185,14 +197,11 @@ func wgGetConfig(tunnelHandle int32) *C.char {
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
settings := new(bytes.Buffer)
|
||||
writer := bufio.NewWriter(settings)
|
||||
err := handle.device.IpcGetOperation(writer)
|
||||
settings, err := handle.device.IpcGet()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
writer.Flush()
|
||||
return C.CString(settings.String())
|
||||
return C.CString(settings)
|
||||
}
|
||||
|
||||
//export wgVersion
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
module golang.zx2c4.com/wireguard/android
|
||||
|
||||
go 1.14
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 // indirect
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924 // indirect
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201215171155-74008520cdd9
|
||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777 // indirect
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c
|
||||
golang.zx2c4.com/wireguard v0.0.0-20210211144856-ef8115f63b22
|
||||
)
|
||||
|
||||
@@ -1,24 +1,22 @@
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 h1:sYNJzB4J8toYPQTM6pAkcmBRgw9SnQKP9oXCHfgy604=
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-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-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924 h1:QsnDpLLOKwHBBDa8nDws4DYNc/ryVW2vCpxCs09d4PY=
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw=
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew=
|
||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/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-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e h1:AyodaIpKjppX+cBfTASF2E1US3H2JFBj920Ot3rtDjs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210105210732-16f7687f5001 h1:/dSxr6gT0FNI1MO5WLJo8mTmItROeOKTkDn+7OwWBos=
|
||||
golang.org/x/sys v0.0.0-20210105210732-16f7687f5001/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/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.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.20201119-0.20201215171155-74008520cdd9 h1:rdbSLajsO6nfT4NViHeB/6lMW4vaO1bfsTvmeDpYvVs=
|
||||
golang.zx2c4.com/wireguard v0.0.20201119-0.20201215171155-74008520cdd9/go.mod h1:ITsWNpkFv78VPB7f8MiyuxeEMcHR4jfxHGCJLPP3GHs=
|
||||
golang.zx2c4.com/wireguard v0.0.0-20210211144856-ef8115f63b22 h1:7Ct1Jps4o4u2hBFWrg8Rt65VmXfMPTeR0OSXxdq8gMk=
|
||||
golang.zx2c4.com/wireguard v0.0.0-20210211144856-ef8115f63b22/go.mod h1:r0ExowOoGFfDoLDxx+M9SYbNVsoZ0xviLL+K4f2mt+A=
|
||||
|
||||
Submodule tunnel/tools/wireguard-tools updated: 265e81a344...e8fa0f662f
@@ -11,6 +11,7 @@ import android.widget.TextView
|
||||
import androidx.core.content.getSystemService
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import com.wireguard.android.R
|
||||
|
||||
/**
|
||||
* Standalone utilities for interacting with the system clipboard.
|
||||
@@ -28,6 +29,6 @@ object ClipboardUtils {
|
||||
}
|
||||
val service = view.context.getSystemService<ClipboardManager>() ?: return
|
||||
service.setPrimaryClip(ClipData.newPlainText(data.second, data.first))
|
||||
Snackbar.make(view, "${data.second} copied to clipboard", Snackbar.LENGTH_LONG).show()
|
||||
Snackbar.make(view, view.context.getString(R.string.copied_to_clipboard, data.second), Snackbar.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="zero">تم حذف نفق %d بنجاح</item>
|
||||
<item quantity="one">تم حذف %d نفق بنجاح</item>
|
||||
<item quantity="two">تم حذف %d نفق بنجاح</item>
|
||||
<item quantity="few">تم حذف %d نفق بنجاح</item>
|
||||
<item quantity="many">تم حذف %d نفق بنجاح</item>
|
||||
<item quantity="other">تم حذف %d انفاق بنجاح</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="zero">%d نفق محدد</item>
|
||||
<item quantity="one">%d نفق محدد</item>
|
||||
<item quantity="two">%d نفق محدد</item>
|
||||
<item quantity="few">%d عنصر محدد</item>
|
||||
<item quantity="many">%d عنصر محدد</item>
|
||||
<item quantity="other">%d عنصر محدد</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
@@ -1,5 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">No s\'ha pogut esborrar %d túnel: %s</item>
|
||||
<item quantity="other">No s\'han pogut esborrar %d túnels: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d túnel seleccionat</item>
|
||||
<item quantity="other">%d túnels seleccionats</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d exclòs</item>
|
||||
<item quantity="other">%d exclosos</item>
|
||||
@@ -27,6 +35,7 @@
|
||||
<item quantity="one">segon</item>
|
||||
<item quantity="other">segons</item>
|
||||
</plurals>
|
||||
<string name="add_peer">Afegir parell</string>
|
||||
<string name="addresses">Adreces</string>
|
||||
<string name="applications">Aplicacions</string>
|
||||
<string name="allowed_ips">IPs permeses</string>
|
||||
@@ -38,7 +47,12 @@
|
||||
<string name="bad_config_reason_unknown_attribute">Atribut desconegut</string>
|
||||
<string name="bad_config_reason_unknown_section">Secció desconeguda</string>
|
||||
<string name="cancel">Cancel·la</string>
|
||||
<string name="create_activity_title">Crear túnel WireGuard</string>
|
||||
<string name="create_empty">Crea des de zero</string>
|
||||
<string name="create_from_file">Importa des de fitxer o arxiu</string>
|
||||
<string name="create_from_qr_code">Escaneja codi QR</string>
|
||||
<string name="create_tunnel">Crear túnel</string>
|
||||
<string name="dark_theme_title">Utilitza tema fosc</string>
|
||||
<string name="delete">Elimina</string>
|
||||
<string name="dns_servers">Servidors DNS</string>
|
||||
<string name="edit">Edita</string>
|
||||
@@ -49,22 +63,36 @@
|
||||
<string name="hint_optional">(opcional)</string>
|
||||
<string name="hint_optional_discouraged">(opcional, no recomanat)</string>
|
||||
<string name="hint_random">(aleatori)</string>
|
||||
<string name="import_from_qr_code">Importa túnel desde codi QR</string>
|
||||
<string name="import_success">Importat “%s”</string>
|
||||
<string name="interface_title">Interfície</string>
|
||||
<string name="key_length_error">Longitud de clau incorrecta</string>
|
||||
<string name="log_export_success">Guardat a \"%s\"</string>
|
||||
<string name="log_export_title">Exporta el registre</string>
|
||||
<string name="log_saver_activity_label">Guarda registre</string>
|
||||
<string name="log_viewer_pref_title">Mostra el registre d\'aplicació</string>
|
||||
<string name="log_viewer_title">Registre</string>
|
||||
<string name="multiple_tunnels_title">Permet múltiples túnels simultanis</string>
|
||||
<string name="name">Nom</string>
|
||||
<string name="no_tunnels_error">No existeixen túnels</string>
|
||||
<string name="parse_error_inet_address">Adreça IP</string>
|
||||
<string name="parse_error_inet_network">Xarxa IP</string>
|
||||
<string name="parse_error_integer">número</string>
|
||||
<string name="peer">Parell</string>
|
||||
<string name="pre_shared_key_enabled">activat</string>
|
||||
<string name="private_key">Clau privada</string>
|
||||
<string name="public_key">Clau pública</string>
|
||||
<string name="restore_on_boot_title">Restableix a l\'inici</string>
|
||||
<string name="save">Guarda</string>
|
||||
<string name="select_all">Selecciona-ho tot</string>
|
||||
<string name="settings">Configuració</string>
|
||||
<string name="tunnel_error_already_exists">El túnel \"%s\" ja existeix</string>
|
||||
<string name="tunnel_error_invalid_name">Nom no vàlid</string>
|
||||
<string name="tunnel_list_placeholder">Afegiu un túnel usant el botó blau</string>
|
||||
<string name="tunnel_name">Nom del túnel</string>
|
||||
<string name="unknown_error">Error desconegut</string>
|
||||
<string name="version_summary_unknown">Versió de %s desconeguda</string>
|
||||
<string name="zip_export_success">Guardat a \"%s\"</string>
|
||||
<string name="biometric_auth_error">Error d\'autenticació</string>
|
||||
<string name="biometric_auth_error_reason">Error d\'autenticació: %s</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,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>
|
||||
@@ -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>
|
||||
@@ -171,6 +171,7 @@
|
||||
<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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -32,7 +32,7 @@
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d Исключенное приложение</item>
|
||||
<item quantity="few">%d Исключенных приложений</item>
|
||||
<item quantity="few">%d Исключенных приложения</item>
|
||||
<item quantity="many">%d Исключенных приложений</item>
|
||||
<item quantity="other">%d Исключенных приложений</item>
|
||||
</plurals>
|
||||
@@ -56,7 +56,7 @@
|
||||
</plurals>
|
||||
<string name="all_applications">Все приложения</string>
|
||||
<string name="exclude_from_tunnel">Исключить</string>
|
||||
<string name="include_in_tunnel">Только включить</string>
|
||||
<string name="include_in_tunnel">Только включено</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">Включить %d приложение</item>
|
||||
<item quantity="few">Включить %d приложения</item>
|
||||
@@ -82,12 +82,12 @@
|
||||
<item quantity="other">секунд</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Использовать все приложения</string>
|
||||
<string name="add_peer">Добавить пира</string>
|
||||
<string name="add_peer">Добавить пир</string>
|
||||
<string name="addresses">IP-адреса</string>
|
||||
<string name="applications">Приложения</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Сторонние приложения не могут переключать туннели (рекомендуется)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Сторонние приложения могут переключать туннели (дополнительно)</string>
|
||||
<string name="allow_remote_control_intents_title">Доступ к другим приложениям</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Внешние приложения не могут переключать туннели (рекомендуется)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Внешние приложения могут переключать туннели (расширенное)</string>
|
||||
<string name="allow_remote_control_intents_title">Разрешить управление через внешние приложения</string>
|
||||
<string name="allowed_ips">Разрешенные IP-адреса</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s из %2$s</string>
|
||||
@@ -153,18 +153,18 @@
|
||||
<string name="key_length_explanation_binary">: Ключи WireGuard должны быть 32 байта</string>
|
||||
<string name="key_length_explanation_hex">: HEX ключи WireGuard должны содержать 64 символа (32 байта)</string>
|
||||
<string name="listen_port">Порт</string>
|
||||
<string name="log_export_error">Не удалось экспортировать логи: %s</string>
|
||||
<string name="log_export_subject">Файл логов WireGuard Android</string>
|
||||
<string name="log_export_error">Не удалось экспортировать журнал: %s</string>
|
||||
<string name="log_export_subject">Файл журнала WireGuard Android</string>
|
||||
<string name="log_export_success">Сохранено в “%s”</string>
|
||||
<string name="log_export_title">Экспорт логов в файл</string>
|
||||
<string name="log_saver_activity_label">Сохранить логи</string>
|
||||
<string name="log_viewer_pref_summary">Логи могут помочь с отладкой</string>
|
||||
<string name="log_viewer_pref_title">Просмотр логов приложения</string>
|
||||
<string name="log_viewer_title">Логи</string>
|
||||
<string name="log_export_title">Экспорт журнала в файл</string>
|
||||
<string name="log_saver_activity_label">Сохранить журнал</string>
|
||||
<string name="log_viewer_pref_summary">Журналы могут помочь при отладке</string>
|
||||
<string name="log_viewer_pref_title">Просмотр журналов приложения</string>
|
||||
<string name="log_viewer_title">Журнал</string>
|
||||
<string name="logcat_error">Не удалось запустить logcat: </string>
|
||||
<string name="module_disabler_disabled_summary">Экспериментальный модуль ядра приоритетнее и улучшает производительность</string>
|
||||
<string name="module_disabler_disabled_title">Включить модуль ядра</string>
|
||||
<string name="module_disabler_enabled_summary">Пользовательское пространство немного медленнее и улучшает стабильность</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>
|
||||
@@ -176,7 +176,7 @@
|
||||
<string name="multiple_tunnels_summary_off">Только один туннель, выключит другие</string>
|
||||
<string name="multiple_tunnels_summary_on">Могут быть включены несколько туннелей одновременно</string>
|
||||
<string name="multiple_tunnels_title">Несколько туннелей</string>
|
||||
<string name="name">Имя</string>
|
||||
<string name="name">Название</string>
|
||||
<string name="no_config_error">Попытка поднять туннель без конфигурации</string>
|
||||
<string name="no_configs_error">Конфигурации не найдены</string>
|
||||
<string name="no_tunnels_error">Туннелей не существует</string>
|
||||
@@ -229,13 +229,13 @@
|
||||
<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_error_invalid_name">Некорректное название</string>
|
||||
<string name="tunnel_list_placeholder">Добавьте туннель с помощью синей кнопки</string>
|
||||
<string name="tunnel_name">Название туннеля</string>
|
||||
<string name="tunnel_on_error">Не удалось включить туннель (wgTurnOn вернул %d)</string>
|
||||
<string name="tunnel_rename_error">Не удалось переименовать туннель: %s</string>
|
||||
<string name="tunnel_rename_success">Туннель успешно переименован в “%s”</string>
|
||||
<string name="type_name_go_userspace">Пользовательское пространство</string>
|
||||
<string name="type_name_go_userspace">Перейти в пользовательское пространство</string>
|
||||
<string name="type_name_kernel_module">Модуль ядра</string>
|
||||
<string name="unknown_error">Неизвестная ошибка</string>
|
||||
<string name="version_summary">%1$s v%2$s</string>
|
||||
|
||||
@@ -1,24 +1,229 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="delete_error">
|
||||
<item quantity="one">%d tüneli silinemiyor: %s</item>
|
||||
<item quantity="other">%d tünelleri silinemiyor: %s</item>
|
||||
</plurals>
|
||||
<plurals name="delete_success">
|
||||
<item quantity="one">%d tüneli başarıyla silindi</item>
|
||||
<item quantity="other">%d tünelleri başarıyla silindi</item>
|
||||
</plurals>
|
||||
<plurals name="delete_title">
|
||||
<item quantity="one">%d tüneli seçildi</item>
|
||||
<item quantity="other">%d tünelleri seçildi</item>
|
||||
</plurals>
|
||||
<plurals name="import_partial_success">
|
||||
<item quantity="one">%1$d/%2$d tünel içe aktarıldı</item>
|
||||
<item quantity="other">%1$d/%2$d tünel içe aktarıldı</item>
|
||||
</plurals>
|
||||
<plurals name="import_total_success">
|
||||
<item quantity="one">%d tünel içe aktarıldı</item>
|
||||
<item quantity="other">%d tünel içe aktarıldı</item>
|
||||
</plurals>
|
||||
<plurals name="set_excluded_applications">
|
||||
<item quantity="one">%d Hariç Tutulan Uygulama</item>
|
||||
<item quantity="other">%d Hariç Tutulan Uygulamalar</item>
|
||||
</plurals>
|
||||
<plurals name="set_included_applications">
|
||||
<item quantity="one">%d Dahil Edilen Uygulama</item>
|
||||
<item quantity="other">%d Dahil Edilen Uygulamalar</item>
|
||||
</plurals>
|
||||
<plurals name="n_excluded_applications">
|
||||
<item quantity="one">%d hariç tutuldu</item>
|
||||
<item quantity="other">%d hariç tutuldu</item>
|
||||
</plurals>
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="one">%d dahil edildi</item>
|
||||
<item quantity="other">%d dahil edildi</item>
|
||||
</plurals>
|
||||
<string name="all_applications">Tüm Uygulamalar</string>
|
||||
<string name="exclude_from_tunnel">Hariç</string>
|
||||
<string name="include_in_tunnel">Yalnızca dahil</string>
|
||||
<plurals name="include_n_applications">
|
||||
<item quantity="one">%d uygulamasını dahil et</item>
|
||||
<item quantity="other">%d uygulamalarını dahil et</item>
|
||||
</plurals>
|
||||
<plurals name="exclude_n_applications">
|
||||
<item quantity="one">%d uygulamasını hariç tut</item>
|
||||
<item quantity="other">%d uygulamalarını hariç tut</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_unit">
|
||||
<item quantity="one">her saniye</item>
|
||||
<item quantity="other">%d saniyede bir</item>
|
||||
</plurals>
|
||||
<plurals name="persistent_keepalive_seconds_suffix">
|
||||
<item quantity="one">saniye</item>
|
||||
<item quantity="other">saniye</item>
|
||||
</plurals>
|
||||
<string name="use_all_applications">Tüm uygulamaları kullan</string>
|
||||
<string name="add_peer">Eş ekle</string>
|
||||
<string name="addresses">Adresler</string>
|
||||
<string name="applications">Uygulamalar</string>
|
||||
<string name="allow_remote_control_intents_summary_off">Harici uygulamalar tünelleri değiştiremez (önerilir)</string>
|
||||
<string name="allow_remote_control_intents_summary_on">Harici uygulamalar tünelleri değiştirebilir (gelişmiş)</string>
|
||||
<string name="allow_remote_control_intents_title">Uzaktan kontrol uygulamalarına izin ver</string>
|
||||
<string name="allowed_ips">İzin verilen IP\'ler</string>
|
||||
<string name="app_name">WireGuard</string>
|
||||
<string name="bad_config_context">%1$s\'in %2$s</string>
|
||||
<string name="bad_config_context_top_level">%s</string>
|
||||
<string name="bad_config_error">%2$s içinde %1$s</string>
|
||||
<string name="bad_config_explanation_pka">: Pozitif olmalı ve 65535\'ten fazla olmamalıdır</string>
|
||||
<string name="bad_config_explanation_positive_number">: Pozitif olmalıdır</string>
|
||||
<string name="bad_config_explanation_udp_port">: Geçerli bir UDP Port numarası olmalıdır</string>
|
||||
<string name="bad_config_reason_invalid_key">Geçersiz anahtar</string>
|
||||
<string name="bad_config_reason_invalid_number">Geçersiz numara</string>
|
||||
<string name="bad_config_reason_invalid_value">Geçersiz değer</string>
|
||||
<string name="bad_config_reason_missing_attribute">Eksik öznitelik</string>
|
||||
<string name="bad_config_reason_missing_section">Eksik bölüm</string>
|
||||
<string name="bad_config_reason_syntax_error">Sözdizimi hatası</string>
|
||||
<string name="bad_config_reason_unknown_attribute">Bilinmeyen öznitelik</string>
|
||||
<string name="bad_config_reason_unknown_section">Bilinmeyen bölüm</string>
|
||||
<string name="bad_config_reason_value_out_of_range">Aralık dışı değer</string>
|
||||
<string name="bad_extension_error">Dosya .conf veya .zip olmalıdır</string>
|
||||
<string name="cancel">İptal</string>
|
||||
<string name="config_delete_error">%s konfigürasyon dosyası silinemiyor</string>
|
||||
<string name="config_exists_error">“%s” için konfigürasyon zaten var</string>
|
||||
<string name="config_file_exists_error">“%s“ için konfigürasyon dosyası zaten var</string>
|
||||
<string name="config_not_found_error">“%s“ konfigürasyon dosyası bulunamadı</string>
|
||||
<string name="config_rename_error">“%s” konfigürasyon dosyası yeniden adlandırılamıyor</string>
|
||||
<string name="config_save_error">“%1$s” için konfigürasyon kaydedilemiyor: %2$s</string>
|
||||
<string name="config_save_success">“%s“ için konfigürasyon başarıyla kaydedildi</string>
|
||||
<string name="create_activity_title">WireGuard Tüneli Yarat</string>
|
||||
<string name="create_downloads_file_error">İndirilenler klasöründe dosya yaratılamadı</string>
|
||||
<string name="create_empty">Sıfırdan Yaratın</string>
|
||||
<string name="create_from_file">Arşivden geri yükle</string>
|
||||
<string name="create_from_qr_code">QR Kodu Tara</string>
|
||||
<string name="create_output_dir_error">Çıkış klasörü yaratılamadı</string>
|
||||
<string name="create_tunnel">Tünel Yarat</string>
|
||||
<string name="dark_theme_title">Koyu renk Temayı Kullan</string>
|
||||
<string name="create_bin_dir_error">Yerel ikili dizin oluşturulamıyor</string>
|
||||
<string name="create_downloads_file_error">İndirilenler klasöründe dosya oluşturulamadı</string>
|
||||
<string name="create_empty">Sıfırdan oluştur</string>
|
||||
<string name="create_from_file">Dosya veya arşivden ekle</string>
|
||||
<string name="create_from_qr_code">QR kodundan ekle</string>
|
||||
<string name="create_output_dir_error">Çıktı klasörü oluşturulamıyor</string>
|
||||
<string name="create_temp_dir_error">Yerel geçici dizin oluşturulamıyor</string>
|
||||
<string name="create_tunnel">Tünel Oluştur</string>
|
||||
<string name="dark_theme_summary_off">Şu anda açık (gündüz) teması kullanılıyor</string>
|
||||
<string name="dark_theme_summary_on">Şu anda karanlık (gece) teması kullanılıyor</string>
|
||||
<string name="dark_theme_title">Koyu tema kullan</string>
|
||||
<string name="delete">Sil</string>
|
||||
<string name="dns_servers">DNS sunucuları</string>
|
||||
<string name="edit">Düzenle</string>
|
||||
<string name="endpoint">Uç nokta</string>
|
||||
<string name="error_down">Tünel kapatılırken hata oluştu: %s</string>
|
||||
<string name="error_fetching_apps">Uygulama listesi getirilirken hata oluştu: %s</string>
|
||||
<string name="error_root">Lütfen root erişimi elde edin ve tekrar deneyin</string>
|
||||
<string name="error_up">Tünel açılırken hata oluştu: %s</string>
|
||||
<string name="exclude_private_ips">Özel IP’leri hariç tut</string>
|
||||
<string name="generate_new_private_key">Yeni özel anahtar oluştur</string>
|
||||
<string name="generic_error">Bilinmeyen “%s” hatası</string>
|
||||
<string name="hint_automatic">(otomatik)</string>
|
||||
<string name="hint_generated">(oluşturuldu)</string>
|
||||
<string name="hint_optional">(isteğe bağlı)</string>
|
||||
<string name="hint_optional_discouraged">(İsteğe bağlı-Önerilmez)</string>
|
||||
<string name="hint_random">(Rastgele)</string>
|
||||
<string name="import_from_qr_code">Tüneli içeri QR ile al</string>
|
||||
<string name="hint_optional_discouraged">(isteğe bağlı, önerilmez)</string>
|
||||
<string name="hint_random">(rastgele)</string>
|
||||
<string name="illegal_filename_error">Geçersiz dosya ismi “%s”</string>
|
||||
<string name="import_error">Tünel içeri aktarılamıyor: %s</string>
|
||||
<string name="import_from_qr_code">Tüneli QR Kod ile İçe Aktar</string>
|
||||
<string name="import_success">İçe aktarıldı “%s”</string>
|
||||
<string name="interface_title">Arayüz</string>
|
||||
<string name="listen_port">Dinleme portu</string>
|
||||
<string name="log_export_title">Dosyayı Dışarı Aktar</string>
|
||||
<string name="key_contents_error">Anahtardaki yanlış karakterler</string>
|
||||
<string name="key_length_error">Yanlış anahtar uzunluğu</string>
|
||||
<string name="key_length_explanation_base64">: WireGuard base64 anahtarları 44 karakter (32 bayt) olmalıdır</string>
|
||||
<string name="key_length_explanation_binary">: WireGuard anahtarları 32 bayt olmalıdır</string>
|
||||
<string name="key_length_explanation_hex">: WireGuard onaltılık anahtarları 64 karakter (32 bayt) olmalıdır</string>
|
||||
<string name="listen_port">Dinlenen port</string>
|
||||
<string name="log_export_error">Günlük dışa aktarılamıyor: %s</string>
|
||||
<string name="log_export_subject">WireGuard Android Günlük Dosyası</string>
|
||||
<string name="log_export_success">“%s” ’e kaydedildi</string>
|
||||
<string name="log_export_title">Günlük dosyasını dışa aktar</string>
|
||||
<string name="log_saver_activity_label">Günlüğü kaydet</string>
|
||||
<string name="log_viewer_pref_title">Uygulama günlüğüne bak</string>
|
||||
<string name="log_viewer_pref_summary">Günlükler hata ayıklamaya yardımcı olabilir</string>
|
||||
<string name="log_viewer_pref_title">Uygulama günlüğünü görüntüle</string>
|
||||
<string name="log_viewer_title">Günlük</string>
|
||||
<string name="logcat_error">Logcat çalıştırılamıyor: </string>
|
||||
<string name="module_disabler_disabled_summary">Deneysel çekirdek modülü performansı artırabilir</string>
|
||||
<string name="module_disabler_disabled_title">Çekirdek modülü arka ucunu etkinleştir</string>
|
||||
<string name="module_disabler_enabled_summary">Daha yavaş kullanıcı alanı arka ucu kararlılığı artırabilir</string>
|
||||
<string name="module_disabler_enabled_title">Çekirdek modülü arka ucunu devre dışı bırak</string>
|
||||
<string name="module_installer_error">Bir şeyler yanlış gitti. Lütfen tekrar deneyin</string>
|
||||
<string name="module_installer_initial">Deneysel çekirdek modülü performansı artırabilir</string>
|
||||
<string name="module_installer_not_found">Cihazınız için uygun modül yok</string>
|
||||
<string name="module_installer_title">Çekirdek modülünü indir ve yükle</string>
|
||||
<string name="module_installer_working">İndiriliyor ve yükleniyor…</string>
|
||||
<string name="module_version_error">Çekirdek modülü sürümü belirlenemiyor</string>
|
||||
<string name="mtu">MTU</string>
|
||||
<string name="multiple_tunnels_summary_off">Bir tüneli açmak diğerlerini kapatır</string>
|
||||
<string name="multiple_tunnels_summary_on">Aynı anda birden fazla tünel açılabilir</string>
|
||||
<string name="multiple_tunnels_title">Birden çok eşzamanlı tünele izin verin</string>
|
||||
<string name="name">İsim</string>
|
||||
<string name="no_config_error">Konfigürasyonsuz bir tünel açmaya çalışılıyor</string>
|
||||
<string name="no_configs_error">Konfigürasyon bulunamadı</string>
|
||||
<string name="no_tunnels_error">Tünel yok</string>
|
||||
<string name="parse_error_generic">dizi</string>
|
||||
<string name="parse_error_inet_address">IP adresi</string>
|
||||
<string name="parse_error_inet_endpoint">uç nokta</string>
|
||||
<string name="parse_error_inet_network">IP ağı</string>
|
||||
<string name="parse_error_integer">numara</string>
|
||||
<string name="parse_error_reason">%1$s “%2$s” ayrıştırılamıyor</string>
|
||||
<string name="peer">Eş</string>
|
||||
<string name="permission_description">WireGuard tünellerini kontrol edin, tünelleri istediğiniz zaman etkinleştirin ve devre dışı bırakın, İnternet trafiğini potansiyel olarak yanlış yönlendirin</string>
|
||||
<string name="permission_label">WireGuard tünellerini kontrol edin</string>
|
||||
<string name="persistent_keepalive">Kalıcı canlı tutma</string>
|
||||
<string name="pre_shared_key">Önceden paylaşılan anahtar</string>
|
||||
<string name="pre_shared_key_enabled">etkinleştirildi</string>
|
||||
<string name="private_key">Özel anahtar</string>
|
||||
<string name="public_key">Genel anahtar</string>
|
||||
<string name="qr_code_hint">İpucu: `qrencode -t ansiutf8 < tunnel.conf` ile oluşturun.</string>
|
||||
<string name="restore_on_boot_summary_off">Önyüklemede etkin tünelleri açmayacak</string>
|
||||
<string name="restore_on_boot_summary_on">Önyüklemede etkin tünelleri açacak</string>
|
||||
<string name="restore_on_boot_title">Cihaz açılırken başlat</string>
|
||||
<string name="save">Kaydet</string>
|
||||
<string name="select_all">Tümünü seç</string>
|
||||
<string name="settings">Ayarlar</string>
|
||||
<string name="shell_exit_status_read_error">Kabuk, çıktı durumunu okuyamıyor</string>
|
||||
<string name="shell_marker_count_error">Kabuk 4 işaret bekledi, %d aldı</string>
|
||||
<string name="shell_start_error">Kabuk başlatılamadı: %d</string>
|
||||
<string name="success_application_will_restart">Başarı. Uygulama şimdi yeniden başlayacak…</string>
|
||||
<string name="toggle_all">Tümünü Değiştir</string>
|
||||
<string name="toggle_error">WireGuard tüneli değiştirilirken hata oluştu: %s</string>
|
||||
<string name="tools_installer_already">wg ve wg-quick zaten kurulu</string>
|
||||
<string name="tools_installer_failure">Komut satırı araçları yüklenemiyor (root yok mu?)</string>
|
||||
<string name="tools_installer_initial">Komut dosyası oluşturmak için isteğe bağlı araçları yükleyin</string>
|
||||
<string name="tools_installer_initial_magisk">Magisk modülü olarak komut dosyası oluşturmak için isteğe bağlı araçları yükleyin</string>
|
||||
<string name="tools_installer_initial_system">Sistem bölümüne komut dosyası oluşturmak için isteğe bağlı araçlar yükleyin</string>
|
||||
<string name="tools_installer_success_magisk">wg ve wg-quick bir Magisk modülü olarak kuruldu (yeniden başlatma gerekir)</string>
|
||||
<string name="tools_installer_success_system">wg ve wg-quick, sistem bölümüne yüklendi</string>
|
||||
<string name="tools_installer_title">Komut satırı araçlarını yükleyin</string>
|
||||
<string name="tools_installer_working">wg ve wg-quick kuruluyor</string>
|
||||
<string name="tools_unavailable_error">Gerekli araçlar mevcut değil</string>
|
||||
<string name="transfer">Transfer</string>
|
||||
<string name="transfer_bytes">%d B</string>
|
||||
<string name="transfer_gibibytes">%.2f GiB</string>
|
||||
<string name="transfer_kibibytes">%.2f KiB</string>
|
||||
<string name="transfer_mibibytes">%.2f MiB</string>
|
||||
<string name="transfer_rx_tx">rx: %1$s, tx: %2$s</string>
|
||||
<string name="transfer_tibibytes">%.2f TiB</string>
|
||||
<string name="tun_create_error">Tun cihazı oluşturulamıyor</string>
|
||||
<string name="tunnel_config_error">Tünel yapılandırılamıyor (wg-quick döndürdü: %d)</string>
|
||||
<string name="tunnel_create_error">Tünel oluşturulamıyor: %s</string>
|
||||
<string name="tunnel_create_success">Tünel başarıyla oluşturuldu “%s”</string>
|
||||
<string name="tunnel_error_already_exists">“%s” tüneli zaten mevcut</string>
|
||||
<string name="tunnel_error_invalid_name">Geçersiz isim</string>
|
||||
<string name="tunnel_list_placeholder">Mavi düğmeyi kullanarak bir tünel ekleyin</string>
|
||||
<string name="tunnel_name">Tünel İsmi</string>
|
||||
<string name="tunnel_on_error">Tünel aktif edilemiyor (wgTornOn döndürdü: %d)</string>
|
||||
<string name="tunnel_rename_error">Tünel yeniden adlandırılamıyor: %s</string>
|
||||
<string name="tunnel_rename_success">Tünel başarıyla yeniden adlandırıldı “%s”</string>
|
||||
<string name="type_name_go_userspace">Kullanıcı alanına git</string>
|
||||
<string name="type_name_kernel_module">Çekirdek modülü</string>
|
||||
<string name="unknown_error">Bilinmeyen hata</string>
|
||||
<string name="version_summary">%1$s backend v%2$s</string>
|
||||
<string name="version_summary_checking">%s arka uç sürümü kontrol ediliyor</string>
|
||||
<string name="version_summary_unknown">Bilinmeyen %s sürümü</string>
|
||||
<string name="version_title">Android için WireGuard v%s</string>
|
||||
<string name="vpn_not_authorized_error">VPN hizmeti kullanıcı tarafından yetkilendirilmemiş</string>
|
||||
<string name="vpn_start_error">Android VPN hizmeti başlatılamıyor</string>
|
||||
<string name="zip_export_error">Tüneller dışa aktarılamıyor: %s</string>
|
||||
<string name="zip_export_success">“%s” ’e kaydedildi</string>
|
||||
<string name="zip_export_summary">Zip dosyası indirilenler klasörüne kaydedilecek</string>
|
||||
<string name="zip_export_title">Tünelleri zip dosyasına aktar</string>
|
||||
<string name="biometric_prompt_zip_exporter_title">Tünelleri dışa aktarmak için kimlik doğrulama</string>
|
||||
<string name="biometric_prompt_private_key_title">Özel anahtarı görüntülemek için kimlik doğrulaması</string>
|
||||
<string name="biometric_auth_error">Kimlik doğrulama hatası</string>
|
||||
<string name="biometric_auth_error_reason">Kimlik doğrulama hatası: %s</string>
|
||||
</resources>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<plurals name="n_included_applications">
|
||||
<item quantity="other">对 %d 个应用生效</item>
|
||||
</plurals>
|
||||
<string name="all_applications">对全部应用生效</string>
|
||||
<string name="all_applications">全部应用程序</string>
|
||||
<string name="exclude_from_tunnel">不生效</string>
|
||||
<string name="include_in_tunnel">生效</string>
|
||||
<plurals name="include_n_applications">
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
<string name="create_output_dir_error">Cannot create output directory</string>
|
||||
<string name="create_temp_dir_error">Cannot create local temporary directory</string>
|
||||
<string name="create_tunnel">Create Tunnel</string>
|
||||
<string name="copied_to_clipboard">%s copied to clipboard</string>
|
||||
<string name="dark_theme_summary_off">Currently using light (day) theme</string>
|
||||
<string name="dark_theme_summary_on">Currently using dark (night) theme</string>
|
||||
<string name="dark_theme_title">Use dark theme</string>
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
buildscript {
|
||||
ext {
|
||||
wireguardVersionCode = 484
|
||||
wireguardVersionName = '1.0.20201216'
|
||||
wireguardVersionCode = 486
|
||||
wireguardVersionName = '1.0.20210211'
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user