Blame view

netcore/src/Infrastructure/NCC/Localization/Extensions/LocalizationApplicationBuilderExtensions.cs 1.25 KB
de2bd2f9   “wangming”   项目初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  using NCC.Dependency;
  using NCC.Localization;
  using Microsoft.Extensions.DependencyInjection;
  using Microsoft.Extensions.Options;
  
  namespace Microsoft.AspNetCore.Builder
  {
      /// <summary>
      /// 多语言中间件拓展
      /// </summary>
      [SuppressSniffer]
      public static class LocalizationApplicationBuilderExtensions
      {
          /// <summary>
          /// 配置多语言中间件拓展
          /// </summary>
          /// <param name="app"></param>
          /// <returns></returns>
          public static IApplicationBuilder UseAppLocalization(this IApplicationBuilder app)
          {
              // 获取多语言配置选项
              var localizationSettings = app.ApplicationServices.GetRequiredService<IOptions<LocalizationSettingsOptions>>().Value;
  
              // 如果没有配置多语言选项,则不注册服务
              if (localizationSettings.SupportedCultures == null || localizationSettings.SupportedCultures.Length == 0) return app;
  
              var requestLocalization = new RequestLocalizationOptions();
              Penetrates.SetRequestLocalization(requestLocalization, localizationSettings);
  
              // 设置多语言请求中间件
              app.UseRequestLocalization(requestLocalization);
  
              return app;
          }
      }
  }