i18n
Overview
Internationalization
の略で、国際化を意味する。
具体的には、アプリケーションの多言語化を実現するための技術
ウェブアプリの2つの国際化手法
- ドメインルーティング
vns.jp
なら日本語vns.en
なら英語
とドメイン最後部分を調べて言語を切り替える方法
- サブパスルーティング
vns.blue/jp
なら日本語vns.blue/en
なら英語
とサブパスで切り替える方法 超大型アプリでもない限り、サブパスルーティングで充分。
例
ルーティングは、サブパス(/fr/products)またはドメイン(my-site.fr/products)によって国際化できます。
処理するのはフロント?バックエンド?
Webアプリケーションの国際化(i18n)について考える時、一般的にはフロントエンドでi18nを行うことが多い。
理由は主に次の2つ
- UIの動的な更新
フロントエンドのJavaScriptは、ユーザーが言語設定を変更したときにページ全体をリロードすることなくUIを動的に更新できる。
これはユーザーエクスペリエンスの観点から重要な利点 - バックエンドの負荷軽減
バックエンドでは一般的にデータを処理し、APIレスポンスを生成する。
もしバックエンドが翻訳も担当するとなると、その負荷は増えます。一方、フロントエンドでは、HTML、CSS、JavaScriptのレンダリングといったクライアントサイド での処理が主な役割なので、i18nを行うのに適している。
ただし、場合によってはバックエンドでのi18nも必要になることがある。たとえば、メール通知のようなバックエンドで生成されるコンテンツに対しては、バックエンドで翻訳を行う必要がある。
それぞれの方法には利点と欠点がありますので、アプリケーションの要件により選択してください。そして、どちらのアプローチを採用するにせよ、翻訳データの管理と共有には注意が必要です。そのためのツールやライブラリを選択し、効率的なi18n対応を実現しましょう。
locale
locale戦略について
ロケールの取り扱いには2つの方法があります。「サブパスルーティング」と「ドメインルーティング」
サブパスルーティング | Sub-path Routing
サブパスルーティングでは、ロケールをURLパスに入れます。
/en/blog