From eb8b4a7dbaf29b2d680596459156aa3d908f2c37 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Sun, 29 Jul 2012 11:04:10 +0200 Subject: [PATCH] - rel 1; rename locale files to kdelocale (to avoid clash with system headers etc) --- kde4-kdebase-runtime-locale.patch | 4386 +++++++++++++++++++++++++++++ kde4-kdebase-runtime.spec | 58 +- 2 files changed, 4394 insertions(+), 50 deletions(-) create mode 100644 kde4-kdebase-runtime-locale.patch diff --git a/kde4-kdebase-runtime-locale.patch b/kde4-kdebase-runtime-locale.patch new file mode 100644 index 0000000..55668cb --- /dev/null +++ b/kde4-kdebase-runtime-locale.patch @@ -0,0 +1,4386 @@ +diff -urN kde-runtime-4.9.0.org/plasma/declarativeimports/locale/calendarsystem.h kde-runtime-4.9.0/plasma/declarativeimports/locale/calendarsystem.h +--- kde-runtime-4.9.0.org/plasma/declarativeimports/locale/calendarsystem.h 2012-05-23 01:59:52.000000000 +0200 ++++ kde-runtime-4.9.0/plasma/declarativeimports/locale/calendarsystem.h 2012-07-29 10:43:38.395812270 +0200 +@@ -22,7 +22,7 @@ + #define CALENDARSYSTEM_H + + //own +-#include "locale.h" // needed for enums ++#include "kdelocale.h" // needed for enums + + //Qt + #include +diff -urN kde-runtime-4.9.0.org/plasma/declarativeimports/locale/CMakeLists.txt kde-runtime-4.9.0/plasma/declarativeimports/locale/CMakeLists.txt +--- kde-runtime-4.9.0.org/plasma/declarativeimports/locale/CMakeLists.txt 2012-06-19 23:47:36.000000000 +0200 ++++ kde-runtime-4.9.0/plasma/declarativeimports/locale/CMakeLists.txt 2012-07-29 10:52:01.795222262 +0200 +@@ -3,7 +3,7 @@ + include(KDE4Defaults) + + set(localebindings_SRCS +- locale.cpp ++ kdelocale.cpp + localebindingsplugin.cpp + calendarsystem.cpp + ) +diff -urN kde-runtime-4.9.0.org/plasma/declarativeimports/locale/kdelocale.cpp kde-runtime-4.9.0/plasma/declarativeimports/locale/kdelocale.cpp +--- kde-runtime-4.9.0.org/plasma/declarativeimports/locale/kdelocale.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ kde-runtime-4.9.0/plasma/declarativeimports/locale/kdelocale.cpp 2012-07-29 10:43:47.799379026 +0200 +@@ -0,0 +1,582 @@ ++/* This file is part of the KDE libraries ++ Copyright (C) 2012 Giorgos Tsiapaliwkas ++ Copyright (C) 2012 Antonis Tsiapaliokas ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public ++ License as published by the Free Software Foundation; either ++ version 2 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public License ++ along with this library; see the file COPYING.LIB. If not, write to ++ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ Boston, MA 02110-1301, USA. ++*/ ++ ++//own ++#include "kdelocale.h" ++ ++//KDE ++#include ++ ++Locale::Locale(QObject* parent) ++ : QObject(parent) ++{ ++ m_locale = KGlobal::locale(); ++} ++ ++bool Locale::setCountryDivisionCode(const QString &countryDivisionCode) ++{ ++ bool ok = m_locale->setCountryDivisionCode(countryDivisionCode); ++ emit countryDivisionCodeChanged(); ++ return ok; ++} ++ ++void Locale::setCurrencyCode(const QString &newCurrencyCode) ++{ ++ m_locale->setCurrencyCode(newCurrencyCode); ++ emit currencyCodeChanged(); ++} ++ ++bool Locale::isApplicationTranslatedInto(const QString &lang) ++{ ++ return m_locale->isApplicationTranslatedInto(lang); ++} ++ ++void Locale::splitLocale(const QString &locale, QString &language, QString &country, QString &modifier, ++ QString &charset) ++{ ++ Locale::splitLocale(locale, language, country, modifier, charset); ++} ++ ++QString Locale::language() const ++{ ++ return m_locale->language(); ++} ++ ++QString Locale::country() const ++{ ++ return m_locale->country(); ++} ++ ++QString Locale::countryDivisionCode() const ++{ ++ return m_locale->countryDivisionCode(); ++} ++ ++QString Locale::currencyCode() const ++{ ++ return m_locale->currencyCode(); ++} ++ ++QString Locale::translateQt(const char *context, const char *sourceText, const char *comment) const ++{ ++ return m_locale->translateQt(context, sourceText, comment); ++} ++ ++QList Locale::allDigitSetsList() const ++{ ++ QList digitList; ++ ++ foreach(KLocale::DigitSet digit, m_locale->allDigitSetsList()) { ++ digitList.append((int)digit); ++ } ++ ++ return digitList; ++} ++ ++QString Locale::digitSetToName(Locale::DigitSet digitSet, bool withDigits) const ++{ ++ return m_locale->digitSetToName((KLocale::DigitSet)digitSet, withDigits); ++} ++ ++QString Locale::convertDigits(const QString &str, DigitSet digitSet, bool ignoreContext) const ++{ ++ return m_locale->convertDigits(str, (KLocale::DigitSet)digitSet, ignoreContext); ++} ++ ++bool Locale::dateMonthNamePossessive() const ++{ ++ return m_locale->dateMonthNamePossessive(); ++} ++ ++int Locale::weekStartDay() const ++{ ++ return m_locale->weekStartDay(); ++} ++ ++int Locale::workingWeekStartDay() const ++{ ++ return m_locale->workingWeekStartDay(); ++} ++ ++int Locale::workingWeekEndDay() const ++{ ++ return m_locale->workingWeekEndDay(); ++} ++ ++int Locale::weekDayOfPray() const ++{ ++ return m_locale->weekDayOfPray(); ++} ++ ++int Locale::decimalPlaces() const ++{ ++ return m_locale->decimalPlaces(); ++} ++ ++QString Locale::decimalSymbol() const ++{ ++ return m_locale->decimalSymbol(); ++} ++ ++QString Locale::thousandsSeparator() const ++{ ++ return m_locale->thousandsSeparator(); ++} ++ ++QString Locale::currencySymbol() const ++{ ++ return m_locale->currencySymbol(); ++} ++ ++QString Locale::monetaryDecimalSymbol() const ++{ ++ return m_locale->monetaryDecimalSymbol(); ++} ++ ++QString Locale::monetaryThousandsSeparator() const ++{ ++ return m_locale->monetaryThousandsSeparator(); ++} ++ ++QString Locale::positiveSign() const ++{ ++ return m_locale->positiveSign(); ++} ++ ++QString Locale::negativeSign() const ++{ ++ return m_locale->negativeSign(); ++} ++ ++int Locale::monetaryDecimalPlaces() const ++{ ++ return m_locale->monetaryDecimalPlaces(); ++} ++ ++bool Locale::positivePrefixCurrencySymbol() const ++{ ++ return m_locale->positivePrefixCurrencySymbol(); ++} ++ ++bool Locale::negativePrefixCurrencySymbol() const ++{ ++ return m_locale->negativePrefixCurrencySymbol(); ++} ++ ++Locale::SignPosition Locale::positiveMonetarySignPosition() const ++{ ++ return (Locale::SignPosition)m_locale->positiveMonetarySignPosition(); ++} ++ ++Locale::SignPosition Locale::negativeMonetarySignPosition() const ++{ ++ return (Locale::SignPosition)m_locale->negativeMonetarySignPosition(); ++} ++ ++QString Locale::formatMoney(double num, const QString &symbol, int precision) const ++{ ++ return m_locale->formatMoney(num, symbol, precision); ++} ++ ++QString Locale::formatLong(long num) const ++{ ++ return m_locale->formatLong(num); ++} ++ ++QString Locale::formatNumber(const QString &numStr, bool round, int precision) const ++{ ++ return m_locale->formatNumber(numStr, round, precision); ++} ++ ++QString Locale::formatByteSize(double size, int precision, Locale::BinaryUnitDialect dialect, ++ Locale::BinarySizeUnits specificUnit) const ++{ ++ return m_locale->formatByteSize(size, precision, (KLocale::BinaryUnitDialect)dialect, (KLocale::BinarySizeUnits)specificUnit); ++} ++ ++QString Locale::formatByteSize(double size) const ++{ ++ return m_locale->formatByteSize(size); ++} ++ ++Locale::BinaryUnitDialect Locale::binaryUnitDialect() const ++{ ++ return (Locale::BinaryUnitDialect)m_locale->binaryUnitDialect(); ++} ++ ++void Locale::setBinaryUnitDialect(Locale::BinaryUnitDialect newDialect) ++{ ++ m_locale->setBinaryUnitDialect((KLocale::BinaryUnitDialect)newDialect); ++ emit binaryUnitDialectChanged(); ++} ++ ++QString Locale::formatDuration(unsigned long mSec) const ++{ ++ return m_locale->formatDuration(mSec); ++} ++ ++QString Locale::prettyFormatDuration(unsigned long mSec) const ++{ ++ return m_locale->prettyFormatDuration(mSec); ++} ++ ++QString Locale::formatDate(const QDate &date, Locale::DateFormat format) const ++{ ++ return m_locale->formatDate(date, (KLocale::DateFormat)format); ++} ++ ++double Locale::readNumber(const QString &_str) const ++{ ++ bool ok; ++ return m_locale->readNumber(_str, &ok); ++} ++ ++double Locale::readMoney(const QString &_str) const ++{ ++ bool ok; ++ return m_locale->readMoney(_str, &ok); ++} ++ ++QDate Locale::readDate(const QString &intstr, ReadDateFlags flags) const ++{ ++ bool ok; ++ return m_locale->readDate(intstr, (KLocale::ReadDateFlags)flags, &ok); ++} ++ ++QTime Locale::readTime(const QString &intstr) const ++{ ++ bool ok; ++ return m_locale->readTime(intstr, &ok); ++} ++ ++QTime Locale::readLocaleTime(const QString &intstr, TimeFormatOptions options, ++ TimeProcessingOptions processing) const ++{ ++ bool ok; ++ return m_locale->readLocaleTime(intstr, &ok, (KLocale::TimeFormatOptions)(int)options, (KLocale::TimeProcessingOptions)(int)processing); ++} ++ ++QString Locale::formatLocaleTime(const QTime &time, TimeFormatOptions options) const ++{ ++ return m_locale->formatLocaleTime(time, (KLocale::TimeFormatOptions)(int)options); ++} ++ ++bool Locale::use12Clock() const ++{ ++ return m_locale->use12Clock(); ++} ++ ++QString Locale::dayPeriodText(const QTime &time, DateTimeComponentFormat format) const ++{ ++ return m_locale->dayPeriodText(time, (KLocale::DateTimeComponentFormat)format); ++} ++ ++QStringList Locale::languageList() const ++{ ++ return m_locale->languageList(); ++} ++ ++QStringList Locale::currencyCodeList() const ++{ ++ return m_locale->currencyCodeList(); ++} ++ ++QString Locale::formatDateTime(const QDateTime &dateTime, Locale::DateFormat format, DateTimeFormatOptions options) const ++{ ++ return m_locale->formatDateTime(dateTime, (KLocale::DateFormat)format, (KLocale::DateTimeFormatOptions)(int)options); ++} ++ ++void Locale::setDateFormat(const QString &format) ++{ ++ m_locale->setDateFormat(format); ++ emit dateFormatChanged(); ++} ++ ++void Locale::setDateFormatShort(const QString &format) ++{ ++ m_locale->setDateFormatShort(format); ++ emit dateFormatShortChanged(); ++} ++ ++void Locale::setDateMonthNamePossessive(bool possessive) ++{ ++ m_locale->setDateMonthNamePossessive(possessive); ++ emit dateMonthNamePossessiveChanged(); ++} ++ ++void Locale::setTimeFormat(const QString &format) ++{ ++ m_locale->setTimeFormat(format); ++ emit timeFormatChanged(); ++} ++ ++void Locale::setWeekStartDay(int day) ++{ ++ m_locale->setWeekStartDay(day); ++ emit weekStartDayChanged(); ++} ++ ++void Locale::setWorkingWeekStartDay(int day) ++{ ++ m_locale->setWorkingWeekStartDay(day); ++ emit workingWeekStartDayChanged(); ++} ++ ++void Locale::setWorkingWeekEndDay(int day) ++{ ++ m_locale->setWorkingWeekEndDay(day); ++ emit workingWeekEndDayChanged(); ++} ++ ++void Locale::setWeekDayOfPray(int day) ++{ ++ m_locale->setWeekDayOfPray(day); ++ emit weekDayOfPrayChanged(); ++} ++ ++QString Locale::dateFormat() const ++{ ++ return m_locale->dateFormat(); ++} ++ ++QString Locale::dateFormatShort() const ++{ ++ return m_locale->dateFormatShort(); ++} ++ ++QString Locale::timeFormat() const ++{ ++ return m_locale->timeFormat(); ++} ++ ++void Locale::setDecimalPlaces(int digits) ++{ ++ m_locale->setDecimalPlaces(digits); ++ emit decimalPlacesChanged(); ++} ++ ++void Locale::setDecimalSymbol(const QString &symbol) ++{ ++ m_locale->setDecimalSymbol(symbol); ++ emit decimalSymbolChanged(); ++} ++ ++void Locale::setThousandsSeparator(const QString &separator) ++{ ++ m_locale->setThousandsSeparator(separator); ++ emit thousandsSeparatorChanged(); ++} ++ ++void Locale::setPositiveSign(const QString &sign) ++{ ++ m_locale->setPositiveSign(sign); ++ emit positiveSignChanged(); ++} ++ ++void Locale::setNegativeSign(const QString &sign) ++{ ++ m_locale->setNegativeSign(sign); ++ emit negativeSignChanged(); ++} ++ ++void Locale::setPositiveMonetarySignPosition(Locale::SignPosition signpos) ++{ ++ m_locale->setPositiveMonetarySignPosition((KLocale::SignPosition)signpos); ++ emit positiveMonetarySignPositionChanged(); ++} ++ ++void Locale::setNegativeMonetarySignPosition(Locale::SignPosition signpos) ++{ ++ m_locale->setNegativeMonetarySignPosition((KLocale::SignPosition)signpos); ++ emit negativeMonetarySignPositionChanged(); ++} ++ ++void Locale::setPositivePrefixCurrencySymbol(bool prefix) ++{ ++ m_locale->setPositivePrefixCurrencySymbol(prefix); ++ emit positivePrefixCurrencySymbolChanged(); ++} ++ ++void Locale::setNegativePrefixCurrencySymbol(bool prefix) ++{ ++ m_locale->setNegativePrefixCurrencySymbol(prefix); ++ emit negativePrefixCurrencySymbolChanged(); ++} ++ ++void Locale::setMonetaryDecimalPlaces(int digits) ++{ ++ m_locale->setMonetaryDecimalPlaces(digits); ++ emit monetaryDecimalPlacesChanged(); ++} ++ ++void Locale::setMonetaryThousandsSeparator(const QString &separator) ++{ ++ m_locale->setMonetaryThousandsSeparator(separator); ++ emit monetaryThousandsSeparatorChanged(); ++} ++ ++void Locale::setMonetaryDecimalSymbol(const QString &symbol) ++{ ++ m_locale->setMonetaryDecimalSymbol(symbol); ++ emit monetaryDecimalSymbolChanged(); ++} ++ ++void Locale::setCurrencySymbol(const QString & symbol) ++{ ++ m_locale->setCurrencySymbol(symbol); ++ emit currencySymbolChanged(); ++} ++ ++int Locale::pageSize() const ++{ ++ return m_locale->pageSize(); ++} ++ ++void Locale::setPageSize(int size) ++{ ++ m_locale->setPageSize(size); ++ emit pageSizeChanged(); ++} ++ ++Locale::MeasureSystem Locale::measureSystem() const ++{ ++ return (Locale::MeasureSystem)m_locale->measureSystem(); ++} ++ ++void Locale::setMeasureSystem(Locale::MeasureSystem value) ++{ ++ m_locale->setMeasureSystem((KLocale::MeasureSystem)value); ++ emit measureSystemChanged(); ++} ++ ++QString Locale::defaultLanguage() ++{ ++ return KLocale::defaultLanguage(); ++} ++ ++QString Locale::defaultCountry() ++{ ++ return KLocale::defaultCountry(); ++} ++ ++QString Locale::defaultCurrencyCode() ++{ ++ return KLocale::defaultCurrencyCode(); ++} ++ ++bool Locale::useTranscript() const ++{ ++ return m_locale->useTranscript(); ++} ++ ++int Locale::fileEncodingMib() const ++{ ++ return m_locale->fileEncodingMib(); ++} ++ ++QStringList Locale::allLanguagesList() const ++{ ++ return m_locale->allLanguagesList(); ++} ++ ++QStringList Locale::installedLanguages() const ++{ ++ return m_locale->installedLanguages(); ++} ++ ++QString Locale::languageCodeToName(const QString &language) const ++{ ++ return m_locale->languageCodeToName(language); ++} ++ ++QStringList Locale::allCountriesList() const ++{ ++ return m_locale->allCountriesList(); ++} ++ ++QString Locale::countryCodeToName(const QString &country) const ++{ ++ return m_locale->countryCodeToName(country); ++} ++ ++void Locale::setCalendarSystem(Locale::CalendarSystem calendarSystem) ++{ ++ m_locale->setCalendarSystem((KLocale::CalendarSystem)calendarSystem); ++ emit calendarSystemChanged(); ++} ++ ++Locale::CalendarSystem Locale::calendarSystem() const ++{ ++ return (Locale::CalendarSystem)m_locale->calendarSystem(); ++} ++ ++void Locale::setWeekNumberSystem(Locale::WeekNumberSystem weekNumberSystem) ++{ ++ m_locale->setWeekNumberSystem((KLocale::WeekNumberSystem)weekNumberSystem); ++ emit WeekNumberSystemChanged(); ++} ++ ++Locale::WeekNumberSystem Locale::weekNumberSystem() const ++{ ++ return (Locale::WeekNumberSystem)m_locale->weekNumberSystem(); ++} ++ ++QString Locale::removeAcceleratorMarker(const QString &label) const ++{ ++ return m_locale->removeAcceleratorMarker(label); ++} ++ ++void Locale::setDigitSet(Locale::DigitSet digitSet) ++{ ++ m_locale->setDigitSet((KLocale::DigitSet)digitSet); ++ emit digitSetChanged(); ++} ++ ++Locale::DigitSet Locale::digitSet() const ++{ ++ return (Locale::DigitSet)m_locale->digitSet(); ++} ++ ++void Locale::setMonetaryDigitSet(Locale::DigitSet digitSet) ++{ ++ m_locale->setMonetaryDigitSet((KLocale::DigitSet)digitSet); ++ emit monetaryDigitSetChanged(); ++} ++ ++Locale::DigitSet Locale::monetaryDigitSet() const ++{ ++ return (Locale::DigitSet)m_locale->monetaryDigitSet(); ++} ++ ++void Locale::setDateTimeDigitSet(Locale::DigitSet digitSet) ++{ ++ m_locale->setDateTimeDigitSet((KLocale::DigitSet)digitSet); ++ emit dateTimeDigitSetChanged(); ++} ++ ++Locale::DigitSet Locale::dateTimeDigitSet() const ++{ ++ return (Locale::DigitSet)m_locale->dateTimeDigitSet(); ++} ++ ++void Locale::reparseConfiguration() ++{ ++ m_locale->reparseConfiguration(); ++} +diff -urN kde-runtime-4.9.0.org/plasma/declarativeimports/locale/kdelocale.h kde-runtime-4.9.0/plasma/declarativeimports/locale/kdelocale.h +--- kde-runtime-4.9.0.org/plasma/declarativeimports/locale/kdelocale.h 1970-01-01 01:00:00.000000000 +0100 ++++ kde-runtime-4.9.0/plasma/declarativeimports/locale/kdelocale.h 2012-07-29 10:52:17.188937217 +0200 +@@ -0,0 +1,1585 @@ ++/* This file is part of the KDE libraries ++ Copyright (C) 2012 Giorgos Tsiapaliwkas ++ Copyright (C) 2012 Antonis Tsiapaliokas ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public ++ License as published by the Free Software Foundation; either ++ version 2 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public License ++ along with this library; see the file COPYING.LIB. If not, write to ++ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ Boston, MA 02110-1301, USA. ++*/ ++#ifndef KDELOCALE_H ++#define KDELOCALE_H ++ ++//Qt ++#include ++#include ++#include ++ ++//KDE ++#include ++ ++class QString; ++class QDate; ++class QTime; ++class QDateTime; ++ ++/** ++ * \file klocale.h ++ */ ++ ++/** ++ * ++ * KLocale provides support for country specific stuff like ++ * the national language. ++ * ++ * KLocale supports translating, as well as specifying the format ++ * for numbers, currency, time, and date. ++ * ++ * Use KGlobal::locale() to get pointer to the global KLocale object, ++ * containing the applications current locale settings. ++ * ++ * For example, to format the date May 17, 1995 in the current locale, use: ++ * ++ * \code ++ * QString date = KGlobal::locale()->formatDate(QDate(1995,5,17)); ++ * \endcode ++ * ++ * @author Stephan Kulow , Preston Brown , ++ * Hans Petter Bieker , Lukas Tinkl ++ * @short class for supporting locale settings and national language ++ */ ++class Locale : public QObject ++{ ++Q_OBJECT ++ ++//enuns ++Q_ENUMS(BinarySizeUnits) ++Q_ENUMS(BinaryUnitDialect) ++Q_ENUMS(CalendarSystem) ++Q_ENUMS(DateFormat) ++Q_ENUMS(DateTimeComponent) ++Q_ENUMS(DateTimeComponentFormat) ++Q_ENUMS(DateTimeFormatOption ) ++Q_ENUMS(DigitSet) ++Q_ENUMS(MeasureSystem) ++Q_ENUMS(ReadDateFlags) ++Q_ENUMS(SignPosition) ++Q_ENUMS(TimeFormatOption) ++Q_ENUMS(TimeProcessingOption) ++Q_ENUMS(WeekNumberSystem) ++ ++//properties ++Q_PROPERTY(BinaryUnitDialect binaryUnitDialect READ binaryUnitDialect WRITE setBinaryUnitDialect NOTIFY binaryUnitDialectChanged) ++Q_PROPERTY(Locale::CalendarSystem calendarSystem READ calendarSystem WRITE setCalendarSystem NOTIFY calendarSystemChanged) ++Q_PROPERTY(QString country READ country CONSTANT) //read-only ++Q_PROPERTY(QString countryDivisionCode READ countryDivisionCode WRITE setCountryDivisionCode NOTIFY countryDivisionCodeChanged) ++Q_PROPERTY(QString currencyCode READ currencyCode WRITE setCurrencyCode NOTIFY currencyCodeChanged) ++Q_PROPERTY(QString currencySymbol READ currencySymbol WRITE setCurrencySymbol NOTIFY currencySymbolChanged) ++Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged) ++Q_PROPERTY(QString dateFormatShort READ dateFormatShort WRITE setDateFormat NOTIFY dateFormatShortChanged) ++Q_PROPERTY(bool dateMonthNamePossessive READ dateMonthNamePossessive WRITE setDateMonthNamePossessive NOTIFY dateMonthNamePossessiveChanged) ++Q_PROPERTY(DigitSet dateTimeDigitSet READ dateTimeDigitSet WRITE setDateTimeDigitSet NOTIFY dateTimeDigitSetChanged) ++Q_PROPERTY(int decimalPlaces READ decimalPlaces WRITE setDecimalPlaces NOTIFY decimalPlacesChanged) ++Q_PROPERTY(QString decimalSymbol READ decimalSymbol WRITE setDecimalSymbol NOTIFY decimalSymbolChanged) ++Q_PROPERTY(DigitSet digitSet READ digitSet WRITE setDigitSet NOTIFY digitSetChanged) ++Q_PROPERTY(QString language READ language CONSTANT) //read-only ++Q_PROPERTY(MeasureSystem measureSystem READ measureSystem WRITE setMeasureSystem NOTIFY measureSystemChanged) ++Q_PROPERTY(int monetaryDecimalPlaces READ monetaryDecimalPlaces WRITE setMonetaryDecimalPlaces NOTIFY monetaryDecimalPlacesChanged) ++Q_PROPERTY(QString monetaryDecimalSymbol READ monetaryDecimalSymbol WRITE setMonetaryDecimalSymbol NOTIFY monetaryDecimalSymbolChanged) ++Q_PROPERTY(DigitSet monetaryDigitSet READ monetaryDigitSet WRITE setMonetaryDigitSet NOTIFY monetaryDigitSetChanged) ++Q_PROPERTY(QString monetaryThousandsSeparator READ monetaryThousandsSeparator WRITE setMonetaryThousandsSeparator NOTIFY monetaryThousandsSeparatorChanged) ++Q_PROPERTY(SignPosition negativeMonetarySignPosition READ negativeMonetarySignPosition WRITE setNegativeMonetarySignPosition NOTIFY negativeMonetarySignPositionChanged) ++Q_PROPERTY(bool negativePrefixCurrencySymbol READ negativePrefixCurrencySymbol WRITE setNegativePrefixCurrencySymbol NOTIFY negativePrefixCurrencySymbolChanged) ++Q_PROPERTY(QString negativeSign READ negativeSign WRITE setNegativeSign NOTIFY negativeSignChanged) ++Q_PROPERTY(int pageSize READ pageSize WRITE setPageSize NOTIFY pageSizeChanged) ++Q_PROPERTY(SignPosition positiveMonetarySignPosition READ positiveMonetarySignPosition WRITE setPositiveMonetarySignPosition NOTIFY positiveMonetarySignPositionChanged) ++Q_PROPERTY(bool positivePrefixCurrencySymbol READ positivePrefixCurrencySymbol WRITE setPositivePrefixCurrencySymbol NOTIFY positivePrefixCurrencySymbolChanged) ++Q_PROPERTY(QString positiveSign READ positiveSign WRITE setPositiveSign NOTIFY positiveSignChanged) ++Q_PROPERTY(QString thousandsSeparator READ thousandsSeparator WRITE setThousandsSeparator NOTIFY thousandsSeparatorChanged) ++Q_PROPERTY(int weekDayOfPray READ weekDayOfPray WRITE setWeekDayOfPray NOTIFY weekDayOfPrayChanged) ++Q_PROPERTY(Locale::WeekNumberSystem weekNumberSystem READ weekNumberSystem WRITE setWeekNumberSystem NOTIFY WeekNumberSystemChanged) ++Q_PROPERTY(int weekStartDay READ weekStartDay WRITE setWeekStartDay NOTIFY weekStartDayChanged) ++Q_PROPERTY(int workingWeekEndDay READ workingWeekEndDay WRITE setWorkingWeekEndDay NOTIFY workingWeekEndDayChanged) ++Q_PROPERTY(int workingWeekStartDay READ workingWeekStartDay WRITE setWorkingWeekStartDay NOTIFY workingWeekStartDayChanged) ++Q_PROPERTY(bool use12Clock READ use12Clock CONSTANT) ++Q_PROPERTY(QString defaultLanguage READ defaultLanguage CONSTANT)//read-only ++Q_PROPERTY(QString defaultCountry READ defaultCountry CONSTANT)//read-only ++Q_PROPERTY(QString defaultCurrencyCode READ defaultCurrencyCode CONSTANT)//read-only ++Q_PROPERTY(bool useTranscript READ useTranscript CONSTANT) //read-only ++Q_PROPERTY(int fileEncodingMib READ fileEncodingMib CONSTANT) //read-only ++Q_PROPERTY(QStringList languageList READ languageList CONSTANT) //read-only ++Q_PROPERTY(QStringList currencyCodeList READ currencyCodeList CONSTANT) //read-only ++Q_PROPERTY(QStringList allLanguagesList READ allLanguagesList CONSTANT) //read-only ++Q_PROPERTY(QStringList installedLanguages READ installedLanguages CONSTANT) //read-only ++Q_PROPERTY(QStringList allCountriesList READ allCountriesList CONSTANT) //read-only ++Q_PROPERTY(QList allDigitSetsList READ allDigitSetsList CONSTANT) //read-only ++ ++public: ++ /** ++ * ctor ++ */ ++ Locale(QObject *parent = 0); ++ ++ /** ++ * Various positions for where to place the positive or negative ++ * sign when they are related to a monetary value. ++ */ ++ enum SignPosition { ++ /** ++ * Put parantheses around the quantity, e.g. "$ (217)" ++ */ ++ ParensAround = 0, ++ /** ++ * Prefix the quantity with the sign, e.g. "$ -217" ++ */ ++ BeforeQuantityMoney = 1, ++ /** ++ * Suffix the quanitity with the sign, e.g. "$ 217-" ++ */ ++ AfterQuantityMoney = 2, ++ /** ++ * Prefix the currency symbol with the sign, e.g. "-$ 217" ++ */ ++ BeforeMoney = 3, ++ /** ++ * Suffix the currency symbol with the sign, e.g. "$- 217" ++ */ ++ AfterMoney = 4 ++ }; ++ ++ /** ++ * ++ * The set of digit characters used to display and enter numbers. ++ */ ++ enum DigitSet { ++ ArabicDigits, /**< 0123456789 (European and some Asian ++ languages and western Arabic dialects) */ ++ ArabicIndicDigits, /**< ٠١٢٣٤٥٦٧٨٩ (eastern Arabic dialects) */ ++ EasternArabicIndicDigits, /**< Û°Û±Û²Û³Û´ÛµÛ¶Û·Û¸Û¹ (Persian and Urdu) */ ++ DevenagariDigits, /**< ०१२३४५६७८९ (Hindi) */ ++ BengaliDigits, /**< ০১২৩৪৫৬৭৮৯ (Bengali and Assamese) */ ++ GujaratiDigits, /**< ૦૧૨૩૪૫૬૭૮૯ (Gujarati) */ ++ GurmukhiDigits, /**< ੦੧੨੩੪੫੬੭੮੯ (Punjabi) */ ++ KannadaDigits, /**< ೦೧೨೩೪೫೬೭೮೯ (Kannada) */ ++ KhmerDigits, /**< ០១២៣៤៥៦៧៨៩ (Khmer) */ ++ MalayalamDigits, /**< ൦൧൨൩൪൫൬൭൮൯ (Malayalam) */ ++ OriyaDigits, /**< ୦୧୨୩୪୫୬୭୮୯ (Oriya) */ ++ TamilDigits, /**< ௦௧௨௩௪௫௬௭௮ (Tamil) */ ++ TeluguDigits, /**< ౦౧౨౩౪౫౬౭౯ (Telugu) */ ++ ThaiDigits /**< ๐๑๒๓๔๕๖๗๘๙ (Thai) */ ++ // The following Decimal Digit Sets are defined in Unicode but the associated ++ // languages are not yet translated in KDE, so are not yet enabled. ++ // The script names are taken from the Unicode standard, the associated ++ // languages from Wikipedia. ++ // BalineseDigits, /**< ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙ (Balinese) */ ++ // ChamDigits, /**< ꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙ (Cham) */ ++ // JavaneseDigits, /**< ꧐꧑꧒꧓꧔꧕꧖꧗꧘꧙ (Javanese) */ ++ // KayahLiDigits, /**< ꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉ (Kayah) */ ++ // LaoDigits, /**< ໐໑໒໓໔໕໖໗໘໙ (Lao) */ ++ // LepchaDigits, /**< ᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ (Lepcha) */ ++ // LimbuDigits, /**< ᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ (Limbu) */ ++ // MeeteiMayekDigits, /**< ꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹ (Meitei) */ ++ // MongolianDigits, /**< ᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ (Mongolian) */ ++ // MyanmarDigits, /**< ၀၁၂၃၄၅၆၇၈၉ (Myanmar/Burmese ) */ ++ // MyanmarShanDigits, /**< ႐႑႒႓႔႕႖႗႘႙ (Shan) */ ++ // NewTaiLueDigits, /**< ᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙ (Tai Lü) */ ++ // NKoDigits, /**< ߀߁߂߃߄߅߆߇߈߉ (Mande and N'Ko) */ ++ // OlChikiDigits, /**< ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ (Santali) */ ++ // OsmanyaDigits, /**< Ò Ò¡Ò¢Ò£Ò¤Ò¥Ò¦Ò§Ò¨Ò© (Somali) */ ++ // SaurashtraDigits, /**< ꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙ (Saurashtra) */ ++ // SundaneseDigits, /**< ᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ (Sundanese) */ ++ // TaiThamDigits, /**< ᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙ (Tai Lü) */ ++ // TibetanDigits, /**< ༠༡༢༣༤༥༦༧༨༩ (Tibetan) */ ++ // VaiDigits, /**< ꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩ (Vai) */ ++ }; ++ ++ /** ++ * ++ * Convert a digit set identifier to a human readable, localized name. ++ * ++ * @param digitSet the digit set identifier ++ * @param withDigits whether to add the digits themselves to the name ++ * ++ * @return the human readable and localized name of the digit set ++ * ++ * @see DigitSet ++ */ ++ QString digitSetToName(DigitSet digitSet, bool withDigits = false) const; ++ ++ /** ++ * ++ * Provides list of all known digit set identifiers. ++ * ++ * @return list of all digit set identifiers ++ * @see DigitSet ++ * @see digitSetToName ++ */ ++ QList allDigitSetsList() const; ++ ++ /** ++ * Returns what a decimal point should look like ("." or "," etc.) ++ * according to the current locale or user settings. ++ * ++ * @return The decimal symbol used by locale. ++ */ ++ QString decimalSymbol() const; ++ ++ /** ++ * Returns what the thousands separator should look ++ * like ("," or "." etc.) ++ * according to the current locale or user settings. ++ * ++ * @return The thousands separator used by locale. ++ */ ++ QString thousandsSeparator() const; ++ ++ /** ++ * ++ * Returns the identifier of the digit set used to display numbers. ++ * ++ * @return the digit set identifier ++ * @see DigitSet ++ * @see digitSetToName ++ */ ++ DigitSet digitSet() const; ++ ++ /** ++ * ++ * Returns the ISO 4217 Currency Code for the current locale ++ * ++ * @return The default ISO Currency Code used by locale. ++ */ ++ QString currencyCode() const; ++ ++ /** ++ * Returns what the symbol denoting currency in the current locale ++ * as as defined by user settings should look like. ++ * ++ * @return The default currency symbol used by locale. ++ */ ++ QString currencySymbol() const; ++ ++ /** ++ * Returns what a decimal point should look like ("." or "," etc.) ++ * for monetary values, according to the current locale or user ++ * settings. ++ * ++ * @return The monetary decimal symbol used by locale. ++ */ ++ QString monetaryDecimalSymbol() const; ++ ++ /** ++ * Returns what a thousands separator for monetary values should ++ * look like ("," or " " etc.) according to the current locale or ++ * user settings. ++ * ++ * @return The monetary thousands separator used by locale. ++ */ ++ QString monetaryThousandsSeparator() const; ++ ++ /** ++ * Returns what a positive sign should look like ("+", " ", etc.) ++ * according to the current locale or user settings. ++ * ++ * @return The positive sign used by locale. ++ */ ++ QString positiveSign() const; ++ ++ /** ++ * Returns what a negative sign should look like ("-", etc.) ++ * according to the current locale or user settings. ++ * ++ * @return The negative sign used by locale. ++ */ ++ QString negativeSign() const; ++ ++ /** ++ * ++ * The number of decimal places to include in numeric values (usually 2). ++ * ++ * @return Default number of numeric decimal places used by locale. ++ */ ++ int decimalPlaces() const; ++ ++ /** ++ * ++ * The number of decimal places to include in monetary values (usually 2). ++ * ++ * @return Default number of monetary decimal places used by locale. ++ */ ++ int monetaryDecimalPlaces() const; ++ ++ /** ++ * If and only if the currency symbol precedes a positive value, ++ * this will be true. ++ * ++ * @return Where to print the currency symbol for positive numbers. ++ */ ++ bool positivePrefixCurrencySymbol() const; ++ ++ /** ++ * If and only if the currency symbol precedes a negative value, ++ * this will be true. ++ * ++ * @return True if the currency symbol precedes negative numbers. ++ */ ++ bool negativePrefixCurrencySymbol() const; ++ ++ /** ++ * Returns the position of a positive sign in relation to a ++ * monetary value. ++ * ++ * @return Where/how to print the positive sign. ++ * @see SignPosition ++ */ ++ SignPosition positiveMonetarySignPosition() const; ++ ++ /** ++ * Denotes where to place a negative sign in relation to a ++ * monetary value. ++ * ++ * @return Where/how to print the negative sign. ++ * @see SignPosition ++ */ ++ SignPosition negativeMonetarySignPosition() const; ++ ++ /** ++ * ++ * Retuns the digit set used to display monetary values. ++ * ++ * @return the digit set identifier ++ * @see DigitSet ++ * @see digitSetToName ++ */ ++ DigitSet monetaryDigitSet() const; ++ ++ /** ++ * Given a double, converts that to a numeric string containing ++ * the localized monetary equivalent. ++ * ++ * e.g. given 123456, return "$ 123,456.00". ++ * ++ * If precision isn't specified or is < 0, then the default monetaryDecimalPlaces() is used. ++ * ++ * @param num The number we want to format ++ * @param currency The currency symbol you want. ++ * @param precision Number of decimal places displayed ++ * ++ * @return The number of money as a localized string ++ * @see monetaryDecimalPlaces() ++ */ ++ Q_INVOKABLE QString formatMoney(double num, const QString ¤cy = QString(), int precision = -1) const; ++ ++ /** ++ * Given a string representing a number, converts that to a numeric ++ * string containing the localized numeric equivalent. ++ * ++ * e.g. given 123456.78F, return "123,456.78" (for some European country). ++ * ++ * If precision isn't specified or is < 0, then the default decimalPlaces() is used. ++ * ++ * @param numStr The number to format, as a string. ++ * @param round Round fractional digits. (default true) ++ * @param precision Number of fractional digits used for rounding. Unused if round=false. ++ * ++ * @return The number as a localized string ++ */ ++ Q_INVOKABLE QString formatNumber(const QString &numStr, bool round = true, int precision = -1) const; ++ ++ /** ++ * Given an integer, converts that to a numeric string containing ++ * the localized numeric equivalent. ++ * ++ * e.g. given 123456L, return "123,456" (for some European country). ++ * ++ * @param num The number to convert ++ * ++ * @return The number as a localized string ++ */ ++ Q_INVOKABLE QString formatLong(long num) const; ++ ++ /** ++ * These binary units are used in KDE by the formatByteSize() ++ * functions. ++ * ++ * NOTE: There are several different units standards: ++ * 1) SI (i.e. metric), powers-of-10. ++ * 2) IEC, powers-of-2, with specific units KiB, MiB, etc. ++ * 3) JEDEC, powers-of-2, used for solid state memory sizing which ++ * is why you see flash cards labels as e.g. 4GB. These (ab)use ++ * the metric units. Although JEDEC only defines KB, MB, GB, if ++ * JEDEC is selected all units will be powers-of-2 with metric ++ * prefixes for clarity in the event of sizes larger than 1024 GB. ++ * ++ * Although 3 different dialects are possible this enum only uses ++ * metric names since adding all 3 different names of essentially the same ++ * unit would be pointless. Use BinaryUnitDialect to control the exact ++ * units returned. ++ * ++ * @see binaryUnitDialect ++ */ ++ enum BinarySizeUnits { ++ /// Auto-choose a unit such that the result is in the range [0, 1000 or 1024) ++ DefaultBinaryUnits = 1000, ++ ++ // The first real unit must be 0 for the current implementation! ++ UnitByte = 0, ///< B 1 byte ++ UnitKiloByte, ///< KiB/KB/kB 1024/1000 bytes. ++ UnitMegaByte, ///< MiB/MB/MB 2^20/10^06 bytes. ++ UnitGigaByte, ///< GiB/GB/GB 2^30/10^09 bytes. ++ UnitTeraByte, ///< TiB/TB/TB 2^40/10^12 bytes. ++ UnitPetaByte, ///< PiB/PB/PB 2^50/10^15 bytes. ++ UnitExaByte, ///< EiB/EB/EB 2^60/10^18 bytes. ++ UnitZettaByte, ///< ZiB/ZB/ZB 2^70/10^21 bytes. ++ UnitYottaByte, ///< YiB/YB/YB 2^80/10^24 bytes. ++ UnitLastUnit = UnitYottaByte ++ }; ++ ++ /** ++ * This enum chooses what dialect is used for binary units. ++ * ++ * Note: Although JEDEC abuses the metric prefixes and can therefore be ++ * confusing, it has been used to describe *memory* sizes for quite some time ++ * and programs should therefore use either Default, JEDEC, or IEC 60027-2 ++ * for memory sizes. ++ * ++ * On the other hand network transmission rates are typically in metric so ++ * Default, Metric, or IEC (which is unambiguous) should be chosen. ++ * ++ * Normally choosing DefaultBinaryUnits is the best option as that uses ++ * the user's selection for units. ++ * ++ * @see binaryUnitDialect ++ * @see setBinaryUnitDialect ++ */ ++ enum BinaryUnitDialect { ++ DefaultBinaryDialect = 1000, ///< Used if no specific preference ++ IECBinaryDialect = 0, ///< KDE Default, KiB, MiB, etc. 2^(10*n) ++ JEDECBinaryDialect, ///< KDE 3.5 default, KB, MB, etc. 2^(10*n) ++ MetricBinaryDialect, ///< SI Units, kB, MB, etc. 10^(3*n) ++ LastBinaryDialect = MetricBinaryDialect ++ }; ++ ++ /** ++ * Converts @p size from bytes to the string representation using the ++ * user's default binary unit dialect. The default unit dialect is ++ * IEC 60027-2. ++ * ++ * Example: ++ * formatByteSize(1024) returns "1.0 KiB" by default. ++ * ++ * @param size size in bytes ++ * @return converted size as a string - e.g. 123.4 KiB , 12.0 MiB ++ * @see BinaryUnitDialect ++ * @todo KDE 5: Remove in favor of overload added in KDE 4.4. ++ */ ++ Q_INVOKABLE QString formatByteSize(double size) const; ++ ++ /** ++ * ++ * Converts @p size from bytes to the appropriate string representation ++ * using the binary unit dialect @p dialect and the specific units @p specificUnit. ++ * ++ * Example: ++ * formatByteSize(1000, unit, Locale::BinaryUnitKilo) returns: ++ * for Locale::MetricBinaryUnits, "1.0 kB", ++ * for Locale::IECBinaryUnits, "0.9 KiB", ++ * for Locale::JEDECBinaryUnits, "0.9 KB". ++ * ++ * @param size size in bytes ++ * @param precision number of places after the decimal point to use. KDE uses ++ * 1 by default so when in doubt use 1. ++ * @param dialect binary unit standard to use. Use DefaultBinaryUnits to ++ * use the localized user selection unless you need to use a specific ++ * unit type (such as displaying a flash memory size in JEDEC). ++ * @param specificUnit specific unit size to use in result. Use ++ * DefaultBinarySize to automatically select a unit that will return ++ * a sanely-sized number. ++ * @return converted size as a translated string including the units. ++ * E.g. "1.23 KiB", "2 GB" (JEDEC), "4.2 kB" (Metric). ++ * @see BinaryUnitDialect ++ */ ++ QString formatByteSize(double size, int precision, ++ BinaryUnitDialect dialect = Locale::DefaultBinaryDialect, ++ BinarySizeUnits specificUnit = Locale::DefaultBinaryUnits) const; ++ ++ /** ++ * Returns the user's configured binary unit dialect. ++ * e.g. if MetricBinaryDialect is returned then the values ++ * configured for how much a set of bytes are worth would ++ * be 10^(3*n) and KB (1000 bytes == 1 KB), in this case. ++ * ++ * Will never return DefaultBinaryDialect. ++ * ++ * @return User's configured binary unit dialect ++ * @see BinaryUnitDialect ++ */ ++ BinaryUnitDialect binaryUnitDialect() const; ++ ++ /** ++ * Sets @p newDialect to be the default dialect for this locale (and only ++ * this locale). Newly created KLocale objects will continue to default ++ * to the user's choice. ++ * ++ * @param newDialect the new dialect to set as default for this locale object. ++ */ ++ void setBinaryUnitDialect(BinaryUnitDialect newDialect); ++ ++ /** ++ * Given a number of milliseconds, converts that to a string containing ++ * the localized equivalent ++ * ++ * e.g. given formatDuration(60000), returns "1.0 minutes" ++ * ++ * @param mSec Time duration in milliseconds ++ * @return converted duration as a string - e.g. "5.5 seconds" "23.0 minutes" ++ */ ++ Q_INVOKABLE QString formatDuration(unsigned long mSec) const; ++ ++ /** ++ * Given a number of milliseconds, converts that to a pretty string containing ++ * the localized equivalent. ++ * ++ * e.g. given prettyFormatDuration(60001) returns "1 minute" ++ * given prettyFormatDuration(62005) returns "1 minute and 2 seconds" ++ * given prettyFormatDuration(90060000) returns "1 day and 1 hour" ++ * ++ * @param mSec Time duration in milliseconds ++ * @return converted duration as a string. ++ * Units not interesting to the user, for example seconds or minutes when the first ++ * unit is day, are not returned because they are irrelevant. The same applies for ++ * seconds when the first unit is hour. ++ */ ++ Q_INVOKABLE QString prettyFormatDuration(unsigned long mSec) const; ++ ++ /** ++ * ++ * Available Calendar Systems ++ * ++ * @see setCalendarSystem() ++ * @see calendarSystem() ++ */ ++ enum CalendarSystem { ++ QDateCalendar = 1, /**< KDE Default, hybrid of Gregorian and Julian as used by QDate */ ++ //BahaiCalendar = 2, /**< Baha'i Calendar */ ++ //BuddhistLunarCalendar = 3, /**< Buddhist Lunar Calendar*/ ++ //ChineseCalendar = 4, /**< Chinese Calendar */ ++ CopticCalendar = 5, /**< Coptic Calendar as used Coptic Church and some parts of Egypt */ ++ EthiopianCalendar = 6, /**< Ethiopian Calendar, aka Ethiopic Calendar */ ++ //EthiopianAmeteAlemCalendar = 7, /**< Ethiopian Amete Alem version, aka Ethiopic Amete Alem */ ++ GregorianCalendar = 8, /**< Gregorian Calendar, pure proleptic implementation */ ++ HebrewCalendar = 9, /**< Hebrew Calendar, aka Jewish Calendar */ ++ //HinduCalendar = 10, /**< Hindu Lunar Calendar */ ++ //IslamicLunarCalendar = 11, /**< Islamic Lunar Calendar */ ++ IslamicCivilCalendar = 12, /**< Islamic Civil Calendar, aka Hijri, not the Lunar Calendar */ ++ //IslamicUmAlQuraCalendar = 13, /**< Islamic Lunar Calendar, Um Al Qura varient used in Saudi Arabia */ ++ IndianNationalCalendar = 14, /**< Indian National Calendar, not the Lunar Calendar */ ++ //Iso8601Calendar = 15, /**< ISO 8601 Standard Calendar */ ++ JalaliCalendar = 16, /**< Jalali Calendar, aka Persian or Iranian, also used in Afghanistan */ ++ //JalaliBirashkCalendar = 17, /**< Jalali Calendar, Birashk Algorythm variant */ ++ //Jalali33YearCalendar = 18, /**< Jalali Calendar, 33 Year cycle variant */ ++ JapaneseCalendar= 19, /**< Japanese Calendar, Gregorian calculation using Japanese Era (Nengô) */ ++ //JucheCalendar = 20, /**< Juche Calendar, used in North Korea */ ++ JulianCalendar = 21, /**< Julian Calendar, as used in Orthodox Churches */ ++ MinguoCalendar= 22, /**< Minguo Calendar, aka ROC, Republic of China or Taiwanese */ ++ ThaiCalendar = 23 /**< Thai Calendar, aka Buddhist or Thai Buddhist */ ++ }; ++ ++ /** ++ * ++ * System used for Week Numbers ++ * ++ * @see setWeekNumberSystem() ++ * @see weekNumberSystem() ++ */ ++ enum WeekNumberSystem { ++ DefaultWeekNumber = 1000, /**< The system locale default */ ++ IsoWeekNumber = 0, /**< ISO Week Number */ ++ FirstFullWeek = 1, /**< Week 1 starts on the first Week Start Day in year ends after 7 days */ ++ FirstPartialWeek = 2, /**< Week 1 starts Jan 1st ends day before first Week Start Day in year */ ++ SimpleWeek = 3 /**< Week 1 starts Jan 1st ends after 7 days */ ++ }; ++ ++ /** ++ * ++ * The various Components that make up a Date / Time ++ * In the future the Components may be combined as flags for dynamic ++ * generation of Date Formats. ++ * ++ * @see CalendarSystem ++ * @see KLocalizedDate ++ * @see DateTimeComponentFormat ++ */ ++ enum DateTimeComponent { ++ Year = 0x1, /**< The Year portion of a date, may be number or name */ ++ YearName = 0x2, /**< The Year Name portion of a date */ ++ Month = 0x4, /**< The Month portion of a date, may be number or name */ ++ MonthName = 0x8, /**< The Month Name portion of a date */ ++ Day = 0x10, /**< The Day portion of a date, may be number or name */ ++ DayName = 0x20, /**< The Day Name portion of a date */ ++ JulianDay = 0x40, /**< The Julian Day of a date */ ++ EraName = 0x80, /**< The Era Name portion of a date */ ++ EraYear = 0x100, /**< The Era and Year portion of a date */ ++ YearInEra = 0x200, /**< The Year In Era portion of a date */ ++ DayOfYear = 0x400, /**< The Day Of Year portion of a date, may be number or name */ ++ DayOfYearName = 0x800, /**< The Day Of Year Name portion of a date */ ++ DayOfWeek = 0x1000, /**< The Day Of Week / Weekday portion of a date, may be number or name */ ++ DayOfWeekName = 0x2000, /**< The Day Of Week Name / Weekday Name portion of a date */ ++ Week = 0x4000, /**< The Week Number portion of a date */ ++ WeekYear = 0x8000, /**< The Week Year portion of a date */ ++ MonthsInYear = 0x10000, /**< The Months In Year portion of a date */ ++ WeeksInYear = 0x20000, /**< The Weeks In Year portion of a date */ ++ DaysInYear = 0x40000, /**< The Days In Year portion of a date */ ++ DaysInMonth = 0x80000, /**< The Days In Month portion of a date */ ++ DaysInWeek = 0x100000, /**< The Days In Week portion of a date */ ++ Hour = 0x200000, /**< The Hours portion of a date */ ++ Minute = 0x400000, /**< The Minutes portion of a date */ ++ Second = 0x800000, /**< The Seconds portion of a date */ ++ Millisecond = 0x1000000, /**< The Milliseconds portion of a date */ ++ DayPeriod = 0x2000000, /**< The Day Period portion of a date, e.g. AM/PM */ ++ DayPeriodHour = 0x4000000, /**< The Day Period Hour portion of a date */ ++ Timezone = 0x8000000, /**< The Time Zone portion of a date, may be offset or name */ ++ TimezoneName = 0x10000000, /**< The Time Zone Name portion of a date */ ++ UnixTime = 0x20000000 /**< The UNIX Time portion of a date */ ++ }; ++ ++ /** ++ * ++ * Format used for individual Date/Time Components when converted to/from a string ++ * Largely equivalent to the UNICODE CLDR format width definitions 1..5 ++ * ++ * @see DateTimeComponentFormat ++ */ ++ enum DateTimeComponentFormat { ++ DefaultComponentFormat = 1000, /**< The system locale default for the componant */ ++ ShortNumber = 0, /**< Number at its natural width, e.g. 2 for the 2nd*/ ++ LongNumber, /**< Number padded to a required width, e.g. 02 for the 2nd*/ ++ //OrdinalNumber /**< Ordinal number format, e.g. "2nd" for the 2nd */ ++ NarrowName = 3, /**< Narrow text format, may not be unique, e.g. M for Monday */ ++ ShortName, /**< Short text format, e.g. Mon for Monday */ ++ LongName /**< Long text format, e.g. Monday for Monday */ ++ }; ++ ++ Q_DECLARE_FLAGS(DateTimeComponents, DateTimeComponent) ++ ++ /** ++ * Format for date string. ++ */ ++ enum DateFormat { ++ ShortDate, /**< Locale Short date format, e.g. 08-04-2007 */ ++ LongDate, /**< Locale Long date format, e.g. Sunday 08 April 2007 */ ++ FancyShortDate, /**< Same as ShortDate for dates a week or more ago. For more ++ recent dates, it is represented as Today, Yesterday, or ++ the weekday name. */ ++ FancyLongDate, /**< Same as LongDate for dates a week or more ago. For more ++ recent dates, it is represented as Today, Yesterday, or ++ the weekday name. */ ++ IsoDate, /**< ISO-8601 Date format YYYY-MM-DD, e.g. 2009-12-31 */ ++ IsoWeekDate, /**< ISO-8601 Week Date format YYYY-Www-D, e.g. 2009-W01-1 */ ++ IsoOrdinalDate /**< ISO-8601 Ordinal Date format YYYY-DDD, e.g. 2009-001 */ ++ }; ++ ++ /** ++ * Returns a string formatted to the current locale's conventions ++ * regarding dates. ++ * ++ * @param date the date to be formatted ++ * @param format category of date format to use ++ * ++ * @return the date as a string ++ */ ++ Q_INVOKABLE QString formatDate(const QDate &date, DateFormat format = LongDate) const; ++ ++ /** ++ * Options for formatting date-time values. ++ */ ++ enum DateTimeFormatOption { ++ TimeZone = 0x01, /**< Include a time zone string */ ++ Seconds = 0x02 /**< Include the seconds value */ ++ }; ++ ++ Q_DECLARE_FLAGS(DateTimeFormatOptions, DateTimeFormatOption) ++ ++ /** ++ * Returns a string formatted to the current locale's conventions ++ * regarding both date and time. ++ * ++ * @param dateTime the date and time to be formatted ++ * @param format category of date format to use ++ * @param options additional output options ++ * ++ * @return The date and time as a string ++ */ ++ Q_INVOKABLE QString formatDateTime(const QDateTime &dateTime, DateFormat format = ShortDate, ++ DateTimeFormatOptions options = 0) const; ++ ++ /** ++ * Use this to determine whether in dates a possessive form of month ++ * name is preferred ("of January" rather than "January") ++ * ++ * @return If possessive form should be used ++ */ ++ bool dateMonthNamePossessive() const; ++ ++ /** ++ * ++ * Format flags for readLocaleTime() and formatLocaleTime() ++ */ ++ enum TimeFormatOption { ++ TimeDefault = 0x0, ///< Default formatting using seconds and the format ++ ///< as specified by the locale. ++ TimeWithoutSeconds = 0x1, ///< Exclude the seconds part of the time from display ++ TimeWithoutAmPm = 0x2, ///< Read/format time string without am/pm suffix but ++ ///< keep the 12/24h format as specified by locale time ++ ///< format, eg. "07.33.05" instead of "07.33.05 pm" for ++ ///< time format "%I.%M.%S %p". ++ TimeDuration = 0x6, ///< Read/format time string as duration. This will strip ++ ///< the am/pm suffix and read/format times with an hour ++ ///< value of 0-23 hours, eg. "19.33.05" instead of ++ ///< "07.33.05 pm" for time format "%I.%M.%S %p". ++ ///< This automatically implies @c TimeWithoutAmPm. ++ TimeFoldHours = 0xE ///< Read/format time string as duration. This will not ++ ///< not output the hours part of the duration but will ++ ///< add the hours (times sixty) to the number of minutes, ++ ///< eg. "70.23" instead of "01.10.23" for time format ++ ///< "%I.%M.%S %p". ++ }; ++ ++ Q_DECLARE_FLAGS(TimeFormatOptions, TimeFormatOption) ++ ++ /** ++ * ++ * Returns a string formatted to the current locale's conventions ++ * regarding times. ++ * ++ * @param pTime the time to be formatted ++ * @param options format option to use when formatting the time ++ * @return The time as a string ++ */ ++ Q_INVOKABLE QString formatLocaleTime(const QTime &pTime, ++ TimeFormatOptions options = Locale::TimeDefault) const; ++ ++ /** ++ * ++ * Returns the identifier of the digit set used to display dates and time. ++ * ++ * @return the digit set identifier ++ * @see DigitSet ++ * @see digitSetToName ++ */ ++ DigitSet dateTimeDigitSet() const; ++ ++ /** ++ * Use this to determine if the user wants a 12 hour clock. ++ * ++ * @return If the user wants 12h clock ++ */ ++ bool use12Clock() const; ++ ++ /** ++ * ++ * Returns the Day Period matching the time given ++ * ++ * @param time the time to return the day period for ++ * @param format the format to return teh day period in ++ * @return the Day Period for the given time ++ */ ++ Q_INVOKABLE QString dayPeriodText(const QTime &time, DateTimeComponentFormat format = DefaultComponentFormat) const; ++ ++ /** ++ * Use this to determine which day is the first day of the week. ++ * ++ * @return an integer (Monday=1..Sunday=7) ++ */ ++ int weekStartDay() const; ++ ++ /** ++ * Use this to determine which day is the first working day of the week. ++ * ++ * @return an integer (Monday=1..Sunday=7) ++ */ ++ int workingWeekStartDay() const; ++ ++ /** ++ * Use this to determine which day is the last working day of the week. ++ * ++ * @return an integer (Monday=1..Sunday=7) ++ */ ++ int workingWeekEndDay() const; ++ ++ /** ++ * Use this to determine which day is reserved for religious observance ++ * ++ * @return day number (None = 0, Monday = 1, ..., Sunday = 7) ++ */ ++ int weekDayOfPray() const; ++ ++ /** ++ * ++ * Returns the type of Calendar System used in this Locale ++ * ++ * @see Locale::CalendarSystem ++ * @see CalendarSystem ++ * @return the type of Calendar System ++ */ ++ Locale::CalendarSystem calendarSystem() const; ++ ++ /** ++ * ++ * Sets the type of Calendar System to use in this Locale ++ * ++ * @see Locale::CalendarSystem ++ * @see CalendarSystem ++ * @param calendarSystem the Calendar System to use ++ */ ++ void setCalendarSystem(Locale::CalendarSystem calendarSystem); ++ ++ /** ++ * ++ * Sets the type of Week Number System to use in this Locale ++ * ++ * @see Klocale::WeekNumberSystem ++ * @see weekNumberSystem() ++ * @param weekNumberSystem the Week Number System to use ++ */ ++ void setWeekNumberSystem(Locale::WeekNumberSystem weekNumberSystem); ++ ++ /** ++ * ++ * Returns the type of Week Number System used in this Locale ++ * ++ * @see Klocale::WeekNumberSystem ++ * @see setWeekNumberSystem() ++ * @returns the Week Number System used ++ */ ++ Locale::WeekNumberSystem weekNumberSystem() const; ++ ++ /** ++ * Converts a localized monetary string to a double. ++ * ++ * @param numStr the string we want to convert. ++ * @param ok the boolean that is set to false if it's not a number. ++ * If @p ok is 0, it will be ignored ++ * ++ * @return The string converted to a double ++ */ ++ Q_INVOKABLE double readMoney(const QString &numStr) const; ++ ++ /** ++ * Converts a localized numeric string to a double. ++ * ++ * @param numStr the string we want to convert. ++ * @return The string converted to a double ++ */ ++ Q_INVOKABLE double readNumber(const QString &numStr) const; ++ ++ /** ++ * Flags for readDate() ++ */ ++ enum ReadDateFlags { ++ NormalFormat = 1, /**< Only accept a date string in ++ the locale LongDate format */ ++ ShortFormat = 2, /**< Only accept a date string in ++ the locale ShortDate format */ ++ IsoFormat = 4, /**< Only accept a date string in ++ ISO date format (YYYY-MM-DD) */ ++ IsoWeekFormat = 8, /**< Only accept a date string in ++ ISO Week date format (YYYY-Www-D) */ ++ IsoOrdinalFormat = 16 /**< Only accept a date string in ++ ISO Week date format (YYYY-DDD) */ ++ }; ++ ++ /** ++ * Converts a localized date string to a QDate. ++ * This method is stricter than readDate(str,&ok): it will only accept ++ * a date in a specific format, depending on @p flags. ++ * ++ * @param str the string we want to convert. ++ * @param flags what format the the date string will be in ++ * @return The string converted to a QDate ++ * @see CalendarSystem::readDate() ++ */ ++ Q_INVOKABLE QDate readDate(const QString &str, ReadDateFlags flags) const; ++ ++ /** ++ * Converts a localized time string to a QTime. ++ * This method will try to parse it with seconds, then without seconds. ++ * ++ * @param str the string we want to convert. ++ * ++ * @return The string converted to a QTime ++ */ ++ Q_INVOKABLE QTime readTime(const QString &str) const; ++ ++ /** ++ * Additional processing options for readLocaleTime(). ++ * ++ * @remarks This is currently used as an enum but declared as a flag ++ * to be extensible ++ */ ++ enum TimeProcessingOption { ++ ProcessStrict = 0x1, ///< Process time in a strict manner, ie. ++ ///< a read time string has to exactly match ++ ///< the defined time format. ++ ProcessNonStrict = 0x2 ///< Process time in a lax manner, ie. ++ ///< allow spaces in the time-format to be ++ ///< left out when entering a time string. ++ }; ++ ++ Q_DECLARE_FLAGS(TimeProcessingOptions, TimeProcessingOption) ++ ++ /** ++ * ++ * Converts a localized time string to a QTime. ++ * This method is stricter than readTime(str, &ok) in that it will either ++ * accept a time with seconds or a time without seconds. ++ * ++ * @param str the string we want to convert ++ * @param ok the boolean that is set to false if it's not a valid time. ++ * If @p ok is 0, it will be ignored. ++ * @param options format option to apply when formatting the time ++ * @param processing if set to @c ProcessStrict, checking will be strict ++ * and the read time string has to have the exact time format ++ * specified. If set to @c ProcessNonStrict processing the time ++ * is lax and spaces in the time string can be left out. ++ * ++ * @return The string converted to a QTime ++ */ ++ ++ Q_INVOKABLE QTime readLocaleTime(const QString &str, ++ TimeFormatOptions options = Locale::TimeDefault, ++ TimeProcessingOptions processing = ProcessNonStrict) const; ++ ++ /** ++ * Returns the language code used by this object. The domain AND the ++ * library translation must be available in this language. ++ * defaultLanguage() is returned by default, if no other available. ++ * ++ * Use languageCodeToName(language) to get human readable, localized ++ * language name. ++ * ++ * @return the currently used language code ++ * ++ * @see languageCodeToName ++ */ ++ QString language() const; ++ ++ /** ++ * Returns the country code of the country where the user lives. ++ * ++ * The returned code complies with the ISO 3166-1 alpha-2 standard, ++ * except by KDE convention it is returned in lowercase whereas the ++ * official standard is uppercase. ++ * See http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 for details. ++ * ++ * defaultCountry() is returned by default, if no other available, ++ * this will always be uppercase 'C'. ++ * ++ * Use countryCodeToName(country) to get human readable, localized ++ * country names. ++ * ++ * @return the country code for the user ++ * ++ * @see countryCodeToName ++ */ ++ QString country() const; ++ ++ /** ++ * ++ * Returns the Country Division Code of the Country where the user lives. ++ * When no value is set, then the Country Code will be returned. ++ * ++ * The returned code complies with the ISO 3166-2 standard. ++ * See http://en.wikipedia.org/wiki/ISO_3166-2 for details. ++ * ++ * Note that unlike country() this method will return the correct case, ++ * i.e. normally uppercase.. ++ * ++ * In KDE 4.6 it is the apps responsibility to obtain a translation for the ++ * code, translation and other services will be priovided in KDE 4.7. ++ * ++ * @return the Country Division Code for the user ++ * @see setCountryDivisionCode ++ */ ++ QString countryDivisionCode() const; ++ ++ /** ++ * Returns the language codes selected by user, ordered by decreasing ++ * priority. ++ * ++ * Use languageCodeToName(language) to get human readable, localized ++ * language name. ++ * ++ * @return list of language codes ++ * ++ * @see languageCodeToName ++ */ ++ QStringList languageList() const; ++ ++ /** ++ * ++ * Returns the ISO Currency Codes used in the locale, ordered by decreasing ++ * priority. ++ * ++ * Use KCurrency::currencyCodeToName(currencyCode) to get human readable, ++ * localized language name. ++ * ++ * @return list of ISO Currency Codes ++ * ++ * @see currencyCodeToName ++ */ ++ QStringList currencyCodeList() const; ++ ++ /** ++ * Returns the file encoding. ++ * ++ * @return The Mib of the file encoding ++ * ++ * @see QFile::encodeName ++ * @see QFile::decodeName ++ */ ++ int fileEncodingMib() const; ++ ++ /** ++ * Changes the current date format. ++ * ++ * The format of the date is a string which contains variables that will ++ * be replaced: ++ * @li %Y with the whole year (e.g. "2004" for "2004") ++ * @li %y with the lower 2 digits of the year (e.g. "04" for "2004") ++ * @li %n with the month (January="1", December="12") ++ * @li %m with the month with two digits (January="01", December="12") ++ * @li %e with the day of the month (e.g. "1" on the first of march) ++ * @li %d with the day of the month with two digits (e.g. "01" on the first of march) ++ * @li %b with the short form of the month (e.g. "Jan" for January) ++ * @li %B with the long form of the month (e.g. "January") ++ * @li %a with the short form of the weekday (e.g. "Wed" for Wednesday) ++ * @li %A with the long form of the weekday (e.g. "Wednesday" for Wednesday) ++ * ++ * Everything else in the format string will be taken as is. ++ * For example, March 20th 1989 with the format "%y:%m:%d" results ++ * in "89:03:20". ++ * ++ * @param format The new date format ++ */ ++ void setDateFormat(const QString & format); ++ ++ /** ++ * Changes the current short date format. ++ * ++ * The format of the date is a string which contains variables that will ++ * be replaced: ++ * @li %Y with the whole year (e.g. "1984" for "1984") ++ * @li %y with the lower 2 digits of the year (e.g. "84" for "1984") ++ * @li %n with the month (January="1", December="12") ++ * @li %m with the month with two digits (January="01", December="12") ++ * @li %e with the day of the month (e.g. "1" on the first of march) ++ * @li %d with the day of the month with two digits(e.g. "01" on the first of march) ++ * @li %b with the short form of the month (e.g. "Jan" for January) ++ * @li %B with the long form of the month (e.g. "January") ++ * @li %a with the short form of the weekday (e.g. "Wed" for Wednesday) ++ * @li %A with the long form of the weekday (e.g. "Wednesday" for Wednesday) ++ * ++ * Everything else in the format string will be taken as is. ++ * For example, March 20th 1989 with the format "%y:%m:%d" results ++ * in "89:03:20". ++ * ++ * @param format The new short date format ++ */ ++ void setDateFormatShort(const QString & format); ++ ++ /** ++ * Changes the form of month name used in dates. ++ * ++ * @param possessive True if possessive forms should be used ++ */ ++ void setDateMonthNamePossessive(bool possessive); ++ ++ /** ++ * Changes the current time format. ++ * ++ * The format of the time is string a which contains variables that will ++ * be replaced: ++ * @li %H with the hour in 24h format and 2 digits (e.g. 5pm is "17", 5am is "05") ++ * @li %k with the hour in 24h format and one digits (e.g. 5pm is "17", 5am is "5") ++ * @li %I with the hour in 12h format and 2 digits (e.g. 5pm is "05", 5am is "05") ++ * @li %l with the hour in 12h format and one digits (e.g. 5pm is "5", 5am is "5") ++ * @li %M with the minute with 2 digits (e.g. the minute of 07:02:09 is "02") ++ * @li %S with the seconds with 2 digits (e.g. the minute of 07:02:09 is "09") ++ * @li %p with pm or am (e.g. 17.00 is "pm", 05.00 is "am") ++ * ++ * Everything else in the format string will be taken as is. ++ * For example, 5.23pm with the format "%H:%M" results ++ * in "17:23". ++ * ++ * @param format The new time format ++ */ ++ void setTimeFormat(const QString & format); ++ ++ /** ++ * ++ * Set digit characters used to display dates and time. ++ * ++ * @param digitSet the digit set identifier ++ * @see DigitSet ++ */ ++ void setDateTimeDigitSet(DigitSet digitSet); ++ ++ /** ++ * Changes how KLocale defines the first day in week. ++ * ++ * @param day first day of the week (Monday=1..Sunday=7) as integer ++ */ ++ void setWeekStartDay(int day); ++ ++ /** ++ * Changes how KLocale defines the first working day in week. ++ * ++ * @param day first working day of the week (Monday=1..Sunday=7) as integer ++ */ ++ void setWorkingWeekStartDay(int day); ++ ++ /** ++ * Changes how KLocale defines the last working day in week. ++ * ++ * @param day last working day of the week (Monday=1..Sunday=7) as integer ++ */ ++ void setWorkingWeekEndDay(int day); ++ ++ /** ++ * Changes how KLocale defines the day reserved for religious observance. ++ * ++ * @param day day of the week for religious observance (None=0,Monday=1..Sunday=7) as integer ++ */ ++ void setWeekDayOfPray(int day); ++ ++ /** ++ * Returns the currently selected date format. ++ * ++ * @return Current date format. ++ * @see setDateFormat() ++ */ ++ QString dateFormat() const; ++ ++ /** ++ * Returns the currently selected short date format. ++ * ++ * @return Current short date format. ++ * @see setDateFormatShort() ++ */ ++ QString dateFormatShort() const; ++ ++ /** ++ * Returns the currently selected time format. ++ * ++ * @return Current time format. ++ * @see setTimeFormat() ++ */ ++ QString timeFormat() const; ++ ++ /** ++ * Changes the symbol used to identify the decimal pointer. ++ * ++ * @param symbol The new decimal symbol. ++ */ ++ void setDecimalSymbol(const QString & symbol); ++ ++ /** ++ * Changes the separator used to group digits when formating numbers. ++ * ++ * @param separator The new thousands separator. ++ */ ++ void setThousandsSeparator(const QString & separator); ++ ++ /** ++ * Changes the sign used to identify a positive number. Normally this is ++ * left blank. ++ * ++ * @param sign Sign used for positive numbers. ++ */ ++ void setPositiveSign(const QString & sign); ++ ++ /** ++ * Changes the sign used to identify a negative number. ++ * ++ * @param sign Sign used for negative numbers. ++ */ ++ void setNegativeSign(const QString & sign); ++ ++ /** ++ * ++ * Changes the set of digit characters used to display numbers. ++ * ++ * @param digitSet the digit set identifier ++ * @see DigitSet ++ */ ++ void setDigitSet(DigitSet digitSet); ++ ++ /** ++ * Changes the sign position used for positive monetary values. ++ * ++ * @param signpos The new sign position ++ */ ++ void setPositiveMonetarySignPosition(SignPosition signpos); ++ ++ /** ++ * Changes the sign position used for negative monetary values. ++ * ++ * @param signpos The new sign position ++ */ ++ void setNegativeMonetarySignPosition(SignPosition signpos); ++ ++ /** ++ * Changes the position where the currency symbol should be printed for ++ * positive monetary values. ++ * ++ * @param prefix True if the currency symbol should be prefixed instead of ++ * postfixed ++ */ ++ void setPositivePrefixCurrencySymbol(bool prefix); ++ ++ /** ++ * Changes the position where the currency symbol should be printed for ++ * negative monetary values. ++ * ++ * @param prefix True if the currency symbol should be prefixed instead of ++ * postfixed ++ */ ++ void setNegativePrefixCurrencySymbol(bool prefix); ++ ++ /** ++ * ++ * Changes the number of decimal places used when formating numbers. ++ * ++ * @param digits The default number of digits to use. ++ */ ++ void setDecimalPlaces(int digits); ++ ++ /** ++ * ++ * Changes the number of decimal places used when formating money. ++ * ++ * @param digits The default number of digits to use. ++ */ ++ void setMonetaryDecimalPlaces(int digits); ++ ++ /** ++ * Changes the separator used to group digits when formating monetary values. ++ * ++ * @param separator The new thousands separator. ++ */ ++ void setMonetaryThousandsSeparator(const QString & separator); ++ ++ /** ++ * Changes the symbol used to identify the decimal pointer for monetary ++ * values. ++ * ++ * @param symbol The new decimal symbol. ++ */ ++ void setMonetaryDecimalSymbol(const QString & symbol); ++ ++ /** ++ * ++ * Changes the current ISO Currency Code. ++ * ++ * @param newCurrencyCode The new Currency Code ++ */ ++ void setCurrencyCode(const QString &newCurrencyCode); ++ ++ /** ++ * Changes the current currency symbol. ++ * ++ * This symbol should be consistant with the selected Currency Code ++ * ++ * @param symbol The new currency symbol ++ * @see currencyCode, KCurrency::currencySymbols ++ */ ++ void setCurrencySymbol(const QString & symbol); ++ ++ /** ++ * ++ * Set digit characters used to display monetary values. ++ * ++ * @param digitSet the digit set identifier ++ * @see DigitSet ++ */ ++ void setMonetaryDigitSet(DigitSet digitSet); ++ ++ /** ++ * Returns the preferred page size for printing. ++ * ++ * @return The preferred page size, cast it to QPrinter::PageSize ++ */ ++ int pageSize() const; ++ ++ /** ++ * Changes the preferred page size when printing. ++ * ++ * @param paperFormat the new preferred page size in the format QPrinter::PageSize ++ */ ++ void setPageSize(int paperFormat); ++ ++ /** ++ * The Metric system will give you information in mm, while the ++ * Imperial system will give you information in inches. ++ */ ++ enum MeasureSystem { ++ Metric, ///< Metric system (used e.g. in Europe) ++ Imperial ///< Imperial system (used e.g. in the United States) ++ }; ++ ++ /** ++ * Returns which measuring system we use. ++ * ++ * @return The preferred measuring system ++ */ ++ MeasureSystem measureSystem() const; ++ ++ /** ++ * Changes the preferred measuring system. ++ * ++ * @return value The preferred measuring system ++ */ ++ void setMeasureSystem(MeasureSystem value); ++ ++ /** ++ * Translates a message as a QTranslator is supposed to. ++ * The parameters are similar to i18n(), but the result ++ * value has other semantics (it can be QString()) ++ */ ++ Q_INVOKABLE QString translateQt(const char *context, const char *sourceText, const char *comment) const; ++ ++ /** ++ * Provides list of all known language codes. ++ * ++ * Use languageCodeToName(language) to get human readable, localized ++ * language names. ++ * ++ * @return list of all language codes ++ * ++ * @see languageCodeToName ++ * @see installedLanguages ++ */ ++ QStringList allLanguagesList() const; ++ ++ /** ++ * ++ * Provides list of all installed KDE Language Translations. ++ * ++ * Use languageCodeToName(language) to get human readable, localized ++ * language names. ++ * ++ * @return list of all installed language codes ++ * ++ * @see languageCodeToName ++ */ ++ QStringList installedLanguages() const; ++ ++ /** ++ * Convert a known language code to a human readable, localized form. ++ * If an unknown language code is supplied, empty string is returned; ++ * this will never happen if the code has been obtained by one of the ++ * KLocale methods. ++ * ++ * @param language the language code ++ * ++ * @return the human readable and localized form if the code is known, ++ * empty otherwise ++ * ++ * @see language ++ * @see languageList ++ * @see allLanguagesList ++ * @see installedLanguages ++ */ ++ Q_INVOKABLE QString languageCodeToName(const QString &language) const; ++ ++ /** ++ * Provides list of all known country codes. ++ * ++ * Use countryCodeToName(country) to get human readable, localized ++ * country names. ++ * ++ * @return a list of all country codes ++ * ++ * @see countryCodeToName ++ */ ++ QStringList allCountriesList() const; ++ ++ /** ++ * Convert a known country code to a human readable, localized form. ++ * ++ * If an unknown country code is supplied, empty string is returned; ++ * this will never happen if the code has been obtained by one of the ++ * KLocale methods. ++ * ++ * @param country the country code ++ * ++ * @return the human readable and localized form of the country name ++ * ++ * @see country ++ * @see allCountriesList ++ */ ++ Q_INVOKABLE QString countryCodeToName(const QString &country) const; ++ ++ /** ++ * Parses locale string into distinct parts. ++ * The format of locale is language_COUNTRY@modifier.CHARSET ++ * ++ * @param locale the locale string to split ++ * @param language set to the language part of the locale ++ * @param country set to the country part of the locale ++ * @param modifier set to the modifer part of the locale ++ * @param charset set to the charset part of the locale ++ */ ++ Q_INVOKABLE void splitLocale(const QString &locale, QString &language, QString &country, ++ QString &modifier, QString &charset); ++ ++ /** ++ * Returns the name of the internal language. ++ * ++ * @return Name of the default language ++ */ ++ QString defaultLanguage(); ++ ++ /** ++ * Returns the code of the default country, i.e. "C" ++ * ++ * This function will not provide a sensible value to use in your app, ++ * please use country() instead. ++ * ++ * @see country ++ * ++ * @return Name of the default country ++ */ ++ QString defaultCountry(); ++ ++ /** ++ * ++ * Returns the ISO Code of the default currency. ++ * ++ * @return ISO Currency Code of the default currency ++ */ ++ QString defaultCurrencyCode(); ++ ++ /** ++ * Reports whether evaluation of translation scripts is enabled. ++ * ++ * @return true if script evaluation is enabled, false otherwise. ++ */ ++ bool useTranscript() const; ++ ++ /** ++ * Checks whether or not the active catalog is found for the given language. ++ * ++ * @param language language to check ++ */ ++ Q_INVOKABLE bool isApplicationTranslatedInto(const QString & language); ++ ++ /** ++ * ++ * Sets the Country Division Code of the Country where the user lives. ++ * ++ * The code must comply with the ISO 3166-2 standard. ++ * See http://en.wikipedia.org/wiki/ISO_3166-2 for details. ++ * ++ * In KDE 4.6 it is the apps responsibility to validate the input, ++ * full validation and other services will be provided in KDE 4.7. ++ * ++ * @param countryDivision the Country Division Code for the user ++ * @return @c true on success, @c false on failure ++ * @see countryDivisionCode ++ */ ++ bool setCountryDivisionCode(const QString & countryDivision); ++ ++ /** ++ * ++ * Removes accelerator marker from a UI text label. ++ * ++ * Accelerator marker is not always a plain ampersand (&), ++ * so it is not enough to just remove it by @c QString::remove(). ++ * The label may contain escaped markers ("&&") which must be resolved ++ * and skipped, as well as CJK-style markers ("Foo (&F)") where ++ * the whole parenthesis construct should be removed. ++ * Therefore always use this function to remove accelerator marker ++ * from UI labels. ++ * ++ * @param label UI label which may contain an accelerator marker ++ * @return label without the accelerator marker ++ */ ++ Q_INVOKABLE QString removeAcceleratorMarker(const QString &label) const; ++ ++ /** ++ * ++ * Convert all digits in the string to the given digit set. ++ * ++ * Conversion is normally not performed if the given digit set ++ * is not appropriate in the current locale and language context. ++ * Unconditional conversion may be requested by setting ++ * @p ignoreContext to @c true. ++ * ++ * @param str the string to convert ++ * @param digitSet the digit set identifier ++ * @param ignoreContext unconditional conversion if @c true ++ * ++ * @return string with converted digits ++ * ++ * @see DigitSet ++ */ ++ Q_INVOKABLE QString convertDigits(const QString &str, DigitSet digitSet, ++ bool ignoreContext = false) const; ++ ++ /** ++ * ++ * Reparse locale configuration files for the current selected ++ * language. ++ */ ++ Q_INVOKABLE void reparseConfiguration(); ++ ++private: ++ KLocale *m_locale; ++ ++Q_SIGNALS: ++ void binaryUnitDialectChanged(); ++ void calendarSystemChanged(); ++ void countryDivisionCodeChanged(); ++ void currencyCodeChanged(); ++ void decimalSymbolChanged(); ++ void currencySymbolChanged(); ++ void dateFormatChanged(); ++ void dateFormatShortChanged(); ++ void dateMonthNamePossessiveChanged(); ++ void dateTimeDigitSetChanged(); ++ void decimalPlacesChanged(); ++ void digitSetChanged(); ++ void measureSystemChanged(); ++ void monetaryDecimalPlacesChanged(); ++ void monetaryDecimalSymbolChanged(); ++ void monetaryDigitSetChanged(); ++ void monetaryThousandsSeparatorChanged(); ++ void negativeMonetarySignPositionChanged(); ++ void negativePrefixCurrencySymbolChanged(); ++ void negativeSignChanged(); ++ void pageSizeChanged(); ++ void positiveMonetarySignPositionChanged(); ++ void positivePrefixCurrencySymbolChanged(); ++ void positiveSignChanged(); ++ void thousandsSeparatorChanged(); ++ void timeFormatChanged(); ++ void weekDayOfPrayChanged(); ++ void WeekNumberSystemChanged(); ++ void weekStartDayChanged(); ++ void workingWeekEndDayChanged(); ++ void workingWeekStartDayChanged(); ++}; ++ ++#endif +diff -urN kde-runtime-4.9.0.org/plasma/declarativeimports/locale/localebindingsplugin.cpp kde-runtime-4.9.0/plasma/declarativeimports/locale/localebindingsplugin.cpp +--- kde-runtime-4.9.0.org/plasma/declarativeimports/locale/localebindingsplugin.cpp 2012-05-23 01:59:52.000000000 +0200 ++++ kde-runtime-4.9.0/plasma/declarativeimports/locale/localebindingsplugin.cpp 2012-07-29 10:43:56.072917751 +0200 +@@ -20,7 +20,7 @@ + + #include "localebindingsplugin.h" + #include +-#include "locale.h" ++#include "kdelocale.h" + #include "calendarsystem.h" + + void LocaleBindingsPlugin::registerTypes(const char *uri) +diff -urN kde-runtime-4.9.0.org/plasma/declarativeimports/locale/locale.cpp kde-runtime-4.9.0/plasma/declarativeimports/locale/locale.cpp +--- kde-runtime-4.9.0.org/plasma/declarativeimports/locale/locale.cpp 2012-05-23 01:59:52.000000000 +0200 ++++ kde-runtime-4.9.0/plasma/declarativeimports/locale/locale.cpp 1970-01-01 01:00:00.000000000 +0100 +@@ -1,582 +0,0 @@ +-/* This file is part of the KDE libraries +- Copyright (C) 2012 Giorgos Tsiapaliwkas +- Copyright (C) 2012 Antonis Tsiapaliokas +- +- This library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Library General Public +- License as published by the Free Software Foundation; either +- version 2 of the License, or (at your option) any later version. +- +- This library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Library General Public License for more details. +- +- You should have received a copy of the GNU Library General Public License +- along with this library; see the file COPYING.LIB. If not, write to +- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +- Boston, MA 02110-1301, USA. +-*/ +- +-//own +-#include "locale.h" +- +-//KDE +-#include +- +-Locale::Locale(QObject* parent) +- : QObject(parent) +-{ +- m_locale = KGlobal::locale(); +-} +- +-bool Locale::setCountryDivisionCode(const QString &countryDivisionCode) +-{ +- bool ok = m_locale->setCountryDivisionCode(countryDivisionCode); +- emit countryDivisionCodeChanged(); +- return ok; +-} +- +-void Locale::setCurrencyCode(const QString &newCurrencyCode) +-{ +- m_locale->setCurrencyCode(newCurrencyCode); +- emit currencyCodeChanged(); +-} +- +-bool Locale::isApplicationTranslatedInto(const QString &lang) +-{ +- return m_locale->isApplicationTranslatedInto(lang); +-} +- +-void Locale::splitLocale(const QString &locale, QString &language, QString &country, QString &modifier, +- QString &charset) +-{ +- Locale::splitLocale(locale, language, country, modifier, charset); +-} +- +-QString Locale::language() const +-{ +- return m_locale->language(); +-} +- +-QString Locale::country() const +-{ +- return m_locale->country(); +-} +- +-QString Locale::countryDivisionCode() const +-{ +- return m_locale->countryDivisionCode(); +-} +- +-QString Locale::currencyCode() const +-{ +- return m_locale->currencyCode(); +-} +- +-QString Locale::translateQt(const char *context, const char *sourceText, const char *comment) const +-{ +- return m_locale->translateQt(context, sourceText, comment); +-} +- +-QList Locale::allDigitSetsList() const +-{ +- QList digitList; +- +- foreach(KLocale::DigitSet digit, m_locale->allDigitSetsList()) { +- digitList.append((int)digit); +- } +- +- return digitList; +-} +- +-QString Locale::digitSetToName(Locale::DigitSet digitSet, bool withDigits) const +-{ +- return m_locale->digitSetToName((KLocale::DigitSet)digitSet, withDigits); +-} +- +-QString Locale::convertDigits(const QString &str, DigitSet digitSet, bool ignoreContext) const +-{ +- return m_locale->convertDigits(str, (KLocale::DigitSet)digitSet, ignoreContext); +-} +- +-bool Locale::dateMonthNamePossessive() const +-{ +- return m_locale->dateMonthNamePossessive(); +-} +- +-int Locale::weekStartDay() const +-{ +- return m_locale->weekStartDay(); +-} +- +-int Locale::workingWeekStartDay() const +-{ +- return m_locale->workingWeekStartDay(); +-} +- +-int Locale::workingWeekEndDay() const +-{ +- return m_locale->workingWeekEndDay(); +-} +- +-int Locale::weekDayOfPray() const +-{ +- return m_locale->weekDayOfPray(); +-} +- +-int Locale::decimalPlaces() const +-{ +- return m_locale->decimalPlaces(); +-} +- +-QString Locale::decimalSymbol() const +-{ +- return m_locale->decimalSymbol(); +-} +- +-QString Locale::thousandsSeparator() const +-{ +- return m_locale->thousandsSeparator(); +-} +- +-QString Locale::currencySymbol() const +-{ +- return m_locale->currencySymbol(); +-} +- +-QString Locale::monetaryDecimalSymbol() const +-{ +- return m_locale->monetaryDecimalSymbol(); +-} +- +-QString Locale::monetaryThousandsSeparator() const +-{ +- return m_locale->monetaryThousandsSeparator(); +-} +- +-QString Locale::positiveSign() const +-{ +- return m_locale->positiveSign(); +-} +- +-QString Locale::negativeSign() const +-{ +- return m_locale->negativeSign(); +-} +- +-int Locale::monetaryDecimalPlaces() const +-{ +- return m_locale->monetaryDecimalPlaces(); +-} +- +-bool Locale::positivePrefixCurrencySymbol() const +-{ +- return m_locale->positivePrefixCurrencySymbol(); +-} +- +-bool Locale::negativePrefixCurrencySymbol() const +-{ +- return m_locale->negativePrefixCurrencySymbol(); +-} +- +-Locale::SignPosition Locale::positiveMonetarySignPosition() const +-{ +- return (Locale::SignPosition)m_locale->positiveMonetarySignPosition(); +-} +- +-Locale::SignPosition Locale::negativeMonetarySignPosition() const +-{ +- return (Locale::SignPosition)m_locale->negativeMonetarySignPosition(); +-} +- +-QString Locale::formatMoney(double num, const QString &symbol, int precision) const +-{ +- return m_locale->formatMoney(num, symbol, precision); +-} +- +-QString Locale::formatLong(long num) const +-{ +- return m_locale->formatLong(num); +-} +- +-QString Locale::formatNumber(const QString &numStr, bool round, int precision) const +-{ +- return m_locale->formatNumber(numStr, round, precision); +-} +- +-QString Locale::formatByteSize(double size, int precision, Locale::BinaryUnitDialect dialect, +- Locale::BinarySizeUnits specificUnit) const +-{ +- return m_locale->formatByteSize(size, precision, (KLocale::BinaryUnitDialect)dialect, (KLocale::BinarySizeUnits)specificUnit); +-} +- +-QString Locale::formatByteSize(double size) const +-{ +- return m_locale->formatByteSize(size); +-} +- +-Locale::BinaryUnitDialect Locale::binaryUnitDialect() const +-{ +- return (Locale::BinaryUnitDialect)m_locale->binaryUnitDialect(); +-} +- +-void Locale::setBinaryUnitDialect(Locale::BinaryUnitDialect newDialect) +-{ +- m_locale->setBinaryUnitDialect((KLocale::BinaryUnitDialect)newDialect); +- emit binaryUnitDialectChanged(); +-} +- +-QString Locale::formatDuration(unsigned long mSec) const +-{ +- return m_locale->formatDuration(mSec); +-} +- +-QString Locale::prettyFormatDuration(unsigned long mSec) const +-{ +- return m_locale->prettyFormatDuration(mSec); +-} +- +-QString Locale::formatDate(const QDate &date, Locale::DateFormat format) const +-{ +- return m_locale->formatDate(date, (KLocale::DateFormat)format); +-} +- +-double Locale::readNumber(const QString &_str) const +-{ +- bool ok; +- return m_locale->readNumber(_str, &ok); +-} +- +-double Locale::readMoney(const QString &_str) const +-{ +- bool ok; +- return m_locale->readMoney(_str, &ok); +-} +- +-QDate Locale::readDate(const QString &intstr, ReadDateFlags flags) const +-{ +- bool ok; +- return m_locale->readDate(intstr, (KLocale::ReadDateFlags)flags, &ok); +-} +- +-QTime Locale::readTime(const QString &intstr) const +-{ +- bool ok; +- return m_locale->readTime(intstr, &ok); +-} +- +-QTime Locale::readLocaleTime(const QString &intstr, TimeFormatOptions options, +- TimeProcessingOptions processing) const +-{ +- bool ok; +- return m_locale->readLocaleTime(intstr, &ok, (KLocale::TimeFormatOptions)(int)options, (KLocale::TimeProcessingOptions)(int)processing); +-} +- +-QString Locale::formatLocaleTime(const QTime &time, TimeFormatOptions options) const +-{ +- return m_locale->formatLocaleTime(time, (KLocale::TimeFormatOptions)(int)options); +-} +- +-bool Locale::use12Clock() const +-{ +- return m_locale->use12Clock(); +-} +- +-QString Locale::dayPeriodText(const QTime &time, DateTimeComponentFormat format) const +-{ +- return m_locale->dayPeriodText(time, (KLocale::DateTimeComponentFormat)format); +-} +- +-QStringList Locale::languageList() const +-{ +- return m_locale->languageList(); +-} +- +-QStringList Locale::currencyCodeList() const +-{ +- return m_locale->currencyCodeList(); +-} +- +-QString Locale::formatDateTime(const QDateTime &dateTime, Locale::DateFormat format, DateTimeFormatOptions options) const +-{ +- return m_locale->formatDateTime(dateTime, (KLocale::DateFormat)format, (KLocale::DateTimeFormatOptions)(int)options); +-} +- +-void Locale::setDateFormat(const QString &format) +-{ +- m_locale->setDateFormat(format); +- emit dateFormatChanged(); +-} +- +-void Locale::setDateFormatShort(const QString &format) +-{ +- m_locale->setDateFormatShort(format); +- emit dateFormatShortChanged(); +-} +- +-void Locale::setDateMonthNamePossessive(bool possessive) +-{ +- m_locale->setDateMonthNamePossessive(possessive); +- emit dateMonthNamePossessiveChanged(); +-} +- +-void Locale::setTimeFormat(const QString &format) +-{ +- m_locale->setTimeFormat(format); +- emit timeFormatChanged(); +-} +- +-void Locale::setWeekStartDay(int day) +-{ +- m_locale->setWeekStartDay(day); +- emit weekStartDayChanged(); +-} +- +-void Locale::setWorkingWeekStartDay(int day) +-{ +- m_locale->setWorkingWeekStartDay(day); +- emit workingWeekStartDayChanged(); +-} +- +-void Locale::setWorkingWeekEndDay(int day) +-{ +- m_locale->setWorkingWeekEndDay(day); +- emit workingWeekEndDayChanged(); +-} +- +-void Locale::setWeekDayOfPray(int day) +-{ +- m_locale->setWeekDayOfPray(day); +- emit weekDayOfPrayChanged(); +-} +- +-QString Locale::dateFormat() const +-{ +- return m_locale->dateFormat(); +-} +- +-QString Locale::dateFormatShort() const +-{ +- return m_locale->dateFormatShort(); +-} +- +-QString Locale::timeFormat() const +-{ +- return m_locale->timeFormat(); +-} +- +-void Locale::setDecimalPlaces(int digits) +-{ +- m_locale->setDecimalPlaces(digits); +- emit decimalPlacesChanged(); +-} +- +-void Locale::setDecimalSymbol(const QString &symbol) +-{ +- m_locale->setDecimalSymbol(symbol); +- emit decimalSymbolChanged(); +-} +- +-void Locale::setThousandsSeparator(const QString &separator) +-{ +- m_locale->setThousandsSeparator(separator); +- emit thousandsSeparatorChanged(); +-} +- +-void Locale::setPositiveSign(const QString &sign) +-{ +- m_locale->setPositiveSign(sign); +- emit positiveSignChanged(); +-} +- +-void Locale::setNegativeSign(const QString &sign) +-{ +- m_locale->setNegativeSign(sign); +- emit negativeSignChanged(); +-} +- +-void Locale::setPositiveMonetarySignPosition(Locale::SignPosition signpos) +-{ +- m_locale->setPositiveMonetarySignPosition((KLocale::SignPosition)signpos); +- emit positiveMonetarySignPositionChanged(); +-} +- +-void Locale::setNegativeMonetarySignPosition(Locale::SignPosition signpos) +-{ +- m_locale->setNegativeMonetarySignPosition((KLocale::SignPosition)signpos); +- emit negativeMonetarySignPositionChanged(); +-} +- +-void Locale::setPositivePrefixCurrencySymbol(bool prefix) +-{ +- m_locale->setPositivePrefixCurrencySymbol(prefix); +- emit positivePrefixCurrencySymbolChanged(); +-} +- +-void Locale::setNegativePrefixCurrencySymbol(bool prefix) +-{ +- m_locale->setNegativePrefixCurrencySymbol(prefix); +- emit negativePrefixCurrencySymbolChanged(); +-} +- +-void Locale::setMonetaryDecimalPlaces(int digits) +-{ +- m_locale->setMonetaryDecimalPlaces(digits); +- emit monetaryDecimalPlacesChanged(); +-} +- +-void Locale::setMonetaryThousandsSeparator(const QString &separator) +-{ +- m_locale->setMonetaryThousandsSeparator(separator); +- emit monetaryThousandsSeparatorChanged(); +-} +- +-void Locale::setMonetaryDecimalSymbol(const QString &symbol) +-{ +- m_locale->setMonetaryDecimalSymbol(symbol); +- emit monetaryDecimalSymbolChanged(); +-} +- +-void Locale::setCurrencySymbol(const QString & symbol) +-{ +- m_locale->setCurrencySymbol(symbol); +- emit currencySymbolChanged(); +-} +- +-int Locale::pageSize() const +-{ +- return m_locale->pageSize(); +-} +- +-void Locale::setPageSize(int size) +-{ +- m_locale->setPageSize(size); +- emit pageSizeChanged(); +-} +- +-Locale::MeasureSystem Locale::measureSystem() const +-{ +- return (Locale::MeasureSystem)m_locale->measureSystem(); +-} +- +-void Locale::setMeasureSystem(Locale::MeasureSystem value) +-{ +- m_locale->setMeasureSystem((KLocale::MeasureSystem)value); +- emit measureSystemChanged(); +-} +- +-QString Locale::defaultLanguage() +-{ +- return KLocale::defaultLanguage(); +-} +- +-QString Locale::defaultCountry() +-{ +- return KLocale::defaultCountry(); +-} +- +-QString Locale::defaultCurrencyCode() +-{ +- return KLocale::defaultCurrencyCode(); +-} +- +-bool Locale::useTranscript() const +-{ +- return m_locale->useTranscript(); +-} +- +-int Locale::fileEncodingMib() const +-{ +- return m_locale->fileEncodingMib(); +-} +- +-QStringList Locale::allLanguagesList() const +-{ +- return m_locale->allLanguagesList(); +-} +- +-QStringList Locale::installedLanguages() const +-{ +- return m_locale->installedLanguages(); +-} +- +-QString Locale::languageCodeToName(const QString &language) const +-{ +- return m_locale->languageCodeToName(language); +-} +- +-QStringList Locale::allCountriesList() const +-{ +- return m_locale->allCountriesList(); +-} +- +-QString Locale::countryCodeToName(const QString &country) const +-{ +- return m_locale->countryCodeToName(country); +-} +- +-void Locale::setCalendarSystem(Locale::CalendarSystem calendarSystem) +-{ +- m_locale->setCalendarSystem((KLocale::CalendarSystem)calendarSystem); +- emit calendarSystemChanged(); +-} +- +-Locale::CalendarSystem Locale::calendarSystem() const +-{ +- return (Locale::CalendarSystem)m_locale->calendarSystem(); +-} +- +-void Locale::setWeekNumberSystem(Locale::WeekNumberSystem weekNumberSystem) +-{ +- m_locale->setWeekNumberSystem((KLocale::WeekNumberSystem)weekNumberSystem); +- emit WeekNumberSystemChanged(); +-} +- +-Locale::WeekNumberSystem Locale::weekNumberSystem() const +-{ +- return (Locale::WeekNumberSystem)m_locale->weekNumberSystem(); +-} +- +-QString Locale::removeAcceleratorMarker(const QString &label) const +-{ +- return m_locale->removeAcceleratorMarker(label); +-} +- +-void Locale::setDigitSet(Locale::DigitSet digitSet) +-{ +- m_locale->setDigitSet((KLocale::DigitSet)digitSet); +- emit digitSetChanged(); +-} +- +-Locale::DigitSet Locale::digitSet() const +-{ +- return (Locale::DigitSet)m_locale->digitSet(); +-} +- +-void Locale::setMonetaryDigitSet(Locale::DigitSet digitSet) +-{ +- m_locale->setMonetaryDigitSet((KLocale::DigitSet)digitSet); +- emit monetaryDigitSetChanged(); +-} +- +-Locale::DigitSet Locale::monetaryDigitSet() const +-{ +- return (Locale::DigitSet)m_locale->monetaryDigitSet(); +-} +- +-void Locale::setDateTimeDigitSet(Locale::DigitSet digitSet) +-{ +- m_locale->setDateTimeDigitSet((KLocale::DigitSet)digitSet); +- emit dateTimeDigitSetChanged(); +-} +- +-Locale::DigitSet Locale::dateTimeDigitSet() const +-{ +- return (Locale::DigitSet)m_locale->dateTimeDigitSet(); +-} +- +-void Locale::reparseConfiguration() +-{ +- m_locale->reparseConfiguration(); +-} +diff -urN kde-runtime-4.9.0.org/plasma/declarativeimports/locale/locale.h kde-runtime-4.9.0/plasma/declarativeimports/locale/locale.h +--- kde-runtime-4.9.0.org/plasma/declarativeimports/locale/locale.h 2012-05-23 01:59:52.000000000 +0200 ++++ kde-runtime-4.9.0/plasma/declarativeimports/locale/locale.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,1585 +0,0 @@ +-/* This file is part of the KDE libraries +- Copyright (C) 2012 Giorgos Tsiapaliwkas +- Copyright (C) 2012 Antonis Tsiapaliokas +- +- This library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Library General Public +- License as published by the Free Software Foundation; either +- version 2 of the License, or (at your option) any later version. +- +- This library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Library General Public License for more details. +- +- You should have received a copy of the GNU Library General Public License +- along with this library; see the file COPYING.LIB. If not, write to +- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +- Boston, MA 02110-1301, USA. +-*/ +-#ifndef LOCALE_H +-#define LOCALE_H +- +-//Qt +-#include +-#include +-#include +- +-//KDE +-#include +- +-class QString; +-class QDate; +-class QTime; +-class QDateTime; +- +-/** +- * \file klocale.h +- */ +- +-/** +- * +- * KLocale provides support for country specific stuff like +- * the national language. +- * +- * KLocale supports translating, as well as specifying the format +- * for numbers, currency, time, and date. +- * +- * Use KGlobal::locale() to get pointer to the global KLocale object, +- * containing the applications current locale settings. +- * +- * For example, to format the date May 17, 1995 in the current locale, use: +- * +- * \code +- * QString date = KGlobal::locale()->formatDate(QDate(1995,5,17)); +- * \endcode +- * +- * @author Stephan Kulow , Preston Brown , +- * Hans Petter Bieker , Lukas Tinkl +- * @short class for supporting locale settings and national language +- */ +-class Locale : public QObject +-{ +-Q_OBJECT +- +-//enuns +-Q_ENUMS(BinarySizeUnits) +-Q_ENUMS(BinaryUnitDialect) +-Q_ENUMS(CalendarSystem) +-Q_ENUMS(DateFormat) +-Q_ENUMS(DateTimeComponent) +-Q_ENUMS(DateTimeComponentFormat) +-Q_ENUMS(DateTimeFormatOption ) +-Q_ENUMS(DigitSet) +-Q_ENUMS(MeasureSystem) +-Q_ENUMS(ReadDateFlags) +-Q_ENUMS(SignPosition) +-Q_ENUMS(TimeFormatOption) +-Q_ENUMS(TimeProcessingOption) +-Q_ENUMS(WeekNumberSystem) +- +-//properties +-Q_PROPERTY(BinaryUnitDialect binaryUnitDialect READ binaryUnitDialect WRITE setBinaryUnitDialect NOTIFY binaryUnitDialectChanged) +-Q_PROPERTY(Locale::CalendarSystem calendarSystem READ calendarSystem WRITE setCalendarSystem NOTIFY calendarSystemChanged) +-Q_PROPERTY(QString country READ country CONSTANT) //read-only +-Q_PROPERTY(QString countryDivisionCode READ countryDivisionCode WRITE setCountryDivisionCode NOTIFY countryDivisionCodeChanged) +-Q_PROPERTY(QString currencyCode READ currencyCode WRITE setCurrencyCode NOTIFY currencyCodeChanged) +-Q_PROPERTY(QString currencySymbol READ currencySymbol WRITE setCurrencySymbol NOTIFY currencySymbolChanged) +-Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged) +-Q_PROPERTY(QString dateFormatShort READ dateFormatShort WRITE setDateFormat NOTIFY dateFormatShortChanged) +-Q_PROPERTY(bool dateMonthNamePossessive READ dateMonthNamePossessive WRITE setDateMonthNamePossessive NOTIFY dateMonthNamePossessiveChanged) +-Q_PROPERTY(DigitSet dateTimeDigitSet READ dateTimeDigitSet WRITE setDateTimeDigitSet NOTIFY dateTimeDigitSetChanged) +-Q_PROPERTY(int decimalPlaces READ decimalPlaces WRITE setDecimalPlaces NOTIFY decimalPlacesChanged) +-Q_PROPERTY(QString decimalSymbol READ decimalSymbol WRITE setDecimalSymbol NOTIFY decimalSymbolChanged) +-Q_PROPERTY(DigitSet digitSet READ digitSet WRITE setDigitSet NOTIFY digitSetChanged) +-Q_PROPERTY(QString language READ language CONSTANT) //read-only +-Q_PROPERTY(MeasureSystem measureSystem READ measureSystem WRITE setMeasureSystem NOTIFY measureSystemChanged) +-Q_PROPERTY(int monetaryDecimalPlaces READ monetaryDecimalPlaces WRITE setMonetaryDecimalPlaces NOTIFY monetaryDecimalPlacesChanged) +-Q_PROPERTY(QString monetaryDecimalSymbol READ monetaryDecimalSymbol WRITE setMonetaryDecimalSymbol NOTIFY monetaryDecimalSymbolChanged) +-Q_PROPERTY(DigitSet monetaryDigitSet READ monetaryDigitSet WRITE setMonetaryDigitSet NOTIFY monetaryDigitSetChanged) +-Q_PROPERTY(QString monetaryThousandsSeparator READ monetaryThousandsSeparator WRITE setMonetaryThousandsSeparator NOTIFY monetaryThousandsSeparatorChanged) +-Q_PROPERTY(SignPosition negativeMonetarySignPosition READ negativeMonetarySignPosition WRITE setNegativeMonetarySignPosition NOTIFY negativeMonetarySignPositionChanged) +-Q_PROPERTY(bool negativePrefixCurrencySymbol READ negativePrefixCurrencySymbol WRITE setNegativePrefixCurrencySymbol NOTIFY negativePrefixCurrencySymbolChanged) +-Q_PROPERTY(QString negativeSign READ negativeSign WRITE setNegativeSign NOTIFY negativeSignChanged) +-Q_PROPERTY(int pageSize READ pageSize WRITE setPageSize NOTIFY pageSizeChanged) +-Q_PROPERTY(SignPosition positiveMonetarySignPosition READ positiveMonetarySignPosition WRITE setPositiveMonetarySignPosition NOTIFY positiveMonetarySignPositionChanged) +-Q_PROPERTY(bool positivePrefixCurrencySymbol READ positivePrefixCurrencySymbol WRITE setPositivePrefixCurrencySymbol NOTIFY positivePrefixCurrencySymbolChanged) +-Q_PROPERTY(QString positiveSign READ positiveSign WRITE setPositiveSign NOTIFY positiveSignChanged) +-Q_PROPERTY(QString thousandsSeparator READ thousandsSeparator WRITE setThousandsSeparator NOTIFY thousandsSeparatorChanged) +-Q_PROPERTY(int weekDayOfPray READ weekDayOfPray WRITE setWeekDayOfPray NOTIFY weekDayOfPrayChanged) +-Q_PROPERTY(Locale::WeekNumberSystem weekNumberSystem READ weekNumberSystem WRITE setWeekNumberSystem NOTIFY WeekNumberSystemChanged) +-Q_PROPERTY(int weekStartDay READ weekStartDay WRITE setWeekStartDay NOTIFY weekStartDayChanged) +-Q_PROPERTY(int workingWeekEndDay READ workingWeekEndDay WRITE setWorkingWeekEndDay NOTIFY workingWeekEndDayChanged) +-Q_PROPERTY(int workingWeekStartDay READ workingWeekStartDay WRITE setWorkingWeekStartDay NOTIFY workingWeekStartDayChanged) +-Q_PROPERTY(bool use12Clock READ use12Clock CONSTANT) +-Q_PROPERTY(QString defaultLanguage READ defaultLanguage CONSTANT)//read-only +-Q_PROPERTY(QString defaultCountry READ defaultCountry CONSTANT)//read-only +-Q_PROPERTY(QString defaultCurrencyCode READ defaultCurrencyCode CONSTANT)//read-only +-Q_PROPERTY(bool useTranscript READ useTranscript CONSTANT) //read-only +-Q_PROPERTY(int fileEncodingMib READ fileEncodingMib CONSTANT) //read-only +-Q_PROPERTY(QStringList languageList READ languageList CONSTANT) //read-only +-Q_PROPERTY(QStringList currencyCodeList READ currencyCodeList CONSTANT) //read-only +-Q_PROPERTY(QStringList allLanguagesList READ allLanguagesList CONSTANT) //read-only +-Q_PROPERTY(QStringList installedLanguages READ installedLanguages CONSTANT) //read-only +-Q_PROPERTY(QStringList allCountriesList READ allCountriesList CONSTANT) //read-only +-Q_PROPERTY(QList allDigitSetsList READ allDigitSetsList CONSTANT) //read-only +- +-public: +- /** +- * ctor +- */ +- Locale(QObject *parent = 0); +- +- /** +- * Various positions for where to place the positive or negative +- * sign when they are related to a monetary value. +- */ +- enum SignPosition { +- /** +- * Put parantheses around the quantity, e.g. "$ (217)" +- */ +- ParensAround = 0, +- /** +- * Prefix the quantity with the sign, e.g. "$ -217" +- */ +- BeforeQuantityMoney = 1, +- /** +- * Suffix the quanitity with the sign, e.g. "$ 217-" +- */ +- AfterQuantityMoney = 2, +- /** +- * Prefix the currency symbol with the sign, e.g. "-$ 217" +- */ +- BeforeMoney = 3, +- /** +- * Suffix the currency symbol with the sign, e.g. "$- 217" +- */ +- AfterMoney = 4 +- }; +- +- /** +- * +- * The set of digit characters used to display and enter numbers. +- */ +- enum DigitSet { +- ArabicDigits, /**< 0123456789 (European and some Asian +- languages and western Arabic dialects) */ +- ArabicIndicDigits, /**< ٠١٢٣٤٥٦٧٨٩ (eastern Arabic dialects) */ +- EasternArabicIndicDigits, /**< Û°Û±Û²Û³Û´ÛµÛ¶Û·Û¸Û¹ (Persian and Urdu) */ +- DevenagariDigits, /**< ०१२३४५६७८९ (Hindi) */ +- BengaliDigits, /**< ০১২৩৪৫৬৭৮৯ (Bengali and Assamese) */ +- GujaratiDigits, /**< ૦૧૨૩૪૫૬૭૮૯ (Gujarati) */ +- GurmukhiDigits, /**< ੦੧੨੩੪੫੬੭੮੯ (Punjabi) */ +- KannadaDigits, /**< ೦೧೨೩೪೫೬೭೮೯ (Kannada) */ +- KhmerDigits, /**< ០១២៣៤៥៦៧៨៩ (Khmer) */ +- MalayalamDigits, /**< ൦൧൨൩൪൫൬൭൮൯ (Malayalam) */ +- OriyaDigits, /**< ୦୧୨୩୪୫୬୭୮୯ (Oriya) */ +- TamilDigits, /**< ௦௧௨௩௪௫௬௭௮ (Tamil) */ +- TeluguDigits, /**< ౦౧౨౩౪౫౬౭౯ (Telugu) */ +- ThaiDigits /**< ๐๑๒๓๔๕๖๗๘๙ (Thai) */ +- // The following Decimal Digit Sets are defined in Unicode but the associated +- // languages are not yet translated in KDE, so are not yet enabled. +- // The script names are taken from the Unicode standard, the associated +- // languages from Wikipedia. +- // BalineseDigits, /**< ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙ (Balinese) */ +- // ChamDigits, /**< ꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙ (Cham) */ +- // JavaneseDigits, /**< ꧐꧑꧒꧓꧔꧕꧖꧗꧘꧙ (Javanese) */ +- // KayahLiDigits, /**< ꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉ (Kayah) */ +- // LaoDigits, /**< ໐໑໒໓໔໕໖໗໘໙ (Lao) */ +- // LepchaDigits, /**< ᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ (Lepcha) */ +- // LimbuDigits, /**< ᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ (Limbu) */ +- // MeeteiMayekDigits, /**< ꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹ (Meitei) */ +- // MongolianDigits, /**< ᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ (Mongolian) */ +- // MyanmarDigits, /**< ၀၁၂၃၄၅၆၇၈၉ (Myanmar/Burmese ) */ +- // MyanmarShanDigits, /**< ႐႑႒႓႔႕႖႗႘႙ (Shan) */ +- // NewTaiLueDigits, /**< ᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙ (Tai Lü) */ +- // NKoDigits, /**< ߀߁߂߃߄߅߆߇߈߉ (Mande and N'Ko) */ +- // OlChikiDigits, /**< ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ (Santali) */ +- // OsmanyaDigits, /**< Ò Ò¡Ò¢Ò£Ò¤Ò¥Ò¦Ò§Ò¨Ò© (Somali) */ +- // SaurashtraDigits, /**< ꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙ (Saurashtra) */ +- // SundaneseDigits, /**< ᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ (Sundanese) */ +- // TaiThamDigits, /**< ᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙ (Tai Lü) */ +- // TibetanDigits, /**< ༠༡༢༣༤༥༦༧༨༩ (Tibetan) */ +- // VaiDigits, /**< ꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩ (Vai) */ +- }; +- +- /** +- * +- * Convert a digit set identifier to a human readable, localized name. +- * +- * @param digitSet the digit set identifier +- * @param withDigits whether to add the digits themselves to the name +- * +- * @return the human readable and localized name of the digit set +- * +- * @see DigitSet +- */ +- QString digitSetToName(DigitSet digitSet, bool withDigits = false) const; +- +- /** +- * +- * Provides list of all known digit set identifiers. +- * +- * @return list of all digit set identifiers +- * @see DigitSet +- * @see digitSetToName +- */ +- QList allDigitSetsList() const; +- +- /** +- * Returns what a decimal point should look like ("." or "," etc.) +- * according to the current locale or user settings. +- * +- * @return The decimal symbol used by locale. +- */ +- QString decimalSymbol() const; +- +- /** +- * Returns what the thousands separator should look +- * like ("," or "." etc.) +- * according to the current locale or user settings. +- * +- * @return The thousands separator used by locale. +- */ +- QString thousandsSeparator() const; +- +- /** +- * +- * Returns the identifier of the digit set used to display numbers. +- * +- * @return the digit set identifier +- * @see DigitSet +- * @see digitSetToName +- */ +- DigitSet digitSet() const; +- +- /** +- * +- * Returns the ISO 4217 Currency Code for the current locale +- * +- * @return The default ISO Currency Code used by locale. +- */ +- QString currencyCode() const; +- +- /** +- * Returns what the symbol denoting currency in the current locale +- * as as defined by user settings should look like. +- * +- * @return The default currency symbol used by locale. +- */ +- QString currencySymbol() const; +- +- /** +- * Returns what a decimal point should look like ("." or "," etc.) +- * for monetary values, according to the current locale or user +- * settings. +- * +- * @return The monetary decimal symbol used by locale. +- */ +- QString monetaryDecimalSymbol() const; +- +- /** +- * Returns what a thousands separator for monetary values should +- * look like ("," or " " etc.) according to the current locale or +- * user settings. +- * +- * @return The monetary thousands separator used by locale. +- */ +- QString monetaryThousandsSeparator() const; +- +- /** +- * Returns what a positive sign should look like ("+", " ", etc.) +- * according to the current locale or user settings. +- * +- * @return The positive sign used by locale. +- */ +- QString positiveSign() const; +- +- /** +- * Returns what a negative sign should look like ("-", etc.) +- * according to the current locale or user settings. +- * +- * @return The negative sign used by locale. +- */ +- QString negativeSign() const; +- +- /** +- * +- * The number of decimal places to include in numeric values (usually 2). +- * +- * @return Default number of numeric decimal places used by locale. +- */ +- int decimalPlaces() const; +- +- /** +- * +- * The number of decimal places to include in monetary values (usually 2). +- * +- * @return Default number of monetary decimal places used by locale. +- */ +- int monetaryDecimalPlaces() const; +- +- /** +- * If and only if the currency symbol precedes a positive value, +- * this will be true. +- * +- * @return Where to print the currency symbol for positive numbers. +- */ +- bool positivePrefixCurrencySymbol() const; +- +- /** +- * If and only if the currency symbol precedes a negative value, +- * this will be true. +- * +- * @return True if the currency symbol precedes negative numbers. +- */ +- bool negativePrefixCurrencySymbol() const; +- +- /** +- * Returns the position of a positive sign in relation to a +- * monetary value. +- * +- * @return Where/how to print the positive sign. +- * @see SignPosition +- */ +- SignPosition positiveMonetarySignPosition() const; +- +- /** +- * Denotes where to place a negative sign in relation to a +- * monetary value. +- * +- * @return Where/how to print the negative sign. +- * @see SignPosition +- */ +- SignPosition negativeMonetarySignPosition() const; +- +- /** +- * +- * Retuns the digit set used to display monetary values. +- * +- * @return the digit set identifier +- * @see DigitSet +- * @see digitSetToName +- */ +- DigitSet monetaryDigitSet() const; +- +- /** +- * Given a double, converts that to a numeric string containing +- * the localized monetary equivalent. +- * +- * e.g. given 123456, return "$ 123,456.00". +- * +- * If precision isn't specified or is < 0, then the default monetaryDecimalPlaces() is used. +- * +- * @param num The number we want to format +- * @param currency The currency symbol you want. +- * @param precision Number of decimal places displayed +- * +- * @return The number of money as a localized string +- * @see monetaryDecimalPlaces() +- */ +- Q_INVOKABLE QString formatMoney(double num, const QString ¤cy = QString(), int precision = -1) const; +- +- /** +- * Given a string representing a number, converts that to a numeric +- * string containing the localized numeric equivalent. +- * +- * e.g. given 123456.78F, return "123,456.78" (for some European country). +- * +- * If precision isn't specified or is < 0, then the default decimalPlaces() is used. +- * +- * @param numStr The number to format, as a string. +- * @param round Round fractional digits. (default true) +- * @param precision Number of fractional digits used for rounding. Unused if round=false. +- * +- * @return The number as a localized string +- */ +- Q_INVOKABLE QString formatNumber(const QString &numStr, bool round = true, int precision = -1) const; +- +- /** +- * Given an integer, converts that to a numeric string containing +- * the localized numeric equivalent. +- * +- * e.g. given 123456L, return "123,456" (for some European country). +- * +- * @param num The number to convert +- * +- * @return The number as a localized string +- */ +- Q_INVOKABLE QString formatLong(long num) const; +- +- /** +- * These binary units are used in KDE by the formatByteSize() +- * functions. +- * +- * NOTE: There are several different units standards: +- * 1) SI (i.e. metric), powers-of-10. +- * 2) IEC, powers-of-2, with specific units KiB, MiB, etc. +- * 3) JEDEC, powers-of-2, used for solid state memory sizing which +- * is why you see flash cards labels as e.g. 4GB. These (ab)use +- * the metric units. Although JEDEC only defines KB, MB, GB, if +- * JEDEC is selected all units will be powers-of-2 with metric +- * prefixes for clarity in the event of sizes larger than 1024 GB. +- * +- * Although 3 different dialects are possible this enum only uses +- * metric names since adding all 3 different names of essentially the same +- * unit would be pointless. Use BinaryUnitDialect to control the exact +- * units returned. +- * +- * @see binaryUnitDialect +- */ +- enum BinarySizeUnits { +- /// Auto-choose a unit such that the result is in the range [0, 1000 or 1024) +- DefaultBinaryUnits = 1000, +- +- // The first real unit must be 0 for the current implementation! +- UnitByte = 0, ///< B 1 byte +- UnitKiloByte, ///< KiB/KB/kB 1024/1000 bytes. +- UnitMegaByte, ///< MiB/MB/MB 2^20/10^06 bytes. +- UnitGigaByte, ///< GiB/GB/GB 2^30/10^09 bytes. +- UnitTeraByte, ///< TiB/TB/TB 2^40/10^12 bytes. +- UnitPetaByte, ///< PiB/PB/PB 2^50/10^15 bytes. +- UnitExaByte, ///< EiB/EB/EB 2^60/10^18 bytes. +- UnitZettaByte, ///< ZiB/ZB/ZB 2^70/10^21 bytes. +- UnitYottaByte, ///< YiB/YB/YB 2^80/10^24 bytes. +- UnitLastUnit = UnitYottaByte +- }; +- +- /** +- * This enum chooses what dialect is used for binary units. +- * +- * Note: Although JEDEC abuses the metric prefixes and can therefore be +- * confusing, it has been used to describe *memory* sizes for quite some time +- * and programs should therefore use either Default, JEDEC, or IEC 60027-2 +- * for memory sizes. +- * +- * On the other hand network transmission rates are typically in metric so +- * Default, Metric, or IEC (which is unambiguous) should be chosen. +- * +- * Normally choosing DefaultBinaryUnits is the best option as that uses +- * the user's selection for units. +- * +- * @see binaryUnitDialect +- * @see setBinaryUnitDialect +- */ +- enum BinaryUnitDialect { +- DefaultBinaryDialect = 1000, ///< Used if no specific preference +- IECBinaryDialect = 0, ///< KDE Default, KiB, MiB, etc. 2^(10*n) +- JEDECBinaryDialect, ///< KDE 3.5 default, KB, MB, etc. 2^(10*n) +- MetricBinaryDialect, ///< SI Units, kB, MB, etc. 10^(3*n) +- LastBinaryDialect = MetricBinaryDialect +- }; +- +- /** +- * Converts @p size from bytes to the string representation using the +- * user's default binary unit dialect. The default unit dialect is +- * IEC 60027-2. +- * +- * Example: +- * formatByteSize(1024) returns "1.0 KiB" by default. +- * +- * @param size size in bytes +- * @return converted size as a string - e.g. 123.4 KiB , 12.0 MiB +- * @see BinaryUnitDialect +- * @todo KDE 5: Remove in favor of overload added in KDE 4.4. +- */ +- Q_INVOKABLE QString formatByteSize(double size) const; +- +- /** +- * +- * Converts @p size from bytes to the appropriate string representation +- * using the binary unit dialect @p dialect and the specific units @p specificUnit. +- * +- * Example: +- * formatByteSize(1000, unit, Locale::BinaryUnitKilo) returns: +- * for Locale::MetricBinaryUnits, "1.0 kB", +- * for Locale::IECBinaryUnits, "0.9 KiB", +- * for Locale::JEDECBinaryUnits, "0.9 KB". +- * +- * @param size size in bytes +- * @param precision number of places after the decimal point to use. KDE uses +- * 1 by default so when in doubt use 1. +- * @param dialect binary unit standard to use. Use DefaultBinaryUnits to +- * use the localized user selection unless you need to use a specific +- * unit type (such as displaying a flash memory size in JEDEC). +- * @param specificUnit specific unit size to use in result. Use +- * DefaultBinarySize to automatically select a unit that will return +- * a sanely-sized number. +- * @return converted size as a translated string including the units. +- * E.g. "1.23 KiB", "2 GB" (JEDEC), "4.2 kB" (Metric). +- * @see BinaryUnitDialect +- */ +- QString formatByteSize(double size, int precision, +- BinaryUnitDialect dialect = Locale::DefaultBinaryDialect, +- BinarySizeUnits specificUnit = Locale::DefaultBinaryUnits) const; +- +- /** +- * Returns the user's configured binary unit dialect. +- * e.g. if MetricBinaryDialect is returned then the values +- * configured for how much a set of bytes are worth would +- * be 10^(3*n) and KB (1000 bytes == 1 KB), in this case. +- * +- * Will never return DefaultBinaryDialect. +- * +- * @return User's configured binary unit dialect +- * @see BinaryUnitDialect +- */ +- BinaryUnitDialect binaryUnitDialect() const; +- +- /** +- * Sets @p newDialect to be the default dialect for this locale (and only +- * this locale). Newly created KLocale objects will continue to default +- * to the user's choice. +- * +- * @param newDialect the new dialect to set as default for this locale object. +- */ +- void setBinaryUnitDialect(BinaryUnitDialect newDialect); +- +- /** +- * Given a number of milliseconds, converts that to a string containing +- * the localized equivalent +- * +- * e.g. given formatDuration(60000), returns "1.0 minutes" +- * +- * @param mSec Time duration in milliseconds +- * @return converted duration as a string - e.g. "5.5 seconds" "23.0 minutes" +- */ +- Q_INVOKABLE QString formatDuration(unsigned long mSec) const; +- +- /** +- * Given a number of milliseconds, converts that to a pretty string containing +- * the localized equivalent. +- * +- * e.g. given prettyFormatDuration(60001) returns "1 minute" +- * given prettyFormatDuration(62005) returns "1 minute and 2 seconds" +- * given prettyFormatDuration(90060000) returns "1 day and 1 hour" +- * +- * @param mSec Time duration in milliseconds +- * @return converted duration as a string. +- * Units not interesting to the user, for example seconds or minutes when the first +- * unit is day, are not returned because they are irrelevant. The same applies for +- * seconds when the first unit is hour. +- */ +- Q_INVOKABLE QString prettyFormatDuration(unsigned long mSec) const; +- +- /** +- * +- * Available Calendar Systems +- * +- * @see setCalendarSystem() +- * @see calendarSystem() +- */ +- enum CalendarSystem { +- QDateCalendar = 1, /**< KDE Default, hybrid of Gregorian and Julian as used by QDate */ +- //BahaiCalendar = 2, /**< Baha'i Calendar */ +- //BuddhistLunarCalendar = 3, /**< Buddhist Lunar Calendar*/ +- //ChineseCalendar = 4, /**< Chinese Calendar */ +- CopticCalendar = 5, /**< Coptic Calendar as used Coptic Church and some parts of Egypt */ +- EthiopianCalendar = 6, /**< Ethiopian Calendar, aka Ethiopic Calendar */ +- //EthiopianAmeteAlemCalendar = 7, /**< Ethiopian Amete Alem version, aka Ethiopic Amete Alem */ +- GregorianCalendar = 8, /**< Gregorian Calendar, pure proleptic implementation */ +- HebrewCalendar = 9, /**< Hebrew Calendar, aka Jewish Calendar */ +- //HinduCalendar = 10, /**< Hindu Lunar Calendar */ +- //IslamicLunarCalendar = 11, /**< Islamic Lunar Calendar */ +- IslamicCivilCalendar = 12, /**< Islamic Civil Calendar, aka Hijri, not the Lunar Calendar */ +- //IslamicUmAlQuraCalendar = 13, /**< Islamic Lunar Calendar, Um Al Qura varient used in Saudi Arabia */ +- IndianNationalCalendar = 14, /**< Indian National Calendar, not the Lunar Calendar */ +- //Iso8601Calendar = 15, /**< ISO 8601 Standard Calendar */ +- JalaliCalendar = 16, /**< Jalali Calendar, aka Persian or Iranian, also used in Afghanistan */ +- //JalaliBirashkCalendar = 17, /**< Jalali Calendar, Birashk Algorythm variant */ +- //Jalali33YearCalendar = 18, /**< Jalali Calendar, 33 Year cycle variant */ +- JapaneseCalendar= 19, /**< Japanese Calendar, Gregorian calculation using Japanese Era (Nengô) */ +- //JucheCalendar = 20, /**< Juche Calendar, used in North Korea */ +- JulianCalendar = 21, /**< Julian Calendar, as used in Orthodox Churches */ +- MinguoCalendar= 22, /**< Minguo Calendar, aka ROC, Republic of China or Taiwanese */ +- ThaiCalendar = 23 /**< Thai Calendar, aka Buddhist or Thai Buddhist */ +- }; +- +- /** +- * +- * System used for Week Numbers +- * +- * @see setWeekNumberSystem() +- * @see weekNumberSystem() +- */ +- enum WeekNumberSystem { +- DefaultWeekNumber = 1000, /**< The system locale default */ +- IsoWeekNumber = 0, /**< ISO Week Number */ +- FirstFullWeek = 1, /**< Week 1 starts on the first Week Start Day in year ends after 7 days */ +- FirstPartialWeek = 2, /**< Week 1 starts Jan 1st ends day before first Week Start Day in year */ +- SimpleWeek = 3 /**< Week 1 starts Jan 1st ends after 7 days */ +- }; +- +- /** +- * +- * The various Components that make up a Date / Time +- * In the future the Components may be combined as flags for dynamic +- * generation of Date Formats. +- * +- * @see CalendarSystem +- * @see KLocalizedDate +- * @see DateTimeComponentFormat +- */ +- enum DateTimeComponent { +- Year = 0x1, /**< The Year portion of a date, may be number or name */ +- YearName = 0x2, /**< The Year Name portion of a date */ +- Month = 0x4, /**< The Month portion of a date, may be number or name */ +- MonthName = 0x8, /**< The Month Name portion of a date */ +- Day = 0x10, /**< The Day portion of a date, may be number or name */ +- DayName = 0x20, /**< The Day Name portion of a date */ +- JulianDay = 0x40, /**< The Julian Day of a date */ +- EraName = 0x80, /**< The Era Name portion of a date */ +- EraYear = 0x100, /**< The Era and Year portion of a date */ +- YearInEra = 0x200, /**< The Year In Era portion of a date */ +- DayOfYear = 0x400, /**< The Day Of Year portion of a date, may be number or name */ +- DayOfYearName = 0x800, /**< The Day Of Year Name portion of a date */ +- DayOfWeek = 0x1000, /**< The Day Of Week / Weekday portion of a date, may be number or name */ +- DayOfWeekName = 0x2000, /**< The Day Of Week Name / Weekday Name portion of a date */ +- Week = 0x4000, /**< The Week Number portion of a date */ +- WeekYear = 0x8000, /**< The Week Year portion of a date */ +- MonthsInYear = 0x10000, /**< The Months In Year portion of a date */ +- WeeksInYear = 0x20000, /**< The Weeks In Year portion of a date */ +- DaysInYear = 0x40000, /**< The Days In Year portion of a date */ +- DaysInMonth = 0x80000, /**< The Days In Month portion of a date */ +- DaysInWeek = 0x100000, /**< The Days In Week portion of a date */ +- Hour = 0x200000, /**< The Hours portion of a date */ +- Minute = 0x400000, /**< The Minutes portion of a date */ +- Second = 0x800000, /**< The Seconds portion of a date */ +- Millisecond = 0x1000000, /**< The Milliseconds portion of a date */ +- DayPeriod = 0x2000000, /**< The Day Period portion of a date, e.g. AM/PM */ +- DayPeriodHour = 0x4000000, /**< The Day Period Hour portion of a date */ +- Timezone = 0x8000000, /**< The Time Zone portion of a date, may be offset or name */ +- TimezoneName = 0x10000000, /**< The Time Zone Name portion of a date */ +- UnixTime = 0x20000000 /**< The UNIX Time portion of a date */ +- }; +- +- /** +- * +- * Format used for individual Date/Time Components when converted to/from a string +- * Largely equivalent to the UNICODE CLDR format width definitions 1..5 +- * +- * @see DateTimeComponentFormat +- */ +- enum DateTimeComponentFormat { +- DefaultComponentFormat = 1000, /**< The system locale default for the componant */ +- ShortNumber = 0, /**< Number at its natural width, e.g. 2 for the 2nd*/ +- LongNumber, /**< Number padded to a required width, e.g. 02 for the 2nd*/ +- //OrdinalNumber /**< Ordinal number format, e.g. "2nd" for the 2nd */ +- NarrowName = 3, /**< Narrow text format, may not be unique, e.g. M for Monday */ +- ShortName, /**< Short text format, e.g. Mon for Monday */ +- LongName /**< Long text format, e.g. Monday for Monday */ +- }; +- +- Q_DECLARE_FLAGS(DateTimeComponents, DateTimeComponent) +- +- /** +- * Format for date string. +- */ +- enum DateFormat { +- ShortDate, /**< Locale Short date format, e.g. 08-04-2007 */ +- LongDate, /**< Locale Long date format, e.g. Sunday 08 April 2007 */ +- FancyShortDate, /**< Same as ShortDate for dates a week or more ago. For more +- recent dates, it is represented as Today, Yesterday, or +- the weekday name. */ +- FancyLongDate, /**< Same as LongDate for dates a week or more ago. For more +- recent dates, it is represented as Today, Yesterday, or +- the weekday name. */ +- IsoDate, /**< ISO-8601 Date format YYYY-MM-DD, e.g. 2009-12-31 */ +- IsoWeekDate, /**< ISO-8601 Week Date format YYYY-Www-D, e.g. 2009-W01-1 */ +- IsoOrdinalDate /**< ISO-8601 Ordinal Date format YYYY-DDD, e.g. 2009-001 */ +- }; +- +- /** +- * Returns a string formatted to the current locale's conventions +- * regarding dates. +- * +- * @param date the date to be formatted +- * @param format category of date format to use +- * +- * @return the date as a string +- */ +- Q_INVOKABLE QString formatDate(const QDate &date, DateFormat format = LongDate) const; +- +- /** +- * Options for formatting date-time values. +- */ +- enum DateTimeFormatOption { +- TimeZone = 0x01, /**< Include a time zone string */ +- Seconds = 0x02 /**< Include the seconds value */ +- }; +- +- Q_DECLARE_FLAGS(DateTimeFormatOptions, DateTimeFormatOption) +- +- /** +- * Returns a string formatted to the current locale's conventions +- * regarding both date and time. +- * +- * @param dateTime the date and time to be formatted +- * @param format category of date format to use +- * @param options additional output options +- * +- * @return The date and time as a string +- */ +- Q_INVOKABLE QString formatDateTime(const QDateTime &dateTime, DateFormat format = ShortDate, +- DateTimeFormatOptions options = 0) const; +- +- /** +- * Use this to determine whether in dates a possessive form of month +- * name is preferred ("of January" rather than "January") +- * +- * @return If possessive form should be used +- */ +- bool dateMonthNamePossessive() const; +- +- /** +- * +- * Format flags for readLocaleTime() and formatLocaleTime() +- */ +- enum TimeFormatOption { +- TimeDefault = 0x0, ///< Default formatting using seconds and the format +- ///< as specified by the locale. +- TimeWithoutSeconds = 0x1, ///< Exclude the seconds part of the time from display +- TimeWithoutAmPm = 0x2, ///< Read/format time string without am/pm suffix but +- ///< keep the 12/24h format as specified by locale time +- ///< format, eg. "07.33.05" instead of "07.33.05 pm" for +- ///< time format "%I.%M.%S %p". +- TimeDuration = 0x6, ///< Read/format time string as duration. This will strip +- ///< the am/pm suffix and read/format times with an hour +- ///< value of 0-23 hours, eg. "19.33.05" instead of +- ///< "07.33.05 pm" for time format "%I.%M.%S %p". +- ///< This automatically implies @c TimeWithoutAmPm. +- TimeFoldHours = 0xE ///< Read/format time string as duration. This will not +- ///< not output the hours part of the duration but will +- ///< add the hours (times sixty) to the number of minutes, +- ///< eg. "70.23" instead of "01.10.23" for time format +- ///< "%I.%M.%S %p". +- }; +- +- Q_DECLARE_FLAGS(TimeFormatOptions, TimeFormatOption) +- +- /** +- * +- * Returns a string formatted to the current locale's conventions +- * regarding times. +- * +- * @param pTime the time to be formatted +- * @param options format option to use when formatting the time +- * @return The time as a string +- */ +- Q_INVOKABLE QString formatLocaleTime(const QTime &pTime, +- TimeFormatOptions options = Locale::TimeDefault) const; +- +- /** +- * +- * Returns the identifier of the digit set used to display dates and time. +- * +- * @return the digit set identifier +- * @see DigitSet +- * @see digitSetToName +- */ +- DigitSet dateTimeDigitSet() const; +- +- /** +- * Use this to determine if the user wants a 12 hour clock. +- * +- * @return If the user wants 12h clock +- */ +- bool use12Clock() const; +- +- /** +- * +- * Returns the Day Period matching the time given +- * +- * @param time the time to return the day period for +- * @param format the format to return teh day period in +- * @return the Day Period for the given time +- */ +- Q_INVOKABLE QString dayPeriodText(const QTime &time, DateTimeComponentFormat format = DefaultComponentFormat) const; +- +- /** +- * Use this to determine which day is the first day of the week. +- * +- * @return an integer (Monday=1..Sunday=7) +- */ +- int weekStartDay() const; +- +- /** +- * Use this to determine which day is the first working day of the week. +- * +- * @return an integer (Monday=1..Sunday=7) +- */ +- int workingWeekStartDay() const; +- +- /** +- * Use this to determine which day is the last working day of the week. +- * +- * @return an integer (Monday=1..Sunday=7) +- */ +- int workingWeekEndDay() const; +- +- /** +- * Use this to determine which day is reserved for religious observance +- * +- * @return day number (None = 0, Monday = 1, ..., Sunday = 7) +- */ +- int weekDayOfPray() const; +- +- /** +- * +- * Returns the type of Calendar System used in this Locale +- * +- * @see Locale::CalendarSystem +- * @see CalendarSystem +- * @return the type of Calendar System +- */ +- Locale::CalendarSystem calendarSystem() const; +- +- /** +- * +- * Sets the type of Calendar System to use in this Locale +- * +- * @see Locale::CalendarSystem +- * @see CalendarSystem +- * @param calendarSystem the Calendar System to use +- */ +- void setCalendarSystem(Locale::CalendarSystem calendarSystem); +- +- /** +- * +- * Sets the type of Week Number System to use in this Locale +- * +- * @see Klocale::WeekNumberSystem +- * @see weekNumberSystem() +- * @param weekNumberSystem the Week Number System to use +- */ +- void setWeekNumberSystem(Locale::WeekNumberSystem weekNumberSystem); +- +- /** +- * +- * Returns the type of Week Number System used in this Locale +- * +- * @see Klocale::WeekNumberSystem +- * @see setWeekNumberSystem() +- * @returns the Week Number System used +- */ +- Locale::WeekNumberSystem weekNumberSystem() const; +- +- /** +- * Converts a localized monetary string to a double. +- * +- * @param numStr the string we want to convert. +- * @param ok the boolean that is set to false if it's not a number. +- * If @p ok is 0, it will be ignored +- * +- * @return The string converted to a double +- */ +- Q_INVOKABLE double readMoney(const QString &numStr) const; +- +- /** +- * Converts a localized numeric string to a double. +- * +- * @param numStr the string we want to convert. +- * @return The string converted to a double +- */ +- Q_INVOKABLE double readNumber(const QString &numStr) const; +- +- /** +- * Flags for readDate() +- */ +- enum ReadDateFlags { +- NormalFormat = 1, /**< Only accept a date string in +- the locale LongDate format */ +- ShortFormat = 2, /**< Only accept a date string in +- the locale ShortDate format */ +- IsoFormat = 4, /**< Only accept a date string in +- ISO date format (YYYY-MM-DD) */ +- IsoWeekFormat = 8, /**< Only accept a date string in +- ISO Week date format (YYYY-Www-D) */ +- IsoOrdinalFormat = 16 /**< Only accept a date string in +- ISO Week date format (YYYY-DDD) */ +- }; +- +- /** +- * Converts a localized date string to a QDate. +- * This method is stricter than readDate(str,&ok): it will only accept +- * a date in a specific format, depending on @p flags. +- * +- * @param str the string we want to convert. +- * @param flags what format the the date string will be in +- * @return The string converted to a QDate +- * @see CalendarSystem::readDate() +- */ +- Q_INVOKABLE QDate readDate(const QString &str, ReadDateFlags flags) const; +- +- /** +- * Converts a localized time string to a QTime. +- * This method will try to parse it with seconds, then without seconds. +- * +- * @param str the string we want to convert. +- * +- * @return The string converted to a QTime +- */ +- Q_INVOKABLE QTime readTime(const QString &str) const; +- +- /** +- * Additional processing options for readLocaleTime(). +- * +- * @remarks This is currently used as an enum but declared as a flag +- * to be extensible +- */ +- enum TimeProcessingOption { +- ProcessStrict = 0x1, ///< Process time in a strict manner, ie. +- ///< a read time string has to exactly match +- ///< the defined time format. +- ProcessNonStrict = 0x2 ///< Process time in a lax manner, ie. +- ///< allow spaces in the time-format to be +- ///< left out when entering a time string. +- }; +- +- Q_DECLARE_FLAGS(TimeProcessingOptions, TimeProcessingOption) +- +- /** +- * +- * Converts a localized time string to a QTime. +- * This method is stricter than readTime(str, &ok) in that it will either +- * accept a time with seconds or a time without seconds. +- * +- * @param str the string we want to convert +- * @param ok the boolean that is set to false if it's not a valid time. +- * If @p ok is 0, it will be ignored. +- * @param options format option to apply when formatting the time +- * @param processing if set to @c ProcessStrict, checking will be strict +- * and the read time string has to have the exact time format +- * specified. If set to @c ProcessNonStrict processing the time +- * is lax and spaces in the time string can be left out. +- * +- * @return The string converted to a QTime +- */ +- +- Q_INVOKABLE QTime readLocaleTime(const QString &str, +- TimeFormatOptions options = Locale::TimeDefault, +- TimeProcessingOptions processing = ProcessNonStrict) const; +- +- /** +- * Returns the language code used by this object. The domain AND the +- * library translation must be available in this language. +- * defaultLanguage() is returned by default, if no other available. +- * +- * Use languageCodeToName(language) to get human readable, localized +- * language name. +- * +- * @return the currently used language code +- * +- * @see languageCodeToName +- */ +- QString language() const; +- +- /** +- * Returns the country code of the country where the user lives. +- * +- * The returned code complies with the ISO 3166-1 alpha-2 standard, +- * except by KDE convention it is returned in lowercase whereas the +- * official standard is uppercase. +- * See http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 for details. +- * +- * defaultCountry() is returned by default, if no other available, +- * this will always be uppercase 'C'. +- * +- * Use countryCodeToName(country) to get human readable, localized +- * country names. +- * +- * @return the country code for the user +- * +- * @see countryCodeToName +- */ +- QString country() const; +- +- /** +- * +- * Returns the Country Division Code of the Country where the user lives. +- * When no value is set, then the Country Code will be returned. +- * +- * The returned code complies with the ISO 3166-2 standard. +- * See http://en.wikipedia.org/wiki/ISO_3166-2 for details. +- * +- * Note that unlike country() this method will return the correct case, +- * i.e. normally uppercase.. +- * +- * In KDE 4.6 it is the apps responsibility to obtain a translation for the +- * code, translation and other services will be priovided in KDE 4.7. +- * +- * @return the Country Division Code for the user +- * @see setCountryDivisionCode +- */ +- QString countryDivisionCode() const; +- +- /** +- * Returns the language codes selected by user, ordered by decreasing +- * priority. +- * +- * Use languageCodeToName(language) to get human readable, localized +- * language name. +- * +- * @return list of language codes +- * +- * @see languageCodeToName +- */ +- QStringList languageList() const; +- +- /** +- * +- * Returns the ISO Currency Codes used in the locale, ordered by decreasing +- * priority. +- * +- * Use KCurrency::currencyCodeToName(currencyCode) to get human readable, +- * localized language name. +- * +- * @return list of ISO Currency Codes +- * +- * @see currencyCodeToName +- */ +- QStringList currencyCodeList() const; +- +- /** +- * Returns the file encoding. +- * +- * @return The Mib of the file encoding +- * +- * @see QFile::encodeName +- * @see QFile::decodeName +- */ +- int fileEncodingMib() const; +- +- /** +- * Changes the current date format. +- * +- * The format of the date is a string which contains variables that will +- * be replaced: +- * @li %Y with the whole year (e.g. "2004" for "2004") +- * @li %y with the lower 2 digits of the year (e.g. "04" for "2004") +- * @li %n with the month (January="1", December="12") +- * @li %m with the month with two digits (January="01", December="12") +- * @li %e with the day of the month (e.g. "1" on the first of march) +- * @li %d with the day of the month with two digits (e.g. "01" on the first of march) +- * @li %b with the short form of the month (e.g. "Jan" for January) +- * @li %B with the long form of the month (e.g. "January") +- * @li %a with the short form of the weekday (e.g. "Wed" for Wednesday) +- * @li %A with the long form of the weekday (e.g. "Wednesday" for Wednesday) +- * +- * Everything else in the format string will be taken as is. +- * For example, March 20th 1989 with the format "%y:%m:%d" results +- * in "89:03:20". +- * +- * @param format The new date format +- */ +- void setDateFormat(const QString & format); +- +- /** +- * Changes the current short date format. +- * +- * The format of the date is a string which contains variables that will +- * be replaced: +- * @li %Y with the whole year (e.g. "1984" for "1984") +- * @li %y with the lower 2 digits of the year (e.g. "84" for "1984") +- * @li %n with the month (January="1", December="12") +- * @li %m with the month with two digits (January="01", December="12") +- * @li %e with the day of the month (e.g. "1" on the first of march) +- * @li %d with the day of the month with two digits(e.g. "01" on the first of march) +- * @li %b with the short form of the month (e.g. "Jan" for January) +- * @li %B with the long form of the month (e.g. "January") +- * @li %a with the short form of the weekday (e.g. "Wed" for Wednesday) +- * @li %A with the long form of the weekday (e.g. "Wednesday" for Wednesday) +- * +- * Everything else in the format string will be taken as is. +- * For example, March 20th 1989 with the format "%y:%m:%d" results +- * in "89:03:20". +- * +- * @param format The new short date format +- */ +- void setDateFormatShort(const QString & format); +- +- /** +- * Changes the form of month name used in dates. +- * +- * @param possessive True if possessive forms should be used +- */ +- void setDateMonthNamePossessive(bool possessive); +- +- /** +- * Changes the current time format. +- * +- * The format of the time is string a which contains variables that will +- * be replaced: +- * @li %H with the hour in 24h format and 2 digits (e.g. 5pm is "17", 5am is "05") +- * @li %k with the hour in 24h format and one digits (e.g. 5pm is "17", 5am is "5") +- * @li %I with the hour in 12h format and 2 digits (e.g. 5pm is "05", 5am is "05") +- * @li %l with the hour in 12h format and one digits (e.g. 5pm is "5", 5am is "5") +- * @li %M with the minute with 2 digits (e.g. the minute of 07:02:09 is "02") +- * @li %S with the seconds with 2 digits (e.g. the minute of 07:02:09 is "09") +- * @li %p with pm or am (e.g. 17.00 is "pm", 05.00 is "am") +- * +- * Everything else in the format string will be taken as is. +- * For example, 5.23pm with the format "%H:%M" results +- * in "17:23". +- * +- * @param format The new time format +- */ +- void setTimeFormat(const QString & format); +- +- /** +- * +- * Set digit characters used to display dates and time. +- * +- * @param digitSet the digit set identifier +- * @see DigitSet +- */ +- void setDateTimeDigitSet(DigitSet digitSet); +- +- /** +- * Changes how KLocale defines the first day in week. +- * +- * @param day first day of the week (Monday=1..Sunday=7) as integer +- */ +- void setWeekStartDay(int day); +- +- /** +- * Changes how KLocale defines the first working day in week. +- * +- * @param day first working day of the week (Monday=1..Sunday=7) as integer +- */ +- void setWorkingWeekStartDay(int day); +- +- /** +- * Changes how KLocale defines the last working day in week. +- * +- * @param day last working day of the week (Monday=1..Sunday=7) as integer +- */ +- void setWorkingWeekEndDay(int day); +- +- /** +- * Changes how KLocale defines the day reserved for religious observance. +- * +- * @param day day of the week for religious observance (None=0,Monday=1..Sunday=7) as integer +- */ +- void setWeekDayOfPray(int day); +- +- /** +- * Returns the currently selected date format. +- * +- * @return Current date format. +- * @see setDateFormat() +- */ +- QString dateFormat() const; +- +- /** +- * Returns the currently selected short date format. +- * +- * @return Current short date format. +- * @see setDateFormatShort() +- */ +- QString dateFormatShort() const; +- +- /** +- * Returns the currently selected time format. +- * +- * @return Current time format. +- * @see setTimeFormat() +- */ +- QString timeFormat() const; +- +- /** +- * Changes the symbol used to identify the decimal pointer. +- * +- * @param symbol The new decimal symbol. +- */ +- void setDecimalSymbol(const QString & symbol); +- +- /** +- * Changes the separator used to group digits when formating numbers. +- * +- * @param separator The new thousands separator. +- */ +- void setThousandsSeparator(const QString & separator); +- +- /** +- * Changes the sign used to identify a positive number. Normally this is +- * left blank. +- * +- * @param sign Sign used for positive numbers. +- */ +- void setPositiveSign(const QString & sign); +- +- /** +- * Changes the sign used to identify a negative number. +- * +- * @param sign Sign used for negative numbers. +- */ +- void setNegativeSign(const QString & sign); +- +- /** +- * +- * Changes the set of digit characters used to display numbers. +- * +- * @param digitSet the digit set identifier +- * @see DigitSet +- */ +- void setDigitSet(DigitSet digitSet); +- +- /** +- * Changes the sign position used for positive monetary values. +- * +- * @param signpos The new sign position +- */ +- void setPositiveMonetarySignPosition(SignPosition signpos); +- +- /** +- * Changes the sign position used for negative monetary values. +- * +- * @param signpos The new sign position +- */ +- void setNegativeMonetarySignPosition(SignPosition signpos); +- +- /** +- * Changes the position where the currency symbol should be printed for +- * positive monetary values. +- * +- * @param prefix True if the currency symbol should be prefixed instead of +- * postfixed +- */ +- void setPositivePrefixCurrencySymbol(bool prefix); +- +- /** +- * Changes the position where the currency symbol should be printed for +- * negative monetary values. +- * +- * @param prefix True if the currency symbol should be prefixed instead of +- * postfixed +- */ +- void setNegativePrefixCurrencySymbol(bool prefix); +- +- /** +- * +- * Changes the number of decimal places used when formating numbers. +- * +- * @param digits The default number of digits to use. +- */ +- void setDecimalPlaces(int digits); +- +- /** +- * +- * Changes the number of decimal places used when formating money. +- * +- * @param digits The default number of digits to use. +- */ +- void setMonetaryDecimalPlaces(int digits); +- +- /** +- * Changes the separator used to group digits when formating monetary values. +- * +- * @param separator The new thousands separator. +- */ +- void setMonetaryThousandsSeparator(const QString & separator); +- +- /** +- * Changes the symbol used to identify the decimal pointer for monetary +- * values. +- * +- * @param symbol The new decimal symbol. +- */ +- void setMonetaryDecimalSymbol(const QString & symbol); +- +- /** +- * +- * Changes the current ISO Currency Code. +- * +- * @param newCurrencyCode The new Currency Code +- */ +- void setCurrencyCode(const QString &newCurrencyCode); +- +- /** +- * Changes the current currency symbol. +- * +- * This symbol should be consistant with the selected Currency Code +- * +- * @param symbol The new currency symbol +- * @see currencyCode, KCurrency::currencySymbols +- */ +- void setCurrencySymbol(const QString & symbol); +- +- /** +- * +- * Set digit characters used to display monetary values. +- * +- * @param digitSet the digit set identifier +- * @see DigitSet +- */ +- void setMonetaryDigitSet(DigitSet digitSet); +- +- /** +- * Returns the preferred page size for printing. +- * +- * @return The preferred page size, cast it to QPrinter::PageSize +- */ +- int pageSize() const; +- +- /** +- * Changes the preferred page size when printing. +- * +- * @param paperFormat the new preferred page size in the format QPrinter::PageSize +- */ +- void setPageSize(int paperFormat); +- +- /** +- * The Metric system will give you information in mm, while the +- * Imperial system will give you information in inches. +- */ +- enum MeasureSystem { +- Metric, ///< Metric system (used e.g. in Europe) +- Imperial ///< Imperial system (used e.g. in the United States) +- }; +- +- /** +- * Returns which measuring system we use. +- * +- * @return The preferred measuring system +- */ +- MeasureSystem measureSystem() const; +- +- /** +- * Changes the preferred measuring system. +- * +- * @return value The preferred measuring system +- */ +- void setMeasureSystem(MeasureSystem value); +- +- /** +- * Translates a message as a QTranslator is supposed to. +- * The parameters are similar to i18n(), but the result +- * value has other semantics (it can be QString()) +- */ +- Q_INVOKABLE QString translateQt(const char *context, const char *sourceText, const char *comment) const; +- +- /** +- * Provides list of all known language codes. +- * +- * Use languageCodeToName(language) to get human readable, localized +- * language names. +- * +- * @return list of all language codes +- * +- * @see languageCodeToName +- * @see installedLanguages +- */ +- QStringList allLanguagesList() const; +- +- /** +- * +- * Provides list of all installed KDE Language Translations. +- * +- * Use languageCodeToName(language) to get human readable, localized +- * language names. +- * +- * @return list of all installed language codes +- * +- * @see languageCodeToName +- */ +- QStringList installedLanguages() const; +- +- /** +- * Convert a known language code to a human readable, localized form. +- * If an unknown language code is supplied, empty string is returned; +- * this will never happen if the code has been obtained by one of the +- * KLocale methods. +- * +- * @param language the language code +- * +- * @return the human readable and localized form if the code is known, +- * empty otherwise +- * +- * @see language +- * @see languageList +- * @see allLanguagesList +- * @see installedLanguages +- */ +- Q_INVOKABLE QString languageCodeToName(const QString &language) const; +- +- /** +- * Provides list of all known country codes. +- * +- * Use countryCodeToName(country) to get human readable, localized +- * country names. +- * +- * @return a list of all country codes +- * +- * @see countryCodeToName +- */ +- QStringList allCountriesList() const; +- +- /** +- * Convert a known country code to a human readable, localized form. +- * +- * If an unknown country code is supplied, empty string is returned; +- * this will never happen if the code has been obtained by one of the +- * KLocale methods. +- * +- * @param country the country code +- * +- * @return the human readable and localized form of the country name +- * +- * @see country +- * @see allCountriesList +- */ +- Q_INVOKABLE QString countryCodeToName(const QString &country) const; +- +- /** +- * Parses locale string into distinct parts. +- * The format of locale is language_COUNTRY@modifier.CHARSET +- * +- * @param locale the locale string to split +- * @param language set to the language part of the locale +- * @param country set to the country part of the locale +- * @param modifier set to the modifer part of the locale +- * @param charset set to the charset part of the locale +- */ +- Q_INVOKABLE void splitLocale(const QString &locale, QString &language, QString &country, +- QString &modifier, QString &charset); +- +- /** +- * Returns the name of the internal language. +- * +- * @return Name of the default language +- */ +- QString defaultLanguage(); +- +- /** +- * Returns the code of the default country, i.e. "C" +- * +- * This function will not provide a sensible value to use in your app, +- * please use country() instead. +- * +- * @see country +- * +- * @return Name of the default country +- */ +- QString defaultCountry(); +- +- /** +- * +- * Returns the ISO Code of the default currency. +- * +- * @return ISO Currency Code of the default currency +- */ +- QString defaultCurrencyCode(); +- +- /** +- * Reports whether evaluation of translation scripts is enabled. +- * +- * @return true if script evaluation is enabled, false otherwise. +- */ +- bool useTranscript() const; +- +- /** +- * Checks whether or not the active catalog is found for the given language. +- * +- * @param language language to check +- */ +- Q_INVOKABLE bool isApplicationTranslatedInto(const QString & language); +- +- /** +- * +- * Sets the Country Division Code of the Country where the user lives. +- * +- * The code must comply with the ISO 3166-2 standard. +- * See http://en.wikipedia.org/wiki/ISO_3166-2 for details. +- * +- * In KDE 4.6 it is the apps responsibility to validate the input, +- * full validation and other services will be provided in KDE 4.7. +- * +- * @param countryDivision the Country Division Code for the user +- * @return @c true on success, @c false on failure +- * @see countryDivisionCode +- */ +- bool setCountryDivisionCode(const QString & countryDivision); +- +- /** +- * +- * Removes accelerator marker from a UI text label. +- * +- * Accelerator marker is not always a plain ampersand (&), +- * so it is not enough to just remove it by @c QString::remove(). +- * The label may contain escaped markers ("&&") which must be resolved +- * and skipped, as well as CJK-style markers ("Foo (&F)") where +- * the whole parenthesis construct should be removed. +- * Therefore always use this function to remove accelerator marker +- * from UI labels. +- * +- * @param label UI label which may contain an accelerator marker +- * @return label without the accelerator marker +- */ +- Q_INVOKABLE QString removeAcceleratorMarker(const QString &label) const; +- +- /** +- * +- * Convert all digits in the string to the given digit set. +- * +- * Conversion is normally not performed if the given digit set +- * is not appropriate in the current locale and language context. +- * Unconditional conversion may be requested by setting +- * @p ignoreContext to @c true. +- * +- * @param str the string to convert +- * @param digitSet the digit set identifier +- * @param ignoreContext unconditional conversion if @c true +- * +- * @return string with converted digits +- * +- * @see DigitSet +- */ +- Q_INVOKABLE QString convertDigits(const QString &str, DigitSet digitSet, +- bool ignoreContext = false) const; +- +- /** +- * +- * Reparse locale configuration files for the current selected +- * language. +- */ +- Q_INVOKABLE void reparseConfiguration(); +- +-private: +- KLocale *m_locale; +- +-Q_SIGNALS: +- void binaryUnitDialectChanged(); +- void calendarSystemChanged(); +- void countryDivisionCodeChanged(); +- void currencyCodeChanged(); +- void decimalSymbolChanged(); +- void currencySymbolChanged(); +- void dateFormatChanged(); +- void dateFormatShortChanged(); +- void dateMonthNamePossessiveChanged(); +- void dateTimeDigitSetChanged(); +- void decimalPlacesChanged(); +- void digitSetChanged(); +- void measureSystemChanged(); +- void monetaryDecimalPlacesChanged(); +- void monetaryDecimalSymbolChanged(); +- void monetaryDigitSetChanged(); +- void monetaryThousandsSeparatorChanged(); +- void negativeMonetarySignPositionChanged(); +- void negativePrefixCurrencySymbolChanged(); +- void negativeSignChanged(); +- void pageSizeChanged(); +- void positiveMonetarySignPositionChanged(); +- void positivePrefixCurrencySymbolChanged(); +- void positiveSignChanged(); +- void thousandsSeparatorChanged(); +- void timeFormatChanged(); +- void weekDayOfPrayChanged(); +- void WeekNumberSystemChanged(); +- void weekStartDayChanged(); +- void workingWeekEndDayChanged(); +- void workingWeekStartDayChanged(); +-}; +- +-#endif diff --git a/kde4-kdebase-runtime.spec b/kde4-kdebase-runtime.spec index 28d1422..6ecc54f 100644 --- a/kde4-kdebase-runtime.spec +++ b/kde4-kdebase-runtime.spec @@ -12,7 +12,7 @@ Summary: KDE 4 base runtime components Summary(pl.UTF-8): Komponenty uruchomieniowe podstawowej części KDE 4 Name: kde4-kdebase-runtime Version: 4.9.0 -Release: 0.1 +Release: 1 License: GPL Group: X11/Applications Source0: ftp://ftp.kde.org/pub/kde/%{_state}/%{version}/src/%{orgname}-%{version}.tar.xz @@ -22,6 +22,7 @@ Source1: kdebase-searchproviders.tar.bz2 Source2: l10n-iso639-1 Patch100: %{name}-branch.diff Patch0: %{name}-rpc.patch +Patch1: %{name}-locale.patch URL: http://www.kde.org/ BuildRequires: OpenEXR-devel BuildRequires: alsa-lib-devel @@ -96,6 +97,7 @@ Wtyczki KDE 4 dla Phonona. %setup -q -n %{orgname}-%{version} -a1 #%patch100 -p1 %patch0 -p1 +%patch1 -p1 %build install -d build @@ -170,12 +172,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/kuiserver %attr(755,root,root) %{_bindir}/kwriteconfig %attr(755,root,root) %{_bindir}/solid-hardware -%attr(755,root,root) %{_bindir}/nepomuk-simpleresource-rcgen -%attr(755,root,root) %{_bindir}/nepomukbackup %attr(755,root,root) %{_bindir}/nepomukcontroller -%attr(755,root,root) %{_bindir}/nepomukindexer -%attr(755,root,root) %{_bindir}/nepomukserver -%attr(755,root,root) %{_bindir}/nepomukservicestub %attr(755,root,root) %{_bindir}/plasma-remote-helper %attr(755,root,root) %{_bindir}/plasmapkg %attr(755,root,root) %{_libdir}/attica_kde.so @@ -184,13 +181,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libkdeinit4_kuiserver.so %attr(755,root,root) %{_libdir}/libkdeinit4_kwalletd.so %attr(755,root,root) %{_libdir}/libkdeinit4_kglobalaccel.so -%attr(755,root,root) %{_libdir}/libkdeinit4_nepomukserver.so %attr(755,root,root) %{_libdir}/libknotifyplugin.so -%attr(755,root,root) %{_libdir}/libnepomukcommon.so -%attr(755,root,root) %{_libdir}/libnepomukdatamanagement.so.? -%attr(755,root,root) %{_libdir}/libnepomukdatamanagement.so.*.*.* -%attr(755,root,root) %{_libdir}/libnepomuksync.so.? -%attr(755,root,root) %{_libdir}/libnepomuksync.so.*.*.* # Is it ok to add those files to main package? %attr(755,root,root) %ghost %{_libdir}/libkwalletbackend.so.? %attr(755,root,root) %{_libdir}/libkwalletbackend.so.*.*.* @@ -226,6 +217,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/kde4/kded_nepomuksearchmodule.so %attr(755,root,root) %{_libdir}/kde4/kded_networkstatus.so %attr(755,root,root) %{_libdir}/kde4/kded_networkwatcher.so +%attr(755,root,root) %{_libdir}/kde4/kded_recentdocumentsnotifier.so %attr(755,root,root) %{_libdir}/kde4/kded_solidautoeject.so %attr(755,root,root) %{_libdir}/kde4/kio_applications.so %attr(755,root,root) %{_libdir}/kde4/kio_bookmarks.so @@ -242,6 +234,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/kde4/kio_nepomuksearch.so %attr(755,root,root) %{_libdir}/kde4/kio_network.so %attr(755,root,root) %{_libdir}/kde4/kio_nfs.so +%attr(755,root,root) %{_libdir}/kde4/kio_recentdocuments.so %attr(755,root,root) %{_libdir}/kde4/kio_remote.so %attr(755,root,root) %{_libdir}/kde4/kio_settings.so %attr(755,root,root) %{_libdir}/kde4/kio_sftp.so @@ -261,14 +254,6 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/kde4/localdomainurifilter.so %attr(755,root,root) %{_libdir}/kde4/librenaudioplugin.so %attr(755,root,root) %{_libdir}/kde4/librenimageplugin.so -#%attr(755,root,root) %{_libdir}/kde4/nepomukactivitiesservice.so -%attr(755,root,root) %{_libdir}/kde4/nepomukbackupsync.so -%attr(755,root,root) %{_libdir}/kde4/nepomukfilewatch.so -%attr(755,root,root) %{_libdir}/kde4/nepomukfileindexer.so -#%attr(755,root,root) %{_libdir}/kde4/nepomukontologyloader.so -%attr(755,root,root) %{_libdir}/kde4/nepomukqueryservice.so -#%attr(755,root,root) %{_libdir}/kde4/nepomukremovablestorageservice.so -%attr(755,root,root) %{_libdir}/kde4/nepomukstorage.so %attr(755,root,root) %{_libdir}/kde4/plasma-kpart.so %attr(755,root,root) %{_libdir}/kde4/plasma_appletscript_declarative.so %attr(755,root,root) %{_libdir}/kde4/plasma_appletscript_simple_javascript.so @@ -297,13 +282,11 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/kde4/libexec/kioexec #%attr(755,root,root) %{_libdir}/kde4/libexec/klocaldomainurifilterhelper %attr(755,root,root) %{_libdir}/kde4/libexec/knetattach -#%attr(755,root,root) %{_libdir}/strigi/strigiindex_nepomukbackend.so %attr(755,root,root) %{_libdir}/kde4/libexec/kcmremotewidgetshelper %{_sysconfdir}/dbus-1/system.d/org.kde.kcontrol.kcmremotewidgets.conf -%{_desktopdir}/kde4/nepomukbackup.desktop -%{_desktopdir}/kde4/nepomukcontroller.desktop %{_datadir}/dbus-1/system-services/org.kde.kcontrol.kcmremotewidgets.service %{_datadir}/polkit-1/actions/org.kde.kcontrol.kcmremotewidgets.policy +%{_desktopdir}/kde4/nepomukcontroller.desktop %{_datadir}/apps/drkonqi %dir %{_datadir}/apps/kcm_componentchooser %{_datadir}/apps/hardwarenotifications @@ -314,7 +297,6 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/apps/kcm_componentchooser/kcm_wm.desktop %{_datadir}/apps/kcmlocale %{_datadir}/apps/kconf_update/kuriikwsfilter.upd -%{_datadir}/apps/kconf_update/nepomukstrigiservice-migrate.upd %{_datadir}/apps/kde/kde.notifyrc %dir %{_datadir}/apps/kglobalaccel %{_datadir}/apps/kglobalaccel/kglobalaccel.notifyrc @@ -328,13 +310,6 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/apps/konqueror/dirtree/remote/smb-network.desktop %dir %{_datadir}/apps/remoteview %{_datadir}/apps/remoteview/smb-network.desktop -#%dir %{_datadir}/apps/nepomuk -#%dir %{_datadir}/apps/nepomuk/ontologies -#%{_datadir}/apps/nepomuk/ontologies/* -%{_datadir}/apps/fileindexerservice -%{_datadir}/apps/nepomukfilewatch -%dir %{_datadir}/apps/nepomukstorage -%{_datadir}/apps/nepomukstorage/nepomukstorage.notifyrc %{_datadir}/config.kcfg/khelpcenter.kcfg %{_datadir}/config.kcfg/jpegcreatorsettings.kcfg %{_datadir}/config/khotnewstuff.knsrc @@ -397,10 +372,6 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/kde4/services/lzma.protocol %{_datadir}/kde4/services/man.protocol %{_datadir}/kde4/services/nepomuk.protocol -%{_datadir}/kde4/services/nepomukfileindexer.desktop -%{_datadir}/kde4/services/nepomukactivitiesservice.desktop -%{_datadir}/kde4/services/nepomukbackupsync.desktop -%{_datadir}/kde4/services/nepomukremovablestorageservice.desktop %{_datadir}/kde4/services/nfs.protocol %{_datadir}/kde4/services/programs.protocol %{_datadir}/kde4/services/remote.protocol @@ -425,16 +396,11 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/kde4/services/filetypes.desktop %{_datadir}/kde4/services/kded/networkwatcher.desktop %{_datadir}/kde4/services/kded/solidautoeject.desktop +%{_datadir}/kde4/services/kded/recentdocumentsnotifier.desktop %{_datadir}/kde4/services/kglobalaccel.desktop %{_datadir}/kde4/services/network.protocol %{_datadir}/kde4/services/kcm_nepomuk.desktop -%{_datadir}/kde4/services/nepomukfilewatch.desktop -#%{_daetadir}/kde4/services/nepomukmigration1.desktop -%{_datadir}/kde4/services/nepomukontologyloader.desktop -%{_datadir}/kde4/services/nepomukqueryservice.desktop %{_datadir}/kde4/services/nepomuksearch.protocol -%{_datadir}/kde4/services/nepomukstorage.desktop -%{_datadir}/kde4/services/nepomukstrigiservice.desktop %{_datadir}/kde4/services/plasma-containment-newspaper.desktop %{_datadir}/kde4/services/plasma-kpart.desktop %{_datadir}/kde4/services/plasma-packagestructure-javascript-addon.desktop @@ -442,21 +408,16 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/kde4/services/plasma-scriptengine-applet-simple-javascript.desktop %{_datadir}/kde4/services/plasma-scriptengine-dataengine-javascript.desktop %{_datadir}/kde4/services/plasma-scriptengine-runner-javascript.desktop +%{_datadir}/kde4/services/recentdocuments.protocol %{_datadir}/kde4/services/windowsexethumbnail.desktop %{_datadir}/kde4/services/windowsimagethumbnail.desktop %{_datadir}/kde4/servicetypes/knotifynotifymethod.desktop -%{_datadir}/kde4/servicetypes/nepomukservice.desktop %{_datadir}/kde4/servicetypes/plasma-javascriptaddon.desktop %{_datadir}/kde4/servicetypes/searchprovider.desktop %{_datadir}/kde4/servicetypes/thumbcreator.desktop %{_datadir}/desktop-directories %{_datadir}/mime/packages/network.xml %{_datadir}/autostart/nepomukcontroller.desktop -%{_datadir}/autostart/nepomukserver.desktop - -%dir %{_datadir}/ontology/kde -%{_datadir}/ontology/kde/*.ontology -%{_datadir}/ontology/kde/*.trig #%{_datadir}/locale/en_US/* %dir %{_datadir}/locale/l10n @@ -533,11 +494,8 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(644,root,root,755) %{_includedir}/knotify*.h -%{_includedir}/nepomuk %attr(755,root,root) %{_libdir}/libkwalletbackend.so %attr(755,root,root) %{_libdir}/libmolletnetwork.so -%attr(755,root,root) %{_libdir}/libnepomuksync.so -%attr(755,root,root) %{_libdir}/libnepomukdatamanagement.so %{_datadir}/apps/cmake/modules/FindCLucene.cmake %{_datadir}/apps/cmake/modules/FindSLP.cmake -- 2.44.0