c# - 多语言 WPF 应用程序

标签 c# wpf globalization multilingual culture

我正在使用多种语言(阿拉伯语和英语) 资源位于两个不同文件中的 WPF 应用程序(Resources.en-GB 和 Resources.ar-LY), 我在 app.xaml 中声明了一个新方法

public void LanguageSwitcher(string _currentUICulture)
    {
        System.Threading.Thread.CurrentThread.CurrentUICulture =
                                new System.Globalization.CultureInfo(_currentUICulture);
    }

MainWindow 和 Initialize Component 之后我放了

((App)Application.Current).languageSwitcher("ar-LY");

        this.FlowDirection =
            CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft ?
                FlowDirection.RightToLeft :
                FlowDirection.LeftToRight;

在语言切换器按钮中,我调用方法并传递我想要的 en-GB 文化

((App)Application.Current).languageSwitcher("en-GB");

问题:当我点击语言按钮将 UI 更改为英语时,文化发生了变化并且窗口流向更改为从左到右但是文本没有改变, Resources.en-GB 似乎没有加载!

我在这里想念什么?!

最佳答案

更改区域性后,您需要重新加载每个标签组件。 可以在更改文化后尝试打开新窗口并检查创建的组件是否已更改。

关于c# - 多语言 WPF 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51638316/

相关文章:

c# - 使用多个 id 从列表中选择项目

c# - 在 C# 中初始化字典返回溢出错误

javascript - 如何在 mvc 5 上使用 cdn javascript 文件

wpf - 鼠标悬停时更改 ListViewItem 背景颜色

asp.net - 如何在ASP.NET全局化中配置不变文化?

c# - 我如何处理 C# 中的异常?

c# - 基于 Windows 窗体的应用程序布局/模板

c# - 应用程序.Current.Shutdown();在未引用的程序集中定义

asp.net - CurrentCulture 在 ASP.net 中错误地默认为 en-US

asp.net-mvc-2 - 如何使全局化与 MVC2 和 jquery 一起工作?