使用API​​管理i18n的好习惯是什么?

时间:2012-05-07 09:02:02

标签: c# .net internationalization

我已经创建了一个小帮助框架,我希望它是多语言的。所以我使用.resx文件进行翻译。

但是,当我的框架被用于具有自己的.resx ...

的应用程序时,我担心卫星dll会非常麻烦。

所以我想知道避免看似资源地狱的最佳做法

1 个答案:

答案 0 :(得分:1)

最佳做法是遵循Microsoft准则。因此,* .resx文件,或更准确地说是卫星装配正是您应该使用的。

然而,这种方法的问题在于如何处理依赖项。据我所知,您不希望使用其他库污染磁盘。因此,您希望您的客户只安装所需的文件,而不是其他任何内容。

好消息是,你可以这样做,你仍然可以使用卫星装配。您所要做的就是将程序集打包到DLL中并覆盖Assembly Resolution事件,以便它将使用内部文件而不是在磁盘上搜索它。然而,所有的职业选手也是缺点。当您这样做时,您的客户将不得不安装一个文件(相当大的文件),但他们将被迫从您提供的语言中进行选择。他们将无法削减任何东西,也不会在将来添加其他语言。

我希望你现在明白为什么卫星装配方法是最好的解决方案 - 它让你可以控制本地化过程。抱歉没有更好的方法来处理这个问题 BTW。 DLL地狱与不同客户端所需的同一个库的多个版本有关。在你的情况下不会发生这种情况。当然,附加文件意味着额外的安装程序条目,但人们有理由创建合并模块的概念。我不会为此担心,我只是提供框架作为合并模块,让人们自己定制,如果他们真的必须这样做。