Return "en" for QLocale::c().bcp47Name()
Currently QLocale::c().bcp47Name() returns "C" which, according to [BCP47], is not a valid language tag. In particular it does not conform to the ABNF grammar in section 2.1 which specifies a minimum length of 2 characters for all language tags. [BCP47]: https://tools.ietf.org/html/bcp47 This patch changes the return value to "en" seeing as the documentation for QLocale::Language states that the C language is identical in behavior to English. Task-number: QTBUG-61949 Change-Id: I2a381def8fb7156467e01d105da92bb1f4821204 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
2031196ad1
commit
af7e756155
|
|
@ -328,7 +328,7 @@ QByteArray QLocalePrivate::bcp47Name(char separator) const
|
|||
if (m_data->m_language_id == QLocale::AnyLanguage)
|
||||
return QByteArray();
|
||||
if (m_data->m_language_id == QLocale::C)
|
||||
return QByteArrayLiteral("C");
|
||||
return QByteArrayLiteral("en");
|
||||
|
||||
QLocaleId localeId = QLocaleId::fromIds(m_data->m_language_id, m_data->m_script_id, m_data->m_country_id);
|
||||
return localeId.withLikelySubtagsRemoved().name(separator);
|
||||
|
|
|
|||
|
|
@ -2529,7 +2529,7 @@ void tst_QLocale::textDirection()
|
|||
|
||||
void tst_QLocale::bcp47Name()
|
||||
{
|
||||
QCOMPARE(QLocale("C").bcp47Name(), QStringLiteral("C"));
|
||||
QCOMPARE(QLocale("C").bcp47Name(), QStringLiteral("en"));
|
||||
QCOMPARE(QLocale("en").bcp47Name(), QStringLiteral("en"));
|
||||
QCOMPARE(QLocale("en_US").bcp47Name(), QStringLiteral("en"));
|
||||
QCOMPARE(QLocale("en_GB").bcp47Name(), QStringLiteral("en-GB"));
|
||||
|
|
|
|||
Loading…
Reference in New Issue