【转】ABP源码分析四十三:ZERO的本地化

ABP Zero模块扩展了ABP基础框架中的本地化功能,实现了通过数据库对本地化功能进行管理。其通过数据库保存本地化语言及其资源。

 

ApplicationLanguage:代表本地化语言的实体类。一种语言就是一个ApplicationLanguage实例。

 

ApplicationLanguageProvider:实现了ILanguageProvider接口,通过IApplicationLanguageManager实例设置DefaultLanguage和获取应用所配置的Language的列表。

 

ApplicationLanguageManager/IApplicationLanguageManager:通过IRepository<ApplicationLanguage>实例完成ApplicationLanguage实体的CRUD操作。同时实现ApplicationLanguage实体的更改事件,具体就是当ApplicationLanguage实体状态变化时,将对应的ApplicationLanguage实体从缓存中移除。 

 


 

ApplicationLanguageText:代表数据库中的本地化资源的实体类。在ABP 基础框架中,是用资源文件保存本地化资源的,但是Zero中使用数据库保存本地化资源。

 

ApplicationLanguageTextManager/IApplicationLanguageTextManager: 通过IRepository<ApplicationLanguageText, long>实例完成ApplicationLanguageText实体的CRUD操作。

 


关于ILocalizationSource,ILocalizationDictionary和ILocalizationDictionaryProvider的定义和用法参见ABP核心框架中的本地化模块。ABP.Zero中重新实现了这三个接口,以完成从数据库中读取资源。如果明白了ABP核心框架中的本地化模块的用法,下面几个对象是很容易理解的。

IMultiTenantLocalizationSource : 扩展了ABP中的ILocalizationSource接口。重载了GetString和GetStringOrNull以提供根据tenant信息返回本地化字符串的方法。

MultiTenantLocalizationSource:实现了IMultiTenantLocalizationSource 接口。通过MultiTenantLocalizationDictionaryProvider实例完成本地化资源的读取。

 

IMultiTenantLocalizationDictionary : 扩展了ABP核心框架中的ILocalizationDictionary,重载了GetOrNull和GetAllStrings以提供根据tenant信息返回本地化字符串的方法。

MultiTenantLocalizationDictionary:实现了IMultiTenantLocalizationDictionary接口,通过IRepository<ApplicationLanguageText, long> 实例从数据库读取与指定tenant相关的本地化资源。并且通过ICacheManager实例缓存本地化资源

 

MultiTenantLocalizationDictionaryProvider:实现了ILocalizationDictionaryProvider接口,通过MultiTenantLocalizationDictionary获取与指定tenant相关的本地化资源。

 

MultiTenantLocalizationDictionaryCacheHelper:提供了两个静态方法一个用于获取localization cache,另一个方法CalculateCacheKey用于生成CacheKey。一个cacheKey对应一个本地化资源(字典类型)。

MultiTenantLocalizationDictionaryCacheCleaner:将一个指定的本地化资源从缓存中删除。

 


ILanguageManagementConfig:提供EnableDbLocalization方法激活是否使用Database作为本地化资源的数据源

 

LanguageManagementConfig:实现了ILanguageManagementConfig接口中的EnableDbLocalization方法。具体就是将其他本地化Source从configuration中移除,替换为Database Source。

 

返回ABP源码分析系列文章目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WinCE流设备驱动简介及GPIO驱动的实现

作者&#xff1a;ARM-WinCE 流设备驱动实际上就是导出标准的流接口函数的驱动&#xff0c;这是文档上面的定义。在WinCE中&#xff0c;所有的流设备都导出流设备接口&#xff0c;这样WinCE中的Device Manager可以加载和管理这些流设备驱动。 流设备驱动的架构如图&#xff1a;…

计算机出现蓝屏怎么解决,电脑出现蓝屏故障0x00000019怎么办?

原标题&#xff1a;电脑出现蓝屏故障0x00000019怎么办&#xff1f;电脑开机出现蓝屏故障0x00000019怎么处理&#xff1f;电脑出现蓝屏&#xff0c;一般都会有提示错误代码或者出错的文件名等&#xff0c;最近就有用户跟小编反映&#xff0c;开机出现了蓝屏故障&#xff0c;提示…

【转】ABP源码分析四十五:ABP ZERO中的EntityFramework模块

AbpZeroDbContext&#xff1a;配置ABP.Zero中定义的entity的Dbset EntityFrameworkModelBuilderExtensions:给PrimitivePropertyConfiguration添加了扩展方法用于创建Index。 AbpZeroDbModelBuilderExtensions&#xff1a;给DbModelBuilder添加了扩展方法用于表的重命名。 AbpZ…

WinCE中串口驱动及接口函数介绍

作者&#xff1a;ARM-WinCE 在WinCE中&#xff0c;串口驱动实际上就是一个流设备驱动,具体架构如图&#xff1a; 串口驱动本身分为MDD层和PDD层。MDD层对上层的Device Manager提供了标准的流设备驱动接口(COM_xxx)&#xff0c;PDD层实现了HWOBJ结构及结构中若干针对于串口硬件操…

【转】ABP源码分析四十六:ABP ZERO中的Ldap模块

通过AD作为用户认证的数据源。整个管理用户认证逻辑就在LdapAuthenticationSource类中实现。 LdapSettingProvider&#xff1a;定义LDAP的setting和提供DefautValue。主要提供配置访问AD数据库的账号信息。 LdapSettings/ILdapSettings:通过settingManager获取LDAP settings Ab…

广州.NET俱乐部 VSTS活动报道

首先要感谢广州.NET开发人员一直以来对俱乐部的支持&#xff0c;另外&#xff0c;要感谢微软鞠海洋提供的丰富礼品。本次活动主线是VSTS&#xff0c;俱乐部的讲师黎波为我们讲解了VSTS的基本组成和功能分布&#xff0c;让我们大家从宏观上了解VSTS。在活动上&#xff0c;微软的…

