Набор расширений, позволяющий встроить локализацию I18n в приложение ASP.NET Core.
Ниже - минимальный набор изменений, нужных для встраивания в приложение ASP.NET Core.
Для подключения зависимостей в методе ConfigureServices
:
services
.AddI18nRequestLocalization();
Или эквивалентное
services
.AddLocalizationContextAccessor()
// далее можно зарегистрировать только желаемые провайдеры:
.AddAcceptLanguageHeaderLocalizationProvider()
.AddClaimsLocalizationProvider();
И в методе Configure
:
app.UseI18nRequestLocalization();
Место подключения важно, влияет на порядок middleware-ов.
После подключения, для доступа к локализации используйте абстракцию ILocalizationContextAccessor
:
ILocalizationContextAccessor.Context.UserLocale
- язык пользователя
Для определения языка пользователя используются реализации IRequestLocalizationProvider
.
AcceptLanguageHeaderLocalizationProvider
– получает язык из HTTP-заголовка Accept-Language.TokenLocalizationProvider
– получает язык из токена пользователя (например, из JWT).