diff options
author | 2024-09-03 16:56:02 +0200 | |
---|---|---|
committer | 2024-09-04 12:29:33 +0200 | |
commit | 6bea8d5196f4738cd6d999d77f81f065ba516eac (patch) | |
tree | 01a24d190fe48ee4e08259b087fe3d9a64f0dcb2 /locales | |
parent | fetcher: add /noprompt switch (diff) | |
download | wireguard-windows-6bea8d5196f4738cd6d999d77f81f065ba516eac.tar.xz wireguard-windows-6bea8d5196f4738cd6d999d77f81f065ba516eac.zip |
locales: sync with crowdin
Signed-off-by: Simon Rozman <simon@rozman.si>
Diffstat (limited to 'locales')
22 files changed, 15574 insertions, 230 deletions
diff --git a/locales/ca/messages.gotext.json b/locales/ca/messages.gotext.json index fbc227b1..e5a0f488 100644 --- a/locales/ca/messages.gotext.json +++ b/locales/ca/messages.gotext.json @@ -114,6 +114,12 @@ ] }, { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "La icona de WireGuard de la safata del sistema no ha aparegut després de 30 segons.", + "translatorComment": "Copied from source." + }, + { "id": "Now", "message": "Now", "translation": "Ara", @@ -410,6 +416,12 @@ "translatorComment": "Copied from source." }, { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "Els claudàtors han de contenir una adreça IPv6", + "translatorComment": "Copied from source." + }, + { "id": "Invalid MTU", "message": "Invalid MTU", "translation": "MTU invàlida", @@ -444,6 +456,12 @@ ] }, { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "Les claus han de descodificar a exactament 32 bytes", + "translatorComment": "Copied from source." + }, + { "id": "Number must be a number between 0 and 2^64-1: {Err}", "message": "Number must be a number between 0 and 2^64-1: {Err}", "translation": "El nombre ha de estar entre 0 i 2^64-1: {Err}", @@ -472,6 +490,42 @@ "translatorComment": "Copied from source." }, { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "La línia ha d'aparèixer en una secció", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "La clau de configuració no té un separador d'igualtat", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "La clau ha de tenir un valor", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "La clau no és vàlida per la secció [Interface]", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "La clau no és vàlida per la secció [Peer]", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "Una interfície ha de tenir una clau privada", + "translatorComment": "Copied from source." + }, + { "id": "[none specified]", "message": "[none specified]", "translation": "[no especificat]", @@ -490,6 +544,24 @@ "translatorComment": "Copied from source." }, { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "La clau no és vàlida per la secció d'interfície", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "La versió del protocol ha de ser 1", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "La clau no és vàlida per la secció de parell", + "translatorComment": "Copied from source." + }, + { "id": "[EnumerationSeparator]", "message": "[EnumerationSeparator]", "translation": ", ", @@ -514,6 +586,62 @@ "translatorComment": "Copied from source." }, { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "Versió de l'aplicació: {Number}\nVersió de backend Go: {WireGuardGoVersion}\nVersió de Go: {Version_go}-{GOARCH}\nSistema operatiu: {OsName}\nArquitectura: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { "id": "Close", "message": "Close", "translation": "Tanca", @@ -574,6 +702,12 @@ "translatorComment": "Copied from source." }, { + "id": "Scripts:", + "message": "Scripts:", + "translation": "Scripts:", + "translatorComment": "Copied from source." + }, + { "id": "Preshared key:", "message": "Preshared key:", "translation": "Clau precompartida:", @@ -604,6 +738,268 @@ "translatorComment": "Copied from source." }, { + "id": "Transfer:", + "message": "Transfer:", + "translation": "Transferència:", + "translatorComment": "Copied from source." + }, + { + "id": "pre-up", + "message": "pre-up", + "translation": "preactivació", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "postactivació", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "predesactivació", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "postdesactivació", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "deshabilitat, per política", + "translatorComment": "Copied from source." + }, + { + "id": "enabled", + "message": "enabled", + "translation": "habilitat", + "translatorComment": "Copied from source." + }, + { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} rebut, {String_1} enviat", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "Error en determinar l'estat del túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "Error en activar el túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "Error en desactivar el túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Interface: {Name}", + "message": "Interface: {Name}", + "translation": "Interfície: {Name}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "config.Name" + } + ] + }, + { + "id": "Peer", + "message": "Peer", + "translation": "Parell", + "translatorComment": "Copied from source." + }, + { + "id": "Create new tunnel", + "message": "Create new tunnel", + "translation": "Crear un túnel nou", + "translatorComment": "Copied from source." + }, + { + "id": "Edit tunnel", + "message": "Edit tunnel", + "translation": "Editar túnel", + "translatorComment": "Copied from source." + }, + { + "id": "&Name:", + "message": "&Name:", + "translation": "&Nom:", + "translatorComment": "Copied from source." + }, + { + "id": "&Public key:", + "message": "&Public key:", + "translation": "&Clau pública:", + "translatorComment": "Copied from source." + }, + { + "id": "(unknown)", + "message": "(unknown)", + "translation": "(desconegut)", + "translatorComment": "Copied from source." + }, + { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&Bloquejar el trànsit que no passa pel túnel (kill-switch)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "Quan una configuració té exactament un parell, i aquest parell té adreces IP permeses que continguin almenys 0.0.0.0/0 o ::/0, el servei del túnel activa regles de tallafoc per bloquejar tot el trànsit que no es és ni de la interfície del túnel o cap al servidor DNS equivocat, amb excepció per DHCP i NDP.", + "translatorComment": "Copied from source." + }, + { + "id": "&Save", + "message": "&Save", + "translation": "&Desar", + "translatorComment": "Copied from source." + }, + { + "id": "Cancel", + "message": "Cancel", + "translation": "Cancel·lar", + "translatorComment": "Copied from source." + }, + { + "id": "&Configuration:", + "message": "&Configuration:", + "translation": "&Configuració:", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid name", + "message": "Invalid name", + "translation": "Nom invàlid", + "translatorComment": "Copied from source." + }, + { + "id": "A name is required.", + "message": "A name is required.", + "translation": "És necessari un nom.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "El nom del túnel ‘{NewName}’ és invàlid.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "No s'ha pogut llistar els túnels existents", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "El túnel ja existeix", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "Ja existeix un altre túnel amb el nom ‘{NewName}’.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "No s'ha pogut crear una nova configuració", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Error en escriure el fitxer", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "El fitxer ‘{FilePath}’ ja existeix.\n\nEl vols sobreescriure?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "Actiu", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "Activant", + "translatorComment": "Copied from source." + }, + { "id": "Inactive", "message": "Inactive", "translation": "Inactiu", @@ -658,6 +1054,12 @@ "translatorComment": "Copied from source." }, { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "Fitxers de text (*.txt)|*.txt|Tots els fitxers (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { "id": "Export log to file", "message": "Export log to file", "translation": "Exporta registre a fitxer", @@ -708,24 +1110,638 @@ ] }, { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "Error en detectar WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "No ha estat possible esperar que aparegui la finestra de WireGuard: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: Desactivat", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "Estat: Desconegut", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "Adreces: Cap", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Administrar túnels…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&Importar túnel(s) des d'un fitxer…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "&Surt", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&Túnels", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard Activat", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "El túnel {Name} ha estat activat.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard Desactivat", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "El túnel {Name} ha estat desactivat.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "Error en el túnel de WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "Estat: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "Adreces: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "Hi ha una actualització disponible!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "Actualització de WireGuard disponible", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "Hi ha una actualització de WireGuard. Es recomana actualitzar el més aviat millor.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "Túnels", + "translatorComment": "Copied from source." + }, + { + "id": "&Edit", + "message": "&Edit", + "translation": "&Editar", + "translatorComment": "Copied from source." + }, + { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "Afegir &túnel buit…", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "Afegir túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "Eliminar túnel(s) seleccionats", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "Exportar túnels a zip", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "&Alterna", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Exportar tots els túnels a &zip…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Editar túnels &seleccionats…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&Eliminar túnel(s) seleccionats", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "no s'han trobat fitxers de configuració", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "No s'ha pogut importar la configuració seleccionada: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "No s'han pogut enumerar els túnels existents: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "Ja existeix un altre túnel amb el nom ‘{Name}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { + "id": "Unable to import configuration: {LastErr}", + "message": "Unable to import configuration: {LastErr}", + "translation": "No s'ha pogut importar la configuració: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Imported tunnels", + "message": "Imported tunnels", + "translation": "Túnels importats", + "translatorComment": "Copied from source." + }, + { + "id": "Imported {M} tunnels", + "message": "Imported {M} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "M", + "cases": { + "one": { + "msg": "{M} túnel importat" + }, + "other": { + "msg": "{M} túnels importats" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + } + ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "{M} de {N} túnel importat" + }, + "other": { + "msg": "{M} de {N} túnels importats" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "No s'ha pogut crear el túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Eliminar {TunnelCount} túnel" + }, + "other": { + "msg": "Eliminar {TunnelCount} túnels" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Estàs segur que vols eliminar {TunnelCount} túnel?" + }, + "other": { + "msg": "Estàs segur que vols eliminar {TunnelCount} túnels?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "Eliminar túnel ‘{TunnelName}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "Estàs segur que vols eliminar el túnel ‘{TunnelName}’?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} Aquesta acció no es pot desfer.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "No s'ha pogut eliminar el túnel", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "Un túnel no ha estat capaç de ser eliminat: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "No s'ha pogut eliminar els túnels", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "No s'ha pogut eliminar {Lenerrors} túnel." + }, + "other": { + "msg": "No s'ha pogut eliminar {Lenerrors} túnels." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "Fitxers de configuració (*.zip, *.conf)|*.zip;*.conf|Tots els fitxers (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "Importar túnel(s) des d'un fitxer", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "Fitxers ZIP de configuració (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Exportar túnels a zip", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (compilació no signada, sense actualitzacions)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { "id": "Error Exiting WireGuard", "message": "Error Exiting WireGuard", "translation": "Error al sortir de WireGuard", "translatorComment": "Copied from source." }, { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "No s'ha pogut sortir del servei a causa de l'error: {Err}. Pot intentar aturar WireGuard des de l'administrador de serveis.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { "id": "An update to WireGuard is available. It is highly advisable to update without delay.", "message": "An update to WireGuard is available. It is highly advisable to update without delay.", "translation": "Una actualització per WireGuard està disponible. Es recomana actualitzar immediatament.", "translatorComment": "Copied from source." }, { + "id": "Status: Waiting for user", + "message": "Status: Waiting for user", + "translation": "Estat: Esperant a l'usuari", + "translatorComment": "Copied from source." + }, + { "id": "Update Now", "message": "Update Now", "translation": "Actualitza ara", "translatorComment": "Copied from source." }, { + "id": "Status: Waiting for updater service", + "message": "Status: Waiting for updater service", + "translation": "Estat: Esperant el servei d'actualitzacions", + "translatorComment": "Copied from source." + }, + { "id": "Error: {Err}. Please try again.", "message": "Error: {Err}. Please try again.", "translation": "Error: {Err}. Si us plau, torneu-ho a provar.", @@ -746,6 +1762,86 @@ "message": "Status: Complete!", "translation": "Estat: Completat!", "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Framer {F}: failed to decode just-written frame", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: decoded hpack field {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] } ] }
\ No newline at end of file diff --git a/locales/es-ES/messages.gotext.json b/locales/es-ES/messages.gotext.json index a4cff055..c8332e6d 100644 --- a/locales/es-ES/messages.gotext.json +++ b/locales/es-ES/messages.gotext.json @@ -10,7 +10,7 @@ { "id": "(no argument): elevate and install manager service", "message": "(no argument): elevate and install manager service", - "translation": "(sin argumento): eleva e instala el servicio de administrador", + "translation": "(sin argumento): eleve e instale el servicio de administrador", "translatorComment": "Copied from source." }, { @@ -44,12 +44,94 @@ "translatorComment": "Copied from source." }, { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "No fue posible determinar si el proceso se está ejecutando bajo WOW64: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "Debe usar la versión nativa de WireGuard en este equipo.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "No fue posible abrir el token del proceso actual: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "WireGuard solo puede ser usado por usuarios que sean miembros del grupo integrado {AdminGroupName}.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "WireGuard se está ejecutando, pero la interfaz de usuario solo es accesible desde escritorios del grupo integrado {AdminGroupName}.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "El icono WireGuard de la bandeja del sistema no apareció después de 30 segundos.", + "translatorComment": "Copied from source." + }, + { "id": "Now", "message": "Now", "translation": "Ahora", "translatorComment": "Copied from source." }, { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "¡El reloj del sistema ha retrocedido!", + "translatorComment": "Copied from source." + }, + { "id": "{Years} year(s)", "message": "{Years} year(s)", "translation": { @@ -89,7 +171,7 @@ "msg": "{Days} día" }, "other": { - "msg": "{Days} dias" + "msg": "{Days} días" } } } @@ -286,45 +368,81 @@ ] }, { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { "id": "Invalid IP address", "message": "Invalid IP address", - "translation": "Dirección IP inválida", + "translation": "La dirección IP no es válida", "translatorComment": "Copied from source." }, { "id": "Invalid network prefix length", "message": "Invalid network prefix length", - "translation": "Longitud de prefijo de red no válida", + "translation": "La longitud del prefijo de red no es válida", "translatorComment": "Copied from source." }, { "id": "Missing port from endpoint", "message": "Missing port from endpoint", - "translation": "Falta el puerto del extremo", + "translation": "Falta el puerto del Endpoint", "translatorComment": "Copied from source." }, { "id": "Invalid endpoint host", "message": "Invalid endpoint host", - "translation": "Host de endpoint no válido", + "translation": "El host del Endpoint no es válido", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "Los corchetes deben contener una dirección IPv6", "translatorComment": "Copied from source." }, { "id": "Invalid MTU", "message": "Invalid MTU", - "translation": "MTU no valido", + "translation": "La MTU no es válida", "translatorComment": "Copied from source." }, { "id": "Invalid port", "message": "Invalid port", - "translation": "Puerto no válido", + "translation": "El puerto no es válido", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "El Keepalive persistente no es válido", "translatorComment": "Copied from source." }, { "id": "Invalid key: {Err}", "message": "Invalid key: {Err}", - "translation": "Clave no válida: {Err}", + "translation": "La clave no es válida: {Err}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -338,6 +456,124 @@ ] }, { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "Las claves deben decodificar exactamente a 32 bytes", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "El número debe estar entre 0 y 2^64-1: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "Dos comas consecutivas", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "El nombre del túnel no es válido", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "La línea debe aparecer en una sección", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "La clave de configuración no tiene un separador de igualdad", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "La clave debe tener un valor", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "La clave no es válida para la sección [Interface]", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "La clave no es válida para la sección [Peer]", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "Una interfaz debe tener una clave privada", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[ninguno especificado]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "Todos los pares deben tener claves públicas", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "Error al obtener la configuración", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "La clave no es válida para sección de interfaz", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "La versión del protocolo debe ser 1", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "La clave no es válida para la sección de par", + "translatorComment": "Copied from source." + }, + { + "id": "[EnumerationSeparator]", + "message": "[EnumerationSeparator]", + "translation": ", ", + "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." + }, + { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": ", ", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { "id": "About WireGuard", "message": "About WireGuard", "translation": "Acerca de WireGuard", @@ -346,10 +582,66 @@ { "id": "WireGuard logo image", "message": "WireGuard logo image", - "translation": "Imagen del logo de WireGuard", + "translation": "Logotipo de WireGuard", "translatorComment": "Copied from source." }, { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "Versión de la aplicación: {Number}\nVersión de backend Go: {WireGuardGoVersion}\nVersión de Go: {Version_go}-{GOARCH}\nSistema operativo: {OsName}\nArquitectura: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { "id": "Close", "message": "Close", "translation": "Cerrar", @@ -358,7 +650,7 @@ { "id": "♥ &Donate!", "message": "♥ &Donate!", - "translation": "♥ &Donar!", + "translation": "♥ &¡Dona!", "translatorComment": "Copied from source." }, { @@ -410,6 +702,12 @@ "translatorComment": "Copied from source." }, { + "id": "Scripts:", + "message": "Scripts:", + "translation": "Secuencias de comandos:", + "translatorComment": "Copied from source." + }, + { "id": "Preshared key:", "message": "Preshared key:", "translation": "Clave compartida:", @@ -422,6 +720,18 @@ "translatorComment": "Copied from source." }, { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "Endpoint:", + "translatorComment": "Copied from source." + }, + { + "id": "Persistent keepalive:", + "message": "Persistent keepalive:", + "translation": "Keepalive persistente:", + "translatorComment": "Copied from source." + }, + { "id": "Latest handshake:", "message": "Latest handshake:", "translation": "Último saludo:", @@ -430,13 +740,73 @@ { "id": "Transfer:", "message": "Transfer:", - "translation": "Transferir:", + "translation": "Transferencia:", + "translatorComment": "Copied from source." + }, + { + "id": "pre-up", + "message": "pre-up", + "translation": "pre-activación", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "post-activación", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "pre-desactivación", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "post-desactivación", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "inhabilitado, por política", "translatorComment": "Copied from source." }, { "id": "enabled", "message": "enabled", - "translation": "activado", + "translation": "habilitado", + "translatorComment": "Copied from source." + }, + { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} recibido, {String_1} enviado", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "Error al determinar el estado del túnel", "translatorComment": "Copied from source." }, { @@ -470,7 +840,7 @@ { "id": "Peer", "message": "Peer", - "translation": "Pares", + "translation": "Par", "translatorComment": "Copied from source." }, { @@ -504,6 +874,18 @@ "translatorComment": "Copied from source." }, { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&Bloquear tráfico sin tunelizar (interruptor de apagado)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "Cuando una configuración tiene exactamente un par, y ese par tiene IPs permitidas que contengan al menos 0.0.0.0/0 o ::/0, entonces el servicio del túnel activa reglas de firewall para bloquear todo el tráfico que no es hacia ni desde la interfaz del túnel o hacia al servidor DNS equivocado, con excepciones especiales para DHCP y NDP.", + "translatorComment": "Copied from source." + }, + { "id": "&Save", "message": "&Save", "translation": "&Guardar", @@ -524,7 +906,7 @@ { "id": "Invalid name", "message": "Invalid name", - "translation": "Nombre no válido", + "translation": "El nombre no es válido", "translatorComment": "Copied from source." }, { @@ -550,6 +932,62 @@ ] }, { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "No fue posible listar los túneles existentes", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "El túnel ya existe", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "Ya existe otro túnel con el nombre ‘{NewName}’.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "No fue posible crear una nueva configuración", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Error al escribir el archivo", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "El archivo ‘{FilePath}’ ya existe.\n\n¿Desea sobrescribir el archivo?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { "id": "Active", "message": "Active", "translation": "Activo", @@ -594,7 +1032,7 @@ { "id": "Select &all", "message": "Select &all", - "translation": "Seleccionar &todo", + "translation": "Seleccionar &todos", "translatorComment": "Copied from source." }, { @@ -612,7 +1050,7 @@ { "id": "Log message", "message": "Log message", - "translation": "Registro de mensajes", + "translation": "Mensaje del registro", "translatorComment": "Copied from source." }, { @@ -624,7 +1062,7 @@ { "id": "Export log to file", "message": "Export log to file", - "translation": "Exportar archivo de registro", + "translation": "Exportar registro a archivo", "translatorComment": "Copied from source." }, { @@ -656,6 +1094,44 @@ ] }, { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (desactualizado)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "Error al detectar WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "No fue posible esperar a que aparezca la ventana de WireGuard: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { "id": "WireGuard: Deactivated", "message": "WireGuard: Deactivated", "translation": "WireGuard: Desactivado", @@ -674,6 +1150,18 @@ "translatorComment": "Copied from source." }, { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Administrar túneles…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&Importar túnel(es) desde archivo…", + "translatorComment": "Copied from source." + }, + { "id": "E&xit", "message": "E&xit", "translation": "&Salir", @@ -692,12 +1180,44 @@ "translatorComment": "Copied from source." }, { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "El túnel {Name} ha sido activado.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { "id": "WireGuard Deactivated", "message": "WireGuard Deactivated", - "translation": "WireGuard: Desactivado", + "translation": "WireGuard Desactivado", "translatorComment": "Copied from source." }, { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "El túnel {Name} ha sido desactivado.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { "id": "WireGuard Tunnel Error", "message": "WireGuard Tunnel Error", "translation": "Error en el túnel de WireGuard", @@ -754,7 +1274,7 @@ { "id": "An Update is Available!", "message": "An Update is Available!", - "translation": "Hay una actualización disponible!", + "translation": "¡Hay una actualización disponible!", "translatorComment": "Copied from source." }, { @@ -766,7 +1286,7 @@ { "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", - "translation": "Ya está disponible una actualización de WireGuard. Se recomienda actualizar lo antes posible.", + "translation": "Está disponible una actualización de WireGuard. Se recomienda actualizar lo antes posible.", "translatorComment": "Copied from source." }, { @@ -784,34 +1304,74 @@ { "id": "Add &empty tunnel…", "message": "Add &empty tunnel…", - "translation": "Añadir &túnel vacío…", + "translation": "Agregar &túnel vacío…", "translatorComment": "Copied from source." }, { "id": "Add Tunnel", "message": "Add Tunnel", - "translation": "Añadir túnel", + "translation": "Agregar túnel", "translatorComment": "Copied from source." }, { "id": "Remove selected tunnel(s)", "message": "Remove selected tunnel(s)", - "translation": "Eliminar túneles seleccionados", + "translation": "Eliminar túnel(es) seleccionados", "translatorComment": "Copied from source." }, { "id": "Export all tunnels to zip", "message": "Export all tunnels to zip", - "translation": "Exportar todos los túneles a zip", + "translation": "Exportar todos los túneles a ZIP", "translatorComment": "Copied from source." }, { "id": "&Toggle", "message": "&Toggle", - "translation": "&Alternar", + "translation": "&Cambiar estado", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Exportar todos los túneles a &ZIP…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Editar túneles &seleccionados…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&Eliminar túnel(es) seleccionados", "translatorComment": "Copied from source." }, { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "no se encontraron archivos de configuración", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "No se puede importar la configuración seleccionada: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { "id": "Could not enumerate existing tunnels: {LastErr}", "message": "Could not enumerate existing tunnels: {LastErr}", "translation": "No se pueden enumerar los túneles existentes: {LastErr}", @@ -846,7 +1406,7 @@ { "id": "Unable to import configuration: {LastErr}", "message": "Unable to import configuration: {LastErr}", - "translation": "Imposible importar la configuración: {LastErr}", + "translation": "No fue posible importar la configuración: {LastErr}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -932,7 +1492,7 @@ { "id": "Unable to create tunnel", "message": "Unable to create tunnel", - "translation": "No se pudo crear el túnel", + "translation": "No fue posible crear el túnel", "translatorComment": "Copied from source." }, { @@ -964,6 +1524,34 @@ ] }, { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "¿Está seguro de que querer eliminar {TunnelCount} túnel?" + }, + "other": { + "msg": "¿Está seguro de que querer eliminar {TunnelCount} túneles?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { "id": "Delete tunnel ‘{TunnelName}’", "message": "Delete tunnel ‘{TunnelName}’", "translation": "Eliminar túnel ‘{TunnelName}’", @@ -998,7 +1586,7 @@ { "id": "{Question} You cannot undo this action.", "message": "{Question} You cannot undo this action.", - "translation": "{Question} No puedes deshacer esta acción.", + "translation": "{Question} No puede deshacer esta acción.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1014,13 +1602,13 @@ { "id": "Unable to delete tunnel", "message": "Unable to delete tunnel", - "translation": "No se pudo eliminar el tunel", + "translation": "No fue posible eliminar el túnel", "translatorComment": "Copied from source." }, { "id": "A tunnel was unable to be removed: {Error}", "message": "A tunnel was unable to be removed: {Error}", - "translation": "No se ha podido eliminar un túnel: {Error}", + "translation": "Un túnel no pudo ser eliminado: {Error}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1036,7 +1624,103 @@ { "id": "Unable to delete tunnels", "message": "Unable to delete tunnels", - "translation": "Imposible eliminar túneles", + "translation": "No fue posible eliminar los túneles", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "No fue posible eliminar {Lenerrors} túnel." + }, + "other": { + "msg": "No fue posible eliminar {Lenerrors} túneles." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "Archivos de configuración (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "Importar túnel(es) desde archivo", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "Archivos ZIP de configuración (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Exportar túneles a ZIP", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (compilación no firmada, sin actualizaciones)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "Error al salir de WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "No fue posible terminar el servicio debido a: {Err}. Puede intentar detener WireGuard desde el administrador de servicios.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "Hay una actualización de Wireguard disponible. Es muy recomendable actualizar de inmediato.", "translatorComment": "Copied from source." }, { @@ -1048,13 +1732,19 @@ { "id": "Update Now", "message": "Update Now", - "translation": "Actualizar", + "translation": "Actualizar ahora", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for updater service", + "message": "Status: Waiting for updater service", + "translation": "Estado: Esperando al servicio de actualización", "translatorComment": "Copied from source." }, { "id": "Error: {Err}. Please try again.", "message": "Error: {Err}. Please try again.", - "translation": "Error: {Err}. Inténtalo de nuevo.", + "translation": "Error: {Err}. Por favor, intente de nuevo.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1070,8 +1760,88 @@ { "id": "Status: Complete!", "message": "Status: Complete!", - "translation": "Estado: Completo!", + "translation": "Estado: ¡Completo!", "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Framer {F}: failed to decode just-written frame", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: decoded hpack field {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] } ] }
\ No newline at end of file diff --git a/locales/et/messages.gotext.json b/locales/et/messages.gotext.json new file mode 100644 index 00000000..b06b42b7 --- /dev/null +++ b/locales/et/messages.gotext.json @@ -0,0 +1,1847 @@ +{ + "language": "et", + "messages": [ + { + "id": "Error", + "message": "Error", + "translation": "Viga", + "translatorComment": "Copied from source." + }, + { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(tühi muutuja): paigalda haldusteenus ülemõigustega", + "translatorComment": "Copied from source." + }, + { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "Kasutus: {Args0} [ \n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "Käsurea valikud", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "Pole võimalik tuvastada, kas protsess töötab WOW64 kontekstis: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "Peate kasutama antud arvutiga sobivat WireGuard'i versiooni.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "Praeguse protsessi tähist ei saa avada: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "WireGuard'i võivad kasutada ainult kasutajad, kes on sisseehitatud {AdminGroupName} grupi liikmed.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "WireGuard töötab, aga kasutajaliides on ainult ligipääsetav sisseehitatud {AdminGroupName} grupi töölaudadest.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "WireGuard'i süsteemisalve ikoon ei ilmunud 30 sekundi jooksul.", + "translatorComment": "Copied from source." + }, + { + "id": "Now", + "message": "Now", + "translation": "Nüüd", + "translatorComment": "Copied from source." + }, + { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "Süsteemi kella on tagasi keritud!", + "translatorComment": "Copied from source." + }, + { + "id": "{Years} year(s)", + "message": "{Years} year(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Years", + "cases": { + "one": { + "msg": "{Years} aasta" + }, + "other": { + "msg": "{Years} aastat" + } + } + } + }, + "placeholders": [ + { + "id": "Years", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "years" + } + ] + }, + { + "id": "{Days} day(s)", + "message": "{Days} day(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Days", + "cases": { + "one": { + "msg": "{Days} päev" + }, + "other": { + "msg": "{Days} päeva" + } + } + } + }, + "placeholders": [ + { + "id": "Days", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "days" + } + ] + }, + { + "id": "{Hours} hour(s)", + "message": "{Hours} hour(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Hours", + "cases": { + "one": { + "msg": "{Hours} tund" + }, + "other": { + "msg": "{Hours} tundi" + } + } + } + }, + "placeholders": [ + { + "id": "Hours", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "hours" + } + ] + }, + { + "id": "{Minutes} minute(s)", + "message": "{Minutes} minute(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Minutes", + "cases": { + "one": { + "msg": "{Minutes} minut" + }, + "other": { + "msg": "{Minutes} minutit" + } + } + } + }, + "placeholders": [ + { + "id": "Minutes", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "minutes" + } + ] + }, + { + "id": "{Seconds} second(s)", + "message": "{Seconds} second(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Seconds", + "cases": { + "one": { + "msg": "{Seconds} sekund" + }, + "other": { + "msg": "{Seconds} sekundit" + } + } + } + }, + "placeholders": [ + { + "id": "Seconds", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "seconds" + } + ] + }, + { + "id": "{Timestamp} ago", + "message": "{Timestamp} ago", + "translation": "{Timestamp} tagasi", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Timestamp", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "timestamp" + } + ] + }, + { + "id": "{Bytes} B", + "message": "{Bytes} B", + "translation": "{Bytes} B", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Bytes", + "string": "%[1]d", + "type": "golang.zx2c4.com/wireguard/windows/conf.Bytes", + "underlyingType": "uint64", + "argNum": 1, + "expr": "b" + } + ] + }, + { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { + "id": "Invalid IP address", + "message": "Invalid IP address", + "translation": "Sobimatu IP-aadress", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "Sobimatu alamvõrgu maski pikkus", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "Lõpp-punktis on port määramata", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "Sobimatu lõpp-punkti aadress", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "Looksulud peavad sisaldama IPv6-aadressi", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid MTU", + "message": "Invalid MTU", + "translation": "Sobimatu MTU", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid port", + "message": "Invalid port", + "translation": "Sobimatu port", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "Sobimatu kestva ühendushoidiku väärtus", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key: {Err}", + "message": "Invalid key: {Err}", + "translation": "Sobimatu võti: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "Võtmed peavad dekodeerima täpselt 32 baidi suuruseks", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "Number peab olema väärtus 0 ja 2^64-1 vahel: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "Kaks koma järjest", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "Tunneli nimi pole sobilik", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "Rida peab olemas olema lõigu sees", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "Seadistusvõtmel on võrdusmärk eraldajana puudu", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "Võti peab omama väärtust", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "Sobimatu võti [Interface] lõigus", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "Sobimatu võti [Peer] lõigus", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "Liides peab omama privaatvõtit", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[pole määratud]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "Kõik partnerid peavad omama avalikke võtmeid", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "Seadistuste saamisel ilmnes viga", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "Sobimatu võti liidese lõigus", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "Protokolli versioon peab olema 1", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "Sobimatu võti partneri lõigus", + "translatorComment": "Copied from source." + }, + { + "id": "[EnumerationSeparator]", + "message": "[EnumerationSeparator]", + "translation": ", ", + "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." + }, + { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": ", ", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { + "id": "About WireGuard", + "message": "About WireGuard", + "translation": "WireGuard'ist", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "WireGuard logo pilt", + "translatorComment": "Copied from source." + }, + { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "Programmi versioon: {Number}\nGo taustsüsteemi versioon: {WireGuardGoVersion}\nGo versioon: {Version_go}-{GOARCH}\nOperatsioonisüsteem: {OsName}\nArhitektuur: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { + "id": "Close", + "message": "Close", + "translation": "Sulge", + "translatorComment": "Copied from source." + }, + { + "id": "♥ &Donate!", + "message": "♥ &Donate!", + "translation": "♥ &Anneta!", + "translatorComment": "Copied from source." + }, + { + "id": "Status:", + "message": "Status:", + "translation": "Staatus:", + "translatorComment": "Copied from source." + }, + { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "&Ühendu lahti", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&Ühenda", + "translatorComment": "Copied from source." + }, + { + "id": "Public key:", + "message": "Public key:", + "translation": "Avalik võti:", + "translatorComment": "Copied from source." + }, + { + "id": "Listen port:", + "message": "Listen port:", + "translation": "Kuulamisport:", + "translatorComment": "Copied from source." + }, + { + "id": "MTU:", + "message": "MTU:", + "translation": "MTU:", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses:", + "message": "Addresses:", + "translation": "Aadressid:", + "translatorComment": "Copied from source." + }, + { + "id": "DNS servers:", + "message": "DNS servers:", + "translation": "DNS-serverid:", + "translatorComment": "Copied from source." + }, + { + "id": "Scripts:", + "message": "Scripts:", + "translation": "Skriptid:", + "translatorComment": "Copied from source." + }, + { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "Eeljagatud võti:", + "translatorComment": "Copied from source." + }, + { + "id": "Allowed IPs:", + "message": "Allowed IPs:", + "translation": "Lubatud IP-aadressid:", + "translatorComment": "Copied from source." + }, + { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "Lõpp-punkt:", + "translatorComment": "Copied from source." + }, + { + "id": "Persistent keepalive:", + "message": "Persistent keepalive:", + "translation": "Kestev ühendushoidik:", + "translatorComment": "Copied from source." + }, + { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "Värskeim kätlus:", + "translatorComment": "Copied from source." + }, + { + "id": "Transfer:", + "message": "Transfer:", + "translation": "Ülekanded:", + "translatorComment": "Copied from source." + }, + { + "id": "pre-up", + "message": "pre-up", + "translation": "enne ühendumist", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "pärast ühendumist", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "enne lahti ühendumist", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "pärast lahti ühendumist", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "keelatud, poliitika põhiselt", + "translatorComment": "Copied from source." + }, + { + "id": "enabled", + "message": "enabled", + "translation": "lubatud", + "translatorComment": "Copied from source." + }, + { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} vastu võetud, {String_1} saadetud", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "Tunneli oleku tuvastamine ebaõnnestus", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "Tunneli ühendamine ebaõnnestus", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "Tunneli lahti ühendamine ebaõnnestus", + "translatorComment": "Copied from source." + }, + { + "id": "Interface: {Name}", + "message": "Interface: {Name}", + "translation": "Liides: {Name}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "config.Name" + } + ] + }, + { + "id": "Peer", + "message": "Peer", + "translation": "Partner", + "translatorComment": "Copied from source." + }, + { + "id": "Create new tunnel", + "message": "Create new tunnel", + "translation": "Loo uus tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "Edit tunnel", + "message": "Edit tunnel", + "translation": "Muuda tunnelit", + "translatorComment": "Copied from source." + }, + { + "id": "&Name:", + "message": "&Name:", + "translation": "&Nimi:", + "translatorComment": "Copied from source." + }, + { + "id": "&Public key:", + "message": "&Public key:", + "translation": "&Avalik võti:", + "translatorComment": "Copied from source." + }, + { + "id": "(unknown)", + "message": "(unknown)", + "translation": "(tundmatu)", + "translatorComment": "Copied from source." + }, + { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&Keela tunneldamata liiklus (kaitselüliti)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "Kui seadistuses on ainult üks partner ning sellel partneril on lubatud IP-aadresside seas määratud vähemalt üks 0.0.0.0/0 või ::/0 aadress, siis tunneliteenus lülitab sisse tulemüürireeglistiku, mis keelab kogu liikluse, mis pole pärit tunneliliidesest ega suundu selle poole või liigub vale DNS-serveri suunas. DHCP ja NDP jaoks on loodud erandid.", + "translatorComment": "Copied from source." + }, + { + "id": "&Save", + "message": "&Save", + "translation": "&Salvesta", + "translatorComment": "Copied from source." + }, + { + "id": "Cancel", + "message": "Cancel", + "translation": "Loobu", + "translatorComment": "Copied from source." + }, + { + "id": "&Configuration:", + "message": "&Configuration:", + "translation": "&Seadistus:", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid name", + "message": "Invalid name", + "translation": "Sobimatu nimi", + "translatorComment": "Copied from source." + }, + { + "id": "A name is required.", + "message": "A name is required.", + "translation": "Nimi on kohustuslik.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "Tunneli nimi '{NewName}' on sobimatu.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "Olemasolevaid tunneleid ei saa loetleda", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "Tunnel on juba olemas", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "Tunnel nimega '{NewName}' juba on olemas.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "Uue seadistuse loomine ebaõnnestus", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Faili kirjutamine ebaõnnestus", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "Fail nimega '{FilePath}' on juba olemas.\n\nKas soovid selle üle kirjutada?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "Ühenduses", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "Ühendumas", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "Jõudeolekus", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "Lahti ühendumas", + "translatorComment": "Copied from source." + }, + { + "id": "Unknown state", + "message": "Unknown state", + "translation": "Tundmatu olek", + "translatorComment": "Copied from source." + }, + { + "id": "Log", + "message": "Log", + "translation": "Logi", + "translatorComment": "Copied from source." + }, + { + "id": "&Copy", + "message": "&Copy", + "translation": "&Kopeeri", + "translatorComment": "Copied from source." + }, + { + "id": "Select &all", + "message": "Select &all", + "translation": "Vali &kõik", + "translatorComment": "Copied from source." + }, + { + "id": "&Save to file…", + "message": "&Save to file…", + "translation": "&Salvesta faili…", + "translatorComment": "Copied from source." + }, + { + "id": "Time", + "message": "Time", + "translation": "Aeg", + "translatorComment": "Copied from source." + }, + { + "id": "Log message", + "message": "Log message", + "translation": "Logisõnum", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "Tekstifailid (*.txt)|*.txt|Kõik failid (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "Ekspordi logid faili", + "translatorComment": "Copied from source." + }, + { + "id": "&About WireGuard…", + "message": "&About WireGuard…", + "translation": "WireGu&ard'ist…", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "Tunneli viga", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nLisainformatsiooni saamiseks palun vaadake logisid.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (uuendamata)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "WireGuard'i tuvastusviga", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "WireGuard'i akna ilmumise ootamine ebaõnnestus: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: Lahti ühendatud", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "Staatus: Tundmatu olek", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "Aadressid: Pole", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Halda tunneleid…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&Impordi tunnel(id) failist…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "Sul&e", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&Tunnelid", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard ühendatud", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "Tunnel '{Name}' on ühendatud.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard lahti ühendatud", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "Tunnel '{Name}' on lahti ühendatud.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "WireGuard tunneli viga", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "Staatus: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "Aadressid: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "Uuendus on saadaval!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "WireGuard uuendus saadaval", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "WireGuard'i uuendus on nüüd saadaval. Soovitame teil esimesel võimalusel uuendada.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "Tunnelid", + "translatorComment": "Copied from source." + }, + { + "id": "&Edit", + "message": "&Edit", + "translation": "&Muuda", + "translatorComment": "Copied from source." + }, + { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "Lisa tühi tunn&el…", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "Lisa tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "Eemalda valitud tunnel(id)", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "Ekspordi kõik tunnelid zip-faili", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "Lüli&tu ümber", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Ekspordi kõik tunnelid &zip-faili…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Muuda &valitud tunnelit…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&Eemalda valitud tunnel(id)", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "ühtegi seadistusfaili ei leitud", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "Pole võimeline importima valitud seadistusfaili: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "Pole võimeline loetlema olemasolevaid tunneleid: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "Tunnel nimega '{Name}' on juba olemas", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { + "id": "Unable to import configuration: {LastErr}", + "message": "Unable to import configuration: {LastErr}", + "translation": "Seadistuse import ebaõnnestus: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Imported tunnels", + "message": "Imported tunnels", + "translation": "Imporditud tunnelid", + "translatorComment": "Copied from source." + }, + { + "id": "Imported {M} tunnels", + "message": "Imported {M} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "M", + "cases": { + "one": { + "msg": "Imporditud {M} tunnel" + }, + "other": { + "msg": "Importitud {M} tunnelit" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + } + ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "Imporditud {M} {N}-st tunnelist" + }, + "other": { + "msg": "Imporditud {M} {N}-st tunnelist" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "Tunnelit ei saa luua", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Kustuta {TunnelCount} tunnel" + }, + "other": { + "msg": "Kustuta {TunnelCount} tunnelit" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Kas oled kindel, et soovid kustutada {TunnelCount} tunneli?" + }, + "other": { + "msg": "Kas oled kindel, et soovid kustutada {TunnelCount} tunnelit?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "Kustuta tunnel '{TunnelName}'", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "Kas oled kindel, et soovid kustutada tunneli nimega '{TunnelName}'?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} Seda tegevust ei saa tagasi võtta.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "Tunnelit ei saa kustutada", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "Tunnelit ei saanud kustutada: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "Tunneleid ei saa kustutada", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "Ei saanud eemaldada {Lenerrors} tunnelit." + }, + "other": { + "msg": "Ei saanud eemaldada {Lenerrors} tunnelit." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "Seadistusfailid (*.zip, *.conf)|*.zip;*.conf|Kõik failid (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "Impordi tunnel(id) failist", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "Pakendatud seadistusfailid (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Ekspordi tunnelid zip-faili", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (allkirjastamata kompilatsioon, uuendusi pole)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "Viga WireGuard'i sulgemisel", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "Teenuse lõpetamine ebaõnnestus järgneva tõttu: {Err}. Võid proovida WireGuard'i lõpetada teenusehaldurist.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "WireGuard'ile on uuendus saadaval. Sügavalt soovitame uuendada niipea kui võimalik.", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for user", + "message": "Status: Waiting for user", + "translation": "Staatus: Ootan kasutaja järel", + "translatorComment": "Copied from source." + }, + { + "id": "Update Now", + "message": "Update Now", + "translation": "Uuenda nüüd", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for updater service", + "message": "Status: Waiting for updater service", + "translation": "Staatus: Ootan uuendusteenuse järel", + "translatorComment": "Copied from source." + }, + { + "id": "Error: {Err}. Please try again.", + "message": "Error: {Err}. Please try again.", + "translation": "Viga: {Err}. Palun proovige uuesti.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Status: Complete!", + "message": "Status: Complete!", + "translation": "Staatus: Valmis!", + "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Kadeerija {F}: värske kaadri dekodeerimine ebaõnnestus", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: Kadeerija {F}: kirjutas {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: Kadeerija {Fr}: luges {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: dekodeeritud hpack väli {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] + } + ] +}
\ No newline at end of file diff --git a/locales/fa/messages.gotext.json b/locales/fa/messages.gotext.json index f0918cc7..95744520 100644 --- a/locales/fa/messages.gotext.json +++ b/locales/fa/messages.gotext.json @@ -8,18 +8,130 @@ "translatorComment": "Copied from source." }, { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(بدون ورودیی): سرویس مدیریت را ارتقا و نصب کنید", + "translatorComment": "Copied from source." + }, + { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "استفاده: {Args0} [\n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { "id": "Command Line Options", "message": "Command Line Options", "translation": "گزینههای خط فرمان", "translatorComment": "Copied from source." }, { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "ناتوان در ارزیابی اینکه فرآیند تحت WOW64 کار می کند: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "شما باید از نگارش بومی وایرگارد بر روی این رایانه استفاده کنید.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "رمز فرآیند فعلی باز نشد: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "وایرگارد فقط توسط کاربرانی که عضو گروه {AdminGroupName} هستند ممکن است استفاده شود.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "وایرگارد در حال اجرا است، اما رابط کاربری فقط از دسکتاپ های گروه {AdminGroupName} قابل دسترسی است.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "ایکون وایرگارد در سینی سیستم ،بعد از 30 ثانیه ظاهر نشد.", + "translatorComment": "Copied from source." + }, + { "id": "Now", "message": "Now", "translation": "هم اکنون", "translatorComment": "Copied from source." }, { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "زمان سیستم شما عقب است!", + "translatorComment": "Copied from source." + }, + { "id": "{Years} year(s)", "message": "{Years} year(s)", "translation": { @@ -192,12 +304,124 @@ ] }, { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { "id": "Invalid IP address", "message": "Invalid IP address", "translation": "نشانی آیپی نامعتبر است", "translatorComment": "Copied from source." }, { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "طول پیشوند شبکه نامعتبر است", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "پورت از نقطه پایانی وجود ندارد", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "میزبان نقطه پایانی نامعتبر است", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "براکتها باید حاوی آدرس IPv6 باشند", + "translatorComment": "Copied from source." + }, + { "id": "Invalid MTU", "message": "Invalid MTU", "translation": "MTU نامعتبر است", @@ -210,12 +434,98 @@ "translatorComment": "Copied from source." }, { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "مقدار کنترلر وصل بودن مجاز نیست", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key: {Err}", + "message": "Invalid key: {Err}", + "translation": "کلید نامعتبر: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "کلیدها باید دقیقا به ۳۲ بایت رمزگشایی شوند", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "عدد باید عددی بین 0 و 2^64-1 باشد: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "دو کاما پشت سر هم", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "نام تونل معتبر نیست", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "خط باید در یک بخش رخ دهد", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "کلید پیکربندی یک جداکننده برابر ندارد", + "translatorComment": "Copied from source." + }, + { "id": "Key must have a value", "message": "Key must have a value", "translation": "کلید باید یک مقدار داشته باشد", "translatorComment": "Copied from source." }, { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "کلید برای رابط بخش [Interface] نامعتبر است", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "کلید برای رابط بخش [Peer] نامعتبر است", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "یک رابط باید یک کلید خصوصی داشته باشد", + "translatorComment": "Copied from source." + }, + { "id": "[none specified]", "message": "[none specified]", "translation": "[مشخص نشده]", @@ -234,6 +544,24 @@ "translatorComment": "Copied from source." }, { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "کلید برای بخش [Interface] نامعتبر است", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "نسخه پروتکل باید 1 باشد", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "کلید برای بخش طرفین نامعتبر است", + "translatorComment": "Copied from source." + }, + { "id": "[EnumerationSeparator]", "message": "[EnumerationSeparator]", "translation": "، ", @@ -252,6 +580,68 @@ "translatorComment": "Copied from source." }, { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "تصویر لوگوی WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "ورژن برنامه: {Number}\nورژن زبان گو در بطن:{WireGuardGoVersion}\nورژن زبان گو:{Version_go}-{GOARCH}\nسیستم عامل: {OsName}\nمعماری: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { "id": "Close", "message": "Close", "translation": "بستن", @@ -312,6 +702,12 @@ "translatorComment": "Copied from source." }, { + "id": "Scripts:", + "message": "Scripts:", + "translation": "اسکریپتها:", + "translatorComment": "Copied from source." + }, + { "id": "Preshared key:", "message": "Preshared key:", "translation": "کلید از پیش تقسیم شده:", @@ -336,18 +732,96 @@ "translatorComment": "Copied from source." }, { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "آخرین دست دادن:", + "translatorComment": "Copied from source." + }, + { "id": "Transfer:", "message": "Transfer:", "translation": "انتقال:", "translatorComment": "Copied from source." }, { + "id": "pre-up", + "message": "pre-up", + "translation": "پیشنیاز", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "پس نیاز برقراری", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "پیشنیاز قطعی", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "پسنیاز قطعی", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "غیر فعال، بر اساس خط مشی", + "translatorComment": "Copied from source." + }, + { "id": "enabled", "message": "enabled", "translation": "فعال شده", "translatorComment": "Copied from source." }, { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} دریافت شد، {String_1} ارسال شد", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "وضعیت تونل تعیین نشده است", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "فعال سازی تونل ناموفق بود", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "غیرفعال سازی تونل ناموفق بود", + "translatorComment": "Copied from source." + }, + { "id": "Interface: {Name}", "message": "Interface: {Name}", "translation": "رابط: {Name}", @@ -400,6 +874,18 @@ "translatorComment": "Copied from source." }, { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&مسدود کردن ترافیک تونل نشده (سوئیچ مرگ)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "هنگامی که یک پیکربندی فقط یک peer داشته باشد و آن peer دارای IP های مجاز باشد که حداقل یکی از 0.0.0.0/0 یا ::/0 را شامل می شود، سرویس تونل مجموعه ای از قوانین فایروال را درگیر می کند تا تمام ترافیکی که نه به و نه از آن peer و یا به سرور DNS اشتباهی است را را مسدود میکند. ، با استثناء تعریف ویژه برای DHCP و NDP.", + "translatorComment": "Copied from source." + }, + { "id": "&Save", "message": "&Save", "translation": "&ذخیره", @@ -430,6 +916,22 @@ "translatorComment": "Copied from source." }, { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "تونل با نام '{NewName}' نامعتبر است.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { "id": "Unable to list existing tunnels", "message": "Unable to list existing tunnels", "translation": "نمیتوان تونلهای موجود را فهرست کرد", @@ -442,6 +944,50 @@ "translatorComment": "Copied from source." }, { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "تونل دیگری با نام '{NewName}' وجود دارد.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "ناتوان در ایجاد پیکربندی جدید", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "نوشتن پرونده انجام نشد", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "پرونده «{FilePath}» از قبل وجود دارد.\n\nآیا میخواهید آن را بازنویسی کنید؟", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { "id": "Active", "message": "Active", "translation": "فعال", @@ -484,6 +1030,12 @@ "translatorComment": "Copied from source." }, { + "id": "Select &all", + "message": "Select &all", + "translation": "انتخاب همه", + "translatorComment": "Copied from source." + }, + { "id": "&Save to file…", "message": "&Save to file…", "translation": "&ذخیره در پرونده…", @@ -502,6 +1054,12 @@ "translatorComment": "Copied from source." }, { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "پروندههای متنی (*.txt)|*.txt|همه پروندهها (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { "id": "Export log to file", "message": "Export log to file", "translation": "برونبرد گزارش رویداد به پرونده", @@ -520,6 +1078,66 @@ "translatorComment": "Copied from source." }, { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nلطفا برای اطلاعات بیشتر به گزارش رویداد مراجعه کنید.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (قدیمی)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "وقوع اشکال در وایرگارد", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "نمیتوان منتظر ماند تا پنجره WireGuard ظاهر شود: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: غیر فعال شده است", + "translatorComment": "Copied from source." + }, + { "id": "Status: Unknown", "message": "Status: Unknown", "translation": "وضعیت: ناشناخته", @@ -538,15 +1156,33 @@ "translatorComment": "Copied from source." }, { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&وارد کردن تونل(ها) از پرونده…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "خروج", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&تونلها", + "translatorComment": "Copied from source." + }, + { "id": "WireGuard Activated", "message": "WireGuard Activated", - "translation": "WireGuard فعالشد", + "translation": "WireGuard فعال شد", "translatorComment": "Copied from source." }, { "id": "The {Name} tunnel has been activated.", "message": "The {Name} tunnel has been activated.", - "translation": "تونل {Name} فعالشده.", + "translation": "تونل {Name} فعال شده است.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -566,12 +1202,44 @@ "translatorComment": "Copied from source." }, { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "تونل {Name} غیرفعال شده است.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { "id": "WireGuard Tunnel Error", "message": "WireGuard Tunnel Error", "translation": "خطای تونل WireGuard", "translatorComment": "Copied from source." }, { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { "id": "Status: {StateText}", "message": "Status: {StateText}", "translation": "وضعیت: {StateText}", @@ -588,6 +1256,22 @@ ] }, { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "نشانیها: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { "id": "An Update is Available!", "message": "An Update is Available!", "translation": "یک بهروزرسانی در دسترس است!", @@ -600,6 +1284,12 @@ "translatorComment": "Copied from source." }, { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "بهروزرسانی WireGuard اکنون در دسترس است. به شما توصیه میشود در اسرع وقت بهروزرسانی کنید.", + "translatorComment": "Copied from source." + }, + { "id": "Tunnels", "message": "Tunnels", "translation": "تونلها", @@ -636,12 +1326,52 @@ "translatorComment": "Copied from source." }, { + "id": "&Toggle", + "message": "&Toggle", + "translation": "تغییر وضعیت", + "translatorComment": "Copied from source." + }, + { "id": "Export all tunnels to &zip…", "message": "Export all tunnels to &zip…", "translation": "برونبری همه تونلها به &زیپ…", "translatorComment": "Copied from source." }, { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "ویرایش تونل انتخابی…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&حذف تونل(های) انتخاب شده", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "هیچ فایل پیکربندی یافت نشد", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "تنظیمات انتخاب شده قابل واردکردن نیست: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { "id": "Imported tunnels", "message": "Imported tunnels", "translation": "تونلهای وارد شده", @@ -812,7 +1542,7 @@ { "id": "Status: Waiting for updater service", "message": "Status: Waiting for updater service", - "translation": "وضعیت: درانتظار برای سرویس بهروزرسانی", + "translation": "وضعیت: درانتظار برای سرویس بهروزرسان", "translatorComment": "Copied from source." }, { diff --git a/locales/fi/messages.gotext.json b/locales/fi/messages.gotext.json index 59521b02..e0583a6c 100644 --- a/locales/fi/messages.gotext.json +++ b/locales/fi/messages.gotext.json @@ -8,6 +8,118 @@ "translatorComment": "Copied from source." }, { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(ei määrityksiä): suorita järjestelmäoikeuksilla ja asenna hallintapalvelu", + "translatorComment": "Copied from source." + }, + { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "Käyttö: {Args0} [\n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "Komentorivin valinnat", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "Ei pystytä määrittämään mikäli prosessia suoritetaan WOW64-järjestelmän alaisuudessa: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "Tällä tietokoneella voi käyttää vain WireGuardin natiivia versiota.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "Ei voida avata tämänhetkisen prosessin tokenia: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "Ainoastaan sisäänrakennetun ryhmän {AdminGroupName} jäsenet voivat käyttää WireGuardia.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "WireGuard on käynnissä, mutta käyttöliittymä on vain sisäänrakennetun ryhmän {AdminGroupName} käytettävissä.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "WireGuardin ilmoitusalueen kuvake ei ilmestynyt 30 sekunnin jälkeen.", + "translatorComment": "Copied from source." + }, + { "id": "Now", "message": "Now", "translation": "Nyt", @@ -20,6 +132,146 @@ "translatorComment": "Copied from source." }, { + "id": "{Years} year(s)", + "message": "{Years} year(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Years", + "cases": { + "one": { + "msg": "{Years} vuosi" + }, + "other": { + "msg": "{Years} vuotta" + } + } + } + }, + "placeholders": [ + { + "id": "Years", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "years" + } + ] + }, + { + "id": "{Days} day(s)", + "message": "{Days} day(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Days", + "cases": { + "one": { + "msg": "{Days} päivä" + }, + "other": { + "msg": "{Days} päivää" + } + } + } + }, + "placeholders": [ + { + "id": "Days", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "days" + } + ] + }, + { + "id": "{Hours} hour(s)", + "message": "{Hours} hour(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Hours", + "cases": { + "one": { + "msg": "{Hours} tunti" + }, + "other": { + "msg": "{Hours} tuntia" + } + } + } + }, + "placeholders": [ + { + "id": "Hours", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "hours" + } + ] + }, + { + "id": "{Minutes} minute(s)", + "message": "{Minutes} minute(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Minutes", + "cases": { + "one": { + "msg": "{Minutes} minuutti" + }, + "other": { + "msg": "{Minutes} minuuttia" + } + } + } + }, + "placeholders": [ + { + "id": "Minutes", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "minutes" + } + ] + }, + { + "id": "{Seconds} second(s)", + "message": "{Seconds} second(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Seconds", + "cases": { + "one": { + "msg": "{Seconds} sekunti" + }, + "other": { + "msg": "{Seconds} sekuntia" + } + } + } + }, + "placeholders": [ + { + "id": "Seconds", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "seconds" + } + ] + }, + { "id": "{Timestamp} ago", "message": "{Timestamp} ago", "translation": "{Timestamp} sitten", @@ -52,6 +304,124 @@ ] }, { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { + "id": "Invalid IP address", + "message": "Invalid IP address", + "translation": "Virheellinen IP-osoite", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "Virheellinen verkon etuliitteen pituus", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "Päätepisteestä puuttuu porttinumero", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "Virheellinen päätepisteen isäntäosoite", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "Sulkujen sisään pitää määritellä IPv6-osoite", + "translatorComment": "Copied from source." + }, + { "id": "Invalid MTU", "message": "Invalid MTU", "translation": "Virheellinen MTU", @@ -86,6 +456,112 @@ ] }, { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "Avainten tulee olla tasan 32 tavua pitkiä", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "Luvun tulee olla väliltä 0 ja 2^64-1: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "Kaksi pilkkua peräkkäin", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "Tunnelin nimi ei kelpaa", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "Rivin pitää esiintyä osiossa", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "Määrittelyavaimesta puuttuu yhtäsuuruuserotin", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "Avaimella pitää olla arvo", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "Virheellinen avain [Interface] -osiossa", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "Virheellinen avain [Peer] -osiossa", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "Liitännällä pitää olla yksityinen avain", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[ei määriteltynä]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "Kaikilla osapuolilla pitää olla julkinen avain", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "Virhe luettaessa määritystä", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "Virheellinen avain liitäntä-osiossa", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "Protokollan version pitää olla 1", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "Virheellinen avain osapuoli-osiossa", + "translatorComment": "Copied from source." + }, + { "id": "[EnumerationSeparator]", "message": "[EnumerationSeparator]", "translation": ", ", @@ -110,6 +586,62 @@ "translatorComment": "Copied from source." }, { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "Sovelluksen versio: {Number}\nGo taustajärjestelmän versio: {WireGuardGoVersion}\nGo versio: {Version_go}-{GOARCH}\nKäyttöjärjestelmä: {OsName}\nArkkitehtuuri: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { "id": "Close", "message": "Close", "translation": "Sulje", @@ -128,6 +660,18 @@ "translatorComment": "Copied from source." }, { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "&Deaktivoi", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&Aktivoi", + "translatorComment": "Copied from source." + }, + { "id": "Public key:", "message": "Public key:", "translation": "Julkinen avain:", @@ -200,6 +744,36 @@ "translatorComment": "Copied from source." }, { + "id": "pre-up", + "message": "pre-up", + "translation": "pre-up", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "post-up", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "pre-down", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "post-down", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "pois käytöstä, käytännön perusteella", + "translatorComment": "Copied from source." + }, + { "id": "enabled", "message": "enabled", "translation": "käytössä", @@ -230,9 +804,27 @@ ] }, { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "Tunnelin tilan määritys epäonnistui", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "Tunnelin aktivointi epäonnistui", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "Tunnelin deaktivointi epäonnistui", + "translatorComment": "Copied from source." + }, + { "id": "Interface: {Name}", "message": "Interface: {Name}", - "translation": "Verkkoyhteys: {Name}", + "translation": "Liitäntä: {Name}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -288,12 +880,24 @@ "translatorComment": "Copied from source." }, { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "Mikäli määriteltynä on tasan yksi toinen osapuoli ja kyseisen osapuolen sallituissa IP-osoitteessa on määritelty 0.0.0.0/0 ja/tai ::/0, tunnelipalvelu kytkee käyttöön palomuurin säännön joka estää kaiken liikenteen joka ei joko tule tai mene tunneliliitännän kautta tai se kohdistuu väärään DNS-palvelimeen. Erikoispoikkeuksena tästä on DHCP ja NDP liikenne.", + "translatorComment": "Copied from source." + }, + { "id": "&Save", "message": "&Save", "translation": "&Tallenna", "translatorComment": "Copied from source." }, { + "id": "Cancel", + "message": "Cancel", + "translation": "Peruuta", + "translatorComment": "Copied from source." + }, + { "id": "&Configuration:", "message": "&Configuration:", "translation": "&Konfiguraatio:", @@ -312,12 +916,108 @@ "translatorComment": "Copied from source." }, { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "Tunnelin nimi ‘{NewName}’ on virheellinen.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "Olemassaolevia tunneleita ei voitu listata", + "translatorComment": "Copied from source." + }, + { "id": "Tunnel already exists", "message": "Tunnel already exists", "translation": "Tunneli on jo olemassa", "translatorComment": "Copied from source." }, { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "Nimellä ‘{NewName}’ on jo olemassa tunneli.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "Uutta määritystä ei voida luoda", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Tiedoston kirjoitus epäonnistui", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "Tiedosto ‘{FilePath}’ on jo olemassa.\n\nHaluatko korvata sen?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "Aktiivinen", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "Aktivoidaan", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "Epäaktiivinen", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "Deaktivoidaan", + "translatorComment": "Copied from source." + }, + { + "id": "Unknown state", + "message": "Unknown state", + "translation": "Tuntematon tila", + "translatorComment": "Copied from source." + }, + { "id": "Log", "message": "Log", "translation": "Loki", @@ -330,12 +1030,248 @@ "translatorComment": "Copied from source." }, { + "id": "Select &all", + "message": "Select &all", + "translation": "Valitse k&aikki", + "translatorComment": "Copied from source." + }, + { + "id": "&Save to file…", + "message": "&Save to file…", + "translation": "&Tallenna tiedostoon…", + "translatorComment": "Copied from source." + }, + { + "id": "Time", + "message": "Time", + "translation": "Aika", + "translatorComment": "Copied from source." + }, + { + "id": "Log message", + "message": "Log message", + "translation": "Lokiviesti", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "Tekstitiedostot (*.txt)|*.txt|Kaikki tiedostot (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "Vie loki tiedostoon", + "translatorComment": "Copied from source." + }, + { + "id": "&About WireGuard…", + "message": "&About WireGuard…", + "translation": "Tietoja WireGu&ardista…", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "Tunnelivirhe", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nLue lisää lokista saadaksesi lisätietoja.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (ei ajantasalla)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "WireGuardin tunnistusvirhe", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "Ei voida odottaa WireGuardin ikkunan ilmestymistä: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: deaktivoitu", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "Tila: tuntematon", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "Osoitteet: ei mitään", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Hallitse tunneleita…", + "translatorComment": "Copied from source." + }, + { "id": "&Import tunnel(s) from file…", "message": "&Import tunnel(s) from file…", "translation": "Tuo tunnele&ita tiedostosta…", "translatorComment": "Copied from source." }, { + "id": "E&xit", + "message": "E&xit", + "translation": "Lo&peta", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&Tunnelit", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard aktivoitu", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "Tunneli {Name} on aktivoitu.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard deaktivoitu", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "Tunneli {Name} on deaktivoitu.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "WireGuard tunnelivirhe", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "Tila: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "Osoitteet: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { "id": "An Update is Available!", "message": "An Update is Available!", "translation": "Päivitys on saatavilla!", @@ -378,6 +1314,112 @@ "translatorComment": "Copied from source." }, { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "Poista valitut tunneli(t)", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "Vie kaikki tunnelit zip-tiedostoon", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "Vaihda &tila", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Vie kaikki tunnelit &zip-tiedostoon…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Muokkaa &valittua tunnelia…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&Poista valitut tunnelit", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "määritystiedostoa ei löytynyt", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "Valittua määritystiedostoa ei voitu tuoda: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "Olemassaolevia tunneleita ei voitu luetella: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "Nimellä ‘{Name}’ on jo olemassaoleva tunneli", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { + "id": "Unable to import configuration: {LastErr}", + "message": "Unable to import configuration: {LastErr}", + "translation": "Ei voitu tuoda määritystiedostoa: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { "id": "Imported tunnels", "message": "Imported tunnels", "translation": "Tuodut tunnelit", @@ -412,6 +1454,174 @@ ] }, { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "Tuotiin {M} / {N} tunnelia" + }, + "other": { + "msg": "Tuotiin {M} / {N} tunnelia" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "Tunnelia ei voitu luoda", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Poista {TunnelCount} tunneli" + }, + "other": { + "msg": "Poista {TunnelCount} tunnelia" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Oletko varma että haluat poistaa {TunnelCount} tunnelin?" + }, + "other": { + "msg": "Oletko varma että haluat poistaa {TunnelCount} tunnelia?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "Poista tunneli ‘{TunnelName}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "Oletko varma että haluat poistaa tunnelin ‘{TunnelName}’?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} Tätä toimintoa ei voi peruuttaa.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "Tunnelia ei voitu poistaa", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "Tunnelia ei voitu poistaa: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { "id": "Unable to delete tunnels", "message": "Unable to delete tunnels", "translation": "Tunnelia ei voitu poistaa", @@ -424,6 +1634,18 @@ "translatorComment": "Copied from source." }, { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Vie tunnelit zip-tiedostoon", + "translatorComment": "Copied from source." + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "Virhe WireGuardista poistuttaessa", + "translatorComment": "Copied from source." + }, + { "id": "Status: Waiting for user", "message": "Status: Waiting for user", "translation": "Tila: Odotetaan käyttäjää", diff --git a/locales/id/messages.gotext.json b/locales/id/messages.gotext.json index 07fad080..c124906b 100644 --- a/locales/id/messages.gotext.json +++ b/locales/id/messages.gotext.json @@ -60,6 +60,12 @@ ] }, { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "Anda harus menggunakan WireGuard versi asli pada komputer ini.", + "translatorComment": "Copied from source." + }, + { "id": "Unable to open current process token: {Err}", "message": "Unable to open current process token: {Err}", "translation": "Tidak dapat membuka token proses saat ini: {Err}", @@ -475,6 +481,12 @@ "translatorComment": "Copied from source." }, { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "Kunci konfigurasi tidak valid, tidak memiliki pemisah dan sama dengan", + "translatorComment": "Copied from source." + }, + { "id": "Key must have a value", "message": "Key must have a value", "translation": "Kunci harus memiliki value", @@ -541,12 +553,80 @@ "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." }, { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": ", ", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { "id": "About WireGuard", "message": "About WireGuard", "translation": "Tentang WireGuard", "translatorComment": "Copied from source." }, { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "Gambar logo WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "Versi Aplikasi: {Number}\nVersi back-end Go: {WireGuardGoVersion}\nVersi Go: {Version_go}--{GOARCH}\nSistem Operasi: {OsName}\nArsitektur: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { "id": "Close", "message": "Close", "translation": "Tutup", @@ -565,6 +645,72 @@ "translatorComment": "Copied from source." }, { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "&Nonaktifkan", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&Aktifkan", + "translatorComment": "Copied from source." + }, + { + "id": "Public key:", + "message": "Public key:", + "translation": "Kunci publik:", + "translatorComment": "Copied from source." + }, + { + "id": "Listen port:", + "message": "Listen port:", + "translation": "Port Pendengar:", + "translatorComment": "Copied from source." + }, + { + "id": "MTU:", + "message": "MTU:", + "translation": "MTU:", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses:", + "message": "Addresses:", + "translation": "Alamat:", + "translatorComment": "Copied from source." + }, + { + "id": "DNS servers:", + "message": "DNS servers:", + "translation": "Server DNS:", + "translatorComment": "Copied from source." + }, + { + "id": "Scripts:", + "message": "Scripts:", + "translation": "Skrip:", + "translatorComment": "Copied from source." + }, + { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "Preshared key:", + "translatorComment": "Copied from source." + }, + { + "id": "Allowed IPs:", + "message": "Allowed IPs:", + "translation": "IP yang diperbolehkan:", + "translatorComment": "Copied from source." + }, + { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "Endpoint:", + "translatorComment": "Copied from source." + }, + { "id": "Active", "message": "Active", "translation": "Aktif", diff --git a/locales/ja/messages.gotext.json b/locales/ja/messages.gotext.json index 77234a68..1666f408 100644 --- a/locales/ja/messages.gotext.json +++ b/locales/ja/messages.gotext.json @@ -867,7 +867,7 @@ { "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", - "translation": "ピアが1つだけ設定されていて、Allowed IPs に 0.0.0.0/0 または :: / 0 が含まれている場合、トンネルサービスはトンネルインターフェイスを通らないトラフィックや間違った DNS サーバーに向かう通信をブロックするファイアウォールルールを追加します。\nDHCP と NDP には特別な例外があります。", + "translation": "ピアが1つだけ設定されており、かつAllowed IPs に 0.0.0.0/0 や ::/0 が含まれている場合、トンネルサービスはトンネルインターフェイスを通らないトラフィックや間違った DNS サーバーに向かう通信をブロックするファイアウォールルールを追加します。\nDHCP と NDP には特別な例外があります。", "translatorComment": "Copied from source." }, { @@ -1155,7 +1155,7 @@ { "id": "&Tunnels", "message": "&Tunnels", - "translation": "& トンネル", + "translation": "トンネル(&T)", "translatorComment": "Copied from source." }, { diff --git a/locales/ko/messages.gotext.json b/locales/ko/messages.gotext.json index d7a7040e..21c9af78 100644 --- a/locales/ko/messages.gotext.json +++ b/locales/ko/messages.gotext.json @@ -6,6 +6,1812 @@ "message": "Error", "translation": "오류", "translatorComment": "Copied from source." + }, + { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(인수 없음): 관리자 서비스 상승 및 설치", + "translatorComment": "Copied from source." + }, + { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "사용: {Args0} [\n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "커맨드 라인 옵션", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "WOW64에서 프로세스가 실행 중인지 확인할 수 없음: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "이 컴퓨터에서는 기본 버전의 WireGuard를 사용해야 합니다.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "현재 프로세스 토큰을 열 수 없음: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "WireGuard는 Builtin {AdminGroupName} 그룹의 구성원인 사용자만 사용할 수 있습니다.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "WireGuard가 실행 중이나 UI는 Builtin의 데스크톱에서만 액세스할 수 있습니다{AdminGroupName} 그룹.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "WireGuard 시스템 트레이 아이콘이 30초 후에 나타나지 않았습니다.", + "translatorComment": "Copied from source." + }, + { + "id": "Now", + "message": "Now", + "translation": "지금", + "translatorComment": "Copied from source." + }, + { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "시스템 시간이 되돌려짐!", + "translatorComment": "Copied from source." + }, + { + "id": "{Years} year(s)", + "message": "{Years} year(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Years", + "cases": { + "other": { + "msg": "{Years} 년" + } + } + } + }, + "placeholders": [ + { + "id": "Years", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "years" + } + ] + }, + { + "id": "{Days} day(s)", + "message": "{Days} day(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Days", + "cases": { + "other": { + "msg": "{Days} 일" + } + } + } + }, + "placeholders": [ + { + "id": "Days", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "days" + } + ] + }, + { + "id": "{Hours} hour(s)", + "message": "{Hours} hour(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Hours", + "cases": { + "other": { + "msg": "{Hours} 시간" + } + } + } + }, + "placeholders": [ + { + "id": "Hours", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "hours" + } + ] + }, + { + "id": "{Minutes} minute(s)", + "message": "{Minutes} minute(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Minutes", + "cases": { + "other": { + "msg": "{Minutes} 분" + } + } + } + }, + "placeholders": [ + { + "id": "Minutes", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "minutes" + } + ] + }, + { + "id": "{Seconds} second(s)", + "message": "{Seconds} second(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Seconds", + "cases": { + "other": { + "msg": "{Seconds} 초" + } + } + } + }, + "placeholders": [ + { + "id": "Seconds", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "seconds" + } + ] + }, + { + "id": "{Timestamp} ago", + "message": "{Timestamp} ago", + "translation": "{Timestamp} 전에", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Timestamp", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "timestamp" + } + ] + }, + { + "id": "{Bytes} B", + "message": "{Bytes} B", + "translation": "{Bytes} 바이트", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Bytes", + "string": "%[1]d", + "type": "golang.zx2c4.com/wireguard/windows/conf.Bytes", + "underlyingType": "uint64", + "argNum": 1, + "expr": "b" + } + ] + }, + { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { + "id": "Invalid IP address", + "message": "Invalid IP address", + "translation": "잘못된 IP 주소", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "잘못된 네트워크 접두사 길이", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "엔드포인트에서 포트가 누락됨", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "잘못된 엔드포인트 호스트", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "대괄호에는 IPv6 주소가 포함되어야 합니다", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid MTU", + "message": "Invalid MTU", + "translation": "잘못된 MTU", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid port", + "message": "Invalid port", + "translation": "잘못된 포트", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "잘못된 영구 연결 유지", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key: {Err}", + "message": "Invalid key: {Err}", + "translation": "유효하지 않은 키: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "키는 정확히 32바이트로 디코딩이 필요", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "숫자는 다음 사이의 숫자여야 합니다 0 그리고 2^64-1: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "엔드포인트에서 포트가 누락됨", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "터널 이름이 유효하지 않음", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "행은 섹션에 있어야 함", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "구성 키에 등호 구분 기호가 없음", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "키에는 값이 있어야 합니다", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "[Interface] 구간에 대한 잘못된 키", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "[Peer] 구간에 대한 잘못된 키", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "인터페이스에는 개인 키가 있어야 함", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[특정되지 않음]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "모든 피어에는 공개 키가 있어야 함", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "구성을 가져오는 중 오류가 발생", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "인터페이스 섹션의 키가 잘못됨", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "프로토콜 버전은 1이어야 합니다.", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "피어 섹션의 키가 잘못됨", + "translatorComment": "Copied from source." + }, + { + "id": "[EnumerationSeparator]", + "message": "[EnumerationSeparator]", + "translation": ", ", + "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." + }, + { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": ", ", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { + "id": "About WireGuard", + "message": "About WireGuard", + "translation": "WireGuard에 관하여", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "WireGuard 로고 이미지", + "translatorComment": "Copied from source." + }, + { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "앱 버전: {Number}\nGo 백엔드 버전: {WireGuardGoVersion}\nGo 버전: {Version_go}-{GOARCH}\n운영체제: {OsName}\n아키텍처: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { + "id": "Close", + "message": "Close", + "translation": "닫기", + "translatorComment": "Copied from source." + }, + { + "id": "♥ &Donate!", + "message": "♥ &Donate!", + "translation": "♥ &기부하기!", + "translatorComment": "Copied from source." + }, + { + "id": "Status:", + "message": "Status:", + "translation": "상태:", + "translatorComment": "Copied from source." + }, + { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "&비활성화하기", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&활성화하기", + "translatorComment": "Copied from source." + }, + { + "id": "Public key:", + "message": "Public key:", + "translation": "공개 키:", + "translatorComment": "Copied from source." + }, + { + "id": "Listen port:", + "message": "Listen port:", + "translation": "수신 포트:", + "translatorComment": "Copied from source." + }, + { + "id": "MTU:", + "message": "MTU:", + "translation": "MTU:", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses:", + "message": "Addresses:", + "translation": "주소:", + "translatorComment": "Copied from source." + }, + { + "id": "DNS servers:", + "message": "DNS servers:", + "translation": "DNS 서버:", + "translatorComment": "Copied from source." + }, + { + "id": "Scripts:", + "message": "Scripts:", + "translation": "스크립트:", + "translatorComment": "Copied from source." + }, + { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "사전 공유 키:", + "translatorComment": "Copied from source." + }, + { + "id": "Allowed IPs:", + "message": "Allowed IPs:", + "translation": "허용된 IP:", + "translatorComment": "Copied from source." + }, + { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "엔드포인트:", + "translatorComment": "Copied from source." + }, + { + "id": "Persistent keepalive:", + "message": "Persistent keepalive:", + "translation": "지속적 연결 유지:", + "translatorComment": "Copied from source." + }, + { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "마지막 정보교환:", + "translatorComment": "Copied from source." + }, + { + "id": "Transfer:", + "message": "Transfer:", + "translation": "전송:", + "translatorComment": "Copied from source." + }, + { + "id": "pre-up", + "message": "pre-up", + "translation": "사전-준비", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "게시-하기", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "준비-해제", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "게시-중단", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "비활성화됨, 정책에 따라", + "translatorComment": "Copied from source." + }, + { + "id": "enabled", + "message": "enabled", + "translation": "활성화됨", + "translatorComment": "Copied from source." + }, + { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} 받음, {String_1} 보내기", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "터널 상태를 확인하지 못함", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "터널을 활성화하지 못함", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "터널을 비활성화하지 못함", + "translatorComment": "Copied from source." + }, + { + "id": "Interface: {Name}", + "message": "Interface: {Name}", + "translation": "인터페이스: {Name}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "config.Name" + } + ] + }, + { + "id": "Peer", + "message": "Peer", + "translation": "피어", + "translatorComment": "Copied from source." + }, + { + "id": "Create new tunnel", + "message": "Create new tunnel", + "translation": "새로운 터널 만들기", + "translatorComment": "Copied from source." + }, + { + "id": "Edit tunnel", + "message": "Edit tunnel", + "translation": "터널 편집", + "translatorComment": "Copied from source." + }, + { + "id": "&Name:", + "message": "&Name:", + "translation": "&이름:", + "translatorComment": "Copied from source." + }, + { + "id": "&Public key:", + "message": "&Public key:", + "translation": "&공개 키:", + "translatorComment": "Copied from source." + }, + { + "id": "(unknown)", + "message": "(unknown)", + "translation": "(알수없음)", + "translatorComment": "Copied from source." + }, + { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&Block 터널 없는 교통 (킬-스위치)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "구성에 단일 피어가 하나 있고, 해당 피어의 허용된 IP에 0.0.0.0/0 또는 ::/0 중 하나 이상이 포함된 경우, 터널 서비스는 터널 인터페이스로의 또는 터널 인터페이스에서의 트래픽이 아닌 모든 트래픽과 잘못된 DNS 서버로의 트래픽을 차단하는 방화벽 규칙 집합을 활성화합니다. DHCP 및 NDP에 대한 특별 예외가 적용됩니다.", + "translatorComment": "Copied from source." + }, + { + "id": "&Save", + "message": "&Save", + "translation": "&저장", + "translatorComment": "Copied from source." + }, + { + "id": "Cancel", + "message": "Cancel", + "translation": "취소", + "translatorComment": "Copied from source." + }, + { + "id": "&Configuration:", + "message": "&Configuration:", + "translation": "&환경설정:", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid name", + "message": "Invalid name", + "translation": "잘못된 이름", + "translatorComment": "Copied from source." + }, + { + "id": "A name is required.", + "message": "A name is required.", + "translation": "이름은 필수 항목 입니다.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "터널명 ‘{NewName}’ 무효입니다.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "기존 터널을 나열할 수 없음", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "이름이 이미 있음", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "이름과 함께 또 다른 터널이 이미 존재합니다 ‘{NewName}’.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "구성을 가져올 수 없음", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "파일 쓰기 실패", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "파일 ‘{FilePath}’ 이미 존재합니다.\n\nDo you want to overwrite it?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "활성화", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "활성화 중", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "비활성", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "비활성화 중", + "translatorComment": "Copied from source." + }, + { + "id": "Unknown state", + "message": "Unknown state", + "translation": "알 수 없는 상태", + "translatorComment": "Copied from source." + }, + { + "id": "Log", + "message": "Log", + "translation": "로그", + "translatorComment": "Copied from source." + }, + { + "id": "&Copy", + "message": "&Copy", + "translation": "&복사", + "translatorComment": "Copied from source." + }, + { + "id": "Select &all", + "message": "Select &all", + "translation": "전체 &선택", + "translatorComment": "Copied from source." + }, + { + "id": "&Save to file…", + "message": "&Save to file…", + "translation": "&파일에 저장…", + "translatorComment": "Copied from source." + }, + { + "id": "Time", + "message": "Time", + "translation": "시간", + "translatorComment": "Copied from source." + }, + { + "id": "Log message", + "message": "Log message", + "translation": "로그 메시지", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "텍스트 파일 (*.txt)|*.txt|모든 파일 (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "로그 파일 내보내기", + "translatorComment": "Copied from source." + }, + { + "id": "&About WireGuard…", + "message": "&About WireGuard…", + "translation": "&WireGuard에 관하여…", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "터널 오류", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\n자세한 내용은 로그를 참조하세요.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (구식)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "WireGuard 감지 오류", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "WireGuard 창이 나타날 때까지 기다릴 수 없음: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: 비활성화됨", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "상태: 알 수 없음", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "주소: 없음", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&터널 관리…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&파일에서 터널(s) 불러오기…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "종료&", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&터널", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard 활성화됨", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "다음 {Name} 터널이 활성화되었습니다.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard 비활성화됨", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "다음 {Name} 터널이 비활성화되었습니다.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "WireGuard 터널 오류", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "와이어가드: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "상태: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "주소: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "업데이트를 사용할 수 있습니다!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "WireGuard 업데이트 가능", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "이제 WireGuard 업데이트를 사용할 수 있습니다. 최대한 빨리 업데이트하는 것이 좋습니다.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "터널", + "translatorComment": "Copied from source." + }, + { + "id": "&Edit", + "message": "&Edit", + "translation": "&편집", + "translatorComment": "Copied from source." + }, + { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "&빈 터널 추가…", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "터널 추가", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "선택한 터널(s) 제거", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "터널들을 Zip 파일에 내보내기", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "&토글", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "모든 터널을 &zip으로 내보내기…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "편집 &선택한 터널…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&선택한 터널(s) 제거", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "구성 파일을 찾을 수 없음", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "선택한 구성을 가져올 수 없음: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "기존 터널을 열거할 수 없음: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "이름과 함께 또 다른 터널이 이미 존재합니다 ‘{Name}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { + "id": "Unable to import configuration: {LastErr}", + "message": "Unable to import configuration: {LastErr}", + "translation": "구성을 가져올 수 없음: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Imported tunnels", + "message": "Imported tunnels", + "translation": "터널을 가져옴", + "translatorComment": "Copied from source." + }, + { + "id": "Imported {M} tunnels", + "message": "Imported {M} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "M", + "cases": { + "other": { + "msg": "터널 {M} 가져옴" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + } + ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "other": { + "msg": "터널 {M} 의 {N} 가져옴" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "터널을 생성할 수 없음", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "other": { + "msg": "터널 {TunnelCount} 삭제" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "other": { + "msg": "삭제하고 싶은 게 확실해 {TunnelCount} 터널?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "터널 삭제 ‘{TunnelName}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "터널을 삭제하고 싶은 것이 확실합니까 ‘{TunnelName}’?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} 이 작업은 실행취소할 수 없습니다.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "터널을 삭제할 수 없음", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "터널을 제거할 수 없음: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "터널을 삭제할 수 없음", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "other": { + "msg": "{Lenerrors} 터널을 제거할 수 없었습니다." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "구성 파일 (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "파일에서 터널(s) 불러오기", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "형상 ZIP 파일 (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "터널들을 Zip 파일에 내보내기", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (서명되지 않은 빌드, 업데이트 없음)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "WireGuard 오류로 종료중", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "다음 원인으로 인해 서비스를 종료할 수 없: {Err}. 서비스 관리자에서 WireGuard를 중지할 수 있습니다.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "WireGuard에 대한 업데이트가 가능합니다. 지체 없이 업데이트하는 것이 좋습니다.", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for user", + "message": "Status: Waiting for user", + "translation": "상태: 사용자를 기다리는 중", + "translatorComment": "Copied from source." + }, + { + "id": "Update Now", + "message": "Update Now", + "translation": "지금 업데이트", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for updater service", + "message": "Status: Waiting for updater service", + "translation": "상태: 업데이터 서비스를 기다리는 중", + "translatorComment": "Copied from source." + }, + { + "id": "Error: {Err}. Please try again.", + "message": "Error: {Err}. Please try again.", + "translation": "오류: {Err}. 다시 시도해 주세요.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Status: Complete!", + "message": "Status: Complete!", + "translation": "상태: 완료!", + "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: 프레이머 {F}: 방금 작성된 프레임을 디코딩하는 데 실패", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: 프레이머 {F}: {Http2summarizeFramefr} 을(를) 작성함", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: 프레이머 {Fr}: {Http2summarizeFramef} 을(를) 읽음", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: 디코딩된 Hpack 필드 {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] } ] }
\ No newline at end of file diff --git a/locales/nl/messages.gotext.json b/locales/nl/messages.gotext.json new file mode 100644 index 00000000..511d4300 --- /dev/null +++ b/locales/nl/messages.gotext.json @@ -0,0 +1,1665 @@ +{ + "language": "nl", + "messages": [ + { + "id": "Error", + "message": "Error", + "translation": "Foutmelding", + "translatorComment": "Copied from source." + }, + { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(geen argumenten): Verhoog rechten en installeer beheerder-service", + "translatorComment": "Copied from source." + }, + { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "Gebruikswijze: {Args0} [\n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "Opdracht-prompt Opties", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "Kan niet bepalen of het proces wordt uitgevoerd onder WOW64: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "Je moet de native versie van WireGuard gebruiken op deze computer.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "Kan de huidige proces-token niet openen: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "WireGuard mag alleen gebruikt worden door gebruikers die deel uitmaken van de ingebouwde {AdminGroupName} groep.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "WireGuard is actief, maar de gebruikersinterface is alleen toegankelijk via de desktops van de Ingebouwde {AdminGroupName} groep.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "WireGuard systeem tray icoon is niet weergegeven na 30 seconden.", + "translatorComment": "Copied from source." + }, + { + "id": "Now", + "message": "Now", + "translation": "Nu", + "translatorComment": "Copied from source." + }, + { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "Systeemklok is achteruit gezet!", + "translatorComment": "Copied from source." + }, + { + "id": "{Years} year(s)", + "message": "{Years} year(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Years", + "cases": { + "one": { + "msg": "{Years} jaar" + }, + "other": { + "msg": "{Years} jaren" + } + } + } + }, + "placeholders": [ + { + "id": "Years", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "years" + } + ] + }, + { + "id": "{Days} day(s)", + "message": "{Days} day(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Days", + "cases": { + "one": { + "msg": "{Days} dag" + }, + "other": { + "msg": "{Days} dagen" + } + } + } + }, + "placeholders": [ + { + "id": "Days", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "days" + } + ] + }, + { + "id": "{Hours} hour(s)", + "message": "{Hours} hour(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Hours", + "cases": { + "one": { + "msg": "{Hours} uur" + }, + "other": { + "msg": "{Hours} uur" + } + } + } + }, + "placeholders": [ + { + "id": "Hours", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "hours" + } + ] + }, + { + "id": "{Minutes} minute(s)", + "message": "{Minutes} minute(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Minutes", + "cases": { + "one": { + "msg": "{Minutes} minuut" + }, + "other": { + "msg": "{Minutes} Minuten" + } + } + } + }, + "placeholders": [ + { + "id": "Minutes", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "minutes" + } + ] + }, + { + "id": "{Seconds} second(s)", + "message": "{Seconds} second(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Seconds", + "cases": { + "one": { + "msg": "{Seconds} Seconde" + }, + "other": { + "msg": "{Seconds} Seconden" + } + } + } + }, + "placeholders": [ + { + "id": "Seconds", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "seconds" + } + ] + }, + { + "id": "{Timestamp} ago", + "message": "{Timestamp} ago", + "translation": "{Timestamp} geleden", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Timestamp", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "timestamp" + } + ] + }, + { + "id": "{Bytes} B", + "message": "{Bytes} B", + "translation": "{Bytes} B", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Bytes", + "string": "%[1]d", + "type": "golang.zx2c4.com/wireguard/windows/conf.Bytes", + "underlyingType": "uint64", + "argNum": 1, + "expr": "b" + } + ] + }, + { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { + "id": "Invalid IP address", + "message": "Invalid IP address", + "translation": "Ongeldig IP-adres", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "Ongeldige netwerkprefix-lengte", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "Ontbrekende poort voor endpoint", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "Ongeldig endpoint host", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "Haakjes moeten een IPv6-adres bevatten", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid MTU", + "message": "Invalid MTU", + "translation": "Ongeldige MTU", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid port", + "message": "Invalid port", + "translation": "Ongeldige poort", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "Ongeldige Persistent Keep-alive", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key: {Err}", + "message": "Invalid key: {Err}", + "translation": "Ongeldige sleutel: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "Keys moeten gedecodeerd exact 32 bytes zijn", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "Number moet een getal zijn tussen 0 en 2^64-1: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "Twee komma's op een rij", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "Tunnelnaam is ongeldig", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "Lijn moet in een sectie voorkomen", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "Configuratiesleutel mist een gelijkheidsteken als seperator", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "Sleutel met een waarde hebben", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "Ongeldige sleutel voor [Interface]-gedeelte", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "Ongeldige sleutel voor [Peer]-gedeelte", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "Een interface moet een privé sleutel hebben", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[Niets opgegeven]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "Alle peers moeten publieke sleutels hebben", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "Fout bij het lezen van de configuratie", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "Ongeldige sleutel voor interface-gedeelte", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "Protocol-versie moet 1 zijn", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "Ongeldige sleutel voor peer-gedeelte", + "translatorComment": "Copied from source." + }, + { + "id": "[EnumerationSeparator]", + "message": "[EnumerationSeparator]", + "translation": ", ", + "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." + }, + { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": " ", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { + "id": "About WireGuard", + "message": "About WireGuard", + "translation": "Over WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "WireGuard logo-afbeelding", + "translatorComment": "Copied from source." + }, + { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "App-versie: {Number}\nGo backend versie: {WireGuardGoVersion}\nGo-versie: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { + "id": "Close", + "message": "Close", + "translation": "Sluiten", + "translatorComment": "Copied from source." + }, + { + "id": "♥ &Donate!", + "message": "♥ &Donate!", + "translation": "♥ &Doneer!", + "translatorComment": "Copied from source." + }, + { + "id": "Status:", + "message": "Status:", + "translation": "Status:", + "translatorComment": "Copied from source." + }, + { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "&Deactiveer", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&Activeer", + "translatorComment": "Copied from source." + }, + { + "id": "Public key:", + "message": "Public key:", + "translation": "Publieke sleutel:", + "translatorComment": "Copied from source." + }, + { + "id": "Listen port:", + "message": "Listen port:", + "translation": "Luister op poort:", + "translatorComment": "Copied from source." + }, + { + "id": "MTU:", + "message": "MTU:", + "translation": "MTU:", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses:", + "message": "Addresses:", + "translation": "Adressen:", + "translatorComment": "Copied from source." + }, + { + "id": "DNS servers:", + "message": "DNS servers:", + "translation": "DNS-servers:", + "translatorComment": "Copied from source." + }, + { + "id": "Scripts:", + "message": "Scripts:", + "translation": "Scripts:", + "translatorComment": "Copied from source." + }, + { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "Gedeelde sleutel:", + "translatorComment": "Copied from source." + }, + { + "id": "Allowed IPs:", + "message": "Allowed IPs:", + "translation": "Toegestane IP-adressen:", + "translatorComment": "Copied from source." + }, + { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "Eindpunt:", + "translatorComment": "Copied from source." + }, + { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "Recentste uitwisseling:", + "translatorComment": "Copied from source." + }, + { + "id": "Transfer:", + "message": "Transfer:", + "translation": "Overdracht:", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "uitgeschakeld, per beleid", + "translatorComment": "Copied from source." + }, + { + "id": "enabled", + "message": "enabled", + "translation": "ingeschakeld", + "translatorComment": "Copied from source." + }, + { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} ontvangen, {String_1} verzonden", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "Kon tunnelstatus niet vaststellen", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "Kon tunnel niet activeren", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "Kon tunnel niet deactiveren", + "translatorComment": "Copied from source." + }, + { + "id": "Create new tunnel", + "message": "Create new tunnel", + "translation": "Maak nieuwe tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "&Name:", + "message": "&Name:", + "translation": "&Naam:", + "translatorComment": "Copied from source." + }, + { + "id": "&Public key:", + "message": "&Public key:", + "translation": "&Publieke sleutel:", + "translatorComment": "Copied from source." + }, + { + "id": "(unknown)", + "message": "(unknown)", + "translation": "(onbekend)", + "translatorComment": "Copied from source." + }, + { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&Ongetunneld verkeer blokkeren (kill-switch)", + "translatorComment": "Copied from source." + }, + { + "id": "&Save", + "message": "&Save", + "translation": "&Opslaan", + "translatorComment": "Copied from source." + }, + { + "id": "Cancel", + "message": "Cancel", + "translation": "Annuleren", + "translatorComment": "Copied from source." + }, + { + "id": "&Configuration:", + "message": "&Configuration:", + "translation": "&Instellingen:", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid name", + "message": "Invalid name", + "translation": "Ongeldige naam", + "translatorComment": "Copied from source." + }, + { + "id": "A name is required.", + "message": "A name is required.", + "translation": "Een naam is vereist.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "Naam van tunnel '{NewName}' is ongeldig.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "Kan bestaande tunnels niet weergeven", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "Tunnel bestaat reeds", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "Er bestaat al een andere tunnel met de naam '{NewName}'.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "De nieuwe instellingen konden niet worden aangemaakt", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Bestand schrijven mislukt", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "Bestand '{FilePath}' bestaat al.\n\nWil je dit overschrijven?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "Actief", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "Activeren", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "Inactief", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "Deactiveren", + "translatorComment": "Copied from source." + }, + { + "id": "Unknown state", + "message": "Unknown state", + "translation": "Onbekende status", + "translatorComment": "Copied from source." + }, + { + "id": "Log", + "message": "Log", + "translation": "Logboek", + "translatorComment": "Copied from source." + }, + { + "id": "&Copy", + "message": "&Copy", + "translation": "&Kopiëer", + "translatorComment": "Copied from source." + }, + { + "id": "Select &all", + "message": "Select &all", + "translation": "Selecteer &alles", + "translatorComment": "Copied from source." + }, + { + "id": "&Save to file…", + "message": "&Save to file…", + "translation": "&Opslaan naar bestand…", + "translatorComment": "Copied from source." + }, + { + "id": "Time", + "message": "Time", + "translation": "Tijd", + "translatorComment": "Copied from source." + }, + { + "id": "Log message", + "message": "Log message", + "translation": "Logbericht", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "Tekstbestanden (*.txt)|*.txt|Alle bestanden (*. *)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "Exporteer logboek naar bestand", + "translatorComment": "Copied from source." + }, + { + "id": "&About WireGuard…", + "message": "&About WireGuard…", + "translation": "Over Wiregu&ard…", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "Tunnel-fout", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nRaadpleeg het logboek voor meer informatie.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (out-of-date)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "WireGuard Detection Fout", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "Kan niet wachten op het Wireguard-window: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: Gedeactiveerd", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "Status: Onbekend", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "Addressen: Geen", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Tunnels beheren…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&Importeer tunnel(s) van bestand…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "&Afsluiten", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&Tunnels", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard Geactiveerd", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "De {Name} tunnel is geactiveerd.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard Gedeactiveerd", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "De {Name} tunnel is gedeactiveerd.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "WireGuard Tunnel Fout", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "Status: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "Addressen: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "Een Update is Beschikbaar!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "WireGuard update beschikbaar", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "Een update voor WireGuard is beschikbaar. Het wordt aangeraden zo snel mogelijk bij te werken.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "Tunnels", + "translatorComment": "Copied from source." + }, + { + "id": "&Edit", + "message": "&Edit", + "translation": "B&ewerken", + "translatorComment": "Copied from source." + }, + { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "Voeg l&ege tunnel toe…", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "Tunnel toevoegen", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "Geselecteerde tunnel(s) verwijderen", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "Alle tunnels naar een zip-bestand exporteren", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "In-/ui&tschakelen", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Alle tunnels naar een &zip-bestand exporteren…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Ge&selecteerde tunnel bewerken…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "Geselecteerde tunnel(s) ve&rwijderen", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "geen configuratiebestanden gevonden", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "Kan geselecteerde configuratiebestand niet importeren: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "Kon bestaande tunnels niet opsommen: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "Er bestaat al een andere tunnel met de naam '{Name}'", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { + "id": "Unable to import configuration: {LastErr}", + "message": "Unable to import configuration: {LastErr}", + "translation": "Kan configuratiebestand niet importeren: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Imported tunnels", + "message": "Imported tunnels", + "translation": "Geïmporteerde tunnels", + "translatorComment": "Copied from source." + }, + { + "id": "Imported {M} tunnels", + "message": "Imported {M} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "M", + "cases": { + "one": { + "msg": "{M} tunnel geïmporteerd" + }, + "other": { + "msg": "{M} tunnels geïmporteerd" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + } + ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "{M} van {N} tunnel(s) geïmporteerd" + }, + "other": { + "msg": "{M} van de {N} tunnels geïmporteerd" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "Kan tunnel niet creëren", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "{TunnelCount} tunnel verwijderd" + }, + "other": { + "msg": "{TunnelCount} tunnels verwijderd" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Weet je zeker dat je {TunnelCount} tunnel wilt verwijderen?" + }, + "other": { + "msg": "Weet je zeker dat je {TunnelCount} tunnels wilt verwijderen?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "Verwijder tunnel '{TunnelName}'", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "Weet je zeker dat je de tunnel '{TunnelName}' wil verwijderen?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} Je kan deze actie niet ongedaan maken.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "Kan tunnel niet verwijderen", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "Eén tunnel kon niet worden verwijderd: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "Kan tunnels niet verwijderen", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "{Lenerrors} tunnel kon niet worden verwijderd." + }, + "other": { + "msg": "{Lenerrors} tunnels konden niet worden verwijderd." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "Configuratiebestanden (*.zip, *.conf)|*.zip;*.conf|Alle bestanden (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "Importeer tunnel(s) uit bestand", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "Configuratiebestanden ZIP (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Alle tunnels naar zip-bestand exporteren", + "translatorComment": "Copied from source." + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "Fout bij afsluiten WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "Er is een update voor WireGuard beschikbaar. Het wordt ten sterkste aangeraden deze zo snel mogelijk te installeren.", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for user", + "message": "Status: Waiting for user", + "translation": "Status: Wachten op gebruiker", + "translatorComment": "Copied from source." + }, + { + "id": "Update Now", + "message": "Update Now", + "translation": "Nu Bijwerken", + "translatorComment": "Copied from source." + }, + { + "id": "Error: {Err}. Please try again.", + "message": "Error: {Err}. Please try again.", + "translation": "Fout: {Err}. Probeer het opnieuw.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Status: Complete!", + "message": "Status: Complete!", + "translation": "Status: Voltooid!", + "translatorComment": "Copied from source." + } + ] +}
\ No newline at end of file diff --git a/locales/pa-IN/messages.gotext.json b/locales/pa-IN/messages.gotext.json index e9626d24..6f25ac3a 100644 --- a/locales/pa-IN/messages.gotext.json +++ b/locales/pa-IN/messages.gotext.json @@ -618,6 +618,12 @@ "translatorComment": "Copied from source." }, { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "ਪਹਿਲਾਂ-ਸਾਂਝੀ ਕੀਤੀ ਕੁੰਜੀ:", + "translatorComment": "Copied from source." + }, + { "id": "Allowed IPs:", "message": "Allowed IPs:", "translation": "ਮਨਜ਼ੂਰ ਕੀਤੇ IP:", @@ -630,12 +636,30 @@ "translatorComment": "Copied from source." }, { + "id": "Persistent keepalive:", + "message": "Persistent keepalive:", + "translation": "ਸਥਿਰ ਲਗਾਤਾਰ ਜਾਰੀ ਰੱਖੋ:", + "translatorComment": "Copied from source." + }, + { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "ਆਖਰੀ ਹੈਂਡ-ਸ਼ੇਕ:", + "translatorComment": "Copied from source." + }, + { "id": "Transfer:", "message": "Transfer:", "translation": "ਟਰਾਂਸਫਰ:", "translatorComment": "Copied from source." }, { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "ਅਸਮਰੱਥ ਹੈ, ਹਰ ਪਾਲਸੀ", + "translatorComment": "Copied from source." + }, + { "id": "enabled", "message": "enabled", "translation": "ਸਮਰੱਥ ਹੈ", diff --git a/locales/pl/messages.gotext.json b/locales/pl/messages.gotext.json index e702e1ca..fd09ea97 100644 --- a/locales/pl/messages.gotext.json +++ b/locales/pl/messages.gotext.json @@ -806,7 +806,7 @@ { "id": "enabled", "message": "enabled", - "translation": "włączyć", + "translation": "włączone", "translatorComment": "Copied from source." }, { @@ -1110,7 +1110,7 @@ { "id": "{ErrMsg}\n\nPlease consult the log for more information.", "message": "{ErrMsg}\n\nPlease consult the log for more information.", - "translation": "{ErrMsg}\n\nAby uzyskać więcej informacji, zapoznaj się z logiem.", + "translation": "{ErrMsg}\n\nAby uzyskać więcej informacji, zapoznaj się z dziennikiem.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1188,7 +1188,7 @@ { "id": "&Import tunnel(s) from file…", "message": "&Import tunnel(s) from file…", - "translation": "&Importuj tunel (tunele) z pliku…", + "translation": "&Importuj tunel(e) z pliku…", "translatorComment": "Copied from source." }, { @@ -1228,7 +1228,7 @@ { "id": "WireGuard Deactivated", "message": "WireGuard Deactivated", - "translation": "WireGuard Dezaktywowany", + "translation": "WireGuard dezaktywowany", "translatorComment": "Copied from source." }, { @@ -1340,13 +1340,13 @@ { "id": "Add Tunnel", "message": "Add Tunnel", - "translation": "Dodaj Tunel", + "translation": "Dodaj tunel", "translatorComment": "Copied from source." }, { "id": "Remove selected tunnel(s)", "message": "Remove selected tunnel(s)", - "translation": "Usuń wybrany tunel (tunele)", + "translation": "Usuń wybrany(-e) tunel(e)", "translatorComment": "Copied from source." }, { @@ -1376,7 +1376,7 @@ { "id": "&Remove selected tunnel(s)", "message": "&Remove selected tunnel(s)", - "translation": "&Usuń wybrany tunel (tunele)", + "translation": "&Usuń wybrany(-e) tunel(e)", "translatorComment": "Copied from source." }, { @@ -1498,7 +1498,7 @@ "arg": "N", "cases": { "one": { - "msg": "Zaimportowano {M} z {N} tunel" + "msg": "Zaimportowano {M} z {N} tunelu" }, "few": { "msg": "Zaimportowano {M} z {N} tunele" @@ -1724,7 +1724,7 @@ { "id": "Import tunnel(s) from file", "message": "Import tunnel(s) from file", - "translation": "Importuj tunel (tunele) z pliku", + "translation": "Importuj tunel(e) z pliku", "translatorComment": "Copied from source." }, { @@ -1764,7 +1764,7 @@ { "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", - "translation": "Nie można wyłączyć usługi ze względu na: {Err}. Jeśli chcesz wyłączyć WireGuard możesz to zrobić z poziomu menedżera usług.", + "translation": "Nie można wyłączyć usługi ze względu na: {Err}. Jeśli chcesz wyłączyć WireGuard, możesz to zrobić z poziomu menedżera usług.", "translatorComment": "Copied from source.", "placeholders": [ { diff --git a/locales/pt-BR/messages.gotext.json b/locales/pt-BR/messages.gotext.json new file mode 100644 index 00000000..84313ba7 --- /dev/null +++ b/locales/pt-BR/messages.gotext.json @@ -0,0 +1,1847 @@ +{ + "language": "pt-BR", + "messages": [ + { + "id": "Error", + "message": "Error", + "translation": "Erro", + "translatorComment": "Copied from source." + }, + { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(sem argumento): elevar e instalar o serviço gerenciador", + "translatorComment": "Copied from source." + }, + { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "Uso: {Args0} [\n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "Opções de linha de comando", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "Não foi possível determinar se o processo está sendo executado em WOW64: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "Você deve usar a versão nativa do WireGuard neste computador.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "Não foi possível abrir o token do processo atual: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "O WireGuard só pode ser usado por usuários que são membros do grupo incorporado {AdminGroupName}.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "O WireGuard está funcionando, mas a interface do usuário só é acessível em desktops do grupo incorporado {AdminGroupName}.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "O ícone do sistema da barra do WireGuard não apareceu após 30 segundos.", + "translatorComment": "Copied from source." + }, + { + "id": "Now", + "message": "Now", + "translation": "Agora", + "translatorComment": "Copied from source." + }, + { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "Relógio do sistema voltou!", + "translatorComment": "Copied from source." + }, + { + "id": "{Years} year(s)", + "message": "{Years} year(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Years", + "cases": { + "one": { + "msg": "{Years} ano" + }, + "other": { + "msg": "{Years} anos" + } + } + } + }, + "placeholders": [ + { + "id": "Years", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "years" + } + ] + }, + { + "id": "{Days} day(s)", + "message": "{Days} day(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Days", + "cases": { + "one": { + "msg": "{Days} dia" + }, + "other": { + "msg": "{Days} dias" + } + } + } + }, + "placeholders": [ + { + "id": "Days", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "days" + } + ] + }, + { + "id": "{Hours} hour(s)", + "message": "{Hours} hour(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Hours", + "cases": { + "one": { + "msg": "{Hours} hora" + }, + "other": { + "msg": "{Hours} horas" + } + } + } + }, + "placeholders": [ + { + "id": "Hours", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "hours" + } + ] + }, + { + "id": "{Minutes} minute(s)", + "message": "{Minutes} minute(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Minutes", + "cases": { + "one": { + "msg": "{Minutes} minuto" + }, + "other": { + "msg": "{Minutes} minutes" + } + } + } + }, + "placeholders": [ + { + "id": "Minutes", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "minutes" + } + ] + }, + { + "id": "{Seconds} second(s)", + "message": "{Seconds} second(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Seconds", + "cases": { + "one": { + "msg": "{Seconds} segundo" + }, + "other": { + "msg": "{Seconds} segundos" + } + } + } + }, + "placeholders": [ + { + "id": "Seconds", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "seconds" + } + ] + }, + { + "id": "{Timestamp} ago", + "message": "{Timestamp} ago", + "translation": "{Timestamp} atrás", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Timestamp", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "timestamp" + } + ] + }, + { + "id": "{Bytes} B", + "message": "{Bytes} B", + "translation": "{Bytes} B", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Bytes", + "string": "%[1]d", + "type": "golang.zx2c4.com/wireguard/windows/conf.Bytes", + "underlyingType": "uint64", + "argNum": 1, + "expr": "b" + } + ] + }, + { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { + "id": "Invalid IP address", + "message": "Invalid IP address", + "translation": "Endereço IP inválido", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "Comprimento do prefixo de rede inválido", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "Porta ausente do endpoint", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "Servidor de endpoint inválido", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "Os colchetes devem conter um endereço IPv6", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid MTU", + "message": "Invalid MTU", + "translation": "MTU inválido", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid port", + "message": "Invalid port", + "translation": "Porta inválida", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "Keepalive persistente inválido", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key: {Err}", + "message": "Invalid key: {Err}", + "translation": "Chave inválida: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "Chaves devem decodificar exatamente para 32 bytes", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "O número deve ser um número entre 0 e 2^64-1: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "Duas vírgulas seguidas", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "Nome do túnel não é válido", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "A linha deve ocorrer em uma seção", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "Chave de configuração está faltando um separador igual", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "Chaves devem ter um valor", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "Chave inválida para a seção [Interface]", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "Chave inválida para a seção [Peer]", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "Uma interface deve ter uma chave privada", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[nenhum especificado]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "Todos os pares devem ter chaves públicas", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "Erro ao atualizar configuração", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "Chave inválida para a seção da interface", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "A versão do protocolo deve ser 1", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "Chave inválida para a seção do par", + "translatorComment": "Copied from source." + }, + { + "id": "[EnumerationSeparator]", + "message": "[EnumerationSeparator]", + "translation": ", ", + "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." + }, + { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": ", ", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { + "id": "About WireGuard", + "message": "About WireGuard", + "translation": "Sobre o WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "Imagem do logotipo WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "Versão do app: {Number}\nVersão do backend: {WireGuardGoVersion}\nVersão Go: {Version_go}-{GOARCH}\nSistema Operacional: {OsName}\nArquitetura: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { + "id": "Close", + "message": "Close", + "translation": "Fechar", + "translatorComment": "Copied from source." + }, + { + "id": "♥ &Donate!", + "message": "♥ &Donate!", + "translation": "♥ &Doar!", + "translatorComment": "Copied from source." + }, + { + "id": "Status:", + "message": "Status:", + "translation": "Status:", + "translatorComment": "Copied from source." + }, + { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "Desativado", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&Ativar", + "translatorComment": "Copied from source." + }, + { + "id": "Public key:", + "message": "Public key:", + "translation": "Chaves públicas:", + "translatorComment": "Copied from source." + }, + { + "id": "Listen port:", + "message": "Listen port:", + "translation": "Porta de escuta:", + "translatorComment": "Copied from source." + }, + { + "id": "MTU:", + "message": "MTU:", + "translation": "MTU:", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses:", + "message": "Addresses:", + "translation": "Endereços:", + "translatorComment": "Copied from source." + }, + { + "id": "DNS servers:", + "message": "DNS servers:", + "translation": "Servidores DNS:", + "translatorComment": "Copied from source." + }, + { + "id": "Scripts:", + "message": "Scripts:", + "translation": "Scripts:", + "translatorComment": "Copied from source." + }, + { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "Tecla Pressionada:", + "translatorComment": "Copied from source." + }, + { + "id": "Allowed IPs:", + "message": "Allowed IPs:", + "translation": "IPs Permitidos:", + "translatorComment": "Copied from source." + }, + { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "Ponto Final:", + "translatorComment": "Copied from source." + }, + { + "id": "Persistent keepalive:", + "message": "Persistent keepalive:", + "translation": "Mensagem persistente:", + "translatorComment": "Copied from source." + }, + { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "Shake mais recente:", + "translatorComment": "Copied from source." + }, + { + "id": "Transfer:", + "message": "Transfer:", + "translation": "Transferir:", + "translatorComment": "Copied from source." + }, + { + "id": "pre-up", + "message": "pre-up", + "translation": "pré-cima", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "postar", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "pré-baixo", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "pós-baixo", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "desativada, por política", + "translatorComment": "Copied from source." + }, + { + "id": "enabled", + "message": "enabled", + "translation": "habilitado", + "translatorComment": "Copied from source." + }, + { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} recebido, {String_1} enviado", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "Falha ao determinar o estado do túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "Falha ao ativar o túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "Falha ao desativar o tunel", + "translatorComment": "Copied from source." + }, + { + "id": "Interface: {Name}", + "message": "Interface: {Name}", + "translation": "Interface: {Name}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "config.Name" + } + ] + }, + { + "id": "Peer", + "message": "Peer", + "translation": "Parceiros", + "translatorComment": "Copied from source." + }, + { + "id": "Create new tunnel", + "message": "Create new tunnel", + "translation": "Criar túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Edit tunnel", + "message": "Edit tunnel", + "translation": "Editar túnel", + "translatorComment": "Copied from source." + }, + { + "id": "&Name:", + "message": "&Name:", + "translation": "&Nome:", + "translatorComment": "Copied from source." + }, + { + "id": "&Public key:", + "message": "&Public key:", + "translation": "&Chaves públicas:", + "translatorComment": "Copied from source." + }, + { + "id": "(unknown)", + "message": "(unknown)", + "translation": "(desconhecido)", + "translatorComment": "Copied from source." + }, + { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&Bloquear tráfego sem tunelamento (kill-switch)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "Quando uma configuração tem exatamente um par e esse par tem um IPs permitidos contendo pelo menos um dos 0.0.0. /0 ou ::/0, então o serviço de túnel envolve uma regra de firewall para bloquear todo o tráfego que não é de nem de um túnel ou está para o servidor DNS errado, com exceções especiais para DHCP e NDP.", + "translatorComment": "Copied from source." + }, + { + "id": "&Save", + "message": "&Save", + "translation": "&Salvar", + "translatorComment": "Copied from source." + }, + { + "id": "Cancel", + "message": "Cancel", + "translation": "Cancelar", + "translatorComment": "Copied from source." + }, + { + "id": "&Configuration:", + "message": "&Configuration:", + "translation": "&Configuração:", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid name", + "message": "Invalid name", + "translation": "Nome inválido", + "translatorComment": "Copied from source." + }, + { + "id": "A name is required.", + "message": "A name is required.", + "translation": "Um nome é necessário.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "O nome do túnel ‘{NewName}' é inválido.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "Não foi possível listar túneis existentes", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "Arquivo já existe", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "Já existe outro túnel com o nome ‘{NewName}’.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "Não é possível adicionar a configuração", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Falha ao escrever arquivo", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "O arquivo '{FilePath}' já existe.\n\nVocê deseja sobrescrever isso?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "Ativo", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "Ativar", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "Inativo", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "Desativando", + "translatorComment": "Copied from source." + }, + { + "id": "Unknown state", + "message": "Unknown state", + "translation": "Situação desconhecida", + "translatorComment": "Copied from source." + }, + { + "id": "Log", + "message": "Log", + "translation": "Registro", + "translatorComment": "Copied from source." + }, + { + "id": "&Copy", + "message": "&Copy", + "translation": "&Copiar", + "translatorComment": "Copied from source." + }, + { + "id": "Select &all", + "message": "Select &all", + "translation": "Selecionar &Tudo", + "translatorComment": "Copied from source." + }, + { + "id": "&Save to file…", + "message": "&Save to file…", + "translation": "&Salvar em arquivo…", + "translatorComment": "Copied from source." + }, + { + "id": "Time", + "message": "Time", + "translation": "Tempo", + "translatorComment": "Copied from source." + }, + { + "id": "Log message", + "message": "Log message", + "translation": "Registro de mensagens", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "Arquivos de texto (*.txt)|*.txt|Todos os arquivos (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "Exportar arquivo de log", + "translatorComment": "Copied from source." + }, + { + "id": "&About WireGuard…", + "message": "&About WireGuard…", + "translation": "&Sobre o WireGuard…", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "Erro de túnel", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nPor favor, consulte o log para obter mais informações.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (desatualizado)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "Erro de Detecção do WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "Não foi possível esperar a janela do WireGuard aparecer: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: Desativado", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "Status desconhecido", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "Endereços: Nenhum", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Gerenciar túneis…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&Importar túnel(s) do arquivo…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "Sai&r", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&Túneis", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard ativado", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "O túnel {Name} foi ativado.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard: Desativado", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "O túnel {Name} foi desativado.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "Erro no Túnel WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "Status: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "Endereços: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "Uma atualização está disponível!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "Atualização do WireGuard disponível", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "Uma atualização para o WireGuard está agora disponível. Recomenda-se atualizar o mais rápido possível.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "Túneis", + "translatorComment": "Copied from source." + }, + { + "id": "&Edit", + "message": "&Edit", + "translation": "&Editar", + "translatorComment": "Copied from source." + }, + { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "Adicionar &túnel vazio…", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "Adicionar um túnel", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "Remover túneis selecionados", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "Exportar todos os túneis para zip", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "&Alternancia", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Exportar todos os túneis para &zip…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Editar &túnel selecionado…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&Remover túneis selecionados", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "nenhum arquivo de configuração foi encontrado", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "Não foi possível importar a configuração selecionada: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "Não foi possível enumerar túneis existentes: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "Já existe outro túnel com o nome ‘{Name}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { + "id": "Unable to import configuration: {LastErr}", + "message": "Unable to import configuration: {LastErr}", + "translation": "Não foi possível importar a configuração: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Imported tunnels", + "message": "Imported tunnels", + "translation": "Importados túneis", + "translatorComment": "Copied from source." + }, + { + "id": "Imported {M} tunnels", + "message": "Imported {M} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "M", + "cases": { + "one": { + "msg": "Túnel {M} importado" + }, + "other": { + "msg": "{M} túneis importados" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + } + ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "Importados {M} dos {N} túneis" + }, + "other": { + "msg": "Importados {M} dos {N} túneis" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "Não foi possível criar o túnel: %s", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Excluir túnel {TunnelCount}" + }, + "other": { + "msg": "Excluir {TunnelCount} túneis" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Tem certeza que deseja excluir o túnel {TunnelCount}?" + }, + "other": { + "msg": "Você tem certeza que deseja excluir os túneis {TunnelCount}?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "Excluir túnel ‘{TunnelName}'", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "Tem certeza de que deseja excluir o túnel ‘{TunnelName}?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} Você não pode desfazer essa ação.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "Não foi possível excluir o túnel", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "Não foi possível remover um túnel: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "Não foi possível excluir túneis", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "O túnel {Lenerrors} não pôde ser removido." + }, + "other": { + "msg": "{Lenerrors} túneis não puderam ser removidos." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "Arquivos de configuração (*.zip, *.conf)|*.zip;*.conf|Todos os arquivos (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "Importar túnel(es) do arquivo", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "Arquivos ZIP de configuração (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Exportar túneis para zip", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (versão não assinada, sem atualizações)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "Erro ao sair do WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "Não é possível sair do serviço devido a: {Err}. Você pode querer parar o WireGuard do gerenciador de serviços.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "Uma atualização para o WireGuard está disponível. É altamente aconselhável atualizar sem demora.", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for user", + "message": "Status: Waiting for user", + "translation": "Status: Aguardando o usuário", + "translatorComment": "Copied from source." + }, + { + "id": "Update Now", + "message": "Update Now", + "translation": "Atualizar agora", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for updater service", + "message": "Status: Waiting for updater service", + "translation": "Estado: Aguardando o serviço do atualizador", + "translatorComment": "Copied from source." + }, + { + "id": "Error: {Err}. Please try again.", + "message": "Error: {Err}. Please try again.", + "translation": "Erro: {Err}. Por favor, tente novamente.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Status: Complete!", + "message": "Status: Complete!", + "translation": "Status da tarefa: Concluída!", + "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Framer {F}: falha ao decodificar o quadro recém-escrito", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: Framer {F}: escreveu {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: campo hpack decodificado {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] + } + ] +}
\ No newline at end of file diff --git a/locales/ru/messages.gotext.json b/locales/ru/messages.gotext.json index 9cc9b0f1..140869d2 100644 --- a/locales/ru/messages.gotext.json +++ b/locales/ru/messages.gotext.json @@ -4,7 +4,7 @@ { "id": "Error", "message": "Error", - "translation": "Ошибка", + "translation": "Алдаа", "translatorComment": "Copied from source." }, { @@ -16,7 +16,7 @@ { "id": "Usage: {Args0} [\n{String}]", "message": "Usage: {Args0} [\n{String}]", - "translation": "Использование: {Args0} [\n{String}]", + "translation": "Хэрэглээ: {Args0} [\n{String}]", "translatorComment": "Copied from source.", "placeholders": [ { @@ -40,13 +40,13 @@ { "id": "Command Line Options", "message": "Command Line Options", - "translation": "Параметры командной строки", + "translation": "Коммандын мөрний сонголтууд", "translatorComment": "Copied from source." }, { "id": "Unable to determine whether the process is running under WOW64: {Err}", "message": "Unable to determine whether the process is running under WOW64: {Err}", - "translation": "Ошибка определения или процесс работает как WOW64: {Err}", + "translation": "Процесс ажиллаж байгаа эсэхийг тодорхойлох боломжгүй байна\n WOW64: {Err}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -62,13 +62,13 @@ { "id": "You must use the native version of WireGuard on this computer.", "message": "You must use the native version of WireGuard on this computer.", - "translation": "Используйте нативную версию WireGuard на этом компьютере.", + "translation": "Та энэ компьютер дээр WireGuard-ийн эх хувилбарыг ашиглах ёстой.", "translatorComment": "Copied from source." }, { "id": "Unable to open current process token: {Err}", "message": "Unable to open current process token: {Err}", - "translation": "Не удается открыть токен текущего процесса: {Err}", + "translation": "Одоогийн процессын токеныг нээх боломжгүй байна: {Err}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -84,7 +84,7 @@ { "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", - "translation": "WireGuard может использоваться только пользователями, входящими в группу {AdminGroupName}.", + "translation": "WireGuard может использоваться только пользователями, входящими во встроенную группу {AdminGroupName}.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -116,19 +116,19 @@ { "id": "WireGuard system tray icon did not appear after 30 seconds.", "message": "WireGuard system tray icon did not appear after 30 seconds.", - "translation": "Значок в системном трее WireGuard не появился после 30 секунд.", + "translation": "WireGuard системийн тавиурын дүрс 30 секундын дараа гарч ирсэнгүй.", "translatorComment": "Copied from source." }, { "id": "Now", "message": "Now", - "translation": "Сейчас", + "translation": "Одоо", "translatorComment": "Copied from source." }, { "id": "System clock wound backward!", "message": "System clock wound backward!", - "translation": "Системные часы переведены назад!", + "translation": "Системийн цаг хойшоо эргэж байна!", "translatorComment": "Copied from source." }, { @@ -140,16 +140,16 @@ "arg": "Years", "cases": { "one": { - "msg": "{Years}г" + "msg": "{Years} год" }, "few": { - "msg": "{Years}г" + "msg": "{Years} года" }, "many": { - "msg": "{Years}г" + "msg": "{Years} лет" }, "other": { - "msg": "{Years}г" + "msg": "{Years} лет" } } } @@ -174,16 +174,16 @@ "arg": "Days", "cases": { "one": { - "msg": "{Days}д" + "msg": "{Days} день" }, "few": { - "msg": "{Days}д" + "msg": "{Days} дня" }, "many": { - "msg": "{Days}д" + "msg": "{Days} дней" }, "other": { - "msg": "{Days}д" + "msg": "{Days} дней" } } } @@ -208,16 +208,16 @@ "arg": "Hours", "cases": { "one": { - "msg": "{Hours}ч" + "msg": "{Hours} час" }, "few": { - "msg": "{Hours}ч" + "msg": "{Hours} часа" }, "many": { - "msg": "{Hours}ч" + "msg": "{Hours} часов" }, "other": { - "msg": "{Hours}ч" + "msg": "{Hours} часов" } } } @@ -242,16 +242,16 @@ "arg": "Minutes", "cases": { "one": { - "msg": "{Minutes}мин" + "msg": "{Minutes} минута" }, "few": { - "msg": "{Minutes}мин" + "msg": "{Minutes} минуты" }, "many": { - "msg": "{Minutes}мин" + "msg": "{Minutes} минут" }, "other": { - "msg": "{Minutes}мин" + "msg": "{Minutes} минут" } } } @@ -276,16 +276,16 @@ "arg": "Seconds", "cases": { "one": { - "msg": "{Seconds}сек" + "msg": "{Seconds} секунда" }, "few": { - "msg": "{Seconds}сек" + "msg": "{Seconds} секунды" }, "many": { - "msg": "{Seconds}сек" + "msg": "{Seconds} секунд" }, "other": { - "msg": "{Seconds}сек" + "msg": "{Seconds} секунд" } } } @@ -336,7 +336,7 @@ { "id": "{Float64b__1024} KiB", "message": "{Float64b__1024} KiB", - "translation": "{Float64b__1024} Кб", + "translation": "{Float64b__1024} КиБ", "translatorComment": "Copied from source.", "placeholders": [ { @@ -352,7 +352,7 @@ { "id": "{Float64b__1024__1024} MiB", "message": "{Float64b__1024__1024} MiB", - "translation": "{Float64b__1024__1024} Мб", + "translation": "{Float64b__1024__1024} МиБ", "translatorComment": "Copied from source.", "placeholders": [ { @@ -368,7 +368,7 @@ { "id": "{Float64b__1024__1024__1024} GiB", "message": "{Float64b__1024__1024__1024} GiB", - "translation": "{Float64b__1024__1024__1024} Гб", + "translation": "{Float64b__1024__1024__1024} ГиБ", "translatorComment": "Copied from source.", "placeholders": [ { @@ -384,7 +384,7 @@ { "id": "{Float64b__1024__1024__1024__1024} TiB", "message": "{Float64b__1024__1024__1024__1024} TiB", - "translation": "{Float64b__1024__1024__1024__1024} Тб", + "translation": "{Float64b__1024__1024__1024__1024} ТиБ", "translatorComment": "Copied from source.", "placeholders": [ { @@ -436,7 +436,7 @@ { "id": "Missing port from endpoint", "message": "Missing port from endpoint", - "translation": "Отсутствует порт IP-адреса сервера", + "translation": "Порт сервера не указан", "translatorComment": "Copied from source." }, { @@ -448,7 +448,7 @@ { "id": "Brackets must contain an IPv6 address", "message": "Brackets must contain an IPv6 address", - "translation": "В скобках должен быть IPv6 адрес", + "translation": "В скобках должен быть адрес IPv6", "translatorComment": "Copied from source." }, { @@ -488,7 +488,7 @@ { "id": "Keys must decode to exactly 32 bytes", "message": "Keys must decode to exactly 32 bytes", - "translation": "Ключи должны декодироваться ровно с 32 байтами", + "translation": "Ключи должны декодироваться ровно в 32 байта", "translatorComment": "Copied from source." }, { @@ -516,7 +516,7 @@ { "id": "Tunnel name is not valid", "message": "Tunnel name is not valid", - "translation": "Название туннеля недействительно", + "translation": "Неправильное имя туннеля", "translatorComment": "Copied from source." }, { @@ -552,13 +552,13 @@ { "id": "An interface must have a private key", "message": "An interface must have a private key", - "translation": "В Интерфейсе должен быть приватный ключ", + "translation": "Для интерфейса должен быть задан приватный ключ", "translatorComment": "Copied from source." }, { "id": "[none specified]", "message": "[none specified]", - "translation": "[не указано]", + "translation": "[не указан]", "translatorComment": "Copied from source." }, { @@ -576,7 +576,7 @@ { "id": "Invalid key for interface section", "message": "Invalid key for interface section", - "translation": "Неверный ключ для секции Интерфейса", + "translation": "Неверный ключ для секции интерфейса", "translatorComment": "Copied from source." }, { @@ -888,7 +888,7 @@ { "id": "&Name:", "message": "&Name:", - "translation": "&Название:", + "translation": "&Имя:", "translatorComment": "Copied from source." }, { @@ -906,7 +906,7 @@ { "id": "&Block untunneled traffic (kill-switch)", "message": "&Block untunneled traffic (kill-switch)", - "translation": "&Блокировать нетуннелированный трафик", + "translation": "&Блокировать трафик, идущий мимо туннеля (kill-switch)", "translatorComment": "Copied from source." }, { @@ -936,19 +936,19 @@ { "id": "Invalid name", "message": "Invalid name", - "translation": "Некорректное название", + "translation": "Недопустимое имя", "translatorComment": "Copied from source." }, { "id": "A name is required.", "message": "A name is required.", - "translation": "Необходимо название.", + "translation": "Требуется имя.", "translatorComment": "Copied from source." }, { "id": "Tunnel name ‘{NewName}’ is invalid.", "message": "Tunnel name ‘{NewName}’ is invalid.", - "translation": "Название туннеля ‘{NewName}’ недопустимо.", + "translation": "Имя туннеля ‘{NewName}’ недопустимо.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -998,13 +998,13 @@ { "id": "Writing file failed", "message": "Writing file failed", - "translation": "Ошибка записи файла", + "translation": "Ошибка при записи в файл", "translatorComment": "Copied from source." }, { "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", - "translation": "Файл '{FilePath}' уже существует!\n\nВы хотите перезаписать его?", + "translation": "Файл ‘{FilePath}’ уже существует!\n\nВы хотите перезаписать его?", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1056,7 +1056,7 @@ { "id": "&Copy", "message": "&Copy", - "translation": "&Скопировать", + "translation": "&Копировать", "translatorComment": "Copied from source." }, { @@ -1164,13 +1164,13 @@ { "id": "WireGuard: Deactivated", "message": "WireGuard: Deactivated", - "translation": "WireGuard: Деактивирован", + "translation": "WireGuard: деактивирован", "translatorComment": "Copied from source." }, { "id": "Status: Unknown", "message": "Status: Unknown", - "translation": "Статус: Неизвестен", + "translation": "Статус: неизвестен", "translatorComment": "Copied from source." }, { @@ -1206,7 +1206,7 @@ { "id": "WireGuard Activated", "message": "WireGuard Activated", - "translation": "WireGuard Включен", + "translation": "WireGuard включен", "translatorComment": "Copied from source." }, { @@ -1228,7 +1228,7 @@ { "id": "WireGuard Deactivated", "message": "WireGuard Deactivated", - "translation": "WireGuard Выключен", + "translation": "WireGuard выключен", "translatorComment": "Copied from source." }, { @@ -1464,16 +1464,16 @@ "arg": "M", "cases": { "one": { - "msg": "Импортированный {M} туннель" + "msg": "Импортирован {M} туннель" }, "few": { - "msg": "Импортированы туннели: {M}" + "msg": "Импортированы {M} туннеля" }, "many": { - "msg": "Импортированы туннели: {M}" + "msg": "Импортировано {M} туннелей" }, "other": { - "msg": "Импортированы туннели: {M}" + "msg": "Импортировано {M} туннелей" } } } @@ -1498,16 +1498,16 @@ "arg": "N", "cases": { "one": { - "msg": "Импортированы туннели: {M} из {N}" + "msg": "Импортирован {M} из {N} туннелей" }, "few": { - "msg": "Импортированы туннели: {M} из {N}" + "msg": "Импортированы {M} из {N} туннелей" }, "many": { - "msg": "Импортированы туннели: {M} из {N}" + "msg": "Импортировано {M} из {N} туннелей" }, "other": { - "msg": "Импортированы туннели: {M} из {N}" + "msg": "Импортировано {M} из {N} туннелей" } } } @@ -1549,13 +1549,13 @@ "msg": "Удалить {TunnelCount} туннель" }, "few": { - "msg": "Удалить туннели: {TunnelCount}" + "msg": "Удалить {TunnelCount} туннеля" }, "many": { - "msg": "Удалить туннели: {TunnelCount}" + "msg": "Удалить {TunnelCount} туннелей" }, "other": { - "msg": "Удалить туннели: {TunnelCount}" + "msg": "Удалить {TunnelCount} туннелей" } } } @@ -1583,13 +1583,13 @@ "msg": "Вы уверены, что хотите удалить {TunnelCount} туннель?" }, "few": { - "msg": "Вы уверены, что хотите удалить туннели: {TunnelCount}?" + "msg": "Вы уверены, что хотите удалить {TunnelCount} туннеля?" }, "many": { - "msg": "Вы уверены, что хотите удалить туннели: {TunnelCount}?" + "msg": "Вы уверены, что хотите удалить {TunnelCount} туннелей?" }, "other": { - "msg": "Вы уверены, что хотите удалить туннели: {TunnelCount}?" + "msg": "Вы уверены, что хотите удалить {TunnelCount} туннелей?" } } } @@ -1624,7 +1624,7 @@ { "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", - "translation": "Вы уверены, что хотите удалить '{TunnelName}' туннель?", + "translation": "Вы уверены, что хотите удалить ‘{TunnelName}’ туннель?", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1693,13 +1693,13 @@ "msg": "{Lenerrors} туннель не удалось удалить." }, "few": { - "msg": "туннелей не удалось удалить: {Lenerrors}" + "msg": "{Lenerrors} туннеля не удалось удалить." }, "many": { - "msg": "туннелей не удалось удалить: {Lenerrors}" + "msg": "{Lenerrors} туннелей не удалось удалить." }, "other": { - "msg": "туннелей не удалось удалить: {Lenerrors}" + "msg": "{Lenerrors} туннелей не удалось удалить." } } } @@ -1730,7 +1730,7 @@ { "id": "Configuration ZIP Files (*.zip)|*.zip", "message": "Configuration ZIP Files (*.zip)|*.zip", - "translation": "Конфигурация ZIP файлов (*.zip)|*.zip", + "translation": "ZIP-файлы конфигурации (*.zip)|*.zip", "translatorComment": "Copied from source." }, { @@ -1758,13 +1758,13 @@ { "id": "Error Exiting WireGuard", "message": "Error Exiting WireGuard", - "translation": "Ошибка выхода из WireGuard", + "translation": "Ошибка при завершении WireGuard", "translatorComment": "Copied from source." }, { "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", - "translation": "Не удается выйти из сервиса из-за: {Err}. Вы можете остановить WireGuard из менеджера служб.", + "translation": "Не удалось завершить службу: {Err}. Вы можете остановить WireGuard вручную из оснастки Службы.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1786,19 +1786,19 @@ { "id": "Status: Waiting for user", "message": "Status: Waiting for user", - "translation": "Статус: Ожидание пользователя", + "translation": "Статус: ожидание пользователя", "translatorComment": "Copied from source." }, { "id": "Update Now", "message": "Update Now", - "translation": "Обновить Сейчас", + "translation": "Обновить сейчас", "translatorComment": "Copied from source." }, { "id": "Status: Waiting for updater service", "message": "Status: Waiting for updater service", - "translation": "Статус: Ожидание обновления", + "translation": "Статус: ожидание обновления", "translatorComment": "Copied from source." }, { @@ -1820,13 +1820,13 @@ { "id": "Status: Complete!", "message": "Status: Complete!", - "translation": "Статус: Завершено!", + "translation": "Статус: завершено!", "translatorComment": "Copied from source." }, { "id": "http2: Framer {F}: failed to decode just-written frame", "message": "http2: Framer {F}: failed to decode just-written frame", - "translation": "http2: Framer {F}: не удалось декодировать только что записанный кадр", + "translation": "http2: Framer {F}: не удалось декодировать только что записанный фрейм", "translatorComment": "Copied from source.", "placeholders": [ { diff --git a/locales/si-LK/messages.gotext.json b/locales/si-LK/messages.gotext.json index 81e82150..639aafec 100644 --- a/locales/si-LK/messages.gotext.json +++ b/locales/si-LK/messages.gotext.json @@ -8,6 +8,12 @@ "translatorComment": "Copied from source." }, { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(තර්කයක් නැත): කළමනාකරු සේවාව ඉහළ නැංවීම සහ ස්ථාපනය කිරීම", + "translatorComment": "Copied from source." + }, + { "id": "Usage: {Args0} [\n{String}]", "message": "Usage: {Args0} [\n{String}]", "translation": "භාවිතය: {Args0} [\n{String}]", @@ -32,12 +38,100 @@ ] }, { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "විධාන රේඛා විකල්ප", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "ක්රියාවලිය WOW64: {Err}යටතේ ක්රියාත්මක වේද යන්න තීරණය කළ නොහැක", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "ඔබ මෙම පරිගණකයේ WireGuard හි දේශීය අනුවාදය භාවිතා කළ යුතුය.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "වත්මන් ක්රියාවලි ටෝකනය විවෘත කළ නොහැක: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "WireGuard භාවිතා කළ හැක්කේ Builtin {AdminGroupName} කණ්ඩායමේ සාමාජිකයෙකු වන පරිශීලකයින් විසින් පමණි.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "WireGuard ක්රියාත්මක වේ, නමුත් UI ප්රවේශ විය හැක්කේ Builtin {AdminGroupName} කාණ්ඩයේ ඩෙස්ක්ටොප් වලින් පමණි.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "WireGuard පද්ධති තැටි නිරූපකය තත්පර 30කට පසුව දිස් නොවීය.", + "translatorComment": "Copied from source." + }, + { "id": "Now", "message": "Now", "translation": "දැන්", "translatorComment": "Copied from source." }, { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "පද්ධති ඔරලෝසුව පසුපසට තුවාල වී ඇත!", + "translatorComment": "Copied from source." + }, + { "id": "{Years} year(s)", "message": "{Years} year(s)", "translation": { @@ -300,13 +394,49 @@ { "id": "Invalid IP address", "message": "Invalid IP address", - "translation": "වලංගු නොවන අ.ජා.කෙ. ලිපිනයකි", + "translation": "අ.ජා.කෙ. වලංගු නොවේ", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "වලංගු නොවන ජාල උපසර්ග දිග", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "අන්ත ලක්ෂ්යයෙන් වරාය අස්ථානගත වී ඇත", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "අවලංගු අන්ත ලක්ෂ්ය ධාරකයකි", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "වරහන් වල IPv6 ලිපිනයක් අඩංගු විය යුතුය", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid MTU", + "message": "Invalid MTU", + "translation": "වලංගු නොවන MTU", "translatorComment": "Copied from source." }, { "id": "Invalid port", "message": "Invalid port", - "translation": "වලංගු නොවන කෙවෙනියකි", + "translation": "තොට වලංගු නොවේ", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "වලංගු නොවන නොනැසී පැවතීම", "translatorComment": "Copied from source." }, { @@ -326,27 +456,109 @@ ] }, { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "යතුරු හරියටම බයිට් 32කට විකේතනය කළ යුතුය", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "අංකය 0 සහ 2^64-1: {Err}අතර අංකයක් විය යුතුය", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { "id": "Two commas in a row", "message": "Two commas in a row", "translation": "පේළියකට අල්පවිරාම දෙකක්", "translatorComment": "Copied from source." }, { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "උමං නම වලංගු නැත", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "රේඛාව කොටසක ඇති විය යුතුය", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "වින්යාස යතුර සමාන බෙදුම්කරුවෙකු අස්ථානගත වී ඇත", + "translatorComment": "Copied from source." + }, + { "id": "Key must have a value", "message": "Key must have a value", "translation": "යතුරට අගයක් තිබිය යුතුය", "translatorComment": "Copied from source." }, { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "[Interface] කොටස සඳහා වලංගු නොවන යතුර", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "[Peer] කොටස සඳහා වලංගු නොවන යතුර", + "translatorComment": "Copied from source." + }, + { "id": "An interface must have a private key", "message": "An interface must have a private key", - "translation": "අතුරුමුහුතකට පුද්ගලික යතුරක් තිබිය යුතුය", + "translation": "අතුරුමුහුතකට පුද්. යතුරක් තිබිය යුතුය", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[කිසිවක් සඳහන් කර නැත]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "සියලුම සම වයසේ මිතුරන්ට පොදු යතුරු තිබිය යුතුය", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "වින්යාසය ලබා ගැනීමේ දෝෂයකි", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "අතුරු මුහුණත කොටස සඳහා වලංගු නොවන යතුර", "translatorComment": "Copied from source." }, { "id": "Protocol version must be 1", "message": "Protocol version must be 1", - "translation": "කෙටුම්පතෙහි අනුවාදය 1 විය යුතුය", + "translation": "කෙටුම්පතෙහි අනු. 1 විය යුතුය", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "සම වයසේ කොටස සඳහා වලංගු නොවන යතුරක්", "translatorComment": "Copied from source." }, { @@ -364,10 +576,72 @@ { "id": "About WireGuard", "message": "About WireGuard", - "translation": "වයර්ගාඩ් පිළිබඳව", + "translation": "වයර්ගාඩ් ගැන", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "WireGuard ලාංඡන රූපය", "translatorComment": "Copied from source." }, { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "යෙදුම් අනුවාදය: {Number}\nGo backend අනුවාදය: {WireGuardGoVersion}\nGo අනුවාදය: {Version_go}-{GOARCH}\nමෙහෙයුම් පද්ධතිය: {OsName}\nගෘහ නිර්මාණ ශිල්පය: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { "id": "Close", "message": "Close", "translation": "වසන්න", @@ -382,13 +656,37 @@ { "id": "Status:", "message": "Status:", - "translation": "තත්වය:", + "translation": "තත්වය:", + "translatorComment": "Copied from source." + }, + { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "&අක්රිය කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&සක්රිය කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Public key:", + "message": "Public key:", + "translation": "පොදු යතුර:", "translatorComment": "Copied from source." }, { "id": "Listen port:", "message": "Listen port:", - "translation": "සවන්දීමේ කෙවෙනිය:", + "translation": "සවන්දීමේ තොට:", + "translatorComment": "Copied from source." + }, + { + "id": "MTU:", + "message": "MTU:", + "translation": "MTU:", "translatorComment": "Copied from source." }, { @@ -404,15 +702,81 @@ "translatorComment": "Copied from source." }, { + "id": "Scripts:", + "message": "Scripts:", + "translation": "ස්ක්රිප්ට්:", + "translatorComment": "Copied from source." + }, + { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "පෙර බෙදාගත් යතුර:", + "translatorComment": "Copied from source." + }, + { "id": "Allowed IPs:", "message": "Allowed IPs:", "translation": "ඉඩදුන් අ.ජා.කෙ.:", "translatorComment": "Copied from source." }, { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "අන්ත ලක්ෂ්යය:", + "translatorComment": "Copied from source." + }, + { + "id": "Persistent keepalive:", + "message": "Persistent keepalive:", + "translation": "නොනැසී පැවතීම:", + "translatorComment": "Copied from source." + }, + { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "නවතම අතට අත දීම:", + "translatorComment": "Copied from source." + }, + { + "id": "Transfer:", + "message": "Transfer:", + "translation": "මාරු:", + "translatorComment": "Copied from source." + }, + { + "id": "pre-up", + "message": "pre-up", + "translation": "පූර්ව-අප්", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "පශ්චාත්-අප්", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "පෙර-පහළට", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "පශ්චාත්-පහළ", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "ආබාධිත, ප්රතිපත්තිය අනුව", + "translatorComment": "Copied from source." + }, + { "id": "enabled", "message": "enabled", - "translation": "සබල කර ඇත", + "translation": "සබලයි", "translatorComment": "Copied from source." }, { @@ -440,6 +804,24 @@ ] }, { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "උමං තත්ත්වය තීරණය කිරීමට අසමත් විය", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "උමග සක්රිය කිරීමට අසමත් විය", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "උමග අක්රිය කිරීමට අසමත් විය", + "translatorComment": "Copied from source." + }, + { "id": "Interface: {Name}", "message": "Interface: {Name}", "translation": "අතුරුමුහුණත: {Name}", @@ -456,18 +838,54 @@ ] }, { + "id": "Peer", + "message": "Peer", + "translation": "සම වයසේ මිතුරන්", + "translatorComment": "Copied from source." + }, + { + "id": "Create new tunnel", + "message": "Create new tunnel", + "translation": "නව උමගක් සාදන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Edit tunnel", + "message": "Edit tunnel", + "translation": "උමග සංස්කරණය කරන්න", + "translatorComment": "Copied from source." + }, + { "id": "&Name:", "message": "&Name:", "translation": "&නම:", "translatorComment": "Copied from source." }, { + "id": "&Public key:", + "message": "&Public key:", + "translation": "&පොදු යතුර:", + "translatorComment": "Copied from source." + }, + { "id": "(unknown)", "message": "(unknown)", "translation": "(නොදනී)", "translatorComment": "Copied from source." }, { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&උමං මාර්ග රහිත ගමනාගමනය අවහිර කරන්න (මරන්න-ස්විච්)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "වින්යාසයකට හරියටම එක් මිතුරෙකු සිටින විට සහ එම සම වයසේ මිතුරෙකුට අවම වශයෙන් 0.0.0.0/0 හෝ ::/0 න් එකක් අඩංගු අවසර ලත් IPs තිබේ නම්, එවිට උමං සේවාව ෆයර්වෝල් නීති පද්ධතියක් සමඟ සම්බන්ධ වන අතර එමඟින් එම ස්ථානයට හෝ ඉන් පිටතට නොවන සියලුම ගමනාගමනය අවහිර කරයි. DHCP සහ NDP සඳහා විශේෂ ව්යතිරේක සහිතව උමං අතුරුමුහුණත හෝ වැරදි DNS සේවාදායකය වෙත වේ.", + "translatorComment": "Copied from source." + }, + { "id": "&Save", "message": "&Save", "translation": "&සුරකින්න", @@ -498,6 +916,50 @@ "translatorComment": "Copied from source." }, { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "උමං නම '{NewName}' වලංගු නැත.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "පවතින උමං ලැයිස්තුගත කළ නොහැක", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "උමග දැනටමත් පවතී", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "තවත් උමගක් දැනටමත් '{NewName}' යන නාමයෙන් පවතී.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { "id": "Unable to create new configuration", "message": "Unable to create new configuration", "translation": "නව වින්යාසය සෑදීමට නොහැකියි", @@ -510,21 +972,67 @@ "translatorComment": "Copied from source." }, { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "'{FilePath}' ගොනුව දැනටමත් පවතී.\n\nඔබට එය උඩින් ලිවීමට අවශ්යද?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "ක්රියාකාරී", + "translatorComment": "Copied from source." + }, + { "id": "Activating", "message": "Activating", - "translation": "ක්රියාත්මක වෙමින්", + "translation": "සක්රිය වෙමින්", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "අක්රියයි", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "අක්රිය කිරීම", "translatorComment": "Copied from source." }, { "id": "Unknown state", "message": "Unknown state", - "translation": "නොදන්නා තත්වයකි", + "translation": "නොදන්නා තත්වයකි", + "translatorComment": "Copied from source." + }, + { + "id": "Log", + "message": "Log", + "translation": "සටහන", "translatorComment": "Copied from source." }, { "id": "&Copy", "message": "&Copy", - "translation": "&පිටපත්", + "translation": "&පිටපතක්", + "translatorComment": "Copied from source." + }, + { + "id": "Select &all", + "message": "Select &all", + "translation": "&සියල්ල තෝරන්න", "translatorComment": "Copied from source." }, { @@ -540,15 +1048,55 @@ "translatorComment": "Copied from source." }, { + "id": "Log message", + "message": "Log message", + "translation": "ලොග් පණිවිඩය", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "පෙළ ගොනු (*.txt)|*.txt|සියලු ගොනු (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "ලොගය ගොනුවට අපනයනය කරන්න", + "translatorComment": "Copied from source." + }, + { "id": "&About WireGuard…", "message": "&About WireGuard…", - "translation": "&වයර්ගාඩ් පිළිබඳව…", + "translation": "&වයර්ගාඩ් ගැන…", "translatorComment": "Copied from source." }, { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "උමං දෝෂය", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nවැඩි විස්තර සඳහා කරුණාකර ලඝු-සටහන බලන්න.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { "id": "{Title} (out of date)", "message": "{Title} (out of date)", - "translation": "{Title} (කල් ඉකුත් වී ඇත)", + "translation": "{Title} (ඉකුත් වී ඇත)", "translatorComment": "Copied from source.", "placeholders": [ { @@ -562,9 +1110,15 @@ ] }, { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "WireGuard හඳුනාගැනීමේ දෝෂය", + "translatorComment": "Copied from source." + }, + { "id": "Unable to wait for WireGuard window to appear: {Err}", "message": "Unable to wait for WireGuard window to appear: {Err}", - "translation": "වයර්ගාඩ් කවුළුව පෙනෙන තෙක් රැඳීසිටිය නොහැකිය: {Err}", + "translation": "වයර්ගාඩ් කවුළුව පෙනෙන තෙක් බලා සිටීමට බලාපොරොත්තු වේ: {Err}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -578,9 +1132,33 @@ ] }, { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: අක්රිය කර ඇත", + "translatorComment": "Copied from source." + }, + { "id": "Status: Unknown", "message": "Status: Unknown", - "translation": "තත්වය: නොදනී", + "translation": "තත්වය: නොදනී", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "ලිපින: කිසිත් නැත", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&උමං…කළමනාකරණය කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "…ගොනුවෙන් උමං(ය) &ආයාත කරන්න", "translatorComment": "Copied from source." }, { @@ -590,15 +1168,65 @@ "translatorComment": "Copied from source." }, { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&උමං මාර්ග", + "translatorComment": "Copied from source." + }, + { "id": "WireGuard Activated", "message": "WireGuard Activated", "translation": "වයර්ගාඩ් ක්රියාත්මකයි", "translatorComment": "Copied from source." }, { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "{Name} උමග සක්රිය කර ඇත.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard අක්රිය කර ඇත", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "{Name} උමං මාර්ගය අක්රිය කර ඇත.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "WireGuard උමං දෝෂය", + "translatorComment": "Copied from source." + }, + { "id": "Status: {StateText}", "message": "Status: {StateText}", - "translation": "තත්වය: {StateText}", + "translation": "තත්වය: {StateText}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -628,12 +1256,138 @@ ] }, { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "යාවත්කාලීනයක් තිබේ!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "WireGuard යාවත්කාලීනය තිබේ", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "WireGuard වෙත යාවත්කාලීනයක් දැන් තිබේ. හැකි ඉක්මනින් යාවත්කාලීන කිරීමට ඔබට උපදෙස් දෙනු ලැබේ.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "උමං මාර්ග", + "translatorComment": "Copied from source." + }, + { "id": "&Edit", "message": "&Edit", "translation": "&සංස්කරණය", "translatorComment": "Copied from source." }, { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "හිස් උමං…එකතු කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "උමග එකතු කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "තෝරාගත් උමං(ය) ඉවත් කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "සියලුම උමං zip වෙත අපනයනය කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "&ටොගල් කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "සියලුම උමං &zip…වෙත අපනයනය කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "සංස්කරණය &තෝරාගත් උමග…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&තෝරාගත් උමං(ය) ඉවත් කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "වින්යාස ගොනු කිසිවක් හමු නොවිණි", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "තෝරාගත් වින්යාසය ආයාත කළ නොහැක: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "පවතින උමං මාර්ග ගණනය කළ නොහැක: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "තවත් උමගක් දැනටමත් '{Name}' නමින් පවතී", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { "id": "Unable to import configuration: {LastErr}", "message": "Unable to import configuration: {LastErr}", "translation": "වින්යාසය ආයාත කළ නොහැකිය: {LastErr}", @@ -650,9 +1404,173 @@ ] }, { + "id": "Imported tunnels", + "message": "Imported tunnels", + "translation": "ආනයනික උමං මාර්ග", + "translatorComment": "Copied from source." + }, + { + "id": "Imported {M} tunnels", + "message": "Imported {M} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "M", + "cases": { + "one": { + "msg": "උමං {M} ආනයනය කරන ලදී" + }, + "other": { + "msg": "උමං {M} ක් ආනයනය කරන ලදී" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + } + ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "උමං {N} කින් {M} ක් ආනයනය කරන ලදී" + }, + "other": { + "msg": "උමං {N} කින් {M} ක් ආනයනය කරන ලදී" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "උමග නිර්මාණය කළ නොහැක", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "{TunnelCount} උමග මකන්න" + }, + "other": { + "msg": "උමං {TunnelCount} ක් මකන්න" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "ඔබ {TunnelCount} උමග මැකීමට කැමති බව විශ්වාසද?" + }, + "other": { + "msg": "ඔබ උමං මාර්ග {TunnelCount} ක් මැකීමට කැමති බව විශ්වාසද?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "උමං '{TunnelName}' මකන්න", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "ඔබ '{TunnelName}' උමඟ මැකීමට කැමති බව විශ්වාසද?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { "id": "{Question} You cannot undo this action.", "message": "{Question} You cannot undo this action.", - "translation": "{Question} මෙම ක්රියාමාර්ගය ආපසු හැරවිය නොහැකිය.", + "translation": "{Question} මෙම ක්රියාව ආපසු හැරවිය.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -666,15 +1584,133 @@ ] }, { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "උමග මැකීමට නොහැකිය", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "උමගක් ඉවත් කිරීමට නොහැකි විය: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "උමං මකා දැමිය නොහැක", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "{Lenerrors} උමං ඉවත් කිරීමට නොහැකි විය." + }, + "other": { + "msg": "උමං {Lenerrors} ක් ඉවත් කිරීමට නොහැකි විය." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "වින්යාස ගොනු (*.zip, *.conf)|*.zip;*.conf|සියලු ගොනු (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "ගොනුවෙන් උමං(ය) ආයාත කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "වින්යාස කිරීම ZIP ගොනු (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "zip වෙත උමං අපනයනය කරන්න", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (අත්සන් නොකළ ගොඩනැගීම, යාවත්කාලීන නැත)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { "id": "Error Exiting WireGuard", "message": "Error Exiting WireGuard", "translation": "වයර්ගාඩ් පිටවීමේදී දෝෂයකි", "translatorComment": "Copied from source." }, { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "{Err}නිසා සේවයෙන් ඉවත් විය නොහැක. ඔබට සේවා කළමනාකරුගෙන් WireGuard නැවැත්වීමට අවශ්ය විය හැකිය.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "WireGuard වෙත යාවත්කාලීනයක් තිබේ. ප්රමාදයකින් තොරව යාවත්කාලීන කිරීම ඉතා යෝග්ය වේ.", + "translatorComment": "Copied from source." + }, + { "id": "Status: Waiting for user", "message": "Status: Waiting for user", - "translation": "තත්වය: පරිශීලක සඳහා රැඳෙමින්", + "translation": "තත්වය: පරිශීලක සඳහා රැඳෙමින්", "translatorComment": "Copied from source." }, { @@ -686,7 +1722,7 @@ { "id": "Status: Waiting for updater service", "message": "Status: Waiting for updater service", - "translation": "තත්වය: යාවත්කාල සේවාව සඳහා රැඳෙමින්", + "translation": "තත්වය: යාවත්කාල සේවාව සඳහා රැඳෙමින්", "translatorComment": "Copied from source." }, { @@ -708,8 +1744,88 @@ { "id": "Status: Complete!", "message": "Status: Complete!", - "translation": "තත්වය: සම්පූර්ණයි!", + "translation": "තත්වය: සම්පූර්ණයි!", "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Framer {F}: ලියන ලද රාමුව විකේතනය කිරීමට අසමත් විය", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: රාමු {F}: ලිව්වේ {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: රාමු {Fr}: කියවන්න {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: විකේතනය කළ hpack ක්ෂේත්ර {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] } ] }
\ No newline at end of file diff --git a/locales/sk/messages.gotext.json b/locales/sk/messages.gotext.json index d5aeb165..0591c0ae 100644 --- a/locales/sk/messages.gotext.json +++ b/locales/sk/messages.gotext.json @@ -680,7 +680,7 @@ { "id": "♥ &Donate!", "message": "♥ &Donate!", - "translation": "♥ a Darovat!", + "translation": "♥ &Darovat!", "translatorComment": "Copied from source." }, { @@ -692,13 +692,13 @@ { "id": "&Deactivate", "message": "&Deactivate", - "translation": "a Deaktivovať", + "translation": "&Deaktivovať", "translatorComment": "Copied from source." }, { "id": "&Activate", "message": "&Activate", - "translation": "a Aktivovať", + "translation": "&Aktivovať", "translatorComment": "Copied from source." }, { @@ -1822,6 +1822,86 @@ "message": "Status: Complete!", "translation": "Stav: Dokončené!", "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Framer {F}: failed to decode just-written frame", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: decoded hpack field {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] } ] }
\ No newline at end of file diff --git a/locales/sl/messages.gotext.json b/locales/sl/messages.gotext.json index c3418f02..d1cf6f90 100644 --- a/locales/sl/messages.gotext.json +++ b/locales/sl/messages.gotext.json @@ -692,7 +692,7 @@ { "id": "&Deactivate", "message": "&Deactivate", - "translation": "&Deaktiviraj", + "translation": "&Dezaktiviraj", "translatorComment": "Copied from source." }, { @@ -788,13 +788,13 @@ { "id": "pre-down", "message": "pre-down", - "translation": "pred-deaktivacijo", + "translation": "pred-dezaktivacijo", "translatorComment": "Copied from source." }, { "id": "post-down", "message": "post-down", - "translation": "po-deaktivaciji", + "translation": "po-dezaktivaciji", "translatorComment": "Copied from source." }, { @@ -848,7 +848,7 @@ { "id": "Failed to deactivate tunnel", "message": "Failed to deactivate tunnel", - "translation": "Napaka pri deaktiviranju tunela", + "translation": "Napaka pri dezaktiviranju tunela", "translatorComment": "Copied from source." }, { @@ -1038,7 +1038,7 @@ { "id": "Deactivating", "message": "Deactivating", - "translation": "Se deaktivira", + "translation": "Se dezaktivira", "translatorComment": "Copied from source." }, { @@ -1164,7 +1164,7 @@ { "id": "WireGuard: Deactivated", "message": "WireGuard: Deactivated", - "translation": "WireGuard: Deaktiviran", + "translation": "WireGuard: Dezaktiviran", "translatorComment": "Copied from source." }, { @@ -1228,13 +1228,13 @@ { "id": "WireGuard Deactivated", "message": "WireGuard Deactivated", - "translation": "WireGuard deaktiviran", + "translation": "WireGuard dezaktiviran", "translatorComment": "Copied from source." }, { "id": "The {Name} tunnel has been deactivated.", "message": "The {Name} tunnel has been deactivated.", - "translation": "Tunel {Name} je bil deaktiviran.", + "translation": "Tunel {Name} je bil dezaktiviran.", "translatorComment": "Copied from source.", "placeholders": [ { diff --git a/locales/sv-SE/messages.gotext.json b/locales/sv-SE/messages.gotext.json new file mode 100644 index 00000000..5d2685dc --- /dev/null +++ b/locales/sv-SE/messages.gotext.json @@ -0,0 +1,1847 @@ +{ + "language": "sv-SE", + "messages": [ + { + "id": "Error", + "message": "Error", + "translation": "Fel", + "translatorComment": "Copied from source." + }, + { + "id": "(no argument): elevate and install manager service", + "message": "(no argument): elevate and install manager service", + "translation": "(inget argument): höj och installera hanterartjänsten", + "translatorComment": "Copied from source." + }, + { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "Användning: {Args0} [\n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "Kommandoradsalternativ", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to determine whether the process is running under WOW64: {Err}", + "message": "Unable to determine whether the process is running under WOW64: {Err}", + "translation": "Det går inte att avgöra om processen körs under WOW64: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "You must use the native version of WireGuard on this computer.", + "message": "You must use the native version of WireGuard on this computer.", + "translation": "Du måste använda den inbyggda versionen av WireGuard på denna dator.", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to open current process token: {Err}", + "message": "Unable to open current process token: {Err}", + "translation": "Det går inte att öppna nuvarande process-token: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", + "translation": "WireGuard får endast användas av användare som är medlemmar i gruppen Builtin {AdminGroupName}.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", + "translation": "WireGuard körs, men gränssnittet är endast tillgängligt från skrivbordet i gruppen Builtin {AdminGroupName}.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "AdminGroupName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "elevate.AdminGroupName()" + } + ] + }, + { + "id": "WireGuard system tray icon did not appear after 30 seconds.", + "message": "WireGuard system tray icon did not appear after 30 seconds.", + "translation": "WireGuard systemfältet visades inte efter 30 sekunder.", + "translatorComment": "Copied from source." + }, + { + "id": "Now", + "message": "Now", + "translation": "Nu", + "translatorComment": "Copied from source." + }, + { + "id": "System clock wound backward!", + "message": "System clock wound backward!", + "translation": "Systemets klocka har ställts tillbaka!", + "translatorComment": "Copied from source." + }, + { + "id": "{Years} year(s)", + "message": "{Years} year(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Years", + "cases": { + "one": { + "msg": "{Years} år" + }, + "other": { + "msg": "{Years} år" + } + } + } + }, + "placeholders": [ + { + "id": "Years", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "years" + } + ] + }, + { + "id": "{Days} day(s)", + "message": "{Days} day(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Days", + "cases": { + "one": { + "msg": "{Days} dag" + }, + "other": { + "msg": "{Days} dagar" + } + } + } + }, + "placeholders": [ + { + "id": "Days", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "days" + } + ] + }, + { + "id": "{Hours} hour(s)", + "message": "{Hours} hour(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Hours", + "cases": { + "one": { + "msg": "{Hours} timme" + }, + "other": { + "msg": "{Hours} timmar" + } + } + } + }, + "placeholders": [ + { + "id": "Hours", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "hours" + } + ] + }, + { + "id": "{Minutes} minute(s)", + "message": "{Minutes} minute(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Minutes", + "cases": { + "one": { + "msg": "{Minutes} minut" + }, + "other": { + "msg": "{Minutes} minuter" + } + } + } + }, + "placeholders": [ + { + "id": "Minutes", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "minutes" + } + ] + }, + { + "id": "{Seconds} second(s)", + "message": "{Seconds} second(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Seconds", + "cases": { + "one": { + "msg": "{Seconds} sekund" + }, + "other": { + "msg": "{Seconds} sekunder" + } + } + } + }, + "placeholders": [ + { + "id": "Seconds", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "seconds" + } + ] + }, + { + "id": "{Timestamp} ago", + "message": "{Timestamp} ago", + "translation": "{Timestamp} sedan", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Timestamp", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "timestamp" + } + ] + }, + { + "id": "{Bytes} B", + "message": "{Bytes} B", + "translation": "{Bytes} B", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Bytes", + "string": "%[1]d", + "type": "golang.zx2c4.com/wireguard/windows/conf.Bytes", + "underlyingType": "uint64", + "argNum": 1, + "expr": "b" + } + ] + }, + { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { + "id": "{Why}: {Offender}", + "message": "{Why}: {Offender}", + "translation": "{Why}: {Offender}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Why", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "e.why" + }, + { + "id": "Offender", + "string": "%[2]q", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "e.offender" + } + ] + }, + { + "id": "Invalid IP address", + "message": "Invalid IP address", + "translation": "Ogiltig IP-adress", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid network prefix length", + "message": "Invalid network prefix length", + "translation": "Ogiltigt nätverksprefixlängd", + "translatorComment": "Copied from source." + }, + { + "id": "Missing port from endpoint", + "message": "Missing port from endpoint", + "translation": "Saknad port från slutpunkt", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "Ogiltig slutpunktsvärd", + "translatorComment": "Copied from source." + }, + { + "id": "Brackets must contain an IPv6 address", + "message": "Brackets must contain an IPv6 address", + "translation": "Parenteser måste innehålla en IPv6-adress", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid MTU", + "message": "Invalid MTU", + "translation": "Ogiltig MTU", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid port", + "message": "Invalid port", + "translation": "Ogiltig port", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid persistent keepalive", + "message": "Invalid persistent keepalive", + "translation": "Ogiltig beständig keepalive", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key: {Err}", + "message": "Invalid key: {Err}", + "translation": "Ogiltig nyckel: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Keys must decode to exactly 32 bytes", + "message": "Keys must decode to exactly 32 bytes", + "translation": "Nycklar måste avkoda till exakt 32 byte", + "translatorComment": "Copied from source." + }, + { + "id": "Number must be a number between 0 and 2^64-1: {Err}", + "message": "Number must be a number between 0 and 2^64-1: {Err}", + "translation": "Numret måste vara ett tal mellan 0 och 2^64-1: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Two commas in a row", + "message": "Two commas in a row", + "translation": "Två kommatecken i rad", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name is not valid", + "message": "Tunnel name is not valid", + "translation": "Tunnelnamn är ogiltig", + "translatorComment": "Copied from source." + }, + { + "id": "Line must occur in a section", + "message": "Line must occur in a section", + "translation": "Linje måste förekomma i ett avsnitt", + "translatorComment": "Copied from source." + }, + { + "id": "Config key is missing an equals separator", + "message": "Config key is missing an equals separator", + "translation": "Konfigurationsnyckel saknar en likvärdig separator", + "translatorComment": "Copied from source." + }, + { + "id": "Key must have a value", + "message": "Key must have a value", + "translation": "Nyckel måste ha ett värde", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Interface] section", + "message": "Invalid key for [Interface] section", + "translation": "Ogiltig nyckel för sektionen [Interface]", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for [Peer] section", + "message": "Invalid key for [Peer] section", + "translation": "Ogiltig nyckel för sektionen [Peer]", + "translatorComment": "Copied from source." + }, + { + "id": "An interface must have a private key", + "message": "An interface must have a private key", + "translation": "Ett gränssnitt måste innehålla en privat nyckel", + "translatorComment": "Copied from source." + }, + { + "id": "[none specified]", + "message": "[none specified]", + "translation": "[ingen angiven]", + "translatorComment": "Copied from source." + }, + { + "id": "All peers must have public keys", + "message": "All peers must have public keys", + "translation": "Alla peers måste ha offentliga nycklar", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "Fel vid hämtning av konfiguration", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for interface section", + "message": "Invalid key for interface section", + "translation": "Ogiltig nyckel för gränssnittsavsnitt", + "translatorComment": "Copied from source." + }, + { + "id": "Protocol version must be 1", + "message": "Protocol version must be 1", + "translation": "Protokollversion måste vara 1", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid key for peer section", + "message": "Invalid key for peer section", + "translation": "Ogiltig nyckel för peer-avsnitt", + "translatorComment": "Copied from source." + }, + { + "id": "[EnumerationSeparator]", + "message": "[EnumerationSeparator]", + "translation": ", ", + "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." + }, + { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": ", ", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { + "id": "About WireGuard", + "message": "About WireGuard", + "translation": "Om WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard logo image", + "message": "WireGuard logo image", + "translation": "WireGuard-logotyp bild", + "translatorComment": "Copied from source." + }, + { + "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", + "translation": "Appversion: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperativsystem: {OsName}\nArkitektur: {NativeArch}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Number", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "version.Number" + }, + { + "id": "WireGuardGoVersion", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "device.WireGuardGoVersion" + }, + { + "id": "Version_go", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" + }, + { + "id": "GOARCH", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "runtime.GOARCH" + }, + { + "id": "OsName", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "version.OsName()" + }, + { + "id": "NativeArch", + "string": "%[6]s", + "type": "string", + "underlyingType": "string", + "argNum": 6, + "expr": "version.NativeArch()" + } + ] + }, + { + "id": "Close", + "message": "Close", + "translation": "Stäng", + "translatorComment": "Copied from source." + }, + { + "id": "♥ &Donate!", + "message": "♥ &Donate!", + "translation": "♥ &Donera!", + "translatorComment": "Copied from source." + }, + { + "id": "Status:", + "message": "Status:", + "translation": "Status:", + "translatorComment": "Copied from source." + }, + { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "&Avaktivera", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "&Aktivera", + "translatorComment": "Copied from source." + }, + { + "id": "Public key:", + "message": "Public key:", + "translation": "Publik nyckel:", + "translatorComment": "Copied from source." + }, + { + "id": "Listen port:", + "message": "Listen port:", + "translation": "Lyssningsport:", + "translatorComment": "Copied from source." + }, + { + "id": "MTU:", + "message": "MTU:", + "translation": "MTU:", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses:", + "message": "Addresses:", + "translation": "Adresser:", + "translatorComment": "Copied from source." + }, + { + "id": "DNS servers:", + "message": "DNS servers:", + "translation": "DNS-servrar:", + "translatorComment": "Copied from source." + }, + { + "id": "Scripts:", + "message": "Scripts:", + "translation": "Skript:", + "translatorComment": "Copied from source." + }, + { + "id": "Preshared key:", + "message": "Preshared key:", + "translation": "Fördelad nyckel:", + "translatorComment": "Copied from source." + }, + { + "id": "Allowed IPs:", + "message": "Allowed IPs:", + "translation": "Tillåtna IP: s:", + "translatorComment": "Copied from source." + }, + { + "id": "Endpoint:", + "message": "Endpoint:", + "translation": "Slutpunkt:", + "translatorComment": "Copied from source." + }, + { + "id": "Persistent keepalive:", + "message": "Persistent keepalive:", + "translation": "Beständig keepalive:", + "translatorComment": "Copied from source." + }, + { + "id": "Latest handshake:", + "message": "Latest handshake:", + "translation": "Senaste handskakning:", + "translatorComment": "Copied from source." + }, + { + "id": "Transfer:", + "message": "Transfer:", + "translation": "Överföring:", + "translatorComment": "Copied from source." + }, + { + "id": "pre-up", + "message": "pre-up", + "translation": "före uppstart", + "translatorComment": "Copied from source." + }, + { + "id": "post-up", + "message": "post-up", + "translation": "efter uppstart", + "translatorComment": "Copied from source." + }, + { + "id": "pre-down", + "message": "pre-down", + "translation": "innan nertagning", + "translatorComment": "Copied from source." + }, + { + "id": "post-down", + "message": "post-down", + "translation": "efter nedtagning", + "translatorComment": "Copied from source." + }, + { + "id": "disabled, per policy", + "message": "disabled, per policy", + "translation": "inaktiverad, per policy", + "translatorComment": "Copied from source." + }, + { + "id": "enabled", + "message": "enabled", + "translation": "aktiverad", + "translatorComment": "Copied from source." + }, + { + "id": "{String} received, {String_1} sent", + "message": "{String} received, {String_1} sent", + "translation": "{String} mottagen, {String_1} skickad", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "c.RxBytes.String()" + }, + { + "id": "String_1", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "c.TxBytes.String()" + } + ] + }, + { + "id": "Failed to determine tunnel state", + "message": "Failed to determine tunnel state", + "translation": "Det gick inte att bestämma tunnelns tillstånd", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to activate tunnel", + "message": "Failed to activate tunnel", + "translation": "Kunde inte aktivera tunneln", + "translatorComment": "Copied from source." + }, + { + "id": "Failed to deactivate tunnel", + "message": "Failed to deactivate tunnel", + "translation": "Kunde inte avaktivera tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "Interface: {Name}", + "message": "Interface: {Name}", + "translation": "Gränssnitt: {Name}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "config.Name" + } + ] + }, + { + "id": "Peer", + "message": "Peer", + "translation": "Peer", + "translatorComment": "Copied from source." + }, + { + "id": "Create new tunnel", + "message": "Create new tunnel", + "translation": "Skapa ny tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "Edit tunnel", + "message": "Edit tunnel", + "translation": "Redigera tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "&Name:", + "message": "&Name:", + "translation": "&Namn:", + "translatorComment": "Copied from source." + }, + { + "id": "&Public key:", + "message": "&Public key:", + "translation": "&Publik nyckel:", + "translatorComment": "Copied from source." + }, + { + "id": "(unknown)", + "message": "(unknown)", + "translation": "(okänd)", + "translatorComment": "Copied from source." + }, + { + "id": "&Block untunneled traffic (kill-switch)", + "message": "&Block untunneled traffic (kill-switch)", + "translation": "&Blockera otunnlad trafik (kill-switch)", + "translatorComment": "Copied from source." + }, + { + "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", + "translation": "När en konfiguration har exakt en peer och denna peer har en tillåten IP-adress som innehåller åtminstone 0.0.0.0/0 eller ::/0, kommer tunneltjänsten aktivera en brandväggsregel som förhindrar all trafik som varken är till eller från tunnelns gränssnitt eller är till fel DNS-server, med särskilda undantag för DHCP och NDP.", + "translatorComment": "Copied from source." + }, + { + "id": "&Save", + "message": "&Save", + "translation": "&Spara", + "translatorComment": "Copied from source." + }, + { + "id": "Cancel", + "message": "Cancel", + "translation": "Avbryt", + "translatorComment": "Copied from source." + }, + { + "id": "&Configuration:", + "message": "&Configuration:", + "translation": "&Konfiguration:", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid name", + "message": "Invalid name", + "translation": "Ogiltigt namn", + "translatorComment": "Copied from source." + }, + { + "id": "A name is required.", + "message": "A name is required.", + "translation": "Ett namn krävs.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel name ‘{NewName}’ is invalid.", + "message": "Tunnel name ‘{NewName}’ is invalid.", + "translation": "Tunnelnamnet ‘{NewName}’ är ogiltigt.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to list existing tunnels", + "message": "Unable to list existing tunnels", + "translation": "Kan inte lista befintliga tunnlar", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel already exists", + "message": "Tunnel already exists", + "translation": "Tunnel finns redan", + "translatorComment": "Copied from source." + }, + { + "id": "Another tunnel already exists with the name ‘{NewName}’.", + "message": "Another tunnel already exists with the name ‘{NewName}’.", + "translation": "En annan tunnel finns redan med namnet ‘{NewName}’.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "NewName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "newName" + } + ] + }, + { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "Kan inte skapa ny inställning", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Misslyckades att skriva till fil", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "Filen ‘{FilePath}’ finns redan.\n\nVill du skriva över den?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "Aktiv", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "Aktiverar", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "Passiv", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "Passiviserar", + "translatorComment": "Copied from source." + }, + { + "id": "Unknown state", + "message": "Unknown state", + "translation": "Okänt tillstånd", + "translatorComment": "Copied from source." + }, + { + "id": "Log", + "message": "Log", + "translation": "Logg", + "translatorComment": "Copied from source." + }, + { + "id": "&Copy", + "message": "&Copy", + "translation": "&Kopiera", + "translatorComment": "Copied from source." + }, + { + "id": "Select &all", + "message": "Select &all", + "translation": "Markera &allt", + "translatorComment": "Copied from source." + }, + { + "id": "&Save to file…", + "message": "&Save to file…", + "translation": "&Spara till fil…", + "translatorComment": "Copied from source." + }, + { + "id": "Time", + "message": "Time", + "translation": "Tid", + "translatorComment": "Copied from source." + }, + { + "id": "Log message", + "message": "Log message", + "translation": "Loggmeddelande", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "Textfiler (*.txt)|*.txt|Alla filer (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "Exportera logg till fil", + "translatorComment": "Copied from source." + }, + { + "id": "&About WireGuard…", + "message": "&About WireGuard…", + "translation": "&Om WireGuard…", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "Tunnelfel", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nVänligen inspektera loggen för mer information.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (föråldrad)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "WireGuard Vaktfel", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "Lyckas inte vänta på att WireGuard fönstret ska visas: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: inaktiverad", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "Status: Okänd", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "Adresser: Ingen", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Hantera tunnlar…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&Importera tunnlar från fil…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "A&vsluta", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&Tunnlar", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard aktiverad", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "{Name} tunneln har aktiverats.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard inaktiverad", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "{Name} tunneln har inaktiverats.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "WireGuard Tunnelfel", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "Status: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "Adresser: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "En uppdatering är tillgänglig!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "WireGuard uppdatering tillgänglig", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "En uppdatering till WireGuard är nu tillgänglig. Du rekommenderas att uppdatera så snart som möjligt.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "Tunnlar", + "translatorComment": "Copied from source." + }, + { + "id": "&Edit", + "message": "&Edit", + "translation": "&Redigera", + "translatorComment": "Copied from source." + }, + { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "Lägg till &tom tunnel…", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "Skapa tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "Ta bort valda tunnlar", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "Exportera alla tunnlar till zip", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "&Växla", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Exportera alla tunnlar till &zip…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Redigera &vald tunnel…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&Ta bort valda tunnlar", + "translatorComment": "Copied from source." + }, + { + "id": "no configuration files were found", + "message": "no configuration files were found", + "translation": "inga konfigurationsfiler hittades", + "translatorComment": "Copied from source." + }, + { + "id": "Could not import selected configuration: {LastErr}", + "message": "Could not import selected configuration: {LastErr}", + "translation": "Kunde inte importera vald konfiguration: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Could not enumerate existing tunnels: {LastErr}", + "message": "Could not enumerate existing tunnels: {LastErr}", + "translation": "Det gick inte att numrera existerande tunnlar: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Another tunnel already exists with the name ‘{Name}’", + "message": "Another tunnel already exists with the name ‘{Name}’", + "translation": "Det finns redan en annan tunnel med namnet ‘{Name}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "unparsedConfig.Name" + } + ] + }, + { + "id": "Unable to import configuration: {LastErr}", + "message": "Unable to import configuration: {LastErr}", + "translation": "Kan inte importera konfiguration: {LastErr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "LastErr", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "lastErr" + } + ] + }, + { + "id": "Imported tunnels", + "message": "Imported tunnels", + "translation": "Importerade tunnlar", + "translatorComment": "Copied from source." + }, + { + "id": "Imported {M} tunnels", + "message": "Imported {M} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "M", + "cases": { + "one": { + "msg": "Importerade {M} tunnel" + }, + "other": { + "msg": "Importerade {M} tunnlar" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + } + ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "Importerade {M} av {N} tunnlar" + }, + "other": { + "msg": "Importerade {M} av {N} tunnlar" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "Kan inte skapa tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Ta bort {TunnelCount} tunnel" + }, + "other": { + "msg": "Ta bort {TunnelCount} tunnlar" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Är du säker på att du vill ta bort {TunnelCount} tunnel?" + }, + "other": { + "msg": "Är du säker på att du vill radera {TunnelCount} tunnlar?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "Ta bort tunnel ‘{TunnelName}’", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "Är du säker på att du vill ta bort tunneln ‘{TunnelName}’?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} Du kan inte ångra denna åtgärd.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "Kan inte ta bort tunnel", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "En tunnel kunde inte tas bort: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "Kan inte ta bort tunnlar", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "{Lenerrors} tunneln kunde inte tas bort." + }, + "other": { + "msg": "{Lenerrors} tunnlar kunde inte tas bort." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "Inställningsfiler (*.zip, *.conf)|*.zip;*.conf|Alla filer (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "Importera tunnlar från fil", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "Inställningsfiler ZIP (*.zip)|*.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Exportera tunnlar till zip", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (osignerat bygge, inga uppdateringar)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "Fel när WireGuard avslutades", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "Det går inte att avsluta tjänsten på grund av {Err}. Du kanske vill stoppa WireGuard från servicehanteraren.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "En uppdatering av WireGuard finns tillgänglig. Uppdatering bör utföras snarast möjligt.", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for user", + "message": "Status: Waiting for user", + "translation": "Status: Väntar på användaren", + "translatorComment": "Copied from source." + }, + { + "id": "Update Now", + "message": "Update Now", + "translation": "Uppdatera nu", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for updater service", + "message": "Status: Waiting for updater service", + "translation": "Status: Väntar på uppdateringstjänst", + "translatorComment": "Copied from source." + }, + { + "id": "Error: {Err}. Please try again.", + "message": "Error: {Err}. Please try again.", + "translation": "Fel: {Err}. Vänligen försök igen.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Status: Complete!", + "message": "Status: Complete!", + "translation": "Status: Färdig!", + "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Framer {F}: misslyckades att avkoda \"just-written frame\"", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: Framer {F}: skrev {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: Framer {Fr}: läs {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: avkodat hpack fält {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] + } + ] +}
\ No newline at end of file diff --git a/locales/tr/messages.gotext.json b/locales/tr/messages.gotext.json index d51b67e8..9aa7291e 100644 --- a/locales/tr/messages.gotext.json +++ b/locales/tr/messages.gotext.json @@ -10,7 +10,7 @@ { "id": "(no argument): elevate and install manager service", "message": "(no argument): elevate and install manager service", - "translation": "(argüman verilmediyse): gerekli izinleri al ve yönetim hizmetini kur", + "translation": "(parametre belirtilmediyse): gerekli izinleri al ve yönetim hizmetini yükle", "translatorComment": "Copied from source." }, { @@ -62,13 +62,13 @@ { "id": "You must use the native version of WireGuard on this computer.", "message": "You must use the native version of WireGuard on this computer.", - "translation": "Bu bilgisayarda WireGuard'ın yerel sürümünü kullanmanız gerek.", + "translation": "Bu bilgisayarda WireGuard'ın yerel sürümünü kullanmalısınız.", "translatorComment": "Copied from source." }, { "id": "Unable to open current process token: {Err}", "message": "Unable to open current process token: {Err}", - "translation": "Şu anki işlem jetonu açılamadı: {Err}", + "translation": "Geçerli işlem jetonu açılamadı: {Err}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -84,7 +84,7 @@ { "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", - "translation": "WireGuard sadece sisteme yerleşik {AdminGroupName} grubunun üyeleri tarafından kullanılabilir.", + "translation": "WireGuard'ı sadece yerleşik {AdminGroupName} grubunun üyeleri kullanabilir.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -100,7 +100,7 @@ { "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", - "translation": "WireGuard çalışıyor, fakat kullanıcı arayüzü sadece sisteme yerleşik {AdminGroupName} grubunun üyesi olan kullanıcılar tarafından masaüstünde erişilebilir.", + "translation": "WireGuard çalışıyor fakat kullanıcı arayüzüne sadece yerleşik {AdminGroupName} grubunun bilgisayarlarından erişilebilir.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -116,7 +116,7 @@ { "id": "WireGuard system tray icon did not appear after 30 seconds.", "message": "WireGuard system tray icon did not appear after 30 seconds.", - "translation": "WireGuard sistem tepsisi ikonu 30 saniye sonunda belirmedi.", + "translation": "WireGuard sistem tepsisi simgesi 30 saniye sonunda belirmedi.", "translatorComment": "Copied from source." }, { @@ -128,7 +128,7 @@ { "id": "System clock wound backward!", "message": "System clock wound backward!", - "translation": "Sistem saati geriye sarılmış!", + "translation": "Sistem saati geri alınmış!", "translatorComment": "Copied from source." }, { @@ -400,13 +400,13 @@ { "id": "Invalid network prefix length", "message": "Invalid network prefix length", - "translation": "Ağ öneki uzunluğu geçersiz", + "translation": "Geçersiz ağ öneki uzunluğu", "translatorComment": "Copied from source." }, { "id": "Missing port from endpoint", "message": "Missing port from endpoint", - "translation": "Uç nokta port ayarı eksik", + "translation": "Uç nokta portu eksik", "translatorComment": "Copied from source." }, { @@ -418,7 +418,7 @@ { "id": "Brackets must contain an IPv6 address", "message": "Brackets must contain an IPv6 address", - "translation": "Parantezler bir IPv6 adresi içermelidir", + "translation": "Köşeli parantezler IPv6 adresi içermelidir", "translatorComment": "Copied from source." }, { @@ -436,7 +436,7 @@ { "id": "Invalid persistent keepalive", "message": "Invalid persistent keepalive", - "translation": "Geçersiz kalıcı açık bırakma", + "translation": "Geçersiz sürekli keepalive", "translatorComment": "Copied from source." }, { @@ -458,13 +458,13 @@ { "id": "Keys must decode to exactly 32 bytes", "message": "Keys must decode to exactly 32 bytes", - "translation": "Anahtarlar çözüldüğünde tam 32 byte olmalı", + "translation": "Anahtarlar çözüldüğünde tam 32 bayt olmalıdır", "translatorComment": "Copied from source." }, { "id": "Number must be a number between 0 and 2^64-1: {Err}", "message": "Number must be a number between 0 and 2^64-1: {Err}", - "translation": "Sayı 0 ve 2^64-1 arasında bir sayı olmalı: {Err}", + "translation": "Sayı 0 ile 2^64-1 arasında olmalıdır: {Err}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -492,13 +492,13 @@ { "id": "Line must occur in a section", "message": "Line must occur in a section", - "translation": "Satır bir bölümde olmalı", + "translation": "Satır bir bölüm içinde olmalıdır", "translatorComment": "Copied from source." }, { "id": "Config key is missing an equals separator", "message": "Config key is missing an equals separator", - "translation": "Yapılandırma anahtarında eşittir operatörü eksik", + "translation": "Yapılandırma anahtarında eşittir ayracı eksik", "translatorComment": "Copied from source." }, { @@ -522,25 +522,25 @@ { "id": "An interface must have a private key", "message": "An interface must have a private key", - "translation": "Bir arabirim gizli anahtara sahip olmalıdır", + "translation": "Arabirimde gizli anahtar bulunmalıdır", "translatorComment": "Copied from source." }, { "id": "[none specified]", "message": "[none specified]", - "translation": "[hiçbir şey belirtilmemiş}", + "translation": "[belirtilmedi]", "translatorComment": "Copied from source." }, { "id": "All peers must have public keys", "message": "All peers must have public keys", - "translation": "Tüm eşler açık anahtarlara sahip olmalı", + "translation": "Tüm eşlerin ortak anahtarları olmalıdır", "translatorComment": "Copied from source." }, { "id": "Error in getting configuration", "message": "Error in getting configuration", - "translation": "Yapılandırma bilgisi alınırken hata oluştu", + "translation": "Yapılandırma alınırken hata oluştu", "translatorComment": "Copied from source." }, { @@ -552,7 +552,7 @@ { "id": "Protocol version must be 1", "message": "Protocol version must be 1", - "translation": "Protokol sürümü 1 olmak zorunda", + "translation": "Protokol sürümü 1 olmalıdır", "translatorComment": "Copied from source." }, { @@ -582,13 +582,13 @@ { "id": "WireGuard logo image", "message": "WireGuard logo image", - "translation": "WireGuard logo resmi", + "translation": "WireGuard logosu", "translatorComment": "Copied from source." }, { "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", - "translation": "Uygulama sürümü: {Number}\nGo arkauç sürümü: {WireGuardGoVersion}\nGo sürümü: {Version_go}-{GOARCH}\nİşletim sistemi: {OsName}\nMimari: {NativeArch}", + "translation": "Uygulama sürümü: {Number}\nGo arka uç sürümü: {WireGuardGoVersion}\nGo sürümü: {Version_go}-{GOARCH}\nİşletim sistemi: {OsName}\nMimari: {NativeArch}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -674,7 +674,7 @@ { "id": "Public key:", "message": "Public key:", - "translation": "Açık anahtar:", + "translation": "Ortak anahtar:", "translatorComment": "Copied from source." }, { @@ -704,19 +704,19 @@ { "id": "Scripts:", "message": "Scripts:", - "translation": "Komut dosyaları:", + "translation": "Betikler:", "translatorComment": "Copied from source." }, { "id": "Preshared key:", "message": "Preshared key:", - "translation": "Önceden paylaşılmış anahtar:", + "translation": "Önceden paylaşılan anahtar:", "translatorComment": "Copied from source." }, { "id": "Allowed IPs:", "message": "Allowed IPs:", - "translation": "İzin verilen IP'ler:", + "translation": "İzin verilen IP’ler:", "translatorComment": "Copied from source." }, { @@ -728,7 +728,7 @@ { "id": "Persistent keepalive:", "message": "Persistent keepalive:", - "translation": "Kalıcı açık tutma:", + "translation": "Sürekli keepalive:", "translatorComment": "Copied from source." }, { @@ -746,31 +746,31 @@ { "id": "pre-up", "message": "pre-up", - "translation": "bağlantı-öncesi", + "translation": "bağlantı öncesi", "translatorComment": "Copied from source." }, { "id": "post-up", "message": "post-up", - "translation": "bağlantı-sonrası", + "translation": "bağlantı sonrası", "translatorComment": "Copied from source." }, { "id": "pre-down", "message": "pre-down", - "translation": "bağlantı-kesme-öncesi", + "translation": "bağlantı kesme öncesi", "translatorComment": "Copied from source." }, { "id": "post-down", "message": "post-down", - "translation": "bağlantı-kesme-sonrası", + "translation": "bağlantı kesme sonrası", "translatorComment": "Copied from source." }, { "id": "disabled, per policy", "message": "disabled, per policy", - "translation": "ilke gereği kapalı", + "translation": "ilke gereği devre dışı", "translatorComment": "Copied from source." }, { @@ -864,7 +864,7 @@ { "id": "&Public key:", "message": "&Public key:", - "translation": "&Açık anahtar:", + "translation": "&Ortak anahtar:", "translatorComment": "Copied from source." }, { @@ -876,13 +876,13 @@ { "id": "&Block untunneled traffic (kill-switch)", "message": "&Block untunneled traffic (kill-switch)", - "translation": "&Tünelden geçmeyen trafiği durdur (kill-switch)", + "translation": "&Tünelden geçmeyen trafiği engelle (kill switch)", "translatorComment": "Copied from source." }, { "id": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", "message": "When a configuration has exactly one peer, and that peer has an allowed IPs containing at least one of 0.0.0.0/0 or ::/0, then the tunnel service engages a firewall ruleset to block all traffic that is neither to nor from the tunnel interface or is to the wrong DNS server, with special exceptions for DHCP and NDP.", - "translation": "Bir yapılandırmada tam bir eş varsa, ve bu eş 0.0.0.0/0 veya ::/0 arasından en az birini içeren izin verilen IPler listesine sahipse, tünel hizmeti DHCP ve NDP için bazı özel istisnalar hariç tünel arabirimine gitmeyen veya bu arabirimden gelmeyen, veya yanlış DNS sunucusuna giden tüm trafiği durdurmak için güvenlik duvarında bir ilke kümesi ayarlar.", + "translation": "Yapılandırmada tek bir eş varsa ve bu eşin izinli IP listesinde 0.0.0.0/0 veya ::/0 bulunuyorsa tünel hizmeti, DHCP ve NDP'ye ait istisnalar dışında tünel arabirimine gitmeyen veya bu arabirimden gelmeyen veya yanlış DNS sunucusuna giden tüm trafiği engellemek için güvenlik duvarına bir kural kümesi ekler.", "translatorComment": "Copied from source." }, { @@ -912,13 +912,13 @@ { "id": "A name is required.", "message": "A name is required.", - "translation": "Bir isim gerekli.", + "translation": "Bir isim girmelisiniz.", "translatorComment": "Copied from source." }, { "id": "Tunnel name ‘{NewName}’ is invalid.", "message": "Tunnel name ‘{NewName}’ is invalid.", - "translation": "`{NewName}` geçersiz bir tünel ismi.", + "translation": "‘{NewName}’ geçersiz bir tünel ismi.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -934,7 +934,7 @@ { "id": "Unable to list existing tunnels", "message": "Unable to list existing tunnels", - "translation": "Mevcut tüneller listelenemiyor", + "translation": "Mevcut tüneller listelenemedi", "translatorComment": "Copied from source." }, { @@ -962,7 +962,7 @@ { "id": "Unable to create new configuration", "message": "Unable to create new configuration", - "translation": "Yeni yapılandırma oluşturulamıyor", + "translation": "Yeni yapılandırma oluşturulamadı", "translatorComment": "Copied from source." }, { @@ -1002,7 +1002,7 @@ { "id": "Inactive", "message": "Inactive", - "translation": "Etkin değil", + "translation": "Devre dışı", "translatorComment": "Copied from source." }, { @@ -1026,25 +1026,25 @@ { "id": "&Copy", "message": "&Copy", - "translation": "Kopyala (&c)", + "translation": "&Kopyala", "translatorComment": "Copied from source." }, { "id": "Select &all", "message": "Select &all", - "translation": "&tümünü seç", + "translation": "&Tümünü seç", "translatorComment": "Copied from source." }, { "id": "&Save to file…", "message": "&Save to file…", - "translation": "Dosyaya kaydet (&s)…", + "translation": "&Dosyaya kaydet…", "translatorComment": "Copied from source." }, { "id": "Time", "message": "Time", - "translation": "Zaman", + "translation": "Saat", "translatorComment": "Copied from source." }, { @@ -1056,19 +1056,19 @@ { "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", - "translation": "Metin Dosyaları (*.txt)|*.txt|Tüm Dosyalar (*.*)|*.*", + "translation": "Metin dosyaları (*.txt)|*.txt|Tüm dosyalar (*.*)|*.*", "translatorComment": "Copied from source." }, { "id": "Export log to file", "message": "Export log to file", - "translation": "Günlük dosyasını dışa aktar", + "translation": "Günlüğü dosyaya aktar", "translatorComment": "Copied from source." }, { "id": "&About WireGuard…", "message": "&About WireGuard…", - "translation": "WireGuard Hakkında (&a)…", + "translation": "&WireGuard hakkında…", "translatorComment": "Copied from source." }, { @@ -1080,7 +1080,7 @@ { "id": "{ErrMsg}\n\nPlease consult the log for more information.", "message": "{ErrMsg}\n\nPlease consult the log for more information.", - "translation": "{ErrMsg}\n\nLütfen daha fazla bilgi için günlüğe göz atın.", + "translation": "{ErrMsg}\n\nDaha fazla bilgi için lütfen günlüğe göz atın.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1152,25 +1152,25 @@ { "id": "&Manage tunnels…", "message": "&Manage tunnels…", - "translation": "Tünelleri yönet (&m)…", + "translation": "&Tünelleri yönet…", "translatorComment": "Copied from source." }, { "id": "&Import tunnel(s) from file…", "message": "&Import tunnel(s) from file…", - "translation": "Dosyadan tünelleri içe aktar (&i)…", + "translation": "Tünelleri dosyadan &içe aktar…", "translatorComment": "Copied from source." }, { "id": "E&xit", "message": "E&xit", - "translation": "Çık (&x)", + "translation": "Çı&kış", "translatorComment": "Copied from source." }, { "id": "&Tunnels", "message": "&Tunnels", - "translation": "Tüneller (&t)", + "translation": "&Tüneller", "translatorComment": "Copied from source." }, { @@ -1286,7 +1286,7 @@ { "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", - "translation": "WireGuard için bir güncelleme mevcut. İlk fırsatta güncelleme yapmanız tavsiye edilir.", + "translation": "Yeni bir WireGuard güncellemesi yayımlandı. İlk fırsatta güncelleme yapmanız tavsiye edilir.", "translatorComment": "Copied from source." }, { @@ -1298,19 +1298,19 @@ { "id": "&Edit", "message": "&Edit", - "translation": "&Edit", + "translation": "&Düzenle", "translatorComment": "Copied from source." }, { "id": "Add &empty tunnel…", "message": "Add &empty tunnel…", - "translation": "Boş tünel ekle (&e)…", + "translation": "Boş tünel &ekle…", "translatorComment": "Copied from source." }, { "id": "Add Tunnel", "message": "Add Tunnel", - "translation": "Tünel Ekle", + "translation": "Tünel ekle", "translatorComment": "Copied from source." }, { @@ -1328,7 +1328,7 @@ { "id": "&Toggle", "message": "&Toggle", - "translation": "&Değiştir", + "translation": "&Aç/kapat", "translatorComment": "Copied from source." }, { @@ -1374,7 +1374,7 @@ { "id": "Could not enumerate existing tunnels: {LastErr}", "message": "Could not enumerate existing tunnels: {LastErr}", - "translation": "Mevcut tüneller numaralandırılamadı: {LastErr}", + "translation": "Mevcut tüneller sıralanamadı: {LastErr}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1406,7 +1406,7 @@ { "id": "Unable to import configuration: {LastErr}", "message": "Unable to import configuration: {LastErr}", - "translation": "Yapılandırma içe aktarılamıyor: {LastErr}", + "translation": "Yapılandırma içe aktarılamadı: {LastErr}", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1492,7 +1492,7 @@ { "id": "Unable to create tunnel", "message": "Unable to create tunnel", - "translation": "Tünel oluşturulamıyor", + "translation": "Tünel oluşturulamadı", "translatorComment": "Copied from source." }, { @@ -1602,7 +1602,7 @@ { "id": "Unable to delete tunnel", "message": "Unable to delete tunnel", - "translation": "Tünel silinemiyor", + "translation": "Tünel silinemedi", "translatorComment": "Copied from source." }, { @@ -1624,7 +1624,7 @@ { "id": "Unable to delete tunnels", "message": "Unable to delete tunnels", - "translation": "Tüneller silinemiyor", + "translation": "Tüneller silinemedi", "translatorComment": "Copied from source." }, { @@ -1658,7 +1658,7 @@ { "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", - "translation": "Yapılandırma Dosyaları (*.zip, *.conf)|*.zip;*.conf|Tüm Dosyalar (*.*)|*.*", + "translation": "Yapılandırma dosyaları (*.zip, *.conf)|*.zip;*.conf|Tüm dosyalar (*.*)|*.*", "translatorComment": "Copied from source." }, { @@ -1670,7 +1670,7 @@ { "id": "Configuration ZIP Files (*.zip)|*.zip", "message": "Configuration ZIP Files (*.zip)|*.zip", - "translation": "Yapılandırma ZIP Dosyası (*.zip)|*.zip", + "translation": "Yapılandırma ZIP dosyaları (*.zip)|*.zip", "translatorComment": "Copied from source." }, { @@ -1704,7 +1704,7 @@ { "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", - "translation": "Hizmet şu nedenden dolayı kapatılamıyor: {Err}. WireGuard'ı hizmet yöneticisinden durdurabilirsiniz.", + "translation": "Şu nedenden dolayı hizmetten çıkılamadı: {Err}. WireGuard'ı hizmet yöneticisinden durdurabilirsiniz.", "translatorComment": "Copied from source.", "placeholders": [ { @@ -1720,7 +1720,7 @@ { "id": "An update to WireGuard is available. It is highly advisable to update without delay.", "message": "An update to WireGuard is available. It is highly advisable to update without delay.", - "translation": "WireGuard için bir güncelleme mevcut. Bekletmeden güncelleme yapmanız önemle tavsiye edilir.", + "translation": "Yeni bir WireGuard güncellemesi yayımlandı. Vakit kaybetmeden güncelleme yapmanız tavsiye edilir.", "translatorComment": "Copied from source." }, { @@ -1732,7 +1732,7 @@ { "id": "Update Now", "message": "Update Now", - "translation": "Şimdi Güncelle", + "translation": "Şimdi güncelle", "translatorComment": "Copied from source." }, { diff --git a/locales/uk/messages.gotext.json b/locales/uk/messages.gotext.json index 7079e424..c5d41082 100644 --- a/locales/uk/messages.gotext.json +++ b/locales/uk/messages.gotext.json @@ -132,6 +132,176 @@ "translatorComment": "Copied from source." }, { + "id": "{Years} year(s)", + "message": "{Years} year(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Years", + "cases": { + "one": { + "msg": "{Years} рік" + }, + "few": { + "msg": "{Years} роки" + }, + "many": { + "msg": "{Years} років" + }, + "other": { + "msg": "{Years} років" + } + } + } + }, + "placeholders": [ + { + "id": "Years", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "years" + } + ] + }, + { + "id": "{Days} day(s)", + "message": "{Days} day(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Days", + "cases": { + "one": { + "msg": "{Days} день" + }, + "few": { + "msg": "{Days} дні" + }, + "many": { + "msg": "{Days} днів" + }, + "other": { + "msg": "{Days} днів" + } + } + } + }, + "placeholders": [ + { + "id": "Days", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "days" + } + ] + }, + { + "id": "{Hours} hour(s)", + "message": "{Hours} hour(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Hours", + "cases": { + "one": { + "msg": "{Hours} година" + }, + "few": { + "msg": "{Hours} години" + }, + "many": { + "msg": "{Hours} години" + }, + "other": { + "msg": "{Hours} годин" + } + } + } + }, + "placeholders": [ + { + "id": "Hours", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "hours" + } + ] + }, + { + "id": "{Minutes} minute(s)", + "message": "{Minutes} minute(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Minutes", + "cases": { + "one": { + "msg": "{Minutes} хвилина" + }, + "few": { + "msg": "{Minutes} хвилини" + }, + "many": { + "msg": "{Minutes} хвилин" + }, + "other": { + "msg": "{Minutes} хвилин" + } + } + } + }, + "placeholders": [ + { + "id": "Minutes", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "minutes" + } + ] + }, + { + "id": "{Seconds} second(s)", + "message": "{Seconds} second(s)", + "translation": { + "select": { + "feature": "plural", + "arg": "Seconds", + "cases": { + "one": { + "msg": "{Seconds} секунда" + }, + "few": { + "msg": "{Seconds} секунди" + }, + "many": { + "msg": "{Seconds} секунд" + }, + "other": { + "msg": "{Seconds} секунд" + } + } + } + }, + "placeholders": [ + { + "id": "Seconds", + "string": "%[1]d", + "type": "int64", + "underlyingType": "int64", + "argNum": 1, + "expr": "seconds" + } + ] + }, + { "id": "{Timestamp} ago", "message": "{Timestamp} ago", "translation": "{Timestamp} тому", @@ -214,7 +384,7 @@ { "id": "{Float64b__1024__1024__1024__1024} TiB", "message": "{Float64b__1024__1024__1024__1024} TiB", - "translation": "{Float64b__1024__1024__1024__1024} ТБ", + "translation": "{Float64b__1024__1024__1024__1024} TiB", "translatorComment": "Copied from source.", "placeholders": [ { @@ -820,6 +990,396 @@ ] }, { + "id": "Unable to create new configuration", + "message": "Unable to create new configuration", + "translation": "Неможливо створити нову конфігурацію", + "translatorComment": "Copied from source." + }, + { + "id": "Writing file failed", + "message": "Writing file failed", + "translation": "Помилка запису файлу", + "translatorComment": "Copied from source." + }, + { + "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", + "translation": "Файл \"{FilePath}\" вже існує.\n\nВи хочете перезаписати його?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "FilePath", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "filePath" + } + ] + }, + { + "id": "Active", + "message": "Active", + "translation": "Активний", + "translatorComment": "Copied from source." + }, + { + "id": "Activating", + "message": "Activating", + "translation": "Активується", + "translatorComment": "Copied from source." + }, + { + "id": "Inactive", + "message": "Inactive", + "translation": "Неактивний", + "translatorComment": "Copied from source." + }, + { + "id": "Deactivating", + "message": "Deactivating", + "translation": "Вимикається", + "translatorComment": "Copied from source." + }, + { + "id": "Unknown state", + "message": "Unknown state", + "translation": "Невідомий стан", + "translatorComment": "Copied from source." + }, + { + "id": "Log", + "message": "Log", + "translation": "Лог", + "translatorComment": "Copied from source." + }, + { + "id": "&Copy", + "message": "&Copy", + "translation": "&Скопіювати", + "translatorComment": "Copied from source." + }, + { + "id": "Select &all", + "message": "Select &all", + "translation": "Обрати &все", + "translatorComment": "Copied from source." + }, + { + "id": "&Save to file…", + "message": "&Save to file…", + "translation": "&Зберегти у файл…", + "translatorComment": "Copied from source." + }, + { + "id": "Time", + "message": "Time", + "translation": "Час", + "translatorComment": "Copied from source." + }, + { + "id": "Log message", + "message": "Log message", + "translation": "Повідомлення з логу", + "translatorComment": "Copied from source." + }, + { + "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", + "translation": "Текстові файли (*.txt)|*.txt|Усі файли (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Export log to file", + "message": "Export log to file", + "translation": "Експортувати лог у файл", + "translatorComment": "Copied from source." + }, + { + "id": "&About WireGuard…", + "message": "&About WireGuard…", + "translation": "&Про WireGuard…", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnel Error", + "message": "Tunnel Error", + "translation": "Помилка тунелю", + "translatorComment": "Copied from source." + }, + { + "id": "{ErrMsg}\n\nPlease consult the log for more information.", + "message": "{ErrMsg}\n\nPlease consult the log for more information.", + "translation": "{ErrMsg}\n\nБудь ласка, зверніться до логу для отримання додаткової інформації.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "ErrMsg", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errMsg" + } + ] + }, + { + "id": "{Title} (out of date)", + "message": "{Title} (out of date)", + "translation": "{Title} (застарілий)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "WireGuard Detection Error", + "message": "WireGuard Detection Error", + "translation": "Помилка виявлення WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to wait for WireGuard window to appear: {Err}", + "message": "Unable to wait for WireGuard window to appear: {Err}", + "translation": "Не вдалося дочекатися появи вікна WireGuard: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "WireGuard: Deactivated", + "message": "WireGuard: Deactivated", + "translation": "WireGuard: Вимкнений", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Unknown", + "message": "Status: Unknown", + "translation": "Статус: Невідомий", + "translatorComment": "Copied from source." + }, + { + "id": "Addresses: None", + "message": "Addresses: None", + "translation": "Адреси: немає", + "translatorComment": "Copied from source." + }, + { + "id": "&Manage tunnels…", + "message": "&Manage tunnels…", + "translation": "&Керування тунелями…", + "translatorComment": "Copied from source." + }, + { + "id": "&Import tunnel(s) from file…", + "message": "&Import tunnel(s) from file…", + "translation": "&Імпортувати тунель з файлу…", + "translatorComment": "Copied from source." + }, + { + "id": "E&xit", + "message": "E&xit", + "translation": "Ви&йти", + "translatorComment": "Copied from source." + }, + { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "&Тунелі", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Activated", + "message": "WireGuard Activated", + "translation": "WireGuard активовано", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been activated.", + "message": "The {Name} tunnel has been activated.", + "translation": "Тунель {Name} активовано.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Deactivated", + "message": "WireGuard Deactivated", + "translation": "WireGuard деактивовано", + "translatorComment": "Copied from source." + }, + { + "id": "The {Name} tunnel has been deactivated.", + "message": "The {Name} tunnel has been deactivated.", + "translation": "Тунель {Name} було деактивовано.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Name", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnel.Name" + } + ] + }, + { + "id": "WireGuard Tunnel Error", + "message": "WireGuard Tunnel Error", + "translation": "Помилка тунелю WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard: {TextForStateglobalState_true}", + "message": "WireGuard: {TextForStateglobalState_true}", + "translation": "WireGuard: {TextForStateglobalState_true}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TextForStateglobalState_true", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "textForState(globalState, true)" + } + ] + }, + { + "id": "Status: {StateText}", + "message": "Status: {StateText}", + "translation": "Статус: {StateText}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "StateText", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "stateText" + } + ] + }, + { + "id": "Addresses: {EnumerationSeparator}", + "message": "Addresses: {EnumerationSeparator}", + "translation": "Адреси: {EnumerationSeparator}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "EnumerationSeparator", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" + } + ] + }, + { + "id": "An Update is Available!", + "message": "An Update is Available!", + "translation": "Доступно оновлення!", + "translatorComment": "Copied from source." + }, + { + "id": "WireGuard Update Available", + "message": "WireGuard Update Available", + "translation": "Доступне оновлення WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", + "translation": "Оновлення до WireGuard доступне. Рекомендуємо оновити якомога швидше.", + "translatorComment": "Copied from source." + }, + { + "id": "Tunnels", + "message": "Tunnels", + "translation": "Тунелі", + "translatorComment": "Copied from source." + }, + { + "id": "&Edit", + "message": "&Edit", + "translation": "&Редагувати", + "translatorComment": "Copied from source." + }, + { + "id": "Add &empty tunnel…", + "message": "Add &empty tunnel…", + "translation": "Додати &пустий тунель…", + "translatorComment": "Copied from source." + }, + { + "id": "Add Tunnel", + "message": "Add Tunnel", + "translation": "Додати тунель", + "translatorComment": "Copied from source." + }, + { + "id": "Remove selected tunnel(s)", + "message": "Remove selected tunnel(s)", + "translation": "Видалити обрані тунелі", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to zip", + "message": "Export all tunnels to zip", + "translation": "Експортувати всі тунелі в zip", + "translatorComment": "Copied from source." + }, + { + "id": "&Toggle", + "message": "&Toggle", + "translation": "&Перемкнути", + "translatorComment": "Copied from source." + }, + { + "id": "Export all tunnels to &zip…", + "message": "Export all tunnels to &zip…", + "translation": "Експортувати всі тунелі в &zip…", + "translatorComment": "Copied from source." + }, + { + "id": "Edit &selected tunnel…", + "message": "Edit &selected tunnel…", + "translation": "Редагувати &вибраний тунель…", + "translatorComment": "Copied from source." + }, + { + "id": "&Remove selected tunnel(s)", + "message": "&Remove selected tunnel(s)", + "translation": "&Видалити обрані тунелі", + "translatorComment": "Copied from source." + }, + { "id": "no configuration files were found", "message": "no configuration files were found", "translation": "не знайдено файлів конфігурації", @@ -928,6 +1488,420 @@ "expr": "m" } ] + }, + { + "id": "Imported {M} of {N} tunnels", + "message": "Imported {M} of {N} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "N", + "cases": { + "one": { + "msg": "Імпортовано {M} з {N} тунелів" + }, + "few": { + "msg": "Імпортовано {M} з {N} тунелів" + }, + "many": { + "msg": "Імпортовано {M} з {N} тунелів" + }, + "other": { + "msg": "Імпортовано {M} з {N} тунелів" + } + } + } + }, + "placeholders": [ + { + "id": "M", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "m" + }, + { + "id": "N", + "string": "%[2]d", + "type": "int", + "underlyingType": "int", + "argNum": 2, + "expr": "n" + } + ] + }, + { + "id": "Unable to create tunnel", + "message": "Unable to create tunnel", + "translation": "Не вдалося створити тунель", + "translatorComment": "Copied from source." + }, + { + "id": "Delete {TunnelCount} tunnels", + "message": "Delete {TunnelCount} tunnels", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Видалити {TunnelCount} тунель" + }, + "few": { + "msg": "Видалити {TunnelCount} тунелі" + }, + "many": { + "msg": "Видалити {TunnelCount} тунелів" + }, + "other": { + "msg": "Видалити {TunnelCount} тунелів" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Are you sure you would like to delete {TunnelCount} tunnels?", + "message": "Are you sure you would like to delete {TunnelCount} tunnels?", + "translation": { + "select": { + "feature": "plural", + "arg": "TunnelCount", + "cases": { + "one": { + "msg": "Ви впевнені, що хочете видалити {TunnelCount} тунель?" + }, + "few": { + "msg": "Ви впевнені, що хочете видалити {TunnelCount} тунелі?" + }, + "many": { + "msg": "Ви впевнені, що хочете видалити {TunnelCount} тунелів?" + }, + "other": { + "msg": "Ви впевнені, що хочете видалити {TunnelCount} тунелі?" + } + } + } + }, + "placeholders": [ + { + "id": "TunnelCount", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "tunnelCount" + } + ] + }, + { + "id": "Delete tunnel ‘{TunnelName}’", + "message": "Delete tunnel ‘{TunnelName}’", + "translation": "Видалити тунель '{TunnelName}'", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", + "translation": "Ви впевнені, що бажаєте видалити тунель '{TunnelName}'?", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "TunnelName", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "tunnelName" + } + ] + }, + { + "id": "{Question} You cannot undo this action.", + "message": "{Question} You cannot undo this action.", + "translation": "{Question} Цю дію не можна буде скасувати.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Question", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "question" + } + ] + }, + { + "id": "Unable to delete tunnel", + "message": "Unable to delete tunnel", + "translation": "Неможливо видалити тунель", + "translatorComment": "Copied from source." + }, + { + "id": "A tunnel was unable to be removed: {Error}", + "message": "A tunnel was unable to be removed: {Error}", + "translation": "Тунель не вдалося видалити: {Error}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Error", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "errors[0].Error()" + } + ] + }, + { + "id": "Unable to delete tunnels", + "message": "Unable to delete tunnels", + "translation": "Неможливо видалити тунелі", + "translatorComment": "Copied from source." + }, + { + "id": "{Lenerrors} tunnels were unable to be removed.", + "message": "{Lenerrors} tunnels were unable to be removed.", + "translation": { + "select": { + "feature": "plural", + "arg": "Lenerrors", + "cases": { + "one": { + "msg": "{Lenerrors} тунель не вдалося видалити." + }, + "few": { + "msg": "{Lenerrors} тунелі не вдалося видалити." + }, + "many": { + "msg": "{Lenerrors} тунелів не вдалося видалити." + }, + "other": { + "msg": "{Lenerrors} тунелів не вдалося видалити." + } + } + } + }, + "placeholders": [ + { + "id": "Lenerrors", + "string": "%[1]d", + "type": "int", + "underlyingType": "int", + "argNum": 1, + "expr": "len(errors)" + } + ] + }, + { + "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", + "translation": "Файли конфігурації (*.zip, *.conf)|*.zip;*.conf|Всі файли (*.*)|*.*", + "translatorComment": "Copied from source." + }, + { + "id": "Import tunnel(s) from file", + "message": "Import tunnel(s) from file", + "translation": "Імпортувати тунелі з файлу", + "translatorComment": "Copied from source." + }, + { + "id": "Configuration ZIP Files (*.zip)|*.zip", + "message": "Configuration ZIP Files (*.zip)|*.zip", + "translation": "ZIP-файли конфігурації (*.zip) | *.zip", + "translatorComment": "Copied from source." + }, + { + "id": "Export tunnels to zip", + "message": "Export tunnels to zip", + "translation": "Експортувати тунелі в zip", + "translatorComment": "Copied from source." + }, + { + "id": "{Title} (unsigned build, no updates)", + "message": "{Title} (unsigned build, no updates)", + "translation": "{Title} (непідписані збірки, немає оновлень)", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Title", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "mtw.Title()" + } + ] + }, + { + "id": "Error Exiting WireGuard", + "message": "Error Exiting WireGuard", + "translation": "Помилка при виході з WireGuard", + "translatorComment": "Copied from source." + }, + { + "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", + "translation": "Не вдалося зупинити службу через: {Err}. Ви можете зупинити її вручну через менеджер сервісів.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "An update to WireGuard is available. It is highly advisable to update without delay.", + "message": "An update to WireGuard is available. It is highly advisable to update without delay.", + "translation": "Доступне оновлення WireGuard, доцільне оновлення без затримок.", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for user", + "message": "Status: Waiting for user", + "translation": "Статус: Очікування користувача", + "translatorComment": "Copied from source." + }, + { + "id": "Update Now", + "message": "Update Now", + "translation": "Оновити зараз", + "translatorComment": "Copied from source." + }, + { + "id": "Status: Waiting for updater service", + "message": "Status: Waiting for updater service", + "translation": "Статус: Очікування на службу оновлення", + "translatorComment": "Copied from source." + }, + { + "id": "Error: {Err}. Please try again.", + "message": "Error: {Err}. Please try again.", + "translation": "Помилка: {Err}. Будь ласка, спробуйте ще раз.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { + "id": "Status: Complete!", + "message": "Status: Complete!", + "translation": "Стан: Завершено", + "translatorComment": "Copied from source." + }, + { + "id": "http2: Framer {F}: failed to decode just-written frame", + "message": "http2: Framer {F}: failed to decode just-written frame", + "translation": "http2: Framer {F}: failed to decode just-written frame", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + } + ] + }, + { + "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translation": "http2: Framer {F}: wrote {Http2summarizeFramefr}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "F", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "f" + }, + { + "id": "Http2summarizeFramefr", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(fr)" + } + ] + }, + { + "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translation": "http2: Framer {Fr}: read {Http2summarizeFramef}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Fr", + "string": "%[1]p", + "type": "*net/http.http2Framer", + "underlyingType": "*net/http.http2Framer", + "argNum": 1, + "expr": "fr" + }, + { + "id": "Http2summarizeFramef", + "string": "%[2]v", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "http2summarizeFrame(f)" + } + ] + }, + { + "id": "http2: decoded hpack field {HeaderField}", + "message": "http2: decoded hpack field {HeaderField}", + "translation": "http2: decoded hpack field {HeaderField}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "HeaderField", + "string": "%+[1]v", + "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", + "underlyingType": "struct{Name string; Value string; Sensitive bool}", + "argNum": 1, + "expr": "hf" + } + ] } ] }
\ No newline at end of file diff --git a/locales/vi/messages.gotext.json b/locales/vi/messages.gotext.json index 94d44344..7e8f92ae 100644 --- a/locales/vi/messages.gotext.json +++ b/locales/vi/messages.gotext.json @@ -8,6 +8,36 @@ "translatorComment": "Copied from source." }, { + "id": "Usage: {Args0} [\n{String}]", + "message": "Usage: {Args0} [\n{String}]", + "translation": "Sử dụng: {Args0} [\n{String}]", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Args0", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "os.Args[0]" + }, + { + "id": "String", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "builder.String()" + } + ] + }, + { + "id": "Command Line Options", + "message": "Command Line Options", + "translation": "Tùy chọn dòng lệnh", + "translatorComment": "Copied from source." + }, + { "id": "Now", "message": "Now", "translation": "Vừa xong", @@ -155,24 +185,150 @@ ] }, { + "id": "{Bytes} B", + "message": "{Bytes} B", + "translation": "{Bytes} B", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Bytes", + "string": "%[1]d", + "type": "golang.zx2c4.com/wireguard/windows/conf.Bytes", + "underlyingType": "uint64", + "argNum": 1, + "expr": "b" + } + ] + }, + { + "id": "{Float64b__1024} KiB", + "message": "{Float64b__1024} KiB", + "translation": "{Float64b__1024} KiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / 1024" + } + ] + }, + { + "id": "{Float64b__1024__1024} MiB", + "message": "{Float64b__1024__1024} MiB", + "translation": "{Float64b__1024__1024} MiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024} GiB", + "message": "{Float64b__1024__1024__1024} GiB", + "translation": "{Float64b__1024__1024__1024} GiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024)" + } + ] + }, + { + "id": "{Float64b__1024__1024__1024__1024} TiB", + "message": "{Float64b__1024__1024__1024__1024} TiB", + "translation": "{Float64b__1024__1024__1024__1024} TiB", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Float64b__1024__1024__1024__1024", + "string": "%.2[1]f", + "type": "float64", + "underlyingType": "float64", + "argNum": 1, + "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" + } + ] + }, + { "id": "Invalid IP address", "message": "Invalid IP address", "translation": "Địa chỉ IP không hợp lệ", "translatorComment": "Copied from source." }, { + "id": "Invalid MTU", + "message": "Invalid MTU", + "translation": "Khoá không hợp lệ", + "translatorComment": "Copied from source." + }, + { "id": "Invalid port", "message": "Invalid port", "translation": "Cổng (port) không hợp lệ", "translatorComment": "Copied from source." }, { + "id": "Invalid key: {Err}", + "message": "Invalid key: {Err}", + "translation": "Khoá không hợp lệ: {Err}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Err", + "string": "%[1]v", + "type": "error", + "underlyingType": "interface{Error() string}", + "argNum": 1, + "expr": "err" + } + ] + }, + { "id": "Tunnel name is not valid", "message": "Tunnel name is not valid", "translation": "Tên VPN không hợp lệ", "translatorComment": "Copied from source." }, { + "id": "[none specified]", + "message": "[none specified]", + "translation": "Ko có Chỉ định", + "translatorComment": "Copied from source." + }, + { + "id": "Error in getting configuration", + "message": "Error in getting configuration", + "translation": "Lỗi khi lưu cấu hình", + "translatorComment": "Copied from source." + }, + { + "id": "[EnumerationSeparator]", + "message": "[EnumerationSeparator]", + "translation": ",", + "comment": "Text to insert between items when listing - most western languages will translate ‘[EnumerationSeparator]’ into ‘, ’ to produce lists like ‘apple, orange, strawberry’. Eastern languages might translate into ‘、’ to produce lists like ‘リンゴ、オレンジ、イチゴ’." + }, + { + "id": "[UnitSeparator]", + "message": "[UnitSeparator]", + "translation": ",", + "comment": "Text to insert when combining units of a measure - most languages will translate ‘[UnitSeparator]’ into ‘ ’ (space) to produce lists like ‘2 minuti 30 sekund’, or empty string ‘’ to produce ‘2分30秒’." + }, + { "id": "About WireGuard", "message": "About WireGuard", "translation": "Thông tin về WireGuard", @@ -197,6 +353,18 @@ "translatorComment": "Copied from source." }, { + "id": "&Deactivate", + "message": "&Deactivate", + "translation": "Đã hủy kích hoạt", + "translatorComment": "Copied from source." + }, + { + "id": "&Activate", + "message": "&Activate", + "translation": "Kích hoạt", + "translatorComment": "Copied from source." + }, + { "id": "Endpoint:", "message": "Endpoint:", "translation": "Đầu cuối:", diff --git a/locales/zh-CN/messages.gotext.json b/locales/zh-CN/messages.gotext.json index 5f70db44..ea56a3f1 100644 --- a/locales/zh-CN/messages.gotext.json +++ b/locales/zh-CN/messages.gotext.json @@ -465,7 +465,7 @@ { "id": "Two commas in a row", "message": "Two commas in a row", - "translation": "一行中有两个逗号", + "translation": "存在多余的逗号", "translatorComment": "Copied from source." }, { diff --git a/locales/zh-TW/messages.gotext.json b/locales/zh-TW/messages.gotext.json index d7ebe665..d9249856 100644 --- a/locales/zh-TW/messages.gotext.json +++ b/locales/zh-TW/messages.gotext.json @@ -1147,6 +1147,12 @@ "translatorComment": "Copied from source." }, { + "id": "&Tunnels", + "message": "&Tunnels", + "translation": "隧道(&T)", + "translatorComment": "Copied from source." + }, + { "id": "WireGuard Activated", "message": "WireGuard Activated", "translation": "WireGuard 已連線", |