付録C OmegaT チームプロジェクト

1. バージョン管理 - はじめに
2. SVN でプロジェクトを共有する
2.1. リポジトリの作成
2.2. SVN リポジトリにプロジェクトをインポートする - Windows の場合
3. OmegaT でチームプロジェクトを使う

1. バージョン管理 - はじめに

OmegaT はバージョン管理に基づいた共同翻訳機能を提供します。バージョン管理はソフトウェアの分野で広く使われている手法で、プログラムのソースコードに関する変更を維持・管理し、チームによる共同開発作業を強力に支援します。OmegaT は非常に普及している2つのバージョン管理システム(以下、VCS)に対応しています。Apache Subversion(コマンド名が svn であることから、しばしば SVN の略称で呼ばれる)と、Git です。翻訳者のチームが VCS を使うことには、次のような利点があります:

  • 複数のチームメンバーが、お互いに邪魔することなく、同じ翻訳プロジェクトで同時に作業できます

  • プロジェクトの翻訳メモリや用語集などを、共有できます

  • デフォルトでは3分ごとに、最新データがチームメンバーに共有されます。

  • システムが、共有データのバージョン管理を行います

  • 競合(たとえば、同じ分節や用語を複数人が同時に編集している状態)を監視して、マージし、解決できます

以下は、本章で使用される用語の簡単な説明です:

  • VCS サーバー:ここでは、SVN や Git のサーバーを指します。ネットワーク上で共有データを維持・管理する環境です。サーバーはローカルネットワーク上にも存在できますが、たいていの場合はインターネット上に存在し、URL を指定してアクセスします。少なくともチームの誰か一人は、プロジェクトの管理者として、サーバー側の管理に通じている必要があります。環境設定や OmegaT プロジェクトのインポート、メンバーに対するアクセス権の賦与、競合の解決などが仕事です。

  • VCS クライアント:サーバーへのインターフェースです。プロジェクトの管理者は、SVN または Git 用のクライアントをコンピューターにインストールして、OmegaT プロジェクトを管理します。Windows 向けの汎用クライアントとしては、TortoiseSVNTortoiseGit が有名です。Linux や Mac OS X など、他の OS 向けにも同様のパッケージが存在します。

  • リポジトリ:データを維持・管理する場所の単位です。ローカルネットワークに存在する場合もあれば、インターネット上の場合もあります。プロジェクトメンバーが、VCS クライアントを介して接続する先が、これになります。

  • チェックアウト:ローカルコンピューター上にリポジトリの作業コピーを作成する操作を指します。(日本語訳註:Git では同様の操作を「クローン」と呼びます)サーバーは、チェックアウト情報を保持します。これによって、後でコミット(下記を参照)がうまく機能します。

  • コミット:チェックアウトしたデータをローカルで編集して、あるていどの区切りが付いたら、リポジトリにコミットします。これによって、チームの他のメンバーにも最新のデータを共有可能になります。すべての衝突や競合(複数のメンバーがチェックアウトした同じデータを編集している状態)が解決されるまで、サーバーはコミットを受け付けません。

  • 管理者:リポジトリの作成と維持の責任者。サーバー側の作業を担当します。問題を避けるために、最初のうちは決まったひとりの人が担当するとよいでしょう。

  • ユーザー:プロジェクトで共同翻訳するチームのメンバー。

2. SVN でプロジェクトを共有する

SVN サーバーを使うには、2つの選択肢があります。自前のサーバーに SVN をインストールするか、ホスティングサービスを利用するか、です。外部サービスを利用するなら、元の文書を外部のサーバーにアップロードする前に、機密保持の観点から問題が無いか、よく検討した方が良いでしょう。この問題を避けるために、プライベートな SVN サーバーを立てるという手もあります。たとえば、すでに Apache サーバーを管理しているのであれば、VisualSVN のようなプログラムをインストールすれば済むかもしれません。

SVN サーバーを利用可能になったら、プロジェクト用のファイルを管理できます。管理者はそのために、SVN クライアントをローカルコンピューター上にインストールしておく必要があります。Windows 向けには、TortoiseSVN を勧めます。Mac 向けのクライアントは SourceForge などで見つけることができます。Linux 向けの情報は、『Subversion Commands and Scripts』(英語)を参照してください。

2.1. リポジトリの作成

ここでの説明には、ProjectLocker(フリープランは2ユーザーまで)の SVN サーバーを例に取ることにします。(日本語訳注:日本語で使える同様のサービスには、フリープランが 10 ユーザーまでの Backlog(www.backlog.jp)などがあります)リポジトリの作成者は、暗黙的に管理者権限を持つことになりますので、注意してください。まずサイトにログインします。サイトを利用するのがはじめての場合は、ユーザー登録をしましょう。後で必要になるので、ユーザー名とパスワードは忘れないようにしてください。

  1. ProjectLocker で新しいプロジェクトを作成します

  2. リポジトリの名前と説明を入力します(この例では「OmegaT」と「OmegaT SL Localization」と入力したものとします)

  3. SVN」を選びます

  4. Create Project」をクリックします

自分のアカウントの Projects ビューを開きましょう。プロジェクトサービスの下に表示されている URL は、SVN クライアントからサーバーに接続する際に使います。同じ画面から、チームメンバーを追加したり、権限を割り当てることができます。チームメンバーを追加するには、そのメンバーが先にユーザー登録を済ませている必要があります。ProjectLocker のフリープランは、1プロジェクト2ユーザーまでなので、注意してください。

