File indexing completed on 2024-05-12 05:15:01
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Daniel Vrátil <dvratil@redhat.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 * 0006 */ 0007 0008 #pragma once 0009 #include <KTextTemplate/QtLocalizer> 0010 #include <QObject> 0011 0012 #include <QLocale> 0013 0014 class KLocalizedString; 0015 class GrantleeKi18nLocalizer : public KTextTemplate::QtLocalizer 0016 { 0017 public: 0018 explicit GrantleeKi18nLocalizer(); 0019 ~GrantleeKi18nLocalizer() override; 0020 0021 // Only reimplement string localization to use KLocalizedString instead of 0022 // tr(), the remaining methods use QLocale internally, so we can reuse them 0023 [[nodiscard]] QString localizeContextString(const QString &string, const QString &context, const QVariantList &arguments) const override; 0024 [[nodiscard]] QString localizeString(const QString &string, const QVariantList &arguments) const override; 0025 [[nodiscard]] QString 0026 localizePluralContextString(const QString &string, const QString &pluralForm, const QString &context, const QVariantList &arguments) const override; 0027 [[nodiscard]] QString localizePluralString(const QString &string, const QString &pluralForm, const QVariantList &arguments) const override; 0028 0029 // Only exception, Grantlee's implementation is not using QLocale for this 0030 // for some reason 0031 [[nodiscard]] QString localizeMonetaryValue(qreal value, const QString ¤ctCode) const override; 0032 0033 private: 0034 [[nodiscard]] QString processArguments(const KLocalizedString &str, const QVariantList &arguments) const; 0035 };