diff --git a/README.md b/README.md index 6540d9792..6302b02f0 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Open WebUI is an extensible, feature-rich, and user-friendly self-hosted WebUI d - 🤝 **Ollama/OpenAI API Integration**: Effortlessly integrate OpenAI-compatible APIs for versatile conversations alongside Ollama models. Customize the OpenAI API URL to link with **LMStudio, GroqCloud, Mistral, OpenRouter, and more**. -- 🧩 **Pipelines, Open WebUI Plugin Support**: Seamlessly integrate custom logic and Python libraries into Open WebUI using [Pipelines Plugin Framework](https://github.com/open-webui/pipelines). Launch your Pipelines instance, set the OpenAI URL to the Pipelines URL, and explore endless possibilities. [Examples](https://github.com/open-webui/pipelines/examples) include **Function Calling**, User **Rate Limiting** to control access, **Usage Monitoring** with tools like Langfuse, **Live Translation with LibreTranslate** for multilingual support, **Toxic Message Filtering** and much more. +- 🧩 **Pipelines, Open WebUI Plugin Support**: Seamlessly integrate custom logic and Python libraries into Open WebUI using [Pipelines Plugin Framework](https://github.com/open-webui/pipelines). Launch your Pipelines instance, set the OpenAI URL to the Pipelines URL, and explore endless possibilities. [Examples](https://github.com/open-webui/pipelines/tree/main/examples) include **Function Calling**, User **Rate Limiting** to control access, **Usage Monitoring** with tools like Langfuse, **Live Translation with LibreTranslate** for multilingual support, **Toxic Message Filtering** and much more. - 📱 **Responsive Design**: Enjoy a seamless experience across Desktop PC, Laptop, and Mobile devices. diff --git a/src/lib/components/icons/Keyboard.svelte b/src/lib/components/icons/Keyboard.svelte new file mode 100644 index 000000000..baf633c0d --- /dev/null +++ b/src/lib/components/icons/Keyboard.svelte @@ -0,0 +1,19 @@ + + + diff --git a/src/lib/components/icons/Lifebuoy.svelte b/src/lib/components/icons/Lifebuoy.svelte new file mode 100644 index 000000000..d8c49b0ae --- /dev/null +++ b/src/lib/components/icons/Lifebuoy.svelte @@ -0,0 +1,19 @@ + + + + + diff --git a/src/lib/components/icons/QuestionMarkCircle.svelte b/src/lib/components/icons/QuestionMarkCircle.svelte new file mode 100644 index 000000000..79c2e7d84 --- /dev/null +++ b/src/lib/components/icons/QuestionMarkCircle.svelte @@ -0,0 +1,19 @@ + + + + + diff --git a/src/lib/components/layout/Help.svelte b/src/lib/components/layout/Help.svelte new file mode 100644 index 000000000..2dbc26d98 --- /dev/null +++ b/src/lib/components/layout/Help.svelte @@ -0,0 +1,40 @@ + + + + + diff --git a/src/lib/components/layout/Help/HelpMenu.svelte b/src/lib/components/layout/Help/HelpMenu.svelte new file mode 100644 index 000000000..7371f629c --- /dev/null +++ b/src/lib/components/layout/Help/HelpMenu.svelte @@ -0,0 +1,60 @@ + + + { + if (e.detail === false) { + onClose(); + } + }} +> + + +
+ + { + window.open('https://docs.openwebui.com', '_blank'); + }} + > + +
{$i18n.t('Documentation')}
+
+ + { + showShortcutsHandler(); + }} + > + +
{$i18n.t('Keyboard shortcuts')}
+
+
+
+
diff --git a/src/lib/i18n/locales/tr-TR/translation.json b/src/lib/i18n/locales/tr-TR/translation.json index 8670b9a17..d01b08105 100644 --- a/src/lib/i18n/locales/tr-TR/translation.json +++ b/src/lib/i18n/locales/tr-TR/translation.json @@ -3,7 +3,7 @@ "(Beta)": "(Beta)", "(e.g. `sh webui.sh --api`)": "(örn. `sh webui.sh --api`)", "(latest)": "(en son)", - "{{ models }}": "{{ modeller }}", + "{{ models }}": "{{ models }}", "{{ owner }}: You cannot delete a base model": "{{ owner }}: Temel modeli silemezsiniz", "{{modelName}} is thinking...": "{{modelName}} düşünüyor...", "{{user}}'s Chats": "{{user}} Sohbetleri", @@ -37,7 +37,7 @@ "All Users": "Tüm Kullanıcılar", "Allow": "İzin ver", "Allow Chat Deletion": "Sohbet Silmeye İzin Ver", - "Allow non-local voices": "", + "Allow non-local voices": "Yerel olmayan seslere izin verin", "alphanumeric characters and hyphens": "alfanumerik karakterler ve tireler", "Already have an account?": "Zaten bir hesabınız mı var?", "an assistant": "bir asistan", @@ -68,7 +68,7 @@ "Base Model (From)": "Temel Model ('den)", "before": "önce", "Being lazy": "Tembelleşiyor", - "Brave Search API Key": "Cesur Arama API Anahtarı", + "Brave Search API Key": "Brave Search API Anahtarı", "Bypass SSL verification for Websites": "Web Siteleri için SSL doğrulamasını atlayın", "Cancel": "İptal", "Capabilities": "Yetenekler", @@ -170,7 +170,7 @@ "Edit Doc": "Belgeyi Düzenle", "Edit User": "Kullanıcıyı Düzenle", "Email": "E-posta", - "Embedding Batch Size": "", + "Embedding Batch Size": "Gömme Yığın Boyutu", "Embedding Model": "Gömme Modeli", "Embedding Model Engine": "Gömme Modeli Motoru", "Embedding model set to \"{{embedding_model}}\"": "Gömme modeli \"{{embedding_model}}\" olarak ayarlandı", @@ -187,7 +187,7 @@ "Enter Chunk Size": "Chunk Boyutunu Girin", "Enter Github Raw URL": "Github Raw URL'sini girin", "Enter Google PSE API Key": "Google PSE API Anahtarını Girin", - "Enter Google PSE Engine Id": "Google PSE Motor Kimliğini Girin", + "Enter Google PSE Engine Id": "Google PSE Engine Id'sini Girin", "Enter Image Size (e.g. 512x512)": "Görüntü Boyutunu Girin (örn. 512x512)", "Enter language codes": "Dil kodlarını girin", "Enter model tag (e.g. {{modelTag}})": "Model etiketini girin (örn. {{modelTag}})", @@ -206,9 +206,9 @@ "Enter Your Role": "Rolünüzü Girin", "Error": "Hata", "Experimental": "Deneysel", - "Export": "Ihracat", + "Export": "Dışa Aktar", "Export All Chats (All Users)": "Tüm Sohbetleri Dışa Aktar (Tüm Kullanıcılar)", - "Export chat (.json)": "", + "Export chat (.json)": "Sohbeti dışa aktar (.json)", "Export Chats": "Sohbetleri Dışa Aktar", "Export Documents Mapping": "Belge Eşlemesini Dışa Aktar", "Export Models": "Modelleri Dışa Aktar", @@ -232,7 +232,7 @@ "Generation Info": "Üretim Bilgisi", "Good Response": "İyi Yanıt", "Google PSE API Key": "Google PSE API Anahtarı", - "Google PSE Engine Id": "Google PSE Motor Kimliği", + "Google PSE Engine Id": "Google PSE Engine Id", "h:mm a": "h:mm a", "has no conversations.": "hiç konuşması yok.", "Hello, {{name}}": "Merhaba, {{name}}", @@ -292,7 +292,7 @@ "Model '{{modelTag}}' is already in queue for downloading.": "'{{modelTag}}' zaten indirme sırasında.", "Model {{modelId}} not found": "{{modelId}} bulunamadı", "Model {{modelName}} is not vision capable": "Model {{modelName}} görüntü yeteneğine sahip değil", - "Model {{name}} is now {{status}}": "{{name}} modeli artık {{status}} oldu", + "Model {{name}} is now {{status}}": "{{name}} modeli artık {{status}}", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "Model dosya sistemi yolu algılandı. Güncelleme için model kısa adı gerekli, devam edilemiyor.", "Model ID": "Model ID", "Model not selected": "Model seçilmedi", @@ -347,8 +347,8 @@ "pending": "beklemede", "Permission denied when accessing microphone: {{error}}": "Mikrofona erişim izni reddedildi: {{error}}", "Personalization": "Kişiselleştirme", - "Pipelines": "Boru hattı", - "Pipelines Valves": "Boru Hatları Vanaları", + "Pipelines": "Pipelinelar", + "Pipelines Valves": "Pipeline Valvleri", "Plain text (.txt)": "Düz metin (.txt)", "Playground": "Oyun Alanı", "Positive attitude": "Olumlu yaklaşım", diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index fe960f44f..8f0efe95e 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -36,6 +36,7 @@ import Tooltip from '$lib/components/common/Tooltip.svelte'; import { getBanners } from '$lib/apis/configs'; import { getUserSettings } from '$lib/apis/users'; + import Help from '$lib/components/layout/Help.svelte'; const i18n = getContext('i18n'); @@ -160,7 +161,7 @@ if (isCtrlPressed && event.key === '/') { event.preventDefault(); console.log('showShortcuts'); - showShortcutsButtonElement.click(); + document.getElementById('show-shortcuts-button')?.click(); } }); @@ -175,22 +176,7 @@ }); - - - +