WEBVTT

00:01.280 --> 00:00:02.560
皆さん、こんにちは。

00:02.560 --> 00:00:04.400
エラリー ジャンクリストフといいます。 

00:00:04.400 --> 00:00:05.680
今日はEmacsのマニュアルの翻訳と 

00:00:05.680 --> 00:00:08.320
OmegaTについてお話しします。 

00:00:08.320 --> 00:00:10.960
セッションに参加いただき、ありがとうございます。

00:10.960 --> 00:00:12.880
自由ソフトウェアの世界では

00:12.880 --> 00:00:15.040
翻訳は本当に大きな意味を持ちます。

00:15.040 --> 00:00:17.119
ほとんどのLinuxディストリビューション、

00:17.119 --> 00:00:18.720
ソフトウェアパッケージ 

00:00:18.720 --> 00:00:19.920
ウェブサイトが 

00:00:19.920 --> 00:00:22.320
異なるプロセスやファイル形式を使い、

00:00:22.320 --> 00:00:23.439
多くのコミュニティによって

00:23.439 --> 00:00:24.880
翻訳されていることをすでにご存知でしょう。

00:24.880 --> 00:00:27.359
翻訳とローカライゼーションについては

00:27.359 --> 00:00:29.599
ノウハウと経験がかなり蓄積されています。

00:29.599 --> 00:00:30.400
しかし、Emacsコミュニティについては 

00:00:30.400 --> 00:00:32.160
必ずしもそうではありません。

00:32.160 --> 00:00:34.079
色々と複雑で、

00:34.079 --> 00:00:35.200
またリソースがないため、 

00:00:35.200 --> 00:00:35.920
ローカライゼーションプロセスが 

00:00:35.920 --> 00:00:37.600
まだ確立していません。

00:37.600 --> 00:00:39.920
しかし、マニュアルの翻訳は可能ですし、 

00:00:39.920 --> 00:00:41.200
マニュアルの翻訳によって、

00:00:41.200 --> 00:00:42.399
Emacsコミュニティ全体に 

00:00:42.399 --> 00:00:45.600
多くの利益がもたらされるでしょう。

00:45.600 --> 00:00:47.920
では、マニュアルはどうなっているのでしょうか?

00:47.920 --> 00:00:51.199
今日現在、182のファイルが

00:51.199 --> 00:00:54.160
.texi や.org 形式で作成されています。

00:54.160 --> 00:00:56.559
単語数は200万以上です。

00:56.559 --> 00:00:57.360
文字数は、 

00:00:57.360 --> 00:00:59.039
5000万以上です。

00:00:59.039 --> 00:01:00.559
これはかなりの量ですし、

01:00.559 --> 00:01:04.559
当然ながら、一人でできる仕事ではありません。

01:04.559 --> 00:01:06.159
.texi ファイルを開くと、 

00:01:06.159 --> 00:01:07.760
何が出てくるのでしょうか?

01:07.760 --> 00:01:09.439
実は、翻訳者が翻訳する必要が

01:09.439 --> 00:01:10.560
ないものが 

00:01:10.560 --> 00:01:12.400
たくさんあるのです。

01:12.400 --> 00:01:13.680
ここでは、一番最後の 

00:01:13.680 --> 00:01:15.040
セグメント、一番最後の

00:01:15.040 --> 00:01:16.400
文だけが翻訳する 

00:01:16.400 --> 00:01:18.080
必要があります。

01:18.080 --> 00:01:19.360
このようなメタ的なものは 

00:01:19.360 --> 00:01:20.240
すべて翻訳者の目に 

00:01:20.240 --> 00:01:24.479
触れる必要はありません。

01:24.479 --> 00:01:26.720
このような場合はどう対処すればいいのでしょうか?

01:26.720 --> 00:01:27.680
ソースファイルの場合、 

00:01:27.680 --> 00:01:29.360
gettext というユーティリティーがあり、 

00:01:29.360 --> 00:01:30.640
翻訳可能な文字列を

