麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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在线免费看网站 | 亚洲一区 国产 | 99亚洲伊人久久精品影院红桃 | 一级黄色在线观看 | 少妇淫片免费一级毛片 | 欧美伦交| 黑色丝袜美美女被躁视频 | 精品成人久久久 | 少妇一级淫片免费放播放 | av成人免费在线观看 | 一级免费黄色免费片 | 免费视频a | 在线影院av | 羞羞视频免费视频欧美 | 91成人一区二区三区 | 色域tv | 日本一区二区久久久 | 中文字幕国 | 毛片免费视频在线观看 | 欧美视频99 | 国产成人精品一区二区仙踪林 | 日本一道aⅴ不卡免费播放 视屏一区 | 久久久久久久久久91 | 午夜视频你懂的 |