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})"); } } } }
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); } }
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}"); } }
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"); }