检测操作系统语言

vit*_*ida 2 c++ qt operating-system

我想检测安装在我的操作系统上的语言。为此,我跑了:

qDebug() << QLocale::system();
// result = QLocale(English, Latin, UnitedStates)
Run Code Online (Sandbox Code Playgroud)

但我想将它保存在 QString 中,但不可能这样做:

QString langs = QLocale::system().toString();
Run Code Online (Sandbox Code Playgroud)

如何将此结果保存在字符串中?或者有没有更好的方法来检测操作系统语言?另一件事,是否可以检测键盘语言设置(如果可能,使用 Qt)?

Ben*_*p44 5

QLocale文档表明:

QLocale 支持默认语言环境的概念,该概念由应用程序启动时系统的语言环境设置确定

因此,要获得系统默认语言的不同表示,QLocale 上的以下一种或多种方法可能会对您有所帮助:

qDebug() << QLocale::system().name();
qDebug() << QLocale::system().nativeCountryName();
qDebug() << QLocale::system().nativeLanguageName();
Run Code Online (Sandbox Code Playgroud)

示例输出:

"en_GB"
"United Kingdom"
"British English"
Run Code Online (Sandbox Code Playgroud)

在 GUI 应用程序中,您可以获得输入法的类似详细信息,如下所示:

qDebug() << QGuiApplication::inputMethod()->locale().name();
Run Code Online (Sandbox Code Playgroud)