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,动态指定区域设置的唯一方法是使用字典作为参数来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,同时确保之后将区域设置设置回默认值。 这样,您就不会意外更改所有后续调用的区域设置__

最新更新