我已经有了多语言网站的解决方案,但我不确定是否是一个好的解决方案..并且尽可能灵活。 首先,我正在使用Visual webgui开发一个项目。长话短说,webgui是一种web编程,但与WinForms非常相似。这是一个很好的解决方案来处理多语言网站?
所以,这就是:
我有一个MDI应用程序。这是一个简单的网页,顶部有MainMenu,可以打开很多窗口。
首先,我在我的主要启动项目中创建resx文件。比方说,
"myStrings.resx"
为德语翻译默认语言和"myStrings.de-DE.resx
“。每个字符串将被翻译必须在两个资源文件。
现在,我最关心的。在每一个类(表格或没有表格)我必须有这样的方法(在这个例子中,只有一个翻译控制):
private void adjustCulture() { System.Resources.ResourceManager rm = new System.Resources.ResourceManager("MyApp.myStrings", typeof(testWindow).Assembly); label2.Text = rm.GetString("DefaultString", culture); }
这打扰我了很多,因为我要实现在每个无线此功能单独下载。而不是完全针对该窗口中的每个控件(只有那些将被翻译的控件)。所以这有点“不灵活”。
5.I也不能只是初始化标签在我的设计,我必须手动完成所有的初始化在构造函数:
label2.Text = rm.GetString("DefaultString", culture);
(or in Designer partial class inside InitializeComponent method - but also, manually).
6.And最后,当有人修改语言:
我有总是在每个窗口的Load事件中调用adjustCulture函数!首先,初始化..其次,当有人(在MDI菜单中)将语言更改为德语,并且此时我在MDI中打开了三个窗口..我必须单独翻译所有人。所以我必须存储打开的窗口处理程序,并调用每个人的Load事件。
这是多语言webgui appliacation的一个很好的解决方案吗?还是有更好的解决方案?更灵活?
为什么每个语言都有一个xml文件,当您可以构造文件时,每个文本节点都有另一个节点用于每种语言。保存您的工作,以通过多个文件来更改翻译。 – mboldt
那么,我写了关于XML。格式.resx由XML条目组成。 我将有每种语言的resx文件。如果您只想加载一种语言文本并将其缓存以供将来使用,我将在4之间进行切换,如4 – Marshall
@boldty。根据网站的规模,它只能在一个文件中完成。在我的场景中,我们有超过32个项目,每个都有自己的字典 – manman