From 8dc24403d8892d5b0f84c31b57405c1a93bba1c1 Mon Sep 17 00:00:00 2001 From: river Date: Wed, 18 Sep 2024 22:05:51 +0800 Subject: [PATCH 01/23] chore: Update Chinese translation for API key placeholder --- app/locales/cn.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 0017e8e4243..2dee1351566 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -360,7 +360,7 @@ const cn = { ApiKey: { Title: "API 密钥", SubTitle: "从 Google AI 获取您的 API 密钥", - Placeholder: "输入您的 Google AI Studio API 密钥", + Placeholder: "Google AI API KEY", }, Endpoint: { From 2f0d94a46b6fbee2621bed9c1ba0670490b470d5 Mon Sep 17 00:00:00 2001 From: river Date: Thu, 19 Sep 2024 00:05:06 +0800 Subject: [PATCH 02/23] chore: add auth tip --- app/components/auth.module.scss | 4 ++++ app/components/auth.tsx | 10 +++++----- app/constant.ts | 2 ++ app/locales/cn.ts | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/components/auth.module.scss b/app/components/auth.module.scss index 6630c0613c7..c9c66f1a562 100644 --- a/app/components/auth.module.scss +++ b/app/components/auth.module.scss @@ -24,6 +24,10 @@ margin: 3vh 0; } + .auth-input-second { + margin: 0 0 3vh 0; + } + .auth-actions { display: flex; justify-content: center; diff --git a/app/components/auth.tsx b/app/components/auth.tsx index 57118349bac..9d10ae475e6 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -2,7 +2,7 @@ import styles from "./auth.module.scss"; import { IconButton } from "./button"; import { useNavigate } from "react-router-dom"; -import { Path } from "../constant"; +import { Path, SAAS_CHAT_URL } from "../constant"; import { useAccessStore } from "../store"; import Locale from "../locales"; @@ -16,6 +16,7 @@ export function AuthPage() { const goHome = () => navigate(Path.Home); const goChat = () => navigate(Path.Chat); + const goSaas = () => window.open(SAAS_CHAT_URL); const resetAccessCode = () => { accessStore.update((access) => { access.openaiApiKey = ""; @@ -65,7 +66,7 @@ export function AuthPage() { }} /> { - resetAccessCode(); - goHome(); + goSaas(); }} /> diff --git a/app/constant.ts b/app/constant.ts index acb744cad48..d97f3b209b6 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -501,3 +501,5 @@ export const PLUGINS = [ { name: "Stable Diffusion", path: Path.Sd }, { name: "Search Chat", path: Path.SearchChat }, ]; + +export const SAAS_CHAT_URL = "https://nextchat.dev/chat"; diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 2dee1351566..8bf2cf3a375 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -17,6 +17,7 @@ const cn = { Input: "在此处填写访问码", Confirm: "确认", Later: "稍后再说", + SaasTips: "配置太麻烦,想要立即使用", }, ChatItem: { ChatItemCount: (count: number) => `${count} 条对话`, From e4fda6cacfbaf863dcd54dcbabcb0d93088019f7 Mon Sep 17 00:00:00 2001 From: river Date: Thu, 19 Sep 2024 08:41:09 +0800 Subject: [PATCH 03/23] feat: add auth tip --- app/components/auth.module.scss | 13 ++++++++++++- app/components/auth.tsx | 12 +++++++++++- app/constant.ts | 2 +- app/locales/cn.ts | 3 ++- app/locales/en.ts | 2 ++ 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app/components/auth.module.scss b/app/components/auth.module.scss index c9c66f1a562..02c1f4292a7 100644 --- a/app/components/auth.module.scss +++ b/app/components/auth.module.scss @@ -1,12 +1,22 @@ .auth-page { display: flex; - justify-content: center; + justify-content: flex-start; align-items: center; height: 100%; width: 100%; flex-direction: column; + .auth-header { + display: flex; + justify-content: space-between; + width: 100%; + padding: 10px; + box-sizing: border-box; + animation: slide-in-from-top ease 0.3s; + } + .auth-logo { + margin-top: 10vh; transform: scale(1.4); } @@ -14,6 +24,7 @@ font-size: 24px; font-weight: bold; line-height: 2; + margin-bottom: 1vh; } .auth-tips { diff --git a/app/components/auth.tsx b/app/components/auth.tsx index 9d10ae475e6..c044fb0ac4d 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -9,6 +9,7 @@ import Locale from "../locales"; import BotIcon from "../icons/bot.svg"; import { useEffect } from "react"; import { getClientConfig } from "../config/client"; +import LeftIcon from "@/app/icons/left.svg"; export function AuthPage() { const navigate = useNavigate(); @@ -16,7 +17,9 @@ export function AuthPage() { const goHome = () => navigate(Path.Home); const goChat = () => navigate(Path.Chat); - const goSaas = () => window.open(SAAS_CHAT_URL); + const goSaas = () => { + window.location.href = SAAS_CHAT_URL; + }; const resetAccessCode = () => { accessStore.update((access) => { access.openaiApiKey = ""; @@ -33,6 +36,13 @@ export function AuthPage() { return (
+
+ } + text={Locale.Auth.Return} + onClick={() => navigate(Path.Home)} + > +
diff --git a/app/constant.ts b/app/constant.ts index d97f3b209b6..1ba3f94c23e 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -502,4 +502,4 @@ export const PLUGINS = [ { name: "Search Chat", path: Path.SearchChat }, ]; -export const SAAS_CHAT_URL = "https://nextchat.dev/chat"; +export const SAAS_CHAT_URL = "https://nextchat.dev"; diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 8bf2cf3a375..ae45cbf801b 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -11,9 +11,10 @@ const cn = { : "访问密码不正确或为空,请前往[登录](/#/auth)页输入正确的访问密码,或者在[设置](/#/settings)页填入你自己的 OpenAI API Key。", }, Auth: { + Return: "返回", Title: "需要密码", Tips: "管理员开启了密码验证,请在下方填入访问码", - SubTips: "或者输入你的 OpenAI 或 Google API 密钥", + SubTips: "或者输入你的 OpenAI 或 Google AI 密钥", Input: "在此处填写访问码", Confirm: "确认", Later: "稍后再说", diff --git a/app/locales/en.ts b/app/locales/en.ts index 63e244b9a81..ba94f5825b1 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -13,12 +13,14 @@ const en: LocaleType = { : "Unauthorized access, please enter access code in [auth](/#/auth) page, or enter your OpenAI API Key.", }, Auth: { + Return: "Return", Title: "Need Access Code", Tips: "Please enter access code below", SubTips: "Or enter your OpenAI or Google API Key", Input: "access code", Confirm: "Confirm", Later: "Later", + SaasTips: "Too Complex, Use Immediately Now", }, ChatItem: { ChatItemCount: (count: number) => `${count} messages`, From 065f015f7b87b65f522c913f95958c4f3392b97d Mon Sep 17 00:00:00 2001 From: river Date: Thu, 19 Sep 2024 09:53:00 +0800 Subject: [PATCH 04/23] feat: add error tip --- app/locales/cn.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/locales/cn.ts b/app/locales/cn.ts index ae45cbf801b..2c3eb7c27d2 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -1,5 +1,6 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; @@ -7,8 +8,14 @@ const cn = { WIP: "该功能仍在开发中……", Error: { Unauthorized: isApp - ? "检测到无效 API Key,请前往[设置](/#/settings)页检查 API Key 是否配置正确。" - : "访问密码不正确或为空,请前往[登录](/#/auth)页输入正确的访问密码,或者在[设置](/#/settings)页填入你自己的 OpenAI API Key。", + ? `😆 对话遇到了一些问题,不用慌,立刻带你排查: + \\ 1️⃣ 如果你是小白,想要开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️` + : `😆 对话遇到了一些问题,不用慌,立刻带你排查: + \ 1️⃣ 如果你是小白,想要开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ 如果你在使用私有部署的版本,点击[这里](/#/auth)输入访问秘钥 🔑 + \ 3️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️ + `, }, Auth: { Return: "返回", From 775794e0e4d770ff745f342744dd5d85e2bd2e25 Mon Sep 17 00:00:00 2001 From: river Date: Thu, 19 Sep 2024 12:38:46 +0800 Subject: [PATCH 05/23] chore: add setting --- app/components/settings.tsx | 25 +++++++++++++++++++++++++ app/icons/fire.svg | 1 + app/locales/cn.ts | 15 +++++++++++---- app/locales/en.ts | 21 +++++++++++++++++---- 4 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 app/icons/fire.svg diff --git a/app/components/settings.tsx b/app/components/settings.tsx index 33bf8b2e74e..8fbeb66054c 100644 --- a/app/components/settings.tsx +++ b/app/components/settings.tsx @@ -9,6 +9,7 @@ import CopyIcon from "../icons/copy.svg"; import ClearIcon from "../icons/clear.svg"; import LoadingIcon from "../icons/three-dots.svg"; import EditIcon from "../icons/edit.svg"; +import FireIcon from "../icons/fire.svg"; import EyeIcon from "../icons/eye.svg"; import DownloadIcon from "../icons/download.svg"; import UploadIcon from "../icons/upload.svg"; @@ -69,6 +70,7 @@ import { UPDATE_URL, Stability, Iflytek, + SAAS_CHAT_URL, } from "../constant"; import { Prompt, SearchService, usePromptStore } from "../store/prompt"; import { ErrorBoundary } from "./error"; @@ -686,6 +688,28 @@ export function Settings() { ); + const saasStartComponent = ( + + } + text={Locale.Settings.Access.SaasStart.ChatNow} + onClick={() => { + window.location.href = SAAS_CHAT_URL; + }} + /> + + ); + const useCustomConfigComponent = // Conditionally render the following ListItem based on clientConfig.isApp !clientConfig?.isApp && ( // only show if isApp is false + {saasStartComponent} {accessCodeComponent} {!accessStore.hideUserApiKey && ( diff --git a/app/icons/fire.svg b/app/icons/fire.svg new file mode 100644 index 00000000000..446d532aaca --- /dev/null +++ b/app/icons/fire.svg @@ -0,0 +1 @@ + diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 2c3eb7c27d2..001ee1d8fc7 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -8,12 +8,12 @@ const cn = { WIP: "该功能仍在开发中……", Error: { Unauthorized: isApp - ? `😆 对话遇到了一些问题,不用慌,立刻带你排查: - \\ 1️⃣ 如果你是小白,想要开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + ? `😆 对话遇到了一些问题,不用慌: + \\ 1️⃣ 如果你是小白,想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) \\ 2️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️` : `😆 对话遇到了一些问题,不用慌,立刻带你排查: - \ 1️⃣ 如果你是小白,想要开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) - \ 2️⃣ 如果你在使用私有部署的版本,点击[这里](/#/auth)输入访问秘钥 🔑 + \ 1️⃣ 如果你是小白,想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ 如果你正在使用私有部署版本,点击[这里](/#/auth)输入访问秘钥 🔑 \ 3️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️ `, }, @@ -306,6 +306,13 @@ const cn = { }, Access: { + SaasStart: { + Title: "使用 NextChat AI", + Label: "(性价比最高的方案)", + SubTitle: + "由 NextChat 官方维护, 零配置开箱即用,支持最新 GPT-4o、Gemini、Claude3 等最新大模型", + ChatNow: "立刻对话", + }, AccessCode: { Title: "访问密码", SubTitle: "管理员已开启加密访问", diff --git a/app/locales/en.ts b/app/locales/en.ts index ba94f5825b1..610a5bc09e4 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -1,7 +1,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import { LocaleType } from "./index"; - +import { SAAS_CHAT_URL } from "@/app/constant"; // if you are adding a new translation, please use PartialLocaleType instead of LocaleType const isApp = !!getClientConfig()?.isApp; @@ -9,8 +9,14 @@ const en: LocaleType = { WIP: "Coming Soon...", Error: { Unauthorized: isApp - ? "Invalid API Key, please check it in [Settings](/#/settings) page." - : "Unauthorized access, please enter access code in [auth](/#/auth) page, or enter your OpenAI API Key.", + ? `😆 Oops, there's an issue. No worries: + \\ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️` + : `😆 Oops, there's an issue. Let's fix it: + \ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Using a private setup? [Click here](/#/auth) to enter your key 🔑 + \ 3️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️ + `, }, Auth: { Return: "Return", @@ -303,6 +309,13 @@ const en: LocaleType = { NoAccess: "Enter API Key to check balance", }, Access: { + SaasStart: { + Title: "Use NextChat AI", + Label: " (Most Cost-Effective Option)", + SubTitle: + "Maintained by NextChat, zero setup needed, supports the latest models like GPT-4o, Gemini, Claude3, and more.", + ChatNow: "Start Now", + }, AccessCode: { Title: "Access Code", SubTitle: "Access control Enabled", @@ -463,7 +476,7 @@ const en: LocaleType = { ApiKey: { Title: "API Key", SubTitle: "Obtain your API Key from Google AI", - Placeholder: "Enter your Google AI Studio API Key", + Placeholder: "Google AI API Key", }, Endpoint: { From f4f3c6ad5a1be5ac86e712fafea537ede4cb4aaa Mon Sep 17 00:00:00 2001 From: river Date: Thu, 19 Sep 2024 12:47:09 +0800 Subject: [PATCH 06/23] chore: change placeholder --- app/locales/cn.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 001ee1d8fc7..3ef634bee6f 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -11,7 +11,7 @@ const cn = { ? `😆 对话遇到了一些问题,不用慌: \\ 1️⃣ 如果你是小白,想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) \\ 2️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️` - : `😆 对话遇到了一些问题,不用慌,立刻带你排查: + : `😆 对话遇到了一些问题,不用慌: \ 1️⃣ 如果你是小白,想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) \ 2️⃣ 如果你正在使用私有部署版本,点击[这里](/#/auth)输入访问秘钥 🔑 \ 3️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️ From 23793e834d0751ddae8f6513ff101e9274cfd388 Mon Sep 17 00:00:00 2001 From: river Date: Thu, 19 Sep 2024 12:53:43 +0800 Subject: [PATCH 07/23] chore: change placeholder --- app/locales/cn.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 3ef634bee6f..d7a20696184 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -9,10 +9,10 @@ const cn = { Error: { Unauthorized: isApp ? `😆 对话遇到了一些问题,不用慌: - \\ 1️⃣ 如果你是小白,想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) \\ 2️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️` : `😆 对话遇到了一些问题,不用慌: - \ 1️⃣ 如果你是小白,想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) \ 2️⃣ 如果你正在使用私有部署版本,点击[这里](/#/auth)输入访问秘钥 🔑 \ 3️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️ `, From 7dc0f81d3ffe462d97cc1990a1b127dd554ee556 Mon Sep 17 00:00:00 2001 From: river Date: Thu, 19 Sep 2024 13:48:59 +0800 Subject: [PATCH 08/23] chore: change placeholder --- app/components/settings.tsx | 1 + app/locales/cn.ts | 2 +- app/locales/en.ts | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/components/settings.tsx b/app/components/settings.tsx index 8fbeb66054c..7f8d0cb7170 100644 --- a/app/components/settings.tsx +++ b/app/components/settings.tsx @@ -702,6 +702,7 @@ export function Settings() { Locale.Settings.Access.SaasStart.ChatNow } icon={} + type={"primary"} text={Locale.Settings.Access.SaasStart.ChatNow} onClick={() => { window.location.href = SAAS_CHAT_URL; diff --git a/app/locales/cn.ts b/app/locales/cn.ts index d7a20696184..772feac4763 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -310,7 +310,7 @@ const cn = { Title: "使用 NextChat AI", Label: "(性价比最高的方案)", SubTitle: - "由 NextChat 官方维护, 零配置开箱即用,支持最新 GPT-4o、Gemini、Claude3 等最新大模型", + "由 NextChat 官方维护, 零配置开箱即用,支持 OpenAI o1, GPT-4o, Claude-3.5 等最新大模型", ChatNow: "立刻对话", }, AccessCode: { diff --git a/app/locales/en.ts b/app/locales/en.ts index 610a5bc09e4..61d1fc42811 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -313,7 +313,8 @@ const en: LocaleType = { Title: "Use NextChat AI", Label: " (Most Cost-Effective Option)", SubTitle: - "Maintained by NextChat, zero setup needed, supports the latest models like GPT-4o, Gemini, Claude3, and more.", + "Maintained by NextChat, zero setup needed, unlock OpenAI o1, GPT-4o," + + " Claude-3.5 and more", ChatNow: "Start Now", }, AccessCode: { From 62efab987bbf1b2e06d969243fe92b4a70335c8a Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Thu, 19 Sep 2024 16:58:51 +0800 Subject: [PATCH 09/23] add fanyi add top tip --- app/components/auth.module.scss | 37 ++++++++++++++++++ app/components/auth.tsx | 66 +++++++++++++++++++++++++++++++-- app/icons/arrow.svg | 1 + app/icons/logo.svg | 19 ++++++++++ app/icons/www-delete.svg | 1 + app/locales/ar.ts | 23 ++++++++++-- app/locales/bn.ts | 24 ++++++++++-- app/locales/cn.ts | 2 + app/locales/cs.ts | 24 ++++++++++-- app/locales/de.ts | 25 +++++++++++-- app/locales/es.ts | 25 +++++++++++-- app/locales/fr.ts | 25 +++++++++++-- app/locales/id.ts | 24 ++++++++++-- app/locales/it.ts | 25 +++++++++++-- app/locales/jp.ts | 24 ++++++++++-- app/locales/ko.ts | 24 ++++++++++-- app/locales/no.ts | 25 +++++++++++-- app/locales/pt.ts | 24 ++++++++++-- app/locales/ru.ts | 24 ++++++++++-- app/locales/sk.ts | 24 ++++++++++-- app/locales/tr.ts | 24 ++++++++++-- app/locales/tw.ts | 24 ++++++++++-- app/locales/vi.ts | 24 ++++++++++-- 23 files changed, 484 insertions(+), 54 deletions(-) create mode 100644 app/icons/arrow.svg create mode 100644 app/icons/logo.svg create mode 100644 app/icons/www-delete.svg diff --git a/app/components/auth.module.scss b/app/components/auth.module.scss index 02c1f4292a7..c26320b7d1a 100644 --- a/app/components/auth.module.scss +++ b/app/components/auth.module.scss @@ -5,6 +5,43 @@ height: 100%; width: 100%; flex-direction: column; + .top-banner { + position: relative; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + + padding: 12px 64px; + box-sizing: border-box; + background: var(--second); + .top-banner-inner { + display: flex; + justify-content: center; + align-items: center; + font-size: 14px; + line-height: 150%; + span { + display: inline-flex; + align-items: center; + gap: 8px; + a { + display: inline-flex; + align-items: center; + text-decoration: none; + margin-left: 8px; + color: var(--primary); + } + } + } + .top-banner-close { + cursor: pointer; + position: absolute; + top: 50%; + right: 48px; + transform: translateY(-50%); + } + } .auth-header { display: flex; diff --git a/app/components/auth.tsx b/app/components/auth.tsx index c044fb0ac4d..8b6e2260787 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -1,13 +1,14 @@ import styles from "./auth.module.scss"; import { IconButton } from "./button"; - +import { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { Path, SAAS_CHAT_URL } from "../constant"; import { useAccessStore } from "../store"; import Locale from "../locales"; - +import Delete from "../icons/www-delete.svg"; +import Arrow from "../icons/arrow.svg"; +import Logo from "../icons/logo.svg"; import BotIcon from "../icons/bot.svg"; -import { useEffect } from "react"; import { getClientConfig } from "../config/client"; import LeftIcon from "@/app/icons/left.svg"; @@ -20,6 +21,7 @@ export function AuthPage() { const goSaas = () => { window.location.href = SAAS_CHAT_URL; }; + const resetAccessCode = () => { accessStore.update((access) => { access.openaiApiKey = ""; @@ -36,6 +38,7 @@ export function AuthPage() { return (
+
} @@ -105,3 +108,60 @@ export function AuthPage() {
); } + +function TopBanner() { + const [isHovered, setIsHovered] = useState(false); + const [isVisible, setIsVisible] = useState(true); + + useEffect(() => { + // 检查 localStorage 中是否有标记 + const bannerDismissed = localStorage.getItem("bannerDismissed"); + + // 如果标记不存在,存储默认值并显示横幅 + if (!bannerDismissed) { + localStorage.setItem("bannerDismissed", "false"); + setIsVisible(true); // 显示横幅 + } else if (bannerDismissed === "true") { + // 如果标记为 "true",则隐藏横幅 + setIsVisible(false); + } + }, []); + + const handleMouseEnter = () => { + setIsHovered(true); + }; + + const handleMouseLeave = () => { + setIsHovered(false); + }; + + const handleClose = () => { + setIsVisible(false); + localStorage.setItem("bannerDismissed", "true"); + }; + + if (!isVisible) { + return null; + } + return ( +
+
+ + + {Locale.Auth.TopTips} + + {Locale.Settings.Access.SaasStart.ChatNow} + + + +
+ {isHovered && ( + + )} +
+ ); +} diff --git a/app/icons/arrow.svg b/app/icons/arrow.svg new file mode 100644 index 00000000000..ddd69e61472 --- /dev/null +++ b/app/icons/arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/icons/logo.svg b/app/icons/logo.svg new file mode 100644 index 00000000000..8f3c1de08c0 --- /dev/null +++ b/app/icons/logo.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/icons/www-delete.svg b/app/icons/www-delete.svg new file mode 100644 index 00000000000..17952c3b3ba --- /dev/null +++ b/app/icons/www-delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/locales/ar.ts b/app/locales/ar.ts index 464519e2055..0399d7f7c48 100644 --- a/app/locales/ar.ts +++ b/app/locales/ar.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const ar: PartialLocaleType = { WIP: "قريبًا...", Error: { Unauthorized: isApp - ? "تم اكتشاف مفتاح API غير صالح، يرجى الذهاب إلى [الإعدادات](/#/settings) للتحقق من صحة مفتاح API." - : "كلمة المرور غير صحيحة أو فارغة، يرجى الذهاب إلى [تسجيل الدخول](/#/auth) لإدخال كلمة مرور صحيحة، أو أدخل مفتاح OpenAI API الخاص بك في [الإعدادات](/#/settings).", + ? `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق: + \\ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️` + : `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق: + \ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ إذا كنت تستخدم إصدار النشر الخاص، انقر [هنا](/#/auth) لإدخال مفتاح الوصول 🔑 + \ 3️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️ + `, }, Auth: { Title: "تحتاج إلى كلمة مرور", @@ -18,6 +24,10 @@ const ar: PartialLocaleType = { Input: "أدخل رمز الوصول هنا", Confirm: "تأكيد", Later: "في وقت لاحق", + Return: "عودة", + SaasTips: "الإعدادات معقدة، أريد استخدامه على الفور", + TopTips: + "🥳 عرض NextChat AI الأول، افتح الآن OpenAI o1, GPT-4o, Claude-3.5 وأحدث النماذج الكبيرة", }, ChatItem: { ChatItemCount: (count: number) => `${count} محادثة`, @@ -281,6 +291,13 @@ const ar: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "استخدام NextChat AI", + Label: "(أفضل حل من حيث التكلفة)", + SubTitle: + "مدعوم رسميًا من NextChat، جاهز للاستخدام بدون إعداد، يدعم أحدث النماذج الكبيرة مثل OpenAI o1 و GPT-4o و Claude-3.5", + ChatNow: "الدردشة الآن", + }, AccessCode: { Title: "كلمة المرور للوصول", SubTitle: "قام المشرف بتمكين الوصول المشفر", diff --git a/app/locales/bn.ts b/app/locales/bn.ts index 945c442df57..78c0f76f007 100644 --- a/app/locales/bn.ts +++ b/app/locales/bn.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const bn: PartialLocaleType = { WIP: "শীঘ্রই আসছে...", Error: { Unauthorized: isApp - ? "অবৈধ API কী সনাক্ত করা হয়েছে, অনুগ্রহ করে [সেটিংস](/#/settings) পৃষ্ঠায় যান এবং নিশ্চিত করুন যে API কী সঠিকভাবে কনফিগার করা হয়েছে।" - : "অ্যাক্সেস পাসওয়ার্ড সঠিক নয় বা খালি, অনুগ্রহ করে [লগইন](/#/auth) পৃষ্ঠায় যান এবং সঠিক অ্যাক্সেস পাসওয়ার্ড প্রবেশ করান, অথবা [সেটিংস](/#/settings) পৃষ্ঠায় আপনার OpenAI API কী প্রবেশ করান।", + ? `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই: + \\ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️` + : `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই: + \ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ যদি আপনি একটি প্রাইভেট ডেপ্লয়মেন্ট সংস্করণ ব্যবহার করেন, তাহলে [এখানে ক্লিক করুন](/#/auth) প্রবেশাধিকার কীগুলি প্রবেশ করতে 🔑 + \ 3️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️ + `, }, Auth: { Title: "পাসওয়ার্ড প্রয়োজন", @@ -18,6 +24,10 @@ const bn: PartialLocaleType = { Input: "এখানে অ্যাক্সেস কোড লিখুন", Confirm: "নিশ্চিত করুন", Later: "পরে বলুন", + Return: "ফিরে আসা", + SaasTips: "কনফিগারেশন খুব কঠিন, আমি অবিলম্বে ব্যবহার করতে চাই", + TopTips: + "🥳 NextChat AI প্রথম প্রকাশের অফার, এখনই OpenAI o1, GPT-4o, Claude-3.5 এবং সর্বশেষ বড় মডেলগুলি আনলক করুন", }, ChatItem: { ChatItemCount: (count: number) => `${count} টি চ্যাট`, @@ -284,6 +294,14 @@ const bn: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "NextChat AI ব্যবহার করুন", + Label: "(সেরা মূল্যসাশ্রয়ী সমাধান)", + SubTitle: + "NextChat কর্তৃক অফিসিয়াল রক্ষণাবেক্ষণ, শূন্য কনফিগারেশন ব্যবহার শুরু করুন, OpenAI o1, GPT-4o, Claude-3.5 সহ সর্বশেষ বড় মডেলগুলি সমর্থন করে", + ChatNow: "এখনই চ্যাট করুন", + }, + AccessCode: { Title: "অ্যাক্সেস পাসওয়ার্ড", SubTitle: "অ্যাডমিন এনক্রিপ্টেড অ্যাক্সেস সক্রিয় করেছেন", diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 772feac4763..3181d1703b6 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -26,6 +26,8 @@ const cn = { Confirm: "确认", Later: "稍后再说", SaasTips: "配置太麻烦,想要立即使用", + TopTips: + "🥳 NextChat AI 首发优惠,立刻解锁 OpenAI o1, GPT-4o, Claude-3.5 等最新大模型", }, ChatItem: { ChatItemCount: (count: number) => `${count} 条对话`, diff --git a/app/locales/cs.ts b/app/locales/cs.ts index 5a132b3ce6d..972c46edace 100644 --- a/app/locales/cs.ts +++ b/app/locales/cs.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const cs: PartialLocaleType = { WIP: "V přípravě...", Error: { Unauthorized: isApp - ? "Byl zjištěn neplatný API Key, prosím přejděte na stránku [Nastavení](/#/settings) a zkontrolujte, zda je API Key správně nakonfigurován." - : "Heslo je nesprávné nebo prázdné, prosím přejděte na stránku [Přihlášení](/#/auth) a zadejte správné heslo, nebo na stránku [Nastavení](/#/settings) a zadejte svůj vlastní OpenAI API Key.", + ? `😆 Rozhovor narazil na nějaké problémy, nebojte se: + \\ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️` + : `😆 Rozhovor narazil na nějaké problémy, nebojte se: + \ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Pokud používáte verzi soukromého nasazení, klikněte [sem](/#/auth) a zadejte přístupový klíč 🔑 + \ 3️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️ + `, }, Auth: { Title: "Potřebné heslo", @@ -18,6 +24,10 @@ const cs: PartialLocaleType = { Input: "Zadejte přístupový kód zde", Confirm: "Potvrdit", Later: "Později", + Return: "Návrat", + SaasTips: "Konfigurace je příliš složitá, chci okamžitě začít používat", + TopTips: + "🥳 Uvítací nabídka NextChat AI, okamžitě odemkněte OpenAI o1, GPT-4o, Claude-3.5 a nejnovější velké modely", }, ChatItem: { ChatItemCount: (count: number) => `${count} konverzací`, @@ -284,6 +294,14 @@ const cs: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Použití NextChat AI", + Label: "(Nejlepší nákladově efektivní řešení)", + SubTitle: + "Oficiálně udržováno NextChat, připraveno k použití bez konfigurace, podporuje nejnovější velké modely jako OpenAI o1, GPT-4o, Claude-3.5", + ChatNow: "Začněte chatovat nyní", + }, + AccessCode: { Title: "Přístupový kód", SubTitle: "Administrátor aktivoval šifrovaný přístup", diff --git a/app/locales/de.ts b/app/locales/de.ts index ebe7aff2d71..4b878b17067 100644 --- a/app/locales/de.ts +++ b/app/locales/de.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const de: PartialLocaleType = { WIP: "In Bearbeitung...", Error: { Unauthorized: isApp - ? "Ungültiger API-Schlüssel erkannt. Bitte gehen Sie zur [Einstellungen](/#/settings) Seite, um zu überprüfen, ob der API-Schlüssel korrekt konfiguriert ist." - : "Das Passwort ist falsch oder leer. Bitte gehen Sie zur [Login](/#/auth) Seite, um das richtige Passwort einzugeben, oder fügen Sie Ihren OpenAI API-Schlüssel auf der [Einstellungen](/#/settings) Seite hinzu.", + ? `😆 Das Gespräch hatte einige Probleme, keine Sorge: + \\ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️` + : `😆 Das Gespräch hatte einige Probleme, keine Sorge: + \ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Wenn du eine private Bereitstellung verwendest, klicke [hier](/#/auth), um den Zugriffsschlüssel einzugeben 🔑 + \ 3️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️ + `, }, Auth: { Title: "Passwort erforderlich", @@ -18,6 +24,11 @@ const de: PartialLocaleType = { Input: "Geben Sie hier den Zugangscode ein", Confirm: "Bestätigen", Later: "Später", + Return: "Zurück", + SaasTips: + "Die Konfiguration ist zu kompliziert, ich möchte es sofort nutzen", + TopTips: + "🥳 NextChat AI Einführungsangebot, schalte jetzt OpenAI o1, GPT-4o, Claude-3.5 und die neuesten großen Modelle frei", }, ChatItem: { ChatItemCount: (count: number) => `${count} Gespräche`, @@ -291,6 +302,14 @@ const de: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "NextChat AI verwenden", + Label: "(Die kosteneffektivste Lösung)", + SubTitle: + "Offiziell von NextChat verwaltet, sofort einsatzbereit ohne Konfiguration, unterstützt die neuesten großen Modelle wie OpenAI o1, GPT-4o und Claude-3.5", + ChatNow: "Jetzt chatten", + }, + AccessCode: { Title: "Zugangscode", SubTitle: diff --git a/app/locales/es.ts b/app/locales/es.ts index c1caae2d385..3719e7e4c1f 100644 --- a/app/locales/es.ts +++ b/app/locales/es.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const es: PartialLocaleType = { WIP: "En construcción...", Error: { Unauthorized: isApp - ? "Se detectó una clave API inválida. Por favor, ve a la página de [Configuración](/#/settings) para verificar si la clave API está configurada correctamente." - : "La contraseña de acceso es incorrecta o está vacía. Por favor, ve a la página de [Iniciar sesión](/#/auth) para ingresar la contraseña correcta, o en la página de [Configuración](/#/settings) para introducir tu propia clave API de OpenAI.", + ? `😆 La conversación encontró algunos problemas, no te preocupes: + \\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️` + : `😆 La conversación encontró algunos problemas, no te preocupes: + \ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Si estás utilizando una versión de implementación privada, haz clic [aquí](/#/auth) para ingresar la clave de acceso 🔑 + \ 3️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️ + `, }, Auth: { Title: "Se requiere contraseña", @@ -18,6 +24,11 @@ const es: PartialLocaleType = { Input: "Introduce el código de acceso aquí", Confirm: "Confirmar", Later: "Más tarde", + Return: "Regresar", + SaasTips: + "La configuración es demasiado complicada, quiero usarlo de inmediato", + TopTips: + "🥳 Oferta de lanzamiento de NextChat AI, desbloquea OpenAI o1, GPT-4o, Claude-3.5 y los últimos grandes modelos", }, ChatItem: { ChatItemCount: (count: number) => `${count} conversaciones`, @@ -294,6 +305,14 @@ const es: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Use NextChat AI", + Label: "(The most cost-effective solution)", + SubTitle: + "Officially maintained by NextChat, zero configuration ready to use, supports the latest large models like OpenAI o1, GPT-4o, and Claude-3.5", + ChatNow: "Chat Now", + }, + AccessCode: { Title: "Contraseña de acceso", SubTitle: "El administrador ha habilitado el acceso encriptado", diff --git a/app/locales/fr.ts b/app/locales/fr.ts index 97fb79e3238..dd611cbf994 100644 --- a/app/locales/fr.ts +++ b/app/locales/fr.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const fr: PartialLocaleType = { WIP: "Prochainement...", Error: { Unauthorized: isApp - ? "Clé API invalide détectée. Veuillez vérifier si la clé API est correctement configurée dans la page [Paramètres](/#/settings)." - : "Le mot de passe d'accès est incorrect ou manquant. Veuillez entrer le mot de passe d'accès correct sur la page [Connexion](/#/auth) ou entrer votre propre clé API OpenAI sur la page [Paramètres](/#/settings).", + ? `😆 La conversation a rencontré quelques problèmes, pas de panique : + \\ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️` + : `😆 La conversation a rencontré quelques problèmes, pas de panique : + \ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Si vous utilisez une version déployée privée, cliquez [ici](/#/auth) pour entrer la clé d'accès 🔑 + \ 3️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️ + `, }, Auth: { Title: "Mot de passe requis", @@ -18,6 +24,11 @@ const fr: PartialLocaleType = { Input: "Entrez le code d'accès ici", Confirm: "Confirmer", Later: "Plus tard", + Return: "Retour", + SaasTips: + "La configuration est trop compliquée, je veux l'utiliser immédiatement", + TopTips: + "🥳 Offre de lancement NextChat AI, débloquez OpenAI o1, GPT-4o, Claude-3.5 et les derniers grands modèles", }, ChatItem: { ChatItemCount: (count: number) => `${count} conversations`, @@ -294,6 +305,14 @@ const fr: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Utiliser NextChat AI", + Label: "(La solution la plus rentable)", + SubTitle: + "Officiellement maintenu par NextChat, prêt à l'emploi sans configuration, prend en charge les derniers grands modèles comme OpenAI o1, GPT-4o et Claude-3.5", + ChatNow: "Discuter maintenant", + }, + AccessCode: { Title: "Mot de passe d'accès", SubTitle: "L'administrateur a activé l'accès sécurisé", diff --git a/app/locales/id.ts b/app/locales/id.ts index 1eff667ed9e..c9c6428f192 100644 --- a/app/locales/id.ts +++ b/app/locales/id.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const id: PartialLocaleType = { WIP: "Coming Soon...", Error: { Unauthorized: isApp - ? "API Key tidak valid terdeteksi, silakan periksa apakah API Key telah dikonfigurasi dengan benar di halaman [Pengaturan](/#/settings)." - : "Kata sandi akses tidak benar atau kosong, silakan masukkan kata sandi akses yang benar di halaman [Masuk](/#/auth), atau masukkan OpenAI API Key Anda di halaman [Pengaturan](/#/settings).", + ? `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir: + \\ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️` + : `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir: + \ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Jika Anda menggunakan versi penyebaran pribadi, klik [di sini](/#/auth) untuk memasukkan kunci akses 🔑 + \ 3️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️ +`, }, Auth: { Title: "Kebutuhan Kata Sandi", @@ -18,6 +24,10 @@ const id: PartialLocaleType = { Input: "Masukkan kode akses di sini", Confirm: "Konfirmasi", Later: "Nanti", + Return: "Kembali", + SaasTips: "Konfigurasi terlalu rumit, saya ingin menggunakannya segera", + TopTips: + "🥳 Penawaran Peluncuran NextChat AI, buka OpenAI o1, GPT-4o, Claude-3.5 dan model besar terbaru sekarang", }, ChatItem: { ChatItemCount: (count: number) => `${count} percakapan`, @@ -285,6 +295,14 @@ const id: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Gunakan NextChat AI", + Label: "(Solusi paling hemat biaya)", + SubTitle: + "Dikelola secara resmi oleh NextChat, siap digunakan tanpa konfigurasi, mendukung model besar terbaru seperti OpenAI o1, GPT-4o, dan Claude-3.5", + ChatNow: "Chat Sekarang", + }, + AccessCode: { Title: "Kata Sandi Akses", SubTitle: "Administrator telah mengaktifkan akses terenkripsi", diff --git a/app/locales/it.ts b/app/locales/it.ts index 9b0d965d351..83b80a1b600 100644 --- a/app/locales/it.ts +++ b/app/locales/it.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const it: PartialLocaleType = { WIP: "Work in progress...", Error: { Unauthorized: isApp - ? "API Key non valido rilevato. Vai alla pagina [Impostazioni](/#/settings) per controllare se l'API Key è configurata correttamente." - : "La password di accesso è errata o mancante. Vai alla pagina [Login](/#/auth) per inserire la password corretta o inserisci la tua API Key OpenAI nella pagina [Impostazioni](/#/settings).", + ? `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti: + \\ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️` + : `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti: + \ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Se stai utilizzando una versione di distribuzione privata, clicca [qui](/#/auth) per inserire la chiave di accesso 🔑 + \ 3️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️ + `, }, Auth: { Title: "Password richiesta", @@ -18,6 +24,11 @@ const it: PartialLocaleType = { Input: "Inserisci il codice di accesso qui", Confirm: "Conferma", Later: "Più tardi", + Return: "Ritorna", + SaasTips: + "La configurazione è troppo complicata, voglio usarlo immediatamente", + TopTips: + "🥳 Offerta di lancio NextChat AI, sblocca OpenAI o1, GPT-4o, Claude-3.5 e i più recenti modelli di grandi dimensioni", }, ChatItem: { ChatItemCount: (count: number) => `${count} conversazioni`, @@ -295,6 +306,14 @@ const it: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Usa NextChat AI", + Label: "(La soluzione più conveniente)", + SubTitle: + "Mantenuto ufficialmente da NextChat, pronto all'uso senza configurazione, supporta i modelli più recenti come OpenAI o1, GPT-4o e Claude-3.5", + ChatNow: "Chatta ora", + }, + AccessCode: { Title: "Password di accesso", SubTitle: "L'amministratore ha abilitato l'accesso criptato", diff --git a/app/locales/jp.ts b/app/locales/jp.ts index 1511afc2c5f..a4f849c778c 100644 --- a/app/locales/jp.ts +++ b/app/locales/jp.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const jp: PartialLocaleType = { WIP: "この機能は開発中です", Error: { Unauthorized: isApp - ? "無効なAPIキーが検出されました。[設定](/#/settings)ページでAPIキーが正しく設定されているか確認してください。" - : "アクセスパスワードが正しくないか空です。[ログイン](/#/auth)ページで正しいアクセスパスワードを入力するか、[設定](/#/settings)ページで自分のOpenAI APIキーを入力してください。", + ? `😆 会話中に問題が発生しましたが、心配しないでください: + \\ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️` + : `😆 会話中に問題が発生しましたが、心配しないでください: + \ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ プライベートデプロイ版を使用している場合は、[ここをクリックして](/#/auth)アクセストークンを入力してください 🔑 + \ 3️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️ + `, }, Auth: { Title: "パスワードが必要です", @@ -18,6 +24,10 @@ const jp: PartialLocaleType = { Input: "ここにアクセスコードを入力", Confirm: "確認", Later: "後で", + Return: "戻る", + SaasTips: "設定が面倒すぎる、すぐに使いたい", + TopTips: + "🥳 NextChat AIの発売特典で、OpenAI o1、GPT-4o、Claude-3.5などの最新の大規模モデルを今すぐアンロック", }, ChatItem: { ChatItemCount: (count: number) => `${count}件の会話`, @@ -282,6 +292,14 @@ const jp: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "NextChat AIを使用する", + Label: "(コストパフォーマンスの最も高いソリューション)", + SubTitle: + "NextChatによって公式に管理されており、設定なしですぐに使用でき、OpenAI o1、GPT-4o、Claude-3.5などの最新の大規模モデルをサポートしています", + ChatNow: "今すぐチャット", + }, + AccessCode: { Title: "アクセスパスワード", SubTitle: "管理者が暗号化アクセスを有効にしました", diff --git a/app/locales/ko.ts b/app/locales/ko.ts index 11e6aa4eb29..32eb2be7352 100644 --- a/app/locales/ko.ts +++ b/app/locales/ko.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const ko: PartialLocaleType = { WIP: "곧 출시 예정...", Error: { Unauthorized: isApp - ? "유효하지 않은 API 키가 감지되었습니다. [설정](/#/settings) 페이지에서 API 키가 올바르게 구성되었는지 확인하십시오." - : "잘못된 접근 비밀번호이거나 비밀번호가 비어 있습니다. [로그인](/#/auth) 페이지에서 올바른 접근 비밀번호를 입력하거나 [설정](/#/settings) 페이지에서 OpenAI API 키를 입력하십시오.", + ? `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요: + \\ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️` + : `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요: + \ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ 개인 배포 버전을 사용하고 있다면, [여기를 클릭하여](/#/auth) 접근 키를 입력하세요 🔑 + \ 3️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️ + `, }, Auth: { Title: "비밀번호 필요", @@ -18,6 +24,10 @@ const ko: PartialLocaleType = { Input: "여기에 접근 코드를 입력하십시오.", Confirm: "확인", Later: "나중에 하기", + Return: "돌아가기", + SaasTips: "설정이 너무 복잡합니다. 즉시 사용하고 싶습니다.", + TopTips: + "🥳 NextChat AI 출시 기념 할인, 지금 OpenAI o1, GPT-4o, Claude-3.5 및 최신 대형 모델을 해제하세요", }, ChatItem: { ChatItemCount: (count: number) => `${count} 개의 대화`, @@ -281,6 +291,14 @@ const ko: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "NextChat AI 사용하기", + Label: "(가장 비용 효율적인 솔루션)", + SubTitle: + "NextChat에 의해 공식적으로 유지 관리되며, 제로 구성으로 즉시 사용할 수 있으며, OpenAI o1, GPT-4o, Claude-3.5와 같은 최신 대형 모델을 지원합니다", + ChatNow: "지금 채팅하기", + }, + AccessCode: { Title: "접근 비밀번호", SubTitle: "관리자가 암호화된 접근을 활성화했습니다.", diff --git a/app/locales/no.ts b/app/locales/no.ts index 6fc8e86c787..d02b5ce663c 100644 --- a/app/locales/no.ts +++ b/app/locales/no.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const no: PartialLocaleType = { WIP: "Arbeid pågår ...", Error: { Unauthorized: isApp - ? "Ugyldig API-nøkkel oppdaget. Gå til [innstillinger](/#/settings) for å sjekke om API-nøkkelen er riktig konfigurert." - : "Adgangskoden er feil eller tom. Gå til [innlogging](/#/auth) for å oppgi riktig adgangskode, eller fyll inn din egen OpenAI API-nøkkel på [innstillinger](/#/settings) siden.", + ? `😆 Samtalen har støtt på noen problemer, ikke bekymre deg: + \\ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️` + : `😆 Samtalen har støtt på noen problemer, ikke bekymre deg: + \ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Hvis du bruker en privat distribusjonsversjon, klikk [her](/#/auth) for å skrive inn tilgangsnøkkelen 🔑 + \ 3️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️ + `, }, Auth: { Title: "Passord påkrevd", @@ -18,6 +24,11 @@ const no: PartialLocaleType = { Input: "Skriv tilgangskoden her", Confirm: "Bekreft", Later: "Kom tilbake senere", + Return: "Tilbake", + SaasTips: + "Konfigurasjonen er for komplisert, jeg vil bruke det med en gang", + TopTips: + "🥳 NextChat AI lanseringstilbud, lås opp OpenAI o1, GPT-4o, Claude-3.5 og de nyeste store modellene nå", }, ChatItem: { ChatItemCount: (count: number) => `${count} samtaler`, @@ -288,6 +299,14 @@ const no: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Bruk NextChat AI", + Label: "(Den mest kostnadseffektive løsningen)", + SubTitle: + "Offisielt vedlikeholdt av NextChat, klar til bruk uten konfigurasjon, støtter de nyeste store modellene som OpenAI o1, GPT-4o og Claude-3.5", + ChatNow: "Chat nå", + }, + AccessCode: { Title: "Adgangskode", SubTitle: "Administrator har aktivert kryptert tilgang", diff --git a/app/locales/pt.ts b/app/locales/pt.ts index c04081a8b36..c1de67384b4 100644 --- a/app/locales/pt.ts +++ b/app/locales/pt.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import { PartialLocaleType } from "../locales/index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const pt: PartialLocaleType = { WIP: "Em breve...", Error: { Unauthorized: isApp - ? "Chave API inválida, por favor verifique em [Configurações](/#/settings)." - : "Acesso não autorizado, por favor insira o código de acesso em [auth](/#/auth) ou insira sua Chave API OpenAI.", + ? `😆 A conversa encontrou alguns problemas, não se preocupe: + \\ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️` + : `😆 A conversa encontrou alguns problemas, não se preocupe: + \ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Se você estiver usando uma versão de implantação privada, clique [aqui](/#/auth) para inserir a chave de acesso 🔑 + \ 3️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️ +`, }, Auth: { Title: "Necessário Código de Acesso", @@ -18,6 +24,10 @@ const pt: PartialLocaleType = { Input: "código de acesso", Confirm: "Confirmar", Later: "Depois", + Return: "Voltar", + SaasTips: "A configuração é muito complicada, quero usá-la imediatamente", + TopTips: + "🥳 Oferta de Lançamento do NextChat AI, desbloqueie o OpenAI o1, GPT-4o, Claude-3.5 e os mais recentes grandes modelos agora", }, ChatItem: { ChatItemCount: (count: number) => `${count} mensagens`, @@ -281,6 +291,14 @@ const pt: PartialLocaleType = { NoAccess: "Insira a Chave API para verificar o saldo", }, Access: { + SaasStart: { + Title: "Usar NextChat AI", + Label: "(A solução mais econômica)", + SubTitle: + "Mantido oficialmente pelo NextChat, pronto para uso sem configuração, suporta os mais recentes grandes modelos como OpenAI o1, GPT-4o e Claude-3.5", + ChatNow: "Conversar agora", + }, + AccessCode: { Title: "Código de Acesso", SubTitle: "Controle de Acesso Habilitado", diff --git a/app/locales/ru.ts b/app/locales/ru.ts index 0fcf73a249f..2793ab7ec05 100644 --- a/app/locales/ru.ts +++ b/app/locales/ru.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import { PartialLocaleType } from "../locales/index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const ru: PartialLocaleType = { WIP: "Скоро...", Error: { Unauthorized: isApp - ? "Обнаружен недействительный API-ключ. Пожалуйста, перейдите на страницу [Настройки](/#/settings), чтобы проверить правильность конфигурации API-ключа." - : "Неверный или пустой пароль доступа. Пожалуйста, перейдите на страницу [Вход](/#/auth), чтобы ввести правильный пароль доступа, или на страницу [Настройки](/#/settings), чтобы ввести ваш собственный API-ключ OpenAI.", + ? `😆 В разговоре возникли некоторые проблемы, не переживайте: + \\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️` + : `😆 В разговоре возникли некоторые проблемы, не переживайте: + \ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Если вы используете частную версию развертывания, нажмите [здесь](/#/auth), чтобы ввести ключ доступа 🔑 + \ 3️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️ + `, }, Auth: { Title: "Требуется пароль", @@ -18,6 +24,10 @@ const ru: PartialLocaleType = { Input: "Введите код доступа здесь", Confirm: "Подтвердить", Later: "Позже", + Return: "Назад", + SaasTips: "Настройка слишком сложна, я хочу использовать это немедленно", + TopTips: + "🥳 Предложение по запуску NextChat AI: разблокируйте OpenAI o1, GPT-4o, Claude-3.5 и новейшие большие модели прямо сейчас", }, ChatItem: { ChatItemCount: (count: number) => `${count} бесед`, @@ -286,6 +296,14 @@ const ru: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Используйте NextChat AI", + Label: "(Самое экономичное решение)", + SubTitle: + "Официально поддерживается NextChat, готов к использованию без настройки, поддерживает последние крупные модели, такие как OpenAI o1, GPT-4o и Claude-3.5", + ChatNow: "Начать чат", + }, + AccessCode: { Title: "Пароль доступа", SubTitle: "Администратор включил защиту паролем", diff --git a/app/locales/sk.ts b/app/locales/sk.ts index 3649b763bf5..62cfab0abb0 100644 --- a/app/locales/sk.ts +++ b/app/locales/sk.ts @@ -1,7 +1,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; - +import { SAAS_CHAT_URL } from "@/app/constant"; // if you are adding a new translation, please use PartialLocaleType instead of LocaleType const isApp = !!getClientConfig()?.isApp; @@ -9,8 +9,14 @@ const sk: PartialLocaleType = { WIP: "Už čoskoro...", Error: { Unauthorized: isApp - ? "Neplatný API kľúč, prosím skontrolujte ho na stránke [Nastavenia](/#/settings)." - : "Neoprávnený prístup, prosím zadajte prístupový kód na stránke [auth](/#/auth), alebo zadajte váš OpenAI API kľúč.", + ? `😆 Rozhovor narazil na nejaké problémy, nebojte sa: + \\ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️` + : `😆 Rozhovor narazil na nejaké problémy, nebojte sa: + \ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Ak používate verziu súkromného nasadenia, kliknite [sem](/#/auth), aby ste zadali prístupový kľúč 🔑 + \ 3️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️ + `, }, Auth: { Title: "Potrebný prístupový kód", @@ -19,6 +25,10 @@ const sk: PartialLocaleType = { Input: "prístupový kód", Confirm: "Potvrdiť", Later: "Neskôr", + Return: "Návrat", + SaasTips: "Nastavenie je príliš zložité, chcem to okamžite použiť", + TopTips: + "🥳 Uvítacia ponuka NextChat AI, okamžite odomknite OpenAI o1, GPT-4o, Claude-3.5 a najnovšie veľké modely", }, ChatItem: { ChatItemCount: (count: number) => `${count} správ`, @@ -281,6 +291,14 @@ const sk: PartialLocaleType = { NoAccess: "Zadajte API kľúč na skontrolovanie zostatku", }, Access: { + SaasStart: { + Title: "Použite NextChat AI", + Label: "(Najvýhodnejšie riešenie)", + SubTitle: + "Oficiálne udržiavané NextChat, pripravené na použitie bez konfigurácie, podporuje najnovšie veľké modely ako OpenAI o1, GPT-4o a Claude-3.5", + ChatNow: "Chatovať teraz", + }, + AccessCode: { Title: "Prístupový kód", SubTitle: "Povolený prístupový kód", diff --git a/app/locales/tr.ts b/app/locales/tr.ts index b7f14104750..7fe6170ca76 100644 --- a/app/locales/tr.ts +++ b/app/locales/tr.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const tr: PartialLocaleType = { WIP: "Çalışma devam ediyor...", Error: { Unauthorized: isApp - ? "Geçersiz API Anahtarı tespit edildi, lütfen API Anahtarını doğru şekilde yapılandırmak için [Ayarlar](/#/settings) sayfasına gidin." - : "Erişim şifresi yanlış veya boş, lütfen doğru erişim şifresini girmek için [Giriş](/#/auth) sayfasına gidin veya kendi OpenAI API Anahtarınızı [Ayarlar](/#/settings) sayfasına girin.", + ? `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin: + \\ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️` + : `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin: + \ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Eğer özel dağıtım sürümü kullanıyorsanız, [buraya tıklayarak](/#/auth) erişim anahtarını girin 🔑 + \ 3️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️ + `, }, Auth: { Title: "Şifre Gerekli", @@ -18,6 +24,10 @@ const tr: PartialLocaleType = { Input: "Erişim kodunu buraya girin", Confirm: "Onayla", Later: "Sonra", + Return: "Geri", + SaasTips: "Ayarlar çok karmaşık, hemen kullanmak istiyorum", + TopTips: + "🥳 NextChat AI lansman teklifi, OpenAI o1, GPT-4o, Claude-3.5 ve en son büyük modelleri şimdi açın", }, ChatItem: { ChatItemCount: (count: number) => `${count} konuşma`, @@ -286,6 +296,14 @@ const tr: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "NextChat AI kullanın", + Label: "(En maliyet etkin çözüm)", + SubTitle: + "NextChat tarafından resmi olarak yönetilmektedir, yapılandırma olmadan hemen kullanıma hazırdır, OpenAI o1, GPT-4o, Claude-3.5 gibi en son büyük modelleri destekler", + ChatNow: "Şimdi sohbet et", + }, + AccessCode: { Title: "Erişim Şifresi", SubTitle: "Yönetici şifreli erişimi etkinleştirdi", diff --git a/app/locales/tw.ts b/app/locales/tw.ts index b0602a08174..39e2bc96833 100644 --- a/app/locales/tw.ts +++ b/app/locales/tw.ts @@ -1,14 +1,20 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const tw = { WIP: "此功能仍在開發中……", Error: { Unauthorized: isApp - ? "偵測到無效的 API Key,請前往[設定](/#/settings)頁面檢查 API Key 是否設定正確。" - : "存取密碼不正確或尚未填寫,請前往[登入](/#/auth)頁面輸入正確的存取密碼,或者在[設定](/#/settings)頁面填入你自己的 OpenAI API Key。", + ? `😆 對話遇到了一些問題,不用慌: + \\ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ 如果你想消耗自己的 OpenAI 資源,點擊[這裡](/#/settings)修改設定 ⚙️` + : `😆 對話遇到了一些問題,不用慌: + \ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ 如果你正在使用私有部署版本,點擊[這裡](/#/auth)輸入訪問秘鑰 🔑 + \ 3️⃣ 如果你想消耗自己的 OpenAI 資源,點擊[這裡](/#/settings)修改設定 ⚙️ + `, }, Auth: { @@ -18,6 +24,10 @@ const tw = { Input: "在此處填寫存取密碼", Confirm: "確認", Later: "稍候再說", + Return: "返回", + SaasTips: "配置太麻煩,想要立即使用", + TopTips: + "🥳 NextChat AI 首發優惠,立刻解鎖 OpenAI o1, GPT-4o, Claude-3.5 等最新大模型", }, ChatItem: { ChatItemCount: (count: number) => `${count} 則對話`, @@ -287,6 +297,14 @@ const tw = { }, Access: { + SaasStart: { + Title: "使用 NextChat AI", + Label: "(性價比最高的方案)", + SubTitle: + "由 NextChat 官方維護,零配置開箱即用,支持 OpenAI o1、GPT-4o、Claude-3.5 等最新大模型", + ChatNow: "立刻對話", + }, + AccessCode: { Title: "存取密碼", SubTitle: "管理員已開啟加密存取", diff --git a/app/locales/vi.ts b/app/locales/vi.ts index 1f20e15a0b1..c4b6ffcd503 100644 --- a/app/locales/vi.ts +++ b/app/locales/vi.ts @@ -1,15 +1,21 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; - +import { SAAS_CHAT_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const vi: PartialLocaleType = { WIP: "Sắp ra mắt...", Error: { Unauthorized: isApp - ? "Phát hiện khóa API không hợp lệ, vui lòng truy cập trang [Cài đặt](/#/settings) để kiểm tra xem khóa API có được cấu hình chính xác không." - : "Mật khẩu truy cập không đúng hoặc để trống, vui lòng truy cập trang [Đăng nhập](/#/auth) để nhập mật khẩu truy cập chính xác, hoặc điền khóa API OpenAI của bạn vào trang [Cài đặt](/#/settings).", + ? `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng: + \\ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL}) + \\ 2️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️` + : `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng: + \ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL}) + \ 2️⃣ Nếu bạn đang sử dụng phiên bản triển khai riêng, hãy nhấp [vào đây](/#/auth) để nhập khóa truy cập 🔑 + \ 3️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️ + `, }, Auth: { Title: "Cần mật khẩu", @@ -18,6 +24,10 @@ const vi: PartialLocaleType = { Input: "Nhập mã truy cập tại đây", Confirm: "Xác nhận", Later: "Để sau", + Return: "Trở lại", + SaasTips: "Cấu hình quá phức tạp, tôi muốn sử dụng ngay lập tức", + TopTips: + "🥳 Ưu đãi ra mắt NextChat AI, mở khóa OpenAI o1, GPT-4o, Claude-3.5 và các mô hình lớn mới nhất ngay bây giờ", }, ChatItem: { ChatItemCount: (count: number) => `${count} cuộc trò chuyện`, @@ -283,6 +293,14 @@ const vi: PartialLocaleType = { }, Access: { + SaasStart: { + Title: "Sử dụng NextChat AI", + Label: "(Giải pháp tiết kiệm chi phí nhất)", + SubTitle: + "Được NextChat chính thức duy trì, sẵn sàng sử dụng mà không cần cấu hình, hỗ trợ các mô hình lớn mới nhất như OpenAI o1, GPT-4o và Claude-3.5", + ChatNow: "Chat ngay", + }, + AccessCode: { Title: "Mật khẩu truy cập", SubTitle: "Quản trị viên đã bật truy cập mã hóa", From 9858d1f9585b9d096c2e98cd424b5cc9e0d7bdc6 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Thu, 19 Sep 2024 18:21:26 +0800 Subject: [PATCH 10/23] add top tip --- app/components/auth.tsx | 12 +++++++----- app/icons/logo.svg | 36 ++++++++++++++++++------------------ app/icons/www-delete.svg | 1 - 3 files changed, 25 insertions(+), 24 deletions(-) delete mode 100644 app/icons/www-delete.svg diff --git a/app/components/auth.tsx b/app/components/auth.tsx index 8b6e2260787..3bd28aa1b0e 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -5,12 +5,13 @@ import { useNavigate } from "react-router-dom"; import { Path, SAAS_CHAT_URL } from "../constant"; import { useAccessStore } from "../store"; import Locale from "../locales"; -import Delete from "../icons/www-delete.svg"; +import Delete from "../icons/close.svg"; import Arrow from "../icons/arrow.svg"; import Logo from "../icons/logo.svg"; import BotIcon from "../icons/bot.svg"; import { getClientConfig } from "../config/client"; import LeftIcon from "@/app/icons/left.svg"; +import { safeLocalStorage } from "@/app/utils"; export function AuthPage() { const navigate = useNavigate(); @@ -112,20 +113,21 @@ export function AuthPage() { function TopBanner() { const [isHovered, setIsHovered] = useState(false); const [isVisible, setIsVisible] = useState(true); + const storage = safeLocalStorage(); useEffect(() => { // 检查 localStorage 中是否有标记 - const bannerDismissed = localStorage.getItem("bannerDismissed"); + const bannerDismissed = storage.getItem("bannerDismissed"); // 如果标记不存在,存储默认值并显示横幅 if (!bannerDismissed) { - localStorage.setItem("bannerDismissed", "false"); + storage.setItem("bannerDismissed", "false"); setIsVisible(true); // 显示横幅 } else if (bannerDismissed === "true") { // 如果标记为 "true",则隐藏横幅 setIsVisible(false); } - }, []); + }, [storage]); const handleMouseEnter = () => { setIsHovered(true); @@ -137,7 +139,7 @@ function TopBanner() { const handleClose = () => { setIsVisible(false); - localStorage.setItem("bannerDismissed", "true"); + storage.setItem("bannerDismissed", "true"); }; if (!isVisible) { diff --git a/app/icons/logo.svg b/app/icons/logo.svg index 8f3c1de08c0..b80263b8638 100644 --- a/app/icons/logo.svg +++ b/app/icons/logo.svg @@ -1,19 +1,19 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/app/icons/www-delete.svg b/app/icons/www-delete.svg deleted file mode 100644 index 17952c3b3ba..00000000000 --- a/app/icons/www-delete.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 702f5bd3624b565519eeaa0d758bd632e0813e96 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Fri, 20 Sep 2024 10:22:22 +0800 Subject: [PATCH 11/23] fex setCookie --- app/components/auth.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/components/auth.tsx b/app/components/auth.tsx index 3bd28aa1b0e..c89103a2eb3 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -13,10 +13,10 @@ import { getClientConfig } from "../config/client"; import LeftIcon from "@/app/icons/left.svg"; import { safeLocalStorage } from "@/app/utils"; +const storage = safeLocalStorage(); export function AuthPage() { const navigate = useNavigate(); const accessStore = useAccessStore(); - const goHome = () => navigate(Path.Home); const goChat = () => navigate(Path.Chat); const goSaas = () => { @@ -113,7 +113,6 @@ export function AuthPage() { function TopBanner() { const [isHovered, setIsHovered] = useState(false); const [isVisible, setIsVisible] = useState(true); - const storage = safeLocalStorage(); useEffect(() => { // 检查 localStorage 中是否有标记 @@ -127,7 +126,7 @@ function TopBanner() { // 如果标记为 "true",则隐藏横幅 setIsVisible(false); } - }, [storage]); + }, []); const handleMouseEnter = () => { setIsHovered(true); From 51f7b02b272f2cda70a7c16892f8d63342463c08 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Mon, 23 Sep 2024 10:56:43 +0800 Subject: [PATCH 12/23] fex en --- app/locales/en.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/locales/en.ts b/app/locales/en.ts index 61d1fc42811..71d02d6b3a0 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -27,6 +27,8 @@ const en: LocaleType = { Confirm: "Confirm", Later: "Later", SaasTips: "Too Complex, Use Immediately Now", + TopTips: + "🥳 NextChat AI launch promotion: Instantly unlock the latest models like OpenAI o1, GPT-4o, Claude-3.5!", }, ChatItem: { ChatItemCount: (count: number) => `${count} messages`, From 518e0d90a5f337805db20876b0006bd3a5f63fe8 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Mon, 23 Sep 2024 11:11:36 +0800 Subject: [PATCH 13/23] fex url --- app/constant.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/constant.ts b/app/constant.ts index 1ba3f94c23e..d97f3b209b6 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -502,4 +502,4 @@ export const PLUGINS = [ { name: "Search Chat", path: Path.SearchChat }, ]; -export const SAAS_CHAT_URL = "https://nextchat.dev"; +export const SAAS_CHAT_URL = "https://nextchat.dev/chat"; From c15c8526684e5606e16425f3fe9f5be1b809aebc Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Mon, 23 Sep 2024 15:12:45 +0800 Subject: [PATCH 14/23] fex media --- app/components/auth.module.scss | 17 ++++++++++++++--- app/components/auth.tsx | 18 +++++++++++++----- app/components/button.module.scss | 3 +-- app/components/ui-lib.module.scss | 5 +++-- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/app/components/auth.module.scss b/app/components/auth.module.scss index c26320b7d1a..fe143b4289b 100644 --- a/app/components/auth.module.scss +++ b/app/components/auth.module.scss @@ -11,7 +11,6 @@ display: flex; justify-content: center; align-items: center; - padding: 12px 64px; box-sizing: border-box; background: var(--second); @@ -22,8 +21,6 @@ font-size: 14px; line-height: 150%; span { - display: inline-flex; - align-items: center; gap: 8px; a { display: inline-flex; @@ -43,6 +40,20 @@ } } + @media (max-width: 600px) { + .top-banner { + padding: 12px 24px 12px 12px; + .top-banner-close { + right: 10px; + } + .top-banner-inner { + .top-banner-logo { + margin-right: 8px; + } + } + } + } + .auth-header { display: flex; justify-content: space-between; diff --git a/app/components/auth.tsx b/app/components/auth.tsx index c89103a2eb3..52fd860dd6d 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -113,11 +113,10 @@ export function AuthPage() { function TopBanner() { const [isHovered, setIsHovered] = useState(false); const [isVisible, setIsVisible] = useState(true); - + const [isMobile, setIsMobile] = useState(window.innerWidth < 600); useEffect(() => { // 检查 localStorage 中是否有标记 const bannerDismissed = storage.getItem("bannerDismissed"); - // 如果标记不存在,存储默认值并显示横幅 if (!bannerDismissed) { storage.setItem("bannerDismissed", "false"); @@ -128,6 +127,15 @@ function TopBanner() { } }, []); + useEffect(() => { + const handleResize = () => { + setIsMobile(window.innerWidth < 600); + }; + + window.addEventListener("resize", handleResize); + return () => window.removeEventListener("resize", handleResize); + }, []); + const handleMouseEnter = () => { setIsHovered(true); }; @@ -151,16 +159,16 @@ function TopBanner() { onMouseLeave={handleMouseLeave} > - {isHovered && ( + {(isHovered || isMobile) && ( )}
diff --git a/app/components/button.module.scss b/app/components/button.module.scss index e332df2d2c8..c65385cfcf6 100644 --- a/app/components/button.module.scss +++ b/app/components/button.module.scss @@ -5,10 +5,9 @@ align-items: center; justify-content: center; padding: 10px; - cursor: pointer; transition: all 0.3s ease; - overflow: hidden; + // overflow: hidden; user-select: none; outline: none; border: none; diff --git a/app/components/ui-lib.module.scss b/app/components/ui-lib.module.scss index 20bf62a188b..16ef106e1c3 100644 --- a/app/components/ui-lib.module.scss +++ b/app/components/ui-lib.module.scss @@ -250,8 +250,7 @@ .select-with-icon { position: relative; - max-width: fit-content; - + max-width: 60%; &.left-align-option { option { text-align: left; @@ -260,9 +259,11 @@ .select-with-icon-select { height: 100%; + max-width: 100%; border: var(--border-in-light); padding: 10px 35px 10px 10px; border-radius: 10px; + white-space: normal; appearance: none; cursor: pointer; background-color: var(--white); From 6d5bf490ab1042f216adffaac8b176a108c52058 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Tue, 24 Sep 2024 11:36:26 +0800 Subject: [PATCH 15/23] fix media --- app/components/auth.tsx | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/app/components/auth.tsx b/app/components/auth.tsx index 52fd860dd6d..39af2566196 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -8,12 +8,14 @@ import Locale from "../locales"; import Delete from "../icons/close.svg"; import Arrow from "../icons/arrow.svg"; import Logo from "../icons/logo.svg"; +import { useMobileScreen } from "@/app/utils"; import BotIcon from "../icons/bot.svg"; import { getClientConfig } from "../config/client"; import LeftIcon from "@/app/icons/left.svg"; import { safeLocalStorage } from "@/app/utils"; const storage = safeLocalStorage(); + export function AuthPage() { const navigate = useNavigate(); const accessStore = useAccessStore(); @@ -113,7 +115,7 @@ export function AuthPage() { function TopBanner() { const [isHovered, setIsHovered] = useState(false); const [isVisible, setIsVisible] = useState(true); - const [isMobile, setIsMobile] = useState(window.innerWidth < 600); + const isMobile = useMobileScreen(); useEffect(() => { // 检查 localStorage 中是否有标记 const bannerDismissed = storage.getItem("bannerDismissed"); @@ -127,15 +129,6 @@ function TopBanner() { } }, []); - useEffect(() => { - const handleResize = () => { - setIsMobile(window.innerWidth < 600); - }; - - window.addEventListener("resize", handleResize); - return () => window.removeEventListener("resize", handleResize); - }, []); - const handleMouseEnter = () => { setIsHovered(true); }; From fe4cba8baff79d21c47c705c5992329497780f49 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Tue, 24 Sep 2024 22:25:36 +0800 Subject: [PATCH 16/23] fix style slect button --- app/components/button.module.scss | 2 +- app/components/model-config.tsx | 2 ++ app/components/settings.module.scss | 6 ++++++ app/components/settings.tsx | 1 + app/components/ui-lib.module.scss | 23 +++++++++++++++++------ 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/app/components/button.module.scss b/app/components/button.module.scss index c65385cfcf6..05248bee812 100644 --- a/app/components/button.module.scss +++ b/app/components/button.module.scss @@ -7,7 +7,7 @@ padding: 10px; cursor: pointer; transition: all 0.3s ease; - // overflow: hidden; + overflow: hidden; user-select: none; outline: none; border: none; diff --git a/app/components/model-config.tsx b/app/components/model-config.tsx index 04cd3ff01a7..6fddf7ee73a 100644 --- a/app/components/model-config.tsx +++ b/app/components/model-config.tsx @@ -6,6 +6,7 @@ import { InputRange } from "./input-range"; import { ListItem, Select } from "./ui-lib"; import { useAllModels } from "../utils/hooks"; import { groupBy } from "lodash-es"; +import styles from "./ui-lib.module.scss"; export function ModelConfigList(props: { modelConfig: ModelConfig; @@ -242,6 +243,7 @@ export function ModelConfigList(props: { subTitle={Locale.Settings.CompressModel.SubTitle} > { diff --git a/app/components/settings.module.scss b/app/components/settings.module.scss index 2ed786efcc4..60664f93aec 100644 --- a/app/components/settings.module.scss +++ b/app/components/settings.module.scss @@ -73,7 +73,7 @@ } } -.SubTitle-button { +.subtitle-button { button { overflow:visible ; } diff --git a/app/components/settings.tsx b/app/components/settings.tsx index 3a2357e6950..dfc4e92e781 100644 --- a/app/components/settings.tsx +++ b/app/components/settings.tsx @@ -690,7 +690,7 @@ export function Settings() { const saasStartComponent = ( , ) { - const { className, children, align, ...otherProps } = props; + const { className, children, align, style, ...otherProps } = props; return (
{ diff --git a/app/components/ui-lib.module.scss b/app/components/ui-lib.module.scss index 8c23142acdf..56aeac311ae 100644 --- a/app/components/ui-lib.module.scss +++ b/app/components/ui-lib.module.scss @@ -260,11 +260,9 @@ .select-with-icon-select { height: 100%; - max-width: 100%; border: var(--border-in-light); padding: 10px 35px 10px 10px; border-radius: 10px; - white-space: normal; appearance: none; cursor: pointer; background-color: var(--white); diff --git a/app/components/ui-lib.tsx b/app/components/ui-lib.tsx index ff317cc750f..10c91b989b0 100644 --- a/app/components/ui-lib.tsx +++ b/app/components/ui-lib.tsx @@ -294,19 +294,32 @@ export function Select( props: React.DetailedHTMLProps< React.SelectHTMLAttributes & { align?: "left" | "center"; + withiconstyle?: CSSProperties; + iconselectstyles?: CSSProperties; }, HTMLSelectElement >, ) { - const { className, children, align, style, ...otherProps } = props; + const { + className, + children, + align, + withiconstyle, + iconselectstyles, + ...otherProps + } = props; return (
- {children} From 10d472e79e2069046a3066db72785f99a127e047 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Wed, 25 Sep 2024 14:41:41 +0800 Subject: [PATCH 20/23] fix --- app/components/model-config.module.scss | 7 +++++++ app/components/model-config.tsx | 4 ++-- app/components/ui-lib.tsx | 18 ++---------------- 3 files changed, 11 insertions(+), 18 deletions(-) create mode 100644 app/components/model-config.module.scss diff --git a/app/components/model-config.module.scss b/app/components/model-config.module.scss new file mode 100644 index 00000000000..40ba03f8657 --- /dev/null +++ b/app/components/model-config.module.scss @@ -0,0 +1,7 @@ +.select-compress-model { + width: 60%; + select { + max-width: 100%; + white-space: normal; + } +} diff --git a/app/components/model-config.tsx b/app/components/model-config.tsx index 008dda6d472..f2297e10b49 100644 --- a/app/components/model-config.tsx +++ b/app/components/model-config.tsx @@ -6,6 +6,7 @@ import { InputRange } from "./input-range"; import { ListItem, Select } from "./ui-lib"; import { useAllModels } from "../utils/hooks"; import { groupBy } from "lodash-es"; +import styles from "./model-config.module.scss"; export function ModelConfigList(props: { modelConfig: ModelConfig; @@ -242,8 +243,7 @@ export function ModelConfigList(props: { subTitle={Locale.Settings.CompressModel.SubTitle} > + From e83f61e74dfc036608eea8a6b9af8d8bb5259191 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Wed, 25 Sep 2024 15:21:17 +0800 Subject: [PATCH 21/23] fix --- app/components/markdown.tsx | 10 +--------- app/locales/cn.ts | 5 +++-- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/app/components/markdown.tsx b/app/components/markdown.tsx index 86adb49289f..9e1d17a3056 100644 --- a/app/components/markdown.tsx +++ b/app/components/markdown.tsx @@ -21,8 +21,6 @@ import { } from "./artifacts"; import { useChatStore } from "../store"; import { IconButton } from "./button"; -import { SAAS_CHAT_URL } from "@/app/constant"; -import { trackConversationGuideToCPaymentClick } from "../utils/auth-settings-events"; export function Mermaid(props: { code: string }) { const ref = useRef(null); const [hasError, setHasError] = useState(false); @@ -281,13 +279,7 @@ function _MarkDownContent(props: { content: string }) { const href = aProps.href || ""; const isInternal = /^\/#/i.test(href); const target = isInternal ? "_self" : aProps.target ?? "_blank"; - const handleClick = () => { - if (href === SAAS_CHAT_URL) { - trackConversationGuideToCPaymentClick(); - } - }; - - return ; + return ; }, }} > diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 3181d1703b6..727f784b49a 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -2,6 +2,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=title`; const isApp = !!getClientConfig()?.isApp; const cn = { @@ -9,10 +10,10 @@ const cn = { Error: { Unauthorized: isApp ? `😆 对话遇到了一些问题,不用慌: - \\ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️` : `😆 对话遇到了一些问题,不用慌: - \ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ 如果你正在使用私有部署版本,点击[这里](/#/auth)输入访问秘钥 🔑 \ 3️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️ `, From 1d2f44fba861e16ea5cd2c3fc25752795ae8dc75 Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Wed, 25 Sep 2024 16:00:48 +0800 Subject: [PATCH 22/23] fix url --- app/locales/ar.ts | 5 +++-- app/locales/bn.ts | 5 +++-- app/locales/cn.ts | 2 +- app/locales/cs.ts | 5 +++-- app/locales/de.ts | 5 +++-- app/locales/en.ts | 5 +++-- app/locales/es.ts | 5 +++-- app/locales/fr.ts | 5 +++-- app/locales/id.ts | 5 +++-- app/locales/it.ts | 5 +++-- app/locales/jp.ts | 5 +++-- app/locales/ko.ts | 5 +++-- app/locales/no.ts | 5 +++-- app/locales/pt.ts | 5 +++-- app/locales/ru.ts | 5 +++-- app/locales/sk.ts | 5 +++-- app/locales/tr.ts | 5 +++-- app/locales/tw.ts | 5 +++-- app/locales/vi.ts | 5 +++-- 19 files changed, 55 insertions(+), 37 deletions(-) diff --git a/app/locales/ar.ts b/app/locales/ar.ts index 0399d7f7c48..fb575700163 100644 --- a/app/locales/ar.ts +++ b/app/locales/ar.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const ar: PartialLocaleType = { @@ -9,10 +10,10 @@ const ar: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق: - \\ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️` : `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق: - \ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ إذا كنت تستخدم إصدار النشر الخاص، انقر [هنا](/#/auth) لإدخال مفتاح الوصول 🔑 \ 3️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️ `, diff --git a/app/locales/bn.ts b/app/locales/bn.ts index 78c0f76f007..94729525b54 100644 --- a/app/locales/bn.ts +++ b/app/locales/bn.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const bn: PartialLocaleType = { @@ -9,10 +10,10 @@ const bn: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই: - \\ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️` : `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই: - \ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ যদি আপনি একটি প্রাইভেট ডেপ্লয়মেন্ট সংস্করণ ব্যবহার করেন, তাহলে [এখানে ক্লিক করুন](/#/auth) প্রবেশাধিকার কীগুলি প্রবেশ করতে 🔑 \ 3️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️ `, diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 727f784b49a..d5fd6d413df 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -2,7 +2,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=title`; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const cn = { diff --git a/app/locales/cs.ts b/app/locales/cs.ts index 972c46edace..33406284325 100644 --- a/app/locales/cs.ts +++ b/app/locales/cs.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const cs: PartialLocaleType = { @@ -9,10 +10,10 @@ const cs: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Rozhovor narazil na nějaké problémy, nebojte se: - \\ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️` : `😆 Rozhovor narazil na nějaké problémy, nebojte se: - \ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Pokud používáte verzi soukromého nasazení, klikněte [sem](/#/auth) a zadejte přístupový klíč 🔑 \ 3️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️ `, diff --git a/app/locales/de.ts b/app/locales/de.ts index 4b878b17067..ac151956e72 100644 --- a/app/locales/de.ts +++ b/app/locales/de.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const de: PartialLocaleType = { @@ -9,10 +10,10 @@ const de: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Das Gespräch hatte einige Probleme, keine Sorge: - \\ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️` : `😆 Das Gespräch hatte einige Probleme, keine Sorge: - \ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Wenn du eine private Bereitstellung verwendest, klicke [hier](/#/auth), um den Zugriffsschlüssel einzugeben 🔑 \ 3️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️ `, diff --git a/app/locales/en.ts b/app/locales/en.ts index 71d02d6b3a0..a291e7712a0 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -2,6 +2,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import { LocaleType } from "./index"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; // if you are adding a new translation, please use PartialLocaleType instead of LocaleType const isApp = !!getClientConfig()?.isApp; @@ -10,10 +11,10 @@ const en: LocaleType = { Error: { Unauthorized: isApp ? `😆 Oops, there's an issue. No worries: - \\ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️` : `😆 Oops, there's an issue. Let's fix it: - \ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Using a private setup? [Click here](/#/auth) to enter your key 🔑 \ 3️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️ `, diff --git a/app/locales/es.ts b/app/locales/es.ts index 3719e7e4c1f..186a7230a3b 100644 --- a/app/locales/es.ts +++ b/app/locales/es.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const es: PartialLocaleType = { @@ -9,10 +10,10 @@ const es: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 La conversación encontró algunos problemas, no te preocupes: - \\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️` : `😆 La conversación encontró algunos problemas, no te preocupes: - \ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Si estás utilizando una versión de implementación privada, haz clic [aquí](/#/auth) para ingresar la clave de acceso 🔑 \ 3️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️ `, diff --git a/app/locales/fr.ts b/app/locales/fr.ts index dd611cbf994..1e222566cf2 100644 --- a/app/locales/fr.ts +++ b/app/locales/fr.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const fr: PartialLocaleType = { @@ -9,10 +10,10 @@ const fr: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 La conversation a rencontré quelques problèmes, pas de panique : - \\ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️` : `😆 La conversation a rencontré quelques problèmes, pas de panique : - \ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Si vous utilisez une version déployée privée, cliquez [ici](/#/auth) pour entrer la clé d'accès 🔑 \ 3️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️ `, diff --git a/app/locales/id.ts b/app/locales/id.ts index c9c6428f192..d5e1e76ae07 100644 --- a/app/locales/id.ts +++ b/app/locales/id.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const id: PartialLocaleType = { @@ -9,10 +10,10 @@ const id: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir: - \\ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️` : `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir: - \ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Jika Anda menggunakan versi penyebaran pribadi, klik [di sini](/#/auth) untuk memasukkan kunci akses 🔑 \ 3️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️ `, diff --git a/app/locales/it.ts b/app/locales/it.ts index 83b80a1b600..12666039474 100644 --- a/app/locales/it.ts +++ b/app/locales/it.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const it: PartialLocaleType = { @@ -9,10 +10,10 @@ const it: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti: - \\ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️` : `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti: - \ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Se stai utilizzando una versione di distribuzione privata, clicca [qui](/#/auth) per inserire la chiave di accesso 🔑 \ 3️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️ `, diff --git a/app/locales/jp.ts b/app/locales/jp.ts index a4f849c778c..c20a8b3a271 100644 --- a/app/locales/jp.ts +++ b/app/locales/jp.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const jp: PartialLocaleType = { @@ -9,10 +10,10 @@ const jp: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 会話中に問題が発生しましたが、心配しないでください: - \\ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️` : `😆 会話中に問題が発生しましたが、心配しないでください: - \ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ プライベートデプロイ版を使用している場合は、[ここをクリックして](/#/auth)アクセストークンを入力してください 🔑 \ 3️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️ `, diff --git a/app/locales/ko.ts b/app/locales/ko.ts index 32eb2be7352..b34863b5101 100644 --- a/app/locales/ko.ts +++ b/app/locales/ko.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const ko: PartialLocaleType = { @@ -9,10 +10,10 @@ const ko: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요: - \\ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️` : `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요: - \ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ 개인 배포 버전을 사용하고 있다면, [여기를 클릭하여](/#/auth) 접근 키를 입력하세요 🔑 \ 3️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️ `, diff --git a/app/locales/no.ts b/app/locales/no.ts index d02b5ce663c..0c3561ec0c1 100644 --- a/app/locales/no.ts +++ b/app/locales/no.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const no: PartialLocaleType = { @@ -9,10 +10,10 @@ const no: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Samtalen har støtt på noen problemer, ikke bekymre deg: - \\ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️` : `😆 Samtalen har støtt på noen problemer, ikke bekymre deg: - \ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Hvis du bruker en privat distribusjonsversjon, klikk [her](/#/auth) for å skrive inn tilgangsnøkkelen 🔑 \ 3️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️ `, diff --git a/app/locales/pt.ts b/app/locales/pt.ts index c1de67384b4..b6de1d330e4 100644 --- a/app/locales/pt.ts +++ b/app/locales/pt.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import { PartialLocaleType } from "../locales/index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const pt: PartialLocaleType = { @@ -9,10 +10,10 @@ const pt: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 A conversa encontrou alguns problemas, não se preocupe: - \\ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️` : `😆 A conversa encontrou alguns problemas, não se preocupe: - \ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Se você estiver usando uma versão de implantação privada, clique [aqui](/#/auth) para inserir a chave de acesso 🔑 \ 3️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️ `, diff --git a/app/locales/ru.ts b/app/locales/ru.ts index 2793ab7ec05..2410e089435 100644 --- a/app/locales/ru.ts +++ b/app/locales/ru.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import { PartialLocaleType } from "../locales/index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const ru: PartialLocaleType = { @@ -9,10 +10,10 @@ const ru: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 В разговоре возникли некоторые проблемы, не переживайте: - \\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️` : `😆 В разговоре возникли некоторые проблемы, не переживайте: - \ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Если вы используете частную версию развертывания, нажмите [здесь](/#/auth), чтобы ввести ключ доступа 🔑 \ 3️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️ `, diff --git a/app/locales/sk.ts b/app/locales/sk.ts index 62cfab0abb0..3edd6532f8b 100644 --- a/app/locales/sk.ts +++ b/app/locales/sk.ts @@ -2,6 +2,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; // if you are adding a new translation, please use PartialLocaleType instead of LocaleType const isApp = !!getClientConfig()?.isApp; @@ -10,10 +11,10 @@ const sk: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Rozhovor narazil na nejaké problémy, nebojte sa: - \\ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️` : `😆 Rozhovor narazil na nejaké problémy, nebojte sa: - \ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Ak používate verziu súkromného nasadenia, kliknite [sem](/#/auth), aby ste zadali prístupový kľúč 🔑 \ 3️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️ `, diff --git a/app/locales/tr.ts b/app/locales/tr.ts index 7fe6170ca76..9f8682e8434 100644 --- a/app/locales/tr.ts +++ b/app/locales/tr.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const tr: PartialLocaleType = { @@ -9,10 +10,10 @@ const tr: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin: - \\ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️` : `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin: - \ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Eğer özel dağıtım sürümü kullanıyorsanız, [buraya tıklayarak](/#/auth) erişim anahtarını girin 🔑 \ 3️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️ `, diff --git a/app/locales/tw.ts b/app/locales/tw.ts index 39e2bc96833..ce5c7874f85 100644 --- a/app/locales/tw.ts +++ b/app/locales/tw.ts @@ -1,6 +1,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const tw = { @@ -8,10 +9,10 @@ const tw = { Error: { Unauthorized: isApp ? `😆 對話遇到了一些問題,不用慌: - \\ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ 如果你想消耗自己的 OpenAI 資源,點擊[這裡](/#/settings)修改設定 ⚙️` : `😆 對話遇到了一些問題,不用慌: - \ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ 如果你正在使用私有部署版本,點擊[這裡](/#/auth)輸入訪問秘鑰 🔑 \ 3️⃣ 如果你想消耗自己的 OpenAI 資源,點擊[這裡](/#/settings)修改設定 ⚙️ `, diff --git a/app/locales/vi.ts b/app/locales/vi.ts index c4b6ffcd503..bdee2db15f8 100644 --- a/app/locales/vi.ts +++ b/app/locales/vi.ts @@ -2,6 +2,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; import { SAAS_CHAT_URL } from "@/app/constant"; +const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const vi: PartialLocaleType = { @@ -9,10 +10,10 @@ const vi: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng: - \\ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL}) + \\ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \\ 2️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️` : `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng: - \ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL}) + \ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL_WITH_PARAM}) \ 2️⃣ Nếu bạn đang sử dụng phiên bản triển khai riêng, hãy nhấp [vào đây](/#/auth) để nhập khóa truy cập 🔑 \ 3️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️ `, From 13c68bd81053bde55081a811e0a4bedd7eb429fc Mon Sep 17 00:00:00 2001 From: lyf <1910527151@qq.com> Date: Wed, 25 Sep 2024 16:11:57 +0800 Subject: [PATCH 23/23] fix url utm --- app/constant.ts | 1 + app/locales/ar.ts | 7 +++---- app/locales/bn.ts | 7 +++---- app/locales/cn.ts | 7 +++---- app/locales/cs.ts | 7 +++---- app/locales/de.ts | 7 +++---- app/locales/en.ts | 7 +++---- app/locales/es.ts | 7 +++---- app/locales/fr.ts | 7 +++---- app/locales/id.ts | 7 +++---- app/locales/it.ts | 7 +++---- app/locales/jp.ts | 7 +++---- app/locales/ko.ts | 7 +++---- app/locales/no.ts | 7 +++---- app/locales/pt.ts | 7 +++---- app/locales/ru.ts | 7 +++---- app/locales/sk.ts | 7 +++---- app/locales/tr.ts | 7 +++---- app/locales/tw.ts | 7 +++---- app/locales/vi.ts | 7 +++---- 20 files changed, 58 insertions(+), 76 deletions(-) diff --git a/app/constant.ts b/app/constant.ts index d97f3b209b6..a54a973daa6 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -503,3 +503,4 @@ export const PLUGINS = [ ]; export const SAAS_CHAT_URL = "https://nextchat.dev/chat"; +export const SAAS_CHAT_UTM_URL = "https://nextchat.dev/chat?utm=github"; diff --git a/app/locales/ar.ts b/app/locales/ar.ts index fb575700163..e2fad3494c3 100644 --- a/app/locales/ar.ts +++ b/app/locales/ar.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const ar: PartialLocaleType = { @@ -10,10 +9,10 @@ const ar: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق: - \\ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️` : `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق: - \ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ إذا كنت تستخدم إصدار النشر الخاص، انقر [هنا](/#/auth) لإدخال مفتاح الوصول 🔑 \ 3️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️ `, diff --git a/app/locales/bn.ts b/app/locales/bn.ts index 94729525b54..f52f101ce35 100644 --- a/app/locales/bn.ts +++ b/app/locales/bn.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const bn: PartialLocaleType = { @@ -10,10 +9,10 @@ const bn: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই: - \\ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️` : `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই: - \ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ যদি আপনি একটি প্রাইভেট ডেপ্লয়মেন্ট সংস্করণ ব্যবহার করেন, তাহলে [এখানে ক্লিক করুন](/#/auth) প্রবেশাধিকার কীগুলি প্রবেশ করতে 🔑 \ 3️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️ `, diff --git a/app/locales/cn.ts b/app/locales/cn.ts index d5fd6d413df..e5bcca0edbb 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -1,8 +1,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; -import { SAAS_CHAT_URL } from "@/app/constant"; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; const isApp = !!getClientConfig()?.isApp; const cn = { @@ -10,10 +9,10 @@ const cn = { Error: { Unauthorized: isApp ? `😆 对话遇到了一些问题,不用慌: - \\ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️` : `😆 对话遇到了一些问题,不用慌: - \ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ 如果你正在使用私有部署版本,点击[这里](/#/auth)输入访问秘钥 🔑 \ 3️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️ `, diff --git a/app/locales/cs.ts b/app/locales/cs.ts index 33406284325..d62a2036710 100644 --- a/app/locales/cs.ts +++ b/app/locales/cs.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const cs: PartialLocaleType = { @@ -10,10 +9,10 @@ const cs: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Rozhovor narazil na nějaké problémy, nebojte se: - \\ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️` : `😆 Rozhovor narazil na nějaké problémy, nebojte se: - \ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Pokud používáte verzi soukromého nasazení, klikněte [sem](/#/auth) a zadejte přístupový klíč 🔑 \ 3️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️ `, diff --git a/app/locales/de.ts b/app/locales/de.ts index ac151956e72..3490190a80a 100644 --- a/app/locales/de.ts +++ b/app/locales/de.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const de: PartialLocaleType = { @@ -10,10 +9,10 @@ const de: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Das Gespräch hatte einige Probleme, keine Sorge: - \\ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️` : `😆 Das Gespräch hatte einige Probleme, keine Sorge: - \ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Wenn du eine private Bereitstellung verwendest, klicke [hier](/#/auth), um den Zugriffsschlüssel einzugeben 🔑 \ 3️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️ `, diff --git a/app/locales/en.ts b/app/locales/en.ts index a291e7712a0..1204575224a 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -1,8 +1,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import { LocaleType } from "./index"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; // if you are adding a new translation, please use PartialLocaleType instead of LocaleType const isApp = !!getClientConfig()?.isApp; @@ -11,10 +10,10 @@ const en: LocaleType = { Error: { Unauthorized: isApp ? `😆 Oops, there's an issue. No worries: - \\ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️` : `😆 Oops, there's an issue. Let's fix it: - \ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Using a private setup? [Click here](/#/auth) to enter your key 🔑 \ 3️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️ `, diff --git a/app/locales/es.ts b/app/locales/es.ts index 186a7230a3b..03af9b439ad 100644 --- a/app/locales/es.ts +++ b/app/locales/es.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const es: PartialLocaleType = { @@ -10,10 +9,10 @@ const es: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 La conversación encontró algunos problemas, no te preocupes: - \\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️` : `😆 La conversación encontró algunos problemas, no te preocupes: - \ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Si estás utilizando una versión de implementación privada, haz clic [aquí](/#/auth) para ingresar la clave de acceso 🔑 \ 3️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️ `, diff --git a/app/locales/fr.ts b/app/locales/fr.ts index 1e222566cf2..d25c60eb6c8 100644 --- a/app/locales/fr.ts +++ b/app/locales/fr.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const fr: PartialLocaleType = { @@ -10,10 +9,10 @@ const fr: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 La conversation a rencontré quelques problèmes, pas de panique : - \\ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️` : `😆 La conversation a rencontré quelques problèmes, pas de panique : - \ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Si vous utilisez une version déployée privée, cliquez [ici](/#/auth) pour entrer la clé d'accès 🔑 \ 3️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️ `, diff --git a/app/locales/id.ts b/app/locales/id.ts index d5e1e76ae07..af96fd2725c 100644 --- a/app/locales/id.ts +++ b/app/locales/id.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const id: PartialLocaleType = { @@ -10,10 +9,10 @@ const id: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir: - \\ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️` : `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir: - \ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Jika Anda menggunakan versi penyebaran pribadi, klik [di sini](/#/auth) untuk memasukkan kunci akses 🔑 \ 3️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️ `, diff --git a/app/locales/it.ts b/app/locales/it.ts index 12666039474..59bc1eb1594 100644 --- a/app/locales/it.ts +++ b/app/locales/it.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const it: PartialLocaleType = { @@ -10,10 +9,10 @@ const it: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti: - \\ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️` : `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti: - \ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Se stai utilizzando una versione di distribuzione privata, clicca [qui](/#/auth) per inserire la chiave di accesso 🔑 \ 3️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️ `, diff --git a/app/locales/jp.ts b/app/locales/jp.ts index c20a8b3a271..e7c81e186bd 100644 --- a/app/locales/jp.ts +++ b/app/locales/jp.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const jp: PartialLocaleType = { @@ -10,10 +9,10 @@ const jp: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 会話中に問題が発生しましたが、心配しないでください: - \\ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️` : `😆 会話中に問題が発生しましたが、心配しないでください: - \ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ プライベートデプロイ版を使用している場合は、[ここをクリックして](/#/auth)アクセストークンを入力してください 🔑 \ 3️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️ `, diff --git a/app/locales/ko.ts b/app/locales/ko.ts index b34863b5101..f2c433b766f 100644 --- a/app/locales/ko.ts +++ b/app/locales/ko.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const ko: PartialLocaleType = { @@ -10,10 +9,10 @@ const ko: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요: - \\ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️` : `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요: - \ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ 개인 배포 버전을 사용하고 있다면, [여기를 클릭하여](/#/auth) 접근 키를 입력하세요 🔑 \ 3️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️ `, diff --git a/app/locales/no.ts b/app/locales/no.ts index 0c3561ec0c1..f056ef12fb3 100644 --- a/app/locales/no.ts +++ b/app/locales/no.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const no: PartialLocaleType = { @@ -10,10 +9,10 @@ const no: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Samtalen har støtt på noen problemer, ikke bekymre deg: - \\ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️` : `😆 Samtalen har støtt på noen problemer, ikke bekymre deg: - \ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Hvis du bruker en privat distribusjonsversjon, klikk [her](/#/auth) for å skrive inn tilgangsnøkkelen 🔑 \ 3️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️ `, diff --git a/app/locales/pt.ts b/app/locales/pt.ts index b6de1d330e4..152f502284c 100644 --- a/app/locales/pt.ts +++ b/app/locales/pt.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import { PartialLocaleType } from "../locales/index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const pt: PartialLocaleType = { @@ -10,10 +9,10 @@ const pt: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 A conversa encontrou alguns problemas, não se preocupe: - \\ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️` : `😆 A conversa encontrou alguns problemas, não se preocupe: - \ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Se você estiver usando uma versão de implantação privada, clique [aqui](/#/auth) para inserir a chave de acesso 🔑 \ 3️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️ `, diff --git a/app/locales/ru.ts b/app/locales/ru.ts index 2410e089435..4294a3b341b 100644 --- a/app/locales/ru.ts +++ b/app/locales/ru.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import { PartialLocaleType } from "../locales/index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const ru: PartialLocaleType = { @@ -10,10 +9,10 @@ const ru: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 В разговоре возникли некоторые проблемы, не переживайте: - \\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️` : `😆 В разговоре возникли некоторые проблемы, не переживайте: - \ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Если вы используете частную версию развертывания, нажмите [здесь](/#/auth), чтобы ввести ключ доступа 🔑 \ 3️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️ `, diff --git a/app/locales/sk.ts b/app/locales/sk.ts index 3edd6532f8b..36454de752a 100644 --- a/app/locales/sk.ts +++ b/app/locales/sk.ts @@ -1,8 +1,7 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; // if you are adding a new translation, please use PartialLocaleType instead of LocaleType const isApp = !!getClientConfig()?.isApp; @@ -11,10 +10,10 @@ const sk: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Rozhovor narazil na nejaké problémy, nebojte sa: - \\ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️` : `😆 Rozhovor narazil na nejaké problémy, nebojte sa: - \ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Ak používate verziu súkromného nasadenia, kliknite [sem](/#/auth), aby ste zadali prístupový kľúč 🔑 \ 3️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️ `, diff --git a/app/locales/tr.ts b/app/locales/tr.ts index 9f8682e8434..2082488a51c 100644 --- a/app/locales/tr.ts +++ b/app/locales/tr.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const tr: PartialLocaleType = { @@ -10,10 +9,10 @@ const tr: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin: - \\ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️` : `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin: - \ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Eğer özel dağıtım sürümü kullanıyorsanız, [buraya tıklayarak](/#/auth) erişim anahtarını girin 🔑 \ 3️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️ `, diff --git a/app/locales/tw.ts b/app/locales/tw.ts index ce5c7874f85..7cb84670894 100644 --- a/app/locales/tw.ts +++ b/app/locales/tw.ts @@ -1,7 +1,6 @@ import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const tw = { @@ -9,10 +8,10 @@ const tw = { Error: { Unauthorized: isApp ? `😆 對話遇到了一些問題,不用慌: - \\ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ 如果你想消耗自己的 OpenAI 資源,點擊[這裡](/#/settings)修改設定 ⚙️` : `😆 對話遇到了一些問題,不用慌: - \ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ 想要零配置開箱即用,[點擊這裡立刻開啟對話 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ 如果你正在使用私有部署版本,點擊[這裡](/#/auth)輸入訪問秘鑰 🔑 \ 3️⃣ 如果你想消耗自己的 OpenAI 資源,點擊[這裡](/#/settings)修改設定 ⚙️ `, diff --git a/app/locales/vi.ts b/app/locales/vi.ts index bdee2db15f8..c53baf35d16 100644 --- a/app/locales/vi.ts +++ b/app/locales/vi.ts @@ -1,8 +1,7 @@ import { SubmitKey } from "../store/config"; import type { PartialLocaleType } from "./index"; import { getClientConfig } from "../config/client"; -import { SAAS_CHAT_URL } from "@/app/constant"; -const SAAS_CHAT_URL_WITH_PARAM = `${SAAS_CHAT_URL}?data=chat`; +import { SAAS_CHAT_UTM_URL } from "@/app/constant"; const isApp = !!getClientConfig()?.isApp; const vi: PartialLocaleType = { @@ -10,10 +9,10 @@ const vi: PartialLocaleType = { Error: { Unauthorized: isApp ? `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng: - \\ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \\ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_UTM_URL}) \\ 2️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️` : `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng: - \ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_URL_WITH_PARAM}) + \ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_UTM_URL}) \ 2️⃣ Nếu bạn đang sử dụng phiên bản triển khai riêng, hãy nhấp [vào đây](/#/auth) để nhập khóa truy cập 🔑 \ 3️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️ `,