【问题标题】:External .resx files during runtime运行时的外部 .resx 文件
【发布时间】:2011-08-11 08:23:05
【问题描述】:

如果我想本地化 WPF 应用程序,我有什么选择。我希望可以选择为语言填充 .resx 文件,这很有效。但是我需要在运行时从文件中获取语言。

所以我的问题是:是否可以在 WPF 应用程序中获取外部 .resx。并在运行时更改语言?还是我从错误的角度看待这个问题?

【问题讨论】:

  • 我正在寻找相同的功能,您有没有找到解决方案?

标签: wpf localization resx


【解决方案1】:

为什么不直接编译你的 resx 文件和你的默认资源呢?

Thread.CurrentThread.CurrentUICulture 设置为您想要的文化,然后调用ResourceManager.GetString() 设置您的本地化属性。

如果您想获得另一种文化,请使用overload。比如:

    public static string GetStringForCurrentUICulture(string name)
    {
        var value = _resourceManager.GetString(name, CultureInfo.CurrentUICulture);
        return value;
    }

要动态添加资源,请使用适当的 ResourceManager constructor,它允许您指定资源及其包含的程序集。

【讨论】:

  • 是的,我现在正在做这件事,但我想知道是否有可能在不构建到应用程序的情况下获取这些文件。就像我在应用程序中有 3 种语言,我想向应用程序添加新语言,我需要再次构建这个应用程序并使用它。但我想知道是否可以将 resx(或其他类型)文件添加到 app 目录中,并将这种语言附加到现有语言中。
【解决方案2】:

您可以使用 LocBaml Tool 本地化 wpf 应用程序 这有助于创建 resx 文件并映射到 xaml

【讨论】:

  • 是的,我读过这个工具,但我想知道,如果我能够创建 resx 文件,只需将它们添加到目录并使用它们而不构建到应用程序(不编译)跨度>
  • @IgorisAzanovas 我正在寻找相同的功能,你有没有找到解决方案?
  • @faldeland 最后,我制作了使用数据库的本地化包装器,如果找不到,它将尝试从资源中访问。我当时找不到更好的解决方案。
猜你喜欢
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 2011-09-18
  • 1970-01-01
相关资源
最近更新 更多