2013-10-07 50 views
1

我需要在wp7中爲我的應用做多語言支持。用戶可以在應用程序中設置語言。所以每當語言改變時,我需要改變使用的字符串。如何維護資源文件並有更好的應用本地化表現方式?與設備顯示語言無關。wp7中的應用級本地化

回答

0

在默認的本地化方案中,您有一個具有資源文件屬性的Localized類。您將.xaml綁定到該屬性的屬性。也就是說,對於您的Labels.resx文件,您有:

public class Localized 
{ 
    private static Labels labels = new Labels(); 

    public Labels Labels { get { return labels; } } 
} 

的保護您的.xamls簡單的變化會是這樣的:

public class Localized : INotifyPropertyChanged 
{ 
    public ILabels Labels { ... } 
} 

// defines all the keys that you use in your .resx files 
public interface ILabels 
{ 
    string MainWindowHeader { get; } 
    string OkLabel { get; } 
    ... 
} 

EnglishLabels : ILabels; 
GermanLabels: ILabels; 

ILabels定義了所有可用的文本。語言切換時,本地化將爲標籤屬性設置一個新值,並引發PropertyChanged。

但是,我懷疑這樣的應用程序會通過認證。爲什麼有人甚至需要應用程序內語言切換默認行爲?

+0

您會詳細說明如何使用ILabels?可能在一些示例代碼中。 – Shilpa

+0

@Shilpa一些編輯。該解決方案基於Windows Phone本地化的默認方式。如果你問,這是如何完成的,請參閱http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff637520(v=vs.105).aspx。 ChangeLanguageCommand只需要從App ResourceDictionary獲取Localized的引用即可。 – lisp

+0

默認方式是設備級本地化是否正確?我需要在應用本地化中。不管怎麼說,多謝拉。 – Shilpa