【问题标题】:Serve i18n translation angular cli gives English text服务 i18n 翻译 angular cli 提供英文文本
【发布时间】:2018-01-10 20:20:45
【问题描述】:

我非常关注the official i18n angular guide 的角度翻译。但是,当使用

提供应用程序时

g serve --aot --i18nFile=src/locale/messages.fr.xlf --i18nFormat=xlf --locale=fr

我仍然得到英文文本。

我有一个 messages.xlf 和 messages.fr.xlf :

src/messages.xlf

<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" datatype="plaintext" original="ng2.template">
    <body>
      <trans-unit id="welcome" datatype="html">
        <source>Hello!</source>
        <context-group purpose="location">
          <context context-type="sourcefile">app/app.component.ts</context>
          <context context-type="linenumber">2</context>
        </context-group>
        <note priority="1" from="description">user welcome</note>
      </trans-unit>
    </body>
  </file>
</xliff>

src/locale/messages.fr.xlf

<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" datatype="plaintext" original="ng2.template">
    <body>
      <trans-unit id="welcome" datatype="html">
        <source>Hello!</source>
                <target>Bonjour!</target>
        <context-group purpose="location">
          <context context-type="sourcefile">app/app.component.ts</context>
          <context context-type="linenumber">2</context>
        </context-group>
        <note priority="1" from="description">user welcome</note>
      </trans-unit>
    </body>
  </file>
</xliff>

还有我的测试应用模板:

<div i18n="user welcome@@welcome">Hello!</div>

【问题讨论】:

    标签: angular angular5 angular-i18n


    【解决方案1】:

    简单替换

    <div i18n="user welcome@@welcome">Hello!</div>
    

    <div i18n="user welcome@@welcome"></div>
    

    【讨论】:

    • 好像不是这样。执行上述操作时,没有任何显示。此外,官方文档在标签之间有文字。
    • 哼,你的文件重新生成了吗?如果您的标签放错了地方,那么翻译人员将无法找到它。它还在你文件的第 2 行吗?你的 FR 文件中有一个 language=en,替换它只是为了确定。
    • source-language="en"angular.io/guide/i18n 类似,代表源语言。然而,它也不适用于 fr。
    • 您的翻译行是否仍在文件的第 2 行?另外,您的文件是否在正确的文件夹中?你也可以试试命令--i18n-file而不是--i18nFile
    • ng serve --aot --i18n-file=./src/locale/messages.fr.xlf --i18n-format=xlf --locale=fr 的结果相同。是的,它在第 2 行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多