feat(env, config, i18n): 增强环境配置与多语言支持

更新 .env.example,提供更清晰的 API 配置说明与本地开发环境配置指引。
修改 next.config.ts:支持动态解析允许的开发环境来源(origins),提升配置灵活性。
重构 admin-language-switcher:优化语言切换同步机制,确保语言变更能够及时生效。
优化英文、尼泊尔语与中文语言包中的错误提示文案,进一步明确 API 配置要求。
精简 admin-http.ts:将 API Base URL 校验逻辑抽离至独立模块并统一导出,提升代码可维护性。
This commit is contained in:
2026-05-29 09:17:37 +08:00
parent 0bfcf6c59c
commit 27727f6371
10 changed files with 76 additions and 19 deletions

View File

@@ -30,15 +30,21 @@ const LOCALE_FLAGS: Record<AdminApiLocale, string> = {
export function AdminLanguageSwitcher() {
const { i18n, t } = useTranslation("common");
const [locale, setLocale] = useState<AdminApiLocale>(() =>
typeof document !== "undefined" ? getAdminRequestLocale() : "en",
);
// Match SSR: do not read document/localStorage until after mount.
const [locale, setLocale] = useState<AdminApiLocale>("en");
useEffect(() => {
queueMicrotask(() => {
const syncLocale = () => {
setLocale(getAdminRequestLocale());
});
}, []);
};
syncLocale();
i18n.on("languageChanged", syncLocale);
return () => {
i18n.off("languageChanged", syncLocale);
};
}, [i18n]);
async function onSelectLocale(next: AdminApiLocale) {
applyAdminUiLocale(next);