angular typescript:在模板中翻译字符串文字

时间:2018-02-20 14:47:31

标签: angular typescript internationalization literals

我有以下链接:

<a (click)="modal.confirm('Do you want exit the system?', exit)" i18n>Sign out</a>

我想翻译字符串&#39;你想退出系统吗?&#39;,但我无法弄清楚如何实现它。这可能吗?

我在官方文档中找不到与此情况相关的任何内容: https://angular.io/guide/i18n

2 个答案:

答案 0 :(得分:1)

检查https://github.com/ngx-translate/core

如果您想在组件中使用它,则必须使用 instant 方法 代码是

translateService.instant('key');

其中key是来自语言环境文件的字符串

如果你想要它来自view / tempalte

<a (click)="modal.confirm('{{ "key" | translate }}', exit)" i18n>Sign out</a>

答案 1 :(得分:0)

我终于以这种方式解决了这个问题:

<a #signOutLink (click)="modal.confirm(signOutLink.dataset.message, exit)"
  i18n-data-message="@@signOutMessage" data-message="Do you want exit the system?"
  i18n-title="@@signOut" title="Sign out"><i class="fa fa-sign-out"></i></a>

或者,如果我们不想使用冗余数据绑定,我们可以使用以下方法:

<a (click)="modal.confirm($event.currentTarget.dataset.message, exit)"
  i18n-data-message="@@signOutMessage" data-message="Do you want exit the system?"
  i18n-title="@@signOut" title="Sign out"><i class="fa fa-sign-out"></i></a>

我使用默认消息初始化了data-message属性,然后使用i18n-data-message属性将消息转换为相应的语言。它起作用了。