diff --git a/src/pages/use/login/index.tsx b/src/pages/use/login/index.tsx
index e595ff7..006cab7 100644
--- a/src/pages/use/login/index.tsx
+++ b/src/pages/use/login/index.tsx
@@ -1,22 +1,38 @@
import { Layout, Tabs, Input, Button, Typography, Row, Col, Form } from "antd";
-import { QrcodeOutlined, UserOutlined, LockOutlined } from "@ant-design/icons";
-import SelectLang from "@/components/select-lang";
+import { UserOutlined, LockOutlined } from "@ant-design/icons";
import { createFileRoute, useNavigate } from "@tanstack/react-router";
-import { useAtom, useAtomValue } from "jotai";
-import { useTranslation } from "@/i18n.ts";
-import {
- emailCodeAtom,
- emailLoginAtom,
- telegramCodeAtom,
- telegramLoginAtom,
- upLoginAtom,
-} from "@/store/system/user.ts";
+import { useAtomValue } from "jotai";
+import { emailLoginAtom, telegramLoginAtom, upLoginAtom } from "@/store/system/user.ts";
import React, { memo, useEffect, useLayoutEffect, useState } from "react";
import systemServ from "@/service/system.ts";
+import { t } from "i18next";
const { Title, Text, Link } = Typography;
const { TabPane } = Tabs;
+const i18nPrefix = "login";
+
const Login = memo(() => {
+ const languageSet = {
+ 邮箱密码登录: t(`${i18nPrefix}.emailPasswordLogin`, "邮箱密码登录"),
+ 向量检索服务免费试用: t(`${i18nPrefix}.vectorRetrievalServiceFreeTrial`, "向量检索服务免费试用"),
+ 免费试用向量检索服务玩转大模型生成式检索: t(
+ `${i18nPrefix}.freeTrialVectorRetrievalService`,
+ "免费试用向量检索服务,玩转大模型生成式检索",
+ ),
+ 查看详情: t(`${i18nPrefix}.viewDetails`, "查看详情 >"),
+ 请输入邮箱: t(`${i18nPrefix}.pleaseEnterEmail`, "请输入邮箱"),
+ 请输入登录密码: t(`${i18nPrefix}.pleaseEnterPassword`, "请输入登录密码"),
+ 登录: t(`${i18nPrefix}.login`, "登录"),
+ 邮箱验证登录: t(`${i18nPrefix}.emailVerificationLogin`, "邮箱验证登录"),
+ 获得验证码: t(`${i18nPrefix}.getVerificationCode`, "获得验证码"),
+ 请输入验证码: t(`${i18nPrefix}.pleaseEnterVerificationCode`, "请输入验证码"),
+ 飞机验证登录: t(`${i18nPrefix}.telegramVerificationLogin`, "飞机验证登录"),
+ 获得飞机验证码: t(`${i18nPrefix}.getTelegramVerificationCode`, "获得飞机验证码"),
+ 请输入飞机验证码: t(`${i18nPrefix}.pleaseEnterTelegramVerificationCode`, "请输入飞机验证码"),
+ 注册: t(`${i18nPrefix}.register`, "注册"),
+ 忘记密码: t(`${i18nPrefix}.forgotPassword`, "忘记密码"),
+ };
+
const navigate = useNavigate();
const [upform] = Form.useForm();
const [emailform] = Form.useForm();
@@ -100,10 +116,10 @@ const Login = memo(() => {
- 向量检索服务免费试用
- 免费试用向量检索服务,玩转大模型生成式检索
+ {languageSet.向量检索服务免费试用}
+ {languageSet.免费试用向量检索服务玩转大模型生成式检索}
- 查看详情 >
+ {languageSet.查看详情}
{
}}
>
-
+
- } />
+
+ } />
-
+
}
autoComplete="off"
/>
- {/**/}
- {/* } />*/}
- {/**/}
-
+
+
}
addonAfter={
}
/>
-
+
}
autoComplete="off"
/>
-
+
+
}
addonAfter={
}
/>
-
+
}
autoComplete="off"
/>
@@ -220,11 +233,11 @@ const Login = memo(() => {
}}
onClick={() => navigate({ to: "/register" })}
>
- 注册
+ {languageSet.注册}
- navigate({ to: "/pwdRetrieve" })}>忘记密码
+ navigate({ to: "/pwdRetrieve" })}>{languageSet.忘记密码}
diff --git a/src/pages/use/password/retrieve.tsx b/src/pages/use/password/retrieve.tsx
index 31a4baa..aa424f4 100644
--- a/src/pages/use/password/retrieve.tsx
+++ b/src/pages/use/password/retrieve.tsx
@@ -1,13 +1,32 @@
-import {Layout, Input, Button, Typography, Row, Col, Form, message, Modal} from "antd";
+import { Layout, Input, Button, Typography, Row, Col, Form, message, Modal } from "antd";
import { LockOutlined, MailOutlined, SecurityScanOutlined } from "@ant-design/icons";
import { createFileRoute, useNavigate } from "@tanstack/react-router";
-import { useAtomValue } from "jotai";
import React, { memo, useEffect, useState } from "react";
-import { emailCodeAtom } from "@/store/system/user.ts";
import { passwordRules } from "@/pages/use/useTools.tsx";
-import { useAtom } from "jotai/index";
import systemServ from "@/service/system.ts";
-import { setToken } from "@/store/system.ts";
+import { t } from "i18next";
+
+const languageSet = {
+ 向量检索服务免费试用: t("pwdRetrieve.vectorRetrievalServiceFreeTrial", "向量检索服务免费试用"),
+ 免费试用向量检索服务玩转大模型生成式检索: t(
+ "pwdRetrieve.freeTrialVectorRetrievalService",
+ "免费试用向量检索服务,玩转大模型生成式检索",
+ ),
+ 查看详情: t("pwdRetrieve.viewDetails", "查看详情 >"),
+ 请输入邮箱: t("pwdRetrieve.pleaseEnterEmail", "请输入邮箱"),
+ 获得验证码: t("pwdRetrieve.getVerificationCode", "获得验证码"),
+ 秒后重试: t("pwdRetrieve.retryAfterSeconds", "秒后重试"),
+ 请输入验证码: t("pwdRetrieve.pleaseEnterVerificationCode", "请输入验证码"),
+ 请输入新密码: t("pwdRetrieve.pleaseEnterNewPassword", "请输入新密码"),
+ 请确认密码: t("pwdRetrieve.confirmPassword", "请确认密码"),
+ 两次输入的密码不一致: t("pwdRetrieve.passwordsDoNotMatch", "两次输入的密码不一致"),
+ 找回密码: t("pwdRetrieve.retrievePassword", "找回密码"),
+ 返回登录: t("pwdRetrieve.backToLogin", "返回登录"),
+ 修改成功: t("pwdRetrieve.changeSuccess", "修改成功"),
+ 确认: t("pwdRetrieve.confirm", "确认"),
+ 密码修改成功返回登录: t("pwdRetrieve.passwordChangeSuccess", "密码修改成功,返回登录。"),
+};
+
const { Title, Text, Link } = Typography;
const PwdRetrieve = memo(() => {
@@ -34,12 +53,9 @@ const PwdRetrieve = memo(() => {
const [countdown, setCountdown] = useState(0);
const [isButtonDisabled, setIsButtonDisabled] = useState(false);
-
-
-
const [gotoLoginModalVisible, SetGotoLoginModalVisible] = useState(false);
- const showGotoLoginModal= () => {
+ const showGotoLoginModal = () => {
SetGotoLoginModalVisible(true);
};
@@ -48,12 +64,6 @@ const PwdRetrieve = memo(() => {
navigate({ to: "/login" });
};
- // const gotoLoginModalHandleCancel = () => {
- // SetGotoLoginModalVisible(false);
- // };
- //
-
-
useEffect(() => {
if ((emailCodeData as any)?.code === 0) {
setCountdown(10);
@@ -63,7 +73,7 @@ const PwdRetrieve = memo(() => {
useEffect(() => {
if ((pwdRetrieveData as any)?.code === 0) {
- message.success("密码找回成功");
+ message.success(languageSet.密码修改成功返回登录);
showGotoLoginModal();
}
}, [pwdRetrieveData, navigate]);
@@ -97,10 +107,10 @@ const PwdRetrieve = memo(() => {
- 向量检索服务免费试用
- 免费试用向量检索服务,玩转大模型生成式检索
+ {languageSet.向量检索服务免费试用}
+ {languageSet.免费试用向量检索服务玩转大模型生成式检索}
- 查看详情 >
+ {languageSet.查看详情}
{
}}
>
+
}
addonAfter={
}
/>
-
- } autoComplete="off" />
+
+ }
+ autoComplete="off"
+ />
}
autoComplete="off"
/>
@@ -141,41 +156,46 @@ const PwdRetrieve = memo(() => {
name="confirmPassword"
dependencies={["password"]}
rules={[
- { required: true, message: "请确认密码" },
+ { required: true, message: languageSet.请确认密码 },
({ getFieldValue }) => ({
validator(_, value) {
if (!value || getFieldValue("password") === value) {
return Promise.resolve();
}
- return Promise.reject(new Error("两次输入的密码不一致"));
+ return Promise.reject(new Error(languageSet.两次输入的密码不一致));
},
}),
]}
>
- } autoComplete="off" />
+ }
+ autoComplete="off"
+ />
- navigate({ to: "/login" })}>返回登录
+ navigate({ to: "/login" })}>{languageSet.返回登录}
- 确认
- ,
- ]}
+ title={languageSet.修改成功}
+ visible={gotoLoginModalVisible}
+ onOk={gotoLoginModalHandleOk}
+ footer={[
+ ,
+ ]}
>
- 密码修改成功,返回登录。
+ {languageSet.密码修改成功返回登录}
);
diff --git a/src/pages/use/register/index.tsx b/src/pages/use/register/index.tsx
index cafd793..45690f7 100644
--- a/src/pages/use/register/index.tsx
+++ b/src/pages/use/register/index.tsx
@@ -1,11 +1,32 @@
import { Layout, Input, Button, Typography, Row, Col, Form } from "antd";
-import {LockOutlined, MailOutlined, SecurityScanOutlined, UserOutlined} from "@ant-design/icons";
+import { LockOutlined, MailOutlined, SecurityScanOutlined } from "@ant-design/icons";
import { createFileRoute, useNavigate } from "@tanstack/react-router";
import { useAtomValue } from "jotai";
import React, { memo, useEffect, useState } from "react";
import { emailRegisterAtom } from "@/store/system/user.ts";
import { passwordRules } from "@/pages/use/useTools";
import systemServ from "@/service/system.ts";
+import { t } from "i18next";
+
+const languageSet = {
+ 向量检索服务免费试用: t("register.vectorRetrievalServiceFreeTrial", "向量检索服务免费试用"),
+ 免费试用向量检索服务玩转大模型生成式检索: t(
+ "register.freeTrialVectorRetrievalService",
+ "免费试用向量检索服务,玩转大模型生成式检索",
+ ),
+ 查看详情: t("register.viewDetails", "查看详情 >"),
+ 请输入邮箱: t("register.pleaseEnterEmail", "请输入邮箱"),
+ 获得验证码: t("register.getVerificationCode", "获得验证码"),
+ 秒后重试: t("register.retryAfterSeconds", "秒后重试"),
+ 请输入验证码: t("register.pleaseEnterVerificationCode", "请输入验证码"),
+ 请输入密码: t("register.pleaseEnterPassword", "请输入密码"),
+ 请确认密码: t("register.confirmPassword", "请确认密码"),
+ 两次输入的密码不一致: t("register.passwordsDoNotMatch", "两次输入的密码不一致"),
+ 注册: t("register.register", "注册"),
+ 登录: t("register.login", "登录"),
+ 返回登录: t("register.backToLogin", "返回登录"),
+};
+
const { Title, Text, Link } = Typography;
const Register = memo(() => {
@@ -51,111 +72,126 @@ const Register = memo(() => {
}, []);
return (
-
-
-
-
-
- 向量检索服务免费试用
- 免费试用向量检索服务,玩转大模型生成式检索
-
- 查看详情 >
-
-
-
- }
- addonAfter={
-
- }
- />
-
-
- } autoComplete="off" />
-
-
- } autoComplete="off" />
-
- ({
- validator(_, value) {
- if (!value || getFieldValue("password") === value) {
- return Promise.resolve();
- }
- return Promise.reject(new Error("两次输入的密码不一致"));
- },
- }),
- ]}
- >
- } autoComplete="off" />
-
-