Windows mobile多国语言实现
2011-01-06 10:58:40 来源:WEB开发网END
然后可以通过把定义资源ID的resources.h这个文件共享出来,让多个mui文件和应用程序用同一个资源ID。
同时你还需要在dll项目添加一个导出文件如***.def,其实不需要导出函数名如下就可以:
LIBRARY "hello.exe.0804.mui"
EXPORTS
也许你还会问,那应用程序怎么去通过匹配相应的mui文件来进行语言的定位?请看。
刚才说到windows目录下有shellres.dll.0804.mui,其实mui文件的命名有一定的规则可循,可不是乱来的,首先 shellres.dll表明这个mui文件是专门用于shellres.dll多国语言版本,再例如hello.exe.0804.mui这个表示是专用于hello.exe。然后0804这又是表示什么意思呢,这是微软定义的语言ID是一个十六进制数,例如简体中文的ID就是0x0804,而美国英语 ID则是0409。其他国家的语言ID可以查看sdk中的Language Identifiers and Locales。
那系统怎么去实现识别应用使用哪一个mui文件呢?在系统注册表中HKEY_CURRENT_USERControlPanel DesktopMultiUILanguageId记录了系统的默认语言ID,所以系统会根据这个默认ID进行自动配置,而不需程序员再使用代码控制。但是有一点要注意的是mui文件和应用程序要放在同一个目录下。在使用vs生成mui文件时,可以通过对项目属性进行设置,让vs直接生成mui文件,在dll项目中”项目属性”----“链接器”----“常规”中的”输出文件” $(OutDir)/your_mui_name,只需要修改your_mui_name为你相应的mui文件名就可以。
使用mui来实现多国语言版本的实现,不需要更改应用程序的代码,只需要直接添加或删除独立的mui文件,mui文件和应用程序是高分离的,方便管理。
更多精彩
赞助商链接