jas*_*per 8 html anchor node.js sails.js i18n-node
问题就是这一切.如果我将HTML直接放入(JSON格式的)翻译文件中,如下所示:
"test_html" : "click <a href='http://stackoverflow.com/'>here</a>",
Run Code Online (Sandbox Code Playgroud)
我在HTML中得到了这个:
click <a href='http://stackoverflow.com/'>here</a>
Run Code Online (Sandbox Code Playgroud)
我也试过在我的翻译文件中结合这个:
"test_html_placeholder" : "click %shere%s",
Run Code Online (Sandbox Code Playgroud)
在我的HTML中:
<%= __('test_html_placeholder', '<a href="http://stackoverflow.com">', '</a>') %>
Run Code Online (Sandbox Code Playgroud)
但得到了类似的结果.
我唯一可以上班的就是这种笨拙:
"test_html_pre" : "click ",
"test_html_link" : "here",
"test_html_post" : ".",
Run Code Online (Sandbox Code Playgroud)
有了这个:
<%= __('test_html_pre') %><a href="http://stackoverflow.com"><%= __('test_html_link') %></a><%= __('test_html_post') %>
Run Code Online (Sandbox Code Playgroud)
但它几乎不值得这么麻烦,而且在某些语言中的单词顺序会迫使我在我的翻译文件中放入一些空字符串,i18n-node似乎不喜欢它,因为它吐出了密钥(属性)遇到空字符串时的名称.
我也尝试使用"\"作为符号前面的转义字符,但是当我抬起风帆(重启服务器)时,我收到了无效的JSON错误.
任何想法,解决方法?我正在使用sails.js,这不是我的决定,但我坚持使用它,它带有i18n节点.在这个项目的当天晚些时候考虑使用另一个库,但并非完全不可能.
Mar*_*gel 12
除了即将讨论是否在语言文件中包含(html-)代码之外:
试着用
<%- __('<a href="#">click</a>') %>
Run Code Online (Sandbox Code Playgroud)
代替
<%= __('<a href="#">click</a>') %>
Run Code Online (Sandbox Code Playgroud)
在ejs(sails默认模板引擎)中,'<%='将转义任何html标签,而'<% - '将输出按原样放置而不触及它.我很确定你会在你的.json文件中找到未转义的html.i18n不进行任何转换,JSON.stringify()但几乎所有模板引擎都默认转义字符串以防止xssi.
| 归档时间: |
|
| 查看次数: |
2179 次 |
| 最近记录: |