メニュー

国と言語は別物: ローカライズの三層とテスト行列

国と言語は一対一に対応しません。画面の言語・内容の地域・データの形式という三つの層に分け、二つの軸を直交させて抽出具合を設計する方法を解説します。

公開日

  • 国際化
  • テスト設計

国と言語は別物です。一つの国が複数の言語を使うことも、一つの言語が複数の国で使われることもあります。この記事では、混同すると何が壊れるのかを確かめたうえで、二つの軸を分けて検証するための考え方を整理します。

国と言語が互いに導けないのはなぜか?

国から言語を決めようとすると、必ず例外が出ます。複数の言語を公用語とする国もあれば、隣り合う国どうしが同じ言語を共有している場合もあります。言語から国を決めようとしても同じで、同じ言語を使う複数の国が別々の制度を持ちます。

この関係は、片方をもう片方の従属項目として扱えないことを意味します。フォームの設計では、国と言語を並んだ二つの独立した項目として持つ必要があります。

二つの項目を並べる位置も、独立であることを示す手がかりになります。片方を選ぶと他方が自動で決まる配置にすると、独立だという前提が画面からは読み取れません。

ローカライズの三層

「翻訳されている」という一言でまとめられている状態は、実際には三つの層に分かれます。

  • 画面の言語。見出しや説明文がどの言語で表示されるかです。
  • 内容の地域。どの市場向けの内容を見せるかです。
  • データの形式。日付、数値、氏名の順序、住所の並びをどの取り決めで扱うかです。

三つは独立に決まります。画面が日本語のまま、内容は別の市場向け、データの形式はさらに別の取り決め、という組み合わせは珍しくありません。層を分けずに一つの設定でまとめると、どれか一つを変えたときに残りが意図せず動きます。

層を分ける利点は、変更の影響を一つの層にとどめられることです。画面の言語を変えただけでデータの形式が変わってしまうと、確認すべき範囲が利用者の設定の数だけ広がります。層ごとに入力を分けておけば、変更のたびに見る場所が一つに決まります。

言語タグと地域コードの役割の違い

言語を示す符号は、文字列がどの言語で書かれているかを表します。地域を示す符号は、値の取り方や書式がどの取り決めに従うかを表します。役割が違うので、片方をもう片方の代用にはできません。

ありがちなのは、言語の設定を見てデータの書式を切り替えてしまう作りです。言語が同じでも地域が違えば、正しい書式は変わります。書式の切り替えは地域の側だけで行い、言語の設定には表示の文言だけを任せるのが安全です。

言語から書式を推測すると何が起きる?

もっとも多い不具合は、言語が合っているために誤りに気づかない型です。利用者が選んだ言語が特定の国で使われるものだったため、その言語を手がかりに書式が選ばれ、実際の居住地とは違う規則が当てられます。言語の判定は成功しているので、画面には何の違和感も出ません。

この型の不具合は、検証の側でも見落とされます。言語と地域が同じ組み合わせの標本ばかりを集めると、両者が食い違う事例が一件も入りません。意図して食い違わせた組み合わせを、最初から集合に入れておく必要があります。

食い違いの作り方は、居住地と言語を別々に選べる画面を用意すれば済みます。選べない画面では、この型の不具合は原理的に表に出ません。

テスト行列はどう組むのか?

二つの軸は、掛け合わせて全部を試すのではなく、それぞれから少数を選んで組み合わせます。

  • 言語の軸は、文字の種類が異なるもの、書字方向が異なるものを選びます。見るのは文言の伸縮と折り返しです。
  • 地域の軸は、書式の取り決めが異なるものを選びます。見るのは値の書式と保存される中身です。

この二つを直交させ、言語の違いが地域の値に影響しないこと、地域の違いが文言に影響しないことを確かめます。網羅の程度は、開発の初期は各軸の二件から始めれば十分です。

行列の穴は、埋めた件数ではなく、空けた理由のほうを記録します。試さなかった組み合わせを意図して外したのか、単に思いつかなかったのかは、あとから見た人には区別できません。

なお、同じ言語でも国によって文言の長さが大きく変わります。ボタンの幅や表の列幅を、平均的な長さで決めてしまうと、長い側の国で崩れます。長さの見積もりには、実際の語を使った最長の例を当ててください。

開発者向け: 書式は言語ではなく地域に従わせる

実装では、書式を決める入力に地域の符号だけを使います。言語の設定は文言の選択にだけ使い、書式の分岐には使わない、という分担を徹底します。関数の引数や設定の名前にも、どちらの符号なのかを書いておくと、取り違えを防げます。

次に、同じ言語を使う複数の国を並べて確認します。文言が同じでも、日付や数値の表示が国ごとに変わることを、目で見て確かめられる状態にしておきます。表示が変わらないなら、書式が言語に引きずられている疑いがあります。

最後に、言語の候補と地域の候補を別々に持ち、組み合わせを制限しないようにします。あらかじめ対応表で固定してしまうと、対応表にない組み合わせを利用者が選べなくなります。

この記事に挙げた言語と地域の組み合わせ、抽出具合の例は、検証の手順を説明するために構成した合成の事例です。実在する利用者の分布や、特定の製品の対応状況を示すものではありません。試験の設計と画面の見本としてのみ扱ってください。

次のステップ

まず、書式を決めている入力が言語なのか地域なのかを、実装の一箇所で確かめてください。次に、言語と地域が食い違う組み合わせを一件作り、表示と保存の両方を確かめます。国の選択欄そのものの検証は国選択フィールドのテスト、区分の持ち方は地域グルーピングと市場ティアで扱っています。国ごとの項目は国の一覧から確認できます。

続けて読む

各国の住所・身元データ形式の関連記事