【发布时间】:2017-02-08 21:40:48
【问题描述】:
刚开始使用 i18n 在 Node.js 中翻译我的网站。我有点不知道如何翻译在加载 DOM 和渲染玉文件后生成的文本(比如在用户单击按钮后)。
我了解 i18n 是一个服务器端模块,而我生成的新文本位于客户端。
如果有帮助,我也在运行 express。
我想做的是能够在客户端翻译由 javascript 生成的文本。考虑一个任意按钮:
INDEX.JADE
form.feedback-r
a#submitclientiddd.button.button-primary #{i18n.__('Reply')}
// Other Jade Stuff Here
script(src='javascripts/clientside.js', type='text/javascript')
CLIENT SIDE JS
$("#posts").on("submit", "form.feedback-r", function(e) {
actbutton.html("Sending").addClass("feedback").removeClass('send_reply').prop("disabled", true);
});
... AJAX FUNCTION REQUEST AND ON SUCCESS ...
actbutton.html("Reply").addClass("success-text").prop("disabled", false);
SERVER SIDE JS
res.render('index', { title: 'Page Title', i18n: res});
- jade 通过 i18n 渲染的第一个按钮文本 (i18n.__('Reply')) 并正确翻译
- 用户点击按钮
- 文本通过 jQuery 更改为“正在发送”,并在 AJAX 请求之后 返回“回复”
- 按钮文本不再翻译,因为它是动态的 生成
有没有办法在客户端使用 i18n 来解决这个问题? 在最理想的情况下,我只想在客户端这样做,但它不起作用:
actbutton.html(i18n.__('Reply'));
【问题讨论】:
标签: javascript node.js internationalization node-modules i18n-node