File indexing completed on 2025-03-16 12:49:36
0001 /* 0002 Gettext translation file analyzer 0003 0004 SPDX-FileCopyrightText: 2007 Montel Laurent <montel@kde.org> 0005 SPDX-FileCopyrightText: 2009 Jos van den Oever <jos@vandenoever.info> 0006 SPDX-FileCopyrightText: 2014 Nick Shaforostoff <shaforostoff@gmail.com> 0007 0008 SPDX-License-Identifier: LGPL-2.1-or-later 0009 */ 0010 0011 0012 #ifndef POEXTRACTOR_H 0013 #define POEXTRACTOR_H 0014 0015 #include "extractorplugin.h" 0016 0017 namespace KFileMetaData 0018 { 0019 0020 class POExtractor : public ExtractorPlugin 0021 { 0022 Q_OBJECT 0023 Q_PLUGIN_METADATA(IID "org.kde.kf5.kfilemetadata.ExtractorPlugin" 0024 FILE "poextractor.json") 0025 Q_INTERFACES(KFileMetaData::ExtractorPlugin) 0026 0027 public: 0028 explicit POExtractor(QObject* parent = nullptr); 0029 0030 QStringList mimetypes() const override; 0031 void extract(ExtractionResult* result) override; 0032 0033 private: 0034 void endMessage(); 0035 void handleComment(const char* data, quint32 length); 0036 void handleLine(const char* data, quint32 length); 0037 0038 0039 enum PoState {COMMENT, MSGCTXT, MSGID, MSGID_PLURAL, MSGSTR, MSGSTR_PLURAL, 0040 WHITESPACE, ERROR}; 0041 PoState state; 0042 int messages; 0043 int untranslated; 0044 int fuzzy; 0045 bool isFuzzy=false, isTranslated=false; 0046 }; 0047 0048 } 0049 0050 #endif // PLAINTEXTEXTRACTOR_H