<QtTranslation> Proxy-Seite
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) |
Funktions-Dokumentation
QString qtTrId(const char *id, int n = -1)
Die Funktion qtTrId findet eine übersetzte Zeichenkette und gibt sie zurück.
Gibt eine übersetzte Zeichenkette zurück, die durch id identifiziert wird. Wenn keine passende Zeichenkette gefunden wird, wird die id selbst zurückgegeben. Dies sollte unter normalen Bedingungen nicht passieren.
Wenn n >= 0 ist, 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. Darüber hinaus ist es möglich, eine Quelltextvorlage wie diese zu übergeben:
//% <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);
Die Erstellung von QM-Dateien, die für diese Funktion geeignet sind, erfordert die Übergabe der Option -idbased
an das Werkzeug lrelease
.
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 Durchführung von Übersetzungen wird nicht unterstützt. Dies wird wahrscheinlich zu Abstürzen oder anderem unerwünschten Verhalten führen.
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 Stringliteral sourceText für die verzögerte Übersetzung in das angegebene context mit dem angegebenen disambiguation. Die context ist in der Regel eine Klasse und muss ebenfalls als Stringliteral angegeben werden. Das Stringliteral disambiguation sollte ein kurzes semantisches Tag sein, um ansonsten identische Strings zu unterscheiden.
Das Makro weist lupdate an, die Zeichenkette zu sammeln, und expandiert zu einer anonymen Struktur aus den beiden als sourceText und disambiguation übergebenen Zeichenkettenliteralen.
Beispiel:
static { 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 Stringliteral sourceText für die verzögerte Übersetzung in das angegebene context. Bei context handelt es sich in der Regel um einen Klassennamen, der ebenfalls als Zeichenfolgenliteral angegeben werden muss.
Das Makro weist lupdate an, die Zeichenkette zu sammeln, und expandiert selbst zu sourceText.
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 Stringliteral sourceText für die zählerabhängige verzögerte Übersetzung in das angegebene context mit dem angegebenen comment. Die context ist in der Regel eine Klasse und muss ebenfalls als Stringliteral angegeben werden. Das Stringliteral comment sollte ein kurzes semantisches Tag sein, um ansonsten identische Strings voneinander zu unterscheiden.
Das Makro weist lupdate an, die Zeichenkette zu sammeln, und expandiert zu einer anonymen Struktur aus den beiden als sourceText und comment übergebenen Zeichenkettenliteralen.
Beispiel:
static { 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 Stringliteral sourceText für die zählerabhängige verzögerte Übersetzung in der angegebenen context. Bei context handelt es sich in der Regel um einen Klassennamen, der ebenfalls als Stringliteral angegeben werden muss.
Das Makro weist lupdate an, die Zeichenkette zu sammeln, und expandiert selbst zu sourceText.
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.
QT_TRID_NOOP(id)
Das Makro QT_TRID_NOOP markiert eine id für die dynamische Übersetzung.
Der einzige Zweck dieses Makros ist es, einen Anker für das Anhängen von Metadaten wie an qtTrId() bereitzustellen.
Das Makro expandiert zu id.
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 markiert eine ID für die zählerabhängige dynamische Übersetzung.
Der einzige Zweck dieses Makros ist es, einen Anker für das Anhängen von Metadaten wie an qtTrId() bereitzustellen.
Das Makro wird zu id expandiert.
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 Zeichenfolgenliteral sourceText für die verzögerte Übersetzung im aktuellen Kontext (Klasse).
Das Makro weist lupdate an, die Zeichenkette zu sammeln, und expandiert selbst zu sourceText.
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 Stringliteral sourceText für die zählerabhängige verzögerte Übersetzung im aktuellen Kontext (Klasse).
Das Makro weist lupdate an, die Zeichenkette zu sammeln, und expandiert selbst zu sourceText.
Das Makro expandiert zu sourceText.
Beispiel:
static 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.
© 2025 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.