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