From f3a5635add7a8889919543bb62c66e01cdd5ecc9 Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Tue, 12 Sep 2023 08:51:23 +0800 Subject: [PATCH 1/8] Create localization files for zh-hk --- .../VMDisplayMetalViewInputAccessory.strings | 162 ++++++++++++++++++ Platform/iOS/zh-HK.lproj/InfoPlist.strings | 1 + .../zh-HK.lproj/VMDisplayWindow.strings | 93 ++++++++++ Platform/macOS/zh-HK.lproj/InfoPlist.strings | 1 + Platform/zh-HK.lproj/Localizable.strings | 1 + Platform/zh-HK.lproj/Localizable.stringsdict | 22 +++ QEMUHelper/zh-HK.lproj/InfoPlist.strings | 1 + QEMUHelper/zh-HK.lproj/Localizable.strings | 1 + UTM.xcodeproj/project.pbxproj | 19 +- 9 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings create mode 100644 Platform/iOS/zh-HK.lproj/InfoPlist.strings create mode 100644 Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings create mode 100644 Platform/macOS/zh-HK.lproj/InfoPlist.strings create mode 100644 Platform/zh-HK.lproj/Localizable.strings create mode 100644 Platform/zh-HK.lproj/Localizable.stringsdict create mode 100644 QEMUHelper/zh-HK.lproj/InfoPlist.strings create mode 100644 QEMUHelper/zh-HK.lproj/Localizable.strings diff --git a/Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings b/Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings new file mode 100644 index 000000000..003217011 --- /dev/null +++ b/Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings @@ -0,0 +1,162 @@ + +/* Class = "UIButton"; normalTitle = "F7"; ObjectID = "3yi-Pr-1ih"; */ +"3yi-Pr-1ih.normalTitle" = "F7"; + +/* Class = "UIButton"; accessibilityLabel = "Paste"; ObjectID = "740-aI-39P"; */ +"740-aI-39P.accessibilityLabel" = "Paste"; + +/* Class = "UIButton"; accessibilityLabel = "Tab"; ObjectID = "7pj-Jz-7JR"; */ +"7pj-Jz-7JR.accessibilityLabel" = "Tab"; + +/* Class = "UIButton"; normalTitle = "⇥"; ObjectID = "7pj-Jz-7JR"; */ +"7pj-Jz-7JR.normalTitle" = "⇥"; + +/* Class = "UIButton"; accessibilityLabel = "Right"; ObjectID = "8Lh-4D-Fz6"; */ +"8Lh-4D-Fz6.accessibilityLabel" = "Right"; + +/* Class = "UIButton"; normalTitle = "→"; ObjectID = "8Lh-4D-Fz6"; */ +"8Lh-4D-Fz6.normalTitle" = "→"; + +/* Class = "UIButton"; accessibilityLabel = "Right"; ObjectID = "AY8-eJ-bAP"; */ +"AY8-eJ-bAP.accessibilityLabel" = "Right"; + +/* Class = "UIButton"; normalTitle = "Del"; ObjectID = "AY8-eJ-bAP"; */ +"AY8-eJ-bAP.normalTitle" = "Del"; + +/* Class = "UIButton"; normalTitle = "F10"; ObjectID = "AhH-ij-IF8"; */ +"AhH-ij-IF8.normalTitle" = "F10"; + +/* Class = "UIButton"; accessibilityLabel = "Up"; ObjectID = "BUL-js-yMh"; */ +"BUL-js-yMh.accessibilityLabel" = "Up"; + +/* Class = "UIButton"; normalTitle = "↑"; ObjectID = "BUL-js-yMh"; */ +"BUL-js-yMh.normalTitle" = "↑"; + +/* Class = "UIButton"; accessibilityLabel = "Num Lock"; ObjectID = "BUk-Vf-yE5"; */ +"BUk-Vf-yE5.accessibilityLabel" = "Num Lock"; + +/* Class = "UIButton"; normalTitle = "Num"; ObjectID = "BUk-Vf-yE5"; */ +"BUk-Vf-yE5.normalTitle" = "Num"; + +/* Class = "UIButton"; normalTitle = "F5"; ObjectID = "DxX-zu-urb"; */ +"DxX-zu-urb.normalTitle" = "F5"; + +/* Class = "UIButton"; normalTitle = "F12"; ObjectID = "EDi-KP-KwO"; */ +"EDi-KP-KwO.normalTitle" = "F12"; + +/* Class = "UIButton"; accessibilityLabel = "Left"; ObjectID = "EVa-2J-CRA"; */ +"EVa-2J-CRA.accessibilityLabel" = "Left"; + +/* Class = "UIButton"; normalTitle = "←"; ObjectID = "EVa-2J-CRA"; */ +"EVa-2J-CRA.normalTitle" = "←"; + +/* Class = "UIButton"; accessibilityLabel = "Caps Lock"; ObjectID = "FDV-W6-qlO"; */ +"FDV-W6-qlO.accessibilityLabel" = "Caps Lock"; + +/* Class = "UIButton"; normalTitle = "Caps"; ObjectID = "FDV-W6-qlO"; */ +"FDV-W6-qlO.normalTitle" = "Caps"; + +/* Class = "UIButton"; accessibilityLabel = "Home"; ObjectID = "LU6-kH-vN3"; */ +"LU6-kH-vN3.accessibilityLabel" = "Home"; + +/* Class = "UIButton"; normalTitle = "Home"; ObjectID = "LU6-kH-vN3"; */ +"LU6-kH-vN3.normalTitle" = "Home"; + +/* Class = "UIButton"; normalTitle = "F8"; ObjectID = "LlV-Ae-CrL"; */ +"LlV-Ae-CrL.normalTitle" = "F8"; + +/* Class = "UIButton"; normalTitle = "F1"; ObjectID = "PWe-Va-Qi1"; */ +"PWe-Va-Qi1.normalTitle" = "F1"; + +/* Class = "UIButton"; accessibilityLabel = "Print Screen"; ObjectID = "Pes-KN-KzU"; */ +"Pes-KN-KzU.accessibilityLabel" = "Print Screen"; + +/* Class = "UIButton"; normalTitle = "Pr Scr"; ObjectID = "Pes-KN-KzU"; */ +"Pes-KN-KzU.normalTitle" = "Pr Scr"; + +/* Class = "UIButton"; accessibilityLabel = "Command"; ObjectID = "Pjh-3m-tFX"; */ +"Pjh-3m-tFX.accessibilityLabel" = "Command"; + +/* Class = "UIButton"; normalTitle = "⌘"; ObjectID = "Pjh-3m-tFX"; */ +"Pjh-3m-tFX.normalTitle" = "⌘"; + +/* Class = "UIButton"; accessibilityLabel = "Shift"; ObjectID = "QPo-cD-UlK"; */ +"QPo-cD-UlK.accessibilityLabel" = "Shift"; + +/* Class = "UIButton"; normalTitle = "⇧"; ObjectID = "QPo-cD-UlK"; */ +"QPo-cD-UlK.normalTitle" = "⇧"; + +/* Class = "UIButton"; accessibilityLabel = "Down"; ObjectID = "RCo-l7-gvf"; */ +"RCo-l7-gvf.accessibilityLabel" = "Down"; + +/* Class = "UIButton"; normalTitle = "↓"; ObjectID = "RCo-l7-gvf"; */ +"RCo-l7-gvf.normalTitle" = "↓"; + +/* Class = "UIButton"; normalTitle = "F6"; ObjectID = "Rb5-vO-sIx"; */ +"Rb5-vO-sIx.normalTitle" = "F6"; + +/* Class = "UIButton"; accessibilityLabel = "End"; ObjectID = "TOV-fV-TTa"; */ +"TOV-fV-TTa.accessibilityLabel" = "End"; + +/* Class = "UIButton"; normalTitle = "End"; ObjectID = "TOV-fV-TTa"; */ +"TOV-fV-TTa.normalTitle" = "End"; + +/* Class = "UIButton"; normalTitle = "F9"; ObjectID = "UNT-ei-lIn"; */ +"UNT-ei-lIn.normalTitle" = "F9"; + +/* Class = "UIButton"; accessibilityLabel = "Control"; ObjectID = "bCv-uH-SSy"; */ +"bCv-uH-SSy.accessibilityLabel" = "Control"; + +/* Class = "UIButton"; normalTitle = "⌃"; ObjectID = "bCv-uH-SSy"; */ +"bCv-uH-SSy.normalTitle" = "⌃"; + +/* Class = "UIButton"; normalTitle = "F4"; ObjectID = "c7C-CG-EBg"; */ +"c7C-CG-EBg.normalTitle" = "F4"; + +/* Class = "UIButton"; normalTitle = "F3"; ObjectID = "gUX-ez-mbt"; */ +"gUX-ez-mbt.normalTitle" = "F3"; + +/* Class = "UIButton"; accessibilityLabel = "Page Down"; ObjectID = "h4q-XF-UMn"; */ +"h4q-XF-UMn.accessibilityLabel" = "Page Down"; + +/* Class = "UIButton"; normalTitle = "Pg Dn"; ObjectID = "h4q-XF-UMn"; */ +"h4q-XF-UMn.normalTitle" = "Pg Dn"; + +/* Class = "UIButton"; accessibilityLabel = "Option"; ObjectID = "jxu-AQ-u8c"; */ +"jxu-AQ-u8c.accessibilityLabel" = "Option"; + +/* Class = "UIButton"; normalTitle = "⌥"; ObjectID = "jxu-AQ-u8c"; */ +"jxu-AQ-u8c.normalTitle" = "⌥"; + +/* Class = "UIButton"; accessibilityLabel = "Insert"; ObjectID = "kO0-HZ-5w2"; */ +"kO0-HZ-5w2.accessibilityLabel" = "Insert"; + +/* Class = "UIButton"; normalTitle = "Ins"; ObjectID = "kO0-HZ-5w2"; */ +"kO0-HZ-5w2.normalTitle" = "Ins"; + +/* Class = "UIButton"; normalTitle = "F2"; ObjectID = "kd1-fj-kXM"; */ +"kd1-fj-kXM.normalTitle" = "F2"; + +/* Class = "UIButton"; accessibilityLabel = "Escape"; ObjectID = "n12-9R-99C"; */ +"n12-9R-99C.accessibilityLabel" = "Escape"; + +/* Class = "UIButton"; normalTitle = "⎋"; ObjectID = "n12-9R-99C"; */ +"n12-9R-99C.normalTitle" = "⎋"; + +/* Class = "UIButton"; accessibilityLabel = "Page Up"; ObjectID = "pX1-7o-dbU"; */ +"pX1-7o-dbU.accessibilityLabel" = "Page Up"; + +/* Class = "UIButton"; normalTitle = "Pg Up"; ObjectID = "pX1-7o-dbU"; */ +"pX1-7o-dbU.normalTitle" = "Pg Up"; + +/* Class = "UIButton"; normalTitle = "F11"; ObjectID = "rfk-su-cFq"; */ +"rfk-su-cFq.normalTitle" = "F11"; + +/* Class = "UIButton"; accessibilityLabel = "Hide Keyboard"; ObjectID = "rtU-Yt-FhT"; */ +"rtU-Yt-FhT.accessibilityLabel" = "Hide Keyboard"; + +/* Class = "UIButton"; accessibilityLabel = "Scroll Lock"; ObjectID = "sF1-tj-hUG"; */ +"sF1-tj-hUG.accessibilityLabel" = "Scroll Lock"; + +/* Class = "UIButton"; normalTitle = "Scroll"; ObjectID = "sF1-tj-hUG"; */ +"sF1-tj-hUG.normalTitle" = "Scroll"; diff --git a/Platform/iOS/zh-HK.lproj/InfoPlist.strings b/Platform/iOS/zh-HK.lproj/InfoPlist.strings new file mode 100644 index 000000000..f2180cd78 --- /dev/null +++ b/Platform/iOS/zh-HK.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"" = ""; diff --git a/Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings b/Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings new file mode 100644 index 000000000..4d3aea3f3 --- /dev/null +++ b/Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings @@ -0,0 +1,93 @@ + +/* Class = "NSToolbarItem"; label = "Shared Folder"; ObjectID = "7EC-GE-fIl"; */ +"7EC-GE-fIl.label" = "Shared Folder"; + +/* Class = "NSToolbarItem"; paletteLabel = "Shared Folder"; ObjectID = "7EC-GE-fIl"; */ +"7EC-GE-fIl.paletteLabel" = "Shared Folder"; + +/* Class = "NSToolbarItem"; toolTip = "Shared folder"; ObjectID = "7EC-GE-fIl"; */ +"7EC-GE-fIl.toolTip" = "Shared folder"; + +/* Class = "NSToolbarItem"; label = "Stop"; ObjectID = "Bkx-Ph-j0D"; */ +"Bkx-Ph-j0D.label" = "Stop"; + +/* Class = "NSToolbarItem"; paletteLabel = "Stop"; ObjectID = "Bkx-Ph-j0D"; */ +"Bkx-Ph-j0D.paletteLabel" = "Stop"; + +/* Class = "NSToolbarItem"; toolTip = "Shuts down and stops the VM"; ObjectID = "Bkx-Ph-j0D"; */ +"Bkx-Ph-j0D.toolTip" = "Shuts down and stops the VM"; + +/* Class = "NSToolbarItem"; label = "Toolbar Item"; ObjectID = "C8Y-BQ-Y6m"; */ +"C8Y-BQ-Y6m.label" = "Toolbar Item"; + +/* Class = "NSToolbarItem"; paletteLabel = "Toolbar Item"; ObjectID = "C8Y-BQ-Y6m"; */ +"C8Y-BQ-Y6m.paletteLabel" = "Toolbar Item"; + +/* Class = "NSToolbarItem"; label = "Capture Input"; ObjectID = "FN7-zs-mWC"; */ +"FN7-zs-mWC.label" = "Capture Input"; + +/* Class = "NSToolbarItem"; paletteLabel = "Capture Input"; ObjectID = "FN7-zs-mWC"; */ +"FN7-zs-mWC.paletteLabel" = "Capture Input"; + +/* Class = "NSToolbarItem"; toolTip = "Capture input devices"; ObjectID = "FN7-zs-mWC"; */ +"FN7-zs-mWC.toolTip" = "Capture input devices"; + +/* Class = "NSToolbarItem"; label = "Restart"; ObjectID = "G7P-HJ-bcy"; */ +"G7P-HJ-bcy.label" = "Restart"; + +/* Class = "NSToolbarItem"; paletteLabel = "Restart"; ObjectID = "G7P-HJ-bcy"; */ +"G7P-HJ-bcy.paletteLabel" = "Restart"; + +/* Class = "NSToolbarItem"; toolTip = "Restarts the VM"; ObjectID = "G7P-HJ-bcy"; */ +"G7P-HJ-bcy.toolTip" = "Restarts the VM"; + +/* Class = "NSToolbarItem"; label = "Windows"; ObjectID = "MQ2-L1-yl7"; */ +"MQ2-L1-yl7.label" = "Windows"; + +/* Class = "NSToolbarItem"; paletteLabel = "Windows"; ObjectID = "MQ2-L1-yl7"; */ +"MQ2-L1-yl7.paletteLabel" = "Windows"; + +/* Class = "NSToolbarItem"; toolTip = "Windows"; ObjectID = "MQ2-L1-yl7"; */ +"MQ2-L1-yl7.toolTip" = "Windows"; + +/* Class = "NSWindow"; title = "UTM"; ObjectID = "QvC-M9-y7g"; */ +"QvC-M9-y7g.title" = "UTM"; + +/* Class = "NSToolbarItem"; label = "Resize Console"; ObjectID = "Ulf-oT-4cP"; */ +"Ulf-oT-4cP.label" = "Resize Console"; + +/* Class = "NSToolbarItem"; paletteLabel = "Resize Console"; ObjectID = "Ulf-oT-4cP"; */ +"Ulf-oT-4cP.paletteLabel" = "Resize Console"; + +/* Class = "NSToolbarItem"; toolTip = "Send console resize command"; ObjectID = "Ulf-oT-4cP"; */ +"Ulf-oT-4cP.toolTip" = "Send console resize command"; + +/* Class = "NSButton"; ibShadowedToolTip = "Starts/resumes the VM"; ObjectID = "ZTi-Hs-ge6"; */ +"ZTi-Hs-ge6.ibShadowedToolTip" = "Starts/resumes the VM"; + +/* Class = "NSToolbarItem"; label = "Drives"; ObjectID = "bKL-Th-FFw"; */ +"bKL-Th-FFw.label" = "Drives"; + +/* Class = "NSToolbarItem"; paletteLabel = "Drives"; ObjectID = "bKL-Th-FFw"; */ +"bKL-Th-FFw.paletteLabel" = "Drives"; + +/* Class = "NSToolbarItem"; toolTip = "Drive image options"; ObjectID = "bKL-Th-FFw"; */ +"bKL-Th-FFw.toolTip" = "Drive image options"; + +/* Class = "NSToolbarItem"; label = "Start/Pause"; ObjectID = "kT2-2U-cYm"; */ +"kT2-2U-cYm.label" = "Start/Pause"; + +/* Class = "NSToolbarItem"; paletteLabel = "Start/Pause"; ObjectID = "kT2-2U-cYm"; */ +"kT2-2U-cYm.paletteLabel" = "Start/Pause"; + +/* Class = "NSToolbarItem"; toolTip = "Start/pause the VM"; ObjectID = "kT2-2U-cYm"; */ +"kT2-2U-cYm.toolTip" = "Start/pause the VM"; + +/* Class = "NSToolbarItem"; label = "USB"; ObjectID = "tlw-Fb-ne3"; */ +"tlw-Fb-ne3.label" = "USB"; + +/* Class = "NSToolbarItem"; paletteLabel = "USB"; ObjectID = "tlw-Fb-ne3"; */ +"tlw-Fb-ne3.paletteLabel" = "USB"; + +/* Class = "NSToolbarItem"; toolTip = "USB devices"; ObjectID = "tlw-Fb-ne3"; */ +"tlw-Fb-ne3.toolTip" = "USB devices"; diff --git a/Platform/macOS/zh-HK.lproj/InfoPlist.strings b/Platform/macOS/zh-HK.lproj/InfoPlist.strings new file mode 100644 index 000000000..f2180cd78 --- /dev/null +++ b/Platform/macOS/zh-HK.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"" = ""; diff --git a/Platform/zh-HK.lproj/Localizable.strings b/Platform/zh-HK.lproj/Localizable.strings new file mode 100644 index 000000000..f2180cd78 --- /dev/null +++ b/Platform/zh-HK.lproj/Localizable.strings @@ -0,0 +1 @@ +"" = ""; diff --git a/Platform/zh-HK.lproj/Localizable.stringsdict b/Platform/zh-HK.lproj/Localizable.stringsdict new file mode 100644 index 000000000..45479e04c --- /dev/null +++ b/Platform/zh-HK.lproj/Localizable.stringsdict @@ -0,0 +1,22 @@ + + + + + %lld Cores + + NSStringLocalizedFormatKey + %#@cores@ + cores + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + lld + one + %lld Core + other + %lld Cores + + + + diff --git a/QEMUHelper/zh-HK.lproj/InfoPlist.strings b/QEMUHelper/zh-HK.lproj/InfoPlist.strings new file mode 100644 index 000000000..f2180cd78 --- /dev/null +++ b/QEMUHelper/zh-HK.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"" = ""; diff --git a/QEMUHelper/zh-HK.lproj/Localizable.strings b/QEMUHelper/zh-HK.lproj/Localizable.strings new file mode 100644 index 000000000..f2180cd78 --- /dev/null +++ b/QEMUHelper/zh-HK.lproj/Localizable.strings @@ -0,0 +1 @@ +"" = ""; diff --git a/UTM.xcodeproj/project.pbxproj b/UTM.xcodeproj/project.pbxproj index 290efa09e..046c63902 100644 --- a/UTM.xcodeproj/project.pbxproj +++ b/UTM.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 55; + objectVersion = 53; objects = { /* Begin PBXBuildFile section */ @@ -1689,6 +1689,14 @@ E68D492228AC018E00D34C54 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/Localizable.strings"; sourceTree = ""; }; E68D492328AC018E00D34C54 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/InfoPlist.strings"; sourceTree = ""; }; E6F791192903EEC6000BAAC9 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/InfoPlist.strings"; sourceTree = ""; }; + F6DA2DA52AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings"; sourceTree = ""; }; + F6DA2DA62AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/VMDisplayWindow.strings"; sourceTree = ""; }; + F6DA2DA72AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/InfoPlist.strings"; sourceTree = ""; }; + F6DA2DA82AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/InfoPlist.strings"; sourceTree = ""; }; + F6DA2DA92AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/Localizable.strings"; sourceTree = ""; }; + F6DA2DAA2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-HK"; path = "zh-HK.lproj/Localizable.stringsdict"; sourceTree = ""; }; + F6DA2DAB2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/Localizable.strings"; sourceTree = ""; }; + F6DA2DAC2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/InfoPlist.strings"; sourceTree = ""; }; FF0307542A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; FF0307562A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.stringsdict"; sourceTree = ""; }; FF0307572A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/VMDisplayMetalViewInputAccessory.strings"; sourceTree = ""; }; @@ -2721,6 +2729,7 @@ "es-419", de, pl, + "zh-HK", ); mainGroup = CE550BC0225947990063E575; packageReferences = ( @@ -3400,6 +3409,7 @@ E68D491F28AC018D00D34C54 /* es-419 */, 83FE63BA28F617CE0047FFEF /* de */, CEB54C16293009C7000D2AA9 /* pl */, + F6DA2DA92AAFED5F0070DCD1 /* zh-HK */, ); name = Localizable.strings; sourceTree = ""; @@ -3425,6 +3435,7 @@ 83FE63B728F617CE0047FFEF /* de */, CEB54C12293009C5000D2AA9 /* pl */, FF0307582A84E3B70049979B /* zh-Hant */, + F6DA2DA62AAFED5F0070DCD1 /* zh-HK */, ); name = VMDisplayWindow.xib; sourceTree = ""; @@ -3440,6 +3451,7 @@ CEB54C11293009C5000D2AA9 /* pl */, 84E3A8EB293349370024A740 /* fr */, FF0307572A84E3B70049979B /* zh-Hant */, + F6DA2DA52AAFED5F0070DCD1 /* zh-HK */, ); name = VMDisplayMetalViewInputAccessory.xib; sourceTree = ""; @@ -3454,6 +3466,7 @@ 8441289729005F49002752E3 /* fr */, CEB54C17293009C8000D2AA9 /* pl */, FF0307562A84E3B70049979B /* zh-Hant */, + F6DA2DAA2AAFED5F0070DCD1 /* zh-HK */, ); name = Localizable.stringsdict; sourceTree = ""; @@ -3477,6 +3490,7 @@ 5A1746A028BA9C4300278241 /* fi */, E68D491D28AC018D00D34C54 /* es-419 */, 83FE63B828F617CE0047FFEF /* de */, + F6DA2DA72AAFED5F0070DCD1 /* zh-HK */, ); name = InfoPlist.strings; sourceTree = ""; @@ -3493,6 +3507,7 @@ E68D491E28AC018D00D34C54 /* es-419 */, 83FE63B928F617CE0047FFEF /* de */, CEB54C14293009C6000D2AA9 /* pl */, + F6DA2DA82AAFED5F0070DCD1 /* zh-HK */, ); name = InfoPlist.strings; sourceTree = ""; @@ -3509,6 +3524,7 @@ 83FE63BE28F617CE0047FFEF /* de */, CEB54C1929300C20000D2AA9 /* pl */, 9786BB59294056960032B858 /* ja */, + F6DA2DAC2AAFED5F0070DCD1 /* zh-HK */, ); name = InfoPlist.strings; sourceTree = ""; @@ -3525,6 +3541,7 @@ E68D492228AC018E00D34C54 /* es-419 */, 83FE63BD28F617CE0047FFEF /* de */, CEB54C1829300C1B000D2AA9 /* pl */, + F6DA2DAB2AAFED5F0070DCD1 /* zh-HK */, ); name = Localizable.strings; sourceTree = ""; From 217e2475cbc23275a8dbde4c138b99bec4e34750 Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Tue, 12 Sep 2023 08:52:50 +0800 Subject: [PATCH 2/8] Import localization for zh-hk --- .../VMDisplayMetalViewInputAccessory.strings | 152 +- .../Settings.bundle/zh-HK.lproj/Root.strings | 147 ++ Platform/iOS/zh-HK.lproj/InfoPlist.strings | 22 +- .../zh-HK.lproj/VMDisplayWindow.strings | 90 +- Platform/macOS/zh-HK.lproj/InfoPlist.strings | 10 +- Platform/zh-HK.lproj/Localizable.strings | 1220 ++++++++++++++++- Platform/zh-HK.lproj/Localizable.stringsdict | 4 +- QEMUHelper/zh-HK.lproj/InfoPlist.strings | 10 +- QEMUHelper/zh-HK.lproj/Localizable.strings | 4 +- UTM.xcodeproj/project.pbxproj | 2 + zh-HK.lproj/QEMULauncher-InfoPlist.strings | 3 + 11 files changed, 1535 insertions(+), 129 deletions(-) create mode 100644 Platform/iOS/Settings.bundle/zh-HK.lproj/Root.strings create mode 100644 zh-HK.lproj/QEMULauncher-InfoPlist.strings diff --git a/Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings b/Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings index 003217011..7a91647a2 100644 --- a/Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings +++ b/Platform/iOS/Display/zh-HK.lproj/VMDisplayMetalViewInputAccessory.strings @@ -1,10 +1,6 @@ - /* Class = "UIButton"; normalTitle = "F7"; ObjectID = "3yi-Pr-1ih"; */ "3yi-Pr-1ih.normalTitle" = "F7"; -/* Class = "UIButton"; accessibilityLabel = "Paste"; ObjectID = "740-aI-39P"; */ -"740-aI-39P.accessibilityLabel" = "Paste"; - /* Class = "UIButton"; accessibilityLabel = "Tab"; ObjectID = "7pj-Jz-7JR"; */ "7pj-Jz-7JR.accessibilityLabel" = "Tab"; @@ -12,25 +8,28 @@ "7pj-Jz-7JR.normalTitle" = "⇥"; /* Class = "UIButton"; accessibilityLabel = "Right"; ObjectID = "8Lh-4D-Fz6"; */ -"8Lh-4D-Fz6.accessibilityLabel" = "Right"; +"8Lh-4D-Fz6.accessibilityLabel" = "右"; /* Class = "UIButton"; normalTitle = "→"; ObjectID = "8Lh-4D-Fz6"; */ "8Lh-4D-Fz6.normalTitle" = "→"; +/* Class = "UIButton"; accessibilityLabel = "Paste"; ObjectID = "740-aI-39P"; */ +"740-aI-39P.accessibilityLabel" = "貼上"; + +/* Class = "UIButton"; normalTitle = "F10"; ObjectID = "AhH-ij-IF8"; */ +"AhH-ij-IF8.normalTitle" = "F10"; + /* Class = "UIButton"; accessibilityLabel = "Right"; ObjectID = "AY8-eJ-bAP"; */ -"AY8-eJ-bAP.accessibilityLabel" = "Right"; +"AY8-eJ-bAP.accessibilityLabel" = "右"; /* Class = "UIButton"; normalTitle = "Del"; ObjectID = "AY8-eJ-bAP"; */ "AY8-eJ-bAP.normalTitle" = "Del"; -/* Class = "UIButton"; normalTitle = "F10"; ObjectID = "AhH-ij-IF8"; */ -"AhH-ij-IF8.normalTitle" = "F10"; - -/* Class = "UIButton"; accessibilityLabel = "Up"; ObjectID = "BUL-js-yMh"; */ -"BUL-js-yMh.accessibilityLabel" = "Up"; +/* Class = "UIButton"; accessibilityLabel = "Control"; ObjectID = "bCv-uH-SSy"; */ +"bCv-uH-SSy.accessibilityLabel" = "Control"; -/* Class = "UIButton"; normalTitle = "↑"; ObjectID = "BUL-js-yMh"; */ -"BUL-js-yMh.normalTitle" = "↑"; +/* Class = "UIButton"; normalTitle = "⌃"; ObjectID = "bCv-uH-SSy"; */ +"bCv-uH-SSy.normalTitle" = "⌃"; /* Class = "UIButton"; accessibilityLabel = "Num Lock"; ObjectID = "BUk-Vf-yE5"; */ "BUk-Vf-yE5.accessibilityLabel" = "Num Lock"; @@ -38,6 +37,15 @@ /* Class = "UIButton"; normalTitle = "Num"; ObjectID = "BUk-Vf-yE5"; */ "BUk-Vf-yE5.normalTitle" = "Num"; +/* Class = "UIButton"; accessibilityLabel = "Up"; ObjectID = "BUL-js-yMh"; */ +"BUL-js-yMh.accessibilityLabel" = "上"; + +/* Class = "UIButton"; normalTitle = "↑"; ObjectID = "BUL-js-yMh"; */ +"BUL-js-yMh.normalTitle" = "↑"; + +/* Class = "UIButton"; normalTitle = "F4"; ObjectID = "c7C-CG-EBg"; */ +"c7C-CG-EBg.normalTitle" = "F4"; + /* Class = "UIButton"; normalTitle = "F5"; ObjectID = "DxX-zu-urb"; */ "DxX-zu-urb.normalTitle" = "F5"; @@ -45,7 +53,7 @@ "EDi-KP-KwO.normalTitle" = "F12"; /* Class = "UIButton"; accessibilityLabel = "Left"; ObjectID = "EVa-2J-CRA"; */ -"EVa-2J-CRA.accessibilityLabel" = "Left"; +"EVa-2J-CRA.accessibilityLabel" = "左"; /* Class = "UIButton"; normalTitle = "←"; ObjectID = "EVa-2J-CRA"; */ "EVa-2J-CRA.normalTitle" = "←"; @@ -56,68 +64,11 @@ /* Class = "UIButton"; normalTitle = "Caps"; ObjectID = "FDV-W6-qlO"; */ "FDV-W6-qlO.normalTitle" = "Caps"; -/* Class = "UIButton"; accessibilityLabel = "Home"; ObjectID = "LU6-kH-vN3"; */ -"LU6-kH-vN3.accessibilityLabel" = "Home"; - -/* Class = "UIButton"; normalTitle = "Home"; ObjectID = "LU6-kH-vN3"; */ -"LU6-kH-vN3.normalTitle" = "Home"; - -/* Class = "UIButton"; normalTitle = "F8"; ObjectID = "LlV-Ae-CrL"; */ -"LlV-Ae-CrL.normalTitle" = "F8"; - -/* Class = "UIButton"; normalTitle = "F1"; ObjectID = "PWe-Va-Qi1"; */ -"PWe-Va-Qi1.normalTitle" = "F1"; - -/* Class = "UIButton"; accessibilityLabel = "Print Screen"; ObjectID = "Pes-KN-KzU"; */ -"Pes-KN-KzU.accessibilityLabel" = "Print Screen"; - -/* Class = "UIButton"; normalTitle = "Pr Scr"; ObjectID = "Pes-KN-KzU"; */ -"Pes-KN-KzU.normalTitle" = "Pr Scr"; - -/* Class = "UIButton"; accessibilityLabel = "Command"; ObjectID = "Pjh-3m-tFX"; */ -"Pjh-3m-tFX.accessibilityLabel" = "Command"; - -/* Class = "UIButton"; normalTitle = "⌘"; ObjectID = "Pjh-3m-tFX"; */ -"Pjh-3m-tFX.normalTitle" = "⌘"; - -/* Class = "UIButton"; accessibilityLabel = "Shift"; ObjectID = "QPo-cD-UlK"; */ -"QPo-cD-UlK.accessibilityLabel" = "Shift"; - -/* Class = "UIButton"; normalTitle = "⇧"; ObjectID = "QPo-cD-UlK"; */ -"QPo-cD-UlK.normalTitle" = "⇧"; - -/* Class = "UIButton"; accessibilityLabel = "Down"; ObjectID = "RCo-l7-gvf"; */ -"RCo-l7-gvf.accessibilityLabel" = "Down"; - -/* Class = "UIButton"; normalTitle = "↓"; ObjectID = "RCo-l7-gvf"; */ -"RCo-l7-gvf.normalTitle" = "↓"; - -/* Class = "UIButton"; normalTitle = "F6"; ObjectID = "Rb5-vO-sIx"; */ -"Rb5-vO-sIx.normalTitle" = "F6"; - -/* Class = "UIButton"; accessibilityLabel = "End"; ObjectID = "TOV-fV-TTa"; */ -"TOV-fV-TTa.accessibilityLabel" = "End"; - -/* Class = "UIButton"; normalTitle = "End"; ObjectID = "TOV-fV-TTa"; */ -"TOV-fV-TTa.normalTitle" = "End"; - -/* Class = "UIButton"; normalTitle = "F9"; ObjectID = "UNT-ei-lIn"; */ -"UNT-ei-lIn.normalTitle" = "F9"; - -/* Class = "UIButton"; accessibilityLabel = "Control"; ObjectID = "bCv-uH-SSy"; */ -"bCv-uH-SSy.accessibilityLabel" = "Control"; - -/* Class = "UIButton"; normalTitle = "⌃"; ObjectID = "bCv-uH-SSy"; */ -"bCv-uH-SSy.normalTitle" = "⌃"; - -/* Class = "UIButton"; normalTitle = "F4"; ObjectID = "c7C-CG-EBg"; */ -"c7C-CG-EBg.normalTitle" = "F4"; - /* Class = "UIButton"; normalTitle = "F3"; ObjectID = "gUX-ez-mbt"; */ "gUX-ez-mbt.normalTitle" = "F3"; /* Class = "UIButton"; accessibilityLabel = "Page Down"; ObjectID = "h4q-XF-UMn"; */ -"h4q-XF-UMn.accessibilityLabel" = "Page Down"; +"h4q-XF-UMn.accessibilityLabel" = "下頁"; /* Class = "UIButton"; normalTitle = "Pg Dn"; ObjectID = "h4q-XF-UMn"; */ "h4q-XF-UMn.normalTitle" = "Pg Dn"; @@ -128,14 +79,23 @@ /* Class = "UIButton"; normalTitle = "⌥"; ObjectID = "jxu-AQ-u8c"; */ "jxu-AQ-u8c.normalTitle" = "⌥"; +/* Class = "UIButton"; normalTitle = "F2"; ObjectID = "kd1-fj-kXM"; */ +"kd1-fj-kXM.normalTitle" = "F2"; + /* Class = "UIButton"; accessibilityLabel = "Insert"; ObjectID = "kO0-HZ-5w2"; */ "kO0-HZ-5w2.accessibilityLabel" = "Insert"; /* Class = "UIButton"; normalTitle = "Ins"; ObjectID = "kO0-HZ-5w2"; */ "kO0-HZ-5w2.normalTitle" = "Ins"; -/* Class = "UIButton"; normalTitle = "F2"; ObjectID = "kd1-fj-kXM"; */ -"kd1-fj-kXM.normalTitle" = "F2"; +/* Class = "UIButton"; normalTitle = "F8"; ObjectID = "LlV-Ae-CrL"; */ +"LlV-Ae-CrL.normalTitle" = "F8"; + +/* Class = "UIButton"; accessibilityLabel = "Home"; ObjectID = "LU6-kH-vN3"; */ +"LU6-kH-vN3.accessibilityLabel" = "Home"; + +/* Class = "UIButton"; normalTitle = "Home"; ObjectID = "LU6-kH-vN3"; */ +"LU6-kH-vN3.normalTitle" = "Home"; /* Class = "UIButton"; accessibilityLabel = "Escape"; ObjectID = "n12-9R-99C"; */ "n12-9R-99C.accessibilityLabel" = "Escape"; @@ -143,20 +103,60 @@ /* Class = "UIButton"; normalTitle = "⎋"; ObjectID = "n12-9R-99C"; */ "n12-9R-99C.normalTitle" = "⎋"; +/* Class = "UIButton"; accessibilityLabel = "Print Screen"; ObjectID = "Pes-KN-KzU"; */ +"Pes-KN-KzU.accessibilityLabel" = "Print Screen"; + +/* Class = "UIButton"; normalTitle = "Pr Scr"; ObjectID = "Pes-KN-KzU"; */ +"Pes-KN-KzU.normalTitle" = "Pr Scr"; + +/* Class = "UIButton"; accessibilityLabel = "Command"; ObjectID = "Pjh-3m-tFX"; */ +"Pjh-3m-tFX.accessibilityLabel" = "Command"; + +/* Class = "UIButton"; normalTitle = "⌘"; ObjectID = "Pjh-3m-tFX"; */ +"Pjh-3m-tFX.normalTitle" = "⌘"; + +/* Class = "UIButton"; normalTitle = "F1"; ObjectID = "PWe-Va-Qi1"; */ +"PWe-Va-Qi1.normalTitle" = "F1"; + /* Class = "UIButton"; accessibilityLabel = "Page Up"; ObjectID = "pX1-7o-dbU"; */ -"pX1-7o-dbU.accessibilityLabel" = "Page Up"; +"pX1-7o-dbU.accessibilityLabel" = "上頁"; /* Class = "UIButton"; normalTitle = "Pg Up"; ObjectID = "pX1-7o-dbU"; */ "pX1-7o-dbU.normalTitle" = "Pg Up"; +/* Class = "UIButton"; accessibilityLabel = "Shift"; ObjectID = "QPo-cD-UlK"; */ +"QPo-cD-UlK.accessibilityLabel" = "Shift"; + +/* Class = "UIButton"; normalTitle = "⇧"; ObjectID = "QPo-cD-UlK"; */ +"QPo-cD-UlK.normalTitle" = "⇧"; + +/* Class = "UIButton"; normalTitle = "F6"; ObjectID = "Rb5-vO-sIx"; */ +"Rb5-vO-sIx.normalTitle" = "F6"; + +/* Class = "UIButton"; accessibilityLabel = "Down"; ObjectID = "RCo-l7-gvf"; */ +"RCo-l7-gvf.accessibilityLabel" = "下"; + +/* Class = "UIButton"; normalTitle = "↓"; ObjectID = "RCo-l7-gvf"; */ +"RCo-l7-gvf.normalTitle" = "↓"; + /* Class = "UIButton"; normalTitle = "F11"; ObjectID = "rfk-su-cFq"; */ "rfk-su-cFq.normalTitle" = "F11"; /* Class = "UIButton"; accessibilityLabel = "Hide Keyboard"; ObjectID = "rtU-Yt-FhT"; */ -"rtU-Yt-FhT.accessibilityLabel" = "Hide Keyboard"; +"rtU-Yt-FhT.accessibilityLabel" = "隱藏鍵盤"; /* Class = "UIButton"; accessibilityLabel = "Scroll Lock"; ObjectID = "sF1-tj-hUG"; */ "sF1-tj-hUG.accessibilityLabel" = "Scroll Lock"; /* Class = "UIButton"; normalTitle = "Scroll"; ObjectID = "sF1-tj-hUG"; */ "sF1-tj-hUG.normalTitle" = "Scroll"; + +/* Class = "UIButton"; accessibilityLabel = "End"; ObjectID = "TOV-fV-TTa"; */ +"TOV-fV-TTa.accessibilityLabel" = "End"; + +/* Class = "UIButton"; normalTitle = "End"; ObjectID = "TOV-fV-TTa"; */ +"TOV-fV-TTa.normalTitle" = "End"; + +/* Class = "UIButton"; normalTitle = "F9"; ObjectID = "UNT-ei-lIn"; */ +"UNT-ei-lIn.normalTitle" = "F9"; + diff --git a/Platform/iOS/Settings.bundle/zh-HK.lproj/Root.strings b/Platform/iOS/Settings.bundle/zh-HK.lproj/Root.strings new file mode 100644 index 000000000..0a2ad56d4 --- /dev/null +++ b/Platform/iOS/Settings.bundle/zh-HK.lproj/Root.strings @@ -0,0 +1,147 @@ +/* (No Comment) */ +"Apple Pencil Input" = "Apple Pencil 輸入"; + +/* (No Comment) */ +"Auto save on background" = "於背景自動儲存"; + +/* (No Comment) */ +"Auto save on low memory" = "在記憶體不足時自動儲存"; + +/* (No Comment) */ +"Background" = "背景"; + +/* (No Comment) */ +"Backspace" = "Backspace"; + +/* (No Comment) */ +"Caps" = "Caps"; + +/* (No Comment) */ +"Click & Hold" = "按一下並按住"; + +/* (No Comment) */ +"Continue running VM in the background" = "在背景執行虛擬電腦"; + +/* (No Comment) */ +"Cursor" = "指標"; + +/* (No Comment) */ +"D-DOWN" = "下方向鍵"; + +/* (No Comment) */ +"D-LEFT" = "左方向鍵"; + +/* (No Comment) */ +"D-RIGHT" = "右方向鍵"; + +/* (No Comment) */ +"D-UP" = "上方向鍵"; + +/* (No Comment) */ +"Disabled" = "已禁用"; + +/* (No Comment) */ +"Down" = "下"; + +/* (No Comment) */ +"Drag cursor" = "拖動指標"; + +/* (No Comment) */ +"Enabled" = "已啟用"; + +/* (No Comment) */ +"Enter" = "Enter"; + +/* (No Comment) */ +"Follow cursor" = "跟隨指標"; + +/* (No Comment) */ +"Gamepad" = "遊戲手柄"; + +/* (No Comment) */ +"Gamepad - Cursor Speed" = "遊戲手柄 - 指標速度"; + +/* (No Comment) */ +"Gestures" = "手勢"; + +/* A single strings file, whose title is specified in your preferences schema. The strings files provide the localized content to display to the user for each of your preferences. */ +"Group" = "組"; + +/* (No Comment) */ +"Left" = "左"; + +/* (No Comment) */ +"Long Press" = "長按"; + +/* (No Comment) */ +"Menu" = "選單"; + +/* (No Comment) */ +"Mouse Left Button" = "滑鼠左鍵"; + +/* (No Comment) */ +"Mouse Middle Button" = "滑鼠中鍵"; + +/* (No Comment) */ +"Mouse Right Button" = "滑鼠右鍵"; + +/* (No Comment) */ +"Mouse Wheel" = "滑鼠滾輪"; + +/* (No Comment) */ +"Mouse Wheel (per swipe)" = "滑鼠滾輪(每次滑動)"; + +/* (No Comment) */ +"Move Screen" = "移動螢幕"; + +/* (No Comment) */ +"Name" = "名稱"; + +/* (No Comment) */ +"none given" = "未給出"; + +/* (No Comment) */ +"Right" = "右"; + +/* (No Comment) */ +"Right Click" = "右鍵單擊"; + +/* (No Comment) */ +"Space" = "空格"; + +/* (No Comment) */ +"Tablet mode (always show cursor)" = "平板電腦模式(始終隱藏指標)"; + +/* (No Comment) */ +"Tablet mode (try hiding cursor)" = "平板電腦模式(嘗試隱藏指標)"; + +/* (No Comment) */ +"Three Finger Pan" = "三指平移"; + +/* (No Comment) */ +"Touch Input" = "觸控輸入"; + +/* (No Comment) */ +"Touch mode (always show cursor)" = "觸控模式(始終顯示指標)"; + +/* (No Comment) */ +"Touch mode (try hiding cursor)" = "觸控模式(嘗試隱藏指標)"; + +/* (No Comment) */ +"Touchpad/Mouse Input" = "觸控板/滑鼠輸入"; + +/* (No Comment) */ +"Two Finger Pan" = "兩指平移"; + +/* (No Comment) */ +"Two Finger Scroll" = "兩指捲動"; + +/* (No Comment) */ +"Two Finger Swipe" = "兩指輕掃"; + +/* (No Comment) */ +"Two Finger Tap" = "兩指輕按"; + +/* (No Comment) */ +"Up" = "上"; + diff --git a/Platform/iOS/zh-HK.lproj/InfoPlist.strings b/Platform/iOS/zh-HK.lproj/InfoPlist.strings index f2180cd78..aeaa59371 100644 --- a/Platform/iOS/zh-HK.lproj/InfoPlist.strings +++ b/Platform/iOS/zh-HK.lproj/InfoPlist.strings @@ -1 +1,21 @@ -"" = ""; +/* Bundle name */ +"CFBundleName" = "UTM SE"; + +/* Privacy - Local Network Usage Description */ +"NSLocalNetworkUsageDescription" = "虛擬電腦可以訪問本地網路。UTM 還會使用本地網路與 AltServer 進行通信。"; + +/* Privacy - Location Always and When In Use Usage Description */ +"NSLocationAlwaysAndWhenInUseUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。 位置資料永遠不會離開設備。"; + +/* Privacy - Location Always Usage Description */ +"NSLocationAlwaysUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。 位置資料永遠不會離開設備。"; + +/* Privacy - Location When In Use Usage Description */ +"NSLocationWhenInUseUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。 位置資料永遠不會離開設備。"; + +/* Privacy - Microphone Usage Description */ +"NSMicrophoneUsageDescription" = "任何虛擬電腦都需要許可才能由咪高風進行錄製。"; + +/* (No Comment) */ +"UTM virtual machine" = "UTM 虛擬電腦"; + diff --git a/Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings b/Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings index 4d3aea3f3..9245c9289 100644 --- a/Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings +++ b/Platform/macOS/Display/zh-HK.lproj/VMDisplayWindow.strings @@ -1,45 +1,62 @@ - /* Class = "NSToolbarItem"; label = "Shared Folder"; ObjectID = "7EC-GE-fIl"; */ -"7EC-GE-fIl.label" = "Shared Folder"; +"7EC-GE-fIl.label" = "共享資料夾"; /* Class = "NSToolbarItem"; paletteLabel = "Shared Folder"; ObjectID = "7EC-GE-fIl"; */ -"7EC-GE-fIl.paletteLabel" = "Shared Folder"; +"7EC-GE-fIl.paletteLabel" = "共享資料夾"; /* Class = "NSToolbarItem"; toolTip = "Shared folder"; ObjectID = "7EC-GE-fIl"; */ -"7EC-GE-fIl.toolTip" = "Shared folder"; +"7EC-GE-fIl.toolTip" = "共享資料夾"; + +/* Class = "NSToolbarItem"; label = "Drives"; ObjectID = "bKL-Th-FFw"; */ +"bKL-Th-FFw.label" = "磁碟"; + +/* Class = "NSToolbarItem"; paletteLabel = "Drives"; ObjectID = "bKL-Th-FFw"; */ +"bKL-Th-FFw.paletteLabel" = "磁碟"; + +/* Class = "NSToolbarItem"; toolTip = "Drive image options"; ObjectID = "bKL-Th-FFw"; */ +"bKL-Th-FFw.toolTip" = "磁碟映像檔選項"; /* Class = "NSToolbarItem"; label = "Stop"; ObjectID = "Bkx-Ph-j0D"; */ -"Bkx-Ph-j0D.label" = "Stop"; +"Bkx-Ph-j0D.label" = "停止"; /* Class = "NSToolbarItem"; paletteLabel = "Stop"; ObjectID = "Bkx-Ph-j0D"; */ -"Bkx-Ph-j0D.paletteLabel" = "Stop"; +"Bkx-Ph-j0D.paletteLabel" = "停止"; /* Class = "NSToolbarItem"; toolTip = "Shuts down and stops the VM"; ObjectID = "Bkx-Ph-j0D"; */ -"Bkx-Ph-j0D.toolTip" = "Shuts down and stops the VM"; +"Bkx-Ph-j0D.toolTip" = "關機並停止虛擬電腦"; /* Class = "NSToolbarItem"; label = "Toolbar Item"; ObjectID = "C8Y-BQ-Y6m"; */ -"C8Y-BQ-Y6m.label" = "Toolbar Item"; +"C8Y-BQ-Y6m.label" = "工具列項目"; /* Class = "NSToolbarItem"; paletteLabel = "Toolbar Item"; ObjectID = "C8Y-BQ-Y6m"; */ -"C8Y-BQ-Y6m.paletteLabel" = "Toolbar Item"; +"C8Y-BQ-Y6m.paletteLabel" = "工具列項目"; /* Class = "NSToolbarItem"; label = "Capture Input"; ObjectID = "FN7-zs-mWC"; */ -"FN7-zs-mWC.label" = "Capture Input"; +"FN7-zs-mWC.label" = "捕獲輸入"; /* Class = "NSToolbarItem"; paletteLabel = "Capture Input"; ObjectID = "FN7-zs-mWC"; */ -"FN7-zs-mWC.paletteLabel" = "Capture Input"; +"FN7-zs-mWC.paletteLabel" = "捕獲輸入"; /* Class = "NSToolbarItem"; toolTip = "Capture input devices"; ObjectID = "FN7-zs-mWC"; */ -"FN7-zs-mWC.toolTip" = "Capture input devices"; +"FN7-zs-mWC.toolTip" = "捕獲輸入裝置"; /* Class = "NSToolbarItem"; label = "Restart"; ObjectID = "G7P-HJ-bcy"; */ -"G7P-HJ-bcy.label" = "Restart"; +"G7P-HJ-bcy.label" = "重新啟動"; /* Class = "NSToolbarItem"; paletteLabel = "Restart"; ObjectID = "G7P-HJ-bcy"; */ -"G7P-HJ-bcy.paletteLabel" = "Restart"; +"G7P-HJ-bcy.paletteLabel" = "重新啟動"; /* Class = "NSToolbarItem"; toolTip = "Restarts the VM"; ObjectID = "G7P-HJ-bcy"; */ -"G7P-HJ-bcy.toolTip" = "Restarts the VM"; +"G7P-HJ-bcy.toolTip" = "重新啟動虛擬電腦"; + +/* Class = "NSToolbarItem"; label = "Start/Pause"; ObjectID = "kT2-2U-cYm"; */ +"kT2-2U-cYm.label" = "開始/暫停"; + +/* Class = "NSToolbarItem"; paletteLabel = "Start/Pause"; ObjectID = "kT2-2U-cYm"; */ +"kT2-2U-cYm.paletteLabel" = "開始/暫停"; + +/* Class = "NSToolbarItem"; toolTip = "Start/pause the VM"; ObjectID = "kT2-2U-cYm"; */ +"kT2-2U-cYm.toolTip" = "開始/暫停虛擬電腦"; /* Class = "NSToolbarItem"; label = "Windows"; ObjectID = "MQ2-L1-yl7"; */ "MQ2-L1-yl7.label" = "Windows"; @@ -53,41 +70,24 @@ /* Class = "NSWindow"; title = "UTM"; ObjectID = "QvC-M9-y7g"; */ "QvC-M9-y7g.title" = "UTM"; +/* Class = "NSToolbarItem"; label = "USB"; ObjectID = "tlw-Fb-ne3"; */ +"tlw-Fb-ne3.label" = "USB"; + +/* Class = "NSToolbarItem"; paletteLabel = "USB"; ObjectID = "tlw-Fb-ne3"; */ +"tlw-Fb-ne3.paletteLabel" = "USB"; + +/* Class = "NSToolbarItem"; toolTip = "USB devices"; ObjectID = "tlw-Fb-ne3"; */ +"tlw-Fb-ne3.toolTip" = "USB 裝置"; + /* Class = "NSToolbarItem"; label = "Resize Console"; ObjectID = "Ulf-oT-4cP"; */ -"Ulf-oT-4cP.label" = "Resize Console"; +"Ulf-oT-4cP.label" = "調整主控台"; /* Class = "NSToolbarItem"; paletteLabel = "Resize Console"; ObjectID = "Ulf-oT-4cP"; */ -"Ulf-oT-4cP.paletteLabel" = "Resize Console"; +"Ulf-oT-4cP.paletteLabel" = "調整主控台"; /* Class = "NSToolbarItem"; toolTip = "Send console resize command"; ObjectID = "Ulf-oT-4cP"; */ -"Ulf-oT-4cP.toolTip" = "Send console resize command"; +"Ulf-oT-4cP.toolTip" = "傳送調整主控台指令"; /* Class = "NSButton"; ibShadowedToolTip = "Starts/resumes the VM"; ObjectID = "ZTi-Hs-ge6"; */ -"ZTi-Hs-ge6.ibShadowedToolTip" = "Starts/resumes the VM"; - -/* Class = "NSToolbarItem"; label = "Drives"; ObjectID = "bKL-Th-FFw"; */ -"bKL-Th-FFw.label" = "Drives"; - -/* Class = "NSToolbarItem"; paletteLabel = "Drives"; ObjectID = "bKL-Th-FFw"; */ -"bKL-Th-FFw.paletteLabel" = "Drives"; - -/* Class = "NSToolbarItem"; toolTip = "Drive image options"; ObjectID = "bKL-Th-FFw"; */ -"bKL-Th-FFw.toolTip" = "Drive image options"; - -/* Class = "NSToolbarItem"; label = "Start/Pause"; ObjectID = "kT2-2U-cYm"; */ -"kT2-2U-cYm.label" = "Start/Pause"; - -/* Class = "NSToolbarItem"; paletteLabel = "Start/Pause"; ObjectID = "kT2-2U-cYm"; */ -"kT2-2U-cYm.paletteLabel" = "Start/Pause"; - -/* Class = "NSToolbarItem"; toolTip = "Start/pause the VM"; ObjectID = "kT2-2U-cYm"; */ -"kT2-2U-cYm.toolTip" = "Start/pause the VM"; - -/* Class = "NSToolbarItem"; label = "USB"; ObjectID = "tlw-Fb-ne3"; */ -"tlw-Fb-ne3.label" = "USB"; +"ZTi-Hs-ge6.ibShadowedToolTip" = "開始/恢復虛擬電腦"; -/* Class = "NSToolbarItem"; paletteLabel = "USB"; ObjectID = "tlw-Fb-ne3"; */ -"tlw-Fb-ne3.paletteLabel" = "USB"; - -/* Class = "NSToolbarItem"; toolTip = "USB devices"; ObjectID = "tlw-Fb-ne3"; */ -"tlw-Fb-ne3.toolTip" = "USB devices"; diff --git a/Platform/macOS/zh-HK.lproj/InfoPlist.strings b/Platform/macOS/zh-HK.lproj/InfoPlist.strings index f2180cd78..c39a8cf23 100644 --- a/Platform/macOS/zh-HK.lproj/InfoPlist.strings +++ b/Platform/macOS/zh-HK.lproj/InfoPlist.strings @@ -1 +1,9 @@ -"" = ""; +/* Bundle name */ +"CFBundleName" = "UTM"; + +/* Privacy - Microphone Usage Description */ +"NSMicrophoneUsageDescription" = "任何虛擬電腦都需要許可才能由咪高風進行錄製。"; + +/* (No Comment) */ +"UTM virtual machine" = "UTM 虛擬電腦"; + diff --git a/Platform/zh-HK.lproj/Localizable.strings b/Platform/zh-HK.lproj/Localizable.strings index f2180cd78..bb68330c2 100644 --- a/Platform/zh-HK.lproj/Localizable.strings +++ b/Platform/zh-HK.lproj/Localizable.strings @@ -1 +1,1219 @@ -"" = ""; +/* A removable drive that has no image file inserted. */ +"(empty)" = "(空)"; + +/* VMConfigAppleDriveDetailsView */ +"(New Drive)" = "(新磁碟)"; + +/* No comment provided by engineer. */ +"(new)" = "(新)"; + +/* VMData */ +"(Unavailable)" = "(無法使用)"; + +/* QEMUConstant */ +"%@ (%@)" = "%1$@ (%2$@)"; + +/* VMToolbarDriveMenuView */ +"%@ (%@): %@" = "%1$@ (%2$@): %3$@"; + +/* VMDisplayMetalWindowController */ +"%@ (Display %lld)" = "%1$@ (顯示 %2$lld)"; + +/* VMDisplayAppleTerminalWindowController + VMDisplayQemuTerminalWindowController */ +"%@ (Terminal %lld)" = "%1$@ (終端機 %2$lld)"; + +/* VMRemovableDrivesView */ +"%@ %@" = "%1$@ %2$@"; + +/* No comment provided by engineer. */ +"%@ ➡️ %@" = "%1$@ ➡️ %2$@"; + +/* VMDrivesSettingsView */ +"%@ Drive" = "%@ 磁碟"; + +/* VMDrivesSettingsView */ +"%@ Image" = "%@ 映像檔"; + +/* Format string for remaining time until a download finishes */ +"%@ remaining" = "%@ 可用"; + +/* Format string for the 'per second' part of a download speed. */ +"%@/s" = "%@/s"; + +/* Format string for download progress and speed, e. g. 5 MB of 6 GB (200 kbit/s) */ +"%1$@ of %2$@ (%3$@)" = "%1$@ / %2$@ (%3$@)"; + +/* UTMScriptingAppDelegate */ +"A valid backend must be specified." = "必須指定有效的後端。"; + +/* UTMScriptingAppDelegate */ +"A valid configuration must be specified." = "必須指定有效的配置。"; + +/* UTMAppleConfiguration */ +"A valid kernel image must be specified." = "必須指定有效的內核映像檔。"; + +/* VMDisplayAppleController */ +"Add…" = "新增⋯"; + +/* No comment provided by engineer. */ +"Additional Options" = "附加項目"; + +/* No comment provided by engineer. */ +"Additional Settings" = "附加設定"; + +/* No comment provided by engineer. */ +"Advanced" = "進階"; + +/* VMConfigSystemView */ +"Allocating too much memory will crash the VM." = "分配過多記憶體會使虛擬電腦當機。"; + +/* UTMData */ +"AltJIT error: %@" = "AltJIT 錯誤:%@"; + +/* UTMData */ +"An existing virtual machine already exists with this name." = "已經存在有此名稱的虛擬電腦。"; + +/* UTMConfiguration */ +"An internal error has occurred." = "發生內部錯誤。"; + +/* UTMConfiguration */ +"An invalid value of '%@' is used in the configuration file." = "設定檔裡使用了無效值「%@」。"; + +/* UTMQemuImage */ +"An unknown QEMU error has occurred." = "發生未知的 QEMU 錯誤。"; + +/* No comment provided by engineer. */ +"ANGLE (Metal)" = "ANGLE (Metal)"; + +/* No comment provided by engineer. */ +"ANGLE (OpenGL)" = "ANGLE (OpenGL)"; + +/* VMConfigSystemView */ +"Any unsaved changes will be lost." = "任何未儲存的變更都將丟失。"; + +/* No comment provided by engineer. */ +"Architecture" = "體系結構"; + +/* No comment provided by engineer. */ +"Are you sure you want to exit UTM?" = "確定要退出 UTM 嗎?"; + +/* No comment provided by engineer. */ +"Are you sure you want to permanently delete this disk image?" = "確定要永久刪除此磁碟映像檔嗎?"; + +/* No comment provided by engineer. */ +"Are you sure you want to reset this VM? Any unsaved changes will be lost." = "確定要重設此虛擬電腦嗎?任何未儲存的變更都將丟失。"; + +/* No comment provided by engineer. */ +"Are you sure you want to stop this VM and exit? Any unsaved changes will be lost." = "確定要停止此虛擬電腦並退出嗎?任何未儲存的變更都將丟失。"; + +/* No comment provided by engineer. */ +"Automatic" = "自動"; + +/* UTMQemuConstants */ +"Automatic Serial Device (max 4)" = "自動序列裝置 (最大值為 4)"; + +/* UTMLegacyQemuConfiguration + UTMQemuConstants */ +"BIOS" = "BIOS"; + +/* UTMQemuConstants */ +"Bold" = "粗體"; + +/* No comment provided by engineer. */ +"Boot" = "啟動"; + +/* No comment provided by engineer. */ +"Boot Arguments" = "啟動參數"; + +/* No comment provided by engineer. */ +"Boot Image Type" = "啟動映像檔種類"; + +/* No comment provided by engineer. */ +"Boot ISO Image" = "啟動 ISO 映像檔"; + +/* No comment provided by engineer. */ +"Boot ISO Image (optional)" = "啟動 ISO 映像檔 (可選)"; + +/* No comment provided by engineer. */ +"Boot VHDX Image" = "啟動 VHDX 映像檔 (可選)"; + +/* UTMQemuConstants */ +"Bridged (Advanced)" = "橋連 (進階)"; + +/* No comment provided by engineer. */ +"Bridged Settings" = "橋連設定"; + +/* Welcome view */ +"Browse UTM Gallery" = "瀏覽 UTM 虛擬電腦庫"; + +/* No comment provided by engineer. */ +"Browse…" = "瀏覽⋯"; + +/* No comment provided by engineer. */ +"Build" = "構建"; + +/* UTMQemuConstants */ +"Built-in Terminal" = "內置終端機"; + +/* No comment provided by engineer. */ +"Busy…" = "正忙⋯"; + +/* VMDisplayWindowController + VMQemuDisplayMetalWindowController */ +"Cancel" = "取消"; + +/* UTMAppleVirtualMachine */ +"Cannot access resource: %@" = "無法取用資源:%@"; + +/* UTMSWTPM */ +"Cannot access TPM data." = "無法取用 TPM 資料。"; + +/* UTMAppleVirtualMachine */ +"Cannot create virtual terminal." = "無法製作虛擬終端機。"; + +/* UTMData */ +"Cannot find AltServer for JIT enable. You cannot run VMs until JIT is enabled." = "無法找到 JIT 啟用的 AltServer。在啟用 JIT 之前,你無法執行虛擬電腦。"; + +/* UTMData */ +"Cannot import this VM. Either the configuration is invalid, created in a newer version of UTM, or on a platform that is incompatible with this version of UTM." = "無法輸入此虛擬電腦。可能設定無效,或是在較新版本的 UTM 上製作,或是在與此版本的 UTM 不相容的平台上製作。"; + +/* No comment provided by engineer. */ +"Caps Lock (⇪) is treated as a key" = "將 Caps Lock (⇪) 視為按鍵"; + +/* VMMetalView */ +"Capture Input" = "截取輸入"; + +/* No comment provided by engineer. */ +"Capture input automatically when entering full screen" = "進入全螢幕時自動截取輸入"; + +/* VMDisplayQemuMetalWindowController */ +"Captured mouse" = "已截取滑鼠"; + +/* Configuration boot device */ +"CD/DVD" = "CD/DVD"; + +/* UTMLegacyQemuConfiguration + UTMQemuConstants */ +"CD/DVD (ISO) Image" = "CD/DVD (ISO) 映像檔"; + +/* VMDisplayWindowController */ +"Change" = "變更"; + +/* VMDisplayAppleController */ +"Change…" = "變更⋯"; + +/* No comment provided by engineer. */ +"Clear" = "清除"; + +/* VMQemuDisplayMetalWindowController */ +"Closing this window will kill the VM." = "關閉此視窗會結束虛擬電腦。"; + +/* VMQemuDisplayMetalWindowController */ +"Confirm" = "確認"; + +/* No comment provided by engineer. */ +"Confirm Delete" = "確認刪除"; + +/* VMDisplayWindowController */ +"Confirmation" = "確認"; + +/* No comment provided by engineer. */ +"Connection" = "連線"; + +/* No comment provided by engineer. */ +"Console" = "主控台"; + +/* No comment provided by engineer. */ +"Continue" = "繼續"; + +/* No comment provided by engineer. */ +"CoreAudio (Output Only)" = "CoreAudio (僅輸出)"; + +/* No comment provided by engineer. */ +"Cores" = "核心"; + +/* No comment provided by engineer. */ +"CPU" = "CPU"; + +/* No comment provided by engineer. */ +"CPU Cores" = "CPU 核心"; + +/* No comment provided by engineer. */ +"Create" = "製作"; + +/* Welcome view */ +"Create a New Virtual Machine" = "製作一個新虛擬電腦"; + +/* VMConfigAppleDisplayView */ +"Custom" = "自訂"; + +/* UTMSWTPM */ +"Data not specified." = "未指定資料。"; + +/* No comment provided by engineer. */ +"Debug Logging" = "除錯記錄"; + +/* QEMUConstantGenerated + UTMQemuConstants */ +"Default" = "預設"; + +/* VMWizardSummaryView */ +"Default Cores" = "預設核心"; + +/* No comment provided by engineer. */ +"Delete" = "刪除"; + +/* No comment provided by engineer. */ +"Devices" = "裝置"; + +/* VMDisplayAppleWindowController */ +"Directory sharing" = "目錄共享"; + +/* UTMQemuConstants */ +"Disabled" = "禁用"; + +/* UTMLegacyQemuConfiguration + UTMQemuConstants */ +"Disk Image" = "磁碟映像檔"; + +/* VMDisplayAppleWindowController */ +"Display" = "顯示"; + +/* VMDisplayQemuDisplayController */ +"Display %lld: %@" = "顯示 %1$lld:%2$@"; + +/* VMDisplayQemuDisplayController */ +"Disposable Mode" = "即拋式模式"; + +/* No comment provided by engineer. */ +"Do not save VM screenshot to disk" = "不要將虛擬電腦快照儲存到磁碟"; + +/* No comment provided by engineer. */ +"Do not show confirmation when closing a running VM" = "關閉正在執行的虛擬電腦時不顯示確認"; + +/* No comment provided by engineer. */ +"Do not show prompt when USB device is plugged in" = "插入 USB 裝置時不顯示提示"; + +/* No comment provided by engineer. */ +"Do you want to copy this VM and all its data to internal storage?" = "你要複製此虛擬電腦及其所有資料到內部儲存空間嗎?"; + +/* No comment provided by engineer. */ +"Do you want to delete this VM and all its data?" = "你要刪除此虛擬電腦及其所有資料嗎?"; + +/* No comment provided by engineer. */ +"Do you want to duplicate this VM and all its data?" = "你要製作此虛擬電腦及其所有資料的副本嗎?"; + +/* No comment provided by engineer. */ +"Do you want to force stop this VM and lose all unsaved data?" = "你要強制停止此虛擬電腦並丟失所有未儲存的資料嗎?"; + +/* No comment provided by engineer. */ +"Do you want to move this VM to another location? This will copy the data to the new location, delete the data from the original location, and then create a shortcut." = "你要將此虛擬電腦移動到其他位置嗎?這將會複製資料到新位置,刪除原先位置資料,並製作捷徑。"; + +/* No comment provided by engineer. */ +"Do you want to remove this shortcut? The data will not be deleted." = "你要刪除此捷徑嗎?資料不會被刪除。"; + +/* No comment provided by engineer. */ +"Download prebuilt from UTM Gallery…" = "從 UTM 虛擬電腦庫下載預構建⋯"; + +/* No comment provided by engineer. */ +"Drag and drop IPSW file here" = "拖移 IPSW 檔到此"; + +/* UTMScriptingConfigImpl */ +"Drive description is invalid." = "磁碟描述無效。"; + +/* No comment provided by engineer. */ +"Drives" = "磁碟"; + +/* VMDrivesSettingsView */ +"EFI Variables" = "EFI 變數"; + +/* VMDisplayWindowController */ +"Eject" = "退出"; + +/* No comment provided by engineer. */ +"Emulate" = "模擬"; + +/* UTMQemuConstants */ +"Emulated VLAN" = "模擬 VLAN"; + +/* No comment provided by engineer. */ +"Enable Clipboard Sharing" = "啟用剪貼板共享"; + +/* VMDisplayWindowController */ +"Error" = "錯誤"; + +/* No comment provided by engineer. */ +"Existing" = "已經存在"; + +/* No comment provided by engineer. */ +"Export QEMU Command…" = "輸出 QEMU 指令⋯"; + +/* Word for decompressing a compressed folder */ +"Extracting…" = "正在解壓縮⋯"; + +/* UTMQemuVirtualMachine */ +"Failed to access data from shortcut." = "無法從捷徑取用資料。"; + +/* UTMQemuVirtualMachine */ +"Failed to access drive image path." = "無法取用磁碟映像檔路徑。"; + +/* UTMQemuVirtualMachine */ +"Failed to access shared directory." = "無法取用共享目錄。"; + +/* ContentView */ +"Failed to attach to JitStreamer:\n%@" = "無法附加至 JitStreamer:%@"; + +/* UTMData */ +"Failed to attach to JitStreamer." = "無法附加至 JitStreamer。"; + +/* UTMSpiceIO */ +"Failed to change current directory." = "無法變更當前目錄。"; + +/* UTMData */ +"Failed to clone VM." = "無法克隆虛擬電腦。"; + +/* UTMData */ +"Failed to decode JitStreamer response." = "無法解碼 JitStreamer 回應。"; + +/* VMWizardState */ +"Failed to get latest macOS version from Apple." = "無法從 Apple 取得最新的 macOS 版本。"; + +/* UTMQemuConfigurationError */ +"Failed to migrate configuration from a previous UTM version." = "無法從以前版本的 UTM 轉移設定。"; + +/* UTMData */ +"Failed to parse download URL." = "無法解析已經下載的 URL。"; + +/* UTMData */ +"Failed to parse imported VM." = "無法解析已經輸入的虛擬電腦。"; + +/* UTMDownloadVMTask */ +"Failed to parse the downloaded VM." = "無法解析已經下載的虛擬電腦。"; + +/* VMDisplayWindowController */ +"Failed to save suspend state" = "無法儲存暫停狀態。"; + +/* UTMQemuVirtualMachine */ +"Failed to save VM snapshot. Usually this means at least one device does not support snapshots. %@" = "無法儲存虛擬電腦快照。通常這意味著至少有一個裝置不支援快照。%@"; + +/* UTMSpiceIO */ +"Failed to start SPICE client." = "無法啟動 SPICE 客戶端。"; + +/* No comment provided by engineer. */ +"Faster, but can only run the native CPU architecture." = "較快,但只能執行原生 CPU 體系結構。"; + +/* Configuration boot device + UTMQemuConstants */ +"Floppy" = "軟碟"; + +/* No comment provided by engineer. */ +"Font Size" = "字體大小"; + +/* VMDisplayWindowController */ +"Force kill" = "強制結束"; + +/* VMDisplayWindowController */ +"Force kill the VM process with high risk of data corruption." = "強制結束虛擬電腦程序 (會有高風險使資料損壞)。"; + +/* No comment provided by engineer. */ +"Force Multicore" = "強制多核心"; + +/* VMDisplayWindowController */ +"Force shut down" = "強制關機"; + +/* No comment provided by engineer. */ +"GB" = "GB"; + +/* UTMQemuConstants */ +"GDB Debug Stub" = "GDB Debug Stub"; + +/* No comment provided by engineer. */ +"Generic" = "一般"; + +/* No comment provided by engineer. */ +"Gesture and Cursor Settings" = "手勢與指標設定"; + +/* No comment provided by engineer. */ +"Guest drivers are required for 3D acceleration." = "需要客戶端驅動程式才能使用 3D 加速。"; + +/* Configuration boot device */ +"Hard Disk" = "硬碟"; + +/* No comment provided by engineer. */ +"Hardware" = "硬件"; + +/* No comment provided by engineer. */ +"Hello" = "你好"; + +/* No comment provided by engineer. */ +"Hide Unused…" = "隱藏未使用的⋯"; + +/* No comment provided by engineer. */ +"Hold Control (⌃) for right click" = "按住 Control (⌃) 來右鍵點按"; + +/* UTMQemuConstants */ +"Host Only" = "僅主機"; + +/* No comment provided by engineer. */ +"Icon" = "圖示"; + +/* UTMQemuConstants */ +"IDE" = "IDE"; + +/* UTMScriptingConfigImpl */ +"Identifier '%@' cannot be found." = "識別碼「%@」未找到。"; + +/* No comment provided by engineer. */ +"Image File Type" = "映像檔種類"; + +/* No comment provided by engineer. */ +"Import IPSW" = "輸入 IPSW"; + +/* No comment provided by engineer. */ +"Import…" = "輸入⋯"; + +/* VMDetailsView */ +"Inactive" = "未啟用"; + +/* UTMScriptingConfigImpl */ +"Index %lld cannot be found." = "索引 %lld 未找到。"; + +/* No comment provided by engineer. */ +"Information" = "訊息"; + +/* VMDisplayWindowController */ +"Install Windows Guest Tools…" = "安裝 Windows 客戶端工具⋯"; + +/* VMDisplayAppleWindowController */ +"Installation: %@" = "安裝:%@"; + +/* UTMProcess */ +"Internal error has occurred." = "發生內部錯誤。"; + +/* UTMSpiceIO */ +"Internal error trying to connect to SPICE server." = "在連線 SPICE 伺服器時發生內部錯誤。"; + +/* VMDisplayMetalWindowController */ +"Internal error." = "內部錯誤。"; + +/* UTMData */ +"Invalid JitStreamer attach URL:\n%@" = "無效的 JitStreamer 附加 URL:%@"; + +/* VMConfigAppleNetworkingView */ +"Invalid MAC address." = "無效的 MAC 位址。"; + +/* No comment provided by engineer. */ +"Invert scrolling" = "反轉捲動"; + +/* No comment provided by engineer. */ +"IP Configuration" = "IP 設定"; + +/* No comment provided by engineer. */ +"Isolate Guest from Host" = "將客戶端與主機隔離"; + +/* UTMQemuConstants */ +"Italic" = "斜體"; + +/* UTMQemuConstants */ +"Italic, Bold" = "斜體,粗體"; + +/* No comment provided by engineer. */ +"Keep UTM running after last window is closed and all VMs are shut down" = "在最後一個視窗關閉並且所有虛擬電腦關機時保持 UTM 執行"; + +/* No comment provided by engineer. */ +"License" = "許可協議"; + +/* UTMQemuConstants */ +"Linear" = "線性"; + +/* UTMAppleConfigurationBoot */ +"Linux" = "Linux"; + +/* UTMLegacyQemuConfiguration + UTMQemuConstants */ +"Linux Device Tree Binary" = "Linux 裝置樹二進位檔"; + +/* No comment provided by engineer. */ +"Linux initial ramdisk (optional)" = "Linux 起始 ramdisk (可選)"; + +/* UTMLegacyQemuConfiguration + UTMQemuConstants */ +"Linux Kernel" = "Linux 核心"; + +/* No comment provided by engineer. */ +"Linux kernel (required)" = "Linux 核心 (必填)"; + +/* UTMLegacyQemuConfiguration + UTMQemuConstants */ +"Linux RAM Disk" = "Linux ramdisk"; + +/* No comment provided by engineer. */ +"Linux Root FS Image (optional)" = "Linux rootfs 映像檔 (可選)"; + +/* No comment provided by engineer. */ +"Linux Settings" = "Linux 設定"; + +/* No comment provided by engineer. */ +"Logging" = "日誌"; + +/* UTMAppleConfigurationBoot */ +"macOS" = "macOS"; + +/* VMWizardOSMacView */ +"macOS guests are only supported on ARM64 devices." = "macOS 客戶端僅支援 ARM64 裝置。"; + +/* VMWizardState */ +"macOS is not supported with QEMU." = "macOS 不支援 QEMU。"; + +/* No comment provided by engineer. */ +"macOS Settings" = "macOS 設定"; + +/* UTMQemuConstants */ +"Manual Serial Device (advanced)" = "手動序列裝置 (進階)"; + +/* No comment provided by engineer. */ +"Maximum Shared USB Devices" = "最大共享 USB 裝置數"; + +/* No comment provided by engineer. */ +"MB" = "MB"; + +/* No comment provided by engineer. */ +"Memory" = "記憶體"; + +/* VMDisplayMetalWindowController */ +"Metal is not supported on this device. Cannot render display." = "此裝置不支援 Metal,無法呈送顯示內容。"; + +/* No comment provided by engineer. */ +"Minimum size: %@" = "最小大小:%@"; + +/* UTMAppleConfigurationDevices */ +"Mouse" = "滑鼠"; + +/* No comment provided by engineer. */ +"Mouse/Keyboard" = "滑鼠/鍵盤"; + +/* No comment provided by engineer. */ +"Move Down" = "向下移動"; + +/* No comment provided by engineer. */ +"Move Up" = "向上移動"; + +/* UTMQemuConstants */ +"MTD (NAND/NOR)" = "MTD (NAND/NOR)"; + +/* No comment provided by engineer. */ +"Name" = "名稱"; + +/* UTMQemuConstants */ +"Nearest Neighbor" = "近鄰取樣"; + +/* No comment provided by engineer. */ +"New" = "新增"; + +/* No comment provided by engineer. */ +"New…" = "新增⋯"; + +/* No comment provided by engineer. */ +"No" = "否"; + +/* UTMScriptingAppDelegate */ +"No architecture specified in the configuration." = "未在設定裡指定體系結構。"; + +/* VMDisplayWindowController */ +"No drives connected." = "無已經連線的磁碟。"; + +/* UTMDownloadSupportToolsTaskError */ +"No empty removable drive found. Make sure you have at least one removable drive that is not in use." = "無法找到空的可移除式磁碟。請確定你至少有一個未使用的可移除式磁碟。"; + +/* UTMScriptingAppDelegate */ +"No name specified in the configuration." = "設定裡沒有指定名稱。"; + +/* No comment provided by engineer. */ +"No output device is selected for this window." = "在此視窗內未選取任何輸出裝置。"; + +/* No comment provided by engineer. */ +"No release notes found for version %@." = "無法找到版本 %@ 的版本附註。"; + +/* VMQemuDisplayMetalWindowController */ +"No USB devices detected." = "未偵測到 USB 裝置。"; + +/* No comment provided by engineer. */ +"No virtual machines found." = "未找到虛擬電腦。"; + +/* VMToolbarDriveMenuView */ +"none" = "無"; + +/* UTMLegacyQemuConfiguration + UTMQemuConstants */ +"None" = "無"; + +/* UTMQemuConstants */ +"None (Advanced)" = "無 (進階)"; + +/* UTMVirtualMachine */ +"Not implemented." = "此功能未實現。"; + +/* No comment provided by engineer. */ +"Notes" = "注意"; + +/* No comment provided by engineer. */ +"Num Lock is forced on" = "Num Lock 強制開啟"; + +/* UTMQemuConstants */ +"NVMe" = "NVMe"; + +/* VMDisplayWindowController */ +"OK" = "好"; + +/* UTMScriptingVirtualMachineImpl */ +"One or more required parameters are missing or invalid." = "一個或多個必需參數缺失或無效。"; + +/* No comment provided by engineer. */ +"Open…" = "開啟⋯"; + +/* No comment provided by engineer. */ +"Operating System" = "作業系統"; + +/* UTMScriptingVirtualMachineImpl */ +"Operation not available." = "操作不可用。"; + +/* UTMScriptingVirtualMachineImpl */ +"Operation not supported by the backend." = "操作不受後端支援。"; + +/* No comment provided by engineer. */ +"Option (⌥) is Meta key" = "將 Option (⌥) 作為 Meta 鍵"; + +/* No comment provided by engineer. */ +"Other" = "其他"; + +/* VMDisplayWindowController */ +"Pause" = "暫停"; + +/* VMData */ +"Paused" = "已經暫停"; + +/* VMData */ +"Pausing" = "正在暫停"; + +/* UTMQemuConstants */ +"PC System Flash" = "PC 系統快閃記憶體"; + +/* No comment provided by engineer. */ +"Pending" = "待定"; + +/* VMDisplayWindowController */ +"Play" = "播放"; + +/* VMWizardState */ +"Please select a boot image." = "請選取一個啟動檔。"; + +/* VMWizardState */ +"Please select a kernel file." = "請選取一個內核檔。"; + +/* No comment provided by engineer. */ +"Please select a macOS recovery IPSW." = "請選取 IPSW 恢復檔。"; + +/* No comment provided by engineer. */ +"Please select an uncompressed Linux kernel image." = "請選取未壓縮的 Linux 核心映像檔。"; + +/* No comment provided by engineer. */ +"Port Forward" = "連線埠轉送"; + +/* No comment provided by engineer. */ +"Preconfigured" = "預設定"; + +/* A download process is about to begin. */ +"Preparing…" = "正在準備..."; + +/* VMDisplayQemuMetalWindowController */ +"Press %@ to release cursor" = "按下 %@ 來放開指標"; + +/* No comment provided by engineer. */ +"Prevent system from sleeping when any VM is running" = "在任何虛擬電腦執行時防止系統睡眠"; + +/* UTMQemuConstants */ +"Pseudo-TTY Device" = "Pseudo-TTY 裝置"; + +/* No comment provided by engineer. */ +"QEMU Arguments" = "QEMU 參數"; + +/* No comment provided by engineer. */ +"QEMU Graphics Acceleration" = "QEMU 圖形加速"; + +/* No comment provided by engineer. */ +"QEMU Keyboard" = "QEMU 鍵盤"; + +/* UTMQemuConstants */ +"QEMU Monitor (HMP)" = "QEMU 顯示器 (HMP)"; + +/* No comment provided by engineer. */ +"QEMU Pointer" = "QEMU 指標"; + +/* No comment provided by engineer. */ +"QEMU Sound" = "QEMU 聲音"; + +/* No comment provided by engineer. */ +"QEMU USB" = "QEMU USB"; + +/* VMDisplayWindowController */ +"Querying drives status..." = "正在搜尋磁碟狀態⋯"; + +/* VMQemuDisplayMetalWindowController */ +"Querying USB devices..." = "正在搜尋 USB 裝置⋯"; + +/* VMQemuDisplayMetalWindowController */ +"Quitting UTM will kill all running VMs." = "退出 UTM 會結束所有執行的虛擬電腦。"; + +/* No comment provided by engineer. */ +"Raw Image" = "Raw 映像檔"; + +/* VMDisplayAppleController */ +"Read Only" = "唯讀"; + +/* No comment provided by engineer. */ +"Reclaim" = "回收空間"; + +/* UTMQemuConstants */ +"Regular" = "一般"; + +/* VMRemovableDrivesView */ +"Removable" = "可移除"; + +/* No comment provided by engineer. */ +"Removable Drive" = "可移除式磁碟"; + +/* No comment provided by engineer. */ +"Remove" = "刪除"; + +/* VMDisplayAppleController */ +"Remove…" = "刪除⋯"; + +/* VMDisplayWindowController */ +"Request power down" = "請求關閉電源"; + +/* No comment provided by engineer. */ +"Reset" = "重設"; + +/* No comment provided by engineer. */ +"Resize" = "調整大小"; + +/* No comment provided by engineer. */ +"Resize display to screen size and orientation automatically" = "自動將顯示大小調整為螢幕大小與方向"; + +/* No comment provided by engineer. */ +"Resize display to window size automatically" = "自動將顯示大小調整為視窗大小"; + +/* No comment provided by engineer. */ +"Resizing is experimental and could result in data loss. You are strongly encouraged to back-up this VM before proceeding. Would you like to resize to %@ GiB?" = "調整空間大小屬於實驗性功能,可能會導致資料丟失。強烈建議你先備份此虛擬電腦,然後再繼續操作。你要調整大小為 %@ GB 嗎?"; + +/* VMData */ +"Restoring" = "正在還原"; + +/* VMData */ +"Resuming" = "正在繼續"; + +/* No comment provided by engineer. */ +"Retina Mode" = "Retina 模式"; + +/* UTMAppleConfiguration */ +"Rosetta is not supported on the current host machine." = "當前主機不支援 Rosetta。"; + +/* No comment provided by engineer. */ +"Running low on memory! UTM might soon be killed by iOS. You can prevent this by decreasing the amount of memory and/or JIT cache assigned to this VM" = "記憶體不足!UTM 可能很快會被 iOS 結束。你可以透過減少分配給此虛擬電腦的記憶體和/或 JIT 快取來防止這種情況。"; + +/* No comment provided by engineer. */ +"Save" = "儲存"; + +/* VMData */ +"Saving" = "正在儲存"; + +/* No comment provided by engineer. */ +"Scaling" = "比例縮放"; + +/* UTMQemuConstants */ +"SCSI" = "SCSI"; + +/* UTMQemuConstants */ +"SD Card" = "SD 卡"; + +/* No comment provided by engineer. */ +"Select a file." = "選取一個檔案。"; + +/* VMDisplayWindowController */ +"Select Drive Image" = "選取磁碟映像檔"; + +/* VMDisplayAppleWindowController + VMDisplayWindowController */ +"Select Shared Folder" = "選取共享的資料夾"; + +/* SavePanel */ +"Select where to export QEMU command:" = "選取輸出 QEMU 指令的位置:"; + +/* SavePanel */ +"Select where to save debug log:" = "選取儲存除錯記錄的位置:"; + +/* SavePanel */ +"Select where to save UTM Virtual Machine:" = "選取儲存 UTM 虛擬電腦的位置:"; + +/* No comment provided by engineer. */ +"Selected:" = "已選取:"; + +/* VMDisplayWindowController */ +"Sends power down request to the guest. This simulates pressing the power button on a PC." = "向客戶端發送關閉電源請求。此操作模擬了按下 PC 上的電源按鈕。"; + +/* VMDisplayAppleWindowController + VMDisplayQemuDisplayController */ +"Serial %lld" = "序列裝置 %lld"; + +/* No comment provided by engineer. */ +"Share USB devices from host" = "從主機共享 USB 裝置"; + +/* No comment provided by engineer. */ +"Shared directories in macOS VMs are only available in macOS 13 and later." = "macOS 虛擬電腦共享目錄僅在 macOS 13 及更高版本可用。"; + +/* No comment provided by engineer. */ +"Shared Directory" = "已共享目錄"; + +/* UTMQemuConstants */ +"Shared Network" = "共享網絡"; + +/* No comment provided by engineer. */ +"Sharing" = "共享"; + +/* No comment provided by engineer. */ +"Show Advanced Settings" = "顯示進階設定"; + +/* No comment provided by engineer. */ +"Show All" = "顯示全部"; + +/* No comment provided by engineer. */ +"Show All…" = "顯示全部⋯"; + +/* No comment provided by engineer. */ +"Show dock icon" = "顯示 Dock 圖示"; + +/* No comment provided by engineer. */ +"Show menu bar icon" = "顯示選單列圖示"; + +/* No comment provided by engineer. */ +"Size" = "大小"; + +/* No comment provided by engineer. */ +"Slower, but can run other CPU architectures." = "較慢,但可以執行其他 CPU 體系結構。"; + +/* UTMSWTPM */ +"Socket not specified." = "未指定 socket。"; + +/* No comment provided by engineer. */ +"Specify the size of the drive where data will be stored into." = "指定資料儲存到的磁碟的大小。"; + +/* UTMQemuConstants */ +"SPICE WebDAV" = "SPICE WebDAV"; + +/* No comment provided by engineer. */ +"SPICE with GStreamer (Input & Output)" = "SPICE with GStreamer (輸入與輸出)"; + +/* VMData */ +"Started" = "已經啟動"; + +/* VMData */ +"Starting" = "正在啟動"; + +/* No comment provided by engineer. */ +"Stop" = "停止"; + +/* VMData */ +"Stopped" = "已停止"; + +/* VMData */ +"Stopping" = "正在停止"; + +/* No comment provided by engineer. */ +"Style" = "樣式"; + +/* No comment provided by engineer. */ +"Summary" = "概要"; + +/* Welcome view */ +"Support" = "支援"; + +/* UTMQemuVirtualMachine */ +"Suspend is not supported for virtualization." = "暫停功能不支援虛擬化。"; + +/* UTMQemuVirtualMachine */ +"Suspend is not supported when an emulated NVMe device is active." = "当模擬 NVMe 裝置處於啟用狀態時,不支援暫停功能。"; + +/* UTMQemuVirtualMachine */ +"Suspend is not supported when GPU acceleration is enabled." = "当 GPU 加速處於啟用狀態時,不支援暫停功能。"; + +/* UTMQemuVirtualMachine */ +"Suspend state cannot be saved when running in disposible mode." = "在即拋式模式下執行虛擬電腦時,無法儲存暫停狀態。"; + +/* VMData */ +"Suspended" = "暫停"; + +/* UTMSWTPM */ +"SW TPM failed to start. %@" = "SW TPM 啟動失敗。%@"; + +/* No comment provided by engineer. */ +"System" = "系統"; + +/* UTMQemuConstants */ +"TCP" = "TCP"; + +/* UTMQemuConstants */ +"TCP Client Connection" = "TCP 客戶端連線"; + +/* UTMQemuConstants */ +"TCP Server Connection" = "TCP 伺服器連線"; + +/* VMDisplayWindowController */ +"Tells the VM process to shut down with risk of data corruption. This simulates holding down the power button on a PC." = "告知關閉虛擬電腦程序(有損毀資料的風險)。此操作模擬了按下 PC 上的電源按鈕。"; + +/* No comment provided by engineer. */ +"Test" = "測試"; + +/* No comment provided by engineer. */ +"Test 1" = "測試 1"; + +/* No comment provided by engineer. */ +"Test 2" = "測試 2"; + +/* UTMConfiguration */ +"The backend for this configuration is not supported." = "不支援此設定的後端。"; + +/* UTMScriptingUSBDeviceImpl */ +"The device cannot be found." = "無法找到此裝置。"; + +/* UTMScriptingUSBDeviceImpl */ +"The device is not currently connected." = "此裝置當前未連線。"; + +/* UTMConfiguration */ +"The drive '%@' already exists and cannot be created." = "磁碟「%@」已經存在,無法製作。"; + +/* UTMDownloadSupportToolsTaskError */ +"The guest support tools have already been mounted." = "此客戶端支援工具已經被裝載。"; + +/* UTMAppleConfiguration */ +"The host operating system needs to be updated to support one or more features requested by the guest." = "需要更新主機的作業系統以支援客戶端請求的一個或多個功能。"; + +/* UTMAppleVirtualMachine */ +"The operating system cannot be installed on this machine." = "無法在此電腦上安裝該作業系統。"; + +/* UTMAppleVirtualMachine */ +"The operation is not available." = "此操作不可用。"; + +/* UTMScriptingVirtualMachineImpl */ +"The QEMU guest agent is not running or not installed on the guest." = "QEMU 客戶端代理程式未執行或未在客戶端上安裝。"; + +/* No comment provided by engineer. */ +"The selected architecture is unsupported in this version of UTM." = "此版本的 UTM 不支援所選取的體系結構。"; + +/* VMWizardState */ +"The selected boot image contains the word '%@' but the guest architecture is '%@'. Please ensure you have selected an image that is compatible with '%@'." = "選取的啟動映像檔包含單字「%1$@」,但客戶端體系結構為「%2$@」。請確保你選取了與「%3$@」體系結構相容的映像檔。"; + +/* No comment provided by engineer. */ +"The target does not support hardware emulated serial connections." = "目標平台不支援硬件模擬序列連線。"; + +/* UTMQemuVirtualMachine */ +"The virtual machine is in an invalid state." = "虛擬電腦處於無效狀態。"; + +/* UTMScriptingVirtualMachineImpl */ +"The virtual machine is not running." = "虛擬電腦未在執行。"; + +/* UTMScriptingVirtualMachineImpl */ +"The virtual machine must be stopped before this operation can be performed." = "必須先停止虛擬電腦,然後才能執行此操作。"; + +/* Error shown when importing a ZIP file from web that doesn't contain a UTM Virtual Machine. */ +"There is no UTM file in the downloaded ZIP archive." = "在已下載的 ZIP 封存檔裡無 UTM 檔案。"; + +/* No comment provided by engineer. */ +"This audio card is not supported." = "此聲卡不支援。"; + +/* UTMScriptingAppDelegate */ +"This backend is not supported on your machine." = "你的電腦不支援此後端。"; + +/* No comment provided by engineer. */ +"This build does not emulation." = "此 UTM 構建不支援模擬。"; + +/* UTMQemuVirtualMachine */ +"This build of UTM does not support emulating the architecture of this VM." = "此 UTM 構建不支援模擬該虛擬電腦的體系結構。"; + +/* VMConfigSystemView */ +"This change will reset all settings" = "此變更會重設所有設定"; + +/* UTMConfiguration */ +"This configuration is saved with a newer version of UTM and is not compatible with this version." = "此設定使用較新版本的 UTM 儲存,與此版本不相容。"; + +/* UTMConfiguration */ +"This configuration is too old and is not supported." = "此設定過舊,無法支援。"; + +/* UTMScriptingConfigImpl */ +"This device is not supported by the target." = "目標不支援此裝置。"; + +/* VMConfigAppleSharingView */ +"This directory is already being shared." = "此目錄已經被共享。"; + +/* UTMAppleConfiguration */ +"This is not a valid Apple Virtualization configuration." = "並非有效的 Apple 虛擬化設定。"; + +/* VMDisplayWindowController */ +"This may corrupt the VM and any unsaved changes will be lost. To quit safely, shut down from the guest." = "這可能會損毀虛擬電腦,任何未儲存的變更都將丟失。如要安全退出,請從客戶端關機。"; + +/* No comment provided by engineer. */ +"This operating system is unsupported on your machine." = "你的電腦不支援此作業系統。"; + +/* UTMDataExtension */ +"This virtual machine cannot be run on this machine." = "此虛擬電腦無法在該電腦上執行。"; + +/* UTMAppleConfiguration */ +"This virtual machine cannot run on the current host machine." = "此虛擬電腦無法在當前主機上執行。"; + +/* UTMAppleConfiguration */ +"This virtual machine contains an invalid hardware model. The configuration may be corrupted or is outdated." = "此虛擬電腦含有無效的硬體型號。其設定可能損毀或是過時。"; + +/* No comment provided by engineer. */ +"This virtual machine has been removed." = "此虛擬電腦已經被刪除。"; + +/* VMDisplayWindowController */ +"This will reset the VM and any unsaved state will be lost." = "這將重設虛擬電腦,任何未儲存的狀態都將丟失。"; + +/* VMDisplayAppleWindowController */ +"To access the shared directory, the guest OS must have Virtiofs drivers installed. You can then run `sudo mount -t virtiofs share /path/to/share` to mount to the share path." = "要取用共享目錄,客戶端作業系統必須安裝 VirtioFS 驅動程式。然後,你可以執行「sudo mount -t virtiofs share /path/to/share」來裝載到共享路徑。"; + +/* VMMetalView */ +"To capture input or to release the capture, press Command and Option at the same time." = "要截取或放開輸入,請同時按下 Command + Option。"; + +/* No comment provided by engineer. */ +"To install macOS, you need to download a recovery IPSW. If you do not select an existing IPSW, the latest macOS IPSW will be downloaded from Apple." = "如要安裝 macOS,你需要下載 IPSW 恢復檔。如你未選取現有的 IPSW,將從 Apple 下載最新的 macOS IPSW。"; + +/* VMDisplayQemuMetalWindowController */ +"To release the mouse cursor, press %@ at the same time." = "如要放開滑鼠指標,請同時按下 %@。"; + +/* UTMAppleConfigurationDevices */ +"Trackpad" = "觸控板"; + +/* No comment provided by engineer. */ +"u{2022} " = "u{2022}"; + +/* UTMQemuConstants */ +"UDP" = "UDP"; + +/* No comment provided by engineer. */ +"UEFI" = "UEFI"; + +/* UTMQemuConfigurationError */ +"UEFI is not supported with this architecture." = "此體系結構不支援 UEFI。"; + +/* UTMData */ +"Unable to add a shortcut to the new location." = "無法向新位置新增捷徑。"; + +/* VMData */ +"Unavailable" = "無法使用"; + +/* VMWizardState */ +"Unavailable for this platform." = "無法用於此平台。"; + +/* No comment provided by engineer. */ +"Uncompressed Linux initial ramdisk (optional)" = "未壓縮的 Linux 起始 ramdisk (可選)"; + +/* No comment provided by engineer. */ +"Uncompressed Linux kernel (required)" = "未壓縮的 Linux 核心映像檔 (必填)"; + +/* No comment provided by engineer. */ +"Update Interface" = "更新介面"; + +/* UTMQemuConstants */ +"USB" = "USB"; + +/* UTMQemuConstants */ +"USB 2.0" = "USB 2.0"; + +/* UTMQemuConstants */ +"USB 3.0 (XHCI)" = "USB 3.0 (XHCI)"; + +/* VMQemuDisplayMetalWindowController */ +"USB Device" = "USB 裝置"; + +/* No comment provided by engineer. */ +"USB Sharing" = "USB 共享"; + +/* No comment provided by engineer. */ +"USB sharing not supported in this build of UTM." = "此 UTM 構建不支援 USB 共享。"; + +/* No comment provided by engineer. */ +"Use Command+Option (⌘+⌥) for input capture/release" = "使用 Command + Option (⌘ + ⌥) 來截取/放開輸入"; + +/* Welcome view */ +"User Guide" = "用戶指南"; + +/* UTMScriptingAppDelegate + UTMScriptingUSBDeviceImpl */ +"UTM is not ready to accept commands." = "UTM 尚未準備好接受指令。"; + +/* No comment provided by engineer. */ +"Version" = "版本"; + +/* UTMQemuConstants */ +"VirtFS" = "VirtFS"; + +/* UTMQemuConstants */ +"VirtIO" = "VirtIO"; + +/* UTMConfigurationInfo + UTMData */ +"Virtual Machine" = "虛擬電腦"; + +/* No comment provided by engineer. */ +"Virtual Machine Gallery" = "虛擬電腦庫"; + +/* VMData */ +"Virtual machine not loaded." = "未載入虛擬電腦。"; + +/* No comment provided by engineer. */ +"Virtualization is not supported on your system." = "你的電腦系統不支援虛擬化。"; + +/* No comment provided by engineer. */ +"Virtualize" = "虛擬化"; + +/* No comment provided by engineer. */ +"VM display size is fixed" = "虛擬電腦顯示大小固定"; + +/* No comment provided by engineer. */ +"Waiting for VM to connect to display..." = "正在等待虛擬電腦連線到顯示..."; + +/* No comment provided by engineer. */ +"Welcome to UTM" = "歡迎使用 UTM"; + +/* No comment provided by engineer. */ +"What's New" = "新功能"; + +/* UTMDownloadSupportToolsTask */ +"Windows Guest Support Tools" = "Windows 客戶端支援工具"; + +/* VMQemuDisplayMetalWindowController */ +"Would you like to connect '%@' to this virtual machine?" = "你要連線「%@」到此虛擬電腦嗎?"; + +/* VMDisplayAppleWindowController */ +"Would you like to install macOS? If an existing operating system is already installed on the primary drive of this VM, then it will be erased." = "你要安裝 macOS 嗎?如果此虛擬電腦的主磁碟上已經安裝了現有的作業系統,則會將其清除。"; + +/* No comment provided by engineer. */ +"Would you like to re-convert this disk image to reclaim unused space and apply compression? Note this will require enough temporary space to perform the conversion. Compression only applies to existing data and new data will still be written uncompressed. You are strongly encouraged to back-up this VM before proceeding." = "你要重新轉換此磁碟映像檔以回收未使用的空間並應用壓縮嗎?請注意,這將需要足夠的臨時空間來執行轉換,壓縮僅適用於現有資料,新資料仍將以未壓縮寫入。強烈建議你先備份此虛擬電腦,然後再繼續操作。"; + +/* No comment provided by engineer. */ +"Would you like to re-convert this disk image to reclaim unused space? Note this will require enough temporary space to perform the conversion. You are strongly encouraged to back-up this VM before proceeding." = "你要重新轉換此磁碟映像檔以回收未使用的空間嗎?請注意,這將需要足夠的臨時空間來執行轉換。強烈建議你先備份此虛擬電腦,然後再繼續操作。"; + +/* No comment provided by engineer. */ +"Yes" = "是"; + +/* VMConfigSystemView */ +"Your device has %llu MB of memory and the estimated usage is %llu MB." = "你的裝置有 %1$llu MB 的記憶體,大約使用量為 %2$llu MB。"; + +/* VMConfigAppleBootView + VMWizardOSMacView */ +"Your machine does not support running this IPSW." = "你的電腦不支援執行此 IPSW。"; + +/* ContentView */ +"Your version of iOS does not support running VMs while unmodified. You must either run UTM while jailbroken or with a remote debugger attached. See https://getutm.app/install/ for more details." = "你的 iOS 版本不支援在未作更動的情況下執行虛擬電腦,必須在越獄 (jailbreak) 時執行 UTM,或是在附加遠程除錯器的情況下執行 UTM。有關更多詳細訊息,請參閲 https://getutm.app/install/。"; + diff --git a/Platform/zh-HK.lproj/Localizable.stringsdict b/Platform/zh-HK.lproj/Localizable.stringsdict index 45479e04c..d62973c58 100644 --- a/Platform/zh-HK.lproj/Localizable.stringsdict +++ b/Platform/zh-HK.lproj/Localizable.stringsdict @@ -12,10 +12,8 @@ NSStringPluralRuleType NSStringFormatValueTypeKey lld - one - %lld Core other - %lld Cores + %lld 個核心 diff --git a/QEMUHelper/zh-HK.lproj/InfoPlist.strings b/QEMUHelper/zh-HK.lproj/InfoPlist.strings index f2180cd78..b976f7fd2 100644 --- a/QEMUHelper/zh-HK.lproj/InfoPlist.strings +++ b/QEMUHelper/zh-HK.lproj/InfoPlist.strings @@ -1 +1,9 @@ -"" = ""; +/* Bundle display name */ +"CFBundleDisplayName" = "QEMUHelper"; + +/* Bundle name */ +"CFBundleName" = "QEMUHelper"; + +/* Copyright (human-readable) */ +"NSHumanReadableCopyright" = "Copyright © 2020 osy. 保留一切權利。"; + diff --git a/QEMUHelper/zh-HK.lproj/Localizable.strings b/QEMUHelper/zh-HK.lproj/Localizable.strings index f2180cd78..9eb0ae695 100644 --- a/QEMUHelper/zh-HK.lproj/Localizable.strings +++ b/QEMUHelper/zh-HK.lproj/Localizable.strings @@ -1 +1,3 @@ -"" = ""; +/* QEMUHelper */ +"Cannot find QEMU support libraries." = "無法找到 QEMU 支援庫。"; + diff --git a/UTM.xcodeproj/project.pbxproj b/UTM.xcodeproj/project.pbxproj index 046c63902..f8d6ec622 100644 --- a/UTM.xcodeproj/project.pbxproj +++ b/UTM.xcodeproj/project.pbxproj @@ -1697,6 +1697,7 @@ F6DA2DAA2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-HK"; path = "zh-HK.lproj/Localizable.stringsdict"; sourceTree = ""; }; F6DA2DAB2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/Localizable.strings"; sourceTree = ""; }; F6DA2DAC2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/InfoPlist.strings"; sourceTree = ""; }; + F6DA2DAD2AAFEDAC0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; FF0307542A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; FF0307562A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.stringsdict"; sourceTree = ""; }; FF0307572A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/VMDisplayMetalViewInputAccessory.strings"; sourceTree = ""; }; @@ -3475,6 +3476,7 @@ isa = PBXVariantGroup; children = ( FF0307542A84E3B70049979B /* zh-Hant */, + F6DA2DAD2AAFEDAC0070DCD1 /* zh-HK */, ); name = "QEMULauncher-InfoPlist.strings"; sourceTree = ""; diff --git a/zh-HK.lproj/QEMULauncher-InfoPlist.strings b/zh-HK.lproj/QEMULauncher-InfoPlist.strings new file mode 100644 index 000000000..b0542732d --- /dev/null +++ b/zh-HK.lproj/QEMULauncher-InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "QEMULauncher"; + From abce5ab11642fd0e8b43586673c43da3dfd9660a Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Tue, 12 Sep 2023 08:54:11 +0800 Subject: [PATCH 3/8] Fix translation for zh-hans --- .../VMDisplayMetalViewInputAccessory.strings | 1 + .../zh-Hans.lproj/Root.strings | 9 - Platform/iOS/zh-Hans.lproj/InfoPlist.strings | 1 + .../zh-Hans.lproj/VMDisplayWindow.strings | 11 +- .../macOS/zh-Hans.lproj/InfoPlist.strings | 6 +- Platform/zh-Hans.lproj/Localizable.strings | 1068 +---------------- QEMUHelper/zh-Hans.lproj/Localizable.strings | 6 - UTM.xcodeproj/project.pbxproj | 4 + 8 files changed, 35 insertions(+), 1071 deletions(-) diff --git a/Platform/iOS/Display/zh-Hans.lproj/VMDisplayMetalViewInputAccessory.strings b/Platform/iOS/Display/zh-Hans.lproj/VMDisplayMetalViewInputAccessory.strings index 8304ffbd3..104014d15 100644 --- a/Platform/iOS/Display/zh-Hans.lproj/VMDisplayMetalViewInputAccessory.strings +++ b/Platform/iOS/Display/zh-Hans.lproj/VMDisplayMetalViewInputAccessory.strings @@ -159,3 +159,4 @@ /* Class = "UIButton"; normalTitle = "F9"; ObjectID = "UNT-ei-lIn"; */ "UNT-ei-lIn.normalTitle" = "F9"; + diff --git a/Platform/iOS/Settings.bundle/zh-Hans.lproj/Root.strings b/Platform/iOS/Settings.bundle/zh-Hans.lproj/Root.strings index cf447407d..133651329 100644 --- a/Platform/iOS/Settings.bundle/zh-Hans.lproj/Root.strings +++ b/Platform/iOS/Settings.bundle/zh-Hans.lproj/Root.strings @@ -145,12 +145,3 @@ /* (No Comment) */ "Up" = "上"; -"Disable screen dimming when idle" = "闲置时禁用屏幕变暗"; - -"Do not show prompt when USB device is plugged in" = "插入 USB 设备时不弹出提示"; - -"Idle" = "闲置"; - -"Devices" = "设备"; - -"Cursor - Drag Speed" = "光标 - 拖动速度"; diff --git a/Platform/iOS/zh-Hans.lproj/InfoPlist.strings b/Platform/iOS/zh-Hans.lproj/InfoPlist.strings index a9d01cc09..568426f08 100644 --- a/Platform/iOS/zh-Hans.lproj/InfoPlist.strings +++ b/Platform/iOS/zh-Hans.lproj/InfoPlist.strings @@ -15,3 +15,4 @@ /* (No Comment) */ "UTM virtual machine" = "UTM 虚拟机"; + diff --git a/Platform/macOS/Display/zh-Hans.lproj/VMDisplayWindow.strings b/Platform/macOS/Display/zh-Hans.lproj/VMDisplayWindow.strings index 1fd35d4bd..c84d01409 100644 --- a/Platform/macOS/Display/zh-Hans.lproj/VMDisplayWindow.strings +++ b/Platform/macOS/Display/zh-Hans.lproj/VMDisplayWindow.strings @@ -31,13 +31,13 @@ /* Class = "NSToolbarItem"; paletteLabel = "Toolbar Item"; ObjectID = "C8Y-BQ-Y6m"; */ "C8Y-BQ-Y6m.paletteLabel" = "工具栏项目"; -/* Class = "NSToolbarItem"; label = "Capture Mouse"; ObjectID = "FN7-zs-mWC"; */ -"FN7-zs-mWC.label" = "捕获鼠标"; +/* Class = "NSToolbarItem"; label = "Capture Input"; ObjectID = "FN7-zs-mWC"; */ +"FN7-zs-mWC.label" = "捕获输入"; -/* Class = "NSToolbarItem"; paletteLabel = "Capture Mouse"; ObjectID = "FN7-zs-mWC"; */ -"FN7-zs-mWC.paletteLabel" = "捕获鼠标"; +/* Class = "NSToolbarItem"; paletteLabel = "Capture Input"; ObjectID = "FN7-zs-mWC"; */ +"FN7-zs-mWC.paletteLabel" = "捕获输入"; -/* Class = "NSToolbarItem"; toolTip = "Capture mouse cursor"; ObjectID = "FN7-zs-mWC"; */ +/* Class = "NSToolbarItem"; toolTip = "Capture input devices"; ObjectID = "FN7-zs-mWC"; */ "FN7-zs-mWC.toolTip" = "捕获鼠标光标"; /* Class = "NSToolbarItem"; label = "Restart"; ObjectID = "G7P-HJ-bcy"; */ @@ -90,3 +90,4 @@ /* Class = "NSButton"; ibShadowedToolTip = "Starts/resumes the VM"; ObjectID = "ZTi-Hs-ge6"; */ "ZTi-Hs-ge6.ibShadowedToolTip" = "启动/恢复虚拟机"; + diff --git a/Platform/macOS/zh-Hans.lproj/InfoPlist.strings b/Platform/macOS/zh-Hans.lproj/InfoPlist.strings index 6e6a4db96..fca34c71f 100644 --- a/Platform/macOS/zh-Hans.lproj/InfoPlist.strings +++ b/Platform/macOS/zh-Hans.lproj/InfoPlist.strings @@ -1,9 +1,9 @@ /* Bundle name */ "CFBundleName" = "UTM"; +/* Privacy - Microphone Usage Description */ +"NSMicrophoneUsageDescription" = "任何虚拟机都需要获得权限才能从麦克风进行录音。"; + /* (No Comment) */ "UTM virtual machine" = "UTM 虚拟机"; -/* Privacy - Microphone Usage Description */ -"NSMicrophoneUsageDescription" = "任何虚拟机都需要获得许可才能从麦克风进行录音。"; - diff --git a/Platform/zh-Hans.lproj/Localizable.strings b/Platform/zh-Hans.lproj/Localizable.strings index edd4890a0..7f7bddf99 100644 --- a/Platform/zh-Hans.lproj/Localizable.strings +++ b/Platform/zh-Hans.lproj/Localizable.strings @@ -13,7 +13,7 @@ /* QEMUConstant */ "%@ (%@)" = "%1$@ (%2$@)"; -/* VMDisplayQemuDisplayController */ +/* VMToolbarDriveMenuView */ "%@ (%@): %@" = "%1$@ (%2$@): %3$@"; /* VMDisplayMetalWindowController */ @@ -44,18 +44,6 @@ /* Format string for download progress and speed, e. g. 5 MB of 6 GB (200 kbit/s) */ "%1$@ of %2$@ (%3$@)" = "共 %2$@,已下载 %1$@ (%3$@)"; -/* No comment provided by engineer. */ -"ABOUT" = "关于"; - -/* VMConfigDriveCreateViewController */ -"A file already exists for this name, if you proceed, it will be replaced." = "已存在此名称的文件,如果你继续,此文件将被替换。"; - -/* VMRemovableDriveView */ -"A removable drive that has no image file inserted." = "可移动驱动器未插入映像文件。"; - -/* VMListViewController */ -"A VM already exists with this name." = "已存在一个有此名称的虚拟机。"; - /* UTMScriptingAppDelegate */ "A valid backend must be specified." = "必须指定有效的后端。"; @@ -65,9 +53,6 @@ /* UTMAppleConfiguration */ "A valid kernel image must be specified." = "必须指定有效的内核映像。"; -/* No comment provided by engineer. */ -"Acceleration" = "加速"; - /* VMDisplayAppleController */ "Add…" = "添加…"; @@ -77,40 +62,21 @@ /* No comment provided by engineer. */ "Additional Settings" = "附加设置"; -/* No comment provided by engineer. */ -"Advanced: Bypass configuration and manually specify arguments" = "高级: 跳过配置并手动指定参数"; - /* No comment provided by engineer. */ "Advanced" = "高级"; /* VMConfigSystemView */ "Allocating too much memory will crash the VM." = "分配过多的内存会导致虚拟机崩溃。"; -"Allocating too much memory will crash the VM. Your device has %llu MB of memory and the estimated usage is %llu MB." = "分配过多的内存会导致虚拟机崩溃。你的设备拥有 %llu MB 的内存,估计使用量为 %llu MB。"; /* UTMData */ "AltJIT error: %@" = "AltJIT 错误: %@"; -/* UTMData */ -"AltJIT error: (error.localizedDescription)" = "AltJIT 错误: (error.localizedDescription)"; - -/* No comment provided by engineer. */ -"Always use native (HiDPI) resolution" = "始终使用本机 (HiDPI) 分辨率"; - /* UTMData */ "An existing virtual machine already exists with this name." = "已经存在一个具有此名称的虚拟机。"; -/* CSConnection */ -"An error occurred trying to connect to SPICE." = "尝试连接到 SPICE 时出错。"; - -/* VMDrivesSettingsView */ -"An image already exists with that name." = "带有该名称的映像已经存在。"; - /* UTMConfiguration */ "An internal error has occurred." = "发生了内部错误。"; -/* UTMVirtualMachine */ -"An internal error has occured. UTM will terminate." = "发生了内部错误。UTM 即将终止。"; - /* UTMConfiguration */ "An invalid value of '%@' is used in the configuration file." = "配置文件中使用了无效值 '%@'。"; @@ -123,27 +89,9 @@ /* No comment provided by engineer. */ "ANGLE (OpenGL)" = "ANGLE (OpenGL)"; -/* No comment provided by engineer. */ -"Another Tab" = "另一个选项卡"; - -/* No comment provided by engineer. */ -"Application" = "应用程序"; - -/* New VM window. */ -"Apple Virtualization is experimental and only for advanced use cases. Leave unchecked to use QEMU, which is recommended." = "Apple 虚拟化属于实验性功能,仅作高级情况使用。建议不勾选此复选框以使用 QEMU。"; - -/* UTMDownloadIPSWTask */ -"Apple Virtualization not available on iOS" = "Apple 虚拟化在 iOS 上不可用"; - /* VMConfigSystemView */ "Any unsaved changes will be lost." = "任何未保存的更改都将丢失。"; -/* VMConfigDirectoryPickerViewController */ -"Are you sure you want to delete this directory? All files and subdirectories WILL be deleted." = "确定要删除此目录吗?所有文件和子目录都将被删除。"; - -/* Delete confirmation */ -"Are you sure you want to delete this VM? Any drives associated will also be deleted." = "确定要删除此虚拟机吗?任何关联的驱动器也将被删除。"; - /* No comment provided by engineer. */ "Architecture" = "架构"; @@ -159,49 +107,25 @@ /* No comment provided by engineer. */ "Are you sure you want to stop this VM and exit? Any unsaved changes will be lost." = "确定要停止此虚拟机并退出吗?任何未保存的更改都将丢失。"; -/* No comment provided by engineer. */ -"Argument" = "参数"; - -/* No comment provided by engineer. */ -"Auto Resolution" = "自动分辨率"; - /* No comment provided by engineer. */ "Automatic" = "自动"; /* UTMQemuConstants */ "Automatic Serial Device (max 4)" = "自动串行设备 (最大值 4)"; -/* No comment provided by engineer. */ -"Background Color" = "背景颜色"; - -/* No comment provided by engineer. */ -"Balloon Device" = "Balloon 设备"; - /* UTMLegacyQemuConfiguration UTMQemuConstants */ "BIOS" = "BIOS"; -/* No comment provided by engineer. */ -"Blinking Cursor" = "闪烁光标"; - /* UTMQemuConstants */ "Bold" = "粗体"; -/* No comment provided by engineer. */ -"BOOT IMAGE TYPE" = "启动映像类型"; - /* No comment provided by engineer. */ "Boot" = "启动"; -/* No comment provided by engineer. */ -"Boot from kernel image" = "从内核映像启动"; - /* No comment provided by engineer. */ "Boot Arguments" = "启动参数"; -/* No comment provided by engineer. */ -"Boot Image" = "启动映像"; - /* No comment provided by engineer. */ "Boot Image Type" = "启动映像类别"; @@ -211,39 +135,25 @@ /* No comment provided by engineer. */ "Boot ISO Image (optional)" = "启动 ISO 映像 (可选)"; -/* No comment provided by engineer. */ -"Boot Order" = "启动顺序"; - /* No comment provided by engineer. */ "Boot VHDX Image" = "启动 VHDX 映像"; -/* No comment provided by engineer. */ -"Boot into recovery mode." = "启动进入恢复模式"; - -/* UTMAppleConfigurationNetwork - UTMQemuConstants */ +/* UTMQemuConstants */ "Bridged (Advanced)" = "桥接 (高级)"; /* No comment provided by engineer. */ "Bridged Settings" = "桥接设置"; -/* No comment provided by engineer. */ -"Bridged Interface" = "桥接接口"; - /* Welcome view */ "Browse UTM Gallery" = "浏览 UTM 库"; -/* No comment provided by engineer. */ -"Browse" = "浏览"; - /* No comment provided by engineer. */ "Browse…" = "浏览…"; /* No comment provided by engineer. */ "Build" = "构建版本"; -/* UTMAppleConfigurationTerminal - UTMQemuConstants */ +/* UTMQemuConstants */ "Built-in Terminal" = "内置终端"; /* No comment provided by engineer. */ @@ -253,39 +163,21 @@ VMQemuDisplayMetalWindowController */ "Cancel" = "取消"; -/* No comment provided by engineer. */ -"Cancel download" = "取消下载"; - /* UTMAppleVirtualMachine */ "Cannot access resource: %@" = "无法访问资源: %@"; /* UTMSWTPM */ "Cannot access TPM data." = "无法访问 TPM 数据。"; -/* No comment provided by engineer. */ -"Cannot allocate memory" = "无法分配内存"; - -/* VMConfigDriveCreateViewController */ -"Cannot create directory for disk image." = "无法为磁盘映像创建目录。"; - /* UTMAppleVirtualMachine */ "Cannot create virtual terminal." = "无法创建虚拟终端。"; /* UTMData */ "Cannot find AltServer for JIT enable. You cannot run VMs until JIT is enabled." = "找不到用于 JIT 启用的 AltServer。在启用 JIT 之前,你无法运行虚拟机。"; -/* VMDisplayTerminalWindowController */ -"Cannot find bundle resources." = "找不到绑定的资源。"; - -/* VMListViewController */ -"Cannot find VM." = "无法找到虚拟机。"; - /* UTMData */ "Cannot import this VM. Either the configuration is invalid, created in a newer version of UTM, or on a platform that is incompatible with this version of UTM." = "无法导入此虚拟机。此虚拟机配置无效,或是在较新版本的 UTM 中创建,或是在与此版本的 UTM 不兼容的平台上创建。"; -/* UTMVirtualMachine+Sharing */ -"Cannot start shared directory before SPICE starts." = "无法在 SPICE 开始之前启动共享目录。"; - /* No comment provided by engineer. */ "Caps Lock (⇪) is treated as a key" = "将 Caps Lock (⇪) 视为按键"; @@ -311,30 +203,9 @@ /* No comment provided by engineer. */ "Clear" = "清除"; -/* No comment provided by engineer. */ -"Clipboard Sharing" = "剪贴板共享"; - /* VMQemuDisplayMetalWindowController */ "Closing this window will kill the VM." = "关闭此窗口将终止此虚拟机。"; -/* Clone context menu */ -"Clone" = "克隆"; - -/* No comment provided by engineer. */ -"Clone selected VM" = "克隆选定的虚拟机"; - -/* No comment provided by engineer. */ -"Clone…" = "克隆…"; - -/* No comment provided by engineer. */ -"Close" = "关闭"; - -/* No comment provided by engineer. */ -"Command to send when resizing the console. Placeholder $COLS is the number of columns and $ROWS is the number of rows." = "调整控制台大小时发送的命令。占位符 $COLS 为列数,$ROWS 为行数。"; - -/* UTMVirtualMachine */ -"Config format incorrect." = "配置格式不正确。"; - /* VMQemuDisplayMetalWindowController */ "Confirm" = "确认"; @@ -347,9 +218,6 @@ /* No comment provided by engineer. */ "Connection" = "连接"; -/* No comment provided by engineer. */ -"Console Only" = "仅控制台"; - /* No comment provided by engineer. */ "Console" = "控制台"; @@ -359,45 +227,24 @@ /* No comment provided by engineer. */ "CoreAudio (Output Only)" = "CoreAudio (仅输出)"; -/* VMWizardSummaryView */ -"Core" = "核心"; - /* No comment provided by engineer. */ "Cores" = "核心"; -/* No comment provided by engineer. */ -"Continue" = "继续"; - /* No comment provided by engineer. */ "CPU" = "CPU"; /* No comment provided by engineer. */ "CPU Cores" = "CPU 核心"; -/* No comment provided by engineer. */ -"CPU Flags" = "CPU 标志"; - /* No comment provided by engineer. */ "Create" = "创建"; /* Welcome view */ "Create a New Virtual Machine" = "创建一个新虚拟机"; -/* No comment provided by engineer. */ -"Create a new VM with the same configuration as this one but without any data." = "创建一个新的虚拟机,其配置与此相同,但无任何数据。"; - -/* No comment provided by engineer. */ -"CURSOR - SCROLL WHEEL" = "光标 - 滚轮"; - /* VMConfigAppleDisplayView */ "Custom" = "自定义"; -/* VMConfigDirectoryPickerViewController */ -"Create Directory" = "创建目录"; - -/* VMConfigDriveCreateViewController */ -"Creating disk…" = "正在创建磁盘…"; - /* UTMSWTPM */ "Data not specified." = "未指定数据。"; @@ -411,75 +258,18 @@ /* VMWizardSummaryView */ "Default Cores" = "默认核心数"; -/* No comment provided by engineer. */ -"Default is 1/4 of the RAM size (above). The JIT cache size is additive to the RAM size in the total memory usage!" = "默认值为内存大小的 1/4 (如上所示)。JIT 缓存大小是总内存使用量中内存的大小之和!"; - /* No comment provided by engineer. */ "Delete" = "删除"; -/* VMConfigDrivesViewController */ -"Delete Data" = "删除数据"; - -/* No comment provided by engineer. */ -"Delete Drive" = "删除驱动器"; - -/* No comment provided by engineer. */ -"Delete selected VM" = "删除选定的虚拟机"; - -/* No comment provided by engineer. */ -"Delete…" = "删除…"; - -/* No comment provided by engineer. */ -"Delete this shortcut. The underlying data will not be deleted." = "将删除此快捷方式。原有数据不会被删除。"; - -/* No comment provided by engineer. */ -"Delete this VM and all its data." = "将删除此虚拟机及其所有数据。"; - -/* Delete VM overlay */ -"Deleting %@…" = "正在删除 %@…"; - /* No comment provided by engineer. */ "Devices" = "设备"; -/* No comment provided by engineer. */ -"DHCP Domain Name" = "DHCP 域名"; - -/* No comment provided by engineer. */ -"DHCP Host" = "DHCP 主机"; - -/* No comment provided by engineer. */ -"DHCP Start" = "DHCP 启动"; - -/* No comment provided by engineer. */ -"DIRECTORY SELECTED" = "已选择目录"; - -/* No comment provided by engineer. */ -"Directory" = "目录"; - -/* VMConfigDirectoryPickerViewController */ -"Directory Name" = "目录名称"; - /* VMDisplayAppleWindowController */ "Directory sharing" = "目录共享"; -/* No comment provided by engineer. */ -"Directory Share Mode" = "目录共享模式"; - -/* UTMAppleConfigurationDevices - UTMQemuConstants */ +/* UTMQemuConstants */ "Disabled" = "已禁用"; -/* VMDisplayTerminalViewController */ -"Disable this bar in Settings -> General -> Keyboards -> Shortcuts" = "在 设置 > 通用 > 键盘 > 快捷键 中禁用此栏"; - -/* No comment provided by engineer. */ -"Disk" = "磁盘"; - -/* UTMData - VMConfigDriveCreateViewController - VMWizardState */ -"Disk creation failed." = "创建磁盘失败。"; - /* UTMLegacyQemuConfiguration UTMQemuConstants */ "Disk Image" = "磁盘映像"; @@ -493,33 +283,15 @@ /* VMDisplayQemuDisplayController */ "Disposable Mode" = "一次性模式"; -/* No comment provided by engineer. */ -"DNS Search Domains" = "DNS 搜索域"; - -/* No comment provided by engineer. */ -"DNS Server" = "DNS 服务器"; - -/* No comment provided by engineer. */ -"DNS Server (IPv6)" = "DNS 服务器 (IPv6)"; - -/* No comment provided by engineer. */ -"Do not generate any arguments based on current configuration" = "不要基于当前配置生成任何参数"; - /* No comment provided by engineer. */ "Do not save VM screenshot to disk" = "不要将虚拟机屏幕截图保存到磁盘"; -/* VMDisplayMetalWindowController */ -"Do Not Show Again" = "不再显示"; - /* No comment provided by engineer. */ "Do not show confirmation when closing a running VM" = "关闭正在运行的虚拟机时不显示确认"; /* No comment provided by engineer. */ "Do not show prompt when USB device is plugged in" = "插入 USB 设备时不显示提示"; -/* VMConfigDrivesViewController */ -"Do you want to also delete the disk image data? If yes, the data will be lost. Otherwise, you can create a new drive with the existing data." = "你是否还要删除磁盘映像数据?如果是,数据将丢失。否则,你可以使用现有数据创建一个新的驱动器。"; - /* No comment provided by engineer. */ "Do you want to delete this VM and all its data?" = "要删除此虚拟机及其所有数据吗?"; @@ -535,145 +307,45 @@ /* No comment provided by engineer. */ "Do you want to remove this shortcut? The data will not be deleted." = "要删除这个快捷方式吗?数据不会被删除。"; -/* VMConfigDirectoryPickerViewController - VMConfigPortForwardingViewController */ -"Done" = "已完成"; - -/* No comment provided by engineer. */ -"Download and mount the guest support package for Windows. This is required for some features including dynamic resolution and clipboard sharing." = "下载并装载 Windows 客户机支持工具。此工具对某些功能而言必不可少,包括动态分辨率和剪贴板共享。"; - -/* No comment provided by engineer. */ -"Download and mount the guest tools for Windows." = "下载并装载 Windows 客户机支持工具。"; - /* No comment provided by engineer. */ "Download prebuilt from UTM Gallery…" = "从 UTM 库中下载预构建的虚拟机…"; -/* No comment provided by engineer. */ -"Download Ubuntu Server for ARM" = "下载 ARM 版 Ubuntu Server"; - -/* No comment provided by engineer. */ -"Download Windows 11 for ARM64 Preview VHDX" = "下载 Windows 11 ARM64 预览版的 VHDX 映像"; - -/* No comment provided by engineer. */ -"Downscaling" = "降尺度"; - /* No comment provided by engineer. */ "Drag and drop IPSW file here" = "在此处拖放 IPSW 文件"; /* UTMScriptingConfigImpl */ "Drive description is invalid." = "驱动器描述无效。"; -/* VMRemovableDrivesViewController */ -"Drive Options" = "驱动器选项"; - /* No comment provided by engineer. */ "Drives" = "驱动器"; -/* No comment provided by engineer. */ -"Duplicate this VM along with all its data." = "复制此虚拟机及其所有数据。"; - -/* No comment provided by engineer. */ -"Edit" = "编辑"; - -/* No comment provided by engineer. */ -"Edit…" = "编辑…"; - -/* No comment provided by engineer. */ -"Edit selected VM" = "编辑选中的虚拟机"; - /* VMDrivesSettingsView */ "EFI Variables" = "EFI 变量"; /* VMDisplayWindowController */ "Eject" = "推出"; -/* New VM window. */ -"Empty" = "空"; - /* No comment provided by engineer. */ "Emulate" = "模拟"; -/* No comment provided by engineer. */ -"Emulated Audio Card" = "模拟声卡"; - -/* No comment provided by engineer. */ -"Emulated Display Card" = "模拟显卡"; - -/* No comment provided by engineer. */ -"Emulated Network Card" = "模拟网卡"; - /* UTMQemuConstants */ "Emulated VLAN" = "模拟 VLAN"; -/* No comment provided by engineer. */ -"Emulated Serial Device" = "模拟串行设备"; - -/* No comment provided by engineer. */ -"Enable Balloon Device" = "启用 Balloon 设备"; - -/* No comment provided by engineer. */ -"Enable Entropy Device" = "启用 Entropy 设备"; - /* No comment provided by engineer. */ "Enable Clipboard Sharing" = "启用剪贴板共享"; -/* No comment provided by engineer. */ -"Enable Directory Sharing" = "启用目录共享"; - -/* No comment provided by engineer. */ -"Enable JitStreamer Attach" = "启用 JitStreamer 附加"; - -/* No comment provided by engineer. */ -"Enable Keyboard" = "启用键盘"; - -/* No comment provided by engineer. */ -"Enable Sound" = "启用声音"; - -/* No comment provided by engineer. */ -"Enable Pointer" = "启用指针"; - -/* No comment provided by engineer. */ -"Enable Rosetta on Linux (x86_64 Emulation)" = "在 Linux 上启用 Rosetta (x86_64 模拟)"; - -/* No comment provided by engineer. */ -"Enable hardware OpenGL acceleration" = "启用硬件 OpenGL 加速"; - -/* No comment provided by engineer. */ -"Enabled" = "已启用"; - -/* No comment provided by engineer. */ -"Engine" = "引擎"; - /* VMDisplayWindowController */ "Error" = "错误"; -/* UTMJSONStream */ -"Error parsing JSON." = "解析 JSON 时出错。"; - -/* VMConfigDriveCreateViewController */ -"Error renaming file" = "重命名文件时出错。"; - -/* UTMVirtualMachine */ -"Error trying to restore external drives and shares: %@" = "尝试重置外部和共享驱动器时出错: %@"; - -/* UTMVirtualMachine */ -"Error trying to start shared directory: %@" = "尝试启动共享目录时出错: %@"; - /* No comment provided by engineer. */ "Existing" = "现有的"; -/* No comment provided by engineer. */ -"Export Debug Log" = "导出调试记录"; - /* No comment provided by engineer. */ "Export QEMU Command…" = "导出 QEMU 命令…"; /* Word for decompressing a compressed folder */ "Extracting…" = "正在提取…"; -/* UTMVirtualMachine+Drives */ -"Failed create bookmark." = "无法创建书签。"; - /* UTMQemuVirtualMachine */ "Failed to access data from shortcut." = "无法从快捷方式访问数据。"; @@ -692,30 +364,15 @@ /* UTMSpiceIO */ "Failed to change current directory." = "更改当前目录失败。"; -/* VMConfigInfoView */ -"Failed to check name." = "检查名称失败。"; - /* UTMData */ "Failed to clone VM." = "克隆虚拟机失败。"; -/* UTMSpiceIO */ -"Failed to connect to SPICE server." = "无法连接到 SPICE 服务器。"; - /* UTMData */ "Failed to decode JitStreamer response." = "未能解码 JitStreamer 响应。"; -/* UTMDataExtension */ -"Failed to delete saved state." = "无法删除保存的状态。"; - /* VMWizardState */ "Failed to get latest macOS version from Apple." = "无法从 Apple 获得最新的 macOS 版本。"; -/* VMRemovableDrivesViewController */ -"Failed to get VM object." = "获取虚拟机对象失败。"; - -/* UTMVirtualMachine */ -"Failed to load plist" = "加载 .plist 文件失败。"; - /* UTMQemuConfigurationError */ "Failed to migrate configuration from a previous UTM version." = "无法从以前的 UTM 版本迁移配置。"; @@ -731,40 +388,19 @@ /* UTMQemuVirtualMachine */ "Failed to save VM snapshot. Usually this means at least one device does not support snapshots. %@" = "保存虚拟机快照失败。通常这意味着至少有一台设备不支持快照。%@"; -/* UTMQemuVirtualMachine */ -"Failed to save VM snapshot. Usually this means at least one device does not support snapshots." = "保存虚拟机快照失败。通常这意味着至少有一台设备不支持快照。"; - -/* VMDisplayViewController */ -"Failed to save VM state. Do you have at least one read-write drive attached that supports snapshots?" = "保存虚拟机状态失败。你是否装载了至少一个支持快照的读写驱动器?"; - /* UTMSpiceIO */ "Failed to start SPICE client." = "无法启动 SPICE 客户端。"; /* No comment provided by engineer. */ "Faster, but can only run the native CPU architecture." = "速度更快,但只能运行本机 CPU 架构。"; -/* No comment provided by engineer. */ -"File Imported" = "已导入的文件"; - -/* No comment provided by engineer. */ -"Fit To Screen" = "适合屏幕"; - /* Configuration boot device UTMQemuConstants */ "Floppy" = "软盘"; -/* No comment provided by engineer. */ -"Font" = "字体"; - /* No comment provided by engineer. */ "Font Size" = "字体大小"; -/* No comment provided by engineer. */ -"Force Disable CPU Flags" = "强制禁用 CPU 标志"; - -/* No comment provided by engineer. */ -"Force Enable CPU Flags" = "强制启用 CPU 标志"; - /* VMDisplayWindowController */ "Force kill" = "强制终止"; @@ -774,176 +410,60 @@ /* No comment provided by engineer. */ "Force Multicore" = "强制多核"; -/* No comment provided by engineer. */ -"Force multicore may improve speed of emulation but also might result in unstable and incorrect emulation." = "强制多核可能会提高模拟速度,但也可能导致模拟不稳定和不正确。"; - -/* No comment provided by engineer. */ -"Force PS/2 controller" = "强制 PS/2 控制器"; - /* VMDisplayWindowController */ "Force shut down" = "强制关机"; -/* No comment provided by engineer. */ -"Force slower emulation even when hypervisor is available" = "即使虚拟化可用,也强制进行较慢的模拟"; - -/* No comment provided by engineer. */ -"Full Graphics" = "完整图形"; - /* No comment provided by engineer. */ "GB" = "GB"; /* UTMQemuConstants */ "GDB Debug Stub" = "GDB 调试存根"; -/* No comment provided by engineer. */ -"Generate Windows Installer ISO" = "生成 Windows 安装 ISO"; - /* No comment provided by engineer. */ "Generic" = "通用"; /* No comment provided by engineer. */ "Gesture and Cursor Settings" = "手势和光标设置"; -/* VMWizardView */ -"Go Back" = "返回"; - -/* No comment provided by engineer. */ -"Guest Address" = "客户机地址"; - -/* VMConfigPortForwardingViewController */ -"Guest address (optional)" = "客户机地址 (可选)"; - /* No comment provided by engineer. */ "Guest drivers are required for 3D acceleration." = "需要客户机驱动程序来使用 3D 加速。"; -/* No comment provided by engineer. */ -"Guest Network" = "客户机网络"; - -/* No comment provided by engineer. */ -"Guest Network (IPv6)" = "客户机网络 (IPv6)"; - -/* UTMQemuManager */ -"Guest panic" = "客户机宕机"; - -/* No comment provided by engineer. */ -"Guest Port" = "客户机端口"; - -/* VMConfigPortForwardingViewController */ -"Guest port (required)" = "客户机端口 (必填)"; - /* Configuration boot device */ "Hard Disk" = "硬盘"; /* No comment provided by engineer. */ "Hardware" = "硬件"; -/* No comment provided by engineer. */ -"Hardware OpenGL Acceleration" = "硬件 OpenGL 加速"; - /* No comment provided by engineer. */ "Hello" = "你好"; -/* No comment provided by engineer. */ -"Hide" = "隐藏"; - /* No comment provided by engineer. */ "Hide Unused…" = "隐藏未使用的…"; -/* No comment provided by engineer. */ -"Hide Unused Flags…" = "隐藏未使用的标志…"; - -/* No comment provided by engineer. */ -"Hint: For the best Windows experience, make sure to download and install the latest [SPICE tools and QEMU drivers](https://mac.getutm.app/support/)." = "提示: 为获得最佳的 Windows 体验,请确保下载并安装最新的 [SPICE 工具和 QEMU 驱动程序](https://mac.getutm.app/support/)。"; - -/* VMDisplayViewController */ -"Hint: To show the toolbar again, use a three-finger swipe down on the screen." = "提示: 要再次显示工具栏,请使用三指从屏幕上向下滑动。"; - /* No comment provided by engineer. */ "Hold Control (⌃) for right click" = "按住 Control (⌃) 键以右键单击"; -/* No comment provided by engineer. */ -"Host Address" = "主机地址"; - -/* No comment provided by engineer. */ -"Host Address (IPv6)" = "主机地址 (IPv6)"; - -/* VMConfigPortForwardingViewController */ -"Host address (optional)" = "主机地址 (可选)"; - /* UTMQemuConstants */ "Host Only" = "仅主机"; -/* No comment provided by engineer. */ -"Host Port" = "主机端口"; - -/* VMConfigPortForwardingViewController */ -"Host port (required)" = "主机端口 (必填)"; - -/* No comment provided by engineer. */ -"Hypervisor" = "虚拟化"; - -/* No comment provided by engineer. */ -"I want to…" = "我想要…"; - -/* No comment provided by engineer. */ -"If enabled, the default input devices will be emulated on the USB bus." = "若启用,将在 USB 总线上模拟默认输入设备。"; - -"If enabled, a virtiofs share tagged 'rosetta' will be available on the Linux guest for installing Rosetta for emulating x86_64 on ARM64." = "如果启用,标记为 'rosetta' 的 virtiofs 共享将在 Linux 客户机上可用,用于安装 Rosetta,以在 ARM64 上模拟 x86_64。"; - -/* No comment provided by engineer. */ -"If checked, use local time for RTC which is required for Windows. Otherwise, use UTC clock." = "如果选中,则使用 Windows 所需的本地时间作为 RTC。 否则,使用 UTC 时钟。"; - -/* No comment provided by engineer. */ -"If checked, the CPU flag will be enabled. Otherwise, the default value will be used." = "如果选中,CPU 标志将被启用。否则,将使用默认值。"; - -/* No comment provided by engineer. */ -"If checked, the CPU flag will be disabled. Otherwise, the default value will be used." = "如果选中,CPU 标志将被禁用。否则,将使用默认值。"; - /* No comment provided by engineer. */ "Icon" = "图标"; -/* No comment provided by engineer. */ -"IDE Drive" = "IDE 驱动器"; - /* UTMQemuConstants */ "IDE" = "IDE"; /* UTMScriptingConfigImpl */ "Identifier '%@' cannot be found." = "找不到标识符 '%@'。"; -/* No comment provided by engineer. */ -"If set, boot directly from a raw kernel image and initrd. Otherwise, boot from a supported ISO." = "若设置此选项,将直接从 raw 内核映像和 initrd (虚拟内存盘) 引导。否则从受支持的 ISO 引导。"; - -/* No comment provided by engineer. */ -"If set, use Apple's virtualization engine. Otherwise, use QEMU's virtualization engine." = "若设置此选项,将使用 Apple 虚拟化引擎。否则使用 QEMU 虚拟化引擎。"; - -/* No comment provided by engineer. */ -"IMAGE FILE TYPE" = "映像文件类型"; - /* No comment provided by engineer. */ "Image File Type" = "映像文件类型"; -/* No comment provided by engineer. */ -"Image Type" = "映像类型"; - /* No comment provided by engineer. */ "Import IPSW" = "导入 IPSW"; /* No comment provided by engineer. */ "Import…" = "导入…"; -/* No comment provided by engineer. */ -"Import Drive" = "导入驱动器"; - -/* No comment provided by engineer. */ -"Import VHDX Image" = "导入 VHDX 映像"; - -/* No comment provided by engineer. */ -"Import Virtual Machine…" = "正在导入虚拟机…"; - -/* Save VM overlay */ -"Importing %@…" = "正在导入 %@…"; - /* VMDetailsView */ "Inactive" = "非活跃"; @@ -953,42 +473,18 @@ /* No comment provided by engineer. */ "Information" = "信息"; -/* No comment provided by engineer. */ -"Initial Ramdisk" = "初始 ramdisk"; - -/* No comment provided by engineer. */ -"Input" = "输入"; - -/* No comment provided by engineer. */ -"Interface" = "接口"; - /* VMDisplayWindowController */ "Install Windows Guest Tools…" = "安装 Windows 客户机工具…"; -/* No comment provided by engineer. */ -"Install Windows 10 or higher" = "安装 Windows 10 或更高版本"; - -/* No comment provided by engineer. */ -"Install drivers and SPICE tools" = "安装驱动程序和 SPICE 工具"; - /* VMDisplayAppleWindowController */ "Installation: %@" = "安装: %@"; -/* No comment provided by engineer. */ -"Instantiate PS/2 controller even when USB input is supported. Required for older Windows." = "即使支持 USB 输入也实例化 PS/2 控制器。对于较旧的 Windows,此功能为必须。"; - /* UTMProcess */ "Internal error has occurred." = "发生内部错误。"; /* UTMSpiceIO */ "Internal error trying to connect to SPICE server." = "尝试连接到 SPICE 服务器时出现内部错误。"; -/* UTMVirtualMachine */ -"Internal error starting main loop." = "启动主循环时发生内部错误。"; - -/* UTMVirtualMachine */ -"Internal error starting VM." = "启动虚拟机时发生内部错误。"; - /* VMDisplayMetalWindowController */ "Internal error." = "内部错误。"; @@ -998,42 +494,12 @@ /* VMConfigAppleNetworkingView */ "Invalid MAC address." = "MAC 地址无效。"; -/* VMConfigSystemViewController */ -"Invalid core count." = "无效的核心数目。"; - -/* UTMData */ -"Invalid drive size." = "驱动器大小无效。"; - -/* VMRemovableDrivesViewController */ -"Invalid file selected." = "选择的文件无效。"; - -/* VMConfigSystemViewController */ -"Invalid memory size." = "无效的内存大小。"; - -/* VMConfigDriveCreateViewController */ -"Invalid name" = "无效的名称"; - -/* VMConfigDriveCreateViewController */ -"Invalid size" = "无效的大小"; - -/* VMListViewController */ -"Invalid UTM not imported." = "未导入无效的 UTM。"; - -/* No comment provided by engineer. */ -"Invert Mouse Scroll" = "反转鼠标滚轮"; - -/* No comment provided by engineer. */ -"Invert Scoll" = "反转滚轮"; - /* No comment provided by engineer. */ "Invert scrolling" = "反转滚动"; /* No comment provided by engineer. */ "IP Configuration" = "IP 配置"; -/* No comment provided by engineer. */ -"IPSW Install Image" = "IPSW 安装映像"; - /* No comment provided by engineer. */ "Isolate Guest from Host" = "将客户机与主机隔离"; @@ -1043,36 +509,9 @@ /* UTMQemuConstants */ "Italic, Bold" = "斜体,粗体"; -/* No comment provided by engineer. */ -"JITSTREAMER" = "JitStreamer"; - -/* No comment provided by engineer. */ -"JIT Cache" = "JIT 缓存"; - -/* VMConfigSystemViewController */ -"JIT cache size cannot be larger than 2GB." = "JIT 缓存大小不能大于 2 GB。"; - -/* VMConfigSystemViewController */ -"JIT cache size too small." = "JIT 缓存过小。"; - -/* No comment provided by engineer. */ -"JitStreamer IP Address" = "JitStreamer IP 地址"; - -/* No comment provided by engineer. */ -"Kernel" = "内核"; - -/* No comment provided by engineer. */ -"Keyboard" = "键盘"; - /* No comment provided by engineer. */ "Keep UTM running after last window is closed and all VMs are shut down" = "最后一个窗口关闭且所有虚拟机关机后保持 UTM 运行"; -/* No comment provided by engineer. */ -"Legacy" = "旧式"; - -/* No comment provided by engineer. */ -"Legacy (PS/2) Mode" = "旧式 (PS/2) 模式"; - /* No comment provided by engineer. */ "License" = "许可"; @@ -1086,9 +525,6 @@ UTMQemuConstants */ "Linux Device Tree Binary" = "Linux 设备树二进制文件"; -/* No comment provided by engineer. */ -"Linux initial ramdisk:" = "Linux 初始 ramdisk:"; - /* No comment provided by engineer. */ "Linux initial ramdisk (optional)" = "Linux 初始 ramdisk (可选)"; @@ -1103,9 +539,6 @@ UTMQemuConstants */ "Linux RAM Disk" = "Linux ramdisk"; -/* No comment provided by engineer. */ -"Linux Root FS Image:" = "Linux Root FS 映像:"; - /* No comment provided by engineer. */ "Linux Root FS Image (optional)" = "Linux Root FS 映像 (可选)"; @@ -1115,12 +548,6 @@ /* No comment provided by engineer. */ "Logging" = "日志"; -/* No comment provided by engineer. */ -"MAC Address" = "MAC 地址"; - -/* No comment provided by engineer. */ -"Machine" = "机器"; - /* UTMAppleConfigurationBoot */ "macOS" = "macOS"; @@ -1133,9 +560,6 @@ /* No comment provided by engineer. */ "macOS Settings" = "macOS 设置"; -/* UTMQemuManager */ -"Manager being deallocated, killing pending RPC." = "即将释放管理器,正在终止待处理的 RPC。"; - /* UTMQemuConstants */ "Manual Serial Device (advanced)" = "手动串行设备 (高级)"; @@ -1154,77 +578,29 @@ /* No comment provided by engineer. */ "Minimum size: %@" = "最小文件大小: %@"; -/* No comment provided by engineer. */ -"Mode" = "模式"; - -/* No comment provided by engineer. */ -"Modify settings for this VM." = "修改此虚拟机的设置。"; - /* UTMAppleConfigurationDevices */ "Mouse" = "鼠标"; -/* No comment provided by engineer. */ -"Mouse Wheel" = "鼠标滚轮"; - -/* No comment provided by engineer. */ -"Move…" = "移动…"; - -/* No comment provided by engineer. */ -"Move this VM from internal storage to elsewhere." = "将此虚拟机从内部存储移动到其他地方。"; - /* No comment provided by engineer. */ "Move Down" = "下移"; /* No comment provided by engineer. */ "Move Up" = "上移"; -/* No comment provided by engineer. */ -"Move selected VM" = "移动选定的虚拟机"; - -/* Save VM overlay */ -"Moving %@…" = "正在移动 %@…"; - -/* UTMQemuConstants */ -"MTD (NAND/NOR)" = "MTD (NAND/NOR)"; - -/* No comment provided by engineer. */ -"Name" = "名称"; - -/* VMConfigInfoView */ -"Name is an invalid filename." = "此名称是无效的文件名。"; - /* UTMQemuConstants */ -"Nearest Neighbor" = "近邻取样"; - -/* No comment provided by engineer. */ -"Network" = "网络"; - -/* No comment provided by engineer. */ -"Network Mode" = "网络模式"; - -/* No comment provided by engineer. */ -"New" = "新建"; - -/* No comment provided by engineer. */ -"New…" = "新建…"; - -/* No comment provided by engineer. */ -"New Drive" = "新建驱动器"; +"MTD (NAND/NOR)" = "MTD (NAND/NOR)"; /* No comment provided by engineer. */ -"New from template…" = "从模板新建…"; +"Name" = "名称"; -/* VMConfigPortForwardingViewController */ -"New port forward" = "新建端口转发"; +/* UTMQemuConstants */ +"Nearest Neighbor" = "近邻取样"; /* No comment provided by engineer. */ -"New Virtual Machine" = "新建虚拟机"; +"New" = "新建"; /* No comment provided by engineer. */ -"New VM" = "新建虚拟机"; - -/* Clone VM name prompt message */ -"New VM name" = "新虚拟机名称"; +"New…" = "新建…"; /* No comment provided by engineer. */ "No" = "否"; @@ -1232,15 +608,6 @@ /* UTMScriptingAppDelegate */ "No architecture specified in the configuration." = "未在配置中指定架构。"; -/* UTMQemuManager */ -"No connection for RPC." = "RPC 无连接。"; - -/* VMConfigExistingViewController */ -"No debug log found!" = "未找到调试日志!"; - -/* No comment provided by engineer. */ -"No drives added." = "未添加驱动器。"; - /* VMDisplayWindowController */ "No drives connected." = "未连接驱动器。"; @@ -1250,9 +617,6 @@ /* UTMScriptingAppDelegate */ "No name specified in the configuration." = "未在配置中指定名称。"; -/* UTMData */ -"No log found!" = "未找到日志!"; - /* No comment provided by engineer. */ "No output device is selected for this window." = "没有为此窗口选择输出设备。"; @@ -1265,11 +629,10 @@ /* No comment provided by engineer. */ "No virtual machines found." = "未找到虚拟机。"; -/* VMDisplayQemuDisplayController */ +/* VMToolbarDriveMenuView */ "none" = "无"; -/* UTMAppleConfigurationBoot - UTMLegacyQemuConfiguration +/* UTMLegacyQemuConfiguration UTMQemuConstants */ "None" = "无"; @@ -1279,18 +642,6 @@ /* UTMVirtualMachine */ "Not implemented." = "此功能未实现。"; -/* No comment provided by engineer. */ -"Not running" = "未运行"; - -/* No comment provided by engineer. */ -"Note: Boot order is as listed." = "注意: 启动顺序如列表所示。"; - -/* No comment provided by engineer. */ -"Note: select the path to share from the main screen." = "注意: 从主屏幕选择要共享的路径。"; - -/* No comment provided by engineer. */ -"Note: Shared directories will not be saved and will be reset when UTM quits." = "注意: 共享目录将不会被保存,并将在 UTM 退出时重置。"; - /* No comment provided by engineer. */ "Notes" = "注意"; @@ -1306,12 +657,6 @@ /* UTMScriptingVirtualMachineImpl */ "One or more required parameters are missing or invalid." = "一个或多个必需参数缺失或无效。"; -/* No comment provided by engineer. */ -"Only available if host architecture matches the target. Otherwise, TCG emulation is used." = "仅当主机架构与目标匹配时才可用。否则,将使用 TCG 模拟。"; - -/* No comment provided by engineer. */ -"Open VM Settings" = "打开虚拟机设置"; - /* No comment provided by engineer. */ "Open…" = "打开…"; @@ -1327,15 +672,9 @@ /* No comment provided by engineer. */ "Option (⌥) is Meta key" = "将 Option (⌥) 键作为 Meta 键"; -/* No comment provided by engineer. */ -"Optionally select a directory to make accessible inside the VM. Note that support for shared directories varies by the guest operating system and may require additional guest drivers to be installed. See UTM support pages for more details." = "(可选) 选择要在虚拟机中访问的目录。请注意,对共享目录的支持因客户机操作系统而异,可能需要安装其他客户机驱动程序。有关更多详细信息,请参阅 UTM 支持页面。"; - /* No comment provided by engineer. */ "Other" = "其他"; -/* No comment provided by engineer. */ -"Path" = "路径"; - /* VMDisplayWindowController */ "Pause" = "暂停"; @@ -1363,30 +702,15 @@ /* No comment provided by engineer. */ "Please select a macOS recovery IPSW." = "请选择一个 macOS 恢复 IPSW 文件。"; -/* VMWizardState */ -"Please select a system to emulate." = "请选择一个要模拟的系统。"; - /* No comment provided by engineer. */ "Please select an uncompressed Linux kernel image." = "请选择一个未压缩的 Linux 内核映像。"; /* No comment provided by engineer. */ "Port Forward" = "端口转发"; -/* UTMJSONStream */ -"Port is not connected." = "端口未连接。"; - -/* No comment provided by engineer. */ -"Power Off" = "关机"; - -/* No comment provided by engineer. */ -"Prebuilt" = "预构建"; - /* No comment provided by engineer. */ "Preconfigured" = "预配置"; -/* No comment provided by engineer. */ -"Prefer device to external microphone" = "首选的设备不是外部麦克风"; // Settings - /* A download process is about to begin. */ "Preparing…" = "正在准备…"; @@ -1396,34 +720,18 @@ /* No comment provided by engineer. */ "Prevent system from sleeping when any VM is running" = "当任何虚拟机运行时防止系统处于休眠状态"; -/* No comment provided by engineer. */ -"Protocol" = "协议"; - -/* UTMAppleConfigurationTerminal - UTMQemuConstants */ +/* UTMQemuConstants */ "Pseudo-TTY Device" = "虚拟终端机设备"; -/* No comment provided by engineer. */ -"PS/2 has higher compatibility with older operating systems but does not support custom cursor settings." = "PS/2 与旧的操作系统具有更高的兼容性,但不支持自定义光标设置。"; - -/* No comment provided by engineer. */ -"QEMU" = "QEMU"; - /* No comment provided by engineer. */ "QEMU Arguments" = "QEMU 参数"; -/* UTMQemuVirtualMachine */ -"QEMU exited from an error: %@" = "QEMU 因错误退出: %@"; - /* No comment provided by engineer. */ "QEMU Graphics Acceleration" = "QEMU 图形加速"; /* No comment provided by engineer. */ "QEMU Keyboard" = "QEMU 键盘"; -/* No comment provided by engineer. */ -"QEMU Machine Properties" = "QEMU 虚拟机属性"; - /* UTMQemuConstants */ "QEMU Monitor (HMP)" = "QEMU 监视器 (HMP)"; @@ -1439,30 +747,12 @@ /* VMDisplayWindowController */ "Querying drives status..." = "正在查询驱动器状态…"; -/* VMDisplayWindowController */ -"Querying drives status…" = "正在查询驱动器状态…"; - /* VMQemuDisplayMetalWindowController */ "Querying USB devices..." = "正在查询 USB 设备状态…"; -/* VMQemuDisplayMetalWindowController */ -"Querying USB devices…" = "正在查询 USB 设备状态…"; - -/* No comment provided by engineer. */ -"Quit" = "退出"; - /* VMQemuDisplayMetalWindowController */ "Quitting UTM will kill all running VMs." = "退出 UTM 将终止所有正在运行的虚拟机。"; -/* No comment provided by engineer. */ -"RAM" = "内存"; - -/* No comment provided by engineer. */ -"Ramdisk (optional)" = "Ramdisk (可选)"; - -/* No comment provided by engineer. */ -"Random" = "随机"; - /* No comment provided by engineer. */ "Raw Image" = "RAW 映像"; @@ -1472,12 +762,6 @@ /* No comment provided by engineer. */ "Reclaim" = "回收"; -/* No comment provided by engineer. */ -"Reclaim Space" = "回收空间"; - -/* No comment provided by engineer. */ -"Reclaim disk space by re-converting the disk image." = "通过重新转换磁盘映像来回收磁盘空间。"; - /* UTMQemuConstants */ "Regular" = "常规"; @@ -1496,42 +780,21 @@ /* VMDisplayWindowController */ "Request power down" = "请求关闭电源"; -/* No comment provided by engineer. */ -"Requires SPICE guest agent tools to be installed." = "需要安装 SPICE 客户机代理工具。"; - -/* No comment provided by engineer. */ -"Requires SPICE guest agent tools to be installed. Retina Mode is recommended only if the guest OS supports HiDPI." = "需要安装 SPICE 客户机代理工具。仅当客户操作系统支持 HiDPI 时,才建议使用 Retina 模式。"; - -/* No comment provided by engineer. */ -"Requires SPICE WebDAV service to be installed." = "需要安装 SPICE WebDAV 服务。"; - /* No comment provided by engineer. */ "Reset" = "重置"; /* No comment provided by engineer. */ "Resize" = "重新调整"; -/* No comment provided by engineer. */ -"Resize Console Command" = "重新调整控制台命令"; - /* No comment provided by engineer. */ "Resize display to screen size and orientation automatically" = "自动将显示调整为屏幕大小和方向"; -/* No comment provided by engineer. */ -"Resize display to screen size automatically" = "自动将显示调整为屏幕大小"; - /* No comment provided by engineer. */ "Resize display to window size automatically" = "自动将显示调整为窗口大小"; /* No comment provided by engineer. */ "Resizing is experimental and could result in data loss. You are strongly encouraged to back-up this VM before proceeding. Would you like to resize to %@ GiB?" = "调整驱动器大小是实验性功能,可能导致数据丢失。在继续操作之前,强烈建议你备份此虚拟机。要将大小调整为 %@ GB 吗?"; -/* No comment provided by engineer. */ -"Resolution" = "分辨率"; - -/* No comment provided by engineer. */ -"Restart" = "重新启动"; - /* VMData */ "Restoring" = "正在恢复"; @@ -1541,39 +804,9 @@ /* No comment provided by engineer. */ "Retina Mode" = "Retina 模式"; -/* No comment provided by engineer. */ -"Reveal where the VM is stored." = "显示虚拟机的存储位置。"; - /* UTMAppleConfiguration */ "Rosetta is not supported on the current host machine." = "当前主机不支持 Rosetta。"; -/* No comment provided by engineer. */ -"Root Image" = "根映像"; - -/* No comment provided by engineer. */ -"RNG Device" = "RNG 设备"; - -/* No comment provided by engineer. */ -"Run" = "运行"; - -/* No comment provided by engineer. */ -"Run without saving changes" = "运行而不保存更改"; - -/* No comment provided by engineer. */ -"Run Recovery" = "运行恢复模式"; - -/* No comment provided by engineer. */ -"Run selected VM" = "运行选择的虚拟机"; - -/* No comment provided by engineer. */ -"Run the VM in the foreground." = "在前台运行虚拟机。"; - -/* No comment provided by engineer. */ -"Run the VM in the foreground, without saving data changes to disk." = "在前台运行虚拟机而无需将数据更改保存到磁盘。"; - -/* No comment provided by engineer. */ -"Running" = "正在运行"; - /* No comment provided by engineer. */ "Running low on memory! UTM might soon be killed by iOS. You can prevent this by decreasing the amount of memory and/or JIT cache assigned to this VM" = "运行内存不足!UTM 可能很快就会被 iOS 终止。你可以通过减少分配给此虚拟机的内存和 (或) JIT 缓存来防止这种情况。"; @@ -1583,15 +816,9 @@ /* VMData */ "Saving" = "正在保存"; -/* Save VM overlay */ -"Saving %@…" = "正在保存 %@…"; - /* No comment provided by engineer. */ "Scaling" = "粗化"; -/* No comment provided by engineer. */ -"Selected:" = "已选择:"; - /* UTMQemuConstants */ "SCSI" = "SCSI"; @@ -1623,40 +850,10 @@ /* VMDisplayWindowController */ "Sends power down request to the guest. This simulates pressing the power button on a PC." = "向客户机发送关闭电源请求。此操作模拟了按住 PC 上的电源按钮。"; -/* No comment provided by engineer. */ -"Serial" = "串行端口"; - /* VMDisplayAppleWindowController VMDisplayQemuDisplayController */ "Serial %lld" = "串行端口 %lld"; -/* No comment provided by engineer. */ -"Server Address" = "服务器地址"; - -/* No comment provided by engineer. */ -"Set to 0 for default which is 1/4 of the allocated Memory size. This is in addition to the host memory!" = "设置默认值为 0,即分配内存大小的 1/4。这是对于主机内存的补充!"; - -/* No comment provided by engineer. */ -"Set to 0 to use maximum supported CPUs. Force multicore might result in incorrect emulation." = "设置为 0 以使用最大支持的 CPU。强制多核可能会导致模拟不正确。"; - -/* No comment provided by engineer. */ -"Settings" = "设置"; - -/* Share context menu */ -"Share" = "共享"; - -/* Share context menu */ -"Share…" = "共享…"; - -/* No comment provided by engineer. */ -"Share a copy of this VM and all its data." = "共享此虚拟机及其所有数据的副本。"; - -/* No comment provided by engineer. */ -"Share Directory" = "共享目录"; - -/* No comment provided by engineer. */ -"Share is read only" = "共享设为只读"; - /* No comment provided by engineer. */ "Share USB devices from host" = "从主机共享 USB 设备"; @@ -1666,19 +863,9 @@ /* No comment provided by engineer. */ "Shared Directory" = "共享目录"; -/* UTMAppleConfigurationNetwork - UTMQemuConstants */ +/* UTMQemuConstants */ "Shared Network" = "共享网络"; -/* VMConfigSharingViewController */ -"Shared path has moved. Please re-choose." = "共享路径已被移动。请重新选择。"; - -/* VMConfigSharingViewController */ -"Shared path is no longer valid. Please re-choose." = "共享路径已失效。请重新选择。"; - -/* No comment provided by engineer. */ -"Share selected VM" = "共享选择的虚拟机"; - /* No comment provided by engineer. */ "Sharing" = "共享"; @@ -1691,96 +878,45 @@ /* No comment provided by engineer. */ "Show All…" = "显示全部…"; -/* No comment provided by engineer. */ -"Show All Flags…" = "显示所有标志…"; - /* No comment provided by engineer. */ "Show dock icon" = "显示程序坞图标"; -/* No comment provided by engineer. */ -"Show in Finder" = "在访达中显示"; - /* No comment provided by engineer. */ "Show menu bar icon" = "显示菜单栏图标"; -/* No comment provided by engineer. */ -"Should be off for older operating systems such as Windows 7 or lower." = "对于较旧的操作系统(例如 Windows 7 或更低版本)应关闭此项。"; - -/* No comment provided by engineer. */ -"Should be on always unless the guest cannot boot because of this." = "除非客户机因此无法启动,否则应始终打开此选项。"; - /* No comment provided by engineer. */ "Size" = "大小"; -/* No comment provided by engineer. */ -"Skip Boot Image" = "跳过启动映像"; - -/* New VM window. */ -"Skip ISO boot" = "跳过 ISO 启动"; - -/* No comment provided by engineer. */ -"Skip ISO boot (advanced)" = "跳过 ISO 启动 (高级)"; - /* No comment provided by engineer. */ "Slower, but can run other CPU architectures." = "速度较慢,但可以运行其他 CPU 架构。"; /* UTMSWTPM */ "Socket not specified." = "未指定套接字。"; -/* No comment provided by engineer. */ -"Sound" = "声音"; - -/* New VM window. */ -"Some older systems do not support UEFI boot, such as Windows 7 and below." = "某些较旧的系统不支持 UEFI 启动,例如 Windows 7 及更低版本。"; - /* No comment provided by engineer. */ "Specify the size of the drive where data will be stored into." = "指定将在其中存储数据的驱动器的大小。"; /* UTMQemuConstants */ "SPICE WebDAV" = "SPICE WebDAV"; -/* No comment provided by engineer. */ -"SPICE WebDAV (Legacy)" = "SPICE WebDAV (旧版)"; - /* No comment provided by engineer. */ "SPICE with GStreamer (Input & Output)" = "带有 GStreamer 的 SPICE (输入与输出)"; -/* No comment provided by engineer. */ -"Start" = "启动"; - /* VMData */ "Started" = "已启动"; /* VMData */ "Starting" = "正在启动"; -/* No comment provided by engineer. */ -"Status" = "状态"; - /* No comment provided by engineer. */ "Stop" = "停止"; -/* No comment provided by engineer. */ -"Stop the running VM." = "停止正在运行的虚拟机。"; - -/* No comment provided by engineer. */ -"Stop selected VM" = "停止选定的虚拟机。"; - -/* No comment provided by engineer. */ -"Stop…" = "停止…"; - /* VMData */ "Stopped" = "已停止"; /* VMData */ "Stopping" = "正在停止"; -/* No comment provided by engineer. */ -"Storage" = "存储"; - -/* No comment provided by engineer. */ -"stty cols $COLS rows $ROWS\n" = "stty 第 $COLS 列,第 $ROWS 行\n"; - /* No comment provided by engineer. */ "Style" = "样式"; @@ -1790,13 +926,13 @@ /* Welcome view */ "Support" = "支持"; -/* VMDisplayQemuWindowController */ +/* UTMQemuVirtualMachine */ "Suspend is not supported for virtualization." = "虚拟化不支持挂起。"; -/* VMDisplayQemuWindowController */ +/* UTMQemuVirtualMachine */ "Suspend is not supported when an emulated NVMe device is active." = "当模拟的 NVMe 设备处于活动状态时不支持挂起。"; -/* VMDisplayQemuWindowController */ +/* UTMQemuVirtualMachine */ "Suspend is not supported when GPU acceleration is enabled." = "启用 GPU 加速时不支持挂起。"; /* VMData */ @@ -1805,24 +941,15 @@ /* UTMSWTPM */ "SW TPM failed to start. %@" = "SW TPM 无法启动。%@"; -/* No comment provided by engineer. */ -"Status" = "状态"; - /* No comment provided by engineer. */ "System" = "系统"; -/* No comment provided by engineer. */ -"Target" = "目标"; - /* UTMQemuConstants */ "TCP" = "TCP"; /* UTMQemuConstants */ "TCP Client Connection" = "TCP 客户端连接"; -/* VMConfigPortForwardingViewController */ -"TCP Forward" = "TCP 转发"; - /* UTMQemuConstants */ "TCP Server Connection" = "TCP 服务器连接"; @@ -1832,27 +959,12 @@ /* No comment provided by engineer. */ "Test" = "测试"; -/* No comment provided by engineer. */ -"Text Color" = "字体颜色"; - -/* VMDisplayWindowController */ -"Tells the VM process to shut down with risk of data corruption. This simulates holding down the power button on a PC." = "通知虚拟机进程关闭,该过程存在数据损坏的风险。此操作模拟了按住 PC 上的电源按钮。"; - -/* SizeTextField */ -"The amount of storage to allocate for this image. Ignored if importing an image. If this is a raw image, then an empty file of this size will be stored with the VM. Otherwise, the disk image will dynamically expand up to this size." = "为该映像分配的存储量。如果已导入映像,则忽略此项;如果此映像为原始映像,则该大小的空文件将与虚拟机一起存储;否则,磁盘映像将动态扩展至此大小。"; - -/* SizeTextField */ -"The amount of storage to allocate for this image. An empty file of this size will be stored with the VM." = "为该映像分配的存储量。该大小的空文件将与虚拟机一起存储。"; - /* UTMConfiguration */ "The backend for this configuration is not supported." = "不支持此配置的后端。"; /* UTMConfiguration */ "The drive '%@' already exists and cannot be created." = "驱动器 '%@' 已存在,无法创建。"; -/* No comment provided by engineer. */ -"The First Tab" = "第一个选项卡"; - /* UTMDownloadSupportToolsTaskError */ "The guest support tools have already been mounted." = "客户机支持工具已在挂载。"; @@ -1868,18 +980,12 @@ /* UTMScriptingVirtualMachineImpl */ "The QEMU guest agent is not running or not installed on the guest." = "QEMU 客户机代理没有运行或未安装在客户机上。"; -/* No comment provided by engineer. */ -"The Last Tab" = "最后一个选项卡"; - /* No comment provided by engineer. */ "The selected architecture is unsupported in this version of UTM." = "此版本的 UTM 不支持所选架构。"; /* VMWizardState */ "The selected boot image contains the word '%@' but the guest architecture is '%@'. Please ensure you have selected an image that is compatible with '%@'." = "所选的引导映像名称包含 '%@',但客户机的架构为 %@。请确保你选择了与 '%@' 兼容的映像。"; -/* VMConfigSystemViewController */ -"The total memory usage is close to your device's limit. iOS will kill the VM if it consumes too much memory." = "总内存使用量接近设备的限制。如果消耗过多内存,iOS 将终止虚拟机。"; - /* No comment provided by engineer. */ "The target does not support hardware emulated serial connections." = "此目标系统不支持硬件模拟串行连接。"; @@ -1892,18 +998,9 @@ /* UTMScriptingVirtualMachineImpl */ "The virtual machine must be stopped before this operation can be performed." = "在执行此操作之前,必须停止虚拟机。"; -/* No comment provided by engineer. */ -"Theme" = "主题"; - /* Error shown when importing a ZIP file from web that doesn't contain a UTM Virtual Machine. */ "There is no UTM file in the downloaded ZIP archive." = "下载的 ZIP 归档中无 UTM 文件。"; -/* No comment provided by engineer. */ -"These are advanced settings affecting QEMU which should be kept default unless you are running into issues." = "这些是影响 QEMU 的高级设置,除非你遇到问题,否则应保持默认值。"; - -/* No comment provided by engineer. */ -"These settings are unavailable in console display mode." = "这些设置在控制台显示模式下不可用。"; - /* No comment provided by engineer. */ "This audio card is not supported." = "此声卡不受支持。"; @@ -1931,9 +1028,6 @@ /* VMConfigAppleSharingView */ "This directory is already being shared." = "此目录已被共享。"; -/* No comment provided by engineer. */ -"This is appended to the -machine argument." = "此内容附在 -machine 参数后。"; - /* UTMAppleConfiguration */ "This is not a valid Apple Virtualization configuration." = "这不是有效的 Apple 虚拟化配置。"; @@ -1952,27 +1046,12 @@ /* UTMAppleConfiguration */ "This virtual machine contains an invalid hardware model. The configuration may be corrupted or is outdated." = "此虚拟机包含无效的硬件型号,其配置可能已损坏或过时。"; -/* No comment provided by engineer. */ -"This virtual machine has been deleted." = "此虚拟机已被删除。"; - /* No comment provided by engineer. */ "This virtual machine has been removed." = "此虚拟机已被移除。"; -/* No comment provided by engineer. */ -"This virtual machine must be re-added to UTM by opening it with Finder. You can find it at the path: %@" = "此虚拟机必须通过访达打开以将其重新添加到 UTM。你可以在以下路径中找到它: %@"; - -/* UTMQemuSystem */ -"This version of macOS does not support audio in console mode. Please change the VM configuration or upgrade macOS." = "此版本的 macOS 不支持控制台模式下的音频。请更改虚拟机配置或升级 macOS。"; - -/* UTMQemuSystem */ -"This version of macOS does not support GPU acceleration. Please change the VM configuration or upgrade macOS." = "此版本的 macOS 不支持 GPU 加速。请更改虚拟机配置或升级 macOS。"; - /* VMDisplayWindowController */ "This will reset the VM and any unsaved state will be lost." = "这将重置虚拟机,任何未保存的状态都将丢失。"; -/* UTMQemuManager */ -"Timed out waiting for RPC." = "RPC 等待超时。"; - /* VMDisplayAppleWindowController */ "To access the shared directory, the guest OS must have Virtiofs drivers installed. You can then run `sudo mount -t virtiofs share /path/to/share` to mount to the share path." = "要访问共享目录,客户机操作系统必须安装 VirtioFS 驱动程序。然后,你可以运行命令 `sudo mount -t virtiofs share [要共享的目录]` 来挂载到共享路径。"; @@ -1985,33 +1064,18 @@ /* VMDisplayQemuMetalWindowController */ "To release the mouse cursor, press %@ at the same time." = "要释放鼠标光标,请同时按 %@。"; -/* VMDisplayMetalWindowController */ -"To release the mouse cursor, press ⌃+⌥ (Ctrl+Opt or Ctrl+Alt) at the same time." = "要释放鼠标光标,请同时按下 ⌃ + ⌥ (Control + Option/Alt)。"; - /* UTMAppleConfigurationDevices */ "Trackpad" = "触控板"; -/* No comment provided by engineer. */ -"Tweaks" = "调整"; - -/* No comment provided by engineer. */ -"Type" = "类别"; - /* No comment provided by engineer. */ "u{2022} " = "u{2022}"; /* UTMQemuConstants */ "UDP" = "UDP"; -/* VMConfigPortForwardingViewController */ -"UDP Forward" = "UDP 转发"; - /* No comment provided by engineer. */ "UEFI" = "UEFI"; -/* No comment provided by engineer. */ -"UEFI Boot" = "UEFI 启动"; - /* UTMQemuConfigurationError */ "UEFI is not supported with this architecture." = "此架构不支持 UEFI。"; @@ -2030,18 +1094,9 @@ /* No comment provided by engineer. */ "Uncompressed Linux kernel (required)" = "未压缩的 Linux 内核文件 (必选)"; -/* UTMVirtualMachineExtension */ -"Unknown" = "未知"; - -/* No comment provided by engineer. */ -"Unsupported architecture." = "不支持的架构。"; - /* No comment provided by engineer. */ "Update Interface" = "更新界面"; -/* No comment provided by engineer. */ -"Upscaling" = "粗化"; - /* UTMQemuConstants */ "USB" = "USB"; @@ -2051,70 +1106,36 @@ /* UTMQemuConstants */ "USB 3.0 (XHCI)" = "USB 3.0 (XHCI)"; -/* No comment provided by engineer. */ -"USB 3.0 (XHCI) Support" = "USB 3.0 (XHCI) 支持"; - /* VMQemuDisplayMetalWindowController */ "USB Device" = "USB 设备"; -/* No comment provided by engineer. */ -"USB SHARING" = "USB 共享"; - /* No comment provided by engineer. */ "USB Sharing" = "USB 共享"; -/* No comment provided by engineer. */ -"USB not supported in console display mode." = "在控制台显示模式下不支持 USB。"; - -/* No comment provided by engineer. */ -"USB not supported in this build of UTM." = "此版本的 UTM 不支持 USB。"; - /* No comment provided by engineer. */ "USB sharing not supported in this build of UTM." = "此版本的 UTM 不支持 USB 共享。"; -/* No comment provided by engineer. */ -"USB Support" = "USB 支持"; - -/* No comment provided by engineer. */ -"Use Apple Virtualization" = "使用 Apple 虚拟化"; - /* No comment provided by engineer. */ "Use Command+Option (⌘+⌥) for input capture/release" = "使用 Command + Option (⌘ + ⌥) 捕获/释放输入"; -/* No comment provided by engineer. */ -"Use Hypervisor" = "使用虚拟化"; - -/* No comment provided by engineer. */ -"Use local time for base clock" = "使用本地时间作为基本时钟"; - -/* No comment provided by engineer. */ -"Use only performance cores by default" = "默认情况下仅使用性能核心"; - -/* No comment provided by engineer. */ -"Use Virtualization" = "使用虚拟化"; - /* Welcome view */ "User Guide" = "用户指南"; -/* UTMScriptingAppDelegate */ +/* UTMScriptingAppDelegate + UTMScriptingUSBDeviceImpl */ "UTM is not ready to accept commands." = "UTM 未准备好接受命令。"; /* No comment provided by engineer. */ "Version" = "版本号"; -/* No comment provided by engineer. */ -"VGA Device RAM (MB)" = "VGA 设备内存 (MB)"; - /* UTMQemuConstants */ "VirtFS" = "VirtFS"; -"VirtFS (Recommended)" = "VirtFS (推荐)"; /* UTMQemuConstants */ "VirtIO" = "VirtIO"; /* UTMConfigurationInfo - UTMData - VMMetalView */ + UTMData */ "Virtual Machine" = "虚拟机"; /* No comment provided by engineer. */ @@ -2123,9 +1144,6 @@ /* VMData */ "Virtual machine not loaded." = "未加载虚拟机。"; -/* New VM window. */ -"Virtualization Engine" = "虚拟化引擎"; - /* No comment provided by engineer. */ "Virtualization is not supported on your system." = "你的系统不支持虚拟化。"; @@ -2135,45 +1153,18 @@ /* No comment provided by engineer. */ "VM display size is fixed" = "虚拟机显示大小为固定"; -/* UTMVirtualMachine+Sharing */ -"VM frontend does not support shared directories." = "虚拟机前端不支持共享目录。"; - -/* No comment provided by engineer. */ -"Wait for Connection" = "等待连接"; - -/* No comment provided by engineer. */ -"Waiting for VM to connect to display…" = "等待虚拟机连接到显示…"; - -/* VMConfigSystemViewController */ -"Warning: iOS will kill apps that use more than 80% of the device's total memory." = "警告: iOS 将终止使用超过设备总内存的 80% 的应用。"; - -/* No comment provided by engineer. */ -"WebDAV requires installing SPICE daemon. VirtFS requires installing device drivers." = "WebDAV 需要安装 SPICE 守护程序。VirtFS 需要安装设备驱动程序。"; - /* No comment provided by engineer. */ "Welcome to UTM" = "欢迎使用 UTM"; -/* Startup message */ -"Welcome to UTM! Due to a bug in iOS, if you force kill this app, the system will be unstable and you cannot launch UTM again until you reboot. The recommended way to terminate this app is the button on the top left." = "欢迎使用 UTM!由于 iOS 中有一个 bug,使得若强行终止此应用,系统将变得不稳定,必须重启系统才能再次打开 UTM。建议通过左上角的按钮来终止此应用。"; - /* No comment provided by engineer. */ "What's New" = "新版特性"; -/* No comment provided by engineer. */ -"Windows" = "Windows"; - /* UTMDownloadSupportToolsTask */ "Windows Guest Support Tools" = "Windows 客户机支持工具"; -/* VMDisplayMetalWindowController */ -"Would you like to connect '(usbDevice.name ?? usbDevice.description)' to this virtual machine?" = "要将 '(usbDevice.name ?? usbDevice.description)' 连接到此虚拟机吗?"; - /* VMQemuDisplayMetalWindowController */ "Would you like to connect '%@' to this virtual machine?" = "要将 '%@' 连接到此虚拟机吗?"; -/* VMConfigDrivePickerViewController */ -"Would you like to import an existing disk image or create a new one?" = "要导入现有磁盘映像还是创建新磁盘映像?"; - /* VMDisplayAppleWindowController */ "Would you like to install macOS? If an existing operating system is already installed on the primary drive of this VM, then it will be erased." = "要安装 macOS 吗?若现有的操作系统已安装在该虚拟机的主驱动器上,则它将被抹掉。"; @@ -2186,23 +1177,6 @@ /* No comment provided by engineer. */ "Yes" = "是"; -/* No comment provided by engineer. */ -"You can download an existing VM configuration for popular operating systems from the UTM gallery or start from scratch." = "你可以从 UTM 库下载常用操作系统的现有虚拟机配置,也可以从头开始。"; - -/* UTMData - VMConfigDrivePickerViewController */ -"You cannot import a .utm package as a drive. Did you mean to open the package with UTM?" = "不能将 .utm 包作为驱动器导入。是否想用 UTM 打开此包?"; - -/* UTMData - VMConfigDrivePickerViewController */ -"You cannot import a directory as a drive." = "不能将目录作为驱动器导入。"; - -/* VMConfigDriveDetailsViewController */ -"You must select a disk image." = "必须选择一个磁盘映像。"; - -/* VMDisplayViewController */ -"You must terminate the running VM before you can import a new VM." = "必须先终止正在运行的虚拟机,然后才能导入新虚拟机。"; - /* VMConfigSystemView */ "Your device has %llu MB of memory and the estimated usage is %llu MB." = "你的设备有 %llu MB 的内存,估计使用量为 %llu MB。"; @@ -2213,5 +1187,3 @@ /* ContentView */ "Your version of iOS does not support running VMs while unmodified. You must either run UTM while jailbroken or with a remote debugger attached. See https://getutm.app/install/ for more details." = "你的 iOS 版本不支持在未经修改的情况下运行虚拟机,必须在越狱时运行 UTM,或者连接远程调试器。有关更多详细信息,请参阅 https://getutm.app/install/。"; -/* No comment provided by engineer. */ -"Zoom" = "缩放"; diff --git a/QEMUHelper/zh-Hans.lproj/Localizable.strings b/QEMUHelper/zh-Hans.lproj/Localizable.strings index ac9c99372..eb05904d2 100644 --- a/QEMUHelper/zh-Hans.lproj/Localizable.strings +++ b/QEMUHelper/zh-Hans.lproj/Localizable.strings @@ -1,9 +1,3 @@ /* QEMUHelper */ "Cannot find QEMU support libraries." = "找不到 QEMU 支持库。"; -/* QEMUHelper */ -"Error starting QEMU." = "启动 QEMU 时出错。"; - -/* QEMUHelper */ -"QEMU exited unexpectedly." = "QEMU 意外退出。"; - diff --git a/UTM.xcodeproj/project.pbxproj b/UTM.xcodeproj/project.pbxproj index f8d6ec622..08d1ab05b 100644 --- a/UTM.xcodeproj/project.pbxproj +++ b/UTM.xcodeproj/project.pbxproj @@ -1698,6 +1698,8 @@ F6DA2DAB2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/Localizable.strings"; sourceTree = ""; }; F6DA2DAC2AAFED5F0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/InfoPlist.strings"; sourceTree = ""; }; F6DA2DAD2AAFEDAC0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; + F6DA2DAE2AAFEE060070DCD1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/VMDisplayMetalViewInputAccessory.strings"; sourceTree = ""; }; + F6DA2DAF2AAFEE060070DCD1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/VMDisplayWindow.strings"; sourceTree = ""; }; FF0307542A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; FF0307562A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.stringsdict"; sourceTree = ""; }; FF0307572A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/VMDisplayMetalViewInputAccessory.strings"; sourceTree = ""; }; @@ -3437,6 +3439,7 @@ CEB54C12293009C5000D2AA9 /* pl */, FF0307582A84E3B70049979B /* zh-Hant */, F6DA2DA62AAFED5F0070DCD1 /* zh-HK */, + F6DA2DAF2AAFEE060070DCD1 /* zh-Hans */, ); name = VMDisplayWindow.xib; sourceTree = ""; @@ -3453,6 +3456,7 @@ 84E3A8EB293349370024A740 /* fr */, FF0307572A84E3B70049979B /* zh-Hant */, F6DA2DA52AAFED5F0070DCD1 /* zh-HK */, + F6DA2DAE2AAFEE060070DCD1 /* zh-Hans */, ); name = VMDisplayMetalViewInputAccessory.xib; sourceTree = ""; From e9c056367dd63e1b86a9611e8df79728429ba05f Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Tue, 12 Sep 2023 09:04:13 +0800 Subject: [PATCH 4/8] Add more translations for zh-hans --- Platform/iOS/zh-Hans.lproj/InfoPlist.strings | 3 ++ Platform/zh-Hans.lproj/Localizable.strings | 30 +++++++++++++++++++ .../zh-Hans.lproj/Localizable.stringsdict | 20 +++++++++++++ UTM.xcodeproj/project.pbxproj | 4 +++ zh-Hans.lproj/QEMULauncher-InfoPlist.strings | 3 ++ 5 files changed, 60 insertions(+) create mode 100644 Platform/zh-Hans.lproj/Localizable.stringsdict create mode 100644 zh-Hans.lproj/QEMULauncher-InfoPlist.strings diff --git a/Platform/iOS/zh-Hans.lproj/InfoPlist.strings b/Platform/iOS/zh-Hans.lproj/InfoPlist.strings index 568426f08..831cdb052 100644 --- a/Platform/iOS/zh-Hans.lproj/InfoPlist.strings +++ b/Platform/iOS/zh-Hans.lproj/InfoPlist.strings @@ -1,3 +1,6 @@ +/* Bundle name */ +"CFBundleName" = "UTM SE"; + /* Privacy - Local Network Usage Description */ "NSLocalNetworkUsageDescription" = "虚拟机可以访问本地网络。UTM 还使用本地网络与 AltServer 通信。"; diff --git a/Platform/zh-Hans.lproj/Localizable.strings b/Platform/zh-Hans.lproj/Localizable.strings index 7f7bddf99..85c2e7145 100644 --- a/Platform/zh-Hans.lproj/Localizable.strings +++ b/Platform/zh-Hans.lproj/Localizable.strings @@ -184,6 +184,9 @@ /* VMMetalView */ "Capture Input" = "捕获输入"; +/* No comment provided by engineer. */ +"Capture input automatically when entering full screen" = "进入全屏时自动捕获输入"; + /* VMDisplayQemuMetalWindowController */ "Captured mouse" = "鼠标已捕获"; @@ -292,6 +295,9 @@ /* No comment provided by engineer. */ "Do not show prompt when USB device is plugged in" = "插入 USB 设备时不显示提示"; +/* No comment provided by engineer. */ +"Do you want to copy this VM and all its data to internal storage?" = "要将此虚拟机及其所有数据拷贝到内部存储吗?"; + /* No comment provided by engineer. */ "Do you want to delete this VM and all its data?" = "要删除此虚拟机及其所有数据吗?"; @@ -385,6 +391,9 @@ /* UTMDownloadVMTask */ "Failed to parse the downloaded VM." = "解析下载的虚拟机失败。"; +/* VMDisplayWindowController */ +"Failed to save suspend state" = "无法保存挂起状态。"; + /* UTMQemuVirtualMachine */ "Failed to save VM snapshot. Usually this means at least one device does not support snapshots. %@" = "保存虚拟机快照失败。通常这意味着至少有一台设备不支持快照。%@"; @@ -581,6 +590,9 @@ /* UTMAppleConfigurationDevices */ "Mouse" = "鼠标"; +/* No comment provided by engineer. */ +"Mouse/Keyboard" = "鼠标/键盘"; + /* No comment provided by engineer. */ "Move Down" = "下移"; @@ -935,6 +947,9 @@ /* UTMQemuVirtualMachine */ "Suspend is not supported when GPU acceleration is enabled." = "启用 GPU 加速时不支持挂起。"; +/* UTMQemuVirtualMachine */ +"Suspend state cannot be saved when running in disposible mode." = "在一次性模式下运行时,无法保存挂起状态。"; + /* VMData */ "Suspended" = "已挂起"; @@ -959,9 +974,21 @@ /* No comment provided by engineer. */ "Test" = "测试"; +/* No comment provided by engineer. */ +"Test 1" = "测试 1"; + +/* No comment provided by engineer. */ +"Test 2" = "测试 2"; + /* UTMConfiguration */ "The backend for this configuration is not supported." = "不支持此配置的后端。"; +/* UTMScriptingUSBDeviceImpl */ +"The device cannot be found." = "找不到该设备。"; + +/* UTMScriptingUSBDeviceImpl */ +"The device is not currently connected." = "设备目前尚未连接。"; + /* UTMConfiguration */ "The drive '%@' already exists and cannot be created." = "驱动器 '%@' 已存在,无法创建。"; @@ -1153,6 +1180,9 @@ /* No comment provided by engineer. */ "VM display size is fixed" = "虚拟机显示大小为固定"; +/* No comment provided by engineer. */ +"Waiting for VM to connect to display..." = "等待虚拟机连接到显示..."; + /* No comment provided by engineer. */ "Welcome to UTM" = "欢迎使用 UTM"; diff --git a/Platform/zh-Hans.lproj/Localizable.stringsdict b/Platform/zh-Hans.lproj/Localizable.stringsdict new file mode 100644 index 000000000..9d1a6ebe0 --- /dev/null +++ b/Platform/zh-Hans.lproj/Localizable.stringsdict @@ -0,0 +1,20 @@ + + + + + %lld Cores + + NSStringLocalizedFormatKey + %#@cores@ + cores + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + lld + other + %lld 核心 + + + + diff --git a/UTM.xcodeproj/project.pbxproj b/UTM.xcodeproj/project.pbxproj index 08d1ab05b..ebef907f1 100644 --- a/UTM.xcodeproj/project.pbxproj +++ b/UTM.xcodeproj/project.pbxproj @@ -1700,6 +1700,8 @@ F6DA2DAD2AAFEDAC0070DCD1 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; F6DA2DAE2AAFEE060070DCD1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/VMDisplayMetalViewInputAccessory.strings"; sourceTree = ""; }; F6DA2DAF2AAFEE060070DCD1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/VMDisplayWindow.strings"; sourceTree = ""; }; + F6DA2DB02AAFF0640070DCD1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; + F6DA2DB12AAFF0640070DCD1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.stringsdict"; sourceTree = ""; }; FF0307542A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/QEMULauncher-InfoPlist.strings"; sourceTree = ""; }; FF0307562A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.stringsdict"; sourceTree = ""; }; FF0307572A84E3B70049979B /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/VMDisplayMetalViewInputAccessory.strings"; sourceTree = ""; }; @@ -3472,6 +3474,7 @@ CEB54C17293009C8000D2AA9 /* pl */, FF0307562A84E3B70049979B /* zh-Hant */, F6DA2DAA2AAFED5F0070DCD1 /* zh-HK */, + F6DA2DB12AAFF0640070DCD1 /* zh-Hans */, ); name = Localizable.stringsdict; sourceTree = ""; @@ -3481,6 +3484,7 @@ children = ( FF0307542A84E3B70049979B /* zh-Hant */, F6DA2DAD2AAFEDAC0070DCD1 /* zh-HK */, + F6DA2DB02AAFF0640070DCD1 /* zh-Hans */, ); name = "QEMULauncher-InfoPlist.strings"; sourceTree = ""; diff --git a/zh-Hans.lproj/QEMULauncher-InfoPlist.strings b/zh-Hans.lproj/QEMULauncher-InfoPlist.strings new file mode 100644 index 000000000..b0542732d --- /dev/null +++ b/zh-Hans.lproj/QEMULauncher-InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "QEMULauncher"; + From 0cd27a851c795179cae956ae5420e9940c62e568 Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Tue, 12 Sep 2023 09:21:59 +0800 Subject: [PATCH 5/8] Create README.zh-HK.md --- README.zh-HK.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 README.zh-HK.md diff --git a/README.zh-HK.md b/README.zh-HK.md new file mode 100644 index 000000000..ab81de42d --- /dev/null +++ b/README.zh-HK.md @@ -0,0 +1,77 @@ +# UTM +[![Build](https://github.com/utmapp/UTM/workflows/Build/badge.svg?branch=master&event=push)][1] + +> 發明一台可用於計算任何可計算序列的機器是可行的。 +-- 艾倫·圖靈(Alan Turing), 1936 年 + +UTM 是功能完备的系統模擬工具和虛擬电脑主機,適用於 iOS 和 macOS。它以 QEMU 為基礎。簡言之,它允許你在 Mac、iPhone 和 iPad 上執行 Windows、Linux 等。更多訊息請參閱 https://getutm.app/ 和 https://mac.getutm.app/。 + +

