Cutelee  6.1.0
abstractlocalizer.h
1 /*
2  This file is part of the Cutelee template system.
3 
4  Copyright (c) 2010 Stephen Kelly <steveire@gmail.com>
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public
8  License as published by the Free Software Foundation; either version
9  2.1 of the Licence, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public
17  License along with this library. If not, see <http://www.gnu.org/licenses/>.
18 
19 */
20 
21 #ifndef CUTELEE_ABSTRACTLOCALIZER_H
22 #define CUTELEE_ABSTRACTLOCALIZER_H
23 
24 #include "cutelee_templates_export.h"
25 
26 #include <QtCore/QLocale>
27 #include <QtCore/QVariantList>
28 
29 class QDateTime;
30 
31 namespace Cutelee
32 {
33 
42 class CUTELEE_TEMPLATES_EXPORT AbstractLocalizer
43 {
44 public:
49 
53  virtual ~AbstractLocalizer();
54 
61  virtual QString localize(const QVariant &variant) const;
62 
66  virtual QString currentLocale() const = 0;
67 
71  virtual void pushLocale(const QString &localeName) = 0;
72 
76  virtual void popLocale() = 0;
77 
81  virtual void loadCatalog(const QString &path, const QString &catalog) = 0;
82 
86  virtual void unloadCatalog(const QString &catalog) = 0;
87 
91  virtual QString localizeNumber(int number) const = 0;
92 
96  virtual QString localizeNumber(qreal number) const = 0;
97 
102  virtual QString localizeMonetaryValue(qreal value, const QString &currencyCode
103  = {}) const = 0;
104 
108  virtual QString localizeDate(const QDate &date,
109  QLocale::FormatType formatType
110  = QLocale::ShortFormat) const = 0;
111 
115  virtual QString localizeTime(const QTime &time,
116  QLocale::FormatType formatType
117  = QLocale::ShortFormat) const = 0;
118 
122  virtual QString localizeDateTime(const QDateTime &dateTime,
123  QLocale::FormatType formatType
124  = QLocale::ShortFormat) const = 0;
125 
129  virtual QString localizeString(const QString &string,
130  const QVariantList &arguments = {}) const = 0;
131 
136  virtual QString
137  localizeContextString(const QString &string, const QString &context,
138  const QVariantList &arguments = {}) const = 0;
139 
144  virtual QString
145  localizePluralString(const QString &string, const QString &pluralForm,
146  const QVariantList &arguments = {}) const = 0;
147 
152  virtual QString
153  localizePluralContextString(const QString &string, const QString &pluralForm,
154  const QString &context,
155  const QVariantList &arguments = {}) const = 0;
156 
157 private:
158  Q_DISABLE_COPY(AbstractLocalizer)
159 };
160 }
161 
162 #endif
Interface for implementing an internationalization system.
virtual void loadCatalog(const QString &path, const QString &catalog)=0
virtual void popLocale()=0
virtual QString currentLocale() const =0
virtual QString localizePluralString(const QString &string, const QString &pluralForm, const QVariantList &arguments={}) const =0
virtual void unloadCatalog(const QString &catalog)=0
virtual QString localizeDate(const QDate &date, QLocale::FormatType formatType=QLocale::ShortFormat) const =0
virtual QString localizeMonetaryValue(qreal value, const QString &currencyCode={}) const =0
virtual QString localizeNumber(qreal number) const =0
virtual QString localizeNumber(int number) const =0
virtual void pushLocale(const QString &localeName)=0
virtual QString localizePluralContextString(const QString &string, const QString &pluralForm, const QString &context, const QVariantList &arguments={}) const =0
virtual QString localizeTime(const QTime &time, QLocale::FormatType formatType=QLocale::ShortFormat) const =0
virtual QString localizeContextString(const QString &string, const QString &context, const QVariantList &arguments={}) const =0
virtual QString localizeDateTime(const QDateTime &dateTime, QLocale::FormatType formatType=QLocale::ShortFormat) const =0
virtual QString localizeString(const QString &string, const QVariantList &arguments={}) const =0
The Cutelee namespace holds all public Cutelee API.
Definition: Mainpage.dox:8