User:Nogajun/TranslationUsingOmegaT

From The Document Foundation Wiki
Jump to: navigation, search

OmegaTを使ってLibreOffice関連文書とWikiの翻訳をおこなう

OmegaTという文書翻訳支援ツールがあります。 OmegaTには、翻訳する文章と翻訳された文章を照らしあわせ、同じまたは類似の文章を提示する「翻訳メモリ」という機能があります。 この機能を使うと同じ文を翻訳する手間が省けるほか、同じ言葉を別の翻訳で訳してしまう「翻訳揺れ」が少なくなるので使いこなせれば良いツールですが、 使いはじめるまでが難しい部分もあります。

そこで、OmegaTを使ってLibreOffice関連のドキュメントやWikiを翻訳するための設定をまとめました。

翻訳対象と利用環境

翻訳の対象は、このDocumentation Foundation Wikiや、odt文書として公開されているユーザーガイドコントリビューターズガイドを対象にします。 UIやヘルプの翻訳は https://translations.documentfoundation.org/ のpootle上でおこなっているので、本文書で扱う翻訳文書の対象外とします。

利用環境についてですが、筆者はDebian GNU/Linux Sidを利用していますが設定方法などは一部を除き、他のOSでもほぼ同じ(のはず)です。 適宜置き換えてお読みください。

クイックスタート

手っ取り早く設定して翻訳を始めるかたは、こちらをお読みください。

1. OmegaTをダウンロード

利用環境に合わせてOmegaTをサイトからダウンロードしましょう。

Debianの場合はパッケージもありますが、今回はこちらのアーカイブから安定版の3.1.9を利用しました。 インストールは、Linuxの場合はアーカイブファイルなので展開して適当な場所に配置します。 その他のOSのかたはインストーラにしたがってインストールしてください。

2. プロジェクトファイルをダウンロード

LibreOffice翻訳用に設定されたOmegaTプロジェクトファイルをダウンロードします。 下のリンクをクリックして「libreoffice-trans-ja-master.zip」をダウンロードします。

ダウンロードした「libreoffice-trans-ja-master.zip」を展開して、フォルダ名を「libreoffice-trans-ja」に変更します。

3. OmegaTにプロジェクトを設定する

OmegaTを起動し、メニュー[プロジェクト]→[開く]から展開したプロジェクトフォルダを指定します。 「翻訳対象ファイル一覧」ダイアログは閉じておきます。

4. 翻訳を始める

プロジェクトのsourceフォルダに原文ファイルを置き、F5キーを押します。 再度「翻訳対象ファイル一覧」ダイアログが開くので、一覧からファイルを選んで翻訳を始めます。

OmegaTの使い方については「試してみよう」や「翻訳してみよう」を参考にしてください。

チームプロジェクトを利用する(翻訳メモリを共有したい方向け)

翻訳メモリを共有したい方向けの設定です。クイックスタートで設定した方はこの章を飛ばしてください。

OmegaTには、gitを利用して翻訳メモリを共有するチームプロジェクトという仕組みがあります。 githubにチームプロジェクトリポジトリを用意したので、これを利用してセットアップすることもできます。

こちらも簡単にセットアップできますが、githubリポジトリの書き込み権限が必要ですので利用したい方は野方までお問い合わせください。 チームプロジェクトの設定方法は、メニュー[プロジェクト]→[チームプロジェクト]を開き、リポジトリに以下のアドレスを設定してください。

https://github.com/nogajun/libreoffice-trans-ja

OmegaTのセットアップ(自分で設定する方向け)

この章はクイックセットアップを利用せず、自分でOmegaTにLibreOffice関連ドキュメント翻訳用の設定をおこなうかた向けの設定です。 クイックセットアップやチームプロジェクトで設定した方は飛ばしてください。

プロジェクトの作成

OmegaTを起動したら最初にプロジェクトを登録します。プロジェクトの登録は、メニューバー[プロジェクト]→[新規作成]を選択します。 プロジェクト保存のためのフォルダを指定しますが、今回は「LibreOffice」という名前でフォルダを作成しプロジェクトとしました。

Omegat project.png

続いてプロジェクトの設定ですが「訳文ファイル言語」を「JA」に変更する以外は特に変更しなくてよいでしょう。 作成すると「訳文ファイルの選択」ダイアログが表示されますが閉じて、いったんOmegaTを終了しておきます。

プロジェクトフォルダの階層

OmegaTを終了すると、プロジェクトフォルダ内にいくつかファイルやフォルダが生成されます。そのファイルやフォルダについて一覧と簡単な解説をまとめました。 詳しい働きについてはOmegaTマニュアルを参照してください。

