ASP.NET Core での多言語サポートの詳細な紹介

巴扎黑
リリース: 2017-09-01 14:23:12
オリジナル
1406 人が閲覧しました

この記事では、ASP.NET Core での多言語サポート (ローカリゼーション) について主に紹介します。興味のある方は詳細をご覧ください。

まず、スタートアップの ConfigureServices で、RequestLocalizationOptions を構成します。英語と中国語):


public void ConfigureServices(IServiceCollection services)
{
  services.AddLocalization(options => options.ResourcesPath = "Resources");

  services.AddMvc()
    .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);

  services.Configure<RequestLocalizationOptions>(
    opts =>
    {
      var supportedCultures = new List<CultureInfo>
      {
        new CultureInfo("en-US"),
        new CultureInfo("zh-CN")
      };
      opts.SupportedCultures = supportedCultures;
      opts.SupportedUICultures = supportedCultures;
    });
}
ログイン後にコピー

Startup の Configure() メソッドで RequestLocalizationOptions を適用します:


var requestLocalizationOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>().Value;
app.UseRequestLocalization(requestLocalizationOptions);
ログイン後にコピー

次に、_Layout.cshtml ビューの IViewLocalizer インターフェイスを通じてページ タイトルのサフィックスを多言語で表示します:


@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
<!DOCTYPE html>
<html>
<head>
  <title>@ViewData["Title"] - @Localizer["SiteTitle"]</title>
</head>
<body>
</body>
</html>
ログイン後にコピー

次に、ASP.NET Core Web プロジェクトに Resources フォルダーを作成し、Views.Shared._Layout.en-Us.resx ファイルと Views.Shared._Layout.zh-CN.resx ファイルをそれぞれ追加します。 Views.Shared._Layout.resx ファイルを開き、「SiteTitle」に対応するステートメント テキストを追加します:

1) Views.Shared._Layout.en-Us.resx

2) Views.Shared._Layout.zh- CN.resx

ASP.NET Core サイトを実行すると、ブラウザーの言語設定 (Accept-Language ヘッダー)、カルチャ クエリ パラメーター、または .AspNetCore に基づいて、対応する言語のテキストが表示されます。 .Culture Cookie の値:

注意事項: 言語名を指定せずに Views.Shared._Layout.en-Us.resx を追加しないでください。言語名を指定しないと、.resx ファイルを追加するときに「カスタム ツール」が表示されます。コード言語名 ResXFileCodeGenerator は入力ファイルの出力を生成できませんでした ...しかし、特定のエラーはログに記録されませんでした。」と質問されました

以上がASP.NET Core での多言語サポートの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート