日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]隨著Symbian OS逐漸成為未來手機(jī)的產(chǎn)業(yè)標(biāo)準(zhǔn),基于Symbian OS的智能手機(jī)軟件在我國必將有所普及,軟件的本地化成為我們迫切需要解決的問題之一。本文以Symbian OS應(yīng)用開發(fā)平臺Series60為例,首先對基于Symbian OS的Series60平臺應(yīng)用程序的文件架構(gòu)、骨架類做了全面綜述,其次重點(diǎn)介紹Symbian OS對手機(jī)軟件的本地所化提供的便利支持,最后對對實(shí)現(xiàn)國產(chǎn)軟件的本地化提出了自己的解決方案。

一、引言

Symbian OS是一種開放、非常健壯的嵌入式操作系統(tǒng),它由Symbian公司開發(fā)。Symbian OS是針對未來無線互聯(lián)手持設(shè)備的新一代移動(dòng)系統(tǒng)平臺,其目標(biāo)是把Symbian OS開發(fā)成為未來手機(jī)的產(chǎn)業(yè)標(biāo)準(zhǔn)。所以它對應(yīng)用程序的本地化提供了便利的條件和強(qiáng)有力的支持。Symbian OS內(nèi)置了Unicode編碼,應(yīng)用程序的開發(fā)架構(gòu)也將源文件與資源文件相分離。因此對于拉丁字符集,使用不同的語言文本改編應(yīng)用程序應(yīng)該只需改變資源文件,因?yàn)橛脩艨梢曃谋静粫度氲皆次募?dāng)中。但對于非拉丁語言,比如生產(chǎn)使用漢語、日語、朝鮮語等的應(yīng)用程序,文本的本地化要復(fù)雜一些,需要做一些額外的工作。下面以Symbian OS的應(yīng)用開發(fā)平臺Series 60為例,在重點(diǎn)講述Symbian OS對本地化支持的基礎(chǔ)上,對應(yīng)用程序的漢化加以解決。

二、 Symbian OS應(yīng)用開發(fā)平臺Series 60介紹

由于各廠商之間在用戶接口、硬件設(shè)計(jì)及互通性上存在的差別及其自身的革新,Symbian OS給移動(dòng)設(shè)備制造商提供很大的靈活性。這種靈活性可以使用同一個(gè)內(nèi)核的操作系統(tǒng)設(shè)計(jì)出不同的產(chǎn)品,而且給設(shè)備制造商提供了更新空間,從而使得其在移動(dòng)市場上支持更多的設(shè)備。Series 60平臺正是基于Symbian OS的這種靈活性,在其之上進(jìn)行構(gòu)建。如圖1所示。

Series60平臺的內(nèi)核是Symbian OS GT(Generic Technology,通用技術(shù))層。提供了擴(kuò)展的Avkon UI層、基于Avkon和Uikon庫的完整應(yīng)用程序套件以及第三方GUI應(yīng)用程序所使用的用戶接口和框架API。

三、 Series 60開發(fā)平臺下應(yīng)用程序架構(gòu)對本地化的支持

3.1 應(yīng)用程序的文件架構(gòu)


在開發(fā)應(yīng)用程序之前必須了解Series60平臺的應(yīng)用程序文件架構(gòu)。Carbide C++是當(dāng)前諾基亞公司為自己的S60系列智能手機(jī)應(yīng)用程序開發(fā)提供的新一款I(lǐng)DE工具。在利用Carbide C++創(chuàng)建一項(xiàng)工程后(例如工程名為HelloWorld,程序架構(gòu)為單視圖),我們能看到如下的應(yīng)用程序文件架構(gòu):

(1)data文件夾中的.rss文件與src中的.cpp源文件相分離,為實(shí)現(xiàn)應(yīng)用程序本地化提供了便利的條件。后面的內(nèi)容將詳細(xì)剖析它的具體實(shí)現(xiàn)機(jī)制。

(2)Aif文件夾中包含可選的應(yīng)用程序信息文件(.aif文件),用于指定應(yīng)用程序的本地化圖標(biāo)、標(biāo)題及系統(tǒng)特性(如可嵌入性)。