プロジェクトは、自分のニーズと開発スタイルに合わせて管理できます。OmegaT プロジェクトの場合と同様に、言語ペアごとにリポジトリを分けてもかまいません。言語ペアが同じであっても、依頼主や案件が違うなら、やはりリポジトリを分けた方がよいでしょう。あるいは、ひとつのリポジトリ内で「Project1」、「Project2」のようにサブフォルダーを作って分ける方法もあります(日本語訳註:この方法は、SVN でのみ有効です。Git では1リポジトリを部分使用できないため、たとえば前述の Backlog ではフリープランでも Git のリポジトリ数は制限されません)。そして共有したいデータを tm フォルダー、glossary フォルダー、dictionary フォルダーに置きます。

以下では、説明を単純にするために、ひとつの OmegaT プロジェクトに対してひとつのリポジトリを使うことにします。

2.2. SVN リポジトリにプロジェクトをインポートする - Windows の場合

先ほど作成したリポジトリは、まだ空の状態です。では、まずローカルコンピューターのディスク上に空のフォルダーを作成しましょう。プロジェクトを配置するための空のフォルダーを作成したら、その上で右クリックします。TortoiseSVN をインストールしてあれば、コンテキストメニューに[SVN チェックアウト(K)...]というコマンドが出てきます。それを選ぶと、下図のようなダイアログが表示されます。

ProjectLocker から取得した URL を[リポジトリのURL]欄に入力します。[チェックアウト先のディレクトリ]欄が正しい(先ほど作成した空のフォルダーが指定されている)ことを確認し、[OK]ボタンを押します。この操作が完了すると、フォルダーは作業コピーとなって、サーバーの最新の状態に同期されます。フォルダーのアイコンの上には、緑色の OK バッジが重なって表示されます。またフォルダーの中には、管理用の .svn フォルダーが作成されています(ただし隠しフォルダーなので、シェルの設定によっては表示されません)。

次の手順として、作業コピーフォルダーに OmegaT のファイルを追加しましょう。以下は、チームメンバーと共有するファイルです。チームプロジェクトは、これらのファイルを含みます:

  • omegat プロジェクトファイル -- omegat.project

  • 翻訳メモリファイル -- omegat\project_save.tmx

  • source フォルダー内の原文ファイル

  • プロジェクト専用のフィルター定義ファイル(省略可)-- omegat\filters.xml

管理者は、次のフォルダーとその内容についても、同様に含めることができます:tm フォルダー、glossary フォルダー、dictionary フォルダー。また omegat フォルダーの中の ignored_words.txtlearned_words.txt も、チームで共有して維持していくに値します。omegat フォルダー内の .bak ファイルと project_stats.txt および project_stats_match.txt は、いかなる場合においても含めるべきではありません。これらのファイルを含めても、リポジトリが無意味に肥大化するだけで、何の役にも立ちません。target フォルダーとその内容についても、同じ方針でよいでしょう。

作業コピーフォルダーに必要なファイルをコピーしたら、フォルダーのアイコンが変化することに気づくでしょう。緑の OK バッジだったものが、作業コピーが変更されたことを示す赤い感嘆符に変わったはずです。次の2つの手順で、作業コピーの変更をサーバーに反映させます:

  • 作業コピーフォルダーにコピーしたファイルを「追加」します:作業コピーフォルダーにファイルやフォルダーをコピーしただけでは、SVN の管理下に入りません。そのファイル/フォルダーを SVN が管理するよう、明示的に指定する必要があります。この操作を「追加」と呼びます。「追加」するには、ローカルにチェックアウトしたフォルダーを右クリックして、[TortoiseSVN]→[追加(A)...]を選びます。ダイアログが開くので、デフォルトの設定のまま[OK]ボタンをクリックします。(日本語訳註:右ドラッグでコピーすれば、一回の操作で追加まで完了します)「追加」が完了すると、下図のようなウィンドウが開きます。

    チェックアウトしたフォルダーの中身は、次のような状態になります。

  • ローカルの変更をサーバーにコミットします:作業コピーフォルダーを右クリックして、[SVN コミット(C)...]を選びます。下図のようなウィンドウが開きます。同期したい変更にチェックを付けます。この場合は、追加したファイルとフォルダーが対象です。

    適切なログメッセージを入力して、[OK]ボタンを押します。コミットウィンドウが開き、処理の経過が表示されます。これはサーバー側のリポジトリに対する、はじめてのコミットになります。

  • ローカルの作業コピーを「更新」します:「更新」とは、作業コピーに対してリポジトリの最新状態を反映させる操作を指します。作業コピーフォルダーの上で右クリックして、[SVN 更新(U)...]を選びます。作業コピーフォルダーを開き、リポジトリの最新の状態が反映されたことを確認してください。

3. OmegaT でチームプロジェクトを使う

管理者がチームプロジェクトの設定を済ませたら、メンバーに必要なのは OmegaT でそのチームプロジェクトをダウンロードすることだけです。初回は、メニューから[プロジェクト]→[チームプロジェクトをダウンロード...]を選びます。この操作によって、実際にはプロジェクトがローカルフォルダーにチェックアウトされます。認証情報は記憶されます。毎回入力する必要は、ありません。Linux の場合、もし OmegaT が認証情報の入力を毎回促してくるようであれば、[パスワードを暗号化しないで保存する]チェックボックスにチェックを入れてみてください。

2回目以降に使用する場合は、他の OmegaT プロジェクトとまったく同じように、チームプロジェクトを開くだけです。OmegaT はそれがチームプロジェクトであることを識別して、デフォルトでは3分ごとにすべて自動で同期します。