]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
project: sync translations and improve id generation again
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 23 Dec 2020 13:55:29 +0000 (14:55 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Wed, 23 Dec 2020 13:55:29 +0000 (14:55 +0100)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
20 files changed:
Sources/WireGuardApp/ca.lproj/Localizable.strings
Sources/WireGuardApp/de.lproj/Localizable.strings
Sources/WireGuardApp/es.lproj/Localizable.strings
Sources/WireGuardApp/fa.lproj/Localizable.strings
Sources/WireGuardApp/fi.lproj/Localizable.strings
Sources/WireGuardApp/fr.lproj/Localizable.strings
Sources/WireGuardApp/id.lproj/Localizable.strings
Sources/WireGuardApp/it.lproj/Localizable.strings
Sources/WireGuardApp/ja.lproj/Localizable.strings
Sources/WireGuardApp/ko.lproj/Localizable.strings
Sources/WireGuardApp/pa.lproj/Localizable.strings
Sources/WireGuardApp/pl.lproj/Localizable.strings
Sources/WireGuardApp/ro.lproj/Localizable.strings
Sources/WireGuardApp/ru.lproj/Localizable.strings
Sources/WireGuardApp/sl.lproj/Localizable.strings
Sources/WireGuardApp/tr.lproj/Localizable.strings
Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings
Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings
WireGuard.xcodeproj/project.pbxproj
sync-translations.sh

index 5f94f9776b214a40e199695ddc6a735fa11a458b..827b7376bc68f7070d4d704ae94839853dc1d179 100644 (file)
 "macMenuFile" = "File";
 "tunnelStatusActivating" = "Activating";
 "macToolTipToggleStatus" = "Toggle status (⌘T)";
+"macTunnelsMenuTitle" = "Tunnels";
 "alertTunnelActivationSystemErrorTitle" = "Activation failure";
 "alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
 "alertNoTunnelsToExportTitle" = "Nothing to export";
index 4573672cd770b4300bed6edc4bd2e7e7e61eada2..a18c8c4363a1a37260a9b3ed26e866475f88c9e0 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ Spende an das WireGuard Projekt";
+"macTunnelsMenuTitle" = "Tunnels";
index 9232f55756023361118b5d204347405c808f17eb..db4ce2cb8771891c34b728986199785ef2a147dd 100644 (file)
@@ -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";
 "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";
index 4cfd32739c94a70217c04fba5c14cb1a78adc56b..140e38f8934de391d733c7da73e2a9455bdafa98 100644 (file)
@@ -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
 
 
 "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";
index 9333f681e49819ba4124463ef851e6ec995bce4d..64915c8c2126e8f9bf4959c28502aa5cd8e7e1b9 100644 (file)
@@ -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
 
 
 "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ä";
 "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?";
 "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";
index 73d772ac6afe61655379153456e5cbcaf45844e1..8462df92f680951ba1199a5a587d3b81ffe4122c 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ Faire un don au projet WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
index a1f5ab01d480f494a6cf5708e8a99e1537c60071..d26a66b4fcd277d43bb212bf1eb69c692aa01c96 100644 (file)
@@ -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
 
 
 "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";
index 7ff6be61fb175609a74b952fda5bb10f510d2984..70b6a3f6c390f64fb55c00530e7427e0433c2f22 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ Fai una donazione al progetto WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
index 04d44634a917fb326a13a6f4bfc671fda955c803..0273cc453bddb730b45002d89d7e1729895b46e4 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ WireGuard プロジェクトに寄付する";
+"macTunnelsMenuTitle" = "Tunnels";
index 2fda14dd4bf0ed43228bc0add005ff9ce7a2a2ad..d6eefb5b1dd1b3ee52b318eaa8b7ad4f0453baf4 100644 (file)
@@ -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
 
 
 "macMenuFile" = "File";
 "tunnelStatusActivating" = "Activating";
 "macToolTipToggleStatus" = "Toggle status (⌘T)";
+"macTunnelsMenuTitle" = "Tunnels";
 "alertTunnelActivationSystemErrorTitle" = "Activation failure";
 "alertInvalidInterfaceMessagePrivateKeyRequired" = "Interface’s private key is required";
 "tunnelOnDemandAnySSID" = "Any SSID";
index 10a7623f63c29005a3cbf001d4e4d8e10681eb74..470d0564701b16136494ec2e2f47f4af3d816142 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ ਵਾਇਰਗਾਰਡ ਪਰੋਜੈਕਟ ਨੂੰ ਦਾਨ ਦਿਓ";
+"macTunnelsMenuTitle" = "Tunnels";
index 9127e316edcd2ed6feba22148e4796cdd807d308..c7d40db5ac8d2ac8cf8bae608e0d7008041eae9e 100644 (file)
@@ -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
 
 
 "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)?";
 
 
 "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";
 
 "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
 
 
 "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";
 
 "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.";
 
 "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";
 "macMenuQuit" = "Wyjdź z programu WireGuard";
 
 "macMenuHideApp" = "Ukryj program WireGuard";
+"macMenuHideOtherApps" = "Ukryj pozostałe";
+"macMenuShowAllApps" = "Pokaż wszystkie";
 
 "macMenuFile" = "Plik";
 "macMenuCloseWindow" = "Zamknij okno";
 "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";
 "macDeleteTunnelConfirmationAlertButtonTitleDeleting" = "Usuwanie…";
 
 "macButtonImportTunnels" = "Importuj tunel(e) z pliku";
+"macSheetButtonImport" = "Importuj";
 
 "macNameFieldExportLog" = "Zapisz log do:";
 "macSheetButtonExportLog" = "Zapisz";
 "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";
index 7b976bd3d043e7c3f3c2e6905444f9642a6b2c50..204f828b410b21a6cd9ae3332eb8e3a9babcf22b 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ Donează pentru proiectul WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
index 7c762d173745261796b010e89dc6e6ab4a6597d8..70c11a047fe7ba0816eb14676ae0f8ec8d890aa1 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ Пожертвовать проекту WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
index 2a8066b445ce8e4b6a1dd4d5499080e5985dfbd9..1728f057a79c83bc35ea4f9a08c34e779baf4321 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ Donirajte projektu WireGuard";
+"macTunnelsMenuTitle" = "Tunnels";
index a4ff9363bb48926ad2eea1ed23ef164c1d4797ca..36d7cd90b9967f58a107f9921375649929bfc8b8 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ WireGuard Projesine Bağış Yapın";
+"macTunnelsMenuTitle" = "Tunnels";
index ea7ce04b5dca7e67475a75d2a7b263b900049fb3..f176baeac77a109c5f3fdec1e4a4fc99c3d77297 100644 (file)
@@ -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
 
 
 // Donation
 
 "donateLink" = "♥ 为 WireGuard 捐赠";
+"macTunnelsMenuTitle" = "Tunnels";
index f8de22389022e604d2bfdde2797e77b34fb8d0b1..b498ba203a2a703f931113f3dab9cdaa855da6c9 100644 (file)
@@ -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.";
 "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";
 "alertTunnelDNSFailureTitle" = "DNS resolution failure";
 "tunnelOnDemandEthernet" = "Ethernet";
 "macLogButtonTitleSave" = "Save…";
-"macMenuToggleStatus" = "Toggle Status";
 "deletePeerButtonTitle" = "Delete peer";
 "tunnelPeerRxBytes" = "Data received";
 "alertCantOpenInputZipFileTitle" = "Unable to read zip archive";
 "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";
index d19214869330efc41f5ae6b3561b7107f3591806..c7f2958daccf958dbc644d2b2c0e696e492b5889 100644 (file)
                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>"; };
                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>"; };
                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;
index c855aabe1768fbab3254c36211238a02b4d0ce13..968a44671db4622bdc95ff16d0be16e7f94bb030 100755 (executable)
@@ -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