国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種在移動(dòng)終端中支持多語(yǔ)言用戶界面的方法及系統(tǒng)的制作方法

      文檔序號(hào):6470391閱讀:250來(lái)源:國(guó)知局
      專利名稱:一種在移動(dòng)終端中支持多語(yǔ)言用戶界面的方法及系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及移動(dòng)通信設(shè)備技術(shù),尤其涉及一種在移動(dòng)終端中支持多語(yǔ)言用 戶界面的方法及系統(tǒng)。
      背景技術(shù)
      通常,手機(jī)、PHS (Personal Handyphone System,個(gè)人手持電話系統(tǒng),俗 稱小靈通)以及PDA (Personal Digital Assistant,個(gè)人數(shù)字助理)等移動(dòng)終端 的用戶界面只能支持一種語(yǔ)言,或者支持一種本國(guó)語(yǔ)言,再加上對(duì)英文的支持, 所述用戶界面包括操作平臺(tái)界面和/或應(yīng)用程序界面。然而隨著移動(dòng)通信技術(shù) 的不斷發(fā)展,用戶對(duì)移動(dòng)終端的要求也越來(lái)越高;同時(shí)伴隨國(guó)際化的發(fā)展,使 得移動(dòng)終端面臨著對(duì)多種語(yǔ)言的支持問(wèn)題。雖然目前市場(chǎng)上也出現(xiàn)了一些支持 多語(yǔ)言的移動(dòng)終端,但現(xiàn)有支持多語(yǔ)言的移動(dòng)終端 一般將所有用戶界面各種語(yǔ) 言的語(yǔ)言字符串資源文件與操作平臺(tái)和/或應(yīng)用程序的源碼放在 一起進(jìn)行管 理,該用戶界面支持多種語(yǔ)言的技術(shù)方案不僅實(shí)現(xiàn)復(fù)雜,而且不便于靈活的在 移動(dòng)終端上添加新語(yǔ)言支持。
      綜上可知 陷,所以有必要加以改進(jìn)。

      發(fā)明內(nèi)容
      針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種在移動(dòng)終端中支持多語(yǔ)言用 戶界面的方法及系統(tǒng),其移動(dòng)終端的用戶界面不僅能夠方便地實(shí)現(xiàn)對(duì)多語(yǔ)言的 支持,且能夠靈活地添加對(duì)新語(yǔ)言的支持。
      為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種在移動(dòng)終端中支持多語(yǔ)言用戶界面的 方法,所述方法包括如下步驟
      A、 基于XML格式保存各種語(yǔ)言的語(yǔ)言字符串資源文件;
      B、 讀取至少一用戶界面所需的XML語(yǔ)言字符串資源文件,并在所述用戶界面上顯示所讀取XML語(yǔ)言字符串資源文件的語(yǔ)言字符串。 根據(jù)本發(fā)明的方法,所述步驟A進(jìn)一步包括
      Al、建立一多語(yǔ)言根目錄,并根據(jù)所支持的語(yǔ)言種類建立對(duì)應(yīng)的若干語(yǔ) 言目錄;
      A2、將所有用戶界面各種語(yǔ)言的語(yǔ)言字符串資源文件采用XML格式存儲(chǔ) 在所述多語(yǔ)言根目錄下;并將每種語(yǔ)言的XML語(yǔ)言字符串資源文件分別存儲(chǔ) 于對(duì)應(yīng)的語(yǔ)言目錄中,且同一用戶界面的XML語(yǔ)言字符串資源文件在不同的 語(yǔ)言目錄下保持資源文件名稱一致。
      根據(jù)本發(fā)明的方法,所述用戶界面的XML語(yǔ)言字符串資源文件中采用支 持DOM樹(shù)解析的XML解析器,所述XML解析器對(duì)所述一 XML語(yǔ)言字符串 資源文件進(jìn)行解析時(shí)將生成DOM樹(shù)結(jié)構(gòu),所述DOM樹(shù)結(jié)構(gòu)中包括一個(gè)根節(jié) 點(diǎn)和若干層語(yǔ)言字符串節(jié)點(diǎn),所述每個(gè)語(yǔ)言字符串節(jié)點(diǎn)中包括一個(gè)唯一標(biāo)識(shí)一 語(yǔ)言字符串的語(yǔ)言字符串ID—號(hào)和一個(gè)語(yǔ)言字符串本身。
      根據(jù)本發(fā)明的方法,所述步驟B中用戶界面直接從XML語(yǔ)言字符串資源 文件中讀取語(yǔ)言字符串,其調(diào)用讀取語(yǔ)言字符串函數(shù)接口,并根據(jù)指定的資源 文件路徑名及語(yǔ)言字符串ID號(hào),確定并讀取所對(duì)應(yīng)的語(yǔ)言字符串。
      根據(jù)本發(fā)明的方法,所述資源文件路徑名為一個(gè)應(yīng)用程序界面的XML語(yǔ) 言字符串資源文件的資源文件路徑名;或者
      所述資源文件路徑名為一個(gè)操作平臺(tái)的功能界面的XML語(yǔ)言字符串資源 文件的資源文件路徑名。
      根據(jù)本發(fā)明的方法,所述步驟B中用戶界面直接從XML語(yǔ)言字符串資源 文件中讀取語(yǔ)言字符串的步驟進(jìn)一步包括
      BlOl、申請(qǐng)保存語(yǔ)言字符串的緩沖,并初始化語(yǔ)言字符串默認(rèn)文本;
      B102、調(diào)用讀取語(yǔ)言字符串函數(shù)接口,并分別傳入指定的資源文件路徑 名、語(yǔ)言字符串ID號(hào)、保存語(yǔ)言字符串的字符串緩沖指針以及讀取的字符個(gè) 數(shù);
      B103、根據(jù)傳入的資源文件路徑名以及當(dāng)前用戶界面語(yǔ)言標(biāo)記,打開(kāi)對(duì) 應(yīng)的XML語(yǔ)言字符串資源文件進(jìn)行解析,若解析成功則執(zhí)行步驟B104,否 則執(zhí)行步驟B107;
      B104、在解析生成的DOM樹(shù)結(jié)構(gòu)中,搜索指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn),若找到指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)則執(zhí)行步驟B105, 否則執(zhí)行步驟B107;
      B105、將所述語(yǔ)言字符串節(jié)點(diǎn)的語(yǔ)言字符串本身復(fù)制到字符串緩沖指針 所對(duì)應(yīng)的內(nèi)存位置;
      B106、將所讀取的語(yǔ)言字符串設(shè)置到若干控件進(jìn)行顯示,或者直接輸出 進(jìn)行顯示;
      B107、將初始化的語(yǔ)言字符串默認(rèn)文本設(shè)置到若干控件進(jìn)行顯示,或者 直接輸出進(jìn)行顯示。
      根據(jù)本發(fā)明的方法,所述步驟B中用戶界面從XML語(yǔ)言字符串資源文件 的字符串資源句柄中讀取語(yǔ)言字符串,其調(diào)用打開(kāi)文件函數(shù)接口打開(kāi)XML語(yǔ) 言字符串資源文件,進(jìn)而打開(kāi)所述字符串資源句柄,再根據(jù)指定語(yǔ)言字符串ID 號(hào),確定并讀取對(duì)應(yīng)的語(yǔ)言字符串。
      根揚(yáng)本發(fā)明的方法,所述步驟B中用戶界面從XML語(yǔ)言字符串資源文件 的字符串資源句柄中讀取語(yǔ)言字符串的步驟進(jìn)一步包括
      B201、申請(qǐng)保存語(yǔ)言字符串的緩沖,并初始化語(yǔ)言字符串默認(rèn)文本;
      B202、定義字符串資源句柄,并初始化為空;
      B203、根據(jù)指定資源文件路徑名,調(diào)用打開(kāi)文件函數(shù)接口打開(kāi)相應(yīng)的XML 語(yǔ)言字符串資源文件,并判斷是否將對(duì)應(yīng)的字符串資源句柄打開(kāi),若打開(kāi)成功, 則執(zhí)行步驟B204,否則執(zhí)行步驟B209;
      B204、搜索指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn),若找到指定語(yǔ)言字 符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)則執(zhí)行步驟B205,否則執(zhí)行步驟B209;
      B205、讀取該語(yǔ)言字符串節(jié)點(diǎn)的語(yǔ)言字符串本身;
      B206、將所讀取的語(yǔ)言字符串設(shè)置到若干控件進(jìn)行顯示,或者直接輸出 進(jìn)行顯示;
      B207、判斷是否繼續(xù)讀取語(yǔ)言字符串,若是則返回步驟B204,否則執(zhí)行 步驟B208;
      B208、關(guān)閉所述字符串資源句柄;
      B209、將初始化的語(yǔ)言字符串默認(rèn)文本設(shè)置到若干控件進(jìn)行顯示,或者 直接輸出進(jìn)行顯示。
      根據(jù)本發(fā)明的方法,所述步驟B進(jìn)一步包括B301、需要切換當(dāng)前用戶界面語(yǔ)言的類別時(shí),調(diào)用語(yǔ)言設(shè)置函數(shù)接口;
      B302、在該語(yǔ)言設(shè)置函數(shù)實(shí)現(xiàn)中改變當(dāng)前用戶界面語(yǔ)言標(biāo)記,并向已開(kāi) 啟的操作平臺(tái)界面和/或應(yīng)用程序界面發(fā)送語(yǔ)言改變廣播消息;
      B303、所述操作平臺(tái)界面和/或應(yīng)用程序界面處理該語(yǔ)言改變廣播消息, 并重新裝載新用戶界面語(yǔ)言標(biāo)記所對(duì)應(yīng)的語(yǔ)言字符串;
      B304、將所述重新裝載的語(yǔ)言字符串保存,并設(shè)置到若干控件進(jìn)行顯示, 或者直接輸出進(jìn)行顯示。
      本發(fā)明還提供一種支持多語(yǔ)言用戶界面的系統(tǒng),所述系統(tǒng)應(yīng)用于移動(dòng)終端 中,至少包括
      語(yǔ)言字符串資源存儲(chǔ)模塊,用于采用XML格式保存各種語(yǔ)言的語(yǔ)言字符 串資源文件;
      語(yǔ)言字符串資源讀取模塊,用于從所述語(yǔ)言字符串資源存儲(chǔ)模塊中讀取至 少一用戶界面所需的XML語(yǔ)言字符串資源文件i
      語(yǔ)言字符串顯示模塊,用于在用戶界面上顯示所述語(yǔ)言字符串資源讀取模 塊所讀取的XML語(yǔ)言字符串資源文件的語(yǔ)言字符串。
      本發(fā)明通過(guò)采用XML^^各式來(lái)保存用戶界面多種語(yǔ)言的語(yǔ)言字符串資源文 件,實(shí)現(xiàn)了語(yǔ)言字符串資源文件與操作平臺(tái)和/或應(yīng)用程序的源碼分開(kāi)進(jìn)行管 理,再根據(jù)需要讀取至少一用戶界面的XML語(yǔ)言字符串資源文件,然后在用 戶界面上顯示所讀取的語(yǔ)言字符串。借此,本發(fā)明移動(dòng)終端的用戶界面不僅可 以方便地實(shí)現(xiàn)對(duì)多語(yǔ)言的支持,如對(duì)中文、英文、日文或者韓文支持等,并且 可以靈活地添加對(duì)新語(yǔ)言的支持。


      圖l是本發(fā)明支持多語(yǔ)言用戶界面的系統(tǒng)的結(jié)構(gòu)示意圖; 圖2是本發(fā)明系統(tǒng)中語(yǔ)言字符串資源存儲(chǔ)模塊的文件組織結(jié)構(gòu)示意圖; 圖3是本發(fā)明XML語(yǔ)言字符串資源文件中語(yǔ)言字符串節(jié)點(diǎn)的存儲(chǔ)結(jié)構(gòu)示 意圖4是本發(fā)明提供的在移動(dòng)終端中支持多語(yǔ)言用戶界面的方法流程圖; 圖5是本發(fā)明直接從XML語(yǔ)言字符串資源文件中讀取語(yǔ)言字符串的實(shí)例 流程圖;圖6是本發(fā)明從字符串資源句柄中讀取語(yǔ)言字符串的實(shí)例流程圖; 圖7是本發(fā)明更新用戶界面語(yǔ)言的實(shí)例流程圖。
      具體實(shí)施例方式
      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      圖1示出了本發(fā)明所提供的支持多語(yǔ)言用戶界面的系統(tǒng)IO結(jié)構(gòu),所述系 統(tǒng)IO應(yīng)用于移動(dòng)終端中,所述用戶界面可以包括操作平臺(tái)界面和/或應(yīng)用程序 界面,所述多語(yǔ)言支持是指系統(tǒng)10的用戶界面可以根據(jù)用戶的選擇與喜好, 設(shè)置為不同的語(yǔ)言,例如可以把系統(tǒng)10的用戶界面設(shè)置為中文、英文、日文 或者韓文等類型,本發(fā)明支持多語(yǔ)言用戶界面的系統(tǒng)IO至少包括
      語(yǔ)言字符串資源存儲(chǔ)模塊11,甩于采甩XML (extensible Marla^ Language,可擴(kuò)展標(biāo)記語(yǔ)言)格式保存用戶界面的各種語(yǔ)言的語(yǔ)言字符串資源 文件。所謂XML是一套定義語(yǔ)義標(biāo)記的規(guī)則,這些標(biāo)記將文件分成許多部件 并對(duì)這些部件加以標(biāo)識(shí),并且可使用XML自由決定的標(biāo)記語(yǔ)言,這就是語(yǔ)言 的可擴(kuò)展性。遵守XML結(jié)構(gòu)和語(yǔ)義的文件,稱之為XML文件。系統(tǒng)10中包 括操作平臺(tái)界面和/或應(yīng)用程序界面都可以保存在該語(yǔ)言字符串資源存儲(chǔ)模塊 11中。
      語(yǔ)言字符串資源讀取模塊12,用于從語(yǔ)言字符串資源存儲(chǔ)模塊11中讀取 至少一用戶界面所需的XML語(yǔ)言字符串資源文件。這里所讀取的至少一用戶 界面的XML語(yǔ)言字符串資源文件可以是一個(gè)應(yīng)用程序界面或者是操作平臺(tái)某 一功能界面的XML語(yǔ)言字符串資源文件。例如啟動(dòng)一應(yīng)用程序時(shí),會(huì)創(chuàng)建至 少一應(yīng)用程序界面(或稱為窗口 ),其調(diào)用操作平臺(tái)的讀取語(yǔ)言字符串函數(shù)接 口,并根據(jù)當(dāng)前用戶界面語(yǔ)言標(biāo)志,從語(yǔ)言字符串資源存儲(chǔ)^t塊11中讀取并 保存語(yǔ)言字符串。
      本發(fā)明的語(yǔ)言字符串資源讀取模塊12包括兩種語(yǔ)言字符串讀取方式 第一種語(yǔ)言字符串讀取方式中,語(yǔ)言字符串資源讀取模塊12直接從XML 語(yǔ)言字符串資源文件中讀取用戶界面所需的語(yǔ)言字符串,其調(diào)用操作平臺(tái)的讀 取語(yǔ)言字符串函數(shù)接口,并根據(jù)指定的資源文件路徑名及語(yǔ)言字符串ID號(hào),確定并讀取所對(duì)應(yīng)的語(yǔ)言字符串。所述資源文件路徑名為 一個(gè)應(yīng)用程序界面的
      XML語(yǔ)言字符串資源文件的資源文件路徑名;或者所述資源文件路徑名為一 個(gè)操作平臺(tái)的功能界面的XML語(yǔ)言字符串資源文件的資源文件路徑名。
      第二種語(yǔ)言字符串讀取方式中,語(yǔ)言字符串資源讀取^t塊12從XML語(yǔ) 言字符串資源文件的字符串資源句柄中讀取用戶界面所需的語(yǔ)言字符串,其調(diào) 用操作平臺(tái)的打開(kāi)文件函數(shù)接口打開(kāi)XML語(yǔ)言字符串資源文件,進(jìn)而打開(kāi)所 述字符串資源句柄,再根據(jù)指定語(yǔ)言字符串ID號(hào),確定并讀取對(duì)應(yīng)的語(yǔ)言字 符串。
      語(yǔ)言字符串顯示模塊13,用于在用戶界面上顯示語(yǔ)言字符串資源讀取模 塊12所讀取的XML語(yǔ)言字符串資源文件的語(yǔ)言字符串。這里可以是將所讀 取的XML語(yǔ)言字符串資源文件的語(yǔ)言字符串設(shè)置到若干控件進(jìn)行顯示,或者 直接輸出進(jìn)行顯示。所述控件包括按鈕、菜單等。
      風(fēng)2示tt 了本發(fā)祖系統(tǒng)10中語(yǔ)言字符串資源存儲(chǔ)^菱H優(yōu)選的的文件組 織結(jié)構(gòu),該語(yǔ)言字符串資源存儲(chǔ)模塊11建立一多語(yǔ)言根目錄languageres,用 戶界面的多種語(yǔ)言的XML語(yǔ)言字符串資源文件都統(tǒng)一存》文在所述多語(yǔ)言根目 錄languageres下;并才艮據(jù)所支持的語(yǔ)言種類建立對(duì)應(yīng)的若干語(yǔ)言目錄,如簡(jiǎn) 體中文,創(chuàng)建zhcn語(yǔ)言目錄;英文,創(chuàng)建en語(yǔ)言目錄;日文,創(chuàng)建jp語(yǔ)言目 錄等等。相應(yīng)地,操作平臺(tái)界面以及應(yīng)用程序界面的對(duì)應(yīng)XML語(yǔ)言字符串資 源文件都存放在相應(yīng)的語(yǔ)言目錄下,如中文XML語(yǔ)言字符串資源文件,存放 在languageresVzhcn語(yǔ)言目錄下;英文XML語(yǔ)言字符串資源文件,存放在 languageres\en語(yǔ)言目錄下。另外,同一個(gè)應(yīng)用程序界面或者操作平臺(tái)某一功 能界面的XML語(yǔ)言字符串資源文件,在不同的語(yǔ)言目錄下,要保持資源文件 名稱一致,如快速撥號(hào)應(yīng)用程序界面,XML語(yǔ)言字符串資源文件名為 spd_string.xml,那么在中文目錄zhcn下以及英文目錄en下,都采用同一個(gè)資 源文件名稱spd一string.xml。再如協(xié)同應(yīng)用程序界面,XML語(yǔ)言字符串資源文 件名為coopres.xml,那么在中文目錄zhcn下以及英文目錄en下,都采用同一 個(gè)資源文件名稱coopres.xml。 XML語(yǔ)言字符串資源文件4安圖2的文件組織結(jié) 構(gòu),更有利于系統(tǒng)10支持多種語(yǔ)言,語(yǔ)言字符串資源文件與源碼分開(kāi)進(jìn)行管 理,更適合于靈活的添加對(duì)其他語(yǔ)言的支持。
      圖3是本發(fā)明XML語(yǔ)言字符串資源文件中語(yǔ)言字符串節(jié)點(diǎn)的存儲(chǔ)結(jié)構(gòu)示意圖,由于每一種數(shù)據(jù)格式都需要一個(gè)解析器將其中的信息解析出來(lái)才可使
      用,XML文件當(dāng)然也不會(huì)例外,本發(fā)明中用戶界面的XML語(yǔ)言字符串資源 文件中采用支持DOM( Document Object Model,文檔對(duì)象模型)樹(shù)解析的XML 解析器。所謂DOM是一種基于樹(shù)型的解析技術(shù),它在內(nèi)存中構(gòu)建起一棵完整 的解析樹(shù),借此實(shí)現(xiàn)對(duì)整個(gè)XML文件的全面、動(dòng)態(tài)訪問(wèn)。所述XML解析器 對(duì)所述一 XML語(yǔ)言字符串資源文件(例如對(duì)需要啟動(dòng)的一個(gè)應(yīng)用程序界面文 件或者操作平臺(tái)的一功能界面文件)進(jìn)行解析,并生成DOM樹(shù)結(jié)構(gòu),所述 DOM樹(shù)結(jié)構(gòu)中包括一個(gè)根節(jié)點(diǎn)root和若干層語(yǔ)言字符串節(jié)點(diǎn)object,每個(gè)語(yǔ) 言字符串節(jié)點(diǎn)object包含ID數(shù)據(jù)項(xiàng)和string數(shù)據(jù)項(xiàng),所述ID數(shù)據(jù)項(xiàng)是語(yǔ)言字 符串ID號(hào),在一個(gè)XML文件中,唯一標(biāo)識(shí)一個(gè)語(yǔ)言字符串;而所述string 數(shù)據(jù)項(xiàng),則用于保存語(yǔ)言字符串值本身,例如字母、數(shù)字和標(biāo)點(diǎn)符號(hào)等字符的 有限序列。
      恩4示出了本發(fā)明提供的在移動(dòng)終端中支持多語(yǔ)言JS戶界面的方法流程, 其通過(guò)圖1所示的支持多語(yǔ)言用戶界面的系統(tǒng)IO來(lái)實(shí)現(xiàn),具體包括如下步驟
      步驟S401 ,基于XML格式保存用戶界面的各種語(yǔ)言的語(yǔ)言字符串資源文 件,所述用戶界面可以包括操作平臺(tái)界面和/或應(yīng)用程序界面。具體而言,本 步驟是由系統(tǒng)IO的語(yǔ)言字符串資源存儲(chǔ)模塊11實(shí)現(xiàn)的,語(yǔ)言字符串資源存儲(chǔ) 模塊11建立一多語(yǔ)言根目錄,并根據(jù)所支持的語(yǔ)言種類建立對(duì)應(yīng)的若干語(yǔ)言 目錄;再將所有用戶界面各種語(yǔ)言的語(yǔ)言字符串資源文件采用XML格式存儲(chǔ) 在所述多語(yǔ)言根目錄下;并將每種語(yǔ)言的XML語(yǔ)言字符串資源文件分別存儲(chǔ) 于對(duì)應(yīng)的語(yǔ)言目錄中,且同一用戶界面的XML語(yǔ)言字符串資源文件在不同的 語(yǔ)言目錄下保持資源文件名稱一致。如快速撥號(hào)應(yīng)用程序界面的XML語(yǔ)言字 符串資源文件,如圖2所示,在中文目錄zhcn下以及英文目錄en下,都采用 同 一個(gè)資源文件名稱spd—string.xml 。
      步驟S402,讀取至少一用戶界面所需的XML語(yǔ)言字符串資源文件,并在 所述用戶界面上顯示所讀取XML語(yǔ)言字符串資源文件的語(yǔ)言字符串。具體而 言,本步驟中由系統(tǒng)10的語(yǔ)言字符串資源讀取^莫塊12來(lái)讀取至少一用戶界面 所需的XML語(yǔ)言字符串資源文件,并由語(yǔ)言字符串顯示模塊13在用戶界面 上顯示所讀取XML語(yǔ)言字符串資源文件的語(yǔ)言字符串string。本步驟中用戶 界面可以直接從XML語(yǔ)言字符串資源文件中讀取語(yǔ)言字符串string,其調(diào)用讀取語(yǔ)言字符串函數(shù)接口 ,并根據(jù)指定的資源文件路徑名及語(yǔ)言字符串ID號(hào), 確定并讀取所對(duì)應(yīng)的語(yǔ)言字符串string?;蛘撸脩艚缑鎭V人XML語(yǔ)言字符串 資源文件的字符串資源句柄中讀取語(yǔ)言字符串string,其調(diào)用打開(kāi)文件函凄y妄 口打開(kāi)XML語(yǔ)言字符串資源文件,進(jìn)而打開(kāi)所述字符串資源句柄,再才艮據(jù)指 定語(yǔ)言字符串ID號(hào),確定并讀取對(duì)應(yīng)的語(yǔ)言字符串string。
      圖5示出了本發(fā)明直接從XML語(yǔ)言字符串資源文件(即保存語(yǔ)言字符串 的XML文件)中讀取語(yǔ)言字符串的實(shí)例流程,其通過(guò)圖l所示的支持多語(yǔ)言 用戶界面的系統(tǒng)IO來(lái)實(shí)現(xiàn),具體包括如下步驟
      步驟S501,申請(qǐng)保存語(yǔ)言字符串string的緩沖,并初始化語(yǔ)言字符串默認(rèn) 文本。
      步驟S502,調(diào)用讀取語(yǔ)言字符串函數(shù)LoadResStringFromFile( filepath, id, pDst, len)接口,并分別傳入指定的資源文件路徑名filepath、語(yǔ)言字符串ID 號(hào)、保存語(yǔ)言字符串的字符串緣沖指針pDst以及讀取的字符個(gè)數(shù)len等參數(shù); 所述資源文件路徑名filepath可以為一個(gè)應(yīng)用程序界面的XML語(yǔ)言字符串資 源文件的資源文件路徑名或者為一個(gè)操作平臺(tái)的功能界面的XML語(yǔ)言字符串 資源文件的資源文件;洛徑名。
      步驟S503,根據(jù)傳入的資源文件路徑名filepath以及當(dāng)前用戶界面語(yǔ)言標(biāo) 記,打開(kāi)對(duì)應(yīng)的XML語(yǔ)言字符串資源文件進(jìn)行解析。例如需要打開(kāi)圖2中所 示的快速撥號(hào)應(yīng)用程序界面的XML文件,且當(dāng)前用戶界面語(yǔ)言標(biāo)記為中文簡(jiǎn) 體,則打開(kāi)資源文件路徑名filepath為languageres\zhcn\spd_string.xml的XML 語(yǔ)言字符串資源文件。
      步驟S504,判斷XML語(yǔ)言字符串資源文件是否解析成功,若成功則執(zhí)行 步驟S505,否則執(zhí)行步驟S509。
      步驟S505,在解析生成的DOM樹(shù)結(jié)構(gòu)中,如圖3所示,搜索指定語(yǔ)言 字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)object。
      步驟S506,判斷是否找到指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)object, 若找到則執(zhí)行步驟S507,否則執(zhí)行步驟S509;
      步驟S507,將所述語(yǔ)言字符串節(jié)點(diǎn)object的語(yǔ)言字符串string本身復(fù)制到 字符串緩沖指針pDst所對(duì)應(yīng)的內(nèi)存位置。
      步驟S508,將所讀取的語(yǔ)言字符串string設(shè)置到若干控件進(jìn)行顯示,或者直接輸出進(jìn)行顯示。這里的控件包括按鈕、菜單等。
      步驟S509,若解析XML語(yǔ)言字符串資源文件失敗,或者沒(méi)有找到指定語(yǔ) 言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)object,則將初始化的語(yǔ)言字符串默認(rèn)文本 設(shè)置到若干控件進(jìn)行顯示,或者直接輸出進(jìn)行顯示。
      上述步驟S501-S507由系統(tǒng)10的語(yǔ)言字符串資源讀取^f莫塊12實(shí)現(xiàn),而 步驟S508-S509由系統(tǒng)10的語(yǔ)言字符串顯示^t塊13實(shí)現(xiàn)。通過(guò)本方法來(lái)讀 取語(yǔ)言字符串string,系統(tǒng)IO在讀取一個(gè)語(yǔ)言字符串string時(shí),都需要對(duì)該 XML語(yǔ)言字符串資源文件進(jìn)行解析,因?yàn)閮?nèi)存不保存以前的解析結(jié)果。因此, 這種讀取語(yǔ)言字符串方式只適合于讀取的語(yǔ)言字符串string個(gè)數(shù)不多,并且該 XML語(yǔ)言字符串資源文件本身也比較小的情況。
      圖6是本發(fā)明從字符串資源句柄中讀取語(yǔ)言字符串的實(shí)例流程,其通過(guò)圖 1所示的支持多語(yǔ)言用戶界面的系統(tǒng)IO來(lái)實(shí)現(xiàn),具體包括如下步驟
      步磾S601,申請(qǐng)保存語(yǔ)言字符串string的緩沖,并初始化語(yǔ)言字符串默認(rèn) 文本。
      步驟S602,定義字符串資源句柄,并初始化為空NULL。
      步驟S603,根據(jù)指定資源文件路徑名,調(diào)用打開(kāi)文件函數(shù)接口打開(kāi)相應(yīng)
      的XML語(yǔ)言字符串資源文件,打開(kāi)一個(gè)XML語(yǔ)言字符串資源文件,可以返
      回字符串資源句柄,也就是可以將對(duì)應(yīng)的字符串資源句柄打開(kāi)。
      步驟S604,判斷是否將對(duì)應(yīng)的字符串資源句柄打開(kāi),若打開(kāi)成功,則執(zhí)
      行步驟S605,否則執(zhí)行步驟S611 。
      步驟S605,搜索指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)object。
      步驟S606,判斷是否找到指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)object,
      若找到則執(zhí)行步驟S607,否則執(zhí)行步驟S611。
      步驟S607,讀取該語(yǔ)言字符串節(jié)點(diǎn)object的語(yǔ)言字符串string本身。 步驟S608,將所讀取的語(yǔ)言字符串string設(shè)置到若干控件進(jìn)行顯示,例如
      設(shè)置到按鈕或者菜單上顯示,或者直接輸出進(jìn)行顯示。
      步驟S609,判斷是否繼續(xù)讀取語(yǔ)言字符串string,若是則返回步驟S605,
      否則執(zhí)行步驟S610。
      步驟S610,關(guān)閉所述字符串資源句柄,以釋放所占用的內(nèi)存空間。
      步驟S611,若打開(kāi)字符串資源句柄失敗,或者沒(méi)有找到指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)object,則將初始化的語(yǔ)言字符串默認(rèn)文本設(shè)置到若干 控件進(jìn)行顯示,或者直接輸出進(jìn)行顯示。
      上述步驟S608和S611由系統(tǒng)IO的語(yǔ)言字符串顯示模塊13實(shí)現(xiàn),其余步 驟均由系統(tǒng)10的語(yǔ)言字符串資源讀取模塊12實(shí)現(xiàn)。在這種語(yǔ)言字符串讀取方 式中,每個(gè)XML語(yǔ)言字符串資源文件對(duì)應(yīng)一個(gè)字符串資源句柄,XML語(yǔ)言 字符串資源文件只解析一次,將解析好的結(jié)果保存在內(nèi)存中,再次使用時(shí)直接 調(diào)用字符串資源句柄即可,可以從該字符串資源句柄中讀取任意多次,適合于 連續(xù)讀取多個(gè)語(yǔ)言字符串string,其語(yǔ)言字符串string讀取效率高。
      圖7示出了本發(fā)明更新用戶界面語(yǔ)言的實(shí)例流程,其通過(guò)圖1所示的支持 多語(yǔ)言用戶界面的系統(tǒng)IO來(lái)實(shí)現(xiàn),具體包括如下步驟
      步驟S701,當(dāng)系統(tǒng)IO收到用戶更改當(dāng)前用戶界面語(yǔ)言類別時(shí),例如用戶 要求將當(dāng)前用戶界面從中文簡(jiǎn)體切換為英文,調(diào)用語(yǔ)言設(shè)置函數(shù)SetLanguage 接口。
      步驟S702,在該語(yǔ)言設(shè)置函數(shù)SetLanguage實(shí)現(xiàn)中改變當(dāng)前用戶界面語(yǔ)言 標(biāo)記,如將當(dāng)前用戶界面語(yǔ)言標(biāo)記從中文簡(jiǎn)體改為英文,并向已開(kāi)啟的操作平 臺(tái)界面和/或應(yīng)用程序界面發(fā)送語(yǔ)言改變廣播消息MSG一LNGCHANGE,這里 所述的已開(kāi)啟的操作平臺(tái)界面和/或應(yīng)用程序界面是指當(dāng)前操作平臺(tái)中所有開(kāi) 啟的窗口。
      步驟S703,所述已開(kāi)啟的操作平臺(tái)界面和/或應(yīng)用程序界面處理該語(yǔ)言改 變廣播消息MSG—LNGCHANGE,重新裝載新用戶界面語(yǔ)言標(biāo)記所對(duì)應(yīng)的語(yǔ) 言字符串string,例如重新裝載英文語(yǔ)言標(biāo)記所對(duì)應(yīng)的語(yǔ)言字符串string,以實(shí) 現(xiàn)操作平臺(tái)界面和應(yīng)用程序界面的當(dāng)前語(yǔ)言一致。
      步驟S704,將所述重新裝載的語(yǔ)言字符串string保存,并設(shè)置到若干控件 進(jìn)行顯示,或者直接輸出進(jìn)行顯示,例如顯示英文字符串。
      上述步驟S701-S703由系統(tǒng)10的語(yǔ)言字符串資源讀取j莫塊12實(shí)現(xiàn),而 步驟S704由系統(tǒng)10的語(yǔ)言字符串顯示模塊13實(shí)現(xiàn)。借此,當(dāng)用戶更改用戶 界面當(dāng)前語(yǔ)言時(shí),操作平臺(tái)界面與應(yīng)用程序界面的語(yǔ)言字符串string可動(dòng)態(tài)更 新,以實(shí)現(xiàn)當(dāng)前語(yǔ)言一致。
      綜上所述,本發(fā)明通過(guò)采用XML格式來(lái)保存用戶界面的多種語(yǔ)言的語(yǔ)言 字符串資源文件,實(shí)現(xiàn)了語(yǔ)言字符串資源文件與操作平臺(tái)和/或應(yīng)用程序的源碼分開(kāi)進(jìn)行管理,再根據(jù)需要讀取至少一用戶界面的XML語(yǔ)言字符串資源文 件,然后在用戶界面上顯示所讀取的語(yǔ)言字符串。借此,本發(fā)明移動(dòng)終端的用 戶界面不僅可以方便地實(shí)現(xiàn)對(duì)多語(yǔ)言的支持,如對(duì)中文、英文、日文或者韓文 支持等,并且可以靈活地添加對(duì)新語(yǔ)言的支持。
      當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情
      這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
      權(quán)利要求
      1、一種在移動(dòng)終端中支持多語(yǔ)言用戶界面的方法,其特征在于,所述方法包括如下步驟A、基于XML格式保存各種語(yǔ)言的語(yǔ)言字符串資源文件;B、讀取至少一用戶界面所需的XML語(yǔ)言字符串資源文件,并在所述用戶界面上顯示所讀取XML語(yǔ)言字符串資源文件的語(yǔ)言字符串。
      2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A進(jìn)一步包括 Al、建立一多語(yǔ)言根目錄,并根據(jù)所支持的語(yǔ)言種類建立對(duì)應(yīng)的若干語(yǔ)言目錄;A2、將所有用戶界面各種語(yǔ)言的語(yǔ)言字符串資源文件采用XML格式存儲(chǔ) 在所述多語(yǔ)言根目錄下;并將每種語(yǔ)言的XML語(yǔ)言字符串資源文件分別存儲(chǔ) 于對(duì)應(yīng)的語(yǔ)言目錄中,且同 一用戶界面的XML語(yǔ)言字符串資源文件在不同的 語(yǔ)言目錄下保持資源文件名稱一致。
      3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述用戶界面的XML語(yǔ) 言字符串資源文件中采用支持DOM樹(shù)解析的XML解析器,所述XML解析 器對(duì)所述一 XML語(yǔ)言字符串資源文件進(jìn)行解析時(shí)將生成DOM樹(shù)結(jié)構(gòu),所述 DOM樹(shù)結(jié)構(gòu)中包括一個(gè)根節(jié)點(diǎn)和若干層語(yǔ)言字符串節(jié)點(diǎn),所述每個(gè)語(yǔ)言字符 串節(jié)點(diǎn)中包括一個(gè)唯一標(biāo)識(shí)一語(yǔ)言字符串的語(yǔ)言字符串ID號(hào)和一個(gè)語(yǔ)言字符 串本身。
      4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B中用戶界面直 接從XML語(yǔ)言字符串資源文件中讀取語(yǔ)言字符串,其調(diào)用讀取語(yǔ)言字符串函 數(shù)接口,并根據(jù)指定的資源文件路徑名及語(yǔ)言字符串ID號(hào),確定并讀取所對(duì) 應(yīng)的語(yǔ)言字符串。
      5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述資源文件路徑名為一 個(gè)應(yīng)用程序界面的XML語(yǔ)言字符串資源文件的資源文件^4圣名;或者所述資源文件路徑名為一個(gè)操作平臺(tái)的功能界面的XML語(yǔ)言字符串資源 文件的資源文件路徑名。
      6、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟B中用戶界面直 接從XML語(yǔ)言字符串資源文件中讀取語(yǔ)言字符串的步驟進(jìn)一步包括BlOl、申請(qǐng)保存語(yǔ)言字符串的緩沖,并初始化語(yǔ)言字符串默認(rèn)文本; B102、調(diào)用讀取語(yǔ)言字符串函數(shù)接口,并分別傳入指定的資源文件路徑名、語(yǔ)言字符串ID號(hào)、保存語(yǔ)言字符串的字符串緩沖指針以及讀取的字符個(gè)數(shù);B103、根據(jù)傳入的資源文件路徑名以及當(dāng)前用戶界面語(yǔ)言標(biāo)記,打開(kāi)對(duì) 應(yīng)的XML語(yǔ)言字符串資源文件進(jìn)行解析,若解析成功則執(zhí)行步驟B104,否 則執(zhí)行步驟B107;B104、在解析生成的DOM樹(shù)結(jié)構(gòu)中,搜索指定語(yǔ)言字符串ID號(hào)的語(yǔ)言 字符串節(jié)點(diǎn),若找到指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)則執(zhí)行步驟B105, 否則執(zhí)行步驟B107;B105、將所述語(yǔ)言字符串節(jié)點(diǎn)的語(yǔ)言字符串本身復(fù)制到字符串緩沖指針 所對(duì)應(yīng)的內(nèi)存位置;B106、將所讀取的語(yǔ)言字符串設(shè)置到若干控件進(jìn)行顯示,或者直接輸出 進(jìn)行顯示;B107、將初始化的語(yǔ)言字符串默認(rèn)文本設(shè)置到若干控件進(jìn)行顯示,或者 直接輸出進(jìn)行顯示。
      7、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B中用戶界面從 XML語(yǔ)言字符串資源文件的字符串資源句柄中讀取語(yǔ)言字符串,其調(diào)用打開(kāi) 文件函數(shù)接口打開(kāi)XML語(yǔ)言字符串資源文件,進(jìn)而打開(kāi)所述字符串資源句柄, 再才艮據(jù)指定語(yǔ)言字符串ID號(hào),確定并讀取對(duì)應(yīng)的語(yǔ)言字符串。
      8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟B中用戶界面從 XML語(yǔ)言字符串資源文件的字符串資源句柄中讀取語(yǔ)言字符串的步驟進(jìn)一步 包括B201、申請(qǐng)保存語(yǔ)言字符串的緩沖,并初始化語(yǔ)言字符串默認(rèn)文本; B202、定義字符串資源句柄,并初始化為空;B203、根據(jù)指定資源文件路徑名,調(diào)用打開(kāi)文件函數(shù)接口打開(kāi)相應(yīng)的XML 語(yǔ)言字符串資源文件,并判斷是否將對(duì)應(yīng)的字符串資源句柄打開(kāi),若打開(kāi)成功, 則執(zhí)行步驟B204,否則執(zhí)行步驟B209;B204、搜索指定語(yǔ)言字符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn),若找到指定語(yǔ)言字 符串ID號(hào)的語(yǔ)言字符串節(jié)點(diǎn)則執(zhí)行步驟B205,否則執(zhí)行步驟B209;B205、讀取該語(yǔ)言字符串節(jié)點(diǎn)的語(yǔ)言字符串本身;B206、將所讀取的語(yǔ)言字符串設(shè)置到若干控件進(jìn)行顯示,或者直接輸出 進(jìn)行顯示;B207、判斷是否繼續(xù)讀取語(yǔ)言字符串,若是則返回步驟B204,否則執(zhí)行 步驟B208;B208、關(guān)閉所述字符串資源句柄;B209、將初始化的語(yǔ)言字符串默認(rèn)文本設(shè)置到若干控件進(jìn)行顯示,或者 直接輸出進(jìn)行顯示。
      9、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B進(jìn)一步包括 B301、需要切換當(dāng)前用戶界面語(yǔ)言的類別時(shí),調(diào)用語(yǔ)言設(shè)置函數(shù)接口; B302、在該語(yǔ)言設(shè)置函數(shù)實(shí)現(xiàn)中改變當(dāng)前用戶界面語(yǔ)言標(biāo)記,并向已開(kāi)啟的操作平臺(tái)界面和/或應(yīng)用程序界面發(fā)送語(yǔ)言改變廣播消息;B303、所述操作平臺(tái)界面和/或應(yīng)用程序界面處理該語(yǔ)言改變廣播消息,并重新裝載新用戶界面語(yǔ)言標(biāo)記所對(duì)應(yīng)的語(yǔ)言字符串;B304、將所述重新裝載的語(yǔ)言字符串保存,并設(shè)置到若干控件進(jìn)行顯示,或者直接輸出進(jìn)行顯示。
      10、 一種實(shí)現(xiàn)如權(quán)利要求1~9任一項(xiàng)所述方法的支持多語(yǔ)言用戶界面的系 統(tǒng),該系統(tǒng)應(yīng)用于移動(dòng)終端中,其特征在于,所述系統(tǒng)至少包括語(yǔ)言字符串資源存儲(chǔ)模塊,用于采用XML格式保存各種語(yǔ)言的語(yǔ)言字符 串資源文件;語(yǔ)言字符串資源讀取模塊,用于從所述語(yǔ)言字符串資源存儲(chǔ)模塊中讀取至 少一用戶界面所需的XML語(yǔ)言字符串資源文件;語(yǔ)言字符串顯示模塊,用于在用戶界面上顯示所述語(yǔ)言字符串資源讀取模 塊所讀取的XML語(yǔ)言字符串資源文件的語(yǔ)言字符串。
      全文摘要
      本發(fā)明公開(kāi)了一種在移動(dòng)終端中支持多語(yǔ)言用戶界面的方法,包括基于XML格式保存各種語(yǔ)言的語(yǔ)言字符串資源文件;讀取至少一用戶界面所需的XML語(yǔ)言字符串資源文件,并在用戶界面上顯示所讀取XML語(yǔ)言字符串資源文件的語(yǔ)言字符串。相應(yīng)地,本發(fā)明還提供一種支持多語(yǔ)言用戶界面的系統(tǒng)。本發(fā)明通過(guò)XML格式來(lái)保存多種語(yǔ)言的語(yǔ)言字符串資源文件,實(shí)現(xiàn)了語(yǔ)言字符串資源文件與操作平臺(tái)和/或應(yīng)用程序的源碼分開(kāi)進(jìn)行管理,再根據(jù)需要讀取至少一用戶界面的XML語(yǔ)言字符串資源文件,然后在用戶界面上顯示所讀取的語(yǔ)言字符串。借此,本發(fā)明移動(dòng)終端的用戶界面不僅可以方便地實(shí)現(xiàn)對(duì)多語(yǔ)言的支持,并且可靈活地添加對(duì)新語(yǔ)言的支持。
      文檔編號(hào)G06F9/44GK101441567SQ200810217830
      公開(kāi)日2009年5月27日 申請(qǐng)日期2008年11月18日 優(yōu)先權(quán)日2008年11月18日
      發(fā)明者周佐華, 郭和平 申請(qǐng)人:宇龍計(jì)算機(jī)通信科技(深圳)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1