|
|
|
@ -50,35 +50,38 @@ namespace Microsoft.AspNetCore.RequestLocalization |
|
|
|
{ |
|
|
|
using (await _syncSemaphore.LockAsync()) |
|
|
|
{ |
|
|
|
using (var serviceScope = _serviceProviderFactory.CreateScope()) |
|
|
|
if (_requestLocalizationOptions == null) |
|
|
|
{ |
|
|
|
var languageProvider = serviceScope.ServiceProvider.GetRequiredService<ILanguageProvider>(); |
|
|
|
var settingProvider = serviceScope.ServiceProvider.GetRequiredService<ISettingProvider>(); |
|
|
|
using (var serviceScope = _serviceProviderFactory.CreateScope()) |
|
|
|
{ |
|
|
|
var languageProvider = serviceScope.ServiceProvider.GetRequiredService<ILanguageProvider>(); |
|
|
|
var settingProvider = serviceScope.ServiceProvider.GetRequiredService<ISettingProvider>(); |
|
|
|
|
|
|
|
var languages = await languageProvider.GetLanguagesAsync(); |
|
|
|
var defaultLanguage = await settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage); |
|
|
|
var languages = await languageProvider.GetLanguagesAsync(); |
|
|
|
var defaultLanguage = await settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage); |
|
|
|
|
|
|
|
var options = !languages.Any() |
|
|
|
? new RequestLocalizationOptions() |
|
|
|
: new RequestLocalizationOptions |
|
|
|
{ |
|
|
|
DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), |
|
|
|
var options = !languages.Any() |
|
|
|
? new RequestLocalizationOptions() |
|
|
|
: new RequestLocalizationOptions |
|
|
|
{ |
|
|
|
DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), |
|
|
|
|
|
|
|
SupportedCultures = languages |
|
|
|
.Select(l => l.CultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray(), |
|
|
|
SupportedCultures = languages |
|
|
|
.Select(l => l.CultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray(), |
|
|
|
|
|
|
|
SupportedUICultures = languages |
|
|
|
.Select(l => l.UiCultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray() |
|
|
|
}; |
|
|
|
SupportedUICultures = languages |
|
|
|
.Select(l => l.UiCultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray() |
|
|
|
}; |
|
|
|
|
|
|
|
_optionsAction?.Invoke(options); |
|
|
|
_requestLocalizationOptions = options; |
|
|
|
_optionsAction?.Invoke(options); |
|
|
|
_requestLocalizationOptions = options; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -98,4 +101,4 @@ namespace Microsoft.AspNetCore.RequestLocalization |
|
|
|
return new RequestCulture(cultureName, uiCultureName); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|