wp7中的应用程序级本地化

时间:2013-10-07 07:05:56

标签: c# windows-phone-7 windows-phone-8 localization in-app

我需要在wp7中为我的应用程序提供多语言支持。用户可以在应用程序内设置语言。因此,每当语言发生变化时,我都需要更改使用的字符串。如何维护资源文件并以更好的方式在应用程序本地化中执行?与设备显示语言无关。

1 个答案:

答案 0 :(得分: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定义了所有可用的文本。在语言切换时,Localized将新值设置为Labels属性并引发PropertyChanged。

但是,我怀疑这样的应用程序是否会通过认证。为什么有人甚至需要应用程序内语言切换默认行为?