<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)
与えられたcontext の UTF-8 でエンコードされた文字列リテラルsourceText を、与えられた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)
UTF-8 でエンコードされた文字列リテラルsourceText を、与えられたcontext の分子依存の遅延変換のために、与えられた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)
UTF-8 でエンコードされた文字列リテラルsourceText を、与えられたcontext の分子依存の遅延変換のためにマークします。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() やInternationalization with 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も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。