aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-12-23 14:55:29 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2020-12-23 14:55:29 +0100
commita613fec2ff46abf5eb6827846e37efb88a4d5f4a (patch)
tree6d012fcfbab87c9e584a9e824d44a2f2a454a36f
parentUI: macOS: Group more than 10 tunnels into submenu (diff)
downloadwireguard-apple-a613fec2ff46abf5eb6827846e37efb88a4d5f4a.tar.xz
wireguard-apple-a613fec2ff46abf5eb6827846e37efb88a4d5f4a.zip
project: sync translations and improve id generation again
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--Sources/WireGuardApp/ca.lproj/Localizable.strings1
-rw-r--r--Sources/WireGuardApp/de.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/es.lproj/Localizable.strings263
-rw-r--r--Sources/WireGuardApp/fa.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/fi.lproj/Localizable.strings471
-rw-r--r--Sources/WireGuardApp/fr.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/id.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/it.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/ja.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/ko.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/pa.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/pl.lproj/Localizable.strings391
-rw-r--r--Sources/WireGuardApp/ro.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/ru.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/sl.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/tr.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings3
-rw-r--r--Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings9
-rw-r--r--WireGuard.xcodeproj/project.pbxproj70
-rwxr-xr-xsync-translations.sh2
20 files changed, 809 insertions, 437 deletions
diff --git a/Sources/WireGuardApp/ca.lproj/Localizable.strings b/Sources/WireGuardApp/ca.lproj/Localizable.strings
index 5f94f97..827b737 100644
--- a/Sources/WireGuardApp/ca.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/ca.lproj/Localizable.strings
@@ -235,6 +235,7 @@
"macMenuFile" = "File";
"tunnelStatusActivating" = "Activating";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
+"macTunnelsMenuTitle" = "Tunnels";
"alertTunnelActivationSystemErrorTitle" = "Activation failure";
"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
"alertNoTunnelsToExportTitle" = "Nothing to export";
diff --git a/Sources/WireGuardApp/de.lproj/Localizable.strings b/Sources/WireGuardApp/de.lproj/Localizable.strings
index 4573672..a18c8c4 100644
--- a/Sources/WireGuardApp/de.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/de.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ Spende an das WireGuard Projekt";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/es.lproj/Localizable.strings b/Sources/WireGuardApp/es.lproj/Localizable.strings
index 9232f55..db4ce2c 100644
--- a/Sources/WireGuardApp/es.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/es.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -80,7 +80,7 @@
"tunnelPeerPublicKey" = "Clave pública";
"tunnelPeerPreSharedKey" = "Clave precompartida";
"tunnelPeerEndpoint" = "Punto final";
-"tunnelPeerPersistentKeepalive" = "Mantenimiento persistente";
+"tunnelPeerPersistentKeepalive" = "Keepalive persistente";
"tunnelPeerAllowedIPs" = "IPs permitidas";
"tunnelPeerRxBytes" = "Datos recibidos";
"tunnelPeerTxBytes" = "Datos enviados";
@@ -177,142 +177,219 @@
"alertInvalidPeerMessagePreSharedKeyInvalid" = "La clave precompartida del par debe ser de 32 bytes en codificación base64";
"alertInvalidPeerMessageAllowedIPsInvalid" = "Las IPs permitidas del par deben ser una lista de direcciones IP separadas por comas, opcionalmente en notación CIDR";
"alertInvalidPeerMessageEndpointInvalid" = "El punto final del par debe ser de la forma ‘host:port’ o ‘[host]:port’";
-"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "El keepalive persistente del par debe estar entre 0 y 65535, o no especificado";
+"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "El keepalive persistente del peer debe estar entre 0 y 65535, o no especificado";
"alertInvalidPeerMessagePublicKeyDuplicated" = "Dos o mas pares no pueden tener la misma llave pùblica";
// Scanning QR code UI
"scanQRCodeViewTitle" = "Escanear código QR";
+"scanQRCodeTipText" = "Consejo: generar con `qrencode -t ansiutf8 tunnel.conf`";
+
+// Scanning QR code alerts
+
+"alertScanQRCodeCameraUnsupportedTitle" = "Cámara no soportada";
+"alertScanQRCodeCameraUnsupportedMessage" = "Este dispositivo no es capaz de escanear códigos QR";
+
+"alertScanQRCodeInvalidQRCodeTitle" = "Código QR inválido";
+"alertScanQRCodeInvalidQRCodeMessage" = "El código QR escaneado no es una configuración válida de WireGuard";
+
+"alertScanQRCodeUnreadableQRCodeTitle" = "Código inválido";
+"alertScanQRCodeUnreadableQRCodeMessage" = "El código escaneado no pudo ser leído";
+
+"alertScanQRCodeNamePromptTitle" = "Por favor, nombra el túnel escaneado";
+
+// Settings UI
+
+"settingsViewTitle" = "Configuración";
+
+"settingsSectionTitleAbout" = "Acerca de";
+"settingsVersionKeyWireGuardForIOS" = "WireGuard para iOS";
+
+"settingsSectionTitleExportConfigurations" = "Exportar configuraciones";
+"settingsExportZipButtonTitle" = "Exportar archivo zip";
+
+"settingsSectionTitleTunnelLog" = "Registro";
+"settingsViewLogButtonTitle" = "Ver registro";
+
+// Log view
+
+"logViewTitle" = "Registro";
// Log alerts
"alertUnableToRemovePreviousLogTitle" = "Exportación de registros fallida";
+"alertUnableToRemovePreviousLogMessage" = "El registro preexistente no ha podido ser borrado";
+
+"alertUnableToWriteLogTitle" = "Exportación de registros fallida";
+"alertUnableToWriteLogMessage" = "No se pudo escribir en el archivo de registros";
+
+// Zip import / export error alerts
+
+"alertCantOpenInputZipFileTitle" = "No se pudo leer el archivo zip";
+"alertCantOpenInputZipFileMessage" = "El archivo zip no pudo ser leído.";
+
+"alertCantOpenOutputZipFileForWritingTitle" = "No se pudo crear el archivo zip";
+"alertCantOpenOutputZipFileForWritingMessage" = "No se pudo abrir el archivo zip para escribir.";
+
+"alertBadArchiveTitle" = "No se pudo leer el archivo zip";
+"alertBadArchiveMessage" = "Archivo zip erróneo o corrupto.";
"alertNoTunnelsToExportTitle" = "Nada para exportar";
-"settingsSectionTitleAbout" = "About";
-"macMenuDeleteSelected" = "Delete Selected";
-"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
+"alertNoTunnelsToExportMessage" = "No hay túneles para exportar";
+
+"alertNoTunnelsInImportedZipArchiveTitle" = "No hay túneles en el archivo zip";
+
+// Tunnel management error alerts
+
+"alertTunnelActivationFailureTitle" = "Fallo en la activación";
+"alertTunnelActivationFailureMessage" = "El túnel no pudo ser activado. Por favor, asegúrese de estar conectado a Internet.";
+"alertTunnelActivationSavedConfigFailureMessage" = "No se ha podido recuperar la información del túnel de la configuración guardada.";
+
+"alertTunnelDNSFailureTitle" = "Fallo en resolución DNS";
+"alertSystemErrorOnAddTunnelTitle" = "No se pudo crear el túnel";
+"alertSystemErrorOnModifyTunnelTitle" = "No se pudo modificar el túnel";
+"alertSystemErrorOnRemoveTunnelTitle" = "No se pudo eliminar el túnel";
+
+/* The alert message for this alert shall include
+ one of the alertSystemErrorMessage* listed further down */
+"alertTunnelActivationSystemErrorTitle" = "Fallo en la activación";
+"alertTunnelActivationSystemErrorMessage (%@)" = "No se pudo activar el túnel. %@";
+
+/* alertSystemErrorMessage* messages */
+"alertSystemErrorMessageTunnelConfigurationInvalid" = "La configuración es inválida.";
+"alertSystemErrorMessageTunnelConfigurationDisabled" = "La configuración está desactivada.";
+"alertSystemErrorMessageTunnelConnectionFailed" = "La conexión ha fallado.";
+"alertSystemErrorMessageTunnelConfigurationUnknown" = "Error desconocido de sistema.";
+
"macMenuTitle" = "WireGuard";
+"macMenuManageTunnels" = "Gestionar túneles";
+"macMenuImportTunnels" = "Importar túnel(es) desde archivo";
+"macMenuViewLog" = "Ver registro";
+"macMenuAbout" = "Acerca de WireGuard";
+"macMenuQuit" = "Salir de WireGuard";
+
+"macMenuHideApp" = "Ocultar WireGuard";
+"macMenuShowAllApps" = "Mostrar todo";
+
+"macMenuFile" = "Archivo";
+"macMenuCloseWindow" = "Cerrar Ventana";
+
+"macMenuEdit" = "Editar";
+"macMenuCut" = "Cortar";
+"macMenuCopy" = "Copiar";
+"macMenuPaste" = "Pegar";
+"macMenuSelectAll" = "Seleccionar todo";
+
+"macMenuTunnel" = "Túnel";
+"macMenuToggleStatus" = "Cambiar estado";
+"macMenuEditTunnel" = "Editar…";
+"macMenuDeleteSelected" = "Eliminar elementos seleccionados";
+
+"macMenuWindow" = "Ventana";
+"macMenuMinimize" = "Minimizar";
+
+// Mac manage tunnels window
+
+"macWindowTitleManageTunnels" = "Gestionar Túneles WireGuard";
+
+"macDeleteTunnelConfirmationAlertMessage (%@)" = "¿Estás seguro que deseas eliminar \"%@\"?";
+"macDeleteMultipleTunnelsConfirmationAlertMessage (%d)" = "¿Está seguro que desea eliminar %d túneles?";
+"macDeleteTunnelConfirmationAlertInfo" = "No puedes deshacer esta acción.";
+"macDeleteTunnelConfirmationAlertButtonTitleDelete" = "Eliminar";
+"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Cancelar";
+"macDeleteTunnelConfirmationAlertButtonTitleDeleting" = "Eliminando…";
+
+"macButtonImportTunnels" = "Importar túnel(es) desde archivo";
+"macSheetButtonImport" = "Importar";
+
+"macNameFieldExportLog" = "Guardar registro en:";
+"macSheetButtonExportLog" = "Guardar";
+
+"macNameFieldExportZip" = "Exportar túneles a:";
+"macSheetButtonExportZip" = "Guardar";
+
+"macButtonDeleteTunnels (%d)" = "Eliminar %d túneles";
+
+"macButtonEdit" = "Editar";
+"macFieldOnDemand" = "Bajo demanda:";
+"macFieldOnDemandSSIDs" = "SSIDs:";
+
+// Mac status display
+
+"macStatus (%@)" = "Estado: %@";
+
+// Mac editing config
+
+"macEditDiscard" = "Descartar";
+"macEditSave" = "Guardar";
+"macAlertDNSInvalid (%@)" = "El DNS ‘%@’ no es válido.";
+
+"macAlertPublicKeyInvalid" = "La Clave pública no es válida";
+"macAlertPreSharedKeyInvalid" = "La clave compartida no es válida";
+"macAlertEndpointInvalid (%@)" = "Endpoint ‘%@’ no es válido";
+"macAlertPersistentKeepliveInvalid (%@)" = "El valor keepalive persistente '%@' no es válido";
+"macAlertInfoUnrecognizedPeerKey" = "Las claves válidas son: ‘PublicKey’, ‘PresharedKey’, ‘AllowedIPs’, ‘Endpoint’ y ‘PersistentKeepalive’";
+"macConfirmAndQuitAlertQuitWireGuard" = "Salir de WireGuard";
+"macConfirmAndQuitAlertCloseWindow" = "Cerrar Gestor de túneles";
+
+// Mac tooltip
+
+"macToolTipEditTunnel" = "Editar túnel (⌘E)";
+"macToolTipToggleStatus" = "Cambiar estado (⌘T)";
+
+// Mac log view
+
+"macLogColumnTitleTime" = "Tiempo";
+"macLogColumnTitleLogMessage" = "Mensaje de registro";
+"macLogButtonTitleClose" = "Cerrar";
+"macLogButtonTitleSave" = "Guardar…";
+
+// Mac unusable tunnel view
+
+"macUnusableTunnelMessage" = "La configuración de este túnel no se encuentra en el llavero.";
+"macUnusableTunnelButtonTitleDeleteTunnel" = "Eliminar túnel";
+
+// Mac App Store updating alert
+
+"macAppStoreUpdatingAlertMessage" = "App Store desea actualizar WireGuard";
+
+// Donation
+
+"donateLink" = "♥ Donar al Proyecto WireGuard";
"macAlertNoInterface" = "Configuration must have an ‘Interface’ section.";
-"macNameFieldExportZip" = "Export tunnels to:";
-"alertSystemErrorMessageTunnelConfigurationUnknown" = "Unknown system error.";
-"macMenuCut" = "Cut";
-"macEditDiscard" = "Discard";
-"alertScanQRCodeCameraUnsupportedMessage" = "This device is not able to scan QR codes";
-"macSheetButtonExportZip" = "Save";
-"macWindowTitleManageTunnels" = "Manage WireGuard Tunnels";
"macConfirmAndQuitAlertInfo" = "If you close the tunnels manager, WireGuard will continue to be available from the menu bar icon.";
"macUnusableTunnelInfo" = "In case this tunnel was created by another user, only that user can view, edit, or activate this tunnel.";
"alertTunnelActivationErrorTunnelIsNotInactiveMessage" = "The tunnel is already active or in the process of being activated";
"alertTunnelActivationSetNetworkSettingsMessage" = "Unable to apply network settings to tunnel object.";
"macMenuExportTunnels" = "Export Tunnels to Zip…";
-"macMenuShowAllApps" = "Show All";
"alertCantOpenInputConfFileTitle" = "Unable to import from file";
-"alertScanQRCodeInvalidQRCodeMessage" = "The scanned QR code is not a valid WireGuard configuration";
-"macMenuHideApp" = "Hide WireGuard";
-"settingsViewTitle" = "Settings";
-"macDeleteTunnelConfirmationAlertInfo" = "You cannot undo this action.";
-"macDeleteTunnelConfirmationAlertButtonTitleDeleting" = "Deleting…";
-"settingsViewLogButtonTitle" = "View log";
-"alertSystemErrorMessageTunnelConnectionFailed" = "The connection failed.";
-"macButtonEdit" = "Edit";
-"macAlertPublicKeyInvalid" = "Public key is invalid";
-"macNameFieldExportLog" = "Save log to:";
-"alertSystemErrorOnAddTunnelTitle" = "Unable to create tunnel";
"macConfirmAndQuitAlertMessage" = "Do you want to close the tunnels manager or quit WireGuard entirely?";
-"alertTunnelActivationSavedConfigFailureMessage" = "Unable to retrieve tunnel information from the saved configuration.";
"macAlertInfoUnrecognizedInterfaceKey" = "Valid keys are: ‘PrivateKey’, ‘ListenPort’, ‘Address’, ‘DNS’ and ‘MTU’.";
-"macLogColumnTitleTime" = "Time";
"alertTunnelNameEmptyMessage" = "Cannot create tunnel with an empty name";
"alertTunnelNameEmptyTitle" = "No name provided";
-"alertUnableToWriteLogMessage" = "Unable to write logs to file";
-"macMenuQuit" = "Quit WireGuard";
"macMenuAddEmptyTunnel" = "Add Empty Tunnel…";
-"macDeleteTunnelConfirmationAlertButtonTitleDelete" = "Delete";
"alertTunnelActivationFailureOnDemandAddendum" = " This tunnel has Activate On Demand enabled, so this tunnel might be re-activated automatically by the OS. You may turn off Activate On Demand in this app by editing the tunnel configuration.";
-"alertTunnelActivationFailureTitle" = "Activation failure";
-"macLogButtonTitleClose" = "Close";
-"settingsExportZipButtonTitle" = "Export zip archive";
"macViewPrivateData" = "view tunnel private keys";
"alertTunnelActivationErrorTunnelIsNotInactiveTitle" = "Activation in progress";
"macAppExitingWithActiveTunnelInfo" = "The tunnel will remain active after exiting. You may disable it by reopening this application or through the Network panel in System Preferences.";
-"macMenuEdit" = "Edit";
-"donateLink" = "♥ Donate to the WireGuard Project";
-"alertScanQRCodeCameraUnsupportedTitle" = "Camera Unsupported";
-"macMenuWindow" = "Window";
-"alertTunnelActivationFailureMessage" = "The tunnel could not be activated. Please ensure that you are connected to the Internet.";
"macMenuHideOtherApps" = "Hide Others";
-"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
"macAlertPrivateKeyInvalid" = "Private key is invalid.";
-"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Cancel";
-"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
-"alertUnableToWriteLogTitle" = "Log export failed";
"macMenuNetworksNone" = "Networks: None";
-"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
-"macMenuSelectAll" = "Select All";
-"logViewTitle" = "Log";
-"macConfirmAndQuitAlertQuitWireGuard" = "Quit WireGuard";
-"alertSystemErrorOnRemoveTunnelTitle" = "Unable to remove tunnel";
-"macFieldOnDemand" = "On-Demand:";
-"macMenuCloseWindow" = "Close Window";
-"macSheetButtonExportLog" = "Save";
-"alertSystemErrorOnModifyTunnelTitle" = "Unable to modify tunnel";
"alertSystemErrorMessageTunnelConfigurationReadWriteFailed" = "Reading or writing the configuration failed.";
-"macMenuEditTunnel" = "Edit…";
-"settingsSectionTitleTunnelLog" = "Log";
-"macMenuManageTunnels" = "Manage Tunnels";
-"macButtonImportTunnels" = "Import tunnel(s) from file";
"macAppExitingWithActiveTunnelMessage" = "WireGuard is exiting with an active tunnel";
"alertSystemErrorMessageTunnelConfigurationStale" = "The configuration is stale.";
"alertTunnelDNSFailureMessage" = "One or more endpoint domains could not be resolved.";
-"alertNoTunnelsInImportedZipArchiveTitle" = "No tunnels in zip archive";
-"alertTunnelDNSFailureTitle" = "DNS resolution failure";
-"macLogButtonTitleSave" = "Save…";
-"macMenuToggleStatus" = "Toggle Status";
-"macMenuMinimize" = "Minimize";
-"alertCantOpenInputZipFileTitle" = "Unable to read zip archive";
-"alertScanQRCodeUnreadableQRCodeMessage" = "The scanned code could not be read";
-"alertScanQRCodeUnreadableQRCodeTitle" = "Invalid Code";
"alertSystemErrorOnListingTunnelsTitle" = "Unable to list tunnels";
-"settingsVersionKeyWireGuardForIOS" = "WireGuard for iOS";
-"macMenuPaste" = "Paste";
"macAlertMultipleInterfaces" = "Configuration must have only one ‘Interface’ section.";
-"macAppStoreUpdatingAlertMessage" = "App Store would like to update WireGuard";
-"macUnusableTunnelMessage" = "The configuration for this tunnel cannot be found in the keychain.";
-"macToolTipEditTunnel" = "Edit tunnel (⌘E)";
"macMenuZoom" = "Zoom";
-"alertBadArchiveTitle" = "Unable to read zip archive";
"macExportPrivateData" = "export tunnel private keys";
"alertTunnelAlreadyExistsWithThatNameTitle" = "Name already exists";
"iosViewPrivateData" = "Authenticate to view tunnel private keys.";
-"macAlertPreSharedKeyInvalid" = "Preshared key is invalid";
-"macEditSave" = "Save";
-"macConfirmAndQuitAlertCloseWindow" = "Close Tunnels Manager";
-"macMenuFile" = "File";
-"macToolTipToggleStatus" = "Toggle status (⌘T)";
-"alertTunnelActivationSystemErrorTitle" = "Activation failure";
-"scanQRCodeTipText" = "Tip: Generate with `qrencode -t ansiutf8 < tunnel.conf`";
-"alertNoTunnelsToExportMessage" = "There are no tunnels to export";
-"macMenuImportTunnels" = "Import Tunnel(s) from File…";
-"alertScanQRCodeInvalidQRCodeTitle" = "Invalid QR Code";
-"macMenuViewLog" = "View Log";
-"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: ‘PublicKey’, ‘PresharedKey’, ‘AllowedIPs’, ‘Endpoint’ and ‘PersistentKeepalive’";
-"macUnusableTunnelButtonTitleDeleteTunnel" = "Delete tunnel";
-"macMenuTunnel" = "Tunnel";
-"macMenuCopy" = "Copy";
+"macTunnelsMenuTitle" = "Tunnels";
"alertTunnelAlreadyExistsWithThatNameMessage" = "A tunnel with that name already exists";
-"macLogColumnTitleLogMessage" = "Log message";
"iosExportPrivateData" = "Authenticate to export tunnel private keys.";
-"macMenuAbout" = "About WireGuard";
-"macSheetButtonImport" = "Import";
-"alertScanQRCodeNamePromptTitle" = "Please name the scanned tunnel";
-"alertUnableToRemovePreviousLogMessage" = "The pre-existing log could not be cleared";
"alertTunnelActivationBackendFailureMessage" = "Unable to turn on Go backend library.";
-"settingsSectionTitleExportConfigurations" = "Export configurations";
-"alertBadArchiveMessage" = "Bad or corrupt zip archive.";
"settingsVersionKeyWireGuardGoBackend" = "WireGuard Go Backend";
-"macFieldOnDemandSSIDs" = "SSIDs:";
-"alertCantOpenOutputZipFileForWritingTitle" = "Unable to create zip archive";
"alertNoTunnelsInImportedZipArchiveMessage" = "No .conf tunnel files were found inside the zip archive.";
"alertTunnelActivationFileDescriptorFailureMessage" = "Unable to determine TUN device file descriptor.";
"macAlertNameIsEmpty" = "Name is required";
diff --git a/Sources/WireGuardApp/fa.lproj/Localizable.strings b/Sources/WireGuardApp/fa.lproj/Localizable.strings
index 4cfd327..140e38f 100644
--- a/Sources/WireGuardApp/fa.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/fa.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -389,6 +389,7 @@
"macUnusableTunnelMessage" = "The configuration for this tunnel cannot be found in the keychain.";
"iosViewPrivateData" = "Authenticate to view tunnel private keys.";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
+"macTunnelsMenuTitle" = "Tunnels";
"scanQRCodeTipText" = "Tip: Generate with `qrencode -t ansiutf8 < tunnel.conf`";
"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: ‘PublicKey’, ‘PresharedKey’, ‘AllowedIPs’, ‘Endpoint’ and ‘PersistentKeepalive’";
"alertInvalidPeerMessageAllowedIPsInvalid" = "Peer’s allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
diff --git a/Sources/WireGuardApp/fi.lproj/Localizable.strings b/Sources/WireGuardApp/fi.lproj/Localizable.strings
index 9333f68..64915c8 100644
--- a/Sources/WireGuardApp/fi.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/fi.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -12,20 +12,103 @@
"tunnelsListTitle" = "WireGuard";
"tunnelsListSettingsButtonTitle" = "Asetukset";
"tunnelsListCenteredAddTunnelButtonTitle" = "Lisää tunneli";
+"tunnelsListSwipeDeleteButtonTitle" = "Poista";
+"tunnelsListSelectButtonTitle" = "Valitse";
+"tunnelsListSelectAllButtonTitle" = "Valitse kaikki";
+"tunnelsListDeleteButtonTitle" = "Poista";
+"tunnelsListSelectedTitle (%d)" = "%d poistettu";
+
+// Tunnels list menu
+
+"addTunnelMenuHeader" = "Lisää uusi WireGuard tunneli";
+"addTunnelMenuImportFile" = "Luo tiedostosta tai arkistosta";
+"addTunnelMenuQRCode" = "Luo QR-koodista";
+"addTunnelMenuFromScratch" = "Luo alusta";
+
+// Tunnels list alerts
+
+"alertImportedFromMultipleFilesTitle (%d)" = "Luotu %d tunnelia";
+"alertImportedFromMultipleFilesMessage (%1$d of %2$d)" = "Luotu %1$d / %2$d tunnelia tuoduista tiedostoista";
+
+"alertImportedFromZipTitle (%d)" = "Luotu %d tunnelia";
+"alertImportedFromZipMessage (%1$d of %2$d)" = "Luotu %1$d / %2$d tunnelia zip-arkistosta";
+
+"alertBadConfigImportTitle" = "Tunnelia ei voitu tuoda";
+"alertBadConfigImportMessage (%@)" = "Tiedosto ”%@” ei sisällä kelvollista WireGuard konfiguraatiota";
+
+"deleteTunnelsConfirmationAlertButtonTitle" = "Poista";
+"deleteTunnelConfirmationAlertButtonMessage (%d)" = "Poista %d tunneli?";
+"deleteTunnelsConfirmationAlertButtonMessage (%d)" = "Poista %d tunnelit?";
+
+// Tunnel detail and edit UI
+
+"newTunnelViewTitle" = "Uusi konfiguraatio";
+"editTunnelViewTitle" = "Muokkaa konfiguraatiota";
+
+"tunnelSectionTitleStatus" = "Tila";
+
+"tunnelStatusInactive" = "Ei aktiivinen";
+"tunnelStatusActivating" = "Aktivoidaan";
+"tunnelStatusActive" = "Aktiivinen";
+"tunnelStatusDeactivating" = "Deaktivoidaan";
+"tunnelStatusReasserting" = "Aktivoidaan uudelleen";
+"tunnelStatusRestarting" = "Käynnistetään uudelleen";
+"tunnelStatusWaiting" = "Odotetaan";
+
+"macToggleStatusButtonActivate" = "Aktivoi";
+"macToggleStatusButtonActivating" = "Aktivoidaan…";
+"macToggleStatusButtonDeactivate" = "Deaktivoi";
+"macToggleStatusButtonDeactivating" = "Deaktivoidaan…";
+"macToggleStatusButtonReasserting" = "Aktivoidaan uudelleen…";
+"macToggleStatusButtonRestarting" = "Käynnistetään uudelleen…";
+"macToggleStatusButtonWaiting" = "Odotetaan…";
+
+"tunnelSectionTitleInterface" = "Liittymä";
"tunnelInterfaceName" = "Nimi";
"tunnelInterfacePrivateKey" = "Yksityinen avain";
"tunnelInterfacePublicKey" = "Julkinen avain";
"tunnelInterfaceGenerateKeypair" = "Luo avainpari";
"tunnelInterfaceAddresses" = "Osoitteet";
+"tunnelInterfaceListenPort" = "Kuuntele porttia";
+"tunnelInterfaceMTU" = "MTU";
+"tunnelInterfaceDNS" = "DNS palvelimet";
+"tunnelInterfaceStatus" = "Tila";
+
+"tunnelSectionTitlePeer" = "Osapuoli";
"tunnelPeerPublicKey" = "Julkinen avain";
+"tunnelPeerPreSharedKey" = "Jaettu avain";
+"tunnelPeerEndpoint" = "Päätepiste";
+"tunnelPeerPersistentKeepalive" = "Jatkuva keepalive";
+"tunnelPeerAllowedIPs" = "Sallitut IP-osoitteet";
+"tunnelPeerRxBytes" = "Data vastaanotettu";
+"tunnelPeerTxBytes" = "Data lähetetty";
+"tunnelPeerLastHandshakeTime" = "Viimeisin kättely";
+"tunnelPeerExcludePrivateIPs" = "Jätä pois yksityiset IP-osoitteet";
+
+"tunnelSectionTitleOnDemand" = "Automaattinen käyttöönotto";
+
+"tunnelOnDemandCellular" = "Matkapuhelinverkko";
+"tunnelOnDemandEthernet" = "Ethernet";
"tunnelOnDemandWiFi" = "Wi-Fi";
"tunnelOnDemandSSIDsKey" = "SSID:t";
"tunnelOnDemandAnySSID" = "Mikä tahansa SSID";
"tunnelOnDemandOnlyTheseSSIDs" = "Vain nämä SSID:t";
"tunnelOnDemandExceptTheseSSIDs" = "Poislukien SSID:t";
+"tunnelOnDemandOnlySSID (%d)" = "Vain %d SSID";
+"tunnelOnDemandOnlySSIDs (%d)" = "Vain %d SSID:t";
+"tunnelOnDemandExceptSSID (%d)" = "Kaikki paitsi %d SSID";
+"tunnelOnDemandExceptSSIDs (%d)" = "Kaikki paitsi %d SSID:t";
+"tunnelOnDemandSSIDOptionDescriptionMac (%1$@: %2$@)" = "%1$@: %2$@";
+
+"tunnelOnDemandSSIDViewTitle" = "SSID:t";
+"tunnelOnDemandSectionTitleSelectedSSIDs" = "SSID:t";
+"tunnelOnDemandNoSSIDs" = "Ei SSID-tietoja";
+"tunnelOnDemandSectionTitleAddSSIDs" = "Lisää SSID-tietoja";
+"tunnelOnDemandAddMessageAddConnectedSSID (%@)" = "Lisää yhdistetty: %@";
+"tunnelOnDemandAddMessageAddNewSSID" = "Lisää uusi";
"tunnelOnDemandKey" = "Tarvittaessa";
"tunnelOnDemandOptionOff" = "Pois päältä";
@@ -35,6 +118,12 @@
"tunnelOnDemandOptionWiFiOrEthernet" = "Wi-Fi tai Ethernet";
"tunnelOnDemandOptionEthernetOnly" = "Vain Ethernet";
+"addPeerButtonTitle" = "Lisää toinen osapuoli";
+
+"deletePeerButtonTitle" = "Poista osapuoli";
+"deletePeerConfirmationAlertButtonTitle" = "Poista";
+"deletePeerConfirmationAlertMessage" = "Poistetaanko tämä osapuoli?";
+
"deleteTunnelButtonTitle" = "Poista tunneli";
"deleteTunnelConfirmationAlertButtonTitle" = "Poista";
"deleteTunnelConfirmationAlertMessage" = "Poistetaanko tämä tunneli?";
@@ -42,207 +131,273 @@
"tunnelEditPlaceholderTextRequired" = "Pakollinen";
"tunnelEditPlaceholderTextOptional" = "Valinnainen";
"tunnelEditPlaceholderTextAutomatic" = "Automaattinen";
+"tunnelEditPlaceholderTextStronglyRecommended" = "Erittäin suositeltavaa";
"tunnelEditPlaceholderTextOff" = "Pois päältä";
+
+"tunnelPeerPersistentKeepaliveValue (%@)" = "joka %@ sekuntin välein";
"tunnelHandshakeTimestampNow" = "Nyt";
-"settingsSectionTitleAbout" = "About";
-"newTunnelViewTitle" = "New configuration";
-"macMenuDeleteSelected" = "Delete Selected";
-"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
-"tunnelInterfaceDNS" = "DNS servers";
-"tunnelPeerEndpoint" = "Endpoint";
-"tunnelInterfaceMTU" = "MTU";
-"alertInvalidInterfaceMessageListenPortInvalid" = "Interface’s listen port must be between 0 and 65535, or unspecified";
-"addPeerButtonTitle" = "Add peer";
-"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
-"tunnelsListSwipeDeleteButtonTitle" = "Delete";
+"tunnelHandshakeTimestampSystemClockBackward" = "(Järjestelmän kello jättää)";
+"tunnelHandshakeTimestampAgo (%@)" = "%@ sitten";
+"tunnelHandshakeTimestampYear (%d)" = "%d vuosi";
+"tunnelHandshakeTimestampYears (%d)" = "%d vuotta";
+"tunnelHandshakeTimestampDay (%d)" = "%d päivä";
+"tunnelHandshakeTimestampDays (%d)" = "%d päivää";
+"tunnelHandshakeTimestampHour (%d)" = "%d tunti";
+"tunnelHandshakeTimestampHours (%d)" = "%d tuntia";
+"tunnelHandshakeTimestampMinute (%d)" = "%d minuutti";
+"tunnelHandshakeTimestampMinutes (%d)" = "%d minuuttia";
+"tunnelHandshakeTimestampSecond (%d)" = "%d sekunti";
+"tunnelHandshakeTimestampSeconds (%d)" = "%d sekuntia";
+
+"tunnelHandshakeTimestampHours hh:mm:ss (%@)" = "%@ tuntia";
+"tunnelHandshakeTimestampMinutes mm:ss (%@)" = "%@ minuuttia";
+
+"tunnelPeerPresharedKeyEnabled" = "käytössä";
+
+// Error alerts while creating / editing a tunnel configuration
+/* Alert title for error in the interface data */
+
+"alertInvalidInterfaceTitle" = "Virheellinen liittymä";
+
+/* Any one of the following alert messages can go with the above title */
+"alertInvalidInterfaceMessageNameRequired" = "Sovittimen nimi vaadittu";
+"alertInvalidInterfaceMessagePrivateKeyRequired" = "Sovittimen yksityinen avain on vaadittu";
+"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Sovittimen yksityinen avain on oltava 32-tavuinen avain base64 enkoodauksella";
+"alertInvalidInterfaceMessageAddressInvalid" = "Sovittimen osoitteet on oltava pilkulla erotettujen IP-osoitteiden luettelo, valinnaisesti CIDR-notaatiossa";
+"alertInvalidInterfaceMessageListenPortInvalid" = "Sovittimen kuunteluportin on tulee olla väliltä 0 - 65535, tai sen on oltava määrittelemätön";
+"alertInvalidInterfaceMessageMTUInvalid" = "Sovittimen MTU on oltava väliltä 576 - 65535, tai sen on oltava määrittelemätön";
+"alertInvalidInterfaceMessageDNSInvalid" = "Sovittimen DNS-palvelimien on oltava lista pilkulla erotettu IP-osoitteita";
+
+/* Alert title for error in the peer data */
+"alertInvalidPeerTitle" = "Virheellinen osapuoli";
+
+/* Any one of the following alert messages can go with the above title */
+"alertInvalidPeerMessagePublicKeyRequired" = "Osapuolen julkinen avain on vaadittu";
+"alertInvalidPeerMessagePublicKeyInvalid" = "Osapuolen julkinen avain on oltava 32-tavuinen avain base64 -enkoodauksella";
+"alertInvalidPeerMessagePreSharedKeyInvalid" = "Osapuolen jaettu avain on oltava 32-tavuinen avain base64 -enkoodauksella";
+"alertInvalidPeerMessageAllowedIPsInvalid" = "Toisen osapuolen sallittujen IP-osoitteiden on oltava pilkulla erotettujen IP-osoitteiden luettelo, valinnaisesti CIDR-notaatiossa";
+"alertInvalidPeerMessageEndpointInvalid" = "Käyttäjän päätepisteen on oltava muotoa ”host:port” tai ”[host]:port”";
+"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Käyttäjän pysyvän keepalivin on oltava välillä 0–65535 tai määrittelemätön";
+"alertInvalidPeerMessagePublicKeyDuplicated" = "Kahdella tai useammalla osapuolella ei voi olla samaa julkista avainta";
+
+// Scanning QR code UI
+
+"scanQRCodeViewTitle" = "Skannaa QR-koodi";
+"scanQRCodeTipText" = "Vihje: Luo käyttämällä `qrencode -t ansiutf8 < tunnel.conf`";
+
+// Scanning QR code alerts
+
+"alertScanQRCodeCameraUnsupportedTitle" = "Kameraa ei tuettu";
+"alertScanQRCodeCameraUnsupportedMessage" = "Tämä laite ei pysty skannaamaan QR-koodeja";
+
+"alertScanQRCodeInvalidQRCodeTitle" = "Virheellinen QR-koodi";
+
+"alertScanQRCodeUnreadableQRCodeTitle" = "Virheellinen koodi";
+
+// Settings UI
+
+"settingsViewTitle" = "Asetukset";
+
+"settingsSectionTitleAbout" = "Tietoa";
+"settingsVersionKeyWireGuardForIOS" = "WireGuard iOS:lle";
+"settingsVersionKeyWireGuardGoBackend" = "WireGuard Go -moottori";
+
+"settingsSectionTitleTunnelLog" = "Loki";
+"settingsViewLogButtonTitle" = "Näytä loki";
+
+// Log view
+
+"logViewTitle" = "Loki";
+"alertBadArchiveMessage" = "Huono tai korruptoitunut zip arkisto.";
+
+"alertNoTunnelsToExportTitle" = "Ei mitään vietävää";
+"alertNoTunnelsToExportMessage" = "Vietäviä tunneleita ei ole";
+
+"alertNoTunnelsInImportedZipArchiveTitle" = "Zip arkistossa ei ole tunneleita";
+
+// Tunnel management error alerts
+
+"alertTunnelActivationFailureTitle" = "Aktivointi epäonnistui";
+
+"alertTunnelNameEmptyTitle" = "Nimeä ei annettu lainkaan";
+
+"alertTunnelAlreadyExistsWithThatNameTitle" = "Nimi on jo käytössä";
+
+"alertTunnelActivationErrorTunnelIsNotInactiveTitle" = "Aktivointi käynnissä";
+
+// Tunnel management error alerts on system error
+/* The alert message that goes with the following titles would be
+ one of the alertSystemErrorMessage* listed further down */
+
+"alertSystemErrorOnListingTunnelsTitle" = "Tunneleita ei voitu listata";
+"alertSystemErrorOnAddTunnelTitle" = "Tunnelia ei voitu luoda";
+
+/* The alert message for this alert shall include
+ one of the alertSystemErrorMessage* listed further down */
+"alertTunnelActivationSystemErrorTitle" = "Aktivointi epäonnistui";
+
+/* alertSystemErrorMessage* messages */
+"alertSystemErrorMessageTunnelConfigurationInvalid" = "Konfiguraatio ei kelpaa.";
+"alertSystemErrorMessageTunnelConnectionFailed" = "Yhteys epäonnistui.";
+"alertSystemErrorMessageTunnelConfigurationReadWriteFailed" = "Konfiguraation lukeminen tai kirjoittaminen epäonnistui.";
+"alertSystemErrorMessageTunnelConfigurationUnknown" = "Tuntematon järjestelmävirhe.";
+
+// Mac status bar menu / pulldown menu / main menu
+
+"macMenuNetworks (%@)" = "Verkot: %@";
+"macMenuNetworksNone" = "Verkot: Ei mitään";
+
"macMenuTitle" = "WireGuard";
+"macMenuManageTunnels" = "Hallitse tunneleita";
+"macMenuImportTunnels" = "Tuo tunneli(t) tiedostosta…";
+"macMenuAddEmptyTunnel" = "Lisää tyhjä tunneli…";
+"macMenuViewLog" = "Näytä loki";
+"macMenuExportTunnels" = "Vie tunnelit Zippinä…";
+"macMenuAbout" = "Tietoa WireGuardista";
+"macMenuQuit" = "Sulje WireGuard";
+
+"macMenuHideApp" = "Piilota WireGuard";
+"macMenuHideOtherApps" = "Piilota muut";
+"macMenuShowAllApps" = "Näytä kaikki";
+
+"macMenuFile" = "Tiedosto";
+"macMenuCloseWindow" = "Sulje ikkuna";
+
+"macMenuEdit" = "Muokkaa";
+"macMenuCut" = "Leikkaa";
+"macMenuCopy" = "Kopioi";
+"macMenuPaste" = "Liitä";
+"macMenuSelectAll" = "Valitse kaikki";
+
+"macMenuTunnel" = "Tunneli";
+"macMenuToggleStatus" = "Vaihda tilaa";
+"macMenuEditTunnel" = "Muokkaa…";
+"macMenuDeleteSelected" = "Poista valitut";
+
+"macMenuWindow" = "Ikkuna";
+"macMenuMinimize" = "Pienennä";
+"macMenuZoom" = "Lähennä/Loitonna";
+
+// Mac manage tunnels window
+
+"macWindowTitleManageTunnels" = "Hallitse WireGuard tunneleita";
+
+"macDeleteTunnelConfirmationAlertMessage (%@)" = "Oletko varma, että haluat poistaa \"%@\"?";
+"macDeleteMultipleTunnelsConfirmationAlertMessage (%d)" = "Haluatko varmasti poistaa %d kohdetta?";
+"macDeleteTunnelConfirmationAlertInfo" = "Tätä toimintoa ei voi peruuttaa.";
+"macDeleteTunnelConfirmationAlertButtonTitleDelete" = "Poista";
+"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Peruuta";
+"macDeleteTunnelConfirmationAlertButtonTitleDeleting" = "Poistetaan…";
+
+"macButtonImportTunnels" = "Tuo tunneli(t) tiedostosta";
+"macSheetButtonImport" = "Tuo";
+
+"macNameFieldExportLog" = "Tallenna loki kohteeseen:";
+"macSheetButtonExportLog" = "Tallenna";
+
+"macNameFieldExportZip" = "Vie tunnelit kohteeseen:";
+"macSheetButtonExportZip" = "Tallenna";
+
+"macButtonDeleteTunnels (%d)" = "Poista %d tunnelia";
+
+"macButtonEdit" = "Muokkaa";
+"macFieldOnDemand" = "Tarvittaessa:";
+"macFieldOnDemandSSIDs" = "SSIDt:";
+
+// Mac status display
+
+"macStatus (%@)" = "Tila: %@";
+
+// Mac editing config
+
+"macEditDiscard" = "Hylkää";
+"macEditSave" = "Tallenna";
+
+"macAlertNameIsEmpty" = "Nimi on pakollinen";
+"macAlertPrivateKeyInvalid" = "Yksityinen avain ei kelpaa.";
+"macAlertListenPortInvalid (%@)" = "Portti \"%@\" ei kelpaa.";
+"macAlertAddressInvalid (%@)" = "Osoite \"%@\" ei kelpaa.";
+"macAlertDNSInvalid (%@)" = "DNS ‘%@’ ei kelpaa.";
+"macAlertMTUInvalid (%@)" = "MTU ‘%@’ ei kelpaa.";
+
+"macAlertPublicKeyInvalid" = "Julkinen avain ei kelpaa";
+"macAlertPreSharedKeyInvalid" = "Jaettu avain ei kelpaa";
+"macAlertAllowedIPInvalid (%@)" = "Sallitut IP-osoitteet %@\" eivät kelpaa";
+"macAlertEndpointInvalid (%@)" = "Päätepiste \"%@\" ei kelpaa";
+"macAlertPersistentKeepliveInvalid (%@)" = "Pysyvä keepalive arvo ‘%@’ ei kelpaa";
+
+"macAlertUnrecognizedPeerKey (%@)" = "Osapuoli sisältää tunnistamattoman avaimen ”%@”";
+"macAlertInfoUnrecognizedPeerKey" = "Voimassa olevat avaimet ovat: ”PublicKey”, ”PresharedKey”, ”AllowedIPs”, ”Endpoint” ja ”PersistentKeepalive”";
+
+// Mac about dialog
+
+"macAppVersion (%@)" = "Sovelluksen versio: %@";
+"macGoBackendVersion (%@)" = "Go -moottorin versio: %@";
+"iosViewPrivateData" = "Todenna nähdäksesi tunnelin yksityiset avaimet.";
+"macConfirmAndQuitAlertQuitWireGuard" = "Sulje WireGuard";
+"macConfirmAndQuitAlertCloseWindow" = "Sulje tunneleiden hallinta";
+
+// Mac tooltip
+
+"macToolTipEditTunnel" = "Muokkaa tunnelia (⌘E)";
+
+// Mac log view
+
+"macLogColumnTitleTime" = "Aika";
+"macLogColumnTitleLogMessage" = "Lokiviesti";
+"macLogButtonTitleClose" = "Sulje";
+"macLogButtonTitleSave" = "Tallenna…";
+"macUnusableTunnelButtonTitleDeleteTunnel" = "Poista tunneli";
+
+// Mac App Store updating alert
+
+"macAppStoreUpdatingAlertMessage" = "App Store haluaa päivittää WireGuardin";
+
+// Donation
+
+"donateLink" = "♥ Lahjoita WireGuard projektille";
"macAlertNoInterface" = "Configuration must have an ‘Interface’ section.";
-"macNameFieldExportZip" = "Export tunnels to:";
-"editTunnelViewTitle" = "Edit configuration";
-"alertSystemErrorMessageTunnelConfigurationUnknown" = "Unknown system error.";
-"macMenuCut" = "Cut";
-"macEditDiscard" = "Discard";
-"tunnelPeerPresharedKeyEnabled" = "enabled";
-"alertScanQRCodeCameraUnsupportedMessage" = "This device is not able to scan QR codes";
-"macSheetButtonExportZip" = "Save";
-"macWindowTitleManageTunnels" = "Manage WireGuard Tunnels";
"macConfirmAndQuitAlertInfo" = "If you close the tunnels manager, WireGuard will continue to be available from the menu bar icon.";
"macUnusableTunnelInfo" = "In case this tunnel was created by another user, only that user can view, edit, or activate this tunnel.";
"alertTunnelActivationErrorTunnelIsNotInactiveMessage" = "The tunnel is already active or in the process of being activated";
-"macToggleStatusButtonReasserting" = "Reactivating…";
"alertTunnelActivationSetNetworkSettingsMessage" = "Unable to apply network settings to tunnel object.";
-"macMenuExportTunnels" = "Export Tunnels to Zip…";
-"macMenuShowAllApps" = "Show All";
"alertCantOpenInputConfFileTitle" = "Unable to import from file";
"alertScanQRCodeInvalidQRCodeMessage" = "The scanned QR code is not a valid WireGuard configuration";
-"macMenuHideApp" = "Hide WireGuard";
-"settingsViewTitle" = "Settings";
-"tunnelsListSelectAllButtonTitle" = "Select All";
-"macDeleteTunnelConfirmationAlertInfo" = "You cannot undo this action.";
-"macDeleteTunnelConfirmationAlertButtonTitleDeleting" = "Deleting…";
-"tunnelPeerPersistentKeepalive" = "Persistent keepalive";
-"settingsViewLogButtonTitle" = "View log";
-"alertSystemErrorMessageTunnelConnectionFailed" = "The connection failed.";
-"macButtonEdit" = "Edit";
-"macAlertPublicKeyInvalid" = "Public key is invalid";
-"macNameFieldExportLog" = "Save log to:";
-"alertSystemErrorOnAddTunnelTitle" = "Unable to create tunnel";
"macConfirmAndQuitAlertMessage" = "Do you want to close the tunnels manager or quit WireGuard entirely?";
"alertTunnelActivationSavedConfigFailureMessage" = "Unable to retrieve tunnel information from the saved configuration.";
-"tunnelOnDemandSectionTitleSelectedSSIDs" = "SSIDs";
"macAlertInfoUnrecognizedInterfaceKey" = "Valid keys are: ‘PrivateKey’, ‘ListenPort’, ‘Address’, ‘DNS’ and ‘MTU’.";
-"macLogColumnTitleTime" = "Time";
"alertTunnelNameEmptyMessage" = "Cannot create tunnel with an empty name";
-"alertInvalidInterfaceMessageMTUInvalid" = "Interface’s MTU must be between 576 and 65535, or unspecified";
-"alertTunnelNameEmptyTitle" = "No name provided";
-"macToggleStatusButtonRestarting" = "Restarting…";
"alertUnableToWriteLogMessage" = "Unable to write logs to file";
-"macToggleStatusButtonActivating" = "Activating…";
-"macMenuQuit" = "Quit WireGuard";
-"macMenuAddEmptyTunnel" = "Add Empty Tunnel…";
-"tunnelStatusDeactivating" = "Deactivating";
-"alertInvalidInterfaceTitle" = "Invalid interface";
-"tunnelSectionTitleStatus" = "Status";
-"macDeleteTunnelConfirmationAlertButtonTitleDelete" = "Delete";
"alertTunnelActivationFailureOnDemandAddendum" = " This tunnel has Activate On Demand enabled, so this tunnel might be re-activated automatically by the OS. You may turn off Activate On Demand in this app by editing the tunnel configuration.";
-"alertTunnelActivationFailureTitle" = "Activation failure";
-"tunnelPeerTxBytes" = "Data sent";
-"macLogButtonTitleClose" = "Close";
-"tunnelOnDemandSSIDViewTitle" = "SSIDs";
"settingsExportZipButtonTitle" = "Export zip archive";
-"tunnelSectionTitleOnDemand" = "On-Demand Activation";
-"deleteTunnelsConfirmationAlertButtonTitle" = "Delete";
-"alertInvalidInterfaceMessageNameRequired" = "Interface name is required";
"macViewPrivateData" = "view tunnel private keys";
-"alertInvalidPeerTitle" = "Invalid peer";
-"alertInvalidPeerMessageEndpointInvalid" = "Peer’s endpoint must be of the form ‘host:port’ or ‘[host]:port’";
-"alertTunnelActivationErrorTunnelIsNotInactiveTitle" = "Activation in progress";
-"tunnelPeerAllowedIPs" = "Allowed IPs";
-"alertInvalidPeerMessagePublicKeyDuplicated" = "Two or more peers cannot have the same public key";
-"macToggleStatusButtonDeactivate" = "Deactivate";
-"addTunnelMenuImportFile" = "Create from file or archive";
-"deletePeerConfirmationAlertButtonTitle" = "Delete";
-"addTunnelMenuQRCode" = "Create from QR code";
-"alertInvalidPeerMessagePreSharedKeyInvalid" = "Peer’s preshared key must be a 32-byte key in base64 encoding";
"macAppExitingWithActiveTunnelInfo" = "The tunnel will remain active after exiting. You may disable it by reopening this application or through the Network panel in System Preferences.";
-"macMenuEdit" = "Edit";
-"donateLink" = "♥ Donate to the WireGuard Project";
-"alertScanQRCodeCameraUnsupportedTitle" = "Camera Unsupported";
-"macMenuWindow" = "Window";
-"tunnelStatusRestarting" = "Restarting";
"alertUnableToRemovePreviousLogTitle" = "Log export failed";
"alertTunnelActivationFailureMessage" = "The tunnel could not be activated. Please ensure that you are connected to the Internet.";
-"tunnelInterfaceListenPort" = "Listen port";
-"macToggleStatusButtonWaiting" = "Waiting…";
-"tunnelInterfaceStatus" = "Status";
-"macMenuHideOtherApps" = "Hide Others";
"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
-"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Interface’s private key must be a 32-byte key in base64 encoding";
-"tunnelSectionTitleInterface" = "Interface";
-"alertInvalidInterfaceMessageDNSInvalid" = "Interface’s DNS servers must be a list of comma-separated IP addresses";
-"tunnelStatusInactive" = "Inactive";
-"macAlertPrivateKeyInvalid" = "Private key is invalid.";
-"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Cancel";
"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
-"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peer’s persistent keepalive must be between 0 to 65535, or unspecified";
"alertUnableToWriteLogTitle" = "Log export failed";
-"alertInvalidPeerMessagePublicKeyRequired" = "Peer’s public key is required";
-"macMenuNetworksNone" = "Networks: None";
"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
-"macMenuSelectAll" = "Select All";
-"logViewTitle" = "Log";
-"alertInvalidPeerMessagePublicKeyInvalid" = "Peer’s public key must be a 32-byte key in base64 encoding";
-"tunnelOnDemandCellular" = "Cellular";
-"macConfirmAndQuitAlertQuitWireGuard" = "Quit WireGuard";
"alertSystemErrorOnRemoveTunnelTitle" = "Unable to remove tunnel";
-"macFieldOnDemand" = "On-Demand:";
-"macMenuCloseWindow" = "Close Window";
-"macSheetButtonExportLog" = "Save";
"alertSystemErrorOnModifyTunnelTitle" = "Unable to modify tunnel";
-"alertSystemErrorMessageTunnelConfigurationReadWriteFailed" = "Reading or writing the configuration failed.";
-"macMenuEditTunnel" = "Edit…";
-"settingsSectionTitleTunnelLog" = "Log";
-"macMenuManageTunnels" = "Manage Tunnels";
-"macButtonImportTunnels" = "Import tunnel(s) from file";
"macAppExitingWithActiveTunnelMessage" = "WireGuard is exiting with an active tunnel";
-"tunnelSectionTitlePeer" = "Peer";
-"tunnelsListSelectButtonTitle" = "Select";
"alertSystemErrorMessageTunnelConfigurationStale" = "The configuration is stale.";
-"tunnelPeerPreSharedKey" = "Preshared key";
"alertTunnelDNSFailureMessage" = "One or more endpoint domains could not be resolved.";
-"tunnelOnDemandAddMessageAddNewSSID" = "Add new";
-"alertInvalidInterfaceMessageAddressInvalid" = "Interface addresses must be a list of comma-separated IP addresses, optionally in CIDR notation";
-"tunnelOnDemandSectionTitleAddSSIDs" = "Add SSIDs";
-"alertNoTunnelsInImportedZipArchiveTitle" = "No tunnels in zip archive";
"alertTunnelDNSFailureTitle" = "DNS resolution failure";
-"tunnelOnDemandEthernet" = "Ethernet";
-"macLogButtonTitleSave" = "Save…";
-"macMenuToggleStatus" = "Toggle Status";
-"macMenuMinimize" = "Minimize";
-"deletePeerButtonTitle" = "Delete peer";
-"tunnelPeerRxBytes" = "Data received";
"alertCantOpenInputZipFileTitle" = "Unable to read zip archive";
"alertScanQRCodeUnreadableQRCodeMessage" = "The scanned code could not be read";
-"alertScanQRCodeUnreadableQRCodeTitle" = "Invalid Code";
-"alertSystemErrorOnListingTunnelsTitle" = "Unable to list tunnels";
-"tunnelPeerExcludePrivateIPs" = "Exclude private IPs";
-"settingsVersionKeyWireGuardForIOS" = "WireGuard for iOS";
-"macMenuPaste" = "Paste";
"macAlertMultipleInterfaces" = "Configuration must have only one ‘Interface’ section.";
-"scanQRCodeViewTitle" = "Scan QR code";
-"macAppStoreUpdatingAlertMessage" = "App Store would like to update WireGuard";
"macUnusableTunnelMessage" = "The configuration for this tunnel cannot be found in the keychain.";
-"macToolTipEditTunnel" = "Edit tunnel (⌘E)";
-"tunnelEditPlaceholderTextStronglyRecommended" = "Strongly recommended";
-"macMenuZoom" = "Zoom";
"alertBadArchiveTitle" = "Unable to read zip archive";
"macExportPrivateData" = "export tunnel private keys";
-"alertTunnelAlreadyExistsWithThatNameTitle" = "Name already exists";
-"macToggleStatusButtonDeactivating" = "Deactivating…";
-"iosViewPrivateData" = "Authenticate to view tunnel private keys.";
-"tunnelPeerLastHandshakeTime" = "Latest handshake";
-"macAlertPreSharedKeyInvalid" = "Preshared key is invalid";
-"alertBadConfigImportTitle" = "Unable to import tunnel";
-"macEditSave" = "Save";
-"macConfirmAndQuitAlertCloseWindow" = "Close Tunnels Manager";
-"macMenuFile" = "File";
-"tunnelStatusActivating" = "Activating";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
-"alertTunnelActivationSystemErrorTitle" = "Activation failure";
-"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
-"alertNoTunnelsToExportTitle" = "Nothing to export";
-"scanQRCodeTipText" = "Tip: Generate with `qrencode -t ansiutf8 < tunnel.conf`";
-"alertNoTunnelsToExportMessage" = "There are no tunnels to export";
-"macMenuImportTunnels" = "Import Tunnel(s) from File…";
-"alertScanQRCodeInvalidQRCodeTitle" = "Invalid QR Code";
-"macMenuViewLog" = "View Log";
-"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: ‘PublicKey’, ‘PresharedKey’, ‘AllowedIPs’, ‘Endpoint’ and ‘PersistentKeepalive’";
-"tunnelOnDemandNoSSIDs" = "No SSIDs";
-"addTunnelMenuHeader" = "Add a new WireGuard tunnel";
-"macUnusableTunnelButtonTitleDeleteTunnel" = "Delete tunnel";
-"tunnelStatusReasserting" = "Reactivating";
-"alertInvalidPeerMessageAllowedIPsInvalid" = "Peer’s allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
-"macMenuTunnel" = "Tunnel";
-"macMenuCopy" = "Copy";
+"macTunnelsMenuTitle" = "Tunnels";
"alertTunnelAlreadyExistsWithThatNameMessage" = "A tunnel with that name already exists";
-"macLogColumnTitleLogMessage" = "Log message";
"iosExportPrivateData" = "Authenticate to export tunnel private keys.";
-"macMenuAbout" = "About WireGuard";
-"macSheetButtonImport" = "Import";
"alertScanQRCodeNamePromptTitle" = "Please name the scanned tunnel";
"alertUnableToRemovePreviousLogMessage" = "The pre-existing log could not be cleared";
"alertTunnelActivationBackendFailureMessage" = "Unable to turn on Go backend library.";
"settingsSectionTitleExportConfigurations" = "Export configurations";
-"alertBadArchiveMessage" = "Bad or corrupt zip archive.";
-"settingsVersionKeyWireGuardGoBackend" = "WireGuard Go Backend";
-"macFieldOnDemandSSIDs" = "SSIDs:";
-"deletePeerConfirmationAlertMessage" = "Delete this peer?";
"alertCantOpenOutputZipFileForWritingTitle" = "Unable to create zip archive";
-"tunnelStatusActive" = "Active";
-"tunnelStatusWaiting" = "Waiting";
"alertNoTunnelsInImportedZipArchiveMessage" = "No .conf tunnel files were found inside the zip archive.";
"alertTunnelActivationFileDescriptorFailureMessage" = "Unable to determine TUN device file descriptor.";
-"addTunnelMenuFromScratch" = "Create from scratch";
-"macToggleStatusButtonActivate" = "Activate";
-"macAlertNameIsEmpty" = "Name is required";
-"tunnelsListDeleteButtonTitle" = "Delete";
diff --git a/Sources/WireGuardApp/fr.lproj/Localizable.strings b/Sources/WireGuardApp/fr.lproj/Localizable.strings
index 73d772a..8462df9 100644
--- a/Sources/WireGuardApp/fr.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/fr.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ Faire un don au projet WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/id.lproj/Localizable.strings b/Sources/WireGuardApp/id.lproj/Localizable.strings
index a1f5ab0..d26a66b 100644
--- a/Sources/WireGuardApp/id.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/id.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -233,6 +233,7 @@
"macConfirmAndQuitAlertCloseWindow" = "Close Tunnels Manager";
"macMenuFile" = "File";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
+"macTunnelsMenuTitle" = "Tunnels";
"alertTunnelActivationSystemErrorTitle" = "Activation failure";
"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
"tunnelOnDemandAnySSID" = "Any SSID";
diff --git a/Sources/WireGuardApp/it.lproj/Localizable.strings b/Sources/WireGuardApp/it.lproj/Localizable.strings
index 7ff6be6..70b6a3f 100644
--- a/Sources/WireGuardApp/it.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/it.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ Fai una donazione al progetto WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/ja.lproj/Localizable.strings b/Sources/WireGuardApp/ja.lproj/Localizable.strings
index 04d4463..0273cc4 100644
--- a/Sources/WireGuardApp/ja.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/ja.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ WireGuard プロジェクトに寄付する";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/ko.lproj/Localizable.strings b/Sources/WireGuardApp/ko.lproj/Localizable.strings
index 2fda14d..d6eefb5 100644
--- a/Sources/WireGuardApp/ko.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/ko.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -209,6 +209,7 @@
"macMenuFile" = "File";
"tunnelStatusActivating" = "Activating";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
+"macTunnelsMenuTitle" = "Tunnels";
"alertTunnelActivationSystemErrorTitle" = "Activation failure";
"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
"tunnelOnDemandAnySSID" = "Any SSID";
diff --git a/Sources/WireGuardApp/pa.lproj/Localizable.strings b/Sources/WireGuardApp/pa.lproj/Localizable.strings
index 10a7623..470d056 100644
--- a/Sources/WireGuardApp/pa.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/pa.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ ਵਾਇਰਗਾਰਡ ਪਰੋਜੈਕਟ ਨੂੰ ਦਾਨ ਦਿਓ";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/pl.lproj/Localizable.strings b/Sources/WireGuardApp/pl.lproj/Localizable.strings
index 9127e31..c7d40db 100644
--- a/Sources/WireGuardApp/pl.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/pl.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -24,6 +24,19 @@
"addTunnelMenuImportFile" = "Utwórz z pliku lub archiwum";
"addTunnelMenuQRCode" = "Utwórz za pomocą kodu QR";
"addTunnelMenuFromScratch" = "Utwórz od podstaw";
+
+// Tunnels list alerts
+
+"alertImportedFromMultipleFilesTitle (%d)" = "Utworzono %d tuneli";
+"alertImportedFromMultipleFilesMessage (%1$d of %2$d)" = "Utworzono %1$d z %2$d tuneli z zaimportowanych plików";
+
+"alertImportedFromZipTitle (%d)" = "Utworzono %d tuneli";
+"alertImportedFromZipMessage (%1$d of %2$d)" = "Utworzono %1$d z %2$d tuneli z archiwum zip";
+
+"alertBadConfigImportTitle" = "Nie można zaimportować tunelu";
+"alertBadConfigImportMessage (%@)" = "Plik „%@” nie zawiera prawidłowej konfiguracji WireGuard";
+
+"deleteTunnelsConfirmationAlertButtonTitle" = "Usuń";
"deleteTunnelConfirmationAlertButtonMessage (%d)" = "Usunąć %d tunel?";
"deleteTunnelsConfirmationAlertButtonMessage (%d)" = "Usunąć %d tunele(i)?";
@@ -34,34 +47,96 @@
"tunnelSectionTitleStatus" = "Status";
+"tunnelStatusInactive" = "Nieaktywny";
+"tunnelStatusActivating" = "Aktywowanie";
+"tunnelStatusActive" = "Aktywny";
+"tunnelStatusDeactivating" = "Dezaktywowanie";
+"tunnelStatusReasserting" = "Reaktywowanie";
+"tunnelStatusRestarting" = "Restartowanie";
+"tunnelStatusWaiting" = "Trwa oczekiwanie";
+
+"macToggleStatusButtonActivate" = "Aktywuj";
+"macToggleStatusButtonActivating" = "Aktywowanie…";
+"macToggleStatusButtonDeactivate" = "Dezaktywuj";
+"macToggleStatusButtonDeactivating" = "Dezaktywowanie…";
+"macToggleStatusButtonReasserting" = "Reaktywowanie…";
+"macToggleStatusButtonRestarting" = "Restartowanie…";
+"macToggleStatusButtonWaiting" = "Oczekiwanie…";
+
+"tunnelSectionTitleInterface" = "Interfejs";
+
"tunnelInterfaceName" = "Nazwa";
"tunnelInterfacePrivateKey" = "Klucz prywatny";
"tunnelInterfacePublicKey" = "Klucz publiczny";
+"tunnelInterfaceGenerateKeypair" = "Generowanie pary kluczy";
"tunnelInterfaceAddresses" = "Adresy";
"tunnelInterfaceListenPort" = "Port nasłuchu";
"tunnelInterfaceMTU" = "MTU";
"tunnelInterfaceDNS" = "Serwery DNS";
"tunnelInterfaceStatus" = "Status";
+"tunnelSectionTitlePeer" = "Peer";
+
"tunnelPeerPublicKey" = "Klucz publiczny";
+"tunnelPeerPreSharedKey" = "PSK";
+"tunnelPeerEndpoint" = "Adres";
+"tunnelPeerPersistentKeepalive" = "Utrzymanie połączenia";
"tunnelPeerAllowedIPs" = "Dozwolone adresy IP";
+"tunnelPeerRxBytes" = "Otrzymane dane";
+"tunnelPeerTxBytes" = "Dane wysłane";
+"tunnelPeerLastHandshakeTime" = "Ostatni uścisk dłoni (handshake)";
+"tunnelPeerExcludePrivateIPs" = "Wyklucz prywatne adresy IP";
+
+"tunnelSectionTitleOnDemand" = "Aktywacja na żądanie";
+
+"tunnelOnDemandCellular" = "Dane komórkowe";
"tunnelOnDemandEthernet" = "Ethernet";
"tunnelOnDemandWiFi" = "Wi-Fi";
+"tunnelOnDemandSSIDsKey" = "Identyfikatory SSID";
+
+"tunnelOnDemandAnySSID" = "Dowolny SSID";
+"tunnelOnDemandOnlyTheseSSIDs" = "Tylko te SSID";
+"tunnelOnDemandExceptTheseSSIDs" = "Z wyjątkiem tych SSID";
+"tunnelOnDemandOnlySSID (%d)" = "Tylko %d SSID";
+"tunnelOnDemandOnlySSIDs (%d)" = "Tylko te %d SSID";
+"tunnelOnDemandExceptSSID (%d)" = "Z wyjątkiem %d SSID";
+"tunnelOnDemandExceptSSIDs (%d)" = "Z wyjątkiem tych %d SSID";
"tunnelOnDemandSSIDOptionDescriptionMac (%1$@: %2$@)" = "%1$@: %2$@";
+"tunnelOnDemandSSIDViewTitle" = "Identyfikatory SSID";
+"tunnelOnDemandSectionTitleSelectedSSIDs" = "Identyfikatory SSID";
+"tunnelOnDemandNoSSIDs" = "Brak SSID";
+"tunnelOnDemandSectionTitleAddSSIDs" = "Dodaj SSID";
+"tunnelOnDemandAddMessageAddConnectedSSID (%@)" = "Dodaj połączony: %@";
+"tunnelOnDemandAddMessageAddNewSSID" = "Dodaj nowy";
+
"tunnelOnDemandKey" = "Na żądanie";
+"tunnelOnDemandOptionOff" = "Wył.";
"tunnelOnDemandOptionWiFiOnly" = "Tylko Wi-Fi";
"tunnelOnDemandOptionWiFiOrCellular" = "Wi-Fi i dane sieci komórkowej";
"tunnelOnDemandOptionCellularOnly" = "Tylko dane sieci komórkowej";
"tunnelOnDemandOptionWiFiOrEthernet" = "Wi-Fi lub sieć ethernet";
"tunnelOnDemandOptionEthernetOnly" = "Tylko sieć ethernet";
+
+"addPeerButtonTitle" = "Dodaj Peer'a";
+
+"deletePeerButtonTitle" = "Usuń peer'a";
"deletePeerConfirmationAlertButtonTitle" = "Usuń";
+"deletePeerConfirmationAlertMessage" = "Usunąć tego peer'a?";
"deleteTunnelButtonTitle" = "Usuń tunel";
"deleteTunnelConfirmationAlertButtonTitle" = "Usuń";
"deleteTunnelConfirmationAlertMessage" = "Usunąć ten tunel?";
+"tunnelEditPlaceholderTextRequired" = "Wymagane";
+"tunnelEditPlaceholderTextOptional" = "Opcjonalne";
+"tunnelEditPlaceholderTextAutomatic" = "Automatycznie wybrany";
+"tunnelEditPlaceholderTextStronglyRecommended" = "Zalecane";
+"tunnelEditPlaceholderTextOff" = "Wył.";
+
"tunnelPeerPersistentKeepaliveValue (%@)" = "co %@ sekund";
+"tunnelHandshakeTimestampNow" = "Teraz";
+"tunnelHandshakeTimestampSystemClockBackward" = "(Zegar systemowy został cofnięty)";
"tunnelHandshakeTimestampAgo (%@)" = "%@ temu";
"tunnelHandshakeTimestampYear (%d)" = "%d rok";
"tunnelHandshakeTimestampYears (%d)" = "%d lat/lata";
@@ -79,14 +154,49 @@
"tunnelPeerPresharedKeyEnabled" = "włączony";
+// Error alerts while creating / editing a tunnel configuration
+/* Alert title for error in the interface data */
+
+"alertInvalidInterfaceTitle" = "Niewłaściwy interfejs";
+
+/* Any one of the following alert messages can go with the above title */
+"alertInvalidInterfaceMessageNameRequired" = "Nazwa interfejsu jest wymagana";
+"alertInvalidInterfaceMessagePrivateKeyRequired" = "Klucz prywatny interfejsu jest wymagany";
+"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Klucz prywatny interfejsu musi być 32-bajtowym kluczem zakodowanym w base64";
+"alertInvalidInterfaceMessageAddressInvalid" = "Adresy interfejsu muszą być listą adresów IP rozdzielone przecinkami, opcjonalnie w notacji CIDR";
+"alertInvalidInterfaceMessageListenPortInvalid" = "Port nasłuchiwania interfejsu musi wynosić pomiędzy 0 a 65535 lub nieokreślony";
+"alertInvalidInterfaceMessageMTUInvalid" = "Wartość MTU musi wynosić pomiędzy 576 a 65535 lub nieokreślona";
+"alertInvalidInterfaceMessageDNSInvalid" = "Serwery DNS interfejsu muszą być listą adresów IP rozdzielonych przecinkami";
+
+/* Alert title for error in the peer data */
+"alertInvalidPeerTitle" = "Nieprawidłowy peer";
+
+/* Any one of the following alert messages can go with the above title */
+"alertInvalidPeerMessagePublicKeyRequired" = "Klucz publiczny peer'a jest wymagany";
+"alertInvalidPeerMessagePublicKeyInvalid" = "Klucz prywatny peer'a musi być 32-bajtowym kluczem zakodowanym w base64";
+"alertInvalidPeerMessagePreSharedKeyInvalid" = "Klucz publiczny peer'a musi być 32-bajtowym kluczem zakodowanym w base64";
+"alertInvalidPeerMessageAllowedIPsInvalid" = "Dozwolone adresy peer'a muszą być listą adresów IP rozdzielone przecinkami, opcjonalnie w notacji CIDR";
+"alertInvalidPeerMessageEndpointInvalid" = "Adres peer'a musi być w postaci „adres:port” or „[host]:port”";
+"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Interwał podtrzymywania połączenia musi wynosić pomiędzy 0 a 65535 lub nieokreślony";
+"alertInvalidPeerMessagePublicKeyDuplicated" = "Dwa lub więcej peer'ów nie może współdzielić tego samego klucza publicznego";
+
// Scanning QR code UI
"scanQRCodeViewTitle" = "Skanuj kod QR";
"scanQRCodeTipText" = "Wskazówka: wygeneruj za pomocą `qrencode -t ansiutf8 < tunnel.conf`";
+// Scanning QR code alerts
+
+"alertScanQRCodeCameraUnsupportedTitle" = "Kamera nie jest obsługiwana";
+"alertScanQRCodeCameraUnsupportedMessage" = "To urządzenie nie jest w stanie zeskanować kodów QR";
+
"alertScanQRCodeInvalidQRCodeTitle" = "Nieprawidłowy kod QR";
+"alertScanQRCodeInvalidQRCodeMessage" = "Zeskanowany kod QR nie jest poprawną konfiguracją WireGuard";
"alertScanQRCodeUnreadableQRCodeTitle" = "Nieprawidłowy kod";
+"alertScanQRCodeUnreadableQRCodeMessage" = "Zeskanowany kod nie mógł zostać odczytany";
+
+"alertScanQRCodeNamePromptTitle" = "Nazwij zeskanowany tunel";
// Settings UI
@@ -94,6 +204,10 @@
"settingsSectionTitleAbout" = "O programie";
"settingsVersionKeyWireGuardForIOS" = "WireGuard dla iOS";
+"settingsVersionKeyWireGuardGoBackend" = "WireGuard Go Backend";
+
+"settingsSectionTitleExportConfigurations" = "Eksportuj konfiguracje";
+"settingsExportZipButtonTitle" = "Eksportuj do archiwum zip";
"settingsSectionTitleTunnelLog" = "Log";
"settingsViewLogButtonTitle" = "Wyświetl log";
@@ -102,6 +216,19 @@
"logViewTitle" = "Log";
+// Log alerts
+
+"alertUnableToRemovePreviousLogTitle" = "Export logów nie powiódł się";
+"alertUnableToRemovePreviousLogMessage" = "Nie można usunąć już istniejących logów";
+
+"alertUnableToWriteLogTitle" = "Eksport logów nie powiódł się";
+"alertUnableToWriteLogMessage" = "Nie można zapisać logów do pliku";
+
+// Zip import / export error alerts
+
+"alertCantOpenInputZipFileTitle" = "Nie można odczytać archiwum zip";
+"alertCantOpenInputZipFileMessage" = "Nie można odczytać archiwum zip.";
+
"alertCantOpenOutputZipFileForWritingTitle" = "Nie można utworzyć archiwum ZIP";
"alertCantOpenOutputZipFileForWritingMessage" = "Nie udało się otworzyć pliku ZIP do zapisu.";
@@ -112,14 +239,65 @@
"alertNoTunnelsToExportMessage" = "Nie ma żadnych tuneli do wyeksportowania";
"alertNoTunnelsInImportedZipArchiveTitle" = "Brak tuneli w archiwum ZIP";
+"alertNoTunnelsInImportedZipArchiveMessage" = "Nie znaleziono plików konfiguracyjnych tunelu .conf w archiwum zip.";
+
+// Conf import error alerts
+
+"alertCantOpenInputConfFileTitle" = "Nie można zaimportować z pliku";
+"alertCantOpenInputConfFileMessage (%@)" = "Nie można odczytać pliku „%@”.";
+
+// Tunnel management error alerts
+
+"alertTunnelActivationFailureTitle" = "Błąd aktywacji tunelu";
+"alertTunnelActivationFailureMessage" = "Tunel nie mógł zostać aktywowany. Upewnij się, że jesteś podłączony do Internetu.";
+"alertTunnelActivationSavedConfigFailureMessage" = "Nie można odczytać informacji o tunelu z zapisanej konfiguracji.";
+"alertTunnelActivationBackendFailureMessage" = "Nie udało się włącz tunelu bazując na bibliotece Go.";
+"alertTunnelActivationFileDescriptorFailureMessage" = "Nie można określić opisu urządzenia TUN.";
+"alertTunnelActivationSetNetworkSettingsMessage" = "Nie można zastosować ustawień sieci do tunelu.";
+
+"alertTunnelActivationFailureOnDemandAddendum" = "Ten tunel ma włączoną aktywację na żądanie, więc ten tunel może być ponownie aktywowany automatycznie przez system operacyjny. Możesz wyłączyć aktywację na żądanie poprzez edycję konfiguracji tunelu.";
+
+"alertTunnelDNSFailureTitle" = "Nieudane rozpoznanie DNS";
+"alertTunnelDNSFailureMessage" = "Jedna lub więcej domen nie może zostać odnalezionych.";
+
+"alertTunnelNameEmptyTitle" = "Nie podano nazwy";
+"alertTunnelNameEmptyMessage" = "Nie można utworzyć tunelu z pustą nazwą";
"alertTunnelAlreadyExistsWithThatNameTitle" = "Nazwa już istnieje";
"alertTunnelAlreadyExistsWithThatNameMessage" = "Tunel o tej nazwie już istnieje";
+
+"alertTunnelActivationErrorTunnelIsNotInactiveTitle" = "Aktywacja w toku";
+"alertTunnelActivationErrorTunnelIsNotInactiveMessage" = "Tunel jest już aktywny lub jest już w trakcie aktywowania";
+
+// Tunnel management error alerts on system error
+/* The alert message that goes with the following titles would be
+ one of the alertSystemErrorMessage* listed further down */
+
+"alertSystemErrorOnListingTunnelsTitle" = "Nie można wyświetlić tuneli";
"alertSystemErrorOnAddTunnelTitle" = "Nie można utworzyć tunelu";
"alertSystemErrorOnModifyTunnelTitle" = "Nie można zmodyfikować tunelu";
"alertSystemErrorOnRemoveTunnelTitle" = "Nie można usunąć tunelu";
+/* The alert message for this alert shall include
+ one of the alertSystemErrorMessage* listed further down */
+"alertTunnelActivationSystemErrorTitle" = "Błąd aktywacji tunelu";
+"alertTunnelActivationSystemErrorMessage (%@)" = "Błąd aktywacji tunelu. %@";
+
+/* alertSystemErrorMessage* messages */
+"alertSystemErrorMessageTunnelConfigurationInvalid" = "Ta konfiguracja jest nieprawidłowa.";
+"alertSystemErrorMessageTunnelConfigurationDisabled" = "Konfiguracja jest wyłączona.";
+"alertSystemErrorMessageTunnelConnectionFailed" = "Połączenie nie powiodło się.";
+"alertSystemErrorMessageTunnelConfigurationStale" = "Konfiguracja jest przestarzała.";
+"alertSystemErrorMessageTunnelConfigurationReadWriteFailed" = "Czytanie lub zapisywanie konfiguracji nie powiodło się.";
+"alertSystemErrorMessageTunnelConfigurationUnknown" = "Nieznany błąd systemowy.";
+
+// Mac status bar menu / pulldown menu / main menu
+
+"macMenuNetworks (%@)" = "Sieci: %@";
+"macMenuNetworksNone" = "Sieci: brak";
+
"macMenuTitle" = "WireGuard";
+"macMenuManageTunnels" = "Zarządzaj tunelami";
"macMenuImportTunnels" = "Importuj tunel(e) z pliku…";
"macMenuAddEmptyTunnel" = "Dodaj pusty tunel…";
"macMenuViewLog" = "Wyświetl log";
@@ -128,6 +306,8 @@
"macMenuQuit" = "Wyjdź z programu WireGuard";
"macMenuHideApp" = "Ukryj program WireGuard";
+"macMenuHideOtherApps" = "Ukryj pozostałe";
+"macMenuShowAllApps" = "Pokaż wszystkie";
"macMenuFile" = "Plik";
"macMenuCloseWindow" = "Zamknij okno";
@@ -139,9 +319,14 @@
"macMenuSelectAll" = "Wybierz wszystko";
"macMenuTunnel" = "Tunel";
+"macMenuToggleStatus" = "Przełącz status";
"macMenuEditTunnel" = "Edytuj…";
"macMenuDeleteSelected" = "Usuń wybrane";
+"macMenuWindow" = "Okno";
+"macMenuMinimize" = "Minimalizuj";
+"macMenuZoom" = "Powiększenie";
+
// Mac manage tunnels window
"macWindowTitleManageTunnels" = "Zarządzaj tunelami WireGuard";
@@ -154,6 +339,7 @@
"macDeleteTunnelConfirmationAlertButtonTitleDeleting" = "Usuwanie…";
"macButtonImportTunnels" = "Importuj tunel(e) z pliku";
+"macSheetButtonImport" = "Importuj";
"macNameFieldExportLog" = "Zapisz log do:";
"macSheetButtonExportLog" = "Zapisz";
@@ -161,163 +347,100 @@
"macNameFieldExportZip" = "Wyeksportuj tunele do:";
"macSheetButtonExportZip" = "Zapisz";
+"macButtonDeleteTunnels (%d)" = "Usuń %d tunele(i)";
+
"macButtonEdit" = "Edytuj";
// Mac detail/edit view fields
"macFieldKey (%@)" = "%@:";
+"macFieldOnDemand" = "Na żądanie:";
+"macFieldOnDemandSSIDs" = "Identyfikatory SSID:";
+
+// Mac status display
+
+"macStatus (%@)" = "Status: %@";
+
+// Mac editing config
+
+"macEditDiscard" = "Odrzuć";
"macEditSave" = "Zapisz";
"macAlertNameIsEmpty" = "Nazwa jest wymagana";
+"macAlertDuplicateName (%@)" = "Inny tunel o nazwie „%@” już istnieje.";
+
+"macAlertInvalidLine (%@)" = "Nieprawidłowy wiersz: „%@”.";
+
+"macAlertNoInterface" = "Konfiguracja musi mieć sekcję „Interface”.";
+"macAlertMultipleInterfaces" = "Konfiguracja musi posiadać tylko jedną sekcję „Interface”.";
"macAlertPrivateKeyInvalid" = "Klucz prywatny jest nieprawidłowy.";
+"macAlertListenPortInvalid (%@)" = "Port nasłuchu „%@” jest nieprawidłowy.";
"macAlertAddressInvalid (%@)" = "Adres \"%@\" jest nieprawidłowy.";
+"macAlertDNSInvalid (%@)" = "DNS „%@” jest nieprawidłowy.";
"macAlertMTUInvalid (%@)" = "Wartość MTU ‘%@’ jest nieprawidłowa.";
+"macAlertUnrecognizedInterfaceKey (%@)" = "Interfejs zawiera nierozpoznawalny klucz „%@”";
+"macAlertInfoUnrecognizedInterfaceKey" = "Prawidłowe klucze to: „PrivateKey”, „ListenPort”, „Adres”, „DNS” i „MTU”.";
+
"macAlertPublicKeyInvalid" = "Klucz publiczny jest nieprawidłowy";
+"macAlertPreSharedKeyInvalid" = "Klucz wstępnie współdzielony jest niepoprawny";
+"macAlertAllowedIPInvalid (%@)" = "Dozwolony adres IP „%@” jest nieprawidłowy";
+"macAlertEndpointInvalid (%@)" = "Adres końcowy „%@” jest nieprawidłowy";
+"macAlertPersistentKeepliveInvalid (%@)" = "Obecna wartość keepalive „%@” jest nieprawidłowa";
+
+"macAlertUnrecognizedPeerKey (%@)" = "Peer zawiera nierozpoznawalny klucz „%@”";
+"macAlertInfoUnrecognizedPeerKey" = "Prawidłowe klucze to: „PublicKey”, „PresharedKey”, „AllowedIPs”, „Endpoint” i „PersistentKeepalive”";
+
+"macAlertMultipleEntriesForKey (%@)" = "Dla klucza „%@” powinien być tylko jeden wpis w sekcji";
// Mac about dialog
"macAppVersion (%@)" = "Wersja aplikacji: %@";
"macGoBackendVersion (%@)" = "Wersja backend'u Go: %@";
+
+// Privacy
+
+"macExportPrivateData" = "eksportuj klucze prywatne tunelu";
+"macViewPrivateData" = "wyświetl klucze prywatne tunelu";
+"iosExportPrivateData" = "Uwierzytelnij, aby wyeksportować klucze prywatne tuneli.";
+"iosViewPrivateData" = "Uwierzytelnij, aby zobaczyć klucze prywatne.";
+
+// Mac alert
+
+"macConfirmAndQuitAlertMessage" = "Czy chcesz zamknąć menedżera tuneli czy wyłączyć całkowicie WireGuard?";
+"macConfirmAndQuitAlertInfo" = "Jeśli zamkniesz menedżera tuneli, WireGuard będzie nadal dostępny z ikony w pasku menu.";
+"macConfirmAndQuitInfoWithActiveTunnel (%@)" = "Jeśli zamkniesz menedżera tuneli, WireGuard będzie nadal dostępny z ikony w pasku menu.\n\nZauważ, że jeśli opuścisz WireGuard całkowicie aktywny tunel („%@”) pozostanie aktywny, dopóki nie wyłączysz go z tej aplikacji lub przez panel sieci w ustawieniach systemowych.";
"macConfirmAndQuitAlertQuitWireGuard" = "Wyjdź z programu WireGuard";
+"macConfirmAndQuitAlertCloseWindow" = "Zamknij menedżera tuneli";
+
+"macAppExitingWithActiveTunnelMessage" = "WireGuard jest wyłączany wraz z aktywnym tunelem";
+"macAppExitingWithActiveTunnelInfo" = "Tunel pozostanie aktywny po wyjściu. Możesz go wyłączyć, ponownie otwierając tę aplikację lub przez panel sieci w ustawieniach systemowych.";
// Mac tooltip
"macToolTipEditTunnel" = "Edytuj tunel (⌘E)";
"macToolTipToggleStatus" = "Przełącz stan (⌘T)";
+
+// Mac log view
+
+"macLogColumnTitleTime" = "Czas";
+"macLogColumnTitleLogMessage" = "Dziennik wiadomości";
"macLogButtonTitleClose" = "Zamknij";
"macLogButtonTitleSave" = "Zapisz…";
+
+// Mac unusable tunnel view
+
+"macUnusableTunnelMessage" = "Konfiguracja dla tego tunelu nie może zostać znaleziona w pęku kluczy.";
+"macUnusableTunnelInfo" = "W przypadku, gdy ten tunel został utworzony przez innego użytkownika, tylko ten użytkownik może przeglądać, edytować lub aktywować ten tunel.";
"macUnusableTunnelButtonTitleDeleteTunnel" = "Usuń tunel";
-"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
-"tunnelPeerEndpoint" = "Endpoint";
-"alertInvalidInterfaceMessageListenPortInvalid" = "Interface’s listen port must be between 0 and 65535, or unspecified";
-"addPeerButtonTitle" = "Add peer";
-"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
-"macAlertNoInterface" = "Configuration must have an ‘Interface’ section.";
-"alertSystemErrorMessageTunnelConfigurationUnknown" = "Unknown system error.";
-"macEditDiscard" = "Discard";
-"alertScanQRCodeCameraUnsupportedMessage" = "This device is not able to scan QR codes";
-"macConfirmAndQuitAlertInfo" = "If you close the tunnels manager, WireGuard will continue to be available from the menu bar icon.";
-"macUnusableTunnelInfo" = "In case this tunnel was created by another user, only that user can view, edit, or activate this tunnel.";
-"alertTunnelActivationErrorTunnelIsNotInactiveMessage" = "The tunnel is already active or in the process of being activated";
-"macToggleStatusButtonReasserting" = "Reactivating…";
-"alertTunnelActivationSetNetworkSettingsMessage" = "Unable to apply network settings to tunnel object.";
-"macMenuShowAllApps" = "Show All";
-"alertCantOpenInputConfFileTitle" = "Unable to import from file";
-"alertScanQRCodeInvalidQRCodeMessage" = "The scanned QR code is not a valid WireGuard configuration";
-"tunnelPeerPersistentKeepalive" = "Persistent keepalive";
-"alertSystemErrorMessageTunnelConnectionFailed" = "The connection failed.";
-"macConfirmAndQuitAlertMessage" = "Do you want to close the tunnels manager or quit WireGuard entirely?";
-"alertTunnelActivationSavedConfigFailureMessage" = "Unable to retrieve tunnel information from the saved configuration.";
-"tunnelOnDemandOptionOff" = "Off";
-"tunnelOnDemandSectionTitleSelectedSSIDs" = "SSIDs";
-"macAlertInfoUnrecognizedInterfaceKey" = "Valid keys are: ‘PrivateKey’, ‘ListenPort’, ‘Address’, ‘DNS’ and ‘MTU’.";
-"macLogColumnTitleTime" = "Time";
-"alertTunnelNameEmptyMessage" = "Cannot create tunnel with an empty name";
-"alertInvalidInterfaceMessageMTUInvalid" = "Interface’s MTU must be between 576 and 65535, or unspecified";
-"alertTunnelNameEmptyTitle" = "No name provided";
-"tunnelOnDemandOnlyTheseSSIDs" = "Only these SSIDs";
-"macToggleStatusButtonRestarting" = "Restarting…";
-"tunnelOnDemandExceptTheseSSIDs" = "Except these SSIDs";
-"alertUnableToWriteLogMessage" = "Unable to write logs to file";
-"macToggleStatusButtonActivating" = "Activating…";
-"tunnelStatusDeactivating" = "Deactivating";
-"alertInvalidInterfaceTitle" = "Invalid interface";
-"alertTunnelActivationFailureOnDemandAddendum" = " This tunnel has Activate On Demand enabled, so this tunnel might be re-activated automatically by the OS. You may turn off Activate On Demand in this app by editing the tunnel configuration.";
-"alertTunnelActivationFailureTitle" = "Activation failure";
-"tunnelPeerTxBytes" = "Data sent";
-"tunnelOnDemandSSIDViewTitle" = "SSIDs";
-"tunnelEditPlaceholderTextOptional" = "Optional";
-"settingsExportZipButtonTitle" = "Export zip archive";
-"tunnelSectionTitleOnDemand" = "On-Demand Activation";
-"tunnelInterfaceGenerateKeypair" = "Generate keypair";
-"deleteTunnelsConfirmationAlertButtonTitle" = "Delete";
-"alertInvalidInterfaceMessageNameRequired" = "Interface name is required";
-"tunnelEditPlaceholderTextAutomatic" = "Automatic";
-"macViewPrivateData" = "view tunnel private keys";
-"alertInvalidPeerTitle" = "Invalid peer";
-"alertInvalidPeerMessageEndpointInvalid" = "Peer’s endpoint must be of the form ‘host:port’ or ‘[host]:port’";
-"alertTunnelActivationErrorTunnelIsNotInactiveTitle" = "Activation in progress";
-"alertInvalidPeerMessagePublicKeyDuplicated" = "Two or more peers cannot have the same public key";
-"macToggleStatusButtonDeactivate" = "Deactivate";
-"alertInvalidPeerMessagePreSharedKeyInvalid" = "Peer’s preshared key must be a 32-byte key in base64 encoding";
-"macAppExitingWithActiveTunnelInfo" = "The tunnel will remain active after exiting. You may disable it by reopening this application or through the Network panel in System Preferences.";
-"donateLink" = "♥ Donate to the WireGuard Project";
-"alertScanQRCodeCameraUnsupportedTitle" = "Camera Unsupported";
-"macMenuWindow" = "Window";
-"tunnelStatusRestarting" = "Restarting";
-"alertUnableToRemovePreviousLogTitle" = "Log export failed";
-"tunnelHandshakeTimestampNow" = "Now";
-"alertTunnelActivationFailureMessage" = "The tunnel could not be activated. Please ensure that you are connected to the Internet.";
-"macToggleStatusButtonWaiting" = "Waiting…";
-"macMenuHideOtherApps" = "Hide Others";
-"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
-"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Interface’s private key must be a 32-byte key in base64 encoding";
-"tunnelSectionTitleInterface" = "Interface";
-"alertInvalidInterfaceMessageDNSInvalid" = "Interface’s DNS servers must be a list of comma-separated IP addresses";
-"tunnelStatusInactive" = "Inactive";
-"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
-"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peer’s persistent keepalive must be between 0 to 65535, or unspecified";
-"alertUnableToWriteLogTitle" = "Log export failed";
-"alertInvalidPeerMessagePublicKeyRequired" = "Peer’s public key is required";
-"macMenuNetworksNone" = "Networks: None";
-"tunnelOnDemandSSIDsKey" = "SSIDs";
-"alertInvalidPeerMessagePublicKeyInvalid" = "Peer’s public key must be a 32-byte key in base64 encoding";
-"tunnelOnDemandCellular" = "Cellular";
-"macFieldOnDemand" = "On-Demand:";
-"alertSystemErrorMessageTunnelConfigurationReadWriteFailed" = "Reading or writing the configuration failed.";
-"macMenuManageTunnels" = "Manage Tunnels";
-"macAppExitingWithActiveTunnelMessage" = "WireGuard is exiting with an active tunnel";
-"tunnelSectionTitlePeer" = "Peer";
-"alertSystemErrorMessageTunnelConfigurationStale" = "The configuration is stale.";
-"tunnelPeerPreSharedKey" = "Preshared key";
-"alertTunnelDNSFailureMessage" = "One or more endpoint domains could not be resolved.";
-"tunnelOnDemandAddMessageAddNewSSID" = "Add new";
-"alertInvalidInterfaceMessageAddressInvalid" = "Interface addresses must be a list of comma-separated IP addresses, optionally in CIDR notation";
-"tunnelOnDemandSectionTitleAddSSIDs" = "Add SSIDs";
-"alertTunnelDNSFailureTitle" = "DNS resolution failure";
-"macMenuToggleStatus" = "Toggle Status";
-"macMenuMinimize" = "Minimize";
-"deletePeerButtonTitle" = "Delete peer";
-"tunnelPeerRxBytes" = "Data received";
-"alertCantOpenInputZipFileTitle" = "Unable to read zip archive";
-"alertScanQRCodeUnreadableQRCodeMessage" = "The scanned code could not be read";
-"alertSystemErrorOnListingTunnelsTitle" = "Unable to list tunnels";
-"tunnelPeerExcludePrivateIPs" = "Exclude private IPs";
-"macAlertMultipleInterfaces" = "Configuration must have only one ‘Interface’ section.";
-"macAppStoreUpdatingAlertMessage" = "App Store would like to update WireGuard";
-"macUnusableTunnelMessage" = "The configuration for this tunnel cannot be found in the keychain.";
-"tunnelEditPlaceholderTextStronglyRecommended" = "Strongly recommended";
-"macMenuZoom" = "Zoom";
-"macExportPrivateData" = "export tunnel private keys";
-"macToggleStatusButtonDeactivating" = "Deactivating…";
-"iosViewPrivateData" = "Authenticate to view tunnel private keys.";
-"tunnelPeerLastHandshakeTime" = "Latest handshake";
-"macAlertPreSharedKeyInvalid" = "Preshared key is invalid";
-"alertBadConfigImportTitle" = "Unable to import tunnel";
-"macConfirmAndQuitAlertCloseWindow" = "Close Tunnels Manager";
-"tunnelStatusActivating" = "Activating";
-"alertTunnelActivationSystemErrorTitle" = "Activation failure";
-"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
-"tunnelOnDemandAnySSID" = "Any SSID";
-"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: ‘PublicKey’, ‘PresharedKey’, ‘AllowedIPs’, ‘Endpoint’ and ‘PersistentKeepalive’";
-"tunnelOnDemandNoSSIDs" = "No SSIDs";
-"tunnelEditPlaceholderTextOff" = "Off";
-"tunnelEditPlaceholderTextRequired" = "Required";
-"tunnelStatusReasserting" = "Reactivating";
-"alertInvalidPeerMessageAllowedIPsInvalid" = "Peer’s allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
-"macLogColumnTitleLogMessage" = "Log message";
-"iosExportPrivateData" = "Authenticate to export tunnel private keys.";
-"macSheetButtonImport" = "Import";
-"alertScanQRCodeNamePromptTitle" = "Please name the scanned tunnel";
-"alertUnableToRemovePreviousLogMessage" = "The pre-existing log could not be cleared";
-"alertTunnelActivationBackendFailureMessage" = "Unable to turn on Go backend library.";
-"settingsSectionTitleExportConfigurations" = "Export configurations";
-"settingsVersionKeyWireGuardGoBackend" = "WireGuard Go Backend";
-"macFieldOnDemandSSIDs" = "SSIDs:";
-"deletePeerConfirmationAlertMessage" = "Delete this peer?";
-"tunnelStatusActive" = "Active";
-"tunnelStatusWaiting" = "Waiting";
-"alertNoTunnelsInImportedZipArchiveMessage" = "No .conf tunnel files were found inside the zip archive.";
-"alertTunnelActivationFileDescriptorFailureMessage" = "Unable to determine TUN device file descriptor.";
-"macToggleStatusButtonActivate" = "Activate";
+
+// Mac App Store updating alert
+
+"macAppStoreUpdatingAlertMessage" = "App Store chce zaktualizować WireGuard";
+"macAppStoreUpdatingAlertInfoWithOnDemand (%@)" = "Proszę najpierw wyłączyć aktywację na żądanie tunelu „%@”, dezaktywować go, a dopiero następnie kontynuować aktualizację w App Store.";
+"macAppStoreUpdatingAlertInfoWithoutOnDemand (%@)" = "Proszę dezaktywować tunel „%@”, a następnie kontynuować aktualizację w App Store.";
+
+// Donation
+
+"donateLink" = "♥ Dotacja dla projektu WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/ro.lproj/Localizable.strings b/Sources/WireGuardApp/ro.lproj/Localizable.strings
index 7b976bd..204f828 100644
--- a/Sources/WireGuardApp/ro.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/ro.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ Donează pentru proiectul WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/ru.lproj/Localizable.strings b/Sources/WireGuardApp/ru.lproj/Localizable.strings
index 7c762d1..70c11a0 100644
--- a/Sources/WireGuardApp/ru.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/ru.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ Пожертвовать проекту WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/sl.lproj/Localizable.strings b/Sources/WireGuardApp/sl.lproj/Localizable.strings
index 2a8066b..1728f05 100644
--- a/Sources/WireGuardApp/sl.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/sl.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ Donirajte projektu WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/tr.lproj/Localizable.strings b/Sources/WireGuardApp/tr.lproj/Localizable.strings
index a4ff936..36d7cd9 100644
--- a/Sources/WireGuardApp/tr.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/tr.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ WireGuard Projesine Bağış Yapın";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings b/Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings
index ea7ce04..f176bae 100644
--- a/Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -443,3 +443,4 @@
// Donation
"donateLink" = "♥ 为 WireGuard 捐赠";
+"macTunnelsMenuTitle" = "Tunnels";
diff --git a/Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings b/Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings
index f8de223..b498ba2 100644
--- a/Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings
+++ b/Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.
+// Copyright © 2018-2020 WireGuard LLC. All Rights Reserved.
// Generic alert action names
@@ -42,7 +42,7 @@
"newTunnelViewTitle" = "新增設定";
"editTunnelViewTitle" = "修改設定";
-"tunnelSectionTitleStatus" = "ㄓ望太";
+"tunnelSectionTitleStatus" = "狀態";
"tunnelStatusInactive" = "未啟用";
"tunnelStatusActivating" = "啟用中";
@@ -69,6 +69,7 @@
"tunnelInterfaceListenPort" = "監聽埠";
"tunnelInterfaceMTU" = "MTU";
"tunnelInterfaceDNS" = "DNS 伺服器";
+"tunnelInterfaceStatus" = "狀態";
"tunnelEditPlaceholderTextAutomatic" = "自動";
"tunnelHandshakeTimestampNow" = "現在";
@@ -85,6 +86,7 @@
"macMenuCopy" = "複製";
"macMenuPaste" = "貼上";
"macMenuSelectAll" = "全選";
+"macMenuToggleStatus" = "切換狀態";
"macMenuMinimize" = "最小化";
"macMenuDeleteSelected" = "Delete Selected";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
@@ -162,7 +164,6 @@
"alertUnableToRemovePreviousLogTitle" = "Log export failed";
"alertTunnelActivationFailureMessage" = "The tunnel could not be activated. Please ensure that you are connected to the Internet.";
"tunnelOnDemandOptionEthernetOnly" = "Ethernet only";
-"tunnelInterfaceStatus" = "Status";
"macMenuHideOtherApps" = "Hide Others";
"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Interface’s private key must be a 32-byte key in base64 encoding";
@@ -206,7 +207,6 @@
"alertTunnelDNSFailureTitle" = "DNS resolution failure";
"tunnelOnDemandEthernet" = "Ethernet";
"macLogButtonTitleSave" = "Save…";
-"macMenuToggleStatus" = "Toggle Status";
"deletePeerButtonTitle" = "Delete peer";
"tunnelPeerRxBytes" = "Data received";
"alertCantOpenInputZipFileTitle" = "Unable to read zip archive";
@@ -233,6 +233,7 @@
"macConfirmAndQuitAlertCloseWindow" = "Close Tunnels Manager";
"macMenuFile" = "File";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
+"macTunnelsMenuTitle" = "Tunnels";
"alertTunnelActivationSystemErrorTitle" = "Activation failure";
"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
"tunnelOnDemandAnySSID" = "Any SSID";
diff --git a/WireGuard.xcodeproj/project.pbxproj b/WireGuard.xcodeproj/project.pbxproj
index d192148..c7f2958 100644
--- a/WireGuard.xcodeproj/project.pbxproj
+++ b/WireGuard.xcodeproj/project.pbxproj
@@ -347,23 +347,7 @@
6F6483E6229293300075BA15 /* LaunchedAtLoginDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchedAtLoginDetector.swift; sourceTree = "<group>"; };
6F689999218043390012E523 /* WireGuard-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WireGuard-Bridging-Header.h"; sourceTree = "<group>"; };
6F70E20D221058DF008BDFB4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Sources/WireGuardApp/Base.lproj/InfoPlist.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFB5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = Sources/WireGuardApp/fr.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFB6 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = Sources/WireGuardApp/pl.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFB7 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Sources/WireGuardApp/es.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFB8 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = Sources/WireGuardApp/ca.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFB9 /* pa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pa; path = Sources/WireGuardApp/pa.lproj/Localizable.strings; sourceTree = "<group>"; };
6F70E20D221058DF008BDFBA /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFBB /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = Sources/WireGuardApp/ja.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFBC /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = Sources/WireGuardApp/it.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFBD /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = Sources/WireGuardApp/ro.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFBE /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = Sources/WireGuardApp/fa.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFBF /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = Sources/WireGuardApp/fi.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFC0 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = Sources/WireGuardApp/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFC1 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = Sources/WireGuardApp/ko.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFC2 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = Sources/WireGuardApp/tr.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFC3 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = Sources/WireGuardApp/de.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFC4 /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = Sources/WireGuardApp/sl.lproj/Localizable.strings; sourceTree = "<group>"; };
- 6F70E20D221058DF008BDFC5 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = Sources/WireGuardApp/id.lproj/Localizable.strings; sourceTree = "<group>"; };
6F70E20D221058DF008BDFC6 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings"; sourceTree = "<group>"; };
6F70E22922106A2D008BDFB4 /* WireGuardLoginItemHelper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WireGuardLoginItemHelper.app; sourceTree = BUILT_PRODUCTS_DIR; };
6F70E23222106A31008BDFB4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -420,6 +404,24 @@
6FDEF801218646B900D8FBF6 /* ZipArchive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZipArchive.swift; sourceTree = "<group>"; };
6FDEF805218725D200D8FBF6 /* SettingsTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTableViewController.swift; sourceTree = "<group>"; };
6FE1765521C90BBE002690EA /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Sources/WireGuardApp/Base.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690FC /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh-Hant; path = Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F0 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh-Hans; path = Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690FB /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = Sources/WireGuardApp/id.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F2 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = Sources/WireGuardApp/it.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F9 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = Sources/WireGuardApp/de.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690EB /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = Sources/WireGuardApp/fr.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F5 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = Sources/WireGuardApp/fi.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F4 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = Sources/WireGuardApp/fa.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690FA /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = Sources/WireGuardApp/sl.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690EC /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = Sources/WireGuardApp/pl.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690EF /* pa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pa; path = Sources/WireGuardApp/pa.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F7 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = Sources/WireGuardApp/ko.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690EE /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = Sources/WireGuardApp/ca.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = Sources/WireGuardApp/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F3 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = Sources/WireGuardApp/ro.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F8 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = Sources/WireGuardApp/tr.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690F1 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = Sources/WireGuardApp/ja.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6FE1765521C90BBE002690ED /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Sources/WireGuardApp/es.lproj/Localizable.strings; sourceTree = "<group>"; };
6FE1765921C90E87002690EA /* LocalizationHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationHelper.swift; sourceTree = "<group>"; };
6FE254FA219C10800028284D /* ZipImporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZipImporter.swift; sourceTree = "<group>"; };
6FE254FE219C60290028284D /* ZipExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZipExporter.swift; sourceTree = "<group>"; };
@@ -1507,24 +1509,24 @@
6FE1765421C90BBE002690EA /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (
- 6F70E20D221058DF008BDFC6 /* zh-Hant */,
- 6F70E20D221058DF008BDFBA /* zh-Hans */,
- 6F70E20D221058DF008BDFC5 /* id */,
- 6F70E20D221058DF008BDFBC /* it */,
- 6F70E20D221058DF008BDFC3 /* de */,
- 6F70E20D221058DF008BDFB5 /* fr */,
- 6F70E20D221058DF008BDFBF /* fi */,
- 6F70E20D221058DF008BDFBE /* fa */,
- 6F70E20D221058DF008BDFC4 /* sl */,
- 6F70E20D221058DF008BDFB6 /* pl */,
- 6F70E20D221058DF008BDFB9 /* pa */,
- 6F70E20D221058DF008BDFC1 /* ko */,
- 6F70E20D221058DF008BDFB8 /* ca */,
- 6F70E20D221058DF008BDFC0 /* ru */,
- 6F70E20D221058DF008BDFBD /* ro */,
- 6F70E20D221058DF008BDFC2 /* tr */,
- 6F70E20D221058DF008BDFBB /* ja */,
- 6F70E20D221058DF008BDFB7 /* es */,
+ 6FE1765521C90BBE002690FC /* zh-Hant */,
+ 6FE1765521C90BBE002690F0 /* zh-Hans */,
+ 6FE1765521C90BBE002690FB /* id */,
+ 6FE1765521C90BBE002690F2 /* it */,
+ 6FE1765521C90BBE002690F9 /* de */,
+ 6FE1765521C90BBE002690EB /* fr */,
+ 6FE1765521C90BBE002690F5 /* fi */,
+ 6FE1765521C90BBE002690F4 /* fa */,
+ 6FE1765521C90BBE002690FA /* sl */,
+ 6FE1765521C90BBE002690EC /* pl */,
+ 6FE1765521C90BBE002690EF /* pa */,
+ 6FE1765521C90BBE002690F7 /* ko */,
+ 6FE1765521C90BBE002690EE /* ca */,
+ 6FE1765521C90BBE002690F6 /* ru */,
+ 6FE1765521C90BBE002690F3 /* ro */,
+ 6FE1765521C90BBE002690F8 /* tr */,
+ 6FE1765521C90BBE002690F1 /* ja */,
+ 6FE1765521C90BBE002690ED /* es */,
6FE1765521C90BBE002690EA /* Base */,
);
name = Localizable.strings;
diff --git a/sync-translations.sh b/sync-translations.sh
index c855aab..968a446 100755
--- a/sync-translations.sh
+++ b/sync-translations.sh
@@ -23,7 +23,7 @@ done < Sources/WireGuardApp/Base.lproj/Localizable.strings
git add Sources/WireGuardApp/*.lproj
declare -A LOCALE_MAP
-[[ $(< WireGuard.xcodeproj/project.pbxproj) =~ [[:space:]]([0-9A-F]{24})\ /\*\ Base\ \*/, ]]
+[[ $(< WireGuard.xcodeproj/project.pbxproj) =~ [[:space:]]([0-9A-F]{24})\ /\*\ Base\ \*/\ =\ [^$'\n']*Base\.lproj/Localizable\.strings ]]
base_id="${BASH_REMATCH[1]:0:16}"
idx=$(( "0x${BASH_REMATCH[1]:16}" ))
while read -r filename; do