现在做的一个系统,要求要有简繁体语言的界面,现在的做法是把界面上的内容都保存在一个XML文件里,这样做可能会保存在数据库里好一点,毕竟是本地的文件。但效果还是不大满意,一是数据多的话比较慢,二是开发起来很麻烦(多人开发,而且是异地的,没有用源代码管理,这对于控制XML文件同步太烦人了)。但项目已经开发到了1/3了,没办法了。但又怕以后遇到这种多语言版本的开发时,会一样的烦人,于是研究了一下这方面的东西,做一个小结。
我的开发环境是VS2003,发现可以使用资源文件来解决这个问题。
假设我的OS是简体中文版的,当我新建一个Form时,它的语言设定为“默认”,我可以按照设计的思路把整个Form的界面用简体中文设计好,然后把语言设置为“繁体中文”,发现在Form底下会多了一个后缀为zh-CHT.resx的文件,不用管它,看回我们的界面,里面还是简体中文的。把界面全改成繁体中文的(这个操作有点累而且好像很傻,同事问我,系统可不可以自动转换,我没有找到方法,不知道各位知不知道该怎么做)
对一个比较正规的系统来说,应该有登陆界面,我们可以在登陆界面上指定语言版本,然后用一个静态变量记住它。那么在我们刚才设计好的界面上的构造函数中,在调用InitializeComponent方法前,放进下面代码
if (login.GetLanguage()=="T")
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CHT");
}
代码很简单。在登陆时如果选了繁体中文,就会应用我们刚才提到的zh-CHT.resx文件,其他的都会使用默认的资源文件。
我个人感觉,这样做比使用XML或数据库更好理解一些,毕竟是所见即所得的,而且修改和多个人合作开发也算比较方便。
我的开发环境是VS2003,发现可以使用资源文件来解决这个问题。
假设我的OS是简体中文版的,当我新建一个Form时,它的语言设定为“默认”,我可以按照设计的思路把整个Form的界面用简体中文设计好,然后把语言设置为“繁体中文”,发现在Form底下会多了一个后缀为zh-CHT.resx的文件,不用管它,看回我们的界面,里面还是简体中文的。把界面全改成繁体中文的(这个操作有点累而且好像很傻,同事问我,系统可不可以自动转换,我没有找到方法,不知道各位知不知道该怎么做)
对一个比较正规的系统来说,应该有登陆界面,我们可以在登陆界面上指定语言版本,然后用一个静态变量记住它。那么在我们刚才设计好的界面上的构造函数中,在调用InitializeComponent方法前,放进下面代码
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
代码很简单。在登陆时如果选了繁体中文,就会应用我们刚才提到的zh-CHT.resx文件,其他的都会使用默认的资源文件。
我个人感觉,这样做比使用XML或数据库更好理解一些,毕竟是所见即所得的,而且修改和多个人合作开发也算比较方便。