我正在尝试使用Angular-i18n,XLIFF文件和AOT构建多语言SPA。我读过the Angular guide以及例如。 the Stackoverflow post Angular 5 internationalization ,并了解i18n进程将导致单独的SPA,每种语言一个。这些将托管在./<locale>/ folders。
下如何在不丢失状态的情况下在这些SPA之间切换?
在这两种情况下,似乎我必须重定向用户,例如。 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'或类似内容,则主体将看到另一个登录页面,现在位于不同的区域设置。
由于 西蒙