【问题标题】:How can I detect the device culture settings in a Windows Store App?如何检测 Windows 应用商店应用程序中的设备文化设置?
【发布时间】:2014-02-07 16:52:14
【问题描述】:

我有用于返回应用语言信息的 Windows 应用商店应用的 C# 代码。如果我的应用配置为支持“fr”并且设备设置为该语言,则该应用确定应用语言信息为“fr”。

但如果应用程序未配置为支持“es”并且设备设置为特定语言“es”,我无法找到检测设备设置的方法。我只得到默认的应用语言。

我认为获取设备信息是不可能的,只能获取设备传递给应用的关于使用什么语言的信息。但我需要确定这一点,因为我的项目很大程度上取决于设备和应用语言设置。

坦率地说,我想编写仅支持英语的应用程序,但能够告诉用户他们的设备配置为法语或西班牙语等......有什么技巧可以使这个工作?

这是告诉我应用程序可以看到的所选语言代码的代码。请注意,如果应用不支持设备语言,这不会告诉我设备设置:

using System.Globalization;
...
CultureInfo ci = CultureInfo.CurrentUICulture;
Data.Add( "language", ci.TwoLetterISOLanguageName ); //My own code that adds the two letter code special data object

【问题讨论】:

  • 你是如何检测的?
  • 我更新了我的问题以显示代码。如果应用不是为支持设备文化设置而构建的,则此代码将不会显示设备文化设置。

标签: c# xaml windows-store-apps cultureinfo culture


【解决方案1】:

我在这个帖子里找到了答案:

How to get actual language in a WinRT app?

使用 Windows.System.UserProfile.GlobalizationPreferences.Languages[0] 将为我提供用户在时间和语言下的 Metro 风格 PC 设置中设置的语言设置。此选择似乎不会更改 Windows 操作系统的显示语言,这正是我真正想要的。但这似乎会在更改操作系统显示语言时自动更改,因此它可能是用于此目的的正确功能。

另一个线程是关于 Windows Phone 的,但这适用于我用 C# 编写的 Windows 8 Store 应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多