新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Symbian OS的本地化技術(shù)研究

基于Symbian OS的本地化技術(shù)研究

作者: 時(shí)間:2012-03-23 來源:網(wǎng)絡(luò) 收藏

(3)inc文件夾中包含的是定義程序骨架類的.h頭文件,和實(shí)現(xiàn)本地化所定義的.loc和.lXX文件。

(4)src文件夾中包含的是.cpp源文件,實(shí)現(xiàn).h中定義的類。聯(lián)編時(shí)各文件之間具體的關(guān)系如圖2所示

3.2 應(yīng)用程序框架類的關(guān)系

與編寫普通的VC MFC程序一樣,必須熟悉程序中各個(gè)類之間的關(guān)系。每一個(gè)應(yīng)用程序必須定義4個(gè)對(duì)象:

l Application類定義了應(yīng)用程序的屬性如UID、標(biāo)題并創(chuàng)建一個(gè)新的文檔。是應(yīng)用程序的主入口,它也將應(yīng)用程序相關(guān)信息傳遞回框架。應(yīng)用程序類并不涉及應(yīng)用程序的數(shù)據(jù)和算法。

l Document類描述應(yīng)用程序的數(shù)據(jù)模型。對(duì)一個(gè)基于文件的應(yīng)用程序,它存儲(chǔ)和刷新應(yīng)用程序的數(shù)據(jù),響應(yīng)AppUI類產(chǎn)生對(duì)一個(gè)文檔編輯的請(qǐng)求。

l AppUI是主要的用戶接口類,它是大量框架所發(fā)出通知的接受者,例如用戶的按鍵或者重要的系統(tǒng)事件。AppUI將處理事件本身,或者在適當(dāng)?shù)厍闆r下,將這些事件傳遞給它所擁有的視圖,達(dá)到處理的目的。

l View類用于在屏幕上顯示應(yīng)用程序數(shù)據(jù)并允許用戶與之交互。對(duì)一個(gè)復(fù)雜的程序可能有多種方法顯示其數(shù)據(jù),因此包含多個(gè)視圖類。它們之間的關(guān)系如圖3所示。

可以簡(jiǎn)單地歸納為:Application類創(chuàng)建一個(gè)文檔,文檔類創(chuàng)建AppUI,AppUI類創(chuàng)建視圖。從圖3我們可以看到應(yīng)用程序還包括一個(gè)model類,model類用于封裝應(yīng)用程序數(shù)據(jù)和它的算法,給程序的其他部分提供良好的API。

3.3 實(shí)現(xiàn)應(yīng)用程序的本地化機(jī)制

為詳細(xì)說明實(shí)現(xiàn)應(yīng)用程序本地化的內(nèi)部機(jī)制,我們以上面的HelloWorldLoc工程為例,只針對(duì)為實(shí)現(xiàn)這種機(jī)制的.rss文件,.rsg文件,.loc文件,.lXX文件進(jìn)行分析。在圖2當(dāng)中,我們看到.l01、.l02、.l03和.loc這類文件。.lXX文件中定義了不同的語言,比如HelloWorldLoc.l01中把要顯示的文本定義成英文,HelloWorldLoc.l02中定義成了法語,而 HelloWorldLoc.l03中定義成了德語。通過編譯發(fā)布,可以很方便實(shí)現(xiàn)應(yīng)用程序和資源的本地化,在真機(jī)顯示相對(duì)應(yīng)的語言。例如在 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!"



評(píng)論


技術(shù)專區(qū)

關(guān)閉