Локализация через куки в ASP.NET Boilerplate - PullRequest
0 голосов
/ 21 сентября 2018

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

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

Кажется довольно простым, но я не могу понять, почему файлы cookie отвечают за изменение языка,В компоненте 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 и соответственно менялись.

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

1 Ответ

0 голосов
/ 22 сентября 2018

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

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

ASP.NET MVC 5.x ?

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

  • ...

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

...