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