角度路由:是否可以为不同的语言使用不同的"路径"字符串?

Bog*_*gac 9 angular-routing angular

我正在做一个i18n Angular应用程序,到目前为止效果很好.

但是我有不同语言的相同路由字符串,这不是最好的SEO.

对于每种语言,路径数组的"路径"属性是否可能不同?

例如:

const appRoutesEN: Routes = [
  { path: 'crisis-center', component: CrisisListComponent },
  { path: 'hero/:id',      component: HeroDetailComponent },
  {
    path: 'heroes',
    component: HeroListComponent,
    data: { title: 'Heroes List' }
  },
  { path: '**', component: PageNotFoundComponent }
];
Run Code Online (Sandbox Code Playgroud)

是否可以定义appRoutesFR: Routes如果我可以使用它?我要注入LOCALE_ID路由模块吗?如果是这样的话?

Bog*_*gac 4

目前似乎没有简单的解决方案。如果找到的话我会更新。

Angular i18n 的人们正在努力集成代码级国际化,也许到那时。

我能想到的最佳解决方案是更改代码中的路由模块和routerLink模板中的属性以及代码其他部分中每种语言的所有链接,然后分别为每种语言构建应用程序。

一点也不理想。

更新

根据@estus的推荐,我尝试过Greentube/localize-router

我不高兴安装像@ngx-translate/coreand这样的依赖项@ngx-translate/http-loader,因为我使用的是 Angular i18n 实现/工具而不是 ngx-translate。

它会一直工作,直到它遇到具有子路由的延迟加载模块

因此,如果您没有任何带有子项的延迟加载模块,那么localize-router这是可行的方法。

更新

最新版本的 localize-router 现在支持延迟加载模块。

一旦程序翻译到达,Angular i18n 将得到支持。