diff options
Diffstat (limited to 'src/corelib/text/qlocale.h')
-rw-r--r-- | src/corelib/text/qlocale.h | 1153 |
1 files changed, 1153 insertions, 0 deletions
diff --git a/src/corelib/text/qlocale.h b/src/corelib/text/qlocale.h new file mode 100644 index 0000000000..09de830ca3 --- /dev/null +++ b/src/corelib/text/qlocale.h @@ -0,0 +1,1153 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QLOCALE_H +#define QLOCALE_H + +#include <QtCore/qvariant.h> +#include <QtCore/qstring.h> +#include <QtCore/qobjectdefs.h> +#include <QtCore/qshareddata.h> + +QT_BEGIN_NAMESPACE + + +class QDataStream; +class QDate; +class QDateTime; +class QLocale; +class QTime; +class QVariant; +class QTextStream; +class QTextStreamPrivate; + +class QLocalePrivate; + +Q_CORE_EXPORT uint qHash(const QLocale &key, uint seed = 0) noexcept; + +class Q_CORE_EXPORT QLocale +{ + Q_GADGET + friend class QString; + friend class QStringRef; + friend class QByteArray; + friend class QIntValidator; + friend class QDoubleValidatorPrivate; + friend class QTextStream; + friend class QTextStreamPrivate; + +public: +// GENERATED PART STARTS HERE +// see qlocale_data_p.h for more info on generated data + enum Language { + AnyLanguage = 0, + C = 1, + Abkhazian = 2, + Oromo = 3, + Afar = 4, + Afrikaans = 5, + Albanian = 6, + Amharic = 7, + Arabic = 8, + Armenian = 9, + Assamese = 10, + Aymara = 11, + Azerbaijani = 12, + Bashkir = 13, + Basque = 14, + Bengali = 15, + Dzongkha = 16, + Bihari = 17, + Bislama = 18, + Breton = 19, + Bulgarian = 20, + Burmese = 21, + Belarusian = 22, + Khmer = 23, + Catalan = 24, + Chinese = 25, + Corsican = 26, + Croatian = 27, + Czech = 28, + Danish = 29, + Dutch = 30, + English = 31, + Esperanto = 32, + Estonian = 33, + Faroese = 34, + Fijian = 35, + Finnish = 36, + French = 37, + WesternFrisian = 38, + Gaelic = 39, + Galician = 40, + Georgian = 41, + German = 42, + Greek = 43, + Greenlandic = 44, + Guarani = 45, + Gujarati = 46, + Hausa = 47, + Hebrew = 48, + Hindi = 49, + Hungarian = 50, + Icelandic = 51, + Indonesian = 52, + Interlingua = 53, + Interlingue = 54, + Inuktitut = 55, + Inupiak = 56, + Irish = 57, + Italian = 58, + Japanese = 59, + Javanese = 60, + Kannada = 61, + Kashmiri = 62, + Kazakh = 63, + Kinyarwanda = 64, + Kirghiz = 65, + Korean = 66, + Kurdish = 67, + Rundi = 68, + Lao = 69, + Latin = 70, + Latvian = 71, + Lingala = 72, + Lithuanian = 73, + Macedonian = 74, + Malagasy = 75, + Malay = 76, + Malayalam = 77, + Maltese = 78, + Maori = 79, + Marathi = 80, + Marshallese = 81, + Mongolian = 82, + NauruLanguage = 83, + Nepali = 84, + NorwegianBokmal = 85, + Occitan = 86, + Oriya = 87, + Pashto = 88, + Persian = 89, + Polish = 90, + Portuguese = 91, + Punjabi = 92, + Quechua = 93, + Romansh = 94, + Romanian = 95, + Russian = 96, + Samoan = 97, + Sango = 98, + Sanskrit = 99, + Serbian = 100, + Ossetic = 101, + SouthernSotho = 102, + Tswana = 103, + Shona = 104, + Sindhi = 105, + Sinhala = 106, + Swati = 107, + Slovak = 108, + Slovenian = 109, + Somali = 110, + Spanish = 111, + Sundanese = 112, + Swahili = 113, + Swedish = 114, + Sardinian = 115, + Tajik = 116, + Tamil = 117, + Tatar = 118, + Telugu = 119, + Thai = 120, + Tibetan = 121, + Tigrinya = 122, + Tongan = 123, + Tsonga = 124, + Turkish = 125, + Turkmen = 126, + Tahitian = 127, + Uighur = 128, + Ukrainian = 129, + Urdu = 130, + Uzbek = 131, + Vietnamese = 132, + Volapuk = 133, + Welsh = 134, + Wolof = 135, + Xhosa = 136, + Yiddish = 137, + Yoruba = 138, + Zhuang = 139, + Zulu = 140, + NorwegianNynorsk = 141, + Bosnian = 142, + Divehi = 143, + Manx = 144, + Cornish = 145, + Akan = 146, + Konkani = 147, + Ga = 148, + Igbo = 149, + Kamba = 150, + Syriac = 151, + Blin = 152, + Geez = 153, + Koro = 154, + Sidamo = 155, + Atsam = 156, + Tigre = 157, + Jju = 158, + Friulian = 159, + Venda = 160, + Ewe = 161, + Walamo = 162, + Hawaiian = 163, + Tyap = 164, + Nyanja = 165, + Filipino = 166, + SwissGerman = 167, + SichuanYi = 168, + Kpelle = 169, + LowGerman = 170, + SouthNdebele = 171, + NorthernSotho = 172, + NorthernSami = 173, + Taroko = 174, + Gusii = 175, + Taita = 176, + Fulah = 177, + Kikuyu = 178, + Samburu = 179, + Sena = 180, + NorthNdebele = 181, + Rombo = 182, + Tachelhit = 183, + Kabyle = 184, + Nyankole = 185, + Bena = 186, + Vunjo = 187, + Bambara = 188, + Embu = 189, + Cherokee = 190, + Morisyen = 191, + Makonde = 192, + Langi = 193, + Ganda = 194, + Bemba = 195, + Kabuverdianu = 196, + Meru = 197, + Kalenjin = 198, + Nama = 199, + Machame = 200, + Colognian = 201, + Masai = 202, + Soga = 203, + Luyia = 204, + Asu = 205, + Teso = 206, + Saho = 207, + KoyraChiini = 208, + Rwa = 209, + Luo = 210, + Chiga = 211, + CentralMoroccoTamazight = 212, + KoyraboroSenni = 213, + Shambala = 214, + Bodo = 215, + Avaric = 216, + Chamorro = 217, + Chechen = 218, + Church = 219, + Chuvash = 220, + Cree = 221, + Haitian = 222, + Herero = 223, + HiriMotu = 224, + Kanuri = 225, + Komi = 226, + Kongo = 227, + Kwanyama = 228, + Limburgish = 229, + LubaKatanga = 230, + Luxembourgish = 231, + Navaho = 232, + Ndonga = 233, + Ojibwa = 234, + Pali = 235, + Walloon = 236, + Aghem = 237, + Basaa = 238, + Zarma = 239, + Duala = 240, + JolaFonyi = 241, + Ewondo = 242, + Bafia = 243, + MakhuwaMeetto = 244, + Mundang = 245, + Kwasio = 246, + Nuer = 247, + Sakha = 248, + Sangu = 249, + CongoSwahili = 250, + Tasawaq = 251, + Vai = 252, + Walser = 253, + Yangben = 254, + Avestan = 255, + Asturian = 256, + Ngomba = 257, + Kako = 258, + Meta = 259, + Ngiemboon = 260, + Aragonese = 261, + Akkadian = 262, + AncientEgyptian = 263, + AncientGreek = 264, + Aramaic = 265, + Balinese = 266, + Bamun = 267, + BatakToba = 268, + Buginese = 269, + Buhid = 270, + Carian = 271, + Chakma = 272, + ClassicalMandaic = 273, + Coptic = 274, + Dogri = 275, + EasternCham = 276, + EasternKayah = 277, + Etruscan = 278, + Gothic = 279, + Hanunoo = 280, + Ingush = 281, + LargeFloweryMiao = 282, + Lepcha = 283, + Limbu = 284, + Lisu = 285, + Lu = 286, + Lycian = 287, + Lydian = 288, + Mandingo = 289, + Manipuri = 290, + Meroitic = 291, + NorthernThai = 292, + OldIrish = 293, + OldNorse = 294, + OldPersian = 295, + OldTurkish = 296, + Pahlavi = 297, + Parthian = 298, + Phoenician = 299, + PrakritLanguage = 300, + Rejang = 301, + Sabaean = 302, + Samaritan = 303, + Santali = 304, + Saurashtra = 305, + Sora = 306, + Sylheti = 307, + Tagbanwa = 308, + TaiDam = 309, + TaiNua = 310, + Ugaritic = 311, + Akoose = 312, + Lakota = 313, + StandardMoroccanTamazight = 314, + Mapuche = 315, + CentralKurdish = 316, + LowerSorbian = 317, + UpperSorbian = 318, + Kenyang = 319, + Mohawk = 320, + Nko = 321, + Prussian = 322, + Kiche = 323, + SouthernSami = 324, + LuleSami = 325, + InariSami = 326, + SkoltSami = 327, + Warlpiri = 328, + ManichaeanMiddlePersian = 329, + Mende = 330, + AncientNorthArabian = 331, + LinearA = 332, + HmongNjua = 333, + Ho = 334, + Lezghian = 335, + Bassa = 336, + Mono = 337, + TedimChin = 338, + Maithili = 339, + Ahom = 340, + AmericanSignLanguage = 341, + ArdhamagadhiPrakrit = 342, + Bhojpuri = 343, + HieroglyphicLuwian = 344, + LiteraryChinese = 345, + Mazanderani = 346, + Mru = 347, + Newari = 348, + NorthernLuri = 349, + Palauan = 350, + Papiamento = 351, + Saraiki = 352, + TokelauLanguage = 353, + TokPisin = 354, + TuvaluLanguage = 355, + UncodedLanguages = 356, + Cantonese = 357, + Osage = 358, + Tangut = 359, + Ido = 360, + Lojban = 361, + Sicilian = 362, + SouthernKurdish = 363, + WesternBalochi = 364, + Cebuano = 365, + Erzya = 366, + + Afan = Oromo, + Bhutani = Dzongkha, + Byelorussian = Belarusian, + Cambodian = Khmer, + Chewa = Nyanja, + Frisian = WesternFrisian, + Kurundi = Rundi, + Moldavian = Romanian, + Norwegian = NorwegianBokmal, + RhaetoRomance = Romansh, + SerboCroatian = Serbian, + Tagalog = Filipino, + Twi = Akan, + Uigur = Uighur, + + LastLanguage = Erzya + }; + + enum Script { + AnyScript = 0, + ArabicScript = 1, + CyrillicScript = 2, + DeseretScript = 3, + GurmukhiScript = 4, + SimplifiedHanScript = 5, + TraditionalHanScript = 6, + LatinScript = 7, + MongolianScript = 8, + TifinaghScript = 9, + ArmenianScript = 10, + BengaliScript = 11, + CherokeeScript = 12, + DevanagariScript = 13, + EthiopicScript = 14, + GeorgianScript = 15, + GreekScript = 16, + GujaratiScript = 17, + HebrewScript = 18, + JapaneseScript = 19, + KhmerScript = 20, + KannadaScript = 21, + KoreanScript = 22, + LaoScript = 23, + MalayalamScript = 24, + MyanmarScript = 25, + OriyaScript = 26, + TamilScript = 27, + TeluguScript = 28, + ThaanaScript = 29, + ThaiScript = 30, + TibetanScript = 31, + SinhalaScript = 32, + SyriacScript = 33, + YiScript = 34, + VaiScript = 35, + AvestanScript = 36, + BalineseScript = 37, + BamumScript = 38, + BatakScript = 39, + BopomofoScript = 40, + BrahmiScript = 41, + BugineseScript = 42, + BuhidScript = 43, + CanadianAboriginalScript = 44, + CarianScript = 45, + ChakmaScript = 46, + ChamScript = 47, + CopticScript = 48, + CypriotScript = 49, + EgyptianHieroglyphsScript = 50, + FraserScript = 51, + GlagoliticScript = 52, + GothicScript = 53, + HanScript = 54, + HangulScript = 55, + HanunooScript = 56, + ImperialAramaicScript = 57, + InscriptionalPahlaviScript = 58, + InscriptionalParthianScript = 59, + JavaneseScript = 60, + KaithiScript = 61, + KatakanaScript = 62, + KayahLiScript = 63, + KharoshthiScript = 64, + LannaScript = 65, + LepchaScript = 66, + LimbuScript = 67, + LinearBScript = 68, + LycianScript = 69, + LydianScript = 70, + MandaeanScript = 71, + MeiteiMayekScript = 72, + MeroiticScript = 73, + MeroiticCursiveScript = 74, + NkoScript = 75, + NewTaiLueScript = 76, + OghamScript = 77, + OlChikiScript = 78, + OldItalicScript = 79, + OldPersianScript = 80, + OldSouthArabianScript = 81, + OrkhonScript = 82, + OsmanyaScript = 83, + PhagsPaScript = 84, + PhoenicianScript = 85, + PollardPhoneticScript = 86, + RejangScript = 87, + RunicScript = 88, + SamaritanScript = 89, + SaurashtraScript = 90, + SharadaScript = 91, + ShavianScript = 92, + SoraSompengScript = 93, + CuneiformScript = 94, + SundaneseScript = 95, + SylotiNagriScript = 96, + TagalogScript = 97, + TagbanwaScript = 98, + TaiLeScript = 99, + TaiVietScript = 100, + TakriScript = 101, + UgariticScript = 102, + BrailleScript = 103, + HiraganaScript = 104, + CaucasianAlbanianScript = 105, + BassaVahScript = 106, + DuployanScript = 107, + ElbasanScript = 108, + GranthaScript = 109, + PahawhHmongScript = 110, + KhojkiScript = 111, + LinearAScript = 112, + MahajaniScript = 113, + ManichaeanScript = 114, + MendeKikakuiScript = 115, + ModiScript = 116, + MroScript = 117, + OldNorthArabianScript = 118, + NabataeanScript = 119, + PalmyreneScript = 120, + PauCinHauScript = 121, + OldPermicScript = 122, + PsalterPahlaviScript = 123, + SiddhamScript = 124, + KhudawadiScript = 125, + TirhutaScript = 126, + VarangKshitiScript = 127, + AhomScript = 128, + AnatolianHieroglyphsScript = 129, + HatranScript = 130, + MultaniScript = 131, + OldHungarianScript = 132, + SignWritingScript = 133, + AdlamScript = 134, + BhaiksukiScript = 135, + MarchenScript = 136, + NewaScript = 137, + OsageScript = 138, + TangutScript = 139, + HanWithBopomofoScript = 140, + JamoScript = 141, + + SimplifiedChineseScript = SimplifiedHanScript, + TraditionalChineseScript = TraditionalHanScript, + + LastScript = JamoScript + }; + enum Country { + AnyCountry = 0, + Afghanistan = 1, + Albania = 2, + Algeria = 3, + AmericanSamoa = 4, + Andorra = 5, + Angola = 6, + Anguilla = 7, + Antarctica = 8, + AntiguaAndBarbuda = 9, + Argentina = 10, + Armenia = 11, + Aruba = 12, + Australia = 13, + Austria = 14, + Azerbaijan = 15, + Bahamas = 16, + Bahrain = 17, + Bangladesh = 18, + Barbados = 19, + Belarus = 20, + Belgium = 21, + Belize = 22, + Benin = 23, + Bermuda = 24, + Bhutan = 25, + Bolivia = 26, + BosniaAndHerzegowina = 27, + Botswana = 28, + BouvetIsland = 29, + Brazil = 30, + BritishIndianOceanTerritory = 31, + Brunei = 32, + Bulgaria = 33, + BurkinaFaso = 34, + Burundi = 35, + Cambodia = 36, + Cameroon = 37, + Canada = 38, + CapeVerde = 39, + CaymanIslands = 40, + CentralAfricanRepublic = 41, + Chad = 42, + Chile = 43, + China = 44, + ChristmasIsland = 45, + CocosIslands = 46, + Colombia = 47, + Comoros = 48, + CongoKinshasa = 49, + CongoBrazzaville = 50, + CookIslands = 51, + CostaRica = 52, + IvoryCoast = 53, + Croatia = 54, + Cuba = 55, + Cyprus = 56, + CzechRepublic = 57, + Denmark = 58, + Djibouti = 59, + Dominica = 60, + DominicanRepublic = 61, + EastTimor = 62, + Ecuador = 63, + Egypt = 64, + ElSalvador = 65, + EquatorialGuinea = 66, + Eritrea = 67, + Estonia = 68, + Ethiopia = 69, + FalklandIslands = 70, + FaroeIslands = 71, + Fiji = 72, + Finland = 73, + France = 74, + Guernsey = 75, + FrenchGuiana = 76, + FrenchPolynesia = 77, + FrenchSouthernTerritories = 78, + Gabon = 79, + Gambia = 80, + Georgia = 81, + Germany = 82, + Ghana = 83, + Gibraltar = 84, + Greece = 85, + Greenland = 86, + Grenada = 87, + Guadeloupe = 88, + Guam = 89, + Guatemala = 90, + Guinea = 91, + GuineaBissau = 92, + Guyana = 93, + Haiti = 94, + HeardAndMcDonaldIslands = 95, + Honduras = 96, + HongKong = 97, + Hungary = 98, + Iceland = 99, + India = 100, + Indonesia = 101, + Iran = 102, + Iraq = 103, + Ireland = 104, + Israel = 105, + Italy = 106, + Jamaica = 107, + Japan = 108, + Jordan = 109, + Kazakhstan = 110, + Kenya = 111, + Kiribati = 112, + NorthKorea = 113, + SouthKorea = 114, + Kuwait = 115, + Kyrgyzstan = 116, + Laos = 117, + Latvia = 118, + Lebanon = 119, + Lesotho = 120, + Liberia = 121, + Libya = 122, + Liechtenstein = 123, + Lithuania = 124, + Luxembourg = 125, + Macau = 126, + Macedonia = 127, + Madagascar = 128, + Malawi = 129, + Malaysia = 130, + Maldives = 131, + Mali = 132, + Malta = 133, + MarshallIslands = 134, + Martinique = 135, + Mauritania = 136, + Mauritius = 137, + Mayotte = 138, + Mexico = 139, + Micronesia = 140, + Moldova = 141, + Monaco = 142, + Mongolia = 143, + Montserrat = 144, + Morocco = 145, + Mozambique = 146, + Myanmar = 147, + Namibia = 148, + NauruCountry = 149, + Nepal = 150, + Netherlands = 151, + CuraSao = 152, + NewCaledonia = 153, + NewZealand = 154, + Nicaragua = 155, + Niger = 156, + Nigeria = 157, + Niue = 158, + NorfolkIsland = 159, + NorthernMarianaIslands = 160, + Norway = 161, + Oman = 162, + Pakistan = 163, + Palau = 164, + PalestinianTerritories = 165, + Panama = 166, + PapuaNewGuinea = 167, + Paraguay = 168, + Peru = 169, + Philippines = 170, + Pitcairn = 171, + Poland = 172, + Portugal = 173, + PuertoRico = 174, + Qatar = 175, + Reunion = 176, + Romania = 177, + Russia = 178, + Rwanda = 179, + SaintKittsAndNevis = 180, + SaintLucia = 181, + SaintVincentAndTheGrenadines = 182, + Samoa = 183, + SanMarino = 184, + SaoTomeAndPrincipe = 185, + SaudiArabia = 186, + Senegal = 187, + Seychelles = 188, + SierraLeone = 189, + Singapore = 190, + Slovakia = 191, + Slovenia = 192, + SolomonIslands = 193, + Somalia = 194, + SouthAfrica = 195, + SouthGeorgiaAndTheSouthSandwichIslands = 196, + Spain = 197, + SriLanka = 198, + SaintHelena = 199, + SaintPierreAndMiquelon = 200, + Sudan = 201, + Suriname = 202, + SvalbardAndJanMayenIslands = 203, + Swaziland = 204, + Sweden = 205, + Switzerland = 206, + Syria = 207, + Taiwan = 208, + Tajikistan = 209, + Tanzania = 210, + Thailand = 211, + Togo = 212, + TokelauCountry = 213, + Tonga = 214, + TrinidadAndTobago = 215, + Tunisia = 216, + Turkey = 217, + Turkmenistan = 218, + TurksAndCaicosIslands = 219, + TuvaluCountry = 220, + Uganda = 221, + Ukraine = 222, + UnitedArabEmirates = 223, + UnitedKingdom = 224, + UnitedStates = 225, + UnitedStatesMinorOutlyingIslands = 226, + Uruguay = 227, + Uzbekistan = 228, + Vanuatu = 229, + VaticanCityState = 230, + Venezuela = 231, + Vietnam = 232, + BritishVirginIslands = 233, + UnitedStatesVirginIslands = 234, + WallisAndFutunaIslands = 235, + WesternSahara = 236, + Yemen = 237, + CanaryIslands = 238, + Zambia = 239, + Zimbabwe = 240, + ClippertonIsland = 241, + Montenegro = 242, + Serbia = 243, + SaintBarthelemy = 244, + SaintMartin = 245, + LatinAmerica = 246, + AscensionIsland = 247, + AlandIslands = 248, + DiegoGarcia = 249, + CeutaAndMelilla = 250, + IsleOfMan = 251, + Jersey = 252, + TristanDaCunha = 253, + SouthSudan = 254, + Bonaire = 255, + SintMaarten = 256, + Kosovo = 257, + EuropeanUnion = 258, + OutlyingOceania = 259, + World = 260, + Europe = 261, + + DemocraticRepublicOfCongo = CongoKinshasa, + DemocraticRepublicOfKorea = NorthKorea, + LatinAmericaAndTheCaribbean = LatinAmerica, + PeoplesRepublicOfCongo = CongoBrazzaville, + RepublicOfKorea = SouthKorea, + RussianFederation = Russia, + SyrianArabRepublic = Syria, + Tokelau = TokelauCountry, + Tuvalu = TuvaluCountry, + + LastCountry = Europe + }; +// GENERATED PART ENDS HERE + + Q_ENUM(Language) + Q_ENUM(Country) + Q_ENUM(Script) + + enum MeasurementSystem { + MetricSystem, + ImperialUSSystem, + ImperialUKSystem, + ImperialSystem = ImperialUSSystem // Qt 4 compatibility + }; + Q_ENUM(MeasurementSystem) + + enum FormatType { LongFormat, ShortFormat, NarrowFormat }; + enum NumberOption { + DefaultNumberOptions = 0x0, + OmitGroupSeparator = 0x01, + RejectGroupSeparator = 0x02, + OmitLeadingZeroInExponent = 0x04, + RejectLeadingZeroInExponent = 0x08, + IncludeTrailingZeroesAfterDot = 0x10, + RejectTrailingZeroesAfterDot = 0x20 + }; + Q_DECLARE_FLAGS(NumberOptions, NumberOption) + + enum FloatingPointPrecisionOption { + FloatingPointShortest = -128 + }; + + enum CurrencySymbolFormat { + CurrencyIsoCode, + CurrencySymbol, + CurrencyDisplayName + }; + + enum DataSizeFormat { + // Single-bit values, for internal use. + DataSizeBase1000 = 1, // use factors of 1000 instead of IEC's 1024; + DataSizeSIQuantifiers = 2, // use SI quantifiers instead of IEC ones. + + // Flags values for use in API: + DataSizeIecFormat = 0, // base 1024, KiB, MiB, GiB, ... + DataSizeTraditionalFormat = DataSizeSIQuantifiers, // base 1024, kB, MB, GB, ... + DataSizeSIFormat = DataSizeBase1000 | DataSizeSIQuantifiers // base 1000, kB, MB, GB, ... + }; + Q_DECLARE_FLAGS(DataSizeFormats, DataSizeFormat) + Q_FLAG(DataSizeFormats) + + QLocale(); + QLocale(const QString &name); + QLocale(Language language, Country country = AnyCountry); + QLocale(Language language, Script script, Country country); + QLocale(const QLocale &other); + QLocale &operator=(QLocale &&other) noexcept { swap(other); return *this; } + QLocale &operator=(const QLocale &other); + ~QLocale(); + + void swap(QLocale &other) noexcept { qSwap(d, other.d); } + + Language language() const; + Script script() const; + Country country() const; + QString name() const; + + QString bcp47Name() const; + QString nativeLanguageName() const; + QString nativeCountryName() const; + +#if QT_STRINGVIEW_LEVEL < 2 + short toShort(const QString &s, bool *ok = nullptr) const; + ushort toUShort(const QString &s, bool *ok = nullptr) const; + int toInt(const QString &s, bool *ok = nullptr) const; + uint toUInt(const QString &s, bool *ok = nullptr) const; + long toLong(const QString &s, bool *ok = nullptr) const; + ulong toULong(const QString &s, bool *ok = nullptr) const; + qlonglong toLongLong(const QString &s, bool *ok = nullptr) const; + qulonglong toULongLong(const QString &s, bool *ok = nullptr) const; + float toFloat(const QString &s, bool *ok = nullptr) const; + double toDouble(const QString &s, bool *ok = nullptr) const; + + short toShort(const QStringRef &s, bool *ok = nullptr) const; + ushort toUShort(const QStringRef &s, bool *ok = nullptr) const; + int toInt(const QStringRef &s, bool *ok = nullptr) const; + uint toUInt(const QStringRef &s, bool *ok = nullptr) const; + long toLong(const QStringRef &s, bool *ok = nullptr) const; + ulong toULong(const QStringRef &s, bool *ok = nullptr) const; + qlonglong toLongLong(const QStringRef &s, bool *ok = nullptr) const; + qulonglong toULongLong(const QStringRef &s, bool *ok = nullptr) const; + float toFloat(const QStringRef &s, bool *ok = nullptr) const; + double toDouble(const QStringRef &s, bool *ok = nullptr) const; +#endif + + short toShort(QStringView s, bool *ok = nullptr) const; + ushort toUShort(QStringView s, bool *ok = nullptr) const; + int toInt(QStringView s, bool *ok = nullptr) const; + uint toUInt(QStringView s, bool *ok = nullptr) const; + long toLong(QStringView s, bool *ok = nullptr) const; + ulong toULong(QStringView s, bool *ok = nullptr) const; + qlonglong toLongLong(QStringView s, bool *ok = nullptr) const; + qulonglong toULongLong(QStringView s, bool *ok = nullptr) const; + float toFloat(QStringView s, bool *ok = nullptr) const; + double toDouble(QStringView s, bool *ok = nullptr) const; + + QString toString(qlonglong i) const; + QString toString(qulonglong i) const; + inline QString toString(long i) const; + inline QString toString(ulong i) const; + inline QString toString(short i) const; + inline QString toString(ushort i) const; + inline QString toString(int i) const; + inline QString toString(uint i) const; + QString toString(double i, char f = 'g', int prec = 6) const; + inline QString toString(float i, char f = 'g', int prec = 6) const; + +#if QT_STRINGVIEW_LEVEL < 2 + QString toString(const QDate &date, const QString &formatStr) const; + QString toString(const QTime &time, const QString &formatStr) const; + QString toString(const QDateTime &dateTime, const QString &format) const; +#endif + QString toString(const QDate &date, QStringView formatStr) const; + QString toString(const QTime &time, QStringView formatStr) const; + QString toString(const QDateTime &dateTime, QStringView format) const; + QString toString(const QDate &date, FormatType format = LongFormat) const; + QString toString(const QTime &time, FormatType format = LongFormat) const; + QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; + + QString dateFormat(FormatType format = LongFormat) const; + QString timeFormat(FormatType format = LongFormat) const; + QString dateTimeFormat(FormatType format = LongFormat) const; +#if QT_CONFIG(datestring) + QDate toDate(const QString &string, FormatType = LongFormat) const; + QTime toTime(const QString &string, FormatType = LongFormat) const; + QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; + QDate toDate(const QString &string, const QString &format) const; + QTime toTime(const QString &string, const QString &format) const; + QDateTime toDateTime(const QString &string, const QString &format) const; +#endif + + // ### Qt 5: We need to return QString from these function since + // unicode data contains several characters for these fields. + QChar decimalPoint() const; + QChar groupSeparator() const; + QChar percent() const; + QChar zeroDigit() const; + QChar negativeSign() const; + QChar positiveSign() const; + QChar exponential() const; + + QString monthName(int, FormatType format = LongFormat) const; + QString standaloneMonthName(int, FormatType format = LongFormat) const; + QString dayName(int, FormatType format = LongFormat) const; + QString standaloneDayName(int, FormatType format = LongFormat) const; + + Qt::DayOfWeek firstDayOfWeek() const; + QList<Qt::DayOfWeek> weekdays() const; + + QString amText() const; + QString pmText() const; + + MeasurementSystem measurementSystem() const; + QLocale collation() const; + Qt::LayoutDirection textDirection() const; + + QString toUpper(const QString &str) const; + QString toLower(const QString &str) const; + + QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const; + QString toCurrencyString(qlonglong, const QString &symbol = QString()) const; + QString toCurrencyString(qulonglong, const QString &symbol = QString()) const; + inline QString toCurrencyString(short, const QString &symbol = QString()) const; + inline QString toCurrencyString(ushort, const QString &symbol = QString()) const; + inline QString toCurrencyString(int, const QString &symbol = QString()) const; + inline QString toCurrencyString(uint, const QString &symbol = QString()) const; +#if QT_VERSION >= QT_VERSION_CHECK(6,0,0) + QString toCurrencyString(double, const QString &symbol = QString(), int precision = -1) const; + inline QString toCurrencyString(float i, const QString &symbol = QString(), int precision = -1) const + { return toCurrencyString(double(i), symbol, precision); } +#else + QString toCurrencyString(double, const QString &symbol = QString()) const; + QString toCurrencyString(double, const QString &symbol, int precision) const; + inline QString toCurrencyString(float i, const QString &symbol = QString()) const + { return toCurrencyString(double(i), symbol); } + inline QString toCurrencyString(float i, const QString &symbol, int precision) const + { return toCurrencyString(double(i), symbol, precision); } +#endif + +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + QString formattedDataSize(qint64 bytes, int precision = 2, DataSizeFormats format = DataSizeIecFormat); +#endif + QString formattedDataSize(qint64 bytes, int precision = 2, DataSizeFormats format = DataSizeIecFormat) const; + + QStringList uiLanguages() const; + + bool operator==(const QLocale &other) const; + bool operator!=(const QLocale &other) const; + + static QString languageToString(Language language); + static QString countryToString(Country country); + static QString scriptToString(Script script); + static void setDefault(const QLocale &locale); + + static QLocale c() { return QLocale(C); } + static QLocale system(); + + static QList<QLocale> matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); + static QList<Country> countriesForLanguage(Language lang); + + void setNumberOptions(NumberOptions options); + NumberOptions numberOptions() const; + + enum QuotationStyle { StandardQuotation, AlternateQuotation }; + QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const; + QString quoteString(const QStringRef &str, QuotationStyle style = StandardQuotation) const; + + QString createSeparatedList(const QStringList &strl) const; + +private: + QLocale(QLocalePrivate &dd); + friend class QLocalePrivate; + friend class QSystemLocale; + friend Q_CORE_EXPORT uint qHash(const QLocale &key, uint seed) noexcept; + + QSharedDataPointer<QLocalePrivate> d; +}; +Q_DECLARE_SHARED(QLocale) +Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::NumberOptions) + +inline QString QLocale::toString(long i) const + { return toString(qlonglong(i)); } +inline QString QLocale::toString(ulong i) const + { return toString(qulonglong(i)); } +inline QString QLocale::toString(short i) const + { return toString(qlonglong(i)); } +inline QString QLocale::toString(ushort i) const + { return toString(qulonglong(i)); } +inline QString QLocale::toString(int i) const + { return toString(qlonglong(i)); } +inline QString QLocale::toString(uint i) const + { return toString(qulonglong(i)); } +inline QString QLocale::toString(float i, char f, int prec) const + { return toString(double(i), f, prec); } + +inline QString QLocale::toCurrencyString(short i, const QString &symbol) const + { return toCurrencyString(qlonglong(i), symbol); } +inline QString QLocale::toCurrencyString(ushort i, const QString &symbol) const + { return toCurrencyString(qulonglong(i), symbol); } +inline QString QLocale::toCurrencyString(int i, const QString &symbol) const +{ return toCurrencyString(qlonglong(i), symbol); } +inline QString QLocale::toCurrencyString(uint i, const QString &symbol) const +{ return toCurrencyString(qulonglong(i), symbol); } + +#ifndef QT_NO_DATASTREAM +Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QLocale &); +Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QLocale &); +#endif + +#ifndef QT_NO_DEBUG_STREAM +Q_CORE_EXPORT QDebug operator<<(QDebug, const QLocale &); +#endif + +QT_END_NAMESPACE + +#endif // QLOCALE_H |