我有translation.service.ts
以不同语言显示我的网站。这样可行。现在,我想根据显示的语言添加类似/es/
或/en/
的网址。
我的service
是:
import { Injectable } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
@Injectable()
export class TranslationService {
constructor(
//Used for the internationalization
private translate: TranslateService,
) { }
switchLanguage(language: string) {
//If spanish
if (
language == "es" || language == "es-ar" || language == "es-bo" || language == "es-cl" ||
language == "es-co" || language == "es-cr" || language == "es-do" || language == "es-ec" ||
language == "es-sv" || language == "es-gt" || language == "es-hn" || language == "es-mx" ||
language == "es-ni" || language == "es-pa" || language == "es-py" || language == "es-pe" ||
language == "es-er" || language == "es-es" || language == "es-uy" || language == "es-ve") this.translate.use("es");
//If german
else if (language == "de" || language == "de-at" || language == "de-de" || language == "de-li" || language == "de-lu" || language == "de-ch" ) this.translate.use("de");
//if not, english
else this.translate.use("en");
}
}
更新:13/02/2018
我试过了:
APP-routing.module.ts
var language = navigator.language;
const routes: Routes = [
{ path: '', redirectTo: '/dashboard/'+language, pathMatch: 'full'},
{ path: 'dashboard/'+language, component: DashboardComponent },
}
但是我收到了错误:
错误错误:未捕获(在承诺中):错误:无法重定向到 ' /仪表板/:语言&#39 ;.找不到':语言'。错误:不能 重定向到' / dashboard /:语言'。找不到':语言'。
当我尝试时:
const routes: Routes = [
{ path: '', redirectTo: '/dasboard/:language', pathMatch: 'full'},
{ path: 'dashboard:language', redirectTo: '/dasboard/:language', component: DashboardComponent }
]
我明白了:
错误:路线'仪表板的配置无效:语言':redirectTo和组件不能一起使用
有什么建议吗?
答案 0 :(得分:1)
设置路线参数并导航到网址
this.router.navigate(['../', { language: language}]
您应该让路由配置包含language
参数,如下所示
{ path: '.../:language', redirectTo: '/..../:language' },