| /**************************************************************************** |
| ** |
| ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). |
| ** All rights reserved. |
| ** Contact: Nokia Corporation (qt-info@nokia.com) |
| ** |
| ** This file is part of the QtCore module of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:LGPL$ |
| ** GNU Lesser General Public License Usage |
| ** This file may be used under the terms of the GNU Lesser General Public |
| ** License version 2.1 as published by the Free Software Foundation and |
| ** appearing in the file LICENSE.LGPL included in the packaging of this |
| ** file. Please review the following information to ensure the GNU Lesser |
| ** General Public License version 2.1 requirements will be met: |
| ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
| ** |
| ** In addition, as a special exception, Nokia gives you certain additional |
| ** rights. These rights are described in the Nokia Qt LGPL Exception |
| ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU General |
| ** Public License version 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 the GNU General |
| ** Public License version 3.0 requirements will be met: |
| ** http://www.gnu.org/copyleft/gpl.html. |
| ** |
| ** Other Usage |
| ** Alternatively, this file may be used in accordance with the terms and |
| ** conditions contained in a signed written agreement between you and Nokia. |
| ** |
| ** |
| ** |
| ** |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| #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 QTextStream; |
| class QTextStreamPrivate; |
| |
| 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 |
| PositiveSign, // QString |
| AMText, // QString |
| PMText // QString |
| }; |
| virtual QVariant query(QueryType type, QVariant in) const; |
| virtual QLocale fallbackLocale() const; |
| |
| private: |
| QSystemLocale(bool); |
| friend QSystemLocale *QSystemLocale_globalSystemLocale(); |
| }; |
| #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 QDoubleValidatorPrivate; |
| friend class QTextStream; |
| friend class QTextStreamPrivate; |
| |
| 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, |
| 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, |
| LastLanguage = Shambala |
| }; |
| |
| 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, |
| Montenegro = 242, |
| Serbia = 243, |
| SaintBarthelemy = 244, |
| SaintMartin = 245, |
| LatinAmericaAndTheCaribbean = 246, |
| LastCountry = LatinAmericaAndTheCaribbean |
| }; |
| |
| enum MeasurementSystem { MetricSystem, ImperialSystem }; |
| |
| enum FormatType { LongFormat, ShortFormat, NarrowFormat }; |
| 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 |
| |
| // ### 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; |
| |
| QString amText() const; |
| QString pmText() const; |
| |
| MeasurementSystem measurementSystem() const; |
| |
| Qt::LayoutDirection textDirection() 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; |
| }; |
| 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 |