summaryrefslogtreecommitdiff
path: root/electron/src/lib/i18n.js
blob: de56fc8f7ddd0cd2e658a5d35d2d69fabec5242f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * Authors: see git history
 *
 * Copyright (c) 2010 Authors
 * Licensed under the GNU GPL version 3.0 or later.  See the file LICENSE for details.
 *
 */

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]) {
      // 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;
      }
    }
  })
  // set default language
  if (lang === undefined) {
    lang = "en_US"
  }
  return lang
}