【发布时间】:2022-10-13 09:26:46
【问题描述】:
我在 Steam 上有一个单人游戏构建的游戏,并希望为模组制作者提供将游戏中的文本翻译成他们的母语并将语言包上传到 Steam 创意工坊的能力。
我已经使用 Visual Studio 设计器将大部分游戏内文本转移到 .resx 文件 (Localization.resx),我可以在 Visual Studio 中自己创建语言包,只需复制它并用文化名称重命名它(例如.Localization.en-US.resx)。 Visual Studio 负责将其编译成 .resources.dll 文件,如果我更改 CurrentUICulture,它就会被加载。
但是,当我尝试在另一台计算机上编译 resx 文件(使用 ResGen.exe 和 al.exe)并将生成的 dll 复制到位(以区域命名的子文件夹:例如 MyGame\en-US)时,什么也没有发生。游戏继续使用默认字符串。这些是我用来编译它的命令:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ResGen.exe" Localization.resx
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\al.exe" /t:lib /embed:Localization.resources /culture:en-US /out:MyGame.resources.dll
我认为附属程序集和资源文件是为此目的而构建的,但我开始认为我误解了这项技术。
【问题讨论】:
标签: c# .net-core localization monogame