🐛 Fix localization
This commit is contained in:
parent
d70b081752
commit
b370c69670
@ -1,3 +1,4 @@
|
||||
using System.Globalization;
|
||||
using DysonNetwork.Sphere.Activity;
|
||||
using DysonNetwork.Sphere.Connection;
|
||||
using DysonNetwork.Sphere.Resources;
|
||||
@ -11,10 +12,10 @@ namespace DysonNetwork.Sphere.Account;
|
||||
|
||||
public class AccountEventService(
|
||||
AppDatabase db,
|
||||
AccountService acc,
|
||||
ActivityService act,
|
||||
WebSocketService ws,
|
||||
IMemoryCache cache
|
||||
IMemoryCache cache,
|
||||
IStringLocalizer<Localization.AccountEventResource> localizer
|
||||
)
|
||||
{
|
||||
private static readonly Random Random = new();
|
||||
@ -120,8 +121,10 @@ public class AccountEventService(
|
||||
|
||||
public async Task<CheckInResult> CheckInDaily(Account user)
|
||||
{
|
||||
var localizer = AccountService.GetEventLocalizer(user.Language);
|
||||
|
||||
var cultureInfo = new CultureInfo(user.Language, false);
|
||||
CultureInfo.CurrentCulture = cultureInfo;
|
||||
CultureInfo.CurrentUICulture = cultureInfo;
|
||||
|
||||
// Generate 2 positive tips
|
||||
var positiveIndices = Enumerable.Range(1, FortuneTipCount)
|
||||
.OrderBy(_ => Random.Next())
|
||||
|
@ -40,32 +40,4 @@ public class AccountService(
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IStringLocalizer GetEventLocalizer(string language)
|
||||
{
|
||||
var culture = new CultureInfo(language, false);
|
||||
|
||||
var originalCulture = CultureInfo.CurrentCulture;
|
||||
|
||||
try
|
||||
{
|
||||
// Set the desired culture
|
||||
CultureInfo.CurrentUICulture = culture;
|
||||
CultureInfo.CurrentCulture = culture;
|
||||
|
||||
// Now create the localizer
|
||||
var localizer = new ResourceManagerStringLocalizerFactory(
|
||||
new Microsoft.Extensions.Options.OptionsWrapper<LocalizationOptions>(new LocalizationOptions
|
||||
{ ResourcesPath = "Resources" }),
|
||||
NullLoggerFactory.Instance
|
||||
).Create(typeof(AccountEventResource));
|
||||
|
||||
return localizer;
|
||||
}
|
||||
finally
|
||||
{
|
||||
CultureInfo.CurrentCulture = originalCulture;
|
||||
CultureInfo.CurrentUICulture = originalCulture;
|
||||
}
|
||||
}
|
||||
}
|
@ -69,7 +69,7 @@ public class AppDatabase(
|
||||
|
||||
optionsBuilder.UseNpgsql(
|
||||
dataSource,
|
||||
opt => opt.UseNodaTime()
|
||||
opt => opt.UseNodaTime().UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery)
|
||||
).UseSnakeCaseNamingConvention();
|
||||
|
||||
optionsBuilder.UseAsyncSeeding(async (context, _, cancellationToken) =>
|
||||
|
@ -64,12 +64,8 @@ builder.Services.Configure<RequestLocalizationOptions>(options => {
|
||||
new CultureInfo("zh-hans"),
|
||||
};
|
||||
|
||||
options.DefaultRequestCulture = new RequestCulture("en-us");
|
||||
options.SupportedCultures = supportedCultures;
|
||||
options.SupportedUICultures = supportedCultures;
|
||||
|
||||
// TODO parse user token
|
||||
options.AddInitialRequestCultureProvider(new CustomRequestCultureProvider(async context => await Task.FromResult(new ProviderCultureResult("zh-hans"))));
|
||||
});
|
||||
|
||||
// Other pipelines
|
||||
|
Loading…
x
Reference in New Issue
Block a user