diff options
Diffstat (limited to 'electron/src/lib/i18n.js')
| -rw-r--r-- | electron/src/lib/i18n.js | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/electron/src/lib/i18n.js b/electron/src/lib/i18n.js index 886fd654..4f9395d7 100644 --- a/electron/src/lib/i18n.js +++ b/electron/src/lib/i18n.js @@ -1,9 +1,27 @@ -module.exports.selectLanguage = function () { - ['LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'].forEach(language => { +module.exports.selectLanguage = function (translations) { + // get a list of available translations + var availableTranslations = ['en_US']; + for(var k in translations) availableTranslations.push(k); + + var lang = undefined; + + // get system language / Inkscape language + ['LANG', 'LC_MESSAGES', 'LC_ALL', 'LANGUAGE'].forEach(language => { if (process.env[language]) { - return process.env[language].split(":")[0] + // split encoding information, we don't need it + var current_lang = process.env[language].split(".")[0]; + if (current_lang.length == 2) { + // current language has only two letters (e.g. en), + // compare with available languages and if present, set to a long locale name (e.g. en_US) + lang = availableTranslations.find(elem => elem.startsWith(current_lang)); + } else { + lang = current_lang; + } } }) - - return "en_US" + // set default language + if (lang === undefined) { + lang = "en_US" + } + return lang } |
