Browse Source

resolved #688 Use IAbpTagHelperLocalizer in Abp Pagination Tag Helper

pull/798/head
Yunus Emre Kalkan 8 years ago
parent
commit
6ee11b582a
  1. 28
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs
  2. 5
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/IAbpTagHelperLocalizer.cs
  3. 14
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs

28
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) 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; return localizer == null ? text : localizer[text].Value;
} }
public IStringLocalizer GetLocalizer(ModelExplorer explorer) public IStringLocalizer GetLocalizer(ModelExplorer explorer)
{ {
return GetStringLocalizer(explorer.Container.ModelType.Assembly); var resourceType = GetResourceTypeFromModelExplorer(explorer);
return GetStringLocalizer(resourceType);
} }
public IStringLocalizer GetLocalizer(Assembly assembly) 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; return GetStringLocalizer(resourceType);
var resourceType = _options.AssemblyResources.GetOrDefault(assembly); }
if (resourceType != null) private IStringLocalizer GetStringLocalizer(Type resourceType)
{ {
localizer = _stringLocalizerFactory.Create(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);
} }
} }
} }

5
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.AspNetCore.Mvc.ViewFeatures;
using Microsoft.Extensions.Localization; using Microsoft.Extensions.Localization;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
@ -12,5 +13,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers
IStringLocalizer GetLocalizer(ModelExplorer explorer); IStringLocalizer GetLocalizer(ModelExplorer explorer);
IStringLocalizer GetLocalizer(Assembly assembly); IStringLocalizer GetLocalizer(Assembly assembly);
IStringLocalizer GetLocalizer(Type resourceType);
} }
} }

14
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 IHtmlGenerator _generator;
private readonly HtmlEncoder _encoder; private readonly HtmlEncoder _encoder;
private readonly IStringLocalizer<AbpUiResource> _localizer; private readonly IAbpTagHelperLocalizer _tagHelperLocalizer;
public AbpPaginationTagHelperService(IHtmlGenerator generator, HtmlEncoder encoder, IStringLocalizer<AbpUiResource> localizer) public AbpPaginationTagHelperService(IHtmlGenerator generator, HtmlEncoder encoder, IAbpTagHelperLocalizer tagHelperLocalizer)
{ {
_generator = generator; _generator = generator;
_encoder = encoder; _encoder = encoder;
_localizer = localizer; _tagHelperLocalizer = tagHelperLocalizer;
} }
public override void Process(TagHelperContext context, TagHelperOutput output) 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) 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 anchorTagHelper = GetAnchorTagHelper(currentPage, out var attributeList);
var tagHelperOutput = GetInnerTagHelper(attributeList, context, anchorTagHelper, "a", TagMode.StartTagAndEndTag); var tagHelperOutput = GetInnerTagHelper(attributeList, context, anchorTagHelper, "a", TagMode.StartTagAndEndTag);
tagHelperOutput.Content.SetHtmlContent(_localizer[localizationKey]); tagHelperOutput.Content.SetHtmlContent(localizer[localizationKey]);
var renderedHtml = RenderTagHelperOutput(tagHelperOutput, _encoder); 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) protected virtual string GetOpeningTags(TagHelperContext context, TagHelperOutput output)
{ {
var localizer = _tagHelperLocalizer.GetLocalizer(typeof(AbpUiResource));
var pagerInfo = (TagHelper.ShowInfo ?? false) ? var pagerInfo = (TagHelper.ShowInfo ?? false) ?
" <div class=\"col-sm-12 col-md-5\"> " + _localizer["PagerInfo", TagHelper.Model.ShowingFrom, TagHelper.Model.ShowingTo, TagHelper.Model.TotalItemsCount] + "</div>\r\n" " <div class=\"col-sm-12 col-md-5\"> " + localizer["PagerInfo", TagHelper.Model.ShowingFrom, TagHelper.Model.ShowingTo, TagHelper.Model.TotalItemsCount] + "</div>\r\n"
: ""; : "";
return return

Loading…
Cancel
Save