+ 「在 +
+ 「在 +

+ +## 特性 + +* 使用 QEMU 進行全作業系統模擬(MMU、設備等) +* 支援逾三十種體系結構 CPU,包括 x86_64、ARM64 和 RISC-V +* 使用 SPICE 與 QXL 的 VGA 圖形模式 +* 文本終端機模式 +* USB 裝置 +* 使用 QEMU TCG 進行基於 JIT 的加速 +* 採用了最新最靚的 API,從零開始設計前端,支援 macOS 11+ 與 iOS 11+ +* 從你的裝置上直接製作、管理和執行虛擬機 + +## macOS 的附加功能 + +* 使用 Hypervisor.framework 與 QEMU 實現硬件加速虛擬化 +* 在 macOS 12+ 上使用 Virtualization.framework 來啓動 macOS 客戶機 + +## UTM SE + +UTM/QEMU 需要動態程式碼生成(JIT)以得到最大性能。iOS 上的 JIT 需要已經越獄(Jailbreak)的裝置(iOS 11.0~14.3 無需越獄,iOS 14.4+ 需要),或者為特定版本的 iOS 找到其他辦法之一(有關更多詳細訊息,請參閱「安裝」)。 + +UTM SE(「較慢版」)使用了「[執行緒解釋器][3]」,其性能優於傳統解釋器,但仍然比 JIT 要慢。這種技術類似於 [iSH][4] 的動態執行。因此,UTM SE 無需越獄或任何 JIT 的變通方法,可以作為常規應用程式側載(Sideload)。 + +為了最佳化大小與構建時間,UTM SE 中只包含以下體系結構:ARM、PPC、RISC-V 和 x86(均包含 32 位和 64 位)。 + +## 安裝 + +iOS 版 UTM(SE):https://getutm.app/install/ + +UTM 同時支援 macOS:https://mac.getutm.app/ + +## 開發 + +### [macOS 版本開發](Documentation/MacDevelopment.md) + +### [iOS 版本開發](Documentation/iOSDevelopment.md) + +## 相關開放原始碼項目 + +* [iSH][4]:模擬用戶模式 Linux 終端機介面,用於在 iOS 上執行 x86 Linux 應用程式 +* [a-shell][5]:為 iOS 原生構建的常用 Unix 指令和實用程式包,可透過終端機介面訪問 + +## 許可證 + +UTM 在 Apache 2.0 的許可證下發佈,但它使用了若干個 GPL 與 LGPL 元件。這其中的大多數元件是動態連接的,但 gstreamer 組件是靜態連接的,部分程式碼來自 QEMU。如果你打算重新分發此應用程式,請謹記這一點。 + +某些图示由 [Freepik](https://www.freepik.com) 從 [www.flaticon.com](https://www.flaticon.com/) 製作。 + +此外,UTM 前端依賴以下 MIT/BSD 許可證的元件: + +* [IQKeyboardManager](https://github.com/hackiftekhar/IQKeyboardManager) +* [SwiftTerm](https://github.com/migueldeicaza/SwiftTerm) +* [ZIP Foundation](https://github.com/weichsel/ZIPFoundation) +* [InAppSettingsKit](https://github.com/futuretap/InAppSettingsKit) + +持續集成托管由 [MacStadium](https://www.macstadium.com/opensource) 提供。 + +[MacStadium logo](https://www.macstadium.com) + + [1]: https://github.com/utmapp/UTM/actions?query=event%3Arelease+workflow%3ABuild + [2]: screen.png + [3]: https://github.com/ktemkin/qemu/blob/with_tcti/tcg/aarch64-tcti/README.md + [4]: https://github.com/ish-app/ish + [5]: https://github.com/holzschu/a-shell From b9d73560d1bc6abd3823c5e12efc6f9aef29b6f4 Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Tue, 12 Sep 2023 09:58:59 +0800 Subject: [PATCH 6/8] Update README.zh-HK.md --- README.zh-HK.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.zh-HK.md b/README.zh-HK.md index ab81de42d..1c4b4f063 100644 --- a/README.zh-HK.md +++ b/README.zh-HK.md @@ -4,7 +4,7 @@ > 發明一台可用於計算任何可計算序列的機器是可行的。 -- 艾倫·圖靈(Alan Turing), 1936 年 -UTM 是功能完备的系統模擬工具和虛擬电脑主機,適用於 iOS 和 macOS。它以 QEMU 為基礎。簡言之,它允許你在 Mac、iPhone 和 iPad 上執行 Windows、Linux 等。更多訊息請參閱 https://getutm.app/ 和 https://mac.getutm.app/。 +UTM 是一個功能完备的系統模擬工具和虛擬电脑主機,適用於 iOS 和 macOS。它以 QEMU 為基礎。簡言之,它允許你在 Mac、iPhone 和 iPad 上執行 Windows、Linux 等。更多訊息請參閱 https://getutm.app/ 與 https://mac.getutm.app/。

