From 53d1e7e6c7cd27c2812ffe073d3af68ad20be25f Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Thu, 20 Jul 2017 10:18:50 -0700 Subject: [PATCH] Load locale information only after application's 'ready' event FREEBIE --- app/locale.js | 44 +++++++++++++++++++++++++------------------- main.js | 7 ++++++- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/app/locale.js b/app/locale.js index cc2d7baf6..b0d7b2a2b 100644 --- a/app/locale.js +++ b/app/locale.js @@ -24,25 +24,31 @@ function getLocaleMessages(locale) { return JSON.parse(fs.readFileSync(targetFile, 'utf-8')); } -// Load locale - if we can't load messages for the current locale, we -// default to 'en' -// -// possible locales: -// https://github.com/electron/electron/blob/master/docs/api/locales.md -let localeName = normalizeLocaleName(app.getLocale()); -let messages; - -try { - messages = getLocaleMessages(localeName); -} catch (e) { - console.log('Problem loading messages for locale ', localeName, e.stack); - console.log('Falling back to en locale'); - - localeName = 'en'; - messages = getLocaleMessages(localeName); +function load() { + // Load locale - if we can't load messages for the current locale, we + // default to 'en' + // + // possible locales: + // https://github.com/electron/electron/blob/master/docs/api/locales.md + let localeName = normalizeLocaleName(app.getLocale()); + let messages; + + try { + messages = getLocaleMessages(localeName); + } catch (e) { + console.log('Problem loading messages for locale ', localeName, e.stack); + console.log('Falling back to en locale'); + + localeName = 'en'; + messages = getLocaleMessages(localeName); + } + + return { + name: localeName, + messages + }; } module.exports = { - name: localeName, - messages -} + load: load +}; diff --git a/main.js b/main.js index 56f9d3c6c..e50c62962 100644 --- a/main.js +++ b/main.js @@ -40,9 +40,14 @@ if (config.environment === 'production' && !process.mas) { const userConfig = require('./app/user_config'); let windowConfig = userConfig.get('window'); -const locale = require('./app/locale'); +const loadLocale = require('./app/locale').load; +let locale; function createWindow () { + if (!locale) { + locale = loadLocale(); + } + const windowOptions = Object.assign({ width: 800, height: 610,