ASP.NET Core 의 다 중 언어 지원 에 대한 자세 한 설명(Localization)

2870 단어 asp.netcore다 국어
먼저 Startup 의 Configure Services 에 AddLocalization 과 AddView Localization 을 추가 하고 RequestLocalization Options 를 설정 합 니 다(영어 와 중국 어 를 사용한다 고 가정 합 니 다).

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()방법 에 RequestLocalization Options 적용:

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 파일,View.Share.Layout.resx 파일 과"SiteTitle"에 대응 하 는 문 구 를 추가 합 니 다.
1)Views.Shared._Layout.en-Us.resx

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

이 때 ASP.NET Core 사 이 트 를 실행 하면 브 라 우 저의 언어 설정(Accept-language header)이나 culture 조회 인자,또는.AspNetCore.culture Cookie 값 에 따라 해당 하 는 언어의 문 자 를 표시 합 니 다.


주의해 야 할 점:언어 이름 이 없 는 Views.shared. 를 절대 추가 하지 마 세 요.Layout.en-Us.resx,그렇지 않 으 면 코드 언어 이름 을 추가 한.resx 파일 을 만 날 수 있 습 니 다.  "Custom tool ResXFileCodeGenerator failed to produce an output for input file...but did not log a specific error."질문.
꼭 봐 야 할 참고 문서:Globalization and localization 
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기