|
|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|