OmegaT には、Subversion や Git のような VCS(バージョン コントロール システム)と連携できる「チーム機能」があります。
ここでは OmegaT-jp リポジトリの日本語化作業を行う方を対象に、チーム機能の使い方を説明します。
なお OmegaT 3.1.0 時点での記述になるため、将来のバージョンには 当てはまらない可能性があります。
以下で、日本語版のインターフェイスを前提に、チーム機能の初回の設定手順を説明します。 他の言語版の UI を使う場合は、適宜読み替えてください。 また画像やサンプルコマンドは Windows OS を例にとっていますので、他の OS の場合は、 やはり適宜読み替えてください。
メニューから [プロジェクト]-[チームプロジェクトをダウンロード] を選択します。
[チームプロジェクト] ダイアログが表示されます。
以下の通りに設定を行います。
項目 | 設定値 | 備考 |
---|---|---|
リポジトリ URL | svn+ssh://YourUserName@svn.code.sf.net/p/omegat-jp/code/omegat/trunk/ | OmegaT の UI、取扱説明書用 |
ローカルフォルダー | C:\Your\Working\Copy\omegat-jp-omegat | OmegaT の UI、取扱説明書用 |
リポジトリ URL | svn+ssh://YourUserName@svn.code.sf.net/p/omegat-jp/code/website/trunk/ | Web サイト用 |
ローカルフォルダー | C:\Your\Working\Copy\omegat-jp-website | Web サイト用 |
項目 | 設定値 | 備考 |
---|---|---|
リポジトリ URL | svn://svn.code.sf.net/p/omegat-jp/code/omegat/trunk/ | OmegaT の UI、取扱説明書用 |
ローカルフォルダー | C:\Your\Working\Copy\omegat-jp-omegat | OmegaT の UI、取扱説明書用 |
リポジトリ URL | svn://svn.code.sf.net/p/omegat-jp/code/website/trunk/ | Web サイト用 |
ローカルフォルダー | C:\Your\Working\Copy\omegat-jp-website | Web サイト用 |
設定が済んだら、[確定] ボタンをクリックします。
プロジェクトのダウンロード(チェックアウト)が行われますので、少し待ちます。
チームプロジェクトのローカル作業コピーが作成されると、ファイル一覧が表示されます。
ファイルはたくさんありますが、とりあえず UI の作業をするなら、リストの一番下にある Bundle.properties を選べばよいです。
あるいは単純に未訳分節から作業するなら、特にファイルを選ばずに、ショートカット Ctrl+U で未訳分節に移動します。
あとは、特にチーム機能を意識する必要はありません。 OmegaT 上で、ふつうに翻訳してください。
ローカルで変更を保存すると、自動的にリモートリポジトリ(この場合は OmegaT-jp の svn リポジトリ)に変更がコミットされます。
このとき、以前に認証を済ませていない限り、次のような認証ダイアログが表示されます。
他のチェックボックスは、特に事情が無い限り、チェックする必要はありません。
項目を入力して [確定] ボタンを押すと、認証が完了してコミットが実行されます。一度この認証を済ませると、次回からは何も訊かれることなく、透過的にコミットが実行されます。
なお、もし初回の作業時に何も変更を保存しなかった場合は、認証を要求されません。
その場合は、二回目以降の作業時に、何かしらの変更を保存するタイミングで認証を要求されます。
項目 | 設定値 | 備考 |
---|---|---|
ユーザー名 | sourceforge.net のユーザー名 | |
パスワード | sourceforge.net のパスワード |
作成済みのチームプロジェクトを開く場合は、通常の OmegaT プロジェクトとまったく同じように、[プロジェクト]-[開く] からプロジェクトを開いてください。
チームプロジェクトのダウンロード作業は、初回以外は必要ありません。
同じプロジェクトについて複数のメンバーが並行して作業する場合、 同一分節を別々に訳してしまう可能性があります。
先に保存したユーザーの場合は問題ありませんが、 後から保存するユーザーの場合はコンフリクト(競合)が発生します。
このような場合、OmegaT 3.1.0 からは、マージ(競合解決)用のツールとして内蔵されている SuperTMXMerge が起動し、 ユーザーがグラフィカルに競合解決方法を選べるようになります。
具体例を見ていきましょう。
以下は、同じ文書を2人のユーザーが翻訳している状態を模したものです。
左のユーザーが先に保存します。この時点では問題ありません。
次に、右のユーザーが保存します。この時点で競合が発生するため、 自動的に SuperTMXMerge の画面が起動します。
画面は詳細表示のものです。
ローカルで自分の変更した情報、変更前の情報、サーバーの変更後の情報など、マージに必要な情報がすべて表示されていることが分かります。またデータの差分は書式付きで表示されているため、どこが違うのか一目瞭然です。
画面左下のボタンを押すと、一覧表示に切り替えることができます。
競合分節の数が多い場合は、全体を把握しやすいよう、最初から一覧表示の方で表示されます。
一括してどれかを採用すれば良い場合は、画面上部の[~をすべて採用する]ボタンを押すだけです。
個別に決めていく場合は、採用したい枠をクリックします。採用すると、太枠に変わります。
画面右下のボタンで移動しながら、次々と採用していきます。
すべて採用が決まると、右下隅の[完了]ボタンが有効になります。[完了]ボタンを押して、マージ終了です。
svn や Git のマージ処理というと、CUI で作業するイメージをお持ちの方も多いかもしれませんが、 OmegaT の場合は、このように分かりやすい画面で誰でも簡単に作業できるようになっています。
同期対象は、project_save.tmx と、既定の用語集ファイル(ProjectName-glossary.txt)だけです。
それ以外のファイルについては、ローカルで何を変更しても、リモート リポジトリには影響しません。
たとえば訳文ファイルを生成したり、外部 TMX ファイルを追加したりしても、それはローカルのみの変更に留まります。
ありません。
OmegaT の svn アクセスは Java ライブラリの SVNKit を利用しているため、外部ツールには依存しません。OmegaT 自体が Subversion クライアントになっているため、OmegaT をインストールしたら、すでに Subversion クライアントをインストールしたのと同じことになります。
はい。リモート リポジトリには影響しません。
ただし、同期した時点でリモート リポジトリに存在してワーキングコピーに無いファイルは再ダウンロードされますので、 削除してもすぐに復活することになります。ネットワークに負荷がかかるだけで、あまり意味はありませんので、お勧めはしません。
フォルダーごと削除してください。
ローカルのワーキングコピーを削除しても、リモート リポジトリには影響しません。
いいえ。
認証情報はチームプロジェクトとは別管理されています。 これは OmegaT が管理しているわけではなく、Subversion の管理下になります。
チームプロジェクトを削除しても認証情報は残るため、ある時点でもう一度 チームプロジェクトをダウンロードし直すと、認証済みの状態で利用を再開できます。
バージョン 3.1.0 未満では、後に保存した人が勝ちます。 先に保存したユーザーによる変更は上書きされ、特に警告は上がりません。
現在の OmegaT-jp の活動頻度からすると、衝突の可能性は低いと考えられるため、 現時点では特に対策を立てる予定はありません。
なおバージョン 3.1.0 以降では、OmegaT に内蔵された差分・マージ用のツール SuperTMXMerge が起動して、競合の解決方法をユーザーが選べるようになります。
翻訳作業の結果、翻訳メモリファイル(TMX ファイル)が更新された場合は、 以下の形式でログに記録されます。
Translated by UserName
用語集ファイルが更新された場合は、以下の形式でログに記録されます。
Added glossaryitem(s) by UserName
実例は Code Log - omegat-jp をご覧ください。
もし一回のセッションで翻訳メモリと用語集の両方が更新された場合は、 それぞれ別々にコミットされます。つまり同期時に二回のコミットが発生し、 ログもそれぞれ個別に記録されます。
今のところ、コミットログの形式をカスタマイズする方法はありません。
名前はプロジェクト固有の設定ができませんので、残念ながら、 簡単に使い分ける方法はありません。
作業時に名前を設定しなおすか、あるいは OS のユーザーアカウントを作業別に用意したり、 個人設定ファイルをリネームして切り替えるバッチファイルを用意するなどして、 対応してください。
現時点での代替策としては、JRE の起動オプションでユーザー名を指定する方法があります。
これはチーム機能の名前を未設定の場合(個人設定ファイル omegat.prefs に team_Author エントリが無い状態)に限り、指定が通ります。
Windows ユーザーの場合は、以下のようなコマンドラインで起動すると、 任意のユーザー名(YourUserName の部分で指定)でチームプロジェクトを開くことができます (OmegaT.jar のパスは環境によって異なる可能性があるため、適宜読み替えてください)。
java -Duser.name=YourUserName -jar "C:\Program Files (x86)\OmegaT\OmegaT.jar"
Windows の場合、パスワードは以下に保存されています。
OS | フォルダー | 例 |
---|---|---|
Vista, 7, 8 | %APPDATA%\Subversion\auth\svn.simple | C:\Users\YourUserName\appData\roaming\Subversion\auth\svn.simple |
XP | %APPDATA%\Subversion\auth\svn.simple | C:\Documents and Settings\YourUserName\Application Data\Subversion\auth\svn.simple |
上記の中に、拡張子無しの、英数字が羅列された名前のファイルがあります。 ひとつしか無ければ、それを削除してください。
ファイルが複数ある場合は、メモ帳などの任意のテキストエディタで開いてみてください。
ファイルの中に、リモートリポジトリの URL(https://sourceforge.net/p/omegat-jp)と、 あなたのユーザー名が記述されていれば、それが目的のファイルです。 そのファイルを削除してください。
なお OmegaT 3.4 アップデート 1 から、svn 認証情報を削除するためのスクリプトが付属します。
最新版をお使いの場合は、スクリプトを利用すると認証情報を簡単に管理できます。
はい。
2.6.1u2 で、コマンドライン オプション "--no-team" がサポートされました。
Windows ユーザーの場合は、以下のようなコマンドラインで起動すると、 同期を無効にしてチームプロジェクトを開くことができます(OmegaT.jar のパスは環境によって異なる可能性があるため、適宜読み替えてください)。
java -jar "C:\Program Files (x86)\OmegaT\OmegaT.jar" --no-team
また同期有効のままでも、 OmegaT がチームプロジェクトの同期を試みた時点で、 インターネットに接続していなかった場合は、 次のようなダイアログが表示されます。
このとき、ログには同期エラーが記録されますが、 オフラインで問題なく作業できます。
作業中にインターネットへ接続可能になった場合は、 やはりチームプロジェクトの同期を試みた時点で、 次のようなダイアログが表示されます。
オフライン作業時の変更は、このタイミングでまとめて同期されます。
チームプロジェクトはリポジトリの同期中にリモートサーバーと通信をするため、 その間は操作のレスポンスが重くなることがあります。
同期はチームプロジェクトを開くときと、主に保存時に行われます。 これはユーザーが明示的に保存の操作を行った場合に限りません。 自動保存時などにも、暗黙的に保存が行われます。 チームプロジェクトの場合は、その結果として、同期処理が発生します (3.1.0 以降は、訳文ファイル生成時には同期しなくなりました)。
もしあまりにも頻繁に操作が重くなる場合は、[設定]-[保存と訳文ファイル生成] から自動保存の間隔を確認してみてください。
初期設定は 10 分間隔になっていますが、ユーザーによっては 5 分などの、 もっと短い間隔に設定しているかもしれません。 通常のプロジェクトでは問題になりませんが、チームプロジェクトで操作性に支障をきたす場合は、 20 分など少し長めの間隔に設定してみてください。
翻訳メモリファイル(project_save.tmx)のヘッダーには OmegaT のバージョンを記録する属性が存在します。
このため、メンバーが異なるバージョンの OmegaT を使用していると、 翻訳メモリファイルのヘッダーが差分とみなされ、 何も翻訳していなくても保存時にコミットされるという現象が起きます。
今のところ、この挙動を防ぐオプションはありません。
気になる場合は、使用する OmegaT のバージョンをメンバー間で揃えるようにしてください。
はい。
[設定]-[翻訳入力行...]-[原文と同じ訳文を許可] に、チェックを入れておいてください。
もしチェックが外れていると、原文と同じ訳文が設定されている分節を離れる (アクティブにしてから別の分節へ移動する)だけで、 訳文が削除されてしまいます。
この設定は今のところプロジェクト専用の設定が存在しないため、 作業者の環境によって設定値が異なる可能性があります。
なおバージョン 3.1.0 からは、この動作が改善されています。 [原文と同じ訳文を許可] の設定がオフになっている場合でも、 原文と同じ訳文が設定されている分節を離れるだけで訳文が削除されることは無くなりました。
また、やはり [原文と同じ訳文を許可] の設定がオフになっている場合でも、 分節単位で原文と同じ訳文を登録できるようになりました ("Register Identical Translation"「原文と同一訳文を登録」コマンド)。
ただ 3.1.0 以降のバージョンの使用を全メンバーに強制できない状況では、 依然として上記設定を推奨します。