<QtTranslation>
Marquer des chaînes à traduire. En savoir plus…
| Header: | #include <QtTranslation> |
Fonctions
| QString | qtTrId(const char *id, int n = -1) |
Macros
| 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) |
Voir aussi Rédaction du code source en vue de la traduction.
Documentation des fonctions
QString qtTrId(const char *id, int n = -1)
La fonction qtTrId recherche et renvoie une chaîne traduite.
Elle renvoie une chaîne traduite identifiée par id. Si aucune chaîne correspondante n'est trouvée, l'identifiant lui-même est renvoyé. Cela ne devrait pas se produire dans des conditions normales.
Si n >= 0, toutes les occurrences de %n dans la chaîne résultante sont remplacées par une représentation décimale de n. De plus, en fonction de la valeur de n, le texte de la traduction peut varier.
Les métadonnées et les commentaires peuvent être transmis comme indiqué dans la documentation relative à QObject::tr(). De plus, il est possible de fournir un modèle de chaîne source comme celui-ci :
//% <C string>
ou
\begincomment% <C string> \endcomment
Exemple :
//% "%n fooish bar(s) found.\n"
//% "Do you want to continue?"
QString text = qtTrId("qtn_foo_bar", n);Pour créer des fichiers QM adaptés à cette fonction, il faut passer l’option -idbased à l’outil lrelease.
Avertissement : cette méthode n’est réentrante que si tous les traducteurs sont installés avant son appel. L’installation ou la suppression de traducteurs pendant l’exécution des traductions n’est pas prise en charge. Cela entraînerait probablement des plantages ou d’autres comportements indésirables.
Remarque : cette fonction est réentrante.
Voir également QObject::tr(), QCoreApplication::translate() et Internationalisation avec Qt.
Documentation sur les macros
QT_TRANSLATE_NOOP3(context, sourceText, disambiguation)
Marque la chaîne littérale encodée en UTF-8 sourceText pour une traduction différée dans l’ context donné avec l’ disambiguation donné. L’ context est généralement une classe et doit également être spécifiée sous forme de chaîne littérale. La chaîne littérale disambiguation doit être une balise sémantique courte permettant de distinguer des chaînes par ailleurs identiques.
La macro indique à lupdate de collecter la chaîne et se développe en une structure anonyme composée des deux chaînes littérales passées en tant que sourceText et disambiguation.
Exemple :
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);
}Voir également QT_TR_NOOP(), QT_TRANSLATE_NOOP() et Internationalisation avec Qt.
QT_TRANSLATE_NOOP(context, sourceText)
Marque la chaîne littérale encodée en UTF-8 sourceText pour une traduction différée dans l'context donné. L'context est généralement un nom de classe et doit également être spécifié sous forme de chaîne littérale.
La macro indique à lupdate de récupérer la chaîne et se développe en sourceText elle-même.
Exemple :
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]);
}Voir également QT_TR_NOOP(), QT_TRANSLATE_NOOP3() et Internationalisation avec Qt.
QT_TRANSLATE_N_NOOP3(context, sourceText, comment)
Marque la chaîne littérale encodée en UTF-8 sourceText pour une traduction différée dépendante du numérateur dans l’ context donné avec l’ comment donné. L’ context est généralement une classe et doit également être spécifiée sous forme de chaîne littérale. La chaîne littérale comment doit être une balise sémantique courte permettant de distinguer des chaînes par ailleurs identiques.
La macro indique à lupdate de collecter la chaîne et se développe en une structure anonyme composée des deux chaînes littérales passées en tant que sourceText et comment.
Exemple :
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);
}Voir également QT_TR_NOOP(), QT_TRANSLATE_NOOP(), QT_TRANSLATE_NOOP3() et Internationalisation avec Qt.
QT_TRANSLATE_N_NOOP(context, sourceText)
Marque la chaîne littérale encodée en UTF-8 « sourceText » pour une traduction différée dépendante du numérateur dans l'context donné. L'context est généralement un nom de classe et doit également être spécifié sous forme de chaîne littérale.
La macro indique à lupdate de récupérer la chaîne et se développe en sourceText elle-même.
Exemple :
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);
}Voir également QT_TRANSLATE_NOOP(), QT_TRANSLATE_N_NOOP3() et Internationalisation avec Qt.
QT_TRID_NOOP(id)
La macro QT_TRID_NOOP marque un identifiant en vue d'une traduction dynamique.
Le seul but de cette macro est de fournir un point d'ancrage pour associer des métadonnées, par exemple à ` qtTrId()`.
La macro se développe en id.
Exemple :
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);
}Voir également qtTrId() et Internationalisation avec Qt.
[since 6.3] QT_TRID_N_NOOP(id)
La macro QT_TRID_N_NOOP désigne un identifiant destiné à la traduction dynamique dépendante du numérateur.
Le seul but de cette macro est de fournir un point d'ancrage pour y attacher des métadonnées, comme dans ` qtTrId()`.
La macro se développe en id.
Exemple :
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);
}Cette macro a été introduite dans Qt 6.3.
Voir également qtTrId() et Internationalisation avec Qt.
QT_TR_NOOP(sourceText)
Marque la chaîne littérale encodée en UTF-8 « sourceText » pour une traduction différée dans le contexte actuel (classe).
La macro indique à lupdate de récupérer la chaîne et se développe en sourceText.
Exemple :
QString FriendlyConversation::greeting(int type)
{
static const char *greeting_strings[] = {
QT_TR_NOOP("Hello"),
QT_TR_NOOP("Goodbye")
};
return tr(greeting_strings[type]);
}La macro QT_TR_NOOP_UTF8() est identique et obsolète ; cela s'applique également à toutes les autres macros _UTF8.
Voir également QT_TRANSLATE_NOOP() et Internationalisation avec Qt.
QT_TR_N_NOOP(sourceText)
Marque la chaîne littérale encodée en UTF-8 « sourceText » pour une traduction différée dépendante du numérateur dans le contexte actuel (classe).
La macro indique à lupdate de collecter la chaîne et se développe en sourceText elle-même.
La macro se développe en sourceText.
Exemple :
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);
}Voir aussi QT_TR_NOOP et Internationalisation avec 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.