如何向Symbian C++程式中添加多語言支援)

來源:互聯網
上載者:User

如何向Symbian C++程式中添加多語言支援

開發環境:S60_3rd_FP2 SDK/ Carbide C++ 1.3.2

第一步:編寫本地化內容

在項目中添加需要提供語言支援的內容,按照語言代碼,如簡體中文為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檔案。


如何向Symbian C++程式中添加多語言支援

開發環境:S60_3rd_FP2 SDK/ Carbide C++ 1.3.2

第一步:編寫本地化內容

在項目中添加需要提供語言支援的內容,按照語言代碼,如簡體中文為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檔案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.