qlocale.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:18k
- /****************************************************************************
- **
- ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
- ** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtCore module of the Qt Toolkit.
- **
- ** Commercial Usage
- ** Licensees holding valid Qt Commercial licenses may use this file in
- ** accordance with the Qt Commercial License Agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Nokia.
- **
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License versions 2.0 or 3.0 as published by the Free
- ** Software Foundation and appearing in the file LICENSE.GPL included in
- ** the packaging of this file. Please review the following information
- ** to ensure GNU General Public Licensing requirements will be met:
- ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
- ** http://www.gnu.org/copyleft/gpl.html. In addition, as a special
- ** exception, Nokia gives you certain additional rights. These rights
- ** are described in the Nokia Qt GPL Exception version 1.3, included in
- ** the file GPL_EXCEPTION.txt in this package.
- **
- ** Qt for Windows(R) Licensees
- ** As a special exception, Nokia, as the sole copyright holder for Qt
- ** Designer, grants users of the Qt/Eclipse Integration plug-in the
- ** right for the Qt/Eclipse Integration to link to functionality
- ** provided by Qt Designer and its related libraries.
- **
- ** If you are unsure which license is appropriate for your use, please
- ** contact the sales department at qt-sales@nokia.com.
- **
- ****************************************************************************/
- #ifndef QLOCALE_H
- #define QLOCALE_H
- #include <QtCore/qstring.h>
- #include <QtCore/qobjectdefs.h>
- QT_BEGIN_HEADER
- QT_BEGIN_NAMESPACE
- QT_MODULE(Core)
- class QDataStream;
- class QDate;
- class QDateTime;
- class QTime;
- class QVariant;
- class QLocale;
- #ifndef QT_NO_SYSTEMLOCALE
- class Q_CORE_EXPORT QSystemLocale
- {
- public:
- QSystemLocale();
- virtual ~QSystemLocale();
- enum QueryType {
- LanguageId, // uint
- CountryId, // uint
- DecimalPoint, // QString
- GroupSeparator, // QString
- ZeroDigit, // QString
- NegativeSign, // QString
- DateFormatLong, // QString
- DateFormatShort, // QString
- TimeFormatLong, // QString
- TimeFormatShort, // QString
- DayNameLong, // QString, in: int
- DayNameShort, // QString, in: int
- MonthNameLong, // QString, in: int
- MonthNameShort, // QString, in: int
- DateToStringLong, // QString, in: QDate
- DateToStringShort, // QString in: QDate
- TimeToStringLong, // QString in: QTime
- TimeToStringShort, // QString in: QTime
- DateTimeFormatLong, // QString
- DateTimeFormatShort, // QString
- DateTimeToStringLong, // QString in: QDateTime
- DateTimeToStringShort, // QString in: QDateTime
- MeasurementSystem // uint
- };
- virtual QVariant query(QueryType type, QVariant in) const;
- virtual QLocale fallbackLocale() const;
- #ifdef QLOCALE_CPP
- private:
- QSystemLocale(bool);
- friend QSystemLocale *QSystemLocale_globalSystemLocale();
- #endif
- };
- #endif
- struct QLocalePrivate;
- class Q_CORE_EXPORT QLocale
- {
- Q_GADGET
- Q_ENUMS(Language)
- Q_ENUMS(Country)
- friend class QString;
- friend class QByteArray;
- friend class QIntValidator;
- friend class QDoubleValidator;
- public:
- enum Language {
- C = 1,
- Abkhazian = 2,
- Afan = 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,
- Bhutani = 16,
- Bihari = 17,
- Bislama = 18,
- Breton = 19,
- Bulgarian = 20,
- Burmese = 21,
- Byelorussian = 22,
- Cambodian = 23,
- Catalan = 24,
- Chinese = 25,
- Corsican = 26,
- Croatian = 27,
- Czech = 28,
- Danish = 29,
- Dutch = 30,
- English = 31,
- Esperanto = 32,
- Estonian = 33,
- Faroese = 34,
- FijiLanguage = 35,
- Finnish = 36,
- French = 37,
- Frisian = 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,
- Kurundi = 68,
- Laothian = 69,
- Latin = 70,
- Latvian = 71,
- Lingala = 72,
- Lithuanian = 73,
- Macedonian = 74,
- Malagasy = 75,
- Malay = 76,
- Malayalam = 77,
- Maltese = 78,
- Maori = 79,
- Marathi = 80,
- Moldavian = 81,
- Mongolian = 82,
- NauruLanguage = 83,
- Nepali = 84,
- Norwegian = 85,
- NorwegianBokmal = Norwegian,
- Occitan = 86,
- Oriya = 87,
- Pashto = 88,
- Persian = 89,
- Polish = 90,
- Portuguese = 91,
- Punjabi = 92,
- Quechua = 93,
- RhaetoRomance = 94,
- Romanian = 95,
- Russian = 96,
- Samoan = 97,
- Sangho = 98,
- Sanskrit = 99,
- Serbian = 100,
- SerboCroatian = 101,
- Sesotho = 102,
- Setswana = 103,
- Shona = 104,
- Sindhi = 105,
- Singhalese = 106,
- Siswati = 107,
- Slovak = 108,
- Slovenian = 109,
- Somali = 110,
- Spanish = 111,
- Sundanese = 112,
- Swahili = 113,
- Swedish = 114,
- Tagalog = 115,
- Tajik = 116,
- Tamil = 117,
- Tatar = 118,
- Telugu = 119,
- Thai = 120,
- Tibetan = 121,
- Tigrinya = 122,
- TongaLanguage = 123,
- Tsonga = 124,
- Turkish = 125,
- Turkmen = 126,
- Twi = 127,
- Uigur = 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,
- Nynorsk = NorwegianNynorsk, // ### obsolete
- 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,
- Chewa = 165,
- LastLanguage = Chewa
- };
- 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,
- BruneiDarussalam = 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,
- DemocraticRepublicOfCongo = 49,
- PeoplesRepublicOfCongo = 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,
- FijiCountry = 72,
- Finland = 73,
- France = 74,
- MetropolitanFrance = 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,
- DemocraticRepublicOfKorea = 113,
- RepublicOfKorea = 114,
- Kuwait = 115,
- Kyrgyzstan = 116,
- Lao = 117,
- Latvia = 118,
- Lebanon = 119,
- Lesotho = 120,
- Liberia = 121,
- LibyanArabJamahiriya = 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,
- NetherlandsAntilles = 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,
- PalestinianTerritory = 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,
- RussianFederation = 178,
- Rwanda = 179,
- SaintKittsAndNevis = 180,
- StLucia = 181,
- StVincentAndTheGrenadines = 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,
- StHelena = 199,
- StPierreAndMiquelon = 200,
- Sudan = 201,
- Suriname = 202,
- SvalbardAndJanMayenIslands = 203,
- Swaziland = 204,
- Sweden = 205,
- Switzerland = 206,
- SyrianArabRepublic = 207,
- Taiwan = 208,
- Tajikistan = 209,
- Tanzania = 210,
- Thailand = 211,
- Togo = 212,
- Tokelau = 213,
- TongaCountry = 214,
- TrinidadAndTobago = 215,
- Tunisia = 216,
- Turkey = 217,
- Turkmenistan = 218,
- TurksAndCaicosIslands = 219,
- Tuvalu = 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,
- USVirginIslands = 234,
- WallisAndFutunaIslands = 235,
- WesternSahara = 236,
- Yemen = 237,
- Yugoslavia = 238,
- Zambia = 239,
- Zimbabwe = 240,
- SerbiaAndMontenegro = 241,
- LastCountry = SerbiaAndMontenegro
- };
- enum MeasurementSystem { MetricSystem, ImperialSystem };
- enum FormatType { LongFormat, ShortFormat };
- enum NumberOption { OmitGroupSeparator = 0x01, RejectGroupSeparator = 0x02 };
- Q_DECLARE_FLAGS(NumberOptions, NumberOption)
- QLocale();
- QLocale(const QString &name);
- QLocale(Language language, Country country = AnyCountry);
- QLocale(const QLocale &other);
- QLocale &operator=(const QLocale &other);
- Language language() const;
- Country country() const;
- QString name() const;
- short toShort(const QString &s, bool *ok = 0, int base = 0) const;
- ushort toUShort(const QString &s, bool *ok = 0, int base = 0) const;
- int toInt(const QString &s, bool *ok = 0, int base = 0) const;
- uint toUInt(const QString &s, bool *ok = 0, int base = 0) const;
- qlonglong toLongLong(const QString &s, bool *ok = 0, int base = 0) const;
- qlonglong toULongLong(const QString &s, bool *ok = 0, int base = 0) const;
- float toFloat(const QString &s, bool *ok = 0) const;
- double toDouble(const QString &s, bool *ok = 0) const;
- QString toString(qlonglong i) const;
- QString toString(qulonglong 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;
- QString toString(const QDate &date, const QString &formatStr) const;
- QString toString(const QDate &date, FormatType format = LongFormat) const;
- QString toString(const QTime &time, const QString &formatStr) const;
- QString toString(const QTime &time, FormatType format = LongFormat) const;
- QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const;
- QString toString(const QDateTime &dateTime, const QString &format) const;
- QString dateFormat(FormatType format = LongFormat) const;
- QString timeFormat(FormatType format = LongFormat) const;
- QString dateTimeFormat(FormatType format = LongFormat) const;
- #ifndef QT_NO_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
- QChar decimalPoint() const;
- QChar groupSeparator() const;
- QChar percent() const;
- QChar zeroDigit() const;
- QChar negativeSign() const;
- QChar exponential() const;
- QString monthName(int, FormatType format = LongFormat) const;
- QString dayName(int, FormatType format = LongFormat) const;
- MeasurementSystem measurementSystem() const;
- inline bool operator==(const QLocale &other) const;
- inline bool operator!=(const QLocale &other) const;
- static QString languageToString(Language language);
- static QString countryToString(Country country);
- static void setDefault(const QLocale &locale);
- static QLocale c() { return QLocale(C); }
- static QLocale system();
- static QList<Country> countriesForLanguage(Language lang);
- void setNumberOptions(NumberOptions options);
- NumberOptions numberOptions() const;
- //private: // this should be private, but can't be
- struct Data {
- quint16 index;
- quint16 numberOptions;
- }
- #if (defined(__arm__) || defined(__ARMEL__))
- Q_PACKED
- #endif
- ;
- private:
- friend struct QLocalePrivate;
- // ### We now use this field to pack an index into locale_data and NumberOptions.
- // ### Qt 5: change to a QLocaleData *d; uint numberOptions.
- union {
- void *v;
- Data p;
- };
- const QLocalePrivate *d() const;
- };
- Q_DECLARE_TYPEINFO(QLocale, Q_MOVABLE_TYPE);
- Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::NumberOptions)
- 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 bool QLocale::operator==(const QLocale &other) const
- { return d() == other.d() && numberOptions() == other.numberOptions(); }
- inline bool QLocale::operator!=(const QLocale &other) const
- { return d() != other.d() || numberOptions() != other.numberOptions(); }
- #ifndef QT_NO_DATASTREAM
- Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QLocale &);
- Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QLocale &);
- #endif
- QT_END_NAMESPACE
- QT_END_HEADER
- #endif // QLOCALE_H