Skip to content

Commit

Permalink
MAINTENANCE: switch to .net8 only
Browse files Browse the repository at this point in the history
Switch to .NET8 only to draw benefits of newer version C# language.

Signed-off-by: Jiri Slachta <[email protected]>
  • Loading branch information
jslachta committed Jul 7, 2024
1 parent 2ee4368 commit 52ea919
Show file tree
Hide file tree
Showing 9 changed files with 454 additions and 468 deletions.
57 changes: 28 additions & 29 deletions src/LocaleNames/Enumerations/AltVariant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,40 @@
using System.Collections.Generic;
using System.Text;

namespace LocaleNames.Enumerations
namespace LocaleNames.Enumerations;

/// <summary>
/// Provides variants for name.
/// </summary>
public enum AltVariant
{
/// <summary>
/// Provides variants for name.
/// The none variant.
/// </summary>
public enum AltVariant
{
/// <summary>
/// The none variant.
/// </summary>
None = 0,
None = 0,

/// <summary>
/// The common name variant.
/// </summary>
Common = 1,
/// <summary>
/// The common name variant.
/// </summary>
Common = 1,

/// <summary>
/// The alternative name variant.
/// </summary>
Alternative = 2,
/// <summary>
/// The alternative name variant.
/// </summary>
Alternative = 2,

/// <summary>
/// The short name variant.
/// </summary>
Short = 4,
/// <summary>
/// The short name variant.
/// </summary>
Short = 4,

/// <summary>
/// The long name variant.
/// </summary>
Long = 8,
/// <summary>
/// The long name variant.
/// </summary>
Long = 8,

/// <summary>
/// The menu name variant.
/// </summary>
Menu = 16
}
/// <summary>
/// The menu name variant.
/// </summary>
Menu = 16
}
45 changes: 22 additions & 23 deletions src/LocaleNames/Extensions/AltVariantExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
using LocaleNames.Enumerations;
using System;

namespace LocaleNames.Extensions
namespace LocaleNames.Extensions;

/// <summary>
/// Extension methods for the enum <see cref="AltVariant"/>.
/// </summary>
internal static class AltVariantExtensions
{
/// <summary>
/// Extension methods for the enum <see cref="AltVariant"/>.
/// Gets the locale postfix.
/// </summary>
internal static class AltVariantExtensions
/// <param name="variant">The variant.</param>
/// <returns></returns>
public static string GetLocalePostfix(this AltVariant variant)
{
/// <summary>
/// Gets the locale postfix.
/// </summary>
/// <param name="variant">The variant.</param>
/// <returns></returns>
public static string GetLocalePostfix(this AltVariant variant)
switch (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;
}
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;
}
}
}
79 changes: 39 additions & 40 deletions src/LocaleNames/Extensions/DictionaryExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,51 +4,50 @@
using System.Collections.ObjectModel;
using System.Text;

namespace LocaleNames.Extensions
namespace LocaleNames.Extensions;

