diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs index f186fff299..2ddf9233ba 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs @@ -11,7 +11,12 @@ namespace Volo.Abp.Localization { Check.NotNull(culture, nameof(culture)); - return Use(new CultureInfo(culture), uiCulture == null ? null : new CultureInfo(uiCulture)); + return Use( + new CultureInfo(culture), + uiCulture == null + ? null + : new CultureInfo(uiCulture) + ); } public static IDisposable Use([NotNull] CultureInfo culture, CultureInfo uiCulture = null) @@ -35,5 +40,29 @@ namespace Volo.Abp.Localization { get { return Thread.CurrentThread.CurrentUICulture.TextInfo.IsRightToLeft; } } + public static bool IsValidCultureCode(string cultureCode) + { + if (cultureCode.IsNullOrWhiteSpace()) + { + return false; + } + + try + { + CultureInfo.GetCultureInfo(cultureCode); + return true; + } + catch (CultureNotFoundException) + { + return false; + } + } + + public static string GetBaseCultureName(string cultureName) + { + return cultureName.Contains("-") + ? cultureName.Left(cultureName.IndexOf("-", StringComparison.Ordinal)) + : cultureName; + } } -} +} \ No newline at end of file