{ "language": "zh-CN", "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": { "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} 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": "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": "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}\nGo 后端版本: {WireGuardGoVersion}\nGo 版本: {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": "地址:", "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": "端点:", "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 的其中一个 IP 时,隧道服务会使用防火墙规则集来拦截所有进出隧道接口的流量,但 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|All Files (*.*)|*.*", "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": { "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": "导入了 {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": { "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": "从文件导入隧道", "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" } ] } ] }