复杂的报价在django模板翻译中逃脱

时间:2014-03-18 02:22:09

标签: python html django

我试图修复用法语查看页面时出现的错误。问题是法语翻译字符串中包含撇号,导致HTML字符串被不正确地关闭。

违规代码:

<select data-bind="
    optstr: [{value: 'none', label: '{% trans "String one" %}'},
             {value: 'open', label: '{% trans "String two" %}'}],
    value: actionType
"></select>

有没有更好的方法来构建这个或逃避trans调用返回的内容?

1 个答案:

答案 0 :(得分:3)

我通过单独进行翻译并使用escapejs过滤器来解决这个问题。

{% trans "String one" as string_one %}
{% trans "String two" as string_two %}
<select data-bind="
    optstr: [{value: 'none', label: '{{ string_one|escapejs }}'},
             {value: 'open', label: '{{ string_two|escapejs }}'}],
    value: actionType
"></select>