feat(i18n): add full ja/vi/id/ms translations and drop languageNames fallback

- Add complete dicts: src/locales/{ja,vi,id,ms}.ts (115 keys each)
- Remove languageNames override map; dict object now points directly to each locale
- i18n.tsx shrinks from ~414 lines to ~81 lines
This commit is contained in:
TerryM
2026-06-01 15:54:29 +08:00
parent 337d19e626
commit c53032155b
5 changed files with 534 additions and 87 deletions

View File

@@ -9,99 +9,22 @@ import { languageForHomePathname } from "./languageRoutes";
import type { Dict } from "./locales/types";
import { zhDict } from "./locales/zh-CN";
import { enDict } from "./locales/en";
import { jaDict } from "./locales/ja";
import { koDict } from "./locales/ko";
import { viDict } from "./locales/vi";
import { idDict } from "./locales/id";
import { msDict } from "./locales/ms";
export type Lang = "zh-CN" | "en" | "ja" | "ko" | "vi" | "id" | "ms";
const languageNames: Record<Lang, Dict> = {
"zh-CN": {
lang_zh_CN: "中文",
lang_en: "English",
lang_ja: "日本語",
lang_ko: "한국어",
lang_vi: "Tiếng Việt",
lang_id: "Bahasa Indonesia",
lang_ms: "Bahasa Melayu",
},
en: {
lang_zh_CN: "Chinese",
lang_en: "English",
lang_ja: "Japanese",
lang_ko: "Korean",
lang_vi: "Vietnamese",
lang_id: "Indonesian",
lang_ms: "Malay",
},
ja: {
brand: "ARK ライブラリー",
showMore: "すべて表示",
showLess: "閉じる",
lang_zh_CN: "中国語",
lang_en: "英語",
lang_ja: "日本語",
lang_ko: "韓国語",
lang_vi: "ベトナム語",
lang_id: "インドネシア語",
lang_ms: "マレー語",
},
ko: {
brand: "ARK 라이브러리",
showMore: "모두 보기",
showLess: "접기",
lang_zh_CN: "중국어",
lang_en: "영어",
lang_ja: "일본어",
lang_ko: "한국어",
lang_vi: "베트남어",
lang_id: "인도네시아어",
lang_ms: "말레이어",
},
vi: {
brand: "Thư viện ARK",
showMore: "Xem tất cả",
showLess: "Thu gọn",
lang_zh_CN: "Tiếng Trung",
lang_en: "Tiếng Anh",
lang_ja: "Tiếng Nhật",
lang_ko: "Tiếng Hàn",
lang_vi: "Tiếng Việt",
lang_id: "Tiếng Indonesia",
lang_ms: "Tiếng Mã Lai",
},
id: {
brand: "Perpustakaan ARK",
showMore: "Lihat semua",
showLess: "Tutup",
lang_zh_CN: "Bahasa Tionghoa",
lang_en: "Bahasa Inggris",
lang_ja: "Bahasa Jepang",
lang_ko: "Bahasa Korea",
lang_vi: "Bahasa Vietnam",
lang_id: "Bahasa Indonesia",
lang_ms: "Bahasa Melayu",
},
ms: {
brand: "Perpustakaan ARK",
showMore: "Lihat semua",
showLess: "Tutup",
lang_zh_CN: "Bahasa Cina",
lang_en: "Bahasa Inggeris",
lang_ja: "Bahasa Jepun",
lang_ko: "Bahasa Korea",
lang_vi: "Bahasa Vietnam",
lang_id: "Bahasa Indonesia",
lang_ms: "Bahasa Melayu",
},
};
const dict: Record<Lang, Dict> = {
"zh-CN": { ...zhDict, ...languageNames["zh-CN"] },
en: { ...enDict, ...languageNames.en },
ja: { ...enDict, ...languageNames.ja },
"zh-CN": zhDict,
en: enDict,
ja: jaDict,
ko: koDict,
vi: { ...enDict, ...languageNames.vi },
id: { ...enDict, ...languageNames.id },
ms: { ...enDict, ...languageNames.ms },
vi: viDict,
id: idDict,
ms: msDict,
};
/** Fixed locale lookup (admin UI uses Simplified Chinese). */