(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è)對象:

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ù)模型。對一個(gè)基于文件的應(yīng)用程序,它存儲和刷新應(yīng)用程序的數(shù)據(jù),響應(yīng)AppUI類產(chǎn)生對一個(gè)文檔編輯的請求。

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

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

可以簡單地歸納為: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工程為例,只針對為實(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ī)顯示相對應(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!"

同樣道理,在HelloWorldLoc.l03中可以定義德語文本。

在HelloWorldLoc.loc文件中根據(jù)本地化需求包含相應(yīng)的.lXX文件,例如包含定義英文字符串的HelloWorldLoc.l01文件。

#include "HelloWorldLoc.l01"

在.rss文件中包含HelloWorldLoc.loc文件,可以引用.lXX中的本地化資源。

#include “HelloWorldLoc.loc”

RESOURCE TBUF r_label_text{ buf = LABEL_TEXT;}

假如這里引用的LABEL_TEXT是HelloWorldLoc.l01中定義的英文文本:

#define LABEL_TEXT "Hello World!"

那么在Carbide C++集成開發(fā)環(huán)境下,資源編譯器rcomp.exe對包含本地化資源的HelloWorldLoc.rss文件編譯后,輸出一個(gè)二進(jìn)制資源文件HelloWorldLoc.rsc和一個(gè)HelloWorldLoc.rsg頭文件。HelloWorldLoc.rsg頭文件中利用#define定義符號名R_LABEL_TEXT來引用本地化資源。如下定義:

#define R_LABEL_TEXT 0x2aa81006

在顯示數(shù)據(jù)的View類的.cpp源文件中,包含HelloWorldLoc.rsg頭文件,通過引用R_LABEL_TEXT就可以顯示它所標(biāo)識的"Hello World!"字符串。

3.4 實(shí)現(xiàn)應(yīng)用程序的漢化技術(shù)

對于英語、法語、德語這些拉丁字符集均是通過Unicode標(biāo)準(zhǔn)進(jìn)行編碼,Symbian OS內(nèi)置了Unicode編碼,所以通過改變.loc文件中所包含的.lXX文件,可以很方便的生成不同語言文本的應(yīng)用程序。在Symbian OS的epoc32Includee32std.h頭文件中我們可以看到定義了這些語言標(biāo)識碼,每種支持的語言都具有兩位數(shù)字的標(biāo)識碼。例如英語是01,法語是02,德語是03:

enum TLanguage

{ELangEnglish = 1, /** UK English. */

ELangFrench = 2, /** French. */

……

ELangHongKongChinese = 30, /** Hong Kong Chinese. */

ELangPrcChinese = 31, /** Peoples Republic of Chinas Chinese. */

……

}

在上面定義的標(biāo)識代碼中,我們可以看到對漢語的標(biāo)識代碼也有所定義,分別是30和31。但我們并不能簡單地在.lXX文件中定義中文文本。中文文本屬于非拉丁語系,對于非拉丁語言,文本的本地化要復(fù)雜一些。對于生產(chǎn)使用漢語、日語、朝鮮語等的應(yīng)用程序,Symbian OS和Series60 SDK確實(shí)提供了一些支持,但我們需要做一些額外的工作。要解決漢字問題,必須轉(zhuǎn)換我們的漢字編碼。下面是實(shí)現(xiàn)中文本地化的具體實(shí)現(xiàn)方法,稱之為靜態(tài)方法。

首先,在.lXX文件中定義: #define LABEL_TEXT “字符串_中文”

然后將這個(gè).lXX文件用WORD或記事本轉(zhuǎn)換成UTF8編碼。這里要注意,有時(shí)在轉(zhuǎn)換時(shí),會在轉(zhuǎn)換生成后的文件頭部添加上一個(gè)文本編輯器無法看到的標(biāo)志字符,需要用edit編輯器將其打開,刪除標(biāo)志字符,否則編譯將會出錯(cuò)。在.loc文件中包含.lXX文件:#include ".lXX"。在.RSS文件中定義字符串:RESOURCE TBUF r_label_text{buf=LABEL_TEXT;}

同時(shí)在.RSS文件頭添加一行代碼:CHARACTER_SET UTF8。在.cpp文件中,包含.rsg頭文件,通過引用R_LABEL_TEXT就可以顯示它所標(biāo)識的"字符串_中文"字符串。

四、 Symbian OS在我國的發(fā)展前景

隨著Symbian OS對本地化的進(jìn)一步支持,基于Symbain OS的我國國產(chǎn)智能手機(jī)軟件必將有所大力普及。作為一種面向未來無線通信的操作系統(tǒng),一方面由于它所具有的強(qiáng)大功能,另一方面有世界各大移動(dòng)設(shè)備商(包括其股東)的支持,還有像Intel、TI、IBM等各大公司都陸續(xù)宣布和Symbian公司合作開發(fā)無線通信設(shè)備軟件應(yīng)用程序,Symbian OS在我國國內(nèi)將具有良好的發(fā)展前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

無論是在統(tǒng)治NLP屆的Transformer,還是最近視覺領(lǐng)域的新秀Vision Transformer,我們都能在模型中看到Transpose/Permute算子的身影,特別是在多頭注意力機(jī)制(Multi-Head A...

關(guān)鍵字: se rc os

前端傳遞:表名 user,字段 username 字符串、age 數(shù)字、is_ikun 布爾,并且把這些值封裝為了一個(gè)對象

關(guān)鍵字: 框架 前端

在六個(gè)服務(wù)領(lǐng)域表現(xiàn)出顯著提升;從2021年的第7位躍居第2位 印度班加羅爾2022年4月11日 /美通社/ -- 下一代數(shù)字服務(wù)和咨詢領(lǐng)域的全球領(lǐng)軍者Infosys(印度國家證券交易所、孟買證券交易所和紐約證券交易所代...

關(guān)鍵字: Group os

(全球TMT2022年4月11日訊)下一代數(shù)字服務(wù)和咨詢領(lǐng)域的全球領(lǐng)軍者Infosys近期宣布,在Everest Group PEAK Matrix?2022年度 IT服務(wù)提供商獎(jiǎng)中排名第二。在第六屆PEAK Matr...

關(guān)鍵字: Group os

香港2022年3月29日 /美通社/ -- 在傳統(tǒng)與創(chuàng)新的十字路口,一些人不僅記錄了歷史,而且潛心打造未來?;仡橳oshiba TV第一次屏幕閃爍的那一刻,創(chuàng)新便已深植于公司的“血液”,致力于真實(shí)...

關(guān)鍵字: os

北京2022年3月21日 /美通社/ -- 微美全息軟件有限公司(納斯達(dá)克: WIMI)(以下簡稱為“微美全息”或“公司”),一家全球領(lǐng)先的增強(qiáng)現(xiàn)實(shí)(“AR”)服務(wù)提供商,今天宣布宣布被納入Proshares Metav...

關(guān)鍵字: os

Infosys 元宇宙工坊(Infosys metaverse foundry)是 Infosys Living Labs 不可或缺的一部分,它正在推動(dòng)企業(yè)的數(shù)字創(chuàng)新議程,以適應(yīng)新興的優(yōu)先事項(xiàng)和市場趨勢。 Infosys...

關(guān)鍵字: os

Chronos芯片將搭載于Ouster面向量產(chǎn)車推出的DF系列固態(tài)數(shù)字激光雷達(dá)上,提高其性能與功效...

關(guān)鍵字: 芯片 激光雷達(dá) os

(全球TMT2022年3月11日訊)2022年3月11日,高分辨率數(shù)字激光雷達(dá)供應(yīng)商Ouster發(fā)布最新Chronos 芯片,這是一款車規(guī)級、完全定制化的數(shù)字激光雷達(dá)接收芯片,將搭載于其DF系列固態(tài)激光雷達(dá)上。Chro...

關(guān)鍵字: 芯片 激光雷達(dá) os

上海2022年3月10日 /美通社/ -- 中國上海,2022年3月,柏中(Bossard)宣布推出Smart Vending Cloud幫助客戶解決MRO耗材管理問題,進(jìn)一步升級“智能工廠物流”服務(wù)。此舉也意味著柏中在...

關(guān)鍵字: 全自動(dòng) os
關(guān)閉