1. 程式人生 > >windowsclient開發--為你的client進行國際化

windowsclient開發--為你的client進行國際化

asc lan ret tro 不同 顯示 tip 工作 ber

之前博客講過函數:
GetUserDefaultUILanguage
Returns the language identifier for the user UI language for the current user.

我們國際化主要是支持三種語言,中文簡體、繁體中文、以及英文。

獲得用戶使用語言
所以我們能夠通過GetUserDefaultUILanguage函數來推斷用戶使用的是何種語言:

int response_code = GetUserDefaultUILanguage();
    switch (response_code)
    {
    case
2052: //顯示中文簡體 break; case 1028: //顯示繁體中文 break; default: //其它情況都使用英文 break; }

創建對應的xml
前一篇關於windowsclient的博客也介紹了怎樣使用tinyxml來解析xml。也為我們的國際化做了鋪墊。

所以。我們能夠創建三個xml文件,各自是
simple_chinese.xml
traditional_chinese.xml
English.xml

這三個xml文件裏。每一個節點的key同樣。value不同。
比方在simple_chinese.xml中這樣寫:

<?xml version="1.0" encoding="utf-8"?>  
<Strings>  
  <!--close button tip-->  
  <String>  
    <StringKey>CloseTips</StringKey>  
    <StringValue>關閉</StringValue>  
  </String>  
<Strings>  

在traditional_chinese.xml中能夠這麽寫:

<?xml version="1.0" encoding="utf-8"?

> <Strings> <!--close button tip--> <String> <StringKey>CloseTips</StringKey> <StringValue>關閉</StringValue> </String> <Strings>

而在English.xml中就能夠這麽寫:

<?xml version="1.0" encoding="utf-8"?>  
<Strings>  
  <!--close button tip-->  
  <String>  
    <StringKey>CloseTips</StringKey>  
    <StringValue>close</StringValue>  
  </String>  
<Strings> 

這樣呢,就會依據用戶使用的語言來讀取對應的xml文件。能夠把xml文件裏的內容讀取到map中,然後剩下的工作就是在程序代碼中顯示了。

windowsclient開發--為你的client進行國際化