103 if (type == LocaleChanged) {
108 QReadLocker locker(&m_lock);
112 return m_locale.decimalPoint();
114 return QVariant::fromValue(localeData(m_locale)->m_data->groupSizes());
116 return m_locale.groupSeparator();
118 return m_locale.zeroDigit();
120 return m_locale.negativeSign();
122 return m_locale.dateFormat(QLocale::LongFormat);
123 case DateFormatShort:
124 return m_locale.dateFormat(QLocale::ShortFormat);
126 return convertTo24hFormat(m_locale.timeFormat(QLocale::LongFormat));
127 case TimeFormatShort:
128 return convertTo24hFormat(m_locale.timeFormat(QLocale::ShortFormat));
130 return m_locale.dayName(in.toInt(), QLocale::LongFormat);
132 return m_locale.dayName(in.toInt(), QLocale::ShortFormat);
134 return m_locale.dayName(in.toInt(), QLocale::NarrowFormat);
135 case StandaloneDayNameLong:
136 return m_locale.standaloneDayName(in.toInt(), QLocale::LongFormat);
137 case StandaloneDayNameShort:
138 return m_locale.standaloneDayName(in.toInt(), QLocale::ShortFormat);
139 case StandaloneDayNameNarrow:
140 return m_locale.standaloneDayName(in.toInt(), QLocale::NarrowFormat);
142 return m_locale.monthName(in.toInt(), QLocale::LongFormat);
144 return m_locale.monthName(in.toInt(), QLocale::ShortFormat);
145 case MonthNameNarrow:
146 return m_locale.monthName(in.toInt(), QLocale::NarrowFormat);
147 case StandaloneMonthNameLong:
148 return m_locale.standaloneMonthName(in.toInt(), QLocale::LongFormat);
149 case StandaloneMonthNameShort:
150 return m_locale.standaloneMonthName(in.toInt(), QLocale::ShortFormat);
151 case StandaloneMonthNameNarrow:
152 return m_locale.standaloneMonthName(in.toInt(), QLocale::NarrowFormat);
153 case DateToStringLong:
154 return m_locale.toString(in.toDate(), QLocale::LongFormat);
155 case DateToStringShort:
156 return m_locale.toString(in.toDate(), QLocale::ShortFormat);
157 case TimeToStringLong:
158 return timeToString(in.toTime(), QLocale::LongFormat);
159 case TimeToStringShort:
160 return timeToString(in.toTime(), QLocale::ShortFormat);
161 case DateTimeFormatLong:
162 return convertTo24hFormat(m_locale.dateTimeFormat(QLocale::LongFormat));
163 case DateTimeFormatShort:
164 return convertTo24hFormat(m_locale.dateTimeFormat(QLocale::ShortFormat));
165 case DateTimeToStringLong:
166 return dateTimeToString(in.toDateTime(), QLocale::LongFormat);
167 case DateTimeToStringShort:
168 return dateTimeToString(in.toDateTime(), QLocale::ShortFormat);
170 return m_locale.positiveSign();
172 return m_locale.amText();
174 return m_locale.pmText();
176 return m_locale.firstDayOfWeek();
178 return m_locale .currencySymbol(QLocale::CurrencySymbolFormat(in.toUInt()));
179 case CurrencyToString: {
180 switch (in.metaType().id()) {
182 return m_locale .toCurrencyString(in.toInt());
183 case QMetaType::UInt:
184 return m_locale .toCurrencyString(in.toUInt());
185 case QMetaType::Double:
186 return m_locale .toCurrencyString(in.toDouble());
187 case QMetaType::LongLong:
188 return m_locale .toCurrencyString(in.toLongLong());
189 case QMetaType::ULongLong:
190 return m_locale .toCurrencyString(in.toULongLong());
196 case StringToStandardQuotation:
197 return m_locale.quoteString(in.value<QStringView>());
198 case StringToAlternateQuotation:
199 return m_locale.quoteString(in.value<QStringView>(), QLocale::AlternateQuotation);
200 case ListToSeparatedString:
201 return m_locale.createSeparatedList(in.value<QStringList>());
203 Q_ASSERT_X(
false, Q_FUNC_INFO,
"This can't happen.");
205 if (QtAndroidPrivate::androidSdkVersion() >= 24) {
206 LocaleList localeListObject = LocaleList::callStaticMethod<LocaleList>(
"getDefault");
207 if (localeListObject.isValid()) {
208 QString lang = localeListObject.callMethod<QString>(
"toLanguageTags");
211 if (lang.startsWith(QChar(
'[')) && lang.endsWith(QChar(
']')))
212 lang = lang.mid(1, lang.length() - 2);
213 return lang.split(QChar(
','));