diff --git a/browser/lib/Languages.js b/browser/lib/Languages.js index f5262810..09a1614e 100644 --- a/browser/lib/Languages.js +++ b/browser/lib/Languages.js @@ -1,65 +1,75 @@ +const languages = [ + { + name: 'Albanian', + locale: 'sq' + }, + { + name: 'Chinese (zh-CN)', + locale: 'zh-CN' + }, + { + name: 'Chinese (zh-TW)', + locale: 'zh-TW' + }, + { + name: 'Danish', + locale: 'da' + }, + { + name: 'English', + locale: 'en' + }, + { + name: 'French', + locale: 'fr' + }, + { + name: 'German', + locale: 'de' + }, + { + name: 'Hungarian', + locale: 'hu' + }, + { + name: 'Japanese', + locale: 'ja' + }, + { + name: 'Korean', + locale: 'ko' + }, + { + name: 'Norwegian', + locale: 'no' + }, + { + name: 'Polish', + locale: 'pl' + }, + { + name: 'Portuguese', + locale: 'pt' + }, + { + name: 'Russian', + locale: 'ru' + }, + { + name: 'Spanish', + locale: 'es-ES' + } +] + module.exports = { - languages: [ - { - name: 'Albanian', - locale: 'sq' - }, - { - name: 'Chinese (zh-CN)', - locale: 'zh-CN' - }, - { - name: 'Chinese (zh-TW)', - locale: 'zh-TW' - }, - { - name: 'Danish', - locale: 'da' - }, - { - name: 'English', - locale: 'en' - }, - { - name: 'French', - locale: 'fr' - }, - { - name: 'German', - locale: 'de' - }, - { - name: 'Hungarian', - locale: 'hu' - }, - { - name: 'Japanese', - locale: 'ja' - }, - { - name: 'Korean', - locale: 'ko' - }, - { - name: 'Norwegian', - locale: 'no' - }, - { - name: 'Polish', - locale: 'pl' - }, - { - name: 'Portuguese', - locale: 'pt' - }, - { - name: 'Russian', - locale: 'ru' - }, - { - name: 'Spanish', - locale: 'es-ES' - } - ] + getLocales () { + return languages.reduce(function (localeList, locale) { + localeList.push(locale.locale) + return localeList + }, []) + }, + getLanguages () { + return languages + } } diff --git a/browser/lib/i18n.js b/browser/lib/i18n.js index ce94dfee..e12e2aa6 100644 --- a/browser/lib/i18n.js +++ b/browser/lib/i18n.js @@ -1,17 +1,12 @@ const path = require('path') const { remote } = require('electron') const { app } = remote -const { languages } = require('./Languages.js') - -let locales = languages.reduce(function (localeList, locale) { - localeList.push(locale.locale) - return localeList -}, []) +const { getLocales } = require('./Languages.js') // load package for localization const i18n = new (require('i18n-2'))({ // setup some locales - other locales default to the first locale - locales: locales, + locales: getLocales(), extension: '.json', directory: process.env.NODE_ENV === 'production' ? path.join(app.getAppPath(), './locales') diff --git a/browser/main/Main.js b/browser/main/Main.js index 1fa5ba2b..9f1c06e7 100644 --- a/browser/main/Main.js +++ b/browser/main/Main.js @@ -15,7 +15,7 @@ import eventEmitter from 'browser/main/lib/eventEmitter' import { hashHistory } from 'react-router' import store from 'browser/main/store' import i18n from 'browser/lib/i18n' -import { languages } from 'browser/lib/Languages' +import { getLocales } from 'browser/lib/Languages' const path = require('path') const electron = require('electron') const { remote } = electron @@ -153,12 +153,7 @@ class Main extends React.Component { document.body.setAttribute('data-theme', 'default') } - let locales = languages.reduce(function (localeList, locale) { - localeList.push(locale.locale) - return localeList - }, []) - - if (locales.indexOf(config.ui.language) !== -1) { + if (getLocales().indexOf(config.ui.language) !== -1) { i18n.setLocale(config.ui.language) } else { i18n.setLocale('en') diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index 189b1064..9c74255d 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -10,7 +10,7 @@ import CodeMirror from 'codemirror' import 'codemirror-mode-elixir' import _ from 'lodash' import i18n from 'browser/lib/i18n' -import { languages } from 'browser/lib/Languages' +import { getLanguages } from 'browser/lib/Languages' const OSX = global.process.platform === 'darwin' @@ -184,9 +184,7 @@ class UiTab extends React.Component { ref='uiLanguage' > { - languages.map((language) => { - return () - }) + getLanguages().map((language) => ) }