libreoffice/
├── dictionary/ (辞書を置く。jmdict-en-jaのファイルは後述のJMdictを置いた状態。)
│   ├── jmdict-en-ja.dict.dz
│   ├── jmdict-en-ja.idx
│   └── jmdict-en-ja.ifo
├── glossary/ (用語集を置く。)
│   └── glossary.txt
├── libreoffice-level1.tmx (tmxの拡張子は訳文を生成すると作成される翻訳メモリ。訳文生成前には無い。)
├── libreoffice-level2.tmx
├── libreoffice-omegat.tmx
├── omegat/ (プロジェクトの設定などが置かれる。)
├── omegat.project
├── source/ (原文を置く。再帰的に読み込まれるので翻訳したい文書をフォルダに分けて置ける。)
├── target/ (原文から生成された訳文が置かれる。)
└── tm/ (翻訳メモリを置く。別のプロジェクトの翻訳メモリを使う場合に利用。)
    └── auto/

英和辞書(JMdict)を設定する

OmegaTで英和辞書を引くための設定をしましょう。 OmegaTで利用できる辞書形式はStarDict形式であれば利用できます。 自由に利用できる辞書としてはJMdictがあるので、 まずはJMdictを利用できるようにしましょう。 StarDict形式に変換されたJMdictは、Fedoraのリポジトリに置いてあるものが手軽に利用できるので、これを利用します。

