Perf: i18n ns (#1441)

* i18n

* fix: handle
This commit is contained in:
Archer
2024-05-10 18:41:41 +08:00
committed by GitHub
parent f351d4ea68
commit 26f4c92124
27 changed files with 1705 additions and 1595 deletions

View File

@@ -1,19 +1,18 @@
import React, { useState } from 'react';
import { Textarea, Button, ModalBody, ModalFooter } from '@chakra-ui/react';
import MyModal from '@fastgpt/web/components/common/MyModal';
import { useTranslation } from 'next-i18next';
import { useToast } from '@fastgpt/web/hooks/useToast';
import { useContextSelector } from 'use-context-selector';
import { WorkflowContext } from '../context';
import { useI18n } from '@/web/context/I18n';
type Props = {
onClose: () => void;
};
const ImportSettings = ({ onClose }: Props) => {
const { t } = useTranslation();
const { appT } = useI18n();
const { toast } = useToast();
const initData = useContextSelector(WorkflowContext, (v) => v.initData);
const [value, setValue] = useState('');
@@ -23,11 +22,11 @@ const ImportSettings = ({ onClose }: Props) => {
w={'600px'}
onClose={onClose}
iconSrc="/imgs/modal/params.svg"
title={t('app.Import Configs')}
title={appT('Import Configs')}
>
<ModalBody>
<Textarea
placeholder={t('app.Paste Config') || 'app.Paste Config'}
placeholder={appT('Paste Config')}
defaultValue={value}
rows={16}
onChange={(e) => setValue(e.target.value)}
@@ -46,7 +45,7 @@ const ImportSettings = ({ onClose }: Props) => {
onClose();
} catch (error) {
toast({
title: t('app.Import Configs Failed')
title: appT('Import Configs Failed')
});
}
}}

View File

@@ -28,6 +28,7 @@ import MyTooltip from '@fastgpt/web/components/common/MyTooltip';
import { useContextSelector } from 'use-context-selector';
import { WorkflowContext } from '../context';
import { useCreation } from 'ahooks';
import { useI18n } from '@/web/context/I18n';
type ModuleTemplateListProps = {
isOpen: boolean;
@@ -251,6 +252,8 @@ const RenderList = React.memo(function RenderList({
setCurrentParent
}: RenderListProps) {
const { t } = useTranslation();
const { appT } = useI18n();
const { isPc } = useSystemStore();
const { x, y, zoom } = useViewport();
const { setLoading } = useSystemStore();
@@ -323,7 +326,7 @@ const RenderList = React.memo(function RenderList({
const Render = useMemo(() => {
return templates.length === 0 ? (
<EmptyTip text={t('app.module.No Modules')} />
<EmptyTip text={appT('module.No Modules')} />
) : (
<Box flex={'1 0 0'} overflow={'overlay'} px={'20px'}>
<Box mx={'auto'}>

View File

@@ -203,16 +203,16 @@ const MyTargetHandle = React.memo(function MyTargetHandle({
if (connectingEdge?.handleId && !connectingEdge.handleId?.includes('source')) return false;
// From same source node
// From same source node and same handle
if (
connectedEdges.some(
(item) => item.source === connectingEdge?.nodeId && item.target === nodeId
(item) => item.sourceHandle === connectingEdge?.handleId && item.target === nodeId
)
)
return false;
return true;
}, [connectedEdges, connectingEdge?.handleId, connectingEdge?.nodeId, edges, node, nodeId]);
}, [connectedEdges, connectingEdge?.handleId, edges, node, nodeId]);
const RenderHandle = useMemo(() => {
return (

View File

@@ -22,6 +22,7 @@ import { storeNode2FlowNode } from '@/web/core/workflow/utils';
import { getNanoid } from '@fastgpt/global/common/string/tools';
import { useContextSelector } from 'use-context-selector';
import { WorkflowContext } from '../../../context';
import { useI18n } from '@/web/context/I18n';
type Props = FlowNodeItemType & {
children?: React.ReactNode | React.ReactNode[] | string;
@@ -38,6 +39,8 @@ type Props = FlowNodeItemType & {
const NodeCard = (props: Props) => {
const { t } = useTranslation();
const { appT } = useI18n();
const { toast } = useToast();
const {
@@ -66,7 +69,7 @@ const NodeCard = (props: Props) => {
// custom title edit
const { onOpenModal: onOpenCustomTitleModal, EditModal: EditTitleModal } = useEditTitle({
title: t('common.Custom Title'),
placeholder: t('app.module.Custom Title Tip') || ''
placeholder: appT('module.Custom Title Tip') || ''
});
const showToolHandle = useMemo(
@@ -105,7 +108,7 @@ const NodeCard = (props: Props) => {
onSuccess: (e) => {
if (!e) {
return toast({
title: t('app.modules.Title is required'),
title: appT('modules.Title is required'),
status: 'warning'
});
}
@@ -132,8 +135,8 @@ const NodeCard = (props: Props) => {
</Box>
);
}, [
nodeId,
showToolHandle,
nodeId,
avatar,
t,
name,
@@ -143,7 +146,8 @@ const NodeCard = (props: Props) => {
intro,
onOpenCustomTitleModal,
onChangeNode,
toast
toast,
appT
]);
return (