我已经使用Sails.js很长一段时间了,并且想知道是否有办法根据网址手动更改控制器的本地化。
示例:http://example.com/en
将返回英文版本,http://example.com/de
将返回德语版本。
感谢您的帮助!!
答案 0 :(得分:10)
您始终可以使用req.setLocale()
或设置req.locale
的值来更改控制器操作中的区域设置。您还可以使用策略更全面地处理此问题:
// config/routes.js
module.export.routes = {
'/:lang/': 'MyController.index',
'/:lang/help': 'MyController.help',
'/:lang/contact': 'MyController.contact',
...etc...
}
// config/policies.js
module.exports.policies = {
'*' : 'localize'
}
// api/policies/localize.js
module.exports = function(req, res, next) {
req.locale=req.param('lang');
next();
};
答案 1 :(得分:3)
将2020更新为@ sgress454的答案
// api / policies / localize.js`
module.exports = function(req, res, next) {
// This worked for testing
// You can use req.param('lang') instead of 'in'
req.setLocale('in');
next();
};