Browse Source

Merge pull request #2502 from abpframework/maliming/WithCulture

Removed obsolete WithCulture method.
pull/2521/head
Halil İbrahim Kalkan 7 years ago
committed by GitHub
parent
commit
76d742683a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs
  2. 8
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/EmailTemplateProvider.cs
  3. 32
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs
  4. 4
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs
  5. 2
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Validation/ValidationTestController_Tests.cs
  6. 6
      framework/test/Volo.Abp.Core.Tests/System/StringExtensions_Tests.cs
  7. 69
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpLocalization_Tests.cs
  8. 4
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TemplateLocalizer_Tests.cs

2
framework/src/Volo.Abp.Core/Volo/Abp/Localization/AbpCultureHelper.cs → framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs

@ -4,7 +4,7 @@ using JetBrains.Annotations;
namespace Volo.Abp.Localization
{
public static class AbpCultureHelper
public static class CultureHelper
{
public static IDisposable Use([NotNull] string culture, string uiCulture = null)
{

8
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/EmailTemplateProvider.cs

@ -103,10 +103,10 @@ namespace Volo.Abp.Emailing.Templates
var localizer = StringLocalizerFactory.Create(emailTemplateDefinition.LocalizationResource);
if (cultureName != null)
{
emailTemplate.SetContent(
TemplateLocalizer.Localize(localizer.WithCulture(new CultureInfo(cultureName)),
emailTemplate.Content)
);
using (CultureHelper.Use(new CultureInfo(cultureName)))
{
emailTemplate.SetContent(TemplateLocalizer.Localize(localizer, emailTemplate.Content));
}
}
else
{

32
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs

@ -41,6 +41,7 @@ namespace Volo.Abp.Localization
);
}
[Obsolete("This method is obsolete. Use `CurrentCulture` and `CurrentUICulture` instead.")]
public IStringLocalizer WithCulture(CultureInfo culture)
{
return new CultureWrapperStringLocalizer(culture.Name, this);
@ -70,10 +71,13 @@ namespace Volo.Abp.Localization
{
foreach (var baseLocalizer in BaseLocalizers)
{
var baseLocalizedString = baseLocalizer.WithCulture(CultureInfo.GetCultureInfo(cultureName))[name];
if (baseLocalizedString != null && !baseLocalizedString.ResourceNotFound)
using (CultureHelper.Use(CultureInfo.GetCultureInfo(cultureName)))
{
return baseLocalizedString;
var baseLocalizedString = baseLocalizer[name];
if (baseLocalizedString != null && !baseLocalizedString.ResourceNotFound)
{
return baseLocalizedString;
}
}
}
@ -132,20 +136,23 @@ namespace Volo.Abp.Localization
if (includeBaseLocalizers)
{
foreach (var baseLocalizer in BaseLocalizers.Select(l => l.WithCulture(CultureInfo.GetCultureInfo(cultureName))))
foreach (var baseLocalizer in BaseLocalizers.Select(l => l))
{
//TODO: Try/catch is a workaround here!
try
using (CultureHelper.Use(CultureInfo.GetCultureInfo(cultureName)))
{
var baseLocalizedString = baseLocalizer.GetAllStrings(includeParentCultures);
foreach (var localizedString in baseLocalizedString)
//TODO: Try/catch is a workaround here!
try
{
allStrings[localizedString.Name] = localizedString;
var baseLocalizedString = baseLocalizer.GetAllStrings(includeParentCultures);
foreach (var localizedString in baseLocalizedString)
{
allStrings[localizedString.Name] = localizedString;
}
}
}
catch (MissingManifestResourceException)
{
catch (MissingManifestResourceException)
{
}
}
}
}
@ -198,6 +205,7 @@ namespace Volo.Abp.Localization
return _innerLocalizer.GetAllStrings(_cultureName, includeParentCultures);
}
[Obsolete("This method is obsolete. Use `CurrentCulture` and `CurrentUICulture` instead.")]
public IStringLocalizer WithCulture(CultureInfo culture)
{
return new CultureWrapperStringLocalizer(culture.Name, _innerLocalizer);

4
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs

@ -34,13 +34,13 @@ namespace Volo.Abp.AspNetCore.Mvc.Localization
[Fact]
public async Task Should_Localize_Display_Attribute()
{
using (AbpCultureHelper.Use("en"))
using (CultureHelper.Use("en"))
{
var result = await GetResponseAsStringAsync("/LocalizationTest/PersonForm").ConfigureAwait(false);
result.ShouldContain("<label for=\"BirthDate\">Birth date</label>");
}
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
var result = await GetResponseAsStringAsync("/LocalizationTest/PersonForm").ConfigureAwait(false);
result.ShouldContain("<label for=\"BirthDate\">Dogum gunu</label>");

2
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Validation/ValidationTestController_Tests.cs

@ -26,7 +26,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Validation
[Fact]
public async Task Should_Return_Localized_Validation_Errors()
{
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
var result = await GetResponseAsObjectAsync<RemoteServiceErrorResponse>("/api/validation-test/object-result-action?value1=a", HttpStatusCode.BadRequest).ConfigureAwait(false); //value1 has min length of 2 chars.
result.Error.ValidationErrors.Length.ShouldBeGreaterThan(0);

6
framework/test/Volo.Abp.Core.Tests/System/StringExtensions_Tests.cs

@ -11,7 +11,7 @@ namespace System
public StringExtensions_Tests()
{
_cultureScope = AbpCultureHelper.Use("en-US");
_cultureScope = CultureHelper.Use("en-US");
}
[Fact]
@ -31,7 +31,7 @@ namespace System
[Fact]
public void EnsureEndsWith_CultureSpecific_Test()
{
using (AbpCultureHelper.Use("tr-TR"))
using (CultureHelper.Use("tr-TR"))
{
"Kırmızı".EnsureEndsWith('I', StringComparison.CurrentCultureIgnoreCase).ShouldBe("Kırmızı");
}
@ -59,7 +59,7 @@ namespace System
[Fact]
public void ToPascalCase_CurrentCulture_Test()
{
using (AbpCultureHelper.Use("tr-TR"))
using (CultureHelper.Use("tr-TR"))
{
"istanbul".ToPascalCase(true).ShouldBe("İstanbul");
}

69
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpLocalization_Tests.cs

@ -50,24 +50,24 @@ namespace Volo.Abp.Localization
[Fact]
public void Should_Get_Localized_Text_If_Defined_In_Current_Culture()
{
using (AbpCultureHelper.Use("en"))
using (CultureHelper.Use("en"))
{
_localizer["Car"].Value.ShouldBe("Car");
_localizer["CarPlural"].Value.ShouldBe("Cars");
}
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
_localizer["Car"].Value.ShouldBe("Araba");
_localizer["CarPlural"].Value.ShouldBe("Araba");
}
using (AbpCultureHelper.Use("it"))
using (CultureHelper.Use("it"))
{
_localizer["Car"].Value.ShouldBe("Auto");
}
using (AbpCultureHelper.Use("es"))
using (CultureHelper.Use("es"))
{
_localizer["Car"].Value.ShouldBe("Auto");
}
@ -77,22 +77,22 @@ namespace Volo.Abp.Localization
[Fact]
public void Should_Get_Extension_Texts()
{
using (AbpCultureHelper.Use("en"))
using (CultureHelper.Use("en"))
{
_localizer["SeeYou"].Value.ShouldBe("See you");
}
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
_localizer["SeeYou"].Value.ShouldBe("See you"); //Not defined in tr, getting from default lang
}
using (AbpCultureHelper.Use("it"))
using (CultureHelper.Use("it"))
{
_localizer["SeeYou"].Value.ShouldBe("Ci vediamo");
}
using (AbpCultureHelper.Use("es"))
using (CultureHelper.Use("es"))
{
_localizer["SeeYou"].Value.ShouldBe("Nos vemos");
}
@ -102,7 +102,7 @@ namespace Volo.Abp.Localization
[Fact]
public void Should_Get_From_Inherited_Texts()
{
using (AbpCultureHelper.Use("en"))
using (CultureHelper.Use("en"))
{
_localizer["USA"].Value.ShouldBe("United States of America"); //Inherited from CountryNames/en.json
_localizer["ThisFieldIsRequired"].Value.ShouldBe("This field is required"); //Inherited from Validation/en.json
@ -110,12 +110,12 @@ namespace Volo.Abp.Localization
_localizer.GetAllStrings().ShouldContain(ls => ls.Name == "USA");
}
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
_localizer["USA"].Value.ShouldBe("Amerika Birleşik Devletleri"); //Inherited from CountryNames/tr.json
}
using (AbpCultureHelper.Use("es"))
using (CultureHelper.Use("es"))
{
_localizer["USA"].Value.ShouldBe("Estados unidos de América"); //Inherited from CountryNames/es.json
_localizer["ThisFieldIsRequired"].Value.ShouldBe("El campo no puede estar vacío"); //Inherited from Validation/es.json
@ -128,12 +128,12 @@ namespace Volo.Abp.Localization
[Fact]
public void Should_Override_Inherited_Text()
{
using (AbpCultureHelper.Use("en"))
using (CultureHelper.Use("en"))
{
_localizer["MaxLenghtErrorMessage", 42].Value.ShouldBe("This field's length can be maximum of '42' chars"); //Overriden in Source/en.json
}
using (AbpCultureHelper.Use("es"))
using (CultureHelper.Use("es"))
{
_localizer["MaxLenghtErrorMessage", 42].Value.ShouldBe("El campo puede tener un máximo de '42' caracteres"); //Overriden in Source/es.json
}
@ -144,21 +144,38 @@ namespace Volo.Abp.Localization
[Fact]
public void Should_Get_Localized_Text_If_Defined_In_Requested_Culture()
{
_localizer.WithCulture(CultureInfo.GetCultureInfo("en"))["Car"].Value.ShouldBe("Car");
_localizer.WithCulture(CultureInfo.GetCultureInfo("en"))["CarPlural"].Value.ShouldBe("Cars");
_localizer.WithCulture(CultureInfo.GetCultureInfo("tr"))["Car"].Value.ShouldBe("Araba");
_localizer.WithCulture(CultureInfo.GetCultureInfo("tr"))["CarPlural"].Value.ShouldBe("Araba");
using (CultureHelper.Use(CultureInfo.GetCultureInfo("en")))
{
_localizer["Car"].Value.ShouldBe("Car");
}
using (CultureHelper.Use(CultureInfo.GetCultureInfo("en")))
{
_localizer["CarPlural"].Value.ShouldBe("Cars");
}
_localizer.WithCulture(CultureInfo.GetCultureInfo("es"))["Car"].Value.ShouldBe("Auto");
_localizer.WithCulture(CultureInfo.GetCultureInfo("es"))["CarPlural"].Value.ShouldBe("Autos");
using (CultureHelper.Use(CultureInfo.GetCultureInfo("tr")))
{
_localizer["Car"].Value.ShouldBe("Araba");
}
using (CultureHelper.Use(CultureInfo.GetCultureInfo("tr")))
{
_localizer["CarPlural"].Value.ShouldBe("Araba");
}
using (CultureHelper.Use(CultureInfo.GetCultureInfo("es")))
{
_localizer["Car"].Value.ShouldBe("Auto");
}
using (CultureHelper.Use(CultureInfo.GetCultureInfo("es")))
{
_localizer["CarPlural"].Value.ShouldBe("Autos");
}
}
[Fact]
public void GetAllStrings_With_Parents()
{
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
var localizedStrings = _localizer.GetAllStrings(true).ToList();
@ -175,7 +192,7 @@ namespace Volo.Abp.Localization
);
}
using (AbpCultureHelper.Use("es"))
using (CultureHelper.Use("es"))
{
var localizedStrings = _localizer.GetAllStrings(true).ToList();
@ -197,7 +214,7 @@ namespace Volo.Abp.Localization
[Fact]
public void GetAllStrings_Without_Parents()
{
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
var localizedStrings = _localizer.GetAllStrings(false).ToList();
@ -212,7 +229,7 @@ namespace Volo.Abp.Localization
);
}
using (AbpCultureHelper.Use("es"))
using (CultureHelper.Use("es"))
{
var localizedStrings = _localizer.GetAllStrings(false).ToList();
@ -232,7 +249,7 @@ namespace Volo.Abp.Localization
[Fact]
public void GetAllStrings_With_Inheritance()
{
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
var localizedStrings = _localizer
.GetAllStrings(true, includeBaseLocalizers: true)
@ -261,7 +278,7 @@ namespace Volo.Abp.Localization
[Fact]
public void GetAllStrings_Without_Inheritance()
{
using (AbpCultureHelper.Use("tr"))
using (CultureHelper.Use("tr"))
{
var localizedStrings = _localizer
.GetAllStrings(true, includeBaseLocalizers: false)

4
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TemplateLocalizer_Tests.cs

@ -22,7 +22,7 @@ namespace Volo.Abp.Localization
[Fact]
public void Should_Localize()
{
using (AbpCultureHelper.Use("en"))
using (CultureHelper.Use("en"))
{
_templateLocalizer.Localize(_testResource, "<p>{{#L:CarPlural}} <b>{{#L:Universe}}</b></p>")
.ShouldBe("<p>Cars <b>Universe</b></p>");
@ -32,7 +32,7 @@ namespace Volo.Abp.Localization
[Fact]
public void Should_Work_Even_If_No_Text_To_Localize()
{
using (AbpCultureHelper.Use("en"))
using (CultureHelper.Use("en"))
{
_templateLocalizer.Localize(_testResource, "<p>test</p>")
.ShouldBe("<p>test</p>");

Loading…
Cancel
Save