Symbian之Localization
2010-07-06 04:40:00 来源:WEB开发网#elif defined LANGUAGE_31
#include "HelloWorld_31.rls"
#endif
不同语言的字符串文字放在rls文件中。HelloWorld_01.rls和HelloWorld_31.rls分别包含了英文和中文的 qtn_caption_string。当mmp里定义了LANG 01 31后,会分别定义宏LANGUAGE_01和LANGUAGE_31然后编译HelloWorld.rss文件两次,然后才生成.r01和.r31两个文件。当系统加载.r01文件时,相应的qtn_caption_string会显示”HelloWorld”,而加载.r31时则会显示”你好世界”。
综上,当我们需要添加一个新语言时(如12),只需要:
1、新建相应的*_12.rls文件。
2、在*.rss文件的头文件中添加:
#elif defined LANGUAGE_12
#include "*_12.rls"
3、在mmp中的LANG语句添加:
LANG 12
如果想实现安装过程中出现的文字的本地化的话,就需要修改pkg文件。以下是有英文和中文两种语言的pkg范本,如需增加可类推。
;Language - standard language definitions
&EN, ZH
; standard SIS file header
#{"HelloWorld", "你好世界"},(0xA000017F),1,0,0
;Localised Vendor name
%{"Vender-EN", "制造商-ZH"}
;Unique Vendor name
:"Vendor"
;Supports Series 60 v 3.0
[0x101F7961], 0, 0, 0, {"Series60ProductID", "Series60ProductID-ZH"}
文件的拷贝可以有以下两种方式:
IF (LANGUAGE=1)
"..dataagreement_01.txt"-"",FT,TA
ELSEIF (LANGUAGE=31)
"..dataagreement_31.txt"-"",FT,TA
ENDIF
或者
{
"..dataagreement_01.txt"
"..dataagreement_31.txt"
} - "",FT,TA
这样安装的时候如果手机的系统语言是英文则会显示英文安装界面,然后会让你选择安装英文版还是简体中文版,然后根据你的选择拷贝相应的文件。但当系统语言为中文的时候不会弹出语言选择界面,猜测应该是系统的一个BUG。
如果我们在程序中需要多个资源文件该怎么办呢?我另外生成了个TestRss.rsc文件,里面包含TBUF结构的资源 R_TEST_RESOURCE。但程序中StringLoader::LoadLC(R_TEST_RESOURCE)时一直异常退出。个人猜测,因为
Tags:Symbian Localization
编辑录入:coldstar [复制链接] [打 印]更多精彩
赞助商链接