2010-11-29 10 views
1

これは私の問題です。 私は多言語アプリを持っています。私はlupdateとlreleaseでuiを翻訳します。Qt翻訳(国際化)テキストの元の値

ユーザーが編集できるオプションがいくつかあり、入力選択ダイアログから編集できます。値は、例えば、「品質」および「速度」である。

ここでは、これらの値をその翻訳に置き換えたいと思います。

その後、オプションの値をチェックすると、元の値だけを使用します。たとえば、値== "スピード"かどうかをチェックする必要がありますが、言語が英語に設定されていない場合は、選択ダイアログで "スピード"値は使用されませんが、 "スピード"の変換が行われます。

uiが既に別の言語に設定されている場合、コードからデフォルト(英語)の値にアクセスするにはどうすればよいですか?

答えて

1

私が正しく理解している場合は、英語の値を定数として設定して参照することができます。

const char* kEnglishKey = "Speed"; 
... 
if (value == tr(kEnglishKey)) { 
    ... 
    DoSomeThingWith(kEnglishKey); 
} 

trは、コンパイル時ではなくランタイムです。

+0

ありがとうございました。問題はダイアログにあります。私はそれに翻訳された値を読み込みます。しかし、選択されたテキストを出力として返します。 – ZolaKt

+0

翻訳されたテキストです。したがって、 'tr(kEnglishKey)'は変換された値を返します。これを選択してテストすることができます。そのため、私は 'tr'が実行時アクティビティであると述べました。あなたのコードにはまだ英語のテキストが含まれていますが、実行時にそれを探します。多分私は問題を理解していないでしょう。動作していないコードを投稿すると、状況が間違っている場所がわかります。 –

+0

私はif(value == tr( "Speed"))を使うか、定数でなければいけませんか? – ZolaKt

関連する問題