<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) | |
(since 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 の10進数表現に置き換えられます。さらに、n の値によって、翻訳テキストが変わることがあります。
メタデータとコメントは、QObject::tr() のドキュメントと同様に渡すことができる。さらに、このようなソース文字列テンプレートを指定することもできます:
//% <C string>
または
\begincomment% <C string> \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()、Internationalization with Qtも参照してください 。
マクロのドキュメント
QT_TRANSLATE_NOOP3(context, sourceText, disambiguation)
UTF-8 でエンコードされた文字列リテラルsourceText を、与えられたcontext と与えられたdisambiguation で遅延変換するためにマークします。context は通常クラスで、文字列リテラルとして指定する必要があります。文字列リテラルdisambiguation は、同じ文字列を区別するための短いセマンティックタグでなければなりません。
マクロはlupdateに文字列を収集するように指示し、sourceText とdisambiguation として渡された2つの文字列リテラルの匿名構造体に展開します。
例
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(),Internationalization with Qtも参照してください 。
QT_TRANSLATE_NOOP(context, sourceText)
UTF-8 でエンコードされた文字列リテラルsourceText を、与えられたcontext で遅延変換するためにマークします。context は通常クラス名で、文字列リテラルとして指定する必要があります。
このマクロは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(),Internationalization with Qtも参照してください 。
QT_TRANSLATE_N_NOOP3(context, sourceText, comment)
与えられたcontext の分子依存遅延変換のための UTF-8 エンコードされた文字列リテラルsourceText を、与えられたcomment でマークします。context は通常クラスであり、文字列リテラルとして指定される必要があります。文字列リテラルcomment は、同じ文字列を区別するための短いセマンティックタグでなければなりません。
マクロはlupdateに文字列を収集するように指示し、sourceText とcomment として渡された2つの文字列リテラルの匿名構造体に展開します。
例
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(),Internationalization with Qtも参照してください 。
QT_TRANSLATE_N_NOOP(context, sourceText)
与えられたcontext の分子依存遅延変換のために、UTF-8 エンコードされた文字列リテラルsourceText をマークします。context は通常クラス名で、文字列リテラルとして指定する必要があります。
このマクロは 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(),Internationalization with 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() やInternationalization with Qtも参照してください 。
[since 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() やInternationalization with 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マクロにも当てはまります。
他のすべての _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 やInternationalization with Qtも参照してください 。
© 2025 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.