Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-18 09:26:34

0001 // Copyright (C) 2021 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
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 // see qlocale_data_p.h for more info on generated data
0042 // GENERATED PART STARTS HERE
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     // ### Qt 7: Rename to Territory
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 // GENERATED PART ENDS HERE
0863 
0864     using Territory = Country; // ### Qt 7: reverse
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 // Qt 4 compatibility
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         // Single-bit values, for internal use.
0908         DataSizeBase1000 = 1, // use factors of 1000 instead of IEC's 1024;
0909         DataSizeSIQuantifiers = 2, // use SI quantifiers instead of IEC ones.
0910 
0911         // Flags values for use in API:
0912         DataSizeIecFormat = 0, // base 1024, KiB, MiB, GiB, ...
0913         DataSizeTraditionalFormat = DataSizeSIQuantifiers, // base 1024, kB, MB, GB, ...
0914         DataSizeSIFormat = DataSizeBase1000 | DataSizeSIQuantifiers // base 1000, kB, MB, GB, ...
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     // (Can't inline first two: passing by value doesn't work when only forward-declared.)
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     /* We can't pass a default for QCalendar (its declaration mentions
1010      * QLocale::FormatType, so it has to #include this header, which thus can't
1011      * #include its, so we can't instantiate QCalendar() as default). This
1012      * precludes any default for format, too.
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     // QCalendar's header has to #include QLocale's, preventing the reverse, so
1023     // QCalendar parameters can't have defaults here.
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     // Calendar-aware API
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     // Calendar-aware API
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 // QLOCALE_H