亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ABP 初探 之 多語言

2019-11-17 02:10:53
字體:
來源:轉載
供稿:網友

ABP 初探 之 多語言

最近幾天空閑時間比較多,就研究Abp的多語言,Abp是基于接口的依賴注入,有很多思想與方法都很好,需自己深入體會與應用,轉化成自己的思想應用于實踐。

  本篇介紹基于 開源DemoModuleZeroSamplePRoject,多語言分為兩部分,基于后臺的CS代碼和前臺的JS。

  資源文件定義分為Web端和嵌入DLL層

  基于Dll層的資源文件需設置文件屬性為嵌入,否則發布后找不到資源文件。

  基于Web端的初始化方法

//Add/remove localization sources here            Configuration.Localization.Sources.Add(                new xmlLocalizationSource(                    ModuleZeroSampleProjectConsts.LocalizationSourceName,                    HttpContext.Current.Server.MapPath("~/Localization/ModuleZeroSampleProject")                    )                );

嵌入Dll的初始化方法 abp是命名空間,Localization.Sources.AbpXmlSource是文件路徑。

Configuration.Localization.Sources.Add(                new DictionaryBasedLocalizationSource(                    AbpConsts.LocalizationSourceName,                    new XmlEmbeddedFileLocalizationDictionaryProvider(                        Assembly.GetExecutingAssembly(), "Abp.Localization.Sources.AbpXmlSource"                        )));

  后臺CS 分為三部分,分別對應Controller、application、Core

  多語言的使用第一步是初始化,只能指定了資源文件名稱才能正常解析與使用,

Cotroller 初始化方法,創建Cotroller基類ModuleZeroSampleProjectControllerBase,在構造函數添加 資源路徑

public abstract class ModuleZeroSampleProjectControllerBase : AbpController    {        protected ModuleZeroSampleProjectControllerBase()        {            LocalizationSourceName = ModuleZeroSampleProjectConsts.LocalizationSourceName;        }    }
View Code

  Application、Core 初始化方法,創建Service基類,所有的方法都繼承該基類,資源文件屬性都要設置 嵌入

public class MarketApplicationServiceBase : ApplicationService    {        protected MarketApplicationServiceBase()        {            LocalizationSourceName = MarketCoreConsts.LocalizationSourceName;        }    }
View Code

前端JS部分初始化,一空要引用abp.js 在abp.js里定義了資源初始化的相關方法

 abp.localization = abp.localization || {};    abp.localization.localize = function (key, sourceName) {        sourceName = sourceName || abp.localization.defaultSourceName;        var source = abp.localization.values[sourceName];        if (!source) {            abp.log.warn('Could not find localization source: ' + sourceName);            return key;        }        var value = source[key];        if (value == undefined) {            return key;        }        var copiedArguments = Array.prototype.slice.call(arguments, 0);        copiedArguments.splice(1, 1);        copiedArguments[0] = value;        return abp.utils.formatString.apply(this, copiedArguments);    };    abp.localization.getSource = function (sourceName) {        return function (key) {            var copiedArguments = Array.prototype.slice.call(arguments, 0);            copiedArguments.splice(1, 0, sourceName);            return abp.localization.localize.apply(this, copiedArguments);        };    };    abp.localization.isCurrentCulture = function (name) {        return abp.localization.currentCulture            && abp.localization.currentCulture.name            && abp.localization.currentCulture.name.indexOf(name) == 0;    };    abp.localization.defaultSourceName = undefined;    abp.localization.abpWeb = abp.localization.getSource('AbpWeb');
View Code

通過如何方法可以讀取資源文件

