首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用i18n和ejs的客户端渲染

使用i18n和ejs的客户端渲染
EN

Stack Overflow用户
提问于 2017-06-15 05:35:00
回答 0查看 1.7K关注 0票数 2

我目前正在开发一个音乐平台,使用NodeJs、Express 4.0和EJS作为我的模板引擎。因为我们必须有一个播放器不断地通过我们的网站导航播放,对于SoundCloud,我的网站内容是通过AJAX调用动态加载的,获得JSON数据,html是用EJS客户端库呈现的客户端。

现在,我在第一个页面加载时发送所有模板,对于每个页面请求,我向服务器请求相应的JSON数据,并使用EJS库呈现它。

我已经在国际化方面工作了几个月,到目前为止,根据req.acceptsLanguages('fr', 'en'),我在初始页面加载时提供两套模板中的一套(在fr/或en/文件夹中),然后在客户端加载我的内容,如下所示:

代码语言:javascript
复制
$.get(view, function (data) { // data is a simple JSON object
    var html = ejs.render(templates.view, data); // Render with EJS client library
    $wrapper.html(html); // Set new HTML
});

虽然我有两套模板,并且每次模板改变时我都必须改变两个视图。它有点无聊,但主要是错误的来源(我现在只有两个翻译!)。我遇到了很棒的'i18n-node':https://github.com/mashpie/i18n-node,它允许只有一个模板,用独立的JSON文件(en.json,fr.json)加载正确的翻译。这个模块在第一次渲染时工作得很好,但当然,因为我没有客户端i18n支持或支持i18n的客户端ejs,所以我不能在之后渲染我的模板客户端(以及ejs或i18n)。

我检查了一下,但没有找到一个好的客户端i18n库,它可以在开始时加载locale.json文件,并相应地与ejs客户端一起呈现模板,你知道其中的一个吗?我在Angular和React上看到过类似的方式,但我没有使用这些方式。

或者也许我只是想错了?我也想过在服务器端呈现模板并直接发送HTML,但我读到过只发送有价值的轻量级JSON数据,然后在客户端呈现它在性能方面比发送完整的HTML更好,特别是对于移动设备,我希望保持这样。

有什么想法或来源吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44555115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档