Локализация через куки в ASP.NET Boilerplate

У меня вопрос и проблема.

Во-первых, я пытаюсь разделить язык экрана входа в систему и язык приложения, чтобы, когда пользователь выходит из системы на немецком языке, экран входа отображался на английском (или наоборот), а когда он входит в систему, он не возвращал язык приложения на английский для вышеупомянутого пользователя.

Кажется довольно простым, но я не могу понять, почему куки отвечают за смену языка. В компоненте language-switch есть этот код в компоненте topbar:

this._customSettingsService.changeLanguage(languageName)
    .subscribe(() => {
        abp.utils.setCookieValue(
            "Abp.Localization.CultureName",
            languageName,
            new Date(new Date().getTime() + 5 * 365 * 86400000), // 5 years
            abp.appPath
        );
        window.location.reload();
    });

Когда я комментирую abp.utils.setCookieValue, язык не переключается, что не имеет никакого смысла.

Важное примечание: я изменил функцию ngOnInit() в app.component, так что текущий и пользовательский языки считываются из БД dbo.AbpSettings и соответственно изменяются.

Любое разъяснение было бы очень полезно.


person bMikolaj    schedule 21.09.2018    source источник


Ответы (1)


Из документации по Локализация:

Как определяется текущий язык ????

ASP.NET MVC 5.x ????

Политика политики адресов автоматически определяет текущий язык в каждом веб-запросе и устанавливает культуру текущего потока (и культуру пользовательского интерфейса). Вот как ABP определяет его по умолчанию. БПС будет:

  • ...

  • Попробуйте получить его из специального значения cookie, которое по умолчанию называется "Abp.Localization.CultureName".

person aaron    schedule 22.09.2018