From 6ee11b582a6b27c91f6bf43dfd30e1a8d6e69ae5 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 17 Jan 2019 09:29:40 +0300 Subject: [PATCH] resolved #688 Use IAbpTagHelperLocalizer in Abp Pagination Tag Helper --- .../TagHelpers/AbpTagHelperLocalizer.cs | 28 +++++++++++-------- .../TagHelpers/IAbpTagHelperLocalizer.cs | 5 +++- .../AbpPaginationTagHelperService.cs | 14 ++++++---- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs index 395edb19c4..9f047c5b3c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs @@ -21,32 +21,38 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers public string GetLocalizedText(string text, ModelExplorer explorer) { - var localizer = GetStringLocalizer(explorer.Container.ModelType.Assembly); + var resourceType = GetResourceTypeFromModelExplorer(explorer); + var localizer = GetStringLocalizer(resourceType); return localizer == null ? text : localizer[text].Value; } public IStringLocalizer GetLocalizer(ModelExplorer explorer) { - return GetStringLocalizer(explorer.Container.ModelType.Assembly); + var resourceType = GetResourceTypeFromModelExplorer(explorer); + return GetStringLocalizer(resourceType); } public IStringLocalizer GetLocalizer(Assembly assembly) { - return GetStringLocalizer(assembly); + var resourceType = _options.AssemblyResources.GetOrDefault(assembly); + return GetStringLocalizer(resourceType); } - private IStringLocalizer GetStringLocalizer(Assembly assembly) + public IStringLocalizer GetLocalizer(Type resourceType) { - IStringLocalizer localizer = null; - var resourceType = _options.AssemblyResources.GetOrDefault(assembly); + return GetStringLocalizer(resourceType); + } - if (resourceType != null) - { - localizer = _stringLocalizerFactory.Create(resourceType); - } + private IStringLocalizer GetStringLocalizer(Type resourceType) + { + return resourceType == null ? null : _stringLocalizerFactory.Create(resourceType); + } - return localizer; + private Type GetResourceTypeFromModelExplorer(ModelExplorer explorer) + { + var assembly = explorer.Container.ModelType.Assembly; + return _options.AssemblyResources.GetOrDefault(assembly); } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/IAbpTagHelperLocalizer.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/IAbpTagHelperLocalizer.cs index 68b7b3529e..8351e47082 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/IAbpTagHelperLocalizer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/IAbpTagHelperLocalizer.cs @@ -1,4 +1,5 @@ -using System.Reflection; +using System; +using System.Reflection; using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.Extensions.Localization; using Volo.Abp.DependencyInjection; @@ -12,5 +13,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers IStringLocalizer GetLocalizer(ModelExplorer explorer); IStringLocalizer GetLocalizer(Assembly assembly); + + IStringLocalizer GetLocalizer(Type resourceType); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs index 629cad0b66..e3293cddca 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs @@ -13,13 +13,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination { private readonly IHtmlGenerator _generator; private readonly HtmlEncoder _encoder; - private readonly IStringLocalizer _localizer; + private readonly IAbpTagHelperLocalizer _tagHelperLocalizer; - public AbpPaginationTagHelperService(IHtmlGenerator generator, HtmlEncoder encoder, IStringLocalizer localizer) + public AbpPaginationTagHelperService(IHtmlGenerator generator, HtmlEncoder encoder, IAbpTagHelperLocalizer tagHelperLocalizer) { _generator = generator; _encoder = encoder; - _localizer = localizer; + _tagHelperLocalizer = tagHelperLocalizer; } public override void Process(TagHelperContext context, TagHelperOutput output) @@ -117,11 +117,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination protected virtual string RenderAnchorTagHelperLinkHtml(TagHelperContext context, TagHelperOutput output, string currentPage, string localizationKey) { + var localizer = _tagHelperLocalizer.GetLocalizer(typeof(AbpUiResource)); + var anchorTagHelper = GetAnchorTagHelper(currentPage, out var attributeList); var tagHelperOutput = GetInnerTagHelper(attributeList, context, anchorTagHelper, "a", TagMode.StartTagAndEndTag); - tagHelperOutput.Content.SetHtmlContent(_localizer[localizationKey]); + tagHelperOutput.Content.SetHtmlContent(localizer[localizationKey]); var renderedHtml = RenderTagHelperOutput(tagHelperOutput, _encoder); @@ -150,8 +152,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination protected virtual string GetOpeningTags(TagHelperContext context, TagHelperOutput output) { + var localizer = _tagHelperLocalizer.GetLocalizer(typeof(AbpUiResource)); + var pagerInfo = (TagHelper.ShowInfo ?? false) ? - "
" + _localizer["PagerInfo", TagHelper.Model.ShowingFrom, TagHelper.Model.ShowingTo, TagHelper.Model.TotalItemsCount] + "
\r\n" + "
" + localizer["PagerInfo", TagHelper.Model.ShowingFrom, TagHelper.Model.ShowingTo, TagHelper.Model.TotalItemsCount] + "
\r\n" : ""; return