• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.10.2 API Reference
  • KDE Home
  • Contact Us
 

KDECore

  • kdecore
  • localization
klocale_p.h
Go to the documentation of this file.
1 /* This file is part of the KDE libraries
2  * Copyright 2009 David Faure <faure@kde.org>
3  * Copyright 2010 John Layt <john@layt.net>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20 
21 #ifndef KLOCALE_P_H
22 #define KLOCALE_P_H
23 
24 #include "klocale.h"
25 
26 class QMutex;
27 
28 class KCatalog;
29 class KDayPeriod;
30 
31 // Used by both KLocale and KLocalizedString, since they call each other.
32 QMutex* kLocaleMutex();
33 
34 class KLocalePrivate
35 {
36 public:
45  KLocalePrivate(KLocale *q_ptr);
46 
50  KLocalePrivate(const KLocalePrivate &rhs);
51 
55  KLocalePrivate &operator=(const KLocalePrivate &rhs);
56 
60  virtual ~KLocalePrivate();
61 
62  /**************************
63  ** Initialization **
64  **************************/
65 
69  virtual void initFormat();
70 
71 protected:
72 
76  KConfig *config();
77 
81  virtual void copy(const KLocalePrivate &rhs);
82 
86  virtual void init(const QString& catalogName, const QString &language, const QString &country,
87  KSharedConfig::Ptr persistantconfig, KConfig *tempConfig);
88 
92  virtual void initConfig(KConfig *config);
93 
94  /**************************
95  ** Country settings **
96  **************************/
97 
98 protected:
99 
105  virtual void initCountry(const QString &country, const QString &configCountry);
106 
111  virtual QString systemCountry() const;
112 
113 public:
114 
119  virtual bool setCountry(const QString &country, KConfig *config);
120 
125  virtual QString country() const;
126 
131  static QString defaultCountry();
132 
137  virtual QStringList allCountriesList() const;
138 
143  virtual QString countryCodeToName(const QString &country) const;
144 
149  bool setCountryDivisionCode(const QString & countryDivision);
150 
155  QString countryDivisionCode() const;
156 
157  /**************************
158  ** Language settings **
159  **************************/
160 
161 protected:
162 
166  static void getLanguagesFromVariable(QStringList &list, const char *variable, bool isLanguageList = false);
167 
171  virtual QStringList systemLanguageList() const;
172 
182  virtual void initLanguageList(const QString &language, const QString &configLanguages, bool useEnv);
183 
187  virtual bool useDefaultLanguage() const;
188 
189 public:
190 
195  virtual bool setLanguage(const QString &language, KConfig *config);
196 
201  virtual bool setLanguage(const QStringList &languages);
202 
207  virtual QString language() const;
208 
213  virtual QStringList languageList() const;
214 
219  virtual QStringList allLanguagesList();
220 
225  virtual QStringList installedLanguages();
226 
231  static QString defaultLanguage();
232 
237  virtual QString languageCodeToName(const QString &language);
238 
244  virtual bool nounDeclension() const;
245 
251  static QString langLookup(const QString &fname, const char *rtype = "html");
252 
257  virtual bool useTranscript() const;
258 
259  /**************************
260  ** Catalog settings **
261  **************************/
262 
263 protected:
264 
268  virtual void initMainCatalogs();
269 
276  virtual void updateCatalogs();
277 
278 public:
279 
284  static void setMainCatalog(const char *catalog);
285 
290  virtual void setActiveCatalog(const QString &catalog);
291 
296  virtual void insertCatalog(const QString &catalog);
297 
302  virtual void removeCatalog(const QString &catalog);
303 
308  virtual void copyCatalogsTo(KLocale *locale);
309 
314  virtual void translateRawFrom(const char *catname, const char *msgctxt, const char *msgid, const char *msgid_plural = 0,
315  unsigned long n = 0, QString *language = 0, QString *translation = 0) const;
316 
321  virtual QString translateQt(const char *context, const char *sourceText, const char *comment) const;
322 
327  virtual bool isApplicationTranslatedInto(const QString &language);
328 
329  /***************************
330  ** Calendar settings **
331  ***************************/
332 
333 protected:
334 
338  virtual KLocale::CalendarSystem calendarTypeToCalendarSystem(const QString &calendarType) const;
339 
343  virtual QString calendarSystemToCalendarType(KLocale::CalendarSystem) const;
344 
345 public:
346 
351  virtual void setCalendar(const QString &calendarType);
352 
357  virtual void setCalendarSystem(KLocale::CalendarSystem);
358 
363  virtual QString calendarType() const;
364 
369  KLocale::CalendarSystem calendarSystem() const;
370 
375  virtual const KCalendarSystem *calendar();
376 
381  void setWeekNumberSystem(KLocale::WeekNumberSystem weekNumberSystem);
382 
387  KLocale::WeekNumberSystem weekNumberSystem();
388 
393  virtual void setWeekStartDay(int day);
394 
399  virtual int weekStartDay() const;
400 
405  virtual void setWorkingWeekStartDay(int day);
406 
411  virtual int workingWeekStartDay() const;
412 
417  virtual void setWorkingWeekEndDay(int day);
418 
423  virtual int workingWeekEndDay() const;
424 
429  virtual void setWeekDayOfPray(int day);
430 
435  virtual int weekDayOfPray() const;
436 
437  /***************************
438  ** Date/Time settings **
439  ***************************/
440 
441 protected:
442 
446  virtual void initDayPeriods(const KConfigGroup &cg);
447 
448 public:
449 
454  virtual void setDateFormat(const QString &format);
455 
460  virtual QString dateFormat() const;
461 
466  virtual void setDateFormatShort(const QString &format);
467 
472  virtual QString dateFormatShort() const;
473 
478  virtual void setTimeFormat(const QString &format);
479 
484  virtual QString timeFormat() const;
485 
490  virtual void setDateTimeDigitSet(KLocale::DigitSet digitSet);
491 
496  virtual KLocale::DigitSet dateTimeDigitSet() const;
497 
502  virtual void setDateMonthNamePossessive(bool possessive);
503 
508  virtual bool dateMonthNamePossessive() const;
509 
514  virtual bool use12Clock() const;
515 
520  virtual void setDayPeriods(const QList<KDayPeriod> &dayPeriods);
521 
526  virtual QList<KDayPeriod> dayPeriods() const;
527 
532  virtual KDayPeriod dayPeriodForTime(const QTime &time) const;
533 
538  virtual QString formatDate(const QDate &date, KLocale::DateFormat format = KLocale::LongDate);
539 
544  virtual QDate readDate(const QString &str, bool *ok = 0);
545 
550  virtual QDate readDate(const QString &intstr, const QString &fmt, bool *ok = 0);
551 
556  virtual QDate readDate(const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0);
557 
563  virtual QString formatTime(const QTime &pTime, bool includeSecs = false, bool isDuration = false) const;
564 
569  virtual QString formatLocaleTime(const QTime &pTime, KLocale::TimeFormatOptions options = KLocale::TimeDefault) const;
570 
575  virtual QTime readTime(const QString &str, bool *ok = 0) const;
576 
582  virtual QTime readTime(const QString &str, KLocale::ReadTimeFlags flags, bool *ok = 0) const;
583 
588  virtual QTime readLocaleTime(const QString &str, bool *ok = 0,
589  KLocale::TimeFormatOptions options = KLocale::TimeDefault,
590  KLocale::TimeProcessingOptions processing = KLocale::ProcessNonStrict) const;
591 
596  static QString formatDateTime(const KLocale *locale, const QDateTime &dateTime, KLocale::DateFormat,
597  bool includeSeconds, int daysToNow, int secsToNow);
598 
603  virtual QString formatDateTime(const QDateTime &dateTime, KLocale::DateFormat format = KLocale::ShortDate,
604  bool includeSecs = false) const;
605 
610  virtual QString formatDateTime(const KDateTime &dateTime, KLocale::DateFormat format = KLocale::ShortDate,
611  KLocale::DateTimeFormatOptions options = 0);
612 
617  virtual QString formatDuration(unsigned long mSec) const;
618 
623  virtual QString prettyFormatDuration(unsigned long mSec) const;
624 
625  /***************************
626  ** Digit Set settings **
627  ***************************/
628 
629 protected:
630 
634  static QString toArabicDigits(const QString &str);
635 
639  static QString digitSetString(KLocale::DigitSet digitSet);
640 
641 public:
642 
647  virtual QList<KLocale::DigitSet> allDigitSetsList() const;
648 
653  virtual QString digitSetToName(KLocale::DigitSet digitSet, bool withDigits = false) const;
654 
659  virtual QString convertDigits(const QString &str, KLocale::DigitSet digitSet, bool ignoreContext = false) const;
660 
661  /***************************
662  ** Number settings **
663  ***************************/
664 
665 public:
666 
671  virtual void setDecimalPlaces(int digits);
672 
677  virtual int decimalPlaces() const;
678 
683  virtual void setDecimalSymbol(const QString &symbol);
684 
689  virtual QString decimalSymbol() const;
690 
696  virtual void setThousandsSeparator(const QString &separator);
697 
703  virtual QString thousandsSeparator() const;
704 
710  virtual void setNumericDigitGrouping(QList<int> groupList);
711 
717  virtual QList<int> numericDigitGrouping() const;
718 
723  virtual void setPositiveSign(const QString &sign);
724 
729  virtual QString positiveSign() const;
730 
735  virtual void setNegativeSign(const QString &sign);
736 
741  virtual QString negativeSign() const;
742 
747  virtual void setDigitSet(KLocale::DigitSet digitSet);
748 
753  virtual KLocale::DigitSet digitSet() const;
754 
759  virtual QString formatNumber(double num, int precision = -1) const;
760 
765  virtual QString formatNumber(const QString &numStr, bool round = true, int precision = -1) const;
766 
771  virtual QString formatLong(long num) const;
772 
777  virtual double readNumber(const QString &numStr, bool *ok = 0) const;
778 
779  /**************************
780  ** Currency settings **
781  **************************/
782 
783 protected:
784 
788  virtual void initCurrency();
789 
790 public:
791 
796  virtual void setCurrencyCode(const QString &newCurrencyCode);
797 
802  virtual QString currencyCode() const;
803 
808  virtual KCurrencyCode *currency();
809 
814  static QString defaultCurrencyCode();
815 
820  virtual QStringList currencyCodeList() const;
821 
822  /***************************
823  ** Money settings **
824  ***************************/
825 
826 public:
827 
832  virtual void setCurrencySymbol(const QString &symbol);
833 
838  virtual QString currencySymbol() const;
839 
844  virtual void setMonetaryDecimalSymbol(const QString &symbol);
845 
850  virtual QString monetaryDecimalSymbol() const;
851 
857  virtual void setMonetaryThousandsSeparator(const QString &separator);
858 
864  virtual QString monetaryThousandsSeparator() const;
865 
871  virtual void setMonetaryDigitGrouping(QList<int> groupList);
872 
878  virtual QList<int> monetaryDigitGrouping() const;
879 
884  virtual void setMonetaryDecimalPlaces(int digits);
885 
890  virtual int monetaryDecimalPlaces() const;
891 
897  virtual void setPositivePrefixCurrencySymbol(bool prefix);
898 
903  virtual bool positivePrefixCurrencySymbol() const;
904 
910  virtual void setNegativePrefixCurrencySymbol(bool prefix);
911 
916  virtual bool negativePrefixCurrencySymbol() const;
917 
922  virtual void setPositiveMonetarySignPosition(KLocale::SignPosition signpos);
923 
928  virtual KLocale::SignPosition positiveMonetarySignPosition() const;
929 
934  virtual void setNegativeMonetarySignPosition(KLocale::SignPosition signpos);
935 
940  virtual KLocale::SignPosition negativeMonetarySignPosition() const;
941 
946  virtual void setMonetaryDigitSet(KLocale::DigitSet digitSet);
947 
952  virtual KLocale::DigitSet monetaryDigitSet() const;
953 
958  virtual QString formatMoney(double num, const QString &currency = QString(), int precision = -1) const;
959 
964  virtual double readMoney(const QString &numStr, bool *ok = 0) const;
965 
966  /***************************
967  ** Units settings **
968  ***************************/
969 
970 protected:
971 
976  QList<QString> dialectUnitsList(KLocale::BinaryUnitDialect dialect);
977 
978  enum DurationType {
979  DaysDurationType = 0,
980  HoursDurationType,
981  MinutesDurationType,
982  SecondsDurationType
983  };
984 
988  static QString formatSingleDuration(KLocalePrivate::DurationType durationType, int n);
989 
990 public:
991 
996  virtual KLocale::BinaryUnitDialect binaryUnitDialect() const;
997 
1002  virtual void setBinaryUnitDialect(KLocale::BinaryUnitDialect newDialect);
1003 
1008  virtual QString formatByteSize(double size);
1009 
1014  virtual QString formatByteSize(double size, int precision,
1015  KLocale::BinaryUnitDialect dialect = KLocale::DefaultBinaryDialect,
1016  KLocale:: BinarySizeUnits specificUnit = KLocale::DefaultBinaryUnits);
1017 
1022  virtual void setPageSize(int paperFormat);
1023 
1028  virtual int pageSize() const;
1029 
1034  virtual void setMeasureSystem(KLocale::MeasureSystem value);
1035 
1040  virtual KLocale::MeasureSystem measureSystem() const;
1041 
1042  /***************************
1043  ** Encoding settings **
1044  ***************************/
1045 
1046 protected:
1047 
1051  virtual void initEncoding();
1052 
1057  virtual void initFileNameEncoding();
1058 
1062  virtual QByteArray systemCodeset() const;
1063 
1067  static QByteArray encodeFileNameUTF8(const QString &fileName);
1068 
1072  static QString decodeFileNameUTF8(const QByteArray &localFileName);
1073 
1074 public:
1075 
1080  virtual bool setEncoding(int mibEnum);
1081 
1086  virtual const QByteArray encoding();
1087 
1092  virtual int encodingMib() const;
1093 
1098  virtual int fileEncodingMib() const;
1099 
1104  virtual QTextCodec *codecForEncoding() const;
1105 
1106  /***************************
1107  ** Utilities **
1108  ***************************/
1109 
1110 public:
1111 
1116  static void splitLocale(const QString &locale, QString &language, QString &country,
1117  QString &modifier, QString &charset);
1118 
1123  virtual QString localizedFilePath(const QString &filePath) const;
1124 
1129  virtual QString removeAcceleratorMarker(const QString &label) const;
1130 
1131 private:
1132 
1136  QList<int> digitGroupFormatToList(const QString &digitGroupFormat) const;
1137 
1141  QString formatDigitGroup(const QString &number, const QString &groupSeparator, const QString &decimalSeperator, QList<int> groupList) const;
1142 
1146  QString parseDigitGroup(const QString &number, const QString &groupSeparator, const QString &decimalSeperator, QList<int> groupList, bool *ok) const;
1147 
1148 public:
1149  // Parent KLocale, public needed for copy ctor
1150  KLocale *q;
1151 
1152 private:
1153  // Config file containing locale config
1154  KSharedConfig::Ptr m_config;
1155 
1156  // Country settings
1157  QString m_country;
1158  QString m_countryDivisionCode;
1159 
1160  // Language settings
1161  QString m_language;
1162  KConfig *m_languages;
1163  QStringList m_languageList;
1164  bool m_languageSensitiveDigits; // FIXME: Temporary until full language-sensitivity implemented.
1165  bool m_nounDeclension;
1166 
1167  // Catalog settings
1168  QString m_catalogName; // catalogName ("app name") used by this KLocale object
1169  QList<KCatalogName> m_catalogNames; // list of all catalogs (regardless of language)
1170  QList<KCatalog> m_catalogs; // list of all found catalogs, one instance per catalog name and language
1171  int m_numberOfSysCatalogs; // number of catalogs that each app draws from
1172  bool m_useTranscript; // indicates if scripted messages are to be executed
1173 
1174  // Calendar settings
1175  KLocale::CalendarSystem m_calendarSystem;
1176  KCalendarSystem *m_calendar;
1177  KLocale::WeekNumberSystem m_weekNumberSystem;
1178  int m_weekStartDay;
1179  int m_workingWeekStartDay;
1180  int m_workingWeekEndDay;
1181  int m_weekDayOfPray;
1182 
1183  // Date/Time settings
1184  QString m_dateFormat;
1185  QString m_dateFormatShort;
1186  QString m_timeFormat;
1187  KLocale::DigitSet m_dateTimeDigitSet;
1188  bool m_dateMonthNamePossessive;
1189  mutable QList<KDayPeriod> m_dayPeriods;
1190 
1191  // Number settings
1192  int m_decimalPlaces;
1193  QString m_decimalSymbol;
1194  QString m_thousandsSeparator;
1195  QList<int> m_numericDigitGrouping;
1196  QString m_positiveSign;
1197  QString m_negativeSign;
1198  KLocale::DigitSet m_digitSet;
1199 
1200  // Currency settings
1201  QString m_currencyCode;
1202  KCurrencyCode *m_currency;
1203  QStringList m_currencyCodeList;
1204 
1205  // Money settings
1206  QString m_currencySymbol;
1207  QString m_monetaryDecimalSymbol;
1208  QString m_monetaryThousandsSeparator;
1209  QList<int> m_monetaryDigitGrouping;
1210  int m_monetaryDecimalPlaces;
1211  KLocale::SignPosition m_positiveMonetarySignPosition;
1212  KLocale::SignPosition m_negativeMonetarySignPosition;
1213  bool m_positivePrefixCurrencySymbol;
1214  bool m_negativePrefixCurrencySymbol;
1215  KLocale::DigitSet m_monetaryDigitSet;
1216 
1217  // Units settings
1218  KLocale::BinaryUnitDialect m_binaryUnitDialect;
1219  QList<QString> m_byteSizeFmt;
1220  int m_pageSize;
1221  KLocale::MeasureSystem m_measureSystem;
1222 
1223  // Encoding settings
1224  QString m_encoding;
1225  QTextCodec *m_codecForEncoding;
1226  bool m_utf8FileEncoding;
1227 };
1228 
1229 #endif /* KLOCALE_P_H */
1230 
This file is part of the KDE documentation.
Documentation copyright © 1996-2013 The KDE developers.
Generated on Sun Apr 28 2013 14:23:53 by doxygen 1.8.1.1 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDECore

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

kdelibs-4.10.2 API Reference

Skip menu "kdelibs-4.10.2 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • 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
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal