多言語対応の準備をしましょうかね その1
Qtでは、文字列の情報をunicodeで保持します。ですので、もしメニューとかステータスバーなどの表示が日本語のみでよければ、日本語でラベル文字列を直に指定すれば済みます。当然ですが、英語圏の人が立ちあげても、日本語で表示しようとしますね。フォントがなければ、おかしな表示になるんでしょうかね、たぶん。ま、ちゃんと表示されても、日本語なので??なことになるんでしょう。
それだとやっぱり英語圏の人は使いづらいですよね。ロシア語とかでメニューが表示されたら、日本人の私は手も足も出ません(;ω;)
というわけで、いろんな国の文字で表示できるように準備だけはしておきます。
まず、最初にしておくべきことは文字列を指定するときには、trマクロ(tr())を使うということです。
例えば、ファイルメニューの文字列を指定する場面で
fileMenu = menuBar()->addMenu("File");
と書く所は、
fileMenu = menuBar()->addMenu(tr("File"));
と書いておきます。文字列で翻訳が必要そうなところは全部tr("File")という感じで書いておきます。迷ったら、常にtrマクロで書いておいてもいいかもしれません、エラーにはなりませんので。ただ、マクロの引数に文字列定数でなくて変数を書く時は注意が必要です。また、引数の文字列定数は初期設定ではLatin-1という文字コードでかくことになってますが、普通に半角英数文字で書いておくのがよいかと思います。
これをすべてのソースコードを調べて必要な所を変更しておきます。これを変更し忘れたら、メニューが一部英語のままになるので、その場合は該当箇所がtrマクロになっていない可能性がありますのでその時に再チェックします。とりあえず目についた所だけ修正します。
« 配布用に必要なファイルを探しましょう | トップページ | 多言語対応の準備をしましょうかね その2 »
コメント