feat: add 2 save buttons on Brain management tab (#1039)

* add 2 save buttons

* use translation
This commit is contained in:
ChloeMouret 2023-08-25 18:37:56 +02:00 committed by GitHub
parent f1d6b7892c
commit d7a508acdd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 310 additions and 276 deletions

View File

@ -15,6 +15,7 @@ import {
paidModels, paidModels,
} from "@/lib/context/BrainConfigProvider/types"; } from "@/lib/context/BrainConfigProvider/types";
import { defineMaxTokens } from "@/lib/helpers/defineMaxTokens"; import { defineMaxTokens } from "@/lib/helpers/defineMaxTokens";
import { SaveButton } from "@/shared/SaveButton";
import { PublicPrompts } from "./components/PublicPrompts/PublicPrompts"; import { PublicPrompts } from "./components/PublicPrompts/PublicPrompts";
import { useSettingsTab } from "./hooks/useSettingsTab"; import { useSettingsTab } from "./hooks/useSettingsTab";
@ -54,7 +55,7 @@ export const SettingsTab = ({ brainId }: SettingsTabProps): JSX.Element => {
<div className="flex flex-row flex-1 justify-between w-full"> <div className="flex flex-row flex-1 justify-between w-full">
<div> <div>
<Field <Field
label={ t("brainName", { ns: "brain" })} label={t("brainName", { ns: "brain" })}
placeholder={t("brainNamePlaceholder", { ns: "brain" })} placeholder={t("brainNamePlaceholder", { ns: "brain" })}
autoComplete="off" autoComplete="off"
className="flex-1" className="flex-1"
@ -140,6 +141,9 @@ export const SettingsTab = ({ brainId }: SettingsTabProps): JSX.Element => {
{...register("maxTokens")} {...register("maxTokens")}
/> />
</fieldset> </fieldset>
<div className="flex w-full justify-end py-4">
<SaveButton handleSubmit={handleSubmit} />
</div>
<Divider text={t("customPromptSection", { ns: "config" })} /> <Divider text={t("customPromptSection", { ns: "config" })} />
<PublicPrompts onSelect={pickPublicPrompt} /> <PublicPrompts onSelect={pickPublicPrompt} />
<Field <Field
@ -156,6 +160,9 @@ export const SettingsTab = ({ brainId }: SettingsTabProps): JSX.Element => {
className="flex-1" className="flex-1"
{...register("prompt.content")} {...register("prompt.content")}
/> />
<div className="flex w-full justify-end py-4">
<SaveButton handleSubmit={handleSubmit} />
</div>
{promptId !== "" && ( {promptId !== "" && (
<Button disabled={isUpdating} onClick={() => void removeBrainPrompt()}> <Button disabled={isUpdating} onClick={() => void removeBrainPrompt()}>
{t("removePrompt", { ns: "config" })} {t("removePrompt", { ns: "config" })}

View File

@ -1,47 +1,48 @@
{ {
"lang": "en-US", "lang": "en-US",
"title": "Quivr - Get a Second Brain with Generative AI", "title": "Quivr - Get a Second Brain with Generative AI",
"title.short": "Get a Second Brain with", "title.short": "Get a Second Brain with",
"description": "Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.", "description": "Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.",
"getStarted": "Get Started", "getStarted": "Get Started",
"features": "Features", "features": "Features",
"two_brains_title": "Two brains is better than one", "two_brains_title": "Two brains is better than one",
"two_brains_desc": "Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.", "two_brains_desc": "Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.",
"any_kind_of_data_title": "Store any kind of data", "any_kind_of_data_title": "Store any kind of data",
"any_kind_of_data_desc": "Quivr can handle almost any type of data you throw at it. Text, images, code snippets, we've got you covered.", "any_kind_of_data_desc": "Quivr can handle almost any type of data you throw at it. Text, images, code snippets, we've got you covered.",
"fast_and_accurate_title": "Get a Fast and Consistent Brain", "fast_and_accurate_title": "Get a Fast and Consistent Brain",
"fast_and_accurate_desc": "Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.", "fast_and_accurate_desc": "Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.",
"fast_and_efficient_title": "Fast and Efficient", "fast_and_efficient_title": "Fast and Efficient",
"fast_and_efficient_desc": "Designed with speed and efficiency at its core. Quivr ensures rapid access to your data.", "fast_and_efficient_desc": "Designed with speed and efficiency at its core. Quivr ensures rapid access to your data.",
"secure_title": "Secure", "secure_title": "Secure",
"secure_desc": "Your data, your control. Always.", "secure_desc": "Your data, your control. Always.",
"open_source_title": "Open source", "open_source_title": "Open source",
"open_source_desc": "Freedom is beautiful, so is Quivr. Open source and free to use.", "open_source_desc": "Freedom is beautiful, so is Quivr. Open source and free to use.",
"toastDismiss": "dismiss", "toastDismiss": "dismiss",
"email": "Email", "email": "Email",
"password": "Password", "password": "Password",
"or": "or", "or": "or",
"loginButton": "Login", "loginButton": "Login",
"signUpButton": "Sign up", "signUpButton": "Sign up",
"logoutButton": "Logout", "logoutButton": "Logout",
"updateButton": "Update", "updateButton": "Update",
"uploadButton": "Upload", "uploadButton": "Upload",
"uploadingButton": "Uploading...", "uploadingButton": "Uploading...",
"crawlButton": "Crawl", "crawlButton": "Crawl",
"chatButton": "Chat", "chatButton": "Chat",
"deleteButton": "Delete", "deleteButton": "Delete",
"deleteForeverButton": "Delete forever", "deleteForeverButton": "Delete forever",
"doneButton": "Done", "doneButton": "Done",
"resetButton": "Reset", "resetButton": "Reset",
"newChatButton": "New Chat", "newChatButton": "New Chat",
"createButton": "Create", "createButton": "Create",
"shareButton": "Share", "shareButton": "Share",
"Upload": "Upload", "Upload": "Upload",
"Chat": "Chat", "Chat": "Chat",
"Explore": "Explore", "Explore": "Explore",
"loading": "Loading...", "loading": "Loading...",
"comingSoon": "Coming soon", "comingSoon": "Coming soon",
"Viewer": "Viewer", "Viewer": "Viewer",
"Editor": "Editor", "Editor": "Editor",
"Owner": "Owner" "Owner": "Owner",
} "saveButton": "Save"
}

View File

@ -1,47 +1,48 @@
{ {
"any_kind_of_data_desc": "Quivr puede gestionar casi cualquier tipo de dato que le brindes. Texto, imagen, fragmentos de código, te tenemos cubierto.", "any_kind_of_data_desc": "Quivr puede gestionar casi cualquier tipo de dato que le brindes. Texto, imagen, fragmentos de código, te tenemos cubierto.",
"any_kind_of_data_title": "Almacena cualquier tipo de dato", "any_kind_of_data_title": "Almacena cualquier tipo de dato",
"Chat": "Conversar", "Chat": "Conversar",
"chatButton": "Conversar", "chatButton": "Conversar",
"comingSoon": "Próximamente", "comingSoon": "Próximamente",
"crawlButton": "Rastrear", "crawlButton": "Rastrear",
"createButton": "Crear", "createButton": "Crear",
"deleteButton": "Borrar", "deleteButton": "Borrar",
"deleteForeverButton": "Borrar para siempre", "deleteForeverButton": "Borrar para siempre",
"description": "Quivr es tu segundo cerebro en la nube, diseñado para facilitar el almacenamiento y obtención de información inestructurada.", "description": "Quivr es tu segundo cerebro en la nube, diseñado para facilitar el almacenamiento y obtención de información inestructurada.",
"doneButton": "Listo", "doneButton": "Listo",
"Editor": "Editor", "Editor": "Editor",
"email": "Correo electrónico", "email": "Correo electrónico",
"Explore": "Explorar", "Explore": "Explorar",
"fast_and_accurate_desc": "Quivr es tu segundo cerebro en la nube, diseñado para almacenar y obtener información inestructurada.", "fast_and_accurate_desc": "Quivr es tu segundo cerebro en la nube, diseñado para almacenar y obtener información inestructurada.",
"fast_and_accurate_title": "Obtén un Cerebro rápido y consistente", "fast_and_accurate_title": "Obtén un Cerebro rápido y consistente",
"fast_and_efficient_desc": "Diseñado con velocidad y eficiciencia como base. Quivr asegura rápido acceso a tus datos.", "fast_and_efficient_desc": "Diseñado con velocidad y eficiciencia como base. Quivr asegura rápido acceso a tus datos.",
"fast_and_efficient_title": "Rápido y eficiente", "fast_and_efficient_title": "Rápido y eficiente",
"features": "Características", "features": "Características",
"getStarted": "Empezar a usar", "getStarted": "Empezar a usar",
"lang": "es-ES", "lang": "es-ES",
"loading": "Cargando...", "loading": "Cargando...",
"loginButton": "Iniciar sesión", "loginButton": "Iniciar sesión",
"logoutButton": "Cerrar sesión", "logoutButton": "Cerrar sesión",
"newChatButton": "Nueva conversación", "newChatButton": "Nueva conversación",
"open_source_desc": "La libertad es hermosa, al igual que Quivr. Código abierto y de uso gratuito.", "open_source_desc": "La libertad es hermosa, al igual que Quivr. Código abierto y de uso gratuito.",
"open_source_title": "Open source", "open_source_title": "Open source",
"or": "o", "or": "o",
"Owner": "Propietario", "Owner": "Propietario",
"password": "Contraseña", "password": "Contraseña",
"resetButton": "Restaurar", "resetButton": "Restaurar",
"secure_desc": "Tú controlas tus datos. Siempre.", "secure_desc": "Tú controlas tus datos. Siempre.",
"secure_title": "Seguro", "secure_title": "Seguro",
"shareButton": "Compartir", "shareButton": "Compartir",
"signUpButton": "Registrarse", "signUpButton": "Registrarse",
"title": "Quivr - Tu segundo cerebro con IA generativa", "title": "Quivr - Tu segundo cerebro con IA generativa",
"title.short": "Obtén un Segundo Cerebro con", "title.short": "Obtén un Segundo Cerebro con",
"toastDismiss": "cerrar", "toastDismiss": "cerrar",
"two_brains_desc": "Quivr es tu segundo cerebro en la nube, diseñado para almacenar y obtener información inestructurada.", "two_brains_desc": "Quivr es tu segundo cerebro en la nube, diseñado para almacenar y obtener información inestructurada.",
"two_brains_title": "Dos cerebros son mejores que uno", "two_brains_title": "Dos cerebros son mejores que uno",
"updateButton": "Actualizar", "updateButton": "Actualizar",
"Upload": "Subir", "Upload": "Subir",
"uploadButton": "Subir", "uploadButton": "Subir",
"uploadingButton": "Subiendo...", "uploadingButton": "Subiendo...",
"Viewer": "Espectador" "Viewer": "Espectador",
} "saveButton": "Guardar"
}

View File

@ -1,47 +1,48 @@
{ {
"lang": "fr-FR", "lang": "fr-FR",
"title": "Quivr - Obtenez un deuxième cerveau avec l'IA générative", "title": "Quivr - Obtenez un deuxième cerveau avec l'IA générative",
"title.short": "Obtenez un deuxième cerveau avec", "title.short": "Obtenez un deuxième cerveau avec",
"description": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.", "description": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.",
"getStarted": "Commencer", "getStarted": "Commencer",
"features": "Fonctionnalités", "features": "Fonctionnalités",
"two_brains_title": "Deux cerveaux valent mieux qu'un", "two_brains_title": "Deux cerveaux valent mieux qu'un",
"two_brains_desc": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.", "two_brains_desc": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.",
"any_kind_of_data_title": "Stockez n'importe quel type de données", "any_kind_of_data_title": "Stockez n'importe quel type de données",
"any_kind_of_data_desc": "Quivr peut gérer presque n'importe quel type de données que vous lui donnez. Texte, images, extraits de code, nous avons ce qu'il vous faut.", "any_kind_of_data_desc": "Quivr peut gérer presque n'importe quel type de données que vous lui donnez. Texte, images, extraits de code, nous avons ce qu'il vous faut.",
"fast_and_accurate_title": "Obtenez un cerveau rapide et cohérent", "fast_and_accurate_title": "Obtenez un cerveau rapide et cohérent",
"fast_and_accurate_desc": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.", "fast_and_accurate_desc": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.",
"fast_and_efficient_title": "Rapide et efficace", "fast_and_efficient_title": "Rapide et efficace",
"fast_and_efficient_desc": "Conçu avec la rapidité et l'efficacité à son cœur. Quivr assure un accès rapide à vos données.", "fast_and_efficient_desc": "Conçu avec la rapidité et l'efficacité à son cœur. Quivr assure un accès rapide à vos données.",
"secure_title": "Sécurisé", "secure_title": "Sécurisé",
"secure_desc": "Vos données, votre contrôle. Toujours.", "secure_desc": "Vos données, votre contrôle. Toujours.",
"open_source_title": "Open source", "open_source_title": "Open source",
"open_source_desc": "La liberté est belle, tout comme Quivr. Open source et gratuit à utiliser.", "open_source_desc": "La liberté est belle, tout comme Quivr. Open source et gratuit à utiliser.",
"toastDismiss": "ignorer", "toastDismiss": "ignorer",
"email": "Email", "email": "Email",
"password": "Mot de passe", "password": "Mot de passe",
"or": "ou", "or": "ou",
"loginButton": "Connexion", "loginButton": "Connexion",
"signUpButton": "S'inscrire", "signUpButton": "S'inscrire",
"logoutButton": "Déconnexion", "logoutButton": "Déconnexion",
"updateButton": "Mettre à jour", "updateButton": "Mettre à jour",
"uploadButton": "Télécharger", "uploadButton": "Télécharger",
"uploadingButton": "Téléchargement...", "uploadingButton": "Téléchargement...",
"crawlButton": "Explorer", "crawlButton": "Explorer",
"chatButton": "Chat", "chatButton": "Chat",
"deleteButton": "Supprimer", "deleteButton": "Supprimer",
"deleteForeverButton": "Supprimer définitivement", "deleteForeverButton": "Supprimer définitivement",
"doneButton": "Fait", "doneButton": "Fait",
"resetButton": "Réinitialiser", "resetButton": "Réinitialiser",
"newChatButton": "Nouveau chat", "newChatButton": "Nouveau chat",
"createButton": "Créer", "createButton": "Créer",
"shareButton": "Partager", "shareButton": "Partager",
"Upload": "Télécharger", "Upload": "Télécharger",
"Chat": "Chat", "Chat": "Chat",
"Explore": "Explorer", "Explore": "Explorer",
"loading": "Chargement...", "loading": "Chargement...",
"comingSoon": "Bientôt disponible", "comingSoon": "Bientôt disponible",
"Viewer": "Visualiseur", "Viewer": "Visualiseur",
"Editor": "Éditeur", "Editor": "Éditeur",
"Owner": "Propriétaire" "Owner": "Propriétaire",
} "saveButton": "Sauvegarder"
}

View File

@ -1,47 +1,48 @@
{ {
"lang": "pt-BR", "lang": "pt-BR",
"title": "Quivr - Tenha um Segundo Cérebro com IA Generativa", "title": "Quivr - Tenha um Segundo Cérebro com IA Generativa",
"title.short": "Tenha um Segundo Cérebro com", "title.short": "Tenha um Segundo Cérebro com",
"description": "Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.", "description": "Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.",
"getStarted": "Começar", "getStarted": "Começar",
"features": "Recursos", "features": "Recursos",
"two_brains_title": "Dois cérebros são melhores que um", "two_brains_title": "Dois cérebros são melhores que um",
"two_brains_desc": "Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.", "two_brains_desc": "Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.",
"any_kind_of_data_title": "Armazene qualquer tipo de dado", "any_kind_of_data_title": "Armazene qualquer tipo de dado",
"any_kind_of_data_desc": "Quivr pode lidar com quase qualquer tipo de dado que você jogar nele. Texto, imagens, trechos de código, estamos aqui para ajudar.", "any_kind_of_data_desc": "Quivr pode lidar com quase qualquer tipo de dado que você jogar nele. Texto, imagens, trechos de código, estamos aqui para ajudar.",
"fast_and_accurate_title": "Tenha um Cérebro Rápido e Consistente", "fast_and_accurate_title": "Tenha um Cérebro Rápido e Consistente",
"fast_and_accurate_desc": "Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.", "fast_and_accurate_desc": "Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.",
"fast_and_efficient_title": "Rápido e Eficiente", "fast_and_efficient_title": "Rápido e Eficiente",
"fast_and_efficient_desc": "Projetado com velocidade e eficiência em seu núcleo. Quivr garante acesso rápido aos seus dados.", "fast_and_efficient_desc": "Projetado com velocidade e eficiência em seu núcleo. Quivr garante acesso rápido aos seus dados.",
"secure_title": "Seguro", "secure_title": "Seguro",
"secure_desc": "Seus dados, seu controle. Sempre.", "secure_desc": "Seus dados, seu controle. Sempre.",
"open_source_title": "Código aberto", "open_source_title": "Código aberto",
"open_source_desc": "A liberdade é bela, assim como o Quivr. Código aberto e gratuito para usar.", "open_source_desc": "A liberdade é bela, assim como o Quivr. Código aberto e gratuito para usar.",
"toastDismiss": "fechar", "toastDismiss": "fechar",
"email": "Email", "email": "Email",
"password": "Senha", "password": "Senha",
"or": "ou", "or": "ou",
"loginButton": "Entrar", "loginButton": "Entrar",
"signUpButton": "Cadastre-se", "signUpButton": "Cadastre-se",
"logoutButton": "Sair", "logoutButton": "Sair",
"updateButton": "Atualizar", "updateButton": "Atualizar",
"uploadButton": "Enviar", "uploadButton": "Enviar",
"uploadingButton": "Enviando...", "uploadingButton": "Enviando...",
"crawlButton": "Rastrear", "crawlButton": "Rastrear",
"chatButton": "Chat", "chatButton": "Chat",
"deleteButton": "Excluir", "deleteButton": "Excluir",
"deleteForeverButton": "Excluir permanentemente", "deleteForeverButton": "Excluir permanentemente",
"doneButton": "Concluído", "doneButton": "Concluído",
"resetButton": "Redefinir", "resetButton": "Redefinir",
"newChatButton": "Novo Chat", "newChatButton": "Novo Chat",
"createButton": "Criar", "createButton": "Criar",
"shareButton": "Compartilhar", "shareButton": "Compartilhar",
"Upload": "Enviar", "Upload": "Enviar",
"Chat": "Chat", "Chat": "Chat",
"Explore": "Explorar", "Explore": "Explorar",
"loading": "Carregando...", "loading": "Carregando...",
"comingSoon": "Em breve", "comingSoon": "Em breve",
"Viewer": "Visualizador", "Viewer": "Visualizador",
"Editor": "Editor", "Editor": "Editor",
"Owner": "Proprietário" "Owner": "Proprietário",
} "saveButton": "Salvar"
}

View File

@ -1,47 +1,48 @@
{ {
"lang": "ru-RU", "lang": "ru-RU",
"title": "Quivr - Второй мозг с генеративным ИИ", "title": "Quivr - Второй мозг с генеративным ИИ",
"title.short": "Второй мозг с", "title.short": "Второй мозг с",
"description": "Quivr - это ваш второй мозг в облаке, предназначенный для легкого хранения и извлечения неструктурированной информации.", "description": "Quivr - это ваш второй мозг в облаке, предназначенный для легкого хранения и извлечения неструктурированной информации.",
"getStarted": "Начать", "getStarted": "Начать",
"features": "Особенности", "features": "Особенности",
"two_brains_title": "Два мозга лучше одного", "two_brains_title": "Два мозга лучше одного",
"two_brains_desc": "Quivr - это ваш второй мозг в облаке, предназначенный для легкого хранения и извлечения неструктурированной информации.", "two_brains_desc": "Quivr - это ваш второй мозг в облаке, предназначенный для легкого хранения и извлечения неструктурированной информации.",
"any_kind_of_data_title": "Храните любые данные", "any_kind_of_data_title": "Храните любые данные",
"any_kind_of_data_desc": "Quivr может обрабатывать практически любой тип данных, с которым вы работаете. Текст, изображения, фрагменты кода - мы позаботились о вас.", "any_kind_of_data_desc": "Quivr может обрабатывать практически любой тип данных, с которым вы работаете. Текст, изображения, фрагменты кода - мы позаботились о вас.",
"fast_and_accurate_title": "Получите быстрый и последовательный мозг", "fast_and_accurate_title": "Получите быстрый и последовательный мозг",
"fast_and_accurate_desc": "Quivr - это ваш второй мозг в облаке, предназначенный для легкого хранения и извлечения неструктурированной информации.", "fast_and_accurate_desc": "Quivr - это ваш второй мозг в облаке, предназначенный для легкого хранения и извлечения неструктурированной информации.",
"fast_and_efficient_title": "Быстро и эффективно", "fast_and_efficient_title": "Быстро и эффективно",
"fast_and_efficient_desc": "Создан для скорости и эффективности. Quivr обеспечивает быстрый доступ к вашим данным.", "fast_and_efficient_desc": "Создан для скорости и эффективности. Quivr обеспечивает быстрый доступ к вашим данным.",
"secure_title": "Безопасность", "secure_title": "Безопасность",
"secure_desc": "Ваши данные - ваши контроль. Всегда.", "secure_desc": "Ваши данные - ваши контроль. Всегда.",
"open_source_title": "Открытый исходный код", "open_source_title": "Открытый исходный код",
"open_source_desc": "Свобода красива, так же как и Quivr. Открытый и бесплатный для использования.", "open_source_desc": "Свобода красива, так же как и Quivr. Открытый и бесплатный для использования.",
"toastDismiss": "закрыть", "toastDismiss": "закрыть",
"email": "Email", "email": "Email",
"password": "Пароль", "password": "Пароль",
"or": "или", "or": "или",
"loginButton": "Войти", "loginButton": "Войти",
"signUpButton": "Зарегистрироваться", "signUpButton": "Зарегистрироваться",
"logoutButton": "Выйти", "logoutButton": "Выйти",
"updateButton": "Обновить", "updateButton": "Обновить",
"uploadButton": "Загрузить", "uploadButton": "Загрузить",
"uploadingButton": "Загрузка...", "uploadingButton": "Загрузка...",
"crawlButton": "Извлечь информацию", "crawlButton": "Извлечь информацию",
"chatButton": "Чат", "chatButton": "Чат",
"deleteButton": "Удалить", "deleteButton": "Удалить",
"deleteForeverButton": "Удалить навсегда", "deleteForeverButton": "Удалить навсегда",
"doneButton": "Готово", "doneButton": "Готово",
"resetButton": "Сбросить", "resetButton": "Сбросить",
"newChatButton": "Новый чат", "newChatButton": "Новый чат",
"createButton": "Создать", "createButton": "Создать",
"shareButton": "Поделиться", "shareButton": "Поделиться",
"Upload": "Загрузка", "Upload": "Загрузка",
"Chat": "Чат", "Chat": "Чат",
"Explore": "Исследовать", "Explore": "Исследовать",
"loading": "Загрузка...", "loading": "Загрузка...",
"comingSoon": "Скоро", "comingSoon": "Скоро",
"Viewer": "Просмотр", "Viewer": "Просмотр",
"Editor": "Редактор", "Editor": "Редактор",
"Owner": "Владелец" "Owner": "Владелец",
"saveButton": "Сохранить"
} }

View File

@ -1,47 +1,48 @@
{ {
"lang": "zh-CN", "lang": "zh-CN",
"title": "Quivr - 通过人工智能获得第二个大脑", "title": "Quivr - 通过人工智能获得第二个大脑",
"title.short": "获得第二个大脑", "title.short": "获得第二个大脑",
"description": "Quivr 是您在云中的第二个大脑,让您轻松存储和检索非结构化信息。", "description": "Quivr 是您在云中的第二个大脑,让您轻松存储和检索非结构化信息。",
"getStarted": "开始使用", "getStarted": "开始使用",
"features": "功能", "features": "功能",
"two_brains_title": "两个脑袋总比一个好", "two_brains_title": "两个脑袋总比一个好",
"two_brains_desc": "Quivr 是您在云中的第二个大脑,让您轻松存储和检索非结构化信息。", "two_brains_desc": "Quivr 是您在云中的第二个大脑,让您轻松存储和检索非结构化信息。",
"any_kind_of_data_title": "存储任何类型的数据", "any_kind_of_data_title": "存储任何类型的数据",
"any_kind_of_data_desc": "Quivr几乎可以处理任何类型的数据。文本、图像、代码片段我们会帮你处理的。", "any_kind_of_data_desc": "Quivr几乎可以处理任何类型的数据。文本、图像、代码片段我们会帮你处理的。",
"fast_and_accurate_title": "获得一个快速而稳定的大脑", "fast_and_accurate_title": "获得一个快速而稳定的大脑",
"fast_and_accurate_desc": "Quivr 是您在云中的第二个大脑,让您轻松存储和检索非结构化信息。", "fast_and_accurate_desc": "Quivr 是您在云中的第二个大脑,让您轻松存储和检索非结构化信息。",
"fast_and_efficient_title": "快速高效", "fast_and_efficient_title": "快速高效",
"fast_and_efficient_desc": "以速度和效率为核心设计。Quivr确保快速访问您的数据。", "fast_and_efficient_desc": "以速度和效率为核心设计。Quivr确保快速访问您的数据。",
"secure_title": "安全", "secure_title": "安全",
"secure_desc": "您的数据,由您掌控。始终如此。", "secure_desc": "您的数据,由您掌控。始终如此。",
"open_source_title": "开源", "open_source_title": "开源",
"open_source_desc": "自由是美好的Quivr 也是如此。开放源代码,免费使用。", "open_source_desc": "自由是美好的Quivr 也是如此。开放源代码,免费使用。",
"toastDismiss": "dismiss", "toastDismiss": "dismiss",
"email": "Email", "email": "Email",
"password": "密码", "password": "密码",
"or": "或", "or": "或",
"loginButton": "登录", "loginButton": "登录",
"signUpButton": "注册", "signUpButton": "注册",
"logoutButton": "注销", "logoutButton": "注销",
"updateButton": "更新", "updateButton": "更新",
"uploadButton": "上传", "uploadButton": "上传",
"uploadingButton": "上传中...", "uploadingButton": "上传中...",
"crawlButton": "抓取", "crawlButton": "抓取",
"chatButton": "聊天", "chatButton": "聊天",
"deleteButton": "删除", "deleteButton": "删除",
"deleteForeverButton": "永久删除", "deleteForeverButton": "永久删除",
"doneButton": "完成", "doneButton": "完成",
"resetButton": "重置", "resetButton": "重置",
"newChatButton": "新聊天", "newChatButton": "新聊天",
"createButton": "创建", "createButton": "创建",
"shareButton": "分享", "shareButton": "分享",
"Upload": "上传", "Upload": "上传",
"Chat": "聊天", "Chat": "聊天",
"Explore": "探索", "Explore": "探索",
"loading": "加载中...", "loading": "加载中...",
"comingSoon": "即将推出", "comingSoon": "即将推出",
"Viewer": "查看", "Viewer": "查看",
"Editor": "编辑", "Editor": "编辑",
"Owner": "作者" "Owner": "作者",
} "saveButton": "保存"
}

View File

@ -0,0 +1,21 @@
import { ReactElement } from "react";
import { useTranslation } from "react-i18next";
import Button from "@/lib/components/ui/Button";
interface Props {
handleSubmit: (checkDirty: boolean) => Promise<void>;
}
export const SaveButton = ({ handleSubmit }: Props): ReactElement => {
const { t } = useTranslation(["translation"]);
return (
<Button
variant={"primary"}
onClick={() => void handleSubmit(true)}
type="button"
>
{t("saveButton")}
</Button>
);
};