diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ec5e0518..7d2dde734 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ 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.2.3] - 2024-06-03 + +### Added + +- **📁 Export Chat as JSON**: You can now export individual chats as JSON files from the navbar menu by navigating to 'Download > Export Chat'. This makes sharing specific conversations easier. +- **✏️ Edit Titles with Double Click**: Double-click on titles to rename them quickly and efficiently. +- **🧩 Batch Multiple Embeddings**: Introduced 'RAG_EMBEDDING_OPENAI_BATCH_SIZE' to process multiple embeddings in a batch, enhancing performance for large datasets. +- **🌍 Improved Translations**: Enhanced the translation quality across various languages for a better user experience. + +### Fixed + +- **🛠️ Modelfile Migration Script**: Fixed an issue where the modelfile migration script would fail if an invalid modelfile was encountered. +- **💬 Zhuyin Input Method on Mac**: Resolved an issue where using the Zhuyin input method in the Web UI on a Mac caused text to send immediately upon pressing the enter key, leading to incorrect input. +- **🔊 Local TTS Voice Selection**: Fixed the issue where the selected local Text-to-Speech (TTS) voice was not being displayed in settings. + ## [0.2.2] - 2024-06-02 ### Added diff --git a/backend/apps/rag/search/searxng.py b/backend/apps/rag/search/searxng.py index 477d95c3f..24f9985a9 100644 --- a/backend/apps/rag/search/searxng.py +++ b/backend/apps/rag/search/searxng.py @@ -1,7 +1,8 @@ import logging - import requests +from typing import List + from apps.rag.search.main import SearchResult from config import SRC_LOG_LEVELS @@ -9,20 +10,52 @@ log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["RAG"]) -def search_searxng(query_url: str, query: str, count: int) -> list[SearchResult]: - """Search a SearXNG instance for a query and return the results as a list of SearchResult objects. +def search_searxng(query_url: str, query: str, count: int, **kwargs) -> List[SearchResult]: + """ + Search a SearXNG instance for a given query and return the results as a list of SearchResult objects. + + The function allows passing additional parameters such as language or time_range to tailor the search result. Args: - query_url (str): The URL of the SearXNG instance to search. Must contain "" as a placeholder - query (str): The query to search for + query_url (str): The base URL of the SearXNG server with a placeholder for the query "". + query (str): The search term or question to find in the SearXNG database. + count (int): The maximum number of results to retrieve from the search. + + Keyword Args: + language (str): Language filter for the search results; e.g., "en-US". Defaults to an empty string. + time_range (str): Time range for filtering results by date; e.g., "2023-04-05..today" or "all-time". Defaults to ''. + categories: (Optional[List[str]]): Specific categories within which the search should be performed, defaulting to an empty string if not provided. + + Returns: + List[SearchResult]: A list of SearchResults sorted by relevance score in descending order. + + Raise: + requests.exceptions.RequestException: If a request error occurs during the search process. """ - url = query_url.replace("", query) - if "&format=json" not in url: - url += "&format=json" - log.debug(f"searching {url}") + + # Default values for optional parameters are provided as empty strings or None when not specified. + language = kwargs.get('language', 'en-US') + time_range = kwargs.get('time_range', '') + categories = ''.join(kwargs.get('categories', [])) - r = requests.get( - url, + params = { + "q": query, + "format": "json", + "pageno": 1, + "results_per_page": count, + 'language': language, + 'time_range': time_range, + 'engines': '', + 'categories': categories, + 'theme': 'simple', + 'image_proxy': 0 + + } + + log.debug(f"searching {query_url}") + + response = requests.get( + query_url, headers={ "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", "Accept": "text/html", @@ -30,15 +63,17 @@ def search_searxng(query_url: str, query: str, count: int) -> list[SearchResult] "Accept-Language": "en-US,en;q=0.5", "Connection": "keep-alive", }, + params=params, ) - r.raise_for_status() - json_response = r.json() + response.raise_for_status() # Raise an exception for HTTP errors. + + json_response = response.json() results = json_response.get("results", []) sorted_results = sorted(results, key=lambda x: x.get("score", 0), reverse=True) return [ SearchResult( link=result["url"], title=result.get("title"), snippet=result.get("content") ) - for result in sorted_results[:count] + for result in sorted_results ] diff --git a/backend/utils/misc.py b/backend/utils/misc.py index fca941263..9069857b7 100644 --- a/backend/utils/misc.py +++ b/backend/utils/misc.py @@ -123,11 +123,25 @@ def parse_ollama_modelfile(model_text): "repeat_penalty": float, "temperature": float, "seed": int, - "stop": str, "tfs_z": float, "num_predict": int, "top_k": int, "top_p": float, + "num_keep": int, + "typical_p": float, + "presence_penalty": float, + "frequency_penalty": float, + "penalize_newline": bool, + "numa": bool, + "num_batch": int, + "num_gpu": int, + "main_gpu": int, + "low_vram": bool, + "f16_kv": bool, + "vocab_only": bool, + "use_mmap": bool, + "use_mlock": bool, + "num_thread": int, } data = {"base_model_id": None, "params": {}} @@ -156,10 +170,18 @@ def parse_ollama_modelfile(model_text): param_match = re.search(rf"PARAMETER {param} (.+)", model_text, re.IGNORECASE) if param_match: value = param_match.group(1) - if param_type == int: - value = int(value) - elif param_type == float: - value = float(value) + + try: + if param_type == int: + value = int(value) + elif param_type == float: + value = float(value) + elif param_type == bool: + value = value.lower() == "true" + except Exception as e: + print(e) + continue + data["params"][param] = value # Parse adapter diff --git a/package-lock.json b/package-lock.json index d7c85fce4..a91faa0f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "open-webui", - "version": "0.2.2", + "version": "0.2.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "open-webui", - "version": "0.2.2", + "version": "0.2.3", "dependencies": { "@pyscript/core": "^0.4.32", "@sveltejs/adapter-node": "^1.3.1", diff --git a/package.json b/package.json index 95b542d07..f3e905ad3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "open-webui", - "version": "0.2.2", + "version": "0.2.3", "private": true, "scripts": { "dev": "npm run pyodide:fetch && vite dev --host", diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index bc10a6638..b43218942 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -810,10 +810,7 @@ ? $i18n.t('Listening...') : $i18n.t('Send a Message')} bind:value={prompt} - on:keypress={(e) => {}} - on:keydown={async (e) => { - // Check if the device is not a mobile device or if it is a mobile device, check if it is not a touch device - // This is to prevent the Enter key from submitting the prompt on mobile devices + on:keypress={(e) => { if ( !$mobile || !( @@ -822,28 +819,18 @@ navigator.msMaxTouchPoints > 0 ) ) { - // Check if Enter is pressed - // Check if Shift key is not pressed + // Prevent Enter key from creating a new line if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); } - const commandOptionButton = [ - ...document.getElementsByClassName('selected-command-option-button') - ]?.at(-1); - - if (!commandOptionButton) { - if (e.key === 'Enter' && !e.shiftKey && prompt !== '') { - submitPrompt(prompt, user); - return; - } - - if (e.key === 'Enter' && e.shiftKey && prompt !== '') { - return; - } + // Submit the prompt when Enter key is pressed + if (prompt !== '' && e.key === 'Enter' && !e.shiftKey) { + submitPrompt(prompt, user); } } - + }} + on:keydown={async (e) => { const isCtrlPressed = e.ctrlKey || e.metaKey; // metaKey is for Cmd key on Mac // Check if Ctrl + R is pressed @@ -904,7 +891,9 @@ ...document.getElementsByClassName('selected-command-option-button') ]?.at(-1); - if (commandOptionButton) { + if (e.shiftKey) { + prompt = `${prompt}\n`; + } else if (commandOptionButton) { commandOptionButton?.click(); } else { document.getElementById('send-message-button')?.click(); diff --git a/src/lib/components/chat/Settings/Audio.svelte b/src/lib/components/chat/Settings/Audio.svelte index 007c85c78..86df4e949 100644 --- a/src/lib/components/chat/Settings/Audio.svelte +++ b/src/lib/components/chat/Settings/Audio.svelte @@ -3,6 +3,7 @@ import { user, settings } from '$lib/stores'; import { createEventDispatcher, onMount, getContext } from 'svelte'; import { toast } from 'svelte-sonner'; + import Switch from '$lib/components/common/Switch.svelte'; const dispatch = createEventDispatcher(); const i18n = getContext('i18n'); @@ -13,6 +14,7 @@ let OpenAIUrl = ''; let OpenAIKey = ''; + let OpenAISpeaker = ''; let STTEngines = ['', 'openai']; let STTEngine = ''; @@ -20,6 +22,7 @@ let conversationMode = false; let speechAutoSend = false; let responseAutoPlayback = false; + let nonLocalVoices = false; let TTSEngines = ['', 'openai']; let TTSEngine = ''; @@ -86,14 +89,14 @@ url: OpenAIUrl, key: OpenAIKey, model: model, - speaker: speaker + speaker: OpenAISpeaker }); if (res) { OpenAIUrl = res.OPENAI_API_BASE_URL; OpenAIKey = res.OPENAI_API_KEY; model = res.OPENAI_API_MODEL; - speaker = res.OPENAI_API_VOICE; + OpenAISpeaker = res.OPENAI_API_VOICE; } } }; @@ -105,6 +108,7 @@ STTEngine = $settings?.audio?.STTEngine ?? ''; TTSEngine = $settings?.audio?.TTSEngine ?? ''; + nonLocalVoices = $settings.audio?.nonLocalVoices ?? false; speaker = $settings?.audio?.speaker ?? ''; model = $settings?.audio?.model ?? ''; @@ -122,7 +126,10 @@ OpenAIUrl = res.OPENAI_API_BASE_URL; OpenAIKey = res.OPENAI_API_KEY; model = res.OPENAI_API_MODEL; - speaker = res.OPENAI_API_VOICE; + OpenAISpeaker = res.OPENAI_API_VOICE; + if (TTSEngine === 'openai') { + speaker = OpenAISpeaker; + } } } }); @@ -138,8 +145,14 @@ audio: { STTEngine: STTEngine !== '' ? STTEngine : undefined, TTSEngine: TTSEngine !== '' ? TTSEngine : undefined, - speaker: speaker !== '' ? speaker : undefined, - model: model !== '' ? model : undefined + speaker: + (TTSEngine === 'openai' ? OpenAISpeaker : speaker) !== '' + ? TTSEngine === 'openai' + ? OpenAISpeaker + : speaker + : undefined, + model: model !== '' ? model : undefined, + nonLocalVoices: nonLocalVoices } }); dispatch('save'); @@ -227,7 +240,7 @@ on:change={(e) => { if (e.target.value === 'openai') { getOpenAIVoices(); - speaker = 'alloy'; + OpenAISpeaker = 'alloy'; model = 'tts-1'; } else { getWebAPIVoices(); @@ -290,16 +303,27 @@ +
+
+ {$i18n.t('Allow non-local voices')} +
+ +
+ +
+
{:else if TTSEngine === 'openai'}
@@ -309,7 +333,7 @@ diff --git a/src/lib/components/layout/Sidebar.svelte b/src/lib/components/layout/Sidebar.svelte index 0bf00e472..b1615e048 100644 --- a/src/lib/components/layout/Sidebar.svelte +++ b/src/lib/components/layout/Sidebar.svelte @@ -205,6 +205,10 @@ await archiveChatById(localStorage.token, id); await chats.set(await getChatList(localStorage.token)); }; + + const focusEdit = async (node: HTMLInputElement) => { + node.focus(); + }; @@ -489,7 +493,11 @@ ? 'bg-gray-100 dark:bg-gray-950' : 'group-hover:bg-gray-100 dark:group-hover:bg-gray-950'} whitespace-nowrap text-ellipsis" > - +
{:else} { + chatTitle = chat.title; + chatTitleEditId = chat.id; + }} draggable="false" >
diff --git a/src/lib/i18n/locales/ar-BH/translation.json b/src/lib/i18n/locales/ar-BH/translation.json index b39dc9625..813b605ef 100644 --- a/src/lib/i18n/locales/ar-BH/translation.json +++ b/src/lib/i18n/locales/ar-BH/translation.json @@ -37,6 +37,7 @@ "All Users": "جميع المستخدمين", "Allow": "يسمح", "Allow Chat Deletion": "يستطيع حذف المحادثات", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "الأحرف الأبجدية الرقمية والواصلات", "Already have an account?": "هل تملك حساب ؟", "an assistant": "مساعد", @@ -206,6 +207,7 @@ "Experimental": "تجريبي", "Export": "تصدير", "Export All Chats (All Users)": "تصدير جميع الدردشات (جميع المستخدمين)", + "Export chat (.json)": "", "Export Chats": "تصدير جميع الدردشات", "Export Documents Mapping": "تصدير وثائق الخرائط", "Export Models": "نماذج التصدير", diff --git a/src/lib/i18n/locales/bg-BG/translation.json b/src/lib/i18n/locales/bg-BG/translation.json index 790ecb02c..fb8b885b8 100644 --- a/src/lib/i18n/locales/bg-BG/translation.json +++ b/src/lib/i18n/locales/bg-BG/translation.json @@ -37,6 +37,7 @@ "All Users": "Всички Потребители", "Allow": "Позволи", "Allow Chat Deletion": "Позволи Изтриване на Чат", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "алфанумерични знаци и тире", "Already have an account?": "Вече имате акаунт? ", "an assistant": "асистент", @@ -206,6 +207,7 @@ "Experimental": "Експериментално", "Export": "Износ", "Export All Chats (All Users)": "Експортване на всички чатове (За всички потребители)", + "Export chat (.json)": "", "Export Chats": "Експортване на чатове", "Export Documents Mapping": "Експортване на документен мапинг", "Export Models": "Експортиране на модели", diff --git a/src/lib/i18n/locales/bn-BD/translation.json b/src/lib/i18n/locales/bn-BD/translation.json index ae139f3b6..8f7fe1533 100644 --- a/src/lib/i18n/locales/bn-BD/translation.json +++ b/src/lib/i18n/locales/bn-BD/translation.json @@ -37,6 +37,7 @@ "All Users": "সব ইউজার", "Allow": "অনুমোদন", "Allow Chat Deletion": "চ্যাট ডিলিট করতে দিন", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "ইংরেজি অক্ষর, সংখ্যা এবং হাইফেন", "Already have an account?": "আগে থেকেই একাউন্ট আছে?", "an assistant": "একটা এসিস্ট্যান্ট", @@ -206,6 +207,7 @@ "Experimental": "পরিক্ষামূলক", "Export": "রপ্তানি", "Export All Chats (All Users)": "সব চ্যাট এক্সপোর্ট করুন (সব ইউজারের)", + "Export chat (.json)": "", "Export Chats": "চ্যাটগুলো এক্সপোর্ট করুন", "Export Documents Mapping": "ডকুমেন্টসমূহ ম্যাপিং এক্সপোর্ট করুন", "Export Models": "রপ্তানি মডেল", diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json index 52a827b23..953073024 100644 --- a/src/lib/i18n/locales/ca-ES/translation.json +++ b/src/lib/i18n/locales/ca-ES/translation.json @@ -37,6 +37,7 @@ "All Users": "Tots els Usuaris", "Allow": "Permet", "Allow Chat Deletion": "Permet la Supressió del Xat", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "caràcters alfanumèrics i guions", "Already have an account?": "Ja tens un compte?", "an assistant": "un assistent", @@ -206,6 +207,7 @@ "Experimental": "Experimental", "Export": "Exportar", "Export All Chats (All Users)": "Exporta Tots els Xats (Tots els Usuaris)", + "Export chat (.json)": "", "Export Chats": "Exporta Xats", "Export Documents Mapping": "Exporta el Mapatge de Documents", "Export Models": "Models d'exportació", diff --git a/src/lib/i18n/locales/ceb-PH/translation.json b/src/lib/i18n/locales/ceb-PH/translation.json index 8c3d5733f..7b8cbe1e9 100644 --- a/src/lib/i18n/locales/ceb-PH/translation.json +++ b/src/lib/i18n/locales/ceb-PH/translation.json @@ -37,6 +37,7 @@ "All Users": "Ang tanan nga mga tiggamit", "Allow": "Sa pagtugot", "Allow Chat Deletion": "Tugoti nga mapapas ang mga chat", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "alphanumeric nga mga karakter ug hyphen", "Already have an account?": "Naa na kay account ?", "an assistant": "usa ka katabang", @@ -206,6 +207,7 @@ "Experimental": "Eksperimento", "Export": "", "Export All Chats (All Users)": "I-export ang tanan nga mga chat (Tanan nga tiggamit)", + "Export chat (.json)": "", "Export Chats": "I-export ang mga chat", "Export Documents Mapping": "I-export ang pagmapa sa dokumento", "Export Models": "", diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json index 81e919ac8..7a53910e4 100644 --- a/src/lib/i18n/locales/de-DE/translation.json +++ b/src/lib/i18n/locales/de-DE/translation.json @@ -37,6 +37,7 @@ "All Users": "Alle Benutzer", "Allow": "Erlauben", "Allow Chat Deletion": "Chat Löschung erlauben", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "alphanumerische Zeichen und Bindestriche", "Already have an account?": "Hast du vielleicht schon ein Account?", "an assistant": "ein Assistent", @@ -206,6 +207,7 @@ "Experimental": "Experimentell", "Export": "Exportieren", "Export All Chats (All Users)": "Alle Chats exportieren (alle Benutzer)", + "Export chat (.json)": "", "Export Chats": "Chats exportieren", "Export Documents Mapping": "Dokumentenmapping exportieren", "Export Models": "Modelle exportieren", diff --git a/src/lib/i18n/locales/dg-DG/translation.json b/src/lib/i18n/locales/dg-DG/translation.json index 396a51dfc..c732573a0 100644 --- a/src/lib/i18n/locales/dg-DG/translation.json +++ b/src/lib/i18n/locales/dg-DG/translation.json @@ -37,6 +37,7 @@ "All Users": "All Users", "Allow": "Allow", "Allow Chat Deletion": "Allow Delete Chats", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "so alpha, many hyphen", "Already have an account?": "Such account exists?", "an assistant": "such assistant", @@ -206,6 +207,7 @@ "Experimental": "Much Experiment", "Export": "", "Export All Chats (All Users)": "Export All Chats (All Doggos)", + "Export chat (.json)": "", "Export Chats": "Export Barks", "Export Documents Mapping": "Export Mappings of Dogos", "Export Models": "", diff --git a/src/lib/i18n/locales/en-GB/translation.json b/src/lib/i18n/locales/en-GB/translation.json index f43f58a22..1502569a4 100644 --- a/src/lib/i18n/locales/en-GB/translation.json +++ b/src/lib/i18n/locales/en-GB/translation.json @@ -37,6 +37,7 @@ "All Users": "", "Allow": "", "Allow Chat Deletion": "", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "", "Already have an account?": "", "an assistant": "", @@ -206,6 +207,7 @@ "Experimental": "", "Export": "", "Export All Chats (All Users)": "", + "Export chat (.json)": "", "Export Chats": "", "Export Documents Mapping": "", "Export Models": "", diff --git a/src/lib/i18n/locales/en-US/translation.json b/src/lib/i18n/locales/en-US/translation.json index f43f58a22..1502569a4 100644 --- a/src/lib/i18n/locales/en-US/translation.json +++ b/src/lib/i18n/locales/en-US/translation.json @@ -37,6 +37,7 @@ "All Users": "", "Allow": "", "Allow Chat Deletion": "", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "", "Already have an account?": "", "an assistant": "", @@ -206,6 +207,7 @@ "Experimental": "", "Export": "", "Export All Chats (All Users)": "", + "Export chat (.json)": "", "Export Chats": "", "Export Documents Mapping": "", "Export Models": "", diff --git a/src/lib/i18n/locales/es-ES/translation.json b/src/lib/i18n/locales/es-ES/translation.json index 7ef3691b8..e61ecf3d3 100644 --- a/src/lib/i18n/locales/es-ES/translation.json +++ b/src/lib/i18n/locales/es-ES/translation.json @@ -37,6 +37,7 @@ "All Users": "Todos los Usuarios", "Allow": "Permitir", "Allow Chat Deletion": "Permitir Borrar Chats", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "caracteres alfanuméricos y guiones", "Already have an account?": "¿Ya tienes una cuenta?", "an assistant": "un asistente", @@ -206,6 +207,7 @@ "Experimental": "Experimental", "Export": "Exportar", "Export All Chats (All Users)": "Exportar todos los chats (Todos los usuarios)", + "Export chat (.json)": "", "Export Chats": "Exportar Chats", "Export Documents Mapping": "Exportar el mapeo de documentos", "Export Models": "Modelos de exportación", diff --git a/src/lib/i18n/locales/fa-IR/translation.json b/src/lib/i18n/locales/fa-IR/translation.json index 251c318de..643404565 100644 --- a/src/lib/i18n/locales/fa-IR/translation.json +++ b/src/lib/i18n/locales/fa-IR/translation.json @@ -37,6 +37,7 @@ "All Users": "همه کاربران", "Allow": "اجازه دادن", "Allow Chat Deletion": "اجازه حذف گپ", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "حروف الفبایی و خط فاصله", "Already have an account?": "از قبل حساب کاربری دارید؟", "an assistant": "یک دستیار", @@ -206,6 +207,7 @@ "Experimental": "آزمایشی", "Export": "صادرات", "Export All Chats (All Users)": "اکسپورت از همه گپ\u200cها(همه کاربران)", + "Export chat (.json)": "", "Export Chats": "اکسپورت از گپ\u200cها", "Export Documents Mapping": "اکسپورت از نگاشت اسناد", "Export Models": "مدل های صادرات", diff --git a/src/lib/i18n/locales/fi-FI/translation.json b/src/lib/i18n/locales/fi-FI/translation.json index 994659c81..b53822417 100644 --- a/src/lib/i18n/locales/fi-FI/translation.json +++ b/src/lib/i18n/locales/fi-FI/translation.json @@ -37,6 +37,7 @@ "All Users": "Kaikki käyttäjät", "Allow": "Salli", "Allow Chat Deletion": "Salli keskustelujen poisto", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "kirjaimia, numeroita ja väliviivoja", "Already have an account?": "Onko sinulla jo tili?", "an assistant": "avustaja", @@ -206,6 +207,7 @@ "Experimental": "Kokeellinen", "Export": "Vienti", "Export All Chats (All Users)": "Vie kaikki keskustelut (kaikki käyttäjät)", + "Export chat (.json)": "", "Export Chats": "Vie keskustelut", "Export Documents Mapping": "Vie asiakirjakartoitus", "Export Models": "Vie malleja", diff --git a/src/lib/i18n/locales/fr-CA/translation.json b/src/lib/i18n/locales/fr-CA/translation.json index 21dbb6347..895800555 100644 --- a/src/lib/i18n/locales/fr-CA/translation.json +++ b/src/lib/i18n/locales/fr-CA/translation.json @@ -37,6 +37,7 @@ "All Users": "Tous les utilisateurs", "Allow": "Autoriser", "Allow Chat Deletion": "Autoriser la suppression des discussions", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "caractères alphanumériques et tirets", "Already have an account?": "Vous avez déjà un compte ?", "an assistant": "un assistant", @@ -206,6 +207,7 @@ "Experimental": "Expérimental", "Export": "Exportation", "Export All Chats (All Users)": "Exporter toutes les discussions (Tous les utilisateurs)", + "Export chat (.json)": "", "Export Chats": "Exporter les discussions", "Export Documents Mapping": "Exporter le mappage des documents", "Export Models": "Modèles d’exportation", diff --git a/src/lib/i18n/locales/fr-FR/translation.json b/src/lib/i18n/locales/fr-FR/translation.json index 040b54269..e8e36b730 100644 --- a/src/lib/i18n/locales/fr-FR/translation.json +++ b/src/lib/i18n/locales/fr-FR/translation.json @@ -37,6 +37,7 @@ "All Users": "Tous les Utilisateurs", "Allow": "Autoriser", "Allow Chat Deletion": "Autoriser la suppression du chat", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "caractères alphanumériques et tirets", "Already have an account?": "Vous avez déjà un compte ?", "an assistant": "un assistant", @@ -206,6 +207,7 @@ "Experimental": "Expérimental", "Export": "Exportation", "Export All Chats (All Users)": "Exporter Tous les Chats (Tous les Utilisateurs)", + "Export chat (.json)": "", "Export Chats": "Exporter les Chats", "Export Documents Mapping": "Exporter la Correspondance des Documents", "Export Models": "Exporter les Modèles", diff --git a/src/lib/i18n/locales/he-IL/translation.json b/src/lib/i18n/locales/he-IL/translation.json index 6ae7a33de..32ad5c3a8 100644 --- a/src/lib/i18n/locales/he-IL/translation.json +++ b/src/lib/i18n/locales/he-IL/translation.json @@ -37,6 +37,7 @@ "All Users": "כל המשתמשים", "Allow": "אפשר", "Allow Chat Deletion": "אפשר מחיקת צ'אט", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "תווים אלפאנומריים ומקפים", "Already have an account?": "כבר יש לך חשבון?", "an assistant": "עוזר", @@ -206,6 +207,7 @@ "Experimental": "ניסיוני", "Export": "ייצא", "Export All Chats (All Users)": "ייצוא כל הצ'אטים (כל המשתמשים)", + "Export chat (.json)": "", "Export Chats": "ייצוא צ'אטים", "Export Documents Mapping": "ייצוא מיפוי מסמכים", "Export Models": "ייצוא מודלים", diff --git a/src/lib/i18n/locales/hi-IN/translation.json b/src/lib/i18n/locales/hi-IN/translation.json index 7a8f78718..d4e8c2b43 100644 --- a/src/lib/i18n/locales/hi-IN/translation.json +++ b/src/lib/i18n/locales/hi-IN/translation.json @@ -37,6 +37,7 @@ "All Users": "सभी उपयोगकर्ता", "Allow": "अनुमति दें", "Allow Chat Deletion": "चैट हटाने की अनुमति दें", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "अल्फ़ान्यूमेरिक वर्ण और हाइफ़न", "Already have an account?": "क्या आपके पास पहले से एक खाता मौजूद है?", "an assistant": "एक सहायक", @@ -206,6 +207,7 @@ "Experimental": "प्रयोगात्मक", "Export": "निर्यातित माल", "Export All Chats (All Users)": "सभी चैट निर्यात करें (सभी उपयोगकर्ताओं की)", + "Export chat (.json)": "", "Export Chats": "चैट निर्यात करें", "Export Documents Mapping": "निर्यात दस्तावेज़ मैपिंग", "Export Models": "निर्यात मॉडल", diff --git a/src/lib/i18n/locales/hr-HR/translation.json b/src/lib/i18n/locales/hr-HR/translation.json index 207678a39..ea8297376 100644 --- a/src/lib/i18n/locales/hr-HR/translation.json +++ b/src/lib/i18n/locales/hr-HR/translation.json @@ -37,6 +37,7 @@ "All Users": "Svi korisnici", "Allow": "Dopusti", "Allow Chat Deletion": "Dopusti brisanje razgovora", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "alfanumerički znakovi i crtice", "Already have an account?": "Već imate račun?", "an assistant": "asistent", @@ -206,6 +207,7 @@ "Experimental": "Eksperimentalno", "Export": "Izvoz", "Export All Chats (All Users)": "Izvoz svih razgovora (svi korisnici)", + "Export chat (.json)": "", "Export Chats": "Izvoz razgovora", "Export Documents Mapping": "Izvoz mapiranja dokumenata", "Export Models": "Izvezi modele", diff --git a/src/lib/i18n/locales/it-IT/translation.json b/src/lib/i18n/locales/it-IT/translation.json index ca64e88b3..e1ab9f7d2 100644 --- a/src/lib/i18n/locales/it-IT/translation.json +++ b/src/lib/i18n/locales/it-IT/translation.json @@ -37,6 +37,7 @@ "All Users": "Tutti gli utenti", "Allow": "Consenti", "Allow Chat Deletion": "Consenti l'eliminazione della chat", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "caratteri alfanumerici e trattini", "Already have an account?": "Hai già un account?", "an assistant": "un assistente", @@ -206,6 +207,7 @@ "Experimental": "Sperimentale", "Export": "Esportazione", "Export All Chats (All Users)": "Esporta tutte le chat (tutti gli utenti)", + "Export chat (.json)": "", "Export Chats": "Esporta chat", "Export Documents Mapping": "Esporta mappatura documenti", "Export Models": "Esporta modelli", diff --git a/src/lib/i18n/locales/ja-JP/translation.json b/src/lib/i18n/locales/ja-JP/translation.json index 803bac0ae..8319a90e0 100644 --- a/src/lib/i18n/locales/ja-JP/translation.json +++ b/src/lib/i18n/locales/ja-JP/translation.json @@ -37,6 +37,7 @@ "All Users": "すべてのユーザー", "Allow": "許可", "Allow Chat Deletion": "チャットの削除を許可", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "英数字とハイフン", "Already have an account?": "すでにアカウントをお持ちですか?", "an assistant": "アシスタント", @@ -206,6 +207,7 @@ "Experimental": "実験的", "Export": "輸出", "Export All Chats (All Users)": "すべてのチャットをエクスポート (すべてのユーザー)", + "Export chat (.json)": "", "Export Chats": "チャットをエクスポート", "Export Documents Mapping": "ドキュメントマッピングをエクスポート", "Export Models": "モデルのエクスポート", diff --git a/src/lib/i18n/locales/ka-GE/translation.json b/src/lib/i18n/locales/ka-GE/translation.json index f23ca57b6..601ab5f3c 100644 --- a/src/lib/i18n/locales/ka-GE/translation.json +++ b/src/lib/i18n/locales/ka-GE/translation.json @@ -37,6 +37,7 @@ "All Users": "ყველა მომხმარებელი", "Allow": "ნების დართვა", "Allow Chat Deletion": "მიმოწერის წაშლის დაშვება", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "ალფანუმერული სიმბოლოები და დეფისები", "Already have an account?": "უკვე გაქვს ანგარიში?", "an assistant": "ასისტენტი", @@ -206,6 +207,7 @@ "Experimental": "ექსპერიმენტალური", "Export": "ექსპორტი", "Export All Chats (All Users)": "ექსპორტი ყველა ჩათი (ყველა მომხმარებელი)", + "Export chat (.json)": "", "Export Chats": "მიმოწერის ექსპორტირება", "Export Documents Mapping": "დოკუმენტების კავშირის ექსპორტი", "Export Models": "ექსპორტის მოდელები", diff --git a/src/lib/i18n/locales/ko-KR/translation.json b/src/lib/i18n/locales/ko-KR/translation.json index 7fffca76a..2ab8a39ae 100644 --- a/src/lib/i18n/locales/ko-KR/translation.json +++ b/src/lib/i18n/locales/ko-KR/translation.json @@ -37,6 +37,7 @@ "All Users": "모든 사용자", "Allow": "허용", "Allow Chat Deletion": "채팅 삭제 허용", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "영문자,숫자 및 하이픈", "Already have an account?": "이미 계정이 있으신가요?", "an assistant": "어시스턴트", @@ -206,6 +207,7 @@ "Experimental": "실험적", "Export": "수출", "Export All Chats (All Users)": "모든 채팅 내보내기 (모든 사용자)", + "Export chat (.json)": "", "Export Chats": "채팅 내보내기", "Export Documents Mapping": "문서 매핑 내보내기", "Export Models": "모델 내보내기", diff --git a/src/lib/i18n/locales/languages.json b/src/lib/i18n/locales/languages.json index 02afc4a38..1edb9d077 100644 --- a/src/lib/i18n/locales/languages.json +++ b/src/lib/i18n/locales/languages.json @@ -79,6 +79,10 @@ "code": "ko-KR", "title": "Korean (한국어)" }, + { + "code": "lt-LT", + "title": "Lithuanian (Lietuvių)" + }, { "code": "nl-NL", "title": "Dutch (Netherlands)" diff --git a/src/lib/i18n/locales/nl-NL/translation.json b/src/lib/i18n/locales/nl-NL/translation.json index 00dc9d443..e9197ea2d 100644 --- a/src/lib/i18n/locales/nl-NL/translation.json +++ b/src/lib/i18n/locales/nl-NL/translation.json @@ -37,6 +37,7 @@ "All Users": "Alle Gebruikers", "Allow": "Toestaan", "Allow Chat Deletion": "Sta Chat Verwijdering toe", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "alfanumerieke karakters en streepjes", "Already have an account?": "Heb je al een account?", "an assistant": "een assistent", @@ -206,6 +207,7 @@ "Experimental": "Experimenteel", "Export": "Exporteren", "Export All Chats (All Users)": "Exporteer Alle Chats (Alle Gebruikers)", + "Export chat (.json)": "", "Export Chats": "Exporteer Chats", "Export Documents Mapping": "Exporteer Documenten Mapping", "Export Models": "Modellen exporteren", diff --git a/src/lib/i18n/locales/pa-IN/translation.json b/src/lib/i18n/locales/pa-IN/translation.json index 43fbd7545..b1335557e 100644 --- a/src/lib/i18n/locales/pa-IN/translation.json +++ b/src/lib/i18n/locales/pa-IN/translation.json @@ -37,6 +37,7 @@ "All Users": "ਸਾਰੇ ਉਪਭੋਗਤਾ", "Allow": "ਅਨੁਮਤੀ", "Allow Chat Deletion": "ਗੱਲਬਾਤ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "ਅਲਫ਼ਾਨਯੂਮੈਰਿਕ ਅੱਖਰ ਅਤੇ ਹਾਈਫਨ", "Already have an account?": "ਪਹਿਲਾਂ ਹੀ ਖਾਤਾ ਹੈ?", "an assistant": "ਇੱਕ ਸਹਾਇਕ", @@ -206,6 +207,7 @@ "Experimental": "ਪਰਮਾਣੂਕ੍ਰਿਤ", "Export": "ਨਿਰਯਾਤ", "Export All Chats (All Users)": "ਸਾਰੀਆਂ ਗੱਲਾਂ ਨਿਰਯਾਤ ਕਰੋ (ਸਾਰੇ ਉਪਭੋਗਤਾ)", + "Export chat (.json)": "", "Export Chats": "ਗੱਲਾਂ ਨਿਰਯਾਤ ਕਰੋ", "Export Documents Mapping": "ਡਾਕੂਮੈਂਟ ਮੈਪਿੰਗ ਨਿਰਯਾਤ ਕਰੋ", "Export Models": "ਨਿਰਯਾਤ ਮਾਡਲ", diff --git a/src/lib/i18n/locales/pl-PL/translation.json b/src/lib/i18n/locales/pl-PL/translation.json index 72d09d8d1..23b9a18ec 100644 --- a/src/lib/i18n/locales/pl-PL/translation.json +++ b/src/lib/i18n/locales/pl-PL/translation.json @@ -37,6 +37,7 @@ "All Users": "Wszyscy użytkownicy", "Allow": "Pozwól", "Allow Chat Deletion": "Pozwól na usuwanie czatu", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "znaki alfanumeryczne i myślniki", "Already have an account?": "Masz już konto?", "an assistant": "asystent", @@ -206,6 +207,7 @@ "Experimental": "Eksperymentalne", "Export": "Eksport", "Export All Chats (All Users)": "Eksportuj wszystkie czaty (wszyscy użytkownicy)", + "Export chat (.json)": "", "Export Chats": "Eksportuj czaty", "Export Documents Mapping": "Eksportuj mapowanie dokumentów", "Export Models": "Eksportuj modele", diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json index 41a2829a4..553747182 100644 --- a/src/lib/i18n/locales/pt-BR/translation.json +++ b/src/lib/i18n/locales/pt-BR/translation.json @@ -37,6 +37,7 @@ "All Users": "Todos os Usuários", "Allow": "Permitir", "Allow Chat Deletion": "Permitir Exclusão de Bate-papo", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "caracteres alfanuméricos e hífens", "Already have an account?": "Já tem uma conta?", "an assistant": "um assistente", @@ -206,6 +207,7 @@ "Experimental": "Experimental", "Export": "Exportação", "Export All Chats (All Users)": "Exportar Todos os Bate-papos (Todos os Usuários)", + "Export chat (.json)": "", "Export Chats": "Exportar Bate-papos", "Export Documents Mapping": "Exportar Mapeamento de Documentos", "Export Models": "Modelos de Exportação", diff --git a/src/lib/i18n/locales/pt-PT/translation.json b/src/lib/i18n/locales/pt-PT/translation.json index c6b69ccb7..700de872b 100644 --- a/src/lib/i18n/locales/pt-PT/translation.json +++ b/src/lib/i18n/locales/pt-PT/translation.json @@ -37,6 +37,7 @@ "All Users": "Todos os Usuários", "Allow": "Permitir", "Allow Chat Deletion": "Permitir Exclusão de Bate-papo", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "caracteres alfanuméricos e hífens", "Already have an account?": "Já tem uma conta?", "an assistant": "um assistente", @@ -206,6 +207,7 @@ "Experimental": "Experimental", "Export": "Exportação", "Export All Chats (All Users)": "Exportar Todos os Bate-papos (Todos os Usuários)", + "Export chat (.json)": "", "Export Chats": "Exportar Bate-papos", "Export Documents Mapping": "Exportar Mapeamento de Documentos", "Export Models": "Modelos de Exportação", diff --git a/src/lib/i18n/locales/ru-RU/translation.json b/src/lib/i18n/locales/ru-RU/translation.json index 37e3ea3b9..75892de0f 100644 --- a/src/lib/i18n/locales/ru-RU/translation.json +++ b/src/lib/i18n/locales/ru-RU/translation.json @@ -37,6 +37,7 @@ "All Users": "Все пользователи", "Allow": "Разрешить", "Allow Chat Deletion": "Дозволять удаление чат", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "буквенно цифровые символы и дефисы", "Already have an account?": "у вас уже есть аккаунт?", "an assistant": "ассистент", @@ -206,6 +207,7 @@ "Experimental": "Экспериментальное", "Export": "Экспорт", "Export All Chats (All Users)": "Экспортировать все чаты (все пользователи)", + "Export chat (.json)": "", "Export Chats": "Экспортировать чаты", "Export Documents Mapping": "Экспортировать отображение документов", "Export Models": "Экспорт моделей", diff --git a/src/lib/i18n/locales/sr-RS/translation.json b/src/lib/i18n/locales/sr-RS/translation.json index de561bee9..a937831e6 100644 --- a/src/lib/i18n/locales/sr-RS/translation.json +++ b/src/lib/i18n/locales/sr-RS/translation.json @@ -37,6 +37,7 @@ "All Users": "Сви корисници", "Allow": "Дозволи", "Allow Chat Deletion": "Дозволи брисање ћаскања", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "алфанумерички знакови и цртице", "Already have an account?": "Већ имате налог?", "an assistant": "помоћник", @@ -206,6 +207,7 @@ "Experimental": "Експериментално", "Export": "Извоз", "Export All Chats (All Users)": "Извези сва ћаскања (сви корисници)", + "Export chat (.json)": "", "Export Chats": "Извези ћаскања", "Export Documents Mapping": "Извези мапирање докумената", "Export Models": "Извези моделе", diff --git a/src/lib/i18n/locales/sv-SE/translation.json b/src/lib/i18n/locales/sv-SE/translation.json index ccf931697..f9167134e 100644 --- a/src/lib/i18n/locales/sv-SE/translation.json +++ b/src/lib/i18n/locales/sv-SE/translation.json @@ -37,6 +37,7 @@ "All Users": "Alla användare", "Allow": "Tillåt", "Allow Chat Deletion": "Tillåt chattborttagning", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "alfanumeriska tecken och bindestreck", "Already have an account?": "Har du redan ett konto?", "an assistant": "en assistent", @@ -206,6 +207,7 @@ "Experimental": "Experimentell", "Export": "Export", "Export All Chats (All Users)": "Exportera alla chattar (alla användare)", + "Export chat (.json)": "", "Export Chats": "Exportera chattar", "Export Documents Mapping": "Exportera dokumentmappning", "Export Models": "Exportera modeller", diff --git a/src/lib/i18n/locales/tr-TR/translation.json b/src/lib/i18n/locales/tr-TR/translation.json index e201c5b66..f6fe4b1c0 100644 --- a/src/lib/i18n/locales/tr-TR/translation.json +++ b/src/lib/i18n/locales/tr-TR/translation.json @@ -37,6 +37,7 @@ "All Users": "Tüm Kullanıcılar", "Allow": "İzin ver", "Allow Chat Deletion": "Sohbet Silmeye İzin Ver", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "alfanumerik karakterler ve tireler", "Already have an account?": "Zaten bir hesabınız mı var?", "an assistant": "bir asistan", @@ -206,6 +207,7 @@ "Experimental": "Deneysel", "Export": "Ihracat", "Export All Chats (All Users)": "Tüm Sohbetleri Dışa Aktar (Tüm Kullanıcılar)", + "Export chat (.json)": "", "Export Chats": "Sohbetleri Dışa Aktar", "Export Documents Mapping": "Belge Eşlemesini Dışa Aktar", "Export Models": "Modelleri Dışa Aktar", diff --git a/src/lib/i18n/locales/uk-UA/translation.json b/src/lib/i18n/locales/uk-UA/translation.json index d4e3a680c..fe74067d8 100644 --- a/src/lib/i18n/locales/uk-UA/translation.json +++ b/src/lib/i18n/locales/uk-UA/translation.json @@ -37,6 +37,7 @@ "All Users": "Всі користувачі", "Allow": "Дозволити", "Allow Chat Deletion": "Дозволити видалення чату", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "алфавітно-цифрові символи та дефіси", "Already have an account?": "Вже є обліковий запис?", "an assistant": "асистента", @@ -206,6 +207,7 @@ "Experimental": "Експериментальне", "Export": "Експорт", "Export All Chats (All Users)": "Експортувати всі чати (всі користувачі)", + "Export chat (.json)": "", "Export Chats": "Експортувати чати", "Export Documents Mapping": "Експортувати відображення документів", "Export Models": "Експорт моделей", diff --git a/src/lib/i18n/locales/vi-VN/translation.json b/src/lib/i18n/locales/vi-VN/translation.json index 72bf9668f..c27b614d7 100644 --- a/src/lib/i18n/locales/vi-VN/translation.json +++ b/src/lib/i18n/locales/vi-VN/translation.json @@ -37,6 +37,7 @@ "All Users": "Danh sách người sử dụng", "Allow": "Cho phép", "Allow Chat Deletion": "Cho phép Xóa nội dung chat", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "ký tự số và gạch nối", "Already have an account?": "Bạn đã có tài khoản?", "an assistant": "trợ lý", @@ -206,6 +207,7 @@ "Experimental": "Thử nghiệm", "Export": "Xuất khẩu", "Export All Chats (All Users)": "Tải về tất cả nội dung chat (tất cả mọi người)", + "Export chat (.json)": "", "Export Chats": "Tải nội dung chat về máy", "Export Documents Mapping": "Tải cấu trúc tài liệu về máy", "Export Models": "Tải Models về máy", diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index f6f0d80e5..9d29b0b7f 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -2,21 +2,21 @@ "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' 或 '-1' 表示无过期时间。", "(Beta)": "(测试版)", "(e.g. `sh webui.sh --api`)": "(例如 `sh webui.sh --api`)", - "(latest)": "(最新版)", + "(latest)": "(正式版)", "{{ models }}": "{{ models }}", "{{ owner }}: You cannot delete a base model": "{{ owner }}:您不能删除基础模型", "{{modelName}} is thinking...": "{{modelName}} 正在思考...", - "{{user}}'s Chats": "{{user}} 的聊天记录", + "{{user}}'s Chats": "{{user}} 的对话记录", "{{webUIName}} Backend Required": "需要 {{webUIName}} 后端", - "A task model is used when performing tasks such as generating titles for chats and web search queries": "在执行任务(如生成聊天标题和网络搜索查询)时使用任务模型", + "A task model is used when performing tasks such as generating titles for chats and web search queries": "任务模型用于执行生成对话标题和网络搜索查询等任务", "a user": "用户", "About": "关于", - "Account": "账户", - "Accurate information": "准确信息", + "Account": "账号", + "Accurate information": "准确的信息", "Add": "添加", - "Add a model id": "添加一个模型ID", - "Add a short description about what this model does": "添加一个关于这个模型的简短描述", - "Add a short title for this prompt": "为这个提示词添加一个简短的标题", + "Add a model id": "添加一个模型 ID", + "Add a short description about what this model does": "添加有关该模型功能的简短描述", + "Add a short title for this prompt": "为此提示词添加一个简短的标题", "Add a tag": "添加标签", "Add custom prompt": "添加自定义提示词", "Add Docs": "添加文档", @@ -37,47 +37,48 @@ "All Users": "所有用户", "Allow": "允许", "Allow Chat Deletion": "允许删除聊天记录", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "字母数字字符和连字符", - "Already have an account?": "已经有账户了吗?", + "Already have an account?": "已经拥有账号了?", "an assistant": "助手", "and": "和", - "and create a new shared link.": "创建一个新的共享链接。", - "API Base URL": "API 基础 URL", + "and create a new shared link.": "并创建一个新的分享链接。", + "API Base URL": "API 基础地址", "API Key": "API 密钥", "API Key created.": "API 密钥已创建。", "API keys": "API 密钥", "April": "四月", - "Archive": "存档", - "Archive All Chats": "存档所有聊天记录", - "Archived Chats": "聊天记录存档", + "Archive": "归档", + "Archive All Chats": "归档所有对话记录", + "Archived Chats": "已归档对话", "are allowed - Activate this command by typing": "允许 - 通过输入来激活这个命令", - "Are you sure?": "你确定吗?", + "Are you sure?": "是否确定?", "Attach file": "添加文件", "Attention to detail": "注重细节", - "Audio": "音频", + "Audio": "语音", "August": "八月", - "Auto-playback response": "自动播放回应", - "Auto-send input after 3 sec.": "3 秒后自动发送输入", - "AUTOMATIC1111 Base URL": "AUTOMATIC1111 基础 URL", - "AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基础 URL。", + "Auto-playback response": "自动念出回复内容", + "Auto-send input after 3 sec.": "3 秒后自动发送输入框内容", + "AUTOMATIC1111 Base URL": "AUTOMATIC1111 基础地址", + "AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基础地址。", "available!": "可用!", "Back": "返回", - "Bad Response": "不良响应", - "Banners": "横幅", - "Base Model (From)": "基础模型 (从)", - "before": "之前", + "Bad Response": "较差回复", + "Banners": "公告横幅", + "Base Model (From)": "基础模型 (来自)", + "before": "对话", "Being lazy": "懒惰", "Brave Search API Key": "Brave Search API 密钥", "Bypass SSL verification for Websites": "绕过网站的 SSL 验证", "Cancel": "取消", - "Capabilities": "功能", + "Capabilities": "能力", "Change Password": "更改密码", - "Chat": "聊天", - "Chat Bubble UI": "聊天气泡 UI", - "Chat direction": "聊天方向", - "Chat History": "聊天历史", - "Chat History is off for this browser.": "此浏览器已关闭聊天历史功能。", - "Chats": "聊天", + "Chat": "对话", + "Chat Bubble UI": "气泡样式对话", + "Chat direction": "对话文字方向", + "Chat History": "对话历史记录", + "Chat History is off for this browser.": "此浏览器已关闭对话历史记录功能。", + "Chats": "对话", "Check Again": "再次检查", "Check for updates": "检查更新", "Checking for updates...": "正在检查更新...", @@ -87,35 +88,35 @@ "Chunk Size": "块大小 (Chunk Size)", "Citation": "引文", "Click here for help.": "点击这里获取帮助。", - "Click here to": "单击此处", + "Click here to": "单击", "Click here to select": "点击这里选择", "Click here to select a csv file.": "单击此处选择 csv 文件。", - "Click here to select documents.": "点击这里选择文档。", + "Click here to select documents.": "单击选择文档", "click here.": "点击这里。", - "Click on the user role button to change a user's role.": "点击用户角色按钮以更改用户的角色。", - "Clone": "克隆", + "Click on the user role button to change a user's role.": "点击角色前方的组别按钮以更改用户所属权限组。", + "Clone": "复制", "Close": "关闭", - "Collection": "收藏", + "Collection": "集合", "ComfyUI": "ComfyUI", - "ComfyUI Base URL": "ComfyUI Base URL", - "ComfyUI Base URL is required.": "ComfyUI Base URL 是必需的。", + "ComfyUI Base URL": "ComfyUI 基础地址", + "ComfyUI Base URL is required.": "ComfyUI 基础地址为必需填写。", "Command": "命令", "Concurrent Requests": "并发请求", "Confirm Password": "确认密码", - "Connections": "连接", + "Connections": "外部连接", "Content": "内容", "Context Length": "上下文长度", - "Continue Response": "继续回复", - "Conversation Mode": "对话模式", - "Copied shared chat URL to clipboard!": "已复制共享聊天 URL 到剪贴板!", + "Continue Response": "继续生成", + "Conversation Mode": "连续对话模式", + "Copied shared chat URL to clipboard!": "已复制此对话分享链接至剪贴板!", "Copy": "复制", - "Copy last code block": "复制最后一个代码块", - "Copy last response": "复制最后一次回复", + "Copy last code block": "复制最后一个代码块中的代码", + "Copy last response": "复制最后一次回复内容", "Copy Link": "复制链接", - "Copying to clipboard was successful!": "复制到剪贴板成功!", - "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "为以下查询创建一个简洁的、3-5 个词的短语作为标题,严格遵守 3-5 个词的限制并避免使用“标题”一词:", + "Copying to clipboard was successful!": "成功复制到剪贴板!", + "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "创建一个简洁的、3 至 5 个字的短语作为以下查询的标题,严格遵守 3 至 5 个 字的限制,并避免使用“标题”一词:", "Create a model": "创建一个模型", - "Create Account": "创建账户", + "Create Account": "创建账号", "Create new key": "创建新密钥", "Create new secret key": "创建新安全密钥", "Created at": "创建于", @@ -123,7 +124,7 @@ "Current Model": "当前模型", "Current Password": "当前密码", "Custom": "自定义", - "Customize models for a specific purpose": "为特定目的定制模型", + "Customize models for a specific purpose": "定制专用目的模型", "Dark": "暗色", "Database": "数据库", "December": "十二月", @@ -138,96 +139,97 @@ "delete": "删除", "Delete": "删除", "Delete a model": "删除一个模型", - "Delete All Chats": "删除所有聊天记录", - "Delete chat": "删除聊天", - "Delete Chat": "删除聊天", - "delete this link": "删除这个链接", + "Delete All Chats": "删除所有对话记录", + "Delete chat": "删除对话记录", + "Delete Chat": "删除对话记录", + "delete this link": "此处删除这个链接", "Delete User": "删除用户", - "Deleted {{deleteModelTag}}": "已删除{{deleteModelTag}}", - "Deleted {{name}}": "已删除{{name}}", + "Deleted {{deleteModelTag}}": "已删除 {{deleteModelTag}}", + "Deleted {{name}}": "已删除 {{name}}", "Description": "描述", - "Didn't fully follow instructions": "没有完全遵循指示", + "Didn't fully follow instructions": "没有完全遵循指令", "Disabled": "禁用", - "Discover a model": "探索模型", - "Discover a prompt": "探索提示词", - "Discover, download, and explore custom prompts": "发现、下载并探索自定义提示词", - "Discover, download, and explore model presets": "发现、下载并探索模型预设", - "Display the username instead of You in the Chat": "在聊天中显示用户名而不是“你”", + "Discover a model": "发现更多模型", + "Discover a prompt": "发现更多提示词", + "Discover, download, and explore custom prompts": "发现、下载并探索更多自定义提示词", + "Discover, download, and explore model presets": "发现、下载并探索更多模型预设", + "Display the username instead of You in the Chat": "在对话中显示用户名而不是“你”", "Document": "文档", "Document Settings": "文档设置", "Documents": "文档", - "does not make any external connections, and your data stays securely on your locally hosted server.": "不进行任何外部连接,您的数据安全地存储在您的本地服务器上。", + "does not make any external connections, and your data stays securely on your locally hosted server.": "不会与外部建立任何连接,您的数据会安全地存储在本地托管的服务器上。", "Don't Allow": "不允许", - "Don't have an account?": "没有账户?", - "Don't like the style": "不喜欢这个风格", + "Don't have an account?": "没有账号?", + "Don't like the style": "不喜欢这个文风", "Download": "下载", "Download canceled": "下载已取消", "Download Database": "下载数据库", "Drop any files here to add to the conversation": "拖动文件到此处以添加到对话中", - "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是's', 'm', 'h'。", + "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。", "Edit": "编辑", "Edit Doc": "编辑文档", "Edit User": "编辑用户", - "Email": "电子邮件", - "Embedding Model": "嵌入模型", - "Embedding Model Engine": "嵌入模型引擎", - "Embedding model set to \"{{embedding_model}}\"": "嵌入模型设置为 \"{{embedding_model}}\"", - "Enable Chat History": "启用聊天历史", - "Enable Community Sharing": "启用社区共享", - "Enable New Sign Ups": "启用新注册", + "Email": "邮箱地址", + "Embedding Model": "语义向量模型", + "Embedding Model Engine": "语义向量模型引擎", + "Embedding model set to \"{{embedding_model}}\"": "语义向量模型设置为 \"{{embedding_model}}\"", + "Enable Chat History": "启用对话历史记录", + "Enable Community Sharing": "启用分享至社区", + "Enable New Sign Ups": "允许新用户注册", "Enable Web Search": "启用网络搜索", "Enabled": "启用", - "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "确保您的 CSV 文件按以下顺序包含 4 列: 姓名、电子邮件、密码、角色。", + "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "确保您的 CSV 文件按以下顺序包含 4 列: 姓名、邮箱地址、密码、角色。", "Enter {{role}} message here": "在此处输入 {{role}} 信息", "Enter a detail about yourself for your LLMs to recall": "输入 LLM 可以记住的信息", "Enter Brave Search API Key": "输入 Brave Search API 密钥", "Enter Chunk Overlap": "输入块重叠 (Chunk Overlap)", "Enter Chunk Size": "输入块大小 (Chunk Size)", - "Enter Github Raw URL": "输入 Github Raw URL", + "Enter Github Raw URL": "输入 Github Raw 地址", "Enter Google PSE API Key": "输入 Google PSE API 密钥", "Enter Google PSE Engine Id": "输入 Google PSE 引擎 ID", - "Enter Image Size (e.g. 512x512)": "输入图片大小 (例如 512x512)", + "Enter Image Size (e.g. 512x512)": "输入图像分辨率 (例如:512x512)", "Enter language codes": "输入语言代码", - "Enter model tag (e.g. {{modelTag}})": "输入模型标签 (例如{{modelTag}})", - "Enter Number of Steps (e.g. 50)": "输入步数 (例如 50)", - "Enter Score": "输入分", - "Enter Searxng Query URL": "输入 Searxng 查询 URL", + "Enter model tag (e.g. {{modelTag}})": "输入模型标签 (例如:{{modelTag}})", + "Enter Number of Steps (e.g. 50)": "输入步骤数 (Steps) (例如:50)", + "Enter Score": "输入评分", + "Enter Searxng Query URL": "输入 Searxng 查询地址", "Enter Serper API Key": "输入 Serper API 密钥", "Enter Serpstack API Key": "输入 Serpstack API 密钥", - "Enter stop sequence": "输入停止序列", + "Enter stop sequence": "输入停止序列 (Stop Sequence)", "Enter Top K": "输入 Top K", - "Enter URL (e.g. http://127.0.0.1:7860/)": "输入 URL (例如 http://127.0.0.1:7860/)", - "Enter URL (e.g. http://localhost:11434)": "输入 URL (例如 http://localhost:11434)", - "Enter Your Email": "输入您的电子邮件", - "Enter Your Full Name": "输入您的全名", + "Enter URL (e.g. http://127.0.0.1:7860/)": "输入地址 (例如:http://127.0.0.1:7860/)", + "Enter URL (e.g. http://localhost:11434)": "输入地址 (例如:http://localhost:11434)", + "Enter Your Email": "输入您的邮箱地址", + "Enter Your Full Name": "输入您的名称", "Enter Your Password": "输入您的密码", - "Enter Your Role": "输入您的角色", + "Enter Your Role": "输入您的权限组", "Error": "错误", "Experimental": "实验性", - "Export": "出口", - "Export All Chats (All Users)": "导出所有聊天(所有用户)", - "Export Chats": "导出聊天", + "Export": "导出", + "Export All Chats (All Users)": "导出所有用户对话", + "Export chat (.json)": "", + "Export Chats": "导出对话", "Export Documents Mapping": "导出文档映射", "Export Models": "导出模型", "Export Prompts": "导出提示词", "Failed to create API Key.": "无法创建 API 密钥。", "Failed to read clipboard contents": "无法读取剪贴板内容", "February": "二月", - "Feel free to add specific details": "请随意添加具体细节", + "Feel free to add specific details": "欢迎补充具体细节", "File Mode": "文件模式", "File not found.": "文件未找到。", - "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "检测到指纹欺骗: 无法使用姓名缩写作为头像。默认使用默认个人形象。", - "Fluidly stream large external response chunks": "流畅地传输大型外部响应块", - "Focus chat input": "聚焦聊天输入", - "Followed instructions perfectly": "完全遵循说明", + "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "检测到指纹伪造:无法使用姓名缩写作为头像。默认使用默认个人形象。", + "Fluidly stream large external response chunks": "流畅地传输外部大型响应块数据", + "Focus chat input": "聚焦对话输入", + "Followed instructions perfectly": "完全遵循指令", "Format your variables using square brackets like this:": "使用这样的方括号格式化你的变量:", "Frequency Penalty": "频率惩罚", - "Full Screen Mode": "全屏模式", + "Full Screen Mode": "宽屏模式", "General": "通用", "General Settings": "通用设置", "Generating search query": "生成搜索查询", "Generation Info": "生成信息", - "Good Response": "反应良好", + "Good Response": "优秀回复", "Google PSE API Key": "Google PSE API 密钥", "Google PSE Engine Id": "Google PSE 引擎 ID", "h:mm a": "h:mm a", @@ -235,16 +237,16 @@ "Hello, {{name}}": "你好,{{name}}", "Help": "帮助", "Hide": "隐藏", - "How can I help you today?": "我今天能帮你做什么?", + "How can I help you today?": "今天我能帮你做些什么?", "Hybrid Search": "混合搜索", "Image Generation (Experimental)": "图像生成(实验性)", "Image Generation Engine": "图像生成引擎", "Image Settings": "图像设置", "Images": "图像", - "Import Chats": "导入聊天", + "Import Chats": "导入对话记录", "Import Documents Mapping": "导入文档映射", "Import Models": "导入模型", - "Import Prompts": "导入提示", + "Import Prompts": "导入提示词", "Include `--api` flag when running stable-diffusion-webui": "运行 stable-diffusion-webui 时包含 `--api` 标志", "Info": "信息", "Input commands": "输入命令", @@ -262,35 +264,35 @@ "Keep Alive": "保持活动", "Keyboard shortcuts": "键盘快捷键", "Language": "语言", - "Last Active": "最后活跃", + "Last Active": "最后在线时间", "Light": "浅色", - "Listening...": "监听中...", - "LLMs can make mistakes. Verify important information.": "LLM 可能会生成错误信息,请验证重要信息。", - "LTR": "LTR", + "Listening...": "正在倾听...", + "LLMs can make mistakes. Verify important information.": "大语言模型可能会生成误导性错误信息,请对关键信息加以验证。", + "LTR": "从左至右", "Made by OpenWebUI Community": "由 OpenWebUI 社区制作", "Make sure to enclose them with": "确保将它们包含在内", "Manage Models": "管理模型", "Manage Ollama Models": "管理 Ollama 模型", - "Manage Pipelines": "管理管道", + "Manage Pipelines": "管理 Pipeline", "March": "三月", - "Max Tokens (num_predict)": "最大标记 (num_predict)", + "Max Tokens (num_predict)": "最多 Token (num_predict)", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载 3 个模型,请稍后重试。", "May": "五月", - "Memories accessible by LLMs will be shown here.": "LLMs 可以访问的记忆将显示在这里。", + "Memories accessible by LLMs will be shown here.": "大语言模型可访问的记忆将在此显示。", "Memory": "记忆", - "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "创建链接后发送的消息不会被共享。具有 URL 的用户将能够查看共享聊天。", + "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "创建链接后发送的消息不会被共享。具有 URL 的用户将能够查看共享对话。", "Minimum Score": "最低分", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", "Mirostat Tau": "Mirostat Tau", - "MMMM DD, YYYY": "MMMM DD, YYYY", - "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", + "MMMM DD, YYYY": "YYYY年 M月 D日", + "MMMM DD, YYYY HH:mm": "YYYY年 M月 D日 HH:mm", "Model '{{modelName}}' has been successfully downloaded.": "模型'{{modelName}}'已成功下载。", "Model '{{modelTag}}' is already in queue for downloading.": "模型'{{modelTag}}'已在下载队列中。", - "Model {{modelId}} not found": "未找到模型{{modelId}}", + "Model {{modelId}} not found": "未找到模型 {{modelId}}", "Model {{modelName}} is not vision capable": "模型 {{modelName}} 不支持视觉功能", "Model {{name}} is now {{status}}": "模型 {{name}} 现在是 {{status}}", - "Model filesystem path detected. Model shortname is required for update, cannot continue.": "检测到模型文件系统路径。模型简名是更新所必需的,无法继续。", + "Model filesystem path detected. Model shortname is required for update, cannot continue.": "检测到模型文件系统路径,无法继续进行。更新操作需要提供模型简称。", "Model ID": "模型 ID", "Model not selected": "未选择模型", "Model Params": "模型参数", @@ -300,9 +302,9 @@ "Models": "模型", "More": "更多", "Name": "名称", - "Name Tag": "名称标签", + "Name Tag": "标签", "Name your model": "为您的模型命名", - "New Chat": "新聊天", + "New Chat": "新对话", "New Password": "新密码", "No results found": "未找到结果", "No search query generated": "未生成搜索查询", @@ -312,25 +314,25 @@ "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "注意:如果设置了最低分数,搜索只会返回分数大于或等于最低分数的文档。", "Notifications": "桌面通知", "November": "十一月", - "num_thread (Ollama)": "num_thread(奥拉马)", + "num_thread (Ollama)": "num_thread(Ollama)", "October": "十月", "Off": "关闭", - "Okay, Let's Go!": "好的,我们开始吧!", - "OLED Dark": "暗黑色", + "Okay, Let's Go!": "确认,开始使用!", + "OLED Dark": "黑色", "Ollama": "Ollama", "Ollama API": "Ollama API", "Ollama API disabled": "Ollama API 已禁用", "Ollama Version": "Ollama 版本", - "On": "开", + "On": "开启", "Only": "仅", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字符串中只允许使用英文字母,数字 (0-9) 以及连字符 (-)。", - "Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "哎呀!请稍等!您的文件仍在处理中。我们正在将它们做得尽善尽美,请耐心等待,一旦准备好我们会通知您。", - "Oops! Looks like the URL is invalid. Please double-check and try again.": "哎呀!看起来 URL 无效。请仔细检查后再试一次。", - "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "哎呀!您正在使用不支持的方法(仅限前端)。请从后端提供 WebUI。", + "Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "糟糕!请稍等!您的文件还在处理中。我们正在努力让它们达到最佳效果。请耐心等待,准备好后我们会通知您。", + "Oops! Looks like the URL is invalid. Please double-check and try again.": "糟糕!此链接似乎为无效链接。请检查后重试。", + "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "糟糕!你正在使用不被支持的方法(仅前端)。请从后端提供 WebUI 服务。", "Open": "打开", "Open AI": "Open AI", "Open AI (Dall-E)": "Open AI (Dall-E)", - "Open new chat": "打开新聊天", + "Open new chat": "打开新对话", "OpenAI": "OpenAI", "OpenAI API": "OpenAI API", "OpenAI API Config": "OpenAI API 配置", @@ -342,31 +344,31 @@ "PDF document (.pdf)": "PDF 文档 (.pdf)", "PDF Extract Images (OCR)": "PDF 图像处理 (使用 OCR)", "pending": "待定", - "Permission denied when accessing microphone: {{error}}": "访问麦克风时权限被拒绝:{{error}}", + "Permission denied when accessing microphone: {{error}}": "申请麦克风权限被拒绝:{{error}}", "Personalization": "个性化", - "Pipelines": "管道", - "Pipelines Valves": "管道阀门", + "Pipelines": "Pipeline", + "Pipelines Valves": "Pipeline 值", "Plain text (.txt)": "TXT 文档 (.txt)", "Playground": "AI 对话游乐场", - "Positive attitude": "积极态度", + "Positive attitude": "较为积极的态度", "Previous 30 days": "过去 30 天", "Previous 7 days": "过去 7 天", "Profile Image": "用户头像", "Prompt": "提示词", - "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "提示(例如:告诉我一个关于罗马帝国的有趣事实)", + "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "提示(例如:给我讲一个关于罗马帝国的趣事。)", "Prompt Content": "提示词内容", "Prompt suggestions": "提示词建议", "Prompts": "提示词", "Pull \"{{searchValue}}\" from Ollama.com": "从 Ollama.com 拉取 \"{{searchValue}}\"", "Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型", "Query Params": "查询参数", - "RAG Template": "RAG 模板", + "RAG Template": "RAG 提示词模板", "Read Aloud": "朗读", "Record voice": "录音", "Redirecting you to OpenWebUI Community": "正在将您重定向到 OpenWebUI 社区", - "Refused when it shouldn't have": "在不该拒绝时拒绝", + "Refused when it shouldn't have": "在不应拒绝时拒绝", "Regenerate": "重新生成", - "Release Notes": "发布说明", + "Release Notes": "更新日志", "Remove": "移除", "Remove Model": "移除模型", "Rename": "重命名", @@ -376,31 +378,31 @@ "Reranking model disabled": "重排模型已禁用", "Reranking model set to \"{{reranking_model}}\"": "重排模型设置为 \"{{reranking_model}}\"", "Reset Vector Storage": "重置向量存储", - "Response AutoCopy to Clipboard": "自动复制回答到剪贴板", - "Role": "角色", + "Response AutoCopy to Clipboard": "自动复制回复到剪贴板", + "Role": "权限组", "Rosé Pine": "Rosé Pine", "Rosé Pine Dawn": "Rosé Pine Dawn", - "RTL": "RTL", + "RTL": "从右至左", "Save": "保存", "Save & Create": "保存并创建", "Save & Update": "保存并更新", - "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "不再支持直接将聊天记录保存到浏览器存储中。请点击下面的按钮下载并删除您的聊天记录。别担心,您可以通过轻松地将聊天记录重新导入到后端", - "Scan": "扫描", + "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "我们不再支持将聊天记录直接保存到浏览器的存储空间。请点击下面的按钮下载并删除您的聊天记录。别担心,您可以轻松地将聊天记录重新导入到后台。", + "Scan": "立即扫描", "Scan complete!": "扫描完成!", "Scan for documents from {{path}}": "从 {{path}} 扫描文档", "Search": "搜索", "Search a model": "搜索模型", - "Search Chats": "搜索聊天", + "Search Chats": "搜索对话", "Search Documents": "搜索文档", "Search Models": "搜索模型", "Search Prompts": "搜索提示词", "Search Result Count": "搜索结果数量", - "Searched {{count}} sites_other": "搜索 {{count}} 个网站_other", - "Searching the web for '{{searchQuery}}'": "搜索 '{{searchQuery}}' 在网络中", + "Searched {{count}} sites_other": "搜索 {{count}} 个网站", + "Searching the web for '{{searchQuery}}'": "在网络中搜索 '{{searchQuery}}' ", "Searxng Query URL": "Searxng 查询 URL", "See readme.md for instructions": "查看 readme.md 以获取说明", - "See what's new": "查看最新内容", - "Seed": "种子", + "See what's new": "查阅最新更新内容", + "Seed": "种子 (Seed)", "Select a base model": "选择一个基础模型", "Select a mode": "选择一个模式", "Select a model": "选择一个模型", @@ -408,7 +410,7 @@ "Select a pipeline url": "选择一个管道 URL", "Select an Ollama instance": "选择一个 Ollama 实例", "Select model": "选择模型", - "Selected model(s) do not support image inputs": "已选择的模型不支持图像输入", + "Selected model(s) do not support image inputs": "已选择的模型不支持发送图像", "Send": "发送", "Send a Message": "发送消息", "Send message": "发送消息", @@ -418,22 +420,22 @@ "Server connection verified": "已验证服务器连接", "Set as default": "设为默认", "Set Default Model": "设置默认模型", - "Set embedding model (e.g. {{model}})": "设置嵌入模型(例如 {{model}})", - "Set Image Size": "设置图片大小", + "Set embedding model (e.g. {{model}})": "设置语义向量模型 (例如:{{model}})", + "Set Image Size": "设置图片分辨率", "Set Model": "设置模型", - "Set reranking model (e.g. {{model}})": "设置重排模型(例如 {{model}})", + "Set reranking model (e.g. {{model}})": "设置重排模型 (例如:{{model}})", "Set Steps": "设置步骤", "Set Task Model": "设置任务模型", - "Set Voice": "设置声音", + "Set Voice": "设置音色", "Settings": "设置", "Settings saved successfully!": "设置已保存", "Share": "分享", - "Share Chat": "分享聊天", + "Share Chat": "分享对话", "Share to OpenWebUI Community": "分享到 OpenWebUI 社区", "short-summary": "简短总结", "Show": "显示", "Show shortcuts": "显示快捷方式", - "Showcased creativity": "展示创意", + "Showcased creativity": "显示出较强的创造力", "sidebar": "侧边栏", "Sign in": "登录", "Sign Out": "登出", @@ -441,40 +443,40 @@ "Signing in": "正在登录", "Source": "来源", "Speech recognition error: {{error}}": "语音识别错误:{{error}}", - "Speech-to-Text Engine": "语音转文字引擎", + "Speech-to-Text Engine": "语音转文本引擎", "SpeechRecognition API is not supported in this browser.": "此浏览器不支持 SpeechRecognition API。", - "Stop Sequence": "停止序列", - "STT Settings": "语音转文字设置", + "Stop Sequence": "停止序列 (Stop Sequence)", + "STT Settings": "语音转文本设置", "Submit": "提交", - "Subtitle (e.g. about the Roman Empire)": "副标题(如关于罗马帝国的副标题)", + "Subtitle (e.g. about the Roman Empire)": "副标题(例如:关于罗马帝国的副标题)", "Success": "成功", "Successfully updated.": "成功更新。", "Suggested": "建议", "System": "系统", - "System Prompt": "系统提示", + "System Prompt": "系统提示词", "Tags": "标签", - "Tell us more:": "告诉我们更多信息", - "Temperature": "温度", + "Tell us more:": "请告诉我们更多细节", + "Temperature": "温度 (Temperature)", "Template": "模板", "Text Completion": "文本完成", "Text-to-Speech Engine": "文本转语音引擎", "Tfs Z": "Tfs Z", - "Thanks for your feedback!": "感谢你的反馈!", + "Thanks for your feedback!": "感谢您的反馈!", "The score should be a value between 0.0 (0%) and 1.0 (100%).": "分值应介于 0.0(0%)和 1.0(100%)之间。", "Theme": "主题", - "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "这确保了您宝贵的对话被安全保存到后端数据库中。谢谢!", + "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "这将确保您的宝贵对话被安全地保存到后台数据库中。感谢!", "This setting does not sync across browsers or devices.": "此设置不会在浏览器或设备之间同步。", "Thorough explanation": "详尽的解释", - "Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "提示:在每次替换后,在聊天输入中按 Tab 键可以连续更新多个变量。", + "Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "提示:在每次替换后,在对话输入中按 Tab 键可以连续更新多个变量。", "Title": "标题", - "Title (e.g. Tell me a fun fact)": "标题(例如 告诉我一个有趣的事实)", - "Title Auto-Generation": "标题自动生成", + "Title (e.g. Tell me a fun fact)": "标题(例如 给我讲一个有趣的事实)", + "Title Auto-Generation": "自动生成标题", "Title cannot be an empty string.": "标题不能为空字符串。", - "Title Generation Prompt": "自动生成标题的提示词", + "Title Generation Prompt": "用于自动生成标题的提示词", "to": "到", "To access the available model names for downloading,": "要访问可下载的模型名称,", "To access the GGUF models available for downloading,": "要访问可下载的 GGUF 模型,", - "to chat input.": "到聊天输入。", + "to chat input.": "到对话输入。", "Today": "今天", "Toggle settings": "切换设置", "Toggle sidebar": "切换侧边栏", @@ -484,7 +486,7 @@ "TTS Settings": "文本转语音设置", "Type": "类型", "Type Hugging Face Resolve (Download) URL": "输入 Hugging Face 解析(下载)URL", - "Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!连接到{{provider}}时出现问题。", + "Uh-oh! There was an issue connecting to {{provider}}.": "糟糕!连接到 {{provider}} 时出现问题。", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理", "Update and Copy Link": "更新和复制链接", "Update password": "更新密码", @@ -492,10 +494,10 @@ "Upload Files": "上传文件", "Upload Progress": "上传进度", "URL Mode": "URL 模式", - "Use '#' in the prompt input to load and select your documents.": "在提示输入中使用'#'来加载和选择你的文档。", - "Use Gravatar": "使用 Gravatar", - "Use Initials": "使用首字母缩写", - "use_mlock (Ollama)": "use_mlock(奥拉马)", + "Use '#' in the prompt input to load and select your documents.": "在输入框中输入'#'号来选择并附带你的文档。", + "Use Gravatar": "使用来自 Gravatar 的头像", + "Use Initials": "使用首个字符作为头像", + "use_mlock (Ollama)": "use_mlock(Ollama)", "use_mmap (Ollama)": "use_mmap (Ollama)", "user": "用户", "User Permissions": "用户权限", @@ -506,29 +508,29 @@ "variable to have them replaced with clipboard content.": "变量将被剪贴板内容替换。", "Version": "版本", "Warning": "警告", - "Warning: If you update or change your embedding model, you will need to re-import all documents.": "警告: 如果更新或更改 embedding 模型,则需要重新导入所有文档。", + "Warning: If you update or change your embedding model, you will need to re-import all documents.": "警告:如果您修改了语义向量模型,则需要重新导入所有文档。", "Web": "网页", - "Web Loader Settings": "Web 加载器设置", - "Web Params": "Web 参数", - "Web Search": "Web 搜索", + "Web Loader Settings": "网页爬取设置", + "Web Params": "网络爬取设置", + "Web Search": "网络搜索", "Web Search Engine": "Web 搜索引擎", "Webhook URL": "Webhook URL", - "WebUI Add-ons": "WebUI 插件", + "WebUI Add-ons": "WebUI 附加组件", "WebUI Settings": "WebUI 设置", "WebUI will make requests to": "WebUI 将请求", - "What’s New in": "最新变化", - "When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "当历史记录被关闭时,这个浏览器上的新聊天不会出现在你任何设备的历史记录中。", + "What’s New in": "最近更新内容于", + "When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "当关闭历史记录功能时,在此浏览器上新的对话记录将不会同步到您其他设备的历史记录中。", "Whisper (Local)": "Whisper(本地)", "Workspace": "工作空间", - "Write a prompt suggestion (e.g. Who are you?)": "写一个提示建议(例如:你是谁?)", + "Write a prompt suggestion (e.g. Who are you?)": "写一个提示词建议(例如:你是谁?)", "Write a summary in 50 words that summarizes [topic or keyword].": "用 50 个字写一个总结 [主题或关键词]。", "Yesterday": "昨天", "You": "你", - "You cannot clone a base model": "你不能克隆基础模型", - "You have no archived conversations.": "你没有存档的对话。", - "You have shared this chat": "你分享了这次聊天", + "You cannot clone a base model": "你不能复制基础模型", + "You have no archived conversations.": "你没有已归档的对话。", + "You have shared this chat": "你之前已经分享过此", "You're a helpful assistant.": "你是一个有帮助的助手。", "You're now logged in.": "已登录。", - "Youtube": "Youtube", - "Youtube Loader Settings": "Youtube 加载器设置" + "Youtube": "YouTube", + "Youtube Loader Settings": "YouTube 爬取设置" } diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index d78cfad4e..87e00f71f 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -37,6 +37,7 @@ "All Users": "所有使用者", "Allow": "允許", "Allow Chat Deletion": "允許刪除聊天紀錄", + "Allow non-local voices": "", "alphanumeric characters and hyphens": "英文字母、數字(0~9)和連字符(-)", "Already have an account?": "已經有帳號了嗎?", "an assistant": "助手", @@ -206,6 +207,7 @@ "Experimental": "實驗功能", "Export": "出口", "Export All Chats (All Users)": "匯出所有聊天紀錄(所有使用者)", + "Export chat (.json)": "", "Export Chats": "匯出聊天紀錄", "Export Documents Mapping": "匯出文件映射", "Export Models": "匯出模型", diff --git a/src/lib/stores/index.ts b/src/lib/stores/index.ts index 63453a5cd..5616045f6 100644 --- a/src/lib/stores/index.ts +++ b/src/lib/stores/index.ts @@ -111,6 +111,7 @@ type AudioSettings = { TTSEngine?: string; speaker?: string; model?: string; + nonLocalVoices?: boolean; }; type TitleSettings = {