00:01:30.640 --> 00:01:32.079
翻訳可能な形式に変換します。 

00:01:32.079 --> 00:01:33.840
それが .po 形式になります。

01:33.840 --> 00:01:35.520
この .po 形式はどこにでもあり、 

00:01:35.520 --> 00:01:36.400
自由ではないソフトウェア 

00:01:36.400 --> 00:01:38.720
翻訳業界でも広く使われています。

01:38.720 --> 00:01:39.520
ドキュメントについては 

00:01:39.520 --> 00:01:40.720
別のツールがあります。

00:01:40.720 --> 00:01:42.000
po4a と呼ばれるもので、

00:01:42.000 --> 00:01:45.119
これは「po for all」の略です。

01:45.119 --> 00:01:46.399
po4aを182.texiと 

00:01:46.399 --> 00:01:49.200
.org ファイルに用いると

00:01:49.200 --> 00:01:50.479
どうなるでしょうか?

01:50.479 --> 00:01:52.640
先ほどよりずっといいものができました。

01:52.640 --> 00:01:54.799
これで分節が3つができました。

01:54.799 --> 00:01:55.759
ご覧の通り、 

00:01:55.759 --> 00:01:56.399
最初の2つの分節は 

00:01:56.399 --> 00:01:57.280
翻訳の必要がないので、

00:01:57.280 --> 00:01:58.880
完璧ではありません。

01:58.880 --> 00:01:59.520
ですから、まだ 

00:01:59.520 --> 00:02:02.479
改善の余地があります。

02:02.479 --> 00:02:04.960
さて、このファイルセットを

00:02:04.960 --> 00:02:07.119
OmegaTに入れると翻訳対象単語数が

00:02:07.119 --> 00:02:08.800
かなり減ります。

02:08.800 --> 00:02:11.360
単語数が50%、

00:02:11.360 --> 00:02:14.239
文字数が23%減りましたが、

02:14.239 --> 00:02:15.680
まだかなりの仕事量です。

00:02:15.680 --> 00:02:17.599
では、ここでOmegaTについて、 

00:02:17.599 --> 00:02:22.239
そして、OmegaTがどこに役立つかを見てみましょう。

02:22.239 --> 00:02:25.440
OmegaTは、GPL3+ Java8+ のソフトで

02:25.440 --> 00:02:27.599
コンピューター支援翻訳ツールです。

02:27.599 --> 00:02:29.440
Computer Aided Translationと呼ばれます。

02:29.440 --> 00:02:30.720
CATは翻訳者にとって、 

00:02:30.720 --> 00:02:33.280
プログラマーにとってのIDEのようなものです。

02:33.280 --> 00:02:35.040
CATは、コンピュータの力を利用して 

00:02:35.040 --> 00:02:36.480
翻訳者の仕事を自動化します。 

00:02:36.480 --> 00:02:38.400
例えば、参考翻訳の検索や

00:02:38.400 --> 00:02:40.800
ファジーマッチ、自動入力

00:02:40.800 --> 00:02:44.080
などのようなものです。

02:44.080 --> 00:02:46.319
OmegaTは最近のものありません。

02:46.319 --> 00:02:48.319
来年で20年になり、

02:48.319 --> 00:02:48.959
現時点では 

00:02:48.959 --> 00:02:51.440
SourceForgeのサイトから

00:02:51.440 --> 00:02:53.200
150万件前後のダウンロードがあります。

00:02:53.200 --> 00:02:54.080
これにはローカライズや 

00:02:54.080 --> 00:02:55.040
マニュアルに使用されるファイルが 

00:02:55.040 --> 00:02:56.480
多少含まれるので、

00:02:56.480 --> 00:02:57.920
それほど意味はありませんが、 

00:02:57.920 --> 00:02:59.599
それでもかなり大きな数字です。

02:59.599 --> 00:03:00.720
OmegaTは、多くのLinux 

