feat: improve empty tunnel screen, logging screen

This commit is contained in:
zaneschepke
2026-06-05 00:47:41 -04:00
parent 1af404329a
commit 89435dc648
63 changed files with 275 additions and 325 deletions
+1
View File
@@ -224,6 +224,7 @@ dependencies {
// UI utilities
implementation(libs.bundles.ui.utilities)
implementation(libs.lottie.compose)
// Misc utilities
implementation(libs.bundles.misc.utilities)
@@ -95,8 +95,8 @@ import com.zaneschepke.wireguardautotunnel.ui.screens.settings.dns.DnsSettingsSc
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.globals.TunnelGlobalsScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.integrations.AndroidIntegrationsScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.lockdown.LockdownSettingsScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.logs.LogsScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.MonitoringScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.logs.LogsScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.security.SecurityScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.support.SupportScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.support.donate.DonateScreen
@@ -0,0 +1,49 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.components
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.compose.LottieCompositionSpec
import com.airbnb.lottie.compose.LottieConstants
import com.airbnb.lottie.compose.animateLottieCompositionAsState
import com.airbnb.lottie.compose.rememberLottieComposition
import com.zaneschepke.wireguardautotunnel.R
@Composable
fun EmptyStateLottie(
message: String,
modifier: Modifier = Modifier,
lottieResId: Int = R.raw.nothing_here,
) {
val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(lottieResId))
val progress by
animateLottieCompositionAsState(
composition = composition,
iterations = LottieConstants.IterateForever,
)
Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = modifier) {
LottieAnimation(
composition = composition,
progress = { progress },
modifier = Modifier.size(240.dp),
)
Spacer(modifier = Modifier.height(24.dp))
Text(
text = message,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurface,
)
}
}
@@ -367,11 +367,13 @@ fun currentRouteAsNavbarState(
stringResource(R.string.add_tunnel),
)
}
IconButton(onClick = { navController.push(Sort) }) {
Icon(
Icons.AutoMirrored.Rounded.Sort,
stringResource(R.string.sort),
)
if (globalState.tunnelNames.size > 1) {
IconButton(onClick = { navController.push(Sort) }) {
Icon(
Icons.AutoMirrored.Rounded.Sort,
stringResource(R.string.sort),
)
}
}
}
else ->
@@ -1,10 +1,7 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.logs
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.logs
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.lazy.rememberLazyListState
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
@@ -13,13 +10,12 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontStyle
import com.zaneschepke.wireguardautotunnel.R
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.logs.components.LogList
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.logs.components.LogsBottomSheet
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.logs.components.LogList
import com.zaneschepke.wireguardautotunnel.ui.screens.settings.logs.components.LogsBottomSheet
import com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.components.EmptyStateLottie
import com.zaneschepke.wireguardautotunnel.ui.sideeffect.LocalSideEffect
import com.zaneschepke.wireguardautotunnel.util.StringValue
import com.zaneschepke.wireguardautotunnel.viewmodel.LoggerViewModel
@@ -36,6 +32,8 @@ fun LogsScreen(
) {
val loggerState by viewModel.collectAsState()
if (loggerState.isLoading) return
val lazyColumnListState = rememberLazyListState()
var isAutoScrolling by rememberSaveable { mutableStateOf(true) }
var lastScrollPosition by rememberSaveable { mutableIntStateOf(0) }
@@ -103,14 +101,8 @@ fun LogsScreen(
}
if (loggerState.messages.isEmpty()) {
return Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Text(
text = stringResource(R.string.nothing_here_yet),
fontStyle = FontStyle.Italic,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurface,
)
}
EmptyStateLottie(message = stringResource(R.string.no_tunnels_yet))
return
}
LogList(
@@ -0,0 +1,100 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.logs.components
import androidx.compose.foundation.clickable
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.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.zaneschepke.logcatter.model.LogMessage
import com.zaneschepke.wireguardautotunnel.ui.common.functions.rememberClipboardHelper
import com.zaneschepke.wireguardautotunnel.ui.common.text.LogTypeLabel
import java.time.Instant
import java.time.ZoneId
import java.time.format.DateTimeFormatter
private val timeFormatter =
DateTimeFormatter.ofPattern("MM-dd HH:mm:ss.SSS").withZone(ZoneId.systemDefault())
@Composable
fun LogItem(log: LogMessage) {
val clipboardManager = rememberClipboardHelper()
Column(
modifier =
Modifier.fillMaxWidth()
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
onClick = { clipboardManager.copy(log.toString()) },
)
.padding(vertical = 6.dp, horizontal = 4.dp)
) {
// Top row: Time + Level + Tag
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(8.dp),
modifier = Modifier.fillMaxWidth(),
) {
// Timestamp
Text(
text = formatLogTime(log.time),
fontSize = 10.sp,
fontFamily = FontFamily.Monospace,
color = Color.Gray,
)
// Log Level
LogTypeLabel(color = Color(log.level.color())) {
Text(
text = log.level.signifier,
fontSize = 10.sp,
fontFamily = FontFamily.Monospace,
)
}
// Tag (truncated if too long)
Text(
text = log.tag,
fontSize = 10.sp,
fontFamily = FontFamily.Monospace,
color = MaterialTheme.colorScheme.primary,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
modifier = Modifier.weight(1f),
)
}
// Message - full width + wrapping
Text(
text = log.message,
fontSize = 12.sp,
fontFamily = FontFamily.Monospace,
lineHeight = 16.sp,
maxLines = 4,
overflow = TextOverflow.Ellipsis,
modifier = Modifier.fillMaxWidth().padding(top = 2.dp),
)
}
}
private fun formatLogTime(timeString: String): String {
return try {
val instant = Instant.parse(timeString)
timeFormatter.format(instant)
} catch (e: Exception) {
timeString.takeLast(12)
}
}
@@ -1,4 +1,4 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.logs.components
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.logs.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.padding
@@ -6,7 +6,6 @@ import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.zaneschepke.logcatter.model.LogMessage
@@ -18,15 +17,10 @@ fun LogList(
modifier: Modifier = Modifier,
) {
LazyColumn(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(16.dp, Alignment.Top),
state = lazyColumnListState,
modifier = modifier.padding(horizontal = 16.dp),
modifier = modifier.padding(horizontal = 12.dp),
verticalArrangement = Arrangement.spacedBy(2.dp),
) {
itemsIndexed(items = logs, key = { index, _ -> index }, contentType = { _, _ -> null }) {
_,
log ->
LogItem(log = log)
}
itemsIndexed(items = logs, key = { index, _ -> index }) { _, log -> LogItem(log = log) }
}
}
@@ -1,4 +1,4 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.logs.components
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.logs.components
import android.net.Uri
import androidx.compose.material.icons.Icons
@@ -1,43 +0,0 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.settings.monitoring.logs.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.zaneschepke.logcatter.model.LogMessage
import com.zaneschepke.wireguardautotunnel.ui.common.functions.rememberClipboardHelper
import com.zaneschepke.wireguardautotunnel.ui.common.text.LogTypeLabel
@Composable
fun LogItem(log: LogMessage) {
val clipboardManager = rememberClipboardHelper()
val fontSize = 10.sp
Row(
horizontalArrangement = Arrangement.spacedBy(5.dp, Alignment.Start),
verticalAlignment = Alignment.Top,
modifier =
Modifier.fillMaxSize()
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
onClick = { clipboardManager.copy(log.toString()) },
),
) {
Text(text = log.tag, modifier = Modifier.fillMaxSize(0.3f), fontSize = fontSize)
LogTypeLabel(color = Color(log.level.color())) {
Text(text = log.level.signifier, textAlign = TextAlign.Center, fontSize = fontSize)
}
Text(text = "${log.message} - ${log.time}", fontSize = fontSize)
}
}
@@ -1,60 +0,0 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.components
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.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.LinkAnnotation
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextLinkStyles
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.withLink
import androidx.compose.ui.unit.dp
import com.zaneschepke.wireguardautotunnel.R
@Composable
fun GettingStartedLabel(onClick: (url: String) -> Unit, modifier: Modifier = Modifier) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
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(" ")
withLink(
LinkAnnotation.Clickable(
tag = "gettingStarted",
styles =
TextLinkStyles(style = SpanStyle(color = MaterialTheme.colorScheme.primary)),
) {
onClick(url)
}
) {
append(stringResource(id = R.string.getting_started_guide))
}
append(" ")
append(stringResource(R.string.unsure_how))
append(".")
}
Text(text = stringResource(R.string.no_tunnels), fontStyle = FontStyle.Italic)
Text(
modifier = Modifier.padding(vertical = 10.dp, horizontal = 24.dp),
text = gettingStarted,
style =
MaterialTheme.typography.bodyMedium.copy(
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Center,
),
)
}
}
@@ -0,0 +1,74 @@
package com.zaneschepke.wireguardautotunnel.ui.screens.tunnels.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
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.LinkAnnotation
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextLinkStyles
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.withLink
import androidx.compose.ui.unit.dp
import com.zaneschepke.wireguardautotunnel.R
@Composable
fun GettingStartedSection(onClick: (url: String) -> Unit, modifier: Modifier = Modifier) {
val url = stringResource(id = R.string.docs_url)
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
modifier = modifier.padding(horizontal = 40.dp).fillMaxSize(),
) {
// Reusable empty state visual + main message
EmptyStateLottie(message = stringResource(R.string.no_tunnels_yet))
Spacer(modifier = Modifier.height(16.dp))
// Guidance text with link (specific to this screen)
val fullText = stringResource(R.string.getting_started_guidance)
val linkPhrase = stringResource(R.string.getting_started_guide_link)
val guidance = buildAnnotatedString {
val startIndex = fullText.indexOf(linkPhrase)
if (startIndex >= 0) {
append(fullText.substring(0, startIndex))
withLink(
LinkAnnotation.Clickable(
tag = "gettingStarted",
styles =
TextLinkStyles(
style = SpanStyle(color = MaterialTheme.colorScheme.primary)
),
) {
onClick(url)
}
) {
append(linkPhrase)
}
append(fullText.substring(startIndex + linkPhrase.length))
} else {
append(fullText)
}
}
Text(
text = guidance,
style =
MaterialTheme.typography.bodyMedium.copy(
color = MaterialTheme.colorScheme.onSurfaceVariant
),
textAlign = TextAlign.Center,
)
}
}
@@ -74,7 +74,7 @@ fun TunnelList(
) {
if (uiState.tunnels.isEmpty()) {
item {
GettingStartedLabel(
GettingStartedSection(
onClick = { context.openWebUrl(it) },
modifier = Modifier.animateItem(),
)
@@ -6,4 +6,5 @@ import com.zaneschepke.wireguardautotunnel.domain.model.MonitoringSettings
data class LoggerUiState(
val messages: List<LogMessage> = emptyList(),
val monitoringSettings: MonitoringSettings = MonitoringSettings(),
val isLoading: Boolean = true,
)
@@ -13,7 +13,9 @@ import com.zaneschepke.wireguardautotunnel.util.FileUtils
import com.zaneschepke.wireguardautotunnel.util.StringValue
import com.zaneschepke.wireguardautotunnel.util.extensions.toUserFriendlyTimestamp
import java.time.Instant
import kotlin.time.Duration.Companion.milliseconds
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.delay
import org.orbitmvi.orbit.ContainerHost
import org.orbitmvi.orbit.viewmodel.container
import timber.log.Timber
@@ -38,11 +40,18 @@ class LoggerViewModel(
state.messages.toMutableList().apply {
if (size >= MAX_LOG_SIZE) removeAt(0)
add(logMessage)
}
},
isLoading = false,
)
}
}
}
intent {
delay(300.milliseconds)
if (state.isLoading) {
reduce { state.copy(isLoading = false) }
}
}
}
suspend fun postSideEffect(globalSideEffect: GlobalSideEffect) {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_channel_background"/>
<foreground android:drawable="@mipmap/ic_channel_foreground"/>
</adaptive-icon>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

File diff suppressed because one or more lines are too long
-5
View File
@@ -126,7 +126,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -158,12 +157,10 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -208,7 +205,6 @@
<string name="public_key">Public key</string>
<string name="show_scripts">Show scripts</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="monitoring">Monitoring</string>
<string name="app_permission_title">WG Tunnel Control Bridge</string>
<string name="rotate_keys">Rotate keys</string>
@@ -245,7 +241,6 @@
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="no_tunnels">Žádné tunely ještě nebyly přidány!</string>
<string name="tunnel_mobile_data">Tunelovat na mobilních datech</string>
<string name="privacy_policy">Zásady soukromí</string>
<string name="okay">OK</string>
@@ -41,9 +40,6 @@
<string name="junk_packet_maximum_size">Junk packet maximální velikost</string>
<string name="init_packet_junk_size">Init packet junk velikost</string>
<string name="response_packet_junk_size">Response packet junk velikost</string>
<string name="unsure_how">pokud si nejste jisti, jak postupovat</string>
<string name="see_the">Podívejte se na</string>
<string name="getting_started_guide">začátečnickou příručku</string>
<string name="error_file_extension">Soubor není ve formátu .conf nebo .zip</string>
<string name="tunnel_on_ethernet">Tunelovat na ethernetu</string>
<string name="prominent_background_location_message">Tato funkce vyžaduje oprávnění pro přístup k poloze na pozadí pro zapnutí monitorování Wi-Fi SSID, i když je aplikace zavřená. Pro více detailů, podívejte se prosím na zásady soukromí umístěné v kategorii Podpora.</string>
@@ -149,7 +145,6 @@
<string name="app_permission_title">Ovládání tunelů a funkcí automatického tunelování</string>
<string name="app_permission_description">https://hosted.weblate.org/translate/wg-tunnel/strings/en/?checksum=e52d7eb2e28a9a12 Ovládání funkcí tunelu a automatického tunelování.</string>
<string name="enable_remote_app_control">Povolit vzdálené ovládání aplikace</string>
<string name="nothing_here_yet">Zatím zde nic není!</string>
<string name="export_success">Export byl úspěšně dokončen</string>
<string name="download">Stáhnout</string>
<string name="check_for_update">Zkontrolovat aktualizaci</string>
-5
View File
@@ -128,7 +128,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -160,12 +159,10 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -210,7 +207,6 @@
<string name="public_key">Public key</string>
<string name="show_scripts">Show scripts</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="monitoring">Monitoring</string>
<string name="rotate_keys">Rotate keys</string>
<string name="aovpn_description">Allows Android to start tunnels</string>
@@ -246,7 +242,6 @@
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -2,7 +2,6 @@
<resources>
<string name="app_name">WG Tunnel</string>
<string name="error_file_extension">Datei ist keine .conf oder .zip</string>
<string name="no_tunnels">Noch keine Tunnel hinzugefügt!</string>
<string name="tunnels">Tunnel</string>
<string name="tunnel_mobile_data">Tunnel für mobile Daten</string>
<string name="privacy_policy">Datenschutzbestimmungen</string>
@@ -78,11 +77,8 @@
<string name="junk_packet_minimum_size">Junk-Paket minimale Grösse</string>
<string name="response_packet_junk_size">Antwort Junk-Paketgröße</string>
<string name="init_packet_magic_header">Initialpaket magic header</string>
<string name="getting_started_guide">Schnellstartanleitung</string>
<string name="transport_packet_magic_header">Transportpaket magic header</string>
<string name="underload_packet_magic_header">Unterlastpaket magic header</string>
<string name="see_the">wirf einen Blick in die</string>
<string name="unsure_how">Wenn du nicht sicher bist, wie du weiterverfahren sollst</string>
<string name="response_packet_magic_header">Antwortpaket magic header</string>
<string name="restart_at_boot">Beim Hochfahren starten</string>
<string name="vpn_settings">VPN-Systemeinstellungen</string>
@@ -163,7 +159,6 @@
<string name="dns_resolve_error">DNS-Auflösung fehlgeschlagen</string>
<string name="camera_permission_required">Kameraberechtigung erforderlich</string>
<string name="delete">Löschen</string>
<string name="nothing_here_yet">Noch nix hier!</string>
<string name="select_all">Alles auswählen</string>
<string name="version_template">Version: %1$s</string>
<string name="export_success">Export Erfolg</string>
-5
View File
@@ -21,7 +21,6 @@
<string name="addresses">Direcciones</string>
<string name="public_key">Clave pública</string>
<string name="error_file_extension">No es un archivo .conf o .zip</string>
<string name="no_tunnels">¡Ningún túnel añadido aún!</string>
<string name="tunnels">Túneles</string>
<string name="tunnel_mobile_data">Activar túnel en datos móviles</string>
<string name="privacy_policy">Política de privacidad</string>
@@ -78,14 +77,11 @@
<string name="show_amnezia_properties">Mostrar propiedades de Amnezia</string>
<string name="never">Nunca</string>
<string name="transport_packet_magic_header">Encabezado del paquete de transporte</string>
<string name="getting_started_guide">Guía de inicio</string>
<string name="always_on_message">Se ha denegado el permiso de conexión VPN. Por favor, compruebe el</string>
<string name="always_on_message2">para asegurarse de que la VPN siempre activa esté desactivada para todas las demás aplicaciones e inténtelo de nuevo</string>
<string name="response_packet_magic_header">Encabezado del paquete de respuesta</string>
<string name="junk_packet_maximum_size">Tamaño máximo de paquetes «ruido»</string>
<string name="init_packet_junk_size">Tamaño de «datos de ruido» añadidos al paquete de inicialización</string>
<string name="unsure_how">Si no estás seguro de cómo proceder</string>
<string name="see_the">Ver la</string>
<string name="vpn_denied_dialog_title">Permiso denegado</string>
<string name="vpn_settings">Configuraciones VPN del sistema</string>
<string name="response_packet_junk_size">Tamaño de «datos ruido» del paquete de respuesta</string>
@@ -183,7 +179,6 @@
<string name="amoled">AMOLED</string>
<string name="show_qr">Mostrar QR</string>
<string name="done">Hecho</string>
<string name="nothing_here_yet">¡No hay nada aquí de momento!</string>
<string name="current_template">Actual: %1$s</string>
<string name="root_required_template">%1$s (se necesita root)</string>
<string name="recommended_template">%1$s (recomendado)</string>
-5
View File
@@ -3,7 +3,6 @@
<string name="app_name">WG Tunnel</string>
<string name="error_file_extension">See pole .conf või .zip fail</string>
<string name="prominent_background_location_message">See funktsionaalsus eeldab, et rakendusel on õigus asukoha ja WiFi SSID taustal tuvastamiseks, seda ka siis, kui rakendus on suletud. Lisateavet leiad Privaatsusreeglite lehelt, leitav Kasutajatoe vaatest.</string>
<string name="no_tunnels">Ühtegi tunnelit pole veel lisatud!</string>
<string name="tunnels">Tunnelid</string>
<string name="tunnel_mobile_data">Loo tunnel mobiilse andmesidega</string>
<string name="privacy_policy">Andmekaitsepõhimõtted</string>
@@ -46,7 +45,6 @@
<string name="permission_required">Õigused on vajalikud</string>
<string name="install_updated_permission">See rakendus vajab uuenduse paigaldamiseks õigusi.</string>
<string name="allow">Luba</string>
<string name="nothing_here_yet">Siin pole veel midagi!</string>
<string name="select_all">Vali kõik</string>
<string name="export_success">Eksportimine õnnestus</string>
<string name="enable_remote_app_control">Luba rakenduse kaugjuhtimine</string>
@@ -132,9 +130,6 @@
<string name="config_error">Vigane seadistus</string>
<string name="auth_error">Pole lubatud</string>
<string name="service_running_error">Teenus ei tööta</string>
<string name="unsure_how">kui ei oska otsustada, mida järgmiseks teha</string>
<string name="see_the">Vaata</string>
<string name="getting_started_guide">esmaste toimingute juhendit</string>
<string name="restart_at_boot">Käivita alglaadimisel</string>
<string name="vpn_denied_dialog_title">Õigusi napib</string>
<string name="never">Mitte kunagi</string>
-5
View File
@@ -3,7 +3,6 @@
<string name="app_permission_title">پل کنترل تونل وایرگاردکنترل تونل‌ها و قابلیت‌های تونل خودکار.</string>
<string name="privacy_policy">مشاهده سیاست حفظ حریم خصوصی</string>
<string name="error_file_extension">فایل .conf یا .zip نیست.</string>
<string name="no_tunnels">هنوز تونلی اضافه نشده!</string>
<string name="tunnels">تونل‌ها</string>
<string name="tunnel_mobile_data">تونل روی داده تلفن همراه</string>
<string name="okay">باشه</string>
@@ -137,7 +136,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -168,12 +166,10 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -248,7 +244,6 @@
<string name="error_ssid_exists">SSID already exists</string>
<string name="splt_tunneling">Split tunneling</string>
<string name="search">Search</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -11,7 +11,6 @@
<string name="dns_servers">DNS-palvelimet</string>
<string name="app_name">WG Tunnel</string>
<string name="delete_tunnel_message">Haluatko varmasti poistaa tämän tunnelin?</string>
<string name="no_tunnels">Ei tunneleita määriteltynä!</string>
<string name="tunnels">Tunnelit</string>
<string name="privacy_policy">Näytä tietosuojakäytäntö</string>
<string name="okay">Okei</string>
@@ -53,9 +52,6 @@
<string name="edit_tunnel">Muokkaa tunnelia</string>
<string name="settings">Asetukset</string>
<string name="support">Tuki</string>
<string name="unsure_how">jos et tiedä, miten jatkaa</string>
<string name="see_the">katso</string>
<string name="getting_started_guide">aloitusopas</string>
<string name="vpn_denied_dialog_title">Ei käyttöoikeutta</string>
<string name="vpn_settings">VPN järjestelmäasetukset</string>
<string name="always_on_message">VPN-yhteyden käyttöoikeus on evätty. Tarkista</string>
@@ -186,7 +182,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="already_donated">Already donated</string>
<string name="kofi">Ko-fi</string>
-5
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="no_tunnels">Aucun tunnel n\'a été ajouté pour le moment!</string>
<string name="tunnels">Tunnels</string>
<string name="tunnel_mobile_data">Tunnel sur données mobiles</string>
<string name="privacy_policy">Politique de Confidentialité</string>
@@ -66,8 +65,6 @@
<string name="response_packet_junk_size">Taille des paquets indésirables en réponse</string>
<string name="init_packet_magic_header">Initialiser l\'en-tête magique</string>
<string name="underload_packet_magic_header">En-tête magique des paquets indésirables de sous-charge</string>
<string name="unsure_how">si vous n\'êtes pas sûr de comment procéder</string>
<string name="see_the">Voir le</string>
<string name="restart_at_boot">Redémarrer au démarrage du système</string>
<string name="vpn_settings">paramètres système des VPN</string>
<string name="root_accepted">Accès au shell root autorisé</string>
@@ -89,7 +86,6 @@
<string name="junk_packet_maximum_size">Taille maximum des paquets indésirables</string>
<string name="response_packet_magic_header">En-tête magique des paquets indésirables de réponse</string>
<string name="transport_packet_magic_header">En-tête magique des paquets indésirables de transport</string>
<string name="getting_started_guide">guide de démarrage rapide</string>
<string name="vpn_denied_dialog_title">Permission Refusée</string>
<string name="always_on_message">Connexion au VPN interdite. Merci de vérifier les</string>
<string name="always_on_message2">afin de s\'assurer que le VPN permanent est désactivé pour toutes les autres applis puis réessayer</string>
@@ -212,7 +208,6 @@
<string name="donate_title">Faire un don</string>
<string name="active_tunnel_update_failed">Échec de la mise à jour du tunnel actif</string>
<string name="start">Commencez</string>
<string name="nothing_here_yet">Il n\'y a encore rien ici!</string>
<string name="mode_disabled_template">Cette fonctionnalité n\'est pas disponible en mode %1$s.</string>
<string name="already_donated">Déjà donné</string>
<string name="kofi">Ko-fi</string>
-5
View File
@@ -127,7 +127,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -159,13 +158,11 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="cookie_packet_junk_size">Cookie packet junk size</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -210,7 +207,6 @@
<string name="public_key">Public key</string>
<string name="show_scripts">Show scripts</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="monitoring">Monitoring</string>
<string name="app_permission_title">Control tunnels and auto-tunnel features.</string>
<string name="rotate_keys">Rotate keys</string>
@@ -247,7 +243,6 @@
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -128,7 +128,6 @@
<string name="response_packet_junk_size">Válaszcsomag szemétmérete</string>
<string name="start">Indítás</string>
<string name="enable_amnezia_compatibility">Amnezia kompatibilitás engedélyezése</string>
<string name="nothing_here_yet">Még nincs itt semmi!</string>
<string name="mode_disabled_template">A funkció nem érhető el %1$s módban.</string>
<string name="dns_servers">DNS szerverek</string>
<string name="support">Támogatás</string>
@@ -160,12 +159,10 @@
<string name="configuration">Konfiguráció</string>
<string name="drag_handle">Húzóka</string>
<string name="global_dns_servers">Globális DNS szerverek</string>
<string name="unsure_how">ha nem biztos a folytatásban</string>
<string name="display_theme">Megjelenítési téma</string>
<string name="contact">Kapcsolat</string>
<string name="ports_must_differ">Sikertelen. A proxyknak különböző portokat kell használniuk.</string>
<string name="notifications">Értesítések</string>
<string name="getting_started_guide">kezdő útmutatót</string>
<string name="join_matrix">Csatlakozás a Matrix közösséghez</string>
<string name="backup_and_restore">Mentés és visszaállítás</string>
<string name="email_description">E-mail küldése nekem</string>
@@ -210,7 +207,6 @@
<string name="public_key">Publikus kulcs</string>
<string name="show_scripts">Szkriptek megjelenítése</string>
<string name="allowed_ips">Engedélyezett IP-címek</string>
<string name="no_tunnels">Még nincsenek hozzáadott alagutak!</string>
<string name="monitoring">Figyelés</string>
<string name="app_permission_title">WG Tunnel Vezérlő Híd.</string>
<string name="rotate_keys">Kulcsok rotálása</string>
@@ -246,7 +242,6 @@
<string name="okay">Ok</string>
<string name="search">Keresés</string>
<string name="error_file_extension">A fájl nem .conf vagy .zip</string>
<string name="see_the">Lásd a</string>
<string name="listen_port">Figyelt port (Listen port)</string>
<string name="auth_error">Nincs jogosultság</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -5,7 +5,6 @@
<string name="init_packet_junk_size">Ukuran sampah paket init</string>
<string name="app_name">WG Tunnel</string>
<string name="error_file_extension">File bukan berformat .conf atau .zip</string>
<string name="no_tunnels">Belum ada terowongan yang ditambahkan!</string>
<string name="tunnels">Terowongan</string>
<string name="tunnel_mobile_data">Terowongan pada data seluler</string>
<string name="privacy_policy">Kebijakan privasi</string>
@@ -54,9 +53,6 @@
<string name="response_packet_magic_header">Header ajaib paket respons</string>
<string name="transport_packet_magic_header">Header ajaib paket transport</string>
<string name="underload_packet_magic_header">Header ajaib paket underload</string>
<string name="unsure_how">jika Anda tidak yakin cara melanjutkan</string>
<string name="see_the">Lihat</string>
<string name="getting_started_guide">panduan memulai</string>
<string name="restart_at_boot">Mulai saat booting</string>
<string name="vpn_denied_dialog_title">Izin Ditolak</string>
<string name="vpn_settings">Pengaturan sistem VPN</string>
@@ -172,7 +168,6 @@
<string name="active_tunnel_update_failed">Pembaruan terowongan aktif gagal</string>
<string name="start">Mulai</string>
<string name="enable_amnezia_compatibility">Aktifkan kompatibilitas Amnezia</string>
<string name="nothing_here_yet">Belum ada apa pun di sini!</string>
<string name="mode_disabled_template">Fitur tidak tersedia dalam mode %1$s.</string>
<string name="dns_servers">Server DNS</string>
<string name="already_donated">Sudah berdonasi</string>
-5
View File
@@ -18,7 +18,6 @@
<string name="email_chooser">Invia una email…</string>
<string name="docs_description">Leggi la documentazione</string>
<string name="email_description">Inviami una email (in inglese)</string>
<string name="no_tunnels">Ancora nessun tunnel aggiunto!</string>
<string name="peer">Peer</string>
<string name="mtu">MTU</string>
<string name="random">(casuale)</string>
@@ -47,7 +46,6 @@
<string name="prominent_background_location_title">Permesso localizzazione in background</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>
<string name="vpn_settings">Impostazioni sistema VPN</string>
<string name="always_on_message">Permessi connessione VPN negati. Verifica la</string>
<string name="junk_packet_maximum_size">Dimensione massima pacchetti indesiderati</string>
@@ -76,8 +74,6 @@
<string name="response_packet_junk_size">Dimensione pacchetto indesiderato risposta</string>
<string name="init_packet_magic_header">Magic header pacchetto inizializzazione</string>
<string name="response_packet_magic_header">Magic header pacchetto risposta</string>
<string name="getting_started_guide">guida di avvio rapido</string>
<string name="see_the">Vedi la</string>
<string name="restart_at_boot">Avvia all\'avvio</string>
<string name="vpn_denied_dialog_title">Permesso Negato</string>
<string name="root_accepted">Accesso alla shell root accettata</string>
@@ -181,7 +177,6 @@
<string name="update_check_failed">Controllo degli aggiornamenti fallito.</string>
<string name="checking_for_update">Controllo la disponibilità di aggiornamenti</string>
<string name="amoled">AMOLED</string>
<string name="nothing_here_yet">Non c\'è ancora nulla qui!</string>
<string name="range_hint">(%1$d%2$d)</string>
<string name="tunnel_name_taken">Nome tunnel già in uso.</string>
<string name="password_no_spaces">La password non può contenere spazi.</string>
-5
View File
@@ -30,7 +30,6 @@
<string name="preshared_key">事前共有鍵</string>
<string name="delete_tunnel_message">このトンネルを削除しますか?</string>
<string name="yes">はい</string>
<string name="no_tunnels">VPNトンネルはまだ追加されていません!</string>
<string name="tunnels">VPNトンネル</string>
<string name="privacy_policy">プライバシーポリシーを見る</string>
<string name="prominent_background_location_message">この機能は、アプリケーションを閉じている間でもWi-Fi SSIDの監視を可能にするため、バックグラウンドでの位置情報の許可が必要です。 詳しくはサポート画面のプライバシーポリシーをご覧ください。</string>
@@ -44,7 +43,6 @@
<string name="endpoint">エンドポイント</string>
<string name="add_peer">ピアの追加</string>
<string name="delete_tunnel">トンネルの削除</string>
<string name="unsure_how">操作方法がわからない場合</string>
<string name="tunnel_on_ethernet">Ethernetでのトンネルの有効化</string>
<string name="open_issue">問題を報告する</string>
<string name="incorrect_pin">PINが無効です</string>
@@ -60,7 +58,6 @@
<string name="enable_app_lock">アプリロックを有効にする</string>
<string name="always_on_message">VPN接続の許可が拒否されました。</string>
<string name="always_on_message2">他のすべてのアプリで常時接続VPNがオフになっていることを確認して、再度お試しください</string>
<string name="getting_started_guide">スタートガイド</string>
<string name="notifications">通知</string>
<string name="logs">ログ</string>
<string name="add_from_clipboard">クリップボードからの追加</string>
@@ -164,7 +161,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="support">Support</string>
<string name="already_donated">Already donated</string>
@@ -260,7 +256,6 @@
<string name="splt_tunneling">Split tunneling</string>
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -4,7 +4,6 @@
<string name="app_permission_title">ვგ ტუნელის კონტროლის ხიდი</string>
<string name="app_permission_description">მართე ტუნელის და ავტო-ტუნელის ფუნქციები.</string>
<string name="error_file_extension">ფაილი არ წარმოადგენს .conf ან .zip ფორმატს</string>
<string name="no_tunnels">ტუნელები ჯერ არ არის დამატებული!</string>
<string name="tunnels">ტუნელები</string>
<string name="tunnel_mobile_data">ტუნელი მობილური ინტერნეტით</string>
<string name="privacy_policy">კონფიდენციალურობის პოლიტიკა</string>
@@ -63,8 +62,6 @@
<string name="enter_pin">შეიყვანეთ პინი</string>
<string name="create_pin">შექმენით პინი</string>
<string name="enable_app_lock">გააქტიურე აპლიკაციის დაბლოკვა</string>
<string name="see_the">ნახეთ</string>
<string name="getting_started_guide">საწყისი ინსტრუქცია</string>
<string name="restart_at_boot">ჩართვისას დაწყება</string>
<string name="vpn_denied_dialog_title">უფლება უარყოფილია</string>
<string name="auto_tunnel_channel_id" translatable="false">Auto-tunnel Channel</string>
@@ -215,7 +212,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="support">Support</string>
<string name="already_donated">Already donated</string>
@@ -241,7 +237,6 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
-5
View File
@@ -127,7 +127,6 @@
<string name="response_packet_junk_size">응답 패킷 정크 크기</string>
<string name="start">시작</string>
<string name="enable_amnezia_compatibility">Amnezia 호환 켬</string>
<string name="nothing_here_yet">아직 아무것도 없습니다!</string>
<string name="mode_disabled_template">%1$s 모드에서는 이용할 수 없습니다.</string>
<string name="dns_servers">DNS 서버</string>
<string name="support">지원</string>
@@ -159,13 +158,11 @@
<string name="configuration">설정</string>
<string name="drag_handle">핸들 드래그</string>
<string name="global_dns_servers">글로벌 DNS 서버</string>
<string name="unsure_how">진행하는 법을 모르겠다면</string>
<string name="display_theme">표시 테마</string>
<string name="contact">연락</string>
<string name="ports_must_differ">실패. 프록시는 다른 포트를 이용해야 합니다.</string>
<string name="notifications">알림</string>
<string name="cookie_packet_junk_size">쿠키 패킷 정크 크기</string>
<string name="getting_started_guide">시작 도움말</string>
<string name="join_matrix">Matrix 커뮤니티 참여</string>
<string name="backup_and_restore">백업 및 복원</string>
<string name="email_description">이메일 전송하기</string>
@@ -210,7 +207,6 @@
<string name="public_key">공개 키</string>
<string name="show_scripts">스크립트 표시</string>
<string name="allowed_ips">허용된 IP</string>
<string name="no_tunnels">추가한 터널이 없습니다!</string>
<string name="monitoring">모니터링</string>
<string name="app_permission_title">터널 및 자동 터널 기능을 제어합니다.</string>
<string name="rotate_keys">키 순환</string>
@@ -247,7 +243,6 @@
<string name="okay">확인</string>
<string name="search">검색</string>
<string name="error_file_extension">파일이 .conf 혹은 .zip 형식이 아닙니다</string>
<string name="see_the">참고:</string>
<string name="listen_port">수신 포트</string>
<string name="auth_error">미인증</string>
<string name="auto">(자동)</string>
@@ -128,7 +128,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -160,12 +159,10 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -210,7 +207,6 @@
<string name="public_key">Public key</string>
<string name="show_scripts">Show scripts</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="monitoring">Monitoring</string>
<string name="app_permission_title">WG Tunnel Control Bridge</string>
<string name="rotate_keys">Rotate keys</string>
@@ -246,7 +242,6 @@
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -6,7 +6,6 @@
<string name="tunnels">Tunnels</string>
<string name="privacy_policy">Privacybeleid</string>
<string name="tunnel_on_ethernet">Tunnel bij ethernet</string>
<string name="no_tunnels">Nog geen tunnels geconfigureerd!</string>
<string name="okay">Oke</string>
<string name="include">Meenemen</string>
<string name="addresses">Adres</string>
@@ -78,7 +77,6 @@
<string name="error_no_file_explorer">Geen bestandsverkenner geïnstalleerd</string>
<string name="response_packet_magic_header">Response packet magic header</string>
<string name="underload_packet_magic_header">Underload packet magic header</string>
<string name="unsure_how">als je niet weet hoe verder te gaan</string>
<string name="restart_at_boot">Start na systeemstart</string>
<string name="always_on_message">VPN verbindingstoegang geweigerd. Controleer aub de</string>
<string name="always_on_message2">om zeker te zijn dat Altijd-aan VPN is uitgeschakeld voor alle andere apps, en probeer dan opnieuw</string>
@@ -86,8 +84,6 @@
<string name="never">Nooit</string>
<string name="logs">Logboeken</string>
<string name="email_description">Stuur mij een email</string>
<string name="see_the">Bekijk de</string>
<string name="getting_started_guide">\"aan de slag\" handleiding</string>
<string name="vpn_denied_dialog_title">Toegang geweigerd</string>
<string name="vpn_settings">VPN systeeminstellingen</string>
<string name="root_accepted">Root toegang verleend</string>
@@ -159,7 +155,6 @@
<string name="auth_error">Niet toegelaten</string>
<string name="service_running_error">Service niet actief</string>
<string name="enable_remote_app_control">Activeer applicatie controle vanop afstand</string>
<string name="nothing_here_yet">Nog niets hier!</string>
<string name="select_all">Selecteer alles</string>
<string name="export_success">Export gelukt</string>
<string name="download">Download</string>
-5
View File
@@ -127,7 +127,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -159,13 +158,11 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="cookie_packet_junk_size">Cookie packet junk size</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -210,7 +207,6 @@
<string name="public_key">Public key</string>
<string name="show_scripts">Show scripts</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="monitoring">Monitoring</string>
<string name="app_permission_title">Control tunnels and auto-tunnel features.</string>
<string name="rotate_keys">Rotate keys</string>
@@ -247,7 +243,6 @@
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -2,8 +2,6 @@
<resources>
<string name="tunnels">Tunele</string>
<string name="app_name">WG Tunnel</string>
<string name="unsure_how">jeśli nie masz pewności, jak postępować</string>
<string name="getting_started_guide">przewodnik wprowadzający,</string>
<string name="peer">Peer</string>
<string name="rotate_keys">Rotuj klucze</string>
<string name="tunnel_on_ethernet">Tunel przez sieć ethernetową</string>
@@ -24,7 +22,6 @@
<string name="response_packet_magic_header">Nagłówek magicznego pakietu odpowiedzi</string>
<string name="transport_packet_magic_header">Nagłówek magicznego pakietu transportowego</string>
<string name="underload_packet_magic_header">Nagłówek magicznego pakietu niedociążenia</string>
<string name="see_the">Zobacz</string>
<string name="restart_at_boot">Uruchom przy rozruchu</string>
<string name="never">Nigdy</string>
<string name="show_amnezia_properties">Pokaż właściwości protokołu Amnezia</string>
@@ -111,7 +108,6 @@
<string name="stop_auto">Zatrzymaj autotunel</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>
<string name="exclude">Wyklucz</string>
<string name="docs_description">Przeczytaj dokumentację</string>
<string name="email_description">Wyślij mi wiadomość e-mail</string>
@@ -164,7 +160,6 @@
<string name="add_tunnel">Dodaj tunel</string>
<string name="select">Wybierz</string>
<string name="dns_resolve_error">Rozwiązywanie DNS się nie powiodło</string>
<string name="nothing_here_yet">Jeszcze nic tu nie ma!</string>
<string name="select_all">Wybierz wszystkie</string>
<string name="download">Pobierz</string>
<string name="version_template">Wersja: %1$s</string>
@@ -22,7 +22,6 @@
<string name="init_packet_junk_size">Tamanho de pacote-lixo inicial</string>
<string name="response_packet_junk_size">Tamanho de resposta de pacote-lixo</string>
<string name="app_name">WG Tunnel</string>
<string name="no_tunnels">Nenhum túnel foi adicionado!</string>
<string name="error_file_extension">O ficheiro não é .conf ou .zip</string>
<string name="prominent_background_location_message">Este recurso precisa de permissões de localização em segundo plano para ativar o monitoramento do SSID da rede Wi-Fi mesmo quando a aplicação está fechado. Para mais pormenores, por favor veja a Política de Privacidade no ecrã de Suporte.</string>
<string name="enabled_app_shortcuts">Ativar atalhos de aplicações</string>
@@ -77,9 +76,6 @@
<string name="set_primary_tunnel">Selecionar como túnel principal</string>
<string name="support">Suporte</string>
<string name="settings">Configurações</string>
<string name="unsure_how">se não tiver certeza em como continuar</string>
<string name="see_the">Veja o</string>
<string name="getting_started_guide">guia de início rápido</string>
<string name="vpn_denied_dialog_title">Permissão negada</string>
<string name="vpn_settings">Configurações do sistema VPN</string>
<string name="always_on_message">A permissão de conexão VPN foi negada. Por favor, verifique</string>
@@ -200,7 +196,6 @@
<string name="donate_title">Donate</string>
<string name="active_tunnel_update_failed">Active tunnel update failed</string>
<string name="start">Start</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="already_donated">Already donated</string>
<string name="kofi">Ko-fi</string>
@@ -15,7 +15,6 @@
<string name="support">Suporte</string>
<string name="mtu">MTU</string>
<string name="error_file_extension">O ficheiro não é .conf ou .zip</string>
<string name="no_tunnels">Nenhum túnel foi adicionado!</string>
<string name="tunnel_mobile_data">Túnel em dados móveis</string>
<string name="privacy_policy">Ver a Política de Privacidade</string>
<string name="okay">OK</string>
@@ -40,7 +39,6 @@
<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="response_packet_junk_size">Tamanho de resposta de pacote-lixo</string>
<string name="unsure_how">se não tiver certeza em como continuar</string>
<string name="always_on_message">A permissão de conexão VPN foi negada. Por favor, verifique</string>
<string name="root_accepted">Shell root aceito</string>
<string name="show_amnezia_properties">Mostrar propriedades de Amnezia</string>
@@ -84,8 +82,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="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>
<string name="restart_at_boot">Ativar na inicialização</string>
<string name="native_kill_switch">Interruptor de desligamento padrão</string>
@@ -201,7 +197,6 @@
<string name="donate_title">Donate</string>
<string name="active_tunnel_update_failed">Active tunnel update failed</string>
<string name="start">Start</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="already_donated">Already donated</string>
<string name="kofi">Ko-fi</string>
-5
View File
@@ -7,7 +7,6 @@
<string name="peer">Пир</string>
<string name="privacy_policy">Политика конфиденциальности</string>
<string name="add_from_qr">Добавить из QR-кода</string>
<string name="no_tunnels">Туннели ещё не добавлены!</string>
<string name="exclude">Исключить</string>
<string name="include">Включить</string>
<string name="config_changes_saved">Изменения конфигурации сохранены.</string>
@@ -29,7 +28,6 @@
<string name="init_packet_junk_size">S1</string>
<string name="response_packet_junk_size">S2</string>
<string name="init_packet_magic_header">H1</string>
<string name="see_the">Смотрите</string>
<string name="tunnel_mobile_data">Туннелировать через сотовую сеть</string>
<string name="tunnel_on_ethernet">Туннелировать через Ethernet</string>
<string name="cancel">Отмена</string>
@@ -81,8 +79,6 @@
<string name="junk_packet_minimum_size">Jmin</string>
<string name="response_packet_magic_header">H2</string>
<string name="transport_packet_magic_header">H4</string>
<string name="getting_started_guide">руководство по началу работы</string>
<string name="unsure_how">, если не уверены, что делать дальше</string>
<string name="underload_packet_magic_header">H3</string>
<string name="root_accepted">Root-доступ разрешён</string>
<string name="always_on_message">Разрешение на VPN-соединение было отклонено, проверьте</string>
@@ -163,7 +159,6 @@
<string name="export_failed">Экспорт не выполнен</string>
<string name="enable_remote_app_control">Удалённое управление приложением</string>
<string name="error_download_failed">Невозможно скачать конфигурацию</string>
<string name="nothing_here_yet">Здесь пока ничего нет!</string>
<string name="select_all">Выбрать все</string>
<string name="export_success">Экспорт успешно выполнен</string>
<string name="check_for_update">Проверить обновление</string>
-5
View File
@@ -3,7 +3,6 @@
<string name="app_name">Tunel WG</string>
<string name="app_permission_description">Ovládanie tunelov a funkcie automatického tunela.</string>
<string name="error_file_extension">Súbor nie je typu .conf ani .zip</string>
<string name="no_tunnels">Zatiaľ neboli pridané žiadne tunely!</string>
<string name="tunnels">Tunely</string>
<string name="privacy_policy">Zobraziť zásady ochrany osobných údajov</string>
<string name="okay">Dobre</string>
@@ -161,7 +160,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="support">Podpora</string>
<string name="already_donated">Already donated</string>
@@ -187,12 +185,10 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">Ak si nieste istý ako pokračovať</string>
<string name="display_theme">Motív zobrazenia</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifikácie</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="proxy_settings">Proxy settings</string>
@@ -257,7 +253,6 @@
<string name="language">Jazyk</string>
<string name="splt_tunneling">Split tunneling</string>
<string name="search">Search</string>
<string name="see_the">Pozri</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
<string name="add_from_clipboard">Add from clipboard</string>
-5
View File
@@ -126,7 +126,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -158,12 +157,10 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -208,7 +205,6 @@
<string name="public_key">Public key</string>
<string name="show_scripts">Show scripts</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="monitoring">Monitoring</string>
<string name="app_permission_title">WG Tunnel Control Bridge</string>
<string name="rotate_keys">Rotate keys</string>
@@ -245,7 +241,6 @@
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -7,7 +7,6 @@
<string name="exclude">விலக்கு</string>
<string name="vpn_channel_description">VPN மாநில அறிவிப்புகளுக்கான சேனல்</string>
<string name="app_name">Wg சுரங்கப்பாதை</string>
<string name="no_tunnels">இன்னும் சுரங்கங்கள் எதுவும் சேர்க்கப்படவில்லை!</string>
<string name="error_file_extension">கோப்பு ஒரு .conf அல்லது .zip அல்ல</string>
<string name="tunnels">சுரங்கங்கள்</string>
<string name="tunnel_mobile_data">மொபைல் தரவுகளில் சுரங்கப்பாதை</string>
@@ -61,9 +60,6 @@
<string name="response_packet_magic_header">மறுமொழி பாக்கெட் மேசிக் தலைப்பு</string>
<string name="transport_packet_magic_header">போக்குவரத்து பாக்கெட் மேசிக் தலைப்பு</string>
<string name="underload_packet_magic_header">பாக்கெட் மேசிக் தலைப்பு</string>
<string name="unsure_how">எப்படி தொடர வேண்டும் என்று உங்களுக்குத் தெரியாவிட்டால்</string>
<string name="see_the">பார்க்க</string>
<string name="getting_started_guide">தொடங்குதல் வழிகாட்டி</string>
<string name="restart_at_boot">துவக்கத்தில் மறுதொடக்கம் செய்யுங்கள்</string>
<string name="vpn_denied_dialog_title">இசைவு மறுக்கப்பட்டது</string>
<string name="vpn_settings">VPN கணினி அமைப்புகள்</string>
@@ -168,7 +164,6 @@
<string name="copy">நகலெடு</string>
<string name="save">சேமி</string>
<string name="camera_permission_required">கேமரா இசைவு தேவை</string>
<string name="nothing_here_yet">இன்னும் இங்கே எதுவும் இல்லை!</string>
<string name="export_success">ஏற்றுமதி செய்</string>
<string name="download">பதிவிறக்கம்</string>
<string name="check_for_update">புதுப்பிப்புக்கு சரிபார்க்கவும்</string>
-5
View File
@@ -127,7 +127,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">DNS servers</string>
<string name="support">Support</string>
@@ -159,13 +158,11 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="cookie_packet_junk_size">Cookie packet junk size</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -210,7 +207,6 @@
<string name="public_key">Public key</string>
<string name="show_scripts">Show scripts</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="no_tunnels">ยังไม่มีโปรไฟล์</string>
<string name="monitoring">Monitoring</string>
<string name="app_permission_title">ตั้งค่า เชื่อมต่อเองอัตโนมัติ</string>
<string name="rotate_keys">Rotate keys</string>
@@ -246,7 +242,6 @@
<string name="okay">Okay</string>
<string name="search">Search</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
-5
View File
@@ -7,7 +7,6 @@
<string name="privacy_policy_url" translatable="false">https://wgtunnel.com/privacy-policy/</string>
<string name="docs_wildcards" translatable="false">https://wgtunnel.com/docs/auto-tunneling/#use-name-wildcards</string>
<string name="error_file_extension">Dosya .conf veya .zip değil</string>
<string name="no_tunnels">Henüz tünel eklenmedi!</string>
<string name="tunnels">Tüneller</string>
<string name="tunnel_mobile_data">Mobil veride tünel</string>
<string name="privacy_policy">Gizlilik politikasını görüntüle</string>
@@ -89,9 +88,6 @@
<string name="transport_packet_magic_header">Taşıma paketi sihirli başlığı</string>
<string name="underload_packet_magic_header">Düşük yük paketi sihirli başlığı</string>
<string name="telegram_url" translatable="false">https://t.me/wgtunnel</string>
<string name="unsure_how">nasıl devam edeceğinizden emin değilseniz</string>
<string name="see_the">Bakınız</string>
<string name="getting_started_guide">başlangıç kılavuzu</string>
<string name="restart_at_boot">Başlangıçta yeniden başlat</string>
<string name="vpn_denied_dialog_title">İzin Reddedildi</string>
<string name="vpn_settings">VPN sistem ayarları</string>
@@ -218,7 +214,6 @@
<string name="donate_title">Donate</string>
<string name="active_tunnel_update_failed">Active tunnel update failed</string>
<string name="start">Start</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="already_donated">Already donated</string>
<string name="kofi">Ko-fi</string>
-5
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="no_tunnels">Тунелі ще не додані!</string>
<string name="app_name">WG Tunnel</string>
<string name="tunnels">Тунелі</string>
<string name="okay">ОК</string>
@@ -20,7 +19,6 @@
<string name="error_root_denied">Рут-доступ заборонено</string>
<string name="incorrect_pin">Невірний PIN-код</string>
<string name="transport_packet_magic_header">Заголовок транспортного пакету</string>
<string name="getting_started_guide">інструкція щодо початку роботи</string>
<string name="error_file_extension">Файл не є .conf або .zip файлом</string>
<string name="tunnel_mobile_data">Тунелювати мобільні дані</string>
<string name="privacy_policy">Переглянути політику конфіденційності</string>
@@ -82,8 +80,6 @@
<string name="init_packet_magic_header">Заголовок пакету ініціалізації</string>
<string name="underload_packet_magic_header">Заголовок пакету під навантаженням</string>
<string name="response_packet_magic_header">Заголовок пакету відповіді</string>
<string name="unsure_how">, якщо не впевнені що робити далі</string>
<string name="see_the">Дивіться</string>
<string name="skip">Пропустити</string>
<string name="trusted_wifi_names">Довірені мережі Wi-Fi</string>
<string name="vpn_denied_dialog_title">Немає дозволу</string>
@@ -207,7 +203,6 @@
<string name="donate_title">Подяка</string>
<string name="active_tunnel_update_failed">Не вдалося оновити активний тунель</string>
<string name="start">Запустити</string>
<string name="nothing_here_yet">Тут нічого нема!</string>
<string name="mode_disabled_template">Ця функція недоступна в режимі %1$s.</string>
<string name="already_donated">Ви вже підтримали</string>
<string name="kofi">Ko-fi</string>
-5
View File
@@ -11,7 +11,6 @@
<string name="public_key">عوامی کلید</string>
<string name="app_name">ڈبلیو جی ٹنل</string>
<string name="error_file_extension">فائل conf یا zip نہیں ہے</string>
<string name="no_tunnels">ابھی تک کوئی ٹنلز شامل نہیں کی گئیں!</string>
<string name="tunnels">ٹنلز</string>
<string name="tunnel_mobile_data">موبائل ڈیٹا پر ٹنل</string>
<string name="privacy_policy">رازداری کی پالیسی دیکھیں</string>
@@ -63,7 +62,6 @@
<string name="init_packet_junk_size">اِنِٹ پیکٹ جنک سائز</string>
<string name="init_packet_magic_header">اِنِٹ پیکٹ میجک ہیڈر</string>
<string name="transport_packet_magic_header">ٹرانسپورٹ پیکٹ میجک ہیڈر</string>
<string name="see_the">دیکھیں</string>
<string name="vpn_denied_dialog_title">اجازت نامنظور</string>
<string name="vpn_settings">وی پی این سسٹم کی ترتیبات</string>
<string name="always_on_message">وی پی این کنکشن کی اجازت مسترد کر دی گئی ہے۔ براہ کرم چیک کریں</string>
@@ -110,9 +108,7 @@
<string name="launch_app_settings">ایپ ترتیبات لانچ کریں</string>
<string name="monitoring_state_changes">ریاستی تبدیلیوں کی نگرانی</string>
<string name="enter_pin">پن درج کریں</string>
<string name="getting_started_guide">شروع کرنے کی گائیڈ</string>
<string name="response_packet_magic_header">رسپانس پیکٹ میجک ہیڈر</string>
<string name="unsure_how">اگر آپ کو یقین نہیں کہ کیسے آگے بڑھیں</string>
<string name="use_root_shell_for_wifi">وائی فائی کی معلومات حاصل کرنے کے لیے روٹ شیل کا استعمال کریں، مقام کی اجازت کی ضرورت کو روکتے ہوئے</string>
<string name="response_packet_junk_size">رسپانس پیکٹ جنک سائز</string>
<string name="junk_packet_minimum_size">جنک پیکٹ کا کم از کم سائز</string>
@@ -161,7 +157,6 @@
<string name="dns_resolve_error">ڈی این ایس ریزولوشن ناکام</string>
<string name="auth_error">غیر مجاز</string>
<string name="service_running_error">سروس نہیں چل رہی</string>
<string name="nothing_here_yet">ابھی تک یہاں کچھ نہیں!</string>
<string name="join_matrix">میٹرکس کمیونٹی میں شامل ہوں</string>
<string name="delete_logs">لاگز حذف اور صاف کریں</string>
<string name="select_all">سبھی کو منتخب کریں</string>
-5
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="no_tunnels">Chưa có đường nối nào!</string>
<string name="tunnels">Các đường nối</string>
<string name="error_file_extension">Tệp không phải .conf hay .zip</string>
<string name="enter_config_url">Enter config URL</string>
@@ -128,7 +127,6 @@
<string name="response_packet_junk_size">Response packet junk size</string>
<string name="start">Start</string>
<string name="enable_amnezia_compatibility">Enable Amnezia compatibility</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="mode_disabled_template">Feature unavailable in %1$s mode.</string>
<string name="dns_servers">Máy chủ DNS</string>
<string name="support">Support</string>
@@ -160,12 +158,10 @@
<string name="configuration">Configuration</string>
<string name="drag_handle">Drag Handle</string>
<string name="global_dns_servers">Global DNS servers</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="display_theme">Display theme</string>
<string name="contact">Contact</string>
<string name="ports_must_differ">Failed. Proxies must have different ports.</string>
<string name="notifications">Notifications</string>
<string name="getting_started_guide">getting started guide</string>
<string name="join_matrix">Join Matrix community</string>
<string name="backup_and_restore">Backup and restore</string>
<string name="email_description">Send me an email</string>
@@ -245,7 +241,6 @@
<string name="splt_tunneling">Split tunneling</string>
<string name="okay">Ok</string>
<string name="search">Search</string>
<string name="see_the">See the</string>
<string name="listen_port">Listen port</string>
<string name="auth_error">Unauthorized</string>
<string name="auto">(Auto)</string>
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="no_tunnels">您还没有添加隧道!</string>
<string name="tunnels">隧道列表</string>
<string name="privacy_policy">隐私政策</string>
<string name="tunnel_mobile_data">允许隧道使用数据流量</string>
@@ -103,9 +102,6 @@
<string name="underload_packet_magic_header">欠载数据包 magic header</string>
<string name="restart_at_boot">开机时启动</string>
<string name="learn_more">了解更多</string>
<string name="unsure_how">如果您不确定如何进行</string>
<string name="see_the">请查阅</string>
<string name="getting_started_guide">入门指南</string>
<string name="skip">取消</string>
<string name="launch_app_settings">打开应用设置</string>
<string name="use_wildcards">使用名称通配符</string>
@@ -163,7 +159,6 @@
<string name="app_permission_description">控制隧道和自动隧道功能.</string>
<string name="app_permission_title">控制隧道和自动隧道功能。</string>
<string name="export_logs">导出已保存的日志</string>
<string name="nothing_here_yet">此处还什么都没有!</string>
<string name="select_all">全选</string>
<string name="version_template">当前版本:%1$s</string>
<string name="export_success">导出成功</string>
@@ -46,7 +46,6 @@
<string name="edit_tunnel">編輯隧道</string>
<string name="vpn_settings">系統 VPN 設定</string>
<string name="support">支援</string>
<string name="getting_started_guide">取得入門指南</string>
<string name="settings">設定</string>
<string name="restart_at_boot">開機時啟動</string>
<string name="junk_packet_count">垃圾封包數</string>
@@ -74,12 +73,9 @@
<string name="endpoint">終端點</string>
<string name="location_services_not_detected">未啟用定位服務</string>
<string name="junk_packet_maximum_size">垃圾封包最大值</string>
<string name="no_tunnels">還沒有新增任何隧道!</string>
<string name="allowed_ips">允許的 IP</string>
<string name="junk_packet_minimum_size">垃圾封包最小值</string>
<string name="error_no_file_explorer">未安裝任何檔案管理器</string>
<string name="unsure_how">如果您不確定如何進行</string>
<string name="see_the">請參閱</string>
<string name="local_logging">本機日誌監視器</string>
<string name="email_description">給作者寄電子郵件</string>
<string name="always_on_vpn_support">允許永久連線的 VPN</string>
@@ -104,7 +100,6 @@
<string name="add_tunnel">新增隧道</string>
<string name="camera_permission_required">需要相機權限</string>
<string name="dns_resolve_error">DNS 解析失敗</string>
<string name="nothing_here_yet">這裡目前還沒有任何東西!</string>
<string name="remove_amnezia_compatibility">移除 Amnezia 相容性</string>
<string name="enable_amnezia_compatibility">啟用 Amnezia 相容性</string>
<string name="show_amnezia_properties">顯示 Amnezia 屬性</string>
@@ -1,4 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_banner_background">#21272A</color>
</resources>
<resources></resources>
@@ -1,4 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_channel_background">#21272A</color>
</resources>
<resources></resources>
+3 -5
View File
@@ -17,7 +17,6 @@
<string name="matrix_url" translatable="false">https://matrix.to/#/#wg-tunnel-space:matrix.org</string>
<string name="telegram_url" translatable="false">https://t.me/wgtunnel</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="tunnels">Tunnels</string>
<string name="tunnel_mobile_data">Tunnel on mobile data</string>
<string name="privacy_policy">Privacy policy</string>
@@ -98,9 +97,6 @@
<string name="response_packet_magic_header">Response packet magic header</string>
<string name="transport_packet_magic_header">Transport packet magic header</string>
<string name="underload_packet_magic_header">Underload packet magic header</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="see_the">See the</string>
<string name="getting_started_guide">getting started guide</string>
<string name="restart_at_boot">Start on boot</string>
<string name="vpn_denied_dialog_title">Permission Denied</string>
<string name="vpn_settings">VPN system settings</string>
@@ -184,7 +180,6 @@
<string name="auth_error">Unauthorized</string>
<string name="service_running_error">Service not running</string>
<string name="enable_remote_app_control">Enable remote app control</string>
<string name="nothing_here_yet">Nothing here yet!</string>
<string name="select_all">Select all</string>
<string name="export_success">Export success</string>
<string name="download">Download</string>
@@ -516,4 +511,7 @@
<string name="restore_ipv6">Restore IPv6</string>
<string name="restore_ipv6_desc">Switch back to IPv6 when an IPv6 network is detected.</string>
<string name="no_tunnels_yet">Nothing here… yet.</string>
<string name="getting_started_guidance">Use the + button to import a tunnel, or view the getting started guide.</string>
<string name="getting_started_guide_link">view the getting started guide</string>
</resources>
+2
View File
@@ -7,6 +7,7 @@ ipaddress = "5.6.2"
koinBom = "4.2.1"
kotlinxCoroutinesAndroid = "1.11.0"
leakcanaryAndroid = "3.0-alpha-8"
lottieCompose = "6.7.1"
orbitCompose = "11.0.0"
roomdatabasebackup = "1.1.0"
shizuku = "13.1.5"
@@ -128,6 +129,7 @@ icmp4a = { module = "com.marsounjan:icmp4a", version.ref = "icmp4a" }
ipaddress = { module = "com.github.seancfoley:ipaddress", version.ref = "ipaddress" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutinesAndroid" }
leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanaryAndroid" }
lottie-compose = { module = "com.airbnb.android:lottie-compose", version.ref = "lottieCompose" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
@@ -27,15 +27,21 @@ data class LogMessage(
)
} else {
val parts = logcatLine.trim().split(" ").filter { it.isNotEmpty() }
val epochParts = parts[0].split(".").map { it.toLong() }
val message = parts.subList(5, parts.size).joinToString(" ")
val timeParts = parts[0].split(".")
val seconds = timeParts[0].toLong()
val millis = if (timeParts.size > 1) timeParts[1].toLong() else 0L
// Convert milliseconds to nanoseconds
val nanos = millis * 1_000_000L
LogMessage(
Instant.ofEpochSecond(epochParts[0], epochParts[1]).toString(),
Instant.ofEpochSecond(seconds, nanos).toString(),
parts[1],
parts[2],
LogLevel.fromSignifier(parts[3]),
parts[4],
message,
parts.subList(5, parts.size).joinToString(" "),
)
}
}
-2
View File
@@ -140,8 +140,6 @@ int bypass_socket(int fd) {
jboolean attached = JNI_FALSE;
jint rs = -1;
LOGD("bypass_socket called with FD: %d", fd);
if (g_jvm == NULL) {
LOGE("g_jvm is NULL");
return 0;