diff --git a/web/app/activate/activateForm.tsx b/web/app/activate/activateForm.tsx index 1e0917d4b6..87bc3bbb92 100644 --- a/web/app/activate/activateForm.tsx +++ b/web/app/activate/activateForm.tsx @@ -1,5 +1,6 @@ 'use client' import { useState } from 'react' +import { useContext } from 'use-context-selector' import { useTranslation } from 'react-i18next' import useSWR from 'swr' import { useSearchParams } from 'next/navigation' @@ -15,11 +16,13 @@ import { languageMaps, languages } from '@/utils/language' import { activateMember, invitationCheck } from '@/service/common' import Toast from '@/app/components/base/toast' import Loading from '@/app/components/base/loading' +import I18n from '@/context/i18n' const validPassword = /^(?=.*[a-zA-Z])(?=.*\d).{8,}$/ const ActivateForm = () => { const { t } = useTranslation() + const { locale } = useContext(I18n) const searchParams = useSearchParams() const workspaceID = searchParams.get('workspace_id') const email = searchParams.get('email') @@ -202,7 +205,7 @@ const ActivateForm = () => { {t('login.license.link')} diff --git a/web/app/components/app/overview/customize/index.tsx b/web/app/components/app/overview/customize/index.tsx index a24a5d5222..3b2506d3e2 100644 --- a/web/app/components/app/overview/customize/index.tsx +++ b/web/app/components/app/overview/customize/index.tsx @@ -94,7 +94,7 @@ const CustomizeModal: FC = ({ {t(`${prefixCustomize}.way2.name`)} window.open(`https://docs.dify.ai/${locale.toLowerCase()}/application/developing-with-apis`, '_blank')} + onClick={() => window.open(`https://docs.dify.ai/${locale === 'en' ? '' : `v/${locale.toLowerCase()}`}/application/developing-with-apis`, '_blank')} > {t(`${prefixCustomize}.way2.operation`)} diff --git a/web/app/components/header/account-about/index.tsx b/web/app/components/header/account-about/index.tsx index 7530f97626..36f6c983c7 100644 --- a/web/app/components/header/account-about/index.tsx +++ b/web/app/components/header/account-about/index.tsx @@ -2,12 +2,14 @@ import { useTranslation } from 'react-i18next' import classNames from 'classnames' import Link from 'next/link' +import { useContext } from 'use-context-selector' import s from './index.module.css' import Modal from '@/app/components/base/modal' import { XClose } from '@/app/components/base/icons/src/vender/line/general' import { Dify } from '@/app/components/base/icons/src/public/common' import type { LangGeniusVersionResponse } from '@/models/common' import { IS_CE_EDITION } from '@/config' +import I18n from '@/context/i18n' type IAccountSettingProps = { langeniusVersionInfo: LangGeniusVersionResponse @@ -22,6 +24,7 @@ export default function AccountAbout({ onCancel, }: IAccountSettingProps) { const { t } = useTranslation() + const { locale } = useContext(I18n) const isLatest = langeniusVersionInfo.current_version === langeniusVersionInfo.latest_version return ( @@ -48,8 +51,8 @@ export default function AccountAbout({ IS_CE_EDITION ? Open Source License : <> - Privacy Policy, - Terms of Service + Privacy Policy, + Terms of Service > } diff --git a/web/app/components/header/account-dropdown/index.tsx b/web/app/components/header/account-dropdown/index.tsx index 7387bb46f3..5e55fc3c47 100644 --- a/web/app/components/header/account-dropdown/index.tsx +++ b/web/app/components/header/account-dropdown/index.tsx @@ -97,7 +97,7 @@ export default function AppSelector() { {t('common.userProfile.helpCenter')} diff --git a/web/app/install/installForm.tsx b/web/app/install/installForm.tsx index cdc519d56d..b728478bb3 100644 --- a/web/app/install/installForm.tsx +++ b/web/app/install/installForm.tsx @@ -3,15 +3,18 @@ import React from 'react' import { useTranslation } from 'react-i18next' import Link from 'next/link' import { useRouter } from 'next/navigation' +import { useContext } from 'use-context-selector' import Toast from '../components/base/toast' import Button from '@/app/components/base/button' import { setup } from '@/service/common' +import I18n from '@/context/i18n' const validEmailReg = /^[\w\.-]+@([\w-]+\.)+[\w-]{2,}$/ const validPassword = /^(?=.*[a-zA-Z])(?=.*\d).{8,}$/ const InstallForm = () => { const { t } = useTranslation() + const { locale } = useContext(I18n) const router = useRouter() const [email, setEmail] = React.useState('') @@ -149,7 +152,7 @@ const InstallForm = () => { {t('login.license.link')} diff --git a/web/app/signin/normalForm.tsx b/web/app/signin/normalForm.tsx index a4af08e7fe..d28c7c0cee 100644 --- a/web/app/signin/normalForm.tsx +++ b/web/app/signin/normalForm.tsx @@ -5,12 +5,14 @@ import { useRouter } from 'next/navigation' import classNames from 'classnames' import useSWR from 'swr' import Link from 'next/link' +import { useContext } from 'use-context-selector' import Toast from '../components/base/toast' import style from './page.module.css' // import Tooltip from '@/app/components/base/tooltip/index' import { IS_CE_EDITION, apiPrefix } from '@/config' import Button from '@/app/components/base/button' import { login, oauth } from '@/service/common' +import I18n from '@/context/i18n' const validEmailReg = /^[\w\.-]+@([\w-]+\.)+[\w-]{2,}$/ @@ -60,6 +62,7 @@ function reducer(state: IState, action: { type: string; payload: any }) { const NormalForm = () => { const { t } = useTranslation() const router = useRouter() + const { locale } = useContext(I18n) const [state, dispatch] = useReducer(reducer, { formValid: false, @@ -269,13 +272,13 @@ const NormalForm = () => { {t('login.tos')} & {t('login.pp')} diff --git a/web/app/signin/oneMoreStep.tsx b/web/app/signin/oneMoreStep.tsx index c95e35d159..6604d83c3f 100644 --- a/web/app/signin/oneMoreStep.tsx +++ b/web/app/signin/oneMoreStep.tsx @@ -4,6 +4,7 @@ import { useTranslation } from 'react-i18next' import Link from 'next/link' import useSWR from 'swr' import { useRouter } from 'next/navigation' +import { useContext } from 'use-context-selector' import Button from '@/app/components/base/button' import Tooltip from '@/app/components/base/tooltip/index' @@ -12,6 +13,7 @@ import { timezones } from '@/utils/timezone' import { languageMaps, languages } from '@/utils/language' import { oneMoreStep } from '@/service/common' import Toast from '@/app/components/base/toast' +import I18n from '@/context/i18n' type IState = { formState: 'processing' | 'error' | 'success' | 'initial' @@ -45,6 +47,7 @@ const reducer = (state: IState, action: any) => { const OneMoreStep = () => { const { t } = useTranslation() const router = useRouter() + const { locale } = useContext(I18n) const [state, dispatch] = useReducer(reducer, { formState: 'initial', @@ -158,7 +161,7 @@ const OneMoreStep = () => { {t('login.license.link')}
{t(`${prefixCustomize}.way2.name`)}