[英]Language Translation using Angular i18n
我在使用 i18n 进行角度语言翻译时遇到了一些问题。 对于验证,我从 REST API 获取了一些错误代码,我将基于错误代码的消息放入环境文件中。 我已经在组件 ts 文件中导入了文件。 环境文件看起来像
loginErrorMsg01EN:'Invalid Credentails!!',
loginErrorMsg01ES:'Credentails inválidos!!'
文件中的 html 行
<label align="center" class="error-text" i18n="@@loginErrorMsg">{{environment.loginErrorMsg01EN}}</label>
<source><x id="INTERPOLATION" equiv-text="{{environment.loginErrorMsg01EN}}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{environment.loginErrorMsg01ES}}"/></target>
但我没有收到西班牙语翻译文本。 只显示英文翻译。 请帮我解决这个问题。
如果我理解你想要正确做的事情,你就是
通过 ng serve 使用“配置”选项启动角度服务器。 (此时您还没有翻译)
应用程序运行后,您将在前端进行 REST 调用以获取数据并将这些数据放入环境文件中
这样对吗?
我可能弄错了,但我并不认为这就是翻译的工作方式。 每个 angular.io
i18n 模板翻译过程分为四个阶段:
在组件模板中标记静态文本消息以进行翻译。
创建翻译文件:使用 Angular CLI xi18n 命令将标记的文本 > 提取到行业标准的翻译源文件中。
编辑生成的翻译文件:将提取的文本翻译成目标语言。
将完成的翻译文件合并到应用程序中。 为此,请使用 Angular CLI build > 命令来编译应用程序,选择特定于语言环境的配置,或指定 >following 命令选项。
--i18nFile=path to the translation file
--i18nFormat=format of the translation file
--i18nLocale= locale id
该命令用翻译文本替换原始消息,并以目标语言生成应用程序的新 > 版本。
您需要为每种支持的语言构建和部署应用程序的单独版本。
我的理解是国际化发生在编译时。 构建过程将负责检查我们所有的“语言环境”文件并使用翻译更新您的各种模板。
这意味着您必须首先定义翻译文件,然后构建过程将为您选择的特定语言创建分发文件。
很可能我弄错了,并且支持您尝试进行的操作。 在这种情况下,我今天会学到一些新东西。 我只是不知道这种方法。
更新:
显然,这种类型的运行时转换是可能的。 看起来ngx-tgraslate是专门为这种类型的场景设计的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.