UI: add missing translations to incomplete locales

This is the wrong way to fix the problem. The correct way will involve
moving away from the whacky tr() macro and using translations functions
properly. But migrating to that will require some heavy scripting work.
So for now, use a hammer.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2020-12-17 00:40:42 +01:00
parent db4e2915f3
commit 49b7d083f1
10 changed files with 1320 additions and 36 deletions

View File

@ -95,3 +95,181 @@
"macMenuManageTunnels" = "Gestiona túnels";
"macMenuCut" = "Talla";
"macMenuCopy" = "Copia";
"newTunnelViewTitle" = "New configuration";
"macMenuDeleteSelected" = "Delete Selected";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
"tunnelPeerEndpoint" = "Endpoint";
"tunnelInterfaceMTU" = "MTU";
"alertInvalidInterfaceMessageListenPortInvalid" = "Interfaces listen port must be between 0 and 65535, or unspecified";
"addPeerButtonTitle" = "Add peer";
"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
"macMenuTitle" = "WireGuard";
"macAlertNoInterface" = "Configuration must have an Interface section.";
"macNameFieldExportZip" = "Export tunnels to:";
"editTunnelViewTitle" = "Edit configuration";
"alertSystemErrorMessageTunnelConfigurationUnknown" = "Unknown system error.";
"macEditDiscard" = "Discard";
"macSheetButtonExportZip" = "Save";
"macWindowTitleManageTunnels" = "Manage WireGuard Tunnels";
"tunnelsListTitle" = "WireGuard";
"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";
"macMenuHideApp" = "Hide WireGuard";
"macDeleteTunnelConfirmationAlertInfo" = "You cannot undo this action.";
"macDeleteTunnelConfirmationAlertButtonTitleDeleting" = "Deleting…";
"tunnelPeerPersistentKeepalive" = "Persistent keepalive";
"alertSystemErrorMessageTunnelConnectionFailed" = "The connection failed.";
"macButtonEdit" = "Edit";
"macAlertPublicKeyInvalid" = "Public key is invalid";
"tunnelOnDemandOptionWiFiOnly" = "Wi-Fi only";
"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.";
"tunnelOnDemandOptionOff" = "Off";
"tunnelOnDemandSectionTitleSelectedSSIDs" = "SSIDs";
"macAlertInfoUnrecognizedInterfaceKey" = "Valid keys are: PrivateKey, ListenPort, Address, DNS and MTU.";
"macLogColumnTitleTime" = "Time";
"actionOK" = "OK";
"alertTunnelNameEmptyMessage" = "Cannot create tunnel with an empty name";
"alertInvalidInterfaceMessageMTUInvalid" = "Interfaces MTU must be between 576 and 65535, or unspecified";
"tunnelOnDemandWiFi" = "Wi-Fi";
"alertTunnelNameEmptyTitle" = "No name provided";
"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";
"macLogButtonTitleClose" = "Close";
"tunnelOnDemandSSIDViewTitle" = "SSIDs";
"tunnelOnDemandOptionCellularOnly" = "Cellular only";
"tunnelEditPlaceholderTextOptional" = "Optional";
"settingsExportZipButtonTitle" = "Export zip archive";
"tunnelSectionTitleOnDemand" = "On-Demand Activation";
"deleteTunnelsConfirmationAlertButtonTitle" = "Delete";
"alertInvalidInterfaceMessageNameRequired" = "Interface name is required";
"tunnelEditPlaceholderTextAutomatic" = "Automatic";
"macViewPrivateData" = "view tunnel private keys";
"alertInvalidPeerMessageEndpointInvalid" = "Peers endpoint must be of the form host:port or [host]:port";
"alertTunnelActivationErrorTunnelIsNotInactiveTitle" = "Activation in progress";
"addTunnelMenuImportFile" = "Create from file or archive";
"deletePeerConfirmationAlertButtonTitle" = "Delete";
"addTunnelMenuQRCode" = "Create from QR code";
"alertInvalidPeerMessagePreSharedKeyInvalid" = "Peers 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";
"macMenuWindow" = "Window";
"tunnelStatusRestarting" = "Restarting";
"tunnelHandshakeTimestampNow" = "Now";
"alertTunnelActivationFailureMessage" = "The tunnel could not be activated. Please ensure that you are connected to the Internet.";
"tunnelInterfaceListenPort" = "Listen port";
"tunnelOnDemandOptionEthernetOnly" = "Ethernet only";
"macMenuHideOtherApps" = "Hide Others";
"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Interfaces private key must be a 32-byte key in base64 encoding";
"deleteTunnelButtonTitle" = "Delete tunnel";
"alertInvalidInterfaceMessageDNSInvalid" = "Interfaces DNS servers must be a list of comma-separated IP addresses";
"tunnelStatusInactive" = "Inactive";
"macAlertPrivateKeyInvalid" = "Private key is invalid.";
"deleteTunnelConfirmationAlertMessage" = "Delete this tunnel?";
"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Cancel";
"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peers persistent keepalive must be between 0 to 65535, or unspecified";
"macMenuNetworksNone" = "Networks: None";
"tunnelOnDemandSSIDsKey" = "SSIDs";
"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
"macMenuSelectAll" = "Select All";
"alertInvalidPeerMessagePublicKeyInvalid" = "Peers 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";
"tunnelOnDemandOptionWiFiOrCellular" = "Wi-Fi or cellular";
"alertSystemErrorOnModifyTunnelTitle" = "Unable to modify tunnel";
"alertSystemErrorMessageTunnelConfigurationReadWriteFailed" = "Reading or writing the configuration failed.";
"macMenuEditTunnel" = "Edit…";
"macButtonImportTunnels" = "Import tunnel(s) from file";
"macAppExitingWithActiveTunnelMessage" = "WireGuard is exiting with an active tunnel";
"alertSystemErrorMessageTunnelConfigurationStale" = "The configuration is stale.";
"tunnelPeerPreSharedKey" = "Preshared key";
"alertTunnelDNSFailureMessage" = "One or more endpoint domains could not be resolved.";
"alertInvalidInterfaceMessageAddressInvalid" = "Interface addresses must be a list of comma-separated IP addresses, optionally in CIDR notation";
"alertNoTunnelsInImportedZipArchiveTitle" = "No tunnels in zip archive";
"alertTunnelDNSFailureTitle" = "DNS resolution failure";
"macLogButtonTitleSave" = "Save…";
"macMenuToggleStatus" = "Toggle Status";
"macMenuMinimize" = "Minimize";
"deletePeerButtonTitle" = "Delete peer";
"alertCantOpenInputZipFileTitle" = "Unable to read zip archive";
"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)";
"tunnelEditPlaceholderTextStronglyRecommended" = "Strongly recommended";
"macMenuZoom" = "Zoom";
"alertBadArchiveTitle" = "Unable to read zip archive";
"macExportPrivateData" = "export tunnel private keys";
"alertTunnelAlreadyExistsWithThatNameTitle" = "Name already exists";
"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" = "Interfaces 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…";
"macMenuViewLog" = "View Log";
"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: PublicKey, PresharedKey, AllowedIPs, Endpoint and PersistentKeepalive";
"tunnelOnDemandNoSSIDs" = "No SSIDs";
"deleteTunnelConfirmationAlertButtonTitle" = "Delete";
"tunnelEditPlaceholderTextOff" = "Off";
"addTunnelMenuHeader" = "Add a new WireGuard tunnel";
"macUnusableTunnelButtonTitleDeleteTunnel" = "Delete tunnel";
"tunnelEditPlaceholderTextRequired" = "Required";
"tunnelStatusReasserting" = "Reactivating";
"macMenuTunnel" = "Tunnel";
"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";
"tunnelOnDemandOptionWiFiOrEthernet" = "Wi-Fi or ethernet";
"macToggleStatusButtonActivate" = "Activate";
"macAlertNameIsEmpty" = "Name is required";

