イベント報告

2017/11/10

2017年度JTF第1回翻訳支援ツール説明会報告
クラウドを活用したコミュニティ翻訳



2017年度JTF第1回翻訳支援ツール説明会報告
日時●2017年8月21日(月)14:00 ~ 16:40
開催場所●GMOスピード翻訳株式会社 大2会議室
共通テーマ●クラウドを活用したコミュニティ翻訳
第一部:大学向けオープンソースソフトウェアの翻訳に適用する共通翻訳メモリの開発と実践
第二部:Transifexを利用したコミュニティ翻訳 ~オンライン翻訳ツールを活用した翻訳ワークフローの自動化~
登壇者●
第一部:常盤 祐司 Tokiwa Yuji  (法政大学 情報メディア教育研究センター教授)
第二部:出口 大輔  Deguchi Daisuke  (名古屋大学 情報連携統括本部情報戦略室准教授)
報告者●目次 由美子(LOGOStar)

 


 

今回の翻訳支援ツール説明会は「クラウドを活用したコミュニティ翻訳」をテーマに二部構成とし、教育関連ソフトウェアの開発プロジェクトへ共に参加されている法政大学の常盤 祐司先生と名古屋大学の出口 大輔先生に登壇いただいた。リソースファイル翻訳のデモンストレーションもあり、スタイルガイドなど翻訳作業が抱える課題、翻訳コミュニティを形成する上での難しさなど、多岐に亘る内容が展開された。

第一部:
大学向けオープンソースソフトウェアの翻訳に適用する共通翻訳メモリの開発と実践(常盤 祐司)


常盤先生は講演の冒頭で、今回の講演ではオープンソース ソフトウェア(Open Source Software:OSS)を翻訳することがトピックであると紹介された。Linux に代表されるOSSは2000年以降、世界的に普及し、数多くの言語への翻訳が展開されている。これに伴い、翻訳のためのツールも数多く利用できるようになってきた。OSSの翻訳においては、ほとんどが無償であり、誰もがそれらのツールを無料で利用できることによって、基盤が作成されていると指摘があった。
昨今、多くの大学で導入されている「授業支援システム」は、名前のとおり授業を支援する目的で、学生がテストを受ける、レポートを提出する、連絡事項を通知するなどの機能を有する。ウェブ アプリケーションの多くは英語で開発されており、これを日本語にするには単語レベルでの訳が数多く求められ、和訳するには多様な選択肢のなかから適切な訳を選ぶことの難しさが指摘された。例として、「exam」を「試験」とするのか、「テスト」とするのかといったことが挙げられた。こういった翻訳に取り組む上でも、i18n(Internationalization、国際化:地域化することのフレームワークのこと)とl10n(Localization、地域化:その国あるいは地域の言語および文化にあうようにシステムを実装すること)を明確に区別することが重要とのこと。

約30年前は「国際化」が実施されていなかったため、基本ソフトやアプリケーション自体の各国語版を製作しているという状況があった。ある時期を境に、ソフトウェア製品は1つのみで言語を切り替えることができるような「国際化」が展開されてきた。たとえばInternet Explorerでは言語のシステム設定を読み取り、画面上に表示させるコンテンツの言語を選択できる。国際化の難点として、単純な翻訳ではなく「氏名」のように言語によって順番を入れ替える、「日付」のように言語ごとに表記が異なる項目についても紹介された。これらについては、各言語版の担当者によるルール作りが必要とされる。また、ダブルバイト言語である日本語は、テキストをコードとして記述する必要があり、文字化けを回避するためにプログラムの修正を要する場合があることも紹介された。さらに、これを簡易にするためのテキスト編集ツールも紹介された。

世界中の大学や営利団体などの機関が参加する教育関連ソフトウェアの開発プロジェクトである「Sakai」について、法政大学、名古屋大学を含むユーザによる会合が2012年に開催された。このとき、すでに機能として翻訳メモリも含まれており、TMXやXLIFFを取り扱っていた。当時は個人の翻訳者がスタンドアロンのパソコンでSakaiのみを翻訳していた。今後は、クラウドベースですべてのソフトウェアを対象に翻訳データを共有し、大学共通の翻訳メモリを作成するという大きな目標が掲げられた。2013年には3つのシステム(Sakai、Moodle、Mahara)を選択し、翻訳メモリの出力が可能なTransifexでの翻訳が開始された。

 


