Translations:Development/FAQs/Technical FAQ/39/ja
QString translatedStuff=i18n("foobar");
を使った場合、translatedStuff は "foobar" の翻訳結果が含まれます。一方、
const char *markedStuff = I18N_NOOP("foobar");
を使った場合、marketStuff はまだ、リテラル "foobar" を含んでいます。しかし、翻訳者はそのが翻訳されてほしいことを分っているので、後に QString translatedStuff=i18n(markedStuff);
を実行すると、"foobar" の翻訳結果が得られます。これは I18N_NOOP なしではうまくいきません。
そのため、普通は i18n を使ってください。しかし、絶対に翻訳をさせずに後で翻訳したい場合や、KInstance が存在する前に翻訳したいものを持っておきたい場合は、I18N_NOOP()
を使って下さい。