# 10 国際化とローカライズ
経済のグローバル化に対応する為、開発者として、多言語、国際化をサポートするWebアプリケーションを開発する必要があります。すなわち、同じページに異なる言語環境下で異なる効果を表示させる必要があります。つまりアプリケーションプログラムが実行される際リクエストの発信元の地域と言語の違いによって異なるユーザ・インターフェースを表示できなければなりません。このように、アプリケーション・プログラムにおいて新しい言語の追加をサポートする時、アプリケーションプログラムのコードの修正を必要とせずとも、言語パッケージを追加するだけで実現することができます。

国際化とローカライズ（Internationalization and localization,通常はi18nとL10Nによって表現されます）、国際化とは、ある地域に対してデザインされたプログラムを再構築するということです。それによりその他の多くの地域でも使用できるようにします。ローカライズとは国際化を睨んだプログラムにおいて新しい地域に対するサポートを追加することを指します。

現在、Go言語の標準パッケージではi18nのサポートは提供されておりません。しかし、比較的簡単なサードパーティの実装があります。この章ではgo-i18nライブラリを実装し、Go言語のi18nをサポートすることにします。

いわゆる国際化とは：特定のlocal情報に従って、これに対応する文字列またはそのたの物（たとえば時間や通貨のフォーマットです）を取り出すといったことです。これには３つの問題があります：

1、どのようにしてlocaleを確定するのか。

2、どのようにしてlocaleに対応した文字列またはその他の情報を保存するのか。

3、どのようにしてlocaleに沿って文字列とその他対応する情報を取り出すのか。

この節ではどのようにして正しいlocaleを設定し、アクセスしたサイトのユーザにその言語に対応するページを取得させるようにできるかをご紹介します。第二節ではどのようにして文字列、通貨、日時といったlocaleに対応した情報を処理または保存するのかについてご紹介します。第三節ではサイトの国際化をどのように実現するのかについてご紹介します。すなわち、どのようにして異なるlocaleに対してふさわしいコンテンツを返すかということです。この３つの節を学習することで、完全なi18nソリューションを得ることができます。

## 目次

  ![](images/navi10.png?raw=true)

## links
   * [目次](<preface.md>)
   * 前へ: [第九章概要](<09.7.md>)
   * 次へ: [デフォルトロケールの設定](<10.1.md>)
