Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-13 09:22: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 // Qt-Security score:significant reason:trivial-impl-only
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 // see qlocale_data_p.h for more info on generated data
0043 // GENERATED PART STARTS HERE
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     // ### Qt 7: Rename to Territory
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 // GENERATED PART ENDS HERE
0866 
0867     using Territory = Country; // ### Qt 7: reverse
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 // Qt 4 compatibility
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         // Single-bit values, for internal use.
0911         DataSizeBase1000 = 1, // use factors of 1000 instead of IEC's 1024;
0912         DataSizeSIQuantifiers = 2, // use SI quantifiers instead of IEC ones.
0913 
0914         // Flags values for use in API:
0915         DataSizeIecFormat = 0, // base 1024, KiB, MiB, GiB, ...
0916         DataSizeTraditionalFormat = DataSizeSIQuantifiers, // base 1024, kB, MB, GB, ...
0917         DataSizeSIFormat = DataSizeBase1000 | DataSizeSIQuantifiers // base 1000, kB, MB, GB, ...
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     // (Can't inline first two: passing by value doesn't work when only forward-declared.)
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     /* We can't pass a default for QCalendar (its declaration mentions
1028      * QLocale::FormatType, so it has to #include this header, which thus can't
1029      * #include its, so we can't instantiate QCalendar() as default). This
1030      * precludes any default for format, too.
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     // QCalendar's header has to #include QLocale's, preventing the reverse, so
1041     // QCalendar parameters can't have defaults here.
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     // Calendar-aware API
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     // Calendar-aware API
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 // QLOCALE_H