首页 > 解决方案 > 以角度处理语言切换的正确方法

问题描述

我已将国​​际化 (i18n) 添加到我的 Angular 应用程序中。我希望它以这种方式工作:

为此,我使用了window.location.pathname = '/' + selectedLocale. 这样整个路径名就会被覆盖。

这在开发模式下运行良好。但是,我在将 Angular 应用程序部署到另一个后端服务器时遇到了一些问题。

后端服务器路由类似于以下内容:

我使用 ng build 构建了我的 Angular 应用程序并指定frontendbase href.

现在,当我运行后端服务器并点击http://host/frontend/时,主组件被加载,然后我被重定向到http://host/language我不希望它发生的事情。

我想是因为这window.location.pathname = '/' + selectedLocale件事。(在语言之间切换时相同)。

我怎样才能解决这个问题 ?有没有替代品window.location.pathname?就像在考虑前缀 (base href) 并且不覆盖整个内容的情况下以角度将语言附加到 URL 的正确方法一样。

另请注意,我在我的应用程序模块中添加了这个:

{ provide: APP_BASE_HREF, useValue: '/' + extractedLanguage },

有任何想法吗 ?谢谢您的帮助。

标签: javascriptangulardeploymentinternationalizationproduction-environment

解决方案


推荐阅读