File indexing completed on 2025-02-09 04:28:36
0001 /* 0002 This file is part of the KTextTemplate library 0003 0004 SPDX-FileCopyrightText: 2010 Stephen Kelly <steveire@gmail.com> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 0008 */ 0009 0010 #ifndef I18NCPNODE_H 0011 #define I18NCPNODE_H 0012 0013 #include "node.h" 0014 0015 namespace KTextTemplate 0016 { 0017 class Parser; 0018 } 0019 0020 using namespace KTextTemplate; 0021 0022 class I18ncpNodeFactory : public AbstractNodeFactory 0023 { 0024 Q_OBJECT 0025 public: 0026 I18ncpNodeFactory(); 0027 0028 Node *getNode(const QString &tagContent, Parser *p) const override; 0029 }; 0030 0031 class I18ncpVarNodeFactory : public AbstractNodeFactory 0032 { 0033 Q_OBJECT 0034 public: 0035 I18ncpVarNodeFactory(); 0036 0037 Node *getNode(const QString &tagContent, Parser *p) const override; 0038 }; 0039 0040 class I18ncpNode : public Node 0041 { 0042 Q_OBJECT 0043 public: 0044 I18ncpNode(const QString &contextText, const QString &sourceText, const QString &pluralTex, const QList<FilterExpression> &feList, QObject *parent = {}); 0045 void render(OutputStream *stream, Context *c) const override; 0046 0047 private: 0048 QString m_contextText; 0049 QString m_sourceText; 0050 QString m_pluralText; 0051 QList<FilterExpression> m_filterExpressionList; 0052 }; 0053 0054 class I18ncpVarNode : public Node 0055 { 0056 Q_OBJECT 0057 public: 0058 I18ncpVarNode(const QString &contextText, 0059 const QString &sourceText, 0060 const QString &pluralText, 0061 const QList<FilterExpression> &feList, 0062 const QString &resultName, 0063 QObject *parent = {}); 0064 void render(OutputStream *stream, Context *c) const override; 0065 0066 private: 0067 QString m_contextText; 0068 QString m_sourceText; 0069 QString m_pluralText; 0070 QList<FilterExpression> m_filterExpressionList; 0071 QString m_resultName; 0072 }; 0073 0074 #endif