ABP的语言本地化设置非常方便,甚至地区图标ABP框架都已经有了。
先看看结果吧。
英文的界面
中文的界面
配置流程如下:
首先在Localization目录下新建一个对应的json文件,里面存放对应变量的本地化字符串,命名规则就是 应用名-本地化简称.json
比如我的应用名叫做SimpTaskApp(没错,就是abp的入门教程的工程),然后中文的简写是zh,所以我的json文件就是SimpleTaskApp-zh.json。
然后来看看内容
json里主要是两个属性culture和texts。
culture对应文化的简称。中文zh 英文en 土耳其文tr
texts对应字符串变量。
这里配置好以后就在XXXLocalizationConfigurer.cs里添加语言。XXX是应用名
位置在这里。
localizationConfiguration.Languages集合里添加一个LanguageInfo对象,参数3个,第一个是语言简写,如中文是zh,第二个是显示的名称,第三个是图标,一般是国家或地区的标志,规则是famfamfam-flags XX,XX是国家或地区的简写,如中国 cn
这段就是那个下拉选择语言的前端代码,遍历Model里的Language集合,加入下拉菜单。
1 @model Acme.SimpleTaskApp.Web.ponents.LanguageSelection.LanguageSelectionViewModel 2 <li class="dropdown"> 3<a href="#" class="dropdown-toggle" data-toggle="dropdown"> 4 <div class="@Model.CurrentLanguage.Icon"></div> 5 <span>@Model.CurrentLanguage.DisplayName</span> 6 <b class="caret"></b> 7</a> 8<ul class="dropdown-menu"> 9 @foreach (var language in Model.Languages)10 {11 if (language.Name != Model.CurrentLanguage.Name)12 {13 <li><a href="@Url.Action("ChangeCulture", "AbpLocalization")?cultureName=@(language.Name)&returnUrl=@(Model.CurrentUrl)"><div class="@language.Icon"></div> @language.DisplayName</a></li>14 }15 }16</ul>17 </li>
最后的效果就如下
附录,famfamfam的国旗标志及对应的代码。图标icon包下载连接
国家或地区代码是ISO 3166-1 alpha-2
此段摘自/lab/icons/flags/和维基百科
如果觉得《asp.net core ABP模板本地化设置》对你有帮助,请点赞、收藏,并留下你的观点哦!