.Net之多语言配置
開篇語
首先非常感謝各位朋友或技術愛好者的關注。
介紹
支持多語言使網(wǎng)站可以覆蓋更廣泛的受眾。ASP.NET Core 提供的服務和中間件可將網(wǎng)站本地化為不同的語言。
本次示例環(huán)境:vs2019、net5
配置
無需引用Nuget包即可實現(xiàn)以下功能。
注入容器
services.AddLocalization(t?=> {t.ResourcesPath?=?"Language"; });啟用配置
????????????var?supportedCultures?=?new?List<CultureInfo>(){new?CultureInfo("zh-CN"),new?CultureInfo("en-US")};app.UseRequestLocalization(new?RequestLocalizationOptions{//這里指定默認語言包DefaultRequestCulture?=?new?RequestCulture("en-US"),//為了測試配置默認語言英文SupportedCultures?=?supportedCultures,SupportedUICultures?=?supportedCultures});語言配置文件
需要在根目錄新建一個文件夾,文件夾名字就是ResourcesPath的名字。資源文件(resx結(jié)尾)存放路徑需要和使用的地方目錄結(jié)構(gòu)一致。(右鍵文件夾>添加>新建項)
image.png語言包下的目錄結(jié)構(gòu)和MVC對應,控制器對應控制器,視圖對應視圖。資源文件命名方式為使用文件的文件名稱加上語言代碼。
image.png讀取資源文件
在控制器中使用,依賴注入資源文件
????[ApiController][Route("[controller]")]public?class?HomeController?:?ControllerBase{private?readonly?IStringLocalizer<HomeController>?_localizer;public?HomeController(IStringLocalizer<HomeController>?localizer){_localizer?=?localizer;}[HttpGet]public?string?Get(){return?_localizer["succeed"].Value;//如果找不到succeed的本地化值,那么就返回字符串“succeed”}}測試
有多種方法可以告訴程序需要使用哪一個語言文件,下面只說常見的使用,還支持自定義 。
默認輸出
image.pngHTTP報文
和常見的請求一樣添加Accept-Language請求頭即可
Accept-Language:zh-CN image.pngCookie
默認使用cookie名稱.AspNetCore.Culture,值是
c=zh-CN|uic=zh-CN c=zh-CN uic=zh-CNc是Culture,uic是UICulture
URL參數(shù)
三種寫法,效果一樣
?culture=zh-CN&ui-culture=zh-CN ?culture=zh-CN ?ui-culture=zh-CN image.png參考文檔
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/localization?view=aspnetcore-5.0
注:
最近文章的更新頻率有點低(工作有點忙,所以花的時間有點多),但是我會盡可能的維持文章的內(nèi)容質(zhì)量,如果文章內(nèi)容有誤或者有其他建議,麻煩請聯(lián)系我。
如果您覺得文章內(nèi)容還行,麻煩請您點個贊或點個在看,這是對我的一種支持,謝謝。
總結(jié)
以上是生活随笔為你收集整理的.Net之多语言配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET之生成数据库全流程
- 下一篇: 《.NET内存管理宝典》在京东上架销售啦