Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgstranslationcontext.h 3 : : 4 : : --------------------- 5 : : begin : 23.5.2018 6 : : copyright : (C) 2018 by David Signer 7 : : email : david at opengis dot ch 8 : : *************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : #ifndef QGSTRANSLATIONCONTEXT_H 17 : : #define QGSTRANSLATIONCONTEXT_H 18 : : 19 : : #include "qgis_core.h" 20 : : #include "qgis_sip.h" 21 : : #include <QList> 22 : : #include <QString> 23 : : 24 : : 25 : : class QgsProject; 26 : : 27 : : /** 28 : : * \ingroup core 29 : : * \class QgsTranslationContext 30 : : * \brief Used for the collecting of strings from projects for translation and creation of ts files. 31 : : * 32 : : * \since QGIS 3.4 33 : : */ 34 : : 35 : 0 : class CORE_EXPORT QgsTranslationContext 36 : : { 37 : : 38 : : /** 39 : : * Object that could be translated by the QTranslator with the qm file. 40 : : */ 41 : 0 : struct TranslatableObject 42 : : { 43 : : QString context; //!< In what context the object is used 44 : : QString source; //!< The original text of the object 45 : : }; 46 : : 47 : : public: 48 : : 49 : : /** 50 : : * Constructor 51 : : */ 52 : 0 : QgsTranslationContext() = default; 53 : : 54 : : /** 55 : : * Returns the project 56 : : * \see setProject() 57 : : */ 58 : : QgsProject *project() const; 59 : : 60 : : /** 61 : : * Sets the \a project being translated. 62 : : * 63 : : * \see project() 64 : : */ 65 : : void setProject( QgsProject *project ); 66 : : 67 : : /** 68 : : * Returns the TS fileName 69 : : * \see setFileName() 70 : : */ 71 : : QString fileName() const; 72 : : 73 : : /** 74 : : * Sets the \a fileName of the TS file 75 : : * 76 : : * \see fileName() 77 : : */ 78 : : void setFileName( const QString &fileName ); 79 : : 80 : : /** 81 : : * Registers the \a source to be translated. It's the text of the object needed to be translated. 82 : : * The \a context defines in what context the object is used. Means layer name and sub category of object needed to be translated. 83 : : */ 84 : : void registerTranslation( const QString &context, const QString &source ); 85 : : 86 : : /** 87 : : * Writes the Ts-file 88 : : */ 89 : : void writeTsFile( const QString &locale ); 90 : : 91 : : private: 92 : : 93 : 0 : QgsProject *mProject = nullptr; 94 : : QString mFileName; 95 : : QList < TranslatableObject > mTranslatableObjects; 96 : : 97 : : }; 98 : : 99 : : #endif // QGSTRANSLATIONCONTEXT_H