Javascript 更改本地化
我使用Sails.js已经有一段时间了,我想知道是否有办法根据url从控制器手动更改本地化 示例:Javascript 更改本地化,javascript,node.js,localization,sails.js,Javascript,Node.js,Localization,Sails.js,我使用Sails.js已经有一段时间了,我想知道是否有办法根据url从控制器手动更改本地化 示例:http://example.com/en将返回英文版本和http://example.com/de将返回德语版本 谢谢你的帮助 您始终可以通过使用或设置req.locale的值来更改控制器操作中的区域设置。您还可以通过使用策略更全局地处理此问题: // config/routes.js module.export.routes = { '/:lang/': 'MyController.in
http://example.com/en
将返回英文版本和http://example.com/de
将返回德语版本
谢谢你的帮助 您始终可以通过使用或设置
req.locale
的值来更改控制器操作中的区域设置。您还可以通过使用策略更全局地处理此问题:
// config/routes.js
module.export.routes = {
'/:lang/': 'MyController.index',
'/:lang/help': 'MyController.help',
'/:lang/contact': 'MyController.contact',
...etc...
}
更新2020至@sgress454的答案 //api/policies/localize.js`
没有控制器就无法设置区域设置?比如sails.setLocale?我使用的是cronjob钩子,我无法通过这种方式访问req。@StasArshanski不太清楚你的意思——你能提出一个新问题,详细说明你要做什么吗?是的,这里是:API请求如何?例如:我们发送一个带有主体数据的post请求:{lang:'fr'},或者在请求头上设置一些内容。然后我们可以用法语返回文本?
// config/policies.js
module.exports.policies = {
'*' : 'localize'
}
// api/policies/localize.js
module.exports = function(req, res, next) {
req.locale=req.param('lang');
next();
};
module.exports = function(req, res, next) {
// This worked for testing
// You can use req.param('lang') instead of 'in'
req.setLocale('in');
next();
};