【あいじゅうはちえぬ】
i18n(国際化) とは?
最終更新:
💡 ソフトウェアを「世界対応」にする設計
ソフトウェアを多言語・多地域に対応できる設計にすること。i18nは「internationalization」の略記。
📌 このページのポイント
l10nと何が違うの?
i18nは、言語や地域に合わせやすい仕組みを設計すること。l10nは、その仕組みを使って特定の言語・地域・文化へ適応させることだよ。翻訳だけでなく、日付や通貨、表現の調整なども含むんだ
どうやって実装する?
たとえば表示文をコードから分け、t("hello")のようなキーで参照するよ。i18nextなら翻訳データと言語を設定して使える。ファイルの読み込みや言語の検出も設定が必要で、入れただけで全言語に対応するわけではないんだ
文字列以外に何を気にする?
日付・数値・通貨の書式、複数形、文字の表示方向などだね。JavaScriptのIntlは日付や数値の書式、複数形の規則などを扱える。アプリの文章を自動翻訳する機能とは分けて考えよう
画面の見た目も変わるの?
言語で文の長さが変わるので、ボタンや見出しに余裕を持たせるといいよ。アラビア語などの右から左への表記も考える。単に文を置き換えるだけで、どの画面も適切になるとは限らないんだ
後から対応するのは大変?
表示文や書式がコード中に散らばっていると、後から整理する作業が増えるよ。想定する言語や地域を踏まえて早めに設計し、実際の表示を確認しよう。必要な作業量はアプリの構造や対応範囲によるんだ
まとめ:ざっくりこれだけ覚えればOK!
「i18n」って出てきたら「ソフトウェアを多言語・多地域へ適応しやすくする設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Internationalization」 = 国際化
💬 iとnの間に18文字あるからi18n。数字を挟む略記法はNumeronymと呼ぶよ