Compare commits

...

12 Commits

Author SHA1 Message Date
dependabot[bot] 18a25107c5 build(deps): bump org.jlleitschuh.gradle.ktlint from 12.1.1 to 12.1.2
Bumps org.jlleitschuh.gradle.ktlint from 12.1.1 to 12.1.2.

---
updated-dependencies:
- dependency-name: org.jlleitschuh.gradle.ktlint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 13:47:22 +00:00
GitHub Actions bad2f55121 Automated build update 2024-11-24 03:41:29 +00:00
Zane Schepke fecc55fe9c chore: add id title 2024-11-23 17:39:47 -05:00
Zane Schepke 4d2e9629f9 refactor: pt language code 2024-11-23 17:26:53 -05:00
Zane Schepke 347c79741f dist: 3.6.1 notes and bump 2024-11-23 16:06:05 -05:00
Zane Schepke 9bb30069fe feat: add tunnel from clipboard
closes #431
2024-11-23 15:48:11 -05:00
Zane Schepke 9a2d77c8bf minor: disable stats job when app is closed
Adds a slight battery performance improvement

#437
2024-11-23 15:00:06 -05:00
Zane Schepke f79f922838 refactor: language selection
fix: amnezia edit bug
closes #425
2024-11-23 00:35:09 -05:00
Weblate (bot) a9d5994070 chore: remove unused/outdated strings (#455) 2024-11-22 22:57:03 -05:00
Zane Schepke f967b38af1 feat: add weblate localizations (#454)
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: Kachelkaiser <kachelkaiser@outlook.com>
Co-authored-by: Kirill Isakov <k@isakov.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: solokot <solokot@gmail.com>
Co-authored-by: Jasper <jasper@ennik.com>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: Haerul Muttaqin <email.haerulmuttaqin@gmail.com>
Co-authored-by: GeneralTDog <kevin.duy.tran@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Co-authored-by: day <grrrleon@gmail.com>
Co-authored-by: Henrik Sozzi <henrik_sozzi@hotmail.com>
Co-authored-by: MouaisTe44 <r.craft.212121@gmail.com>
Co-authored-by: TCH <teunish@outlook.com>
Co-authored-by: ragu <lobular.exports-02@icloud.com>
2024-11-22 22:40:23 -05:00
GitHub Actions a060f00490 Automated build update 2024-11-23 03:36:17 +00:00
Zane Schepke b15cdbce7c fix: tunnel control tile sync
closes #442
2024-11-22 22:07:41 -05:00
206 changed files with 1737 additions and 711 deletions
+3 -1
View File
@@ -68,7 +68,9 @@
<activity
android:name=".ui.MainActivity"
android:exported="true"
android:theme="@style/Theme.WireguardAutoTunnel">
android:theme="@style/Theme.WireguardAutoTunnel"
android:configChanges="orientation|screenSize|keyboardHidden"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -1,11 +1,11 @@
package com.zaneschepke.wireguardautotunnel
import android.app.Application
import android.content.Context
import android.os.StrictMode
import android.os.StrictMode.ThreadPolicy
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.os.LocaleListCompat
import com.zaneschepke.logcatter.LogReader
import com.zaneschepke.wireguardautotunnel.data.datastore.LocaleStorage
import com.zaneschepke.wireguardautotunnel.data.repository.AppStateRepository
import com.zaneschepke.wireguardautotunnel.module.ApplicationScope
import com.zaneschepke.wireguardautotunnel.module.IoDispatcher
@@ -22,10 +22,6 @@ import javax.inject.Inject
@HiltAndroidApp
class WireGuardAutoTunnel : Application() {
val localeStorage: LocaleStorage by lazy {
LocaleStorage(this)
}
@Inject
@ApplicationScope
lateinit var applicationScope: CoroutineScope
@@ -56,6 +52,13 @@ class WireGuardAutoTunnel : Application() {
} else {
Timber.plant(ReleaseTree())
}
applicationScope.launch {
appStateRepository.getLocale()?.let {
val locale = LocaleUtil.getLocaleFromPrefCode(it)
val appLocale: LocaleListCompat = LocaleListCompat.forLanguageTags(locale)
AppCompatDelegate.setApplicationLocales(appLocale)
}
}
if (!isRunningOnTv()) {
applicationScope.launch(ioDispatcher) {
if (appStateRepository.isLocalLogsEnabled()) {
@@ -66,10 +69,6 @@ class WireGuardAutoTunnel : Application() {
}
}
override fun attachBaseContext(base: Context) {
super.attachBaseContext(LocaleUtil.getLocalizedContext(base, LocaleStorage(base).getPreferredLocale()))
}
companion object {
lateinit var instance: WireGuardAutoTunnel
private set
@@ -27,6 +27,7 @@ class DataStoreManager(
val pinLockEnabled = booleanPreferencesKey("PIN_LOCK_ENABLED")
val tunnelStatsExpanded = booleanPreferencesKey("TUNNEL_STATS_EXPANDED")
val isLocalLogsEnabled = booleanPreferencesKey("LOCAL_LOGS_ENABLED")
val locale = stringPreferencesKey("LOCALE")
val theme = stringPreferencesKey("THEME")
}
@@ -1,17 +0,0 @@
package com.zaneschepke.wireguardautotunnel.data.datastore
import android.content.Context
import android.content.SharedPreferences
import com.zaneschepke.wireguardautotunnel.util.LocaleUtil
class LocaleStorage(context: Context) {
private var preferences: SharedPreferences = context.getSharedPreferences("sp", Context.MODE_PRIVATE)
fun getPreferredLocale(): String {
return preferences.getString("preferred_locale", LocaleUtil.OPTION_PHONE_LANGUAGE)!!
}
fun setPreferredLocale(localeCode: String) {
preferences.edit().putString("preferred_locale", localeCode).apply()
}
}
@@ -8,6 +8,7 @@ data class GeneralState(
val isPinLockEnabled: Boolean = PIN_LOCK_ENABLED_DEFAULT,
val isTunnelStatsExpanded: Boolean = IS_TUNNEL_STATS_EXPANDED,
val isLocalLogsEnabled: Boolean = IS_LOGS_ENABLED_DEFAULT,
val locale: String? = null,
val theme: Theme = Theme.AUTOMATIC,
) {
companion object {
@@ -5,6 +5,7 @@ import androidx.room.Entity
import androidx.room.Index
import androidx.room.PrimaryKey
import com.wireguard.config.Config
import com.zaneschepke.wireguardautotunnel.util.extensions.toWgQuickString
import java.io.InputStream
@Entity(indices = [Index(value = ["name"], unique = true)])
@@ -79,6 +80,12 @@ data class TunnelConfig(
}
}
fun tunnelConfigFromAmConfig(config: org.amnezia.awg.config.Config, name: String): TunnelConfig {
val amQuick = config.toAwgQuickString(true)
val wgQuick = config.toWgQuickString()
return TunnelConfig(name = name, wgQuick = wgQuick, amQuick = amQuick)
}
const val AM_QUICK_DEFAULT = ""
}
}
@@ -33,5 +33,9 @@ interface AppStateRepository {
suspend fun setLocalLogsEnabled(enabled: Boolean)
suspend fun setLocale(localeTag: String)
suspend fun getLocale(): String?
val generalStateFlow: Flow<GeneralState>
}
@@ -77,6 +77,14 @@ class DataStoreAppStateRepository(
dataStoreManager.saveToDataStore(DataStoreManager.isLocalLogsEnabled, enabled)
}
override suspend fun setLocale(localeTag: String) {
dataStoreManager.saveToDataStore(DataStoreManager.locale, localeTag)
}
override suspend fun getLocale(): String? {
return dataStoreManager.getFromStore(DataStoreManager.locale)
}
override val generalStateFlow: Flow<GeneralState> =
dataStoreManager.preferencesFlow.map { prefs ->
prefs?.let { pref ->
@@ -93,6 +101,7 @@ class DataStoreAppStateRepository(
?: GeneralState.PIN_LOCK_ENABLED_DEFAULT,
isTunnelStatsExpanded = pref[DataStoreManager.tunnelStatsExpanded] ?: GeneralState.IS_TUNNEL_STATS_EXPANDED,
isLocalLogsEnabled = pref[DataStoreManager.isLocalLogsEnabled] ?: GeneralState.IS_LOGS_ENABLED_DEFAULT,
locale = pref[DataStoreManager.locale],
theme = getTheme(),
)
} catch (e: IllegalArgumentException) {
@@ -94,7 +94,7 @@ constructor(
override suspend fun startTunnel(tunnelConfig: TunnelConfig, background: Boolean): Result<TunnelState> {
return withContext(ioDispatcher) {
if (runningHandle.get() == true && tunnelConfig == vpnState.value.tunnelConfig) {
if (runningHandle.get() && tunnelConfig == vpnState.value.tunnelConfig) {
Timber.w("Tunnel already running")
return@withContext Result.success(vpnState.value.status)
}
@@ -103,7 +103,7 @@ constructor(
val settings = appDataRepository.settings.getSettings()
if (background || settings.isKernelEnabled) startBackgroundService()
setState(tunnelConfig, TunnelState.UP).onSuccess {
emitTunnelState(it)
updateTunnelState(it)
}.onFailure {
Timber.e(it)
onStartFailed()
@@ -115,7 +115,7 @@ constructor(
return withContext(ioDispatcher) {
onBeforeStop(tunnelConfig)
setState(tunnelConfig, TunnelState.DOWN).onSuccess {
emitTunnelState(it)
updateTunnelState(it)
}.onFailure {
Timber.e(it)
onStopFailed()
@@ -136,7 +136,7 @@ constructor(
private suspend fun toggleTunnel(tunnelConfig: TunnelConfig): Result<TunnelState> {
return withContext(ioDispatcher) {
setState(tunnelConfig, TunnelState.TOGGLE).onSuccess {
emitTunnelState(it)
updateTunnelState(it)
resetBackendStatistics()
}.onFailure {
Timber.e(it)
@@ -191,12 +191,13 @@ constructor(
resetBackendStatistics()
}
private fun emitTunnelState(state: TunnelState) {
private fun updateTunnelState(state: TunnelState) {
_vpnState.tryEmit(
_vpnState.value.copy(
status = state,
),
)
serviceManager.requestTunnelTileUpdate()
}
private fun emitBackendStatistics(statistics: TunnelStatistics) {
@@ -264,15 +265,15 @@ constructor(
}
override fun onStateChange(newState: Tunnel.State) {
emitTunnelState(TunnelState.from(newState))
updateTunnelState(TunnelState.from(newState))
}
override fun onStateChange(state: State) {
emitTunnelState(TunnelState.from(state))
updateTunnelState(TunnelState.from(state))
}
companion object {
const val STATS_START_DELAY = 5_000L
const val STATS_START_DELAY = 1_000L
const val VPN_STATISTIC_CHECK_INTERVAL = 1_000L
const val VPN_RESTART_DELAY = 1_000L
}
@@ -1,5 +1,7 @@
package com.zaneschepke.wireguardautotunnel.ui
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.os.LocaleListCompat
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.wireguard.android.backend.WgQuickBackend
@@ -15,6 +17,8 @@ import com.zaneschepke.wireguardautotunnel.service.tunnel.TunnelService
import com.zaneschepke.wireguardautotunnel.service.tunnel.TunnelState
import com.zaneschepke.wireguardautotunnel.ui.common.snackbar.SnackbarController
import com.zaneschepke.wireguardautotunnel.util.Constants
import com.zaneschepke.wireguardautotunnel.util.LocaleUtil
import com.zaneschepke.wireguardautotunnel.util.LocaleUtil.OPTION_PHONE_LANGUAGE
import com.zaneschepke.wireguardautotunnel.util.StringValue
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
@@ -74,7 +78,7 @@ constructor(
val configurationChange = _configurationChange.asStateFlow()
init {
viewModelScope.launch(ioDispatcher) {
viewModelScope.launch {
initPin()
initAutoTunnel()
initTunnel()
@@ -90,6 +94,7 @@ constructor(
}
private suspend fun initTunnel() {
if (tunnelService.get().getState() == TunnelState.UP) tunnelService.get().startStatsJob()
val activeTunnels = appDataRepository.tunnels.getActive()
if (activeTunnels.isNotEmpty() &&
tunnelService.get().getState() == TunnelState.DOWN
@@ -147,6 +152,14 @@ constructor(
}
}
fun onLocaleChange(localeTag: String) = viewModelScope.launch {
val locale = LocaleUtil.getLocaleFromPrefCode(localeTag)
val storageLocale = if (localeTag == OPTION_PHONE_LANGUAGE) OPTION_PHONE_LANGUAGE else locale
appDataRepository.appState.setLocale(storageLocale)
val appLocale: LocaleListCompat = LocaleListCompat.forLanguageTags(locale)
AppCompatDelegate.setApplicationLocales(appLocale)
}
fun onToggleRestartAtBoot() = viewModelScope.launch {
with(uiState.value.settings) {
appDataRepository.settings.save(
@@ -1,6 +1,5 @@
package com.zaneschepke.wireguardautotunnel.ui
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.activity.compose.setContent
@@ -35,8 +34,6 @@ import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import androidx.navigation.toRoute
import com.zaneschepke.wireguardautotunnel.R
import com.zaneschepke.wireguardautotunnel.WireGuardAutoTunnel
import com.zaneschepke.wireguardautotunnel.data.datastore.LocaleStorage
import com.zaneschepke.wireguardautotunnel.data.repository.AppStateRepository
import com.zaneschepke.wireguardautotunnel.service.tunnel.TunnelService
import com.zaneschepke.wireguardautotunnel.ui.common.navigation.BottomNavBar
@@ -59,9 +56,7 @@ import com.zaneschepke.wireguardautotunnel.ui.screens.support.SupportScreen
import com.zaneschepke.wireguardautotunnel.ui.screens.support.logs.LogsScreen
import com.zaneschepke.wireguardautotunnel.ui.theme.WireguardAutoTunnelTheme
import com.zaneschepke.wireguardautotunnel.util.Constants
import com.zaneschepke.wireguardautotunnel.util.LocaleUtil
import com.zaneschepke.wireguardautotunnel.util.extensions.requestAutoTunnelTileServiceUpdate
import com.zaneschepke.wireguardautotunnel.util.extensions.requestTunnelTileServiceStateUpdate
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
import kotlin.system.exitProcess
@@ -69,12 +64,6 @@ import kotlin.system.exitProcess
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
private val localeStorage: LocaleStorage by lazy {
(application as WireGuardAutoTunnel).localeStorage
}
private lateinit var oldPrefLocaleCode: String
@Inject
lateinit var appStateRepository: AppStateRepository
@@ -97,10 +86,6 @@ class MainActivity : AppCompatActivity() {
val configurationChange by viewModel.configurationChange.collectAsStateWithLifecycle()
val navController = rememberNavController()
LaunchedEffect(appUiState.tunnels) {
requestTunnelTileServiceStateUpdate()
}
LaunchedEffect(configurationChange) {
if (configurationChange) {
Intent(this@MainActivity, MainActivity::class.java).also {
@@ -190,7 +175,7 @@ class MainActivity : AppCompatActivity() {
AppearanceScreen()
}
composable<Route.Language> {
LanguageScreen(localeStorage)
LanguageScreen(appUiState, viewModel)
}
composable<Route.Display> {
DisplayScreen(appUiState)
@@ -230,19 +215,9 @@ class MainActivity : AppCompatActivity() {
}
}
}
override fun attachBaseContext(newBase: Context) {
oldPrefLocaleCode = LocaleStorage(newBase).getPreferredLocale()
applyOverrideConfiguration(LocaleUtil.getLocalizedConfiguration(oldPrefLocaleCode))
super.attachBaseContext(newBase)
}
override fun onResume() {
val currentLocaleCode = LocaleStorage(this).getPreferredLocale()
if (oldPrefLocaleCode != currentLocaleCode) {
recreate() // locale is changed, restart the activity to update
oldPrefLocaleCode = currentLocaleCode
}
super.onResume()
override fun onDestroy() {
super.onDestroy()
// save battery by not polling stats while app is closed
tunnelService.cancelStatsJob()
}
}
@@ -25,7 +25,6 @@ import androidx.compose.ui.unit.dp
import com.zaneschepke.wireguardautotunnel.ui.theme.iconSize
import com.zaneschepke.wireguardautotunnel.util.extensions.scaledHeight
import com.zaneschepke.wireguardautotunnel.util.extensions.scaledWidth
import kotlin.let
@androidx.compose.runtime.Composable
fun IconSurfaceButton(title: String, onClick: () -> Unit, selected: Boolean, leadingIcon: ImageVector? = null, description: String? = null) {
@@ -90,8 +90,8 @@ fun ConfigScreen(tunnelId: Int) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
var configType by remember { mutableStateOf<ConfigType?>(null) }
val derivedConfigType = remember {
derivedStateOf<ConfigType> {
configType ?: if (!uiState.hasAmneziaProperties()) ConfigType.WIREGUARD else ConfigType.AMNEZIA
derivedStateOf {
configType ?: if (!uiState.isAmneziaEnabled) ConfigType.WIREGUARD else ConfigType.AMNEZIA
}
}
val saved by viewModel.saved.collectAsStateWithLifecycle(null)
@@ -181,8 +181,8 @@ fun ConfigScreen(tunnelId: Int) {
)
}
},
) {
Column(Modifier.padding(it)) {
) { padding ->
Column(Modifier.padding(padding)) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Top,
@@ -243,12 +243,12 @@ fun ConfigScreen(tunnelId: Int) {
.clickable { showAuthPrompt = true },
value = uiState.interfaceProxy.privateKey,
visualTransformation =
if ((tunnelId == Constants.MANUAL_TUNNEL_CONFIG_ID.toInt()) || isAuthenticated) {
if ((tunnelId == Constants.MANUAL_TUNNEL_CONFIG_ID) || isAuthenticated) {
VisualTransformation.None
} else {
PasswordVisualTransformation()
},
enabled = (tunnelId == Constants.MANUAL_TUNNEL_CONFIG_ID.toInt()) || isAuthenticated,
enabled = (tunnelId == Constants.MANUAL_TUNNEL_CONFIG_ID) || isAuthenticated,
onValueChange = { value -> viewModel.onPrivateKeyChange(value) },
trailingIcon = {
IconButton(
@@ -18,9 +18,6 @@ data class ConfigUiState(
var tunnelName: String = "",
val isAmneziaEnabled: Boolean = false,
) {
fun hasAmneziaProperties(): Boolean {
return this.interfaceProxy.junkPacketCount != ""
}
companion object {
fun from(config: Config): ConfigUiState {
val proxyPeers = config.peers.map { PeerProxy.from(it) }
@@ -77,6 +74,7 @@ data class ConfigUiState(
return from(config).copy(
tunnelName = tunnel.name,
tunnel = tunnel,
isAmneziaEnabled = config.`interface`.junkPacketCount.isPresent,
)
}
}
@@ -37,6 +37,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
@@ -68,6 +69,7 @@ import com.zaneschepke.wireguardautotunnel.util.extensions.scaledHeight
fun MainScreen(viewModel: MainViewModel = hiltViewModel(), uiState: AppUiState) {
val context = LocalContext.current
val navController = LocalNavController.current
val clipboard = LocalClipboardManager.current
val snackbar = SnackbarController.current
var showBottomSheet by remember { mutableStateOf(false) }
@@ -201,12 +203,17 @@ fun MainScreen(viewModel: MainViewModel = hiltViewModel(), uiState: AppUiState)
)
}
},
) {
) { padding ->
TunnelImportSheet(
showBottomSheet,
onDismiss = { showBottomSheet = false },
onFileClick = { tunnelFileImportResultLauncher.launch(Constants.ALLOWED_TV_FILE_TYPES) },
onQrClick = { requestPermissionLauncher.launch(android.Manifest.permission.CAMERA) },
onClipboardClick = {
clipboard.getText()?.text?.let {
viewModel.onClipboardImport(it)
}
},
onManualImportClick = {
navController.navigate(
Route.Config(Constants.MANUAL_TUNNEL_CONFIG_ID),
@@ -218,7 +225,7 @@ fun MainScreen(viewModel: MainViewModel = hiltViewModel(), uiState: AppUiState)
verticalArrangement = Arrangement.spacedBy(5.dp.scaledHeight(), Alignment.Top),
modifier =
Modifier
.fillMaxSize().padding(it)
.fillMaxSize().padding(padding)
.overscroll(ScrollableDefaults.overscrollEffect())
.nestedScroll(nestedScrollConnection),
state = rememberLazyListState(0, uiState.tunnels.count()),
@@ -261,4 +261,14 @@ constructor(
),
)
}
fun onClipboardImport(config: String) = viewModelScope.launch(ioDispatcher) {
runCatching {
val amConfig = TunnelConfig.configFromAmQuick(config)
val tunnelConfig = TunnelConfig.tunnelConfigFromAmConfig(amConfig, makeTunnelNameUnique(generateQrCodeDefaultName(config)))
saveTunnel(tunnelConfig)
}.onFailure {
SnackbarController.showMessage(StringValue.StringResource(R.string.error_file_format))
}
}
}
@@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ContentPasteGo
import androidx.compose.material.icons.filled.Create
import androidx.compose.material.icons.filled.FileOpen
import androidx.compose.material.icons.filled.QrCode
@@ -22,9 +23,17 @@ import androidx.compose.ui.unit.dp
import com.zaneschepke.wireguardautotunnel.R
import com.zaneschepke.wireguardautotunnel.util.extensions.isRunningOnTv
// TODO refactor this component
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun TunnelImportSheet(show: Boolean, onDismiss: () -> Unit, onFileClick: () -> Unit, onQrClick: () -> Unit, onManualImportClick: () -> Unit) {
fun TunnelImportSheet(
show: Boolean,
onDismiss: () -> Unit,
onFileClick: () -> Unit,
onQrClick: () -> Unit,
onManualImportClick: () -> Unit,
onClipboardClick: () -> Unit,
) {
val sheetState = rememberModalBottomSheetState()
val context = LocalContext.current
@@ -77,6 +86,28 @@ fun TunnelImportSheet(show: Boolean, onDismiss: () -> Unit, onFileClick: () -> U
modifier = Modifier.padding(10.dp),
)
}
HorizontalDivider()
Row(
modifier =
Modifier
.fillMaxWidth()
.clickable {
onDismiss()
onClipboardClick()
}
.padding(10.dp),
) {
val icon = Icons.Filled.ContentPasteGo
Icon(
icon,
contentDescription = icon.name,
modifier = Modifier.padding(10.dp),
)
Text(
stringResource(id = R.string.add_from_clipboard),
modifier = Modifier.padding(10.dp),
)
}
}
HorizontalDivider()
Row(
@@ -9,11 +9,9 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.viewinterop.AndroidView
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.journeyapps.barcodescanner.CompoundBarcodeView
import com.zaneschepke.wireguardautotunnel.ui.common.navigation.LocalNavController
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun ScannerScreen(viewModel: ScannerViewModel = hiltViewModel()) {
val context = LocalContext.current
@@ -9,7 +9,6 @@ import com.zaneschepke.wireguardautotunnel.module.IoDispatcher
import com.zaneschepke.wireguardautotunnel.ui.common.snackbar.SnackbarController
import com.zaneschepke.wireguardautotunnel.util.NumberUtils
import com.zaneschepke.wireguardautotunnel.util.StringValue
import com.zaneschepke.wireguardautotunnel.util.extensions.toWgQuickString
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -45,10 +44,7 @@ constructor(
fun onTunnelQrResult(result: String) = viewModelScope.launch(ioDispatcher) {
kotlin.runCatching {
val amConfig = TunnelConfig.configFromAmQuick(result)
val amQuick = amConfig.toAwgQuickString(true)
val wgQuick = amConfig.toWgQuickString()
val tunnelName = makeTunnelNameUnique(generateQrCodeDefaultName(result))
val tunnelConfig = TunnelConfig(name = tunnelName, wgQuick = wgQuick, amQuick = amQuick)
val tunnelConfig = TunnelConfig.tunnelConfigFromAmConfig(amConfig, makeTunnelNameUnique(generateQrCodeDefaultName(result)))
appDataRepository.tunnels.save(tunnelConfig)
_success.emit(true)
}.onFailure {
@@ -11,39 +11,27 @@ import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.zaneschepke.wireguardautotunnel.R
import com.zaneschepke.wireguardautotunnel.data.datastore.LocaleStorage
import com.zaneschepke.wireguardautotunnel.ui.Route
import com.zaneschepke.wireguardautotunnel.ui.AppUiState
import com.zaneschepke.wireguardautotunnel.ui.AppViewModel
import com.zaneschepke.wireguardautotunnel.ui.common.SelectedLabel
import com.zaneschepke.wireguardautotunnel.ui.common.button.SelectionItemButton
import com.zaneschepke.wireguardautotunnel.ui.common.navigation.LocalNavController
import com.zaneschepke.wireguardautotunnel.ui.common.navigation.TopNavBar
import com.zaneschepke.wireguardautotunnel.util.LocaleUtil
import com.zaneschepke.wireguardautotunnel.util.extensions.navigateAndForget
import com.zaneschepke.wireguardautotunnel.util.extensions.scaledHeight
import com.zaneschepke.wireguardautotunnel.util.extensions.scaledWidth
import timber.log.Timber
import java.text.Collator
import java.util.Locale
@Composable
fun LanguageScreen(localeStorage: LocaleStorage) {
val navController = LocalNavController.current
val context = LocalContext.current
fun LanguageScreen(appUiState: AppUiState, appViewModel: AppViewModel) {
val collator = Collator.getInstance(Locale.getDefault())
val currentLocale = remember { mutableStateOf(LocaleUtil.OPTION_PHONE_LANGUAGE) }
val locales = LocaleUtil.supportedLocales.map {
val tag = it.replace("_", "-")
Locale.forLanguageTag(tag)
@@ -54,28 +42,17 @@ fun LanguageScreen(localeStorage: LocaleStorage) {
locales.sortedWith(compareBy(collator) { it.getDisplayName(it) }).toList()
}
LaunchedEffect(Unit) {
currentLocale.value = localeStorage.getPreferredLocale()
}
fun onChangeLocale(locale: String) {
Timber.d("Setting preferred locale: $locale")
localeStorage.setPreferredLocale(locale)
LocaleUtil.applyLocalizedContext(context, locale)
navController.navigateAndForget(Route.Main)
}
Scaffold(
topBar = {
TopNavBar(stringResource(R.string.language))
},
) {
) { padding ->
LazyColumn(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Top,
modifier =
Modifier
.fillMaxSize().padding(it)
.fillMaxSize().padding(padding)
.padding(horizontal = 24.dp.scaledWidth()).windowInsetsPadding(WindowInsets.navigationBars),
) {
item {
@@ -83,10 +60,10 @@ fun LanguageScreen(localeStorage: LocaleStorage) {
SelectionItemButton(
buttonText = stringResource(R.string.automatic),
onClick = {
onChangeLocale(LocaleUtil.OPTION_PHONE_LANGUAGE)
appViewModel.onLocaleChange(LocaleUtil.OPTION_PHONE_LANGUAGE)
},
trailing = {
if (currentLocale.value == LocaleUtil.OPTION_PHONE_LANGUAGE) {
if (appUiState.generalState.locale == LocaleUtil.OPTION_PHONE_LANGUAGE) {
SelectedLabel()
}
},
@@ -96,13 +73,18 @@ fun LanguageScreen(localeStorage: LocaleStorage) {
}
items(sortedLocales, key = { it }) { locale ->
SelectionItemButton(
buttonText = locale.getDisplayLanguage(locale).capitalize(locale) +
if (locale.toLanguageTag().contains("-")) " (${locale.getDisplayCountry(locale).capitalize(locale)})" else "",
buttonText = locale.getDisplayLanguage(locale).replaceFirstChar { if (it.isLowerCase()) it.titlecase(locale) else it.toString() } +
if (locale.toLanguageTag().contains("-")) {
" (${locale.getDisplayCountry(locale)
.replaceFirstChar { if (it.isLowerCase()) it.titlecase(locale) else it.toString() }})"
} else {
""
},
onClick = {
onChangeLocale(locale.toLanguageTag())
appViewModel.onLocaleChange(locale.toLanguageTag())
},
trailing = {
if (locale.toLanguageTag() == currentLocale.value) {
if (locale.toLanguageTag() == appUiState.generalState.locale) {
SelectedLabel()
}
},
@@ -1,13 +1,8 @@
package com.zaneschepke.wireguardautotunnel.util
import android.content.Context
import android.content.res.Configuration
import android.content.res.Resources
import android.os.Build
import android.os.LocaleList
import androidx.core.os.ConfigurationCompat
import com.zaneschepke.wireguardautotunnel.BuildConfig
import java.util.Locale
object LocaleUtil {
private const val DEFAULT_LANG = "en"
@@ -19,7 +14,7 @@ object LocaleUtil {
* when preference value = "sys_def" returns the locale of current system
* else it returns the locale code e.g. "en", "bn" etc.
*/
fun getLocaleFromPrefCode(prefCode: String): Locale {
fun getLocaleFromPrefCode(prefCode: String): String {
val localeCode = if (prefCode != OPTION_PHONE_LANGUAGE) {
prefCode
} else {
@@ -30,71 +25,6 @@ object LocaleUtil {
DEFAULT_LANG
}
}
return Locale.forLanguageTag(localeCode)
}
fun getLocalizedConfiguration(prefLocaleCode: String): Configuration {
val locale = getLocaleFromPrefCode(prefLocaleCode)
return getLocalizedConfiguration(locale)
}
private fun getLocalizedConfiguration(locale: Locale): Configuration {
val config = Configuration()
return config.apply {
config.setLayoutDirection(locale)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
config.setLocale(locale)
val localeList = LocaleList(locale)
LocaleList.setDefault(localeList)
config.setLocales(localeList)
} else {
config.setLocale(locale)
}
}
}
fun getLocalizedContext(baseContext: Context, prefLocaleCode: String?): Context {
if (prefLocaleCode == null) return baseContext
val currentLocale = getLocaleFromPrefCode(prefLocaleCode)
val baseLocale = getLocaleFromConfiguration(baseContext.resources.configuration)
Locale.setDefault(currentLocale)
return if (!baseLocale.toString().equals(currentLocale.toString(), ignoreCase = true)) {
val config = getLocalizedConfiguration(currentLocale)
baseContext.createConfigurationContext(config)
baseContext
} else {
baseContext
}
}
fun applyLocalizedContext(baseContext: Context, prefLocaleCode: String) {
val currentLocale = getLocaleFromPrefCode(prefLocaleCode)
val baseLocale = getLocaleFromConfiguration(baseContext.resources.configuration)
Locale.setDefault(currentLocale)
if (!baseLocale.toString().equals(currentLocale.toString(), ignoreCase = true)) {
val config = getLocalizedConfiguration(currentLocale)
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
}
}
@Suppress("DEPRECATION")
private fun getLocaleFromConfiguration(configuration: Configuration): Locale {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
configuration.locales.get(0)
} else {
configuration.locale
}
}
fun getLocalizedResources(resources: Resources, prefLocaleCode: String): Resources {
val locale = getLocaleFromPrefCode(prefLocaleCode)
val config = resources.configuration
@Suppress("DEPRECATION")
config.locale = locale
config.setLayoutDirection(locale)
@Suppress("DEPRECATION")
resources.updateConfiguration(config, resources.displayMetrics)
return resources
return localeCode
}
}
-9
View File
@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#e8eaed"
android:pathData="M440,520L200,520v-80h240v-240h80v240h240v80L520,520v240h-80v-240Z" />
</vector>
-9
View File
@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#e8eaed"
android:pathData="m256,760 l-56,-56 224,-224 -224,-224 56,-56 224,224 224,-224 56,56 -224,224 224,224 -56,56 -224,-224 -224,224Z" />
</vector>
-10
View File
@@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="800dp"
android:height="800dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:fillColor="#5865F2"
android:fillType="nonZero"
android:pathData="M216.86,45.1C200.29,37.34 182.57,31.71 164.04,28.5C161.77,32.61 159.11,38.15 157.28,42.55C137.58,39.58 118.07,39.58 98.74,42.55C96.91,38.15 94.19,32.61 91.9,28.5C73.35,31.71 55.61,37.36 39.04,45.14C5.62,95.65 -3.44,144.9 1.09,193.46C23.26,210.01 44.74,220.07 65.86,226.65C71.08,219.47 75.73,211.84 79.74,203.8C72.1,200.9 64.79,197.32 57.89,193.17C59.72,191.81 61.51,190.39 63.24,188.93C105.37,208.63 151.13,208.63 192.75,188.93C194.51,190.39 196.3,191.81 198.11,193.17C191.18,197.34 183.85,200.92 176.22,203.82C180.23,211.84 184.86,219.49 190.1,226.67C211.24,220.09 232.74,210.03 254.91,193.46C260.23,137.17 245.83,88.37 216.86,45.1ZM85.47,163.59C72.83,163.59 62.46,151.79 62.46,137.41C62.46,123.04 72.61,111.21 85.47,111.21C98.34,111.21 108.71,123.02 108.49,137.41C108.51,151.79 98.34,163.59 85.47,163.59ZM170.53,163.59C157.88,163.59 147.51,151.79 147.51,137.41C147.51,123.04 157.66,111.21 170.53,111.21C183.39,111.21 193.76,123.02 193.54,137.41C193.54,151.79 183.39,163.59 170.53,163.59Z" />
</vector>
-9
View File
@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#e8eaed"
android:pathData="M200,760h57l391,-391 -57,-57 -391,391v57ZM120,840v-170l528,-527q12,-11 26.5,-17t30.5,-6q16,0 31,6t26,18l55,56q12,11 17.5,26t5.5,30q0,16 -5.5,30.5T817,313L290,840L120,840ZM760,256 L704,200 760,256ZM619,341 L591,312 648,369 619,341Z" />
</vector>
+2 -46
View File
@@ -1,12 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="no_tunnels">Žádné tunely ještě nebyly přidány!</string>
<string name="watcher_notification_text_paused">Monitorování změn ve stavu sítě: pozastaveno</string>
<string name="notification_permission_required">Je vyžadováno oprávnění pro oznámení.</string>
<string name="add_trusted_ssid">Přidat název důvěryhodné Wi-Fi</string>
<string name="enable_auto_tunnel">Spustit automatické tunelování</string>
<string name="tunnel_mobile_data">Tunelování na mobilních datech</string>
<string name="privacy_policy">Otevřít zásady soukromí</string>
<string name="privacy_policy">Otevřít zásady soukromí</string>
<string name="okay">OK</string>
<string name="thank_you">Děkujeme za používání WG Tunnel!</string>
<string name="add_tunnels_text">Přidat ze souboru nebo zipu</string>
@@ -14,23 +10,16 @@
<string name="add_from_qr">Přidat z QR kódu</string>
<string name="qr_scan">QR skenování</string>
<string name="tunnel_name">Název tunelu</string>
<string name="add_tunnel">Přidat tunel</string>
<string name="exclude">Vyloučit</string>
<string name="include">Zahrnout</string>
<string name="save_changes">Uložit</string>
<string name="endpoint">Koncový bod</string>
<string name="vpn_connection_failed">Připojení selhalo</string>
<string name="always_on_vpn_support">Povolit trvalé připojení VPN</string>
<string name="location_services_not_detected">Služby polohy nebyly detekovány</string>
<string name="hint_search_packages">Hledat balíčky</string>
<string name="attempt_connection">Pokus o připojení...</string>
<string name="vpn_starting">VPN se spouští</string>
<string name="vpn_on">VPN zapnuto</string>
<string name="vpn_off">VPN vypnuto</string>
<string name="default_vpn_on">Hlavní VPN zapnuto</string>
<string name="default_vpn_off">Hlavní VPN vypnuto</string>
<string name="create_import">Vytvořit od základu</string>
<string name="turn_off_auto">Akce vyžaduje, aby bylo automatické tunelování vypnuté či pozastavené</string>
<string name="add_peer">Přidat peer</string>
<string name="comma_separated_list">seznam oddělený čárkami</string>
<string name="random">(náhodné)</string>
@@ -43,12 +32,7 @@
<string name="error_authorization_failed">Nepovedlo se autorizovat</string>
<string name="enabled_app_shortcuts">Zapnout zkratky</string>
<string name="export_configs">Exportovat konfigurace</string>
<string name="export_configs_failed">Nepovedlo se exportovat konfigurace</string>
<string name="location_services_required">Služby polohy vyžadovány</string>
<string name="background_location_required">Oprávnění pro polohu na pozadí vyžadováno</string>
<string name="precise_location_required">Oprávnění pro přesnou polohu vyžadováno</string>
<string name="unknown_error">Došlo k neznámé chybě</string>
<string name="exported_configs_message">Konfigurace exportovány do stažených souborů</string>
<string name="tunnel_on_wifi">Tunelovat na nedůvěryhodné Wi-Fi</string>
<string name="email_subject">WG Tunnel podpora</string>
<string name="email_chooser">Poslat email…</string>
@@ -57,22 +41,14 @@
<string name="error_root_denied">Oprávnění root zamítnuto</string>
<string name="error_no_file_explorer">Žádný průzkumník souborů není nainstalován</string>
<string name="error_invalid_code">Neplatný QR kód</string>
<string name="error_none">Žádná chyba</string>
<string name="auto_tunnel_title">Služba automatického tunelování</string>
<string name="resume">Obnovit</string>
<string name="active">aktivní</string>
<string name="open_issue">Otevřít případ</string>
<string name="incorrect_pin">PIN je nesprávný</string>
<string name="create_pin">Vytvořte PIN</string>
<string name="set_primary_tunnel">Nastavit jako hlavní tunel</string>
<string name="use_tunnel_on_wifi_name">Použít tunel pro Wi-Fi</string>
<string name="edit_tunnel">Upravit tunel</string>
<string name="disabled">vypnuto</string>
<string name="auto_tun_on">Obnovit automatické tunelování</string>
<string name="auto_tun_off">Pozastavit automatické tunelování</string>
<string name="version">Verze</string>
<string name="mode">Mód</string>
<string name="use_amnezia">"Použít Amnezia userspace "</string>
<string name="junk_packet_count">Junk packet počet</string>
<string name="junk_packet_minimum_size">Junk packet minimální velikost</string>
<string name="junk_packet_maximum_size">Junk packet maximální velikost</string>
@@ -84,28 +60,17 @@
<string name="error_file_format">Neplatný formát konfigurace</string>
<string name="error_file_extension">Soubor není ve formátu .conf nebo .zip</string>
<string name="turn_off_tunnel">Akce vyžaduje vypnutí tunelu</string>
<string name="watcher_notification_text_active">Monitorování změn ve stavu sítě: aktivní</string>
<string name="tunnel_on_ethernet">Tunelovat na ethernetu</string>
<string name="tunnel_start_title">VPN připojeno</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>
<string name="tunnel_start_text">Připojeno k tunelu</string>
<string name="tunnels">Tunely</string>
<string name="disable_auto_tunnel">Zastavit automatické tunelování</string>
<string name="tunnel_all">Tunelovat všechny aplikace</string>
<string name="config_changes_saved">Změny v konfiguraci uloženy.</string>
<string name="icon">Ikona</string>
<string name="no_thanks">Ne, děkuji</string>
<string name="turn_on">Zapnout</string>
<string name="map">Mapa</string>
<string name="public_key">Veřejný klíč</string>
<string name="addresses">Adresy</string>
<string name="dns_servers">DNS servery</string>
<string name="allowed_ips">Povolené IP adresy</string>
<string name="name">Název</string>
<string name="restart">Restartovat tunel</string>
<string name="scanning_qr">Skenování QR</string>
<string name="none">Žádné názvy důvěryhodných Wi-Fi</string>
<string name="other">Ostatní</string>
<string name="auto_tunneling">Automatické tunelování</string>
<string name="turn_on_tunnel">Akce vyžaduje aktivní tunel</string>
<string name="interface_">Rozhraní</string>
@@ -116,30 +81,22 @@
<string name="base64_key">base64 klíč</string>
<string name="docs_description">Přečíst si dokumentaci</string>
<string name="email_description">Poslat mi email</string>
<string name="support_help_text">Pokud máte potíže, nápady pro zlepšení, nebo se chcete jen zapojit, následující prostředky jsou k dispozici:</string>
<string name="location_services_missing_message">Aplikace nenašla žádné služby polohy zapnuté na Vašem zařízení. Dle Vašeho zařízení, tohle může způsobit, že funkce nedůvěryhodné Wi-Fi nedokáže přečíst jméno připojené Wi-Fi. Chcete i přesto pokračovat?</string>
<string name="delete_tunnel">Smazat tunel</string>
<string name="delete_tunnel_message">Jste si jisti, že chcete smazat tento tunel?</string>
<string name="yes">Ano</string>
<string name="pause">Pozastavit</string>
<string name="paused">pozastaveno</string>
<string name="tunneling_apps">Tunelování aplikací</string>
<string name="all">vše</string>
<string name="included">zahrnuto</string>
<string name="excluded">vyloučeno</string>
<string name="always_on_disabled">Trvalé VPN připojení se pokusilo spustit tunel, ale tato funkce je vypnutá v nastavení.</string>
<string name="no_email_detected">Žádná emailová aplikace nebyla nalezena</string>
<string name="no_browser_detected">Žádný prohlížeč nebyl nalezen</string>
<string name="logs_saved">Logy uloženy do stažených souborů</string>
<string name="read_logs">Přečíst si logy</string>
<string name="config_parse_error">Nepovedlo se vložit konfiguraci</string>
<string name="pin_created">PIN úspěšně vytvořen</string>
<string name="enter_pin">Vložte Váš PIN</string>
<string name="no_wifi_names_configured">Žádné názvy Wi-Fi nebyly nastaveny pro tento tunel</string>
<string name="enable_app_lock">Zapnout zámek aplikace</string>
<string name="restart_on_ping">Restartovat při selhání pingu</string>
<string name="mobile_data_tunnel">Nastavit jako tunel pro mobilní data</string>
<string name="general">Obecné</string>
<string name="settings">Nastavení</string>
<string name="support">Podpora</string>
<string name="app_name">WG Tunnel</string>
@@ -148,5 +105,4 @@
<string name="listen_port">Naslouchací port</string>
<string name="auto">(automaticky)</string>
<string name="kernel">Kernel</string>
<string name="backend">Backend</string>
</resources>
</resources>
+31 -59
View File
@@ -3,43 +3,28 @@
<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="watcher_notification_text_active">Überwachung der Netzwerkänderungen: aktiv</string>
<string name="tunnels">Tunnel</string>
<string name="enable_auto_tunnel">Auto-Tunneln starten</string>
<string name="tunnel_mobile_data">Tunnel für mobile Daten</string>
<string name="privacy_policy">Datenschutzbestimmungen anzeigen</string>
<string name="disable_auto_tunnel">Auto-Tunneln stoppen</string>
<string name="privacy_policy">Datenschutzbestimmungen anzeigen</string>
<string name="okay">Ok</string>
<string name="tunnel_on_ethernet">Tunnel für Ethernet</string>
<string name="attempt_connection">Verbindungsversuch..</string>
<string name="auto_tunneling">Auto-Tunneln</string>
<string name="default_vpn_off">Primärer VPN aus</string>
<string name="turn_on_tunnel">Für diese Aktion muss ein aktiver Tunnel bestehen</string>
<string name="watcher_notification_text_paused">Überwachung der Netzwerkänderungen: pausiert</string>
<string name="tunnel_start_title">VPN verbunden</string>
<string name="tunnel_start_text">Mit Tunnel verbunden</string>
<string name="notification_permission_required">Benachrichtigungsberechtigung benötigt.</string>
<string name="add_trusted_ssid">Vertrauenswürdigen WLAN-Namen hinzufügen</string>
<string name="prominent_background_location_message">Diese Funktion erfordert die Erlaubnis zur Standortbestimmung im Hintergrund, um die Überwachung der WLAN SSID zu ermöglichen, auch wenn die Anwendung geschlossen ist. Weitere Einzelheiten in den Datenschutzbestimmungen, die auf dem Support-Bildschirm verlinkt sind.</string>
<string name="prominent_background_location_title">Vereinbarung der Standortberechtigung im Hintergrund</string>
<string name="thank_you">Danke fürs Benutzen von WG Tunnel!</string>
<string name="trusted_ssid_empty_description">SSID eingeben</string>
<string name="trusted_ssid_value_description">SSID bestätigen</string>
<string name="trusted_ssid_value_description">SSID übermitteln</string>
<string name="add_tunnels_text">Von Datei oder ZIP hinzufügen</string>
<string name="open_file">Datei öffnen</string>
<string name="add_from_qr">Über QR-Code hinzufügen</string>
<string name="qr_scan">Scanne QR</string>
<string name="tunnel_name">Tunnel Name</string>
<string name="add_tunnel">Tunnel hinzufügen</string>
<string name="qr_scan">QR--Code scannen</string>
<string name="tunnel_name">Tunnel-Name</string>
<string name="exclude">Ausschließen</string>
<string name="include">Einschließen</string>
<string name="tunnel_all">Alle Apps tunneln</string>
<string name="config_changes_saved">Konfigurationsänderungen gespeichert.</string>
<string name="save_changes">Speichern</string>
<string name="icon">Symbol</string>
<string name="no_thanks">Nein danke</string>
<string name="turn_on">Einschalten</string>
<string name="map">Karte</string>
<string name="public_key">Öffentlicher Schlüssel</string>
<string name="addresses">Adressen</string>
<string name="dns_servers">DNS-Server</string>
@@ -48,21 +33,13 @@
<string name="allowed_ips">Erlaubte IPs</string>
<string name="endpoint">Endpunkt</string>
<string name="name">Name</string>
<string name="restart">Tunnel neustarten</string>
<string name="vpn_connection_failed">Verbindung fehlgeschlagen</string>
<string name="always_on_vpn_support">Always-On VPN erlauben</string>
<string name="location_services_not_detected">Standortdienste nicht erkannt</string>
<string name="hint_search_packages">Pakete suchen</string>
<string name="vpn_starting">VPN startet</string>
<string name="db_name">wg-tunnel-db</string>
<string name="scanning_qr">Scanne nach QR</string>
<string name="none">Keine vertrauenswürdigen WLAN Namen</string>
<string name="other">Sonstige</string>
<string name="vpn_on">VPN an</string>
<string name="vpn_off">VPN aus</string>
<string name="default_vpn_on">Primärer VPN an</string>
<string name="create_import">Von Grund auf neu erstellen</string>
<string name="turn_off_auto">Für diese Aktion muss Auto-Tunneln ausgeschaltet oder pausiert sein</string>
<string name="add_peer">Peer hinzufügen</string>
<string name="done">Erledigt</string>
<string name="rotate_keys">Schlüssel rotieren</string>
@@ -72,7 +49,6 @@
<string name="comma_separated_list">Kommaseparierte Liste</string>
<string name="delete_tunnel">Tunnel löschen</string>
<string name="persistent_keepalive">Dauerhaftes Keepalive</string>
<string name="background_location_required">Hintergrund Standortdienste erforderlich</string>
<string name="enable_app_lock">App-Sperre aktivieren</string>
<string name="interface_">Schnittstelle</string>
<string name="listen_port">Eingehender Port</string>
@@ -83,66 +59,44 @@
<string name="cancel">Abbrechen</string>
<string name="preshared_key">Geteilter Schlüssel</string>
<string name="enabled_app_shortcuts">App-Verknüpfungen aktivieren</string>
<string name="exported_configs_message">Konfigurationen in Download Ordner exportiert</string>
<string name="tunnel_on_wifi">Tunnel bei nicht vertrauenswürdigem WLAN</string>
<string name="email_subject">WG Tunnel Unterstützung</string>
<string name="docs_description">Dokumentation lesen</string>
<string name="email_description">Sende mir eine E-Mail</string>
<string name="support_help_text">Bei Fehlern oder Verbesserungsvorschlägen stehen folgende Ressourcen zur Verfügung:</string>
<string name="error_root_denied">Root Shell verweigert</string>
<string name="error_no_file_explorer">Kein Datei-Explorer installiert</string>
<string name="location_services_missing_message">Die App erkennt keine auf deinem Gerät aktivierten Standortdienste. Je nach Gerät kann dies dazu führen, dass die Funktion \"Nicht vertrauenswürdiges WLAN\" den WLAN-Namen nicht lesen kann. Möchtest du trotzdem fortfahren?</string>
<string name="auto_tunnel_title">Auto-Tunnel Service</string>
<string name="delete_tunnel_message">Bist du sicher, dass du den Tunnel löschen möchtest?</string>
<string name="yes">Ja</string>
<string name="resume">Fortsetzen</string>
<string name="pause">Pausieren</string>
<string name="paused">Pausiert</string>
<string name="active">Aktiv</string>
<string name="go">Los</string>
<string name="excluded">ausgeschlossen</string>
<string name="all">Alle</string>
<string name="always_on_disabled">Always-on VPN wollte einen Tunnel starten, aber dieses Feature ist in den Einstellungen deaktiviert.</string>
<string name="all">alle</string>
<string name="no_browser_detected">Keinen Browser erkannt</string>
<string name="open_issue">Issue öffnen</string>
<string name="read_logs">Logs lesen</string>
<string name="auto">(automatisch)</string>
<string name="config_parse_error">Fehler beim Lesen der Konfiguration</string>
<string name="incorrect_pin">PIN nicht korrekt</string>
<string name="pin_created">PIN erfolgreich erstellt</string>
<string name="enter_pin">Deine PIN eingeben</string>
<string name="auto_off">Auto-Tunneln pausieren</string>
<string name="auto_tun_on">Auto-Tunneln fortsetzen</string>
<string name="auto_tun_off">Auto-Tunneln pausieren</string>
<string name="version">Version</string>
<string name="mode">Modus</string>
<string name="userspace">Benutzerfläche</string>
<string name="settings">Einstellungen</string>
<string name="support">Unterstützung</string>
<string name="watcher_channel_id">Wächterkanal</string>
<string name="error_authentication_failed">Anmeldung fehlgeschlagen</string>
<string name="error_authentication_failed">Authentifizierung fehlgeschlagen</string>
<string name="export_configs">Konfigurationen exportieren</string>
<string name="unknown_error">Unbekannter Fehler aufgetreten</string>
<string name="email_chooser">Sende eine E-Mail…</string>
<string name="error_authorization_failed">Autorisierung fehlgeschlagen</string>
<string name="location_services_required">Standortdienste erforderlich</string>
<string name="precise_location_required">Genauer Standort erforderlich</string>
<string name="error_invalid_code">Ungültiger QR Code</string>
<string name="error_none">Kein Fehler</string>
<string name="tunneling_apps">Getunnelte Apps</string>
<string name="included">eingeschlossen</string>
<string name="no_email_detected">Keine E-Mail-App erkannt</string>
<string name="logs_saved">Logs im Download Ordner gespeichert</string>
<string name="create_pin">PIN erstellen</string>
<string name="use_tunnel_on_wifi_name">Tunnel für WLAN-Namen verwenden</string>
<string name="no_wifi_names_configured">Keine WLAN-Namen für diesen Tunnel konfiguriert</string>
<string name="disabled">Deaktiviert</string>
<string name="mobile_data_tunnel">Als Tunnel für Mobile Daten setzen</string>
<string name="general">Allgemein</string>
<string name="restart_on_ping">Neustart bei PING Fehler (Beta)</string>
<string name="edit_tunnel">Tunnel bearbeiten</string>
<string name="set_primary_tunnel">Als Primären Tunnel setzen</string>
<string name="auto_on">Auto-Tunneln fortsetzen</string>
<string name="vpn_channel_id">VPN Kanal</string>
<string name="vpn_channel_name">VPN Benachrichtigungskanal</string>
<string name="watcher_channel_name">Wächterbenachrichtigungskanal</string>
@@ -150,20 +104,38 @@
<string name="kernel">Kernel</string>
<string name="use_kernel">Kernelmodul verwenden</string>
<string name="error_ssid_exists">SSID existiert bereits</string>
<string name="use_amnezia">"Amnezia Benutzerumgebung benutzen "</string>
<string name="junk_packet_count">Junk-Paket Anzahl</string>
<string name="junk_packet_maximum_size">Junk-Paket maximale Grösse</string>
<string name="init_packet_junk_size">Initial Junk-Paketgröße</string>
<string name="backend">Backend</string>
<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">Startanleitung erhalten</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">Schaue das</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="export_configs_failed">Konfigurationsexport fehlgeschlagen</string>
<string name="error_file_format">Ungültige Konfiguration Tunnel-Format</string>
<string name="error_file_format">Ungültiges Format der Tunnelkonfiguration</string>
<string name="response_packet_magic_header">Antwortpaket magic header</string>
</resources>
<string name="restart_at_boot">Beim Hochfahren starten</string>
<string name="optional_default">"optional, standard: "</string>
<string name="background_location_message">Für diese Funktion ist die Erlaubnis, den Standort jederzeit zu bestimmen, und/oder ein genauer Standort erforderlich. Bitte prüfe die</string>
<string name="vpn_settings">VPN-Systemeinstellungen</string>
<string name="always_on_message">Die Genehmigung für eine VPN-Verbindung wurde verweigert. Bitte überprüfe die</string>
<string name="chat_description">Tritt der Community bei</string>
<string name="set_custom_ping_cooldown">Ping-Neustart-Cooldown (sek)</string>
<string name="set_custom_ping_ip">Benutzerdefinierte Ping-IP einstellen</string>
<string name="default_ping_ip">(optional, Vorgabe ist peers)</string>
<string name="set_custom_ping_internal">Pingintervall (sek)</string>
<string name="always_on_message2">um sicherzustellen, dass Always-on VPN für alle anderen Apps ausgeschaltet ist und versuche es erneut</string>
<string name="tunnel_required">Feature erfordert mindestens einen Tunnel</string>
<string name="sec">Sek</string>
<string name="app_settings">App-Einstellungen</string>
<string name="background_location_message2">um sicherzustellen, dass diese Berechtigungen aktiviert sind.</string>
<string name="root_accepted">Root-Shell akzeptiert</string>
<string name="show_amnezia_properties">Amnezia-Eigenschaften anzeigen</string>
<string name="never">nie</string>
<string name="handshake">Handshake</string>
<string name="vpn_denied_dialog_title">Genehmigung verweigert</string>
<string name="logs">Logs</string>
</resources>
+2 -51
View File
@@ -1,47 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map">Mapa</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="email_chooser">Enviar un email…</string>
<string name="go">ir</string>
<string name="kernel">Kernel</string>
<string name="restart">Reiniciar túnel</string>
<string name="vpn_connection_failed">Error de conexión</string>
<string name="error_none">Sin error</string>
<string name="other">Otros</string>
<string name="add_peer">Añadir peer</string>
<string name="done">Hecho</string>
<string name="copy_public_key">Copiar public key</string>
<string name="base64_key">clave base64</string>
<string name="exported_configs_message">Configuración exportada a Descargas</string>
<string name="tunnel_on_wifi">Túnel en Wi-Fi no de confianza</string>
<string name="location_services_missing_message">La app no detecta activado el servicio de ubicación en tu dispositivo. Dependiendo del dispositivo, esto podría hacer que la característica de Wi-Fi no de confianza falle al leer el nombre Wi-Fi. ¿Quieres continuar de todas formas?</string>
<string name="excluded">excluida(s)</string>
<string name="all">todas</string>
<string name="mobile_data_tunnel">Establecer como túnel en datos móviles</string>
<string name="use_tunnel_on_wifi_name">Usar tunnel en nombre Wi-Fi</string>
<string name="disabled">desactivado</string>
<string name="version">Versión</string>
<string name="userspace">Espacio del usuario</string>
<string name="mode">Modo</string>
<string name="support">Ayuda</string>
<string name="private_key">Clave privada</string>
<string name="trusted_ssid_value_description">Enviar SSID</string>
<string name="trusted_ssid_empty_description">Introducir SSID</string>
<string name="add_tunnels_text">Añadir desde archivo o zip</string>
<string name="open_file">Abrir archivo</string>
<string name="add_from_qr">Añadir mediante código QR</string>
<string name="qr_scan">Escanear QR</string>
<string name="tunnel_name">Nombre de túnel</string>
<string name="add_tunnel">Añadir túnel</string>
<string name="exclude">Excluir</string>
<string name="include">Incluir</string>
<string name="tunnel_all">Todas las apps por el túnel</string>
<string name="config_changes_saved">Cambios de configuración guardados.</string>
<string name="save_changes">Guardar</string>
<string name="icon">Icono</string>
<string name="no_thanks">No gracias</string>
<string name="turn_on">Activar</string>
<string name="mtu">MTU</string>
<string name="dns_servers">DNS servers</string>
<string name="addresses">Addresses</string>
@@ -49,17 +35,9 @@
<string name="error_file_extension">No es un archivo .conf o .zip</string>
<string name="turn_off_tunnel">Desactiva antes el túnel</string>
<string name="no_tunnels">¡Ningún túnel añadido aún!</string>
<string name="watcher_notification_text_paused">Monitoreando cambios de red: En pausa</string>
<string name="watcher_notification_text_active">Monitoreando cambios de red: Activado</string>
<string name="tunnel_start_title">VPN conectada</string>
<string name="tunnel_start_text">Conectado al túnel</string>
<string name="notification_permission_required">Necesita permiso de notificaciones.</string>
<string name="add_trusted_ssid">Añadir nombres Wi-Fi de confianza</string>
<string name="tunnels">Túneles</string>
<string name="enable_auto_tunnel">Iniciar túnel-automático</string>
<string name="disable_auto_tunnel">Parar túnel-automático</string>
<string name="tunnel_mobile_data">Activar túnel en datos móviles</string>
<string name="privacy_policy">Ver Política de Privacidad</string>
<string name="privacy_policy">Ver Política de Privacidad</string>
<string name="okay">OK</string>
<string name="tunnel_on_ethernet">Túnel en ethernet</string>
<string name="prominent_background_location_title">Divulgación de la ubicación en segundo plano</string>
@@ -70,18 +48,11 @@
<string name="always_on_vpn_support">Permitir VPN siempre-activada</string>
<string name="location_services_not_detected">Servicios de Ubicación No Detectados</string>
<string name="hint_search_packages">Buscar paquetes</string>
<string name="attempt_connection">Intentando conexión...</string>
<string name="vpn_starting">Iniciando VPN</string>
<string name="db_name">wg-tunnel-db</string>
<string name="scanning_qr">Escaneando QR</string>
<string name="none">Sin nombres Wi-Fi de confianza</string>
<string name="auto_tunneling">Túnel-automático</string>
<string name="vpn_on">VPN on</string>
<string name="vpn_off">VPN off</string>
<string name="default_vpn_on">VPN Principal on</string>
<string name="default_vpn_off">VPN Principal off</string>
<string name="create_import">Crear desde cero</string>
<string name="turn_off_auto">La acción necesita que túnel-automático esté desactivado o en pausa</string>
<string name="turn_on_tunnel">La acción necesita un túnel activado</string>
<string name="rotate_keys">Rotar claves</string>
<string name="comma_separated_list">lista separada por comas</string>
@@ -94,9 +65,6 @@
<string name="error_authorization_failed">Fallo de autorización</string>
<string name="enabled_app_shortcuts">Habilitar acesos directos de app</string>
<string name="export_configs">Exportar configuración</string>
<string name="background_location_required">Se necesita ubicación en segundo plano</string>
<string name="location_services_required">Se necesita servicio de ubicación</string>
<string name="precise_location_required">Necesita ubicación precisa</string>
<string name="unknown_error">Error desconocido</string>
<string name="email_subject">Ayuda WG Tunnel</string>
<string name="interface_">Interfaz</string>
@@ -105,7 +73,6 @@
<string name="persistent_keepalive">Keepalive persistente</string>
<string name="docs_description">Leer documentación</string>
<string name="email_description">Envíame un email</string>
<string name="support_help_text">Si tienes problemas, ideas para mejoras, o simlemente comprometerte, tienes disponibles los siguientes recursos:</string>
<string name="use_kernel">Usar módulo del Kernel</string>
<string name="error_ssid_exists">SSID existente</string>
<string name="error_root_denied">Shell root denegado</string>
@@ -115,20 +82,13 @@
<string name="delete_tunnel">Eliminar túnel</string>
<string name="delete_tunnel_message">¿Estás seguro de que quieres eliminar este túnel?</string>
<string name="yes"></string>
<string name="resume">Reanudar</string>
<string name="pause">Pausar</string>
<string name="active">activado</string>
<string name="paused">en pausa</string>
<string name="tunneling_apps">Apps por el túnel</string>
<string name="included">incluida(s)</string>
<string name="always_on_disabled">VPN siempre-activada ha intentado iniciar un túnel, pero está característica está deshabilitada en los ajustes.</string>
<string name="no_email_detected">Ninguna app de email detectada</string>
<string name="no_browser_detected">Ningún navegador detectado</string>
<string name="logs_saved">Registros guardados en Descargas</string>
<string name="open_issue">Abrir una incidencia</string>
<string name="read_logs">Leer los registros</string>
<string name="auto">(automático)</string>
<string name="config_parse_error">Fallo al analizar la configuración</string>
<string name="incorrect_pin">El pin no es correcto</string>
<string name="pin_created">Pin creado con éxito</string>
<string name="enter_pin">Introduce tu pin</string>
@@ -136,13 +96,7 @@
<string name="enable_app_lock">Activar el bloqueo de aplicaciones</string>
<string name="restart_on_ping">Reiniciar al fallar ping (beta)</string>
<string name="set_primary_tunnel">Establecer como túnel Principal</string>
<string name="no_wifi_names_configured">No hay nombres Wi-Fi configurados para este túnel</string>
<string name="general">General</string>
<string name="edit_tunnel">Editar túnel</string>
<string name="auto_on">Reanudar túnel-automático</string>
<string name="auto_off">Pausar túnel-automático</string>
<string name="auto_tun_on">Reanudar el túnel automático</string>
<string name="auto_tun_off">Pausa del túnel automático</string>
<string name="settings">Ajustes</string>
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_id">Canal VPN</string>
@@ -150,9 +104,6 @@
<string name="watcher_channel_id">Canal del obvervador</string>
<string name="watcher_channel_name">Canal de notificación del obvervador</string>
<string name="prominent_background_location_message">La monitorización SSID Wi-Fi necesita de permiso de ubicación en segundo plano incluso si la app está cerrada. Mira el enlace a la Política de Privacidad en la pantalla de ayuda para más detalles.</string>
<string name="export_configs_failed">Error al exportar la configuración</string>
<string name="use_amnezia">"Utilizar el entorno de usuario de Amnezia "</string>
<string name="junk_packet_count">Recuento de paquetes basura</string>
<string name="backend">Backend</string>
<string name="junk_packet_minimum_size">Tamaño mínimo del paquete basura</string>
</resources>
</resources>
+141
View File
@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="vpn_channel_id">Canal VPN</string>
<string name="watcher_channel_id">Canal de surveillance</string>
<string name="watcher_channel_name">Canal de notification de surveillance</string>
<string name="turn_off_tunnel">Cette action nécessite la désactivation du tunnel</string>
<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">Voir la politique de confidentialité</string>
<string name="tunnel_on_ethernet">Tunnel sur Ethernet</string>
<string name="prominent_background_location_title">Divulgation de la localisation en arrière-plan</string>
<string name="thank_you">Merci d\'utiliser WG Tunnel!</string>
<string name="add_tunnels_text">Ajouter depuis un fichier ou un zip</string>
<string name="open_file">Fichier ouvert</string>
<string name="qr_scan">Scan du code QR</string>
<string name="exclude">Exclure</string>
<string name="tunnel_all">Tunneliser toutes les applications</string>
<string name="save_changes">Sauvegarder</string>
<string name="icon">Icône</string>
<string name="dns_servers">Serveurs DNS</string>
<string name="mtu">MTU</string>
<string name="peer">Pair</string>
<string name="allowed_ips">IPs autorisées</string>
<string name="endpoint">Point de sortie</string>
<string name="name">Nom</string>
<string name="always_on_vpn_support">Autoriser le VPN permanent</string>
<string name="location_services_not_detected">Services de localisation non détectés</string>
<string name="hint_search_packages">Rechercher des paquets</string>
<string name="auto_tunneling">Tunnel automatique</string>
<string name="vpn_off">VPN éteint</string>
<string name="turn_on_tunnel">Cette action nécessite un tunnel actif</string>
<string name="add_peer">Ajouter un pair</string>
<string name="done">Terminé</string>
<string name="rotate_keys">Rotation des clés</string>
<string name="error_file_extension">Le fichier n\'est pas un .conf ou .zip</string>
<string name="vpn_channel_name">Canal de notifications VPN</string>
<string name="app_name">WG Tunnel</string>
<string name="okay">Ok</string>
<string name="prominent_background_location_message">Cette fonctionnalité nécessite d\'autoriser les services de localisation en arrière-plan pour activer la surveillance du SSID Wi-Fi même lorsque l\'application est fermée. Pour plus de détails, veuillez consulter la politique de confidentialité disponible sur l\'écran d\'assistance.</string>
<string name="trusted_ssid_value_description">Envoyer le SSID</string>
<string name="include">Inclure</string>
<string name="add_from_qr">Ajouter depuis un code QR</string>
<string name="tunnel_name">Nom du tunnel</string>
<string name="config_changes_saved">Changements de la configuration sauvegardés.</string>
<string name="public_key">Clé publique</string>
<string name="addresses">Adresses</string>
<string name="db_name">wg-tunnel-db</string>
<string name="vpn_on">VPN allumé</string>
<string name="create_import">Créer à partir de zéro</string>
<string name="private_key">Clé privée</string>
<string name="interface_">Interface</string>
<string name="copy_public_key">Copier la clé publique</string>
<string name="base64_key">clé base64</string>
<string name="comma_separated_list">liste séparée par des virgules</string>
<string name="listen_port">Écouter sur le port</string>
<string name="random">(aléatoire)</string>
<string name="optional_no_recommend">(optionnel, non recommandé)</string>
<string name="persistent_keepalive">Keepalive persistent</string>
<string name="optional">(optionnel)</string>
<string name="preshared_key">Clé pré-partagée</string>
<string name="cancel">Annuler</string>
<string name="seconds">secondes</string>
<string name="error_authentication_failed">Échec de l\'authentification</string>
<string name="error_authorization_failed">Autorisation échouée</string>
<string name="export_configs">Exporter les configs</string>
<string name="tunnel_on_wifi">Tunnel sur wifi non fiable</string>
<string name="email_chooser">Envoyer un mail…</string>
<string name="docs_description">Lire la documentation</string>
<string name="email_description">Envoyer un mail</string>
<string name="use_kernel">Utiliser le module noyau</string>
<string name="error_ssid_exists">Le SSID existe déjà</string>
<string name="error_root_denied">Accès au shell en tant que root interdit</string>
<string name="error_no_file_explorer">Aucun explorateur de fichier n\'est installé</string>
<string name="auto_tunnel_title">Service de tunnel automatique</string>
<string name="delete_tunnel">Supprimer un tunnel</string>
<string name="delete_tunnel_message">Êtes-vous sûr de vouloir supprimer ce tunnel?</string>
<string name="tunneling_apps">Applis de tunnel</string>
<string name="included">inclus</string>
<string name="excluded">exclu</string>
<string name="no_email_detected">Aucune appli de mail détectée</string>
<string name="no_browser_detected">Aucun navigateur détecté</string>
<string name="open_issue">Signaler un problème</string>
<string name="incorrect_pin">Code PIN incorrect</string>
<string name="enter_pin">Entrez votre code PIN</string>
<string name="create_pin">Créer un code PIN</string>
<string name="restart_on_ping">Redémarrer après échec du ping (beta)</string>
<string name="mobile_data_tunnel">Définir comme tunnel de données mobiles</string>
<string name="version">Version</string>
<string name="support">Support</string>
<string name="junk_packet_minimum_size">Taille minimum des paquets indésirables</string>
<string name="init_packet_junk_size">Initialiser la taille des paquets indésirables</string>
<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 des paquets indésirables</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="error_file_format">Format de configuration du tunnel invalide</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="tunnel_required">Cette fonctionnalité nécessite au moins un tunnel</string>
<string name="app_settings">les réglages de l\'application</string>
<string name="background_location_message2">afin de s\'assurer que ces permissions soient actives.</string>
<string name="root_accepted">Accès au shell root autorisé</string>
<string name="set_custom_ping_ip">Personnaliser l\'ip de ping</string>
<string name="optional_default">"optionnel, par défaut : "</string>
<string name="show_amnezia_properties">Voir les propriétés d\'Amnezia</string>
<string name="never">jamais</string>
<string name="handshake">handshake</string>
<string name="logs">Journaux</string>
<string name="error_invalid_code">Code QR invalide</string>
<string name="enabled_app_shortcuts">Activer les raccourcis de l\'app</string>
<string name="unknown_error">Une erreur inconnue s\'est produite</string>
<string name="email_subject">Assistance WG Tunnel</string>
<string name="location_services_missing_message">L\'application détecte qu\'aucun service de localisation n\'est activé sur votre appareil. Selon votre appareil, cela peut empêcher la fonctionnalité « Wi-Fi de confiance » de lire le nom du Wi-Fi. Souhaitez-vous tout de même continuer?</string>
<string name="yes">Oui</string>
<string name="all">tout</string>
<string name="set_primary_tunnel">Définir comme tunnel principal</string>
<string name="read_logs">Lire les journaux</string>
<string name="auto">(auto)</string>
<string name="pin_created">Code PIN bien créé</string>
<string name="enable_app_lock">Activer le verrouillage de l\'appli</string>
<string name="use_tunnel_on_wifi_name">Utiliser ce tunnel selon le nom du wifi</string>
<string name="edit_tunnel">Éditer le tunnel</string>
<string name="settings">Réglages</string>
<string name="junk_packet_count">Nombre de paquets indésirables</string>
<string name="kernel">Noyau</string>
<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>
<string name="chat_description">Rejoindre la communauté</string>
<string name="background_location_message">L\'accès à la permission de localisation permanente et/ou la localisation précise est nécessaire pour cette fonctionnalité. Veuillez vérifier dans</string>
<string name="default_ping_ip">(facultatif, par défaut aux pairs)</string>
<string name="set_custom_ping_internal">Intervalle de ping (sec)</string>
<string name="set_custom_ping_cooldown">Temps d\'attente avant redémarrage du ping (sec)</string>
<string name="sec">sec</string>
</resources>
+120
View File
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="version">Versi</string>
<string name="settings">Pengaturan</string>
<string name="support">Support</string>
<string name="kernel">Kernel</string>
<string name="init_packet_junk_size">Ukuran sampah paket init</string>
<string name="app_name">WG Tunnel</string>
<string name="watcher_channel_name">Notifikasi Saluran Pengamat</string>
<string name="error_file_extension">File bukan .conf atau .zip</string>
<string name="turn_off_tunnel">Aksi memerlukan tunnel mati</string>
<string name="no_tunnels">Belum ada tunnel yang ditambahkan!</string>
<string name="tunnels">Tunnel</string>
<string name="tunnel_mobile_data">Tunnel pada data seluler</string>
<string name="privacy_policy">Lihat Kebijakan Privasi</string>
<string name="okay">Oke</string>
<string name="tunnel_on_ethernet">Tunnel pada ethernet</string>
<string name="prominent_background_location_title">Keterbukaan Lokasi Latar Belakang</string>
<string name="thank_you">Terima kasih telah menggunakan WG Tunnel!</string>
<string name="trusted_ssid_value_description">Kirim SSID</string>
<string name="add_tunnels_text">Tambah dari file atau zip</string>
<string name="open_file">Buka File</string>
<string name="add_from_qr">Tambahkan dari kode QR</string>
<string name="auto_tunneling">Tunnel-otomatis</string>
<string name="vpn_off">VPN mati</string>
<string name="vpn_on">VPN aktif</string>
<string name="create_import">Buat dari awal</string>
<string name="turn_on_tunnel">Tindakan memerlukan tunnel aktif</string>
<string name="add_peer">Tambahkan rekan</string>
<string name="done">Selesai</string>
<string name="interface_">Interface</string>
<string name="rotate_keys">Putar tombol</string>
<string name="private_key">Kunci privat</string>
<string name="comma_separated_list">Daftar yang dipisahkan koma</string>
<string name="listen_port">Dengarkan port</string>
<string name="random">(acak)</string>
<string name="optional">(opsional)</string>
<string name="optional_no_recommend">(opsional, tidak direkomendasikan)</string>
<string name="preshared_key">kunci Pre-shared</string>
<string name="seconds">detik</string>
<string name="persistent_keepalive">Tetap hidup</string>
<string name="cancel">Batal</string>
<string name="error_authorization_failed">Gagal mengotorisasi</string>
<string name="enabled_app_shortcuts">Mengaktifkan pintasan aplikasi</string>
<string name="export_configs">Ekspor konfigurasi</string>
<string name="unknown_error">Terjadi kesalahan yang tidak diketahui</string>
<string name="tunnel_on_wifi">Tunnel di wifi yang tidak tepercaya</string>
<string name="email_subject">WG Tunnel Support</string>
<string name="email_chooser">Kirim email…</string>
<string name="docs_description">Baca dokumentasi</string>
<string name="email_description">Kirimkan email kepada saya</string>
<string name="use_kernel">Gunakan modul kernel</string>
<string name="error_ssid_exists">SSID sudah ada</string>
<string name="error_root_denied">Root shell ditolak</string>
<string name="error_no_file_explorer">Tidak ada file explorer yang diinstal</string>
<string name="error_invalid_code">Kode QR tidak valid</string>
<string name="location_services_missing_message">Aplikasi tidak mendeteksi layanan lokasi apa pun yang diaktifkan di perangkat Anda. Tergantung pada perangkatnya, hal ini dapat menyebabkan fitur wifi yang tidak tepercaya gagal membaca nama wifi. Apakah Anda ingin melanjutkan?</string>
<string name="auto_tunnel_title">Layanan Auto-tunnel</string>
<string name="yes">Ya</string>
<string name="tunneling_apps">Aplikasi tunneling</string>
<string name="included">termasuk</string>
<string name="incorrect_pin">Pin salah</string>
<string name="pin_created">Pin berhasil dibuat</string>
<string name="enter_pin">Masukkan pin Anda</string>
<string name="restart_on_ping">Mulai ulang saat ping gagal (beta)</string>
<string name="use_tunnel_on_wifi_name">Gunakan tunnel pada nama wifi</string>
<string name="edit_tunnel">Edit tunnel</string>
<string name="junk_packet_count">Jumlah paket sampah</string>
<string name="junk_packet_minimum_size">Ukuran minimum paket sampah</string>
<string name="junk_packet_maximum_size">Ukuran maksimum paket sampah</string>
<string name="response_packet_junk_size">Ukuran sampah paket respons</string>
<string name="init_packet_magic_header">Isi header ajaib paket</string>
<string name="response_packet_magic_header">Header ajaib paket respons</string>
<string name="transport_packet_magic_header">Header ajaib paket transportasi</string>
<string name="underload_packet_magic_header">Header ajaib paket Underload</string>
<string name="unsure_how">Jika Anda tidak yakin bagaimana melanjutkannya</string>
<string name="see_the">Lihat</string>
<string name="getting_started_guide">Panduan Memulai</string>
<string name="error_file_format">Format konfigurasi tunnel tidak valid</string>
<string name="restart_at_boot">Mulai ulang saat boot</string>
<string name="vpn_denied_dialog_title">Izin Ditolak</string>
<string name="vpn_settings">Pengaturan sistem VPN</string>
<string name="always_on_message">Izin koneksi VPN telah ditolak. Silakan periksa</string>
<string name="always_on_message2">untuk memastikan VPN Selalu aktif dimatikan untuk semua aplikasi lain dan coba lagi</string>
<string name="chat_description">Bergabunglah dengan komunitas</string>
<string name="tunnel_required">Fitur membutuhkan setidaknya satu tunnel</string>
<string name="background_location_message">Izinkan izin lokasi sepanjang waktu dan/atau lokasi yang tepat diperlukan untuk fitur ini. Silakan lihat</string>
<string name="app_settings">pengaturan aplikasi</string>
<string name="background_location_message2">untuk memastikan izin ini diaktifkan.</string>
<string name="root_accepted">Shell root diterima</string>
<string name="set_custom_ping_ip">Atur ip ping kustom</string>
<string name="default_ping_ip">(optional, default ke peers)</string>
<string name="set_custom_ping_internal">Interval ping (detik)</string>
<string name="optional_default">"opsional, default: "</string>
<string name="set_custom_ping_cooldown">Cooldown Ping restart (detik)</string>
<string name="show_amnezia_properties">Tampilkan properti Amnezia</string>
<string name="never">tidak pernah</string>
<string name="sec">dtk</string>
<string name="handshake">handshake</string>
<string name="vpn_channel_id">Saluran VPN</string>
<string name="vpn_channel_name">Notifikasi Saluran VPN</string>
<string name="watcher_channel_id">Saluran Pengamat</string>
<string name="prominent_background_location_message">Fitur ini memerlukan izin lokasi latar belakang untuk mengaktifkan pemantauan SSID Wi-Fi bahkan saat aplikasi ditutup. Untuk detail lebih lanjut, silakan lihat Kebijakan Privasi yang ditautkan di layar Dukungan.</string>
<string name="copy_public_key">Salin kunci publik</string>
<string name="base64_key">kunci base64</string>
<string name="error_authentication_failed">Autentikasi gagal</string>
<string name="enable_app_lock">Aktifkan kunci aplikasi</string>
<string name="delete_tunnel">Hapus tunnel</string>
<string name="delete_tunnel_message">Apakah Anda yakin ingin menghapus tunnel ini?</string>
<string name="no_email_detected">Tidak ada aplikasi email yang terdeteksi</string>
<string name="no_browser_detected">Tidak ada browser yang terdeteksi</string>
<string name="excluded">dikecualikan</string>
<string name="all">semua</string>
<string name="open_issue">Membuka masalah</string>
<string name="read_logs">Baca log</string>
<string name="auto">(auto)</string>
<string name="create_pin">Buat pin</string>
<string name="mobile_data_tunnel">Ditetapkan sebagai tunnel data seluler</string>
<string name="set_primary_tunnel">Ditetapkan sebagai tunnel utama</string>
</resources>
+2
View File
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WG Tunnel</string>
<string name="error_file_extension">ファイルが.confまたは.zipではありません</string>
<string name="vpn_channel_id">VPNチャンネル</string>
<string name="vpn_channel_name">VPN通知チャンネル</string>
</resources>
+140 -1
View File
@@ -1,2 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="error_file_extension">Bestand is geen .conf of .zip</string>
<string name="turn_off_tunnel">Actie vereist uitgeschakelde tunnel</string>
<string name="tunnel_mobile_data">Tunnel bij mobiele data</string>
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_id">VPN Kanaal</string>
<string name="vpn_channel_name">VPN Notificatiekanaal</string>
<string name="tunnels">Tunnels</string>
<string name="privacy_policy">Bekijk 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="error_authentication_failed">Authenticatie mislukt</string>
<string name="icon">Icoon</string>
<string name="include">Meenemen</string>
<string name="addresses">Adres</string>
<string name="watcher_channel_id">Watcher Kanaal</string>
<string name="watcher_channel_name">Watcher Notificatiekanaal</string>
<string name="peer">Peer (extern systeem)</string>
<string name="allowed_ips">Allowed IPs</string>
<string name="always_on_vpn_support">Altijd-aan VPN toestaan</string>
<string name="location_services_not_detected">Locatieservices niet gevonden</string>
<string name="hint_search_packages">Zoek apps</string>
<string name="endpoint">Endpoint</string>
<string name="name">Naam</string>
<string name="auto_tunneling">Auto-tunnelen</string>
<string name="turn_on_tunnel">Actie vereist actieve tunnel</string>
<string name="seconds">seconden</string>
<string name="persistent_keepalive">Persistent keepalive</string>
<string name="error_authorization_failed">Autorisatie mislukt</string>
<string name="enabled_app_shortcuts">App snelkoppelingen inschakelen</string>
<string name="export_configs">Configs exporteren</string>
<string name="random">(willekeurig)</string>
<string name="thank_you">Bedankt voor het gebruiken van WG Tunnel!</string>
<string name="trusted_ssid_value_description">Verstuur SSID</string>
<string name="add_tunnels_text">Toevoegen uit bestand of zip</string>
<string name="add_from_qr">Toevoegen met QR code</string>
<string name="qr_scan">QR scannen</string>
<string name="exclude">Uitsluiten</string>
<string name="tunnel_all">Alle applicaties tunnelen</string>
<string name="config_changes_saved">Configuratiewijzigingen opgeslagen.</string>
<string name="comma_separated_list">Komma-gescheiden lijst</string>
<string name="open_file">Bestand openen</string>
<string name="public_key">Publieke sleutel</string>
<string name="tunnel_name">Tunnelnaam</string>
<string name="save_changes">Opslaan</string>
<string name="dns_servers">DNS servers</string>
<string name="mtu">MTU</string>
<string name="db_name">wg-tunnel-db</string>
<string name="vpn_on">VPN aan</string>
<string name="done">Gereed</string>
<string name="interface_">Interface</string>
<string name="create_import">Nieuw beginnen</string>
<string name="rotate_keys">Sleutels roteren</string>
<string name="vpn_off">VPN uit</string>
<string name="private_key">Prive sleutel</string>
<string name="copy_public_key">Publieke sleutel kopiëren</string>
<string name="base64_key">Base64 sleutel</string>
<string name="optional">(optioneel)</string>
<string name="cancel">Annuleren</string>
<string name="optional_no_recommend">(optioneel, niet aanbevolen)</string>
<string name="listen_port">Luisterpoort</string>
<string name="preshared_key">Pre-shared key</string>
<string name="auto_tunnel_title">Auto-tunnel service</string>
<string name="error_invalid_code">Ongeldige QR code</string>
<string name="included">inclusief</string>
<string name="open_issue">Open een melding</string>
<string name="create_pin">Stel PIN in</string>
<string name="enable_app_lock">Schakel app-lock in</string>
<string name="restart_on_ping">Herstart bij mislukte ping (beta)</string>
<string name="init_packet_junk_size">Initiële junk packet grootte</string>
<string name="junk_packet_maximum_size">Junk packet maximum grootte</string>
<string name="response_packet_junk_size">Response junk packet grootte</string>
<string name="delete_tunnel_message">Weet je zeker dat je deze tunnel wil verwijderen?</string>
<string name="yes">Ja</string>
<string name="no_email_detected">Geen email app gevonden</string>
<string name="read_logs">Lees logboeken</string>
<string name="auto">(auto)</string>
<string name="mobile_data_tunnel">Stel in als mobiele datatunnel</string>
<string name="set_primary_tunnel">Stel in als primaire tunnel</string>
<string name="edit_tunnel">Tunnel bewerken</string>
<string name="version">Versie</string>
<string name="settings">Instellingen</string>
<string name="support">Ondersteuning</string>
<string name="junk_packet_minimum_size">Junk packet minimum grootte</string>
<string name="tunneling_apps">Tunnel apps</string>
<string name="all">alle</string>
<string name="no_browser_detected">Geen browser gevonden</string>
<string name="kernel">Kernel</string>
<string name="delete_tunnel">Tunnel verwijderen</string>
<string name="junk_packet_count">Junk packetteller</string>
<string name="incorrect_pin">Foutieve PIN</string>
<string name="enter_pin">Vul PIN in</string>
<string name="excluded">exclusief</string>
<string name="pin_created">PIN aangemaakt</string>
<string name="use_tunnel_on_wifi_name">Gebruik tunnel bij WiFi naam</string>
<string name="error_file_format">Ongeldige tunnelconfiguratie</string>
<string name="set_custom_ping_ip">Stel eigen ping IP in</string>
<string name="add_peer">Peer toevoegen</string>
<string name="init_packet_magic_header">Initiële packet magic header</string>
<string name="chat_description">Wordt lid van de community</string>
<string name="prominent_background_location_title">Achtergrondlocatievrijgave</string>
<string name="unknown_error">Onbekende fout opgetreden</string>
<string name="email_subject">WG Tunnel ondersteuning</string>
<string name="email_chooser">Stuur een email…</string>
<string name="docs_description">Lees de documentatie</string>
<string name="use_kernel">Gebruik kernelmodus</string>
<string name="error_ssid_exists">SSID bestaat al</string>
<string name="error_root_denied">Root toegang geweigerd</string>
<string name="tunnel_on_wifi">Tunnelen bij onvertrouwde WiFi</string>
<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">Herstart 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>
<string name="default_ping_ip">(optioneel, standaard op peers)</string>
<string name="set_custom_ping_cooldown">Ping herstart afkoelperiode (sec)</string>
<string name="background_location_message2">om te controleren of toegang is verleend.</string>
<string name="show_amnezia_properties">Amnezia instellingen weergeven</string>
<string name="never">nooit</string>
<string name="sec">sec</string>
<string name="handshake">handshake</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="tunnel_required">Functie vereist tenminste één tunnel</string>
<string name="app_settings">app instellingen</string>
<string name="root_accepted">Root toegang verleend</string>
<string name="set_custom_ping_internal">Ping interval (sec)</string>
<string name="optional_default">"optioneel, standaard "</string>
<string name="prominent_background_location_message">Deze functie vereist locatierechten om het WiFi SSID te kunnen bepalen. Ook als de applicatie is gesloten. Lees het privacybeleid op het scherm Ondersteuning voor meer informatie.</string>
<string name="location_services_missing_message">De app kan geen ingeschakelde locatieservices op je apparaat vinden. Afhankelijk van het type apparaat kan dit leiden tot een niet functionerende herkenning van het verbonden WiFi netwerk. De niet-vertrouwde WiFi functionaliteit werkt daardoor mogelijk niet. Toch doorgaan?</string>
<string name="background_location_message">Permanente achtergrondtoegang tot exacte locatie is vereist voor deze functie. Bekijk aub de</string>
<string name="transport_packet_magic_header">Transport packet magic header</string>
</resources>
+134 -1
View File
@@ -1,2 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="error_authorization_failed">Autorização falhou</string>
<string name="export_configs">Exportar configurações</string>
<string name="incorrect_pin">O Pin está errado</string>
<string name="create_pin">Criar um pin</string>
<string name="set_primary_tunnel">Selecionar como túnel principal</string>
<string name="chat_description">Junte-se à comunidade</string>
<string name="tunnel_required">Característica requer pelo menos um túnel</string>
<string name="background_location_message2">para garantir que essas permissões estejam ativadas.</string>
<string name="optional_no_recommend">(opcional, não recomendado)</string>
<string name="dns_servers">Servidores DNS</string>
<string name="save_changes">Gravar</string>
<string name="add_from_qr">Adicionar a partir de código QR</string>
<string name="tunnels">Túneis</string>
<string name="email_description">Me envie um email</string>
<string name="docs_description">Ler a documentação</string>
<string name="no_email_detected">Nenhuma aplicação de email detetado</string>
<string name="always_on_vpn_support">Permitir VPN sempre ligada</string>
<string name="read_logs">Ler os registos</string>
<string name="auto_tunneling">Auto-túnel</string>
<string name="optional">(opcional)</string>
<string name="settings">Configurações</string>
<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>
<string name="tunnel_on_ethernet">Túnel na ethernet</string>
<string name="create_import">Criar do zero</string>
<string name="turn_on_tunnel">Esta ação precisa um túnel ativo</string>
<string name="enabled_app_shortcuts">Ativar atalhos de aplicações</string>
<string name="tunnel_on_wifi">Túnel em Wi-Fi não confiável</string>
<string name="email_subject">Apoio para o WG Tunnel</string>
<string name="email_chooser">Enviar um email…</string>
<string name="prominent_background_location_title">Revelar a localização em segundo plano</string>
<string name="thank_you">Obrigado por usar o WG Tunnel!</string>
<string name="qr_scan">Escanear o código QR</string>
<string name="tunnel_name">Nome do Túnel</string>
<string name="location_services_not_detected">Serviço de localização não foi detetado</string>
<string name="hint_search_packages">Procurar pacotes</string>
<string name="delete_tunnel_message">Tem certeza que quer apagar este túnel?</string>
<string name="yes">Sim</string>
<string name="tunneling_apps">Aplicações com túnel</string>
<string name="excluded">excluído</string>
<string name="all">todos</string>
<string name="auto">(automático)</string>
<string name="pin_created">Pin criado com sucesso</string>
<string name="enter_pin">Digite o seu pin</string>
<string name="enable_app_lock">Ligar bloqueio de aplicação</string>
<string name="restart_on_ping">Reiniciar em falha de ping (beta)</string>
<string name="edit_tunnel">Editar túnel</string>
<string name="version">Versão</string>
<string name="kernel">Kernel</string>
<string name="junk_packet_count">Quantidade de pacotes-lixo</string>
<string name="junk_packet_minimum_size">Tamanho mínimo de pacote-lixo</string>
<string name="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="error_file_format">Formato de configuração inválido</string>
<string name="always_on_message">A permissão de conexão VPN foi negada. Por favor, verifique</string>
<string name="background_location_message">Permitir que toda a permissão de localização do tempo e/ou localização precisa é necessária para este recurso. Por favor, veja</string>
<string name="app_settings">configurações da app</string>
<string name="root_accepted">Shell root aceito</string>
<string name="set_custom_ping_ip">Definir ip ping personalizado</string>
<string name="default_ping_ip">(opcional, padrão para pares)</string>
<string name="set_custom_ping_internal">Intervalo de ping (seg)</string>
<string name="optional_default">"opcional, padrão: "</string>
<string name="show_amnezia_properties">Mostrar propriedades de Amnezia</string>
<string name="never">nunca</string>
<string name="sec">seg</string>
<string name="handshake">handshake</string>
<string name="turn_off_tunnel">Esta ação só é possível com o túnel inativo</string>
<string name="allowed_ips">IPs Permitidos</string>
<string name="endpoint">Endpoint</string>
<string name="name">Nome</string>
<string name="vpn_on">VPN ligada</string>
<string name="vpn_off">VPN desligada</string>
<string name="add_peer">Adicionar par</string>
<string name="done">Feito</string>
<string name="interface_">Interface</string>
<string name="base64_key">Chave base64</string>
<string name="persistent_keepalive">Manter a conexão persistente (keepalive)</string>
<string name="cancel">Cancelar</string>
<string name="unknown_error">Ocorreu um erro desconhecido</string>
<string name="error_ssid_exists">SSID já existe</string>
<string name="error_root_denied">Shell Root negado</string>
<string name="delete_tunnel">Apagar túnel</string>
<string name="included">incluso</string>
<string name="junk_packet_maximum_size">Tamanho máximo de pacote-lixo</string>
<string name="init_packet_junk_size">Tamanho de pacote-lixo inicial</string>
<string name="vpn_denied_dialog_title">Permissão negada</string>
<string name="vpn_settings">Configurações do sistema VPN</string>
<string name="error_invalid_code">Código QR inválido</string>
<string name="location_services_missing_message">A aplicação não detetou o serviço de localização ativado no seu dispositivo. Dependendo do dispositivo, isto pode causar que a função de Wi-Fi não confiável falhe em ler o nome do Wi-Fi. Quer continuar mesmo assim?</string>
<string name="auto_tunnel_title">Serviço de Auto-túnel</string>
<string name="error_no_file_explorer">Nenhum explorador de ficheiros instalado</string>
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_id">Canal de VPN</string>
<string name="vpn_channel_name">Canal de notificações VPN</string>
<string name="watcher_channel_id">Canal de vigia</string>
<string name="watcher_channel_name">Canal de notificações de vigia</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="trusted_ssid_value_description">Envie o SSID</string>
<string name="add_tunnels_text">Adicionar a partir de ficheiro ou zip</string>
<string name="open_file">Abrir Ficheiro</string>
<string name="exclude">Excluir</string>
<string name="include">Incluir</string>
<string name="tunnel_all">Todas as aplicações pelo túnel</string>
<string name="config_changes_saved">Mudanças nas configurações gravadas.</string>
<string name="icon">Ícone</string>
<string name="public_key">Chave pública</string>
<string name="addresses">Endereços</string>
<string name="peer">Par</string>
<string name="db_name">wg-tunnel-db</string>
<string name="rotate_keys">Revezar chaves</string>
<string name="private_key">Chave privada</string>
<string name="copy_public_key">Copiar chave pública</string>
<string name="comma_separated_list">Lista separada por vírgulas</string>
<string name="listen_port">Porta de escuta</string>
<string name="random">(aleatório)</string>
<string name="preshared_key">Chave pré-partilhada</string>
<string name="seconds">segundos</string>
<string name="error_authentication_failed">Autenticação falhou</string>
<string name="use_kernel">Usar o módulo do kernel</string>
<string name="no_browser_detected">Nenhum navegador detetado</string>
<string name="open_issue">Abrir um problema</string>
<string name="mobile_data_tunnel">Selecionar como túnel em dados móveis</string>
<string name="use_tunnel_on_wifi_name">Usar túnel em wifi com nome</string>
<string name="see_the">Veja o</string>
<string name="getting_started_guide">guia de início rápido</string>
<string name="always_on_message2">para ter certeza que VPN Sempre-ligada é desligada para todas as outras aplicações e tente novamente</string>
<string name="restart_at_boot">Reiniciar no arranque</string>
</resources>
+46 -73
View File
@@ -1,95 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="watcher_notification_text_active">Monitoramento de mudanças do estado da rede: Ativo</string>
<string name="watcher_notification_text_paused">Monitoramento de mudanças do estado da rede: pausado</string>
<string name="tunnel_start_title">VPN conectada</string>
<string name="tunnel_on_ethernet">Túnel na ethernet</string>
<string name="save_changes">Salvar</string>
<string name="save_changes">Gravar</string>
<string name="public_key">Chave pública</string>
<string name="addresses">Endereços</string>
<string name="dns_servers">Servidores DNS</string>
<string name="endpoint">Endpoint</string>
<string name="name">Nome</string>
<string name="restart">Reiniciar Túnel</string>
<string name="create_import">Criar do zero</string>
<string name="turn_off_auto">Esta ação precisa do auto-túnel desativado ou pausado</string>
<string name="rotate_keys">Revezar chaves</string>
<string name="private_key">Chave privada</string>
<string name="base64_key">Chave base64</string>
<string name="optional_no_recommend">(opcional, não recomendado)</string>
<string name="preshared_key">Chave pré-compartilhada</string>
<string name="preshared_key">Chave pré-partilhada</string>
<string name="seconds">segundos</string>
<string name="export_configs">Exportar configurações</string>
<string name="export_configs_failed">Falhou ao exportar configurações</string>
<string name="go">ir</string>
<string name="error_no_file_explorer">Nenhum explorador de arquivos instalado</string>
<string name="error_no_file_explorer">Nenhum explorador de ficheiros instalado</string>
<string name="error_invalid_code">Código QR inválido</string>
<string name="auto_tunnel_title">Serviço de Auto-túnel</string>
<string name="excluded">excluído</string>
<string name="all">todos</string>
<string name="enter_pin">Digite seu pin</string>
<string name="enter_pin">Digite o seu pin</string>
<string name="use_tunnel_on_wifi_name">Usar túnel em wifi com nome</string>
<string name="auto_tun_on">Continuar auto-túnel</string>
<string name="auto_tun_off">Pausar auto-túnel</string>
<string name="version">Versão</string>
<string name="mode">Modo</string>
<string name="use_amnezia">"Usar Amnezia em modo usuário "</string>
<string name="junk_packet_count">Número de pacotes-lixo</string>
<string name="junk_packet_count">Quantidade de pacotes-lixo</string>
<string name="junk_packet_minimum_size">Tamanho mínimo de pacote-lixo</string>
<string name="junk_packet_maximum_size">Tamanho máximo de pacote-lixo</string>
<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 arquivo 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 habilitar o monitoramento do SSID da rede Wi-Fi mesmo quando o aplicativo está fechado. Para mais detalhes, por favor veja a Política de Privacidade na tela de Suporte.</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="turn_off_tunnel">Esta ação só é possível com o túnel inativo</string>
<string name="enabled_app_shortcuts">Habilitar atalhos do aplicativo</string>
<string name="notification_permission_required">Necessita permissões de notificação.</string>
<string name="add_trusted_ssid">Adicionar nome de Wi-Fi confiável</string>
<string name="enable_auto_tunnel">Iniciar auto-túnel</string>
<string name="enabled_app_shortcuts">Ativar atalhos de aplicações</string>
<string name="tunnels">Túneis</string>
<string name="disable_auto_tunnel">Parar auto-túnel</string>
<string name="tunnel_start_text">Conectado ao túnel</string>
<string name="trusted_ssid_empty_description">Digite o SSID</string>
<string name="no_thanks">Não, obrigado</string>
<string name="privacy_policy">Ver a Política de Privacidade</string>
<string name="okay">OK</string>
<string name="tunnel_mobile_data">Túnel em dados móveis</string>
<string name="prominent_background_location_title">Revelar a localização em segundo plano</string>
<string name="prominent_background_location_title">Revelar a localização em segundo plano</string>
<string name="thank_you">Obrigado por usar o WG Tunnel!</string>
<string name="trusted_ssid_value_description">Envie o SSID</string>
<string name="open_file">Abrir Arquivo</string>
<string name="open_file">Abrir Ficheiro</string>
<string name="add_from_qr">Adicionar a partir de código QR</string>
<string name="add_tunnels_text">Adicionar a partir de arquivo ou zip</string>
<string name="tunnel_all">Todos os aplicativos pelo túnel</string>
<string name="add_tunnels_text">Adicionar a partir de ficheiro ou zip</string>
<string name="tunnel_all">Todas as aplicações pelo túnel</string>
<string name="icon">Ícone</string>
<string name="turn_on">Ligar</string>
<string name="qr_scan">Escanear o código QR</string>
<string name="tunnel_name">Nome do Túnel</string>
<string name="add_tunnel">Adicionar Túnel</string>
<string name="config_changes_saved">Mudanças nas configurações salvas.</string>
<string name="config_changes_saved">Mudanças nas configurações gravadas.</string>
<string name="exclude">Excluir</string>
<string name="include">Incluir</string>
<string name="map">Mapa</string>
<string name="vpn_connection_failed">Falha na conexão</string>
<string name="mtu">MTU</string>
<string name="always_on_vpn_support">Permitir VPN sempre ligada</string>
<string name="allowed_ips">IPs Permitidos</string>
<string name="attempt_connection">Tentando conexão..</string>
<string name="peer">Par</string>
<string name="location_services_not_detected">Serviço de localização não foi detectado</string>
<string name="location_services_not_detected">Serviço de localização não foi detetado</string>
<string name="hint_search_packages">Procurar pacotes</string>
<string name="vpn_starting">Iniciando VPN</string>
<string name="other">Outro</string>
<string name="scanning_qr">Escaneando código QR</string>
<string name="none">Nenhum nome de Wi-Fi confiável</string>
<string name="auto_tunneling">Auto-túnel</string>
<string name="default_vpn_on">VPN Principal ligada</string>
<string name="vpn_on">VPN ligada</string>
<string name="vpn_off">VPN desligada</string>
<string name="listen_port">Porta de escuta</string>
<string name="default_vpn_off">VPN Principal desligada</string>
<string name="turn_on_tunnel">Esta ação precisa um túnel ativo</string>
<string name="done">Feito</string>
<string name="add_peer">Adicionar par</string>
@@ -103,58 +74,60 @@
<string name="error_authentication_failed">Autenticação falhou</string>
<string name="error_authorization_failed">Autorização falhou</string>
<string name="restart_on_ping">Reiniciar em falha de ping (beta)</string>
<string name="background_location_required">Necessita a localização em segundo plano</string>
<string name="location_services_required">Necessita dos serviços de localização</string>
<string name="email_description">Me envie um email</string>
<string name="error_ssid_exists">SSID já existe</string>
<string name="delete_tunnel_message">Tem certeza que você quer apagar este túnel?</string>
<string name="delete_tunnel_message">Tem certeza que quer apagar este túnel?</string>
<string name="yes">Sim</string>
<string name="precise_location_required">Necessita da localização precisa</string>
<string name="exported_configs_message">Configurações exportadas para downloads</string>
<string name="unknown_error">Ocorreu um erro desconhecido</string>
<string name="email_subject">Suporte para o WG Tunnel</string>
<string name="email_subject">Apoio para o WG Tunnel</string>
<string name="tunnel_on_wifi">Túnel em Wi-Fi não confiável</string>
<string name="error_none">Nenhum erro</string>
<string name="delete_tunnel">Apagar túnel</string>
<string name="email_chooser">Enviar um email…</string>
<string name="use_kernel">Usar o módulo do kernel</string>
<string name="docs_description">Ler a documentação</string>
<string name="support_help_text">Se você enfrentar problemas, tiver ideias para melhorias ou apenas quiser participar, os seguintes recursos estão disponíveis:</string>
<string name="error_root_denied">Shell Root negado</string>
<string name="location_services_missing_message">O aplicativo não detectou o serviço de localização habilitado no seu dispositivo. Dependendo do dispositivo, isto pode causar que a função de Wi-Fi não confiável falhe em ler o nome do Wi-Fi. Quer continuar mesmo assim?</string>
<string name="paused">pausado</string>
<string name="location_services_missing_message">A aplicação não detetou o serviço de localização ativado no seu dispositivo. Dependendo do dispositivo, isto pode causar que a função de Wi-Fi não confiável falhe em ler o nome do Wi-Fi. Quer continuar mesmo assim?</string>
<string name="included">incluso</string>
<string name="resume">Continuar</string>
<string name="pause">Pausar</string>
<string name="active">ativo</string>
<string name="always_on_disabled">VPN sempre ligada tentou iniciar um túnel, mas este recurso está desligado nas configurações.</string>
<string name="open_issue">Abrir um problema</string>
<string name="tunneling_apps">Aplicativos em túnel</string>
<string name="no_email_detected">Nenhum aplicativo de email detectado</string>
<string name="no_browser_detected">Nenhum navegador detectado</string>
<string name="logs_saved">Registros salvos em downloads</string>
<string name="tunneling_apps">Aplicações com túnel</string>
<string name="no_email_detected">Nenhuma aplicação de email detetado</string>
<string name="no_browser_detected">Nenhum navegador detetado</string>
<string name="incorrect_pin">O Pin está errado</string>
<string name="auto">(automático)</string>
<string name="disabled">desligado</string>
<string name="read_logs">Ler os registros</string>
<string name="config_parse_error">Falha na interpretação das configurações</string>
<string name="read_logs">Ler os registos</string>
<string name="pin_created">Pin criado com sucesso</string>
<string name="auto_on">Continuar auto-túnel</string>
<string name="create_pin">Criar um pin</string>
<string name="enable_app_lock">Ligar trava de aplicativo</string>
<string name="no_wifi_names_configured">Nenhum Wi-Fi configurado para este túnel</string>
<string name="enable_app_lock">Ligar bloqueio de aplicação</string>
<string name="edit_tunnel">Editar túnel</string>
<string name="mobile_data_tunnel">Selecionar como túnel em dados móveis</string>
<string name="set_primary_tunnel">Selecionar como túnel principal</string>
<string name="general">Geral</string>
<string name="userspace">Modo usuário</string>
<string name="support">Suporte</string>
<string name="kernel">Kernel</string>
<string name="auto_off">Pausar auto-túnel</string>
<string name="backend">Backend</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="error_file_format">Formato de arquivo de configuração inválido</string>
</resources>
<string name="error_file_format">Formato de configuração inválido</string>
<string name="vpn_channel_id">Canal de VPN</string>
<string name="vpn_channel_name">Canal de notificações VPN</string>
<string name="watcher_channel_id">Canal de vigia</string>
<string name="watcher_channel_name">Canal de notificações de vigia</string>
<string name="db_name">wg-tunnel-db</string>
<string name="set_custom_ping_ip">Definir ip ping personalizado</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>
<string name="chat_description">Junte-se à comunidade</string>
<string name="tunnel_required">Característica requer pelo menos um túnel</string>
<string name="app_settings">configurações da app</string>
<string name="background_location_message2">para garantir que essas permissões estejam ativadas.</string>
<string name="root_accepted">Shell root aceito</string>
<string name="optional_default">"opcional, padrão: "</string>
<string name="show_amnezia_properties">Mostrar propriedades de Amnezia</string>
<string name="never">nunca</string>
<string name="default_ping_ip">(opcional, padrão para pares)</string>
<string name="set_custom_ping_internal">Intervalo de Ping (seg)</string>
<string name="handshake">handshake</string>
<string name="background_location_message">Permitir que toda a permissão de localização do tempo e/ou localização precisa é necessária para este recurso. Por favor, veja</string>
<string name="sec">seg</string>
</resources>
+29 -57
View File
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="turn_off_tunnel">Действие требует отключения туннеля</string>
<string name="add_tunnel">Добавить туннель</string>
<string name="mtu">MTU</string>
<string name="tunnel_name">Имя туннеля</string>
<string name="public_key">Публичный ключ</string>
@@ -9,10 +8,9 @@
<string name="peer">Пир</string>
<string name="privacy_policy">Посмотреть политику конфиденциальности</string>
<string name="icon">Иконка</string>
<string name="turn_on">Включить</string>
<string name="add_from_qr">Добавить из QR</string>
<string name="qr_scan">Сканировать QR</string>
<string name="auto_tunneling">Авто-туннелирование</string>
<string name="auto_tunneling">Автотуннелирование</string>
<string name="no_tunnels">Туннели ещё не добавлены!</string>
<string name="open_file">Открыть файл</string>
<string name="exclude">Исключить</string>
@@ -20,36 +18,26 @@
<string name="tunnel_all">Туннель для всех приложений</string>
<string name="config_changes_saved">Изменения конфигурации сохранены.</string>
<string name="save_changes">Сохранить</string>
<string name="no_thanks">Нет, спасибо</string>
<string name="map">Карта</string>
<string name="addresses">Адреса</string>
<string name="dns_servers">DNS-серверы</string>
<string name="allowed_ips">Разрешённые IP</string>
<string name="endpoint">Конечная точка</string>
<string name="restart">Перезапустить туннель</string>
<string name="vpn_connection_failed">Ошибка соединения</string>
<string name="always_on_vpn_support">Разрешить постоянный VPN</string>
<string name="hint_search_packages">Поиск приложений</string>
<string name="other">Другое</string>
<string name="vpn_on">VPN вкл.</string>
<string name="vpn_off">VPN откл.</string>
<string name="interface_">Интерфейс</string>
<string name="optional">(необязательно)</string>
<string name="optional_no_recommend">(необязательно, не рекомендуется)</string>
<string name="resume">Восстановить</string>
<string name="tunneling_apps">Туннелируемые приложения</string>
<string name="paused">приостановлено</string>
<string name="active">активно</string>
<string name="excluded">исключено</string>
<string name="all">все</string>
<string name="no_email_detected">Приложение для отправки почты не обнаружено</string>
<string name="enter_pin">Введите свой PIN-код</string>
<string name="enter_pin">Введите PIN-код</string>
<string name="enable_app_lock">Включить блокировку приложения</string>
<string name="restart_on_ping">Перезапуск при сбое пинга (бета)</string>
<string name="settings">Настройки</string>
<string name="support">Поддержка</string>
<string name="backend">Модуль</string>
<string name="use_amnezia">"Использовать модуль Amnezia режима пользователя "</string>
<string name="init_packet_junk_size">Начальный размер «мусорного» пакета</string>
<string name="response_packet_junk_size">Размер ответного «мусорного» пакета</string>
<string name="init_packet_magic_header">Заголовок пакета инициализации</string>
@@ -59,14 +47,10 @@
<string name="cancel">Отмена</string>
<string name="docs_description">Посмотреть документацию</string>
<string name="email_chooser">Отправить письмо…</string>
<string name="add_trusted_ssid">Добавить доверенное имя сети Wi-Fi</string>
<string name="included">включено</string>
<string name="vpn_starting">Идёт запуск VPN</string>
<string name="auto_tunnel_title">Сервис авто-туннелирования</string>
<string name="auto_tunnel_title">Сервис автотуннелирования</string>
<string name="create_import">Создать с нуля</string>
<string name="private_key">Закрытый ключ</string>
<string name="pause">Приостановить</string>
<string name="logs_saved">Журнал сохранён в Загрузки</string>
<string name="db_name">wg-tunnel-db</string>
<string name="base64_key">Ключ в base64</string>
<string name="error_no_file_explorer">Не найден файловый менеджер</string>
@@ -76,30 +60,18 @@
<string name="tunnel_on_wifi">Туннель в недоверенных сетях Wi-Fi</string>
<string name="error_file_extension">Файл не имеет расширение .conf или .zip</string>
<string name="random">(случайно)</string>
<string name="tunnel_start_text">Подключено к туннелю</string>
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_id">Канал VPN</string>
<string name="vpn_channel_name">Канал уведомлений VPN</string>
<string name="watcher_channel_id">Канал наблюдателя</string>
<string name="watcher_channel_name">Канал уведомлений наблюдателя</string>
<string name="watcher_notification_text_active">Отслеживание состояния сети: активно</string>
<string name="notification_permission_required">Требуется разрешение на отображение уведомлений.</string>
<string name="tunnels">Туннели</string>
<string name="enable_auto_tunnel">Запустить авто-туннель</string>
<string name="disable_auto_tunnel">Остановить авто-туннель</string>
<string name="okay">Хорошо</string>
<string name="okay">Хорошо</string>
<string name="prominent_background_location_title">Фоновая передача местоположения</string>
<string name="thank_you">Благодарим Вас за использование WG Tunnel!</string>
<string name="thank_you">Благодарим вас за использование WG Tunnel!</string>
<string name="trusted_ssid_value_description">Отправить SSID</string>
<string name="trusted_ssid_empty_description">Введите SSID</string>
<string name="add_tunnels_text">Добавить из файла или архива</string>
<string name="location_services_not_detected">Сервисы местоположения не обнаружены</string>
<string name="attempt_connection">Попытка соединения…</string>
<string name="scanning_qr">Поиск QR-кода</string>
<string name="none">Нет доверенных имён Wi-Fi</string>
<string name="default_vpn_on">Основной VPN вкл.</string>
<string name="default_vpn_off">Основной VPN выкл.</string>
<string name="turn_off_auto">Необходимо приостановить или отключить авто-туннелирование</string>
<string name="turn_on_tunnel">Действие требует наличие активного туннеля</string>
<string name="add_peer">Добавить пира</string>
<string name="rotate_keys">Обновить ключи</string>
@@ -110,55 +82,34 @@
<string name="persistent_keepalive">Поддержание работы туннеля (keepalive)</string>
<string name="error_authentication_failed">Сбой аутентификации</string>
<string name="export_configs">Экспорт конфигурации</string>
<string name="location_services_required">Необходимо наличие служб местоположения</string>
<string name="error_invalid_code">Некорректный QR-код</string>
<string name="location_services_missing_message">Приложение не обнаружило сервис местоположения на вашем устройстве. На некоторых устройствах это может привести к невозможности определения имени сети Wi-Fi и сбою функции недоверенной сети. Всё равно продолжить?</string>
<string name="error_ssid_exists">SSID уже существует</string>
<string name="error_root_denied">Root-доступ запрещён</string>
<string name="error_none">Нет ошибки</string>
<string name="delete_tunnel">Удалить туннель</string>
<string name="yes">Да</string>
<string name="use_tunnel_on_wifi_name">Использовать туннель в сети Wi-Fi</string>
<string name="disabled">отключено</string>
<string name="auto_off">Приостановить авто-туннель</string>
<string name="auto_tun_on">Восстановить авто-туннель</string>
<string name="watcher_notification_text_paused">Отслеживание состояния сети: приостановлено</string>
<string name="tunnel_start_title">VPN подключен</string>
<string name="prominent_background_location_message">Эта функция требует фоновый доступ к местоположению для отслеживания имён сетей Wi-Fi, даже когда приложение закрыто. Для получения дополнительной информации, прочтите политику конфиденциальности на экране поддержки.</string>
<string name="done">Готово</string>
<string name="copy_public_key">Копировать открытый ключ</string>
<string name="error_authorization_failed">Не удалось пройти аутентификацию</string>
<string name="enabled_app_shortcuts">Включить ярлыки приложения</string>
<string name="export_configs_failed">Не удалось экспортировать конфигурацию</string>
<string name="precise_location_required">Необходимо точное местоположение</string>
<string name="open_issue">Сообщить о проблеме</string>
<string name="config_parse_error">Не удалось разобрать файл конфигурации</string>
<string name="incorrect_pin">Некорректный PIN-код</string>
<string name="pin_created">PIN создан успешно</string>
<string name="pin_created">PIN-код создан успешно</string>
<string name="create_pin">Создать PIN-код</string>
<string name="mobile_data_tunnel">Назначить как туннель для мобильного интернета</string>
<string name="edit_tunnel">Редактировать туннель</string>
<string name="auto_on">Восстановить авто-туннель</string>
<string name="auto_tun_off">Приостановить авто-туннель</string>
<string name="junk_packet_count">Количество «мусорных» пакетов</string>
<string name="junk_packet_maximum_size">Максимальный размер «мусорного» пакета</string>
<string name="error_file_format">некорректный формат конфигурации туннеля</string>
<string name="background_location_required">Необходим фоновый доступ к местоположению</string>
<string name="exported_configs_message">Экспорт конфигурации в Загрузки</string>
<string name="email_subject">Поддержка WG Tunnel</string>
<string name="go">вперёд</string>
<string name="email_description">Отправить письмо автору</string>
<string name="support_help_text">Если у Вас возникли проблемы, или появилась идея по улучшению, или Вы просто хотите пообщаться, используйте следующие ресурсы:</string>
<string name="use_kernel">Использовать модуль режима ядра</string>
<string name="always_on_disabled">Функция всегда доступного VPN попыталась запустить туннель, но эта функция отключена в настройках.</string>
<string name="no_browser_detected">Веб-браузер не обнаружен</string>
<string name="no_browser_detected">Браузер не обнаружен</string>
<string name="read_logs">Посмотреть журнал</string>
<string name="auto">(авто)</string>
<string name="set_primary_tunnel">Назначить как главный туннель</string>
<string name="no_wifi_names_configured">Имена сетей Wi-Fi не назначены этому туннелю</string>
<string name="general">Общее</string>
<string name="mode">Режим</string>
<string name="userspace">Пользователя</string>
<string name="kernel">Модуль ядра</string>
<string name="junk_packet_minimum_size">Минимальный размер «мусорного» пакета</string>
<string name="response_packet_magic_header">Заголовок пакета ответа</string>
@@ -166,4 +117,25 @@
<string name="getting_started_guide">руководство по началу работы</string>
<string name="unsure_how">, если не уверены, что делать дальше</string>
<string name="underload_packet_magic_header">Заголовок пакета под нагрузкой</string>
</resources>
<string name="root_accepted">Root-доступ разрешён</string>
<string name="always_on_message">Разрешение на VPN-соединение было отклонено, проверьте</string>
<string name="set_custom_ping_cooldown">Время ожидания перезапуска пинга (сек.)</string>
<string name="tunnel_required">Для этой функции необходим хотя бы один туннель</string>
<string name="restart_at_boot">Перезапуск при загрузке</string>
<string name="default_ping_ip">(необязательно, по умолчанию для пиров)</string>
<string name="app_settings">настройки приложения</string>
<string name="background_location_message2">, чтобы убедиться, что эти разрешения предоставлены.</string>
<string name="always_on_message2">, чтобы убедиться, что функция «Постоянный VPN» отключена для всех других приложений, и повторите попытку</string>
<string name="background_location_message">Разрешать всё время, пока для работы этой функции требуется доступ на определение местоположения и/или точное местоположение. Смотрите</string>
<string name="vpn_settings">Системные настройки VPN</string>
<string name="chat_description">Присоединиться к сообществу</string>
<string name="vpn_denied_dialog_title">Нет разрешения</string>
<string name="set_custom_ping_internal">Интервал пинга (сек.)</string>
<string name="optional_default">"необязательно, по умолчанию: "</string>
<string name="set_custom_ping_ip">Назначить свой IP для пинга</string>
<string name="show_amnezia_properties">Показать настройки Amnezia</string>
<string name="never">никогда</string>
<string name="sec">сек.</string>
<string name="handshake">рукопожатие</string>
<string name="logs">Журналы</string>
</resources>
+2
View File
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
+3 -54
View File
@@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_id">VPN Kanalı</string>
@@ -10,40 +11,26 @@
<string name="error_file_extension">Dosya .conf veya .zip değil</string>
<string name="turn_off_tunnel">İşlem için tünelin kapalı olması gerekiyor</string>
<string name="no_tunnels">Henüz tünel eklenmedi!</string>
<string name="discord_url" translatable="false">https://discord.gg/rbRRNh6H7V</string>
<string name="watcher_notification_text_active">Ağ durum değişiklikleri izleniyor: aktif</string>
<string name="watcher_notification_text_paused">Ağ durum değişiklikleri izleniyor: duraklatıldı</string>
<string name="tunnel_start_title">VPN bağlandı</string>
<string name="tunnel_start_text">Tünele bağlandı</string>
<string name="notification_permission_required">Bildirim izni gerekli.</string>
<string name="add_trusted_ssid">Güvenilir wifi adı ekle</string>
<string name="tunnels">Tüneller</string>
<string name="enable_auto_tunnel">Otomatik tünellemeyi başlat</string>
<string name="disable_auto_tunnel">Otomatik tünellemeyi durdur</string>
<string name="tunnel_mobile_data">Mobil veride tünel</string>
<string name="privacy_policy">Gizlilik Politikasını Görüntüle</string>
<string name="privacy_policy">Gizlilik Politikasını Görüntüle</string>
<string name="okay">Tamam</string>
<string name="tunnel_on_ethernet">Ethernet\'te tünel</string>
<string name="prominent_background_location_message">Bu özellik, uygulama kapalıyken bile Wi-Fi SSID izlemesini etkinleştirmek için arka plan konum iznine ihtiyaç duyar. Daha fazla ayrıntı için lütfen Destek ekranında bağlantısı verilen Gizlilik Politikasına bakın.</string>
<string name="prominent_background_location_title">Arka Plan Konum Açıklaması</string>
<string name="thank_you">WG Tunnel\'ı kullandığınız için teşekkürler!</string>
<string name="trusted_ssid_empty_description">SSID girin</string>
<string name="trusted_ssid_value_description">SSID\'yi gönder</string>
<string name="add_tunnels_text">Dosyadan veya zip\'ten ekle</string>
<string name="open_file">Dosya Aç</string>
<string name="add_from_qr">QR kodundan ekle</string>
<string name="qr_scan">QR Tarama</string>
<string name="tunnel_name">Tünel Adı</string>
<string name="add_tunnel">Tünel Ekle</string>
<string name="exclude">Hariç tut</string>
<string name="include">Dahil et</string>
<string name="tunnel_all">Tüm uygulamaları tünelle</string>
<string name="config_changes_saved">Yapılandırma değişiklikleri kaydedildi.</string>
<string name="save_changes">Kaydet</string>
<string name="icon">Simge</string>
<string name="no_thanks">Hayır, teşekkürler</string>
<string name="turn_on"></string>
<string name="map">Harita</string>
<string name="public_key">Genel anahtar</string>
<string name="addresses">Adresler</string>
<string name="dns_servers">DNS sunucuları</string>
@@ -52,24 +39,14 @@
<string name="allowed_ips">İzin verilen IP\'ler</string>
<string name="endpoint">Uç nokta (endpoint)</string>
<string name="name">Ad</string>
<string name="restart">Tüneli Yeniden Başlat</string>
<string name="vpn_connection_failed">Bağlantı başarısız</string>
<string name="always_on_vpn_support">Her Zaman Açık VPN\'e İzin Ver</string>
<string name="location_services_not_detected">Konum Hizmetleri Algılanmadı</string>
<string name="hint_search_packages">Paketlerde ara</string>
<string name="attempt_connection">Bağlantı deneniyor..</string>
<string name="vpn_starting">VPN başlatılıyor</string>
<string name="db_name">wg-tunnel-db</string>
<string name="scanning_qr">QR için taranıyor</string>
<string name="none">Güvenilir wifi adı yok</string>
<string name="other">Diğer</string>
<string name="auto_tunneling">Otomatik tünelleme</string>
<string name="vpn_on">VPN açık</string>
<string name="vpn_off">VPN kapalı</string>
<string name="default_vpn_on">Birincil VPN açık</string>
<string name="default_vpn_off">Birincil VPN kapalı</string>
<string name="create_import">Sıfırdan oluştur</string>
<string name="turn_off_auto">İşlem için otomatik tünelin devre dışı veya duraklatılmış olması gerekiyor</string>
<string name="turn_on_tunnel">İşlem için aktif tünel gerekiyor</string>
<string name="add_peer">Eş ekle</string>
<string name="done">Tamam</string>
@@ -91,47 +68,32 @@
<string name="error_authorization_failed">Yetkilendirme başarısız oldu</string>
<string name="enabled_app_shortcuts">Uygulama kısayollarını etkinleştir</string>
<string name="export_configs">Yapılandırmaları dışa aktar</string>
<string name="export_configs_failed">Yapılandırmaları dışa aktarma başarısız oldu</string>
<string name="location_services_required">Konum hizmetleri gerekli</string>
<string name="background_location_required">Arka plan konumu gerekli</string>
<string name="precise_location_required">Hassas konum gerekli</string>
<string name="unknown_error">Bilinmeyen bir hata oluştu</string>
<string name="exported_configs_message">Yapılandırmalar indirilenler klasörüne aktarıldı</string>
<string name="tunnel_on_wifi">Güvenilmeyen wifi\'da tünel</string>
<string name="my_email" translatable="false">support@zaneschepke.com</string>
<string name="email_subject">WG Tunnel Desteği</string>
<string name="email_chooser">E-posta gönder…</string>
<string name="go">git</string>
<string name="docs_description">Belgeleri oku</string>
<string name="email_description">Bana e-posta gönder</string>
<string name="support_help_text">Sorun yaşıyorsanız, iyileştirme fikirleriniz varsa veya sadece iletişime geçmek istiyorsanız, aşağıdaki kaynaklar mevcuttur:</string>
<string name="use_kernel">Kernel modülünü kullan</string>
<string name="error_ssid_exists">SSID zaten mevcut</string>
<string name="error_root_denied">Root kabuğu reddedildi</string>
<string name="error_no_file_explorer">Dosya gezgini yüklü değil</string>
<string name="error_invalid_code">Geçersiz QR kodu</string>
<string name="error_none">Hata yok</string>
<string name="location_services_missing_message">Uygulama, cihazınızda etkinleştirilmiş herhangi bir konum hizmeti algılamıyor. Cihaza bağlı olarak, bu durum güvenilmeyen wifi özelliğinin wifi adını okumasını engelleyebilir. Yine de devam etmek istiyor musunuz?</string>
<string name="auto_tunnel_title">Otomatik Tünel Hizmeti</string>
<string name="delete_tunnel">Tüneli sil</string>
<string name="delete_tunnel_message">Bu tüneli silmek istediğinizden emin misiniz?</string>
<string name="yes">Evet</string>
<string name="resume">Devam et</string>
<string name="pause">Duraklat</string>
<string name="paused">duraklatıldı</string>
<string name="active">aktif</string>
<string name="tunneling_apps">Tünellenen uygulamalar</string>
<string name="included">dahil</string>
<string name="excluded">hariç</string>
<string name="all">tümü</string>
<string name="always_on_disabled">Her Zaman Açık VPN bir tüneli başlatmaya çalıştı, ancak bu özellik ayarlarda devre dışı bırakılmış.</string>
<string name="no_email_detected">E-posta uygulaması algılanmadı</string>
<string name="no_browser_detected">Tarayıcı algılanmadı</string>
<string name="logs_saved">Günlükler indirilenler klasörüne kaydedildi</string>
<string name="open_issue">Sorun bildir</string>
<string name="read_logs">Günlükleri oku</string>
<string name="auto">(otomatik)</string>
<string name="config_parse_error">Yapılandırma ayrıştırılamadı</string>
<string name="incorrect_pin">PIN yanlış</string>
<string name="pin_created">PIN başarıyla oluşturuldu</string>
<string name="enter_pin">PIN\'inizi girin</string>
@@ -141,22 +103,11 @@
<string name="mobile_data_tunnel">Mobil veri tüneli olarak ayarla</string>
<string name="set_primary_tunnel">Birincil tünel olarak ayarla</string>
<string name="use_tunnel_on_wifi_name">Wifi adında tünel kullan</string>
<string name="no_wifi_names_configured">Bu tünel için yapılandırılmış wifi adı yok</string>
<string name="general">Genel</string>
<string name="edit_tunnel">Tüneli düzenle</string>
<string name="disabled">devre dışı</string>
<string name="auto_on">Otomatik tüneli devam ettir</string>
<string name="auto_off">Otomatik tüneli duraklat</string>
<string name="auto_tun_on">Otomatik tüneli devam ettir</string>
<string name="auto_tun_off">Otomatik tüneli duraklat</string>
<string name="version">Sürüm</string>
<string name="mode">Mod</string>
<string name="userspace">Kullanıcı alanı</string>
<string name="settings">Ayarlar</string>
<string name="support">Destek</string>
<string name="backend">Arka uç</string>
<string name="kernel">Çekirdek</string>
<string name="use_amnezia">"Amnezia kullanıcı alanını kullan "</string>
<string name="junk_packet_count">Gereksiz paket sayısı</string>
<string name="junk_packet_minimum_size">Gereksiz paket minimum boyutu</string>
<string name="junk_packet_maximum_size">Gereksiz paket maksimum boyutu</string>
@@ -171,8 +122,6 @@
<string name="see_the">Bakın:</string>
<string name="getting_started_url" translatable="false">https://zaneschepke.com/wgtunnel-docs/getting-started.html</string>
<string name="getting_started_guide">başlangıç kılavuzu</string>
<string name="amnezia" translatable="false">Amnezia</string>
<string name="wireguard" translatable="false">WireGuard</string>
<string name="error_file_format">Geçersiz tünel yapılandırma formatı</string>
<string name="restart_at_boot">Önyüklemede yeniden başlat</string>
</resources>
</resources>
+2 -51
View File
@@ -3,23 +3,17 @@
<string name="comma_separated_list">список розділений комами</string>
<string name="no_tunnels">Тунелі ще не додані!</string>
<string name="app_name">WG Tunnel</string>
<string name="add_trusted_ssid">Додати ім\'я довіреної мережі Wi-Fi</string>
<string name="tunnels">Тунелі</string>
<string name="enable_auto_tunnel">Запустити авто-тунелі</string>
<string name="disable_auto_tunnel">Зупинити авто-тунелі</string>
<string name="okay">ОК</string>
<string name="tunnel_on_ethernet">Тунелювати Ethernet</string>
<string name="prominent_background_location_title">Фонова передача місцезнаходження</string>
<string name="trusted_ssid_value_description">Підтвердити SSID</string>
<string name="qr_scan">Сканувати QR</string>
<string name="tunnel_name">Ім\'я тунелю</string>
<string name="add_tunnel">Додати тунель</string>
<string name="include">Включити</string>
<string name="tunnel_all">Тунель для всіх додатків</string>
<string name="config_changes_saved">Зміни налаштувань збережено.</string>
<string name="icon">Іконка</string>
<string name="no_thanks">Ні, дякую</string>
<string name="default_vpn_off">Основний VPN вимк.</string>
<string name="turn_on_tunnel">Дія потребує активного тунелю</string>
<string name="rotate_keys">Оновити ключі</string>
<string name="private_key">Закритий ключ</string>
@@ -28,45 +22,28 @@
<string name="optional">(необов\'язково)</string>
<string name="optional_no_recommend">(необов\'язково, не рекомендується)</string>
<string name="cancel">Скасувати</string>
<string name="export_configs_failed">Помилка експорту конфігурації</string>
<string name="location_services_required">Необхідно сервіси місцезнаходження</string>
<string name="precise_location_required">Необхідно доступ до точного місцезнаходження</string>
<string name="exported_configs_message">Експорт конфігурації в Завантаження</string>
<string name="email_chooser">Надіслати E-Mail…</string>
<string name="error_root_denied">Root доступ заборонено</string>
<string name="error_invalid_code">Некоректний QR-код</string>
<string name="error_none">Нема помилок</string>
<string name="logs_saved">Логи збережено в Завантаженнях</string>
<string name="config_parse_error">Помилка аналізу файлу конфігурації</string>
<string name="incorrect_pin">Невірний PIN-код</string>
<string name="use_tunnel_on_wifi_name">Використовувати тунель в мережі Wi-Fi</string>
<string name="disabled">відключено</string>
<string name="version">Версія</string>
<string name="mode">Режим</string>
<string name="transport_packet_magic_header">Заголовок транспортного пакету</string>
<string name="getting_started_guide">інструкція щодо початку роботи</string>
<string name="error_file_format">некоректний формат конфігурації тунелю</string>
<string name="watcher_notification_text_active">Моніторинг стану мережі: активний</string>
<string name="vpn_channel_name">Канал сповіщення VPN</string>
<string name="vpn_channel_id">Канал VPN</string>
<string name="error_file_extension">Файл не є .conf або .zip файлом</string>
<string name="turn_off_tunnel">Дія потребує вимкнення тунелю</string>
<string name="watcher_notification_text_paused">Моніторинг стану мережі: призупинено</string>
<string name="tunnel_start_text">Підключення до тунелю</string>
<string name="tunnel_start_title">VPN підключено</string>
<string name="notification_permission_required">Потрібен дозвіл на відображення сповіщень.</string>
<string name="tunnel_mobile_data">Тунелювати мобільні дані</string>
<string name="privacy_policy">Переглянути політику конфіденційності</string>
<string name="privacy_policy">Переглянути політику конфіденційності</string>
<string name="thank_you">Спасибі за використання WG Tunnel!</string>
<string name="prominent_background_location_message">Дана функція потребує фоновий доступ до служби місцезнаходження для моніторингу назви мереж Wi-Fi навіть коли додаток закрито. Для отримання додаткової інформації прочитайте політику приватності на екрані Підтримки.</string>
<string name="trusted_ssid_empty_description">Введіть SSID</string>
<string name="add_tunnels_text">Додати з файлу або архіву</string>
<string name="open_file">Відкрити файл</string>
<string name="exclude">Виключити</string>
<string name="add_from_qr">Додати з QR коду</string>
<string name="save_changes">Зберегти</string>
<string name="turn_on">Увімкнути</string>
<string name="map">Карта</string>
<string name="public_key">Публічний ключ</string>
<string name="addresses">Адреса</string>
<string name="allowed_ips">Дозволені IP</string>
@@ -76,22 +53,13 @@
<string name="endpoint">Кінцева точка</string>
<string name="hint_search_packages">Пошук програм</string>
<string name="name">Ім\'я</string>
<string name="vpn_connection_failed">Помилка з\'єднання</string>
<string name="restart">Перезапустити тунель</string>
<string name="always_on_vpn_support">Дозволили Always-ON VPN</string>
<string name="location_services_not_detected">Сервіси місце знаходження не знайдено</string>
<string name="db_name">wg-tunnel-db</string>
<string name="scanning_qr">Сканування QR коду</string>
<string name="attempt_connection">Спроба з\'єднання...</string>
<string name="other">Інше</string>
<string name="vpn_starting">Запуск VPN</string>
<string name="auto_tunneling">Авто-тунелювання</string>
<string name="none">Нема довірених мереж Wi-Fi</string>
<string name="vpn_on">VPN увімк.</string>
<string name="vpn_off">VPN вимк.</string>
<string name="default_vpn_on">Основний VPN увімк.</string>
<string name="create_import">Створити з нуля</string>
<string name="turn_off_auto">Необхідно вимкнути або призупинити авто-тунелювання</string>
<string name="add_peer">Додати peer</string>
<string name="done">Готово</string>
<string name="interface_">Інтерфейс</string>
@@ -104,14 +72,11 @@
<string name="enabled_app_shortcuts">Дозволити ярлики</string>
<string name="error_authentication_failed">Помилка автентифікації</string>
<string name="export_configs">Експорт конфігурації</string>
<string name="background_location_required">Необхідний фоновий доступ до місцезнаходження</string>
<string name="unknown_error">Невідома помилка</string>
<string name="tunnel_on_wifi">Тунелювати недовірені мережі Wi-Fi</string>
<string name="email_subject">Підтримка WG-Tunnel</string>
<string name="go">вперед</string>
<string name="docs_description">Переглянути документацію</string>
<string name="email_description">Відправити email автору</string>
<string name="support_help_text">Якщо у вас виникли проблеми, є ідеї щодо покращення, чи бажання долучитися, скористайтесь наступними ресурсами:</string>
<string name="use_kernel">Використовувати модуль режиму ядра</string>
<string name="error_ssid_exists">SSID вже існує</string>
<string name="error_no_file_explorer">Не знайдено файловий менеджер</string>
@@ -121,13 +86,8 @@
<string name="included">включено</string>
<string name="delete_tunnel_message">Ви дійсно хочете видалити цей тунель?</string>
<string name="yes">Так</string>
<string name="active">активно</string>
<string name="resume">Відновити</string>
<string name="pause">Призупинити</string>
<string name="paused">призупинено</string>
<string name="tunneling_apps">Тунельовані додатки</string>
<string name="excluded">виключено</string>
<string name="always_on_disabled">Функція Always-on VPN спробувала запустити тунель, але функція вимкнена в налаштуваннях.</string>
<string name="auto">(авто)</string>
<string name="all">всі</string>
<string name="no_email_detected">Програми для надсилання email не знайдено</string>
@@ -139,20 +99,11 @@
<string name="create_pin">Створити PINhкод</string>
<string name="enable_app_lock">Увімкнути блокування додатку</string>
<string name="edit_tunnel">Редагувати тунель</string>
<string name="auto_on">Відновити авто-тунель</string>
<string name="restart_on_ping">Перезапуск при помилці ping (бета)</string>
<string name="mobile_data_tunnel">Встановити як тунель для мобільних даних</string>
<string name="set_primary_tunnel">Встановити як основний тунель</string>
<string name="no_wifi_names_configured">Імена мереж Wi-Fi не налаштовано для цього тунелю</string>
<string name="general">Загальне</string>
<string name="auto_tun_off">Призупинити авто-тунель</string>
<string name="auto_off">Призупинити авто-тунель</string>
<string name="auto_tun_on">Відновити авто-тунель</string>
<string name="userspace">Користувача</string>
<string name="support">Підтримка</string>
<string name="settings">Налаштування</string>
<string name="use_amnezia">"Використовувати модуль Amnezia режиму користувача "</string>
<string name="backend">Модуль</string>
<string name="kernel">Модуль ядра</string>
<string name="junk_packet_count">Кількість «сміттєвих» пакетів</string>
<string name="junk_packet_minimum_size">Мінімальний розмір «сміттєвого» пакету</string>
@@ -164,4 +115,4 @@
<string name="response_packet_magic_header">Заголовок пакету відповіді</string>
<string name="unsure_how">, якщо не впевнені що робити далі</string>
<string name="see_the">Дивіться</string>
</resources>
</resources>
+132 -1
View File
@@ -1,2 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="turn_off_tunnel">请关闭连接再操作</string>
<string name="no_tunnels">你还没有添加隧道!</string>
<string name="tunnels">连接列表</string>
<string name="privacy_policy">查看隐私政策</string>
<string name="tunnel_mobile_data">隧道使用手机数据流量</string>
<string name="okay"></string>
<string name="tunnel_on_ethernet">在局域网中使用隧道</string>
<string name="error_file_extension">文件类型不是 .conf 或 .zip</string>
<string name="trusted_ssid_value_description">确认修改SSID</string>
<string name="add_tunnels_text">从文件或 zip 添加</string>
<string name="add_from_qr">从二维码添加</string>
<string name="qr_scan">扫描二维码</string>
<string name="tunnel_name">隧道名称</string>
<string name="include">包含</string>
<string name="tunnel_all">全局代理</string>
<string name="icon">图标</string>
<string name="public_key">公钥</string>
<string name="addresses">地址</string>
<string name="dns_servers">DNS服务器</string>
<string name="mtu">MTU</string>
<string name="allowed_ips">允许的IP</string>
<string name="name">名称</string>
<string name="peer">节点</string>
<string name="always_on_vpn_support">允许VPN始终在线</string>
<string name="location_services_not_detected">定位服务未开启</string>
<string name="hint_search_packages">查找软件包</string>
<string name="db_name">wg-tunnel数据库</string>
<string name="done">完成</string>
<string name="rotate_keys">轮换秘钥</string>
<string name="create_import">手动创建</string>
<string name="private_key">私钥</string>
<string name="listen_port">监听端口</string>
<string name="optional">(可选)</string>
<string name="optional_no_recommend">(可选,不建议)</string>
<string name="error_authorization_failed">验证失败</string>
<string name="enabled_app_shortcuts">创建快捷方式到桌面</string>
<string name="export_configs">导出设置</string>
<string name="docs_description">阅读文档</string>
<string name="email_description">给作者发邮件</string>
<string name="error_root_denied">Root权限未开启</string>
<string name="error_no_file_explorer">没有安装任何的文件管理器</string>
<string name="error_invalid_code">无效的二维码</string>
<string name="copy_public_key">复制公钥</string>
<string name="email_chooser">发送邮件…</string>
<string name="persistent_keepalive">连接保活</string>
<string name="turn_on_tunnel">此操作需要一个已建立的隧道</string>
<string name="tunnel_on_wifi">在不受信任的wifi上建立隧道</string>
<string name="exclude">除了</string>
<string name="comma_separated_list">逗号分隔列表</string>
<string name="base64_key">base64编码</string>
<string name="use_kernel">使用内核模块</string>
<string name="endpoint">对端</string>
<string name="thank_you">谢谢使用WG Tunnel!</string>
<string name="prominent_background_location_message">此功能是在app关闭时,后台自动扫描Wi-Fi SSID,需要开启后台位置信息访问权限。更多信息,请在支持页面查看隐私政策。</string>
<string name="vpn_on">VPN已连接</string>
<string name="vpn_off">VPN已关闭</string>
<string name="auto_tunneling">自动建立隧道</string>
<string name="add_peer">添加节点</string>
<string name="random">(随机)</string>
<string name="seconds"></string>
<string name="cancel">取消</string>
<string name="preshared_key">预共享密钥</string>
<string name="error_authentication_failed">身份验证失败</string>
<string name="unknown_error">发生了未知错误</string>
<string name="error_ssid_exists">SSID 已经存在</string>
<string name="open_file">打开文件</string>
<string name="config_changes_saved">设置已保存。</string>
<string name="save_changes">保存</string>
<string name="interface_">接口</string>
<string name="email_subject">WG Tunnel 支持</string>
<string name="auto_tunnel_title">自动连接服务</string>
<string name="delete_tunnel">删除隧道</string>
<string name="delete_tunnel_message">确定删除这个隧道吗?</string>
<string name="location_services_missing_message">此app不会在你的设备上检测任何已开启的定位服务。根据不同的设备,可能会导致无法获得不可信wifi的名称。你想继续吗?</string>
<string name="yes"></string>
<string name="tunneling_apps">正使用隧道的app</string>
<string name="included">已包含</string>
<string name="excluded">排除</string>
<string name="all">全部</string>
<string name="no_email_detected">未安装邮件app</string>
<string name="enable_app_lock">锁定应用</string>
<string name="use_tunnel_on_wifi_name">在指定的wifi上使用此隧道</string>
<string name="version">版本</string>
<string name="settings">设置</string>
<string name="support">支持</string>
<string name="kernel">内核</string>
<string name="junk_packet_minimum_size">无效包最小值</string>
<string name="chat_description">加入社区</string>
<string name="root_accepted">已获取Root权限</string>
<string name="default_ping_ip">(可选,默认选择节点)</string>
<string name="set_custom_ping_internal">Ping 间隔(秒)</string>
<string name="optional_default">"可选,默认: "</string>
<string name="set_custom_ping_cooldown">Ping 重启间隔(秒)</string>
<string name="show_amnezia_properties">显示Amnezia属性</string>
<string name="no_browser_detected">没有安装浏览器</string>
<string name="incorrect_pin">密码不正确</string>
<string name="set_custom_ping_ip">自定义要ping的地址</string>
<string name="watcher_channel_name">守护者通知频道</string>
<string name="vpn_channel_id">VPN频道</string>
<string name="junk_packet_count">无效包计数</string>
<string name="app_name">WG Tunnel</string>
<string name="vpn_channel_name">VPN通知频道</string>
<string name="watcher_channel_id">守护者频道</string>
<string name="open_issue">查看问题</string>
<string name="read_logs">查看日志</string>
<string name="auto">(自动)</string>
<string name="pin_created">创建密码成功</string>
<string name="enter_pin">输入密码</string>
<string name="create_pin">创建密码</string>
<string name="set_primary_tunnel">设置为主隧道</string>
<string name="mobile_data_tunnel">使用手机数据流量</string>
<string name="init_packet_junk_size">初始化无效包大小</string>
<string name="junk_packet_maximum_size">无效包最大值</string>
<string name="response_packet_magic_header">响应包的魔法header</string>
<string name="response_packet_junk_size">无效的响应包大小</string>
<string name="vpn_denied_dialog_title">拒绝访问</string>
<string name="tunnel_required">此功能需要至少一个隧道</string>
<string name="app_settings">app 设置</string>
<string name="background_location_message2">请确保这些权限已开启。</string>
<string name="logs">日志</string>
<string name="restart_on_ping">ping失败之后自动重启隧道(beta)</string>
<string name="edit_tunnel">编辑隧道</string>
<string name="init_packet_magic_header">初始化数据包的魔法header</string>
<string name="error_file_format">无效的隧道配置文件格式</string>
<string name="always_on_message">VPN连接被拒绝,请检查</string>
<string name="vpn_settings">VPN系统设置</string>
<string name="always_on_message2">始终开启VPN功能是否关闭,然后再尝试连接</string>
<string name="never">从不</string>
<string name="sec"></string>
<string name="handshake">握手</string>
</resources>
+3 -58
View File
@@ -6,23 +6,13 @@
<string name="watcher_channel_name">Watcher Notification Channel</string>
<string name="github_url" translatable="false">https://github.com/zaneschepke/wgtunnel/issues</string>
<string name="docs_url" translatable="false">https://zaneschepke.com/wgtunnel-docs/overview.html</string>
<string name="docs_features" translatable="false">https://zaneschepke.com/wgtunnel-docs/features.html</string>
<string name="privacy_policy_url" translatable="false">https://zaneschepke.com/wgtunnel-docs/privacypolicy.html</string>
<string name="docs_wildcards" translatable="false" >https://zaneschepke.com/wgtunnel-docs/features.html#wildcard-wi-fi-name-support</string>
<string name="donate_url" translatable="false">https://zaneschepke.com/donate/</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="turn_off_tunnel">Action requires tunnel off</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="discord_url" translatable="false">https://discord.gg/rbRRNh6H7V</string>
<string name="watcher_notification_text_active">Monitoring network state changes: active</string>
<string name="watcher_notification_text_paused">Monitoring network state changes: paused</string>
<string name="tunnel_start_title">VPN connected</string>
<string name="tunnel_start_text">Connected to tunnel</string>
<string name="notification_permission_required">Notifications permission required.</string>
<string name="add_trusted_ssid">Add trusted wifi name</string>
<string name="tunnels">Tunnels</string>
<string name="enable_auto_tunnel">Start auto-tunneling</string>
<string name="disable_auto_tunnel">Stop auto-tunneling</string>
<string name="tunnel_mobile_data">Tunnel on mobile data</string>
<string name="privacy_policy">View privacy policy</string>
<string name="okay">Okay</string>
@@ -30,23 +20,18 @@
<string name="prominent_background_location_message">This feature requires background location permission to enable Wi-Fi SSID monitoring even while the application is closed. For more details, please see the Privacy Policy linked on the Support screen.</string>
<string name="prominent_background_location_title">Background Location Disclosure</string>
<string name="thank_you">Thank you for using WG Tunnel!</string>
<string name="trusted_ssid_empty_description">Enter SSID</string>
<string name="trusted_ssid_value_description">Submit SSID</string>
<string name="add_tunnels_text">Add from file or zip</string>
<string name="open_file">File Open</string>
<string name="add_from_qr">Add from QR code</string>
<string name="qr_scan">QR Scan</string>
<string name="tunnel_name">Tunnel Name</string>
<string name="add_tunnel">Add Tunnel</string>
<string name="exclude">Exclude</string>
<string name="include">Include</string>
<string name="tunnel_all">Tunnel all applications</string>
<string name="config_changes_saved">Configuration changes saved.</string>
<string name="save_changes">Save</string>
<string name="icon">Icon</string>
<string name="no_thanks">No thanks</string>
<string name="turn_on">Turn on</string>
<string name="map">Map</string>
<string name="public_key">Public key</string>
<string name="addresses">Addresses</string>
<string name="dns_servers">DNS servers</string>
@@ -55,24 +40,14 @@
<string name="allowed_ips">Allowed IPs</string>
<string name="endpoint">Endpoint</string>
<string name="name">Name</string>
<string name="restart">Restart Tunnel</string>
<string name="vpn_connection_failed">Connection failed</string>
<string name="always_on_vpn_support">Allow Always-On VPN </string>
<string name="location_services_not_detected">Location Services Not Detected</string>
<string name="hint_search_packages">Search packages</string>
<string name="attempt_connection">Attempting connection..</string>
<string name="vpn_starting">VPN starting</string>
<string name="db_name">wg-tunnel-db</string>
<string name="scanning_qr">Scanning for QR</string>
<string name="none">No trusted wifi names</string>
<string name="other">Other</string>
<string name="auto_tunneling">Auto-tunneling</string>
<string name="vpn_on">VPN on</string>
<string name="vpn_off">VPN off</string>
<string name="default_vpn_on">Primary VPN on</string>
<string name="default_vpn_off">Primary VPN off</string>
<string name="create_import">Create from scratch</string>
<string name="turn_off_auto">Action requires auto-tunnel disabled or paused</string>
<string name="turn_on_tunnel">Action requires active tunnel</string>
<string name="add_peer">Add peer</string>
<string name="done">Done</string>
@@ -94,47 +69,32 @@
<string name="error_authorization_failed">Failed to authorize</string>
<string name="enabled_app_shortcuts">Enable app shortcuts</string>
<string name="export_configs">Export configs</string>
<string name="export_configs_failed">Failed to export configs</string>
<string name="location_services_required">Location services required</string>
<string name="background_location_required">Background location required</string>
<string name="precise_location_required">Precise location required</string>
<string name="unknown_error">Unknown error occurred</string>
<string name="exported_configs_message">Exported configs to downloads</string>
<string name="tunnel_on_wifi">Tunnel on untrusted wifi</string>
<string name="my_email" translatable="false">support@zaneschepke.com</string>
<string name="email_subject">WG Tunnel Support</string>
<string name="email_chooser">Send an email…</string>
<string name="go">go</string>
<string name="docs_description">Read the docs</string>
<string name="email_description">Send me an email</string>
<string name="support_help_text">If you are experiencing issues, have improvement ideas, or just want to engage, the following resources are available:</string>
<string name="use_kernel">Use kernel module</string>
<string name="error_ssid_exists">SSID already exists</string>
<string name="error_root_denied">Root shell denied</string>
<string name="error_no_file_explorer">No file explorer installed</string>
<string name="error_invalid_code">Invalid QR code</string>
<string name="error_none">No error</string>
<string name="location_services_missing_message">The app is not detecting any location services enabled on your device. Depending on the device, this could cause the untrusted wifi feature to fail to read the wifi name. Would you like to continue anyways?</string>
<string name="auto_tunnel_title">Auto-tunnel Service</string>
<string name="delete_tunnel">Delete tunnel</string>
<string name="delete_tunnel_message">Are you sure you would like to delete this tunnel?</string>
<string name="yes">Yes</string>
<string name="resume">Resume</string>
<string name="pause">Pause</string>
<string name="paused">paused</string>
<string name="active">active</string>
<string name="tunneling_apps">Tunneling apps</string>
<string name="included">included</string>
<string name="excluded">excluded</string>
<string name="all">all</string>
<string name="always_on_disabled">Always-on VPN attempted to start a tunnel, but this feature is disabled in settings.</string>
<string name="no_email_detected">No email app detected</string>
<string name="no_browser_detected">No browser detected</string>
<string name="logs_saved">Logs saved to downloads</string>
<string name="open_issue">Open an issue</string>
<string name="read_logs">Read the logs</string>
<string name="auto">(auto)</string>
<string name="config_parse_error">Failed to parse config</string>
<string name="incorrect_pin">Pin is incorrect</string>
<string name="pin_created">Pin successfully created</string>
<string name="enter_pin">Enter your pin</string>
@@ -144,22 +104,11 @@
<string name="mobile_data_tunnel">Set as mobile data tunnel</string>
<string name="set_primary_tunnel">Set as primary tunnel</string>
<string name="use_tunnel_on_wifi_name">Use tunnel on wifi name</string>
<string name="no_wifi_names_configured">No wifi names configured for this tunnel</string>
<string name="general">General</string>
<string name="edit_tunnel">Edit tunnel</string>
<string name="disabled">disabled</string>
<string name="auto_on">Resume auto tun</string>
<string name="auto_off">Pause auto tun</string>
<string name="auto_tun_on">Resume auto-tunnel</string>
<string name="auto_tun_off">Pause auto-tunnel</string>
<string name="version">Version</string>
<string name="mode">Mode</string>
<string name="userspace">Userspace</string>
<string name="settings">Settings</string>
<string name="support">Support</string>
<string name="backend">Backend</string>
<string name="kernel">Kernel</string>
<string name="use_amnezia">"Use Amnezia userspace "</string>
<string name="junk_packet_count">Junk packet count</string>
<string name="junk_packet_minimum_size">Junk packet minimum size</string>
<string name="junk_packet_maximum_size">Junk packet maximum size</string>
@@ -174,8 +123,6 @@
<string name="see_the">See the</string>
<string name="getting_started_url" translatable="false">https://zaneschepke.com/wgtunnel-docs/getting-started.html</string>
<string name="getting_started_guide">getting started guide</string>
<string name="amnezia" translatable="false">Amnezia</string>
<string name="wireguard" translatable="false">WireGuard</string>
<string name="error_file_format">Invalid tunnel config format</string>
<string name="restart_at_boot">Restart on boot</string>
<string name="vpn_denied_dialog_title">Permission Denied</string>
@@ -184,7 +131,6 @@
<string name="always_on_message2">to make sure Always-on VPN is turned off for all other apps and try again</string>
<string name="chat_description">Join the community</string>
<string name="tunnel_required">Feature requires at least one tunnel</string>
<string name="request_root">Request root</string>
<string name="background_location_message">Allow all the time location permission and/or precise location is required for this feature. Please see</string>
<string name="app_settings">app settings</string>
<string name="background_location_message2">to make sure these permissions are enabled.</string>
@@ -194,14 +140,12 @@
<string name="set_custom_ping_internal">Ping interval (sec)</string>
<string name="optional_default">"optional, default: "</string>
<string name="set_custom_ping_cooldown">Ping restart cooldown (sec)</string>
<string name="details">details</string>
<string name="show_amnezia_properties">Show Amnezia properties</string>
<string name="show_amnezia_properties">Show Amnezia properties</string>
<string name="never">never</string>
<string name="sec">sec</string>
<string name="handshake">handshake</string>
<string name="logs">Logs</string>
<string name="tunnel_notifications">Tunnel notifications</string>
<string name="kill_switch">Kill switch</string>
<string name="kill_switch">Kill switch</string>
<string name="appearance">Appearance</string>
<string name="notifications">Notifications</string>
<string name="automatic">Automatic</string>
@@ -233,4 +177,5 @@
<string name="enable_local_logging">Enable local logging</string>
<string name="configuration_change">Configuration change</string>
<string name="requires_app_relaunch">This change requires an app relaunch. Would you like to proceed?</string>
<string name="add_from_clipboard">Add from clipboard</string>
</resources>
+2 -2
View File
@@ -1,7 +1,7 @@
object Constants {
const val VERSION_NAME = "3.6.0"
const val VERSION_NAME = "3.6.1"
const val JVM_TARGET = "17"
const val VERSION_CODE = 36000
const val VERSION_CODE = 36100
const val TARGET_SDK = 35
const val MIN_SDK = 26
const val APP_ID = "com.zaneschepke.wireguardautotunnel"
@@ -1,7 +1,7 @@
Verbesserungen:
- Bestätigung beim Tunnel löschen hinzugefügt
- Bestätigung beim Tunnellöschen hinzugefügt
- Hintergrundberechtigung für Energiesparmodus hinzugefügt
Fehlerbehebungen:
- Einfrieren der App bei Tunnel deaktivierung
- Einfrieren der App bei Tunneldeaktivierung
- Fehler im E-Mail Empfängerfeld
- Konfigurationsbearbeitung mit leerem DNS Feld
@@ -1,5 +1,5 @@
Was ist neu?
- Zusätzliche Sprachunterstützung
- Fehler beim automatischen Tunneln von mobilen Daten behoben
- AndroidTV-Schaltfläche für schwebende Aktionen behoben
- Weitere Optimierungen und Erweiterungen
Was ist neu
- Unterstützung für weitere Sprachen
- bug-fix für auto-tunneling bei Mobilfunk
- für AndroidTV: Bug bei schwebendem Aktionsknopf behoben
- andere Optimisation und Erweiterungen
@@ -1,4 +1,4 @@
Was ist neu?
- Behebt Auto-Tunneling-Fehler
- Behebt Android-Backup-Fehler
- Versionen erhöhen
Was ist neu:
- Bug beim auto-tunneling behoben
- Bug bei Backups auf Android behoben
- Version angehoben
@@ -0,0 +1,6 @@
Neu:
- Wildcard-Unterstützung für Wifi-Namen hinzugefügt
- Live-Bearbeitung von Einstellungen von aktiven Tunneln/Auto-Tunneln
- Niedrige Geschwindigkeit bei mobilen Daten repariert
- Verschiedene Fehlerbehebungen und Verbesserungen
- UI-Optimierungen
@@ -0,0 +1,6 @@
Was ist neu?
- Gerootete Geräte erhalten jetzt den WiFi-Namen ohne Standort
- Verbesserungen beim Scrollen und Teilen von Protokollen
- Fehlerbehebungen beim Tunnelimport für AndroidTV 14
- Verbesserungen der Tunnel-Statistik UI
- Andere Fehlerbehebungen und Verbesserungen
@@ -0,0 +1,7 @@
What's new:
- Add tunnel from clipboard
- Add localizations
- Fix battery drain bug
- Fix delete bug
- Improve tunnel tile sync
- Other fixes and improvements
@@ -0,0 +1,6 @@
Novedades:
- Añadido soporte de comodines para nombres wifi
- Edición en vivo de la configuración del túnel/auto-túnel mientras está activo
- Corrección de la lentitud en datos móviles
- Varias correcciones de errores y mejoras
- Optimización de la interfaz de usuario
@@ -0,0 +1,6 @@
Novedades:
- Los dispositivos rooteados ahora obtienen el nombre wifi sin ubicación
- Mejoras en la pantalla de desplazamiento y compartición de registros
- Corrección de errores en la importación de túneles para AndroidTV 14
- Mejoras en la interfaz de usuario de las estadísticas de túneles
- Otras correcciones de errores y mejoras
@@ -0,0 +1,3 @@
Améliorations :
- Correction < problème de permission sur Android 9
- Autres optimisations
@@ -0,0 +1,5 @@
Améliorations :
- Ajout des statistiques des tunnels sur l'écran principal
- Amélioration des paramètres de navigation AndroidTV
- Suppression des vibrations de notification
- Diverses autres corrections de bug
@@ -0,0 +1,5 @@
Améliorations :
- Ajouter du support pour les données mobiles uniquement lors du tunnel automatique
- Amélioration de l'interface de support
- Mise à jour des liens de ressources
- Diverses autres corrections de bug
@@ -0,0 +1,5 @@
Améliorations :
- Ajout de la prise en charge simple pour le noyau WireGuard
- Amélioration du flux de divulgation de l'emplacement
- Correction des permissions du tunnel automatique
- Diverses autres corrections de bugs sur l'interface utilisateur
@@ -0,0 +1,2 @@
Résolutions :
- Autorisations avant plan sur Android 14
@@ -0,0 +1,7 @@
Améliorations :
- Re-factorisation de la gestion d'état
- Amélioration de la navigation sur AndroidTV
- Optimisation de l'efficacité de l'auto-tunnel
- Navigation améliorée
- Fonction de pause pour l'auto-tunnel
- Nombreux bugs résolus
@@ -0,0 +1,7 @@
Améliorations :
- Re-factorisation de la gestion d'état
- Amélioration de la navigation sur AndroidTV
- Optimisation de l'efficacité de l'auto-tunnel
- Navigation améliorée
- Fonction de pause pour l'auto-tunnel
- Nombreux bugs résolus
@@ -0,0 +1,8 @@
Améliorations :
- Re-factorisation de la gestion d'état
- Amélioration de la navigation sur AndroidTV
- Optimisation de l'efficacité de l'auto-tunnel
- Navigation améliorée
- Fonction de pause pour l'auto-tunnel
- Correction du démarrage de l'auto-tunnel en premier plan
- Nombreux bugs résolus
@@ -0,0 +1,7 @@
Améliorations :
- Ajout d'une confirmation lors de la suppression d'un tunnel
- Ajout de la permission d'usage de la batterie en arrière plan
Corrections  :
- Bug de gel lors de la désactivation du tunnel
- Bug du champ « À » dans l'email
- Édition de la configuration avec champ DNS vide
@@ -0,0 +1,3 @@
Améliorations :
- Correction du problème de non-enregistrement lors de la création de configuration
- Mise à jour des versions
@@ -0,0 +1,2 @@
Quoi de neuf :
- Il s'agit d'une version de test pour l'intégration continue (CI)
@@ -0,0 +1,5 @@
Quoi de neuf :
- Démarrage automatique au redémarrage pour le mode noyau VPN permanent
- Prise en charge des icônes de thème adaptatif
- Correction des icônes de notification et des icônes de réglages rapide
- Correction des icônes AndroidTV
@@ -0,0 +1,5 @@
Quoi de neuf :
- Amélioration du flux de première ouverture
- Passage à un fork de la bibliothèque WireGuard
- Demande d'autorisation VPN lors du premier démarrage du VPN
- Mise à jour des versions
@@ -0,0 +1,2 @@
Quoi de neuf :
- Résolution d'un bug d'affichage du tunnel sur l'interface utilisateur
@@ -0,0 +1,4 @@
Quoi de neuf :
- Correction du bug d'affichage de l'interface utilisateur lors de l'édition de la configuration
- Ajout d'une notification VPN permanent au premier lancement pour GrapheneOS
- Mise à jour des versions
@@ -0,0 +1,5 @@
Quoi de neuf :
- Ajout d'un écran de logs
- Ajout d'un verrouillage local de l'application
- Ajout de la fonctionnalité de redémarrage du VPN en cas d'échec du ping
- Diverses corrections de bug
@@ -0,0 +1,5 @@
Quoi de neuf :
- Tunnel automatique vers des tunnels spécifiques selon le nom du réseau Wi-Fi
- Contrôle du tunnel automatique depuis les raccourcis de la barre de réglages rapides et les raccourcis
- Démarrage automatique du tunnel manuel s'il était actif avant le redémarrage
- Divers correctifs de bugs et amélioration des performances
@@ -0,0 +1,5 @@
Quoi de neuf :
- Amélioration de la fiabilité des tunnels automatique
- Synchronisation améliorée avec la barre de réglages rapides
- Ajout de ressources pour AndroidTV
- Ajout de l'empreinte apk
@@ -0,0 +1,5 @@
Quoi de neuf :
- Correction de la régression lors de l'arrêt du tunnel
- Ajout de loffuscation des logs
- Ajout de l'option de masquage du bouton d'action flottant lors du défilement
- Ajout de la localisation turque
@@ -0,0 +1,3 @@
Quoi de neuf :
- Ajout d'Amnezia en parallèle avec WireGuard
- Correction du bug sur les raccourcis d'application
@@ -0,0 +1,6 @@
Quoi de neuf :
- Prise en charge officielle d'AmneziaWG
- Import/export de configurations Amnezia
- Tunnel automatique activé une seule fois par changement de réseau
- Prise en charge de langues supplémentaires
- Autres corrections de bugs et améliorations
@@ -0,0 +1,5 @@
Quoi de neuf :
- Amélioration du nommage lors de l'importation du tunnel
- Correction du bug d'état d'initialisation de l'auto-tunnel
- Amélioration de la gestion des erreurs
- Correction du bug d'importation de fichiers zip Amnezia
@@ -0,0 +1,5 @@
Quoi de neuf :
- Prise en charge de langues supplémentaires
- Correction du bug de l'auto-tunnel avec les données mobiles
- Correction du bouton d'action flottant sur AndroidTV
- Autres optimisations et améliorations
@@ -0,0 +1,4 @@
Quoi de neuf :
- Correction des bugs de l'auto-tunnel
- Correction du bug de sauvegarde Android
- Mise à jour des versions
@@ -0,0 +1,6 @@
Quoi de neuf :
- Correction des problèmes de crash
- Amélioration des performances de la barre de réglages rapides
- Réactivation du verrouillage par code PIN
- La fonctionnalité du redémarrage au démarrage devient une option
- Diverses améliorations des performances et corrections de bugs
@@ -0,0 +1,5 @@
Quoi de neuf :
- Corrections de l'interface utilisateur de contrôle du tunnel sur AndroidTV
- Correction du bug de verrouillage en mode portrait
- Correction du bug de contournement du verrouillage PIN
- Correction du bug de la barre de réglages rapides lors de l'auto-tunnel
@@ -0,0 +1,6 @@
Quoi de neuf :
- Amélioration de la fiabilité des tunnels automatiques
- Prise en charge des thèmes clair/sombre/dynamique
- Prise en charge des scripts pré/post up/down
- Supprimer la notification persistante du tunnel
- Diverses autres corrections et améliorations
@@ -0,0 +1,5 @@
Quoi de neuf :
- Corrections des problèmes de lancement des tunnels en arrière-plan
- Prise en charge du redémarrage des services après une mise à jour
- Améliorations de la vitesse des animations de l'interface utilisateur
- Autres optimisations
@@ -0,0 +1,6 @@
Quoi de neuf :
- Ajout du support des « wildcard » pour les noms wifi
- Modification des réglages des tunnel/auto-tunnel pendant leur fonctionnement
- Correction de la lenteur sur les données mobiles
- Divers correctifs de bogues et améliorations
- Optimisations de l'interface utilisateur
@@ -0,0 +1,6 @@
Quoi de neuf :
- Les appareils rootés récupèrent désormais le nom du Wi-Fi sans la localisation
- Améliorations du défilement et du partage de l'écran des journaux
- Corrections de bugs d'importation de tunnel pour AndroidTV 14
- Améliorations de l'interface utilisateur des statistiques de tunnel
- Autres corrections de bugs et améliorations
@@ -0,0 +1,14 @@
Fonctionnalités
- Ajoutez des tunnels à l'aide d'un fichier .conf, zip, par entrée manuelle ou par code QR
- Connexion automatique au VPN en fonction du SSID de votre Wi-Fi, de l'usage d'Ethernet ou de l'usage des données mobiles
- Division des tunnels en fonction de l'application avec recherche
- Prise en charge de WireGuard pour les modes noyau et espace utilisateur
- Prise en charge d'Amnezia pour la protection contre l'inspection profonde de paquets et la censure
- Prise en charge du VPN permanent
- Export des tunnels Amnezia et WireGuard en zip
- Prise en charge des réglages rapides pour l'activation du VPN
- Prise en charge des raccourcis statiques pour le tunnel principal permettant l'intégration automatisée.
- Prise en charge de l'automatisation des intentions pour tous les tunnels
- Redémarrage automatique des services après redémarrage du téléphone
- Mesures de préservation de la batterie
@@ -0,0 +1 @@
Une appli alternative pour clients VPN WireGuard avec plus de fonctionnalités
@@ -0,0 +1 @@
WG Tunnel
@@ -0,0 +1,3 @@
Peningkatan:
- Perbaikan < Android 9 bug perizinian
- Optimisasi lainnya
@@ -0,0 +1,5 @@
Peningkatan:
- Tambahkan statistik terowongan ke layar utama
- Tingkatkan layar pengaturan navigasi AndroidTV
- Hapus getaran notifikasi
- Berbagai perbaikan bug lainnya
@@ -0,0 +1,5 @@
Peningkatan:
- Menambahkan dukungan untuk tunnel otomatis hanya data seluler
- Meningkatkan UI layar dukungan
- Perbarui tautan sumber daya
- Berbagai perbaikan bug lainnya
@@ -0,0 +1,5 @@
Peningkatan:
- Tambahkan dukungan dasar WireGuard Kernel
- Alur pengungkapan lokasi yang ditingkatkan
- Perbaiki bug izin tunnel otomatis
- Berbagai perbaikan bug UI lainnya
@@ -0,0 +1,2 @@
Perbaikan:
- Izin latar depan Android 14
@@ -0,0 +1,7 @@
Peningkatan:
- Refaktor manajemen status
- Tingkatkan navigasi AndroidTV
- Meningkatkan efisiensi tunnel otomatis
- Meningkatkan navigasi
- Fitur jeda tunnel otomatis
- Banyak perbaikan bug
@@ -0,0 +1,7 @@
Peningkatan:
- Refaktor manajemen status
- Tingkatkan navigasi AndroidTV
- Meningkatkan efisiensi tunnel otomatis
- Meningkatkan navigasi
- Fitur jeda tunnel otomatis
- Banyak perbaikan bug
@@ -0,0 +1,8 @@
Peningkatan:
- Refaktor manajemen status
- Tingkatkan navigasi AndroidTV
- Meningkatkan efisiensi tunnel otomatis
- Meningkatkan navigasi
- Fitur jeda tunnel otomatis
- Perbaiki tunnel otomatis mulai latar depan
- Banyak perbaikan bug
@@ -0,0 +1,7 @@
Peningkatan:
- Menambahkan konfirmasi hapus tunnel
- Menambahkan izin latar belakang baterai
Perbaikan:
- Tunnel menonaktifkan bug beku
- Email ke bug lapangan
- Konfigurasi edit DNS kosong
@@ -0,0 +1,3 @@
Peningkatan:
- Memperbaiki konfigurasi buat yang tidak disimpan
- Versi yang dibenturkan
@@ -0,0 +1,2 @@
Apa yang baru:
- Ini adalah versi pengujian CI
@@ -0,0 +1,5 @@
Apa yang baru:
- Mulai otomatis saat reboot untuk mode kernel VPN Always-On
- Dukungan untuk ikon tema adaptif
- Perbaiki ikon notifikasi, ikon kartu
- Perbaiki ikon AndroidTV
@@ -0,0 +1,5 @@
Apa yang baru:
- Meningkatkan alur peluncuran pertama
- Beralih ke garpu lib wireguard
- Minta izin VPN pada awal VPN pertama
- Versi bump
@@ -0,0 +1,2 @@
Apa yang baru:
- Perbaikan bug UI tampilan tunnel
@@ -0,0 +1,4 @@
Apa yang baru:
- Perbaikan bug UI edit konfigurasi
- Tambahkan pemberitahuan AOVPN peluncuran pertama GrapheneOS
- Versi bump
@@ -0,0 +1,5 @@
Apa yang baru:
- Layar Tambahkan log
- Menambahkan kunci aplikasi lokal
- Tambahkan restart vpn pada ping yang gagal
- Berbagai perbaikan bug
@@ -0,0 +1,5 @@
Apa yang baru:
- Tunnel otomatis ke tunnel tertentu dengan nama wifi
- Kontrol tunnel otomatis dari ubin dan pintasan
- Mulai otomatis tunnel manual jika aktif sebelum reboot
- Berbagai perbaikan bug dan peningkatan kinerja

Some files were not shown because too many files have changed in this diff Show More