00:03:00.720 --> 00:03:02.400
ディストリビューションに含まれますが、

00:03:02.400 --> 00:03:03.680
ここで見られるように

03:03.680 --> 00:03:05.920
ほとんどがWindowsでダウンロードされています。

00:03:05.920 --> 00:03:06.800
なぜなら、翻訳者は 

00:03:06.800 --> 00:03:09.680
ほとんどWindows上で作業しているからです。

03:09.680 --> 00:03:11.120
OmegaTにもかっこいいロゴと

00:03:11.120 --> 00:03:12.080
かっこいいサイトがあります。 

00:03:12.080 --> 00:03:13.920
ぜひ一度ご覧ください。

00:03:13.920 --> 00:03:16.159
サイトはomegat.orgで、

03:16.159 --> 00:03:17.280
すべての必要な情報が見られます。 

00:03:17.280 --> 00:03:19.040
また、Javaの有無の関わらず、

00:03:19.040 --> 00:03:22.080
Linuxバージョンもダウンロードできます。

03:22.080 --> 00:03:24.799
では、OmegaTによって何が変わるのでしょうか?

03:24.799 --> 00:03:26.560
プロの翻訳者が提供しなければいけないのは、

03:26.560 --> 00:03:27.680
速く、一貫性があり 

00:03:27.680 --> 00:03:29.519
品質の高い翻訳です。

03:29.519 --> 00:03:30.720
それを実現するためには、

00:03:30.720 --> 00:03:32.159
適切なツールが必要です。 

00:03:32.159 --> 00:03:34.239
po-modeがツールボックスの一部であればいいのですが、

00:03:34.239 --> 00:03:35.120
そうはなっていません。

03:35.120 --> 00:03:36.560
残念ながら。

03:36.560 --> 00:03:39.760
ですから、そのようなCATツールを使わなければなりません。

03:39.760 --> 00:03:41.440
このデモのために作成したプロジェクトを

03:41.440 --> 00:03:43.120
開くと、OmegaTがどのように表示されるか

03:43.120 --> 00:03:45.200
お見せしましょう。

03:45.200 --> 00:03:46.640
表示はかなりややこしいですが、

00:03:46.640 --> 00:03:47.760
実際には、必要に応じてすべての 

00:03:47.760 --> 00:03:49.519
ウィンドウを変更できます。

03:49.519 --> 00:03:50.400
OmegaTがどんなものなのか 

00:03:50.400 --> 00:03:51.120
理解していただくために

00:03:51.120 --> 00:03:53.680
一度にすべてをお見せしたいと思います。

03:53.680 --> 00:03:55.200
さまざまな色やウィンドウがあり、

00:03:55.200 --> 00:03:55.920
それらスペースには 

00:03:55.920 --> 00:03:57.120
翻訳者を支援する

03:57.120 --> 00:03:58.560
さまざまな機能がありますが、 

00:03:58.560 --> 00:03:59.360
皆さんにはあまり

00:03:59.360 --> 00:04:02.879
馴染みがないかもしれません。

04:02.879 --> 00:04:04.080
今からそのインターフェースを 

00:04:04.080 --> 00:04:05.680
ご紹介します。

04:05.680 --> 00:04:07.519
まずは、エディターですね。

04:07.519 --> 00:04:09.439
エディターは2つの部分から成ります。

04:09.439 --> 00:04:10.480
番号に関連づけられた 

00:04:10.480 --> 00:04:12.319
現在の分節と、

00:04:12.319 --> 00:04:13.519
もうひとつは上下にあるすべての 

00:04:13.519 --> 00:04:15.840
分節です。

04:15.840 --> 00:04:16.720
ウィンドウの一番上には

00:04:16.720 --> 00:04:18.720
.poファイルにあった最初の3つの分節が

00:04:18.720 --> 00:04:20.799
表示されています。

04:20.799 --> 00:04:22.880
ここの最後の4つ目の分節には 

00:04:22.880 --> 00:04:28.720
ファジーマッチが自動挿入されています。

