Exemple #1
0
        public void CheckAllCulture()
        {
            ITranslationProvider translationProvider = new TranslationProvider();

            CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);

            foreach (var countryCode in (Alpha2Code[])Enum.GetValues(typeof(Alpha2Code)))
            {
                var countryTranslation = translationProvider.GetCountryTranslation(countryCode);
                if (countryTranslation == null)
                {
                    continue;
                }

                var expectedLanguages = countryTranslation.Translations.Select(x => x.LanguageCode).ToList();
                foreach (var culture in cultures)
                {
                    bool expectResult = false;
                    if (Enum.TryParse(culture.TwoLetterISOLanguageName, true, out LanguageCode code))
                    {
                        expectResult = expectedLanguages.Any(x => x == code);
                    }

                    var translatedCountryName = translationProvider.GetCountryTranslatedName(countryCode, culture);
                    if (expectResult && string.IsNullOrWhiteSpace(translatedCountryName))
                    {
                        Assert.Fail($"A result was expected but there was no translated country name found for {countryCode} and culture {culture.Name} (language {culture.TwoLetterISOLanguageName})");
                    }
                }
            }
        }
Exemple #2
0
        public void DuplicateTranslationTest()
        {
            ITranslationProvider translationProvider = new TranslationProvider();

            foreach (var countryCode in (Alpha2Code[])Enum.GetValues(typeof(Alpha2Code)))
            {
                var countryTranslation = translationProvider.GetCountryTranslation(countryCode);

                var duplicateTranslation = countryTranslation.Translations.GroupBy(o => o.LanguageCode).Any(o => o.Count() > 1);
                Assert.IsFalse(duplicateTranslation);
            }
        }
Exemple #3
0
        public void CheckTranslationsAvailableTest()
        {
            ITranslationProvider translationProvider = new TranslationProvider();

            foreach (var countryCode in (Alpha2Code[])Enum.GetValues(typeof(Alpha2Code)))
            {
                var countryTranslation = translationProvider.GetCountryTranslation(countryCode);
                if (countryTranslation == null)
                {
                    continue;
                }

                var translationCount = countryTranslation.Translations.Length;
                Assert.IsTrue(translationCount > 5, $"Missing translations for countryCode: {countryCode}");
            }
        }
Exemple #4
0
        static void Main(string[] args)
        {
            var exportDirectory = "export";

            if (!Directory.Exists(exportDirectory))
            {
                Directory.CreateDirectory(exportDirectory);
            }

            var jsonSerializerOptions = new JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
                PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
                Converters           =
                {
                    new JsonStringEnumConverterWithAttributeSupport(null, true, true, true, true)
                },
                WriteIndented = true
            };

            var countryProvider     = new CountryProvider();
            var translationProvider = new TranslationProvider();

            var countries = countryProvider.GetCountries();

            foreach (var country in countries)
            {
                var countryTranslation = translationProvider.GetCountryTranslation(country.Alpha2Code);

                var fullCountry = country.Adapt <FullCountryInfo>();
                fullCountry.Translations = countryTranslation.Translations;

                var jsonData = JsonSerializer.SerializeToUtf8Bytes(fullCountry, jsonSerializerOptions);
                File.WriteAllBytesAsync($"{exportDirectory}/{country.Alpha2Code}.json", jsonData).GetAwaiter().GetResult();
            }

            Console.WriteLine("Json export done");
        }