通过 ASP.NET 样板中的 cookie 进行本地化

Localization via cookies in ASP.NET Boilerplate

我有一个问题,一个问题。

首先,我试图将登录屏幕语言和应用程序语言分开——这样当用户以德语注销时,登录屏幕是英语(反之亦然),而当他登录时,它不会将上述用户的应用程序语言恢复为英语。

看起来很简单,但我不明白为什么cookies负责改变语言。在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 时,语言不会切换,这没有任何意义。

重要说明:我更改了 app.component 中的 ngOnInit() 函数,以便从数据库 dbo.AbpSettings 中读取当前语言和用户语言并进行相应更改。

任何澄清都会很有帮助。

来自 Localization 上的文档:

How the Current Language is Determined

ASP.NET MVC 5.x

ABP automatically determines the current language in every web request and sets the current thread's culture (and UI culture). This is how ABP determines it by default. ABP will:

  • ...

  • Try to get it from a special cookie value, named "Abp.Localization.CultureName" by default.