我试图修复用法语查看页面时出现的错误。问题是法语翻译字符串中包含撇号,导致HTML字符串被不正确地关闭。
违规代码:
<select data-bind="
optstr: [{value: 'none', label: '{% trans "String one" %}'},
{value: 'open', label: '{% trans "String two" %}'}],
value: actionType
"></select>
有没有更好的方法来构建这个或逃避trans
调用返回的内容?
答案 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>