我正在尝试本地化我用C#编写的应用程序。
所有内容似乎都运行良好,使用卫星资源程序集来翻译每个表单的字符串(根据本教程:http://msdn.microsoft.com/en-us/library/y99d1cd3%28VS.71%29.aspx)
但是,应用程序最终将需要相当多的语言,这意味着我的工作目录中有大量目录(即/ zh-tw,/ zh-cn,/ fr-FR,/ ja-JP等)。我想通过在/ languages或/ resources子目录中找到所有这些来清理它(换句话说,设置“附属程序集的基本路径”)。但我搜索了高低,并且无法找到任何方法来定制这些附属组件的位置。
任何提示都将不胜感激!
答案 0 :(得分:11)
找到一个更简单的解决方案 - 在app.config中:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath=".;Lang" />
</assemblyBinding>
</runtime>
</configuration>
然后你可以在“Lang”子目录中抛出所有这些目录,它就可以开箱即用!构建后事件也很方便在编译后在那里自动复制它们:)
答案 1 :(得分:1)
答案 2 :(得分:1)
会有很多子目录......那又怎么样?其他一切都会非常复杂。
答案 3 :(得分:0)
将所有资源文件(即* .resx)添加到/ Resource文件夹并创建ResourceManager的对象,如下所示
System.Resources.ResourceManager rm = new System.Resources.ResourceManager(“ApplicationName.Resources.MyResource”,Assembly.GetExecutingAssembly());
这里说lang de-DE你的resx文件将被命名为MyResource.de-DE.resx