import axiosInstance from './interceptor'; // 获取多语言列表接口 export interface LanguageItem { language: string; // en, zh display: string; // English, 简体中文 } export interface LanguageListResponse { code: string; data: LanguageItem[]; description: string; solution: string; } // 修改系统语言接口 export interface ChangeLanguageRequest { lang: string; // en_US, zh_CN } export interface ChangeLanguageResponse { code: string; description: string; solution: string; data: Record; } // 语言代码映射:简短代码 -> 完整代码 const languageMap: Record = { en: 'en_US', zh: 'zh_CN', }; /** * 将简短语言代码转换为完整语言代码 * @param shortCode 简短代码 (en, zh) * @returns 完整代码 (en_US.UTF-8, zh_CN.UTF-8) */ export function mapLanguageCode(shortCode: string): string { return languageMap[shortCode] || shortCode; } /** * 获取多语言列表 * @returns Promise */ export function getLanguageList(): Promise<{ data: LanguageListResponse }> { return axiosInstance.get('/pub/language'); } /** * 修改系统语言 * @param language 语言简短代码 (en, zh) * @returns Promise */ export function changeLanguage( language: string ): Promise<{ data: ChangeLanguageResponse }> { const fullLanguageCode = mapLanguageCode(language); return axiosInstance.post('/auth/manage/language', { lang: fullLanguageCode, }); }