<QtTranslation> 代理页面
函数
QString | qtTrId(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::translate 和 Qt 国际化。
宏文档
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); }
[自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版中引入。
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_NOOP和Qt国际化。
© 2024 Qt公司有限公司。此处包含的文档贡献属于各自所有者的版权。此处提供的文档受GNU自由文档许可证版本1.3的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰及其它在世界各地的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。