Skip to main content

i18n

Overview

Internationalization の略で、国際化を意味する。
具体的には、アプリケーションの多言語化を実現するための技術

参考

i18nの基礎知識
ぼくたちのかんがえたさいきょうのi18n国家

ウェブアプリの2つの国際化手法

  • ドメインルーティング
    • vns.jp なら日本語
    • vns.en なら英語

とドメイン最後部分を調べて言語を切り替える方法

  • サブパスルーティング
    • vns.blue/jp なら日本語
    • vns.blue/en なら英語

とサブパスで切り替える方法 超大型アプリでもない限り、サブパスルーティングで充分。

ルーティングは、サブパス(/fr/products)またはドメイン(my-site.fr/products)によって国際化できます。

処理するのはフロント?バックエンド?

Webアプリケーションの国際化(i18n)について考える時、一般的にはフロントエンドでi18nを行うことが多い。

理由は主に次の2つ

  1. UIの動的な更新
    フロントエンドのJavaScriptは、ユーザーが言語設定を変更したときにページ全体をリロードすることなくUIを動的に更新できる。
    これはユーザーエクスペリエンスの観点から重要な利点
  2. バックエンドの負荷軽減
    バックエンドでは一般的にデータを処理し、APIレスポンスを生成する。
    もしバックエンドが翻訳も担当するとなると、その負荷は増えます。一方、フロントエンドでは、HTML、CSS、JavaScriptのレンダリングといったクライアントサイドでの処理が主な役割なので、i18nを行うのに適している。

ただし、場合によってはバックエンドでのi18nも必要になることがある。たとえば、メール通知のようなバックエンドで生成されるコンテンツに対しては、バックエンドで翻訳を行う必要がある。

それぞれの方法には利点と欠点がありますので、アプリケーションの要件により選択してください。そして、どちらのアプローチを採用するにせよ、翻訳データの管理と共有には注意が必要です。そのためのツールやライブラリを選択し、効率的なi18n対応を実現しましょう。

locale

locale戦略について

ロケールの取り扱いには2つの方法があります。「サブパスルーティング」と「ドメインルーティング」

サブパスルーティング | Sub-path Routing

サブパスルーティングでは、ロケールをURLパスに入れます。

/en/blog