Angular翻译UTF8字符(pascalprecht.translate)

Akx*_*kxe 4 javascript utf-8 angularjs angular-translate

使用时我遇到UTF8字符问题SanitizeValueStrategy('sanitize').我必须使用它,因为客户端使用语言文件来编辑文本,他可能会使用像<b><i>...

需要使用json文件进行翻译.客户端不会触摸应用程序代码来更改任何文本.JSON文件:

{
    "H1": "Typy dom?",
    "NAME": "K?estní"
}
Run Code Online (Sandbox Code Playgroud)

只有在使用角度插值时才会出现问题:

<h1 translate>houseTypes.H1</h1>
Typy dom?
Run Code Online (Sandbox Code Playgroud)

我可以使用这种方法将文本放在元素的主体内部,但这些问题仍然存在于属性中.

<input placeholder="'houseTypes.NAME'|translate"></h1>
K&#345;estn&#237;
Run Code Online (Sandbox Code Playgroud)

问题是:
如何才能正确编写UTF8字符,而只在插值中使用JSON静态文件加载器,或者在属性中使用任何其他方式placeholder.

Akx*_*kxe 16

对于任何想要找到如何使UTF-8角色正常的人来说{{interpolations}},这就是这样做的方法:

$translateProvider.useSanitizeValueStrategy('sanitizeParameters');
Run Code Online (Sandbox Code Playgroud)

这样,即使在插值中也将始终进行消毒.


Joe*_*eph 5

您有两种选择:

  1. 使用策略sanitizeParameters,它只会清理动态参数,而不是实际的转换(模板).如果你控制了翻译(但不是动态值),这将有效.
  2. 使用策略转义(或escapeParameters),它不使用清理但转义.

对我来说,当我将SanitizeValueStrategy设置为null时,问题就解决了

$translateProvider.useSanitizeValueStrategy(null);
Run Code Online (Sandbox Code Playgroud)