📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag…
 
(同じ利用者による、間の6版が非表示)
485行目: 485行目:
  # ...略
  # ...略
<br><br>
<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>
文字列の左にあるアイコンを選択すると、その文字列の翻訳受け入れ状態を変更することができる。<br>
緑または黄色のチェックマークは、その文字列が翻訳されて翻訳が承認されたことを意味する。<br>
[?]マークは、翻訳が受理されていない、または、その文字列に翻訳が存在しないことを意味する。<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|フレームなし|中央]] || 文字列に訳語がある。(空の可能性もある)<br>ユーザが翻訳を受け入れて、その翻訳が全ての検証に合格していることを表す。<br><br>訳文が空の場合、ユーザは訳文を空のままにすることを選択したことになる。<br>アイコンを選択すると、翻訳の受け入れが取り消されて、[コンテキスト]ビューの[項目数]列にある受け入れられた翻訳の数が1つ減る。<br><br>文字列に翻訳がある場合は<code>Not Accepted</code>、文字列の翻訳が空の場合は<code>No Translation</code>に状態がリセットされる。<br><br><code>lupdate</code>コマンドにより文字列の内容を変更した場合、その受け入れ状態は自動的に<code>Not Accepted</code>にリセットされる。
|-
| Accepted / Warnings || [[ファイル:Qt Linguist 4.png|フレームなし|中央]] || ユーザが翻訳を承認したが、翻訳が全ての検証に合格していないことを表す。<br>検証の不合格は、[警告]ビューに表示される。<br><br>アイコンを選択して、翻訳文の受理を取り消すこともできる。<br>その時、状態が[検証失敗]にリセットされて、[コンテキスト]ビューの[項目数]列の受け入れ翻訳数が1つ減る。
|-
| Not Accepted || [[ファイル:Qt Linguist 5.png|フレームなし|中央]] || この文字列には、全ての検証に合格した翻訳があるが、ユーザはまだその翻訳を受け入れていないことを表す。<br>アイコンを選択する、または、[Ctrl] + [Enter]キーを同時押下して、翻訳を承認する。<br>この時、状態が[Accepted / Correct]にリセットされて、[Context]ビューの[項目数]列の受理された翻訳文の数が1つ増える。
|-
| No Translation || [[ファイル:Qt Linguist 7.png|フレームなし|中央]] || この文字列には訳語が存在しないことを表す。<br>アイコンを選択することにより、空の翻訳を受け入れることができる。<br>この時、状態が[Accepted / Correct]にリセットされて、[Context]ビューの[項目数]列の受理された翻訳文の数が1つ増える。
|-
| Validation Failures || [[ファイル:Qt Linguist 8.png|フレームなし|中央]] || 文字列には訳語が存在するが、その翻訳が全ての検証に合格していないことを表す。<br>検証に失敗した場合は、[警告]ビューに表示される。<br><br>アイコンを選択する、または、[Ctrl] + [Return]キーを同時押下して、検証に失敗した場合でも翻訳を受け入れることができる。<br>この時、状態は[Accepted / Warnings]にリセットされる。<br><br><u>ただし、検証失敗の原因を修正するために、翻訳を編集することを推奨する。</u><br><br>全ての失敗が修正された時、状態は自動的に[Not Accepted]にリセットされる。
|-
| Obsolete || [[ファイル:Qt Linguist 6.png|フレームなし|中央]] || この文字列は廃止された(コンテキストで使用されなくなった)ことを表す。<br>廃止されたメッセージをファイルから削除する方法については、[[Qtの設定 - Qt Linguist#リリースマネージャ]]を参照すること。
|}
</center>
<br>
==== 文字列のコンテキストの表示 ====
翻訳可能な文字列を含むソースコードファイルがQt Linguistで利用可能な場合、[ソースとフォーム]ビューは[文字列]ビューに現在の文字列のソースコンテキストを表示する。<br>
現在の文字列を含むソースコードの行が表示されて、ハイライトされる。<br>
<br>
ソースコードの文字列を含むファイルが見つからない場合は、予想される絶対ファイルパスが表示される。<br>
<br>
ソースコンテキストに間違ったソースコードの行が表示された場合、恐らく翻訳ファイルとソースコードファイルの同期が取れていないことを意味する。<br>
翻訳ファイルとソースコードファイルを再同期する方法については、[[Qtの設定 - Qt Linguist#lupdateコマンド]]を参照すること。<br>
<br>
Qt Designerで作成されたフォームは、特別なUIファイルに保存される。<br>
Qt Linguistは、翻訳処理中にUIファイルが利用可能であれば、UIファイルを利用して、これまでに行われた翻訳をフォーム自体に表示させることができる。<br>
<br>
==== 翻訳の再利用 ====
===== 翻訳の再利用とは =====
翻訳されたテキストが原文と類似している場合、[翻訳]メニューバー - [ソーステキストからコピー]([Ctrl] + [B]キー)を選択して、ソーステキストを翻訳領域にコピーする。<br>
<br>
Qt Linguistでは、一貫性を確保するために、共通の翻訳セットを提供するフレーズブックを使用する。<br>
フレーズブックは、ソースフレーズ、ターゲット(翻訳)フレーズ、オプションの定義のセットである。<br>
<br>
通常、1つの言語とQtソフトウェアファミリーにつき、1つのフレーズブックが作成される。<br>
フレーズブックは、Qtソフトウェアファミリーの翻訳をフレーズブックで1度作成すればよいため、重複作業を避けるためにも使用できる。<br>
<br>
[文字列]ビューの現在の文字列において、読み込まれた1つまたは複数のフレーズブックに表示されている場合、<br>
[フレーズと推測]ビューに現在の文字列とそのフレーズブックの翻訳の一覧が表示される。<br>
現在の文字列が、既に翻訳されている他の文字列と同じ、または、類似している場合、その他の文字列とその翻訳もこのビューに表示される。<br>
<br>
[フレーズと推測]ビューから翻訳エリアに翻訳をコピーする場合は、[翻訳]をダブルクリックする、または、[翻訳]を選択して[Enter]キーを押下する。<br>
<br>
===== 一括翻訳 =====
Qt Linguistの一括翻訳機能を使用して、フレーズブックにあるソーステキストを自動的に翻訳することができる。<br>
一括翻訳プロセスにおいて、どのフレーズブックをどのような順序で使用するかを設定するには、[編集]メニューバー - [一括翻訳]を選択する。<br>
<br>
現在翻訳されていない項目のみを考慮するかどうか、また、一括翻訳された項目を[Accepted]としてマークするかどうかを指定することができる。<br>
<br>
===== フレーズブックの作成と編集 =====
フレーズブックのファイルは、標準フレーズとその翻訳を含む人が読むことのできるXMLファイルである。<br>
このファイルは、Qt Linguistにより作成および更新されて、多くのプロジェクトやソフトウェアで使用することができる。<br>
<br>
新しいフレーズブックを作成する場合は、[フレーズ]メニューバー - [新しいフレーズブック]を選択する。<br>
<br>
フレーズブックを開く場合は、[フレーズ]メニューバー - [フレーズブック開く]を選択して、Qtフレーズブックファイル(.qph)を選択する。<br>
開いているフレーズブックを表示および変更する場合は、[フレーズ]メニューバー - [フレーズブックを編集]を選択する。
新しいフレーズを追加する場合は、フレーズブックダイアログの[新しい項目]ボタンを押下して、新しいソースフレーズ、訳語、任意の定義を入力する。<br>
これは、同じソースフレーズの異なる翻訳を区別することに対して便利である。<br>
<br>
作業中の翻訳を現在のフレーズブックに追加する場合は、[フレーズ]メニューバー - [フレーズブックに追加]を選択する。<br>
複数のフレーズブックが読み込まれている場合は、1つ選択する必要がある。<br>
<br>
[フレーズと推測]ビューに表示されているフレーズブックのエントリーでエラーを検出した場合、そのエントリを右クリックして[編集]を選択することにより、その場で編集することもできる。<br>
編集後、[Enter]キーを押下して編集モードを終了する。<br>
<br>
フレーズを削除する場合は、[ソースフレーズ]リストからフレーズを選択して、[エントリーを削除]を選択する。<br>
<br>
フレーズブックを印刷する場合は、[フレーズ]メニューバー - [フレーズブックを印刷]を選択する。<br>
<br>
==== 翻訳の検証 ====
Qt Linguistは、翻訳に対して、以下の検証機能を提供する。<br>
* アクセラレータ検証では、原文のフレーズにアンパサンドがある場合に翻訳フレーズが検出されて、その逆も検出される。
* 句読点検証では、ソースフレーズと翻訳フレーズの終端句の違いが重要である場合に、その違いを検出する。<br>例えば、ソースフレーズの末尾に省略記号、感嘆符、疑問符があり、翻訳フレーズには無い場合、または、その逆の場合に警告が表示される。
* フレーズ検証は、フレーズ集にもある原文のフレーズにおいて、フレーズ集に記載されている訳語と異なるものを検出する。
* プレースマーカー検証は、原文と訳文の両方で同じ変数(%1、%2等)が使用されているかどうかを検出する。
<br>
検証の有効 / 無効を切り替える場合は、[検証]を選択する、または、ツールバーのボタンを選択する。<br>
<br>
検証で不合格になった文字列には、[文字列]ビューで[検証不合格]アイコンが表示される。<br>
受理された文字列には、[Accepted / Warnings]のマーク([[ファイル:Qt Linguist 4.png]])が付く。<br>
<br>
検証を無効にして、後で有効にする場合、Qt Linguistは全てのフレーズを再検証して、検証に失敗したフレーズをマークする。<br>
<br>
現在の文字列に入力した翻訳において、検証のいずれかに失敗した場合は、その失敗が警告ビューにリストアップされる。<br>
これらの失敗におけるメッセージは、メイン画面下部にあるステータスバーにも表示される。<br>
<br>
==== 複数言語の同時翻訳 ====
Qt Linguistは、複数の翻訳ファイルを同時に読み込んで編集することができる。<br>
<br>
下図は、英語と日本語の翻訳ファイルを読み込んだ状態である。<br>
<br>
翻訳エリアには、英語と日本語のテキスト編集エリアがあり、これらは色分けされている。<br>
[コンテキスト]ビューと[文字列]ビューでは、ステータス欄が1つから2つになり、同じ色で色分けされている。<br>
<br>
[コンテキスト]ビューの[項目数]列には、両方の言語の値が組み合わされている。<br>
翻訳可能な文字列の数が受理された文字列の数と一致しない場合、どちらかの言語または両方の言語に、翻訳または受理が必要な文字列がある。<br>
[文字列]ビューには、各言語の各文字列の翻訳受け入れ状態が表示される。<br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


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