VB.Net中的国际化:选择正确的结构类型

时间:2010-01-22 15:40:10

标签: vb.net class interface internationalization

我即将开始翻译我的vb.net应用程序,我不想使用Visual Studio提供的默认方法来执行此操作。我需要我的应用程序非常轻,它的大小几乎是使用资源选项的两倍。

因此,我打算使用类似于类的东西,其中每种语言都有一个实例。由于我不想将语言文件作为单独的文件分发(我宁愿让它们硬编码),我想找到一种简单的方法来检查类的每个字段是否都已初始化。我在考虑接口之类的东西,我会做这样的事情:

Public Interface Language
   Dim HelloMsg As String
   Dim GoodbyeMsg As String
End Interface

Public class English Implements Language
   HelloMsg = "Hello!"
   GoodbyeMsg = "Goodbye!"
End Class

显然这不是正确的方法(虽然我可以使用属性而不是vars),但我想知道这是否是让编译器检查所​​有内容是否已翻译的方法,如果没有,则会发出警告。

无论如何,也许有更好的方法来处理这个问题?

非常感谢! CFP。

2 个答案:

答案 0 :(得分:1)

我不相信你应该抛弃基于资源的本地化方法,因为你的应用程序规模已经扩大。事实上,它可以从100 Kb增长到200 Kb,但就是这样!它不会再增长太多了。而现在200 Kb并不算什么。

所以我的建议是重新考虑并采用基于资源的途径。

答案 1 :(得分:0)

我决定使用一个加载翻译文件的单例类,使用一种循环遍历表单上所有项目并即时翻译的方法。有关详细信息,请参阅Create Synchronicity源代码(更具体地说,请this code file

CFP。