View File

@ -189,3 +189,130 @@
"alertUnableToRemovePreviousLogTitle" = "Exportación de registros fallida";
"alertNoTunnelsToExportTitle" = "Nada para exportar";
"settingsSectionTitleAbout" = "About";
"macMenuDeleteSelected" = "Delete Selected";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
"macMenuTitle" = "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";
"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";

View File

@ -347,3 +347,58 @@
// Donation
"donateLink" = "♥ کمک مالی به پروژه WireGuard";
"alertInvalidInterfaceMessageListenPortInvalid" = "Interfaces listen port must be between 0 and 65535, or unspecified";
"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
"macAlertNoInterface" = "Configuration must have an Interface section.";
"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";
"alertTunnelActivationSetNetworkSettingsMessage" = "Unable to apply network settings to tunnel object.";
"alertCantOpenInputConfFileTitle" = "Unable to import from file";
"alertScanQRCodeInvalidQRCodeMessage" = "The scanned QR code is not a valid WireGuard configuration";
"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.";
"alertTunnelNameEmptyMessage" = "Cannot create tunnel with an empty name";
"alertInvalidInterfaceMessageMTUInvalid" = "Interfaces MTU must be between 576 and 65535, or unspecified";
"alertUnableToWriteLogMessage" = "Unable to write logs to file";
"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.";
"alertInvalidPeerMessageEndpointInvalid" = "Peers endpoint must be of the form host:port or [host]:port";
"alertInvalidPeerMessagePublicKeyDuplicated" = "Two or more peers cannot have the same public key";
"alertInvalidPeerMessagePreSharedKeyInvalid" = "Peers 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.";
"alertTunnelActivationFailureMessage" = "The tunnel could not be activated. Please ensure that you are connected to the Internet.";
"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Interfaces private key must be a 32-byte key in base64 encoding";
"alertInvalidInterfaceMessageDNSInvalid" = "Interfaces DNS servers must be a list of comma-separated IP addresses";
"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peers persistent keepalive must be between 0 to 65535, or unspecified";
"alertInvalidPeerMessagePublicKeyRequired" = "Peers public key is required";
"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
"alertInvalidPeerMessagePublicKeyInvalid" = "Peers public key must be a 32-byte key in base64 encoding";
"alertSystemErrorMessageTunnelConfigurationReadWriteFailed" = "Reading or writing the configuration failed.";
"macAppExitingWithActiveTunnelMessage" = "WireGuard is exiting with an active tunnel";
"alertTunnelDNSFailureMessage" = "One or more endpoint domains could not be resolved.";
"alertInvalidInterfaceMessageAddressInvalid" = "Interface addresses must be a list of comma-separated IP addresses, optionally in CIDR notation";
"alertTunnelDNSFailureTitle" = "DNS resolution failure";
"macMenuToggleStatus" = "Toggle Status";
"alertCantOpenInputZipFileTitle" = "Unable to read zip archive";
"alertScanQRCodeUnreadableQRCodeMessage" = "The scanned code could not be read";
"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.";
"iosViewPrivateData" = "Authenticate to view tunnel private keys.";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
"scanQRCodeTipText" = "Tip: Generate with `qrencode -t ansiutf8 < tunnel.conf`";
"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: PublicKey, PresharedKey, AllowedIPs, Endpoint and PersistentKeepalive";
"alertInvalidPeerMessageAllowedIPsInvalid" = "Peers allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
"alertTunnelAlreadyExistsWithThatNameMessage" = "A tunnel with that name already exists";
"iosExportPrivateData" = "Authenticate to export tunnel private keys.";
"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";
"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.";

