2013年2月24日 星期日

Windows Phone設置預設語言

PhoneGap雖然有提供地域和語言的相關API,但悲劇地是並不支援Windows Phone 7.5/7.8,因此需要自行添加此功能,簡單流程如下:


1. 加入已設置好各國語言的字串變數 :

var gLanguageIndex = EN; // 目前預設語言 

var ZH = 0; // 繁
var CN = 1; // 簡
var EN = 2; // 英
var JA = 3; // 日
var KO = 4; // 韓

var STR_NORMAL = new Array( "一般", "一般", "Normal", "一般", "일반" );
var STR_SHADOW = new Array( "陰影", "阴影", "Shadow", "影", "그림자" );
var STR_HALO = new Array( "光暈", "光晕", "Halo", "暈", "후광" );


2. 在任一js檔中加入設置預設語言的javascript function :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 設置預設語言
function setDefaultLanguage( language )
{
    if ( ON_DEVICE ) // 實機
    {
        if ( language.toUpperCase().match( "TW" ) )
        {
            gLanguageIndex = TW;
        }
        else if ( language.toUpperCase().match( "CN" ) )
        {
            gLanguageIndex = CN;
        }
        else if ( language.toUpperCase().match( "EN" ) )
        {
            gLanguageIndex = EN;
        }
        else if ( language.toUpperCase().match( "JA" ) )
        {
            gLanguageIndex = JA;
        }
        else if ( language.toUpperCase().match( "KO" ) )
        {
            gLanguageIndex = KO;
        }
        else
        {
            gLanguageIndex = EN; // 預設語言
        }
    }
    else // 非實機
    {
        gLanguageIndex = TW;
    }
}


3. 在CordovaView.xaml.cs中加入設置預設語言的C# function :

1
2
3
4
5
6
7
8
9
// 設置預設語言
public void SetDefaultLanguage()
{
    String language = CultureInfo.CurrentUICulture.Name;
    Debug.WriteLine("語言:" + language);

    // 設置跟系統相同的顏色
    CordovaBrowser.InvokeScript("setDefaultLanguage", new String[1] { language }); 
}


4. 在CordovaView.xaml.cs的GapBrowser_LoadCompleted()呼叫設置預設語言的C# function :

1
2
3
4
5
6
void GapBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    //CordovaBrowser.Opacity = 1;
    Debug.WriteLine("GapBrowser_LoadCompleted :: " );
    SetSystemColor(); // 設置系統背景顏色和色塊顏色
    SetDefaultLanguage(); // 設置預設語言

沒有留言:

張貼留言