Unverified Commit 543f2652 authored by Timothy Jaeryang Baek's avatar Timothy Jaeryang Baek Committed by GitHub
Browse files

Merge branch 'dev' into fix/pl-translation-update

parents 3a4f3e97 4bd999af
## Pull Request Checklist # Pull Request Checklist
- [ ] **Target branch:** Pull requests should target the `dev` branch. - [ ] **Target branch:** Pull requests should target the `dev` branch.
- [ ] **Description:** Briefly describe the changes in this pull request. - [ ] **Description:** Briefly describe the changes in this pull request.
...@@ -7,32 +7,46 @@ ...@@ -7,32 +7,46 @@
- [ ] **Dependencies:** Are there any new dependencies? Have you updated the dependency versions in the documentation? - [ ] **Dependencies:** Are there any new dependencies? Have you updated the dependency versions in the documentation?
- [ ] **Testing:** Have you written and run sufficient tests for the changes? - [ ] **Testing:** Have you written and run sufficient tests for the changes?
- [ ] **Code Review:** Have you self-reviewed your code and addressed any coding standard issues? - [ ] **Code Review:** Have you self-reviewed your code and addressed any coding standard issues?
- [ ] **Label title:** Ensure the pull request title is labeled properly using one of the following:
--- - **BREAKING CHANGE**: Significant changes that may affect compatibility
- **build**: Changes that affect the build system or external dependencies
## Description - **ci**: Changes to our continuous integration processes or workflows
- **chore**: Refactor, cleanup, or other non-functional code changes
[Insert a brief description of the changes made in this pull request, including any relevant motivation and impact.] - **docs**: Documentation update or addition
- **feat**: Introduces a new feature or enhancement to the codebase
--- - **fix**: Bug fix or error correction
- **i18n**: Internationalization or localization changes
### Changelog Entry - **perf**: Performance improvement
- **refactor**: Code restructuring for better maintainability, readability, or scalability
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
- **test**: Adding missing tests or correcting existing tests
- **WIP**: Work in progress, a temporary label for incomplete or ongoing work
# Changelog Entry
### Description
- [Briefly describe the changes made in this pull request, including any relevant motivation and impact.]
### Added ### Added
- [List any new features, functionalities, or additions] - [List any new features, functionalities, or additions]
### Fixed
- [List any fixes, corrections, or bug fixes]
### Changed ### Changed
- [List any changes, updates, refactorings, or optimizations] - [List any changes, updates, refactorings, or optimizations]
### Deprecated
- [List any deprecated functionality or features that have been removed]
### Removed ### Removed
- [List any removed features, files, or deprecated functionalities] - [List any removed features, files, or functionalities]
### Fixed
- [List any fixes, corrections, or bug fixes]
### Security ### Security
...@@ -40,12 +54,11 @@ ...@@ -40,12 +54,11 @@
### Breaking Changes ### Breaking Changes
- [List any breaking changes affecting compatibility or functionality] - **BREAKING CHANGE**: [List any breaking changes affecting compatibility or functionality]
--- ---
### Additional Information ### Additional Information
- [Insert any additional context, notes, or explanations for the changes] - [Insert any additional context, notes, or explanations for the changes]
- [Reference any related issues, commits, or other relevant information]
- [Reference any related issues, commits, or other relevant information]
import sys import sys
from contextlib import asynccontextmanager
from fastapi import FastAPI, Depends, HTTPException from fastapi import FastAPI, Depends, HTTPException
from fastapi.routing import APIRoute from fastapi.routing import APIRoute
...@@ -46,7 +47,16 @@ import asyncio ...@@ -46,7 +47,16 @@ import asyncio
import subprocess import subprocess
import yaml import yaml
app = FastAPI()
@asynccontextmanager
async def lifespan(app: FastAPI):
log.info("startup_event")
# TODO: Check config.yaml file and create one
asyncio.create_task(start_litellm_background())
yield
app = FastAPI(lifespan=lifespan)
origins = ["*"] origins = ["*"]
...@@ -141,13 +151,6 @@ async def shutdown_litellm_background(): ...@@ -141,13 +151,6 @@ async def shutdown_litellm_background():
background_process = None background_process = None
@app.on_event("startup")
async def startup_event():
log.info("startup_event")
# TODO: Check config.yaml file and create one
asyncio.create_task(start_litellm_background())
app.state.ENABLE_MODEL_FILTER = ENABLE_MODEL_FILTER app.state.ENABLE_MODEL_FILTER = ENABLE_MODEL_FILTER
app.state.MODEL_FILTER_LIST = MODEL_FILTER_LIST app.state.MODEL_FILTER_LIST = MODEL_FILTER_LIST
......
from contextlib import asynccontextmanager
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
import json import json
import markdown import markdown
...@@ -92,7 +93,19 @@ https://github.com/open-webui/open-webui ...@@ -92,7 +93,19 @@ https://github.com/open-webui/open-webui
""" """
) )
app = FastAPI(docs_url="/docs" if ENV == "dev" else None, redoc_url=None)
@asynccontextmanager
async def lifespan(app: FastAPI):
if ENABLE_LITELLM:
asyncio.create_task(start_litellm_background())
yield
if ENABLE_LITELLM:
await shutdown_litellm_background()
app = FastAPI(
docs_url="/docs" if ENV == "dev" else None, redoc_url=None, lifespan=lifespan
)
app.state.ENABLE_MODEL_FILTER = ENABLE_MODEL_FILTER app.state.ENABLE_MODEL_FILTER = ENABLE_MODEL_FILTER
app.state.MODEL_FILTER_LIST = MODEL_FILTER_LIST app.state.MODEL_FILTER_LIST = MODEL_FILTER_LIST
...@@ -211,12 +224,6 @@ async def check_url(request: Request, call_next): ...@@ -211,12 +224,6 @@ async def check_url(request: Request, call_next):
return response return response
@app.on_event("startup")
async def on_startup():
if ENABLE_LITELLM:
asyncio.create_task(start_litellm_background())
app.mount("/api/v1", webui_app) app.mount("/api/v1", webui_app)
app.mount("/litellm/api", litellm_app) app.mount("/litellm/api", litellm_app)
...@@ -381,9 +388,3 @@ else: ...@@ -381,9 +388,3 @@ else:
log.warning( log.warning(
f"Frontend build directory not found at '{FRONTEND_BUILD_DIR}'. Serving API only." f"Frontend build directory not found at '{FRONTEND_BUILD_DIR}'. Serving API only."
) )
@app.on_event("shutdown")
async def shutdown_event():
if ENABLE_LITELLM:
await shutdown_litellm_background()
...@@ -17,7 +17,7 @@ If your issue or contribution pertains directly to the core Ollama technology, p ...@@ -17,7 +17,7 @@ If your issue or contribution pertains directly to the core Ollama technology, p
### 🚨 Reporting Issues ### 🚨 Reporting Issues
Noticed something off? Have an idea? Check our [Issues tab](https://github.com/open-webui/oopen-webui/issues) to see if it's already been reported or suggested. If not, feel free to open a new issue. When reporting an issue, please follow our issue templates. These templates are designed to ensure that all necessary details are provided from the start, enabling us to address your concerns more efficiently. Noticed something off? Have an idea? Check our [Issues tab](https://github.com/open-webui/open-webui/issues) to see if it's already been reported or suggested. If not, feel free to open a new issue. When reporting an issue, please follow our issue templates. These templates are designed to ensure that all necessary details are provided from the start, enabling us to address your concerns more efficiently.
> [!IMPORTANT] > [!IMPORTANT]
> >
...@@ -54,7 +54,7 @@ Help us make Open WebUI more accessible by improving documentation, writing tuto ...@@ -54,7 +54,7 @@ Help us make Open WebUI more accessible by improving documentation, writing tuto
Help us make Open WebUI available to a wider audience. In this section, we'll guide you through the process of adding new translations to the project. Help us make Open WebUI available to a wider audience. In this section, we'll guide you through the process of adding new translations to the project.
We use JSON files to store translations. You can find the existing translation files in the `src/lib/i18n/locales` directory. Each directory corresponds to a specific language, for example, `en-US` for English (US), `fr-FR` for French (France) and so on. You can refer to [ISO 639 Language Codes][http://www.lingoes.net/en/translator/langcode.htm] to find the appropriate code for a specific language. We use JSON files to store translations. You can find the existing translation files in the `src/lib/i18n/locales` directory. Each directory corresponds to a specific language, for example, `en-US` for English (US), `fr-FR` for French (France) and so on. You can refer to [ISO 639 Language Codes](http://www.lingoes.net/en/translator/langcode.htm) to find the appropriate code for a specific language.
To add a new language: To add a new language:
......
...@@ -476,7 +476,7 @@ ...@@ -476,7 +476,7 @@
<div class="bg-white dark:bg-gray-700 rounded-full size-4"> <div class="bg-white dark:bg-gray-700 rounded-full size-4">
{idx + 1} {idx + 1}
</div> </div>
<div class=" mx-2"> <div class="flex-1 mx-2 line-clamp-1">
{citation.source.name} {citation.source.name}
</div> </div>
</button> </button>
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
import ShareChatModal from '../chat/ShareChatModal.svelte'; import ShareChatModal from '../chat/ShareChatModal.svelte';
import ArchiveBox from '../icons/ArchiveBox.svelte'; import ArchiveBox from '../icons/ArchiveBox.svelte';
import ArchivedChatsModal from './Sidebar/ArchivedChatsModal.svelte'; import ArchivedChatsModal from './Sidebar/ArchivedChatsModal.svelte';
import UserMenu from './Sidebar/UserMenu.svelte';
const BREAKPOINT = 1024; const BREAKPOINT = 1024;
...@@ -685,163 +686,30 @@ ...@@ -685,163 +686,30 @@
<div class="flex flex-col"> <div class="flex flex-col">
{#if $user !== undefined} {#if $user !== undefined}
<button <UserMenu
class=" flex rounded-xl py-3 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-900 transition" role={$user.role}
on:click={() => { on:show={(e) => {
showDropdown = !showDropdown; if (e.detail === 'archived-chat') {
showArchivedChatsModal = true;
}
}} }}
> >
<div class=" self-center mr-3"> <button
<img class=" flex rounded-xl py-3 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
src={$user.profile_image_url} on:click={() => {
class=" max-w-[30px] object-cover rounded-full" showDropdown = !showDropdown;
alt="User profile" }}
/>
</div>
<div class=" self-center font-semibold">{$user.name}</div>
</button>
{#if showDropdown}
<div
id="dropdownDots"
class="absolute z-40 bottom-[70px] rounded-lg shadow w-[240px] bg-white dark:bg-gray-900"
transition:fade|slide={{ duration: 100 }}
> >
<div class="p-1 py-2 w-full"> <div class=" self-center mr-3">
{#if $user.role === 'admin'} <img
<button src={$user.profile_image_url}
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition" class=" max-w-[30px] object-cover rounded-full"
on:click={() => { alt="User profile"
goto('/admin'); />
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M17.982 18.725A7.488 7.488 0 0012 15.75a7.488 7.488 0 00-5.982 2.975m11.963 0a9 9 0 10-11.963 0m11.963 0A8.966 8.966 0 0112 21a8.966 8.966 0 01-5.982-2.275M15 9.75a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Admin Panel')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
goto('/playground');
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Playground')}</div>
</button>
{/if}
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
showArchivedChatsModal = true;
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<ArchiveBox className="size-5" strokeWidth="1.5" />
</div>
<div class=" self-center font-medium">{$i18n.t('Archived Chats')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={async () => {
await showSettings.set(true);
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z"
/>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Settings')}</div>
</button>
</div>
<hr class=" dark:border-gray-800 m-0 p-0" />
<div class="p-1 py-2 w-full">
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
localStorage.removeItem('token');
location.href = '/auth';
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-5 h-5"
>
<path
fill-rule="evenodd"
d="M3 4.25A2.25 2.25 0 015.25 2h5.5A2.25 2.25 0 0113 4.25v2a.75.75 0 01-1.5 0v-2a.75.75 0 00-.75-.75h-5.5a.75.75 0 00-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 00.75-.75v-2a.75.75 0 011.5 0v2A2.25 2.25 0 0110.75 18h-5.5A2.25 2.25 0 013 15.75V4.25z"
clip-rule="evenodd"
/>
<path
fill-rule="evenodd"
d="M6 10a.75.75 0 01.75-.75h9.546l-1.048-.943a.75.75 0 111.004-1.114l2.5 2.25a.75.75 0 010 1.114l-2.5 2.25a.75.75 0 11-1.004-1.114l1.048-.943H6.75A.75.75 0 016 10z"
clip-rule="evenodd"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Sign Out')}</div>
</button>
</div> </div>
</div> <div class=" self-center font-semibold">{$user.name}</div>
{/if} </button>
</UserMenu>
{/if} {/if}
</div> </div>
</div> </div>
......
<script lang="ts">
import { DropdownMenu } from 'bits-ui';
import { createEventDispatcher, getContext } from 'svelte';
import { flyAndScale } from '$lib/utils/transitions';
import { goto } from '$app/navigation';
import ArchiveBox from '$lib/components/icons/ArchiveBox.svelte';
import { showSettings } from '$lib/stores';
import { fade, slide } from 'svelte/transition';
const i18n = getContext('i18n');
export let show = false;
export let role = '';
const dispatch = createEventDispatcher();
</script>
<DropdownMenu.Root
bind:open={show}
onOpenChange={(state) => {
dispatch('change', state);
}}
>
<DropdownMenu.Trigger>
<slot />
</DropdownMenu.Trigger>
<slot name="content">
<DropdownMenu.Content
class="w-full max-w-[240px] rounded-lg p-1 py-1 border border-gray-850 z-50 bg-gray-900 text-white text-sm"
sideOffset={8}
side="bottom"
align="start"
transition={(e) => fade(e, { duration: 100 })}
>
{#if role === 'admin'}
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
goto('/admin');
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M17.982 18.725A7.488 7.488 0 0012 15.75a7.488 7.488 0 00-5.982 2.975m11.963 0a9 9 0 10-11.963 0m11.963 0A8.966 8.966 0 0112 21a8.966 8.966 0 01-5.982-2.275M15 9.75a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Admin Panel')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
goto('/playground');
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Playground')}</div>
</button>
{/if}
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
dispatch('show', 'archived-chat');
show = false;
}}
>
<div class=" self-center mr-3">
<ArchiveBox className="size-5" strokeWidth="1.5" />
</div>
<div class=" self-center font-medium">{$i18n.t('Archived Chats')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={async () => {
await showSettings.set(true);
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z"
/>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Settings')}</div>
</button>
<hr class=" dark:border-gray-800 my-2 p-0" />
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
localStorage.removeItem('token');
location.href = '/auth';
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-5 h-5"
>
<path
fill-rule="evenodd"
d="M3 4.25A2.25 2.25 0 015.25 2h5.5A2.25 2.25 0 0113 4.25v2a.75.75 0 01-1.5 0v-2a.75.75 0 00-.75-.75h-5.5a.75.75 0 00-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 00.75-.75v-2a.75.75 0 011.5 0v2A2.25 2.25 0 0110.75 18h-5.5A2.25 2.25 0 013 15.75V4.25z"
clip-rule="evenodd"
/>
<path
fill-rule="evenodd"
d="M6 10a.75.75 0 01.75-.75h9.546l-1.048-.943a.75.75 0 111.004-1.114l2.5 2.25a.75.75 0 010 1.114l-2.5 2.25a.75.75 0 11-1.004-1.114l1.048-.943H6.75A.75.75 0 016 10z"
clip-rule="evenodd"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Sign Out')}</div>
</button>
<!-- <DropdownMenu.Item class="flex items-center px-3 py-2 text-sm font-medium">
<div class="flex items-center">Profile</div>
</DropdownMenu.Item> -->
</DropdownMenu.Content>
</slot>
</DropdownMenu.Root>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "Chunk تداخل", "Chunk Overlap": "Chunk تداخل",
"Chunk Params": "Chunk المتغيرات", "Chunk Params": "Chunk المتغيرات",
"Chunk Size": "Chunk حجم", "Chunk Size": "Chunk حجم",
"Citation": "", "Citation": "اقتباس",
"Click here for help.": "أضغط هنا للمساعدة", "Click here for help.": "أضغط هنا للمساعدة",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "انقر هنا للتحقق من ملفات الموديلات الأخرى.", "Click here to check other modelfiles.": "انقر هنا للتحقق من ملفات الموديلات الأخرى.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "دردشة جديدة", "New Chat": "دردشة جديدة",
"New Password": "كلمة المرور الجديدة", "New Password": "كلمة المرور الجديدة",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "لا يوجد مصدر متاح",
"Not factually correct": "ليس صحيحا من حيث الواقع", "Not factually correct": "ليس صحيحا من حيث الواقع",
"Not sure what to add?": "لست متأكدا ما يجب إضافته؟", "Not sure what to add?": "لست متأكدا ما يجب إضافته؟",
"Not sure what to write? Switch to": "لست متأكدا ماذا أكتب؟ التبديل إلى", "Not sure what to write? Switch to": "لست متأكدا ماذا أكتب؟ التبديل إلى",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "تسجيل الخروج", "Sign Out": "تسجيل الخروج",
"Sign up": "تسجيل", "Sign up": "تسجيل",
"Signing in": "جاري الدخول", "Signing in": "جاري الدخول",
"Source": "", "Source": "المصدر",
"Speech recognition error: {{error}}": "خطأ في التعرف على الكلام: {{error}}", "Speech recognition error: {{error}}": "خطأ في التعرف على الكلام: {{error}}",
"Speech-to-Text Engine": "محرك تحويل الكلام إلى نص", "Speech-to-Text Engine": "محرك تحويل الكلام إلى نص",
"SpeechRecognition API is not supported in this browser.": "API SpeechRecognition غير مدعومة في هذا المتصفح.", "SpeechRecognition API is not supported in this browser.": "API SpeechRecognition غير مدعومة في هذا المتصفح.",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "Chunk Overlap", "Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Params", "Chunk Params": "Chunk Params",
"Chunk Size": "Chunk Size", "Chunk Size": "Chunk Size",
"Citation": "", "Citation": "Цитат",
"Click here for help.": "Натиснете тук за помощ.", "Click here for help.": "Натиснете тук за помощ.",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.", "Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "Нов чат", "New Chat": "Нов чат",
"New Password": "Нова парола", "New Password": "Нова парола",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "Няма наличен източник",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "Не сте сигурни, какво да добавите?", "Not sure what to add?": "Не сте сигурни, какво да добавите?",
"Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към", "Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "Изход", "Sign Out": "Изход",
"Sign up": "Регистрация", "Sign up": "Регистрация",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "Източник",
"Speech recognition error: {{error}}": "Speech recognition error: {{error}}", "Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
"Speech-to-Text Engine": "Speech-to-Text Engine", "Speech-to-Text Engine": "Speech-to-Text Engine",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser.", "SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser.",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "চাঙ্ক ওভারল্যাপ", "Chunk Overlap": "চাঙ্ক ওভারল্যাপ",
"Chunk Params": "চাঙ্ক প্যারামিটার্স", "Chunk Params": "চাঙ্ক প্যারামিটার্স",
"Chunk Size": "চাঙ্ক সাইজ", "Chunk Size": "চাঙ্ক সাইজ",
"Citation": "", "Citation": "উদ্ধৃতি",
"Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন", "Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন", "Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "নতুন চ্যাট", "New Chat": "নতুন চ্যাট",
"New Password": "নতুন পাসওয়ার্ড", "New Password": "নতুন পাসওয়ার্ড",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "কোন উৎস পাওয়া যায়নি",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?", "Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?",
"Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:", "Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "সাইন আউট", "Sign Out": "সাইন আউট",
"Sign up": "সাইন আপ", "Sign up": "সাইন আপ",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "উৎস",
"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}", "Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন", "Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
"SpeechRecognition API is not supported in this browser.": "এই ব্রাউজার স্পিচরিকগনিশন এপিআই সাপোর্ট করে না।", "SpeechRecognition API is not supported in this browser.": "এই ব্রাউজার স্পিচরিকগনিশন এপিআই সাপোর্ট করে না।",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "Solapament de Blocs", "Chunk Overlap": "Solapament de Blocs",
"Chunk Params": "Paràmetres de Blocs", "Chunk Params": "Paràmetres de Blocs",
"Chunk Size": "Mida del Bloc", "Chunk Size": "Mida del Bloc",
"Citation": "", "Citation": "Citació",
"Click here for help.": "Fes clic aquí per ajuda.", "Click here for help.": "Fes clic aquí per ajuda.",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.", "Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "Xat Nou", "New Chat": "Xat Nou",
"New Password": "Nova Contrasenya", "New Password": "Nova Contrasenya",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "Sense font disponible",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "No estàs segur del que afegir?", "Not sure what to add?": "No estàs segur del que afegir?",
"Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a", "Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "Tanca sessió", "Sign Out": "Tanca sessió",
"Sign up": "Registra't", "Sign up": "Registra't",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "Font",
"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}", "Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
"Speech-to-Text Engine": "Motor de Veu a Text", "Speech-to-Text Engine": "Motor de Veu a Text",
"SpeechRecognition API is not supported in this browser.": "L'API de Reconèixer Veu no és compatible amb aquest navegador.", "SpeechRecognition API is not supported in this browser.": "L'API de Reconèixer Veu no és compatible amb aquest navegador.",
......
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "New Bark", "New Chat": "New Bark",
"New Password": "New Barkword", "New Password": "New Barkword",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "No source available",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "Not sure what to add?", "Not sure what to add?": "Not sure what to add?",
"Not sure what to write? Switch to": "Not sure what to write? Switch to", "Not sure what to write? Switch to": "Not sure what to write? Switch to",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "Sign Out much logout", "Sign Out": "Sign Out much logout",
"Sign up": "Sign up much join", "Sign up": "Sign up much join",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "Source",
"Speech recognition error: {{error}}": "Speech recognition error: {{error}} so error", "Speech recognition error: {{error}}": "Speech recognition error: {{error}} so error",
"Speech-to-Text Engine": "Speech-to-Text Engine much speak", "Speech-to-Text Engine": "Speech-to-Text Engine much speak",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser. Much sad.", "SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser. Much sad.",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "Superposición de fragmentos", "Chunk Overlap": "Superposición de fragmentos",
"Chunk Params": "Parámetros de fragmentos", "Chunk Params": "Parámetros de fragmentos",
"Chunk Size": "Tamaño de fragmentos", "Chunk Size": "Tamaño de fragmentos",
"Citation": "", "Citation": "Cita",
"Click here for help.": "Presiona aquí para obtener ayuda.", "Click here for help.": "Presiona aquí para obtener ayuda.",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "Presiona aquí para consultar otros modelfiles.", "Click here to check other modelfiles.": "Presiona aquí para consultar otros modelfiles.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "Nuevo Chat", "New Chat": "Nuevo Chat",
"New Password": "Nueva Contraseña", "New Password": "Nueva Contraseña",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "No hay fuente disponible",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "¿No sabes qué añadir?", "Not sure what to add?": "¿No sabes qué añadir?",
"Not sure what to write? Switch to": "¿No sabes qué escribir? Cambia a", "Not sure what to write? Switch to": "¿No sabes qué escribir? Cambia a",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "Cerrar sesión", "Sign Out": "Cerrar sesión",
"Sign up": "Crear una cuenta", "Sign up": "Crear una cuenta",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "Fuente",
"Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}", "Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}",
"Speech-to-Text Engine": "Motor de voz a texto", "Speech-to-Text Engine": "Motor de voz a texto",
"SpeechRecognition API is not supported in this browser.": "La API SpeechRecognition no es compatible con este navegador.", "SpeechRecognition API is not supported in this browser.": "La API SpeechRecognition no es compatible con este navegador.",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "همپوشانی تکه", "Chunk Overlap": "همپوشانی تکه",
"Chunk Params": "پارامترهای تکه", "Chunk Params": "پارامترهای تکه",
"Chunk Size": "اندازه تکه", "Chunk Size": "اندازه تکه",
"Citation": "", "Citation": "استناد",
"Click here for help.": "برای کمک اینجا را کلیک کنید.", "Click here for help.": "برای کمک اینجا را کلیک کنید.",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "برای بررسی سایر فایل\u200cهای مدل اینجا را کلیک کنید.", "Click here to check other modelfiles.": "برای بررسی سایر فایل\u200cهای مدل اینجا را کلیک کنید.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "گپ جدید", "New Chat": "گپ جدید",
"New Password": "رمز عبور جدید", "New Password": "رمز عبور جدید",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "منبعی در دسترس نیست",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "مطمئن نیستید چه چیزی را اضافه کنید؟", "Not sure what to add?": "مطمئن نیستید چه چیزی را اضافه کنید؟",
"Not sure what to write? Switch to": "مطمئن نیستید چه بنویسید؟ تغییر به", "Not sure what to write? Switch to": "مطمئن نیستید چه بنویسید؟ تغییر به",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "خروج", "Sign Out": "خروج",
"Sign up": "ثبت نام", "Sign up": "ثبت نام",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "منبع",
"Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}", "Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}",
"Speech-to-Text Engine": "موتور گفتار به متن", "Speech-to-Text Engine": "موتور گفتار به متن",
"SpeechRecognition API is not supported in this browser.": "API تشخیص گفتار در این مرورگر پشتیبانی نمی شود.", "SpeechRecognition API is not supported in this browser.": "API تشخیص گفتار در این مرورگر پشتیبانی نمی شود.",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "Chevauchement de bloc", "Chunk Overlap": "Chevauchement de bloc",
"Chunk Params": "Paramètres de bloc", "Chunk Params": "Paramètres de bloc",
"Chunk Size": "Taille de bloc", "Chunk Size": "Taille de bloc",
"Citation": "", "Citation": "Citations",
"Click here for help.": "Cliquez ici pour de l'aide.", "Click here for help.": "Cliquez ici pour de l'aide.",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.", "Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "Nouvelle discussion", "New Chat": "Nouvelle discussion",
"New Password": "Nouveau mot de passe", "New Password": "Nouveau mot de passe",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "Aucune source disponible",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "Pas sûr de quoi ajouter ?", "Not sure what to add?": "Pas sûr de quoi ajouter ?",
"Not sure what to write? Switch to": "Pas sûr de quoi écrire ? Changez pour", "Not sure what to write? Switch to": "Pas sûr de quoi écrire ? Changez pour",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "Se déconnecter", "Sign Out": "Se déconnecter",
"Sign up": "S'inscrire", "Sign up": "S'inscrire",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "Source",
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}", "Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
"Speech-to-Text Engine": "Moteur reconnaissance vocale", "Speech-to-Text Engine": "Moteur reconnaissance vocale",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.", "SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "Chevauchement de bloc", "Chunk Overlap": "Chevauchement de bloc",
"Chunk Params": "Paramètres de bloc", "Chunk Params": "Paramètres de bloc",
"Chunk Size": "Taille de bloc", "Chunk Size": "Taille de bloc",
"Citation": "", "Citation": "Citations",
"Click here for help.": "Cliquez ici pour de l'aide.", "Click here for help.": "Cliquez ici pour de l'aide.",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.", "Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "Nouveau chat", "New Chat": "Nouveau chat",
"New Password": "Nouveau mot de passe", "New Password": "Nouveau mot de passe",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "Aucune source disponible",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "Vous ne savez pas quoi ajouter ?", "Not sure what to add?": "Vous ne savez pas quoi ajouter ?",
"Not sure what to write? Switch to": "Vous ne savez pas quoi écrire ? Basculer vers", "Not sure what to write? Switch to": "Vous ne savez pas quoi écrire ? Basculer vers",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "Se déconnecter", "Sign Out": "Se déconnecter",
"Sign up": "S'inscrire", "Sign up": "S'inscrire",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "Source",
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}", "Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
"Speech-to-Text Engine": "Moteur de reconnaissance vocale", "Speech-to-Text Engine": "Moteur de reconnaissance vocale",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.", "SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
......
This diff is collapsed.
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "चंक ओवरलैप", "Chunk Overlap": "चंक ओवरलैप",
"Chunk Params": "चंक पैरामीटर्स", "Chunk Params": "चंक पैरामीटर्स",
"Chunk Size": "चंक आकार", "Chunk Size": "चंक आकार",
"Citation": "", "Citation": "उद्धरण",
"Click here for help.": "सहायता के लिए यहां क्लिक करें।", "Click here for help.": "सहायता के लिए यहां क्लिक करें।",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "अन्य मॉडल फ़ाइलों की जांच के लिए यहां क्लिक करें।", "Click here to check other modelfiles.": "अन्य मॉडल फ़ाइलों की जांच के लिए यहां क्लिक करें।",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "नई चैट", "New Chat": "नई चैट",
"New Password": "नया पासवर्ड", "New Password": "नया पासवर्ड",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "कोई स्रोत उपलब्ध नहीं है",
"Not factually correct": "तथ्यात्मक रूप से सही नहीं है", "Not factually correct": "तथ्यात्मक रूप से सही नहीं है",
"Not sure what to add?": "निश्चित नहीं कि क्या जोड़ें?", "Not sure what to add?": "निश्चित नहीं कि क्या जोड़ें?",
"Not sure what to write? Switch to": "मैं आश्वस्त नहीं हूं कि क्या लिखना है? स्विच करें", "Not sure what to write? Switch to": "मैं आश्वस्त नहीं हूं कि क्या लिखना है? स्विच करें",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "साइन आउट", "Sign Out": "साइन आउट",
"Sign up": "साइन अप", "Sign up": "साइन अप",
"Signing in": "साइन इन हो रहा है", "Signing in": "साइन इन हो रहा है",
"Source": "", "Source": "स्रोत",
"Speech recognition error: {{error}}": "वाक् पहचान त्रुटि: {{error}}", "Speech recognition error: {{error}}": "वाक् पहचान त्रुटि: {{error}}",
"Speech-to-Text Engine": "वाक्-से-पाठ इंजन", "Speech-to-Text Engine": "वाक्-से-पाठ इंजन",
"SpeechRecognition API is not supported in this browser.": "इस ब्राउज़र में SpeechRecognition API समर्थित नहीं है", "SpeechRecognition API is not supported in this browser.": "इस ब्राउज़र में SpeechRecognition API समर्थित नहीं है",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "Sovrapposizione chunk", "Chunk Overlap": "Sovrapposizione chunk",
"Chunk Params": "Parametri chunk", "Chunk Params": "Parametri chunk",
"Chunk Size": "Dimensione chunk", "Chunk Size": "Dimensione chunk",
"Citation": "", "Citation": "Citazione",
"Click here for help.": "Clicca qui per aiuto.", "Click here for help.": "Clicca qui per aiuto.",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "Clicca qui per controllare altri file modello.", "Click here to check other modelfiles.": "Clicca qui per controllare altri file modello.",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "Nuova chat", "New Chat": "Nuova chat",
"New Password": "Nuova password", "New Password": "Nuova password",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "Nessuna fonte disponibile",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "Non sei sicuro di cosa aggiungere?", "Not sure what to add?": "Non sei sicuro di cosa aggiungere?",
"Not sure what to write? Switch to": "Non sei sicuro di cosa scrivere? Passa a", "Not sure what to write? Switch to": "Non sei sicuro di cosa scrivere? Passa a",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "Esci", "Sign Out": "Esci",
"Sign up": "Registrati", "Sign up": "Registrati",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "Fonte",
"Speech recognition error: {{error}}": "Errore di riconoscimento vocale: {{error}}", "Speech recognition error: {{error}}": "Errore di riconoscimento vocale: {{error}}",
"Speech-to-Text Engine": "Motore da voce a testo", "Speech-to-Text Engine": "Motore da voce a testo",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition non è supportata in questo browser.", "SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition non è supportata in questo browser.",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
"Chunk Overlap": "チャンクオーバーラップ", "Chunk Overlap": "チャンクオーバーラップ",
"Chunk Params": "チャンクパラメーター", "Chunk Params": "チャンクパラメーター",
"Chunk Size": "チャンクサイズ", "Chunk Size": "チャンクサイズ",
"Citation": "", "Citation": "引用文",
"Click here for help.": "ヘルプについてはここをクリックしてください。", "Click here for help.": "ヘルプについてはここをクリックしてください。",
"Click here to": "", "Click here to": "",
"Click here to check other modelfiles.": "他のモデルファイルを確認するにはここをクリックしてください。", "Click here to check other modelfiles.": "他のモデルファイルを確認するにはここをクリックしてください。",
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
"New Chat": "新しいチャット", "New Chat": "新しいチャット",
"New Password": "新しいパスワード", "New Password": "新しいパスワード",
"No results found": "", "No results found": "",
"No source available": "", "No source available": "使用可能なソースがありません",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "何を追加すればよいかわからない?", "Not sure what to add?": "何を追加すればよいかわからない?",
"Not sure what to write? Switch to": "何を書けばよいかわからない? 次に切り替える", "Not sure what to write? Switch to": "何を書けばよいかわからない? 次に切り替える",
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
"Sign Out": "サインアウト", "Sign Out": "サインアウト",
"Sign up": "サインアップ", "Sign up": "サインアップ",
"Signing in": "", "Signing in": "",
"Source": "", "Source": "ソース",
"Speech recognition error: {{error}}": "音声認識エラー: {{error}}", "Speech recognition error: {{error}}": "音声認識エラー: {{error}}",
"Speech-to-Text Engine": "音声テキスト変換エンジン", "Speech-to-Text Engine": "音声テキスト変換エンジン",
"SpeechRecognition API is not supported in this browser.": "このブラウザでは SpeechRecognition API がサポートされていません。", "SpeechRecognition API is not supported in this browser.": "このブラウザでは SpeechRecognition API がサポートされていません。",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment