Как сохранить состояние при переключении локали в AOT SPA Angular-i18n?

Я пытаюсь построить многоязычный SPA, используя файлы Angular-i18n, XLIFF и AOT. Я прочитал руководство по Angular, а также, например. Stackru после Angular 5 интернационализации и понимаем, что процесс i18n приведет к отдельным SPA, по одному на язык. Они будут размещены в папках.//.

Как я могу переключаться между этими SPA, не теряя своего состояния?

  1. Я знаю языковой стандарт пользователя только после того, как он / она вошел в систему. Я знаю, что есть языковой стандарт на основе браузера, но использование может выбрать языковой стандарт в SPA. Это место, которое имеет значение.
  2. Что делать, если пользователь обновляет свои настройки и меняет локаль?

В обоих случаях кажется, что мне придется перенаправить пользователя, например, из. myapp / en / index.html в myapp / pt / index.html. Это, однако, не перенесет состояние, т.е. на целевом сайте пользователь, скорее всего, не войдет в систему. Есть ли у Angular "лучшие практики" для этого варианта использования?

login( event ) {
    event.preventDefault();
    this.loginService.authenticate( this.loginFormGroup.value.username, this.loginFormGroup.value.password )
        .subscribe( result => {
            if ( result === LoginResponse.Success ) {
                // login successful
                this.router.navigate( ['/'] );
            } else if ( result === LoginResponse.NeedsNewPassword ) {
                this.router.navigate( ['/staticdata/changepassword'] );
            } else {
                this.loginFailed = true;
                throw ( new Error( 'Username or password is incorrect' ) );
            }
        },
        err => {
            this.loginFailed = true;
            this.store.dispatch( this.errorActions.setErrorContext( err ) );
        } );
}

Если я изменю this.router.navigate( ['/']) на window.location.href = currentPrincipal.locale + '/index.html' или аналогичный, участник увидит другую страницу входа, теперь в другой локали.

Спасибо Саймон

0 ответов

Другие вопросы по тегам