mirror of
https://github.com/open-webui/open-webui
synced 2024-11-16 21:42:58 +00:00
Added more german translations + added more i18n keys
This commit is contained in:
parent
9130428a55
commit
19843e39fd
@ -70,7 +70,7 @@
|
|||||||
>
|
>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col" class="px-3 py-2"> {$i18n.t('Name')} </th>
|
<th scope="col" class="px-3 py-2"> {$i18n.t('Name')} </th>
|
||||||
<th scope="col" class="px-3 py-2 hidden md:flex"> {$i18n.t('Created At')} </th>
|
<th scope="col" class="px-3 py-2 hidden md:flex"> {$i18n.t('Created at')} </th>
|
||||||
<th scope="col" class="px-3 py-2 text-right" />
|
<th scope="col" class="px-3 py-2 text-right" />
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
<td class="px-3 py-1 text-right">
|
<td class="px-3 py-1 text-right">
|
||||||
<div class="flex justify-end w-full">
|
<div class="flex justify-end w-full">
|
||||||
<Tooltip content="Delete Chat">
|
<Tooltip content={$i18n.t('Delete Chat')}>
|
||||||
<button
|
<button
|
||||||
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
|
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
|
||||||
on:click={async () => {
|
on:click={async () => {
|
||||||
@ -133,7 +133,7 @@
|
|||||||
{/each} -->
|
{/each} -->
|
||||||
</div>
|
</div>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="text-left text-sm w-full mb-8">{user.name} has no conversations.</div>
|
<div class="text-left text-sm w-full mb-8">{user.name} {$i18n.t('has no conversations.')}</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -492,7 +492,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if !readOnly}
|
{#if !readOnly}
|
||||||
<Tooltip content="Edit" placement="bottom">
|
<Tooltip content={$i18n.t('Edit')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class="{isLastMessage
|
class="{isLastMessage
|
||||||
? 'visible'
|
? 'visible'
|
||||||
@ -519,7 +519,7 @@
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<Tooltip content="Copy" placement="bottom">
|
<Tooltip content={$i18n.t('Copy')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class="{isLastMessage
|
class="{isLastMessage
|
||||||
? 'visible'
|
? 'visible'
|
||||||
@ -546,7 +546,7 @@
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
{#if !readOnly}
|
{#if !readOnly}
|
||||||
<Tooltip content="Good Response" placement="bottom">
|
<Tooltip content={$i18n.t('Good Response')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class="{isLastMessage
|
class="{isLastMessage
|
||||||
? 'visible'
|
? 'visible'
|
||||||
@ -581,7 +581,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
<Tooltip content="Bad Response" placement="bottom">
|
<Tooltip content={$i18n.t('Bad Response')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class="{isLastMessage
|
class="{isLastMessage
|
||||||
? 'visible'
|
? 'visible'
|
||||||
@ -616,7 +616,7 @@
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<Tooltip content="Read Aloud" placement="bottom">
|
<Tooltip content={$i18n.t('Read Aloud')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
id="speak-button-{message.id}"
|
id="speak-button-{message.id}"
|
||||||
class="{isLastMessage
|
class="{isLastMessage
|
||||||
@ -765,7 +765,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if message.info}
|
{#if message.info}
|
||||||
<Tooltip content="Generation Info" placement="bottom">
|
<Tooltip content={$i18n.t('Generation Info')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class=" {isLastMessage
|
class=" {isLastMessage
|
||||||
? 'visible'
|
? 'visible'
|
||||||
@ -794,7 +794,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if isLastMessage && !readOnly}
|
{#if isLastMessage && !readOnly}
|
||||||
<Tooltip content="Continue Response" placement="bottom">
|
<Tooltip content={$i18n.t('Continue Response')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="{isLastMessage
|
class="{isLastMessage
|
||||||
@ -826,7 +826,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
<Tooltip content="Regenerate" placement="bottom">
|
<Tooltip content={$i18n.t('Regenerate')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="{isLastMessage
|
class="{isLastMessage
|
||||||
|
@ -266,7 +266,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if !readOnly}
|
{#if !readOnly}
|
||||||
<Tooltip content="Edit" placement="bottom">
|
<Tooltip content={$i18n.t('Edit')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class="invisible group-hover:visible p-1 rounded dark:hover:text-white hover:text-black transition edit-user-message-button"
|
class="invisible group-hover:visible p-1 rounded dark:hover:text-white hover:text-black transition edit-user-message-button"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
@ -291,7 +291,7 @@
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<Tooltip content="Copy" placement="bottom">
|
<Tooltip content={$i18n.t('Copy')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class="invisible group-hover:visible p-1 rounded dark:hover:text-white hover:text-black transition"
|
class="invisible group-hover:visible p-1 rounded dark:hover:text-white hover:text-black transition"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
@ -316,7 +316,7 @@
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
{#if !isFirstMessage && !readOnly}
|
{#if !isFirstMessage && !readOnly}
|
||||||
<Tooltip content="Delete" placement="bottom">
|
<Tooltip content={$i18n.t('Delete')} placement="bottom">
|
||||||
<button
|
<button
|
||||||
class="invisible group-hover:visible p-1 rounded dark:hover:text-white hover:text-black transition"
|
class="invisible group-hover:visible p-1 rounded dark:hover:text-white hover:text-black transition"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
|
|
||||||
{#if selectedModelIdx === 0}
|
{#if selectedModelIdx === 0}
|
||||||
<div class=" self-center mr-2 disabled:text-gray-600 disabled:hover:text-gray-600">
|
<div class=" self-center mr-2 disabled:text-gray-600 disabled:hover:text-gray-600">
|
||||||
<Tooltip content="Add Model">
|
<Tooltip content={$i18n.t('Add Model')}>
|
||||||
<button
|
<button
|
||||||
class=" "
|
class=" "
|
||||||
{disabled}
|
{disabled}
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
export let value = '';
|
export let value = '';
|
||||||
export let placeholder = 'Select a model';
|
export let placeholder = 'Select a model';
|
||||||
export let searchEnabled = true;
|
export let searchEnabled = true;
|
||||||
export let searchPlaceholder = 'Search a model';
|
export let searchPlaceholder = $i18n.t('Search a model');
|
||||||
|
|
||||||
export let items = [{ value: 'mango', label: 'Mango' }];
|
export let items = [{ value: 'mango', label: 'Mango' }];
|
||||||
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import TagInput from './Tags/TagInput.svelte';
|
import TagInput from './Tags/TagInput.svelte';
|
||||||
import TagList from './Tags/TagList.svelte';
|
import TagList from './Tags/TagList.svelte';
|
||||||
|
import { getContext } from 'svelte';
|
||||||
|
|
||||||
|
const i18n = getContext('i18n');
|
||||||
|
|
||||||
export let tags = [];
|
export let tags = [];
|
||||||
|
|
||||||
@ -17,7 +20,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<TagInput
|
<TagInput
|
||||||
label={tags.length == 0 ? 'Add Tags' : ''}
|
label={tags.length == 0 ? $i18n.t('Add Tags') : ''}
|
||||||
on:add={(e) => {
|
on:add={(e) => {
|
||||||
addTag(e.detail);
|
addTag(e.detail);
|
||||||
}}
|
}}
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
<div class="flex self-center w-[1px] h-5 mx-2 bg-gray-300 dark:bg-stone-700" />
|
<div class="flex self-center w-[1px] h-5 mx-2 bg-gray-300 dark:bg-stone-700" />
|
||||||
|
|
||||||
{#if !shareEnabled}
|
{#if !shareEnabled}
|
||||||
<Tooltip content="Settings">
|
<Tooltip content={$i18n.t('Settings')}>
|
||||||
<button
|
<button
|
||||||
class="cursor-pointer p-1.5 flex dark:hover:bg-gray-700 rounded-full transition"
|
class="cursor-pointer p-1.5 flex dark:hover:bg-gray-700 rounded-full transition"
|
||||||
id="open-settings-button"
|
id="open-settings-button"
|
||||||
@ -104,7 +104,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</Menu>
|
</Menu>
|
||||||
{/if}
|
{/if}
|
||||||
<Tooltip content="New Chat">
|
<Tooltip content={$i18n.t('New Chat')}>
|
||||||
<button
|
<button
|
||||||
id="new-chat-button"
|
id="new-chat-button"
|
||||||
class=" cursor-pointer p-1.5 flex dark:hover:bg-gray-700 rounded-full transition"
|
class=" cursor-pointer p-1.5 flex dark:hover:bg-gray-700 rounded-full transition"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { DropdownMenu } from 'bits-ui';
|
import { DropdownMenu } from 'bits-ui';
|
||||||
|
import { getContext } from 'svelte';
|
||||||
|
|
||||||
import fileSaver from 'file-saver';
|
import fileSaver from 'file-saver';
|
||||||
const { saveAs } = fileSaver;
|
const { saveAs } = fileSaver;
|
||||||
@ -12,6 +13,8 @@
|
|||||||
|
|
||||||
import { downloadChatAsPDF } from '$lib/apis/utils';
|
import { downloadChatAsPDF } from '$lib/apis/utils';
|
||||||
|
|
||||||
|
const i18n = getContext('i18n');
|
||||||
|
|
||||||
export let shareEnabled: boolean = false;
|
export let shareEnabled: boolean = false;
|
||||||
export let shareHandler: Function;
|
export let shareHandler: Function;
|
||||||
export let downloadHandler: Function;
|
export let downloadHandler: Function;
|
||||||
@ -104,7 +107,7 @@
|
|||||||
d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
|
d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
<div class="flex items-center">Settings</div>
|
<div class="flex items-center">{$i18n.t('Settings')}</div>
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
|
|
||||||
{#if shareEnabled}
|
{#if shareEnabled}
|
||||||
@ -126,7 +129,7 @@
|
|||||||
clip-rule="evenodd"
|
clip-rule="evenodd"
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
<div class="flex items-center">Share</div>
|
<div class="flex items-center">{$i18n.t('Share')}</div>
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
|
|
||||||
<!-- <DropdownMenu.Item
|
<!-- <DropdownMenu.Item
|
||||||
@ -154,7 +157,7 @@
|
|||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
<div class="flex items-center">Download</div>
|
<div class="flex items-center">{$i18n.t('Download')}</div>
|
||||||
</DropdownMenu.SubTrigger>
|
</DropdownMenu.SubTrigger>
|
||||||
<DropdownMenu.SubContent
|
<DropdownMenu.SubContent
|
||||||
class="w-full rounded-lg px-1 py-1.5 border border-gray-300/30 dark:border-gray-700/50 z-50 bg-white dark:bg-gray-900 dark:text-white shadow-lg"
|
class="w-full rounded-lg px-1 py-1.5 border border-gray-300/30 dark:border-gray-700/50 z-50 bg-white dark:bg-gray-900 dark:text-white shadow-lg"
|
||||||
@ -167,7 +170,7 @@
|
|||||||
downloadTxt();
|
downloadTxt();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div class="flex items-center line-clamp-1">Plain text (.txt)</div>
|
<div class="flex items-center line-clamp-1">{$i18n.t('Plain text (.txt)')}</div>
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
|
|
||||||
<DropdownMenu.Item
|
<DropdownMenu.Item
|
||||||
@ -176,7 +179,7 @@
|
|||||||
downloadPdf();
|
downloadPdf();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div class="flex items-center line-clamp-1">PDF document (.pdf)</div>
|
<div class="flex items-center line-clamp-1">{$i18n.t('PDF document (.pdf)')}</div>
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
</DropdownMenu.SubContent>
|
</DropdownMenu.SubContent>
|
||||||
</DropdownMenu.Sub>
|
</DropdownMenu.Sub>
|
||||||
|
@ -610,7 +610,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</ChatMenu>
|
</ChatMenu>
|
||||||
|
|
||||||
<Tooltip content="Archive">
|
<Tooltip content={$i18n.t('Archive')}>
|
||||||
<button
|
<button
|
||||||
aria-label="Archive"
|
aria-label="Archive"
|
||||||
class=" self-center dark:hover:text-white transition"
|
class=" self-center dark:hover:text-white transition"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { DropdownMenu } from 'bits-ui';
|
import { DropdownMenu } from 'bits-ui';
|
||||||
import { flyAndScale } from '$lib/utils/transitions';
|
import { flyAndScale } from '$lib/utils/transitions';
|
||||||
|
import { getContext } from 'svelte'
|
||||||
|
|
||||||
import Dropdown from '$lib/components/common/Dropdown.svelte';
|
import Dropdown from '$lib/components/common/Dropdown.svelte';
|
||||||
import GarbageBin from '$lib/components/icons/GarbageBin.svelte';
|
import GarbageBin from '$lib/components/icons/GarbageBin.svelte';
|
||||||
@ -9,6 +10,8 @@
|
|||||||
import Tags from '$lib/components/chat/Tags.svelte';
|
import Tags from '$lib/components/chat/Tags.svelte';
|
||||||
import Share from '$lib/components/icons/Share.svelte';
|
import Share from '$lib/components/icons/Share.svelte';
|
||||||
|
|
||||||
|
const i18n = getContext('i18n');
|
||||||
|
|
||||||
export let shareHandler: Function;
|
export let shareHandler: Function;
|
||||||
export let renameHandler: Function;
|
export let renameHandler: Function;
|
||||||
export let deleteHandler: Function;
|
export let deleteHandler: Function;
|
||||||
@ -27,7 +30,7 @@
|
|||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Tooltip content="More">
|
<Tooltip content={$i18n.t('More')}>
|
||||||
<slot />
|
<slot />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
|
@ -3,8 +3,6 @@
|
|||||||
"(Beta)": "(Beta)",
|
"(Beta)": "(Beta)",
|
||||||
"(e.g. `sh webui.sh --api`)": "(z.B. `sh webui.sh --api`)",
|
"(e.g. `sh webui.sh --api`)": "(z.B. `sh webui.sh --api`)",
|
||||||
"(latest)": "(neueste)",
|
"(latest)": "(neueste)",
|
||||||
"{{modelName}} is thinking...": "{{modelName}} denkt nach...",
|
|
||||||
"{{webUIName}} Backend Required": "{{webUIName}}-Backend erforderlich",
|
|
||||||
"a user": "ein Benutzer",
|
"a user": "ein Benutzer",
|
||||||
"About": "Über",
|
"About": "Über",
|
||||||
"Account": "Account",
|
"Account": "Account",
|
||||||
@ -17,6 +15,8 @@
|
|||||||
"Add Docs": "Dokumente hinzufügen",
|
"Add Docs": "Dokumente hinzufügen",
|
||||||
"Add Files": "Dateien hinzufügen",
|
"Add Files": "Dateien hinzufügen",
|
||||||
"Add message": "Nachricht eingeben",
|
"Add message": "Nachricht eingeben",
|
||||||
|
"Add Model": "Modell hinzufügen",
|
||||||
|
"Add Tags": "Tags hinzufügen",
|
||||||
"add tags": "Tags hinzufügen",
|
"add tags": "Tags hinzufügen",
|
||||||
"Adjusting these settings will apply changes universally to all users.": "Das Anpassen dieser Einstellungen wirkt sich universell auf alle Benutzer aus.",
|
"Adjusting these settings will apply changes universally to all users.": "Das Anpassen dieser Einstellungen wirkt sich universell auf alle Benutzer aus.",
|
||||||
"admin": "Administrator",
|
"admin": "Administrator",
|
||||||
@ -34,6 +34,7 @@
|
|||||||
"API Base URL": "API Basis URL",
|
"API Base URL": "API Basis URL",
|
||||||
"API Key": "API Key",
|
"API Key": "API Key",
|
||||||
"API RPM": "API RPM",
|
"API RPM": "API RPM",
|
||||||
|
"Archive": "Archivieren",
|
||||||
"are allowed - Activate this command by typing": "sind erlaubt - Aktiviere diesen Befehl, indem du",
|
"are allowed - Activate this command by typing": "sind erlaubt - Aktiviere diesen Befehl, indem du",
|
||||||
"Are you sure?": "Bist du sicher?",
|
"Are you sure?": "Bist du sicher?",
|
||||||
"Audio": "Audio",
|
"Audio": "Audio",
|
||||||
@ -43,6 +44,7 @@
|
|||||||
"AUTOMATIC1111 Base URL is required.": "",
|
"AUTOMATIC1111 Base URL is required.": "",
|
||||||
"available!": "verfügbar!",
|
"available!": "verfügbar!",
|
||||||
"Back": "Zurück",
|
"Back": "Zurück",
|
||||||
|
"Bad Response": "Schlechte Antwort",
|
||||||
"Builder Mode": "Builder Modus",
|
"Builder Mode": "Builder Modus",
|
||||||
"Cancel": "Abbrechen",
|
"Cancel": "Abbrechen",
|
||||||
"Categories": "Kategorien",
|
"Categories": "Kategorien",
|
||||||
@ -71,7 +73,10 @@
|
|||||||
"Connections": "Verbindungen",
|
"Connections": "Verbindungen",
|
||||||
"Content": "Inhalt",
|
"Content": "Inhalt",
|
||||||
"Context Length": "Context Length",
|
"Context Length": "Context Length",
|
||||||
|
"Continue Response": "Antwort fortsetzen",
|
||||||
"Conversation Mode": "Konversationsmodus",
|
"Conversation Mode": "Konversationsmodus",
|
||||||
|
"Copied shared chat URL to clipboard!": "Geteilte Chat-URL in die Zwischenablage kopiert!",
|
||||||
|
"Copy": "Kopieren",
|
||||||
"Copy last code block": "Letzten Codeblock kopieren",
|
"Copy last code block": "Letzten Codeblock kopieren",
|
||||||
"Copy last response": "Letzte Antwort kopieren",
|
"Copy last response": "Letzte Antwort kopieren",
|
||||||
"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
|
"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
|
||||||
@ -95,12 +100,13 @@
|
|||||||
"Default User Role": "Standardbenutzerrolle",
|
"Default User Role": "Standardbenutzerrolle",
|
||||||
"delete": "löschen",
|
"delete": "löschen",
|
||||||
"Delete a model": "Ein Modell löschen",
|
"Delete a model": "Ein Modell löschen",
|
||||||
|
"Delete Chat": "Chat löschen",
|
||||||
"Delete chat": "Chat löschen",
|
"Delete chat": "Chat löschen",
|
||||||
"Delete Chats": "Chats löschen",
|
"Delete Chats": "Chats löschen",
|
||||||
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gelöscht",
|
"Delete User": "Benutzer löschen",
|
||||||
"Deleted {tagName}": "{tagName} gelöscht",
|
"Deleted {tagName}": "{tagName} gelöscht",
|
||||||
|
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gelöscht",
|
||||||
"Description": "Beschreibung",
|
"Description": "Beschreibung",
|
||||||
"Notifications": "Desktop-Benachrichtigungen",
|
|
||||||
"Disabled": "Deaktiviert",
|
"Disabled": "Deaktiviert",
|
||||||
"Discover a modelfile": "Ein Modelfile entdecken",
|
"Discover a modelfile": "Ein Modelfile entdecken",
|
||||||
"Discover a prompt": "Einen Prompt entdecken",
|
"Discover a prompt": "Einen Prompt entdecken",
|
||||||
@ -113,17 +119,18 @@
|
|||||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "stellt keine externen Verbindungen her, und Deine Daten bleiben sicher auf Deinen lokal gehosteten Server.",
|
"does not make any external connections, and your data stays securely on your locally hosted server.": "stellt keine externen Verbindungen her, und Deine Daten bleiben sicher auf Deinen lokal gehosteten Server.",
|
||||||
"Don't Allow": "Nicht erlauben",
|
"Don't Allow": "Nicht erlauben",
|
||||||
"Don't have an account?": "Hast du vielleicht noch kein Konto?",
|
"Don't have an account?": "Hast du vielleicht noch kein Konto?",
|
||||||
|
"Download": "Herunterladen",
|
||||||
"Download as a File": "Als Datei herunterladen",
|
"Download as a File": "Als Datei herunterladen",
|
||||||
"Download Database": "Datenbank herunterladen",
|
"Download Database": "Datenbank herunterladen",
|
||||||
"Drop any files here to add to the conversation": "Ziehe Dateien in diesen Bereich, um sie an den Chat anzuhängen",
|
"Drop any files here to add to the conversation": "Ziehe Dateien in diesen Bereich, um sie an den Chat anzuhängen",
|
||||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z.B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.",
|
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z.B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.",
|
||||||
|
"Edit": "Bearbeiten",
|
||||||
"Edit Doc": "Dokument bearbeiten",
|
"Edit Doc": "Dokument bearbeiten",
|
||||||
"Edit User": "Benutzer bearbeiten",
|
"Edit User": "Benutzer bearbeiten",
|
||||||
"Email": "E-Mail",
|
"Email": "E-Mail",
|
||||||
"Enable Chat History": "Chat-Verlauf aktivieren",
|
"Enable Chat History": "Chat-Verlauf aktivieren",
|
||||||
"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
|
"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
|
||||||
"Enabled": "Aktiviert",
|
"Enabled": "Aktiviert",
|
||||||
"Enter {{role}} message here": "Gib die {{role}} Nachricht hier ein",
|
|
||||||
"Enter API Key": "Gib den API-Schlüssel ein",
|
"Enter API Key": "Gib den API-Schlüssel ein",
|
||||||
"Enter Chunk Overlap": "Gib den Chunk Overlap ein",
|
"Enter Chunk Overlap": "Gib den Chunk Overlap ein",
|
||||||
"Enter Chunk Size": "Gib die Chunk Size ein",
|
"Enter Chunk Size": "Gib die Chunk Size ein",
|
||||||
@ -141,6 +148,7 @@
|
|||||||
"Enter Your Email": "Gib deine E-Mail-Adresse ein",
|
"Enter Your Email": "Gib deine E-Mail-Adresse ein",
|
||||||
"Enter Your Full Name": "Gib deinen vollständigen Namen ein",
|
"Enter Your Full Name": "Gib deinen vollständigen Namen ein",
|
||||||
"Enter Your Password": "Gib dein Passwort ein",
|
"Enter Your Password": "Gib dein Passwort ein",
|
||||||
|
"Enter {{role}} message here": "Gib die {{role}} Nachricht hier ein",
|
||||||
"Experimental": "Experimentell",
|
"Experimental": "Experimentell",
|
||||||
"Export All Chats (All Users)": "Alle Chats exportieren (alle Benutzer)",
|
"Export All Chats (All Users)": "Alle Chats exportieren (alle Benutzer)",
|
||||||
"Export Chats": "Chats exportieren",
|
"Export Chats": "Chats exportieren",
|
||||||
@ -156,6 +164,9 @@
|
|||||||
"Full Screen Mode": "Vollbildmodus",
|
"Full Screen Mode": "Vollbildmodus",
|
||||||
"General": "Allgemein",
|
"General": "Allgemein",
|
||||||
"General Settings": "Allgemeine Einstellungen",
|
"General Settings": "Allgemeine Einstellungen",
|
||||||
|
"Generation Info": "Generierungsinformationen",
|
||||||
|
"Good Response": "Gute Antwort",
|
||||||
|
"has no conversations.": "hat keine Unterhaltungen.",
|
||||||
"Hello, {{name}}": "Hallo, {{name}}",
|
"Hello, {{name}}": "Hallo, {{name}}",
|
||||||
"Hide": "Verbergen",
|
"Hide": "Verbergen",
|
||||||
"Hide Additional Params": "Verstecke zusätzliche Parameter",
|
"Hide Additional Params": "Verstecke zusätzliche Parameter",
|
||||||
@ -177,6 +188,7 @@
|
|||||||
"Keep Alive": "Keep Alive",
|
"Keep Alive": "Keep Alive",
|
||||||
"Keyboard shortcuts": "Tastenkürzel",
|
"Keyboard shortcuts": "Tastenkürzel",
|
||||||
"Language": "Sprache",
|
"Language": "Sprache",
|
||||||
|
"Last Active": "Zuletzt aktiv",
|
||||||
"Light": "Hell",
|
"Light": "Hell",
|
||||||
"Listening...": "Hören...",
|
"Listening...": "Hören...",
|
||||||
"LLMs can make mistakes. Verify important information.": "LLMs können Fehler machen. Überprüfe wichtige Informationen.",
|
"LLMs can make mistakes. Verify important information.": "LLMs können Fehler machen. Überprüfe wichtige Informationen.",
|
||||||
@ -190,21 +202,22 @@
|
|||||||
"Mirostat": "Mirostat",
|
"Mirostat": "Mirostat",
|
||||||
"Mirostat Eta": "Mirostat Eta",
|
"Mirostat Eta": "Mirostat Eta",
|
||||||
"Mirostat Tau": "Mirostat Tau",
|
"Mirostat Tau": "Mirostat Tau",
|
||||||
"MMMM DD, YYYY": "DD.MM.YYYY",
|
"MMMM DD, YYYY": "DD MMMM YYYY",
|
||||||
"Model '{{modelName}}' has been successfully downloaded.": "Modell '{{modelName}}' wurde erfolgreich heruntergeladen.",
|
"Model '{{modelName}}' has been successfully downloaded.": "Modell '{{modelName}}' wurde erfolgreich heruntergeladen.",
|
||||||
"Model '{{modelTag}}' is already in queue for downloading.": "Modell '{{modelTag}}' befindet sich bereits in der Warteschlange zum Herunterladen.",
|
"Model '{{modelTag}}' is already in queue for downloading.": "Modell '{{modelTag}}' befindet sich bereits in der Warteschlange zum Herunterladen.",
|
||||||
"Model {{modelId}} not found": "Modell {{modelId}} nicht gefunden",
|
|
||||||
"Model {{modelName}} already exists.": "Modell {{modelName}} existiert bereits.",
|
|
||||||
"Model Name": "Modellname",
|
"Model Name": "Modellname",
|
||||||
"Model not selected": "Modell nicht ausgewählt",
|
"Model not selected": "Modell nicht ausgewählt",
|
||||||
"Model Tag Name": "Modell-Tag-Name",
|
"Model Tag Name": "Modell-Tag-Name",
|
||||||
"Model Whitelisting": "Modell-Whitelisting",
|
"Model Whitelisting": "Modell-Whitelisting",
|
||||||
|
"Model {{modelId}} not found": "Modell {{modelId}} nicht gefunden",
|
||||||
|
"Model {{modelName}} already exists.": "Modell {{modelName}} existiert bereits.",
|
||||||
"Model(s) Whitelisted": "Modell(e) auf der Whitelist",
|
"Model(s) Whitelisted": "Modell(e) auf der Whitelist",
|
||||||
"Modelfile": "Modelfiles",
|
"Modelfile": "Modelfiles",
|
||||||
"Modelfile Advanced Settings": "Erweiterte Modelfileseinstellungen",
|
"Modelfile Advanced Settings": "Erweiterte Modelfileseinstellungen",
|
||||||
"Modelfile Content": "Modelfile Content",
|
"Modelfile Content": "Modelfile Content",
|
||||||
"Modelfiles": "Modelfiles",
|
"Modelfiles": "Modelfiles",
|
||||||
"Models": "Modelle",
|
"Models": "Modelle",
|
||||||
|
"More": "Mehr",
|
||||||
"My Documents": "Meine Dokumente",
|
"My Documents": "Meine Dokumente",
|
||||||
"My Modelfiles": "Meine Modelfiles",
|
"My Modelfiles": "Meine Modelfiles",
|
||||||
"My Prompts": "Meine Prompts",
|
"My Prompts": "Meine Prompts",
|
||||||
@ -215,6 +228,7 @@
|
|||||||
"New Password": "Neues Passwort",
|
"New Password": "Neues Passwort",
|
||||||
"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
|
"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
|
||||||
"Not sure what to write? Switch to": "Nicht sicher, was Du schreiben sollst? Wechsel zu",
|
"Not sure what to write? Switch to": "Nicht sicher, was Du schreiben sollst? Wechsel zu",
|
||||||
|
"Notifications": "Desktop-Benachrichtigungen",
|
||||||
"Off": "Aus",
|
"Off": "Aus",
|
||||||
"Okay, Let's Go!": "Okay, los geht's!",
|
"Okay, Let's Go!": "Okay, los geht's!",
|
||||||
"Ollama Base URL": "Ollama Basis URL",
|
"Ollama Base URL": "Ollama Basis URL",
|
||||||
@ -235,9 +249,11 @@
|
|||||||
"or": "oder",
|
"or": "oder",
|
||||||
"Parameters": "Parameter",
|
"Parameters": "Parameter",
|
||||||
"Password": "Passwort",
|
"Password": "Passwort",
|
||||||
|
"PDF document (.pdf)": "PDF-Dokument (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Text von Bildern aus PDFs extrahieren (OCR)",
|
"PDF Extract Images (OCR)": "Text von Bildern aus PDFs extrahieren (OCR)",
|
||||||
"pending": "ausstehend",
|
"pending": "ausstehend",
|
||||||
"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
|
"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
|
||||||
|
"Plain text (.txt)": "Nur Text (.txt)",
|
||||||
"Playground": "Playground",
|
"Playground": "Playground",
|
||||||
"Profile": "Profil",
|
"Profile": "Profil",
|
||||||
"Prompt Content": "Prompt-Inhalt",
|
"Prompt Content": "Prompt-Inhalt",
|
||||||
@ -248,8 +264,10 @@
|
|||||||
"Query Params": "Query Parameter",
|
"Query Params": "Query Parameter",
|
||||||
"RAG Template": "RAG-Vorlage",
|
"RAG Template": "RAG-Vorlage",
|
||||||
"Raw Format": "Rohformat",
|
"Raw Format": "Rohformat",
|
||||||
|
"Read Aloud": "Vorlesen",
|
||||||
"Record voice": "Stimme aufnehmen",
|
"Record voice": "Stimme aufnehmen",
|
||||||
"Redirecting you to OpenWebUI Community": "Du wirst zur OpenWebUI-Community weitergeleitet",
|
"Redirecting you to OpenWebUI Community": "Du wirst zur OpenWebUI-Community weitergeleitet",
|
||||||
|
"Regenerate": "Neu generieren",
|
||||||
"Release Notes": "Versionshinweise",
|
"Release Notes": "Versionshinweise",
|
||||||
"Repeat Last N": "Repeat Last N",
|
"Repeat Last N": "Repeat Last N",
|
||||||
"Repeat Penalty": "Repeat Penalty",
|
"Repeat Penalty": "Repeat Penalty",
|
||||||
@ -268,6 +286,7 @@
|
|||||||
"Scan complete!": "Scan abgeschlossen!",
|
"Scan complete!": "Scan abgeschlossen!",
|
||||||
"Scan for documents from {{path}}": "Dokumente von {{path}} scannen",
|
"Scan for documents from {{path}}": "Dokumente von {{path}} scannen",
|
||||||
"Search": "Suchen",
|
"Search": "Suchen",
|
||||||
|
"Search a model": "Ein Modell suchen",
|
||||||
"Search Documents": "Dokumente suchen",
|
"Search Documents": "Dokumente suchen",
|
||||||
"Search Prompts": "Prompts suchen",
|
"Search Prompts": "Prompts suchen",
|
||||||
"See readme.md for instructions": "Anleitung in readme.md anzeigen",
|
"See readme.md for instructions": "Anleitung in readme.md anzeigen",
|
||||||
@ -287,6 +306,8 @@
|
|||||||
"Set Voice": "Stimme festlegen",
|
"Set Voice": "Stimme festlegen",
|
||||||
"Settings": "Einstellungen",
|
"Settings": "Einstellungen",
|
||||||
"Settings saved successfully!": "Einstellungen erfolgreich gespeichert!",
|
"Settings saved successfully!": "Einstellungen erfolgreich gespeichert!",
|
||||||
|
"Share": "Teilen",
|
||||||
|
"Share Chat": "Chat teilen",
|
||||||
"Share to OpenWebUI Community": "Mit OpenWebUI Community teilen",
|
"Share to OpenWebUI Community": "Mit OpenWebUI Community teilen",
|
||||||
"short-summary": "kurze-zusammenfassung",
|
"short-summary": "kurze-zusammenfassung",
|
||||||
"Show": "Anzeigen",
|
"Show": "Anzeigen",
|
||||||
@ -333,6 +354,8 @@
|
|||||||
"Type Hugging Face Resolve (Download) URL": "",
|
"Type Hugging Face Resolve (Download) URL": "",
|
||||||
"Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.",
|
"Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.",
|
||||||
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.",
|
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.",
|
||||||
|
"Update and Copy Link": "Erneuern und kopieren",
|
||||||
|
"Update Embedding Model": "Embedding Modell aktualisieren",
|
||||||
"Update password": "Passwort aktualisieren",
|
"Update password": "Passwort aktualisieren",
|
||||||
"Upload a GGUF model": "GGUF Model hochladen",
|
"Upload a GGUF model": "GGUF Model hochladen",
|
||||||
"Upload files": "Dateien hochladen",
|
"Upload files": "Dateien hochladen",
|
||||||
@ -348,6 +371,7 @@
|
|||||||
"variable": "Variable",
|
"variable": "Variable",
|
||||||
"variable to have them replaced with clipboard content.": "Variable, um den Inhalt der Zwischenablage beim Nutzen des Prompts zu ersetzen.",
|
"variable to have them replaced with clipboard content.": "Variable, um den Inhalt der Zwischenablage beim Nutzen des Prompts zu ersetzen.",
|
||||||
"Version": "Version",
|
"Version": "Version",
|
||||||
|
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
|
||||||
"Web": "Web",
|
"Web": "Web",
|
||||||
"WebUI Add-ons": "WebUI-Add-Ons",
|
"WebUI Add-ons": "WebUI-Add-Ons",
|
||||||
"WebUI Settings": "WebUI-Einstellungen",
|
"WebUI Settings": "WebUI-Einstellungen",
|
||||||
@ -359,5 +383,7 @@
|
|||||||
"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
|
"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
|
||||||
"You": "Du",
|
"You": "Du",
|
||||||
"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
|
"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
|
||||||
"You're now logged in.": "Du bist nun eingeloggt."
|
"You're now logged in.": "Du bist nun eingeloggt.",
|
||||||
|
"{{modelName}} is thinking...": "{{modelName}} denkt nach...",
|
||||||
|
"{{webUIName}} Backend Required": "{{webUIName}}-Backend erforderlich"
|
||||||
}
|
}
|
@ -247,7 +247,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
<Tooltip content="Edit User">
|
<Tooltip content={$i18n.t('Edit User')}>
|
||||||
<button
|
<button
|
||||||
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
|
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
|
||||||
on:click={async () => {
|
on:click={async () => {
|
||||||
@ -272,7 +272,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
<Tooltip content="Delete User">
|
<Tooltip content={$i18n.t('Delete User')}>
|
||||||
<button
|
<button
|
||||||
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
|
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
|
||||||
on:click={async () => {
|
on:click={async () => {
|
||||||
|
@ -145,7 +145,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class=" mt-1 text-gray-400">
|
<div class=" mt-1 text-gray-400">
|
||||||
{dayjs(chat.chat.timestamp).format('MMMM D, YYYY')}
|
{dayjs(chat.chat.timestamp).format($i18n.t('MMMM DD, YYYY'))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user