2
0

diverse Übersetzungen

This commit is contained in:
2024-09-12 13:58:06 +02:00
parent 0a4ff7d22b
commit 589b776acb
27 changed files with 79 additions and 75 deletions

View File

@ -35,7 +35,7 @@ export function customAdapter(p: PrismaClient): Adapter {
throw Error('New users are forbidden') throw Error('New users are forbidden')
const newWorkspaceData = { const newWorkspaceData = {
name: data.name ? `${data.name}'s workspace` : `My workspace`, name: data.name ? `${data.name}'s workspace` : `Dein Worksapce`,
plan: parseWorkspaceDefaultPlan(data.email), plan: parseWorkspaceDefaultPlan(data.email),
} }
const createdUser = await p.user.create({ const createdUser = await p.user.create({

View File

@ -101,7 +101,7 @@ export const CredentialsSettingsForm = () => {
<Heading fontSize="2xl">Credentials</Heading> <Heading fontSize="2xl">Credentials</Heading>
<Menu isLazy> <Menu isLazy>
<MenuButton as={Button} size="sm" leftIcon={<PlusIcon />}> <MenuButton as={Button} size="sm" leftIcon={<PlusIcon />}>
Create new Hinzufügen
</MenuButton> </MenuButton>
<MenuList> <MenuList>
{credentialsTypes.map((type) => ( {credentialsTypes.map((type) => (
@ -230,7 +230,7 @@ const CredentialsLabel = ({
case 'smtp': case 'smtp':
return ( return (
<Text fontSize="sm" {...props}> <Text fontSize="sm" {...props}>
SMTP E-Mail (SMTP)
</Text> </Text>
) )
case 'stripe': case 'stripe':
@ -289,18 +289,18 @@ const CredentialsItem = ({
<PopoverBody> <PopoverBody>
<Stack spacing="2"> <Stack spacing="2">
<Text fontSize="sm" fontWeight="semibold"> <Text fontSize="sm" fontWeight="semibold">
Are you sure? Bist du sicher?
</Text> </Text>
<Text fontSize="sm"> <Text fontSize="sm">
Make sure this credentials is not used in any of your Prüfe bitte, ob diese Anmeldedaten in keinem laufenden BLS bot verwendet werden.
published bot before proceeding. Wir können deine Anmeldedaten nicht wiederherstellen.
</Text> </Text>
</Stack> </Stack>
</PopoverBody> </PopoverBody>
<PopoverFooter as={Flex} justifyContent="flex-end"> <PopoverFooter as={Flex} justifyContent="flex-end">
<HStack> <HStack>
<Button ref={initialFocusRef} onClick={onClose} size="sm"> <Button ref={initialFocusRef} onClick={onClose} size="sm">
Cancel Abbrechen
</Button> </Button>
<Button <Button
colorScheme="red" colorScheme="red"
@ -308,7 +308,7 @@ const CredentialsItem = ({
isLoading={isDeleting} isLoading={isDeleting}
size="sm" size="sm"
> >
Delete Löschen
</Button> </Button>
</HStack> </HStack>
</PopoverFooter> </PopoverFooter>

View File

@ -129,7 +129,7 @@ const FolderButton = ({
color={useColorModeValue('blue.500', 'blue.400')} color={useColorModeValue('blue.500', 'blue.400')}
/> />
<Editable <Editable
defaultValue={folder.name === '' ? 'New folder' : folder.name} defaultValue={folder.name === '' ? 'Neuer Ordner' : folder.name}
fontSize="18" fontSize="18"
onClick={(e) => e.stopPropagation()} onClick={(e) => e.stopPropagation()}
onSubmit={onRenameSubmit} onSubmit={onRenameSubmit}

View File

@ -97,7 +97,7 @@ export const SharePage = () => {
<Stack maxW="1000px" w="full" pt="10" spacing={10}> <Stack maxW="1000px" w="full" pt="10" spacing={10}>
<Stack spacing={4} align="flex-start"> <Stack spacing={4} align="flex-start">
<Heading fontSize="2xl" as="h1"> <Heading fontSize="2xl" as="h1">
Your typebot link Link zu deinem BLS bot
</Heading> </Heading>
{typebot && ( {typebot && (
<EditableUrl <EditableUrl
@ -152,7 +152,7 @@ export const SharePage = () => {
<Stack spacing={4}> <Stack spacing={4}>
<Heading fontSize="2xl" as="h1"> <Heading fontSize="2xl" as="h1">
Embed your typebot Deinen BLS bot einbetten
</Heading> </Heading>
<Wrap spacing={7}> <Wrap spacing={7}>
{integrationsList.map((IntegrationButton, idx) => ( {integrationsList.map((IntegrationButton, idx) => (

View File

@ -63,7 +63,7 @@ export const EmbedModal = ({
<ModalCloseButton /> <ModalCloseButton />
<ModalBody as={Stack} spacing={4} pt={0}> <ModalBody as={Stack} spacing={4} pt={0}>
{!isPublished && ( {!isPublished && (
<AlertInfo>You need to publish your bot first.</AlertInfo> <AlertInfo>Du musst den bot zuerst veröffentlichen.</AlertInfo>
)} )}
{!selectedEmbedType ? ( {!selectedEmbedType ? (
<EmbedTypeMenu onSelectEmbedType={onSelectEmbedType} /> <EmbedTypeMenu onSelectEmbedType={onSelectEmbedType} />

View File

@ -24,10 +24,10 @@ export const PopupMenuButton = (props: Props) => {
<PopupIllustration /> <PopupIllustration />
<Stack> <Stack>
<Text fontSize="lg" fontWeight="semibold"> <Text fontSize="lg" fontWeight="semibold">
Popup PopUp
</Text> </Text>
<Text textColor="gray.500"> <Text textColor="gray.500">
Embed in a popup on top of your website Als PopUp auf deiner Seite einbetten
</Text> </Text>
</Stack> </Stack>
</MotionStack> </MotionStack>

View File

@ -26,7 +26,7 @@ export const StandardMenuButton = (props: Props) => {
<Text fontSize="lg" fontWeight="semibold"> <Text fontSize="lg" fontWeight="semibold">
Standard Standard
</Text> </Text>
<Text textColor="gray.500">Embed in a container on your site</Text> <Text textColor="gray.500">Auf deiner Seite in einem Block einbetten</Text>
</Stack> </Stack>
</MotionStack> </MotionStack>
) )

View File

@ -42,7 +42,7 @@ export const ApiModal = ({
<ModalCloseButton /> <ModalCloseButton />
<ModalBody as={Stack} spacing="6"> <ModalBody as={Stack} spacing="6">
{!isPublished && ( {!isPublished && (
<AlertInfo>You need to publish your bot first.</AlertInfo> <AlertInfo>Du musst den bot zuerst veröffentlichen.</AlertInfo>
)} )}
<OrderedList spacing={4} pl="4"> <OrderedList spacing={4} pl="4">
<ListItem> <ListItem>

View File

@ -37,7 +37,7 @@ export const FlutterFlowModal = ({
<ModalCloseButton /> <ModalCloseButton />
<ModalBody> <ModalBody>
{!isPublished && ( {!isPublished && (
<AlertInfo mb="4">You need to publish your bot first.</AlertInfo> <AlertInfo mb="4">Du musst den bot zuerst veröffentlichen.</AlertInfo>
)} )}
<OrderedList spacing={4}> <OrderedList spacing={4}>
<ListItem> <ListItem>

View File

@ -32,7 +32,7 @@ export const IframeModal = ({ isPublished, isOpen, onClose }: ModalProps) => {
<ModalCloseButton /> <ModalCloseButton />
<ModalBody as={Stack} spacing={4} pt="0"> <ModalBody as={Stack} spacing={4} pt="0">
{!isPublished && ( {!isPublished && (
<AlertInfo>You need to publish your bot first.</AlertInfo> <AlertInfo>Du musst den bot zuerst veröffentlichen.</AlertInfo>
)} )}
<StandardSettings <StandardSettings
onUpdateWindowSettings={(settings) => onUpdateWindowSettings={(settings) =>

View File

@ -37,7 +37,7 @@ export const NotionModal = ({
<ModalCloseButton /> <ModalCloseButton />
<ModalBody> <ModalBody>
{!isPublished && ( {!isPublished && (
<AlertInfo mb="4">You need to publish your bot first.</AlertInfo> <AlertInfo mb="4">Du musst den bot zuerst veröffentlichen.</AlertInfo>
)} )}
<OrderedList spacing={4}> <OrderedList spacing={4}>
<ListItem> <ListItem>

View File

@ -182,17 +182,16 @@ export const WhatsAppModal = ({ isOpen, onClose }: ModalProps): JSX.Element => {
<ModalBody as={Stack} spacing="6"> <ModalBody as={Stack} spacing="6">
{!hasProPerks(workspace) && ( {!hasProPerks(workspace) && (
<UnlockPlanAlertInfo excludedPlans={['STARTER']}> <UnlockPlanAlertInfo excludedPlans={['STARTER']}>
Upgrade your workspace to <PlanTag plan="PRO" /> to be able to Upgrade deinen Plan zu <PlanTag plan="PRO" /> um die WhatsApp integration nutzen zu können.
enable WhatsApp integration.
</UnlockPlanAlertInfo> </UnlockPlanAlertInfo>
)} )}
{!isPublished && phoneNumberData?.id && ( {!isPublished && phoneNumberData?.id && (
<AlertInfo>You have modifications that can be published.</AlertInfo> <AlertInfo>Es gibt Änderungen, zum Veröffentlichen.</AlertInfo>
)} )}
<OrderedList spacing={4} pl="4"> <OrderedList spacing={4} pl="4">
<ListItem> <ListItem>
<HStack> <HStack>
<Text>Select a phone number:</Text> <Text>Wähle eine Telefonnummer:</Text>
{workspace && ( {workspace && (
<> <>
<WhatsAppCredentialsModal <WhatsAppCredentialsModal

View File

@ -25,7 +25,7 @@ export const ImportTypebotFromFileButton = ({
...typebot, ...typebot,
events: typebot.events ?? null, events: typebot.events ?? null,
icon: typebot.icon ?? null, icon: typebot.icon ?? null,
name: typebot.name ?? 'My typebot', name: typebot.name ?? 'Dein BLS bot',
} as Typebot) } as Typebot)
} catch (err) { } catch (err) {
console.error(err) console.error(err)

View File

@ -100,7 +100,7 @@ export const createTypebot = authenticatedProcedure
data: { data: {
version: '6', version: '6',
workspaceId, workspaceId,
name: typebot.name ?? 'My typebot', name: typebot.name ?? 'Dein BLS bot',
icon: typebot.icon, icon: typebot.icon,
selectedThemeTemplateId: typebot.selectedThemeTemplateId, selectedThemeTemplateId: typebot.selectedThemeTemplateId,
groups, groups,

View File

@ -76,7 +76,7 @@ export const WorkspaceSettingsForm = ({ onClose }: { onClose: () => void }) => {
</InputRightElement> </InputRightElement>
</InputGroup> </InputGroup>
<FormHelperText> <FormHelperText>
Used when interacting with the Typebot API. Wird benötogt um mit der BLS bot API zu interagieren.
</FormHelperText> </FormHelperText>
</FormControl> </FormControl>
</> </>

View File

@ -5,8 +5,8 @@ export const parseNewName = (
existingWorkspaces: Pick<Workspace, 'name'>[] existingWorkspaces: Pick<Workspace, 'name'>[]
) => { ) => {
const workspaceName = userFullName const workspaceName = userFullName
? `${userFullName}'s workspace` ? `${userFullName}'s Workspace`
: 'My workspace' : 'Dein Workspace'
let newName = workspaceName let newName = workspaceName
let i = 1 let i = 1
while (existingWorkspaces.find((w) => w.name === newName)) { while (existingWorkspaces.find((w) => w.name === newName)) {

View File

@ -10,13 +10,13 @@
"account.apiTokens.createModal.securityWarning": "Aus Sicherheitsgründen können wir ihn nicht erneut anzeigen.", "account.apiTokens.createModal.securityWarning": "Aus Sicherheitsgründen können wir ihn nicht erneut anzeigen.",
"account.apiTokens.deleteButton.label": "Löschen", "account.apiTokens.deleteButton.label": "Löschen",
"account.apiTokens.deleteConfirmationMessage": "Der Token <strong>tokenName</strong> wird dauerhaft widerrufen, bist du sicher, dass du fortfahren möchtest?", "account.apiTokens.deleteConfirmationMessage": "Der Token <strong>tokenName</strong> wird dauerhaft widerrufen, bist du sicher, dass du fortfahren möchtest?",
"account.apiTokens.description": "Diese Token ermöglichen es anderen Apps, dein gesamtes Konto und Typebots zu steuern. Sei vorsichtig!", "account.apiTokens.description": "Diese Token ermöglichen es anderen Apps, dein gesamtes Konto und BLS bots zu steuern. Sei vorsichtig!",
"account.apiTokens.heading": "API-Token", "account.apiTokens.heading": "API-Token",
"account.apiTokens.table.createdHeader": "Erstellt", "account.apiTokens.table.createdHeader": "Erstellt",
"account.apiTokens.table.nameHeader": "Name", "account.apiTokens.table.nameHeader": "Name",
"account.myAccount.changePhotoButton.label": "Foto ändern", "account.myAccount.changePhotoButton.label": "Foto ändern",
"account.myAccount.changePhotoButton.specification": ".jpg oder .png, max 1MB", "account.myAccount.changePhotoButton.specification": ".jpg oder .png, max 1MB",
"account.myAccount.emailInput.disabledTooltip": "Das Aktualisieren der E-Mail-Adresse ist nicht verfügbar. Kontaktiere den Support, wenn du sie ändern möchtest.", "account.myAccount.emailInput.disabledTooltip": "Aus sicherheitsgründen kannst du deine E-Mail nicht selber ändern. Kontaktiere BLS media, wir helfen dir!",
"account.myAccount.emailInput.label": "E-Mail-Adresse:", "account.myAccount.emailInput.label": "E-Mail-Adresse:",
"account.myAccount.nameInput.label": "Name:", "account.myAccount.nameInput.label": "Name:",
"account.preferences.appearance.darkLabel": "Dunkel", "account.preferences.appearance.darkLabel": "Dunkel",
@ -26,10 +26,10 @@
"account.preferences.graphNavigation.heading": "Editor-Navigation", "account.preferences.graphNavigation.heading": "Editor-Navigation",
"account.preferences.graphNavigation.mouse.description": "Bewege dich, indem du das Board ziehst und zoome rein/raus mit dem Mausrad", "account.preferences.graphNavigation.mouse.description": "Bewege dich, indem du das Board ziehst und zoome rein/raus mit dem Mausrad",
"account.preferences.graphNavigation.mouse.label": "Maus", "account.preferences.graphNavigation.mouse.label": "Maus",
"account.preferences.graphNavigation.trackpad.description": "Bewege das Board mit 2 Fingern und zoome rein/raus, indem du kneifst", "account.preferences.graphNavigation.trackpad.description": "Bewege das Board mit 2 Fingern und zoome rein/raus",
"account.preferences.graphNavigation.trackpad.label": "Trackpad", "account.preferences.graphNavigation.trackpad.label": "Trackpad",
"account.preferences.language.heading": "Sprache", "account.preferences.language.heading": "Sprache",
"account.preferences.language.tooltip": "Die Übersetzungen sind noch nicht vollständig. Es ist eine laufende Arbeit.", "account.preferences.language.tooltip": "Wir arbeiten an verschiedenen Übersetzungen. Wenn dir eine Sprache fehlt, schreib und bitte.",
"analytics.completionRateLabel": "Abschlussrate", "analytics.completionRateLabel": "Abschlussrate",
"analytics.notAvailableLabel": "Nicht verfügbar", "analytics.notAvailableLabel": "Nicht verfügbar",
"analytics.startsLabel": "Starts", "analytics.startsLabel": "Starts",
@ -44,7 +44,7 @@
"auth.noProvider.link": "mindestens einen Authentifizierungsanbieter konfigurieren (E-Mail, Google, GitHub, Facebook oder Azure AD).", "auth.noProvider.link": "mindestens einen Authentifizierungsanbieter konfigurieren (E-Mail, Google, GitHub, Facebook oder Azure AD).",
"auth.noProvider.preLink": "Du musst", "auth.noProvider.preLink": "Du musst",
"auth.orEmailLabel": "Oder mit deiner E-Mail", "auth.orEmailLabel": "Oder mit deiner E-Mail",
"auth.register.aggreeToTerms": "Durch die Registrierung stimmst du unseren <terms>nutzungsbedingungen</terms> und <privacy>datenschutzrichtlinie</privacy> zu.", "auth.register.aggreeToTerms": "Durch die Registrierung stimmst du unseren <terms>Nutzungsbedingungen</terms> und <privacy>Datenschutzrichtlinie</privacy> zu.",
"auth.register.alreadyHaveAccountLabel.link": "Anmelden", "auth.register.alreadyHaveAccountLabel.link": "Anmelden",
"auth.register.alreadyHaveAccountLabel.preLink": "Bereits ein Konto vorhanden?", "auth.register.alreadyHaveAccountLabel.preLink": "Bereits ein Konto vorhanden?",
"auth.register.heading": "Konto erstellen", "auth.register.heading": "Konto erstellen",
@ -64,11 +64,11 @@
"back": "Zurück", "back": "Zurück",
"billing.billingPortalButton.label": "Abrechnungsportal", "billing.billingPortalButton.label": "Abrechnungsportal",
"billing.contribution.link": "Erfahre mehr.", "billing.contribution.link": "Erfahre mehr.",
"billing.contribution.preLink": "Typebot trägt 1% deines Abonnements dazu bei, CO₂ aus der Atmosphäre zu entfernen.", "billing.contribution.preLink": "BLS bot trägt 1% deines Abonnements dazu bei, CO₂ aus der Atmosphäre zu entfernen.",
"billing.currentSubscription.cancelDate": "Wird storniert am", "billing.currentSubscription.cancelDate": "Wird storniert am",
"billing.currentSubscription.heading": "Abonnement", "billing.currentSubscription.heading": "Abonnement",
"billing.currentSubscription.pastDueAlert": "Die letzte Zahlung ist fehlgeschlagen. Gehen Sie zum Abrechnungsportal, um fortzufahren und eine Kündigung Ihres Abonnements zu vermeiden.", "billing.currentSubscription.pastDueAlert": "Die letzte Zahlung ist fehlgeschlagen. Gehen Sie zum Abrechnungsportal, um fortzufahren und eine Kündigung Ihres Abonnements zu vermeiden.",
"billing.currentSubscription.subheading": "Aktuelles Workspace-Abonnement:", "billing.currentSubscription.subheading": "Aktuelles BLS bot-Abo:",
"billing.customLimit.link": "Lass uns darüber sprechen!", "billing.customLimit.link": "Lass uns darüber sprechen!",
"billing.customLimit.preLink": "Brauchst du individuelle Limits? Spezielle Funktionen?", "billing.customLimit.preLink": "Brauchst du individuelle Limits? Spezielle Funktionen?",
"billing.invoices.empty": "Keine Rechnungen für diesen Workspace gefunden.", "billing.invoices.empty": "Keine Rechnungen für diesen Workspace gefunden.",
@ -105,8 +105,8 @@
"billing.pricingCard.upgradeButton.current": "Dein aktueller Tarif", "billing.pricingCard.upgradeButton.current": "Dein aktueller Tarif",
"billing.updateSuccessToast.description": "Workspace {plan} Plan erfolgreich aktualisiert", "billing.updateSuccessToast.description": "Workspace {plan} Plan erfolgreich aktualisiert",
"billing.upgradeAlert.buttonDefaultLabel": "Mehr Informationen", "billing.upgradeAlert.buttonDefaultLabel": "Mehr Informationen",
"billing.upgradeLimitLabel": "Um {type} hinzuzufügen, musst du deinen Tarif aktualisieren", "billing.upgradeLimitLabel": "Für die Funktion '{type}' hinzuzufügen, musst du deinen Tarif aktualisieren",
"billing.usage.chats.alert.soonReach": "Deine Typebots sind beliebt! Du wirst bald das Chat-Limit deines Tarifs erreichen.", "billing.usage.chats.alert.soonReach": "Deine BLS bots sind beliebt! Du wirst bald das Chat-Limit deines Tarifs erreichen.",
"billing.usage.chats.alert.updatePlan": "Vergewissere dich, dass du deinen Tarif aktualisierst, um dieses Limit zu erhöhen und weiterhin mit deinen Benutzern zu chatten.", "billing.usage.chats.alert.updatePlan": "Vergewissere dich, dass du deinen Tarif aktualisierst, um dieses Limit zu erhöhen und weiterhin mit deinen Benutzern zu chatten.",
"billing.usage.chats.heading": "Chats", "billing.usage.chats.heading": "Chats",
"billing.usage.heading": "Nutzung", "billing.usage.heading": "Nutzung",
@ -120,12 +120,12 @@
"confirmModal.defaultTitle": "Bist du sicher?", "confirmModal.defaultTitle": "Bist du sicher?",
"dashboard.header.settingsButton.label": "Einstellungen & Mitglieder", "dashboard.header.settingsButton.label": "Einstellungen & Mitglieder",
"dashboard.redirectionMessage": "Du wirst weitergeleitet...", "dashboard.redirectionMessage": "Du wirst weitergeleitet...",
"dashboard.title": "Meine Typebots", "dashboard.title": "Meine BLS bots",
"delete": "Löschen", "delete": "Löschen",
"downgrade": "Downgrade", "downgrade": "Downgrade",
"editor.blockCard.logicBlock.tooltip.code.label": "JavaScript-Code ausführen", "editor.blockCard.logicBlock.tooltip.code.label": "JavaScript-Code ausführen",
"editor.blockCard.logicBlock.tooltip.jump.label": "Ablauf zu einer anderen Gruppe beschleunigen", "editor.blockCard.logicBlock.tooltip.jump.label": "Ablauf zu einer anderen Gruppe beschleunigen",
"editor.blockCard.logicBlock.tooltip.typebotLink.label": "Verlinkung zu einem anderen Typebot", "editor.blockCard.logicBlock.tooltip.typebotLink.label": "Verlinkung zu einem anderen BLS bot",
"editor.blocks.bubbles.audio.settings.autoplay.label": "Autoplay aktivieren", "editor.blocks.bubbles.audio.settings.autoplay.label": "Autoplay aktivieren",
"editor.blocks.bubbles.audio.settings.chooseFile.label": "Datei auswählen", "editor.blocks.bubbles.audio.settings.chooseFile.label": "Datei auswählen",
"editor.blocks.bubbles.audio.settings.embedLink.label": "Link einbetten", "editor.blocks.bubbles.audio.settings.embedLink.label": "Link einbetten",
@ -182,7 +182,7 @@
"editor.sidebarBlocks.sidebar.unlock.label": "Seitenleiste entsperren", "editor.sidebarBlocks.sidebar.unlock.label": "Seitenleiste entsperren",
"editor.sidebarBlock.start.label": "Start", "editor.sidebarBlock.start.label": "Start",
"editor.sidebarBlock.text.label": "Text", "editor.sidebarBlock.text.label": "Text",
"editor.sidebarBlock.typebot.label": "Typebot", "editor.sidebarBlock.typebot.label": "BLS bot",
"editor.sidebarBlock.video.label": "Video", "editor.sidebarBlock.video.label": "Video",
"editor.sidebarBlock.wait.label": "Warten", "editor.sidebarBlock.wait.label": "Warten",
"editor.sidebarBlock.website.label": "Website", "editor.sidebarBlock.website.label": "Website",
@ -190,30 +190,33 @@
"editor.sidebarBlock.zemanticAi.label": "Zemantic AI", "editor.sidebarBlock.zemanticAi.label": "Zemantic AI",
"errorMessage": "Ein Fehler ist aufgetreten", "errorMessage": "Ein Fehler ist aufgetreten",
"folders.createFolderButton.label": "Ordner erstellen", "folders.createFolderButton.label": "Ordner erstellen",
"folders.createTypebotButton.label": "Typebot erstellen", "folders.createTypebotButton.label": "BLS bot erstellen",
"folders.folderButton.deleteConfirmationMessage": "Möchtest du den Ordner <strong>folderName</strong> wirklich löschen? (Alles im Inneren wird in dein Dashboard verschoben)", "folders.folderButton.deleteConfirmationMessage": "Möchtest du den Ordner <strong>folderName</strong> wirklich löschen? (Alles im Inneren wird in dein Dashboard verschoben)",
"folders.typebotButton.delete": "Löschen", "folders.typebotButton.delete": "Löschen",
"folders.typebotButton.deleteConfirmationMessage": "Möchtest du deinen Typebot <strong>typebotName</strong> wirklich löschen?", "folders.typebotButton.deleteConfirmationMessage": "Möchtest du deinen BLS bot <strong>typebotName</strong> wirklich löschen?",
"folders.typebotButton.deleteConfirmationMessageWarning": "Alle zugehörigen Daten werden gelöscht und können nicht wiederhergestellt werden.", "folders.typebotButton.deleteConfirmationMessageWarning": "Alle zugehörigen Daten werden gelöscht und können nicht wiederhergestellt werden.",
"folders.typebotButton.duplicate": "Duplizieren", "folders.typebotButton.duplicate": "Duplizieren",
"folders.typebotButton.live": "Live", "folders.typebotButton.live": "Online",
"folders.typebotButton.showMoreOptions": "Mehr Optionen anzeigen", "folders.typebotButton.showMoreOptions": "Mehr Optionen anzeigen",
"folders.typebotButton.unpublish": "Veröffentlichung aufheben", "folders.typebotButton.unpublish": "Veröffentlichung aufheben",
"pending": "Ausstehend", "pending": "Ausstehend",
"publishButton.label": "Veröffentlichen",
"publishButton.published.label": "Veröffentlicht",
"remove": "Entfernen", "remove": "Entfernen",
"rename": "Umbenennen", "rename": "Umbenennen",
"share.button.label": "Teilen", "share.button.label": "Teilen",
"skip": "Überspringen", "skip": "Überspringen",
"templates.buttons.fromScratchButton.label": "Von Grund auf starten", "templates.buttons.fromScratchButton.label": "Von Grund auf starten",
"templates.buttons.fromTemplateButton.label": "Von einer Vorlage starten", "templates.buttons.fromTemplateButton.label": "Von einer Vorlage starten",
"templates.buttons.heading": "Erstelle einen neuen Typebot", "templates.buttons.heading": "Erstelle einen neuen BLS bot",
"templates.buttons.importFileButton.label": "Datei importieren", "templates.buttons.importFileButton.label": "Datei importieren",
"templates.importFromFileButon.toastError.description": "Konnte die Datei nicht verarbeiten. Bist du sicher, dass es sich um einen Typebot handelt?", "templates.importFromFileButon.toastError.description": "Konnte die Datei nicht verarbeiten. Bist du sicher, dass es sich um einen BLS bot handelt?",
"templates.modal.menuHeading.marketing": "Marketing", "templates.modal.menuHeading.marketing": "Marketing",
"templates.modal.menuHeading.new.tag": "Neu", "templates.modal.menuHeading.new.tag": "Neu",
"templates.modal.menuHeading.other": "Andere", "templates.modal.menuHeading.other": "Andere",
"templates.modal.menuHeading.product": "Produkt", "templates.modal.menuHeading.product": "Produkt",
"templates.modal.useTemplateButton.label": "Diese Vorlage verwenden", "templates.modal.useTemplateButton.label": "Diese Vorlage verwenden",
"typebots.defaultName": "Dein BLS bot",
"upgrade": "Upgrade", "upgrade": "Upgrade",
"video.urlInput.helperText": "Funktioniert mit YouTube, Vimeo, Gumlet, TikTok und anderen", "video.urlInput.helperText": "Funktioniert mit YouTube, Vimeo, Gumlet, TikTok und anderen",
"video.urlInput.placeholder": "Füge den Videolink ein...", "video.urlInput.placeholder": "Füge den Videolink ein...",
@ -223,14 +226,14 @@
"workspace.membersList.inviteInput.placeholder": "name@unternehmen.de", "workspace.membersList.inviteInput.placeholder": "name@unternehmen.de",
"workspace.membersList.title": "Mitglieder", "workspace.membersList.title": "Mitglieder",
"workspace.membersList.unlockBanner.label": "Aktualisiere deinen Plan, um mit mehr Teammitgliedern zu arbeiten und neue Limits freizuschalten", "workspace.membersList.unlockBanner.label": "Aktualisiere deinen Plan, um mit mehr Teammitgliedern zu arbeiten und neue Limits freizuschalten",
"workspace.settings.deleteButton.confirmMessage": "Sind Sie sicher, dass Sie den Workspace {workspaceName} löschen möchten? Alle seine Ordner, Typebots und Ergebnisse werden dauerhaft gelöscht.", "workspace.settings.deleteButton.confirmMessage": "Sind Sie sicher, dass Sie den Workspace {workspaceName} löschen möchten? Alle seine Ordner, BLS bots und Ergebnisse werden dauerhaft gelöscht.",
"workspace.settings.deleteButton.label": "Workspace löschen", "workspace.settings.deleteButton.label": "Workspace löschen",
"workspace.settings.icon.title": "Symbol", "workspace.settings.icon.title": "Symbol",
"workspace.settings.modal.menu.billingAndUsage.label": "Abrechnung & Nutzung", "workspace.settings.modal.menu.billingAndUsage.label": "Abo & Nutzung",
"workspace.settings.modal.menu.members.label": "Mitglieder", "workspace.settings.modal.menu.members.label": "Mitglieder",
"workspace.settings.modal.menu.myAccount.label": "Mein Konto", "workspace.settings.modal.menu.myAccount.label": "Mein Konto",
"workspace.settings.modal.menu.preferences.label": "Einstellungen", "workspace.settings.modal.menu.preferences.label": "Einstellungen",
"workspace.settings.modal.menu.settings.label": "Einstellungen", "workspace.settings.modal.menu.settings.label": "Übersicht",
"workspace.settings.modal.menu.version.label": "Version: {version}", "workspace.settings.modal.menu.version.label": "Version: {version}",
"workspace.settings.modal.menu.workspace.label": "Workspace", "workspace.settings.modal.menu.workspace.label": "Workspace",
"workspace.settings.name.label": "Name:" "workspace.settings.name.label": "Name:"

View File

@ -65,7 +65,7 @@
"back": "Back", "back": "Back",
"billing.billingPortalButton.label": "Billing portal", "billing.billingPortalButton.label": "Billing portal",
"billing.contribution.link": "Learn more.", "billing.contribution.link": "Learn more.",
"billing.contribution.preLink": "Typebot is contributing 1% of your subscription to remove CO₂ from the atmosphere.", "billing.contribution.preLink": "BLS bot is contributing 1% of your subscription to remove CO₂ from the atmosphere.",
"billing.currentSubscription.cancelDate": "Will be cancelled on", "billing.currentSubscription.cancelDate": "Will be cancelled on",
"billing.currentSubscription.heading": "Subscription", "billing.currentSubscription.heading": "Subscription",
"billing.currentSubscription.pastDueAlert": "The latest payment failed. Head over to the billing portal to proceed and avoid having your subscription canceled.", "billing.currentSubscription.pastDueAlert": "The latest payment failed. Head over to the billing portal to proceed and avoid having your subscription canceled.",
@ -300,7 +300,7 @@
"editor.sidebarBlocks.sidebar.unlock.label": "Unlock sidebar", "editor.sidebarBlocks.sidebar.unlock.label": "Unlock sidebar",
"editor.sidebarBlock.start.label": "Start", "editor.sidebarBlock.start.label": "Start",
"editor.sidebarBlock.text.label": "Text", "editor.sidebarBlock.text.label": "Text",
"editor.sidebarBlock.typebot.label": "Typebot", "editor.sidebarBlock.typebot.label": "BLS bot",
"editor.sidebarBlock.video.label": "Video", "editor.sidebarBlock.video.label": "Video",
"editor.sidebarBlock.wait.label": "Wait", "editor.sidebarBlock.wait.label": "Wait",
"editor.sidebarBlock.website.label": "Website", "editor.sidebarBlock.website.label": "Website",
@ -342,7 +342,7 @@
"publishButton.tooltip.publishedVersion.from.label": "Published version from {timeSince}.", "publishButton.tooltip.publishedVersion.from.label": "Published version from {timeSince}.",
"publish.error.label": "Error while publishing typebot", "publish.error.label": "Error while publishing typebot",
"publish.versionWarning.checkBreakingChanges": "Make sure to check out all the <link>associated breaking changes</link>", "publish.versionWarning.checkBreakingChanges": "Make sure to check out all the <link>associated breaking changes</link>",
"publish.versionWarning.message.aboutToDeploy.label": "You are about to a deploy a version of your bot with an updated engine. (Typebot V6).", "publish.versionWarning.message.aboutToDeploy.label": "You are about to a deploy a version of your bot with an updated engine. (BLS bot V6).",
"publish.versionWarning.message.testInPreviewMode.label": "Then test, the bot thoroughly in preview mode before publishing.", "publish.versionWarning.message.testInPreviewMode.label": "Then test, the bot thoroughly in preview mode before publishing.",
"publish.versionWarning.title.label": "⚠️ New engine version", "publish.versionWarning.title.label": "⚠️ New engine version",
"remove": "Remove", "remove": "Remove",
@ -422,7 +422,7 @@
"theme.sideMenu.global.background.image.select": "Image", "theme.sideMenu.global.background.image.select": "Image",
"theme.sideMenu.global.background.none.select": "None", "theme.sideMenu.global.background.none.select": "None",
"theme.sideMenu.global.font": "Font", "theme.sideMenu.global.font": "Font",
"theme.sideMenu.global.typebotBrand": "Show Typebot brand", "theme.sideMenu.global.typebotBrand": "Show BLS bot brand",
"theme.sideMenu.template": "Templates", "theme.sideMenu.template": "Templates",
"theme.sideMenu.template.gallery": "Gallery", "theme.sideMenu.template.gallery": "Gallery",
"theme.sideMenu.template.gallery.avatarPreview.alt": "Avatar preview in theme template card", "theme.sideMenu.template.gallery.avatarPreview.alt": "Avatar preview in theme template card",
@ -440,7 +440,7 @@
"timeSince.months": "{count} months ago", "timeSince.months": "{count} months ago",
"timeSince.seconds": "{count}s ago", "timeSince.seconds": "{count}s ago",
"timeSince.years": "{count} years ago", "timeSince.years": "{count} years ago",
"typebots.defaultName": "My typebot", "typebots.defaultName": "My BLS bot",
"update": "Update", "update": "Update",
"upgrade": "Upgrade", "upgrade": "Upgrade",
"variables.button.searchInput.placeholder": "Search for a variable", "variables.button.searchInput.placeholder": "Search for a variable",

View File

@ -48,7 +48,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
typeof req.body === 'string' ? JSON.parse(req.body) : req.body typeof req.body === 'string' ? JSON.parse(req.body) : req.body
) as Pick<DashboardFolder, 'parentFolderId' | 'workspaceId'> ) as Pick<DashboardFolder, 'parentFolderId' | 'workspaceId'>
const folder = await prisma.dashboardFolder.create({ const folder = await prisma.dashboardFolder.create({
data: { ...data, name: 'New folder' }, data: { ...data, name: 'Neuer Ordner' },
}) })
return res.send(folder) return res.send(folder)
} }

View File

@ -24,9 +24,9 @@ export default function Page() {
justifyContent="center" justifyContent="center"
spacing={4} spacing={4}
> >
<AlertIcon width="40px" /> <AlertIcon width="60px" />
<Heading fontSize="2xl">Your workspace has unpaid invoice(s).</Heading> <Heading fontSize="2xl">Du hast unbezahlte Rechnungen.</Heading>
<Text>Head over to the billing portal to pay it.</Text> <Text>Bitte schauen in deinem BLS billing Dashboard, und/oder kontaktiere uns.</Text>
{workspace?.id && ( {workspace?.id && (
<BillingPortalButton workspaceId={workspace?.id} colorScheme="blue" /> <BillingPortalButton workspaceId={workspace?.id} colorScheme="blue" />
)} )}

View File

@ -23,15 +23,17 @@ export default function Page() {
justifyContent="center" justifyContent="center"
spacing={4} spacing={4}
> >
<Heading>Your workspace has been suspended.</Heading> <Heading>Dein Zugang wurde gesperrt!</Heading>
<Text> <Text>
We detected that one of your typebots does not comply with our{' '} Wir haben festgestellt, dass du gegen unsere {' '}
<TextLink <TextLink
href="https://typebot.io/terms-of-service#scam-typebots" href="https://bls.media/agb/?bot"
isExternal isExternal
> >
terms of service Nutzungsbedingungen
</TextLink> </TextLink>
verstoßen hast.
Bitte kontaktiere uns umgehend 🫣
</Text> </Text>
</VStack> </VStack>
</> </>

View File

@ -91,7 +91,7 @@ export const TypebotPageV2 = ({
) )
if (error) return setError(error) if (error) return setError(error)
if (data?.hasReachedLimit) if (data?.hasReachedLimit)
return setError(new Error('This bot is now closed.')) return setError(new Error('Dieser BLS bot ist aktuell geschlossen. 😴'))
if (data?.result) { if (data?.result) {
setResultId(data.result.id) setResultId(data.result.id)
if ( if (

View File

@ -37,7 +37,7 @@ export const LiteBadge = () => {
style={{ bottom: '20px' }} style={{ bottom: '20px' }}
id="lite-badge" id="lite-badge"
> >
Made with <span className="text-blue-500">Typebot</span>. Made with <span className="text-blue-500">BLS bot</span>.
</a> </a>
) )
} }

View File

@ -68,7 +68,7 @@ export const FileUploadForm = ({
setIsUploading(false) setIsUploading(false)
if (urls.length) if (urls.length)
return onSubmit({ label: `File uploaded`, value: urls[0] ?? '' }) return onSubmit({ label: `File uploaded`, value: urls[0] ?? '' })
setErrorMessage('An error occured while uploading the file') setErrorMessage('Upsi.. deine Datei wurde nicht hochgeladen 😵‍💫')
} }
const startFilesUpload = async (files: File[]) => { const startFilesUpload = async (files: File[]) => {
if (isPreview) if (isPreview)
@ -90,7 +90,7 @@ export const FileUploadForm = ({
setIsUploading(false) setIsUploading(false)
setUploadProgressPercent(0) setUploadProgressPercent(0)
if (urls.length !== files.length) if (urls.length !== files.length)
return setErrorMessage('An error occured while uploading the files') return setErrorMessage('Upsi.. deine Dateien wurde nicht hochgeladen 😵‍💫')
onSubmit({ onSubmit({
label: `${urls.length} file${urls.length > 1 ? 's' : ''} uploaded`, label: `${urls.length} file${urls.length > 1 ? 's' : ''} uploaded`,
value: urls.join(', '), value: urls.join(', '),

View File

@ -106,12 +106,12 @@ export const Bot = (props: BotProps & { class?: string }) => {
) )
} }
if (error.response.status === 400 || error.response.status === 403) if (error.response.status === 400 || error.response.status === 403)
return setError(new Error('This bot is now closed.')) return setError(new Error('Dieser BLS bot ist aktuell geschlossen. 😴'))
if (error.response.status === 404) if (error.response.status === 404)
return setError(new Error("The bot you're looking for doesn't exist.")) return setError(new Error("Dieser BLS bot existiert nicht (mehr) 🤨"))
return setError( return setError(
new Error( new Error(
`Error! Couldn't initiate the chat. (${error.response.statusText})` `Bitte lade die Seite neu. (${error.response.statusText})`
) )
) )
} }

View File

@ -85,7 +85,7 @@ export const FileUploadForm = (props: Props) => {
value: urls[0] ? encodeUrl(urls[0].url) : '', value: urls[0] ? encodeUrl(urls[0].url) : '',
attachments: [{ type: file.type, url: urls[0]!.url }], attachments: [{ type: file.type, url: urls[0]!.url }],
}) })
toaster.create({ description: 'An error occured while uploading the file' }) toaster.create({ description: 'Upsi.. deine Datei wurde nicht hochgeladen 😵‍💫' })
} }
const startFilesUpload = async (files: File[]) => { const startFilesUpload = async (files: File[]) => {
setIsUploading(true) setIsUploading(true)
@ -105,7 +105,7 @@ export const FileUploadForm = (props: Props) => {
setUploadProgressPercent(0) setUploadProgressPercent(0)
if (urls.length !== files.length) if (urls.length !== files.length)
return toaster.create({ return toaster.create({
description: 'An error occured while uploading the files', description: 'Upsi.. deine Dateien wurde nicht hochgeladen 😵‍💫',
}) })
props.onSubmit({ props.onSubmit({
type: 'text', type: 'text',

View File

@ -6,15 +6,15 @@ export const defaultFileInputOptions = {
visibility: 'Auto', visibility: 'Auto',
labels: { labels: {
placeholder: `<strong> placeholder: `<strong>
Click to upload Klicke zum Hochladen
</strong> or drag and drop<br> </strong> oder nutze drag and drop<br>
(size limit: 10MB)`, (maximal: 10MB)`,
button: 'Upload', button: 'Upload',
clear: 'Clear', clear: 'Clear',
skip: 'Skip', skip: 'Skip',
success: { success: {
single: 'File uploaded', single: 'Datei hochgeladen',
multiple: '{total} files uploaded', multiple: '{total} Datein hochgeladen',
}, },
}, },
} as const satisfies FileInputBlock['options'] } as const satisfies FileInputBlock['options']