<QtTranslation> 代理页面

函数

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

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)
(自 6.3) QT_TRID_N_NOOP(id)
QT_TR_NOOP(sourceText)
QT_TR_N_NOOP(sourceText)

函数文档

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

qtTrId 函数查找并返回一个翻译过的字符串。

返回一个通过 id 标识的翻译字符串。如果没有找到匹配的字符串,则返回 id 本身。在正常情况下不应发生这种情况。

如果 n >= 0,则将结果字符串中的所有 %n 替换为 n 的十进制表示。此外,还可能根据 n 的值更改翻译文本。

元数据和注释可以按照 QObject::tr 的文档传递。此外,可以提供如下源字符串模板

//% <C 字符串>

或者

\begincomment% <C 字符串> \endcomment

示例

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

创建适合与该函数一起使用的 QM 文件需要在 lrelease 工具中传递 -idbased 选项。

注意:此方法仅在所有翻译器在调用此方法之前安装的情况下可重入。不支持在执行翻译时安装或删除翻译器。这样做可能会导致崩溃或其他不良行为。

注意:此函数是 可重入的

另请参阅:QObject::tr()、QCoreApplication::translateQt 国际化

宏文档

QT_TRANSLATE_NOOP3(context, sourceText, disambiguation)

将UTF-8编码的字符串字面量sourceText在指定的上下文中使用指定的歧义消除标记为延迟翻译。上下文通常是类名,也必须以字符串字面量的形式指定。字符串字面量歧义消除应该是一个简短的语义标签,用于区分其他相同字符串。

该宏告诉lupdate收集字符串,并扩展为包含由sourceText歧义消除传递的两个字符串字面量的匿名结构。

示例

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

另请参阅 QT_TR_NOOP(),QT_TRANSLATE_NOOP(),和使用Qt进行国际化

QT_TRANSLATE_NOOP(context, sourceText)

将UTF-8编码的字符串字面量sourceText在指定的上下文中标记为延迟翻译。上下文通常是类名,也必须以字符串字面量的形式指定。

该宏告诉lupdate收集字符串,并扩展为sourceText本身。

示例

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

另请参阅 QT_TR_NOOP(),QT_TRANSLATE_NOOP3(),和使用Qt进行国际化

QT_TRANSLATE_N_NOOP3(context, sourceText, comment)

将UTF-8编码的字符串字面量sourceText标记为给定上下文和给定注释的分子依赖延迟翻译。上下文通常是类名,也必须以字符串字面量的形式指定。字符串字面量注释应是一个简短的语义标签,用于区分其他相同字符串。

该宏告诉lupdate收集字符串,并扩展为包含作为sourceText注释传递的两个字符串字面量的匿名结构。

示例

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

另请参阅 QT_TR_NOOP(),QT_TRANSLATE_NOOP(),QT_TRANSLATE_NOOP3(),和使用Qt进行国际化

QT_TRANSLATE_N_NOOP(context, sourceText)

将UTF-8编码的字符串字面量sourceText标记为给定上下文的分子依赖延迟翻译。上下文通常是类名,也必须以字符串字面量的形式指定。

该宏告诉lupdate收集字符串,并扩展为sourceText本身。

示例

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

另请参阅 QT_TRANSLATE_NOOP(),QT_TRANSLATE_N_NOOP3(),和使用Qt进行国际化

QT_TRID_NOOP(id)

QT_TRID_NOOP宏标记一个ID为动态翻译。

此宏的唯一目的是为附加元数据(如qtTrId)提供锚点。

该宏扩展为id

示例

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

另请参阅 qtTrId() 和 使用Qt进行国际化

[自6.3版起] QT_TRID_N_NOOP(id)

QT_TRID_N_NOOP宏标记一个ID为分子依赖动态翻译。

此宏的唯一目的是为附加元数据(如qtTrId)提供锚点。

该宏扩展为id

示例

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

此宏首次在Qt 6.3版中引入。

另请参阅 qtTrId() 和 使用Qt进行国际化

QT_TR_NOOP(sourceText)

将UTF-8编码的字符串字面量sourceText在当前上下文(类)中标记为延迟翻译。

该宏告诉lupdate收集字符串,并扩展为sourceText本身。

示例

QString FriendlyConversation::greeting(int type)
{
    static const char *greeting_strings[] = {
        QT_TR_NOOP("Hello"),
        QT_TR_NOOP("Goodbye")
    };
    return tr(greeting_strings[type]);
}

QT_TR_NOOP_UTF8()宏与它相同且已过时;这也适用于所有其他_UTF8宏。

另请参阅 QT_TRANSLATE_NOOP() 和 使用Qt进行国际化

QT_TR_N_NOOP(sourceText)

为当前上下文(类)中基于分子依赖的延迟翻译标记UTF-8编码的字符串文字sourceText

该宏告诉lupdate收集字符串,并扩展为sourceText本身。

该宏展开为sourceText

示例

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

另请参阅QT_TR_NOOPQt国际化

© 2024 Qt公司有限公司。此处包含的文档贡献属于各自所有者的版权。此处提供的文档受GNU自由文档许可证版本1.3的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰及其它在世界各地的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。