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:
97
src/i18n.tsx
97
src/i18n.tsx
@@ -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). */
|
||||
|
||||
Reference in New Issue
Block a user