File indexing completed on 2026-05-15 08:27:11
0001
0002
0003
0004
0005 #ifndef QLOCALE_H
0006 #define QLOCALE_H
0007
0008 #include <QtCore/qvariant.h>
0009 #include <QtCore/qstring.h>
0010 #include <QtCore/qobjectdefs.h>
0011 #include <QtCore/qshareddata.h>
0012
0013 QT_BEGIN_NAMESPACE
0014
0015 class QCalendar;
0016 class QDataStream;
0017 class QDate;
0018 class QDateTime;
0019 class QLocale;
0020 class QTime;
0021 class QVariant;
0022 class QTextStream;
0023 class QTextStreamPrivate;
0024
0025 class QLocalePrivate;
0026
0027 Q_CORE_EXPORT size_t qHash(const QLocale &key, size_t seed = 0) noexcept;
0028
0029 class Q_CORE_EXPORT QLocale
0030 {
0031 Q_GADGET
0032 friend class QString;
0033 friend class QByteArray;
0034 friend class QIntValidator;
0035 friend class QDoubleValidatorPrivate;
0036 friend class QTextStream;
0037 friend class QTextStreamPrivate;
0038
0039 public:
0040 static constexpr int DefaultTwoDigitBaseYear = 1900;
0041
0042
0043
0044 enum Language : ushort {
0045 AnyLanguage = 0,
0046 C = 1,
0047 Abkhazian = 2,
0048 Afar = 3,
0049 Afrikaans = 4,
0050 Aghem = 5,
0051 Akan = 6,
0052 Akkadian = 7,
0053 Akoose = 8,
0054 Albanian = 9,
0055 AmericanSignLanguage = 10,
0056 Amharic = 11,
0057 AncientEgyptian = 12,
0058 AncientGreek = 13,
0059 Arabic = 14,
0060 Aragonese = 15,
0061 Aramaic = 16,
0062 Armenian = 17,
0063 Assamese = 18,
0064 Asturian = 19,
0065 Asu = 20,
0066 Atsam = 21,
0067 Avaric = 22,
0068 Avestan = 23,
0069 Aymara = 24,
0070 Azerbaijani = 25,
0071 Bafia = 26,
0072 Balinese = 27,
0073 Bambara = 28,
0074 Bamun = 29,
0075 Bangla = 30,
0076 Basaa = 31,
0077 Bashkir = 32,
0078 Basque = 33,
0079 BatakToba = 34,
0080 Belarusian = 35,
0081 Bemba = 36,
0082 Bena = 37,
0083 Bhojpuri = 38,
0084 Bislama = 39,
0085 Blin = 40,
0086 Bodo = 41,
0087 Bosnian = 42,
0088 Breton = 43,
0089 Buginese = 44,
0090 Bulgarian = 45,
0091 Burmese = 46,
0092 Cantonese = 47,
0093 Catalan = 48,
0094 Cebuano = 49,
0095 CentralAtlasTamazight = 50,
0096 CentralKurdish = 51,
0097 Chakma = 52,
0098 Chamorro = 53,
0099 Chechen = 54,
0100 Cherokee = 55,
0101 Chickasaw = 56,
0102 Chiga = 57,
0103 Chinese = 58,
0104 Church = 59,
0105 Chuvash = 60,
0106 Colognian = 61,
0107 Coptic = 62,
0108 Cornish = 63,
0109 Corsican = 64,
0110 Cree = 65,
0111 Croatian = 66,
0112 Czech = 67,
0113 Danish = 68,
0114 Divehi = 69,
0115 Dogri = 70,
0116 Duala = 71,
0117 Dutch = 72,
0118 Dzongkha = 73,
0119 Embu = 74,
0120 English = 75,
0121 Erzya = 76,
0122 Esperanto = 77,
0123 Estonian = 78,
0124 Ewe = 79,
0125 Ewondo = 80,
0126 Faroese = 81,
0127 Fijian = 82,
0128 Filipino = 83,
0129 Finnish = 84,
0130 French = 85,
0131 Friulian = 86,
0132 Fulah = 87,
0133 Gaelic = 88,
0134 Ga = 89,
0135 Galician = 90,
0136 Ganda = 91,
0137 Geez = 92,
0138 Georgian = 93,
0139 German = 94,
0140 Gothic = 95,
0141 Greek = 96,
0142 Guarani = 97,
0143 Gujarati = 98,
0144 Gusii = 99,
0145 Haitian = 100,
0146 Hausa = 101,
0147 Hawaiian = 102,
0148 Hebrew = 103,
0149 Herero = 104,
0150 Hindi = 105,
0151 HiriMotu = 106,
0152 Hungarian = 107,
0153 Icelandic = 108,
0154 Ido = 109,
0155 Igbo = 110,
0156 InariSami = 111,
0157 Indonesian = 112,
0158 Ingush = 113,
0159 Interlingua = 114,
0160 Interlingue = 115,
0161 Inuktitut = 116,
0162 Inupiaq = 117,
0163 Irish = 118,
0164 Italian = 119,
0165 Japanese = 120,
0166 Javanese = 121,
0167 Jju = 122,
0168 JolaFonyi = 123,
0169 Kabuverdianu = 124,
0170 Kabyle = 125,
0171 Kako = 126,
0172 Kalaallisut = 127,
0173 Kalenjin = 128,
0174 Kamba = 129,
0175 Kannada = 130,
0176 Kanuri = 131,
0177 Kashmiri = 132,
0178 Kazakh = 133,
0179 Kenyang = 134,
0180 Khmer = 135,
0181 Kiche = 136,
0182 Kikuyu = 137,
0183 Kinyarwanda = 138,
0184 Komi = 139,
0185 Kongo = 140,
0186 Konkani = 141,
0187 Korean = 142,
0188 Koro = 143,
0189 KoyraboroSenni = 144,
0190 KoyraChiini = 145,
0191 Kpelle = 146,
0192 Kuanyama = 147,
0193 Kurdish = 148,
0194 Kwasio = 149,
0195 Kyrgyz = 150,
0196 Lakota = 151,
0197 Langi = 152,
0198 Lao = 153,
0199 Latin = 154,
0200 Latvian = 155,
0201 Lezghian = 156,
0202 Limburgish = 157,
0203 Lingala = 158,
0204 LiteraryChinese = 159,
0205 Lithuanian = 160,
0206 Lojban = 161,
0207 LowerSorbian = 162,
0208 LowGerman = 163,
0209 LubaKatanga = 164,
0210 LuleSami = 165,
0211 Luo = 166,
0212 Luxembourgish = 167,
0213 Luyia = 168,
0214 Macedonian = 169,
0215 Machame = 170,
0216 Maithili = 171,
0217 MakhuwaMeetto = 172,
0218 Makonde = 173,
0219 Malagasy = 174,
0220 Malayalam = 175,
0221 Malay = 176,
0222 Maltese = 177,
0223 Mandingo = 178,
0224 Manipuri = 179,
0225 Manx = 180,
0226 Maori = 181,
0227 Mapuche = 182,
0228 Marathi = 183,
0229 Marshallese = 184,
0230 Masai = 185,
0231 Mazanderani = 186,
0232 Mende = 187,
0233 Meru = 188,
0234 Meta = 189,
0235 Mohawk = 190,
0236 Mongolian = 191,
0237 Morisyen = 192,
0238 Mundang = 193,
0239 Muscogee = 194,
0240 Nama = 195,
0241 NauruLanguage = 196,
0242 Navajo = 197,
0243 Ndonga = 198,
0244 Nepali = 199,
0245 Newari = 200,
0246 Ngiemboon = 201,
0247 Ngomba = 202,
0248 NigerianPidgin = 203,
0249 Nko = 204,
0250 NorthernLuri = 205,
0251 NorthernSami = 206,
0252 NorthernSotho = 207,
0253 NorthNdebele = 208,
0254 NorwegianBokmal = 209,
0255 NorwegianNynorsk = 210,
0256 Nuer = 211,
0257 Nyanja = 212,
0258 Nyankole = 213,
0259 Occitan = 214,
0260 Odia = 215,
0261 Ojibwa = 216,
0262 OldIrish = 217,
0263 OldNorse = 218,
0264 OldPersian = 219,
0265 Oromo = 220,
0266 Osage = 221,
0267 Ossetic = 222,
0268 Pahlavi = 223,
0269 Palauan = 224,
0270 Pali = 225,
0271 Papiamento = 226,
0272 Pashto = 227,
0273 Persian = 228,
0274 Phoenician = 229,
0275 Polish = 230,
0276 Portuguese = 231,
0277 Prussian = 232,
0278 Punjabi = 233,
0279 Quechua = 234,
0280 Romanian = 235,
0281 Romansh = 236,
0282 Rombo = 237,
0283 Rundi = 238,
0284 Russian = 239,
0285 Rwa = 240,
0286 Saho = 241,
0287 Sakha = 242,
0288 Samburu = 243,
0289 Samoan = 244,
0290 Sango = 245,
0291 Sangu = 246,
0292 Sanskrit = 247,
0293 Santali = 248,
0294 Sardinian = 249,
0295 Saurashtra = 250,
0296 Sena = 251,
0297 Serbian = 252,
0298 Shambala = 253,
0299 Shona = 254,
0300 SichuanYi = 255,
0301 Sicilian = 256,
0302 Sidamo = 257,
0303 Silesian = 258,
0304 Sindhi = 259,
0305 Sinhala = 260,
0306 SkoltSami = 261,
0307 Slovak = 262,
0308 Slovenian = 263,
0309 Soga = 264,
0310 Somali = 265,
0311 SouthernKurdish = 266,
0312 SouthernSami = 267,
0313 SouthernSotho = 268,
0314 SouthNdebele = 269,
0315 Spanish = 270,
0316 StandardMoroccanTamazight = 271,
0317 Sundanese = 272,
0318 Swahili = 273,
0319 Swati = 274,
0320 Swedish = 275,
0321 SwissGerman = 276,
0322 Syriac = 277,
0323 Tachelhit = 278,
0324 Tahitian = 279,
0325 TaiDam = 280,
0326 Taita = 281,
0327 Tajik = 282,
0328 Tamil = 283,
0329 Taroko = 284,
0330 Tasawaq = 285,
0331 Tatar = 286,
0332 Telugu = 287,
0333 Teso = 288,
0334 Thai = 289,
0335 Tibetan = 290,
0336 Tigre = 291,
0337 Tigrinya = 292,
0338 TokelauLanguage = 293,
0339 TokPisin = 294,
0340 Tongan = 295,
0341 Tsonga = 296,
0342 Tswana = 297,
0343 Turkish = 298,
0344 Turkmen = 299,
0345 TuvaluLanguage = 300,
0346 Tyap = 301,
0347 Ugaritic = 302,
0348 Ukrainian = 303,
0349 UpperSorbian = 304,
0350 Urdu = 305,
0351 Uyghur = 306,
0352 Uzbek = 307,
0353 Vai = 308,
0354 Venda = 309,
0355 Vietnamese = 310,
0356 Volapuk = 311,
0357 Vunjo = 312,
0358 Walloon = 313,
0359 Walser = 314,
0360 Warlpiri = 315,
0361 Welsh = 316,
0362 WesternBalochi = 317,
0363 WesternFrisian = 318,
0364 Wolaytta = 319,
0365 Wolof = 320,
0366 Xhosa = 321,
0367 Yangben = 322,
0368 Yiddish = 323,
0369 Yoruba = 324,
0370 Zarma = 325,
0371 Zhuang = 326,
0372 Zulu = 327,
0373 Kaingang = 328,
0374 Nheengatu = 329,
0375 Haryanvi = 330,
0376 NorthernFrisian = 331,
0377 Rajasthani = 332,
0378 Moksha = 333,
0379 TokiPona = 334,
0380 Pijin = 335,
0381 Obolo = 336,
0382 Baluchi = 337,
0383 Ligurian = 338,
0384 Rohingya = 339,
0385 Torwali = 340,
0386 Anii = 341,
0387 Kangri = 342,
0388 Venetian = 343,
0389 Kuvi = 344,
0390 KaraKalpak = 345,
0391 SwampyCree = 346,
0392
0393 Afan = Oromo,
0394 Bengali = Bangla,
0395 Bhutani = Dzongkha,
0396 Byelorussian = Belarusian,
0397 Cambodian = Khmer,
0398 CentralMoroccoTamazight = CentralAtlasTamazight,
0399 Chewa = Nyanja,
0400 Frisian = WesternFrisian,
0401 Greenlandic = Kalaallisut,
0402 Inupiak = Inupiaq,
0403 Kirghiz = Kyrgyz,
0404 Kurundi = Rundi,
0405 Kwanyama = Kuanyama,
0406 Navaho = Navajo,
0407 Oriya = Odia,
0408 RhaetoRomance = Romansh,
0409 Uighur = Uyghur,
0410 Uigur = Uyghur,
0411 Walamo = Wolaytta,
0412
0413 LastLanguage = SwampyCree
0414 };
0415
0416 enum Script : ushort {
0417 AnyScript = 0,
0418 AdlamScript = 1,
0419 AhomScript = 2,
0420 AnatolianHieroglyphsScript = 3,
0421 ArabicScript = 4,
0422 ArmenianScript = 5,
0423 AvestanScript = 6,
0424 BalineseScript = 7,
0425 BamumScript = 8,
0426 BanglaScript = 9,
0427 BassaVahScript = 10,
0428 BatakScript = 11,
0429 BhaiksukiScript = 12,
0430 BopomofoScript = 13,
0431 BrahmiScript = 14,
0432 BrailleScript = 15,
0433 BugineseScript = 16,
0434 BuhidScript = 17,
0435 CanadianAboriginalScript = 18,
0436 CarianScript = 19,
0437 CaucasianAlbanianScript = 20,
0438 ChakmaScript = 21,
0439 ChamScript = 22,
0440 CherokeeScript = 23,
0441 CopticScript = 24,
0442 CuneiformScript = 25,
0443 CypriotScript = 26,
0444 CyrillicScript = 27,
0445 DeseretScript = 28,
0446 DevanagariScript = 29,
0447 DuployanScript = 30,
0448 EgyptianHieroglyphsScript = 31,
0449 ElbasanScript = 32,
0450 EthiopicScript = 33,
0451 FraserScript = 34,
0452 GeorgianScript = 35,
0453 GlagoliticScript = 36,
0454 GothicScript = 37,
0455 GranthaScript = 38,
0456 GreekScript = 39,
0457 GujaratiScript = 40,
0458 GurmukhiScript = 41,
0459 HangulScript = 42,
0460 HanScript = 43,
0461 HanunooScript = 44,
0462 HanWithBopomofoScript = 45,
0463 HatranScript = 46,
0464 HebrewScript = 47,
0465 HiraganaScript = 48,
0466 ImperialAramaicScript = 49,
0467 InscriptionalPahlaviScript = 50,
0468 InscriptionalParthianScript = 51,
0469 JamoScript = 52,
0470 JapaneseScript = 53,
0471 JavaneseScript = 54,
0472 KaithiScript = 55,
0473 KannadaScript = 56,
0474 KatakanaScript = 57,
0475 KayahLiScript = 58,
0476 KharoshthiScript = 59,
0477 KhmerScript = 60,
0478 KhojkiScript = 61,
0479 KhudawadiScript = 62,
0480 KoreanScript = 63,
0481 LannaScript = 64,
0482 LaoScript = 65,
0483 LatinScript = 66,
0484 LepchaScript = 67,
0485 LimbuScript = 68,
0486 LinearAScript = 69,
0487 LinearBScript = 70,
0488 LycianScript = 71,
0489 LydianScript = 72,
0490 MahajaniScript = 73,
0491 MalayalamScript = 74,
0492 MandaeanScript = 75,
0493 ManichaeanScript = 76,
0494 MarchenScript = 77,
0495 MeiteiMayekScript = 78,
0496 MendeScript = 79,
0497 MeroiticCursiveScript = 80,
0498 MeroiticScript = 81,
0499 ModiScript = 82,
0500 MongolianScript = 83,
0501 MroScript = 84,
0502 MultaniScript = 85,
0503 MyanmarScript = 86,
0504 NabataeanScript = 87,
0505 NewaScript = 88,
0506 NewTaiLueScript = 89,
0507 NkoScript = 90,
0508 OdiaScript = 91,
0509 OghamScript = 92,
0510 OlChikiScript = 93,
0511 OldHungarianScript = 94,
0512 OldItalicScript = 95,
0513 OldNorthArabianScript = 96,
0514 OldPermicScript = 97,
0515 OldPersianScript = 98,
0516 OldSouthArabianScript = 99,
0517 OrkhonScript = 100,
0518 OsageScript = 101,
0519 OsmanyaScript = 102,
0520 PahawhHmongScript = 103,
0521 PalmyreneScript = 104,
0522 PauCinHauScript = 105,
0523 PhagsPaScript = 106,
0524 PhoenicianScript = 107,
0525 PollardPhoneticScript = 108,
0526 PsalterPahlaviScript = 109,
0527 RejangScript = 110,
0528 RunicScript = 111,
0529 SamaritanScript = 112,
0530 SaurashtraScript = 113,
0531 SharadaScript = 114,
0532 ShavianScript = 115,
0533 SiddhamScript = 116,
0534 SignWritingScript = 117,
0535 SimplifiedHanScript = 118,
0536 SinhalaScript = 119,
0537 SoraSompengScript = 120,
0538 SundaneseScript = 121,
0539 SylotiNagriScript = 122,
0540 SyriacScript = 123,
0541 TagalogScript = 124,
0542 TagbanwaScript = 125,
0543 TaiLeScript = 126,
0544 TaiVietScript = 127,
0545 TakriScript = 128,
0546 TamilScript = 129,
0547 TangutScript = 130,
0548 TeluguScript = 131,
0549 ThaanaScript = 132,
0550 ThaiScript = 133,
0551 TibetanScript = 134,
0552 TifinaghScript = 135,
0553 TirhutaScript = 136,
0554 TraditionalHanScript = 137,
0555 UgariticScript = 138,
0556 VaiScript = 139,
0557 VarangKshitiScript = 140,
0558 YiScript = 141,
0559 HanifiScript = 142,
0560
0561 BengaliScript = BanglaScript,
0562 MendeKikakuiScript = MendeScript,
0563 OriyaScript = OdiaScript,
0564 SimplifiedChineseScript = SimplifiedHanScript,
0565 TraditionalChineseScript = TraditionalHanScript,
0566
0567 LastScript = HanifiScript
0568 };
0569
0570
0571 enum Country : ushort {
0572 AnyTerritory = 0,
0573 Afghanistan = 1,
0574 AlandIslands = 2,
0575 Albania = 3,
0576 Algeria = 4,
0577 AmericanSamoa = 5,
0578 Andorra = 6,
0579 Angola = 7,
0580 Anguilla = 8,
0581 Antarctica = 9,
0582 AntiguaAndBarbuda = 10,
0583 Argentina = 11,
0584 Armenia = 12,
0585 Aruba = 13,
0586 AscensionIsland = 14,
0587 Australia = 15,
0588 Austria = 16,
0589 Azerbaijan = 17,
0590 Bahamas = 18,
0591 Bahrain = 19,
0592 Bangladesh = 20,
0593 Barbados = 21,
0594 Belarus = 22,
0595 Belgium = 23,
0596 Belize = 24,
0597 Benin = 25,
0598 Bermuda = 26,
0599 Bhutan = 27,
0600 Bolivia = 28,
0601 BosniaAndHerzegovina = 29,
0602 Botswana = 30,
0603 BouvetIsland = 31,
0604 Brazil = 32,
0605 BritishIndianOceanTerritory = 33,
0606 BritishVirginIslands = 34,
0607 Brunei = 35,
0608 Bulgaria = 36,
0609 BurkinaFaso = 37,
0610 Burundi = 38,
0611 Cambodia = 39,
0612 Cameroon = 40,
0613 Canada = 41,
0614 CanaryIslands = 42,
0615 CapeVerde = 43,
0616 CaribbeanNetherlands = 44,
0617 CaymanIslands = 45,
0618 CentralAfricanRepublic = 46,
0619 CeutaAndMelilla = 47,
0620 Chad = 48,
0621 Chile = 49,
0622 China = 50,
0623 ChristmasIsland = 51,
0624 ClippertonIsland = 52,
0625 CocosIslands = 53,
0626 Colombia = 54,
0627 Comoros = 55,
0628 CongoBrazzaville = 56,
0629 CongoKinshasa = 57,
0630 CookIslands = 58,
0631 CostaRica = 59,
0632 Croatia = 60,
0633 Cuba = 61,
0634 Curacao = 62,
0635 Cyprus = 63,
0636 Czechia = 64,
0637 Denmark = 65,
0638 DiegoGarcia = 66,
0639 Djibouti = 67,
0640 Dominica = 68,
0641 DominicanRepublic = 69,
0642 Ecuador = 70,
0643 Egypt = 71,
0644 ElSalvador = 72,
0645 EquatorialGuinea = 73,
0646 Eritrea = 74,
0647 Estonia = 75,
0648 Eswatini = 76,
0649 Ethiopia = 77,
0650 Europe = 78,
0651 EuropeanUnion = 79,
0652 FalklandIslands = 80,
0653 FaroeIslands = 81,
0654 Fiji = 82,
0655 Finland = 83,
0656 France = 84,
0657 FrenchGuiana = 85,
0658 FrenchPolynesia = 86,
0659 FrenchSouthernTerritories = 87,
0660 Gabon = 88,
0661 Gambia = 89,
0662 Georgia = 90,
0663 Germany = 91,
0664 Ghana = 92,
0665 Gibraltar = 93,
0666 Greece = 94,
0667 Greenland = 95,
0668 Grenada = 96,
0669 Guadeloupe = 97,
0670 Guam = 98,
0671 Guatemala = 99,
0672 Guernsey = 100,
0673 GuineaBissau = 101,
0674 Guinea = 102,
0675 Guyana = 103,
0676 Haiti = 104,
0677 HeardAndMcDonaldIslands = 105,
0678 Honduras = 106,
0679 HongKong = 107,
0680 Hungary = 108,
0681 Iceland = 109,
0682 India = 110,
0683 Indonesia = 111,
0684 Iran = 112,
0685 Iraq = 113,
0686 Ireland = 114,
0687 IsleOfMan = 115,
0688 Israel = 116,
0689 Italy = 117,
0690 IvoryCoast = 118,
0691 Jamaica = 119,
0692 Japan = 120,
0693 Jersey = 121,
0694 Jordan = 122,
0695 Kazakhstan = 123,
0696 Kenya = 124,
0697 Kiribati = 125,
0698 Kosovo = 126,
0699 Kuwait = 127,
0700 Kyrgyzstan = 128,
0701 Laos = 129,
0702 LatinAmerica = 130,
0703 Latvia = 131,
0704 Lebanon = 132,
0705 Lesotho = 133,
0706 Liberia = 134,
0707 Libya = 135,
0708 Liechtenstein = 136,
0709 Lithuania = 137,
0710 Luxembourg = 138,
0711 Macao = 139,
0712 Macedonia = 140,
0713 Madagascar = 141,
0714 Malawi = 142,
0715 Malaysia = 143,
0716 Maldives = 144,
0717 Mali = 145,
0718 Malta = 146,
0719 MarshallIslands = 147,
0720 Martinique = 148,
0721 Mauritania = 149,
0722 Mauritius = 150,
0723 Mayotte = 151,
0724 Mexico = 152,
0725 Micronesia = 153,
0726 Moldova = 154,
0727 Monaco = 155,
0728 Mongolia = 156,
0729 Montenegro = 157,
0730 Montserrat = 158,
0731 Morocco = 159,
0732 Mozambique = 160,
0733 Myanmar = 161,
0734 Namibia = 162,
0735 NauruTerritory = 163,
0736 Nepal = 164,
0737 Netherlands = 165,
0738 NewCaledonia = 166,
0739 NewZealand = 167,
0740 Nicaragua = 168,
0741 Nigeria = 169,
0742 Niger = 170,
0743 Niue = 171,
0744 NorfolkIsland = 172,
0745 NorthernMarianaIslands = 173,
0746 NorthKorea = 174,
0747 Norway = 175,
0748 Oman = 176,
0749 OutlyingOceania = 177,
0750 Pakistan = 178,
0751 Palau = 179,
0752 PalestinianTerritories = 180,
0753 Panama = 181,
0754 PapuaNewGuinea = 182,
0755 Paraguay = 183,
0756 Peru = 184,
0757 Philippines = 185,
0758 Pitcairn = 186,
0759 Poland = 187,
0760 Portugal = 188,
0761 PuertoRico = 189,
0762 Qatar = 190,
0763 Reunion = 191,
0764 Romania = 192,
0765 Russia = 193,
0766 Rwanda = 194,
0767 SaintBarthelemy = 195,
0768 SaintHelena = 196,
0769 SaintKittsAndNevis = 197,
0770 SaintLucia = 198,
0771 SaintMartin = 199,
0772 SaintPierreAndMiquelon = 200,
0773 SaintVincentAndGrenadines = 201,
0774 Samoa = 202,
0775 SanMarino = 203,
0776 SaoTomeAndPrincipe = 204,
0777 SaudiArabia = 205,
0778 Senegal = 206,
0779 Serbia = 207,
0780 Seychelles = 208,
0781 SierraLeone = 209,
0782 Singapore = 210,
0783 SintMaarten = 211,
0784 Slovakia = 212,
0785 Slovenia = 213,
0786 SolomonIslands = 214,
0787 Somalia = 215,
0788 SouthAfrica = 216,
0789 SouthGeorgiaAndSouthSandwichIslands = 217,
0790 SouthKorea = 218,
0791 SouthSudan = 219,
0792 Spain = 220,
0793 SriLanka = 221,
0794 Sudan = 222,
0795 Suriname = 223,
0796 SvalbardAndJanMayen = 224,
0797 Sweden = 225,
0798 Switzerland = 226,
0799 Syria = 227,
0800 Taiwan = 228,
0801 Tajikistan = 229,
0802 Tanzania = 230,
0803 Thailand = 231,
0804 TimorLeste = 232,
0805 Togo = 233,
0806 TokelauTerritory = 234,
0807 Tonga = 235,
0808 TrinidadAndTobago = 236,
0809 TristanDaCunha = 237,
0810 Tunisia = 238,
0811 Turkey = 239,
0812 Turkmenistan = 240,
0813 TurksAndCaicosIslands = 241,
0814 TuvaluTerritory = 242,
0815 Uganda = 243,
0816 Ukraine = 244,
0817 UnitedArabEmirates = 245,
0818 UnitedKingdom = 246,
0819 UnitedStatesOutlyingIslands = 247,
0820 UnitedStates = 248,
0821 UnitedStatesVirginIslands = 249,
0822 Uruguay = 250,
0823 Uzbekistan = 251,
0824 Vanuatu = 252,
0825 VaticanCity = 253,
0826 Venezuela = 254,
0827 Vietnam = 255,
0828 WallisAndFutuna = 256,
0829 WesternSahara = 257,
0830 World = 258,
0831 Yemen = 259,
0832 Zambia = 260,
0833 Zimbabwe = 261,
0834
0835 AnyCountry = AnyTerritory,
0836 Bonaire = CaribbeanNetherlands,
0837 BosniaAndHerzegowina = BosniaAndHerzegovina,
0838 CuraSao = Curacao,
0839 CzechRepublic = Czechia,
0840 DemocraticRepublicOfCongo = CongoKinshasa,
0841 DemocraticRepublicOfKorea = NorthKorea,
0842 EastTimor = TimorLeste,
0843 LatinAmericaAndTheCaribbean = LatinAmerica,
0844 Macau = Macao,
0845 NauruCountry = NauruTerritory,
0846 PeoplesRepublicOfCongo = CongoBrazzaville,
0847 RepublicOfKorea = SouthKorea,
0848 RussianFederation = Russia,
0849 SaintVincentAndTheGrenadines = SaintVincentAndGrenadines,
0850 SouthGeorgiaAndTheSouthSandwichIslands = SouthGeorgiaAndSouthSandwichIslands,
0851 SvalbardAndJanMayenIslands = SvalbardAndJanMayen,
0852 Swaziland = Eswatini,
0853 SyrianArabRepublic = Syria,
0854 TokelauCountry = TokelauTerritory,
0855 TuvaluCountry = TuvaluTerritory,
0856 UnitedStatesMinorOutlyingIslands = UnitedStatesOutlyingIslands,
0857 VaticanCityState = VaticanCity,
0858 WallisAndFutunaIslands = WallisAndFutuna,
0859
0860 LastTerritory = Zimbabwe,
0861 LastCountry = LastTerritory
0862 };
0863
0864
0865 using Territory = Country;
0866
0867 Q_ENUM(Language)
0868 Q_ENUM(Country)
0869 Q_ENUM(Script)
0870
0871 enum MeasurementSystem {
0872 MetricSystem,
0873 ImperialUSSystem,
0874 ImperialUKSystem,
0875 ImperialSystem = ImperialUSSystem
0876 };
0877 Q_ENUM(MeasurementSystem)
0878
0879 enum FormatType { LongFormat, ShortFormat, NarrowFormat };
0880 Q_ENUM(FormatType)
0881 enum NumberOption {
0882 DefaultNumberOptions = 0x0,
0883 OmitGroupSeparator = 0x01,
0884 RejectGroupSeparator = 0x02,
0885 OmitLeadingZeroInExponent = 0x04,
0886 RejectLeadingZeroInExponent = 0x08,
0887 IncludeTrailingZeroesAfterDot = 0x10,
0888 RejectTrailingZeroesAfterDot = 0x20
0889 };
0890 Q_DECLARE_FLAGS(NumberOptions, NumberOption)
0891 Q_FLAG(NumberOptions)
0892
0893 enum FloatingPointPrecisionOption {
0894 FloatingPointShortest = -128
0895 };
0896
0897 enum class TagSeparator : char { Dash = '-', Underscore = '_' };
0898 Q_ENUM(TagSeparator)
0899
0900 enum CurrencySymbolFormat {
0901 CurrencyIsoCode,
0902 CurrencySymbol,
0903 CurrencyDisplayName
0904 };
0905 Q_ENUM(CurrencySymbolFormat)
0906
0907 enum DataSizeFormat {
0908
0909 DataSizeBase1000 = 1,
0910 DataSizeSIQuantifiers = 2,
0911
0912
0913 DataSizeIecFormat = 0,
0914 DataSizeTraditionalFormat = DataSizeSIQuantifiers,
0915 DataSizeSIFormat = DataSizeBase1000 | DataSizeSIQuantifiers
0916 };
0917 Q_DECLARE_FLAGS(DataSizeFormats, DataSizeFormat)
0918 Q_FLAG(DataSizeFormats)
0919
0920 QLocale();
0921 QT_CORE_INLINE_SINCE(6, 4)
0922 explicit QLocale(const QString &name);
0923 explicit QLocale(QStringView name);
0924 QLocale(Language language, Territory territory);
0925 QLocale(Language language, Script script = AnyScript, Territory territory = AnyTerritory);
0926 QLocale(const QLocale &other) noexcept;
0927 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QLocale)
0928 QLocale &operator=(const QLocale &other) noexcept;
0929 ~QLocale();
0930
0931 void swap(QLocale &other) noexcept { d.swap(other.d); }
0932
0933 Language language() const;
0934 Script script() const;
0935 Territory territory() const;
0936 #if QT_DEPRECATED_SINCE(6, 6)
0937 QT_DEPRECATED_VERSION_X_6_6("Use territory() instead")
0938 Country country() const;
0939 #endif
0940
0941 #if QT_CORE_REMOVED_SINCE(6, 7)
0942 QString name() const;
0943 QString bcp47Name() const;
0944 #endif
0945 QString name(TagSeparator separator = TagSeparator::Underscore) const;
0946 QString bcp47Name(TagSeparator separator = TagSeparator::Dash) const;
0947
0948 QString nativeLanguageName() const;
0949 QString nativeTerritoryName() const;
0950 #if QT_DEPRECATED_SINCE(6, 6)
0951 QT_DEPRECATED_VERSION_X_6_6("Use nativeTerritoryName() instead")
0952 QString nativeCountryName() const;
0953 #endif
0954
0955 short toShort(const QString &s, bool *ok = nullptr) const
0956 { return toShort(qToStringViewIgnoringNull(s), ok); }
0957 ushort toUShort(const QString &s, bool *ok = nullptr) const
0958 { return toUShort(qToStringViewIgnoringNull(s), ok); }
0959 int toInt(const QString &s, bool *ok = nullptr) const
0960 { return toInt(qToStringViewIgnoringNull(s), ok); }
0961 uint toUInt(const QString &s, bool *ok = nullptr) const
0962 { return toUInt(qToStringViewIgnoringNull(s), ok); }
0963 long toLong(const QString &s, bool *ok = nullptr) const
0964 { return toLong(qToStringViewIgnoringNull(s), ok); }
0965 ulong toULong(const QString &s, bool *ok = nullptr) const
0966 { return toULong(qToStringViewIgnoringNull(s), ok); }
0967 qlonglong toLongLong(const QString &s, bool *ok = nullptr) const
0968 { return toLongLong(qToStringViewIgnoringNull(s), ok); }
0969 qulonglong toULongLong(const QString &s, bool *ok = nullptr) const
0970 { return toULongLong(qToStringViewIgnoringNull(s), ok); }
0971 float toFloat(const QString &s, bool *ok = nullptr) const
0972 { return toFloat(qToStringViewIgnoringNull(s), ok); }
0973 double toDouble(const QString &s, bool *ok = nullptr) const
0974 { return toDouble(qToStringViewIgnoringNull(s), ok); }
0975
0976 short toShort(QStringView s, bool *ok = nullptr) const;
0977 ushort toUShort(QStringView s, bool *ok = nullptr) const;
0978 int toInt(QStringView s, bool *ok = nullptr) const;
0979 uint toUInt(QStringView s, bool *ok = nullptr) const;
0980 long toLong(QStringView s, bool *ok = nullptr) const;
0981 ulong toULong(QStringView s, bool *ok = nullptr) const;
0982 qlonglong toLongLong(QStringView s, bool *ok = nullptr) const;
0983 qulonglong toULongLong(QStringView s, bool *ok = nullptr) const;
0984 float toFloat(QStringView s, bool *ok = nullptr) const;
0985 double toDouble(QStringView s, bool *ok = nullptr) const;
0986
0987 QString toString(qlonglong i) const;
0988 QString toString(qulonglong i) const;
0989 QString toString(long i) const { return toString(qlonglong(i)); }
0990 QString toString(ulong i) const { return toString(qulonglong(i)); }
0991 QString toString(short i) const { return toString(qlonglong(i)); }
0992 QString toString(ushort i) const { return toString(qulonglong(i)); }
0993 QString toString(int i) const { return toString(qlonglong(i)); }
0994 QString toString(uint i) const { return toString(qulonglong(i)); }
0995 QString toString(qlonglong number, int fieldWidth, char32_t fillChar) const;
0996 QString toString(qulonglong number, int fieldWidth, char32_t fillChar) const;
0997 QString toString(int number, int fieldWidth, char32_t fillChar) const
0998 { return toString(qlonglong(number), fieldWidth, fillChar); }
0999 QString toString(uint number, int fieldWidth, char32_t fillChar) const
1000 { return toString(qulonglong(number), fieldWidth, fillChar); }
1001 QString toString(long number, int fieldWidth, char32_t fillChar) const
1002 { return toString(qlonglong(number), fieldWidth, fillChar); }
1003 QString toString(ulong(number), int fieldWidth, char32_t fillChar) const
1004 { return toString(qulonglong(number), fieldWidth, fillChar); }
1005 QString toString(short number, int fieldWidth, char32_t fillChar) const
1006 { return toString(qlonglong(number), fieldWidth, fillChar); }
1007 QString toString(ushort number, int fieldWidth, char32_t fillChar) const
1008 { return toString(qulonglong(number), fieldWidth, fillChar); }
1009 QString toString(double f, char format = 'g', int precision = 6) const;
1010 QString toString(float f, char format = 'g', int precision = 6) const
1011 { return toString(double(f), format, precision); }
1012
1013
1014 QString toString(QDate date, const QString &format) const;
1015 QString toString(QTime time, const QString &format) const;
1016 QString toString(const QDateTime &dateTime, const QString &format) const
1017 { return toString(dateTime, qToStringViewIgnoringNull(format)); }
1018 QString toString(QDate date, QStringView format) const;
1019 QString toString(QTime time, QStringView format) const;
1020 QString toString(const QDateTime &dateTime, QStringView format) const;
1021 QString toString(QDate date, FormatType format = LongFormat) const;
1022 QString toString(QTime time, FormatType format = LongFormat) const;
1023 QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const;
1024
1025
1026
1027
1028
1029
1030 QString toString(QDate date, QStringView format, QCalendar cal) const;
1031 QString toString(QDate date, FormatType format, QCalendar cal) const;
1032 QString toString(const QDateTime &dateTime, FormatType format, QCalendar cal) const;
1033 QString toString(const QDateTime &dateTime, QStringView format, QCalendar cal) const;
1034
1035 QString dateFormat(FormatType format = LongFormat) const;
1036 QString timeFormat(FormatType format = LongFormat) const;
1037 QString dateTimeFormat(FormatType format = LongFormat) const;
1038
1039
1040 #if QT_CONFIG(datestring)
1041 QTime toTime(const QString &string, FormatType = LongFormat) const;
1042 QTime toTime(const QString &string, const QString &format) const;
1043 # if QT_CORE_REMOVED_SINCE(6, 7)
1044 QDate toDate(const QString &string, FormatType = LongFormat) const;
1045 QDate toDate(const QString &string, const QString &format) const;
1046 QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const;
1047 QDateTime toDateTime(const QString &string, const QString &format) const;
1048
1049 QDate toDate(const QString &string, FormatType format, QCalendar cal) const;
1050 QDate toDate(const QString &string, const QString &format, QCalendar cal) const;
1051 QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal) const;
1052 QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal) const;
1053 # endif
1054 QDate toDate(const QString &string, FormatType = LongFormat,
1055 int baseYear = DefaultTwoDigitBaseYear) const;
1056 QDate toDate(const QString &string, const QString &format,
1057 int baseYear = DefaultTwoDigitBaseYear) const;
1058 QDateTime toDateTime(const QString &string, FormatType format = LongFormat,
1059 int baseYear = DefaultTwoDigitBaseYear) const;
1060 QDateTime toDateTime(const QString &string, const QString &format,
1061 int baseYear = DefaultTwoDigitBaseYear) const;
1062
1063 QDate toDate(const QString &string, FormatType format, QCalendar cal,
1064 int baseYear = DefaultTwoDigitBaseYear) const;
1065 QDate toDate(const QString &string, const QString &format, QCalendar cal,
1066 int baseYear = DefaultTwoDigitBaseYear) const;
1067 QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal,
1068 int baseYear = DefaultTwoDigitBaseYear) const;
1069 QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal,
1070 int baseYear = DefaultTwoDigitBaseYear) const;
1071 #endif
1072
1073 QString decimalPoint() const;
1074 QString groupSeparator() const;
1075 QString percent() const;
1076 QString zeroDigit() const;
1077 QString negativeSign() const;
1078 QString positiveSign() const;
1079 QString exponential() const;
1080
1081 QString monthName(int, FormatType format = LongFormat) const;
1082 QString standaloneMonthName(int, FormatType format = LongFormat) const;
1083 QString dayName(int, FormatType format = LongFormat) const;
1084 QString standaloneDayName(int, FormatType format = LongFormat) const;
1085
1086 Qt::DayOfWeek firstDayOfWeek() const;
1087 QList<Qt::DayOfWeek> weekdays() const;
1088
1089 QString amText() const;
1090 QString pmText() const;
1091
1092 MeasurementSystem measurementSystem() const;
1093 QLocale collation() const;
1094 Qt::LayoutDirection textDirection() const;
1095
1096 QString toUpper(const QString &str) const;
1097 QString toLower(const QString &str) const;
1098
1099 QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const;
1100 QString toCurrencyString(qlonglong, const QString &symbol = QString()) const;
1101 QString toCurrencyString(qulonglong, const QString &symbol = QString()) const;
1102 QString toCurrencyString(short i, const QString &symbol = QString()) const
1103 { return toCurrencyString(qlonglong(i), symbol); }
1104 QString toCurrencyString(ushort i, const QString &symbol = QString()) const
1105 { return toCurrencyString(qulonglong(i), symbol); }
1106 QString toCurrencyString(int i, const QString &symbol = QString()) const
1107 { return toCurrencyString(qlonglong(i), symbol); }
1108 QString toCurrencyString(uint i, const QString &symbol = QString()) const
1109 { return toCurrencyString(qulonglong(i), symbol); }
1110 QString toCurrencyString(double, const QString &symbol = QString(), int precision = -1) const;
1111 QString toCurrencyString(float i, const QString &symbol = QString(), int precision = -1) const
1112 { return toCurrencyString(double(i), symbol, precision); }
1113
1114 QString formattedDataSize(qint64 bytes, int precision = 2, DataSizeFormats format = DataSizeIecFormat) const;
1115
1116 #if QT_CORE_REMOVED_SINCE(6, 7)
1117 QStringList uiLanguages() const;
1118 #endif
1119 QStringList uiLanguages(TagSeparator separator = TagSeparator::Dash) const;
1120
1121 enum LanguageCodeType {
1122 ISO639Part1 = 1 << 0,
1123 ISO639Part2B = 1 << 1,
1124 ISO639Part2T = 1 << 2,
1125 ISO639Part3 = 1 << 3,
1126 LegacyLanguageCode = 1 << 15,
1127
1128 ISO639Part2 = ISO639Part2B | ISO639Part2T,
1129 ISO639Alpha2 = ISO639Part1,
1130 ISO639Alpha3 = ISO639Part2 | ISO639Part3,
1131 ISO639 = ISO639Alpha2 | ISO639Alpha3,
1132
1133 AnyLanguageCode = -1
1134 };
1135 Q_DECLARE_FLAGS(LanguageCodeTypes, LanguageCodeType)
1136 Q_FLAG(LanguageCodeTypes)
1137
1138 #if QT_CORE_REMOVED_SINCE(6, 3)
1139 static QString languageToCode(Language language);
1140 static Language codeToLanguage(QStringView languageCode) noexcept;
1141 #endif
1142 static QString languageToCode(Language language, LanguageCodeTypes codeTypes = AnyLanguageCode);
1143 static Language codeToLanguage(QStringView languageCode,
1144 LanguageCodeTypes codeTypes = AnyLanguageCode) noexcept;
1145 static QString territoryToCode(Territory territory);
1146 static Territory codeToTerritory(QStringView territoryCode) noexcept;
1147 #if QT_DEPRECATED_SINCE(6, 6)
1148 QT_DEPRECATED_VERSION_X_6_6("Use territoryToCode(Territory) instead")
1149 static QString countryToCode(Country country);
1150 QT_DEPRECATED_VERSION_X_6_6("Use codeToTerritory(QStringView) instead")
1151 static Country codeToCountry(QStringView countryCode) noexcept;
1152 #endif
1153 static QString scriptToCode(Script script);
1154 static Script codeToScript(QStringView scriptCode) noexcept;
1155
1156 static QString languageToString(Language language);
1157 static QString territoryToString(Territory territory);
1158 #if QT_DEPRECATED_SINCE(6, 6)
1159 QT_DEPRECATED_VERSION_X_6_6("Use territoryToString(Territory) instead")
1160 static QString countryToString(Country country);
1161 #endif
1162 static QString scriptToString(Script script);
1163 static void setDefault(const QLocale &locale);
1164
1165 static QLocale c() { return QLocale(C); }
1166 static QLocale system();
1167
1168 static QList<QLocale> matchingLocales(QLocale::Language language, QLocale::Script script,
1169 QLocale::Territory territory);
1170 #if QT_DEPRECATED_SINCE(6, 6)
1171 QT_DEPRECATED_VERSION_X_6_6("Query territory() on each entry from matchingLocales() instead")
1172 static QList<Country> countriesForLanguage(Language lang);
1173 #endif
1174
1175 void setNumberOptions(NumberOptions options);
1176 NumberOptions numberOptions() const;
1177
1178 enum QuotationStyle { StandardQuotation, AlternateQuotation };
1179 Q_ENUM(QuotationStyle)
1180 QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const
1181 { return quoteString(QStringView(str), style); }
1182 QString quoteString(QStringView str, QuotationStyle style = StandardQuotation) const;
1183
1184 QString createSeparatedList(const QStringList &strl) const;
1185
1186 private:
1187 QLocale(QLocalePrivate &dd);
1188 bool equals(const QLocale &other) const noexcept;
1189 friend class QLocalePrivate;
1190 friend class QSystemLocale;
1191 friend class QTimeZonePrivate;
1192 friend class QCalendarBackend;
1193 friend class QRomanCalendar;
1194 friend Q_CORE_EXPORT size_t qHash(const QLocale &key, size_t seed) noexcept;
1195
1196 friend bool comparesEqual(const QLocale &lhs, const QLocale &rhs) noexcept
1197 {
1198 return lhs.equals(rhs);
1199 }
1200 Q_DECLARE_EQUALITY_COMPARABLE(QLocale)
1201
1202 friend Q_CORE_EXPORT bool comparesEqual(const QLocale &lhs, Language rhs);
1203 Q_DECLARE_EQUALITY_COMPARABLE_NON_NOEXCEPT(QLocale, Language)
1204
1205 QSharedDataPointer<QLocalePrivate> d;
1206 };
1207 Q_DECLARE_SHARED(QLocale)
1208 Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::NumberOptions)
1209 Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::LanguageCodeTypes)
1210
1211 #if QT_CORE_INLINE_IMPL_SINCE(6, 4)
1212 QLocale::QLocale(const QString &name)
1213 : QLocale(qToStringViewIgnoringNull(name)) {}
1214 #endif
1215
1216 #ifndef QT_NO_DATASTREAM
1217 Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QLocale &);
1218 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QLocale &);
1219 #endif
1220
1221 #ifndef QT_NO_DEBUG_STREAM
1222 Q_CORE_EXPORT QDebug operator<<(QDebug, const QLocale &);
1223 #endif
1224
1225 QT_END_NAMESPACE
1226
1227 #endif