【问题标题】:Sailsjs req.setLocale outside controllerSailsjs req.setLocale 外部控制器
【发布时间】:2017-08-06 13:39:48
【问题描述】:

我想在 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。

【问题讨论】:

    标签: node.js cron sails.js locale


    【解决方案1】:

    这取决于您使用的 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);
    

    将再次为您提供默认 Sails 应用程序的 Bienvenue,同时确保之后将语言环境设置回默认值。这样您就不会意外更改所有后续调用 __ 的语言环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多