ASP.NET Core グローバリゼーションとローカリゼーション

技術情報
公開: 2023年10月13日

公式のドキュメント(.NET 6.0)

ASP.NET Core のグローバリゼーションおよびローカリゼーション

用語の整理

  • グローバリゼーション (G11N):アプリが別の言語と地域をサポートするようにするプロセス。
    この省略形は、最初と最後の文字と、それらの間の文字数に由来します。
  • ローカライズ (L10N): グローバル化されたアプリを特定の言語と地域用にカスタマイズするプロセス。
  • 国際化 (I18N): グローバリゼーションとローカリゼーションの両方。
  • カルチャ: 言語、および必要に応じて地域のこと。
  • ニュートラル カルチャ: 指定した言語のみを含み、地域は含まないカルチャ (例: "en"、"es")。
  • 特定のカルチャ: 指定した言語と地域を含むカルチャ (例: "en-US"、"en-GB"、"es-CL")。
  • 親カルチャ: 特定のカルチャを含むニュートラル カルチャ (たとえば、"en" は "en-US" および "en-GB" の親カルチャです)。
  • ロケール:ロケールはカルチャと同じです。

アプリをローカライズするタスク

アプリのグローバル化とローカライズには、次のタスクが含まれます。

  • ASP.NET Core アプリのコンテンツをローカライズ可能にする。
  • アプリでサポートするカルチャ用にローカライズされたリソースを提供する
  • 要求ごとにカルチャを選択するための戦略を実装する

SupportedCultures および SupportedUICultures

ASP.NET Core には、SupportedCultures と SupportedUICultures という 2 つのカルチャ値のコレクションがあります。 日付、数値、および通貨の書式設定など、カルチャに依存する関数の結果は、SupportedCultures の CultureInfo オブジェクトによって決まります。 テキストの並べ替え順序、大文字と小文字の表記規則、文字列比較も SupportedCultures によって決まります。 サーバーがカルチャを取得する方法の詳細については、「StringComparer.CurrentCulture」を参照してください。 .resx ファイルからのどの翻訳文字列が ResourceManager によって検索されるのかが SupportedUICultures で決まります。 ResourceManager は、CurrentUICulture によって決定されるカルチャ固有の文字列を単に検索します。

つまり、言語切替は CurrentUICulture に依存しており、CurrentCulture は無関係

国際化対応アプリケーションを Linux で実行する場合

Linux に libicu のインストールが必要(未インストールの場合、以下のエラーが表示される)

Process terminated. Couldn't find a valid ICU package installed on the system.

以下のコマンドで libicu をインストール

# yum -y install libicu

参考 依存関係