2012-09-21 56 views
1

我開發一個WPF的MVVM應用程序,支持多語言(全球化)如下NÚMERO去電話:如何用法語顯示電話號碼的文本在WPF的MVVM應用

  1. 我已經創建了一個資源經理爲:

    ResourceManager rm = new System.Resources.ResourceManager("MultiLang.string", 
                  Assembly.GetExecutingAssembly()); 
    
  2. 我已經創建了兩個RESX文件,如string.fr.resx,string.en.resx如下:

    在string.fr.resx,我已經Ø創建

    Name:User_PhoneNo_Label 
    Value:Num\u00e9ro de t\u00e9l\u00e9phone 
    
  3. 現在,例如,如果用戶從列表中選擇法語,我想爲User_PhoneNo_Label顯示值如下:作爲NE屬性

    Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLangCode); 
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(sLangCode); 
    User_PhoneNo_Label = rm.GetString("User_PhoneNo_Label"); 
    

    這裏sLangCode是代碼,如FR或基於用戶選擇。在法國

  4. 價值User_PhoneNo_Label應顯示爲「NÚMERO去電話」,但現在它會顯示爲「編號\ u00e9ro德牛逼\ u00e9l \ u00e9phone」。

請讓我知道這個問題的解決方案。

+0

在這裏,我問的是如何將「Num \ u00e9ro de \ u00e9l \ phone」變成「Numérodetéléphone」。 – skumar

回答

1

只需將要顯示的文本作爲資源字符串的值。

+0

是的我想顯示資源字符串的值爲User_PhoneNo_Label = rm.GetString(「User_PhoneNo_Label」);.但它將返回值爲「Num \ u00e9ro de \ u00e9l \ u00e9phone」而不是「Numérodetéléphone」。 – skumar

+0

@skumar:你不明白我的答案。不要在您的資源文件中轉義unicode字符。只需將法文文本保存在那裏,並確保資源文件保存爲UTF-8 –

+0

這裏我有一個文件包含法文內容,例如「Num \ u00e9ro de \ u00e9l \ u00e9phone」等同的英文文本「電話號碼」 。因此,我將給定的法國文件中的值保存到資源文件中,並且在內部化UI組件時,我從資源文件獲取值以在UI中顯示它。請讓我知道我的方法是否正確。 – skumar

相關問題