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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user