View File

@ -44,3 +44,205 @@
"tunnelEditPlaceholderTextAutomatic" = "Automaattinen";
"tunnelEditPlaceholderTextOff" = "Pois päältä";
"tunnelHandshakeTimestampNow" = "Nyt";
"settingsSectionTitleAbout" = "About";
"newTunnelViewTitle" = "New configuration";
"macMenuDeleteSelected" = "Delete Selected";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
"tunnelInterfaceDNS" = "DNS servers";
"tunnelPeerEndpoint" = "Endpoint";
"tunnelInterfaceMTU" = "MTU";
"alertInvalidInterfaceMessageListenPortInvalid" = "Interfaces listen port must be between 0 and 65535, or unspecified";
"addPeerButtonTitle" = "Add peer";
"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
"tunnelsListSwipeDeleteButtonTitle" = "Delete";
"macMenuTitle" = "WireGuard";
"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" = "Interfaces 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" = "Peers 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" = "Peers 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" = "Interfaces private key must be a 32-byte key in base64 encoding";
"tunnelSectionTitleInterface" = "Interface";
"alertInvalidInterfaceMessageDNSInvalid" = "Interfaces 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" = "Peers persistent keepalive must be between 0 to 65535, or unspecified";
"alertUnableToWriteLogTitle" = "Log export failed";
"alertInvalidPeerMessagePublicKeyRequired" = "Peers public key is required";
"macMenuNetworksNone" = "Networks: None";
"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
"macMenuSelectAll" = "Select All";
"logViewTitle" = "Log";
"alertInvalidPeerMessagePublicKeyInvalid" = "Peers 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" = "Interfaces 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" = "Peers allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
"macMenuTunnel" = "Tunnel";
"macMenuCopy" = "Copy";
"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";

View File

