我需要在wp7中为我的应用程序提供多语言支持。用户可以在应用程序内设置语言。因此,每当语言发生变化时,我都需要更改使用的字符串。如何维护资源文件并以更好的方式在应用程序本地化中执行?与设备显示语言无关。
答案 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。
但是,我怀疑这样的应用程序是否会通过认证。为什么有人甚至需要应用程序内语言切换默认行为?