04:28.720 --> 00:04:30.880
このようなレガシー翻訳は

04:30.880 --> 00:04:32.720
「翻訳メモリ」と呼ばれます。

04:32.720 --> 00:04:35.280
OmegaTがこれを自動挿入したのは、

00:04:35.280 --> 00:04:37.120
私がそうするように設定したからです。

04:37.120 --> 00:04:38.560
また、私自身のセキュリティのために、

00:04:38.560 --> 00:04:40.639
翻訳の検証のために

00:04:40.639 --> 00:04:41.919
削除しなければならない規定の

00:04:41.919 --> 00:04:44.880
[fuzzy] がついています。

04:44.880 --> 00:04:47.919
次の機能は、用語集機能です。

04:47.919 --> 00:04:48.479
今回のプロジェクトには 

00:04:48.479 --> 00:04:50.160
たくさんの用語集データがあります。 

00:04:50.160 --> 00:04:52.560
関連のあるものもあれば、そうでないものもあります。

04:52.560 --> 00:04:53.919
今翻訳している分節では

00:04:53.919 --> 00:04:55.199
下線が引かれた項目が

00:04:55.199 --> 00:04:57.520
あります。

04:57.520 --> 00:04:59.040
右側のポップアップメニューでは

00:04:59.040 --> 00:05:02.240
入力中に用語を入れることができます。

05:02.240 --> 00:05:04.639
これは自動挿入システムのようなもので、

00:05:04.639 --> 00:05:07.039
履歴予測や定型文などと

00:05:07.039 --> 00:05:14.479
いったような入力補完に対応しています。

05:14.479 --> 00:05:15.440
右側の部分には、

00:05:15.440 --> 00:05:17.120
.poと.texiのファイルから 

00:05:17.120 --> 00:05:18.240
直接得られた 

00:05:18.240 --> 00:05:21.440
参照情報があります。

05:21.440 --> 00:05:23.440
また、パートナーの翻訳者と 

00:05:23.440 --> 00:05:25.759
共有できるメモもあり、

05:25.759 --> 00:05:28.080
翻訳完了までに

00:05:28.080 --> 00:05:31.199
あと143,000分節あることを示す

00:05:31.199 --> 00:05:35.280
数字も表示されています。

05:35.280 --> 00:05:37.120
しかし、どうしても

05:37.120 --> 00:05:40.000
入力したくない文字列がたくさんあります。

05:40.000 --> 00:05:42.160
例えば、これらの文字列は 

00:05:42.160 --> 00:05:43.840
典型的な .texi の文字列で、 

00:05:43.840 --> 00:05:45.039
翻訳者が入力する 

00:05:45.039 --> 00:05:46.479
必要はありません。 

00:05:46.479 --> 00:05:47.360
これについて 

00:05:47.360 --> 00:05:50.400
どうにかしなければなりません。

05:50.400 --> 00:05:51.600
そのためには、正規表現を使い 

00:05:51.600 --> 00:05:52.479
保護された文字列を作成し、 

00:05:52.479 --> 00:05:54.400
ソース分節では

05:54.400 --> 00:05:56.800
文字列をすぐに視覚化し、

00:05:56.800 --> 00:05:59.120
ターゲット分節で

05:59.120 --> 00:06:00.479
半自動的に入力し、 

00:06:00.479 --> 00:06:01.680
整合性を

00:06:01.680 --> 00:06:04.479
チェックできるようにしましょう。

06:04.479 --> 00:06:06.479
処理したい文字列を定義するのに

06:06.479 --> 00:06:08.160
考えた正規表現は 

00:06:08.160 --> 00:06:09.600
このようなものです。

06:09.600 --> 00:06:11.120
正規表現のプロではないので、

00:06:11.120 --> 00:06:13.360
皆さんからのご指摘もあると思います。 

00:06:13.360 --> 00:06:14.560
しかし、この表現は 

