日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/10 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】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源碼分析系列文章目錄

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【转】ABP源码分析四十三:ZERO的本地化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。