「ソフトウェア グローバリゼーション 入門」を読みました

 

11月1日に入社したleanチームの天貝です。

leanチームが扱っている案件がグローバル案件中心なので、エンジニア全員で国際化対応に関しての勉強会を行っています。

今回は、その勉強会で扱っている本「ソフトウェアグローバリゼーション入門」から学んだことで、自分が知らなかったことや大切だと思うことをまとめました。

基本的ですが、見落としがちなことや意識すべきことが書いてあり、グローバルなソフトウェアを作る際に必要最低限のことを学べる良書だと思います。

 

この記事は Sansan Advent Calendar 2018 - Adventar の20日目の記事です。

adventar.org

 

グローバルなソフトウェアの特徴:多言語で表示、ロケール(地域)に合った表示

 ※この本はあくまで「表示」にフォーカスを当てています。

「多言語で表示」とは、文化的要素も考慮された適切な翻訳ができていることを指します。肥満を安直にfatと訳すと、デブという意味で不快感や違和感を与えるようなイメージです。

ロケール(地域)に合った表示」とは意味する範囲が大きいですが、日付や数字などの国によって違う表記に対応することが例に挙げられます。

 

I18N, L10N, G11N

I18N(Internationalization)は「特定の言語、地域、文化に依存しない形に製品を汎用化すること」 L10N(Localization)は「特定の言語、地域、文化に合う形に製品を特殊化すること」を指します。

これらを合わせてG11N(Globalization)といいます。

グローバルなソフトウェアを開発するためには、まずは言語・文化に非依存になるようにあらかじめ考慮し(I18N)、ローカルに合わせて対応する(L10N)必要があります。

 

G11N対応するための開発プロセス

ウォーターフォール型開発では「要件定義→設計→実装→テスト」となり、実装でI18N/L10Nの対応をします。しかし、実装の前の段階で「どこまで」「何を」を決めておく必要があります。

また、ウォーターフォール型開発ではI18N/L10Nを熟考して進められるためアウトソーシングをしても問題がなかったですが、現在はアジャイル開発が多くなってきたため工夫も必要になりました。アジャイル開発は密なコミュニケーションが必要のため、翻訳者がチームにアサインすることや、進捗管理ツールなどを使用した方が円滑に進められます。

場当たり的な対応はよくないですが、実際は後付けされることが多いです。

 

設計で考慮すべき点

 - どこ向けか:ロケール

 - どの程度か:例) 単数・複数の表示まで向き合うか、使わない表現をするか

 - 何が対象か:テキスト、画像、文化的要素、機能など

 - 何を使うか:I18N対応のためのフレームワークやライブラリなどの選定、

                         L10N対応のためにアウトソーシングにするか内製にするか、など

 

RTL言語

アラビア言語やヘブライ語の、右から左に読む言語をRight-to-leftという意味でRTL言語といいます。先日、顧客の声にアラビア語対応の要望が挙がり、leanチームではざわざわしました。

RTL言語の対応を考慮したデザインは、鏡で映しても違和感なく見えるデザインが理想だといわれます。問題はデザインだけでなく、数字やラテン文字は左から右に表示することにも注意する必要があります。これはHTMLのbdi要素やCSSのdirectionプロパティで対応することが可能です。

 

ロケールにあった形式

 - 日時:

ロケール 日付 日付(短縮形) 時間
日本 2018年1月20日 2018/1/20 17:30
アメリ January 20, 2018 1/20/18 5:30 PM
イギリス 20 January 2018 20/1/2015 17:30

英語圏といっても、日付の短縮形では1月なのか1日なのか伝わらない可能性があります。さらに踏み込むと、タイムゾーンや休日祝日、暦などの考慮も必要です。

  - 数字:

ロケール 桁区切り 小数点
日本 1,234.56 「,」 「.」
ドイツ 1.234,56 「.」 「,」
フランス 1 234,56 「 」 「,」

  

ロケール依存の要素の汎用化・各ロケールに向けた特殊化

 - 名前:姓名の順、ミドルネームやフリガナなど

 - 住所:日本では単位の大きな順、英語圏では小さな順から

 - 郵便番号:日本は[3桁]-[4桁]、アメリカは5桁、イギリスはアルファベットと数字の組み合わせ

 - 電話番号:ハイフンで区切るか、など

 - 記号やシンボル:〒は日本独自の記号、日本の〇×の意味と西洋の意味は逆、など

文化的要素に対応するために、ロケール依存する要素を把握しておく必要があります。これらを踏まえて、どの国に展開していくのかによってUIや実装を特殊化していくことが求められます。

 

所感

leanチームのバックログにも積んである!という問題もいくつかあり、親近感をもって読むことができました。海外のユーザが違和感を覚える箇所は想像もつかないことばかりなので、文化の違いを考慮するのは難しいなあとしみじみ思います。数字の表示が異なることは知らなかったです…

今回は開発者目線のことを抽出しましたが、翻訳者に求められる姿勢なども書かれていました。また、デザインが関係する問題が多いので開発者だけでG11Nに対応することもできません。開発者だけで解決できる問題ではなく、デザイナーや翻訳者など開発にかかわるすべての人の力と配慮が必要だと感じました。

3QのチームのOKRは「グローバルユーザのUXを向上させる」ということで、タイムゾーンの設計とUI/UXの更なる向上に取り掛かっていきます。この本で勉強したことも一部役に立てたいと思います。