|
1 | 1 | import { observable, action } from "mobx"; |
2 | 2 | import { remote } from 'electron'; |
3 | 3 | import { JSObject } from "../components/Log"; |
4 | | -import { i18next } from '../locale/i18n'; |
| 4 | +import { i18next, languageList } from '../locale/i18n'; |
5 | 5 | import { isMojave, isWin, isMac, defaultFolder } from '../utils/platform'; |
6 | 6 |
|
7 | 7 | const { systemPreferences } = remote; |
@@ -71,19 +71,15 @@ export class SettingsState { |
71 | 71 | lang = remote.app.getLocale(); |
72 | 72 | } |
73 | 73 |
|
74 | | - // Note: it seems i18next may not always |
75 | | - // have cached all languages, even though it will correctly work. |
76 | | - // Comment this out for now since it prevents locale other than English |
77 | | - // from working |
78 | | - // if (i18next.languages.indexOf(lang) < 0) { |
79 | | - // lang = 'en'; |
80 | | - // } |
| 74 | + // fallback to English if preferred language |
| 75 | + // isn't available |
| 76 | + if (languageList.indexOf(lang) < 0) { |
| 77 | + lang = 'en'; |
| 78 | + } |
81 | 79 |
|
82 | 80 | // finally set requested language |
83 | 81 | i18next.changeLanguage(lang); |
84 | 82 |
|
85 | | - console.log('setting language to', i18next.language); |
86 | | - |
87 | 83 | this.lang = i18next.language; |
88 | 84 | } |
89 | 85 |
|
@@ -118,6 +114,7 @@ export class SettingsState { |
118 | 114 | @action |
119 | 115 | loadAndUpgradeSettings(): JSObject { |
120 | 116 | let settings = this.getParam(APP_STORAGE_KEY); |
| 117 | + |
121 | 118 | // no settings set: first time the app is run |
122 | 119 | if (settings === null) { |
123 | 120 | settings = this.getDefaultSettings(); |
|
0 commit comments