获取Qt5中的语言列表

埃尔库科

我想从中获取ISO 639语言的列表QLocale我可以使用此代码来获取语言/国家/地区的所有组合。

QList<QLocale> allLocales = QLocale::matchingLocales(
        QLocale::AnyLanguage,
        QLocale::AnyScript,
        QLocale::AnyCountry);

这正是我所需要的。我认为我可以手动过滤出列表,但是是否存在更好的选择?

dom0

您可以执行此操作,也可以执行不尽人意的操作(请参阅本文结尾),并手动从列表中过滤重复的语言,例如,如果您想要ISO 639语言名称:

QList<QLocale> allLocales = QLocale::matchingLocales(
            QLocale::AnyLanguage,
            QLocale::AnyScript,
            QLocale::AnyCountry);
QSet<QString> iso639Languages;

for(const QLocale &locale : allLocales) {
    iso639Languages.insert(QLocale::languageToString(locale.language()));
}

qDebug() << iso639Languages;

iso639Languages然后包含由ISO 639分类并由Qt已知的所有语言的名称。请注意,它确实包含语言名称(例如德语),而不包含ISO 639代码(例如de)。

如果您需要ISO 639代码,请执行以下操作:

QList<QLocale> allLocales = QLocale::matchingLocales(
            QLocale::AnyLanguage,
            QLocale::AnyScript,
            QLocale::AnyCountry);
QSet<QString> iso639LanguageCodes;

for(const QLocale &locale : allLocales) {
    iso639LanguageCodes.insert(locale.name().split('_').first());
}

qDebug() << iso639LanguageCodes;

也可以QLocale通过手动遍历QLocale::Language枚举然后解析结果来构造对象我强烈建议不要这样做,因为此枚举可能会更改(例如Qt 5.3确实如此),然后您的应用程序将无法捕获新的语言,直到您手动更新迭代范围。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用于网络语言的HighLighter库Qt5 / C ++

来自分类Dev

在Qt5中创建QVideoWidget

来自分类Dev

在QT5中实现原子队列

来自分类Dev

QT5中的信号和插槽

来自分类Dev

Qt5中的OpenGl实例渲染

来自分类Dev

Qt5 QListView在水平行而不是垂直列表中设置项目

来自分类Dev

在Qt5中处理QRegularExpressions中的重音字母

来自分类Dev

在Qt5中更改QGraphicsScene / View中的Pixmap位置

来自分类Dev

在Qt5中更改QGraphicsScene / View中的Pixmap位置

来自分类Dev

在Qt5中处理QRegularExpressions中的重音字母

来自分类Dev

Qt5路径中的转义空间

来自分类Dev

Qt5换行符在翻译文本中?

来自分类Dev

SVG图标未出现在Qt5中

来自分类Dev

Qt5中的QX11EmbedWidget对应什么?

来自分类Dev

在OS X上的Qt5中支持Retina

来自分类Dev

如何检测Qt5中的QObject :: moveToThread()故障?

来自分类Dev

使用动态插件在Qt5中处理QMetaType注册

来自分类Dev

如何在Qt5中检查url是否可用?

来自分类Dev

如何修复Qt5中的gstreamer错误?

来自分类Dev

在OSX 10.10的Qt5中找不到OpenCV库

来自分类Dev

在Cygwin中找不到QT5的Qmake

来自分类Dev

在Qt5中以Multipart表单数据上传文件

来自分类Dev

Qt5 ColorDialog中的仅颜色渐变

来自分类Dev

Qt5换行符在翻译文本中?

来自分类Dev

Qt5 Designer Ui文件中的QSystemTrayIcon

来自分类Dev

14.04中Qt5的开发包是什么

来自分类Dev

怎么做-QlineEdit中的QToolButton:Qt5

来自分类Dev

OSX上Qt5 / QtCreator 3.0.1中的C ++ 11

来自分类Dev

Qt5 + OS X Mavericks中的glVertexAttribDivisor