zoukankan      html  css  js  c++  java
  • abp vnext如何设置默认语言?一篇彻底搞定默认语言设置问题

    abp vnext设置默认语言网上有很多参考资料,有些是针对老版本abp,也有一些姿势不太正确,设置之后并没有效果,经过本人实测发现有如下几种方式有效:

    1. 通过配置文件设置

    "Settings": {
        "Abp.Localization.DefaultLanguage": "zh-Hans"
      }
    

    参考:How to set the default culture in "BackendAdminApp.Host"?

    2. 在Startup文件中设置

    Startup中的Configure方法中添加如下代码:

    public void Configure(IApplicationBuilder app)
    {
        app.InitializeApplication();
        //设置默认语言
        app.ApplicationServices.GetService<ISettingDefinitionManager>().Get(LocalizationSettingNames.DefaultLanguage).DefaultValue = "zh-Hans";
    }
    

    参考:How to set the default language?

    3. 在YourProjectNameWebModule文件中设置

    YourProjectNameWebModule中的OnApplicationInitialization方法中添加如下代码:

    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
        var app = context.GetApplicationBuilder();
        var env = context.GetEnvironment();
    
        // …… 此处省略其他代码
    
        //app.UseAbpRequestLocalization();
        // 可以生效
        //app.UseAbpRequestLocalization(options => options.DefaultRequestCulture = new RequestCulture("zh-Hans"));
        // 可以生效
        app.UseAbpRequestLocalization(optios => optios.SetDefaultCulture("zh-hans"));
    }
    

    或者按照如下方式方式也可以:

    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
        var app = context.GetApplicationBuilder();
        var env = context.GetEnvironment();
    
        // …… 此处省略其他代码
    
        //app.UseAbpRequestLocalization();
        var supportedCultures = new[]
            {
                new CultureInfo("zh-hans"),
                new CultureInfo("en"),
            };
        app.UseRequestLocalization(options =>
        {
            options.DefaultRequestCulture = new RequestCulture("zh-hans");
            options.SupportedCultures = supportedCultures;
            options.SupportedUICultures = supportedCultures;
            options.RequestCultureProviders = new List<IRequestCultureProvider>
                    {
                        new QueryStringRequestCultureProvider(),
                        new CookieRequestCultureProvider()
                    };
        });
    }
    

    参考:How to set the default language?

    4. 通过数据库设置 (注意:此方法经测试有问题)

    此方法在谷歌和Edge下无效,在IE11下有效!

    在数据库中的abpsettings表中执行如下语句,插入默认语言。

    INSERT INTO abpsettings
    (Id, Name, Value, ProviderName, ProviderKey)
    VALUES('c5727077-5c7f-14b8-cafc-39f45add56ba', 'Abp.Localization.DefaultLanguage', 'zh-hans', 'Global', '');
    

    5. 通过SeedData方式设置

    请参考abp大佬WAKU博客: 设置ABP默认使用中文(更新ABP v3.0方法)。另外,在此篇博客中也对设置未生效的情况进行了分析,并给出了解决方案,请大家移步。

  • 相关阅读:
    Swift之 ? 和 !
    objective-c工程使用swift
    NSMethodSignature和NSInvocation的用法
    NSTimer
    iOS 的 XMPPFramework
    计算string高度
    python学习:猜数字小游戏
    python 各种控制语句
    ③ 小程序的代码组成
    ③ 组件&props
  • 原文地址:https://www.cnblogs.com/ttzhang/p/abp_vnext_set_default_language.html
Copyright © 2011-2022 走看看