diff options
Diffstat (limited to 'locales/ru/messages.gotext.json')
-rw-r--r-- | locales/ru/messages.gotext.json | 1851 |
1 files changed, 1851 insertions, 0 deletions
diff --git a/locales/ru/messages.gotext.json b/locales/ru/messages.gotext.json new file mode 100644 index 00000000..1d5f6775 --- /dev/null +++ b/locales/ru/messages.gotext.json @@ -0,0 +1,1851 @@ +{ + "language": "ru", + "messages": [ + { + "id": "Error", + "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 64-bit version of WireGuard on this computer.", + "message": "You must use the 64-bit version of WireGuard on this computer.", + "translation": "Используйте 64-битную версию 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 может использоваться только пользователями, входящими в группу {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 запущен, но пользовательский интерфейс доступен только с рабочих столов группы {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": { + "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} назад", + "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} Кб", + "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} Мб", + "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} Гб", + "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} Тб", + "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": "Отсутствует порт IP-адреса сервера", + "translatorComment": "Copied from source." + }, + { + "id": "Invalid endpoint host", + "message": "Invalid endpoint host", + "translation": "Неверный IP-адрес сервера", + "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": "Invalid config key is missing an equals separator", + "message": "Invalid 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}\nOperating system: {OsName}\nArchitecture: {GOARCH}", + "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}\nOperating system: {OsName}\nArchitecture: {GOARCH}", + "translation": "Версия приложения: {Number}\nВерсия бэкэнда: {WireGuardGoVersion}\nВерсия перехода: {Version_go}\nОперационная система: {OsName}\nАрхитектура: {GOARCH}", + "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": "OsName", + "string": "%[4]s", + "type": "string", + "underlyingType": "string", + "argNum": 4, + "expr": "version.OsName()" + }, + { + "id": "GOARCH", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "runtime.GOARCH" + } + ] + }, + { + "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": "IP-адреса:", + "translatorComment": "Copied from source." + }, + { + "id": "DNS servers:", + "message": "DNS servers:", + "translation": "DNS-серверы:", + "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": "IP-адрес сервера:", + "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": "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": "&Блокировать нетуннельный трафик", + "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, 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, with special exceptions for DHCP and NDP.", + "translation": "Когда конфигурация имеет ровно одного пира, и у этого пира есть разрешенные IP, содержащие хотя бы один из 0.0.0.0/0 или ::/0, то служба туннеля обязывает брандмауэр блокировать весь входящий и исходящий трафик, который не проходит через туннель, за исключением 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\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": "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: {String}", + "message": "Addresses: {String}", + "translation": "Адреса: {String}", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "String", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "sb.String()" + } + ] + }, + { + "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": "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": "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": { + "one": { + "msg": "Импортированный {M} туннель" + }, + "few": { + "msg": "Импортированы туннели: {M}" + }, + "many": { + "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": "Импортированы туннели: {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}. Вы можете остановить 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: 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: Framer {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: Framer {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 |