@ -92,3 +92,180 @@
"tunnelOnDemandCellular" = "Cellular";
"tunnelOnDemandEthernet" = "Ethernet";
"tunnelOnDemandWiFi" = "Wi-Fi";
"settingsSectionTitleAbout" = "About";
"macMenuDeleteSelected" = "Delete Selected";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
"alertInvalidInterfaceMessageListenPortInvalid" = "Interfaces listen port must be between 0 and 65535, or unspecified";
"addPeerButtonTitle" = "Add peer";
"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
"macMenuTitle" = "WireGuard";
"macAlertNoInterface" = "Configuration must have an Interface section.";
"macNameFieldExportZip" = "Export tunnels to:";
"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";
"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";
"tunnelOnDemandOptionWiFiOnly" = "Wi-Fi only";
"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.";
"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" = "Interfaces MTU must be between 576 and 65535, or unspecified";
"alertTunnelNameEmptyTitle" = "No name provided";
"tunnelOnDemandOnlyTheseSSIDs" = "Only these SSIDs";
"tunnelOnDemandExceptTheseSSIDs" = "Except these SSIDs";
"alertUnableToWriteLogMessage" = "Unable to write logs to file";
"macMenuQuit" = "Quit WireGuard";
"macMenuAddEmptyTunnel" = "Add Empty Tunnel…";
"alertInvalidInterfaceTitle" = "Invalid interface";
"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";
"tunnelOnDemandSSIDViewTitle" = "SSIDs";
"tunnelOnDemandOptionCellularOnly" = "Cellular only";
"tunnelEditPlaceholderTextOptional" = "Optional";
"settingsExportZipButtonTitle" = "Export zip archive";
"alertInvalidInterfaceMessageNameRequired" = "Interface name is required";
"tunnelEditPlaceholderTextAutomatic" = "Automatic";
"macViewPrivateData" = "view tunnel private keys";
"alertInvalidPeerTitle" = "Invalid peer";
"alertInvalidPeerMessageEndpointInvalid" = "Peers 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";
"deletePeerConfirmationAlertButtonTitle" = "Delete";
"alertInvalidPeerMessagePreSharedKeyInvalid" = "Peers 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";
"alertUnableToRemovePreviousLogTitle" = "Log export failed";
"tunnelHandshakeTimestampNow" = "Now";
"alertTunnelActivationFailureMessage" = "The tunnel could not be activated. Please ensure that you are connected to the Internet.";
"tunnelOnDemandOptionEthernetOnly" = "Ethernet only";
"macMenuHideOtherApps" = "Hide Others";
"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Interfaces private key must be a 32-byte key in base64 encoding";
"deleteTunnelButtonTitle" = "Delete tunnel";
"alertInvalidInterfaceMessageDNSInvalid" = "Interfaces DNS servers must be a list of comma-separated IP addresses";
"macAlertPrivateKeyInvalid" = "Private key is invalid.";
"deleteTunnelConfirmationAlertMessage" = "Delete this tunnel?";
"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Cancel";
"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peers persistent keepalive must be between 0 to 65535, or unspecified";
"alertUnableToWriteLogTitle" = "Log export failed";
"alertInvalidPeerMessagePublicKeyRequired" = "Peers public key is required";
"macMenuNetworksNone" = "Networks: None";
"tunnelOnDemandSSIDsKey" = "SSIDs";
"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
"macMenuSelectAll" = "Select All";
"logViewTitle" = "Log";
"alertInvalidPeerMessagePublicKeyInvalid" = "Peers public key must be a 32-byte key in base64 encoding";
"tunnelOnDemandKey" = "On demand";
"macConfirmAndQuitAlertQuitWireGuard" = "Quit WireGuard";
"alertSystemErrorOnRemoveTunnelTitle" = "Unable to remove tunnel";
"macFieldOnDemand" = "On-Demand:";
"macMenuCloseWindow" = "Close Window";
"macSheetButtonExportLog" = "Save";
"tunnelOnDemandOptionWiFiOrCellular" = "Wi-Fi or cellular";
"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.";
"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";
"macLogButtonTitleSave" = "Save…";
"macMenuToggleStatus" = "Toggle Status";
"macMenuMinimize" = "Minimize";
"deletePeerButtonTitle" = "Delete peer";
"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.";
"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";
"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";
"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interfaces private key is required";
"tunnelOnDemandAnySSID" = "Any SSID";
"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";
"deleteTunnelConfirmationAlertButtonTitle" = "Delete";
"tunnelEditPlaceholderTextOff" = "Off";
"macUnusableTunnelButtonTitleDeleteTunnel" = "Delete tunnel";
"tunnelEditPlaceholderTextRequired" = "Required";
"alertInvalidPeerMessageAllowedIPsInvalid" = "Peers allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
"macMenuTunnel" = "Tunnel";
"macMenuCopy" = "Copy";
"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";
"alertNoTunnelsInImportedZipArchiveMessage" = "No .conf tunnel files were found inside the zip archive.";
"alertTunnelActivationFileDescriptorFailureMessage" = "Unable to determine TUN device file descriptor.";
"tunnelOnDemandOptionWiFiOrEthernet" = "Wi-Fi or ethernet";
"macAlertNameIsEmpty" = "Name is required";

View File

