首先闲扯几句,这两天研究了一下“Minigui 语言国际化”的问题,看过文档的大多都知道 Minigui 是支持语言国际化的。鄙人也看了一下demo中的语言设置。总结了一下。供大家参考。废话不多说了转入正题。
一.使用miniStudio设置多语言
1.在miniStudio的界面中如下图 可以添加多种语言。在这个界面的右上角有个 扳手 图标 点击可添加
2 .点击Add 可添加相应的语言,通过 Set Current 或者 Set Default 的方式来设置当前和默认使用的是哪种语言。
这种设置方法有个弊端,他只能在编译的时候使用,不能在代码里动态设置。(也许是鄙人比较菜没找到代码里设置的方法)如果有高手知道 还望不吝赐教。
二. 通过设置配置文件的方式来实现语言的国际化。
1.Minigui 提供了如下方法来保存和读取配置文件信息
SetValueToEtcFile (const char* pEtcFile, const char* pSection, const char* pKey, char* pValue);
GetValueFromEtcFile (const char* pEtcFile, const char* pSection, const char* pKey, char* pValue, int iLen);
2.先说一下的鄙人的思路:
首先讲应用里设计到语言转换的地方 都在文件中按照如下键值对方式设置好,然后通过GetValueFromEtcFile获取相应的值,然后将数据设置到界面控件上。
3. 首先在项目的根目录新建一个文件名字由你定,eg:language。
文件中我手动键入了一下两种语言一个section是中文,一个section是英文。韩文 日文鄙人不会,您就将就看吧。
[section_zh]
key_t=你好
[section_en]
key_t=hello
在我的language 文件中 由两种语言,你也可以讲这两种语言分成两个文件来存储。
4.调用文件进行语言设置。
程序中可以在flash中设置个标记,存储当前设置的是中文还是英文。然后在加载应用的时候从文件中读取相应的语言就可以了。
char * getvalue[13];
int length = 13;
int flash=0;//默认设置是0=中文,1=英文;
char * section="section_zh";
if(flash==1){
section="section_en";
}
GetValueFromEtcFile("language", section, "key_t", getvalue, length);
SetWindowText(你的控件, getvalue);
这样就可以动态切换语言了。
如果有不对的地方 还望大神不吝赐教。