Sailsjs改变了本地化

时间:2014-01-22 21:53:52

标签: javascript node.js localization sails.js

我已经使用Sails.js很长一段时间了,并且想知道是否有办法根据网址手动更改控制器的本地化。

示例:http://example.com/en将返回英文版本,http://example.com/de将返回德语版本。

感谢您的帮助!!

2 个答案:

答案 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();

};
相关问题