2010-01-22 46 views
1

我即将开始翻译我的vb.net应用程序,并且我不想使用Visual Studio提供的默认方法来执行此操作。我需要我的应用程序非常轻巧,并且使用资源选项的容量几乎增加了一倍。VB.Net中的国际化:选择正确的结构类型

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

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

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

这显然不这样做(虽然我可以使用属性,而不是增值经销商)以正确的方式,但我想知道是否是让编译器检查一切都已翻译并警告它的方法,否则。

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

非常感谢! CFP。

回答

0

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

CFP。

+0

尽管此方法不允许自动检查未翻译的字符串。 – 2010-02-20 13:10:48

1

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

所以我的建议是重新考虑和走基于资源的路线。

+1

我当然可以,但对我来说,增加我的应用程序的大小并不是真正的选择...... 无论如何,我不太喜欢基于资源的本地化选项。他们觉得尺寸过大,而且对我来说效率很低,特别是如果它们使得在没有Visual Studio的情况下编辑代码变得非常复杂。 你有没有这个功能我可以如何管理的想法? – 2010-01-22 15:46:07