有谁知道一个例子或可以在这里解释 node.js 和 express 如何为多语言站点路由?我正在使用 i18n-node 进行翻译和文件夹,如路由( /es/、/de/ 等)用于不同语言。这都是静态路由,但我也有像apiRoutes.route('/user/profile')这样的路由在开头使用 'app' (app.get('/app/user/profile')所以请在你的回答中考虑这一点所以不是必要的路线:app.get('/es/app/user/profile')。
现在有 15 条这样的路线:
app.get('/terms', function(req, res) {
res.render('terms',{
...
});
});
如何为以下路线设置它:
app.get('/es/terms', function(req, res) {
res.render('terms',{
...
});
});
我是否应该复制此路线并为每个路线添加例如区域设置:
app.get('/es/terms', function(req, res) { res.render('terms',{ ... }); });或者应该做类似的事情:
if cookie['lang'] && cookie['lang'] is in locales // then redirect to /:lang/terms else // show default language in /terms if req.headers["accept-language"] && req.headers["accept-language"] // then redirect to /:lang/terms else //show default language in /terms或者我应该采取另一种方法来遵循良好做法或更好地尊重标准?
Miro 的回答: 如何在 node.js (express.js) 中获取浏览器语言?说我应该使用 app.all('*', ...
这就是我所需要的吗?,..仍然,它可能有语法错误,或者我对这两部分不太了解
var rxLocal = /^\/(de|en)/i;
...
app.get(/\/(de|en)\/login/i, routes.login);
提前致谢