diff --git a/web/i18n/de-DE/app-annotation.ts b/web/i18n/de-DE/app-annotation.ts
index 8b96da2752..ef2fa1f236 100644
--- a/web/i18n/de-DE/app-annotation.ts
+++ b/web/i18n/de-DE/app-annotation.ts
@@ -1,87 +1,87 @@
-const translation = {
- title: 'Anmerkungen',
- name: 'Antwort Anmerkung',
- editBy: 'Antwort bearbeitet von {{author}}',
- noData: {
- title: 'Keine Anmerkungen',
- description: 'Sie können Anmerkungen während des App-Debuggings bearbeiten oder hier Anmerkungen in großen Mengen importieren für eine hochwertige Antwort.',
- },
- table: {
- header: {
- question: 'Frage',
- answer: 'Antwort',
- createdAt: 'erstellt am',
- hits: 'Treffer',
- actions: 'Aktionen',
- addAnnotation: 'Anmerkung hinzufügen',
- bulkImport: 'Massenimport',
- bulkExport: 'Massenexport',
- clearAll: 'Alle Anmerkungen löschen',
- },
- },
- editModal: {
- title: 'Antwort Anmerkung bearbeiten',
- queryName: 'Benutzeranfrage',
- answerName: 'Geschichtenerzähler Bot',
- yourAnswer: 'Ihre Antwort',
- answerPlaceholder: 'Geben Sie hier Ihre Antwort ein',
- yourQuery: 'Ihre Anfrage',
- queryPlaceholder: 'Geben Sie hier Ihre Anfrage ein',
- removeThisCache: 'Diese Anmerkung entfernen',
- createdAt: 'Erstellt am',
- },
- addModal: {
- title: 'Antwort Anmerkung hinzufügen',
- queryName: 'Frage',
- answerName: 'Antwort',
- answerPlaceholder: 'Antwort hier eingeben',
- queryPlaceholder: 'Anfrage hier eingeben',
- createNext: 'Eine weitere annotierte Antwort hinzufügen',
- },
- batchModal: {
- title: 'Massenimport',
- csvUploadTitle: 'Ziehen Sie Ihre CSV-Datei hierher oder ',
- browse: 'durchsuchen',
- tip: 'Die CSV-Datei muss der folgenden Struktur entsprechen:',
- question: 'Frage',
- answer: 'Antwort',
- contentTitle: 'Inhaltsabschnitt',
- content: 'Inhalt',
- template: 'Laden Sie die Vorlage hier herunter',
- cancel: 'Abbrechen',
- run: 'Batch ausführen',
- runError: 'Batch-Ausführung fehlgeschlagen',
- processing: 'In Batch-Verarbeitung',
- completed: 'Import abgeschlossen',
- error: 'Importfehler',
- ok: 'OK',
- },
- errorMessage: {
- answerRequired: 'Antwort erforderlich',
- queryRequired: 'Frage erforderlich',
- },
- viewModal: {
- annotatedResponse: 'Antwort Anmerkung',
- hitHistory: 'Trefferhistorie',
- hit: 'Treffer',
- hits: 'Treffer',
- noHitHistory: 'Keine Trefferhistorie',
- },
- hitHistoryTable: {
- query: 'Anfrage',
- match: 'Übereinstimmung',
- response: 'Antwort',
- source: 'Quelle',
- score: 'Punktzahl',
- time: 'Zeit',
- },
- initSetup: {
- title: 'Initialeinrichtung Antwort Anmerkung',
- configTitle: 'Einrichtung Antwort Anmerkung',
- confirmBtn: 'Speichern & Aktivieren',
- configConfirmBtn: 'Speichern',
- },
- embeddingModelSwitchTip: 'Anmerkungstext-Vektorisierungsmodell, das Wechseln von Modellen wird neu eingebettet, was zusätzliche Kosten verursacht.',
-}
-
-export default translation
+const translation = {
+ title: 'Anmerkungen',
+ name: 'Antwort Anmerkung',
+ editBy: 'Antwort bearbeitet von {{author}}',
+ noData: {
+ title: 'Keine Anmerkungen',
+ description: 'Sie können Anmerkungen während des App-Debuggings bearbeiten oder hier Anmerkungen in großen Mengen importieren für eine hochwertige Antwort.',
+ },
+ table: {
+ header: {
+ question: 'Frage',
+ answer: 'Antwort',
+ createdAt: 'erstellt am',
+ hits: 'Treffer',
+ actions: 'Aktionen',
+ addAnnotation: 'Anmerkung hinzufügen',
+ bulkImport: 'Massenimport',
+ bulkExport: 'Massenexport',
+ clearAll: 'Alle Anmerkungen löschen',
+ },
+ },
+ editModal: {
+ title: 'Antwort Anmerkung bearbeiten',
+ queryName: 'Benutzeranfrage',
+ answerName: 'Geschichtenerzähler Bot',
+ yourAnswer: 'Ihre Antwort',
+ answerPlaceholder: 'Geben Sie hier Ihre Antwort ein',
+ yourQuery: 'Ihre Anfrage',
+ queryPlaceholder: 'Geben Sie hier Ihre Anfrage ein',
+ removeThisCache: 'Diese Anmerkung entfernen',
+ createdAt: 'Erstellt am',
+ },
+ addModal: {
+ title: 'Antwort Anmerkung hinzufügen',
+ queryName: 'Frage',
+ answerName: 'Antwort',
+ answerPlaceholder: 'Antwort hier eingeben',
+ queryPlaceholder: 'Anfrage hier eingeben',
+ createNext: 'Eine weitere annotierte Antwort hinzufügen',
+ },
+ batchModal: {
+ title: 'Massenimport',
+ csvUploadTitle: 'Ziehen Sie Ihre CSV-Datei hierher oder ',
+ browse: 'durchsuchen',
+ tip: 'Die CSV-Datei muss der folgenden Struktur entsprechen:',
+ question: 'Frage',
+ answer: 'Antwort',
+ contentTitle: 'Inhaltsabschnitt',
+ content: 'Inhalt',
+ template: 'Laden Sie die Vorlage hier herunter',
+ cancel: 'Abbrechen',
+ run: 'Batch ausführen',
+ runError: 'Batch-Ausführung fehlgeschlagen',
+ processing: 'In Batch-Verarbeitung',
+ completed: 'Import abgeschlossen',
+ error: 'Importfehler',
+ ok: 'OK',
+ },
+ errorMessage: {
+ answerRequired: 'Antwort erforderlich',
+ queryRequired: 'Frage erforderlich',
+ },
+ viewModal: {
+ annotatedResponse: 'Antwort Anmerkung',
+ hitHistory: 'Trefferhistorie',
+ hit: 'Treffer',
+ hits: 'Treffer',
+ noHitHistory: 'Keine Trefferhistorie',
+ },
+ hitHistoryTable: {
+ query: 'Anfrage',
+ match: 'Übereinstimmung',
+ response: 'Antwort',
+ source: 'Quelle',
+ score: 'Punktzahl',
+ time: 'Zeit',
+ },
+ initSetup: {
+ title: 'Initialeinrichtung Antwort Anmerkung',
+ configTitle: 'Einrichtung Antwort Anmerkung',
+ confirmBtn: 'Speichern & Aktivieren',
+ configConfirmBtn: 'Speichern',
+ },
+ embeddingModelSwitchTip: 'Anmerkungstext-Vektorisierungsmodell, das Wechseln von Modellen wird neu eingebettet, was zusätzliche Kosten verursacht.',
+}
+
+export default translation
diff --git a/web/i18n/de-DE/app-api.ts b/web/i18n/de-DE/app-api.ts
index 91f4589963..3704dc8b21 100644
--- a/web/i18n/de-DE/app-api.ts
+++ b/web/i18n/de-DE/app-api.ts
@@ -1,82 +1,83 @@
-const translation = {
- apiServer: 'API Server',
- apiKey: 'API Schlüssel',
- status: 'Status',
- disabled: 'Deaktiviert',
- ok: 'In Betrieb',
- copy: 'Kopieren',
- copied: 'Kopiert',
- play: 'Abspielen',
- pause: 'Pause',
- playing: 'Wiedergabe',
- merMaind: {
- rerender: 'Neu rendern',
- },
- never: 'Nie',
- apiKeyModal: {
- apiSecretKey: 'API Geheimschlüssel',
- apiSecretKeyTips: 'Um Missbrauch der API zu verhindern, schützen Sie Ihren API Schlüssel. Vermeiden Sie es, ihn als Klartext im Frontend-Code zu verwenden. :)',
- createNewSecretKey: 'Neuen Geheimschlüssel erstellen',
- secretKey: 'Geheimschlüssel',
- created: 'ERSTELLT',
- lastUsed: 'ZULETZT VERWENDET',
- generateTips: 'Bewahren Sie diesen Schlüssel an einem sicheren und zugänglichen Ort auf.',
- },
- actionMsg: {
- deleteConfirmTitle: 'Diesen Geheimschlüssel löschen?',
- deleteConfirmTips: 'Diese Aktion kann nicht rückgängig gemacht werden.',
- ok: 'OK',
- },
- completionMode: {
- title: 'Completion App API',
- info: 'Für die Erzeugung von hochwertigem Text, wie z.B. Artikel, Zusammenfassungen und Übersetzungen, verwenden Sie die Completion-Messages API mit Benutzereingaben. Die Texterzeugung basiert auf den Modellparametern und Vorlagen für Aufforderungen in Dify Prompt Engineering.',
- createCompletionApi: 'Completion Nachricht erstellen',
- createCompletionApiTip: 'Erstellen Sie eine Completion Nachricht, um den Frage-Antwort-Modus zu unterstützen.',
- inputsTips: '(Optional) Geben Sie Benutzereingabefelder als Schlüssel-Wert-Paare an, die Variablen in Prompt Eng. entsprechen. Schlüssel ist der Variablenname, Wert ist der Parameterwert. Wenn der Feldtyp Select ist, muss der übermittelte Wert eine der voreingestellten Optionen sein.',
- queryTips: 'Textinhalt der Benutzereingabe.',
- blocking: 'Blockierender Typ, wartet auf die Fertigstellung der Ausführung und gibt Ergebnisse zurück. (Anfragen können unterbrochen werden, wenn der Prozess lang ist)',
- streaming: 'Streaming Rückgaben. Implementierung der Streaming-Rückgabe basierend auf SSE (Server-Sent Events).',
- messageFeedbackApi: 'Nachrichtenfeedback (Like)',
- messageFeedbackApiTip: 'Bewerten Sie empfangene Nachrichten im Namen der Endbenutzer mit Likes oder Dislikes. Diese Daten sind auf der Seite Logs & Annotations sichtbar und werden für zukünftige Modellanpassungen verwendet.',
- messageIDTip: 'Nachrichten-ID',
- ratingTip: 'like oder dislike, null ist rückgängig machen',
- parametersApi: 'Anwendungsparameterinformationen abrufen',
- parametersApiTip: 'Abrufen konfigurierter Eingabeparameter, einschließlich Variablennamen, Feldnamen, Typen und Standardwerten. Typischerweise verwendet, um diese Felder in einem Formular anzuzeigen oder Standardwerte nach dem Laden des Clients auszufüllen.',
- },
- chatMode: {
- title: 'Chat App API',
- info: 'Für vielseitige Gesprächsanwendungen im Q&A-Format rufen Sie die chat-messages API auf, um einen Dialog zu initiieren. Führen Sie laufende Gespräche fort, indem Sie die zurückgegebene conversation_id übergeben. Antwortparameter und -vorlagen hängen von den Einstellungen in Dify Prompt Eng. ab.',
- createChatApi: 'Chatnachricht erstellen',
- createChatApiTip: 'Eine neue Konversationsnachricht erstellen oder einen bestehenden Dialog fortsetzen.',
- inputsTips: '(Optional) Geben Sie Benutzereingabefelder als Schlüssel-Wert-Paare an, die Variablen in Prompt Eng. entsprechen. Schlüssel ist der Variablenname, Wert ist der Parameterwert. Wenn der Feldtyp Select ist, muss der übermittelte Wert eine der voreingestellten Optionen sein.',
- queryTips: 'Inhalt der Benutzereingabe/Frage',
- blocking: 'Blockierender Typ, wartet auf die Fertigstellung der Ausführung und gibt Ergebnisse zurück. (Anfragen können unterbrochen werden, wenn der Prozess lang ist)',
- streaming: 'Streaming Rückgaben. Implementierung der Streaming-Rückgabe basierend auf SSE (Server-Sent Events).',
- conversationIdTip: '(Optional) Konversations-ID: für erstmalige Konversation leer lassen; conversation_id aus dem Kontext übergeben, um den Dialog fortzusetzen.',
- messageFeedbackApi: 'Nachrichtenfeedback des Endbenutzers, like',
- messageFeedbackApiTip: 'Bewerten Sie empfangene Nachrichten im Namen der Endbenutzer mit Likes oder Dislikes. Diese Daten sind auf der Seite Logs & Annotations sichtbar und werden für zukünftige Modellanpassungen verwendet.',
- messageIDTip: 'Nachrichten-ID',
- ratingTip: 'like oder dislike, null ist rückgängig machen',
- chatMsgHistoryApi: 'Chatverlaufsnachricht abrufen',
- chatMsgHistoryApiTip: 'Die erste Seite gibt die neuesten `limit` Einträge in umgekehrter Reihenfolge zurück.',
- chatMsgHistoryConversationIdTip: 'Konversations-ID',
- chatMsgHistoryFirstId: 'ID des ersten Chat-Datensatzes auf der aktuellen Seite. Standardmäßig keiner.',
- chatMsgHistoryLimit: 'Wie viele Chats in einer Anfrage zurückgegeben werden',
- conversationsListApi: 'Konversationsliste abrufen',
- conversationsListApiTip: 'Ruft die Sitzungsliste des aktuellen Benutzers ab. Standardmäßig werden die letzten 20 Sitzungen zurückgegeben.',
- conversationsListFirstIdTip: 'Die ID des letzten Datensatzes auf der aktuellen Seite, standardmäßig keine.',
- conversationsListLimitTip: 'Wie viele Chats in einer Anfrage zurückgegeben werden',
- conversationRenamingApi: 'Konversation umbenennen',
- conversationRenamingApiTip: 'Konversationen umbenennen; der Name wird in Mehrsitzungs-Client-Schnittstellen angezeigt.',
- conversationRenamingNameTip: 'Neuer Name',
- parametersApi: 'Anwendungsparameterinformationen abrufen',
- parametersApiTip: 'Abrufen konfigurierter Eingabeparameter, einschließlich Variablennamen, Feldnamen, Typen und Standardwerten. Typischerweise verwendet, um diese Felder in einem Formular anzuzeigen oder Standardwerte nach dem Laden des Clients auszufüllen.',
- },
- develop: {
- requestBody: 'Anfragekörper',
- pathParams: 'Pfadparameter',
- query: 'Anfrage',
- },
-}
-
+const translation = {
+ apiServer: 'API Server',
+ apiKey: 'API Schlüssel',
+ status: 'Status',
+ disabled: 'Deaktiviert',
+ ok: 'In Betrieb',
+ copy: 'Kopieren',
+ copied: 'Kopiert',
+ play: 'Abspielen',
+ pause: 'Pause',
+ playing: 'Wiedergabe',
+ merMaind: {
+ rerender: 'Neu rendern',
+ },
+ never: 'Nie',
+ apiKeyModal: {
+ apiSecretKey: 'API Geheimschlüssel',
+ apiSecretKeyTips: 'Um Missbrauch der API zu verhindern, schützen Sie Ihren API Schlüssel. Vermeiden Sie es, ihn als Klartext im Frontend-Code zu verwenden. :)',
+ createNewSecretKey: 'Neuen Geheimschlüssel erstellen',
+ secretKey: 'Geheimschlüssel',
+ created: 'ERSTELLT',
+ lastUsed: 'ZULETZT VERWENDET',
+ generateTips: 'Bewahren Sie diesen Schlüssel an einem sicheren und zugänglichen Ort auf.',
+ },
+ actionMsg: {
+ deleteConfirmTitle: 'Diesen Geheimschlüssel löschen?',
+ deleteConfirmTips: 'Diese Aktion kann nicht rückgängig gemacht werden.',
+ ok: 'OK',
+ },
+ completionMode: {
+ title: 'Completion App API',
+ info: 'Für die Erzeugung von hochwertigem Text, wie z.B. Artikel, Zusammenfassungen und Übersetzungen, verwenden Sie die Completion-Messages API mit Benutzereingaben. Die Texterzeugung basiert auf den Modellparametern und Vorlagen für Aufforderungen in Dify Prompt Engineering.',
+ createCompletionApi: 'Completion Nachricht erstellen',
+ createCompletionApiTip: 'Erstellen Sie eine Completion Nachricht, um den Frage-Antwort-Modus zu unterstützen.',
+ inputsTips: '(Optional) Geben Sie Benutzereingabefelder als Schlüssel-Wert-Paare an, die Variablen in Prompt Eng. entsprechen. Schlüssel ist der Variablenname, Wert ist der Parameterwert. Wenn der Feldtyp Select ist, muss der übermittelte Wert eine der voreingestellten Optionen sein.',
+ queryTips: 'Textinhalt der Benutzereingabe.',
+ blocking: 'Blockierender Typ, wartet auf die Fertigstellung der Ausführung und gibt Ergebnisse zurück. (Anfragen können unterbrochen werden, wenn der Prozess lang ist)',
+ streaming: 'Streaming Rückgaben. Implementierung der Streaming-Rückgabe basierend auf SSE (Server-Sent Events).',
+ messageFeedbackApi: 'Nachrichtenfeedback (Like)',
+ messageFeedbackApiTip: 'Bewerten Sie empfangene Nachrichten im Namen der Endbenutzer mit Likes oder Dislikes. Diese Daten sind auf der Seite Logs & Annotations sichtbar und werden für zukünftige Modellanpassungen verwendet.',
+ messageIDTip: 'Nachrichten-ID',
+ ratingTip: 'like oder dislike, null ist rückgängig machen',
+ parametersApi: 'Anwendungsparameterinformationen abrufen',
+ parametersApiTip: 'Abrufen konfigurierter Eingabeparameter, einschließlich Variablennamen, Feldnamen, Typen und Standardwerten. Typischerweise verwendet, um diese Felder in einem Formular anzuzeigen oder Standardwerte nach dem Laden des Clients auszufüllen.',
+ },
+ chatMode: {
+ title: 'Chat App API',
+ info: 'Für vielseitige Gesprächsanwendungen im Q&A-Format rufen Sie die chat-messages API auf, um einen Dialog zu initiieren. Führen Sie laufende Gespräche fort, indem Sie die zurückgegebene conversation_id übergeben. Antwortparameter und -vorlagen hängen von den Einstellungen in Dify Prompt Eng. ab.',
+ createChatApi: 'Chatnachricht erstellen',
+ createChatApiTip: 'Eine neue Konversationsnachricht erstellen oder einen bestehenden Dialog fortsetzen.',
+ inputsTips: '(Optional) Geben Sie Benutzereingabefelder als Schlüssel-Wert-Paare an, die Variablen in Prompt Eng. entsprechen. Schlüssel ist der Variablenname, Wert ist der Parameterwert. Wenn der Feldtyp Select ist, muss der übermittelte Wert eine der voreingestellten Optionen sein.',
+ queryTips: 'Inhalt der Benutzereingabe/Frage',
+ blocking: 'Blockierender Typ, wartet auf die Fertigstellung der Ausführung und gibt Ergebnisse zurück. (Anfragen können unterbrochen werden, wenn der Prozess lang ist)',
+ streaming: 'Streaming Rückgaben. Implementierung der Streaming-Rückgabe basierend auf SSE (Server-Sent Events).',
+ conversationIdTip: '(Optional) Konversations-ID: für erstmalige Konversation leer lassen; conversation_id aus dem Kontext übergeben, um den Dialog fortzusetzen.',
+ messageFeedbackApi: 'Nachrichtenfeedback des Endbenutzers, like',
+ messageFeedbackApiTip: 'Bewerten Sie empfangene Nachrichten im Namen der Endbenutzer mit Likes oder Dislikes. Diese Daten sind auf der Seite Logs & Annotations sichtbar und werden für zukünftige Modellanpassungen verwendet.',
+ messageIDTip: 'Nachrichten-ID',
+ ratingTip: 'like oder dislike, null ist rückgängig machen',
+ chatMsgHistoryApi: 'Chatverlaufsnachricht abrufen',
+ chatMsgHistoryApiTip: 'Die erste Seite gibt die neuesten `limit` Einträge in umgekehrter Reihenfolge zurück.',
+ chatMsgHistoryConversationIdTip: 'Konversations-ID',
+ chatMsgHistoryFirstId: 'ID des ersten Chat-Datensatzes auf der aktuellen Seite. Standardmäßig keiner.',
+ chatMsgHistoryLimit: 'Wie viele Chats in einer Anfrage zurückgegeben werden',
+ conversationsListApi: 'Konversationsliste abrufen',
+ conversationsListApiTip: 'Ruft die Sitzungsliste des aktuellen Benutzers ab. Standardmäßig werden die letzten 20 Sitzungen zurückgegeben.',
+ conversationsListFirstIdTip: 'Die ID des letzten Datensatzes auf der aktuellen Seite, standardmäßig keine.',
+ conversationsListLimitTip: 'Wie viele Chats in einer Anfrage zurückgegeben werden',
+ conversationRenamingApi: 'Konversation umbenennen',
+ conversationRenamingApiTip: 'Konversationen umbenennen; der Name wird in Mehrsitzungs-Client-Schnittstellen angezeigt.',
+ conversationRenamingNameTip: 'Neuer Name',
+ parametersApi: 'Anwendungsparameterinformationen abrufen',
+ parametersApiTip: 'Abrufen konfigurierter Eingabeparameter, einschließlich Variablennamen, Feldnamen, Typen und Standardwerten. Typischerweise verwendet, um diese Felder in einem Formular anzuzeigen oder Standardwerte nach dem Laden des Clients auszufüllen.',
+ },
+ develop: {
+ requestBody: 'Anfragekörper',
+ pathParams: 'Pfadparameter',
+ query: 'Anfrage',
+ },
+ loading: 'Laden',
+}
+
export default translation
diff --git a/web/i18n/de-DE/app-log.ts b/web/i18n/de-DE/app-log.ts
index 667a23e8aa..0a0e740578 100644
--- a/web/i18n/de-DE/app-log.ts
+++ b/web/i18n/de-DE/app-log.ts
@@ -1,89 +1,95 @@
-const translation = {
- title: 'Protokolle',
- description: 'Die Protokolle zeichnen den Betriebsstatus der Anwendung auf, einschließlich Benutzereingaben und KI-Antworten.',
- dateTimeFormat: 'MM/DD/YYYY hh:mm A',
- table: {
- header: {
- updatedTime: 'Aktualisierungszeit',
- time: 'Erstellungszeit',
- endUser: 'Endbenutzer oder Konto',
- input: 'Eingabe',
- output: 'Ausgabe',
- summary: 'Titel',
- messageCount: 'Nachrichtenzahl',
- userRate: 'Benutzerbewertung',
- adminRate: 'Op. Bewertung',
- },
- pagination: {
- previous: 'Vorherige',
- next: 'Nächste',
- },
- empty: {
- noChat: 'Noch keine Konversation',
- noOutput: 'Keine Ausgabe',
- element: {
- title: 'Ist da jemand?',
- content: 'Beobachten und annotieren Sie hier die Interaktionen zwischen Endbenutzern und KI-Anwendungen, um die Genauigkeit der KI kontinuierlich zu verbessern. Sie können versuchen, die Web-App selbst zu teilen oder zu testen, und dann zu dieser Seite zurückkehren.',
- },
- },
- },
- detail: {
- time: 'Zeit',
- conversationId: 'Konversations-ID',
- promptTemplate: 'Prompt-Vorlage',
- promptTemplateBeforeChat: 'Prompt-Vorlage vor dem Chat · Als Systemnachricht',
- annotationTip: 'Verbesserungen markiert von {{user}}',
- timeConsuming: '',
- second: 's',
- tokenCost: 'Verbrauchte Token',
- loading: 'lädt',
- operation: {
- like: 'gefällt mir',
- dislike: 'gefällt mir nicht',
- addAnnotation: 'Verbesserung hinzufügen',
- editAnnotation: 'Verbesserung bearbeiten',
- annotationPlaceholder: 'Geben Sie die erwartete Antwort ein, die Sie möchten, dass die KI antwortet, welche für die Feinabstimmung des Modells und die kontinuierliche Verbesserung der Qualität der Textgenerierung in Zukunft verwendet werden kann.',
- },
- variables: 'Variablen',
- uploadImages: 'Hochgeladene Bilder',
- },
- filter: {
- period: {
- today: 'Heute',
- last7days: 'Letzte 7 Tage',
- last4weeks: 'Letzte 4 Wochen',
- last3months: 'Letzte 3 Monate',
- last12months: 'Letzte 12 Monate',
- monthToDate: 'Monat bis heute',
- quarterToDate: 'Quartal bis heute',
- yearToDate: 'Jahr bis heute',
- allTime: 'Gesamte Zeit',
- },
- annotation: {
- all: 'Alle',
- annotated: 'Markierte Verbesserungen ({{count}} Elemente)',
- not_annotated: 'Nicht annotiert',
- },
- sortBy: 'Sortieren nach:',
- descending: 'absteigend',
- ascending: 'aufsteigend',
- },
- workflowTitle: 'Workflow-Protokolle',
- workflowSubtitle: 'Das Protokoll hat den Vorgang von Automate aufgezeichnet.',
- runDetail: {
- title: 'Konversationsprotokoll',
- workflowTitle: 'Protokolldetail',
- },
- promptLog: 'Prompt-Protokoll',
- agentLog: 'Agentenprotokoll',
- viewLog: 'Protokoll anzeigen',
- agentLogDetail: {
- agentMode: 'Agentenmodus',
- toolUsed: 'Verwendetes Werkzeug',
- iterations: 'Iterationen',
- iteration: 'Iteration',
- finalProcessing: 'Endverarbeitung',
- },
-}
-
-export default translation
+const translation = {
+ title: 'Protokolle',
+ description: 'Die Protokolle zeichnen den Betriebsstatus der Anwendung auf, einschließlich Benutzereingaben und KI-Antworten.',
+ dateTimeFormat: 'MM/DD/YYYY hh:mm A',
+ table: {
+ header: {
+ updatedTime: 'Aktualisierungszeit',
+ time: 'Erstellungszeit',
+ endUser: 'Endbenutzer oder Konto',
+ input: 'Eingabe',
+ output: 'Ausgabe',
+ summary: 'Titel',
+ messageCount: 'Nachrichtenzahl',
+ userRate: 'Benutzerbewertung',
+ adminRate: 'Op. Bewertung',
+ user: 'Endbenutzer oder Konto',
+ status: 'STATUS',
+ runtime: 'LAUFZEIT',
+ version: 'VERSION',
+ tokens: 'TOKEN',
+ startTime: 'STARTZEIT',
+ },
+ pagination: {
+ previous: 'Vorherige',
+ next: 'Nächste',
+ },
+ empty: {
+ noChat: 'Noch keine Konversation',
+ noOutput: 'Keine Ausgabe',
+ element: {
+ title: 'Ist da jemand?',
+ content: 'Beobachten und annotieren Sie hier die Interaktionen zwischen Endbenutzern und KI-Anwendungen, um die Genauigkeit der KI kontinuierlich zu verbessern. Sie können versuchen, die Web-App selbst zu teilen oder zu testen, und dann zu dieser Seite zurückkehren.',
+ },
+ },
+ },
+ detail: {
+ time: 'Zeit',
+ conversationId: 'Konversations-ID',
+ promptTemplate: 'Prompt-Vorlage',
+ promptTemplateBeforeChat: 'Prompt-Vorlage vor dem Chat · Als Systemnachricht',
+ annotationTip: 'Verbesserungen markiert von {{user}}',
+ timeConsuming: '',
+ second: 's',
+ tokenCost: 'Verbrauchte Token',
+ loading: 'lädt',
+ operation: {
+ like: 'gefällt mir',
+ dislike: 'gefällt mir nicht',
+ addAnnotation: 'Verbesserung hinzufügen',
+ editAnnotation: 'Verbesserung bearbeiten',
+ annotationPlaceholder: 'Geben Sie die erwartete Antwort ein, die Sie möchten, dass die KI antwortet, welche für die Feinabstimmung des Modells und die kontinuierliche Verbesserung der Qualität der Textgenerierung in Zukunft verwendet werden kann.',
+ },
+ variables: 'Variablen',
+ uploadImages: 'Hochgeladene Bilder',
+ },
+ filter: {
+ period: {
+ today: 'Heute',
+ last7days: 'Letzte 7 Tage',
+ last4weeks: 'Letzte 4 Wochen',
+ last3months: 'Letzte 3 Monate',
+ last12months: 'Letzte 12 Monate',
+ monthToDate: 'Monat bis heute',
+ quarterToDate: 'Quartal bis heute',
+ yearToDate: 'Jahr bis heute',
+ allTime: 'Gesamte Zeit',
+ },
+ annotation: {
+ all: 'Alle',
+ annotated: 'Markierte Verbesserungen ({{count}} Elemente)',
+ not_annotated: 'Nicht annotiert',
+ },
+ sortBy: 'Sortieren nach:',
+ descending: 'absteigend',
+ ascending: 'aufsteigend',
+ },
+ workflowTitle: 'Workflow-Protokolle',
+ workflowSubtitle: 'Das Protokoll hat den Vorgang von Automate aufgezeichnet.',
+ runDetail: {
+ title: 'Konversationsprotokoll',
+ workflowTitle: 'Protokolldetail',
+ },
+ promptLog: 'Prompt-Protokoll',
+ agentLog: 'Agentenprotokoll',
+ viewLog: 'Protokoll anzeigen',
+ agentLogDetail: {
+ agentMode: 'Agentenmodus',
+ toolUsed: 'Verwendetes Werkzeug',
+ iterations: 'Iterationen',
+ iteration: 'Iteration',
+ finalProcessing: 'Endverarbeitung',
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/app-overview.ts b/web/i18n/de-DE/app-overview.ts
index 0304dc6745..a44baec82e 100644
--- a/web/i18n/de-DE/app-overview.ts
+++ b/web/i18n/de-DE/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Workflow-Schritte',
show: 'Anzeigen',
hide: 'Verbergen',
+ subTitle: 'Details zum Arbeitsablauf',
+ showDesc: 'Ein- oder Ausblenden von Workflow-Details in der WebApp',
},
chatColorTheme: 'Chat-Farbschema',
chatColorThemeDesc: 'Legen Sie das Farbschema des Chatbots fest',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'Geben Sie den benutzerdefinierten Haftungsausschluss-Text ein',
customDisclaimerTip: 'Der ben userdefinierte Haftungsausschluss-Text wird auf der Clientseite angezeigt und bietet zusätzliche Informationen über die Anwendung',
},
+ sso: {
+ title: 'WebApp-SSO',
+ description: 'Alle Benutzer müssen sich mit SSO anmelden, bevor sie WebApp verwenden können',
+ label: 'SSO-Authentifizierung',
+ tooltip: 'Wenden Sie sich an den Administrator, um WebApp-SSO zu aktivieren',
+ },
},
embedded: {
entry: 'Eingebettet',
@@ -150,6 +158,10 @@ const translation = {
title: 'Token-Ausgabegeschwindigkeit',
explanation: 'Misst die Leistung des LLM. Zählt die Token-Ausgabegeschwindigkeit des LLM vom Beginn der Anfrage bis zum Abschluss der Ausgabe.',
},
+ avgUserInteractions: {
+ explanation: 'Spiegelt die tägliche Nutzungshäufigkeit der Benutzer wider. Diese Metrik spiegelt die Bindung der Benutzer wider.',
+ title: 'Durchschnittliche Benutzerinteraktionen',
+ },
},
}
diff --git a/web/i18n/de-DE/app.ts b/web/i18n/de-DE/app.ts
index 55caff2284..4fc61f8ee0 100644
--- a/web/i18n/de-DE/app.ts
+++ b/web/i18n/de-DE/app.ts
@@ -1,107 +1,145 @@
-const translation = {
- createApp: 'Neue App erstellen',
- types: {
- all: 'Alle',
- assistant: 'Assistent',
- completion: 'Vervollständigung',
- },
- modes: {
- completion: 'Textgenerator',
- chat: 'Basisassistent',
- },
- createFromConfigFile: 'App aus Konfigurationsdatei erstellen',
- deleteAppConfirmTitle: 'Diese App löschen?',
- deleteAppConfirmContent:
- 'Das Löschen der App ist unwiderruflich. Nutzer werden keinen Zugang mehr zu Ihrer App haben, und alle Prompt-Konfigurationen und Logs werden dauerhaft gelöscht.',
- appDeleted: 'App gelöscht',
- appDeleteFailed: 'Löschen der App fehlgeschlagen',
- join: 'Treten Sie der Gemeinschaft bei',
- communityIntro:
- 'Diskutieren Sie mit Teammitgliedern, Mitwirkenden und Entwicklern auf verschiedenen Kanälen.',
- roadmap: 'Sehen Sie unseren Fahrplan',
- appNamePlaceholder: 'Bitte geben Sie den Namen der App ein',
- newApp: {
- startToCreate: 'Lassen Sie uns mit Ihrer neuen App beginnen',
- captionName: 'App-Symbol & Name',
- captionAppType: 'Welchen Typ von App möchten Sie erstellen?',
- previewDemo: 'Vorschau-Demo',
- chatApp: 'Assistent',
- chatAppIntro:
- 'Ich möchte eine Chat-basierte Anwendung bauen. Diese App verwendet ein Frage-Antwort-Format und ermöglicht mehrere Runden kontinuierlicher Konversation.',
- agentAssistant: 'Neuer Agentenassistent',
- completeApp: 'Textgenerator',
- completeAppIntro:
- 'Ich möchte eine Anwendung erstellen, die hochwertigen Text basierend auf Aufforderungen generiert, wie z.B. das Erstellen von Artikeln, Zusammenfassungen, Übersetzungen und mehr.',
- showTemplates: 'Ich möchte aus einer Vorlage wählen',
- hideTemplates: 'Zurück zur Modusauswahl',
- Create: 'Erstellen',
- Cancel: 'Abbrechen',
- nameNotEmpty: 'Name darf nicht leer sein',
- appTemplateNotSelected: 'Bitte wählen Sie eine Vorlage',
- appTypeRequired: 'Bitte wählen Sie einen App-Typ',
- appCreated: 'App erstellt',
- appCreateFailed: 'Erstellen der App fehlgeschlagen',
- },
- editApp: 'App bearbeiten',
- editAppTitle: 'App-Informationen bearbeiten',
- editDone: 'App-Informationen wurden aktualisiert',
- editFailed: 'Aktualisierung der App-Informationen fehlgeschlagen',
- iconPicker: {
- ok: 'OK',
- cancel: 'Abbrechen',
- emoji: 'Emoji',
- image: 'Bild',
- },
- switch: 'Zu Workflow-Orchestrierung wechseln',
- switchTipStart: 'Eine neue App-Kopie wird für Sie erstellt, und die neue Kopie wird zur Workflow-Orchestrierung wechseln. Die neue Kopie wird ',
- switchTip: 'nicht erlauben',
- switchTipEnd: ' zur Basis-Orchestrierung zurückzuwechseln.',
- switchLabel: 'Die zu erstellende App-Kopie',
- removeOriginal: 'Ursprüngliche App löschen',
- switchStart: 'Wechsel starten',
- typeSelector: {
- all: 'ALLE Typen',
- chatbot: 'Chatbot',
- agent: 'Agent',
- workflow: 'Workflow',
- completion: 'Vervollständigung',
- },
- tracing: {
- title: 'Anwendungsleistung nachverfolgen',
- description: 'Konfiguration eines Drittanbieter-LLMOps-Anbieters und Nachverfolgung der Anwendungsleistung.',
- config: 'Konfigurieren',
- collapse: 'Einklappen',
- expand: 'Ausklappen',
- tracing: 'Nachverfolgung',
- disabled: 'Deaktiviert',
- disabledTip: 'Bitte zuerst den Anbieter konfigurieren',
- enabled: 'In Betrieb',
- tracingDescription: 'Erfassung des vollständigen Kontexts der Anwendungsausführung, einschließlich LLM-Aufrufe, Kontext, Prompts, HTTP-Anfragen und mehr, auf einer Nachverfolgungsplattform von Drittanbietern.',
- configProviderTitle: {
- configured: 'Konfiguriert',
- notConfigured: 'Anbieter konfigurieren, um Nachverfolgung zu aktivieren',
- moreProvider: 'Weitere Anbieter',
- },
- langsmith: {
- title: 'LangSmith',
- description: 'Eine All-in-One-Entwicklerplattform für jeden Schritt des LLM-gesteuerten Anwendungslebenszyklus.',
- },
- langfuse: {
- title: 'Langfuse',
- description: 'Traces, Bewertungen, Prompt-Management und Metriken zum Debuggen und Verbessern Ihrer LLM-Anwendung.',
- },
- inUse: 'In Verwendung',
- configProvider: {
- title: 'Konfigurieren ',
- placeholder: 'Geben Sie Ihren {{key}} ein',
- project: 'Projekt',
- publicKey: 'Öffentlicher Schlüssel',
- secretKey: 'Geheimer Schlüssel',
- viewDocsLink: '{{key}}-Dokumentation ansehen',
- removeConfirmTitle: '{{key}}-Konfiguration entfernen?',
- removeConfirmContent: 'Die aktuelle Konfiguration wird verwendet. Das Entfernen wird die Nachverfolgungsfunktion ausschalten.',
- },
- },
-}
-
-export default translation
+const translation = {
+ createApp: 'Neue App erstellen',
+ types: {
+ all: 'Alle',
+ assistant: 'Assistent',
+ completion: 'Vervollständigung',
+ workflow: 'Arbeitsablauf',
+ agent: 'Agent',
+ chatbot: 'Chatbot',
+ },
+ modes: {
+ completion: 'Textgenerator',
+ chat: 'Basisassistent',
+ },
+ createFromConfigFile: 'App aus Konfigurationsdatei erstellen',
+ deleteAppConfirmTitle: 'Diese App löschen?',
+ deleteAppConfirmContent:
+ 'Das Löschen der App ist unwiderruflich. Nutzer werden keinen Zugang mehr zu Ihrer App haben, und alle Prompt-Konfigurationen und Logs werden dauerhaft gelöscht.',
+ appDeleted: 'App gelöscht',
+ appDeleteFailed: 'Löschen der App fehlgeschlagen',
+ join: 'Treten Sie der Gemeinschaft bei',
+ communityIntro:
+ 'Diskutieren Sie mit Teammitgliedern, Mitwirkenden und Entwicklern auf verschiedenen Kanälen.',
+ roadmap: 'Sehen Sie unseren Fahrplan',
+ appNamePlaceholder: 'Bitte geben Sie den Namen der App ein',
+ newApp: {
+ startToCreate: 'Lassen Sie uns mit Ihrer neuen App beginnen',
+ captionName: 'App-Symbol & Name',
+ captionAppType: 'Welchen Typ von App möchten Sie erstellen?',
+ previewDemo: 'Vorschau-Demo',
+ chatApp: 'Assistent',
+ chatAppIntro:
+ 'Ich möchte eine Chat-basierte Anwendung bauen. Diese App verwendet ein Frage-Antwort-Format und ermöglicht mehrere Runden kontinuierlicher Konversation.',
+ agentAssistant: 'Neuer Agentenassistent',
+ completeApp: 'Textgenerator',
+ completeAppIntro:
+ 'Ich möchte eine Anwendung erstellen, die hochwertigen Text basierend auf Aufforderungen generiert, wie z.B. das Erstellen von Artikeln, Zusammenfassungen, Übersetzungen und mehr.',
+ showTemplates: 'Ich möchte aus einer Vorlage wählen',
+ hideTemplates: 'Zurück zur Modusauswahl',
+ Create: 'Erstellen',
+ Cancel: 'Abbrechen',
+ nameNotEmpty: 'Name darf nicht leer sein',
+ appTemplateNotSelected: 'Bitte wählen Sie eine Vorlage',
+ appTypeRequired: 'Bitte wählen Sie einen App-Typ',
+ appCreated: 'App erstellt',
+ appCreateFailed: 'Erstellen der App fehlgeschlagen',
+ basic: 'Grundlegend',
+ chatbotType: 'Chatbot-Orchestrierungsmethode',
+ workflowDescription: 'Erstellen Sie eine Anwendung, die qualitativ hochwertigen Text auf der Grundlage von Workflow-Orchestrierungen mit einem hohen Maß an Anpassung generiert. Es ist für erfahrene Benutzer geeignet.',
+ advancedFor: 'Für Fortgeschrittene',
+ startFromTemplate: 'Aus Vorlage erstellen',
+ appNamePlaceholder: 'Geben Sie Ihrer App einen Namen',
+ startFromBlank: 'Aus Leer erstellen',
+ basicTip: 'Für Anfänger können Sie später zu Chatflow wechseln',
+ basicDescription: 'Basic Orchestrate ermöglicht die Orchestrierung einer Chatbot-App mit einfachen Einstellungen, ohne die Möglichkeit, integrierte Eingabeaufforderungen zu ändern. Es ist für Anfänger geeignet.',
+ workflowWarning: 'Derzeit in der Beta-Phase',
+ advancedDescription: 'Workflow Orchestrate orchestriert Chatbots in Form von Workflows und bietet ein hohes Maß an Individualisierung, einschließlich der Möglichkeit, integrierte Eingabeaufforderungen zu bearbeiten. Es ist für erfahrene Benutzer geeignet.',
+ basicFor: 'FÜR ANFÄNGER',
+ completionWarning: 'Diese Art von App wird nicht mehr unterstützt.',
+ chatbotDescription: 'Erstellen Sie eine chatbasierte Anwendung. Diese App verwendet ein Frage-und-Antwort-Format, das mehrere Runden kontinuierlicher Konversation ermöglicht.',
+ captionDescription: 'Beschreibung',
+ advanced: 'Chatflow',
+ useTemplate: 'Diese Vorlage verwenden',
+ agentDescription: 'Erstellen Sie einen intelligenten Agenten, der autonom Werkzeuge auswählen kann, um die Aufgaben zu erledigen',
+ completionDescription: 'Erstellen Sie eine Anwendung, die qualitativ hochwertigen Text auf der Grundlage von Eingabeaufforderungen generiert, z. B. zum Generieren von Artikeln, Zusammenfassungen, Übersetzungen und mehr.',
+ appDescriptionPlaceholder: 'Geben Sie die Beschreibung der App ein',
+ },
+ editApp: 'App bearbeiten',
+ editAppTitle: 'App-Informationen bearbeiten',
+ editDone: 'App-Informationen wurden aktualisiert',
+ editFailed: 'Aktualisierung der App-Informationen fehlgeschlagen',
+ iconPicker: {
+ ok: 'OK',
+ cancel: 'Abbrechen',
+ emoji: 'Emoji',
+ image: 'Bild',
+ },
+ switch: 'Zu Workflow-Orchestrierung wechseln',
+ switchTipStart: 'Eine neue App-Kopie wird für Sie erstellt, und die neue Kopie wird zur Workflow-Orchestrierung wechseln. Die neue Kopie wird ',
+ switchTip: 'nicht erlauben',
+ switchTipEnd: ' zur Basis-Orchestrierung zurückzuwechseln.',
+ switchLabel: 'Die zu erstellende App-Kopie',
+ removeOriginal: 'Ursprüngliche App löschen',
+ switchStart: 'Wechsel starten',
+ typeSelector: {
+ all: 'ALLE Typen',
+ chatbot: 'Chatbot',
+ agent: 'Agent',
+ workflow: 'Workflow',
+ completion: 'Vervollständigung',
+ },
+ tracing: {
+ title: 'Anwendungsleistung nachverfolgen',
+ description: 'Konfiguration eines Drittanbieter-LLMOps-Anbieters und Nachverfolgung der Anwendungsleistung.',
+ config: 'Konfigurieren',
+ collapse: 'Einklappen',
+ expand: 'Ausklappen',
+ tracing: 'Nachverfolgung',
+ disabled: 'Deaktiviert',
+ disabledTip: 'Bitte zuerst den Anbieter konfigurieren',
+ enabled: 'In Betrieb',
+ tracingDescription: 'Erfassung des vollständigen Kontexts der Anwendungsausführung, einschließlich LLM-Aufrufe, Kontext, Prompts, HTTP-Anfragen und mehr, auf einer Nachverfolgungsplattform von Drittanbietern.',
+ configProviderTitle: {
+ configured: 'Konfiguriert',
+ notConfigured: 'Anbieter konfigurieren, um Nachverfolgung zu aktivieren',
+ moreProvider: 'Weitere Anbieter',
+ },
+ langsmith: {
+ title: 'LangSmith',
+ description: 'Eine All-in-One-Entwicklerplattform für jeden Schritt des LLM-gesteuerten Anwendungslebenszyklus.',
+ },
+ langfuse: {
+ title: 'Langfuse',
+ description: 'Traces, Bewertungen, Prompt-Management und Metriken zum Debuggen und Verbessern Ihrer LLM-Anwendung.',
+ },
+ inUse: 'In Verwendung',
+ configProvider: {
+ title: 'Konfigurieren ',
+ placeholder: 'Geben Sie Ihren {{key}} ein',
+ project: 'Projekt',
+ publicKey: 'Öffentlicher Schlüssel',
+ secretKey: 'Geheimer Schlüssel',
+ viewDocsLink: '{{key}}-Dokumentation ansehen',
+ removeConfirmTitle: '{{key}}-Konfiguration entfernen?',
+ removeConfirmContent: 'Die aktuelle Konfiguration wird verwendet. Das Entfernen wird die Nachverfolgungsfunktion ausschalten.',
+ },
+ view: 'Ansehen',
+ },
+ answerIcon: {
+ descriptionInExplore: 'Gibt an, ob das WebApp-Symbol zum Ersetzen 🤖 in Explore verwendet werden soll',
+ title: 'Verwenden Sie das WebApp-Symbol, um es zu ersetzen 🤖',
+ description: 'Gibt an, ob das WebApp-Symbol zum Ersetzen 🤖 in der freigegebenen Anwendung verwendet werden soll',
+ },
+ importFromDSLUrlPlaceholder: 'DSL-Link hier einfügen',
+ duplicate: 'Duplikat',
+ importFromDSL: 'Import von DSL',
+ importDSL: 'DSL-Datei importieren',
+ importFromDSLUrl: 'Von URL',
+ exportFailed: 'Fehler beim Exportieren von DSL.',
+ importFromDSLFile: 'Aus DSL-Datei',
+ export: 'DSL exportieren',
+ duplicateTitle: 'App duplizieren',
+}
+
+export default translation
diff --git a/web/i18n/de-DE/billing.ts b/web/i18n/de-DE/billing.ts
index ccb35675c8..7eae078ad2 100644
--- a/web/i18n/de-DE/billing.ts
+++ b/web/i18n/de-DE/billing.ts
@@ -1,115 +1,118 @@
-const translation = {
- currentPlan: 'Aktueller Tarif',
- upgradeBtn: {
- plain: 'Tarif Upgraden',
- encourage: 'Jetzt Upgraden',
- encourageShort: 'Upgraden',
- },
- viewBilling: 'Abrechnung und Abonnements verwalten',
- buyPermissionDeniedTip: 'Bitte kontaktieren Sie Ihren Unternehmensadministrator, um zu abonnieren',
- plansCommon: {
- title: 'Wählen Sie einen Tarif, der zu Ihnen passt',
- yearlyTip: 'Erhalten Sie 2 Monate kostenlos durch jährliches Abonnieren!',
- mostPopular: 'Am beliebtesten',
- planRange: {
- monthly: 'Monatlich',
- yearly: 'Jährlich',
- },
- month: 'Monat',
- year: 'Jahr',
- save: 'Sparen ',
- free: 'Kostenlos',
- currentPlan: 'Aktueller Tarif',
- contractSales: 'Vertrieb kontaktieren',
- contractOwner: 'Teammanager kontaktieren',
- startForFree: 'Kostenlos starten',
- getStartedWith: 'Beginnen Sie mit ',
- contactSales: 'Vertrieb kontaktieren',
- talkToSales: 'Mit dem Vertrieb sprechen',
- modelProviders: 'Modellanbieter',
- teamMembers: 'Teammitglieder',
- buildApps: 'Apps bauen',
- vectorSpace: 'Vektorraum',
- vectorSpaceBillingTooltip: 'Jedes 1MB kann ungefähr 1,2 Millionen Zeichen an vektorisierten Daten speichern (geschätzt mit OpenAI Embeddings, variiert je nach Modell).',
- vectorSpaceTooltip: 'Vektorraum ist das Langzeitspeichersystem, das erforderlich ist, damit LLMs Ihre Daten verstehen können.',
- documentsUploadQuota: 'Dokumenten-Upload-Kontingent',
- documentProcessingPriority: 'Priorität der Dokumentenverarbeitung',
- documentProcessingPriorityTip: 'Für eine höhere Dokumentenverarbeitungspriorität, bitte Ihren Tarif upgraden.',
- documentProcessingPriorityUpgrade: 'Mehr Daten mit höherer Genauigkeit bei schnelleren Geschwindigkeiten verarbeiten.',
- priority: {
- 'standard': 'Standard',
- 'priority': 'Priorität',
- 'top-priority': 'Höchste Priorität',
- },
- logsHistory: 'Protokollverlauf',
- customTools: 'Benutzerdefinierte Werkzeuge',
- unavailable: 'Nicht verfügbar',
- days: 'Tage',
- unlimited: 'Unbegrenzt',
- support: 'Support',
- supportItems: {
- communityForums: 'Community-Foren',
- emailSupport: 'E-Mail-Support',
- priorityEmail: 'Priorisierter E-Mail- und Chat-Support',
- logoChange: 'Logo-Änderung',
- SSOAuthentication: 'SSO-Authentifizierung',
- personalizedSupport: 'Persönlicher Support',
- dedicatedAPISupport: 'Dedizierter API-Support',
- customIntegration: 'Benutzerdefinierte Integration und Support',
- ragAPIRequest: 'RAG-API-Anfragen',
- bulkUpload: 'Massenupload von Dokumenten',
- agentMode: 'Agentenmodus',
- workflow: 'Workflow',
- },
- comingSoon: 'Demnächst',
- member: 'Mitglied',
- memberAfter: 'Mitglied',
- messageRequest: {
- title: 'Nachrichtenguthaben',
- tooltip: 'Nachrichtenaufrufkontingente für verschiedene Tarife unter Verwendung von OpenAI-Modellen (außer gpt4).Nachrichten über dem Limit verwenden Ihren OpenAI-API-Schlüssel.',
- },
- annotatedResponse: {
- title: 'Kontingentgrenzen für Annotationen',
- tooltip: 'Manuelle Bearbeitung und Annotation von Antworten bieten anpassbare, hochwertige Frage-Antwort-Fähigkeiten für Apps. (Nur anwendbar in Chat-Apps)',
- },
- ragAPIRequestTooltip: 'Bezieht sich auf die Anzahl der API-Aufrufe, die nur die Wissensdatenbankverarbeitungsfähigkeiten von Dify aufrufen.',
- receiptInfo: 'Nur der Teaminhaber und der Teamadministrator können abonnieren und Abrechnungsinformationen einsehen',
- },
- plans: {
- sandbox: {
- name: 'Sandbox',
- description: '200 mal GPT kostenlos testen',
- includesTitle: 'Beinhaltet:',
- },
- professional: {
- name: 'Professionell',
- description: 'Für Einzelpersonen und kleine Teams, um mehr Leistung erschwinglich freizuschalten.',
- includesTitle: 'Alles im kostenlosen Tarif, plus:',
- },
- team: {
- name: 'Team',
- description: 'Zusammenarbeiten ohne Grenzen und Top-Leistung genießen.',
- includesTitle: 'Alles im Professionell-Tarif, plus:',
- },
- enterprise: {
- name: 'Unternehmen',
- description: 'Erhalten Sie volle Fähigkeiten und Unterstützung für großangelegte, missionskritische Systeme.',
- includesTitle: 'Alles im Team-Tarif, plus:',
- },
- },
- vectorSpace: {
- fullTip: 'Vektorraum ist voll.',
- fullSolution: 'Upgraden Sie Ihren Tarif, um mehr Speicherplatz zu erhalten.',
- },
- apps: {
- fullTipLine1: 'Upgraden Sie Ihren Tarif, um',
- fullTipLine2: 'mehr Apps zu bauen.',
- },
- annotatedResponse: {
- fullTipLine1: 'Upgraden Sie Ihren Tarif, um',
- fullTipLine2: 'mehr Konversationen zu annotieren.',
- quotaTitle: 'Kontingent für Annotation-Antworten',
- },
-}
-
-export default translation
+const translation = {
+ currentPlan: 'Aktueller Tarif',
+ upgradeBtn: {
+ plain: 'Tarif Upgraden',
+ encourage: 'Jetzt Upgraden',
+ encourageShort: 'Upgraden',
+ },
+ viewBilling: 'Abrechnung und Abonnements verwalten',
+ buyPermissionDeniedTip: 'Bitte kontaktieren Sie Ihren Unternehmensadministrator, um zu abonnieren',
+ plansCommon: {
+ title: 'Wählen Sie einen Tarif, der zu Ihnen passt',
+ yearlyTip: 'Erhalten Sie 2 Monate kostenlos durch jährliches Abonnieren!',
+ mostPopular: 'Am beliebtesten',
+ planRange: {
+ monthly: 'Monatlich',
+ yearly: 'Jährlich',
+ },
+ month: 'Monat',
+ year: 'Jahr',
+ save: 'Sparen ',
+ free: 'Kostenlos',
+ currentPlan: 'Aktueller Tarif',
+ contractSales: 'Vertrieb kontaktieren',
+ contractOwner: 'Teammanager kontaktieren',
+ startForFree: 'Kostenlos starten',
+ getStartedWith: 'Beginnen Sie mit ',
+ contactSales: 'Vertrieb kontaktieren',
+ talkToSales: 'Mit dem Vertrieb sprechen',
+ modelProviders: 'Modellanbieter',
+ teamMembers: 'Teammitglieder',
+ buildApps: 'Apps bauen',
+ vectorSpace: 'Vektorraum',
+ vectorSpaceBillingTooltip: 'Jedes 1MB kann ungefähr 1,2 Millionen Zeichen an vektorisierten Daten speichern (geschätzt mit OpenAI Embeddings, variiert je nach Modell).',
+ vectorSpaceTooltip: 'Vektorraum ist das Langzeitspeichersystem, das erforderlich ist, damit LLMs Ihre Daten verstehen können.',
+ documentsUploadQuota: 'Dokumenten-Upload-Kontingent',
+ documentProcessingPriority: 'Priorität der Dokumentenverarbeitung',
+ documentProcessingPriorityTip: 'Für eine höhere Dokumentenverarbeitungspriorität, bitte Ihren Tarif upgraden.',
+ documentProcessingPriorityUpgrade: 'Mehr Daten mit höherer Genauigkeit bei schnelleren Geschwindigkeiten verarbeiten.',
+ priority: {
+ 'standard': 'Standard',
+ 'priority': 'Priorität',
+ 'top-priority': 'Höchste Priorität',
+ },
+ logsHistory: 'Protokollverlauf',
+ customTools: 'Benutzerdefinierte Werkzeuge',
+ unavailable: 'Nicht verfügbar',
+ days: 'Tage',
+ unlimited: 'Unbegrenzt',
+ support: 'Support',
+ supportItems: {
+ communityForums: 'Community-Foren',
+ emailSupport: 'E-Mail-Support',
+ priorityEmail: 'Priorisierter E-Mail- und Chat-Support',
+ logoChange: 'Logo-Änderung',
+ SSOAuthentication: 'SSO-Authentifizierung',
+ personalizedSupport: 'Persönlicher Support',
+ dedicatedAPISupport: 'Dedizierter API-Support',
+ customIntegration: 'Benutzerdefinierte Integration und Support',
+ ragAPIRequest: 'RAG-API-Anfragen',
+ bulkUpload: 'Massenupload von Dokumenten',
+ agentMode: 'Agentenmodus',
+ workflow: 'Workflow',
+ llmLoadingBalancing: 'LLM-Lastausgleich',
+ llmLoadingBalancingTooltip: 'Fügen Sie Modellen mehrere API-Schlüssel hinzu, um die API-Ratenlimits effektiv zu umgehen.',
+ },
+ comingSoon: 'Demnächst',
+ member: 'Mitglied',
+ memberAfter: 'Mitglied',
+ messageRequest: {
+ title: 'Nachrichtenguthaben',
+ tooltip: 'Nachrichtenaufrufkontingente für verschiedene Tarife unter Verwendung von OpenAI-Modellen (außer gpt4).Nachrichten über dem Limit verwenden Ihren OpenAI-API-Schlüssel.',
+ },
+ annotatedResponse: {
+ title: 'Kontingentgrenzen für Annotationen',
+ tooltip: 'Manuelle Bearbeitung und Annotation von Antworten bieten anpassbare, hochwertige Frage-Antwort-Fähigkeiten für Apps. (Nur anwendbar in Chat-Apps)',
+ },
+ ragAPIRequestTooltip: 'Bezieht sich auf die Anzahl der API-Aufrufe, die nur die Wissensdatenbankverarbeitungsfähigkeiten von Dify aufrufen.',
+ receiptInfo: 'Nur der Teaminhaber und der Teamadministrator können abonnieren und Abrechnungsinformationen einsehen',
+ annotationQuota: 'Kontingent für Anmerkungen',
+ },
+ plans: {
+ sandbox: {
+ name: 'Sandbox',
+ description: '200 mal GPT kostenlos testen',
+ includesTitle: 'Beinhaltet:',
+ },
+ professional: {
+ name: 'Professionell',
+ description: 'Für Einzelpersonen und kleine Teams, um mehr Leistung erschwinglich freizuschalten.',
+ includesTitle: 'Alles im kostenlosen Tarif, plus:',
+ },
+ team: {
+ name: 'Team',
+ description: 'Zusammenarbeiten ohne Grenzen und Top-Leistung genießen.',
+ includesTitle: 'Alles im Professionell-Tarif, plus:',
+ },
+ enterprise: {
+ name: 'Unternehmen',
+ description: 'Erhalten Sie volle Fähigkeiten und Unterstützung für großangelegte, missionskritische Systeme.',
+ includesTitle: 'Alles im Team-Tarif, plus:',
+ },
+ },
+ vectorSpace: {
+ fullTip: 'Vektorraum ist voll.',
+ fullSolution: 'Upgraden Sie Ihren Tarif, um mehr Speicherplatz zu erhalten.',
+ },
+ apps: {
+ fullTipLine1: 'Upgraden Sie Ihren Tarif, um',
+ fullTipLine2: 'mehr Apps zu bauen.',
+ },
+ annotatedResponse: {
+ fullTipLine1: 'Upgraden Sie Ihren Tarif, um',
+ fullTipLine2: 'mehr Konversationen zu annotieren.',
+ quotaTitle: 'Kontingent für Annotation-Antworten',
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/common.ts b/web/i18n/de-DE/common.ts
index c9f9e9fc22..63b3935fb4 100644
--- a/web/i18n/de-DE/common.ts
+++ b/web/i18n/de-DE/common.ts
@@ -201,6 +201,11 @@ const translation = {
disinvite: 'Einladung widerrufen',
deleteMember: 'Mitglied löschen',
you: '(Du)',
+ setBuilder: 'Als Builder festlegen',
+ datasetOperator: 'Wissensadministrator',
+ datasetOperatorTip: 'Kann die Wissensdatenbank nur verwalten',
+ builder: 'Bauherr',
+ builderTip: 'Kann eigene Apps erstellen und bearbeiten',
},
integrations: {
connected: 'Verbunden',
@@ -347,6 +352,22 @@ const translation = {
quotaTip: 'Verbleibende verfügbare kostenlose Token',
loadPresets: 'Voreinstellungen laden',
parameters: 'PARAMETER',
+ loadBalancingHeadline: 'Lastenausgleich',
+ apiKey: 'API-SCHLÜSSEL',
+ editConfig: 'Konfiguration bearbeiten',
+ loadBalancing: 'Lastenausgleich',
+ addConfig: 'Konfiguration hinzufügen',
+ configLoadBalancing: 'Lastenausgleich für die Konfiguration',
+ providerManagedDescription: 'Verwenden Sie den einzelnen Satz von Anmeldeinformationen, der vom Modellanbieter bereitgestellt wird.',
+ loadBalancingDescription: 'Reduzieren Sie den Druck mit mehreren Sätzen von Anmeldeinformationen.',
+ modelHasBeenDeprecated: 'Dieses Modell ist veraltet',
+ loadBalancingLeastKeyWarning: 'Um den Lastausgleich zu aktivieren, müssen mindestens 2 Schlüssel aktiviert sein.',
+ providerManaged: 'Vom Anbieter verwaltet',
+ apiKeyStatusNormal: 'APIKey-Status ist normal',
+ upgradeForLoadBalancing: 'Aktualisieren Sie Ihren Plan, um den Lastenausgleich zu aktivieren.',
+ defaultConfig: 'Standardkonfiguration',
+ apiKeyRateLimit: 'Ratenlimit wurde erreicht, verfügbar nach {{seconds}}s',
+ loadBalancingInfo: 'Standardmäßig wird für den Lastenausgleich die Round-Robin-Strategie verwendet. Wenn die Ratenbegrenzung ausgelöst wird, wird eine Abklingzeit von 1 Minute angewendet.',
},
dataSource: {
add: 'Eine Datenquelle hinzufügen',
@@ -370,6 +391,15 @@ const translation = {
preview: 'VORSCHAU',
},
},
+ website: {
+ inactive: 'Inaktiv',
+ description: 'Importieren Sie Inhalte von Websites mit dem Webcrawler.',
+ title: 'Website',
+ configuredCrawlers: 'Konfigurierte Crawler',
+ active: 'Aktiv',
+ with: 'Mit',
+ },
+ configure: 'Konfigurieren',
},
plugin: {
serpapi: {
@@ -418,6 +448,7 @@ const translation = {
promptEng: 'Orchestrieren',
apiAccess: 'API-Zugriff',
logAndAnn: 'Protokolle & Ank.',
+ logs: 'Baumstämme',
},
environment: {
testing: 'TESTEN',
@@ -499,6 +530,10 @@ const translation = {
add: 'Neue Variable',
addTool: 'Neues Werkzeug',
},
+ outputToolDisabledItem: {
+ desc: 'Variablen einfügen',
+ title: 'Variablen',
+ },
},
query: {
item: {
@@ -533,6 +568,10 @@ const translation = {
created: 'Tag erfolgreich erstellt',
failed: 'Tag-Erstellung fehlgeschlagen',
},
+ errorMsg: {
+ fieldRequired: '{{field}} ist erforderlich',
+ urlError: 'Die URL sollte mit http:// oder https:// beginnen',
+ },
}
export default translation
diff --git a/web/i18n/de-DE/custom.ts b/web/i18n/de-DE/custom.ts
index c24ebca696..2f4cabd67d 100644
--- a/web/i18n/de-DE/custom.ts
+++ b/web/i18n/de-DE/custom.ts
@@ -1,30 +1,30 @@
-const translation = {
- custom: 'Anpassung',
- upgradeTip: {
- prefix: 'Erweitere deinen Plan auf',
- suffix: 'um deine Marke anzupassen.',
- },
- webapp: {
- title: 'WebApp Marke anpassen',
- removeBrand: 'Entferne Powered by Dify',
- changeLogo: 'Ändere Powered by Markenbild',
- changeLogoTip: 'SVG oder PNG Format mit einer Mindestgröße von 40x40px',
- },
- app: {
- title: 'App Kopfzeilen Marke anpassen',
- changeLogoTip: 'SVG oder PNG Format mit einer Mindestgröße von 80x80px',
- },
- upload: 'Hochladen',
- uploading: 'Lade hoch',
- uploadedFail: 'Bild-Upload fehlgeschlagen, bitte erneut hochladen.',
- change: 'Ändern',
- apply: 'Anwenden',
- restore: 'Standardeinstellungen wiederherstellen',
- customize: {
- contactUs: ' kontaktiere uns ',
- prefix: 'Um das Markenlogo innerhalb der App anzupassen, bitte',
- suffix: 'um auf die Enterprise-Edition zu upgraden.',
- },
-}
-
-export default translation
+const translation = {
+ custom: 'Anpassung',
+ upgradeTip: {
+ prefix: 'Erweitere deinen Plan auf',
+ suffix: 'um deine Marke anzupassen.',
+ },
+ webapp: {
+ title: 'WebApp Marke anpassen',
+ removeBrand: 'Entferne Powered by Dify',
+ changeLogo: 'Ändere Powered by Markenbild',
+ changeLogoTip: 'SVG oder PNG Format mit einer Mindestgröße von 40x40px',
+ },
+ app: {
+ title: 'App Kopfzeilen Marke anpassen',
+ changeLogoTip: 'SVG oder PNG Format mit einer Mindestgröße von 80x80px',
+ },
+ upload: 'Hochladen',
+ uploading: 'Lade hoch',
+ uploadedFail: 'Bild-Upload fehlgeschlagen, bitte erneut hochladen.',
+ change: 'Ändern',
+ apply: 'Anwenden',
+ restore: 'Standardeinstellungen wiederherstellen',
+ customize: {
+ contactUs: ' kontaktiere uns ',
+ prefix: 'Um das Markenlogo innerhalb der App anzupassen, bitte',
+ suffix: 'um auf die Enterprise-Edition zu upgraden.',
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/dataset-creation.ts b/web/i18n/de-DE/dataset-creation.ts
index 8727457759..20ab5cee0f 100644
--- a/web/i18n/de-DE/dataset-creation.ts
+++ b/web/i18n/de-DE/dataset-creation.ts
@@ -1,130 +1,161 @@
-const translation = {
- steps: {
- header: {
- creation: 'Wissen erstellen',
- update: 'Daten hinzufügen',
- },
- one: 'Datenquelle wählen',
- two: 'Textvorverarbeitung und Bereinigung',
- three: 'Ausführen und beenden',
- },
- error: {
- unavailable: 'Dieses Wissen ist nicht verfügbar',
- },
- stepOne: {
- filePreview: 'Dateivorschau',
- pagePreview: 'Seitenvorschau',
- dataSourceType: {
- file: 'Import aus Textdatei',
- notion: 'Synchronisation aus Notion',
- web: 'Synchronisation von Webseite',
- },
- uploader: {
- title: 'Textdatei hochladen',
- button: 'Datei hierher ziehen oder',
- browse: 'Durchsuchen',
- tip: 'Unterstützt {{supportTypes}}. Maximal {{size}}MB pro Datei.',
- validation: {
- typeError: 'Dateityp nicht unterstützt',
- size: 'Datei zu groß. Maximum ist {{size}}MB',
- count: 'Mehrere Dateien nicht unterstützt',
- filesNumber: 'Sie haben das Limit für die Stapelverarbeitung von {{filesNumber}} erreicht.',
- },
- cancel: 'Abbrechen',
- change: 'Ändern',
- failed: 'Hochladen fehlgeschlagen',
- },
- notionSyncTitle: 'Notion ist nicht verbunden',
- notionSyncTip: 'Um mit Notion zu synchronisieren, muss zuerst eine Verbindung zu Notion hergestellt werden.',
- connect: 'Verbinden gehen',
- button: 'weiter',
- emptyDatasetCreation: 'Ich möchte ein leeres Wissen erstellen',
- modal: {
- title: 'Ein leeres Wissen erstellen',
- tip: 'Ein leeres Wissen enthält keine Dokumente, und Sie können jederzeit Dokumente hochladen.',
- input: 'Wissensname',
- placeholder: 'Bitte eingeben',
- nameNotEmpty: 'Name darf nicht leer sein',
- nameLengthInvaild: 'Name muss zwischen 1 bis 40 Zeichen lang sein',
- cancelButton: 'Abbrechen',
- confirmButton: 'Erstellen',
- failed: 'Erstellung fehlgeschlagen',
- },
- },
- stepTwo: {
- segmentation: 'Chunk-Einstellungen',
- auto: 'Automatisch',
- autoDescription: 'Stellt Chunk- und Vorverarbeitungsregeln automatisch ein. Unbekannten Benutzern wird dies empfohlen.',
- custom: 'Benutzerdefiniert',
- customDescription: 'Chunk-Regeln, Chunk-Länge und Vorverarbeitungsregeln usw. anpassen.',
- separator: 'Segmentidentifikator',
- separatorPlaceholder: 'Zum Beispiel Neuer Absatz (\\\\n) oder spezieller Separator (wie "***")',
- maxLength: 'Maximale Chunk-Länge',
- overlap: 'Chunk-Überlappung',
- overlapTip: 'Die Einstellung der Chunk-Überlappung kann die semantische Relevanz zwischen ihnen aufrechterhalten und so die Abrufeffekt verbessern. Es wird empfohlen, 10%-25% der maximalen Chunk-Größe einzustellen.',
- overlapCheck: 'Chunk-Überlappung sollte nicht größer als maximale Chunk-Länge sein',
- rules: 'Textvorverarbeitungsregeln',
- removeExtraSpaces: 'Mehrfache Leerzeichen, Zeilenumbrüche und Tabulatoren ersetzen',
- removeUrlEmails: 'Alle URLs und E-Mail-Adressen löschen',
- removeStopwords: 'Stopwörter wie "ein", "eine", "der" entfernen',
- preview: 'Bestätigen & Vorschau',
- reset: 'Zurücksetzen',
- indexMode: 'Indexmodus',
- qualified: 'Hohe Qualität',
- recommend: 'Empfehlen',
- qualifiedTip: 'Ruft standardmäßige Systemeinbettungsschnittstelle für die Verarbeitung auf, um höhere Genauigkeit bei Benutzerabfragen zu bieten.',
- warning: 'Bitte zuerst den API-Schlüssel des Modellanbieters einrichten.',
- click: 'Zu den Einstellungen gehen',
- economical: 'Ökonomisch',
- economicalTip: 'Verwendet Offline-Vektor-Engines, Schlagwortindizes usw., um die Genauigkeit ohne Tokenverbrauch zu reduzieren',
- QATitle: 'Segmentierung im Frage-und-Antwort-Format',
- QATip: 'Diese Option zu aktivieren, wird mehr Tokens verbrauchen',
- QALanguage: 'Segmentierung verwenden',
- emstimateCost: 'Schätzung',
- emstimateSegment: 'Geschätzte Chunks',
- segmentCount: 'Chunks',
- calculating: 'Berechnung...',
- fileSource: 'Dokumente vorverarbeiten',
- notionSource: 'Seiten vorverarbeiten',
- other: 'und weitere ',
- fileUnit: ' Dateien',
- notionUnit: ' Seiten',
- previousStep: 'Vorheriger Schritt',
- nextStep: 'Speichern & Verarbeiten',
- save: 'Speichern & Verarbeiten',
- cancel: 'Abbrechen',
- sideTipTitle: 'Warum segmentieren und vorverarbeiten?',
- sideTipP1: 'Bei der Verarbeitung von Textdaten sind Segmentierung und Bereinigung zwei wichtige Vorverarbeitungsschritte.',
- sideTipP2: 'Segmentierung teilt langen Text in Absätze, damit Modelle ihn besser verstehen können. Dies verbessert die Qualität und Relevanz der Modellergebnisse.',
- sideTipP3: 'Bereinigung entfernt unnötige Zeichen und Formate, macht das Wissen sauberer und leichter zu parsen.',
- sideTipP4: 'Richtige Segmentierung und Bereinigung verbessern die Modellleistung und liefern genauere und wertvollere Ergebnisse.',
- previewTitle: 'Vorschau',
- previewTitleButton: 'Vorschau',
- previewButton: 'Umschalten zum Frage-und-Antwort-Format',
- previewSwitchTipStart: 'Die aktuelle Chunk-Vorschau ist im Textformat, ein Wechsel zur Vorschau im Frage-und-Antwort-Format wird',
- previewSwitchTipEnd: ' zusätzliche Tokens verbrauchen',
- characters: 'Zeichen',
- indexSettedTip: 'Um die Indexmethode zu ändern, bitte gehen Sie zu den ',
- retrivalSettedTip: 'Um die Indexmethode zu ändern, bitte gehen Sie zu den ',
- datasetSettingLink: 'Wissenseinstellungen.',
- },
- stepThree: {
- creationTitle: '🎉 Wissen erstellt',
- creationContent: 'Wir haben das Wissen automatisch benannt, Sie können es jederzeit ändern',
- label: 'Wissensname',
- additionTitle: '🎉 Dokument hochgeladen',
- additionP1: 'Das Dokument wurde zum Wissen hinzugefügt',
- additionP2: ', Sie können es in der Dokumentenliste des Wissens finden.',
- stop: 'Verarbeitung stoppen',
- resume: 'Verarbeitung fortsetzen',
- navTo: 'Zum Dokument gehen',
- sideTipTitle: 'Was kommt als Nächstes',
- sideTipContent: 'Nachdem das Dokument indiziert wurde, kann das Wissen in die Anwendung als Kontext integriert werden, Sie finden die Kontexteinstellung auf der Seite zur Eingabeaufforderungen-Orchestrierung. Sie können es auch als unabhängiges ChatGPT-Indexierungsplugin zur Veröffentlichung erstellen.',
- modelTitle: 'Sind Sie sicher, dass Sie die Einbettung stoppen möchten?',
- modelContent: 'Wenn Sie die Verarbeitung später fortsetzen möchten, werden Sie dort weitermachen, wo Sie aufgehört haben.',
- modelButtonConfirm: 'Bestätigen',
- modelButtonCancel: 'Abbrechen',
- },
-}
-
-export default translation
+const translation = {
+ steps: {
+ header: {
+ creation: 'Wissen erstellen',
+ update: 'Daten hinzufügen',
+ },
+ one: 'Datenquelle wählen',
+ two: 'Textvorverarbeitung und Bereinigung',
+ three: 'Ausführen und beenden',
+ },
+ error: {
+ unavailable: 'Dieses Wissen ist nicht verfügbar',
+ },
+ stepOne: {
+ filePreview: 'Dateivorschau',
+ pagePreview: 'Seitenvorschau',
+ dataSourceType: {
+ file: 'Import aus Textdatei',
+ notion: 'Synchronisation aus Notion',
+ web: 'Synchronisation von Webseite',
+ },
+ uploader: {
+ title: 'Textdatei hochladen',
+ button: 'Datei hierher ziehen oder',
+ browse: 'Durchsuchen',
+ tip: 'Unterstützt {{supportTypes}}. Maximal {{size}}MB pro Datei.',
+ validation: {
+ typeError: 'Dateityp nicht unterstützt',
+ size: 'Datei zu groß. Maximum ist {{size}}MB',
+ count: 'Mehrere Dateien nicht unterstützt',
+ filesNumber: 'Sie haben das Limit für die Stapelverarbeitung von {{filesNumber}} erreicht.',
+ },
+ cancel: 'Abbrechen',
+ change: 'Ändern',
+ failed: 'Hochladen fehlgeschlagen',
+ },
+ notionSyncTitle: 'Notion ist nicht verbunden',
+ notionSyncTip: 'Um mit Notion zu synchronisieren, muss zuerst eine Verbindung zu Notion hergestellt werden.',
+ connect: 'Verbinden gehen',
+ button: 'weiter',
+ emptyDatasetCreation: 'Ich möchte ein leeres Wissen erstellen',
+ modal: {
+ title: 'Ein leeres Wissen erstellen',
+ tip: 'Ein leeres Wissen enthält keine Dokumente, und Sie können jederzeit Dokumente hochladen.',
+ input: 'Wissensname',
+ placeholder: 'Bitte eingeben',
+ nameNotEmpty: 'Name darf nicht leer sein',
+ nameLengthInvaild: 'Name muss zwischen 1 bis 40 Zeichen lang sein',
+ cancelButton: 'Abbrechen',
+ confirmButton: 'Erstellen',
+ failed: 'Erstellung fehlgeschlagen',
+ },
+ website: {
+ preview: 'Vorschau',
+ totalPageScraped: 'Gesamtzahl der gescrapten Seiten:',
+ fireCrawlNotConfigured: 'Firecrawl ist nicht konfiguriert',
+ options: 'Optionen',
+ excludePaths: 'Pfade ausschließen',
+ limit: 'Grenze',
+ exceptionErrorTitle: 'Beim Ausführen des Firecrawl-Auftrags ist eine Ausnahme aufgetreten:',
+ selectAll: 'Alles auswählen',
+ includeOnlyPaths: 'Nur Pfade einschließen',
+ run: 'Laufen',
+ firecrawlDoc: 'Firecrawl-Dokumente',
+ configure: 'Konfigurieren',
+ fireCrawlNotConfiguredDescription: 'Konfigurieren Sie Firecrawl mit dem API-Schlüssel, um es zu verwenden.',
+ maxDepth: 'Maximale Tiefe',
+ unknownError: 'Unbekannter Fehler',
+ resetAll: 'Alles zurücksetzen',
+ extractOnlyMainContent: 'Extrahieren Sie nur den Hauptinhalt (keine Kopf-, Navigations- und Fußzeilen usw.)',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ firecrawlTitle: 'Extrahieren von Webinhalten mit 🔥Firecrawl',
+ maxDepthTooltip: 'Maximale Tiefe für das Crawlen relativ zur eingegebenen URL. Tiefe 0 kratzt nur die Seite der eingegebenen URL, Tiefe 1 kratzt die URL und alles nach der eingegebenen URL + ein / und so weiter.',
+ crawlSubPage: 'Unterseiten crawlen',
+ scrapTimeInfo: 'Insgesamt {{{total}} Seiten innerhalb von {{time}}s gescrapt',
+ },
+ },
+ stepTwo: {
+ segmentation: 'Chunk-Einstellungen',
+ auto: 'Automatisch',
+ autoDescription: 'Stellt Chunk- und Vorverarbeitungsregeln automatisch ein. Unbekannten Benutzern wird dies empfohlen.',
+ custom: 'Benutzerdefiniert',
+ customDescription: 'Chunk-Regeln, Chunk-Länge und Vorverarbeitungsregeln usw. anpassen.',
+ separator: 'Segmentidentifikator',
+ separatorPlaceholder: 'Zum Beispiel Neuer Absatz (\\\\n) oder spezieller Separator (wie "***")',
+ maxLength: 'Maximale Chunk-Länge',
+ overlap: 'Chunk-Überlappung',
+ overlapTip: 'Die Einstellung der Chunk-Überlappung kann die semantische Relevanz zwischen ihnen aufrechterhalten und so die Abrufeffekt verbessern. Es wird empfohlen, 10%-25% der maximalen Chunk-Größe einzustellen.',
+ overlapCheck: 'Chunk-Überlappung sollte nicht größer als maximale Chunk-Länge sein',
+ rules: 'Textvorverarbeitungsregeln',
+ removeExtraSpaces: 'Mehrfache Leerzeichen, Zeilenumbrüche und Tabulatoren ersetzen',
+ removeUrlEmails: 'Alle URLs und E-Mail-Adressen löschen',
+ removeStopwords: 'Stopwörter wie "ein", "eine", "der" entfernen',
+ preview: 'Bestätigen & Vorschau',
+ reset: 'Zurücksetzen',
+ indexMode: 'Indexmodus',
+ qualified: 'Hohe Qualität',
+ recommend: 'Empfehlen',
+ qualifiedTip: 'Ruft standardmäßige Systemeinbettungsschnittstelle für die Verarbeitung auf, um höhere Genauigkeit bei Benutzerabfragen zu bieten.',
+ warning: 'Bitte zuerst den API-Schlüssel des Modellanbieters einrichten.',
+ click: 'Zu den Einstellungen gehen',
+ economical: 'Ökonomisch',
+ economicalTip: 'Verwendet Offline-Vektor-Engines, Schlagwortindizes usw., um die Genauigkeit ohne Tokenverbrauch zu reduzieren',
+ QATitle: 'Segmentierung im Frage-und-Antwort-Format',
+ QATip: 'Diese Option zu aktivieren, wird mehr Tokens verbrauchen',
+ QALanguage: 'Segmentierung verwenden',
+ emstimateCost: 'Schätzung',
+ emstimateSegment: 'Geschätzte Chunks',
+ segmentCount: 'Chunks',
+ calculating: 'Berechnung...',
+ fileSource: 'Dokumente vorverarbeiten',
+ notionSource: 'Seiten vorverarbeiten',
+ other: 'und weitere ',
+ fileUnit: ' Dateien',
+ notionUnit: ' Seiten',
+ previousStep: 'Vorheriger Schritt',
+ nextStep: 'Speichern & Verarbeiten',
+ save: 'Speichern & Verarbeiten',
+ cancel: 'Abbrechen',
+ sideTipTitle: 'Warum segmentieren und vorverarbeiten?',
+ sideTipP1: 'Bei der Verarbeitung von Textdaten sind Segmentierung und Bereinigung zwei wichtige Vorverarbeitungsschritte.',
+ sideTipP2: 'Segmentierung teilt langen Text in Absätze, damit Modelle ihn besser verstehen können. Dies verbessert die Qualität und Relevanz der Modellergebnisse.',
+ sideTipP3: 'Bereinigung entfernt unnötige Zeichen und Formate, macht das Wissen sauberer und leichter zu parsen.',
+ sideTipP4: 'Richtige Segmentierung und Bereinigung verbessern die Modellleistung und liefern genauere und wertvollere Ergebnisse.',
+ previewTitle: 'Vorschau',
+ previewTitleButton: 'Vorschau',
+ previewButton: 'Umschalten zum Frage-und-Antwort-Format',
+ previewSwitchTipStart: 'Die aktuelle Chunk-Vorschau ist im Textformat, ein Wechsel zur Vorschau im Frage-und-Antwort-Format wird',
+ previewSwitchTipEnd: ' zusätzliche Tokens verbrauchen',
+ characters: 'Zeichen',
+ indexSettedTip: 'Um die Indexmethode zu ändern, bitte gehen Sie zu den ',
+ retrivalSettedTip: 'Um die Indexmethode zu ändern, bitte gehen Sie zu den ',
+ datasetSettingLink: 'Wissenseinstellungen.',
+ websiteSource: 'Preprocess-Website',
+ webpageUnit: 'Seiten',
+ },
+ stepThree: {
+ creationTitle: '🎉 Wissen erstellt',
+ creationContent: 'Wir haben das Wissen automatisch benannt, Sie können es jederzeit ändern',
+ label: 'Wissensname',
+ additionTitle: '🎉 Dokument hochgeladen',
+ additionP1: 'Das Dokument wurde zum Wissen hinzugefügt',
+ additionP2: ', Sie können es in der Dokumentenliste des Wissens finden.',
+ stop: 'Verarbeitung stoppen',
+ resume: 'Verarbeitung fortsetzen',
+ navTo: 'Zum Dokument gehen',
+ sideTipTitle: 'Was kommt als Nächstes',
+ sideTipContent: 'Nachdem das Dokument indiziert wurde, kann das Wissen in die Anwendung als Kontext integriert werden, Sie finden die Kontexteinstellung auf der Seite zur Eingabeaufforderungen-Orchestrierung. Sie können es auch als unabhängiges ChatGPT-Indexierungsplugin zur Veröffentlichung erstellen.',
+ modelTitle: 'Sind Sie sicher, dass Sie die Einbettung stoppen möchten?',
+ modelContent: 'Wenn Sie die Verarbeitung später fortsetzen möchten, werden Sie dort weitermachen, wo Sie aufgehört haben.',
+ modelButtonConfirm: 'Bestätigen',
+ modelButtonCancel: 'Abbrechen',
+ },
+ firecrawl: {
+ apiKeyPlaceholder: 'API-Schlüssel von firecrawl.dev',
+ configFirecrawl: 'Konfigurieren von 🔥Firecrawl',
+ getApiKeyLinkText: 'Holen Sie sich Ihren API-Schlüssel von firecrawl.dev',
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/dataset-documents.ts b/web/i18n/de-DE/dataset-documents.ts
index e72f808392..114a73544d 100644
--- a/web/i18n/de-DE/dataset-documents.ts
+++ b/web/i18n/de-DE/dataset-documents.ts
@@ -1,349 +1,352 @@
-const translation = {
- list: {
- title: 'Dokumente',
- desc: 'Alle Dateien des Wissens werden hier angezeigt, und das gesamte Wissen kann mit Dify-Zitaten verknüpft oder über das Chat-Plugin indiziert werden.',
- addFile: 'Datei hinzufügen',
- addPages: 'Seiten hinzufügen',
- table: {
- header: {
- fileName: 'DATEINAME',
- words: 'WÖRTER',
- hitCount: 'SUCHANFRAGEN',
- uploadTime: 'HOCHLADEZEIT',
- status: 'STATUS',
- action: 'AKTION',
- },
- },
- action: {
- uploadFile: 'Neue Datei hochladen',
- settings: 'Segment-Einstellungen',
- addButton: 'Chunk hinzufügen',
- add: 'Einen Chunk hinzufügen',
- batchAdd: 'Batch hinzufügen',
- archive: 'Archivieren',
- unarchive: 'Archivierung aufheben',
- delete: 'Löschen',
- enableWarning: 'Archivierte Datei kann nicht aktiviert werden',
- sync: 'Synchronisieren',
- },
- index: {
- enable: 'Aktivieren',
- disable: 'Deaktivieren',
- all: 'Alle',
- enableTip: 'Die Datei kann indiziert werden',
- disableTip: 'Die Datei kann nicht indiziert werden',
- },
- status: {
- queuing: 'In Warteschlange',
- indexing: 'Indizierung',
- paused: 'Pausiert',
- error: 'Fehler',
- available: 'Verfügbar',
- enabled: 'Aktiviert',
- disabled: 'Deaktiviert',
- archived: 'Archiviert',
- },
- empty: {
- title: 'Es gibt noch keine Dokumentation',
- upload: {
- tip: 'Sie können Dateien hochladen, von der Website oder von Web-Apps wie Notion, GitHub usw. synchronisieren.',
- },
- sync: {
- tip: 'Dify wird periodisch Dateien von Ihrem Notion herunterladen und die Verarbeitung abschließen.',
- },
- },
- delete: {
- title: 'Sind Sie sicher, dass Sie löschen möchten?',
- content: 'Wenn Sie die Verarbeitung später fortsetzen müssen, werden Sie dort weitermachen, wo Sie aufgehört haben',
- },
- batchModal: {
- title: 'Chunks in Batch hinzufügen',
- csvUploadTitle: 'Ziehen Sie Ihre CSV-Datei hierher oder ',
- browse: 'durchsuchen',
- tip: 'Die CSV-Datei muss der folgenden Struktur entsprechen:',
- question: 'Frage',
- answer: 'Antwort',
- contentTitle: 'Chunk-Inhalt',
- content: 'Inhalt',
- template: 'Laden Sie die Vorlage hier herunter',
- cancel: 'Abbrechen',
- run: 'Batch ausführen',
- runError: 'Batch-Ausführung fehlgeschlagen',
- processing: 'In Batch-Verarbeitung',
- completed: 'Import abgeschlossen',
- error: 'Importfehler',
- ok: 'OK',
- },
- },
- metadata: {
- title: 'Metadaten',
- desc: 'Das Kennzeichnen von Metadaten für Dokumente ermöglicht es der KI, sie rechtzeitig zu erreichen und die Quelle der Referenzen für die Benutzer offenzulegen.',
- dateTimeFormat: 'MMMM D, YYYY hh:mm A',
- docTypeSelectTitle: 'Bitte wählen Sie einen Dokumenttyp',
- docTypeChangeTitle: 'Dokumenttyp ändern',
- docTypeSelectWarning:
- 'Wenn der Dokumenttyp geändert wird, werden die jetzt ausgefüllten Metadaten nicht mehr erhalten bleiben',
- firstMetaAction: 'Los geht\'s',
- placeholder: {
- add: 'Hinzufügen ',
- select: 'Auswählen ',
- },
- source: {
- upload_file: 'Datei hochladen',
- notion: 'Von Notion synchronisieren',
- github: 'Von Github synchronisieren',
- },
- type: {
- book: 'Buch',
- webPage: 'Webseite',
- paper: 'Aufsatz',
- socialMediaPost: 'Social Media Beitrag',
- personalDocument: 'Persönliches Dokument',
- businessDocument: 'Geschäftsdokument',
- IMChat: 'IM Chat',
- wikipediaEntry: 'Wikipedia-Eintrag',
- notion: 'Von Notion synchronisieren',
- github: 'Von Github synchronisieren',
- technicalParameters: 'Technische Parameter',
- },
- field: {
- processRule: {
- processDoc: 'Dokument verarbeiten',
- segmentRule: 'Chunk-Regel',
- segmentLength: 'Chunk-Länge',
- processClean: 'Textverarbeitung bereinigen',
- },
- book: {
- title: 'Titel',
- language: 'Sprache',
- author: 'Autor',
- publisher: 'Verlag',
- publicationDate: 'Veröffentlichungsdatum',
- ISBN: 'ISBN',
- category: 'Kategorie',
- },
- webPage: {
- title: 'Titel',
- url: 'URL',
- language: 'Sprache',
- authorPublisher: 'Autor/Verlag',
- publishDate: 'Veröffentlichungsdatum',
- topicsKeywords: 'Themen/Schlüsselwörter',
- description: 'Beschreibung',
- },
- paper: {
- title: 'Titel',
- language: 'Sprache',
- author: 'Autor',
- publishDate: 'Veröffentlichungsdatum',
- journalConferenceName: 'Zeitschrift/Konferenzname',
- volumeIssuePage: 'Band/Ausgabe/Seite',
- DOI: 'DOI',
- topicsKeywords: 'Themen/Schlüsselwörter',
- abstract: 'Zusammenfassung',
- },
- socialMediaPost: {
- platform: 'Plattform',
- authorUsername: 'Autor/Benutzername',
- publishDate: 'Veröffentlichungsdatum',
- postURL: 'Beitrags-URL',
- topicsTags: 'Themen/Tags',
- },
- personalDocument: {
- title: 'Titel',
- author: 'Autor',
- creationDate: 'Erstellungsdatum',
- lastModifiedDate: 'Letztes Änderungsdatum',
- documentType: 'Dokumenttyp',
- tagsCategory: 'Tags/Kategorie',
- },
- businessDocument: {
- title: 'Titel',
- author: 'Autor',
- creationDate: 'Erstellungsdatum',
- lastModifiedDate: 'Letztes Änderungsdatum',
- documentType: 'Dokumenttyp',
- departmentTeam: 'Abteilung/Team',
- },
- IMChat: {
- chatPlatform: 'Chat-Plattform',
- chatPartiesGroupName: 'Chat-Parteien/Gruppenname',
- participants: 'Teilnehmer',
- startDate: 'Startdatum',
- endDate: 'Enddatum',
- topicsKeywords: 'Themen/Schlüsselwörter',
- fileType: 'Dateityp',
- },
- wikipediaEntry: {
- title: 'Titel',
- language: 'Sprache',
- webpageURL: 'Webseiten-URL',
- editorContributor: 'Editor/Beitragender',
- lastEditDate: 'Letztes Bearbeitungsdatum',
- summaryIntroduction: 'Zusammenfassung/Einführung',
- },
- notion: {
- title: 'Titel',
- language: 'Sprache',
- author: 'Autor',
- createdTime: 'Erstellungszeit',
- lastModifiedTime: 'Letzte Änderungszeit',
- url: 'URL',
- tag: 'Tag',
- description: 'Beschreibung',
- },
- github: {
- repoName: 'Repository-Name',
- repoDesc: 'Repository-Beschreibung',
- repoOwner: 'Repository-Eigentümer',
- fileName: 'Dateiname',
- filePath: 'Dateipfad',
- programmingLang: 'Programmiersprache',
- url: 'URL',
- license: 'Lizenz',
- lastCommitTime: 'Letzte Commit-Zeit',
- lastCommitAuthor: 'Letzter Commit-Autor',
- },
- originInfo: {
- originalFilename: 'Originaldateiname',
- originalFileSize: 'Originaldateigröße',
- uploadDate: 'Hochladedatum',
- lastUpdateDate: 'Letztes Änderungsdatum',
- source: 'Quelle',
- },
- technicalParameters: {
- segmentSpecification: 'Chunk-Spezifikation',
- segmentLength: 'Chunk-Länge',
- avgParagraphLength: 'Durchschn. Absatzlänge',
- paragraphs: 'Absätze',
- hitCount: 'Abrufanzahl',
- embeddingTime: 'Einbettungszeit',
- embeddedSpend: 'Einbettungsausgaben',
- },
- },
- languageMap: {
- zh: 'Chinesisch',
- en: 'Englisch',
- es: 'Spanisch',
- fr: 'Französisch',
- de: 'Deutsch',
- ja: 'Japanisch',
- ko: 'Koreanisch',
- ru: 'Russisch',
- ar: 'Arabisch',
- pt: 'Portugiesisch',
- it: 'Italienisch',
- nl: 'Niederländisch',
- pl: 'Polnisch',
- sv: 'Schwedisch',
- tr: 'Türkisch',
- he: 'Hebräisch',
- hi: 'Hindi',
- da: 'Dänisch',
- fi: 'Finnisch',
- no: 'Norwegisch',
- hu: 'Ungarisch',
- el: 'Griechisch',
- cs: 'Tschechisch',
- th: 'Thai',
- id: 'Indonesisch',
- },
- categoryMap: {
- book: {
- fiction: 'Fiktion',
- biography: 'Biografie',
- history: 'Geschichte',
- science: 'Wissenschaft',
- technology: 'Technologie',
- education: 'Bildung',
- philosophy: 'Philosophie',
- religion: 'Religion',
- socialSciences: 'Sozialwissenschaften',
- art: 'Kunst',
- travel: 'Reisen',
- health: 'Gesundheit',
- selfHelp: 'Selbsthilfe',
- businessEconomics: 'Wirtschaft',
- cooking: 'Kochen',
- childrenYoungAdults: 'Kinder & Jugendliche',
- comicsGraphicNovels: 'Comics & Grafische Romane',
- poetry: 'Poesie',
- drama: 'Drama',
- other: 'Andere',
- },
- personalDoc: {
- notes: 'Notizen',
- blogDraft: 'Blog-Entwurf',
- diary: 'Tagebuch',
- researchReport: 'Forschungsbericht',
- bookExcerpt: 'Buchauszug',
- schedule: 'Zeitplan',
- list: 'Liste',
- projectOverview: 'Projektübersicht',
- photoCollection: 'Fotosammlung',
- creativeWriting: 'Kreatives Schreiben',
- codeSnippet: 'Code-Snippet',
- designDraft: 'Design-Entwurf',
- personalResume: 'Persönlicher Lebenslauf',
- other: 'Andere',
- },
- businessDoc: {
- meetingMinutes: 'Protokolle',
- researchReport: 'Forschungsbericht',
- proposal: 'Vorschlag',
- employeeHandbook: 'Mitarbeiterhandbuch',
- trainingMaterials: 'Schulungsmaterialien',
- requirementsDocument: 'Anforderungsdokumentation',
- designDocument: 'Design-Dokument',
- productSpecification: 'Produktspezifikation',
- financialReport: 'Finanzbericht',
- marketAnalysis: 'Marktanalyse',
- projectPlan: 'Projektplan',
- teamStructure: 'Teamstruktur',
- policiesProcedures: 'Richtlinien & Verfahren',
- contractsAgreements: 'Verträge & Vereinbarungen',
- emailCorrespondence: 'E-Mail-Korrespondenz',
- other: 'Andere',
- },
- },
- },
- embedding: {
- processing: 'Einbettungsverarbeitung...',
- paused: 'Einbettung pausiert',
- completed: 'Einbettung abgeschlossen',
- error: 'Einbettungsfehler',
- docName: 'Dokument vorbereiten',
- mode: 'Segmentierungsregel',
- segmentLength: 'Chunk-Länge',
- textCleaning: 'Textvordefinition und -bereinigung',
- segments: 'Absätze',
- highQuality: 'Hochwertiger Modus',
- economy: 'Wirtschaftlicher Modus',
- estimate: 'Geschätzter Verbrauch',
- stop: 'Verarbeitung stoppen',
- resume: 'Verarbeitung fortsetzen',
- automatic: 'Automatisch',
- custom: 'Benutzerdefiniert',
- previewTip: 'Absatzvorschau ist nach Abschluss der Einbettung verfügbar',
- },
- segment: {
- paragraphs: 'Absätze',
- keywords: 'Schlüsselwörter',
- addKeyWord: 'Schlüsselwort hinzufügen',
- keywordError: 'Die maximale Länge des Schlüsselworts beträgt 20',
- characters: 'Zeichen',
- hitCount: 'Abrufanzahl',
- vectorHash: 'Vektor-Hash: ',
- questionPlaceholder: 'Frage hier hinzufügen',
- questionEmpty: 'Frage darf nicht leer sein',
- answerPlaceholder: 'Antwort hier hinzufügen',
- answerEmpty: 'Antwort darf nicht leer sein',
- contentPlaceholder: 'Inhalt hier hinzufügen',
- contentEmpty: 'Inhalt darf nicht leer sein',
- newTextSegment: 'Neues Textsegment',
- newQaSegment: 'Neues Q&A-Segment',
- delete: 'Diesen Chunk löschen?',
- },
-}
-
-export default translation
+const translation = {
+ list: {
+ title: 'Dokumente',
+ desc: 'Alle Dateien des Wissens werden hier angezeigt, und das gesamte Wissen kann mit Dify-Zitaten verknüpft oder über das Chat-Plugin indiziert werden.',
+ addFile: 'Datei hinzufügen',
+ addPages: 'Seiten hinzufügen',
+ table: {
+ header: {
+ fileName: 'DATEINAME',
+ words: 'WÖRTER',
+ hitCount: 'SUCHANFRAGEN',
+ uploadTime: 'HOCHLADEZEIT',
+ status: 'STATUS',
+ action: 'AKTION',
+ },
+ name: 'Name',
+ rename: 'Umbenennen',
+ },
+ action: {
+ uploadFile: 'Neue Datei hochladen',
+ settings: 'Segment-Einstellungen',
+ addButton: 'Chunk hinzufügen',
+ add: 'Einen Chunk hinzufügen',
+ batchAdd: 'Batch hinzufügen',
+ archive: 'Archivieren',
+ unarchive: 'Archivierung aufheben',
+ delete: 'Löschen',
+ enableWarning: 'Archivierte Datei kann nicht aktiviert werden',
+ sync: 'Synchronisieren',
+ },
+ index: {
+ enable: 'Aktivieren',
+ disable: 'Deaktivieren',
+ all: 'Alle',
+ enableTip: 'Die Datei kann indiziert werden',
+ disableTip: 'Die Datei kann nicht indiziert werden',
+ },
+ status: {
+ queuing: 'In Warteschlange',
+ indexing: 'Indizierung',
+ paused: 'Pausiert',
+ error: 'Fehler',
+ available: 'Verfügbar',
+ enabled: 'Aktiviert',
+ disabled: 'Deaktiviert',
+ archived: 'Archiviert',
+ },
+ empty: {
+ title: 'Es gibt noch keine Dokumentation',
+ upload: {
+ tip: 'Sie können Dateien hochladen, von der Website oder von Web-Apps wie Notion, GitHub usw. synchronisieren.',
+ },
+ sync: {
+ tip: 'Dify wird periodisch Dateien von Ihrem Notion herunterladen und die Verarbeitung abschließen.',
+ },
+ },
+ delete: {
+ title: 'Sind Sie sicher, dass Sie löschen möchten?',
+ content: 'Wenn Sie die Verarbeitung später fortsetzen müssen, werden Sie dort weitermachen, wo Sie aufgehört haben',
+ },
+ batchModal: {
+ title: 'Chunks in Batch hinzufügen',
+ csvUploadTitle: 'Ziehen Sie Ihre CSV-Datei hierher oder ',
+ browse: 'durchsuchen',
+ tip: 'Die CSV-Datei muss der folgenden Struktur entsprechen:',
+ question: 'Frage',
+ answer: 'Antwort',
+ contentTitle: 'Chunk-Inhalt',
+ content: 'Inhalt',
+ template: 'Laden Sie die Vorlage hier herunter',
+ cancel: 'Abbrechen',
+ run: 'Batch ausführen',
+ runError: 'Batch-Ausführung fehlgeschlagen',
+ processing: 'In Batch-Verarbeitung',
+ completed: 'Import abgeschlossen',
+ error: 'Importfehler',
+ ok: 'OK',
+ },
+ addUrl: 'URL hinzufügen',
+ },
+ metadata: {
+ title: 'Metadaten',
+ desc: 'Das Kennzeichnen von Metadaten für Dokumente ermöglicht es der KI, sie rechtzeitig zu erreichen und die Quelle der Referenzen für die Benutzer offenzulegen.',
+ dateTimeFormat: 'MMMM D, YYYY hh:mm A',
+ docTypeSelectTitle: 'Bitte wählen Sie einen Dokumenttyp',
+ docTypeChangeTitle: 'Dokumenttyp ändern',
+ docTypeSelectWarning:
+ 'Wenn der Dokumenttyp geändert wird, werden die jetzt ausgefüllten Metadaten nicht mehr erhalten bleiben',
+ firstMetaAction: 'Los geht\'s',
+ placeholder: {
+ add: 'Hinzufügen ',
+ select: 'Auswählen ',
+ },
+ source: {
+ upload_file: 'Datei hochladen',
+ notion: 'Von Notion synchronisieren',
+ github: 'Von Github synchronisieren',
+ },
+ type: {
+ book: 'Buch',
+ webPage: 'Webseite',
+ paper: 'Aufsatz',
+ socialMediaPost: 'Social Media Beitrag',
+ personalDocument: 'Persönliches Dokument',
+ businessDocument: 'Geschäftsdokument',
+ IMChat: 'IM Chat',
+ wikipediaEntry: 'Wikipedia-Eintrag',
+ notion: 'Von Notion synchronisieren',
+ github: 'Von Github synchronisieren',
+ technicalParameters: 'Technische Parameter',
+ },
+ field: {
+ processRule: {
+ processDoc: 'Dokument verarbeiten',
+ segmentRule: 'Chunk-Regel',
+ segmentLength: 'Chunk-Länge',
+ processClean: 'Textverarbeitung bereinigen',
+ },
+ book: {
+ title: 'Titel',
+ language: 'Sprache',
+ author: 'Autor',
+ publisher: 'Verlag',
+ publicationDate: 'Veröffentlichungsdatum',
+ ISBN: 'ISBN',
+ category: 'Kategorie',
+ },
+ webPage: {
+ title: 'Titel',
+ url: 'URL',
+ language: 'Sprache',
+ authorPublisher: 'Autor/Verlag',
+ publishDate: 'Veröffentlichungsdatum',
+ topicsKeywords: 'Themen/Schlüsselwörter',
+ description: 'Beschreibung',
+ },
+ paper: {
+ title: 'Titel',
+ language: 'Sprache',
+ author: 'Autor',
+ publishDate: 'Veröffentlichungsdatum',
+ journalConferenceName: 'Zeitschrift/Konferenzname',
+ volumeIssuePage: 'Band/Ausgabe/Seite',
+ DOI: 'DOI',
+ topicsKeywords: 'Themen/Schlüsselwörter',
+ abstract: 'Zusammenfassung',
+ },
+ socialMediaPost: {
+ platform: 'Plattform',
+ authorUsername: 'Autor/Benutzername',
+ publishDate: 'Veröffentlichungsdatum',
+ postURL: 'Beitrags-URL',
+ topicsTags: 'Themen/Tags',
+ },
+ personalDocument: {
+ title: 'Titel',
+ author: 'Autor',
+ creationDate: 'Erstellungsdatum',
+ lastModifiedDate: 'Letztes Änderungsdatum',
+ documentType: 'Dokumenttyp',
+ tagsCategory: 'Tags/Kategorie',
+ },
+ businessDocument: {
+ title: 'Titel',
+ author: 'Autor',
+ creationDate: 'Erstellungsdatum',
+ lastModifiedDate: 'Letztes Änderungsdatum',
+ documentType: 'Dokumenttyp',
+ departmentTeam: 'Abteilung/Team',
+ },
+ IMChat: {
+ chatPlatform: 'Chat-Plattform',
+ chatPartiesGroupName: 'Chat-Parteien/Gruppenname',
+ participants: 'Teilnehmer',
+ startDate: 'Startdatum',
+ endDate: 'Enddatum',
+ topicsKeywords: 'Themen/Schlüsselwörter',
+ fileType: 'Dateityp',
+ },
+ wikipediaEntry: {
+ title: 'Titel',
+ language: 'Sprache',
+ webpageURL: 'Webseiten-URL',
+ editorContributor: 'Editor/Beitragender',
+ lastEditDate: 'Letztes Bearbeitungsdatum',
+ summaryIntroduction: 'Zusammenfassung/Einführung',
+ },
+ notion: {
+ title: 'Titel',
+ language: 'Sprache',
+ author: 'Autor',
+ createdTime: 'Erstellungszeit',
+ lastModifiedTime: 'Letzte Änderungszeit',
+ url: 'URL',
+ tag: 'Tag',
+ description: 'Beschreibung',
+ },
+ github: {
+ repoName: 'Repository-Name',
+ repoDesc: 'Repository-Beschreibung',
+ repoOwner: 'Repository-Eigentümer',
+ fileName: 'Dateiname',
+ filePath: 'Dateipfad',
+ programmingLang: 'Programmiersprache',
+ url: 'URL',
+ license: 'Lizenz',
+ lastCommitTime: 'Letzte Commit-Zeit',
+ lastCommitAuthor: 'Letzter Commit-Autor',
+ },
+ originInfo: {
+ originalFilename: 'Originaldateiname',
+ originalFileSize: 'Originaldateigröße',
+ uploadDate: 'Hochladedatum',
+ lastUpdateDate: 'Letztes Änderungsdatum',
+ source: 'Quelle',
+ },
+ technicalParameters: {
+ segmentSpecification: 'Chunk-Spezifikation',
+ segmentLength: 'Chunk-Länge',
+ avgParagraphLength: 'Durchschn. Absatzlänge',
+ paragraphs: 'Absätze',
+ hitCount: 'Abrufanzahl',
+ embeddingTime: 'Einbettungszeit',
+ embeddedSpend: 'Einbettungsausgaben',
+ },
+ },
+ languageMap: {
+ zh: 'Chinesisch',
+ en: 'Englisch',
+ es: 'Spanisch',
+ fr: 'Französisch',
+ de: 'Deutsch',
+ ja: 'Japanisch',
+ ko: 'Koreanisch',
+ ru: 'Russisch',
+ ar: 'Arabisch',
+ pt: 'Portugiesisch',
+ it: 'Italienisch',
+ nl: 'Niederländisch',
+ pl: 'Polnisch',
+ sv: 'Schwedisch',
+ tr: 'Türkisch',
+ he: 'Hebräisch',
+ hi: 'Hindi',
+ da: 'Dänisch',
+ fi: 'Finnisch',
+ no: 'Norwegisch',
+ hu: 'Ungarisch',
+ el: 'Griechisch',
+ cs: 'Tschechisch',
+ th: 'Thai',
+ id: 'Indonesisch',
+ },
+ categoryMap: {
+ book: {
+ fiction: 'Fiktion',
+ biography: 'Biografie',
+ history: 'Geschichte',
+ science: 'Wissenschaft',
+ technology: 'Technologie',
+ education: 'Bildung',
+ philosophy: 'Philosophie',
+ religion: 'Religion',
+ socialSciences: 'Sozialwissenschaften',
+ art: 'Kunst',
+ travel: 'Reisen',
+ health: 'Gesundheit',
+ selfHelp: 'Selbsthilfe',
+ businessEconomics: 'Wirtschaft',
+ cooking: 'Kochen',
+ childrenYoungAdults: 'Kinder & Jugendliche',
+ comicsGraphicNovels: 'Comics & Grafische Romane',
+ poetry: 'Poesie',
+ drama: 'Drama',
+ other: 'Andere',
+ },
+ personalDoc: {
+ notes: 'Notizen',
+ blogDraft: 'Blog-Entwurf',
+ diary: 'Tagebuch',
+ researchReport: 'Forschungsbericht',
+ bookExcerpt: 'Buchauszug',
+ schedule: 'Zeitplan',
+ list: 'Liste',
+ projectOverview: 'Projektübersicht',
+ photoCollection: 'Fotosammlung',
+ creativeWriting: 'Kreatives Schreiben',
+ codeSnippet: 'Code-Snippet',
+ designDraft: 'Design-Entwurf',
+ personalResume: 'Persönlicher Lebenslauf',
+ other: 'Andere',
+ },
+ businessDoc: {
+ meetingMinutes: 'Protokolle',
+ researchReport: 'Forschungsbericht',
+ proposal: 'Vorschlag',
+ employeeHandbook: 'Mitarbeiterhandbuch',
+ trainingMaterials: 'Schulungsmaterialien',
+ requirementsDocument: 'Anforderungsdokumentation',
+ designDocument: 'Design-Dokument',
+ productSpecification: 'Produktspezifikation',
+ financialReport: 'Finanzbericht',
+ marketAnalysis: 'Marktanalyse',
+ projectPlan: 'Projektplan',
+ teamStructure: 'Teamstruktur',
+ policiesProcedures: 'Richtlinien & Verfahren',
+ contractsAgreements: 'Verträge & Vereinbarungen',
+ emailCorrespondence: 'E-Mail-Korrespondenz',
+ other: 'Andere',
+ },
+ },
+ },
+ embedding: {
+ processing: 'Einbettungsverarbeitung...',
+ paused: 'Einbettung pausiert',
+ completed: 'Einbettung abgeschlossen',
+ error: 'Einbettungsfehler',
+ docName: 'Dokument vorbereiten',
+ mode: 'Segmentierungsregel',
+ segmentLength: 'Chunk-Länge',
+ textCleaning: 'Textvordefinition und -bereinigung',
+ segments: 'Absätze',
+ highQuality: 'Hochwertiger Modus',
+ economy: 'Wirtschaftlicher Modus',
+ estimate: 'Geschätzter Verbrauch',
+ stop: 'Verarbeitung stoppen',
+ resume: 'Verarbeitung fortsetzen',
+ automatic: 'Automatisch',
+ custom: 'Benutzerdefiniert',
+ previewTip: 'Absatzvorschau ist nach Abschluss der Einbettung verfügbar',
+ },
+ segment: {
+ paragraphs: 'Absätze',
+ keywords: 'Schlüsselwörter',
+ addKeyWord: 'Schlüsselwort hinzufügen',
+ keywordError: 'Die maximale Länge des Schlüsselworts beträgt 20',
+ characters: 'Zeichen',
+ hitCount: 'Abrufanzahl',
+ vectorHash: 'Vektor-Hash: ',
+ questionPlaceholder: 'Frage hier hinzufügen',
+ questionEmpty: 'Frage darf nicht leer sein',
+ answerPlaceholder: 'Antwort hier hinzufügen',
+ answerEmpty: 'Antwort darf nicht leer sein',
+ contentPlaceholder: 'Inhalt hier hinzufügen',
+ contentEmpty: 'Inhalt darf nicht leer sein',
+ newTextSegment: 'Neues Textsegment',
+ newQaSegment: 'Neues Q&A-Segment',
+ delete: 'Diesen Chunk löschen?',
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/dataset-hit-testing.ts b/web/i18n/de-DE/dataset-hit-testing.ts
index 89f90a57a7..baf88016b3 100644
--- a/web/i18n/de-DE/dataset-hit-testing.ts
+++ b/web/i18n/de-DE/dataset-hit-testing.ts
@@ -1,28 +1,28 @@
-const translation = {
- title: 'Abruf-Test',
- desc: 'Testen Sie die Treffereffektivität des Wissens anhand des gegebenen Abfragetextes.',
- dateTimeFormat: 'MM/TT/JJJJ hh:mm A',
- recents: 'Kürzlich',
- table: {
- header: {
- source: 'Quelle',
- text: 'Text',
- time: 'Zeit',
- },
- },
- input: {
- title: 'Quelltext',
- placeholder: 'Bitte geben Sie einen Text ein, ein kurzer aussagekräftiger Satz wird empfohlen.',
- countWarning: 'Bis zu 200 Zeichen.',
- indexWarning: 'Nur Wissen hoher Qualität.',
- testing: 'Testen',
- },
- hit: {
- title: 'ABRUFPARAGRAFEN',
- emptyTip: 'Ergebnisse des Abruf-Tests werden hier angezeigt',
- },
- noRecentTip: 'Keine kürzlichen Abfrageergebnisse hier',
- viewChart: 'VEKTORDIAGRAMM ansehen',
-}
-
-export default translation
+const translation = {
+ title: 'Abruf-Test',
+ desc: 'Testen Sie die Treffereffektivität des Wissens anhand des gegebenen Abfragetextes.',
+ dateTimeFormat: 'MM/TT/JJJJ hh:mm A',
+ recents: 'Kürzlich',
+ table: {
+ header: {
+ source: 'Quelle',
+ text: 'Text',
+ time: 'Zeit',
+ },
+ },
+ input: {
+ title: 'Quelltext',
+ placeholder: 'Bitte geben Sie einen Text ein, ein kurzer aussagekräftiger Satz wird empfohlen.',
+ countWarning: 'Bis zu 200 Zeichen.',
+ indexWarning: 'Nur Wissen hoher Qualität.',
+ testing: 'Testen',
+ },
+ hit: {
+ title: 'ABRUFPARAGRAFEN',
+ emptyTip: 'Ergebnisse des Abruf-Tests werden hier angezeigt',
+ },
+ noRecentTip: 'Keine kürzlichen Abfrageergebnisse hier',
+ viewChart: 'VEKTORDIAGRAMM ansehen',
+}
+
+export default translation
diff --git a/web/i18n/de-DE/dataset-settings.ts b/web/i18n/de-DE/dataset-settings.ts
index c986334f15..b29e778075 100644
--- a/web/i18n/de-DE/dataset-settings.ts
+++ b/web/i18n/de-DE/dataset-settings.ts
@@ -1,33 +1,35 @@
-const translation = {
- title: 'Wissenseinstellungen',
- desc: 'Hier können Sie die Eigenschaften und Arbeitsweisen des Wissens anpassen.',
- form: {
- name: 'Wissensname',
- namePlaceholder: 'Bitte geben Sie den Namen des Wissens ein',
- nameError: 'Name darf nicht leer sein',
- desc: 'Wissensbeschreibung',
- descInfo: 'Bitte schreiben Sie eine klare textuelle Beschreibung, um den Inhalt des Wissens zu umreißen. Diese Beschreibung wird als Grundlage für die Auswahl aus mehreren Wissensdatenbanken zur Inferenz verwendet.',
- descPlaceholder: 'Beschreiben Sie, was in diesem Wissen enthalten ist. Eine detaillierte Beschreibung ermöglicht es der KI, zeitnah auf den Inhalt des Wissens zuzugreifen. Wenn leer, verwendet Dify die Standard-Treffstrategie.',
- descWrite: 'Erfahren Sie, wie man eine gute Wissensbeschreibung schreibt.',
- permissions: 'Berechtigungen',
- permissionsOnlyMe: 'Nur ich',
- permissionsAllMember: 'Alle Teammitglieder',
- indexMethod: 'Indexierungsmethode',
- indexMethodHighQuality: 'Hohe Qualität',
- indexMethodHighQualityTip: 'Den Embedding-Modell zur Verarbeitung aufrufen, um bei Benutzeranfragen eine höhere Genauigkeit zu bieten.',
- indexMethodEconomy: 'Ökonomisch',
- indexMethodEconomyTip: 'Verwendet Offline-Vektor-Engines, Schlagwortindizes usw., um die Genauigkeit ohne Tokenverbrauch zu reduzieren',
- embeddingModel: 'Einbettungsmodell',
- embeddingModelTip: 'Ändern Sie das eingebettete Modell, bitte gehen Sie zu ',
- embeddingModelTipLink: 'Einstellungen',
- retrievalSetting: {
- title: 'Abrufeinstellung',
- learnMore: 'Mehr erfahren',
- description: ' über die Abrufmethode.',
- longDescription: ' über die Abrufmethode, dies kann jederzeit in den Wissenseinstellungen geändert werden.',
- },
- save: 'Speichern',
- },
-}
-
-export default translation
+const translation = {
+ title: 'Wissenseinstellungen',
+ desc: 'Hier können Sie die Eigenschaften und Arbeitsweisen des Wissens anpassen.',
+ form: {
+ name: 'Wissensname',
+ namePlaceholder: 'Bitte geben Sie den Namen des Wissens ein',
+ nameError: 'Name darf nicht leer sein',
+ desc: 'Wissensbeschreibung',
+ descInfo: 'Bitte schreiben Sie eine klare textuelle Beschreibung, um den Inhalt des Wissens zu umreißen. Diese Beschreibung wird als Grundlage für die Auswahl aus mehreren Wissensdatenbanken zur Inferenz verwendet.',
+ descPlaceholder: 'Beschreiben Sie, was in diesem Wissen enthalten ist. Eine detaillierte Beschreibung ermöglicht es der KI, zeitnah auf den Inhalt des Wissens zuzugreifen. Wenn leer, verwendet Dify die Standard-Treffstrategie.',
+ descWrite: 'Erfahren Sie, wie man eine gute Wissensbeschreibung schreibt.',
+ permissions: 'Berechtigungen',
+ permissionsOnlyMe: 'Nur ich',
+ permissionsAllMember: 'Alle Teammitglieder',
+ indexMethod: 'Indexierungsmethode',
+ indexMethodHighQuality: 'Hohe Qualität',
+ indexMethodHighQualityTip: 'Den Embedding-Modell zur Verarbeitung aufrufen, um bei Benutzeranfragen eine höhere Genauigkeit zu bieten.',
+ indexMethodEconomy: 'Ökonomisch',
+ indexMethodEconomyTip: 'Verwendet Offline-Vektor-Engines, Schlagwortindizes usw., um die Genauigkeit ohne Tokenverbrauch zu reduzieren',
+ embeddingModel: 'Einbettungsmodell',
+ embeddingModelTip: 'Ändern Sie das eingebettete Modell, bitte gehen Sie zu ',
+ embeddingModelTipLink: 'Einstellungen',
+ retrievalSetting: {
+ title: 'Abrufeinstellung',
+ learnMore: 'Mehr erfahren',
+ description: ' über die Abrufmethode.',
+ longDescription: ' über die Abrufmethode, dies kann jederzeit in den Wissenseinstellungen geändert werden.',
+ },
+ save: 'Speichern',
+ permissionsInvitedMembers: 'Teilweise Teammitglieder',
+ me: '(Sie)',
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/dataset.ts b/web/i18n/de-DE/dataset.ts
index c6586ceee8..3c288b51b6 100644
--- a/web/i18n/de-DE/dataset.ts
+++ b/web/i18n/de-DE/dataset.ts
@@ -1,76 +1,76 @@
-const translation = {
- knowledge: 'Wissen',
- documentCount: ' Dokumente',
- wordCount: ' k Wörter',
- appCount: ' verknüpfte Apps',
- createDataset: 'Wissen erstellen',
- createDatasetIntro: 'Importiere deine eigenen Textdaten oder schreibe Daten in Echtzeit über Webhook für die LLM-Kontextverbesserung.',
- deleteDatasetConfirmTitle: 'Dieses Wissen löschen?',
- deleteDatasetConfirmContent:
- 'Das Löschen des Wissens ist unwiderruflich. Benutzer werden nicht mehr auf Ihr Wissen zugreifen können und alle Eingabeaufforderungen, Konfigurationen und Protokolle werden dauerhaft gelöscht.',
- datasetUsedByApp: 'Das Wissen wird von einigen Apps verwendet. Apps werden dieses Wissen nicht mehr nutzen können, und alle Prompt-Konfigurationen und Protokolle werden dauerhaft gelöscht.',
- datasetDeleted: 'Wissen gelöscht',
- datasetDeleteFailed: 'Löschen des Wissens fehlgeschlagen',
- didYouKnow: 'Wusstest du schon?',
- intro1: 'Das Wissen kann in die Dify-Anwendung ',
- intro2: 'als Kontext',
- intro3: ',',
- intro4: 'oder es ',
- intro5: 'kann erstellt werden',
- intro6: ' als ein eigenständiges ChatGPT-Index-Plugin zum Veröffentlichen',
- unavailable: 'Nicht verfügbar',
- unavailableTip: 'Einbettungsmodell ist nicht verfügbar, das Standard-Einbettungsmodell muss konfiguriert werden',
- datasets: 'WISSEN',
- datasetsApi: 'API',
- retrieval: {
- semantic_search: {
- title: 'Vektorsuche',
- description: 'Erzeuge Abfrage-Einbettungen und suche nach dem Textstück, das seiner Vektorrepräsentation am ähnlichsten ist.',
- },
- full_text_search: {
- title: 'Volltextsuche',
- description: 'Indiziere alle Begriffe im Dokument, sodass Benutzer jeden Begriff suchen und den relevanten Textabschnitt finden können, der diese Begriffe enthält.',
- },
- hybrid_search: {
- title: 'Hybridsuche',
- description: 'Führe Volltextsuche und Vektorsuchen gleichzeitig aus, ordne neu, um die beste Übereinstimmung für die Abfrage des Benutzers auszuwählen. Konfiguration des Rerank-Modell-APIs ist notwendig.',
- recommend: 'Empfehlen',
- },
- invertedIndex: {
- title: 'Invertierter Index',
- description: 'Ein invertierter Index ist eine Struktur, die für effiziente Abfragen verwendet wird. Organisiert nach Begriffen, zeigt jeder Begriff auf Dokumente oder Webseiten, die ihn enthalten.',
- },
- change: 'Ändern',
- changeRetrievalMethod: 'Abfragemethode ändern',
- },
- docsFailedNotice: 'Dokumente konnten nicht indiziert werden',
- retry: 'Wiederholen',
- indexingTechnique: {
- high_quality: 'HQ',
- economy: 'ECO',
- },
- indexingMethod: {
- semantic_search: 'VEKTOR',
- full_text_search: 'VOLLTEXT',
- hybrid_search: 'HYBRID',
- invertedIndex: 'INVERTIERT',
- },
- mixtureHighQualityAndEconomicTip: 'Für die Mischung von hochwertigen und wirtschaftlichen Wissensbasen ist das Rerank-Modell erforderlich.',
- inconsistentEmbeddingModelTip: 'Das Rerank-Modell ist erforderlich, wenn die Embedding-Modelle der ausgewählten Wissensbasen inkonsistent sind.',
- retrievalSettings: 'Abrufeinstellungen',
- rerankSettings: 'Rerank-Einstellungen',
- weightedScore: {
- title: 'Gewichtete Bewertung',
- description: 'Durch Anpassung der zugewiesenen Gewichte bestimmt diese Rerank-Strategie, ob semantische oder Schlüsselwort-Übereinstimmung priorisiert werden soll.',
- semanticFirst: 'Semantik zuerst',
- keywordFirst: 'Schlüsselwort zuerst',
- customized: 'Angepasst',
- semantic: 'Semantisch',
- keyword: 'Schlüsselwort',
- },
- nTo1RetrievalLegacy: 'N-zu-1-Abruf wird ab September offiziell eingestellt. Es wird empfohlen, den neuesten Multi-Pfad-Abruf zu verwenden, um bessere Ergebnisse zu erzielen.',
- nTo1RetrievalLegacyLink: 'Mehr erfahren',
- nTo1RetrievalLegacyLinkText: 'N-zu-1-Abruf wird im September offiziell eingestellt.',
-}
-
-export default translation
+const translation = {
+ knowledge: 'Wissen',
+ documentCount: ' Dokumente',
+ wordCount: ' k Wörter',
+ appCount: ' verknüpfte Apps',
+ createDataset: 'Wissen erstellen',
+ createDatasetIntro: 'Importiere deine eigenen Textdaten oder schreibe Daten in Echtzeit über Webhook für die LLM-Kontextverbesserung.',
+ deleteDatasetConfirmTitle: 'Dieses Wissen löschen?',
+ deleteDatasetConfirmContent:
+ 'Das Löschen des Wissens ist unwiderruflich. Benutzer werden nicht mehr auf Ihr Wissen zugreifen können und alle Eingabeaufforderungen, Konfigurationen und Protokolle werden dauerhaft gelöscht.',
+ datasetUsedByApp: 'Das Wissen wird von einigen Apps verwendet. Apps werden dieses Wissen nicht mehr nutzen können, und alle Prompt-Konfigurationen und Protokolle werden dauerhaft gelöscht.',
+ datasetDeleted: 'Wissen gelöscht',
+ datasetDeleteFailed: 'Löschen des Wissens fehlgeschlagen',
+ didYouKnow: 'Wusstest du schon?',
+ intro1: 'Das Wissen kann in die Dify-Anwendung ',
+ intro2: 'als Kontext',
+ intro3: ',',
+ intro4: 'oder es ',
+ intro5: 'kann erstellt werden',
+ intro6: ' als ein eigenständiges ChatGPT-Index-Plugin zum Veröffentlichen',
+ unavailable: 'Nicht verfügbar',
+ unavailableTip: 'Einbettungsmodell ist nicht verfügbar, das Standard-Einbettungsmodell muss konfiguriert werden',
+ datasets: 'WISSEN',
+ datasetsApi: 'API',
+ retrieval: {
+ semantic_search: {
+ title: 'Vektorsuche',
+ description: 'Erzeuge Abfrage-Einbettungen und suche nach dem Textstück, das seiner Vektorrepräsentation am ähnlichsten ist.',
+ },
+ full_text_search: {
+ title: 'Volltextsuche',
+ description: 'Indiziere alle Begriffe im Dokument, sodass Benutzer jeden Begriff suchen und den relevanten Textabschnitt finden können, der diese Begriffe enthält.',
+ },
+ hybrid_search: {
+ title: 'Hybridsuche',
+ description: 'Führe Volltextsuche und Vektorsuchen gleichzeitig aus, ordne neu, um die beste Übereinstimmung für die Abfrage des Benutzers auszuwählen. Konfiguration des Rerank-Modell-APIs ist notwendig.',
+ recommend: 'Empfehlen',
+ },
+ invertedIndex: {
+ title: 'Invertierter Index',
+ description: 'Ein invertierter Index ist eine Struktur, die für effiziente Abfragen verwendet wird. Organisiert nach Begriffen, zeigt jeder Begriff auf Dokumente oder Webseiten, die ihn enthalten.',
+ },
+ change: 'Ändern',
+ changeRetrievalMethod: 'Abfragemethode ändern',
+ },
+ docsFailedNotice: 'Dokumente konnten nicht indiziert werden',
+ retry: 'Wiederholen',
+ indexingTechnique: {
+ high_quality: 'HQ',
+ economy: 'ECO',
+ },
+ indexingMethod: {
+ semantic_search: 'VEKTOR',
+ full_text_search: 'VOLLTEXT',
+ hybrid_search: 'HYBRID',
+ invertedIndex: 'INVERTIERT',
+ },
+ mixtureHighQualityAndEconomicTip: 'Für die Mischung von hochwertigen und wirtschaftlichen Wissensbasen ist das Rerank-Modell erforderlich.',
+ inconsistentEmbeddingModelTip: 'Das Rerank-Modell ist erforderlich, wenn die Embedding-Modelle der ausgewählten Wissensbasen inkonsistent sind.',
+ retrievalSettings: 'Abrufeinstellungen',
+ rerankSettings: 'Rerank-Einstellungen',
+ weightedScore: {
+ title: 'Gewichtete Bewertung',
+ description: 'Durch Anpassung der zugewiesenen Gewichte bestimmt diese Rerank-Strategie, ob semantische oder Schlüsselwort-Übereinstimmung priorisiert werden soll.',
+ semanticFirst: 'Semantik zuerst',
+ keywordFirst: 'Schlüsselwort zuerst',
+ customized: 'Angepasst',
+ semantic: 'Semantisch',
+ keyword: 'Schlüsselwort',
+ },
+ nTo1RetrievalLegacy: 'N-zu-1-Abruf wird ab September offiziell eingestellt. Es wird empfohlen, den neuesten Multi-Pfad-Abruf zu verwenden, um bessere Ergebnisse zu erzielen.',
+ nTo1RetrievalLegacyLink: 'Mehr erfahren',
+ nTo1RetrievalLegacyLinkText: 'N-zu-1-Abruf wird im September offiziell eingestellt.',
+}
+
+export default translation
diff --git a/web/i18n/de-DE/explore.ts b/web/i18n/de-DE/explore.ts
index 02fc90f89c..1e6f8c80d7 100644
--- a/web/i18n/de-DE/explore.ts
+++ b/web/i18n/de-DE/explore.ts
@@ -1,41 +1,41 @@
-const translation = {
- title: 'Entdecken',
- sidebar: {
- discovery: 'Entdeckung',
- chat: 'Chat',
- workspace: 'Arbeitsbereich',
- action: {
- pin: 'Anheften',
- unpin: 'Lösen',
- rename: 'Umbenennen',
- delete: 'Löschen',
- },
- delete: {
- title: 'App löschen',
- content: 'Sind Sie sicher, dass Sie diese App löschen möchten?',
- },
- },
- apps: {
- title: 'Apps von Dify erkunden',
- description: 'Nutzen Sie diese Vorlagen-Apps sofort oder passen Sie Ihre eigenen Apps basierend auf den Vorlagen an.',
- allCategories: 'Alle Kategorien',
- },
- appCard: {
- addToWorkspace: 'Zum Arbeitsbereich hinzufügen',
- customize: 'Anpassen',
- },
- appCustomize: {
- title: 'App aus {{name}} erstellen',
- subTitle: 'App-Symbol & Name',
- nameRequired: 'App-Name ist erforderlich',
- },
- category: {
- Assistant: 'Assistent',
- Writing: 'Schreiben',
- Translate: 'Übersetzen',
- Programming: 'Programmieren',
- HR: 'Personalwesen',
- },
-}
-
-export default translation
+const translation = {
+ title: 'Entdecken',
+ sidebar: {
+ discovery: 'Entdeckung',
+ chat: 'Chat',
+ workspace: 'Arbeitsbereich',
+ action: {
+ pin: 'Anheften',
+ unpin: 'Lösen',
+ rename: 'Umbenennen',
+ delete: 'Löschen',
+ },
+ delete: {
+ title: 'App löschen',
+ content: 'Sind Sie sicher, dass Sie diese App löschen möchten?',
+ },
+ },
+ apps: {
+ title: 'Apps von Dify erkunden',
+ description: 'Nutzen Sie diese Vorlagen-Apps sofort oder passen Sie Ihre eigenen Apps basierend auf den Vorlagen an.',
+ allCategories: 'Alle Kategorien',
+ },
+ appCard: {
+ addToWorkspace: 'Zum Arbeitsbereich hinzufügen',
+ customize: 'Anpassen',
+ },
+ appCustomize: {
+ title: 'App aus {{name}} erstellen',
+ subTitle: 'App-Symbol & Name',
+ nameRequired: 'App-Name ist erforderlich',
+ },
+ category: {
+ Assistant: 'Assistent',
+ Writing: 'Schreiben',
+ Translate: 'Übersetzen',
+ Programming: 'Programmieren',
+ HR: 'Personalwesen',
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/login.ts b/web/i18n/de-DE/login.ts
index f932f92976..5bfaa4c6db 100644
--- a/web/i18n/de-DE/login.ts
+++ b/web/i18n/de-DE/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: 'Name wird benötigt',
passwordEmpty: 'Passwort wird benötigt',
passwordInvalid: 'Das Passwort muss Buchstaben und Zahlen enthalten und länger als 8 Zeichen sein',
+ passwordLengthInValid: 'Das Passwort muss mindestens 8 Zeichen lang sein',
},
license: {
tip: 'Bevor du mit Dify Community Edition beginnst, lies die',
@@ -68,6 +69,7 @@ const translation = {
activated: 'Jetzt anmelden',
adminInitPassword: 'Admin-Initialpasswort',
validate: 'Validieren',
+ sso: 'Mit SSO fortfahren',
}
export default translation
diff --git a/web/i18n/de-DE/run-log.ts b/web/i18n/de-DE/run-log.ts
index 7c0257b513..5f7610c68d 100644
--- a/web/i18n/de-DE/run-log.ts
+++ b/web/i18n/de-DE/run-log.ts
@@ -23,6 +23,7 @@ const translation = {
tipLeft: 'Bitte gehen Sie zum ',
Link: 'Detailpanel',
tipRight: 'ansehen.',
+ link: 'Gruppe Detail',
},
}
diff --git a/web/i18n/de-DE/share-app.ts b/web/i18n/de-DE/share-app.ts
index 6a35b959a5..80dc1cecb4 100644
--- a/web/i18n/de-DE/share-app.ts
+++ b/web/i18n/de-DE/share-app.ts
@@ -1,74 +1,74 @@
-const translation = {
- common: {
- welcome: '',
- appUnavailable: 'App ist nicht verfügbar',
- appUnkonwError: 'App ist nicht verfügbar',
- },
- chat: {
- newChat: 'Neuer Chat',
- pinnedTitle: 'Angeheftet',
- unpinnedTitle: 'Chats',
- newChatDefaultName: 'Neues Gespräch',
- resetChat: 'Gespräch zurücksetzen',
- powerBy: 'Bereitgestellt von',
- prompt: 'Aufforderung',
- privatePromptConfigTitle: 'Konversationseinstellungen',
- publicPromptConfigTitle: 'Anfängliche Aufforderung',
- configStatusDes: 'Vor dem Start können Sie die Konversationseinstellungen ändern',
- configDisabled:
- 'Voreinstellungen der vorherigen Sitzung wurden für diese Sitzung verwendet.',
- startChat: 'Chat starten',
- privacyPolicyLeft:
- 'Bitte lesen Sie die ',
- privacyPolicyMiddle:
- 'Datenschutzrichtlinien',
- privacyPolicyRight:
- ', die vom App-Entwickler bereitgestellt wurden.',
- deleteConversation: {
- title: 'Konversation löschen',
- content: 'Sind Sie sicher, dass Sie diese Konversation löschen möchten?',
- },
- tryToSolve: 'Versuchen zu lösen',
- temporarySystemIssue: 'Entschuldigung, vorübergehendes Systemproblem.',
- },
- generation: {
- tabs: {
- create: 'Einmal ausführen',
- batch: 'Stapelverarbeitung',
- saved: 'Gespeichert',
- },
- savedNoData: {
- title: 'Sie haben noch kein Ergebnis gespeichert!',
- description: 'Beginnen Sie mit der Inhaltserstellung und finden Sie hier Ihre gespeicherten Ergebnisse.',
- startCreateContent: 'Beginnen Sie mit der Inhaltserstellung',
- },
- title: 'KI-Vervollständigung',
- queryTitle: 'Abfrageinhalt',
- completionResult: 'Vervollständigungsergebnis',
- queryPlaceholder: 'Schreiben Sie Ihren Abfrageinhalt...',
- run: 'Ausführen',
- copy: 'Kopieren',
- resultTitle: 'KI-Vervollständigung',
- noData: 'KI wird Ihnen hier geben, was Sie möchten.',
- csvUploadTitle: 'Ziehen Sie Ihre CSV-Datei hierher oder ',
- browse: 'durchsuchen',
- csvStructureTitle: 'Die CSV-Datei muss der folgenden Struktur entsprechen:',
- downloadTemplate: 'Laden Sie die Vorlage hier herunter',
- field: 'Feld',
- batchFailed: {
- info: '{{num}} fehlgeschlagene Ausführungen',
- retry: 'Wiederholen',
- outputPlaceholder: 'Kein Ausgabeanhalt',
- },
- errorMsg: {
- empty: 'Bitte geben Sie Inhalte in die hochgeladene Datei ein.',
- fileStructNotMatch: 'Die hochgeladene CSV-Datei entspricht nicht der Struktur.',
- emptyLine: 'Zeile {{rowIndex}} ist leer',
- invalidLine: 'Zeile {{rowIndex}}: {{varName}} Wert darf nicht leer sein',
- moreThanMaxLengthLine: 'Zeile {{rowIndex}}: {{varName}} Wert darf nicht mehr als {{maxLength}} Zeichen sein',
- atLeastOne: 'Bitte geben Sie mindestens eine Zeile in die hochgeladene Datei ein.',
- },
- },
-}
-
-export default translation
+const translation = {
+ common: {
+ welcome: '',
+ appUnavailable: 'App ist nicht verfügbar',
+ appUnkonwError: 'App ist nicht verfügbar',
+ },
+ chat: {
+ newChat: 'Neuer Chat',
+ pinnedTitle: 'Angeheftet',
+ unpinnedTitle: 'Chats',
+ newChatDefaultName: 'Neues Gespräch',
+ resetChat: 'Gespräch zurücksetzen',
+ powerBy: 'Bereitgestellt von',
+ prompt: 'Aufforderung',
+ privatePromptConfigTitle: 'Konversationseinstellungen',
+ publicPromptConfigTitle: 'Anfängliche Aufforderung',
+ configStatusDes: 'Vor dem Start können Sie die Konversationseinstellungen ändern',
+ configDisabled:
+ 'Voreinstellungen der vorherigen Sitzung wurden für diese Sitzung verwendet.',
+ startChat: 'Chat starten',
+ privacyPolicyLeft:
+ 'Bitte lesen Sie die ',
+ privacyPolicyMiddle:
+ 'Datenschutzrichtlinien',
+ privacyPolicyRight:
+ ', die vom App-Entwickler bereitgestellt wurden.',
+ deleteConversation: {
+ title: 'Konversation löschen',
+ content: 'Sind Sie sicher, dass Sie diese Konversation löschen möchten?',
+ },
+ tryToSolve: 'Versuchen zu lösen',
+ temporarySystemIssue: 'Entschuldigung, vorübergehendes Systemproblem.',
+ },
+ generation: {
+ tabs: {
+ create: 'Einmal ausführen',
+ batch: 'Stapelverarbeitung',
+ saved: 'Gespeichert',
+ },
+ savedNoData: {
+ title: 'Sie haben noch kein Ergebnis gespeichert!',
+ description: 'Beginnen Sie mit der Inhaltserstellung und finden Sie hier Ihre gespeicherten Ergebnisse.',
+ startCreateContent: 'Beginnen Sie mit der Inhaltserstellung',
+ },
+ title: 'KI-Vervollständigung',
+ queryTitle: 'Abfrageinhalt',
+ completionResult: 'Vervollständigungsergebnis',
+ queryPlaceholder: 'Schreiben Sie Ihren Abfrageinhalt...',
+ run: 'Ausführen',
+ copy: 'Kopieren',
+ resultTitle: 'KI-Vervollständigung',
+ noData: 'KI wird Ihnen hier geben, was Sie möchten.',
+ csvUploadTitle: 'Ziehen Sie Ihre CSV-Datei hierher oder ',
+ browse: 'durchsuchen',
+ csvStructureTitle: 'Die CSV-Datei muss der folgenden Struktur entsprechen:',
+ downloadTemplate: 'Laden Sie die Vorlage hier herunter',
+ field: 'Feld',
+ batchFailed: {
+ info: '{{num}} fehlgeschlagene Ausführungen',
+ retry: 'Wiederholen',
+ outputPlaceholder: 'Kein Ausgabeanhalt',
+ },
+ errorMsg: {
+ empty: 'Bitte geben Sie Inhalte in die hochgeladene Datei ein.',
+ fileStructNotMatch: 'Die hochgeladene CSV-Datei entspricht nicht der Struktur.',
+ emptyLine: 'Zeile {{rowIndex}} ist leer',
+ invalidLine: 'Zeile {{rowIndex}}: {{varName}} Wert darf nicht leer sein',
+ moreThanMaxLengthLine: 'Zeile {{rowIndex}}: {{varName}} Wert darf nicht mehr als {{maxLength}} Zeichen sein',
+ atLeastOne: 'Bitte geben Sie mindestens eine Zeile in die hochgeladene Datei ein.',
+ },
+ },
+}
+
+export default translation
diff --git a/web/i18n/de-DE/tools.ts b/web/i18n/de-DE/tools.ts
index a45d0da1b1..3be01b8350 100644
--- a/web/i18n/de-DE/tools.ts
+++ b/web/i18n/de-DE/tools.ts
@@ -1,119 +1,153 @@
-const translation = {
- title: 'Werkzeuge',
- createCustomTool: 'Eigenes Werkzeug erstellen',
- type: {
- all: 'Alle',
- builtIn: 'Integriert',
- custom: 'Benutzerdefiniert',
- },
- contribute: {
- line1: 'Ich interessiere mich dafür, ',
- line2: 'Werkzeuge zu Dify beizutragen.',
- viewGuide: 'Leitfaden anzeigen',
- },
- author: 'Von',
- auth: {
- unauthorized: 'Zur Autorisierung',
- authorized: 'Autorisiert',
- setup: 'Autorisierung einrichten, um zu nutzen',
- setupModalTitle: 'Autorisierung einrichten',
- setupModalTitleDescription: 'Nach der Konfiguration der Anmeldeinformationen können alle Mitglieder im Arbeitsbereich dieses Werkzeug beim Orchestrieren von Anwendungen nutzen.',
- },
- includeToolNum: '{{num}} Werkzeuge inkludiert',
- addTool: 'Werkzeug hinzufügen',
- createTool: {
- title: 'Eigenes Werkzeug erstellen',
- editAction: 'Konfigurieren',
- editTitle: 'Eigenes Werkzeug bearbeiten',
- name: 'Name',
- toolNamePlaceHolder: 'Geben Sie den Werkzeugnamen ein',
- schema: 'Schema',
- schemaPlaceHolder: 'Geben Sie hier Ihr OpenAPI-Schema ein',
- viewSchemaSpec: 'Die OpenAPI-Swagger-Spezifikation anzeigen',
- importFromUrl: 'Von URL importieren',
- importFromUrlPlaceHolder: 'https://...',
- urlError: 'Bitte geben Sie eine gültige URL ein',
- examples: 'Beispiele',
- exampleOptions: {
- json: 'Wetter(JSON)',
- yaml: 'Pet Store(YAML)',
- blankTemplate: 'Leere Vorlage',
- },
- availableTools: {
- title: 'Verfügbare Werkzeuge',
- name: 'Name',
- description: 'Beschreibung',
- method: 'Methode',
- path: 'Pfad',
- action: 'Aktionen',
- test: 'Test',
- },
- authMethod: {
- title: 'Autorisierungsmethode',
- type: 'Autorisierungstyp',
- keyTooltip: 'Http Header Key, Sie können es bei "Authorization" belassen, wenn Sie nicht wissen, was es ist, oder auf einen benutzerdefinierten Wert setzen',
- types: {
- none: 'Keine',
- api_key: 'API-Key',
- apiKeyPlaceholder: 'HTTP-Headername für API-Key',
- apiValuePlaceholder: 'API-Key eingeben',
- },
- key: 'Schlüssel',
- value: 'Wert',
- },
- authHeaderPrefix: {
- title: 'Auth-Typ',
- types: {
- basic: 'Basic',
- bearer: 'Bearer',
- custom: 'Benutzerdefiniert',
- },
- },
- privacyPolicy: 'Datenschutzrichtlinie',
- privacyPolicyPlaceholder: 'Bitte Datenschutzrichtlinie eingeben',
- customDisclaimer: 'Benutzer Haftungsausschluss',
- customDisclaimerPlaceholder: 'Bitte benutzerdefinierten Haftungsausschluss eingeben',
- deleteToolConfirmTitle: 'Löschen Sie dieses Werkzeug?',
- deleteToolConfirmContent: 'Das Löschen des Werkzeugs ist irreversibel. Benutzer können Ihr Werkzeug nicht mehr verwenden.',
- },
- test: {
- title: 'Test',
- parametersValue: 'Parameter & Wert',
- parameters: 'Parameter',
- value: 'Wert',
- testResult: 'Testergebnisse',
- testResultPlaceholder: 'Testergebnis wird hier angezeigt',
- },
- thought: {
- using: 'Nutzung',
- used: 'Genutzt',
- requestTitle: 'Anfrage an',
- responseTitle: 'Antwort von',
- },
- setBuiltInTools: {
- info: 'Info',
- setting: 'Einstellung',
- toolDescription: 'Werkzeugbeschreibung',
- parameters: 'Parameter',
- string: 'Zeichenkette',
- number: 'Nummer',
- required: 'Erforderlich',
- infoAndSetting: 'Info & Einstellungen',
- },
- noCustomTool: {
- title: 'Keine benutzerdefinierten Werkzeuge!',
- content: 'Fügen Sie hier Ihre benutzerdefinierten Werkzeuge hinzu und verwalten Sie sie, um KI-Apps zu erstellen.',
- createTool: 'Werkzeug erstellen',
- },
- noSearchRes: {
- title: 'Leider keine Ergebnisse!',
- content: 'Wir konnten keine Werkzeuge finden, die Ihrer Suche entsprechen.',
- reset: 'Suche zurücksetzen',
- },
- builtInPromptTitle: 'Aufforderung',
- toolRemoved: 'Werkzeug entfernt',
- notAuthorized: 'Werkzeug nicht autorisiert',
- howToGet: 'Wie erhält man',
-}
-
-export default translation
+const translation = {
+ title: 'Werkzeuge',
+ createCustomTool: 'Eigenes Werkzeug erstellen',
+ type: {
+ all: 'Alle',
+ builtIn: 'Integriert',
+ custom: 'Benutzerdefiniert',
+ workflow: 'Arbeitsablauf',
+ },
+ contribute: {
+ line1: 'Ich interessiere mich dafür, ',
+ line2: 'Werkzeuge zu Dify beizutragen.',
+ viewGuide: 'Leitfaden anzeigen',
+ },
+ author: 'Von',
+ auth: {
+ unauthorized: 'Zur Autorisierung',
+ authorized: 'Autorisiert',
+ setup: 'Autorisierung einrichten, um zu nutzen',
+ setupModalTitle: 'Autorisierung einrichten',
+ setupModalTitleDescription: 'Nach der Konfiguration der Anmeldeinformationen können alle Mitglieder im Arbeitsbereich dieses Werkzeug beim Orchestrieren von Anwendungen nutzen.',
+ },
+ includeToolNum: '{{num}} Werkzeuge inkludiert',
+ addTool: 'Werkzeug hinzufügen',
+ createTool: {
+ title: 'Eigenes Werkzeug erstellen',
+ editAction: 'Konfigurieren',
+ editTitle: 'Eigenes Werkzeug bearbeiten',
+ name: 'Name',
+ toolNamePlaceHolder: 'Geben Sie den Werkzeugnamen ein',
+ schema: 'Schema',
+ schemaPlaceHolder: 'Geben Sie hier Ihr OpenAPI-Schema ein',
+ viewSchemaSpec: 'Die OpenAPI-Swagger-Spezifikation anzeigen',
+ importFromUrl: 'Von URL importieren',
+ importFromUrlPlaceHolder: 'https://...',
+ urlError: 'Bitte geben Sie eine gültige URL ein',
+ examples: 'Beispiele',
+ exampleOptions: {
+ json: 'Wetter(JSON)',
+ yaml: 'Pet Store(YAML)',
+ blankTemplate: 'Leere Vorlage',
+ },
+ availableTools: {
+ title: 'Verfügbare Werkzeuge',
+ name: 'Name',
+ description: 'Beschreibung',
+ method: 'Methode',
+ path: 'Pfad',
+ action: 'Aktionen',
+ test: 'Test',
+ },
+ authMethod: {
+ title: 'Autorisierungsmethode',
+ type: 'Autorisierungstyp',
+ keyTooltip: 'Http Header Key, Sie können es bei "Authorization" belassen, wenn Sie nicht wissen, was es ist, oder auf einen benutzerdefinierten Wert setzen',
+ types: {
+ none: 'Keine',
+ api_key: 'API-Key',
+ apiKeyPlaceholder: 'HTTP-Headername für API-Key',
+ apiValuePlaceholder: 'API-Key eingeben',
+ },
+ key: 'Schlüssel',
+ value: 'Wert',
+ },
+ authHeaderPrefix: {
+ title: 'Auth-Typ',
+ types: {
+ basic: 'Basic',
+ bearer: 'Bearer',
+ custom: 'Benutzerdefiniert',
+ },
+ },
+ privacyPolicy: 'Datenschutzrichtlinie',
+ privacyPolicyPlaceholder: 'Bitte Datenschutzrichtlinie eingeben',
+ customDisclaimer: 'Benutzer Haftungsausschluss',
+ customDisclaimerPlaceholder: 'Bitte benutzerdefinierten Haftungsausschluss eingeben',
+ deleteToolConfirmTitle: 'Löschen Sie dieses Werkzeug?',
+ deleteToolConfirmContent: 'Das Löschen des Werkzeugs ist irreversibel. Benutzer können Ihr Werkzeug nicht mehr verwenden.',
+ toolInput: {
+ description: 'Beschreibung',
+ methodParameterTip: 'LLM-Füllungen während der Inferenz',
+ method: 'Methode',
+ methodParameter: 'Parameter',
+ label: 'Schilder',
+ required: 'Erforderlich',
+ methodSetting: 'Einstellung',
+ name: 'Name',
+ title: 'Werkzeug-Eingabe',
+ methodSettingTip: 'Der Benutzer füllt die Werkzeugkonfiguration aus',
+ descriptionPlaceholder: 'Beschreibung der Bedeutung des Parameters',
+ labelPlaceholder: 'Tags auswählen(optional)',
+ },
+ description: 'Beschreibung',
+ confirmTip: 'Apps, die dieses Tool verwenden, sind davon betroffen',
+ nameForToolCallTip: 'Unterstützt nur Zahlen, Buchstaben und Unterstriche.',
+ nameForToolCall: 'Name des Werkzeugaufrufs',
+ confirmTitle: 'Bestätigen, um zu speichern?',
+ nameForToolCallPlaceHolder: 'Wird für die Maschinenerkennung verwendet, z. B. getCurrentWeather, list_pets',
+ descriptionPlaceholder: 'Kurze Beschreibung des Zwecks des Werkzeugs, z. B. um die Temperatur für einen bestimmten Ort zu ermitteln.',
+ },
+ test: {
+ title: 'Test',
+ parametersValue: 'Parameter & Wert',
+ parameters: 'Parameter',
+ value: 'Wert',
+ testResult: 'Testergebnisse',
+ testResultPlaceholder: 'Testergebnis wird hier angezeigt',
+ },
+ thought: {
+ using: 'Nutzung',
+ used: 'Genutzt',
+ requestTitle: 'Anfrage an',
+ responseTitle: 'Antwort von',
+ },
+ setBuiltInTools: {
+ info: 'Info',
+ setting: 'Einstellung',
+ toolDescription: 'Werkzeugbeschreibung',
+ parameters: 'Parameter',
+ string: 'Zeichenkette',
+ number: 'Nummer',
+ required: 'Erforderlich',
+ infoAndSetting: 'Info & Einstellungen',
+ },
+ noCustomTool: {
+ title: 'Keine benutzerdefinierten Werkzeuge!',
+ content: 'Fügen Sie hier Ihre benutzerdefinierten Werkzeuge hinzu und verwalten Sie sie, um KI-Apps zu erstellen.',
+ createTool: 'Werkzeug erstellen',
+ },
+ noSearchRes: {
+ title: 'Leider keine Ergebnisse!',
+ content: 'Wir konnten keine Werkzeuge finden, die Ihrer Suche entsprechen.',
+ reset: 'Suche zurücksetzen',
+ },
+ builtInPromptTitle: 'Aufforderung',
+ toolRemoved: 'Werkzeug entfernt',
+ notAuthorized: 'Werkzeug nicht autorisiert',
+ howToGet: 'Wie erhält man',
+ addToolModal: {
+ added: 'zugefügt',
+ manageInTools: 'Verwalten in Tools',
+ add: 'hinzufügen',
+ category: 'Kategorie',
+ emptyTitle: 'Kein Workflow-Tool verfügbar',
+ type: 'Art',
+ emptyTip: 'Gehen Sie zu "Workflow -> Als Tool veröffentlichen"',
+ },
+ toolNameUsageTip: 'Name des Tool-Aufrufs für die Argumentation und Aufforderung des Agenten',
+ customToolTip: 'Erfahren Sie mehr über benutzerdefinierte Dify-Tools',
+ openInStudio: 'In Studio öffnen',
+}
+
+export default translation
diff --git a/web/i18n/de-DE/workflow.ts b/web/i18n/de-DE/workflow.ts
index c1ef1d408e..122bca7980 100644
--- a/web/i18n/de-DE/workflow.ts
+++ b/web/i18n/de-DE/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: 'In den Tools verwalten',
workflowAsToolTip: 'Nach dem Workflow-Update ist eine Neukonfiguration des Tools erforderlich.',
viewDetailInTracingPanel: 'Details anzeigen',
+ importDSL: 'DSL importieren',
+ importFailure: 'Fehler beim Import',
+ syncingData: 'Synchronisieren von Daten, nur wenige Sekunden.',
+ chooseDSL: 'Wählen Sie eine DSL(yml)-Datei',
+ importSuccess: 'Erfolg beim Import',
+ importDSLTip: 'Der aktuelle Entwurf wird überschrieben. Exportieren Sie den Workflow vor dem Import als Backup.',
+ overwriteAndImport: 'Überschreiben und Importieren',
+ backupCurrentDraft: 'Aktuellen Entwurf sichern',
},
env: {
envPanelTitle: 'Umgebungsvariablen',
@@ -178,6 +186,7 @@ const translation = {
'transform': 'Transformieren',
'utilities': 'Dienstprogramme',
'noResult': 'Kein Ergebnis gefunden',
+ 'searchTool': 'Suchwerkzeug',
},
blocks: {
'start': 'Start',
@@ -407,6 +416,7 @@ const translation = {
enterValue: 'Wert eingeben',
addCondition: 'Bedingung hinzufügen',
conditionNotSetup: 'Bedingung NICHT eingerichtet',
+ selectVariable: 'Variable auswählen...',
},
variableAssigner: {
title: 'Variablen zuweisen',
@@ -502,6 +512,25 @@ const translation = {
iteration_other: '{{count}} Iterationen',
currentIteration: 'Aktuelle Iteration',
},
+ note: {
+ editor: {
+ strikethrough: 'Durchgestrichen',
+ large: 'Groß',
+ bulletList: 'Aufzählung',
+ italic: 'Kursiv',
+ small: 'Klein',
+ bold: 'Kühn',
+ placeholder: 'Schreiben Sie Ihre Notiz...',
+ openLink: 'Offen',
+ showAuthor: 'Autor anzeigen',
+ medium: 'Mittel',
+ unlink: 'Trennen',
+ link: 'Verbinden',
+ enterUrl: 'URL eingeben...',
+ invalidUrl: 'Ungültige URL',
+ },
+ addNote: 'Notiz hinzufügen',
+ },
},
tracing: {
stopBy: 'Gestoppt von {{user}}',
diff --git a/web/i18n/es-ES/app-overview.ts b/web/i18n/es-ES/app-overview.ts
index 98573e8b25..8beb7545dc 100644
--- a/web/i18n/es-ES/app-overview.ts
+++ b/web/i18n/es-ES/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Pasos del flujo de trabajo',
show: 'Mostrar',
hide: 'Ocultar',
+ subTitle: 'Detalles del flujo de trabajo',
+ showDesc: 'Mostrar u ocultar detalles del flujo de trabajo en WebApp',
},
chatColorTheme: 'Tema de color del chat',
chatColorThemeDesc: 'Establece el tema de color del chatbot',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'Ingresa el texto de descargo de responsabilidad personalizado',
customDisclaimerTip: 'El texto de descargo de responsabilidad personalizado se mostrará en el lado del cliente, proporcionando información adicional sobre la aplicación',
},
+ sso: {
+ description: 'Todos los usuarios deben iniciar sesión con SSO antes de usar WebApp',
+ tooltip: 'Póngase en contacto con el administrador para habilitar el inicio de sesión único de WebApp',
+ label: 'Autenticación SSO',
+ title: 'WebApp SSO',
+ },
},
embedded: {
entry: 'Incrustado',
diff --git a/web/i18n/es-ES/app.ts b/web/i18n/es-ES/app.ts
index 739439ff58..b29f8d36e4 100644
--- a/web/i18n/es-ES/app.ts
+++ b/web/i18n/es-ES/app.ts
@@ -122,7 +122,17 @@ const translation = {
removeConfirmTitle: '¿Eliminar la configuración de {{key}}?',
removeConfirmContent: 'La configuración actual está en uso, eliminarla desactivará la función de rastreo.',
},
+ view: 'Vista',
},
+ answerIcon: {
+ title: 'Usar el icono de la aplicación web para reemplazar 🤖',
+ descriptionInExplore: 'Si se debe usar el icono de la aplicación web para reemplazarlo 🤖 en Explore',
+ description: 'Si se va a usar el icono de la aplicación web para reemplazarlo 🤖 en la aplicación compartida',
+ },
+ importFromDSLUrl: 'URL de origen',
+ importFromDSLUrlPlaceholder: 'Pegar enlace DSL aquí',
+ importFromDSL: 'Importar desde DSL',
+ importFromDSLFile: 'Desde el archivo DSL',
}
export default translation
diff --git a/web/i18n/es-ES/workflow.ts b/web/i18n/es-ES/workflow.ts
index 38f2ad68b1..7b8413018d 100644
--- a/web/i18n/es-ES/workflow.ts
+++ b/web/i18n/es-ES/workflow.ts
@@ -186,6 +186,7 @@ const translation = {
'transform': 'Transformar',
'utilities': 'Utilidades',
'noResult': 'No se encontraron coincidencias',
+ 'searchTool': 'Herramienta de búsqueda',
},
blocks: {
'start': 'Inicio',
@@ -415,6 +416,7 @@ const translation = {
enterValue: 'Ingresa un valor',
addCondition: 'Agregar condición',
conditionNotSetup: 'Condición NO configurada',
+ selectVariable: 'Seleccionar variable...',
},
variableAssigner: {
title: 'Asignar variables',
@@ -533,6 +535,9 @@ const translation = {
stopBy: 'Detenido por {{user}}',
},
},
+ tracing: {
+ stopBy: 'Pásate por {{usuario}}',
+ },
}
export default translation
diff --git a/web/i18n/fa-IR/app-overview.ts b/web/i18n/fa-IR/app-overview.ts
index fc71b98b75..8a0057fb82 100644
--- a/web/i18n/fa-IR/app-overview.ts
+++ b/web/i18n/fa-IR/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'مراحل کاری',
show: 'نمایش',
hide: 'مخفی کردن',
+ showDesc: 'نمایش یا پنهان کردن جزئیات گردش کار در WebApp',
+ subTitle: 'جزئیات گردش کار',
},
chatColorTheme: 'تم رنگی چت',
chatColorThemeDesc: 'تم رنگی چتبات را تنظیم کنید',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'متن سلب مسئولیت سفارشی را وارد کنید',
customDisclaimerTip: 'متن سلب مسئولیت سفارشی در سمت مشتری نمایش داده میشود و اطلاعات بیشتری درباره برنامه ارائه میدهد',
},
+ sso: {
+ title: 'WebApp SSO',
+ label: 'احراز هویت SSO',
+ description: 'همه کاربران باید قبل از استفاده از WebApp با SSO وارد شوند',
+ tooltip: 'برای فعال کردن WebApp SSO با سرپرست تماس بگیرید',
+ },
},
embedded: {
entry: 'جاسازی شده',
diff --git a/web/i18n/fa-IR/app.ts b/web/i18n/fa-IR/app.ts
index b9dd179809..9283b04287 100644
--- a/web/i18n/fa-IR/app.ts
+++ b/web/i18n/fa-IR/app.ts
@@ -126,6 +126,12 @@ const translation = {
removeConfirmTitle: 'حذف پیکربندی {{key}}؟',
removeConfirmContent: 'پیکربندی فعلی در حال استفاده است، حذف آن ویژگی ردیابی را غیرفعال خواهد کرد.',
},
+ view: 'مشاهده',
+ },
+ answerIcon: {
+ descriptionInExplore: 'آیا از نماد WebApp برای جایگزینی 🤖 در Explore استفاده کنیم یا خیر',
+ description: 'آیا از نماد WebApp برای جایگزینی 🤖 در برنامه مشترک استفاده کنیم یا خیر',
+ title: 'از نماد WebApp برای جایگزینی 🤖 استفاده کنید',
},
}
diff --git a/web/i18n/fa-IR/workflow.ts b/web/i18n/fa-IR/workflow.ts
index 6dc326e829..199fd0b7f8 100644
--- a/web/i18n/fa-IR/workflow.ts
+++ b/web/i18n/fa-IR/workflow.ts
@@ -186,6 +186,7 @@ const translation = {
'transform': 'تبدیل',
'utilities': 'ابزارهای کاربردی',
'noResult': 'نتیجهای پیدا نشد',
+ 'searchTool': 'ابزار جستجو',
},
blocks: {
'start': 'شروع',
diff --git a/web/i18n/fr-FR/app-api.ts b/web/i18n/fr-FR/app-api.ts
index c214e0a9c9..7ace3ff3ff 100644
--- a/web/i18n/fr-FR/app-api.ts
+++ b/web/i18n/fr-FR/app-api.ts
@@ -77,6 +77,7 @@ const translation = {
pathParams: 'Params de chemin',
query: 'Requête',
},
+ loading: 'Chargement',
}
export default translation
diff --git a/web/i18n/fr-FR/app-overview.ts b/web/i18n/fr-FR/app-overview.ts
index 5e633a2150..26d538e903 100644
--- a/web/i18n/fr-FR/app-overview.ts
+++ b/web/i18n/fr-FR/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Étapes du workflow',
show: 'Afficher',
hide: 'Masquer',
+ showDesc: 'Afficher ou masquer les détails du flux de travail dans WebApp',
+ subTitle: 'Détails du flux de travail',
},
chatColorTheme: 'Thème de couleur du chatbot',
chatColorThemeDesc: 'Définir le thème de couleur du chatbot',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'Entrez le texte de la clause de non-responsabilité personnalisée',
customDisclaimerTip: 'Le texte de la clause de non-responsabilité personnalisée sera affiché côté client, fournissant des informations supplémentaires sur l\'application',
},
+ sso: {
+ label: 'Authentification SSO',
+ title: 'WebApp SSO',
+ tooltip: 'Contactez l’administrateur pour activer l’authentification unique WebApp',
+ description: 'Tous les utilisateurs doivent se connecter avec l’authentification unique avant d’utiliser WebApp',
+ },
},
embedded: {
entry: 'Intégré',
diff --git a/web/i18n/fr-FR/app.ts b/web/i18n/fr-FR/app.ts
index fab9b98f99..55966f6966 100644
--- a/web/i18n/fr-FR/app.ts
+++ b/web/i18n/fr-FR/app.ts
@@ -122,7 +122,17 @@ const translation = {
removeConfirmTitle: 'Supprimer la configuration de {{key}} ?',
removeConfirmContent: 'La configuration actuelle est en cours d\'utilisation, sa suppression désactivera la fonction de Traçage.',
},
+ view: 'Vue',
},
+ answerIcon: {
+ description: 'S’il faut utiliser l’icône WebApp pour remplacer 🤖 dans l’application partagée',
+ title: 'Utiliser l’icône WebApp pour remplacer 🤖',
+ descriptionInExplore: 'Utilisation de l’icône WebApp pour remplacer 🤖 dans Explore',
+ },
+ importFromDSLUrlPlaceholder: 'Collez le lien DSL ici',
+ importFromDSL: 'Importation à partir d’une DSL',
+ importFromDSLUrl: 'À partir de l’URL',
+ importFromDSLFile: 'À partir d’un fichier DSL',
}
export default translation
diff --git a/web/i18n/fr-FR/billing.ts b/web/i18n/fr-FR/billing.ts
index 09c8ca43a8..2bcdfd5b23 100644
--- a/web/i18n/fr-FR/billing.ts
+++ b/web/i18n/fr-FR/billing.ts
@@ -60,6 +60,8 @@ const translation = {
bulkUpload: 'Téléchargement en masse de documents',
agentMode: 'Mode Agent',
workflow: 'Flux de travail',
+ llmLoadingBalancingTooltip: 'Ajoutez plusieurs clés API aux modèles, en contournant efficacement les limites de débit de l’API.',
+ llmLoadingBalancing: 'Équilibrage de charge LLM',
},
comingSoon: 'Bientôt disponible',
member: 'Membre',
@@ -74,6 +76,7 @@ const translation = {
},
ragAPIRequestTooltip: 'Fait référence au nombre d\'appels API invoquant uniquement les capacités de traitement de la base de connaissances de Dify.',
receiptInfo: 'Seuls le propriétaire de l\'équipe et l\'administrateur de l\'équipe peuvent s\'abonner et consulter les informations de facturation',
+ annotationQuota: 'Quota d’annotation',
},
plans: {
sandbox: {
diff --git a/web/i18n/fr-FR/common.ts b/web/i18n/fr-FR/common.ts
index f0699eca7a..2cd517fd59 100644
--- a/web/i18n/fr-FR/common.ts
+++ b/web/i18n/fr-FR/common.ts
@@ -201,6 +201,11 @@ const translation = {
disinvite: 'Annuler l\'invitation',
deleteMember: 'Supprimer Membre',
you: '(Vous)',
+ builder: 'Constructeur',
+ datasetOperatorTip: 'Seul peut gérer la base de connaissances',
+ datasetOperator: 'Administrateur des connaissances',
+ setBuilder: 'Définir en tant que constructeur',
+ builderTip: 'Peut créer et modifier ses propres applications',
},
integrations: {
connected: 'Connecté',
@@ -347,6 +352,22 @@ const translation = {
quotaTip: 'Tokens gratuits restants disponibles',
loadPresets: 'Charger les Présents',
parameters: 'PARAMÈTRES',
+ modelHasBeenDeprecated: 'Ce modèle est obsolète',
+ providerManagedDescription: 'Utilisez l’ensemble unique d’informations d’identification fourni par le fournisseur de modèle.',
+ loadBalancingHeadline: 'Équilibrage',
+ loadBalancing: 'Équilibrage',
+ loadBalancingLeastKeyWarning: 'Pour activer l’équilibrage de charge, au moins 2 clés doivent être activées.',
+ apiKey: 'API-KEY',
+ apiKeyStatusNormal: 'L’état de l’APIKey est normal',
+ configLoadBalancing: 'Équilibrage de charge de configuration',
+ loadBalancingInfo: 'Par défaut, l’équilibrage de charge utilise la stratégie Round-robin. Si la limitation de vitesse est déclenchée, une période de recharge de 1 minute sera appliquée.',
+ editConfig: 'Modifier la configuration',
+ addConfig: 'Ajouter une configuration',
+ apiKeyRateLimit: 'La limite de débit a été atteinte, disponible après {{secondes}}s',
+ defaultConfig: 'Configuration par défaut',
+ loadBalancingDescription: 'Réduisez la pression grâce à plusieurs ensembles d’informations d’identification.',
+ providerManaged: 'Géré par le fournisseur',
+ upgradeForLoadBalancing: 'Mettez à niveau votre plan pour activer l’équilibrage de charge.',
},
dataSource: {
add: 'Ajouter une source de données',
@@ -370,6 +391,15 @@ const translation = {
preview: 'APERÇU',
},
},
+ website: {
+ configuredCrawlers: 'Robots d’exploration configurés',
+ with: 'Avec',
+ inactive: 'Inactif',
+ active: 'Actif',
+ title: 'Site internet',
+ description: 'Importez du contenu à partir de sites Web à l’aide du robot d’indexation.',
+ },
+ configure: 'Configurer',
},
plugin: {
serpapi: {
@@ -538,6 +568,10 @@ const translation = {
created: 'Tag créé avec succès',
failed: 'La création de la balise a échoué',
},
+ errorMsg: {
+ fieldRequired: '{{field}} est obligatoire',
+ urlError: 'L’URL doit commencer par http:// ou https://',
+ },
}
export default translation
diff --git a/web/i18n/fr-FR/dataset-creation.ts b/web/i18n/fr-FR/dataset-creation.ts
index da3ac8d476..11052c8e64 100644
--- a/web/i18n/fr-FR/dataset-creation.ts
+++ b/web/i18n/fr-FR/dataset-creation.ts
@@ -50,6 +50,30 @@ const translation = {
confirmButton: 'Créer',
failed: 'Création échouée',
},
+ website: {
+ limit: 'Limite',
+ fireCrawlNotConfiguredDescription: 'Configurez Firecrawl avec la clé API pour l’utiliser.',
+ selectAll: 'Tout sélectionner',
+ unknownError: 'Erreur inconnue',
+ firecrawlDoc: 'Docs Firecrawl',
+ totalPageScraped: 'Nombre total de pages extraites :',
+ preview: 'Aperçu',
+ crawlSubPage: 'Explorer les sous-pages',
+ configure: 'Configurer',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ maxDepth: 'Profondeur maximale',
+ fireCrawlNotConfigured: 'Firecrawl n’est pas configuré',
+ firecrawlTitle: 'Extraire du contenu web avec 🔥Firecrawl',
+ scrapTimeInfo: 'Pages récupérées au total dans un délai de {{time}}s',
+ options: 'Options',
+ exceptionErrorTitle: 'Une exception s’est produite lors de l’exécution de la tâche Firecrawl :',
+ includeOnlyPaths: 'Inclure uniquement les chemins d’accès',
+ resetAll: 'Tout réinitialiser',
+ run: 'Courir',
+ extractOnlyMainContent: 'Extraire uniquement le contenu principal (pas d’en-têtes, de navigations, de pieds de page, etc.)',
+ excludePaths: 'Exclure les chemins d’accès',
+ maxDepthTooltip: 'Profondeur maximale à explorer par rapport à l’URL saisie. La profondeur 0 gratte simplement la page de l’URL saisie, la profondeur 1 récupère l’URL et tout ce qui suit l’URL saisie + un /, et ainsi de suite.',
+ },
},
stepTwo: {
segmentation: 'Paramètres de bloc',
@@ -107,6 +131,8 @@ const translation = {
indexSettedTip: 'Pour changer la méthode d\'index, veuillez aller à la',
retrivalSettedTip: 'Pour changer la méthode d\'index, veuillez aller à la',
datasetSettingLink: 'Paramètres de connaissance.',
+ webpageUnit: 'Pages',
+ websiteSource: 'Site web de prétraitement',
},
stepThree: {
creationTitle: '🎉 Connaissance créée',
@@ -125,6 +151,11 @@ const translation = {
modelButtonConfirm: 'Confirmer',
modelButtonCancel: 'Annuler',
},
+ firecrawl: {
+ apiKeyPlaceholder: 'Clé API de firecrawl.dev',
+ configFirecrawl: 'Configurer 🔥Firecrawl',
+ getApiKeyLinkText: 'Obtenez votre clé API auprès de firecrawl.dev',
+ },
}
export default translation
diff --git a/web/i18n/fr-FR/dataset-documents.ts b/web/i18n/fr-FR/dataset-documents.ts
index c6b0fca1df..1aad7870a8 100644
--- a/web/i18n/fr-FR/dataset-documents.ts
+++ b/web/i18n/fr-FR/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: 'STATUT',
action: 'ACTION',
},
+ rename: 'Renommer',
+ name: 'Nom',
},
action: {
uploadFile: 'Télécharger un nouveau fichier',
@@ -74,6 +76,7 @@ const translation = {
error: 'Erreur d\'Importation',
ok: 'D\'accord',
},
+ addUrl: 'Ajouter une URL',
},
metadata: {
title: 'Métadonnées',
diff --git a/web/i18n/fr-FR/dataset-settings.ts b/web/i18n/fr-FR/dataset-settings.ts
index 84d1692dff..9b1f44f54f 100644
--- a/web/i18n/fr-FR/dataset-settings.ts
+++ b/web/i18n/fr-FR/dataset-settings.ts
@@ -27,6 +27,8 @@ const translation = {
longDescription: 'À propos de la méthode de récupération, vous pouvez la modifier à tout moment dans les paramètres de Connaissance.',
},
save: 'Enregistrer',
+ me: '(Vous)',
+ permissionsInvitedMembers: 'Membres partiels de l’équipe',
},
}
diff --git a/web/i18n/fr-FR/login.ts b/web/i18n/fr-FR/login.ts
index c905320b22..94328bb3ae 100644
--- a/web/i18n/fr-FR/login.ts
+++ b/web/i18n/fr-FR/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: 'Le nom est requis',
passwordEmpty: 'Un mot de passe est requis',
passwordInvalid: 'Le mot de passe doit contenir des lettres et des chiffres, et la longueur doit être supérieure à 8.',
+ passwordLengthInValid: 'Le mot de passe doit comporter au moins 8 caractères.',
},
license: {
tip: 'Avant de commencer Dify Community Edition, lisez le GitHub',
@@ -68,6 +69,7 @@ const translation = {
activated: 'Connectez-vous maintenant',
adminInitPassword: 'Mot de passe d\'initialisation de l\'administrateur',
validate: 'Valider',
+ sso: 'Poursuivre avec l’authentification unique',
}
export default translation
diff --git a/web/i18n/fr-FR/tools.ts b/web/i18n/fr-FR/tools.ts
index 5e2c770fea..34c71e7764 100644
--- a/web/i18n/fr-FR/tools.ts
+++ b/web/i18n/fr-FR/tools.ts
@@ -5,6 +5,7 @@ const translation = {
all: 'Tout',
builtIn: 'Intégré',
custom: 'Personnalisé',
+ workflow: 'Flux de travail',
},
contribute: {
line1: 'Je suis intéressé par',
@@ -75,6 +76,27 @@ const translation = {
customDisclaimerPlaceholder: 'Entrez le texte de la clause de non-responsabilité personnalisée',
deleteToolConfirmTitle: 'Supprimer cet outil ?',
deleteToolConfirmContent: 'La suppression de l\'outil est irréversible. Les utilisateurs ne pourront plus accéder à votre outil.',
+ toolInput: {
+ required: 'Obligatoire',
+ name: 'Nom',
+ label: 'Étiquettes',
+ title: 'Entrée d’outil',
+ methodSetting: 'Réglage',
+ labelPlaceholder: 'Choisir des balises(facultatif)',
+ descriptionPlaceholder: 'Description de la signification du paramètre',
+ method: 'Méthode',
+ methodParameter: 'Paramètre',
+ methodSettingTip: 'L’utilisateur renseigne la configuration de l’outil',
+ methodParameterTip: 'Remplissages LLM pendant l’inférence',
+ description: 'Description',
+ },
+ nameForToolCallTip: 'Ne prend en charge que les chiffres, les lettres et les traits de soulignement.',
+ confirmTitle: 'Confirmer pour enregistrer ?',
+ nameForToolCall: 'Nom de l’appel de l’outil',
+ confirmTip: 'Les applications utilisant cet outil seront affectées',
+ description: 'Description',
+ nameForToolCallPlaceHolder: 'Utilisé pour la reconnaissance automatique, tels que getCurrentWeather, list_pets',
+ descriptionPlaceholder: 'Brève description de l’objectif de l’outil, par exemple, obtenir la température d’un endroit spécifique.',
},
test: {
title: 'Test',
@@ -114,6 +136,18 @@ const translation = {
toolRemoved: 'Outil supprimé',
notAuthorized: 'Outil non autorisé',
howToGet: 'Comment obtenir',
+ addToolModal: {
+ type: 'type',
+ emptyTitle: 'Aucun outil de flux de travail disponible',
+ added: 'supplémentaire',
+ add: 'ajouter',
+ category: 'catégorie',
+ manageInTools: 'Gérer dans Outils',
+ emptyTip: 'Allez dans « Flux de travail -> Publier en tant qu’outil »',
+ },
+ openInStudio: 'Ouvrir dans Studio',
+ customToolTip: 'En savoir plus sur les outils personnalisés Dify',
+ toolNameUsageTip: 'Nom de l’appel de l’outil pour le raisonnement et l’invite de l’agent',
}
export default translation
diff --git a/web/i18n/fr-FR/workflow.ts b/web/i18n/fr-FR/workflow.ts
index d3518d5742..46f80591d6 100644
--- a/web/i18n/fr-FR/workflow.ts
+++ b/web/i18n/fr-FR/workflow.ts
@@ -186,6 +186,7 @@ const translation = {
'transform': 'Transformer',
'utilities': 'Utilitaires',
'noResult': 'Aucun résultat trouvé',
+ 'searchTool': 'Outil de recherche',
},
blocks: {
'start': 'Début',
@@ -415,6 +416,7 @@ const translation = {
enterValue: 'Entrez la valeur',
addCondition: 'Ajouter une condition',
conditionNotSetup: 'Condition NON configurée',
+ selectVariable: 'Sélectionner une variable...',
},
variableAssigner: {
title: 'Attribuer des variables',
diff --git a/web/i18n/hi-IN/app-log.ts b/web/i18n/hi-IN/app-log.ts
index 7ed8718668..668ae12d65 100644
--- a/web/i18n/hi-IN/app-log.ts
+++ b/web/i18n/hi-IN/app-log.ts
@@ -93,6 +93,10 @@ const translation = {
promptTemplate: 'प्रॉम्प्ट टेम्पलेट',
promptInput: 'प्रॉम्प्ट इनपुट',
response: 'प्रतिक्रिया',
+ iterations: 'पुनरूक्तियाँ',
+ toolUsed: 'प्रयुक्त उपकरण',
+ finalProcessing: 'अंतिम प्रसंस्करण',
+ iteration: 'चलना',
},
}
diff --git a/web/i18n/hi-IN/app-overview.ts b/web/i18n/hi-IN/app-overview.ts
index d65920c268..b930fd413a 100644
--- a/web/i18n/hi-IN/app-overview.ts
+++ b/web/i18n/hi-IN/app-overview.ts
@@ -52,6 +52,8 @@ const translation = {
title: 'वर्कफ़्लो स्टेप्स',
show: 'दिखाएं',
hide: 'छुपाएं',
+ subTitle: 'कार्यप्रवाह विवरण',
+ showDesc: 'WebApp में वर्कफ़्लो विवरण दिखाएँ या छुपाएँ',
},
chatColorTheme: 'चैटबॉट का रंग थीम',
chatColorThemeDesc: 'चैटबॉट का रंग थीम निर्धारित करें',
@@ -70,6 +72,12 @@ const translation = {
customDisclaimerTip:
'कस्टम अस्वीकरण टेक्स्ट क्लाइंट साइड पर प्रदर्शित होगा, जो एप्लिकेशन के बारे में अतिरिक्त जानकारी प्रदान करेगा',
},
+ sso: {
+ title: 'वेबएप एसएसओ',
+ label: 'SSO प्रमाणीकरण',
+ description: 'WebApp का उपयोग करने से पहले सभी उपयोगकर्ताओं को SSO के साथ लॉगिन करना आवश्यक है',
+ tooltip: 'WebApp SSO को सक्षम करने के लिए व्यवस्थापक से संपर्क करें',
+ },
},
embedded: {
entry: 'एम्बेडेड',
diff --git a/web/i18n/hi-IN/app.ts b/web/i18n/hi-IN/app.ts
index 3f22b6701b..06c342cf61 100644
--- a/web/i18n/hi-IN/app.ts
+++ b/web/i18n/hi-IN/app.ts
@@ -122,7 +122,17 @@ const translation = {
removeConfirmTitle: '{{key}} कॉन्फ़िगरेशन हटाएं?',
removeConfirmContent: 'वर्तमान कॉन्फ़िगरेशन उपयोग में है, इसे हटाने से ट्रेसिंग सुविधा बंद हो जाएगी।',
},
+ view: 'देखना',
},
+ answerIcon: {
+ title: 'बदलने 🤖 के लिए WebApp चिह्न का उपयोग करें',
+ descriptionInExplore: 'एक्सप्लोर में बदलने 🤖 के लिए वेबऐप आइकन का उपयोग करना है या नहीं',
+ description: 'साझा अनुप्रयोग में प्रतिस्थापित 🤖 करने के लिए WebApp चिह्न का उपयोग करना है या नहीं',
+ },
+ importFromDSLFile: 'डीएसएल फ़ाइल से',
+ importFromDSLUrl: 'यूआरएल से',
+ importFromDSL: 'DSL से आयात करें',
+ importFromDSLUrlPlaceholder: 'डीएसएल लिंक यहां पेस्ट करें',
}
export default translation
diff --git a/web/i18n/hi-IN/common.ts b/web/i18n/hi-IN/common.ts
index 3316397cb6..8e9a2e619b 100644
--- a/web/i18n/hi-IN/common.ts
+++ b/web/i18n/hi-IN/common.ts
@@ -173,6 +173,9 @@ const translation = {
langGeniusAccountTip: 'आपका Dify खाता और संबंधित उपयोगकर्ता डेटा।',
editName: 'नाम संपादित करें',
showAppLength: '{{length}} ऐप्स दिखाएं',
+ deleteConfirmTip: 'पुष्टि करने के लिए, कृपया अपने पंजीकृत ईमेल से निम्नलिखित भेजें',
+ delete: 'खाता हटाएं',
+ deleteTip: 'अपना खाता हटाने से आपका सारा डेटा स्थायी रूप से मिट जाएगा और इसे पुनर्प्राप्त नहीं किया जा सकता है।',
},
members: {
team: 'टीम',
@@ -214,6 +217,8 @@ const translation = {
disinvite: 'आमंत्रण रद्द करें',
deleteMember: 'सदस्य को हटाएं',
you: '(आप)',
+ datasetOperator: 'ज्ञान व्यवस्थापक',
+ datasetOperatorTip: 'केवल नॉलेज बेस प्रबंधित कर सकते हैं',
},
integrations: {
connected: 'कनेक्टेड',
diff --git a/web/i18n/hi-IN/dataset-settings.ts b/web/i18n/hi-IN/dataset-settings.ts
index cd798e4fab..129643dd85 100644
--- a/web/i18n/hi-IN/dataset-settings.ts
+++ b/web/i18n/hi-IN/dataset-settings.ts
@@ -32,6 +32,8 @@ const translation = {
'प्राप्ति पद्धति के बारे में, आप इसे किसी भी समय ज्ञान सेटिंग्ज में बदल सकते हैं।',
},
save: 'सेवना',
+ me: '(आप)',
+ permissionsInvitedMembers: 'आंशिक टीम के सदस्य',
},
}
diff --git a/web/i18n/hi-IN/share-app.ts b/web/i18n/hi-IN/share-app.ts
index a3884be706..82c17f009d 100644
--- a/web/i18n/hi-IN/share-app.ts
+++ b/web/i18n/hi-IN/share-app.ts
@@ -3,6 +3,7 @@ const translation = {
welcome: 'आपका स्वागत है',
appUnavailable: 'ऐप उपलब्ध नहीं है',
appUnknownError: 'अज्ञात त्रुटि, कृपया पुनः प्रयास करें',
+ appUnkonwError: 'ऐप अनुपलब्ध है',
},
chat: {
newChat: 'नया चैट',
diff --git a/web/i18n/hi-IN/tools.ts b/web/i18n/hi-IN/tools.ts
index ea8e915ea3..6b0cccebad 100644
--- a/web/i18n/hi-IN/tools.ts
+++ b/web/i18n/hi-IN/tools.ts
@@ -103,6 +103,7 @@ const translation = {
label: 'टैग',
labelPlaceholder: 'टैग चुनें(वैकल्पिक)',
description: 'पैरामीटर के अर्थ का विवरण',
+ descriptionPlaceholder: 'पैरामीटर के अर्थ का विवरण',
},
customDisclaimer: 'कस्टम अस्वीकरण',
customDisclaimerPlaceholder: 'कस्टम अस्वीकरण दर्ज करें',
diff --git a/web/i18n/hi-IN/workflow.ts b/web/i18n/hi-IN/workflow.ts
index 8891fa8bc1..95b77956b4 100644
--- a/web/i18n/hi-IN/workflow.ts
+++ b/web/i18n/hi-IN/workflow.ts
@@ -73,6 +73,13 @@ const translation = {
'कार्यप्रवाह अपडेट के बाद टूल पुनः कॉन्फ़िगरेशन आवश्यक है।',
viewDetailInTracingPanel: 'विवरण देखें',
syncingData: 'डेटा सिंक हो रहा है, बस कुछ सेकंड।',
+ overwriteAndImport: 'अधिलेखित और आयात',
+ importSuccess: 'सफलता आयात करें',
+ chooseDSL: 'डीएसएल (वाईएमएल) फ़ाइल चुनें',
+ importDSL: 'DSL आयात करें',
+ backupCurrentDraft: 'बैकअप वर्तमान ड्राफ्ट',
+ importFailure: 'आयात विफलता',
+ importDSLTip: 'वर्तमान ड्राफ्ट ओवरराइट हो जाएगा। आयात करने से पहले वर्कफ़्लो को बैकअप के रूप में निर्यात करें.',
},
env: {
envPanelTitle: 'पर्यावरण चर',
@@ -182,6 +189,7 @@ const translation = {
'transform': 'परिवर्तन',
'utilities': 'उपयोगिताएं',
'noResult': 'कोई मिलान नहीं मिला',
+ 'searchTool': 'खोज उपकरण',
},
blocks: {
'start': 'प्रारंभ',
@@ -423,6 +431,7 @@ const translation = {
enterValue: 'मान दर्ज करें',
addCondition: 'शर्त जोड़ें',
conditionNotSetup: 'शर्त सेटअप नहीं है',
+ selectVariable: 'चर का चयन करें...',
},
variableAssigner: {
title: 'वेरिएबल्स असाइन करें',
diff --git a/web/i18n/it-IT/app-overview.ts b/web/i18n/it-IT/app-overview.ts
index e7ab5f4080..cd545df6c6 100644
--- a/web/i18n/it-IT/app-overview.ts
+++ b/web/i18n/it-IT/app-overview.ts
@@ -52,6 +52,8 @@ const translation = {
title: 'Fasi del Workflow',
show: 'Mostra',
hide: 'Nascondi',
+ subTitle: 'Dettagli del flusso di lavoro',
+ showDesc: 'Mostrare o nascondere i dettagli del flusso di lavoro in WebApp',
},
chatColorTheme: 'Tema colore chat',
chatColorThemeDesc: 'Imposta il tema colore del chatbot',
@@ -72,6 +74,12 @@ const translation = {
customDisclaimerTip:
'Il testo del disclaimer personalizzato verrà visualizzato sul lato client, fornendo informazioni aggiuntive sull\'applicazione',
},
+ sso: {
+ label: 'Autenticazione SSO',
+ title: 'WebApp SSO',
+ description: 'Tutti gli utenti devono effettuare l\'accesso con SSO prima di utilizzare WebApp',
+ tooltip: 'Contattare l\'amministratore per abilitare l\'SSO di WebApp',
+ },
},
embedded: {
entry: 'Incorporato',
diff --git a/web/i18n/it-IT/app.ts b/web/i18n/it-IT/app.ts
index 265cb58ec4..f28b000b58 100644
--- a/web/i18n/it-IT/app.ts
+++ b/web/i18n/it-IT/app.ts
@@ -134,7 +134,17 @@ const translation = {
removeConfirmContent:
'La configurazione attuale è in uso, rimuovendola disattiverà la funzione di Tracciamento.',
},
+ view: 'Vista',
},
+ answerIcon: {
+ description: 'Se utilizzare l\'icona WebApp per la sostituzione 🤖 nell\'applicazione condivisa',
+ title: 'Usa l\'icona WebApp per sostituire 🤖',
+ descriptionInExplore: 'Se utilizzare l\'icona WebApp per sostituirla 🤖 in Esplora',
+ },
+ importFromDSLUrl: 'Dall\'URL',
+ importFromDSLFile: 'Da file DSL',
+ importFromDSL: 'Importazione da DSL',
+ importFromDSLUrlPlaceholder: 'Incolla qui il link DSL',
}
export default translation
diff --git a/web/i18n/it-IT/workflow.ts b/web/i18n/it-IT/workflow.ts
index 5936679e13..dbaf2d1280 100644
--- a/web/i18n/it-IT/workflow.ts
+++ b/web/i18n/it-IT/workflow.ts
@@ -191,6 +191,7 @@ const translation = {
'transform': 'Trasforma',
'utilities': 'Utility',
'noResult': 'Nessuna corrispondenza trovata',
+ 'searchTool': 'Strumento di ricerca',
},
blocks: {
'start': 'Inizio',
diff --git a/web/i18n/ja-JP/app-overview.ts b/web/i18n/ja-JP/app-overview.ts
index 720549f578..1fcd9d21c4 100644
--- a/web/i18n/ja-JP/app-overview.ts
+++ b/web/i18n/ja-JP/app-overview.ts
@@ -30,24 +30,26 @@ const translation = {
overview: {
title: '概要',
appInfo: {
- explanation: '使いやすいAI WebApp',
+ explanation: '使いやすいAI Webアプリ',
accessibleAddress: '公開URL',
preview: 'プレビュー',
regenerate: '再生成',
regenerateNotice: '公開URLを再生成しますか?',
- preUseReminder: '続行する前にWebAppを有効にしてください。',
+ preUseReminder: '続行する前にWebアプリを有効にしてください。',
settings: {
entry: '設定',
- title: 'WebApp設定',
- webName: 'WebApp名',
- webDesc: 'WebAppの説明',
+ title: 'Webアプリの設定',
+ webName: 'Webアプリの名前',
+ webDesc: 'Webアプリの説明',
webDescTip: 'このテキストはクライアント側に表示され、アプリケーションの使用方法の基本的なガイダンスを提供します。',
- webDescPlaceholder: 'WebAppの説明を入力してください',
+ webDescPlaceholder: 'Webアプリの説明を入力してください',
language: '言語',
workflow: {
title: 'ワークフローステップ',
show: '表示',
hide: '非表示',
+ subTitle: 'ワークフローの詳細',
+ showDesc: 'Webアプリでワークフローの詳細を表示または非表示にする',
},
chatColorTheme: 'チャットボットのカラーテーマ',
chatColorThemeDesc: 'チャットボットのカラーテーマを設定します',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: '免責事項を入力してください',
customDisclaimerTip: 'アプリケーションの使用に関する免責事項を提供します。',
},
+ sso: {
+ title: 'WebアプリのSSO',
+ tooltip: '管理者に問い合わせて、WebアプリのSSOを有効にします',
+ label: 'SSO認証',
+ description: 'すべてのユーザーは、Webアプリを使用する前にSSOでログインする必要があります',
+ },
},
embedded: {
entry: '埋め込み',
@@ -83,8 +91,8 @@ const translation = {
customize: {
way: '方法',
entry: 'カスタマイズ',
- title: 'AI WebAppのカスタマイズ',
- explanation: 'シナリオとスタイルのニーズに合わせてWeb Appのフロントエンドをカスタマイズできます。',
+ title: 'AI Webアプリのカスタマイズ',
+ explanation: 'シナリオとスタイルのニーズに合わせてWebアプリのフロントエンドをカスタマイズできます。',
way1: {
name: 'クライアントコードをフォークして修正し、Vercelにデプロイします(推奨)',
step1: 'クライアントコードをフォークして修正します',
diff --git a/web/i18n/ja-JP/app.ts b/web/i18n/ja-JP/app.ts
index 55f641f4c3..76c7d1c4f4 100644
--- a/web/i18n/ja-JP/app.ts
+++ b/web/i18n/ja-JP/app.ts
@@ -127,6 +127,12 @@ const translation = {
removeConfirmTitle: '{{key}}の設定を削除しますか?',
removeConfirmContent: '現在の設定は使用中です。これを削除すると、トレース機能が無効になります。',
},
+ view: '見る',
+ },
+ answerIcon: {
+ title: 'Webアプリアイコンを使用して🤖を置き換える',
+ description: '共有アプリケーションの中で Webアプリアイコンを使用して🤖を置き換えるかどうか',
+ descriptionInExplore: 'ExploreでWebアプリアイコンを使用して🤖を置き換えるかどうか',
},
}
diff --git a/web/i18n/ja-JP/dataset.ts b/web/i18n/ja-JP/dataset.ts
index 5b5bd761e8..d86dec0691 100644
--- a/web/i18n/ja-JP/dataset.ts
+++ b/web/i18n/ja-JP/dataset.ts
@@ -53,6 +53,7 @@ const translation = {
semantic_search: 'ベクトル検索',
full_text_search: 'フルテキスト検索',
hybrid_search: 'ハイブリッド検索',
+ invertedIndex: '逆さま',
},
mixtureHighQualityAndEconomicTip: '高品質なナレッジベースと経済的なナレッジベースを混在させるには、Rerankモデルを構成する必要がある。',
inconsistentEmbeddingModelTip: '選択されたナレッジベースが一貫性のない埋め込みモデルで構成されている場合、Rerankモデルの構成が必要です。',
diff --git a/web/i18n/ja-JP/workflow.ts b/web/i18n/ja-JP/workflow.ts
index 8f506bcb46..57d008c28d 100644
--- a/web/i18n/ja-JP/workflow.ts
+++ b/web/i18n/ja-JP/workflow.ts
@@ -416,6 +416,7 @@ const translation = {
enterValue: '値を入力',
addCondition: '条件を追加',
conditionNotSetup: '条件が設定されていません',
+ selectVariable: '変数を選択...',
},
variableAssigner: {
title: '変数を代入する',
diff --git a/web/i18n/ko-KR/app-overview.ts b/web/i18n/ko-KR/app-overview.ts
index 8e6c30968e..b06e84587b 100644
--- a/web/i18n/ko-KR/app-overview.ts
+++ b/web/i18n/ko-KR/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: '워크플로 단계',
show: '표시',
hide: '숨기기',
+ showDesc: 'WebApp에서 워크플로 세부 정보 표시 또는 숨기기',
+ subTitle: '워크플로우 세부 정보',
},
chatColorTheme: '챗봇 색상 테마',
chatColorThemeDesc: '챗봇의 색상 테마를 설정하세요',
@@ -60,6 +62,15 @@ const translation = {
privacyPolicy: '개인정보 처리방침',
privacyPolicyPlaceholder: '개인정보 처리방침 링크를 입력하세요',
privacyPolicyTip: '방문자가 애플리케이션이 수집하는 데이터를 이해하고, Dify의 개인정보 처리방침을 참조할 수 있도록 합니다.',
+ customDisclaimer: '사용자 지정 면책 조항',
+ customDisclaimerPlaceholder: '사용자 지정 면책 조항 텍스트를 입력합니다.',
+ customDisclaimerTip: '사용자 지정 고지 사항 텍스트는 클라이언트 쪽에 표시되어 응용 프로그램에 대한 추가 정보를 제공합니다',
+ },
+ sso: {
+ label: 'SSO 인증',
+ title: '웹앱 SSO',
+ tooltip: '관리자에게 문의하여 WebApp SSO를 사용하도록 설정합니다.',
+ description: '모든 사용자는 WebApp을 사용하기 전에 SSO로 로그인해야 합니다.',
},
},
embedded: {
diff --git a/web/i18n/ko-KR/app.ts b/web/i18n/ko-KR/app.ts
index a1fde30e4d..3f3abd3325 100644
--- a/web/i18n/ko-KR/app.ts
+++ b/web/i18n/ko-KR/app.ts
@@ -118,7 +118,17 @@ const translation = {
removeConfirmTitle: '{{key}} 구성을 제거하시겠습니까?',
removeConfirmContent: '현재 구성이 사용 중입니다. 제거하면 추적 기능이 꺼집니다.',
},
+ view: '보기',
},
+ answerIcon: {
+ description: 'WebApp 아이콘을 사용하여 공유 응용 프로그램에서 바꿀🤖지 여부',
+ title: 'WebApp 아이콘을 사용하여 🤖',
+ descriptionInExplore: 'Explore에서 WebApp 아이콘을 사용하여 바꿀🤖지 여부',
+ },
+ importFromDSL: 'DSL에서 가져오기',
+ importFromDSLFile: 'DSL 파일에서',
+ importFromDSLUrl: 'URL에서',
+ importFromDSLUrlPlaceholder: '여기에 DSL 링크 붙여 넣기',
}
export default translation
diff --git a/web/i18n/ko-KR/billing.ts b/web/i18n/ko-KR/billing.ts
index ca6a361e06..94d557fd4b 100644
--- a/web/i18n/ko-KR/billing.ts
+++ b/web/i18n/ko-KR/billing.ts
@@ -58,6 +58,9 @@ const translation = {
ragAPIRequest: 'RAG API 요청',
agentMode: '에이전트 모드',
workflow: '워크플로우',
+ llmLoadingBalancing: 'LLM 로드 밸런싱',
+ bulkUpload: '문서 대량 업로드',
+ llmLoadingBalancingTooltip: '모델에 여러 API 키를 추가하여 API 속도 제한을 효과적으로 우회할 수 있습니다.',
},
comingSoon: '곧 출시 예정',
member: '멤버',
@@ -72,6 +75,8 @@ const translation = {
},
ragAPIRequestTooltip: 'Dify의 지식베이스 처리 기능을 호출하는 API 호출 수를 나타냅니다.',
receiptInfo: '팀 소유자 및 팀 관리자만 구독 및 청구 정보를 볼 수 있습니다',
+ annotationQuota: 'Annotation Quota(주석 할당량)',
+ documentsUploadQuota: '문서 업로드 할당량',
},
plans: {
sandbox: {
diff --git a/web/i18n/ko-KR/common.ts b/web/i18n/ko-KR/common.ts
index a4e77abb81..383a26210f 100644
--- a/web/i18n/ko-KR/common.ts
+++ b/web/i18n/ko-KR/common.ts
@@ -197,6 +197,11 @@ const translation = {
disinvite: '초대 취소',
deleteMember: '멤버 삭제',
you: '(나)',
+ datasetOperator: '지식 관리자',
+ setBuilder: '빌더로 설정',
+ builder: '건설자',
+ builderTip: '자신의 앱을 구축 및 편집할 수 있습니다.',
+ datasetOperatorTip: '기술 자료만 관리할 수 있습니다.',
},
integrations: {
connected: '연결됨',
@@ -343,6 +348,22 @@ const translation = {
quotaTip: '남은 무료 토큰 사용 가능',
loadPresets: '프리셋 로드',
parameters: '매개변수',
+ apiKey: 'API 키',
+ defaultConfig: '기본 구성',
+ providerManaged: '제공자 관리',
+ loadBalancing: '부하 분산Load balancing',
+ addConfig: '구성 추가',
+ apiKeyStatusNormal: 'APIKey 상태는 정상입니다.',
+ configLoadBalancing: 'Config 로드 밸런싱',
+ editConfig: '구성 편집',
+ loadBalancingHeadline: '로드 밸런싱',
+ modelHasBeenDeprecated: '이 모델은 더 이상 사용되지 않습니다',
+ loadBalancingDescription: '여러 자격 증명 세트로 부담을 줄입니다.',
+ upgradeForLoadBalancing: '로드 밸런싱을 사용하도록 계획을 업그레이드합니다.',
+ apiKeyRateLimit: '속도 제한에 도달했으며, {{seconds}}s 후에 사용할 수 있습니다.',
+ loadBalancingInfo: '기본적으로 부하 분산은 라운드 로빈 전략을 사용합니다. 속도 제한이 트리거되면 1분의 휴지 기간이 적용됩니다.',
+ loadBalancingLeastKeyWarning: '로드 밸런싱을 사용하려면 최소 2개의 키를 사용하도록 설정해야 합니다.',
+ providerManagedDescription: '모델 공급자가 제공하는 단일 자격 증명 집합을 사용합니다.',
},
dataSource: {
add: '데이터 소스 추가하기',
@@ -366,6 +387,15 @@ const translation = {
preview: '미리보기',
},
},
+ website: {
+ inactive: '게으른',
+ title: '웹 사이트',
+ configuredCrawlers: '구성된 크롤러',
+ with: '와',
+ active: '활동적인',
+ description: '웹 크롤러를 사용하여 웹 사이트에서 콘텐츠를 가져옵니다.',
+ },
+ configure: '구성',
},
plugin: {
serpapi: {
@@ -534,6 +564,10 @@ const translation = {
created: '태그가 성공적으로 생성되었습니다',
failed: '태그 생성에 실패했습니다',
},
+ errorMsg: {
+ urlError: 'URL은 http:// 또는 https:// 로 시작해야 합니다.',
+ fieldRequired: '{{field}}는 필수입니다.',
+ },
}
export default translation
diff --git a/web/i18n/ko-KR/dataset-creation.ts b/web/i18n/ko-KR/dataset-creation.ts
index 3039f69d6d..5ca5ae41da 100644
--- a/web/i18n/ko-KR/dataset-creation.ts
+++ b/web/i18n/ko-KR/dataset-creation.ts
@@ -50,6 +50,30 @@ const translation = {
confirmButton: '생성',
failed: '생성에 실패했습니다',
},
+ website: {
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ limit: '한계',
+ options: '옵션',
+ firecrawlDoc: 'Firecrawl 문서',
+ selectAll: '모두 선택',
+ maxDepth: '최대 수심',
+ includeOnlyPaths: '경로만 포함',
+ excludePaths: '경로 제외',
+ preview: '미리 보기',
+ run: '달리다',
+ fireCrawlNotConfigured: 'Firecrawl이 구성되지 않았습니다.',
+ firecrawlTitle: 'Firecrawl로 🔥웹 콘텐츠 추출',
+ configure: '구성',
+ resetAll: '모두 재설정',
+ crawlSubPage: '하위 페이지 크롤링',
+ exceptionErrorTitle: 'Firecrawl 작업을 실행하는 동안 예외가 발생했습니다.',
+ scrapTimeInfo: '{{time}}s 내에 총 {{total}} 페이지를 스크랩했습니다.',
+ unknownError: '알 수 없는 오류',
+ totalPageScraped: '스크랩한 총 페이지 수:',
+ fireCrawlNotConfiguredDescription: 'API 키로 Firecrawl을 구성하여 사용합니다.',
+ extractOnlyMainContent: '기본 콘텐츠만 추출합니다(머리글, 탐색, 바닥글 등 없음).',
+ maxDepthTooltip: '입력한 URL을 기준으로 크롤링할 최대 수준입니다. 깊이 0은 입력 된 url의 페이지를 긁어 내고, 깊이 1은 url과 enteredURL + one / 이후의 모든 것을 긁어 모으는 식입니다.',
+ },
},
stepTwo: {
segmentation: '청크 설정',
@@ -107,6 +131,8 @@ const translation = {
indexSettedTip: '인덱스 방식을 변경하려면,',
retrivalSettedTip: '인덱스 방식을 변경하려면,',
datasetSettingLink: '지식 설정',
+ webpageUnit: '페이지',
+ websiteSource: '웹 사이트 전처리',
},
stepThree: {
creationTitle: '🎉 지식이 생성되었습니다',
@@ -126,6 +152,11 @@ const translation = {
modelButtonConfirm: '확인',
modelButtonCancel: '취소',
},
+ firecrawl: {
+ getApiKeyLinkText: 'firecrawl.dev 에서 API 키 가져오기',
+ apiKeyPlaceholder: 'firecrawl.dev 의 API 키',
+ configFirecrawl: 'Firecrawl 구성 🔥',
+ },
}
export default translation
diff --git a/web/i18n/ko-KR/dataset-documents.ts b/web/i18n/ko-KR/dataset-documents.ts
index 8e7db58a6d..22c0330134 100644
--- a/web/i18n/ko-KR/dataset-documents.ts
+++ b/web/i18n/ko-KR/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: '상태',
action: '동작',
},
+ name: '이름',
+ rename: '이름 바꾸기',
},
action: {
uploadFile: '새 파일 업로드',
@@ -74,6 +76,7 @@ const translation = {
error: '가져오기 오류',
ok: '확인',
},
+ addUrl: 'URL 추가',
},
metadata: {
title: '메타데이터',
diff --git a/web/i18n/ko-KR/dataset-settings.ts b/web/i18n/ko-KR/dataset-settings.ts
index 7dac64fce5..ef451ee866 100644
--- a/web/i18n/ko-KR/dataset-settings.ts
+++ b/web/i18n/ko-KR/dataset-settings.ts
@@ -27,6 +27,8 @@ const translation = {
longDescription: ' 검색 방법에 대한 자세한 내용은 언제든지 지식 설정에서 변경할 수 있습니다.',
},
save: '저장',
+ permissionsInvitedMembers: '부분 팀 구성원',
+ me: '(당신)',
},
}
diff --git a/web/i18n/ko-KR/login.ts b/web/i18n/ko-KR/login.ts
index 01d1f538fe..a4d6dbcd44 100644
--- a/web/i18n/ko-KR/login.ts
+++ b/web/i18n/ko-KR/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: '사용자 이름을 입력하세요.',
passwordEmpty: '비밀번호를 입력하세요.',
passwordInvalid: '비밀번호는 문자와 숫자를 포함하고 8자 이상이어야 합니다.',
+ passwordLengthInValid: '비밀번호는 8자 이상이어야 합니다.',
},
license: {
tip: 'Dify Community Edition을 시작하기 전에 GitHub의',
@@ -68,6 +69,7 @@ const translation = {
activated: '지금 로그인하세요',
adminInitPassword: '관리자 초기화 비밀번호',
validate: '확인',
+ sso: 'SSO로 계속하기',
}
export default translation
diff --git a/web/i18n/ko-KR/workflow.ts b/web/i18n/ko-KR/workflow.ts
index d225d97141..a511cc1816 100644
--- a/web/i18n/ko-KR/workflow.ts
+++ b/web/i18n/ko-KR/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: '도구에서 관리',
workflowAsToolTip: '워크플로우 업데이트 후 도구 재구성이 필요합니다.',
viewDetailInTracingPanel: '세부 정보 보기',
+ importDSL: 'DSL 가져오기',
+ importFailure: '가져오기 실패',
+ chooseDSL: 'DSL(yml) 파일 선택',
+ backupCurrentDraft: '현재 초안 백업',
+ overwriteAndImport: '덮어쓰기 및 가져오기',
+ importSuccess: '가져오기 성공',
+ syncingData: '단 몇 초 만에 데이터를 동기화할 수 있습니다.',
+ importDSLTip: '현재 초안을 덮어씁니다. 가져오기 전에 워크플로를 백업으로 내보냅니다.',
},
env: {
envPanelTitle: '환경 변수',
@@ -178,6 +186,7 @@ const translation = {
'transform': '변환',
'utilities': '유틸리티',
'noResult': '일치하는 결과 없음',
+ 'searchTool': '검색 도구',
},
blocks: {
'start': '시작',
@@ -407,6 +416,7 @@ const translation = {
enterValue: '값 입력',
addCondition: '조건 추가',
conditionNotSetup: '조건이 설정되지 않음',
+ selectVariable: '변수 선택...',
},
variableAssigner: {
title: '변수 할당',
@@ -502,6 +512,25 @@ const translation = {
iteration_other: '{{count}} 반복',
currentIteration: '현재 반복',
},
+ note: {
+ editor: {
+ medium: '보통',
+ showAuthor: '작성자 표시',
+ link: '링크',
+ unlink: '해제',
+ small: '작다',
+ large: '큰',
+ placeholder: '메모 쓰기...',
+ bold: '대담한',
+ enterUrl: 'URL 입력...',
+ openLink: '열다',
+ italic: '이탤릭체',
+ invalidUrl: '잘못된 URL',
+ strikethrough: '취소선',
+ bulletList: '글머리 기호 목록',
+ },
+ addNote: '메모 추가',
+ },
},
tracing: {
stopBy: '{{user}}에 의해 중지됨',
diff --git a/web/i18n/pl-PL/app-overview.ts b/web/i18n/pl-PL/app-overview.ts
index 2b561853e3..9f8bcd34dc 100644
--- a/web/i18n/pl-PL/app-overview.ts
+++ b/web/i18n/pl-PL/app-overview.ts
@@ -52,6 +52,8 @@ const translation = {
title: 'Kroki przepływu pracy',
show: 'Pokaż',
hide: 'Ukryj',
+ subTitle: 'Szczegóły przepływu pracy',
+ showDesc: 'Pokazywanie lub ukrywanie szczegółów przepływu pracy w aplikacji internetowej',
},
chatColorTheme: 'Motyw kolorystyczny czatu',
chatColorThemeDesc: 'Ustaw motyw kolorystyczny czatu',
@@ -69,6 +71,12 @@ const translation = {
customDisclaimerPlaceholder: 'Wprowadź oświadczenie o ochronie danych',
customDisclaimerTip: 'Niestandardowy tekst oświadczenia będzie wyświetlany po stronie klienta, dostarczając dodatkowych informacji o aplikacji.',
},
+ sso: {
+ tooltip: 'Skontaktuj się z administratorem, aby włączyć logowanie jednokrotne w aplikacji internetowej',
+ title: 'Logowanie jednokrotne w aplikacji internetowej',
+ label: 'Uwierzytelnianie logowania jednokrotnego',
+ description: 'Wszyscy użytkownicy muszą zalogować się za pomocą logowania jednokrotnego przed użyciem aplikacji internetowej',
+ },
},
embedded: {
entry: 'Osadzone',
diff --git a/web/i18n/pl-PL/app.ts b/web/i18n/pl-PL/app.ts
index 6a47d43798..e672b7cd4f 100644
--- a/web/i18n/pl-PL/app.ts
+++ b/web/i18n/pl-PL/app.ts
@@ -129,7 +129,17 @@ const translation = {
removeConfirmTitle: 'Usunąć konfigurację {{key}}?',
removeConfirmContent: 'Obecna konfiguracja jest w użyciu, jej usunięcie wyłączy funkcję Śledzenia.',
},
+ view: 'Widok',
},
+ answerIcon: {
+ description: 'Czy w aplikacji udostępnionej ma być używana ikona aplikacji internetowej do zamiany 🤖.',
+ title: 'Użyj ikony WebApp, aby zastąpić 🤖',
+ descriptionInExplore: 'Czy używać ikony aplikacji internetowej do zastępowania 🤖 w Eksploruj',
+ },
+ importFromDSL: 'Importowanie z DSL',
+ importFromDSLUrl: 'Z adresu URL',
+ importFromDSLFile: 'Z pliku DSL',
+ importFromDSLUrlPlaceholder: 'Wklej tutaj link DSL',
}
export default translation
diff --git a/web/i18n/pl-PL/billing.ts b/web/i18n/pl-PL/billing.ts
index 40ddc1f732..cff567e162 100644
--- a/web/i18n/pl-PL/billing.ts
+++ b/web/i18n/pl-PL/billing.ts
@@ -65,6 +65,8 @@ const translation = {
bulkUpload: 'Masowe przesyłanie dokumentów',
agentMode: 'Tryb agenta',
workflow: 'Przepływ pracy',
+ llmLoadingBalancing: 'Równoważenie obciążenia LLM',
+ llmLoadingBalancingTooltip: 'Dodaj wiele kluczy API do modeli, skutecznie omijając limity szybkości interfejsu API.',
},
comingSoon: 'Wkrótce dostępne',
member: 'Członek',
@@ -83,6 +85,7 @@ const translation = {
'Odnosi się do liczby wywołań API wykorzystujących tylko zdolności przetwarzania bazy wiedzy Dify.',
receiptInfo:
'Tylko właściciel zespołu i administrator zespołu mogą subskrybować i przeglądać informacje o rozliczeniach',
+ annotationQuota: 'Przydział adnotacji',
},
plans: {
sandbox: {
diff --git a/web/i18n/pl-PL/common.ts b/web/i18n/pl-PL/common.ts
index 5125e849ac..56f2a31ea3 100644
--- a/web/i18n/pl-PL/common.ts
+++ b/web/i18n/pl-PL/common.ts
@@ -209,6 +209,11 @@ const translation = {
disinvite: 'Anuluj zaproszenie',
deleteMember: 'Usuń członka',
you: '(Ty)',
+ datasetOperatorTip: 'Może zarządzać tylko bazą wiedzy',
+ setBuilder: 'Ustaw jako budowniczego',
+ builder: 'Budowniczy',
+ builderTip: 'Może tworzyć i edytować własne aplikacje',
+ datasetOperator: 'Wiedza Admin',
},
integrations: {
connected: 'Połączony',
@@ -360,6 +365,22 @@ const translation = {
quotaTip: 'Pozostałe dostępne darmowe tokeny',
loadPresets: 'Załaduj ustawienia wstępne',
parameters: 'PARAMETRY',
+ apiKey: 'KLUCZ-API',
+ loadBalancing: 'Równoważenie obciążenia',
+ defaultConfig: 'Domyślna konfiguracja',
+ providerManagedDescription: 'Użyj pojedynczego zestawu poświadczeń dostarczonych przez dostawcę modelu.',
+ loadBalancingHeadline: 'Równoważenie obciążenia',
+ modelHasBeenDeprecated: 'Ten model jest przestarzały',
+ loadBalancingDescription: 'Zmniejsz presję dzięki wielu zestawom poświadczeń.',
+ providerManaged: 'Zarządzany przez dostawcę',
+ upgradeForLoadBalancing: 'Uaktualnij swój plan, aby włączyć równoważenie obciążenia.',
+ apiKeyStatusNormal: 'Stan APIKey jest normalny',
+ loadBalancingLeastKeyWarning: 'Aby włączyć równoważenie obciążenia, muszą być włączone co najmniej 2 klucze.',
+ loadBalancingInfo: 'Domyślnie równoważenie obciążenia używa strategii działania okrężnego. Jeśli zostanie uruchomione ograniczenie szybkości, zostanie zastosowany 1-minutowy okres odnowienia.',
+ configLoadBalancing: 'Równoważenie obciążenia konfiguracji',
+ editConfig: 'Edytuj konfigurację',
+ addConfig: 'Dodaj konfigurację',
+ apiKeyRateLimit: 'Osiągnięto limit szybkości, dostępny po {{sekund}}s',
},
dataSource: {
add: 'Dodaj źródło danych',
@@ -383,6 +404,15 @@ const translation = {
preview: 'PODGLĄD',
},
},
+ website: {
+ active: 'Aktywny',
+ with: 'Z',
+ title: 'Strona internetowa',
+ description: 'Importuj zawartość ze stron internetowych za pomocą robota indeksującego.',
+ configuredCrawlers: 'Skonfigurowane roboty indeksujące',
+ inactive: 'Nieaktywny',
+ },
+ configure: 'Konfigurować',
},
plugin: {
serpapi: {
@@ -556,6 +586,10 @@ const translation = {
created: 'Tag został pomyślnie utworzony',
failed: 'Nie udało się utworzyć tagu',
},
+ errorMsg: {
+ fieldRequired: '{{field}} jest wymagane',
+ urlError: 'Adres URL powinien zaczynać się od http:// lub https://',
+ },
}
export default translation
diff --git a/web/i18n/pl-PL/dataset-creation.ts b/web/i18n/pl-PL/dataset-creation.ts
index 1b12e51b05..e751db7f99 100644
--- a/web/i18n/pl-PL/dataset-creation.ts
+++ b/web/i18n/pl-PL/dataset-creation.ts
@@ -51,6 +51,30 @@ const translation = {
confirmButton: 'Utwórz',
failed: 'Utworzenie nie powiodło się',
},
+ website: {
+ limit: 'Ograniczać',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ firecrawlDoc: 'Dokumentacja Firecrawl',
+ unknownError: 'Nieznany błąd',
+ fireCrawlNotConfiguredDescription: 'Skonfiguruj Firecrawl z kluczem API, aby z niego korzystać.',
+ run: 'Biegać',
+ configure: 'Konfigurować',
+ resetAll: 'Zresetuj wszystko',
+ preview: 'Prapremiera',
+ exceptionErrorTitle: 'Wystąpił wyjątek podczas uruchamiania zadania Firecrawl:',
+ maxDepth: 'Maksymalna głębokość',
+ crawlSubPage: 'Przeszukiwanie podstron',
+ options: 'Opcje',
+ scrapTimeInfo: 'Zeskrobano {{total}} stron w sumie w ciągu {{time}}s',
+ totalPageScraped: 'Łączna liczba zeskrobanych stron:',
+ extractOnlyMainContent: 'Wyodrębnij tylko główną zawartość (bez nagłówków, nawigacji, stopek itp.)',
+ excludePaths: 'Wykluczanie ścieżek',
+ includeOnlyPaths: 'Uwzględnij tylko ścieżki',
+ selectAll: 'Zaznacz wszystko',
+ firecrawlTitle: 'Wyodrębnij zawartość internetową za pomocą 🔥Firecrawl',
+ fireCrawlNotConfigured: 'Firecrawl nie jest skonfigurowany',
+ maxDepthTooltip: 'Maksymalna głębokość przeszukiwania względem wprowadzonego adresu URL. Głębokość 0 po prostu zeskrobuje stronę z wprowadzonego adresu URL, głębokość 1 zeskrobuje adres URL i wszystko po wprowadzeniuURL+ jeden / i tak dalej.',
+ },
},
stepTwo: {
segmentation: 'Ustawienia bloków tekstu',
@@ -120,6 +144,8 @@ const translation = {
indexSettedTip: 'Aby zmienić metodę indeksowania, przejdź do ',
retrivalSettedTip: 'Aby zmienić metodę indeksowania, przejdź do ',
datasetSettingLink: 'ustawień Wiedzy.',
+ webpageUnit: 'Stron',
+ websiteSource: 'Witryna internetowa przetwarzania wstępnego',
},
stepThree: {
creationTitle: '🎉 Utworzono Wiedzę',
@@ -141,6 +167,11 @@ const translation = {
modelButtonConfirm: 'Potwierdź',
modelButtonCancel: 'Anuluj',
},
+ firecrawl: {
+ apiKeyPlaceholder: 'Klucz API od firecrawl.dev',
+ configFirecrawl: 'Konfiguracja 🔥Firecrawla',
+ getApiKeyLinkText: 'Pobierz klucz API z firecrawl.dev',
+ },
}
export default translation
diff --git a/web/i18n/pl-PL/dataset-documents.ts b/web/i18n/pl-PL/dataset-documents.ts
index f8617a29cf..7152c3e9d6 100644
--- a/web/i18n/pl-PL/dataset-documents.ts
+++ b/web/i18n/pl-PL/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: 'STATUS',
action: 'AKCJA',
},
+ name: 'Nazwa',
+ rename: 'Przemianować',
},
action: {
uploadFile: 'Wgraj nowy plik',
@@ -75,6 +77,7 @@ const translation = {
error: 'Błąd importu',
ok: 'OK',
},
+ addUrl: 'Dodaj adres URL',
},
metadata: {
title: 'Metadane',
diff --git a/web/i18n/pl-PL/dataset-settings.ts b/web/i18n/pl-PL/dataset-settings.ts
index b7d1738c54..3f069ab9b0 100644
--- a/web/i18n/pl-PL/dataset-settings.ts
+++ b/web/i18n/pl-PL/dataset-settings.ts
@@ -32,6 +32,8 @@ const translation = {
' dotyczące metody doboru, możesz to zmienić w dowolnym momencie w ustawieniach wiedzy.',
},
save: 'Zapisz',
+ permissionsInvitedMembers: 'Częściowi członkowie zespołu',
+ me: '(Ty)',
},
}
diff --git a/web/i18n/pl-PL/login.ts b/web/i18n/pl-PL/login.ts
index 075b79b913..40ab94f736 100644
--- a/web/i18n/pl-PL/login.ts
+++ b/web/i18n/pl-PL/login.ts
@@ -59,6 +59,7 @@ const translation = {
passwordEmpty: 'Hasło jest wymagane',
passwordInvalid:
'Hasło musi zawierać litery i cyfry, a jego długość musi być większa niż 8',
+ passwordLengthInValid: 'Hasło musi składać się z co najmniej 8 znaków',
},
license: {
tip: 'Przed rozpoczęciem wersji społecznościowej Dify, przeczytaj GitHub',
diff --git a/web/i18n/pl-PL/tools.ts b/web/i18n/pl-PL/tools.ts
index f5d3226e8c..f34825b049 100644
--- a/web/i18n/pl-PL/tools.ts
+++ b/web/i18n/pl-PL/tools.ts
@@ -5,6 +5,7 @@ const translation = {
all: 'Wszystkie',
builtIn: 'Wbudowane',
custom: 'Niestandardowe',
+ workflow: 'Przepływ pracy',
},
contribute: {
line1: 'Interesuje mnie ',
@@ -77,6 +78,27 @@ const translation = {
customDisclaimerPlaceholder: 'Proszę wprowadzić oświadczenie niestandardowe',
deleteToolConfirmTitle: 'Skasuj ten przyrząd?',
deleteToolConfirmContent: 'Usunięcie narzędzia jest nieodwracalne. Użytkownicy nie będą mieli już dostępu do Twojego narzędzia.',
+ toolInput: {
+ name: 'Nazwa',
+ required: 'Wymagane',
+ descriptionPlaceholder: 'Opis znaczenia parametru',
+ methodParameter: 'Parametr',
+ label: 'Tagi',
+ methodSetting: 'Ustawienie',
+ description: 'Opis',
+ method: 'Metoda',
+ methodParameterTip: 'LLM wypełnia się podczas wnioskowania',
+ labelPlaceholder: 'Wybierz tagi (opcjonalnie)',
+ methodSettingTip: 'Użytkownik wypełnia konfigurację narzędzia',
+ title: 'Wprowadzanie narzędzi',
+ },
+ nameForToolCall: 'Nazwa wywołania narzędzia',
+ description: 'Opis',
+ descriptionPlaceholder: 'Krótki opis przeznaczenia narzędzia, np. zmierz temperaturę dla konkretnej lokalizacji.',
+ nameForToolCallTip: 'Obsługuje tylko cyfry, litery i podkreślenia.',
+ nameForToolCallPlaceHolder: 'Służy do rozpoznawania maszyn, takich jak getCurrentWeather, list_pets',
+ confirmTip: 'Będzie to miało wpływ na aplikacje korzystające z tego narzędzia',
+ confirmTitle: 'Potwierdź, aby zapisać ?',
},
test: {
title: 'Test',
@@ -118,6 +140,18 @@ const translation = {
toolRemoved: 'Narzędzie usunięte',
notAuthorized: 'Narzędzie nieautoryzowane',
howToGet: 'Jak uzyskać',
+ addToolModal: {
+ manageInTools: 'Zarządzanie w Narzędziach',
+ added: 'Dodane',
+ type: 'typ',
+ category: 'kategoria',
+ add: 'dodawać',
+ emptyTitle: 'Brak dostępnego narzędzia do przepływu pracy',
+ emptyTip: 'Przejdź do "Przepływ pracy -> Opublikuj jako narzędzie"',
+ },
+ openInStudio: 'Otwieranie w Studio',
+ customToolTip: 'Dowiedz się więcej o niestandardowych narzędziach Dify',
+ toolNameUsageTip: 'Nazwa wywołania narzędzia do wnioskowania i podpowiadania agentowi',
}
export default translation
diff --git a/web/i18n/pl-PL/workflow.ts b/web/i18n/pl-PL/workflow.ts
index 62defed019..daa66a7370 100644
--- a/web/i18n/pl-PL/workflow.ts
+++ b/web/i18n/pl-PL/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: 'Zarządzaj w narzędziach',
workflowAsToolTip: 'Wymagana rekonfiguracja narzędzia po aktualizacji przepływu pracy.',
viewDetailInTracingPanel: 'Zobacz szczegóły',
+ importDSLTip: 'Bieżąca wersja robocza zostanie nadpisana. Eksportuj przepływ pracy jako kopię zapasową przed zaimportowaniem.',
+ syncingData: 'Synchronizacja danych w zaledwie kilka sekund.',
+ importSuccess: 'Import powodzenie',
+ importDSL: 'Importowanie DSL',
+ overwriteAndImport: 'Nadpisywanie i importowanie',
+ chooseDSL: 'Wybierz plik DSL(yml)',
+ backupCurrentDraft: 'Utwórz kopię zapasową bieżącej wersji roboczej',
+ importFailure: 'Niepowodzenie importu',
},
env: {
envPanelTitle: 'Zmienne Środowiskowe',
@@ -178,6 +186,7 @@ const translation = {
'transform': 'Transformacja',
'utilities': 'Narzędzia pomocnicze',
'noResult': 'Nie znaleziono dopasowań',
+ 'searchTool': 'Wyszukiwarka',
},
blocks: {
'start': 'Start',
@@ -407,6 +416,7 @@ const translation = {
enterValue: 'Wpisz wartość',
addCondition: 'Dodaj warunek',
conditionNotSetup: 'Warunek NIE został ustawiony',
+ selectVariable: 'Wybierz zmienną...',
},
variableAssigner: {
title: 'Przypisz zmienne',
@@ -502,6 +512,25 @@ const translation = {
iteration_other: '{{count}} Iteracje',
currentIteration: 'Bieżąca iteracja',
},
+ note: {
+ editor: {
+ link: 'Łącze',
+ medium: 'Średni',
+ small: 'Mały',
+ italic: 'Kursywa',
+ enterUrl: 'Wpisz adres URL...',
+ showAuthor: 'Pokaż autora',
+ bold: 'Śmiały',
+ unlink: 'Odłączyć',
+ bulletList: 'Lista punktowana',
+ large: 'Duży',
+ openLink: 'Otwierać',
+ strikethrough: 'Przekreślenie',
+ invalidUrl: 'Nieprawidłowy adres URL',
+ placeholder: 'Napisz swoją notatkę...',
+ },
+ addNote: 'Dodaj notatkę',
+ },
},
tracing: {
stopBy: 'Zatrzymane przez {{user}}',
diff --git a/web/i18n/pt-BR/app-api.ts b/web/i18n/pt-BR/app-api.ts
index 95a9c84a3e..4c6107b069 100644
--- a/web/i18n/pt-BR/app-api.ts
+++ b/web/i18n/pt-BR/app-api.ts
@@ -74,6 +74,10 @@ const translation = {
pathParams: 'Parâmetros de Caminho',
query: 'Consulta',
},
+ play: 'Brincar',
+ loading: 'Carregamento',
+ pause: 'Pausa',
+ playing: 'Jogar',
}
export default translation
diff --git a/web/i18n/pt-BR/app-log.ts b/web/i18n/pt-BR/app-log.ts
index a61d4204d4..96e604c49e 100644
--- a/web/i18n/pt-BR/app-log.ts
+++ b/web/i18n/pt-BR/app-log.ts
@@ -90,6 +90,13 @@ const translation = {
iteração: 'Iteração',
finalProcessing: 'Processamento Final',
},
+ agentLogDetail: {
+ iterations: 'Iterações',
+ agentMode: 'Modo Agente',
+ finalProcessing: 'Processamento final',
+ iteration: 'Iteração',
+ toolUsed: 'Ferramenta usada',
+ },
}
export default translation
diff --git a/web/i18n/pt-BR/app-overview.ts b/web/i18n/pt-BR/app-overview.ts
index 862a326a42..a717ca259c 100644
--- a/web/i18n/pt-BR/app-overview.ts
+++ b/web/i18n/pt-BR/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Etapas do fluxo de trabalho',
show: 'Mostrar',
hide: 'Ocultar',
+ subTitle: 'Detalhes do fluxo de trabalho',
+ showDesc: 'Mostrar ou ocultar detalhes do fluxo de trabalho no WebApp',
},
chatColorTheme: 'Tema de cor do chatbot',
chatColorThemeDesc: 'Defina o tema de cor do chatbot',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'Insira o texto do aviso legal',
customDisclaimerTip: 'O texto do aviso legal personalizado será exibido no lado do cliente, fornecendo informações adicionais sobre o aplicativo',
},
+ sso: {
+ tooltip: 'Entre em contato com o administrador para habilitar o SSO do WebApp',
+ label: 'Autenticação SSO',
+ title: 'WebApp SSO',
+ description: 'Todos os usuários devem fazer login com SSO antes de usar o WebApp',
+ },
},
embedded: {
entry: 'Embutido',
diff --git a/web/i18n/pt-BR/app.ts b/web/i18n/pt-BR/app.ts
index ef9122b86c..cf0c987eb2 100644
--- a/web/i18n/pt-BR/app.ts
+++ b/web/i18n/pt-BR/app.ts
@@ -122,7 +122,17 @@ const translation = {
removeConfirmTitle: 'Remover configuração de {{key}}?',
removeConfirmContent: 'A configuração atual está em uso, removê-la desligará o recurso de Rastreamento.',
},
+ view: 'Vista',
},
+ answerIcon: {
+ descriptionInExplore: 'Se o ícone do WebApp deve ser usado para substituir 🤖 no Explore',
+ description: 'Se o ícone WebApp deve ser usado para substituir 🤖 no aplicativo compartilhado',
+ title: 'Use o ícone do WebApp para substituir 🤖',
+ },
+ importFromDSLUrlPlaceholder: 'Cole o link DSL aqui',
+ importFromDSLUrl: 'Do URL',
+ importFromDSLFile: 'Do arquivo DSL',
+ importFromDSL: 'Importar de DSL',
}
export default translation
diff --git a/web/i18n/pt-BR/billing.ts b/web/i18n/pt-BR/billing.ts
index 1ac082ec38..134c5e82f4 100644
--- a/web/i18n/pt-BR/billing.ts
+++ b/web/i18n/pt-BR/billing.ts
@@ -54,6 +54,11 @@ const translation = {
customIntegration: 'Custom integration and support',
ragAPIRequest: 'RAG API Requests',
agentModel: 'Agent Model',
+ workflow: 'Fluxo de trabalho',
+ llmLoadingBalancing: 'Balanceamento de carga LLM',
+ bulkUpload: 'Carregar documentos em massa',
+ llmLoadingBalancingTooltip: 'Adicione várias chaves de API aos modelos, ignorando efetivamente os limites de taxa da API.',
+ agentMode: 'Modo Agente',
},
comingSoon: 'Coming soon',
member: 'Member',
@@ -68,6 +73,11 @@ const translation = {
},
ragAPIRequestTooltip: 'Refers to the number of API calls invoking only the knowledge base processing capabilities of Dify.',
receiptInfo: 'Somente proprietários e administradores de equipe podem se inscrever e visualizar informações de cobrança',
+ customTools: 'Ferramentas personalizadas',
+ documentsUploadQuota: 'Cota de upload de documentos',
+ annotationQuota: 'Cota de anotação',
+ contractSales: 'Entre em contato com a equipe de vendas',
+ unavailable: 'Indisponível',
},
plans: {
sandbox: {
diff --git a/web/i18n/pt-BR/common.ts b/web/i18n/pt-BR/common.ts
index 04b8c3b49c..6cd62565f1 100644
--- a/web/i18n/pt-BR/common.ts
+++ b/web/i18n/pt-BR/common.ts
@@ -201,6 +201,11 @@ const translation = {
disinvite: 'Cancelar o convite',
deleteMember: 'Excluir Membro',
you: '(Você)',
+ datasetOperatorTip: 'Só pode gerenciar a base de dados de conhecimento',
+ builder: 'Construtor',
+ setBuilder: 'Definir como construtor',
+ builderTip: 'Pode criar e editar seus próprios aplicativos',
+ datasetOperator: 'Administrador de conhecimento',
},
integrations: {
connected: 'Conectado',
@@ -347,6 +352,22 @@ const translation = {
quotaTip: 'Tokens gratuitos disponíveis restantes',
loadPresets: 'Carregar Predefinições',
parameters: 'PARÂMETROS',
+ loadBalancingDescription: 'Reduza a pressão com vários conjuntos de credenciais.',
+ configLoadBalancing: 'Balanceamento de carga de configuração',
+ upgradeForLoadBalancing: 'Atualize seu plano para habilitar o balanceamento de carga.',
+ providerManaged: 'Gerenciado pelo provedor',
+ apiKeyStatusNormal: 'O status do APIKey é normal',
+ loadBalancing: 'Balanceamento de carga',
+ addConfig: 'Adicionar configuração',
+ providerManagedDescription: 'Use o único conjunto de credenciais fornecido pelo provedor de modelo.',
+ apiKey: 'CHAVE DE API',
+ loadBalancingLeastKeyWarning: 'Para habilitar o balanceamento de carga, pelo menos 2 chaves devem estar habilitadas.',
+ editConfig: 'Editar configuração',
+ defaultConfig: 'Configuração padrão',
+ modelHasBeenDeprecated: 'Este modelo foi preterido',
+ loadBalancingInfo: 'Por padrão, o balanceamento de carga usa a estratégia Round-robin. Se a limitação de taxa for acionada, um período de espera de 1 minuto será aplicado.',
+ apiKeyRateLimit: 'O limite de taxa foi atingido, disponível após {{seconds}}s',
+ loadBalancingHeadline: 'Balanceamento de carga',
},
dataSource: {
add: 'Adicionar uma fonte de dados',
@@ -370,6 +391,15 @@ const translation = {
preview: 'PRÉ-VISUALIZAÇÃO',
},
},
+ website: {
+ inactive: 'Inativo',
+ active: 'Ativo',
+ title: 'Local na rede Internet',
+ with: 'Com',
+ configuredCrawlers: 'Rastreadores configurados',
+ description: 'Importe conteúdo de sites usando o rastreador da Web.',
+ },
+ configure: 'Configurar',
},
plugin: {
serpapi: {
@@ -538,6 +568,10 @@ const translation = {
created: 'Tag criada com sucesso',
failed: 'Falha na criação da tag',
},
+ errorMsg: {
+ fieldRequired: '{{field}} é obrigatório',
+ urlError: 'URL deve começar com http:// ou https://',
+ },
}
export default translation
diff --git a/web/i18n/pt-BR/dataset-creation.ts b/web/i18n/pt-BR/dataset-creation.ts
index b721f2177b..e7e7fe40fa 100644
--- a/web/i18n/pt-BR/dataset-creation.ts
+++ b/web/i18n/pt-BR/dataset-creation.ts
@@ -50,6 +50,30 @@ const translation = {
confirmButton: 'Criar',
failed: 'Falha na criação',
},
+ website: {
+ fireCrawlNotConfiguredDescription: 'Configure o Firecrawl com a chave de API para usá-lo.',
+ run: 'Correr',
+ unknownError: 'Erro desconhecido',
+ crawlSubPage: 'Rastrear subpáginas',
+ selectAll: 'Selecionar tudo',
+ resetAll: 'Redefinir tudo',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ includeOnlyPaths: 'Incluir apenas caminhos',
+ configure: 'Configurar',
+ limit: 'Limite',
+ firecrawlDoc: 'Documentos do Firecrawl',
+ preview: 'Visualizar',
+ options: 'Opções',
+ scrapTimeInfo: 'Páginas {{total}} raspadas no total dentro de {{time}}s',
+ exceptionErrorTitle: 'Ocorreu uma exceção durante a execução do trabalho Firecrawl:',
+ fireCrawlNotConfigured: 'O Firecrawl não está configurado',
+ maxDepthTooltip: 'Profundidade máxima para rastrear em relação ao URL inserido. A profundidade 0 apenas raspa a página do url inserido, a profundidade 1 raspa o url e tudo depois de inseridoURL + um / e assim por diante.',
+ firecrawlTitle: 'Extraia conteúdo da web com 🔥Firecrawl',
+ maxDepth: 'Profundidade máxima',
+ totalPageScraped: 'Total de páginas raspadas:',
+ excludePaths: 'Excluir caminhos',
+ extractOnlyMainContent: 'Extraia apenas o conteúdo principal (sem cabeçalhos, navs, rodapés, etc.)',
+ },
},
stepTwo: {
segmentation: 'Configurações de fragmentação',
@@ -107,6 +131,8 @@ const translation = {
indexSettedTip: 'Para alterar o método de índice, por favor vá para as ',
retrivalSettedTip: 'Para alterar o método de índice, por favor vá para as ',
datasetSettingLink: 'configurações do Conhecimento.',
+ websiteSource: 'Site de pré-processamento',
+ webpageUnit: 'Páginas',
},
stepThree: {
creationTitle: '🎉 Conhecimento criado',
@@ -125,6 +151,11 @@ const translation = {
modelButtonConfirm: 'Confirmar',
modelButtonCancel: 'Cancelar',
},
+ firecrawl: {
+ apiKeyPlaceholder: 'Chave de API do firecrawl.dev',
+ configFirecrawl: 'Configurar 🔥o Firecrawl',
+ getApiKeyLinkText: 'Obtenha sua chave de API do firecrawl.dev',
+ },
}
export default translation
diff --git a/web/i18n/pt-BR/dataset-documents.ts b/web/i18n/pt-BR/dataset-documents.ts
index a7265a9cff..ded46c8a14 100644
--- a/web/i18n/pt-BR/dataset-documents.ts
+++ b/web/i18n/pt-BR/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: 'STATUS',
action: 'AÇÃO',
},
+ name: 'Nome',
+ rename: 'Renomear',
},
action: {
uploadFile: 'Enviar novo arquivo',
@@ -74,6 +76,7 @@ const translation = {
error: 'Erro na importação',
ok: 'OK',
},
+ addUrl: 'Adicionar URL',
},
metadata: {
title: 'Metadados',
diff --git a/web/i18n/pt-BR/dataset-settings.ts b/web/i18n/pt-BR/dataset-settings.ts
index fff9d9c7d5..cfedbff337 100644
--- a/web/i18n/pt-BR/dataset-settings.ts
+++ b/web/i18n/pt-BR/dataset-settings.ts
@@ -27,6 +27,8 @@ const translation = {
longDescription: ' sobre o método de recuperação, você pode alterar isso a qualquer momento nas configurações do conhecimento.',
},
save: 'Salvar',
+ permissionsInvitedMembers: 'Membros parciais da equipe',
+ me: '(Você)',
},
}
diff --git a/web/i18n/pt-BR/dataset.ts b/web/i18n/pt-BR/dataset.ts
index 8710879149..51d3ad1b44 100644
--- a/web/i18n/pt-BR/dataset.ts
+++ b/web/i18n/pt-BR/dataset.ts
@@ -70,6 +70,7 @@ const translation = {
nTo1RetrievalLegacy: 'A recuperação N-para-1 será oficialmente descontinuada a partir de setembro. Recomenda-se usar a recuperação de múltiplos caminhos mais recente para obter melhores resultados.',
nTo1RetrievalLegacyLink: 'Saiba mais',
nTo1RetrievalLegacyLinkText: 'A recuperação N-para-1 será oficialmente descontinuada em setembro.',
+ intro6: 'como um plug-in de índice ChatGPT autônomo para publicar',
}
export default translation
diff --git a/web/i18n/pt-BR/login.ts b/web/i18n/pt-BR/login.ts
index 88312778c3..2c68916334 100644
--- a/web/i18n/pt-BR/login.ts
+++ b/web/i18n/pt-BR/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: 'O nome é obrigatório',
passwordEmpty: 'A senha é obrigatória',
passwordInvalid: 'A senha deve conter letras e números e ter um comprimento maior que 8',
+ passwordLengthInValid: 'A senha deve ter pelo menos 8 caracteres',
},
license: {
tip: 'Antes de começar a usar a Edição Comunitária do Dify, leia a',
@@ -66,6 +67,9 @@ const translation = {
activatedTipStart: 'Você se juntou à equipe',
activatedTipEnd: '',
activated: 'Entrar agora',
+ adminInitPassword: 'Senha de inicialização do administrador',
+ validate: 'Validar',
+ sso: 'Continuar com SSO',
}
export default translation
diff --git a/web/i18n/pt-BR/tools.ts b/web/i18n/pt-BR/tools.ts
index 28b6e82176..1b20715328 100644
--- a/web/i18n/pt-BR/tools.ts
+++ b/web/i18n/pt-BR/tools.ts
@@ -5,6 +5,7 @@ const translation = {
all: 'Todas',
builtIn: 'Integradas',
custom: 'Personalizadas',
+ workflow: 'Fluxo de trabalho',
},
contribute: {
line1: 'Estou interessado em ',
@@ -75,6 +76,27 @@ const translation = {
customDisclaimerPlaceholder: 'Digite o aviso personalizado',
deleteToolConfirmTitle: 'Excluir esta ferramenta?',
deleteToolConfirmContent: 'Excluir a ferramenta é irreversível. Os usuários não poderão mais acessar sua ferramenta.',
+ toolInput: {
+ label: 'Tags',
+ methodSetting: 'Ambiente',
+ methodParameterTip: 'Preenchimentos de LLM durante a inferência',
+ methodSettingTip: 'O usuário preenche a configuração da ferramenta',
+ methodParameter: 'Parâmetro',
+ name: 'Nome',
+ description: 'Descrição',
+ method: 'Método',
+ required: 'Necessário',
+ title: 'Entrada de ferramenta',
+ labelPlaceholder: 'Escolha tags(opcional)',
+ descriptionPlaceholder: 'Descrição do significado do parâmetro',
+ },
+ description: 'Descrição',
+ nameForToolCall: 'Nome da chamada da ferramenta',
+ confirmTip: 'Os aplicativos que usam essa ferramenta serão afetados',
+ confirmTitle: 'Confirme para salvar ?',
+ nameForToolCallTip: 'Suporta apenas números, letras e sublinhados.',
+ descriptionPlaceholder: 'Breve descrição da finalidade da ferramenta, por exemplo, obter a temperatura para um local específico.',
+ nameForToolCallPlaceHolder: 'Usado para reconhecimento de máquina, como getCurrentWeather, list_pets',
},
test: {
title: 'Testar',
@@ -114,6 +136,18 @@ const translation = {
toolRemoved: 'Ferramenta removida',
notAuthorized: 'Ferramenta não autorizada',
howToGet: 'Como obter',
+ addToolModal: {
+ category: 'categoria',
+ type: 'tipo',
+ emptyTip: 'Vá para "Fluxo de trabalho - > Publicar como ferramenta"',
+ add: 'adicionar',
+ emptyTitle: 'Nenhuma ferramenta de fluxo de trabalho disponível',
+ added: 'Adicionado',
+ manageInTools: 'Gerenciar em Ferramentas',
+ },
+ openInStudio: 'Abrir no Studio',
+ customToolTip: 'Saiba mais sobre as ferramentas personalizadas da Dify',
+ toolNameUsageTip: 'Nome da chamada da ferramenta para raciocínio e solicitação do agente',
}
export default translation
diff --git a/web/i18n/pt-BR/workflow.ts b/web/i18n/pt-BR/workflow.ts
index 071f6e99f8..2c44ad1434 100644
--- a/web/i18n/pt-BR/workflow.ts
+++ b/web/i18n/pt-BR/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: 'Gerenciar nas ferramentas',
workflowAsToolTip: 'É necessária a reconfiguração da ferramenta após a atualização do fluxo de trabalho.',
viewDetailInTracingPanel: 'Ver detalhes',
+ importSuccess: 'Sucesso da importação',
+ chooseDSL: 'Escolha o arquivo DSL(yml)',
+ importFailure: 'Falha na importação',
+ syncingData: 'Sincronizando dados, apenas alguns segundos.',
+ overwriteAndImport: 'Substituir e importar',
+ importDSLTip: 'O rascunho atual será substituído. Exporte o fluxo de trabalho como backup antes de importar.',
+ backupCurrentDraft: 'Fazer backup do rascunho atual',
+ importDSL: 'Importar DSL',
},
env: {
envPanelTitle: 'Variáveis de Ambiente',
@@ -178,6 +186,7 @@ const translation = {
'transform': 'Transformar',
'utilities': 'Utilitários',
'noResult': 'Nenhum resultado encontrado',
+ 'searchTool': 'Ferramenta de pesquisa',
},
blocks: {
'start': 'Iniciar',
@@ -407,6 +416,7 @@ const translation = {
enterValue: 'Digite o valor',
addCondition: 'Adicionar condição',
conditionNotSetup: 'Condição NÃO configurada',
+ selectVariable: 'Selecione a variável...',
},
variableAssigner: {
title: 'Atribuir variáveis',
@@ -502,6 +512,25 @@ const translation = {
iteration_other: '{{count}} Iterações',
currentIteration: 'Iteração atual',
},
+ note: {
+ editor: {
+ small: 'Pequeno',
+ bold: 'Ousado',
+ openLink: 'Abrir',
+ strikethrough: 'Tachado',
+ italic: 'Itálico',
+ invalidUrl: 'URL inválido',
+ placeholder: 'Escreva sua nota...',
+ bulletList: 'Lista de marcadores',
+ link: 'Link',
+ enterUrl: 'Digite o URL...',
+ medium: 'Média',
+ large: 'Grande',
+ unlink: 'Desvincular',
+ showAuthor: 'Autor do programa',
+ },
+ addNote: 'Adicionar nota',
+ },
},
tracing: {
stopBy: 'Parado por {{user}}',
diff --git a/web/i18n/ro-RO/app-overview.ts b/web/i18n/ro-RO/app-overview.ts
index 94667b6744..9a9c9be35b 100644
--- a/web/i18n/ro-RO/app-overview.ts
+++ b/web/i18n/ro-RO/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Pași flux de lucru',
show: 'Afișați',
hide: 'Ascundeți',
+ subTitle: 'Detalii despre fluxul de lucru',
+ showDesc: 'Afișarea sau ascunderea detaliilor fluxului de lucru în WebApp',
},
chatColorTheme: 'Tema de culoare a chatului',
chatColorThemeDesc: 'Setați tema de culoare a chatbotului',
@@ -60,6 +62,15 @@ const translation = {
privacyPolicy: 'Politica de confidențialitate',
privacyPolicyPlaceholder: 'Introduceți link-ul politicii de confidențialitate',
privacyPolicyTip: 'Ajută vizitatorii să înțeleagă datele pe care le colectează aplicația, consultați Politica de confidențialitate a Dify.',
+ customDisclaimerPlaceholder: 'Introduceți textul personalizat de declinare a responsabilității',
+ customDisclaimerTip: 'Textul personalizat de declinare a responsabilității va fi afișat pe partea clientului, oferind informații suplimentare despre aplicație',
+ customDisclaimer: 'Declinarea responsabilității personalizate',
+ },
+ sso: {
+ label: 'Autentificare SSO',
+ title: 'WebApp SSO',
+ description: 'Toți utilizatorii trebuie să se conecteze cu SSO înainte de a utiliza WebApp',
+ tooltip: 'Contactați administratorul pentru a activa WebApp SSO',
},
},
embedded: {
diff --git a/web/i18n/ro-RO/app.ts b/web/i18n/ro-RO/app.ts
index 2d13dd4e66..9baaabdd07 100644
--- a/web/i18n/ro-RO/app.ts
+++ b/web/i18n/ro-RO/app.ts
@@ -122,7 +122,17 @@ const translation = {
removeConfirmTitle: 'Eliminați configurația {{key}}?',
removeConfirmContent: 'Configurația curentă este în uz, eliminarea acesteia va dezactiva funcția de Urmărire.',
},
+ view: 'Vedere',
},
+ answerIcon: {
+ descriptionInExplore: 'Dacă să utilizați pictograma WebApp pentru a înlocui 🤖 în Explore',
+ description: 'Dacă se utilizează pictograma WebApp pentru a înlocui 🤖 în aplicația partajată',
+ title: 'Utilizați pictograma WebApp pentru a înlocui 🤖',
+ },
+ importFromDSL: 'Import din DSL',
+ importFromDSLUrl: 'De la URL',
+ importFromDSLUrlPlaceholder: 'Lipiți linkul DSL aici',
+ importFromDSLFile: 'Din fișierul DSL',
}
export default translation
diff --git a/web/i18n/ro-RO/billing.ts b/web/i18n/ro-RO/billing.ts
index 57b9986889..707d892047 100644
--- a/web/i18n/ro-RO/billing.ts
+++ b/web/i18n/ro-RO/billing.ts
@@ -60,6 +60,8 @@ const translation = {
bulkUpload: 'Încărcare în bloc a documentelor',
agentMode: 'Mod agent',
workflow: 'Flux de lucru',
+ llmLoadingBalancing: 'Echilibrarea sarcinii LLM',
+ llmLoadingBalancingTooltip: 'Adăugați mai multe chei API la modele, ocolind efectiv limitele de rată API.',
},
comingSoon: 'Vine în curând',
member: 'Membru',
@@ -74,6 +76,7 @@ const translation = {
},
ragAPIRequestTooltip: 'Se referă la numărul de apeluri API care invocă doar capacitățile de procesare a bazei de cunoștințe a Dify.',
receiptInfo: 'Doar proprietarul echipei și administratorul echipei pot să se aboneze și să vizualizeze informațiile de facturare',
+ annotationQuota: 'Cota de adnotare',
},
plans: {
sandbox: {
diff --git a/web/i18n/ro-RO/common.ts b/web/i18n/ro-RO/common.ts
index 35948d3657..6720ec331b 100644
--- a/web/i18n/ro-RO/common.ts
+++ b/web/i18n/ro-RO/common.ts
@@ -63,6 +63,7 @@ const translation = {
hiIN: 'Hindi',
trTR: 'Turcă',
faIR: 'Persană',
+ plPL: 'Poloneză',
},
},
unit: {
@@ -200,6 +201,11 @@ const translation = {
disinvite: 'Anulează invitația',
deleteMember: 'Șterge membru',
you: '(Dvs.)',
+ datasetOperatorTip: 'Numai poate gestiona baza de cunoștințe',
+ builder: 'Constructor',
+ datasetOperator: 'Administrator de cunoștințe',
+ setBuilder: 'Setare ca constructor',
+ builderTip: 'Poate construi și edita propriile aplicații',
},
integrations: {
connected: 'Conectat',
@@ -346,6 +352,22 @@ const translation = {
quotaTip: 'Jetoane gratuite disponibile rămase',
loadPresets: 'Încarcă presetări',
parameters: 'PARAMETRI',
+ loadBalancingHeadline: 'Echilibrare',
+ loadBalancingInfo: 'În mod implicit, echilibrarea încărcării utilizează strategia Round-robin. Dacă se declanșează limitarea ratei, se va aplica o perioadă de reactivare de 1 minut.',
+ loadBalancing: 'Echilibrare',
+ apiKeyRateLimit: 'Limita de viteză a fost atinsă, disponibilă după {{secunde}}s',
+ providerManaged: 'Gestionat de furnizor',
+ providerManagedDescription: 'Utilizați setul unic de acreditări furnizat de furnizorul de modele.',
+ defaultConfig: 'Configurație implicită',
+ addConfig: 'Adăugați configurație',
+ apiKey: 'CHEIE API',
+ modelHasBeenDeprecated: 'Acest model a fost depreciat',
+ loadBalancingDescription: 'Reduceți presiunea cu mai multe seturi de acreditări.',
+ apiKeyStatusNormal: 'Starea APIKey este normală',
+ loadBalancingLeastKeyWarning: 'Pentru a activa echilibrarea încărcării trebuie activate cel puțin 2 chei.',
+ editConfig: 'Editați configurația',
+ configLoadBalancing: 'Echilibrarea încărcării de configurare',
+ upgradeForLoadBalancing: 'Actualizați-vă planul pentru a activa Load Balancing.',
},
dataSource: {
add: 'Adăugați o sursă de date',
@@ -369,6 +391,15 @@ const translation = {
preview: 'PREVIZUALIZARE',
},
},
+ website: {
+ inactive: 'Inactiv',
+ description: 'Importați conținut de pe site-uri web folosind crawlerul web.',
+ active: 'Activ',
+ with: 'Cu',
+ title: 'Site-ul web',
+ configuredCrawlers: 'Crawlere configurate',
+ },
+ configure: 'Configura',
},
plugin: {
serpapi: {
@@ -537,6 +568,10 @@ const translation = {
created: 'Etichetă creată cu succes',
failed: 'Crearea etichetei a eșuat',
},
+ errorMsg: {
+ fieldRequired: '{{câmp}} este obligatoriu',
+ urlError: 'URL-ul ar trebui să înceapă cu http:// sau https://',
+ },
}
export default translation
diff --git a/web/i18n/ro-RO/dataset-creation.ts b/web/i18n/ro-RO/dataset-creation.ts
index 89e614e00c..ae1adbc8b2 100644
--- a/web/i18n/ro-RO/dataset-creation.ts
+++ b/web/i18n/ro-RO/dataset-creation.ts
@@ -50,6 +50,30 @@ const translation = {
confirmButton: 'Creează',
failed: 'Crearea a eșuat',
},
+ website: {
+ crawlSubPage: 'Accesarea cu crawlere a subpaginilor',
+ limit: 'Limită',
+ selectAll: 'Selectează tot',
+ configure: 'Configura',
+ preview: 'Previzualizare',
+ run: 'Alerga',
+ maxDepth: 'Adâncime maximă',
+ firecrawlDoc: 'Documente Firecrawl',
+ options: 'Opțiuni',
+ exceptionErrorTitle: 'A apărut o excepție în timpul rulării lucrării Firecrawl:',
+ firecrawlTitle: 'Extrageți conținut web cu 🔥Firecrawl',
+ unknownError: 'Eroare necunoscută',
+ scrapTimeInfo: 'Pagini răzuite {{total}} în total în {{timp}}s',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ excludePaths: 'Excluderea căilor',
+ resetAll: 'Resetați toate',
+ extractOnlyMainContent: 'Extrageți doar conținutul principal (fără anteturi, navigări, subsoluri etc.)',
+ fireCrawlNotConfiguredDescription: 'Configurați Firecrawl cu cheia API pentru a-l utiliza.',
+ fireCrawlNotConfigured: 'Firecrawl nu este configurat',
+ includeOnlyPaths: 'Includeți numai căi',
+ totalPageScraped: 'Total pagini răzuite:',
+ maxDepthTooltip: 'Adâncimea maximă de accesat cu crawlere în raport cu adresa URL introdusă. Adâncimea 0 doar răzuiește pagina URL-ului introdus, adâncimea 1 răzuiește url-ul și tot ceea ce după ce a introdusURL + un / și așa mai departe.',
+ },
},
stepTwo: {
segmentation: 'Setări de segmentare',
@@ -107,6 +131,8 @@ const translation = {
indexSettedTip: 'Pentru a modifica metoda de indexare, vă rugăm să mergeți la ',
retrivalSettedTip: 'Pentru a modifica metoda de indexare, vă rugăm să mergeți la ',
datasetSettingLink: 'setările Cunoștinței.',
+ webpageUnit: 'Pagini',
+ websiteSource: 'Site-ul web de preprocesare',
},
stepThree: {
creationTitle: '🎉 Cunoștință creată',
@@ -125,6 +151,11 @@ const translation = {
modelButtonConfirm: 'Confirmă',
modelButtonCancel: 'Anulează',
},
+ firecrawl: {
+ configFirecrawl: 'Configurați 🔥Firecrawl',
+ getApiKeyLinkText: 'Obțineți cheia API de la firecrawl.dev',
+ apiKeyPlaceholder: 'Cheie API de la firecrawl.dev',
+ },
}
export default translation
diff --git a/web/i18n/ro-RO/dataset-documents.ts b/web/i18n/ro-RO/dataset-documents.ts
index a7c0bf5d51..ed8720e35a 100644
--- a/web/i18n/ro-RO/dataset-documents.ts
+++ b/web/i18n/ro-RO/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: 'STARE',
action: 'ACȚIUNE',
},
+ name: 'Nume',
+ rename: 'Redenumire',
},
action: {
uploadFile: 'Încarcă un fișier nou',
@@ -74,6 +76,7 @@ const translation = {
error: 'Eroare la import',
ok: 'OK',
},
+ addUrl: 'Adăugați adresa URL',
},
metadata: {
title: 'Metadate',
diff --git a/web/i18n/ro-RO/dataset-settings.ts b/web/i18n/ro-RO/dataset-settings.ts
index c0f9e76aeb..54780f9c16 100644
--- a/web/i18n/ro-RO/dataset-settings.ts
+++ b/web/i18n/ro-RO/dataset-settings.ts
@@ -27,6 +27,8 @@ const translation = {
longDescription: ' despre metoda de recuperare, o puteți schimba în orice moment în setările cunoștințelor.',
},
save: 'Salvare',
+ permissionsInvitedMembers: 'Membri parțiali ai echipei',
+ me: '(Tu)',
},
}
diff --git a/web/i18n/ro-RO/login.ts b/web/i18n/ro-RO/login.ts
index c8a0fad91c..b692b7c386 100644
--- a/web/i18n/ro-RO/login.ts
+++ b/web/i18n/ro-RO/login.ts
@@ -54,6 +54,7 @@ const translation = {
nameEmpty: 'Numele este obligatoriu',
passwordEmpty: 'Parola este obligatorie',
passwordInvalid: 'Parola trebuie să conțină litere și cifre, iar lungimea trebuie să fie mai mare de 8 caractere',
+ passwordLengthInValid: 'Parola trebuie să aibă cel puțin 8 caractere',
},
license: {
tip: 'Înainte de a începe Dify Community Edition, citește',
diff --git a/web/i18n/ro-RO/tools.ts b/web/i18n/ro-RO/tools.ts
index e878162426..165bdb26ed 100644
--- a/web/i18n/ro-RO/tools.ts
+++ b/web/i18n/ro-RO/tools.ts
@@ -5,6 +5,7 @@ const translation = {
all: 'Toate',
builtIn: 'Incorporat',
custom: 'Personalizat',
+ workflow: 'Flux de lucru',
},
contribute: {
line1: 'Sunt interesat să ',
@@ -73,6 +74,29 @@ const translation = {
privacyPolicyPlaceholder: 'Vă rugăm să introduceți politica de confidențialitate',
deleteToolConfirmTitle: 'Ștergeți această unealtă?',
deleteToolConfirmContent: ' Ștergerea uneltă este irreversibilă. Utilizatorii nu vor mai putea accesa uneltă dvs.',
+ toolInput: {
+ methodParameter: 'Parametru',
+ description: 'Descriere',
+ methodSetting: 'Setare',
+ methodSettingTip: 'Utilizatorul completează configurația instrumentului',
+ methodParameterTip: 'Completări LLM în timpul inferenței',
+ name: 'Nume',
+ descriptionPlaceholder: 'Descrierea semnificației parametrului',
+ label: 'Tags',
+ required: 'Necesar',
+ method: 'Metodă',
+ title: 'Intrare instrument',
+ labelPlaceholder: 'Alegeți etichetele (opțional)',
+ },
+ descriptionPlaceholder: 'Scurtă descriere a scopului instrumentului, de exemplu, obțineți temperatura pentru o anumită locație.',
+ nameForToolCall: 'Numele apelului instrumentului',
+ description: 'Descriere',
+ confirmTip: 'Aplicațiile care folosesc acest instrument vor fi afectate',
+ nameForToolCallPlaceHolder: 'Utilizat pentru recunoașterea mașinii, cum ar fi getCurrentWeather, list_pets',
+ customDisclaimer: 'Declinarea responsabilității personalizate',
+ confirmTitle: 'Confirmați pentru a salva?',
+ customDisclaimerPlaceholder: 'Vă rugăm să introduceți declinarea responsabilității personalizate',
+ nameForToolCallTip: 'Acceptă doar numere, litere și caractere de subliniere.',
},
test: {
title: 'Testează',
@@ -112,6 +136,18 @@ const translation = {
toolRemoved: 'Instrument eliminat',
notAuthorized: 'Instrument neautorizat',
howToGet: 'Cum să obții',
+ addToolModal: {
+ added: 'adăugat',
+ category: 'categorie',
+ manageInTools: 'Gestionați în Instrumente',
+ add: 'adăuga',
+ type: 'tip',
+ emptyTitle: 'Nu este disponibil niciun instrument de flux de lucru',
+ emptyTip: 'Accesați "Flux de lucru -> Publicați ca instrument"',
+ },
+ openInStudio: 'Deschide în Studio',
+ customToolTip: 'Aflați mai multe despre instrumentele personalizate Dify',
+ toolNameUsageTip: 'Numele de apel al instrumentului pentru raționamentul și solicitarea agentului',
}
export default translation
diff --git a/web/i18n/ro-RO/workflow.ts b/web/i18n/ro-RO/workflow.ts
index 9cbd2c0d7e..0bfe38c0a5 100644
--- a/web/i18n/ro-RO/workflow.ts
+++ b/web/i18n/ro-RO/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: 'Gestionează în instrumente',
workflowAsToolTip: 'Reconfigurarea instrumentului este necesară după actualizarea fluxului de lucru.',
viewDetailInTracingPanel: 'Vezi detalii',
+ overwriteAndImport: 'Suprascriere și import',
+ chooseDSL: 'Alegeți fișierul DSL(yml)',
+ syncingData: 'Sincronizarea datelor, doar câteva secunde.',
+ importDSL: 'Importați DSL',
+ importFailure: 'Eșecul importului',
+ importSuccess: 'Succesul importului',
+ backupCurrentDraft: 'Backup curent draft',
+ importDSLTip: 'Proiectul curent va fi suprascris. Exportați fluxul de lucru ca backup înainte de import.',
},
env: {
envPanelTitle: 'Variabile de Mediu',
@@ -178,6 +186,7 @@ const translation = {
'transform': 'Transformare',
'utilities': 'Utilități',
'noResult': 'Niciun rezultat găsit',
+ 'searchTool': 'Instrument de căutare',
},
blocks: {
'start': 'Începe',
@@ -407,6 +416,7 @@ const translation = {
enterValue: 'Introduceți valoarea',
addCondition: 'Adăugați condiție',
conditionNotSetup: 'Condiția NU este setată',
+ selectVariable: 'Selectați variabila...',
},
variableAssigner: {
title: 'Atribuie variabile',
@@ -502,6 +512,25 @@ const translation = {
iteration_other: '{{count}} Iterații',
currentIteration: 'Iterație curentă',
},
+ note: {
+ editor: {
+ small: 'Mic',
+ bold: 'Îndrăzneț',
+ unlink: 'Deconecta',
+ strikethrough: 'Tăiere',
+ invalidUrl: 'URL nevalidă',
+ medium: 'Medie',
+ openLink: 'Deschide',
+ large: 'Mare',
+ enterUrl: 'Introduceți adresa URL...',
+ italic: 'Cursiv',
+ placeholder: 'Scrie-ți notița...',
+ link: 'Legătură',
+ bulletList: 'Lista de marcatori',
+ showAuthor: 'Afișați autorul',
+ },
+ addNote: 'Adăugați o notă',
+ },
},
tracing: {
stopBy: 'Oprit de {{user}}',
diff --git a/web/i18n/ru-RU/app.ts b/web/i18n/ru-RU/app.ts
index 301961eee9..f5f45e65f1 100644
--- a/web/i18n/ru-RU/app.ts
+++ b/web/i18n/ru-RU/app.ts
@@ -128,6 +128,11 @@ const translation = {
removeConfirmContent: 'Текущая конфигурация используется, ее удаление отключит функцию трассировки.',
},
},
+ answerIcon: {
+ title: 'Использование значка WebApp для замены 🤖',
+ description: 'Следует ли использовать значок WebApp для замены 🤖 в общем приложении',
+ descriptionInExplore: 'Следует ли использовать значок WebApp для замены 🤖 в разделе "Обзор"',
+ },
}
export default translation
diff --git a/web/i18n/tr-TR/app-overview.ts b/web/i18n/tr-TR/app-overview.ts
index f0ee4f0fe4..721bac0000 100644
--- a/web/i18n/tr-TR/app-overview.ts
+++ b/web/i18n/tr-TR/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Workflow Adımları',
show: 'Göster',
hide: 'Gizle',
+ showDesc: 'WebApp\'te iş akışı ayrıntılarını gösterme veya gizleme',
+ subTitle: 'İş Akışı Detayları',
},
chatColorTheme: 'Sohbet renk teması',
chatColorThemeDesc: 'Sohbet botunun renk temasını ayarlayın',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'Özel ifşa metnini girin',
customDisclaimerTip: 'Özel ifşa metni istemci tarafında görüntülenecek ve uygulama hakkında ek bilgiler sağlayacak',
},
+ sso: {
+ title: 'WebApp SSO\'su',
+ tooltip: 'WebApp SSO\'yu etkinleştirmek için yöneticiyle iletişime geçin',
+ label: 'SSO Kimlik Doğrulaması',
+ description: 'Tüm kullanıcıların WebApp\'i kullanmadan önce SSO ile oturum açmaları gerekir',
+ },
},
embedded: {
entry: 'Gömülü',
diff --git a/web/i18n/tr-TR/app.ts b/web/i18n/tr-TR/app.ts
index fb1ac36762..09cb680f50 100644
--- a/web/i18n/tr-TR/app.ts
+++ b/web/i18n/tr-TR/app.ts
@@ -122,6 +122,12 @@ const translation = {
removeConfirmTitle: '{{key}} yapılandırmasını kaldır?',
removeConfirmContent: 'Mevcut yapılandırma kullanımda, kaldırılması İzleme özelliğini kapatacaktır.',
},
+ view: 'Görünüm',
+ },
+ answerIcon: {
+ descriptionInExplore: 'Keşfet\'te değiştirilecek 🤖 WebApp simgesinin kullanılıp kullanılmayacağı',
+ title: 'Değiştirmek 🤖 için WebApp simgesini kullanın',
+ description: 'Paylaşılan uygulamada değiştirmek 🤖 için WebApp simgesinin kullanılıp kullanılmayacağı',
},
}
diff --git a/web/i18n/tr-TR/dataset.ts b/web/i18n/tr-TR/dataset.ts
index 31d483f504..4bc16fb4b9 100644
--- a/web/i18n/tr-TR/dataset.ts
+++ b/web/i18n/tr-TR/dataset.ts
@@ -53,6 +53,7 @@ const translation = {
semantic_search: 'VEKTÖR',
full_text_search: 'TAM METİN',
hybrid_search: 'HİBRİT',
+ invertedIndex: 'TERS',
},
mixtureHighQualityAndEconomicTip: 'Yüksek kaliteli ve ekonomik bilgi tabanlarının karışımı için Yeniden Sıralama modeli gereklidir.',
inconsistentEmbeddingModelTip: 'Seçilen bilgi tabanlarının Yerleştirme modelleri tutarsızsa Yeniden Sıralama modeli gereklidir.',
diff --git a/web/i18n/tr-TR/workflow.ts b/web/i18n/tr-TR/workflow.ts
index dd5fe17c37..a0f9c55125 100644
--- a/web/i18n/tr-TR/workflow.ts
+++ b/web/i18n/tr-TR/workflow.ts
@@ -186,6 +186,7 @@ const translation = {
'transform': 'Dönüştür',
'utilities': 'Yardımcı Araçlar',
'noResult': 'Eşleşen bulunamadı',
+ 'searchTool': 'Arama aracı',
},
blocks: {
'start': 'Başlat',
@@ -365,6 +366,7 @@ const translation = {
'custom': 'Özel',
'api-key-title': 'API Anahtarı',
'header': 'Başlık',
+ 'auth-type': 'Kimlik Doğrulama Türü',
},
insertVarPlaceholder: 'değişkeni eklemek için \'/\' yazın',
timeout: {
@@ -417,7 +419,6 @@ const translation = {
conditionNotSetup: 'Koşul AYARLANMADI',
selectVariable: 'Değişken seçin...',
},
-
variableAssigner: {
title: 'Değişken ata',
outputType: 'Çıktı Türü',
diff --git a/web/i18n/uk-UA/app-api.ts b/web/i18n/uk-UA/app-api.ts
index 62385e43e7..0218a61baf 100644
--- a/web/i18n/uk-UA/app-api.ts
+++ b/web/i18n/uk-UA/app-api.ts
@@ -61,6 +61,23 @@ const translation = {
pathParams: 'Параметри шляху',
query: 'Запит',
},
+ completionMode: {
+ messageIDTip: 'Ідентифікатор повідомлення',
+ streaming: 'Потокове передавання повертається. Реалізація повернення потокового мовлення на основі SSE (Server-Sent Events).',
+ blocking: 'Тип блокування, очікування завершення виконання та повернення результатів. (Запити можуть бути перервані, якщо процес тривалий)',
+ title: 'API програми для завершення',
+ ratingTip: 'Подобається чи не подобається, null – це скасувати',
+ createCompletionApiTip: 'Створіть повідомлення про завершення, щоб підтримувати режим запитань і відповідей.',
+ parametersApi: 'Отримання інформації про параметри програми',
+ queryTips: 'Текстовий контент, що вводиться користувачем.',
+ createCompletionApi: 'Створити повідомлення про завершення',
+ messageFeedbackApi: 'Відгук у повідомленні (подобається)',
+ messageFeedbackApiTip: 'Оцінюйте отримані повідомлення від імені кінцевих користувачів з лайками або дизлайками. Ці дані відображаються на сторінці «Журнали та анотації» та використовуються для доопрацювання майбутньої моделі.',
+ info: 'Для створення високоякісного тексту, такого як статті, резюме та переклади, використовуйте API повідомлень про завершення з введенням користувачем. Генерація тексту залежить від параметрів моделі та шаблонів підказок, встановлених у Dify Prompt Engineering.',
+ inputsTips: '(Необов\'язково.) Надайте поля введення користувача у вигляді пар ключ-значення, що відповідають змінним у Prompt Eng. Key — це ім\'я змінної, Value — значення параметра. Якщо вибрано тип поля Вибір, надіслане значення має бути одним із попередньо встановлених варіантів.',
+ parametersApiTip: 'Отримання налаштованих вхідних параметрів, включаючи імена змінних, імена полів, типи та значення за замовчуванням. Зазвичай використовується для відображення цих полів у формі або заповнення значень за замовчуванням після завантаження клієнта.',
+ },
+ loading: 'Завантаження',
}
export default translation
diff --git a/web/i18n/uk-UA/app-overview.ts b/web/i18n/uk-UA/app-overview.ts
index 295773a411..11c88c5699 100644
--- a/web/i18n/uk-UA/app-overview.ts
+++ b/web/i18n/uk-UA/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Кроки робочого процесу',
show: 'Показати',
hide: 'Приховати',
+ subTitle: 'Деталі робочого процесу',
+ showDesc: 'Відображення або приховування відомостей про робочий процес у веб-програмі',
},
chatColorTheme: 'Тема кольору чату',
chatColorThemeDesc: 'Встановіть тему кольору чат-бота',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'Введіть відмову від відповідальності',
customDisclaimerTip: 'Відображається на клієнтському боці, щоб визначити відповідальність за використання додатка',
},
+ sso: {
+ title: 'Єдиний вхід для WebApp',
+ description: 'Усі користувачі повинні увійти в систему за допомогою єдиного входу перед використанням WebApp',
+ tooltip: 'Зверніться до адміністратора, щоб увімкнути єдиний вхід WebApp',
+ label: 'Автентифікація за допомогою єдиного входу',
+ },
},
embedded: {
entry: 'Вбудоване',
diff --git a/web/i18n/uk-UA/app.ts b/web/i18n/uk-UA/app.ts
index fbe9eea81e..c8fb4ca7d4 100644
--- a/web/i18n/uk-UA/app.ts
+++ b/web/i18n/uk-UA/app.ts
@@ -122,7 +122,17 @@ const translation = {
removeConfirmTitle: 'Видалити налаштування {{key}}?',
removeConfirmContent: 'Поточне налаштування використовується, його видалення вимкне функцію Відстеження.',
},
+ view: 'Вид',
},
+ answerIcon: {
+ title: 'Використовуйте піктограму WebApp для заміни 🤖',
+ description: 'Чи слід використовувати піктограму WebApp для заміни 🤖 у спільній програмі',
+ descriptionInExplore: 'Чи використовувати піктограму веб-програми для заміни 🤖 в Огляді',
+ },
+ importFromDSLUrl: 'З URL',
+ importFromDSL: 'Імпорт з DSL',
+ importFromDSLUrlPlaceholder: 'Вставте посилання на DSL тут',
+ importFromDSLFile: 'З DSL-файлу',
}
export default translation
diff --git a/web/i18n/uk-UA/billing.ts b/web/i18n/uk-UA/billing.ts
index afc434e652..cebdb11521 100644
--- a/web/i18n/uk-UA/billing.ts
+++ b/web/i18n/uk-UA/billing.ts
@@ -58,6 +58,9 @@ const translation = {
ragAPIRequest: 'RAG API запити',
agentMode: 'Режим агента',
workflow: 'Робочий процес',
+ bulkUpload: 'Масове завантаження документів',
+ llmLoadingBalancing: 'Балансування навантаження LLM',
+ llmLoadingBalancingTooltip: 'Додавайте кілька ключів API до моделей, ефективно обходячи обмеження швидкості API.',
},
comingSoon: 'Скоро',
member: 'Учасник',
@@ -72,6 +75,8 @@ const translation = {
},
ragAPIRequestTooltip: 'Відноситься до кількості викликів API, що викликають лише можливості обробки бази знань Dify.',
receiptInfo: 'Лише власник команди та адміністратор команди можуть підписуватися та переглядати інформацію про виставлення рахунків',
+ annotationQuota: 'Квота анотацій',
+ documentsUploadQuota: 'Квота завантаження документів',
},
plans: {
sandbox: {
diff --git a/web/i18n/uk-UA/common.ts b/web/i18n/uk-UA/common.ts
index 644df7d62a..ed197f9322 100644
--- a/web/i18n/uk-UA/common.ts
+++ b/web/i18n/uk-UA/common.ts
@@ -201,6 +201,11 @@ const translation = {
disinvite: 'Скасувати запрошення',
deleteMember: 'Видалити учасника',
you: '(Ви)',
+ builder: 'Будівник',
+ datasetOperatorTip: 'Тільки може управляти базою знань',
+ datasetOperator: 'Адміністратор знань',
+ setBuilder: 'Встановити як будівельник',
+ builderTip: 'Може створювати та редагувати власні програми',
},
integrations: {
connected: 'Підключено',
@@ -345,8 +350,25 @@ const translation = {
deprecated: 'Застарілий',
confirmDelete: 'підтвердити видалення?',
quotaTip: 'Залишилося доступних безкоштовних токенів',
- loadPresets: 'Завантажити', // If need adjustment, provide more context on 'Load Presets' function
+ // If need adjustment, provide more context on 'Load Presets' function
+ loadPresets: 'Завантажити',
parameters: 'ПАРАМЕТРИ',
+ apiKeyStatusNormal: 'Статус APIKey нормальний',
+ loadBalancing: 'Балансування навантаження',
+ editConfig: 'Редагувати конфігурацію',
+ loadBalancingHeadline: 'Балансування навантаження',
+ apiKey: 'API-КЛЮЧ',
+ defaultConfig: 'Конфігурація за замовчуванням',
+ providerManaged: 'Під управлінням провайдера',
+ loadBalancingDescription: 'Зменшіть тиск за допомогою кількох наборів облікових даних.',
+ modelHasBeenDeprecated: 'Ця модель вважається застарілою',
+ addConfig: 'Додати конфігурацію',
+ configLoadBalancing: 'Балансування навантаження конфігурації',
+ upgradeForLoadBalancing: 'Оновіть свій план, щоб увімкнути балансування навантаження.',
+ apiKeyRateLimit: 'Було досягнуто ліміту швидкості, доступного після {{seconds}}',
+ providerManagedDescription: 'Використовуйте єдиний набір облікових даних, наданий постачальником моделі.',
+ loadBalancingLeastKeyWarning: 'Щоб увімкнути балансування навантаження, має бути ввімкнено щонайменше 2 клавіші.',
+ loadBalancingInfo: 'За замовчуванням для балансування навантаження використовується стратегія кругової системи. Якщо спрацьовує обмеження швидкості, буде застосовано період перезарядки тривалістю 1 хвилина.',
},
dataSource: {
add: 'Додати джерело даних',
@@ -370,6 +392,15 @@ const translation = {
preview: 'ПЕРЕДПЕРЕГЛЯД',
},
},
+ website: {
+ with: 'З',
+ active: 'Активний',
+ inactive: 'Неактивні',
+ configuredCrawlers: 'Налаштовані обхідні роботи',
+ title: 'Веб-сторінка',
+ description: 'Імпортуйте вміст із веб-сайтів за допомогою веб-сканера.',
+ },
+ configure: 'Настроїти',
},
plugin: {
serpapi: {
@@ -538,6 +569,10 @@ const translation = {
created: 'Тег створено успішно',
failed: 'Не вдалося створити тег',
},
+ errorMsg: {
+ fieldRequired: '{{field}} є обов\'язковим',
+ urlError: 'URL-адреса повинна починатися з http:// або https://',
+ },
}
export default translation
diff --git a/web/i18n/uk-UA/dataset-creation.ts b/web/i18n/uk-UA/dataset-creation.ts
index 6c0099a771..5367519fc3 100644
--- a/web/i18n/uk-UA/dataset-creation.ts
+++ b/web/i18n/uk-UA/dataset-creation.ts
@@ -50,6 +50,30 @@ const translation = {
confirmButton: 'Створити',
failed: 'Створення не вдалося',
},
+ website: {
+ totalPageScraped: 'Всього вискоблених сторінок:',
+ run: 'Бігти',
+ configure: 'Настроїти',
+ limit: 'Межа',
+ selectAll: 'Вибрати все',
+ unknownError: 'Невідома помилка',
+ maxDepth: 'Максимальна глибина',
+ crawlSubPage: 'Сканування підсторінок',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ preview: 'Попередній перегляд',
+ fireCrawlNotConfigured: 'Firecrawl не налаштовано',
+ includeOnlyPaths: 'Включати лише контури',
+ options: 'Параметри',
+ resetAll: 'Скинути все',
+ excludePaths: 'Виключення контурів',
+ firecrawlDoc: 'Документація Firecrawl',
+ exceptionErrorTitle: 'Виняток стався під час виконання завдання Firecrawl:',
+ firecrawlTitle: 'Видобування веб-вмісту за допомогою 🔥Firecrawl',
+ scrapTimeInfo: 'Викрадено {{total}} сторінок загалом протягом {{time}}s',
+ fireCrawlNotConfiguredDescription: 'Налаштуйте Firecrawl за допомогою ключа API, щоб використовувати його.',
+ extractOnlyMainContent: 'Витягуйте лише основний контент (без заголовків, навігаторів, нижніх колонтитулів тощо)',
+ maxDepthTooltip: 'Максимальна глибина для сканування щодо введеної URL-адреси. Глибина 0 просто зішкрібає сторінку введеного url, глибина 1 шкребе url і все після введеногоURL + один /, і так далі.',
+ },
},
stepTwo: {
segmentation: 'Налаштування фрагментації',
@@ -107,6 +131,8 @@ const translation = {
indexSettedTip: 'Щоб змінити метод індексування, будь ласка, перейдіть до ',
retrivalSettedTip: 'Щоб змінити метод індексування, будь ласка, перейдіть до ',
datasetSettingLink: 'Налаштування знань.',
+ webpageUnit: 'Сторінок',
+ websiteSource: 'Веб-сайт попередньої обробки',
},
stepThree: {
creationTitle: '🎉 Знання створено',
@@ -125,6 +151,11 @@ const translation = {
modelButtonConfirm: 'Підтвердити',
modelButtonCancel: 'Скасувати',
},
+ firecrawl: {
+ getApiKeyLinkText: 'Отримайте свій API-ключ від firecrawl.dev',
+ configFirecrawl: 'Налаштування 🔥Firecrawl',
+ apiKeyPlaceholder: 'Ключ API від firecrawl.dev',
+ },
}
export default translation
diff --git a/web/i18n/uk-UA/dataset-documents.ts b/web/i18n/uk-UA/dataset-documents.ts
index 90b686ba08..0b20d534e7 100644
--- a/web/i18n/uk-UA/dataset-documents.ts
+++ b/web/i18n/uk-UA/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: 'СТАТУС',
action: 'ДІЯ',
},
+ name: 'Ім\'я',
+ rename: 'Перейменувати',
},
action: {
uploadFile: 'Завантажити новий файл',
@@ -74,6 +76,7 @@ const translation = {
error: 'Помилка імпорту',
ok: 'ОК',
},
+ addUrl: 'Додати URL-адресу',
},
metadata: {
title: 'Метадані',
diff --git a/web/i18n/uk-UA/dataset-settings.ts b/web/i18n/uk-UA/dataset-settings.ts
index 4ea1e24f26..85e80902a7 100644
--- a/web/i18n/uk-UA/dataset-settings.ts
+++ b/web/i18n/uk-UA/dataset-settings.ts
@@ -27,6 +27,8 @@ const translation = {
longDescription: ' про метод вибірки, ви можете змінити це будь-коли в налаштуваннях бази знань.',
},
save: 'Зберегти',
+ me: '(Ви)',
+ permissionsInvitedMembers: 'Часткові члени команди',
},
}
diff --git a/web/i18n/uk-UA/login.ts b/web/i18n/uk-UA/login.ts
index 46de22bec2..77cec5ceed 100644
--- a/web/i18n/uk-UA/login.ts
+++ b/web/i18n/uk-UA/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: 'Ім\'я обов\'язкове',
passwordEmpty: 'Пароль є обов’язковим',
passwordInvalid: 'Пароль повинен містити літери та цифри, а довжина повинна бути більшою за 8',
+ passwordLengthInValid: 'Пароль повинен бути не менше 8 символів',
},
license: {
tip: 'Перед запуском Dify Community Edition ознайомтеся з ліцензією з відкритим кодом на GitHub',
@@ -68,6 +69,7 @@ const translation = {
activated: 'Увійти зараз',
adminInitPassword: 'Пароль ініціалізації адміністратора',
validate: 'Перевірити',
+ sso: 'Продовжуйте працювати з SSW',
}
export default translation
diff --git a/web/i18n/uk-UA/share-app.ts b/web/i18n/uk-UA/share-app.ts
index 9a121aaadc..4b794ea974 100644
--- a/web/i18n/uk-UA/share-app.ts
+++ b/web/i18n/uk-UA/share-app.ts
@@ -27,7 +27,6 @@ const translation = {
tryToSolve: 'Спробувати вирішити',
temporarySystemIssue: 'Вибачте, тимчасова системна проблема.',
},
-
generation: {
tabs: {
create: 'Запустити один раз',
@@ -65,7 +64,6 @@ const translation = {
moreThanMaxLengthLine: 'Рядок {{rowIndex}}: значення {{varName}} не може містити більше {{maxLength}} символів',
atLeastOne: 'Будь ласка, введіть принаймні один рядок у завантажений файл.',
},
-
},
}
diff --git a/web/i18n/uk-UA/tools.ts b/web/i18n/uk-UA/tools.ts
index 313332e3a4..309a450afc 100644
--- a/web/i18n/uk-UA/tools.ts
+++ b/web/i18n/uk-UA/tools.ts
@@ -5,6 +5,7 @@ const translation = {
all: 'Усі',
builtIn: 'Вбудовані',
custom: 'Користувацькі',
+ workflow: 'Робочий процес',
},
contribute: {
line1: 'Мені цікаво зробити свій внесок',
@@ -67,6 +68,7 @@ const translation = {
bearer: 'Bearer',
custom: 'Custom',
},
+ title: 'Тип аутентифікації',
},
privacyPolicy: 'Політика конфіденційності',
privacyPolicyPlaceholder: 'Введіть політику конфіденційності',
@@ -74,8 +76,28 @@ const translation = {
customDisclaimerPlaceholder: 'Введіть власні відомості',
deleteToolConfirmTitle: 'Видалити цей інструмент?',
deleteToolConfirmContent: 'Видалення інструменту є незворотнім. Користувачі більше не зможуть отримати доступ до вашого інструменту.',
+ toolInput: {
+ label: 'Мітки',
+ name: 'Ім\'я',
+ required: 'Необхідний',
+ method: 'Метод',
+ title: 'Введення інструменту',
+ methodSetting: 'Параметр',
+ description: 'Опис',
+ methodParameter: 'Параметр',
+ labelPlaceholder: 'Виберіть теги (необов\'язково)',
+ descriptionPlaceholder: 'Опис значення параметра',
+ methodSettingTip: 'Користувач заповнює конфігурацію інструменту',
+ methodParameterTip: 'LLM заповнюється під час логічного висновку',
+ },
+ description: 'Опис',
+ nameForToolCall: 'Ім\'я виклику інструменту',
+ confirmTitle: 'Підтвердьте, щоб зберегти?',
+ nameForToolCallTip: 'Підтримує лише цифри, літери та підкреслення.',
+ confirmTip: 'Це вплине на програми, які використовують цей інструмент',
+ nameForToolCallPlaceHolder: 'Використовується для розпізнавання машин, таких як getCurrentWeather, list_pets',
+ descriptionPlaceholder: 'Короткий опис призначення інструменту, наприклад, отримання температури для конкретного місця.',
},
-
test: {
title: 'Тест',
parametersValue: 'Параметри та значення',
@@ -114,6 +136,18 @@ const translation = {
toolRemoved: 'Інструмент видалено',
notAuthorized: 'Інструмент не авторизовано',
howToGet: 'Як отримати',
+ addToolModal: {
+ category: 'категорія',
+ add: 'Додати',
+ added: 'Додано',
+ type: 'тип',
+ manageInTools: 'Керування в інструментах',
+ emptyTip: 'Перейдіть до розділу "Робочий процес -> Опублікувати як інструмент"',
+ emptyTitle: 'Немає доступного інструменту для роботи з робочими процесами',
+ },
+ openInStudio: 'Відкрити в Студії',
+ customToolTip: 'Дізнайтеся більше про користувацькі інструменти Dify',
+ toolNameUsageTip: 'Ім\'я виклику інструменту для міркувань і підказок агента',
}
export default translation
diff --git a/web/i18n/uk-UA/workflow.ts b/web/i18n/uk-UA/workflow.ts
index 066a245770..a2db964056 100644
--- a/web/i18n/uk-UA/workflow.ts
+++ b/web/i18n/uk-UA/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: 'Керування в інструментах',
workflowAsToolTip: 'Після оновлення робочого потоку необхідна переконфігурація інструменту.',
viewDetailInTracingPanel: 'Переглянути деталі',
+ importSuccess: 'Успіх імпорту',
+ overwriteAndImport: 'Перезапис та імпорт',
+ importFailure: 'Помилка імпорту',
+ importDSL: 'Імпорт DSL',
+ syncingData: 'Синхронізація даних, всього за кілька секунд.',
+ chooseDSL: 'Виберіть файл DSL(yml)',
+ backupCurrentDraft: 'Резервна поточна чернетка',
+ importDSLTip: 'Поточна чернетка буде перезаписана. Експортуйте робочий процес як резервну копію перед імпортом.',
},
env: {
envPanelTitle: 'Змінні середовища',
@@ -178,6 +186,7 @@ const translation = {
'transform': 'Трансформація',
'utilities': 'Утиліти',
'noResult': 'Нічого не знайдено',
+ 'searchTool': 'Інструмент пошуку',
},
blocks: {
'start': 'Початок',
@@ -407,6 +416,7 @@ const translation = {
enterValue: 'Введіть значення',
addCondition: 'Додати умову',
conditionNotSetup: 'Умова НЕ налаштована',
+ selectVariable: 'Виберіть змінну...',
},
variableAssigner: {
title: 'Присвоєння змінних',
@@ -502,6 +512,25 @@ const translation = {
iteration_other: '{{count}} Ітерацій',
currentIteration: 'Поточна ітерація',
},
+ note: {
+ editor: {
+ large: 'Великий',
+ bold: 'Жирний',
+ openLink: 'Відкривати',
+ small: 'Малий',
+ link: 'Посилання',
+ italic: 'Курсив',
+ placeholder: 'Напишіть свою замітку...',
+ strikethrough: 'Закреслені',
+ medium: 'Середнє',
+ showAuthor: 'Показати автора',
+ bulletList: 'Маркований список',
+ enterUrl: 'Введіть URL-адресу...',
+ unlink: 'Від\'єднати',
+ invalidUrl: 'Невірна URL-адреса',
+ },
+ addNote: 'Додати примітку',
+ },
},
tracing: {
stopBy: 'Зупинено користувачем {{user}}',
diff --git a/web/i18n/vi-VN/app-api.ts b/web/i18n/vi-VN/app-api.ts
index cb89b98008..384f3a5292 100644
--- a/web/i18n/vi-VN/app-api.ts
+++ b/web/i18n/vi-VN/app-api.ts
@@ -77,6 +77,7 @@ const translation = {
pathParams: 'Tham số đường dẫn',
query: 'Truy vấn',
},
+ loading: 'Tải',
}
export default translation
diff --git a/web/i18n/vi-VN/app-log.ts b/web/i18n/vi-VN/app-log.ts
index c4df7b512f..30a3988c12 100644
--- a/web/i18n/vi-VN/app-log.ts
+++ b/web/i18n/vi-VN/app-log.ts
@@ -89,7 +89,9 @@ const translation = {
iterations: 'Số lần lặp',
iteration: 'Lần lặp',
finalProcessing: 'Xử lý cuối cùng',
+ agentMode: 'Chế độ đại lý',
},
+ agentLog: 'Nhật ký đại lý',
}
export default translation
diff --git a/web/i18n/vi-VN/app-overview.ts b/web/i18n/vi-VN/app-overview.ts
index a4e6c96013..7cc7428906 100644
--- a/web/i18n/vi-VN/app-overview.ts
+++ b/web/i18n/vi-VN/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: 'Các bước quy trình',
show: 'Hiển thị',
hide: 'Ẩn',
+ showDesc: 'Hiển thị hoặc ẩn chi tiết dòng công việc trong WebApp',
+ subTitle: 'Chi tiết quy trình làm việc',
},
chatColorTheme: 'Giao diện màu trò chuyện',
chatColorThemeDesc: 'Thiết lập giao diện màu của chatbot',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: 'Nhập liên kết tuyên bố từ chối trách nhiệm',
customDisclaimerTip: 'Liên kết này sẽ hiển thị ở phía người dùng, cung cấp thông tin về trách nhiệm của ứng dụng',
},
+ sso: {
+ title: 'SSO ứng dụng web',
+ description: 'Tất cả người dùng được yêu cầu đăng nhập bằng SSO trước khi sử dụng WebApp',
+ tooltip: 'Liên hệ với quản trị viên để bật SSO WebApp',
+ label: 'Xác thực SSO',
+ },
},
embedded: {
entry: 'Nhúng',
diff --git a/web/i18n/vi-VN/app.ts b/web/i18n/vi-VN/app.ts
index 4052506f83..9e84341f63 100644
--- a/web/i18n/vi-VN/app.ts
+++ b/web/i18n/vi-VN/app.ts
@@ -122,7 +122,17 @@ const translation = {
removeConfirmTitle: 'Xóa cấu hình {{key}}?',
removeConfirmContent: 'Cấu hình hiện tại đang được sử dụng, việc xóa nó sẽ tắt tính năng Theo dõi.',
},
+ view: 'Cảnh',
},
+ answerIcon: {
+ description: 'Có nên sử dụng biểu tượng WebApp để thay thế 🤖 trong ứng dụng được chia sẻ hay không',
+ descriptionInExplore: 'Có nên sử dụng biểu tượng WebApp để thay thế 🤖 trong Khám phá hay không',
+ title: 'Sử dụng biểu tượng WebApp để thay thế 🤖',
+ },
+ importFromDSLFile: 'Từ tệp DSL',
+ importFromDSL: 'Nhập từ DSL',
+ importFromDSLUrlPlaceholder: 'Dán liên kết DSL vào đây',
+ importFromDSLUrl: 'Từ URL',
}
export default translation
diff --git a/web/i18n/vi-VN/billing.ts b/web/i18n/vi-VN/billing.ts
index 71abd8a884..595481e3a4 100644
--- a/web/i18n/vi-VN/billing.ts
+++ b/web/i18n/vi-VN/billing.ts
@@ -60,6 +60,8 @@ const translation = {
bulkUpload: 'Tải lên tài liệu hàng loạt',
agentMode: 'Chế độ Đại lý',
workflow: 'Quy trình làm việc',
+ llmLoadingBalancing: 'Cân bằng tải LLM',
+ llmLoadingBalancingTooltip: 'Thêm nhiều khóa API vào mô hình, vượt qua giới hạn tốc độ API một cách hiệu quả.',
},
comingSoon: 'Sắp ra mắt',
member: 'Thành viên',
@@ -74,6 +76,7 @@ const translation = {
},
ragAPIRequestTooltip: 'Đề cập đến số lượng cuộc gọi API triệu hồi chỉ khả năng xử lý cơ sở kiến thức của Dify.',
receiptInfo: 'Chỉ chủ nhóm và quản trị viên nhóm có thể đăng ký và xem thông tin thanh toán',
+ annotationQuota: 'Hạn ngạch chú thích',
},
plans: {
sandbox: {
diff --git a/web/i18n/vi-VN/common.ts b/web/i18n/vi-VN/common.ts
index 5c3d7410de..a3eee07348 100644
--- a/web/i18n/vi-VN/common.ts
+++ b/web/i18n/vi-VN/common.ts
@@ -201,6 +201,11 @@ const translation = {
disinvite: 'Hủy lời mời',
deleteMember: 'Xóa thành viên',
you: '(Bạn)',
+ datasetOperatorTip: 'Chỉ có thể quản lý cơ sở kiến thức',
+ builderTip: 'Có thể xây dựng và chỉnh sửa ứng dụng của riêng mình',
+ builder: 'Chủ thầu',
+ datasetOperator: 'Quản trị viên kiến thức',
+ setBuilder: 'Đặt làm trình tạo',
},
integrations: {
connected: 'Đã kết nối',
@@ -347,6 +352,22 @@ const translation = {
quotaTip: 'Số lượng mã thông báo miễn phí còn lại',
loadPresets: 'Tải Cài đặt trước',
parameters: 'THAM SỐ',
+ loadBalancingHeadline: 'Cân bằng tải',
+ loadBalancing: 'Cân bằng tải',
+ configLoadBalancing: 'Cấu hình cân bằng tải',
+ defaultConfig: 'Cấu hình mặc định',
+ modelHasBeenDeprecated: 'Mô hình này đã bị phản đối',
+ providerManagedDescription: 'Sử dụng bộ thông tin đăng nhập duy nhất do nhà cung cấp mô hình cung cấp.',
+ apiKeyStatusNormal: 'Trạng thái APIKey bình thường',
+ editConfig: 'Chỉnh sửa cấu hình',
+ loadBalancingInfo: 'Theo mặc định, cân bằng tải sử dụng chiến lược Vòng tròn. Nếu giới hạn tốc độ được kích hoạt, thời gian hồi chiêu 1 phút sẽ được áp dụng.',
+ addConfig: 'Thêm cấu hình',
+ loadBalancingDescription: 'Giảm áp lực với nhiều bộ thông tin xác thực.',
+ apiKey: 'KHÓA API',
+ providerManaged: 'Nhà cung cấp được quản lý',
+ apiKeyRateLimit: 'Đã đạt đến giới hạn tốc độ, có sẵn sau {{giây}} giây',
+ upgradeForLoadBalancing: 'Nâng cấp gói của bạn để bật Cân bằng tải.',
+ loadBalancingLeastKeyWarning: 'Để bật cân bằng tải, ít nhất 2 phím phải được bật.',
},
dataSource: {
add: 'Thêm nguồn dữ liệu',
@@ -370,6 +391,15 @@ const translation = {
preview: 'Xem trước',
},
},
+ website: {
+ title: 'Trang mạng',
+ inactive: 'Không hoạt động',
+ with: 'Với',
+ active: 'Hoạt động',
+ configuredCrawlers: 'Trình thu thập thông tin đã định cấu hình',
+ description: 'Nhập nội dung từ các trang web bằng trình thu thập dữ liệu web.',
+ },
+ configure: 'Cấu hình',
},
plugin: {
serpapi: {
@@ -538,6 +568,10 @@ const translation = {
created: 'Thẻ được tạo thành công',
failed: 'Tạo thẻ không thành công',
},
+ errorMsg: {
+ fieldRequired: '{{trường}} là bắt buộc',
+ urlError: 'URL phải bắt đầu bằng http:// hoặc https://',
+ },
}
export default translation
diff --git a/web/i18n/vi-VN/dataset-creation.ts b/web/i18n/vi-VN/dataset-creation.ts
index 23b210d177..1c5a24d0bf 100644
--- a/web/i18n/vi-VN/dataset-creation.ts
+++ b/web/i18n/vi-VN/dataset-creation.ts
@@ -50,6 +50,30 @@ const translation = {
confirmButton: 'Tạo',
failed: 'Tạo thất bại',
},
+ website: {
+ fireCrawlNotConfigured: 'Firecrawl không được cấu hình',
+ limit: 'Giới hạn',
+ run: 'Chạy',
+ firecrawlDoc: 'Tài liệu Firecrawl',
+ fireCrawlNotConfiguredDescription: 'Định cấu hình Firecrawl bằng khóa API để sử dụng.',
+ configure: 'Cấu hình',
+ scrapTimeInfo: 'Tổng cộng {{tổng}} trang được thu thập trong vòng {{thời gian}}',
+ options: 'Tùy chọn',
+ unknownError: 'Lỗi không xác định',
+ extractOnlyMainContent: 'Chỉ trích xuất nội dung chính (không có đầu trang, điều hướng, chân trang, v.v.)',
+ exceptionErrorTitle: 'Một ngoại lệ xảy ra trong khi chạy tác vụ Firecrawl:',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ selectAll: 'Chọn tất cả',
+ firecrawlTitle: 'Trích xuất nội dung web bằng 🔥Firecrawl',
+ totalPageScraped: 'Tổng số trang được cạo:',
+ excludePaths: 'Loại trừ đường dẫn',
+ includeOnlyPaths: 'Chỉ bao gồm đường dẫn',
+ maxDepth: 'Độ sâu tối đa',
+ preview: 'Download',
+ resetAll: 'Đặt lại tất cả',
+ crawlSubPage: 'Thu thập dữ liệu các trang phụ',
+ maxDepthTooltip: 'Độ sâu tối đa cần thu thập dữ liệu so với URL đã nhập. Độ sâu 0 chỉ cần cạo trang của url đã nhập, độ sâu 1 cạo url và mọi thứ sau khi nhậpURL + một /, v.v.',
+ },
},
stepTwo: {
segmentation: 'Cài đặt phân đoạn',
@@ -107,6 +131,8 @@ const translation = {
indexSettedTip: 'Để thay đổi phương pháp chỉ mục, vui lòng đi tới ',
retrivalSettedTip: 'Để thay đổi phương pháp truy xuất, vui lòng đi tới ',
datasetSettingLink: 'cài đặt Kiến thức.',
+ websiteSource: 'Trang web tiền xử lý',
+ webpageUnit: 'Trang',
},
stepThree: {
creationTitle: '🎉 Kiến thức đã được tạo',
@@ -125,6 +151,11 @@ const translation = {
modelButtonConfirm: 'Xác nhận',
modelButtonCancel: 'Hủy',
},
+ firecrawl: {
+ getApiKeyLinkText: 'Lấy khóa API của bạn từ firecrawl.dev',
+ configFirecrawl: 'Định cấu hình 🔥Firecrawl',
+ apiKeyPlaceholder: 'Khóa API từ firecrawl.dev',
+ },
}
export default translation
diff --git a/web/i18n/vi-VN/dataset-documents.ts b/web/i18n/vi-VN/dataset-documents.ts
index 5df6e40718..16570dff6e 100644
--- a/web/i18n/vi-VN/dataset-documents.ts
+++ b/web/i18n/vi-VN/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: 'TRẠNG THÁI',
action: 'THAO TÁC',
},
+ rename: 'Rename',
+ name: 'Tên',
},
action: {
uploadFile: 'Tải lên tệp mới',
@@ -74,6 +76,7 @@ const translation = {
error: 'Lỗi nhập',
ok: 'OK',
},
+ addUrl: 'Thêm URL',
},
metadata: {
title: 'Siêu dữ liệu',
diff --git a/web/i18n/vi-VN/dataset-settings.ts b/web/i18n/vi-VN/dataset-settings.ts
index e6feb78278..cc68bea7ae 100644
--- a/web/i18n/vi-VN/dataset-settings.ts
+++ b/web/i18n/vi-VN/dataset-settings.ts
@@ -27,6 +27,8 @@ const translation = {
longDescription: ' về phương pháp truy xuất. Bạn có thể thay đổi điều này bất kỳ lúc nào trong cài đặt Kiến thức.',
},
save: 'Lưu',
+ permissionsInvitedMembers: 'Thành viên một phần trong nhóm',
+ me: '(Bạn)',
},
}
diff --git a/web/i18n/vi-VN/login.ts b/web/i18n/vi-VN/login.ts
index 8d291c7f33..ba729b2dff 100644
--- a/web/i18n/vi-VN/login.ts
+++ b/web/i18n/vi-VN/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: 'Vui lòng nhập tên',
passwordEmpty: 'Vui lòng nhập mật khẩu',
passwordInvalid: 'Mật khẩu phải chứa cả chữ và số, và có độ dài ít nhất 8 ký tự',
+ passwordLengthInValid: 'Mật khẩu phải có ít nhất 8 ký tự',
},
license: {
tip: 'Trước khi bắt đầu sử dụng Phiên bản Cộng đồng của Dify, vui lòng đọc',
@@ -68,6 +69,7 @@ const translation = {
activated: 'Đăng nhập ngay',
adminInitPassword: 'Mật khẩu khởi tạo quản trị viên',
validate: 'Xác thực',
+ sso: 'Tiếp tục với SSO',
}
export default translation
diff --git a/web/i18n/vi-VN/tools.ts b/web/i18n/vi-VN/tools.ts
index 40e16a5fa9..b03a6ccc98 100644
--- a/web/i18n/vi-VN/tools.ts
+++ b/web/i18n/vi-VN/tools.ts
@@ -5,6 +5,7 @@ const translation = {
all: 'Tất cả',
builtIn: 'Tích hợp sẵn',
custom: 'Tùy chỉnh',
+ workflow: 'Quy trình làm việc',
},
contribute: {
line1: 'Tôi quan tâm đến việc ',
@@ -75,6 +76,27 @@ const translation = {
customDisclaimerPlaceholder: 'Vui lòng nhập tuyên bố từ chối trách nhiệm tùy chỉnh',
deleteToolConfirmTitle: 'Xóa công cụ này?',
deleteToolConfirmContent: 'Xóa công cụ là không thể hoàn tác. Người dùng sẽ không thể truy cập lại công cụ của bạn.',
+ toolInput: {
+ label: 'Tags',
+ methodParameter: 'Thông số',
+ name: 'Tên',
+ descriptionPlaceholder: 'Mô tả ý nghĩa của tham số',
+ methodSetting: 'Khung cảnh',
+ title: 'Công cụ nhập liệu',
+ methodSettingTip: 'Người dùng điền vào cấu hình công cụ',
+ required: 'Bắt buộc',
+ method: 'Phương pháp',
+ methodParameterTip: 'LLM lấp đầy trong quá trình suy luận',
+ description: 'Sự miêu tả',
+ labelPlaceholder: 'Chọn thẻ (tùy chọn)',
+ },
+ nameForToolCallTip: 'Chỉ hỗ trợ số, chữ cái và dấu gạch dưới.',
+ nameForToolCall: 'Công cụ gọi tên',
+ nameForToolCallPlaceHolder: 'Được sử dụng để nhận dạng máy, chẳng hạn như getCurrentWeather, list_pets',
+ descriptionPlaceholder: 'Mô tả ngắn gọn về mục đích của công cụ, ví dụ: lấy nhiệt độ cho một vị trí cụ thể.',
+ description: 'Sự miêu tả',
+ confirmTitle: 'Xác nhận để lưu ?',
+ confirmTip: 'Các ứng dụng sử dụng công cụ này sẽ bị ảnh hưởng',
},
test: {
title: 'Kiểm tra',
@@ -114,6 +136,18 @@ const translation = {
toolRemoved: 'Công cụ đã bị xóa',
notAuthorized: 'Công cụ chưa được xác thực',
howToGet: 'Cách nhận',
+ addToolModal: {
+ category: 'loại',
+ manageInTools: 'Quản lý trong Công cụ',
+ type: 'kiểu',
+ add: 'thêm',
+ added: 'Thêm',
+ emptyTip: 'Đi tới "Quy trình làm việc -> Xuất bản dưới dạng công cụ"',
+ emptyTitle: 'Không có sẵn công cụ quy trình làm việc',
+ },
+ toolNameUsageTip: 'Tên cuộc gọi công cụ để lý luận và nhắc nhở tổng đài viên',
+ customToolTip: 'Tìm hiểu thêm về các công cụ tùy chỉnh Dify',
+ openInStudio: 'Mở trong Studio',
}
export default translation
diff --git a/web/i18n/vi-VN/workflow.ts b/web/i18n/vi-VN/workflow.ts
index 3cb12f23ac..fba71190d4 100644
--- a/web/i18n/vi-VN/workflow.ts
+++ b/web/i18n/vi-VN/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: 'Quản lý trong công cụ',
workflowAsToolTip: 'Cần cấu hình lại công cụ sau khi cập nhật quy trình làm việc.',
viewDetailInTracingPanel: 'Xem chi tiết',
+ importSuccess: 'Nhập thành công',
+ backupCurrentDraft: 'Sao lưu dự thảo hiện tại',
+ chooseDSL: 'Chọn tệp DSL(yml)',
+ importDSLTip: 'Dự thảo hiện tại sẽ bị ghi đè. Xuất quy trình làm việc dưới dạng bản sao lưu trước khi nhập.',
+ importFailure: 'Nhập không thành công',
+ overwriteAndImport: 'Ghi đè và nhập',
+ importDSL: 'Nhập DSL',
+ syncingData: 'Đồng bộ hóa dữ liệu, chỉ vài giây.',
},
env: {
envPanelTitle: 'Biến Môi Trường',
@@ -177,7 +185,8 @@ const translation = {
'logic': 'Logic',
'transform': 'Chuyển đổi',
'utilities': 'Tiện ích',
- 'noResult': 'Không tìm thấy kết quả phù hợp',
+ 'noResult': 'Không tìm thấy kế;t quả phù hợp',
+ 'searchTool': 'Công cụ tìm kiếm',
},
blocks: {
'start': 'Bắt đầu',
@@ -407,6 +416,7 @@ const translation = {
enterValue: 'Nhập giá trị',
addCondition: 'Thêm điều kiện',
conditionNotSetup: 'Điều kiện chưa được thiết lập',
+ selectVariable: 'Chọn biến...',
},
variableAssigner: {
title: 'Gán biến',
@@ -502,6 +512,25 @@ const translation = {
iteration_other: '{{count}} Lặp',
currentIteration: 'Lặp hiện tại',
},
+ note: {
+ editor: {
+ openLink: 'Mở',
+ italic: 'Nghiêng',
+ link: 'Liên kết',
+ medium: 'Đau vừa',
+ small: 'Nhỏ',
+ placeholder: 'Viết ghi chú của bạn...',
+ large: 'Lớn',
+ showAuthor: 'Hiển thị tác giả',
+ bulletList: 'Danh sách dấu đầu dòng',
+ bold: 'Dũng cảm',
+ unlink: 'Hủy liên kết',
+ invalidUrl: 'URL không hợp lệ',
+ strikethrough: 'Gạch ngang',
+ enterUrl: 'Nhập URL...',
+ },
+ addNote: 'Thêm ghi chú',
+ },
},
tracing: {
stopBy: 'Dừng bởi {{user}}',
diff --git a/web/i18n/zh-Hans/common.ts b/web/i18n/zh-Hans/common.ts
index 477dd363c2..ccbe4a32c6 100644
--- a/web/i18n/zh-Hans/common.ts
+++ b/web/i18n/zh-Hans/common.ts
@@ -207,6 +207,9 @@ const translation = {
disinvite: '取消邀请',
deleteMember: '删除成员',
you: '(你)',
+ builderTip: '可以构建和编辑自己的应用程序',
+ setBuilder: 'Set as builder (设置为构建器)',
+ builder: '构建器',
},
integrations: {
connected: '登录方式',
@@ -368,6 +371,7 @@ const translation = {
loadBalancingLeastKeyWarning: '至少启用 2 个 Key 以使用负载均衡',
loadBalancingInfo: '默认情况下,负载平衡使用 Round-robin 策略。如果触发速率限制,将应用 1 分钟的冷却时间',
upgradeForLoadBalancing: '升级以解锁负载均衡功能',
+ apiKey: 'API 密钥',
},
dataSource: {
add: '添加数据源',
diff --git a/web/i18n/zh-Hans/login.ts b/web/i18n/zh-Hans/login.ts
index 5ac9b9fcb4..53266052f2 100644
--- a/web/i18n/zh-Hans/login.ts
+++ b/web/i18n/zh-Hans/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: '用户名不能为空',
passwordEmpty: '密码不能为空',
passwordInvalid: '密码必须包含字母和数字,且长度不小于8位',
+ passwordLengthInValid: '密码必须至少为 8 个字符',
},
license: {
tip: '启动 Dify 社区版之前, 请阅读 GitHub 上的',
@@ -68,6 +69,7 @@ const translation = {
activated: '现在登录',
adminInitPassword: '管理员初始化密码',
validate: '验证',
+ sso: '使用 SSO 继续',
}
export default translation
diff --git a/web/i18n/zh-Hans/share-app.ts b/web/i18n/zh-Hans/share-app.ts
index bb8e1574fd..794c5e323d 100644
--- a/web/i18n/zh-Hans/share-app.ts
+++ b/web/i18n/zh-Hans/share-app.ts
@@ -32,7 +32,6 @@ const translation = {
create: '运行一次',
batch: '批量运行',
saved: '已保存',
-
},
savedNoData: {
title: '您还没有保存结果!',
diff --git a/web/i18n/zh-Hant/app-overview.ts b/web/i18n/zh-Hant/app-overview.ts
index df9e80b9a6..7ad7fc86d9 100644
--- a/web/i18n/zh-Hant/app-overview.ts
+++ b/web/i18n/zh-Hant/app-overview.ts
@@ -48,6 +48,8 @@ const translation = {
title: '工作流程步驟',
show: '展示',
hide: '隱藏',
+ subTitle: '工作流詳細資訊',
+ showDesc: '在 WebApp 中顯示或隱藏工作流詳細資訊',
},
chatColorTheme: '聊天顏色主題',
chatColorThemeDesc: '設定聊天機器人的顏色主題',
@@ -64,6 +66,12 @@ const translation = {
customDisclaimerPlaceholder: '請輸入免責聲明',
customDisclaimerTip: '客製化的免責聲明文字將在客戶端顯示,提供有關應用程式的額外資訊。',
},
+ sso: {
+ description: '所有使用者在使用 WebApp 之前都需要使用 SSO 登錄',
+ title: 'WebApp SSO',
+ tooltip: '聯繫管理員以啟用 WebApp SSO',
+ label: 'SSO 身份驗證',
+ },
},
embedded: {
entry: '嵌入',
diff --git a/web/i18n/zh-Hant/app.ts b/web/i18n/zh-Hant/app.ts
index ff162c5b61..5d52bb102b 100644
--- a/web/i18n/zh-Hant/app.ts
+++ b/web/i18n/zh-Hant/app.ts
@@ -123,6 +123,15 @@ const translation = {
removeConfirmContent: '當前配置正在使用中,移除它將關閉追蹤功能。',
},
},
+ answerIcon: {
+ descriptionInExplore: '是否使用 WebApp 圖示在 Explore 中取代 🤖',
+ title: '使用 WebApp 圖示取代 🤖',
+ description: '是否在共享應用程式中使用 WebApp 圖示進行取代 🤖',
+ },
+ importFromDSLUrl: '寄件者 URL',
+ importFromDSL: '從 DSL 導入',
+ importFromDSLFile: '從 DSL 檔',
+ importFromDSLUrlPlaceholder: '在此處粘貼 DSL 連結',
}
export default translation
diff --git a/web/i18n/zh-Hant/billing.ts b/web/i18n/zh-Hant/billing.ts
index dd6b69e334..f318b6fa66 100644
--- a/web/i18n/zh-Hant/billing.ts
+++ b/web/i18n/zh-Hant/billing.ts
@@ -60,6 +60,8 @@ const translation = {
bulkUpload: '批次上傳文件',
agentMode: '代理模式',
workflow: '工作流',
+ llmLoadingBalancing: 'LLM 負載均衡',
+ llmLoadingBalancingTooltip: '向模型添加多個 API 金鑰,從而有效地繞過 API 速率限制。',
},
comingSoon: '即將推出',
member: '成員',
@@ -74,6 +76,7 @@ const translation = {
},
ragAPIRequestTooltip: '指單獨呼叫 Dify 知識庫資料處理能力的 API。',
receiptInfo: '只有團隊所有者和團隊管理員才能訂閱和檢視賬單資訊',
+ annotationQuota: '註釋配額',
},
plans: {
sandbox: {
diff --git a/web/i18n/zh-Hant/common.ts b/web/i18n/zh-Hant/common.ts
index a5bcb4c72f..d6c283079a 100644
--- a/web/i18n/zh-Hant/common.ts
+++ b/web/i18n/zh-Hant/common.ts
@@ -201,6 +201,11 @@ const translation = {
disinvite: '取消邀請',
deleteMember: '刪除成員',
you: '(你)',
+ setBuilder: 'Set as builder (設置為建構器)',
+ datasetOperator: '知識管理員',
+ builder: '建築工人',
+ builderTip: '可以構建和編輯自己的應用程式',
+ datasetOperatorTip: '只能管理知識庫',
},
integrations: {
connected: '登入方式',
@@ -347,6 +352,22 @@ const translation = {
quotaTip: '剩餘免費額度',
loadPresets: '載入預設',
parameters: '引數',
+ loadBalancingHeadline: '負載均衡',
+ apiKeyStatusNormal: 'APIKey 狀態正常',
+ defaultConfig: '默認配置',
+ configLoadBalancing: '配置負載均衡',
+ loadBalancingDescription: '使用多組憑證減輕壓力。',
+ addConfig: '添加配置',
+ upgradeForLoadBalancing: '升級您的計劃以啟用Load Balancing。',
+ apiKey: 'API 金鑰',
+ loadBalancing: '負載均衡',
+ providerManagedDescription: '使用模型提供程式提供的單組憑證。',
+ modelHasBeenDeprecated: '此模型已棄用',
+ apiKeyRateLimit: '已達到速率限制,在 {{seconds}} 秒後可用',
+ providerManaged: '提供者管理',
+ editConfig: '編輯配置',
+ loadBalancingInfo: '默認情況下,負載均衡使用 Round-robin 策略。如果觸發了速率限制,將應用 1 分鐘的冷卻時間。',
+ loadBalancingLeastKeyWarning: '要啟用負載均衡,必須至少啟用 2 個金鑰。',
},
dataSource: {
add: '新增資料來源',
@@ -370,6 +391,15 @@ const translation = {
preview: '預覽',
},
},
+ website: {
+ active: '積極',
+ title: '網站',
+ with: '跟',
+ inactive: '無效',
+ configuredCrawlers: '配置的爬網程式',
+ description: '使用 Web 爬蟲從網站導入內容。',
+ },
+ configure: '配置',
},
plugin: {
serpapi: {
@@ -538,6 +568,10 @@ const translation = {
created: '標籤建立成功',
failed: '標籤建立失敗',
},
+ errorMsg: {
+ fieldRequired: '{{field}} 為必填項',
+ urlError: 'URL應以 http:// 或 https:// 開頭',
+ },
}
export default translation
diff --git a/web/i18n/zh-Hant/dataset-creation.ts b/web/i18n/zh-Hant/dataset-creation.ts
index 849e1578da..9a6f815ca3 100644
--- a/web/i18n/zh-Hant/dataset-creation.ts
+++ b/web/i18n/zh-Hant/dataset-creation.ts
@@ -50,6 +50,30 @@ const translation = {
confirmButton: '建立',
failed: '建立失敗',
},
+ website: {
+ maxDepth: '最大深度',
+ selectAll: '全選',
+ exceptionErrorTitle: '運行 Firecrawl 作業時發生異常:',
+ run: '跑',
+ extractOnlyMainContent: '僅提取主要內容(無頁眉、導航、頁腳等)',
+ fireCrawlNotConfiguredDescription: '使用 API 金鑰配置 Firecrawl 以使用它。',
+ limit: '限制',
+ crawlSubPage: '抓取子頁面',
+ firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+ preview: '預覽',
+ configure: '配置',
+ excludePaths: '排除路徑',
+ options: '選項',
+ firecrawlDoc: 'Firecrawl 文件',
+ totalPageScraped: '抓取的總頁數:',
+ firecrawlTitle: '使用 🔥Firecrawl 提取 Web 內容',
+ includeOnlyPaths: '僅包含路徑',
+ resetAll: '全部重置',
+ scrapTimeInfo: '在 {{time}} 秒內總共抓取了 {{total}} 個頁面',
+ unknownError: '未知錯誤',
+ fireCrawlNotConfigured: '未配置 Firecrawl',
+ maxDepthTooltip: '相對於輸入的 URL 的最大爬網深度。深度 0 只是抓取輸入的 url 的頁面,深度 1 抓取 url 以及 enteredURL + 1 / 之後的所有內容,依此類推。',
+ },
},
stepTwo: {
segmentation: '分段設定',
@@ -107,6 +131,8 @@ const translation = {
indexSettedTip: '要更改索引方法,請轉到',
retrivalSettedTip: '要更改檢索方法,請轉到',
datasetSettingLink: '知識庫設定。',
+ websiteSource: '預處理網站',
+ webpageUnit: '頁面',
},
stepThree: {
creationTitle: '🎉 知識庫已建立',
@@ -125,6 +151,11 @@ const translation = {
modelButtonConfirm: '確認停止',
modelButtonCancel: '取消',
},
+ firecrawl: {
+ configFirecrawl: '配置 🔥Firecrawl',
+ apiKeyPlaceholder: '來自 firecrawl.dev 的 API 金鑰',
+ getApiKeyLinkText: '從 firecrawl.dev 獲取 API 金鑰',
+ },
}
export default translation
diff --git a/web/i18n/zh-Hant/dataset-documents.ts b/web/i18n/zh-Hant/dataset-documents.ts
index ccc0fcf764..b4e6b44181 100644
--- a/web/i18n/zh-Hant/dataset-documents.ts
+++ b/web/i18n/zh-Hant/dataset-documents.ts
@@ -13,6 +13,8 @@ const translation = {
status: '狀態',
action: '操作',
},
+ name: '名字',
+ rename: '重新命名',
},
action: {
uploadFile: '上傳新檔案',
@@ -74,6 +76,7 @@ const translation = {
error: '匯入出錯',
ok: '確定',
},
+ addUrl: '添加 URL',
},
metadata: {
title: '元資料',
diff --git a/web/i18n/zh-Hant/dataset-settings.ts b/web/i18n/zh-Hant/dataset-settings.ts
index d18c3fdd9b..f34d1d4acc 100644
--- a/web/i18n/zh-Hant/dataset-settings.ts
+++ b/web/i18n/zh-Hant/dataset-settings.ts
@@ -27,6 +27,8 @@ const translation = {
longDescription: '關於檢索方法,您可以隨時在知識庫設定中更改此設定。',
},
save: '儲存',
+ permissionsInvitedMembers: '部分團隊成員',
+ me: '(您)',
},
}
diff --git a/web/i18n/zh-Hant/login.ts b/web/i18n/zh-Hant/login.ts
index cce869f38a..5b6492ed16 100644
--- a/web/i18n/zh-Hant/login.ts
+++ b/web/i18n/zh-Hant/login.ts
@@ -53,6 +53,7 @@ const translation = {
nameEmpty: '使用者名稱不能為空',
passwordEmpty: '密碼不能為空',
passwordInvalid: '密碼必須包含字母和數字,且長度不小於8位',
+ passwordLengthInValid: '密碼必須至少為8個字元',
},
license: {
tip: '啟動 Dify 社群版之前, 請閱讀 GitHub 上的',
@@ -68,6 +69,7 @@ const translation = {
activated: '現在登入',
adminInitPassword: '管理員初始化密碼',
validate: '驗證',
+ sso: '繼續使用 SSO',
}
export default translation
diff --git a/web/i18n/zh-Hant/share-app.ts b/web/i18n/zh-Hant/share-app.ts
index e91cbaf121..f14ce68577 100644
--- a/web/i18n/zh-Hant/share-app.ts
+++ b/web/i18n/zh-Hant/share-app.ts
@@ -32,7 +32,6 @@ const translation = {
create: '執行一次',
batch: '批次執行',
saved: '已儲存',
-
},
savedNoData: {
title: '您還沒有儲存結果!',
diff --git a/web/i18n/zh-Hant/tools.ts b/web/i18n/zh-Hant/tools.ts
index 58ba9f5c81..d45980c017 100644
--- a/web/i18n/zh-Hant/tools.ts
+++ b/web/i18n/zh-Hant/tools.ts
@@ -5,6 +5,7 @@ const translation = {
all: '全部',
builtIn: '內建',
custom: '自定義',
+ workflow: '工作流',
},
contribute: {
line1: '我有興趣為 ',
@@ -75,6 +76,27 @@ const translation = {
customDisclaimerPlaceholder: '請輸入自定義免責聲明',
deleteToolConfirmTitle: '刪除這個工具?',
deleteToolConfirmContent: '刪除工具是不可逆的。用戶將無法再訪問您的工具。',
+ toolInput: {
+ labelPlaceholder: '選擇標籤(選擇標籤)',
+ label: '標籤',
+ required: '必填',
+ methodSettingTip: '用戶填寫工具配置',
+ name: '名字',
+ description: '描述',
+ methodParameterTip: '推理期間 LLM 填充',
+ method: '方法',
+ title: '工具輸入',
+ methodSetting: '設置',
+ methodParameter: '參數',
+ descriptionPlaceholder: '參數含義的描述',
+ },
+ description: '描述',
+ nameForToolCall: '工具調用名稱',
+ confirmTitle: '確認儲存 ?',
+ descriptionPlaceholder: '工具用途的簡要描述,例如,獲取特定位置的溫度。',
+ nameForToolCallTip: '僅支援數位、字母和下劃線。',
+ confirmTip: '使用此工具的應用程式將受到影響',
+ nameForToolCallPlaceHolder: '用於機器識別,例如 getCurrentWeather、list_pets',
},
test: {
title: '測試',
@@ -114,6 +136,18 @@ const translation = {
toolRemoved: '工具已被移除',
notAuthorized: '工具未授權',
howToGet: '如何獲取',
+ addToolModal: {
+ add: '加',
+ type: '類型',
+ added: '添加',
+ manageInTools: '在工具中管理',
+ category: '類別',
+ emptyTitle: '沒有可用的工作流程工具',
+ emptyTip: '轉到“工作流 - >發佈為工具”',
+ },
+ customToolTip: '瞭解有關 Dify 自訂工具的更多資訊',
+ toolNameUsageTip: '用於代理推理和提示的工具調用名稱',
+ openInStudio: '在 Studio 中打開',
}
export default translation
diff --git a/web/i18n/zh-Hant/workflow.ts b/web/i18n/zh-Hant/workflow.ts
index 3a456858fe..a5ad2fdb49 100644
--- a/web/i18n/zh-Hant/workflow.ts
+++ b/web/i18n/zh-Hant/workflow.ts
@@ -69,6 +69,14 @@ const translation = {
manageInTools: '訪問工具頁',
workflowAsToolTip: '工作流更新後需要重新配置工具參數',
viewDetailInTracingPanel: '查看詳細信息',
+ importDSL: '導入 DSL',
+ backupCurrentDraft: 'Backup Current Draft',
+ overwriteAndImport: '覆蓋和導入',
+ importSuccess: '導入成功',
+ chooseDSL: '選擇 DSL(yml) 檔',
+ syncingData: '同步數據,只需幾秒鐘。',
+ importDSLTip: '當前草稿將被覆蓋。在導入之前將工作流匯出為備份。',
+ importFailure: '匯入失敗',
},
env: {
envPanelTitle: '環境變數',
@@ -142,6 +150,7 @@ const translation = {
noteAdd: '註釋已添加',
noteChange: '註釋已更改',
edgeDelete: '區塊已斷開連接',
+ noteDelete: '註釋已刪除',
},
errorMsg: {
fieldRequired: '{{field}} 不能為空',
@@ -177,6 +186,7 @@ const translation = {
'transform': '轉換',
'utilities': '工具',
'noResult': '未找到匹配項',
+ 'searchTool': '搜索工具',
},
blocks: {
'start': '開始',
@@ -406,6 +416,7 @@ const translation = {
enterValue: '輸入值',
addCondition: '添加條件',
conditionNotSetup: '條件未設置',
+ selectVariable: '選擇變數...',
},
variableAssigner: {
title: '變量賦值',
@@ -501,6 +512,25 @@ const translation = {
iteration_other: '{{count}}個迭代',
currentIteration: '當前迭代',
},
+ note: {
+ editor: {
+ link: '連結',
+ openLink: '打開',
+ medium: '中等',
+ small: '小',
+ invalidUrl: 'URL 無效',
+ italic: '斜體的',
+ bulletList: '項目符號清單',
+ large: '大',
+ unlink: '取消連結',
+ enterUrl: '輸入網址...',
+ bold: '大膽',
+ showAuthor: '顯示作者',
+ strikethrough: '刪除線',
+ placeholder: '寫下您的筆記...',
+ },
+ addNote: '添加註釋',
+ },
},
tracing: {
stopBy: '由{{user}}終止',