mirror of
https://git.zx2c4.com/wireguard-windows
synced 2024-11-10 16:59:18 +00:00
6bea8d5196
Signed-off-by: Simon Rozman <simon@rozman.si>
502 lines
17 KiB
JSON
502 lines
17 KiB
JSON
{
|
||
"language": "vi",
|
||
"messages": [
|
||
{
|
||
"id": "Error",
|
||
"message": "Error",
|
||
"translation": "Lỗi",
|
||
"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",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "{Years} year(s)",
|
||
"message": "{Years} year(s)",
|
||
"translation": {
|
||
"select": {
|
||
"feature": "plural",
|
||
"arg": "Years",
|
||
"cases": {
|
||
"other": {
|
||
"msg": "{Years} năm"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"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} ngày"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"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} giờ"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"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} phút"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"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} giây"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"placeholders": [
|
||
{
|
||
"id": "Seconds",
|
||
"string": "%[1]d",
|
||
"type": "int64",
|
||
"underlyingType": "int64",
|
||
"argNum": 1,
|
||
"expr": "seconds"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "{Timestamp} ago",
|
||
"message": "{Timestamp} ago",
|
||
"translation": "{Timestamp} trước",
|
||
"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": "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",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "WireGuard logo image",
|
||
"message": "WireGuard logo image",
|
||
"translation": "Logo WireGuard",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Close",
|
||
"message": "Close",
|
||
"translation": "Đóng",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Status:",
|
||
"message": "Status:",
|
||
"translation": "Trạng thái:",
|
||
"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:",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "enabled",
|
||
"message": "enabled",
|
||
"translation": "đã kích hoạt",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "{String} received, {String_1} sent",
|
||
"message": "{String} received, {String_1} sent",
|
||
"translation": "Nhận {String}, gứi {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": "Không thể xác định tình trạng VPN",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Failed to activate tunnel",
|
||
"message": "Failed to activate tunnel",
|
||
"translation": "Không thể kích hoạt VPN",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Failed to deactivate tunnel",
|
||
"message": "Failed to deactivate tunnel",
|
||
"translation": "Không thể vô hiệu hóa VPN",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Peer",
|
||
"message": "Peer",
|
||
"translation": "Mạng ngang hàng",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Create new tunnel",
|
||
"message": "Create new tunnel",
|
||
"translation": "Tạo VPN",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Edit tunnel",
|
||
"message": "Edit tunnel",
|
||
"translation": "Chỉnh sửa VPN",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Cancel",
|
||
"message": "Cancel",
|
||
"translation": "Huỷ",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Invalid name",
|
||
"message": "Invalid name",
|
||
"translation": "Tên không hợp lệ",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "A name is required.",
|
||
"message": "A name is required.",
|
||
"translation": "Yêu cầu nhập tên.",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Tunnel name ‘{NewName}’ is invalid.",
|
||
"message": "Tunnel name ‘{NewName}’ is invalid.",
|
||
"translation": "Tên VPN ‘{NewName}' không hợp lệ.",
|
||
"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": "Không thể liệt kê các VPN",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Tunnel already exists",
|
||
"message": "Tunnel already exists",
|
||
"translation": "VPN đã tồn tại",
|
||
"translatorComment": "Copied from source."
|
||
},
|
||
{
|
||
"id": "Another tunnel already exists with the name ‘{NewName}’.",
|
||
"message": "Another tunnel already exists with the name ‘{NewName}’.",
|
||
"translation": "Đã tồn tại VPN với tên ‘{NewName}’.",
|
||
"translatorComment": "Copied from source.",
|
||
"placeholders": [
|
||
{
|
||
"id": "NewName",
|
||
"string": "%[1]s",
|
||
"type": "string",
|
||
"underlyingType": "string",
|
||
"argNum": 1,
|
||
"expr": "newName"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
} |