在QLocale中,
如何从语言名称中找到“两个字母的ISO 639语言代码”?例如,'English',它的两个字母的代码是: en。‘中文’,它的两个字母代码是: zh
如果我知道语言名称,例如"English",我们是否有一个函数可以返回它的两个字母的代码,例如'en'?
我查看了“QLocale”类,但没有找到用于此目的的方法。
发布于 2019-07-10 15:46:07
您可以遍历所有语言环境以找到所需的实例,然后使用bcp47Name()方法
QString strLang = "Chinese";
QList<QLocale> allLocales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyCountry);
for (int iLocale = 0; iLocale < allLocales.count(); iLocale++)
{
if (QLocale::languageToString(allLocales.at(iLocale).language()) == strLang)
{
if (allLocales.at(iLocale).bcp47Name().length() == 2) {
qDebug() << allLocales.at(iLocale).bcp47Name();
}
}
}https://stackoverflow.com/questions/56957340
复制相似问题