golang.zx2c4.com/wireguard/windows@v0.5.4-0.20230123132234-dcc0eb72a04b/locales/zh-TW/messages.gotext.json (about) 1 { 2 "language": "zh-TW", 3 "messages": [ 4 { 5 "id": "Error", 6 "message": "Error", 7 "translation": "錯誤", 8 "translatorComment": "Copied from source." 9 }, 10 { 11 "id": "(no argument): elevate and install manager service", 12 "message": "(no argument): elevate and install manager service", 13 "translation": "(無參數):提升權限並安裝管理服務", 14 "translatorComment": "Copied from source." 15 }, 16 { 17 "id": "Usage: {Args0} [\n{String}]", 18 "message": "Usage: {Args0} [\n{String}]", 19 "translation": "使用方法: {Args0} [\n{String}]", 20 "translatorComment": "Copied from source.", 21 "placeholders": [ 22 { 23 "id": "Args0", 24 "string": "%[1]s", 25 "type": "string", 26 "underlyingType": "string", 27 "argNum": 1, 28 "expr": "os.Args[0]" 29 }, 30 { 31 "id": "String", 32 "string": "%[2]s", 33 "type": "string", 34 "underlyingType": "string", 35 "argNum": 2, 36 "expr": "builder.String()" 37 } 38 ] 39 }, 40 { 41 "id": "Command Line Options", 42 "message": "Command Line Options", 43 "translation": "命令列選項", 44 "translatorComment": "Copied from source." 45 }, 46 { 47 "id": "Unable to determine whether the process is running under WOW64: {Err}", 48 "message": "Unable to determine whether the process is running under WOW64: {Err}", 49 "translation": "無法確定該處理程序是否在 WOW64 下執行: {Err}", 50 "translatorComment": "Copied from source.", 51 "placeholders": [ 52 { 53 "id": "Err", 54 "string": "%[1]v", 55 "type": "error", 56 "underlyingType": "interface{Error() string}", 57 "argNum": 1, 58 "expr": "err" 59 } 60 ] 61 }, 62 { 63 "id": "You must use the native version of WireGuard on this computer.", 64 "message": "You must use the native version of WireGuard on this computer.", 65 "translation": "您必須在此電腦上執行原生版本的 WireGuard。", 66 "translatorComment": "Copied from source." 67 }, 68 { 69 "id": "Unable to open current process token: {Err}", 70 "message": "Unable to open current process token: {Err}", 71 "translation": "無法開啓目前處理程序的權杖: {Err}", 72 "translatorComment": "Copied from source.", 73 "placeholders": [ 74 { 75 "id": "Err", 76 "string": "%[1]v", 77 "type": "error", 78 "underlyingType": "interface{Error() string}", 79 "argNum": 1, 80 "expr": "err" 81 } 82 ] 83 }, 84 { 85 "id": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", 86 "message": "WireGuard may only be used by users who are a member of the Builtin {AdminGroupName} group.", 87 "translation": "WireGuard 可能只能被內建的「{AdminGroupName}」群組成員使用。", 88 "translatorComment": "Copied from source.", 89 "placeholders": [ 90 { 91 "id": "AdminGroupName", 92 "string": "%[1]s", 93 "type": "string", 94 "underlyingType": "string", 95 "argNum": 1, 96 "expr": "elevate.AdminGroupName()" 97 } 98 ] 99 }, 100 { 101 "id": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", 102 "message": "WireGuard is running, but the UI is only accessible from desktops of the Builtin {AdminGroupName} group.", 103 "translation": "WireGuard 正在執行,但 UI 只能從內建的內建的「{AdminGroupName}」群組成員的桌面存取。", 104 "translatorComment": "Copied from source.", 105 "placeholders": [ 106 { 107 "id": "AdminGroupName", 108 "string": "%[1]s", 109 "type": "string", 110 "underlyingType": "string", 111 "argNum": 1, 112 "expr": "elevate.AdminGroupName()" 113 } 114 ] 115 }, 116 { 117 "id": "WireGuard system tray icon did not appear after 30 seconds.", 118 "message": "WireGuard system tray icon did not appear after 30 seconds.", 119 "translation": "WireGuard 的工作列圖示在 30 秒後並沒有顯示。", 120 "translatorComment": "Copied from source." 121 }, 122 { 123 "id": "Now", 124 "message": "Now", 125 "translation": "就是現在", 126 "translatorComment": "Copied from source." 127 }, 128 { 129 "id": "System clock wound backward!", 130 "message": "System clock wound backward!", 131 "translation": "系統時鐘倒退了!", 132 "translatorComment": "Copied from source." 133 }, 134 { 135 "id": "{Years} year(s)", 136 "message": "{Years} year(s)", 137 "translation": { 138 "select": { 139 "feature": "plural", 140 "arg": "Years", 141 "cases": { 142 "other": { 143 "msg": "{Years} 年" 144 } 145 } 146 } 147 }, 148 "placeholders": [ 149 { 150 "id": "Years", 151 "string": "%[1]d", 152 "type": "int64", 153 "underlyingType": "int64", 154 "argNum": 1, 155 "expr": "years" 156 } 157 ] 158 }, 159 { 160 "id": "{Days} day(s)", 161 "message": "{Days} day(s)", 162 "translation": { 163 "select": { 164 "feature": "plural", 165 "arg": "Days", 166 "cases": { 167 "other": { 168 "msg": "{Days} 天" 169 } 170 } 171 } 172 }, 173 "placeholders": [ 174 { 175 "id": "Days", 176 "string": "%[1]d", 177 "type": "int64", 178 "underlyingType": "int64", 179 "argNum": 1, 180 "expr": "days" 181 } 182 ] 183 }, 184 { 185 "id": "{Hours} hour(s)", 186 "message": "{Hours} hour(s)", 187 "translation": { 188 "select": { 189 "feature": "plural", 190 "arg": "Hours", 191 "cases": { 192 "other": { 193 "msg": "{Hours} 小時" 194 } 195 } 196 } 197 }, 198 "placeholders": [ 199 { 200 "id": "Hours", 201 "string": "%[1]d", 202 "type": "int64", 203 "underlyingType": "int64", 204 "argNum": 1, 205 "expr": "hours" 206 } 207 ] 208 }, 209 { 210 "id": "{Minutes} minute(s)", 211 "message": "{Minutes} minute(s)", 212 "translation": { 213 "select": { 214 "feature": "plural", 215 "arg": "Minutes", 216 "cases": { 217 "other": { 218 "msg": "{Minutes} 分鐘" 219 } 220 } 221 } 222 }, 223 "placeholders": [ 224 { 225 "id": "Minutes", 226 "string": "%[1]d", 227 "type": "int64", 228 "underlyingType": "int64", 229 "argNum": 1, 230 "expr": "minutes" 231 } 232 ] 233 }, 234 { 235 "id": "{Seconds} second(s)", 236 "message": "{Seconds} second(s)", 237 "translation": { 238 "select": { 239 "feature": "plural", 240 "arg": "Seconds", 241 "cases": { 242 "other": { 243 "msg": "{Seconds} 秒" 244 } 245 } 246 } 247 }, 248 "placeholders": [ 249 { 250 "id": "Seconds", 251 "string": "%[1]d", 252 "type": "int64", 253 "underlyingType": "int64", 254 "argNum": 1, 255 "expr": "seconds" 256 } 257 ] 258 }, 259 { 260 "id": "{Timestamp} ago", 261 "message": "{Timestamp} ago", 262 "translation": "{Timestamp} 前", 263 "translatorComment": "Copied from source.", 264 "placeholders": [ 265 { 266 "id": "Timestamp", 267 "string": "%[1]s", 268 "type": "string", 269 "underlyingType": "string", 270 "argNum": 1, 271 "expr": "timestamp" 272 } 273 ] 274 }, 275 { 276 "id": "{Bytes} B", 277 "message": "{Bytes} B", 278 "translation": "{Bytes} B", 279 "translatorComment": "Copied from source.", 280 "placeholders": [ 281 { 282 "id": "Bytes", 283 "string": "%[1]d", 284 "type": "golang.zx2c4.com/wireguard/windows/conf.Bytes", 285 "underlyingType": "uint64", 286 "argNum": 1, 287 "expr": "b" 288 } 289 ] 290 }, 291 { 292 "id": "{Float64b__1024} KiB", 293 "message": "{Float64b__1024} KiB", 294 "translation": "{Float64b__1024} KiB", 295 "translatorComment": "Copied from source.", 296 "placeholders": [ 297 { 298 "id": "Float64b__1024", 299 "string": "%.2[1]f", 300 "type": "float64", 301 "underlyingType": "float64", 302 "argNum": 1, 303 "expr": "float64(b) / 1024" 304 } 305 ] 306 }, 307 { 308 "id": "{Float64b__1024__1024} MiB", 309 "message": "{Float64b__1024__1024} MiB", 310 "translation": "{Float64b__1024__1024} MiB", 311 "translatorComment": "Copied from source.", 312 "placeholders": [ 313 { 314 "id": "Float64b__1024__1024", 315 "string": "%.2[1]f", 316 "type": "float64", 317 "underlyingType": "float64", 318 "argNum": 1, 319 "expr": "float64(b) / (1024 * 1024)" 320 } 321 ] 322 }, 323 { 324 "id": "{Float64b__1024__1024__1024} GiB", 325 "message": "{Float64b__1024__1024__1024} GiB", 326 "translation": "{Float64b__1024__1024__1024} GiB", 327 "translatorComment": "Copied from source.", 328 "placeholders": [ 329 { 330 "id": "Float64b__1024__1024__1024", 331 "string": "%.2[1]f", 332 "type": "float64", 333 "underlyingType": "float64", 334 "argNum": 1, 335 "expr": "float64(b) / (1024 * 1024 * 1024)" 336 } 337 ] 338 }, 339 { 340 "id": "{Float64b__1024__1024__1024__1024} TiB", 341 "message": "{Float64b__1024__1024__1024__1024} TiB", 342 "translation": "{Float64b__1024__1024__1024__1024} TiB", 343 "translatorComment": "Copied from source.", 344 "placeholders": [ 345 { 346 "id": "Float64b__1024__1024__1024__1024", 347 "string": "%.2[1]f", 348 "type": "float64", 349 "underlyingType": "float64", 350 "argNum": 1, 351 "expr": "float64(b) / (1024 * 1024 * 1024) / 1024" 352 } 353 ] 354 }, 355 { 356 "id": "{Why}: {Offender}", 357 "message": "{Why}: {Offender}", 358 "translation": "{Why}: {Offender}", 359 "translatorComment": "Copied from source.", 360 "placeholders": [ 361 { 362 "id": "Why", 363 "string": "%[1]s", 364 "type": "string", 365 "underlyingType": "string", 366 "argNum": 1, 367 "expr": "e.why" 368 }, 369 { 370 "id": "Offender", 371 "string": "%[2]q", 372 "type": "string", 373 "underlyingType": "string", 374 "argNum": 2, 375 "expr": "e.offender" 376 } 377 ] 378 }, 379 { 380 "id": "Invalid IP address", 381 "message": "Invalid IP address", 382 "translation": "無效的 IP 位址", 383 "translatorComment": "Copied from source." 384 }, 385 { 386 "id": "Invalid network prefix length", 387 "message": "Invalid network prefix length", 388 "translation": "無效的網路位址首碼長度", 389 "translatorComment": "Copied from source." 390 }, 391 { 392 "id": "Missing port from endpoint", 393 "message": "Missing port from endpoint", 394 "translation": "Endpoint 中沒有指定埠號", 395 "translatorComment": "Copied from source." 396 }, 397 { 398 "id": "Invalid endpoint host", 399 "message": "Invalid endpoint host", 400 "translation": "無效的 Endpoint 位址", 401 "translatorComment": "Copied from source." 402 }, 403 { 404 "id": "Brackets must contain an IPv6 address", 405 "message": "Brackets must contain an IPv6 address", 406 "translation": "括號中必須包含一個 IPv6 位址", 407 "translatorComment": "Copied from source." 408 }, 409 { 410 "id": "Invalid MTU", 411 "message": "Invalid MTU", 412 "translation": "無效的 MTU", 413 "translatorComment": "Copied from source." 414 }, 415 { 416 "id": "Invalid port", 417 "message": "Invalid port", 418 "translation": "無效的埠號", 419 "translatorComment": "Copied from source." 420 }, 421 { 422 "id": "Invalid persistent keepalive", 423 "message": "Invalid persistent keepalive", 424 "translation": "無效的 Persistent Keepalive 設定", 425 "translatorComment": "Copied from source." 426 }, 427 { 428 "id": "Invalid key: {Err}", 429 "message": "Invalid key: {Err}", 430 "translation": "無效的金鑰: {Err}", 431 "translatorComment": "Copied from source.", 432 "placeholders": [ 433 { 434 "id": "Err", 435 "string": "%[1]v", 436 "type": "error", 437 "underlyingType": "interface{Error() string}", 438 "argNum": 1, 439 "expr": "err" 440 } 441 ] 442 }, 443 { 444 "id": "Keys must decode to exactly 32 bytes", 445 "message": "Keys must decode to exactly 32 bytes", 446 "translation": "金鑰必須剛好長 32 bytes", 447 "translatorComment": "Copied from source." 448 }, 449 { 450 "id": "Number must be a number between 0 and 2^64-1: {Err}", 451 "message": "Number must be a number between 0 and 2^64-1: {Err}", 452 "translation": "數值必須介於 0 到 2^64-1: {Err}", 453 "translatorComment": "Copied from source.", 454 "placeholders": [ 455 { 456 "id": "Err", 457 "string": "%[1]v", 458 "type": "error", 459 "underlyingType": "interface{Error() string}", 460 "argNum": 1, 461 "expr": "err" 462 } 463 ] 464 }, 465 { 466 "id": "Two commas in a row", 467 "message": "Two commas in a row", 468 "translation": "一行中有兩個逗號", 469 "translatorComment": "Copied from source." 470 }, 471 { 472 "id": "Tunnel name is not valid", 473 "message": "Tunnel name is not valid", 474 "translation": "隧道名稱無效", 475 "translatorComment": "Copied from source." 476 }, 477 { 478 "id": "Line must occur in a section", 479 "message": "Line must occur in a section", 480 "translation": "行必須出現在段落中", 481 "translatorComment": "Copied from source." 482 }, 483 { 484 "id": "Config key is missing an equals separator", 485 "message": "Config key is missing an equals separator", 486 "translation": "設定的項目必須要有一個等號", 487 "translatorComment": "Copied from source." 488 }, 489 { 490 "id": "Key must have a value", 491 "message": "Key must have a value", 492 "translation": "必須要有一個值", 493 "translatorComment": "Copied from source." 494 }, 495 { 496 "id": "Invalid key for [Interface] section", 497 "message": "Invalid key for [Interface] section", 498 "translation": "[Interface] 中有無效選項", 499 "translatorComment": "Copied from source." 500 }, 501 { 502 "id": "Invalid key for [Peer] section", 503 "message": "Invalid key for [Peer] section", 504 "translation": "[Peer] 中有無效選項", 505 "translatorComment": "Copied from source." 506 }, 507 { 508 "id": "An interface must have a private key", 509 "message": "An interface must have a private key", 510 "translation": "Interface 中必須要有一把私鑰", 511 "translatorComment": "Copied from source." 512 }, 513 { 514 "id": "[none specified]", 515 "message": "[none specified]", 516 "translation": "[未指定]", 517 "translatorComment": "Copied from source." 518 }, 519 { 520 "id": "All peers must have public keys", 521 "message": "All peers must have public keys", 522 "translation": "每個 Peer 都必須要有公鑰", 523 "translatorComment": "Copied from source." 524 }, 525 { 526 "id": "Error in getting configuration", 527 "message": "Error in getting configuration", 528 "translation": "讀取設定時發生錯誤", 529 "translatorComment": "Copied from source." 530 }, 531 { 532 "id": "Invalid key for interface section", 533 "message": "Invalid key for interface section", 534 "translation": "Interface 中的金鑰無效", 535 "translatorComment": "Copied from source." 536 }, 537 { 538 "id": "Protocol version must be 1", 539 "message": "Protocol version must be 1", 540 "translation": "協定版本必須為 1", 541 "translatorComment": "Copied from source." 542 }, 543 { 544 "id": "Invalid key for peer section", 545 "message": "Invalid key for peer section", 546 "translation": "Peer 中的金鑰無效", 547 "translatorComment": "Copied from source." 548 }, 549 { 550 "id": "[EnumerationSeparator]", 551 "message": "[EnumerationSeparator]", 552 "translation": "、", 553 "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 ‘リンゴ、オレンジ、イチゴ’." 554 }, 555 { 556 "id": "[UnitSeparator]", 557 "message": "[UnitSeparator]", 558 "translation": " ", 559 "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秒’." 560 }, 561 { 562 "id": "About WireGuard", 563 "message": "About WireGuard", 564 "translation": "關於 WireGuard", 565 "translatorComment": "Copied from source." 566 }, 567 { 568 "id": "WireGuard logo image", 569 "message": "WireGuard logo image", 570 "translation": "WireGuard logo 圖片", 571 "translatorComment": "Copied from source." 572 }, 573 { 574 "id": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", 575 "message": "App version: {Number}\nGo backend version: {WireGuardGoVersion}\nGo version: {Version_go}-{GOARCH}\nOperating system: {OsName}\nArchitecture: {NativeArch}", 576 "translation": "應用程式版本: {Number}\n後端程式(Go 實作)版本: {WireGuardGoVersion}\nGo 版本: {Version_go}-{GOARCH}\n作業系統: {OsName}\n架構: {NativeArch}", 577 "translatorComment": "Copied from source.", 578 "placeholders": [ 579 { 580 "id": "Number", 581 "string": "%[1]s", 582 "type": "string", 583 "underlyingType": "string", 584 "argNum": 1, 585 "expr": "version.Number" 586 }, 587 { 588 "id": "WireGuardGoVersion", 589 "string": "%[2]s", 590 "type": "string", 591 "underlyingType": "string", 592 "argNum": 2, 593 "expr": "device.WireGuardGoVersion" 594 }, 595 { 596 "id": "Version_go", 597 "string": "%[3]s", 598 "type": "string", 599 "underlyingType": "string", 600 "argNum": 3, 601 "expr": "strings.TrimPrefix(runtime.Version(), \"go\")" 602 }, 603 { 604 "id": "GOARCH", 605 "string": "%[4]s", 606 "type": "string", 607 "underlyingType": "string", 608 "argNum": 4, 609 "expr": "runtime.GOARCH" 610 }, 611 { 612 "id": "OsName", 613 "string": "%[5]s", 614 "type": "string", 615 "underlyingType": "string", 616 "argNum": 5, 617 "expr": "version.OsName()" 618 }, 619 { 620 "id": "NativeArch", 621 "string": "%[6]s", 622 "type": "string", 623 "underlyingType": "string", 624 "argNum": 6, 625 "expr": "version.NativeArch()" 626 } 627 ] 628 }, 629 { 630 "id": "Close", 631 "message": "Close", 632 "translation": "關閉", 633 "translatorComment": "Copied from source." 634 }, 635 { 636 "id": "♥ &Donate!", 637 "message": "♥ &Donate!", 638 "translation": "♥ 捐贈! (&D)", 639 "translatorComment": "Copied from source." 640 }, 641 { 642 "id": "Status:", 643 "message": "Status:", 644 "translation": "狀態", 645 "translatorComment": "Copied from source." 646 }, 647 { 648 "id": "&Deactivate", 649 "message": "&Deactivate", 650 "translation": "中斷連線 (&D)", 651 "translatorComment": "Copied from source." 652 }, 653 { 654 "id": "&Activate", 655 "message": "&Activate", 656 "translation": "連線 (&A)", 657 "translatorComment": "Copied from source." 658 }, 659 { 660 "id": "Public key:", 661 "message": "Public key:", 662 "translation": "公鑰", 663 "translatorComment": "Copied from source." 664 }, 665 { 666 "id": "Listen port:", 667 "message": "Listen port:", 668 "translation": "監聽埠", 669 "translatorComment": "Copied from source." 670 }, 671 { 672 "id": "MTU:", 673 "message": "MTU:", 674 "translation": "MTU", 675 "translatorComment": "Copied from source." 676 }, 677 { 678 "id": "Addresses:", 679 "message": "Addresses:", 680 "translation": "位址", 681 "translatorComment": "Copied from source." 682 }, 683 { 684 "id": "DNS servers:", 685 "message": "DNS servers:", 686 "translation": "DNS 伺服器", 687 "translatorComment": "Copied from source." 688 }, 689 { 690 "id": "Scripts:", 691 "message": "Scripts:", 692 "translation": "指令碼:", 693 "translatorComment": "Copied from source." 694 }, 695 { 696 "id": "Preshared key:", 697 "message": "Preshared key:", 698 "translation": "預交換金鑰", 699 "translatorComment": "Copied from source." 700 }, 701 { 702 "id": "Allowed IPs:", 703 "message": "Allowed IPs:", 704 "translation": "允許的位址", 705 "translatorComment": "Copied from source." 706 }, 707 { 708 "id": "Endpoint:", 709 "message": "Endpoint:", 710 "translation": "連接點", 711 "translatorComment": "Copied from source." 712 }, 713 { 714 "id": "Persistent keepalive:", 715 "message": "Persistent keepalive:", 716 "translation": "Keepalive 間隔", 717 "translatorComment": "Copied from source." 718 }, 719 { 720 "id": "Latest handshake:", 721 "message": "Latest handshake:", 722 "translation": "最後交握時間", 723 "translatorComment": "Copied from source." 724 }, 725 { 726 "id": "Transfer:", 727 "message": "Transfer:", 728 "translation": "流量", 729 "translatorComment": "Copied from source." 730 }, 731 { 732 "id": "pre-up", 733 "message": "pre-up", 734 "translation": "連接前", 735 "translatorComment": "Copied from source." 736 }, 737 { 738 "id": "post-up", 739 "message": "post-up", 740 "translation": "連接後", 741 "translatorComment": "Copied from source." 742 }, 743 { 744 "id": "pre-down", 745 "message": "pre-down", 746 "translation": "斷線前", 747 "translatorComment": "Copied from source." 748 }, 749 { 750 "id": "post-down", 751 "message": "post-down", 752 "translation": "斷線後", 753 "translatorComment": "Copied from source." 754 }, 755 { 756 "id": "disabled, per policy", 757 "message": "disabled, per policy", 758 "translation": "已關閉, 隨著策略", 759 "translatorComment": "Copied from source." 760 }, 761 { 762 "id": "enabled", 763 "message": "enabled", 764 "translation": "已啓用", 765 "translatorComment": "Copied from source." 766 }, 767 { 768 "id": "{String} received, {String_1} sent", 769 "message": "{String} received, {String_1} sent", 770 "translation": "已收到 {String};已傳送 {String_1}", 771 "translatorComment": "Copied from source.", 772 "placeholders": [ 773 { 774 "id": "String", 775 "string": "%[1]s", 776 "type": "string", 777 "underlyingType": "string", 778 "argNum": 1, 779 "expr": "c.RxBytes.String()" 780 }, 781 { 782 "id": "String_1", 783 "string": "%[2]s", 784 "type": "string", 785 "underlyingType": "string", 786 "argNum": 2, 787 "expr": "c.TxBytes.String()" 788 } 789 ] 790 }, 791 { 792 "id": "Failed to determine tunnel state", 793 "message": "Failed to determine tunnel state", 794 "translation": "無法確認隧道狀態", 795 "translatorComment": "Copied from source." 796 }, 797 { 798 "id": "Failed to activate tunnel", 799 "message": "Failed to activate tunnel", 800 "translation": "無法連接隧道", 801 "translatorComment": "Copied from source." 802 }, 803 { 804 "id": "Failed to deactivate tunnel", 805 "message": "Failed to deactivate tunnel", 806 "translation": "無法斷開隧道連線", 807 "translatorComment": "Copied from source." 808 }, 809 { 810 "id": "Interface: {Name}", 811 "message": "Interface: {Name}", 812 "translation": "[隧道] {Name}", 813 "translatorComment": "Copied from source.", 814 "placeholders": [ 815 { 816 "id": "Name", 817 "string": "%[1]s", 818 "type": "string", 819 "underlyingType": "string", 820 "argNum": 1, 821 "expr": "config.Name" 822 } 823 ] 824 }, 825 { 826 "id": "Peer", 827 "message": "Peer", 828 "translation": "節點", 829 "translatorComment": "Copied from source." 830 }, 831 { 832 "id": "Create new tunnel", 833 "message": "Create new tunnel", 834 "translation": "建立新隧道", 835 "translatorComment": "Copied from source." 836 }, 837 { 838 "id": "Edit tunnel", 839 "message": "Edit tunnel", 840 "translation": "編輯隧道設定", 841 "translatorComment": "Copied from source." 842 }, 843 { 844 "id": "&Name:", 845 "message": "&Name:", 846 "translation": "名稱 (&N)", 847 "translatorComment": "Copied from source." 848 }, 849 { 850 "id": "&Public key:", 851 "message": "&Public key:", 852 "translation": "公鑰 (&P)", 853 "translatorComment": "Copied from source." 854 }, 855 { 856 "id": "(unknown)", 857 "message": "(unknown)", 858 "translation": "(未知)", 859 "translatorComment": "Copied from source." 860 }, 861 { 862 "id": "&Block untunneled traffic (kill-switch)", 863 "message": "&Block untunneled traffic (kill-switch)", 864 "translation": "阻斷未經過隧道的流量(kill-switch) (&B)", 865 "translatorComment": "Copied from source." 866 }, 867 { 868 "id": "&Save", 869 "message": "&Save", 870 "translation": "儲存 (&S)", 871 "translatorComment": "Copied from source." 872 }, 873 { 874 "id": "Cancel", 875 "message": "Cancel", 876 "translation": "取消", 877 "translatorComment": "Copied from source." 878 }, 879 { 880 "id": "&Configuration:", 881 "message": "&Configuration:", 882 "translation": "設定 (&C)", 883 "translatorComment": "Copied from source." 884 }, 885 { 886 "id": "Invalid name", 887 "message": "Invalid name", 888 "translation": "無效的名稱", 889 "translatorComment": "Copied from source." 890 }, 891 { 892 "id": "A name is required.", 893 "message": "A name is required.", 894 "translation": "必須填寫名稱。", 895 "translatorComment": "Copied from source." 896 }, 897 { 898 "id": "Tunnel name ‘{NewName}’ is invalid.", 899 "message": "Tunnel name ‘{NewName}’ is invalid.", 900 "translation": "無效的隧道名稱「{NewName}」。", 901 "translatorComment": "Copied from source.", 902 "placeholders": [ 903 { 904 "id": "NewName", 905 "string": "%[1]s", 906 "type": "string", 907 "underlyingType": "string", 908 "argNum": 1, 909 "expr": "newName" 910 } 911 ] 912 }, 913 { 914 "id": "Unable to list existing tunnels", 915 "message": "Unable to list existing tunnels", 916 "translation": "無法列出現有隧道", 917 "translatorComment": "Copied from source." 918 }, 919 { 920 "id": "Tunnel already exists", 921 "message": "Tunnel already exists", 922 "translation": "隧道已存在", 923 "translatorComment": "Copied from source." 924 }, 925 { 926 "id": "Another tunnel already exists with the name ‘{NewName}’.", 927 "message": "Another tunnel already exists with the name ‘{NewName}’.", 928 "translation": "已有同名隧道「{NewName}」。", 929 "translatorComment": "Copied from source.", 930 "placeholders": [ 931 { 932 "id": "NewName", 933 "string": "%[1]s", 934 "type": "string", 935 "underlyingType": "string", 936 "argNum": 1, 937 "expr": "newName" 938 } 939 ] 940 }, 941 { 942 "id": "Unable to create new configuration", 943 "message": "Unable to create new configuration", 944 "translation": "無法建立新的隧道設定", 945 "translatorComment": "Copied from source." 946 }, 947 { 948 "id": "Writing file failed", 949 "message": "Writing file failed", 950 "translation": "檔案寫入失敗", 951 "translatorComment": "Copied from source." 952 }, 953 { 954 "id": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", 955 "message": "File ‘{FilePath}’ already exists.\n\nDo you want to overwrite it?", 956 "translation": "檔案已存在: {FilePath}\n\n您確定要覆蓋嗎?", 957 "translatorComment": "Copied from source.", 958 "placeholders": [ 959 { 960 "id": "FilePath", 961 "string": "%[1]s", 962 "type": "string", 963 "underlyingType": "string", 964 "argNum": 1, 965 "expr": "filePath" 966 } 967 ] 968 }, 969 { 970 "id": "Active", 971 "message": "Active", 972 "translation": "已連線", 973 "translatorComment": "Copied from source." 974 }, 975 { 976 "id": "Activating", 977 "message": "Activating", 978 "translation": "正在連線…", 979 "translatorComment": "Copied from source." 980 }, 981 { 982 "id": "Inactive", 983 "message": "Inactive", 984 "translation": "已中斷連線", 985 "translatorComment": "Copied from source." 986 }, 987 { 988 "id": "Deactivating", 989 "message": "Deactivating", 990 "translation": "正在中斷…", 991 "translatorComment": "Copied from source." 992 }, 993 { 994 "id": "Unknown state", 995 "message": "Unknown state", 996 "translation": "未知", 997 "translatorComment": "Copied from source." 998 }, 999 { 1000 "id": "Log", 1001 "message": "Log", 1002 "translation": "日誌", 1003 "translatorComment": "Copied from source." 1004 }, 1005 { 1006 "id": "&Copy", 1007 "message": "&Copy", 1008 "translation": "複製 (&C)", 1009 "translatorComment": "Copied from source." 1010 }, 1011 { 1012 "id": "Select &all", 1013 "message": "Select &all", 1014 "translation": "全選 (&A)", 1015 "translatorComment": "Copied from source." 1016 }, 1017 { 1018 "id": "&Save to file…", 1019 "message": "&Save to file…", 1020 "translation": "匯出… (&S)", 1021 "translatorComment": "Copied from source." 1022 }, 1023 { 1024 "id": "Time", 1025 "message": "Time", 1026 "translation": "時間", 1027 "translatorComment": "Copied from source." 1028 }, 1029 { 1030 "id": "Log message", 1031 "message": "Log message", 1032 "translation": "日誌訊息", 1033 "translatorComment": "Copied from source." 1034 }, 1035 { 1036 "id": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", 1037 "message": "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", 1038 "translation": "純文字 (*.txt)|*.txt|所有檔案 (*.*)|*.*", 1039 "translatorComment": "Copied from source." 1040 }, 1041 { 1042 "id": "Export log to file", 1043 "message": "Export log to file", 1044 "translation": "匯出日誌…", 1045 "translatorComment": "Copied from source." 1046 }, 1047 { 1048 "id": "&About WireGuard…", 1049 "message": "&About WireGuard…", 1050 "translation": "關於 WireGuard (&A)", 1051 "translatorComment": "Copied from source." 1052 }, 1053 { 1054 "id": "Tunnel Error", 1055 "message": "Tunnel Error", 1056 "translation": "隧道錯誤", 1057 "translatorComment": "Copied from source." 1058 }, 1059 { 1060 "id": "{ErrMsg}\n\nPlease consult the log for more information.", 1061 "message": "{ErrMsg}\n\nPlease consult the log for more information.", 1062 "translation": "{ErrMsg}\n\n如需更多資訊,請查看日誌。", 1063 "translatorComment": "Copied from source.", 1064 "placeholders": [ 1065 { 1066 "id": "ErrMsg", 1067 "string": "%[1]s", 1068 "type": "string", 1069 "underlyingType": "string", 1070 "argNum": 1, 1071 "expr": "errMsg" 1072 } 1073 ] 1074 }, 1075 { 1076 "id": "{Title} (out of date)", 1077 "message": "{Title} (out of date)", 1078 "translation": "{Title}(已過時)", 1079 "translatorComment": "Copied from source.", 1080 "placeholders": [ 1081 { 1082 "id": "Title", 1083 "string": "%[1]s", 1084 "type": "string", 1085 "underlyingType": "string", 1086 "argNum": 1, 1087 "expr": "mtw.Title()" 1088 } 1089 ] 1090 }, 1091 { 1092 "id": "WireGuard Detection Error", 1093 "message": "WireGuard Detection Error", 1094 "translation": "偵測 WireGuard 錯誤", 1095 "translatorComment": "Copied from source." 1096 }, 1097 { 1098 "id": "Unable to wait for WireGuard window to appear: {Err}", 1099 "message": "Unable to wait for WireGuard window to appear: {Err}", 1100 "translation": "無法等待 WireGuard 視窗開啓: {Err}", 1101 "translatorComment": "Copied from source.", 1102 "placeholders": [ 1103 { 1104 "id": "Err", 1105 "string": "%[1]v", 1106 "type": "error", 1107 "underlyingType": "interface{Error() string}", 1108 "argNum": 1, 1109 "expr": "err" 1110 } 1111 ] 1112 }, 1113 { 1114 "id": "WireGuard: Deactivated", 1115 "message": "WireGuard: Deactivated", 1116 "translation": "WireGuard - 未連線", 1117 "translatorComment": "Copied from source." 1118 }, 1119 { 1120 "id": "Status: Unknown", 1121 "message": "Status: Unknown", 1122 "translation": "[狀態] 未知", 1123 "translatorComment": "Copied from source." 1124 }, 1125 { 1126 "id": "Addresses: None", 1127 "message": "Addresses: None", 1128 "translation": "[位址] 無", 1129 "translatorComment": "Copied from source." 1130 }, 1131 { 1132 "id": "&Manage tunnels…", 1133 "message": "&Manage tunnels…", 1134 "translation": "管理隧道 (&M)", 1135 "translatorComment": "Copied from source." 1136 }, 1137 { 1138 "id": "&Import tunnel(s) from file…", 1139 "message": "&Import tunnel(s) from file…", 1140 "translation": "從檔案匯入… (&I)", 1141 "translatorComment": "Copied from source." 1142 }, 1143 { 1144 "id": "E&xit", 1145 "message": "E&xit", 1146 "translation": "離開 (&X)", 1147 "translatorComment": "Copied from source." 1148 }, 1149 { 1150 "id": "WireGuard Activated", 1151 "message": "WireGuard Activated", 1152 "translation": "WireGuard 已連線", 1153 "translatorComment": "Copied from source." 1154 }, 1155 { 1156 "id": "The {Name} tunnel has been activated.", 1157 "message": "The {Name} tunnel has been activated.", 1158 "translation": "已連線至隧道 - {Name}", 1159 "translatorComment": "Copied from source.", 1160 "placeholders": [ 1161 { 1162 "id": "Name", 1163 "string": "%[1]s", 1164 "type": "string", 1165 "underlyingType": "string", 1166 "argNum": 1, 1167 "expr": "tunnel.Name" 1168 } 1169 ] 1170 }, 1171 { 1172 "id": "WireGuard Deactivated", 1173 "message": "WireGuard Deactivated", 1174 "translation": "WireGuard 已中斷連線", 1175 "translatorComment": "Copied from source." 1176 }, 1177 { 1178 "id": "The {Name} tunnel has been deactivated.", 1179 "message": "The {Name} tunnel has been deactivated.", 1180 "translation": "已中斷與隧道的連線 - {Name}", 1181 "translatorComment": "Copied from source.", 1182 "placeholders": [ 1183 { 1184 "id": "Name", 1185 "string": "%[1]s", 1186 "type": "string", 1187 "underlyingType": "string", 1188 "argNum": 1, 1189 "expr": "tunnel.Name" 1190 } 1191 ] 1192 }, 1193 { 1194 "id": "WireGuard Tunnel Error", 1195 "message": "WireGuard Tunnel Error", 1196 "translation": "WireGuard 隧道錯誤", 1197 "translatorComment": "Copied from source." 1198 }, 1199 { 1200 "id": "WireGuard: {TextForStateglobalState_true}", 1201 "message": "WireGuard: {TextForStateglobalState_true}", 1202 "translation": "WireGuard - {TextForStateglobalState_true}", 1203 "translatorComment": "Copied from source.", 1204 "placeholders": [ 1205 { 1206 "id": "TextForStateglobalState_true", 1207 "string": "%[1]s", 1208 "type": "string", 1209 "underlyingType": "string", 1210 "argNum": 1, 1211 "expr": "textForState(globalState, true)" 1212 } 1213 ] 1214 }, 1215 { 1216 "id": "Status: {StateText}", 1217 "message": "Status: {StateText}", 1218 "translation": "[狀態] {StateText}", 1219 "translatorComment": "Copied from source.", 1220 "placeholders": [ 1221 { 1222 "id": "StateText", 1223 "string": "%[1]s", 1224 "type": "string", 1225 "underlyingType": "string", 1226 "argNum": 1, 1227 "expr": "stateText" 1228 } 1229 ] 1230 }, 1231 { 1232 "id": "Addresses: {EnumerationSeparator}", 1233 "message": "Addresses: {EnumerationSeparator}", 1234 "translation": "位址: {EnumerationSeparator}", 1235 "translatorComment": "Copied from source.", 1236 "placeholders": [ 1237 { 1238 "id": "EnumerationSeparator", 1239 "string": "%[1]s", 1240 "type": "string", 1241 "underlyingType": "string", 1242 "argNum": 1, 1243 "expr": "strings.Join(addrs, l18n.EnumerationSeparator())" 1244 } 1245 ] 1246 }, 1247 { 1248 "id": "An Update is Available!", 1249 "message": "An Update is Available!", 1250 "translation": "更新", 1251 "translatorComment": "Copied from source." 1252 }, 1253 { 1254 "id": "WireGuard Update Available", 1255 "message": "WireGuard Update Available", 1256 "translation": "WireGuard 更新", 1257 "translatorComment": "Copied from source." 1258 }, 1259 { 1260 "id": "An update to WireGuard is now available. You are advised to update as soon as possible.", 1261 "message": "An update to WireGuard is now available. You are advised to update as soon as possible.", 1262 "translation": "更新的 WireGuard 已經為您準備好了。\n強烈建議您立即更新 WireGuard。", 1263 "translatorComment": "Copied from source." 1264 }, 1265 { 1266 "id": "Tunnels", 1267 "message": "Tunnels", 1268 "translation": "隧道", 1269 "translatorComment": "Copied from source." 1270 }, 1271 { 1272 "id": "&Edit", 1273 "message": "&Edit", 1274 "translation": "編輯 (&E)", 1275 "translatorComment": "Copied from source." 1276 }, 1277 { 1278 "id": "Add &empty tunnel…", 1279 "message": "Add &empty tunnel…", 1280 "translation": "新增隧道精靈 (&E)", 1281 "translatorComment": "Copied from source." 1282 }, 1283 { 1284 "id": "Add Tunnel", 1285 "message": "Add Tunnel", 1286 "translation": "新增隧道", 1287 "translatorComment": "Copied from source." 1288 }, 1289 { 1290 "id": "Remove selected tunnel(s)", 1291 "message": "Remove selected tunnel(s)", 1292 "translation": "刪除選取隧道", 1293 "translatorComment": "Copied from source." 1294 }, 1295 { 1296 "id": "Export all tunnels to zip", 1297 "message": "Export all tunnels to zip", 1298 "translation": "匯出所有隧道(ZIP 格式)", 1299 "translatorComment": "Copied from source." 1300 }, 1301 { 1302 "id": "&Toggle", 1303 "message": "&Toggle", 1304 "translation": "切換連線狀態 (&T)", 1305 "translatorComment": "Copied from source." 1306 }, 1307 { 1308 "id": "Export all tunnels to &zip…", 1309 "message": "Export all tunnels to &zip…", 1310 "translation": "匯出所有隧道至 &ZIP 壓縮檔", 1311 "translatorComment": "Copied from source." 1312 }, 1313 { 1314 "id": "Edit &selected tunnel…", 1315 "message": "Edit &selected tunnel…", 1316 "translation": "編輯選取隧道 (&S)", 1317 "translatorComment": "Copied from source." 1318 }, 1319 { 1320 "id": "&Remove selected tunnel(s)", 1321 "message": "&Remove selected tunnel(s)", 1322 "translation": "刪除已選取隧道 (&R)", 1323 "translatorComment": "Copied from source." 1324 }, 1325 { 1326 "id": "no configuration files were found", 1327 "message": "no configuration files were found", 1328 "translation": "找不到設定檔", 1329 "translatorComment": "Copied from source." 1330 }, 1331 { 1332 "id": "Could not import selected configuration: {LastErr}", 1333 "message": "Could not import selected configuration: {LastErr}", 1334 "translation": "無法匯入設定: {LastErr}", 1335 "translatorComment": "Copied from source.", 1336 "placeholders": [ 1337 { 1338 "id": "LastErr", 1339 "string": "%[1]v", 1340 "type": "error", 1341 "underlyingType": "interface{Error() string}", 1342 "argNum": 1, 1343 "expr": "lastErr" 1344 } 1345 ] 1346 }, 1347 { 1348 "id": "Could not enumerate existing tunnels: {LastErr}", 1349 "message": "Could not enumerate existing tunnels: {LastErr}", 1350 "translation": "無法列出隧道: {LastErr}", 1351 "translatorComment": "Copied from source.", 1352 "placeholders": [ 1353 { 1354 "id": "LastErr", 1355 "string": "%[1]v", 1356 "type": "error", 1357 "underlyingType": "interface{Error() string}", 1358 "argNum": 1, 1359 "expr": "lastErr" 1360 } 1361 ] 1362 }, 1363 { 1364 "id": "Another tunnel already exists with the name ‘{Name}’", 1365 "message": "Another tunnel already exists with the name ‘{Name}’", 1366 "translation": "已有另一個同名的隧道「{Name}」", 1367 "translatorComment": "Copied from source.", 1368 "placeholders": [ 1369 { 1370 "id": "Name", 1371 "string": "%[1]s", 1372 "type": "string", 1373 "underlyingType": "string", 1374 "argNum": 1, 1375 "expr": "unparsedConfig.Name" 1376 } 1377 ] 1378 }, 1379 { 1380 "id": "Unable to import configuration: {LastErr}", 1381 "message": "Unable to import configuration: {LastErr}", 1382 "translation": "無法匯入設定: {LastErr}", 1383 "translatorComment": "Copied from source.", 1384 "placeholders": [ 1385 { 1386 "id": "LastErr", 1387 "string": "%[1]v", 1388 "type": "error", 1389 "underlyingType": "interface{Error() string}", 1390 "argNum": 1, 1391 "expr": "lastErr" 1392 } 1393 ] 1394 }, 1395 { 1396 "id": "Imported tunnels", 1397 "message": "Imported tunnels", 1398 "translation": "已匯入隧道", 1399 "translatorComment": "Copied from source." 1400 }, 1401 { 1402 "id": "Imported {M} tunnels", 1403 "message": "Imported {M} tunnels", 1404 "translation": { 1405 "select": { 1406 "feature": "plural", 1407 "arg": "M", 1408 "cases": { 1409 "other": { 1410 "msg": "已匯入 {M} 個隧道" 1411 } 1412 } 1413 } 1414 }, 1415 "placeholders": [ 1416 { 1417 "id": "M", 1418 "string": "%[1]d", 1419 "type": "int", 1420 "underlyingType": "int", 1421 "argNum": 1, 1422 "expr": "m" 1423 } 1424 ] 1425 }, 1426 { 1427 "id": "Imported {M} of {N} tunnels", 1428 "message": "Imported {M} of {N} tunnels", 1429 "translation": { 1430 "select": { 1431 "feature": "plural", 1432 "arg": "N", 1433 "cases": { 1434 "other": { 1435 "msg": "已匯入 {M} 個隧道(共 {N} 個)" 1436 } 1437 } 1438 } 1439 }, 1440 "placeholders": [ 1441 { 1442 "id": "M", 1443 "string": "%[1]d", 1444 "type": "int", 1445 "underlyingType": "int", 1446 "argNum": 1, 1447 "expr": "m" 1448 }, 1449 { 1450 "id": "N", 1451 "string": "%[2]d", 1452 "type": "int", 1453 "underlyingType": "int", 1454 "argNum": 2, 1455 "expr": "n" 1456 } 1457 ] 1458 }, 1459 { 1460 "id": "Unable to create tunnel", 1461 "message": "Unable to create tunnel", 1462 "translation": "無法建立隧道", 1463 "translatorComment": "Copied from source." 1464 }, 1465 { 1466 "id": "Delete {TunnelCount} tunnels", 1467 "message": "Delete {TunnelCount} tunnels", 1468 "translation": { 1469 "select": { 1470 "feature": "plural", 1471 "arg": "TunnelCount", 1472 "cases": { 1473 "other": { 1474 "msg": "刪除 {TunnelCount} 個隧道" 1475 } 1476 } 1477 } 1478 }, 1479 "placeholders": [ 1480 { 1481 "id": "TunnelCount", 1482 "string": "%[1]d", 1483 "type": "int", 1484 "underlyingType": "int", 1485 "argNum": 1, 1486 "expr": "tunnelCount" 1487 } 1488 ] 1489 }, 1490 { 1491 "id": "Are you sure you would like to delete {TunnelCount} tunnels?", 1492 "message": "Are you sure you would like to delete {TunnelCount} tunnels?", 1493 "translation": { 1494 "select": { 1495 "feature": "plural", 1496 "arg": "TunnelCount", 1497 "cases": { 1498 "other": { 1499 "msg": "您確定要刪除 {TunnelCount} 個隧道嗎?" 1500 } 1501 } 1502 } 1503 }, 1504 "placeholders": [ 1505 { 1506 "id": "TunnelCount", 1507 "string": "%[1]d", 1508 "type": "int", 1509 "underlyingType": "int", 1510 "argNum": 1, 1511 "expr": "tunnelCount" 1512 } 1513 ] 1514 }, 1515 { 1516 "id": "Delete tunnel ‘{TunnelName}’", 1517 "message": "Delete tunnel ‘{TunnelName}’", 1518 "translation": "刪除隧道 - {TunnelName}", 1519 "translatorComment": "Copied from source.", 1520 "placeholders": [ 1521 { 1522 "id": "TunnelName", 1523 "string": "%[1]s", 1524 "type": "string", 1525 "underlyingType": "string", 1526 "argNum": 1, 1527 "expr": "tunnelName" 1528 } 1529 ] 1530 }, 1531 { 1532 "id": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", 1533 "message": "Are you sure you would like to delete tunnel ‘{TunnelName}’?", 1534 "translation": "您確定要刪除隧道「{TunnelName}」嗎?", 1535 "translatorComment": "Copied from source.", 1536 "placeholders": [ 1537 { 1538 "id": "TunnelName", 1539 "string": "%[1]s", 1540 "type": "string", 1541 "underlyingType": "string", 1542 "argNum": 1, 1543 "expr": "tunnelName" 1544 } 1545 ] 1546 }, 1547 { 1548 "id": "{Question} You cannot undo this action.", 1549 "message": "{Question} You cannot undo this action.", 1550 "translation": "{Question}\n\n您將無法復原此操作。", 1551 "translatorComment": "Copied from source.", 1552 "placeholders": [ 1553 { 1554 "id": "Question", 1555 "string": "%[1]s", 1556 "type": "string", 1557 "underlyingType": "string", 1558 "argNum": 1, 1559 "expr": "question" 1560 } 1561 ] 1562 }, 1563 { 1564 "id": "Unable to delete tunnel", 1565 "message": "Unable to delete tunnel", 1566 "translation": "無法刪除隧道", 1567 "translatorComment": "Copied from source." 1568 }, 1569 { 1570 "id": "A tunnel was unable to be removed: {Error}", 1571 "message": "A tunnel was unable to be removed: {Error}", 1572 "translation": "無法刪除隧道: {Error}", 1573 "translatorComment": "Copied from source.", 1574 "placeholders": [ 1575 { 1576 "id": "Error", 1577 "string": "%[1]s", 1578 "type": "string", 1579 "underlyingType": "string", 1580 "argNum": 1, 1581 "expr": "errors[0].Error()" 1582 } 1583 ] 1584 }, 1585 { 1586 "id": "Unable to delete tunnels", 1587 "message": "Unable to delete tunnels", 1588 "translation": "無法刪除隧道", 1589 "translatorComment": "Copied from source." 1590 }, 1591 { 1592 "id": "{Lenerrors} tunnels were unable to be removed.", 1593 "message": "{Lenerrors} tunnels were unable to be removed.", 1594 "translation": { 1595 "select": { 1596 "feature": "plural", 1597 "arg": "Lenerrors", 1598 "cases": { 1599 "other": { 1600 "msg": "無法刪除 {Lenerrors} 個隧道" 1601 } 1602 } 1603 } 1604 }, 1605 "placeholders": [ 1606 { 1607 "id": "Lenerrors", 1608 "string": "%[1]d", 1609 "type": "int", 1610 "underlyingType": "int", 1611 "argNum": 1, 1612 "expr": "len(errors)" 1613 } 1614 ] 1615 }, 1616 { 1617 "id": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", 1618 "message": "Configuration Files (*.zip, *.conf)|*.zip;*.conf|All Files (*.*)|*.*", 1619 "translation": "隧道設定檔 (*.zip, *.conf)|*.zip;*.conf|所有檔案 (*.*)|*.*", 1620 "translatorComment": "Copied from source." 1621 }, 1622 { 1623 "id": "Import tunnel(s) from file", 1624 "message": "Import tunnel(s) from file", 1625 "translation": "從檔案中匯入隧道…", 1626 "translatorComment": "Copied from source." 1627 }, 1628 { 1629 "id": "Configuration ZIP Files (*.zip)|*.zip", 1630 "message": "Configuration ZIP Files (*.zip)|*.zip", 1631 "translation": "隧道設定檔 (*.zip)|*.zip", 1632 "translatorComment": "Copied from source." 1633 }, 1634 { 1635 "id": "Export tunnels to zip", 1636 "message": "Export tunnels to zip", 1637 "translation": "匯出隧道設定至…", 1638 "translatorComment": "Copied from source." 1639 }, 1640 { 1641 "id": "{Title} (unsigned build, no updates)", 1642 "message": "{Title} (unsigned build, no updates)", 1643 "translation": "{Title}(未簽署發行版本,無法自動更新)", 1644 "translatorComment": "Copied from source.", 1645 "placeholders": [ 1646 { 1647 "id": "Title", 1648 "string": "%[1]s", 1649 "type": "string", 1650 "underlyingType": "string", 1651 "argNum": 1, 1652 "expr": "mtw.Title()" 1653 } 1654 ] 1655 }, 1656 { 1657 "id": "Error Exiting WireGuard", 1658 "message": "Error Exiting WireGuard", 1659 "translation": "離開 WireGuard 失敗", 1660 "translatorComment": "Copied from source." 1661 }, 1662 { 1663 "id": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", 1664 "message": "Unable to exit service due to: {Err}. You may want to stop WireGuard from the service manager.", 1665 "translation": "無法結束服務: {Err}。\n您可能需要手動從服務管理中結束 WireGuard 服務。", 1666 "translatorComment": "Copied from source.", 1667 "placeholders": [ 1668 { 1669 "id": "Err", 1670 "string": "%[1]v", 1671 "type": "error", 1672 "underlyingType": "interface{Error() string}", 1673 "argNum": 1, 1674 "expr": "err" 1675 } 1676 ] 1677 }, 1678 { 1679 "id": "An update to WireGuard is available. It is highly advisable to update without delay.", 1680 "message": "An update to WireGuard is available. It is highly advisable to update without delay.", 1681 "translation": "更新的 WireGuard 已經為您準備好了。\n強烈建議您立即進行更新。", 1682 "translatorComment": "Copied from source." 1683 }, 1684 { 1685 "id": "Status: Waiting for user", 1686 "message": "Status: Waiting for user", 1687 "translation": "狀態:等待使用者", 1688 "translatorComment": "Copied from source." 1689 }, 1690 { 1691 "id": "Update Now", 1692 "message": "Update Now", 1693 "translation": "立即更新", 1694 "translatorComment": "Copied from source." 1695 }, 1696 { 1697 "id": "Status: Waiting for updater service", 1698 "message": "Status: Waiting for updater service", 1699 "translation": "狀態:等待更新服務", 1700 "translatorComment": "Copied from source." 1701 }, 1702 { 1703 "id": "Error: {Err}. Please try again.", 1704 "message": "Error: {Err}. Please try again.", 1705 "translation": "錯誤: {Err}。請稍後再試。", 1706 "translatorComment": "Copied from source.", 1707 "placeholders": [ 1708 { 1709 "id": "Err", 1710 "string": "%[1]v", 1711 "type": "error", 1712 "underlyingType": "interface{Error() string}", 1713 "argNum": 1, 1714 "expr": "err" 1715 } 1716 ] 1717 }, 1718 { 1719 "id": "Status: Complete!", 1720 "message": "Status: Complete!", 1721 "translation": "狀態:已完成!", 1722 "translatorComment": "Copied from source." 1723 }, 1724 { 1725 "id": "http2: Framer {F}: failed to decode just-written frame", 1726 "message": "http2: Framer {F}: failed to decode just-written frame", 1727 "translation": "http2: Framer {F}: failed to decode just-written frame", 1728 "translatorComment": "Copied from source.", 1729 "placeholders": [ 1730 { 1731 "id": "F", 1732 "string": "%[1]p", 1733 "type": "*net/http.http2Framer", 1734 "underlyingType": "*net/http.http2Framer", 1735 "argNum": 1, 1736 "expr": "f" 1737 } 1738 ] 1739 }, 1740 { 1741 "id": "http2: Framer {F}: wrote {Http2summarizeFramefr}", 1742 "message": "http2: Framer {F}: wrote {Http2summarizeFramefr}", 1743 "translation": "http2: Framer {F}: wrote {Http2summarizeFramefr}", 1744 "translatorComment": "Copied from source.", 1745 "placeholders": [ 1746 { 1747 "id": "F", 1748 "string": "%[1]p", 1749 "type": "*net/http.http2Framer", 1750 "underlyingType": "*net/http.http2Framer", 1751 "argNum": 1, 1752 "expr": "f" 1753 }, 1754 { 1755 "id": "Http2summarizeFramefr", 1756 "string": "%[2]v", 1757 "type": "string", 1758 "underlyingType": "string", 1759 "argNum": 2, 1760 "expr": "http2summarizeFrame(fr)" 1761 } 1762 ] 1763 }, 1764 { 1765 "id": "http2: Framer {Fr}: read {Http2summarizeFramef}", 1766 "message": "http2: Framer {Fr}: read {Http2summarizeFramef}", 1767 "translation": "http2: Framer {Fr}: read {Http2summarizeFramef}", 1768 "translatorComment": "Copied from source.", 1769 "placeholders": [ 1770 { 1771 "id": "Fr", 1772 "string": "%[1]p", 1773 "type": "*net/http.http2Framer", 1774 "underlyingType": "*net/http.http2Framer", 1775 "argNum": 1, 1776 "expr": "fr" 1777 }, 1778 { 1779 "id": "Http2summarizeFramef", 1780 "string": "%[2]v", 1781 "type": "string", 1782 "underlyingType": "string", 1783 "argNum": 2, 1784 "expr": "http2summarizeFrame(f)" 1785 } 1786 ] 1787 }, 1788 { 1789 "id": "http2: decoded hpack field {HeaderField}", 1790 "message": "http2: decoded hpack field {HeaderField}", 1791 "translation": "http2: decoded hpack field {HeaderField}", 1792 "translatorComment": "Copied from source.", 1793 "placeholders": [ 1794 { 1795 "id": "HeaderField", 1796 "string": "%+[1]v", 1797 "type": "vendor/golang.org/x/net/http2/hpack.HeaderField", 1798 "underlyingType": "struct{Name string; Value string; Sensitive bool}", 1799 "argNum": 1, 1800 "expr": "hf" 1801 } 1802 ] 1803 } 1804 ] 1805 }