共同ローカリゼーション フレームワーク 井上 謙次
本提案のサマリ 『共同ローカリゼーションフレームワーク』は チームによるローカリゼーションプロセスを支援するWebシステムです ローカリゼーションコストとコミュニケーションコストを削減します 共有翻訳メモリ・共有用語集を実装します Ajaxを用いた快適で一貫性のあるリッチWebユーザインタフェースを提供します ローカリゼーション
ローカリゼーション(地域化)とは? ソフトウェアを使いやすく! ユーザインタフェースの日本語化 ドキュメンテーションの翻訳 インターナショナリゼーション
インターナショナリゼーション(国際化)とは? コード(ロジック)と表示(プレゼンテーション)を分離 i18n と L10N
インターナショナリゼーション(i18n)と ローカリゼーション(L10N) インターナショナリゼーション(国際化) プログラマの作業 gettext などのフレームワークが確立 ローカリゼーション(地域化) 日本語化担当,ドキュメンテーション担当の作業 標準的なフレームワークは未確立
インターナショナリゼーション(i18n)と ローカリゼーション(L10N) インターナショナリゼーション(国際化) プログラマの作業 gettext などのフレームワークが確立 ローカリゼーション(地域化) 日本語化担当,ドキュメンテーション担当の作業 標準的なフレームワークは未確立 ローカリゼーションのコスト
ローカリゼーションのコスト ローカリゼーションプロセス全体のコスト = 各人のローカリゼーションコスト + コミュニケーションコスト
翻訳効率を最大化! 調整時間を最小化! ローカリゼーションのコスト ローカリゼーションプロセス全体のコスト = 各人のローカリゼーションコスト + コミュニケーションコスト 翻訳効率を最大化! 調整時間を最小化! 翻訳メモリ
翻訳効率の最大化(1) 翻訳メモリ 「原文―翻訳文」ペアのデータベース 似た文章が翻訳済みならその結果を取り出す TRADOS(商用), OmegaT(オープンソース) OmegaT の翻訳メモリ
翻訳支援ツールOmegaT 用語集
翻訳効率の最大化(2) 用語集(グロッサリ) 品質管理:人によって同じ単語を違う単語に訳してしまわないように 専門語・新語:訳語を決定するのに時間がかかってしまわないように ユーザインタフェース
翻訳効率の最大化(3) シンプルで直感的なユーザインタフェース ローカライズ対象のファイル形式は様々: PO, Java Properties, HTML, DocBook, … ファイル形式に依存しない一貫性のあるUI コミュニケーションコストの削減
コミュニケーションコストの削減(1) チーム作業時の様々な事務処理… 作業の分担(担当者の割り当て) 進捗状況の確認 ファイル交換 用語集の更新 つづく
コミュニケーションコストの削減(2) オープンソースコミュニティ等ではさらに… 単なるメーリングリストやファイル置き場では不十分 以前の担当者と連絡が取れなくなった 使用ツールの不統一 単なるメーリングリストやファイル置き場では不十分 BabelZilla の進捗管理
Mozilla拡張機能のローカリゼーション 支援システムBabelZilla 既存システムの問題点
既存システムの問題点 既存の翻訳ツール 既存の翻訳支援 Web サイト 本提案はこれらの問題を解決します チーム作業をサポートしない 翻訳メモリなどの翻訳支援機能をサポートしない そのプロジェクト専用のシステムである 本提案はこれらの問題を解決します 3つの目標
3つの目標 誰でも使える みんなで使える 便利に使える 自分たちのプロジェクトのために使えます チームでの共同作業を支援します 既存の翻訳支援技術を活用します 1つのコンセプト
1つのコンセプト Happy localization and translation! 効率的で楽しい翻訳を支援したい ユーザインタフェースドリブンな開発 シンプル・無意識・直感的 簡単に始められて簡単に止められる 設計と実装
システムの設計と実装について 今回の開発期間内ではWebアプリケーション(CGIプログラム)として設計・実装 野望はローカルのGUIで動作する,エディタに依存しない翻訳環境 プログラミング言語は主にPerl 5 システム導入を簡単にしたい(例:Xoops) 必要があれば一部をCなどで書き直す 利用シナリオ
利用シナリオ ユーザ登録とプロジェクト登録 オリジナルロケール(元ファイル)の アップロード Webブラウザ上でローカライズや 翻訳を行う 進捗状況の確認などが可能 ローカリゼーションが完了すれば 翻訳済みロケールをダウンロード 実装機能
実装機能のサマリ(1) 様々なファイル形式に対応:まずは ロケールのライセンスの取り扱い .po:ユーザインタフェース HTML:ドキュメンテーション ロケールのライセンスの取り扱い 元ファイルの更新(データの差分)への対応(diff / バージョン管理) つづく
実装機能のサマリ(2) Ajax インタフェース(リッチ Web アプリケーション) 共有翻訳メモリ 共有用語集 同時編集 オーサリティ(編集権限) 共有翻訳メモリ
共有翻訳メモリ 「翻訳元の文章」と「翻訳後の文章」のペアを記憶したデータベース 自動的に記録(登録作業が不要)・共有 「何もせずとも自然と」他人と協力できる 類似文章の検索アルゴリズム 有力候補:LCS(最長部分列)を求めるアルゴリズム(動的計画法)の変形 共有用語集
共有用語集 専門用語をプロジェクト内で統一したい場合など 自動的には登録されない 用語集の検索アルゴリズム 使用頻度の高い単語の提案 単語やN-gramをキーとしたハッシュテーブルやJudy Arrayなど Imagine…
Imagine some ‘if’s…
Imagine some ‘if’s…
Imagine some ‘if’s…
Imagine some ‘if’s…
開発タイムライン 理念
理念 オープンソースコミュニティの裾野を広げる 翻訳物の大量生産は可能か? ユーザが大切。 ドキュメントが大切。 母語が大切。 文学作品とは違う。評価メトリクスはあるはず。 翻訳工学。 Thanks!