feat: improve empty tunnel screen, logging screen
@@ -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) {
|
||||
|
||||
|
Before Width: | Height: | Size: 777 B |
|
Before Width: | Height: | Size: 525 B |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
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>
|
||||
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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(" "),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||