我目前正在研究我的 Angular 应用程序的国际化。我使用 AOT 编译 xlf 文件来创建预编译的应用程序,如所述 here .在构建中,我提供了特定于语言的基础 href(使用 --base-href
参数)。例如,这意味着我最终得到了两个使用以下 url 路径的特定于语言的应用程序:
- /app_path/en/...
- /app_path/de/...
现在我想通过在事件 url 中将 en
替换为 de
来提供指向我的应用程序中相应替代语言的链接。我使用了 Router 注入(inject),所以我可以访问它的 url 属性,但是这个属性没有给我完整的 url,包括 base-href。
如何从 Angular 应用程序中找到基本 url?
或者,有没有办法找出应用程序的构建语言?我能否以某种方式从 xliff 文件访问目标语言属性?
最佳答案
当您为各种语言编译您的应用程序时,您在 ng 构建过程中设置了语言环境:
./node_modules/.bin/ngc --i18nFile=./locale/messages.es.xlf --locale=es --i18nFormat=xlf
您可以通过将其注入(inject)您的组件来访问此语言环境:
import { Inject, LOCALE_ID } from '@angular/core';
...
constructor(@Inject(LOCALE_ID) locale: string, ...
然后您可以使用语言环境字符串来确定当前语言。在上面的示例中,语言环境设置为“es”
希望对你有帮助
关于angular - 如何通过 aot 编译在 Angular 中提供备用 i18n 语言链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158384/