@ -36,3 +36,217 @@
// Settings UI
"settingsViewTitle" = "설정";
"settingsSectionTitleAbout" = "About";
"newTunnelViewTitle" = "New configuration";
"macMenuDeleteSelected" = "Delete Selected";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
"tunnelPeerPublicKey" = "Public key";
"tunnelPeerEndpoint" = "Endpoint";
"tunnelInterfaceMTU" = "MTU";
"alertInvalidInterfaceMessageListenPortInvalid" = "Interfaces listen port must be between 0 and 65535, or unspecified";
"addPeerButtonTitle" = "Add peer";
"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
"macMenuTitle" = "WireGuard";
"macAlertNoInterface" = "Configuration must have an Interface section.";
"macNameFieldExportZip" = "Export tunnels to:";
"editTunnelViewTitle" = "Edit configuration";
"alertSystemErrorMessageTunnelConfigurationUnknown" = "Unknown system error.";
"macMenuCut" = "Cut";
"macEditDiscard" = "Discard";
"tunnelPeerPresharedKeyEnabled" = "enabled";
"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";
"macMenuHideApp" = "Hide WireGuard";
"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";
"tunnelOnDemandOptionWiFiOnly" = "Wi-Fi only";
"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.";
"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" = "Interfaces 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…";
"macMenuQuit" = "Quit WireGuard";
"macMenuAddEmptyTunnel" = "Add Empty Tunnel…";
"tunnelStatusDeactivating" = "Deactivating";
"alertInvalidInterfaceTitle" = "Invalid interface";
"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";
"tunnelOnDemandOptionCellularOnly" = "Cellular only";
"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" = "Peers 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" = "Peers 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";
"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.";
"tunnelInterfaceListenPort" = "Listen port";
"tunnelOnDemandOptionEthernetOnly" = "Ethernet only";
"tunnelInterfaceName" = "Name";
"macToggleStatusButtonWaiting" = "Waiting…";
"tunnelInterfaceStatus" = "Status";
"macMenuHideOtherApps" = "Hide Others";
"alertCantOpenInputZipFileMessage" = "The zip archive could not be read.";
"alertInvalidInterfaceMessagePrivateKeyInvalid" = "Interfaces private key must be a 32-byte key in base64 encoding";
"deleteTunnelButtonTitle" = "Delete tunnel";
"tunnelSectionTitleInterface" = "Interface";
"alertInvalidInterfaceMessageDNSInvalid" = "Interfaces DNS servers must be a list of comma-separated IP addresses";
"tunnelStatusInactive" = "Inactive";
"macAlertPrivateKeyInvalid" = "Private key is invalid.";
"tunnelsListCenteredAddTunnelButtonTitle" = "Add a tunnel";
"deleteTunnelConfirmationAlertMessage" = "Delete this tunnel?";
"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Cancel";
"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peers persistent keepalive must be between 0 to 65535, or unspecified";
"alertUnableToWriteLogTitle" = "Log export failed";
"alertInvalidPeerMessagePublicKeyRequired" = "Peers public key is required";
"macMenuNetworksNone" = "Networks: None";
"tunnelOnDemandSSIDsKey" = "SSIDs";
"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
"macMenuSelectAll" = "Select All";
"logViewTitle" = "Log";
"alertInvalidPeerMessagePublicKeyInvalid" = "Peers public key must be a 32-byte key in base64 encoding";
"tunnelOnDemandCellular" = "Cellular";
"tunnelOnDemandKey" = "On demand";
"macConfirmAndQuitAlertQuitWireGuard" = "Quit WireGuard";
"alertSystemErrorOnRemoveTunnelTitle" = "Unable to remove tunnel";
"macFieldOnDemand" = "On-Demand:";
"macMenuCloseWindow" = "Close Window";
"macSheetButtonExportLog" = "Save";
"tunnelOnDemandOptionWiFiOrCellular" = "Wi-Fi or cellular";
"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";
"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";
"alertSystemErrorOnListingTunnelsTitle" = "Unable to list tunnels";
"tunnelPeerExcludePrivateIPs" = "Exclude private IPs";
"settingsVersionKeyWireGuardForIOS" = "WireGuard for iOS";
"macMenuPaste" = "Paste";
"tunnelInterfaceAddresses" = "Addresses";
"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" = "Interfaces private key is required";
"tunnelOnDemandAnySSID" = "Any SSID";
"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…";
"macMenuViewLog" = "View Log";
"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: PublicKey, PresharedKey, AllowedIPs, Endpoint and PersistentKeepalive";
"tunnelOnDemandNoSSIDs" = "No SSIDs";
"deleteTunnelConfirmationAlertButtonTitle" = "Delete";
"tunnelEditPlaceholderTextOff" = "Off";
"addTunnelMenuHeader" = "Add a new WireGuard tunnel";
"macUnusableTunnelButtonTitleDeleteTunnel" = "Delete tunnel";
"tunnelEditPlaceholderTextRequired" = "Required";
"tunnelStatusReasserting" = "Reactivating";
"alertInvalidPeerMessageAllowedIPsInvalid" = "Peers allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
"macMenuTunnel" = "Tunnel";
"macMenuCopy" = "Copy";
"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";
"tunnelOnDemandOptionWiFiOrEthernet" = "Wi-Fi or ethernet";
"macToggleStatusButtonActivate" = "Activate";
"macAlertNameIsEmpty" = "Name is required";

View File

@ -188,3 +188,136 @@
"macLogButtonTitleClose" = "Zamknij";
"macLogButtonTitleSave" = "Zapisz…";
"macUnusableTunnelButtonTitleDeleteTunnel" = "Usuń tunel";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
"tunnelPeerEndpoint" = "Endpoint";
"alertInvalidInterfaceMessageListenPortInvalid" = "Interfaces 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" = "Interfaces 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" = "Peers 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" = "Peers 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" = "Interfaces private key must be a 32-byte key in base64 encoding";
"tunnelSectionTitleInterface" = "Interface";
"alertInvalidInterfaceMessageDNSInvalid" = "Interfaces DNS servers must be a list of comma-separated IP addresses";
"tunnelStatusInactive" = "Inactive";
"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peers persistent keepalive must be between 0 to 65535, or unspecified";
"alertUnableToWriteLogTitle" = "Log export failed";
"alertInvalidPeerMessagePublicKeyRequired" = "Peers public key is required";
"macMenuNetworksNone" = "Networks: None";
"tunnelOnDemandSSIDsKey" = "SSIDs";
"alertInvalidPeerMessagePublicKeyInvalid" = "Peers 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" = "Interfaces 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" = "Peers 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";

View File