JMDictのアーカイブをダウンロードして展開すると中にjmdict-en-ja.dict.dz, jmdict-en-ja.idx, jmdict-en-ja.ifoの3つのファイルがあります。 この3つのファイルをプロジェクトディレクトリのdictionaryディレクトリに移動します。

 $ tar xvfa stardict-jmdict-en-ja-2.4.2.tar.bz2
 $ mv stardict-jmdict-en-ja-2.4.2/* (プロジェクトディレクトリ)/dictionary/

これで辞書が引けるようになりました。 英辞郎などをお持ちの方は変換して利用できるようなので、できる方はそれも設定しておくと良いでしょう。

翻訳済みメッセージファイルをダウンロード

プロジェクトで利用する翻訳メモリや用語集を作成するために、Document Foundationの翻訳(pootle)サーバーから翻訳済みメッセージファイルをダウンロードします。

まずは翻訳サーバーにアクセスします。

翻訳サーバーの利用にはアカウントが必要なので、持っていない人はあわしろいくや氏のドキュメントを参考にアカウントを作成してログインしてください。持っている人はログインします。

Tdf pootle download1.png

ログインするとこのような画面になります。

左側にそれぞれ翻訳するUIやヘルプが並んでいますが、この中からLibreOffice最新のUIとHelpの翻訳ファイルであるLibreOffice master UIとLibreOffice master Help、 そして関連するImpress Remote、用語集を作成するために必要なTerminologyのオフライン翻訳用ファイルをそれぞれダウンロードします。

スクリーンショット内の赤線と赤枠部分で囲んだ部分の名前を抜き出すと以下になります。

Tdf pootle download2.png

名前をクリックすると上のような画面に移動します。 画面右側の「Download for offline translation」と書いてあるリンクがあり、この部分をクリックすると翻訳済みファイルがダウンロードできます。

ダウンロードの注意としては、UIとHelpはファイルサイズが大きいのでクリック後かなり待つ必要があります。少し忘れたぐらい経ってからダウンロードダイアログが表示されるので気をつけてください。 そして、Impress RemoteとTerminologyのファイルは「ja.po」という同じファイル名でダウンロードされます。上書きしないように気をつけてください。

用語集を登録する

ダウンロードしたTerminologyをOmegaTの「用語集」として登録します。

OmegaTが用語集として扱えるファイル形式は、タブ区切りのテキスト形式(TSV)ですが、ダウンロードしたTerminologyはgettextのpo形式です。 そのままでは用語集として使えないので、これをTSVの形に変換します。 poからTSVの変換は、translate-toolkitに含まれるpo2csvを使うとCSVに変換できるので、これを利用し、 細かい部分の整形はsedの置換を使って変換します。

translate-toolkitをインストール

$ sudo apt update
$ sudo apt install translate-toolkit

用語集の変換

$ po2csv --columnorder=source,target (ダウンロードしたTerminology).po | sed -e '1d' -e 's/,/\t/g' -e 's/\"//g'  > glossary.txt

作成したglossary.txtは、プロジェクトのglossaryフォルダまで移動しておきます。

LibreOfficeの翻訳済みファイルを翻訳メモリに登録する

ダウンロードした翻訳済みファイルを翻訳メモリとして登録します。 翻訳メモリは、OmegaT上で原文から訳文を生成すると自動的に登録されるので、sourceフォルダに翻訳済みファイルを置きOmegaT上で訳文を生成します。

sourceフォルダへの翻訳済みファイルの配置は、souceフォルダ以下であればどこでも構いませんが、翻訳する文書のカテゴリ別にフォルダを作成して分けておくと整理しやすいので、 翻訳済みファイル置き場のフォルダを作成し、その中に翻訳済みファイルを置くことにします。

翻訳済みファイル置き場のフォルダ名を「pootle」としてフォルダを作成しました。 そしてpootleフォルダ以下にダウンロードしておいたja-libo_ui.zipja-libo_help.zipを展開し、Impress remoteのja.poはほかのメッセージファイルに合わせてフォルダを作成して配置しました。

sourceフォルダ以下はこのような形になりました。

source/
└── pootle/ (ダウンロードした翻訳済みファイル置き場)
    ├── ja-libo_help/ (展開した翻訳済みHelpファイル)
    ├── ja-libo_impress-android/ (翻訳済みImpress Rmote)
    │   └── ja.po
    └── ja-libo_ui/ (展開した翻訳済みUIファイル)

翻訳済みファイルを配置したらOmegaTを起動し、libreofficeプロジェクトを開きます。 しばらく待つと「翻訳対象ファイル一覧」ダイアログが表示されるので「閉じるボタン」を押して閉じます。

訳文の生成はメニュー[プロジェクト]→[訳文ファイルを生成]を選択します。 初回は生成するファイルが多いのでここでもしばらく待ちますが、OmegaTウィンドウのステータスバーに「訳文ファイルの生成を完了しました」と表示されれば訳文の生成は終わりです。 targetディレクトリに訳文ファイルが生成され、同時にプロジェクトフォルダにはlibreoffice-level1.tmx, libreoffice-level2.tmx, libreoffice-omegat.tmxの3つの翻訳メモリファイルが作成されます。

以上でOmegaTを利用するための準備は終わりです。

試してみよう

準備が整ったので確認も含めてOmegaTを操作してみましょう。 「翻訳対象ファイル一覧」ダイアログでファイルを選択していなければ、libo-helpのauxiliary.poが選択されているはずなので、これを例に説明します。 (クイックスタートなどで設定した方は、sourceフォルダに翻訳したいファイルを置いてください。)

Omegat2.png

まず、ウィンドウ右下に用語集パネルがありますが、用語集が登録できていれば原文に応じてこのように用語が表示されます。 編集中にCtrl+Shift+Gを押すと用語の挿入もできます。

Omegat3.png

ウィンドウ下側のタブに辞書という文字が見えますが、クリックすると辞書が下からせり上がって表示されます。 ウィンドウのレイアウトはパネル右側にあるボタンで変更できるので、常時表示にすることもできます。

Omegat4.png

EnterキーCtrl+Nを押すと次の文節に移動します。移動すると参考訳文パネルに以前訳した文とマッチする訳文が表示されます。 この中でマッチする訳文があればCtrl+数字で訳文を選び、Ctrl+Iで選択した参考訳文を挿入、Ctrl+Rで置換することができます。 原文に戻したい場合は、Ctrl+Shift+Iで原文の挿入、Ctrl+Shift+Rで原文に置換もできます。

このauxiliary.poは、すでに翻訳済みですが、翻訳をするときはこのような形で文節ごとに翻訳を進めていきます。 翻訳が終われば、Ctrl+Sでファイルを保存します。原文と訳文は別々に管理されているので、原文・訳文を気にすることなくこまめに保存しておくとよいでしょう。 翻訳対象のファイルを変更するには、Ctrl+Lを押すと「翻訳対象一覧ファイル」ダイアログが開くので一覧から選択して変更します。

翻訳が終われば訳文を生成します。 訳文の生成は、翻訳メモリの登録でしたようにメニューから選ぶかCtrl+Dを押すと生成されます。生成は変更のあったファイルのみなので一瞬で終わると思います。

生成された訳文は、プロジェクトのtargetフォルダ以下にあり、最終的な翻訳の成果物はtargetフォルダにあるファイルが成果物となります。

翻訳してみよう

確認と簡単な使い方がわかったら、LibreOffice関連の文書を翻訳してみましょう。 同じプロジェクトの文書を翻訳する場合、sourceフォルダに文書を置くと翻訳の対象になるので、ジャンル・カテゴリ別にフォルダを作成して、その中に翻訳したいファイルを置くとよいでしょう。

Wikiの翻訳

OmegaTには、MediaWikiのページを翻訳対象として翻訳する機能がありますが、TDF Wikiだけその機能がうまく動かないので手動でページソースをダウンロードする必要があります。 その場合、以下のような手順をとる必要があります。(もっと効率の良い方法があれば教えてください。)

  1. TDF Wikiの翻訳したい原文のWikiページに移動します。
  2. Wikiの編集ボタンを押して、ソースを全部コピーします。
  3. sourceディレクトリ下の適当な場所(筆者はWikiフォルダを作成してその中に置いてます)に「(ファイル名).UTF8」というファイルを作成します。
  4. 作成したファイルを開き、コピーしたWikiの内容を貼り付けます。
  5. OmegaTを使い「(ファイル名).UTF8」を翻訳します。

単独のページを翻訳する場合は以上のようになると思いますが、複数のページを翻訳する場合はMediaWikiのページ書き出し機能を使って書き出すとよいかもしれません。 そして、翻訳結果をWikiページを反映させる方法ですが、TDF Wikiが対応していないので生成されたファイル内容をコピー・アンド・ペーストでWikiに貼り付ける方法しかないと思います。

あとで書く。

OmegaTから直接TDF Wikiを読み込めるようにする

OmegaTからTDF Wikiページの登録ができない原因は、JavaがTDF Wikiが使用しているSSL証明書を信頼していないことが原因でアクセスできないそうです。 [1]

解決方法としては、Atlassianのサイトで説明があるように Portecleを使って認証局の証明書をJavaにインボートすれば直接アクセスできるようになりますが、 セキュリティ上の問題を起こす可能性もあるので紹介だけにとどめておきます。

odt文書の翻訳

LibreOfficeコミュニティで公開されている文書には、前述のユーザーガイドやドキュメントチームの コントリビューターズガイドのようにodt文書として公開されているものがあります。 OmegaTはodt文書の翻訳にも対応しており原文ファイルを改変することなく(!)翻訳ができます。

odt文書を翻訳する方法ですが、sourceフォルダにodtファイルを置くだけで翻訳対象になります。 ですので、通常の文書と同じく「翻訳対象一覧ファイル」ダイアログからodt文書を選ぶだけで翻訳作業ができます。 訳文を生成するとodt文書のまま翻訳されて出力されます。

例としてリファレンスカードを翻訳してみましょう。

WikiのDocumentation/Publicationsページのリファレンスカードから、 LO4.x_Reference_A4_Writer_Calc_Impress.odtをダウンロードして、プロジェクトのsourceフォルダに置きます。

Odttranslate1.png

OmegaTを起動しプロジェクトを開くと、odtファイルが「翻訳対象ファイル一覧」に追加されているので、 ファイルを選択するとodt文書が読み込まれますが、いくつか翻訳された状態になっています。 これは、翻訳メモリにマッチした言葉をOmegaTが自動的に置き換えているためです。 マッチした文が正しい訳とは限らないのでチェックをする必要はありますが、 翻訳の手間が省けることは実感できるのではないでしょうか。

あとは、翻訳をすすめていけばいいのですが、注意としては文中に含まれるタグを消さないようにしてください。 かなり面倒なヤツですがodtの場合はタグのフィルタリングができないので、今のところは注意するしか無いようです。 [2]

翻訳がある程度進んだら、Ctrl+Dを押して訳文を生成してみましょう。 targetフォルダに生成されたodt文書があるので開くと、書式はそのままで翻訳されていることがわかると思います。

翻訳が終わったら、別のリファレンスカードをダウンロード、翻訳対象に加えてOmegaTで開いてみましょう。 最初の置き換えからさらに翻訳する部分が少なくなっているはずです。

生成されたodt文書の文字がおかしい

生成されたodt文書を開くとフォントが日本語と違う場合があります。 これは、原文のodt文書にアジア諸言語の設定がないために起こります。

解消方法としては、生成された文書を開き、オプションの言語設定でアジア諸言語の「日本語」を有効にしてフォントの設定し直し、 スタイルのアジア諸言語のフォント設定をすると直ります。 同じ書式の文書が大量にある場合は、オプションの設定をする必要はありますが、別途スタイルを作成し読み込ませて適用すると良いでしょう。

最後に

翻訳メモリと用語集、辞書が使えるだけでかなり効率が上がるので、ぜひ試してみてください。 そして、よりよいドキュメントを作成していきましょう。

脚注

  1. @brandelune @nogajun JavaはこのwikiのSSL証明書を信頼していないので、OmegaTの中ではどうにもできません。お使いのJavaのトラストストアに証明書を手でインポートするしかないです。インポート方法: https://confluence.atlassian.com/display/KB/Connecting+to+SSL+services
  2. 2014年のLibreOffice ConferenceでOmegaTを使って翻訳というセッションがあり、その中でもタグ問題に言及されていたようです。 ツールで取り除くしかなさそう。