あるとき、翻訳メモリの効果を測定するためにSakaiの新版に対して共通の翻訳メモリを適用したところ、79%の翻訳率が見られたそうだ。共通の翻訳メモリを作る上で翻訳に「ゆらぎ」が見られる場合、これを統一させるためのツールも別途に作成した。同じソース言語に対する異なる翻訳、体言止め・用言止めなどスタイルの違いをリストアップするそうだ。もっとも違和感が感じられる翻訳としては「カタカナ」が多いものとのこと。カタカナ新語辞典での使用率に準ずる、日本翻訳連盟の「日本語標準スタイルガイド」を参考にするなどの対策が講じられている。


Sakaiを翻訳するためのコミュニティは、アメリカでの会議の発表を経由し、スペインの大学によるスペイン語への翻訳も展開している。国際コミュニティへと発展している中、SakaiのソースデータはGitHubからダウンロードできるようになり、最新データを自動的に毎日ダウンロードできる仕組みを作成するなど、さらなる発展を遂げている。

第二部:
Transifexを利用したコミュニティ翻訳 ~オンライン翻訳ツールを活用した翻訳ワークフローの自動化~(出口 大輔)


出口先生には、第一部で常盤先生が紹介された仕組みに対する翻訳ワークフローの自動化について講演いただいた。
出口先生は、バージョン管理ソフト「TortoiseSVN」の翻訳への取り組みが、初めてのOSS翻訳だったとのこと。2003年頃はVisual Studioのリソース エディタを使用して、翻訳対象となるリソースファイルを直接編集していた。当時は、ソフトウェアのリリースごとにすべて翻訳し直す必要があったそうだ。2004年にかけてはTortoiseSVNのi18n化が進み、「Smart Translator」というリソース編集ツールを利用して言語リソースDLLの翻訳を行う枠組みができあがった。その後、独自の変換ツールによってGNU GettextのPOファイル(翻訳リソース ファイル)を生成し,より一般的な翻訳ツールが利用できる枠組みへと見直され、2010年頃までその枠組が続いた。しかしながら、複数の翻訳者の協力を継続的に得ることが難しかったとのこと。現在ではTransifexを利用してクラウド ベースでの翻訳を展開しているとのこと。
現状としては、翻訳とソフトウェア開発が分離され、翻訳作業には複数の担当者やレビュー プロセスも組み込まれている。翻訳メモリの効果として、既訳の流用や「ゆらぎ」の回避が挙げられた。しかしながら、実際のソフトウェアを見ずに翻訳作業が進むことからコンテキストに応じた翻訳が難しいこと、翻訳対象がいつ・どのように使用されるか不明であること、といった問題点が存在することが紹介された。

クラウド型翻訳基盤の特徴として、翻訳対象(リソース)をクラウド上で管理し、複数人の翻訳者がWebインターフェースなどを利用して、同時並行翻訳することが可能なプラットフォームである点が紹介された。
便利な翻訳ツールも多数備わっており、翻訳メモリ、用語集、ライブ翻訳、さらに翻訳ワークフローとしてWeb APIを利用した同期システムが可能であることが紹介された。
具体例として、クラウド型翻訳基盤のパイオニア的存在のTransifex、そのほかにCrowdin、Get Localization、PO Editorというシステムの詳細も紹介された。
Transifexの特長としては、オフライン翻訳や翻訳ワークフローの自動化が可能であること、POやJava プロパティ ファイルなど複数のファイル形式がサポートされているほか、オープンソース プロジェクトについては無料で使用できること(翻訳者としてログインする場合は無料)が紹介された。担当者に対するロール(翻訳者、レビュアー、コーディネータなど)が複数用意されていること、翻訳のバージョン管理が可能であることなどにも言及があった。

 

 


Sakaiの翻訳プロジェクトでは10万以上のファイルがあり、リビジョンも30万回を超えている。翻訳対象はJavaのプロパティ ファイルに記述されており、たとえば「chat.properties」というファイルに対しては「chat_ja.properties」を作成し、内部リソースを日本語に翻訳する。
翻訳を開始するまでのフローは、GitHubから更新箇所をダウンロード → データ変換(リソースファイルからPOへ)→Transifexツールでのデータ同期→Transifexでの翻訳、の4段階である。Transifexでの翻訳以外のプロセスは自動的に実行されるため、翻訳者自身による煩雑な手作業は不要とされている。
なお、データ変換時には翻訳対象のプロパティ ファイルがモジュール内で束ねられ、単一のPOファイルへ変換される。翻訳には、必ずしもTransifexを使用する必要はないそうだ。
これに続くデータ同期のプロセスでは、サーバとクライアント間のリソースが同期される。翻訳プロジェクトの初期化および認証情報が設定されており、言語jaの翻訳済みリソースのみをダウンロードするなどを実行するための独自のプログラムとなっている。