104 if (type == LocaleChanged) {
109 QReadLocker locker(&m_lock);
113 return m_locale.decimalPoint();
115 return QVariant::fromValue(localeData(m_locale)->m_data->groupSizes());
117 return m_locale.groupSeparator();
119 return m_locale.zeroDigit();
121 return m_locale.negativeSign();
123 return m_locale.dateFormat(QLocale::LongFormat);
124 case DateFormatShort:
125 return m_locale.dateFormat(QLocale::ShortFormat);
127 return convertTo24hFormat(m_locale.timeFormat(QLocale::LongFormat));
128 case TimeFormatShort:
129 return convertTo24hFormat(m_locale.timeFormat(QLocale::ShortFormat));
131 return m_locale.dayName(in.toInt(), QLocale::LongFormat);
133 return m_locale.dayName(in.toInt(), QLocale::ShortFormat);
135 return m_locale.dayName(in.toInt(), QLocale::NarrowFormat);
136 case StandaloneDayNameLong:
137 return m_locale.standaloneDayName(in.toInt(), QLocale::LongFormat);
138 case StandaloneDayNameShort:
139 return m_locale.standaloneDayName(in.toInt(), QLocale::ShortFormat);
140 case StandaloneDayNameNarrow:
141 return m_locale.standaloneDayName(in.toInt(), QLocale::NarrowFormat);
143 return m_locale.monthName(in.toInt(), QLocale::LongFormat);
145 return m_locale.monthName(in.toInt(), QLocale::ShortFormat);
146 case MonthNameNarrow:
147 return m_locale.monthName(in.toInt(), QLocale::NarrowFormat);
148 case StandaloneMonthNameLong:
149 return m_locale.standaloneMonthName(in.toInt(), QLocale::LongFormat);
150 case StandaloneMonthNameShort:
151 return m_locale.standaloneMonthName(in.toInt(), QLocale::ShortFormat);
152 case StandaloneMonthNameNarrow:
153 return m_locale.standaloneMonthName(in.toInt(), QLocale::NarrowFormat);
154 case DateToStringLong:
155 return m_locale.toString(in.toDate(), QLocale::LongFormat);
156 case DateToStringShort:
157 return m_locale.toString(in.toDate(), QLocale::ShortFormat);
158 case TimeToStringLong:
159 return timeToString(in.toTime(), QLocale::LongFormat);
160 case TimeToStringShort:
161 return timeToString(in.toTime(), QLocale::ShortFormat);
162 case DateTimeFormatLong:
163 return convertTo24hFormat(m_locale.dateTimeFormat(QLocale::LongFormat));
164 case DateTimeFormatShort:
165 return convertTo24hFormat(m_locale.dateTimeFormat(QLocale::ShortFormat));
166 case DateTimeToStringLong:
167 return dateTimeToString(in.toDateTime(), QLocale::LongFormat);
168 case DateTimeToStringShort:
169 return dateTimeToString(in.toDateTime(), QLocale::ShortFormat);
171 return m_locale.positiveSign();
173 return m_locale.amText();
175 return m_locale.pmText();
177 return m_locale.firstDayOfWeek();
179 return m_locale .currencySymbol(QLocale::CurrencySymbolFormat(in.toUInt()));
180 case CurrencyToString: {
181 switch (in.metaType().id()) {
183 return m_locale .toCurrencyString(in.toInt());
184 case QMetaType::UInt:
185 return m_locale .toCurrencyString(in.toUInt());
186 case QMetaType::Double:
187 return m_locale .toCurrencyString(in.toDouble());
188 case QMetaType::LongLong:
189 return m_locale .toCurrencyString(in.toLongLong());
190 case QMetaType::ULongLong:
191 return m_locale .toCurrencyString(in.toULongLong());
197 case StringToStandardQuotation:
198 return m_locale.quoteString(in.value<QStringView>());
199 case StringToAlternateQuotation:
200 return m_locale.quoteString(in.value<QStringView>(), QLocale::AlternateQuotation);
201 case ListToSeparatedString:
202 return m_locale.createSeparatedList(in.value<QStringList>());
204 Q_ASSERT_X(
false, Q_FUNC_INFO,
"This can't happen.");
206 if (QtAndroidPrivate::androidSdkVersion() >= 24) {
207 LocaleList localeListObject = LocaleList::callStaticMethod<LocaleList>(
"getDefault");
208 if (localeListObject.isValid()) {
209 QString lang = localeListObject.callMethod<QString>(
"toLanguageTags");
212 if (lang.startsWith(QChar(
'[')) && lang.endsWith(QChar(
']')))
213 lang = lang.mid(1, lang.length() - 2);
214 return lang.split(QChar(
','));