<QtTranslation>
Zeichenfolgen für die Übersetzung markieren. Mehr...
| Header: | #include <QtTranslation> |
Funktionen
| QString | qtTrId(const char *id, int n = -1) |
Makros
| QT_TRANSLATE_NOOP3(context, sourceText, disambiguation) | |
| QT_TRANSLATE_NOOP(context, sourceText) | |
| QT_TRANSLATE_N_NOOP3(context, sourceText, comment) | |
| QT_TRANSLATE_N_NOOP(context, sourceText) | |
| QT_TRID_NOOP(id) | |
(since 6.3) | QT_TRID_N_NOOP(id) |
| QT_TR_NOOP(sourceText) | |
| QT_TR_N_NOOP(sourceText) |
Siehe auch :Quellcode für die Übersetzung schreiben.
Funktionsdokumentation
QString qtTrId(const char *id, int n = -1)
Die Funktion `qtTrId` sucht eine übersetzte Zeichenkette und gibt sie zurück.
Gibt eine übersetzte Zeichenkette zurück, die durch ` id` identifiziert wird. Wird keine passende Zeichenkette gefunden, wird die ID selbst zurückgegeben. Dies sollte unter normalen Umständen nicht vorkommen.
Ist n >= 0, werden alle Vorkommen von „ %n “ in der resultierenden Zeichenkette durch eine dezimale Darstellung von „ n “ ersetzt. Darüber hinaus kann der Übersetzungstext je nach dem Wert von n variieren.
Metadaten und Kommentare können wie für QObject::tr() dokumentiert übergeben werden. Zudem ist es möglich, eine Vorlage für die Quellzeichenfolge wie folgt anzugeben:
//% <C string>
oder
\begincomment% <C string> \endcomment
Beispiel:
//% "%n fooish bar(s) found.\n"
//% "Do you want to continue?"
QString text = qtTrId("qtn_foo_bar", n);Um QM-Dateien zu erstellen, die für die Verwendung mit dieser Funktion geeignet sind, muss die Option „ -idbased “ an das Tool „ lrelease “ übergeben werden.
Warnung: Diese Methode ist nur dann reentrant, wenn alle Übersetzer vor dem Aufruf dieser Methode installiert sind. Das Installieren oder Entfernen von Übersetzern während der Übersetzung wird nicht unterstützt. Dies führt wahrscheinlich zu Abstürzen oder anderem unerwünschten Verhalten.
Hinweis: Diese Funktion ist reentrant.
Siehe auch „ QObject::tr()“, „ QCoreApplication::translate()“ und „Internationalisierung mit Qt“.
Makro-Dokumentation
QT_TRANSLATE_NOOP3(context, sourceText, disambiguation)
Markiert das UTF-8-kodierte String-Literal „ sourceText “ für die verzögerte Übersetzung in der angegebenen „ context “ mit dem angegebenen „ disambiguation “. Die „ context “ ist in der Regel eine Klasse und muss ebenfalls als String-Literal angegeben werden. Das String-Literal „ disambiguation “ sollte ein kurzes semantisches Tag sein, um ansonsten identische Strings voneinander zu unterscheiden.
Das Makro weist „lupdate“ an, die Zeichenkette zu erfassen, und wird zu einer anonymen Struktur aus den beiden Zeichenfolgenliteralen erweitert, die als „ sourceText “ und „ disambiguation “ übergeben wurden.
Beispiel:
static struct { const char *source; const char *comment; } greeting_strings[] =
{
QT_TRANSLATE_NOOP3("FriendlyConversation", "Hello",
"A really friendly hello"),
QT_TRANSLATE_NOOP3("FriendlyConversation", "Goodbye",
"A really friendly goodbye")
};
QString FriendlyConversation::greeting(int type)
{
return tr(greeting_strings[type].source,
greeting_strings[type].comment);
}
QString global_greeting(int type)
{
return qApp->translate("FriendlyConversation",
greeting_strings[type].source,
greeting_strings[type].comment);
}Siehe auch ` QT_TR_NOOP()`, ` QT_TRANSLATE_NOOP()` und „Internationalisierung mit Qt“.
QT_TRANSLATE_NOOP(context, sourceText)
Markiert das UTF-8-kodierte String-Literal „ sourceText “ für die verzögerte Übersetzung in der angegebenen „ context “. Die „ context “ ist in der Regel ein Klassenname und muss ebenfalls als String-Literal angegeben werden.
Das Makro weist lupdate an, die Zeichenkette zu erfassen, und wird selbst zu „ sourceText “ erweitert.
Beispiel:
static const char *greeting_strings[] = {
QT_TRANSLATE_NOOP("FriendlyConversation", "Hello"),
QT_TRANSLATE_NOOP("FriendlyConversation", "Goodbye")
};
QString FriendlyConversation::greeting(int type)
{
return tr(greeting_strings[type]);
}
QString global_greeting(int type)
{
return qApp->translate("FriendlyConversation",
greeting_strings[type]);
}Siehe auch QT_TR_NOOP(), QT_TRANSLATE_NOOP3() und Internationalisierung mit Qt.
QT_TRANSLATE_N_NOOP3(context, sourceText, comment)
Markiert das UTF-8-kodierte String-Literal „ sourceText “ für eine zählerabhängige verzögerte Übersetzung in der angegebenen „ context “ mit dem angegebenen „ comment “. Die „ context “ ist in der Regel eine Klasse und muss ebenfalls als String-Literal angegeben werden. Das String-Literal „ comment “ sollte ein kurzes semantisches Tag sein, um ansonsten identische Strings voneinander zu unterscheiden.
Das Makro weist lupdate an, die Zeichenkette zu erfassen, und wird zu einer anonymen Struktur aus den beiden Zeichenfolgenliteralen erweitert, die als „ sourceText “ und „ comment “ übergeben wurden.
Beispiel:
static struct { const char * const source; const char * const comment; } status_strings[] = {
QT_TRANSLATE_N_NOOP3("Message Status", "Hello, you have %n message(s)",
"A login message status"),
QT_TRANSLATE_N_NOOP3("Message status", "You have %n new message(s)",
"A new message query status")
};
QString FriendlyConversation::greeting(int type, int count)
{
return tr(status_strings[type].source,
status_strings[type].comment, count);
}
QString global_greeting(int type, int count)
{
return qApp->translate("Message Status",
status_strings[type].source,
status_strings[type].comment,
count);
}Siehe auch QT_TR_NOOP(), QT_TRANSLATE_NOOP(), QT_TRANSLATE_NOOP3() und Internationalisierung mit Qt.
QT_TRANSLATE_N_NOOP(context, sourceText)
Markiert das UTF-8-kodierte String-Literal „ sourceText “ für eine vom Zähler abhängige verzögerte Übersetzung in der angegebenen „ context “. Die „ context “ ist in der Regel ein Klassenname und muss ebenfalls als String-Literal angegeben werden.
Das Makro weist „lupdate“ an, die Zeichenkette zu erfassen, und wird selbst zu „ sourceText “ erweitert.
Beispiel:
static const char * const greeting_strings[] = {
QT_TRANSLATE_N_NOOP("Welcome Msg", "Hello, you have %n message(s)"),
QT_TRANSLATE_N_NOOP("Welcome Msg", "Hi, you have %n message(s)")
};
QString global_greeting(int type, int msgcnt)
{
return translate("Welcome Msg", greeting_strings[type], nullptr, msgcnt);
}Siehe auch ` QT_TRANSLATE_NOOP()`, ` QT_TRANSLATE_N_NOOP3()` und „Internationalisierung mit Qt XML“.
QT_TRID_NOOP(id)
Das Makro `QT_TRID_NOOP` kennzeichnet eine ID für die dynamische Übersetzung.
Der einzige Zweck dieses Makros besteht darin, einen Anker für das Anhängen von Metadaten bereitzustellen, wie z. B. in qtTrId().
Das Makro wird zu ` id` expandiert.
Beispiel:
static const char * const ids[] = {
//% "This is the first text."
QT_TRID_NOOP("qtn_1st_text"),
//% "This is the second text."
QT_TRID_NOOP("qtn_2nd_text"),
0
};
void TheClass::addLabels()
{
for (int i = 0; ids[i]; ++i)
new QLabel(qtTrId(ids[i]), this);
}Siehe auch ` qtTrId()` und Internationalisierung mit Qt.
[since 6.3] QT_TRID_N_NOOP(id)
Das Makro QT_TRID_N_NOOP kennzeichnet eine ID für eine vom Zähler abhängige dynamische Übersetzung.
Der einzige Zweck dieses Makros besteht darin, einen Anker für die Anbindung von Metadaten wie beispielsweise an ` qtTrId()` bereitzustellen.
Das Makro wird zu ` id` erweitert.
Beispiel:
static const char * const ids[] = {
//% "%n foo(s) found."
QT_TRID_N_NOOP("qtn_foo"),
//% "%n bar(s) found."
QT_TRID_N_NOOP("qtn_bar"),
0
};
QString result(int type, int n)
{
return qtTrId(ids[type], n);
}Dieses Makro wurde in Qt 6.3 eingeführt.
Siehe auch ` qtTrId()` und Internationalisierung mit Qt.
QT_TR_NOOP(sourceText)
Markiert das UTF-8-kodierte String-Literal „ sourceText “ für eine verzögerte Übersetzung im aktuellen Kontext (Klasse).
Das Makro weist lupdate an, die Zeichenkette zu erfassen, und wird selbst zu „ sourceText “ erweitert.
Beispiel:
QString FriendlyConversation::greeting(int type)
{
static const char *greeting_strings[] = {
QT_TR_NOOP("Hello"),
QT_TR_NOOP("Goodbye")
};
return tr(greeting_strings[type]);
}Das Makro `QT_TR_NOOP_UTF8()` ist identisch und veraltet; dies gilt auch für alle anderen `_UTF8`-Makros.
Siehe auch QT_TRANSLATE_NOOP() und Internationalisierung mit Qt.
QT_TR_N_NOOP(sourceText)
Markiert das UTF-8-kodierte String-Literal „ sourceText “ für eine vom Zähler abhängige verzögerte Übersetzung im aktuellen Kontext (Klasse).
Das Makro weist „lupdate“ an, die Zeichenkette zu erfassen, und wird selbst zu „ sourceText “ erweitert.
Das Makro wird zu „ sourceText “ erweitert.
Beispiel:
const char * const StatusClass::status_strings[] = {
QT_TR_N_NOOP("There are %n new message(s)"),
QT_TR_N_NOOP("There are %n total message(s)")
};
QString StatusClass::status(int type, int count)
{
return tr(status_strings[type], nullptr, count);
}Siehe auch „ QT_TR_NOOP “ und „Internationalisierung mit Qt“.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.