Skip to content

Commit

Permalink
Merge pull request #5 from jslachta/feature/refactoring
Browse files Browse the repository at this point in the history
Refactoring: LocaleTranslations to LocaleNames
  • Loading branch information
jslachta authored Oct 21, 2021
2 parents 2b2e68f + 6a0ad85 commit 0adc1cf
Show file tree
Hide file tree
Showing 14 changed files with 97 additions and 79 deletions.
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,40 @@ The translation data are generated from [CLDR locale data for internationalizati

# Usage

### Find all language codes

```
var allCountryCodes = LocaleNames.ForLanguageCode("en-US").AllLanguageCodes;
```

### Find language name

```
var translatedLanguageName = LocaleTranslations.ForCultureInfo(new CultureInfo("en-US")).FindLanguageName("cs-CZ");
var translatedLanguageName = LocaleNames.ForCultureInfo(new CultureInfo("en-US")).FindLanguageName("cs-CZ");
```

### Find language code

```
var languageCode = LocaleTranslations.ForCultureInfo(new CultureInfo("en-US")).FindLanguageCode("Czech");
var languageCode = LocaleNames.ForCultureInfo(new CultureInfo("en-US")).FindLanguageCode("Czech");
```

### Find country name

```
var translatedCountryName = LocaleTranslations.ForCultureInfo(new CultureInfo("en-US")).FindCountryName("DE");
var translatedCountryName = LocaleNames.ForCultureInfo(new CultureInfo("en-US")).FindCountryName("DE");
```

### Find all country codes

```
var allCountryCodes = LocaleNames.ForLanguageCode("en-US").AllCountryCodes;
```

### Find country code

```
var countryCode = LocaleTranslations.ForCultureInfo(new CultureInfo("en-US")).FindCountryCode("Germany");
var countryCode = LocaleNames.ForCultureInfo(new CultureInfo("en-US")).FindCountryCode("Germany");
```

# Contributing
Expand Down
16 changes: 9 additions & 7 deletions src/LocaleNames.Test/ExtensionsTests.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using LocaleNames.Extensions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Globalization;
using LocaleNames;
using System.Linq;
using LocaleNames.Extensions;

namespace LocaleNames.Test
namespace LocaleTranslations.Test
{
[TestClass]
public class ExtensionsTests
Expand All @@ -19,8 +17,6 @@ public void LocaleNames_IsCountryCodeContinent()
* It looks like that continents has a numerical code.
*/

var codes = LocaleNames.LocaleTranslations.ForCurrentCulture().AllCountryCodes;

// 001 - World
Assert.IsTrue(StringExtensions.IsCountryCodeContinent("001"));

Expand All @@ -32,6 +28,12 @@ public void LocaleNames_IsCountryCodeContinent()

// Return false on country
Assert.IsFalse(StringExtensions.IsCountryCodeContinent("CZ"));

// Return false on empty
Assert.IsFalse(StringExtensions.IsCountryCodeContinent(String.Empty));

// Return false on null
Assert.IsFalse(StringExtensions.IsCountryCodeContinent(null));
}
}
}
8 changes: 4 additions & 4 deletions src/LocaleNames.Test/FactoryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class FactoryTests
[TestMethod]
public void LocaleNames_Factory_ForLanguageCode_On_Windows_Should_Have_Invariant_Culture()
{
var localeNames = LocaleTranslations.ForLanguageCode("unknown code");
var localeNames = LocaleNames.ForLanguageCode("unknown code");

if (OperatingSystem.IsWindows())
{
Expand All @@ -29,7 +29,7 @@ public void LocaleNames_Factory_ForLanguageCode_On_Windows_Should_Have_Invariant
[TestMethod]
public void LocaleNames_Factory_ForCultureInfo_Existing_Culture_Test()
{
var translations = LocaleTranslations.ForCultureInfo(new System.Globalization.CultureInfo("en-US"));
var translations = LocaleNames.ForCultureInfo(new System.Globalization.CultureInfo("en-US"));

Assert.AreEqual(new System.Globalization.CultureInfo("en-US"), translations.CultureInfo);
Assert.IsFalse(translations.AreCountryNameTranslationsEmpty);
Expand All @@ -45,7 +45,7 @@ public void LocaleNames_Factory_ForLanguageCode_Test()
/*
* if a valid language code is given, the cultureinfo name should match.
*/
var translations = LocaleTranslations.ForLanguageCode("cs-CZ");
var translations = LocaleNames.ForLanguageCode("cs-CZ");

Assert.AreEqual(new System.Globalization.CultureInfo("cs-CZ"), translations.CultureInfo);
Assert.IsFalse(translations.AreCountryNameTranslationsEmpty);
Expand All @@ -61,7 +61,7 @@ public void LocaleNames_Factory_ForLanguageCode_InvalidLanguageCode_Test()
/*
* if a not valid language code is given, the LocaleTranslations will not have any translations.
*/
var translations = LocaleTranslations.ForLanguageCode("non-existing-code");
var translations = LocaleNames.ForLanguageCode("non-existing-code");

Assert.IsTrue(translations.AreCountryNameTranslationsEmpty);
Assert.IsTrue(translations.AreLanguageTranslationsEmpty);
Expand Down
4 changes: 2 additions & 2 deletions src/LocaleNames.Test/FindCountryCodeTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class FindCountryCodeTests
[TestMethod]
public void LocaleNames_All_Country_Codes_Should_Not_Provide_Variants_And_Continents()
{
var localeNames = LocaleTranslations.ForLanguageCode("en-US");
var localeNames = LocaleNames.ForLanguageCode("en-US");

var countryCodes = localeNames.AllCountryCodes;

Expand All @@ -34,7 +34,7 @@ public void LocaleNames_All_Country_Codes_Should_Not_Provide_Variants_And_Contin
[TestMethod]
public void LocaleNames_Find_country_code_by_name()
{
var localeNames = LocaleTranslations.ForLanguageCode("en-US");
var localeNames = LocaleNames.ForLanguageCode("en-US");

Assert.AreEqual("DE", localeNames.FindCountryCode("Germany"));

Expand Down
4 changes: 2 additions & 2 deletions src/LocaleNames.Test/FindCountryNameTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class FindCountryNameTests
[TestMethod]
public void Find_country_name_by_code()
{
var localeNames = LocaleTranslations.ForLanguageCode("en-US");
var localeNames = LocaleNames.ForLanguageCode("en-US");

Assert.AreEqual("Germany", localeNames.FindCountryName("DE"));
Assert.AreEqual("Czechia", localeNames.FindCountryName("CZ"));
Expand All @@ -22,7 +22,7 @@ public void Find_country_name_by_code()
[TestMethod]
public void Find_all_variants_of_country_name_by_code()
{
var localeNames = LocaleTranslations.ForLanguageCode("en-US");
var localeNames = LocaleNames.ForLanguageCode("en-US");
var result = localeNames.FindCountryNames("CZ");

Assert.IsTrue(result.Count == 2, "CZ country name has only two variants");
Expand Down
6 changes: 3 additions & 3 deletions src/LocaleNames.Test/FindLanguageCodeTests.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Globalization;
using LocaleNames;
using System.Linq;
using LocaleNames;

namespace LocaleNames.Test
{
Expand All @@ -12,7 +12,7 @@ public class FindLanguageCodeTests
[TestMethod]
public void LocaleNames_All_Language_Codes_Should_Not_Provide_Variants()
{
var localeNames = LocaleTranslations.ForLanguageCode("en-US");
var localeNames = LocaleNames.ForLanguageCode("en-US");

var languageCodes = localeNames.AllLanguageCodes;

Expand All @@ -31,7 +31,7 @@ public void LocaleNames_All_Language_Codes_Should_Not_Provide_Variants()
[TestMethod]
public void LocaleNames_Find_language_code_by_name()
{
var localeNames = LocaleTranslations.ForLanguageCode("en-US");
var localeNames = LocaleNames.ForLanguageCode("en-US");

Assert.AreEqual("de", localeNames.FindLanguageCode("German"));

Expand Down
10 changes: 5 additions & 5 deletions src/LocaleNames.Test/FindLanguageNameTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class FindLanguageNameTests
[TestMethod]
public void LocaleNames_Find_language_name_for_given_culture()
{
var localeNames = LocaleTranslations.ForCultureInfo(new CultureInfo("cs-CZ"));
var localeNames = LocaleNames.ForCultureInfo(new CultureInfo("cs-CZ"));

Assert.AreEqual("čeština", localeNames.FindLanguageName("cs"));

Expand All @@ -25,7 +25,7 @@ public void LocaleNames_Find_language_name_for_given_culture()

Assert.AreEqual(null, localeNames.FindLanguageName("unknown code"));

localeNames = LocaleTranslations.ForCultureInfo(new CultureInfo("yue"));
localeNames = LocaleNames.ForCultureInfo(new CultureInfo("yue"));

Assert.AreEqual("德文", localeNames.FindLanguageName("de"));

Expand All @@ -37,7 +37,7 @@ public void LocaleNames_Find_language_name_for_given_culture()
[TestMethod]
public void LocaleNames_Find_language_name_for_current_culture()
{
var localeNames = LocaleTranslations.ForCurrentCulture();
var localeNames = LocaleNames.ForCurrentCulture();

Assert.AreEqual("angličtina (USA)", localeNames.FindLanguageName("en-US"));

Expand All @@ -49,7 +49,7 @@ public void LocaleNames_Find_language_name_for_current_culture()
[TestMethod]
public void LocaleNames_Find_language_name_for_language_code()
{
var localeNames = LocaleTranslations.ForLanguageCode("en-US");
var localeNames = LocaleNames.ForLanguageCode("en-US");

Assert.AreEqual("German", localeNames.FindLanguageName("de"));

Expand All @@ -65,7 +65,7 @@ public void LocaleNames_Find_language_name_for_language_code()
[TestMethod]
public void LocaleNames_Find_language_name_for_unknown_language_code()
{
var localeNames = LocaleTranslations.ForLanguageCode("unknown-CODE");
var localeNames = LocaleNames.ForLanguageCode("unknown-CODE");

Assert.AreEqual(null, localeNames.FindLanguageName("de"));
}
Expand Down
6 changes: 3 additions & 3 deletions src/LocaleNames.Test/LocaleNamesTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ public class LocaleNamesTests
[TestMethod]
public void LocaleNames_Is_loading_from_cache()
{
LocaleTranslations.ClearCache();
var localeName = LocaleTranslations.ForCultureInfo(new CultureInfo("cs-CZ"));
LocaleNames.ClearCache();
var localeName = LocaleNames.ForCultureInfo(new CultureInfo("cs-CZ"));

Assert.IsFalse(localeName.IsFromCache);

localeName = LocaleTranslations.ForCultureInfo(new CultureInfo("cs-CZ"));
localeName = LocaleNames.ForCultureInfo(new CultureInfo("cs-CZ"));

Assert.IsTrue(localeName.IsFromCache);
}
Expand Down
29 changes: 0 additions & 29 deletions src/LocaleNames/Enumerations/AltVariant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,33 +35,4 @@ public enum AltVariant
/// </summary>
Menu = 8
}

/// <summary>
/// Extension methods for the enum <see cref="AltVariant"/>.
/// </summary>
internal static class AltVariantExtensions
{
/// <summary>
/// Gets the locale postfix.
/// </summary>
/// <param name="variant">The variant.</param>
/// <returns></returns>
public static string GetLocalePostfix(this AltVariant variant)
{
switch (variant)
{
case AltVariant.Alternative:
return "-alt-variant";
case AltVariant.Short:
return "-alt-short";
case AltVariant.Long:
return "-alt-long";
case AltVariant.Menu:
return "-alt-menu";
default:
case AltVariant.Common:
return string.Empty;
}
}
}
}
34 changes: 34 additions & 0 deletions src/LocaleNames/Extensions/AltVariantExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using LocaleNames.Enumerations;
using System;

namespace LocaleNames.Extensions
{
/// <summary>
/// Extension methods for the enum <see cref="AltVariant"/>.
/// </summary>
internal static class AltVariantExtensions
{
/// <summary>
/// Gets the locale postfix.
/// </summary>
/// <param name="variant">The variant.</param>
/// <returns></returns>
public static string GetLocalePostfix(this AltVariant variant)
{
switch (variant)
{
case AltVariant.Alternative:
return "-alt-variant";
case AltVariant.Short:
return "-alt-short";
case AltVariant.Long:
return "-alt-long";
case AltVariant.Menu:
return "-alt-menu";
default:
case AltVariant.Common:
return string.Empty;
}
}
}
}
4 changes: 1 addition & 3 deletions src/LocaleNames/Extensions/StringExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ public static class StringExtensions
public static bool IsCountryCodeContinent(this string countryCode)
{
if (string.IsNullOrWhiteSpace(countryCode)) return false;

int result = 0;
return int.TryParse(countryCode, out result);
return int.TryParse(countryCode, out _);
}

/// <summary>
Expand Down
Loading

0 comments on commit 0adc1cf

Please sign in to comment.