進化するQt-Qt最新事情2009

第5回 Qt Linguistの進化

この記事を読むのに必要な時間:およそ 3 分

Qt Linguistのユーザインターフェースの変更

  • 図3のように,Qt Designerのフォーム(.ui)がソースコード表示領域で実際に見られるよう,プレビュー機能が変更されました。Qt 4.4まではQt Designerのフォームの翻訳で,ソースコード表示に.uiのXMLが表示されていましたが,これは,翻訳のための利点はありませんでした。この変更に伴い,今までのプレビューツールが廃止されています(リファレンスにはその記述が残ったままです)⁠

  • 図3 .uiのプレビュー表示

    図3 .uiのプレビュー表示

  • 複数の言語を同時に翻訳できるようになったこともあり,ソーステキスト表示領域に翻訳文が表示されないようになっています。図4はQt 4.4のソーステキスト表示領域で,図5はQt 4.5のものです。

  • 図4 Qt 4.4のソーステキスト表示領域

    図4 Qt 4.4のソーステキスト表示領域

    図5 Qt 4.5のソーステキスト表示領域

    図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での表示例です。

  • 図6 Qt 4.4の表示

    図6 Qt 4.4の表示

    図7 Qt 4.5の表示

    図7 Qt 4.5の表示

  • ドラッグ&ドロップでファイルを開けるようになりました。

  • 今までは,翻訳ファイルを「閉じる」ことができませんでした。複数の翻訳ファイルを指定できるようになったためでしょうか,ファイルメニューに「閉じる」「すべて閉じる」メニューが追加されて,間違って編集したときになどに扱いやすくなりました。

Qt Linguist以外の翻訳ツールを試す

XLIFF(XML Localization Interchange File Format)はソフトウェアや文書の国際化,翻訳のためのXML形式フォーマットで,Qt 4.3から部分的なサポートが始まり,Qt 4.5でQt Linguistツールチェーンのすべてのツールで扱えるようになりました。

Qtアプリケーション作成の場合に,必ずQt Linguistを使わなければならないというのでは,いろいろな翻訳作業が発生する場面では,翻訳者が使い慣れた翻訳ツールを使えないので,かえって翻訳者へ負担がかかることもあるでしょう。したがって,XLIFFフォーマットをサポートして,一般的な翻訳支援ツールでもメッセージ翻訳ができるようになったのはよいことです。XLIFFを使って,どのくらいQtに適用できるかを一般的な翻訳ツールで試したいと思い,すぐに入手できるKDEのLokalizeOmegaTで試してみました。

まず,以下のようにlconvertを用いて.tsファイルをXLIFFに変換します。

$ lconvert -i transform_ja.ts -o transform_ja.xlf

LocalizeでこのXLIFFファイルを開くと図8のようになり,問題なく翻訳ができました。

図8 .tsファイルを変換した「transform_ja.xlf」をLocalizeで開いたところ

図8 .tsファイルを変換した「transform_ja.xlf」をLocalizeで開いたところ

XLIFF は以下のようにして,lreleaseでもlconvertでも.qmファイルにできます。

$ lrelease transform_ja.xlf
$ lconvert -i transform_ja.xlf -o transform_ja.qm

OmegaTの方は図9のようになります。ただし,.tsファイルに前処理をしています。翻訳文に原文を入れておかないと,OmegaTでは翻訳対象の原文が認識されないからです。OmegaTで翻訳したXLIFFも.qmに変換して正しく使えました。

図9 OmegaTでの表示

図9 OmegaTでの表示

おわりに

Qt Linguistがまだなかったころには,翻訳メッセージを抽出したファイルを直にエディタで編集していました。そして,開発元から編集用のGUIツール(Qt Linguist)を開発中だが,使って感想を聞かせて欲しいと依頼されてから10年近く経ちました。Qt Linguistは,Qtに特化した翻訳支援ツールなので,Qtアプリケーションを扱う限りでは,一般的な翻訳支援ツールよりは,かなり使いやすいものとなっています。

ただ問題もあります。たとえば,ソースコードで日本語文字列を使うと,Qt Linguistのソースコード表示では文字化けをしてしまいます。文字列のマルチバイトの扱いは,コンパイラによって異なっているので,マルチプラットフォームを考えるならば,ソースコードの文字列に直接マルチバイトを使わずに,ASCIIのみにするのが一番確実です。しかし,場合によっては日本語文字列を使い,それを英語などの他の言語に翻訳する場合もあります。ASCII以外が使え,英語に縛られないようになることも必要でしょう。

さて,今回までは,おもにQt 4.5の新機能について紹介してきました。次回以降は年内にリリースが予定されているQt 4.6を紹介する予定ですが,まだ詳細が不明な部分も多いため,すべての情報が明らかになる4.6リリース後の12月から連載を再開する予定です。楽しみにしてお待ちください。

著者プロフィール

杉田研治(すぎたけんじ)

1955年生まれ。東京都出身。株式会社SRAに勤務。プログラマ。

仕事のほとんどをMac OS XとKubuntu KDE 4でQtと供に過ごす。