refactor: add back active network details, optimize imports and strings

This commit is contained in:
Zane Schepke
2025-10-14 22:03:39 -04:00
parent 5418ddde54
commit afbd25f46c
57 changed files with 209 additions and 396 deletions
@@ -13,14 +13,10 @@ import com.zaneschepke.wireguardautotunnel.domain.state.TunnelState
import com.zaneschepke.wireguardautotunnel.domain.state.TunnelStatistics
import java.util.concurrent.ConcurrentHashMap
import kotlin.coroutines.cancellation.CancellationException
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import kotlinx.coroutines.withTimeoutOrNull
import timber.log.Timber
abstract class BaseTunnel(
@@ -16,17 +16,13 @@ import com.zaneschepke.wireguardautotunnel.util.extensions.asTunnelState
import com.zaneschepke.wireguardautotunnel.util.extensions.toBackendCoreException
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
import kotlinx.coroutines.flow.consumeAsFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.withTimeout
import timber.log.Timber
class KernelTunnel
@@ -7,11 +7,7 @@ import com.zaneschepke.wireguardautotunnel.domain.enums.TunnelStatus
import com.zaneschepke.wireguardautotunnel.domain.model.TunnelConf
import com.zaneschepke.wireguardautotunnel.domain.repository.GeneralSettingRepository
import com.zaneschepke.wireguardautotunnel.domain.repository.TunnelRepository
import com.zaneschepke.wireguardautotunnel.domain.state.FailureReason
import com.zaneschepke.wireguardautotunnel.domain.state.LogHealthState
import com.zaneschepke.wireguardautotunnel.domain.state.PingState
import com.zaneschepke.wireguardautotunnel.domain.state.TunnelState
import com.zaneschepke.wireguardautotunnel.domain.state.TunnelStatistics
import com.zaneschepke.wireguardautotunnel.domain.state.*
import com.zaneschepke.wireguardautotunnel.util.extensions.toMillis
import com.zaneschepke.wireguardautotunnel.util.network.NetworkUtils
import dagger.hilt.android.scopes.ServiceScoped
@@ -20,7 +16,6 @@ import inet.ipaddr.IPAddress
import inet.ipaddr.IPAddressString
import io.ktor.util.collections.*
import javax.inject.Inject
import kotlin.collections.mapValues
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
import timber.log.Timber
@@ -20,17 +20,13 @@ import java.io.IOException
import java.util.*
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
import kotlinx.coroutines.flow.consumeAsFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.withTimeout
import org.amnezia.awg.backend.Backend
import org.amnezia.awg.backend.BackendException
import org.amnezia.awg.backend.ProxyGoBackend
@@ -10,7 +10,6 @@ import dagger.hilt.InstallIn
import dagger.hilt.android.components.ViewModelComponent
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.android.scopes.ViewModelScoped
import io.ktor.utils.io.ioDispatcher
import javax.inject.Provider
import kotlinx.coroutines.CoroutineDispatcher
@@ -0,0 +1,8 @@
package com.zaneschepke.wireguardautotunnel.domain.enums
enum class NetworkType {
WIFI,
ETHERNET,
MOBILE_DATA,
NONE,
}
@@ -1,12 +1,7 @@
package com.zaneschepke.wireguardautotunnel.ui.common.animations
import androidx.compose.animation.Crossfade
import androidx.compose.animation.core.FastOutSlowInEasing
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.tween
import androidx.compose.animation.core.updateTransition
import androidx.compose.animation.core.*
import androidx.compose.material3.Icon
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@@ -1,30 +1,13 @@
package com.zaneschepke.wireguardautotunnel.ui.common.button
import android.R.attr.description
import android.R.attr.enabled
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.background
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.focusGroup
import androidx.compose.foundation.focusable
import androidx.compose.foundation.indication
import androidx.compose.foundation.*
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.*
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.ripple
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
@@ -1,13 +1,7 @@
package com.zaneschepke.wireguardautotunnel.ui.common.button
import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.*
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.VerticalDivider
import androidx.compose.runtime.Composable
@@ -1,14 +1,15 @@
package com.zaneschepke.wireguardautotunnel.ui.common.dialog
import androidx.compose.foundation.text.ClickableText
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.LinkAnnotation
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextLinkStyles
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.text.withLink
import com.zaneschepke.wireguardautotunnel.R
import com.zaneschepke.wireguardautotunnel.util.extensions.launchVpnSettings
@@ -19,11 +20,17 @@ fun VpnDeniedDialog(show: Boolean, onDismiss: () -> Unit) {
val alwaysOnDescription = buildAnnotatedString {
append(stringResource(R.string.always_on_message))
append(" ")
pushStringAnnotation(tag = "vpnSettings", annotation = "")
withStyle(style = SpanStyle(color = MaterialTheme.colorScheme.primary)) {
withLink(
LinkAnnotation.Clickable(
tag = "vpnSettings",
styles =
TextLinkStyles(style = SpanStyle(color = MaterialTheme.colorScheme.primary)),
) {
context.launchVpnSettings()
}
) {
append(stringResource(id = R.string.vpn_settings))
}
pop()
append(" ")
append(stringResource(R.string.always_on_message2))
append(".")
@@ -33,18 +40,13 @@ fun VpnDeniedDialog(show: Boolean, onDismiss: () -> Unit) {
onAttest = { onDismiss() },
title = { Text(text = stringResource(R.string.vpn_denied_dialog_title)) },
body = {
ClickableText(
Text(
text = alwaysOnDescription,
style =
MaterialTheme.typography.bodyMedium.copy(
color = MaterialTheme.colorScheme.outline
),
) {
alwaysOnDescription
.getStringAnnotations(tag = "vpnSettings", it, it)
.firstOrNull()
?.let { context.launchVpnSettings() }
}
)
},
confirmText = { Text(text = stringResource(R.string.okay)) },
)
@@ -2,7 +2,7 @@ package com.zaneschepke.wireguardautotunnel.ui.common.label
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import java.util.Locale
import java.util.*
@Composable
fun lowercaseLabel(text: String): String {
@@ -4,6 +4,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.AnnotatedString
@Composable
fun DescriptionText(text: String, modifier: Modifier = Modifier) {
@@ -13,3 +14,12 @@ fun DescriptionText(text: String, modifier: Modifier = Modifier) {
modifier = modifier,
)
}
@Composable
fun DescriptionText(text: AnnotatedString, modifier: Modifier = Modifier) {
Text(
text = text,
style = MaterialTheme.typography.bodySmall.copy(color = MaterialTheme.colorScheme.outline),
modifier = modifier,
)
}
@@ -9,11 +9,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextFieldDefaults
import androidx.compose.material3.TextFieldDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.graphics.Color
@@ -8,8 +8,10 @@ import androidx.compose.material.icons.automirrored.rounded.Sort
import androidx.compose.material.icons.rounded.*
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.runtime.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.stringResource
@@ -8,12 +8,20 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.material3.Button
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontWeight
@@ -23,11 +31,14 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.zaneschepke.wireguardautotunnel.R
import com.zaneschepke.wireguardautotunnel.domain.enums.NetworkType
import com.zaneschepke.wireguardautotunnel.ui.LocalNavController
import com.zaneschepke.wireguardautotunnel.ui.common.button.ScaledSwitch
import com.zaneschepke.wireguardautotunnel.ui.common.button.SurfaceRow
import com.zaneschepke.wireguardautotunnel.ui.common.button.SwitchWithDivider
import com.zaneschepke.wireguardautotunnel.ui.common.functions.rememberClipboardHelper
import com.zaneschepke.wireguardautotunnel.ui.common.label.GroupLabel
import com.zaneschepke.wireguardautotunnel.ui.common.text.DescriptionText
import com.zaneschepke.wireguardautotunnel.ui.navigation.Route
import com.zaneschepke.wireguardautotunnel.ui.navigation.TunnelNetwork
import com.zaneschepke.wireguardautotunnel.viewmodel.AutoTunnelViewModel
@@ -37,6 +48,7 @@ import com.zaneschepke.wireguardautotunnel.viewmodel.AutoTunnelViewModel
fun AutoTunnelScreen(viewModel: AutoTunnelViewModel = hiltViewModel()) {
val context = LocalContext.current
val navController = LocalNavController.current
val clipboard = rememberClipboardHelper()
val autoTunnelState by viewModel.container.stateFlow.collectAsStateWithLifecycle()
if (autoTunnelState.isLoading) return
@@ -96,6 +108,84 @@ fun AutoTunnelScreen(viewModel: AutoTunnelViewModel = hiltViewModel()) {
stringResource(R.string.networks),
modifier = Modifier.padding(horizontal = 16.dp),
)
val activeNetworkType by
remember(autoTunnelState.connectivityState) {
derivedStateOf {
val connectivity = autoTunnelState.connectivityState
when {
connectivity?.ethernetConnected == true -> NetworkType.ETHERNET
connectivity?.wifiState?.connected == true -> NetworkType.WIFI
connectivity?.cellularConnected == true -> NetworkType.MOBILE_DATA
else -> NetworkType.NONE
}
}
}
val localizedNetworkType =
when (activeNetworkType) {
NetworkType.WIFI -> stringResource(R.string.wifi)
NetworkType.ETHERNET -> stringResource(R.string.ethernet)
NetworkType.MOBILE_DATA -> stringResource(R.string.mobile_data)
NetworkType.NONE -> stringResource(R.string.no_network)
}
val ssid by
remember(autoTunnelState.connectivityState) {
derivedStateOf {
autoTunnelState.connectivityState?.wifiState?.ssid
?: context.getString(R.string.unknown)
}
}
SurfaceRow(
leading = {
Icon(ImageVector.vectorResource(R.drawable.globe), contentDescription = null)
},
title =
buildAnnotatedString {
append(stringResource(R.string.active_network))
withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
append(localizedNetworkType)
}
},
description =
if (activeNetworkType == NetworkType.WIFI) {
{
Column {
DescriptionText(
buildAnnotatedString {
append(stringResource(R.string.security_type))
withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
append(
autoTunnelState.connectivityState
?.wifiState
?.securityType
?.name ?: stringResource(R.string.unknown)
)
}
}
)
DescriptionText(
buildAnnotatedString {
append(stringResource(R.string.network_name))
withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
append(ssid)
}
}
)
}
}
} else null,
trailing =
if (activeNetworkType == NetworkType.WIFI) {
{ Icon(Icons.Outlined.CopyAll, contentDescription = null) }
} else null,
onClick =
if (activeNetworkType == NetworkType.WIFI) {
{ clipboard.copy(ssid, context.getString(R.string.wifi)) }
} else null,
)
SurfaceRow(
leading = { Icon(Icons.Outlined.Wifi, contentDescription = null) },
title = stringResource(R.string.tunnel_on_wifi),
@@ -107,7 +197,7 @@ fun AutoTunnelScreen(viewModel: AutoTunnelViewModel = hiltViewModel()) {
)
},
description = {
Text(
DescriptionText(
buildAnnotatedString {
append(stringResource(R.string.preferred_tunnel_label))
withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
@@ -116,11 +206,7 @@ fun AutoTunnelScreen(viewModel: AutoTunnelViewModel = hiltViewModel()) {
else stringResource(R.string._default)
)
}
},
style =
MaterialTheme.typography.bodySmall.copy(
color = MaterialTheme.colorScheme.outline
),
}
)
},
onClick = { navController.push(Route.WifiPreferences) },
@@ -136,18 +222,14 @@ fun AutoTunnelScreen(viewModel: AutoTunnelViewModel = hiltViewModel()) {
)
},
description = {
Text(
DescriptionText(
buildAnnotatedString {
append(stringResource(R.string.preferred_tunnel_label))
mobileDataTunnel?.tunName?.let { append(it) }
?: withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
append(stringResource(R.string._default))
}
},
style =
MaterialTheme.typography.bodySmall.copy(
color = MaterialTheme.colorScheme.outline
),
}
)
},
onClick = { navController.push(Route.PreferredTunnel(TunnelNetwork.MOBILE_DATA)) },
@@ -163,18 +245,14 @@ fun AutoTunnelScreen(viewModel: AutoTunnelViewModel = hiltViewModel()) {
)
},
description = {
Text(
DescriptionText(
buildAnnotatedString {
append(stringResource(R.string.preferred_tunnel_label))
ethernetTunnel?.tunName?.let { append(it) }
?: withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
append(stringResource(R.string._default))
}
},
style =
MaterialTheme.typography.bodySmall.copy(
color = MaterialTheme.colorScheme.outline
),
}
)
},
onClick = { navController.push(Route.PreferredTunnel(TunnelNetwork.ETHERNET)) },
@@ -1,6 +1,5 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.autotunnel.components
import android.R.attr.text
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.*
@@ -8,13 +8,7 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.ViewQuilt
import androidx.compose.material.icons.outlined.Android
import androidx.compose.material.icons.outlined.Dns
import androidx.compose.material.icons.outlined.ExpandMore
import androidx.compose.material.icons.outlined.Lan
import androidx.compose.material.icons.outlined.MonitorHeart
import androidx.compose.material.icons.outlined.Pin
import androidx.compose.material.icons.outlined.SettingsBackupRestore
import androidx.compose.material.icons.outlined.*
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -39,14 +33,14 @@ import com.zaneschepke.wireguardautotunnel.ui.common.button.SwitchWithDivider
import com.zaneschepke.wireguardautotunnel.ui.common.label.GroupLabel
import com.zaneschepke.wireguardautotunnel.ui.common.text.DescriptionText
import com.zaneschepke.wireguardautotunnel.ui.navigation.Route
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.components.*
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.components.BackupBottomSheet
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.proxy.compoents.AppModeBottomSheet
import com.zaneschepke.wireguardautotunnel.util.StringValue
import com.zaneschepke.wireguardautotunnel.util.extensions.asString
import com.zaneschepke.wireguardautotunnel.util.extensions.asTitleString
import com.zaneschepke.wireguardautotunnel.util.extensions.capitalize
import com.zaneschepke.wireguardautotunnel.viewmodel.SettingsViewModel
import java.util.Locale
import java.util.*
@Composable
fun SettingsScreen(viewModel: SettingsViewModel = hiltViewModel()) {
@@ -1,27 +1,30 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.components
import androidx.compose.foundation.text.ClickableText
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.*
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.withStyle
import com.zaneschepke.wireguardautotunnel.R
@Composable
fun LearnMoreLinkLabel(onClick: (url: String) -> Unit, url: String) {
// TODO update link when docs are fully updated
val gettingStarted = buildAnnotatedString {
pushStringAnnotation(tag = "details", annotation = url)
withStyle(style = SpanStyle(color = MaterialTheme.colorScheme.primary)) {
withLink(
LinkAnnotation.Clickable(
tag = "details",
styles =
TextLinkStyles(style = SpanStyle(color = MaterialTheme.colorScheme.primary)),
) {
onClick(url)
}
) {
append(stringResource(id = R.string.learn_more))
}
pop()
}
ClickableText(
Text(
text = gettingStarted,
style =
MaterialTheme.typography.bodySmall.copy(
@@ -29,10 +32,5 @@ fun LearnMoreLinkLabel(onClick: (url: String) -> Unit, url: String) {
textAlign = TextAlign.Start,
fontStyle = FontStyle.Italic,
),
) {
gettingStarted.getStringAnnotations(tag = "details", it, it).firstOrNull()?.let { annotation
->
onClick(annotation.item)
}
}
)
}
@@ -1,6 +1,5 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.globals
import android.R.attr.onClick
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
@@ -7,13 +7,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Adjust
import androidx.compose.material.icons.outlined.NetworkPing
import androidx.compose.material.icons.outlined.QueryStats
import androidx.compose.material.icons.outlined.Replay
import androidx.compose.material.icons.outlined.Timer
import androidx.compose.material.icons.outlined.TimerOff
import androidx.compose.material.icons.outlined.ViewHeadline
import androidx.compose.material.icons.outlined.*
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -19,12 +19,7 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
@@ -131,6 +126,9 @@ fun PingTargetScreen(viewModel: SettingsViewModel = hiltViewModel()) {
style = MaterialTheme.typography.labelMedium,
)
},
supportingText = {
DescriptionText(stringResource(R.string.ip_or_hostname))
},
containerColor = MaterialTheme.colorScheme.surface,
modifier =
Modifier.fillMaxWidth()
@@ -1,10 +1,6 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.support
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
@@ -1,10 +1,6 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.support.donate
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
@@ -4,12 +4,8 @@ import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.*
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
@@ -4,18 +4,15 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.text.ClickableText
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.*
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.dp
import com.zaneschepke.wireguardautotunnel.R
@@ -26,23 +23,27 @@ fun GettingStartedLabel(onClick: (url: String) -> Unit) {
verticalArrangement = Arrangement.Center,
modifier = Modifier.padding(top = 100.dp).fillMaxSize(),
) {
val url = stringResource(id = R.string.docs_url)
val gettingStarted = buildAnnotatedString {
append(stringResource(id = R.string.see_the))
append(" ")
pushStringAnnotation(
tag = "gettingStarted",
annotation = stringResource(id = R.string.docs_url),
)
withStyle(style = SpanStyle(color = MaterialTheme.colorScheme.primary)) {
withLink(
LinkAnnotation.Clickable(
tag = "gettingStarted",
styles =
TextLinkStyles(style = SpanStyle(color = MaterialTheme.colorScheme.primary)),
) {
onClick(url)
}
) {
append(stringResource(id = R.string.getting_started_guide))
}
pop()
append(" ")
append(stringResource(R.string.unsure_how))
append(".")
}
Text(text = stringResource(R.string.no_tunnels), fontStyle = FontStyle.Italic)
ClickableText(
Text(
modifier = Modifier.padding(vertical = 10.dp, horizontal = 24.dp),
text = gettingStarted,
style =
@@ -50,11 +51,6 @@ fun GettingStartedLabel(onClick: (url: String) -> Unit) {
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Center,
),
) {
gettingStarted
.getStringAnnotations(tag = "gettingStarted", it, it)
.firstOrNull()
?.let { annotation -> onClick(annotation.item) }
}
)
}
}
@@ -1,6 +1,8 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.config.components
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
@@ -1,6 +1,5 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.config.components
import android.R.attr.label
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
@@ -1,7 +1,10 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.config.components
import androidx.compose.foundation.focusGroup
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.runtime.*
@@ -2,7 +2,10 @@ package com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.config.components
import androidx.compose.foundation.background
import androidx.compose.foundation.focusGroup
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Delete
import androidx.compose.material.icons.rounded.MoreVert
@@ -9,11 +9,7 @@ import androidx.compose.foundation.layout.size
import androidx.compose.material3.Checkbox
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
@@ -13,8 +13,11 @@ import androidx.compose.material.icons.outlined.Star
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
@@ -30,7 +33,7 @@ import com.zaneschepke.wireguardautotunnel.ui.common.button.SurfaceRow
import com.zaneschepke.wireguardautotunnel.ui.common.label.GroupLabel
import com.zaneschepke.wireguardautotunnel.ui.common.text.DescriptionText
import com.zaneschepke.wireguardautotunnel.ui.navigation.Route
import com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.tunneloptions.components.*
import com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.tunneloptions.components.QrCodeDialog
import com.zaneschepke.wireguardautotunnel.ui.sideeffect.LocalSideEffect
import com.zaneschepke.wireguardautotunnel.viewmodel.TunnelViewModel
import org.orbitmvi.orbit.compose.collectSideEffect
@@ -5,7 +5,6 @@ import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material.ripple.RippleAlpha
import androidx.compose.material3.*
import androidx.compose.material3.MaterialTheme.colorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.SideEffect
@@ -1,6 +1,6 @@
package com.zaneschepke.wireguardautotunnel.util.extensions
import java.util.Locale
import java.util.*
import timber.log.Timber
val hasNumberInParentheses = """^(.+?)\((\d+)\)$""".toRegex()
-14
View File
@@ -35,7 +35,6 @@
<string name="incorrect_pin">PIN je nesprávný</string>
<string name="create_pin">Vytvořte PIN</string>
<string name="set_primary_tunnel">Nastavit jako hlavní tunel</string>
<string name="use_tunnel_on_wifi_name">Použít tunel pro Wi-Fi</string>
<string name="edit_tunnel">Upravit tunel</string>
<string name="junk_packet_count">Junk packet počet</string>
<string name="junk_packet_minimum_size">Junk packet minimální velikost</string>
@@ -63,19 +62,15 @@
<string name="base64_key">Base64 klíč</string>
<string name="docs_description">Přečíst si dokumentaci</string>
<string name="email_description">Poslat mi email</string>
<string name="location_services_missing_message">Aplikace nenašla žádné služby polohy zapnuté na Vašem zařízení. Dle Vašeho zařízení, tohle může způsobit, že funkce nedůvěryhodné Wi-Fi nedokáže přečíst jméno připojené Wi-Fi. Chcete i přesto pokračovat?</string>
<string name="delete_tunnel">Smazat tunel</string>
<string name="delete_tunnel_message">Jste si jisti, že chcete smazat tento tunel?</string>
<string name="yes">Ano</string>
<string name="all">Vše</string>
<string name="no_email_detected">Žádná emailová aplikace nebyla nalezena</string>
<string name="no_browser_detected">Žádný prohlížeč nebyl nalezen</string>
<string name="read_logs">Přečíst si logy</string>
<string name="pin_created">PIN úspěšně vytvořen</string>
<string name="enter_pin">Zadejte PIN</string>
<string name="enable_app_lock">Zapnout zámek aplikace</string>
<string name="restart_on_ping">Restartovat při selhání pingu</string>
<string name="mobile_data_tunnel">Nastavit jako tunel pro mobilní data</string>
<string name="settings">Nastavení</string>
<string name="support">Podpora</string>
<string name="app_name">WG Tunnel</string>
@@ -95,7 +90,6 @@
<string name="notifications">Oznámení</string>
<string name="use_root_shell_for_wifi">Použít root shell pro získání Wi-Fi informací, zabrání potřebě oprávnění k poloze</string>
<string name="add_from_clipboard">Přidat ze schránky</string>
<string name="set_ethernet_tunnel">Nastavit jako tunel pro ethernet</string>
<string name="allow_lan_traffic">Povolit LAN provoz</string>
<string name="logs">Logy</string>
<string name="automatic">Automaticky</string>
@@ -103,7 +97,6 @@
<string name="mobile_tunnel">Tunel pro mobilní data</string>
<string name="skip">Přeskočit</string>
<string name="donate">Přispět na projekt</string>
<string name="enable_local_logging">Zapnout místní protokolování</string>
<string name="stop_on_internet_loss">Zastavit tunel při ztrátě internetu</string>
<string name="stop_on_no_internet">Zastavit při ztrátě internetu</string>
<string name="ethernet_tunnel">Ethernet tunel</string>
@@ -126,7 +119,6 @@
<string name="include_lan">Zahrnout LAN</string>
<string name="add_wifi_name">Přidat název Wi-Fi</string>
<string name="vpn_channel_name">Kanál pro oznámení VPN</string>
<string name="tunnel_specific_settings">Specifické nastavení tunelu</string>
<string name="show_scripts">Zobrazit skripty</string>
<string name="splt_tunneling">Dělené tunelování</string>
<string name="auto_tunnel_channel_description">Kanál pro oznámení o stavu auto-tunelu</string>
@@ -194,7 +186,6 @@
<string name="remote_key_template">Klíč: %1$s</string>
<string name="active">Aktivní</string>
<string name="service_running_error">Služba není spuštěna</string>
<string name="wifi_name_template">Aktivní: %1$s</string>
<string name="tunnel_error_template">Tunel selhal s: %1$s</string>
<string name="camera_permission_required">Vyžadováno oprávnění k použití fotoaparátu</string>
<string name="copy">Kopírovat</string>
@@ -210,7 +201,6 @@
<string name="pre_down">Před deaktivací</string>
<string name="post_up">Po aktivaci</string>
<string name="flavor_template">Varianta: %1$s</string>
<string name="security_template">Zabezpečení: %1$s</string>
<string name="done">Hotovo</string>
<string name="wireguard">WireGuard</string>
<string name="amnezia">Amnezia</string>
@@ -247,8 +237,6 @@
<string name="attempts_per_interval">Pokusů o ping za interval</string>
<string name="timeout_all_attempts">Celkový časový limit pro všechny pokusy</string>
<string name="display_detailed_ping_stats">Zobrazit podrobné statistiky pingů</string>
<string name="rx_template">RX: %1$s MB</string>
<string name="tx_template">TX: %1$s MB</string>
<string name="ping_success_template">Poslední úspěšný ping: %1$s</string>
<string name="packets_sent_template">Odeslané pakety: %1$s</string>
<string name="packet_loss_template">Ztracené pakety: %.2f%%</string>
@@ -277,7 +265,6 @@
<string name="comma_separated">Oddělené čárkami</string>
<string name="server_port">Server:Port</string>
<string name="new_tunnel">Nový tunel</string>
<string name="system_features">Systémové funkce</string>
<string name="read_failed">Nepodařilo se přečíst data.</string>
<string name="invalid_key">Neplatný klíč</string>
<string name="invalid_number">Neplatné číslo</string>
@@ -315,7 +302,6 @@
<string name="set_custom_ping_target">Vlastní cíl pingu (volitelné)</string>
<string name="tunnel_ping_interval">Interval pingování tunelu</string>
<string name="ping_timeout">Časový limit pingování tunelu</string>
<string name="monitoring_ping">Povolit monitorování pingování tunelu</string>
<string name="sec_ago_template">Před %1$s s</string>
<string name="latency_template">Latence: %1$s</string>
<string name="ping_target_template">Cíl pingu: %1$s</string>
-14
View File
@@ -54,14 +54,12 @@
<string name="email_description">Sende mir eine E-Mail</string>
<string name="error_root_denied">Root Shell verweigert</string>
<string name="error_no_file_explorer">Kein Datei-Explorer installiert</string>
<string name="location_services_missing_message">Die App erkennt keine auf deinem Gerät aktivierten Standortdienste. Je nach Gerät kann dies dazu führen, dass die Funktion nicht vertrauenswürdiges WLAN den WLAN-Namen nicht lesen kann. Möchtest du trotzdem fortfahren?</string>
<string name="auto_tunnel_title">Auto-Tunnel Dienst</string>
<string name="delete_tunnel_message">Bist du sicher, dass du den Tunnel löschen möchtest?</string>
<string name="yes">Ja</string>
<string name="all">alle</string>
<string name="no_browser_detected">Keinen Browser erkannt</string>
<string name="open_issue">Issue öffnen</string>
<string name="read_logs">Logeinträge lesen</string>
<string name="auto">(automatisch)</string>
<string name="incorrect_pin">PIN nicht korrekt</string>
<string name="pin_created">PIN erfolgreich erstellt</string>
@@ -72,9 +70,6 @@
<string name="email_chooser">Eine E-Mail senden…</string>
<string name="no_email_detected">Keine E-Mail-App erkannt</string>
<string name="create_pin">PIN erstellen</string>
<string name="use_tunnel_on_wifi_name">Tunnel für WLAN-Namen verwenden</string>
<string name="mobile_data_tunnel">Als Tunnel für Mobile Daten setzen</string>
<string name="restart_on_ping">Neustart bei PING Fehler (Beta)</string>
<string name="edit_tunnel">Tunnel bearbeiten</string>
<string name="set_primary_tunnel">Als Primären Tunnel setzen</string>
<string name="vpn_channel_name">VPN Benachrichtigungskanal</string>
@@ -117,7 +112,6 @@
<string name="tunnel_running">Laufender Tunnel</string>
<string name="donate">Fürs Projekt spenden</string>
<string name="local_logging">Lokales Logging</string>
<string name="enable_local_logging">Lokales Logging aktivieren</string>
<string name="add_from_clipboard">Aus Zwischenablage einfügen</string>
<string name="automatic">Automatisch</string>
<string name="language">Sprache</string>
@@ -130,7 +124,6 @@
<string name="monitoring_state_changes">Überwache Statusänderungen</string>
<string name="stop_on_no_internet">Stoppen wenn keine Internetverbindung besteht</string>
<string name="ethernet_tunnel">Ethernet Tunnel</string>
<string name="set_ethernet_tunnel">Als Ethernet Tunnel setzen</string>
<string name="native_kill_switch">Nativer Notschalter</string>
<string name="allow_lan_traffic">LAN Verkehr erlauben</string>
<string name="vpn_channel_description">Ein Kanal für VPN-Statusbenachrichtigungen</string>
@@ -138,7 +131,6 @@
<string name="auto_tunnel_channel_description">Ein Kanal für Auto-Tunnel Statusbenachrichtigungen</string>
<string name="stop">Stop</string>
<string name="splt_tunneling">Tunneling aufteilen</string>
<string name="tunnel_specific_settings">Tunnelspezifische Einstellungen</string>
<string name="show_scripts">Skripte anzeigen</string>
<string name="pre_up">Vor Aktivierung</string>
<string name="post_up">Nach Aktivierung</string>
@@ -189,7 +181,6 @@
<string name="dns_resolve_error">DNS-Auflösung fehlgeschlagen</string>
<string name="export_tunnels_wireguard">Tunnel als WireGuard exportieren</string>
<string name="camera_permission_required">Kameraberechtigung erforderlich</string>
<string name="wifi_name_template">Aktiv: %1$s</string>
<string name="delete">Löschen</string>
<string name="nothing_here_yet">Noch nix hier!</string>
<string name="select_all">Alles auswählen</string>
@@ -207,7 +198,6 @@
<string name="allow">Erlauben</string>
<string name="install_updated_permission">Diese App benötigt die Berechtigung, um Updates zu installieren.</string>
<string name="latest_installed">Du verwendesz bereits die neueste Version.</string>
<string name="security_template">Sicherheit: %1$s</string>
<string name="amoled">AMOLED</string>
<string name="flavor_template">Variante: %1$s</string>
<string name="darker">Dunkler</string>
@@ -255,9 +245,6 @@
<string name="ping_timeout">Tunnel-Ping-Timeout</string>
<string name="timeout_all_attempts">Gesamtzeitüberschreitung für alle Versuche</string>
<string name="display_detailed_ping_stats">Detaillierte Ping-Statistiken anzeigen</string>
<string name="monitoring_ping">Ping-Tunnel-Überwachung aktivieren</string>
<string name="rx_template">RX: %1$s MB</string>
<string name="tx_template">TX: %1$s MB</string>
<string name="reachable_template">Erreichbar: %1$s</string>
<string name="ping_success_template">Letzter erfolgreicher Ping: %1$s</string>
<string name="sec_ago_template">vor %1$s Sek</string>
@@ -303,7 +290,6 @@
<string name="comma_separated">Komma getrennt</string>
<string name="server_port">Server:Port</string>
<string name="new_tunnel">Neuer Tunnel</string>
<string name="system_features">Systemfunktionen</string>
<string name="read_failed">Daten konnten nicht gelesen werden.</string>
<string name="invalid_key">Ungültiger Schlüssel</string>
<string name="invalid_number">Ungültige Nummer</string>
-10
View File
@@ -7,10 +7,7 @@
<string name="copy_public_key">Copiar public key</string>
<string name="base64_key">clave base64</string>
<string name="tunnel_on_wifi">Túnel en Wi-Fi no de confianza</string>
<string name="location_services_missing_message">La app no detecta activado el servicio de ubicación en tu dispositivo. Dependiendo del dispositivo, esto podría hacer que la característica de Wi-Fi no de confianza falle al leer el nombre Wi-Fi. ¿Quieres continuar de todas formas?</string>
<string name="all">todas</string>
<string name="mobile_data_tunnel">Establecer como túnel en datos móviles</string>
<string name="use_tunnel_on_wifi_name">Usar tunnel en nombre Wi-Fi</string>
<string name="support">Ayuda</string>
<string name="private_key">Clave privada</string>
<string name="trusted_ssid_value_description">Enviar SSID</string>
@@ -66,14 +63,12 @@
<string name="no_email_detected">Ninguna app de email detectada</string>
<string name="no_browser_detected">Ningún navegador detectado</string>
<string name="open_issue">Abrir una incidencia</string>
<string name="read_logs">Leer los registros</string>
<string name="auto">(automático)</string>
<string name="incorrect_pin">El pin no es correcto</string>
<string name="pin_created">Pin creado con éxito</string>
<string name="enter_pin">Introduce tu pin</string>
<string name="create_pin">Crear pin</string>
<string name="enable_app_lock">Activar el bloqueo de aplicaciones</string>
<string name="restart_on_ping">Reiniciar al fallar ping (beta)</string>
<string name="set_primary_tunnel">Establecer como túnel Principal</string>
<string name="edit_tunnel">Editar túnel</string>
<string name="settings">Ajustes</string>
@@ -112,11 +107,9 @@
<string name="start_auto">Iniciar túnel automático</string>
<string name="stop_auto">Detener túnel automático</string>
<string name="local_logging">Registro local</string>
<string name="enable_local_logging">Habilitar registro local</string>
<string name="exclude_lan">Excluir LAN</string>
<string name="enable_amnezia_compatibility">Activar compatibilidad con Amnezia</string>
<string name="include_lan">Incluir LAN</string>
<string name="tunnel_specific_settings">Ajustes específicos del túnel</string>
<string name="hide_scripts">Ocultar scripts</string>
<string name="advanced_settings">Configuraciones avanzadas</string>
<string name="show_scripts">Mostrar scripts</string>
@@ -142,7 +135,6 @@
<string name="stop_on_no_internet">Detener cuando no hay internet</string>
<string name="stop_on_internet_loss">Detener túnel cuando se pierda el internet</string>
<string name="ethernet_tunnel">Túnel ethernet</string>
<string name="set_ethernet_tunnel">Establecer como túnel ethernet</string>
<string name="native_kill_switch">Interruptor de apagado nativo</string>
<string name="allow_lan_traffic">Permitir tráfico LAN</string>
<string name="bypass_lan_for_kill_switch">Excluir LAN del interruptor de apagado</string>
@@ -172,7 +164,6 @@
<string name="copy">Copiar</string>
<string name="export_tunnels_wireguard">Exportar túneles como WireGuard</string>
<string name="export_tunnels_amnezia">Exportar túneles como Amnezia</string>
<string name="wifi_name_template">Activo: %1$s</string>
<string name="add_tunnel">Añadir túnel</string>
<string name="export_logs">Exportar registros almacenados</string>
<string name="inactive">Inactivo</string>
@@ -196,7 +187,6 @@
<string name="version_template">Versión: %1$s</string>
<string name="check_for_update">Comprobar actualización</string>
<string name="update_check_failed">Fallo al comprobar la actualización.</string>
<string name="security_template">Seguridad: %1$s</string>
<string name="flavor_template">Sabor: %1$s</string>
<string name="tunnel_starting">Iniciando túnel</string>
<string name="enable_remote_app_control">Activar control remoto de la app</string>
-9
View File
@@ -84,7 +84,6 @@
<string name="hide_amnezia_properties">Peida Amnezia seadistused</string>
<string name="donate">Toeta projekti rahaliselt</string>
<string name="local_logging">Kohalik logimine</string>
<string name="enable_local_logging">Logi andmed nutiseadmes</string>
<string name="add_from_clipboard">Lisa lõikelaualt</string>
<string name="appearance">Välimus</string>
<string name="notifications">Teavitused</string>
@@ -118,7 +117,6 @@
<string name="no_email_detected">E-posti rakendust ei õnnestu tuvastada</string>
<string name="no_browser_detected">Veebibrauserit ei õnnestu tuvastada</string>
<string name="open_issue">Alusta veateate koostamist</string>
<string name="read_logs">Loe logisid</string>
<string name="auto">(automaatne)</string>
<string name="incorrect_pin">PIN-kood pole õige</string>
<string name="pin_created">PIN-koodi loomine õnnestus</string>
@@ -140,10 +138,8 @@
<string name="skip">Jäta vahele</string>
<string name="export_failed">Eksportimine ei õnnestunud</string>
<string name="tunnel_error_template">Viga tunneli töös: %1$s</string>
<string name="wifi_name_template">Aktiivne: %1$s</string>
<string name="remote_key_template">Võti: %1$s</string>
<string name="version_template">Versioon: %1$s</string>
<string name="security_template">Turvalisus: %1$s</string>
<string name="flavor_template">Levitusviis: %1$s</string>
<string name="config_error">Vigane seadistus</string>
<string name="kernel_name_error">Viga kerneli mooduli nimes</string>
@@ -164,7 +160,6 @@
<string name="learn_more">Lisateave</string>
<string name="monitoring_state_changes">Jälgin oleku muudatusi</string>
<string name="tunnel_running">Tunnel töötab</string>
<string name="tunnel_specific_settings">Tunnelikohased seadistused</string>
<string name="start_auto">Käivita automaatne tunneldus</string>
<string name="stop_auto">Peata automaatne tunneldus</string>
<string name="quick_actions">Kiirtoimingud</string>
@@ -178,9 +173,6 @@
<string name="stop_on_no_internet">Peata internetiühenduse puudumisel</string>
<string name="stop_on_internet_loss">Peata tunnel internetiühenduse kadumisel</string>
<string name="enable_app_lock">Kasuta rakenduse lukustust</string>
<string name="restart_on_ping">Pingimise mittetoimimisel käivita uuesti (beeta)</string>
<string name="mobile_data_tunnel">Määra mobiilse andmeside tunneliks</string>
<string name="use_tunnel_on_wifi_name">Kasuta tunnelit WiFi nime puhul</string>
<string name="kernel">Tuum/Kernel</string>
<string name="mobile_tunnel">Mobiilside andmetunnel</string>
<string name="launch_app_settings">Käivita rakenduse seadistused</string>
@@ -213,7 +205,6 @@
<string name="current_template">Praegune: %1$s</string>
<string name="multiple">Mitmikvalik</string>
<string name="enabled_app_shortcuts">Kasuta rakenduse otseteid</string>
<string name="location_services_missing_message">Rakendus ei suuda sinu nutiseadmes tuvastada asukohateenuste toimimist. Sõltuvalt sinu nutiseadmest võib see tähendada, et ebausaldusväärse WiFi-ühenduse identifitseerimine nime alusel ei pruugi toimida. Kas sa ikkagi soovid jätkata?</string>
<string name="auto_tunnel_title">Tunneli automaatne loomine</string>
<string name="auto_tunnel_not_running">Tunneli automaatne käivitamine pole kasutusel</string>
<string name="auto_tunnel_running">Tunneli automaatne käivitamine on kasutusel</string>
-4
View File
@@ -8,7 +8,6 @@
<string name="allowed_ips">Sallitut IP-osoitteet</string>
<string name="create_import">Luo tyhjästä</string>
<string name="appearance">Ulkoasu</string>
<string name="tunnel_specific_settings">Tunnelikohtaiset asetukset</string>
<string name="dns_servers">DNS-palvelimet</string>
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_name">VPN-ilmoituskanava</string>
@@ -43,7 +42,6 @@
<string name="email_description">Lähetä minulle sähköpostia</string>
<string name="error_ssid_exists">SSID on jo luettelossa</string>
<string name="error_no_file_explorer">Tiedostonhallintasovellusta ei ole asennettuna</string>
<string name="location_services_missing_message">Sovellus ei tunnista laitteessasi käytössä olevia sijaintipalveluja. Laitteesta riippuen tämä voi aiheuttaa sen, että epäluotettava wlan-ominaisuus ei pysty lukemaan wlan-nimeä. Haluatko kuitenkin jatkaa?</string>
<string name="auto_tunnel_title">Automaattinen tunnelointipalvelu</string>
<string name="delete_tunnel">Poista tunneli</string>
<string name="yes">Kyllä</string>
@@ -78,7 +76,6 @@
<string name="all">kaikki</string>
<string name="never">ei koskaan</string>
<string name="logs">Lokitiedot</string>
<string name="set_ethernet_tunnel">Aseta ethernet-tunneliksi</string>
<string name="seconds">sekuntia</string>
<string name="cancel">Peruuta</string>
<string name="no_browser_detected">Selainta ei tunnistettu</string>
@@ -102,7 +99,6 @@
<string name="enabled_app_shortcuts">Salli sovelluksen pikakuvakkeet</string>
<string name="automatic">Automaattinen</string>
<string name="tunnel_name">Tunnelin nimi</string>
<string name="read_logs">Lue lokitiedot</string>
<string name="mobile_tunnel">Mobiilidatatunneli</string>
<string name="restart_at_boot">Käynnistä laitteen käynnistyksen yhteydessä</string>
<string name="always_on_message2">varmistaaksesi, että Aina päällä oleva VPN on kytketty pois päältä kaikkien muiden sovellusten osalta ja yritä uudelleen</string>
-8
View File
@@ -62,8 +62,6 @@
<string name="incorrect_pin">Code PIN incorrect</string>
<string name="enter_pin">Entrez votre code NIP</string>
<string name="create_pin">Créer un NIP</string>
<string name="restart_on_ping">Redémarrer après l\'échec du ping (beta)</string>
<string name="mobile_data_tunnel">Définir comme tunnel de données mobiles</string>
<string name="support">Support</string>
<string name="junk_packet_minimum_size">Taille minimum des paquets indésirables</string>
<string name="init_packet_junk_size">Initialiser la taille des paquets indésirables</string>
@@ -82,15 +80,12 @@
<string name="enabled_app_shortcuts">Activer les raccourcis</string>
<string name="unknown_error">Une erreur inconnue s\'est produite</string>
<string name="email_subject">Assistance WG Tunnel</string>
<string name="location_services_missing_message">L\'application détecte qu\'aucun service de localisation n\'est activé sur votre appareil. Selon votre appareil, cela peut empêcher la fonctionnalité « Wi-Fi approuvés » de lire le nom du Wi-Fi. Souhaitez-vous tout de même continuer?</string>
<string name="yes">Oui</string>
<string name="all">tout</string>
<string name="set_primary_tunnel">Définir comme tunnel principal</string>
<string name="read_logs">Lire les journaux</string>
<string name="auto">(auto)</string>
<string name="pin_created">Code PIN bien créé</string>
<string name="enable_app_lock">Activer le verrouillage de l\'appli</string>
<string name="use_tunnel_on_wifi_name">Utiliser ce tunnel selon le nom du wifi</string>
<string name="edit_tunnel">Éditer le tunnel</string>
<string name="settings">Réglages</string>
<string name="junk_packet_count">Nombre de paquets indésirables</string>
@@ -126,10 +121,8 @@
<string name="monitoring_state_changes">Surveille les changements d’état</string>
<string name="donate">Faire un don au projet</string>
<string name="local_logging">Journalisation locale</string>
<string name="enable_local_logging">Activer la journalisation locale</string>
<string name="start_auto">Démarrer l\'auto-tunnel</string>
<string name="exclude_lan">Exclure le LAN</string>
<string name="tunnel_specific_settings">Réglages spécifiques du tunnel</string>
<string name="show_scripts">Voir les scripts</string>
<string name="hide_scripts">Cacher les scripts</string>
<string name="remove_amnezia_compatibility">Retirer la prise en charge d\'Amnezia</string>
@@ -138,7 +131,6 @@
<string name="stop_on_no_internet">Arrêt en l\'absence d\'internet</string>
<string name="stop_on_internet_loss">Couper les tunnels en l\'absence d\'internet</string>
<string name="ethernet_tunnel">Tunnel ethernet</string>
<string name="set_ethernet_tunnel">Définir comme tunnel ethernet</string>
<string name="native_kill_switch">Arrêt d\'urgence natif</string>
<string name="allow_lan_traffic">Autoriser le trafic LAN</string>
<string name="bypass_lan_for_kill_switch">Contourner le LAN en cas d\'arêt d\'urgence</string>
-5
View File
@@ -42,14 +42,11 @@
<string name="error_ssid_exists">SSID sudah ada</string>
<string name="error_root_denied">Root shell ditolak</string>
<string name="error_no_file_explorer">Tidak ada file explorer yang diinstal</string>
<string name="location_services_missing_message">Aplikasi tidak mendeteksi layanan lokasi apa pun yang diaktifkan di perangkat Anda. Tergantung pada perangkatnya, hal ini dapat menyebabkan fitur wifi yang tidak tepercaya gagal membaca nama wifi. Apakah Anda ingin melanjutkan?</string>
<string name="auto_tunnel_title">Layanan Auto-tunnel</string>
<string name="yes">Ya</string>
<string name="incorrect_pin">Pin salah</string>
<string name="pin_created">Pin berhasil dibuat</string>
<string name="enter_pin">Masukkan pin Anda</string>
<string name="restart_on_ping">Mulai ulang saat ping gagal (beta)</string>
<string name="use_tunnel_on_wifi_name">Gunakan tunnel pada nama wifi</string>
<string name="edit_tunnel">Edit tunnel</string>
<string name="junk_packet_count">Jumlah paket sampah</string>
<string name="junk_packet_minimum_size">Ukuran minimum paket sampah</string>
@@ -82,9 +79,7 @@
<string name="no_browser_detected">Tidak ada browser yang terdeteksi</string>
<string name="all">semua</string>
<string name="open_issue">Membuka masalah</string>
<string name="read_logs">Baca log</string>
<string name="auto">(auto)</string>
<string name="create_pin">Buat pin</string>
<string name="mobile_data_tunnel">Ditetapkan sebagai tunnel data seluler</string>
<string name="set_primary_tunnel">Ditetapkan sebagai tunnel utama</string>
</resources>
-13
View File
@@ -47,8 +47,6 @@
<string name="error_ssid_exists">L\'SSID esiste già</string>
<string name="error_root_denied">Shell di root negata</string>
<string name="prominent_background_location_title">Permesso localizzazione in background</string>
<string name="location_services_missing_message">Questa app non rileva alcun servizio di localizzazione attivo sul tuo dispositivo. Indipendentemente dal dispositivo, questo potrebbe causare il fallimento nel recuperare il nome wifi da parte della funzione wifi non fidate. Vuoi continuare comunque?</string>
<string name="read_logs">Leggi i log</string>
<string name="auto">(Auto)</string>
<string name="underload_packet_magic_header">Magic header pacchetto sottocarico</string>
<string name="unsure_how">se non sei sicuro su come procedere</string>
@@ -71,10 +69,7 @@
<string name="incorrect_pin">Il PIN non è corretto</string>
<string name="pin_created">PIN correttamente creato</string>
<string name="enable_app_lock">Abilita blocco app</string>
<string name="restart_on_ping">Riavvia su fallimento ping (beta)</string>
<string name="mobile_data_tunnel">Imposta come tunnel dati mobili</string>
<string name="set_primary_tunnel">Imposta come tunnel principale</string>
<string name="use_tunnel_on_wifi_name">Usa tunnel su nome wifi</string>
<string name="edit_tunnel">Modifica tunnel</string>
<string name="settings">Impostazioni</string>
<string name="support">Supporto</string>
@@ -112,10 +107,8 @@
<string name="learn_more">Approfondisci</string>
<string name="wildcards_active">Caratteri jolly attivi</string>
<string name="donate">Dona al progetto</string>
<string name="enable_local_logging">Abilita logging locale</string>
<string name="monitoring_state_changes">Monitora i cambi di stato</string>
<string name="stop">Ferma</string>
<string name="tunnel_specific_settings">Configurazioni specifiche del tunnel</string>
<string name="show_scripts">Mostra gli script</string>
<string name="pre_up">Prima di avviarsi</string>
<string name="splt_tunneling">Tunneling diviso</string>
@@ -157,7 +150,6 @@
<string name="start_auto">Avvia tunnel automatico</string>
<string name="stop_auto">Ferma tunnel automatico</string>
<string name="native_kill_switch">Kill switch nativo</string>
<string name="set_ethernet_tunnel">Configura come tunnel ethernet</string>
<string name="bypass_lan_for_kill_switch">Bypass LAN per kill switch</string>
<string name="vpn_channel_description">Un canale per le notifiche di stato della VPN</string>
<string name="auto_tunnel_channel_name">Canale di notifica del tunnel automatico</string>
@@ -181,7 +173,6 @@
<string name="camera_permission_required">Permessi telecamera richiesti</string>
<string name="export_failed">Esportazione fallita</string>
<string name="tunnel_error_template">Tunnel interrotto: %1$s</string>
<string name="wifi_name_template">Attivo: %1$s</string>
<string name="auth_error">Non autorizzato</string>
<string name="service_running_error">Servizio non in esecuzione</string>
<string name="inactive">Inattivo</string>
@@ -203,7 +194,6 @@
<string name="licenses">Licenze</string>
<string name="update_check_unsupported">Controllo degli aggiornamenti non è supportato per questo tipo di build.</string>
<string name="darker">Più scuro</string>
<string name="security_template">Sicurezza: %1$s</string>
<string name="export_success">Esportazione riuscita</string>
<string name="download">Download</string>
<string name="check_for_update">Controlla gli aggiornamenti</string>
@@ -225,7 +215,6 @@
<string name="invalid_number">Nunero non valido</string>
<string name="invalid_key">Chiave non valida</string>
<string name="read_failed">Impossibile leggere i dati.</string>
<string name="system_features">Funzioni di sistema</string>
<string name="new_tunnel">Nuovo tunnel</string>
<string name="server_port">Server:Porta</string>
<string name="comma_separated">Separati da virgola</string>
@@ -266,8 +255,6 @@
<string name="sec_ago_template">%1$s sec fa</string>
<string name="ping_success_template">Ultimo ping riuscito: %1$s</string>
<string name="reachable_template">Raggiungibile: %1$s</string>
<string name="tx_template">TX: %1$s MB</string>
<string name="rx_template">RX: %1$s MB</string>
<string name="current_template">Corrente: %1$s</string>
<string name="expiremental_template">%1$s (sperimentale)</string>
<string name="root_required_template">%1$s (root richiesto)</string>
-4
View File
@@ -20,7 +20,6 @@
<string name="unknown_error">不明なエラーが発生しました</string>
<string name="error_no_file_explorer">ファイルエクスプローラーはインストールされていません</string>
<string name="enabled_app_shortcuts">アプリのショートカットを有効にする</string>
<string name="location_services_missing_message">アプリがデバイスで有効になっている位置情報サービスを検出しません。 デバイスによっては、信頼されていない無線LAN機能がWiFi名を読み取れない可能性があります。このまま続けますか?</string>
<string name="no_email_detected">メールアプリは検出されません</string>
<string name="email_description">メールを送る</string>
<string name="no_browser_detected">ブラウザは検出されません</string>
@@ -50,7 +49,6 @@
<string name="tunnel_on_ethernet">Ethernetでのトンネルの有効化</string>
<string name="open_issue">問題を報告する</string>
<string name="incorrect_pin">PINが無効です</string>
<string name="read_logs">ログを確認する</string>
<string name="pin_created">PINの登録が完了しました</string>
<string name="settings">設定</string>
<string name="tunnel_mobile_data">モバイルデータでのトンネルの有効化</string>
@@ -60,8 +58,6 @@
<string name="auto_tunnel_title">自動トンネルサービス</string>
<string name="edit_tunnel">トンネルの編集</string>
<string name="create_pin">新規PINを作成</string>
<string name="use_tunnel_on_wifi_name">指定WiFiでトンネルを適用</string>
<string name="mobile_data_tunnel">モバイルデータトンネルに設定</string>
<string name="enable_app_lock">アプリロックを有効にする</string>
<string name="always_on_message">VPN接続の許可が拒否されました。</string>
<string name="always_on_message2">他のすべてのアプリで常時接続VPNがオフになっていることを確認して、再度お試しください</string>
-10
View File
@@ -48,16 +48,13 @@
<string name="open_issue">Open een melding</string>
<string name="create_pin">Stel PIN in</string>
<string name="enable_app_lock">Schakel app-lock in</string>
<string name="restart_on_ping">Herstart bij mislukte ping (beta)</string>
<string name="init_packet_junk_size">Initiële junk packet grootte</string>
<string name="junk_packet_maximum_size">Junk packet maximum grootte</string>
<string name="response_packet_junk_size">Response junk packet grootte</string>
<string name="delete_tunnel_message">Weet je zeker dat je deze tunnel wil verwijderen?</string>
<string name="yes">Ja</string>
<string name="no_email_detected">Geen email app gevonden</string>
<string name="read_logs">Lees logboeken</string>
<string name="auto">(auto)</string>
<string name="mobile_data_tunnel">Stel in als mobiele datatunnel</string>
<string name="set_primary_tunnel">Stel in als primaire tunnel</string>
<string name="edit_tunnel">Tunnel bewerken</string>
<string name="settings">Instellingen</string>
@@ -71,7 +68,6 @@
<string name="incorrect_pin">Foutieve PIN</string>
<string name="enter_pin">Vul PIN in</string>
<string name="pin_created">PIN aangemaakt</string>
<string name="use_tunnel_on_wifi_name">Gebruik tunnel bij WiFi naam</string>
<string name="add_peer">Peer toevoegen</string>
<string name="init_packet_magic_header">Initiële packet magic header</string>
<string name="prominent_background_location_title">Achtergrondlocatievrijgave</string>
@@ -100,7 +96,6 @@
<string name="vpn_settings">VPN systeeminstellingen</string>
<string name="root_accepted">Root toegang verleend</string>
<string name="prominent_background_location_message">Deze functie vereist locatierechten om het WiFi SSID te kunnen bepalen. Ook als de applicatie is gesloten. Lees het privacybeleid op het scherm Ondersteuning voor meer informatie.</string>
<string name="location_services_missing_message">De app kan geen ingeschakelde locatieservices op je apparaat vinden. Afhankelijk van het type apparaat kan dit leiden tot een niet functionerende herkenning van het verbonden WiFi netwerk. De niet-vertrouwde WiFi functionaliteit werkt daardoor mogelijk niet. Toch doorgaan?</string>
<string name="transport_packet_magic_header">Transport packet magic header</string>
<string name="appearance">Uiterlijk</string>
<string name="light">Licht</string>
@@ -111,12 +106,10 @@
<string name="notifications">Meldingen</string>
<string name="quick_actions">Snelle acties</string>
<string name="ethernet_tunnel">Ethernet tunnel</string>
<string name="set_ethernet_tunnel">Instellen als ethernet tunnel</string>
<string name="allow_lan_traffic">LAN trafiek toestaan</string>
<string name="vpn_channel_description">Een kanaal voor VPN status notificaties</string>
<string name="stop">Stop</string>
<string name="splt_tunneling">Gesplitste tunneling</string>
<string name="tunnel_specific_settings">Tunnel specifieke instellingen</string>
<string name="advanced_settings">Geavanceerde instellingen</string>
<string name="hide_amnezia_properties">Amnezia eigenschappen verbergen</string>
<string name="hide_scripts">Scripts verbergen</string>
@@ -124,7 +117,6 @@
<string name="add_from_clipboard">Toevoegen van klembord</string>
<string name="show_scripts">Toon scripts</string>
<string name="auto_tunnel_channel_name">Auto-tunnel Notificatie Kanaal</string>
<string name="enable_local_logging">lokale logging inschakelen</string>
<string name="auto_tunnel_channel_description">Een kanaal voor auto-tunnel status notificaties</string>
<string name="enable_amnezia_compatibility">Amnezia compatibiliteit inschakelen</string>
<string name="add_from_url">Toevoegen met link</string>
@@ -221,10 +213,8 @@
<string name="camera_permission_required">Kamera toestemming vereist</string>
<string name="export_failed">Export mislukt</string>
<string name="tunnel_error_template">Tunnel is mislukt: %1$s</string>
<string name="wifi_name_template">Actief: %1$s</string>
<string name="remote_key_template">Sleutel: %1$s</string>
<string name="version_template">Versie: %1$s</string>
<string name="security_template">Veiligheid: %1$s</string>
<string name="current_template">Huidige: %1$s</string>
<string name="flavor_template">Smaak: %1$s</string>
<string name="config_error">Configuratie ongeldig</string>
-14
View File
@@ -34,13 +34,10 @@
<string name="prominent_background_location_message">Ta funkcja wymaga pozwolenia na dostęp do lokalizacji w tle, aby włączyć monitorowanie SSID sieci Wi-Fi nawet wtedy, gdy aplikacja jest zamknięta. Więcej szczegółów znajdziesz w polityce prywatności znajdującej się na ekranie Obsługa.</string>
<string name="optional">(opcjonalnie)</string>
<string name="preshared_key">Klucz wstępnie udostępniony</string>
<string name="location_services_missing_message">Aplikacja nie wykrywa żadnych usług lokalizacyjnych włączonych na tym urządzeniu. W zależności od urządzenia może to spowodować, że funkcja niezaufanej sieci Wi-Fi nie będzie w stanie odczytać nazwy sieci Wi-Fi. Czy chcesz kontynuować mimo to?</string>
<string name="read_logs">Przeczytaj dzienniki</string>
<string name="support">Obsługa</string>
<string name="init_packet_magic_header">Nagłówek magicznego pakietu początkowego</string>
<string name="cancel">Anuluj</string>
<string name="always_on_message2">w celu upewnienia się, że funkcja stałego VPN jest wyłączona dla wszystkich innych aplikacji, następnie spróbuj ponownie</string>
<string name="use_tunnel_on_wifi_name">Użyj tunelu na nazwę sieci Wi-Fi</string>
<string name="root_accepted">Zezwolono na powłokę użytkownika root</string>
<string name="vpn_channel_name">Kanał powiadomień VPN</string>
<string name="create_import">Utwórz od nowa</string>
@@ -57,7 +54,6 @@
<string name="dns_servers">Serwery DNS</string>
<string name="error_file_extension">Plik nie jest w formacie .conf lub .zip</string>
<string name="copy_public_key">Skopiuj klucz publiczny</string>
<string name="restart_on_ping">Uruchom ponownie w przypadku niepowodzenia pingowania (beta)</string>
<string name="junk_packet_minimum_size">Minimalny rozmiar pakietu śmieciowego</string>
<string name="open_issue">Otwórz zagadnienie</string>
<string name="thank_you">Dziękujemy za korzystanie z aplikacji WG Tunnel!</string>
@@ -119,7 +115,6 @@
<string name="use_root_shell_for_wifi">Użyj powłoki użytkownika root, aby uzyskać informacje o sieci Wi-Fi, dzięki czemu nie będzie potrzeby uzyskiwania uprawnień do lokalizacji</string>
<string name="stop_auto">Zatrzymaj autotunel</string>
<string name="tunnel_running">Tunel jest uruchomiony</string>
<string name="enable_local_logging">Włącz lokalne rejestrowanie</string>
<string name="email_chooser">Wyślij wiadomość e-mail…</string>
<string name="okay">OK</string>
<string name="no_tunnels">Nie dodano jeszcze żadnych tuneli!</string>
@@ -127,12 +122,10 @@
<string name="docs_description">Przeczytaj dokumentację</string>
<string name="email_description">Wyślij mi wiadomość e-mail</string>
<string name="set_primary_tunnel">Ustaw jako tunel podstawowy</string>
<string name="mobile_data_tunnel">Ustaw jako tunel mobilnej transmisji danych</string>
<string name="vpn_channel_id">Kanał VPN</string>
<string name="stop_on_no_internet">Zatrzymaj, gdy nie ma Internetu</string>
<string name="stop_on_internet_loss">Zatrzymaj tunel przy utracie Internetu</string>
<string name="ethernet_tunnel">Tunel ethernetowy</string>
<string name="set_ethernet_tunnel">Ustaw jako tunel ethernetowy</string>
<string name="allow_lan_traffic">Zezwól na ruch LAN</string>
<string name="bypass_lan_for_kill_switch">Omiń LAN dla wyłącznika awaryjnego</string>
<string name="vpn_channel_description">Kanał powiadomień o stanie VPN</string>
@@ -140,7 +133,6 @@
<string name="auto_tunnel_channel_description">Kanał powiadomień o stanie autotunelowania</string>
<string name="stop">Zatrzymaj</string>
<string name="splt_tunneling">Tunelowanie rozdzielone</string>
<string name="tunnel_specific_settings">Ustawienia specyficzne dla tunelu</string>
<string name="pre_up">Przed aktywacją</string>
<string name="post_up">Po aktywacji</string>
<string name="pre_down">Przed dezaktywacją</string>
@@ -165,7 +157,6 @@
<string name="add_from_url">Dodaj z adresu URL</string>
<string name="export_failed">Eksport nie powiódł się</string>
<string name="inactive">Nieaktywny</string>
<string name="wifi_name_template">Aktywny: %1$s</string>
<string name="delete_logs">Usuń i wyczyść dzienniki</string>
<string name="join_telegram">Dołącz do społeczności Telegramu</string>
<string name="error_download_failed">Nie udało się pobrać konfiguracji</string>
@@ -212,7 +203,6 @@
<string name="flavor_template">Wariant: %1$s</string>
<string name="darker">Ciemniejszy</string>
<string name="amoled">AMOLED</string>
<string name="security_template">Zabezpieczenia: %1$s</string>
<string name="show_qr">Pokaż kod QR</string>
<string name="amnezia">Amnezia</string>
<string name="wireguard">WireGuard</string>
@@ -256,9 +246,6 @@
<string name="ping_timeout">Limit czasu pingowania tunelu</string>
<string name="timeout_all_attempts">Całkowity limit czasu dla wszystkich prób</string>
<string name="display_detailed_ping_stats">Wyświetl szczegółowe statystyki pingowania</string>
<string name="monitoring_ping">Włącz monitorowanie pingowania tunelu</string>
<string name="rx_template">RX: %1$s MB</string>
<string name="tx_template">TX: %1$s MB</string>
<string name="reachable_template">Osiągalny: %1$s</string>
<string name="ping_success_template">Ostatni udany ping: %1$s</string>
<string name="sec_ago_template">%1$s sek. temu</string>
@@ -304,7 +291,6 @@
<string name="comma_separated">Oddzielone przecinkiem</string>
<string name="server_port">Serwer:Port</string>
<string name="new_tunnel">Nowy tunel</string>
<string name="system_features">Funkcje systemu</string>
<string name="read_failed">Nie udało się odczytać danych.</string>
<string name="invalid_key">Nieprawidłowy klucz</string>
<string name="invalid_number">Nieprawidłowa liczba</string>
@@ -16,7 +16,6 @@
<string name="auto_tunnel_title">Serviço de Auto-túnel</string>
<string name="all">todos</string>
<string name="enter_pin">Digite o seu pin</string>
<string name="use_tunnel_on_wifi_name">Usar túnel em wifi com nome</string>
<string name="junk_packet_count">Quantidade de pacotes-lixo</string>
<string name="junk_packet_minimum_size">Tamanho mínimo de pacote-lixo</string>
<string name="junk_packet_maximum_size">Tamanho máximo de pacote-lixo</string>
@@ -56,7 +55,6 @@
<string name="random">(aleatório)</string>
<string name="persistent_keepalive">Manter a conexão persistente (keepalive)</string>
<string name="cancel">Cancelar</string>
<string name="restart_on_ping">Reiniciar em falha de ping (beta)</string>
<string name="email_description">Me envie um email</string>
<string name="error_ssid_exists">SSID já existe</string>
<string name="delete_tunnel_message">Tem certeza que quer apagar este túnel?</string>
@@ -68,18 +66,15 @@
<string name="email_chooser">Enviar um email…</string>
<string name="docs_description">Ler a documentação</string>
<string name="error_root_denied">Shell Root negado</string>
<string name="location_services_missing_message">A aplicação não detetou o serviço de localização ativado no seu dispositivo. Dependendo do dispositivo, isto pode causar que a função de Wi-Fi não confiável falhe em ler o nome do Wi-Fi. Quer continuar mesmo assim?</string>
<string name="open_issue">Abrir um problema</string>
<string name="no_email_detected">Nenhuma aplicação de email detetado</string>
<string name="no_browser_detected">Nenhum navegador detetado</string>
<string name="incorrect_pin">O Pin está errado</string>
<string name="auto">(automático)</string>
<string name="read_logs">Ler os registos</string>
<string name="pin_created">Pin criado com sucesso</string>
<string name="create_pin">Criar um pin</string>
<string name="enable_app_lock">Ligar bloqueio de aplicação</string>
<string name="edit_tunnel">Editar túnel</string>
<string name="mobile_data_tunnel">Selecionar como túnel em dados móveis</string>
<string name="set_primary_tunnel">Selecionar como túnel principal</string>
<string name="support">Suporte</string>
<string name="kernel">Kernel</string>
@@ -124,17 +119,14 @@
<string name="tunnel_running">Túnel em execução</string>
<string name="donate">Contribua com esse projeto</string>
<string name="local_logging">Registro local</string>
<string name="enable_local_logging">Ativar registro local</string>
<string name="stop_on_no_internet">Interromper quando não há internet</string>
<string name="stop_on_internet_loss">Interrompa o túnel quando a internet não estiver disponível</string>
<string name="ethernet_tunnel">Túnel ethernet</string>
<string name="set_ethernet_tunnel">Definir como túnel ethernet</string>
<string name="native_kill_switch">Interruptor de desligamento padrão</string>
<string name="allow_lan_traffic">Permitir tráfego LAN</string>
<string name="bypass_lan_for_kill_switch">Ignorar LAN no interruptor de desligamento</string>
<string name="splt_tunneling">Tunelamento dividido</string>
<string name="stop">pausar</string>
<string name="tunnel_specific_settings">Configurações específicas no túnel</string>
<string name="show_scripts">Mostrar scripts</string>
<string name="quick_actions">Ações rápidas</string>
<string name="advanced_settings">Configurações avançadas</string>
@@ -10,7 +10,6 @@
<string name="docs_description">Ler a documentação</string>
<string name="no_email_detected">Nenhuma aplicação de email detetado</string>
<string name="always_on_vpn_support">Permitir VPN sempre ligada</string>
<string name="read_logs">Ler os registos</string>
<string name="auto_tunneling">Auto-túnel</string>
<string name="optional">(opcional)</string>
<string name="settings">Configurações</string>
@@ -38,7 +37,6 @@
<string name="pin_created">Pin criado com sucesso</string>
<string name="enter_pin">Digite o seu pin</string>
<string name="enable_app_lock">Ligar bloqueio de aplicação</string>
<string name="restart_on_ping">Reiniciar em falha de ping (beta)</string>
<string name="edit_tunnel">Editar túnel</string>
<string name="kernel">Kernel</string>
<string name="junk_packet_count">Quantidade de pacotes-lixo</string>
@@ -68,7 +66,6 @@
<string name="init_packet_junk_size">Tamanho de pacote-lixo inicial</string>
<string name="vpn_denied_dialog_title">Permissão negada</string>
<string name="vpn_settings">Configurações do sistema VPN</string>
<string name="location_services_missing_message">A aplicação não detetou o serviço de localização ativado no seu dispositivo. Dependendo do dispositivo, isto pode causar que a função de Wi-Fi não confiável falhe em ler o nome do Wi-Fi. Quer continuar mesmo assim?</string>
<string name="auto_tunnel_title">Serviço de Auto-túnel</string>
<string name="error_no_file_explorer">Nenhum explorador de ficheiros instalado</string>
<string name="app_name">WG Tunnel</string>
@@ -91,8 +88,6 @@
<string name="seconds">segundos</string>
<string name="no_browser_detected">Nenhum navegador detetado</string>
<string name="open_issue">Abrir um problema</string>
<string name="mobile_data_tunnel">Selecionar como túnel em dados móveis</string>
<string name="use_tunnel_on_wifi_name">Usar túnel em wifi com nome</string>
<string name="see_the">Veja o</string>
<string name="getting_started_guide">guia de início rápido</string>
<string name="always_on_message2">para ter certeza que VPN Sempre-ligada é desligada para todas as outras aplicações e tente novamente</string>
@@ -118,7 +113,6 @@
<string name="automatic">Automático</string>
<string name="language">Idioma</string>
<string name="display_theme">Tema</string>
<string name="enable_local_logging">Ativar registo local</string>
<string name="mobile_tunnel">Túnel com dados móveis</string>
<string name="learn_more">Saber mais</string>
<string name="wildcards_active">Wildcards ativos</string>
@@ -129,10 +123,8 @@
<string name="add_from_clipboard">Adicionar da área de transferência</string>
<string name="stop_on_internet_loss">Interrompa o túnel quando a internet não estiver disponível</string>
<string name="ethernet_tunnel">Túnel ethernet</string>
<string name="set_ethernet_tunnel">Definir como túnel ethernet</string>
<string name="stop">pausar</string>
<string name="splt_tunneling">Tunelamento dividido</string>
<string name="tunnel_specific_settings">Configurações específicas no túnel</string>
<string name="show_scripts">Mostrar scripts</string>
<string name="advanced_settings">Configurações avançadas</string>
<string name="hide_amnezia_properties">Ocultar propriedades Amnezia</string>
-14
View File
@@ -25,7 +25,6 @@
<string name="no_email_detected">Приложение для отправки почты не найдено</string>
<string name="enter_pin">Введите PIN-код</string>
<string name="enable_app_lock">Защита приложения</string>
<string name="restart_on_ping">Перезапуск при сбое пинга (бета)</string>
<string name="settings">Настройки</string>
<string name="support">Поддержка</string>
<string name="init_packet_junk_size">S1</string>
@@ -62,12 +61,10 @@
<string name="preshared_key">Общий ключ</string>
<string name="seconds">секунд</string>
<string name="persistent_keepalive">Интервал поддержки соединения</string>
<string name="location_services_missing_message">Приложение не обнаружило сервис местоположения на вашем устройстве. На некоторых устройствах это может привести к невозможности определения имени сети Wi-Fi и сбою функции недоверенной сети. Всё равно продолжить?</string>
<string name="error_ssid_exists">SSID уже существует</string>
<string name="error_root_denied">Root-доступ запрещён</string>
<string name="delete_tunnel">Удалить туннель</string>
<string name="yes">Да</string>
<string name="use_tunnel_on_wifi_name">Использовать туннель в сети Wi-Fi</string>
<string name="prominent_background_location_message">Эта функция требует фоновый доступ к местоположению для отслеживания имён сетей Wi-Fi, даже когда приложение закрыто. Для получения дополнительной информации, прочтите политику конфиденциальности на экране поддержки.</string>
<string name="copy_public_key">Копировать открытый ключ</string>
<string name="enabled_app_shortcuts">Включить ярлыки приложения</string>
@@ -75,14 +72,12 @@
<string name="incorrect_pin">Некорректный PIN-код</string>
<string name="pin_created">PIN-код создан успешно</string>
<string name="create_pin">Создать PIN-код</string>
<string name="mobile_data_tunnel">Назначить как туннель для мобильного интернета</string>
<string name="edit_tunnel">Редактировать туннель</string>
<string name="junk_packet_count">Jc</string>
<string name="junk_packet_maximum_size">Jmax</string>
<string name="email_subject">Поддержка WG Tunnel</string>
<string name="email_description">Отправить письмо автору</string>
<string name="no_browser_detected">Браузер не найден</string>
<string name="read_logs">Посмотреть журнал</string>
<string name="auto">(авто)</string>
<string name="set_primary_tunnel">Назначить как главный туннель</string>
<string name="kernel">Модуль ядра</string>
@@ -126,7 +121,6 @@
<string name="start_auto">Запустить автотуннель</string>
<string name="tunnel_running">Работающий туннель</string>
<string name="monitoring_state_changes">Отслеживание изменений состояния</string>
<string name="enable_local_logging">Включить ведение журнала</string>
<string name="add_from_clipboard">Добавить из буфера обмена</string>
<string name="auto_tunnel_channel_name">Канал уведомлений автотуннеля</string>
<string name="show_scripts">Показать сценарии</string>
@@ -134,7 +128,6 @@
<string name="stop_on_no_internet">Остановить без интернета</string>
<string name="stop_on_internet_loss">Остановить туннель при потере интернета</string>
<string name="ethernet_tunnel">Туннель для Ethernet</string>
<string name="set_ethernet_tunnel">Назначить как туннель для Ethernet</string>
<string name="native_kill_switch">Штатное экстренное отключение</string>
<string name="allow_lan_traffic">Обход LAN</string>
<string name="bypass_lan_for_kill_switch">Разрешать трафик LAN при экстренном отключении</string>
@@ -142,7 +135,6 @@
<string name="auto_tunnel_channel_description">Канал уведомлений о состоянии автотуннеля</string>
<string name="stop">Стоп</string>
<string name="splt_tunneling">Раздельное туннелирование</string>
<string name="tunnel_specific_settings">Специальные настройки туннеля</string>
<string name="pre_up">До активации</string>
<string name="post_up">После активации</string>
<string name="pre_down">До деактивации</string>
@@ -164,7 +156,6 @@
<string name="delete_logs">Удалить журналы</string>
<string name="app_permission_title">Центр управления WG Tunnel</string>
<string name="search">Поиск</string>
<string name="wifi_name_template">Активный: %1$s</string>
<string name="add_from_url">Добавить из URL</string>
<string name="join_matrix">Присоединиться к сообществу в Matrix</string>
<string name="dns_resolve_error">Ошибка получения DNS</string>
@@ -211,7 +202,6 @@
<string name="flavor_template">Сборка: %1$s</string>
<string name="amoled">AMOLED</string>
<string name="darker">Ночная</string>
<string name="security_template">Защита: %1$s</string>
<string name="wireguard">WireGuard</string>
<string name="done">Готово</string>
<string name="amnezia">Amnezia</string>
@@ -265,9 +255,6 @@
<string name="ping_timeout">Время ожидания пинга туннеля</string>
<string name="timeout_all_attempts">Общее время ожидания всех попыток</string>
<string name="display_detailed_ping_stats">Подробная статистика пингования</string>
<string name="monitoring_ping">Отслеживать пингование туннеля</string>
<string name="rx_template">↓: %1$s МБ</string>
<string name="tx_template">↑: %1$s МБ</string>
<string name="reachable_template">Доступно: %1$s</string>
<string name="ping_success_template">Последний успешный пинг: %1$s</string>
<string name="ping_target_template">Цель пинга: %1$s</string>
@@ -303,7 +290,6 @@
<string name="comma_separated">Разделённые запятой</string>
<string name="server_port">Сервер:порт</string>
<string name="new_tunnel">Новый туннель</string>
<string name="system_features">Системные функции</string>
<string name="read_failed">Невозможно прочитать данные.</string>
<string name="invalid_key">Неправильный ключ</string>
<string name="invalid_number">Неправильное число</string>
-1
View File
@@ -54,7 +54,6 @@
<string name="email_description">Pošlite mi e-mail</string>
<string name="error_ssid_exists">SSID už existuje</string>
<string name="error_no_file_explorer">Nie je nainštalovaný žiadny prehliadač súborov</string>
<string name="location_services_missing_message">Aplikácia nezistila žiadne lokalizačné služby povolené vo vašom zariadení. V závislosti od zariadenia to môže spôsobiť, že funkcia nedôveryhodnej wifi nebude môcť prečítať názov wifi. Chcete aj tak pokračovať?</string>
<string name="auto_tunnel_title">Služba automatického tunela</string>
<string name="delete_tunnel">Vymazanie tunela</string>
<string name="delete_tunnel_message">Naozaj chcete tento tunel odstrániť?</string>
-9
View File
@@ -46,7 +46,6 @@
<string name="no_email_detected">மின்னஞ்சல் பயன்பாடு எதுவும் கண்டறியப்படவில்லை</string>
<string name="no_browser_detected">உலாவி கண்டறியப்படவில்லை</string>
<string name="open_issue">ஒரு சிக்கலைத் திறக்கவும்</string>
<string name="read_logs">பதிவுகளைப் படியுங்கள்</string>
<string name="auto">(ஆட்டோ)</string>
<string name="incorrect_pin">முள் தவறானது</string>
<string name="pin_created">முள் வெற்றிகரமாக உருவாக்கப்பட்டது</string>
@@ -101,12 +100,10 @@
<string name="monitoring_state_changes">மாநில மாற்றங்களை கண்காணித்தல்</string>
<string name="donate">திட்டத்திற்கு நன்கொடை</string>
<string name="local_logging">உள்ளூர்வாசிகள்</string>
<string name="enable_local_logging">உள்ளக பதிவுகளை இயக்கவும்</string>
<string name="add_from_clipboard">கிளிப்போர்டில் இருந்து சேர்க்கவும்</string>
<string name="stop_on_no_internet">இணையத்தில் நிறுத்துங்கள்</string>
<string name="stop_on_internet_loss">இணைய இழப்பில் சுரங்கப்பாதையை நிறுத்துங்கள்</string>
<string name="ethernet_tunnel">ஈத்தர்நெட் சுரங்கப்பாதை</string>
<string name="set_ethernet_tunnel">ஈத்தர்நெட் சுரங்கப்பாதையாக அமைக்கவும்</string>
<string name="native_kill_switch">சொந்த கொலை சுவிட்ச்</string>
<string name="allow_lan_traffic">லேன் போக்குவரத்தை அனுமதிக்கவும்</string>
<string name="bypass_lan_for_kill_switch">கொலை சுவிட்சுக்கு பைபாச் லேன்</string>
@@ -114,7 +111,6 @@
<string name="auto_tunnel_channel_description">ஆட்டோ-டன்னல் மாநில அறிவிப்புகளுக்கான சேனல்</string>
<string name="stop">நிறுத்து</string>
<string name="splt_tunneling">பிளவு சுரங்கப்பாதை</string>
<string name="tunnel_specific_settings">சுரங்கப்பாதை குறிப்பிட்ட அமைப்புகள்</string>
<string name="show_scripts">ச்கிரிப்ட்களைக் காட்டு</string>
<string name="pre_up">முன் மேல்</string>
<string name="post_up">பின் மேல்</string>
@@ -146,13 +142,9 @@
<string name="optional">(விரும்பினால்)</string>
<string name="preshared_key">முன் பகிரப்பட்ட விசை</string>
<string name="email_description">எனக்கு மின்னஞ்சல் அனுப்புங்கள்</string>
<string name="location_services_missing_message">உங்கள் சாதனத்தில் இயக்கப்பட்ட எந்த இருப்பிட சேவைகளையும் பயன்பாடு கண்டறியவில்லை. சாதனத்தைப் பொறுத்து, இது நம்பத்தகாத வைஃபை அம்சத்தை வைஃபை பெயரைப் படிக்கத் தவறிவிடும். எப்படியும் தொடர விரும்புகிறீர்களா?</string>
<string name="auto_tunnel_title">ஆட்டோ-டன்னல் பணி</string>
<string name="delete_tunnel">சுரங்கப்பாதையை நீக்கு</string>
<string name="restart_on_ping">பிங் தோல்வியை மறுதொடக்கம் செய்யுங்கள் (பீட்டா)</string>
<string name="mobile_data_tunnel">மொபைல் தரவு சுரங்கப்பாதையாக அமைக்கவும்</string>
<string name="set_primary_tunnel">முதன்மை சுரங்கப்பாதையாக அமைக்கவும்</string>
<string name="use_tunnel_on_wifi_name">வைஃபை பெயரில் சுரங்கப்பாதை பயன்படுத்தவும்</string>
<string name="edit_tunnel">சுரங்கப்பாதை திருத்து</string>
<string name="dynamic">மாறும்</string>
<string name="quick_actions">விரைவான செயல்கள்</string>
@@ -178,7 +170,6 @@
<string name="dropdown">கீழ்தோன்றும்</string>
<string name="export_logs">சேமிக்கப்பட்ட பதிவுகளை ஏற்றுமதி செய்யுங்கள்</string>
<string name="delete">நீக்கு</string>
<string name="wifi_name_template">செயலில்: %1$s</string>
<string name="export_failed">ஏற்றுமதி தோல்வியடைந்தது</string>
<string name="remote_key_template">விசை: %1$s</string>
<string name="config_error">கட்டமைப்பு பிழை</string>
-8
View File
@@ -63,7 +63,6 @@
<string name="error_ssid_exists">SSID zaten mevcut</string>
<string name="error_root_denied">Root kabuğu reddedildi</string>
<string name="error_no_file_explorer">Dosya gezgini yüklü değil</string>
<string name="location_services_missing_message">Uygulama, cihazınızda etkinleştirilmiş herhangi bir konum servisi algılamıyor. Cihaza bağlı olarak, bu durum güvenilmeyen wifi özelliğinin wifi adını okuyamamasını sağlayabilir. Yine de devam etmek ister misiniz?</string>
<string name="auto_tunnel_title">Otomatik tünel servisi</string>
<string name="delete_tunnel">Tüneli sil</string>
<string name="delete_tunnel_message">Bu tüneli silmek istediğinizden emin misiniz?</string>
@@ -72,17 +71,13 @@
<string name="no_email_detected">E-posta uygulaması algılanmadı</string>
<string name="no_browser_detected">Tarayıcı algılanmadı</string>
<string name="open_issue">Bir sorun aç</string>
<string name="read_logs">Günlükleri oku</string>
<string name="auto">(Otomatik)</string>
<string name="incorrect_pin">Pin yanlış</string>
<string name="pin_created">Pin başarıyla oluşturuldu</string>
<string name="enter_pin">Pininizi girin</string>
<string name="create_pin">Pin oluştur</string>
<string name="enable_app_lock">Uygulama kilidini etkinleştir</string>
<string name="restart_on_ping">Ping başarısız olduğunda yeniden başlat (beta)</string>
<string name="mobile_data_tunnel">Mobil veri tüneli olarak ayarla</string>
<string name="set_primary_tunnel">Birincil tünel olarak ayarla</string>
<string name="use_tunnel_on_wifi_name">Wifi adında tünel kullan</string>
<string name="edit_tunnel">Tüneli düzenle</string>
<string name="settings">Ayarlar</string>
<string name="support">Destek</string>
@@ -134,12 +129,10 @@
<string name="monitoring_state_changes">Durum değişikliklerini izleme</string>
<string name="donate">Projeye bağış yap</string>
<string name="local_logging">Yerel günlüğe kaydetme</string>
<string name="enable_local_logging">Yerel günlüğe kaydetmeyi etkinleştir</string>
<string name="add_from_clipboard">Panodan ekle</string>
<string name="stop_on_no_internet">İnternet olmadığında durdur</string>
<string name="stop_on_internet_loss">İnternet kaybında tüneli durdur</string>
<string name="ethernet_tunnel">Ethernet tüneli</string>
<string name="set_ethernet_tunnel">Ethernet tüneli olarak ayarla</string>
<string name="native_kill_switch">Yerel kill switch</string>
<string name="allow_lan_traffic">LAN trafiğine izin ver</string>
<string name="bypass_lan_for_kill_switch">Kill switch için LAN’ı atla</string>
@@ -149,7 +142,6 @@
<string name="auto_tunnel_channel_description">Otomatik tünel durum bildirimleri için bir kanal</string>
<string name="stop">durdur</string>
<string name="splt_tunneling">Bölünmüş tünelleme</string>
<string name="tunnel_specific_settings">Tünele özgü ayarlar</string>
<string name="show_scripts">Komut dosyalarını göster</string>
<string name="pre_up">Ön çalıştırma</string>
<string name="post_up">Sonra çalıştırma</string>
-8
View File
@@ -19,7 +19,6 @@
<string name="email_chooser">Надіслати E-Mail…</string>
<string name="error_root_denied">Root доступ заборонено</string>
<string name="incorrect_pin">Невірний PIN-код</string>
<string name="use_tunnel_on_wifi_name">Використовувати тунель в мережі Wi-Fi</string>
<string name="transport_packet_magic_header">Заголовок транспортного пакету</string>
<string name="getting_started_guide">інструкція щодо початку роботи</string>
<string name="vpn_channel_name">Канал сповіщення VPN</string>
@@ -62,22 +61,18 @@
<string name="error_no_file_explorer">Не знайдено файловий менеджер</string>
<string name="auto_tunnel_title">Сервіс автотунелювання</string>
<string name="delete_tunnel">Видалити тунель</string>
<string name="location_services_missing_message">Додаток не знайшов служб місце знаходження на вашому пристрої. На деяких пристроях це може привести до неможливості визначення назви мережі Wi-Fi і помилок функції недовірених Wi-Fi мереж. Все рівно хочете продовжити?</string>
<string name="delete_tunnel_message">Ви дійсно хочете видалити цей тунель?</string>
<string name="yes">Так</string>
<string name="auto">(авто)</string>
<string name="all">всі</string>
<string name="no_email_detected">Програми для надсилання email не знайдено</string>
<string name="open_issue">Повідомити про проблему</string>
<string name="read_logs">Переглянути логи</string>
<string name="no_browser_detected">Веб браузер не знайдено</string>
<string name="pin_created">PIN-код створено успішно</string>
<string name="enter_pin">Введіть PIN-код</string>
<string name="create_pin">Створити PINhкод</string>
<string name="enable_app_lock">Увімкнути блокування додатку</string>
<string name="edit_tunnel">Редагувати тунель</string>
<string name="restart_on_ping">Перезапуск при помилці ping (бета)</string>
<string name="mobile_data_tunnel">Встановити як тунель для мобільних даних</string>
<string name="set_primary_tunnel">Встановити як основний тунель</string>
<string name="support">Підтримка</string>
<string name="settings">Налаштування</string>
@@ -150,11 +145,8 @@
<string name="local_logging">Локальне ведення журналу</string>
<string name="start_auto">Запустити автотунель</string>
<string name="stop_auto">Зупинити автотунель</string>
<string name="enable_local_logging">Увімкнути ведення журналу</string>
<string name="stop_on_internet_loss">Зупинити тунель під час втрати інтернету</string>
<string name="ethernet_tunnel">Тунель для Ethernet</string>
<string name="set_ethernet_tunnel">Призначити як тунель для Ethernet</string>
<string name="tunnel_specific_settings">Спеціальні налаштування тунелю</string>
<string name="vpn_channel_description">Канал сповіщень про стан VPN</string>
<string name="enable_amnezia_compatibility">Включити сумісність із Amnezia</string>
<string name="multiple">Декілька</string>
-14
View File
@@ -8,7 +8,6 @@
<string name="copy_public_key">عوامی کلید نقل کریں</string>
<string name="vpn_channel_name">وی پی این نوٹیفکیشن چینل</string>
<string name="optional">(اختیاری)</string>
<string name="location_services_missing_message">ایپ آپ کے آلے پر فعال مقام کی سروسز کا پتہ نہیں لگا رہی۔ ڈیوائس پر منحصر ہے، یہ غیر بھروسہ مند وائی فائی فیچر کے وائی فائی کا نام پڑھنے میں ناکام ہونے کا سبب بن سکتا ہے۔ کیا آپ بہرحال جاری رکھنا چاہیں گے؟</string>
<string name="prominent_background_location_title">پس منظر لوکیشن کا انکشاف</string>
<string name="public_key">عوامی کلید</string>
<string name="app_name">ڈبلیو جی ٹنل</string>
@@ -56,12 +55,10 @@
<string name="no_email_detected">کوئی ای میل ایپ نہیں ملی</string>
<string name="no_browser_detected">کوئی براؤزر نہیں ملا</string>
<string name="open_issue">ایک مسئلہ کھولیں</string>
<string name="read_logs">لاگز پڑھیں</string>
<string name="auto">(خودکار)</string>
<string name="incorrect_pin">پن غلط ہے</string>
<string name="pin_created">پن کامیابی کے ساتھ بن گیا</string>
<string name="create_pin">پن بنائیں</string>
<string name="restart_on_ping">پنگ فیل پر دوبارہ شروع کریں (بی ٹا)</string>
<string name="set_primary_tunnel">بنیادی ٹنل کے طور پر سیٹ کریں</string>
<string name="junk_packet_count">جنک پیکٹ کی تعداد</string>
<string name="init_packet_junk_size">اِنِٹ پیکٹ جنک سائز</string>
@@ -88,12 +85,10 @@
<string name="start_auto">خودکار ٹنل چلائیں</string>
<string name="donate">پروجیکٹ کے لیے عطیہ کریں</string>
<string name="local_logging">مقامی لاگنگ</string>
<string name="enable_local_logging">مقامی لاگنگ فعال کریں</string>
<string name="stop_on_no_internet">بغیر انٹرنیٹ پر روکیں</string>
<string name="stop_on_internet_loss">انٹرنیٹ لاس پر ٹنل روکیں</string>
<string name="allow_lan_traffic">لین ٹریفک کی اجازت دیں</string>
<string name="splt_tunneling">سپلٹ ٹنلنگ</string>
<string name="tunnel_specific_settings">ٹنل کی مخصوص ترتیبات</string>
<string name="show_scripts">اسکرپٹس دکھائیں</string>
<string name="pre_up">پری اپ</string>
<string name="post_up">پوسٹ اپ</string>
@@ -118,7 +113,6 @@
<string name="persistent_keepalive">مسلسل زندہ</string>
<string name="remove_amnezia_compatibility">ایمنیزیا مطابقت ہٹائیں</string>
<string name="light">روشن</string>
<string name="set_ethernet_tunnel">بطور ایتھرنیٹ ٹنل کے سیٹ کریں</string>
<string name="launch_app_settings">ایپ ترتیبات لانچ کریں</string>
<string name="monitoring_state_changes">ریاستی تبدیلیوں کی نگرانی</string>
<string name="enter_pin">پن درج کریں</string>
@@ -126,11 +120,9 @@
<string name="handshake">ہینڈشیک</string>
<string name="response_packet_magic_header">رسپانس پیکٹ میجک ہیڈر</string>
<string name="unsure_how">اگر آپ کو یقین نہیں کہ کیسے آگے بڑھیں</string>
<string name="use_tunnel_on_wifi_name">وائی فائی نام پر ٹنل استعمال کریں</string>
<string name="use_root_shell_for_wifi">وائی فائی کی معلومات حاصل کرنے کے لیے روٹ شیل کا استعمال کریں، مقام کی اجازت کی ضرورت کو روکتے ہوئے</string>
<string name="response_packet_junk_size">رسپانس پیکٹ جنک سائز</string>
<string name="junk_packet_minimum_size">جنک پیکٹ کا کم از کم سائز</string>
<string name="mobile_data_tunnel">موبائل ڈیٹا ٹنل کے طور پر سیٹ کریں</string>
<string name="edit_tunnel">ٹنل میں ترمیم کریں</string>
<string name="enable_app_lock">ایپ لاک فعال کریں</string>
<string name="logs">لاگز</string>
@@ -180,7 +172,6 @@
<string name="camera_permission_required">کیمرے کی اجازت درکار ہے</string>
<string name="export_failed">برآمد ناکام</string>
<string name="tunnel_error_template">ٹنل اس کے ساتھ ناکام ہوگئی: %1$s</string>
<string name="wifi_name_template">فعال: %1$s</string>
<string name="config_error">غلط ترتیب</string>
<string name="dns_resolve_error">ڈی این ایس ریزولوشن ناکام</string>
<string name="auth_error">غیر مجاز</string>
@@ -209,7 +200,6 @@
<string name="latest_installed">آپ پہلے ہی تازہ ترین ورژن چلا رہے ہیں۔</string>
<string name="darker">بہت گہرا</string>
<string name="amoled">ایمولیڈ</string>
<string name="security_template">سیکیورٹی: %1$s</string>
<string name="update_check_unsupported">اس قسم کی تعمیر کے لیے تازہ کاری معائنہ تعاون یافتہ نہیں ہے۔</string>
<string name="flavor_template">ذائقہ: %1$s</string>
<string name="show_qr">کیو آر دکھائیں</string>
@@ -255,9 +245,6 @@
<string name="ping_timeout">ٹنل پنگ ٹائم آؤٹ</string>
<string name="timeout_all_attempts">تمام کوششوں کے لیے کل ٹائم آؤٹ</string>
<string name="display_detailed_ping_stats">پِنگ کے تفصیلی اعدادوشمار دکھائیں</string>
<string name="monitoring_ping">پِنگ ٹنل مانیٹرنگ کو فعال کریں</string>
<string name="rx_template">آر ایکس: %1$s ایم بی</string>
<string name="tx_template">ٹی ایکس: %1$s ایم بی</string>
<string name="reachable_template">قابل رسائی: %1$s</string>
<string name="ping_success_template">آخری کامیاب پِنگ: %1$s</string>
<string name="sec_ago_template">%1$s سیکنڈ پہلے</string>
@@ -303,7 +290,6 @@
<string name="comma_separated">کوما الگ شدہ</string>
<string name="server_port">سرور:پورٹ</string>
<string name="new_tunnel">نئی ٹنل</string>
<string name="system_features">سسٹم کی خصوصیات</string>
<string name="read_failed">ڈیٹا پڑھنے میں ناکام۔</string>
<string name="invalid_key">غلط کلید</string>
<string name="invalid_number">غلط نمبر</string>
@@ -56,12 +56,10 @@
<string name="auto_tunnel_title">自动隧道服务</string>
<string name="delete_tunnel">删除隧道</string>
<string name="delete_tunnel_message">确定删除这个隧道吗?</string>
<string name="location_services_missing_message">此应用不会在您的设备上检测任何已开启的定位服务。根据不同的设备,可能会导致无法获得不可信 WiFi 的名称。您想继续吗?</string>
<string name="yes"></string>
<string name="all">全部</string>
<string name="no_email_detected">未安装邮件应用</string>
<string name="enable_app_lock">锁定应用</string>
<string name="use_tunnel_on_wifi_name">在指定的 WiFi 上使用此隧道</string>
<string name="settings">设置</string>
<string name="support">支持</string>
<string name="kernel">内核</string>
@@ -74,20 +72,17 @@
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_name">VPN 通知频道</string>
<string name="open_issue">查看问题</string>
<string name="read_logs">查看日志</string>
<string name="auto">(自动)</string>
<string name="pin_created">创建密码成功</string>
<string name="enter_pin">输入 PIN 码</string>
<string name="create_pin">创建 PIN 码</string>
<string name="set_primary_tunnel">设置为主隧道</string>
<string name="mobile_data_tunnel">允许使用数据流量</string>
<string name="init_packet_junk_size">初始化无效包大小</string>
<string name="junk_packet_maximum_size">无效包最大值</string>
<string name="response_packet_magic_header">响应包的 magic header</string>
<string name="response_packet_junk_size">无效的响应包大小</string>
<string name="vpn_denied_dialog_title">拒绝访问</string>
<string name="logs">日志</string>
<string name="restart_on_ping">Ping 失败之后自动重启隧道(beta)</string>
<string name="edit_tunnel">编辑隧道</string>
<string name="init_packet_magic_header">初始化数据包的 magic header</string>
<string name="always_on_message">VPN 连接被拒绝,请检查</string>
@@ -127,14 +122,12 @@
<string name="tunnel_running">隧道运行中</string>
<string name="donate">捐赠</string>
<string name="local_logging">日志</string>
<string name="enable_local_logging">开启本地日志</string>
<string name="stop_on_no_internet">无网络时停用</string>
<string name="stop_on_internet_loss">网络丢失时停止隧道</string>
<string name="bypass_lan_for_kill_switch">绕过局域网流量</string>
<string name="auto_tunnel_channel_name">自动隧道通知频道</string>
<string name="auto_tunnel_channel_description">自动隧道状态通知频道</string>
<string name="stop">停止</string>
<string name="tunnel_specific_settings">隧道特殊设置</string>
<string name="splt_tunneling">隧道分流</string>
<string name="show_scripts">显示脚本</string>
<string name="pre_up">启动前</string>
@@ -153,7 +146,6 @@
<string name="tunnel_control">隧道控制</string>
<string name="auto_tunnel">自动隧道</string>
<string name="ethernet_tunnel">以太网隧道</string>
<string name="set_ethernet_tunnel">设置为以太网隧道</string>
<string name="native_kill_switch">系统 VPN 开关</string>
<string name="allow_lan_traffic">允许局域网流量</string>
<string name="vpn_channel_description">VPN 状态通知频道</string>
@@ -186,7 +178,6 @@
<string name="tunnel_starting">隧道启动中</string>
<string name="enable_remote_app_control">开启远程应用控制</string>
<string name="join_matrix">加入 Matrix 社区</string>
<string name="wifi_name_template">活跃:%1$s</string>
<string name="app_permission_description">控制隧道和自动隧道功能.</string>
<string name="app_permission_title">WG 隧道控制桥</string>
<string name="inactive">不活跃</string>
@@ -209,7 +200,6 @@
<string name="allow">允许</string>
<string name="update_check_unsupported">更新检查不支持此构建类型。</string>
<string name="flavor_template">版本架构:%1$s</string>
<string name="security_template">安全性:%1$s</string>
<string name="darker">颜色更深</string>
<string name="amoled">AMOLED</string>
<string name="show_qr">显示二维码</string>
@@ -255,9 +245,6 @@
<string name="ping_timeout">隧道 ping 超时</string>
<string name="timeout_all_attempts">所有 ping 尝试的总超时</string>
<string name="display_detailed_ping_stats">展示详细的 ping 数据</string>
<string name="monitoring_ping">启用隧道 ping 监控</string>
<string name="rx_template">已接受:%1$s MB</string>
<string name="tx_template">已传输:%1$s MB</string>
<string name="reachable_template">可抵达:%1$s</string>
<string name="ping_success_template">上次成功的 ping 操作:%1$s</string>
<string name="sec_ago_template">%1$s 秒前</string>
@@ -303,7 +290,6 @@
<string name="comma_separated">英文逗号分隔</string>
<string name="server_port">服务器:端口</string>
<string name="new_tunnel">新隧道</string>
<string name="system_features">系统特性</string>
<string name="read_failed">读取数据失败。</string>
<string name="invalid_key">无效密钥</string>
<string name="invalid_number">无效数字</string>
+1 -13
View File
@@ -82,9 +82,7 @@
<string name="error_no_file_explorer">未安裝任何檔案管理器</string>
<string name="unsure_how">如果您不確定如何進行</string>
<string name="see_the">請參閱</string>
<string name="read_logs">查看日誌</string>
<string name="local_logging">日誌</string>
<string name="enable_local_logging">啟用本地日誌記錄</string>
<string name="email_description">給作者寄電子郵件</string>
<string name="always_on_vpn_support">允許永久連線的 VPN</string>
<string name="vpn_on">VPN 已開啟</string>
@@ -121,12 +119,10 @@
<string name="multiple">多個</string>
<string name="export_tunnels_amnezia">將隧道匯出為 Amnezia</string>
<string name="export_tunnels_wireguard">將隧道匯出為 WireGuard</string>
<string name="wifi_name_template">使用中: %1$s</string>
<string name="inactive">未使用</string>
<string name="trusted_wifi_names">信任的 WiFi SSID</string>
<string name="auto_tunnel">自動隧道管理</string>
<string name="auto_tunnel_title">自動隧道管理服務</string>
<string name="restart_on_ping">Ping 失敗後重新啟動隧道 (beta)</string>
<string name="select_all">全選</string>
<string name="start_auto">開始自動隧道管理</string>
<string name="auto_tunneling">自動隧道管理</string>
@@ -138,7 +134,6 @@
<string name="monitoring_state_changes">監控狀態變化</string>
<string name="use_root_shell_for_wifi">透過 root 權限取得 Wi-Fi 資訊,避免需要位置存取權</string>
<string name="splt_tunneling">隧道拆分</string>
<string name="tunnel_specific_settings">隧道個別設定</string>
<string name="use_wildcards">SSID 使用萬用字元</string>
<string name="allow">允許</string>
<string name="check_for_update">檢查更新</string>
@@ -185,7 +180,6 @@
<string name="config_error">無效組態</string>
<string name="remote_key_template">金鑰: %1$s</string>
<string name="flavor_template">風格: %1$s</string>
<string name="security_template">安全性: %1$s</string>
<string name="amnezia">Amnezia</string>
<string name="wireguard">WireGuard</string>
<string name="done">完成</string>
@@ -209,8 +203,6 @@
<string name="sort">排序</string>
<string name="latency_template">延遲: %1$s</string>
<string name="jitter_template">抖動: %1$s</string>
<string name="tx_template">已傳輸: %1$s MB</string>
<string name="rx_template">已接收: %1$s MB</string>
<string name="warning">警告</string>
<string name="ip_or_hostname">IP 或主機名稱</string>
<string name="sec_ago_template">%1$s 秒前</string>
@@ -239,7 +231,6 @@
<string name="ping_target_template">Ping 目標: %1$s</string>
<string name="reachable_template">可抵達: %1$s</string>
<string name="tunnel_monitoring">隧道監控</string>
<string name="monitoring_ping">啟用隧道 ping 監控</string>
<string name="ping_timeout">隧道 ping 逾時</string>
<string name="tunnel_ping_interval">隧道 ping 間隔</string>
<string name="attempts_per_interval">每一間隔的 ping 嘗試次數</string>
@@ -255,10 +246,7 @@
<string name="tunnel_on_ethernet">乙太網路上的隧道</string>
<string name="prominent_background_location_title">背景定位披露</string>
<string name="tunnel_on_wifi">不受信任 Wi-Fi 上的隧道</string>
<string name="mobile_data_tunnel">設為行動數據隧道</string>
<string name="use_tunnel_on_wifi_name">在指定 Wi-Fi 名稱上使用隧道</string>
<string name="mobile_tunnel">行動數據隧道</string>
<string name="skip">略過</string>
<string name="ethernet_tunnel">乙太網路隧道</string>
<string name="set_ethernet_tunnel">設為乙太網路隧道</string>
</resources>
</resources>
+8 -14
View File
@@ -70,7 +70,6 @@
<string name="error_ssid_exists">SSID already exists</string>
<string name="error_root_denied">Root shell denied</string>
<string name="error_no_file_explorer">No file explorer installed</string>
<string name="location_services_missing_message">The app is not detecting any location services enabled on your device. Depending on the device, this could cause the untrusted wifi feature to fail to read the wifi name. Would you like to continue anyways?</string>
<string name="auto_tunnel_title">Auto-tunnel service</string>
<string name="delete_tunnel">Delete tunnel</string>
<string name="delete_tunnel_message">Are you sure you would like to delete the selected tunnels?</string>
@@ -79,17 +78,13 @@
<string name="no_email_detected">No email app detected</string>
<string name="no_browser_detected">No browser detected</string>
<string name="open_issue">Open an issue</string>
<string name="read_logs">Read the logs</string>
<string name="auto">(Auto)</string>
<string name="incorrect_pin">Pin is incorrect</string>
<string name="pin_created">Pin successfully created</string>
<string name="enter_pin">Enter PIN</string>
<string name="create_pin">Create PIN</string>
<string name="enable_app_lock">Enable app lock</string>
<string name="restart_on_ping">Restart on ping fail (beta)</string>
<string name="mobile_data_tunnel">Set as mobile data tunnel</string>
<string name="set_primary_tunnel">Tunnel used when no preferred tunnel is configured</string>
<string name="use_tunnel_on_wifi_name">Use tunnel on wifi name</string>
<string name="edit_tunnel">Edit tunnel</string>
<string name="settings">Settings</string>
<string name="support">Support</string>
@@ -140,12 +135,10 @@
<string name="monitoring_state_changes">Monitoring state changes</string>
<string name="donate">Donate to project</string>
<string name="local_logging">Local logs monitor</string>
<string name="enable_local_logging">Enable local logging</string>
<string name="add_from_clipboard">Add from clipboard</string>
<string name="stop_on_no_internet">Stop on no internet</string>
<string name="stop_on_internet_loss">Stop tunnel on internet loss</string>
<string name="ethernet_tunnel">Ethernet tunnel</string>
<string name="set_ethernet_tunnel">Set as ethernet tunnel</string>
<string name="native_kill_switch">Native kill switch</string>
<string name="allow_lan_traffic">Allow LAN traffic</string>
<string name="bypass_lan_for_kill_switch">Bypass LAN for kill switch</string>
@@ -155,7 +148,6 @@
<string name="auto_tunnel_channel_description">A channel for auto-tunnel state notifications</string>
<string name="stop">Stop</string>
<string name="splt_tunneling">Split tunneling</string>
<string name="tunnel_specific_settings">Tunnel specific settings</string>
<string name="show_scripts">Show scripts</string>
<string name="pre_up">Pre up</string>
<string name="post_up">Post up</string>
@@ -192,10 +184,8 @@
<string name="camera_permission_required">Camera permission required</string>
<string name="export_failed">Export failed</string>
<string name="tunnel_error_template">Tunnel failed with: %1$s</string>
<string name="wifi_name_template">Active: %1$s</string>
<string name="remote_key_template">Key: %1$s</string>
<string name="version_template">Version: %1$s</string>
<string name="security_template">Security: %1$s</string>
<string name="current_template">Current: %1$s</string>
<string name="flavor_template">Flavor: %1$s</string>
<string name="expiremental_template">%1$s (experimental)</string>
@@ -280,9 +270,6 @@
<string name="ping_timeout">Tunnel ping timeout</string>
<string name="timeout_all_attempts">Total timeout for all attempts</string>
<string name="display_detailed_ping_stats">Display detailed ping stats</string>
<string name="monitoring_ping">Enable ping tunnel monitoring</string>
<string name="rx_template">"RX: %1$s MB"</string>
<string name="tx_template">"TX: %1$s MB"</string>
<string name="reachable_template">Reachable: %1$s</string>
<string name="ping_success_template">Last successful ping: %1$s</string>
<string name="sec_ago_template">%1$s seconds ago</string>
@@ -324,7 +311,6 @@
<string name="comma_separated">Comma separated</string>
<string name="server_port">Server:Port</string>
<string name="new_tunnel">New tunnel</string>
<string name="system_features">System features</string>
<string name="read_failed">Failed to read data.</string>
<string name="invalid_key">Invalid key</string>
<string name="invalid_number">Invalid number</string>
@@ -411,4 +397,12 @@
<string name="backup_and_restore">Backup and restore</string>
<string name="ping_target">Ping target</string>
<string name="set_ping_target">Set ping target</string>
<string name="mobile_data">Mobile data</string>
<string name="ethernet">Ethernet</string>
<string name="unknown">Unknown</string>
<string name="no_network">No network connected</string>
<string name="active_network">Active Network:&#160;</string>
<string name="security_type">Security:&#160;</string>
<string name="network_name">Network:&#160;</string>
<string name="wifi">Wi-Fi</string>
</resources>
+1 -1
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<paths>
<files-path name="files" path="." />
<external-path name="external_files" path="." />
<external-files-path name="apks" path="/" />