Use correct locale, fall back to en if we don't have translations

FREEBIE
This commit is contained in:
Scott Nonnenberg 2017-05-15 14:48:19 -07:00
parent 18b8907c96
commit 4402a91976
No known key found for this signature in database
GPG key ID: A4931C09644C654B
5 changed files with 69 additions and 9 deletions

36
main.js
View file

@ -89,11 +89,39 @@ function createWindow () {
mainWindow.flashFrame(false);
});
// Load locale
const locale = 'en'; // FIXME
const localeData = JSON.parse(fs.readFileSync(path.join(__dirname, '_locales', locale, 'messages.json'), 'utf-8'))
function loadLocale() {
// possible locales: https://github.com/electron/electron/blob/master/docs/api/locales.md
const locale = app.getLocale();
if (/^en-/.test(locale)) {
return 'en';
}
return locale;
}
function loadLocaleMessages(locale) {
const onDiskLocale = locale.replace('-', '_');
const targetFile = path.join(__dirname, '_locales', onDiskLocale, 'messages.json');
return JSON.parse(fs.readFileSync(targetFile, 'utf-8'))
}
// Load locale - if we can't load messages for the current locale, we default to 'en'
var locale = loadLocale();
var messages;
try {
messages = loadLocaleMessages(locale);
}
catch (e) {
console.log('Problem loading messages for locale ', locale, e.stack);
locale = 'en';
messages = loadLocaleMessages(locale);
}
// Ingested in preload.js via a sendSync call
ipc.on('locale-data', function(event, arg) {
event.returnValue = localeData;
event.returnValue = messages;
});
function prepareURL(pathSegments) {