/// <summary>
/// Extensions method for dictionaries
/// </summary>
public static class DictionaryExtensions
{
/// <summary>
/// Extensions method for dictionaries
/// Finds all name variants of the country.
/// </summary>
public static class DictionaryExtensions
/// <param name="sourceDictionary">The source dictionary</param>
/// <param name="key">country code</param>
/// <returns></returns>
public static IReadOnlyDictionary<AltVariant, string> FindLocaleValues(
this IDictionary<string, string> sourceDictionary,
string key)
{
/// <summary>
/// Finds all name variants of the country.
/// </summary>
/// <param name="sourceDictionary">The source dictionary</param>
/// <param name="key">country code</param>
/// <returns></returns>
public static IReadOnlyDictionary<AltVariant, string> FindLocaleValues(
this IDictionary<string, string> sourceDictionary,
string key)
Dictionary<AltVariant, string> names = new Dictionary<AltVariant, string>();

if (sourceDictionary.ContainsKey(key))
{
names.Add(AltVariant.Common, sourceDictionary[key]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-variant"))
{
names.Add(AltVariant.Alternative, sourceDictionary[$"{key}-alt-variant"]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-short"))
{
Dictionary<AltVariant, string> names = new Dictionary<AltVariant, string>();

if (sourceDictionary.ContainsKey(key))
{
names.Add(AltVariant.Common, sourceDictionary[key]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-variant"))
{
names.Add(AltVariant.Alternative, sourceDictionary[$"{key}-alt-variant"]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-short"))
{
names.Add(AltVariant.Short, sourceDictionary[$"{key}-alt-short"]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-long"))
{
names.Add(AltVariant.Long, sourceDictionary[$"{key}-alt-long"]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-menu"))
{
names.Add(AltVariant.Menu, sourceDictionary[$"{key}-alt-menu"]);
}

return new ReadOnlyDictionary<AltVariant, string>(names);
names.Add(AltVariant.Short, sourceDictionary[$"{key}-alt-short"]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-long"))
{
names.Add(AltVariant.Long, sourceDictionary[$"{key}-alt-long"]);
}

if (sourceDictionary.ContainsKey($"{key}-alt-menu"))
{
names.Add(AltVariant.Menu, sourceDictionary[$"{key}-alt-menu"]);
}

return new ReadOnlyDictionary<AltVariant, string>(names);
}
}
55 changes: 27 additions & 28 deletions src/LocaleNames/Extensions/StringExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,43 +1,42 @@
using System;
using LocaleNames.Enumerations;
using System;
using System.Collections.Generic;
using System.Text;
using LocaleNames.Enumerations;

namespace LocaleNames.Extensions
namespace LocaleNames.Extensions;

/// <summary>
/// The string extensions.
/// </summary>
public static class StringExtensions
{
/// <summary>
/// The string extensions.
/// Determines whether the provided country code is continent.
/// </summary>
public static class StringExtensions
/// <param name="countryCode">The country code</param>
/// <returns>Returns true if countryCode is continent, otherwise false.</returns>
public static bool IsCountryCodeContinent(this string countryCode)
{
/// <summary>
/// Determines whether the provided country code is continent.
/// </summary>
/// <param name="countryCode">The country code</param>
/// <returns>Returns true if countryCode is continent, otherwise false.</returns>
public static bool IsCountryCodeContinent(this string countryCode)
{
if (string.IsNullOrWhiteSpace(countryCode)) return false;
if (string.IsNullOrWhiteSpace(countryCode)) return false;

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

/// <summary>
/// Strips the locale variants from the given string.
/// </summary>
/// <param name="inputText">The text.</param>
/// <returns>The stripped locale variant</returns>
public static string StripLocaleVariants(this string inputText)
/// <summary>
/// Strips the locale variants from the given string.
/// </summary>
/// <param name="inputText">The text.</param>
/// <returns>The stripped locale variant</returns>
public static string StripLocaleVariants(this string inputText)
{
foreach (AltVariant suit in (AltVariant[])Enum.GetValues(typeof(AltVariant)))
{
foreach (AltVariant suit in (AltVariant[])Enum.GetValues(typeof(AltVariant)))
if (!string.IsNullOrWhiteSpace(suit.GetLocalePostfix()) && inputText.Contains(suit.GetLocalePostfix()))
{
if (!string.IsNullOrWhiteSpace(suit.GetLocalePostfix()) && inputText.Contains(suit.GetLocalePostfix()))
{
inputText = inputText.Replace(suit.GetLocalePostfix(), "");
}
inputText = inputText.Replace(suit.GetLocalePostfix(), string.Empty);
}

return inputText;
}

return inputText;
}
}
8 changes: 1 addition & 7 deletions src/LocaleNames/LocaleNames.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
<TargetFramework>net8.0</TargetFramework>
<Authors>Jiri Slachta</Authors>
<Copyright>Copyright © Jiri Slachta</Copyright>
<PackageTags>locale, translations</PackageTags>
Expand All @@ -25,15 +25,9 @@
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<IncludeSymbols>true</IncludeSymbols>

<LangVersion>10.0</LangVersion>
</PropertyGroup>

<Import Project="..\Configuration.targets" />

<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard2.0'))">
<PackageReference Include="System.Text.Json" Version="[4.6.0,)" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\README.md" Pack="True" PackagePath="\" Link="Properties\README.md" />
Expand Down
Loading

0 comments on commit 52ea919

Please sign in to comment.