1

我正在为我的项目使用 Angular4 i18n 支持将英语翻译成西班牙语。我生成的 messages.xlf 文件是 UTF-8 编码的。

<?xml version="1.0" encoding="UTF-8" ?>

我还有 2 个其他文件,其中包含已翻译文本的 messages.en.xlf 和 messages.es.xlf。这两个文件也有 UTF-8 编码。

Angular 项目 index.html 也有 UTF-8 编码。

  <meta charset="UTF-8">
  <meta http-equiv="Content-type" content="text/html; charset=UTF-8">

messages.es.xlf 中的翻译文本如下所示。

<trans-unit id="dashGeneric" datatype="html">
    <source>Generic</source>
    <target state="translated">Genérico</target>
    <context-group purpose="location">
      <context context-type="sourcefile">product.component.d.ts</context>
      <context context-type="linenumber">66</context>
    </context-group>
    <note priority="1" from="description">product- generic</note>
  </trans-unit>

翻译后的文本在浏览器中显示为Genérico。但它应该是Messages.es 文件中的Genérico

我在 notepad++ 中打开了消息文件,并确保它们以 UTF-8 编码。但仍然没有运气。有什么建议么?

4

2 回答 2

0

Add charset="UTF-8" to script tags which you are using to include the generated js files.

<script type="text/javascript" src=" source path " charset="UTF-8">

eg:
<script type="text/javascript" src="inline.bundle.js" charset="UTF-8"></script>
<script type="text/javascript" src="polyfills.bundle.js" charset="UTF-8"></script>
Note : Like the above example, add charset="UTF-8" for all the js files which you want to include

于 2017-09-27T06:40:54.290 回答
0

我通过在 tomcat 服务器 web.xml 文件中将 mime 类型设置为 charset=UTF-8 解决了这个问题。

链接到原始答案

于 2017-09-25T05:34:53.087 回答