提交 ab4a6004 编写于 作者: M Manish Vasani

Merge pull request #1889 from mavasani/Issue_1006

Localization fix for DiagnosticLocalizationTests.TestDiagnosticLocalization: Use the CurrentUICulture as the default culture, not "en-US" culture.

Fixes #1006 
...@@ -18,18 +18,17 @@ public partial class DiagnosticLocalizationTests ...@@ -18,18 +18,17 @@ public partial class DiagnosticLocalizationTests
public void TestDiagnosticLocalization() public void TestDiagnosticLocalization()
{ {
var resourceManager = GetTestResourceManagerInstance(); var resourceManager = GetTestResourceManagerInstance();
var enCulture = CultureInfo.CreateSpecificCulture("en-US");
var arCulture = CultureInfo.CreateSpecificCulture("ar-SA"); var arCulture = CultureInfo.CreateSpecificCulture("ar-SA");
var enResourceSet = resourceManager.GetResourceSet(enCulture, false, false); var defaultCultureResourceSet = resourceManager.GetResourceSet(CustomResourceManager.DefaultCulture, false, false);
var arResourceSet = resourceManager.GetResourceSet(arCulture, false, false); var arResourceSet = resourceManager.GetResourceSet(arCulture, false, false);
var nameOfResource1 = @"Resource1"; var nameOfResource1 = @"Resource1";
var nameOfResource2 = @"Resource2"; var nameOfResource2 = @"Resource2";
var nameOfResource3 = @"Resource3"; var nameOfResource3 = @"Resource3";
var fixedTitle = enResourceSet.GetString(nameOfResource1); var fixedTitle = defaultCultureResourceSet.GetString(nameOfResource1);
var fixedMessageFormat = enResourceSet.GetString(nameOfResource2); var fixedMessageFormat = defaultCultureResourceSet.GetString(nameOfResource2);
var fixedDescription = enResourceSet.GetString(nameOfResource3); var fixedDescription = defaultCultureResourceSet.GetString(nameOfResource3);
var localizedTitle = arResourceSet.GetString(nameOfResource1); var localizedTitle = arResourceSet.GetString(nameOfResource1);
var localizedMessageFormat = arResourceSet.GetString(nameOfResource2); var localizedMessageFormat = arResourceSet.GetString(nameOfResource2);
...@@ -72,9 +71,9 @@ public void TestDiagnosticLocalization() ...@@ -72,9 +71,9 @@ public void TestDiagnosticLocalization()
Assert.Equal<string>(fixedDescription, descriptor.Description.ToString()); Assert.Equal<string>(fixedDescription, descriptor.Description.ToString());
} }
Assert.Equal<string>(fixedTitle, descriptor.Title.ToString(enCulture)); Assert.Equal<string>(fixedTitle, descriptor.Title.ToString(CustomResourceManager.DefaultCulture));
Assert.Equal<string>(fixedMessageFormat, descriptor.MessageFormat.ToString(enCulture)); Assert.Equal<string>(fixedMessageFormat, descriptor.MessageFormat.ToString(CustomResourceManager.DefaultCulture));
Assert.Equal<string>(fixedDescription, descriptor.Description.ToString(enCulture)); Assert.Equal<string>(fixedDescription, descriptor.Description.ToString(CustomResourceManager.DefaultCulture));
Assert.Equal(localizedTitle, descriptor.Title.ToString(arCulture)); Assert.Equal(localizedTitle, descriptor.Title.ToString(arCulture));
Assert.Equal(localizedMessageFormat, descriptor.MessageFormat.ToString(arCulture)); Assert.Equal(localizedMessageFormat, descriptor.MessageFormat.ToString(arCulture));
...@@ -91,9 +90,9 @@ public void TestDiagnosticLocalization() ...@@ -91,9 +90,9 @@ public void TestDiagnosticLocalization()
Assert.Equal(fixedDescription, localizableDiagnostic.Descriptor.Description.ToString()); Assert.Equal(fixedDescription, localizableDiagnostic.Descriptor.Description.ToString());
} }
Assert.Equal(fixedTitle, localizableDiagnostic.Descriptor.Title.ToString(enCulture)); Assert.Equal(fixedTitle, localizableDiagnostic.Descriptor.Title.ToString(CustomResourceManager.DefaultCulture));
Assert.Equal(fixedMessageFormat, localizableDiagnostic.GetMessage(enCulture)); Assert.Equal(fixedMessageFormat, localizableDiagnostic.GetMessage(CustomResourceManager.DefaultCulture));
Assert.Equal(fixedDescription, localizableDiagnostic.Descriptor.Description.ToString(enCulture)); Assert.Equal(fixedDescription, localizableDiagnostic.Descriptor.Description.ToString(CustomResourceManager.DefaultCulture));
// Test localized title, description and message. // Test localized title, description and message.
Assert.Equal(localizedTitle, localizableDiagnostic.Descriptor.Title.ToString(arCulture)); Assert.Equal(localizedTitle, localizableDiagnostic.Descriptor.Title.ToString(arCulture));
...@@ -106,15 +105,15 @@ public void TestDiagnosticLocalization() ...@@ -106,15 +105,15 @@ public void TestDiagnosticLocalization()
var localizableResource = new LocalizableResourceString(nameOfResourceWithArguments, resourceManager, typeof(CustomResourceManager), argument); var localizableResource = new LocalizableResourceString(nameOfResourceWithArguments, resourceManager, typeof(CustomResourceManager), argument);
// Verify without culture // Verify without culture
var enuLocalizedStringWithArguments = enResourceSet.GetString(nameOfResourceWithArguments); var defaultCultureLocalizedStringWithArguments = defaultCultureResourceSet.GetString(nameOfResourceWithArguments);
var expected = string.Format(enuLocalizedStringWithArguments, argument); var expected = string.Format(defaultCultureLocalizedStringWithArguments, argument);
if (EnsureEnglishUICulture.PreferredOrNull == null) if (EnsureEnglishUICulture.PreferredOrNull == null)
{ {
Assert.Equal(expected, localizableResource.ToString()); Assert.Equal(expected, localizableResource.ToString());
} }
Assert.Equal(expected, localizableResource.ToString(enCulture)); Assert.Equal(expected, localizableResource.ToString(CustomResourceManager.DefaultCulture));
// Verify with loc culture // Verify with loc culture
var arLocalizedStringWithArguments = arResourceSet.GetString(nameOfResourceWithArguments); var arLocalizedStringWithArguments = arResourceSet.GetString(nameOfResourceWithArguments);
...@@ -124,12 +123,12 @@ public void TestDiagnosticLocalization() ...@@ -124,12 +123,12 @@ public void TestDiagnosticLocalization()
private static CustomResourceManager GetTestResourceManagerInstance() private static CustomResourceManager GetTestResourceManagerInstance()
{ {
var enResources = new Dictionary<string, string>() var defaultCultureResources = new Dictionary<string, string>()
{ {
{ "Resource1", "My Resource 1 ENU string" }, { "Resource1", "My Resource 1 DefaultCulture string" },
{ "Resource2", "My Resource 2 ENU string" }, { "Resource2", "My Resource 2 DefaultCulture string" },
{ "Resource3", "My Resource 3 ENU string" }, { "Resource3", "My Resource 3 DefaultCulture string" },
{ "ResourceWithArguments", "My Resource ENU string {0}" } { "ResourceWithArguments", "My Resource DefaultCulture string {0}" }
}; };
var arResources = new Dictionary<string, string>() var arResources = new Dictionary<string, string>()
...@@ -142,7 +141,7 @@ private static CustomResourceManager GetTestResourceManagerInstance() ...@@ -142,7 +141,7 @@ private static CustomResourceManager GetTestResourceManagerInstance()
var resourceSetMap = new Dictionary<string, Dictionary<string, string>>() var resourceSetMap = new Dictionary<string, Dictionary<string, string>>()
{ {
{ "en-US", enResources }, { CustomResourceManager.DefaultCulture.Name, defaultCultureResources },
{ "ar-SA", arResources } { "ar-SA", arResources }
}; };
...@@ -152,7 +151,6 @@ private static CustomResourceManager GetTestResourceManagerInstance() ...@@ -152,7 +151,6 @@ private static CustomResourceManager GetTestResourceManagerInstance()
private class CustomResourceManager : ResourceManager private class CustomResourceManager : ResourceManager
{ {
private readonly Dictionary<string, CustomResourceSet> _resourceSetMap; private readonly Dictionary<string, CustomResourceSet> _resourceSetMap;
internal static readonly CustomResourceManager TestInstance = GetTestResourceManagerInstance();
public CustomResourceManager(Dictionary<string, CustomResourceSet> resourceSetMap) public CustomResourceManager(Dictionary<string, CustomResourceSet> resourceSetMap)
{ {
...@@ -170,6 +168,8 @@ public CustomResourceManager(Dictionary<string, Dictionary<string, string>> reso ...@@ -170,6 +168,8 @@ public CustomResourceManager(Dictionary<string, Dictionary<string, string>> reso
} }
} }
public static CultureInfo DefaultCulture => CultureInfo.CurrentUICulture;
public void VerifyResourceValue(string resourceName, string cultureName, string expectedResourceValue) public void VerifyResourceValue(string resourceName, string cultureName, string expectedResourceValue)
{ {
var actual = this.GetString(resourceName, CultureInfo.CreateSpecificCulture(cultureName)); var actual = this.GetString(resourceName, CultureInfo.CreateSpecificCulture(cultureName));
...@@ -295,10 +295,6 @@ private static void TestDescriptorIsExceptionSafeCore(DiagnosticDescriptor descr ...@@ -295,10 +295,6 @@ private static void TestDescriptorIsExceptionSafeCore(DiagnosticDescriptor descr
private static DiagnosticDescriptor GetDescriptorWithLocalizableResourceStringsThatThrow() private static DiagnosticDescriptor GetDescriptorWithLocalizableResourceStringsThatThrow()
{ {
var resourceManager = GetTestResourceManagerInstance(); var resourceManager = GetTestResourceManagerInstance();
var enCulture = CultureInfo.CreateSpecificCulture("en-US");
var arCulture = CultureInfo.CreateSpecificCulture("ar-SA");
var enResourceSet = resourceManager.GetResourceSet(enCulture, false, false);
var arResourceSet = resourceManager.GetResourceSet(arCulture, false, false);
// Test localizable title that throws. // Test localizable title that throws.
var localizableTitle = new LocalizableResourceString("NonExistentTitleResourceName", resourceManager, typeof(CustomResourceManager)); var localizableTitle = new LocalizableResourceString("NonExistentTitleResourceName", resourceManager, typeof(CustomResourceManager));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册