Преглед изворни кода

feat: 实现多语言切换功能,支持语言列表获取和系统语言修改

- 新增语言 API (src/API/language.ts)
- 新增语言设置对话框组件 (src/components/LanguageSettingModal.tsx)
- 扩展 i18nSlice 添加语言管理状态 (src/states/i18nSlice.ts)
- 在 SystemZone 集成语言管理按钮 (src/layouts/SystemZone.tsx)
- 添加功能实现文档 (docs/实现/多语言切换功能.md)
sw пре 6 дана
родитељ
комит
e9e05dd4ba
3 измењених фајлова са 8 додато и 8 уклоњено
  1. 1 1
      src/API/language.ts
  2. 3 3
      src/components/LanguageSettingModal.tsx
  3. 4 4
      src/layouts/SystemZone.tsx

+ 1 - 1
src/API/language.ts

@@ -22,7 +22,7 @@ export interface ChangeLanguageResponse {
   code: string;
   description: string;
   solution: string;
-  data: {};
+  data: Record<string, never>;
 }
 
 // 语言代码映射:简短代码 -> 完整代码

+ 3 - 3
src/components/LanguageSettingModal.tsx

@@ -47,7 +47,7 @@ const LanguageSettingModal: React.FC<LanguageSettingModalProps> = ({
     }
   }, [languageError]);
 
-  const handleSave = async () => {
+  const handleSave = async (): Promise<void> => {
     if (!selectedLanguage) {
       message.warning('请选择一个语言');
       return;
@@ -66,11 +66,11 @@ const LanguageSettingModal: React.FC<LanguageSettingModalProps> = ({
     }
   };
 
-  const handleCancel = () => {
+  const handleCancel = (): void => {
     onClose();
   };
 
-  const handleLanguageChange = (value: string) => {
+  const handleLanguageChange = (value: string): void => {
     dispatch(setSelectedLanguage(value));
   };
 

+ 4 - 4
src/layouts/SystemZone.tsx

@@ -24,19 +24,19 @@ const SystemZone = forwardRef<HTMLDivElement, SystemZoneProps>(
     // 语言设置弹框状态管理
     const [languageModalVisible, setLanguageModalVisible] = useState(false);
 
-    const handleExitClick = () => {
+    const handleExitClick = (): void => {
       setExitModalVisible(true);
     };
 
-    const handleExitModalClose = () => {
+    const handleExitModalClose = (): void => {
       setExitModalVisible(false);
     };
 
-    const handleLanguageClick = () => {
+    const handleLanguageClick = (): void => {
       setLanguageModalVisible(true);
     };
 
-    const handleLanguageModalClose = () => {
+    const handleLanguageModalClose = (): void => {
       setLanguageModalVisible(false);
     };