Skip to content

Commit 047e0e0

Browse files
committed
fix: normalize detected locale aliases #96
1 parent 2ad42f5 commit 047e0e0

1 file changed

Lines changed: 32 additions & 7 deletions

File tree

frontend/src/utils/i18nUtils.ts

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,36 @@
44
*/
55
export const normalizeLanguage = (lng: string): string => {
66
if (!lng) return "en_US";
7-
const lower = lng.toLowerCase();
8-
if (lower === "en-us" || lower === "en") return "en_US";
9-
if (lower === "zh-cn" || lower === "zh") return "zh_CN";
10-
if (lower === "ja-jp" || lower === "ja") return "ja_JP";
11-
if (lower === "ru-ru" || lower === "ru") return "ru_RU";
12-
if (lower === "zh-hk" || lower === "zhhk") return "zh_HK";
13-
return lng;
7+
const normalized = lng.trim().replace(/_/g, "-").toLowerCase();
8+
const aliases: Record<string, string> = {
9+
en: "en_US",
10+
"en-us": "en_US",
11+
zh: "zh_CN",
12+
"zh-cn": "zh_CN",
13+
"zh-hans": "zh_CN",
14+
"zh-hans-cn": "zh_CN",
15+
zhhk: "zh_HK",
16+
"zh-hk": "zh_HK",
17+
"zh-hant": "zh_HK",
18+
"zh-hant-hk": "zh_HK",
19+
"zh-tw": "zh_HK",
20+
ja: "ja_JP",
21+
"ja-jp": "ja_JP",
22+
ru: "ru_RU",
23+
"ru-ru": "ru_RU",
24+
ko: "ko_KR",
25+
"ko-kr": "ko_KR",
26+
fr: "fr_FR",
27+
"fr-fr": "fr_FR",
28+
de: "de_DE",
29+
"de-de": "de_DE",
30+
es: "es_ES",
31+
"es-es": "es_ES",
32+
pt: "pt_PT",
33+
"pt-pt": "pt_PT",
34+
it: "it_IT",
35+
"it-it": "it_IT",
36+
};
37+
38+
return aliases[normalized] || aliases[normalized.split("-")[0]] || "en_US";
1439
};

0 commit comments

Comments
 (0)