我正在开发一个模块化的Prism应用程序。在一些带有resx文件的本地化WPF客户端(localized.resx、localized.de.resx等)之后,我认为我可以将此技术应用于我的棱镜模块。但是模块总是采用默认resx。
有什么建议吗?
提前感谢
很抱歉,用短信解释这一点并不容易。所以我写了一个非常简单的棱镜项目和一个可行的解决方案。
尝试下载此示例
我发现,我的ResourceManager在其特定语言的ResourceSet中有错误的值。请参阅我的新主题
实际上这很容易,只需确保在app.xaml.cs中的CreateShell()中强制进行本地化,如下所示:
protected override Window CreateShell()
{
SetLocalization();
return Container.Resolve<MainWindow>();
}
SetLocalization()方法可以是这样的:
private void LoadLocalizationFromSettings()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");
//set pc default localization to be used in the XAML gui
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata("en-us")));
}