Merge pull request #23120 from open-webui/dev

0.8.12
This commit is contained in:
Tim Baek
2026-03-27 04:26:39 +04:00
committed by GitHub
26 changed files with 461 additions and 234 deletions
+16
View File
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.8.12] - 2026-03-26
### Added
- 🌐 **Translation updates.** Translations for Simplified Chinese, Catalan, Portuguese (Brazil), Finnish, and Lithuanian were enhanced and expanded.
### Fixed
- 🔒 **Terminal server connection security.** Terminal server verification and policy saving now proxy through the backend, preventing API key exposure and CORS errors when connecting to in-cluster services. [Commit](https://github.com/open-webui/open-webui/commit/a6413257079a52fa4487eda36543f3955d0fbd53), [Commit](https://github.com/open-webui/open-webui/commit/4567cdc0d9cb7b42b6eba7b676c0ced3f4850d31)
- 🛠️ **Terminal tools exception handling.** Exceptions in middleware.py due to invalid return values from get_terminal_tools() have been resolved. [Commit](https://github.com/open-webui/open-webui/commit/52a06bd48aff34fb2211aac2879f0cd028129267)
- 📦 **Missing beautifulsoup4 dependency.** Users can now start Open WebUI using uvx without encountering the "bs4 module missing" error. [Commit](https://github.com/open-webui/open-webui/commit/1994d65306bbcc7406584e1bfef82f5d353fc91c)
- 🔌 **API files list error.** The /api/v1/files/ endpoint no longer returns a 500 error, fixing a regression that prevented file listing via the API. [Commit](https://github.com/open-webui/open-webui/commit/11f52921dc21c2dc61c03f12bcdf6f19140a350c)
- 📜 **License data loading.** License data now loads correctly, displaying the expected color and logo in the interface. [Commit](https://github.com/open-webui/open-webui/commit/16335f866ea4cedf00c4971963622fcc1fe02d82)
- 👑 **Admin model visibility.** Administrators can now see models even when no access control is configured yet, allowing them to manage all available models. [Commit](https://github.com/open-webui/open-webui/commit/f3f8f9874f55282603c2650b91801640cb3f69cb)
- 📊 **Tool call embed visibility.** Rich UI embeds from tool calls (like visualizations) are now rendered outside collapsed groups and remain visible without requiring manual expansion. [Commit](https://github.com/open-webui/open-webui/commit/4c872a8d128757d4a6f311fb86bc382af2ba5d0d), [Commit](https://github.com/open-webui/open-webui/commit/308fa924a5b2b7e08cd1e8f15b9c8c96e1de8f02)
## [0.8.11] - 2026-03-25
### Added
+2 -2
View File
@@ -87,7 +87,7 @@ class FileModelResponse(BaseModel):
filename: str
data: Optional[dict] = None
meta: FileMeta
meta: Optional[FileMeta] = None
created_at: int # timestamp in epoch
updated_at: Optional[int] = None # timestamp in epoch, optional for legacy files
@@ -246,7 +246,7 @@ class FilesTable:
total = query.count()
items = [
FileModel.model_validate(file)
FileModelResponse.model_validate(file, from_attributes=True)
for file in query.order_by(File.updated_at.desc(), File.id.desc()).offset(skip).limit(limit).all()
]
+6 -1
View File
@@ -30,6 +30,7 @@ from open_webui.models.knowledge import Knowledges
from open_webui.models.chats import Chats
from open_webui.models.notes import Notes
from open_webui.models.access_grants import AccessGrants
from open_webui.utils.access_control.files import has_access_to_file
from open_webui.retrieval.vector.main import GetResult
from open_webui.utils.headers import include_user_info_headers
@@ -1042,7 +1043,11 @@ async def get_sources_from_items(
}
elif item.get('id'):
file_object = Files.get_file_by_id(item.get('id'))
if file_object:
if file_object and (
user.role == 'admin'
or file_object.user_id == user.id
or has_access_to_file(item.get('id'), 'read', user)
):
query_result = {
'documents': [[file_object.data.get('content', '')]],
'metadatas': [
+86
View File
@@ -269,6 +269,92 @@ async def set_terminal_servers_config(
}
@router.post('/terminal_servers/verify')
async def verify_terminal_server_connection(
request: Request, form_data: TerminalServerConnection, user=Depends(get_admin_user)
):
"""
Verify the connection to a terminal server by detecting its type.
Tries GET {url}/api/v1/policies (orchestrator) then GET {url}/api/config
(plain terminal). Returns ``{status: true, type: "orchestrator"|"terminal"}``.
"""
base_url = (form_data.url or '').rstrip('/')
if not base_url:
raise HTTPException(status_code=400, detail='Terminal server URL is required')
headers = {}
if form_data.auth_type == 'bearer' and form_data.key:
headers['Authorization'] = f'Bearer {form_data.key}'
try:
async with aiohttp.ClientSession(
trust_env=True,
timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT),
) as session:
# Orchestrators expose a policies API; plain terminals don't.
try:
async with session.get(f'{base_url}/api/v1/policies', headers=headers) as resp:
if resp.ok:
return {'status': True, 'type': 'orchestrator'}
except Exception:
pass
# Fall back to open-terminal config endpoint.
try:
async with session.get(f'{base_url}/api/config', headers=headers) as resp:
if resp.ok:
return {'status': True, 'type': 'terminal'}
except Exception:
pass
except Exception as e:
log.debug(f'Failed to connect to the terminal server: {e}')
raise HTTPException(status_code=400, detail='Failed to connect to the terminal server')
class TerminalServerPolicyForm(BaseModel):
url: str
key: Optional[str] = ''
auth_type: Optional[str] = 'bearer'
policy_id: str
policy_data: dict
@router.post('/terminal_servers/policy')
async def put_terminal_server_policy(
request: Request, form_data: TerminalServerPolicyForm, user=Depends(get_admin_user)
):
"""
Proxy a policy PUT to an orchestrator terminal server.
"""
base_url = (form_data.url or '').rstrip('/')
if not base_url:
raise HTTPException(status_code=400, detail='Terminal server URL is required')
headers = {'Content-Type': 'application/json'}
if form_data.auth_type == 'bearer' and form_data.key:
headers['Authorization'] = f'Bearer {form_data.key}'
try:
async with aiohttp.ClientSession(
trust_env=True,
timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT),
) as session:
policy_url = f'{base_url}/api/v1/policies/{form_data.policy_id}'
async with session.put(policy_url, headers=headers, json=form_data.policy_data) as resp:
if resp.ok:
return await resp.json()
detail = await resp.text()
raise HTTPException(status_code=resp.status, detail=detail)
except HTTPException:
raise
except Exception as e:
log.debug(f'Failed to save policy to terminal server: {e}')
raise HTTPException(status_code=400, detail='Failed to save policy to terminal server')
@router.post('/tool_servers/verify')
async def verify_tool_servers_config(request: Request, form_data: ToolServerConnection, user=Depends(get_admin_user)):
"""
+6
View File
@@ -42,6 +42,12 @@ async def format_code(form_data: CodeForm, user=Depends(get_admin_user)):
@router.post('/code/execute')
async def execute_code(request: Request, form_data: CodeForm, user=Depends(get_verified_user)):
if not request.app.state.config.ENABLE_CODE_EXECUTION:
raise HTTPException(
status_code=403,
detail='Code execution is disabled',
)
if request.app.state.config.CODE_EXECUTION_ENGINE == 'jupyter':
output = await execute_code_jupyter(
request.app.state.config.CODE_EXECUTION_JUPYTER_URL,
+9 -2
View File
@@ -143,8 +143,15 @@ def get_license_data(app, key):
pn, pt = nt(pb)
data = json.loads(aesgcm.decrypt(pn, pt, None).decode())
if not data.get('exp') or data.get('exp') < datetime.now().date():
return False
exp = data.get('exp')
if exp:
if isinstance(exp, str):
from datetime import date
exp = date.fromisoformat(exp)
if exp < datetime.now().date():
return False
data_handler(data)
return True
+6 -1
View File
@@ -2607,12 +2607,17 @@ async def process_chat_payload(request, form_data, user, metadata, model):
# so system terminals work even when no other tools are selected)
if terminal_id:
try:
terminal_tools, system_prompt = await get_terminal_tools(
terminal_result = await get_terminal_tools(
request,
terminal_id,
user,
extra_params,
)
if isinstance(terminal_result, tuple):
terminal_tools, system_prompt = terminal_result
else:
terminal_tools = terminal_result
system_prompt = None
if terminal_tools:
tools_dict = {**tools_dict, **terminal_tools}
if system_prompt:
+4
View File
@@ -452,6 +452,10 @@ def get_filtered_models(models, user, db=None):
or model['id'] in accessible_model_ids
):
filtered_models.append(model)
elif user.role == 'admin':
# No DB entry means no access control configured yet;
# only admins can see unconfigured models.
filtered_models.append(model)
return filtered_models
else:
+1 -1
View File
@@ -956,7 +956,7 @@ async def get_terminal_tools(
terminal_id: str,
user: UserModel,
extra_params: dict,
) -> tuple[dict[str, dict], Optional[str]]:
) -> dict[str, dict] | tuple[dict[str, dict], Optional[str]]:
"""Resolve tools for a terminal server identified by terminal_id.
- Finds the connection in TERMINAL_SERVER_CONNECTIONS
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "open-webui",
"version": "0.8.11",
"version": "0.8.12",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "open-webui",
"version": "0.8.11",
"version": "0.8.12",
"dependencies": {
"@azure/msal-browser": "^4.5.0",
"@codemirror/lang-javascript": "^6.2.2",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "open-webui",
"version": "0.8.11",
"version": "0.8.12",
"private": true,
"scripts": {
"dev": "npm run pyodide:fetch && vite dev --host",
+1
View File
@@ -80,6 +80,7 @@ dependencies = [
"msoffcrypto-tool==6.0.0",
"nltk==3.9.3",
"Markdown==3.10.2",
"beautifulsoup4==4.14.3",
"pypandoc==1.16.2",
"pandas==3.0.1",
"openpyxl==3.1.5",
+46 -11
View File
@@ -268,9 +268,10 @@ export const detectTerminalServerType = async (
/**
* Create or update a policy on the orchestrator.
* PUT {url}/api/v1/policies/{policyId}
* Proxied through the Open WebUI backend to keep API keys server-side.
*/
export const putOrchestratorPolicy = async (
token: string,
url: string,
key: string,
policyId: string,
@@ -278,18 +279,52 @@ export const putOrchestratorPolicy = async (
): Promise<object | null> => {
let error = null;
const baseUrl = url.replace(/\/$/, '');
const headers: Record<string, string> = {
'Content-Type': 'application/json'
};
if (key) {
headers['Authorization'] = `Bearer ${key}`;
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/terminal_servers/policy`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`
},
body: JSON.stringify({
url: url.replace(/\/$/, ''),
key,
policy_id: policyId,
policy_data: policyData
})
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((err) => {
console.error(err);
error = err.detail;
return null;
});
if (error) {
throw error;
}
const res = await fetch(`${baseUrl}/api/v1/policies/${encodeURIComponent(policyId)}`, {
method: 'PUT',
headers,
body: JSON.stringify(policyData)
return res;
};
/**
* Verify a terminal server connection via the backend proxy.
* Used for system/admin connections to avoid CORS issues and API key exposure.
*/
export const verifyTerminalServerConnection = async (token: string, connection: object) => {
let error = null;
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/terminal_servers/verify`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`
},
body: JSON.stringify({
...connection
})
})
.then(async (res) => {
if (!res.ok) throw await res.json();
@@ -12,12 +12,16 @@
import LockClosed from '$lib/components/icons/LockClosed.svelte';
import Tooltip from '$lib/components/common/Tooltip.svelte';
import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
import { detectTerminalServerType, putOrchestratorPolicy } from '$lib/apis/configs';
import {
detectTerminalServerType,
verifyTerminalServerConnection,
putOrchestratorPolicy
} from '$lib/apis/configs';
import { getTerminalConfig } from '$lib/apis/terminal';
export let show = false;
export let edit = false;
export let admin = false;
export let direct = false;
export let connection = null;
export let onSubmit: Function = () => {};
@@ -110,9 +114,14 @@
verifying = true;
try {
if (admin) {
// Admin: detect orchestrator vs terminal
const type = await detectTerminalServerType(_url, key);
if (!direct) {
// System connection: proxy through backend to avoid CORS / key exposure
const result = await verifyTerminalServerConnection(localStorage.token, {
url: _url,
key,
auth_type
});
const type = result?.type ?? null;
if (type) {
serverType = type;
@@ -137,7 +146,7 @@
toast.error($i18n.t('Server connection failed'));
}
} else {
// Non-admin: simple terminal verification
// Direct connection: verify from browser
const res = await getTerminalConfig(_url, key);
if (res) {
toast.success($i18n.t('Server connection verified'));
@@ -192,9 +201,9 @@
url = url.replace(/\/$/, '');
// Save policy to orchestrator if applicable
if (serverType === 'orchestrator' && admin && policyId) {
if (serverType === 'orchestrator' && !direct && policyId) {
try {
await putOrchestratorPolicy(url, key, policyId, buildPolicyData());
await putOrchestratorPolicy(localStorage.token, url, key, policyId, buildPolicyData());
} catch (err) {
toast.error($i18n.t('Failed to save policy: {{error}}', { error: err }));
return;
@@ -202,7 +211,7 @@
}
const result = {
...(admin && id.trim() ? { id: id.trim() } : {}),
...(!direct && id.trim() ? { id: id.trim() } : {}),
url,
key,
name,
@@ -210,7 +219,7 @@
auth_type,
enabled: enabled,
config: {
...(admin ? { access_grants: accessGrants } : {})
...(!direct ? { access_grants: accessGrants } : {})
},
// Policy fields
...(serverType ? { server_type: serverType } : {}),
@@ -270,7 +279,7 @@
/>
</div>
</div>
{#if admin}
{#if !direct}
<div class="flex flex-col flex-1">
<div class="flex justify-between mb-0.5">
<label
@@ -368,7 +377,7 @@
</div>
<!-- Policy section (orchestrator only, admin only) -->
{#if serverType === 'orchestrator' && admin}
{#if serverType === 'orchestrator' && !direct}
<div class="flex gap-2 mt-2">
<div class="flex flex-col w-full">
<div class="flex justify-between mb-0.5">
@@ -580,7 +589,7 @@
{$i18n.t('Advanced')}
</button>
{#if admin}
{#if !direct}
<button
class="bg-gray-50 hover:bg-gray-100 text-black dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-white transition px-2 py-1 object-cover rounded-full flex gap-1 items-center mt-2"
type="button"
@@ -662,7 +671,7 @@
>
<option value="none">{$i18n.t('None')}</option>
<option value="bearer">{$i18n.t('Bearer')}</option>
{#if admin}
{#if !direct}
<option value="session">{$i18n.t('Session')}</option>
<option value="system_oauth">{$i18n.t('OAuth')}</option>
{/if}
@@ -122,7 +122,6 @@
<AddToolServerModal bind:show={showConnectionModal} onSubmit={addConnectionHandler} />
<AddTerminalServerModal
admin
bind:show={showAddTerminalModal}
edit={editTerminalIdx !== null}
connection={editTerminalIdx !== null ? terminalConnections[editTerminalIdx] : null}
@@ -1,4 +1,5 @@
<script lang="ts">
import { decode } from 'html-entities';
import { getContext } from 'svelte';
import { slide } from 'svelte/transition';
import { quintOut } from 'svelte/easing';
@@ -9,6 +10,9 @@
import WrenchSolid from '$lib/components/icons/WrenchSolid.svelte';
import Sparkles from '$lib/components/icons/Sparkles.svelte';
import CheckCircle from '$lib/components/icons/CheckCircle.svelte';
import FullHeightIframe from '$lib/components/common/FullHeightIframe.svelte';
import { settings } from '$lib/stores';
const i18n = getContext('i18n');
@@ -20,6 +24,8 @@
name?: string;
done?: string;
duration?: string;
embeds?: string;
arguments?: string;
};
}> = [];
@@ -27,6 +33,14 @@
let open = false;
function parseJSONString(str: string) {
try {
return parseJSONString(JSON.parse(str));
} catch (e) {
return str;
}
}
$: toolCallCount = tokens.filter((t) => t?.attributes?.type === 'tool_calls').length;
$: reasoningCount = tokens.filter((t) => t?.attributes?.type === 'reasoning').length;
$: hasPending =
@@ -35,6 +49,28 @@
$: codeInterpreterCount = tokens.filter((t) => t?.attributes?.type === 'code_interpreter').length;
// Collect all embeds from tool_calls tokens
$: allEmbeds = (() => {
const result: Array<{ name: string; embed: string; args: string }> = [];
for (const t of tokens) {
if (t?.attributes?.type !== 'tool_calls') continue;
const raw = decode(t.attributes?.embeds ?? '');
try {
const parsed = parseJSONString(raw);
if (Array.isArray(parsed) && parsed.length > 0) {
for (const embed of parsed) {
result.push({
name: t.attributes?.name ?? '',
embed,
args: decode(t.attributes?.arguments ?? '')
});
}
}
} catch {}
}
return result;
})();
$: summaryText = (() => {
const parts = [];
@@ -124,4 +160,19 @@
</div>
</div>
{/if}
{#if allEmbeds.length > 0}
{#each allEmbeds as embedItem, idx}
<div id={`${id}-embed-${idx}`}>
<FullHeightIframe
src={embedItem.embed}
args={embedItem.args}
allowScripts={true}
allowForms={$settings?.iframeSandboxAllowForms ?? false}
allowSameOrigin={$settings?.iframeSandboxAllowSameOrigin ?? false}
allowPopups={true}
/>
</div>
{/each}
{/if}
</div>
@@ -380,6 +380,7 @@
<ToolCallDisplay
id={`${id}-${tokenIdx}-${detailIdx}-tc`}
attributes={detailToken.attributes}
grouped={true}
open={false}
className="w-full space-y-1"
/>
@@ -38,7 +38,7 @@
};
</script>
<AddTerminalServerModal bind:show={showAddModal} onSubmit={(server) => addServer(server)} />
<AddTerminalServerModal direct bind:show={showAddModal} onSubmit={(server) => addServer(server)} />
<div>
<div class="flex justify-between items-center mb-1">
@@ -20,6 +20,7 @@
</script>
<AddTerminalServerModal
direct
edit
bind:show={showConfigModal}
{connection}
@@ -31,6 +31,7 @@
} = {};
export let open = false;
export let grouped = false;
export let className = '';
const RESULT_PREVIEW_LIMIT = 10000;
@@ -87,7 +88,7 @@
</script>
<div {id} class={className}>
{#if embeds && Array.isArray(embeds) && embeds.length > 0}
{#if !grouped && embeds && Array.isArray(embeds) && embeds.length > 0}
<!-- Embed Mode: Show iframes without collapsible behavior -->
<div class="py-1 w-full cursor-pointer">
<div class="w-full text-xs text-gray-500">
+42 -42
View File
@@ -17,9 +17,9 @@
"{{COUNT}} members": "{{COUNT}} membres",
"{{COUNT}} Replies": "{{COUNT}} respostes",
"{{COUNT}} Rows": "{{COUNT}} files",
"{{count}} selected_one": "",
"{{count}} selected_many": "",
"{{count}} selected_other": "",
"{{count}} selected_one": "{{count}} seleccionat",
"{{count}} selected_many": "{{count}} seleccionats",
"{{count}} selected_other": "{{count}} seleccionats",
"{{COUNT}} Sources": "{{COUNT}} fonts",
"{{COUNT}} words": "{{COUNT}} paraules",
"{{COUNT}}d_time_ago": "{{COUNT}}d",
@@ -130,7 +130,7 @@
"Allow File Upload": "Permetre la pujada d'arxius",
"Allow Multiple Models in Chat": "Permetre múltiple models al xat",
"Allow non-local voices": "Permetre veus no locals",
"Allow public write access": "",
"Allow public write access": "Permetre accés públic d'escriptura",
"Allow Rate Response": "Permetre valorar les respostes",
"Allow Regenerate Response": "Permetre regenerar respostes",
"Allow Sharing With Users": "Permetre compartir amb usuaris",
@@ -185,8 +185,8 @@
"Are you sure you want to delete \"{{NAME}}\"?": "Estàs segur que vols eliminar \"{{NAME}}\"?",
"Are you sure you want to delete all chats? This action cannot be undone.": "Estàs segur que vols suprimir tots els xats? Aquesta acció no es pot desfer.",
"Are you sure you want to delete this channel?": "Estàs segur que vols eliminar aquest canal?",
"Are you sure you want to delete this connection? This action cannot be undone.": "",
"Are you sure you want to delete this memory? This action cannot be undone.": "",
"Are you sure you want to delete this connection? This action cannot be undone.": "Estàs segur que vols suprimir aquesta connexió? Aquesta acció no es pot desfer.",
"Are you sure you want to delete this memory? This action cannot be undone.": "Estàs segur que vols suprimir aquest record? Aquesta acció no es pot desfer.",
"Are you sure you want to delete this message?": "Estàs segur que vols eliminar aquest missatge?",
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Estàs segur que vols suprimir aquesta versió? Les versions filles es tornaran a enllaçar amb la versió principal d'aquesta versió.",
"Are you sure you want to delete this?": "Estàs segur que vols eliminar això",
@@ -332,10 +332,10 @@
"Click here to upload a workflow.json file.": "Clica aquí per pujar un arxiu workflow.json",
"click here.": "clica aquí.",
"Click on the user role button to change a user's role.": "Clica sobre el botó de rol d'usuari per canviar el rol d'un usuari.",
"Click to connect": "",
"Click to connect": "Fes clic per connectar",
"Click to copy ID": "Fes clic per copiar l'ID",
"Client ID": "",
"Client Secret": "",
"Client ID": "ID del client",
"Client Secret": "Secret del client",
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Permís d'escriptura al porta-retalls denegat. Comprova els ajustos de navegador per donar l'accés necessari.",
"Clone": "Clonar",
"Clone Chat": "Clonar el xat",
@@ -387,7 +387,7 @@
"Configure": "Configurar",
"Confirm": "Confirmar",
"Confirm Password": "Confirmar la contrasenya",
"Confirm Prompt from Embed": "",
"Confirm Prompt from Embed": "Confirmar el prompt des de la incrustació",
"Confirm your action": "Confirma la teva acció",
"Confirm your new password": "Confirma la teva nova contrasenya",
"Confirm Your Password": "Confirma la teva contrasenya",
@@ -396,7 +396,7 @@
"Connect to Open Terminal instances. All users will have access to file browsing and terminal tools through these servers.": "Connecta't a instàncies d'Open Terminal. Tots els usuaris tindran accés a la navegació de fitxers i a les eines del terminal a través d'aquests servidors.",
"Connect to your own OpenAI compatible API endpoints.": "Connecta als teus propis punts de connexió de l'API compatible amb OpenAI",
"Connect to your own OpenAPI compatible external tool servers.": "Connecta als teus propis servidors d'eines externs compatibles amb OpenAPI",
"Connected ({{type}})": "",
"Connected ({{type}})": "Connectat ({{type}})",
"Connection failed": "La connexió ha fallat",
"Connection successful": "Connexió correcta",
"Connection Type": "Tipus de connexió",
@@ -437,7 +437,7 @@
"Copying to clipboard was successful!": "La còpia al porta-retalls s'ha realitzat correctament",
"CORS must be properly configured by the provider to allow requests from Open WebUI.": "CORS ha de ser configurat correctament pel proveïdor per permetre les sol·licituds d'Open WebUI",
"Could not read file.": "No s'ha pogut llegir l'arxiu",
"CPU": "",
"CPU": "CPU",
"Create": "Crear",
"Create a knowledge base": "Crear una base de coneixement",
"Create a model": "Crear un model",
@@ -509,10 +509,10 @@
"Delete File": "Eliminar el fitxer",
"Delete folder?": "Eliminar la carpeta?",
"Delete function?": "Eliminar funció?",
"Delete Memory?": "",
"Delete Memory?": "Eliminar memòria?",
"Delete Message": "Eliminar el missatge",
"Delete message?": "Eliminar el missatge?",
"Delete Model": "Eliminar model",
"Delete Model": "Eliminar model?",
"Delete note?": "Eliminar la nota?",
"Delete prompt?": "Eliminar indicació?",
"Delete skill?": "Eliminar l'habilitat?",
@@ -523,7 +523,7 @@
"Deleted": "Eliminat",
"Deleted {{deleteModelTag}}": "S'ha eliminat {{deleteModelTag}}",
"Deleted {{name}}": "S'ha eliminat {{name}}",
"Deleted {{ok}} of {{total}} items": "",
"Deleted {{ok}} of {{total}} items": "S'han eliminat {{ok}} de {{total}} ítems",
"Deleted User": "Usuari eliminat",
"Deployment names are required for Azure OpenAI": "Els noms de desplegament són requerits per Azure OpenAI",
"Desc": "Descendent",
@@ -532,7 +532,7 @@
"Describe what changed...": "Descriu què ha canviat...",
"Describe your knowledge base and objectives": "Descriu la teva base de coneixement i objectius",
"Description": "Descripció",
"Deselect": "",
"Deselect": "Deseleccionar",
"Detect Artifacts Automatically": "Detectar automàticament els artefactes",
"Dictate": "Dictar",
"Didn't fully follow instructions": "No s'han seguit les instruccions completament",
@@ -795,8 +795,8 @@
"Enter Your Username": "Introdueix el teu nom d'usuari",
"Enter your webhook URL": "Introdueix la URL del webhook",
"Entra ID": "Introdueix l'ID",
"Environment Variables": "",
"Ephemeral": "",
"Environment Variables": "Variables d'entorn",
"Ephemeral": "Efímer",
"Error": "Error",
"ERROR": "ERROR",
"Error accessing directory": "Error en accedir al directori",
@@ -823,8 +823,8 @@
"Experimental": "Experimental",
"Explain": "Explicar",
"Explore the cosmos": "Explorar el cosmos",
"Explored": "",
"Exploring": "",
"Explored": "Explorat",
"Exploring": "Explorant",
"Export": "Exportar",
"Export All Archived Chats": "Exportar tots els xats arxivats",
"Export All Chats (All Users)": "Exportar tots els xats (Tots els usuaris)",
@@ -875,7 +875,7 @@
"Failed to save connections": "No s'han pogut desar les connexions",
"Failed to save conversation": "No s'ha pogut desar la conversa",
"Failed to save models configuration": "No s'ha pogut desar la configuració dels models",
"Failed to save policy: {{error}}": "",
"Failed to save policy: {{error}}": "No s'ha pogut desar la política: {{error}}",
"Failed to save terminal servers": "No s'han pogut desar els servidors de terminal",
"Failed to unshare chat.": "No s'ha pogut deixar de compartir el xat.",
"Failed to update settings": "No s'han pogut actualitzar les preferències",
@@ -891,7 +891,7 @@
"Feedback History": "Històric de comentaris",
"Feel free to add specific details": "Sent-te lliure d'afegir detalls específics",
"Female": "Dona",
"Fetch URL Content Length Limit": "",
"Fetch URL Content Length Limit": "Límit de longitud del contingut de l'URL",
"File": "Arxiu",
"File added successfully.": "L'arxiu s'ha afegit correctament.",
"File attached to chat": "L'arxiu s'ha adjuntat al xat",
@@ -946,7 +946,7 @@
"Format Lines": "Formatar les línies",
"Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.": "Formata les línies a la sortida. Per defecte, és Fals. Si es defineix com a Cert, les línies es formataran per detectar matemàtiques i estils en línia.",
"Formatting may be inconsistent from source.": "La formatació pot ser inconsistent amb l'origen",
"Forward": "",
"Forward": "Endavant",
"Forwards system user OAuth access token to authenticate": "Reenvia el testimoni d'accés OAuth de l'usuari del sistema per autenticar-se.",
"Forwards system user session credentials to authenticate": "Envia les credencials de l'usuari del sistema per autenticar",
"Full Context Mode": "Mode de context complert",
@@ -1034,7 +1034,7 @@
"ID": "ID",
"ID cannot contain \":\" or \"|\" characters": "L'ID no pot contenir caràcters \":\" ni \"|\"",
"ID copied to clipboard": "L'ID s'ha copiat al portaretalls",
"Idle Timeout": "",
"Idle Timeout": "Temps d'espera d'inactivitat",
"iframe Sandbox Allow Forms": "Permetre formularis sandbox iframe",
"iframe Sandbox Allow Same Origin": "Permetre same-origin sandbox iframe",
"Ignite curiosity": "Despertar la curiositat",
@@ -1205,7 +1205,7 @@
"Max Speakers": "Nombre màxim d'altaveus",
"Max Upload Count": "Nombre màxim de càrregues",
"Max Upload Size": "Mida màxima de càrrega",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "Caràcters màxims que es retornen de les URL recuperades. Deixa-ho en blanc si no hi ha límit.",
"Maximum number of files allowed per folder.": "Nombre màxim de fitxers permès per carpeta.",
"Maximum number of files per folder is {{max}}.": "El nombre màxim de fitxers per carpeta és {{max}}.",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es poden descarregar un màxim de 3 models simultàniament. Si us plau, prova-ho més tard.",
@@ -1237,7 +1237,7 @@
"Microsoft OneDrive": "Microsoft OneDrive",
"Microsoft OneDrive (personal)": "Microsoft OneDrive (personal)",
"Microsoft OneDrive (work/school)": "Microsoft OneDrive (feina/escola)",
"min": "",
"min": "mínim",
"MinerU": "MinerU",
"MinerU API Key required for Cloud API mode.": "És necessària la clau API de MinerU pel mode Cloud API",
"Mistral OCR": "Mistral OCR",
@@ -1343,7 +1343,7 @@
"No kernel": "No hi ha cap kernel",
"No knowledge bases found.": "No s'han trobat bases de coneixement.",
"No knowledge found": "No s'ha trobat Coneixement",
"No limit": "",
"No limit": "Sense límit",
"No memories to clear": "No hi ha memòries per netejar",
"No model IDs": "No hi ha IDs de model",
"No models available": "No hi ha models disponibles",
@@ -1387,7 +1387,7 @@
"November": "Novembre",
"OAuth": "OAuth",
"OAuth 2.1": "OAuth 2.1",
"OAuth 2.1 (Static)": "",
"OAuth 2.1 (Static)": "OAuth 2.1 (Estàtic)",
"OAuth ID": "ID OAuth",
"October": "Octubre",
"Off": "Desactivat",
@@ -1417,7 +1417,7 @@
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Ui! Estàs utilitzant un mètode no suportat (només frontend). Si us plau, serveix la WebUI des del backend.",
"Open file": "Obrir arxiu",
"Open in full screen": "Obrir en pantalla complerta",
"Open in new tab": "",
"Open in new tab": "Obrir en una nova pestanya",
"Open link": "Obrir l'enllaç",
"Open modal to configure connection": "Obre el modal per configurar la connexió",
"Open Modal To Manage Floating Quick Actions": "Obre el model per configurar les Accions ràpides flotants",
@@ -1478,7 +1478,7 @@
"Perplexity Model": "Model de Perplexity",
"Perplexity Search API URL": "URL API per a Perplexity Search",
"Perplexity Search Context Usage": "Utilització del context de cerca de Perplexity",
"Persistent": "",
"Persistent": "Persistent",
"Personalization": "Personalització",
"Pin": "Fixar",
"Pinned": "Fixat",
@@ -1498,7 +1498,7 @@
"Playwright Timeout (ms)": "Temps d'espera (ms) de Playwright",
"Playwright WebSocket URL": "URL del WebSocket de Playwright",
"Please carefully review the following warnings:": "Si us plau, revisa els següents avisos amb cura:",
"Please connect all required integrations before sending a message": "",
"Please connect all required integrations before sending a message": "Si us plau, connecta totes les integracions necessàries abans d'enviar un missatge.",
"Please do not close the settings page while loading the model.": "No tanquis la pàgina de configuració mentre carregues el model.",
"Please enter a message or attach a file.": "Introdueix un missatge o adjunta un arxiu",
"Please enter a prompt": "Si us plau, entra una indicació",
@@ -1507,7 +1507,7 @@
"Please enter a valid path": "Si us plau, entra un camí vàlid",
"Please enter a valid URL": "Si us plau, entra una URL vàlida",
"Please enter a valid URL.": "Si us plau, entra una URL vàlida.",
"Please enter Client ID and Client Secret": "",
"Please enter Client ID and Client Secret": "Si us plau, introdueix l'ID de client i el secret del client.",
"Please fill in all fields.": "Emplena tots els camps, si us plau.",
"Please register the OAuth client": "Si us plau, registra el client OAuth",
"Please save the connection to persist the OAuth client information and do not change the ID": "Si us plau, desa la connexió per conservar la informació del client OAuth i no canviïs l'ID.",
@@ -1517,7 +1517,7 @@
"Please select a valid JSON file": "Si us plau, selecciona un arxiu JSON vàlid",
"Please select at least one user for Direct Message channel.": "Selecciona com a mínim un usuari per al canal de missatge directe.",
"Please wait until all files are uploaded.": "Si us plau, espera fins que s'hagin carregat tots els fitxers.",
"Policy ID": "",
"Policy ID": "ID de política",
"Port": "Port",
"Ports": "Ports",
"Positive attitude": "Actitud positiva",
@@ -1554,8 +1554,8 @@
"Querying": "Consultes",
"Quick Actions": "Accions ràpides",
"RAG Template": "Plantilla RAG",
"Ran {{COUNT}} analyses": "",
"Ran {{COUNT}} analysis": "",
"Ran {{COUNT}} analyses": "S'han executat {{COUNT}} anàlisis",
"Ran {{COUNT}} analysis": "S'han executat {{COUNT}} anàlisis",
"Rate {{rating}} out of 10": "Nota {{rating} sobre 10",
"Rating": "Valoració",
"Re-rank models by topic similarity": "Reclassificar els models per similitud de temes",
@@ -1599,7 +1599,7 @@
"Remove image": "Eliminar imatge",
"Remove Model": "Eliminar el model",
"Rename": "Canviar el nom",
"Renamed to {{name}}": "",
"Renamed to {{name}}": "S'ha renombrat a {{name}}",
"Render Markdown in Previews": "Compila el Markdown a les previsualitzacions",
"Reorder Models": "Reordenar els models",
"Reply": "Respondre",
@@ -1666,7 +1666,7 @@
"Search Groups": "Cercar grups",
"Search In Models": "Cercar als models",
"Search Knowledge": "Cercar coneixement",
"Search Memories": "",
"Search Memories": "Cercar memòries",
"Search Models": "Cercar models",
"Search Notes": "Cercar notes",
"Search options": "Opcions de cerca",
@@ -1708,7 +1708,7 @@
"Select a theme": "Seleccionar un tema",
"Select a tool": "Seleccionar una eina",
"Select a voice": "Seleccionar una veu",
"Select All": "",
"Select All": "Seleccionar tot",
"Select an auth method": "Seleccionar un mètode d'autenticació",
"Select an embedding model engine": "Seleccionar un motor d'incrustació",
"Select an engine": "Seleccionar un motor",
@@ -1737,7 +1737,7 @@
"Serper API Key": "Clau API de Serper",
"Serply API Key": "Clau API de Serply",
"Serpstack API Key": "Clau API de Serpstack",
"Server connection failed": "",
"Server connection failed": "La connexió al servidor ha fallat",
"Server connection verified": "Connexió al servidor verificada",
"Session": "Sessió",
"Set as default": "Establir com a predeterminat",
@@ -1839,7 +1839,7 @@
"Stop Download": "Aturar la descàrrega",
"Stop Generating": "Aturar la generació",
"Stop Sequence": "Atura la seqüència",
"Storage": "",
"Storage": "Emmagatzematge",
"Stream Chat Response": "Fer streaming de la resposta del xat",
"Stream Delta Chunk Size": "Mida del fragment Delta del flux",
"Streamable HTTP": "HTTP en estríming",
@@ -1938,7 +1938,7 @@
"This will delete all models including custom models and cannot be undone.": "Això eliminarà tots els models incloent els personalitzats i no es pot desfer",
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Això restablirà la base de coneixement i sincronitzarà tots els fitxers. Vols continuar?",
"Thorough explanation": "Explicació en detall",
"Thought": "",
"Thought": "Pensament",
"Thought for {{DURATION}}": "He pensat durant {{DURATION}}",
"Thought for {{DURATION}} seconds": "He pensat durant {{DURATION}} segons",
"Thought for less than a second": "He pensat menys d'un segon",
@@ -1967,7 +1967,7 @@
"Today at {{LOCALIZED_TIME}}": "Avui a les {{LOCALIZED_TIME}}",
"Toggle {{COUNT}} sources": "Activa/Desactiva {{COUNT}} fonts",
"Toggle 1 source": "Activa/Desactiva 1 font",
"Toggle details": "",
"Toggle details": "Activar/Desactivar els detalls",
"Toggle Dictation": "Activa/Desactiva el dictat",
"Toggle Sidebar": "Activa/Desactiva la barra lateral",
"Toggle status history": "Activa/Desactiva l'estat de l'històric",
+35 -35
View File
@@ -129,7 +129,7 @@
"Allow File Upload": "Salli tiedostojen lataus",
"Allow Multiple Models in Chat": "Salli useampi malli keskustelussa",
"Allow non-local voices": "Salli ei-paikalliset äänet",
"Allow public write access": "",
"Allow public write access": "Salli julkinen kirjoitusoikeus",
"Allow Rate Response": "Salli viestien arviointi",
"Allow Regenerate Response": "Salli uudelleen regenerointi",
"Allow Sharing With Users": "Salli jakaminen käyttäjien kesken",
@@ -182,12 +182,12 @@
"Are you sure you want to archive all chats? This action cannot be undone.": "Haluatko varmasti arkistoida kaikki keskustelut? Tätä toimintoa ei voi peruuttaa.",
"Are you sure you want to clear all memories? This action cannot be undone.": "Haluatko varmasti tyhjentää kaikki muistot? Tätä toimintoa ei voi peruuttaa.",
"Are you sure you want to delete \"{{NAME}}\"?": "Haluatko varmasti poistaa \"{{NAME}}\"?",
"Are you sure you want to delete all chats? This action cannot be undone.": "Haluatko varamsti poistaa kaikki keskustelut? Tätä toimintoa ei voi peruuttaa.",
"Are you sure you want to delete all chats? This action cannot be undone.": "Haluatko varmasti poistaa kaikki keskustelut? Tätä toimintoa ei voi peruuttaa.",
"Are you sure you want to delete this channel?": "Haluatko varmasti poistaa tämän kanavan?",
"Are you sure you want to delete this connection? This action cannot be undone.": "",
"Are you sure you want to delete this memory? This action cannot be undone.": "",
"Are you sure you want to delete this connection? This action cannot be undone.": "Haluatko varmasti poistaa yhteyden? Tätä toimintoa ei voi peruuttaa.",
"Are you sure you want to delete this memory? This action cannot be undone.": "Haluatko varmasti poistaa muiston? Tätä toimintoa ei voi peruuttaa.",
"Are you sure you want to delete this message?": "Haluatko varmasti poistaa tämän viestin?",
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Haluatko varamsti poistaa tämän version? Alaversiot linkitetään uudelleen tämän version ylätason versioon.",
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Haluatko varmasti poistaa tämän version? Alaversiot linkitetään uudelleen tämän version ylätason versioon.",
"Are you sure you want to delete this?": "Haluatko varmasti poistää tämän?",
"Are you sure you want to unarchive all archived chats?": "Haluatko varmasti purkaa kaikkien arkistoitujen keskustelujen arkistoinnin?",
"Arena Models": "Arena-mallit",
@@ -331,7 +331,7 @@
"Click here to upload a workflow.json file.": "Klikkaa tästä ladataksesi workflow.json-tiedosto.",
"click here.": "klikkaa tästä.",
"Click on the user role button to change a user's role.": "Klikkaa käyttäjän roolipainiketta vaihtaaksesi käyttäjän roolia.",
"Click to connect": "",
"Click to connect": "Klikkaa yhdistääksesi",
"Click to copy ID": "Klikkaa kopioidaksesi ID",
"Client ID": "",
"Client Secret": "",
@@ -386,7 +386,7 @@
"Configure": "Määritä",
"Confirm": "Vahvista",
"Confirm Password": "Vahvista salasana",
"Confirm Prompt from Embed": "",
"Confirm Prompt from Embed": "Vahvista kehote upotuksesta",
"Confirm your action": "Vahvista toimintasi",
"Confirm your new password": "Vahvista uusi salasanasi",
"Confirm Your Password": "Vahvista salasanasi",
@@ -395,7 +395,7 @@
"Connect to Open Terminal instances. All users will have access to file browsing and terminal tools through these servers.": "Yhdistä Open Terminal -instansseihin. Kaikilla käyttäjillä on pääsy tiedostojen selaamiseen ja päätetyökaluihin näiden palvelimien kautta.",
"Connect to your own OpenAI compatible API endpoints.": "Yhdistä omat OpenAI yhteensopivat API päätepisteet.",
"Connect to your own OpenAPI compatible external tool servers.": "Yhdistä omat ulkopuoliset OpenAPI yhteensopivat työkalu palvelimet.",
"Connected ({{type}})": "",
"Connected ({{type}})": "Yhdistetty ({{type}})",
"Connection failed": "Yhteys epäonnistui",
"Connection successful": "Yhteys onnistui",
"Connection Type": "Yhteystyyppi",
@@ -508,7 +508,7 @@
"Delete File": "Poista tiedosto",
"Delete folder?": "Haluatko varmasti poistaa tämän kansion?",
"Delete function?": "Haluatko varmasti poistaa tämän toiminnon?",
"Delete Memory?": "",
"Delete Memory?": "Poista muisto?",
"Delete Message": "Poista viesti",
"Delete message?": "Poista viesti?",
"Delete Model": "Poista malli",
@@ -522,7 +522,7 @@
"Deleted": "Poistettu",
"Deleted {{deleteModelTag}}": "Poistettu {{deleteModelTag}}",
"Deleted {{name}}": "Poistettu {{nimi}}",
"Deleted {{ok}} of {{total}} items": "",
"Deleted {{ok}} of {{total}} items": "Poistettu {{ok}}/{{total}} kohdetta",
"Deleted User": "Käyttäjä poistettu",
"Deployment names are required for Azure OpenAI": "Azure OpenAI:lle vaaditaan käyttöönottojen nimet",
"Desc": "Laskeva",
@@ -531,7 +531,7 @@
"Describe what changed...": "Kuvaile mikä muuttui...",
"Describe your knowledge base and objectives": "Kuvaa tietokantasi ja tavoitteesi",
"Description": "Kuvaus",
"Deselect": "",
"Deselect": "Poista valinta",
"Detect Artifacts Automatically": "Tunnista artefaktit automaattisesti",
"Dictate": "Sanele",
"Didn't fully follow instructions": "Ei noudattanut ohjeita täysin",
@@ -794,7 +794,7 @@
"Enter Your Username": "Kirjoita käyttäjätunnuksesi",
"Enter your webhook URL": "Kirjoita webhook osoitteesi",
"Entra ID": "Entra ID",
"Environment Variables": "",
"Environment Variables": "Ympäristömuuttujat",
"Ephemeral": "",
"Error": "Virhe",
"ERROR": "VIRHE",
@@ -822,8 +822,8 @@
"Experimental": "Kokeellinen",
"Explain": "Selitä",
"Explore the cosmos": "Tutki avaruutta",
"Explored": "",
"Exploring": "",
"Explored": "Tutkittu",
"Exploring": "Tutkii",
"Export": "Vie",
"Export All Archived Chats": "Vie kaikki arkistoidut keskustelut",
"Export All Chats (All Users)": "Vie kaikki keskustelut (kaikki käyttäjät)",
@@ -874,7 +874,7 @@
"Failed to save connections": "Yhteyksien tallentaminen epäonnistui",
"Failed to save conversation": "Keskustelun tallentaminen epäonnistui",
"Failed to save models configuration": "Mallien määrityksen tallentaminen epäonnistui",
"Failed to save policy: {{error}}": "",
"Failed to save policy: {{error}}": "Käytännön tallentaminen epäonnistui: {{error}}",
"Failed to save terminal servers": "Päätepalvelimien tallennus epäonnistui",
"Failed to unshare chat.": "Jaon lopettaminen epäonnistui.",
"Failed to update settings": "Asetusten päivittäminen epäonnistui",
@@ -890,7 +890,7 @@
"Feedback History": "Palautehistoria",
"Feel free to add specific details": "Voit lisätä tarkempia tietoja",
"Female": "Nainen",
"Fetch URL Content Length Limit": "",
"Fetch URL Content Length Limit": "Noudetun URL-osoitteen sisällön pituusraja",
"File": "Tiedosto",
"File added successfully.": "Tiedosto lisätty onnistuneesti.",
"File attached to chat": "Tiedosto liitety keskusteluun",
@@ -945,7 +945,7 @@
"Format Lines": "Muotoile rivit",
"Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.": "Muotoile rivit. Oletusarvo on False. Jos arvo on True, rivit muotoillaan siten, että ne havaitsevat riviin liitetyn matematiikan ja tyylit.",
"Formatting may be inconsistent from source.": "Muotoilu voi poiketa alkuperäisestä.",
"Forward": "",
"Forward": "Eteenpäin",
"Forwards system user OAuth access token to authenticate": "Välittää järjestelmä käyttäjän OAuth tunniste todennuksessa",
"Forwards system user session credentials to authenticate": "Välittää järjestelmän käyttäjän istunnon tunnistetiedot todennusta varten",
"Full Context Mode": "Koko kontekstitila",
@@ -1033,7 +1033,7 @@
"ID": "Tunnus",
"ID cannot contain \":\" or \"|\" characters": "ID ei voi sisältää \":\" tai \"|\" kirjaimia",
"ID copied to clipboard": "ID kopioitu leikepöydälle",
"Idle Timeout": "",
"Idle Timeout": "Aikakatkaisu",
"iframe Sandbox Allow Forms": "Salli lomakkeet iframe hiekkalaatikossa",
"iframe Sandbox Allow Same Origin": "Salli iframe hiekkalaatikko samasta alkuperästä",
"Ignite curiosity": "Sytytä uteliaisuus",
@@ -1204,7 +1204,7 @@
"Max Speakers": "Puhujien enimmäismäärä",
"Max Upload Count": "Latausten enimmäismäärä",
"Max Upload Size": "Latausten enimmäiskoko",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "Maksimimerkkimäärä haetuista URL-osoitteista. Jätä tyhjäksi, jos et halua rajoitusta.",
"Maximum number of files allowed per folder.": "Kansiota kohden sallittujen tiedostojen enimmäismäärä.",
"Maximum number of files per folder is {{max}}.": "Tiedostojen enimmäismäärä kansiossa on {{max}}.",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Enintään 3 mallia voidaan ladata samanaikaisesti. Yritä myöhemmin uudelleen.",
@@ -1342,7 +1342,7 @@
"No kernel": "Ei kerneliä",
"No knowledge bases found.": "Tietokantoja ei löytynyt.",
"No knowledge found": "Tietoa ei löytynyt",
"No limit": "",
"No limit": "Ei rajoituksia",
"No memories to clear": "Ei muistia tyhjennettäväksi",
"No model IDs": "Ei mallitunnuksia",
"No models available": "Malleja ei saatavilla",
@@ -1386,7 +1386,7 @@
"November": "marraskuu",
"OAuth": "OAuth",
"OAuth 2.1": "OAuth 2.1",
"OAuth 2.1 (Static)": "",
"OAuth 2.1 (Static)": "OAuth 2.1 (Staattinen)",
"OAuth ID": "OAuth-tunnus",
"October": "lokakuu",
"Off": "Pois päältä",
@@ -1416,7 +1416,7 @@
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Hups! Käytät ei-tuettua menetelmää (vain frontend). Palvele WebUI:ta backendistä.",
"Open file": "Avaa tiedosto",
"Open in full screen": "Avaa koko näytön tilaan",
"Open in new tab": "",
"Open in new tab": "Avaa uusi välilehti",
"Open link": "Avaa linkki",
"Open modal to configure connection": "Avaa modaali yhteyden määrittämiseksi",
"Open Modal To Manage Floating Quick Actions": "Avaa modaali kelluvien pikatoimintojen hallitsemiseksi",
@@ -1424,7 +1424,7 @@
"Open Model Selector": "Avaa mallinvalitsin",
"Open Settings": "Avaa asetukset",
"Open Sidebar": "Avaa sivupalkki",
"Open Terminal": "Avaa pääte",
"Open Terminal": "Open Terminal",
"Open User Profile Menu": "Avaa käyttäjäprofiili ikkuna",
"Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI voi käyttää minkä tahansa OpenAPI-palvelimen tarjoamia työkaluja.",
"Open WebUI uses faster-whisper internally.": "Open WebUI käyttää faster-whisperia sisäisesti.",
@@ -1477,7 +1477,7 @@
"Perplexity Model": "Perplexity malli",
"Perplexity Search API URL": "Perplexity Search API verkko-osoite",
"Perplexity Search Context Usage": "Perplexity Search kontekstin käyttö",
"Persistent": "",
"Persistent": "Pysyvä",
"Personalization": "Personointi",
"Pin": "Kiinnitä",
"Pinned": "Kiinnitetty",
@@ -1497,7 +1497,7 @@
"Playwright Timeout (ms)": "Playwright aikakatkaisu (ms)",
"Playwright WebSocket URL": "Playwright WebSocket verkko-osoite",
"Please carefully review the following warnings:": "Tarkista huolellisesti seuraavat varoitukset:",
"Please connect all required integrations before sending a message": "",
"Please connect all required integrations before sending a message": "Yhdistä kaikki vaaditut integraatiot ennen viestin lähettämistä.",
"Please do not close the settings page while loading the model.": "Älä sulje asetussivua mallin latautuessa.",
"Please enter a message or attach a file.": "Kirjoita viesti tai liittä tiedosto.",
"Please enter a prompt": "Kirjoita kehote",
@@ -1506,7 +1506,7 @@
"Please enter a valid path": "Kirjoita kelvollinen polku",
"Please enter a valid URL": "Kirjoita kelvollinen verkko-osoite",
"Please enter a valid URL.": "Kirjoita kelvollinen verkko-osoite",
"Please enter Client ID and Client Secret": "",
"Please enter Client ID and Client Secret": "Kirjoita Client ID ja Client Secret",
"Please fill in all fields.": "Täytä kaikki kentät.",
"Please register the OAuth client": "Rekisteröi OAuth asiakasohjelma",
"Please save the connection to persist the OAuth client information and do not change the ID": "Tallenna yhteys, jotta OAuth-asiakastiedot säilyvät, äläkä muuta tunnusta.",
@@ -1516,7 +1516,7 @@
"Please select a valid JSON file": "Valitse kelvollinen JSON-tiedosto",
"Please select at least one user for Direct Message channel.": "Valitse vähintään yksi käyttäjä suoraviestikanavalle.",
"Please wait until all files are uploaded.": "Odota kunnes kaikki tiedostot ovat ladattu.",
"Policy ID": "",
"Policy ID": "Käytännön ID",
"Port": "Portti",
"Ports": "Portit",
"Positive attitude": "Positiivinen asenne",
@@ -1553,8 +1553,8 @@
"Querying": "Kysely",
"Quick Actions": "Pikatoiminnot",
"RAG Template": "RAG-kehote",
"Ran {{COUNT}} analyses": "",
"Ran {{COUNT}} analysis": "",
"Ran {{COUNT}} analyses": "Suoritettiin {{COUNT}} analyysiä",
"Ran {{COUNT}} analysis": "Suoritettiin {{COUNT}} analyysiä",
"Rate {{rating}} out of 10": "Arvostele {{rating}}/10",
"Rating": "Arviointi",
"Re-rank models by topic similarity": "Uudelleenjärjestä mallit aiheyhteyden mukaan",
@@ -1598,7 +1598,7 @@
"Remove image": "Poista kuva",
"Remove Model": "Poista malli",
"Rename": "Nimeä uudelleen",
"Renamed to {{name}}": "",
"Renamed to {{name}}": "Nimetty uudelleen {{name}}",
"Render Markdown in Previews": "Renderöi Markdown esikatseluissa",
"Reorder Models": "Uudelleenjärjestä malleja",
"Reply": "Vastaa",
@@ -1664,7 +1664,7 @@
"Search Groups": "Etsi ryhmiä",
"Search In Models": "Hae mallleista",
"Search Knowledge": "Hae tietämystä",
"Search Memories": "",
"Search Memories": "Hae muistoista",
"Search Models": "Hae malleja",
"Search Notes": "Hae muistiinpanoista",
"Search options": "Hakuvaihtoehdot",
@@ -1706,7 +1706,7 @@
"Select a theme": "Valitse teema",
"Select a tool": "Valitse työkalu",
"Select a voice": "Valitse ääni",
"Select All": "",
"Select All": "Valitse kaikki",
"Select an auth method": "Valitse kirjautumistapa",
"Select an embedding model engine": "Valitse upotusmallin moottori",
"Select an engine": "Valitse moottori",
@@ -1735,7 +1735,7 @@
"Serper API Key": "Serper API -avain",
"Serply API Key": "Serply API -avain",
"Serpstack API Key": "Serpstack API -avain",
"Server connection failed": "",
"Server connection failed": "Palvelinyhteys epäonnistui",
"Server connection verified": "Palvelinyhteys vahvistettu",
"Session": "Istunto",
"Set as default": "Aseta oletukseksi",
@@ -1936,7 +1936,7 @@
"This will delete all models including custom models and cannot be undone.": "Tämä poistaa kaikki mallit, mukaan lukien mukautetut mallit, eikä sitä voi peruuttaa.",
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Tämä nollaa tietokannan ja synkronoi kaikki tiedostot. Haluatko jatkaa?",
"Thorough explanation": "Perusteellinen selitys",
"Thought": "",
"Thought": "Ajatus",
"Thought for {{DURATION}}": "Ajatteli {{DURATION}}",
"Thought for {{DURATION}} seconds": "Ajatteli {{DURATION}} sekuntia",
"Thought for less than a second": "Ajatteli alle sekunnin",
@@ -1965,7 +1965,7 @@
"Today at {{LOCALIZED_TIME}}": "Tänään {{LOCALIZED_TIME}}",
"Toggle {{COUNT}} sources": "Näytä/piilota {{COUNT}} lähdettä",
"Toggle 1 source": "Näytä/piilota 1 lähde",
"Toggle details": "",
"Toggle details": "Näytä/piilota yksityiskohdat",
"Toggle Dictation": "Sanelu päälle/pois",
"Toggle Sidebar": "Näytä/piilota sivupalkki",
"Toggle status history": "Näytä/piilota tilahistoria",
+1 -1
View File
@@ -410,7 +410,7 @@
"Content Extraction Engine": "",
"Content lengths (character counts only)": "",
"Continue Response": "Tęsti atsakymą",
"Continue with {{provider}}": "Tęsti su {{tiekėju}}",
"Continue with {{provider}}": "Tęsti su {{provider}}",
"Continue with Email": "",
"Continue with LDAP": "",
"Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "",
+12 -12
View File
@@ -332,10 +332,10 @@
"Click here to upload a workflow.json file.": "Clique aqui para enviar um arquivo workflow.json.",
"click here.": "clique aqui.",
"Click on the user role button to change a user's role.": "Clique no botão de perfil do usuário para alterar o perfil de um usuário.",
"Click to connect": "",
"Click to connect": "Clique para conectar",
"Click to copy ID": "Clique para copiar o ID",
"Client ID": "",
"Client Secret": "",
"Client ID": "ID do Cliente",
"Client Secret": "Chave Secreta do Cliente",
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Permissão de escrita na área de transferência negada. Verifique as configurações do seu navegador para conceder o acesso necessário.",
"Clone": "Clonar",
"Clone Chat": "Clonar Chat",
@@ -823,8 +823,8 @@
"Experimental": "Experimental",
"Explain": "Explicar",
"Explore the cosmos": "Explorar o cosmos",
"Explored": "",
"Exploring": "",
"Explored": "Explorado",
"Exploring": "Explorando",
"Export": "Exportar",
"Export All Archived Chats": "Exportar todos os chats arquivados",
"Export All Chats (All Users)": "Exportar Todos os Chats (Todos os Usuários)",
@@ -1387,7 +1387,7 @@
"November": "Novembro",
"OAuth": "OAuth",
"OAuth 2.1": "OAuth 2.1",
"OAuth 2.1 (Static)": "",
"OAuth 2.1 (Static)": "OAuth 2.1 (Estático)",
"OAuth ID": "OAuth ID",
"October": "Outubro",
"Off": "Desligado",
@@ -1498,7 +1498,7 @@
"Playwright Timeout (ms)": "Tempo limite do Playwright (ms)",
"Playwright WebSocket URL": "URL do WebSocket do Playwright",
"Please carefully review the following warnings:": "Por favor, revise cuidadosamente os seguintes avisos:",
"Please connect all required integrations before sending a message": "",
"Please connect all required integrations before sending a message": "Conecte todas as integrações necessárias antes de enviar uma mensagem",
"Please do not close the settings page while loading the model.": "Não feche a página de configurações enquanto estiver carregando o modelo.",
"Please enter a message or attach a file.": "Por favor, insira uma mensagem ou anexe um arquivo.",
"Please enter a prompt": "Por favor, digite um prompt",
@@ -1507,7 +1507,7 @@
"Please enter a valid path": "Por favor, insira um caminho válido",
"Please enter a valid URL": "Por favor, insira uma URL válida",
"Please enter a valid URL.": "Por favor, insira uma URL válida",
"Please enter Client ID and Client Secret": "",
"Please enter Client ID and Client Secret": "Insira o ID do Cliente e a Chave Secreta do Cliente",
"Please fill in all fields.": "Por favor, preencha todos os campos.",
"Please register the OAuth client": "Por favor, registre o cliente OAuth",
"Please save the connection to persist the OAuth client information and do not change the ID": "Salve a conexão para persistir as informações do cliente OAuth e não altere o ID",
@@ -1554,8 +1554,8 @@
"Querying": "Consultando",
"Quick Actions": "Ações rápidas",
"RAG Template": "Modelo RAG",
"Ran {{COUNT}} analyses": "",
"Ran {{COUNT}} analysis": "",
"Ran {{COUNT}} analyses": "Executou {{COUNT}} análises",
"Ran {{COUNT}} analysis": "Executou {{COUNT}} análise",
"Rate {{rating}} out of 10": "Avaliar {{rating}} de 10",
"Rating": "Avaliação",
"Re-rank models by topic similarity": "Reclassificação de modelos por similaridade de tópico",
@@ -1938,7 +1938,7 @@
"This will delete all models including custom models and cannot be undone.": "Isto vai excluir todos os modelos, incluindo personalizados e não pode ser desfeito.",
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Esta ação resetará a base de conhecimento e sincronizará todos os arquivos. Deseja continuar?",
"Thorough explanation": "Explicação detalhada",
"Thought": "",
"Thought": "Pensamento",
"Thought for {{DURATION}}": "Pensado por {{DURATION}}",
"Thought for {{DURATION}} seconds": "Pensado por {{DURATION}} segundos",
"Thought for less than a second": "Pensou por menos de um segundo",
@@ -1967,7 +1967,7 @@
"Today at {{LOCALIZED_TIME}}": "Hoje às {{LOCALIZED_TIME}}",
"Toggle {{COUNT}} sources": "Alternar {{COUNT}} origens",
"Toggle 1 source": "Alternar 1 origem",
"Toggle details": "",
"Toggle details": "Alternar detalhes",
"Toggle Dictation": "Alternar Ditado",
"Toggle Sidebar": "Alternar barra lateral",
"Toggle status history": "Alternar histórico de status",
+67 -67
View File
@@ -11,13 +11,13 @@
"{{ models }}": "{{ models }}",
"{{COUNT}} Available Tools": "{{COUNT}} 个可用工具",
"{{COUNT}} characters": "{{COUNT}} 个字符",
"{{COUNT}} extracted lines": "已提取 {{COUNT}} 行",
"{{COUNT}} extracted lines": "已提取 {{COUNT}} 行文本",
"{{COUNT}} files": "{{COUNT}} 个文件",
"{{COUNT}} hidden lines": "{{COUNT}} 行被隐藏",
"{{COUNT}} hidden lines": "已隐藏 {{COUNT}} 行代码",
"{{COUNT}} members": "{{COUNT}} 位成员",
"{{COUNT}} Replies": "{{COUNT}} 条回复",
"{{COUNT}} Rows": "{{COUNT}} 行",
"{{count}} selected_other": "",
"{{count}} selected_other": "已选择 {{count}} 项",
"{{COUNT}} Sources": "{{COUNT}} 个引用来源",
"{{COUNT}} words": "{{COUNT}} 个字",
"{{COUNT}}d_time_ago": "{{COUNT}}天前",
@@ -35,7 +35,7 @@
"1 Source": "1 个引用来源",
"1m_time_ago": "刚刚",
"A collaboration channel where people join as members": "成员可加入的协作频道",
"A discussion channel where access is controlled by groups and permissions": "由权限组控制的讨论频道",
"A discussion channel where access is controlled by groups and permissions": "由用户组控制的讨论频道",
"A new version (v{{LATEST_VERSION}}) is now available.": "新版本(v{{LATEST_VERSION}})现已发布",
"A private conversation between you and selected users": "您与选定用户之间的私人对话",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "任务模型用于执行生成对话标题和联网搜索查询等任务",
@@ -65,7 +65,7 @@
"Add a tag": "添加标签",
"Add a tag...": "添加标签...",
"Add Access": "添加访问",
"Add Arena Model": "添加竞技场模型",
"Add Arena Model": "添加盲测模型",
"Add Connection": "添加连接",
"Add Content": "添加内容",
"Add content here": "在此添加内容",
@@ -86,7 +86,7 @@
"Add text content": "添加文本内容",
"Add to favorites": "添加到收藏",
"Add User": "添加用户",
"Add User Group": "添加权限组",
"Add User Group": "添加用户组",
"Add webpage": "添加网页",
"Add your Open Terminal URL and API key in Settings → Integrations.": "请到“设置 → 集成”中配置 Open Terminal 的地址和密钥。",
"Additional Config": "额外配置项",
@@ -128,7 +128,7 @@
"Allow File Upload": "允许上传文件",
"Allow Multiple Models in Chat": "允许在对话中使用多个模型",
"Allow non-local voices": "允许调用非本土音色",
"Allow public write access": "",
"Allow public write access": "允许公开写入",
"Allow Rate Response": "允许对回答进行评价",
"Allow Regenerate Response": "允许重新生成回答",
"Allow Sharing With Users": "允许分享给其他用户",
@@ -183,13 +183,13 @@
"Are you sure you want to delete \"{{NAME}}\"?": "您确认要删除“{{NAME}}”吗?",
"Are you sure you want to delete all chats? This action cannot be undone.": "您确认要删除所有对话吗?此操作无法撤销。",
"Are you sure you want to delete this channel?": "您确认要删除此频道吗?",
"Are you sure you want to delete this connection? This action cannot be undone.": "",
"Are you sure you want to delete this memory? This action cannot be undone.": "",
"Are you sure you want to delete this connection? This action cannot be undone.": "确定要删除此连接吗?此操作无法撤销。",
"Are you sure you want to delete this memory? This action cannot be undone.": "确定要删除这条记忆吗?此操作无法撤销。",
"Are you sure you want to delete this message?": "您确认要删除此消息吗?",
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "您确认要删除此版本吗?其子版本将重新链接到该版本的上一级。",
"Are you sure you want to delete this?": "确定要删除吗?",
"Are you sure you want to unarchive all archived chats?": "您确认要取消所有已归档的对话吗?",
"Arena Models": "启用竞技场匿名评价模型",
"Arena Models": "模型盲测",
"Artifacts": "产物",
"Asc": "升序",
"Ask": "提问",
@@ -330,10 +330,10 @@
"Click here to upload a workflow.json file.": "点击此处上传 workflow.json 文件",
"click here.": "点击此处",
"Click on the user role button to change a user's role.": "点击用户角色按钮以更改用户的角色",
"Click to connect": "",
"Click to copy ID": "点击复制 ID",
"Client ID": "",
"Client Secret": "",
"Click to connect": "点击以连接",
"Click to copy ID": "点击复制 ID",
"Client ID": "客户端 ID",
"Client Secret": "客户端密钥",
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "写入剪贴板时被拒绝。请检查浏览器设置,授予必要权限。",
"Clone": "复制",
"Clone Chat": "克隆对话",
@@ -385,7 +385,7 @@
"Configure": "配置",
"Confirm": "确认",
"Confirm Password": "确认密码",
"Confirm Prompt from Embed": "",
"Confirm Prompt from Embed": "确认嵌入提示词",
"Confirm your action": "确认要继续吗?",
"Confirm your new password": "确认新密码",
"Confirm Your Password": "确认您的密码",
@@ -394,7 +394,7 @@
"Connect to Open Terminal instances. All users will have access to file browsing and terminal tools through these servers.": "连接到 Open Terminal 实例后,所有用户将可以浏览服务器上的文件,并使用终端工具。",
"Connect to your own OpenAI compatible API endpoints.": "连接到符合 OpenAI 接口格式的接口",
"Connect to your own OpenAPI compatible external tool servers.": "连接到符合 OpenAPI 规范的外部工具服务器",
"Connected ({{type}})": "",
"Connected ({{type}})": "已连接({{type}}",
"Connection failed": "连接失败",
"Connection successful": "连接成功",
"Connection Type": "连接类型",
@@ -435,7 +435,7 @@
"Copying to clipboard was successful!": "成功复制到剪贴板!",
"CORS must be properly configured by the provider to allow requests from Open WebUI.": "为允许 Open WebUI 发出的请求,提供商必须正确配置 CORS",
"Could not read file.": "读取文件失败。",
"CPU": "",
"CPU": "CPU",
"Create": "创建",
"Create a knowledge base": "创建知识库",
"Create a model": "创建模型",
@@ -484,7 +484,7 @@
"Default description enabled": "默认描述已启用",
"Default Features": "默认功能",
"Default Filters": "默认过滤器",
"Default Group": "默认权限组",
"Default Group": "默认用户组",
"Default mode works with a wider range of models by calling tools once before execution. Native mode leverages the model's built-in tool-calling capabilities, but requires the model to inherently support this feature.": "“默认”模式会在请求模型前调用工具,因此能兼容更多模型。“原生”模式则依赖模型本身的工具调用能力,但需要模型本身支持该功能。",
"Default Model": "默认模型",
"Default model updated": "默认模型已更新",
@@ -507,7 +507,7 @@
"Delete File": "删除文件",
"Delete folder?": "要删除此分组吗?",
"Delete function?": "要删除此函数吗?",
"Delete Memory?": "",
"Delete Memory?": "要删除这条记忆吗?",
"Delete Message": "删除消息",
"Delete message?": "要删除此消息吗?",
"Delete Model": "删除模型",
@@ -521,7 +521,7 @@
"Deleted": "删除成功",
"Deleted {{deleteModelTag}}": "已删除 {{deleteModelTag}}",
"Deleted {{name}}": "已删除 {{name}}",
"Deleted {{ok}} of {{total}} items": "",
"Deleted {{ok}} of {{total}} items": "已删除 {{total}} 项中的 {{ok}} 项",
"Deleted User": "已删除用户",
"Deployment names are required for Azure OpenAI": "Azure OpenAI 需要部署名称",
"Desc": "降序",
@@ -530,7 +530,7 @@
"Describe what changed...": "描述变更内容…",
"Describe your knowledge base and objectives": "描述您的知识库和目标",
"Description": "描述",
"Deselect": "",
"Deselect": "取消选中",
"Detect Artifacts Automatically": "自动检测对话产物",
"Dictate": "语音输入",
"Didn't fully follow instructions": "没有完全遵循指令",
@@ -555,7 +555,7 @@
"Discover, download, and explore custom prompts": "发现、下载并探索更多自定义提示词",
"Discover, download, and explore custom tools": "发现、下载并探索更多自定义工具",
"Discover, download, and explore model presets": "发现、下载并探索更多模型预设",
"Discussion channel where access is based on groups and permissions": "由权限组控制的讨论频道",
"Discussion channel where access is based on groups and permissions": "由用户组控制的讨论频道",
"Display": "显示",
"Display chat title in tab": "在浏览器标签页中显示对话标题",
"Display Emoji in Call": "在通话中显示 Emoji",
@@ -591,7 +591,7 @@
"Download canceled": "下载已取消",
"Download Database": "下载数据库",
"Downloading stats...": "正在下载统计数据...",
"Draw": "平",
"Draw": "平",
"Drop any files here to upload": "拖拽文件至此上传",
"Drop files here": "请将文件拖到此处",
"Drop files here to upload": "将文件拖到此处即可上传",
@@ -620,7 +620,7 @@
"e.g., en-US,ja-JP (leave blank for auto-detect)": "例如:en-US,ja-JP(留空则自动检测)",
"e.g., westus (leave blank for eastus)": "例如:westus(留空则默认为 eastus",
"Edit": "编辑",
"Edit Arena Model": "编辑竞技场模型",
"Edit Arena Model": "编辑盲测模型",
"Edit Channel": "编辑频道",
"Edit Connection": "编辑连接",
"Edit Default Permissions": "编辑默认权限",
@@ -789,12 +789,12 @@
"Enter Your Name": "输入您的名称",
"Enter your new password": "输入您的新密码",
"Enter Your Password": "输入您的密码",
"Enter Your Role": "输入您的权限组",
"Enter Your Role": "输入您的用户组",
"Enter Your Username": "输入您的用户名",
"Enter your webhook URL": "输入您的 Webhook 链接",
"Entra ID": "Entra ID",
"Environment Variables": "",
"Ephemeral": "",
"Environment Variables": "环境变量",
"Ephemeral": "临时",
"Error": "错误",
"ERROR": "错误",
"Error accessing directory": "访问目录时出错",
@@ -805,7 +805,7 @@
"Error uploading file: {{error}}": "上传文件时出错:{{error}}",
"Error: A model with the ID '{{modelId}}' already exists. Please select a different ID to proceed.": "错误:ID 为“{{modelId}}”的模型已存在。请选择不同的模型 ID。",
"Error: Model ID cannot be empty. Please enter a valid ID to proceed.": "错误:模型 ID 不能为空。请输入有效的模型 ID。",
"Evaluations": "竞技场评估",
"Evaluations": "模型评价",
"Exa API Key": "Exa 接口密钥",
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "例如:(&(objectClass=inetOrgPerson)(uid=%s))",
"Example: ALL": "例如:ALL",
@@ -821,8 +821,8 @@
"Experimental": "实验性",
"Explain": "解释",
"Explore the cosmos": "探索星辰",
"Explored": "",
"Exploring": "",
"Explored": "已分析",
"Exploring": "分析中",
"Export": "导出",
"Export All Archived Chats": "导出所有已存档对话",
"Export All Chats (All Users)": "导出所有用户对话",
@@ -873,7 +873,7 @@
"Failed to save connections": "保存连接失败",
"Failed to save conversation": "保存对话失败",
"Failed to save models configuration": "保存模型配置失败",
"Failed to save policy: {{error}}": "",
"Failed to save policy: {{error}}": "保存策略失败:{{error}}",
"Failed to save terminal servers": "终端服务器保存失败",
"Failed to unshare chat.": "取消对话分享失败。",
"Failed to update settings": "更新设置失败",
@@ -889,7 +889,7 @@
"Feedback History": "历史反馈",
"Feel free to add specific details": "欢迎补充具体细节",
"Female": "女性",
"Fetch URL Content Length Limit": "",
"Fetch URL Content Length Limit": "URL 抓取内容长度上限",
"File": "文件",
"File added successfully.": "文件成功添加",
"File attached to chat": "文件已被添加到对话中",
@@ -944,7 +944,7 @@
"Format Lines": "行内容格式化",
"Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.": "对输出中的文本行进行格式处理。默认为 False。设置为 True 时,会对所有文本行的内容进行格式化,检测并识别行内的数学公式和样式。",
"Formatting may be inconsistent from source.": "格式可能会与原始文件不完全一致。",
"Forward": "",
"Forward": "前进",
"Forwards system user OAuth access token to authenticate": "转发用户的 OAuth 访问令牌(Access Token)以进行身份验证",
"Forwards system user session credentials to authenticate": "转发用户的会话凭证(Session Credentials)以进行身份验证",
"Full Context Mode": "完整上下文模式",
@@ -992,13 +992,13 @@
"Grid": "网格",
"Grokipedia": "Grokipedia",
"Group Channel": "群组频道",
"Group created successfully": "权限组创建成功",
"Group deleted successfully": "权限组删除成功",
"Group Description": "权限组描述",
"Group Name": "权限组名称",
"Group updated successfully": "权限组更新成功",
"groups": "权限组",
"Groups": "权限组",
"Group created successfully": "用户组创建成功",
"Group deleted successfully": "用户组删除成功",
"Group Description": "用户组描述",
"Group Name": "用户组名称",
"Group updated successfully": "用户组更新成功",
"groups": "用户组",
"Groups": "用户组",
"H1": "一级标题",
"H2": "二级标题",
"H3": "三级标题",
@@ -1032,7 +1032,7 @@
"ID": "ID",
"ID cannot contain \":\" or \"|\" characters": "ID 中不允许包含 “:” 或 “|” 字符",
"ID copied to clipboard": "已复制 ID 到剪贴板",
"Idle Timeout": "",
"Idle Timeout": "无操作超时时间",
"iframe Sandbox Allow Forms": "iframe 沙盒允许表单提交",
"iframe Sandbox Allow Same Origin": "iframe 沙盒允许同源访问",
"Ignite curiosity": "点燃求知",
@@ -1179,7 +1179,7 @@
"Local": "本地",
"Local Task Model": "本地任务模型",
"Location access not allowed": "不允许访问位置信息",
"Lost": "落败",
"Lost": "较差",
"Low": "低",
"LTR": "从左至右",
"Made by Open WebUI Community": "由 Open WebUI 社区开发",
@@ -1203,7 +1203,7 @@
"Max Speakers": "最大扬声器数量",
"Max Upload Count": "最大上传数量",
"Max Upload Size": "最大上传大小",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "从 URL 抓取内容时返回的最大字符数。留空表示不限制。",
"Maximum number of files allowed per folder.": "每个分组允许的最大文件数量。",
"Maximum number of files per folder is {{max}}.": "每个分组允许的最大文件数量为 {{max}}。",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可同时下载 3 个模型,请稍后重试。",
@@ -1235,7 +1235,7 @@
"Microsoft OneDrive": "Microsoft OneDrive",
"Microsoft OneDrive (personal)": "Microsoft OneDrive(个人账户)",
"Microsoft OneDrive (work/school)": "Microsoft OneDrive(工作或学校账户)",
"min": "",
"min": "分钟",
"MinerU": "MinerU",
"MinerU API Key required for Cloud API mode.": "使用 MinerU 云服务模式需要接口密钥。",
"Mistral OCR": "Mistral OCR",
@@ -1301,7 +1301,7 @@
"New File": "新建文件",
"New Folder": "创建分组",
"New Function": "新函数",
"New Group": "新建权限组",
"New Group": "新建用户组",
"New Knowledge": "创建知识库",
"New Model": "创建模型",
"New Note": "创建笔记",
@@ -1334,14 +1334,14 @@
"No files in this knowledge base.": "此知识库中没有文件。",
"No files yet. Upload files or run Python code to create them.": "暂无文件。请上传文件或运行 Python 代码以创建文件。",
"No functions found": "未找到函数",
"No groups found": "暂无权限组",
"No groups found": "暂无用户组",
"No history available": "暂无历史记录",
"No HTML, CSS, or JavaScript content found.": "未找到 HTML、CSS 或 JavaScript 内容。",
"No inference engine with management support found": "未找到支持管理的推理引擎",
"No kernel": "未找到内核",
"No knowledge bases found.": "未找到知识库",
"No knowledge found": "未找到知识",
"No limit": "",
"No limit": "无限制",
"No memories to clear": "记忆为空,无须清理",
"No model IDs": "没有模型 ID",
"No models available": "暂无可用模型",
@@ -1385,7 +1385,7 @@
"November": "十一月",
"OAuth": "OAuth",
"OAuth 2.1": "OAuth 2.1",
"OAuth 2.1 (Static)": "",
"OAuth 2.1 (Static)": "OAuth 2.1(静态)",
"OAuth ID": "OAuth ID",
"October": "十月",
"Off": "关闭",
@@ -1415,7 +1415,7 @@
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "糟糕!您正在使用不受支持的方法(仅运行前端服务)。请通过后端服务提供 WebUI。",
"Open file": "打开文件",
"Open in full screen": "全屏打开",
"Open in new tab": "",
"Open in new tab": "在新标签页中打开",
"Open link": "打开链接",
"Open modal to configure connection": "打开外部连接配置弹窗",
"Open Modal To Manage Floating Quick Actions": "管理快捷操作浮窗",
@@ -1476,7 +1476,7 @@
"Perplexity Model": "Perplexity 模型",
"Perplexity Search API URL": "Perplexity 搜索接口地址",
"Perplexity Search Context Usage": "Perplexity 搜索上下文用量",
"Persistent": "",
"Persistent": "持久化",
"Personalization": "个性化",
"Pin": "置顶",
"Pinned": "已置顶",
@@ -1496,7 +1496,7 @@
"Playwright Timeout (ms)": "Playwright 超时时间 (ms)",
"Playwright WebSocket URL": "Playwright WebSocket 地址",
"Please carefully review the following warnings:": "请仔细阅读以下警告信息:",
"Please connect all required integrations before sending a message": "",
"Please connect all required integrations before sending a message": "发送消息前,请先连接所有必需服务",
"Please do not close the settings page while loading the model.": "加载模型时请不要关闭设置页面",
"Please enter a message or attach a file.": "请输入内容或添加文件。",
"Please enter a prompt": "请输入提示词",
@@ -1505,7 +1505,7 @@
"Please enter a valid path": "请输入有效路径",
"Please enter a valid URL": "请输入有效的地址",
"Please enter a valid URL.": "请输入有效的地址。",
"Please enter Client ID and Client Secret": "",
"Please enter Client ID and Client Secret": "请输入客户端 ID 和客户端密钥",
"Please fill in all fields.": "请填写所有字段。",
"Please register the OAuth client": "请注册 OAuth 客户端",
"Please save the connection to persist the OAuth client information and do not change the ID": "请保存连接以保留 OAuth 客户端信息,并确保不要更改 ID",
@@ -1515,7 +1515,7 @@
"Please select a valid JSON file": "请选择合法的 JSON 文件",
"Please select at least one user for Direct Message channel.": "请至少选择一个用户以创建私聊频道。",
"Please wait until all files are uploaded.": "请等待所有文件上传完毕。",
"Policy ID": "",
"Policy ID": "策略 ID",
"Port": "端口",
"Ports": "端口",
"Positive attitude": "态度积极",
@@ -1552,8 +1552,8 @@
"Querying": "查询中",
"Quick Actions": "快捷操作",
"RAG Template": "RAG 提示词模板",
"Ran {{COUNT}} analyses": "",
"Ran {{COUNT}} analysis": "",
"Ran {{COUNT}} analyses": "已完成 {{COUNT}} 次分析",
"Ran {{COUNT}} analysis": "已完成 {{COUNT}} 次分析",
"Rate {{rating}} out of 10": "评分:{{rating}}/10",
"Rating": "评价",
"Re-rank models by topic similarity": "根据主题相似性对模型重新排名",
@@ -1597,7 +1597,7 @@
"Remove image": "移除图像",
"Remove Model": "移除模型",
"Rename": "重命名",
"Renamed to {{name}}": "",
"Renamed to {{name}}": "已重命名为 {{name}}",
"Render Markdown in Previews": "在文件和引用预览中渲染 Markdown",
"Reorder Models": "重新排序模型",
"Reply": "回复",
@@ -1659,10 +1659,10 @@
"search for shared chats": "搜索已共享的对话",
"search for tags": "搜索标签",
"Search Functions": "搜索函数",
"Search Groups": "搜索权限组",
"Search Groups": "搜索用户组",
"Search In Models": "搜索模型",
"Search Knowledge": "搜索知识",
"Search Memories": "",
"Search Memories": "搜索记忆",
"Search Models": "搜索模型",
"Search Notes": "搜索笔记",
"Search options": "搜索选项",
@@ -1692,7 +1692,7 @@
"Select a conversation to preview": "选择对话进行预览",
"Select a engine": "选择搜索引擎",
"Select a function": "选择函数",
"Select a group": "选择权限组",
"Select a group": "选择用户组",
"Select a language": "选择语言",
"Select a mode": "选择模式",
"Select a model": "选择模型",
@@ -1704,7 +1704,7 @@
"Select a theme": "选择主题",
"Select a tool": "选择工具",
"Select a voice": "选择声音",
"Select All": "",
"Select All": "全选",
"Select an auth method": "选择身份验证方式",
"Select an embedding model engine": "选择嵌入模型引擎",
"Select an engine": "选择引擎",
@@ -1733,7 +1733,7 @@
"Serper API Key": "Serper 接口密钥",
"Serply API Key": "Serply 接口密钥",
"Serpstack API Key": "Serpstack 接口密钥",
"Server connection failed": "",
"Server connection failed": "服务器连接失败",
"Server connection verified": "已验证服务器连接",
"Session": "用户会话(Session",
"Set as default": "设为默认",
@@ -1835,7 +1835,7 @@
"Stop Download": "停止下载",
"Stop Generating": "停止生成",
"Stop Sequence": "停止序列 (Stop Sequence)",
"Storage": "",
"Storage": "存储",
"Stream Chat Response": "流式对话响应 (Stream Chat Response)",
"Stream Delta Chunk Size": "流式增量输出的分块大小(Stream Delta Chunk Size",
"Streamable HTTP": "流式 HTTP",
@@ -1934,7 +1934,7 @@
"This will delete all models including custom models and cannot be undone.": "这将删除所有模型,包括自定义模型,且无法撤销。",
"This will reset the knowledge base and sync all files. Do you wish to continue?": "这将重置知识库并同步所有文件。确认继续?",
"Thorough explanation": "解释详尽",
"Thought": "",
"Thought": "思考过程",
"Thought for {{DURATION}}": "思考用时 {{DURATION}}",
"Thought for {{DURATION}} seconds": "思考用时 {{DURATION}} 秒",
"Thought for less than a second": "思考用时小于 1 秒",
@@ -1963,7 +1963,7 @@
"Today at {{LOCALIZED_TIME}}": "今天 {{LOCALIZED_TIME}}",
"Toggle {{COUNT}} sources": "展开/收起 {{COUNT}} 个来源",
"Toggle 1 source": "展开/收起 1 个来源",
"Toggle details": "",
"Toggle details": "展开/收起详情",
"Toggle Dictation": "切换为听写模式",
"Toggle Sidebar": "展开或收起侧边栏",
"Toggle status history": "展开/收起历史状态",
@@ -2050,7 +2050,7 @@
"Use '#' in the prompt input to load and include your knowledge.": "在输入框中输入 '#' 号可加载您需要的知识库内容",
"Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "使用 /v1/chat/completions 接口替换 /v1/audio/transcriptions 以提高准确性。",
"Use Chat Completions API": "使用 Chat Completions 接口",
"Use groups to organize your users and assign permissions.": "使用权限组来管理用户并分配权限。",
"Use groups to organize your users and assign permissions.": "使用用户组来管理用户并分配权限。",
"Use LLM": "使用大语言模型(LLM",
"Use no proxy to fetch page contents.": "不使用代理获取页面内容",
"Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "使用由 http_proxy 和 https_proxy 环境变量指定的代理获取页面内容",
@@ -2070,7 +2070,7 @@
"Uses OAuth 2.1 Dynamic Client Registration": "使用 OAuth 2.1 的动态客户端注册机制",
"Using Entire Document": "使用完整文档",
"Using Focused Retrieval": "使用聚焦检索",
"Using the default arena model with all models. Click the plus button to add custom models.": "竞技场模型默认使用所有模型。点击上方“+”按钮以添加自定义模型",
"Using the default arena model with all models. Click the plus button to add custom models.": "默认使用全部模型进行盲测。点击上方“+”添加自定义盲测模型",
"Valid time units:": "有效时间单位:",
"Validate certificate": "验证证书合法性",
"Valves": "配置项",
@@ -2131,7 +2131,7 @@
"Widescreen Mode": "宽屏模式",
"Width": "宽度",
"Wikipedia": "维基百科",
"Won": "获胜",
"Won": "更好",
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.": "与 top-k 配合使用。较高的值(例如 0.95)将产生更加多样化的文本,而较低的值(例如 0.5)将产生更加聚焦和保守的文本。",
"Workspace": "工作空间",
"Workspace Permissions": "工作空间权限",
+39 -39
View File
@@ -17,7 +17,7 @@
"{{COUNT}} members": "{{COUNT}} 位成員",
"{{COUNT}} Replies": "{{COUNT}} 回覆",
"{{COUNT}} Rows": "{{COUNT}} 行",
"{{count}} selected_other": "",
"{{count}} selected_other": "已選取 {{count}} 項",
"{{COUNT}} Sources": "{{COUNT}} 個來源",
"{{COUNT}} words": "{{COUNT}} 個詞",
"{{COUNT}}d_time_ago": "{{COUNT}} 天前",
@@ -128,7 +128,7 @@
"Allow File Upload": "允許上傳檔案",
"Allow Multiple Models in Chat": "允許在對話中使用多個模型",
"Allow non-local voices": "允許非本機語音",
"Allow public write access": "",
"Allow public write access": "允許公開寫入",
"Allow Rate Response": "允許為回應評分",
"Allow Regenerate Response": "允許重新產生回應",
"Allow Sharing With Users": "允許與其他使用者分享",
@@ -183,8 +183,8 @@
"Are you sure you want to delete \"{{NAME}}\"?": "您確定要刪除「{{NAME}}」嗎?",
"Are you sure you want to delete all chats? This action cannot be undone.": "您確定要刪除所有對話嗎?此操作無法復原。",
"Are you sure you want to delete this channel?": "您確定要刪除此頻道嗎?",
"Are you sure you want to delete this connection? This action cannot be undone.": "",
"Are you sure you want to delete this memory? This action cannot be undone.": "",
"Are you sure you want to delete this connection? This action cannot be undone.": "確定要刪除此連線嗎?此操作無法復原。",
"Are you sure you want to delete this memory? This action cannot be undone.": "確定要刪除這筆記憶嗎?此操作無法復原。",
"Are you sure you want to delete this message?": "您確定要刪除此訊息嗎?",
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "您確定要刪除此版本嗎?子版本將重新連結至上一層版本。",
"Are you sure you want to delete this?": "確定要刪除嗎?",
@@ -330,10 +330,10 @@
"Click here to upload a workflow.json file.": "點選此處上傳 workflow.json 檔案。",
"click here.": "點選此處。",
"Click on the user role button to change a user's role.": "點選使用者角色按鈕變更使用者的角色。",
"Click to connect": "",
"Click to connect": "點選以連線",
"Click to copy ID": "點擊複製 ID",
"Client ID": "",
"Client Secret": "",
"Client ID": "用戶端 ID",
"Client Secret": "用戶端金鑰",
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "剪貼簿寫入權限遭拒。請檢查您的瀏覽器設定,授予必要的存取權限。",
"Clone": "複製",
"Clone Chat": "複製對話",
@@ -385,7 +385,7 @@
"Configure": "設定",
"Confirm": "確認",
"Confirm Password": "確認密碼",
"Confirm Prompt from Embed": "",
"Confirm Prompt from Embed": "確認嵌入提示詞",
"Confirm your action": "確認您的操作",
"Confirm your new password": "確認您的新密碼",
"Confirm Your Password": "確認您的密碼",
@@ -394,7 +394,7 @@
"Connect to Open Terminal instances. All users will have access to file browsing and terminal tools through these servers.": "連接到 Open Terminal 實例後,所有使用者將可瀏覽伺服器上的檔案,並使用終端工具。",
"Connect to your own OpenAI compatible API endpoints.": "連線至您自有或其他與 OpenAI API 相容的端點。",
"Connect to your own OpenAPI compatible external tool servers.": "連線至您自有或其他與 OpenAPI 相容的外部工具伺服器。",
"Connected ({{type}})": "",
"Connected ({{type}})": "已連線({{type}}",
"Connection failed": "連線失敗",
"Connection successful": "連線成功",
"Connection Type": "連線類型",
@@ -435,7 +435,7 @@
"Copying to clipboard was successful!": "成功複製到剪貼簿!",
"CORS must be properly configured by the provider to allow requests from Open WebUI.": "CORS 必須由供應商正確設定,以允許來自 Open WebUI 的請求。",
"Could not read file.": "無法讀取檔案。",
"CPU": "",
"CPU": "CPU",
"Create": "建立",
"Create a knowledge base": "建立知識",
"Create a model": "建立模型",
@@ -507,7 +507,7 @@
"Delete File": "刪除檔案",
"Delete folder?": "刪除資料夾?",
"Delete function?": "刪除函式?",
"Delete Memory?": "",
"Delete Memory?": "要刪除這筆記憶嗎?",
"Delete Message": "刪除訊息",
"Delete message?": "刪除訊息?",
"Delete Model": "刪除模型",
@@ -521,7 +521,7 @@
"Deleted": "刪除成功",
"Deleted {{deleteModelTag}}": "已刪除 {{deleteModelTag}}",
"Deleted {{name}}": "已刪除 {{name}}",
"Deleted {{ok}} of {{total}} items": "",
"Deleted {{ok}} of {{total}} items": "已刪除 {{total}} 項中的 {{ok}} 項",
"Deleted User": "已刪除的使用者",
"Deployment names are required for Azure OpenAI": "需要提供 Azure OpenAI 部署名稱",
"Desc": "降序",
@@ -530,7 +530,7 @@
"Describe what changed...": "描述變更內容…",
"Describe your knowledge base and objectives": "描述您的知識庫和目標",
"Description": "描述",
"Deselect": "",
"Deselect": "取消選取",
"Detect Artifacts Automatically": "自動偵測對話產物",
"Dictate": "語音輸入",
"Didn't fully follow instructions": "未完全遵循指示",
@@ -793,8 +793,8 @@
"Enter Your Username": "輸入您的使用者名稱",
"Enter your webhook URL": "輸入您的 webhook URL",
"Entra ID": "Entra ID",
"Environment Variables": "",
"Ephemeral": "",
"Environment Variables": "環境變數",
"Ephemeral": "暫時性",
"Error": "錯誤",
"ERROR": "錯誤",
"Error accessing directory": "存取目錄時發生錯誤",
@@ -821,8 +821,8 @@
"Experimental": "實驗性功能",
"Explain": "解釋",
"Explore the cosmos": "探索宇宙",
"Explored": "",
"Exploring": "",
"Explored": "已分析",
"Exploring": "分析中",
"Export": "匯出",
"Export All Archived Chats": "匯出所有已封存的對話",
"Export All Chats (All Users)": "匯出所有對話紀錄(所有使用者)",
@@ -873,7 +873,7 @@
"Failed to save connections": "儲存連線失敗",
"Failed to save conversation": "儲存對話失敗",
"Failed to save models configuration": "儲存模型設定失敗",
"Failed to save policy: {{error}}": "",
"Failed to save policy: {{error}}": "儲存策略失敗:{{error}}",
"Failed to save terminal servers": "終端伺服器儲存失敗",
"Failed to unshare chat.": "取消分享對話失敗。",
"Failed to update settings": "更新設定失敗",
@@ -889,7 +889,7 @@
"Feedback History": "回饋歷史",
"Feel free to add specific details": "歡迎自由新增特定細節",
"Female": "女性",
"Fetch URL Content Length Limit": "",
"Fetch URL Content Length Limit": "URL 擷取內容長度上限",
"File": "檔案",
"File added successfully.": "成功新增檔案。",
"File attached to chat": "檔案已加入對話中",
@@ -944,7 +944,7 @@
"Format Lines": "行內容格式化",
"Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.": "對輸出中的文字行進行格式處理。預設為 False。設定為 True 時,將會格式化這些文字行,以偵測並識別行內數學公式和樣式。",
"Formatting may be inconsistent from source.": "可能與原始格式不完全一致。",
"Forward": "",
"Forward": "前進",
"Forwards system user OAuth access token to authenticate": "轉發使用者 OAuth 存取權杖(Access Token)以進行驗證",
"Forwards system user session credentials to authenticate": "轉發使用者工作階段憑證(Session Credentials)以進行驗證",
"Full Context Mode": "完整上下文模式",
@@ -1032,7 +1032,7 @@
"ID": "ID",
"ID cannot contain \":\" or \"|\" characters": "ID 不能包含 \":\" 或 \"|\" 字元",
"ID copied to clipboard": "ID 已複製到剪貼簿",
"Idle Timeout": "",
"Idle Timeout": "閒置逾時時間",
"iframe Sandbox Allow Forms": "iframe 沙盒允許表單",
"iframe Sandbox Allow Same Origin": "iframe 沙盒允許同源",
"Ignite curiosity": "點燃好奇心",
@@ -1203,7 +1203,7 @@
"Max Speakers": "最大發言者數量",
"Max Upload Count": "最大上傳數量",
"Max Upload Size": "最大上傳大小",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "",
"Maximum characters to return from fetched URLs. Leave empty for no limit.": "從 URL 擷取內容時可回傳的最大字元數。留空表示無限制。",
"Maximum number of files allowed per folder.": "每個分組允許的最大檔案數量。",
"Maximum number of files per folder is {{max}}.": "每個分組允許的最大檔案數量為 {{max}}。",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多同時下載 3 個模型。請稍後再試。",
@@ -1235,7 +1235,7 @@
"Microsoft OneDrive": "Microsoft OneDrive",
"Microsoft OneDrive (personal)": "Microsoft OneDrive(個人版)",
"Microsoft OneDrive (work/school)": "Microsoft OneDrive(公司版/學校版)",
"min": "",
"min": "分鐘",
"MinerU": "MinerU",
"MinerU API Key required for Cloud API mode.": "使用 MinerU 雲端服務模式需要 API 金鑰。",
"Mistral OCR": "Mistral OCR",
@@ -1341,7 +1341,7 @@
"No kernel": "無核心",
"No knowledge bases found.": "未找到知識庫",
"No knowledge found": "未找到知識",
"No limit": "",
"No limit": "無限制",
"No memories to clear": "沒有記憶可清除",
"No model IDs": "沒有模型 ID",
"No models available": "暫無可用模型",
@@ -1385,7 +1385,7 @@
"November": "11 月",
"OAuth": "OAuth",
"OAuth 2.1": "OAuth 2.1",
"OAuth 2.1 (Static)": "",
"OAuth 2.1 (Static)": "OAuth 2.1(靜態)",
"OAuth ID": "OAuth ID",
"October": "10 月",
"Off": "關閉",
@@ -1415,7 +1415,7 @@
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "哎呀!您使用了不支援的方法(僅限前端)。請從後端提供 WebUI。",
"Open file": "開啟檔案",
"Open in full screen": "全螢幕開啟",
"Open in new tab": "",
"Open in new tab": "在新分頁中開啟",
"Open link": "開啟連結",
"Open modal to configure connection": "開啟外部連線設定彈出視窗",
"Open Modal To Manage Floating Quick Actions": "開啟管理浮動快速操作的彈出視窗",
@@ -1476,7 +1476,7 @@
"Perplexity Model": "Perplexity 模型",
"Perplexity Search API URL": "Perplexity 搜尋 API URL",
"Perplexity Search Context Usage": "Perplexity 搜尋上下文使用量",
"Persistent": "",
"Persistent": "持久性",
"Personalization": "個人化",
"Pin": "釘選",
"Pinned": "已釘選",
@@ -1496,7 +1496,7 @@
"Playwright Timeout (ms)": "Playwright 逾時時間(毫秒)",
"Playwright WebSocket URL": "Playwright WebSocket URL",
"Please carefully review the following warnings:": "請仔細閱讀以下警告:",
"Please connect all required integrations before sending a message": "",
"Please connect all required integrations before sending a message": "傳送訊息前,請先連線所有必要的整合服務",
"Please do not close the settings page while loading the model.": "載入模型時,請勿關閉設定頁面。",
"Please enter a message or attach a file.": "請輸入訊息或附加檔案。",
"Please enter a prompt": "請輸入提示詞",
@@ -1505,7 +1505,7 @@
"Please enter a valid path": "請輸入有效路徑",
"Please enter a valid URL": "請輸入有效 URL",
"Please enter a valid URL.": "請輸入有效的 URL。",
"Please enter Client ID and Client Secret": "",
"Please enter Client ID and Client Secret": "請輸入用戶端 ID 與用戶端密鑰",
"Please fill in all fields.": "請填寫所有欄位。",
"Please register the OAuth client": "請註冊 OAuth 用戶端",
"Please save the connection to persist the OAuth client information and do not change the ID": "請儲存連線以保存 OAuth 用戶端資訊,且勿更改 ID",
@@ -1515,7 +1515,7 @@
"Please select a valid JSON file": "請選擇有效的 JSON 檔案",
"Please select at least one user for Direct Message channel.": "請至少選擇一位使用者以建立直接訊息頻道。",
"Please wait until all files are uploaded.": "請等待所有檔案上傳完畢。",
"Policy ID": "",
"Policy ID": "策略 ID",
"Port": "連接埠",
"Ports": "連接埠",
"Positive attitude": "積極的態度",
@@ -1552,8 +1552,8 @@
"Querying": "查詢中",
"Quick Actions": "快速操作",
"RAG Template": "RAG 範本",
"Ran {{COUNT}} analyses": "",
"Ran {{COUNT}} analysis": "",
"Ran {{COUNT}} analyses": "已完成 {{COUNT}} 次分析",
"Ran {{COUNT}} analysis": "已完成 {{COUNT}} 次分析",
"Rate {{rating}} out of 10": "評分:{{rating}}/10",
"Rating": "評分",
"Re-rank models by topic similarity": "根據主題相似度重新排序模型",
@@ -1597,7 +1597,7 @@
"Remove image": "移除圖片",
"Remove Model": "移除模型",
"Rename": "重新命名",
"Renamed to {{name}}": "",
"Renamed to {{name}}": "已重新命名為 {{name}}",
"Render Markdown in Previews": "在檔案與引用預覽中轉譯 Markdown",
"Reorder Models": "重新排序模型",
"Reply": "回覆",
@@ -1662,7 +1662,7 @@
"Search Groups": "搜尋權限群組",
"Search In Models": "在模型中搜尋",
"Search Knowledge": "搜尋知識庫",
"Search Memories": "",
"Search Memories": "搜尋記憶",
"Search Models": "搜尋模型",
"Search Notes": "搜尋筆記",
"Search options": "搜尋選項",
@@ -1704,7 +1704,7 @@
"Select a theme": "選擇主題",
"Select a tool": "選擇工具",
"Select a voice": "選擇語音",
"Select All": "",
"Select All": "全選",
"Select an auth method": "選擇驗證方式",
"Select an embedding model engine": "選擇嵌入模型引擎",
"Select an engine": "選擇引擎",
@@ -1733,7 +1733,7 @@
"Serper API Key": "Serper API 金鑰",
"Serply API Key": "Serply API 金鑰",
"Serpstack API Key": "Serpstack API 金鑰",
"Server connection failed": "",
"Server connection failed": "伺服器連線失敗",
"Server connection verified": "伺服器連線已驗證",
"Session": "Session",
"Set as default": "設為預設",
@@ -1835,7 +1835,7 @@
"Stop Download": "停止下載",
"Stop Generating": "停止產生",
"Stop Sequence": "停止序列",
"Storage": "",
"Storage": "儲存空間",
"Stream Chat Response": "串流式對話回應",
"Stream Delta Chunk Size": "串流增量輸出的分塊大小(Stream Delta Chunk Size",
"Streamable HTTP": "串流 HTTP",
@@ -1934,7 +1934,7 @@
"This will delete all models including custom models and cannot be undone.": "這將刪除所有模型,包括自訂模型,且無法復原。",
"This will reset the knowledge base and sync all files. Do you wish to continue?": "這將重設知識庫並同步所有檔案。您確定要繼續嗎?",
"Thorough explanation": "詳細解釋",
"Thought": "",
"Thought": "思考過程",
"Thought for {{DURATION}}": "思考時間 {{DURATION}}",
"Thought for {{DURATION}} seconds": "思考時間 {{DURATION}} 秒",
"Thought for less than a second": "思考用時小於 1 秒",
@@ -1963,7 +1963,7 @@
"Today at {{LOCALIZED_TIME}}": "今天 {{LOCALIZED_TIME}}",
"Toggle {{COUNT}} sources": "展開/收合 {{COUNT}} 個來源",
"Toggle 1 source": "展開/收合 1 個來源",
"Toggle details": "",
"Toggle details": "展開/收合詳細資訊",
"Toggle Dictation": "切換聽寫模式",
"Toggle Sidebar": "切換側邊欄",
"Toggle status history": "展開/收合歷史狀態",