一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET Core WebAPI實現本地化(單資源文件)

ASP.NET Core WebAPI實現本地化(單資源文件)

2020-07-02 15:21HueiFeng ASP.NET教程

這篇文章主要介紹了ASP.NET Core WebAPI實現本地化(單資源文件),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在Startup ConfigureServices 注冊本地化所需要的服務AddLocalizationConfigure<RequestLocalizationOptions>

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void ConfigureServices(IServiceCollection services)
 {
  services.AddLocalization();
  services.Configure<RequestLocalizationOptions>(options =>
  {
   var supportedCultures = new List<CultureInfo>
   {
    new CultureInfo("en-us"),
    new CultureInfo("zh-cn")
   };
 
   options.DefaultRequestCulture = new RequestCulture(culture: "en-us", uiCulture: "en-us");
   options.SupportedCultures = supportedCultures;
   options.SupportedUICultures = supportedCultures;
   options.RequestCultureProviders = new IRequestCultureProvider[] { new RouteDataRequestCultureProvider { IndexOfCulture = 1, IndexofUiCulture = 1 } };
  });
  services.Configure<RouteOptions>(options =>
  {
   options.ConstraintMap.Add("culture", typeof(LanguageRouteConstraint));
  });
  services.AddControllers();
 }

在Startup.cs類的Configure 方法中添加請求本地化中間件。

?
1
2
var localizeOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
  app.UseRequestLocalization(localizeOptions.Value);

RequestCultureProvider 它使用簡單的委托來確定當前的本地化區域性,當然我們還可以通過RequestCultureProvider自定義源的請求區域信息比如說配置文件或者數據庫都是可以的.或者說我們可以選用默認的一些方式讓我們去獲取到當前區域.

ASP.NET Core 本地化默認向我們提供了四個方式,可用于確定正在執行的請求的當前區域性:

  • QueryStringRequestCultureProvider
  • CookieRequestCultureProvider
  • AcceptLanguageHeaderRequestCultureProvider
  • CustomRequestCultureProvider

如下所示我將通過路由的方式,去確定當前區域

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class RouteDataRequestCultureProvider : RequestCultureProvider
 {
  public int IndexOfCulture;
  public int IndexofUiCulture;
 
  public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
  {
   if (httpContext == null)
    throw new ArgumentNullException(nameof(httpContext));
   string uiCulture;
 
   string culture = uiCulture = httpContext.Request.Path.Value.Split('/')[IndexOfCulture];
 
   var providerResultCulture = new ProviderCultureResult(culture, uiCulture);
 
   return Task.FromResult(providerResultCulture);
  }
 }

通過如下代碼片段實現IRouteConstraint對路由做相應的約束

?
1
2
3
4
5
6
7
8
9
10
11
12
public class LanguageRouteConstraint : IRouteConstraint
{
 public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection)
 {
 
  if (!values.ContainsKey("culture"))
   return false;
 
  var culture = values["culture"].ToString();
  return culture == "en-us" || culture == "zh-cn";
 }
}

添加區域資源文件

ASP.NET Core WebAPI實現本地化(單資源文件)

注入IStringLocalizer<T>StringLocalizer將通過傳遞的共享資源(T)的值映射到資源文件,然后將本地化根據字符串的名稱從資源文件返回響應的值

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Route("{culture:culture}/[controller]")]
[ApiController]
public class HomeController : ControllerBase
{
 private readonly IStringLocalizer<Resource> localizer;
 public HomeController(IStringLocalizer<Resource> localizer)
 {
  this.localizer = localizer;
 }
 public string Get()
 {
  return localizer["Home"];
 }
}

如下圖所示

ASP.NET Core WebAPI實現本地化(單資源文件)

ASP.NET Core WebAPI實現本地化(單資源文件)

Reference

https://github.com/hueifeng/BlogSample/tree/master/src/LocalizationSingleResx

到此這篇關于ASP.NET Core WebAPI實現本地化(單資源文件)的文章就介紹到這了,更多相關ASP.NET Core WebAPI本地化內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/yyfh/p/12995208.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 传说之下羊妈挤羊奶网站 | 97视频免费人人观看人人 | 18性夜影院午夜寂寞影院免费 | 国产一区二区精品久久 | 欧美一区二区福利视频 | 日韩欧美一区二区三区视频 | 521色香蕉网站在线观看 | 国产成人精品午夜免费 | 视频免费观看在线播放高清 | 日本三级免费看 | 呜呜别塞了啊抽插 | cos美女被黄网站 | 亚洲第一区二区快射影院 | 亚洲成人77777 | 欧美精选欧美极品 | 欧美高清在线精品一区二区不卡 | 男同巨黄gay小说好爽 | 高清视频在线观看+免费 | 国产精品反差婊在线观看 | 亚洲va精品中文字幕 | 不卡视频一区二区 | 色猪视频 | 男男gaygays18中国 | 欧美a一片xxxx片与善交 | 久久综合久久伊人 | 欧美综合另类 | 国产在线麻豆波多野结衣 | free性俄罗斯护士 | 日韩欧美成末人一区二区三区 | 日韩欧美一区二区三区中文精品 | 全彩成人18h漫画 | 日本888 xxxx| 亚洲色图中文字幕 | 欧美日韩精 | 国色天香社区视频在线观看免费完整版 | 国内精品91最新在线观看 | 日本在线播放 | 精品人伦一区二区三区潘金莲 | 亚洲色域网 | 日本中文字幕高清 | 深夜在线观看网站 |