• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KDECore

klocale.h

Go to the documentation of this file.
00001 // -*- c-basic-offset: 2 -*-
00002 /* This file is part of the KDE libraries
00003     Copyright (C) 1997 Stephan Kulow <coolo@kde.org>
00004     Copyright (C) 1999-2003 Hans Petter Bieker <bieker@kde.org>
00005     Copyright (c) 2002 Lukas Tinkl <lukas@kde.org>
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Library General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Library General Public License for more details.
00016 
00017     You should have received a copy of the GNU Library General Public License
00018     along with this library; see the file COPYING.LIB.  If not, write to
00019     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00020     Boston, MA 02110-1301, USA.
00021 */
00022 #ifndef KLOCALE_H
00023 #define KLOCALE_H
00024 
00025 #include <kdecore_export.h>
00026 #include <klocalizedstring.h>
00027 #include <ksharedconfig.h>
00028 
00029 #include <QtCore/QString>
00030 #include <QtCore/QList>
00031 
00032 class QStringList;
00033 class QTextCodec;
00034 class QDate;
00035 class QTime;
00036 class QDateTime;
00037 
00038 class KDateTime;
00039 class KCalendarSystem;
00040 
00041 class KLocalePrivate;
00042 
00068 class KDECORE_EXPORT KLocale
00069 {
00070 public:
00091   explicit KLocale(const QString& catalog, KSharedConfig::Ptr config = KSharedConfig::Ptr());
00092 
00106   KLocale(const QString& catalog, const QString &language, const QString &country = QString(), KConfig *config = 0);
00107 
00111   KLocale( const KLocale & rhs );
00112 
00116   KLocale& operator= ( const KLocale & rhs );
00117 
00121   virtual ~KLocale();
00122 
00139   void translateRaw(const char* msg,
00140                     QString *lang, QString *trans) const;
00141 
00160   void translateRaw(const char *ctxt, const char *msg,
00161                     QString *lang, QString *trans) const;
00162 
00183   void translateRaw(const char *singular, const char *plural,  unsigned long n,
00184                     QString *lang, QString *trans) const;
00185 
00208   void translateRaw(const char *ctxt, const char *singular, const char *plural,
00209                     unsigned long n, QString *lang, QString *trans) const;
00210 
00218   bool setEncoding(int mibEnum);
00219 
00224   enum SignPosition {
00228     ParensAround = 0,
00232     BeforeQuantityMoney = 1,
00236     AfterQuantityMoney = 2,
00240     BeforeMoney = 3,
00244     AfterMoney = 4
00245   };
00246 
00252   enum DigitSet {
00253     ArabicDigits,             
00255     ArabicIndicDigits,        
00256     EasternArabicIndicDigits, 
00257     DevenagariDigits          
00258   };
00259 
00272   QString digitSetToName(DigitSet digitSet, bool withDigits = false) const;
00273 
00283   QList<DigitSet> allDigitSetsList () const;
00284 
00291   QString decimalSymbol() const;
00292 
00300   QString thousandsSeparator() const;
00301 
00311   DigitSet digitSet() const;
00312 
00319   QString currencySymbol() const;
00320 
00328   QString monetaryDecimalSymbol() const;
00329 
00337   QString monetaryThousandsSeparator() const;
00338 
00345   QString positiveSign() const;
00346 
00353   QString negativeSign() const;
00354 
00361   int fracDigits() const;
00362 
00369   bool positivePrefixCurrencySymbol() const;
00370 
00377   bool negativePrefixCurrencySymbol() const;
00378 
00386   SignPosition positiveMonetarySignPosition() const;
00387 
00395   SignPosition negativeMonetarySignPosition() const;
00396 
00406   DigitSet monetaryDigitSet() const;
00407 
00422   QString formatMoney(double num,
00423               const QString & currency = QString(),
00424               int digits = -1) const;
00425 
00441   QString formatNumber(double num, int precision = -1) const;
00442 
00455   QString formatNumber(const QString &numStr, bool round=true, int precision=2) const;
00456 
00467   QString formatLong(long num) const;
00468 
00490   enum BinarySizeUnits {
00492       DefaultBinaryUnits = -1,
00493 
00494       // The first real unit must be 0 for the current implementation!
00495       UnitByte,      
00496       UnitKiloByte,  
00497       UnitMegaByte,  
00498       UnitGigaByte,  
00499       UnitTeraByte,  
00500       UnitPetaByte,  
00501       UnitExaByte,   
00502       UnitZettaByte, 
00503       UnitYottaByte, 
00504       UnitLastUnit = UnitYottaByte
00505   };
00506 
00525   enum BinaryUnitDialect {
00526       DefaultBinaryDialect = -1, 
00527       IECBinaryDialect,          
00528       JEDECBinaryDialect,        
00529       MetricBinaryDialect,       
00530       LastBinaryDialect = MetricBinaryDialect
00531   };
00532 
00546   QString formatByteSize( double size ) const;
00547 
00571   QString formatByteSize(
00572               double size,
00573               int precision,
00574               BinaryUnitDialect dialect = KLocale::DefaultBinaryDialect,
00575               BinarySizeUnits specificUnit = KLocale::DefaultBinaryUnits
00576           ) const;
00577 
00585   BinaryUnitDialect binaryUnitDialect() const;
00586 
00595   void setBinaryUnitDialect(BinaryUnitDialect newDialect);
00596 
00606   QString formatDuration( unsigned long mSec) const;
00607 
00623   QString prettyFormatDuration( unsigned long mSec ) const;
00624 
00634    bool nounDeclension() const;
00635 
00639   enum DateFormat {
00640     ShortDate,      
00641     LongDate,       
00642     FancyShortDate, 
00645     FancyLongDate   
00648   };
00649 
00659   QString formatDate(const QDate &date, DateFormat format = LongDate) const;
00660 
00672   QString formatDateTime(const QDateTime &dateTime, DateFormat format = ShortDate,
00673                          bool includeSecs = false) const;
00674 
00678   enum DateTimeFormatOption {
00679     TimeZone = 0x01,    
00680     Seconds  = 0x02     
00681   };
00682   Q_DECLARE_FLAGS(DateTimeFormatOptions, DateTimeFormatOption)
00683 
00684   
00694   QString formatDateTime(const KDateTime &dateTime, DateFormat format = ShortDate,
00695                          DateTimeFormatOptions options = 0) const;
00696 
00703   bool dateMonthNamePossessive() const;
00704 
00719   QString formatTime(const QTime &pTime, bool includeSecs = false,
00720                      bool isDuration = false) const;
00721 
00727     enum TimeFormatOption {
00728         TimeDefault        = 0x0,   
00729 
00730         TimeWithoutSeconds = 0x1,   
00731         TimeWithoutAmPm    = 0x2,   
00732 
00733 
00734 
00735         TimeDuration       = 0x6   
00736 
00737 
00738 
00739 
00740     };
00741     Q_DECLARE_FLAGS(TimeFormatOptions, TimeFormatOption)
00742                      
00743     
00753     QString formatLocaleTime(const QTime &pTime,
00754                              TimeFormatOptions options = KLocale::TimeDefault) const;
00755                      
00765   DigitSet dateTimeDigitSet() const;
00766 
00772   bool use12Clock() const;
00773 
00779   int weekStartDay() const;
00780 
00787   int workingWeekStartDay() const;
00788 
00795   int workingWeekEndDay() const;
00796 
00803   int weekDayOfPray() const;
00804 
00810   const KCalendarSystem * calendar() const;
00811 
00818   QString calendarType() const;
00819 
00827   void setCalendar(const QString & calendarType);
00828 
00838   double readMoney(const QString &numStr, bool * ok = 0) const;
00839 
00849   double readNumber(const QString &numStr, bool * ok = 0) const;
00850 
00861   QDate readDate(const QString &str, bool* ok = 0) const;
00862 
00867   QDate readDate( const QString &intstr, const QString &fmt, bool* ok = 0) const;
00868 
00872   enum ReadDateFlags {
00873       NormalFormat = 1,  
00874       ShortFormat = 2    
00875   };
00876 
00889   QDate readDate(const QString &str, ReadDateFlags flags, bool *ok = 0) const;
00890 
00903   QTime readTime(const QString &str, bool* ok = 0) const;
00904 
00910   enum ReadTimeFlags {
00911       WithSeconds = 0,    
00912       WithoutSeconds = 1  
00913   }; // (maybe use this enum as a bitfield, if adding independent features?)
00914 
00930   QTime readTime(const QString &str, ReadTimeFlags flags, bool *ok = 0) const;
00931 
00938     enum TimeProcessingOption {
00939         ProcessStrict    = 0x1,    
00940 
00941 
00942         ProcessNonStrict = 0x2     
00943 
00944 
00945     };
00946     Q_DECLARE_FLAGS(TimeProcessingOptions, TimeProcessingOption)
00947   
00948     
00966     QTime readLocaleTime(const QString &str, bool *ok = 0,
00967                          TimeFormatOptions options = KLocale::TimeDefault,
00968                          TimeProcessingOptions processing = ProcessNonStrict) const;
00969   
00982   QString language() const;
00983 
00995   QString country() const;
00996 
01008   QStringList languageList() const;
01009 
01018   const QByteArray encoding() const;
01019 
01028   int encodingMib() const;
01037   QTextCodec * codecForEncoding() const;
01038 
01047   int fileEncodingMib() const;
01048 
01071   void setDateFormat(const QString & format);
01094   void setDateFormatShort(const QString & format);
01100   void setDateMonthNamePossessive(bool possessive);
01120   void setTimeFormat(const QString & format);
01121 
01130   void setDateTimeDigitSet(DigitSet digitSet);
01131 
01137   void setWeekStartDay(int day);
01138 
01145   void setWorkingWeekStartDay(int day);
01146 
01153   void setWorkingWeekEndDay(int day);
01154 
01161   void setWeekDayOfPray(int day);
01162 
01169   QString dateFormat() const;
01176   QString dateFormatShort() const;
01183   QString timeFormat() const;
01184 
01190   void setDecimalSymbol(const QString & symbol);
01196   void setThousandsSeparator(const QString & separator);
01203   void setPositiveSign(const QString & sign);
01209   void setNegativeSign(const QString & sign);
01218   void setDigitSet(DigitSet digitSet);
01224   void setPositiveMonetarySignPosition(SignPosition signpos);
01230   void setNegativeMonetarySignPosition(SignPosition signpos);
01238   void setPositivePrefixCurrencySymbol(bool prefix);
01246   void setNegativePrefixCurrencySymbol(bool prefix);
01252   void setFracDigits(int digits);
01258   void setMonetaryThousandsSeparator(const QString & separator);
01265   void setMonetaryDecimalSymbol(const QString & symbol);
01271   void setCurrencySymbol(const QString & symbol);
01280   void setMonetaryDigitSet(DigitSet digitSet);
01281 
01287   int pageSize() const;
01288 
01294   void setPageSize(int paperFormat);
01295 
01300   enum MeasureSystem {
01301     Metric,    
01302     Imperial   
01303   };
01304 
01310   MeasureSystem measureSystem() const;
01311 
01317   void setMeasureSystem(MeasureSystem value);
01318 
01329   void insertCatalog(const QString& catalog);
01330 
01336   void removeCatalog(const QString &catalog);
01337 
01342   void setActiveCatalog(const QString &catalog);
01343 
01349   QString translateQt(const char *context,
01350               const char *sourceText,
01351               const char *comment) const;
01352 
01363   QStringList allLanguagesList() const;
01364 
01380   QString languageCodeToName(const QString &language) const;
01381 
01392   QStringList allCountriesList() const;
01393 
01408   QString countryCodeToName(const QString &country) const;
01409 
01420   static void splitLocale(const QString &locale,
01421                           QString &language,
01422                           QString &country,
01423                           QString &modifier,
01424                           QString &charset);
01425 
01434   static void setMainCatalog(const char *catalog);
01435 
01452   static QString langLookup(const QString &fname, const char *rtype = "html");
01453 
01459   static QString defaultLanguage();
01460 
01466   static QString defaultCountry();
01467 
01473   bool useTranscript() const;
01474 
01480   bool isApplicationTranslatedInto( const QString & language);
01481 
01487   void copyCatalogsTo(KLocale *locale);
01488 
01501   bool setCountry(const QString & country, KConfig *config);
01502 
01515   bool setLanguage(const QString &language, KConfig *config);
01516 
01526   bool setLanguage(const QStringList &languages);
01527 
01550   QString localizedFilePath(const QString &filePath) const;
01551 
01568   QString removeAcceleratorMarker(const QString &label) const;
01569 
01588   QString convertDigits(const QString &str, DigitSet digitSet,
01589                         bool ignoreContext = false) const;
01590 
01591 private:
01592   KLocalePrivate * const d;
01593 };
01594 
01595 Q_DECLARE_OPERATORS_FOR_FLAGS(KLocale::DateTimeFormatOptions)
01596 Q_DECLARE_OPERATORS_FOR_FLAGS(KLocale::TimeFormatOptions)
01597 Q_DECLARE_OPERATORS_FOR_FLAGS(KLocale::TimeProcessingOptions)
01598 
01599 #endif

KDECore

Skip menu "KDECore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  •     Sodep
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal