Exemplo n.º 1
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
            }
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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());
        }