1 | /* |
2 | SPDX-FileCopyrightText: 2011 Marco Martin <mart@kde.org> |
3 | SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@kde.org> |
4 | |
5 | SPDX-License-Identifier: LGPL-2.0-or-later |
6 | */ |
7 | |
8 | #ifndef KLOCALIZEDCONTEXT_H |
9 | #define KLOCALIZEDCONTEXT_H |
10 | |
11 | #include <ki18n_export.h> |
12 | |
13 | #if KI18N_ENABLE_DEPRECATED_SINCE(6, 8) |
14 | #include <QObject> |
15 | #include <QVariant> |
16 | |
17 | /*! |
18 | * \class KLocalizedContext |
19 | * \inmodule KI18n |
20 | * |
21 | * \brief This class is meant to be used to simplify integration of the KI18n framework |
22 | * in QML. |
23 | * |
24 | * The way to do so, is by creating this object and setting it as a context |
25 | * object: |
26 | * |
27 | * \code |
28 | * QQuickView* view = new QQuickView; |
29 | * view.engine()->rootContext()->setContextObject(new KLocalizedContext(view)); |
30 | * \endcode |
31 | * |
32 | * Then i18n*() and xi18n*() functions should be available for use from the code |
33 | * loaded in the engine, for the view. |
34 | * |
35 | * \note Plural functions differ from the C/C++ version. On QML/JS we can get a |
36 | * real value easily. To solve warnings on those cases we'll cast the first argument |
37 | * to make sure it's taken into account for the plural. |
38 | * |
39 | * \since 5.17 |
40 | * \deprecated[6.8] |
41 | * |
42 | * Use KLocalizedQmlContext or KLocalization::setupLocalizedContext |
43 | * instead. |
44 | */ |
45 | KI18N_DEPRECATED_VERSION(6, 8, "use KLocalizedQmlContext or KLocalization::setupLocalizedContext() from KF6::I18nQml instead" ) |
46 | class KI18N_EXPORT KLocalizedContext : public QObject |
47 | { |
48 | Q_OBJECT |
49 | |
50 | /*! |
51 | * \property KLocalizedContext::translationDomain |
52 | * |
53 | * This property only needs to be specified if the context is being run on a library. |
54 | * in an application there is no need to set the translation domain as the application's |
55 | * domain can be used. |
56 | */ |
57 | Q_PROPERTY(QString translationDomain READ translationDomain WRITE setTranslationDomain NOTIFY translationDomainChanged) |
58 | |
59 | public: |
60 | /*! |
61 | * |
62 | */ |
63 | explicit KLocalizedContext(QObject *parent = nullptr); |
64 | ~KLocalizedContext() override; |
65 | |
66 | /*! |
67 | * |
68 | */ |
69 | QString translationDomain() const; |
70 | |
71 | /*! |
72 | * |
73 | */ |
74 | void setTranslationDomain(const QString &domain); |
75 | |
76 | Q_INVOKABLE QString i18n(const QString &message, |
77 | const QVariant ¶m1 = QVariant(), |
78 | const QVariant ¶m2 = QVariant(), |
79 | const QVariant ¶m3 = QVariant(), |
80 | const QVariant ¶m4 = QVariant(), |
81 | const QVariant ¶m5 = QVariant(), |
82 | const QVariant ¶m6 = QVariant(), |
83 | const QVariant ¶m7 = QVariant(), |
84 | const QVariant ¶m8 = QVariant(), |
85 | const QVariant ¶m9 = QVariant(), |
86 | const QVariant ¶m10 = QVariant()) const; |
87 | |
88 | Q_INVOKABLE QString i18nc(const QString &context, |
89 | const QString &message, |
90 | const QVariant ¶m1 = QVariant(), |
91 | const QVariant ¶m2 = QVariant(), |
92 | const QVariant ¶m3 = QVariant(), |
93 | const QVariant ¶m4 = QVariant(), |
94 | const QVariant ¶m5 = QVariant(), |
95 | const QVariant ¶m6 = QVariant(), |
96 | const QVariant ¶m7 = QVariant(), |
97 | const QVariant ¶m8 = QVariant(), |
98 | const QVariant ¶m9 = QVariant(), |
99 | const QVariant ¶m10 = QVariant()) const; |
100 | |
101 | Q_INVOKABLE QString i18np(const QString &singular, |
102 | const QString &plural, |
103 | const QVariant ¶m1 = QVariant(), |
104 | const QVariant ¶m2 = QVariant(), |
105 | const QVariant ¶m3 = QVariant(), |
106 | const QVariant ¶m4 = QVariant(), |
107 | const QVariant ¶m5 = QVariant(), |
108 | const QVariant ¶m6 = QVariant(), |
109 | const QVariant ¶m7 = QVariant(), |
110 | const QVariant ¶m8 = QVariant(), |
111 | const QVariant ¶m9 = QVariant(), |
112 | const QVariant ¶m10 = QVariant()) const; |
113 | |
114 | Q_INVOKABLE QString i18ncp(const QString &context, |
115 | const QString &singular, |
116 | const QString &plural, |
117 | const QVariant ¶m1 = QVariant(), |
118 | const QVariant ¶m2 = QVariant(), |
119 | const QVariant ¶m3 = QVariant(), |
120 | const QVariant ¶m4 = QVariant(), |
121 | const QVariant ¶m5 = QVariant(), |
122 | const QVariant ¶m6 = QVariant(), |
123 | const QVariant ¶m7 = QVariant(), |
124 | const QVariant ¶m8 = QVariant(), |
125 | const QVariant ¶m9 = QVariant(), |
126 | const QVariant ¶m10 = QVariant()) const; |
127 | |
128 | Q_INVOKABLE QString i18nd(const QString &domain, |
129 | const QString &message, |
130 | const QVariant ¶m1 = QVariant(), |
131 | const QVariant ¶m2 = QVariant(), |
132 | const QVariant ¶m3 = QVariant(), |
133 | const QVariant ¶m4 = QVariant(), |
134 | const QVariant ¶m5 = QVariant(), |
135 | const QVariant ¶m6 = QVariant(), |
136 | const QVariant ¶m7 = QVariant(), |
137 | const QVariant ¶m8 = QVariant(), |
138 | const QVariant ¶m9 = QVariant(), |
139 | const QVariant ¶m10 = QVariant()) const; |
140 | |
141 | Q_INVOKABLE QString i18ndc(const QString &domain, |
142 | const QString &context, |
143 | const QString &message, |
144 | const QVariant ¶m1 = QVariant(), |
145 | const QVariant ¶m2 = QVariant(), |
146 | const QVariant ¶m3 = QVariant(), |
147 | const QVariant ¶m4 = QVariant(), |
148 | const QVariant ¶m5 = QVariant(), |
149 | const QVariant ¶m6 = QVariant(), |
150 | const QVariant ¶m7 = QVariant(), |
151 | const QVariant ¶m8 = QVariant(), |
152 | const QVariant ¶m9 = QVariant(), |
153 | const QVariant ¶m10 = QVariant()) const; |
154 | |
155 | Q_INVOKABLE QString i18ndp(const QString &domain, |
156 | const QString &singular, |
157 | const QString &plural, |
158 | const QVariant ¶m1 = QVariant(), |
159 | const QVariant ¶m2 = QVariant(), |
160 | const QVariant ¶m3 = QVariant(), |
161 | const QVariant ¶m4 = QVariant(), |
162 | const QVariant ¶m5 = QVariant(), |
163 | const QVariant ¶m6 = QVariant(), |
164 | const QVariant ¶m7 = QVariant(), |
165 | const QVariant ¶m8 = QVariant(), |
166 | const QVariant ¶m9 = QVariant(), |
167 | const QVariant ¶m10 = QVariant()) const; |
168 | |
169 | Q_INVOKABLE QString i18ndcp(const QString &domain, |
170 | const QString &context, |
171 | const QString &singular, |
172 | const QString &plural, |
173 | const QVariant ¶m1 = QVariant(), |
174 | const QVariant ¶m2 = QVariant(), |
175 | const QVariant ¶m3 = QVariant(), |
176 | const QVariant ¶m4 = QVariant(), |
177 | const QVariant ¶m5 = QVariant(), |
178 | const QVariant ¶m6 = QVariant(), |
179 | const QVariant ¶m7 = QVariant(), |
180 | const QVariant ¶m8 = QVariant(), |
181 | const QVariant ¶m9 = QVariant(), |
182 | const QVariant ¶m10 = QVariant()) const; |
183 | |
184 | Q_INVOKABLE QString xi18n(const QString &message, |
185 | const QVariant ¶m1 = QVariant(), |
186 | const QVariant ¶m2 = QVariant(), |
187 | const QVariant ¶m3 = QVariant(), |
188 | const QVariant ¶m4 = QVariant(), |
189 | const QVariant ¶m5 = QVariant(), |
190 | const QVariant ¶m6 = QVariant(), |
191 | const QVariant ¶m7 = QVariant(), |
192 | const QVariant ¶m8 = QVariant(), |
193 | const QVariant ¶m9 = QVariant(), |
194 | const QVariant ¶m10 = QVariant()) const; |
195 | |
196 | Q_INVOKABLE QString xi18nc(const QString &context, |
197 | const QString &message, |
198 | const QVariant ¶m1 = QVariant(), |
199 | const QVariant ¶m2 = QVariant(), |
200 | const QVariant ¶m3 = QVariant(), |
201 | const QVariant ¶m4 = QVariant(), |
202 | const QVariant ¶m5 = QVariant(), |
203 | const QVariant ¶m6 = QVariant(), |
204 | const QVariant ¶m7 = QVariant(), |
205 | const QVariant ¶m8 = QVariant(), |
206 | const QVariant ¶m9 = QVariant(), |
207 | const QVariant ¶m10 = QVariant()) const; |
208 | |
209 | Q_INVOKABLE QString xi18np(const QString &singular, |
210 | const QString &plural, |
211 | const QVariant ¶m1 = QVariant(), |
212 | const QVariant ¶m2 = QVariant(), |
213 | const QVariant ¶m3 = QVariant(), |
214 | const QVariant ¶m4 = QVariant(), |
215 | const QVariant ¶m5 = QVariant(), |
216 | const QVariant ¶m6 = QVariant(), |
217 | const QVariant ¶m7 = QVariant(), |
218 | const QVariant ¶m8 = QVariant(), |
219 | const QVariant ¶m9 = QVariant(), |
220 | const QVariant ¶m10 = QVariant()) const; |
221 | |
222 | Q_INVOKABLE QString xi18ncp(const QString &context, |
223 | const QString &singular, |
224 | const QString &plural, |
225 | const QVariant ¶m1 = QVariant(), |
226 | const QVariant ¶m2 = QVariant(), |
227 | const QVariant ¶m3 = QVariant(), |
228 | const QVariant ¶m4 = QVariant(), |
229 | const QVariant ¶m5 = QVariant(), |
230 | const QVariant ¶m6 = QVariant(), |
231 | const QVariant ¶m7 = QVariant(), |
232 | const QVariant ¶m8 = QVariant(), |
233 | const QVariant ¶m9 = QVariant(), |
234 | const QVariant ¶m10 = QVariant()) const; |
235 | |
236 | Q_INVOKABLE QString xi18nd(const QString &domain, |
237 | const QString &message, |
238 | const QVariant ¶m1 = QVariant(), |
239 | const QVariant ¶m2 = QVariant(), |
240 | const QVariant ¶m3 = QVariant(), |
241 | const QVariant ¶m4 = QVariant(), |
242 | const QVariant ¶m5 = QVariant(), |
243 | const QVariant ¶m6 = QVariant(), |
244 | const QVariant ¶m7 = QVariant(), |
245 | const QVariant ¶m8 = QVariant(), |
246 | const QVariant ¶m9 = QVariant(), |
247 | const QVariant ¶m10 = QVariant()) const; |
248 | |
249 | Q_INVOKABLE QString xi18ndc(const QString &domain, |
250 | const QString &context, |
251 | const QString &message, |
252 | const QVariant ¶m1 = QVariant(), |
253 | const QVariant ¶m2 = QVariant(), |
254 | const QVariant ¶m3 = QVariant(), |
255 | const QVariant ¶m4 = QVariant(), |
256 | const QVariant ¶m5 = QVariant(), |
257 | const QVariant ¶m6 = QVariant(), |
258 | const QVariant ¶m7 = QVariant(), |
259 | const QVariant ¶m8 = QVariant(), |
260 | const QVariant ¶m9 = QVariant(), |
261 | const QVariant ¶m10 = QVariant()) const; |
262 | |
263 | Q_INVOKABLE QString xi18ndp(const QString &domain, |
264 | const QString &singular, |
265 | const QString &plural, |
266 | const QVariant ¶m1 = QVariant(), |
267 | const QVariant ¶m2 = QVariant(), |
268 | const QVariant ¶m3 = QVariant(), |
269 | const QVariant ¶m4 = QVariant(), |
270 | const QVariant ¶m5 = QVariant(), |
271 | const QVariant ¶m6 = QVariant(), |
272 | const QVariant ¶m7 = QVariant(), |
273 | const QVariant ¶m8 = QVariant(), |
274 | const QVariant ¶m9 = QVariant(), |
275 | const QVariant ¶m10 = QVariant()) const; |
276 | |
277 | Q_INVOKABLE QString xi18ndcp(const QString &domain, |
278 | const QString &context, |
279 | const QString &singular, |
280 | const QString &plural, |
281 | const QVariant ¶m1 = QVariant(), |
282 | const QVariant ¶m2 = QVariant(), |
283 | const QVariant ¶m3 = QVariant(), |
284 | const QVariant ¶m4 = QVariant(), |
285 | const QVariant ¶m5 = QVariant(), |
286 | const QVariant ¶m6 = QVariant(), |
287 | const QVariant ¶m7 = QVariant(), |
288 | const QVariant ¶m8 = QVariant(), |
289 | const QVariant ¶m9 = QVariant(), |
290 | const QVariant ¶m10 = QVariant()) const; |
291 | |
292 | Q_SIGNALS: |
293 | void translationDomainChanged(const QString &translationDomain); |
294 | |
295 | private: |
296 | // intentionally not a unique_ptr as this file gets included a lot and using a unique_ptr |
297 | // results in too many template instantiations |
298 | class KLocalizedContextPrivate *const d; |
299 | }; |
300 | |
301 | #endif |
302 | #endif |
303 | |