Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ソフトウェア・グローバリゼーションの概要

41c56d9e08ae1fedd99eee8bada3c1de?s=47 Nishinos
January 27, 2018

 ソフトウェア・グローバリゼーションの概要

東京GILT会#1の発表資料

41c56d9e08ae1fedd99eee8bada3c1de?s=128

Nishinos

January 27, 2018
Tweet

More Decks by Nishinos

Other Decks in Technology

Transcript

  1. ソフトウェア・グローバリゼーション の概要 東京GILT会#1 「ソフトウェアと翻訳」 2018年1月27日 西野 竜太郎 @nishinos 1

  2. 自己紹介 •  IT分野の英語翻訳者/語学書著者 •  合同会社グローバリゼーションデザイン研究所 代表社員 •  日本翻訳連盟(JTF)理事 •  著書

    •  『ソフトウェア・グローバリゼーション入門』 → 本日発表 •  『アプリケーションをつくる英語』 •  第4回ブクログ対象(電子書籍部門) •  『ITエンジニアのための英語リーディング』 •  『英語語源が魔術に変わる世界では』 2
  3. グローバルなソフトウェアとは A.  多言語で表示される •  日本語、英語、フランス語… B.  ロケールに合った形で情報が表示される •  日付、通貨、数字の桁区切りと小数点… v ロケール: 通常は「言語」と「地域」(国)の組み合わせで示される区域

    •  アメリカの英語: en-US •  イギリスの英語: en-GB •  カナダの英語: en-CA •  カナダのフランス語: fr-CA 3
  4. グローバルなアプリの例(Pokémon GO) A.  多言語で表示 4

  5. グローバルなアプリの例(Pokémon GO) B.  ロケールに合った形で情報を表示 5 アメリカ英語 → 「月/日/年」の順 イギリス英語 →

    「日/月/年」の順
  6. グローバル化に必要なI18NとL10N •  グローバルなソフトウェアの開発には「I18N」と「L10N」が必要 v  間の数字は略されている文字の数 •  I18NとL10Nを合わせて「G11N」(グローバリゼーション) 6 土台 (言語や文化に非依存)

    アメリカ英 語 イギリス英 語 フランス語 ドイツ語 日本語 L10N I18N G11N
  7. グローバル化に必要なI18NとL10N •  I18N •  インターナショナリゼーション/国際化 •  特定の言語、地域、文化に依存しない形に製品を汎用化する Ø L10N の土台を築く作業 • 

    主にプログラマー •  ほかにデザイナーやテクニカル・ライターも 7
  8. グローバル化に必要なI18NとL10N •  L10N •  ローカリゼーション/地域化 •  特定の言語、地域、文化に合う形に製品を特殊化すること •  I18N で築いた土台の上に多言語情報を制作する作業

    •  主に翻訳者 l G11Nにおける現在の課題 •  L10N業界はウォーターフォール型で分業化され、90年代頃に成立 •  最近のアジャイルにうまく適応できていない Ø 認識のギャップを埋め、一連の流れ(→G11N)として理解する必要 8
  9. I18Nですること 9 カテゴリー 実装内容 A. 文字と書字方向 Unicodeを使う 異なる方向に書く言語に対応する B. L10Nの分業化と自動化

    リソースを外部化する ロケールに合う形式で自動的に表示させる C. 訳文の質向上 翻訳可能な単位にまとめる 条件に応じて異なる訳文を選択可能にする 翻訳を意識したGUI設計をする 翻訳を意識した原文テキストを書く ロケール依存の要素を汎用化する
  10. A. 文字と書字方向 u Unicodeを使う Ø 多様な文字を表示できる •  かつてI18Nでは努力のほとんどが文字コードとの格闘だった(らしい) u 異なる方向に書く言語に対応する Ø 右から左へ書く言語を表示できる •  RTL(Right

    To Left)とも •  アラビア語やヘブライ語 10
  11. A. 文字と書字方向 11 基本的に右から左 ラテン文字や数字は左から右 (アラビア語Wikipediaの「スティーブ・ジョブズ」の項目)

  12. A. 文字と書字方向 •  HTMLの場合「dir」属性で •  レイアウトもRTL •  鏡写し 12

  13. B. L10Nの分業化と自動化 u リソースを外部化する •  ソースコードと表示テキストを切り離して別々にしておくこと Ø 開発と翻訳の分業が可能 Ø ソースコードを保護 Ø 単一のソースコードを維持 •  実装方法の例

    •  PHPなど: gettext •  Java: .properties •  iOS: .xliff 13
  14. B. L10Nの分業化と自動化 u ロケールに合う形式で自動的に表示させる •  日付の場合、汎用的な形式(例:UNIX時間)で保持し、ロケールに合わ せてフォーマットして表示 Ø 翻訳が不要に 14 ロケール 日付

    (短い形式) アメリカ December 1, 2015 12/1/15 イギリス 1 December 2015 01/12/2015 日本 2015年12月1日 2015/12/01 ロケール 数字 アメリカ 1,234.56 日本 1,234.56 ドイツ 1.234,56 フランス 1 234,56
  15. C. 訳文の質向上 u 翻訳可能な単位にまとめる Ø 不自然で無理な訳文を作る必要がなくなる •  例:変数とテキストを結合して作った英語メッセージ… numOfDownloaded + "of" +

    numOfTotal + "have been downloaded.” •  英語 「7 of 10 files have been downloaded.」 •  日本語 「7 ファイルをダウンロードしました(全10 ファイル)。」 ü 英語と日本語では語順が違うので、訳が苦しい… •  一般的な対策: フォーマッター(例:JavaのMessageFormatクラス) •  プレースホルダー({1})は自由に移動可能 "{1} of {2} have been downloaded.” “全{2}ファイル中{1}ファイルをダウンロードしました。” 15
  16. C. 訳文の質向上 u 条件に応じて異なる訳文を選択可能にする Ø 名詞に性があったり複数形がいくつもある言語の翻訳が可能に •  例: •  「カートに{n}個の商品があります。」 •  英訳:

    「You have {n} item(s) in your cart.」 Ø 「item(s)」という形も可能だが、きちんとした英語にしたい 1 item、2 items、3 items … •  英語は2種類だけ(単数/複数)なので、それほど苦労はなかった Ø ロシア語では4つ、アラビア語では6つも種類(カテゴリー)が… 16
  17. C. 訳文の質向上 17 言語 カテゴリー ルール(整数の場合のみ) 日本語 other すべて 英語

    one 1 other 上記以外 ロシア語 one 1、21、31、41、51、61、71、81、101、1001 … few 2〜4、22〜24、32〜34、42〜44、52〜54、62、102、1002 … many 0、5〜19、100、1000、10000、100000、1000000 … other 上記以外 アラビア語 zero 0 one 1 two 2 few 3〜10、103〜110、1003 … many 11〜26、111、1011 … other 上記以外 参考: UnicodeのCLDR(バージョン28)
  18. C. 訳文の質向上 •  条件(数や性別)で表示を変える仕組みが広がりつつある •  例:ICU(International Component for Unicode)形式 • 

    結果 0: 「 No items in your cart.」 1: 「 You have 1 item in your cart.」 5: 「 You have 5 items in your cart.」 18 {商品数, plural, =0 {No items in your cart.} one {You have 1 item in your cart.} other {You have # items in your cart.} }
  19. C. 訳文の質向上 u 翻訳を意識したGUI 設計をする •  翻訳によってGUI要素(例:ボタン)のテキストの長さが変わる Ø 対処例: サイズを自動調整する、スペースを取る… u 翻訳を意識した原文テキストを書く Ø 対処例:

    文化に固有の比喩や例は避ける u ロケール依存の要素を汎用化する •  住所は大きな単位(県など)ではなく小さな単位から書く国も Ø 対処例: 住所は1つのテキストボックスにする 19
  20. 各ロケールでの優先度 20 実装内容 中・ 韓 英・仏ほ か アラビ ア A.

    文字と書 字方向 Unicodeを使う ◯ ◯ ◯ 異なる方向に書く言語に対応する ― ― ◯ B. L10Nの分 業化と自動化 リソースを外部化する ◯ ◯ ◯ ロケールに合う形式で自動的に表示させる △ △ △ C. 訳文の質 向上 翻訳可能な単位にまとめる ◯ ◯ ◯ 条件に応じて異なる訳文を選択可能にする ― △ △ 翻訳を意識したGUI設計をする △ △ △ 翻訳を意識した原文テキストを書く △ △ △ ロケール依存の要素を汎用化する △ △ △ ※ 「◯」は必須、「△」は望ましい、「―」は必ずしも必要ない、という優先度を示す
  21. L10Nですること •  各ロケール向けに特殊化する内容 •  テキスト •  UIラベル、エラー・メッセージ、ヘルプ/マニュアル… Ø 「翻訳」のこと •  画像、ビデオ、オーディオ

    •  文化的要素 •  名前、住所、電話番号、度量衡など •  機能とハードウェア 21 〒 このアイコンを付けたアプリは世界で売れるか?
  22. L10Nの基本3ステップ 1.  抽出 •  ソフトウェアから翻訳対象のテキスト(や画像など)を取り出す 2.  翻訳 •  翻訳する 3. 

    統合 •  ソフトウェアに翻訳テキスト(画像なども)を戻す •  翻訳では主に「アウトソーシング」と「内製」 •  ウォーターフォール的なやり方ではアウトソーシングが主流 Ø ただしアジャイル的なやり方に対応できない点が課題 22
  23. L10Nでよく使うツール A.  翻訳作業環境 Ø 「翻訳」ステップで利用 •  エディター、翻訳メモリー(TM)、用語ベース、機械翻訳など 例: Google Translator Toolkit → 次のスライド

    B.  TMS(Translation Management System) Ø ステータス管理機能などで、プロジェクトを円滑化 C.  抽出/統合支援ツール Ø 「抽出」「統合」ステップで利用 •  Android StudioなどIDEに搭載されていることも 23
  24. L10Nでよく使うツール 24 原文 訳文 翻訳メモリーからの検索結果 用語ベースからの検索結果 機械翻訳の結果

  25. 翻訳者に渡すべき情報 Ø 最適な翻訳者を見つけ、質を高められる •  テキストの全般情報 •  種類や分野: 理科教育のアプリ、通信機器のマニュアル… •  想定ユーザーや言葉づかい: 子供/大人、フォーマル/カジュアル…

    •  翻訳の対象と対象外 •  HTMLタグのalt属性は訳す、など •  文脈が分かる資料 •  アプリそのもの、UIのスクリーンショット、画面設計書… •  (あれば)TM、用語集、スタイルガイド 25
  26. 以上です 26