コード例 #1
0
        public void TranslateConcurrentlyTest()
        {
            var availableKeys = new[]
            {
                "cancel",
                "retry",
                "delete",
                "close",
                "yes",
                "no",
                "ok",
            };

            Parallel.For(0, 10000, iteration =>
            {
                var key = availableKeys[iteration % availableKeys.Length];
                m_fileLocalizationManager.Translate(null, null, key);
            });
        }
コード例 #2
0
        public void TreeTest()
        {
            var localizationConfiguration = new LocalizationConfiguration
            {
                BasePath          = "LocalizationTree",
                DefaultCulture    = new CultureInfo("cs"),
                SupportedCultures = new List <CultureInfo>
                {
                    new CultureInfo("en"),
                    new CultureInfo("en-US"),
                    new CultureInfo("en-GB"),
                    new CultureInfo("en-CA"),
                    new CultureInfo("es-MX"),
                    new CultureInfo("es-US"),
                },
                TranslateFallbackMode = LocTranslateFallbackMode.Key,
                AutoLoadResources     = true
            };

            var dictionaryManager = new FileDictionaryManager(
                localizationConfiguration, JsonDictionaryFactory.FactoryInstance
                );

            var fallbackCultureResolver = new FallbackCultureResolver(localizationConfiguration);
            var fileLocalizationManager = new FileLocalizationManager(
                localizationConfiguration, dictionaryManager, fallbackCultureResolver
                );

            var s1 = fileLocalizationManager.Translate("text-1-odst", new CultureInfo("cs"));

            Assert.AreEqual("global cs [text-1-odst]", s1);

            var s2 = fileLocalizationManager.Translate("extra-cs-key", new CultureInfo("en-MX"));

            Assert.AreEqual("extra string in CS culture", s2);

            var s3 = fileLocalizationManager.Translate("extra-cs-key", new CultureInfo("es-MX"));

            Assert.AreEqual("extra string in CS culture", s3);

            const string nopeKey = "nope-key";
            var          sNope   = fileLocalizationManager.Translate(nopeKey, new CultureInfo("es-MX"));

            Assert.AreEqual(nopeKey, sNope);

            localizationConfiguration.TranslateFallbackMode = LocTranslateFallbackMode.EmptyString;

            var sNope2 = fileLocalizationManager.Translate(nopeKey, new CultureInfo("es-MX"));

            Assert.AreEqual("", sNope2);

            localizationConfiguration.TranslateFallbackMode = LocTranslateFallbackMode.Exception;

            var exceptionThrown = false;

            try
            {
                var sNope3 = fileLocalizationManager.Translate(nopeKey, new CultureInfo("es-MX"));
            }
            catch (TranslateException)
            {
                exceptionThrown = true;
            }

            Assert.IsTrue(exceptionThrown);
        }