Skip to content

Commit 7cff7e6

Browse files
committed
[add] different way of culture check using built-in invariant culture
1 parent b3467ef commit 7cff7e6

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

src/Simplify.Web/Modules/LanguageManager.cs

+18-7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Globalization;
33
using System.Threading;
44
using Microsoft.AspNetCore.Http;
5+
using Simplify.System.Diagnostics;
56
using Simplify.Web.Settings;
67

78
namespace Simplify.Web.Modules;
@@ -37,7 +38,7 @@ public LanguageManager(ISimplifyWebSettings settings, HttpContext context)
3738

3839
if (!settings.AcceptHeaderLanguage || (settings.AcceptHeaderLanguage && !TrySetLanguageFromRequestHeader(context)))
3940
if (!SetCurrentLanguage(settings.DefaultLanguage))
40-
SetCurrentLanguage("iv");
41+
SetInvariantCulture();
4142
}
4243

4344
/// <summary>
@@ -70,17 +71,27 @@ public bool SetCurrentLanguage(string language)
7071
{
7172
try
7273
{
73-
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
74-
Thread.CurrentThread.CurrentCulture = new CultureInfo(language);
75-
76-
Language = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
77-
78-
return true;
74+
CultureInfo.GetCultureInfo(language, true);
7975
}
8076
catch
8177
{
8278
return false;
8379
}
80+
81+
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
82+
Thread.CurrentThread.CurrentCulture = new CultureInfo(language);
83+
84+
Language = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
85+
86+
return true;
87+
}
88+
89+
private void SetInvariantCulture()
90+
{
91+
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
92+
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
93+
94+
Language = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
8495
}
8596

8697
private bool TrySetLanguageFromCookie(HttpContext context)

0 commit comments

Comments
 (0)