Sailsjs req.setLocale外部控制器

我想在cronjob调度程序中将语言环境设置为除缺省语言之外的其他语言。 https://github.com/ghaiklor/sails-hook-cron

cronjob调度程序代码如下所示:

// ['seconds', 'minutes', 'hours', 'dayOfMonth', 'month', 'dayOfWeek'] module.exports.cron = { job: { schedule: '0 0 12 * * *', onTick: function() { SomeService.sendSms() }, timezone: 'Asia/Jerusalem' } } 

但我不能设置区域设置,因为它不是一个控制器,而是一个服务,我没有全局访问req.setLocale。

这取决于您正在使用哪个版本的Sails。

对于Sails v0.12.x,dynamic指定语言环境的唯一方法是使用字典作为参数来运行sails.__

 sails.__({ phrase: 'Welcome', locale: 'fr' }) 

会给你带有默认的Sails应用程序的Bienvenue

此语法在Sails 1.0中不可用,但可以使用sails.hooks.i18n.setLocale()更改当前语言环境:

 var curLocale = sails.hooks.i18n.getLocale(); sails.hooks.i18n.setLocale('fr'); sails.__('Welcome'); sails.hooks.i18n.setLocale(curLocale); 

将再次给你带有默认Sails应用程序的Bienvenue ,同时确保区域设置后来被设置回默认值。 这样,您不会意外更改__所有后续调用的语言环境。