21 #include "nulllocalizer_p.h"
23 #include <QtCore/QDateTime>
27 NullLocalizer::NullLocalizer() {}
29 NullLocalizer::~NullLocalizer() {}
31 QString NullLocalizer::localizeDate(
const QDate &date,
32 QLocale::FormatType formatType)
const
35 return date.toString();
38 QString NullLocalizer::localizeTime(
const QTime &time,
39 QLocale::FormatType formatType)
const
42 return time.toString();
45 QString NullLocalizer::localizeDateTime(
const QDateTime &dateTime,
46 QLocale::FormatType formatType)
const
49 return dateTime.toString();
52 QString NullLocalizer::localizeNumber(
int number)
const
54 return QString::number(number);
57 QString NullLocalizer::localizeNumber(qreal number)
const
59 return QString::number(number);
62 QString NullLocalizer::localizeMonetaryValue(qreal value,
63 const QString ¤cyCode)
const
65 Q_UNUSED(currencyCode)
66 return QString::number(value);
69 static void replacePercentN(
QString *result,
int n)
74 while ((percentPos = result->indexOf(QLatin1Char(
'%'), percentPos + len))
78 if (result->at(percentPos + len) == QLatin1Char(
'L')) {
80 fmt = QStringLiteral(
"%L1");
82 fmt = QStringLiteral(
"%1");
84 if (result->at(percentPos + len) == QLatin1Char(
'n')) {
87 result->replace(percentPos, len, fmt);
95 const QVariantList &arguments)
98 Q_FOREACH (
const QVariant &arg, arguments) {
99 if (arg.userType() == qMetaTypeId<int>())
100 string =
string.arg(arg.value<
int>());
101 else if (arg.userType() == qMetaTypeId<double>())
102 string =
string.arg(arg.value<
double>());
103 else if (arg.userType() == qMetaTypeId<QDateTime>())
104 string =
string.arg(arg.toDateTime().toString());
106 string =
string.arg(arg.toString());
112 NullLocalizer::localizeContextString(
const QString &
string,
114 const QVariantList &arguments)
const
117 return substituteArguments(
string, arguments);
120 QString NullLocalizer::localizePluralContextString(
122 const QVariantList &_arguments)
const
125 const auto count = _arguments.first().value<
int>();
126 auto arguments = _arguments;
127 auto string = _string;
128 auto pluralForm = _pluralForm;
129 if (_string.contains(QStringLiteral(
"%n"))) {
130 arguments.removeFirst();
131 replacePercentN(&
string, count);
132 replacePercentN(&pluralForm, count);
134 return count > 0 ? substituteArguments(pluralForm, arguments)
135 : substituteArguments(string, arguments);
139 const QVariantList &arguments)
const
141 return substituteArguments(
string, arguments);
145 NullLocalizer::localizePluralString(
const QString &_string,
147 const QVariantList &_arguments)
const
149 const auto count = _arguments.first().value<
int>();
150 auto arguments = _arguments;
151 auto string = _string;
152 auto pluralForm = _pluralForm;
153 if (_string.contains(QStringLiteral(
"%n"))) {
154 arguments.removeFirst();
155 replacePercentN(&
string, count);
156 replacePercentN(&pluralForm, count);
158 return count > 0 ? substituteArguments(pluralForm, arguments)
159 : substituteArguments(string, arguments);
162 QString NullLocalizer::currentLocale()
const {
return QString(); }
164 void NullLocalizer::pushLocale(
const QString &localeName)
169 void NullLocalizer::popLocale() {}
171 void NullLocalizer::loadCatalog(
const QString &path,
const QString &catalog)
177 void NullLocalizer::unloadCatalog(
const QString &catalog) { Q_UNUSED(catalog) }
The Cutelee namespace holds all public Cutelee API.