我即将开始翻译我的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。
答案 0 :(得分:1)
我不相信你应该抛弃基于资源的本地化方法,因为你的应用程序规模已经扩大。事实上,它可以从100 Kb增长到200 Kb,但就是这样!它不会再增长太多了。而现在200 Kb并不算什么。
所以我的建议是重新考虑并采用基于资源的途径。
答案 1 :(得分:0)
我决定使用一个加载翻译文件的单例类,使用一种循环遍历表单上所有项目并即时翻译的方法。有关详细信息,请参阅Create Synchronicity源代码(更具体地说,请this code file)
CFP。