zoukankan      html  css  js  c++  java
  • asp.net core 通过请求的header来改变时区

        //自定义时区请求处理对象
        public class RouteDataRequestCultureProvider : RequestCultureProvider
        {
            public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
            {
                //在这里切换系统语言
                //以下是通过Headers传值来切换语言,你也可以通过路由、cookie、url传值来切换
                if (httpContext == null)
                {
                    throw new ArgumentNullException(nameof(httpContext));
                }
                var listCulture = new List<string> { "zh-CN", "en-US" };
                string culture = "zh-CN";
                if (httpContext.Request.Headers.ContainsKey("Content-Language"))
                {
                    culture = httpContext.Request.Headers["Content-Language"];
                    if (culture.Contains("-"))
                    {
                        var cultureArr = culture.Split('-');
                        if (cultureArr?.Length == 2)
                        {
                            culture = $"{cultureArr[0].ToLower()}-{cultureArr[1].ToUpper()}";
                        }
                    }
                    else
                    {
                        culture = culture.ToLower();
                    }
                }
                string uiCulture = culture = listCulture.Contains(culture) ? culture : "zh-CN";
                var providerResultCulture = new ProviderCultureResult(culture, uiCulture);
                return Task.FromResult(providerResultCulture);
            }
        }
    //配置服务
    services.Configure<RequestLocalizationOptions>(opt =>
    {
        var supportedCultures = new[]
        {
            new CultureInfo(DefaultLanguage),
            new CultureInfo("en-US")
        };
        opt.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture(DefaultLanguage);
        opt.SupportedCultures = supportedCultures;
        opt.SupportedUICultures = supportedCultures;
        opt.RequestCultureProviders = new List<IRequestCultureProvider> { new RouteDataRequestCultureProvider() };
    })
    //启用请求本地化中间件
    app.UseRequestLocalization();
  • 相关阅读:
    面向对象继承
    webpack 错误提示 Error: Can't resolve 'css-loader'或Error: Can't resolve 'style-loader'
    Math.min() Math.max()
    表单
    addEventListener()
    H5图片背景
    ruby获取最新ruby
    js对象拷贝
    Oh-My-Zsh 下远程ssh的乱码问题
    MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化
  • 原文地址:https://www.cnblogs.com/yiyanwei/p/15726153.html
Copyright © 2011-2022 走看看