首页 > 解决方案 > 使用 i18n 角度翻译列表项

问题描述

我一直在寻找一种方法来使用单个 id 翻译孔列表项,但我收到错误(xliff 解析错误中的错误:每个项目的意外标签(“)有任何解决方案

我试过这个:

app.component.html

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

翻译.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 并单独翻译来完成整个列表,但这会节省我一次翻译它们的时间,谢谢。

标签: angularinternationalization

解决方案


只需按照指南。正如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>

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


推荐阅读