<QtTranslation>

Marcar cadenas para su traducción. Más...

Header: #include <QtTranslation>

Funciones

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)

Descripción detallada

Véase también Escribir código fuente para traducción.

Documentación de funciones

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

La función qtTrId encuentra y devuelve una cadena traducida.

Devuelve una cadena traducida identificada por id. Si no se encuentra ninguna cadena coincidente, se devuelve el propio id. Esto no debería ocurrir en condiciones normales.

Si n >= 0, todas las apariciones de %n en la cadena resultante se sustituyen por una representación decimal de n. Además, dependiendo del valor de n, el texto traducido puede variar.

Los metadatos y comentarios pueden pasarse como se documenta para QObject::tr(). Además, es posible suministrar una plantilla de cadena de origen del tipo

//% <C string>

o

\begincomment% <C string> \endcomment

Ejemplo:

//% "%n fooish bar(s) found.\n"
//% "Do you want to continue?"
QString text = qtTrId("qtn_foo_bar", n);

La creación de archivos QM adecuados para su uso con esta función requiere pasar la opción -idbased a la herramienta lrelease.

Advertencia: Este método es reentrante sólo si todos los traductores están instalados antes de llamar a este método. No es posible instalar o eliminar traductores mientras se realizan traducciones. Si lo hace, es probable que se produzcan fallos u otros comportamientos no deseados.

Nota: Esta función es reentrante.

Véase también QObject::tr(), QCoreApplication::translate(), e Internacionalización con Qt.

Documentación de macros

QT_TRANSLATE_NOOP3(context, sourceText, disambiguation)

Marca el literal de cadena codificado en UTF-8 sourceText para su traducción diferida en el context dado con el disambiguation dado. context suele ser una clase y también debe especificarse como literal de cadena. La cadena literal disambiguation debe ser una etiqueta semántica corta para diferenciar cadenas que, de otro modo, serían idénticas.

La macro indica a lupdate que recoja la cadena, y la expande a una estructura anónima de las dos cadenas literales pasadas como sourceText y disambiguation.

Ejemplo:

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);
}

Véase también QT_TR_NOOP(), QT_TRANSLATE_NOOP(), e Internacionalización con Qt.

QT_TRANSLATE_NOOP(context, sourceText)

Marca el literal de cadena codificado en UTF-8 sourceText para su traducción diferida en el context dado. context suele ser un nombre de clase y también debe especificarse como una cadena literal.

La macro indica a lupdate que recoja la cadena, y se expande al propio sourceText.

Ejemplo:

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]);
}

Véase también QT_TR_NOOP(), QT_TRANSLATE_NOOP3(), e Internacionalización con Qt.

QT_TRANSLATE_N_NOOP3(context, sourceText, comment)

Marca el literal de cadena codificado en UTF-8 sourceText para la traducción retardada dependiente del numerador en el context dado con el comment dado. context suele ser una clase y también debe especificarse como literal de cadena. El literal de cadena comment debe ser una etiqueta semántica corta para distinguir cadenas idénticas.

La macro indica a lupdate que recoja la cadena, y la expande a una estructura anónima de las dos cadenas literales pasadas como sourceText y comment.

Ejemplo:

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);
}

Véase también QT_TR_NOOP(), QT_TRANSLATE_NOOP(), QT_TRANSLATE_NOOP3(), e Internacionalización con Qt.

QT_TRANSLATE_N_NOOP(context, sourceText)

Marca el literal de cadena codificado en UTF-8 sourceText para la traducción retardada dependiente del numerador en el context dado. El context es típicamente un nombre de clase y también necesita ser especificado como un literal de cadena.

La macro indica a lupdate que recoja la cadena, y se expande al propio sourceText.

Ejemplo:

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);
}

Véase también QT_TRANSLATE_NOOP(), QT_TRANSLATE_N_NOOP3(), e Internacionalización con Qt.

QT_TRID_NOOP(id)

La macro QT_TRID_NOOP marca un id para traducción dinámica.

El único propósito de esta macro es proporcionar un ancla para adjuntar metadatos como a qtTrId().

La macro se expande a id.

Ejemplo:

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);
}

Ver también qtTrId() e Internacionalización con Qt.

[since 6.3] QT_TRID_N_NOOP(id)

La macro QT_TRID_N_NOOP marca un id para la traducción dinámica dependiente del numerador.

El único propósito de esta macro es proporcionar un ancla para adjuntar metadatos como a qtTrId().

La macro se expande a id.

Ejemplo:

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);
}

Esta macro se introdujo en Qt 6.3.

Véase también qtTrId() e Internacionalización con Qt.

QT_TR_NOOP(sourceText)

Marca la cadena codificada en UTF-8 literal sourceText para traducción diferida en el contexto actual (clase).

La macro indica a lupdate que recoja la cadena, y se expande a la propia sourceText.

Ejemplo:

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() es idéntica y está obsoleta; esto se aplica también a todas las demás macros _UTF8.

Véase también QT_TRANSLATE_NOOP() e Internacionalización con Qt.

QT_TR_N_NOOP(sourceText)

Marca el literal de cadena codificado en UTF-8 sourceText para la traducción retardada dependiente del numerador en el contexto actual (clase).

La macro indica a lupdate que recoja la cadena, y se expande a la propia sourceText.

La macro se expande a sourceText.

Ejemplo:

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);
}

Véase también QT_TR_NOOP e Internacionalización con 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.