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 それでは、またお会いしましょう。