00:06:14.560 --> 00:06:15.919
Orgモードの構文を 

00:06:15.919 --> 00:06:17.919
まだ含んでいないにもかかわらず

00:06:17.919 --> 00:06:20.960
十分な定義になっています。

06:20.960 --> 00:06:22.344
これで、触ってはいけない 

00:06:22.344 --> 00:06:23.440
.texi 特有のものが 

00:06:23.440 --> 00:06:24.960
すべてグレーで

06:24.960 --> 00:06:26.100
表示されるようになりました。 

00:06:26.100 --> 00:06:27.680
実は、お気づきかもしれませんが 

00:06:27.680 --> 00:06:28.479
少しズルをしました。

06:28.479 --> 00:06:30.319
先ほどの正規表現に「年」と

00:06:30.319 --> 00:06:32.000
「Free Software Foundation」の名前を追加しました。

00:06:32.000 --> 00:06:34.000
なぜなら、どんな種類の文字列でも

00:06:34.000 --> 00:06:35.520
保護できることを

00:06:35.520 --> 00:06:38.560
示したかったからです。

06:38.560 --> 00:06:39.520
これで、 

00:06:39.520 --> 00:06:41.360
触れたくない文字列を

00:06:41.360 --> 00:06:43.440
可視化することができましたが、

06:43.440 --> 00:06:45.440
それでもすべての文字列を翻訳に

00:06:45.440 --> 00:06:46.880
入力しなければなりません。

06:46.880 --> 00:06:48.319
そのために、先ほどの用語集で使った

00:06:48.319 --> 00:06:50.400
ポップアップメニューがあれば、

00:06:50.400 --> 00:06:51.520
編集メニューの中にも 

00:06:51.520 --> 00:06:52.400
不足しているタグを 

00:06:52.400 --> 00:06:53.919
簡単に挿入するための 

00:06:53.919 --> 00:06:57.199
ショートカットも用意されています。

06:57.199 --> 00:06:58.800
最後に忘れてはならないのが

00:06:58.800 --> 00:07:00.800
入力の検証が可能なことです。

00:07:00.800 --> 00:07:02.479
ここで、OmegaTは7つの保護された文字列を

00:07:02.479 --> 00:07:05.759
見逃したことをきちんと見せてくれます。

07:05.759 --> 00:07:07.599
私は1998年だけを入力しましたが、

00:07:07.599 --> 00:07:09.280
5つの異なる年があり、

00:07:09.280 --> 00:07:10.479
著作権の文字列と

00:07:10.479 --> 00:07:14.240
FSF名の文字列がありました。

07:14.240 --> 00:07:15.970
この極めてネイティブに近い 

00:07:15.970 --> 00:07:16.960
Texinfo対応により、

00:07:16.960 --> 00:07:18.880
入力するものがずっと少なくなり、

07:18.880 --> 00:07:19.919
エラーの可能性も 

00:07:19.919 --> 00:07:21.120
ずっと低くなりました。 

00:07:21.120 --> 00:07:25.199
とはいえ、まだまだ大変な作業であることは間違いありません。

07:25.199 --> 00:07:26.319
今、私たちが望んでいるのは、

00:07:26.319 --> 00:07:27.840
仲間の翻訳者と一緒に仕事をすることです。

00:07:27.840 --> 00:07:28.720
ここでわからないければならないのは、 

00:07:28.720 --> 00:07:29.840
OmegaTが実際に隠れ 

00:07:29.840 --> 00:07:32.080
svn/gitクライアントであり、

00:07:32.080 --> 00:07:34.240
チームプロジェクトがsvn/gitプラットフォームで

07:34.240 --> 00:07:36.319
ホスト可能であることです。

07:36.319 --> 00:07:37.199
翻訳者は、VCSについて 

00:07:37.199 --> 00:07:38.880
何も知る必要はありません。 

00:07:38.880 --> 00:07:40.720
ただ、アクセス認証を必要とし、 

