使用i18n angular翻译列表项

时间:2019-07-28 17:22:42

标签: angular internationalization

我一直在寻找一种使用单个ID转换孔列表项的方法,但我遇到了错误(xliff解析错误: 每个项目都有意外的标记(“)是否有解决方案

我已经尝试过:

app.component.html

<ul i18n="@@list"> <li> hello </li> <li> welcome </li> </ul>

translate.fr.xlf

 `<trans-unit id="list" datatype="html">
    <source>
        <li> hello </li>
        <li> welcome </li>
    </source>
    <target>
        <li> bonjour </li>
        <li> bienvenue </li>
    </target>
    <context-group purpose="location">
      <context context- type="sourcefile">
           src/app/app.component.html
      </context>
      <context context-type="linenumber">29</context>
    </context-group>
  </trans-unit>`

预期结果是该列表将从英语翻译为法语,但对于列表的每个项目,我一直收到此错误: xliff解析错误:错误的标记(“ 请为此提供任何解决方案,我仍然可以通过为每个项目添加一个ID来翻译整个列表并将其分别翻译,但这将为我节省大量时间一次翻译它们,谢谢。

1 个答案:

答案 0 :(得分:0)

只需遵循the guide。如指南所述,使用ng xi18n来生成消息文件,不会生成您在问题中发布的内容。我刚刚做了,这就是它生成的:

      <trans-unit id="list" datatype="html">
        <source>
  <x id="START_LIST_ITEM" ctype="x-li" equiv-text="&lt;li&gt;"/> hello <x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="&lt;/li&gt;"/>
  <x id="START_LIST_ITEM" ctype="x-li" equiv-text="&lt;li&gt;"/> welcome <x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="&lt;/li&gt;"/> 
</source>
        <context-group purpose="location">
          <context context-type="sourcefile">src/app/app.component.html</context>
          <context context-type="linenumber">9</context>
        </context-group>
      </trans-unit>

尊重该文件结构,我想一切都会按预期进行。