Javascript 更改本地化

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

我使用Sails.js已经有一段时间了,我想知道是否有办法根据url从控制器手动更改本地化

示例:
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();

};