コード例 #1
0
        public void AssertThrowsDuplicateLocalization()
        {
            var builder = new LocalizationBuilder()
                          .UseJsonFiles("locales");

            Assert.Throws <LocalizerException>(() => builder.UseJsonFiles("locales"));
        }
コード例 #2
0
        public void AssertOverloadThrowsWhenNoDefaultLocaleSet()
        {
            var localization = new LocalizationBuilder()
                               .UseJsonFiles("locales")
                               .Build();

            Assert.Throws <InvalidOperationException>(() => localization.Resolve("hello"));
        }
コード例 #3
0
        public void AssertThrowsScriptWhenDisabled()
        {
            var localization = new LocalizationBuilder()
                               .UseJsonFiles("locales")
                               .WithScriptOptions(null)
                               .Build();

            Assert.Throws <InvalidOperationException>(() => localization.Resolve("en-US", "context-tests.test3"));
        }
コード例 #4
0
        public void AssertDefaultLocaleOverload()
        {
            var localization = new LocalizationBuilder()
                               .WithDefaultLocale("en-US")
                               .UseJsonFiles("locales")
                               .Build();

            Assert.AreEqual("world", localization.Resolve("hello"));
        }
コード例 #5
0
        public void AssertCanLoadJsonLocalisations()
        {
            var builder = new LocalizationBuilder();

            builder.UseJsonFiles("locales");
            var localization = builder.Build();

            Assert.AreEqual("world", localization.Resolve("en-US", "hello"));
            Assert.AreEqual("told me", localization.Resolve("en-US", "somebody.once"));
        }
コード例 #6
0
        public void AssertExecuteStatementReplacement()
        {
            var localization = new LocalizationBuilder()
                               .UseJsonFiles("locales")
                               .Build();

            var test2 = localization.Resolve("en-US", "context-tests.test3", ("isDrill", true), ("drill", "drill"));

            Assert.AreEqual("This is not a drill!", test2);
        }
コード例 #7
0
        public void AssertExecuteMultipleReplacement()
        {
            var localization = new LocalizationBuilder()
                               .UseJsonFiles("locales")
                               .Build();

            var test2 = localization.Resolve("en-US", "context-tests.test2", ("drill", "test"), ("drill2", "test2"));

            Assert.AreEqual("This is not a test test2", test2);
        }
コード例 #8
0
        public void AssertLocalizationCanBeInjectedStatic()
        {
            var localization = new LocalizationBuilder()
                               .UseJsonFiles("locales")
                               .Build();

            Localizer.Inject(localization, Assembly.GetAssembly(typeof(LocalizableClass)));

            Assert.AreEqual("world", LocalizableClass.WorldString.Localize("en-US"));
            Assert.AreEqual("told me", LocalizableClass.SomebodyOnceString.Localize("en-US"));
        }
コード例 #9
0
        public void AssertLocalizationCanBeInjectedInstance()
        {
            var localization = new LocalizationBuilder()
                               .UseJsonFiles("locales")
                               .Build();

            var instance = new LocalizableInstanceClass();

            Localizer.Inject(instance, localization);

            Assert.AreEqual("world", instance.WorldString.Localize("en-US"));
        }
コード例 #10
0
        public JsonLocaleLoader(LocalizationBuilder builder, string path)
        {
            _path          = path;
            _pathSeparator = builder.PathSeparator;

            _supportedLocales = new HashSet <string>();
            _localeCache      = new Dictionary <string, Locale>();

            foreach (var file in Directory.EnumerateFiles(_path, "*.json"))
            {
                _supportedLocales.Add(Path.GetFileNameWithoutExtension(file));
            }
        }
コード例 #11
0
        public void AssertIgnoresNonJsonFiles()
        {
            var builder = new LocalizationBuilder();

            builder.UseJsonFiles("locales-nonjson");
        }
コード例 #12
0
        public void AssertThrowsInvalidDirectory()
        {
            var builder = new LocalizationBuilder();

            Assert.Throws <DirectoryNotFoundException>(() => builder.UseJsonFiles("xyz"));
        }