@ -86,3 +86,184 @@
"macMenuPaste" = "貼上";
"macMenuSelectAll" = "全選";
"macMenuMinimize" = "最小化";
"macMenuDeleteSelected" = "Delete Selected";
"alertSystemErrorMessageTunnelConfigurationInvalid" = "The configuration is invalid.";
"tunnelPeerPublicKey" = "Public key";
"tunnelPeerEndpoint" = "Endpoint";
"alertInvalidInterfaceMessageListenPortInvalid" = "Interfaces listen port must be between 0 and 65535, or unspecified";
"addPeerButtonTitle" = "Add peer";
"tunnelHandshakeTimestampSystemClockBackward" = "(System clock wound backwards)";
"macMenuTitle" = "WireGuard";
"macAlertNoInterface" = "Configuration must have an Interface section.";
"macNameFieldExportZip" = "Export tunnels to:";
"alertSystemErrorMessageTunnelConfigurationUnknown" = "Unknown system error.";
"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";
"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";
"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";
"tunnelOnDemandOptionWiFiOnly" = "Wi-Fi only";
"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.";
"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" = "Interfaces MTU must be between 576 and 65535, or unspecified";
"tunnelOnDemandWiFi" = "Wi-Fi";
"alertTunnelNameEmptyTitle" = "No name provided";
"tunnelOnDemandOnlyTheseSSIDs" = "Only these SSIDs";
"tunnelOnDemandExceptTheseSSIDs" = "Except these SSIDs";
"alertUnableToWriteLogMessage" = "Unable to write logs to file";
"macMenuAddEmptyTunnel" = "Add Empty Tunnel…";
"alertInvalidInterfaceTitle" = "Invalid interface";
"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";
"tunnelOnDemandOptionCellularOnly" = "Cellular only";
"tunnelEditPlaceholderTextOptional" = "Optional";
"settingsExportZipButtonTitle" = "Export zip archive";
"tunnelSectionTitleOnDemand" = "On-Demand Activation";
"alertInvalidInterfaceMessageNameRequired" = "Interface name is required";
"macViewPrivateData" = "view tunnel private keys";
"alertInvalidPeerTitle" = "Invalid peer";
"alertInvalidPeerMessageEndpointInvalid" = "Peers 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";
"deletePeerConfirmationAlertButtonTitle" = "Delete";
"alertInvalidPeerMessagePreSharedKeyInvalid" = "Peers 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";
"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" = "Interfaces private key must be a 32-byte key in base64 encoding";
"deleteTunnelButtonTitle" = "Delete tunnel";
"alertInvalidInterfaceMessageDNSInvalid" = "Interfaces DNS servers must be a list of comma-separated IP addresses";
"macAlertPrivateKeyInvalid" = "Private key is invalid.";
"deleteTunnelConfirmationAlertMessage" = "Delete this tunnel?";
"macDeleteTunnelConfirmationAlertButtonTitleCancel" = "Cancel";
"alertSystemErrorMessageTunnelConfigurationDisabled" = "The configuration is disabled.";
"alertInvalidPeerMessagePersistentKeepaliveInvalid" = "Peers persistent keepalive must be between 0 to 65535, or unspecified";
"alertUnableToWriteLogTitle" = "Log export failed";
"alertInvalidPeerMessagePublicKeyRequired" = "Peers public key is required";
"macMenuNetworksNone" = "Networks: None";
"tunnelOnDemandSSIDsKey" = "SSIDs";
"alertCantOpenOutputZipFileForWritingMessage" = "Could not open zip file for writing.";
"logViewTitle" = "Log";
"alertInvalidPeerMessagePublicKeyInvalid" = "Peers public key must be a 32-byte key in base64 encoding";
"tunnelOnDemandCellular" = "Cellular";
"tunnelOnDemandKey" = "On demand";
"macConfirmAndQuitAlertQuitWireGuard" = "Quit WireGuard";
"alertSystemErrorOnRemoveTunnelTitle" = "Unable to remove tunnel";
"macFieldOnDemand" = "On-Demand:";
"macMenuCloseWindow" = "Close Window";
"macSheetButtonExportLog" = "Save";
"tunnelOnDemandOptionWiFiOrCellular" = "Wi-Fi or cellular";
"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";
"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";
"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";
"tunnelInterfaceAddresses" = "Addresses";
"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";
"iosViewPrivateData" = "Authenticate to view tunnel private keys.";
"tunnelPeerLastHandshakeTime" = "Latest handshake";
"macAlertPreSharedKeyInvalid" = "Preshared key is invalid";
"macEditSave" = "Save";
"macConfirmAndQuitAlertCloseWindow" = "Close Tunnels Manager";
"macMenuFile" = "File";
"macToolTipToggleStatus" = "Toggle status (⌘T)";
"alertTunnelActivationSystemErrorTitle" = "Activation failure";
"alertInvalidInterfaceMessagePrivateKeyRequired" = "Interfaces private key is required";
"tunnelOnDemandAnySSID" = "Any SSID";
"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";
"deleteTunnelConfirmationAlertButtonTitle" = "Delete";
"tunnelEditPlaceholderTextOff" = "Off";
"macUnusableTunnelButtonTitleDeleteTunnel" = "Delete tunnel";
"tunnelEditPlaceholderTextRequired" = "Required";
"alertInvalidPeerMessageAllowedIPsInvalid" = "Peers allowed IPs must be a list of comma-separated IP addresses, optionally in CIDR notation";
"macMenuTunnel" = "Tunnel";
"alertTunnelAlreadyExistsWithThatNameMessage" = "A tunnel with that name already exists";
"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";
"alertBadArchiveMessage" = "Bad or corrupt zip archive.";
"settingsVersionKeyWireGuardGoBackend" = "WireGuard Go Backend";
"macFieldOnDemandSSIDs" = "SSIDs:";
"deletePeerConfirmationAlertMessage" = "Delete this peer?";
"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.";
"tunnelOnDemandOptionWiFiOrEthernet" = "Wi-Fi or ethernet";
"macAlertNameIsEmpty" = "Name is required";

