「Qtの設定 - Qt Linguist」の版間の差分

ナビゲーションに移動 検索に移動
484行目: 484行目:
  lupdate -recursive <Qtプロジェクトのディレクトリ> -ts <Qtプロジェクトのディレクトリ>/i18n/MySoftware-text_en_fr.ts
  lupdate -recursive <Qtプロジェクトのディレクトリ> -ts <Qtプロジェクトのディレクトリ>/i18n/MySoftware-text_en_fr.ts
  # ...略
  # ...略
<br><br>
== Qt Linguistの使用方法 ==
==== Qt Linguistとは ====
Qt Linguistは、Qtソフトウェアに翻訳を追加するためのツールである。<br>
Qtのインストール後、開発ホスト上の他のソフトウェアと同様に、Qt Linguistを起動することができる。<br>
<br>
Qt Linguistのメイン画面には、メニューバーの他に下図に示す複数のビューが存在する。<br>
[[ファイル:Qt Linguist 1.png|フレームなし|中央]]
<br>
# コンテキスト : [F6]キー
#: 翻訳する文字列が出現するコンテキストを一覧から選択する。
# 文字列 : [F7]キー
#: コンテキストで見つかった翻訳可能な文字列を表示する。
# ソースとフォーム : [F9]キー
#: 現在の文字列が使用されているコンテキストのソースコードにアクセスできる場合、そのコンテキストのソースコードを表示する。
# 翻訳エリアは、文字列を翻訳するためのものである。
# フレーズと推測 : [F10]キー
#: 現在の文字列の翻訳候補を表示する。
# 警告 : [F8]キー
#: 検証テストに失敗した翻訳された文字列を表示する。
<br>
翻訳エリア(1)は常に表示されている。<br>
他のビューを表示または非表示にする場合、[表示] - [ビュー]を選択する、または、上に挙げたキーボードショートカットを使用する。<br>
ビューのタイトルバーをドラッグして、翻訳エリアの周囲やメイン画面の外側にまでビューを配置することができる。<br>
<br>
==== 翻訳 ====
Qt Linguistで翻訳ファイル(TSファイル)を開いて翻訳する。<br>
<br>
TSファイルは、翻訳者が読むことができるXMLファイルである。<br>
TSファイルは、通常、<code>lupdate</code>コマンドにより、作成および更新される。<br>
TSファイルが存在しない場合は、[[Qtの設定 - Qt Linguist#リリースマネージャ]]にあるTSファイルを作成する手順を参照すること。<br>
<br>
Qt Linguistは、他のソフトウェアにより生成された国際的なXML Localization Interchange File Format(XLIFF)のファイルを翻訳するためにも使用することができる。<br>
しかし、標準的なQtプロジェクトでは、TSファイル形式のみが使用される。<br>
なお、XLIFF形式のファイルに対してサポートされている最小バージョンは1.1である。<br>
<br>
Qt Linguistは、翻訳エリアに言語を表示して、それに応じて複数形の入力フィールドの数を調整する。<br>
同時に翻訳する複数のTSファイルを開く場合、各言語ごとに翻訳者と翻訳者コメント欄が表示される。<br>
位置情報の設定については、[[Qtの設定 - Qt Linguist#ターゲットロケールの変更]]を参照すること。<br>
<br>
Qtソフトウェアの開発者が、<code>QObject::tr</code>メソッドを使用している場合、そのコメントは開発者コメント欄に表示される。<br>
<br>
Qt Linguistを使用して翻訳する手順を示す。<br>
# [ファイル] - [開く]を選択して、TSファイルを読み込む。
# [コンテキスト]ビューでコンテキストを選択して、そのコンテキストにある翻訳可能な文字列が[文字列]ビューに読み込まれる。
# 文字列を選択すると、翻訳領域の原文としてコピーされる。<br>原文テキスト内の空白が視覚化されるため、テキスト内に必要な空白を確認することができる。
# [翻訳]フィールドに、現在の文字列の翻訳を入力する。<br>また、[フレーズと推測]ビューから既存の翻訳をダブルクリックして選択することもできる。<br>フレーズはフレーズ集から読み込まれ、推測はTSファイル内の類似フレーズの既存の翻訳を使用する。
# 任意ではあるが、他の翻訳者が読むためのコメントを[翻訳者コメント]フィールドに入力することもできる。
# 翻訳を受け入れる場合は、[Ctrl] + [Enter]キーを同時押下する、または、[[ファイル:Qt Linguist 2.png]]アイコンを選択する、文字列リストで選択したソース文字列の左側にあるアイコンを選択する。
# [ファイル] - [保存]を選択して、作業内容を保存する。
<br>
文字列リストの全ての文字列に、[Accepted / Correct]アイコンまたは[Accepted / Warnings]アイコンが付くまで、この処理を繰り返す。<br>
その後、次のコンテキストを選択して翻訳を続行する。<br>
<br>
原文と訳文の単語数と文字数を表示する場合は、[表示] - [統計]を選択する。<br>
<br>
[ファイル]メニューバー - [リリース]を選択することにより、現在の翻訳ファイル(TSファイル)と同じベースネームのQMファイルを作成する。<br>
なお、リリースマネージャのコマンドラインツールである<code>lrelease</code>コマンドは、全ての翻訳ファイル(TSファイル)に対して同じ機能を実行している。<br>
<br>
翻訳ファイルと翻訳を印刷する場合は、[ファイル]メニューバー - [印刷]を選択する。<br>
<br>
==== 翻訳を途中で終了する ====
途中まで翻訳したファイルを残す場合は、[Ctrl] + [L]キーを同時押下して、次の未完成の翻訳に移動する。(Next Unfinished)<br>
次の翻訳に移る場合は、[Shift] + [Ctrl] + [L]キーを同時押下する。<br>
[翻訳]メニューバーにあるメニューを選択して移動することもできる。<br>
<br>
異なるコンテキストに移動する場合は、メイン画面左にある[コンテキスト]ビューから作業するコンテキストを選択して、[文字列]ビューからソーステキストを選択する。<br>
<br>
==== 文脈によって複数の翻訳が必要なフレーズ ====
同じフレーズが2つ以上のコンテキストに矛盾なく現れることがある。<br>
<br>
あるフレーズがあるコンテキストで翻訳されると、Qt Linguistは翻訳が行われたことを記録する。<br>
翻訳者が同じフレーズを後で使用する場合、Qt Linguistは前の翻訳を翻訳候補として[フレーズと推測]ビューで提供する。<br>
<br>
あるフレーズが特定のコンテキストに複数回出現する場合、[コンテキスト]ビューには1度だけ表示されて、そのコンテキスト内の全てのフレーズに翻訳が適用される。<br>
同じフレーズを同じコンテキスト内で別の言語に翻訳する必要がある場合、開発者はそのフレーズの各出現箇所に区別するためのコメントを記述する必要がある。<br>
このようなコメントを使用する場合、重複するフレーズは[コンテキスト]ビューに表示される。<br>
<br>
開発者のコメントは、翻訳エリア内で水色の背景で表示される。<br>
<br>
==== 番号付き引数と複数形の処理 ====
いくつかのフレーズには、番号付き引数が存在する。<br>
<br>
番号付き引数は、実行時にテキストに置き換えられるプレースホルダーであり、ソース文字列の中で%記号の後に数字が続く形で表示される。<br>
<br>
例えば、ファイル%1を処理した後にファイル%2が次に処理される時、この翻訳される文字列では、%1と%2は番号付きの引数である。<br>
実行時に、%1と%2はそれぞれ最初のファイル名と2番目のファイル名に置き換えられる。<br>
同じ番号の引数が翻訳に現れなければならないが、必ずしも同じ順番である必要はない。<br>
ドイツ語への翻訳では、Datei %2 wird bearbeitet, wenn Datei %1 fertig istのように、フレーズを逆にすることができる。<br>
両方の番号の引数は翻訳に現れるが、順序は逆である。<br>
iは、引数iがソース文字列の引数列のどこに現れるかに関係なく、常に翻訳文字列の同じテキストに置き換えられる。<br>
<br>
番号付き引数の使用は、しばしば原文での複数形の使用を伴うことが多い。<br>
多くの言語では、テキストの形式は表示される値により異なり、複数の翻訳が必要になる。<br>
開発者がソースコードの文字列を正しい方法でマークアップすることにより、翻訳領域で可能な複数形のそれぞれに対するフィールドが利用できる。<br>
<br>
詳細を知りたい場合は、[https://doc.qt.io/qt-5/i18n-source-translation.html#handling-plurals 翻訳のためのソースコードの記述方法]を参照すること。<br>
<br>
==== ターゲットロケールの変更 ====
ロケール情報は、Qt Liguistの[編集] - [翻訳ファイルの設定]から明示的に設定することができる。<br>
<br>
翻訳元ファイルを開いた時、翻訳先の言語と国が明示的に設定されていない場合、Qt Linguistは翻訳元のファイル名からそれらを差し引こうとする。<br>
このため、翻訳ファイルは、次のファイル名に関する規約を守る必要がある。<br>
TSファイル名の規則:
<ソフトウェア名>_<翻訳先の言語><_国名 (国名は任意)>.ts
<翻訳先の言語>は、ISO 639の言語コード(小文字)である
<_国名>は、ISO 3166の2文字の国コード(大文字)である。
<br>
翻訳先の言語と国を解決するための上記の試みが失敗する場合は、[翻訳ファイルの設定]ウィンドウが開く。<br>
* 例1. app_de.ts
*: 翻訳先の言語をドイツ語に設定する。
*: <br>
* 例2. app_de_ch.ts
*: 翻訳先の言語をドイツ語、ターゲット国をスイスに設定する。
<br>
これは、現在のロケールの翻訳を自動的に読み込むことにも役立つ。<br>
詳細については、[[Qtの設定 - Qt Linguist#Qt Linguistのマニュアル : 開発者向け]]を参照すること。<br>
<br><br>
== 翻訳するコンテクストの選択 ==
[コンテキスト]ビューには、翻訳する文字列が現れるコンテキストが一覧表示される。(アルファベット順)<br>
<br>
各コンテキストは、<code>QObject</code>クラスのサブクラス名である。<br>
<code>QObject</code>クラス自体のコンテキストもあり、そこにはstaticメソッドである<code>QObject::tr()</code>に渡される文字列が含まれる。<br>
また、<code><unnamed context></code>というものもあり、これは、<code>QObject</code>クラスのサブクラスではない文字列が含まれる。<br>
<br>
下表に、各コンテキストに対する現在の翻訳状態のアイコンを示す。<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! style="background-color:#66CCFF;" | 状態
! style="background-color:#66CCFF;" | アイコン
! style="background-color:#66CCFF;" | 説明
|-
| Accepted / Correct || [[ファイル:Qt Linguist 3.png|フレームなし|中央]] || コンテキスト内の全ての文字列が翻訳済みであり、全ての翻訳が検証に成功していることを表す。
|-
| Accepted / Warnings || [[ファイル:Qt Linguist 4.png|フレームなし|中央]] || コンテキスト内の全ての文字列は翻訳済み、あるいは、翻訳済みとマークされているが、<br>少なくとも1つ以上の翻訳が検証に失敗していることを表す。<br>[文字列]ビューから、どの文字列が検証に失敗しているかどうかを確認することができる。
|-
| Not Accepted || [[ファイル:Qt Linguist 5.png|フレームなし|中央]] || コンテキスト内の少なくとも1つの文字列が翻訳されていない、または、翻訳済みとマークされていないことを表す。
|-
| Obsolete || [[ファイル:Qt Linguist 6.png|フレームなし|中央]] || 翻訳された文字列は、コンテキストには現れない。<br>これは、コンテキスト自体がQtソフトウェアに存在しないことを意味する。
|}
</center>
<br>
[コンテキスト]ビューの[項目数]列には、コンテキスト内の翻訳可能な文字列の総数と翻訳された文字列の数が、スラッシュ(/)で区切って表示される。<br>
数値が等しい場合、コンテキスト内の翻訳可能な文字列は、全て翻訳されている。<br>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Qt]]
[[カテゴリ:Qt]]

案内メニュー