<script>            $(function () {                var appLocalizationSource = abp.localization.getSource('Market');  //xml文件名                function localize() {                    return appLocalizationSource.apply(this, arguments);                };                alert(localize('Role_IsDefault')) // xml當中定義的字段            })        </script>

前端加載的資源文件都來源于JS 動態生成 <script src="~/AbpScripts/GetScripts?v=@(Abp.Timing.Clock.Now.Ticks)" type="text/javascript"></script>

引用上面的Js文件會生成如下 內容

Views 界面也可以通過如下方法顯示多語言,L 方法位于如下命名空間Abp.Web.Mvc.Views.AbpWebViewPage


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人国产精品久久久| 日本欧美一级片| 国产精品99久久99久久久二8| 一区二区三区久久精品| 久久99热这里只有精品国产| 精品久久久久久久中文字幕| 成人做爰www免费看视频网站| 国产精品一区=区| 中文字幕国产精品久久| 91sa在线看| 草民午夜欧美限制a级福利片| 欧美大成色www永久网站婷| 在线电影av不卡网址| 欧美在线观看日本一区| 国产精品永久免费在线| 国产精品一区二区三| 亚洲福利影片在线| 国产精品手机播放| 欧美亚洲国产精品| 精品人伦一区二区三区蜜桃免费| 欧美猛交免费看| 欧美性猛交xxxx久久久| 欧美日韩亚洲视频| 日韩风俗一区 二区| 国产精品久久久久久久久免费| 国产91精品高潮白浆喷水| 亚洲欧美中文日韩在线v日本| 欧美成人黑人xx视频免费观看| 亚洲福利在线观看| 亚洲精品v天堂中文字幕| 欧美xxxx18国产| 色悠悠久久88| 精品成人乱色一区二区| 国产91免费看片| 九九九热精品免费视频观看网站| 精品亚洲精品福利线在观看| 亚洲第一综合天堂另类专| 国产精品一区二区av影院萌芽| 久久久女人电视剧免费播放下载| 久久久电影免费观看完整版| 日韩理论片久久| 伊人男人综合视频网| 欧美日韩国产在线| 国产在线一区二区三区| 色与欲影视天天看综合网| 国产999精品久久久影片官网| 精品少妇v888av| 日韩一区二区精品视频| 成人福利视频在线观看| 91干在线观看| 国产精品入口夜色视频大尺度| 欧美老女人性视频| 亚洲自拍偷拍色片视频| 国产成人精品在线视频| 久久久久久久久久久久久久久久久久av| 一区二区欧美在线| 国产成人精品a视频一区www| 亚洲欧美在线免费| 国产精品美腿一区在线看| 亚洲乱码国产乱码精品精天堂| 日韩欧美亚洲成人| 欧美色欧美亚洲高清在线视频| 91情侣偷在线精品国产| 国产精品视频内| 亚洲精品99久久久久中文字幕| 国产日产欧美精品| 亚洲人线精品午夜| 国产日韩专区在线| 久久久久久中文| 午夜精品在线观看| 精品女同一区二区三区在线播放| 95av在线视频| 在线不卡国产精品| 国外成人在线视频| 51ⅴ精品国产91久久久久久| 久久久久久成人| 国产精品18久久久久久麻辣| 亚洲欧美日韩国产中文| 国产xxx69麻豆国语对白| 亚洲国产成人精品电影| 欧美精品在线观看| 亚洲激情免费观看| 日韩av在线免费| www.色综合| 亚洲国产精品小视频| 欧美成人免费大片| www.亚洲一区| 国产玖玖精品视频| 欧美性极品少妇精品网站| 亚洲大胆美女视频| 精品一区二区亚洲| 国产精品免费一区豆花| 欧美成人午夜激情在线| 欧美精品免费看| 欧美极品欧美精品欧美视频| 欧美午夜女人视频在线| 日韩av手机在线| 色在人av网站天堂精品| 久久精品91久久香蕉加勒比| 91情侣偷在线精品国产| 亚洲人成电影网站| 国产成人一区二区在线| 日韩中文字幕在线视频播放| 久久久国产成人精品| 韩剧1988在线观看免费完整版| 久久国产一区二区三区| 欧美极品xxxx| 91热精品视频| 国产免费亚洲高清| 欧美特级www| 北条麻妃99精品青青久久| 国产成人a亚洲精品| 国产在线高清精品| 欧洲亚洲在线视频| 在线观看亚洲区| 亚洲精品短视频| 久热精品视频在线| 亚洲国产免费av| 日韩av在线免费看| 日韩av在线最新| 日韩精品久久久久久福利| 在线播放国产一区二区三区| 亚洲欧美资源在线| 欧美亚州一区二区三区| 亚洲四色影视在线观看| 日韩欧美亚洲综合| 亚洲第一天堂无码专区| 日韩av在线免费看| 精品国产91久久久久久老师| 国产午夜精品一区理论片飘花| 成人xvideos免费视频| 69久久夜色精品国产69乱青草| 97色在线视频| 日韩电影大全免费观看2023年上| 日韩毛片在线看| 亚洲国产天堂网精品网站| 国产精品直播网红| 91在线观看免费高清完整版在线观看| 亚洲免费av网址| 日本乱人伦a精品| 国产成人啪精品视频免费网| 亚洲欧美国产一区二区三区| 欧美成人免费在线视频| 亚洲国产91精品在线观看| 欧美福利视频在线观看| 亚洲一级黄色av| 国产精品视频一区二区高潮| 欧美日韩亚洲精品一区二区三区| 亚洲国产欧美一区二区丝袜黑人| 青青草99啪国产免费| 欧美精品18videos性欧| 国产在线精品一区免费香蕉| 亚洲精选中文字幕| 国产精品一区二区电影| 欧美亚洲国产另类| 日韩精品www| 欧美国产欧美亚洲国产日韩mv天天看完整| 黄网站色欧美视频| 亚洲精品国产电影| www.美女亚洲精品| 亚洲精品国产精品久久清纯直播| 久久天天躁狠狠躁老女人| 欧美福利视频网站| 美女久久久久久久久久久|