File indexing completed on 2026-08-13 09:22:34
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 Ladin = 347,
0393 Shan = 348,
0394
0395 Afan = Oromo,
0396 Bengali = Bangla,
0397 Bhutani = Dzongkha,
0398 Byelorussian = Belarusian,
0399 Cambodian = Khmer,
0400 CentralMoroccoTamazight = CentralAtlasTamazight,
0401 Chewa = Nyanja,
0402 Frisian = WesternFrisian,
0403 Greenlandic = Kalaallisut,
0404 Inupiak = Inupiaq,
0405 Kirghiz = Kyrgyz,
0406 Kurundi = Rundi,
0407 Kwanyama = Kuanyama,
0408 Navaho = Navajo,
0409 Oriya = Odia,
0410 RhaetoRomance = Romansh,
0411 Uighur = Uyghur,
0412 Uigur = Uyghur,
0413 Walamo = Wolaytta,
0414
0415 LastLanguage = Shan
0416 };
0417
0418 enum Script : ushort {
0419 AnyScript = 0,
0420 AdlamScript = 1,
0421 AhomScript = 2,
0422 AnatolianHieroglyphsScript = 3,
0423 ArabicScript = 4,
0424 ArmenianScript = 5,
0425 AvestanScript = 6,
0426 BalineseScript = 7,
0427 BamumScript = 8,
0428 BanglaScript = 9,
0429 BassaVahScript = 10,
0430 BatakScript = 11,
0431 BhaiksukiScript = 12,
0432 BopomofoScript = 13,
0433 BrahmiScript = 14,
0434 BrailleScript = 15,
0435 BugineseScript = 16,
0436 BuhidScript = 17,
0437 CanadianAboriginalScript = 18,
0438 CarianScript = 19,
0439 CaucasianAlbanianScript = 20,
0440 ChakmaScript = 21,
0441 ChamScript = 22,
0442 CherokeeScript = 23,
0443 CopticScript = 24,
0444 CuneiformScript = 25,
0445 CypriotScript = 26,
0446 CyrillicScript = 27,
0447 DeseretScript = 28,
0448 DevanagariScript = 29,
0449 DuployanScript = 30,
0450 EgyptianHieroglyphsScript = 31,
0451 ElbasanScript = 32,
0452 EthiopicScript = 33,
0453 FraserScript = 34,
0454 GeorgianScript = 35,
0455 GlagoliticScript = 36,
0456 GothicScript = 37,
0457 GranthaScript = 38,
0458 GreekScript = 39,
0459 GujaratiScript = 40,
0460 GurmukhiScript = 41,
0461 HangulScript = 42,
0462 HanScript = 43,
0463 HanunooScript = 44,
0464 HanWithBopomofoScript = 45,
0465 HatranScript = 46,
0466 HebrewScript = 47,
0467 HiraganaScript = 48,
0468 ImperialAramaicScript = 49,
0469 InscriptionalPahlaviScript = 50,
0470 InscriptionalParthianScript = 51,
0471 JamoScript = 52,
0472 JapaneseScript = 53,
0473 JavaneseScript = 54,
0474 KaithiScript = 55,
0475 KannadaScript = 56,
0476 KatakanaScript = 57,
0477 KayahLiScript = 58,
0478 KharoshthiScript = 59,
0479 KhmerScript = 60,
0480 KhojkiScript = 61,
0481 KhudawadiScript = 62,
0482 KoreanScript = 63,
0483 LannaScript = 64,
0484 LaoScript = 65,
0485 LatinScript = 66,
0486 LepchaScript = 67,
0487 LimbuScript = 68,
0488 LinearAScript = 69,
0489 LinearBScript = 70,
0490 LycianScript = 71,
0491 LydianScript = 72,
0492 MahajaniScript = 73,
0493 MalayalamScript = 74,
0494 MandaeanScript = 75,
0495 ManichaeanScript = 76,
0496 MarchenScript = 77,
0497 MeiteiMayekScript = 78,
0498 MendeScript = 79,
0499 MeroiticCursiveScript = 80,
0500 MeroiticScript = 81,
0501 ModiScript = 82,
0502 MongolianScript = 83,
0503 MroScript = 84,
0504 MultaniScript = 85,
0505 MyanmarScript = 86,
0506 NabataeanScript = 87,
0507 NewaScript = 88,
0508 NewTaiLueScript = 89,
0509 NkoScript = 90,
0510 OdiaScript = 91,
0511 OghamScript = 92,
0512 OlChikiScript = 93,
0513 OldHungarianScript = 94,
0514 OldItalicScript = 95,
0515 OldNorthArabianScript = 96,
0516 OldPermicScript = 97,
0517 OldPersianScript = 98,
0518 OldSouthArabianScript = 99,
0519 OrkhonScript = 100,
0520 OsageScript = 101,
0521 OsmanyaScript = 102,
0522 PahawhHmongScript = 103,
0523 PalmyreneScript = 104,
0524 PauCinHauScript = 105,
0525 PhagsPaScript = 106,
0526 PhoenicianScript = 107,
0527 PollardPhoneticScript = 108,
0528 PsalterPahlaviScript = 109,
0529 RejangScript = 110,
0530 RunicScript = 111,
0531 SamaritanScript = 112,
0532 SaurashtraScript = 113,
0533 SharadaScript = 114,
0534 ShavianScript = 115,
0535 SiddhamScript = 116,
0536 SignWritingScript = 117,
0537 SimplifiedHanScript = 118,
0538 SinhalaScript = 119,
0539 SoraSompengScript = 120,
0540 SundaneseScript = 121,
0541 SylotiNagriScript = 122,
0542 SyriacScript = 123,
0543 TagalogScript = 124,
0544 TagbanwaScript = 125,
0545 TaiLeScript = 126,
0546 TaiVietScript = 127,
0547 TakriScript = 128,
0548 TamilScript = 129,
0549 TangutScript = 130,
0550 TeluguScript = 131,
0551 ThaanaScript = 132,
0552 ThaiScript = 133,
0553 TibetanScript = 134,
0554 TifinaghScript = 135,
0555 TirhutaScript = 136,
0556 TraditionalHanScript = 137,
0557 UgariticScript = 138,
0558 VaiScript = 139,
0559 VarangKshitiScript = 140,
0560 YiScript = 141,
0561 HanifiScript = 142,
0562
0563 BengaliScript = BanglaScript,
0564 MendeKikakuiScript = MendeScript,
0565 OriyaScript = OdiaScript,
0566 SimplifiedChineseScript = SimplifiedHanScript,
0567 TraditionalChineseScript = TraditionalHanScript,
0568
0569 LastScript = HanifiScript
0570 };
0571
0572
0573 enum Country : ushort {
0574 AnyTerritory = 0,
0575 Afghanistan = 1,
0576 AlandIslands = 2,
0577 Albania = 3,
0578 Algeria = 4,
0579 AmericanSamoa = 5,
0580 Andorra = 6,
0581 Angola = 7,
0582 Anguilla = 8,
0583 Antarctica = 9,
0584 AntiguaAndBarbuda = 10,
0585 Argentina = 11,
0586 Armenia = 12,
0587 Aruba = 13,
0588 AscensionIsland = 14,
0589 Australia = 15,
0590 Austria = 16,
0591 Azerbaijan = 17,
0592 Bahamas = 18,
0593 Bahrain = 19,
0594 Bangladesh = 20,
0595 Barbados = 21,
0596 Belarus = 22,
0597 Belgium = 23,
0598 Belize = 24,
0599 Benin = 25,
0600 Bermuda = 26,
0601 Bhutan = 27,
0602 Bolivia = 28,
0603 BosniaAndHerzegovina = 29,
0604 Botswana = 30,
0605 BouvetIsland = 31,
0606 Brazil = 32,
0607 BritishIndianOceanTerritory = 33,
0608 BritishVirginIslands = 34,
0609 Brunei = 35,
0610 Bulgaria = 36,
0611 BurkinaFaso = 37,
0612 Burundi = 38,
0613 Cambodia = 39,
0614 Cameroon = 40,
0615 Canada = 41,
0616 CanaryIslands = 42,
0617 CapeVerde = 43,
0618 CaribbeanNetherlands = 44,
0619 CaymanIslands = 45,
0620 CentralAfricanRepublic = 46,
0621 CeutaAndMelilla = 47,
0622 Chad = 48,
0623 Chile = 49,
0624 China = 50,
0625 ChristmasIsland = 51,
0626 ClippertonIsland = 52,
0627 CocosIslands = 53,
0628 Colombia = 54,
0629 Comoros = 55,
0630 CongoBrazzaville = 56,
0631 CongoKinshasa = 57,
0632 CookIslands = 58,
0633 CostaRica = 59,
0634 Croatia = 60,
0635 Cuba = 61,
0636 Curacao = 62,
0637 Cyprus = 63,
0638 Czechia = 64,
0639 Denmark = 65,
0640 DiegoGarcia = 66,
0641 Djibouti = 67,
0642 Dominica = 68,
0643 DominicanRepublic = 69,
0644 Ecuador = 70,
0645 Egypt = 71,
0646 ElSalvador = 72,
0647 EquatorialGuinea = 73,
0648 Eritrea = 74,
0649 Estonia = 75,
0650 Eswatini = 76,
0651 Ethiopia = 77,
0652 Europe = 78,
0653 EuropeanUnion = 79,
0654 FalklandIslands = 80,
0655 FaroeIslands = 81,
0656 Fiji = 82,
0657 Finland = 83,
0658 France = 84,
0659 FrenchGuiana = 85,
0660 FrenchPolynesia = 86,
0661 FrenchSouthernTerritories = 87,
0662 Gabon = 88,
0663 Gambia = 89,
0664 Georgia = 90,
0665 Germany = 91,
0666 Ghana = 92,
0667 Gibraltar = 93,
0668 Greece = 94,
0669 Greenland = 95,
0670 Grenada = 96,
0671 Guadeloupe = 97,
0672 Guam = 98,
0673 Guatemala = 99,
0674 Guernsey = 100,
0675 GuineaBissau = 101,
0676 Guinea = 102,
0677 Guyana = 103,
0678 Haiti = 104,
0679 HeardAndMcDonaldIslands = 105,
0680 Honduras = 106,
0681 HongKong = 107,
0682 Hungary = 108,
0683 Iceland = 109,
0684 India = 110,
0685 Indonesia = 111,
0686 Iran = 112,
0687 Iraq = 113,
0688 Ireland = 114,
0689 IsleOfMan = 115,
0690 Israel = 116,
0691 Italy = 117,
0692 IvoryCoast = 118,
0693 Jamaica = 119,
0694 Japan = 120,
0695 Jersey = 121,
0696 Jordan = 122,
0697 Kazakhstan = 123,
0698 Kenya = 124,
0699 Kiribati = 125,
0700 Kosovo = 126,
0701 Kuwait = 127,
0702 Kyrgyzstan = 128,
0703 Laos = 129,
0704 LatinAmerica = 130,
0705 Latvia = 131,
0706 Lebanon = 132,
0707 Lesotho = 133,
0708 Liberia = 134,
0709 Libya = 135,
0710 Liechtenstein = 136,
0711 Lithuania = 137,
0712 Luxembourg = 138,
0713 Macao = 139,
0714 Macedonia = 140,
0715 Madagascar = 141,
0716 Malawi = 142,
0717 Malaysia = 143,
0718 Maldives = 144,
0719 Mali = 145,
0720 Malta = 146,
0721 MarshallIslands = 147,
0722 Martinique = 148,
0723 Mauritania = 149,
0724 Mauritius = 150,
0725 Mayotte = 151,
0726 Mexico = 152,
0727 Micronesia = 153,
0728 Moldova = 154,
0729 Monaco = 155,
0730 Mongolia = 156,
0731 Montenegro = 157,
0732 Montserrat = 158,
0733 Morocco = 159,
0734 Mozambique = 160,
0735 Myanmar = 161,
0736 Namibia = 162,
0737 NauruTerritory = 163,
0738 Nepal = 164,
0739 Netherlands = 165,
0740 NewCaledonia = 166,
0741 NewZealand = 167,
0742 Nicaragua = 168,
0743 Nigeria = 169,
0744 Niger = 170,
0745 Niue = 171,
0746 NorfolkIsland = 172,
0747 NorthernMarianaIslands = 173,
0748 NorthKorea = 174,
0749 Norway = 175,
0750 Oman = 176,
0751 OutlyingOceania = 177,
0752 Pakistan = 178,
0753 Palau = 179,
0754 PalestinianTerritories = 180,
0755 Panama = 181,
0756 PapuaNewGuinea = 182,
0757 Paraguay = 183,
0758 Peru = 184,
0759 Philippines = 185,
0760 Pitcairn = 186,
0761 Poland = 187,
0762 Portugal = 188,
0763 PuertoRico = 189,
0764 Qatar = 190,
0765 Reunion = 191,
0766 Romania = 192,
0767 Russia = 193,
0768 Rwanda = 194,
0769 SaintBarthelemy = 195,
0770 SaintHelena = 196,
0771 SaintKittsAndNevis = 197,
0772 SaintLucia = 198,
0773 SaintMartin = 199,
0774 SaintPierreAndMiquelon = 200,
0775 SaintVincentAndGrenadines = 201,
0776 Samoa = 202,
0777 SanMarino = 203,
0778 SaoTomeAndPrincipe = 204,
0779 SaudiArabia = 205,
0780 Senegal = 206,
0781 Serbia = 207,
0782 Seychelles = 208,
0783 SierraLeone = 209,
0784 Singapore = 210,
0785 SintMaarten = 211,
0786 Slovakia = 212,
0787 Slovenia = 213,
0788 SolomonIslands = 214,
0789 Somalia = 215,
0790 SouthAfrica = 216,
0791 SouthGeorgiaAndSouthSandwichIslands = 217,
0792 SouthKorea = 218,
0793 SouthSudan = 219,
0794 Spain = 220,
0795 SriLanka = 221,
0796 Sudan = 222,
0797 Suriname = 223,
0798 SvalbardAndJanMayen = 224,
0799 Sweden = 225,
0800 Switzerland = 226,
0801 Syria = 227,
0802 Taiwan = 228,
0803 Tajikistan = 229,
0804 Tanzania = 230,
0805 Thailand = 231,
0806 TimorLeste = 232,
0807 Togo = 233,
0808 TokelauTerritory = 234,
0809 Tonga = 235,
0810 TrinidadAndTobago = 236,
0811 TristanDaCunha = 237,
0812 Tunisia = 238,
0813 Turkey = 239,
0814 Turkmenistan = 240,
0815 TurksAndCaicosIslands = 241,
0816 TuvaluTerritory = 242,
0817 Uganda = 243,
0818 Ukraine = 244,
0819 UnitedArabEmirates = 245,
0820 UnitedKingdom = 246,
0821 UnitedStatesOutlyingIslands = 247,
0822 UnitedStates = 248,
0823 UnitedStatesVirginIslands = 249,
0824 Uruguay = 250,
0825 Uzbekistan = 251,
0826 Vanuatu = 252,
0827 VaticanCity = 253,
0828 Venezuela = 254,
0829 Vietnam = 255,
0830 WallisAndFutuna = 256,
0831 WesternSahara = 257,
0832 World = 258,
0833 Yemen = 259,
0834 Zambia = 260,
0835 Zimbabwe = 261,
0836
0837 AnyCountry = AnyTerritory,
0838 Bonaire = CaribbeanNetherlands,
0839 BosniaAndHerzegowina = BosniaAndHerzegovina,
0840 CuraSao = Curacao,
0841 CzechRepublic = Czechia,
0842 DemocraticRepublicOfCongo = CongoKinshasa,
0843 DemocraticRepublicOfKorea = NorthKorea,
0844 EastTimor = TimorLeste,
0845 LatinAmericaAndTheCaribbean = LatinAmerica,
0846 Macau = Macao,
0847 NauruCountry = NauruTerritory,
0848 PeoplesRepublicOfCongo = CongoBrazzaville,
0849 RepublicOfKorea = SouthKorea,
0850 RussianFederation = Russia,
0851 SaintVincentAndTheGrenadines = SaintVincentAndGrenadines,
0852 SouthGeorgiaAndTheSouthSandwichIslands = SouthGeorgiaAndSouthSandwichIslands,
0853 SvalbardAndJanMayenIslands = SvalbardAndJanMayen,
0854 Swaziland = Eswatini,
0855 SyrianArabRepublic = Syria,
0856 TokelauCountry = TokelauTerritory,
0857 TuvaluCountry = TuvaluTerritory,
0858 UnitedStatesMinorOutlyingIslands = UnitedStatesOutlyingIslands,
0859 VaticanCityState = VaticanCity,
0860 WallisAndFutunaIslands = WallisAndFutuna,
0861
0862 LastTerritory = Zimbabwe,
0863 LastCountry = LastTerritory
0864 };
0865
0866
0867 using Territory = Country;
0868
0869 Q_ENUM(Language)
0870 Q_ENUM(Country)
0871 Q_ENUM(Script)
0872
0873 enum MeasurementSystem {
0874 MetricSystem,
0875 ImperialUSSystem,
0876 ImperialUKSystem,
0877 ImperialSystem = ImperialUSSystem
0878 };
0879 Q_ENUM(MeasurementSystem)
0880
0881 enum FormatType { LongFormat, ShortFormat, NarrowFormat };
0882 Q_ENUM(FormatType)
0883 enum NumberOption {
0884 DefaultNumberOptions = 0x0,
0885 OmitGroupSeparator = 0x01,
0886 RejectGroupSeparator = 0x02,
0887 OmitLeadingZeroInExponent = 0x04,
0888 RejectLeadingZeroInExponent = 0x08,
0889 IncludeTrailingZeroesAfterDot = 0x10,
0890 RejectTrailingZeroesAfterDot = 0x20
0891 };
0892 Q_DECLARE_FLAGS(NumberOptions, NumberOption)
0893 Q_FLAG(NumberOptions)
0894
0895 enum FloatingPointPrecisionOption {
0896 FloatingPointShortest = -128
0897 };
0898
0899 enum class TagSeparator : char { Dash = '-', Underscore = '_' };
0900 Q_ENUM(TagSeparator)
0901
0902 enum CurrencySymbolFormat {
0903 CurrencyIsoCode,
0904 CurrencySymbol,
0905 CurrencyDisplayName
0906 };
0907 Q_ENUM(CurrencySymbolFormat)
0908
0909 enum DataSizeFormat {
0910
0911 DataSizeBase1000 = 1,
0912 DataSizeSIQuantifiers = 2,
0913
0914
0915 DataSizeIecFormat = 0,
0916 DataSizeTraditionalFormat = DataSizeSIQuantifiers,
0917 DataSizeSIFormat = DataSizeBase1000 | DataSizeSIQuantifiers
0918 };
0919 Q_DECLARE_FLAGS(DataSizeFormats, DataSizeFormat)
0920 Q_FLAG(DataSizeFormats)
0921
0922 QLocale();
0923 QT_CORE_INLINE_SINCE(6, 4)
0924 explicit QLocale(const QString &name);
0925 explicit QLocale(QStringView name);
0926 QLocale(Language language, Territory territory);
0927 QLocale(Language language, Script script = AnyScript, Territory territory = AnyTerritory);
0928 QLocale(const QLocale &other) noexcept;
0929 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QLocale)
0930 QLocale &operator=(const QLocale &other) noexcept;
0931 ~QLocale();
0932
0933 void swap(QLocale &other) noexcept { d.swap(other.d); }
0934
0935 Language language() const;
0936 Script script() const;
0937 Territory territory() const;
0938 #if QT_DEPRECATED_SINCE(6, 6)
0939 QT_DEPRECATED_VERSION_X_6_6("Use territory() instead")
0940 Country country() const;
0941 #endif
0942
0943 #if QT_CORE_REMOVED_SINCE(6, 7)
0944 QString name() const;
0945 QString bcp47Name() const;
0946 #endif
0947 QString name(TagSeparator separator = TagSeparator::Underscore) const;
0948 QString bcp47Name(TagSeparator separator = TagSeparator::Dash) const;
0949
0950 QString nativeLanguageName() const;
0951 QString nativeTerritoryName() const;
0952 #if QT_DEPRECATED_SINCE(6, 6)
0953 QT_DEPRECATED_VERSION_X_6_6("Use nativeTerritoryName() instead")
0954 QString nativeCountryName() const;
0955 #endif
0956
0957 short toShort(const QString &s, bool *ok = nullptr) const
0958 { return toShort(qToStringViewIgnoringNull(s), ok); }
0959 ushort toUShort(const QString &s, bool *ok = nullptr) const
0960 { return toUShort(qToStringViewIgnoringNull(s), ok); }
0961 int toInt(const QString &s, bool *ok = nullptr) const
0962 { return toInt(qToStringViewIgnoringNull(s), ok); }
0963 uint toUInt(const QString &s, bool *ok = nullptr) const
0964 { return toUInt(qToStringViewIgnoringNull(s), ok); }
0965 long toLong(const QString &s, bool *ok = nullptr) const
0966 { return toLong(qToStringViewIgnoringNull(s), ok); }
0967 ulong toULong(const QString &s, bool *ok = nullptr) const
0968 { return toULong(qToStringViewIgnoringNull(s), ok); }
0969 qlonglong toLongLong(const QString &s, bool *ok = nullptr) const
0970 { return toLongLong(qToStringViewIgnoringNull(s), ok); }
0971 qulonglong toULongLong(const QString &s, bool *ok = nullptr) const
0972 { return toULongLong(qToStringViewIgnoringNull(s), ok); }
0973 float toFloat(const QString &s, bool *ok = nullptr) const
0974 { return toFloat(qToStringViewIgnoringNull(s), ok); }
0975 double toDouble(const QString &s, bool *ok = nullptr) const
0976 { return toDouble(qToStringViewIgnoringNull(s), ok); }
0977
0978 short toShort(QStringView s, bool *ok = nullptr) const;
0979 ushort toUShort(QStringView s, bool *ok = nullptr) const;
0980 int toInt(QStringView s, bool *ok = nullptr) const;
0981 uint toUInt(QStringView s, bool *ok = nullptr) const;
0982 long toLong(QStringView s, bool *ok = nullptr) const;
0983 ulong toULong(QStringView s, bool *ok = nullptr) const;
0984 qlonglong toLongLong(QStringView s, bool *ok = nullptr) const;
0985 qulonglong toULongLong(QStringView s, bool *ok = nullptr) const;
0986 float toFloat(QStringView s, bool *ok = nullptr) const;
0987 double toDouble(QStringView s, bool *ok = nullptr) const;
0988
0989 QString toString(qlonglong i) const;
0990 QString toString(qulonglong i) const;
0991 QString toString(long i) const { return toString(qlonglong(i)); }
0992 QString toString(ulong i) const { return toString(qulonglong(i)); }
0993 QString toString(short i) const { return toString(qlonglong(i)); }
0994 QString toString(ushort i) const { return toString(qulonglong(i)); }
0995 QString toString(int i) const { return toString(qlonglong(i)); }
0996 QString toString(uint i) const { return toString(qulonglong(i)); }
0997 QString toString(qlonglong number, int fieldWidth, char32_t fillChar) const;
0998 QString toString(qulonglong number, int fieldWidth, char32_t fillChar) const;
0999 QString toString(int number, int fieldWidth, char32_t fillChar) const
1000 { return toString(qlonglong(number), fieldWidth, fillChar); }
1001 QString toString(uint number, int fieldWidth, char32_t fillChar) const
1002 { return toString(qulonglong(number), fieldWidth, fillChar); }
1003 QString toString(long number, int fieldWidth, char32_t fillChar) const
1004 { return toString(qlonglong(number), fieldWidth, fillChar); }
1005 QString toString(ulong(number), int fieldWidth, char32_t fillChar) const
1006 { return toString(qulonglong(number), fieldWidth, fillChar); }
1007 QString toString(short number, int fieldWidth, char32_t fillChar) const
1008 { return toString(qlonglong(number), fieldWidth, fillChar); }
1009 QString toString(ushort number, int fieldWidth, char32_t fillChar) const
1010 { return toString(qulonglong(number), fieldWidth, fillChar); }
1011 QString toString(double f, char format = 'g', int precision = 6) const;
1012 QString toString(float f, char format = 'g', int precision = 6) const
1013 { return toString(double(f), format, precision); }
1014
1015
1016 QString toString(QDate date, const QString &format) const;
1017 QString toString(QTime time, const QString &format) const;
1018 QString toString(const QDateTime &dateTime, const QString &format) const
1019 { return toString(dateTime, qToStringViewIgnoringNull(format)); }
1020 QString toString(QDate date, QStringView format) const;
1021 QString toString(QTime time, QStringView format) const;
1022 QString toString(const QDateTime &dateTime, QStringView format) const;
1023 QString toString(QDate date, FormatType format = LongFormat) const;
1024 QString toString(QTime time, FormatType format = LongFormat) const;
1025 QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const;
1026
1027
1028
1029
1030
1031
1032 QString toString(QDate date, QStringView format, QCalendar cal) const;
1033 QString toString(QDate date, FormatType format, QCalendar cal) const;
1034 QString toString(const QDateTime &dateTime, FormatType format, QCalendar cal) const;
1035 QString toString(const QDateTime &dateTime, QStringView format, QCalendar cal) const;
1036
1037 QString dateFormat(FormatType format = LongFormat) const;
1038 QString timeFormat(FormatType format = LongFormat) const;
1039 QString dateTimeFormat(FormatType format = LongFormat) const;
1040
1041
1042 #if QT_CONFIG(datestring)
1043 QTime toTime(const QString &string, FormatType = LongFormat) const;
1044 QTime toTime(const QString &string, const QString &format) const;
1045 # if QT_CORE_REMOVED_SINCE(6, 7)
1046 QDate toDate(const QString &string, FormatType = LongFormat) const;
1047 QDate toDate(const QString &string, const QString &format) const;
1048 QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const;
1049 QDateTime toDateTime(const QString &string, const QString &format) const;
1050
1051 QDate toDate(const QString &string, FormatType format, QCalendar cal) const;
1052 QDate toDate(const QString &string, const QString &format, QCalendar cal) const;
1053 QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal) const;
1054 QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal) const;
1055 # endif
1056 QDate toDate(const QString &string, FormatType = LongFormat,
1057 int baseYear = DefaultTwoDigitBaseYear) const;
1058 QDate toDate(const QString &string, const QString &format,
1059 int baseYear = DefaultTwoDigitBaseYear) const;
1060 QDateTime toDateTime(const QString &string, FormatType format = LongFormat,
1061 int baseYear = DefaultTwoDigitBaseYear) const;
1062 QDateTime toDateTime(const QString &string, const QString &format,
1063 int baseYear = DefaultTwoDigitBaseYear) const;
1064
1065 QDate toDate(const QString &string, FormatType format, QCalendar cal,
1066 int baseYear = DefaultTwoDigitBaseYear) const;
1067 QDate toDate(const QString &string, const QString &format, QCalendar cal,
1068 int baseYear = DefaultTwoDigitBaseYear) const;
1069 QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal,
1070 int baseYear = DefaultTwoDigitBaseYear) const;
1071 QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal,
1072 int baseYear = DefaultTwoDigitBaseYear) const;
1073 #endif
1074
1075 QString decimalPoint() const;
1076 QString groupSeparator() const;
1077 QString percent() const;
1078 QString zeroDigit() const;
1079 QString negativeSign() const;
1080 QString positiveSign() const;
1081 QString exponential() const;
1082
1083 QString monthName(int, FormatType format = LongFormat) const;
1084 QString standaloneMonthName(int, FormatType format = LongFormat) const;
1085 QString dayName(int, FormatType format = LongFormat) const;
1086 QString standaloneDayName(int, FormatType format = LongFormat) const;
1087
1088 Qt::DayOfWeek firstDayOfWeek() const;
1089 QList<Qt::DayOfWeek> weekdays() const;
1090
1091 QString amText() const;
1092 QString pmText() const;
1093
1094 MeasurementSystem measurementSystem() const;
1095 QLocale collation() const;
1096 Qt::LayoutDirection textDirection() const;
1097
1098 QString toUpper(const QString &str) const;
1099 QString toLower(const QString &str) const;
1100
1101 QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const;
1102 QString toCurrencyString(qlonglong, const QString &symbol = QString()) const;
1103 QString toCurrencyString(qulonglong, const QString &symbol = QString()) const;
1104 QString toCurrencyString(short i, const QString &symbol = QString()) const
1105 { return toCurrencyString(qlonglong(i), symbol); }
1106 QString toCurrencyString(ushort i, const QString &symbol = QString()) const
1107 { return toCurrencyString(qulonglong(i), symbol); }
1108 QString toCurrencyString(int i, const QString &symbol = QString()) const
1109 { return toCurrencyString(qlonglong(i), symbol); }
1110 QString toCurrencyString(uint i, const QString &symbol = QString()) const
1111 { return toCurrencyString(qulonglong(i), symbol); }
1112 QString toCurrencyString(double, const QString &symbol = QString(), int precision = -1) const;
1113 QString toCurrencyString(float i, const QString &symbol = QString(), int precision = -1) const
1114 { return toCurrencyString(double(i), symbol, precision); }
1115
1116 QString formattedDataSize(qint64 bytes, int precision = 2, DataSizeFormats format = DataSizeIecFormat) const;
1117
1118 #if QT_CORE_REMOVED_SINCE(6, 7)
1119 QStringList uiLanguages() const;
1120 #endif
1121 QStringList uiLanguages(TagSeparator separator = TagSeparator::Dash) const;
1122
1123 enum LanguageCodeType {
1124 ISO639Part1 = 1 << 0,
1125 ISO639Part2B = 1 << 1,
1126 ISO639Part2T = 1 << 2,
1127 ISO639Part3 = 1 << 3,
1128 LegacyLanguageCode = 1 << 15,
1129
1130 ISO639Part2 = ISO639Part2B | ISO639Part2T,
1131 ISO639Alpha2 = ISO639Part1,
1132 ISO639Alpha3 = ISO639Part2 | ISO639Part3,
1133 ISO639 = ISO639Alpha2 | ISO639Alpha3,
1134
1135 AnyLanguageCode = -1
1136 };
1137 Q_DECLARE_FLAGS(LanguageCodeTypes, LanguageCodeType)
1138 Q_FLAG(LanguageCodeTypes)
1139
1140 #if QT_CORE_REMOVED_SINCE(6, 3)
1141 static QString languageToCode(Language language);
1142 static Language codeToLanguage(QStringView languageCode) noexcept;
1143 #endif
1144 static QString languageToCode(Language language, LanguageCodeTypes codeTypes = AnyLanguageCode);
1145 static Language codeToLanguage(QStringView languageCode,
1146 LanguageCodeTypes codeTypes = AnyLanguageCode) noexcept;
1147 static QString territoryToCode(Territory territory);
1148 static Territory codeToTerritory(QStringView territoryCode) noexcept;
1149 #if QT_DEPRECATED_SINCE(6, 6)
1150 QT_DEPRECATED_VERSION_X_6_6("Use territoryToCode(Territory) instead")
1151 static QString countryToCode(Country country);
1152 QT_DEPRECATED_VERSION_X_6_6("Use codeToTerritory(QStringView) instead")
1153 static Country codeToCountry(QStringView countryCode) noexcept;
1154 #endif
1155 static QString scriptToCode(Script script);
1156 static Script codeToScript(QStringView scriptCode) noexcept;
1157
1158 static QString languageToString(Language language);
1159 static QString territoryToString(Territory territory);
1160 #if QT_DEPRECATED_SINCE(6, 6)
1161 QT_DEPRECATED_VERSION_X_6_6("Use territoryToString(Territory) instead")
1162 static QString countryToString(Country country);
1163 #endif
1164 static QString scriptToString(Script script);
1165 static void setDefault(const QLocale &locale);
1166
1167 static QLocale c() noexcept;
1168 static QLocale system();
1169
1170 static QList<QLocale> matchingLocales(QLocale::Language language, QLocale::Script script,
1171 QLocale::Territory territory);
1172 #if QT_DEPRECATED_SINCE(6, 6)
1173 QT_DEPRECATED_VERSION_X_6_6("Query territory() on each entry from matchingLocales() instead")
1174 static QList<Country> countriesForLanguage(Language lang);
1175 #endif
1176
1177 void setNumberOptions(NumberOptions options);
1178 NumberOptions numberOptions() const;
1179
1180 enum QuotationStyle { StandardQuotation, AlternateQuotation };
1181 Q_ENUM(QuotationStyle)
1182 QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const
1183 { return quoteString(QStringView(str), style); }
1184 QString quoteString(QStringView str, QuotationStyle style = StandardQuotation) const;
1185
1186 QString createSeparatedList(const QStringList &strl) const;
1187
1188 private:
1189 QLocale(QLocalePrivate &dd);
1190 bool equals(const QLocale &other) const noexcept;
1191 friend class QLocalePrivate;
1192 friend class QSystemLocale;
1193 friend class QTimeZonePrivate;
1194 friend class QCalendarBackend;
1195 friend class QRomanCalendar;
1196 friend Q_CORE_EXPORT size_t qHash(const QLocale &key, size_t seed) noexcept;
1197
1198 friend bool comparesEqual(const QLocale &lhs, const QLocale &rhs) noexcept
1199 {
1200 return lhs.equals(rhs);
1201 }
1202 Q_DECLARE_EQUALITY_COMPARABLE(QLocale)
1203
1204 friend Q_CORE_EXPORT bool comparesEqual(const QLocale &lhs, Language rhs);
1205 Q_DECLARE_EQUALITY_COMPARABLE_NON_NOEXCEPT(QLocale, Language)
1206
1207 QSharedDataPointer<QLocalePrivate> d;
1208 };
1209 Q_DECLARE_SHARED(QLocale)
1210 Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::NumberOptions)
1211 Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::LanguageCodeTypes)
1212
1213 #if QT_CORE_INLINE_IMPL_SINCE(6, 4)
1214 QLocale::QLocale(const QString &name)
1215 : QLocale(qToStringViewIgnoringNull(name)) {}
1216 #endif
1217
1218 #ifndef QT_NO_DATASTREAM
1219 Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QLocale &);
1220 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QLocale &);
1221 #endif
1222
1223 #ifndef QT_NO_DEBUG_STREAM
1224 Q_CORE_EXPORT QDebug operator<<(QDebug, const QLocale &);
1225 #endif
1226
1227 QT_END_NAMESPACE
1228
1229 #endif