【问题标题】:How can I allow users to compile .resources.dll files for my application?如何允许用户为我的应用程序编译 .resources.dll 文件?
【发布时间】: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


    【解决方案1】:

    资源文件在可执行程序集中静态链接(指向)。单独添加文件是行不通的。

    您必须为任何非编译时资源提供动态加载器。

    更好的解决方案是允许将翻译上传、验证并编译到新的程序集中。你释放。

    【讨论】:

      猜你喜欢
      • 2013-02-19
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      相关资源
      最近更新 更多