「在 @@ -26,19 +26,19 @@ UTM 是功能完备的系統模擬工具和虛擬电脑主機,適用於 iOS ## macOS 的附加功能 * 使用 Hypervisor.framework 與 QEMU 實現硬件加速虛擬化 -* 在 macOS 12+ 上使用 Virtualization.framework 來啓動 macOS 客戶機 +* 在 macOS 12+ 上使用 Virtualization.framework 來啓動 macOS 客戶端 ## UTM SE -UTM/QEMU 需要動態程式碼生成(JIT)以得到最大性能。iOS 上的 JIT 需要已經越獄(Jailbreak)的裝置(iOS 11.0~14.3 無需越獄,iOS 14.4+ 需要),或者為特定版本的 iOS 找到其他辦法之一(有關更多詳細訊息,請參閱「安裝」)。 +UTM/QEMU 需要動態程式碼生成(JIT)以得到最大性能。iOS 上的 JIT 需要已經越獄(Jailbreak)的裝置(iOS 11.0~14.3 無需越獄,iOS 14.4+ 需要),或者為特定版本的 iOS 找到其他變通方法之一(有關更多詳細訊息,請參閱「安裝」)。 -UTM SE(「較慢版」)使用了「[執行緒解釋器][3]」,其性能優於傳統解釋器,但仍然比 JIT 要慢。這種技術類似於 [iSH][4] 的動態執行。因此,UTM SE 無需越獄或任何 JIT 的變通方法,可以作為常規應用程式側載(Sideload)。 +UTM SE(「較慢版」)使用了「[執行緒解釋器][3]」,其性能優於傳統解釋器,但仍然比 JIT 要慢。此種技術類似於 [iSH][4] 的動態執行。因此,UTM SE 無需越獄或任何 JIT 的變通方法,可以作為常規應用程式側載(Sideload)。 -為了最佳化大小與構建時間,UTM SE 中只包含以下體系結構:ARM、PPC、RISC-V 和 x86(均包含 32 位和 64 位)。 +為了最佳化大小與構建時間,UTM SE 中只包含以下的體系結構:ARM、PPC、RISC-V 和 x86(均包含 32 位元和 64 位元)。 ## 安裝 -iOS 版 UTM(SE):https://getutm.app/install/ +iOS 版本 UTM(SE):https://getutm.app/install/ UTM 同時支援 macOS:https://mac.getutm.app/ @@ -50,23 +50,23 @@ UTM 同時支援 macOS:https://mac.getutm.app/ ## 相關開放原始碼項目 -* [iSH][4]:模擬用戶模式 Linux 終端機介面,用於在 iOS 上執行 x86 Linux 應用程式 -* [a-shell][5]:為 iOS 原生構建的常用 Unix 指令和實用程式包,可透過終端機介面訪問 +* [iSH][4]:模擬用戶模式 Linux 終端機介面,可在 iOS 上執行 x86 Linux 應用程式 +* [a-shell][5]:為 iOS 本地構建的常用 Unix 指令和實用程式包,可透過終端機介面訪問 ## 許可證 -UTM 在 Apache 2.0 的許可證下發佈,但它使用了若干個 GPL 與 LGPL 元件。這其中的大多數元件是動態連接的,但 gstreamer 組件是靜態連接的,部分程式碼來自 QEMU。如果你打算重新分發此應用程式,請謹記這一點。 +UTM 於 Apache 2.0 許可證下發佈,但它採用了若干 GPL 與 LGPL 元件。這其中,大多數元件是動態連接的,但 gstreamer 元件是靜態連接的,部分程式碼來自 QEMU。如果你打算重新分發此應用程式,請務必謹記這一點。 某些图示由 [Freepik](https://www.freepik.com) 從 [www.flaticon.com](https://www.flaticon.com/) 製作。 -此外,UTM 前端依賴以下 MIT/BSD 許可證的元件: +此外,UTM 前端依賴於以下 MIT/BSD 許可證的元件: * [IQKeyboardManager](https://github.com/hackiftekhar/IQKeyboardManager) * [SwiftTerm](https://github.com/migueldeicaza/SwiftTerm) * [ZIP Foundation](https://github.com/weichsel/ZIPFoundation) * [InAppSettingsKit](https://github.com/futuretap/InAppSettingsKit) -持續集成托管由 [MacStadium](https://www.macstadium.com/opensource) 提供。 +持續整合託管由 [MacStadium](https://www.macstadium.com/opensource) 提供。 [MacStadium logo](https://www.macstadium.com) From 6c12cfdf6cf6d439a88982d3e6181c718a960760 Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Tue, 12 Sep 2023 10:32:32 +0800 Subject: [PATCH 7/8] Update Localizable.strings --- Platform/zh-HK.lproj/Localizable.strings | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Platform/zh-HK.lproj/Localizable.strings b/Platform/zh-HK.lproj/Localizable.strings index bb68330c2..29f65d128 100644 --- a/Platform/zh-HK.lproj/Localizable.strings +++ b/Platform/zh-HK.lproj/Localizable.strings @@ -8,7 +8,7 @@ "(new)" = "(新)"; /* VMData */ -"(Unavailable)" = "(無法使用)"; +"(Unavailable)" = "(不可用)"; /* QEMUConstant */ "%@ (%@)" = "%1$@ (%2$@)"; @@ -36,7 +36,7 @@ "%@ Image" = "%@ 映像檔"; /* Format string for remaining time until a download finishes */ -"%@ remaining" = "%@ 可用"; +"%@ remaining" = "剩餘時間 %@"; /* Format string for the 'per second' part of a download speed. */ "%@/s" = "%@/s"; From 01bbb497830cf07333f93ec84ad2ed892bb23fd4 Mon Sep 17 00:00:00 2001 From: Tiffany Fung Date: Fri, 29 Sep 2023 11:52:16 +0800 Subject: [PATCH 8/8] Update InfoPlist.strings --- Platform/iOS/zh-HK.lproj/InfoPlist.strings | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Platform/iOS/zh-HK.lproj/InfoPlist.strings b/Platform/iOS/zh-HK.lproj/InfoPlist.strings index aeaa59371..436340a4d 100644 --- a/Platform/iOS/zh-HK.lproj/InfoPlist.strings +++ b/Platform/iOS/zh-HK.lproj/InfoPlist.strings @@ -2,16 +2,16 @@ "CFBundleName" = "UTM SE"; /* Privacy - Local Network Usage Description */ -"NSLocalNetworkUsageDescription" = "虛擬電腦可以訪問本地網路。UTM 還會使用本地網路與 AltServer 進行通信。"; +"NSLocalNetworkUsageDescription" = "虛擬電腦可以訪問本地網絡。UTM 還會使用本地網絡與 AltServer 進行通信。"; /* Privacy - Location Always and When In Use Usage Description */ -"NSLocationAlwaysAndWhenInUseUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。 位置資料永遠不會離開設備。"; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。位置資料永不會離開設備。"; /* Privacy - Location Always Usage Description */ -"NSLocationAlwaysUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。 位置資料永遠不會離開設備。"; +"NSLocationAlwaysUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。位置資料永不會離開設備。"; /* Privacy - Location When In Use Usage Description */ -"NSLocationWhenInUseUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。 位置資料永遠不會離開設備。"; +"NSLocationWhenInUseUsageDescription" = "UTM 定期請求位置資料,以確保系統保持背景程序處於啟用狀態。位置資料永遠不會離開設備。"; /* Privacy - Microphone Usage Description */ "NSMicrophoneUsageDescription" = "任何虛擬電腦都需要許可才能由咪高風進行錄製。";