获取特定语言的国家名称,而不是系统范围内选择的语言

Get country name in specific language, other than the system wide selected language

我需要解决以下问题。看似简单,但我卡住了。

我正在编写一个转换器,它将一个国家的地理区域代码作为输入,并且应该 return 应用程序显示语言中的国家名称。

示例(目标功能)

应用语言:"FR"

输入:"US"

输出:“États Unis”

为此我使用了下面的代码。

  public object Convert(object value, Type targetType, object parameter, string language)
    {
        string countryCode = (string)value;                       
        var country = new Windows.Globalization.GeographicRegion(countryCode);
        return country.DisplayName;

    }

问题在于它 return 是系统范围内选择的语言中的国家/地区。例如。

示例 2

系统语言:"en-US"

应用程序语言(通过 PrimaryLanguageOverride 设置):"FR"

输入:"US"

输出:美国

我怀疑发生的事情是 Windows.Globalization.GeographicRegion class 从系统范围设置而不是从应用程序文化设置获取文化数据。

有人知道解决这个问题的方法吗?

有没有办法为转换器将 运行 加入的线程设置不同的文化?

GeographicRegion.DisplayName可以得到一个适合显示给用户识别地区的本地化字符串。但此功能需要安装相应的语言包。

例如,要以法语显示地区,我们需要安装法语语言包,方法是打开设置→时间和语言→地区和语言→添加一种语言.

请注意,我们不需要将法语设置为默认语言,因此系统语言仍然是英语。

安装法语语言包后,您的代码应该可以return法语的本地化区域名称。例如,当您输入 "US" 时,输出应为“États-Unis”。