博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABP Zero 本地化语言的初始化和扩展
阅读量:6637 次
发布时间:2019-06-25

本文共 2208 字,大约阅读时间需要 7 分钟。

 在aspnetboilerplate.com生成后,在core下的本地化文件增加选项即可

 

初始化方法

解析:

var currentCultureName = Thread.CurrentThread.CurrentUICulture.Name;

解决:

Global.asax设置

protected virtual void Application_BeginRequest(object sender, EventArgs e)        {            var langCookie = Request.Cookies["Abp.Localization.CultureName"];            if (langCookie != null && GlobalizationHelper.IsValidCultureCode(langCookie.Value))            {                Thread.CurrentThread.CurrentCulture = new CultureInfo(langCookie.Value);                Thread.CurrentThread.CurrentUICulture = new CultureInfo(langCookie.Value);            }        }

原方法重写

protected override void Application_BeginRequest(object sender, EventArgs e)        {            Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");            Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");        }

参考:http://www.ctosay.cn/content/50650577840524115454.html

 

 

WEB项目拥有自己的本地化

本地化过程

1.在Web项目下创建文件夹Localization,再创建子目录Source,在Source下创建相对的xml文件

2.在Web项目下自动生成的基类控制器TestControllerBase

protected TestControllerBase()        {            LocalizationSourceName = TestWebConsts.LocalizationSourceName;        }

3. 在 ZeroWebModule下进行初始化

public override void PreInitialize()        {            //Enable database based localization             Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();            Configuration.Localization.Languages.Add(new LanguageInfo("zh-CN", "简体中文", isDefault: true));            Configuration.Localization.Sources.Add(                new DictionaryBasedLocalizationSource(                    TestWebConsts.LocalizationSourceName,                    new XmlEmbeddedFileLocalizationDictionaryProvider(                        Assembly.GetExecutingAssembly(),                        "Test.Web.Localization.Source"                        )                    )                );    }

这步非常重要,TestWebConsts是自定义类

public class TestWebConsts    {        public const string LocalizationSourceName = "Test.Web";    }

这里的LocalizationSourceName不能和core项目下的一样,否则会出错

 

本地化资源文件的属性“生成操作”设置为“嵌入的资源”

"Test.Web.Localization.Source"   //这里是本地化资源文件的目录 = 项目名+路径

常见问题

1.Logs.txt提示Can not find 'xx' in localization source 'xxxx.Web'!

 

转载地址:http://znpvo.baihongyu.com/

你可能感兴趣的文章
WCF SOA服务应用
查看>>
KVM虚拟化技术 笔记(一)
查看>>
使用hugo制作基于md文档的静态网站
查看>>
如何使用虚拟机模板
查看>>
php 调用远程url的六种方法小结
查看>>
【学习笔记6】Result配置的各种视图转发类型
查看>>
java读取指定package下的所有class
查看>>
settimeout 推荐的最小值
查看>>
听云APP 图表分析
查看>>
整合 Apache 与 Tomcat
查看>>
博为峰Java技术题 ——JavaSE Scanner类Ⅰ
查看>>
SDN in Action: OpenDaylight MD-SAL Programming
查看>>
Maven学习总结(七)——eclipse中使用Maven创建Web项目
查看>>
Android学习总结(4)——Andorid Studio熟练使用
查看>>
序言 Preface
查看>>
Block介绍(二)内存管理与其他特性
查看>>
VS2013编写的C#程序,在xp下会报错说“不是合法的win32程序”。
查看>>
控制转移指令分类与机器码
查看>>
正则表达式使用
查看>>
P3261 [JLOI2015]城池攻占
查看>>