言語別ガイドRead this article in English

なぜドイツ語がUIテキスト伸長の定番ストレステストなのか

ローカライズを担当するエンジニアに「どの言語で最初にUIが壊れるか」を尋ねると、ドイツ語という答えが頻繁に返ってきます。ドイツ語が漠然と冗長な言語だからではありません。複合語形成・名詞の大文字化・文法上の格という、3つの具体的でよく知られた言語特徴が組み合わさり、長い単語と壊れやすい文組み立てを生むからです。仕組みを理解していれば予測可能な現象であり、設計時に考慮していなければ痛い目を見る現象でもあります。

複合名詞が非常に長い1単語を生む

ドイツ語は既存の名詞(時には他の品詞も)を連結して1つの書記上の単語にする複合名詞形成が自由に行われ、部分と部分の間にスペースやハイフンを必要としません。これは複合的な概念を複数の別々の単語として保つか、ハイフンでつなぐことが多い英語とは対照的です。英語で複数の単語を要する概念が、ドイツ語では途切れのない1単語になり得ます。これはスタイル上の過剰表現ではなく、この言語における標準的で生産的な語形成であり、ゲームUIのテキスト — メニューの分類、設定項目のラベル、アイテムやステータスの名前 — はまさに、短く凝縮された概念密度の高いテキストとして、この現象が最も起きやすい種類のテキストです。

実務上の帰結として、ドイツ語の「1単語」は、あなたのUIがこれまで描画したどの単語よりもはるかに長くなり得ます。そして重要なのは、テキストレンダラーが改行の基準にできるスペースやハイフンをまったく含まない可能性があることです。テストした最長の英単語に合わせてサイズ設計されたボタンやラベルは、テストしなかった最長のドイツ語単語には耐えられません。

名詞の大文字化

ドイツ語は、英語のように固有名詞と文頭語だけでなく、すべての名詞を大文字で書き始めます。これは固定された正書法上の規則であり、スタイル上の選択ではありません。そしてUIとは特有の形で関わってきます。英語ではデザイン上の理由でタイトルケースやすべて小文字のスタイリングを施す文字列があっても、そのスタイリングをそのままドイツ語に持ち込むことはできません。ドイツ語の大文字化はタイポグラフィ上の装飾ではなく、読者が名詞を識別する手がかりという文法的な意味を担っているためです。プログラム的に大文字・小文字を変換するテキストスタイリングの仕組み(たとえばスタイル上の理由でUIラベルを強制的に小文字にする処理)には、一律のルールではなく、ドイツ語を考慮した例外処理が必要です。

格変化が組み立て済みの文を壊す

ドイツ語には文法上の格体系(主格・対格・与格・属格)があり、名詞が文中で果たす文法上の役割 — 主語・直接目的語・間接目的語・所有者としての機能 — に応じて、冠詞の形、多くの文脈では形容詞の語尾までもが変化します。英語は名詞や形容詞にこれをほとんど反映しません(人称代名詞にわずかな痕跡が残る程度で、たとえば「he」と「him」の違いです)。これこそが、英語話者中心のチームがこの問題を過小評価しがちな理由です。

これは実行時に断片を組み立てて作るUIテキストすべてに直接影響します。「{item}を見つけた」「{item}を{slot}に装備する」、テンプレート文字列と可変の名詞を連結して作るダメージ表示やクエストテキストなどです。英語では、名詞がどこに挿入されても名詞自体の形は変わりません。ドイツ語では、同じ名詞に付く冠詞や、多くの場合形容詞の語尾までもが、その名詞がどのテンプレートの枠に入るかによって変化します。文脈ごとに文法上の格が異なるためです。あるテンプレートでは正しく機能する訳語が、名詞やその訳自体は一切変わっていないのに、別のテンプレートでは文法的に誤りになり得ます。

テキストテンプレートの作り方に何を意味するか

解決策はドイツ語専用のパッチではなく、ドイツ語がそれを避けて通れなくする、より一般的なローカライズ上の規律です。個別に翻訳された断片を連結して作るテンプレートは、名詞の形が文法上の役割によって変化しない英語のような言語をすべての言語が採用しているという前提に立っています。この前提はドイツ語(そして格体系を持つ他の多くの言語)では成り立たないため、断片は言語ごとに翻訳・並べ替え可能にするか、テンプレート側が翻訳者に十分な文法情報(格・性・数)を提示し、単なる基本形ではなく正しく活用された形を渡してもらえるようにする必要があります。

  • 翻訳済みの名詞を、文法上の役割を各テンプレートで確認せずに複数のテンプレートで無変更のまま使い回せると想定しない
  • テンプレート文字列については、孤立した変数名ではなく文全体の文脈を翻訳者に渡す
  • UI要素は、テストした最長の英単語だけでなく、現実的に起こり得る長いドイツ語の複合語を基準にサイズ設計する
  • 英語流の強制小文字化やスタイル上の大文字小文字ルールを、明示的な例外なしにドイツ語のテキストに適用しない
  • 文字列が途切れのない長い単語で終わり得る場合、テキストレンダラーがハイフネーションなどで改行できるか確認する — ドイツ語の複合語は明示的なスペースがなくても構成要素の境界でハイフネーション可能

ドイツ語基準の設計が他の言語にも効く理由

格体系や長い複合語を持つ言語はドイツ語だけではありませんが、多くの西側チームがすでに早い段階でローカライズ対象にしている言語の中で、この2つの特徴を併せ持つという点で、実務上入手しやすく手頃なストレステストになります。ドイツ語で現実的に起こり得る最長の複合語や、格変化に駆動される文組み立てに対して、切れも文法上の破綻もなく耐えられるUIは、他の多くの言語がより小さく吸収しやすい形で突きつけてくるレイアウトとテンプレートの問題を、すでに解決していることになります。

関連記事