Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介 •  IT分野の英語翻訳者/語学書著者 •  合同会社グローバリゼーションデザイン研究所 代表社員 •  日本翻訳連盟(JTF)理事 •  著書 •  『ソフトウェア・グローバリゼーション入門』 → 本日発表 •  『アプリケーションをつくる英語』 •  第4回ブクログ対象(電子書籍部門) •  『ITエンジニアのための英語リーディング』 •  『英語語源が魔術に変わる世界では』 2

Slide 3

Slide 3 text

グローバルなソフトウェアとは A.  多言語で表示される •  日本語、英語、フランス語… B.  ロケールに合った形で情報が表示される •  日付、通貨、数字の桁区切りと小数点… v ロケール: 通常は「言語」と「地域」(国)の組み合わせで示される区域 •  アメリカの英語: en-US •  イギリスの英語: en-GB •  カナダの英語: en-CA •  カナダのフランス語: fr-CA 3

Slide 4

Slide 4 text

グローバルなアプリの例(Pokémon GO) A.  多言語で表示 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

グローバル化に必要なI18NとL10N •  I18N •  インターナショナリゼーション/国際化 •  特定の言語、地域、文化に依存しない形に製品を汎用化する Ø L10N の土台を築く作業 •  主にプログラマー •  ほかにデザイナーやテクニカル・ライターも 7

Slide 8

Slide 8 text

グローバル化に必要なI18NとL10N •  L10N •  ローカリゼーション/地域化 •  特定の言語、地域、文化に合う形に製品を特殊化すること •  I18N で築いた土台の上に多言語情報を制作する作業 •  主に翻訳者 l G11Nにおける現在の課題 •  L10N業界はウォーターフォール型で分業化され、90年代頃に成立 •  最近のアジャイルにうまく適応できていない Ø 認識のギャップを埋め、一連の流れ(→G11N)として理解する必要 8

Slide 9

Slide 9 text

I18Nですること 9 カテゴリー 実装内容 A. 文字と書字方向 Unicodeを使う 異なる方向に書く言語に対応する B. L10Nの分業化と自動化 リソースを外部化する ロケールに合う形式で自動的に表示させる C. 訳文の質向上 翻訳可能な単位にまとめる 条件に応じて異なる訳文を選択可能にする 翻訳を意識したGUI設計をする 翻訳を意識した原文テキストを書く ロケール依存の要素を汎用化する

Slide 10

Slide 10 text

A. 文字と書字方向 u Unicodeを使う Ø 多様な文字を表示できる •  かつてI18Nでは努力のほとんどが文字コードとの格闘だった(らしい) u 異なる方向に書く言語に対応する Ø 右から左へ書く言語を表示できる •  RTL(Right To Left)とも •  アラビア語やヘブライ語 10

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

C. 訳文の質向上 u 条件に応じて異なる訳文を選択可能にする Ø 名詞に性があったり複数形がいくつもある言語の翻訳が可能に •  例: •  「カートに{n}個の商品があります。」 •  英訳: 「You have {n} item(s) in your cart.」 Ø 「item(s)」という形も可能だが、きちんとした英語にしたい 1 item、2 items、3 items … •  英語は2種類だけ(単数/複数)なので、それほど苦労はなかった Ø ロシア語では4つ、アラビア語では6つも種類(カテゴリー)が… 16

Slide 17

Slide 17 text

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)

Slide 18

Slide 18 text

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.} }

Slide 19

Slide 19 text

C. 訳文の質向上 u 翻訳を意識したGUI 設計をする •  翻訳によってGUI要素(例:ボタン)のテキストの長さが変わる Ø 対処例: サイズを自動調整する、スペースを取る… u 翻訳を意識した原文テキストを書く Ø 対処例: 文化に固有の比喩や例は避ける u ロケール依存の要素を汎用化する •  住所は大きな単位(県など)ではなく小さな単位から書く国も Ø 対処例: 住所は1つのテキストボックスにする 19

Slide 20

Slide 20 text

各ロケールでの優先度 20 実装内容 中・ 韓 英・仏ほ か アラビ ア A. 文字と書 字方向 Unicodeを使う ◯ ◯ ◯ 異なる方向に書く言語に対応する ― ― ◯ B. L10Nの分 業化と自動化 リソースを外部化する ◯ ◯ ◯ ロケールに合う形式で自動的に表示させる △ △ △ C. 訳文の質 向上 翻訳可能な単位にまとめる ◯ ◯ ◯ 条件に応じて異なる訳文を選択可能にする ― △ △ 翻訳を意識したGUI設計をする △ △ △ 翻訳を意識した原文テキストを書く △ △ △ ロケール依存の要素を汎用化する △ △ △ ※ 「◯」は必須、「△」は望ましい、「―」は必ずしも必要ない、という優先度を示す

Slide 21

Slide 21 text

L10Nですること •  各ロケール向けに特殊化する内容 •  テキスト •  UIラベル、エラー・メッセージ、ヘルプ/マニュアル… Ø 「翻訳」のこと •  画像、ビデオ、オーディオ •  文化的要素 •  名前、住所、電話番号、度量衡など •  機能とハードウェア 21 〒 このアイコンを付けたアプリは世界で売れるか?

Slide 22

Slide 22 text

L10Nの基本3ステップ 1.  抽出 •  ソフトウェアから翻訳対象のテキスト(や画像など)を取り出す 2.  翻訳 •  翻訳する 3.  統合 •  ソフトウェアに翻訳テキスト(画像なども)を戻す •  翻訳では主に「アウトソーシング」と「内製」 •  ウォーターフォール的なやり方ではアウトソーシングが主流 Ø ただしアジャイル的なやり方に対応できない点が課題 22

Slide 23

Slide 23 text

L10Nでよく使うツール A.  翻訳作業環境 Ø 「翻訳」ステップで利用 •  エディター、翻訳メモリー(TM)、用語ベース、機械翻訳など 例: Google Translator Toolkit → 次のスライド B.  TMS(Translation Management System) Ø ステータス管理機能などで、プロジェクトを円滑化 C.  抽出/統合支援ツール Ø 「抽出」「統合」ステップで利用 •  Android StudioなどIDEに搭載されていることも 23

Slide 24

Slide 24 text

L10Nでよく使うツール 24 原文 訳文 翻訳メモリーからの検索結果 用語ベースからの検索結果 機械翻訳の結果

Slide 25

Slide 25 text

翻訳者に渡すべき情報 Ø 最適な翻訳者を見つけ、質を高められる •  テキストの全般情報 •  種類や分野: 理科教育のアプリ、通信機器のマニュアル… •  想定ユーザーや言葉づかい: 子供/大人、フォーマル/カジュアル… •  翻訳の対象と対象外 •  HTMLタグのalt属性は訳す、など •  文脈が分かる資料 •  アプリそのもの、UIのスクリーンショット、画面設計書… •  (あれば)TM、用語集、スタイルガイド 25

Slide 26

Slide 26 text

以上です 26