【转】ABP源码分析四十七:ABP中的异常处理

ABP 中异常处理的思路是很清晰的。一共五种类型的异常类。 AbpInitializationException用于封装ABP初始化过程中出现的异常&#xff0c;只要抛出AbpInitializationException异常就可以&#xff0c;无须做额外处理。这类异常往往是需要维护人员介入分析的。 其他四个异常都在A…

当你累了,准备放弃时,看看这个吧!!!

在别的空间看到这篇文章&#xff0c;感觉说的很有道理&#xff0c;故转过来&#xff0c;送给所有还在坚持的朋友~~ 每个人都背负着一个沉重的十字架&#xff0c;在缓慢而艰难地朝着目的地前进。 途中&#xff0c;有一个人忽然停了下来。 他心想&#xff1a;这个十字架实在是…

梦游4k

本来还打算晚上看案例分析的&#xff0c; 觉得是在太困了就上床眯会儿&#xff0c; 一睁眼&#xff0c;呀&#xff0c;怎么就快九点了呢。 可怜我一晚上的宝贵时间就这么被我浪费过去了。 从床上蠕动到椅子上&#xff0c;努力扒开眼睛看看BBS&#xff0c; 还是跑步好啊。 跑步好…

ajax里绑定框,Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)

需求类似这样 ↓ ↓ ↓--》 菜单A发生变化&#xff0c;动态取数据填充下拉菜单B。JS代码如下&#xff1a;$(function () {$("#TeamSelect").change(function () {var tid $("#TeamSelect option:selected").val();$.ajax({url: "/ajax/ajaxGetMa…

【转】CANOPEN总线的相关问题点整理分享*****

CANopen 是一个基于 CAN&#xff08;控制局域网&#xff09;串行总线系统和 CAL&#xff08;CAN 应用层&#xff09;的高层协议。CANopen 通讯协议 CiA DS-301 包括周期和事件驱动型通讯&#xff0c;不仅能够将总线负载减少到最低限度&#xff0c;而且还能确保极短的反应时间。…

WinCE系统字体的设置

作者&#xff1a;ARM-WinCE 确实很久没有写Blog了&#xff0c;感觉有些对不住曾经看我blog的朋友。刚从美国回来&#xff0c;由于项目原因&#xff0c;春节都在美国工作&#xff0c;现在有点时间&#xff0c;先写一篇简单的&#xff0c;介绍一下WinCE字体的设置。 WinCE系统字体…

js脚本点击按钮显示文字_JSBOX脚本聊天神器

聊天神器是一个基于JSBox的脚本JSBox 是一个可以用来运行 JavaScript 脚本的 iOS 应用&#xff0c;你可以通过他来执行标准的 JavaScript 脚本 这种执行不是指跑在浏览器上&#xff0c;而是执行在一个完全原生的环境&#xff0c;效率很高。并且我们提供了很多 iOS 原生的接口&a…

轻松实现无刷新三级联动菜单[VS2005与AjaxPro]

最近做一些网站程序&#xff0c;经常要用到多个下拉菜单选择&#xff0c;看了介绍开始用AjaxPro这个控件&#xff0c;感觉效果不错。以前使用过MagicAjax&#xff0c;很久不用了忘记了&#xff0c;最麻烦的就是在虚拟目录的时候比较麻烦&#xff0c;呵呵&#xff0c;在网上也有…

【转】为什么博士叫PhD?

作者&#xff1a;李青影 链接&#xff1a;https://www.zhihu.com/question/20950602/answer/1028008012 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 在填学历的时候遇到过这个问题&#xff0c;明明毕业证书上写…

dnf服务器合并信息,卤蛋带你看韩服!全体服务器合并改版信息互通

‍各位好久不见啊&#xff01;我是卤蛋 本期为各位介绍韩服合区后的全部改动~在韩服合并服务器之前 一共有八个服务器&#xff1a;但是在合区之后大区依然存在&#xff0c;不过服务器是互通的在哪个大区创建角色基本上没什么区别 这样做避免了角色混乱的问题如何切换频道呢&…

java 无法执行export 命令_模块中的export、import以及复合模式的使用方法

export&#xff1a;规定模块对外接口①默认导出&#xff1a;export default Test(导入时可指定模块任意名称&#xff0c;无需知晓内部真实名称)②单独导出&#xff1a;export const name "Bruce"③按需导出&#xff1a;export { age, name, sex }(推荐)④改名导出&a…

【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证

基于令牌的身份验证 基于令牌的身份验证主要区别于以前常用的基于cookie的身份验证&#xff0c;基于cookie的身份验证在B/S架构中使用比较多&#xff0c;但是在Web Api中因其特殊性&#xff0c;基于cookie的身份验证已经不适合了&#xff0c;因为并不是每一个调用api的客户端都…

number 限制最长数字_Java源码阅读-Number

抽象类Number是BigDecimal, BigInteger,Byte,Double,Float,Integer, Long, Short类的父类&#xff0c;实现了java.io.Serializable接口&#xff0c;这个接口以后再说。其中的抽象方法主要是基本数据类型的转换&#xff0c;这些方法都可能涉及到四舍五入和截断Integer类实现了父…

(JavaScript)实现在客户端动态改变Treeview节点的选中状态

Asp.net 2.0 中的 Treeview 非常好用&#xff0c;而且轻便。但在使用过程中&#xff0c;往往会发现一些不够人性化的地方。例如您要设计一棵树&#xff0c;里面放置了一些收藏的网址。在这棵树中&#xff0c;节点的 SelectAction 只有 Expand 和 NavigateUrl 状态&#xff0c;也…