はじめに
Qt 4.
- Qt 4.
5 What's New in Qt 4. 5 - URL:http://
doc. trolltech. com/ 4. 5/ qt4-5-intro. html#qt-linguist-
improvements
Qt 4.
ファイルフォーマット関連
翻訳メッセージファイルである.tsファイルのバージョンは、
.tsバージョン | 説明 |
---|---|
なし | Qt 4. |
1. | Qt 4. |
2. | Qt 4. |
新XML要素 | 説明 |
---|---|
extracomment | 参考情報としてだけのためのコメントを格納 |
translatorcomment | 翻訳者のコメントを格納 |
extra-* | ユーザ拡張 |
oldsource | lupdateの推測マージで元の値を格納 |
oldcomment | 同上 |
コマンドツール関連
メッセージ翻訳のためのGUIツールQt Linguistを中心とする表3のような翻訳用のツールがあります。
ツール | 説明 |
---|---|
Qt Linguist | 翻訳ファイル |
lupdate | ソースコードから翻訳対象のメッセージテキストを抽出する。 |
lrelease | 翻訳ファイルからコンパイル済みQt翻訳バイナリファイル |
lconvert | Qt 4. |
このQt Linguistツールチェーンのコマンドツールも改良されています。
lconvertコマンド
Qt 4.
サフィックス | 入力 | 出力 | ファイルフォーマット |
---|---|---|---|
qm | ○ | ○ | コンパイル済みQt翻訳バイナリファイル |
ts11 | ○ | ○ | Qt翻訳ファイル |
ts20 | ○ | ○ | Qt翻訳ファイル |
ts | ○ | ○ | Qt翻訳ファイル |
qph | ○ | ○ | Qt Linguistフレーズブック |
po | ○ | ○ | GNU gettextローカライゼーションファイル |
ui | ○ | - | Qt Designerフォームファイル |
jui | ○ | - | Qt Jambiフォームファイル |
cpp | ○ | - | C++ソースファイル |
java | ○ | - | Javaソースファイル |
js | ○ | - | Qt Scriptソースファイル |
xlf | ○ | ○ | XLIFFローカライゼーションファイル |
※ .juiや.javaはQt Jambiが製品終了となっているため、
リファレンスに使い方の説明が何もなく、lconvert -help
で表示されるメッセージのみが使い方の手がかりなのが残念です。この記事の後半で、
lupdateコマンド
20近くのバグ修正や改良がされている中からいくつか拾ってみました。
//: と /*: */ 形式のコメントが
タグに出力されるように 翻訳者への翻訳のヒントを開発者から伝えるために使われ、
Qt Linguistのソーステキスト領域のDeveloper commentsに、 開発者が記述したコメントが表示されます。 新しい形式の QT_
TR*() マクロやQ_ DECLARE_ TR_ FUNCTIONS への対応QT_ TRANSLATE_ NOOP_ UTF8 マクロの追加。 QtScriptへの対応
オプション -disable-heuristic、
-nosort、 -target-language、 -source-languageの追加。 とくに、
-disable-heuristic によって、 メッセージの変更を推測する機能を無効にできるようになったので、 連番でメッセージを扱っている場合に、 余計な推測が抑制されます。 オプション -locations が追加
ソースコードの参照行番号を相対番号にしたり、
出力しないようにもできるようになりました。 UTF-16でエンコーディングされたソースファイルへの対応
ネームスペースエイリアスへの対応
同じメッセージの最後のソースコード位置しか記録しなかったのが、
全ての位置を記録するようになった
複数言語の同時翻訳
複数言語の翻訳を同時に見比べながらできるようになりました。今までは別々にQt Linguistを起動していたので、
複数の翻訳ファイルを閉じて、
言語設定
翻訳ファイル設定で、
翻訳ファイル設定ダイアログ
「メニューバー」→
Qt Linguistのユーザインターフェースの変更
図3のように、
Qt Designerのフォーム (.ui) がソースコード表示領域で実際に見られるよう、 プレビュー機能が変更されました。Qt 4. 4まではQt Designerのフォームの翻訳で、 ソースコード表示に.uiのXMLが表示されていましたが、 これは、 翻訳のための利点はありませんでした。この変更に伴い、 今までのプレビューツールが廃止されています (リファレンスにはその記述が残ったままです)。 複数の言語を同時に翻訳できるようになったこともあり、
ソーステキスト表示領域に翻訳文が表示されないようになっています。図4はQt 4. 4のソーステキスト表示領域で、 図5はQt 4. 5のものです。 Qt 4.
5でツールメニューがなくなりました。リファレンスマニュアルには、 ツールメニューの説明が書かれたままになっていますが、 Qt 4. 5では削除されています。Qt 4. 4までは、 「Batch Translation...」 と 「フォームプレビューを開く/更新する」 の2つのメニュー項目がありました。そして、 「Batch Translation...」 は、 編集メニューに移動されています。 原文や翻訳文の表示で、
空白が 「・」 (中黒) で表示されるようになり、 空白を揃えやすくなりました。図6はQt 4. 4での表示例で、 図7はQt 4. 5での表示例です。 ドラッグ&ドロップでファイルを開けるようになりました。
今までは、
翻訳ファイルを 「閉じる」 ことができませんでした。複数の翻訳ファイルを指定できるようになったためでしょうか、 ファイルメニューに 「閉じる」 と 「すべて閉じる」 メニューが追加されて、 間違って編集したときになどに扱いやすくなりました。
Qt Linguist以外の翻訳ツールを試す
XLIFF
Qtアプリケーション作成の場合に、
まず、
LocalizeでこのXLIFFファイルを開くと図8のようになり、
XLIFF は以下のようにして、
OmegaTの方は図9のようになります。ただし、
おわりに
Qt Linguistがまだなかったころには、
ただ問題もあります。たとえば、
さて、