.Net Core 多语言

简介: .Net Core 多语言

StartUp.cs

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllerRoute(
                name: "Localization",
                pattern: "{lang=cn}/{controller=Home}/{action=Index}/{id?}");
    });
}

BaseController.cs 建个父类

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    string defaultLang = "cn";
    string cookieKey = "VipSoft.CurrentUICulture";
    var lang = filterContext.RouteData.Values["lang"];
    if (lang == null || string.IsNullOrWhiteSpace(lang.ToString()))
    {
        //如果URL中没有语言 看 Cookie 中有没有,都没有默认 en
        var cookie = filterContext.HttpContext.Request.Cookies[cookieKey];
        if (cookie == null)
        {
            lang = defaultLang;
        }
        else
        {
            lang = cookie;
        }
        ///把语言值设置到路由值里
        filterContext.RouteData.Values["lang"] = lang;
    }
    try
    {
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(lang.ToString());
    }
    catch (Exception e)
    {
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(defaultLang);
    }
    CacheCenter.CurrentLang = Thread.CurrentThread.CurrentUICulture.Name == "en-US" ? "en" : defaultLang;
    /// 把设置保存进cookie
    CookieOptions cookieOptions = new CookieOptions();
    cookieOptions.Expires = DateTime.Now.AddYears(1);
    filterContext.HttpContext.Response.Cookies.Append(cookieKey, Thread.CurrentThread.CurrentUICulture.Name, cookieOptions);
    base.OnActionExecuting(filterContext);
}
目录
相关文章
|
2月前
|
人工智能 开发框架 Devops
.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。
【7月更文挑战第4天】.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。此外,讨论了.NET如何通过性能优化、DevOps集成、AI与ML支持以及开源策略应对未来挑战,为开发者提供强大工具,共创软件开发新篇章。
36 3
|
2月前
|
人工智能 前端开发 Devops
NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。
【7月更文挑战第4天】**.NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。实际应用涵盖企业系统、Web、移动和游戏开发,以及云服务。面对性能挑战、容器化、AI集成及跨平台竞争,.NET持续创新,开发者应关注技术趋势,提升技能,并参与社区,共同推进技术发展。**
28 1
|
10月前
|
数据采集 自然语言处理 监控
基于.Net开发的、支持多平台、多语言餐厅点餐系统
基于.Net开发的、支持多平台、多语言餐厅点餐系统
120 0
|
开发框架 自然语言处理 前端开发
一个基于.NetCore开发、模块化、跨平台、多语言商城系统
一个基于.Net Core MVC开发的、简单、模块化、跨平台、多语言的电子商务系统。项目采用模块化架构,代码清晰,便于扩展;功能完善、集成了外贸常见的支付方式;支持多个主题切换;所采用的技术栈都是最新的。
363 0
一个基于.NetCore开发、模块化、跨平台、多语言商城系统
|
自然语言处理
.Net MVC5(.Net Framework 4.0+)多语言解决方案
最近项目需要做多语言,原先是2种语言(中文/英文),现在又要加一种语言,成了3种。那么原来的方式肯定不适用了,只能升级解决方案。
.Net MVC5(.Net Framework 4.0+)多语言解决方案
|
自然语言处理 .NET