00:07:40.720 --> 00:07:42.400
OmegaTは翻訳者の代わりにコミットします。

00:07:42.400 --> 00:07:44.080
このようにして、 

00:07:44.080 --> 00:07:45.759
醜くて不十分なウェブベースの 

00:07:45.759 --> 00:07:47.199
翻訳システムを使う必要なく、

00:07:47.199 --> 00:07:48.800
強力なオフラインのプロフェッショナルツールを 

00:07:48.800 --> 00:07:51.440
使うことができるのです。

07:51.440 --> 00:07:52.479
この翻訳プロジェクトを

00:07:52.479 --> 00:07:54.160
ホストしているプラットフォームを見ると、

00:07:54.160 --> 00:07:55.919
このように見えます。

07:55.919 --> 00:07:57.199
最後の更新は、このスライドを作成した

00:07:57.199 --> 00:07:58.639
20日と30秒前のもので、

00:07:58.639 --> 00:08:00.720
同じファイルセットで

08:00.720 --> 00:08:02.479
一緒に作業したパートナーが

00:08:02.479 --> 00:08:04.639
いたことがわかります。

08:04.639 --> 00:08:05.520
私たちは翻訳をプラットフォームに

00:08:05.520 --> 00:08:06.879
コミットしたように見えますが、 

00:08:06.879 --> 00:08:07.680
それは私たちでなく、

00:08:07.680 --> 00:08:11.039
OmegaTでした。

00:08:11.039 --> 00:08:13.599
すべての面倒臭い仕事はOmegaTが行います。

08:13.599 --> 00:08:15.039
定期的にサーバーに保存し、 

00:08:15.039 --> 00:08:16.879
サーバーから同期します。

08:16.879 --> 00:08:18.720
翻訳者は、仲間の翻訳した内容を

08:18.720 --> 00:08:20.479
定期的に得られます。 

00:08:20.479 --> 00:08:21.680
そして必要に応じて 

00:08:21.680 --> 00:08:23.360
OmegaTは、簡単な 

00:08:23.360 --> 00:08:25.440
コンフリクト解決のためのウインドーを表示します。

08:25.440 --> 00:08:27.039
翻訳者は、svnやgitを使って

08:27.039 --> 00:08:29.360
何かをする必要はありません。

08:29.360 --> 00:08:30.800
そして今、私たちは、

00:08:30.800 --> 00:08:31.599
マニュアルが翻訳され、

00:08:31.599 --> 00:08:33.120
最終的にはEmacsに含まれるという

00:08:33.120 --> 00:08:34.159
そう遠くはない未来を 

00:08:34.159 --> 00:08:35.279
思い描くことができますが、 

00:08:35.279 --> 00:08:36.080
それはこのプレゼンテーションとは 

00:08:36.080 --> 00:08:39.760
別の話になります。

08:39.760 --> 00:08:42.080
というわけで、セッションの終わりになりました。

08:42.080 --> 00:08:44.240
ご参加いただいた皆様、本当にありがとうございました。

08:44.240 --> 00:08:45.600
たくさんのトピックについて 

00:08:45.600 --> 00:08:46.880
触れないと約束しましたが、

00:08:46.880 --> 00:08:50.000
約束は守れたのではないでしょうか。

08:50.000 --> 00:08:51.600
Q&Aもありますが、

00:08:51.600 --> 00:08:52.517
実は、先週の土曜日に 

00:08:52.517 --> 00:08:53.600
Redditでこのセッションに関するスレッドも 

00:08:53.600 --> 00:08:55.519
立ち上げました。

08:55.519 --> 00:08:57.279
emacs-helpやemacs-develのメーリングリストでも 

00:08:57.279 --> 00:08:59.200
私の名前を見つけることができますので、

00:08:59.200 --> 00:09:00.480
ご質問やご意見がありましたら、 

00:09:00.480 --> 00:09:02.080
遠慮なくお寄せください。

09:02.080 --> 09:06.760
それでは、またお会いしましょう。