<QtTranslation>

Marquage des chaînes de caractères pour la traduction. Plus d'informations...

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)

Description détaillée

Voir aussi Écrire le code source pour la traduction.

Documentation des fonctions

QString qtTrId(const char *id, int n = -1)

La fonction qtTrId recherche et renvoie une chaîne traduite.

Retourne 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. En outre, 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é pour QObject::tr(). En outre, 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 utilisables avec cette fonction, il faut passer l'option -idbased à l'outil lrelease.

Attention : Cette méthode n'est réentrante que si tous les traducteurs sont installés avant d' appeler cette méthode. Il n'est pas possible d'installer ou de supprimer des traducteurs pendant que l'on effectue des traductions. Cela entraînera probablement des plantages ou d'autres comportements indésirables.

Remarque : cette fonction est réentrante.

Voir aussi 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 UTF-8 sourceText pour une traduction différée dans la chaîne donnée context avec la chaîne donnée disambiguation. Le context est généralement une classe et doit également être spécifié en tant que chaîne littérale. La chaîne littérale disambiguation doit être une courte balise sémantique permettant de distinguer des chaînes identiques.

La macro demande à lupdate de collecter la chaîne, et se développe en une structure anonyme des deux chaînes littérales passées comme 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 aussi 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 la chaîne donnée context. Le context est typiquement un nom de classe et doit également être spécifié en tant que chaîne littérale.

La macro demande à lupdate de collecter la chaîne, et se développe en sourceText.

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 aussi QT_TR_NOOP(), QT_TRANSLATE_NOOP3(), et Internationalisation avec Qt.

QT_TRANSLATE_N_NOOP3(context, sourceText, comment)

Marque le littéral de chaîne encodé UTF-8 sourceText pour une traduction retardée dépendante du numérateur dans l'adresse context donnée avec l'adresse comment donnée. L'adresse context est généralement une classe et doit également être spécifiée en tant que chaîne littérale. La chaîne littérale comment doit être une étiquette sémantique courte permettant de distinguer des chaînes identiques.

La macro demande à lupdate de collecter la chaîne, et se développe en une structure anonyme des deux chaînes littérales passées comme 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 aussi QT_TR_NOOP(), QT_TRANSLATE_NOOP(), QT_TRANSLATE_NOOP3(), et Internationalisation avec Qt.

QT_TRANSLATE_N_NOOP(context, sourceText)

Marque le littéral de chaîne encodé en UTF-8 sourceText pour la traduction retardée dépendante du numérateur dans la chaîne donnée context. Le context est typiquement un nom de classe et doit également être spécifié en tant que chaîne littérale.

La macro demande à lupdate de collecter la chaîne, et se développe en sourceText.

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 aussi QT_TRANSLATE_NOOP(), QT_TRANSLATE_N_NOOP3(), et Internationalisation avec Qt.

QT_TRID_NOOP(id)

La macro QT_TRID_NOOP marque un identifiant pour la traduction dynamique.

Le seul but de cette macro est de fournir une ancre pour attacher des métadonnées comme à 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 aussi qtTrId() et Internationalisation avec Qt.

[since 6.3] QT_TRID_N_NOOP(id)

La macro QT_TRID_N_NOOP marque un identifiant pour la traduction dynamique dépendant du numérateur.

Le seul but de cette macro est de fournir une ancre pour attacher des métadonnées comme à 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 aussi qtTrId() et Internationalisation avec Qt.

QT_TR_NOOP(sourceText)

Marque le littéral de la chaîne encodée en UTF-8 sourceText pour une traduction différée dans le contexte actuel (classe).

La macro demande à lupdate de collecter la chaîne, et se développe jusqu'à 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 ; ceci s'applique également à toutes les autres macros _UTF8.

Voir aussi QT_TRANSLATE_NOOP() et Internationalisation avec Qt.

QT_TR_N_NOOP(sourceText)

Marque le littéral de la chaîne encodée en UTF-8 sourceText pour une traduction retardée dépendant du numérateur dans le contexte actuel (classe).

La macro demande à lupdate de collecter la chaîne et se développe en sourceText.

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.