我想在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。
答案 0 :(得分:4)
这取决于您使用的Sails版本。
对于Sails v0.12.x,动态指定语言环境的唯一方法是使用字典作为sails.__
的参数:
sails.__({ phrase: 'Welcome', locale: 'fr' })
将为您Bienvenue
提供默认的Sails应用。
此语法在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);
将再次为您Bienvenue
提供默认的Sails应用,同时确保之后将语言环境设置回默认值。这样,您就不会意外更改__
的所有后续调用的区域设置。