mirror of
https://github.com/QuivrHQ/quivr.git
synced 2024-12-15 01:21:48 +03:00
feat: add 2 save buttons on Brain management tab (#1039)
* add 2 save buttons * use translation
This commit is contained in:
parent
f1d6b7892c
commit
d7a508acdd
@ -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" })}
|
||||||
|
@ -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"
|
||||||
|
}
|
||||||
|
@ -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"
|
||||||
|
}
|
||||||
|
@ -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"
|
||||||
|
}
|
||||||
|
@ -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"
|
||||||
|
}
|
||||||
|
@ -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": "Сохранить"
|
||||||
}
|
}
|
||||||
|
@ -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": "保存"
|
||||||
|
}
|
||||||
|
21
frontend/shared/SaveButton.tsx
Normal file
21
frontend/shared/SaveButton.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user