Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
trparser.h
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef TRPARSER_H
5#define TRPARSER_H
6#include <QtCore/QTranslator>
7#include <QHash>
8
10
11class Translator;
12class ConversionData;
13
29
30Q_DECLARE_FLAGS(UpdateOptions, UpdateOption)
31Q_DECLARE_OPERATORS_FOR_FLAGS(UpdateOptions)
32
33void loadCPP(Translator &translator, const QStringList &filenames, ConversionData &cd);
34bool loadJava(Translator &translator, const QString &filename, ConversionData &cd);
35bool loadPython(Translator &translator, const QString &fileName, ConversionData &cd);
36bool loadUI(Translator &translator, const QString &filename, ConversionData &cd);
37
38#ifndef QT_NO_QML
39bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd);
40bool loadJSModule(Translator &translator, const QString &filename, ConversionData &cd);
41bool loadQml(Translator &translator, const QString &filename, ConversionData &cd);
42#endif
43
44void processSources(Translator &fetchedTor, const QStringList &sourceFiles, ConversionData &cd);
45
46Translator merge(const Translator &tor, const Translator &virginTor,
47 const QList<Translator> &aliens, UpdateOptions options, QString &err);
48
49QString transcode(const QString &str);
50
51#define LUPDATE_FOR_EACH_TR_FUNCTION(UNARY_MACRO)
52 /* from cpp.cpp */
53 UNARY_MACRO(Q_DECLARE_TR_FUNCTIONS)
54 UNARY_MACRO(QT_TR_N_NOOP)
55 UNARY_MACRO(QT_TRID_N_NOOP)
56 UNARY_MACRO(QT_TRANSLATE_N_NOOP)
57 UNARY_MACRO(QT_TRANSLATE_N_NOOP3)
58 UNARY_MACRO(QT_TR_NOOP)
59 UNARY_MACRO(QT_TRID_NOOP)
60 UNARY_MACRO(QT_TRANSLATE_NOOP)
61 UNARY_MACRO(QT_TRANSLATE_NOOP3)
62 UNARY_MACRO(QT_TR_NOOP_UTF8)
63 UNARY_MACRO(QT_TRANSLATE_NOOP_UTF8)
64 UNARY_MACRO(QT_TRANSLATE_NOOP3_UTF8)
65 UNARY_MACRO(findMessage) /* QTranslator::findMessage() has the same parameters as \
66 QApplication::translate() */
67 UNARY_MACRO(qtTrId)
68 UNARY_MACRO(tr)
69 UNARY_MACRO(trUtf8)
70 UNARY_MACRO(translate)
71 /* from qdeclarative.cpp: */
72 UNARY_MACRO(qsTr)
73 UNARY_MACRO(qsTrId)
74 UNARY_MACRO(qsTranslate)
75 /*end*/
76
77int trFunctionByDefaultName(const QString &trFunctionName);
79bool parseTrFunctionAliasString(const QString &aliasString);
81class TrFunctionAliasManager
82{
83public:
84 TrFunctionAliasManager();
85 ~TrFunctionAliasManager();
87 enum TrFunction {
88 // need to uglify names b/c most of the names are themselves macros:
89#define MAKE_ENTRY(F) Function_##F,
91#undef MAKE_ENTRY
92 NumTrFunctions
93 };
95 using NameToTrFunctionMap = QHash<QString, TrFunction>;
97 enum Operation { AddAlias, SetAlias };
98
99 int trFunctionByName(const QString &trFunctionName) const;
100
101 void modifyAlias(int trFunction, const QString &alias, Operation op);
103 bool isAliasFor(const QString &identifier, TrFunction trFunction) const
104 {
105 return m_trFunctionAliases[trFunction].contains(identifier);
106 }
107
108 QStringList availableFunctionsWithAliases() const;
109 QStringList listAliases() const;
110
111 const NameToTrFunctionMap &nameToTrFunctionMap() const;
112
113private:
114 void ensureTrFunctionHashUpdated() const;
115
116private:
117 QStringList m_trFunctionAliases[NumTrFunctions];
118 mutable NameToTrFunctionMap m_nameToTrFunctionMap;
119};
120
121extern TrFunctionAliasManager trFunctionAliasManager;
122
123QT_END_NAMESPACE
124
125#endif // TRPARSER_H
bool m_sourceIsUtf16
Definition translator.h:44
bool transformTsFiles(const QStringList &translations, bool sortMessages)
FileTransformer(RecordDirectory &records, bool labels, bool quiet)
bool updateTsFiles(const QStringList &translations)
static const QSet< QString > otherExtensions
static const QSet< QString > cppExtensions
void verifySources(const QStringList &sources, ConversionData &cd)
FileVerifier(const RecordDirectory &records, bool quiet)
bool verifyTs(const QString &tsFile, QSet< QString > &transformedIds)
QString sourceText
bool operator==(const MessageItem &mi) const noexcept
Combined button and popup list for selecting options.
QStringList readLines(const QString &filename)
Definition utils.cpp:54
void printOut(const QString &out)
Definition utils.cpp:22
void printErr(const QString &out)
Definition utils.cpp:17
void writeLines(const QString &filename, const QStringList &lines)
Definition utils.cpp:65
QString getIndentation(const QString &line)
Definition utils.cpp:43
QMultiHash< QString, QString > getIncludeOptions(const QFileInfo &root, const QStringList &paths)
Definition utils.cpp:27
const char * meta_id_key
int main(int argc, char *argv[])
[ctor_close]
bool operator()(const std::shared_ptr< MessageItem > &lhs, const std::shared_ptr< MessageItem > &rhs) const noexcept
std::size_t operator()(const MessageItem &key) const
int trFunctionByDefaultName(const QString &trFunctionName)
Definition trparser.cpp:164
QStringList availableFunctions()
Definition trparser.cpp:155
TrFunctionAliasManager trFunctionAliasManager
Definition trparser.cpp:153
bool parseTrFunctionAliasString(const QString &aliasString)
Definition trparser.cpp:177
void processSources(Translator &fetchedTor, const QStringList &sourceFiles, ConversionData &cd)
Definition trparser.cpp:31
bool loadJSModule(Translator &translator, const QString &filename, ConversionData &cd)
QString transcode(const QString &str)
Definition trparser.cpp:77
Translator merge(const Translator &tor, const Translator &virginTor, const QList< Translator > &aliens, UpdateOptions options, QString &err)
Definition merge.cpp:81
#define LUPDATE_FOR_EACH_TR_FUNCTION(UNARY_MACRO)
Definition trparser.h:51
bool loadJava(Translator &translator, const QString &filename, ConversionData &cd)
Definition java.cpp:562
bool loadQml(Translator &translator, const QString &filename, ConversionData &cd)
bool loadPython(Translator &translator, const QString &fileName, ConversionData &cd)
Definition python.cpp:749
bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd)
UpdateOption
Definition trparser.h:14
@ NoLocations
Definition trparser.h:23
@ SortMessages
Definition trparser.h:27
@ Verbose
Definition trparser.h:15
@ NoObsolete
Definition trparser.h:16
@ PluralOnly
Definition trparser.h:17
@ Werror
Definition trparser.h:26
@ NoSort
Definition trparser.h:18
@ HeuristicSimilarText
Definition trparser.h:20
@ SourceIsUtf16
Definition trparser.h:25
@ HeuristicSameText
Definition trparser.h:19
@ AbsoluteLocations
Definition trparser.h:21
@ RelativeLocations
Definition trparser.h:22
@ NoUiLines
Definition trparser.h:24
bool loadUI(Translator &translator, const QString &filename, ConversionData &cd)
Definition ui.cpp:156