我目前正在开发 Angular 应用程序的 i18n。我使用 AOT 编译 xlf 文件来创建预编译的应用程序,如下所述here https://angular.io/docs/ts/latest/cookbook/i18n.html。在构建中,我提供了特定于语言的基本 href(使用--base-href
帕姆)。例如,这意味着我最终会使用以下 url 路径得到两个特定于语言的应用程序:
- /应用程序路径/en/...
- /应用程序路径/de/...
现在,我想通过替换来提供指向应用程序中相应替代语言的链接en
by de
在活动网址中。我使用了 Router 注入,所以我可以访问它的 url 属性,但是这个属性没有给我完整的网址包括基本href。
如何从 Angular 应用程序中找到基本 URL?
或者,有没有办法找到应用程序的构建语言?我可以以某种方式从 xliff 文件访问目标语言属性吗?
当您为各种语言编译应用程序时,您可以在 ng 构建过程中设置区域设置:
./node_modules/.bin/ngc --i18nFile=./locale/messages.es.xlf --locale=es --i18nFormat=xlf
您可以通过将其注入到您的组件中来访问此区域设置:
import { Inject, LOCALE_ID } from '@angular/core';
...
constructor(@Inject(LOCALE_ID) locale: string, ...
然后您可以使用区域设置字符串来确定当前语言。在上面的示例中,区域设置设置为“es”
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)