Skip to content

Commit 3a8ae2e

Browse files
fix(ui): remove test ENGLISH locale and automatically reset invalid locale settings
1 parent 2a9ebed commit 3a8ae2e

3 files changed

Lines changed: 14 additions & 7 deletions

File tree

src/renderer/src/intl/index.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,17 @@ const locales = {
2727
'en-US': flattenMessages(enUS) as Record<MessageID, string>,
2828
'ja-JP': flattenMessages(jaJP) as Partial<Record<MessageID, string>>,
2929
'zh-TW': flattenMessages(zhTW) as Partial<Record<MessageID, string>>,
30-
ENGLISH: Object.fromEntries(
31-
Object.entries(flattenMessages(enUS)).map(([k, v]) => [k, v.toUpperCase()]),
32-
) as Partial<Record<MessageID, string>>,
3330
MessageID: Object.fromEntries(Object.keys(flattenMessages(enUS)).map((k) => [k, k])) as Record<
3431
MessageID,
3532
string
3633
>,
3734
};
3835
type Locale = keyof typeof locales;
3936

37+
export function isValidLocale(locale: string) {
38+
return Object.keys(locales).includes(locale) && locale !== 'MessageID';
39+
}
40+
4041
function getBestLocale(): Locale {
4142
const keys = Object.keys(locales) as [Locale, ...Locale[]];
4243
return (

src/renderer/src/lib/settings/appSettings.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { localStorageStore } from '@skeletonlabs/skeleton';
22
import { derived, get } from 'svelte/store';
3-
import { locale } from '../../intl';
3+
import { isValidLocale, locale } from '../../intl';
44
import stellarMapsApi from '../stellarMapsApi';
55
import { disableTranslatorMode, enableTranslatorMode } from '../translatorMode';
66

@@ -40,8 +40,15 @@ function loadSettings() {
4040
.then((settings) => appSettings.set(settings))
4141
.then(() => {
4242
appSettings.subscribe((settings) => {
43-
// update locale
44-
locale.set(settings.appLocale as Parameters<(typeof locale)['set']>[0]);
43+
// update locale if valid
44+
if (isValidLocale(settings.appLocale)) {
45+
locale.set(settings.appLocale as Parameters<(typeof locale)['set']>[0]);
46+
} else {
47+
// change settings if it somehow has an invalid locale
48+
appSettings.update((value) => ({ ...value, appLocale: get(locale) }));
49+
return;
50+
}
51+
4552
// write to file
4653
createAppConfigDirIfNeeded()
4754
.then(getAppSettingsPath)

src/renderer/src/lib/settings/appSettingsConfig.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export const appSettingsConfig: AppSettingConfig[] = [
77
tooltip: 'setting.appLocale_tooltip',
88
options: [
99
{ id: 'en-US', literalName: 'English' },
10-
{ id: 'ENGLISH', literalName: 'ENGLISH' },
1110
{ id: 'ja-JP', literalName: '日本語' },
1211
{ id: 'zh-TW', literalName: '中文(正體字)' },
1312
],

0 commit comments

Comments
 (0)