12,964
回編集
(→翻訳の準備) |
|||
181行目: | 181行目: | ||
// SampleTr_ja.qmファイルが存在して、"Hello world!"の翻訳があれば、翻訳を表示して、無ければ原文が表示される | // SampleTr_ja.qmファイルが存在して、"Hello world!"の翻訳があれば、翻訳を表示して、無ければ原文が表示される | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | |||
まず、Qtプロジェクトファイルにおいて、変数<code>TRANSLATIONS</code>に、翻訳するTSファイルを指定する。<br> | |||
以下の例では、1つの翻訳セット(日本語のみ)を指定している。<br> | |||
TRANSLATIONS += SampleTr_ja.ts | |||
<br> | |||
<u>※注意</u><br> | |||
<u>翻訳ファイルは、QMファイルではなくTSファイルであることに注意する。</u><br> | |||
<u>TSファイル形式は、Qtソフトウェアの開発中に使用するために設計されている。</u><br> | |||
<br> | |||
<u>Qtソフトウェアの設計者は、<code>lupdate</code>コマンドを実行して、ソースコードから抽出された文言を含むTSファイルを生成する。</u><br> | |||
<u>翻訳者は、Qt Linguistツールを使用してTSファイルを読み込み、翻訳を追加・編集する。</u><br> | |||
<br> | |||
TSファイルはXML形式あり、直接、電子メールで送信すること、および、バージョン管理システムに配置することも簡単である。<br> | |||
TSファイルを手動で編集する場合、XMLのデフォルトエンコーディングはUTF-8であることに注意する。<br> | |||
<br> | |||
例えば、"ø"のようなLatin1文字コードを入力する場合は、XMLエンティティを使用して、<code>ø</code>と記述する。<br> | |||
これは、Unicode 4.0の全ての文字に対して有効である。<br> | |||
<br> | |||
翻訳が完了した後、<code>lrelease</code>コマンドを実行して、TSファイルをQM(Qt Message)ファイル形式に変換する。<br> | |||
QMファイル形式は、高速なルックアップ性能を実現するために設計されたコンパクトなバイナリ形式である。<br> | |||
<code>lrelease</code>コマンドと<code>lupdate</code>コマンドは、<br> | |||
Qtプロジェクトの全てのソースコードファイルとヘッダファイル(Qtプロジェクトファイルの変数SOURCESと変数HEADERSで指定されているファイル)を読み込み、<br> | |||
<code>tr</code>メソッドの呼び出しに登場する文字列を抽出する。<br> | |||
<br> | |||
<code>lupdate</code>コマンドは、TSファイルを生成および更新して、ソースコードと同期させるために使用する。<br> | |||
<code>lupdate</code>コマンドは情報を削除しないため、どのタイミングで実行してもよい。<br> | |||
例えば、QtプロジェクトファイルやCMakeプロジェクトファイルに記述することにより、プロジェクトをビルド/リビルドするたびにTSファイルが更新される。<br> | |||
また、<code>lupdate</code>コマンドの<code>-verbose</code>オプションは、<code>lupdate</code>コマンド実行時における詳細なメッセージを表示するものである。<br> | |||
lupdate -verbose <Qtプロジェクトファイル> | |||
<br> | |||
<code>lupdate</code>コマンドの実行後、カレントディレクトリにTSファイルが生成される。<br> | |||
TSファイル形式は、Qt Linguistツール等を使用して読み込むため、理解する必要はない。<br> | |||
<syntaxhighlight lang="xml"> | |||
<!DOCTYPE TS><TS> | |||
<context> | |||
<name>QPushButton</name> | |||
<message> | |||
<source>Hello world!</source> | |||
<translation type="unfinished"></translation> | |||
</message> | |||
</context> | |||
</TS> | |||
</syntaxhighlight> | |||
<br> | |||
Qt Linguistツールを使用して、各国の言語を翻訳する。<br> | |||
Qt Linguistツールのパスは、/<Qtのインストールディレクトリ>/bin/linguistに存在する。<br> | |||
端末からQt Linguistを起動する場合は、以下に示すコマンドを実行する。<br> | |||
linguist <TSファイル> | |||
<br> | |||
また、XMLエディタやテキストエディタを使用して、直接、TSファイルを編集することもできる。<br> | |||
<br> | |||
Qt Linguistツールの使用方法を、以下に示す。<br> | |||
# Qt Linguistツールのメイン画面左ペインの上に、翻訳する対象(ここでは、"QPushButton")を選択する。 | |||
# 翻訳する文言(ここでは、"Hello world!")を選択する。 | |||
# Qt Linguistツールのメイン画面中央右にある翻訳ペインに、翻訳した文言を入力する。 | |||
# [完了]チェックボックスにチェックを入力して、メニューバーから[ファイル] - [保存]を選択する。 | |||
# TSファイルを確認する。 | |||
#: <code># 変換前</code> | |||
#: <code><translation type='unfinished'></translation></code> | |||
#: <br> | |||
#: <code># 変換後</code> | |||
#: <code><translation>翻訳した文言</translation></code> | |||
<br> | |||
次に、TSファイルからQMファイルを生成する。<br> | |||
QMファイルの生成は、Qt Linguistツールから(1つずつTSファイルに対して)行う、または、<code>lrelease</code>コマンドを実行して行うことができる。<br> | |||
lrelease <TSファイル 1> <TSファイル 2> <TSファイル ...> | |||
<br> | |||
Qt LinguistツールからQMファイルを生成する方法を、以下に示す。<br> | |||
# Qt Linguistツールのメニューバーから、[ファイル] - [リリース]を選択する。 | |||
# ファイル保存ダイアログの[保存]ボタンを押下する。 | |||
# TSファイルからQMファイルが生成される。 | |||
# Qtソフトウェアを実行して、文言が翻訳されているかどうかを確認する。 | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Qt]] | [[カテゴリ:Qt]] |