2017-08-06 108 views
1

我想在cronjob調度程序中將語言環境設置爲默認語言之外的其他語言。 https://github.com/ghaiklor/sails-hook-cronSailsjs req.setLocale外部控制器

的調度的cronjob代碼看起來像這樣:

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

,但我不能設置語言環境,因爲它不是一個控制器,而是一種服務,我不能夠訪問全球req.setLocale。

回答

2

這取決於您使用的是哪個版本的Sails。

對於帆影v0.12.x,動態地指定一個區域,唯一的辦法是通過使用字典作爲參數sails.__

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

會給你Bienvenue帶有默認帆應用。

這句法不帆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與默認帆的應用程序,同時確保區域設置回之後默認爲默認值。這樣,您不會意外更改所有後續調用__的語言環境。