C#编写的软件怎么通过菜单 改变中英文界面哦?
C#编写的软件怎么通过菜单 改变中英文界面哦?客户要求有两种语言,可以通过选择菜单切换 有一个笨的办法,就是每一条文字显示都用switch来判断switch(SelectLanguage)
{
casechinese :xxx.Text = "中文菜单";
caseEnglish :xxx.Text = "menu";
.....
} cyr_hongfeng 发表于 2012-7-28 17:53 static/image/common/back.gif
有一个笨的办法,就是每一条文字显示都用switch来判断
switch(SelectLanguage)
{
嗯 也是一个办法 上面那个是最笨的方法。
正确的方式是写语言配置文件,菜单上的文本都是从这个配置文中读取的。
配置文件的格式可以是一个INI
如下这个文件 是cn.lang:
menu=菜单
ok=是
...
具体的做法是,写一个LangManager,
有以下属性
pbulic string language
这个表示语言,是这个字符串类型,比如"cn","jp",然后你的语言配置文件夹底下有对应的配置文件,比如叫cn.lang
设置这个值后,他会跟据你设置的值去读语言配置文件,读完后,把键值对存到这个类的键值对字典里,然后发送语言更改事件,每个你认为需要的地方都要监听这个事件,在收到时这个事件时,重置界面的文字
这个类还有一个方法。
public string getLable(string key)
这个方法的参数是一个KEY,如"menu",他会返回字典里对应的值,如果字典里没有对应的值,他就会返回这个键值,比如你的语言设置为language = "cn"的话,假设我上面举例子的这个文件存在,他就会返回"菜单",再比如你设置的值为language = "en"的话,因为读不到这个配置文件,所以字典是空的,所以这里就会返回"menu".
--------------------
以上是实现方式,这样你改语言时,只要把langManager.language更改一下就行了。
riabox 发表于 2012-7-28 18:25 static/image/common/back.gif
上面那个是最笨的方法。
正确的方式是写语言配置文件,菜单上的文本都是从这个配置文中读取的。
方法还不错 楼主会Linq for XML吗?会的话可以操作XML来存储你菜单的显示文本,类似安卓应用程序中的String.xml那种 riabox 发表于 2012-7-28 18:25 static/image/common/back.gif
上面那个是最笨的方法。
正确的方式是写语言配置文件,菜单上的文本都是从这个配置文中读取的。
哦 非常感谢你!!!! nongxiaoming 发表于 2012-7-28 18:39 static/image/common/back.gif
楼主会Linq for XML吗?会的话可以操作XML来存储你菜单的显示文本,类似安卓应用程序中的String.xml那种 ...
不会偶有学过一点安卓 我看看那个Linq for XML XML只是配置文件的格式问题,在你这个应用上,INI是最合适的,XML在复杂结构的定义有优势,但你这个应用只是简单的键值对。 有Linq在,XML变得简单许多~
页:
[1]