Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-15 08:27:11

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