×
Namespaces

Variants
Actions

如何向Symbian C++程序中添加多语言支持

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台: S60_3rd_FP2 SDK/ Carbide C++ 1.3.2
S60 3rd Edition FP2

文章
User:Kevin8093 在 20 Apr 2009 创建
最后由 hamishwillee 在 30 May 2013 编辑

第一步:编写本地化内容

在项目中添加需要提供语言支持的内容,按照语言代码,如简体中文为31,德语是03。创建存储本地化字符串的文件如:Hakone.l31, Hakone.l03。

Hakone.l31:

/*-----------------------------------------------------------------
Language support for Chinese
------------------------------------------------------------------*/
#define qtn_caption_string "Hakone_S60"
#define qtn_connect     "连接"
#define qtn_disconnect  "断开"
#define qtn_setting     "设置"
#define qtn_about       "关于"
#define qtn_exit        "退出"

如上定义了对于各种语言的支持文件后,需要添加一个.loc文件来对所支持的语言进行选择,如:Hakone.loc

CHARACTER_SET UTF8
// Default language
#ifdef LANGUAGE_SC
#include "localization\Hakone.l01"
#endif
// English (UK)
#ifdef LANGUAGE_01
#include "localization\Hakone.l01"
#endif
// Simplified Chinese
#ifdef LANGUAGE_31
#include "localization\Hakone.l31"
#endif

这几个文件可以储存在任何已经Include的目录下,推荐最好合理的设计存储地点。

第二步:在Rss文件中使用相关的多语言定义

如Hakone.rss:

#include "Hakone.loc"
//
//Some content here
//
RESOURCE MENU_PANE r_hakone_main_menu
   {
   items =
       {
       // added the new Options menu command here
       MENU_ITEM
           {
           command = EMainViewConnect;
           txt = qtn_connect;
           },
       MENU_ITEM
           {
           command = EMainViewDisconnect;
           txt = qtn_disconnect;
           },
       MENU_ITEM
           {
           command = EMainViewSettings;
           txt = qtn_setting;
           },
       MENU_ITEM
           {
           command = EMainViewAbout;
           txt = qtn_about;
           },
       MENU_ITEM
           {
           command = EAknSoftkeyExit;
           txt = qtn_exit;
           }
       };
   }

第三步:更新MMP文件

MMP文件可以用Carbide的IDE来升级或者手动添加多语言支持:

如Hakone.mpp加入下面代码:

LANG 01 31

第四步:更新PKG文件

在package文件中需要加入多语言文件的选项,由于前面第一步Hakone.l31编译出来的文件是Hakone.r31,所以在Hakone.pkg文件中加入下面代码:

{
"$(EPOCROOT)Epoc32\data\z\resource\apps\Hakone_S60.r01"
"$(EPOCROOT)Epoc32\data\z\resource\apps\Hakone_S60.r31"
} - "!:\resource\apps\Hakone_S60.rsc"

通过代码我们可以看到,在这个程序安装的时候,会自动选择语言的不同来更新应用程序的资源文件Hakone_S60.rsc,当应用程序调用rsc文件读取字符串的时候即可得到不同语言的内容。

小结:

通过这种方式可以实现多语言应用程序,在程序安装的时候会有提示用户选择所支持的语言进行安装的选项,同时,如果希望程序可以在运行时支持不同的语言的话,需要把不同语言的.rxx文件复制到系统内,使得应用程序可以调用不同的.rxx文件。

This page was last modified on 30 May 2013, at 07:34.
115 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×