获取系统语言UWP C ++ / WinRT

问题描述

我想在C ++ / WinRT应用程序中获取系统语言(而不是输入语言,而是整体系统语言),但是找不到这样做的方法。我搜索了一下,发现在Unity中可以使用System.Globalization.CultureInfo.CurrentCulture结构来完成,这在C ++代码中不可用。有人熟悉吗?

解决方法

获取系统语言UWP C ++ / WinRT

您可以使用Language类来获取系统语言。首先,您需要包括所需的头文件。例如:

sprintf

更新

当您更改区域格式时,日期,时间等将更改其格式,您可以使用DateTimeFormatter的ResolvedLanguage获得最近用于格式化日期和时间的语言。例如:

#include <winrt/Windows.System.UserProfile.h>
#include <winrt/Windows.Globalization.h>

void MainPage::ClickHandler(IInspectable const&,RoutedEventArgs const&)
{
    auto topUserLaunghage = Windows::System::UserProfile::GlobalizationPreferences::Languages().GetAt(0);
    Windows::Globalization::Language language{topUserLaunghage};
    hstring displayName = language.DisplayName();
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...