I've been using Sails.js for quite some time and was wondering if there is a way to manually change the localization from the controllers depending on the url.
Example: http://example.com/en
will return the English version and http://example.com/de
will return the German one.
Thanks for your help!!
You can always change the locale in a controller action by using req.setLocale()
or by setting the value of req.locale
. You can also handle this more globally by using a policy:
// 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();
};
Update 2020 to @sgress454's answer
// 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();
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With