新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Symbian OS的本地化技术研究

基于Symbian OS的本地化技术研究

作者: 时间:2012-03-23 来源:网络 收藏

(3)inc文件夹中包含的是定义程序骨架类的.h头文件,和实现本地化所定义的.loc和.lXX文件。

(4)src文件夹中包含的是.cpp源文件,实现.h中定义的类。联编时各文件之间具体的关系如图2所示

3.2 应用程序框架类的关系

与编写普通的VC MFC程序一样,必须熟悉程序中各个类之间的关系。每一个应用程序必须定义4个对象:

l Application类定义了应用程序的属性如UID、标题并创建一个新的文档。是应用程序的主入口,它也将应用程序相关信息传递回框架。应用程序类并不涉及应用程序的数据和算法。

l Document类描述应用程序的数据模型。对一个基于文件的应用程序,它存储和刷新应用程序的数据,响应AppUI类产生对一个文档编辑的请求。

l AppUI是主要的用户接口类,它是大量框架所发出通知的接受者,例如用户的按键或者重要的系统事件。AppUI将处理事件本身,或者在适当地情况下,将这些事件传递给它所拥有的视图,达到处理的目的。

l View类用于在屏幕上显示应用程序数据并允许用户与之交互。对一个复杂的程序可能有多种方法显示其数据,因此包含多个视图类。它们之间的关系如图3所示。

可以简单地归纳为:Application类创建一个文档,文档类创建AppUI,AppUI类创建视图。从图3我们可以看到应用程序还包括一个model类,model类用于封装应用程序数据和它的算法,给程序的其他部分提供良好的API。

3.3 实现应用程序的本地化机制

为详细说明实现应用程序本地化的内部机制,我们以上面的HelloWorldLoc工程为例,只针对为实现这种机制的.rss文件,.rsg文件,.loc文件,.lXX文件进行分析。在图2当中,我们看到.l01、.l02、.l03和.loc这类文件。.lXX文件中定义了不同的语言,比如HelloWorldLoc.l01中把要显示的文本定义成英文,HelloWorldLoc.l02中定义成了法语,而 HelloWorldLoc.l03中定义成了德语。通过编译发布,可以很方便实现应用程序和资源的本地化,在真机显示相对应的语言。例如在 HelloWorldLoc.l01文件中可以定义英文文本:

#define ELanguage ELangEnglish // Caption language

#define qtn_app_caption_string "HelloWorldLoc"

#define qtn_app_short_caption_string "HelloWL"

#define LABEL_TEXT "Hello World!"

而在HelloWorldLoc.l02中定义法语文本:

#define ELanguage ELangFrench // Caption language

#define qtn_app_caption_string "BonjourLoc"

#define qtn_app_short_caption_string "BonjourL"

#define LABEL_TEXT "Bonjour Monde!"



评论


技术专区

关闭