• 390 likes • 463 Views
Mylingual There ’ s More Than One Language To Do It. Cybozu Labs Kazuho Oku. Self Introduction 自己紹介. Self Introduction ( 自己紹介 ). Name: Kazuho Oku Joined Cybozu Labs in 2005 R&D of web-related technologies Background: web browser developer 名前 : 奥 一穂 2005 年からサイボウズ・ラボ勤務
E N D
MylingualThere’s More Than One Language To Do It Cybozu Labs Kazuho Oku
Self Introduction 自己紹介 Mylingual - There's More Than One Language To Do It
Self Introduction (自己紹介) • Name: Kazuho Oku • Joined Cybozu Labs in 2005 • R&D of web-related technologies • Background: web browser developer • 名前: 奥 一穂 • 2005年からサイボウズ・ラボ勤務 • Web 関連技術の研究開発をしています • もともとはウェブブラウザの開発者 Mylingual - There's More Than One Language To Do It
Do You Have Experience in Localization? ローカライズしたことがありますか? Mylingual - There's More Than One Language To Do It
Do You Love Localization? ローカライズは好きですか? Mylingual - There's More Than One Language To Do It
Localization is a Burden (L10n は重荷) • It’s not Development • It’s a Requirement • It’s Hard to Find the Right Wording • It’s Time Consuming • ローカライズは「開発」じゃない • ローカライズは「やらざるを得ないもの」 • 訳語を探すのがたいへん • 手間がかかる Mylingual - There's More Than One Language To Do It
Websites NOT in Japanese • YouTube • Google Docs & Spreadsheets • not until March 2007 • Yahoo! Pipes • eBay • Flickr • Lingr • developed by a Japanese, but… Mylingual - There's More Than One Language To Do It
Excuses NOT Localizing (L10n しない言い訳) • Due to Our Priority • No Business Opportunities • Differences in Government Regulation • 優先順位が低いので • 儲かりまへんがな • 法規制の問題があるので Mylingual - There's More Than One Language To Do It
How about letting the users localize the services? ユーザーが勝手にローカライズすればいいじゃん Mylingual - There's More Than One Language To Do It
Japanize http://japanize.31tools.com/ Mylingual - There's More Than One Language To Do It
What is Japanize? (Japanize とは) • A web browser extension • Transparent localization to Japanese • Released Aug. 2006 • Inspired from “Localizer” of PalmOS • ウェブブラウザの拡張機能 • ウェブページを勝手に日本語へローカライズ • 2006年8月公開 • Palm OS の「ローカライザ」からインスパイヤ Mylingual - There's More Than One Language To Do It
Translation Archive (翻訳アーカイブ) • All data on a Wikipedia-like website • Anyone can contribute • All translation shared, no private data • Wikipedia ライクなシステムにデータを集積 • 誰でも翻訳に参加できる • すべての翻訳は共有 –プライベートデータなし Mylingual - There's More Than One Language To Do It
Ways of Translation (翻訳の手法) Mylingual - There's More Than One Language To Do It
Why Manual Translation? • Only translate the user interface • Do not translate files on Google Docs • Precise Translation (w. many idioms) • ex. “Save As…” → 「名前をつけて保存…」 • UI のみを翻訳したい • Google Docs の文書は翻訳しちゃダメ • 正確な翻訳 (超訳が必要な場合も) Mylingual - There's More Than One Language To Do It
Why Translate on Browser? • To support services w. authentication • Proxies cannot translate Google Docs, Mixi, … • 認証が必要なサービスをサポートするため • プロキシだと Google Docs や Mixi を翻訳できない Mylingual - There's More Than One Language To Do It
Demo from YouTube to an Iranian newssite Mylingual - There's More Than One Language To Do It
Translation Syntax 翻訳データの文法 Mylingual - There's More Than One Language To Do It
Translation Syntax • Pairs of original text and translation • ex. Hello => こんにちは • Support for regular expressions • ex. /^(\d+) entries?$/ => $1件のエントリ • Translation is performed as a whole match of DOM text elements - sufficient for most cases • DOM テキスト要素単位での全一致 –多くの場合必要十分 Mylingual - There's More Than One Language To Do It
Complex Translation (ex. Date Format) “05 Apr 2007” → 「2007年4月05日」 /^(\d{2}) (Jan|Feb|…|Dec) (\d{4})$/ => $3年$R2$1日 Jan => 1月 Feb => 2月 ... Dec => 12月 Note: $Rx stands for recursive replacement Mylingual - There's More Than One Language To Do It
Translation Control Commands • Some Translation Control Commands • with operands: skip & translate $id(content) => skip $class(menu) => translate $path(/license) => skip Mylingual - There's More Than One Language To Do It
Popularity 普及度 Mylingual - There's More Than One Language To Do It
Popularity • Translated websites: > 300 • Translation data: 2.6MB • # of contributors: > 220 Note: Numbers of April 4th 2007 Mylingual - There's More Than One Language To Do It
Popularity • 27,600 active users (by IP addr./day) • 25,000 – Firefox Extension • 2,600 – User JavaScript • Already Popular for Firefox Users • Ranked 5th by popularity • # of users: 73% of IETab • Source: minkaku.goga.co.jp Mylingual - There's More Than One Language To Do It
Architecture アーキテクチャ Mylingual - There's More Than One Language To Do It
Architecture – Firefox Extension • Translation data in JSON • Partial Updates, downloaded periodically • Similar to def. files of AntiVirus software • 翻訳データは JSON 形式 • 差分アップデートを定期的に配信 • アンチウイルスソフトの定義ファイルに類似 Mylingual - There's More Than One Language To Do It
Architecture – User JavaScript • Insertion of CSI by User JavaScript <script src=“http://~/translate.js”></script> • Translation data in JSONP • User JavaScript による CSI 埋め込み • 翻訳データを JSONP で配信 Mylingual - There's More Than One Language To Do It
Architecture – Server-side • Static files + CGI::Application • and some PHP • All data stored and served in JSON(P) • no RDBMS, use symlinks • Typekey-compatible authentication • mod_rewrite for normalizing hostnames • ex. www.youtube.com should use translation for youtube.com Mylingual - There's More Than One Language To Do It
Architecture – Server-side • Runs on a Virtual Private Server (Linux) • WebARENA SuitePRO • Running Cost: \8,820/month ($73/month) • Serving… • Avg. 22 HTTP requests/sec. • Avg. 2Mbits/sec. Mylingual - There's More Than One Language To Do It
Mylingual http://mylingual.net/ Mylingual - There's More Than One Language To Do It
What is Mylingual? (Mylingual とは) • Internationalized version of Japanize • Support for > 50 languages • Released last week • Japanize の国際化版 • 50以上の言語に対応 • 先週公開 Mylingual - There's More Than One Language To Do It
Mylingual – Demo • mixi • livedoor Reader Mylingual - There's More Than One Language To Do It
The Aims of Mylingual (Mylingual の目標) • For native speakers of minor languages • provide ability to use apps in mother languages • For developers using minor languages • let develop their webapps in mother languages • 英語圏以外のユーザーに、母語でウェブアプリを利用するチャンスを提供 • 英語圏以外の開発者に、母語で開発する機会を提供 Mylingual - There's More Than One Language To Do It
Future Plans 今後の計画 Mylingual - There's More Than One Language To Do It
Future Plans • Internet Explorer version • Support for HTTPS • I18n Service for developers • IE 対応 • HTTPS 対応 • 開発者むけの国際化サービスを提供 Mylingual - There's More Than One Language To Do It
Internationalization Service for Developers • Developers add <script> to webapps • <script src=“http://mylingual.net/…”></script> • The app will be localized using Mylingual • even for the users wo. Mylingual installed • 開発者が <script> タグをウェブアプリに追加 • Mylingual がそのウェブアプリを翻訳 • Mylingual をインストールしていないユーザーにも対応可能 Mylingual - There's More Than One Language To Do It
Ways of Developing a World-wide Service 国際的なサービスを開発する方法 Mylingual - There's More Than One Language To Do It
Ways of Developing a World-wide Service • Move to Silicon Valley • Create a subsidiary in the U.S. • Hire a native for translation • シリコンバレーに移住 • アメリカに子会社を作る • ネイティブに翻訳させる Mylingual - There's More Than One Language To Do It
Mylingual – a Yet Another Way to Do It • Stay in Japan • Forget about L10n & I18n • And let the users do the work (maybe…) • 日本に残り • ローカライズや国際化に悩むのはやめよう • きっとユーザーが翻訳してくれる (かも) Mylingual - There's More Than One Language To Do It
Thank you! Mylingual - There's More Than One Language To Do It