Sailsjs req.setLocale 外部控制器
Sailsjs req.setLocale outside controller
我想在 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' })
将为您提供 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 应用程序,同时确保之后将语言环境设置回默认值。这样您就不会意外更改 __
.
所有后续调用的语言环境
我想在 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' })
将为您提供 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 应用程序,同时确保之后将语言环境设置回默认值。这样您就不会意外更改 __
.