feat(i18n): add internationalization support across multiple components
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { useState, useEffect, useCallback, useMemo } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import knowledgeService from '@/services/knowledge_service';
|
||||
import type { IKnowledge, IKnowledgeGraph, IKnowledgeResult } from '@/interfaces/database/knowledge';
|
||||
import type { IFetchKnowledgeListRequestBody, IFetchKnowledgeListRequestParams } from '@/interfaces/request/knowledge';
|
||||
@@ -80,6 +81,7 @@ export interface UseKnowledgeListReturn extends UseKnowledgeListState {
|
||||
export const useKnowledgeList = (
|
||||
initialParams?: IFetchKnowledgeListRequestParams & IFetchKnowledgeListRequestBody
|
||||
): UseKnowledgeListReturn => {
|
||||
const { t } = useTranslation();
|
||||
const [knowledgeBases, setKnowledgeBases] = useState<IKnowledge[]>([]);
|
||||
const [total, setTotal] = useState(0);
|
||||
const [loading, setLoading] = useState(false);
|
||||
@@ -137,10 +139,10 @@ export const useKnowledgeList = (
|
||||
setKnowledgeBases(data.kbs || []);
|
||||
setTotal(data.total || 0);
|
||||
} else {
|
||||
throw new Error(response.data.message || '获取知识库列表失败');
|
||||
throw new Error(response.data.message || t('knowledgeHooks.fetchKnowledgeListFailed'));
|
||||
}
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '获取知识库列表失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.fetchKnowledgeListFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to fetch knowledge bases:', err);
|
||||
} finally {
|
||||
@@ -210,6 +212,7 @@ export const useKnowledgeList = (
|
||||
* 知识库详情Hook
|
||||
*/
|
||||
export const useKnowledgeDetail = (kbId: string) => {
|
||||
const { t } = useTranslation();
|
||||
const [knowledge, setKnowledge] = useState<IKnowledge | null>(null);
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
@@ -232,10 +235,10 @@ export const useKnowledgeDetail = (kbId: string) => {
|
||||
if (response.data.code === 0) {
|
||||
setKnowledge(response.data.data);
|
||||
} else {
|
||||
throw new Error(response.data.message || '获取知识库详情失败');
|
||||
throw new Error(response.data.message || t('knowledgeHooks.fetchKnowledgeDetailFailed'));
|
||||
}
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '获取知识库详情失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.fetchKnowledgeDetailFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to fetch knowledge detail:', err);
|
||||
} finally {
|
||||
@@ -255,10 +258,10 @@ export const useKnowledgeDetail = (kbId: string) => {
|
||||
if (response.data.code === 0) {
|
||||
setKnowledgeGraph(response.data.data);
|
||||
} else {
|
||||
throw new Error(response.data.message || '获取知识库图失败');
|
||||
throw new Error(response.data.message || t('knowledgeHooks.fetchKnowledgeGraphFailed'));
|
||||
}
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '获取知识库图失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.fetchKnowledgeGraphFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to fetch knowledge graph:', err);
|
||||
} finally {
|
||||
@@ -286,6 +289,7 @@ export const useKnowledgeDetail = (kbId: string) => {
|
||||
* 提供创建、更新、删除知识库的功能
|
||||
*/
|
||||
export const useKnowledgeOperations = () => {
|
||||
const { t } = useTranslation();
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
||||
@@ -302,10 +306,10 @@ export const useKnowledgeOperations = () => {
|
||||
if (response.data.code === 0) {
|
||||
return response.data.data;
|
||||
} else {
|
||||
throw new Error(response.data.message || '创建知识库失败');
|
||||
throw new Error(response.data.message || t('knowledgeHooks.createKnowledgeFailed'));
|
||||
}
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '创建知识库失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.createKnowledgeFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to create knowledge:', err);
|
||||
throw err;
|
||||
@@ -330,10 +334,10 @@ export const useKnowledgeOperations = () => {
|
||||
if (response.data.code === 0) {
|
||||
return response.data.data;
|
||||
} else {
|
||||
throw new Error(response.data.message || '更新知识库基础信息失败');
|
||||
throw new Error(response.data.message || t('knowledgeHooks.updateKnowledgeBasicInfoFailed'));
|
||||
}
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '更新知识库基础信息失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.updateKnowledgeBasicInfoFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to update knowledge basic info:', err);
|
||||
throw err;
|
||||
@@ -362,10 +366,10 @@ export const useKnowledgeOperations = () => {
|
||||
if (response.data.code === 0) {
|
||||
return response.data.data;
|
||||
} else {
|
||||
throw new Error(response.data.message || '更新知识库模型配置失败');
|
||||
throw new Error(response.data.message || t('knowledgeHooks.updateKnowledgeModelConfigFailed'));
|
||||
}
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '更新知识库模型配置失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.updateKnowledgeModelConfigFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to update knowledge model config:', err);
|
||||
throw err;
|
||||
@@ -387,10 +391,10 @@ export const useKnowledgeOperations = () => {
|
||||
if (response.data.code === 0) {
|
||||
return response.data.data;
|
||||
} else {
|
||||
throw new Error(response.data.message || '删除知识库失败');
|
||||
throw new Error(response.data.message || t('knowledgeHooks.deleteKnowledgeFailed'));
|
||||
}
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '删除知识库失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.deleteKnowledgeFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to delete knowledge:', err);
|
||||
throw err;
|
||||
@@ -422,6 +426,7 @@ export const useKnowledgeOperations = () => {
|
||||
* 提供批量删除等功能
|
||||
*/
|
||||
export const useKnowledgeBatchOperations = () => {
|
||||
const { t } = useTranslation();
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
||||
@@ -443,12 +448,12 @@ export const useKnowledgeBatchOperations = () => {
|
||||
.map(({ index }) => kbIds[index]);
|
||||
|
||||
if (failures.length > 0) {
|
||||
throw new Error(`删除失败的知识库: ${failures.join(', ')}`);
|
||||
throw new Error(`${t('knowledgeHooks.batchDeleteFailedKnowledgeBases')}: ${failures.join(', ')}`);
|
||||
}
|
||||
|
||||
return results;
|
||||
} catch (err: any) {
|
||||
const errorMessage = err.response?.data?.message || err.message || '批量删除知识库失败';
|
||||
const errorMessage = err.response?.data?.message || err.message || t('knowledgeHooks.batchDeleteKnowledgeFailed');
|
||||
setError(errorMessage);
|
||||
console.error('Failed to batch delete knowledge:', err);
|
||||
throw err;
|
||||
|
||||
Reference in New Issue
Block a user