300 likes | 369 Vues
共同ローカリゼーション フレームワーク. 井上 謙次. 本提案のサマリ. 『 共同ローカリゼーションフレームワーク 』 は チームによるローカリゼーションプロセスを支援する Web システムです ローカリゼーションコストとコミュニケーションコストを削減します 共有翻訳メモリ・共有用語集を実装します Ajax を用いた快適で一貫性のあるリッチ Web ユーザインタフェースを提供します. ローカリゼーション. ローカリゼーション(地域化)とは?. ソフトウェアを使いやすく! ユーザインタフェースの日本語化 ドキュメンテーションの翻訳. インターナショナリゼーション.
E N D
共同ローカリゼーションフレームワーク 井上 謙次
本提案のサマリ • 『共同ローカリゼーションフレームワーク』は • チームによるローカリゼーションプロセスを支援するWebシステムです • ローカリゼーションコストとコミュニケーションコストを削減します • 共有翻訳メモリ・共有用語集を実装します • Ajaxを用いた快適で一貫性のあるリッチWebユーザインタフェースを提供します ローカリゼーション
ローカリゼーション(地域化)とは? • ソフトウェアを使いやすく! • ユーザインタフェースの日本語化 • ドキュメンテーションの翻訳 インターナショナリゼーション
インターナショナリゼーション(国際化)とは?インターナショナリゼーション(国際化)とは? • コード(ロジック)と表示(プレゼンテーション)を分離 i18n と L10N
インターナショナリゼーション(i18n)とローカリゼーション(L10N)インターナショナリゼーション(i18n)とローカリゼーション(L10N) • インターナショナリゼーション(国際化) • プログラマの作業 • gettext などのフレームワークが確立 • ローカリゼーション(地域化) • 日本語化担当,ドキュメンテーション担当の作業 • 標準的なフレームワークは未確立
インターナショナリゼーション(i18n)とローカリゼーション(L10N)インターナショナリゼーション(i18n)とローカリゼーション(L10N) • インターナショナリゼーション(国際化) • プログラマの作業 • gettext などのフレームワークが確立 • ローカリゼーション(地域化) • 日本語化担当,ドキュメンテーション担当の作業 • 標準的なフレームワークは未確立 ローカリゼーションのコスト
ローカリゼーションのコスト • ローカリゼーションプロセス全体のコスト = 各人のローカリゼーションコスト + コミュニケーションコスト
ローカリゼーションのコスト • ローカリゼーションプロセス全体のコスト = 各人のローカリゼーションコスト + コミュニケーションコスト 翻訳効率を最大化! 調整時間を最小化! 翻訳メモリ
翻訳効率の最大化(1) • 翻訳メモリ • 「原文―翻訳文」ペアのデータベース • 似た文章が翻訳済みならその結果を取り出す • TRADOS(商用), OmegaT(オープンソース) OmegaT の翻訳メモリ
翻訳支援ツールOmegaT 用語集
翻訳効率の最大化(2) • 用語集(グロッサリ) • 品質管理:人によって同じ単語を違う単語に訳してしまわないように • 専門語・新語:訳語を決定するのに時間がかかってしまわないように ユーザインタフェース
翻訳効率の最大化(3) • シンプルで直感的なユーザインタフェース • ローカライズ対象のファイル形式は様々:PO, Java Properties, HTML, DocBook, … • ファイル形式に依存しない一貫性のあるUI コミュニケーションコストの削減
コミュニケーションコストの削減(1) • チーム作業時の様々な事務処理… • 作業の分担(担当者の割り当て) • 進捗状況の確認 • ファイル交換 • 用語集の更新 つづく
コミュニケーションコストの削減(2) • オープンソースコミュニティ等ではさらに… • 以前の担当者と連絡が取れなくなった • 使用ツールの不統一 • 単なるメーリングリストやファイル置き場では不十分 BabelZilla の進捗管理
Mozilla拡張機能のローカリゼーション支援システムBabelZillaMozilla拡張機能のローカリゼーション支援システム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…
開発タイムライン 理念
理念 • オープンソースコミュニティの裾野を広げる • ユーザが大切。 • ドキュメントが大切。 • 母語が大切。 • 翻訳物の大量生産は可能か? • 文学作品とは違う。評価メトリクスはあるはず。 • 翻訳工学。 Thanks!