【发布时间】:2008-09-25 17:13:24
【问题描述】:
我一直在搜索关于如何在我的小应用程序上支持 i18n...
我知道 Microsoft 提供“文化”类,但您必须重新编译您的应用程序以包含您添加的任何新字符串。因此,我要做的就是将所有字符串放在一个外部文件中,并为用户提供翻译应用程序的选择,而无需重新编译。
有没有简单的方法来处理这个问题?使用 XML 还是类似 INI 的?任何可用的教程? P.S:尝试在 C# 上执行此操作...如果其他语言不要打扰
【问题讨论】:
我一直在搜索关于如何在我的小应用程序上支持 i18n...
我知道 Microsoft 提供“文化”类,但您必须重新编译您的应用程序以包含您添加的任何新字符串。因此,我要做的就是将所有字符串放在一个外部文件中,并为用户提供翻译应用程序的选择,而无需重新编译。
有没有简单的方法来处理这个问题?使用 XML 还是类似 INI 的?任何可用的教程? P.S:尝试在 C# 上执行此操作...如果其他语言不要打扰
【问题讨论】:
这是 Scott Hanselman 的一篇不错的博文,其中包含几个很好的资源: http://www.hanselman.com/blog/ASPNETInternationalizationGlobalizationAndLocalizationWhew.aspx
一般来说,我可以说您希望将资源保留在二进制文件之外(使用 .resource 文件之类的文件),这样您就可以在不重新编译的情况下添加/编辑资源。我自己没有做太多,所以我对整个事情有点生疏。
希望这有帮助。
【讨论】:
如果你在你的应用程序中包含一个新的字符串,无论如何你都必须重新编译它,不是吗?
如果您经常添加语言,资源文件和/或附属 DLL 可能是您的最佳选择
如果做不到这一点,您可以编写自己的提供程序。以下是我认为有用的一些链接,您的里程可能会有所不同:
http://en.csharp-online.net/Localization_Like_the_Pros
http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=211
http://www.codeproject.com/KB/aspnet/DeclarativeGlobalization.aspx
【讨论】: