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) => )
}