我使用资源本地化Silverlight应用程序时遇到问题.我想让我的多语言机制成为跨平台,这就是为什么我将所有可本地化的资源放在Portable Class Library类型的项目中.在这个项目中,我创建了两个资源文件Localization.resx和Localization.en.resx,并在两个文件中将public和"access modifier"设置为public.然后我创建了名为"LocalizationProxy"的代理类,它是一个启用绑定的代理类.
public class LocalizationProxy : INotifyPropertyChanged
{
public Localization LocalizationManager { get; private set; }
public LocalizationProxy()
{
LocalizationManager = new Localization();
}
public void ResetResources()
{
OnPropertyChanged(() => LocalizationManager);
}
#region INotifyPropertyChanged region
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged<T>(Expression<Func<T>> selector)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(GetPropertyNameFromExpression(selector)));
}
}
public static string GetPropertyNameFromExpression<T>(Expression<Func<T>> property)
{
var lambda = (LambdaExpression)property;
MemberExpression memberExpression;
if (lambda.Body is UnaryExpression)
{
var unaryExpression = (UnaryExpression)lambda.Body;
memberExpression = (MemberExpression)unaryExpression.Operand; …
Run Code Online (Sandbox Code Playgroud) localization silverlight-4.0 windows-phone-7 localizable.strings