【问题标题】:.NET Globalization & Satellite DLL's.NET 全球化和卫星 DLL
【发布时间】:2009-12-12 05:33:38
【问题描述】:
【问题讨论】:
标签:
c#
.net
localization
resources
globalization
【解决方案1】:
找到了一个更简单的解决方案 - 在 app.config 中:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath=".;Lang" />
</assemblyBinding>
</runtime>
</configuration>
然后,您可以将所有这些目录扔到“Lang”子目录中,它开箱即用!编译后的构建后事件也很方便在其中自动复制它们:)
【解决方案3】:
恕我直言,我不会在这里改变任何东西。 .NET 中有一个标准的本地化机制,它基于卫星 dll 和这些子目录。如果您使用本地化工具,例如。 Passolo,它也将完全支持这种结构,仅此而已。
会有很多子目录...那又怎样?其他一切都会相当复杂。
【解决方案4】:
将所有资源文件(即 *.resx)添加到 /Resource 文件夹并创建 ResourceManager 的对象,如下所示
System.Resources.ResourceManager rm = new System.Resources.ResourceManager("ApplicationName.Resources.MyResource", Assembly.GetExecutingAssembly());
这里说对于 lang de-DE,你的 resx 文件将被命名为 MyResource.de-DE.resx