View File

@ -399,24 +399,24 @@
6FDEF801218646B900D8FBF6 /* ZipArchive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZipArchive.swift; sourceTree = "<group>"; };
6FDEF805218725D200D8FBF6 /* SettingsTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTableViewController.swift; sourceTree = "<group>"; };
6FE1765521C90BBE002690EA /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Sources/WireGuardApp/Base.lproj/Localizable.strings; sourceTree = "<group>"; };
A8FAC495E119A787EE15828E /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh-Hant; path = Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings; sourceTree = "<group>"; };
30E6E11BE16FC85D1D0D01A4 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh-Hans; path = Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings; sourceTree = "<group>"; };
F061DB3DF45406C134EB447E /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = Sources/WireGuardApp/id.lproj/Localizable.strings; sourceTree = "<group>"; };
798AA59731469050BB67A452 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = Sources/WireGuardApp/it.lproj/Localizable.strings; sourceTree = "<group>"; };
2B3036C208ACF4E06D7DA53F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = Sources/WireGuardApp/de.lproj/Localizable.strings; sourceTree = "<group>"; };
43D66D9909C915207158175F /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = Sources/WireGuardApp/fr.lproj/Localizable.strings; sourceTree = "<group>"; };
7644A930B7CB3B8882BC52FD /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = Sources/WireGuardApp/fi.lproj/Localizable.strings; sourceTree = "<group>"; };
937E473CD10EEFE3BC376098 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = Sources/WireGuardApp/fa.lproj/Localizable.strings; sourceTree = "<group>"; };
E4EE4FEC7423A6BEBDE429BC /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = Sources/WireGuardApp/sl.lproj/Localizable.strings; sourceTree = "<group>"; };
854D4F78352DD4455C410962 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = Sources/WireGuardApp/pl.lproj/Localizable.strings; sourceTree = "<group>"; };
8215B3EF8B68F0A53E6D8122 /* pa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pa; path = Sources/WireGuardApp/pa.lproj/Localizable.strings; sourceTree = "<group>"; };
795E9FCC698E54371188E366 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = Sources/WireGuardApp/ko.lproj/Localizable.strings; sourceTree = "<group>"; };
E60BA3A8E202323CDD363B2B /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = Sources/WireGuardApp/ca.lproj/Localizable.strings; sourceTree = "<group>"; };
1D38E2B7D24EC0ACEF2C5734 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = Sources/WireGuardApp/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
EE7D06A3CCB7DAEF13330651 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = Sources/WireGuardApp/ro.lproj/Localizable.strings; sourceTree = "<group>"; };
6F24475E40CC51CC6CC27993 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = Sources/WireGuardApp/tr.lproj/Localizable.strings; sourceTree = "<group>"; };
31C0BC9131C140B617CA6713 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = Sources/WireGuardApp/ja.lproj/Localizable.strings; sourceTree = "<group>"; };
2F19992DF3CB32BB376853A0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Sources/WireGuardApp/es.lproj/Localizable.strings; sourceTree = "<group>"; };
B42B98244F62B9607F9B45CA /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh-Hant; path = Sources/WireGuardApp/zh-Hant.lproj/Localizable.strings; sourceTree = "<group>"; };
30DA2ED43960DE77912BD89D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh-Hans; path = Sources/WireGuardApp/zh-Hans.lproj/Localizable.strings; sourceTree = "<group>"; };
2A4344354DDBADE335B5FD2D /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = Sources/WireGuardApp/id.lproj/Localizable.strings; sourceTree = "<group>"; };
B829B6E3BE26C748A53A64EE /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = Sources/WireGuardApp/it.lproj/Localizable.strings; sourceTree = "<group>"; };
5042B6E2E62F7B7537D0EE57 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = Sources/WireGuardApp/de.lproj/Localizable.strings; sourceTree = "<group>"; };
7872E185E096988E9990CC29 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = Sources/WireGuardApp/fr.lproj/Localizable.strings; sourceTree = "<group>"; };
36AFA3DAC2091DD81699B978 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = Sources/WireGuardApp/fi.lproj/Localizable.strings; sourceTree = "<group>"; };
9A06FF3EF8255B77287F0195 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = Sources/WireGuardApp/fa.lproj/Localizable.strings; sourceTree = "<group>"; };
A7C540D3D2E36084F9AB8A0E /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = Sources/WireGuardApp/sl.lproj/Localizable.strings; sourceTree = "<group>"; };
241E007502395B1D0666EE3B /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = Sources/WireGuardApp/pl.lproj/Localizable.strings; sourceTree = "<group>"; };
95493F9EF05B71D3B1A5131C /* pa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pa; path = Sources/WireGuardApp/pa.lproj/Localizable.strings; sourceTree = "<group>"; };
C56DE3E0E402E403CA43BF97 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = Sources/WireGuardApp/ko.lproj/Localizable.strings; sourceTree = "<group>"; };
5BE8673E6D8166A17C07E2BC /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = Sources/WireGuardApp/ca.lproj/Localizable.strings; sourceTree = "<group>"; };
63ADFB23B4BDD4ECA5B8E84B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = Sources/WireGuardApp/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
47F144079FFBAE33E6A7320E /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = Sources/WireGuardApp/ro.lproj/Localizable.strings; sourceTree = "<group>"; };
C383A8BE821704F21E30AC2A /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = Sources/WireGuardApp/tr.lproj/Localizable.strings; sourceTree = "<group>"; };
BD397C79F39F133A747A55BB /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = Sources/WireGuardApp/ja.lproj/Localizable.strings; sourceTree = "<group>"; };
88C333FB84302A6942903F37 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Sources/WireGuardApp/es.lproj/Localizable.strings; sourceTree = "<group>"; };
6FE1765921C90E87002690EA /* LocalizationHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationHelper.swift; sourceTree = "<group>"; };
6FE254FA219C10800028284D /* ZipImporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZipImporter.swift; sourceTree = "<group>"; };
6FE254FE219C60290028284D /* ZipExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZipExporter.swift; sourceTree = "<group>"; };
@ -1501,24 +1501,24 @@
6FE1765421C90BBE002690EA /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (
A8FAC495E119A787EE15828E /* zh-Hant */,
30E6E11BE16FC85D1D0D01A4 /* zh-Hans */,
F061DB3DF45406C134EB447E /* id */,
798AA59731469050BB67A452 /* it */,
2B3036C208ACF4E06D7DA53F /* de */,
43D66D9909C915207158175F /* fr */,
7644A930B7CB3B8882BC52FD /* fi */,
937E473CD10EEFE3BC376098 /* fa */,
E4EE4FEC7423A6BEBDE429BC /* sl */,
854D4F78352DD4455C410962 /* pl */,
8215B3EF8B68F0A53E6D8122 /* pa */,
795E9FCC698E54371188E366 /* ko */,
E60BA3A8E202323CDD363B2B /* ca */,
1D38E2B7D24EC0ACEF2C5734 /* ru */,
EE7D06A3CCB7DAEF13330651 /* ro */,
6F24475E40CC51CC6CC27993 /* tr */,
31C0BC9131C140B617CA6713 /* ja */,
2F19992DF3CB32BB376853A0 /* es */,
B42B98244F62B9607F9B45CA /* zh-Hant */,
30DA2ED43960DE77912BD89D /* zh-Hans */,
2A4344354DDBADE335B5FD2D /* id */,
B829B6E3BE26C748A53A64EE /* it */,
5042B6E2E62F7B7537D0EE57 /* de */,
7872E185E096988E9990CC29 /* fr */,
36AFA3DAC2091DD81699B978 /* fi */,
9A06FF3EF8255B77287F0195 /* fa */,
A7C540D3D2E36084F9AB8A0E /* sl */,
241E007502395B1D0666EE3B /* pl */,
95493F9EF05B71D3B1A5131C /* pa */,
C56DE3E0E402E403CA43BF97 /* ko */,
5BE8673E6D8166A17C07E2BC /* ca */,
63ADFB23B4BDD4ECA5B8E84B /* ru */,
47F144079FFBAE33E6A7320E /* ro */,
C383A8BE821704F21E30AC2A /* tr */,
BD397C79F39F133A747A55BB /* ja */,
88C333FB84302A6942903F37 /* es */,
6FE1765521C90BBE002690EA /* Base */,
);
name = Localizable.strings;

View File

@ -3,6 +3,23 @@ set -e
curl -Lo - https://crowdin.com/backend/download/project/wireguard.zip | bsdtar -C Sources/WireGuardApp -x -f - --strip-components 3 wireguard-apple
find Sources/WireGuardApp/*.lproj -type f -empty -delete
find Sources/WireGuardApp/*.lproj -type d -empty -delete
declare -A ALL_BASE
while read -r key eq rest; do
[[ $key == \"* && $key == *\" && $eq == = ]] || continue
ALL_BASE["$key"]="$rest"
done < Sources/WireGuardApp/Base.lproj/Localizable.strings
for f in Sources/WireGuardApp/*.lproj/Localizable.strings; do
unset FOUND
declare -A FOUND
while read -r key eq _; do
[[ $key == \"* && $key == *\" && $eq == = ]] || continue
FOUND["$key"]=1
done < "$f"
for key in "${!ALL_BASE[@]}"; do
[[ ${FOUND["$key"]} -eq 1 ]] && continue
echo "$key = ${ALL_BASE["$key"]}"
done >> "$f"
done < Sources/WireGuardApp/Base.lproj/Localizable.strings
git add Sources/WireGuardApp/*.lproj
declare -A LOCALE_MAP