Skip to content

Commit 31e41c2

Browse files
authored
FIXED: default to en locale if preferred locale is not available fixes #167 (#168)
1 parent 9b32cec commit 31e41c2

File tree

3 files changed

+30
-31
lines changed

3 files changed

+30
-31
lines changed

package-lock.json

Lines changed: 20 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/locale/i18n.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,6 @@ i18next.on('languageChanged', () => {
3737
ipcRenderer.send('languageChanged', i18next.t('APP_MENUS', { returnObjects: true }));
3838
});
3939

40-
export { i18next };
40+
const languageList = Object.keys(locales);
41+
42+
export { i18next, languageList };

src/state/settingsState.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { observable, action } from "mobx";
22
import { remote } from 'electron';
33
import { JSObject } from "../components/Log";
4-
import { i18next } from '../locale/i18n';
4+
import { i18next, languageList } from '../locale/i18n';
55
import { isMojave, isWin, isMac, defaultFolder } from '../utils/platform';
66

77
const { systemPreferences } = remote;
@@ -71,19 +71,15 @@ export class SettingsState {
7171
lang = remote.app.getLocale();
7272
}
7373

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+
}
8179

8280
// finally set requested language
8381
i18next.changeLanguage(lang);
8482

85-
console.log('setting language to', i18next.language);
86-
8783
this.lang = i18next.language;
8884
}
8985

@@ -118,6 +114,7 @@ export class SettingsState {
118114
@action
119115
loadAndUpgradeSettings(): JSObject {
120116
let settings = this.getParam(APP_STORAGE_KEY);
117+
121118
// no settings set: first time the app is run
122119
if (settings === null) {
123120
settings = this.getDefaultSettings();

0 commit comments

Comments
 (0)