Windows CE 提供了 MUI(Multilingual User Interface),用于开发多语言系统和程序
详细见 Wince帮助
Windows CE Features\International\Multilingual User Interface(MUI)
系统方面:
———
PB 中创建一个工程后,菜单 Platform -> Settings,选择需要的 Locale 和 语言,
并设置默认语言,要注意的是,如果选择了东亚语言,需要把东亚语言设置为默认。
在 Catalog 窗口添加MUI、相关字体、输入法等等
sysgen 后,Open Release Directory,执行 createmui 0409 (创建英语语言的资源文
件,默认不是英语的情况下)。打开文件生成目录Emulator_X86Release,复制 multiui.bib 中的所有内容到 common.bib 的最后。然后,Make Run-Time Image
最后下载到模拟器中,记得在 Target Device Connectivity Options 中取消选中
Clear memory on soft reset。这样语言才能切换。
模拟器中wince起来以后,在控制面板的区域设置中设置语言和Locale,也可以自己调
用API,如下:
1 2 3 4 5
|
- <SPAN style="COLOR: rgb(0,0,255)">unsigned</SPAN> <SPAN style="COLOR: rgb(0,0,255)">short</SPAN> SLANGID = MAKELANGID<SPAN style="COLOR: rgb(0,0,0)">(</SPAN>LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED<SPAN style="COLOR: rgb(0,0,0)">)</SPAN>;<BR>SetUserDefaultLCID<SPAN style="COLOR: rgb(0,0,0)">(</SPAN>SLANGID<SPAN style="COLOR: rgb(0,0,0)">)</SPAN>;<BR>SetSystemDefaultLCID<SPAN style="COLOR: rgb(0,0,0)">(</SPAN>SLANGID<SPAN style="COLOR: rgb(0,0,0)">)</SPAN>;<BR>SetUserDefaultUILanguage<SPAN style="COLOR: rgb(0,0,0)">(</SPAN>SLANGID<SPAN style="COLOR: rgb(0,0,0)">)</SPAN>;<BR>PostMessage<SPAN style="COLOR: rgb(0,0,0)">(</SPAN>HWND_BROADCAST, WM_WININICHANGE,<SPAN style="COLOR: rgb(0,0,221)">0</SPAN>, INI_INTL<SPAN style="COLOR: rgb(0,0,0)">)</SPAN>;
unsigned short SLANGID = MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED); SetUserDefaultLCID(SLANGID); SetSystemDefaultLCID(SLANGID); SetUserDefaultUILanguage(SLANGID); PostMessage(HWND_BROADCAST, WM_WININICHANGE,0, INI_INTL); |
1
|
- <SPAN style="COLOR: rgb(255,0,0)">
// EnumUILanguages 列出系统支持的语言 |
最后 Soft reset,系统界面的语言就改变了
应用程序方面
————
创建一个应用程序工程,把自带的资源改成中文,生成 Myapp.exe
创建一个dll工程,纯资源的。setting里link 选项加上 /NOENTRY,编译出dll文件,
改名为 Myapp.exe.0409.mui(以美国英语为例),放在myapp.exe同目录下。
这样就OK了,假设系统默认语言是中文,按前面的方法切换系统Locale和语言为英语
,soft reset后,Myapp.exe会变成英语界面,如果 Myapp.exe.0409.mui不存在,依然为中
文界面。
其他
—-
MUI的缺点是要重启程序才能改变界面,因为要重新加载资源
Soft reset 模拟器是可以,具体设备不知是否支持
http://www.zhanghu.org/2008/01/08/wince-mui/