public void HtmlLocalizerDoesNotFormatTwiceIfFormattedTranslationContainsCurlyBraces() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("The page (ID:{0}) was deleted.", "Stránka (ID:{0}) byla smazána.") }); var localizer = new PortableObjectStringLocalizer("small", _localizationManager.Object, true, _logger.Object); CultureInfo.CurrentUICulture = new CultureInfo("cs"); var htmlLocalizer = new PortableObjectHtmlLocalizer(localizer); var unformatted = htmlLocalizer["The page (ID:{0}) was deleted.", "{1}"]; var memStream = new MemoryStream(); var textWriter = new StreamWriter(memStream); var textReader = new StreamReader(memStream); unformatted.WriteTo(textWriter, HtmlEncoder.Default); textWriter.Flush(); memStream.Seek(0, SeekOrigin.Begin); var formatted = textReader.ReadToEnd(); textWriter.Dispose(); textReader.Dispose(); memStream.Dispose(); Assert.Equal("Stránka (ID:{1}) byla smazána.", formatted); }
public void LocalizerReturnsOriginalValuesIfTranslationDoesntExistAndMultiplePluraflFormsAreSpecified(string expected, int count) { SetupDictionary("en", new CultureDictionaryRecord[] { }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("en"), null, _localizationManager.Object, _logger.Object); var translation = localizer.Plural(count, new[] { "míč", "{0} míče", "{0} míčů" }, count); Assert.Equal(expected, translation); }
public void LocalizerReturnsOriginalTextIfDictionaryIsEmpty() { SetupDictionary("cs", new CultureDictionaryRecord[] { }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs"), null, _localizationManager.Object, _logger.Object); var translation = localizer["car"]; Assert.Equal("car", translation); }
public void LocalizerReturnsTranslationInCorrectPluralForm(string expected, int count) { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", null, new[] { "míč", "{0} míče", "{0} míčů" }), }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs"), null, _localizationManager.Object, _logger.Object); var translation = localizer.Plural(count, "ball", "{0} balls", count); Assert.Equal(expected, translation); }
public void LocalizerReturnsCorrectPluralFormIfMultiplePluraflFormsAreSpecified(string expected, int count) { SetupDictionary("en", new CultureDictionaryRecord[] { new CultureDictionaryRecord("míč", null, new[] { "ball", "{0} balls" }) }, _enPluralRule); var localizer = new PortableObjectStringLocalizer(new CultureInfo("en"), null, _localizationManager.Object, _logger.Object); var translation = localizer.Plural(count, new[] { "míč", "{0} míče", "{0} míčů" }, count); Assert.Equal(expected, translation); }
public void LocalizerReturnsOriginalTextIfTranslationsDoesntExistInProvidedDictionary() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", null, new[] { "míč", "míče", "míčů" }) }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs"), null, _localizationManager.Object, _logger.Object); var translation = localizer["car"]; Assert.Equal("car", translation); }
public void LocalizerReturnsFormattedTranslation() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("The page (ID:{0}) was deleted.", null, new[] { "Stránka (ID:{0}) byla smazána." }) }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs"), "small", _localizationManager.Object, _logger.Object); var translation = localizer["The page (ID:{0}) was deleted.", 1]; Assert.Equal("Stránka (ID:1) byla smazána.", translation); }
public void LocalizerReturnsOriginalTextForPluralIfTranslationDoesntExist(string expected, int count) { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", null, new[] { "míč", "míče", "míčů" }), }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs"), null, _localizationManager.Object, _logger.Object); var translation = localizer.Plural(count, "car", "cars"); Assert.Equal(expected, translation); }
public void LocalizerReturnsTranslationWithSpecificContext() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", null, new[] { "míč", "míče", "míčů" }), new CultureDictionaryRecord("ball", "small", new[] { "míček", "míčky", "míčků" }) }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs"), "small", _localizationManager.Object, _logger.Object); var translation = localizer["ball"]; Assert.Equal("míček", translation); }
public void LocalizerFallBackToParentCultureIfFallBackToParentUICulturesIsTrue(bool fallBackToParentCulture, string resourceKey, string expected) { SetupDictionary("ar", new CultureDictionaryRecord[] { new CultureDictionaryRecord("hello", "مرحبا") }, _arPluralRule); SetupDictionary("ar-YE", new CultureDictionaryRecord[] { }, _arPluralRule); var localizer = new PortableObjectStringLocalizer(null, _localizationManager.Object, fallBackToParentCulture, _logger.Object); CultureInfo.CurrentUICulture = new CultureInfo("ar-YE"); var translation = localizer[resourceKey]; Assert.Equal(expected, translation); }
public void LocalizerReturnsFormattedTranslation() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("The page (ID:{0}) was deleted.", "Stránka (ID:{0}) byla smazána.") }); var localizer = new PortableObjectStringLocalizer("small", _localizationManager.Object, true, _logger.Object); using (CultureScope.Create("cs")) { var translation = localizer["The page (ID:{0}) was deleted.", 1]; Assert.Equal("Stránka (ID:1) byla smazána.", translation); } }
public void LocalizerReturnsTranslationFromSpecificCultureIfItExists() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", null, new[] { "míč", "míče", "míčů" }) }); SetupDictionary("cs-CZ", new[] { new CultureDictionaryRecord("ball", null, new[] { "balón", "balóny", "balónů" }) }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs-CZ"), null, _localizationManager.Object, _logger.Object); var translation = localizer["ball"]; Assert.Equal("balón", translation); }
public void LocalizerFallbacksToParentCultureIfTranslationDoesntExistInSpecificCulture() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", null, new[] { "míč", "míče", "míčů" }) }); SetupDictionary("cs-CZ", new[] { new CultureDictionaryRecord("car", null, new[] { "auto", "auta", "aut" }) }); var localizer = new PortableObjectStringLocalizer(new CultureInfo("cs-cz"), null, _localizationManager.Object, _logger.Object); var translation = localizer["ball"]; Assert.Equal("míč", translation); }
public void LocalizerReturnsTranslationWithoutContextIfTranslationWithContextDoesntExist() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", "míč", "míče", "míčů"), new CultureDictionaryRecord("ball", "big", new [] { "míček", "míčky", "míčků" }) }); var localizer = new PortableObjectStringLocalizer("small", _localizationManager.Object, true, _logger.Object); CultureInfo.CurrentUICulture = new CultureInfo("cs"); var translation = localizer["ball"]; Assert.Equal("míč", translation); }
public void LocalizerReturnsTranslationsFromProvidedDictionary() { SetupDictionary("cs", new[] { new CultureDictionaryRecord("ball", "míč", "míče", "míčů") }); var localizer = new PortableObjectStringLocalizer(null, _localizationManager.Object, true, _logger.Object); CultureInfo.CurrentUICulture = new CultureInfo("cs"); var translation = localizer["ball"]; Assert.Equal("míč", translation); }
public void LocalizerReturnsCorrectTranslationForPluralIfNoPluralFormsSpecified(string culture, string expected, int count, string[] translations) { using (var cultureScope = CultureScope.Create(culture)) { // using DefaultPluralRuleProvider to test it returns correct rule TryGetRuleFromDefaultPluralRuleProvider(cultureScope.UICulture, out var rule); Assert.NotNull(rule); SetupDictionary(culture, new[] { new CultureDictionaryRecord("ball", translations), }, rule); var localizer = new PortableObjectStringLocalizer(null, _localizationManager.Object, true, _logger.Object); var translation = localizer.Plural(count, "ball", "{0} balls", count); Assert.Equal(expected, translation); } }
public void LocalizerWithContextShouldCallGetDictionaryOncePerCulture(string culture, int expectedCalls) { // Arrange SetupDictionary(culture, Array.Empty <CultureDictionaryRecord>()); var localizer = new PortableObjectStringLocalizer("context", _localizationManager.Object, true, _logger.Object); CultureInfo.CurrentUICulture = new CultureInfo(culture); // Act var translation = localizer["Hello"]; // Assert _localizationManager.Verify(lm => lm.GetDictionary(It.IsAny <CultureInfo>()), Times.Exactly(expectedCalls)); Assert.Equal("Hello", translation); }
public void LocalizerReturnsGetAllStrings(bool includeParentCultures, string[] expected) { SetupDictionary("ar", new CultureDictionaryRecord[] { new CultureDictionaryRecord("Blog", "مدونة"), new CultureDictionaryRecord("Menu", "قائمة"), new CultureDictionaryRecord("Page", "صفحة"), new CultureDictionaryRecord("Article", "مقالة") }, _arPluralRule); SetupDictionary("ar-YE", new CultureDictionaryRecord[] { new CultureDictionaryRecord("Blog", "مدونة"), new CultureDictionaryRecord("Product", "منتج") }, _arPluralRule); var localizer = new PortableObjectStringLocalizer(null, _localizationManager.Object, false, _logger.Object); CultureInfo.CurrentUICulture = new CultureInfo("ar-YE"); var translations = localizer.GetAllStrings(includeParentCultures).Select(l => l.Value).ToArray(); Assert.Equal(expected.Count(), translations.Count()); }