使用.resx文件本地化Prism 4模块

本文关键字:模块 Prism 本地化 resx 文件 使用 | 更新日期: 2023-09-27 18:29:05

我正在开发一个模块化的Prism应用程序。在一些带有resx文件的本地化WPF客户端(localized.resx、localized.de.resx等)之后,我认为我可以将此技术应用于我的棱镜模块。但是模块总是采用默认resx。

有什么建议吗?

提前感谢

使用.resx文件本地化Prism 4模块

很抱歉,用短信解释这一点并不容易。所以我写了一个非常简单的棱镜项目和一个可行的解决方案。

尝试下载此示例

我发现,我的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")));
}