mirror of
https://github.com/QuivrHQ/quivr.git
synced 2024-12-14 07:59:00 +03:00
feat: update sentry (#3326)
# Description Please include a summary of the changes and the related issue. Please also include relevant motivation and context. ## Checklist before requesting a review Please delete options that are not relevant. - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented hard-to-understand areas - [ ] I have ideally added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged ## Screenshots (if appropriate):
This commit is contained in:
parent
306285bafa
commit
3d9cbe5cea
3
frontend/.gitignore
vendored
3
frontend/.gitignore
vendored
@ -45,3 +45,6 @@ next-env.d.ts
|
||||
|
||||
# Sentry Config File
|
||||
.sentryclirc
|
||||
|
||||
# Sentry Config File
|
||||
.env.sentry-build-plugin
|
||||
|
@ -34,6 +34,7 @@ ARG NEXT_PUBLIC_SHOW_TOKENS
|
||||
ARG NEXT_PUBLIC_PROJECT_NAME
|
||||
ARG NEXT_PUBLIC_POSTHOG_KEY
|
||||
ARG NEXT_PUBLIC_POSTHOG_HOST
|
||||
ARG SENTRY_AUTH_TOKEN
|
||||
|
||||
ENV NEXT_PUBLIC_ENV=$NEXT_PUBLIC_ENV
|
||||
ENV NEXT_PUBLIC_BACKEND_URL=$NEXT_PUBLIC_BACKEND_URL
|
||||
@ -46,7 +47,7 @@ ENV NEXT_PUBLIC_SHOW_TOKENS=$NEXT_PUBLIC_SHOW_TOKENS
|
||||
ENV NEXT_PUBLIC_PROJECT_NAME=$NEXT_PUBLIC_PROJECT_NAME
|
||||
ENV NEXT_PUBLIC_POSTHOG_KEY=$NEXT_PUBLIC_POSTHOG_KEY
|
||||
ENV NEXT_PUBLIC_POSTHOG_HOST=$NEXT_PUBLIC_POSTHOG_HOST
|
||||
|
||||
ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN
|
||||
|
||||
# Next.js collects completely anonymous telemetry data about general usage.
|
||||
# Learn more here: https://nextjs.org/telemetry
|
||||
@ -98,6 +99,8 @@ ARG NEXT_PUBLIC_POSTHOG_KEY
|
||||
ENV NEXT_PUBLIC_POSTHOG_KEY=$NEXT_PUBLIC_POSTHOG_KEY
|
||||
ARG NEXT_PUBLIC_POSTHOG_HOST
|
||||
ENV NEXT_PUBLIC_POSTHOG_HOST=$NEXT_PUBLIC_POSTHOG_HOST
|
||||
ARG SENTRY_AUTH_TOKEN
|
||||
ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN
|
||||
|
||||
# server.js is created by next build from the standalone output
|
||||
# https://nextjs.org/docs/pages/api-reference/next-config-js/output
|
||||
|
@ -1,23 +1,22 @@
|
||||
version: v2
|
||||
name: quivr-demo-front
|
||||
services:
|
||||
- name: quivr-frontend
|
||||
run: ""
|
||||
type: web
|
||||
instances: 1
|
||||
cpuCores: 0.2
|
||||
ramMegabytes: 240
|
||||
terminationGracePeriodSeconds: 30
|
||||
port: 3000
|
||||
domains:
|
||||
- name: demo.quivr.app
|
||||
sleep: false
|
||||
- name: quivr-frontend
|
||||
run: ""
|
||||
type: web
|
||||
instances: 1
|
||||
cpuCores: 0.2
|
||||
ramMegabytes: 240
|
||||
terminationGracePeriodSeconds: 30
|
||||
port: 3000
|
||||
domains:
|
||||
- name: demo.quivr.app
|
||||
sleep: false
|
||||
build:
|
||||
context: ./frontend
|
||||
method: docker
|
||||
dockerfile: ./frontend/Dockerfile
|
||||
envGroups:
|
||||
- preview-frontend
|
||||
- preview-frontend
|
||||
autoRollback:
|
||||
enabled: false
|
||||
|
||||
|
@ -14,9 +14,9 @@ export const useAzureLogin = (): {
|
||||
const signInWithAzure = async () => {
|
||||
setIsPending(true);
|
||||
const { error } = await supabase.auth.signInWithOAuth({
|
||||
provider: 'azure',
|
||||
provider: "azure",
|
||||
options: {
|
||||
scopes: 'email',
|
||||
scopes: "email",
|
||||
},
|
||||
});
|
||||
setIsPending(false);
|
||||
@ -32,4 +32,4 @@ export const useAzureLogin = (): {
|
||||
signInWithAzure,
|
||||
isPending,
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -43,4 +43,4 @@
|
||||
font-size: Typography.$tiny;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,16 @@
|
||||
.ProseMirror p.is-editor-empty:first-child::before {
|
||||
content: attr(data-placeholder);
|
||||
float: left;
|
||||
color: #adb5bd;
|
||||
pointer-events: none;
|
||||
height: 0;
|
||||
content: attr(data-placeholder);
|
||||
float: left;
|
||||
color: #adb5bd;
|
||||
pointer-events: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.ProseMirror * {
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.mention {
|
||||
display: none;
|
||||
}
|
||||
display: none;
|
||||
}
|
||||
|
@ -4,21 +4,18 @@ import { LuArrowLeftFromLine } from "react-icons/lu";
|
||||
import { useMenuContext } from "@/lib/context/MenuProvider/hooks/useMenuContext";
|
||||
import { useDevice } from "@/lib/hooks/useDevice";
|
||||
|
||||
import styles from './MenuControlButton.module.scss';
|
||||
import styles from "./MenuControlButton.module.scss";
|
||||
|
||||
export const MenuControlButton = (): JSX.Element => {
|
||||
const { isOpened, setIsOpened } = useMenuContext();
|
||||
const { isMobile } = useDevice();
|
||||
const Icon = isOpened ? LuArrowLeftFromLine : GiHamburgerMenu;
|
||||
const { isOpened, setIsOpened } = useMenuContext();
|
||||
const { isMobile } = useDevice();
|
||||
const Icon = isOpened ? LuArrowLeftFromLine : GiHamburgerMenu;
|
||||
|
||||
if (isOpened && isMobile) {
|
||||
return <></>;
|
||||
}
|
||||
if (isOpened && isMobile) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
return (
|
||||
<Icon
|
||||
className={styles.menu_icon}
|
||||
onClick={() => setIsOpened(!isOpened)}
|
||||
/>
|
||||
);
|
||||
return (
|
||||
<Icon className={styles.menu_icon} onClick={() => setIsOpened(!isOpened)} />
|
||||
);
|
||||
};
|
||||
|
@ -11,7 +11,7 @@ export const FileLine = ({
|
||||
name,
|
||||
selectable,
|
||||
id,
|
||||
icon
|
||||
icon,
|
||||
}: FileLineProps): JSX.Element => {
|
||||
return (
|
||||
<SyncElementLine
|
||||
@ -19,7 +19,7 @@ export const FileLine = ({
|
||||
selectable={selectable}
|
||||
id={id}
|
||||
isFolder={false}
|
||||
icon= {icon}
|
||||
icon={icon}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
@ -1,3 +1,3 @@
|
||||
* {
|
||||
white-space: pre-line;
|
||||
}
|
||||
white-space: pre-line;
|
||||
}
|
||||
|
@ -27,4 +27,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,60 +1,60 @@
|
||||
:root {
|
||||
--white-0: #fcfcfc;
|
||||
--white-1: #f8f8f8;
|
||||
--white-2: #f4f4f4;
|
||||
--white-0: #fcfcfc;
|
||||
--white-1: #f8f8f8;
|
||||
--white-2: #f4f4f4;
|
||||
|
||||
/* Black */
|
||||
--black-0: #1f1f1f;
|
||||
--black-1: #252525;
|
||||
--black-2: #2b2b2b;
|
||||
--black-3: #313131;
|
||||
--black-4: #373737;
|
||||
--black-5: #3d3d3d;
|
||||
--black-6: #434343;
|
||||
--black-7: #494949;
|
||||
/* Black */
|
||||
--black-0: #1f1f1f;
|
||||
--black-1: #252525;
|
||||
--black-2: #2b2b2b;
|
||||
--black-3: #313131;
|
||||
--black-4: #373737;
|
||||
--black-5: #3d3d3d;
|
||||
--black-6: #434343;
|
||||
--black-7: #494949;
|
||||
|
||||
/* Grey */
|
||||
--grey-O: #707070;
|
||||
--grey-1: #818080;
|
||||
--grey-2: #c8c8c8;
|
||||
--grey-3: #cbcbcb;
|
||||
--grey-4: #e7e9ec;
|
||||
--grey-5: #d3d3d3;
|
||||
--grey-6: #f5f5f5;
|
||||
/* Grey */
|
||||
--grey-O: #707070;
|
||||
--grey-1: #818080;
|
||||
--grey-2: #c8c8c8;
|
||||
--grey-3: #cbcbcb;
|
||||
--grey-4: #e7e9ec;
|
||||
--grey-5: #d3d3d3;
|
||||
--grey-6: #f5f5f5;
|
||||
|
||||
/* Primary */
|
||||
--primary-0: #6142d4;
|
||||
--primary-1: #d0c6f2;
|
||||
--primary-2: #f5f3fd;
|
||||
/* Primary */
|
||||
--primary-0: #6142d4;
|
||||
--primary-1: #d0c6f2;
|
||||
--primary-2: #f5f3fd;
|
||||
|
||||
/* Accent */
|
||||
--accent: #13abba;
|
||||
|
||||
/* Gold */
|
||||
--gold: #b8860b;
|
||||
--gold-lightest: #f0ebdd;;
|
||||
|
||||
/* Error */
|
||||
--dangerous-dark: #e30c17;
|
||||
--dangerous: #9b373c;
|
||||
--dangerous-lightest: #eedddd;
|
||||
|
||||
/* Warning */
|
||||
--warning: #c77d33;
|
||||
--warning-lightest: #f2e9e0;
|
||||
|
||||
/* Success */
|
||||
--success: #47a455;
|
||||
--success-lightest: #d0edd4;
|
||||
/* Accent */
|
||||
--accent: #13abba;
|
||||
|
||||
/* Code */
|
||||
--code-yellow: #e6db74;
|
||||
--code-grey: #f8f8f2;
|
||||
--code-green: #a6e22e;
|
||||
--code-purple: #ae81ff;
|
||||
--code-red: #f92672;
|
||||
--code-dark-grey: #f8f8f2;
|
||||
--code-very-dark-grey: #75715e;
|
||||
--code-blue: #66d9ef;
|
||||
--code-orange: #fd971f;
|
||||
}
|
||||
/* Gold */
|
||||
--gold: #b8860b;
|
||||
--gold-lightest: #f0ebdd;
|
||||
|
||||
/* Error */
|
||||
--dangerous-dark: #e30c17;
|
||||
--dangerous: #9b373c;
|
||||
--dangerous-lightest: #eedddd;
|
||||
|
||||
/* Warning */
|
||||
--warning: #c77d33;
|
||||
--warning-lightest: #f2e9e0;
|
||||
|
||||
/* Success */
|
||||
--success: #47a455;
|
||||
--success-lightest: #d0edd4;
|
||||
|
||||
/* Code */
|
||||
--code-yellow: #e6db74;
|
||||
--code-grey: #f8f8f2;
|
||||
--code-green: #a6e22e;
|
||||
--code-purple: #ae81ff;
|
||||
--code-red: #f92672;
|
||||
--code-dark-grey: #f8f8f2;
|
||||
--code-very-dark-grey: #75715e;
|
||||
--code-blue: #66d9ef;
|
||||
--code-orange: #fd971f;
|
||||
}
|
||||
|
@ -1,9 +1,7 @@
|
||||
@import "tailwindcss/base";
|
||||
@import "tailwindcss/components";
|
||||
@import "tailwindcss/utilities";
|
||||
@import './colors.css';
|
||||
|
||||
|
||||
@import "./colors.css";
|
||||
|
||||
main {
|
||||
@apply max-w-screen-xl mx-auto flex flex-col;
|
||||
@ -101,18 +99,18 @@ body.dark_mode {
|
||||
--background-success: var(--black-5);
|
||||
--background-error: var(--black-5);
|
||||
--background-pending: var(--black-5);
|
||||
|
||||
|
||||
/* Borders */
|
||||
--border-0: var(--black-5);
|
||||
--border-1: var(--black-6);
|
||||
--border-2: var(--black-7);
|
||||
|
||||
|
||||
/* Icons */
|
||||
--icon-0: var(--black-0);
|
||||
--icon-1: var(--grey-0);
|
||||
--icon-2: var(--grey-2);
|
||||
--icon-3: var(--white-0);
|
||||
|
||||
|
||||
/* Text */
|
||||
--text-0: var(--black-0);
|
||||
--text-1: var(--grey-0);
|
||||
@ -142,7 +140,7 @@ body.dark_mode {
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: var(--code-red);
|
||||
color: var(--code-red);
|
||||
}
|
||||
|
||||
.token.boolean,
|
||||
@ -156,7 +154,7 @@ body.dark_mode {
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: var(--code-green);
|
||||
color: var(--code-green);
|
||||
}
|
||||
|
||||
.token.operator,
|
||||
@ -165,7 +163,7 @@ body.dark_mode {
|
||||
.language-css .token.string,
|
||||
.style .token.string,
|
||||
.token.variable {
|
||||
color: var(--code-grey);
|
||||
color: var(--code-grey);
|
||||
}
|
||||
|
||||
.token.atrule,
|
||||
@ -176,7 +174,7 @@ body.dark_mode {
|
||||
}
|
||||
|
||||
.token.keyword {
|
||||
color: var(--code-blue);
|
||||
color: var(--code-blue);
|
||||
}
|
||||
|
||||
.token.regex,
|
||||
@ -206,7 +204,7 @@ body.dark_mode {
|
||||
}
|
||||
|
||||
.EmojiPickerReact.epr-dark-theme {
|
||||
--epr-emoji-size: 20px !important;
|
||||
--epr-emoji-size: 20px !important;
|
||||
--epr-hover-bg-color: var(--primary-1) !important;
|
||||
--epr-category-navigation-button-size: 24px !important;
|
||||
--epr-category-label-bg-color: var(--background-0) !important;
|
||||
@ -231,4 +229,4 @@ body.dark_mode {
|
||||
|
||||
.react-colorful__saturation {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import { redirectToLogin } from "@/lib/router/redirectToLogin";
|
||||
import { useInvitation } from "./hooks/useInvitation";
|
||||
|
||||
const InvitationPage = (): JSX.Element => {
|
||||
const { t } = useTranslation('invitation');
|
||||
const { t } = useTranslation("invitation");
|
||||
const {
|
||||
handleAccept,
|
||||
isProcessingRequest,
|
||||
@ -40,13 +40,15 @@ const InvitationPage = (): JSX.Element => {
|
||||
return (
|
||||
<main className="pt-10">
|
||||
<PageHeading
|
||||
title={t("wellcome",{brain: brainName, ns: "invitation"})}
|
||||
subtitle={t("invitationMessage",{role: role, ns: "invitation"})}
|
||||
title={t("wellcome", { brain: brainName, ns: "invitation" })}
|
||||
subtitle={t("invitationMessage", { role: role, ns: "invitation" })}
|
||||
/>
|
||||
{isProcessingRequest ? (
|
||||
<div className="flex flex-col items-center justify-center mt-5">
|
||||
<Spinner />
|
||||
<p className="text-center">{t("processingRequest",{ns: "invitation"})}</p>
|
||||
<p className="text-center">
|
||||
{t("processingRequest", { ns: "invitation" })}
|
||||
</p>
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex flex-col items-center justify-center gap-5 mt-5">
|
||||
@ -55,14 +57,14 @@ const InvitationPage = (): JSX.Element => {
|
||||
variant={"secondary"}
|
||||
className="py-3"
|
||||
>
|
||||
{t("accept",{ns: "invitation"})}
|
||||
{t("accept", { ns: "invitation" })}
|
||||
</Button>
|
||||
<Button
|
||||
onClick={() => void handleDecline()}
|
||||
variant={"danger"}
|
||||
className="py-3"
|
||||
>
|
||||
{t("reject",{ns: "invitation"})}
|
||||
{t("reject", { ns: "invitation" })}
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
|
@ -23,7 +23,6 @@ import styles from "./page.module.scss";
|
||||
|
||||
const projectName = process.env.NEXT_PUBLIC_PROJECT_NAME;
|
||||
|
||||
|
||||
const Search = (): JSX.Element => {
|
||||
const [selectedTab, setSelectedTab] = useState("Models");
|
||||
const [isNewBrain, setIsNewBrain] = useState(false);
|
||||
@ -113,7 +112,9 @@ const Search = (): JSX.Element => {
|
||||
<QuivrLogo size={80} color={isDarkMode ? "white" : "black"} />
|
||||
<div className={styles.quivr_text}>
|
||||
<span>Talk to </span>
|
||||
<span className={styles.quivr_text_primary}>{projectName ? projectName : "Quivr"}</span>
|
||||
<span className={styles.quivr_text_primary}>
|
||||
{projectName ? projectName : "Quivr"}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.search_bar_wrapper}>
|
||||
|
@ -10,4 +10,4 @@
|
||||
.search_brain {
|
||||
width: 250px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,4 +20,4 @@
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,4 +21,4 @@
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1 +0,0 @@
|
||||
|
@ -6,4 +6,4 @@
|
||||
@media (max-width: ScreenSizes.$small) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import { UserStats } from "../../../lib/types/User";
|
||||
export const BrainConsumption = (userStats: UserStats): JSX.Element => {
|
||||
const { current_brain_size, max_brain_size } = userStats;
|
||||
const brainFilling = current_brain_size / max_brain_size;
|
||||
const { t } = useTranslation(["translation","user"]);
|
||||
const { t } = useTranslation(["translation", "user"]);
|
||||
|
||||
const backgroundIcon = (
|
||||
<GiBrain
|
||||
@ -42,7 +42,7 @@ export const BrainConsumption = (userStats: UserStats): JSX.Element => {
|
||||
{/* Percentage of brain space left */}
|
||||
{(100 - brainFilling * 100).toFixed(2)}%{" "}
|
||||
</span>
|
||||
<span className="text-sm opacity-50">{t("empty", {ns: "user"})}</span>
|
||||
<span className="text-sm opacity-50">{t("empty", { ns: "user" })}</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
@ -3,4 +3,4 @@
|
||||
.response_wrapper {
|
||||
display: flex;
|
||||
gap: Spacings.$spacing03;
|
||||
}
|
||||
}
|
||||
|
@ -30,4 +30,4 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
13
frontend/instrumentation.ts
Normal file
13
frontend/instrumentation.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
|
||||
export async function register() {
|
||||
if (process.env.NEXT_RUNTIME === "nodejs") {
|
||||
await import("./sentry.server.config");
|
||||
}
|
||||
|
||||
if (process.env.NEXT_RUNTIME === "edge") {
|
||||
await import("./sentry.edge.config");
|
||||
}
|
||||
}
|
||||
|
||||
export const onRequestError = Sentry.captureRequestError;
|
@ -57,7 +57,7 @@ export const syncNotion = async (
|
||||
`/sync/notion/authorize?name=${name}`
|
||||
)
|
||||
).data;
|
||||
}
|
||||
};
|
||||
|
||||
export const getUserSyncs = async (
|
||||
axiosInstance: AxiosInstance
|
||||
|
@ -13,7 +13,7 @@ import {
|
||||
syncGoogleDrive,
|
||||
syncNotion,
|
||||
syncSharepoint,
|
||||
updateActiveSync
|
||||
updateActiveSync,
|
||||
} from "./sync";
|
||||
import { Integration, OpenedConnection, Provider } from "./types";
|
||||
|
||||
|
@ -10,13 +10,13 @@ interface ConnectionCardsProps {
|
||||
export const ConnectionCards = ({
|
||||
fromAddKnowledge,
|
||||
}: ConnectionCardsProps): JSX.Element => {
|
||||
const { syncGoogleDrive, syncSharepoint, syncDropbox } =
|
||||
useSync();
|
||||
const { syncGoogleDrive, syncSharepoint, syncDropbox } = useSync();
|
||||
|
||||
return (
|
||||
<div
|
||||
className={`${styles.connection_cards} ${fromAddKnowledge ? styles.spaced : ""
|
||||
}`}
|
||||
className={`${styles.connection_cards} ${
|
||||
fromAddKnowledge ? styles.spaced : ""
|
||||
}`}
|
||||
>
|
||||
<ConnectionSection
|
||||
label="Dropbox"
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { MotionConfig } from "framer-motion";
|
||||
import { usePathname, useRouter } from "next/navigation";
|
||||
import { useFeatureFlagEnabled } from 'posthog-js/react';
|
||||
import { useFeatureFlagEnabled } from "posthog-js/react";
|
||||
import { useState } from "react";
|
||||
|
||||
import { MenuControlButton } from "@/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/MenuControlButton/MenuControlButton";
|
||||
@ -24,7 +24,6 @@ import { StudioButton } from "./components/StudioButton/StudioButton";
|
||||
import { ThreadsButton } from "./components/ThreadsButton/ThreadsButton";
|
||||
import { UpgradeToPlusButton } from "./components/UpgradeToPlusButton/UpgradeToPlusButton";
|
||||
|
||||
|
||||
const showUpgradeButton = process.env.NEXT_PUBLIC_SHOW_TOKENS === "true";
|
||||
|
||||
export const Menu = (): JSX.Element => {
|
||||
@ -34,8 +33,7 @@ export const Menu = (): JSX.Element => {
|
||||
const pathname = usePathname() ?? "";
|
||||
const [isLogoHovered, setIsLogoHovered] = useState<boolean>(false);
|
||||
const { isDarkMode } = useUserSettingsContext();
|
||||
const flagEnabled = useFeatureFlagEnabled('show-quality-assistant')
|
||||
|
||||
const flagEnabled = useFeatureFlagEnabled("show-quality-assistant");
|
||||
|
||||
useChatsList();
|
||||
|
||||
@ -65,8 +63,9 @@ export const Menu = (): JSX.Element => {
|
||||
<div>
|
||||
<MotionConfig transition={{ mass: 1, damping: 10, duration: 0.1 }}>
|
||||
<div
|
||||
className={`${styles.menu_container} ${!isOpened ? styles.hidden : ""
|
||||
}`}
|
||||
className={`${styles.menu_container} ${
|
||||
!isOpened ? styles.hidden : ""
|
||||
}`}
|
||||
>
|
||||
<AnimatedDiv>
|
||||
<div className={styles.menu_wrapper}>
|
||||
|
@ -42,4 +42,4 @@
|
||||
border-color: var(--primary-0);
|
||||
box-shadow: BoxShadow.$primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,4 +41,4 @@
|
||||
&:hover {
|
||||
background-color: var(--background-3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ export const NotificationsButton = (): JSX.Element => {
|
||||
const { supabase } = useSupabase();
|
||||
|
||||
useEffect(() => {
|
||||
console.log("NotificationsButton");
|
||||
const channel = supabase
|
||||
.channel("notifications")
|
||||
.on(
|
||||
|
@ -22,4 +22,4 @@
|
||||
&:hover {
|
||||
background-color: var(--background-3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -51,4 +51,4 @@
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,4 +8,4 @@
|
||||
flex-direction: column;
|
||||
gap: calc(#{Spacings.$spacing01} + #{Spacings.$spacing02});
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
@ -20,4 +20,4 @@
|
||||
margin-inline: Spacings.$spacing07;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,4 +6,4 @@
|
||||
.bold {
|
||||
font-weight: 800;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,11 @@ import styles from "./PricingTable.module.scss";
|
||||
const PRICING_TABLE_ID = process.env.NEXT_PUBLIC_STRIPE_PRICING_TABLE_ID;
|
||||
const PUBLISHABLE_KEY = process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY;
|
||||
|
||||
export const StripePricingTable = ({ user_email }: { user_email: string }): JSX.Element => {
|
||||
export const StripePricingTable = ({
|
||||
user_email,
|
||||
}: {
|
||||
user_email: string;
|
||||
}): JSX.Element => {
|
||||
return (
|
||||
<>
|
||||
<div className={styles.info_content}>
|
||||
|
@ -19,4 +19,4 @@
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,4 +3,4 @@
|
||||
.info_displayer_container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
@ -12,4 +12,4 @@
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -33,4 +33,4 @@
|
||||
color: var(--dangerous-0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ export const BrainProviderMock = ({
|
||||
<BrainContextMock.Provider
|
||||
value={{
|
||||
allBrains: [],
|
||||
publicPrompts:[],
|
||||
publicPrompts: [],
|
||||
currentBrain: undefined,
|
||||
//@ts-ignore we are not using the functions in tests
|
||||
createBrain: () => void 0,
|
||||
|
@ -27,5 +27,5 @@ export const acceptedFormats: Record<string, SupportedFileExtensionsWithDot[]> =
|
||||
"application/epub+zip": [".epub"],
|
||||
"application/x-ipynb+json": [".ipynb"],
|
||||
"text/x-python": [".py"],
|
||||
"text/bib": [".bib"]
|
||||
"text/bib": [".bib"],
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { useEffect } from 'react';
|
||||
import { useEffect } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export const UpdateMetadata = () => {
|
||||
@ -13,7 +13,7 @@ export const UpdateMetadata = () => {
|
||||
if (metaDescription instanceof HTMLMetaElement) {
|
||||
metaDescription.content = description;
|
||||
}
|
||||
}, [t]);
|
||||
}, [t]);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
@ -21,7 +21,7 @@ export const supportedFileExtensions = [
|
||||
"ipynb",
|
||||
"py",
|
||||
"telegram",
|
||||
"bib"
|
||||
"bib",
|
||||
] as const;
|
||||
|
||||
export type SupportedFileExtensions = (typeof supportedFileExtensions)[number];
|
||||
|
@ -1,5 +1,5 @@
|
||||
/** @type {import('next-sitemap').IConfig} */
|
||||
module.exports = {
|
||||
siteUrl: process.env.SITE_URL || 'https://quivr.app',
|
||||
generateRobotsTxt: true, // (optional)
|
||||
}
|
||||
siteUrl: process.env.SITE_URL || "https://quivr.app",
|
||||
generateRobotsTxt: true, // (optional)
|
||||
};
|
||||
|
@ -201,3 +201,47 @@ if (process.env.SENTRY_DSN) {
|
||||
// SENTRY_DSN does not exist, export nextConfig without Sentry
|
||||
module.exports = nextConfig;
|
||||
}
|
||||
|
||||
// Injected content via Sentry wizard below
|
||||
|
||||
const { withSentryConfig } = require("@sentry/nextjs");
|
||||
|
||||
module.exports = withSentryConfig(module.exports, {
|
||||
// For all available options, see:
|
||||
// https://github.com/getsentry/sentry-webpack-plugin#options
|
||||
|
||||
org: "quivr-brain",
|
||||
project: "frontend",
|
||||
|
||||
// Only print logs for uploading source maps in CI
|
||||
silent: !process.env.CI,
|
||||
|
||||
// For all available options, see:
|
||||
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
|
||||
|
||||
// Upload a larger set of source maps for prettier stack traces (increases build time)
|
||||
widenClientFileUpload: true,
|
||||
|
||||
// Automatically annotate React components to show their full name in breadcrumbs and session replay
|
||||
reactComponentAnnotation: {
|
||||
enabled: true,
|
||||
},
|
||||
|
||||
// Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
|
||||
// This can increase your server load as well as your hosting bill.
|
||||
// Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client-
|
||||
// side errors will fail.
|
||||
tunnelRoute: "/monitoring",
|
||||
|
||||
// Hides source maps from generated client bundles
|
||||
hideSourceMaps: true,
|
||||
|
||||
// Automatically tree-shake Sentry logger statements to reduce bundle size
|
||||
disableLogger: true,
|
||||
|
||||
// Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.)
|
||||
// See the following for more information:
|
||||
// https://docs.sentry.io/product/crons/
|
||||
// https://vercel.com/docs/cron-jobs
|
||||
automaticVercelMonitors: true,
|
||||
});
|
||||
|
@ -4,6 +4,7 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev --turbo",
|
||||
"dev-sentry": "next dev",
|
||||
"build": "next build",
|
||||
"postbuild": "next-sitemap",
|
||||
"start": "next start",
|
||||
@ -33,7 +34,7 @@
|
||||
"@radix-ui/react-tabs": "1.0.4",
|
||||
"@radix-ui/react-toast": "1.1.4",
|
||||
"@radix-ui/react-tooltip": "1.0.6",
|
||||
"@sentry/nextjs": "^7.102.1",
|
||||
"@sentry/nextjs": "^8",
|
||||
"@supabase/auth-helpers-nextjs": "0.6.1",
|
||||
"@supabase/auth-ui-react": "0.4.2",
|
||||
"@supabase/auth-ui-shared": "0.1.6",
|
||||
@ -130,4 +131,4 @@
|
||||
"react-icons": "4.11.0",
|
||||
"vitest": "0.32.4"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,14 +1,13 @@
|
||||
/* eslint-disable */
|
||||
'use client';
|
||||
import type { GetStaticPaths, InferGetStaticPropsType } from 'next';
|
||||
import Head from 'next/head';
|
||||
"use client";
|
||||
import type { GetStaticPaths, InferGetStaticPropsType } from "next";
|
||||
import Head from "next/head";
|
||||
import Image from "next/image";
|
||||
import Link from 'next/link';
|
||||
import { useEffect, useState } from 'react';
|
||||
import Link from "next/link";
|
||||
import { useEffect, useState } from "react";
|
||||
|
||||
import "@/globals.css";
|
||||
|
||||
|
||||
type SeoAttributes = {
|
||||
id: number;
|
||||
metaTitle: string;
|
||||
@ -54,10 +53,12 @@ export const getStaticPaths: GetStaticPaths = async () => {
|
||||
try {
|
||||
const response = await fetch("https://cms.quivr.app/api/blogs");
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
throw new Error("Network response was not ok");
|
||||
}
|
||||
const data: { data: BlogPost[] } = await response.json();
|
||||
const paths = data.data.map(post => ({ params: { slug: post.attributes.slug } }));
|
||||
const paths = data.data.map((post) => ({
|
||||
params: { slug: post.attributes.slug },
|
||||
}));
|
||||
|
||||
return {
|
||||
paths,
|
||||
@ -74,14 +75,18 @@ export const getStaticPaths: GetStaticPaths = async () => {
|
||||
|
||||
export const getStaticProps = async (context: { params: { slug: string } }) => {
|
||||
try {
|
||||
const response = await fetch(`https://cms.quivr.app/api/blogs?slug=${context.params.slug}&populate=seo,seo.metaImage`);
|
||||
const response = await fetch(
|
||||
`https://cms.quivr.app/api/blogs?slug=${context.params.slug}&populate=seo,seo.metaImage`
|
||||
);
|
||||
const data: { data: BlogPost[] } = await response.json();
|
||||
|
||||
// Find the blog post with the exact slug match
|
||||
const blogPost = data.data.find(post => post.attributes.slug === context.params.slug);
|
||||
const blogPost = data.data.find(
|
||||
(post) => post.attributes.slug === context.params.slug
|
||||
);
|
||||
|
||||
if (!blogPost) {
|
||||
throw new Error('No blog post found for the provided slug');
|
||||
throw new Error("No blog post found for the provided slug");
|
||||
}
|
||||
|
||||
return {
|
||||
@ -97,11 +102,15 @@ export const getStaticProps = async (context: { params: { slug: string } }) => {
|
||||
}
|
||||
};
|
||||
|
||||
const BlogPostDetail = ({ post }: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||
const { metaTitle, metaDescription, keywords, canonicalURL } = post.attributes.seo;
|
||||
const BlogPostDetail = ({
|
||||
post,
|
||||
}: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||
const { metaTitle, metaDescription, keywords, canonicalURL } =
|
||||
post.attributes.seo;
|
||||
|
||||
// Extract different image formats
|
||||
const { large, medium } = post.attributes.seo.metaImage.data.attributes.formats;
|
||||
const { large, medium } =
|
||||
post.attributes.seo.metaImage.data.attributes.formats;
|
||||
|
||||
const [imageUrl, setImageUrl] = useState(medium.url);
|
||||
|
||||
@ -119,7 +128,12 @@ const BlogPostDetail = ({ post }: InferGetStaticPropsType<typeof getStaticProps>
|
||||
<div className="text-2xl font-bold cursor-pointer">Quivr</div>
|
||||
</Link>
|
||||
<div className="space-x-4">
|
||||
<Link className="text-zinc-900 hover:text-zinc-700" href="https://quivr.app">Try Quivr</Link>
|
||||
<Link
|
||||
className="text-zinc-900 hover:text-zinc-700"
|
||||
href="https://quivr.app"
|
||||
>
|
||||
Try Quivr
|
||||
</Link>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
@ -137,11 +151,11 @@ const BlogPostDetail = ({ post }: InferGetStaticPropsType<typeof getStaticProps>
|
||||
<h1 className="text-4xl font-extrabold tracking-tight lg:text-5xl lg:leading-[3.5rem] text-black dark:text-white">
|
||||
{metaTitle}
|
||||
</h1>
|
||||
<p className="text-zinc-500 dark:text-zinc-400">Posted on {post.attributes.publishedAt}</p>
|
||||
<p className="text-zinc-500 dark:text-zinc-400">
|
||||
Posted on {post.attributes.publishedAt}
|
||||
</p>
|
||||
</div>
|
||||
<p className="text-black dark:text-white">
|
||||
{metaDescription}
|
||||
</p>
|
||||
<p className="text-black dark:text-white">{metaDescription}</p>
|
||||
<Image
|
||||
src={imageUrl}
|
||||
alt={metaTitle}
|
||||
@ -149,11 +163,14 @@ const BlogPostDetail = ({ post }: InferGetStaticPropsType<typeof getStaticProps>
|
||||
width={1250}
|
||||
height={340}
|
||||
/>
|
||||
<div className="text-black dark:text-white" dangerouslySetInnerHTML={{ __html: post.attributes.Article }}></div>
|
||||
<div
|
||||
className="text-black dark:text-white"
|
||||
dangerouslySetInnerHTML={{ __html: post.attributes.Article }}
|
||||
></div>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export default BlogPostDetail;
|
||||
export default BlogPostDetail;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* eslint-disable */
|
||||
/* https://strapi.io/blog/how-to-create-an-ssg-static-site-generation-application-with-strapi-webhooks-and-nextjs */
|
||||
import type { InferGetStaticPropsType } from 'next';
|
||||
import type { InferGetStaticPropsType } from "next";
|
||||
import Head from "next/head";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
@ -38,11 +38,17 @@ type BlogPost = {
|
||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
||||
export const getStaticProps = async () => {
|
||||
try {
|
||||
const resulting = await fetch("https://cms.quivr.app/api/blogs?populate=seo,seo.metaImage,slug");
|
||||
const resulting = await fetch(
|
||||
"https://cms.quivr.app/api/blogs?populate=seo,seo.metaImage,slug"
|
||||
);
|
||||
const data: { data: BlogPost[] } = await resulting.json();
|
||||
|
||||
// Sort blogs by publishedAt in descending order
|
||||
const sortedBlogs = data.data.sort((a, b) => new Date(b.attributes.publishedAt).getTime() - new Date(a.attributes.publishedAt).getTime());
|
||||
const sortedBlogs = data.data.sort(
|
||||
(a, b) =>
|
||||
new Date(b.attributes.publishedAt).getTime() -
|
||||
new Date(a.attributes.publishedAt).getTime()
|
||||
);
|
||||
|
||||
return {
|
||||
props: {
|
||||
@ -65,7 +71,10 @@ const Blog = ({ result }: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||
<section className="w-full">
|
||||
<Head>
|
||||
<title>Quivr - Blog</title>
|
||||
<meta name="description" content="Quivr.app - Your Generative AI second brain builder's blog" />
|
||||
<meta
|
||||
name="description"
|
||||
content="Quivr.app - Your Generative AI second brain builder's blog"
|
||||
/>
|
||||
</Head>
|
||||
|
||||
<header className="bg-white text-zinc-900 py-4 border-b">
|
||||
@ -75,7 +84,9 @@ const Blog = ({ result }: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||
<div className="text-2xl font-bold cursor-pointer">Quivr</div>
|
||||
</Link>
|
||||
<div className="space-x-4">
|
||||
<Link className="text-zinc-900 hover:text-zinc-700" href="/">Try Quivr</Link>
|
||||
<Link className="text-zinc-900 hover:text-zinc-700" href="/">
|
||||
Try Quivr
|
||||
</Link>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
@ -84,7 +95,7 @@ const Blog = ({ result }: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||
<main className="container mx-auto px-4 md:px-6 py-8">
|
||||
<section className="mb-8">
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||
{result.map(post => (
|
||||
{result.map((post) => (
|
||||
<div key={post.id}>
|
||||
<Link href={`/blog/${post.attributes.slug}`}>
|
||||
<Image
|
||||
@ -95,9 +106,16 @@ const Blog = ({ result }: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||
className="w-full rounded-lg object-cover cursor-pointer"
|
||||
/>
|
||||
</Link>
|
||||
<h3 className="text-xl font-bold mb-2 mt-4">{post.attributes.seo.metaTitle}</h3>
|
||||
<p className="text-zinc-500">{post.attributes.seo.metaDescription}</p>
|
||||
<Link className="text-blue-500 hover:text-blue-700 mt-4" href={`/blog/${post.attributes.slug}`}>
|
||||
<h3 className="text-xl font-bold mb-2 mt-4">
|
||||
{post.attributes.seo.metaTitle}
|
||||
</h3>
|
||||
<p className="text-zinc-500">
|
||||
{post.attributes.seo.metaDescription}
|
||||
</p>
|
||||
<Link
|
||||
className="text-blue-500 hover:text-blue-700 mt-4"
|
||||
href={`/blog/${post.attributes.slug}`}
|
||||
>
|
||||
Read More
|
||||
</Link>
|
||||
</div>
|
||||
@ -108,6 +126,6 @@ const Blog = ({ result }: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export default Blog;
|
||||
export default Blog;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"associatedApplications": [
|
||||
{
|
||||
"applicationId": "511dce23-02f3-4724-8684-05da226df5f3"
|
||||
}
|
||||
]
|
||||
}
|
||||
"associatedApplications": [
|
||||
{
|
||||
"applicationId": "511dce23-02f3-4724-8684-05da226df5f3"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -1 +1,56 @@
|
||||
{"accountSection":"Your Account","anthropicKeyLabel":"Anthropic API Key","anthropicKeyPlaceholder":"Anthropic API Key","apiKey":"API Key","backendSection":"Backend config","backendUrlLabel":"Backend URL","backendUrlPlaceHolder":"Backend URL","brainUpdated":"Brain updated successfully","configReset":"Config reseted","configSaved":"Config saved","customPromptSection":"Custom prompt","defaultBrainSet":"Brain set as default successfully","descriptionRequired":"Description is required","error":{"copy":"Failed to copy","createApiKey":"Error creating API Key"},"errorRemovingPrompt":"Error while removing prompt","incorrectApiKey":"Incorrect API Key","invalidApiKeyError":"Invalid API Key","invalidOpenAiKey":"Invalid OpenAI Key","keepInLocal":"Keep in local","knowledge":"Knowledge","maxTokens":"Maximum Words per Response","modelLabel":"Model","modelSection":"Model configuration of the brain","nameRequired":"Name is required","newAPIKey":"Create New Key","noUser":"No user","ohno":"Oh no!","openAiKeyLabel":"Open AI Key","openAiKeyPlaceholder":"sk-xxx","people":"People","promptContent":"Prompt content","promptContentPlaceholder":"As an AI, your...","promptFieldsRequired":"Prompt title and content are required","promptName":"Prompt title","promptNamePlaceholder":"My awesome prompt name","promptRemoved":"Prompt removed successfully","publicPrompts":"Pick in public prompts","removePrompt":"Remove prompt","requireAccess":"Please require access from the owner.","roleRequired":"You don't have the necessary role to access this tab 🧠💡🥲.","selectQuivrPersonalityBtn":"Select a Quivr Personality","settings":"Settings","signedInAs":"Signed In as","subtitle":"Manage your brain","supabaseKeyLabel":"Supabase key","supabaseKeyPlaceHolder":"Supabase key","supabaseURLLabel":"Supabase URL","supabaseURLPlaceHolder":"Supabase URL","temperature":"Temperature","title":"Configuration","updatingBrainSettings":"Updating brain settings..."}
|
||||
{
|
||||
"accountSection": "Your Account",
|
||||
"anthropicKeyLabel": "Anthropic API Key",
|
||||
"anthropicKeyPlaceholder": "Anthropic API Key",
|
||||
"apiKey": "API Key",
|
||||
"backendSection": "Backend config",
|
||||
"backendUrlLabel": "Backend URL",
|
||||
"backendUrlPlaceHolder": "Backend URL",
|
||||
"brainUpdated": "Brain updated successfully",
|
||||
"configReset": "Config reseted",
|
||||
"configSaved": "Config saved",
|
||||
"customPromptSection": "Custom prompt",
|
||||
"defaultBrainSet": "Brain set as default successfully",
|
||||
"descriptionRequired": "Description is required",
|
||||
"error": {
|
||||
"copy": "Failed to copy",
|
||||
"createApiKey": "Error creating API Key"
|
||||
},
|
||||
"errorRemovingPrompt": "Error while removing prompt",
|
||||
"incorrectApiKey": "Incorrect API Key",
|
||||
"invalidApiKeyError": "Invalid API Key",
|
||||
"invalidOpenAiKey": "Invalid OpenAI Key",
|
||||
"keepInLocal": "Keep in local",
|
||||
"knowledge": "Knowledge",
|
||||
"maxTokens": "Maximum Words per Response",
|
||||
"modelLabel": "Model",
|
||||
"modelSection": "Model configuration of the brain",
|
||||
"nameRequired": "Name is required",
|
||||
"newAPIKey": "Create New Key",
|
||||
"noUser": "No user",
|
||||
"ohno": "Oh no!",
|
||||
"openAiKeyLabel": "Open AI Key",
|
||||
"openAiKeyPlaceholder": "sk-xxx",
|
||||
"people": "People",
|
||||
"promptContent": "Prompt content",
|
||||
"promptContentPlaceholder": "As an AI, your...",
|
||||
"promptFieldsRequired": "Prompt title and content are required",
|
||||
"promptName": "Prompt title",
|
||||
"promptNamePlaceholder": "My awesome prompt name",
|
||||
"promptRemoved": "Prompt removed successfully",
|
||||
"publicPrompts": "Pick in public prompts",
|
||||
"removePrompt": "Remove prompt",
|
||||
"requireAccess": "Please require access from the owner.",
|
||||
"roleRequired": "You don't have the necessary role to access this tab 🧠💡🥲.",
|
||||
"selectQuivrPersonalityBtn": "Select a Quivr Personality",
|
||||
"settings": "Settings",
|
||||
"signedInAs": "Signed In as",
|
||||
"subtitle": "Manage your brain",
|
||||
"supabaseKeyLabel": "Supabase key",
|
||||
"supabaseKeyPlaceHolder": "Supabase key",
|
||||
"supabaseURLLabel": "Supabase URL",
|
||||
"supabaseURLPlaceHolder": "Supabase URL",
|
||||
"temperature": "Temperature",
|
||||
"title": "Configuration",
|
||||
"updatingBrainSettings": "Updating brain settings..."
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{
|
||||
"speak_to": "Speak to our",
|
||||
"sales_team": "Sales team",
|
||||
"pricing": "Pricing",
|
||||
"form": {
|
||||
"email": "Work Email",
|
||||
"question": "Question",
|
||||
"submit": "Contact",
|
||||
"placeholder_question": "How can we help you?",
|
||||
"thank_you": "Thank you!",
|
||||
"thank_you_text": "We will get back to you as soon as possible.",
|
||||
"sending_mail_error": "There was an error sending your message. Please try again later."
|
||||
}
|
||||
}
|
||||
"speak_to": "Speak to our",
|
||||
"sales_team": "Sales team",
|
||||
"pricing": "Pricing",
|
||||
"form": {
|
||||
"email": "Work Email",
|
||||
"question": "Question",
|
||||
"submit": "Contact",
|
||||
"placeholder_question": "How can we help you?",
|
||||
"thank_you": "Thank you!",
|
||||
"thank_you_text": "We will get back to you as soon as possible.",
|
||||
"sending_mail_error": "There was an error sending your message. Please try again later."
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"deleteButton": "Delete Brain",
|
||||
"deleteConfirmQuestion": "Are you sure you want to delete this brain? This action cannot be undone.",
|
||||
"deleteConfirmYes": "Yes, delete this brain",
|
||||
"returnButton": "Return",
|
||||
"unsubscribeButton": "Unsubscribe from brain",
|
||||
"unsubscribeConfirmQuestion": "Are you sure you want to unsubscribe from this brain?",
|
||||
"unsubscribeConfirmYes": "Yes, unsubscribe from this brain",
|
||||
"successfully_deleted": "Brain successfully deleted.",
|
||||
"successfully_unsubscribed": "You have successfully unsubscribed from this brain."
|
||||
}
|
||||
"deleteButton": "Delete Brain",
|
||||
"deleteConfirmQuestion": "Are you sure you want to delete this brain? This action cannot be undone.",
|
||||
"deleteConfirmYes": "Yes, delete this brain",
|
||||
"returnButton": "Return",
|
||||
"unsubscribeButton": "Unsubscribe from brain",
|
||||
"unsubscribeConfirmQuestion": "Are you sure you want to unsubscribe from this brain?",
|
||||
"unsubscribeConfirmYes": "Yes, unsubscribe from this brain",
|
||||
"successfully_deleted": "Brain successfully deleted.",
|
||||
"successfully_unsubscribed": "You have successfully unsubscribed from this brain."
|
||||
}
|
||||
|
@ -1 +1,15 @@
|
||||
{"title":"Explore uploaded data","subtitle":"View, download or delete knowledge used by your brain","empty":"Oh No, Your Brain is empty.","noBrain":"Brain id not found","sessionNotFound":"User session not found","deleted":"{{fileName}} deleted from brain {{brain}}","errorDeleting":"Error deleting {{fileName}}","view":"View","chunkNumber":"No. of chunks: {{quantity}}","notAvailable":"Not Available","deleteConfirmTitle":"Confirm","deleteConfirmText":"Do you really want to delete?","feed_brain_instructions":"To add knowledge to a brain, go to chat page then click on plus button on the left of the chat input"}
|
||||
{
|
||||
"title": "Explore uploaded data",
|
||||
"subtitle": "View, download or delete knowledge used by your brain",
|
||||
"empty": "Oh No, Your Brain is empty.",
|
||||
"noBrain": "Brain id not found",
|
||||
"sessionNotFound": "User session not found",
|
||||
"deleted": "{{fileName}} deleted from brain {{brain}}",
|
||||
"errorDeleting": "Error deleting {{fileName}}",
|
||||
"view": "View",
|
||||
"chunkNumber": "No. of chunks: {{quantity}}",
|
||||
"notAvailable": "Not Available",
|
||||
"deleteConfirmTitle": "Confirm",
|
||||
"deleteConfirmText": "Do you really want to delete?",
|
||||
"feed_brain_instructions": "To add knowledge to a brain, go to chat page then click on plus button on the left of the chat input"
|
||||
}
|
||||
|
@ -1 +1,14 @@
|
||||
{"method_label":"Method","url_placeholder":"URL","searchParams":"Search Params","headers":"Headers","params":"Params","key":"Key","type":"Type (string or number)","description":"Description","secrets":"Secrets","paramsTabDescription":"These values are sent as the request body.","searchParamsTabDescription":"These values are sent as the query string.","secretsTabDescription":"These values are sent as header keys"}
|
||||
{
|
||||
"method_label": "Method",
|
||||
"url_placeholder": "URL",
|
||||
"searchParams": "Search Params",
|
||||
"headers": "Headers",
|
||||
"params": "Params",
|
||||
"key": "Key",
|
||||
"type": "Type (string or number)",
|
||||
"description": "Description",
|
||||
"secrets": "Secrets",
|
||||
"paramsTabDescription": "These values are sent as the request body.",
|
||||
"searchParamsTabDescription": "These values are sent as the query string.",
|
||||
"secretsTabDescription": "These values are sent as header keys"
|
||||
}
|
||||
|
@ -1,36 +1,36 @@
|
||||
{
|
||||
"sign_in": "Sign in",
|
||||
"docs": "Docs",
|
||||
"pricing": "Pricing",
|
||||
"sign_up": "Sign up",
|
||||
"star_us": "Star us on Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Sponsored by",
|
||||
"useCases": {
|
||||
"title": "Experience it now.",
|
||||
"subtitle": "Check our example on using Quivr"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Get a Second Brain with",
|
||||
"subtitle": "Your productivity assistant connected to your files & favorite applications",
|
||||
"try_demo": "Try free demo",
|
||||
"contact_sales": "Contact sales team"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Demo video",
|
||||
"start_now": "Start now"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Get started today "
|
||||
},
|
||||
"footer": {
|
||||
"title": "Get started today",
|
||||
"description_1": "Your personal assistant that acts as your Second Brain.",
|
||||
"description_2": "Simply upload your files and ask questions to it.",
|
||||
"start_using": "Start using Quivr",
|
||||
"contact_sales": "Contact sales team"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "What people say about"
|
||||
}
|
||||
}
|
||||
"sign_in": "Sign in",
|
||||
"docs": "Docs",
|
||||
"pricing": "Pricing",
|
||||
"sign_up": "Sign up",
|
||||
"star_us": "Star us on Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Sponsored by",
|
||||
"useCases": {
|
||||
"title": "Experience it now.",
|
||||
"subtitle": "Check our example on using Quivr"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Get a Second Brain with",
|
||||
"subtitle": "Your productivity assistant connected to your files & favorite applications",
|
||||
"try_demo": "Try free demo",
|
||||
"contact_sales": "Contact sales team"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Demo video",
|
||||
"start_now": "Start now"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Get started today "
|
||||
},
|
||||
"footer": {
|
||||
"title": "Get started today",
|
||||
"description_1": "Your personal assistant that acts as your Second Brain.",
|
||||
"description_2": "Simply upload your files and ask questions to it.",
|
||||
"start_using": "Start using Quivr",
|
||||
"contact_sales": "Contact sales team"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "What people say about"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,13 @@
|
||||
{"wellcome":"Welcome to {{brain}}!","invitationMessage":"You have been invited to join this brain as a {{role}} and start exploring. Do you accept this exciting journey?","processingRequest":"Processing your request...","accept":"Yes, count me in!","reject":"No, thank you.","invitationNotFound":"This invitation is not valid.","errorCheckingInvitation":"An unknown error occurred while checking the invitation","accepted":"Invitation accepted","errorAccepting":"An unknown error occurred while accepting the invitation","declined":"Invitation declined","errorDeclining":"An unknown error occurred while declining the invitation"}
|
||||
{
|
||||
"wellcome": "Welcome to {{brain}}!",
|
||||
"invitationMessage": "You have been invited to join this brain as a {{role}} and start exploring. Do you accept this exciting journey?",
|
||||
"processingRequest": "Processing your request...",
|
||||
"accept": "Yes, count me in!",
|
||||
"reject": "No, thank you.",
|
||||
"invitationNotFound": "This invitation is not valid.",
|
||||
"errorCheckingInvitation": "An unknown error occurred while checking the invitation",
|
||||
"accepted": "Invitation accepted",
|
||||
"errorAccepting": "An unknown error occurred while accepting the invitation",
|
||||
"declined": "Invitation declined",
|
||||
"errorDeclining": "An unknown error occurred while declining the invitation"
|
||||
}
|
||||
|
@ -16,4 +16,4 @@
|
||||
"part2": ", check your emails and follow the steps."
|
||||
},
|
||||
"login": "Login"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,8 @@
|
||||
{"title":"Logout","subtitle":"See you next time","areYouSure":"Are you sure you want to sign out ?","cancel":"Cancel","error":"Error on logout {{errorMessage}}","loggedOut":"Logged out successfully"}
|
||||
{
|
||||
"title": "Logout",
|
||||
"subtitle": "See you next time",
|
||||
"areYouSure": "Are you sure you want to sign out ?",
|
||||
"cancel": "Cancel",
|
||||
"error": "Error on logout {{errorMessage}}",
|
||||
"loggedOut": "Logged out successfully"
|
||||
}
|
||||
|
@ -1 +1,38 @@
|
||||
{"all":"All","and":"and","cancel":"Cancel","Chat":"Chat","chatButton":"Chat","comingSoon":"Coming soon","crawlButton":"Crawl","createButton":"Create","deleteButton":"Delete","deleteForeverButton":"Delete forever","description":"Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.","doneButton":"Done","Editor":"Editor","email":"Email","Explore":"Explore","invalidUrl":"Invalid URL","lang":"en-US","languageSelect":"Preferred language","loading":"Loading...","logoutButton":"Logout","newChatButton":"New Chat","next":"Next","or":"or","Owner":"Owner","previous":"Previous","resetButton":"Reset","saveButton":"Save","shareButton":"Share","themeSelect":"Interface theme","title":"Quivr - Get a Second Brain with Generative AI","toastDismiss":"dismiss","updateButton":"Update","Upload":"Upload","uploadButton":"Upload","uploadingButton":"Uploading...","Viewer":"Viewer"}
|
||||
{
|
||||
"all": "All",
|
||||
"and": "and",
|
||||
"cancel": "Cancel",
|
||||
"Chat": "Chat",
|
||||
"chatButton": "Chat",
|
||||
"comingSoon": "Coming soon",
|
||||
"crawlButton": "Crawl",
|
||||
"createButton": "Create",
|
||||
"deleteButton": "Delete",
|
||||
"deleteForeverButton": "Delete forever",
|
||||
"description": "Quivr is your second brain in the cloud, designed to easily store and retrieve unstructured information.",
|
||||
"doneButton": "Done",
|
||||
"Editor": "Editor",
|
||||
"email": "Email",
|
||||
"Explore": "Explore",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"lang": "en-US",
|
||||
"languageSelect": "Preferred language",
|
||||
"loading": "Loading...",
|
||||
"logoutButton": "Logout",
|
||||
"newChatButton": "New Chat",
|
||||
"next": "Next",
|
||||
"or": "or",
|
||||
"Owner": "Owner",
|
||||
"previous": "Previous",
|
||||
"resetButton": "Reset",
|
||||
"saveButton": "Save",
|
||||
"shareButton": "Share",
|
||||
"themeSelect": "Interface theme",
|
||||
"title": "Quivr - Get a Second Brain with Generative AI",
|
||||
"toastDismiss": "dismiss",
|
||||
"updateButton": "Update",
|
||||
"Upload": "Upload",
|
||||
"uploadButton": "Upload",
|
||||
"uploadingButton": "Uploading...",
|
||||
"Viewer": "Viewer"
|
||||
}
|
||||
|
@ -1 +1,10 @@
|
||||
{"title":"{{user}}'s Brain Usage","fetching":"Fetching your data...","requestsCount":"Today's Requests: {{count}}","brainSize":"Remaining Brain size","empty":"Empty","Used":"Used","Unused":"Unused","brainUsage":"Brain Usage"}
|
||||
{
|
||||
"title": "{{user}}'s Brain Usage",
|
||||
"fetching": "Fetching your data...",
|
||||
"requestsCount": "Today's Requests: {{count}}",
|
||||
"brainSize": "Remaining Brain size",
|
||||
"empty": "Empty",
|
||||
"Used": "Used",
|
||||
"Unused": "Unused",
|
||||
"brainUsage": "Brain Usage"
|
||||
}
|
||||
|
@ -1,56 +1,56 @@
|
||||
{
|
||||
"accountSection": "Tu Cuenta",
|
||||
"anthropicKeyLabel": "Clave de la API de Anthropic",
|
||||
"anthropicKeyPlaceholder": "Clave de la API de Anthropic",
|
||||
"apiKey": "Clave de API",
|
||||
"backendSection": "Configuración de Backend",
|
||||
"backendUrlLabel": "URL del Backend",
|
||||
"backendUrlPlaceHolder": "URL del Backend",
|
||||
"brainUpdated": "Cerebro actualizado correctamente",
|
||||
"configReset": "Configuración restaurada",
|
||||
"configSaved": "Configuración guardada",
|
||||
"customPromptSection": "Indicadores personalizados",
|
||||
"defaultBrainSet": "Cerebro asignado como predeterminado",
|
||||
"descriptionRequired": "La descripción es necesaria",
|
||||
"error": {
|
||||
"copy": "No se pudo copiar",
|
||||
"createApiKey": "No se pudo crear la clave API"
|
||||
},
|
||||
"errorRemovingPrompt": "Error eliminando indicador",
|
||||
"incorrectApiKey": "Clave de API incorrecta",
|
||||
"invalidApiKeyError": "Clave de API inválida",
|
||||
"invalidOpenAiKey": "Clave de OpenAI inválida",
|
||||
"keepInLocal": "Mantener localmente",
|
||||
"knowledge": "Conocimiento",
|
||||
"maxTokens": "Tokens máximo",
|
||||
"modelLabel": "Modelo",
|
||||
"modelSection": "Configuración de Modelo",
|
||||
"nameRequired": "El nombre es necesario",
|
||||
"newAPIKey": "Crea una nueva clave",
|
||||
"noUser": "Sin usuarios",
|
||||
"ohno": "¡Oh no!",
|
||||
"openAiKeyLabel": "Clave de Open AI",
|
||||
"openAiKeyPlaceholder": "sk-xxx",
|
||||
"people": "Personas",
|
||||
"promptContent": "Contenido del indicador",
|
||||
"promptContentPlaceholder": "Como una IA, tu...",
|
||||
"promptFieldsRequired": "Título y contenido de indicador son necesarios",
|
||||
"promptName": "Título del indicador",
|
||||
"promptNamePlaceholder": "El nombre de mi súper indicador",
|
||||
"promptRemoved": "Indicador eliminado correctamente",
|
||||
"publicPrompts": "Selecciona un indicador público",
|
||||
"removePrompt": "Quitar indicador",
|
||||
"requireAccess": "Por favor, solicita acceso al dueño",
|
||||
"roleRequired": "No tienen el rol necesario para acceder a esta pestaña 🧠💡🥲.",
|
||||
"selectQuivrPersonalityBtn": "Selecciona una Personalidad Quivr",
|
||||
"settings": "Configuración",
|
||||
"signedInAs": "Sesión iniciada como",
|
||||
"subtitle": "Gestiona tu cerebro",
|
||||
"supabaseKeyLabel": "Clave de Supabase",
|
||||
"supabaseKeyPlaceHolder": "Clave de Supabase",
|
||||
"supabaseURLLabel": "URL de Supabase",
|
||||
"supabaseURLPlaceHolder": "URL de Supabase",
|
||||
"temperature": "Temperatura",
|
||||
"title": "Configuración",
|
||||
"updatingBrainSettings": "Actualizando configuración del cerebro..."
|
||||
}
|
||||
"accountSection": "Tu Cuenta",
|
||||
"anthropicKeyLabel": "Clave de la API de Anthropic",
|
||||
"anthropicKeyPlaceholder": "Clave de la API de Anthropic",
|
||||
"apiKey": "Clave de API",
|
||||
"backendSection": "Configuración de Backend",
|
||||
"backendUrlLabel": "URL del Backend",
|
||||
"backendUrlPlaceHolder": "URL del Backend",
|
||||
"brainUpdated": "Cerebro actualizado correctamente",
|
||||
"configReset": "Configuración restaurada",
|
||||
"configSaved": "Configuración guardada",
|
||||
"customPromptSection": "Indicadores personalizados",
|
||||
"defaultBrainSet": "Cerebro asignado como predeterminado",
|
||||
"descriptionRequired": "La descripción es necesaria",
|
||||
"error": {
|
||||
"copy": "No se pudo copiar",
|
||||
"createApiKey": "No se pudo crear la clave API"
|
||||
},
|
||||
"errorRemovingPrompt": "Error eliminando indicador",
|
||||
"incorrectApiKey": "Clave de API incorrecta",
|
||||
"invalidApiKeyError": "Clave de API inválida",
|
||||
"invalidOpenAiKey": "Clave de OpenAI inválida",
|
||||
"keepInLocal": "Mantener localmente",
|
||||
"knowledge": "Conocimiento",
|
||||
"maxTokens": "Tokens máximo",
|
||||
"modelLabel": "Modelo",
|
||||
"modelSection": "Configuración de Modelo",
|
||||
"nameRequired": "El nombre es necesario",
|
||||
"newAPIKey": "Crea una nueva clave",
|
||||
"noUser": "Sin usuarios",
|
||||
"ohno": "¡Oh no!",
|
||||
"openAiKeyLabel": "Clave de Open AI",
|
||||
"openAiKeyPlaceholder": "sk-xxx",
|
||||
"people": "Personas",
|
||||
"promptContent": "Contenido del indicador",
|
||||
"promptContentPlaceholder": "Como una IA, tu...",
|
||||
"promptFieldsRequired": "Título y contenido de indicador son necesarios",
|
||||
"promptName": "Título del indicador",
|
||||
"promptNamePlaceholder": "El nombre de mi súper indicador",
|
||||
"promptRemoved": "Indicador eliminado correctamente",
|
||||
"publicPrompts": "Selecciona un indicador público",
|
||||
"removePrompt": "Quitar indicador",
|
||||
"requireAccess": "Por favor, solicita acceso al dueño",
|
||||
"roleRequired": "No tienen el rol necesario para acceder a esta pestaña 🧠💡🥲.",
|
||||
"selectQuivrPersonalityBtn": "Selecciona una Personalidad Quivr",
|
||||
"settings": "Configuración",
|
||||
"signedInAs": "Sesión iniciada como",
|
||||
"subtitle": "Gestiona tu cerebro",
|
||||
"supabaseKeyLabel": "Clave de Supabase",
|
||||
"supabaseKeyPlaceHolder": "Clave de Supabase",
|
||||
"supabaseURLLabel": "URL de Supabase",
|
||||
"supabaseURLPlaceHolder": "URL de Supabase",
|
||||
"temperature": "Temperatura",
|
||||
"title": "Configuración",
|
||||
"updatingBrainSettings": "Actualizando configuración del cerebro..."
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{
|
||||
"speak_to": "Hable con nuestro",
|
||||
"sales_team": "equipo de ventas",
|
||||
"pricing": "Precios",
|
||||
"form": {
|
||||
"email": "Correo electrónico de trabajo",
|
||||
"question": "Pregunta",
|
||||
"submit": "Contactar",
|
||||
"placeholder_question": "¿Cómo podemos ayudarte?",
|
||||
"thank_you": "¡Gracias!",
|
||||
"thank_you_text": "Nos pondremos en contacto contigo lo antes posible.",
|
||||
"sending_mail_error": "Se produjo un error al enviar tu mensaje. Por favor, inténtalo de nuevo más tarde."
|
||||
}
|
||||
}
|
||||
"speak_to": "Hable con nuestro",
|
||||
"sales_team": "equipo de ventas",
|
||||
"pricing": "Precios",
|
||||
"form": {
|
||||
"email": "Correo electrónico de trabajo",
|
||||
"question": "Pregunta",
|
||||
"submit": "Contactar",
|
||||
"placeholder_question": "¿Cómo podemos ayudarte?",
|
||||
"thank_you": "¡Gracias!",
|
||||
"thank_you_text": "Nos pondremos en contacto contigo lo antes posible.",
|
||||
"sending_mail_error": "Se produjo un error al enviar tu mensaje. Por favor, inténtalo de nuevo más tarde."
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"deleteButton": "Borrar el cerebro",
|
||||
"deleteConfirmQuestion": "¿Estás seguro de que quieres borrar el cerebro? No podrás recuperarlo.",
|
||||
"deleteConfirmYes": "Sí, borrar el cerebro",
|
||||
"returnButton": "Vuelta",
|
||||
"unsubscribeButton": "Cancelar suscripción del cerebro",
|
||||
"unsubscribeConfirmQuestion": "¿Estás seguro de que quieres darte de baja de este cerebro?",
|
||||
"unsubscribeConfirmYes": "Sí, cancelar la suscripción de este cerebro",
|
||||
"successfully_deleted": "Cerebro eliminado con éxito.",
|
||||
"successfully_unsubscribed": "Te has desinscrito con éxito de este cerebro."
|
||||
}
|
||||
"deleteButton": "Borrar el cerebro",
|
||||
"deleteConfirmQuestion": "¿Estás seguro de que quieres borrar el cerebro? No podrás recuperarlo.",
|
||||
"deleteConfirmYes": "Sí, borrar el cerebro",
|
||||
"returnButton": "Vuelta",
|
||||
"unsubscribeButton": "Cancelar suscripción del cerebro",
|
||||
"unsubscribeConfirmQuestion": "¿Estás seguro de que quieres darte de baja de este cerebro?",
|
||||
"unsubscribeConfirmYes": "Sí, cancelar la suscripción de este cerebro",
|
||||
"successfully_deleted": "Cerebro eliminado con éxito.",
|
||||
"successfully_unsubscribed": "Te has desinscrito con éxito de este cerebro."
|
||||
}
|
||||
|
@ -1 +1,15 @@
|
||||
{"title":"Explora datos subidos","subtitle":"Visualiza, descarga o elimina el conocimiento utilizado por tu cerebro","empty":"¡Oh No!, Tu Cerebro está vacío","noBrain":"Id de Cerebro no encontrado","sessionNotFound":"Sesión no encontrada","deleted":"{{fileName}} borrado del cerebro {{brain}}","errorDeleting":"Error borrando {{fileName}}","view":"Ver","chunkNumber":"No. de partes: {{quantity}}","notAvailable":"No disponible","deleteConfirmTitle":"Confirmar","deleteConfirmText":"¿Realmente quieres eliminar?","feed_brain_instructions":"Para agregar conocimiento a un cerebro, ve a la página de chat y haz clic en el botón de más a la izquierda del campo de chat."}
|
||||
{
|
||||
"title": "Explora datos subidos",
|
||||
"subtitle": "Visualiza, descarga o elimina el conocimiento utilizado por tu cerebro",
|
||||
"empty": "¡Oh No!, Tu Cerebro está vacío",
|
||||
"noBrain": "Id de Cerebro no encontrado",
|
||||
"sessionNotFound": "Sesión no encontrada",
|
||||
"deleted": "{{fileName}} borrado del cerebro {{brain}}",
|
||||
"errorDeleting": "Error borrando {{fileName}}",
|
||||
"view": "Ver",
|
||||
"chunkNumber": "No. de partes: {{quantity}}",
|
||||
"notAvailable": "No disponible",
|
||||
"deleteConfirmTitle": "Confirmar",
|
||||
"deleteConfirmText": "¿Realmente quieres eliminar?",
|
||||
"feed_brain_instructions": "Para agregar conocimiento a un cerebro, ve a la página de chat y haz clic en el botón de más a la izquierda del campo de chat."
|
||||
}
|
||||
|
@ -1 +1,14 @@
|
||||
{"method_label":"Method","url_placeholder":"URL","searchParams":"Search Params","headers":"Headers","params":"Params","key":"Key","type":"Type (string or number)","description":"Description","secrets":"Secretos","paramsTabDescription":"Estos valores se envían como cuerpo de la solicitud.","searchParamsTabDescription":"Estos valores se envían como cadena de consulta.","secretsTabDescription":"Estos valores se envían como claves de encabezado."}
|
||||
{
|
||||
"method_label": "Method",
|
||||
"url_placeholder": "URL",
|
||||
"searchParams": "Search Params",
|
||||
"headers": "Headers",
|
||||
"params": "Params",
|
||||
"key": "Key",
|
||||
"type": "Type (string or number)",
|
||||
"description": "Description",
|
||||
"secrets": "Secretos",
|
||||
"paramsTabDescription": "Estos valores se envían como cuerpo de la solicitud.",
|
||||
"searchParamsTabDescription": "Estos valores se envían como cadena de consulta.",
|
||||
"secretsTabDescription": "Estos valores se envían como claves de encabezado."
|
||||
}
|
||||
|
@ -1,36 +1,36 @@
|
||||
{
|
||||
"sign_in": "Iniciar sesión",
|
||||
"docs": "Docs",
|
||||
"pricing": "Precios",
|
||||
"sign_up": "Registrarse",
|
||||
"star_us": "Danos una estrella en Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Patrocinado por",
|
||||
"useCases": {
|
||||
"title": "Experiméntalo ahora.",
|
||||
"subtitle": "Comprueba nuestro ejemplo de uso de Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Obtén un segundo cerebro con",
|
||||
"subtitle": "Sube todos tus archivos y comienza a hablar con ellos.",
|
||||
"try_demo": "Prueba la demostración gratuita",
|
||||
"contact_sales": "Contacta al equipo de ventas"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Video de demostración",
|
||||
"start_now": "Comenzar ahora"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Comienza hoy"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Comienza hoy",
|
||||
"description_1": "Tu asistente personal que actúa como tu Segundo Cerebro.",
|
||||
"description_2": "Simplemente carga tus archivos y hazle preguntas.",
|
||||
"start_using": "Comienza a usar Quivr",
|
||||
"contact_sales": "Contacta al equipo de ventas"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "Lo que la gente dice sobre"
|
||||
}
|
||||
}
|
||||
"sign_in": "Iniciar sesión",
|
||||
"docs": "Docs",
|
||||
"pricing": "Precios",
|
||||
"sign_up": "Registrarse",
|
||||
"star_us": "Danos una estrella en Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Patrocinado por",
|
||||
"useCases": {
|
||||
"title": "Experiméntalo ahora.",
|
||||
"subtitle": "Comprueba nuestro ejemplo de uso de Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Obtén un segundo cerebro con",
|
||||
"subtitle": "Sube todos tus archivos y comienza a hablar con ellos.",
|
||||
"try_demo": "Prueba la demostración gratuita",
|
||||
"contact_sales": "Contacta al equipo de ventas"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Video de demostración",
|
||||
"start_now": "Comenzar ahora"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Comienza hoy"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Comienza hoy",
|
||||
"description_1": "Tu asistente personal que actúa como tu Segundo Cerebro.",
|
||||
"description_2": "Simplemente carga tus archivos y hazle preguntas.",
|
||||
"start_using": "Comienza a usar Quivr",
|
||||
"contact_sales": "Contacta al equipo de ventas"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "Lo que la gente dice sobre"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,13 @@
|
||||
{"wellcome":"Bienvenido/a a {{brain}}!","invitationMessage":"Te han invitado a unirte a este cerebro como un {{role}} y empezar a explorar. ¿Aceptas este entusiasmante viaje?","processingRequest":"Procesando tu pedido...","accept":"¡Sí, cuenta conmigo!","reject":"No, gracias","invitationNotFound":"Esta invitación no es válida","errorCheckingInvitation":"Ocurrió un error durante la comprobación de la invitación","accepted":"Invitación aceptada","errorAccepting":"Ocurrió un error aceptando la invitación","declined":"Invitación rechazada","errorDeclining":"Ocurrió un error rechazando la invitación"}
|
||||
{
|
||||
"wellcome": "Bienvenido/a a {{brain}}!",
|
||||
"invitationMessage": "Te han invitado a unirte a este cerebro como un {{role}} y empezar a explorar. ¿Aceptas este entusiasmante viaje?",
|
||||
"processingRequest": "Procesando tu pedido...",
|
||||
"accept": "¡Sí, cuenta conmigo!",
|
||||
"reject": "No, gracias",
|
||||
"invitationNotFound": "Esta invitación no es válida",
|
||||
"errorCheckingInvitation": "Ocurrió un error durante la comprobación de la invitación",
|
||||
"accepted": "Invitación aceptada",
|
||||
"errorAccepting": "Ocurrió un error aceptando la invitación",
|
||||
"declined": "Invitación rechazada",
|
||||
"errorDeclining": "Ocurrió un error rechazando la invitación"
|
||||
}
|
||||
|
@ -1,19 +1,19 @@
|
||||
{
|
||||
"password": "Contraseña",
|
||||
"googleLogin": "Continuar con Google",
|
||||
"azureLogin": "Continuar con Azure",
|
||||
"errorPasswordMissed": "Por favor ingrese su contraseña",
|
||||
"magicLink": "Continuar con correo electrónico",
|
||||
"errorMailMissed": "Por favor ingrese su dirección de correo electrónico",
|
||||
"talk_to": "Hablar con",
|
||||
"restriction_message": "Los usuarios no pagos tienen acceso a una demostración gratuita y limitada de Quivr",
|
||||
"email": "Dirección de correo electrónico",
|
||||
"cant_find": "¿No puedes encontrarlo?",
|
||||
"try_again": "Inténtalo de nuevo",
|
||||
"check_your_email": {
|
||||
"part1": "Acabamos de enviarte un ",
|
||||
"magic_link": "enlace mágico",
|
||||
"part2": ". Revisa tus correos electrónicos y sigue los pasos."
|
||||
},
|
||||
"login": "Iniciar sesión"
|
||||
}
|
||||
"password": "Contraseña",
|
||||
"googleLogin": "Continuar con Google",
|
||||
"azureLogin": "Continuar con Azure",
|
||||
"errorPasswordMissed": "Por favor ingrese su contraseña",
|
||||
"magicLink": "Continuar con correo electrónico",
|
||||
"errorMailMissed": "Por favor ingrese su dirección de correo electrónico",
|
||||
"talk_to": "Hablar con",
|
||||
"restriction_message": "Los usuarios no pagos tienen acceso a una demostración gratuita y limitada de Quivr",
|
||||
"email": "Dirección de correo electrónico",
|
||||
"cant_find": "¿No puedes encontrarlo?",
|
||||
"try_again": "Inténtalo de nuevo",
|
||||
"check_your_email": {
|
||||
"part1": "Acabamos de enviarte un ",
|
||||
"magic_link": "enlace mágico",
|
||||
"part2": ". Revisa tus correos electrónicos y sigue los pasos."
|
||||
},
|
||||
"login": "Iniciar sesión"
|
||||
}
|
||||
|
@ -1 +1,8 @@
|
||||
{"title":"Cerrar sesión","subtitle":"Hasta pronto","areYouSure":"¿Seguro que quieres cerrar la sesión?","cancel":"Cancelar","error":"Error al cerrar sesión {{errorMessage}}","loggedOut":"Sesión finalizada"}
|
||||
{
|
||||
"title": "Cerrar sesión",
|
||||
"subtitle": "Hasta pronto",
|
||||
"areYouSure": "¿Seguro que quieres cerrar la sesión?",
|
||||
"cancel": "Cancelar",
|
||||
"error": "Error al cerrar sesión {{errorMessage}}",
|
||||
"loggedOut": "Sesión finalizada"
|
||||
}
|
||||
|
@ -1 +1,38 @@
|
||||
{"all":"Todos","and":"y","cancel":"Cancelar","Chat":"Conversar","chatButton":"Conversar","comingSoon":"Próximamente","crawlButton":"Rastrear","createButton":"Crear","deleteButton":"Borrar","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.","doneButton":"Listo","Editor":"Editor","email":"Correo electrónico","Explore":"Explorar","invalidUrl":"URL inválida","lang":"es-ES","languageSelect":"Idioma preferido","loading":"Cargando...","logoutButton":"Cerrar sesión","newChatButton":"Nueva conversación","next":"Siguiente","or":"o","Owner":"Propietario","previous":"Anterior","resetButton":"Restaurar","saveButton":"Guardar","shareButton":"Compartir","themeSelect":"Tema de interfaz","title":"Quivr - Tu segundo cerebro con IA generativa","toastDismiss":"cerrar","updateButton":"Actualizar","Upload":"Subir","uploadButton":"Subir","uploadingButton":"Subiendo...","Viewer":"Espectador"}
|
||||
{
|
||||
"all": "Todos",
|
||||
"and": "y",
|
||||
"cancel": "Cancelar",
|
||||
"Chat": "Conversar",
|
||||
"chatButton": "Conversar",
|
||||
"comingSoon": "Próximamente",
|
||||
"crawlButton": "Rastrear",
|
||||
"createButton": "Crear",
|
||||
"deleteButton": "Borrar",
|
||||
"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.",
|
||||
"doneButton": "Listo",
|
||||
"Editor": "Editor",
|
||||
"email": "Correo electrónico",
|
||||
"Explore": "Explorar",
|
||||
"invalidUrl": "URL inválida",
|
||||
"lang": "es-ES",
|
||||
"languageSelect": "Idioma preferido",
|
||||
"loading": "Cargando...",
|
||||
"logoutButton": "Cerrar sesión",
|
||||
"newChatButton": "Nueva conversación",
|
||||
"next": "Siguiente",
|
||||
"or": "o",
|
||||
"Owner": "Propietario",
|
||||
"previous": "Anterior",
|
||||
"resetButton": "Restaurar",
|
||||
"saveButton": "Guardar",
|
||||
"shareButton": "Compartir",
|
||||
"themeSelect": "Tema de interfaz",
|
||||
"title": "Quivr - Tu segundo cerebro con IA generativa",
|
||||
"toastDismiss": "cerrar",
|
||||
"updateButton": "Actualizar",
|
||||
"Upload": "Subir",
|
||||
"uploadButton": "Subir",
|
||||
"uploadingButton": "Subiendo...",
|
||||
"Viewer": "Espectador"
|
||||
}
|
||||
|
@ -1 +1,10 @@
|
||||
{"title":"Uso del cerebro de {{user}}","fetching":"Obteniendo tus datos...","requestsCount":"Peticiones de hoy: {{count}}","brainSize":"Espacio sobrante en cerebro","empty":"Vacío","Used":"Usado","Unused":"Sin usar","brainUsage":"Uso del cerebro"}
|
||||
{
|
||||
"title": "Uso del cerebro de {{user}}",
|
||||
"fetching": "Obteniendo tus datos...",
|
||||
"requestsCount": "Peticiones de hoy: {{count}}",
|
||||
"brainSize": "Espacio sobrante en cerebro",
|
||||
"empty": "Vacío",
|
||||
"Used": "Usado",
|
||||
"Unused": "Sin usar",
|
||||
"brainUsage": "Uso del cerebro"
|
||||
}
|
||||
|
@ -1 +1,56 @@
|
||||
{"accountSection":"Votre Compte","anthropicKeyLabel":"Clé API Anthropic","anthropicKeyPlaceholder":"Clé API Anthropic","apiKey":"Clé API","backendSection":"Configuration du backend","backendUrlLabel":"URL du backend","backendUrlPlaceHolder":"URL du backend","brainUpdated":"Cerveau mis à jour avec succès","configReset":"Configuration réinitialisée","configSaved":"Configuration sauvegardée","customPromptSection":"Invite personnalisée","defaultBrainSet":"Cerveau défini par défaut avec succès","descriptionRequired":"La description est requise","error":{"copy":"Échec de la copie","createApiKey":"Erreur lors de la création de la clé API"},"errorRemovingPrompt":"Erreur lors de la suppression de l'invite","incorrectApiKey":"Clé API incorrecte","invalidApiKeyError":"Clé API invalide","invalidOpenAiKey":"Clé OpenAI invalide","keepInLocal":"Garder en local","knowledge":"Connaissances","maxTokens":"Jetons max","modelLabel":"Modèle","modelSection":"Configuration du modèle","nameRequired":"Le nom est requis","newAPIKey":"Créer une nouvelle clé","noUser":"Pas d'utilisateur","ohno":"Oh non !","openAiKeyLabel":"Clé Open AI","openAiKeyPlaceholder":"sk-xxx","people":"Personnes","promptContent":"Contenu de l'invite","promptContentPlaceholder":"En tant qu'IA, vous...","promptFieldsRequired":"Le titre et le contenu de l'invite sont requis","promptName":"Titre de l'invite","promptNamePlaceholder":"Mon super nom d'invite","promptRemoved":"Invite supprimée avec succès","publicPrompts":"Choisir dans les invites publiques","removePrompt":"Supprimer l'invite","requireAccess":"Veuillez demander l'accès au propriétaire.","roleRequired":"Vous n'avez pas le rôle nécessaire pour accéder à cet onglet 🧠💡🥲.","selectQuivrPersonalityBtn":"Sélectionnez une personnalité Quivr","settings":"Paramètres","signedInAs":"Connecté en tant que","subtitle":"Gérez votre cerveau","supabaseKeyLabel":"Clé Supabase","supabaseKeyPlaceHolder":"Clé Supabase","supabaseURLLabel":"URL Supabase","supabaseURLPlaceHolder":"URL Supabase","temperature":"Température","title":"Configuration","updatingBrainSettings":"Mise à jour des paramètres du cerveau..."}
|
||||
{
|
||||
"accountSection": "Votre Compte",
|
||||
"anthropicKeyLabel": "Clé API Anthropic",
|
||||
"anthropicKeyPlaceholder": "Clé API Anthropic",
|
||||
"apiKey": "Clé API",
|
||||
"backendSection": "Configuration du backend",
|
||||
"backendUrlLabel": "URL du backend",
|
||||
"backendUrlPlaceHolder": "URL du backend",
|
||||
"brainUpdated": "Cerveau mis à jour avec succès",
|
||||
"configReset": "Configuration réinitialisée",
|
||||
"configSaved": "Configuration sauvegardée",
|
||||
"customPromptSection": "Invite personnalisée",
|
||||
"defaultBrainSet": "Cerveau défini par défaut avec succès",
|
||||
"descriptionRequired": "La description est requise",
|
||||
"error": {
|
||||
"copy": "Échec de la copie",
|
||||
"createApiKey": "Erreur lors de la création de la clé API"
|
||||
},
|
||||
"errorRemovingPrompt": "Erreur lors de la suppression de l'invite",
|
||||
"incorrectApiKey": "Clé API incorrecte",
|
||||
"invalidApiKeyError": "Clé API invalide",
|
||||
"invalidOpenAiKey": "Clé OpenAI invalide",
|
||||
"keepInLocal": "Garder en local",
|
||||
"knowledge": "Connaissances",
|
||||
"maxTokens": "Jetons max",
|
||||
"modelLabel": "Modèle",
|
||||
"modelSection": "Configuration du modèle",
|
||||
"nameRequired": "Le nom est requis",
|
||||
"newAPIKey": "Créer une nouvelle clé",
|
||||
"noUser": "Pas d'utilisateur",
|
||||
"ohno": "Oh non !",
|
||||
"openAiKeyLabel": "Clé Open AI",
|
||||
"openAiKeyPlaceholder": "sk-xxx",
|
||||
"people": "Personnes",
|
||||
"promptContent": "Contenu de l'invite",
|
||||
"promptContentPlaceholder": "En tant qu'IA, vous...",
|
||||
"promptFieldsRequired": "Le titre et le contenu de l'invite sont requis",
|
||||
"promptName": "Titre de l'invite",
|
||||
"promptNamePlaceholder": "Mon super nom d'invite",
|
||||
"promptRemoved": "Invite supprimée avec succès",
|
||||
"publicPrompts": "Choisir dans les invites publiques",
|
||||
"removePrompt": "Supprimer l'invite",
|
||||
"requireAccess": "Veuillez demander l'accès au propriétaire.",
|
||||
"roleRequired": "Vous n'avez pas le rôle nécessaire pour accéder à cet onglet 🧠💡🥲.",
|
||||
"selectQuivrPersonalityBtn": "Sélectionnez une personnalité Quivr",
|
||||
"settings": "Paramètres",
|
||||
"signedInAs": "Connecté en tant que",
|
||||
"subtitle": "Gérez votre cerveau",
|
||||
"supabaseKeyLabel": "Clé Supabase",
|
||||
"supabaseKeyPlaceHolder": "Clé Supabase",
|
||||
"supabaseURLLabel": "URL Supabase",
|
||||
"supabaseURLPlaceHolder": "URL Supabase",
|
||||
"temperature": "Température",
|
||||
"title": "Configuration",
|
||||
"updatingBrainSettings": "Mise à jour des paramètres du cerveau..."
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{
|
||||
"speak_to": "Parlez à notre",
|
||||
"sales_team": "équipe de vente",
|
||||
"pricing": "Tarif",
|
||||
"form": {
|
||||
"email": "Courriel professionnel",
|
||||
"question": "Question",
|
||||
"submit": "Contacter",
|
||||
"placeholder_question": "Comment pouvons-nous vous aider ?",
|
||||
"thank_you": "Merci !",
|
||||
"thank_you_text": "Nous vous répondrons dès que possible.",
|
||||
"sending_mail_error": "Une erreur s'est produite lors de l'envoi de votre message. Veuillez réessayer plus tard."
|
||||
}
|
||||
}
|
||||
"speak_to": "Parlez à notre",
|
||||
"sales_team": "équipe de vente",
|
||||
"pricing": "Tarif",
|
||||
"form": {
|
||||
"email": "Courriel professionnel",
|
||||
"question": "Question",
|
||||
"submit": "Contacter",
|
||||
"placeholder_question": "Comment pouvons-nous vous aider ?",
|
||||
"thank_you": "Merci !",
|
||||
"thank_you_text": "Nous vous répondrons dès que possible.",
|
||||
"sending_mail_error": "Une erreur s'est produite lors de l'envoi de votre message. Veuillez réessayer plus tard."
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"deleteButton": "Supprimer le cerveau",
|
||||
"deleteConfirmQuestion": "Êtes-vous sûr de vouloir supprimer le cerveau? Cette action est irréversible!",
|
||||
"deleteConfirmYes": "Oui, supprimer",
|
||||
"returnButton": "Retour",
|
||||
"unsubscribeButton": "Se désabonner du cerveau",
|
||||
"unsubscribeConfirmQuestion": "Êtes-vous sûr de vouloir vous désabonner de ce cerveau ?",
|
||||
"unsubscribeConfirmYes": "Oui, se désabonner de ce cerveau",
|
||||
"successfully_deleted": "Cerveau supprimé avec succès.",
|
||||
"successfully_unsubscribed": "Vous vous êtes désabonné avec succès de ce cerveau."
|
||||
}
|
||||
"deleteButton": "Supprimer le cerveau",
|
||||
"deleteConfirmQuestion": "Êtes-vous sûr de vouloir supprimer le cerveau? Cette action est irréversible!",
|
||||
"deleteConfirmYes": "Oui, supprimer",
|
||||
"returnButton": "Retour",
|
||||
"unsubscribeButton": "Se désabonner du cerveau",
|
||||
"unsubscribeConfirmQuestion": "Êtes-vous sûr de vouloir vous désabonner de ce cerveau ?",
|
||||
"unsubscribeConfirmYes": "Oui, se désabonner de ce cerveau",
|
||||
"successfully_deleted": "Cerveau supprimé avec succès.",
|
||||
"successfully_unsubscribed": "Vous vous êtes désabonné avec succès de ce cerveau."
|
||||
}
|
||||
|
@ -1 +1,15 @@
|
||||
{"title":"Explorez les données téléchargées","subtitle":"Visualisez, téléchargez ou supprimez les connaissances utilisées par votre cerveau","empty":"Oh non, votre cerveau est vide.","noBrain":"ID du cerveau introuvable","sessionNotFound":"Session utilisateur introuvable","deleted":"{{fileName}} supprimé du cerveau {{brain}}","errorDeleting":"Erreur lors de la suppression de {{fileName}}","view":"Voir","chunkNumber":"Nombre de fragments : {{quantity}}","notAvailable":"Non disponible","deleteConfirmTitle":"Confirmer","deleteConfirmText":"Voulez-vous vraiment supprimer ?","feed_brain_instructions":"Pour ajouter des connaissances à un cerveau, allez sur la page de chat, puis cliquez sur le bouton plus à gauche de la zone de chat."}
|
||||
{
|
||||
"title": "Explorez les données téléchargées",
|
||||
"subtitle": "Visualisez, téléchargez ou supprimez les connaissances utilisées par votre cerveau",
|
||||
"empty": "Oh non, votre cerveau est vide.",
|
||||
"noBrain": "ID du cerveau introuvable",
|
||||
"sessionNotFound": "Session utilisateur introuvable",
|
||||
"deleted": "{{fileName}} supprimé du cerveau {{brain}}",
|
||||
"errorDeleting": "Erreur lors de la suppression de {{fileName}}",
|
||||
"view": "Voir",
|
||||
"chunkNumber": "Nombre de fragments : {{quantity}}",
|
||||
"notAvailable": "Non disponible",
|
||||
"deleteConfirmTitle": "Confirmer",
|
||||
"deleteConfirmText": "Voulez-vous vraiment supprimer ?",
|
||||
"feed_brain_instructions": "Pour ajouter des connaissances à un cerveau, allez sur la page de chat, puis cliquez sur le bouton plus à gauche de la zone de chat."
|
||||
}
|
||||
|
@ -1 +1,14 @@
|
||||
{"method_label":"Method","url_placeholder":"URL","searchParams":"Search Params","headers":"Headers","params":"Params","key":"Key","type":"Type (string or number)","description":"Description","secrets":"Secrets","paramsTabDescription":"Ces valeurs sont envoyées sous forme de corps de requête.","searchParamsTabDescription":"Ces valeurs sont envoyées sous forme de chaîne de requête.","secretsTabDescription":"Ces valeurs sont envoyées sous forme de clés d'en-tête."}
|
||||
{
|
||||
"method_label": "Method",
|
||||
"url_placeholder": "URL",
|
||||
"searchParams": "Search Params",
|
||||
"headers": "Headers",
|
||||
"params": "Params",
|
||||
"key": "Key",
|
||||
"type": "Type (string or number)",
|
||||
"description": "Description",
|
||||
"secrets": "Secrets",
|
||||
"paramsTabDescription": "Ces valeurs sont envoyées sous forme de corps de requête.",
|
||||
"searchParamsTabDescription": "Ces valeurs sont envoyées sous forme de chaîne de requête.",
|
||||
"secretsTabDescription": "Ces valeurs sont envoyées sous forme de clés d'en-tête."
|
||||
}
|
||||
|
@ -1,36 +1,36 @@
|
||||
{
|
||||
"sign_in": "Se connecter",
|
||||
"docs": "Docs",
|
||||
"pricing": "Tarif",
|
||||
"sign_up": "S'inscrire",
|
||||
"star_us": "Étoilez-nous sur Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Sponsorisé par",
|
||||
"useCases": {
|
||||
"title": "Expérimentez-le maintenant.",
|
||||
"subtitle": "Consultez notre exemple d'utilisation de Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Obtenez un deuxième cerveau avec",
|
||||
"subtitle": "Téléchargez tous vos fichiers et commencez à discuter avec eux.",
|
||||
"try_demo": "Essayez la démo gratuite",
|
||||
"contact_sales": "Contactez l'équipe commerciale"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Vidéo de démonstration",
|
||||
"start_now": "Commencer maintenant"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Commencez dès aujourd'hui"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Commencez aujourd'hui",
|
||||
"description_1": "Votre assistant personnel qui agit comme votre Deuxième Cerveau.",
|
||||
"description_2": "Il vous suffit de télécharger vos fichiers et de lui poser des questions.",
|
||||
"start_using": "Commencez à utiliser Quivr",
|
||||
"contact_sales": "Contacter l'équipe commerciale"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "Ce que les gens disent à propos de"
|
||||
}
|
||||
}
|
||||
"sign_in": "Se connecter",
|
||||
"docs": "Docs",
|
||||
"pricing": "Tarif",
|
||||
"sign_up": "S'inscrire",
|
||||
"star_us": "Étoilez-nous sur Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Sponsorisé par",
|
||||
"useCases": {
|
||||
"title": "Expérimentez-le maintenant.",
|
||||
"subtitle": "Consultez notre exemple d'utilisation de Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Obtenez un deuxième cerveau avec",
|
||||
"subtitle": "Téléchargez tous vos fichiers et commencez à discuter avec eux.",
|
||||
"try_demo": "Essayez la démo gratuite",
|
||||
"contact_sales": "Contactez l'équipe commerciale"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Vidéo de démonstration",
|
||||
"start_now": "Commencer maintenant"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Commencez dès aujourd'hui"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Commencez aujourd'hui",
|
||||
"description_1": "Votre assistant personnel qui agit comme votre Deuxième Cerveau.",
|
||||
"description_2": "Il vous suffit de télécharger vos fichiers et de lui poser des questions.",
|
||||
"start_using": "Commencez à utiliser Quivr",
|
||||
"contact_sales": "Contacter l'équipe commerciale"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "Ce que les gens disent à propos de"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,13 @@
|
||||
{"wellcome":"Bienvenue sur {{brain}} !","invitationMessage":"Vous avez été invité(e) à rejoindre ce cerveau en tant que {{role}} et à commencer à explorer. Acceptez-vous ce voyage passionnant ?","processingRequest":"Traitement de votre demande en cours...","accept":"Oui, je suis partant(e) !","reject":"Non, merci","invitationNotFound":"Cette invitation n'est pas valide","errorCheckingInvitation":"Une erreur s'est produite lors de la vérification de l'invitation","accepted":"Invitation acceptée","errorAccepting":"Une erreur s'est produite lors de l'acceptation de l'invitation","declined":"Invitation refusée","errorDeclining":"Une erreur s'est produite lors du refus de l'invitation"}
|
||||
{
|
||||
"wellcome": "Bienvenue sur {{brain}} !",
|
||||
"invitationMessage": "Vous avez été invité(e) à rejoindre ce cerveau en tant que {{role}} et à commencer à explorer. Acceptez-vous ce voyage passionnant ?",
|
||||
"processingRequest": "Traitement de votre demande en cours...",
|
||||
"accept": "Oui, je suis partant(e) !",
|
||||
"reject": "Non, merci",
|
||||
"invitationNotFound": "Cette invitation n'est pas valide",
|
||||
"errorCheckingInvitation": "Une erreur s'est produite lors de la vérification de l'invitation",
|
||||
"accepted": "Invitation acceptée",
|
||||
"errorAccepting": "Une erreur s'est produite lors de l'acceptation de l'invitation",
|
||||
"declined": "Invitation refusée",
|
||||
"errorDeclining": "Une erreur s'est produite lors du refus de l'invitation"
|
||||
}
|
||||
|
@ -1,19 +1,19 @@
|
||||
{
|
||||
"password": "Mot de passe",
|
||||
"googleLogin": "Continuer avec Google",
|
||||
"azureLogin": "Continuer avec Azure",
|
||||
"errorPasswordMissed": "Veuillez entrer votre mot de passe",
|
||||
"magicLink": "Continuer avec e-mail",
|
||||
"errorMailMissed": "Veuillez saisir votre adresse e-mail",
|
||||
"talk_to": "Parler à",
|
||||
"restriction_message": "Les utilisateurs non payants ont accès à une démonstration gratuite et limitée de Quivr",
|
||||
"email": "Adresse e-mail",
|
||||
"cant_find": "Vous ne le trouvez pas ?",
|
||||
"try_again": "Réessayez",
|
||||
"check_your_email": {
|
||||
"part1": "Nous venons de vous envoyer un ",
|
||||
"magic_link": "lien magique",
|
||||
"part2": ". Vérifiez vos e-mails et suivez les étapes."
|
||||
},
|
||||
"login": "Se connecter"
|
||||
}
|
||||
"password": "Mot de passe",
|
||||
"googleLogin": "Continuer avec Google",
|
||||
"azureLogin": "Continuer avec Azure",
|
||||
"errorPasswordMissed": "Veuillez entrer votre mot de passe",
|
||||
"magicLink": "Continuer avec e-mail",
|
||||
"errorMailMissed": "Veuillez saisir votre adresse e-mail",
|
||||
"talk_to": "Parler à",
|
||||
"restriction_message": "Les utilisateurs non payants ont accès à une démonstration gratuite et limitée de Quivr",
|
||||
"email": "Adresse e-mail",
|
||||
"cant_find": "Vous ne le trouvez pas ?",
|
||||
"try_again": "Réessayez",
|
||||
"check_your_email": {
|
||||
"part1": "Nous venons de vous envoyer un ",
|
||||
"magic_link": "lien magique",
|
||||
"part2": ". Vérifiez vos e-mails et suivez les étapes."
|
||||
},
|
||||
"login": "Se connecter"
|
||||
}
|
||||
|
@ -1 +1,8 @@
|
||||
{"title":"Déconnexion","subtitle":"À la prochaine","areYouSure":"Êtes-vous sûr de vouloir vous déconnecter ?","cancel":"Annuler","error":"Erreur lors de la déconnexion {{errorMessage}}","loggedOut":"Déconnexion réussie"}
|
||||
{
|
||||
"title": "Déconnexion",
|
||||
"subtitle": "À la prochaine",
|
||||
"areYouSure": "Êtes-vous sûr de vouloir vous déconnecter ?",
|
||||
"cancel": "Annuler",
|
||||
"error": "Erreur lors de la déconnexion {{errorMessage}}",
|
||||
"loggedOut": "Déconnexion réussie"
|
||||
}
|
||||
|
@ -1 +1,38 @@
|
||||
{"all":"Tout","and":"et","cancel":"Annuler","Chat":"Chat","chatButton":"Chat","comingSoon":"Bientôt disponible","crawlButton":"Crawler","createButton":"Créer","deleteButton":"Supprimer","deleteForeverButton":"Supprimer définitivement","description":"Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.","doneButton":"Fait","Editor":"Éditeur","email":"Email","Explore":"Explorer","invalidUrl":"URL invalide","lang":"fr-FR","languageSelect":"Langue préférée","loading":"Chargement...","logoutButton":"Déconnexion","newChatButton":"Nouveau chat","next":"Suivant","or":"ou","Owner":"Propriétaire","previous":"Précédent","resetButton":"Réinitialiser","saveButton":"Sauvegarder","shareButton":"Partager","themeSelect":"Thème de l'interface","title":"Quivr - Obtenez un deuxième cerveau avec l'IA générative","toastDismiss":"ignorer","updateButton":"Mettre à jour","Upload":"Télécharger","uploadButton":"Télécharger","uploadingButton":"Téléchargement...","Viewer":"Visualiseur"}
|
||||
{
|
||||
"all": "Tout",
|
||||
"and": "et",
|
||||
"cancel": "Annuler",
|
||||
"Chat": "Chat",
|
||||
"chatButton": "Chat",
|
||||
"comingSoon": "Bientôt disponible",
|
||||
"crawlButton": "Crawler",
|
||||
"createButton": "Créer",
|
||||
"deleteButton": "Supprimer",
|
||||
"deleteForeverButton": "Supprimer définitivement",
|
||||
"description": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.",
|
||||
"doneButton": "Fait",
|
||||
"Editor": "Éditeur",
|
||||
"email": "Email",
|
||||
"Explore": "Explorer",
|
||||
"invalidUrl": "URL invalide",
|
||||
"lang": "fr-FR",
|
||||
"languageSelect": "Langue préférée",
|
||||
"loading": "Chargement...",
|
||||
"logoutButton": "Déconnexion",
|
||||
"newChatButton": "Nouveau chat",
|
||||
"next": "Suivant",
|
||||
"or": "ou",
|
||||
"Owner": "Propriétaire",
|
||||
"previous": "Précédent",
|
||||
"resetButton": "Réinitialiser",
|
||||
"saveButton": "Sauvegarder",
|
||||
"shareButton": "Partager",
|
||||
"themeSelect": "Thème de l'interface",
|
||||
"title": "Quivr - Obtenez un deuxième cerveau avec l'IA générative",
|
||||
"toastDismiss": "ignorer",
|
||||
"updateButton": "Mettre à jour",
|
||||
"Upload": "Télécharger",
|
||||
"uploadButton": "Télécharger",
|
||||
"uploadingButton": "Téléchargement...",
|
||||
"Viewer": "Visualiseur"
|
||||
}
|
||||
|
@ -1 +1,10 @@
|
||||
{"title":"Utilisation du cerveau de {{user}}","fetching":"Récupération de vos données...","requestsCount":"Requêtes d'aujourd'hui : {{count}}","brainSize":"Taille du cerveau restante","empty":"Vide","Used":"Utilisé","Unused":"Inutilisé","brainUsage":"Utilisation du cerveau"}
|
||||
{
|
||||
"title": "Utilisation du cerveau de {{user}}",
|
||||
"fetching": "Récupération de vos données...",
|
||||
"requestsCount": "Requêtes d'aujourd'hui : {{count}}",
|
||||
"brainSize": "Taille du cerveau restante",
|
||||
"empty": "Vide",
|
||||
"Used": "Utilisé",
|
||||
"Unused": "Inutilisé",
|
||||
"brainUsage": "Utilisation du cerveau"
|
||||
}
|
||||
|
@ -1 +1,56 @@
|
||||
{"accountSection":"Sua Conta","anthropicKeyLabel":"Chave da API Anthropic","anthropicKeyPlaceholder":"Chave da API Anthropic","apiKey":"Chave de API","backendSection":"Configuração do backend","backendUrlLabel":"URL do Backend","backendUrlPlaceHolder":"URL do Backend","brainUpdated":"Cérebro atualizado com sucesso","configReset":"Configuração redefinida","configSaved":"Configuração salva","customPromptSection":"Prompt personalizado","defaultBrainSet":"Cérebro definido como padrão com sucesso","descriptionRequired":"A descrição é obrigatória","error":{"copy":"Falha ao copiar","createApiKey":"Erro ao criar a chave de API"},"errorRemovingPrompt":"Erro ao remover o prompt","incorrectApiKey":"Chave de API incorreta","invalidApiKeyError":"Chave de API inválida","invalidOpenAiKey":"Chave OpenAI inválida","keepInLocal":"Manter localmente","knowledge":"Conhecimento","maxTokens":"Máximo de tokens","modelLabel":"Modelo","modelSection":"Configuração do modelo","nameRequired":"O nome é obrigatório","newAPIKey":"Criar Nova Chave","noUser":"Nenhum usuário","ohno":"Oh, não!","openAiKeyLabel":"Chave Open AI","openAiKeyPlaceholder":"sk-xxx","people":"Pessoas","promptContent":"Conteúdo do Prompt","promptContentPlaceholder":"Como uma IA, você...","promptFieldsRequired":"Título e conteúdo do prompt são obrigatórios","promptName":"Título do Prompt","promptNamePlaceholder":"Nome incrível para meu prompt","promptRemoved":"Prompt removido com sucesso","publicPrompts":"Escolher em prompts públicos","removePrompt":"Remover prompt","requireAccess":"Por favor, solicite acesso ao proprietário.","roleRequired":"Você não possui a função necessária para acessar esta aba 🧠💡🥲.","selectQuivrPersonalityBtn":"Selecione uma personalidade Quivr","settings":"Configurações","signedInAs":"Logado como","subtitle":"Gerencie o seu cérebro","supabaseKeyLabel":"Chave do Supabase","supabaseKeyPlaceHolder":"Chave do Supabase","supabaseURLLabel":"URL do Supabase","supabaseURLPlaceHolder":"URL do Supabase","temperature":"Temperatura","title":"Configuração","updatingBrainSettings":"Atualizando configurações do cérebro..."}
|
||||
{
|
||||
"accountSection": "Sua Conta",
|
||||
"anthropicKeyLabel": "Chave da API Anthropic",
|
||||
"anthropicKeyPlaceholder": "Chave da API Anthropic",
|
||||
"apiKey": "Chave de API",
|
||||
"backendSection": "Configuração do backend",
|
||||
"backendUrlLabel": "URL do Backend",
|
||||
"backendUrlPlaceHolder": "URL do Backend",
|
||||
"brainUpdated": "Cérebro atualizado com sucesso",
|
||||
"configReset": "Configuração redefinida",
|
||||
"configSaved": "Configuração salva",
|
||||
"customPromptSection": "Prompt personalizado",
|
||||
"defaultBrainSet": "Cérebro definido como padrão com sucesso",
|
||||
"descriptionRequired": "A descrição é obrigatória",
|
||||
"error": {
|
||||
"copy": "Falha ao copiar",
|
||||
"createApiKey": "Erro ao criar a chave de API"
|
||||
},
|
||||
"errorRemovingPrompt": "Erro ao remover o prompt",
|
||||
"incorrectApiKey": "Chave de API incorreta",
|
||||
"invalidApiKeyError": "Chave de API inválida",
|
||||
"invalidOpenAiKey": "Chave OpenAI inválida",
|
||||
"keepInLocal": "Manter localmente",
|
||||
"knowledge": "Conhecimento",
|
||||
"maxTokens": "Máximo de tokens",
|
||||
"modelLabel": "Modelo",
|
||||
"modelSection": "Configuração do modelo",
|
||||
"nameRequired": "O nome é obrigatório",
|
||||
"newAPIKey": "Criar Nova Chave",
|
||||
"noUser": "Nenhum usuário",
|
||||
"ohno": "Oh, não!",
|
||||
"openAiKeyLabel": "Chave Open AI",
|
||||
"openAiKeyPlaceholder": "sk-xxx",
|
||||
"people": "Pessoas",
|
||||
"promptContent": "Conteúdo do Prompt",
|
||||
"promptContentPlaceholder": "Como uma IA, você...",
|
||||
"promptFieldsRequired": "Título e conteúdo do prompt são obrigatórios",
|
||||
"promptName": "Título do Prompt",
|
||||
"promptNamePlaceholder": "Nome incrível para meu prompt",
|
||||
"promptRemoved": "Prompt removido com sucesso",
|
||||
"publicPrompts": "Escolher em prompts públicos",
|
||||
"removePrompt": "Remover prompt",
|
||||
"requireAccess": "Por favor, solicite acesso ao proprietário.",
|
||||
"roleRequired": "Você não possui a função necessária para acessar esta aba 🧠💡🥲.",
|
||||
"selectQuivrPersonalityBtn": "Selecione uma personalidade Quivr",
|
||||
"settings": "Configurações",
|
||||
"signedInAs": "Logado como",
|
||||
"subtitle": "Gerencie o seu cérebro",
|
||||
"supabaseKeyLabel": "Chave do Supabase",
|
||||
"supabaseKeyPlaceHolder": "Chave do Supabase",
|
||||
"supabaseURLLabel": "URL do Supabase",
|
||||
"supabaseURLPlaceHolder": "URL do Supabase",
|
||||
"temperature": "Temperatura",
|
||||
"title": "Configuração",
|
||||
"updatingBrainSettings": "Atualizando configurações do cérebro..."
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{
|
||||
"speak_to": "Fale com o nosso",
|
||||
"sales_team": "time de vendas",
|
||||
"pricing": "Preços",
|
||||
"form": {
|
||||
"email": "E-mail de trabalho",
|
||||
"question": "Pergunta",
|
||||
"submit": "Contato",
|
||||
"placeholder_question": "Como podemos ajudar?",
|
||||
"thank_you": "Obrigado!",
|
||||
"thank_you_text": "Entraremos em contato o mais rápido possível.",
|
||||
"sending_mail_error": "Ocorreu um erro ao enviar sua mensagem. Por favor, tente novamente mais tarde."
|
||||
}
|
||||
}
|
||||
"speak_to": "Fale com o nosso",
|
||||
"sales_team": "time de vendas",
|
||||
"pricing": "Preços",
|
||||
"form": {
|
||||
"email": "E-mail de trabalho",
|
||||
"question": "Pergunta",
|
||||
"submit": "Contato",
|
||||
"placeholder_question": "Como podemos ajudar?",
|
||||
"thank_you": "Obrigado!",
|
||||
"thank_you_text": "Entraremos em contato o mais rápido possível.",
|
||||
"sending_mail_error": "Ocorreu um erro ao enviar sua mensagem. Por favor, tente novamente mais tarde."
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"deleteButton": "Excluir Cérebro",
|
||||
"deleteConfirmQuestion": "Você tem certeza de que deseja excluir este cérebro? Essa ação não pode ser desfeita.",
|
||||
"deleteConfirmYes": "Sim, excluir este cérebro",
|
||||
"returnButton": "Retornar",
|
||||
"unsubscribeButton": "Cancelar inscrição do cérebro",
|
||||
"unsubscribeConfirmQuestion": "Você tem certeza de que deseja cancelar a inscrição deste cérebro?",
|
||||
"unsubscribeConfirmYes": "Sim, cancelar a inscrição deste cérebro",
|
||||
"successfully_deleted": "Cérebro excluído com sucesso.",
|
||||
"successfully_unsubscribed": "Você se desinscreveu com sucesso deste cérebro."
|
||||
}
|
||||
"deleteButton": "Excluir Cérebro",
|
||||
"deleteConfirmQuestion": "Você tem certeza de que deseja excluir este cérebro? Essa ação não pode ser desfeita.",
|
||||
"deleteConfirmYes": "Sim, excluir este cérebro",
|
||||
"returnButton": "Retornar",
|
||||
"unsubscribeButton": "Cancelar inscrição do cérebro",
|
||||
"unsubscribeConfirmQuestion": "Você tem certeza de que deseja cancelar a inscrição deste cérebro?",
|
||||
"unsubscribeConfirmYes": "Sim, cancelar a inscrição deste cérebro",
|
||||
"successfully_deleted": "Cérebro excluído com sucesso.",
|
||||
"successfully_unsubscribed": "Você se desinscreveu com sucesso deste cérebro."
|
||||
}
|
||||
|
@ -1 +1,15 @@
|
||||
{"title":"Explorar dados enviados","subtitle":"Visualize, baixe ou exclua o conhecimento usado pelo seu cérebro","empty":"Oh, não! Seu Cérebro está vazio.","noBrain":"Cérebro não encontrado","sessionNotFound":"Sessão do usuário não encontrada","deleted":"{{fileName}} excluído do cérebro {{brain}}","errorDeleting":"Erro ao excluir {{fileName}}","view":"Visualizar","chunkNumber":"Número de partes: {{quantity}}","notAvailable":"Indisponível","deleteConfirmTitle":"Confirmar","deleteConfirmText":"Você realmente deseja excluir?","feed_brain_instructions":"Para adicionar conhecimento a um cérebro, vá para a página de chat e clique no botão de adição à esquerda da entrada de chat."}
|
||||
{
|
||||
"title": "Explorar dados enviados",
|
||||
"subtitle": "Visualize, baixe ou exclua o conhecimento usado pelo seu cérebro",
|
||||
"empty": "Oh, não! Seu Cérebro está vazio.",
|
||||
"noBrain": "Cérebro não encontrado",
|
||||
"sessionNotFound": "Sessão do usuário não encontrada",
|
||||
"deleted": "{{fileName}} excluído do cérebro {{brain}}",
|
||||
"errorDeleting": "Erro ao excluir {{fileName}}",
|
||||
"view": "Visualizar",
|
||||
"chunkNumber": "Número de partes: {{quantity}}",
|
||||
"notAvailable": "Indisponível",
|
||||
"deleteConfirmTitle": "Confirmar",
|
||||
"deleteConfirmText": "Você realmente deseja excluir?",
|
||||
"feed_brain_instructions": "Para adicionar conhecimento a um cérebro, vá para a página de chat e clique no botão de adição à esquerda da entrada de chat."
|
||||
}
|
||||
|
@ -1 +1,14 @@
|
||||
{"method_label":"Method","url_placeholder":"URL","searchParams":"Search Params","headers":"Headers","params":"Params","key":"Key","type":"Type (string or number)","description":"Description","secrets":"Secrets","paramsTabDescription":"Estes valores são enviados como corpo da solicitação.","searchParamsTabDescription":"Estes valores são enviados como string de consulta.","secretsTabDescription":"Estes valores são enviados como chaves de cabeçalho"}
|
||||
{
|
||||
"method_label": "Method",
|
||||
"url_placeholder": "URL",
|
||||
"searchParams": "Search Params",
|
||||
"headers": "Headers",
|
||||
"params": "Params",
|
||||
"key": "Key",
|
||||
"type": "Type (string or number)",
|
||||
"description": "Description",
|
||||
"secrets": "Secrets",
|
||||
"paramsTabDescription": "Estes valores são enviados como corpo da solicitação.",
|
||||
"searchParamsTabDescription": "Estes valores são enviados como string de consulta.",
|
||||
"secretsTabDescription": "Estes valores são enviados como chaves de cabeçalho"
|
||||
}
|
||||
|
@ -1,36 +1,36 @@
|
||||
{
|
||||
"sign_in": "Entrar",
|
||||
"docs": "Documentação",
|
||||
"pricing": "Preços",
|
||||
"sign_up": "Cadastrar",
|
||||
"star_us": "Nos avalie no Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Patrocinado por",
|
||||
"useCases": {
|
||||
"title": "Experimente agora.",
|
||||
"subtitle": "Confira nosso exemplo de uso do Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Obtenha um segundo cérebro com",
|
||||
"subtitle": "Faça o upload de todos os seus arquivos e comece a conversar com eles.",
|
||||
"try_demo": "Experimente a demonstração gratuita",
|
||||
"contact_sales": "Entre em contato com a equipe de vendas"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Vídeo de demonstração",
|
||||
"start_now": "Iniciar agora"
|
||||
},
|
||||
"security": {
|
||||
"cta": "¡Comienza hoy!"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Comece hoje",
|
||||
"description_1": "Seu assistente pessoal que age como seu Segundo Cérebro.",
|
||||
"description_2": "Basta fazer upload de seus arquivos e fazer perguntas a ele.",
|
||||
"start_using": "Comece a usar o Quivr",
|
||||
"contact_sales": "Entre em contato com a equipe de vendas"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "O que as pessoas dizem sobre"
|
||||
}
|
||||
}
|
||||
"sign_in": "Entrar",
|
||||
"docs": "Documentação",
|
||||
"pricing": "Preços",
|
||||
"sign_up": "Cadastrar",
|
||||
"star_us": "Nos avalie no Github",
|
||||
"blog": "Blog",
|
||||
"sponsored_by": "Patrocinado por",
|
||||
"useCases": {
|
||||
"title": "Experimente agora.",
|
||||
"subtitle": "Confira nosso exemplo de uso do Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Obtenha um segundo cérebro com",
|
||||
"subtitle": "Faça o upload de todos os seus arquivos e comece a conversar com eles.",
|
||||
"try_demo": "Experimente a demonstração gratuita",
|
||||
"contact_sales": "Entre em contato com a equipe de vendas"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Vídeo de demonstração",
|
||||
"start_now": "Iniciar agora"
|
||||
},
|
||||
"security": {
|
||||
"cta": "¡Comienza hoy!"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Comece hoje",
|
||||
"description_1": "Seu assistente pessoal que age como seu Segundo Cérebro.",
|
||||
"description_2": "Basta fazer upload de seus arquivos e fazer perguntas a ele.",
|
||||
"start_using": "Comece a usar o Quivr",
|
||||
"contact_sales": "Entre em contato com a equipe de vendas"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "O que as pessoas dizem sobre"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,13 @@
|
||||
{"wellcome":"Bem-vindo(a) ao {{brain}}!","invitationMessage":"Você foi convidado(a) a se juntar a este cérebro como {{role}} e começar a explorar. Você aceita esta jornada emocionante?","processingRequest":"Processando o seu pedido...","accept":"Sim, estou dentro!","reject":"Não, obrigado(a).","invitationNotFound":"Este convite não é válido.","errorCheckingInvitation":"Ocorreu um erro desconhecido ao verificar o convite","accepted":"Convite aceito","errorAccepting":"Ocorreu um erro desconhecido ao aceitar o convite","declined":"Convite recusado","errorDeclining":"Ocorreu um erro desconhecido ao recusar o convite"}
|
||||
{
|
||||
"wellcome": "Bem-vindo(a) ao {{brain}}!",
|
||||
"invitationMessage": "Você foi convidado(a) a se juntar a este cérebro como {{role}} e começar a explorar. Você aceita esta jornada emocionante?",
|
||||
"processingRequest": "Processando o seu pedido...",
|
||||
"accept": "Sim, estou dentro!",
|
||||
"reject": "Não, obrigado(a).",
|
||||
"invitationNotFound": "Este convite não é válido.",
|
||||
"errorCheckingInvitation": "Ocorreu um erro desconhecido ao verificar o convite",
|
||||
"accepted": "Convite aceito",
|
||||
"errorAccepting": "Ocorreu um erro desconhecido ao aceitar o convite",
|
||||
"declined": "Convite recusado",
|
||||
"errorDeclining": "Ocorreu um erro desconhecido ao recusar o convite"
|
||||
}
|
||||
|
@ -1,19 +1,19 @@
|
||||
{
|
||||
"password": "Senha",
|
||||
"googleLogin": "Continuar com o Google",
|
||||
"azureLogin": "Continuar com o Azure",
|
||||
"errorPasswordMissed": "Por favor, digite sua senha",
|
||||
"magicLink": "Continuar com e-mail",
|
||||
"errorMailMissed": "Por favor, digite seu endereço de e-mail",
|
||||
"talk_to": "Conversar com",
|
||||
"restriction_message": "Usuários não pagos têm acesso a uma demonstração gratuita e limitada do Quivr",
|
||||
"email": "Endereço de e-mail",
|
||||
"cant_find": "Não consegue encontrar?",
|
||||
"try_again": "Tente novamente",
|
||||
"check_your_email": {
|
||||
"part1": "Acabamos de enviar um ",
|
||||
"magic_link": "link mágico",
|
||||
"part2": ", verifique seus e-mails e siga as etapas."
|
||||
},
|
||||
"login": "Entrar"
|
||||
}
|
||||
"password": "Senha",
|
||||
"googleLogin": "Continuar com o Google",
|
||||
"azureLogin": "Continuar com o Azure",
|
||||
"errorPasswordMissed": "Por favor, digite sua senha",
|
||||
"magicLink": "Continuar com e-mail",
|
||||
"errorMailMissed": "Por favor, digite seu endereço de e-mail",
|
||||
"talk_to": "Conversar com",
|
||||
"restriction_message": "Usuários não pagos têm acesso a uma demonstração gratuita e limitada do Quivr",
|
||||
"email": "Endereço de e-mail",
|
||||
"cant_find": "Não consegue encontrar?",
|
||||
"try_again": "Tente novamente",
|
||||
"check_your_email": {
|
||||
"part1": "Acabamos de enviar um ",
|
||||
"magic_link": "link mágico",
|
||||
"part2": ", verifique seus e-mails e siga as etapas."
|
||||
},
|
||||
"login": "Entrar"
|
||||
}
|
||||
|
@ -1 +1,8 @@
|
||||
{"title":"Sair","subtitle":"Até a próxima vez","areYouSure":"Você tem certeza de que deseja sair?","cancel":"Cancelar","error":"Erro ao fazer logout {{errorMessage}}","loggedOut":"Saiu com sucesso"}
|
||||
{
|
||||
"title": "Sair",
|
||||
"subtitle": "Até a próxima vez",
|
||||
"areYouSure": "Você tem certeza de que deseja sair?",
|
||||
"cancel": "Cancelar",
|
||||
"error": "Erro ao fazer logout {{errorMessage}}",
|
||||
"loggedOut": "Saiu com sucesso"
|
||||
}
|
||||
|
@ -1 +1,38 @@
|
||||
{"all":"Todos","and":"e","cancel":"Cancelar","Chat":"Chat","chatButton":"Chat","comingSoon":"Em breve","crawlButton":"Rastrear","createButton":"Criar","deleteButton":"Excluir","deleteForeverButton":"Excluir permanentemente","description":"Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.","doneButton":"Concluído","Editor":"Editor","email":"Email","Explore":"Explorar","invalidUrl":"URL inválida","lang":"pt-BR","languageSelect":"Língua preferida","loading":"Carregando...","logoutButton":"Sair","newChatButton":"Novo Chat","next":"Próximo","or":"ou","Owner":"Proprietário","previous":"Anterior","resetButton":"Redefinir","saveButton":"Salvar","shareButton":"Compartilhar","themeSelect":"Tema de interface","title":"Quivr - Tenha um Segundo Cérebro com IA Generativa","toastDismiss":"fechar","updateButton":"Atualizar","Upload":"Enviar","uploadButton":"Enviar","uploadingButton":"Enviando...","Viewer":"Visualizador"}
|
||||
{
|
||||
"all": "Todos",
|
||||
"and": "e",
|
||||
"cancel": "Cancelar",
|
||||
"Chat": "Chat",
|
||||
"chatButton": "Chat",
|
||||
"comingSoon": "Em breve",
|
||||
"crawlButton": "Rastrear",
|
||||
"createButton": "Criar",
|
||||
"deleteButton": "Excluir",
|
||||
"deleteForeverButton": "Excluir permanentemente",
|
||||
"description": "Quivr é o seu segundo cérebro na nuvem, projetado para armazenar e recuperar facilmente informações não estruturadas.",
|
||||
"doneButton": "Concluído",
|
||||
"Editor": "Editor",
|
||||
"email": "Email",
|
||||
"Explore": "Explorar",
|
||||
"invalidUrl": "URL inválida",
|
||||
"lang": "pt-BR",
|
||||
"languageSelect": "Língua preferida",
|
||||
"loading": "Carregando...",
|
||||
"logoutButton": "Sair",
|
||||
"newChatButton": "Novo Chat",
|
||||
"next": "Próximo",
|
||||
"or": "ou",
|
||||
"Owner": "Proprietário",
|
||||
"previous": "Anterior",
|
||||
"resetButton": "Redefinir",
|
||||
"saveButton": "Salvar",
|
||||
"shareButton": "Compartilhar",
|
||||
"themeSelect": "Tema de interface",
|
||||
"title": "Quivr - Tenha um Segundo Cérebro com IA Generativa",
|
||||
"toastDismiss": "fechar",
|
||||
"updateButton": "Atualizar",
|
||||
"Upload": "Enviar",
|
||||
"uploadButton": "Enviar",
|
||||
"uploadingButton": "Enviando...",
|
||||
"Viewer": "Visualizador"
|
||||
}
|
||||
|
@ -1 +1,10 @@
|
||||
{"title":"Uso do Cérebro de {{user}}","fetching":"Buscando seus dados...","requestsCount":"Requisições de Hoje: {{count}}","brainSize":"Tamanho Restante do Cérebro","empty":"Vazio","Used":"Usado","Unused":"Não Usado","brainUsage":"Uso do Cérebro"}
|
||||
{
|
||||
"title": "Uso do Cérebro de {{user}}",
|
||||
"fetching": "Buscando seus dados...",
|
||||
"requestsCount": "Requisições de Hoje: {{count}}",
|
||||
"brainSize": "Tamanho Restante do Cérebro",
|
||||
"empty": "Vazio",
|
||||
"Used": "Usado",
|
||||
"Unused": "Não Usado",
|
||||
"brainUsage": "Uso do Cérebro"
|
||||
}
|
||||
|
@ -1 +1,56 @@
|
||||
{"accountSection":"Ваш аккаунт","anthropicKeyLabel":"Ключ Anthropic API","anthropicKeyPlaceholder":"Ключ Anthropic API","apiKey":"ключ API","backendSection":"Настройки бэкенда","backendUrlLabel":"URL бэкенда","backendUrlPlaceHolder":"URL бэкенда","brainUpdated":"Мозг успешно обновлен","configReset":"Настройки сброшены","configSaved":"Настройки сохранены","customPromptSection":"Пользовательский запрос","defaultBrainSet":"Мозг успешно установлен по умолчанию","descriptionRequired":"Описание обязательно","error":{"copy":"Не удалось скопировать","createApiKey":"Ошибка при создании API ключа"},"errorRemovingPrompt":"Ошибка при удалении запроса","incorrectApiKey":"Неверный ключ API","invalidApiKeyError":"Недействительный ключ API","invalidOpenAiKey":"Недействительный ключ OpenAI","keepInLocal":"Сохранить локально","knowledge":"Знания","maxTokens":"Максимальное количество токенов","modelLabel":"Модель","modelSection":"Настройки модели","nameRequired":"Имя обязательно","newAPIKey":"Создать новый ключ","noUser":"Пользователь не найден","ohno":"О нет!","openAiKeyLabel":"Ключ Open AI","openAiKeyPlaceholder":"sk-xxx","people":"Люди","promptContent":"Содержание запроса","promptContentPlaceholder":"Как искусственный интеллект, ваше...","promptFieldsRequired":"Название и содержание запроса обязательны","promptName":"Название запроса","promptNamePlaceholder":"Название моего потрясающего запроса","promptRemoved":"Запрос успешно удален","publicPrompts":"Выбрать из публичных запросов","removePrompt":"Удалить запрос","requireAccess":"Пожалуйста, запросите доступ у владельца.","roleRequired":"У вас нет необходимой роли для доступа к этой вкладке 🧠💡🥲.","selectQuivrPersonalityBtn":"Выберите личность Quivr","settings":"Настройки","signedInAs":"Вы вошли как","subtitle":"Управление вашим мозгом","supabaseKeyLabel":"Ключ Supabase","supabaseKeyPlaceHolder":"Ключ Supabase","supabaseURLLabel":"URL Supabase","supabaseURLPlaceHolder":"URL Supabase","temperature":"Температура","title":"Настройки","updatingBrainSettings":"Обновление настроек мозга..."}
|
||||
{
|
||||
"accountSection": "Ваш аккаунт",
|
||||
"anthropicKeyLabel": "Ключ Anthropic API",
|
||||
"anthropicKeyPlaceholder": "Ключ Anthropic API",
|
||||
"apiKey": "ключ API",
|
||||
"backendSection": "Настройки бэкенда",
|
||||
"backendUrlLabel": "URL бэкенда",
|
||||
"backendUrlPlaceHolder": "URL бэкенда",
|
||||
"brainUpdated": "Мозг успешно обновлен",
|
||||
"configReset": "Настройки сброшены",
|
||||
"configSaved": "Настройки сохранены",
|
||||
"customPromptSection": "Пользовательский запрос",
|
||||
"defaultBrainSet": "Мозг успешно установлен по умолчанию",
|
||||
"descriptionRequired": "Описание обязательно",
|
||||
"error": {
|
||||
"copy": "Не удалось скопировать",
|
||||
"createApiKey": "Ошибка при создании API ключа"
|
||||
},
|
||||
"errorRemovingPrompt": "Ошибка при удалении запроса",
|
||||
"incorrectApiKey": "Неверный ключ API",
|
||||
"invalidApiKeyError": "Недействительный ключ API",
|
||||
"invalidOpenAiKey": "Недействительный ключ OpenAI",
|
||||
"keepInLocal": "Сохранить локально",
|
||||
"knowledge": "Знания",
|
||||
"maxTokens": "Максимальное количество токенов",
|
||||
"modelLabel": "Модель",
|
||||
"modelSection": "Настройки модели",
|
||||
"nameRequired": "Имя обязательно",
|
||||
"newAPIKey": "Создать новый ключ",
|
||||
"noUser": "Пользователь не найден",
|
||||
"ohno": "О нет!",
|
||||
"openAiKeyLabel": "Ключ Open AI",
|
||||
"openAiKeyPlaceholder": "sk-xxx",
|
||||
"people": "Люди",
|
||||
"promptContent": "Содержание запроса",
|
||||
"promptContentPlaceholder": "Как искусственный интеллект, ваше...",
|
||||
"promptFieldsRequired": "Название и содержание запроса обязательны",
|
||||
"promptName": "Название запроса",
|
||||
"promptNamePlaceholder": "Название моего потрясающего запроса",
|
||||
"promptRemoved": "Запрос успешно удален",
|
||||
"publicPrompts": "Выбрать из публичных запросов",
|
||||
"removePrompt": "Удалить запрос",
|
||||
"requireAccess": "Пожалуйста, запросите доступ у владельца.",
|
||||
"roleRequired": "У вас нет необходимой роли для доступа к этой вкладке 🧠💡🥲.",
|
||||
"selectQuivrPersonalityBtn": "Выберите личность Quivr",
|
||||
"settings": "Настройки",
|
||||
"signedInAs": "Вы вошли как",
|
||||
"subtitle": "Управление вашим мозгом",
|
||||
"supabaseKeyLabel": "Ключ Supabase",
|
||||
"supabaseKeyPlaceHolder": "Ключ Supabase",
|
||||
"supabaseURLLabel": "URL Supabase",
|
||||
"supabaseURLPlaceHolder": "URL Supabase",
|
||||
"temperature": "Температура",
|
||||
"title": "Настройки",
|
||||
"updatingBrainSettings": "Обновление настроек мозга..."
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{
|
||||
"speak_to": "Говорите с нашим",
|
||||
"sales_team": "коммерческим отделом",
|
||||
"pricing": "Цены",
|
||||
"form": {
|
||||
"email": "Рабочий электронный адрес",
|
||||
"question": "Вопрос",
|
||||
"submit": "Контакт",
|
||||
"placeholder_question": "Как мы можем вам помочь?",
|
||||
"thank_you": "Спасибо!",
|
||||
"thank_you_text": "Мы свяжемся с вами как можно скорее.",
|
||||
"sending_mail_error": "При отправке вашего сообщения произошла ошибка. Пожалуйста, попробуйте еще раз позже."
|
||||
}
|
||||
}
|
||||
"speak_to": "Говорите с нашим",
|
||||
"sales_team": "коммерческим отделом",
|
||||
"pricing": "Цены",
|
||||
"form": {
|
||||
"email": "Рабочий электронный адрес",
|
||||
"question": "Вопрос",
|
||||
"submit": "Контакт",
|
||||
"placeholder_question": "Как мы можем вам помочь?",
|
||||
"thank_you": "Спасибо!",
|
||||
"thank_you_text": "Мы свяжемся с вами как можно скорее.",
|
||||
"sending_mail_error": "При отправке вашего сообщения произошла ошибка. Пожалуйста, попробуйте еще раз позже."
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"deleteButton": "Удалить мозг",
|
||||
"deleteConfirmQuestion": "Вы уверены, что хотите удалить этот мозг? Это действие нельзя отменить.",
|
||||
"deleteConfirmYes": "Да, удалить этот мозг",
|
||||
"returnButton": "Вернуться",
|
||||
"unsubscribeButton": "Отписаться от мозга",
|
||||
"unsubscribeConfirmQuestion": "Вы уверены, что хотите отписаться от этого мозга?",
|
||||
"unsubscribeConfirmYes": "Да, отписаться от этого сознания",
|
||||
"successfully_deleted": "Мозг успешно удален.",
|
||||
"successfully_unsubscribed": "Вы успешно отписались от этого мозга."
|
||||
"deleteButton": "Удалить мозг",
|
||||
"deleteConfirmQuestion": "Вы уверены, что хотите удалить этот мозг? Это действие нельзя отменить.",
|
||||
"deleteConfirmYes": "Да, удалить этот мозг",
|
||||
"returnButton": "Вернуться",
|
||||
"unsubscribeButton": "Отписаться от мозга",
|
||||
"unsubscribeConfirmQuestion": "Вы уверены, что хотите отписаться от этого мозга?",
|
||||
"unsubscribeConfirmYes": "Да, отписаться от этого сознания",
|
||||
"successfully_deleted": "Мозг успешно удален.",
|
||||
"successfully_unsubscribed": "Вы успешно отписались от этого мозга."
|
||||
}
|
||||
|
@ -1 +1,15 @@
|
||||
{"title":"Исследовать загруженные данные","subtitle":"Просмотрите, загрузите или удалите знания, используемые вашим мозгом","empty":"О нет, ваш мозг пуст.","noBrain":"Мозг не найден","sessionNotFound":"Сессия пользователя не найдена","deleted":"{{fileName}} удален из мозга {{brain}}","errorDeleting":"Ошибка при удалении {{fileName}}","view":"Просмотреть","chunkNumber":"Количество частей: {{quantity}}","notAvailable":"Не доступно","deleteConfirmTitle":"Подтвердите","deleteConfirmText":"Вы действительно хотите удалить?","feed_brain_instructions":"Чтобы добавить знания в мозг, перейдите на страницу чата, затем нажмите на кнопку плюс слева от поля ввода чата."}
|
||||
{
|
||||
"title": "Исследовать загруженные данные",
|
||||
"subtitle": "Просмотрите, загрузите или удалите знания, используемые вашим мозгом",
|
||||
"empty": "О нет, ваш мозг пуст.",
|
||||
"noBrain": "Мозг не найден",
|
||||
"sessionNotFound": "Сессия пользователя не найдена",
|
||||
"deleted": "{{fileName}} удален из мозга {{brain}}",
|
||||
"errorDeleting": "Ошибка при удалении {{fileName}}",
|
||||
"view": "Просмотреть",
|
||||
"chunkNumber": "Количество частей: {{quantity}}",
|
||||
"notAvailable": "Не доступно",
|
||||
"deleteConfirmTitle": "Подтвердите",
|
||||
"deleteConfirmText": "Вы действительно хотите удалить?",
|
||||
"feed_brain_instructions": "Чтобы добавить знания в мозг, перейдите на страницу чата, затем нажмите на кнопку плюс слева от поля ввода чата."
|
||||
}
|
||||
|
@ -1 +1,14 @@
|
||||
{"method_label":"Method","url_placeholder":"URL","searchParams":"Search Params","headers":"Headers","params":"Params","key":"Key","type":"Type (string or number)","description":"Description","secrets":"секреты","paramsTabDescription":"Эти значения отправляются в теле запроса.","searchParamsTabDescription":"Эти значения отправляются в виде строки запроса.","secretsTabDescription":"Эти значения отправляются в виде ключей заголовка."}
|
||||
{
|
||||
"method_label": "Method",
|
||||
"url_placeholder": "URL",
|
||||
"searchParams": "Search Params",
|
||||
"headers": "Headers",
|
||||
"params": "Params",
|
||||
"key": "Key",
|
||||
"type": "Type (string or number)",
|
||||
"description": "Description",
|
||||
"secrets": "секреты",
|
||||
"paramsTabDescription": "Эти значения отправляются в теле запроса.",
|
||||
"searchParamsTabDescription": "Эти значения отправляются в виде строки запроса.",
|
||||
"secretsTabDescription": "Эти значения отправляются в виде ключей заголовка."
|
||||
}
|
||||
|
@ -1,36 +1,36 @@
|
||||
{
|
||||
"sign_in": "Войти",
|
||||
"sign_up": "Зарегистрироваться",
|
||||
"docs": "Документация",
|
||||
"pricing": "Цены",
|
||||
"star_us": "Поставьте звезду на Github",
|
||||
"blog": "Блог",
|
||||
"sponsored_by": "Спонсируется",
|
||||
"useCases": {
|
||||
"title": "Попробуйте сейчас.",
|
||||
"subtitle": "Посмотрите наш пример использования Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Получите второй мозг с",
|
||||
"subtitle": "Загрузите все ваши файлы и начните с ними общаться.",
|
||||
"try_demo": "Попробовать бесплатную демонстрацию",
|
||||
"contact_sales": "Свяжитесь с отделом продаж"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Видео-демонстрация",
|
||||
"start_now": "Начать сейчас"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Начните сегодня"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Начните сегодня",
|
||||
"description_1": "Ваш личный помощник, действующий как ваш Второй Мозг.",
|
||||
"description_2": "Просто загрузите свои файлы и задайте ему вопросы.",
|
||||
"start_using": "Начать использовать Quivr",
|
||||
"contact_sales": "Свяжитесь с отделом продаж"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "Что люди говорят о"
|
||||
}
|
||||
}
|
||||
"sign_in": "Войти",
|
||||
"sign_up": "Зарегистрироваться",
|
||||
"docs": "Документация",
|
||||
"pricing": "Цены",
|
||||
"star_us": "Поставьте звезду на Github",
|
||||
"blog": "Блог",
|
||||
"sponsored_by": "Спонсируется",
|
||||
"useCases": {
|
||||
"title": "Попробуйте сейчас.",
|
||||
"subtitle": "Посмотрите наш пример использования Quivr."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Получите второй мозг с",
|
||||
"subtitle": "Загрузите все ваши файлы и начните с ними общаться.",
|
||||
"try_demo": "Попробовать бесплатную демонстрацию",
|
||||
"contact_sales": "Свяжитесь с отделом продаж"
|
||||
},
|
||||
"demo": {
|
||||
"title": "Видео-демонстрация",
|
||||
"start_now": "Начать сейчас"
|
||||
},
|
||||
"security": {
|
||||
"cta": "Начните сегодня"
|
||||
},
|
||||
"footer": {
|
||||
"title": "Начните сегодня",
|
||||
"description_1": "Ваш личный помощник, действующий как ваш Второй Мозг.",
|
||||
"description_2": "Просто загрузите свои файлы и задайте ему вопросы.",
|
||||
"start_using": "Начать использовать Quivr",
|
||||
"contact_sales": "Свяжитесь с отделом продаж"
|
||||
},
|
||||
"testimonials": {
|
||||
"title": "Что люди говорят о"
|
||||
}
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user