dify
This commit is contained in:
98
dify/web/i18n/de-DE/app-annotation.ts
Normal file
98
dify/web/i18n/de-DE/app-annotation.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
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',
|
||||
clearAllConfirm: '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.',
|
||||
list: {
|
||||
delete: {
|
||||
title: 'Bist du sicher, dass du löschen möchtest?',
|
||||
},
|
||||
},
|
||||
batchAction: {
|
||||
cancel: 'Abbrechen',
|
||||
selected: 'Ausgewählt',
|
||||
delete: 'Löschen',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
85
dify/web/i18n/de-DE/app-api.ts
Normal file
85
dify/web/i18n/de-DE/app-api.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
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',
|
||||
merMaid: {
|
||||
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',
|
||||
toc: 'Inhalt',
|
||||
},
|
||||
loading: 'Laden',
|
||||
regenerate: 'Erneuern',
|
||||
}
|
||||
|
||||
export default translation
|
||||
575
dify/web/i18n/de-DE/app-debug.ts
Normal file
575
dify/web/i18n/de-DE/app-debug.ts
Normal file
@@ -0,0 +1,575 @@
|
||||
const translation = {
|
||||
pageTitle: {
|
||||
line1: 'PROMPT',
|
||||
line2: 'Engineering',
|
||||
},
|
||||
orchestrate: 'Orchestrieren',
|
||||
promptMode: {
|
||||
simple: 'Wechseln Sie in den Expertenmodus, um das gesamte PROMPT zu bearbeiten',
|
||||
advanced: 'Expertenmodus',
|
||||
switchBack: 'Zurückwechseln',
|
||||
advancedWarning: {
|
||||
title: 'Sie haben in den Expertenmodus gewechselt, und sobald Sie das PROMPT ändern, können Sie NICHT zum Basis-Modus zurückkehren.',
|
||||
description: 'Im Expertenmodus können Sie das gesamte PROMPT bearbeiten.',
|
||||
learnMore: 'Mehr erfahren',
|
||||
ok: 'OK',
|
||||
},
|
||||
operation: {
|
||||
addMessage: 'Nachricht hinzufügen',
|
||||
},
|
||||
contextMissing: 'Komponente fehlt, die Wirksamkeit des Prompts könnte schlecht sein.',
|
||||
},
|
||||
operation: {
|
||||
applyConfig: 'Veröffentlichen',
|
||||
resetConfig: 'Zurücksetzen',
|
||||
debugConfig: 'Debuggen',
|
||||
addFeature: 'Funktion hinzufügen',
|
||||
automatic: 'Generieren',
|
||||
stopResponding: 'Antworten stoppen',
|
||||
agree: 'gefällt mir',
|
||||
disagree: 'gefällt mir nicht',
|
||||
cancelAgree: 'Gefällt mir zurücknehmen',
|
||||
cancelDisagree: 'Gefällt mir nicht zurücknehmen',
|
||||
userAction: 'Benutzer ',
|
||||
},
|
||||
notSetAPIKey: {
|
||||
title: 'LLM-Anbieterschlüssel wurde nicht festgelegt',
|
||||
trailFinished: 'Testversion beendet',
|
||||
description: 'Der LLM-Anbieterschlüssel wurde nicht festgelegt und muss vor dem Debuggen festgelegt werden.',
|
||||
settingBtn: 'Zu den Einstellungen gehen',
|
||||
},
|
||||
trailUseGPT4Info: {
|
||||
title: 'Unterstützt derzeit kein gpt-4',
|
||||
description: 'Um gpt-4 zu verwenden, bitte API-Schlüssel festlegen.',
|
||||
},
|
||||
feature: {
|
||||
groupChat: {
|
||||
title: 'Chatverbesserung',
|
||||
description: 'Voreinstellungen für Konversationen zu Apps hinzufügen kann die Benutzererfahrung verbessern.',
|
||||
},
|
||||
groupExperience: {
|
||||
title: 'Erfahrungsverbesserung',
|
||||
},
|
||||
conversationOpener: {
|
||||
title: 'Gesprächseröffnungen',
|
||||
description: 'In einer Chat-App wird der erste Satz, den die KI aktiv an den Benutzer richtet, üblicherweise als Begrüßung verwendet.',
|
||||
},
|
||||
suggestedQuestionsAfterAnswer: {
|
||||
title: 'Nachfolgefragen',
|
||||
description: 'Das Einrichten von Vorschlägen für nächste Fragen kann den Chat für Benutzer verbessern.',
|
||||
resDes: '3 Vorschläge für die nächste Benutzerfrage.',
|
||||
tryToAsk: 'Versuchen Sie zu fragen',
|
||||
},
|
||||
moreLikeThis: {
|
||||
title: 'Mehr davon',
|
||||
description: 'Mehrere Texte gleichzeitig generieren und dann bearbeiten und weiter generieren',
|
||||
generateNumTip: 'Anzahl der generierten Texte pro Durchgang',
|
||||
tip: 'Die Verwendung dieser Funktion verursacht zusätzliche Token-Kosten',
|
||||
},
|
||||
speechToText: {
|
||||
title: 'Sprache zu Text',
|
||||
description: 'Einmal aktiviert, können Sie Spracheingabe verwenden.',
|
||||
resDes: 'Spracheingabe ist aktiviert',
|
||||
},
|
||||
textToSpeech: {
|
||||
title: 'Text zu Sprache',
|
||||
description: 'Einmal aktiviert, kann Text in Sprache umgewandelt werden.',
|
||||
resDes: 'Text zu Audio ist aktiviert',
|
||||
},
|
||||
citation: {
|
||||
title: 'Zitate und Urheberangaben',
|
||||
description: 'Einmal aktiviert, zeigen Sie das Quelldokument und den zugeordneten Abschnitt des generierten Inhalts an.',
|
||||
resDes: 'Zitate und Urheberangaben sind aktiviert',
|
||||
},
|
||||
annotation: {
|
||||
title: 'Annotation Antwort',
|
||||
description: 'Sie können manuell hochwertige Antworten zum Cache hinzufügen für bevorzugte Übereinstimmung mit ähnlichen Benutzerfragen.',
|
||||
resDes: 'Annotationsantwort ist aktiviert',
|
||||
scoreThreshold: {
|
||||
title: 'Schwellenwert',
|
||||
description: 'Wird verwendet, um den Ähnlichkeitsschwellenwert für die Annotation Antwort einzustellen.',
|
||||
easyMatch: 'Einfache Übereinstimmung',
|
||||
accurateMatch: 'Genaue Übereinstimmung',
|
||||
},
|
||||
matchVariable: {
|
||||
title: 'Übereinstimmungsvariable',
|
||||
choosePlaceholder: 'Wählen Sie Übereinstimmungsvariable',
|
||||
},
|
||||
cacheManagement: 'Annotationen',
|
||||
cached: 'Annotiert',
|
||||
remove: 'Entfernen',
|
||||
removeConfirm: 'Diese Annotation löschen?',
|
||||
add: 'Annotation hinzufügen',
|
||||
edit: 'Annotation bearbeiten',
|
||||
},
|
||||
dataSet: {
|
||||
title: 'Kontext',
|
||||
noData: 'Sie können Wissen als Kontext importieren',
|
||||
selectTitle: 'Wählen Sie Referenzwissen',
|
||||
selected: 'Wissen ausgewählt',
|
||||
noDataSet: 'Kein Wissen gefunden',
|
||||
toCreate: 'Erstellen gehen',
|
||||
notSupportSelectMulti: 'Unterstützt derzeit nur ein Wissen',
|
||||
queryVariable: {
|
||||
title: 'Abfragevariable',
|
||||
tip: 'Diese Variable wird als Eingabe für die Kontextabfrage verwendet, um kontextbezogene Informationen in Bezug auf die Eingabe dieser Variable zu erhalten.',
|
||||
choosePlaceholder: 'Wählen Sie Abfragevariable',
|
||||
noVar: 'Keine Variablen',
|
||||
noVarTip: 'Bitte erstellen Sie eine Variable im Variablenbereich',
|
||||
unableToQueryDataSet: 'Konnte das Wissen nicht abfragen',
|
||||
unableToQueryDataSetTip: 'Konnte das Wissen nicht erfolgreich abfragen, bitte wählen Sie eine Kontextabfragevariable im Kontextbereich.',
|
||||
ok: 'OK',
|
||||
contextVarNotEmpty: 'Kontextabfragevariable darf nicht leer sein',
|
||||
deleteContextVarTitle: 'Variable „{{varName}}“ löschen?',
|
||||
deleteContextVarTip: 'Diese Variable wurde als Kontextabfragevariable festgelegt und deren Entfernung wird die normale Verwendung des Wissens beeinträchtigen. Wenn Sie sie trotzdem löschen müssen, wählen Sie sie bitte im Kontextbereich erneut.',
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
title: 'Werkzeuge',
|
||||
tips: 'Werkzeuge bieten eine standardisierte API-Aufrufmethode, die Benutzereingaben oder Variablen als Anfrageparameter für die Abfrage externer Daten als Kontext verwendet.',
|
||||
toolsInUse: '{{count}} Werkzeuge in Verwendung',
|
||||
modal: {
|
||||
title: 'Werkzeug',
|
||||
toolType: {
|
||||
title: 'Werkzeugtyp',
|
||||
placeholder: 'Bitte wählen Sie den Werkzeugtyp',
|
||||
},
|
||||
name: {
|
||||
title: 'Name',
|
||||
placeholder: 'Bitte geben Sie den Namen ein',
|
||||
},
|
||||
variableName: {
|
||||
title: 'Variablenname',
|
||||
placeholder: 'Bitte geben Sie den Variablennamen ein',
|
||||
},
|
||||
},
|
||||
},
|
||||
conversationHistory: {
|
||||
title: 'Konversationsverlauf',
|
||||
description: 'Präfixnamen für Konversationsrollen festlegen',
|
||||
tip: 'Der Konversationsverlauf ist nicht aktiviert, bitte fügen Sie <histories> im Prompt oben ein.',
|
||||
learnMore: 'Mehr erfahren',
|
||||
editModal: {
|
||||
title: 'Konversationsrollennamen bearbeiten',
|
||||
userPrefix: 'Benutzerpräfix',
|
||||
assistantPrefix: 'Assistentenpräfix',
|
||||
},
|
||||
},
|
||||
toolbox: {
|
||||
title: 'WERKZEUGKASTEN',
|
||||
},
|
||||
moderation: {
|
||||
title: 'Inhaltsmoderation',
|
||||
description: 'Sichern Sie die Ausgabe des Modells durch Verwendung der Moderations-API oder durch Pflege einer Liste sensibler Wörter.',
|
||||
allEnabled: 'INHALT von EINGABE/AUSGABE aktiviert',
|
||||
inputEnabled: 'INHALT von EINGABE aktiviert',
|
||||
outputEnabled: 'INHALT von AUSGABE aktiviert',
|
||||
modal: {
|
||||
title: 'Einstellungen zur Inhaltsmoderation',
|
||||
provider: {
|
||||
title: 'Anbieter',
|
||||
openai: 'OpenAI-Moderation',
|
||||
openaiTip: {
|
||||
prefix: 'OpenAI-Moderation erfordert einen konfigurierten OpenAI-API-Schlüssel in den ',
|
||||
suffix: '.',
|
||||
},
|
||||
keywords: 'Schlüsselwörter',
|
||||
},
|
||||
keywords: {
|
||||
tip: 'Jeweils eine pro Zeile, getrennt durch Zeilenumbrüche. Bis zu 100 Zeichen pro Zeile.',
|
||||
placeholder: 'Jeweils eine pro Zeile, getrennt durch Zeilenumbrüche',
|
||||
line: 'Zeile',
|
||||
},
|
||||
content: {
|
||||
input: 'INHALT der EINGABE moderieren',
|
||||
output: 'INHALT der AUSGABE moderieren',
|
||||
preset: 'Voreingestellte Antworten',
|
||||
placeholder: 'Inhalt der voreingestellten Antworten hier',
|
||||
condition: 'Moderation von INHALT der EINGABE und AUSGABE mindestens eine aktiviert',
|
||||
fromApi: 'Voreingestellte Antworten werden durch API zurückgegeben',
|
||||
errorMessage: 'Voreingestellte Antworten dürfen nicht leer sein',
|
||||
supportMarkdown: 'Markdown unterstützt',
|
||||
},
|
||||
openaiNotConfig: {
|
||||
before: 'OpenAI-Moderation erfordert einen konfigurierten OpenAI-API-Schlüssel in den',
|
||||
after: '',
|
||||
},
|
||||
},
|
||||
contentEnableLabel: 'Inhaltsmoderation aktiviert',
|
||||
},
|
||||
fileUpload: {
|
||||
title: 'Datei-Upload',
|
||||
description: 'Das Chat-Eingabefeld unterstützt das Hochladen von Bildern, Dokumenten und anderen Dateien.',
|
||||
supportedTypes: 'Unterstützte Dateitypen',
|
||||
numberLimit: 'Max. Uploads',
|
||||
modalTitle: 'Datei-Upload-Einstellung',
|
||||
},
|
||||
imageUpload: {
|
||||
title: 'Bild-Upload',
|
||||
description: 'Ermöglicht das Hochladen von Bildern.',
|
||||
supportedTypes: 'Unterstützte Dateitypen',
|
||||
numberLimit: 'Max. Uploads',
|
||||
modalTitle: 'Bild-Upload-Einstellung',
|
||||
},
|
||||
bar: {
|
||||
empty: 'Funktionen aktivieren, um die Web-App-Benutzererfahrung zu verbessern',
|
||||
enableText: 'Funktionen aktiviert',
|
||||
manage: 'Verwalten',
|
||||
},
|
||||
documentUpload: {
|
||||
title: 'Dokument',
|
||||
description: 'Das Aktivieren von Dokumenten ermöglicht es dem Modell, Dokumente aufzunehmen und Fragen zu ihnen zu beantworten.',
|
||||
},
|
||||
audioUpload: {
|
||||
title: 'Audio',
|
||||
description: 'Das Aktivieren von Audio ermöglicht es dem Modell, Audiodateien für Transkription und Analyse zu verarbeiten.',
|
||||
},
|
||||
},
|
||||
resetConfig: {
|
||||
title: 'Zurücksetzen bestätigen?',
|
||||
message:
|
||||
'Zurücksetzen verwirft Änderungen und stellt die zuletzt veröffentlichte Konfiguration wieder her.',
|
||||
},
|
||||
errorMessage: {
|
||||
nameOfKeyRequired: 'Name des Schlüssels: {{key}} erforderlich',
|
||||
valueOfVarRequired: '{{key}} Wert darf nicht leer sein',
|
||||
queryRequired: 'Anfragetext ist erforderlich.',
|
||||
waitForResponse:
|
||||
'Bitte warten Sie auf die Antwort auf die vorherige Nachricht, um abzuschließen.',
|
||||
waitForBatchResponse:
|
||||
'Bitte warten Sie auf die Antwort auf die Stapelaufgabe, um abzuschließen.',
|
||||
notSelectModel: 'Bitte wählen Sie ein Modell',
|
||||
waitForImgUpload: 'Bitte warten Sie, bis das Bild hochgeladen ist',
|
||||
waitForFileUpload: 'Bitte warten Sie, bis die Datei(en) hochgeladen sind',
|
||||
},
|
||||
chatSubTitle: 'Anweisungen',
|
||||
completionSubTitle: 'Vor-Prompt',
|
||||
promptTip:
|
||||
'Prompts leiten KI-Antworten mit Anweisungen und Einschränkungen. Fügen Sie Variablen wie {{input}} ein. Dieses Prompt wird den Benutzern nicht angezeigt.',
|
||||
formattingChangedTitle: 'Formatierung geändert',
|
||||
formattingChangedText:
|
||||
'Die Änderung der Formatierung wird den Debug-Bereich zurücksetzen, sind Sie sicher?',
|
||||
variableTitle: 'Variablen',
|
||||
variableTip:
|
||||
'Benutzer füllen Variablen in einem Formular aus, automatisches Ersetzen von Variablen im Prompt.',
|
||||
notSetVar: 'Variablen ermöglichen es Benutzern, Aufforderungswörter oder Eröffnungsbemerkungen einzuführen, wenn sie Formulare ausfüllen. Sie könnten versuchen, "{{input}}" im Prompt einzugeben.',
|
||||
autoAddVar: 'Im Vor-Prompt referenzierte undefinierte Variablen, möchten Sie sie im Benutzereingabeformular hinzufügen?',
|
||||
variableTable: {
|
||||
key: 'Variablenschlüssel',
|
||||
name: 'Name des Benutzereingabefelds',
|
||||
type: 'Eingabetyp',
|
||||
action: 'Aktionen',
|
||||
typeString: 'String',
|
||||
typeSelect: 'Auswählen',
|
||||
},
|
||||
varKeyError: {
|
||||
canNoBeEmpty: '{{key}} ist erforderlich',
|
||||
tooLong: '{{key}} zu lang. Darf nicht länger als 30 Zeichen sein',
|
||||
notValid: '{{key}} ist ungültig. Darf nur Buchstaben, Zahlen und Unterstriche enthalten',
|
||||
notStartWithNumber: '{{key}} darf nicht mit einer Zahl beginnen',
|
||||
keyAlreadyExists: '{{key}} existiert bereits',
|
||||
},
|
||||
otherError: {
|
||||
promptNoBeEmpty: 'Prompt darf nicht leer sein',
|
||||
historyNoBeEmpty: 'Konversationsverlauf muss im Prompt gesetzt sein',
|
||||
queryNoBeEmpty: 'Anfrage muss im Prompt gesetzt sein',
|
||||
},
|
||||
variableConfig: {
|
||||
'description': 'Einstellung für Variable {{varName}}',
|
||||
'fieldType': 'Feldtyp',
|
||||
'string': 'Kurztext',
|
||||
'paragraph': 'Absatz',
|
||||
'select': 'Auswählen',
|
||||
'notSet': 'Nicht gesetzt, versuchen Sie, {{input}} im Vor-Prompt zu tippen',
|
||||
'stringTitle': 'Formular-Textfeldoptionen',
|
||||
'maxLength': 'Maximale Länge',
|
||||
'options': 'Optionen',
|
||||
'addOption': 'Option hinzufügen',
|
||||
'apiBasedVar': 'API-basierte Variable',
|
||||
'defaultValue': 'Standardwert',
|
||||
'noDefaultValue': 'Kein Standardwert',
|
||||
'selectDefaultValue': 'Standardwert auswählen',
|
||||
'file': {
|
||||
image: {
|
||||
name: 'Bild',
|
||||
},
|
||||
audio: {
|
||||
name: 'Audio',
|
||||
},
|
||||
document: {
|
||||
name: 'Dokument',
|
||||
},
|
||||
video: {
|
||||
name: 'Video',
|
||||
},
|
||||
custom: {
|
||||
description: 'Geben Sie andere Dateitypen an.',
|
||||
createPlaceholder: ' Dateiendung, z.B. .doc',
|
||||
name: 'Andere Dateitypen',
|
||||
},
|
||||
supportFileTypes: 'Unterstützte Dateitypen',
|
||||
},
|
||||
'errorMsg': {
|
||||
optionRepeat: 'Hat Wiederholungsoptionen',
|
||||
atLeastOneOption: 'Mindestens eine Option ist erforderlich',
|
||||
labelNameRequired: 'Labelname ist erforderlich',
|
||||
varNameCanBeRepeat: 'Variablenname kann nicht wiederholt werden',
|
||||
},
|
||||
'multi-files': 'Dateiliste',
|
||||
'varName': 'Variablenname',
|
||||
'content': 'Inhalt',
|
||||
'single-file': 'Einzelne Datei',
|
||||
'labelName': 'Kennsatzname',
|
||||
'addModalTitle': 'Eingabefeld hinzufügen',
|
||||
'hide': 'Verstecken',
|
||||
'inputPlaceholder': 'Bitte geben Sie ein',
|
||||
'both': 'Beide',
|
||||
'uploadFileTypes': 'Dateitypen hochladen',
|
||||
'maxNumberOfUploads': 'Maximale Anzahl von Uploads',
|
||||
'maxNumberTip': 'Dokument < {{docLimit}}, Bild < {{imgLimit}}, Audio < {{audioLimit}}, Video < {{videoLimit}}',
|
||||
'number': 'Zahl',
|
||||
'editModalTitle': 'Eingabefeld bearbeiten',
|
||||
'required': 'Erforderlich',
|
||||
'text-input': 'Kurztext',
|
||||
'localUpload': 'Lokaler Upload',
|
||||
'json': 'JSON-Code',
|
||||
'optional': 'optional',
|
||||
'checkbox': 'Checkbox',
|
||||
'jsonSchema': 'JSON-Schema',
|
||||
'tooltips': 'Tooltips',
|
||||
'placeholder': 'Platzhalter',
|
||||
'displayName': 'Anzeigename',
|
||||
'unit': 'Einheit',
|
||||
'showAllSettings': 'Alle Einstellungen anzeigen',
|
||||
'startChecked': 'Start aktiviert',
|
||||
'uploadMethod': 'Upload-Methode',
|
||||
'noDefaultSelected': 'Nicht auswählen',
|
||||
'defaultValuePlaceholder': 'Geben Sie den Standardwert ein, um das Feld vorab auszufüllen',
|
||||
'unitPlaceholder': 'Einheiten nach Zahlen anzeigen, z.B. Token',
|
||||
'startSelectedOption': 'Ausgewählte Option starten',
|
||||
'placeholderPlaceholder': 'Geben Sie Text ein, der angezeigt werden soll, wenn das Feld leer ist',
|
||||
'tooltipsPlaceholder': 'Geben Sie hilfreichen Text ein, der angezeigt wird, wenn Sie den Mauszeiger über die Beschriftung bewegen',
|
||||
},
|
||||
vision: {
|
||||
name: 'Vision',
|
||||
description: 'Vision zu aktivieren ermöglicht es dem Modell, Bilder aufzunehmen und Fragen dazu zu beantworten.',
|
||||
settings: 'Einstellungen',
|
||||
visionSettings: {
|
||||
title: 'Vision-Einstellungen',
|
||||
resolution: 'Auflösung',
|
||||
resolutionTooltip: `Niedrige Auflösung ermöglicht es dem Modell, eine Bildversion mit niedriger Auflösung von 512 x 512 zu erhalten und das Bild mit einem Budget von 65 Tokens darzustellen. Dies ermöglicht schnellere Antworten des API und verbraucht weniger Eingabetokens für Anwendungsfälle, die kein hohes Detail benötigen.
|
||||
\n
|
||||
Hohe Auflösung ermöglicht zunächst, dass das Modell das Bild mit niedriger Auflösung sieht und dann detaillierte Ausschnitte von Eingabebildern als 512px Quadrate basierend auf der Größe des Eingabebildes erstellt. Jeder der detaillierten Ausschnitte verwendet das doppelte Token-Budget für insgesamt 129 Tokens.`,
|
||||
high: 'Hoch',
|
||||
low: 'Niedrig',
|
||||
uploadMethod: 'Upload-Methode',
|
||||
both: 'Beides',
|
||||
localUpload: 'Lokaler Upload',
|
||||
url: 'URL',
|
||||
uploadLimit: 'Upload-Limit',
|
||||
},
|
||||
onlySupportVisionModelTip: 'Unterstützt nur Bildverarbeitungsmodelle',
|
||||
},
|
||||
voice: {
|
||||
name: 'Stimme',
|
||||
defaultDisplay: 'Standardstimme',
|
||||
description: 'Text-zu-Sprache-Stimmeinstellungen',
|
||||
settings: 'Einstellungen',
|
||||
voiceSettings: {
|
||||
title: 'Stimmeinstellungen',
|
||||
language: 'Sprache',
|
||||
resolutionTooltip: 'Text-zu-Sprache unterstützte Sprache.',
|
||||
voice: 'Stimme',
|
||||
autoPlay: 'Automatische Wiedergabe',
|
||||
autoPlayEnabled: 'Auf',
|
||||
autoPlayDisabled: 'Aus',
|
||||
},
|
||||
},
|
||||
openingStatement: {
|
||||
title: 'Gesprächseröffner',
|
||||
add: 'Hinzufügen',
|
||||
writeOpener: 'Eröffnung schreiben',
|
||||
placeholder: 'Schreiben Sie hier Ihre Eröffnungsnachricht, Sie können Variablen verwenden, versuchen Sie {{Variable}} zu tippen.',
|
||||
openingQuestionPlaceholder: 'Sie können Variablen verwenden, versuchen Sie {{variable}} einzugeben.',
|
||||
openingQuestion: 'Eröffnungsfragen',
|
||||
noDataPlaceHolder:
|
||||
'Den Dialog mit dem Benutzer zu beginnen, kann helfen, in konversationellen Anwendungen eine engere Verbindung mit ihnen herzustellen.',
|
||||
varTip: 'Sie können Variablen verwenden, versuchen Sie {{Variable}} zu tippen',
|
||||
tooShort: 'Für die Erzeugung von Eröffnungsbemerkungen für das Gespräch werden mindestens 20 Wörter des Anfangsprompts benötigt.',
|
||||
notIncludeKey: 'Das Anfangsprompt enthält nicht die Variable: {{key}}. Bitte fügen Sie sie dem Anfangsprompt hinzu.',
|
||||
},
|
||||
modelConfig: {
|
||||
model: 'Modell',
|
||||
setTone: 'Ton der Antworten festlegen',
|
||||
title: 'Modell und Parameter',
|
||||
modeType: {
|
||||
chat: 'Chat',
|
||||
completion: 'Vollständig',
|
||||
},
|
||||
},
|
||||
inputs: {
|
||||
title: 'Debug und Vorschau',
|
||||
noPrompt: 'Versuchen Sie, etwas Prompt im Vor-Prompt-Eingabefeld zu schreiben',
|
||||
userInputField: 'Benutzereingabefeld',
|
||||
noVar: 'Füllen Sie den Wert der Variable aus, der bei jedem Start einer neuen Sitzung automatisch im Prompt ersetzt wird.',
|
||||
chatVarTip:
|
||||
'Füllen Sie den Wert der Variable aus, der bei jedem Start einer neuen Sitzung automatisch im Prompt ersetzt wird',
|
||||
completionVarTip:
|
||||
'Füllen Sie den Wert der Variable aus, der bei jeder Einreichung einer Frage automatisch in den Prompt-Wörtern ersetzt wird.',
|
||||
previewTitle: 'Prompt-Vorschau',
|
||||
queryTitle: 'Anfrageinhalt',
|
||||
queryPlaceholder: 'Bitte geben Sie den Anfragetext ein.',
|
||||
run: 'AUSFÜHREN',
|
||||
},
|
||||
result: 'Ausgabetext',
|
||||
datasetConfig: {
|
||||
settingTitle: 'Abfragen-Einstellungen',
|
||||
retrieveOneWay: {
|
||||
title: 'N-zu-1-Abfrage',
|
||||
description: 'Basierend auf Benutzerabsicht und Beschreibungen des Wissens wählt der Agent autonom das beste Wissen für die Abfrage aus. Am besten für Anwendungen mit deutlichen, begrenzten Wissensgebieten.',
|
||||
},
|
||||
retrieveMultiWay: {
|
||||
title: 'Mehrwegabfrage',
|
||||
description: 'Basierend auf Benutzerabsicht werden Abfragen über alle Wissensbereiche hinweg durchgeführt, relevante Texte aus Mehrfachquellen abgerufen und die besten Ergebnisse, die der Benutzerabfrage entsprechen, nach einer Neubewertung ausgewählt. Konfiguration des Rerank-Modell-APIs erforderlich.',
|
||||
},
|
||||
rerankModelRequired: 'Rerank-Modell erforderlich',
|
||||
params: 'Parameter',
|
||||
top_k: 'Top K',
|
||||
top_kTip: 'Wird verwendet, um Abschnitte zu filtern, die am ähnlichsten zu Benutzerfragen sind. Das System wird auch dynamisch den Wert von Top K anpassen, entsprechend max_tokens des ausgewählten Modells.',
|
||||
score_threshold: 'Schwellenwert',
|
||||
score_thresholdTip: 'Wird verwendet, um den Ähnlichkeitsschwellenwert für die Abschnittsfilterung einzustellen.',
|
||||
retrieveChangeTip: 'Das Ändern des Indexmodus und des Abfragemodus kann Anwendungen beeinflussen, die mit diesem Wissen verbunden sind.',
|
||||
embeddingModelRequired: 'Ein konfiguriertes Einbettungsmodell ist erforderlich',
|
||||
knowledgeTip: 'Klicken Sie auf die Schaltfläche " ", um Wissen hinzuzufügen',
|
||||
},
|
||||
debugAsSingleModel: 'Als Einzelmodell debuggen',
|
||||
debugAsMultipleModel: 'Als Mehrfachmodelle debuggen',
|
||||
duplicateModel: 'Duplizieren',
|
||||
publishAs: 'Veröffentlichen als',
|
||||
assistantType: {
|
||||
name: 'Assistententyp',
|
||||
chatAssistant: {
|
||||
name: 'Basisassistent',
|
||||
description: 'Erstellen eines chatbasierten Assistenten mit einem Großsprachmodell',
|
||||
},
|
||||
agentAssistant: {
|
||||
name: 'Agentenassistent',
|
||||
description: 'Erstellen eines intelligenten Agenten, der autonom Werkzeuge wählen kann, um Aufgaben zu erfüllen',
|
||||
},
|
||||
},
|
||||
agent: {
|
||||
agentMode: 'Agentenmodus',
|
||||
agentModeDes: 'Den Typ des Inferenzmodus für den Agenten festlegen',
|
||||
agentModeType: {
|
||||
ReACT: 'ReAct',
|
||||
functionCall: 'Funktionsaufruf',
|
||||
},
|
||||
setting: {
|
||||
name: 'Agenten-Einstellungen',
|
||||
description: 'Agentenassistenten-Einstellungen ermöglichen die Festlegung des Agentenmodus und erweiterte Funktionen wie integrierte Prompts, nur verfügbar im Agententyp.',
|
||||
maximumIterations: {
|
||||
name: 'Maximale Iterationen',
|
||||
description: 'Begrenzt die Anzahl der Iterationen, die ein Agentenassistent ausführen kann',
|
||||
},
|
||||
},
|
||||
buildInPrompt: 'Eingebautes Prompt',
|
||||
firstPrompt: 'Erstes Prompt',
|
||||
nextIteration: 'Nächste Iteration',
|
||||
promptPlaceholder: 'Schreiben Sie hier Ihr Prompt',
|
||||
tools: {
|
||||
name: 'Werkzeuge',
|
||||
description: 'Die Verwendung von Werkzeugen kann die Fähigkeiten von LLM erweitern, z.B. das Internet durchsuchen oder wissenschaftliche Berechnungen durchführen',
|
||||
enabled: 'Aktiviert',
|
||||
},
|
||||
},
|
||||
codegen: {
|
||||
applyChanges: 'Änderungen übernehmen',
|
||||
generatedCodeTitle: 'Generierter Code',
|
||||
instructionPlaceholder: 'Geben Sie eine detaillierte Beschreibung des Codes ein, den Sie generieren möchten.',
|
||||
overwriteConfirmMessage: 'Durch diese Aktion wird der vorhandene Code überschrieben. Möchten Sie fortfahren?',
|
||||
title: 'Codegenerator',
|
||||
noDataLine1: 'Beschreiben Sie links Ihren Anwendungsfall,',
|
||||
loading: 'Code wird generiert...',
|
||||
resTitle: 'Generierter Code',
|
||||
description: 'Der Code-Generator verwendet konfigurierte Modelle, um qualitativ hochwertigen Code basierend auf Ihren Anweisungen zu generieren. Bitte geben Sie klare und detaillierte Anweisungen.',
|
||||
instruction: 'Anweisungen',
|
||||
apply: 'Anwenden',
|
||||
generate: 'Erzeugen',
|
||||
overwriteConfirmTitle: 'Vorhandenen Code überschreiben?',
|
||||
noDataLine2: 'Die Codevorschau wird hier angezeigt.',
|
||||
},
|
||||
generate: {
|
||||
template: {
|
||||
pythonDebugger: {
|
||||
instruction: 'Ein Bot, der Ihren Code basierend auf Ihren Anweisungen generieren und debuggen kann',
|
||||
name: 'Python-Debugger',
|
||||
},
|
||||
translation: {
|
||||
instruction: 'Ein Übersetzer, der mehrere Sprachen übersetzen kann',
|
||||
name: 'Übersetzung',
|
||||
},
|
||||
professionalAnalyst: {
|
||||
name: 'Professioneller Analyst',
|
||||
instruction: 'Extrahieren Sie Erkenntnisse, identifizieren Sie Risiken und destillieren Sie wichtige Informationen aus langen Berichten in einem einzigen Memo',
|
||||
},
|
||||
excelFormulaExpert: {
|
||||
instruction: 'Ein Chatbot, der Anfängern helfen kann, Excel-Formeln basierend auf Benutzeranweisungen zu verstehen, zu verwenden und zu erstellen',
|
||||
name: 'Excel-Formel-Experte',
|
||||
},
|
||||
travelPlanning: {
|
||||
instruction: 'Der Reiseplanungsassistent ist ein intelligentes Tool, mit dem Benutzer ihre Reisen mühelos planen können',
|
||||
name: 'Reiseplanung',
|
||||
},
|
||||
SQLSorcerer: {
|
||||
name: 'SQL-Zauberer',
|
||||
instruction: 'Verwandeln Sie alltägliche Sprache in SQL-Abfragen',
|
||||
},
|
||||
GitGud: {
|
||||
name: 'Git gud',
|
||||
instruction: 'Generieren geeigneter Git-Befehle basierend auf vom Benutzer beschriebenen Aktionen zur Versionskontrolle',
|
||||
},
|
||||
meetingTakeaways: {
|
||||
instruction: 'Fassen Sie Meetings in prägnante Zusammenfassungen zusammen, die Diskussionsthemen, wichtige Erkenntnisse und Aktionspunkte enthalten',
|
||||
name: 'Takeaways für Meetings',
|
||||
},
|
||||
writingsPolisher: {
|
||||
instruction: 'Verwenden Sie fortgeschrittene Lektoratstechniken, um Ihre Texte zu verbessern',
|
||||
name: 'Polierer für Schreibstil',
|
||||
},
|
||||
},
|
||||
title: 'Eingabeaufforderungs-Generator',
|
||||
apply: 'Anwenden',
|
||||
overwriteTitle: 'Vorhandene Konfiguration überschreiben?',
|
||||
instruction: 'Anweisungen',
|
||||
tryIt: 'Versuch es',
|
||||
generate: 'Erzeugen',
|
||||
overwriteMessage: 'Durch Anwenden dieser Eingabeaufforderung wird die vorhandene Konfiguration überschrieben.',
|
||||
loading: 'Orchestrieren Sie die Anwendung für Sie...',
|
||||
resTitle: 'Generierte Eingabeaufforderung',
|
||||
description: 'Der Eingabeaufforderungsgenerator verwendet das konfigurierte Modell, um Eingabeaufforderungen für eine höhere Qualität und bessere Struktur zu optimieren. Bitte schreiben Sie klare und detaillierte Anweisungen.',
|
||||
version: 'Version',
|
||||
dismiss: 'Ablehnen',
|
||||
idealOutput: 'Ideale Ausgabe',
|
||||
optional: 'Optional',
|
||||
insertContext: 'Kontext einfügen',
|
||||
to: 'zu',
|
||||
optimizationNote: 'Optimierungsanmerkung',
|
||||
press: 'Drücken',
|
||||
versions: 'Versionen',
|
||||
instructionPlaceHolderLine2: 'Das Ausgabeformat ist inkorrekt, bitte halten Sie sich strikt an das JSON-Format.',
|
||||
latest: 'Neueste',
|
||||
optimizePromptTooltip: 'Optimieren im Eingabeaufforderungsgenerator',
|
||||
idealOutputPlaceholder: 'Beschreiben Sie Ihr ideales Antwortformat, die Länge, den Ton und die Inhaltsanforderungen...',
|
||||
newNoDataLine1: 'Schreiben Sie eine Anweisung in die linke Spalte und klicken Sie auf Generieren, um die Antwort zu sehen.',
|
||||
codeGenInstructionPlaceHolderLine: 'Je detaillierter das Feedback ist, wie zum Beispiel die Datentypen der Eingabe und Ausgabe sowie die Verarbeitung der Variablen, desto genauer wird die Codegenerierung sein.',
|
||||
instructionPlaceHolderLine1: 'Machen Sie die Ausgabe prägnanter und bewahren Sie die wichtigsten Punkte.',
|
||||
instructionPlaceHolderTitle: 'Beschreiben Sie, wie Sie diesen Prompt verbessern möchten. Zum Beispiel:',
|
||||
instructionPlaceHolderLine3: 'Der Ton ist zu scharf, bitte machen Sie ihn freundlicher.',
|
||||
},
|
||||
warningMessage: {
|
||||
timeoutExceeded: 'Die Ergebnisse werden aufgrund einer Zeitüberschreitung nicht angezeigt. Bitte beziehen Sie sich auf die Protokolle, um die vollständigen Ergebnisse zu erhalten.',
|
||||
},
|
||||
noResult: 'Hier wird die Ausgabe angezeigt.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
112
dify/web/i18n/de-DE/app-log.ts
Normal file
112
dify/web/i18n/de-DE/app-log.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
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:ss A',
|
||||
dateFormat: 'MM/DD/YYYY',
|
||||
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',
|
||||
triggered_from: 'AUSGELÖST DURCH',
|
||||
},
|
||||
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 <shareLink>zu teilen</shareLink> oder <testLink>zu testen</testLink>, 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',
|
||||
modelParams: 'Modellparameter',
|
||||
},
|
||||
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',
|
||||
last30days: 'Letzte 30 Tage',
|
||||
custom: 'Benutzerdefiniert',
|
||||
},
|
||||
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',
|
||||
fileListLabel: 'Details zur Datei',
|
||||
fileListDetail: 'Detail',
|
||||
testWithParams: 'Test mit Parametern',
|
||||
},
|
||||
promptLog: 'Prompt-Protokoll',
|
||||
agentLog: 'Agentenprotokoll',
|
||||
viewLog: 'Protokoll anzeigen',
|
||||
agentLogDetail: {
|
||||
agentMode: 'Agentenmodus',
|
||||
toolUsed: 'Verwendetes Werkzeug',
|
||||
iterations: 'Iterationen',
|
||||
iteration: 'Iteration',
|
||||
finalProcessing: 'Endverarbeitung',
|
||||
},
|
||||
triggerBy: {
|
||||
debugging: 'Fehlerbehebung',
|
||||
appRun: 'Webanwendung',
|
||||
webhook: 'Webhook',
|
||||
schedule: 'Zeitplan',
|
||||
plugin: 'Plugin',
|
||||
ragPipelineRun: 'RAG-Pipeline',
|
||||
ragPipelineDebugging: 'RAG-Debugging',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
189
dify/web/i18n/de-DE/app-overview.ts
Normal file
189
dify/web/i18n/de-DE/app-overview.ts
Normal file
@@ -0,0 +1,189 @@
|
||||
const translation = {
|
||||
welcome: {
|
||||
firstStepTip: 'Um zu beginnen,',
|
||||
enterKeyTip: 'geben Sie unten Ihren OpenAI-API-Schlüssel ein',
|
||||
getKeyTip: 'Holen Sie sich Ihren API-Schlüssel vom OpenAI-Dashboard',
|
||||
placeholder: 'Ihr OpenAI-API-Schlüssel (z.B. sk-xxxx)',
|
||||
},
|
||||
apiKeyInfo: {
|
||||
cloud: {
|
||||
trial: {
|
||||
title: 'Sie nutzen das Testkontingent von {{providerName}}.',
|
||||
description: 'Das Testkontingent wird für Ihre Testnutzung bereitgestellt. Bevor das Testkontingent aufgebraucht ist, richten Sie bitte Ihren eigenen Modellanbieter ein oder kaufen zusätzliches Kontingent.',
|
||||
},
|
||||
exhausted: {
|
||||
title: 'Ihr Testkontingent wurde aufgebraucht, bitte richten Sie Ihren APIKey ein.',
|
||||
description: 'Ihr Testkontingent ist aufgebraucht. Bitte richten Sie Ihren eigenen Modellanbieter ein oder kaufen zusätzliches Kontingent.',
|
||||
},
|
||||
},
|
||||
selfHost: {
|
||||
title: {
|
||||
row1: 'Um zu beginnen,',
|
||||
row2: 'richten Sie zuerst Ihren Modellanbieter ein.',
|
||||
},
|
||||
},
|
||||
callTimes: 'Aufrufzeiten',
|
||||
usedToken: 'Verwendetes Token',
|
||||
setAPIBtn: 'Zum Einrichten des Modellanbieters gehen',
|
||||
tryCloud: 'Oder probieren Sie die Cloud-Version von Dify mit kostenlosem Angebot aus',
|
||||
},
|
||||
overview: {
|
||||
title: 'Übersicht',
|
||||
appInfo: {
|
||||
explanation: 'Einsatzbereite AI-web app',
|
||||
accessibleAddress: 'Öffentliche URL',
|
||||
preview: 'Vorschau',
|
||||
regenerate: 'Regenerieren',
|
||||
regenerateNotice: 'Möchten Sie die öffentliche URL neu generieren?',
|
||||
preUseReminder: 'Bitte aktivieren Sie web app, bevor Sie fortfahren.',
|
||||
settings: {
|
||||
entry: 'Einstellungen',
|
||||
title: 'web app Einstellungen',
|
||||
webName: 'web app Name',
|
||||
webDesc: 'web app Beschreibung',
|
||||
webDescTip: 'Dieser Text wird auf der Clientseite angezeigt und bietet grundlegende Anleitungen zur Verwendung der Anwendung',
|
||||
webDescPlaceholder: 'Geben Sie die Beschreibung der web app ein',
|
||||
language: 'Sprache',
|
||||
workflow: {
|
||||
title: 'Workflow-Schritte',
|
||||
show: 'Anzeigen',
|
||||
hide: 'Verbergen',
|
||||
subTitle: 'Details zum Arbeitsablauf',
|
||||
showDesc: 'Ein- oder Ausblenden von Workflow-Details in der web app',
|
||||
},
|
||||
chatColorTheme: 'Chat-Farbschema',
|
||||
chatColorThemeDesc: 'Legen Sie das Farbschema des Chatbots fest',
|
||||
chatColorThemeInverted: 'Invertiert',
|
||||
invalidHexMessage: 'Ungültiger Hex-Wert',
|
||||
invalidPrivacyPolicy: 'Ungültiger Link zur Datenschutzrichtlinie. Bitte verwenden Sie einen gültigen Link, der mit http oder https beginnt',
|
||||
more: {
|
||||
entry: 'Mehr Einstellungen anzeigen',
|
||||
copyright: 'Urheberrecht',
|
||||
copyRightPlaceholder: 'Geben Sie den Namen des Autors oder der Organisation ein',
|
||||
privacyPolicy: 'Datenschutzrichtlinie',
|
||||
privacyPolicyPlaceholder: 'Geben Sie den Link zur Datenschutzrichtlinie ein',
|
||||
privacyPolicyTip: 'Hilft Besuchern zu verstehen, welche Daten die Anwendung sammelt, siehe Difys <privacyPolicyLink>Datenschutzrichtlinie</privacyPolicyLink>.',
|
||||
customDisclaimer: 'Benutzerdefinierte Haftungsausschluss',
|
||||
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',
|
||||
copyrightTip: 'Copyright-Informationen in der Webapp anzeigen',
|
||||
copyrightTooltip: 'Bitte führen Sie ein Upgrade auf den Professional-Plan oder höher durch',
|
||||
},
|
||||
sso: {
|
||||
title: 'web app SSO',
|
||||
description: 'Alle Benutzer müssen sich mit SSO anmelden, bevor sie web app verwenden können',
|
||||
label: 'SSO-Authentifizierung',
|
||||
tooltip: 'Wenden Sie sich an den Administrator, um web app SSO zu aktivieren',
|
||||
},
|
||||
modalTip: 'Einstellungen für clientseitige Web-Apps.',
|
||||
},
|
||||
embedded: {
|
||||
entry: 'Eingebettet',
|
||||
title: 'Einbetten auf der Website',
|
||||
explanation: 'Wählen Sie die Art und Weise, wie die Chat-App auf Ihrer Website eingebettet wird',
|
||||
iframe: 'Um die Chat-App an einer beliebigen Stelle auf Ihrer Website hinzuzufügen, fügen Sie diesen iframe in Ihren HTML-Code ein.',
|
||||
scripts: 'Um eine Chat-App unten rechts auf Ihrer Website hinzuzufügen, fügen Sie diesen Code in Ihren HTML-Code ein.',
|
||||
chromePlugin: 'Installieren Sie die Dify Chatbot Chrome-Erweiterung',
|
||||
copied: 'Kopiert',
|
||||
copy: 'Kopieren',
|
||||
},
|
||||
qrcode: {
|
||||
title: 'QR-Code zum Teilen',
|
||||
scan: 'Teilen Sie die Anwendung per Scan',
|
||||
download: 'QR-Code herunterladen',
|
||||
},
|
||||
customize: {
|
||||
way: 'Art',
|
||||
entry: 'Anpassen',
|
||||
title: 'AI-web app anpassen',
|
||||
explanation: 'Sie können das Frontend der Web-App an Ihre Szenarien und Stilbedürfnisse anpassen.',
|
||||
way1: {
|
||||
name: 'Forken Sie den Client-Code, ändern Sie ihn und deployen Sie ihn auf Vercel (empfohlen)',
|
||||
step1: 'Forken Sie den Client-Code und ändern Sie ihn',
|
||||
step1Tip: 'Klicken Sie hier, um den Quellcode in Ihr GitHub-Konto zu forken und den Code zu ändern',
|
||||
step1Operation: 'Dify-WebClient',
|
||||
step2: 'Deployen auf Vercel',
|
||||
step2Tip: 'Klicken Sie hier, um das Repository in Vercel zu importieren und zu deployen',
|
||||
step2Operation: 'Repository importieren',
|
||||
step3: 'Umgebungsvariablen konfigurieren',
|
||||
step3Tip: 'Fügen Sie die folgenden Umgebungsvariablen in Vercel hinzu',
|
||||
},
|
||||
way2: {
|
||||
name: 'Clientseitigen Code schreiben, um die API aufzurufen, und ihn auf einem Server deployen',
|
||||
operation: 'Dokumentation',
|
||||
},
|
||||
},
|
||||
launch: 'Abschießen',
|
||||
enableTooltip: {
|
||||
description: 'Um diese Funktion zu aktivieren, fügen Sie bitte einen Benutzer-Eingabe-Knoten zum Canvas hinzu. (Kann sich bereits im Entwurf befinden, wird nach der Veröffentlichung wirksam)',
|
||||
learnMore: 'Mehr erfahren',
|
||||
},
|
||||
title: 'Webanwendung',
|
||||
},
|
||||
apiInfo: {
|
||||
title: 'Backend-Service-API',
|
||||
explanation: 'Einfach in Ihre Anwendung integrierbar',
|
||||
accessibleAddress: 'Service-API-Endpunkt',
|
||||
doc: 'API-Referenz',
|
||||
},
|
||||
status: {
|
||||
running: 'In Betrieb',
|
||||
disable: 'Deaktivieren',
|
||||
},
|
||||
triggerInfo: {
|
||||
title: 'Auslöser',
|
||||
explanation: 'Verwaltung von Workflow-Triggern',
|
||||
triggersAdded: '{{count}} Auslöser hinzugefügt',
|
||||
noTriggerAdded: 'Kein Auslöser hinzugefügt',
|
||||
triggerStatusDescription: 'Der Status des Trigger-Knotens wird hier angezeigt. (Kann bereits im Entwurf vorhanden sein, tritt nach der Veröffentlichung in Kraft)',
|
||||
learnAboutTriggers: 'Erfahren Sie mehr über Auslöser',
|
||||
},
|
||||
disableTooltip: {
|
||||
triggerMode: 'Die Funktion {{feature}} wird im Trigger-Knoten-Modus nicht unterstützt.',
|
||||
},
|
||||
},
|
||||
analysis: {
|
||||
title: 'Analyse',
|
||||
ms: 'ms',
|
||||
tokenPS: 'Token/s',
|
||||
totalMessages: {
|
||||
title: 'Gesamtnachrichten',
|
||||
explanation: 'Tägliche Anzahl der KI-Interaktionen.',
|
||||
},
|
||||
totalConversations: {
|
||||
title: 'Gesamte Konversationen',
|
||||
explanation: 'Tägliche Anzahl der KI-Konversationen; Prompt-Engineering/Debugging ausgeschlossen.',
|
||||
},
|
||||
activeUsers: {
|
||||
title: 'Aktive Benutzer',
|
||||
explanation: 'Einzigartige Benutzer, die mit AI Q&A führen; Prompt-Engineering/Debugging ausgenommen.',
|
||||
},
|
||||
tokenUsage: {
|
||||
title: 'Token-Verbrauch',
|
||||
explanation: 'Spiegelt den täglichen Token-Verbrauch des Sprachmodells für die Anwendung wider, nützlich für Kostenkontrollzwecke.',
|
||||
consumed: 'Verbraucht',
|
||||
},
|
||||
avgSessionInteractions: {
|
||||
title: 'Durchschn. Sitzungsinteraktionen',
|
||||
explanation: 'Fortlaufende Benutzer-KI-Kommunikationszählung; für konversationsbasierte Apps.',
|
||||
},
|
||||
userSatisfactionRate: {
|
||||
title: 'Benutzerzufriedenheitsrate',
|
||||
explanation: 'Die Anzahl der Likes pro 1.000 Nachrichten. Dies zeigt den Anteil der Antworten an, mit denen die Benutzer sehr zufrieden sind.',
|
||||
},
|
||||
avgResponseTime: {
|
||||
title: 'Durchschn. Antwortzeit',
|
||||
explanation: 'Zeit (ms) für die AI, um zu verarbeiten/antworten; für textbasierte Apps.',
|
||||
},
|
||||
tps: {
|
||||
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',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
351
dify/web/i18n/de-DE/app.ts
Normal file
351
dify/web/i18n/de-DE/app.ts
Normal file
@@ -0,0 +1,351 @@
|
||||
const translation = {
|
||||
createApp: 'Neue App erstellen',
|
||||
types: {
|
||||
all: 'Alle',
|
||||
completion: 'Vervollständigung',
|
||||
workflow: 'Arbeitsablauf',
|
||||
agent: 'Agent',
|
||||
chatbot: 'Chatbot',
|
||||
basic: 'Grundlegend',
|
||||
advanced: 'Chatflow',
|
||||
},
|
||||
modes: {
|
||||
},
|
||||
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',
|
||||
newApp: {
|
||||
captionName: 'App-Symbol & Name',
|
||||
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',
|
||||
startFromTemplate: 'Aus Vorlage erstellen',
|
||||
appNamePlaceholder: 'Geben Sie Ihrer App einen Namen',
|
||||
startFromBlank: 'Aus Leer erstellen',
|
||||
workflowWarning: 'Derzeit in der Beta-Phase',
|
||||
captionDescription: 'Beschreibung',
|
||||
useTemplate: 'Diese Vorlage verwenden',
|
||||
appDescriptionPlaceholder: 'Geben Sie die Beschreibung der App ein',
|
||||
caution: 'Vorsicht',
|
||||
Confirm: 'Bestätigen',
|
||||
appCreateDSLErrorTitle: 'Inkompatibilität der Version',
|
||||
appCreateDSLErrorPart2: 'Möchten Sie fortfahren?',
|
||||
appCreateDSLErrorPart4: 'Systemgestützte DSL-Version:',
|
||||
appCreateDSLErrorPart1: 'Es wurde ein signifikanter Unterschied bei den DSL-Versionen festgestellt. Das Erzwingen des Imports kann zu Fehlfunktionen der Anwendung führen.',
|
||||
appCreateDSLErrorPart3: 'Aktuelle DSL-Version der Anwendung:',
|
||||
appCreateDSLWarning: 'Achtung: Ein unterschiedlicher DSL-Versionsunterschied kann sich auf bestimmte Funktionen auswirken',
|
||||
learnMore: 'Weitere Informationen',
|
||||
optional: 'Wahlfrei',
|
||||
noTemplateFound: 'Keine Vorlagen gefunden',
|
||||
workflowUserDescription: 'Autonome KI-Arbeitsabläufe visuell per Drag-and-Drop erstellen.',
|
||||
foundResults: '{{count}} Befund',
|
||||
chatbotShortDescription: 'LLM-basierter Chatbot mit einfacher Einrichtung',
|
||||
completionUserDescription: 'Erstellen Sie schnell einen KI-Assistenten für Textgenerierungsaufgaben mit einfacher Konfiguration.',
|
||||
noAppsFound: 'Keine Apps gefunden',
|
||||
advancedShortDescription: 'Workflow optimiert für mehrstufige Chats',
|
||||
forAdvanced: 'FÜR FORTGESCHRITTENE',
|
||||
chooseAppType: 'App-Typ auswählen',
|
||||
completionShortDescription: 'KI-Assistent für Textgenerierungsaufgaben',
|
||||
forBeginners: 'Einfachere App-Typen',
|
||||
noIdeaTip: 'Keine Ideen? Schauen Sie sich unsere Vorlagen an',
|
||||
workflowShortDescription: 'Agentischer Ablauf für intelligente Automatisierungen',
|
||||
noTemplateFoundTip: 'Versuchen Sie, mit verschiedenen Schlüsselwörtern zu suchen.',
|
||||
advancedUserDescription: 'Workflow mit Speicherfunktionen und Chatbot-Oberfläche.',
|
||||
chatbotUserDescription: 'Erstellen Sie schnell einen LLM-basierten Chatbot mit einfacher Konfiguration. Sie können später zu Chatflow wechseln.',
|
||||
foundResult: '{{count}} Ergebnis',
|
||||
agentUserDescription: 'Ein intelligenter Agent, der in der Lage ist, iteratives Denken zu führen und autonome Werkzeuge zu verwenden, um Aufgabenziele zu erreichen.',
|
||||
agentShortDescription: 'Intelligenter Agent mit logischem Denken und autonomer Werkzeugnutzung',
|
||||
dropDSLToCreateApp: 'Ziehen Sie die DSL-Datei hierher, um die App zu erstellen',
|
||||
import: 'Importieren',
|
||||
},
|
||||
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',
|
||||
advanced: 'Chatflow',
|
||||
},
|
||||
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',
|
||||
},
|
||||
arize: {
|
||||
title: 'Arize',
|
||||
description: 'Unternehmensgerechte LLM-Observierbarkeit, Online- und Offline-Bewertung, Überwachung und Experimentierung—unterstützt durch OpenTelemetry. Speziell für LLM- und agentenbasierte Anwendungen entwickelt.',
|
||||
},
|
||||
phoenix: {
|
||||
title: 'Phoenix',
|
||||
description: 'Open-Source- und OpenTelemetry-basierte Plattform für Observierbarkeit, Bewertung, Prompt-Engineering und Experimentierung für Ihre LLM-Workflows und -Agenten.',
|
||||
},
|
||||
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.',
|
||||
password: 'Passwort',
|
||||
databricksHost: 'Databricks-Workspace-URL',
|
||||
clientSecret: 'OAuth-Client-Geheimnis',
|
||||
personalAccessToken: 'Persönliches Zugriffstoken (veraltet)',
|
||||
experimentId: 'Experiment-ID',
|
||||
username: 'Benutzername',
|
||||
trackingUri: 'Tracking-URI',
|
||||
clientId: 'OAuth-Client-ID',
|
||||
},
|
||||
view: 'Ansehen',
|
||||
opik: {
|
||||
description: 'Opik ist eine Open-Source-Plattform zum Bewerten, Testen und Überwachen von LLM-Anwendungen.',
|
||||
title: 'Opik',
|
||||
},
|
||||
weave: {
|
||||
title: 'Weben',
|
||||
description: 'Weave ist eine Open-Source-Plattform zur Bewertung, Testung und Überwachung von LLM-Anwendungen.',
|
||||
},
|
||||
aliyun: {
|
||||
title: 'Cloud-Monitor',
|
||||
description: 'Die vollständig verwaltete und wartungsfreie Observability-Plattform von Alibaba Cloud ermöglicht eine sofortige Überwachung, Verfolgung und Bewertung von Dify-Anwendungen.',
|
||||
},
|
||||
mlflow: {
|
||||
title: 'MLflow',
|
||||
description: 'Open-Source-LLMOps-Plattform mit Experiment-Tracking, Observability und Evaluierungen für die sichere Entwicklung von AI/LLM-Anwendungen.',
|
||||
},
|
||||
databricks: {
|
||||
title: 'Databricks',
|
||||
description: 'Databricks bietet vollständig verwaltetes MLflow mit starker Governance und Sicherheit für die Speicherung von Trace-Daten.',
|
||||
},
|
||||
tencent: {
|
||||
title: 'Tencent APM',
|
||||
description: 'Tencent Application Performance Monitoring bietet umfassendes Tracing und multidimensionale Analyse für LLM-Anwendungen.',
|
||||
},
|
||||
},
|
||||
answerIcon: {
|
||||
descriptionInExplore: 'Gibt an, ob das web app Symbol zum Ersetzen 🤖 in Explore verwendet werden soll',
|
||||
title: 'Verwenden Sie das web app Symbol, um es zu ersetzen 🤖',
|
||||
description: 'Gibt an, ob das web app Symbol zum Ersetzen 🤖 in der freigegebenen Anwendung verwendet werden soll',
|
||||
},
|
||||
importFromDSLUrlPlaceholder: 'DSL-Link hier einfügen',
|
||||
dslUploader: {
|
||||
button: 'Datei per Drag & Drop ablegen oder',
|
||||
browse: 'Durchsuchen',
|
||||
},
|
||||
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',
|
||||
mermaid: {
|
||||
handDrawn: 'Handgezeichnet',
|
||||
classic: 'Klassisch',
|
||||
},
|
||||
openInExplore: 'In Explore öffnen',
|
||||
newAppFromTemplate: {
|
||||
sidebar: {
|
||||
Recommended: 'Empfohlen',
|
||||
Assistant: 'Assistent',
|
||||
Writing: 'Schrift',
|
||||
Workflow: 'Arbeitsablauf',
|
||||
Programming: 'Programmieren',
|
||||
Agent: 'Agent',
|
||||
HR: 'HR',
|
||||
},
|
||||
byCategories: 'NACH KATEGORIEN',
|
||||
searchAllTemplate: 'Alle Vorlagen durchsuchen...',
|
||||
},
|
||||
showMyCreatedAppsOnly: 'Nur meine erstellten Apps anzeigen',
|
||||
appSelector: {
|
||||
placeholder: 'Wählen Sie eine App aus...',
|
||||
params: 'APP-PARAMETER',
|
||||
label: 'APP',
|
||||
noParams: 'Keine Parameter erforderlich',
|
||||
},
|
||||
structOutput: {
|
||||
required: 'Erforderlich',
|
||||
structured: 'Strukturiert',
|
||||
structuredTip: 'Strukturierte Ausgaben ist eine Funktion, die sicherstellt, dass das Modell immer Antworten generiert, die Ihrem bereitgestellten JSON-Schema entsprechen.',
|
||||
modelNotSupportedTip: 'Das aktuelle Modell unterstützt diese Funktion nicht und wird automatisch auf Eingabeinjektion heruntergestuft.',
|
||||
modelNotSupported: 'Modell nicht unterstützt',
|
||||
configure: 'Konfigurieren',
|
||||
notConfiguredTip: 'Die strukturierte Ausgabe wurde bisher nicht konfiguriert.',
|
||||
moreFillTip: 'Maximal 10 Ebenen der Verschachtelung anzeigen',
|
||||
LLMResponse: 'LLM-Antwort',
|
||||
},
|
||||
accessItemsDescription: {
|
||||
anyone: 'Jeder kann auf die Webanwendung zugreifen.',
|
||||
specific: 'Nur bestimmte Gruppen oder Mitglieder können auf die Webanwendung zugreifen.',
|
||||
organization: 'Jeder in der Organisation kann auf die Webanwendung zugreifen.',
|
||||
external: 'Nur authentifizierte externe Benutzer können auf die Webanwendung zugreifen.',
|
||||
},
|
||||
accessControlDialog: {
|
||||
accessItems: {
|
||||
anyone: 'Jeder mit dem Link',
|
||||
specific: 'Spezifische Gruppen oder Mitglieder',
|
||||
organization: 'Nur Mitglieder innerhalb des Unternehmens',
|
||||
external: 'Authentifizierte externe Benutzer',
|
||||
},
|
||||
operateGroupAndMember: {
|
||||
searchPlaceholder: 'Gruppen und Mitglieder suchen',
|
||||
allMembers: 'Alle Mitglieder',
|
||||
expand: 'Erweitern',
|
||||
noResult: 'Kein Ergebnis',
|
||||
},
|
||||
title: 'Zugriffskontrolle für Webanwendungen',
|
||||
description: 'Webanwendungszugriffsberechtigungen festlegen',
|
||||
accessLabel: 'Wer hat Zugang',
|
||||
groups_one: '{{count}} GRUPPE',
|
||||
members_one: '{{count}} MITGLIED',
|
||||
members_other: '{{count}} MITGLIEDER',
|
||||
noGroupsOrMembers: 'Keine Gruppen oder Mitglieder ausgewählt',
|
||||
webAppSSONotEnabledTip: 'Bitte kontaktieren Sie den Unternehmensadministrator, um die Authentifizierungsmethode der Webanwendung zu konfigurieren.',
|
||||
updateSuccess: 'Erfolgreich aktualisiert',
|
||||
groups_other: '{{count}} GRUPPEN',
|
||||
},
|
||||
publishApp: {
|
||||
title: 'Wer kann auf die Webanwendung zugreifen?',
|
||||
notSetDesc: 'Derzeit kann niemand auf die Webanwendung zugreifen. Bitte setzen Sie die Berechtigungen.',
|
||||
notSet: 'Nicht festgelegt',
|
||||
},
|
||||
accessControl: 'Zugriffskontrolle für Webanwendungen',
|
||||
noAccessPermission: 'Keine Berechtigung zum Zugriff auf die Webanwendung',
|
||||
maxActiveRequests: 'Maximale gleichzeitige Anfragen',
|
||||
maxActiveRequestsPlaceholder: 'Geben Sie 0 für unbegrenzt ein',
|
||||
maxActiveRequestsTip: 'Maximale Anzahl gleichzeitiger aktiver Anfragen pro App (0 für unbegrenzt)',
|
||||
gotoAnything: {
|
||||
actions: {
|
||||
searchPlugins: 'Plugins durchsuchen',
|
||||
searchKnowledgeBases: 'Wissensdatenbanken durchsuchen',
|
||||
searchWorkflowNodes: 'Workflow-Knoten durchsuchen',
|
||||
searchKnowledgeBasesDesc: 'Suchen und navigieren Sie zu Ihren Wissensdatenbanken',
|
||||
searchApplications: 'Anwendungen durchsuchen',
|
||||
searchWorkflowNodesHelp: 'Diese Funktion funktioniert nur, wenn ein Workflow angezeigt wird. Navigieren Sie zuerst zu einem Workflow.',
|
||||
searchApplicationsDesc: 'Suchen und navigieren Sie zu Ihren Anwendungen',
|
||||
searchPluginsDesc: 'Suchen und navigieren Sie zu Ihren Plugins',
|
||||
searchWorkflowNodesDesc: 'Suchen und Springen zu Knoten im aktuellen Workflow nach Name oder Typ',
|
||||
themeCategoryDesc: 'Anwendungsthema wechseln',
|
||||
themeSystemDesc: 'Folgen Sie dem Aussehen Ihres Betriebssystems',
|
||||
themeLight: 'Helles Design',
|
||||
runTitle: 'Befehle',
|
||||
languageCategoryTitle: 'Sprache',
|
||||
themeDark: 'Dunkles Thema',
|
||||
languageChangeDesc: 'UI-Sprache ändern',
|
||||
languageCategoryDesc: 'Wechseln Sie die Schnittstellensprache',
|
||||
themeSystem: 'Systemthema',
|
||||
themeLightDesc: 'Verwenden Sie das helle Erscheinungsbild',
|
||||
themeDarkDesc: 'Verwenden Sie das dunkle Erscheinungsbild',
|
||||
runDesc: 'Führen Sie schnelle Befehle aus (Thema, Sprache, ...)',
|
||||
themeCategoryTitle: 'Thema',
|
||||
slashDesc: 'Führen Sie Befehle wie /theme, /lang aus',
|
||||
accountDesc: 'Gehe zur Kontoseite',
|
||||
feedbackDesc: 'Offene Diskussionen zum Feedback der Gemeinschaft',
|
||||
communityDesc: 'Offene Discord-Community',
|
||||
docDesc: 'Öffnen Sie die Hilfedokumentation',
|
||||
},
|
||||
emptyState: {
|
||||
noPluginsFound: 'Keine Plugins gefunden',
|
||||
noWorkflowNodesFound: 'Keine Workflow-Knoten gefunden',
|
||||
noKnowledgeBasesFound: 'Keine Wissensdatenbanken gefunden',
|
||||
noAppsFound: 'Keine Apps gefunden',
|
||||
tryDifferentTerm: 'Versuchen Sie einen anderen Suchbegriff oder entfernen Sie den {{mode}}-Filter',
|
||||
trySpecificSearch: 'Versuchen Sie {{shortcuts}} für spezifische Suchen',
|
||||
},
|
||||
groups: {
|
||||
knowledgeBases: 'Wissensdatenbanken',
|
||||
plugins: 'Plugins',
|
||||
apps: 'Apps',
|
||||
workflowNodes: 'Workflow-Knoten',
|
||||
commands: 'Befehle',
|
||||
},
|
||||
clearToSearchAll: 'Löschen Sie @, um alle zu durchsuchen',
|
||||
searchTemporarilyUnavailable: 'Suche vorübergehend nicht verfügbar',
|
||||
searchFailed: 'Suche fehlgeschlagen',
|
||||
someServicesUnavailable: 'Einige Suchdienste sind nicht verfügbar',
|
||||
servicesUnavailableMessage: 'Bei einigen Suchdiensten können Probleme auftreten. Versuchen Sie es gleich noch einmal.',
|
||||
noResults: 'Keine Ergebnisse gefunden',
|
||||
searchPlaceholder: 'Suchen Sie nach Befehlen, oder geben Sie @ ein...',
|
||||
useAtForSpecific: 'Verwenden von @ für bestimmte Typen',
|
||||
searchTitle: 'Suchen Sie nach irgendetwas',
|
||||
searching: 'Suche...',
|
||||
selectSearchType: 'Wählen Sie aus, wonach gesucht werden soll',
|
||||
commandHint: 'Geben Sie @ ein, um nach Kategorie zu suchen',
|
||||
searchHint: 'Beginnen Sie mit der Eingabe, um alles sofort zu durchsuchen',
|
||||
resultCount: '{{count}} Ergebnis',
|
||||
resultCount_other: '{{count}} Ergebnisse',
|
||||
inScope: 'in {{scope}}s',
|
||||
noMatchingCommands: 'Keine übereinstimmenden Befehle gefunden',
|
||||
tryDifferentSearch: 'Versuchen Sie es mit einem anderen Suchbegriff',
|
||||
slashHint: 'Geben Sie / ein, um alle verfügbaren Befehle anzuzeigen.',
|
||||
tips: 'Drücken Sie ↑↓, um zu navigieren',
|
||||
pressEscToClose: 'Drücken Sie ESC, um zu schließen',
|
||||
startTyping: 'Beginnen Sie mit der Eingabe, um zu suchen',
|
||||
selectToNavigate: 'Auswählen, um zu navigieren',
|
||||
},
|
||||
notPublishedYet: 'App ist noch nicht veröffentlicht',
|
||||
noUserInputNode: 'Fehlender Benutzereingabeknoten',
|
||||
}
|
||||
|
||||
export default translation
|
||||
203
dify/web/i18n/de-DE/billing.ts
Normal file
203
dify/web/i18n/de-DE/billing.ts
Normal file
@@ -0,0 +1,203 @@
|
||||
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: {
|
||||
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',
|
||||
contactSales: 'Vertrieb kontaktieren',
|
||||
talkToSales: 'Mit dem Vertrieb sprechen',
|
||||
modelProviders: 'Modellanbieter',
|
||||
buildApps: 'Apps bauen',
|
||||
vectorSpace: 'Vektorraum',
|
||||
vectorSpaceTooltip: 'Vektorraum ist das Langzeitspeichersystem, das erforderlich ist, damit LLMs Ihre Daten verstehen können.',
|
||||
documentProcessingPriority: 'Priorität der Dokumentenverarbeitung',
|
||||
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.',
|
||||
titlePerMonth: '{{count,number}} Nachrichten/Monat',
|
||||
},
|
||||
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',
|
||||
unlimitedApiRate: 'Keine API-Ratebeschränkung',
|
||||
teamMember_other: '{{count,number}} Teammitglieder',
|
||||
priceTip: 'pro Arbeitsbereich/',
|
||||
teamWorkspace: '{{count,number}} Team Arbeitsplatz',
|
||||
annualBilling: 'Jährliche Abrechnung',
|
||||
self: 'Selbst gehostet',
|
||||
freeTrialTipPrefix: 'Melden Sie sich an und erhalten Sie ein',
|
||||
cloud: 'Cloud-Dienst',
|
||||
apiRateLimitTooltip: 'Die API-Datenbeschränkung gilt für alle Anfragen, die über die Dify-API gemacht werden, einschließlich Textgenerierung, Chat-Konversationen, Workflow-Ausführungen und Dokumentenverarbeitung.',
|
||||
getStarted: 'Loslegen',
|
||||
apiRateLimitUnit: '{{count,number}}',
|
||||
documentsTooltip: 'Vorgabe für die Anzahl der Dokumente, die aus der Wissensdatenquelle importiert werden.',
|
||||
apiRateLimit: 'API-Datenlimit',
|
||||
documents: '{{count,number}} Wissensdokumente',
|
||||
comparePlanAndFeatures: 'Pläne und Funktionen vergleichen',
|
||||
freeTrialTipSuffix: 'Keine Kreditkarte erforderlich',
|
||||
freeTrialTip: 'kostenlose Testversion von 200 OpenAI-Anfragen.',
|
||||
documentsRequestQuota: '{{count,number}}/min Wissensanforderungsratenlimit',
|
||||
teamMember_one: '{{count,number}} Teammitglied',
|
||||
documentsRequestQuotaTooltip: 'Gibt die Gesamtzahl der Aktionen an, die ein Arbeitsbereich pro Minute innerhalb der Wissensbasis ausführen kann, einschließlich der Erstellung, Löschung, Aktualisierung von Datensätzen, des Hochladens von Dokumenten, von Änderungen, der Archivierung und von Abfragen in der Wissensbasis. Diese Kennzahl wird verwendet, um die Leistung von Anfragen an die Wissensbasis zu bewerten. Wenn ein Sandbox-Nutzer beispielsweise in einer Minute 10 aufeinanderfolgende Testdurchläufe durchführt, wird sein Arbeitsbereich für die nächste Minute vorübergehend daran gehindert, die folgenden Aktionen auszuführen: Erstellung, Löschung, Aktualisierung von Datensätzen sowie das Hochladen oder Ändern von Dokumenten.',
|
||||
startBuilding: 'Beginnen Sie mit der Entwicklung',
|
||||
taxTipSecond: 'Wenn in Ihrer Region keine relevanten Steuervorschriften gelten, wird an der Kasse keine Steuer angezeigt und Ihnen werden während der gesamten Abonnementlaufzeit keine zusätzlichen Gebühren berechnet.',
|
||||
taxTip: 'Alle Abonnementspreise (monatlich/jährlich) verstehen sich zuzüglich der geltenden Steuern (z. B. MwSt., Umsatzsteuer).',
|
||||
triggerEvents: {
|
||||
tooltip: 'Die Anzahl der Ereignisse, die Workflows automatisch über Plugin-, Zeitplan- oder Webhook-Auslöser starten.',
|
||||
unlimited: 'Unbegrenzte Auslöser-Ereignisse',
|
||||
sandbox: '{{count,number}} Ereignisse auslösen',
|
||||
professional: '{{count,number}} Auslöseereignisse/Monat',
|
||||
},
|
||||
workflowExecution: {
|
||||
faster: 'Schnellere Arbeitsablauf-Ausführung',
|
||||
tooltip: 'Priorität und Geschwindigkeit der Arbeitsablauf-Ausführungswarteschlange.',
|
||||
priority: 'Prioritäts-Workflow-Ausführung',
|
||||
standard: 'Standard-Workflow-Ausführung',
|
||||
},
|
||||
startNodes: {
|
||||
unlimited: 'Unbegrenzte Auslöser/Workflows',
|
||||
limited: 'Bis zu {{count}} Auslöser/Workflows',
|
||||
},
|
||||
title: {
|
||||
plans: 'Pläne',
|
||||
description: 'Wählen Sie den Plan, der am besten zu den Bedürfnissen Ihres Teams passt.',
|
||||
},
|
||||
},
|
||||
plans: {
|
||||
sandbox: {
|
||||
name: 'Sandbox',
|
||||
description: '200 mal GPT kostenlos testen',
|
||||
for: 'Kostenlose Testversion der Kernfunktionen',
|
||||
},
|
||||
professional: {
|
||||
name: 'Professionell',
|
||||
description: 'Für Einzelpersonen und kleine Teams, um mehr Leistung erschwinglich freizuschalten.',
|
||||
for: 'Für unabhängige Entwickler/kleine Teams',
|
||||
},
|
||||
team: {
|
||||
name: 'Team',
|
||||
description: 'Zusammenarbeiten ohne Grenzen und Top-Leistung genießen.',
|
||||
for: 'Für mittelgroße Teams',
|
||||
},
|
||||
enterprise: {
|
||||
name: 'Unternehmen',
|
||||
description: 'Erhalten Sie volle Fähigkeiten und Unterstützung für großangelegte, missionskritische Systeme.',
|
||||
includesTitle: 'Alles im Team-Tarif, plus:',
|
||||
btnText: 'Vertrieb kontaktieren',
|
||||
price: 'Benutzerdefiniert',
|
||||
priceTip: 'Jährliche Abrechnung nur',
|
||||
for: 'Für große Teams',
|
||||
features: ['Unternehmensgerechte skalierbare Bereitstellungslösungen', 'Gewerbliche Lizenzgenehmigung', 'Exklusive Unternehmensfunktionen', 'Mehrere Arbeitsbereiche & Unternehmensverwaltung', 'SSO', 'Von Dify-Partnern ausgehandelte SLAs', 'Erweiterte Sicherheit & Steuerungen', 'Updates und Wartung offiziell von Dify', 'Professioneller technischer Support'],
|
||||
},
|
||||
community: {
|
||||
description: 'Für Einzelbenutzer, kleine Teams oder nicht-kommerzielle Projekte',
|
||||
for: 'Für Einzelbenutzer, kleine Teams oder nicht-kommerzielle Projekte',
|
||||
btnText: 'Beginnen Sie mit der Gemeinschaft',
|
||||
price: 'Kostenlos',
|
||||
includesTitle: 'Kostenlose Funktionen:',
|
||||
name: 'Gemeinschaft',
|
||||
features: ['Alle Kernfunktionen im öffentlichen Repository veröffentlicht', 'Einzelarbeitsbereich', 'Entspricht der Dify Open-Source-Lizenz'],
|
||||
},
|
||||
premium: {
|
||||
includesTitle: 'Alles aus der Community, plus:',
|
||||
name: 'Premium',
|
||||
priceTip: 'Basierend auf dem Cloud-Marktplatz',
|
||||
for: 'Für mittelgroße Organisationen und Teams',
|
||||
btnText: 'Jetzt Premium erhalten in',
|
||||
comingSoon: 'Microsoft Azure- und Google Cloud-Support demnächst verfügbar',
|
||||
description: 'Für mittelgroße Organisationen und Teams',
|
||||
price: 'Skalierbar',
|
||||
features: ['Selbstverwaltete Zuverlässigkeit durch verschiedene Cloud-Anbieter', 'Einzelarbeitsbereich', 'WebApp-Logo & Markenanpassung', 'Priorisierte E-Mail- und Chatsupport'],
|
||||
},
|
||||
},
|
||||
vectorSpace: {
|
||||
fullTip: 'Vektorraum ist voll.',
|
||||
fullSolution: 'Upgraden Sie Ihren Tarif, um mehr Speicherplatz zu erhalten.',
|
||||
},
|
||||
apps: {
|
||||
contactUs: 'Kontaktieren Sie uns',
|
||||
fullTip1: 'Upgrade, um mehr Apps zu erstellen',
|
||||
fullTip2des: 'Es wird empfohlen, inaktive Anwendungen zu bereinigen, um Speicherplatz freizugeben, oder uns zu kontaktieren.',
|
||||
fullTip1des: 'Sie haben das Limit für das Erstellen von Apps in diesem Plan erreicht.',
|
||||
fullTip2: 'Limit erreicht',
|
||||
},
|
||||
annotatedResponse: {
|
||||
fullTipLine1: 'Upgraden Sie Ihren Tarif, um',
|
||||
fullTipLine2: 'mehr Konversationen zu annotieren.',
|
||||
quotaTitle: 'Kontingent für Annotation-Antworten',
|
||||
},
|
||||
usagePage: {
|
||||
buildApps: 'Apps erstellen',
|
||||
annotationQuota: 'Annotierungsquote',
|
||||
teamMembers: 'Teammitglieder',
|
||||
documentsUploadQuota: 'Dokumenten-Upload-Quota',
|
||||
vectorSpace: 'Wissensdatenbank',
|
||||
vectorSpaceTooltip: 'Dokumente mit dem Hochqualitäts-Indexierungsmodus verbrauchen Ressourcen des Knowledge Data Storage. Wenn der Knowledge Data Storage die Grenze erreicht, werden keine neuen Dokumente hochgeladen.',
|
||||
perMonth: 'pro Monat',
|
||||
triggerEvents: 'Auslöser-Ereignisse',
|
||||
resetsIn: 'Setzt in {{count,number}} Tagen zurück',
|
||||
},
|
||||
teamMembers: 'Teammitglieder',
|
||||
triggerLimitModal: {
|
||||
dismiss: 'Schließen',
|
||||
upgrade: 'Aktualisieren',
|
||||
title: 'Upgrade, um mehr Auslöser-Ereignisse freizuschalten',
|
||||
usageTitle: 'AUSLÖSEEREIGNISSE',
|
||||
description: 'Sie haben das Limit der Workflow-Ereignisauslöser für diesen Plan erreicht.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
788
dify/web/i18n/de-DE/common.ts
Normal file
788
dify/web/i18n/de-DE/common.ts
Normal file
@@ -0,0 +1,788 @@
|
||||
const translation = {
|
||||
api: {
|
||||
success: 'Erfolg',
|
||||
actionSuccess: 'Aktion erfolgreich',
|
||||
saved: 'Gespeichert',
|
||||
create: 'Erstellt',
|
||||
remove: 'Entfernt',
|
||||
},
|
||||
operation: {
|
||||
create: 'Erstellen',
|
||||
confirm: 'Bestätigen',
|
||||
cancel: 'Abbrechen',
|
||||
clear: 'Leeren',
|
||||
save: 'Speichern',
|
||||
saveAndEnable: 'Speichern und Aktivieren',
|
||||
edit: 'Bearbeiten',
|
||||
add: 'Hinzufügen',
|
||||
added: 'Hinzugefügt',
|
||||
refresh: 'Neustart',
|
||||
reset: 'Zurücksetzen',
|
||||
search: 'Suchen',
|
||||
change: 'Ändern',
|
||||
remove: 'Entfernen',
|
||||
send: 'Senden',
|
||||
copy: 'Kopieren',
|
||||
lineBreak: 'Zeilenumbruch',
|
||||
sure: 'Ich bin sicher',
|
||||
download: 'Herunterladen',
|
||||
delete: 'Löschen',
|
||||
settings: 'Einstellungen',
|
||||
setup: 'Einrichten',
|
||||
getForFree: 'Kostenlos erhalten',
|
||||
reload: 'Neu laden',
|
||||
ok: 'OK',
|
||||
log: 'Protokoll',
|
||||
learnMore: 'Mehr erfahren',
|
||||
params: 'Parameter',
|
||||
duplicate: 'Duplikat',
|
||||
rename: 'Umbenennen',
|
||||
audioSourceUnavailable: 'AudioSource ist nicht verfügbar',
|
||||
zoomOut: 'Verkleinern',
|
||||
zoomIn: 'Vergrößern',
|
||||
openInNewTab: 'In neuem Tab öffnen',
|
||||
copyImage: 'Bild kopieren',
|
||||
close: 'Schließen',
|
||||
viewMore: 'MEHR SEHEN',
|
||||
regenerate: 'Erneuern',
|
||||
saveAndRegenerate: 'Speichern und Regenerieren von untergeordneten Chunks',
|
||||
view: 'Ansehen',
|
||||
submit: 'Senden',
|
||||
skip: 'Schiff',
|
||||
imageCopied: 'Kopiertes Bild',
|
||||
deleteApp: 'App löschen',
|
||||
viewDetails: 'Details anzeigen',
|
||||
in: 'in',
|
||||
copied: 'Kopiert',
|
||||
downloadFailed: 'Download fehlgeschlagen. Bitte versuchen Sie es später erneut.',
|
||||
downloadSuccess: 'Download abgeschlossen.',
|
||||
more: 'Mehr',
|
||||
format: 'Format',
|
||||
selectAll: 'Alles auswählen',
|
||||
deSelectAll: 'Alle abwählen',
|
||||
config: 'Konfiguration',
|
||||
yes: 'Ja',
|
||||
deleteConfirmTitle: 'Löschen?',
|
||||
no: 'Nein',
|
||||
confirmAction: 'Bitte bestätigen Sie Ihre Aktion.',
|
||||
noSearchResults: 'Es wurden keine {{content}} gefunden',
|
||||
resetKeywords: 'Schlüsselwörter zurücksetzen',
|
||||
selectCount: '{{count}} Ausgewählt',
|
||||
searchCount: 'Finde {{count}} {{content}}',
|
||||
noSearchCount: '0 {{content}}',
|
||||
now: 'Jetzt',
|
||||
},
|
||||
placeholder: {
|
||||
input: 'Bitte eingeben',
|
||||
select: 'Bitte auswählen',
|
||||
search: 'Suchen...',
|
||||
},
|
||||
voice: {
|
||||
language: {
|
||||
zhHans: 'Chinesisch',
|
||||
zhHant: 'Chinesisch (traditionell)',
|
||||
enUS: 'Englisch',
|
||||
deDE: 'Deutsch',
|
||||
frFR: 'Französisch',
|
||||
esES: 'Spanisch',
|
||||
itIT: 'Italienisch',
|
||||
thTH: 'Thailändisch',
|
||||
idID: 'Indonesisch',
|
||||
jaJP: 'Japanisch',
|
||||
koKR: 'Koreanisch',
|
||||
ptBR: 'Portugiesisch',
|
||||
ruRU: 'Russisch',
|
||||
ukUA: 'Ukrainisch',
|
||||
viVN: 'Vietnamesisch',
|
||||
plPL: 'Polnisch',
|
||||
roRO: 'Rumänisch',
|
||||
hiIN: 'Hindi',
|
||||
trTR: 'Türkisch',
|
||||
faIR: 'Persisch',
|
||||
},
|
||||
},
|
||||
unit: {
|
||||
char: 'Zeichen',
|
||||
},
|
||||
actionMsg: {
|
||||
noModification: 'Im Moment keine Änderungen.',
|
||||
modifiedSuccessfully: 'Erfolgreich geändert',
|
||||
modifiedUnsuccessfully: 'Änderung nicht erfolgreich',
|
||||
copySuccessfully: 'Erfolgreich kopiert',
|
||||
paySucceeded: 'Zahlung erfolgreich',
|
||||
payCancelled: 'Zahlung abgebrochen',
|
||||
generatedSuccessfully: 'Erfolgreich generiert',
|
||||
generatedUnsuccessfully: 'Generierung nicht erfolgreich',
|
||||
},
|
||||
model: {
|
||||
params: {
|
||||
temperature: 'Temperatur',
|
||||
temperatureTip:
|
||||
'Kontrolliert Zufälligkeit: Eine niedrigere Temperatur führt zu weniger zufälligen Ergebnissen. Nähert sich die Temperatur null, wird das Modell deterministisch und repetitiv.',
|
||||
top_p: 'Top P',
|
||||
top_pTip:
|
||||
'Kontrolliert Diversität über Nukleus-Sampling: 0,5 bedeutet, dass die Hälfte aller wahrscheinlichkeitsgewichteten Optionen berücksichtigt wird.',
|
||||
presence_penalty: 'Präsenz-Strafe',
|
||||
presence_penaltyTip:
|
||||
'Wie stark neue Tokens basierend darauf bestraft werden, ob sie bereits im Text erschienen sind.\nErhöht die Wahrscheinlichkeit des Modells, über neue Themen zu sprechen.',
|
||||
frequency_penalty: 'Häufigkeitsstrafe',
|
||||
frequency_penaltyTip:
|
||||
'Wie stark neue Tokens basierend auf ihrer bisherigen Häufigkeit im Text bestraft werden.\nVerringert die Wahrscheinlichkeit des Modells, denselben Satz wortwörtlich zu wiederholen.',
|
||||
max_tokens: 'Maximale Token',
|
||||
max_tokensTip:
|
||||
'Begrenzt die maximale Länge der Antwort in Token. \nGrößere Werte können den Platz für Eingabeaufforderungen, Chat-Logs und Wissen begrenzen. \nEs wird empfohlen, dies unter zwei Dritteln zu setzen\ngpt-4-1106-Vorschau, gpt-4-vision-Vorschau maximale Token (Eingabe 128k Ausgabe 4k)',
|
||||
maxTokenSettingTip: 'Ihre Einstellung für maximale Token ist hoch, was den Platz für Eingabeaufforderungen, Abfragen und Daten potenziell begrenzen kann. Erwägen Sie, dies unter 2/3 zu setzen.',
|
||||
setToCurrentModelMaxTokenTip: 'Maximale Token auf 80 % der maximalen Token des aktuellen Modells {{maxToken}} aktualisiert.',
|
||||
stop_sequences: 'Stop-Sequenzen',
|
||||
stop_sequencesTip: 'Bis zu vier Sequenzen, bei denen die API die Generierung weiterer Token stoppt. Der zurückgegebene Text wird die Stop-Sequenz nicht enthalten.',
|
||||
stop_sequencesPlaceholder: 'Sequenz eingeben und Tab drücken',
|
||||
},
|
||||
tone: {
|
||||
Creative: 'Kreativ',
|
||||
Balanced: 'Ausgewogen',
|
||||
Precise: 'Präzise',
|
||||
Custom: 'Benutzerdefiniert',
|
||||
},
|
||||
addMoreModel: 'Gehen Sie zu den Einstellungen, um mehr Modelle hinzuzufügen',
|
||||
settingsLink: 'Einstellungen für Modellanbieter',
|
||||
capabilities: 'Multimodale Fähigkeiten',
|
||||
},
|
||||
menus: {
|
||||
status: 'Beta',
|
||||
explore: 'Erkunden',
|
||||
apps: 'Studio',
|
||||
plugins: 'Plugins',
|
||||
pluginsTips: 'Integrieren Sie Plugins von Drittanbietern oder erstellen Sie ChatGPT-kompatible KI-Plugins.',
|
||||
datasets: 'Wissen',
|
||||
datasetsTips: 'BALD VERFÜGBAR: Importieren Sie Ihre eigenen Textdaten oder schreiben Sie Daten in Echtzeit über Webhook, um den LLM-Kontext zu verbessern.',
|
||||
newApp: 'Neue App',
|
||||
newDataset: 'Wissen erstellen',
|
||||
tools: 'Werkzeuge',
|
||||
exploreMarketplace: 'Marketplace erkunden',
|
||||
appDetail: 'App-Details',
|
||||
account: 'Konto',
|
||||
},
|
||||
userProfile: {
|
||||
settings: 'Einstellungen',
|
||||
emailSupport: 'E-Mail-Support',
|
||||
workspace: 'Arbeitsbereich',
|
||||
createWorkspace: 'Arbeitsbereich erstellen',
|
||||
helpCenter: 'Hilfe',
|
||||
roadmap: 'Fahrplan',
|
||||
community: 'Gemeinschaft',
|
||||
about: 'Über',
|
||||
logout: 'Abmelden',
|
||||
compliance: 'Einhaltung',
|
||||
support: 'Unterstützung',
|
||||
github: 'GitHub',
|
||||
contactUs: 'Kontaktieren Sie uns',
|
||||
forum: 'Forum',
|
||||
},
|
||||
settings: {
|
||||
accountGroup: 'KONTO',
|
||||
workplaceGroup: 'ARBEITSBEREICH',
|
||||
account: 'Mein Konto',
|
||||
members: 'Mitglieder',
|
||||
billing: 'Abrechnung',
|
||||
integrations: 'Integrationen',
|
||||
language: 'Sprache',
|
||||
provider: 'Modellanbieter',
|
||||
dataSource: 'Datenquelle',
|
||||
plugin: 'Plugins',
|
||||
apiBasedExtension: 'API-Erweiterung',
|
||||
generalGroup: 'ALLGEMEIN',
|
||||
},
|
||||
account: {
|
||||
avatar: 'Avatar',
|
||||
name: 'Name',
|
||||
email: 'E-Mail',
|
||||
password: 'Passwort',
|
||||
passwordTip: 'Sie können ein dauerhaftes Passwort festlegen, wenn Sie keine temporären Anmeldecodes verwenden möchten',
|
||||
setPassword: 'Ein Passwort festlegen',
|
||||
resetPassword: 'Passwort zurücksetzen',
|
||||
currentPassword: 'Aktuelles Passwort',
|
||||
newPassword: 'Neues Passwort',
|
||||
confirmPassword: 'Passwort bestätigen',
|
||||
notEqual: 'Die Passwörter sind unterschiedlich.',
|
||||
langGeniusAccount: 'Dify-Konto',
|
||||
langGeniusAccountTip: 'Ihr Dify-Konto und zugehörige Benutzerdaten.',
|
||||
editName: 'Namen bearbeiten',
|
||||
showAppLength: '{{length}} Apps anzeigen',
|
||||
delete: 'Konto löschen',
|
||||
deleteTip: 'Wenn Sie Ihr Konto löschen, werden alle Ihre Daten dauerhaft gelöscht und können nicht wiederhergestellt werden.',
|
||||
myAccount: 'Mein Konto',
|
||||
studio: 'Dify Studio',
|
||||
account: 'Konto',
|
||||
deletePrivacyLinkTip: 'Weitere Informationen darüber, wie wir mit Ihren Daten umgehen, finden Sie in unserer',
|
||||
deletePrivacyLink: 'Datenschutzrichtlinie.',
|
||||
deleteSuccessTip: 'Das Löschen Ihres Kontos benötigt einige Zeit, um vollständig gelöscht zu werden. Wir senden Ihnen eine E-Mail, wenn alles erledigt ist.',
|
||||
deleteLabel: 'Zur Bestätigung geben Sie bitte unten Ihre E-Mail-Adresse ein',
|
||||
deletePlaceholder: 'Bitte geben Sie Ihre E-Mail-Adresse ein',
|
||||
sendVerificationButton: 'Verifizierungscode senden',
|
||||
verificationLabel: 'Verifizierungs-Code',
|
||||
verificationPlaceholder: 'Fügen Sie den 6-stelligen Code ein',
|
||||
feedbackTitle: 'Feedback',
|
||||
feedbackLabel: 'Sagen Sie uns, warum Sie Ihr Konto gelöscht haben?',
|
||||
feedbackPlaceholder: 'Wahlfrei',
|
||||
permanentlyDeleteButton: 'Konto dauerhaft löschen',
|
||||
workspaceIcon: 'Arbeitsbereichssymbol',
|
||||
workspaceName: 'Arbeitsbereichsname',
|
||||
editWorkspaceInfo: 'Arbeitsbereichsinformationen bearbeiten',
|
||||
changeEmail: {
|
||||
codeLabel: 'Bestätigungscode',
|
||||
sendVerifyCode: 'Überprüfungs-Code senden',
|
||||
resend: 'Erneut senden',
|
||||
continue: 'Fortsetzen',
|
||||
verifyEmail: 'Überprüfen Sie Ihre aktuelle E-Mail',
|
||||
newEmail: 'Richten Sie eine neue E-Mail-Adresse ein',
|
||||
codePlaceholder: 'Geben Sie den 6-stelligen Code ein',
|
||||
resendTip: 'Haben Sie keinen Code erhalten?',
|
||||
title: 'E-Mail ändern',
|
||||
content2: 'Ihre aktuelle E-Mail-Adresse lautet <email>{{email}}</email>. Der Bestätigungscode wurde an diese E-Mail-Adresse gesendet.',
|
||||
verifyNew: 'Bestätigen Sie Ihre neue E-Mail',
|
||||
changeTo: 'Ändern zu {{email}}',
|
||||
content1: 'Wenn Sie fortfahren, senden wir einen Bestätigungscode an <email>{{email}}</email> zur erneuten Authentifizierung.',
|
||||
resendCount: 'Erneut senden in {{count}}s',
|
||||
content4: 'Wir haben Ihnen gerade einen vorübergehenden Verifizierungscode an <email>{{email}}</email> gesendet.',
|
||||
emailPlaceholder: 'Geben Sie eine neue E-Mail-Adresse ein',
|
||||
content3: 'Geben Sie eine neue E-Mail-Adresse ein, und wir senden Ihnen einen Bestätigungscode.',
|
||||
existingEmail: 'Ein Benutzer mit dieser E-Mail-Adresse existiert bereits.',
|
||||
emailLabel: 'Neue E-Mail',
|
||||
authTip: 'Sobald Ihre E-Mail geändert wurde, können Google- oder GitHub-Konten, die mit Ihrer alten E-Mail verknüpft sind, nicht mehr auf dieses Konto zugreifen.',
|
||||
unAvailableEmail: 'Diese E-Mail ist vorübergehend nicht verfügbar.',
|
||||
},
|
||||
},
|
||||
members: {
|
||||
team: 'Team',
|
||||
invite: 'Hinzufügen',
|
||||
name: 'NAME',
|
||||
lastActive: 'ZULETZT AKTIV',
|
||||
role: 'ROLLEN',
|
||||
pending: 'Ausstehend...',
|
||||
owner: 'Eigentümer',
|
||||
admin: 'Admin',
|
||||
adminTip: 'Kann Apps erstellen & Team-Einstellungen verwalten',
|
||||
normal: 'Normal',
|
||||
normalTip: 'Kann nur Apps verwenden, kann keine Apps erstellen',
|
||||
editor: 'Editor',
|
||||
editorTip: 'Kann Apps erstellen & bearbeiten',
|
||||
inviteTeamMember: 'Teammitglied hinzufügen',
|
||||
inviteTeamMemberTip: 'Sie können direkt nach der Anmeldung auf Ihre Teamdaten zugreifen.',
|
||||
emailNotSetup: 'E-Mail-Server ist nicht eingerichtet, daher können keine Einladungs-E-Mails versendet werden. Bitte informieren Sie die Benutzer über den Einladungslink, der nach der Einladung ausgestellt wird.',
|
||||
email: 'E-Mail',
|
||||
emailInvalid: 'Ungültiges E-Mail-Format',
|
||||
emailPlaceholder: 'Bitte E-Mails eingeben',
|
||||
sendInvite: 'Einladung senden',
|
||||
invitedAsRole: 'Eingeladen als {{role}}-Benutzer',
|
||||
invitationSent: 'Einladung gesendet',
|
||||
invitationSentTip: 'Einladung gesendet, und sie können sich bei Dify anmelden, um auf Ihre Teamdaten zuzugreifen.',
|
||||
invitationLink: 'Einladungslink',
|
||||
failedInvitationEmails: 'Die folgenden Benutzer wurden nicht erfolgreich eingeladen',
|
||||
ok: 'OK',
|
||||
removeFromTeam: 'Vom Team entfernen',
|
||||
removeFromTeamTip: 'Wird den Teamzugang entfernen',
|
||||
setAdmin: 'Als Administrator einstellen',
|
||||
setMember: 'Als normales Mitglied einstellen',
|
||||
setEditor: 'Als Editor einstellen',
|
||||
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',
|
||||
transferModal: {
|
||||
verifyEmail: 'Überprüfen Sie Ihre aktuelle E-Mail',
|
||||
resendTip: 'Haben Sie keinen Code erhalten?',
|
||||
continue: 'Fortsetzen',
|
||||
resend: 'Erneut senden',
|
||||
sendVerifyCode: 'Überprüfungs-Code senden',
|
||||
title: 'Übertragung des Besitzes des Arbeitsbereichs',
|
||||
codePlaceholder: 'Geben Sie den 6-stelligen Code ein',
|
||||
transfer: 'Übertragung des Besitzes des Arbeitsbereichs',
|
||||
warningTip: 'Du wirst ein Administrationsmitglied, und der neue Eigentümer wird die volle Kontrolle haben.',
|
||||
codeLabel: 'Bestätigungscode',
|
||||
transferPlaceholder: 'Wählen Sie ein Arbeitsbereichsmitglied aus…',
|
||||
verifyContent: 'Ihre aktuelle E-Mail ist <email>{{email}}</email>.',
|
||||
resendCount: 'Erneut senden in {{count}}s',
|
||||
transferLabel: 'Übertragen Sie die Eigentümerschaft des Arbeitsbereichs auf',
|
||||
warning: 'Sie sind dabei, das Eigentum an „{{workspace}}“ zu übertragen. Dies tritt sofort in Kraft und kann nicht rückgängig gemacht werden.',
|
||||
verifyContent2: 'Wir werden einen temporären Bestätigungscode an diese E-Mail senden, um die erneute Authentifizierung durchzuführen.',
|
||||
sendTip: 'Wenn Sie fortfahren, senden wir einen Bestätigungscode an <email>{{email}}</email> zur erneuten Authentifizierung.',
|
||||
},
|
||||
transferOwnership: 'Eigentum übertragen',
|
||||
},
|
||||
integrations: {
|
||||
connected: 'Verbunden',
|
||||
google: 'Google',
|
||||
googleAccount: 'Mit Google-Konto anmelden',
|
||||
github: 'GitHub',
|
||||
githubAccount: 'Mit GitHub-Konto anmelden',
|
||||
connect: 'Verbinden',
|
||||
},
|
||||
language: {
|
||||
displayLanguage: 'Anzeigesprache',
|
||||
timezone: 'Zeitzone',
|
||||
},
|
||||
provider: {
|
||||
apiKey: 'API-Schlüssel',
|
||||
enterYourKey: 'Geben Sie hier Ihren API-Schlüssel ein',
|
||||
invalidKey: 'Ungültiger OpenAI API-Schlüssel',
|
||||
validatedError: 'Validierung fehlgeschlagen: ',
|
||||
validating: 'Schlüssel wird validiert...',
|
||||
saveFailed: 'API-Schlüssel speichern fehlgeschlagen',
|
||||
apiKeyExceedBill: 'Dieser API-SCHLÜSSEL verfügt über kein verfügbares Kontingent, bitte lesen',
|
||||
addKey: 'Schlüssel hinzufügen',
|
||||
comingSoon: 'Demnächst verfügbar',
|
||||
editKey: 'Bearbeiten',
|
||||
invalidApiKey: 'Ungültiger API-Schlüssel',
|
||||
azure: {
|
||||
apiBase: 'API-Basis',
|
||||
apiBasePlaceholder: 'Die API-Basis-URL Ihres Azure OpenAI-Endpunkts.',
|
||||
apiKey: 'API-Schlüssel',
|
||||
apiKeyPlaceholder: 'Geben Sie hier Ihren API-Schlüssel ein',
|
||||
helpTip: 'Azure OpenAI Service kennenlernen',
|
||||
},
|
||||
openaiHosted: {
|
||||
openaiHosted: 'Gehostetes OpenAI',
|
||||
onTrial: 'IN PROBE',
|
||||
exhausted: 'KONTINGENT ERSCHÖPFT',
|
||||
desc: 'Der OpenAI-Hostingdienst von Dify ermöglicht es Ihnen, Modelle wie GPT-3.5 zu verwenden. Bevor Ihr Probe-Kontingent aufgebraucht ist, müssen Sie andere Modellanbieter einrichten.',
|
||||
callTimes: 'Anrufzeiten',
|
||||
usedUp: 'Probe-Kontingent aufgebraucht. Eigenen Modellanbieter hinzufügen.',
|
||||
useYourModel: 'Derzeit wird eigener Modellanbieter verwendet.',
|
||||
close: 'Schließen',
|
||||
},
|
||||
anthropicHosted: {
|
||||
anthropicHosted: 'Anthropic Claude',
|
||||
onTrial: 'IN PROBE',
|
||||
exhausted: 'KONTINGENT ERSCHÖPFT',
|
||||
desc: 'Leistungsstarkes Modell, das bei einer Vielzahl von Aufgaben von anspruchsvollen Dialogen und kreativer Inhalteerstellung bis hin zu detaillierten Anweisungen hervorragend ist.',
|
||||
callTimes: 'Anrufzeiten',
|
||||
usedUp: 'Testkontingent aufgebraucht. Eigenen Modellanbieter hinzufügen.',
|
||||
useYourModel: 'Derzeit wird eigener Modellanbieter verwendet.',
|
||||
close: 'Schließen',
|
||||
trialQuotaTip: 'Ihr Anthropic-Testkontingent läuft am 11.03.2025 ab und steht danach nicht mehr zur Verfügung. Bitte machen Sie rechtzeitig davon Gebrauch.',
|
||||
},
|
||||
anthropic: {
|
||||
using: 'Die Einbettungsfähigkeit verwendet',
|
||||
enableTip: 'Um das Anthropische Modell zu aktivieren, müssen Sie sich zuerst mit OpenAI oder Azure OpenAI Service verbinden.',
|
||||
notEnabled: 'Nicht aktiviert',
|
||||
keyFrom: 'Holen Sie Ihren API-Schlüssel von Anthropic',
|
||||
},
|
||||
encrypted: {
|
||||
front: 'Ihr API-SCHLÜSSEL wird verschlüsselt und mit',
|
||||
back: ' Technologie gespeichert.',
|
||||
},
|
||||
},
|
||||
modelProvider: {
|
||||
notConfigured: 'Das Systemmodell wurde noch nicht vollständig konfiguriert, und einige Funktionen sind möglicherweise nicht verfügbar.',
|
||||
systemModelSettings: 'Systemmodell-Einstellungen',
|
||||
systemModelSettingsLink: 'Warum ist es notwendig, ein Systemmodell einzurichten?',
|
||||
selectModel: 'Wählen Sie Ihr Modell',
|
||||
setupModelFirst: 'Bitte richten Sie zuerst Ihr Modell ein',
|
||||
systemReasoningModel: {
|
||||
key: 'System-Reasoning-Modell',
|
||||
tip: 'Legen Sie das Standardinferenzmodell fest, das für die Erstellung von Anwendungen verwendet wird, sowie Funktionen wie die Generierung von Dialognamen und die Vorschlagserstellung für die nächste Frage, die auch das Standardinferenzmodell verwenden.',
|
||||
},
|
||||
embeddingModel: {
|
||||
key: 'Einbettungsmodell',
|
||||
tip: 'Legen Sie das Standardmodell für die Dokumenteneinbettungsverarbeitung des Wissens fest, sowohl die Wiederherstellung als auch der Import des Wissens verwenden dieses Einbettungsmodell für die Vektorisierungsverarbeitung. Ein Wechsel wird dazu führen, dass die Vektordimension zwischen dem importierten Wissen und der Frage inkonsistent ist, was zu einem Wiederherstellungsfehler führt. Um einen Wiederherstellungsfehler zu vermeiden, wechseln Sie dieses Modell bitte nicht willkürlich.',
|
||||
required: 'Einbettungsmodell ist erforderlich',
|
||||
},
|
||||
speechToTextModel: {
|
||||
key: 'Sprach-zu-Text-Modell',
|
||||
tip: 'Legen Sie das Standardmodell für die Spracheingabe in Konversationen fest.',
|
||||
},
|
||||
ttsModel: {
|
||||
key: 'Text-zu-Sprache-Modell',
|
||||
tip: 'Legen Sie das Standardmodell für die Text-zu-Sprache-Eingabe in Konversationen fest.',
|
||||
},
|
||||
rerankModel: {
|
||||
key: 'Rerank-Modell',
|
||||
tip: 'Rerank-Modell wird die Kandidatendokumentenliste basierend auf der semantischen Übereinstimmung mit der Benutzeranfrage neu ordnen und die Ergebnisse der semantischen Rangordnung verbessern',
|
||||
},
|
||||
quota: 'Kontingent',
|
||||
searchModel: 'Suchmodell',
|
||||
noModelFound: 'Kein Modell für {{model}} gefunden',
|
||||
models: 'Modelle',
|
||||
showMoreModelProvider: 'Zeige mehr Modellanbieter',
|
||||
selector: {
|
||||
tip: 'Dieses Modell wurde entfernt. Bitte fügen Sie ein Modell hinzu oder wählen Sie ein anderes Modell.',
|
||||
emptyTip: 'Keine verfügbaren Modelle',
|
||||
emptySetting: 'Bitte gehen Sie zu den Einstellungen, um zu konfigurieren',
|
||||
rerankTip: 'Bitte richten Sie das Rerank-Modell ein',
|
||||
},
|
||||
card: {
|
||||
quota: 'KONTINGENT',
|
||||
onTrial: 'In Probe',
|
||||
paid: 'Bezahlt',
|
||||
quotaExhausted: 'Kontingent erschöpft',
|
||||
callTimes: 'Anrufzeiten',
|
||||
tokens: 'Token',
|
||||
buyQuota: 'Kontingent kaufen',
|
||||
priorityUse: 'Priorisierte Nutzung',
|
||||
removeKey: 'API-Schlüssel entfernen',
|
||||
tip: 'Der bezahlten Kontingent wird Vorrang gegeben. Das Testkontingent wird nach dem Verbrauch des bezahlten Kontingents verwendet.',
|
||||
},
|
||||
item: {
|
||||
deleteDesc: '{{modelName}} werden als System-Reasoning-Modelle verwendet. Einige Funktionen stehen nach der Entfernung nicht zur Verfügung. Bitte bestätigen.',
|
||||
freeQuota: 'KOSTENLOSES KONTINGENT',
|
||||
},
|
||||
addApiKey: 'Fügen Sie Ihren API-Schlüssel hinzu',
|
||||
invalidApiKey: 'Ungültiger API-Schlüssel',
|
||||
encrypted: {
|
||||
front: 'Ihr API-SCHLÜSSEL wird verschlüsselt und mit',
|
||||
back: ' Technologie gespeichert.',
|
||||
},
|
||||
freeQuota: {
|
||||
howToEarn: 'Wie zu verdienen',
|
||||
},
|
||||
addMoreModelProvider: 'MEHR MODELLANBIETER HINZUFÜGEN',
|
||||
addModel: 'Modell hinzufügen',
|
||||
modelsNum: '{{num}} Modelle',
|
||||
showModels: 'Modelle anzeigen',
|
||||
showModelsNum: 'Zeige {{num}} Modelle',
|
||||
collapse: 'Einklappen',
|
||||
config: 'Konfigurieren',
|
||||
modelAndParameters: 'Modell und Parameter',
|
||||
model: 'Modell',
|
||||
featureSupported: '{{feature}} unterstützt',
|
||||
callTimes: 'Anrufzeiten',
|
||||
credits: 'Nachrichtenguthaben',
|
||||
buyQuota: 'Kontingent kaufen',
|
||||
getFreeTokens: 'Kostenlose Token erhalten',
|
||||
priorityUsing: 'Bevorzugte Nutzung',
|
||||
deprecated: 'Veraltet',
|
||||
confirmDelete: 'Löschung bestätigen?',
|
||||
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.',
|
||||
emptyProviderTip: 'Bitte installieren Sie zuerst einen Modellanbieter.',
|
||||
configureTip: 'Einrichten des API-Schlüssels oder Hinzufügen des zu verwendenden Modells',
|
||||
discoverMore: 'Erfahren Sie mehr in',
|
||||
installProvider: 'Installieren von Modellanbietern',
|
||||
toBeConfigured: 'Zu konfigurieren',
|
||||
emptyProviderTitle: 'Modellanbieter nicht eingerichtet',
|
||||
auth: {
|
||||
apiKeyModal: {
|
||||
addModel: 'Modell hinzufügen',
|
||||
title: 'API-Schlüssel-Autorisierungskonfiguration',
|
||||
desc: 'Nachdem die Anmeldeinformationen konfiguriert wurden, können alle Mitglieder des Arbeitsbereichs dieses Modell beim Orchestrieren von Anwendungen verwenden.',
|
||||
},
|
||||
specifyModelCredential: 'Angeben von Modellanmeldeinformationen',
|
||||
addNewModel: 'Neues Modell hinzufügen',
|
||||
addCredential: 'Anmeldeinformationen hinzufügen',
|
||||
providerManaged: 'Anbieter verwaltet',
|
||||
addApiKey: 'API-Schlüssel hinzufügen',
|
||||
apiKeys: 'API-Schlüssel',
|
||||
unAuthorized: 'Unbefugt',
|
||||
authorizationError: 'Autorisierungsfehler',
|
||||
modelCredentials: 'Modellanmeldeinformationen',
|
||||
configModel: 'Konfigurationsmodell',
|
||||
authRemoved: 'Die Authentifizierung wurde entfernt.',
|
||||
addModelCredential: 'Modellberechtigungen hinzufügen',
|
||||
providerManagedTip: 'Die aktuelle Konfiguration wird vom Anbieter gehostet.',
|
||||
configLoadBalancing: 'Konfiguration Lastenverteilung',
|
||||
specifyModelCredentialTip: 'Verwenden Sie ein konfiguriertes Modellzugang.',
|
||||
manageCredentials: 'Anmeldeinformationen verwalten',
|
||||
selectModelCredential: 'Wählen Sie eine Modellberechtigung aus',
|
||||
modelCredential: 'Zeugnis des Modells',
|
||||
addModel: 'Modell hinzufügen',
|
||||
customModelCredentials: 'Anmeldeinformationen für benutzerdefinierte Modelle',
|
||||
removeModel: 'Modell entfernen',
|
||||
addNewModelCredential: 'Hinzufügen neuer Modellanmeldeinformationen',
|
||||
editModelCredential: 'Bearbeiten von Modellanmeldeinformationen',
|
||||
customModelCredentialsDeleteTip: 'Anmeldeinformationen werden verwendet und können nicht gelöscht werden',
|
||||
},
|
||||
parametersInvalidRemoved: 'Einige Parameter sind ungültig und wurden entfernt.',
|
||||
installDataSourceProvider: 'Datenquellenanbieter installieren',
|
||||
},
|
||||
dataSource: {
|
||||
add: 'Eine Datenquelle hinzufügen',
|
||||
connect: 'Verbinden',
|
||||
notion: {
|
||||
title: 'Notion',
|
||||
description: 'Notion als Datenquelle für das Wissen verwenden.',
|
||||
connectedWorkspace: 'Verbundener Arbeitsbereich',
|
||||
addWorkspace: 'Arbeitsbereich hinzufügen',
|
||||
connected: 'Verbunden',
|
||||
disconnected: 'Getrennt',
|
||||
changeAuthorizedPages: 'Autorisierte Seiten ändern',
|
||||
pagesAuthorized: 'Autorisierte Seiten',
|
||||
sync: 'Synchronisieren',
|
||||
remove: 'Entfernen',
|
||||
selector: {
|
||||
pageSelected: 'Ausgewählte Seiten',
|
||||
searchPages: 'Seiten suchen...',
|
||||
noSearchResult: 'Keine Suchergebnisse',
|
||||
addPages: 'Seiten hinzufügen',
|
||||
preview: 'VORSCHAU',
|
||||
},
|
||||
integratedAlert: 'Notion ist über interne Anmeldeinformationen integriert, es ist keine erneute Autorisierung erforderlich.',
|
||||
},
|
||||
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: {
|
||||
apiKey: 'API-Schlüssel',
|
||||
apiKeyPlaceholder: 'Geben Sie Ihren API-Schlüssel ein',
|
||||
keyFrom: 'Holen Sie Ihren SerpAPI-Schlüssel von der SerpAPI-Kontoseite',
|
||||
},
|
||||
},
|
||||
apiBasedExtension: {
|
||||
title: 'API-Erweiterungen bieten zentralisiertes API-Management und vereinfachen die Konfiguration für eine einfache Verwendung in Difys Anwendungen.',
|
||||
link: 'Erfahren Sie, wie Sie Ihre eigene API-Erweiterung entwickeln.',
|
||||
add: 'API-Erweiterung hinzufügen',
|
||||
selector: {
|
||||
title: 'API-Erweiterung',
|
||||
placeholder: 'Bitte wählen Sie API-Erweiterung',
|
||||
manage: 'API-Erweiterung verwalten',
|
||||
},
|
||||
modal: {
|
||||
title: 'API-Erweiterung hinzufügen',
|
||||
editTitle: 'API-Erweiterung bearbeiten',
|
||||
name: {
|
||||
title: 'Name',
|
||||
placeholder: 'Bitte geben Sie den Namen ein',
|
||||
},
|
||||
apiEndpoint: {
|
||||
title: 'API-Endpunkt',
|
||||
placeholder: 'Bitte geben Sie den API-Endpunkt ein',
|
||||
},
|
||||
apiKey: {
|
||||
title: 'API-Schlüssel',
|
||||
placeholder: 'Bitte geben Sie den API-Schlüssel ein',
|
||||
lengthError: 'Die Länge des API-Schlüssels darf nicht weniger als 5 Zeichen betragen',
|
||||
},
|
||||
},
|
||||
type: 'Typ',
|
||||
},
|
||||
about: {
|
||||
changeLog: 'Änderungsprotokoll',
|
||||
updateNow: 'Jetzt aktualisieren',
|
||||
nowAvailable: 'Dify {{version}} ist jetzt verfügbar.',
|
||||
latestAvailable: 'Dify {{version}} ist die neueste verfügbare Version.',
|
||||
},
|
||||
appMenus: {
|
||||
overview: 'Übersicht',
|
||||
promptEng: 'Orchestrieren',
|
||||
apiAccess: 'API-Zugriff',
|
||||
logAndAnn: 'Protokolle & Ank.',
|
||||
logs: 'Baumstämme',
|
||||
},
|
||||
environment: {
|
||||
testing: 'TESTEN',
|
||||
development: 'ENTWICKLUNG',
|
||||
},
|
||||
appModes: {
|
||||
completionApp: 'Textgenerator',
|
||||
chatApp: 'Chat-App',
|
||||
},
|
||||
datasetMenus: {
|
||||
documents: 'Dokumente',
|
||||
hitTesting: 'Wiederherstellungstest',
|
||||
settings: 'Einstellungen',
|
||||
emptyTip: 'Das Wissen wurde nicht zugeordnet, bitte gehen Sie zur Anwendung oder zum Plug-in, um die Zuordnung abzuschließen.',
|
||||
viewDoc: 'Dokumentation anzeigen',
|
||||
relatedApp: 'verbundene Apps',
|
||||
noRelatedApp: 'Keine verknüpften Apps',
|
||||
pipeline: 'Rohrleitung',
|
||||
},
|
||||
voiceInput: {
|
||||
speaking: 'Sprechen Sie jetzt...',
|
||||
converting: 'Umwandlung in Text...',
|
||||
notAllow: 'Mikrofon nicht autorisiert',
|
||||
},
|
||||
modelName: {
|
||||
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
|
||||
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
|
||||
'gpt-4': 'GPT-4',
|
||||
'gpt-4-32k': 'GPT-4-32K',
|
||||
'text-davinci-003': 'Text-Davinci-003',
|
||||
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
|
||||
'whisper-1': 'Flüstern-1',
|
||||
'claude-instant-1': 'Claude-Instant',
|
||||
'claude-2': 'Claude-2',
|
||||
},
|
||||
chat: {
|
||||
renameConversation: 'Konversation umbenennen',
|
||||
conversationName: 'Konversationsname',
|
||||
conversationNamePlaceholder: 'Bitte geben Sie den Konversationsnamen ein',
|
||||
conversationNameCanNotEmpty: 'Konversationsname erforderlich',
|
||||
citation: {
|
||||
title: 'ZITIERUNGEN',
|
||||
linkToDataset: 'Link zum Wissen',
|
||||
characters: 'Zeichen:',
|
||||
hitCount: 'Abrufanzahl:',
|
||||
vectorHash: 'Vektorhash:',
|
||||
hitScore: 'Abrufwertung:',
|
||||
},
|
||||
inputPlaceholder: 'Sprechen Sie mit dem {{botName}}',
|
||||
thought: 'Gedanke',
|
||||
thinking: 'Denken...',
|
||||
resend: 'Erneut senden',
|
||||
},
|
||||
promptEditor: {
|
||||
placeholder: 'Schreiben Sie hier Ihr Aufforderungswort, geben Sie \'{\' ein, um eine Variable einzufügen, geben Sie \'/\' ein, um einen Aufforderungs-Inhaltsblock einzufügen',
|
||||
context: {
|
||||
item: {
|
||||
title: 'Kontext',
|
||||
desc: 'Kontextvorlage einfügen',
|
||||
},
|
||||
modal: {
|
||||
title: '{{num}} Wissen im Kontext',
|
||||
add: 'Kontext hinzufügen',
|
||||
footer: 'Sie können Kontexte im unten stehenden Kontextabschnitt verwalten.',
|
||||
},
|
||||
},
|
||||
history: {
|
||||
item: {
|
||||
title: 'Konversationsgeschichte',
|
||||
desc: 'Vorlage für historische Nachricht einfügen',
|
||||
},
|
||||
modal: {
|
||||
title: 'BEISPIEL',
|
||||
user: 'Hallo',
|
||||
assistant: 'Hallo! Wie kann ich Ihnen heute helfen?',
|
||||
edit: 'Konversationsrollennamen bearbeiten',
|
||||
},
|
||||
},
|
||||
variable: {
|
||||
item: {
|
||||
title: 'Variablen & Externe Werkzeuge',
|
||||
desc: 'Variablen & Externe Werkzeuge einfügen',
|
||||
},
|
||||
modal: {
|
||||
add: 'Neue Variable',
|
||||
addTool: 'Neues Werkzeug',
|
||||
},
|
||||
outputToolDisabledItem: {
|
||||
desc: 'Variablen einfügen',
|
||||
title: 'Variablen',
|
||||
},
|
||||
},
|
||||
query: {
|
||||
item: {
|
||||
title: 'Abfrage',
|
||||
desc: 'Benutzerabfragevorlage einfügen',
|
||||
},
|
||||
},
|
||||
existed: 'Bereits im Aufforderungstext vorhanden',
|
||||
},
|
||||
imageUploader: {
|
||||
uploadFromComputer: 'Vom Computer hochladen',
|
||||
uploadFromComputerReadError: 'Bildlesung fehlgeschlagen, bitte versuchen Sie es erneut.',
|
||||
uploadFromComputerUploadError: 'Bildupload fehlgeschlagen, bitte erneut hochladen.',
|
||||
uploadFromComputerLimit: 'Hochgeladene Bilder dürfen {{size}} MB nicht überschreiten',
|
||||
pasteImageLink: 'Bildlink einfügen',
|
||||
pasteImageLinkInputPlaceholder: 'Bildlink hier einfügen',
|
||||
pasteImageLinkInvalid: 'Ungültiger Bildlink',
|
||||
imageUpload: 'Bild-Upload',
|
||||
},
|
||||
tag: {
|
||||
placeholder: 'Alle Tags',
|
||||
addNew: 'Neues Tag hinzufügen',
|
||||
noTag: 'Keine Tags',
|
||||
noTagYet: 'Noch keine Tags',
|
||||
addTag: 'Tags hinzufügen',
|
||||
editTag: 'Tags bearbeiten',
|
||||
manageTags: 'Tags verwalten',
|
||||
selectorPlaceholder: 'Typ zum Suchen oder Erstellen',
|
||||
create: 'Erstellen',
|
||||
delete: 'Tag löschen',
|
||||
deleteTip: 'Das Tag wird verwendet, löschen?',
|
||||
created: 'Tag erfolgreich erstellt',
|
||||
failed: 'Tag-Erstellung fehlgeschlagen',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} ist erforderlich',
|
||||
urlError: 'Die URL sollte mit http:// oder https:// beginnen',
|
||||
},
|
||||
fileUploader: {
|
||||
uploadFromComputer: 'Lokaler Upload',
|
||||
pasteFileLinkInvalid: 'Ungültiger Dateilink',
|
||||
pasteFileLinkInputPlaceholder: 'URL eingeben...',
|
||||
pasteFileLink: 'Dateilink einfügen',
|
||||
uploadFromComputerUploadError: 'Datei-Upload fehlgeschlagen, bitte erneut hochladen.',
|
||||
uploadFromComputerLimit: 'Datei hochladen darf {{size}} nicht überschreiten',
|
||||
uploadFromComputerReadError: 'Lesen der Datei fehlgeschlagen, bitte versuchen Sie es erneut.',
|
||||
fileExtensionNotSupport: 'Dateiendung nicht bedient',
|
||||
fileExtensionBlocked: 'Dieser Dateityp ist aus Sicherheitsgründen gesperrt',
|
||||
},
|
||||
license: {
|
||||
expiring: 'Läuft an einem Tag ab',
|
||||
expiring_plural: 'Läuft in {{count}} Tagen ab',
|
||||
unlimited: 'Unbegrenzt',
|
||||
},
|
||||
pagination: {
|
||||
perPage: 'Artikel pro Seite',
|
||||
},
|
||||
theme: {
|
||||
light: 'Licht',
|
||||
theme: 'Thema',
|
||||
dark: 'dunkel',
|
||||
auto: 'System',
|
||||
},
|
||||
compliance: {
|
||||
iso27001: 'ISO 27001:2022 Zertifizierung',
|
||||
professionalUpgradeTooltip: 'Nur verfügbar mit einem Teamplan oder höher.',
|
||||
gdpr: 'DSGVO DPA',
|
||||
soc2Type2: 'SOC 2 Typ II Bericht',
|
||||
soc2Type1: 'SOC 2 Typ I Bericht',
|
||||
sandboxUpgradeTooltip: 'Nur verfügbar mit einem Professional- oder Teamplan.',
|
||||
},
|
||||
imageInput: {
|
||||
dropImageHere: 'Laden Sie Ihr Bild hierher hoch oder',
|
||||
browse: 'blättern',
|
||||
supportedFormats: 'Unterstützt PNG, JPG, JPEG, WEBP und GIF',
|
||||
},
|
||||
you: 'Du',
|
||||
avatar: {
|
||||
deleteTitle: 'Avatar entfernen',
|
||||
deleteDescription: 'Bist du sicher, dass du dein Profilbild entfernen möchtest? Dein Konto wird das standardmäßige Anfangs-Avatar verwenden.',
|
||||
},
|
||||
feedback: {
|
||||
content: 'Feedback-Inhalt',
|
||||
title: 'Feedback geben',
|
||||
subtitle: 'Bitte sagen Sie uns, was mit dieser Antwort falsch gelaufen ist.',
|
||||
placeholder: 'Bitte beschreiben Sie, was schiefgelaufen ist oder wie wir uns verbessern können...',
|
||||
},
|
||||
label: {
|
||||
optional: '(fakultativ)',
|
||||
},
|
||||
noData: 'Keine Daten',
|
||||
dynamicSelect: {
|
||||
error: 'Ladeoptionen konnten nicht geladen werden',
|
||||
noData: 'Keine Optionen verfügbar',
|
||||
loading: 'Optionen werden geladen...',
|
||||
selected: '{{count}} ausgewählt',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
32
dify/web/i18n/de-DE/custom.ts
Normal file
32
dify/web/i18n/de-DE/custom.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
const translation = {
|
||||
custom: 'Anpassung',
|
||||
upgradeTip: {
|
||||
prefix: 'Erweitere deinen Plan auf',
|
||||
suffix: 'um deine Marke anzupassen.',
|
||||
title: 'Upgrade deinen Plan',
|
||||
des: 'Upgrade deinen Plan, um deine Marke anzupassen.',
|
||||
},
|
||||
webapp: {
|
||||
title: 'web app 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
|
||||
217
dify/web/i18n/de-DE/dataset-creation.ts
Normal file
217
dify/web/i18n/de-DE/dataset-creation.ts
Normal file
@@ -0,0 +1,217 @@
|
||||
const translation = {
|
||||
steps: {
|
||||
header: {
|
||||
fallbackRoute: 'Wissen',
|
||||
},
|
||||
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: 'Dateien und Ordner hierher ziehen oder klicken',
|
||||
buttonSingleFile: 'Datei hierher ziehen oder klicken',
|
||||
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',
|
||||
nameLengthInvalid: '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.)',
|
||||
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',
|
||||
jinaReaderDocLink: 'https://jina.ai/reader',
|
||||
jinaReaderTitle: 'Konvertieren Sie die gesamte Website in Markdown',
|
||||
useSitemap: 'Sitemap verwenden',
|
||||
chooseProvider: 'Wählen Sie einen Anbieter',
|
||||
jinaReaderNotConfigured: 'Jina Reader ist nicht konfiguriert',
|
||||
jinaReaderNotConfiguredDescription: 'Richten Sie Jina Reader ein, indem Sie Ihren kostenlosen API-Schlüssel für den Zugriff eingeben.',
|
||||
useSitemapTooltip: 'Folgen Sie der Sitemap, um die Website zu crawlen. Ist dies nicht der Fall, crawlt Jina Reader iterativ basierend auf der Seitenrelevanz, sodass weniger, aber qualitativ hochwertigere Seiten angezeigt werden.',
|
||||
jinaReaderDoc: 'Erfahre mehr über Jina Reader',
|
||||
configureJinaReader: 'Jina Reader konfigurieren',
|
||||
waterCrawlNotConfigured: 'Watercrawl ist nicht konfiguriert',
|
||||
configureWatercrawl: 'Wasserkrabbe konfigurieren',
|
||||
watercrawlTitle: 'Webinhalt mit Watercrawl extrahieren',
|
||||
watercrawlDoc: 'Wasserkriechen-Dokumente',
|
||||
configureFirecrawl: 'Firecrawl konfigurieren',
|
||||
waterCrawlNotConfiguredDescription: 'Konfigurieren Sie Watercrawl mit dem API-Schlüssel, um es zu verwenden.',
|
||||
running: 'Ausgeführte',
|
||||
},
|
||||
cancel: 'Abbrechen',
|
||||
},
|
||||
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',
|
||||
estimateCost: 'Schätzung',
|
||||
estimateSegment: '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',
|
||||
indexSettingTip: 'Um die Indexmethode zu ändern, bitte gehen Sie zu den ',
|
||||
retrievalSettingTip: 'Um die Indexmethode zu ändern, bitte gehen Sie zu den ',
|
||||
datasetSettingLink: 'Wissenseinstellungen.',
|
||||
websiteSource: 'Preprocess-Website',
|
||||
webpageUnit: 'Seiten',
|
||||
separatorTip: 'Ein Trennzeichen ist das Zeichen, das zum Trennen von Text verwendet wird. \\n\\n und \\n sind häufig verwendete Trennzeichen zum Trennen von Absätzen und Zeilen. In Kombination mit Kommas (\\n\\n,\\n) werden Absätze nach Zeilen segmentiert, wenn die maximale Blocklänge überschritten wird. Sie können auch spezielle, von Ihnen selbst definierte Trennzeichen verwenden (z. B. ***).',
|
||||
maxLengthCheck: 'Die maximale Stücklänge sollte weniger als {{limit}} betragen',
|
||||
switch: 'Schalter',
|
||||
previewChunk: 'Vorschau Chunk',
|
||||
highQualityTip: 'Sobald die Einbettung im Modus "Hohe Qualität" abgeschlossen ist, ist es nicht mehr möglich, in den Modus "Wirtschaftlich" zurückzukehren.',
|
||||
parentChildTip: 'Wenn Sie den Parent-Child-Modus verwenden, wird der Child-Chunk für den Abruf und der Parent-Chunk für den Abruf als Kontext verwendet.',
|
||||
fullDoc: 'Vollständiges Dokument',
|
||||
parentChildDelimiterTip: 'Ein Trennzeichen ist das Zeichen, das zum Trennen von Text verwendet wird. \\n\\n wird empfohlen, um das Originaldokument in große übergeordnete Blöcke aufzuteilen. Sie können auch spezielle Trennzeichen verwenden, die Sie selbst definiert haben.',
|
||||
qaSwitchHighQualityTipContent: 'Derzeit unterstützt nur eine hochwertige Indexmethode das Q&A-Format-Chunking. Möchten Sie in den High-Quality-Modus wechseln?',
|
||||
childChunkForRetrieval: 'Child-Chunk zum Abrufen',
|
||||
previewChunkCount: '{{Anzahl}} Geschätzte Chunks',
|
||||
previewChunkTip: 'Klicken Sie auf die Schaltfläche "Preview Chunk" auf der linken Seite, um die Vorschau zu laden',
|
||||
qaSwitchHighQualityTipTitle: 'Das Q&A-Format erfordert eine qualitativ hochwertige Indizierungsmethode',
|
||||
general: 'Allgemein',
|
||||
generalTip: 'Allgemeiner Text-Chunking-Modus, die abgerufenen und zurückgerufenen Chunks sind gleich.',
|
||||
notAvailableForQA: 'Nicht verfügbar für Q&A Index',
|
||||
notAvailableForParentChild: 'Nicht verfügbar für den Parent-Child-Index',
|
||||
parentChild: 'Eltern-Kind',
|
||||
parentChunkForContext: 'Parent-chunk für Context',
|
||||
parentChildChunkDelimiterTip: 'Ein Trennzeichen ist das Zeichen, das zum Trennen von Text verwendet wird. \\n wird empfohlen, um übergeordnete Blöcke in kleine untergeordnete Blöcke aufzuteilen. Sie können auch spezielle Trennzeichen verwenden, die Sie selbst definiert haben.',
|
||||
useQALanguage: 'Chunk im Q&A-Format in',
|
||||
paragraph: 'Absatz',
|
||||
fullDocTip: 'Das gesamte Dokument wird als übergeordneter Block verwendet und direkt abgerufen. Bitte beachten Sie, dass aus Leistungsgründen Texte, die 10000 Token überschreiten, automatisch abgeschnitten werden.',
|
||||
paragraphTip: 'In diesem Modus wird der Text basierend auf Trennzeichen und der maximalen Blocklänge in Absätze aufgeteilt, wobei der geteilte Text als übergeordneter Block für den Abruf verwendet wird.',
|
||||
qaTip: 'Wenn Sie strukturierte Q&A-Daten verwenden, können Sie Dokumente erstellen, die Fragen mit Antworten verknüpfen. Diese Dokumente werden basierend auf dem Frageteil indiziert, sodass das System relevante Antworten basierend auf der Ähnlichkeit der Abfrage abrufen kann.',
|
||||
},
|
||||
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',
|
||||
},
|
||||
jinaReader: {
|
||||
configJinaReader: 'Jina Reader konfigurieren',
|
||||
apiKeyPlaceholder: 'API-Schlüssel von jina.ai',
|
||||
getApiKeyLinkText: 'Holen Sie sich Ihren kostenlosen API-Schlüssel bei jina.ai',
|
||||
},
|
||||
otherDataSource: {
|
||||
learnMore: 'Weitere Informationen',
|
||||
title: 'Verbinden Sie sich mit anderen Datenquellen?',
|
||||
description: 'Derzeit verfügt die Wissensdatenbank von Dify nur über begrenzte Datenquellen. Das Beitragen einer Datenquelle zur Dify-Wissensdatenbank ist eine fantastische Möglichkeit, die Flexibilität und Leistungsfähigkeit der Plattform für alle Benutzer zu verbessern. Unser Beitragsleitfaden erleichtert Ihnen den Einstieg. Bitte klicken Sie auf den untenstehenden Link, um mehr zu erfahren.',
|
||||
},
|
||||
watercrawl: {
|
||||
configWatercrawl: 'Wasserkrabbe konfigurieren',
|
||||
apiKeyPlaceholder: 'API-Schlüssel von watercrawl.dev',
|
||||
getApiKeyLinkText: 'Holen Sie sich Ihren API-Schlüssel von watercrawl.dev',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
407
dify/web/i18n/de-DE/dataset-documents.ts
Normal file
407
dify/web/i18n/de-DE/dataset-documents.ts
Normal file
@@ -0,0 +1,407 @@
|
||||
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',
|
||||
chunkingMode: 'CHUNKING-MODUS',
|
||||
},
|
||||
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',
|
||||
resume: 'Fortsetzen',
|
||||
pause: 'Pause',
|
||||
},
|
||||
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',
|
||||
learnMore: 'Weitere Informationen',
|
||||
sort: {
|
||||
uploadTime: 'Upload-Zeit',
|
||||
hitCount: 'Abrufanzahl',
|
||||
},
|
||||
},
|
||||
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',
|
||||
online_document: 'Online-Dokument',
|
||||
local_file: 'Lokale Datei',
|
||||
website_crawl: 'Website-Crawl',
|
||||
},
|
||||
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',
|
||||
topicKeywords: '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',
|
||||
abstract: 'Zusammenfassung',
|
||||
topicsKeywords: 'Themen/Stichworte',
|
||||
},
|
||||
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',
|
||||
parentMaxTokens: 'Elternteil',
|
||||
childMaxTokens: 'Kind',
|
||||
hierarchical: 'Eltern-Kind',
|
||||
pause: 'Pause',
|
||||
waiting: 'Einbettung wartet...',
|
||||
},
|
||||
segment: {
|
||||
paragraphs: 'Absätze',
|
||||
keywords: 'Schlüsselwörter',
|
||||
addKeyWord: 'Schlüsselwort hinzufügen',
|
||||
keywordError: 'Die maximale Länge des Schlüsselworts beträgt 20',
|
||||
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?',
|
||||
parentChunks_one: 'ÜBERGEORDNETER CHUNK',
|
||||
searchResults_other: 'BEFUND',
|
||||
clearFilter: 'Filter löschen',
|
||||
chunk: 'Stück',
|
||||
childChunk: 'Untergeordneter Brocken',
|
||||
newChildChunk: 'Neuer untergeordneter Block',
|
||||
chunkDetail: 'Chunk-Detail',
|
||||
regeneratingMessage: 'Das kann einen Moment dauern, bitte warten...',
|
||||
searchResults_zero: 'ERGEBNIS',
|
||||
parentChunks_other: 'ÜBERGEORDNETE BLÖCKE',
|
||||
editParentChunk: 'Übergeordneter Block bearbeiten',
|
||||
childChunks_other: 'UNTERGEORDNETE BLÖCKE',
|
||||
editChunk: 'Chunk bearbeiten',
|
||||
regenerationSuccessTitle: 'Regeneration abgeschlossen',
|
||||
parentChunk: 'Übergeordneter Chunk',
|
||||
childChunkAdded: '1 untergeordneter Block hinzugefügt',
|
||||
edited: 'BEARBEITETE',
|
||||
collapseChunks: 'Blöcke reduzieren',
|
||||
empty: 'Kein Chunk gefunden',
|
||||
regenerationSuccessMessage: 'Sie können dieses Fenster schließen.',
|
||||
chunks_other: 'STÜCKE',
|
||||
regenerationConfirmMessage: 'Beim Regenerieren von untergeordneten Blöcken werden die aktuellen untergeordneten Blöcke überschrieben, einschließlich bearbeiteter und neu hinzugefügter Blöcke. Die Regeneration kann nicht rückgängig gemacht werden.',
|
||||
childChunks_one: 'UNTERGEORDNETER CHUNK',
|
||||
characters_other: 'Zeichen',
|
||||
newChunk: 'Neuer Brocken',
|
||||
editChildChunk: 'Untergeordneten Block bearbeiten',
|
||||
chunkAdded: '1 Stück hinzugefügt',
|
||||
expandChunks: 'Blöcke erweitern',
|
||||
editedAt: 'Bearbeitet am',
|
||||
dateTimeFormat: 'MM/DD/YYYY h:mm',
|
||||
addChunk: 'Block hinzufügen',
|
||||
addAnother: 'Fügen Sie eine weitere hinzu',
|
||||
regeneratingTitle: 'Regenerieren von untergeordneten Blöcken',
|
||||
chunks_one: 'STÜCK',
|
||||
characters_one: 'Zeichen',
|
||||
addChildChunk: 'Untergeordneten Block hinzufügen',
|
||||
regenerationConfirmTitle: 'Möchten Sie untergeordnete Chunks regenerieren?',
|
||||
searchResults_one: 'ERGEBNIS',
|
||||
keywordEmpty: 'Das Schlüsselwort darf nicht leer sein.',
|
||||
keywordDuplicate: 'Das Schlüsselwort existiert bereits',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
34
dify/web/i18n/de-DE/dataset-hit-testing.ts
Normal file
34
dify/web/i18n/de-DE/dataset-hit-testing.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
const translation = {
|
||||
title: 'Abruf-Test',
|
||||
desc: 'Testen Sie die Treffereffektivität des Wissens anhand des gegebenen Abfragetextes.',
|
||||
dateTimeFormat: 'MM/DD/YYYY hh:mm A',
|
||||
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',
|
||||
viewDetail: 'Im Detail sehen',
|
||||
settingTitle: 'Einstellung für den Abruf',
|
||||
records: 'Aufzeichnungen',
|
||||
open: 'Offen',
|
||||
hitChunks: 'Klicken Sie auf {{num}} untergeordnete Chunks',
|
||||
keyword: 'Schlüsselwörter',
|
||||
chunkDetail: 'Chunk-Detail',
|
||||
}
|
||||
|
||||
export default translation
|
||||
166
dify/web/i18n/de-DE/dataset-pipeline.ts
Normal file
166
dify/web/i18n/de-DE/dataset-pipeline.ts
Normal file
@@ -0,0 +1,166 @@
|
||||
const translation = {
|
||||
creation: {
|
||||
createFromScratch: {
|
||||
title: 'Leere Wissenspipeline',
|
||||
description: 'Erstellen Sie eine benutzerdefinierte Pipeline von Grund auf neu mit vollständiger Kontrolle über die Datenverarbeitung und -struktur.',
|
||||
},
|
||||
caution: 'Vorsicht',
|
||||
backToKnowledge: 'Zurück zu Wissen',
|
||||
createKnowledge: 'Wissen schaffen',
|
||||
importDSL: 'Importieren aus einer DSL-Datei',
|
||||
successTip: 'Erfolgreich eine Wissensdatenbank erstellt',
|
||||
errorTip: 'Fehler beim Erstellen einer Wissensdatenbank',
|
||||
},
|
||||
templates: {
|
||||
customized: 'Angepasst',
|
||||
},
|
||||
operations: {
|
||||
dataSource: 'Datenquelle',
|
||||
details: 'Details',
|
||||
process: 'Prozess',
|
||||
preview: 'Vorschau',
|
||||
convert: 'Umwandeln',
|
||||
useTemplate: 'Verwenden dieser Wissenspipeline',
|
||||
backToDataSource: 'Zurück zur Datenquelle',
|
||||
exportPipeline: 'Pipeline exportieren',
|
||||
editInfo: 'Info bearbeiten',
|
||||
choose: 'Wählen',
|
||||
saveAndProcess: 'Speichern & Verarbeiten',
|
||||
},
|
||||
deletePipeline: {
|
||||
title: 'Sind Sie sicher, dass Sie diese Pipeline-Vorlage löschen möchten?',
|
||||
content: 'Das Löschen der Pipelinevorlage kann nicht rückgängig gemacht werden.',
|
||||
},
|
||||
publishPipeline: {
|
||||
success: {
|
||||
message: 'Knowledge Pipeline veröffentlicht',
|
||||
tip: '<CustomLink>Gehe zu Dokumente</CustomLink>, um Dokumente hinzuzufügen oder zu verwalten.',
|
||||
},
|
||||
error: {
|
||||
message: 'Fehler beim Veröffentlichen der Wissenspipeline',
|
||||
},
|
||||
},
|
||||
publishTemplate: {
|
||||
success: {
|
||||
learnMore: 'Weitere Informationen',
|
||||
tip: 'Sie können diese Vorlage auf der Erstellungsseite verwenden.',
|
||||
message: 'Pipeline-Vorlage veröffentlicht',
|
||||
},
|
||||
error: {
|
||||
message: 'Fehler beim Veröffentlichen der Pipeline-Vorlage',
|
||||
},
|
||||
},
|
||||
exportDSL: {
|
||||
successTip: 'Pipeline-DSL erfolgreich exportieren',
|
||||
errorTip: 'Fehler beim Exportieren der Pipeline-DSL',
|
||||
},
|
||||
details: {
|
||||
structure: 'Struktur',
|
||||
structureTooltip: 'Die Blockstruktur bestimmt, wie Dokumente aufgeteilt und indiziert werden, und bietet die Modi "Allgemein", "Über-Eltern-Kind" und "Q&A" und ist für jede Wissensdatenbank einzigartig.',
|
||||
createdBy: 'Von {{author}}',
|
||||
},
|
||||
testRun: {
|
||||
steps: {
|
||||
documentProcessing: 'Verarbeitung von Dokumenten',
|
||||
dataSource: 'Datenquelle',
|
||||
},
|
||||
dataSource: {
|
||||
localFiles: 'Lokale Dateien',
|
||||
},
|
||||
notion: {
|
||||
docTitle: 'Notion docs',
|
||||
title: 'Wählen Sie Notion Pages',
|
||||
},
|
||||
title: 'Testlauf',
|
||||
tooltip: 'Im Testlaufmodus darf jeweils nur ein Dokument importiert werden, um das Debuggen und Beobachten zu vereinfachen.',
|
||||
},
|
||||
inputFieldPanel: {
|
||||
uniqueInputs: {
|
||||
title: 'Einzigartige Eingänge für jeden Eingang',
|
||||
tooltip: 'Eindeutige Eingaben sind nur für die ausgewählte Datenquelle und ihre Downstream-Knoten zugänglich. Benutzer müssen sie nicht ausfüllen, wenn sie andere Datenquellen auswählen. Im ersten Schritt (Datenquelle) werden nur Eingabefelder angezeigt, auf die von Datenquellenvariablen verwiesen wird. Alle anderen Felder werden im zweiten Schritt (Dokumente bearbeiten) angezeigt.',
|
||||
},
|
||||
globalInputs: {
|
||||
title: 'Globale Eingänge für alle Eingänge',
|
||||
tooltip: 'Globale Eingaben werden von allen Knoten gemeinsam genutzt. Benutzer müssen sie ausfüllen, wenn sie eine Datenquelle auswählen. Beispielsweise können Felder wie Trennzeichen und maximale Blocklänge einheitlich auf mehrere Datenquellen angewendet werden. Im ersten Schritt (Datenquelle) werden nur Eingabefelder angezeigt, die von Datenquellenvariablen referenziert werden. Alle anderen Felder werden im zweiten Schritt (Dokumente bearbeiten) angezeigt.',
|
||||
},
|
||||
preview: {
|
||||
stepTwoTitle: 'Dokumente verarbeiten',
|
||||
stepOneTitle: 'Datenquelle',
|
||||
},
|
||||
error: {
|
||||
variableDuplicate: 'Der Variablenname ist bereits vorhanden. Bitte wählen Sie einen anderen Namen.',
|
||||
},
|
||||
editInputField: 'Eingabefeld bearbeiten',
|
||||
addInputField: 'Eingabefeld hinzufügen',
|
||||
title: 'Eingabefelder für Benutzer',
|
||||
description: 'Benutzereingabefelder werden verwendet, um Variablen zu definieren und zu erfassen, die während des Pipeline-Ausführungsprozesses erforderlich sind. Benutzer können den Feldtyp anpassen und den Eingabewert flexibel konfigurieren, um den Anforderungen verschiedener Datenquellen oder Dokumentverarbeitungsschritte gerecht zu werden.',
|
||||
},
|
||||
addDocuments: {
|
||||
steps: {
|
||||
processDocuments: 'Dokumente verarbeiten',
|
||||
processingDocuments: 'Verarbeiten von Dokumenten',
|
||||
chooseDatasource: 'Auswählen einer Datenquelle',
|
||||
},
|
||||
stepOne: {
|
||||
preview: 'Vorschau',
|
||||
},
|
||||
stepTwo: {
|
||||
previewChunks: 'Vorschau von Chunks',
|
||||
chunkSettings: 'Chunk-Einstellungen',
|
||||
},
|
||||
stepThree: {
|
||||
learnMore: 'Weitere Informationen',
|
||||
},
|
||||
characters: 'Zeichen',
|
||||
backToDataSource: 'Datenquelle',
|
||||
title: 'Dokumente hinzufügen',
|
||||
selectOnlineDocumentTip: 'Bis zu {{count}} Seiten verarbeiten',
|
||||
selectOnlineDriveTip: 'Verarbeiten Sie bis zu {{count}} Dateien, maximal {{fileSize}} MB pro Datei',
|
||||
},
|
||||
documentSettings: {
|
||||
title: 'Dokument-Einstellungen',
|
||||
},
|
||||
onlineDocument: {
|
||||
pageSelectorTitle: '{{name}} Seiten',
|
||||
},
|
||||
onlineDrive: {
|
||||
breadcrumbs: {
|
||||
allFiles: 'Alle Dateien',
|
||||
allBuckets: 'Alle Cloud Storage-Buckets',
|
||||
searchPlaceholder: 'Dateien suchen...',
|
||||
searchResult: '{{searchResultsLength}} Elemente im Ordner "{{folderName}}" finden',
|
||||
},
|
||||
emptySearchResult: 'Es wurden keine Gegenstände gefunden',
|
||||
resetKeywords: 'Schlüsselwörter zurücksetzen',
|
||||
notSupportedFileType: 'Dieser Dateityp wird nicht unterstützt',
|
||||
emptyFolder: 'Dieser Ordner ist leer',
|
||||
notConnected: '{{name}} ist nicht verbunden',
|
||||
notConnectedTip: 'Um mit {{name}} zu synchronisieren, muss zuerst eine Verbindung zu {{name}} hergestellt werden.',
|
||||
},
|
||||
credentialSelector: {
|
||||
name: '{{credentialName}}\'s {{pluginName}}',
|
||||
},
|
||||
conversion: {
|
||||
confirm: {
|
||||
title: 'Bestätigung',
|
||||
content: 'Diese Aktion ist dauerhaft. Sie können die vorherige Methode nicht wiederherstellen. Bitte bestätigen Sie, um umzurechnen.',
|
||||
},
|
||||
title: 'In Wissenspipeline konvertieren',
|
||||
successMessage: 'Erfolgreiches Konvertieren des Datasets in eine Pipeline',
|
||||
errorMessage: 'Fehler beim Konvertieren des Datasets in eine Pipeline.',
|
||||
warning: 'Diese Aktion kann nicht rückgängig gemacht werden.',
|
||||
descriptionChunk1: 'Sie können jetzt Ihre vorhandene Wissensdatenbank konvertieren, um die Knowledge Pipeline für die Dokumentenverarbeitung zu verwenden',
|
||||
descriptionChunk2: '– ein offenerer und flexiblerer Ansatz mit Zugang zu Plugins aus unserem Marktplatz. Dadurch wird die neue Verarbeitungsmethode auf alle zukünftigen Dokumente angewendet.',
|
||||
},
|
||||
knowledgePermissions: 'Erlaubnisse',
|
||||
inputField: 'Eingabefeld',
|
||||
knowledgeDescription: 'Beschreibung des Wissens',
|
||||
editPipelineInfo: 'Bearbeiten von Pipeline-Informationen',
|
||||
knowledgeNameAndIcon: 'Name und Symbol des Wissens',
|
||||
pipelineNameAndIcon: 'Name und Symbol der Pipeline',
|
||||
knowledgeDescriptionPlaceholder: 'Beschreiben Sie, was in dieser Wissensdatenbank enthalten ist. Eine detaillierte Beschreibung ermöglicht es der KI, genauer auf den Inhalt des Datensatzes zuzugreifen. Wenn das Feld leer ist, verwendet Dify die Standard-Trefferstrategie. (Fakultativ)',
|
||||
knowledgeNameAndIconPlaceholder: 'Bitte geben Sie den Namen der Knowledge Base ein.',
|
||||
configurationTip: 'Konfigurieren {{pluginName}}',
|
||||
}
|
||||
|
||||
export default translation
|
||||
51
dify/web/i18n/de-DE/dataset-settings.ts
Normal file
51
dify/web/i18n/de-DE/dataset-settings.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
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.',
|
||||
method: 'Abrufmethode',
|
||||
},
|
||||
save: 'Speichern',
|
||||
permissionsInvitedMembers: 'Teilweise Teammitglieder',
|
||||
me: '(Sie)',
|
||||
externalKnowledgeID: 'ID für externes Wissen',
|
||||
externalKnowledgeAPI: 'API für externes Wissen',
|
||||
retrievalSettings: 'Einstellungen für den Abruf',
|
||||
upgradeHighQualityTip: 'Nach dem Upgrade auf den Modus "Hohe Qualität" ist das Zurücksetzen auf den Modus "Wirtschaftlich" nicht mehr möglich',
|
||||
helpText: 'Erfahren Sie, wie Sie eine gute Datensatzbeschreibung schreiben.',
|
||||
indexMethodChangeToEconomyDisabledTip: 'Nicht verfügbar für ein Downgrade von HQ auf ECO',
|
||||
searchModel: 'Modell suchen',
|
||||
chunkStructure: {
|
||||
learnMore: 'Weitere Informationen',
|
||||
title: 'Chunk-Struktur',
|
||||
description: 'über Chunk Structure.',
|
||||
},
|
||||
nameAndIcon: 'Name & Symbol',
|
||||
onSearchResults: 'Kein Mitglied stimmt mit Ihrer Suchanfrage überein.\nVersuchen Sie Ihre Suche erneut.',
|
||||
numberOfKeywords: 'Anzahl der Schlüsselwörter',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
243
dify/web/i18n/de-DE/dataset.ts
Normal file
243
dify/web/i18n/de-DE/dataset.ts
Normal file
@@ -0,0 +1,243 @@
|
||||
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',
|
||||
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: {
|
||||
},
|
||||
change: 'Ändern',
|
||||
changeRetrievalMethod: 'Abfragemethode ändern',
|
||||
keyword_search: {
|
||||
title: 'Invertierter Index',
|
||||
description: 'Der invertierte Index ist eine Struktur, die für einen effizienten Abruf verwendet wird. Jeder Begriff ist nach Begriffen geordnet und verweist auf Dokumente oder Webseiten, die ihn enthalten.',
|
||||
},
|
||||
},
|
||||
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.',
|
||||
defaultRetrievalTip: 'Standardmäßig wird der Multi-Path-Abruf verwendet. Das Wissen wird aus mehreren Wissensdatenbanken abgerufen und dann neu eingestuft.',
|
||||
editExternalAPIConfirmWarningContent: {
|
||||
end: 'externes Wissen, und diese Modifikation wird auf alle angewendet. Sind Sie sicher, dass Sie diese Änderung speichern möchten?',
|
||||
front: 'Diese External Knowledge API ist verknüpft mit',
|
||||
},
|
||||
editExternalAPIFormWarning: {
|
||||
front: 'Diese externe API ist verknüpft mit',
|
||||
end: 'externes Wissen',
|
||||
},
|
||||
deleteExternalAPIConfirmWarningContent: {
|
||||
title: {
|
||||
front: 'Löschen',
|
||||
end: '?',
|
||||
},
|
||||
content: {
|
||||
front: 'Diese External Knowledge API ist verknüpft mit',
|
||||
end: 'externes Wissen. Wenn Sie diese API löschen, werden alle ungültig. Sind Sie sicher, dass Sie diese API löschen möchten?',
|
||||
},
|
||||
noConnectionContent: 'Sind Sie sicher, dass Sie diese API löschen möchten?',
|
||||
},
|
||||
selectExternalKnowledgeAPI: {
|
||||
placeholder: 'Auswählen einer externen Wissens-API',
|
||||
},
|
||||
connectDatasetIntro: {
|
||||
content: {
|
||||
front: 'Um eine Verbindung zu einer externen Wissensdatenbank herzustellen, müssen Sie zuerst eine externe API erstellen. Bitte lesen Sie diese sorgfältig durch und beziehen Sie sich auf',
|
||||
link: 'Erfahren Sie, wie Sie eine externe API erstellen',
|
||||
end: '. Suchen Sie dann die entsprechende Wissens-ID und füllen Sie diese in das Formular links aus. Wenn alle Informationen korrekt sind, wird nach dem Klicken auf die Schaltfläche "Verbinden" automatisch zum Abruftest in der Wissensdatenbank gesprungen.',
|
||||
},
|
||||
learnMore: 'Weitere Informationen',
|
||||
title: 'So stellen Sie eine Verbindung zu einer externen Wissensdatenbank her',
|
||||
},
|
||||
connectHelper: {
|
||||
helper3: '. Wir empfehlen Ihnen dringend,',
|
||||
helper2: 'Es wird nur die Retrieval-Funktionalität unterstützt',
|
||||
helper5: 'bevor Sie diese Funktion verwenden.',
|
||||
helper4: 'Lesen Sie die Hilfedokumentation',
|
||||
helper1: 'Verbinden Sie sich mit externen Wissensdatenbanken über API und Wissensdatenbank-ID.',
|
||||
},
|
||||
externalKnowledgeForm: {
|
||||
connect: 'Verbinden',
|
||||
cancel: 'Abbrechen',
|
||||
},
|
||||
externalAPIForm: {
|
||||
encrypted: {
|
||||
front: 'Ihr API-Token wird verschlüsselt und gespeichert mit',
|
||||
end: 'Technologie.',
|
||||
},
|
||||
save: 'Retten',
|
||||
cancel: 'Abbrechen',
|
||||
endpoint: 'API-Endpunkt',
|
||||
name: 'Name',
|
||||
edit: 'Redigieren',
|
||||
apiKey: 'API-Schlüssel',
|
||||
},
|
||||
externalTag: 'Äußerlich',
|
||||
createExternalAPI: 'Hinzufügen einer externen Knowledge-API',
|
||||
externalAPIPanelDescription: 'Die API für externes Wissen wird verwendet, um eine Verbindung zu einer Wissensdatenbank außerhalb von Dify herzustellen und Wissen aus dieser Wissensdatenbank abzurufen.',
|
||||
createNewExternalAPI: 'Erstellen einer neuen API für externes Wissen',
|
||||
externalKnowledgeDescriptionPlaceholder: 'Beschreiben Sie, was in dieser Wissensdatenbank enthalten ist (optional)',
|
||||
externalAPIPanelDocumentation: 'Erfahren Sie, wie Sie eine API für externes Wissen erstellen',
|
||||
externalAPIPanelTitle: 'API für externes Wissen',
|
||||
learnHowToWriteGoodKnowledgeDescription: 'Erfahren Sie, wie Sie eine gute Wissensbeschreibung schreiben',
|
||||
editExternalAPITooltipTitle: 'VERKNÜPFTES WISSEN',
|
||||
externalKnowledgeIdPlaceholder: 'Bitte geben Sie die Knowledge ID ein',
|
||||
connectDataset: 'Herstellen einer Verbindung mit einer externen Wissensdatenbank',
|
||||
externalAPI: 'Externe API',
|
||||
externalKnowledgeName: 'Name des externen Wissens',
|
||||
allExternalTip: 'Wenn nur externes Wissen verwendet wird, kann der Benutzer auswählen, ob das Rerank-Modell aktiviert werden soll. Wenn diese Option nicht aktiviert ist, werden die abgerufenen Blöcke basierend auf den Punktzahlen sortiert. Wenn die Abrufstrategien verschiedener Wissensdatenbanken inkonsistent sind, ist dies ungenau.',
|
||||
externalKnowledgeDescription: 'Wissen Beschreibung',
|
||||
noExternalKnowledge: 'Es gibt noch keine External Knowledge API, klicken Sie hier, um zu erstellen',
|
||||
externalKnowledgeNamePlaceholder: 'Bitte geben Sie den Namen der Wissensdatenbank ein.',
|
||||
mixtureInternalAndExternalTip: 'Das Rerank-Modell ist für die Mischung von internem und externem Wissen erforderlich.',
|
||||
externalKnowledgeId: 'ID für externes Wissen',
|
||||
editExternalAPIFormTitle: 'Bearbeiten der API für externes Wissen',
|
||||
chunkingMode: {
|
||||
parentChild: 'Eltern-Kind',
|
||||
general: 'Allgemein',
|
||||
graph: 'Graph',
|
||||
qa: 'Fragen und Antworten',
|
||||
},
|
||||
parentMode: {
|
||||
paragraph: 'Absatz',
|
||||
fullDoc: 'Vollständiges Dokument',
|
||||
},
|
||||
batchAction: {
|
||||
selected: 'Ausgewählt',
|
||||
cancel: 'Abbrechen',
|
||||
archive: 'Archiv',
|
||||
disable: 'Abschalten',
|
||||
delete: 'Löschen',
|
||||
enable: 'Ermöglichen',
|
||||
},
|
||||
enable: 'Ermöglichen',
|
||||
localDocs: 'Lokale Dokumente',
|
||||
preprocessDocument: '{{num}} Vorverarbeiten von Dokumenten',
|
||||
documentsDisabled: '{{num}} Dokumente deaktiviert - seit über 30 Tagen inaktiv',
|
||||
allKnowledge: 'Alles Wissen',
|
||||
allKnowledgeDescription: 'Wählen Sie diese Option aus, um das gesamte Wissen in diesem Arbeitsbereich anzuzeigen. Nur der Workspace-Besitzer kann das gesamte Wissen verwalten.',
|
||||
metadata: {
|
||||
createMetadata: {
|
||||
namePlaceholder: 'Metadatenname hinzufügen',
|
||||
back: 'Zurück',
|
||||
title: 'Neue Metadaten',
|
||||
name: 'Name',
|
||||
type: 'Art',
|
||||
},
|
||||
checkName: {
|
||||
empty: 'Der Metadatenname darf nicht leer sein.',
|
||||
invalid: 'Der Metadatenname darf nur Kleinbuchstaben, Zahlen und Unterstriche enthalten und muss mit einem Kleinbuchstaben beginnen.',
|
||||
tooLong: 'Der Metadatenname darf {{max}} Zeichen nicht überschreiten.',
|
||||
},
|
||||
batchEditMetadata: {
|
||||
editMetadata: 'Metadaten bearbeiten',
|
||||
multipleValue: 'Mehrwert',
|
||||
applyToAllSelectDocument: 'Auf alle ausgewählten Dokumente anwenden',
|
||||
applyToAllSelectDocumentTip: 'Erstellen Sie automatisch alle oben bearbeiteten und neuen Metadaten für alle ausgewählten Dokumente, andernfalls wird die Bearbeitung der Metadaten nur auf Dokumente angewendet, die bereits Metadaten enthalten.',
|
||||
editDocumentsNum: 'Bearbeiten von {{num}} Dokumenten',
|
||||
},
|
||||
selectMetadata: {
|
||||
manageAction: 'Verwalten',
|
||||
search: 'Metadaten durchsuchen',
|
||||
newAction: 'Neue Metadaten',
|
||||
},
|
||||
datasetMetadata: {
|
||||
name: 'Name',
|
||||
disabled: 'Deaktiviert',
|
||||
description: 'Sie können alle Metadaten in diesem Wissen hier verwalten. Änderungen werden mit jedem Dokument synchronisiert.',
|
||||
deleteContent: 'Bist du sicher, dass du die Metadaten "{{name}}" löschen möchtest?',
|
||||
addMetaData: 'Metadaten hinzufügen',
|
||||
deleteTitle: 'Bestätigen Sie das Löschen',
|
||||
values: '{{num}} Werte',
|
||||
builtIn: 'Eingebaut',
|
||||
rename: 'Umbenennen',
|
||||
builtInDescription: 'Integrierte Metadaten werden automatisch extrahiert und generiert. Sie müssen vor der Verwendung aktiviert werden und können nicht bearbeitet werden.',
|
||||
namePlaceholder: 'Metadatenname',
|
||||
},
|
||||
documentMetadata: {
|
||||
startLabeling: 'Labeling starten',
|
||||
technicalParameters: 'Technische Parameter',
|
||||
documentInformation: 'Dokumentinformationen',
|
||||
metadataToolTip: 'Metadaten dienen als ein entscheidender Filter, der die Genauigkeit und Relevanz der Informationsbeschaffung verbessert. Sie können die Metadaten für dieses Dokument hier ändern und hinzufügen.',
|
||||
},
|
||||
chooseTime: 'Wählen Sie eine Zeit...',
|
||||
metadata: 'Metadaten',
|
||||
addMetadata: 'Metadaten hinzufügen',
|
||||
},
|
||||
embeddingModelNotAvailable: 'Das Einbettungsmodell ist nicht verfügbar.',
|
||||
updated: 'Aktualisierte',
|
||||
externalKnowledgeBase: 'Externe Wissensdatenbank',
|
||||
createFromPipeline: 'Aus Wissenspipeline erstellen',
|
||||
serviceApi: {
|
||||
card: {
|
||||
title: 'Backend-Dienst-API',
|
||||
apiReference: 'API Referenz',
|
||||
apiKey: 'API-Schlüssel',
|
||||
endpoint: 'Service-API-Endpunkt',
|
||||
},
|
||||
title: 'Service-API',
|
||||
enabled: 'Im Dienst',
|
||||
disabled: 'Behindert',
|
||||
},
|
||||
docAllEnabled_one: '{{count}} Dokument aktiviert',
|
||||
docAllEnabled_other: 'Alle {{count}} Dokumente aktiviert',
|
||||
partialEnabled_one: 'Insgesamt {{count}} Dokumente, {{num}} verfügbar',
|
||||
partialEnabled_other: 'Insgesamt {{count}} Dokumente, {{num}} verfügbar',
|
||||
}
|
||||
|
||||
export default translation
|
||||
76
dify/web/i18n/de-DE/education.ts
Normal file
76
dify/web/i18n/de-DE/education.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
const translation = {
|
||||
toVerifiedTip: {
|
||||
coupon: 'exklusiver 100% Gutschein',
|
||||
end: 'für den Dify Professional Plan.',
|
||||
front: 'Sie sind jetzt berechtigt, den Status „Bildung verifiziert“ zu erhalten. Bitte geben Sie unten Ihre Bildungsinformationen ein, um den Prozess abzuschließen und eine Zu erhalten.',
|
||||
},
|
||||
form: {
|
||||
schoolName: {
|
||||
placeholder: 'Geben Sie den offiziellen, unabgekürzten Namen Ihrer Schule ein.',
|
||||
title: 'Ihr Schulname',
|
||||
},
|
||||
schoolRole: {
|
||||
option: {
|
||||
teacher: 'Lehrer',
|
||||
administrator: 'Schuladministrator',
|
||||
student: 'Schüler',
|
||||
},
|
||||
title: 'Ihre Schulrolle',
|
||||
},
|
||||
terms: {
|
||||
desc: {
|
||||
and: 'und',
|
||||
privacyPolicy: 'Datenschutzrichtlinie',
|
||||
termsOfService: 'Nutzungsbedingungen',
|
||||
end: '. Durch die Einreichung:',
|
||||
front: 'Ihre Informationen und die Nutzung des Status "Bildung bestätigt" unterliegen unseren',
|
||||
},
|
||||
option: {
|
||||
inSchool: 'Ich bestätige, dass ich an der angegebenen Einrichtung eingeschrieben oder angestellt bin. Dify kann einen Nachweis über die Einschreibung/Anstellung anfordern. Wenn ich meine Berechtigung falsch darstelle, stimme ich zu, alle Gebühren zu zahlen, die aufgrund meines Bildungsstatus ursprünglich erlassen wurden.',
|
||||
age: 'Ich bestätige, dass ich mindestens 18 Jahre alt bin.',
|
||||
},
|
||||
title: 'Allgemeine Geschäftsbedingungen',
|
||||
},
|
||||
},
|
||||
toVerified: 'Bildung überprüfen lassen',
|
||||
rejectTitle: 'Ihre Dify-Ausbildungsüberprüfung wurde abgelehnt.',
|
||||
currentSigned: 'DERZEIT ANGEMELDET ALS',
|
||||
submit: 'Einreichen',
|
||||
submitError: 'Die Formularübermittlung ist fehlgeschlagen. Bitte versuchen Sie es später erneut.',
|
||||
rejectContent: 'Leider sind Sie nicht für den Status "Education Verified" berechtigt und können daher den exklusiven 100%-Gutschein für den Dify Professional Plan nicht erhalten, wenn Sie diese E-Mail-Adresse verwenden.',
|
||||
successContent: 'Wir haben einen 100% Rabattgutschein für den Dify Professional Plan auf Ihr Konto ausgestellt. Der Gutschein ist ein Jahr lang gültig, bitte nutzen Sie ihn innerhalb des Gültigkeitszeitraums.',
|
||||
learn: 'Erfahren Sie, wie Sie Ihre Ausbildung überprüfen lassen.',
|
||||
emailLabel: 'Ihre aktuelle E-Mail',
|
||||
successTitle: 'Sie haben die Dify-Ausbildung verifiziert',
|
||||
notice: {
|
||||
expired: {
|
||||
summary: {
|
||||
line1: 'Sie können weiterhin auf Dify zugreifen und es nutzen.',
|
||||
line2: 'Allerdings sind Sie nicht mehr berechtigt, neue Bildungsgutscheine zu erhalten.',
|
||||
},
|
||||
title: 'Ihr Bildungsstatus ist abgelaufen.',
|
||||
},
|
||||
isAboutToExpire: {
|
||||
summary: 'Keine Sorge - das wird sich nicht auf Ihr aktuelles Abonnement auswirken, aber Sie werden den Bildungspreis beim nächsten Verzicht nicht erhalten, es sei denn, Sie überprüfen Ihren Status erneut.',
|
||||
title: 'Ihr Bildungsstatus läuft am {{date}} ab',
|
||||
},
|
||||
stillInEducation: {
|
||||
title: 'Immer noch in der Ausbildung?',
|
||||
isAboutToExpire: 'Überprüfen Sie jetzt erneut, um einen neuen Gutschein für das kommende Studienjahr zu erhalten. Er wird in Ihrem Konto gespeichert und ist bereit zur Nutzung bei Ihrer nächsten Verlängerung.',
|
||||
expired: 'Überprüfen Sie jetzt erneut, um einen neuen Gutschein für das kommende akademische Jahr zu erhalten. Wir fügen ihn Ihrem Konto hinzu und Sie können ihn für das nächste Upgrade verwenden.',
|
||||
},
|
||||
alreadyGraduated: {
|
||||
title: 'Bereits abgeschlossen?',
|
||||
expired: 'Fühlen Sie sich frei, jederzeit ein Upgrade durchzuführen, um vollen Zugriff auf die kostenpflichtigen Funktionen zu erhalten.',
|
||||
isAboutToExpire: 'Ihr aktuelles Abonnement bleibt weiterhin aktiv. Wenn es endet, werden Sie auf den Sandbox-Plan umgestellt, oder Sie können jederzeit upgraden, um den vollen Zugang zu den kostenpflichtigen Funktionen wiederherzustellen.',
|
||||
},
|
||||
action: {
|
||||
dismiss: 'Ablehnen',
|
||||
upgrade: 'Upgrade',
|
||||
reVerify: 'Überprüfen Sie es erneut',
|
||||
},
|
||||
dateFormat: 'MM/TT/JJJJ',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
44
dify/web/i18n/de-DE/explore.ts
Normal file
44
dify/web/i18n/de-DE/explore.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
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',
|
||||
Agent: 'Agent',
|
||||
Workflow: 'Arbeitsablauf',
|
||||
Entertainment: 'Unterhaltung',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
8
dify/web/i18n/de-DE/layout.ts
Normal file
8
dify/web/i18n/de-DE/layout.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
const translation = {
|
||||
sidebar: {
|
||||
collapseSidebar: 'Seitenleiste einklappen',
|
||||
expandSidebar: 'Seitenleiste erweitern',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
126
dify/web/i18n/de-DE/login.ts
Normal file
126
dify/web/i18n/de-DE/login.ts
Normal file
@@ -0,0 +1,126 @@
|
||||
const translation = {
|
||||
pageTitle: 'Hey, lass uns anfangen!👋',
|
||||
welcome: 'Willkommen bei Dify, bitte melde dich an, um fortzufahren.',
|
||||
email: 'E-Mail-Adresse',
|
||||
emailPlaceholder: 'Deine E-Mail',
|
||||
password: 'Passwort',
|
||||
passwordPlaceholder: 'Dein Passwort',
|
||||
name: 'Benutzername',
|
||||
namePlaceholder: 'Dein Benutzername',
|
||||
forget: 'Passwort vergessen?',
|
||||
signBtn: 'Anmelden',
|
||||
installBtn: 'Einrichten',
|
||||
setAdminAccount: 'Admin-Konto einrichten',
|
||||
setAdminAccountDesc: 'Maximale Berechtigungen für das Admin-Konto, das verwendet werden kann, um Anwendungen zu erstellen und LLM-Anbieter usw. zu verwalten.',
|
||||
createAndSignIn: 'Erstellen und anmelden',
|
||||
oneMoreStep: 'Nur noch ein Schritt',
|
||||
createSample: 'Basierend auf diesen Informationen erstellen wir eine Beispielanwendung für dich',
|
||||
invitationCode: 'Einladungscode',
|
||||
invitationCodePlaceholder: 'Dein Einladungscode',
|
||||
interfaceLanguage: 'Oberflächensprache',
|
||||
timezone: 'Zeitzone',
|
||||
go: 'Zu Dify gehen',
|
||||
sendUsMail: 'Sende uns deine Vorstellung per E-Mail, und wir bearbeiten die Einladungsanfrage.',
|
||||
acceptPP: 'Ich habe die Datenschutzbestimmungen gelesen und akzeptiere sie',
|
||||
reset: 'Bitte führe den folgenden Befehl aus, um dein Passwort zurückzusetzen',
|
||||
withGitHub: 'Mit GitHub fortfahren',
|
||||
withGoogle: 'Mit Google fortfahren',
|
||||
rightTitle: 'Das volle Potenzial von LLM ausschöpfen',
|
||||
rightDesc: 'Mühelos optisch ansprechende, bedienbare und verbesserbare KI-Anwendungen erstellen.',
|
||||
tos: 'Nutzungsbedingungen',
|
||||
pp: 'Datenschutzbestimmungen',
|
||||
tosDesc: 'Mit der Anmeldung stimmst du unseren',
|
||||
goToInit: 'Wenn du das Konto noch nicht initialisiert hast, gehe bitte zur Initialisierungsseite',
|
||||
dontHave: 'Hast du nicht?',
|
||||
invalidInvitationCode: 'Ungültiger Einladungscode',
|
||||
accountAlreadyInited: 'Konto bereits initialisiert',
|
||||
forgotPassword: 'Passwort vergessen?',
|
||||
resetLinkSent: 'Link zum Zurücksetzen gesendet',
|
||||
sendResetLink: 'Link zum Zurücksetzen senden',
|
||||
backToSignIn: 'Zurück zur Anmeldung',
|
||||
forgotPasswordDesc: 'Bitte geben Sie Ihre E-Mail-Adresse ein, um Ihr Passwort zurückzusetzen. Wir senden Ihnen eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts.',
|
||||
checkEmailForResetLink: 'Bitte überprüfen Sie Ihre E-Mails auf einen Link zum Zurücksetzen Ihres Passworts. Wenn er nicht innerhalb weniger Minuten erscheint, überprüfen Sie bitte Ihren Spam-Ordner.',
|
||||
passwordChanged: 'Jetzt anmelden',
|
||||
changePassword: 'Passwort ändern',
|
||||
changePasswordTip: 'Bitte geben Sie ein neues Passwort für Ihr Konto ein',
|
||||
invalidToken: 'Ungültiges oder abgelaufenes Token',
|
||||
confirmPassword: 'Passwort bestätigen',
|
||||
confirmPasswordPlaceholder: 'Bestätigen Sie Ihr neues Passwort',
|
||||
passwordChangedTip: 'Ihr Passwort wurde erfolgreich geändert',
|
||||
error: {
|
||||
emailEmpty: 'E-Mail-Adresse wird benötigt',
|
||||
emailInValid: 'Bitte gib eine gültige E-Mail-Adresse ein',
|
||||
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',
|
||||
registrationNotAllowed: 'Konto nicht gefunden. Bitte wenden Sie sich an den Systemadministrator, um sich zu registrieren.',
|
||||
invalidEmailOrPassword: 'Ungültige E-Mail oder Passwort.',
|
||||
},
|
||||
license: {
|
||||
tip: 'Bevor du mit Dify Community Edition beginnst, lies die',
|
||||
link: 'Open-Source-Lizenz',
|
||||
},
|
||||
join: 'Beitreten',
|
||||
joinTipStart: 'Lade dich ein, dem',
|
||||
joinTipEnd: 'Team auf Dify beizutreten',
|
||||
invalid: 'Der Link ist abgelaufen',
|
||||
explore: 'Dify erkunden',
|
||||
activatedTipStart: 'Du bist dem',
|
||||
activatedTipEnd: 'Team beigetreten',
|
||||
activated: 'Jetzt anmelden',
|
||||
adminInitPassword: 'Admin-Initialpasswort',
|
||||
validate: 'Validieren',
|
||||
checkCode: {
|
||||
didNotReceiveCode: 'Sie haben den Code nicht erhalten?',
|
||||
verificationCodePlaceholder: 'Geben Sie den 6-stelligen Code ein',
|
||||
checkYourEmail: 'Überprüfen Sie Ihre E-Mails',
|
||||
verify: 'Überprüfen',
|
||||
verificationCode: 'Verifizierungscode',
|
||||
useAnotherMethod: 'Verwenden Sie eine andere Methode',
|
||||
validTime: 'Beachten Sie, dass der Code 5 Minuten lang gültig ist',
|
||||
emptyCode: 'Code ist erforderlich',
|
||||
invalidCode: 'Ungültiger Code',
|
||||
resend: 'Wieder senden',
|
||||
tipsPrefix: 'Wir senden einen Bestätigungscode an',
|
||||
},
|
||||
or: 'ODER',
|
||||
back: 'Zurück',
|
||||
changePasswordBtn: 'Festlegen eines Kennworts',
|
||||
enterYourName: 'Bitte geben Sie Ihren Benutzernamen ein',
|
||||
setYourAccount: 'Richten Sie Ihr Konto ein',
|
||||
sendVerificationCode: 'Verifizierungscode senden',
|
||||
useVerificationCode: 'Verifizierungscode verwenden',
|
||||
withSSO: 'Mit SSO fortfahren',
|
||||
resetPasswordDesc: 'Geben Sie die E-Mail-Adresse ein, mit der Sie sich bei Dify angemeldet haben, und wir senden Ihnen eine E-Mail zum Zurücksetzen des Passworts.',
|
||||
continueWithCode: 'Fahren Sie mit dem Code fort',
|
||||
resetPassword: 'Passwort zurücksetzen',
|
||||
backToLogin: 'Zurück zum Login',
|
||||
noLoginMethodTip: 'Wenden Sie sich an den Systemadministrator, um eine Authentifizierungsmethode hinzuzufügen.',
|
||||
usePassword: 'Passwort verwenden',
|
||||
noLoginMethod: 'Authentifizierungsmethode nicht konfiguriert',
|
||||
licenseExpired: 'Lizenz abgelaufen',
|
||||
licenseLostTip: 'Fehler beim Verbinden des Dify-Lizenzservers. Wenden Sie sich an Ihren Administrator, um Dify weiterhin zu verwenden.',
|
||||
licenseInactive: 'Lizenz inaktiv',
|
||||
licenseInactiveTip: 'Die Dify Enterprise-Lizenz für Ihren Arbeitsbereich ist inaktiv. Wenden Sie sich an Ihren Administrator, um Dify weiterhin zu verwenden.',
|
||||
licenseExpiredTip: 'Die Dify Enterprise-Lizenz für Ihren Arbeitsbereich ist abgelaufen. Wenden Sie sich an Ihren Administrator, um Dify weiterhin zu verwenden.',
|
||||
licenseLost: 'Lizenz verloren',
|
||||
webapp: {
|
||||
noLoginMethod: 'Authentifizierungsmethode ist nicht für die Webanwendung konfiguriert',
|
||||
noLoginMethodTip: 'Bitte kontaktieren Sie den Systemadministrator, um eine Authentifizierungsmethode hinzuzufügen.',
|
||||
disabled: 'Die Webanmeldeauthentifizierung ist deaktiviert. Bitte kontaktieren Sie den Systemadministrator, um sie zu aktivieren. Sie können versuchen, die App direkt zu verwenden.',
|
||||
login: 'Anmelden',
|
||||
},
|
||||
signup: {
|
||||
createAccount: 'Erstellen Sie Ihr Konto',
|
||||
signIn: 'Anmelden',
|
||||
signUp: 'Anmelden',
|
||||
welcome: '👋 Willkommen! Bitte füllen Sie die Einzelheiten aus, um zu beginnen.',
|
||||
haveAccount: 'Haben Sie bereits ein Konto?',
|
||||
noAccount: 'Haben Sie kein Konto?',
|
||||
verifyMail: 'Fahren Sie mit dem Bestätigungscode fort',
|
||||
},
|
||||
pageTitleForE: 'Hey, lass uns anfangen!',
|
||||
}
|
||||
|
||||
export default translation
|
||||
27
dify/web/i18n/de-DE/oauth.ts
Normal file
27
dify/web/i18n/de-DE/oauth.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
const translation = {
|
||||
tips: {
|
||||
common: 'Wir respektieren Ihre Privatsphäre und werden diese Informationen nur verwenden, um Ihre Erfahrung mit unseren Entwickler-Tools zu verbessern.',
|
||||
notLoggedIn: 'Diese App möchte auf Ihr Dify Cloud-Konto zugreifen',
|
||||
loggedIn: 'Diese App möchte auf die folgenden Informationen aus Ihrem Dify Cloud-Konto zugreifen.',
|
||||
needLogin: 'Bitte melden Sie sich an, um zu autorisieren.',
|
||||
},
|
||||
scopes: {
|
||||
avatar: 'Avatar',
|
||||
timezone: 'Zeitzone',
|
||||
name: 'Name',
|
||||
email: 'E-Mail',
|
||||
languagePreference: 'Sprachauswahl',
|
||||
},
|
||||
error: {
|
||||
invalidParams: 'Ungültige Parameter',
|
||||
authAppInfoFetchFailed: 'Fehler beim Abrufen der App-Informationen für die Autorisierung',
|
||||
authorizeFailed: 'Autorisierung fehlgeschlagen',
|
||||
},
|
||||
switchAccount: 'Konto wechseln',
|
||||
login: 'Anmelden',
|
||||
unknownApp: 'Unbekannte App',
|
||||
continue: 'Fortsetzen',
|
||||
connect: 'Verbinden mit',
|
||||
}
|
||||
|
||||
export default translation
|
||||
40
dify/web/i18n/de-DE/pipeline.ts
Normal file
40
dify/web/i18n/de-DE/pipeline.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
const translation = {
|
||||
common: {
|
||||
publishAsPipeline: {
|
||||
description: 'Beschreibung des Wissens',
|
||||
name: 'Name und Symbol der Pipeline',
|
||||
namePlaceholder: 'Geben Sie den Namen dieser Knowledge Pipeline ein. (Erforderlich)',
|
||||
descriptionPlaceholder: 'Bitte geben Sie die Beschreibung dieser Knowledge Pipeline ein. (Fakultativ)',
|
||||
},
|
||||
testRun: 'Testlauf',
|
||||
reRun: 'Erneuter Lauf',
|
||||
goToAddDocuments: 'Gehen Sie zu Dokumente hinzufügen',
|
||||
confirmPublish: 'Bestätigen Sie die Veröffentlichung',
|
||||
publishAs: 'Veröffentlichen als Wissenspipeline',
|
||||
confirmPublishContent: 'Nach der erfolgreichen Veröffentlichung der Wissenspipeline kann die Chunk-Struktur dieser Wissensdatenbank nicht mehr geändert werden. Sind Sie sicher, dass Sie es veröffentlichen möchten?',
|
||||
processing: 'Verarbeitung',
|
||||
preparingDataSource: 'Vorbereiten der Datenquelle',
|
||||
},
|
||||
inputField: {
|
||||
create: 'Benutzereingabefeld erstellen',
|
||||
manage: 'Verwalten',
|
||||
},
|
||||
publishToast: {
|
||||
title: 'Diese Pipeline wurde noch nicht veröffentlicht',
|
||||
desc: 'Wenn die Pipeline nicht veröffentlicht wird, können Sie die Chunk-Struktur im Wissensdatenbank-Knoten ändern, und die Pipeline-Orchestrierung und -Änderungen werden automatisch als Entwurf gespeichert.',
|
||||
},
|
||||
result: {
|
||||
resultPreview: {
|
||||
viewDetails: 'Details anzeigen',
|
||||
error: 'Während der Ausführung ist ein Fehler aufgetreten',
|
||||
loading: 'Verarbeitung... Bitte warten',
|
||||
footerTip: 'Im Testlaufmodus bis zu {{count}} Abschnitte anzeigen',
|
||||
},
|
||||
},
|
||||
ragToolSuggestions: {
|
||||
title: 'Vorschläge für die RAG',
|
||||
noRecommendationPlugins: 'Keine empfohlenen Plugins, finde mehr im <CustomLink>Marktplatz</CustomLink>',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
26
dify/web/i18n/de-DE/plugin-tags.ts
Normal file
26
dify/web/i18n/de-DE/plugin-tags.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
const translation = {
|
||||
tags: {
|
||||
weather: 'Wetter',
|
||||
social: 'Sozial',
|
||||
image: 'Bild',
|
||||
education: 'Bildung',
|
||||
travel: 'Reise',
|
||||
agent: 'Agent',
|
||||
design: 'Entwurf',
|
||||
finance: 'Finanzieren',
|
||||
search: 'Suchen',
|
||||
medical: 'Medizinisch',
|
||||
business: 'Geschäft',
|
||||
news: 'Nachrichten',
|
||||
videos: 'Videos',
|
||||
other: 'Andere',
|
||||
entertainment: 'Unterhaltung',
|
||||
utilities: 'Versorgungswirtschaft',
|
||||
productivity: 'Produktivität',
|
||||
rag: 'LAPPEN',
|
||||
},
|
||||
searchTags: 'Such-Tags',
|
||||
allTags: 'Alle Schlagwörter',
|
||||
}
|
||||
|
||||
export default translation
|
||||
186
dify/web/i18n/de-DE/plugin-trigger.ts
Normal file
186
dify/web/i18n/de-DE/plugin-trigger.ts
Normal file
@@ -0,0 +1,186 @@
|
||||
const translation = {
|
||||
subscription: {
|
||||
title: 'Abonnements',
|
||||
listNum: '{{num}} Abonnements',
|
||||
empty: {
|
||||
title: 'Keine Abonnements',
|
||||
button: 'Neues Abonnement',
|
||||
},
|
||||
createButton: {
|
||||
oauth: 'Neue Anmeldung mit OAuth',
|
||||
apiKey: 'Neues Abonnement mit API-Schlüssel',
|
||||
manual: 'URL einfügen, um ein neues Abonnement zu erstellen',
|
||||
},
|
||||
createSuccess: 'Abonnement erfolgreich erstellt',
|
||||
createFailed: 'Fehler beim Erstellen des Abonnements',
|
||||
maxCount: 'Max {{num}} Abonnements',
|
||||
selectPlaceholder: 'Abonnement auswählen',
|
||||
noSubscriptionSelected: 'Kein Abonnement ausgewählt',
|
||||
subscriptionRemoved: 'Abonnement entfernt',
|
||||
list: {
|
||||
title: 'Abonnements',
|
||||
addButton: 'Hinzufügen',
|
||||
tip: 'Ereignisse über ein Abonnement empfangen',
|
||||
item: {
|
||||
enabled: 'Aktiviert',
|
||||
disabled: 'Deaktiviert',
|
||||
credentialType: {
|
||||
api_key: 'API-Schlüssel',
|
||||
oauth2: 'OAuth',
|
||||
unauthorized: 'Handbuch',
|
||||
},
|
||||
actions: {
|
||||
delete: 'Löschen',
|
||||
deleteConfirm: {
|
||||
title: '„{{name}} löschen?“',
|
||||
success: 'Abonnement {{name}} erfolgreich gelöscht',
|
||||
error: 'Löschen des Abonnements {{name}} fehlgeschlagen',
|
||||
content: 'Einmal gelöscht, kann dieses Abonnement nicht wiederhergestellt werden. Bitte bestätigen Sie.',
|
||||
contentWithApps: 'Das aktuelle Abonnement wird von {{count}} Anwendungen referenziert. Wenn es gelöscht wird, werden die konfigurierten Anwendungen keine Abonnementereignisse mehr erhalten.',
|
||||
confirm: 'Löschen bestätigen',
|
||||
cancel: 'Abbrechen',
|
||||
confirmInputWarning: 'Bitte geben Sie den korrekten Namen zur Bestätigung ein.',
|
||||
confirmInputPlaceholder: 'Geben Sie "{{name}}" ein, um zu bestätigen.',
|
||||
confirmInputTip: 'Bitte geben Sie „{{name}}“ zur Bestätigung ein.',
|
||||
},
|
||||
},
|
||||
status: {
|
||||
active: 'Aktiv',
|
||||
inactive: 'Inaktiv',
|
||||
},
|
||||
usedByNum: 'Verwendet von {{num}} Workflows',
|
||||
noUsed: 'Kein Workflow verwendet',
|
||||
},
|
||||
},
|
||||
addType: {
|
||||
title: 'Abonnement hinzufügen',
|
||||
description: 'Wählen Sie aus, wie Sie Ihr Trigger-Abonnement erstellen möchten',
|
||||
options: {
|
||||
apikey: {
|
||||
title: 'Mit API-Schlüssel erstellen',
|
||||
description: 'Abonnement automatisch mit API-Zugangsdaten erstellen',
|
||||
},
|
||||
oauth: {
|
||||
title: 'Erstellen Sie mit OAuth',
|
||||
description: 'Bei einer Drittanbieterplattform autorisieren, um ein Abonnement zu erstellen',
|
||||
clientSettings: 'OAuth-Client-Einstellungen',
|
||||
clientTitle: 'OAuth-Client',
|
||||
default: 'Standard',
|
||||
custom: 'Benutzerdefiniert',
|
||||
},
|
||||
manual: {
|
||||
title: 'Manuelle Einrichtung',
|
||||
description: 'URL einfügen, um ein neues Abonnement zu erstellen',
|
||||
tip: 'URL auf einer Drittanbieterplattform manuell konfigurieren',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
modal: {
|
||||
steps: {
|
||||
verify: 'Überprüfen',
|
||||
configuration: 'Konfiguration',
|
||||
},
|
||||
common: {
|
||||
cancel: 'Abbrechen',
|
||||
back: 'Zurück',
|
||||
next: 'Weiter',
|
||||
create: 'Erstellen',
|
||||
verify: 'Überprüfen',
|
||||
authorize: 'Autorisieren',
|
||||
creating: 'Erstellen...',
|
||||
verifying: 'Überprüfen...',
|
||||
authorizing: 'Autorisierung läuft...',
|
||||
},
|
||||
oauthRedirectInfo: 'Da für diesen Toolanbieter keine System-Client-Geheimnisse gefunden wurden, ist eine manuelle Einrichtung erforderlich. Für redirect_uri verwenden Sie bitte',
|
||||
apiKey: {
|
||||
title: 'Mit API-Schlüssel erstellen',
|
||||
verify: {
|
||||
title: 'Anmeldeinformationen überprüfen',
|
||||
description: 'Bitte geben Sie Ihre API-Zugangsdaten ein, um den Zugriff zu überprüfen',
|
||||
error: 'Überprüfung der Anmeldedaten fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.',
|
||||
success: 'Anmeldedaten erfolgreich überprüft',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Abonnement konfigurieren',
|
||||
description: 'Richten Sie Ihre Abonnementparameter ein',
|
||||
},
|
||||
},
|
||||
oauth: {
|
||||
title: 'Mit OAuth erstellen',
|
||||
authorization: {
|
||||
title: 'OAuth-Autorisierung',
|
||||
description: 'Erlaube Dify den Zugriff auf dein Konto',
|
||||
redirectUrl: 'Weiterleitungs-URL',
|
||||
redirectUrlHelp: 'Verwenden Sie diese URL in der Konfiguration Ihrer OAuth-App',
|
||||
authorizeButton: 'Autorisieren mit {{provider}}',
|
||||
waitingAuth: 'Warten auf die Autorisierung...',
|
||||
authSuccess: 'Autorisierung erfolgreich',
|
||||
authFailed: 'Fehler beim Abrufen der OAuth-Autorisierungsinformationen',
|
||||
waitingJump: 'Autorisierte, warten auf den Sprung',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Abonnement konfigurieren',
|
||||
description: 'Richten Sie Ihre Abonnementparameter nach der Autorisierung ein',
|
||||
success: 'OAuth-Konfiguration erfolgreich',
|
||||
failed: 'OAuth-Konfiguration fehlgeschlagen',
|
||||
},
|
||||
remove: {
|
||||
success: 'OAuth erfolgreich entfernt',
|
||||
failed: 'OAuth-Entfernung fehlgeschlagen',
|
||||
},
|
||||
save: {
|
||||
success: 'OAuth-Konfiguration erfolgreich gespeichert',
|
||||
},
|
||||
},
|
||||
manual: {
|
||||
title: 'Manuelle Einrichtung',
|
||||
description: 'Konfigurieren Sie Ihr Webhook-Abonnement manuell',
|
||||
logs: {
|
||||
title: 'Anforderungsprotokolle',
|
||||
request: 'Anfrage',
|
||||
loading: 'Warten auf Anfrage von {{pluginName}}...',
|
||||
},
|
||||
},
|
||||
form: {
|
||||
subscriptionName: {
|
||||
label: 'Abonnementname',
|
||||
placeholder: 'Abonnementname eingeben',
|
||||
required: 'Der Abonnementname ist erforderlich',
|
||||
},
|
||||
callbackUrl: {
|
||||
label: 'Rückruf-URL',
|
||||
description: 'Diese URL wird Webhook-Ereignisse empfangen',
|
||||
tooltip: 'Stellen Sie einen öffentlich zugänglichen Endpunkt bereit, der Callback-Anfragen vom Auslöseranbieter empfangen kann.',
|
||||
placeholder: 'Generierung...',
|
||||
privateAddressWarning: 'Diese URL scheint eine interne Adresse zu sein, was dazu führen kann, dass Webhook-Anfragen fehlschlagen. Sie können TRIGGER_URL auf eine öffentliche Adresse ändern.',
|
||||
},
|
||||
},
|
||||
errors: {
|
||||
createFailed: 'Fehler beim Erstellen des Abonnements',
|
||||
verifyFailed: 'Anmeldeinformationen konnten nicht überprüft werden',
|
||||
authFailed: 'Autorisierung fehlgeschlagen',
|
||||
networkError: 'Netzwerkfehler, bitte versuchen Sie es erneut',
|
||||
},
|
||||
},
|
||||
events: {
|
||||
title: 'Verfügbare Veranstaltungen',
|
||||
description: 'Ereignisse, auf die dieses Trigger-Plugin reagieren kann',
|
||||
empty: 'Keine Veranstaltungen verfügbar',
|
||||
event: 'Veranstaltung',
|
||||
events: 'Veranstaltungen',
|
||||
actionNum: '{{num}} {{event}} ENTHALTEN',
|
||||
item: {
|
||||
parameters: '{{count}} Parameter',
|
||||
noParameters: 'Keine Parameter',
|
||||
},
|
||||
output: 'Ausgabe',
|
||||
},
|
||||
node: {
|
||||
status: {
|
||||
warning: 'Trennen',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
353
dify/web/i18n/de-DE/plugin.ts
Normal file
353
dify/web/i18n/de-DE/plugin.ts
Normal file
@@ -0,0 +1,353 @@
|
||||
const translation = {
|
||||
category: {
|
||||
extensions: 'Erweiterungen',
|
||||
bundles: 'Bündel',
|
||||
agents: 'Agenten-Strategien',
|
||||
models: 'Modelle',
|
||||
all: 'Alle',
|
||||
tools: 'Werkzeuge',
|
||||
datasources: 'Datenquellen',
|
||||
triggers: 'Auslöser',
|
||||
},
|
||||
categorySingle: {
|
||||
extension: 'Erweiterung',
|
||||
agent: 'Agenten-Strategie',
|
||||
bundle: 'Bündel',
|
||||
model: 'Modell',
|
||||
tool: 'Werkzeug',
|
||||
datasource: 'Datenquelle',
|
||||
trigger: 'Auslöser',
|
||||
},
|
||||
list: {
|
||||
source: {
|
||||
marketplace: 'Installation aus dem Marketplace',
|
||||
github: 'Installation von GitHub',
|
||||
local: 'Installation aus lokaler Paketdatei',
|
||||
},
|
||||
notFound: 'Keine Plugins gefunden',
|
||||
noInstalled: 'Keine Plugins installiert',
|
||||
},
|
||||
source: {
|
||||
github: 'GitHub (Englisch)',
|
||||
marketplace: 'Marktplatz',
|
||||
local: 'Lokale Paketdatei',
|
||||
},
|
||||
detailPanel: {
|
||||
categoryTip: {
|
||||
local: 'Lokales Plugin',
|
||||
github: 'Installiert von Github',
|
||||
marketplace: 'Installiert aus dem Marketplace',
|
||||
debugging: 'Debuggen-Plugin',
|
||||
},
|
||||
operation: {
|
||||
remove: 'Entfernen',
|
||||
detail: 'Einzelheiten',
|
||||
install: 'Installieren',
|
||||
info: 'Plugin-Informationen',
|
||||
checkUpdate: 'Update prüfen',
|
||||
update: 'Aktualisieren',
|
||||
viewDetail: 'Im Detail sehen',
|
||||
back: 'Zurück',
|
||||
},
|
||||
toolSelector: {
|
||||
paramsTip1: 'Steuert LLM-Inferenzparameter.',
|
||||
settings: 'BENUTZEREINSTELLUNGEN',
|
||||
uninstalledLink: 'In Plugins verwalten',
|
||||
descriptionLabel: 'Beschreibung des Werkzeugs',
|
||||
empty:
|
||||
'Klicken Sie auf die Schaltfläche "+", um Werkzeuge hinzuzufügen. Sie können mehrere Werkzeuge hinzufügen.',
|
||||
title: 'Werkzeug "Hinzufügen"',
|
||||
paramsTip2:
|
||||
'Wenn "Automatisch" ausgeschaltet ist, wird der Standardwert verwendet.',
|
||||
unsupportedContent:
|
||||
'Die installierte Plug-in-Version bietet diese Aktion nicht.',
|
||||
unsupportedTitle: 'Nicht unterstützte Aktion',
|
||||
descriptionPlaceholder:
|
||||
'Kurze Beschreibung des Zwecks des Werkzeugs, z. B. um die Temperatur für einen bestimmten Ort zu ermitteln.',
|
||||
auto: 'Auto',
|
||||
params: 'KONFIGURATION DER ARGUMENTATION',
|
||||
unsupportedContent2: 'Klicken Sie hier, um die Version zu wechseln.',
|
||||
placeholder: 'Wählen Sie ein Werkzeug aus...',
|
||||
uninstalledTitle: 'Tool nicht installiert',
|
||||
toolLabel: 'Werkzeug',
|
||||
uninstalledContent:
|
||||
'Dieses Plugin wird aus dem lokalen/GitHub-Repository installiert. Bitte nach der Installation verwenden.',
|
||||
toolSetting: 'Werkzeugs Einstellungen',
|
||||
unsupportedMCPTool:
|
||||
'Die derzeit ausgewählte Agentenstrategie-Plugin-Version unterstützt keine MCP-Tools.',
|
||||
},
|
||||
strategyNum: '{{num}} {{Strategie}} IINKLUSIVE',
|
||||
configureApp: 'App konfigurieren',
|
||||
endpointDeleteContent: 'Möchten Sie {{name}} entfernen?',
|
||||
endpointsEmpty:
|
||||
'Klicken Sie auf die Schaltfläche "+", um einen Endpunkt hinzuzufügen',
|
||||
disabled: 'Arbeitsunfähig',
|
||||
endpointsDocLink: 'Dokument anzeigen',
|
||||
endpointDisableTip: 'Endpunkt deaktivieren',
|
||||
endpoints: 'Endpunkte',
|
||||
actionNum: '{{num}} {{Aktion}} IINKLUSIVE',
|
||||
endpointModalTitle: 'Endpunkt einrichten',
|
||||
endpointModalDesc:
|
||||
'Nach der Konfiguration können die Funktionen, die das Plugin über API-Endpunkte bereitstellt, verwendet werden.',
|
||||
configureTool: 'Werkzeug konfigurieren',
|
||||
endpointsTip:
|
||||
'Dieses Plugin bietet bestimmte Funktionen über Endpunkte, und Sie können mehrere Endpunktsätze für den aktuellen Arbeitsbereich konfigurieren.',
|
||||
modelNum: '{{num}} ENTHALTENE MODELLE',
|
||||
configureModel: 'Modell konfigurieren',
|
||||
endpointDisableContent: 'Möchten Sie {{name}} deaktivieren?',
|
||||
endpointDeleteTip: 'Endpunkt entfernen',
|
||||
serviceOk: 'Service in Ordnung',
|
||||
switchVersion: 'Version wechseln',
|
||||
deprecation: {
|
||||
reason: {
|
||||
noMaintainer: 'kein Wartender',
|
||||
ownershipTransferred: 'Eigentum übertragen',
|
||||
businessAdjustments: 'Geschäftsanpassungen',
|
||||
},
|
||||
onlyReason:
|
||||
'Dieses Plugin wurde aufgrund von {{deprecatedReason}} abgelehnt und wird nicht länger aktualisiert.',
|
||||
fullMessage:
|
||||
'Dieses Plugin wurde aufgrund von {{deprecatedReason}} eingestellt und wird nicht mehr aktualisiert. Bitte verwenden Sie stattdessen <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink>.',
|
||||
noReason:
|
||||
'Dieses Plugin wurde eingestellt und wird nicht mehr aktualisiert.',
|
||||
},
|
||||
},
|
||||
debugInfo: {
|
||||
title: 'Debuggen',
|
||||
viewDocs: 'Dokumente anzeigen',
|
||||
},
|
||||
privilege: {
|
||||
everyone: 'Jeder',
|
||||
title: 'Plugin-Einstellungen',
|
||||
noone: 'Niemand',
|
||||
admins: 'Administratoren',
|
||||
whoCanDebug: 'Wer kann Plugins debuggen?',
|
||||
whoCanInstall: 'Wer kann Plugins installieren und verwalten?',
|
||||
},
|
||||
pluginInfoModal: {
|
||||
repository: 'Aufbewahrungsort',
|
||||
title: 'Plugin-Info',
|
||||
packageName: 'Paket',
|
||||
release: 'Loslassen',
|
||||
},
|
||||
action: {
|
||||
checkForUpdates: 'Nach Updates suchen',
|
||||
pluginInfo: 'Plugin-Info',
|
||||
usedInApps: 'Dieses Plugin wird in {{num}} Apps verwendet.',
|
||||
delete: 'Plugin entfernen',
|
||||
deleteContentRight: 'Plugin?',
|
||||
deleteContentLeft: 'Möchten Sie',
|
||||
},
|
||||
installModal: {
|
||||
labels: {
|
||||
repository: 'Aufbewahrungsort',
|
||||
package: 'Paket',
|
||||
version: 'Version',
|
||||
},
|
||||
installFailed: 'Installation fehlgeschlagen',
|
||||
installPlugin: 'Plugin installieren',
|
||||
uploadFailed: 'Upload fehlgeschlagen',
|
||||
install: 'Installieren',
|
||||
installComplete: 'Installation abgeschlossen',
|
||||
installing: 'Installation...',
|
||||
installedSuccessfullyDesc: 'Das Plugin wurde erfolgreich installiert.',
|
||||
installedSuccessfully: 'Installation erfolgreich',
|
||||
installFailedDesc: 'Die Installation des Plugins ist fehlgeschlagen.',
|
||||
pluginLoadError: 'Fehler beim Laden des Plugins',
|
||||
close: 'Schließen',
|
||||
pluginLoadErrorDesc: 'Dieses Plugin wird nicht installiert',
|
||||
cancel: 'Abbrechen',
|
||||
back: 'Zurück',
|
||||
uploadingPackage: 'Das Hochladen von {{packageName}}...',
|
||||
readyToInstallPackage: 'Über die Installation des folgenden Plugins',
|
||||
readyToInstallPackages:
|
||||
'Über die Installation der folgenden {{num}} Plugins',
|
||||
fromTrustSource:
|
||||
'Bitte stellen Sie sicher, dass Sie nur Plugins aus einer <trustSource>vertrauenswürdigen Quelle</trustSource> installieren.',
|
||||
readyToInstall: 'Über die Installation des folgenden Plugins',
|
||||
dropPluginToInstall:
|
||||
'Legen Sie das Plugin-Paket hier ab, um es zu installieren',
|
||||
next: 'Nächster',
|
||||
installWarning: 'Dieses Plugin darf nicht installiert werden.',
|
||||
},
|
||||
installFromGitHub: {
|
||||
selectPackagePlaceholder: 'Bitte wählen Sie ein Paket aus',
|
||||
gitHubRepo: 'GitHub-Repository',
|
||||
uploadFailed: 'Upload fehlgeschlagen',
|
||||
selectPackage: 'Paket auswählen',
|
||||
installFailed: 'Installation fehlgeschlagen',
|
||||
installNote:
|
||||
'Bitte stellen Sie sicher, dass Sie nur Plugins aus einer vertrauenswürdigen Quelle installieren.',
|
||||
selectVersionPlaceholder: 'Bitte wählen Sie eine Version aus',
|
||||
updatePlugin: 'Update-Plugin von GitHub',
|
||||
installPlugin: 'Plugin von GitHub installieren',
|
||||
installedSuccessfully: 'Installation erfolgreich',
|
||||
selectVersion: 'Ausführung wählen',
|
||||
},
|
||||
upgrade: {
|
||||
usedInApps: 'Wird in {{num}} Apps verwendet',
|
||||
description: 'Über die Installation des folgenden Plugins',
|
||||
upgrading: 'Installation...',
|
||||
successfulTitle: 'Installation erfolgreich',
|
||||
upgrade: 'Installieren',
|
||||
title: 'Plugin installieren',
|
||||
close: 'Schließen',
|
||||
},
|
||||
error: {
|
||||
inValidGitHubUrl:
|
||||
'Ungültige GitHub-URL. Bitte geben Sie eine gültige URL im Format ein: https://github.com/owner/repo',
|
||||
noReleasesFound:
|
||||
'Keine Veröffentlichungen gefunden. Bitte überprüfen Sie das GitHub-Repository oder die Eingabe-URL.',
|
||||
fetchReleasesError:
|
||||
'Freigaben können nicht abgerufen werden. Bitte versuchen Sie es später erneut.',
|
||||
},
|
||||
marketplace: {
|
||||
sortOption: {
|
||||
newlyReleased: 'Neu veröffentlicht',
|
||||
mostPopular: 'Beliebteste',
|
||||
firstReleased: 'Zuerst veröffentlicht',
|
||||
recentlyUpdated: 'Kürzlich aktualisiert',
|
||||
},
|
||||
viewMore: 'Mehr anzeigen',
|
||||
sortBy: 'Sortieren nach',
|
||||
discover: 'Entdecken',
|
||||
noPluginFound: 'Kein Plugin gefunden',
|
||||
difyMarketplace: 'Dify Marktplatz',
|
||||
moreFrom: 'Mehr aus dem Marketplace',
|
||||
pluginsResult: '{{num}} Ergebnisse',
|
||||
empower: 'Unterstützen Sie Ihre KI-Entwicklung',
|
||||
and: 'und',
|
||||
partnerTip: 'Von einem Dify-Partner verifiziert',
|
||||
verifiedTip: 'Von Dify überprüft',
|
||||
},
|
||||
task: {
|
||||
clearAll: 'Alle löschen',
|
||||
installingWithError:
|
||||
'Installation von {{installingLength}} Plugins, {{successLength}} erfolgreich, {{errorLength}} fehlgeschlagen',
|
||||
installingWithSuccess:
|
||||
'Installation von {{installingLength}} Plugins, {{successLength}} erfolgreich.',
|
||||
installedError: '{{errorLength}} Plugins konnten nicht installiert werden',
|
||||
installing: 'Installation von {{installingLength}} Plugins, 0 erledigt.',
|
||||
installError:
|
||||
'{{errorLength}} Plugins konnten nicht installiert werden, klicken Sie hier, um sie anzusehen',
|
||||
},
|
||||
allCategories: 'Alle Kategorien',
|
||||
install: '{{num}} Installationen',
|
||||
installAction: 'Installieren',
|
||||
from: 'Von',
|
||||
fromMarketplace: 'Aus dem Marketplace',
|
||||
search: 'Suchen',
|
||||
searchCategories: 'Kategorien durchsuchen',
|
||||
searchPlugins: 'Plugins suchen',
|
||||
endpointsEnabled: '{{num}} Gruppen von Endpunkten aktiviert',
|
||||
searchInMarketplace: 'Suche im Marketplace',
|
||||
searchTools: 'Suchwerkzeuge...',
|
||||
findMoreInMarketplace: 'Weitere Informationen finden Sie im Marketplace',
|
||||
installPlugin: 'Plugin installieren',
|
||||
installFrom: 'INSTALLIEREN VON',
|
||||
metadata: {
|
||||
title: 'Plugins',
|
||||
},
|
||||
difyVersionNotCompatible:
|
||||
'Die aktuelle Dify-Version ist mit diesem Plugin nicht kompatibel, bitte aktualisieren Sie auf die erforderliche Mindestversion: {{minimalDifyVersion}}',
|
||||
requestAPlugin: 'Ein Plugin anfordern',
|
||||
publishPlugins: 'Plugins veröffentlichen',
|
||||
auth: {
|
||||
addOAuth: 'OAuth hinzufügen',
|
||||
useOAuthAuth: 'Verwenden Sie die OAuth-Authentifizierung',
|
||||
saveAndAuth: 'Speichern und autorisieren',
|
||||
setDefault: 'Als Standard festlegen',
|
||||
oauthClientSettings: 'OAuth-Client-Einstellungen',
|
||||
saveOnly: 'Nur speichern',
|
||||
authorizations: 'Berechtigungen',
|
||||
authorization: 'Befugnis',
|
||||
workspaceDefault: 'Arbeitsbereich Standard',
|
||||
custom: 'Benutzerdefiniert',
|
||||
default: 'Standard',
|
||||
setupOAuth: 'OAuth-Client einrichten',
|
||||
addApi: 'API-Schlüssel hinzufügen',
|
||||
useOAuth: 'Verwenden Sie OAuth',
|
||||
useApi: 'Verwenden Sie den API-Schlüssel',
|
||||
oauthClient: 'OAuth-Client',
|
||||
authorizationName: 'Genehmigungsname',
|
||||
useApiAuth: 'API-Schlüssel Autorisierungs-Konfiguration',
|
||||
clientInfo:
|
||||
'Da keine System-Client-Geheimnisse für diesen Tool-Anbieter gefunden wurden, ist eine manuelle Einrichtung erforderlich. Bitte verwenden Sie für redirect_uri',
|
||||
useApiAuthDesc:
|
||||
'Nachdem die Anmeldeinformationen konfiguriert wurden, können alle Mitglieder des Arbeitsbereichs dieses Tool beim Orchestrieren von Anwendungen verwenden.',
|
||||
authRemoved: 'Die Authentifizierung wurde entfernt.',
|
||||
unavailable: 'Nicht verfügbar',
|
||||
credentialUnavailable:
|
||||
'Anmeldeinformationen derzeit nicht verfügbar. Bitte kontaktieren Sie den Administrator.',
|
||||
customCredentialUnavailable:
|
||||
'Benutzerdefinierte Anmeldeinformationen derzeit nicht verfügbar',
|
||||
credentialUnavailableInButton: 'Zugangsdaten nicht verfügbar',
|
||||
connectedWorkspace: 'Vernetzter Arbeitsbereich',
|
||||
emptyAuth: 'Bitte konfigurieren Sie die Authentifizierung',
|
||||
},
|
||||
deprecated: 'Abgelehnt',
|
||||
autoUpdate: {
|
||||
strategy: {
|
||||
disabled: {
|
||||
description: 'Plugins werden nicht automatisch aktualisiert',
|
||||
name: 'Behindert',
|
||||
},
|
||||
fixOnly: {
|
||||
name: 'Nur fixieren',
|
||||
selectedDescription: 'Auto-Update nur für Patch-Versionen',
|
||||
description:
|
||||
'Automatische Aktualisierung nur für Patchversionen (z. B. 1.0.1 → 1.0.2). Kleinere Versionsänderungen lösen keine Aktualisierungen aus.',
|
||||
},
|
||||
latest: {
|
||||
description: 'Immer auf die neueste Version aktualisieren',
|
||||
selectedDescription: 'Immer auf die neueste Version aktualisieren',
|
||||
name: 'Neueste',
|
||||
},
|
||||
},
|
||||
upgradeMode: {
|
||||
exclude: 'Ausgewählte ausschließen',
|
||||
partial: 'Nur ausgewählt',
|
||||
all: 'Alle aktualisieren',
|
||||
},
|
||||
upgradeModePlaceholder: {
|
||||
exclude: 'Ausgewählte Plugins werden nicht automatisch aktualisiert',
|
||||
partial:
|
||||
'Nur ausgewählte Plugins werden automatisch aktualisiert. Derzeit sind keine Plugins ausgewählt, daher werden keine Plugins automatisch aktualisiert.',
|
||||
},
|
||||
operation: {
|
||||
clearAll: 'Alles löschen',
|
||||
select: 'Plugins auswählen',
|
||||
},
|
||||
pluginDowngradeWarning: {
|
||||
downgrade: 'Trotzdem downgraden',
|
||||
title: 'Plugin Downgrade',
|
||||
exclude: 'Von der automatischen Aktualisierung ausschließen',
|
||||
description:
|
||||
'Die automatische Aktualisierung ist derzeit für dieses Plugin aktiviert. Ein Downgrade der Version kann dazu führen, dass Ihre Änderungen während des nächsten automatischen Updates überschrieben werden.',
|
||||
},
|
||||
noPluginPlaceholder: {
|
||||
noInstalled: 'Keine Plugins installiert',
|
||||
noFound: 'Keine Plugins gefunden.',
|
||||
},
|
||||
automaticUpdates: 'Automatische Updates',
|
||||
updateTimeTitle: 'Aktualisierungszeit',
|
||||
updateTime: 'Aktualisierungszeit',
|
||||
excludeUpdate:
|
||||
'Die folgenden {{num}} Plugins werden nicht automatisch aktualisiert.',
|
||||
changeTimezone:
|
||||
'Um die Zeitzone zu ändern, gehen Sie zu <setTimezone> Einstellungen </setTimezone>',
|
||||
nextUpdateTime: 'Nächstes automatisches Update: {{time}}',
|
||||
partialUPdate:
|
||||
'Nur die folgenden {{num}} Plugins werden automatisch aktualisiert',
|
||||
specifyPluginsToUpdate: 'Geben Sie die zu aktualisierenden Plugins an',
|
||||
updateSettings: 'Einstellungen aktualisieren',
|
||||
},
|
||||
readmeInfo: {
|
||||
title: 'LIESMICH',
|
||||
needHelpCheckReadme: 'Brauchst du Hilfe? Sieh dir die README an.',
|
||||
noReadmeAvailable: 'Keine README verfügbar',
|
||||
failedToFetch: 'README konnte nicht abgerufen werden',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
4
dify/web/i18n/de-DE/register.ts
Normal file
4
dify/web/i18n/de-DE/register.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
const translation = {
|
||||
}
|
||||
|
||||
export default translation
|
||||
31
dify/web/i18n/de-DE/run-log.ts
Normal file
31
dify/web/i18n/de-DE/run-log.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
const translation = {
|
||||
input: 'EINGABE',
|
||||
result: 'ERGEBNIS',
|
||||
detail: 'DETAILS',
|
||||
tracing: 'NACHVERFOLGUNG',
|
||||
resultPanel: {
|
||||
status: 'STATUS',
|
||||
time: 'VERSTRICHENE ZEIT',
|
||||
tokens: 'GESAMTZEICHEN',
|
||||
},
|
||||
meta: {
|
||||
title: 'METADATEN',
|
||||
status: 'Status',
|
||||
version: 'Version',
|
||||
executor: 'Ausführender',
|
||||
startTime: 'Startzeit',
|
||||
time: 'Verstrichene Zeit',
|
||||
tokens: 'Gesamtzeichen',
|
||||
steps: 'Ausführungsschritte',
|
||||
},
|
||||
resultEmpty: {
|
||||
title: 'Dieser Lauf gibt nur das JSON-Format aus',
|
||||
tipLeft: 'Bitte gehen Sie zum ',
|
||||
tipRight: 'ansehen.',
|
||||
link: 'Gruppe Detail',
|
||||
},
|
||||
actionLogs: 'Aktionsprotokolle',
|
||||
circularInvocationTip: 'Es gibt einen zirkulären Aufruf von Werkzeugen/Knoten im aktuellen Workflow.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
86
dify/web/i18n/de-DE/share.ts
Normal file
86
dify/web/i18n/de-DE/share.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
const translation = {
|
||||
common: {
|
||||
welcome: '',
|
||||
appUnavailable: 'App ist nicht verfügbar',
|
||||
appUnknownError: 'App ist nicht verfügbar',
|
||||
},
|
||||
chat: {
|
||||
newChat: 'Neuer Chat',
|
||||
pinnedTitle: 'Angeheftet',
|
||||
unpinnedTitle: 'Chats',
|
||||
newChatDefaultName: 'Neues Gespräch',
|
||||
resetChat: 'Gespräch zurücksetzen',
|
||||
poweredBy: '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.',
|
||||
expand: 'Erweitern',
|
||||
collapse: 'Reduzieren',
|
||||
chatSettingsTitle: 'Neues Chat-Setup',
|
||||
newChatTip: 'Bereits in einem neuen Chat',
|
||||
viewChatSettings: 'Chateinstellungen anzeigen',
|
||||
chatFormTip: 'Chat-Einstellungen können nach Beginn des Chats nicht mehr geändert werden.',
|
||||
},
|
||||
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.',
|
||||
},
|
||||
execution: 'Ausführen',
|
||||
executions: '{{num}} Ausführungen',
|
||||
stopRun: 'Ausführung stoppen',
|
||||
},
|
||||
login: {
|
||||
backToHome: 'Zurück zur Startseite',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
44
dify/web/i18n/de-DE/time.ts
Normal file
44
dify/web/i18n/de-DE/time.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const translation = {
|
||||
daysInWeek: {
|
||||
Sat: 'Sat',
|
||||
Fri: 'Freitag',
|
||||
Thu: 'Donnerstag',
|
||||
Tue: 'Tue',
|
||||
Sun: 'Sonne',
|
||||
Mon: 'Mon',
|
||||
Wed: 'Mittwoch',
|
||||
},
|
||||
months: {
|
||||
August: 'August',
|
||||
March: 'März',
|
||||
January: 'Januar',
|
||||
June: 'Juni',
|
||||
July: 'Juli',
|
||||
November: 'November',
|
||||
September: 'September',
|
||||
April: 'April',
|
||||
February: 'Februar',
|
||||
May: 'Mai',
|
||||
December: 'Dezember',
|
||||
October: 'Oktober',
|
||||
},
|
||||
operation: {
|
||||
pickDate: 'Datum auswählen',
|
||||
ok: 'OK',
|
||||
cancel: 'Stornieren',
|
||||
now: 'Jetzt',
|
||||
},
|
||||
title: {
|
||||
pickTime: 'Wähle Zeit',
|
||||
},
|
||||
defaultPlaceholder: 'Wähle eine Zeit...',
|
||||
dateFormats: {
|
||||
displayWithTime: 'MMMM D, YYYY hh:mm A',
|
||||
output: 'YYYY-MM-DD',
|
||||
display: 'MMMM D, YYYY',
|
||||
input: 'YYYY-MM-DD',
|
||||
outputWithTime: 'YYYY-MM-DDTHH:mm:ss.SSSZ',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
257
dify/web/i18n/de-DE/tools.ts
Normal file
257
dify/web/i18n/de-DE/tools.ts
Normal file
@@ -0,0 +1,257 @@
|
||||
const translation = {
|
||||
title: 'Werkzeuge',
|
||||
createCustomTool: 'Eigenes Werkzeug erstellen',
|
||||
type: {
|
||||
builtIn: 'Integriert',
|
||||
custom: 'Benutzerdefiniert',
|
||||
workflow: 'Arbeitsablauf',
|
||||
},
|
||||
contribute: {
|
||||
line1: 'Ich interessiere mich dafür, ',
|
||||
line2: 'Werkzeuge zu Dify beizutragen.',
|
||||
viewGuide: 'Leitfaden anzeigen',
|
||||
},
|
||||
author: 'Von',
|
||||
auth: {
|
||||
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',
|
||||
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',
|
||||
apiKeyPlaceholder: 'HTTP-Headername für API-Key',
|
||||
apiValuePlaceholder: 'API-Key eingeben',
|
||||
api_key_header: 'Kopfzeile',
|
||||
queryParamPlaceholder: 'Abfrageparametername für den API-Schlüssel',
|
||||
api_key_query: 'Abfrageparameter',
|
||||
},
|
||||
key: 'Schlüssel',
|
||||
value: 'Wert',
|
||||
queryParam: 'Abfrageparameter',
|
||||
queryParamTooltip: 'Der Name des API-Schlüssel-Abfrageparameters, der übergeben werden soll, z. B. "key" in "https://example.com/test?key=API_KEY".',
|
||||
},
|
||||
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',
|
||||
file: 'Datei',
|
||||
},
|
||||
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: {
|
||||
type: 'Art',
|
||||
category: 'Kategorie',
|
||||
added: 'zugefügt',
|
||||
custom: {
|
||||
title: 'Kein benutzerdefiniertes Werkzeug verfügbar',
|
||||
tip: 'Benutzerdefiniertes Werkzeug erstellen',
|
||||
},
|
||||
workflow: {
|
||||
title: 'Kein Workflow-Werkzeug verfügbar',
|
||||
tip: 'Veröffentlichen Sie Workflows als Werkzeuge im Studio',
|
||||
},
|
||||
mcp: {
|
||||
title: 'Kein MCP-Werkzeug verfügbar',
|
||||
tip: 'Einen MCP-Server hinzufügen',
|
||||
},
|
||||
agent: {
|
||||
title: 'Keine Agentenstrategie verfügbar',
|
||||
},
|
||||
},
|
||||
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',
|
||||
noTools: 'Keine Werkzeuge gefunden',
|
||||
copyToolName: 'Name kopieren',
|
||||
mcp: {
|
||||
create: {
|
||||
cardTitle: 'MCP-Server hinzufügen (HTTP)',
|
||||
cardLink: 'Mehr über MCP-Server-Integration erfahren',
|
||||
},
|
||||
noConfigured: 'Nicht konfigurierter Server',
|
||||
updateTime: 'Aktualisiert',
|
||||
toolsCount: '{{count}} Tools',
|
||||
noTools: 'Keine Tools verfügbar',
|
||||
modal: {
|
||||
title: 'MCP-Server hinzufügen (HTTP)',
|
||||
editTitle: 'MCP-Server bearbeiten (HTTP)',
|
||||
name: 'Name & Symbol',
|
||||
namePlaceholder: 'Benennen Sie Ihren MCP-Server',
|
||||
serverUrl: 'Server-URL',
|
||||
serverUrlPlaceholder: 'URL zum Server-Endpunkt',
|
||||
serverUrlWarning: 'Das Ändern der Serveradresse kann Anwendungen unterbrechen, die von diesem Server abhängen',
|
||||
serverIdentifier: 'Serverkennung',
|
||||
serverIdentifierTip: 'Eindeutige Kennung für den MCP-Server im Arbeitsbereich. Nur Kleinbuchstaben, Zahlen, Unterstriche und Bindestriche. Maximal 24 Zeichen.',
|
||||
serverIdentifierPlaceholder: 'Eindeutige Kennung, z.B. mein-mcp-server',
|
||||
serverIdentifierWarning: 'Nach einer ID-Änderung wird der Server von vorhandenen Apps nicht erkannt',
|
||||
cancel: 'Abbrechen',
|
||||
save: 'Speichern',
|
||||
confirm: 'Hinzufügen & Autorisieren',
|
||||
sseReadTimeout: 'SSE-Lesezeitüberschreitung',
|
||||
timeout: 'Zeitüberschreitung',
|
||||
headers: 'Kopfzeilen',
|
||||
timeoutPlaceholder: 'dreißig',
|
||||
headerKeyPlaceholder: 'z.B., Autorisierung',
|
||||
addHeader: 'Kopfzeile hinzufügen',
|
||||
headerValuePlaceholder: 'z.B., Träger Token123',
|
||||
headerValue: 'Header-Wert',
|
||||
headerKey: 'Kopfzeilenname',
|
||||
noHeaders: 'Keine benutzerdefinierten Header konfiguriert',
|
||||
maskedHeadersTip: 'Headerwerte sind zum Schutz maskiert. Änderungen werden die tatsächlichen Werte aktualisieren.',
|
||||
headersTip: 'Zusätzliche HTTP-Header, die mit MCP-Serveranfragen gesendet werden sollen',
|
||||
clientSecret: 'Client-Geheimnis',
|
||||
clientSecretPlaceholder: 'Client-Geheimnis',
|
||||
clientID: 'Kunden-ID',
|
||||
authentication: 'Authentifizierung',
|
||||
useDynamicClientRegistration: 'Dynamische Client-Registrierung verwenden',
|
||||
configurations: 'Konfigurationen',
|
||||
redirectUrlWarning: 'Bitte konfigurieren Sie Ihre OAuth-Umleitungs-URL wie folgt:',
|
||||
},
|
||||
delete: 'MCP-Server entfernen',
|
||||
deleteConfirmTitle: 'Möchten Sie {{mcp}} entfernen?',
|
||||
operation: {
|
||||
edit: 'Bearbeiten',
|
||||
remove: 'Entfernen',
|
||||
},
|
||||
authorize: 'Autorisieren',
|
||||
authorizing: 'Wird autorisiert...',
|
||||
authorizingRequired: 'Autorisierung erforderlich',
|
||||
authorizeTip: 'Nach der Autorisierung werden Tools hier angezeigt.',
|
||||
update: 'Aktualisieren',
|
||||
updating: 'Wird aktualisiert',
|
||||
gettingTools: 'Tools werden abgerufen...',
|
||||
updateTools: 'Tools werden aktualisiert...',
|
||||
toolsEmpty: 'Tools nicht geladen',
|
||||
getTools: 'Tools abrufen',
|
||||
toolUpdateConfirmTitle: 'Tool-Liste aktualisieren',
|
||||
toolUpdateConfirmContent: 'Das Aktualisieren der Tool-Liste kann bestehende Apps beeinflussen. Fortfahren?',
|
||||
toolsNum: '{{count}} Tools enthalten',
|
||||
onlyTool: '1 Tool enthalten',
|
||||
identifier: 'Serverkennung (Zum Kopieren klicken)',
|
||||
server: {
|
||||
title: 'MCP-Server',
|
||||
url: 'Server-URL',
|
||||
reGen: 'Server-URL neu generieren?',
|
||||
addDescription: 'Beschreibung hinzufügen',
|
||||
edit: 'Beschreibung bearbeiten',
|
||||
modal: {
|
||||
addTitle: 'Beschreibung hinzufügen, um MCP-Server zu aktivieren',
|
||||
editTitle: 'Beschreibung bearbeiten',
|
||||
description: 'Beschreibung',
|
||||
descriptionPlaceholder: 'Erklären Sie, was dieses Tool tut und wie es vom LLM verwendet werden soll',
|
||||
parameters: 'Parameter',
|
||||
parametersTip: 'Fügen Sie Beschreibungen für jeden Parameter hinzu, um dem LLM Zweck und Einschränkungen zu verdeutlichen.',
|
||||
parametersPlaceholder: 'Zweck und Einschränkungen des Parameters',
|
||||
confirm: 'MCP-Server aktivieren',
|
||||
},
|
||||
publishTip: 'App nicht veröffentlicht. Bitte zuerst die App veröffentlichen.',
|
||||
},
|
||||
toolItem: {
|
||||
parameters: 'Parameter',
|
||||
noDescription: 'Keine Beschreibung',
|
||||
},
|
||||
},
|
||||
allTools: 'Alle Werkzeuge',
|
||||
}
|
||||
|
||||
export default translation
|
||||
1291
dify/web/i18n/de-DE/workflow.ts
Normal file
1291
dify/web/i18n/de-DE/workflow.ts
Normal file
File diff suppressed because it is too large
Load Diff
98
dify/web/i18n/en-US/app-annotation.ts
Normal file
98
dify/web/i18n/en-US/app-annotation.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
const translation = {
|
||||
title: 'Annotations',
|
||||
name: 'Annotation Reply',
|
||||
editBy: 'Answer edited by {{author}}',
|
||||
noData: {
|
||||
title: 'No annotations',
|
||||
description: 'You can edit annotations during app debugging or import annotations in bulk here for a high-quality response.',
|
||||
},
|
||||
table: {
|
||||
header: {
|
||||
question: 'question',
|
||||
answer: 'answer',
|
||||
createdAt: 'created at',
|
||||
hits: 'hits',
|
||||
actions: 'actions',
|
||||
addAnnotation: 'Add Annotation',
|
||||
bulkImport: 'Bulk Import',
|
||||
bulkExport: 'Bulk Export',
|
||||
clearAll: 'Delete All',
|
||||
clearAllConfirm: 'Delete all annotations?',
|
||||
},
|
||||
},
|
||||
editModal: {
|
||||
title: 'Edit Annotation Reply',
|
||||
queryName: 'User Query',
|
||||
answerName: 'Storyteller Bot',
|
||||
yourAnswer: 'Your Answer',
|
||||
answerPlaceholder: 'Type your answer here',
|
||||
yourQuery: 'Your Query',
|
||||
queryPlaceholder: 'Type your query here',
|
||||
removeThisCache: 'Remove this Annotation',
|
||||
createdAt: 'Created At',
|
||||
},
|
||||
addModal: {
|
||||
title: 'Add Annotation Reply',
|
||||
queryName: 'Question',
|
||||
answerName: 'Answer',
|
||||
answerPlaceholder: 'Type answer here',
|
||||
queryPlaceholder: 'Type query here',
|
||||
createNext: 'Add another annotated response',
|
||||
},
|
||||
batchModal: {
|
||||
title: 'Bulk Import',
|
||||
csvUploadTitle: 'Drag and drop your CSV file here, or ',
|
||||
browse: 'browse',
|
||||
tip: 'The CSV file must conform to the following structure:',
|
||||
question: 'question',
|
||||
answer: 'answer',
|
||||
contentTitle: 'chunk content',
|
||||
content: 'content',
|
||||
template: 'Download the template here',
|
||||
cancel: 'Cancel',
|
||||
run: 'Run Batch',
|
||||
runError: 'Run batch failed',
|
||||
processing: 'In batch processing',
|
||||
completed: 'Import completed',
|
||||
error: 'Import Error',
|
||||
ok: 'OK',
|
||||
},
|
||||
list: {
|
||||
delete: {
|
||||
title: 'Are you sure Delete?',
|
||||
},
|
||||
},
|
||||
batchAction: {
|
||||
selected: 'Selected',
|
||||
delete: 'Delete',
|
||||
cancel: 'Cancel',
|
||||
},
|
||||
errorMessage: {
|
||||
answerRequired: 'Answer is required',
|
||||
queryRequired: 'Question is required',
|
||||
},
|
||||
viewModal: {
|
||||
annotatedResponse: 'Annotation Reply',
|
||||
hitHistory: 'Hit History',
|
||||
hit: 'Hit',
|
||||
hits: 'Hits',
|
||||
noHitHistory: 'No hit history',
|
||||
},
|
||||
hitHistoryTable: {
|
||||
query: 'Query',
|
||||
match: 'Match',
|
||||
response: 'Response',
|
||||
source: 'Source',
|
||||
score: 'Score',
|
||||
time: 'Time',
|
||||
},
|
||||
initSetup: {
|
||||
title: 'Annotation Reply Initial Setup',
|
||||
configTitle: 'Annotation Reply Setup',
|
||||
confirmBtn: 'Save & Enable',
|
||||
configConfirmBtn: 'Save',
|
||||
},
|
||||
embeddingModelSwitchTip: 'Annotation text vectorization model, switching models will be re-embedded, resulting in additional costs.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
85
dify/web/i18n/en-US/app-api.ts
Normal file
85
dify/web/i18n/en-US/app-api.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
const translation = {
|
||||
apiServer: 'API Server',
|
||||
apiKey: 'API Key',
|
||||
status: 'Status',
|
||||
disabled: 'Disabled',
|
||||
ok: 'In Service',
|
||||
copy: 'Copy',
|
||||
copied: 'Copied',
|
||||
regenerate: 'Regenerate',
|
||||
play: 'Play',
|
||||
pause: 'Pause',
|
||||
playing: 'Playing',
|
||||
loading: 'Loading',
|
||||
merMaid: {
|
||||
rerender: 'Redo Rerender',
|
||||
},
|
||||
never: 'Never',
|
||||
apiKeyModal: {
|
||||
apiSecretKey: 'API Secret key',
|
||||
apiSecretKeyTips: 'To prevent API abuse, protect your API Key. Avoid using it as plain text in front-end code. :)',
|
||||
createNewSecretKey: 'Create new Secret key',
|
||||
secretKey: 'Secret Key',
|
||||
created: 'CREATED',
|
||||
lastUsed: 'LAST USED',
|
||||
generateTips: 'Keep this key in a secure and accessible place.',
|
||||
},
|
||||
actionMsg: {
|
||||
deleteConfirmTitle: 'Delete this secret key?',
|
||||
deleteConfirmTips: 'This action cannot be undone.',
|
||||
ok: 'OK',
|
||||
},
|
||||
completionMode: {
|
||||
title: 'Completion App API',
|
||||
info: 'For high-quality text generation, such as articles, summaries, and translations, use the completion-messages API with user input. Text generation relies on the model parameters and prompt templates set in Dify Prompt Engineering.',
|
||||
createCompletionApi: 'Create Completion Message',
|
||||
createCompletionApiTip: 'Create a Completion Message to support the question-and-answer mode.',
|
||||
inputsTips: '(Optional) Provide user input fields as key-value pairs, corresponding to variables in Prompt Eng. Key is the variable name, Value is the parameter value. If the field type is Select, the submitted Value must be one of the preset choices.',
|
||||
queryTips: 'User input text content.',
|
||||
blocking: 'Blocking type, waiting for execution to complete and returning results. (Requests may be interrupted if the process is long)',
|
||||
streaming: 'streaming returns. Implementation of streaming return based on SSE (Server-Sent Events).',
|
||||
messageFeedbackApi: 'Message feedback (like)',
|
||||
messageFeedbackApiTip: 'Rate received messages on behalf of end-users with likes or dislikes. This data is visible in the Logs & Annotations page and used for future model fine-tuning.',
|
||||
messageIDTip: 'Message ID',
|
||||
ratingTip: 'like or dislike, null is undo',
|
||||
parametersApi: 'Obtain application parameter information',
|
||||
parametersApiTip: 'Retrieve configured Input parameters, including variable names, field names, types, and default values. Typically used for displaying these fields in a form or filling in default values after the client loads.',
|
||||
},
|
||||
chatMode: {
|
||||
title: 'Chat App API',
|
||||
info: 'For versatile conversational apps using a Q&A format, call the chat-messages API to initiate dialogue. Maintain ongoing conversations by passing the returned conversation_id. Response parameters and templates depend on Dify Prompt Eng. settings.',
|
||||
createChatApi: 'Create chat message',
|
||||
createChatApiTip: 'Create a new conversation message or continue an existing dialogue.',
|
||||
inputsTips: '(Optional) Provide user input fields as key-value pairs, corresponding to variables in Prompt Eng. Key is the variable name, Value is the parameter value. If the field type is Select, the submitted Value must be one of the preset choices.',
|
||||
queryTips: 'User input/question content',
|
||||
blocking: 'Blocking type, waiting for execution to complete and returning results. (Requests may be interrupted if the process is long)',
|
||||
streaming: 'streaming returns. Implementation of streaming return based on SSE (Server-Sent Events).',
|
||||
conversationIdTip: '(Optional) Conversation ID: leave empty for first-time conversation; pass conversation_id from context to continue dialogue.',
|
||||
messageFeedbackApi: 'Message terminal user feedback, like',
|
||||
messageFeedbackApiTip: 'Rate received messages on behalf of end-users with likes or dislikes. This data is visible in the Logs & Annotations page and used for future model fine-tuning.',
|
||||
messageIDTip: 'Message ID',
|
||||
ratingTip: 'like or dislike, null is undo',
|
||||
chatMsgHistoryApi: 'Get the chat history message',
|
||||
chatMsgHistoryApiTip: 'The first page returns the latest `limit` bar, which is in reverse order.',
|
||||
chatMsgHistoryConversationIdTip: 'Conversation ID',
|
||||
chatMsgHistoryFirstId: 'ID of the first chat record on the current page. The default is none.',
|
||||
chatMsgHistoryLimit: 'How many chats are returned in one request',
|
||||
conversationsListApi: 'Get conversation list',
|
||||
conversationsListApiTip: 'Gets the session list of the current user. By default, the last 20 sessions are returned.',
|
||||
conversationsListFirstIdTip: 'The ID of the last record on the current page, default none.',
|
||||
conversationsListLimitTip: 'How many chats are returned in one request',
|
||||
conversationRenamingApi: 'Conversation renaming',
|
||||
conversationRenamingApiTip: 'Rename conversations; the name is displayed in multi-session client interfaces.',
|
||||
conversationRenamingNameTip: 'New name',
|
||||
parametersApi: 'Obtain application parameter information',
|
||||
parametersApiTip: 'Retrieve configured Input parameters, including variable names, field names, types, and default values. Typically used for displaying these fields in a form or filling in default values after the client loads.',
|
||||
},
|
||||
develop: {
|
||||
requestBody: 'Request Body',
|
||||
pathParams: 'Path Params',
|
||||
query: 'Query',
|
||||
toc: 'Contents',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
575
dify/web/i18n/en-US/app-debug.ts
Normal file
575
dify/web/i18n/en-US/app-debug.ts
Normal file
@@ -0,0 +1,575 @@
|
||||
const translation = {
|
||||
pageTitle: {
|
||||
line1: 'PROMPT',
|
||||
line2: 'Engineering',
|
||||
},
|
||||
orchestrate: 'Orchestrate',
|
||||
promptMode: {
|
||||
simple: 'Switch to Expert Mode to edit the whole PROMPT',
|
||||
advanced: 'Expert Mode',
|
||||
switchBack: 'Switch back',
|
||||
advancedWarning: {
|
||||
title: 'You have switched to Expert Mode, and once you modify the PROMPT, you CANNOT return to the basic mode.',
|
||||
description: 'In Expert Mode, you can edit whole PROMPT.',
|
||||
learnMore: 'Learn more',
|
||||
ok: 'OK',
|
||||
},
|
||||
operation: {
|
||||
addMessage: 'Add Message',
|
||||
},
|
||||
contextMissing: 'Context component missed, the effectiveness of the prompt may not be good.',
|
||||
},
|
||||
operation: {
|
||||
applyConfig: 'Publish',
|
||||
resetConfig: 'Reset',
|
||||
debugConfig: 'Debug',
|
||||
addFeature: 'Add Feature',
|
||||
automatic: 'Generate',
|
||||
stopResponding: 'Stop responding',
|
||||
agree: 'like',
|
||||
disagree: 'dislike',
|
||||
cancelAgree: 'Cancel like',
|
||||
cancelDisagree: 'Cancel dislike',
|
||||
userAction: 'User ',
|
||||
},
|
||||
notSetAPIKey: {
|
||||
title: 'LLM provider key has not been set',
|
||||
trailFinished: 'Trail finished',
|
||||
description: 'The LLM provider key has not been set, and it needs to be set before debugging.',
|
||||
settingBtn: 'Go to settings',
|
||||
},
|
||||
trailUseGPT4Info: {
|
||||
title: 'Does not support gpt-4 now',
|
||||
description: 'Use gpt-4, please set API Key.',
|
||||
},
|
||||
feature: {
|
||||
groupChat: {
|
||||
title: 'Chat enhance',
|
||||
description: 'Add pre-conversation settings for apps can enhance user experience.',
|
||||
},
|
||||
groupExperience: {
|
||||
title: 'Experience enhance',
|
||||
},
|
||||
conversationOpener: {
|
||||
title: 'Conversation Opener',
|
||||
description: 'In a chat app, the first sentence that the AI actively speaks to the user is usually used as a welcome.',
|
||||
},
|
||||
suggestedQuestionsAfterAnswer: {
|
||||
title: 'Follow-up',
|
||||
description: 'Setting up next questions suggestion can give users a better chat.',
|
||||
resDes: '3 suggestions for user next question.',
|
||||
tryToAsk: 'Try to ask',
|
||||
},
|
||||
moreLikeThis: {
|
||||
title: 'More like this',
|
||||
description: 'Generate multiple texts at once, and then edit and continue to generate',
|
||||
generateNumTip: 'Number of each generated times',
|
||||
tip: 'Using this feature will incur additional tokens overhead',
|
||||
},
|
||||
speechToText: {
|
||||
title: 'Speech to Text',
|
||||
description: 'Voice input can be used in chat.',
|
||||
resDes: 'Voice input is enabled',
|
||||
},
|
||||
textToSpeech: {
|
||||
title: 'Text to Speech',
|
||||
description: 'Conversation messages can be converted to speech.',
|
||||
resDes: 'Text to Audio is enabled',
|
||||
},
|
||||
citation: {
|
||||
title: 'Citations and Attributions',
|
||||
description: 'Show source document and attributed section of the generated content.',
|
||||
resDes: 'Citations and Attributions is enabled',
|
||||
},
|
||||
annotation: {
|
||||
title: 'Annotation Reply',
|
||||
description: 'You can manually add high-quality response to the cache for prioritized matching with similar user questions.',
|
||||
resDes: 'Annotation Response is enabled',
|
||||
scoreThreshold: {
|
||||
title: 'Score Threshold',
|
||||
description: 'Used to set the similarity threshold for annotation reply.',
|
||||
easyMatch: 'Easy Match',
|
||||
accurateMatch: 'Accurate Match',
|
||||
},
|
||||
matchVariable: {
|
||||
title: 'Match Variable',
|
||||
choosePlaceholder: 'Choose match variable',
|
||||
},
|
||||
cacheManagement: 'Annotations',
|
||||
cached: 'Annotated',
|
||||
remove: 'Remove',
|
||||
removeConfirm: 'Delete this annotation ?',
|
||||
add: 'Add annotation',
|
||||
edit: 'Edit annotation',
|
||||
},
|
||||
dataSet: {
|
||||
title: 'Knowledge',
|
||||
noData: 'You can import Knowledge as context',
|
||||
selectTitle: 'Select reference Knowledge',
|
||||
selected: 'Knowledge selected',
|
||||
noDataSet: 'No Knowledge found',
|
||||
toCreate: 'Go to create',
|
||||
notSupportSelectMulti: 'Currently only support one Knowledge',
|
||||
queryVariable: {
|
||||
title: 'Query variable',
|
||||
tip: 'This variable will be used as the query input for context retrieval, obtaining context information related to the input of this variable.',
|
||||
choosePlaceholder: 'Choose query variable',
|
||||
noVar: 'No variables',
|
||||
noVarTip: 'please create a variable under the Variables section',
|
||||
unableToQueryDataSet: 'Unable to query the Knowledge',
|
||||
unableToQueryDataSetTip: 'Unable to query the Knowledge successfully, please choose a context query variable in the context section.',
|
||||
ok: 'OK',
|
||||
contextVarNotEmpty: 'context query variable can not be empty',
|
||||
deleteContextVarTitle: 'Delete variable “{{varName}}”?',
|
||||
deleteContextVarTip: 'This variable has been set as a context query variable, and removing it will impact the normal use of the Knowledge. If you still need to delete it, please reselect it in the context section.',
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
title: 'Tools',
|
||||
tips: 'Tools provide a standard API call method, taking user input or variables as request parameters for querying external data as context.',
|
||||
toolsInUse: '{{count}} tools in use',
|
||||
modal: {
|
||||
title: 'Tool',
|
||||
toolType: {
|
||||
title: 'Tool Type',
|
||||
placeholder: 'Please select the tool type',
|
||||
},
|
||||
name: {
|
||||
title: 'Name',
|
||||
placeholder: 'Please enter the name',
|
||||
},
|
||||
variableName: {
|
||||
title: 'Variable Name',
|
||||
placeholder: 'Please enter the variable name',
|
||||
},
|
||||
},
|
||||
},
|
||||
conversationHistory: {
|
||||
title: 'Conversation History',
|
||||
description: 'Set prefix names for conversation roles',
|
||||
tip: 'The Conversation History is not enabled, please add <histories> in the prompt above.',
|
||||
learnMore: 'Learn more',
|
||||
editModal: {
|
||||
title: 'Edit Conversation Role Names',
|
||||
userPrefix: 'User prefix',
|
||||
assistantPrefix: 'Assistant prefix',
|
||||
},
|
||||
},
|
||||
toolbox: {
|
||||
title: 'TOOLBOX',
|
||||
},
|
||||
moderation: {
|
||||
title: 'Content moderation',
|
||||
description: 'Secure model output by using moderation API or maintaining a sensitive word list.',
|
||||
contentEnableLabel: 'Content moderation enabled',
|
||||
allEnabled: 'INPUT & OUTPUT',
|
||||
inputEnabled: 'INPUT',
|
||||
outputEnabled: 'OUTPUT',
|
||||
modal: {
|
||||
title: 'Content moderation settings',
|
||||
provider: {
|
||||
title: 'Provider',
|
||||
openai: 'OpenAI Moderation',
|
||||
openaiTip: {
|
||||
prefix: 'OpenAI Moderation requires an OpenAI API key configured in the ',
|
||||
suffix: '.',
|
||||
},
|
||||
keywords: 'Keywords',
|
||||
},
|
||||
keywords: {
|
||||
tip: 'One per line, separated by line breaks. Up to 100 characters per line.',
|
||||
placeholder: 'One per line, separated by line breaks',
|
||||
line: 'Line',
|
||||
},
|
||||
content: {
|
||||
input: 'Moderate INPUT Content',
|
||||
output: 'Moderate OUTPUT Content',
|
||||
preset: 'Preset replies',
|
||||
placeholder: 'Preset replies content here',
|
||||
condition: 'Moderate INPUT and OUTPUT Content enabled at least one',
|
||||
fromApi: 'Preset replies are returned by API',
|
||||
errorMessage: 'Preset replies cannot be empty',
|
||||
supportMarkdown: 'Markdown supported',
|
||||
},
|
||||
openaiNotConfig: {
|
||||
before: 'OpenAI Moderation requires an OpenAI API key configured in the',
|
||||
after: '',
|
||||
},
|
||||
},
|
||||
},
|
||||
fileUpload: {
|
||||
title: 'File Upload',
|
||||
description: 'The chat input box allows uploading of images, documents, and other files.',
|
||||
supportedTypes: 'Support File Types',
|
||||
numberLimit: 'Max uploads',
|
||||
modalTitle: 'File Upload Setting',
|
||||
},
|
||||
imageUpload: {
|
||||
title: 'Image Upload',
|
||||
description: 'Allow uploading images.',
|
||||
supportedTypes: 'Support File Types',
|
||||
numberLimit: 'Max uploads',
|
||||
modalTitle: 'Image Upload Setting',
|
||||
},
|
||||
bar: {
|
||||
empty: 'Enable feature to enhance web app user experience',
|
||||
enableText: 'Features Enabled',
|
||||
manage: 'Manage',
|
||||
},
|
||||
documentUpload: {
|
||||
title: 'Document',
|
||||
description: 'Enable Document will allows the model to take in documents and answer questions about them.',
|
||||
},
|
||||
audioUpload: {
|
||||
title: 'Audio',
|
||||
description: 'Enable Audio will allow the model to process audio files for transcription and analysis.',
|
||||
},
|
||||
},
|
||||
codegen: {
|
||||
title: 'Code Generator',
|
||||
description: 'The Code Generator uses configured models to generate high-quality code based on your instructions. Please provide clear and detailed instructions.',
|
||||
instruction: 'Instructions',
|
||||
instructionPlaceholder: 'Enter detailed description of the code you want to generate.',
|
||||
noDataLine1: 'Describe your use case on the left,',
|
||||
noDataLine2: 'the code preview will show here.',
|
||||
generate: 'Generate',
|
||||
generatedCodeTitle: 'Generated Code',
|
||||
loading: 'Generating code...',
|
||||
apply: 'Apply',
|
||||
applyChanges: 'Apply Changes',
|
||||
resTitle: 'Generated Code',
|
||||
overwriteConfirmTitle: 'Overwrite existing code?',
|
||||
overwriteConfirmMessage: 'This action will overwrite the existing code. Do you want to continue?',
|
||||
},
|
||||
generate: {
|
||||
title: 'Prompt Generator',
|
||||
description: 'The Prompt Generator uses the configured model to optimize prompts for higher quality and better structure. Please write clear and detailed instructions.',
|
||||
tryIt: 'Try it',
|
||||
instruction: 'Instructions',
|
||||
instructionPlaceHolderTitle: 'Describe how you would like to improve this Prompt. For example:',
|
||||
instructionPlaceHolderLine1: 'Make the output more concise, retaining the core points.',
|
||||
instructionPlaceHolderLine2: 'The output format is incorrect, please strictly follow the JSON format.',
|
||||
instructionPlaceHolderLine3: 'The tone is too harsh, please make it more friendly.',
|
||||
codeGenInstructionPlaceHolderLine: 'The more detailed the feedback, such as the data types of input and output as well as how variables are processed, the more accurate the code generation will be.',
|
||||
idealOutput: 'Ideal Output',
|
||||
idealOutputPlaceholder: 'Describe your ideal response format, length, tone, and content requirements...',
|
||||
optional: 'Optional',
|
||||
dismiss: 'Dismiss',
|
||||
generate: 'Generate',
|
||||
resTitle: 'Generated Prompt',
|
||||
newNoDataLine1: 'Write a instruction in the left column, and click Generate to see response. ',
|
||||
apply: 'Apply',
|
||||
loading: 'Orchestrating the application for you...',
|
||||
overwriteTitle: 'Override existing configuration?',
|
||||
overwriteMessage: 'Applying this prompt will override existing configuration.',
|
||||
template: {
|
||||
pythonDebugger: {
|
||||
name: 'Python debugger',
|
||||
instruction: 'A bot that can generate and debug your code based on your instruction',
|
||||
},
|
||||
translation: {
|
||||
name: 'Translation',
|
||||
instruction: 'A translator that can translate multiple languages',
|
||||
},
|
||||
professionalAnalyst: {
|
||||
name: 'Professional analyst',
|
||||
instruction: 'Extract insights, identify risk and distill key information from long reports into single memo',
|
||||
},
|
||||
excelFormulaExpert: {
|
||||
name: 'Excel formula expert',
|
||||
instruction: 'A chatbot that can help novice users understand, use and create Excel formulas based on user instructions',
|
||||
},
|
||||
travelPlanning: {
|
||||
name: 'Travel planning',
|
||||
instruction: 'The Travel Planning Assistant is an intelligent tool designed to help users effortlessly plan their trips',
|
||||
},
|
||||
SQLSorcerer: {
|
||||
name: 'SQL sorcerer',
|
||||
instruction: 'Transform everyday language into SQL queries',
|
||||
},
|
||||
GitGud: {
|
||||
name: 'Git gud',
|
||||
instruction: 'Generate appropriate Git commands based on user described version control actions',
|
||||
},
|
||||
meetingTakeaways: {
|
||||
name: 'Meeting takeaways',
|
||||
instruction: 'Distill meetings into concise summaries including discussion topics, key takeaways, and action items',
|
||||
},
|
||||
writingsPolisher: {
|
||||
name: 'Writing polisher',
|
||||
instruction: 'Use advanced copyediting techniques to improve your writings',
|
||||
},
|
||||
},
|
||||
press: 'Press',
|
||||
to: 'to ',
|
||||
insertContext: 'insert context',
|
||||
optimizePromptTooltip: 'Optimize in Prompt Generator',
|
||||
optimizationNote: 'Optimization Note',
|
||||
versions: 'Versions',
|
||||
version: 'Version',
|
||||
latest: 'Latest',
|
||||
},
|
||||
resetConfig: {
|
||||
title: 'Confirm reset?',
|
||||
message:
|
||||
'Reset discards changes, restoring the last published configuration.',
|
||||
},
|
||||
errorMessage: {
|
||||
nameOfKeyRequired: 'name of the key: {{key}} required',
|
||||
valueOfVarRequired: '{{key}} value can not be empty',
|
||||
queryRequired: 'Request text is required.',
|
||||
waitForResponse:
|
||||
'Please wait for the response to the previous message to complete.',
|
||||
waitForBatchResponse:
|
||||
'Please wait for the response to the batch task to complete.',
|
||||
notSelectModel: 'Please choose a model',
|
||||
waitForImgUpload: 'Please wait for the image to upload',
|
||||
waitForFileUpload: 'Please wait for the file/files to upload',
|
||||
},
|
||||
warningMessage: {
|
||||
timeoutExceeded: 'Results are not displayed due to timeout. Please refer to the logs to gather complete results.',
|
||||
},
|
||||
chatSubTitle: 'Instructions',
|
||||
completionSubTitle: 'Prefix Prompt',
|
||||
promptTip:
|
||||
'Prompts guide AI responses with instructions and constraints. Insert variables like {{input}}. This prompt won\'t be visible to users.',
|
||||
formattingChangedTitle: 'Formatting changed',
|
||||
formattingChangedText:
|
||||
'Modifying the formatting will reset the debug area, are you sure?',
|
||||
variableTitle: 'Variables',
|
||||
variableTip:
|
||||
'Users fill variables in a form, automatically replacing variables in the prompt.',
|
||||
notSetVar: 'Variables allow users to introduce prompt words or opening remarks when filling out forms. You can try entering "{{input}}" in the prompt words.',
|
||||
autoAddVar: 'Undefined variables referenced in pre-prompt, are you want to add them in user input form?',
|
||||
variableTable: {
|
||||
key: 'Variable Key',
|
||||
name: 'User Input Field Name',
|
||||
type: 'Input Type',
|
||||
action: 'Actions',
|
||||
typeString: 'String',
|
||||
typeSelect: 'Select',
|
||||
},
|
||||
varKeyError: {
|
||||
canNoBeEmpty: '{{key}} is required',
|
||||
tooLong: '{{key}} is too length. Can not be longer then 30 characters',
|
||||
notValid: '{{key}} is invalid. Can only contain letters, numbers, and underscores',
|
||||
notStartWithNumber: '{{key}} can not start with a number',
|
||||
keyAlreadyExists: '{{key}} already exists',
|
||||
},
|
||||
otherError: {
|
||||
promptNoBeEmpty: 'Prompt can not be empty',
|
||||
historyNoBeEmpty: 'Conversation history must be set in the prompt',
|
||||
queryNoBeEmpty: 'Query must be set in the prompt',
|
||||
},
|
||||
variableConfig: {
|
||||
'addModalTitle': 'Add Input Field',
|
||||
'editModalTitle': 'Edit Input Field',
|
||||
'description': 'Setting for variable {{varName}}',
|
||||
'fieldType': 'Field Type',
|
||||
'string': 'Short Text',
|
||||
'text-input': 'Short Text',
|
||||
'paragraph': 'Paragraph',
|
||||
'select': 'Select',
|
||||
'number': 'Number',
|
||||
'checkbox': 'Checkbox',
|
||||
'json': 'JSON Code',
|
||||
'jsonSchema': 'JSON Schema',
|
||||
'optional': 'optional',
|
||||
'single-file': 'Single File',
|
||||
'multi-files': 'File List',
|
||||
'notSet': 'Not set, try typing {{input}} in the prefix prompt',
|
||||
'stringTitle': 'Form text box options',
|
||||
'maxLength': 'Max Length',
|
||||
'options': 'Options',
|
||||
'addOption': 'Add option',
|
||||
'apiBasedVar': 'API-based Variable',
|
||||
'varName': 'Variable Name',
|
||||
'labelName': 'Label Name',
|
||||
'displayName': 'Display Name',
|
||||
'inputPlaceholder': 'Please input',
|
||||
'content': 'Content',
|
||||
'required': 'Required',
|
||||
'placeholder': 'Placeholder',
|
||||
'placeholderPlaceholder': 'Enter text to display when the field is empty',
|
||||
'defaultValue': 'Default Value',
|
||||
'defaultValuePlaceholder': 'Enter default value to pre-populate the field',
|
||||
'unit': 'Unit',
|
||||
'unitPlaceholder': 'Display units after numbers, e.g. tokens',
|
||||
'tooltips': 'Tooltips',
|
||||
'tooltipsPlaceholder': 'Enter helpful text shown when hovering over the label',
|
||||
'showAllSettings': 'Show All Settings',
|
||||
'startSelectedOption': 'Start selected option',
|
||||
'noDefaultSelected': 'Don\'t select',
|
||||
'hide': 'Hide',
|
||||
'file': {
|
||||
supportFileTypes: 'Support File Types',
|
||||
image: {
|
||||
name: 'Image',
|
||||
},
|
||||
audio: {
|
||||
name: 'Audio',
|
||||
},
|
||||
document: {
|
||||
name: 'Document',
|
||||
},
|
||||
video: {
|
||||
name: 'Video',
|
||||
},
|
||||
custom: {
|
||||
name: 'Other file types',
|
||||
description: 'Specify other file types.',
|
||||
createPlaceholder: '+ File extension, e.g .doc',
|
||||
},
|
||||
},
|
||||
'uploadFileTypes': 'Upload File Types',
|
||||
'uploadMethod': 'Upload Method',
|
||||
'localUpload': 'Local Upload',
|
||||
'both': 'Both',
|
||||
'maxNumberOfUploads': 'Max number of uploads',
|
||||
'maxNumberTip': 'Document < {{docLimit}}, image < {{imgLimit}}, audio < {{audioLimit}}, video < {{videoLimit}}',
|
||||
'errorMsg': {
|
||||
labelNameRequired: 'Label name is required',
|
||||
varNameCanBeRepeat: 'Variable name can not be repeated',
|
||||
atLeastOneOption: 'At least one option is required',
|
||||
optionRepeat: 'Has repeat options',
|
||||
},
|
||||
'startChecked': 'Start checked',
|
||||
'noDefaultValue': 'No default value',
|
||||
'selectDefaultValue': 'Select default value',
|
||||
},
|
||||
vision: {
|
||||
name: 'Vision',
|
||||
description: 'Enable Vision will allows the model to take in images and answer questions about them. ',
|
||||
onlySupportVisionModelTip: 'Only supports vision models',
|
||||
settings: 'Settings',
|
||||
visionSettings: {
|
||||
title: 'Vision Settings',
|
||||
resolution: 'Resolution',
|
||||
resolutionTooltip: `low res will allow model receive a low-res 512 x 512 version of the image, and represent the image with a budget of 65 tokens. This allows the API to return faster responses and consume fewer input tokens for use cases that do not require high detail.
|
||||
\n
|
||||
high res will first allows the model to see the low res image and then creates detailed crops of input images as 512px squares based on the input image size. Each of the detailed crops uses twice the token budget for a total of 129 tokens.`,
|
||||
high: 'High',
|
||||
low: 'Low',
|
||||
uploadMethod: 'Upload Method',
|
||||
both: 'Both',
|
||||
localUpload: 'Local Upload',
|
||||
url: 'URL',
|
||||
uploadLimit: 'Upload Limit',
|
||||
},
|
||||
},
|
||||
voice: {
|
||||
name: 'Voice',
|
||||
defaultDisplay: 'Default Voice',
|
||||
description: 'Text to speech voice Settings',
|
||||
settings: 'Settings',
|
||||
voiceSettings: {
|
||||
title: 'Voice Settings',
|
||||
language: 'Language',
|
||||
resolutionTooltip: 'Text-to-speech voice support language。',
|
||||
voice: 'Voice',
|
||||
autoPlay: 'Auto Play',
|
||||
autoPlayEnabled: 'On',
|
||||
autoPlayDisabled: 'Off',
|
||||
},
|
||||
},
|
||||
openingStatement: {
|
||||
title: 'Conversation Opener',
|
||||
add: 'Add',
|
||||
writeOpener: 'Edit opener',
|
||||
placeholder: 'Write your opener message here, you can use variables, try type {{variable}}.',
|
||||
openingQuestion: 'Opening Questions',
|
||||
openingQuestionPlaceholder: 'You can use variables, try typing {{variable}}.',
|
||||
noDataPlaceHolder:
|
||||
'Starting the conversation with the user can help AI establish a closer connection with them in conversational applications.',
|
||||
varTip: 'You can use variables, try type {{variable}}',
|
||||
tooShort: 'At least 20 words of initial prompt are required to generate an opening remarks for the conversation.',
|
||||
notIncludeKey: 'The initial prompt does not include the variable: {{key}}. Please add it to the initial prompt.',
|
||||
},
|
||||
modelConfig: {
|
||||
model: 'Model',
|
||||
setTone: 'Set tone of responses',
|
||||
title: 'Model and Parameters',
|
||||
modeType: {
|
||||
chat: 'Chat',
|
||||
completion: 'Complete',
|
||||
},
|
||||
},
|
||||
inputs: {
|
||||
title: 'Debug & Preview',
|
||||
noPrompt: 'Try write some prompt in pre-prompt input',
|
||||
userInputField: 'User Input Field',
|
||||
noVar: 'Fill in the value of the variable, which will be automatically replaced in the prompt word every time a new session is started.',
|
||||
chatVarTip:
|
||||
'Fill in the value of the variable, which will be automatically replaced in the prompt word every time a new session is started',
|
||||
completionVarTip:
|
||||
'Fill in the value of the variable, which will be automatically replaced in the prompt words every time a question is submitted.',
|
||||
previewTitle: 'Prompt preview',
|
||||
queryTitle: 'Query content',
|
||||
queryPlaceholder: 'Please enter the request text.',
|
||||
run: 'RUN',
|
||||
},
|
||||
result: 'Output Text',
|
||||
noResult: 'Output will be displayed here.',
|
||||
datasetConfig: {
|
||||
settingTitle: 'Retrieval settings',
|
||||
knowledgeTip: 'Click the “+” button to add knowledge',
|
||||
retrieveOneWay: {
|
||||
title: 'N-to-1 retrieval',
|
||||
description: 'Based on user intent and Knowledge descriptions, the Agent autonomously selects the best Knowledge for querying. Best for applications with distinct, limited Knowledge.',
|
||||
},
|
||||
retrieveMultiWay: {
|
||||
title: 'Multi-path retrieval',
|
||||
description: 'Based on user intent, queries across all Knowledge, retrieves relevant text from multi-sources, and selects the best results matching the user query after reranking.',
|
||||
},
|
||||
embeddingModelRequired: 'A configured Embedding Model is required',
|
||||
rerankModelRequired: 'A configured Rerank Model is required',
|
||||
params: 'Params',
|
||||
top_k: 'Top K',
|
||||
top_kTip: 'Used to filter chunks that are most similar to user questions. The system will also dynamically adjust the value of Top K, according to max_tokens of the selected model.',
|
||||
score_threshold: 'Score Threshold',
|
||||
score_thresholdTip: 'Used to set the similarity threshold for chunks filtering.',
|
||||
retrieveChangeTip: 'Modifying the index mode and retrieval mode may affect applications associated with this Knowledge.',
|
||||
},
|
||||
debugAsSingleModel: 'Debug as Single Model',
|
||||
debugAsMultipleModel: 'Debug as Multiple Models',
|
||||
duplicateModel: 'Duplicate',
|
||||
publishAs: 'Publish as',
|
||||
assistantType: {
|
||||
name: 'Assistant Type',
|
||||
chatAssistant: {
|
||||
name: 'Basic Assistant',
|
||||
description: 'Build a chat-based assistant using a Large Language Model',
|
||||
},
|
||||
agentAssistant: {
|
||||
name: 'Agent Assistant',
|
||||
description: 'Build an intelligent Agent which can autonomously choose tools to complete the tasks',
|
||||
},
|
||||
},
|
||||
agent: {
|
||||
agentMode: 'Agent Mode',
|
||||
agentModeDes: 'Set the type of inference mode for the agent',
|
||||
agentModeType: {
|
||||
ReACT: 'ReAct',
|
||||
functionCall: 'Function Calling',
|
||||
},
|
||||
setting: {
|
||||
name: 'Agent Settings',
|
||||
description: 'Agent Assistant settings allow setting agent mode and advanced features like built-in prompts, only available in Agent type.',
|
||||
maximumIterations: {
|
||||
name: 'Maximum Iterations',
|
||||
description: 'Limit the number of iterations an agent assistant can execute',
|
||||
},
|
||||
},
|
||||
buildInPrompt: 'Build-In Prompt',
|
||||
firstPrompt: 'First Prompt',
|
||||
nextIteration: 'Next Iteration',
|
||||
promptPlaceholder: 'Write your prompt here',
|
||||
tools: {
|
||||
name: 'Tools',
|
||||
description: 'Using tools can extend the capabilities of LLM, such as searching the internet or performing scientific calculations',
|
||||
enabled: 'Enabled',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
112
dify/web/i18n/en-US/app-log.ts
Normal file
112
dify/web/i18n/en-US/app-log.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
const translation = {
|
||||
title: 'Logs',
|
||||
description: 'The logs record the running status of the application, including user inputs and AI replies.',
|
||||
dateTimeFormat: 'MM/DD/YYYY hh:mm:ss A',
|
||||
dateFormat: 'MM/DD/YYYY',
|
||||
table: {
|
||||
header: {
|
||||
updatedTime: 'Updated time',
|
||||
time: 'Created time',
|
||||
endUser: 'End User or Account',
|
||||
input: 'Input',
|
||||
output: 'Output',
|
||||
summary: 'Title',
|
||||
messageCount: 'Message Count',
|
||||
userRate: 'User Rate',
|
||||
adminRate: 'Op. Rate',
|
||||
startTime: 'START TIME',
|
||||
status: 'STATUS',
|
||||
runtime: 'RUN TIME',
|
||||
tokens: 'TOKENS',
|
||||
user: 'END USER OR ACCOUNT',
|
||||
version: 'VERSION',
|
||||
triggered_from: 'TRIGGER BY',
|
||||
},
|
||||
pagination: {
|
||||
previous: 'Prev',
|
||||
next: 'Next',
|
||||
},
|
||||
empty: {
|
||||
noChat: 'No conversation yet',
|
||||
noOutput: 'No output',
|
||||
element: {
|
||||
title: 'Is anyone there?',
|
||||
content: 'Observe and annotate interactions between end-users and AI applications here to continuously improve AI accuracy. You can try <shareLink>sharing</shareLink> or <testLink>testing</testLink> the Web App yourself, then return to this page.',
|
||||
},
|
||||
},
|
||||
},
|
||||
detail: {
|
||||
time: 'Time',
|
||||
conversationId: 'Conversation ID',
|
||||
promptTemplate: 'Prompt Template',
|
||||
promptTemplateBeforeChat: 'Prompt Template Before Chat · As System Message',
|
||||
annotationTip: 'Improvements Marked by {{user}}',
|
||||
timeConsuming: '',
|
||||
second: 's',
|
||||
tokenCost: 'Token spent',
|
||||
loading: 'loading',
|
||||
operation: {
|
||||
like: 'like',
|
||||
dislike: 'dislike',
|
||||
addAnnotation: 'Add Improvement',
|
||||
editAnnotation: 'Edit Improvement',
|
||||
annotationPlaceholder: 'Enter the expected answer that you want AI to reply, which can be used for model fine-tuning and continuous improvement of text generation quality in the future.',
|
||||
},
|
||||
variables: 'Variables',
|
||||
uploadImages: 'Uploaded Images',
|
||||
modelParams: 'Model parameters',
|
||||
},
|
||||
filter: {
|
||||
period: {
|
||||
today: 'Today',
|
||||
last7days: 'Last 7 Days',
|
||||
last30days: 'Last 30 Days',
|
||||
last4weeks: 'Last 4 weeks',
|
||||
last3months: 'Last 3 months',
|
||||
last12months: 'Last 12 months',
|
||||
monthToDate: 'Month to date',
|
||||
quarterToDate: 'Quarter to date',
|
||||
yearToDate: 'Year to date',
|
||||
allTime: 'All time',
|
||||
custom: 'Custom',
|
||||
},
|
||||
annotation: {
|
||||
all: 'All',
|
||||
annotated: 'Annotated Improvements ({{count}} items)',
|
||||
not_annotated: 'Not Annotated',
|
||||
},
|
||||
sortBy: 'Sort by:',
|
||||
descending: 'descending',
|
||||
ascending: 'ascending',
|
||||
},
|
||||
workflowTitle: 'Workflow Logs',
|
||||
workflowSubtitle: 'The log recorded the operation of Automate.',
|
||||
runDetail: {
|
||||
title: 'Conversation Log',
|
||||
workflowTitle: 'Log Detail',
|
||||
fileListLabel: 'File Details',
|
||||
fileListDetail: 'Detail',
|
||||
testWithParams: 'Test With Params',
|
||||
},
|
||||
promptLog: 'Prompt Log',
|
||||
agentLog: 'Agent Log',
|
||||
viewLog: 'View Log',
|
||||
agentLogDetail: {
|
||||
agentMode: 'Agent Mode',
|
||||
toolUsed: 'Tool Used',
|
||||
iterations: 'Iterations',
|
||||
iteration: 'Iteration',
|
||||
finalProcessing: 'Final Processing',
|
||||
},
|
||||
triggerBy: {
|
||||
debugging: 'Debugging',
|
||||
appRun: 'WebApp',
|
||||
webhook: 'Webhook',
|
||||
schedule: 'Schedule',
|
||||
plugin: 'Plugin',
|
||||
ragPipelineRun: 'RAG Pipeline',
|
||||
ragPipelineDebugging: 'RAG Debugging',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
189
dify/web/i18n/en-US/app-overview.ts
Normal file
189
dify/web/i18n/en-US/app-overview.ts
Normal file
@@ -0,0 +1,189 @@
|
||||
const translation = {
|
||||
welcome: {
|
||||
firstStepTip: 'To get started,',
|
||||
enterKeyTip: 'enter your OpenAI API Key below',
|
||||
getKeyTip: 'Get your API Key from OpenAI dashboard',
|
||||
placeholder: 'Your OpenAI API Key (eg.sk-xxxx)',
|
||||
},
|
||||
apiKeyInfo: {
|
||||
cloud: {
|
||||
trial: {
|
||||
title: 'You are using the {{providerName}} trial quota.',
|
||||
description: 'The trial quota is provided for your testing purposes. Before the trial quota is exhausted, please set up your own model provider or purchase additional quota.',
|
||||
},
|
||||
exhausted: {
|
||||
title: 'Your trial quota have been used up, please set up your APIKey.',
|
||||
description: 'You have exhausted your trial quota. Please set up your own model provider or purchase additional quota.',
|
||||
},
|
||||
},
|
||||
selfHost: {
|
||||
title: {
|
||||
row1: 'To get started,',
|
||||
row2: 'setup your model provider first.',
|
||||
},
|
||||
},
|
||||
callTimes: 'Call times',
|
||||
usedToken: 'Used token',
|
||||
setAPIBtn: 'Go to setup model provider',
|
||||
tryCloud: 'Or try the cloud version of Dify with free quote',
|
||||
},
|
||||
overview: {
|
||||
title: 'Overview',
|
||||
appInfo: {
|
||||
title: 'Web App',
|
||||
explanation: 'Ready-to-use AI web app',
|
||||
accessibleAddress: 'Public URL',
|
||||
preview: 'Preview',
|
||||
launch: 'Launch',
|
||||
regenerate: 'Regenerate',
|
||||
regenerateNotice: 'Do you want to regenerate the public URL?',
|
||||
preUseReminder: 'Please enable web app before continuing.',
|
||||
enableTooltip: {
|
||||
description: 'To enable this feature, please add a User Input node to the canvas. (May already exist in draft, takes effect after publishing)',
|
||||
learnMore: 'Learn more',
|
||||
},
|
||||
settings: {
|
||||
entry: 'Settings',
|
||||
title: 'Web App Settings',
|
||||
modalTip: 'Client-side web app settings. ',
|
||||
webName: 'web app Name',
|
||||
webDesc: 'web app Description',
|
||||
webDescTip: 'This text will be displayed on the client side, providing basic guidance on how to use the application',
|
||||
webDescPlaceholder: 'Enter the description of the web app',
|
||||
language: 'Language',
|
||||
workflow: {
|
||||
title: 'Workflow',
|
||||
subTitle: 'Workflow Details',
|
||||
show: 'Show',
|
||||
hide: 'Hide',
|
||||
showDesc: 'Show or hide workflow details in web app',
|
||||
},
|
||||
chatColorTheme: 'Chat color theme',
|
||||
chatColorThemeDesc: 'Set the color theme of the chatbot',
|
||||
chatColorThemeInverted: 'Inverted',
|
||||
invalidHexMessage: 'Invalid hex value',
|
||||
invalidPrivacyPolicy: 'Invalid privacy policy link. Please use a valid link that starts with http or https',
|
||||
sso: {
|
||||
label: 'SSO Enforcement',
|
||||
title: 'web app SSO',
|
||||
description: 'All users are required to login with SSO before using web app',
|
||||
tooltip: 'Contact the administrator to enable web app SSO',
|
||||
},
|
||||
more: {
|
||||
entry: 'Show more settings',
|
||||
copyright: 'Copyright',
|
||||
copyrightTip: 'Display copyright information in the web app',
|
||||
copyrightTooltip: 'Please upgrade to Professional plan or above',
|
||||
copyRightPlaceholder: 'Enter the name of the author or organization',
|
||||
privacyPolicy: 'Privacy Policy',
|
||||
privacyPolicyPlaceholder: 'Enter the privacy policy link',
|
||||
privacyPolicyTip: 'Helps visitors understand the data the application collects, see Dify\'s <privacyPolicyLink>Privacy Policy</privacyPolicyLink>.',
|
||||
customDisclaimer: 'Custom Disclaimer',
|
||||
customDisclaimerPlaceholder: 'Enter the custom disclaimer text',
|
||||
customDisclaimerTip: 'Custom disclaimer text will be displayed on the client side, providing additional information about the application',
|
||||
},
|
||||
},
|
||||
embedded: {
|
||||
entry: 'Embedded',
|
||||
title: 'Embed on website',
|
||||
explanation: 'Choose the way to embed chat app to your website',
|
||||
iframe: 'To add the chat app any where on your website, add this iframe to your html code.',
|
||||
scripts: 'To add a chat app to the bottom right of your website add this code to your html.',
|
||||
chromePlugin: 'Install Dify Chatbot Chrome Extension',
|
||||
copied: 'Copied',
|
||||
copy: 'Copy',
|
||||
},
|
||||
qrcode: {
|
||||
title: 'Link QR Code',
|
||||
scan: 'Scan To Share',
|
||||
download: 'Download QR Code',
|
||||
},
|
||||
customize: {
|
||||
way: 'way',
|
||||
entry: 'Customize',
|
||||
title: 'Customize AI web app',
|
||||
explanation: 'You can customize the frontend of the Web App to fit your scenario and style needs.',
|
||||
way1: {
|
||||
name: 'Fork the client code, modify it and deploy to Vercel (recommended)',
|
||||
step1: 'Fork the client code and modify it',
|
||||
step1Tip: 'Click here to fork the source code into your GitHub account and modify the code',
|
||||
step1Operation: 'Dify-WebClient',
|
||||
step2: 'Deploy to Vercel',
|
||||
step2Tip: 'Click here to import the repository into Vercel and deploy',
|
||||
step2Operation: 'Import repository',
|
||||
step3: 'Configure environment variables',
|
||||
step3Tip: 'Add the following environment variables in Vercel',
|
||||
},
|
||||
way2: {
|
||||
name: 'Write client-side code to call the API and deploy it to a server',
|
||||
operation: 'Documentation',
|
||||
},
|
||||
},
|
||||
},
|
||||
apiInfo: {
|
||||
title: 'Backend Service API',
|
||||
explanation: 'Easily integrated into your application',
|
||||
accessibleAddress: 'Service API Endpoint',
|
||||
doc: 'API Reference',
|
||||
},
|
||||
triggerInfo: {
|
||||
title: 'Triggers',
|
||||
explanation: 'Workflow trigger management',
|
||||
triggersAdded: '{{count}} Triggers added',
|
||||
noTriggerAdded: 'No trigger added',
|
||||
triggerStatusDescription: 'Trigger node status appears here. (May already exist in draft, takes effect after publishing)',
|
||||
learnAboutTriggers: 'Learn about Triggers',
|
||||
},
|
||||
status: {
|
||||
running: 'In Service',
|
||||
disable: 'Disabled',
|
||||
},
|
||||
disableTooltip: {
|
||||
triggerMode: 'The {{feature}} feature is not supported in Trigger Node mode.',
|
||||
},
|
||||
},
|
||||
analysis: {
|
||||
title: 'Analysis',
|
||||
ms: 'ms',
|
||||
tokenPS: 'Token/s',
|
||||
totalMessages: {
|
||||
title: 'Total Messages',
|
||||
explanation: 'Daily AI interactions count.',
|
||||
},
|
||||
totalConversations: {
|
||||
title: 'Total Conversations',
|
||||
explanation: 'Daily AI conversations count; prompt engineering/debugging excluded.',
|
||||
},
|
||||
activeUsers: {
|
||||
title: 'Active Users',
|
||||
explanation: 'Unique users engaging in Q&A with AI; prompt engineering/debugging excluded.',
|
||||
},
|
||||
tokenUsage: {
|
||||
title: 'Token Usage',
|
||||
explanation: 'Reflects the daily token usage of the language model for the application, useful for cost control purposes.',
|
||||
consumed: 'Consumed',
|
||||
},
|
||||
avgSessionInteractions: {
|
||||
title: 'Avg. Session Interactions',
|
||||
explanation: 'Continuous user-AI communication count; for conversation-based apps.',
|
||||
},
|
||||
avgUserInteractions: {
|
||||
title: 'Avg. User Interactions',
|
||||
explanation: 'Reflects the daily usage frequency of users. This metric reflects user stickiness.',
|
||||
},
|
||||
userSatisfactionRate: {
|
||||
title: 'User Satisfaction Rate',
|
||||
explanation: 'The number of likes per 1,000 messages. This indicates the proportion of answers that users are highly satisfied with.',
|
||||
},
|
||||
avgResponseTime: {
|
||||
title: 'Avg. Response Time',
|
||||
explanation: 'Time (ms) for AI to process/respond; for text-based apps.',
|
||||
},
|
||||
tps: {
|
||||
title: 'Token Output Speed',
|
||||
explanation: 'Measure the performance of the LLM. Count the Tokens output speed of LLM from the beginning of the request to the completion of the output.',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
349
dify/web/i18n/en-US/app.ts
Normal file
349
dify/web/i18n/en-US/app.ts
Normal file
@@ -0,0 +1,349 @@
|
||||
const translation = {
|
||||
createApp: 'CREATE APP',
|
||||
types: {
|
||||
all: 'All',
|
||||
chatbot: 'Chatbot',
|
||||
agent: 'Agent',
|
||||
workflow: 'Workflow',
|
||||
completion: 'Completion',
|
||||
advanced: 'Chatflow',
|
||||
basic: 'Basic',
|
||||
},
|
||||
duplicate: 'Duplicate',
|
||||
mermaid: {
|
||||
handDrawn: 'Hand Drawn',
|
||||
classic: 'Classic',
|
||||
},
|
||||
duplicateTitle: 'Duplicate App',
|
||||
export: 'Export DSL',
|
||||
exportFailed: 'Export DSL failed.',
|
||||
importDSL: 'Import DSL file',
|
||||
createFromConfigFile: 'Create from DSL file',
|
||||
importFromDSL: 'Import from DSL',
|
||||
importFromDSLFile: 'From DSL file',
|
||||
importFromDSLUrl: 'From URL',
|
||||
importFromDSLUrlPlaceholder: 'Paste DSL link here',
|
||||
dslUploader: {
|
||||
button: 'Drag and drop file, or',
|
||||
browse: 'Browse',
|
||||
},
|
||||
deleteAppConfirmTitle: 'Delete this app?',
|
||||
deleteAppConfirmContent:
|
||||
'Deleting the app is irreversible. Users will no longer be able to access your app, and all prompt configurations and logs will be permanently deleted.',
|
||||
appDeleted: 'App deleted',
|
||||
appDeleteFailed: 'Failed to delete app',
|
||||
join: 'Join the community',
|
||||
communityIntro:
|
||||
'Discuss with team members, contributors and developers on different channels.',
|
||||
roadmap: 'See our roadmap',
|
||||
newApp: {
|
||||
learnMore: 'Learn more',
|
||||
startFromBlank: 'Create from Blank',
|
||||
startFromTemplate: 'Create from Template',
|
||||
foundResult: '{{count}} Result',
|
||||
foundResults: '{{count}} Results',
|
||||
noAppsFound: 'No apps found',
|
||||
noTemplateFound: 'No templates found',
|
||||
noTemplateFoundTip: 'Try searching using different keywords.',
|
||||
chatbotShortDescription: 'LLM-based chatbot with simple setup',
|
||||
chatbotUserDescription: 'Quickly build an LLM-based chatbot with simple configuration. You can switch to Chatflow later.',
|
||||
completionShortDescription: 'AI assistant for text generation tasks',
|
||||
completionUserDescription: 'Quickly build an AI assistant for text generation tasks with simple configuration.',
|
||||
agentShortDescription: 'Intelligent agent with reasoning and autonomous tool use',
|
||||
agentUserDescription: 'An intelligent agent capable of iterative reasoning and autonomous tool use to achieve task goals.',
|
||||
workflowShortDescription: 'Agentic flow for intelligent automations',
|
||||
workflowUserDescription: 'Visually build autonomous AI workflows with drag-and-drop simplicity.',
|
||||
workflowWarning: 'Currently in beta',
|
||||
advancedShortDescription: 'Workflow enhanced for multi-turn chats',
|
||||
advancedUserDescription: 'Workflow with additional memory features and a chatbot interface.',
|
||||
chooseAppType: 'Choose an App Type',
|
||||
forBeginners: 'More basic app types',
|
||||
forAdvanced: 'FOR ADVANCED USERS',
|
||||
noIdeaTip: 'No ideas? Check out our templates',
|
||||
captionName: 'App Name & Icon',
|
||||
appNamePlaceholder: 'Give your app a name',
|
||||
captionDescription: 'Description',
|
||||
optional: 'Optional',
|
||||
appDescriptionPlaceholder: 'Enter the description of the app',
|
||||
useTemplate: 'Use this template',
|
||||
previewDemo: 'Preview demo',
|
||||
chatApp: 'Assistant',
|
||||
chatAppIntro:
|
||||
'I want to build a chat-based application. This app uses a question-and-answer format, allowing for multiple rounds of continuous conversation.',
|
||||
agentAssistant: 'New Agent Assistant',
|
||||
completeApp: 'Text Generator',
|
||||
completeAppIntro:
|
||||
'I want to create an application that generates high-quality text based on prompts, such as generating articles, summaries, translations, and more.',
|
||||
showTemplates: 'I want to choose from a template',
|
||||
hideTemplates: 'Go back to mode selection',
|
||||
Create: 'Create',
|
||||
Cancel: 'Cancel',
|
||||
Confirm: 'Confirm',
|
||||
import: 'Import',
|
||||
nameNotEmpty: 'Name cannot be empty',
|
||||
appTemplateNotSelected: 'Please select a template',
|
||||
appTypeRequired: 'Please select an app type',
|
||||
appCreated: 'App created',
|
||||
caution: 'Caution',
|
||||
appCreateDSLWarning: 'Caution: DSL version difference may affect certain features',
|
||||
appCreateDSLErrorTitle: 'Version Incompatibility',
|
||||
appCreateDSLErrorPart1: 'A significant difference in DSL versions has been detected. Forcing the import may cause the application to malfunction.',
|
||||
appCreateDSLErrorPart2: 'Do you want to continue?',
|
||||
appCreateDSLErrorPart3: 'Current application DSL version: ',
|
||||
appCreateDSLErrorPart4: 'System-supported DSL version: ',
|
||||
appCreateFailed: 'Failed to create app',
|
||||
dropDSLToCreateApp: 'Drop DSL file here to create app',
|
||||
},
|
||||
newAppFromTemplate: {
|
||||
byCategories: 'BY CATEGORIES',
|
||||
searchAllTemplate: 'Search all templates...',
|
||||
sidebar: {
|
||||
Recommended: 'Recommended',
|
||||
Agent: 'Agent',
|
||||
Assistant: 'Assistant',
|
||||
HR: 'HR',
|
||||
Workflow: 'Workflow',
|
||||
Writing: 'Writing',
|
||||
Programming: 'Programming',
|
||||
},
|
||||
},
|
||||
editApp: 'Edit Info',
|
||||
editAppTitle: 'Edit App Info',
|
||||
editDone: 'App info updated',
|
||||
editFailed: 'Failed to update app info',
|
||||
iconPicker: {
|
||||
ok: 'OK',
|
||||
cancel: 'Cancel',
|
||||
emoji: 'Emoji',
|
||||
image: 'Image',
|
||||
},
|
||||
answerIcon: {
|
||||
title: 'Use web app icon to replace 🤖',
|
||||
description: 'Whether to use the web app icon to replace 🤖 in the shared application',
|
||||
descriptionInExplore: 'Whether to use the web app icon to replace 🤖 in Explore',
|
||||
},
|
||||
switch: 'Switch to Workflow Orchestrate',
|
||||
switchTipStart: 'A new app copy will be created for you, and the new copy will switch to Workflow Orchestrate. The new copy will ',
|
||||
switchTip: 'not allow',
|
||||
switchTipEnd: ' switching back to Basic Orchestrate.',
|
||||
switchLabel: 'The app copy to be created',
|
||||
removeOriginal: 'Delete the original app',
|
||||
switchStart: 'Start switch',
|
||||
openInExplore: 'Open in Explore',
|
||||
typeSelector: {
|
||||
all: 'All Types ',
|
||||
chatbot: 'Chatbot',
|
||||
agent: 'Agent',
|
||||
workflow: 'Workflow',
|
||||
completion: 'Completion',
|
||||
advanced: 'Chatflow',
|
||||
},
|
||||
tracing: {
|
||||
title: 'Tracing app performance',
|
||||
description: 'Configuring a Third-Party LLMOps provider and tracing app performance.',
|
||||
config: 'Config',
|
||||
view: 'View',
|
||||
collapse: 'Collapse',
|
||||
expand: 'Expand',
|
||||
tracing: 'Tracing',
|
||||
disabled: 'Disabled',
|
||||
disabledTip: 'Please config provider first',
|
||||
enabled: 'In Service',
|
||||
tracingDescription: 'Capture the full context of app execution, including LLM calls, context, prompts, HTTP requests, and more, to a third-party tracing platform.',
|
||||
configProviderTitle: {
|
||||
configured: 'Configured',
|
||||
notConfigured: 'Config provider to enable tracing',
|
||||
moreProvider: 'More Provider',
|
||||
},
|
||||
arize: {
|
||||
title: 'Arize',
|
||||
description: 'Enterprise-grade LLM observability, online & offline evaluation, monitoring, and experimentation—powered by OpenTelemetry. Purpose-built for LLM & agent-driven applications.',
|
||||
},
|
||||
phoenix: {
|
||||
title: 'Phoenix',
|
||||
description: 'Open-source & OpenTelemetry-based observability, evaluation, prompt engineering and experimentation platform for your LLM workflows and agents.',
|
||||
},
|
||||
langsmith: {
|
||||
title: 'LangSmith',
|
||||
description: 'An all-in-one developer platform for every step of the LLM-powered application lifecycle.',
|
||||
},
|
||||
langfuse: {
|
||||
title: 'Langfuse',
|
||||
description: 'Open-source LLM observability, evaluation, prompt management and metrics to debug and improve your LLM application.',
|
||||
},
|
||||
opik: {
|
||||
title: 'Opik',
|
||||
description: 'Opik is an open-source platform for evaluating, testing, and monitoring LLM applications.',
|
||||
},
|
||||
weave: {
|
||||
title: 'Weave',
|
||||
description: 'Weave is an open-source platform for evaluating, testing, and monitoring LLM applications.',
|
||||
},
|
||||
aliyun: {
|
||||
title: 'Cloud Monitor',
|
||||
description: 'The fully-managed and maintenance-free observability platform provided by Alibaba Cloud, enables out-of-the-box monitoring, tracing, and evaluation of Dify applications.',
|
||||
},
|
||||
mlflow: {
|
||||
title: 'MLflow',
|
||||
description: 'MLflow is an open-source platform for experiment management, evaluation, and monitoring of LLM applications.',
|
||||
},
|
||||
databricks: {
|
||||
title: 'Databricks',
|
||||
description: 'Databricks offers fully-managed MLflow with strong governance and security for storing trace data.',
|
||||
},
|
||||
tencent: {
|
||||
title: 'Tencent APM',
|
||||
description: 'Tencent Application Performance Monitoring provides comprehensive tracing and multi-dimensional analysis for LLM applications.',
|
||||
},
|
||||
inUse: 'In use',
|
||||
configProvider: {
|
||||
title: 'Config ',
|
||||
placeholder: 'Enter your {{key}}',
|
||||
project: 'Project',
|
||||
trackingUri: 'Tracking URI',
|
||||
experimentId: 'Experiment ID',
|
||||
username: 'Username',
|
||||
password: 'Password',
|
||||
publicKey: 'Public Key',
|
||||
secretKey: 'Secret Key',
|
||||
viewDocsLink: 'View {{key}} docs',
|
||||
removeConfirmTitle: 'Remove {{key}} configuration?',
|
||||
removeConfirmContent: 'The current configuration is in use, removing it will turn off the Tracing feature.',
|
||||
clientId: 'OAuth Client ID',
|
||||
clientSecret: 'OAuth Client Secret',
|
||||
personalAccessToken: 'Personal Access Token (legacy)',
|
||||
databricksHost: 'Databricks Workspace URL',
|
||||
},
|
||||
},
|
||||
appSelector: {
|
||||
label: 'APP',
|
||||
placeholder: 'Select an app...',
|
||||
params: 'APP PARAMETERS',
|
||||
noParams: 'No parameters needed',
|
||||
},
|
||||
showMyCreatedAppsOnly: 'Created by me',
|
||||
structOutput: {
|
||||
moreFillTip: 'Showing max 10 levels of nesting',
|
||||
required: 'Required',
|
||||
LLMResponse: 'LLM Response',
|
||||
configure: 'Configure',
|
||||
notConfiguredTip: 'Structured output has not been configured yet',
|
||||
structured: 'Structured',
|
||||
structuredTip: 'Structured Outputs is a feature that ensures the model will always generate responses that adhere to your supplied JSON Schema',
|
||||
modelNotSupported: 'Model not supported',
|
||||
modelNotSupportedTip: 'The current model does not support this feature and is automatically downgraded to prompt injection.',
|
||||
},
|
||||
accessControl: 'Web App Access Control',
|
||||
accessItemsDescription: {
|
||||
anyone: 'Anyone can access the web app (no login required)',
|
||||
specific: 'Only specific members within the platform can access the web app',
|
||||
organization: 'All members within the platform can access the web app',
|
||||
external: 'Only authenticated external users can access the web app',
|
||||
},
|
||||
accessControlDialog: {
|
||||
title: 'Web App Access Control',
|
||||
description: 'Set web app access permissions',
|
||||
accessLabel: 'Who has access',
|
||||
accessItems: {
|
||||
anyone: 'Anyone with the link',
|
||||
specific: 'Specific members within the platform',
|
||||
organization: 'All members within the platform',
|
||||
external: 'Authenticated external users',
|
||||
},
|
||||
groups_one: '{{count}} GROUP',
|
||||
groups_other: '{{count}} GROUPS',
|
||||
members_one: '{{count}} MEMBER',
|
||||
members_other: '{{count}} MEMBERS',
|
||||
noGroupsOrMembers: 'No groups or members selected',
|
||||
webAppSSONotEnabledTip: 'Please contact your organization administrator to configure external authentication for the web app.',
|
||||
operateGroupAndMember: {
|
||||
searchPlaceholder: 'Search groups and members',
|
||||
allMembers: 'All members',
|
||||
expand: 'Expand',
|
||||
noResult: 'No result',
|
||||
},
|
||||
updateSuccess: 'Update successfully',
|
||||
},
|
||||
publishApp: {
|
||||
title: 'Who can access web app',
|
||||
notSet: 'Not set',
|
||||
notSetDesc: 'Currently nobody can access the web app. Please set permissions.',
|
||||
},
|
||||
noAccessPermission: 'No permission to access web app',
|
||||
noUserInputNode: 'Missing user input node',
|
||||
notPublishedYet: 'App is not published yet',
|
||||
maxActiveRequests: 'Max concurrent requests',
|
||||
maxActiveRequestsPlaceholder: 'Enter 0 for unlimited',
|
||||
maxActiveRequestsTip: 'Maximum number of concurrent active requests per app (0 for unlimited)',
|
||||
gotoAnything: {
|
||||
searchPlaceholder: 'Search or type @ or / for commands...',
|
||||
searchTitle: 'Search for anything',
|
||||
searching: 'Searching...',
|
||||
noResults: 'No results found',
|
||||
searchFailed: 'Search failed',
|
||||
searchTemporarilyUnavailable: 'Search temporarily unavailable',
|
||||
servicesUnavailableMessage: 'Some search services may be experiencing issues. Try again in a moment.',
|
||||
someServicesUnavailable: 'Some search services unavailable',
|
||||
resultCount: '{{count}} result',
|
||||
resultCount_other: '{{count}} results',
|
||||
inScope: 'in {{scope}}s',
|
||||
clearToSearchAll: 'Clear @ to search all',
|
||||
useAtForSpecific: 'Use @ for specific types',
|
||||
selectToNavigate: 'Select to navigate',
|
||||
startTyping: 'Start typing to search',
|
||||
tips: 'Press ↑↓ to navigate',
|
||||
pressEscToClose: 'Press ESC to close',
|
||||
selectSearchType: 'Choose what to search for',
|
||||
searchHint: 'Start typing to search everything instantly',
|
||||
commandHint: 'Type @ to browse by category',
|
||||
slashHint: 'Type / to see all available commands',
|
||||
actions: {
|
||||
searchApplications: 'Search Applications',
|
||||
searchApplicationsDesc: 'Search and navigate to your applications',
|
||||
searchPlugins: 'Search Plugins',
|
||||
searchPluginsDesc: 'Search and navigate to your plugins',
|
||||
searchKnowledgeBases: 'Search Knowledge Bases',
|
||||
searchKnowledgeBasesDesc: 'Search and navigate to your knowledge bases',
|
||||
searchWorkflowNodes: 'Search Workflow Nodes',
|
||||
searchWorkflowNodesDesc: 'Find and jump to nodes in the current workflow by name or type',
|
||||
searchWorkflowNodesHelp: 'This feature only works when viewing a workflow. Navigate to a workflow first.',
|
||||
runTitle: 'Commands',
|
||||
runDesc: 'Run quick commands (theme, language, ...)',
|
||||
themeCategoryTitle: 'Theme',
|
||||
themeCategoryDesc: 'Switch application theme',
|
||||
themeSystem: 'System Theme',
|
||||
themeSystemDesc: 'Follow your OS appearance',
|
||||
themeLight: 'Light Theme',
|
||||
themeLightDesc: 'Use light appearance',
|
||||
themeDark: 'Dark Theme',
|
||||
themeDarkDesc: 'Use dark appearance',
|
||||
languageCategoryTitle: 'Language',
|
||||
languageCategoryDesc: 'Switch interface language',
|
||||
languageChangeDesc: 'Change UI language',
|
||||
slashDesc: 'Execute commands (type / to see all available commands)',
|
||||
accountDesc: 'Navigate to account page',
|
||||
communityDesc: 'Open Discord community',
|
||||
docDesc: 'Open help documentation',
|
||||
feedbackDesc: 'Open community feedback discussions',
|
||||
},
|
||||
emptyState: {
|
||||
noAppsFound: 'No apps found',
|
||||
noPluginsFound: 'No plugins found',
|
||||
noKnowledgeBasesFound: 'No knowledge bases found',
|
||||
noWorkflowNodesFound: 'No workflow nodes found',
|
||||
tryDifferentTerm: 'Try a different search term',
|
||||
trySpecificSearch: 'Try {{shortcuts}} for specific searches',
|
||||
},
|
||||
groups: {
|
||||
apps: 'Apps',
|
||||
plugins: 'Plugins',
|
||||
knowledgeBases: 'Knowledge Bases',
|
||||
workflowNodes: 'Workflow Nodes',
|
||||
commands: 'Commands',
|
||||
},
|
||||
noMatchingCommands: 'No matching commands found',
|
||||
tryDifferentSearch: 'Try a different search term',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
222
dify/web/i18n/en-US/billing.ts
Normal file
222
dify/web/i18n/en-US/billing.ts
Normal file
@@ -0,0 +1,222 @@
|
||||
const translation = {
|
||||
currentPlan: 'Current Plan',
|
||||
usagePage: {
|
||||
teamMembers: 'Team Members',
|
||||
buildApps: 'Build Apps',
|
||||
annotationQuota: 'Annotation Quota',
|
||||
documentsUploadQuota: 'Documents Upload Quota',
|
||||
vectorSpace: 'Knowledge Data Storage',
|
||||
vectorSpaceTooltip: 'Documents with the High Quality indexing mode will consume Knowledge Data Storage resources. When Knowledge Data Storage reaches the limit, new documents will not be uploaded.',
|
||||
triggerEvents: 'Trigger Events',
|
||||
perMonth: 'per month',
|
||||
resetsIn: 'Resets in {{count,number}} days',
|
||||
},
|
||||
teamMembers: 'Team Members',
|
||||
triggerLimitModal: {
|
||||
title: 'Upgrade to unlock more trigger events',
|
||||
description: 'You\'ve reached the limit of workflow event triggers for this plan.',
|
||||
dismiss: 'Dismiss',
|
||||
upgrade: 'Upgrade',
|
||||
usageTitle: 'TRIGGER EVENTS',
|
||||
},
|
||||
upgradeBtn: {
|
||||
plain: 'View Plan',
|
||||
encourage: 'Upgrade Now',
|
||||
encourageShort: 'Upgrade',
|
||||
},
|
||||
viewBilling: 'Manage billing and subscriptions',
|
||||
buyPermissionDeniedTip: 'Please contact your enterprise administrator to subscribe',
|
||||
plansCommon: {
|
||||
title: {
|
||||
plans: 'plans',
|
||||
description: 'Select the plan that best fits your team\'s needs.',
|
||||
},
|
||||
freeTrialTipPrefix: 'Sign up and get a ',
|
||||
freeTrialTip: 'free trial of 200 OpenAI calls. ',
|
||||
freeTrialTipSuffix: 'No credit card required',
|
||||
yearlyTip: 'Pay for 10 months, enjoy 1 Year!',
|
||||
mostPopular: 'Popular',
|
||||
cloud: 'Cloud Service',
|
||||
self: 'Self-Hosted',
|
||||
planRange: {
|
||||
monthly: 'Monthly',
|
||||
yearly: 'Yearly',
|
||||
},
|
||||
month: 'month',
|
||||
year: 'year',
|
||||
save: 'Save ',
|
||||
free: 'Free',
|
||||
annualBilling: 'Bill Annually Save {{percent}}%',
|
||||
taxTip: 'All subscription prices (monthly/annual) exclude applicable taxes (e.g., VAT, sales tax).',
|
||||
taxTipSecond: 'If your region has no applicable tax requirements, no tax will appear in your checkout, and you won’t be charged any additional fees for the entire subscription term.',
|
||||
comparePlanAndFeatures: 'Compare plans & features',
|
||||
priceTip: 'per workspace/',
|
||||
currentPlan: 'Current Plan',
|
||||
contractSales: 'Contact sales',
|
||||
contractOwner: 'Contact team manager',
|
||||
startForFree: 'Start for Free',
|
||||
startBuilding: 'Start Building',
|
||||
getStarted: 'Get Started',
|
||||
contactSales: 'Contact Sales',
|
||||
talkToSales: 'Talk to Sales',
|
||||
modelProviders: 'Support OpenAI/Anthropic/Llama2/Azure OpenAI/Hugging Face/Replicate',
|
||||
teamWorkspace: '{{count,number}} Team Workspace',
|
||||
teamMember_one: '{{count,number}} Team Member',
|
||||
teamMember_other: '{{count,number}} Team Members',
|
||||
annotationQuota: 'Annotation Quota',
|
||||
buildApps: '{{count,number}} Apps',
|
||||
documents: '{{count,number}} Knowledge Documents',
|
||||
documentsTooltip: 'Quota on the number of documents imported from the Knowledge Data Source.',
|
||||
vectorSpace: '{{size}} Knowledge Data Storage',
|
||||
vectorSpaceTooltip: 'Documents with the High Quality indexing mode will consume Knowledge Data Storage resources. When Knowledge Data Storage reaches the limit, new documents will not be uploaded.',
|
||||
documentsRequestQuota: '{{count,number}} Knowledge Request/min',
|
||||
documentsRequestQuotaTooltip: 'Specifies the total number of actions a workspace can perform per minute within the knowledge base, including dataset creation, deletion, updates, document uploads, modifications, archiving, and knowledge base queries. This metric is used to evaluate the performance of knowledge base requests. For example, if a Sandbox user performs 10 consecutive hit tests within one minute, their workspace will be temporarily restricted from performing the following actions for the next minute: dataset creation, deletion, updates, and document uploads or modifications. ',
|
||||
apiRateLimit: 'API Rate Limit',
|
||||
apiRateLimitUnit: '{{count,number}}',
|
||||
unlimitedApiRate: 'No Dify API Rate Limit',
|
||||
apiRateLimitTooltip: 'API Rate Limit applies to all requests made through the Dify API, including text generation, chat conversations, workflow executions, and document processing.',
|
||||
documentProcessingPriority: ' Document Processing',
|
||||
documentProcessingPriorityUpgrade: 'Process more data with higher accuracy at faster speeds.',
|
||||
priority: {
|
||||
'standard': 'Standard',
|
||||
'priority': 'Priority',
|
||||
'top-priority': 'Top Priority',
|
||||
},
|
||||
triggerEvents: {
|
||||
sandbox: '{{count,number}} Trigger Events',
|
||||
professional: '{{count,number}} Trigger Events/month',
|
||||
unlimited: 'Unlimited Trigger Events',
|
||||
tooltip: 'The number of events that automatically start workflows through Plugin, Schedule, or Webhook triggers.',
|
||||
},
|
||||
workflowExecution: {
|
||||
standard: 'Standard Workflow Execution',
|
||||
faster: 'Faster Workflow Execution',
|
||||
priority: 'Priority Workflow Execution',
|
||||
tooltip: 'Workflow execution queue priority and speed.',
|
||||
},
|
||||
startNodes: {
|
||||
limited: 'Up to {{count}} Triggers/workflow',
|
||||
unlimited: 'Unlimited Triggers/workflow',
|
||||
},
|
||||
logsHistory: '{{days}} Log history',
|
||||
customTools: 'Custom Tools',
|
||||
unavailable: 'Unavailable',
|
||||
days: 'Days',
|
||||
unlimited: 'Unlimited',
|
||||
support: 'Support',
|
||||
supportItems: {
|
||||
communityForums: 'Community forums',
|
||||
emailSupport: 'Email support',
|
||||
priorityEmail: 'Priority email & chat support',
|
||||
logoChange: 'Logo change',
|
||||
SSOAuthentication: 'SSO authentication',
|
||||
personalizedSupport: 'Personalized support',
|
||||
dedicatedAPISupport: 'Dedicated API support',
|
||||
customIntegration: 'Custom integration and support',
|
||||
ragAPIRequest: 'RAG API Requests',
|
||||
bulkUpload: 'Bulk upload documents',
|
||||
agentMode: 'Agent Mode',
|
||||
workflow: 'Workflow',
|
||||
llmLoadingBalancing: 'LLM Load Balancing',
|
||||
llmLoadingBalancingTooltip: 'Add multiple API keys to models, effectively bypassing the API rate limits. ',
|
||||
},
|
||||
comingSoon: 'Coming soon',
|
||||
member: 'Member',
|
||||
memberAfter: 'Member',
|
||||
messageRequest: {
|
||||
title: '{{count,number}} message credits',
|
||||
titlePerMonth: '{{count,number}} message credits/month',
|
||||
tooltip: 'Message credits are provided to help you easily try out different OpenAI models in Dify. Credits are consumed based on the model type. Once they’re used up, you can switch to your own OpenAI API key.',
|
||||
},
|
||||
annotatedResponse: {
|
||||
title: '{{count,number}} Annotation Quota Limits',
|
||||
tooltip: 'Manual editing and annotation of responses provides customizable high-quality question-answering abilities for apps. (Applicable only in Chat apps)',
|
||||
},
|
||||
ragAPIRequestTooltip: 'Refers to the number of API calls invoking only the knowledge base processing capabilities of Dify.',
|
||||
receiptInfo: 'Only team owner and team admin can subscribe and view billing information',
|
||||
},
|
||||
plans: {
|
||||
sandbox: {
|
||||
name: 'Sandbox',
|
||||
for: 'Free Trial of Core Capabilities',
|
||||
description: 'Try core features for free.',
|
||||
},
|
||||
professional: {
|
||||
name: 'Professional',
|
||||
for: 'For Independent Developers/Small Teams',
|
||||
description: 'For independent developers & small teams ready to build production AI applications.',
|
||||
},
|
||||
team: {
|
||||
name: 'Team',
|
||||
for: 'For Medium-sized Teams',
|
||||
description: 'For medium-sized teams requiring collaboration and higher throughput.',
|
||||
},
|
||||
community: {
|
||||
name: 'Community',
|
||||
for: 'For Individual Users, Small Teams, or Non-commercial Projects',
|
||||
description: 'For open-source enthusiasts, individual developers, and non-commercial projects',
|
||||
price: 'Free',
|
||||
btnText: 'Get Started',
|
||||
includesTitle: 'Free Features:',
|
||||
features: [
|
||||
'All Core Features Released Under the Public Repository',
|
||||
'Single Workspace',
|
||||
'Complies with Dify Open Source License',
|
||||
],
|
||||
},
|
||||
premium: {
|
||||
name: 'Premium',
|
||||
for: 'For Mid-sized Organizations and Teams',
|
||||
description: 'For Mid-sized organizations needing deployment flexibility and enhanced support',
|
||||
price: 'Scalable',
|
||||
priceTip: 'Based on Cloud Marketplace',
|
||||
btnText: 'Get Premium on',
|
||||
includesTitle: 'Everything from Community, plus:',
|
||||
comingSoon: 'Microsoft Azure & Google Cloud Support Coming Soon',
|
||||
features: [
|
||||
'Self-managed Reliability by Various Cloud Providers',
|
||||
'Single Workspace',
|
||||
'WebApp Logo & Branding Customization',
|
||||
'Priority Email & Chat Support',
|
||||
],
|
||||
},
|
||||
enterprise: {
|
||||
name: 'Enterprise',
|
||||
for: 'For large-sized Teams',
|
||||
description: 'For enterprise requiring organization-grade security, compliance, scalability, control and custom solutions',
|
||||
price: 'Custom',
|
||||
priceTip: 'Annual Billing Only',
|
||||
btnText: 'Contact Sales',
|
||||
includesTitle: 'Everything from <highlight>Premium</highlight>, plus:',
|
||||
features: [
|
||||
'Enterprise-grade Scalable Deployment Solutions',
|
||||
'Commercial License Authorization',
|
||||
'Exclusive Enterprise Features',
|
||||
'Multiple Workspaces & Enterprise Management',
|
||||
'SSO',
|
||||
'Negotiated SLAs by Dify Partners',
|
||||
'Advanced Security & Controls',
|
||||
'Updates and Maintenance by Dify Officially',
|
||||
'Professional Technical Support',
|
||||
],
|
||||
},
|
||||
},
|
||||
vectorSpace: {
|
||||
fullTip: 'Vector Space is full.',
|
||||
fullSolution: 'Upgrade your plan to get more space.',
|
||||
},
|
||||
apps: {
|
||||
fullTip1: 'Upgrade to create more apps',
|
||||
fullTip1des: 'You\'ve reached the limit of build apps on this plan',
|
||||
fullTip2: 'Plan limit reached',
|
||||
fullTip2des: 'It is recommended to clean up inactive applications to free up usage, or contact us.',
|
||||
contactUs: 'Contact us',
|
||||
},
|
||||
annotatedResponse: {
|
||||
fullTipLine1: 'Upgrade your plan to',
|
||||
fullTipLine2: 'annotate more conversations.',
|
||||
quotaTitle: 'Annotation Reply Quota',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
788
dify/web/i18n/en-US/common.ts
Normal file
788
dify/web/i18n/en-US/common.ts
Normal file
@@ -0,0 +1,788 @@
|
||||
const translation = {
|
||||
theme: {
|
||||
theme: 'Theme',
|
||||
light: 'light',
|
||||
dark: 'dark',
|
||||
auto: 'system',
|
||||
},
|
||||
api: {
|
||||
success: 'Success',
|
||||
actionSuccess: 'Action succeeded',
|
||||
saved: 'Saved',
|
||||
create: 'Created',
|
||||
remove: 'Removed',
|
||||
},
|
||||
operation: {
|
||||
create: 'Create',
|
||||
confirm: 'Confirm',
|
||||
cancel: 'Cancel',
|
||||
clear: 'Clear',
|
||||
save: 'Save',
|
||||
yes: 'Yes',
|
||||
no: 'No',
|
||||
deleteConfirmTitle: 'Delete?',
|
||||
confirmAction: 'Please confirm your action.',
|
||||
saveAndEnable: 'Save & Enable',
|
||||
edit: 'Edit',
|
||||
add: 'Add',
|
||||
added: 'Added',
|
||||
refresh: 'Restart',
|
||||
reset: 'Reset',
|
||||
search: 'Search',
|
||||
noSearchResults: 'No {{content}} were found',
|
||||
resetKeywords: 'Reset keywords',
|
||||
selectCount: '{{count}} Selected',
|
||||
searchCount: 'Find {{count}} {{content}}',
|
||||
noSearchCount: '0 {{content}}',
|
||||
change: 'Change',
|
||||
remove: 'Remove',
|
||||
send: 'Send',
|
||||
copy: 'Copy',
|
||||
copied: 'Copied',
|
||||
lineBreak: 'Line break',
|
||||
sure: 'I\'m sure',
|
||||
download: 'Download',
|
||||
downloadSuccess: 'Download Completed.',
|
||||
downloadFailed: 'Download failed. Please try again later.',
|
||||
viewDetails: 'View Details',
|
||||
delete: 'Delete',
|
||||
now: 'Now',
|
||||
deleteApp: 'Delete App',
|
||||
settings: 'Settings',
|
||||
setup: 'Setup',
|
||||
config: 'Config',
|
||||
getForFree: 'Get for free',
|
||||
reload: 'Reload',
|
||||
ok: 'OK',
|
||||
log: 'Log',
|
||||
learnMore: 'Learn More',
|
||||
params: 'Params',
|
||||
duplicate: 'Duplicate',
|
||||
rename: 'Rename',
|
||||
audioSourceUnavailable: 'AudioSource is unavailable',
|
||||
close: 'Close',
|
||||
copyImage: 'Copy Image',
|
||||
imageCopied: 'Image copied',
|
||||
zoomOut: 'Zoom Out',
|
||||
zoomIn: 'Zoom In',
|
||||
openInNewTab: 'Open in new tab',
|
||||
in: 'in',
|
||||
saveAndRegenerate: 'Save & Regenerate Child Chunks',
|
||||
view: 'View',
|
||||
viewMore: 'VIEW MORE',
|
||||
regenerate: 'Regenerate',
|
||||
submit: 'Submit',
|
||||
skip: 'Skip',
|
||||
format: 'Format',
|
||||
more: 'More',
|
||||
selectAll: 'Select All',
|
||||
deSelectAll: 'Deselect All',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} is required',
|
||||
urlError: 'url should start with http:// or https://',
|
||||
},
|
||||
placeholder: {
|
||||
input: 'Please enter',
|
||||
select: 'Please select',
|
||||
search: 'Search...',
|
||||
},
|
||||
noData: 'No data',
|
||||
label: {
|
||||
optional: '(optional)',
|
||||
},
|
||||
voice: {
|
||||
language: {
|
||||
zhHans: 'Chinese',
|
||||
zhHant: 'Traditional Chinese',
|
||||
enUS: 'English',
|
||||
deDE: 'German',
|
||||
frFR: 'French',
|
||||
esES: 'Spanish',
|
||||
itIT: 'Italian',
|
||||
thTH: 'Thai',
|
||||
idID: 'Indonesian',
|
||||
jaJP: 'Japanese',
|
||||
koKR: 'Korean',
|
||||
ptBR: 'Portuguese',
|
||||
ruRU: 'Russian',
|
||||
ukUA: 'Ukrainian',
|
||||
viVN: 'Vietnamese',
|
||||
plPL: 'Polish',
|
||||
roRO: 'Romanian',
|
||||
hiIN: 'Hindi',
|
||||
trTR: 'Türkçe',
|
||||
faIR: 'Farsi',
|
||||
},
|
||||
},
|
||||
unit: {
|
||||
char: 'chars',
|
||||
},
|
||||
actionMsg: {
|
||||
noModification: 'No modifications at the moment.',
|
||||
modifiedSuccessfully: 'Modified successfully',
|
||||
modifiedUnsuccessfully: 'Modified unsuccessfully',
|
||||
copySuccessfully: 'Copied successfully',
|
||||
paySucceeded: 'Payment succeeded',
|
||||
payCancelled: 'Payment cancelled',
|
||||
generatedSuccessfully: 'Generated successfully',
|
||||
generatedUnsuccessfully: 'Generated unsuccessfully',
|
||||
},
|
||||
model: {
|
||||
params: {
|
||||
temperature: 'Temperature',
|
||||
temperatureTip:
|
||||
'Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.',
|
||||
top_p: 'Top P',
|
||||
top_pTip:
|
||||
'Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered.',
|
||||
presence_penalty: 'Presence penalty',
|
||||
presence_penaltyTip:
|
||||
'How much to penalize new tokens based on whether they appear in the text so far.\nIncreases the model\'s likelihood to talk about new topics.',
|
||||
frequency_penalty: 'Frequency penalty',
|
||||
frequency_penaltyTip:
|
||||
'How much to penalize new tokens based on their existing frequency in the text so far.\nDecreases the model\'s likelihood to repeat the same line verbatim.',
|
||||
max_tokens: 'Max token',
|
||||
max_tokensTip:
|
||||
'Used to limit the maximum length of the reply, in tokens. \nLarger values may limit the space left for prompt words, chat logs, and Knowledge. \nIt is recommended to set it below two-thirds\ngpt-4-1106-preview, gpt-4-vision-preview max token (input 128k output 4k)',
|
||||
maxTokenSettingTip: 'Your max token setting is high, potentially limiting space for prompts, queries, and data. Consider setting it below 2/3.',
|
||||
setToCurrentModelMaxTokenTip: 'Max token is updated to the 80% maximum token of the current model {{maxToken}}.',
|
||||
stop_sequences: 'Stop sequences',
|
||||
stop_sequencesTip: 'Up to four sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.',
|
||||
stop_sequencesPlaceholder: 'Enter sequence and press Tab',
|
||||
},
|
||||
tone: {
|
||||
Creative: 'Creative',
|
||||
Balanced: 'Balanced',
|
||||
Precise: 'Precise',
|
||||
Custom: 'Custom',
|
||||
},
|
||||
addMoreModel: 'Go to settings to add more models',
|
||||
settingsLink: 'Model Provider Settings',
|
||||
capabilities: 'MultiModal Capabilities',
|
||||
},
|
||||
menus: {
|
||||
status: 'beta',
|
||||
explore: 'Explore',
|
||||
apps: 'Studio',
|
||||
appDetail: 'App Detail',
|
||||
account: 'Account',
|
||||
plugins: 'Plugins',
|
||||
exploreMarketplace: 'Explore Marketplace',
|
||||
pluginsTips: 'Integrate third-party plugins or create ChatGPT-compatible AI-Plugins.',
|
||||
datasets: 'Knowledge',
|
||||
datasetsTips: 'COMING SOON: Import your own text data or write data in real-time via Webhook for LLM context enhancement.',
|
||||
newApp: 'New App',
|
||||
newDataset: 'Create Knowledge',
|
||||
tools: 'Tools',
|
||||
},
|
||||
userProfile: {
|
||||
settings: 'Settings',
|
||||
contactUs: 'Contact Us',
|
||||
emailSupport: 'Email Support',
|
||||
workspace: 'Workspace',
|
||||
createWorkspace: 'Create Workspace',
|
||||
helpCenter: 'View Docs',
|
||||
support: 'Support',
|
||||
compliance: 'Compliance',
|
||||
forum: 'Forum',
|
||||
roadmap: 'Roadmap',
|
||||
github: 'GitHub',
|
||||
community: 'Community',
|
||||
about: 'About',
|
||||
logout: 'Log out',
|
||||
},
|
||||
compliance: {
|
||||
soc2Type1: 'SOC 2 Type I Report',
|
||||
soc2Type2: 'SOC 2 Type II Report',
|
||||
iso27001: 'ISO 27001:2022 Certification',
|
||||
gdpr: 'GDPR DPA',
|
||||
sandboxUpgradeTooltip: 'Only available with a Professional or Team plan.',
|
||||
professionalUpgradeTooltip: 'Only available with a Team plan or above.',
|
||||
},
|
||||
settings: {
|
||||
accountGroup: 'GENERAL',
|
||||
workplaceGroup: 'WORKSPACE',
|
||||
generalGroup: 'GENERAL',
|
||||
account: 'My account',
|
||||
members: 'Members',
|
||||
billing: 'Billing',
|
||||
integrations: 'Integrations',
|
||||
language: 'Language',
|
||||
provider: 'Model Provider',
|
||||
dataSource: 'Data Source',
|
||||
plugin: 'Plugins',
|
||||
apiBasedExtension: 'API Extension',
|
||||
},
|
||||
account: {
|
||||
account: 'Account',
|
||||
myAccount: 'My Account',
|
||||
studio: 'Studio',
|
||||
avatar: 'Avatar',
|
||||
name: 'Name',
|
||||
email: 'Email',
|
||||
password: 'Password',
|
||||
passwordTip: 'You can set a permanent password if you don’t want to use temporary login codes',
|
||||
setPassword: 'Set a password',
|
||||
resetPassword: 'Reset password',
|
||||
currentPassword: 'Current password',
|
||||
newPassword: 'New password',
|
||||
confirmPassword: 'Confirm password',
|
||||
notEqual: 'Two passwords are different.',
|
||||
langGeniusAccount: 'Account\'s data',
|
||||
langGeniusAccountTip: 'The user data of your account.',
|
||||
editName: 'Edit Name',
|
||||
showAppLength: 'Show {{length}} apps',
|
||||
delete: 'Delete Account',
|
||||
deleteTip: 'Please note, once confirmed, as the Owner of any Workspaces, your workspaces will be scheduled in a queue for permanent deletion, and all your user data will be queued for permanent deletion.',
|
||||
deletePrivacyLinkTip: 'For more information about how we handle your data, please see our ',
|
||||
deletePrivacyLink: 'Privacy Policy.',
|
||||
deleteSuccessTip: 'Your account needs time to finish deleting. We\'ll email you when it\'s all done.',
|
||||
deleteLabel: 'To confirm, please type in your email below',
|
||||
deletePlaceholder: 'Please enter your email',
|
||||
sendVerificationButton: 'Send Verification Code',
|
||||
verificationLabel: 'Verification Code',
|
||||
verificationPlaceholder: 'Paste the 6-digit code',
|
||||
permanentlyDeleteButton: 'Permanently Delete Account',
|
||||
feedbackTitle: 'Feedback',
|
||||
feedbackLabel: 'Tell us why you deleted your account?',
|
||||
feedbackPlaceholder: 'Optional',
|
||||
editWorkspaceInfo: 'Edit Workspace Info',
|
||||
workspaceName: 'Workspace Name',
|
||||
workspaceIcon: 'Workspace Icon',
|
||||
changeEmail: {
|
||||
title: 'Change Email',
|
||||
verifyEmail: 'Verify your current email',
|
||||
newEmail: 'Set up a new email address',
|
||||
verifyNew: 'Verify your new email',
|
||||
authTip: 'Once your email is changed, Google or GitHub accounts linked to your old email will no longer be able to log in to this account.',
|
||||
content1: 'If you continue, we\'ll send a verification code to <email>{{email}}</email> for re-authentication.',
|
||||
content2: 'Your current email is <email>{{email}}</email>. Verification code has been sent to this email address.',
|
||||
content3: 'Enter a new email and we will send you a verification code.',
|
||||
content4: 'We just sent you a temporary verification code to <email>{{email}}</email>.',
|
||||
codeLabel: 'Verification code',
|
||||
codePlaceholder: 'Paste the 6-digit code',
|
||||
emailLabel: 'New email',
|
||||
emailPlaceholder: 'Enter a new email',
|
||||
existingEmail: 'A user with this email already exists.',
|
||||
unAvailableEmail: 'This email is temporarily unavailable.',
|
||||
sendVerifyCode: 'Send verification code',
|
||||
continue: 'Continue',
|
||||
changeTo: 'Change to {{email}}',
|
||||
resendTip: 'Didn\'t receive a code?',
|
||||
resendCount: 'Resend in {{count}}s',
|
||||
resend: 'Resend',
|
||||
},
|
||||
},
|
||||
members: {
|
||||
team: 'Team',
|
||||
invite: 'Add',
|
||||
name: 'NAME',
|
||||
lastActive: 'LAST ACTIVE',
|
||||
role: 'ROLES',
|
||||
pending: 'Pending...',
|
||||
owner: 'Owner',
|
||||
admin: 'Admin',
|
||||
adminTip: 'Can build apps & manage team settings',
|
||||
normal: 'Normal',
|
||||
normalTip: 'Only can use apps, can not build apps',
|
||||
builder: 'Builder',
|
||||
builderTip: 'Can build & edit own apps',
|
||||
editor: 'Editor',
|
||||
editorTip: 'Can build & edit apps',
|
||||
datasetOperator: 'Knowledge Admin',
|
||||
datasetOperatorTip: 'Only can manage the knowledge base',
|
||||
inviteTeamMember: 'Add team member',
|
||||
inviteTeamMemberTip: 'They can access your team data directly after signing in.',
|
||||
emailNotSetup: 'Email server is not set up, so invitation emails cannot be sent. Please notify users of the invitation link that will be issued after invitation instead.',
|
||||
email: 'Email',
|
||||
emailInvalid: 'Invalid Email Format',
|
||||
emailPlaceholder: 'Please input emails',
|
||||
sendInvite: 'Send Invite',
|
||||
invitedAsRole: 'Invited as {{role}} user',
|
||||
invitationSent: 'Invitation sent',
|
||||
invitationSentTip: 'Invitation sent, and they can sign in to Dify to access your team data.',
|
||||
invitationLink: 'Invitation Link',
|
||||
failedInvitationEmails: 'Below users were not invited successfully',
|
||||
ok: 'OK',
|
||||
removeFromTeam: 'Remove from team',
|
||||
removeFromTeamTip: 'Will remove team access',
|
||||
setAdmin: 'Set as administrator',
|
||||
setMember: 'Set to ordinary member',
|
||||
setBuilder: 'Set as builder',
|
||||
setEditor: 'Set as editor',
|
||||
disInvite: 'Cancel the invitation',
|
||||
deleteMember: 'Delete Member',
|
||||
you: '(You)',
|
||||
transferOwnership: 'Transfer Ownership',
|
||||
transferModal: {
|
||||
title: 'Transfer workspace ownership',
|
||||
warning: 'You\'re about to transfer ownership of “{{workspace}}”. This takes effect immediately and can\'t be undone.',
|
||||
warningTip: 'You\'ll become an admin member, and the new owner will have full control.',
|
||||
sendTip: 'If you continue, we\'ll send a verification code to <email>{{email}}</email> for re-authentication.',
|
||||
verifyEmail: 'Verify your current email',
|
||||
verifyContent: 'Your current email is <email>{{email}}</email>.',
|
||||
verifyContent2: 'We\'ll send a temporary verification code to this email for re-authentication.',
|
||||
codeLabel: 'Verification code',
|
||||
codePlaceholder: 'Paste the 6-digit code',
|
||||
resendTip: 'Didn\'t receive a code?',
|
||||
resendCount: 'Resend in {{count}}s',
|
||||
resend: 'Resend',
|
||||
transferLabel: 'Transfer workspace ownership to',
|
||||
transferPlaceholder: 'Select a workspace member…',
|
||||
sendVerifyCode: 'Send verification code',
|
||||
continue: 'Continue',
|
||||
transfer: 'Transfer workspace ownership',
|
||||
},
|
||||
},
|
||||
feedback: {
|
||||
title: 'Provide Feedback',
|
||||
subtitle: 'Please tell us what went wrong with this response',
|
||||
content: 'Feedback Content',
|
||||
placeholder: 'Please describe what went wrong or how we can improve...',
|
||||
},
|
||||
integrations: {
|
||||
connected: 'Connected',
|
||||
google: 'Google',
|
||||
googleAccount: 'Login with Google account',
|
||||
github: 'GitHub',
|
||||
githubAccount: 'Login with GitHub account',
|
||||
connect: 'Connect',
|
||||
},
|
||||
language: {
|
||||
displayLanguage: 'Display Language',
|
||||
timezone: 'Time Zone',
|
||||
},
|
||||
provider: {
|
||||
apiKey: 'API Key',
|
||||
enterYourKey: 'Enter your API key here',
|
||||
invalidKey: 'Invalid OpenAI API key',
|
||||
validatedError: 'Validation failed: ',
|
||||
validating: 'Validating key...',
|
||||
saveFailed: 'Save api key failed',
|
||||
apiKeyExceedBill: 'This API KEY has no quota available, please read',
|
||||
addKey: 'Add Key',
|
||||
comingSoon: 'Coming Soon',
|
||||
editKey: 'Edit',
|
||||
invalidApiKey: 'Invalid API key',
|
||||
azure: {
|
||||
apiBase: 'API Base',
|
||||
apiBasePlaceholder: 'The API Base URL of your Azure OpenAI Endpoint.',
|
||||
apiKey: 'API Key',
|
||||
apiKeyPlaceholder: 'Enter your API key here',
|
||||
helpTip: 'Learn Azure OpenAI Service',
|
||||
},
|
||||
openaiHosted: {
|
||||
openaiHosted: 'Hosted OpenAI',
|
||||
onTrial: 'ON TRIAL',
|
||||
exhausted: 'QUOTA EXHAUSTED',
|
||||
desc: 'The OpenAI hosting service provided by Dify allows you to use models such as GPT-3.5. Before your trial quota is used up, you need to set up other model providers.',
|
||||
callTimes: 'Call times',
|
||||
usedUp: 'Trial quota used up. Add own Model Provider.',
|
||||
useYourModel: 'Currently using own Model Provider.',
|
||||
close: 'Close',
|
||||
},
|
||||
anthropicHosted: {
|
||||
anthropicHosted: 'Anthropic Claude',
|
||||
onTrial: 'ON TRIAL',
|
||||
exhausted: 'QUOTA EXHAUSTED',
|
||||
desc: 'Powerful model, which excels at a wide range of tasks from sophisticated dialogue and creative content generation to detailed instruction.',
|
||||
callTimes: 'Call times',
|
||||
usedUp: 'Trial quota used up. Add own Model Provider.',
|
||||
useYourModel: 'Currently using own Model Provider.',
|
||||
close: 'Close',
|
||||
trialQuotaTip: 'Your Anthropic trial quota will expire on 2025/03/17 and will no longer be available thereafter. Please make use of it in time.',
|
||||
},
|
||||
anthropic: {
|
||||
using: 'The embedding capability is using',
|
||||
enableTip: 'To enable the Anthropic model, you need to bind to OpenAI or Azure OpenAI Service first.',
|
||||
notEnabled: 'Not enabled',
|
||||
keyFrom: 'Get your API key from Anthropic',
|
||||
},
|
||||
encrypted: {
|
||||
front: 'Your API KEY will be encrypted and stored using',
|
||||
back: ' technology.',
|
||||
},
|
||||
},
|
||||
modelProvider: {
|
||||
notConfigured: 'The system model has not yet been fully configured',
|
||||
systemModelSettings: 'System Model Settings',
|
||||
systemModelSettingsLink: 'Why is it necessary to set up a system model?',
|
||||
selectModel: 'Select your model',
|
||||
setupModelFirst: 'Please set up your model first',
|
||||
systemReasoningModel: {
|
||||
key: 'System Reasoning Model',
|
||||
tip: 'Set the default inference model to be used for creating applications, as well as features such as dialogue name generation and next question suggestion will also use the default inference model.',
|
||||
},
|
||||
embeddingModel: {
|
||||
key: 'Embedding Model',
|
||||
tip: 'Set the default model for document embedding processing of the Knowledge, both retrieval and import of the Knowledge use this Embedding model for vectorization processing. Switching will cause the vector dimension between the imported Knowledge and the question to be inconsistent, resulting in retrieval failure. To avoid retrieval failure, please do not switch this model at will.',
|
||||
required: 'Embedding Model is required',
|
||||
},
|
||||
speechToTextModel: {
|
||||
key: 'Speech-to-Text Model',
|
||||
tip: 'Set the default model for speech-to-text input in conversation.',
|
||||
},
|
||||
ttsModel: {
|
||||
key: 'Text-to-Speech Model',
|
||||
tip: 'Set the default model for text-to-speech input in conversation.',
|
||||
},
|
||||
rerankModel: {
|
||||
key: 'Rerank Model',
|
||||
tip: 'Rerank model will reorder the candidate document list based on the semantic match with user query, improving the results of semantic ranking',
|
||||
},
|
||||
apiKey: 'API-KEY',
|
||||
quota: 'Quota',
|
||||
searchModel: 'Search model',
|
||||
noModelFound: 'No model found for {{model}}',
|
||||
models: 'Models',
|
||||
showMoreModelProvider: 'Show more model provider',
|
||||
selector: {
|
||||
tip: 'This model has been removed. Please add a model or select another model.',
|
||||
emptyTip: 'No available models',
|
||||
emptySetting: 'Please go to settings to configure',
|
||||
rerankTip: 'Please set up the Rerank model',
|
||||
},
|
||||
card: {
|
||||
quota: 'QUOTA',
|
||||
onTrial: 'On Trial',
|
||||
paid: 'Paid',
|
||||
quotaExhausted: 'Quota exhausted',
|
||||
callTimes: 'Call times',
|
||||
tokens: 'Tokens',
|
||||
buyQuota: 'Buy Quota',
|
||||
priorityUse: 'Priority use',
|
||||
removeKey: 'Remove API Key',
|
||||
tip: 'Priority will be given to the paid quota. The Trial quota will be used after the paid quota is exhausted.',
|
||||
},
|
||||
item: {
|
||||
deleteDesc: '{{modelName}} are being used as system reasoning models. Some functions will not be available after removal. Please confirm.',
|
||||
freeQuota: 'FREE QUOTA',
|
||||
},
|
||||
addApiKey: 'Add your API key',
|
||||
invalidApiKey: 'Invalid API key',
|
||||
encrypted: {
|
||||
front: 'Your API KEY will be encrypted and stored using',
|
||||
back: ' technology.',
|
||||
},
|
||||
freeQuota: {
|
||||
howToEarn: 'How to earn',
|
||||
},
|
||||
addMoreModelProvider: 'ADD MORE MODEL PROVIDER',
|
||||
addModel: 'Add Model',
|
||||
modelsNum: '{{num}} Models',
|
||||
showModels: 'Show Models',
|
||||
showModelsNum: 'Show {{num}} Models',
|
||||
collapse: 'Collapse',
|
||||
config: 'Config',
|
||||
modelAndParameters: 'Model and Parameters',
|
||||
model: 'Model',
|
||||
featureSupported: '{{feature}} supported',
|
||||
callTimes: 'Call times',
|
||||
credits: 'Message Credits',
|
||||
buyQuota: 'Buy Quota',
|
||||
getFreeTokens: 'Get free Tokens',
|
||||
priorityUsing: 'Prioritize using',
|
||||
deprecated: 'Deprecated',
|
||||
confirmDelete: 'Confirm deletion?',
|
||||
quotaTip: 'Remaining available free tokens',
|
||||
loadPresets: 'Load Presets',
|
||||
parameters: 'PARAMETERS',
|
||||
loadBalancing: 'Load balancing',
|
||||
loadBalancingDescription: 'Configure multiple credentials for the model and invoke them automatically. ',
|
||||
loadBalancingHeadline: 'Load Balancing',
|
||||
configLoadBalancing: 'Config Load Balancing',
|
||||
modelHasBeenDeprecated: 'This model has been deprecated',
|
||||
providerManaged: 'Provider managed',
|
||||
providerManagedDescription: 'Use the single set of credentials provided by the model provider.',
|
||||
defaultConfig: 'Default Config',
|
||||
apiKeyStatusNormal: 'APIKey status is normal',
|
||||
apiKeyRateLimit: 'Rate limit was reached, available after {{seconds}}s',
|
||||
addConfig: 'Add Config',
|
||||
editConfig: 'Edit Config',
|
||||
loadBalancingLeastKeyWarning: 'To enable load balancing at least 2 keys must be enabled.',
|
||||
loadBalancingInfo: 'By default, load balancing uses the Round-robin strategy. If rate limiting is triggered, a 1-minute cooldown period will be applied.',
|
||||
upgradeForLoadBalancing: 'Upgrade your plan to enable Load Balancing.',
|
||||
toBeConfigured: 'To be configured',
|
||||
configureTip: 'Set up api-key or add model to use',
|
||||
installProvider: 'Install model providers',
|
||||
installDataSourceProvider: 'Install data source providers',
|
||||
discoverMore: 'Discover more in ',
|
||||
emptyProviderTitle: 'Model provider not set up',
|
||||
emptyProviderTip: 'Please install a model provider first.',
|
||||
auth: {
|
||||
unAuthorized: 'Unauthorized',
|
||||
authRemoved: 'Auth removed',
|
||||
apiKeys: 'API Keys',
|
||||
addApiKey: 'Add API Key',
|
||||
addModel: 'Add model',
|
||||
addNewModel: 'Add new model',
|
||||
addCredential: 'Add credential',
|
||||
addModelCredential: 'Add model credential',
|
||||
editModelCredential: 'Edit model credential',
|
||||
modelCredentials: 'Model credentials',
|
||||
modelCredential: 'Model credential',
|
||||
configModel: 'Config model',
|
||||
configLoadBalancing: 'Config Load Balancing',
|
||||
authorizationError: 'Authorization error',
|
||||
specifyModelCredential: 'Specify model credential',
|
||||
specifyModelCredentialTip: 'Use a configured model credential.',
|
||||
providerManaged: 'Provider managed',
|
||||
providerManagedTip: 'The current configuration is hosted by the provider.',
|
||||
apiKeyModal: {
|
||||
title: 'API Key Authorization Configuration',
|
||||
desc: 'After configuring credentials, all members within the workspace can use this model when orchestrating applications.',
|
||||
addModel: 'Add model',
|
||||
},
|
||||
manageCredentials: 'Manage Credentials',
|
||||
customModelCredentials: 'Custom Model Credentials',
|
||||
addNewModelCredential: 'Add new model credential',
|
||||
removeModel: 'Remove Model',
|
||||
selectModelCredential: 'Select a model credential',
|
||||
customModelCredentialsDeleteTip: 'Credential is in use and cannot be deleted',
|
||||
},
|
||||
parametersInvalidRemoved: 'Some parameters are invalid and have been removed',
|
||||
},
|
||||
dataSource: {
|
||||
add: 'Add a data source',
|
||||
connect: 'Connect',
|
||||
configure: 'Configure',
|
||||
notion: {
|
||||
title: 'Notion',
|
||||
description: 'Using Notion as a data source for the Knowledge.',
|
||||
connectedWorkspace: 'Connected workspace',
|
||||
addWorkspace: 'Add workspace',
|
||||
connected: 'Connected',
|
||||
disconnected: 'Disconnected',
|
||||
changeAuthorizedPages: 'Change authorized pages',
|
||||
integratedAlert: 'Notion is integrated via internal credential, no need to re-authorize.',
|
||||
pagesAuthorized: 'Pages authorized',
|
||||
sync: 'Sync',
|
||||
remove: 'Remove',
|
||||
selector: {
|
||||
pageSelected: 'Pages Selected',
|
||||
searchPages: 'Search pages...',
|
||||
noSearchResult: 'No search results',
|
||||
addPages: 'Add pages',
|
||||
preview: 'PREVIEW',
|
||||
},
|
||||
},
|
||||
website: {
|
||||
title: 'Website',
|
||||
description: 'Import content from websites using web crawler.',
|
||||
with: 'With',
|
||||
configuredCrawlers: 'Configured crawlers',
|
||||
active: 'Active',
|
||||
inactive: 'Inactive',
|
||||
},
|
||||
},
|
||||
plugin: {
|
||||
serpapi: {
|
||||
apiKey: 'API Key',
|
||||
apiKeyPlaceholder: 'Enter your API key',
|
||||
keyFrom: 'Get your SerpAPI key from SerpAPI Account Page',
|
||||
},
|
||||
},
|
||||
apiBasedExtension: {
|
||||
title: 'API extensions provide centralized API management, simplifying configuration for easy use across Dify\'s applications.',
|
||||
link: 'Learn how to develop your own API Extension.',
|
||||
add: 'Add API Extension',
|
||||
selector: {
|
||||
title: 'API Extension',
|
||||
placeholder: 'Please select API extension',
|
||||
manage: 'Manage API Extension',
|
||||
},
|
||||
modal: {
|
||||
title: 'Add API Extension',
|
||||
editTitle: 'Edit API Extension',
|
||||
name: {
|
||||
title: 'Name',
|
||||
placeholder: 'Please enter the name',
|
||||
},
|
||||
apiEndpoint: {
|
||||
title: 'API Endpoint',
|
||||
placeholder: 'Please enter the API endpoint',
|
||||
},
|
||||
apiKey: {
|
||||
title: 'API-key',
|
||||
placeholder: 'Please enter the API-key',
|
||||
lengthError: 'API-key length cannot be less than 5 characters',
|
||||
},
|
||||
},
|
||||
type: 'Type',
|
||||
},
|
||||
about: {
|
||||
changeLog: 'Changelog',
|
||||
updateNow: 'Update now',
|
||||
nowAvailable: 'Dify {{version}} is now available.',
|
||||
latestAvailable: 'Dify {{version}} is the latest version available.',
|
||||
},
|
||||
appMenus: {
|
||||
overview: 'Monitoring',
|
||||
promptEng: 'Orchestrate',
|
||||
apiAccess: 'API Access',
|
||||
logAndAnn: 'Logs & Annotations',
|
||||
logs: 'Logs',
|
||||
},
|
||||
environment: {
|
||||
testing: 'TESTING',
|
||||
development: 'DEVELOPMENT',
|
||||
},
|
||||
appModes: {
|
||||
completionApp: 'Text Generator',
|
||||
chatApp: 'Chat App',
|
||||
},
|
||||
datasetMenus: {
|
||||
documents: 'Documents',
|
||||
hitTesting: 'Retrieval Testing',
|
||||
settings: 'Settings',
|
||||
emptyTip: 'This Knowledge has not been integrated within any application. Please refer to the document for guidance.',
|
||||
viewDoc: 'View documentation',
|
||||
relatedApp: 'linked apps',
|
||||
noRelatedApp: 'No linked apps',
|
||||
pipeline: 'Pipeline',
|
||||
},
|
||||
voiceInput: {
|
||||
speaking: 'Speak now...',
|
||||
converting: 'Converting to text...',
|
||||
notAllow: 'microphone not authorized',
|
||||
},
|
||||
modelName: {
|
||||
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
|
||||
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
|
||||
'gpt-4': 'GPT-4',
|
||||
'gpt-4-32k': 'GPT-4-32K',
|
||||
'text-davinci-003': 'Text-Davinci-003',
|
||||
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
|
||||
'whisper-1': 'Whisper-1',
|
||||
'claude-instant-1': 'Claude-Instant',
|
||||
'claude-2': 'Claude-2',
|
||||
},
|
||||
chat: {
|
||||
renameConversation: 'Rename Conversation',
|
||||
conversationName: 'Conversation name',
|
||||
conversationNamePlaceholder: 'Please input conversation name',
|
||||
conversationNameCanNotEmpty: 'Conversation name required',
|
||||
citation: {
|
||||
title: 'CITATIONS',
|
||||
linkToDataset: 'Link to Knowledge',
|
||||
characters: 'Characters:',
|
||||
hitCount: 'Retrieval count:',
|
||||
vectorHash: 'Vector hash:',
|
||||
hitScore: 'Retrieval Score:',
|
||||
},
|
||||
inputPlaceholder: 'Talk to {{botName}}',
|
||||
thinking: 'Thinking...',
|
||||
thought: 'Thought',
|
||||
resend: 'Resend',
|
||||
},
|
||||
promptEditor: {
|
||||
placeholder: 'Write your prompt word here, enter \'{\' to insert a variable, enter \'/\' to insert a prompt content block',
|
||||
context: {
|
||||
item: {
|
||||
title: 'Context',
|
||||
desc: 'Insert context template',
|
||||
},
|
||||
modal: {
|
||||
title: '{{num}} Knowledge in Context',
|
||||
add: 'Add Context ',
|
||||
footer: 'You can manage contexts in the Context section below.',
|
||||
},
|
||||
},
|
||||
history: {
|
||||
item: {
|
||||
title: 'Conversation History',
|
||||
desc: 'Insert historical message template',
|
||||
},
|
||||
modal: {
|
||||
title: 'EXAMPLE',
|
||||
user: 'Hello',
|
||||
assistant: 'Hello! How can I assist you today?',
|
||||
edit: 'Edit Conversation Role Names',
|
||||
},
|
||||
},
|
||||
variable: {
|
||||
item: {
|
||||
title: 'Variables & External Tools',
|
||||
desc: 'Insert Variables & External Tools',
|
||||
},
|
||||
outputToolDisabledItem: {
|
||||
title: 'Variables',
|
||||
desc: 'Insert Variables',
|
||||
},
|
||||
modal: {
|
||||
add: 'New variable',
|
||||
addTool: 'New tool',
|
||||
},
|
||||
},
|
||||
query: {
|
||||
item: {
|
||||
title: 'Query',
|
||||
desc: 'Insert user query template',
|
||||
},
|
||||
},
|
||||
existed: 'Already exists in the prompt',
|
||||
},
|
||||
imageUploader: {
|
||||
uploadFromComputer: 'Upload from Computer',
|
||||
uploadFromComputerReadError: 'Image reading failed, please try again.',
|
||||
uploadFromComputerUploadError: 'Image upload failed, please upload again.',
|
||||
uploadFromComputerLimit: 'Upload images cannot exceed {{size}} MB',
|
||||
pasteImageLink: 'Paste image link',
|
||||
pasteImageLinkInputPlaceholder: 'Paste image link here',
|
||||
pasteImageLinkInvalid: 'Invalid image link',
|
||||
imageUpload: 'Image Upload',
|
||||
},
|
||||
fileUploader: {
|
||||
uploadFromComputer: 'Local upload',
|
||||
pasteFileLink: 'Paste file link',
|
||||
pasteFileLinkInputPlaceholder: 'Enter URL...',
|
||||
uploadFromComputerReadError: 'File reading failed, please try again.',
|
||||
uploadFromComputerUploadError: 'File upload failed, please upload again.',
|
||||
uploadFromComputerLimit: 'Upload {{type}} cannot exceed {{size}}',
|
||||
pasteFileLinkInvalid: 'Invalid file link',
|
||||
fileExtensionNotSupport: 'File extension not supported',
|
||||
fileExtensionBlocked: 'This file type is blocked for security reasons',
|
||||
},
|
||||
tag: {
|
||||
placeholder: 'All Tags',
|
||||
addNew: 'Add new tag',
|
||||
noTag: 'No tags',
|
||||
noTagYet: 'No tags yet',
|
||||
addTag: 'Add tags',
|
||||
editTag: 'Edit tags',
|
||||
manageTags: 'Manage Tags',
|
||||
selectorPlaceholder: 'Type to search or create',
|
||||
create: 'Create',
|
||||
delete: 'Delete tag',
|
||||
deleteTip: 'The tag is being used, delete it?',
|
||||
created: 'Tag created successfully',
|
||||
failed: 'Tag creation failed',
|
||||
},
|
||||
license: {
|
||||
expiring: 'Expiring in one day',
|
||||
expiring_plural: 'Expiring in {{count}} days',
|
||||
unlimited: 'Unlimited',
|
||||
},
|
||||
pagination: {
|
||||
perPage: 'Items per page',
|
||||
},
|
||||
avatar: {
|
||||
deleteTitle: 'Remove Avatar',
|
||||
deleteDescription: 'Are you sure you want to remove your profile picture? Your account will use the default initial avatar.',
|
||||
},
|
||||
imageInput: {
|
||||
dropImageHere: 'Drop your image here, or',
|
||||
browse: 'browse',
|
||||
supportedFormats: 'Supports PNG, JPG, JPEG, WEBP and GIF',
|
||||
},
|
||||
you: 'You',
|
||||
dynamicSelect: {
|
||||
error: 'Loading options failed',
|
||||
noData: 'No options available',
|
||||
loading: 'Loading options...',
|
||||
selected: '{{count}} selected',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
32
dify/web/i18n/en-US/custom.ts
Normal file
32
dify/web/i18n/en-US/custom.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
const translation = {
|
||||
custom: 'Customization',
|
||||
upgradeTip: {
|
||||
title: 'Upgrade your plan',
|
||||
des: 'Upgrade your plan to customize your brand',
|
||||
prefix: 'Upgrade your plan to',
|
||||
suffix: 'customize your brand.',
|
||||
},
|
||||
webapp: {
|
||||
title: 'Customize web app brand',
|
||||
removeBrand: 'Remove Powered by Dify',
|
||||
changeLogo: 'Change Powered by Brand Image',
|
||||
changeLogoTip: 'SVG or PNG format with a minimum size of 40x40px',
|
||||
},
|
||||
app: {
|
||||
title: 'Customize app header brand',
|
||||
changeLogoTip: 'SVG or PNG format with a minimum size of 80x80px',
|
||||
},
|
||||
upload: 'Upload',
|
||||
uploading: 'Uploading',
|
||||
uploadedFail: 'Image upload failed, please re-upload.',
|
||||
change: 'Change',
|
||||
apply: 'Apply',
|
||||
restore: 'Restore Defaults',
|
||||
customize: {
|
||||
contactUs: ' contact us ',
|
||||
prefix: 'To customize the brand logo within the app, please',
|
||||
suffix: 'to upgrade to the Enterprise edition.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
217
dify/web/i18n/en-US/dataset-creation.ts
Normal file
217
dify/web/i18n/en-US/dataset-creation.ts
Normal file
@@ -0,0 +1,217 @@
|
||||
const translation = {
|
||||
steps: {
|
||||
header: {
|
||||
fallbackRoute: 'Knowledge',
|
||||
},
|
||||
one: 'Data Source',
|
||||
two: 'Document Processing',
|
||||
three: 'Execute & Finish',
|
||||
},
|
||||
error: {
|
||||
unavailable: 'This Knowledge is not available',
|
||||
},
|
||||
firecrawl: {
|
||||
configFirecrawl: 'Configure 🔥Firecrawl',
|
||||
apiKeyPlaceholder: 'API key from firecrawl.dev',
|
||||
getApiKeyLinkText: 'Get your API key from firecrawl.dev',
|
||||
},
|
||||
watercrawl: {
|
||||
configWatercrawl: 'Configure Watercrawl',
|
||||
apiKeyPlaceholder: 'API key from watercrawl.dev',
|
||||
getApiKeyLinkText: 'Get your API key from watercrawl.dev',
|
||||
},
|
||||
jinaReader: {
|
||||
configJinaReader: 'Configure Jina Reader',
|
||||
apiKeyPlaceholder: 'API key from jina.ai',
|
||||
getApiKeyLinkText: 'Get your free API key at jina.ai',
|
||||
},
|
||||
stepOne: {
|
||||
filePreview: 'File Preview',
|
||||
pagePreview: 'Page Preview',
|
||||
dataSourceType: {
|
||||
file: 'Import from file',
|
||||
notion: 'Sync from Notion',
|
||||
web: 'Sync from website',
|
||||
},
|
||||
uploader: {
|
||||
title: 'Upload file',
|
||||
button: 'Drag and drop file or folder, or',
|
||||
buttonSingleFile: 'Drag and drop file, or',
|
||||
browse: 'Browse',
|
||||
tip: 'Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.',
|
||||
validation: {
|
||||
typeError: 'File type not supported',
|
||||
size: 'File too large. Maximum is {{size}}MB',
|
||||
count: 'Multiple files not supported',
|
||||
filesNumber: 'You have reached the batch upload limit of {{filesNumber}}.',
|
||||
},
|
||||
cancel: 'Cancel',
|
||||
change: 'Change',
|
||||
failed: 'Upload failed',
|
||||
},
|
||||
notionSyncTitle: 'Notion is not connected',
|
||||
notionSyncTip: 'To sync with Notion, connection to Notion must be established first.',
|
||||
connect: 'Go to connect',
|
||||
cancel: 'Cancel',
|
||||
button: 'Next',
|
||||
emptyDatasetCreation: 'I want to create an empty Knowledge',
|
||||
modal: {
|
||||
title: 'Create an empty Knowledge',
|
||||
tip: 'An empty Knowledge will contain no documents, and you can upload documents any time.',
|
||||
input: 'Knowledge name',
|
||||
placeholder: 'Please input',
|
||||
nameNotEmpty: 'Name cannot be empty',
|
||||
nameLengthInvalid: 'Name must be between 1 to 40 characters',
|
||||
cancelButton: 'Cancel',
|
||||
confirmButton: 'Create',
|
||||
failed: 'Creation failed',
|
||||
},
|
||||
website: {
|
||||
chooseProvider: 'Select a provider',
|
||||
fireCrawlNotConfigured: 'Firecrawl is not configured',
|
||||
fireCrawlNotConfiguredDescription: 'Configure Firecrawl with API key to use it.',
|
||||
jinaReaderNotConfigured: 'Jina Reader is not configured',
|
||||
jinaReaderNotConfiguredDescription: 'Set up Jina Reader by entering your free API key for access.',
|
||||
waterCrawlNotConfigured: 'Watercrawl is not configured',
|
||||
waterCrawlNotConfiguredDescription: 'Configure Watercrawl with API key to use it.',
|
||||
configure: 'Configure',
|
||||
configureFirecrawl: 'Configure Firecrawl',
|
||||
configureWatercrawl: 'Configure Watercrawl',
|
||||
configureJinaReader: 'Configure Jina Reader',
|
||||
run: 'Run',
|
||||
running: 'Running',
|
||||
firecrawlTitle: 'Extract web content with 🔥Firecrawl',
|
||||
firecrawlDoc: 'Firecrawl docs',
|
||||
watercrawlTitle: 'Extract web content with Watercrawl',
|
||||
watercrawlDoc: 'Watercrawl docs',
|
||||
jinaReaderTitle: 'Convert the entire site to Markdown',
|
||||
jinaReaderDoc: 'Learn more about Jina Reader',
|
||||
jinaReaderDocLink: 'https://jina.ai/reader',
|
||||
useSitemap: 'Use sitemap',
|
||||
useSitemapTooltip: 'Follow the sitemap to crawl the site. If not, Jina Reader will crawl iteratively based on page relevance, yielding fewer but higher-quality pages.',
|
||||
options: 'Options',
|
||||
crawlSubPage: 'Crawl sub-pages',
|
||||
limit: 'Limit',
|
||||
maxDepth: 'Max depth',
|
||||
excludePaths: 'Exclude paths',
|
||||
includeOnlyPaths: 'Include only paths',
|
||||
extractOnlyMainContent: 'Extract only main content (no headers, navs, footers, etc.)',
|
||||
exceptionErrorTitle: 'An exception occurred while running crawling job:',
|
||||
unknownError: 'Unknown error',
|
||||
totalPageScraped: 'Total pages scraped:',
|
||||
selectAll: 'Select All',
|
||||
resetAll: 'Reset All',
|
||||
scrapTimeInfo: 'Scraped {{total}} pages in total within {{time}}s',
|
||||
preview: 'Preview',
|
||||
maxDepthTooltip: 'Maximum depth to crawl relative to the entered URL. Depth 0 just scrapes the page of the entered url, depth 1 scrapes the url and everything after enteredURL + one /, and so on.',
|
||||
},
|
||||
},
|
||||
stepTwo: {
|
||||
segmentation: 'Chunk Settings',
|
||||
auto: 'Automatic',
|
||||
autoDescription: 'Automatically set chunk and preprocessing rules. Unfamiliar users are recommended to select this.',
|
||||
custom: 'Custom',
|
||||
customDescription: 'Customize chunks rules, chunks length, and preprocessing rules, etc.',
|
||||
general: 'General',
|
||||
generalTip: 'General text chunking mode, the chunks retrieved and recalled are the same.',
|
||||
parentChild: 'Parent-child',
|
||||
parentChildTip: 'When using the parent-child mode, the child-chunk is used for retrieval and the parent-chunk is used for recall as context.',
|
||||
parentChunkForContext: 'Parent-chunk for Context',
|
||||
childChunkForRetrieval: 'Child-chunk for Retrieval',
|
||||
paragraph: 'Paragraph',
|
||||
paragraphTip: 'This mode splits the text in to paragraphs based on delimiters and the maximum chunk length, using the split text as the parent chunk for retrieval.',
|
||||
fullDoc: 'Full Doc',
|
||||
fullDocTip: 'The entire document is used as the parent chunk and retrieved directly. Please note that for performance reasons, text exceeding 10000 tokens will be automatically truncated.',
|
||||
qaTip: 'When using structured Q&A data, you can create documents that pair questions with answers. These documents are indexed based on the question portion, allowing the system to retrieve relevant answers based on query similarity.',
|
||||
separator: 'Delimiter',
|
||||
separatorTip: 'A delimiter is the character used to separate text. \\n\\n and \\n are commonly used delimiters for separating paragraphs and lines. Combined with commas (\\n\\n,\\n), paragraphs will be segmented by lines when exceeding the maximum chunk length. You can also use special delimiters defined by yourself (e.g. ***).',
|
||||
separatorPlaceholder: '\\n\\n for paragraphs; \\n for lines',
|
||||
maxLength: 'Maximum chunk length',
|
||||
maxLengthCheck: 'Maximum chunk length should be less than {{limit}}',
|
||||
overlap: 'Chunk overlap',
|
||||
overlapTip: 'Setting the chunk overlap can maintain the semantic relevance between them, enhancing the retrieve effect. It is recommended to set 10%-25% of the maximum chunk size.',
|
||||
overlapCheck: 'chunk overlap should not bigger than maximum chunk length',
|
||||
rules: 'Text Pre-processing Rules',
|
||||
removeExtraSpaces: 'Replace consecutive spaces, newlines and tabs',
|
||||
removeUrlEmails: 'Delete all URLs and email addresses',
|
||||
removeStopwords: 'Remove stopwords such as "a", "an", "the"',
|
||||
preview: 'Preview',
|
||||
previewChunk: 'Preview Chunk',
|
||||
reset: 'Reset',
|
||||
indexMode: 'Index Method',
|
||||
qualified: 'High Quality',
|
||||
highQualityTip: 'Once finishing embedding in High Quality mode, reverting to Economical mode is not available.',
|
||||
recommend: 'Recommend',
|
||||
qualifiedTip: 'Calling the embedding model to process documents for more precise retrieval helps LLM generate high-quality answers.',
|
||||
warning: 'Please set up the model provider API key first.',
|
||||
click: 'Go to settings',
|
||||
economical: 'Economical',
|
||||
economicalTip: 'Using 10 keywords per chunk for retrieval, no tokens are consumed at the expense of reduced retrieval accuracy.',
|
||||
QATitle: 'Segmenting in Question & Answer format',
|
||||
QATip: 'Enable this option will consume more tokens',
|
||||
QALanguage: 'Segment using',
|
||||
useQALanguage: 'Chunk using Q&A format in',
|
||||
estimateCost: 'Estimation',
|
||||
estimateSegment: 'Estimated chunks',
|
||||
segmentCount: 'chunks',
|
||||
calculating: 'Calculating...',
|
||||
fileSource: 'Preprocess documents',
|
||||
notionSource: 'Preprocess pages',
|
||||
websiteSource: 'Preprocess website',
|
||||
other: 'and other ',
|
||||
fileUnit: ' files',
|
||||
notionUnit: ' pages',
|
||||
webpageUnit: ' pages',
|
||||
previousStep: 'Previous step',
|
||||
nextStep: 'Save & Process',
|
||||
save: 'Save & Process',
|
||||
cancel: 'Cancel',
|
||||
sideTipTitle: 'Why chunk and preprocess?',
|
||||
sideTipP1: 'When processing text data, chunk and cleaning are two important preprocessing steps.',
|
||||
sideTipP2: 'Segmentation splits long text into paragraphs so models can understand better. This improves the quality and relevance of model results.',
|
||||
sideTipP3: 'Cleaning removes unnecessary characters and formats, making Knowledge cleaner and easier to parse.',
|
||||
sideTipP4: 'Proper chunk and cleaning improve model performance, providing more accurate and valuable results.',
|
||||
previewTitle: 'Preview',
|
||||
previewTitleButton: 'Preview',
|
||||
previewButton: 'Switching to Q&A format',
|
||||
previewSwitchTipStart: 'The current chunk preview is in text format, switching to a question-and-answer format preview will',
|
||||
previewSwitchTipEnd: ' consume additional tokens',
|
||||
characters: 'characters',
|
||||
indexSettingTip: 'To change the index method & embedding model, please go to the ',
|
||||
retrievalSettingTip: 'To change the retrieval setting, please go to the ',
|
||||
datasetSettingLink: 'Knowledge settings.',
|
||||
previewChunkTip: 'Click the \'Preview Chunk\' button on the left to load the preview',
|
||||
previewChunkCount: '{{count}} Estimated chunks',
|
||||
switch: 'Switch',
|
||||
qaSwitchHighQualityTipTitle: 'Q&A Format Requires High-quality Indexing Method',
|
||||
qaSwitchHighQualityTipContent: 'Currently, only high-quality index method supports Q&A format chunking. Would you like to switch to high-quality mode?',
|
||||
notAvailableForParentChild: 'Not available for Parent-child Index',
|
||||
notAvailableForQA: 'Not available for Q&A Index',
|
||||
parentChildDelimiterTip: 'A delimiter is the character used to separate text. \\n\\n is recommended for splitting the original document into large parent chunks. You can also use special delimiters defined by yourself.',
|
||||
parentChildChunkDelimiterTip: 'A delimiter is the character used to separate text. \\n is recommended for splitting parent chunks into small child chunks. You can also use special delimiters defined by yourself.',
|
||||
},
|
||||
stepThree: {
|
||||
creationTitle: '🎉 Knowledge created',
|
||||
creationContent: 'We automatically named the Knowledge, you can modify it at any time.',
|
||||
label: 'Knowledge name',
|
||||
additionTitle: '🎉 Document uploaded',
|
||||
additionP1: 'The document has been uploaded to the Knowledge',
|
||||
additionP2: ', you can find it in the document list of the Knowledge.',
|
||||
stop: 'Stop processing',
|
||||
resume: 'Resume processing',
|
||||
navTo: 'Go to document',
|
||||
sideTipTitle: 'What\'s next',
|
||||
sideTipContent: 'After finishing document indexing, you can manage and edit documents, run retrieval tests, and modify knowledge settings. Knowledge can then be integrated into your application as context, so make sure to adjust the Retrieval Setting to ensure optimal performance.',
|
||||
modelTitle: 'Are you sure to stop embedding?',
|
||||
modelContent: 'If you need to resume processing later, you will continue from where you left off.',
|
||||
modelButtonConfirm: 'Confirm',
|
||||
modelButtonCancel: 'Cancel',
|
||||
},
|
||||
otherDataSource: {
|
||||
title: 'Connect to other data sources?',
|
||||
description: 'Currently, Dify\'s knowledge base only has limited data sources. Contributing a data source to the Dify knowledge base is a fantastic way to help enhance the platform\'s flexibility and power for all users. Our contribution guide makes it easy to get started. Please click on the link below to learn more.',
|
||||
learnMore: 'Learn more',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
407
dify/web/i18n/en-US/dataset-documents.ts
Normal file
407
dify/web/i18n/en-US/dataset-documents.ts
Normal file
@@ -0,0 +1,407 @@
|
||||
const translation = {
|
||||
list: {
|
||||
title: 'Documents',
|
||||
desc: 'All files of the Knowledge are shown here, and the entire Knowledge can be linked to Dify citations or indexed via the Chat plugin.',
|
||||
learnMore: 'Learn more',
|
||||
addFile: 'Add file',
|
||||
addPages: 'Add Pages',
|
||||
addUrl: 'Add URL',
|
||||
table: {
|
||||
header: {
|
||||
fileName: 'NAME',
|
||||
chunkingMode: 'CHUNKING MODE',
|
||||
words: 'WORDS',
|
||||
hitCount: 'RETRIEVAL COUNT',
|
||||
uploadTime: 'UPLOAD TIME',
|
||||
status: 'STATUS',
|
||||
action: 'ACTION',
|
||||
},
|
||||
rename: 'Rename',
|
||||
name: 'Name',
|
||||
},
|
||||
action: {
|
||||
uploadFile: 'Upload new file',
|
||||
settings: 'Chunking Settings',
|
||||
addButton: 'Add chunk',
|
||||
add: 'Add a chunk',
|
||||
batchAdd: 'Batch add',
|
||||
archive: 'Archive',
|
||||
unarchive: 'Unarchive',
|
||||
delete: 'Delete',
|
||||
enableWarning: 'Archived file cannot be enabled',
|
||||
sync: 'Sync',
|
||||
pause: 'Pause',
|
||||
resume: 'Resume',
|
||||
},
|
||||
index: {
|
||||
enable: 'Enable',
|
||||
disable: 'Disable',
|
||||
all: 'All',
|
||||
enableTip: 'The file can be indexed',
|
||||
disableTip: 'The file cannot be indexed',
|
||||
},
|
||||
sort: {
|
||||
uploadTime: 'Upload Time',
|
||||
hitCount: 'Retrieval Count',
|
||||
},
|
||||
status: {
|
||||
queuing: 'Queuing',
|
||||
indexing: 'Indexing',
|
||||
paused: 'Paused',
|
||||
error: 'Error',
|
||||
available: 'Available',
|
||||
enabled: 'Enabled',
|
||||
disabled: 'Disabled',
|
||||
archived: 'Archived',
|
||||
},
|
||||
empty: {
|
||||
title: 'There is no documentation yet',
|
||||
upload: {
|
||||
tip: 'You can upload files, sync from the website, or from web apps like Notion, GitHub, etc.',
|
||||
},
|
||||
sync: {
|
||||
tip: 'Dify will periodically download files from your Notion and complete processing.',
|
||||
},
|
||||
},
|
||||
delete: {
|
||||
title: 'Are you sure Delete?',
|
||||
content: 'If you need to resume processing later, you will continue from where you left off',
|
||||
},
|
||||
batchModal: {
|
||||
title: 'Batch add chunks',
|
||||
csvUploadTitle: 'Drag and drop your CSV file here, or ',
|
||||
browse: 'browse',
|
||||
tip: 'The CSV file must conform to the following structure:',
|
||||
question: 'question',
|
||||
answer: 'answer',
|
||||
contentTitle: 'chunk content',
|
||||
content: 'content',
|
||||
template: 'Download the template here',
|
||||
cancel: 'Cancel',
|
||||
run: 'Run Batch',
|
||||
runError: 'Run batch failed',
|
||||
processing: 'In batch processing',
|
||||
completed: 'Import completed',
|
||||
error: 'Import Error',
|
||||
ok: 'OK',
|
||||
},
|
||||
},
|
||||
metadata: {
|
||||
title: 'Metadata',
|
||||
desc: 'Labeling metadata for documents allows AI to access them in a timely manner and exposes the source of references for users.',
|
||||
dateTimeFormat: 'MMMM D, YYYY hh:mm A',
|
||||
docTypeSelectTitle: 'Please select a document type',
|
||||
docTypeChangeTitle: 'Change document type',
|
||||
docTypeSelectWarning:
|
||||
'If the document type is changed, the now filled metadata will no longer be preserved',
|
||||
firstMetaAction: 'Let\'s go',
|
||||
placeholder: {
|
||||
add: 'Add ',
|
||||
select: 'Select ',
|
||||
},
|
||||
source: {
|
||||
upload_file: 'Upload File',
|
||||
notion: 'Sync form Notion',
|
||||
github: 'Sync form Github',
|
||||
local_file: 'Local File',
|
||||
website_crawl: 'Website Crawl',
|
||||
online_document: 'Online Document',
|
||||
},
|
||||
type: {
|
||||
book: 'Book',
|
||||
webPage: 'Web Page',
|
||||
paper: 'Paper',
|
||||
socialMediaPost: 'Social Media Post',
|
||||
personalDocument: 'Personal Document',
|
||||
businessDocument: 'Business Document',
|
||||
IMChat: 'IM Chat',
|
||||
wikipediaEntry: 'Wikipedia Entry',
|
||||
notion: 'Sync form Notion',
|
||||
github: 'Sync form Github',
|
||||
technicalParameters: 'Technical Parameters',
|
||||
},
|
||||
field: {
|
||||
processRule: {
|
||||
processDoc: 'Process Document',
|
||||
segmentRule: 'Chunk Rule',
|
||||
segmentLength: 'Chunks Length',
|
||||
processClean: 'Text Process Clean',
|
||||
},
|
||||
book: {
|
||||
title: 'Title',
|
||||
language: 'Language',
|
||||
author: 'Author',
|
||||
publisher: 'Publisher',
|
||||
publicationDate: 'Publication Date',
|
||||
ISBN: 'ISBN',
|
||||
category: 'Category',
|
||||
},
|
||||
webPage: {
|
||||
title: 'Title',
|
||||
url: 'URL',
|
||||
language: 'Language',
|
||||
authorPublisher: 'Author/Publisher',
|
||||
publishDate: 'Publish Date',
|
||||
topicKeywords: 'Topic/Keywords',
|
||||
description: 'Description',
|
||||
},
|
||||
paper: {
|
||||
title: 'Title',
|
||||
language: 'Language',
|
||||
author: 'Author',
|
||||
publishDate: 'Publish Date',
|
||||
journalConferenceName: 'Journal/Conference Name',
|
||||
volumeIssuePage: 'Volume/Issue/Page',
|
||||
DOI: 'DOI',
|
||||
topicsKeywords: 'Topics/Keywords',
|
||||
abstract: 'Abstract',
|
||||
},
|
||||
socialMediaPost: {
|
||||
platform: 'Platform',
|
||||
authorUsername: 'Author/Username',
|
||||
publishDate: 'Publish Date',
|
||||
postURL: 'Post URL',
|
||||
topicsTags: 'Topics/Tags',
|
||||
},
|
||||
personalDocument: {
|
||||
title: 'Title',
|
||||
author: 'Author',
|
||||
creationDate: 'Creation Date',
|
||||
lastModifiedDate: 'Last Modified Date',
|
||||
documentType: 'Document Type',
|
||||
tagsCategory: 'Tags/Category',
|
||||
},
|
||||
businessDocument: {
|
||||
title: 'Title',
|
||||
author: 'Author',
|
||||
creationDate: 'Creation Date',
|
||||
lastModifiedDate: 'Last Modified Date',
|
||||
documentType: 'Document Type',
|
||||
departmentTeam: 'Department/Team',
|
||||
},
|
||||
IMChat: {
|
||||
chatPlatform: 'Chat Platform',
|
||||
chatPartiesGroupName: 'Chat Parties/Group Name',
|
||||
participants: 'Participants',
|
||||
startDate: 'Start Date',
|
||||
endDate: 'End Date',
|
||||
topicsKeywords: 'Topics/Keywords',
|
||||
fileType: 'File Type',
|
||||
},
|
||||
wikipediaEntry: {
|
||||
title: 'Title',
|
||||
language: 'Language',
|
||||
webpageURL: 'Webpage URL',
|
||||
editorContributor: 'Editor/Contributor',
|
||||
lastEditDate: 'Last Edit Date',
|
||||
summaryIntroduction: 'Summary/Introduction',
|
||||
},
|
||||
notion: {
|
||||
title: 'Title',
|
||||
language: 'Language',
|
||||
author: 'Author',
|
||||
createdTime: 'Created Time',
|
||||
lastModifiedTime: 'Last Modified Time',
|
||||
url: 'URL',
|
||||
tag: 'Tag',
|
||||
description: 'Description',
|
||||
},
|
||||
github: {
|
||||
repoName: 'Repo Name',
|
||||
repoDesc: 'Repo Description',
|
||||
repoOwner: 'Repo Owner',
|
||||
fileName: 'File Name',
|
||||
filePath: 'File Path',
|
||||
programmingLang: 'Programming Language',
|
||||
url: 'URL',
|
||||
license: 'License',
|
||||
lastCommitTime: 'Last Commit Time',
|
||||
lastCommitAuthor: 'Last Commit Author',
|
||||
},
|
||||
originInfo: {
|
||||
originalFilename: 'Original filename',
|
||||
originalFileSize: 'Original file size',
|
||||
uploadDate: 'Upload date',
|
||||
lastUpdateDate: 'Last update date',
|
||||
source: 'Source',
|
||||
},
|
||||
technicalParameters: {
|
||||
segmentSpecification: 'Chunks specification',
|
||||
segmentLength: 'Chunks length',
|
||||
avgParagraphLength: 'Avg. paragraph length',
|
||||
paragraphs: 'Paragraphs',
|
||||
hitCount: 'Retrieval count',
|
||||
embeddingTime: 'Embedding time',
|
||||
embeddedSpend: 'Embedded spend',
|
||||
},
|
||||
},
|
||||
languageMap: {
|
||||
zh: 'Chinese',
|
||||
en: 'English',
|
||||
es: 'Spanish',
|
||||
fr: 'French',
|
||||
de: 'German',
|
||||
ja: 'Japanese',
|
||||
ko: 'Korean',
|
||||
ru: 'Russian',
|
||||
ar: 'Arabic',
|
||||
pt: 'Portuguese',
|
||||
it: 'Italian',
|
||||
nl: 'Dutch',
|
||||
pl: 'Polish',
|
||||
sv: 'Swedish',
|
||||
tr: 'Turkish',
|
||||
he: 'Hebrew',
|
||||
hi: 'Hindi',
|
||||
da: 'Danish',
|
||||
fi: 'Finnish',
|
||||
no: 'Norwegian',
|
||||
hu: 'Hungarian',
|
||||
el: 'Greek',
|
||||
cs: 'Czech',
|
||||
th: 'Thai',
|
||||
id: 'Indonesian',
|
||||
},
|
||||
categoryMap: {
|
||||
book: {
|
||||
fiction: 'Fiction',
|
||||
biography: 'Biography',
|
||||
history: 'History',
|
||||
science: 'Science',
|
||||
technology: 'Technology',
|
||||
education: 'Education',
|
||||
philosophy: 'Philosophy',
|
||||
religion: 'Religion',
|
||||
socialSciences: 'SocialSciences',
|
||||
art: 'Art',
|
||||
travel: 'Travel',
|
||||
health: 'Health',
|
||||
selfHelp: 'SelfHelp',
|
||||
businessEconomics: 'BusinessEconomics',
|
||||
cooking: 'Cooking',
|
||||
childrenYoungAdults: 'ChildrenYoungAdults',
|
||||
comicsGraphicNovels: 'ComicsGraphicNovels',
|
||||
poetry: 'Poetry',
|
||||
drama: 'Drama',
|
||||
other: 'Other',
|
||||
},
|
||||
personalDoc: {
|
||||
notes: 'Notes',
|
||||
blogDraft: 'Blog Draft',
|
||||
diary: 'Diary',
|
||||
researchReport: 'Research Report',
|
||||
bookExcerpt: 'Book Excerpt',
|
||||
schedule: 'Schedule',
|
||||
list: 'List',
|
||||
projectOverview: 'Project Overview',
|
||||
photoCollection: 'Photo Collection',
|
||||
creativeWriting: 'Creative Writing',
|
||||
codeSnippet: 'Code Snippet',
|
||||
designDraft: 'Design Draft',
|
||||
personalResume: 'Personal Resume',
|
||||
other: 'Other',
|
||||
},
|
||||
businessDoc: {
|
||||
meetingMinutes: 'Meeting Minutes',
|
||||
researchReport: 'Research Report',
|
||||
proposal: 'Proposal',
|
||||
employeeHandbook: 'Employee Handbook',
|
||||
trainingMaterials: 'Training Materials',
|
||||
requirementsDocument: 'Requirements Document',
|
||||
designDocument: 'Design Document',
|
||||
productSpecification: 'Product Specification',
|
||||
financialReport: 'Financial Report',
|
||||
marketAnalysis: 'Market Analysis',
|
||||
projectPlan: 'Project Plan',
|
||||
teamStructure: 'Team Structure',
|
||||
policiesProcedures: 'Policies & Procedures',
|
||||
contractsAgreements: 'Contracts & Agreements',
|
||||
emailCorrespondence: 'Email Correspondence',
|
||||
other: 'Other',
|
||||
},
|
||||
},
|
||||
},
|
||||
embedding: {
|
||||
waiting: 'Embedding waiting...',
|
||||
processing: 'Embedding processing...',
|
||||
paused: 'Embedding paused',
|
||||
completed: 'Embedding completed',
|
||||
error: 'Embedding error',
|
||||
docName: 'Preprocessing document',
|
||||
mode: 'Chunking Setting',
|
||||
segmentLength: 'Maximum Chunk Length',
|
||||
textCleaning: 'Text Preprocessing Rules',
|
||||
segments: 'Paragraphs',
|
||||
highQuality: 'High-quality mode',
|
||||
economy: 'Economy mode',
|
||||
estimate: 'Estimated consumption',
|
||||
stop: 'Stop processing',
|
||||
pause: 'Pause',
|
||||
resume: 'Resume',
|
||||
automatic: 'Automatic',
|
||||
custom: 'Custom',
|
||||
hierarchical: 'Parent-child',
|
||||
previewTip: 'Paragraph preview will be available after embedding is complete',
|
||||
parentMaxTokens: 'Parent',
|
||||
childMaxTokens: 'Child',
|
||||
},
|
||||
segment: {
|
||||
paragraphs: 'Paragraphs',
|
||||
chunks_one: 'CHUNK',
|
||||
chunks_other: 'CHUNKS',
|
||||
parentChunks_one: 'PARENT CHUNK',
|
||||
parentChunks_other: 'PARENT CHUNKS',
|
||||
childChunks_one: 'CHILD CHUNK',
|
||||
childChunks_other: 'CHILD CHUNKS',
|
||||
searchResults_zero: 'RESULT',
|
||||
searchResults_one: 'RESULT',
|
||||
searchResults_other: 'RESULTS',
|
||||
empty: 'No Chunk found',
|
||||
clearFilter: 'Clear filter',
|
||||
chunk: 'Chunk',
|
||||
parentChunk: 'Parent-Chunk',
|
||||
newChunk: 'New Chunk',
|
||||
childChunk: 'Child-Chunk',
|
||||
newChildChunk: 'New Child Chunk',
|
||||
keywords: 'KEYWORDS',
|
||||
addKeyWord: 'Add keyword',
|
||||
keywordEmpty: 'The keyword cannot be empty',
|
||||
keywordError: 'The maximum length of keyword is 20',
|
||||
keywordDuplicate: 'The keyword already exists',
|
||||
characters_one: 'character',
|
||||
characters_other: 'characters',
|
||||
hitCount: 'Retrieval count',
|
||||
vectorHash: 'Vector hash: ',
|
||||
questionPlaceholder: 'Add question here',
|
||||
questionEmpty: 'Question can not be empty',
|
||||
answerPlaceholder: 'Add answer here',
|
||||
answerEmpty: 'Answer can not be empty',
|
||||
contentPlaceholder: 'Add content here',
|
||||
contentEmpty: 'Content can not be empty',
|
||||
newTextSegment: 'New Text Segment',
|
||||
newQaSegment: 'New Q&A Segment',
|
||||
addChunk: 'Add Chunk',
|
||||
addChildChunk: 'Add Child Chunk',
|
||||
addAnother: 'Add another',
|
||||
delete: 'Delete this chunk ?',
|
||||
chunkAdded: '1 chunk added',
|
||||
childChunkAdded: '1 child chunk added',
|
||||
editChunk: 'Edit Chunk',
|
||||
editParentChunk: 'Edit Parent Chunk',
|
||||
editChildChunk: 'Edit Child Chunk',
|
||||
chunkDetail: 'Chunk Detail',
|
||||
regenerationConfirmTitle: 'Do you want to regenerate child chunks?',
|
||||
regenerationConfirmMessage: 'Regenerating child chunks will overwrite the current child chunks, including edited chunks and newly added chunks. The regeneration cannot be undone.',
|
||||
regeneratingTitle: 'Regenerating child chunks',
|
||||
regeneratingMessage: 'This may take a moment, please wait...',
|
||||
regenerationSuccessTitle: 'Regeneration completed',
|
||||
regenerationSuccessMessage: 'You can close this window.',
|
||||
edited: 'EDITED',
|
||||
editedAt: 'Edited at',
|
||||
dateTimeFormat: 'MM/DD/YYYY h:mm',
|
||||
expandChunks: 'Expand chunks',
|
||||
collapseChunks: 'Collapse chunks',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
34
dify/web/i18n/en-US/dataset-hit-testing.ts
Normal file
34
dify/web/i18n/en-US/dataset-hit-testing.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
const translation = {
|
||||
title: 'Retrieval Test',
|
||||
settingTitle: 'Retrieval Setting',
|
||||
desc: 'Test the hitting effect of the Knowledge based on the given query text.',
|
||||
dateTimeFormat: 'MM/DD/YYYY hh:mm A',
|
||||
records: 'Records',
|
||||
table: {
|
||||
header: {
|
||||
source: 'Source',
|
||||
text: 'Text',
|
||||
time: 'Time',
|
||||
},
|
||||
},
|
||||
input: {
|
||||
title: 'Source text',
|
||||
placeholder: 'Please enter a text, a short declarative sentence is recommended.',
|
||||
countWarning: 'Up to 200 characters.',
|
||||
indexWarning: 'High quality Knowledge only.',
|
||||
testing: 'Test',
|
||||
},
|
||||
hit: {
|
||||
title: '{{num}} Retrieved Chunks',
|
||||
emptyTip: 'Retrieval Testing results will show here',
|
||||
},
|
||||
noRecentTip: 'No recent query results here',
|
||||
viewChart: 'View VECTOR CHART',
|
||||
viewDetail: 'View Detail',
|
||||
chunkDetail: 'Chunk Detail',
|
||||
hitChunks: 'Hit {{num}} child chunks',
|
||||
open: 'Open',
|
||||
keyword: 'Keywords',
|
||||
}
|
||||
|
||||
export default translation
|
||||
166
dify/web/i18n/en-US/dataset-pipeline.ts
Normal file
166
dify/web/i18n/en-US/dataset-pipeline.ts
Normal file
@@ -0,0 +1,166 @@
|
||||
const translation = {
|
||||
creation: {
|
||||
backToKnowledge: 'Back to Knowledge',
|
||||
createFromScratch: {
|
||||
title: 'Blank knowledge pipeline',
|
||||
description: 'Create a custom pipeline from scratch with full control over data processing and structure.',
|
||||
},
|
||||
importDSL: 'Import from a DSL file',
|
||||
createKnowledge: 'Create Knowledge',
|
||||
errorTip: 'Failed to create a Knowledge Base',
|
||||
successTip: 'Successfully created a Knowledge Base',
|
||||
caution: 'Caution',
|
||||
},
|
||||
templates: {
|
||||
customized: 'Customized',
|
||||
},
|
||||
operations: {
|
||||
choose: 'Choose',
|
||||
details: 'Details',
|
||||
editInfo: 'Edit info',
|
||||
useTemplate: 'Use this Knowledge Pipeline',
|
||||
backToDataSource: 'Back to Data Source',
|
||||
process: 'Process',
|
||||
dataSource: 'Data Source',
|
||||
saveAndProcess: 'Save & Process',
|
||||
preview: 'Preview',
|
||||
exportPipeline: 'Export Pipeline',
|
||||
convert: 'Convert',
|
||||
},
|
||||
knowledgeNameAndIcon: 'Knowledge name & icon',
|
||||
knowledgeNameAndIconPlaceholder: 'Please enter the name of the Knowledge Base',
|
||||
knowledgeDescription: 'Knowledge description',
|
||||
knowledgeDescriptionPlaceholder: 'Describe what is in this Knowledge Base. A detailed description allows AI to access the content of the dataset more accurately. If empty, Dify will use the default hit strategy. (Optional)',
|
||||
knowledgePermissions: 'Permissions',
|
||||
editPipelineInfo: 'Edit pipeline info',
|
||||
pipelineNameAndIcon: 'Pipeline name & icon',
|
||||
deletePipeline: {
|
||||
title: 'Are you sure to delete this pipeline template?',
|
||||
content: 'Deleting the pipeline template is irreversible.',
|
||||
},
|
||||
publishPipeline: {
|
||||
success: {
|
||||
message: 'Knowledge Pipeline Published',
|
||||
tip: '<CustomLink>Go to Documents</CustomLink> to add or manage documents.',
|
||||
},
|
||||
error: {
|
||||
message: 'Failed to Publish Knowledge Pipeline',
|
||||
},
|
||||
},
|
||||
publishTemplate: {
|
||||
success: {
|
||||
message: 'Pipeline Template Published',
|
||||
tip: 'You can use this template on the creation page.',
|
||||
learnMore: 'Learn more',
|
||||
},
|
||||
error: {
|
||||
message: 'Failed to Publish Pipeline Template',
|
||||
},
|
||||
},
|
||||
exportDSL: {
|
||||
successTip: 'Export pipeline DSL successfully',
|
||||
errorTip: 'Failed to export pipeline DSL',
|
||||
},
|
||||
details: {
|
||||
createdBy: 'By {{author}}',
|
||||
structure: 'Structure',
|
||||
structureTooltip: 'Chunk Structure determines how documents are split and indexed—offering General, Parent-Child, and Q&A modes—and is unique to each knowledge base.',
|
||||
},
|
||||
testRun: {
|
||||
title: 'Test Run',
|
||||
tooltip: 'In test run mode, only one document is allowed to be imported at a time for easier debugging and observation.',
|
||||
steps: {
|
||||
dataSource: 'Data Source',
|
||||
documentProcessing: 'Document Processing',
|
||||
},
|
||||
dataSource: {
|
||||
localFiles: 'Local Files',
|
||||
},
|
||||
notion: {
|
||||
title: 'Choose Notion Pages',
|
||||
docTitle: 'Notion docs',
|
||||
},
|
||||
},
|
||||
inputField: 'Input Field',
|
||||
inputFieldPanel: {
|
||||
title: 'User Input Fields',
|
||||
description: 'User input fields are used to define and collect variables required during the pipeline execution process. Users can customize the field type and flexibly configure the input value to meet the needs of different data sources or document processing steps.',
|
||||
uniqueInputs: {
|
||||
title: 'Unique Inputs for Each Entrance',
|
||||
tooltip: 'Unique Inputs are only accessible to the selected data source and its downstream nodes. Users won\'t need to fill it in when choosing other data sources. Only input fields referenced by data source variables will appear in the first step(Data Source). All other fields will be shown in the second step(Process Documents).',
|
||||
},
|
||||
globalInputs: {
|
||||
title: 'Global Inputs for All Entrances',
|
||||
tooltip: 'Global Inputs are shared across all nodes. Users will need to fill them in when selecting any data source. For example, fields like delimiter and maximum chunk length can be uniformly applied across multiple data sources. Only input fields referenced by Data Source variables appear in the first step (Data Source). All other fields show up in the second step (Process Documents).',
|
||||
},
|
||||
addInputField: 'Add Input Field',
|
||||
editInputField: 'Edit Input Field',
|
||||
preview: {
|
||||
stepOneTitle: 'Data Source',
|
||||
stepTwoTitle: 'Process Documents',
|
||||
},
|
||||
error: {
|
||||
variableDuplicate: 'Variable name already exists. Please choose a different name.',
|
||||
},
|
||||
},
|
||||
addDocuments: {
|
||||
title: 'Add Documents',
|
||||
steps: {
|
||||
chooseDatasource: 'Choose a Data Source',
|
||||
processDocuments: 'Process Documents',
|
||||
processingDocuments: 'Processing Documents',
|
||||
},
|
||||
backToDataSource: 'Data Source',
|
||||
stepOne: {
|
||||
preview: 'Preview',
|
||||
},
|
||||
stepTwo: {
|
||||
chunkSettings: 'Chunk Settings',
|
||||
previewChunks: 'Preview Chunks',
|
||||
},
|
||||
stepThree: {
|
||||
learnMore: 'Learn more',
|
||||
},
|
||||
characters: 'characters',
|
||||
selectOnlineDocumentTip: 'Process up to {{count}} pages',
|
||||
selectOnlineDriveTip: 'Process up to {{count}} files, maximum {{fileSize}} MB each',
|
||||
},
|
||||
documentSettings: {
|
||||
title: 'Document Settings',
|
||||
},
|
||||
onlineDocument: {
|
||||
pageSelectorTitle: '{{name}} pages',
|
||||
},
|
||||
onlineDrive: {
|
||||
notConnected: '{{name}} is not connected',
|
||||
notConnectedTip: 'To sync with {{name}}, connection to {{name}} must be established first.',
|
||||
breadcrumbs: {
|
||||
allBuckets: 'All Cloud Storage Buckets',
|
||||
allFiles: 'All Files',
|
||||
searchResult: 'Find {{searchResultsLength}} items in "{{folderName}}" folder',
|
||||
searchPlaceholder: 'Search files...',
|
||||
},
|
||||
notSupportedFileType: 'This file type is not supported',
|
||||
emptyFolder: 'This folder is empty',
|
||||
emptySearchResult: 'No items were found',
|
||||
resetKeywords: 'Reset keywords',
|
||||
},
|
||||
credentialSelector: {
|
||||
name: '{{credentialName}}\'s {{pluginName}}',
|
||||
},
|
||||
configurationTip: 'Configure {{pluginName}}',
|
||||
conversion: {
|
||||
title: 'Convert to Knowledge Pipeline',
|
||||
descriptionChunk1: 'You can now convert your existing knowledge base to use the Knowledge Pipeline for document processing',
|
||||
descriptionChunk2: ' — a more open and flexible approach with access to plugins from our marketplace. This will apply the new processing method to all future documents.',
|
||||
warning: 'This action cannot be undone.',
|
||||
confirm: {
|
||||
title: 'Confirmation',
|
||||
content: 'This action is permanent. You won\'t be able to revert to the previous method.Please confirm to convert.',
|
||||
},
|
||||
errorMessage: 'Failed to convert the dataset to a pipeline',
|
||||
successMessage: 'Successfully converted the dataset to a pipeline',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
51
dify/web/i18n/en-US/dataset-settings.ts
Normal file
51
dify/web/i18n/en-US/dataset-settings.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
const translation = {
|
||||
title: 'Knowledge settings',
|
||||
desc: 'Here you can modify the properties and retrieval settings of this Knowledge.',
|
||||
form: {
|
||||
name: 'Knowledge Name',
|
||||
nameAndIcon: 'Name & Icon',
|
||||
namePlaceholder: 'Please enter the Knowledge name',
|
||||
nameError: 'Name cannot be empty',
|
||||
desc: 'Description',
|
||||
descInfo: 'Please write a clear textual description to outline the content of the Knowledge. This description will be used as a basis for matching when selecting from multiple Knowledge for inference.',
|
||||
descPlaceholder: 'Describe what is in this data set. A detailed description allows AI to access the content of the data set in a timely manner. If empty, Dify will use the default hit strategy.',
|
||||
helpText: 'Learn how to write a good dataset description.',
|
||||
descWrite: 'Learn how to write a good Knowledge description.',
|
||||
permissions: 'Permissions',
|
||||
permissionsOnlyMe: 'Only me',
|
||||
permissionsAllMember: 'All team members',
|
||||
permissionsInvitedMembers: 'Partial team members',
|
||||
me: '(You)',
|
||||
onSearchResults: 'No members match your search query.\nTry your search again.',
|
||||
chunkStructure: {
|
||||
title: 'Chunk Structure',
|
||||
learnMore: 'Learn more',
|
||||
description: ' about Chunk Structure.',
|
||||
},
|
||||
indexMethod: 'Index Method',
|
||||
indexMethodHighQuality: 'High Quality',
|
||||
indexMethodHighQualityTip: 'Calling the embedding model to process documents for more precise retrieval helps LLM generate high-quality answers.',
|
||||
upgradeHighQualityTip: 'Once upgrading to High Quality mode, reverting to Economical mode is not available',
|
||||
indexMethodEconomy: 'Economical',
|
||||
indexMethodEconomyTip: 'Using {{count}} keywords per chunk for retrieval, no tokens are consumed at the expense of reduced retrieval accuracy.',
|
||||
numberOfKeywords: 'Number of Keywords',
|
||||
embeddingModel: 'Embedding Model',
|
||||
embeddingModelTip: 'Change the embedded model, please go to ',
|
||||
embeddingModelTipLink: 'Settings',
|
||||
retrievalSetting: {
|
||||
title: 'Retrieval Setting',
|
||||
method: 'Retrieval Method',
|
||||
learnMore: 'Learn more',
|
||||
description: ' about retrieval method.',
|
||||
longDescription: ' about retrieval method, you can change this at any time in the Knowledge settings.',
|
||||
},
|
||||
externalKnowledgeAPI: 'External Knowledge API',
|
||||
externalKnowledgeID: 'External Knowledge ID',
|
||||
retrievalSettings: 'Retrieval Settings',
|
||||
save: 'Save',
|
||||
indexMethodChangeToEconomyDisabledTip: 'Not available for downgrading from HQ to ECO',
|
||||
searchModel: 'Search model',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
241
dify/web/i18n/en-US/dataset.ts
Normal file
241
dify/web/i18n/en-US/dataset.ts
Normal file
@@ -0,0 +1,241 @@
|
||||
const translation = {
|
||||
knowledge: 'Knowledge',
|
||||
chunkingMode: {
|
||||
general: 'General',
|
||||
parentChild: 'Parent-child',
|
||||
qa: 'Q&A',
|
||||
graph: 'Graph',
|
||||
},
|
||||
parentMode: {
|
||||
paragraph: 'Paragraph',
|
||||
fullDoc: 'Full-doc',
|
||||
},
|
||||
externalTag: 'External',
|
||||
externalAPI: 'External API',
|
||||
externalAPIPanelTitle: 'External Knowledge API',
|
||||
externalKnowledgeId: 'External Knowledge ID',
|
||||
externalKnowledgeName: 'External Knowledge Name',
|
||||
externalKnowledgeDescription: 'Knowledge Description',
|
||||
externalKnowledgeIdPlaceholder: 'Please enter the Knowledge ID',
|
||||
externalKnowledgeNamePlaceholder: 'Please enter the name of the knowledge base',
|
||||
externalKnowledgeDescriptionPlaceholder: 'Describe what\'s in this Knowledge Base (optional)',
|
||||
learnHowToWriteGoodKnowledgeDescription: 'Learn how to write a good knowledge description',
|
||||
externalAPIPanelDescription: 'The external knowledge API is used to connect to a knowledge base outside of Dify and retrieve knowledge from that knowledge base.',
|
||||
externalAPIPanelDocumentation: 'Learn how to create an External Knowledge API',
|
||||
externalKnowledgeBase: 'External Knowledge Base',
|
||||
localDocs: 'Local Docs',
|
||||
documentCount: ' docs',
|
||||
docAllEnabled_one: '{{count}} document enabled',
|
||||
docAllEnabled_other: 'All {{count}} documents enabled',
|
||||
partialEnabled_one: 'Total of {{count}} document, {{num}} available',
|
||||
partialEnabled_other: 'Total of {{count}} documents, {{num}} available',
|
||||
wordCount: ' k words',
|
||||
appCount: ' linked apps',
|
||||
updated: 'Updated',
|
||||
createDataset: 'Create Knowledge',
|
||||
createFromPipeline: 'Create from Knowledge Pipeline',
|
||||
createNewExternalAPI: 'Create a new External Knowledge API',
|
||||
noExternalKnowledge: 'There is no External Knowledge API yet, click here to create',
|
||||
createExternalAPI: 'Add an External Knowledge API',
|
||||
editExternalAPIFormTitle: 'Edit the External Knowledge API',
|
||||
editExternalAPITooltipTitle: 'LINKED KNOWLEDGE',
|
||||
editExternalAPIConfirmWarningContent: {
|
||||
front: 'This External Knowledge API is linked to',
|
||||
end: 'external knowledge, and this modification will be applied to all of them. Are you sure you want to save this change?',
|
||||
},
|
||||
editExternalAPIFormWarning: {
|
||||
front: 'This External API is linked to',
|
||||
end: 'external knowledge',
|
||||
},
|
||||
deleteExternalAPIConfirmWarningContent: {
|
||||
title: {
|
||||
front: 'Delete',
|
||||
end: '?',
|
||||
},
|
||||
content: {
|
||||
front: 'This External Knowledge API is linked to',
|
||||
end: 'external knowledge. Deleting this API will invalidate all of them. Are you sure you want to delete this API?',
|
||||
},
|
||||
noConnectionContent: 'Are you sure to delete this API?',
|
||||
},
|
||||
selectExternalKnowledgeAPI: {
|
||||
placeholder: 'Choose an External Knowledge API',
|
||||
},
|
||||
connectDataset: 'Connect to an External Knowledge Base',
|
||||
connectDatasetIntro: {
|
||||
title: 'How to Connect to an External Knowledge Base',
|
||||
content: {
|
||||
front: 'To connect to an external knowledge base, you need to create an external API first. Please read carefully and refer to',
|
||||
link: 'Learn how to create an external API',
|
||||
end: '. Then find the corresponding knowledge ID and fill it in the form on the left. If all the information is correct, it will automatically jump to the retrieval test in the knowledge base after clicking the connect button.',
|
||||
},
|
||||
learnMore: 'Learn More',
|
||||
},
|
||||
connectHelper: {
|
||||
helper1: 'Connect to external knowledge bases via API and knowledge base ID. Currently, ',
|
||||
helper2: 'only the retrieval functionality is supported',
|
||||
helper3: '. We strongly recommend that you ',
|
||||
helper4: 'read the help documentation',
|
||||
helper5: ' carefully before using this feature.',
|
||||
},
|
||||
createDatasetIntro: 'Import your own text data or write data in real-time via Webhook for LLM context enhancement.',
|
||||
deleteDatasetConfirmTitle: 'Delete this Knowledge?',
|
||||
deleteDatasetConfirmContent:
|
||||
'Deleting the Knowledge is irreversible. Users will no longer be able to access your Knowledge, and all prompt configurations and logs will be permanently deleted.',
|
||||
datasetUsedByApp: 'The knowledge is being used by some apps. Apps will no longer be able to use this Knowledge, and all prompt configurations and logs will be permanently deleted.',
|
||||
datasetDeleted: 'Knowledge deleted',
|
||||
datasetDeleteFailed: 'Failed to delete Knowledge',
|
||||
didYouKnow: 'Did you know?',
|
||||
intro1: 'The Knowledge can be integrated into the Dify application ',
|
||||
intro2: 'as a context',
|
||||
intro3: ',',
|
||||
intro4: 'or it ',
|
||||
intro5: 'can be published',
|
||||
intro6: ' as an independent service.',
|
||||
unavailable: 'Unavailable',
|
||||
datasets: 'KNOWLEDGE',
|
||||
datasetsApi: 'API ACCESS',
|
||||
externalKnowledgeForm: {
|
||||
connect: 'Connect',
|
||||
cancel: 'Cancel',
|
||||
},
|
||||
externalAPIForm: {
|
||||
name: 'Name',
|
||||
endpoint: 'API Endpoint',
|
||||
apiKey: 'API Key',
|
||||
save: 'Save',
|
||||
cancel: 'Cancel',
|
||||
edit: 'Edit',
|
||||
encrypted: {
|
||||
front: 'Your API Token will be encrypted and stored using',
|
||||
end: 'technology.',
|
||||
},
|
||||
},
|
||||
retrieval: {
|
||||
semantic_search: {
|
||||
title: 'Vector Search',
|
||||
description: 'Generate query embeddings and search for the text chunk most similar to its vector representation.',
|
||||
},
|
||||
full_text_search: {
|
||||
title: 'Full-Text Search',
|
||||
description: 'Index all terms in the document, allowing users to search any term and retrieve relevant text chunk containing those terms.',
|
||||
},
|
||||
hybrid_search: {
|
||||
title: 'Hybrid Search',
|
||||
description: 'Execute full-text search and vector searches simultaneously, re-rank to select the best match for the user\'s query. Users can choose to set weights or configure to a Rerank model.',
|
||||
recommend: 'Recommend',
|
||||
},
|
||||
keyword_search: {
|
||||
title: 'Inverted Index',
|
||||
description: 'Inverted Index is a structure used for efficient retrieval. Organized by terms, each term points to documents or web pages containing it.',
|
||||
},
|
||||
change: 'Change',
|
||||
changeRetrievalMethod: 'Change retrieval method',
|
||||
},
|
||||
docsFailedNotice: 'documents indexed failed',
|
||||
retry: 'Retry',
|
||||
documentsDisabled: '{{num}} documents disabled - inactive for over 30 days',
|
||||
enable: 'Enable',
|
||||
indexingTechnique: {
|
||||
high_quality: 'HQ',
|
||||
economy: 'ECO',
|
||||
},
|
||||
indexingMethod: {
|
||||
semantic_search: 'VECTOR',
|
||||
full_text_search: 'FULL TEXT',
|
||||
hybrid_search: 'HYBRID',
|
||||
invertedIndex: 'INVERTED',
|
||||
},
|
||||
defaultRetrievalTip: 'Multi-path retrieval is used by default. Knowledge is retrieved from multiple knowledge bases and then re-ranked.',
|
||||
mixtureHighQualityAndEconomicTip: 'The Rerank model is required for mixture of high quality and economical knowledge bases.',
|
||||
inconsistentEmbeddingModelTip: 'The Rerank model is required if the Embedding models of the selected knowledge bases are inconsistent.',
|
||||
mixtureInternalAndExternalTip: 'The Rerank model is required for mixture of internal and external knowledge.',
|
||||
allExternalTip: 'When using external knowledge only, the user can choose whether to enable the Rerank model. If not enabled, retrieved chunks will be sorted based on scores. When the retrieval strategies of different knowledge bases are inconsistent, it will be inaccurate.',
|
||||
retrievalSettings: 'Retrieval Setting',
|
||||
rerankSettings: 'Rerank Setting',
|
||||
weightedScore: {
|
||||
title: 'Weighted Score',
|
||||
description: 'By adjusting the weights assigned, this rerank strategy determines whether to prioritize semantic or keyword matching.',
|
||||
semanticFirst: 'Semantic first',
|
||||
keywordFirst: 'Keyword first',
|
||||
customized: 'Customized',
|
||||
semantic: 'Semantic',
|
||||
keyword: 'Keyword',
|
||||
},
|
||||
nTo1RetrievalLegacy: 'N-to-1 retrieval will be officially deprecated from September. It is recommended to use the latest Multi-path retrieval to obtain better results. ',
|
||||
nTo1RetrievalLegacyLink: 'Learn more',
|
||||
nTo1RetrievalLegacyLinkText: ' N-to-1 retrieval will be officially deprecated in September.',
|
||||
batchAction: {
|
||||
selected: 'Selected',
|
||||
enable: 'Enable',
|
||||
disable: 'Disable',
|
||||
archive: 'Archive',
|
||||
delete: 'Delete',
|
||||
cancel: 'Cancel',
|
||||
},
|
||||
preprocessDocument: '{{num}} Preprocess Documents',
|
||||
allKnowledge: 'All Knowledge',
|
||||
allKnowledgeDescription: 'Select to display all knowledge in this workspace. Only the Workspace Owner can manage all knowledge.',
|
||||
embeddingModelNotAvailable: 'Embedding model is unavailable.',
|
||||
metadata: {
|
||||
metadata: 'Metadata',
|
||||
addMetadata: 'Add Metadata',
|
||||
chooseTime: 'Choose a time...',
|
||||
createMetadata: {
|
||||
title: 'New Metadata',
|
||||
back: 'Back',
|
||||
type: 'Type',
|
||||
name: 'Name',
|
||||
namePlaceholder: 'Add metadata name',
|
||||
},
|
||||
checkName: {
|
||||
empty: 'Metadata name cannot be empty',
|
||||
invalid: 'Metadata name can only contain lowercase letters, numbers, and underscores and must start with a lowercase letter',
|
||||
tooLong: 'Metadata name cannot exceed {{max}} characters',
|
||||
},
|
||||
batchEditMetadata: {
|
||||
editMetadata: 'Edit Metadata',
|
||||
editDocumentsNum: 'Editing {{num}} documents',
|
||||
applyToAllSelectDocument: 'Apply to all selected documents',
|
||||
applyToAllSelectDocumentTip: 'Automatically create all the above edited and new metadata for all selected documents, otherwise editing metadata will only apply to documents with it.',
|
||||
multipleValue: 'Multiple Value',
|
||||
},
|
||||
selectMetadata: {
|
||||
search: 'Search metadata',
|
||||
newAction: 'New Metadata',
|
||||
manageAction: 'Manage',
|
||||
},
|
||||
datasetMetadata: {
|
||||
description: 'You can manage all metadata in this knowledge here. Modifications will be synchronized to every document.',
|
||||
addMetaData: 'Add Metadata',
|
||||
values: '{{num}} Values',
|
||||
disabled: 'Disabled',
|
||||
rename: 'Rename',
|
||||
name: 'Name',
|
||||
namePlaceholder: 'Metadata name',
|
||||
builtIn: 'Built-in',
|
||||
builtInDescription: 'Built-in metadata is automatically extracted and generated. It must be enabled before use and cannot be edited.',
|
||||
deleteTitle: 'Confirm to delete',
|
||||
deleteContent: 'Are you sure you want to delete the metadata "{{name}}"',
|
||||
},
|
||||
documentMetadata: {
|
||||
metadataToolTip: 'Metadata serves as a critical filter that enhances the accuracy and relevance of information retrieval. You can modify and add metadata for this document here.',
|
||||
startLabeling: 'Start Labeling',
|
||||
documentInformation: 'Document Information',
|
||||
technicalParameters: 'Technical Parameters',
|
||||
},
|
||||
},
|
||||
serviceApi: {
|
||||
title: 'Service API',
|
||||
enabled: 'In Service',
|
||||
disabled: 'Disabled',
|
||||
card: {
|
||||
title: 'Backend service api',
|
||||
endpoint: 'Service API Endpoint',
|
||||
apiKey: 'API Key',
|
||||
apiReference: 'API Reference',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
76
dify/web/i18n/en-US/education.ts
Normal file
76
dify/web/i18n/en-US/education.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
const translation = {
|
||||
toVerified: 'Get Education Verified',
|
||||
toVerifiedTip: {
|
||||
front: 'You are now eligible for Education Verified status. Please enter your education information below to complete the process and receive an',
|
||||
coupon: 'exclusive 100% coupon',
|
||||
end: 'for the Dify Professional Plan.',
|
||||
},
|
||||
currentSigned: 'CURRENTLY SIGNED IN AS',
|
||||
form: {
|
||||
schoolName: {
|
||||
title: 'Your School Name',
|
||||
placeholder: 'Enter the official, unabbreviated name of your school',
|
||||
},
|
||||
schoolRole: {
|
||||
title: 'Your School Role',
|
||||
option: {
|
||||
student: 'Student',
|
||||
teacher: 'Teacher',
|
||||
administrator: 'School Administrator',
|
||||
},
|
||||
},
|
||||
terms: {
|
||||
title: 'Terms & Agreements',
|
||||
desc: {
|
||||
front: 'Your information and use of Education Verified status are subject to our',
|
||||
and: 'and',
|
||||
end: '. By submitting:',
|
||||
termsOfService: 'Terms of Service',
|
||||
privacyPolicy: 'Privacy Policy',
|
||||
},
|
||||
option: {
|
||||
age: 'I confirm I am at least 18 years old',
|
||||
inSchool: 'I confirm I am enrolled or employed at the institution provided. Dify may request proof of enrollment/employment. If I misrepresent my eligibility, I agree to pay any fees initially waived based on my education status.',
|
||||
},
|
||||
},
|
||||
},
|
||||
submit: 'Submit',
|
||||
submitError: 'Form submission failed. Please try again later.',
|
||||
learn: 'Learn how to get education verified',
|
||||
successTitle: 'You Have Got Dify Education Verified',
|
||||
successContent: 'We have issued a 100% discount coupon for the Dify Professional plan to your account. The coupon is valid for one year, please use it within the validity period.',
|
||||
rejectTitle: 'Your Dify Educational Verification Has Been Rejected',
|
||||
rejectContent: 'Unfortunately, you are not eligible for Education Verified status and therefore cannot receive the exclusive 100% coupon for the Dify Professional Plan if you use this email address.',
|
||||
emailLabel: 'Your current email',
|
||||
notice: {
|
||||
dateFormat: 'MM/DD/YYYY',
|
||||
expired: {
|
||||
title: 'Your education status has expired',
|
||||
summary: {
|
||||
line1: 'You can still access and use Dify. ',
|
||||
line2: 'However, you\'re no longer eligible for new education discount coupons.',
|
||||
},
|
||||
},
|
||||
isAboutToExpire: {
|
||||
title: 'Your education status will expire on {{date}}',
|
||||
summary: 'Don\'t worry — this won\'t affect your current subscription, but you won\'t get the education discount when it renews unless you verify your status again.',
|
||||
},
|
||||
stillInEducation: {
|
||||
title: 'Still in education?',
|
||||
expired: 'Re-verify now to get a new coupon for the upcoming academic year. We\'ll add it to your account and you can use it for the next upgrade.',
|
||||
isAboutToExpire: 'Re-verify now to get a new coupon for the upcoming academic year. It\'ll be saved to your account and ready to use at your next renewal.',
|
||||
},
|
||||
alreadyGraduated: {
|
||||
title: 'Already graduated?',
|
||||
expired: 'Feel free to upgrade anytime to get full access to paid features.',
|
||||
isAboutToExpire: 'Your current subscription will still remain active. When it ends, you\'ll be moved to the Sandbox plan, or you can upgrade anytime to restore full access to paid features.',
|
||||
},
|
||||
action: {
|
||||
dismiss: 'Dismiss',
|
||||
upgrade: 'Upgrade',
|
||||
reVerify: 'Re-verify',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
44
dify/web/i18n/en-US/explore.ts
Normal file
44
dify/web/i18n/en-US/explore.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const translation = {
|
||||
title: 'Explore',
|
||||
sidebar: {
|
||||
discovery: 'Discovery',
|
||||
chat: 'Chat',
|
||||
workspace: 'Workspace',
|
||||
action: {
|
||||
pin: 'Pin',
|
||||
unpin: 'Unpin',
|
||||
rename: 'Rename',
|
||||
delete: 'Delete',
|
||||
},
|
||||
delete: {
|
||||
title: 'Delete app',
|
||||
content: 'Are you sure you want to delete this app?',
|
||||
},
|
||||
},
|
||||
apps: {
|
||||
title: 'Explore Apps',
|
||||
description: 'Use these template apps instantly or customize your own apps based on the templates.',
|
||||
allCategories: 'Recommended',
|
||||
},
|
||||
appCard: {
|
||||
addToWorkspace: 'Add to Workspace',
|
||||
customize: 'Customize',
|
||||
},
|
||||
appCustomize: {
|
||||
title: 'Create app from {{name}}',
|
||||
subTitle: 'App icon & name',
|
||||
nameRequired: 'App name is required',
|
||||
},
|
||||
category: {
|
||||
Agent: 'Agent',
|
||||
Assistant: 'Assistant',
|
||||
Writing: 'Writing',
|
||||
Translate: 'Translate',
|
||||
Programming: 'Programming',
|
||||
HR: 'HR',
|
||||
Workflow: 'Workflow',
|
||||
Entertainment: 'Entertainment',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
8
dify/web/i18n/en-US/layout.ts
Normal file
8
dify/web/i18n/en-US/layout.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
const translation = {
|
||||
sidebar: {
|
||||
expandSidebar: 'Expand Sidebar',
|
||||
collapseSidebar: 'Collapse Sidebar',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
126
dify/web/i18n/en-US/login.ts
Normal file
126
dify/web/i18n/en-US/login.ts
Normal file
@@ -0,0 +1,126 @@
|
||||
const translation = {
|
||||
pageTitle: 'Log in to Dify',
|
||||
pageTitleForE: 'Hey, let\'s get started!',
|
||||
welcome: '👋 Welcome! Please log in to get started.',
|
||||
email: 'Email address',
|
||||
emailPlaceholder: 'Your email',
|
||||
password: 'Password',
|
||||
passwordPlaceholder: 'Your password',
|
||||
name: 'Username',
|
||||
namePlaceholder: 'Your username',
|
||||
forget: 'Forgot your password?',
|
||||
signBtn: 'Sign in',
|
||||
continueWithCode: 'Continue With Code',
|
||||
sendVerificationCode: 'Send Verification Code',
|
||||
usePassword: 'Use Password',
|
||||
useVerificationCode: 'Use Verification Code',
|
||||
or: 'OR',
|
||||
installBtn: 'Set up',
|
||||
setAdminAccount: 'Setting up an admin account',
|
||||
setAdminAccountDesc: 'Maximum privileges for admin account, which can be used to create applications and manage LLM providers, etc.',
|
||||
createAndSignIn: 'Create and sign in',
|
||||
oneMoreStep: 'One more step',
|
||||
createSample: 'Based on this information, we\'ll create sample application for you',
|
||||
invitationCode: 'Invitation Code',
|
||||
invitationCodePlaceholder: 'Your invitation code',
|
||||
interfaceLanguage: 'Interface Language',
|
||||
timezone: 'Time zone',
|
||||
go: 'Go to Dify',
|
||||
sendUsMail: 'Email us your introduction, and we\'ll handle the invitation request.',
|
||||
acceptPP: 'I have read and accept the privacy policy',
|
||||
reset: 'Please run following command to reset your password',
|
||||
withGitHub: 'Continue with GitHub',
|
||||
withGoogle: 'Continue with Google',
|
||||
withSSO: 'Continue with SSO',
|
||||
rightTitle: 'Unlock the full potential of LLM',
|
||||
rightDesc: 'Effortlessly build visually captivating, operable, and improvable AI applications.',
|
||||
tos: 'Terms of Service',
|
||||
pp: 'Privacy Policy',
|
||||
tosDesc: 'By signing up, you agree to our',
|
||||
goToInit: 'If you have not initialized the account, please go to the initialization page',
|
||||
dontHave: 'Don\'t have?',
|
||||
invalidInvitationCode: 'Invalid invitation code',
|
||||
accountAlreadyInited: 'Account already initialized',
|
||||
forgotPassword: 'Forgot your password?',
|
||||
resetLinkSent: 'Reset link sent',
|
||||
sendResetLink: 'Send reset link',
|
||||
backToSignIn: 'Return to sign in',
|
||||
forgotPasswordDesc: 'Please enter your email address to reset your password. We will send you an email with instructions on how to reset your password.',
|
||||
checkEmailForResetLink: 'Please check your email for a link to reset your password. If it doesn\'t appear within a few minutes, make sure to check your spam folder.',
|
||||
passwordChanged: 'Sign in now',
|
||||
changePassword: 'Set a password',
|
||||
changePasswordTip: 'Please enter a new password for your account',
|
||||
changePasswordBtn: 'Set a password',
|
||||
invalidToken: 'Invalid or expired token',
|
||||
confirmPassword: 'Confirm Password',
|
||||
confirmPasswordPlaceholder: 'Confirm your new password',
|
||||
passwordChangedTip: 'Your password has been successfully changed',
|
||||
error: {
|
||||
emailEmpty: 'Email address is required',
|
||||
emailInValid: 'Please enter a valid email address',
|
||||
nameEmpty: 'Name is required',
|
||||
passwordEmpty: 'Password is required',
|
||||
passwordLengthInValid: 'Password must be at least 8 characters',
|
||||
passwordInvalid: 'Password must contain letters and numbers, and the length must be greater than 8',
|
||||
registrationNotAllowed: 'Account not found. Please contact the system admin to register.',
|
||||
invalidEmailOrPassword: 'Invalid email or password.',
|
||||
},
|
||||
license: {
|
||||
tip: 'Before starting Dify Community Edition, read the GitHub',
|
||||
link: 'Open-source License',
|
||||
},
|
||||
join: 'Join ',
|
||||
joinTipStart: 'Invite you join ',
|
||||
joinTipEnd: ' team on Dify',
|
||||
invalid: 'The link has expired',
|
||||
explore: 'Explore Dify',
|
||||
activatedTipStart: 'You have joined the',
|
||||
activatedTipEnd: 'team',
|
||||
activated: 'Sign in now',
|
||||
adminInitPassword: 'Admin initialization password',
|
||||
validate: 'Validate',
|
||||
checkCode: {
|
||||
checkYourEmail: 'Check your email',
|
||||
tipsPrefix: 'We send a verification code to ',
|
||||
validTime: 'Bear in mind that the code is valid for 5 minutes',
|
||||
verificationCode: 'Verification code',
|
||||
verificationCodePlaceholder: 'Enter 6-digit code',
|
||||
verify: 'Verify',
|
||||
didNotReceiveCode: 'Didn\'t receive the code? ',
|
||||
resend: 'Resend',
|
||||
useAnotherMethod: 'Use another method',
|
||||
emptyCode: 'Code is required',
|
||||
invalidCode: 'Invalid code',
|
||||
},
|
||||
resetPassword: 'Reset Password',
|
||||
resetPasswordDesc: 'Type the email you used to sign up on Dify and we will send you a password reset email.',
|
||||
backToLogin: 'Back to login',
|
||||
setYourAccount: 'Set Your Account',
|
||||
enterYourName: 'Please enter your username',
|
||||
back: 'Back',
|
||||
noLoginMethod: 'Authentication method not configured',
|
||||
noLoginMethodTip: 'Please contact the system admin to add an authentication method.',
|
||||
licenseExpired: 'License Expired',
|
||||
licenseExpiredTip: 'The Dify Enterprise license for your workspace has expired. Please contact your administrator to continue using Dify.',
|
||||
licenseLost: 'License Lost',
|
||||
licenseLostTip: 'Failed to connect Dify license server. Please contact your administrator to continue using Dify.',
|
||||
licenseInactive: 'License Inactive',
|
||||
licenseInactiveTip: 'The Dify Enterprise license for your workspace is inactive. Please contact your administrator to continue using Dify.',
|
||||
webapp: {
|
||||
login: 'Login',
|
||||
noLoginMethod: 'Authentication method not configured for web app',
|
||||
noLoginMethodTip: 'Please contact the system admin to add an authentication method.',
|
||||
disabled: 'Webapp authentication is disabled. Please contact the system admin to enable it. You can try to use the app directly.',
|
||||
},
|
||||
signup: {
|
||||
noAccount: 'Don’t have an account? ',
|
||||
signUp: 'Sign Up',
|
||||
createAccount: 'Create your account',
|
||||
welcome: '👋 Welcome! Please fill in the details to get started.',
|
||||
verifyMail: 'Continue with verification code',
|
||||
haveAccount: 'Already have an account? ',
|
||||
signIn: 'Sign In',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
27
dify/web/i18n/en-US/oauth.ts
Normal file
27
dify/web/i18n/en-US/oauth.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
const translation = {
|
||||
tips: {
|
||||
loggedIn: 'This app wants to access the following information from your Dify Cloud account.',
|
||||
notLoggedIn: 'This app wants to access your Dify Cloud account',
|
||||
needLogin: 'Please log in to authorize',
|
||||
common: 'We respect your privacy and will only use this information to enhance your experience with our developer tools.',
|
||||
},
|
||||
connect: 'Connect to',
|
||||
continue: 'Continue',
|
||||
switchAccount: 'Switch Account',
|
||||
login: 'Login',
|
||||
scopes: {
|
||||
name: 'Name',
|
||||
email: 'Email',
|
||||
avatar: 'Avatar',
|
||||
languagePreference: 'Language Preference',
|
||||
timezone: 'Timezone',
|
||||
},
|
||||
error: {
|
||||
invalidParams: 'Invalid parameters',
|
||||
authorizeFailed: 'Authorization failed',
|
||||
authAppInfoFetchFailed: 'Failed to fetch app info for authorization',
|
||||
},
|
||||
unknownApp: 'Unknown App',
|
||||
}
|
||||
|
||||
export default translation
|
||||
40
dify/web/i18n/en-US/pipeline.ts
Normal file
40
dify/web/i18n/en-US/pipeline.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
const translation = {
|
||||
common: {
|
||||
goToAddDocuments: 'Go to add documents',
|
||||
publishAs: 'Publish as a Customized Pipeline Template',
|
||||
confirmPublish: 'Confirm Publish',
|
||||
confirmPublishContent: 'After successfully publishing the knowledge pipeline, the chunk structure of this knowledge base cannot be modified. Are you sure you want to publish it?',
|
||||
publishAsPipeline: {
|
||||
name: 'Pipeline name & icon',
|
||||
namePlaceholder: 'Please enter the name of this Knowledge Pipeline. (Required) ',
|
||||
description: 'Knowledge description',
|
||||
descriptionPlaceholder: 'Please enter the description of this Knowledge Pipeline. (Optional) ',
|
||||
},
|
||||
testRun: 'Test Run',
|
||||
preparingDataSource: 'Preparing Data Source',
|
||||
reRun: 'Re-run',
|
||||
processing: 'Processing',
|
||||
},
|
||||
inputField: {
|
||||
create: 'Create user input field',
|
||||
manage: 'Manage',
|
||||
},
|
||||
publishToast: {
|
||||
title: 'This pipeline has not yet been published',
|
||||
desc: 'When the pipeline is not published, you can modify the chunk structure in the knowledge base node, and the pipeline orchestration and changes will be automatically saved as a draft.',
|
||||
},
|
||||
result: {
|
||||
resultPreview: {
|
||||
loading: 'Processing...Please wait',
|
||||
error: 'Error occurred during execution',
|
||||
viewDetails: 'View details',
|
||||
footerTip: 'In test run mode, preview up to {{count}} chunks',
|
||||
},
|
||||
},
|
||||
ragToolSuggestions: {
|
||||
title: 'Suggestions for RAG',
|
||||
noRecommendationPlugins: 'No recommended plugins, find more in <CustomLink>Marketplace</CustomLink>',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
26
dify/web/i18n/en-US/plugin-tags.ts
Normal file
26
dify/web/i18n/en-US/plugin-tags.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
const translation = {
|
||||
allTags: 'All Tags',
|
||||
searchTags: 'Search Tags',
|
||||
tags: {
|
||||
agent: 'Agent',
|
||||
rag: 'RAG',
|
||||
search: 'Search',
|
||||
image: 'Image',
|
||||
videos: 'Videos',
|
||||
weather: 'Weather',
|
||||
finance: 'Finance',
|
||||
design: 'Design',
|
||||
travel: 'Travel',
|
||||
social: 'Social',
|
||||
news: 'News',
|
||||
medical: 'Medical',
|
||||
productivity: 'Productivity',
|
||||
education: 'Education',
|
||||
business: 'Business',
|
||||
entertainment: 'Entertainment',
|
||||
utilities: 'Utilities',
|
||||
other: 'Other',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
186
dify/web/i18n/en-US/plugin-trigger.ts
Normal file
186
dify/web/i18n/en-US/plugin-trigger.ts
Normal file
@@ -0,0 +1,186 @@
|
||||
const translation = {
|
||||
subscription: {
|
||||
title: 'Subscriptions',
|
||||
listNum: '{{num}} subscriptions',
|
||||
empty: {
|
||||
title: 'No subscriptions',
|
||||
button: 'New subscription',
|
||||
},
|
||||
createButton: {
|
||||
oauth: 'New subscription with OAuth',
|
||||
apiKey: 'New subscription with API Key',
|
||||
manual: 'Paste URL to create a new subscription',
|
||||
},
|
||||
createSuccess: 'Subscription created successfully',
|
||||
createFailed: 'Failed to create subscription',
|
||||
maxCount: 'Max {{num}} subscriptions',
|
||||
selectPlaceholder: 'Select subscription',
|
||||
noSubscriptionSelected: 'No subscription selected',
|
||||
subscriptionRemoved: 'Subscription removed',
|
||||
list: {
|
||||
title: 'Subscriptions',
|
||||
addButton: 'Add',
|
||||
tip: 'Receive events via Subscription',
|
||||
item: {
|
||||
enabled: 'Enabled',
|
||||
disabled: 'Disabled',
|
||||
credentialType: {
|
||||
api_key: 'API Key',
|
||||
oauth2: 'OAuth',
|
||||
unauthorized: 'Manual',
|
||||
},
|
||||
actions: {
|
||||
delete: 'Delete',
|
||||
deleteConfirm: {
|
||||
title: 'Delete {{name}}?',
|
||||
success: 'Subscription {{name}} deleted successfully',
|
||||
error: 'Failed to delete subscription {{name}}',
|
||||
content: 'Once deleted, this subscription cannot be recovered. Please confirm.',
|
||||
contentWithApps: 'The current subscription is referenced by {{count}} applications. Deleting it will cause the configured applications to stop receiving subscription events.',
|
||||
confirm: 'Confirm Delete',
|
||||
cancel: 'Cancel',
|
||||
confirmInputWarning: 'Please enter the correct name to confirm.',
|
||||
confirmInputPlaceholder: 'Enter "{{name}}" to confirm.',
|
||||
confirmInputTip: 'Please enter “{{name}}” to confirm.',
|
||||
},
|
||||
},
|
||||
status: {
|
||||
active: 'Active',
|
||||
inactive: 'Inactive',
|
||||
},
|
||||
usedByNum: 'Used by {{num}} workflows',
|
||||
noUsed: 'No workflow used',
|
||||
},
|
||||
},
|
||||
addType: {
|
||||
title: 'Add subscription',
|
||||
description: 'Choose how you want to create your trigger subscription',
|
||||
options: {
|
||||
apikey: {
|
||||
title: 'Create with API Key',
|
||||
description: 'Automatically create subscription using API credentials',
|
||||
},
|
||||
oauth: {
|
||||
title: 'Create with OAuth',
|
||||
description: 'Authorize with third-party platform to create subscription',
|
||||
clientSettings: 'OAuth Client Settings',
|
||||
clientTitle: 'OAuth Client',
|
||||
default: 'Default',
|
||||
custom: 'Custom',
|
||||
},
|
||||
manual: {
|
||||
title: 'Manual Setup',
|
||||
description: 'Paste URL to create a new subscription',
|
||||
tip: 'Configure URL on third-party platform manually',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
modal: {
|
||||
steps: {
|
||||
verify: 'Verify',
|
||||
configuration: 'Configuration',
|
||||
},
|
||||
common: {
|
||||
cancel: 'Cancel',
|
||||
back: 'Back',
|
||||
next: 'Next',
|
||||
create: 'Create',
|
||||
verify: 'Verify',
|
||||
authorize: 'Authorize',
|
||||
creating: 'Creating...',
|
||||
verifying: 'Verifying...',
|
||||
authorizing: 'Authorizing...',
|
||||
},
|
||||
oauthRedirectInfo: 'As no system client secrets found for this tool provider, setup it manually is required, for redirect_uri, please use',
|
||||
apiKey: {
|
||||
title: 'Create with API Key',
|
||||
verify: {
|
||||
title: 'Verify Credentials',
|
||||
description: 'Please provide your API credentials to verify access',
|
||||
error: 'Credential verification failed. Please check your API key.',
|
||||
success: 'Credentials verified successfully',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Configure Subscription',
|
||||
description: 'Set up your subscription parameters',
|
||||
},
|
||||
},
|
||||
oauth: {
|
||||
title: 'Create with OAuth',
|
||||
authorization: {
|
||||
title: 'OAuth Authorization',
|
||||
description: 'Authorize Dify to access your account',
|
||||
redirectUrl: 'Redirect URL',
|
||||
redirectUrlHelp: 'Use this URL in your OAuth app configuration',
|
||||
authorizeButton: 'Authorize with {{provider}}',
|
||||
waitingAuth: 'Waiting for authorization...',
|
||||
authSuccess: 'Authorization successful',
|
||||
authFailed: 'Failed to get OAuth authorization information',
|
||||
waitingJump: 'Authorized, waiting for jump',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Configure Subscription',
|
||||
description: 'Set up your subscription parameters after authorization',
|
||||
success: 'OAuth configuration successful',
|
||||
failed: 'OAuth configuration failed',
|
||||
},
|
||||
remove: {
|
||||
success: 'OAuth remove successful',
|
||||
failed: 'OAuth remove failed',
|
||||
},
|
||||
save: {
|
||||
success: 'OAuth configuration saved successfully',
|
||||
},
|
||||
},
|
||||
manual: {
|
||||
title: 'Manual Setup',
|
||||
description: 'Configure your webhook subscription manually',
|
||||
logs: {
|
||||
title: 'Request Logs',
|
||||
request: 'Request',
|
||||
loading: 'Awaiting request from {{pluginName}}...',
|
||||
},
|
||||
},
|
||||
form: {
|
||||
subscriptionName: {
|
||||
label: 'Subscription Name',
|
||||
placeholder: 'Enter subscription name',
|
||||
required: 'Subscription name is required',
|
||||
},
|
||||
callbackUrl: {
|
||||
label: 'Callback URL',
|
||||
description: 'This URL will receive webhook events',
|
||||
tooltip: 'Provide a publicly accessible endpoint that can receive callback requests from the trigger provider.',
|
||||
placeholder: 'Generating...',
|
||||
privateAddressWarning: 'This URL appears to be an internal address, which may cause webhook requests to fail. You may change TRIGGER_URL to a public address.',
|
||||
},
|
||||
},
|
||||
errors: {
|
||||
createFailed: 'Failed to create subscription',
|
||||
verifyFailed: 'Failed to verify credentials',
|
||||
authFailed: 'Authorization failed',
|
||||
networkError: 'Network error, please try again',
|
||||
},
|
||||
},
|
||||
events: {
|
||||
title: 'Available Events',
|
||||
description: 'Events that this trigger plugin can subscribe to',
|
||||
empty: 'No events available',
|
||||
event: 'Event',
|
||||
events: 'Events',
|
||||
actionNum: '{{num}} {{event}} INCLUDED',
|
||||
item: {
|
||||
parameters: '{{count}} parameters',
|
||||
noParameters: 'No parameters',
|
||||
},
|
||||
output: 'Output',
|
||||
},
|
||||
node: {
|
||||
status: {
|
||||
warning: 'Disconnect',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
320
dify/web/i18n/en-US/plugin.ts
Normal file
320
dify/web/i18n/en-US/plugin.ts
Normal file
@@ -0,0 +1,320 @@
|
||||
const translation = {
|
||||
metadata: {
|
||||
title: 'Plugins',
|
||||
},
|
||||
category: {
|
||||
all: 'All',
|
||||
models: 'Models',
|
||||
tools: 'Tools',
|
||||
agents: 'Agent Strategies',
|
||||
extensions: 'Extensions',
|
||||
triggers: 'Triggers',
|
||||
bundles: 'Bundles',
|
||||
datasources: 'Data Sources',
|
||||
},
|
||||
categorySingle: {
|
||||
model: 'Model',
|
||||
tool: 'Tool',
|
||||
agent: 'Agent Strategy',
|
||||
extension: 'Extension',
|
||||
trigger: 'Trigger',
|
||||
bundle: 'Bundle',
|
||||
datasource: 'Data Source',
|
||||
},
|
||||
search: 'Search',
|
||||
allCategories: 'All Categories',
|
||||
searchCategories: 'Search Categories',
|
||||
searchPlugins: 'Search plugins',
|
||||
from: 'From',
|
||||
findMoreInMarketplace: 'Find more in Marketplace',
|
||||
searchInMarketplace: 'Search in Marketplace',
|
||||
fromMarketplace: 'From Marketplace',
|
||||
endpointsEnabled: '{{num}} sets of endpoints enabled',
|
||||
searchTools: 'Search tools...',
|
||||
installPlugin: 'Install plugin',
|
||||
installFrom: 'INSTALL FROM',
|
||||
deprecated: 'Deprecated',
|
||||
list: {
|
||||
noInstalled: 'No plugins installed',
|
||||
notFound: 'No plugins found',
|
||||
source: {
|
||||
marketplace: 'Install from Marketplace',
|
||||
github: 'Install from GitHub',
|
||||
local: 'Install from Local Package File',
|
||||
},
|
||||
},
|
||||
source: {
|
||||
marketplace: 'Marketplace',
|
||||
github: 'GitHub',
|
||||
local: 'Local Package File',
|
||||
},
|
||||
detailPanel: {
|
||||
switchVersion: 'Switch Version',
|
||||
categoryTip: {
|
||||
marketplace: 'Installed from Marketplace',
|
||||
github: 'Installed from Github',
|
||||
local: 'Local Plugin',
|
||||
debugging: 'Debugging Plugin',
|
||||
},
|
||||
operation: {
|
||||
install: 'Install',
|
||||
detail: 'Details',
|
||||
update: 'Update',
|
||||
info: 'Plugin Info',
|
||||
checkUpdate: 'Check Update',
|
||||
viewDetail: 'View Detail',
|
||||
remove: 'Remove',
|
||||
back: 'Back',
|
||||
},
|
||||
actionNum: '{{num}} {{action}} INCLUDED',
|
||||
strategyNum: '{{num}} {{strategy}} INCLUDED',
|
||||
endpoints: 'Endpoints',
|
||||
endpointsTip: 'This plugin provides specific functionalities via endpoints, and you can configure multiple endpoint sets for current workspace.',
|
||||
endpointsDocLink: 'View the document',
|
||||
endpointsEmpty: 'Click the \'+\' button to add an endpoint',
|
||||
endpointDisableTip: 'Disable Endpoint',
|
||||
endpointDisableContent: 'Would you like to disable {{name}}? ',
|
||||
endpointDeleteTip: 'Remove Endpoint',
|
||||
endpointDeleteContent: 'Would you like to remove {{name}}? ',
|
||||
endpointModalTitle: 'Setup endpoint',
|
||||
endpointModalDesc: 'Once configured, the features provided by the plugin via API endpoints can be used.',
|
||||
serviceOk: 'Service OK',
|
||||
disabled: 'Disabled',
|
||||
modelNum: '{{num}} MODELS INCLUDED',
|
||||
toolSelector: {
|
||||
title: 'Add tool',
|
||||
toolSetting: 'Tool Settings',
|
||||
toolLabel: 'Tool',
|
||||
descriptionLabel: 'Tool description',
|
||||
descriptionPlaceholder: 'Brief description of the tool\'s purpose, e.g., get the temperature for a specific location.',
|
||||
placeholder: 'Select a tool...',
|
||||
settings: 'USER SETTINGS',
|
||||
params: 'REASONING CONFIG',
|
||||
paramsTip1: 'Controls LLM inference parameters.',
|
||||
paramsTip2: 'When \'Auto\' is off, the default value is used.',
|
||||
auto: 'Auto',
|
||||
empty: 'Click the \'+\' button to add tools. You can add multiple tools.',
|
||||
uninstalledTitle: 'Tool not installed',
|
||||
uninstalledContent: 'This plugin is installed from the local/GitHub repository. Please use after installation.',
|
||||
uninstalledLink: 'Manage in Plugins',
|
||||
unsupportedTitle: 'Unsupported Action',
|
||||
unsupportedContent: 'The installed plugin version does not provide this action.',
|
||||
unsupportedContent2: 'Click to switch version.',
|
||||
unsupportedMCPTool: 'Currently selected agent strategy plugin version does not support MCP tools.',
|
||||
},
|
||||
configureApp: 'Configure App',
|
||||
configureModel: 'Configure model',
|
||||
configureTool: 'Configure tool',
|
||||
deprecation: {
|
||||
fullMessage: 'This plugin has been deprecated due to {{deprecatedReason}}, and will no longer be updated. Please use <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> instead.',
|
||||
onlyReason: 'This plugin has been deprecated due to {{deprecatedReason}} and will no longer be updated.',
|
||||
noReason: 'This plugin has been deprecated and will no longer be updated.',
|
||||
reason: {
|
||||
businessAdjustments: 'business adjustments',
|
||||
ownershipTransferred: 'ownership transferred',
|
||||
noMaintainer: 'no maintainer',
|
||||
},
|
||||
},
|
||||
},
|
||||
install: '{{num}} installs',
|
||||
installAction: 'Install',
|
||||
debugInfo: {
|
||||
title: 'Debugging',
|
||||
viewDocs: 'View Docs',
|
||||
},
|
||||
privilege: {
|
||||
title: 'Plugin Preferences',
|
||||
whoCanInstall: 'Who can install and manage plugins?',
|
||||
whoCanDebug: 'Who can debug plugins?',
|
||||
everyone: 'Everyone',
|
||||
admins: 'Admins',
|
||||
noone: 'No one',
|
||||
},
|
||||
autoUpdate: {
|
||||
automaticUpdates: 'Automatic updates',
|
||||
updateTime: 'Update time',
|
||||
specifyPluginsToUpdate: 'Specify plugins to update',
|
||||
strategy: {
|
||||
disabled: {
|
||||
name: 'Disabled',
|
||||
description: 'Plugins will not auto-update',
|
||||
},
|
||||
fixOnly: {
|
||||
name: 'Fix Only',
|
||||
description: 'Auto-update for patch versions only (e.g., 1.0.1 → 1.0.2). Minor version changes won\'t trigger updates.',
|
||||
selectedDescription: 'Auto-update for patch versions only',
|
||||
},
|
||||
latest: {
|
||||
name: 'Latest',
|
||||
description: 'Always update to latest version',
|
||||
selectedDescription: 'Always update to latest version',
|
||||
},
|
||||
},
|
||||
updateTimeTitle: 'Update time',
|
||||
upgradeMode: {
|
||||
all: 'Update all',
|
||||
exclude: 'Exclude selected',
|
||||
partial: 'Only selected',
|
||||
},
|
||||
upgradeModePlaceholder: {
|
||||
exclude: 'Selected plugins will not auto-update',
|
||||
partial: 'Only selected plugins will auto-update. No plugins are currently selected, so no plugins will auto-update.',
|
||||
},
|
||||
excludeUpdate: 'The following {{num}} plugins will not auto-update',
|
||||
partialUPdate: 'Only the following {{num}} plugins will auto-update',
|
||||
operation: {
|
||||
clearAll: 'Clear all',
|
||||
select: 'Select plugins',
|
||||
},
|
||||
nextUpdateTime: 'Next auto-update: {{time}}',
|
||||
pluginDowngradeWarning: {
|
||||
title: 'Plugin Downgrade',
|
||||
description: 'Auto-update is currently enabled for this plugin. Downgrading the version may cause your changes to be overwritten during the next automatic update.',
|
||||
downgrade: 'Downgrade anyway',
|
||||
exclude: 'Exclude from auto-update',
|
||||
},
|
||||
noPluginPlaceholder: {
|
||||
noFound: 'No plugins were found',
|
||||
noInstalled: 'No plugins installed',
|
||||
},
|
||||
updateSettings: 'Update Settings',
|
||||
changeTimezone: 'To change time zone, go to <setTimezone>Settings</setTimezone>',
|
||||
},
|
||||
pluginInfoModal: {
|
||||
title: 'Plugin info',
|
||||
repository: 'Repository',
|
||||
release: 'Release',
|
||||
packageName: 'Package',
|
||||
},
|
||||
action: {
|
||||
checkForUpdates: 'Check for updates',
|
||||
pluginInfo: 'Plugin info',
|
||||
delete: 'Remove plugin',
|
||||
deleteContentLeft: 'Would you like to remove ',
|
||||
deleteContentRight: ' plugin?',
|
||||
usedInApps: 'This plugin is being used in {{num}} apps.',
|
||||
},
|
||||
installModal: {
|
||||
installPlugin: 'Install Plugin',
|
||||
installComplete: 'Installation complete',
|
||||
installedSuccessfully: 'Installation successful',
|
||||
installedSuccessfullyDesc: 'The plugin has been installed successfully.',
|
||||
uploadFailed: 'Upload failed',
|
||||
installFailed: 'Installation failed',
|
||||
installFailedDesc: 'The plugin has been installed failed.',
|
||||
install: 'Install',
|
||||
installing: 'Installing...',
|
||||
uploadingPackage: 'Uploading {{packageName}}...',
|
||||
readyToInstall: 'About to install the following plugin',
|
||||
readyToInstallPackage: 'About to install the following plugin',
|
||||
readyToInstallPackages: 'About to install the following {{num}} plugins',
|
||||
fromTrustSource: 'Please make sure that you only install plugins from a <trustSource>trusted source</trustSource>.',
|
||||
dropPluginToInstall: 'Drop plugin package here to install',
|
||||
labels: {
|
||||
repository: 'Repository',
|
||||
version: 'Version',
|
||||
package: 'Package',
|
||||
},
|
||||
close: 'Close',
|
||||
cancel: 'Cancel',
|
||||
back: 'Back',
|
||||
next: 'Next',
|
||||
pluginLoadError: 'Plugin load error',
|
||||
pluginLoadErrorDesc: 'This plugin will not be installed',
|
||||
installWarning: 'This plugin is not allowed to be installed.',
|
||||
},
|
||||
installFromGitHub: {
|
||||
installPlugin: 'Install plugin from GitHub',
|
||||
updatePlugin: 'Update plugin from GitHub',
|
||||
installedSuccessfully: 'Installation successful',
|
||||
installFailed: 'Installation failed',
|
||||
uploadFailed: 'Upload failed',
|
||||
gitHubRepo: 'GitHub repository',
|
||||
selectVersion: 'Select version',
|
||||
selectVersionPlaceholder: 'Please select a version',
|
||||
installNote: 'Please make sure that you only install plugins from a trusted source.',
|
||||
selectPackage: 'Select package',
|
||||
selectPackagePlaceholder: 'Please select a package',
|
||||
},
|
||||
upgrade: {
|
||||
title: 'Install Plugin',
|
||||
successfulTitle: 'Install successful',
|
||||
description: 'About to install the following plugin',
|
||||
usedInApps: 'Used in {{num}} apps',
|
||||
upgrade: 'Install',
|
||||
upgrading: 'Installing...',
|
||||
close: 'Close',
|
||||
},
|
||||
error: {
|
||||
inValidGitHubUrl: 'Invalid GitHub URL. Please enter a valid URL in the format: https://github.com/owner/repo',
|
||||
fetchReleasesError: 'Unable to retrieve releases. Please try again later.',
|
||||
noReleasesFound: 'No releases found. Please check the GitHub repository or the input URL.',
|
||||
},
|
||||
marketplace: {
|
||||
empower: 'Empower your AI development',
|
||||
discover: 'Discover',
|
||||
and: 'and',
|
||||
difyMarketplace: 'Dify Marketplace',
|
||||
moreFrom: 'More from Marketplace',
|
||||
noPluginFound: 'No plugin found',
|
||||
pluginsResult: '{{num}} results',
|
||||
sortBy: 'Sort by',
|
||||
sortOption: {
|
||||
mostPopular: 'Most Popular',
|
||||
recentlyUpdated: 'Recently Updated',
|
||||
newlyReleased: 'Newly Released',
|
||||
firstReleased: 'First Released',
|
||||
},
|
||||
viewMore: 'View more',
|
||||
verifiedTip: 'Verified by Dify',
|
||||
partnerTip: 'Verified by a Dify partner',
|
||||
},
|
||||
task: {
|
||||
installing: 'Installing {{installingLength}} plugins, 0 done.',
|
||||
installingWithSuccess: 'Installing {{installingLength}} plugins, {{successLength}} success.',
|
||||
installingWithError: 'Installing {{installingLength}} plugins, {{successLength}} success, {{errorLength}} failed',
|
||||
installError: '{{errorLength}} plugins failed to install, click to view',
|
||||
installedError: '{{errorLength}} plugins failed to install',
|
||||
clearAll: 'Clear all',
|
||||
},
|
||||
requestAPlugin: 'Request a plugin',
|
||||
publishPlugins: 'Publish plugins',
|
||||
difyVersionNotCompatible: 'The current Dify version is not compatible with this plugin, please upgrade to the minimum version required: {{minimalDifyVersion}}',
|
||||
auth: {
|
||||
default: 'Default',
|
||||
custom: 'Custom',
|
||||
setDefault: 'Set as default',
|
||||
useOAuth: 'Use OAuth',
|
||||
useOAuthAuth: 'Use OAuth Authorization',
|
||||
addOAuth: 'Add OAuth',
|
||||
setupOAuth: 'Setup OAuth Client',
|
||||
useApi: 'Use API Key',
|
||||
addApi: 'Add API Key',
|
||||
useApiAuth: 'API Key Authorization Configuration',
|
||||
useApiAuthDesc: 'After configuring credentials, all members within the workspace can use this tool when orchestrating applications.',
|
||||
oauthClientSettings: 'OAuth Client Settings',
|
||||
saveOnly: 'Save only',
|
||||
saveAndAuth: 'Save and Authorize',
|
||||
authorization: 'Authorization',
|
||||
authorizations: 'Authorizations',
|
||||
authorizationName: 'Authorization Name',
|
||||
workspaceDefault: 'Workspace Default',
|
||||
authRemoved: 'Auth removed',
|
||||
clientInfo: 'As no system client secrets found for this tool provider, setup it manually is required, for redirect_uri, please use',
|
||||
oauthClient: 'OAuth Client',
|
||||
credentialUnavailable: 'Credentials currently unavailable. Please contact admin.',
|
||||
credentialUnavailableInButton: 'Credential unavailable',
|
||||
customCredentialUnavailable: 'Custom credentials currently unavailable',
|
||||
unavailable: 'Unavailable',
|
||||
connectedWorkspace: 'Connected Workspace',
|
||||
emptyAuth: 'Please configure authentication',
|
||||
},
|
||||
readmeInfo: {
|
||||
title: 'README',
|
||||
needHelpCheckReadme: 'Need help? Check the README.',
|
||||
noReadmeAvailable: 'No README available',
|
||||
failedToFetch: 'Failed to fetch README',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
4
dify/web/i18n/en-US/register.ts
Normal file
4
dify/web/i18n/en-US/register.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
const translation = {
|
||||
}
|
||||
|
||||
export default translation
|
||||
31
dify/web/i18n/en-US/run-log.ts
Normal file
31
dify/web/i18n/en-US/run-log.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
const translation = {
|
||||
input: 'INPUT',
|
||||
result: 'RESULT',
|
||||
detail: 'DETAIL',
|
||||
tracing: 'TRACING',
|
||||
resultPanel: {
|
||||
status: 'STATUS',
|
||||
time: 'ELAPSED TIME',
|
||||
tokens: 'TOTAL TOKENS',
|
||||
},
|
||||
meta: {
|
||||
title: 'METADATA',
|
||||
status: 'Status',
|
||||
version: 'Version',
|
||||
executor: 'Executor',
|
||||
startTime: 'Start Time',
|
||||
time: 'Elapsed Time',
|
||||
tokens: 'Total Tokens',
|
||||
steps: 'Run Steps',
|
||||
},
|
||||
resultEmpty: {
|
||||
title: 'This run only output JSON format,',
|
||||
tipLeft: 'please go to the ',
|
||||
link: 'detail panel',
|
||||
tipRight: ' view it.',
|
||||
},
|
||||
actionLogs: 'Action Logs',
|
||||
circularInvocationTip: 'There is circular invocation of tools/nodes in the current workflow.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
86
dify/web/i18n/en-US/share.ts
Normal file
86
dify/web/i18n/en-US/share.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
const translation = {
|
||||
common: {
|
||||
welcome: '',
|
||||
appUnavailable: 'App is unavailable',
|
||||
appUnknownError: 'App is unavailable',
|
||||
},
|
||||
chat: {
|
||||
newChat: 'Start New chat',
|
||||
newChatTip: 'Already in a new chat',
|
||||
chatSettingsTitle: 'New chat setup',
|
||||
chatFormTip: 'Chat settings cannot be modified after the chat has started.',
|
||||
pinnedTitle: 'Pinned',
|
||||
unpinnedTitle: 'Recent',
|
||||
newChatDefaultName: 'New conversation',
|
||||
resetChat: 'Reset conversation',
|
||||
viewChatSettings: 'View chat settings',
|
||||
poweredBy: 'Powered by',
|
||||
prompt: 'Prompt',
|
||||
privatePromptConfigTitle: 'Conversation settings',
|
||||
publicPromptConfigTitle: 'Initial Prompt',
|
||||
configStatusDes: 'Before starting, you can modify the conversation settings',
|
||||
configDisabled:
|
||||
'Previous session settings have been used for this session.',
|
||||
startChat: 'Start Chat',
|
||||
privacyPolicyLeft:
|
||||
'Please read the ',
|
||||
privacyPolicyMiddle:
|
||||
'privacy policy',
|
||||
privacyPolicyRight:
|
||||
' provided by the app developer.',
|
||||
deleteConversation: {
|
||||
title: 'Delete conversation',
|
||||
content: 'Are you sure you want to delete this conversation?',
|
||||
},
|
||||
tryToSolve: 'Try to solve',
|
||||
temporarySystemIssue: 'Sorry, temporary system issue.',
|
||||
expand: 'Expand',
|
||||
collapse: 'Collapse',
|
||||
},
|
||||
generation: {
|
||||
tabs: {
|
||||
create: 'Run Once',
|
||||
batch: 'Run Batch',
|
||||
saved: 'Saved',
|
||||
},
|
||||
savedNoData: {
|
||||
title: 'You haven\'t saved a result yet!',
|
||||
description: 'Start generating content, and find your saved results here.',
|
||||
startCreateContent: 'Start create content',
|
||||
},
|
||||
title: 'AI Completion',
|
||||
queryTitle: 'Query content',
|
||||
completionResult: 'Completion result',
|
||||
queryPlaceholder: 'Write your query content...',
|
||||
run: 'Execute',
|
||||
execution: 'Run',
|
||||
executions: '{{num}} runs',
|
||||
copy: 'Copy',
|
||||
resultTitle: 'AI Completion',
|
||||
noData: 'AI will give you what you want here.',
|
||||
csvUploadTitle: 'Drag and drop your CSV file here, or ',
|
||||
browse: 'browse',
|
||||
csvStructureTitle: 'The CSV file must conform to the following structure:',
|
||||
downloadTemplate: 'Download the template here',
|
||||
field: 'Field',
|
||||
stopRun: 'Stop Run',
|
||||
batchFailed: {
|
||||
info: '{{num}} failed executions',
|
||||
retry: 'Retry',
|
||||
outputPlaceholder: 'No output content',
|
||||
},
|
||||
errorMsg: {
|
||||
empty: 'Please input content in the uploaded file.',
|
||||
fileStructNotMatch: 'The uploaded CSV file not match the struct.',
|
||||
emptyLine: 'Row {{rowIndex}} is empty',
|
||||
invalidLine: 'Row {{rowIndex}}: {{varName}} value can not be empty',
|
||||
moreThanMaxLengthLine: 'Row {{rowIndex}}: {{varName}} value can not be more than {{maxLength}} characters',
|
||||
atLeastOne: 'Please input at least one row in the uploaded file.',
|
||||
},
|
||||
},
|
||||
login: {
|
||||
backToHome: 'Back to Home',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
45
dify/web/i18n/en-US/time.ts
Normal file
45
dify/web/i18n/en-US/time.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
const translation = {
|
||||
daysInWeek: {
|
||||
Sun: 'Sun',
|
||||
Mon: 'Mon',
|
||||
Tue: 'Tue',
|
||||
Wed: 'Wed',
|
||||
Thu: 'Thu',
|
||||
Fri: 'Fri',
|
||||
Sat: 'Sat',
|
||||
},
|
||||
months: {
|
||||
January: 'January',
|
||||
February: 'February',
|
||||
March: 'March',
|
||||
April: 'April',
|
||||
May: 'May',
|
||||
June: 'June',
|
||||
July: 'July',
|
||||
August: 'August',
|
||||
September: 'September',
|
||||
October: 'October',
|
||||
November: 'November',
|
||||
December: 'December',
|
||||
},
|
||||
operation: {
|
||||
now: 'Now',
|
||||
ok: 'OK',
|
||||
cancel: 'Cancel',
|
||||
pickDate: 'Pick Date',
|
||||
},
|
||||
title: {
|
||||
pickTime: 'Pick Time',
|
||||
},
|
||||
defaultPlaceholder: 'Pick a time...',
|
||||
// Date format configurations
|
||||
dateFormats: {
|
||||
display: 'MMMM D, YYYY',
|
||||
displayWithTime: 'MMMM D, YYYY hh:mm A',
|
||||
input: 'YYYY-MM-DD',
|
||||
output: 'YYYY-MM-DD',
|
||||
outputWithTime: 'YYYY-MM-DDTHH:mm:ss.SSSZ',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
257
dify/web/i18n/en-US/tools.ts
Normal file
257
dify/web/i18n/en-US/tools.ts
Normal file
@@ -0,0 +1,257 @@
|
||||
const translation = {
|
||||
title: 'Tools',
|
||||
createCustomTool: 'Create Custom Tool',
|
||||
customToolTip: 'Learn more about Dify custom tools',
|
||||
type: {
|
||||
builtIn: 'Tools',
|
||||
custom: 'Custom',
|
||||
workflow: 'Workflow',
|
||||
},
|
||||
contribute: {
|
||||
line1: 'I\'m interested in ',
|
||||
line2: 'contributing tools to Dify.',
|
||||
viewGuide: 'View the guide',
|
||||
},
|
||||
author: 'By',
|
||||
auth: {
|
||||
authorized: 'Authorized',
|
||||
setup: 'Set up authorization to use',
|
||||
setupModalTitle: 'Set Up Authorization',
|
||||
setupModalTitleDescription: 'After configuring credentials, all members within the workspace can use this tool when orchestrating applications.',
|
||||
},
|
||||
includeToolNum: '{{num}} {{action}} included',
|
||||
addToolModal: {
|
||||
type: 'type',
|
||||
category: 'category',
|
||||
added: 'added',
|
||||
custom: {
|
||||
title: 'No custom tool available',
|
||||
tip: 'Create a custom tool',
|
||||
},
|
||||
workflow: {
|
||||
title: 'No workflow tool available',
|
||||
tip: 'Publish workflows as tools in Studio',
|
||||
},
|
||||
mcp: {
|
||||
title: 'No MCP tool available',
|
||||
tip: 'Add an MCP server',
|
||||
},
|
||||
agent: {
|
||||
title: 'No agent strategy available',
|
||||
},
|
||||
},
|
||||
createTool: {
|
||||
title: 'Create Custom Tool',
|
||||
editAction: 'Configure',
|
||||
editTitle: 'Edit Custom Tool',
|
||||
name: 'Name',
|
||||
toolNamePlaceHolder: 'Enter the tool name',
|
||||
nameForToolCall: 'Tool call name',
|
||||
nameForToolCallPlaceHolder: 'Used for machine recognition, such as getCurrentWeather, list_pets',
|
||||
nameForToolCallTip: 'Only supports numbers, letters, and underscores.',
|
||||
description: 'Description',
|
||||
descriptionPlaceholder: 'Brief description of the tool\'s purpose, e.g., get the temperature for a specific location.',
|
||||
schema: 'Schema',
|
||||
schemaPlaceHolder: 'Enter your OpenAPI schema here',
|
||||
viewSchemaSpec: 'View the OpenAPI-Swagger Specification',
|
||||
importFromUrl: 'Import from URL',
|
||||
importFromUrlPlaceHolder: 'https://...',
|
||||
urlError: 'Please enter a valid URL',
|
||||
examples: 'Examples',
|
||||
exampleOptions: {
|
||||
json: 'Weather(JSON)',
|
||||
yaml: 'Pet Store(YAML)',
|
||||
blankTemplate: 'Blank Template',
|
||||
},
|
||||
availableTools: {
|
||||
title: 'Available Tools',
|
||||
name: 'Name',
|
||||
description: 'Description',
|
||||
method: 'Method',
|
||||
path: 'Path',
|
||||
action: 'Actions',
|
||||
test: 'Test',
|
||||
},
|
||||
authMethod: {
|
||||
title: 'Authorization method',
|
||||
type: 'Authorization type',
|
||||
keyTooltip: 'Http Header Key, You can leave it with "Authorization" if you have no idea what it is or set it to a custom value',
|
||||
queryParam: 'Query Parameter',
|
||||
queryParamTooltip: 'The name of the API key query parameter to pass, e.g. "key" in "https://example.com/test?key=API_KEY".',
|
||||
types: {
|
||||
none: 'None',
|
||||
api_key_header: 'Header',
|
||||
api_key_query: 'Query Param',
|
||||
apiKeyPlaceholder: 'HTTP header name for API Key',
|
||||
apiValuePlaceholder: 'Enter API Key',
|
||||
queryParamPlaceholder: 'Query parameter name for API Key',
|
||||
},
|
||||
key: 'Key',
|
||||
value: 'Value',
|
||||
},
|
||||
authHeaderPrefix: {
|
||||
title: 'Auth Type',
|
||||
types: {
|
||||
basic: 'Basic',
|
||||
bearer: 'Bearer',
|
||||
custom: 'Custom',
|
||||
},
|
||||
},
|
||||
privacyPolicy: 'Privacy policy',
|
||||
privacyPolicyPlaceholder: 'Please enter privacy policy',
|
||||
toolInput: {
|
||||
title: 'Tool Input',
|
||||
name: 'Name',
|
||||
required: 'Required',
|
||||
method: 'Method',
|
||||
methodSetting: 'Setting',
|
||||
methodSettingTip: 'User fills in the tool configuration',
|
||||
methodParameter: 'Parameter',
|
||||
methodParameterTip: 'LLM fills during inference',
|
||||
label: 'Tags',
|
||||
labelPlaceholder: 'Choose tags(optional)',
|
||||
description: 'Description',
|
||||
descriptionPlaceholder: 'Description of the parameter\'s meaning',
|
||||
},
|
||||
customDisclaimer: 'Custom disclaimer',
|
||||
customDisclaimerPlaceholder: 'Please enter custom disclaimer',
|
||||
confirmTitle: 'Confirm to save ?',
|
||||
confirmTip: 'Apps using this tool will be affected',
|
||||
deleteToolConfirmTitle: 'Delete this Tool?',
|
||||
deleteToolConfirmContent: 'Deleting the Tool is irreversible. Users will no longer be able to access your Tool.',
|
||||
},
|
||||
test: {
|
||||
title: 'Test',
|
||||
parametersValue: 'Parameters & Value',
|
||||
parameters: 'Parameters',
|
||||
value: 'Value',
|
||||
testResult: 'Test Results',
|
||||
testResultPlaceholder: 'Test result will show here',
|
||||
},
|
||||
thought: {
|
||||
using: 'Using',
|
||||
used: 'Used',
|
||||
requestTitle: 'Request',
|
||||
responseTitle: 'Response',
|
||||
},
|
||||
setBuiltInTools: {
|
||||
info: 'Info',
|
||||
setting: 'Setting',
|
||||
toolDescription: 'Tool description',
|
||||
parameters: 'parameters',
|
||||
string: 'string',
|
||||
number: 'number',
|
||||
file: 'file',
|
||||
required: 'Required',
|
||||
infoAndSetting: 'Info & Settings',
|
||||
},
|
||||
noCustomTool: {
|
||||
title: 'No custom tools!',
|
||||
content: 'Add and manage your custom tools here for building AI apps.',
|
||||
createTool: 'Create Tool',
|
||||
},
|
||||
noSearchRes: {
|
||||
title: 'Sorry, no results!',
|
||||
content: 'We couldn\'t find any tools that match your search.',
|
||||
reset: 'Reset Search',
|
||||
},
|
||||
builtInPromptTitle: 'Prompt',
|
||||
toolRemoved: 'Tool removed',
|
||||
notAuthorized: 'Not authorized',
|
||||
howToGet: 'How to get',
|
||||
openInStudio: 'Open in Studio',
|
||||
toolNameUsageTip: 'Tool call name for agent reasoning and prompting',
|
||||
copyToolName: 'Copy Name',
|
||||
noTools: 'No tools found',
|
||||
mcp: {
|
||||
create: {
|
||||
cardTitle: 'Add MCP Server (HTTP)',
|
||||
cardLink: 'Learn more about MCP server integration',
|
||||
},
|
||||
noConfigured: 'Unconfigured',
|
||||
updateTime: 'Updated',
|
||||
toolsCount: '{{count}} tools',
|
||||
noTools: 'No tools available',
|
||||
modal: {
|
||||
title: 'Add MCP Server (HTTP)',
|
||||
editTitle: 'Edit MCP Server (HTTP)',
|
||||
name: 'Name & Icon',
|
||||
namePlaceholder: 'Name your MCP server',
|
||||
serverUrl: 'Server URL',
|
||||
serverUrlPlaceholder: 'URL to server endpoint',
|
||||
serverUrlWarning: 'Updating the server address may disrupt applications that depend on this server',
|
||||
serverIdentifier: 'Server Identifier',
|
||||
serverIdentifierTip: 'Unique identifier for the MCP server within the workspace. Lowercase letters, numbers, underscores, and hyphens only. Up to 24 characters.',
|
||||
serverIdentifierPlaceholder: 'Unique identifier, e.g., my-mcp-server',
|
||||
serverIdentifierWarning: 'The server won\'t be recognized by existing apps after an ID change',
|
||||
headers: 'Headers',
|
||||
headersTip: 'Additional HTTP headers to send with MCP server requests',
|
||||
headerKey: 'Header Name',
|
||||
headerValue: 'Header Value',
|
||||
headerKeyPlaceholder: 'e.g., Authorization',
|
||||
headerValuePlaceholder: 'e.g., Bearer token123',
|
||||
addHeader: 'Add Header',
|
||||
noHeaders: 'No custom headers configured',
|
||||
maskedHeadersTip: 'Header values are masked for security. Changes will update the actual values.',
|
||||
cancel: 'Cancel',
|
||||
save: 'Save',
|
||||
confirm: 'Add & Authorize',
|
||||
timeout: 'Timeout',
|
||||
sseReadTimeout: 'SSE Read Timeout',
|
||||
timeoutPlaceholder: '30',
|
||||
authentication: 'Authentication',
|
||||
useDynamicClientRegistration: 'Use Dynamic Client Registration',
|
||||
redirectUrlWarning: 'Please configure your OAuth redirect URL to:',
|
||||
clientID: 'Client ID',
|
||||
clientSecret: 'Client Secret',
|
||||
clientSecretPlaceholder: 'Client Secret',
|
||||
configurations: 'Configurations',
|
||||
},
|
||||
delete: 'Remove MCP Server',
|
||||
deleteConfirmTitle: 'Would you like to remove {{mcp}}?',
|
||||
operation: {
|
||||
edit: 'Edit',
|
||||
remove: 'Remove',
|
||||
},
|
||||
authorize: 'Authorize',
|
||||
authorizing: 'Authorizing...',
|
||||
authorizingRequired: 'Authorization is required',
|
||||
authorizeTip: 'After authorization, tools will be displayed here.',
|
||||
update: 'Update',
|
||||
updating: 'Updating',
|
||||
gettingTools: 'Getting Tools...',
|
||||
updateTools: 'Updating Tools...',
|
||||
toolsEmpty: 'Tools not loaded',
|
||||
getTools: 'Get tools',
|
||||
toolUpdateConfirmTitle: 'Update Tool List',
|
||||
toolUpdateConfirmContent: 'Updating the tool list may affect existing apps. Do you wish to proceed?',
|
||||
toolsNum: '{{count}} tools included',
|
||||
onlyTool: '1 tool included',
|
||||
identifier: 'Server Identifier (Click to Copy)',
|
||||
server: {
|
||||
title: 'MCP Server',
|
||||
url: 'Server URL',
|
||||
reGen: 'Do you want to regenerator server URL?',
|
||||
addDescription: 'Add description',
|
||||
edit: 'Edit description',
|
||||
modal: {
|
||||
addTitle: 'Add description to enable MCP server',
|
||||
editTitle: 'Edit description',
|
||||
description: 'Description',
|
||||
descriptionPlaceholder: 'Explain what this tool does and how it should be used by the LLM',
|
||||
parameters: 'Parameters',
|
||||
parametersTip: 'Add descriptions for each parameter to help the LLM understand their purpose and constraints.',
|
||||
parametersPlaceholder: 'Parameter purpose and constraints',
|
||||
confirm: 'Enable MCP Server',
|
||||
},
|
||||
publishTip: 'App not published. Please publish the app first.',
|
||||
},
|
||||
toolItem: {
|
||||
noDescription: 'No description',
|
||||
parameters: 'Parameters',
|
||||
},
|
||||
},
|
||||
allTools: 'All tools',
|
||||
}
|
||||
|
||||
export default translation
|
||||
1291
dify/web/i18n/en-US/workflow.ts
Normal file
1291
dify/web/i18n/en-US/workflow.ts
Normal file
File diff suppressed because it is too large
Load Diff
98
dify/web/i18n/es-ES/app-annotation.ts
Normal file
98
dify/web/i18n/es-ES/app-annotation.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
const translation = {
|
||||
title: 'Anotaciones',
|
||||
name: 'Respuesta de Anotación',
|
||||
editBy: 'Respuesta editada por {{author}}',
|
||||
noData: {
|
||||
title: 'Sin anotaciones',
|
||||
description: 'Puedes editar anotaciones durante la depuración de la aplicación o importar anotaciones en masa aquí para obtener una respuesta de alta calidad.',
|
||||
},
|
||||
table: {
|
||||
header: {
|
||||
question: 'pregunta',
|
||||
answer: 'respuesta',
|
||||
createdAt: 'creado el',
|
||||
hits: 'aciertos',
|
||||
actions: 'acciones',
|
||||
addAnnotation: 'Agregar Anotación',
|
||||
bulkImport: 'Importar en Masa',
|
||||
bulkExport: 'Exportar en Masa',
|
||||
clearAll: 'Borrar Todas las Anotaciones',
|
||||
clearAllConfirm: '¿Eliminar todas las anotaciones?',
|
||||
},
|
||||
},
|
||||
editModal: {
|
||||
title: 'Editar Respuesta de Anotación',
|
||||
queryName: 'Consulta del Usuario',
|
||||
answerName: 'Bot Narrador',
|
||||
yourAnswer: 'Tu Respuesta',
|
||||
answerPlaceholder: 'Escribe tu respuesta aquí',
|
||||
yourQuery: 'Tu Consulta',
|
||||
queryPlaceholder: 'Escribe tu consulta aquí',
|
||||
removeThisCache: 'Eliminar esta Anotación',
|
||||
createdAt: 'Creado el',
|
||||
},
|
||||
addModal: {
|
||||
title: 'Agregar Respuesta de Anotación',
|
||||
queryName: 'Pregunta',
|
||||
answerName: 'Respuesta',
|
||||
answerPlaceholder: 'Escribe la respuesta aquí',
|
||||
queryPlaceholder: 'Escribe la pregunta aquí',
|
||||
createNext: 'Agregar otra respuesta anotada',
|
||||
},
|
||||
batchModal: {
|
||||
title: 'Importación en Masa',
|
||||
csvUploadTitle: 'Arrastra y suelta tu archivo CSV aquí, o ',
|
||||
browse: 'navega',
|
||||
tip: 'El archivo CSV debe cumplir con la siguiente estructura:',
|
||||
question: 'pregunta',
|
||||
answer: 'respuesta',
|
||||
contentTitle: 'contenido del fragmento',
|
||||
content: 'contenido',
|
||||
template: 'Descarga la plantilla aquí',
|
||||
cancel: 'Cancelar',
|
||||
run: 'Ejecutar Lote',
|
||||
runError: 'Error al ejecutar el lote',
|
||||
processing: 'En proceso de lote',
|
||||
completed: 'Importación completada',
|
||||
error: 'Error de importación',
|
||||
ok: 'OK',
|
||||
},
|
||||
errorMessage: {
|
||||
answerRequired: 'Se requiere una respuesta',
|
||||
queryRequired: 'Se requiere una pregunta',
|
||||
},
|
||||
viewModal: {
|
||||
annotatedResponse: 'Respuesta de Anotación',
|
||||
hitHistory: 'Historial de Aciertos',
|
||||
hit: 'Acierto',
|
||||
hits: 'Aciertos',
|
||||
noHitHistory: 'Sin historial de aciertos',
|
||||
},
|
||||
hitHistoryTable: {
|
||||
query: 'Consulta',
|
||||
match: 'Coincidencia',
|
||||
response: 'Respuesta',
|
||||
source: 'Fuente',
|
||||
score: 'Puntuación',
|
||||
time: 'Tiempo',
|
||||
},
|
||||
initSetup: {
|
||||
title: 'Configuración Inicial de Respuesta de Anotación',
|
||||
configTitle: 'Configuración de Respuesta de Anotación',
|
||||
confirmBtn: 'Guardar y Habilitar',
|
||||
configConfirmBtn: 'Guardar',
|
||||
},
|
||||
embeddingModelSwitchTip: 'Modelo de vectorización de texto de anotación, cambiar de modelo volverá a incrustar, lo que resultará en costos adicionales.',
|
||||
list: {
|
||||
delete: {
|
||||
title: '¿Estás seguro de que deseas eliminar?',
|
||||
},
|
||||
},
|
||||
batchAction: {
|
||||
delete: 'Eliminar',
|
||||
selected: 'Seleccionado',
|
||||
cancel: 'Cancelar',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
85
dify/web/i18n/es-ES/app-api.ts
Normal file
85
dify/web/i18n/es-ES/app-api.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
const translation = {
|
||||
apiServer: 'Servidor de API',
|
||||
apiKey: 'Clave de API',
|
||||
status: 'Estado',
|
||||
disabled: 'Desactivado',
|
||||
ok: 'En servicio',
|
||||
copy: 'Copiar',
|
||||
copied: 'Copiado',
|
||||
play: 'Reproducir',
|
||||
pause: 'Pausa',
|
||||
playing: 'Reproduciendo',
|
||||
loading: 'Cargando',
|
||||
merMaid: {
|
||||
rerender: 'Rehacer Rerender',
|
||||
},
|
||||
never: 'Nunca',
|
||||
apiKeyModal: {
|
||||
apiSecretKey: 'Clave secreta de API',
|
||||
apiSecretKeyTips: 'Para evitar el abuso de la API, protege tu clave de API. Evita usarla como texto plano en el código del frontend. :)',
|
||||
createNewSecretKey: 'Crear nueva clave secreta',
|
||||
secretKey: 'Clave secreta',
|
||||
created: 'CREADA',
|
||||
lastUsed: 'ÚLTIMO USO',
|
||||
generateTips: 'Guarda esta clave en un lugar seguro y accesible.',
|
||||
},
|
||||
actionMsg: {
|
||||
deleteConfirmTitle: '¿Eliminar esta clave secreta?',
|
||||
deleteConfirmTips: 'Esta acción no se puede deshacer.',
|
||||
ok: 'OK',
|
||||
},
|
||||
completionMode: {
|
||||
title: 'Completar App API',
|
||||
info: 'Para generar texto de alta calidad, como artículos, resúmenes y traducciones, utiliza la API de mensajes de completado con la entrada del usuario. La generación de texto depende de los parámetros del modelo y las plantillas de inicio establecidas en Dify Prompt Engineering.',
|
||||
createCompletionApi: 'Crear mensaje de completado',
|
||||
createCompletionApiTip: 'Crea un mensaje de completado para admitir el modo de pregunta y respuesta.',
|
||||
inputsTips: '(Opcional) Proporciona campos de entrada de usuario como pares clave-valor, que corresponden a las variables en Prompt Eng. La clave es el nombre de la variable, el valor es el valor del parámetro. Si el tipo de campo es Select, el valor enviado debe ser una de las opciones predefinidas.',
|
||||
queryTips: 'Contenido de texto de entrada del usuario.',
|
||||
blocking: 'Tipo de bloqueo, esperando a que se complete la ejecución y devuelva los resultados. (Las solicitudes pueden interrumpirse si el proceso es largo)',
|
||||
streaming: 'devoluciones de transmisión. Implementación de la devolución de transmisión basada en SSE (Eventos enviados por el servidor).',
|
||||
messageFeedbackApi: 'Comentarios de mensajes (me gusta)',
|
||||
messageFeedbackApiTip: 'Califica los mensajes recibidos en nombre de los usuarios finales con me gusta o no me gusta. Estos datos son visibles en la página de Registros y Anotaciones y se utilizan para ajustar el modelo en el futuro.',
|
||||
messageIDTip: 'ID del mensaje',
|
||||
ratingTip: 'me gusta o no me gusta, null es deshacer',
|
||||
parametersApi: 'Obtener información de parámetros de la aplicación',
|
||||
parametersApiTip: 'Recupera los parámetros de entrada configurados, incluidos los nombres de variables, los nombres de campos, los tipos y los valores predeterminados. Normalmente se utiliza para mostrar estos campos en un formulario o completar los valores predeterminados después de que el cliente se carga.',
|
||||
},
|
||||
chatMode: {
|
||||
title: 'Chat App API',
|
||||
info: 'Para aplicaciones de conversación versátiles que utilizan un formato de preguntas y respuestas, llama a la API de mensajes de chat para iniciar el diálogo. Mantén conversaciones en curso pasando el conversation_id devuelto. Los parámetros de respuesta y las plantillas dependen de la configuración de Dify Prompt Eng.',
|
||||
createChatApi: 'Crear mensaje de chat',
|
||||
createChatApiTip: 'Crea un nuevo mensaje de conversación o continúa un diálogo existente.',
|
||||
inputsTips: '(Opcional) Proporciona campos de entrada de usuario como pares clave-valor, que corresponden a las variables en Prompt Eng. La clave es el nombre de la variable, el valor es el valor del parámetro. Si el tipo de campo es Select, el valor enviado debe ser una de las opciones predefinidas.',
|
||||
queryTips: 'Contenido de entrada/pregunta del usuario',
|
||||
blocking: 'Tipo de bloqueo, esperando a que se complete la ejecución y devuelva los resultados. (Las solicitudes pueden interrumpirse si el proceso es largo)',
|
||||
streaming: 'devoluciones de transmisión. Implementación de la devolución de transmisión basada en SSE (Eventos enviados por el servidor).',
|
||||
conversationIdTip: '(Opcional) ID de conversación: dejar vacío para la primera conversación; pasar conversation_id del contexto para continuar el diálogo.',
|
||||
messageFeedbackApi: 'Comentarios terminales de mensajes, me gusta',
|
||||
messageFeedbackApiTip: 'Califica los mensajes recibidos en nombre de los usuarios finales con me gusta o no me gusta. Estos datos son visibles en la página de Registros y Anotaciones y se utilizan para ajustar el modelo en el futuro.',
|
||||
messageIDTip: 'ID del mensaje',
|
||||
ratingTip: 'me gusta o no me gusta, null es deshacer',
|
||||
chatMsgHistoryApi: 'Obtener el historial de mensajes de chat',
|
||||
chatMsgHistoryApiTip: 'La primera página devuelve las últimas `limit` barras, en orden inverso.',
|
||||
chatMsgHistoryConversationIdTip: 'ID de conversación',
|
||||
chatMsgHistoryFirstId: 'ID del primer registro de chat en la página actual. El valor predeterminado es ninguno.',
|
||||
chatMsgHistoryLimit: 'Cuántos chats se devuelven en una solicitud',
|
||||
conversationsListApi: 'Obtener lista de conversaciones',
|
||||
conversationsListApiTip: 'Obtiene la lista de sesiones del usuario actual. De forma predeterminada, se devuelven las últimas 20 sesiones.',
|
||||
conversationsListFirstIdTip: 'ID del último registro en la página actual, predeterminado ninguno.',
|
||||
conversationsListLimitTip: 'Cuántos chats se devuelven en una solicitud',
|
||||
conversationRenamingApi: 'Renombrar conversación',
|
||||
conversationRenamingApiTip: 'Cambia el nombre de las conversaciones; el nombre se muestra en las interfaces de cliente de múltiples sesiones.',
|
||||
conversationRenamingNameTip: 'Nuevo nombre',
|
||||
parametersApi: 'Obtener información de parámetros de la aplicación',
|
||||
parametersApiTip: 'Recupera los parámetros de entrada configurados, incluidos los nombres de variables, los nombres de campos, los tipos y los valores predeterminados. Normalmente se utiliza para mostrar estos campos en un formulario o completar los valores predeterminados después de que el cliente se carga.',
|
||||
},
|
||||
develop: {
|
||||
requestBody: 'Cuerpo de la solicitud',
|
||||
pathParams: 'Parámetros de ruta',
|
||||
query: 'Consulta',
|
||||
toc: 'Contenido',
|
||||
},
|
||||
regenerate: 'Regenerar',
|
||||
}
|
||||
|
||||
export default translation
|
||||
568
dify/web/i18n/es-ES/app-debug.ts
Normal file
568
dify/web/i18n/es-ES/app-debug.ts
Normal file
@@ -0,0 +1,568 @@
|
||||
const translation = {
|
||||
pageTitle: {
|
||||
line1: 'INDICACIÓN',
|
||||
line2: 'Ingeniería',
|
||||
},
|
||||
orchestrate: 'Orquestar',
|
||||
promptMode: {
|
||||
simple: 'Cambia a Modo Experto para editar toda la INDICACIÓN',
|
||||
advanced: 'Modo Experto',
|
||||
switchBack: 'Volver',
|
||||
advancedWarning: {
|
||||
title: 'Has cambiado a Modo Experto, y una vez que modifiques la INDICACIÓN, NO PODRÁS regresar al modo básico.',
|
||||
description: 'En Modo Experto, puedes editar toda la INDICACIÓN.',
|
||||
learnMore: 'Aprender más',
|
||||
ok: 'OK',
|
||||
},
|
||||
operation: {
|
||||
addMessage: 'Agregar Mensaje',
|
||||
},
|
||||
contextMissing: 'Componente de contexto faltante, la efectividad de la indicación puede no ser buena.',
|
||||
},
|
||||
operation: {
|
||||
applyConfig: 'Publicar',
|
||||
resetConfig: 'Restablecer',
|
||||
debugConfig: 'Depurar',
|
||||
addFeature: 'Agregar Función',
|
||||
automatic: 'Automático',
|
||||
stopResponding: 'Dejar de responder',
|
||||
agree: 'Me gusta',
|
||||
disagree: 'No me gusta',
|
||||
cancelAgree: 'Cancelar Me gusta',
|
||||
cancelDisagree: 'Cancelar No me gusta',
|
||||
userAction: 'Usuario ',
|
||||
},
|
||||
notSetAPIKey: {
|
||||
title: 'La clave del proveedor LLM no se ha establecido',
|
||||
trailFinished: 'Prueba terminada',
|
||||
description: 'La clave del proveedor LLM no se ha establecido, y debe configurarse antes de depurar.',
|
||||
settingBtn: 'Ir a configuración',
|
||||
},
|
||||
trailUseGPT4Info: {
|
||||
title: 'No se admite GPT-4 ahora',
|
||||
description: 'Para usar GPT-4, configure la clave API.',
|
||||
},
|
||||
feature: {
|
||||
groupChat: {
|
||||
title: 'Mejorar chat',
|
||||
description: 'Agregar configuraciones previas a la conversación en aplicaciones puede mejorar la experiencia del usuario.',
|
||||
},
|
||||
groupExperience: {
|
||||
title: 'Mejorar experiencia',
|
||||
},
|
||||
conversationOpener: {
|
||||
title: 'Iniciadores de conversación',
|
||||
description: 'En una aplicación de chat, la primera oración que la IA dice al usuario suele usarse como bienvenida.',
|
||||
},
|
||||
suggestedQuestionsAfterAnswer: {
|
||||
title: 'Seguimiento',
|
||||
description: 'Configurar sugerencias de próximas preguntas puede proporcionar una mejor conversación.',
|
||||
resDes: '3 sugerencias para la próxima pregunta del usuario.',
|
||||
tryToAsk: 'Intenta preguntar',
|
||||
},
|
||||
moreLikeThis: {
|
||||
title: 'Más como esto',
|
||||
description: 'Genera múltiples textos a la vez, luego edítalos y continúa generando',
|
||||
generateNumTip: 'Número de veces generado cada vez',
|
||||
tip: 'Usar esta función incurrirá en un costo adicional de tokens',
|
||||
},
|
||||
speechToText: {
|
||||
title: 'Voz a Texto',
|
||||
description: 'Una vez habilitado, puedes usar la entrada de voz.',
|
||||
resDes: 'Entrada de voz habilitada',
|
||||
},
|
||||
textToSpeech: {
|
||||
title: 'Texto a Voz',
|
||||
description: 'Una vez habilitado, el texto puede convertirse en voz.',
|
||||
resDes: 'Texto a Audio habilitado',
|
||||
},
|
||||
citation: {
|
||||
title: 'Citas y Atribuciones',
|
||||
description: 'Una vez habilitado, muestra el documento fuente y la sección atribuida del contenido generado.',
|
||||
resDes: 'Citas y Atribuciones habilitadas',
|
||||
},
|
||||
annotation: {
|
||||
title: 'Respuesta de Anotación',
|
||||
description: 'Puedes agregar manualmente una respuesta de alta calidad a la caché para una coincidencia prioritaria con preguntas similares de los usuarios.',
|
||||
resDes: 'Respuesta de Anotación habilitada',
|
||||
scoreThreshold: {
|
||||
title: 'Umbral de Puntuación',
|
||||
description: 'Usado para establecer el umbral de similitud para la respuesta de anotación.',
|
||||
easyMatch: 'Coincidencia Fácil',
|
||||
accurateMatch: 'Coincidencia Precisa',
|
||||
},
|
||||
matchVariable: {
|
||||
title: 'Variable de Coincidencia',
|
||||
choosePlaceholder: 'Elige la variable de coincidencia',
|
||||
},
|
||||
cacheManagement: 'Anotaciones',
|
||||
cached: 'Anotado',
|
||||
remove: 'Eliminar',
|
||||
removeConfirm: '¿Eliminar esta anotación?',
|
||||
add: 'Agregar anotación',
|
||||
edit: 'Editar anotación',
|
||||
},
|
||||
dataSet: {
|
||||
title: 'Contexto',
|
||||
noData: 'Puedes importar Conocimiento como contexto',
|
||||
selectTitle: 'Seleccionar Conocimiento de referencia',
|
||||
selected: 'Conocimiento seleccionado',
|
||||
noDataSet: 'No se encontró Conocimiento',
|
||||
toCreate: 'Ir a crear',
|
||||
notSupportSelectMulti: 'Actualmente solo se admite un Conocimiento',
|
||||
queryVariable: {
|
||||
title: 'Variable de Consulta',
|
||||
tip: 'Esta variable se utilizará como entrada de consulta para la recuperación de contexto, obteniendo información de contexto relacionada con la entrada de esta variable.',
|
||||
choosePlaceholder: 'Elige la variable de consulta',
|
||||
noVar: 'No hay variables',
|
||||
noVarTip: 'por favor, crea una variable en la sección Variables',
|
||||
unableToQueryDataSet: 'No se puede consultar el Conocimiento',
|
||||
unableToQueryDataSetTip: 'No se puede consultar el Conocimiento con éxito, por favor elige una variable de consulta de contexto en la sección de contexto.',
|
||||
ok: 'OK',
|
||||
contextVarNotEmpty: 'La variable de consulta de contexto no puede estar vacía',
|
||||
deleteContextVarTitle: '¿Eliminar variable "{{varName}}"?',
|
||||
deleteContextVarTip: 'Esta variable ha sido establecida como una variable de consulta de contexto, y eliminarla afectará el uso normal del Conocimiento. Si aún necesitas eliminarla, por favor vuelve a seleccionarla en la sección de contexto.',
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
title: 'Herramientas',
|
||||
tips: 'Las herramientas proporcionan un método estándar de llamada API, tomando la entrada del usuario o variables como parámetros de solicitud para consultar datos externos como contexto.',
|
||||
toolsInUse: '{{count}} herramientas en uso',
|
||||
modal: {
|
||||
title: 'Herramienta',
|
||||
toolType: {
|
||||
title: 'Tipo de Herramienta',
|
||||
placeholder: 'Por favor selecciona el tipo de herramienta',
|
||||
},
|
||||
name: {
|
||||
title: 'Nombre',
|
||||
placeholder: 'Por favor ingresa el nombre',
|
||||
},
|
||||
variableName: {
|
||||
title: 'Nombre de la Variable',
|
||||
placeholder: 'Por favor ingresa el nombre de la variable',
|
||||
},
|
||||
},
|
||||
},
|
||||
conversationHistory: {
|
||||
title: 'Historial de Conversaciones',
|
||||
description: 'Establecer nombres de prefijo para los roles de conversación',
|
||||
tip: 'El Historial de Conversaciones no está habilitado, por favor agrega <histories> en la indicación arriba.',
|
||||
learnMore: 'Aprender más',
|
||||
editModal: {
|
||||
title: 'Editar Nombres de Roles de Conversación',
|
||||
userPrefix: 'Prefijo de Usuario',
|
||||
assistantPrefix: 'Prefijo de Asistente',
|
||||
},
|
||||
},
|
||||
toolbox: {
|
||||
title: 'CAJA DE HERRAMIENTAS',
|
||||
},
|
||||
moderation: {
|
||||
title: 'Moderación de contenido',
|
||||
description: 'Asegura la salida del modelo utilizando API de moderación o manteniendo una lista de palabras sensibles.',
|
||||
allEnabled: 'Contenido de ENTRADA/SALIDA Habilitado',
|
||||
inputEnabled: 'Contenido de ENTRADA Habilitado',
|
||||
outputEnabled: 'Contenido de SALIDA Habilitado',
|
||||
modal: {
|
||||
title: 'Configuración de moderación de contenido',
|
||||
provider: {
|
||||
title: 'Proveedor',
|
||||
openai: 'Moderación de OpenAI',
|
||||
openaiTip: {
|
||||
prefix: 'La Moderación de OpenAI requiere una clave API de OpenAI configurada en la ',
|
||||
suffix: '.',
|
||||
},
|
||||
keywords: 'Palabras clave',
|
||||
},
|
||||
keywords: {
|
||||
tip: 'Una por línea, separadas por saltos de línea. Hasta 100 caracteres por línea.',
|
||||
placeholder: 'Una por línea, separadas por saltos de línea',
|
||||
line: 'Línea',
|
||||
},
|
||||
content: {
|
||||
input: 'Moderar Contenido de ENTRADA',
|
||||
output: 'Moderar Contenido de SALIDA',
|
||||
preset: 'Respuestas predefinidas',
|
||||
placeholder: 'Contenido de respuestas predefinidas aquí',
|
||||
condition: 'Moderar Contenido de ENTRADA y SALIDA habilitado al menos uno',
|
||||
fromApi: 'Las respuestas predefinidas son devueltas por la API',
|
||||
errorMessage: 'Las respuestas predefinidas no pueden estar vacías',
|
||||
supportMarkdown: 'Markdown soportado',
|
||||
},
|
||||
openaiNotConfig: {
|
||||
before: 'La Moderación de OpenAI requiere una clave API de OpenAI configurada en la',
|
||||
after: '',
|
||||
},
|
||||
},
|
||||
contentEnableLabel: 'Moderación de contenido habilitada',
|
||||
},
|
||||
fileUpload: {
|
||||
title: 'Subida de archivos',
|
||||
description: 'La caja de entrada del chat permite subir imágenes, documentos y otros archivos.',
|
||||
supportedTypes: 'Tipos de archivo soportados',
|
||||
numberLimit: 'Máximo de subidas',
|
||||
modalTitle: 'Configuración de subida de archivos',
|
||||
},
|
||||
imageUpload: {
|
||||
title: 'Subida de imágenes',
|
||||
description: 'Permite subir imágenes.',
|
||||
supportedTypes: 'Tipos de archivo soportados',
|
||||
numberLimit: 'Máximo de subidas',
|
||||
modalTitle: 'Configuración de subida de imágenes',
|
||||
},
|
||||
bar: {
|
||||
empty: 'Habilitar funciones para mejorar la experiencia del usuario de la aplicación web',
|
||||
enableText: 'Funciones habilitadas',
|
||||
manage: 'Gestionar',
|
||||
},
|
||||
documentUpload: {
|
||||
title: 'Documento',
|
||||
description: 'Habilitar Documento permitirá al modelo aceptar documentos y responder preguntas sobre ellos.',
|
||||
},
|
||||
audioUpload: {
|
||||
title: 'Audio',
|
||||
description: 'Habilitar Audio permitirá al modelo procesar archivos de audio para transcripción y análisis.',
|
||||
},
|
||||
},
|
||||
automatic: {
|
||||
},
|
||||
resetConfig: {
|
||||
title: '¿Confirmar restablecimiento?',
|
||||
message: 'Restablecer descarta cambios, restaurando la última configuración publicada.',
|
||||
},
|
||||
errorMessage: {
|
||||
nameOfKeyRequired: 'nombre de la clave: {{key}} requerido',
|
||||
valueOfVarRequired: 'el valor de {{key}} no puede estar vacío',
|
||||
queryRequired: 'Se requiere texto de solicitud.',
|
||||
waitForResponse: 'Por favor espera la respuesta al mensaje anterior para completar.',
|
||||
waitForBatchResponse: 'Por favor espera la respuesta a la tarea por lotes para completar.',
|
||||
notSelectModel: 'Por favor elige un modelo',
|
||||
waitForImgUpload: 'Por favor espera a que la imagen se cargue',
|
||||
waitForFileUpload: 'Espere a que se cargue el archivo o los archivos',
|
||||
},
|
||||
chatSubTitle: 'Instrucciones',
|
||||
completionSubTitle: 'Prefijo de la Indicación',
|
||||
promptTip: 'Las indicaciones guían las respuestas de la IA con instrucciones y restricciones. Inserta variables como {{input}}. Esta indicación no será visible para los usuarios.',
|
||||
formattingChangedTitle: 'Formato cambiado',
|
||||
formattingChangedText: 'Modificar el formato restablecerá el área de depuración, ¿estás seguro?',
|
||||
variableTitle: 'Variables',
|
||||
variableTip: 'Los usuarios completan las variables en un formulario, reemplazando automáticamente las variables en la indicación.',
|
||||
notSetVar: 'Las variables permiten a los usuarios introducir palabras de indicación u observaciones de apertura al completar formularios. Puedes intentar ingresar "{{input}}" en las palabras de indicación.',
|
||||
autoAddVar: 'Variables no definidas referenciadas en la pre-indicación, ¿quieres agregarlas en el formulario de entrada del usuario?',
|
||||
variableTable: {
|
||||
key: 'Clave de Variable',
|
||||
name: 'Nombre del Campo de Entrada del Usuario',
|
||||
type: 'Tipo de Entrada',
|
||||
action: 'Acciones',
|
||||
typeString: 'Cadena',
|
||||
typeSelect: 'Seleccionar',
|
||||
},
|
||||
varKeyError: {
|
||||
canNoBeEmpty: 'Se requiere {{key}}',
|
||||
tooLong: '{{key}} demasiado larga. No puede tener más de 30 caracteres',
|
||||
notValid: '{{key}} no es válida. Solo puede contener letras, números y guiones bajos',
|
||||
notStartWithNumber: '{{key}} no puede comenzar con un número',
|
||||
keyAlreadyExists: '{{key}} ya existe',
|
||||
},
|
||||
otherError: {
|
||||
promptNoBeEmpty: 'La indicación no puede estar vacía',
|
||||
historyNoBeEmpty: 'El historial de conversaciones debe establecerse en la indicación',
|
||||
queryNoBeEmpty: 'La consulta debe establecerse en la indicación',
|
||||
},
|
||||
variableConfig: {
|
||||
'addModalTitle': 'Agregar Campo de Entrada',
|
||||
'editModalTitle': 'Editar Campo de Entrada',
|
||||
'description': 'Configuración para la variable {{varName}}',
|
||||
'fieldType': 'Tipo de campo',
|
||||
'string': 'Texto corto',
|
||||
'text-input': 'Texto corto',
|
||||
'paragraph': 'Párrafo',
|
||||
'select': 'Seleccionar',
|
||||
'number': 'Número',
|
||||
'notSet': 'No configurado, intenta escribir {{input}} en la indicación de prefijo',
|
||||
'stringTitle': 'Opciones de cuadro de texto de formulario',
|
||||
'maxLength': 'Longitud máxima',
|
||||
'options': 'Opciones',
|
||||
'addOption': 'Agregar opción',
|
||||
'apiBasedVar': 'Variable basada en API',
|
||||
'varName': 'Nombre de la Variable',
|
||||
'labelName': 'Nombre de la Etiqueta',
|
||||
'inputPlaceholder': 'Por favor ingresa',
|
||||
'content': 'Contenido',
|
||||
'required': 'Requerido',
|
||||
'hide': 'Ocultar',
|
||||
'errorMsg': {
|
||||
labelNameRequired: 'Nombre de la etiqueta es requerido',
|
||||
varNameCanBeRepeat: 'El nombre de la variable no puede repetirse',
|
||||
atLeastOneOption: 'Se requiere al menos una opción',
|
||||
optionRepeat: 'Hay opciones repetidas',
|
||||
},
|
||||
'defaultValue': 'Valor predeterminado',
|
||||
'noDefaultValue': 'Sin valor predeterminado',
|
||||
'selectDefaultValue': 'Seleccionar valor predeterminado',
|
||||
'file': {
|
||||
image: {
|
||||
name: 'Imagen',
|
||||
},
|
||||
audio: {
|
||||
name: 'Audio',
|
||||
},
|
||||
document: {
|
||||
name: 'Documento',
|
||||
},
|
||||
video: {
|
||||
name: 'Vídeo',
|
||||
},
|
||||
custom: {
|
||||
name: 'Otros tipos de archivos',
|
||||
description: 'Especifique otros tipos de archivo.',
|
||||
createPlaceholder: ' Extensión de archivo, por ejemplo, .doc',
|
||||
},
|
||||
supportFileTypes: 'Tipos de archivos de soporte',
|
||||
},
|
||||
'uploadFileTypes': 'Cargar tipos de archivos',
|
||||
'localUpload': 'Carga local',
|
||||
'both': 'ambos',
|
||||
'single-file': 'En fila india',
|
||||
'maxNumberOfUploads': 'Número máximo de cargas',
|
||||
'maxNumberTip': 'Documento < {{docLimit}}, imagen < {{imgLimit}}, audio < {{audioLimit}}, vídeo < {{videoLimit}}',
|
||||
'multi-files': 'Lista de archivos',
|
||||
'jsonSchema': 'Esquema JSON',
|
||||
'json': 'Código JSON',
|
||||
'checkbox': 'Checkbox',
|
||||
'optional': 'opcional',
|
||||
'placeholder': 'Marcador',
|
||||
'uploadMethod': 'Método de carga',
|
||||
'displayName': 'Nombre para mostrar',
|
||||
'startSelectedOption': 'Iniciar opción seleccionada',
|
||||
'noDefaultSelected': 'No seleccionar',
|
||||
'startChecked': 'Empezar marcado',
|
||||
'placeholderPlaceholder': 'Introduzca el texto que se mostrará cuando el campo esté vacío',
|
||||
'defaultValuePlaceholder': 'Introduzca el valor predeterminado para rellenar previamente el campo',
|
||||
'tooltips': 'Información sobre herramientas',
|
||||
'tooltipsPlaceholder': 'Ingrese el texto útil que se muestra al pasar el cursor sobre la etiqueta',
|
||||
'unitPlaceholder': 'Mostrar unidades después de números, por ejemplo, fichas',
|
||||
'showAllSettings': 'Mostrar todas las configuraciones',
|
||||
'unit': 'Unidad',
|
||||
},
|
||||
vision: {
|
||||
name: 'Visión',
|
||||
description: 'Habilitar Visión permitirá al modelo recibir imágenes y responder preguntas sobre ellas.',
|
||||
settings: 'Configuraciones',
|
||||
visionSettings: {
|
||||
title: 'Configuraciones de Visión',
|
||||
resolution: 'Resolución',
|
||||
resolutionTooltip: `Baja resolución permitirá que el modelo reciba una versión de baja resolución de 512 x 512 de la imagen, y represente la imagen con un presupuesto de 65 tokens. Esto permite que la API devuelva respuestas más rápidas y consuma menos tokens de entrada para casos de uso que no requieren alta detalle.
|
||||
\n
|
||||
Alta resolución permitirá primero que el modelo vea la imagen de baja resolución y luego crea recortes detallados de las imágenes de entrada como cuadrados de 512px basados en el tamaño de la imagen de entrada. Cada uno de los recortes detallados usa el doble del presupuesto de tokens para un total de 129 tokens.`,
|
||||
high: 'Alta',
|
||||
low: 'Baja',
|
||||
uploadMethod: 'Método de carga',
|
||||
both: 'Ambos',
|
||||
localUpload: 'Carga Local',
|
||||
url: 'URL',
|
||||
uploadLimit: 'Límite de carga',
|
||||
},
|
||||
onlySupportVisionModelTip: 'Solo admite modelos de visión',
|
||||
},
|
||||
voice: {
|
||||
name: 'Voz',
|
||||
defaultDisplay: 'Voz Predeterminada',
|
||||
description: 'Configuraciones de voz a texto',
|
||||
settings: 'Configuraciones',
|
||||
voiceSettings: {
|
||||
title: 'Configuraciones de Voz',
|
||||
language: 'Idioma',
|
||||
resolutionTooltip: 'Soporte de idioma para voz a texto.',
|
||||
voice: 'Voz',
|
||||
autoPlay: 'Auto-reproducción',
|
||||
autoPlayEnabled: 'Abierto',
|
||||
autoPlayDisabled: 'Cierre',
|
||||
},
|
||||
},
|
||||
openingStatement: {
|
||||
title: 'Apertura de Conversación',
|
||||
add: 'Agregar',
|
||||
writeOpener: 'Escribir apertura',
|
||||
placeholder: 'Escribe tu mensaje de apertura aquí, puedes usar variables, intenta escribir {{variable}}.',
|
||||
openingQuestion: 'Preguntas de Apertura',
|
||||
openingQuestionPlaceholder: 'Puede usar variables, intente escribir {{variable}}.',
|
||||
noDataPlaceHolder: 'Iniciar la conversación con el usuario puede ayudar a la IA a establecer una conexión más cercana con ellos en aplicaciones de conversación.',
|
||||
varTip: 'Puedes usar variables, intenta escribir {{variable}}',
|
||||
tooShort: 'Se requieren al menos 20 palabras en la indicación inicial para generar una apertura de conversación.',
|
||||
notIncludeKey: 'La indicación inicial no incluye la variable: {{key}}. Por favor agrégala a la indicación inicial.',
|
||||
},
|
||||
modelConfig: {
|
||||
model: 'Modelo',
|
||||
setTone: 'Establecer tono de respuestas',
|
||||
title: 'Modelo y Parámetros',
|
||||
modeType: {
|
||||
chat: 'Chat',
|
||||
completion: 'Completar',
|
||||
},
|
||||
},
|
||||
inputs: {
|
||||
title: 'Depurar y Previsualizar',
|
||||
noPrompt: 'Intenta escribir alguna indicación en la entrada de pre-indicación',
|
||||
userInputField: 'Campo de Entrada del Usuario',
|
||||
noVar: 'Completa el valor de la variable, que se reemplazará automáticamente en la palabra de indicación cada vez que se inicie una nueva sesión.',
|
||||
chatVarTip: 'Completa el valor de la variable, que se reemplazará automáticamente en la palabra de indicación cada vez que se inicie una nueva sesión',
|
||||
completionVarTip: 'Completa el valor de la variable, que se reemplazará automáticamente en las palabras de indicación cada vez que se envíe una pregunta.',
|
||||
previewTitle: 'Vista previa de la indicación',
|
||||
queryTitle: 'Contenido de la consulta',
|
||||
queryPlaceholder: 'Por favor ingresa el texto de la solicitud.',
|
||||
run: 'EJECUTAR',
|
||||
},
|
||||
result: 'Texto de salida',
|
||||
datasetConfig: {
|
||||
settingTitle: 'Configuraciones de Recuperación',
|
||||
knowledgeTip: 'Haz clic en el botón “+” para agregar conocimiento',
|
||||
retrieveOneWay: {
|
||||
title: 'Recuperación N-a-1',
|
||||
description: 'Basado en la intención del usuario y las descripciones de Conocimiento, el Agente selecciona autónomamente el mejor Conocimiento para consultar. Ideal para aplicaciones con Conocimiento limitado y distintivo.',
|
||||
},
|
||||
retrieveMultiWay: {
|
||||
title: 'Recuperación Multi-camino',
|
||||
description: 'Basado en la intención del usuario, consulta a través de todo el Conocimiento, recupera texto relevante de múltiples fuentes y selecciona los mejores resultados que coinciden con la consulta del usuario después de reordenar. Se requiere configuración de la API del modelo de Reordenar.',
|
||||
},
|
||||
rerankModelRequired: 'Se requiere modelo de Reordenar',
|
||||
params: 'Parámetros',
|
||||
top_k: 'Top K',
|
||||
top_kTip: 'Usado para filtrar fragmentos que son más similares a las preguntas del usuario. El sistema también ajustará dinámicamente el valor de Top K, de acuerdo con los max_tokens del modelo seleccionado.',
|
||||
score_threshold: 'Umbral de Puntuación',
|
||||
score_thresholdTip: 'Usado para establecer el umbral de similitud para la filtración de fragmentos.',
|
||||
retrieveChangeTip: 'Modificar el modo de índice y el modo de recuperación puede afectar las aplicaciones asociadas con este Conocimiento.',
|
||||
embeddingModelRequired: 'Se requiere un modelo de incrustación configurado',
|
||||
},
|
||||
debugAsSingleModel: 'Depurar como Modelo Único',
|
||||
debugAsMultipleModel: 'Depurar como Múltiples Modelos',
|
||||
duplicateModel: 'Duplicar',
|
||||
publishAs: 'Publicar como',
|
||||
assistantType: {
|
||||
name: 'Tipo de Asistente',
|
||||
chatAssistant: {
|
||||
name: 'Asistente Básico',
|
||||
description: 'Construye un asistente basado en chat usando un Modelo de Lenguaje Grande',
|
||||
},
|
||||
agentAssistant: {
|
||||
name: 'Asistente Agente',
|
||||
description: 'Construye un Agente inteligente que puede elegir herramientas autónomamente para completar tareas',
|
||||
},
|
||||
},
|
||||
agent: {
|
||||
agentMode: 'Modo Agente',
|
||||
agentModeDes: 'Establecer el tipo de modo de inferencia para el agente',
|
||||
agentModeType: {
|
||||
ReACT: 'ReAct',
|
||||
functionCall: 'Llamada de Función',
|
||||
},
|
||||
setting: {
|
||||
name: 'Configuraciones del Agente',
|
||||
description: 'Las configuraciones del Asistente Agente permiten establecer el modo del agente y funciones avanzadas como indicaciones integradas, disponibles solo en el tipo Agente.',
|
||||
maximumIterations: {
|
||||
name: 'Iteraciones Máximas',
|
||||
description: 'Limitar el número de iteraciones que un asistente agente puede ejecutar',
|
||||
},
|
||||
},
|
||||
buildInPrompt: 'Indicación Integrada',
|
||||
firstPrompt: 'Primera Indicación',
|
||||
nextIteration: 'Próxima Iteración',
|
||||
promptPlaceholder: 'Escribe tu indicación aquí',
|
||||
tools: {
|
||||
name: 'Herramientas',
|
||||
description: 'El uso de herramientas puede extender las capacidades del LLM, como buscar en internet o realizar cálculos científicos',
|
||||
enabled: 'Habilitado',
|
||||
},
|
||||
},
|
||||
codegen: {
|
||||
apply: 'Aplicar',
|
||||
overwriteConfirmMessage: 'Esta acción sobrescribirá el código existente. ¿Quieres continuar?',
|
||||
instruction: 'Instrucciones',
|
||||
loading: 'Generando código...',
|
||||
title: 'Generador de código',
|
||||
resTitle: 'Código generado',
|
||||
description: 'El Generador de código utiliza modelos configurados para generar código de alta calidad basado en sus instrucciones. Proporcione instrucciones claras y detalladas.',
|
||||
noDataLine1: 'Describa su caso de uso a la izquierda,',
|
||||
generate: 'Generar',
|
||||
generatedCodeTitle: 'Código generado',
|
||||
noDataLine2: 'La vista previa del código se mostrará aquí.',
|
||||
overwriteConfirmTitle: '¿Sobrescribir el código existente?',
|
||||
instructionPlaceholder: 'Introduzca una descripción detallada del código que desea generar.',
|
||||
applyChanges: 'Aplicar cambios',
|
||||
},
|
||||
generate: {
|
||||
template: {
|
||||
pythonDebugger: {
|
||||
name: 'Depurador de Python',
|
||||
instruction: 'Un bot que puede generar y depurar el código en función de las instrucciones',
|
||||
},
|
||||
translation: {
|
||||
instruction: 'Un traductor que puede traducir varios idiomas',
|
||||
name: 'Traducción',
|
||||
},
|
||||
professionalAnalyst: {
|
||||
instruction: 'Extraiga información, identifique riesgos y extraiga información clave de informes largos en un solo memorándum',
|
||||
name: 'Analista profesional',
|
||||
},
|
||||
excelFormulaExpert: {
|
||||
name: 'Experto en fórmulas de Excel',
|
||||
instruction: 'Un chatbot que puede ayudar a los usuarios novatos a comprender, usar y crear fórmulas de Excel basadas en las instrucciones del usuario',
|
||||
},
|
||||
travelPlanning: {
|
||||
instruction: 'El Asistente de planificación de viajes es una herramienta inteligente diseñada para ayudar a los usuarios a planificar sus viajes sin esfuerzo',
|
||||
name: 'Planificación de viajes',
|
||||
},
|
||||
SQLSorcerer: {
|
||||
instruction: 'Transforme el lenguaje cotidiano en consultas SQL',
|
||||
name: 'Hechicero SQL',
|
||||
},
|
||||
GitGud: {
|
||||
name: 'Git gud',
|
||||
instruction: 'Generar comandos de Git adecuados basados en acciones de control de versiones descritas por el usuario',
|
||||
},
|
||||
meetingTakeaways: {
|
||||
name: 'Conclusiones de la reunión',
|
||||
instruction: 'Destilar las reuniones en resúmenes concisos que incluyan temas de discusión, conclusiones clave y elementos de acción',
|
||||
},
|
||||
writingsPolisher: {
|
||||
name: 'Pulidora de escritura',
|
||||
instruction: 'Utiliza técnicas avanzadas de corrección de textos para mejorar tus escritos',
|
||||
},
|
||||
},
|
||||
apply: 'Aplicar',
|
||||
instruction: 'Instrucciones',
|
||||
description: 'El generador de mensajes utiliza el modelo configurado para optimizar los mensajes para una mayor calidad y una mejor estructura. Escriba instrucciones claras y detalladas.',
|
||||
generate: 'Generar',
|
||||
title: 'Generador de avisos',
|
||||
tryIt: 'Pruébalo',
|
||||
overwriteMessage: 'La aplicación de este mensaje anulará la configuración existente.',
|
||||
resTitle: 'Mensaje generado',
|
||||
overwriteTitle: '¿Anular la configuración existente?',
|
||||
loading: 'Orquestando la aplicación para usted...',
|
||||
to: 'a',
|
||||
dismiss: 'Descartar',
|
||||
press: 'Prensa',
|
||||
versions: 'Versiones',
|
||||
idealOutputPlaceholder: 'Describe tu formato de respuesta ideal, longitud, tono y requisitos de contenido...',
|
||||
instructionPlaceHolderTitle: 'Describe cómo te gustaría mejorar este aviso. Por ejemplo:',
|
||||
optimizationNote: 'Nota de Optimización',
|
||||
optional: 'Opcional',
|
||||
instructionPlaceHolderLine1: 'Haz el resultado más conciso, reteniendo los puntos clave.',
|
||||
optimizePromptTooltip: 'Optimizar en el generador de mensajes',
|
||||
instructionPlaceHolderLine3: 'El tono es demasiado brusco, por favor hazlo más amigable.',
|
||||
instructionPlaceHolderLine2: 'El formato de salida es incorrecto, por favor siga estrictamente el formato JSON.',
|
||||
version: 'Versión',
|
||||
idealOutput: 'Salida Ideal',
|
||||
insertContext: 'insertar contexto',
|
||||
latest: 'último',
|
||||
codeGenInstructionPlaceHolderLine: 'Cuanto más detallada sea la retroalimentación, como los tipos de datos de entrada y salida, así como la forma en que se procesan las variables, más precisa será la generación de código.',
|
||||
newNoDataLine1: 'Escribe una instrucción en la columna de la izquierda y haz clic en Generar para ver la respuesta.',
|
||||
},
|
||||
warningMessage: {
|
||||
timeoutExceeded: 'Los resultados no se muestran debido al tiempo de espera. Consulte los registros para obtener resultados completos.',
|
||||
},
|
||||
noResult: 'La salida se mostrará aquí.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
112
dify/web/i18n/es-ES/app-log.ts
Normal file
112
dify/web/i18n/es-ES/app-log.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
const translation = {
|
||||
title: 'Registros',
|
||||
description: 'Los registros registran el estado de ejecución de la aplicación, incluyendo las entradas de usuario y las respuestas de la IA.',
|
||||
dateTimeFormat: 'MM/DD/YYYY hh:mm:ss A',
|
||||
table: {
|
||||
header: {
|
||||
updatedTime: 'Hora actualizada',
|
||||
time: 'Hora creada',
|
||||
endUser: 'Usuario Final o Cuenta',
|
||||
input: 'Entrada',
|
||||
output: 'Salida',
|
||||
summary: 'Título',
|
||||
messageCount: 'Cantidad de Mensajes',
|
||||
userRate: 'Tasa de Usuario',
|
||||
adminRate: 'Tasa de Op.',
|
||||
startTime: 'HORA DE INICIO',
|
||||
status: 'ESTADO',
|
||||
runtime: 'TIEMPO DE EJECUCIÓN',
|
||||
tokens: 'TOKENS',
|
||||
user: 'USUARIO FINAL O CUENTA',
|
||||
version: 'VERSIÓN',
|
||||
triggered_from: 'ACTIVADO POR',
|
||||
},
|
||||
pagination: {
|
||||
previous: 'Anterior',
|
||||
next: 'Siguiente',
|
||||
},
|
||||
empty: {
|
||||
noChat: 'Aún no hay conversación',
|
||||
noOutput: 'Sin salida',
|
||||
element: {
|
||||
title: '¿Hay alguien ahí?',
|
||||
content: 'Observa y anota las interacciones entre los usuarios finales y las aplicaciones de IA aquí para mejorar continuamente la precisión de la IA. Puedes probar <shareLink>compartiendo</shareLink> o <testLink>probando</testLink> la aplicación web tú mismo, y luego regresar a esta página.',
|
||||
},
|
||||
},
|
||||
},
|
||||
detail: {
|
||||
time: 'Tiempo',
|
||||
conversationId: 'ID de Conversación',
|
||||
promptTemplate: 'Plantilla de Indicación',
|
||||
promptTemplateBeforeChat: 'Plantilla de Indicación Antes de la Conversación · Como Mensaje del Sistema',
|
||||
annotationTip: 'Mejoras Marcadas por {{user}}',
|
||||
timeConsuming: '',
|
||||
second: 's',
|
||||
tokenCost: 'Tokens gastados',
|
||||
loading: 'cargando',
|
||||
operation: {
|
||||
like: 'me gusta',
|
||||
dislike: 'no me gusta',
|
||||
addAnnotation: 'Agregar Mejora',
|
||||
editAnnotation: 'Editar Mejora',
|
||||
annotationPlaceholder: 'Ingresa la respuesta esperada que deseas que la IA responda, lo cual se puede utilizar para el ajuste del modelo y la mejora continua de la calidad de generación de texto en el futuro.',
|
||||
},
|
||||
variables: 'Variables',
|
||||
uploadImages: 'Imágenes Cargadas',
|
||||
modelParams: 'Parámetros del modelo',
|
||||
},
|
||||
filter: {
|
||||
period: {
|
||||
today: 'Hoy',
|
||||
last7days: 'Últimos 7 Días',
|
||||
last4weeks: 'Últimas 4 semanas',
|
||||
last3months: 'Últimos 3 meses',
|
||||
last12months: 'Últimos 12 meses',
|
||||
monthToDate: 'Mes hasta la fecha',
|
||||
quarterToDate: 'Trimestre hasta la fecha',
|
||||
yearToDate: 'Año hasta la fecha',
|
||||
allTime: 'Todo el tiempo',
|
||||
custom: 'Personalizado',
|
||||
last30days: 'Últimos 30 días',
|
||||
},
|
||||
annotation: {
|
||||
all: 'Todos',
|
||||
annotated: 'Mejoras Anotadas ({{count}} elementos)',
|
||||
not_annotated: 'No Anotadas',
|
||||
},
|
||||
sortBy: 'Ordenar por:',
|
||||
descending: 'descendente',
|
||||
ascending: 'ascendente',
|
||||
},
|
||||
workflowTitle: 'Registros de Flujo de Trabajo',
|
||||
workflowSubtitle: 'El registro registró la operación de Automate.',
|
||||
runDetail: {
|
||||
title: 'Registro de Conversación',
|
||||
workflowTitle: 'Detalle del Registro',
|
||||
fileListLabel: 'Detalles del archivo',
|
||||
fileListDetail: 'Detalle',
|
||||
testWithParams: 'Prueba con parámetros',
|
||||
},
|
||||
promptLog: 'Registro de Indicación',
|
||||
agentLog: 'Registro de Agente',
|
||||
viewLog: 'Ver Registro',
|
||||
agentLogDetail: {
|
||||
agentMode: 'Modo de Agente',
|
||||
toolUsed: 'Herramienta Utilizada',
|
||||
iterations: 'Iteraciones',
|
||||
iteration: 'Iteración',
|
||||
finalProcessing: 'Procesamiento Final',
|
||||
},
|
||||
dateFormat: 'DD/MM/YYYY',
|
||||
triggerBy: {
|
||||
debugging: 'Depuración',
|
||||
appRun: 'Aplicación web',
|
||||
webhook: 'Webhook',
|
||||
schedule: 'Horario',
|
||||
plugin: 'Complemento',
|
||||
ragPipelineRun: 'Pipeline RAG',
|
||||
ragPipelineDebugging: 'Depuración RAG',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
189
dify/web/i18n/es-ES/app-overview.ts
Normal file
189
dify/web/i18n/es-ES/app-overview.ts
Normal file
@@ -0,0 +1,189 @@
|
||||
const translation = {
|
||||
welcome: {
|
||||
firstStepTip: 'Para comenzar,',
|
||||
enterKeyTip: 'ingresa tu clave de API de OpenAI a continuación',
|
||||
getKeyTip: 'Obtén tu clave de API desde el panel de control de OpenAI',
|
||||
placeholder: 'Tu clave de API de OpenAI (ej. sk-xxxx)',
|
||||
},
|
||||
apiKeyInfo: {
|
||||
cloud: {
|
||||
trial: {
|
||||
title: 'Estás utilizando la cuota de prueba de {{providerName}}.',
|
||||
description: 'La cuota de prueba se proporciona para su uso de prueba. Antes de que se agoten las llamadas de la cuota de prueba, configure su propio proveedor de modelos o compre cuota adicional.',
|
||||
},
|
||||
exhausted: {
|
||||
title: 'Tu cuota de prueba se ha agotado, por favor configura tu APIKey.',
|
||||
description: 'Tu cuota de prueba se ha agotado. Por favor, configure su propio proveedor de modelos o compre cuota adicional.',
|
||||
},
|
||||
},
|
||||
selfHost: {
|
||||
title: {
|
||||
row1: 'Para comenzar,',
|
||||
row2: 'configura primero tu proveedor de modelos.',
|
||||
},
|
||||
},
|
||||
callTimes: 'Veces llamadas',
|
||||
usedToken: 'Token utilizados',
|
||||
setAPIBtn: 'Ir a configurar proveedor de modelos',
|
||||
tryCloud: 'O prueba la versión en la nube de Dify con una cotización gratuita',
|
||||
},
|
||||
overview: {
|
||||
title: 'Resumen',
|
||||
appInfo: {
|
||||
explanation: 'Aplicación web de IA lista para usar',
|
||||
accessibleAddress: 'URL pública',
|
||||
preview: 'Vista previa',
|
||||
regenerate: 'Regenerar',
|
||||
regenerateNotice: '¿Deseas regenerar la URL pública?',
|
||||
preUseReminder: 'Por favor, habilita la aplicación web antes de continuar.',
|
||||
settings: {
|
||||
entry: 'Configuración',
|
||||
title: 'Configuración de la aplicación web',
|
||||
webName: 'Nombre de la aplicación web',
|
||||
webDesc: 'Descripción de la aplicación web',
|
||||
webDescTip: 'Este texto se mostrará en el lado del cliente, proporcionando una guía básica sobre cómo usar la aplicación',
|
||||
webDescPlaceholder: 'Ingresa la descripción de la aplicación web',
|
||||
language: 'Idioma',
|
||||
workflow: {
|
||||
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 web app',
|
||||
},
|
||||
chatColorTheme: 'Tema de color del chat',
|
||||
chatColorThemeDesc: 'Establece el tema de color del chatbot',
|
||||
chatColorThemeInverted: 'Invertido',
|
||||
invalidHexMessage: 'Valor hexadecimal no válido',
|
||||
invalidPrivacyPolicy: 'Enlace de política de privacidad no válido. Por favor, utiliza un enlace válido que comience con http o https',
|
||||
more: {
|
||||
entry: 'Mostrar más configuraciones',
|
||||
copyright: 'Derechos de autor',
|
||||
copyRightPlaceholder: 'Ingresa el nombre del autor o la organización',
|
||||
privacyPolicy: 'Política de privacidad',
|
||||
privacyPolicyPlaceholder: 'Ingresa el enlace de la política de privacidad',
|
||||
privacyPolicyTip: 'Ayuda a los visitantes a comprender los datos que recopila la aplicación, consulta la <privacyPolicyLink>Política de privacidad</privacyPolicyLink> de Dify.',
|
||||
customDisclaimer: 'Descargo de responsabilidad personalizado',
|
||||
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',
|
||||
copyrightTip: 'Mostrar información de derechos de autor en la aplicación web',
|
||||
copyrightTooltip: 'Actualice al plan Profesional o superior',
|
||||
},
|
||||
sso: {
|
||||
description: 'Todos los usuarios deben iniciar sesión con SSO antes de usar web app',
|
||||
tooltip: 'Póngase en contacto con el administrador para habilitar el inicio de sesión único de web app',
|
||||
label: 'Autenticación SSO',
|
||||
title: 'web app SSO',
|
||||
},
|
||||
modalTip: 'Configuración de la aplicación web del lado del cliente.',
|
||||
},
|
||||
embedded: {
|
||||
entry: 'Incrustado',
|
||||
title: 'Incrustar en el sitio web',
|
||||
explanation: 'Elige la forma de incrustar la aplicación de chat en tu sitio web',
|
||||
iframe: 'Para agregar la aplicación de chat en cualquier lugar de tu sitio web, agrega este iframe a tu código HTML.',
|
||||
scripts: 'Para agregar una aplicación de chat en la esquina inferior derecha de tu sitio web, agrega este código a tu HTML.',
|
||||
chromePlugin: 'Instalar la extensión de Chrome de Dify Chatbot',
|
||||
copied: 'Copiado',
|
||||
copy: 'Copiar',
|
||||
},
|
||||
qrcode: {
|
||||
title: 'Código QR para compartir',
|
||||
scan: 'Escanear para compartir la aplicación',
|
||||
download: 'Descargar código QR',
|
||||
},
|
||||
customize: {
|
||||
way: 'forma',
|
||||
entry: 'Personalizar',
|
||||
title: 'Personalizar la aplicación web de IA',
|
||||
explanation: 'Puedes personalizar el frontend de la aplicación web para adaptarlo a tus necesidades y estilo.',
|
||||
way1: {
|
||||
name: 'Bifurca el código del cliente, modifícalo y despliégalo en Vercel (recomendado)',
|
||||
step1: 'Bifurca el código del cliente y modifícalo',
|
||||
step1Tip: 'Haz clic aquí para bifurcar el código fuente en tu cuenta de GitHub y modificar el código',
|
||||
step1Operation: 'Dify-WebClient',
|
||||
step2: 'Despliégalo en Vercel',
|
||||
step2Tip: 'Haz clic aquí para importar el repositorio en Vercel y desplegarlo',
|
||||
step2Operation: 'Importar repositorio',
|
||||
step3: 'Configura las variables de entorno',
|
||||
step3Tip: 'Agrega las siguientes variables de entorno en Vercel',
|
||||
},
|
||||
way2: {
|
||||
name: 'Escribe código del lado del cliente para llamar a la API y despliégalo en un servidor',
|
||||
operation: 'Documentación',
|
||||
},
|
||||
},
|
||||
launch: 'Lanzar',
|
||||
enableTooltip: {
|
||||
description: 'Para habilitar esta función, por favor agrega un nodo de Entrada de Usuario al lienzo. (Puede que ya exista en el borrador, surte efecto después de publicar)',
|
||||
learnMore: 'Aprender más',
|
||||
},
|
||||
title: 'Aplicación web',
|
||||
},
|
||||
apiInfo: {
|
||||
title: 'API del servicio backend',
|
||||
explanation: 'Fácilmente integrable en tu aplicación',
|
||||
accessibleAddress: 'Punto de conexión de la API del servicio',
|
||||
doc: 'Referencia de la API',
|
||||
},
|
||||
status: {
|
||||
running: 'En servicio',
|
||||
disable: 'Deshabilitar',
|
||||
},
|
||||
triggerInfo: {
|
||||
title: 'Desencadenantes',
|
||||
explanation: 'Gestión de activadores de flujo de trabajo',
|
||||
triggersAdded: 'Se añadieron los disparadores de {{count}}',
|
||||
noTriggerAdded: 'No se agregó ningún disparador',
|
||||
triggerStatusDescription: 'El estado del nodo de activación aparece aquí. (Puede que ya exista en el borrador, surte efecto después de publicar)',
|
||||
learnAboutTriggers: 'Aprende sobre los desencadenantes',
|
||||
},
|
||||
disableTooltip: {
|
||||
triggerMode: 'La función {{feature}} no es compatible en el modo Nodo de disparo.',
|
||||
},
|
||||
},
|
||||
analysis: {
|
||||
title: 'Análisis',
|
||||
ms: 'ms',
|
||||
tokenPS: 'Token/s',
|
||||
totalMessages: {
|
||||
title: 'Mensajes totales',
|
||||
explanation: 'Recuento diario de interacciones con IA.',
|
||||
},
|
||||
totalConversations: {
|
||||
title: 'Conversaciones totales',
|
||||
explanation: 'Recuento diario de conversaciones con IA; ingeniería/depuración de prompts excluida.',
|
||||
},
|
||||
activeUsers: {
|
||||
title: 'Usuarios activos',
|
||||
explanation: 'Usuarios únicos que interactúan en preguntas y respuestas con IA; excluye la ingeniería/depuración de prompts.',
|
||||
},
|
||||
tokenUsage: {
|
||||
title: 'Uso de tokens',
|
||||
explanation: 'Refleja el uso diario de tokens del modelo de lenguaje para la aplicación, útil para el control de costos.',
|
||||
consumed: 'Consumidos',
|
||||
},
|
||||
avgSessionInteractions: {
|
||||
title: 'Interacciones promedio por sesión',
|
||||
explanation: 'Recuento continuo de comunicación usuario-IA; para aplicaciones basadas en conversaciones.',
|
||||
},
|
||||
avgUserInteractions: {
|
||||
title: 'Interacciones promedio por usuario',
|
||||
explanation: 'Refleja la frecuencia de uso diario de los usuarios. Esta métrica refleja la fidelidad del usuario.',
|
||||
},
|
||||
userSatisfactionRate: {
|
||||
title: 'Tasa de satisfacción del usuario',
|
||||
explanation: 'El número de likes por cada 1,000 mensajes. Esto indica la proporción de respuestas con las que los usuarios están muy satisfechos.',
|
||||
},
|
||||
avgResponseTime: {
|
||||
title: 'Tiempo promedio de respuesta',
|
||||
explanation: 'Tiempo (ms) que tarda la IA en procesar/responder; para aplicaciones basadas en texto.',
|
||||
},
|
||||
tps: {
|
||||
title: 'Velocidad de salida de tokens',
|
||||
explanation: 'Mide el rendimiento del LLM. Cuenta la velocidad de salida de tokens del LLM desde el inicio de la solicitud hasta la finalización de la salida.',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
349
dify/web/i18n/es-ES/app.ts
Normal file
349
dify/web/i18n/es-ES/app.ts
Normal file
@@ -0,0 +1,349 @@
|
||||
const translation = {
|
||||
createApp: 'CREAR APP',
|
||||
types: {
|
||||
all: 'Todos',
|
||||
chatbot: 'Chatbot',
|
||||
agent: 'Agente',
|
||||
workflow: 'Flujo de trabajo',
|
||||
completion: 'Finalización',
|
||||
basic: 'Básico',
|
||||
advanced: 'Flujo de chat',
|
||||
},
|
||||
duplicate: 'Duplicar',
|
||||
duplicateTitle: 'Duplicar App',
|
||||
export: 'Exportar DSL',
|
||||
exportFailed: 'Error al exportar DSL.',
|
||||
importDSL: 'Importar archivo DSL',
|
||||
createFromConfigFile: 'Crear desde archivo DSL',
|
||||
deleteAppConfirmTitle: '¿Eliminar esta app?',
|
||||
deleteAppConfirmContent:
|
||||
'Eliminar la app es irreversible. Los usuarios ya no podrán acceder a tu app y todas las configuraciones y registros de prompts se eliminarán permanentemente.',
|
||||
appDeleted: 'App eliminada',
|
||||
appDeleteFailed: 'Error al eliminar app',
|
||||
join: 'Únete a la comunidad',
|
||||
communityIntro:
|
||||
'Discute con miembros del equipo, colaboradores y desarrolladores en diferentes canales.',
|
||||
roadmap: 'Ver nuestro plan de desarrollo',
|
||||
newApp: {
|
||||
startFromBlank: 'Crear desde cero',
|
||||
startFromTemplate: 'Crear desde plantilla',
|
||||
workflowWarning: 'Actualmente en beta',
|
||||
captionName: 'Icono y nombre de la app',
|
||||
appNamePlaceholder: 'Asigna un nombre a tu app',
|
||||
captionDescription: 'Descripción',
|
||||
appDescriptionPlaceholder: 'Ingresa la descripción de la app',
|
||||
useTemplate: 'Usar esta plantilla',
|
||||
previewDemo: 'Vista previa de demostración',
|
||||
chatApp: 'Asistente',
|
||||
chatAppIntro:
|
||||
'Quiero construir una aplicación basada en chat. Esta app utiliza un formato de pregunta y respuesta, permitiendo múltiples rondas de conversación continua.',
|
||||
agentAssistant: 'Nuevo Asistente de Agente',
|
||||
completeApp: 'Generador de Texto',
|
||||
completeAppIntro:
|
||||
'Quiero crear una aplicación que genera texto de alta calidad basado en prompts, como la generación de artículos, resúmenes, traducciones y más.',
|
||||
showTemplates: 'Quiero elegir una plantilla',
|
||||
hideTemplates: 'Volver a la selección de modo',
|
||||
Create: 'Crear',
|
||||
Cancel: 'Cancelar',
|
||||
nameNotEmpty: 'El nombre no puede estar vacío',
|
||||
appTemplateNotSelected: 'Por favor, selecciona una plantilla',
|
||||
appTypeRequired: 'Por favor, selecciona un tipo de app',
|
||||
appCreated: 'App creada',
|
||||
appCreateFailed: 'Error al crear app',
|
||||
Confirm: 'Confirmar',
|
||||
caution: 'Cautela',
|
||||
appCreateDSLErrorTitle: 'Incompatibilidad de versiones',
|
||||
appCreateDSLErrorPart2: '¿Quieres continuar?',
|
||||
appCreateDSLErrorPart4: 'Versión de DSL compatible con el sistema:',
|
||||
appCreateDSLErrorPart1: 'Se ha detectado una diferencia significativa en las versiones de DSL. Forzar la importación puede hacer que la aplicación no funcione correctamente.',
|
||||
appCreateDSLWarning: 'Precaución: La diferencia de versión de DSL puede afectar a determinadas funciones',
|
||||
appCreateDSLErrorPart3: 'Versión actual de DSL de la aplicación:',
|
||||
forBeginners: 'Tipos de aplicación más básicos',
|
||||
learnMore: 'Aprende más',
|
||||
noTemplateFoundTip: 'Intente buscar usando diferentes palabras clave.',
|
||||
chatbotShortDescription: 'Chatbot basado en LLM con una configuración sencilla',
|
||||
chooseAppType: 'Elija un tipo de aplicación',
|
||||
noAppsFound: 'No se han encontrado aplicaciones',
|
||||
workflowUserDescription: 'Construya flujos de trabajo autónomos de IA con la simplicidad de arrastrar y soltar.',
|
||||
advancedShortDescription: 'Flujo de trabajo mejorado para chats de múltiples turnos',
|
||||
forAdvanced: 'PARA USUARIOS AVANZADOS',
|
||||
completionShortDescription: 'Asistente de IA para tareas de generación de texto',
|
||||
optional: 'Opcional',
|
||||
noIdeaTip: '¿No tienes ideas? Echa un vistazo a nuestras plantillas',
|
||||
agentUserDescription: 'Un agente inteligente capaz de realizar un razonamiento iterativo y un uso autónomo de las herramientas para alcanzar los objetivos de las tareas.',
|
||||
workflowShortDescription: 'Flujo agéntico para automatizaciones inteligentes',
|
||||
advancedUserDescription: 'Flujo de trabajo con funciones de memoria y una interfaz de chatbot.',
|
||||
agentShortDescription: 'Agente inteligente con razonamiento y uso autónomo de herramientas',
|
||||
foundResults: '{{conteo}} Resultados',
|
||||
noTemplateFound: 'No se han encontrado plantillas',
|
||||
foundResult: '{{conteo}} Resultado',
|
||||
chatbotUserDescription: 'Cree rápidamente un chatbot basado en LLM con una configuración sencilla. Puedes cambiar a Chatflow más tarde.',
|
||||
completionUserDescription: 'Cree rápidamente un asistente de IA para tareas de generación de texto con una configuración sencilla.',
|
||||
dropDSLToCreateApp: 'Suelta el archivo DSL aquí para crear la aplicación',
|
||||
import: 'Importación',
|
||||
},
|
||||
editApp: 'Editar información',
|
||||
editAppTitle: 'Editar información de la app',
|
||||
editDone: 'Información de la app actualizada',
|
||||
editFailed: 'Error al actualizar información de la app',
|
||||
iconPicker: {
|
||||
ok: 'OK',
|
||||
cancel: 'Cancelar',
|
||||
emoji: 'Emoji',
|
||||
image: 'Imagen',
|
||||
},
|
||||
switch: 'Cambiar a Orquestación de Flujo de Trabajo',
|
||||
switchTipStart: 'Se creará una nueva copia de la app para ti y la nueva copia cambiará a Orquestación de Flujo de Trabajo. La nueva copia no permitirá',
|
||||
switchTip: 'volver',
|
||||
switchTipEnd: ' a la Orquestación Básica.',
|
||||
switchLabel: 'La copia de la app a crear',
|
||||
removeOriginal: 'Eliminar la app original',
|
||||
switchStart: 'Iniciar cambio',
|
||||
typeSelector: {
|
||||
all: 'Todos los tipos',
|
||||
chatbot: 'Chatbot',
|
||||
agent: 'Agente',
|
||||
workflow: 'Flujo de trabajo',
|
||||
completion: 'Finalización',
|
||||
advanced: 'Flujo de chat',
|
||||
},
|
||||
tracing: {
|
||||
title: 'Rastreo del rendimiento de la app',
|
||||
description: 'Configuración de un proveedor de LLMOps de terceros y rastreo del rendimiento de la app.',
|
||||
config: 'Configurar',
|
||||
collapse: 'Contraer',
|
||||
expand: 'Expandir',
|
||||
tracing: 'Rastreo',
|
||||
disabled: 'Deshabilitado',
|
||||
disabledTip: 'Por favor, configura el proveedor primero',
|
||||
enabled: 'En servicio',
|
||||
tracingDescription: 'Captura el contexto completo de la ejecución de la app, incluyendo llamadas LLM, contexto, prompts, solicitudes HTTP y más, en una plataforma de rastreo de terceros.',
|
||||
configProviderTitle: {
|
||||
configured: 'Configurado',
|
||||
notConfigured: 'Configurar proveedor para habilitar el rastreo',
|
||||
moreProvider: 'Más proveedores',
|
||||
},
|
||||
arize: {
|
||||
title: 'Arize',
|
||||
description: 'Observabilidad de LLM de nivel empresarial, evaluación en línea y fuera de línea, monitoreo y experimentación—impulsada por OpenTelemetry. Diseñada específicamente para aplicaciones impulsadas por LLM y agentes.',
|
||||
},
|
||||
phoenix: {
|
||||
title: 'Phoenix',
|
||||
description: 'Plataforma de observabilidad, evaluación, ingeniería de prompts y experimentación de código abierto basada en OpenTelemetry para sus flujos de trabajo y agentes de LLM.',
|
||||
},
|
||||
langsmith: {
|
||||
title: 'LangSmith',
|
||||
description: 'Una plataforma de desarrollo todo en uno para cada paso del ciclo de vida de la aplicación impulsada por LLM.',
|
||||
},
|
||||
langfuse: {
|
||||
title: 'Langfuse',
|
||||
description: 'Rastrea, evalúa, gestiona prompts y métricas para depurar y mejorar tu aplicación LLM.',
|
||||
},
|
||||
inUse: 'En uso',
|
||||
configProvider: {
|
||||
title: 'Configurar ',
|
||||
placeholder: 'Ingresa tu {{key}}',
|
||||
project: 'Proyecto',
|
||||
publicKey: 'Clave pública',
|
||||
secretKey: 'Clave secreta',
|
||||
viewDocsLink: 'Ver documentación de {{key}}',
|
||||
removeConfirmTitle: '¿Eliminar la configuración de {{key}}?',
|
||||
removeConfirmContent: 'La configuración actual está en uso, eliminarla desactivará la función de rastreo.',
|
||||
password: 'Contraseña',
|
||||
experimentId: 'ID del experimento',
|
||||
trackingUri: 'URI de seguimiento',
|
||||
username: 'Nombre de usuario',
|
||||
databricksHost: 'URL del espacio de trabajo de Databricks',
|
||||
clientSecret: 'Secreto del cliente OAuth',
|
||||
clientId: 'ID de cliente OAuth',
|
||||
personalAccessToken: 'Token de Acceso Personal (antiguo)',
|
||||
},
|
||||
view: 'Vista',
|
||||
opik: {
|
||||
description: 'Opik es una plataforma de código abierto para evaluar, probar y monitorear aplicaciones LLM.',
|
||||
title: 'Opik',
|
||||
},
|
||||
weave: {
|
||||
description: 'Weave es una plataforma de código abierto para evaluar, probar y monitorear aplicaciones de LLM.',
|
||||
title: 'Tejer',
|
||||
},
|
||||
aliyun: {
|
||||
title: 'Monitor de Nubes',
|
||||
description: 'La plataforma de observabilidad totalmente gestionada y sin mantenimiento proporcionada por Alibaba Cloud, permite la monitorización, trazado y evaluación de aplicaciones Dify de manera inmediata.',
|
||||
},
|
||||
mlflow: {
|
||||
title: 'MLflow',
|
||||
description: 'Plataforma LLMOps de código abierto para seguimiento de experimentos, observabilidad y evaluación, para construir aplicaciones de IA/LLM con confianza.',
|
||||
},
|
||||
databricks: {
|
||||
title: 'Databricks',
|
||||
description: 'Databricks ofrece MLflow completamente gestionado con fuerte gobernanza y seguridad para almacenar datos de trazabilidad.',
|
||||
},
|
||||
tencent: {
|
||||
title: 'Tencent APM',
|
||||
description: 'Tencent Application Performance Monitoring proporciona rastreo integral y análisis multidimensional para aplicaciones LLM.',
|
||||
},
|
||||
},
|
||||
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í',
|
||||
dslUploader: {
|
||||
button: 'Arrastrar y soltar archivo, o',
|
||||
browse: 'Examinar',
|
||||
},
|
||||
importFromDSL: 'Importar desde DSL',
|
||||
importFromDSLFile: 'Desde el archivo DSL',
|
||||
mermaid: {
|
||||
handDrawn: 'Dibujado a mano',
|
||||
classic: 'Clásico',
|
||||
},
|
||||
openInExplore: 'Abrir en Explorar',
|
||||
newAppFromTemplate: {
|
||||
sidebar: {
|
||||
Programming: 'Programación',
|
||||
Agent: 'Agente',
|
||||
Writing: 'Escritura',
|
||||
Assistant: 'Asistente',
|
||||
Recommended: 'Recomendado',
|
||||
HR: 'HR',
|
||||
Workflow: 'Flujo de trabajo',
|
||||
},
|
||||
byCategories: 'POR CATEGORÍAS',
|
||||
searchAllTemplate: 'Buscar todas las plantillas...',
|
||||
},
|
||||
showMyCreatedAppsOnly: 'Mostrar solo mis aplicaciones creadas',
|
||||
appSelector: {
|
||||
label: 'APLICACIÓN',
|
||||
placeholder: 'Selecciona una aplicación...',
|
||||
noParams: 'No se necesitan parámetros',
|
||||
params: 'PARÁMETROS DE LA APLICACIÓN',
|
||||
},
|
||||
structOutput: {
|
||||
notConfiguredTip: 'La salida estructurada aún no ha sido configurada.',
|
||||
required: 'Requerido',
|
||||
configure: 'Configurar',
|
||||
LLMResponse: 'Respuesta del LLM',
|
||||
moreFillTip: 'Mostrando un máximo de 10 niveles de anidación',
|
||||
modelNotSupportedTip: 'El modelo actual no admite esta función y se degrada automáticamente a inyección de comandos.',
|
||||
structuredTip: 'Las Salidas Estructuradas son una función que garantiza que el modelo siempre generará respuestas que se ajusten a su esquema JSON proporcionado.',
|
||||
modelNotSupported: 'Modelo no soportado',
|
||||
structured: 'sistemático',
|
||||
},
|
||||
accessItemsDescription: {
|
||||
anyone: 'Cualquiera puede acceder a la aplicación web.',
|
||||
specific: 'Solo grupos o miembros específicos pueden acceder a la aplicación web',
|
||||
organization: 'Cualquiera en la organización puede acceder a la aplicación web',
|
||||
external: 'Solo los usuarios externos autenticados pueden acceder a la aplicación web.',
|
||||
},
|
||||
accessControlDialog: {
|
||||
accessItems: {
|
||||
anyone: 'Cualquiera con el enlace',
|
||||
specific: 'Grupos o miembros específicos',
|
||||
organization: 'Solo miembros dentro de la empresa',
|
||||
external: 'Usuarios externos autenticados',
|
||||
},
|
||||
operateGroupAndMember: {
|
||||
searchPlaceholder: 'Buscar grupos y miembros',
|
||||
allMembers: 'Todos los miembros',
|
||||
expand: 'Expandir',
|
||||
noResult: 'Sin resultado',
|
||||
},
|
||||
title: 'Control de Acceso a la Aplicación Web',
|
||||
description: 'Establecer permisos de acceso a la aplicación web',
|
||||
accessLabel: '¿Quién tiene acceso?',
|
||||
groups_one: '{{count}} GRUPO',
|
||||
groups_other: '{{count}} GRUPOS',
|
||||
members_one: '{{count}} MIEMBRO',
|
||||
members_other: '{{count}} MIEMBROS',
|
||||
noGroupsOrMembers: 'No grupos o miembros seleccionados',
|
||||
webAppSSONotEnabledTip: 'Por favor, contacte al administrador de la empresa para configurar el método de autenticación de la aplicación web.',
|
||||
updateSuccess: 'Actualización exitosa',
|
||||
},
|
||||
publishApp: {
|
||||
title: '¿Quién puede acceder a la aplicación web?',
|
||||
notSet: 'No establecido',
|
||||
notSetDesc: 'Actualmente nadie puede acceder a la aplicación web. Por favor, configure los permisos.',
|
||||
},
|
||||
accessControl: 'Control de Acceso a la Aplicación Web',
|
||||
noAccessPermission: 'No se permite el acceso a la aplicación web',
|
||||
maxActiveRequestsPlaceholder: 'Introduce 0 para ilimitado',
|
||||
maxActiveRequests: 'Máximas solicitudes concurrentes',
|
||||
maxActiveRequestsTip: 'Número máximo de solicitudes activas concurrentes por aplicación (0 para ilimitado)',
|
||||
gotoAnything: {
|
||||
actions: {
|
||||
searchApplications: 'Buscar aplicaciones',
|
||||
searchKnowledgeBasesDesc: 'Busque y navegue por sus bases de conocimiento',
|
||||
searchWorkflowNodes: 'Buscar nodos de flujo de trabajo',
|
||||
searchPlugins: 'Buscar complementos',
|
||||
searchWorkflowNodesDesc: 'Buscar y saltar a nodos en el flujo de trabajo actual por nombre o tipo',
|
||||
searchKnowledgeBases: 'Buscar en las bases de conocimiento',
|
||||
searchApplicationsDesc: 'Buscar y navegar a sus aplicaciones',
|
||||
searchPluginsDesc: 'Busca y navega a tus plugins',
|
||||
searchWorkflowNodesHelp: 'Esta función solo funciona cuando se visualiza un flujo de trabajo. Primero vaya a un flujo de trabajo.',
|
||||
languageCategoryTitle: 'Idioma',
|
||||
runDesc: 'Ejecutar comandos rápidos (tema, idioma, ...)',
|
||||
runTitle: 'Comandos',
|
||||
themeSystem: 'Tema del sistema',
|
||||
themeDark: 'Tema oscuro',
|
||||
themeLight: 'Tema Claro',
|
||||
themeCategoryTitle: 'Tema',
|
||||
themeLightDesc: 'Usar apariencia clara',
|
||||
themeSystemDesc: 'Sigue la apariencia de tu sistema operativo',
|
||||
languageChangeDesc: 'Cambiar el idioma de la interfaz',
|
||||
themeDarkDesc: 'Usar apariencia oscura',
|
||||
languageCategoryDesc: 'Cambiar el idioma de la interfaz',
|
||||
themeCategoryDesc: 'Cambiar el tema de la aplicación',
|
||||
slashDesc: 'Ejecuta comandos como /tema, /idioma',
|
||||
accountDesc: 'Navegar a la página de cuenta',
|
||||
communityDesc: 'Abrir comunidad de Discord',
|
||||
feedbackDesc: 'Discusiones de retroalimentación de la comunidad abierta',
|
||||
docDesc: 'Abrir la documentación de ayuda',
|
||||
},
|
||||
emptyState: {
|
||||
noAppsFound: 'No se encontraron aplicaciones',
|
||||
noPluginsFound: 'No se encontraron complementos',
|
||||
noWorkflowNodesFound: 'No se encontraron nodos de flujo de trabajo',
|
||||
noKnowledgeBasesFound: 'No se han encontrado bases de conocimiento',
|
||||
tryDifferentTerm: 'Intenta un término de búsqueda diferente o elimina el filtro {{mode}}',
|
||||
trySpecificSearch: 'Prueba {{shortcuts}} para búsquedas específicas',
|
||||
},
|
||||
groups: {
|
||||
apps: 'Aplicaciones',
|
||||
workflowNodes: 'Nodos de flujo de trabajo',
|
||||
knowledgeBases: 'Bases de conocimiento',
|
||||
plugins: 'Complementos',
|
||||
commands: 'Comandos',
|
||||
},
|
||||
clearToSearchAll: 'Borrar @ para buscar todo',
|
||||
noResults: 'No se han encontrado resultados',
|
||||
searching: 'Buscando...',
|
||||
searchTemporarilyUnavailable: 'La búsqueda no está disponible temporalmente',
|
||||
searchFailed: 'Error de búsqueda',
|
||||
useAtForSpecific: 'Use @ para tipos específicos',
|
||||
searchPlaceholder: 'Busque o escriba @ para los comandos...',
|
||||
searchTitle: 'Busca cualquier cosa',
|
||||
someServicesUnavailable: 'Algunos servicios de búsqueda no están disponibles',
|
||||
servicesUnavailableMessage: 'Algunos servicios de búsqueda pueden estar experimentando problemas. Inténtalo de nuevo en un momento.',
|
||||
searchHint: 'Empieza a escribir para buscar todo al instante',
|
||||
commandHint: 'Escriba @ para buscar por categoría',
|
||||
selectSearchType: 'Elige qué buscar',
|
||||
resultCount: '{{count}} resultado',
|
||||
resultCount_other: '{{count}} resultados',
|
||||
inScope: 'en {{scope}}s',
|
||||
tryDifferentSearch: 'Prueba con un término de búsqueda diferente',
|
||||
noMatchingCommands: 'No se encontraron comandos coincidentes',
|
||||
slashHint: 'Escribe / para ver todos los comandos disponibles',
|
||||
selectToNavigate: 'Seleccionar para navegar',
|
||||
pressEscToClose: 'Presiona ESC para cerrar',
|
||||
startTyping: 'Empieza a escribir para buscar',
|
||||
tips: 'Presiona ↑↓ para navegar',
|
||||
},
|
||||
notPublishedYet: 'La aplicación aún no está publicada',
|
||||
noUserInputNode: 'Nodo de entrada de usuario faltante',
|
||||
}
|
||||
|
||||
export default translation
|
||||
203
dify/web/i18n/es-ES/billing.ts
Normal file
203
dify/web/i18n/es-ES/billing.ts
Normal file
@@ -0,0 +1,203 @@
|
||||
const translation = {
|
||||
currentPlan: 'Plan Actual',
|
||||
upgradeBtn: {
|
||||
plain: 'Actualizar Plan',
|
||||
encourage: 'Actualizar Ahora',
|
||||
encourageShort: 'Actualizar',
|
||||
},
|
||||
viewBilling: 'Administrar facturación y suscripciones',
|
||||
buyPermissionDeniedTip: 'Por favor, contacta al administrador de tu empresa para suscribirte',
|
||||
plansCommon: {
|
||||
yearlyTip: '¡Obtén 2 meses gratis al suscribirte anualmente!',
|
||||
mostPopular: 'Más Popular',
|
||||
planRange: {
|
||||
monthly: 'Mensual',
|
||||
yearly: 'Anual',
|
||||
},
|
||||
month: 'mes',
|
||||
year: 'año',
|
||||
save: 'Ahorra ',
|
||||
free: 'Gratis',
|
||||
currentPlan: 'Plan Actual',
|
||||
contractSales: 'Contactar ventas',
|
||||
contractOwner: 'Contactar al administrador del equipo',
|
||||
startForFree: 'Empezar gratis',
|
||||
contactSales: 'Contactar Ventas',
|
||||
talkToSales: 'Hablar con Ventas',
|
||||
modelProviders: 'Proveedores de Modelos',
|
||||
annotationQuota: 'Cuota de Anotación',
|
||||
buildApps: 'Crear Aplicaciones',
|
||||
vectorSpace: 'Espacio Vectorial',
|
||||
vectorSpaceTooltip: 'El Espacio Vectorial es el sistema de memoria a largo plazo necesario para que los LLMs comprendan tus datos.',
|
||||
documentProcessingPriority: 'Prioridad de Procesamiento de Documentos',
|
||||
documentProcessingPriorityUpgrade: 'Procesa más datos con mayor precisión y velocidad.',
|
||||
priority: {
|
||||
'standard': 'Estándar',
|
||||
'priority': 'Prioridad',
|
||||
'top-priority': 'Prioridad Máxima',
|
||||
},
|
||||
logsHistory: 'Historial de Registros',
|
||||
customTools: 'Herramientas Personalizadas',
|
||||
unavailable: 'No disponible',
|
||||
days: 'días',
|
||||
unlimited: 'Ilimitado',
|
||||
support: 'Soporte',
|
||||
supportItems: {
|
||||
communityForums: 'Foros Comunitarios',
|
||||
emailSupport: 'Soporte por Correo Electrónico',
|
||||
priorityEmail: 'Soporte Prioritario por Correo Electrónico y Chat',
|
||||
logoChange: 'Cambio de Logotipo',
|
||||
SSOAuthentication: 'Autenticación SSO',
|
||||
personalizedSupport: 'Soporte Personalizado',
|
||||
dedicatedAPISupport: 'Soporte API Dedicado',
|
||||
customIntegration: 'Integración y Soporte Personalizado',
|
||||
ragAPIRequest: 'Solicitudes API RAG',
|
||||
bulkUpload: 'Carga Masiva de Documentos',
|
||||
agentMode: 'Modo Agente',
|
||||
workflow: 'Flujo de Trabajo',
|
||||
llmLoadingBalancing: 'Balanceo de Carga LLM',
|
||||
llmLoadingBalancingTooltip: 'Agrega múltiples claves API a los modelos, evitando efectivamente los límites de velocidad de API.',
|
||||
},
|
||||
comingSoon: 'Próximamente',
|
||||
member: 'Miembro',
|
||||
memberAfter: 'Miembro',
|
||||
messageRequest: {
|
||||
title: 'Créditos de Mensajes',
|
||||
tooltip: 'Cuotas de invocación de mensajes para varios planes utilizando modelos de OpenAI (excepto gpt4). Los mensajes que excedan el límite utilizarán tu clave API de OpenAI.',
|
||||
titlePerMonth: '{{count,number}} mensajes/mes',
|
||||
},
|
||||
annotatedResponse: {
|
||||
title: 'Límites de Cuota de Anotación',
|
||||
tooltip: 'Edición manual y anotación de respuestas proporciona habilidades de respuesta a preguntas personalizadas y de alta calidad para aplicaciones (aplicable solo en aplicaciones de chat).',
|
||||
},
|
||||
ragAPIRequestTooltip: 'Se refiere al número de llamadas API que invocan solo las capacidades de procesamiento de base de conocimientos de Dify.',
|
||||
receiptInfo: 'Solo el propietario del equipo y el administrador del equipo pueden suscribirse y ver la información de facturación.',
|
||||
priceTip: 'por espacio de trabajo/',
|
||||
teamMember_one: '{{count, número}} Miembro del Equipo',
|
||||
getStarted: 'Comenzar',
|
||||
apiRateLimitUnit: '{{count, número}}',
|
||||
freeTrialTipSuffix: 'No se requiere tarjeta de crédito',
|
||||
unlimitedApiRate: 'Sin límite de tasa de API',
|
||||
apiRateLimit: 'Límite de tasa de API',
|
||||
documentsTooltip: 'Cuota sobre el número de documentos importados desde la Fuente de Datos del Conocimiento.',
|
||||
comparePlanAndFeatures: 'Compara planes y características',
|
||||
cloud: 'Servicio en la nube',
|
||||
teamMember_other: '{{count,number}} Miembros del equipo',
|
||||
annualBilling: 'Facturación Anual',
|
||||
self: 'Autoalojado',
|
||||
freeTrialTip: 'prueba gratuita de 200 llamadas de OpenAI.',
|
||||
teamWorkspace: '{{count,number}} Espacio de Trabajo en Equipo',
|
||||
documents: '{{count,number}} Documentos de Conocimiento',
|
||||
documentsRequestQuota: '{{count,number}}/min Límite de tasa de solicitud de conocimiento',
|
||||
freeTrialTipPrefix: 'Regístrate y obtén un',
|
||||
apiRateLimitTooltip: 'El límite de tasa de la API se aplica a todas las solicitudes realizadas a través de la API de Dify, incluidos la generación de texto, las conversaciones de chat, las ejecuciones de flujo de trabajo y el procesamiento de documentos.',
|
||||
documentsRequestQuotaTooltip: 'Especifica el número total de acciones que un espacio de trabajo puede realizar por minuto dentro de la base de conocimientos, incluyendo la creación, eliminación, actualización de conjuntos de datos, carga de documentos, modificaciones, archivo y consultas a la base de conocimientos. Esta métrica se utiliza para evaluar el rendimiento de las solicitudes a la base de conocimientos. Por ejemplo, si un usuario de Sandbox realiza 10 pruebas consecutivas en un minuto, su espacio de trabajo será temporalmente restringido de realizar las siguientes acciones durante el siguiente minuto: creación de conjuntos de datos, eliminación, actualizaciones y carga o modificaciones de documentos.',
|
||||
startBuilding: 'Empezar a construir',
|
||||
taxTip: 'Todos los precios de suscripción (mensuales/anuales) excluyen los impuestos aplicables (por ejemplo, IVA, impuesto sobre ventas).',
|
||||
taxTipSecond: 'Si su región no tiene requisitos fiscales aplicables, no se mostrará ningún impuesto en su pago y no se le cobrará ninguna tarifa adicional durante todo el período de suscripción.',
|
||||
triggerEvents: {
|
||||
unlimited: 'Eventos de Disparo Ilimitados',
|
||||
tooltip: 'El número de eventos que inician automáticamente flujos de trabajo mediante desencadenadores de Plugin, Programación o Webhook.',
|
||||
sandbox: '{{count,number}} Eventos de activación',
|
||||
professional: '{{count,number}} Eventos activadores/mes',
|
||||
},
|
||||
workflowExecution: {
|
||||
tooltip: 'Prioridad y velocidad de la cola de ejecución de flujos de trabajo.',
|
||||
standard: 'Ejecución estándar del flujo de trabajo',
|
||||
priority: 'Ejecución de flujo de trabajo prioritaria',
|
||||
faster: 'Ejecución de flujo de trabajo más rápida',
|
||||
},
|
||||
startNodes: {
|
||||
unlimited: 'Disparadores/flujo de trabajo ilimitados',
|
||||
limited: 'Hasta {{count}} Disparadores/flujo de trabajo',
|
||||
},
|
||||
title: {
|
||||
plans: 'planes',
|
||||
description: 'Selecciona el plan que mejor se adapte a las necesidades de tu equipo.',
|
||||
},
|
||||
},
|
||||
plans: {
|
||||
sandbox: {
|
||||
name: 'Sandbox',
|
||||
description: 'Prueba gratuita de 200 veces GPT',
|
||||
for: 'Prueba gratuita de capacidades básicas',
|
||||
},
|
||||
professional: {
|
||||
name: 'Profesional',
|
||||
description: 'Para individuos y pequeños equipos que desean desbloquear más poder de manera asequible.',
|
||||
for: 'Para desarrolladores independientes/equipos pequeños',
|
||||
},
|
||||
team: {
|
||||
name: 'Equipo',
|
||||
description: 'Colabora sin límites y disfruta de un rendimiento de primera categoría.',
|
||||
for: 'Para equipos de tamaño mediano',
|
||||
},
|
||||
enterprise: {
|
||||
name: 'Empresa',
|
||||
description: 'Obtén capacidades completas y soporte para sistemas críticos a gran escala.',
|
||||
includesTitle: 'Todo en el plan Equipo, más:',
|
||||
btnText: 'Contactar ventas',
|
||||
for: 'Para equipos de gran tamaño',
|
||||
price: 'Personalizado',
|
||||
priceTip: 'Facturación Anual Solo',
|
||||
features: ['Soluciones de Despliegue Escalables de Nivel Empresarial', 'Autorización de Licencia Comercial', 'Funciones Exclusivas para Empresas', 'Múltiples espacios de trabajo y gestión empresarial', 'SSO', 'Acuerdos de nivel de servicio negociados por socios de Dify', 'Seguridad y Controles Avanzados', 'Actualizaciones y Mantenimiento por Dify Oficialmente', 'Soporte Técnico Profesional'],
|
||||
},
|
||||
community: {
|
||||
includesTitle: 'Características gratuitas:',
|
||||
for: 'Para usuarios individuales, pequeños equipos o proyectos no comerciales',
|
||||
price: 'Gratis',
|
||||
btnText: 'Comienza con la Comunidad',
|
||||
name: 'Comunidad',
|
||||
description: 'Para usuarios individuales, pequeños equipos o proyectos no comerciales',
|
||||
features: ['Todas las características principales se publican en el repositorio público', 'Espacio de trabajo único', 'Cumple con la Licencia de Código Abierto de Dify'],
|
||||
},
|
||||
premium: {
|
||||
description: 'Para organizaciones y equipos de tamaño mediano',
|
||||
comingSoon: 'Soporte de Microsoft Azure y Google Cloud disponible próximamente',
|
||||
btnText: 'Obtén Premium en',
|
||||
priceTip: 'Basado en el Mercado de la Nube',
|
||||
price: 'Escalable',
|
||||
includesTitle: 'Todo de Community, además:',
|
||||
name: 'Premium',
|
||||
for: 'Para organizaciones y equipos de tamaño mediano',
|
||||
features: ['Confiabilidad autogestionada por varios proveedores de la nube', 'Espacio de trabajo único', 'Personalización de Logotipo y Marca de la Aplicación Web', 'Soporte prioritario por correo electrónico y chat'],
|
||||
},
|
||||
},
|
||||
vectorSpace: {
|
||||
fullTip: 'El Espacio Vectorial está lleno.',
|
||||
fullSolution: 'Actualiza tu plan para obtener más espacio.',
|
||||
},
|
||||
apps: {
|
||||
fullTip1des: 'Has alcanzado el límite de aplicaciones de construcción en este plan',
|
||||
fullTip2des: 'Se recomienda limpiar las aplicaciones inactivas para liberar espacio de uso, o contactarnos.',
|
||||
fullTip1: 'Actualiza para crear más aplicaciones',
|
||||
fullTip2: 'Límite de plan alcanzado',
|
||||
contactUs: 'Contáctanos',
|
||||
},
|
||||
annotatedResponse: {
|
||||
fullTipLine1: 'Actualiza tu plan para',
|
||||
fullTipLine2: 'anotar más conversaciones.',
|
||||
quotaTitle: 'Cuota de Respuesta Anotada',
|
||||
},
|
||||
usagePage: {
|
||||
buildApps: 'Construir aplicaciones',
|
||||
documentsUploadQuota: 'Cuota de carga de documentos',
|
||||
vectorSpace: 'Almacenamiento de Datos de Conocimiento',
|
||||
teamMembers: 'Miembros del equipo',
|
||||
annotationQuota: 'Cuota de anotación',
|
||||
vectorSpaceTooltip: 'Los documentos con el modo de indexación de alta calidad consumirán recursos de Almacenamiento de Datos de Conocimiento. Cuando el Almacenamiento de Datos de Conocimiento alcanza el límite, no se subirán nuevos documentos.',
|
||||
triggerEvents: 'Eventos desencadenantes',
|
||||
perMonth: 'por mes',
|
||||
resetsIn: 'Se reinicia en {{count,number}} días',
|
||||
},
|
||||
teamMembers: 'Miembros del equipo',
|
||||
triggerLimitModal: {
|
||||
dismiss: 'Descartar',
|
||||
upgrade: 'Actualizar',
|
||||
usageTitle: 'EVENTOS DESENCADENANTES',
|
||||
title: 'Actualiza para desbloquear más eventos desencadenantes',
|
||||
description: 'Has alcanzado el límite de activadores de eventos de flujo de trabajo para este plan.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
788
dify/web/i18n/es-ES/common.ts
Normal file
788
dify/web/i18n/es-ES/common.ts
Normal file
@@ -0,0 +1,788 @@
|
||||
const translation = {
|
||||
api: {
|
||||
success: 'Éxito',
|
||||
actionSuccess: 'Acción exitosa',
|
||||
saved: 'Guardado',
|
||||
create: 'Creado',
|
||||
remove: 'Eliminado',
|
||||
},
|
||||
operation: {
|
||||
create: 'Crear',
|
||||
confirm: 'Confirmar',
|
||||
cancel: 'Cancelar',
|
||||
clear: 'Limpiar',
|
||||
save: 'Guardar',
|
||||
saveAndEnable: 'Guardar y habilitar',
|
||||
edit: 'Editar',
|
||||
add: 'Agregar',
|
||||
added: 'Agregado',
|
||||
refresh: 'Reiniciar',
|
||||
reset: 'Restablecer',
|
||||
search: 'Buscar',
|
||||
change: 'Cambiar',
|
||||
remove: 'Eliminar',
|
||||
send: 'Enviar',
|
||||
copy: 'Copiar',
|
||||
lineBreak: 'Salto de línea',
|
||||
sure: 'Estoy seguro',
|
||||
download: 'Descargar',
|
||||
delete: 'Eliminar',
|
||||
settings: 'Configuraciones',
|
||||
setup: 'Configurar',
|
||||
getForFree: 'Obtener gratis',
|
||||
reload: 'Recargar',
|
||||
ok: 'OK',
|
||||
log: 'Registro',
|
||||
learnMore: 'Aprender más',
|
||||
params: 'Parámetros',
|
||||
duplicate: 'Duplicar',
|
||||
rename: 'Renombrar',
|
||||
audioSourceUnavailable: 'AudioSource no está disponible',
|
||||
zoomOut: 'Alejar',
|
||||
zoomIn: 'Acercar',
|
||||
openInNewTab: 'Abrir en una nueva pestaña',
|
||||
copyImage: 'Copiar imagen',
|
||||
viewMore: 'VER MÁS',
|
||||
regenerate: 'Regenerar',
|
||||
close: 'Cerrar',
|
||||
saveAndRegenerate: 'Guardar y regenerar fragmentos secundarios',
|
||||
view: 'Vista',
|
||||
submit: 'Enviar',
|
||||
skip: 'Navío',
|
||||
imageCopied: 'Imagen copiada',
|
||||
deleteApp: 'Eliminar aplicación',
|
||||
in: 'en',
|
||||
viewDetails: 'Ver detalles',
|
||||
copied: 'Copiado',
|
||||
more: 'Más',
|
||||
downloadSuccess: 'Descarga completada.',
|
||||
downloadFailed: 'La descarga ha fallado. Por favor, inténtalo de nuevo más tarde.',
|
||||
format: 'Formato',
|
||||
deSelectAll: 'Deseleccionar todo',
|
||||
selectAll: 'Seleccionar todo',
|
||||
config: 'Config',
|
||||
confirmAction: 'Por favor, confirme su acción.',
|
||||
deleteConfirmTitle: '¿Eliminar?',
|
||||
yes: 'Sí',
|
||||
no: 'No',
|
||||
noSearchResults: 'No se encontraron {{content}}',
|
||||
resetKeywords: 'Restablecer palabras clave',
|
||||
selectCount: '{{count}} Seleccionado',
|
||||
searchCount: 'Encuentra {{count}} {{content}}',
|
||||
noSearchCount: '0 {{content}}',
|
||||
now: 'Ahora',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} es requerido',
|
||||
urlError: 'la URL debe comenzar con http:// o https://',
|
||||
},
|
||||
placeholder: {
|
||||
input: 'Por favor ingresa',
|
||||
select: 'Por favor selecciona',
|
||||
search: 'Buscar...',
|
||||
},
|
||||
voice: {
|
||||
language: {
|
||||
zhHans: 'Chino',
|
||||
zhHant: 'Chino Tradicional',
|
||||
enUS: 'Inglés',
|
||||
deDE: 'Alemán',
|
||||
frFR: 'Francés',
|
||||
esES: 'Español',
|
||||
itIT: 'Italiano',
|
||||
thTH: 'Tailandés',
|
||||
idID: 'Indonesio',
|
||||
jaJP: 'Japonés',
|
||||
koKR: 'Coreano',
|
||||
ptBR: 'Portugués',
|
||||
ruRU: 'Ruso',
|
||||
ukUA: 'Ucraniano',
|
||||
viVN: 'Vietnamita',
|
||||
plPL: 'Polaco',
|
||||
roRO: 'Rumano',
|
||||
hiIN: 'Hindi',
|
||||
trTR: 'Turco',
|
||||
faIR: 'Persa',
|
||||
},
|
||||
},
|
||||
unit: {
|
||||
char: 'caracteres',
|
||||
},
|
||||
actionMsg: {
|
||||
noModification: 'No hay modificaciones en este momento.',
|
||||
modifiedSuccessfully: 'Modificado exitosamente',
|
||||
modifiedUnsuccessfully: 'Modificación no exitosa',
|
||||
copySuccessfully: 'Copiado exitosamente',
|
||||
paySucceeded: 'Pago exitoso',
|
||||
payCancelled: 'Pago cancelado',
|
||||
generatedSuccessfully: 'Generado exitosamente',
|
||||
generatedUnsuccessfully: 'Generación no exitosa',
|
||||
},
|
||||
model: {
|
||||
params: {
|
||||
temperature: 'Temperatura',
|
||||
temperatureTip:
|
||||
'Controla la aleatoriedad: Reducir resulta en completaciones menos aleatorias. A medida que la temperatura se acerca a cero, el modelo se vuelve determinista y repetitivo.',
|
||||
top_p: 'Top P',
|
||||
top_pTip:
|
||||
'Controla la diversidad mediante el muestreo de núcleo: 0.5 significa que se consideran la mitad de todas las opciones ponderadas por probabilidad.',
|
||||
presence_penalty: 'Penalización por presencia',
|
||||
presence_penaltyTip:
|
||||
'Cuánto penalizar los nuevos tokens según si aparecen en el texto hasta ahora.\nAumenta la probabilidad del modelo de hablar sobre nuevos temas.',
|
||||
frequency_penalty: 'Penalización por frecuencia',
|
||||
frequency_penaltyTip:
|
||||
'Cuánto penalizar los nuevos tokens según su frecuencia existente en el texto hasta ahora.\nDisminuye la probabilidad del modelo de repetir la misma línea literalmente.',
|
||||
max_tokens: 'Tokens máximos',
|
||||
max_tokensTip:
|
||||
'Se usa para limitar la longitud máxima de la respuesta, en tokens. \nValores más grandes pueden limitar el espacio disponible para palabras de indicación, registros de chat y Conocimiento. \nSe recomienda configurarlo por debajo de dos tercios\ngpt-4-1106-preview, gpt-4-vision-preview tokens máximos (entrada 128k salida 4k)',
|
||||
maxTokenSettingTip: 'Tu configuración de tokens máximos es alta, lo que puede limitar el espacio para indicaciones, consultas y datos. Considera configurarlo por debajo de 2/3.',
|
||||
setToCurrentModelMaxTokenTip: 'Tokens máximos actualizados al 80% del máximo de tokens del modelo actual {{maxToken}}.',
|
||||
stop_sequences: 'Secuencias de parada',
|
||||
stop_sequencesTip: 'Hasta cuatro secuencias donde la API dejará de generar más tokens. El texto devuelto no contendrá la secuencia de parada.',
|
||||
stop_sequencesPlaceholder: 'Ingresa la secuencia y presiona Tab',
|
||||
},
|
||||
tone: {
|
||||
Creative: 'Creativo',
|
||||
Balanced: 'Equilibrado',
|
||||
Precise: 'Preciso',
|
||||
Custom: 'Personalizado',
|
||||
},
|
||||
addMoreModel: 'Ir a configuraciones para agregar más modelos',
|
||||
capabilities: 'Capacidades multimodales',
|
||||
settingsLink: 'Configuración del proveedor de modelos',
|
||||
},
|
||||
menus: {
|
||||
status: 'beta',
|
||||
explore: 'Explorar',
|
||||
apps: 'Estudio',
|
||||
plugins: 'Plugins',
|
||||
pluginsTips: 'Integrar plugins de terceros o crear Plugins AI compatibles con ChatGPT.',
|
||||
datasets: 'Conocimiento',
|
||||
datasetsTips: 'PRÓXIMAMENTE: Importa tus propios datos de texto o escribe datos en tiempo real a través de Webhook para la mejora del contexto LLM.',
|
||||
newApp: 'Nueva App',
|
||||
newDataset: 'Crear Conocimiento',
|
||||
tools: 'Herramientas',
|
||||
exploreMarketplace: 'Explora el mercado',
|
||||
appDetail: 'Detalles de la aplicación',
|
||||
account: 'Cuenta',
|
||||
},
|
||||
userProfile: {
|
||||
settings: 'Configuraciones',
|
||||
emailSupport: 'Soporte de Correo Electrónico',
|
||||
workspace: 'Espacio de trabajo',
|
||||
createWorkspace: 'Crear espacio de trabajo',
|
||||
helpCenter: 'Ayuda',
|
||||
roadmap: 'Hoja de ruta',
|
||||
community: 'Comunidad',
|
||||
about: 'Acerca de',
|
||||
logout: 'Cerrar sesión',
|
||||
support: 'Apoyo',
|
||||
compliance: 'Cumplimiento',
|
||||
github: 'GitHub',
|
||||
contactUs: 'Contáctenos',
|
||||
forum: 'Foro',
|
||||
},
|
||||
settings: {
|
||||
accountGroup: 'CUENTA',
|
||||
workplaceGroup: 'ESPACIO DE TRABAJO',
|
||||
account: 'Mi cuenta',
|
||||
members: 'Miembros',
|
||||
billing: 'Facturación',
|
||||
integrations: 'Integraciones',
|
||||
language: 'Idioma',
|
||||
provider: 'Proveedor de Modelo',
|
||||
dataSource: 'Fuente de Datos',
|
||||
plugin: 'Plugins',
|
||||
apiBasedExtension: 'Extensión basada en API',
|
||||
generalGroup: 'GENERAL',
|
||||
},
|
||||
account: {
|
||||
avatar: 'Avatar',
|
||||
name: 'Nombre',
|
||||
email: 'Correo electrónico',
|
||||
password: 'Contraseña',
|
||||
passwordTip: 'Puedes establecer una contraseña permanente si no deseas usar códigos de inicio de sesión temporales',
|
||||
setPassword: 'Establecer una contraseña',
|
||||
resetPassword: 'Restablecer contraseña',
|
||||
currentPassword: 'Contraseña actual',
|
||||
newPassword: 'Nueva contraseña',
|
||||
confirmPassword: 'Confirmar contraseña',
|
||||
notEqual: 'Las dos contraseñas son diferentes.',
|
||||
langGeniusAccount: 'Cuenta Dify',
|
||||
langGeniusAccountTip: 'Tu cuenta Dify y los datos de usuario asociados.',
|
||||
editName: 'Editar Nombre',
|
||||
showAppLength: 'Mostrar {{length}} apps',
|
||||
delete: 'Eliminar cuenta',
|
||||
deleteTip: 'Eliminar tu cuenta borrará permanentemente todos tus datos y no se podrán recuperar.',
|
||||
account: 'Cuenta',
|
||||
myAccount: 'Mi Cuenta',
|
||||
studio: 'Estudio Dify',
|
||||
deletePrivacyLinkTip: 'Para obtener más información sobre cómo manejamos sus datos, consulte nuestra',
|
||||
deletePrivacyLink: 'Política de privacidad.',
|
||||
deleteSuccessTip: 'Su cuenta necesita tiempo para terminar de eliminarse. Te enviaremos un correo electrónico cuando todo esté listo.',
|
||||
deleteLabel: 'Para confirmar, escriba su correo electrónico a continuación',
|
||||
deletePlaceholder: 'Por favor, introduzca su correo electrónico',
|
||||
sendVerificationButton: 'Enviar código de verificación',
|
||||
verificationLabel: 'Código de verificación',
|
||||
verificationPlaceholder: 'Pega el código de 6 dígitos',
|
||||
permanentlyDeleteButton: 'Eliminar cuenta de forma permanente',
|
||||
feedbackTitle: 'Retroalimentación',
|
||||
feedbackLabel: '¿Cuéntanos por qué eliminaste tu cuenta?',
|
||||
feedbackPlaceholder: 'Opcional',
|
||||
workspaceIcon: 'Icono de espacio de trabajo',
|
||||
editWorkspaceInfo: 'Editar información del espacio de trabajo',
|
||||
workspaceName: 'Nombre del espacio de trabajo',
|
||||
changeEmail: {
|
||||
continue: 'Continuar',
|
||||
content3: 'Introduce un nuevo correo electrónico y te enviaremos un código de verificación.',
|
||||
emailPlaceholder: 'Introduce un nuevo correo electrónico',
|
||||
emailLabel: 'Nuevo correo electrónico',
|
||||
sendVerifyCode: 'Enviar código de verificación',
|
||||
changeTo: 'Cambia a {{email}}',
|
||||
resendTip: '¿No recibiste un código?',
|
||||
codePlaceholder: 'Pegue el código de 6 dígitos',
|
||||
content4: 'Acabamos de enviarte un código de verificación temporal a <email>{{email}}</email>.',
|
||||
newEmail: 'Configura una nueva dirección de correo electrónico',
|
||||
resend: 'Reenviar',
|
||||
resendCount: 'Reenviar en {{count}}s',
|
||||
content2: 'Tu correo electrónico actual es <email>{{email}}</email>. Se ha enviado un código de verificación a esta dirección de correo electrónico.',
|
||||
content1: 'Si continúas, enviaremos un código de verificación a <email>{{email}}</email> para la reautenticación.',
|
||||
title: 'Cambiar Correo Electrónico',
|
||||
verifyEmail: 'Verifica tu correo electrónico actual',
|
||||
existingEmail: 'Ya existe un usuario con este correo electrónico.',
|
||||
verifyNew: 'Verifica tu nuevo correo electrónico',
|
||||
codeLabel: 'Código de verificación',
|
||||
authTip: 'Una vez que tu correo electrónico sea cambiado, las cuentas de Google o GitHub vinculadas a tu antiguo correo electrónico ya no podrán iniciar sesión en esta cuenta.',
|
||||
unAvailableEmail: 'Este correo electrónico no está disponible temporalmente.',
|
||||
},
|
||||
},
|
||||
members: {
|
||||
team: 'Equipo',
|
||||
invite: 'Agregar',
|
||||
name: 'NOMBRE',
|
||||
lastActive: 'ÚLTIMA ACTIVIDAD',
|
||||
role: 'ROLES',
|
||||
pending: 'Pendiente...',
|
||||
owner: 'Propietario',
|
||||
admin: 'Administrador',
|
||||
adminTip: 'Puede crear aplicaciones y administrar configuraciones del equipo',
|
||||
normal: 'Normal',
|
||||
normalTip: 'Solo puede usar aplicaciones, no puede crear aplicaciones',
|
||||
builder: 'Constructor',
|
||||
builderTip: 'Puede crear y editar sus propias aplicaciones',
|
||||
editor: 'Editor',
|
||||
editorTip: 'Puede crear y editar aplicaciones',
|
||||
datasetOperator: 'Administrador de Conocimiento',
|
||||
datasetOperatorTip: 'Solo puede administrar la base de conocimiento',
|
||||
inviteTeamMember: 'Agregar miembro del equipo',
|
||||
inviteTeamMemberTip: 'Pueden acceder a tus datos del equipo directamente después de iniciar sesión.',
|
||||
emailNotSetup: 'El servidor de correo no está configurado, por lo que no se pueden enviar correos de invitación. En su lugar, notifique a los usuarios el enlace de invitación que se emitirá después de la invitación.',
|
||||
email: 'Correo electrónico',
|
||||
emailInvalid: 'Formato de correo electrónico inválido',
|
||||
emailPlaceholder: 'Por favor ingresa correos electrónicos',
|
||||
sendInvite: 'Enviar invitación',
|
||||
invitedAsRole: 'Invitado como usuario {{role}}',
|
||||
invitationSent: 'Invitación enviada',
|
||||
invitationSentTip: 'Invitación enviada, y pueden iniciar sesión en Dify para acceder a tus datos del equipo.',
|
||||
invitationLink: 'Enlace de invitación',
|
||||
failedInvitationEmails: 'Los siguientes usuarios no fueron invitados exitosamente',
|
||||
ok: 'OK',
|
||||
removeFromTeam: 'Eliminar del espacio de trabajo',
|
||||
removeFromTeamTip: 'Se eliminará el acceso al equipo',
|
||||
setAdmin: 'Establecer como administrador',
|
||||
setMember: 'Establecer como miembro ordinario',
|
||||
setBuilder: 'Establecer como constructor',
|
||||
setEditor: 'Establecer como editor',
|
||||
disInvite: 'Cancelar la invitación',
|
||||
deleteMember: 'Eliminar miembro',
|
||||
you: '(Tú)',
|
||||
transferModal: {
|
||||
continue: 'Continuar',
|
||||
codeLabel: 'Código de verificación',
|
||||
verifyEmail: 'Verifica tu correo electrónico actual',
|
||||
transfer: 'Transferir la propiedad del espacio de trabajo',
|
||||
transferPlaceholder: 'Selecciona un miembro del espacio de trabajo...',
|
||||
verifyContent: 'Tu correo electrónico actual es <email>{{email}}</email>.',
|
||||
resendCount: 'Reenviar en {{count}}s',
|
||||
resendTip: '¿No recibiste un código?',
|
||||
sendVerifyCode: 'Enviar código de verificación',
|
||||
title: 'Transferir la propiedad del espacio de trabajo',
|
||||
verifyContent2: 'Enviaremos un código de verificación temporal a este correo electrónico para la re-autenticación.',
|
||||
transferLabel: 'Transferir la propiedad del espacio de trabajo a',
|
||||
resend: 'Reenviar',
|
||||
sendTip: 'Si continúas, enviaremos un código de verificación a <email>{{email}}</email> para la reautenticación.',
|
||||
warningTip: 'Te convertirás en un miembro administrador, y el nuevo propietario tendrá el control total.',
|
||||
codePlaceholder: 'Pegue el código de 6 dígitos',
|
||||
warning: 'Estás a punto de transferir la propiedad de “{{workspace}}”. Esto tendrá efecto inmediato y no se puede deshacer.',
|
||||
},
|
||||
transferOwnership: 'Transferir propiedad',
|
||||
},
|
||||
integrations: {
|
||||
connected: 'Conectado',
|
||||
google: 'Google',
|
||||
googleAccount: 'Iniciar sesión con cuenta de Google',
|
||||
github: 'GitHub',
|
||||
githubAccount: 'Iniciar sesión con cuenta de GitHub',
|
||||
connect: 'Conectar',
|
||||
},
|
||||
language: {
|
||||
displayLanguage: 'Idioma de visualización',
|
||||
timezone: 'Zona horaria',
|
||||
},
|
||||
provider: {
|
||||
apiKey: 'Clave API',
|
||||
enterYourKey: 'Ingresa tu clave API aquí',
|
||||
invalidKey: 'Clave API de OpenAI inválida',
|
||||
validatedError: 'Validación fallida: ',
|
||||
validating: 'Validando clave...',
|
||||
saveFailed: 'Error al guardar la clave API',
|
||||
apiKeyExceedBill: 'Esta CLAVE API no tiene cuota disponible, por favor lee',
|
||||
addKey: 'Agregar Clave',
|
||||
comingSoon: 'Próximamente',
|
||||
editKey: 'Editar',
|
||||
invalidApiKey: 'Clave API inválida',
|
||||
azure: {
|
||||
apiBase: 'Base API',
|
||||
apiBasePlaceholder: 'La URL base de la API de tu Endpoint de Azure OpenAI.',
|
||||
apiKey: 'Clave API',
|
||||
apiKeyPlaceholder: 'Ingresa tu clave API aquí',
|
||||
helpTip: 'Aprender sobre el Servicio Azure OpenAI',
|
||||
},
|
||||
openaiHosted: {
|
||||
openaiHosted: 'OpenAI Hospedado',
|
||||
onTrial: 'EN PRUEBA',
|
||||
exhausted: 'CUOTA AGOTADA',
|
||||
desc: 'El servicio de hospedaje OpenAI proporcionado por Dify te permite usar modelos como GPT-3.5. Antes de que se agote tu cuota de prueba, necesitas configurar otros proveedores de modelos.',
|
||||
callTimes: 'Tiempos de llamada',
|
||||
usedUp: 'Cuota de prueba agotada. Agrega tu propio proveedor de modelos.',
|
||||
useYourModel: 'Actualmente usando tu propio proveedor de modelos.',
|
||||
close: 'Cerrar',
|
||||
},
|
||||
anthropicHosted: {
|
||||
anthropicHosted: 'Claude de Anthropíc',
|
||||
onTrial: 'EN PRUEBA',
|
||||
exhausted: 'CUOTA AGOTADA',
|
||||
desc: 'Modelo poderoso, que se destaca en una amplia gama de tareas, desde diálogos sofisticados y generación de contenido creativo hasta instrucciones detalladas.',
|
||||
callTimes: 'Tiempos de llamada',
|
||||
usedUp: 'Cuota de prueba agotada. Agrega tu propio proveedor de modelos.',
|
||||
useYourModel: 'Actualmente usando tu propio proveedor de modelos.',
|
||||
close: 'Cerrar',
|
||||
trialQuotaTip: 'Su cuota de prueba antrópica caducará el 11/03/2025 y ya no estará disponible a partir de entonces. Por favor, aprovéchelo a tiempo.',
|
||||
},
|
||||
anthropic: {
|
||||
using: 'La capacidad de incrustación está usando',
|
||||
enableTip: 'Para habilitar el modelo de Anthropíc, primero necesitas vincularte al Servicio OpenAI o Azure OpenAI.',
|
||||
notEnabled: 'No habilitado',
|
||||
keyFrom: 'Obtén tu clave API de Anthropíc',
|
||||
},
|
||||
encrypted: {
|
||||
front: 'Tu CLAVE API será encriptada y almacenada usando',
|
||||
back: ' tecnología.',
|
||||
},
|
||||
},
|
||||
modelProvider: {
|
||||
notConfigured: 'El modelo del sistema aún no ha sido completamente configurado, y algunas funciones pueden no estar disponibles.',
|
||||
systemModelSettings: 'Configuraciones del Modelo del Sistema',
|
||||
systemModelSettingsLink: '¿Por qué es necesario configurar un modelo del sistema?',
|
||||
selectModel: 'Selecciona tu modelo',
|
||||
setupModelFirst: 'Por favor configura tu modelo primero',
|
||||
systemReasoningModel: {
|
||||
key: 'Modelo de Razonamiento del Sistema',
|
||||
tip: 'Establece el modelo de inferencia predeterminado para ser usado en la creación de aplicaciones, así como características como la generación de nombres de diálogo y sugerencias de la próxima pregunta también usarán el modelo de inferencia predeterminado.',
|
||||
},
|
||||
embeddingModel: {
|
||||
key: 'Modelo de Incrustación',
|
||||
tip: 'Establece el modelo predeterminado para el procesamiento de incrustación de documentos del Conocimiento, tanto la recuperación como la importación del Conocimiento utilizan este modelo de Incrustación para el procesamiento de vectorización. Cambiarlo causará que la dimensión del vector entre el Conocimiento importado y la pregunta sea inconsistente, resultando en fallos en la recuperación. Para evitar fallos en la recuperación, por favor no cambies este modelo a voluntad.',
|
||||
required: 'El Modelo de Incrustación es requerido',
|
||||
},
|
||||
speechToTextModel: {
|
||||
key: 'Modelo de Voz a Texto',
|
||||
tip: 'Establece el modelo predeterminado para la entrada de voz a texto en la conversación.',
|
||||
},
|
||||
ttsModel: {
|
||||
key: 'Modelo de Texto a Voz',
|
||||
tip: 'Establece el modelo predeterminado para la entrada de texto a voz en la conversación.',
|
||||
},
|
||||
rerankModel: {
|
||||
key: 'Modelo de Reordenar',
|
||||
tip: 'El modelo de reordenar reordenará la lista de documentos candidatos basada en la coincidencia semántica con la consulta del usuario, mejorando los resultados de clasificación semántica',
|
||||
},
|
||||
apiKey: 'CLAVE API',
|
||||
quota: 'Cuota',
|
||||
searchModel: 'Modelo de búsqueda',
|
||||
noModelFound: 'No se encontró modelo para {{model}}',
|
||||
models: 'Modelos',
|
||||
showMoreModelProvider: 'Mostrar más proveedores de modelos',
|
||||
selector: {
|
||||
tip: 'Este modelo ha sido eliminado. Por favor agrega un modelo o selecciona otro modelo.',
|
||||
emptyTip: 'No hay modelos disponibles',
|
||||
emptySetting: 'Por favor ve a configuraciones para configurar',
|
||||
rerankTip: 'Por favor configura el modelo de Reordenar',
|
||||
},
|
||||
card: {
|
||||
quota: 'CUOTA',
|
||||
onTrial: 'En prueba',
|
||||
paid: 'Pagado',
|
||||
quotaExhausted: 'Cuota agotada',
|
||||
callTimes: 'Tiempos de llamada',
|
||||
tokens: 'Tokens',
|
||||
buyQuota: 'Comprar Cuota',
|
||||
priorityUse: 'Uso prioritario',
|
||||
removeKey: 'Eliminar CLAVE API',
|
||||
tip: 'Se dará prioridad al uso de la cuota pagada. La cuota de prueba se utilizará después de que se agote la cuota pagada.',
|
||||
},
|
||||
item: {
|
||||
deleteDesc: '{{modelName}} se está utilizando como modelo de razonamiento del sistema. Algunas funciones no estarán disponibles después de la eliminación. Por favor confirma.',
|
||||
freeQuota: 'CUOTA GRATUITA',
|
||||
},
|
||||
addApiKey: 'Agrega tu CLAVE API',
|
||||
invalidApiKey: 'Clave API inválida',
|
||||
encrypted: {
|
||||
front: 'Tu CLAVE API será encriptada y almacenada usando',
|
||||
back: ' tecnología.',
|
||||
},
|
||||
freeQuota: {
|
||||
howToEarn: 'Cómo ganar',
|
||||
},
|
||||
addMoreModelProvider: 'AGREGAR MÁS PROVEEDORES DE MODELOS',
|
||||
addModel: 'Agregar Modelo',
|
||||
modelsNum: '{{num}} Modelos',
|
||||
showModels: 'Mostrar Modelos',
|
||||
showModelsNum: 'Mostrar {{num}} Modelos',
|
||||
collapse: 'Colapsar',
|
||||
config: 'Configurar',
|
||||
modelAndParameters: 'Modelo y Parámetros',
|
||||
model: 'Modelo',
|
||||
featureSupported: '{{feature}} soportado',
|
||||
callTimes: 'Tiempos de llamada',
|
||||
credits: 'Créditos de Mensaje',
|
||||
buyQuota: 'Comprar Cuota',
|
||||
getFreeTokens: 'Obtener Tokens gratis',
|
||||
priorityUsing: 'Uso prioritario',
|
||||
deprecated: 'Desaprobado',
|
||||
confirmDelete: '¿Confirmar eliminación?',
|
||||
quotaTip: 'Tokens gratuitos restantes disponibles',
|
||||
loadPresets: 'Cargar Presets',
|
||||
parameters: 'PARÁMETROS',
|
||||
loadBalancing: 'Balanceo de carga',
|
||||
loadBalancingDescription: 'Reduce la presión con múltiples conjuntos de credenciales.',
|
||||
loadBalancingHeadline: 'Balanceo de Carga',
|
||||
configLoadBalancing: 'Configurar Balanceo de Carga',
|
||||
modelHasBeenDeprecated: 'Este modelo ha sido desaprobado',
|
||||
providerManaged: 'Gestionado por el proveedor',
|
||||
providerManagedDescription: 'Usa el único conjunto de credenciales proporcionado por el proveedor del modelo.',
|
||||
defaultConfig: 'Configuración Predeterminada',
|
||||
apiKeyStatusNormal: 'El estado de la CLAVE API es normal',
|
||||
apiKeyRateLimit: 'Se alcanzó el límite de velocidad, disponible después de {{seconds}}s',
|
||||
addConfig: 'Agregar Configuración',
|
||||
editConfig: 'Editar Configuración',
|
||||
loadBalancingLeastKeyWarning: 'Para habilitar el balanceo de carga se deben habilitar al menos 2 claves.',
|
||||
loadBalancingInfo: 'Por defecto, el balanceo de carga usa la estrategia Round-robin. Si se activa el límite de velocidad, se aplicará un período de enfriamiento de 1 minuto.',
|
||||
upgradeForLoadBalancing: 'Actualiza tu plan para habilitar el Balanceo de Carga.',
|
||||
configureTip: 'Configurar la clave de API o agregar el modelo que se va a usar',
|
||||
discoverMore: 'Descubre más en',
|
||||
toBeConfigured: 'A configurar',
|
||||
emptyProviderTip: 'Instale primero un proveedor de modelos.',
|
||||
installProvider: 'Instalación de proveedores de modelos',
|
||||
emptyProviderTitle: 'Proveedor de modelos no configurado',
|
||||
auth: {
|
||||
apiKeyModal: {
|
||||
addModel: 'Agregar modelo',
|
||||
title: 'Configuración de Autorización de Clave API',
|
||||
desc: 'Después de configurar las credenciales, todos los miembros dentro del espacio de trabajo pueden usar este modelo al orquestar aplicaciones.',
|
||||
},
|
||||
configModel: 'Modelo de configuración',
|
||||
authorizationError: 'Error de autorización',
|
||||
specifyModelCredential: 'Especificar las credenciales del modelo',
|
||||
addModelCredential: 'Agregar credenciales del modelo',
|
||||
authRemoved: 'Autorización retirada',
|
||||
unAuthorized: 'No autorizado',
|
||||
addApiKey: 'Agregar clave API',
|
||||
apiKeys: 'Claves de API',
|
||||
providerManagedTip: 'La configuración actual es hospedada por el proveedor.',
|
||||
providerManaged: 'Proveedor gestionado',
|
||||
specifyModelCredentialTip: 'Utiliza una credencial de modelo configurada.',
|
||||
addNewModel: 'Agregar nuevo modelo',
|
||||
modelCredentials: 'Credenciales del modelo',
|
||||
addCredential: 'Agregar credencial',
|
||||
configLoadBalancing: 'Configuración de balanceo de carga',
|
||||
modelCredential: 'Credencial modelo',
|
||||
selectModelCredential: 'Seleccione una credencial de modelo',
|
||||
addModel: 'Agregar modelo',
|
||||
removeModel: 'Eliminar modelo',
|
||||
customModelCredentials: 'Credenciales de modelo personalizadas',
|
||||
addNewModelCredential: 'Agregar nueva credencial de modelo',
|
||||
manageCredentials: 'Administrar credenciales',
|
||||
customModelCredentialsDeleteTip: 'La credencial está en uso y no se puede eliminar',
|
||||
editModelCredential: 'Editar credencial de modelo',
|
||||
},
|
||||
parametersInvalidRemoved: 'Algunos parámetros son inválidos y han sido eliminados',
|
||||
installDataSourceProvider: 'Instalar proveedores de fuentes de datos',
|
||||
},
|
||||
dataSource: {
|
||||
add: 'Agregar una fuente de datos',
|
||||
connect: 'Conectar',
|
||||
configure: 'Configurar',
|
||||
notion: {
|
||||
title: 'Notion',
|
||||
description: 'Usando Notion como fuente de datos para el Conocimiento.',
|
||||
connectedWorkspace: 'Espacio de trabajo conectado',
|
||||
addWorkspace: 'Agregar espacio de trabajo',
|
||||
connected: 'Conectado',
|
||||
disconnected: 'Desconectado',
|
||||
changeAuthorizedPages: 'Cambiar páginas autorizadas',
|
||||
pagesAuthorized: 'Páginas autorizadas',
|
||||
sync: 'Sincronizar',
|
||||
remove: 'Eliminar',
|
||||
selector: {
|
||||
pageSelected: 'Páginas seleccionadas',
|
||||
searchPages: 'Buscar páginas...',
|
||||
noSearchResult: 'No hay resultados de búsqueda',
|
||||
addPages: 'Agregar páginas',
|
||||
preview: 'VISTA PREVIA',
|
||||
},
|
||||
integratedAlert: 'Notion está integrado a través de credenciales internas, no es necesario volver a autorizar.',
|
||||
},
|
||||
website: {
|
||||
title: 'Sitio web',
|
||||
description: 'Importar contenido de sitios web usando un rastreador web.',
|
||||
with: 'Con',
|
||||
configuredCrawlers: 'Rastreadores configurados',
|
||||
active: 'Activo',
|
||||
inactive: 'Inactivo',
|
||||
},
|
||||
},
|
||||
plugin: {
|
||||
serpapi: {
|
||||
apiKey: 'Clave API',
|
||||
apiKeyPlaceholder: 'Ingresa tu clave API',
|
||||
keyFrom: 'Obtén tu clave API de SerpAPI en la página de cuenta de SerpAPI',
|
||||
},
|
||||
},
|
||||
apiBasedExtension: {
|
||||
title: 'Las extensiones basadas en API proporcionan una gestión centralizada de API, simplificando la configuración para su fácil uso en las aplicaciones de Dify.',
|
||||
link: 'Aprende cómo desarrollar tu propia Extensión API.',
|
||||
add: 'Agregar Extensión API',
|
||||
selector: {
|
||||
title: 'Extensión API',
|
||||
placeholder: 'Por favor selecciona extensión API',
|
||||
manage: 'Gestionar Extensión API',
|
||||
},
|
||||
modal: {
|
||||
title: 'Agregar Extensión API',
|
||||
editTitle: 'Editar Extensión API',
|
||||
name: {
|
||||
title: 'Nombre',
|
||||
placeholder: 'Por favor ingresa el nombre',
|
||||
},
|
||||
apiEndpoint: {
|
||||
title: 'Punto final de la API',
|
||||
placeholder: 'Por favor ingresa el punto final de la API',
|
||||
},
|
||||
apiKey: {
|
||||
title: 'Clave API',
|
||||
placeholder: 'Por favor ingresa la clave API',
|
||||
lengthError: 'La longitud de la clave API no puede ser menor a 5 caracteres',
|
||||
},
|
||||
},
|
||||
type: 'Tipo',
|
||||
},
|
||||
about: {
|
||||
changeLog: 'Registro de cambios',
|
||||
updateNow: 'Actualizar ahora',
|
||||
nowAvailable: 'Dify {{version}} ya está disponible.',
|
||||
latestAvailable: 'Dify {{version}} es la última versión disponible.',
|
||||
},
|
||||
appMenus: {
|
||||
overview: 'Monitoreo',
|
||||
promptEng: 'Orquestar',
|
||||
apiAccess: 'Acceso API',
|
||||
logAndAnn: 'Registros y Anuncios',
|
||||
logs: 'Registros',
|
||||
},
|
||||
environment: {
|
||||
testing: 'PRUEBAS',
|
||||
development: 'DESARROLLO',
|
||||
},
|
||||
appModes: {
|
||||
completionApp: 'Generador de Texto',
|
||||
chatApp: 'Aplicación de Chat',
|
||||
},
|
||||
datasetMenus: {
|
||||
documents: 'Documentos',
|
||||
hitTesting: 'Pruebas de Recuperación',
|
||||
settings: 'Configuraciones',
|
||||
emptyTip: 'El Conocimiento no ha sido asociado, por favor ve a la aplicación o plugin para completar la asociación.',
|
||||
viewDoc: 'Ver documentación',
|
||||
relatedApp: 'aplicaciones vinculadas',
|
||||
noRelatedApp: 'No hay aplicaciones vinculadas',
|
||||
pipeline: 'Tubería',
|
||||
},
|
||||
voiceInput: {
|
||||
speaking: 'Habla ahora...',
|
||||
converting: 'Convirtiendo a texto...',
|
||||
notAllow: 'micrófono no autorizado',
|
||||
},
|
||||
modelName: {
|
||||
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
|
||||
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
|
||||
'gpt-4': 'GPT-4',
|
||||
'gpt-4-32k': 'GPT-4-32K',
|
||||
'text-davinci-003': 'Text-Davinci-003',
|
||||
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
|
||||
'whisper-1': 'Whisper-1',
|
||||
'claude-instant-1': 'Claude-Instant',
|
||||
'claude-2': 'Claude-2',
|
||||
},
|
||||
chat: {
|
||||
renameConversation: 'Renombrar Conversación',
|
||||
conversationName: 'Nombre de la conversación',
|
||||
conversationNamePlaceholder: 'Por favor ingresa el nombre de la conversación',
|
||||
conversationNameCanNotEmpty: 'Nombre de la conversación requerido',
|
||||
citation: {
|
||||
title: 'CITAS',
|
||||
linkToDataset: 'Enlace al Conocimiento',
|
||||
characters: 'Caracteres:',
|
||||
hitCount: 'Conteo de recuperaciones:',
|
||||
vectorHash: 'Hash de vector:',
|
||||
hitScore: 'Puntuación de recuperación:',
|
||||
},
|
||||
inputPlaceholder: 'Hablar con el {{botName}}',
|
||||
thinking: 'Pensamiento...',
|
||||
thought: 'Pensamiento',
|
||||
resend: 'Reenviar',
|
||||
},
|
||||
promptEditor: {
|
||||
placeholder: 'Escribe tu palabra de indicación aquí, ingresa \'{\' para insertar una variable, ingresa \'/\' para insertar un bloque de contenido de indicación',
|
||||
context: {
|
||||
item: {
|
||||
title: 'Contexto',
|
||||
desc: 'Insertar plantilla de contexto',
|
||||
},
|
||||
modal: {
|
||||
title: '{{num}} Conocimiento en Contexto',
|
||||
add: 'Agregar Contexto ',
|
||||
footer: 'Puedes gestionar contextos en la sección de Contexto abajo.',
|
||||
},
|
||||
},
|
||||
history: {
|
||||
item: {
|
||||
title: 'Historial de Conversación',
|
||||
desc: 'Insertar plantilla de mensaje histórico',
|
||||
},
|
||||
modal: {
|
||||
title: 'EJEMPLO',
|
||||
user: 'Hola',
|
||||
assistant: '¡Hola! ¿Cómo puedo asistirte hoy?',
|
||||
edit: 'Editar Nombres de Roles de Conversación',
|
||||
},
|
||||
},
|
||||
variable: {
|
||||
item: {
|
||||
title: 'Variables y Herramientas Externas',
|
||||
desc: 'Insertar Variables y Herramientas Externas',
|
||||
},
|
||||
outputToolDisabledItem: {
|
||||
title: 'Variables',
|
||||
desc: 'Insertar Variables',
|
||||
},
|
||||
modal: {
|
||||
add: 'Nueva variable',
|
||||
addTool: 'Nueva herramienta',
|
||||
},
|
||||
},
|
||||
query: {
|
||||
item: {
|
||||
title: 'Consulta',
|
||||
desc: 'Insertar plantilla de consulta del usuario',
|
||||
},
|
||||
},
|
||||
existed: 'Ya existe en la indicación',
|
||||
},
|
||||
imageUploader: {
|
||||
uploadFromComputer: 'Cargar desde la Computadora',
|
||||
uploadFromComputerReadError: 'Lectura de imagen fallida, por favor intenta nuevamente.',
|
||||
uploadFromComputerUploadError: 'Carga de imagen fallida, por favor carga nuevamente.',
|
||||
uploadFromComputerLimit: 'Las imágenes cargadas no pueden exceder {{size}} MB',
|
||||
pasteImageLink: 'Pegar enlace de imagen',
|
||||
pasteImageLinkInputPlaceholder: 'Pega el enlace de imagen aquí',
|
||||
pasteImageLinkInvalid: 'Enlace de imagen inválido',
|
||||
imageUpload: 'Carga de Imagen',
|
||||
},
|
||||
tag: {
|
||||
placeholder: 'Todas las Etiquetas',
|
||||
addNew: 'Agregar nueva etiqueta',
|
||||
noTag: 'Sin etiquetas',
|
||||
noTagYet: 'Aún sin etiquetas',
|
||||
addTag: 'Agregar etiquetas',
|
||||
editTag: 'Editar etiquetas',
|
||||
manageTags: 'Gestionar Etiquetas',
|
||||
selectorPlaceholder: 'Escribe para buscar o crear',
|
||||
create: 'Crear',
|
||||
delete: 'Eliminar etiqueta',
|
||||
deleteTip: 'La etiqueta se está utilizando, ¿eliminarla?',
|
||||
created: 'Etiqueta creada exitosamente',
|
||||
failed: 'Creación de etiqueta fallida',
|
||||
},
|
||||
fileUploader: {
|
||||
uploadFromComputer: 'Carga local',
|
||||
pasteFileLink: 'Pegar enlace de archivo',
|
||||
uploadFromComputerReadError: 'Error en la lectura del archivo, inténtelo de nuevo.',
|
||||
uploadFromComputerUploadError: 'Error en la carga del archivo, vuelva a cargarlo.',
|
||||
pasteFileLinkInvalid: 'Enlace de archivo no válido',
|
||||
fileExtensionNotSupport: 'Extensión de archivo no compatible',
|
||||
pasteFileLinkInputPlaceholder: 'Introduzca la URL...',
|
||||
uploadFromComputerLimit: 'El archivo de carga no puede exceder {{size}}',
|
||||
fileExtensionBlocked: 'Este tipo de archivo está bloqueado por motivos de seguridad',
|
||||
},
|
||||
license: {
|
||||
expiring: 'Caduca en un día',
|
||||
expiring_plural: 'Caducando en {{count}} días',
|
||||
unlimited: 'Ilimitado',
|
||||
},
|
||||
pagination: {
|
||||
perPage: 'Elementos por página',
|
||||
},
|
||||
theme: {
|
||||
auto: 'sistema',
|
||||
light: 'luz',
|
||||
theme: 'Tema',
|
||||
dark: 'noche',
|
||||
},
|
||||
compliance: {
|
||||
iso27001: 'Certificación ISO 27001:2022',
|
||||
gdpr: 'GDPR DPA',
|
||||
soc2Type1: 'Informe SOC 2 Tipo I',
|
||||
sandboxUpgradeTooltip: 'Solo disponible con un plan Profesional o de Equipo.',
|
||||
professionalUpgradeTooltip: 'Solo disponible con un plan de equipo o superior.',
|
||||
soc2Type2: 'Informe SOC 2 Tipo II',
|
||||
},
|
||||
imageInput: {
|
||||
supportedFormats: 'Soporta PNG, JPG, JPEG, WEBP y GIF',
|
||||
browse: 'navegar',
|
||||
dropImageHere: 'Deja tu imagen aquí, o',
|
||||
},
|
||||
you: 'Tú',
|
||||
avatar: {
|
||||
deleteTitle: 'Eliminar Avatar',
|
||||
deleteDescription: '¿Estás seguro de que deseas eliminar tu foto de perfil? Tu cuenta usará el avatar inicial predeterminado.',
|
||||
},
|
||||
feedback: {
|
||||
title: 'Proporcionar retroalimentación',
|
||||
subtitle: 'Por favor, díganos qué salió mal con esta respuesta.',
|
||||
placeholder: 'Por favor, describe qué salió mal o cómo podemos mejorar...',
|
||||
content: 'Contenido de retroalimentación',
|
||||
},
|
||||
label: {
|
||||
optional: '(opcional)',
|
||||
},
|
||||
noData: 'Sin datos',
|
||||
dynamicSelect: {
|
||||
error: 'Error al cargar las opciones',
|
||||
noData: 'No hay opciones disponibles',
|
||||
loading: 'Cargando opciones...',
|
||||
selected: '{{count}} seleccionado',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
32
dify/web/i18n/es-ES/custom.ts
Normal file
32
dify/web/i18n/es-ES/custom.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
const translation = {
|
||||
custom: 'Personalización',
|
||||
upgradeTip: {
|
||||
prefix: 'Actualiza tu plan para',
|
||||
suffix: 'personalizar tu marca.',
|
||||
des: 'Actualiza tu plan para personalizar tu marca',
|
||||
title: 'Actualiza tu plan',
|
||||
},
|
||||
webapp: {
|
||||
title: 'Personalizar marca de web app',
|
||||
removeBrand: 'Eliminar Powered by Dify',
|
||||
changeLogo: 'Cambiar Imagen de Marca Powered by',
|
||||
changeLogoTip: 'Formato SVG o PNG con un tamaño mínimo de 40x40px',
|
||||
},
|
||||
app: {
|
||||
title: 'Personalizar encabezado de la aplicación',
|
||||
changeLogoTip: 'Formato SVG o PNG con un tamaño mínimo de 80x80px',
|
||||
},
|
||||
upload: 'Subir',
|
||||
uploading: 'Subiendo',
|
||||
uploadedFail: 'Error al subir la imagen, por favor vuelve a intentar.',
|
||||
change: 'Cambiar',
|
||||
apply: 'Aplicar',
|
||||
restore: 'Restaurar valores predeterminados',
|
||||
customize: {
|
||||
contactUs: ' contáctanos ',
|
||||
prefix: 'Para personalizar el logotipo de la marca dentro de la aplicación, por favor',
|
||||
suffix: 'para actualizar a la edición Enterprise.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
217
dify/web/i18n/es-ES/dataset-creation.ts
Normal file
217
dify/web/i18n/es-ES/dataset-creation.ts
Normal file
@@ -0,0 +1,217 @@
|
||||
const translation = {
|
||||
steps: {
|
||||
header: {
|
||||
fallbackRoute: 'Conocimiento',
|
||||
},
|
||||
one: 'Elegir fuente de datos',
|
||||
two: 'Preprocesamiento y limpieza de texto',
|
||||
three: 'Ejecutar y finalizar',
|
||||
},
|
||||
error: {
|
||||
unavailable: 'Este conocimiento no está disponible',
|
||||
},
|
||||
firecrawl: {
|
||||
configFirecrawl: 'Configurar 🔥Firecrawl',
|
||||
apiKeyPlaceholder: 'Clave de API de firecrawl.dev',
|
||||
getApiKeyLinkText: 'Obtener tu clave de API de firecrawl.dev',
|
||||
},
|
||||
stepOne: {
|
||||
filePreview: 'Vista previa del archivo',
|
||||
pagePreview: 'Vista previa de la página',
|
||||
dataSourceType: {
|
||||
file: 'Importar desde archivo',
|
||||
notion: 'Sincronizar desde Notion',
|
||||
web: 'Sincronizar desde sitio web',
|
||||
},
|
||||
uploader: {
|
||||
title: 'Cargar archivo',
|
||||
button: 'Arrastre y suelte archivos o carpetas, o',
|
||||
buttonSingleFile: 'Arrastre y suelte archivo, o',
|
||||
browse: 'Buscar',
|
||||
tip: 'Soporta {{supportTypes}}. Máximo {{size}}MB cada uno.',
|
||||
validation: {
|
||||
typeError: 'Tipo de archivo no soportado',
|
||||
size: 'Archivo demasiado grande. El máximo es {{size}}MB',
|
||||
count: 'No se admiten varios archivos',
|
||||
filesNumber: 'Has alcanzado el límite de carga por lotes de {{filesNumber}}.',
|
||||
},
|
||||
cancel: 'Cancelar',
|
||||
change: 'Cambiar',
|
||||
failed: 'Error al cargar',
|
||||
},
|
||||
notionSyncTitle: 'Notion no está conectado',
|
||||
notionSyncTip: 'Para sincronizar con Notion, primero se debe establecer la conexión con Notion.',
|
||||
connect: 'Ir a conectar',
|
||||
button: 'Siguiente',
|
||||
emptyDatasetCreation: 'Quiero crear un conocimiento vacío',
|
||||
modal: {
|
||||
title: 'Crear un conocimiento vacío',
|
||||
tip: 'Un conocimiento vacío no contendrá documentos y podrás cargar documentos en cualquier momento.',
|
||||
input: 'Nombre del conocimiento',
|
||||
placeholder: 'Por favor ingresa',
|
||||
nameNotEmpty: 'El nombre no puede estar vacío',
|
||||
nameLengthInvalid: 'El nombre debe tener entre 1 y 40 caracteres',
|
||||
cancelButton: 'Cancelar',
|
||||
confirmButton: 'Crear',
|
||||
failed: 'Error al crear',
|
||||
},
|
||||
website: {
|
||||
fireCrawlNotConfigured: 'Firecrawl no está configurado',
|
||||
fireCrawlNotConfiguredDescription: 'Configura Firecrawl con la clave de API para poder utilizarlo.',
|
||||
configure: 'Configurar',
|
||||
run: 'Ejecutar',
|
||||
firecrawlTitle: 'Extraer contenido web con 🔥Firecrawl',
|
||||
firecrawlDoc: 'Documentación de Firecrawl',
|
||||
options: 'Opciones',
|
||||
crawlSubPage: 'Rastrear subpáginas',
|
||||
limit: 'Límite',
|
||||
maxDepth: 'Profundidad máxima',
|
||||
excludePaths: 'Excluir rutas',
|
||||
includeOnlyPaths: 'Incluir solo rutas',
|
||||
extractOnlyMainContent: 'Extraer solo el contenido principal (sin encabezados, navegación, pies de página, etc.)',
|
||||
exceptionErrorTitle: 'Se produjo una excepción al ejecutar el trabajo de Firecrawl:',
|
||||
unknownError: 'Error desconocido',
|
||||
totalPageScraped: 'Total de páginas extraídas:',
|
||||
selectAll: 'Seleccionar todo',
|
||||
resetAll: 'Restablecer todo',
|
||||
scrapTimeInfo: 'Se extrajeron {{total}} páginas en total en {{time}}s',
|
||||
preview: 'Vista previa',
|
||||
maxDepthTooltip: 'Profundidad máxima para rastrear en relación con la URL ingresada. La profundidad 0 solo extrae la página de la URL ingresada, la profundidad 1 extrae la URL y todo lo después de la URL ingresada + una /, y así sucesivamente.',
|
||||
jinaReaderDocLink: 'https://jina.ai/reader',
|
||||
jinaReaderNotConfigured: 'Jina Reader no está configurado',
|
||||
useSitemap: 'Usar el mapa del sitio',
|
||||
jinaReaderTitle: 'Convertir todo el sitio a Markdown',
|
||||
jinaReaderNotConfiguredDescription: 'Configura Jina Reader introduciendo tu clave API gratuita para acceder.',
|
||||
useSitemapTooltip: 'Siga el mapa del sitio para rastrear el sitio. De lo contrario, Jina Reader rastreará de forma iterativa en función de la relevancia de la página, lo que producirá menos páginas pero de mayor calidad.',
|
||||
chooseProvider: 'Seleccione un proveedor',
|
||||
jinaReaderDoc: 'Más información sobre Jina Reader',
|
||||
watercrawlTitle: 'Extraer contenido web con Watercrawl',
|
||||
waterCrawlNotConfigured: 'Watercrawl no está configurado',
|
||||
configureFirecrawl: 'Configurar Firecrawl',
|
||||
watercrawlDoc: 'Documentos de Watercrawl',
|
||||
configureJinaReader: 'Configurar Jina Reader',
|
||||
configureWatercrawl: 'Configurar Watercrawl',
|
||||
waterCrawlNotConfiguredDescription: 'Configura Watercrawl con la clave de API para usarlo.',
|
||||
running: 'Corriente',
|
||||
},
|
||||
cancel: 'Cancelar',
|
||||
},
|
||||
stepTwo: {
|
||||
segmentation: 'Configuración de fragmentos',
|
||||
auto: 'Automático',
|
||||
autoDescription: 'Configura automáticamente las reglas de fragmentación y preprocesamiento. Se recomienda seleccionar esto para usuarios no familiarizados.',
|
||||
custom: 'Personalizado',
|
||||
customDescription: 'Personaliza las reglas de fragmentación, longitud de fragmentos y reglas de preprocesamiento, etc.',
|
||||
separator: 'Identificador de segmento',
|
||||
separatorPlaceholder: 'Por ejemplo, salto de línea (\\\\n) o separador especial (como "***")',
|
||||
maxLength: 'Longitud máxima del fragmento',
|
||||
overlap: 'Superposición de fragmentos',
|
||||
overlapTip: 'Configurar la superposición de fragmentos puede mantener la relevancia semántica entre ellos, mejorando el efecto de recuperación. Se recomienda configurar el 10%-25% del tamaño máximo del fragmento.',
|
||||
overlapCheck: 'La superposición de fragmentos no debe ser mayor que la longitud máxima del fragmento',
|
||||
rules: 'Reglas de preprocesamiento de texto',
|
||||
removeExtraSpaces: 'Reemplazar espacios, saltos de línea y tabulaciones consecutivas',
|
||||
removeUrlEmails: 'Eliminar todas las URL y direcciones de correo electrónico',
|
||||
removeStopwords: 'Eliminar palabras vacías como "un", "una", "el"',
|
||||
preview: 'Confirmar y vista previa',
|
||||
reset: 'Restablecer',
|
||||
indexMode: 'Modo de índice',
|
||||
qualified: 'Alta calidad',
|
||||
recommend: 'Recomendado',
|
||||
qualifiedTip: 'Llama a la interfaz de incrustación del sistema por defecto para proporcionar una mayor precisión cuando los usuarios realizan consultas.',
|
||||
warning: 'Por favor, configura primero la clave de API del proveedor del modelo.',
|
||||
click: 'Ir a configuración',
|
||||
economical: 'Económico',
|
||||
economicalTip: 'Utiliza motores de vector sin conexión, índices de palabras clave, etc. para reducir la precisión sin gastar tokens',
|
||||
QATitle: 'Segmentación en formato de pregunta y respuesta',
|
||||
QATip: 'Habilitar esta opción consumirá más tokens',
|
||||
QALanguage: 'Segmentar usando',
|
||||
estimateCost: 'Estimación',
|
||||
estimateSegment: 'Fragmentos estimados',
|
||||
segmentCount: 'fragmentos',
|
||||
calculating: 'Calculando...',
|
||||
fileSource: 'Preprocesar documentos',
|
||||
notionSource: 'Preprocesar páginas',
|
||||
websiteSource: 'Preprocesar sitio web',
|
||||
other: 'y otros ',
|
||||
fileUnit: ' archivos',
|
||||
notionUnit: ' páginas',
|
||||
webpageUnit: ' páginas',
|
||||
previousStep: 'Paso anterior',
|
||||
nextStep: 'Guardar y procesar',
|
||||
save: 'Guardar y procesar',
|
||||
cancel: 'Cancelar',
|
||||
sideTipTitle: '¿Por qué fragmentar y preprocesar?',
|
||||
sideTipP1: 'Al procesar datos de texto, la fragmentación y la limpieza son dos pasos de preprocesamiento importantes.',
|
||||
sideTipP2: 'La segmentación divide el texto largo en párrafos para que los modelos puedan entenderlo mejor. Esto mejora la calidad y relevancia de los resultados del modelo.',
|
||||
sideTipP3: 'La limpieza elimina caracteres y formatos innecesarios, haciendo que el conocimiento sea más limpio y fácil de analizar.',
|
||||
sideTipP4: 'Una fragmentación y limpieza adecuadas mejoran el rendimiento del modelo, proporcionando resultados más precisos y valiosos.',
|
||||
previewTitle: 'Vista previa',
|
||||
previewTitleButton: 'Vista previa',
|
||||
previewButton: 'Cambiar a formato de pregunta y respuesta',
|
||||
previewSwitchTipStart: 'La vista previa actual del fragmento está en formato de texto, cambiar a una vista previa en formato de pregunta y respuesta',
|
||||
previewSwitchTipEnd: ' consumirá tokens adicionales',
|
||||
characters: 'caracteres',
|
||||
indexSettingTip: 'Para cambiar el método de índice, por favor ve a la ',
|
||||
retrievalSettingTip: 'Para cambiar el método de índice, por favor ve a la ',
|
||||
datasetSettingLink: 'configuración del conocimiento.',
|
||||
separatorTip: 'Un delimitador es el carácter que se utiliza para separar el texto. \\n\\n y \\n son delimitadores comúnmente utilizados para separar párrafos y líneas. Combinado con comas (\\n\\n,\\n), los párrafos se segmentarán por líneas cuando excedan la longitud máxima del fragmento. También puede utilizar delimitadores especiales definidos por usted mismo (por ejemplo, ***).',
|
||||
maxLengthCheck: 'La longitud máxima del fragmento debe ser inferior a {{limit}}',
|
||||
previewChunkTip: 'Haga clic en el botón \'Vista previa de fragmento\' a la izquierda para cargar la vista previa',
|
||||
parentChildChunkDelimiterTip: 'Un delimitador es el carácter que se utiliza para separar el texto. \\n se recomienda para dividir fragmentos primarios en fragmentos secundarios pequeños. También puede utilizar delimitadores especiales definidos por usted mismo.',
|
||||
parentChildTip: 'Cuando se utiliza el modo padre-hijo, el fragmento secundario se utiliza para la recuperación y el fragmento primario se utiliza para la recuperación como contexto.',
|
||||
switch: 'Interruptor',
|
||||
parentChild: 'Padre-hijo',
|
||||
childChunkForRetrieval: 'Fragmento secundario para la recuperación',
|
||||
previewChunk: 'Fragmento de vista previa',
|
||||
notAvailableForParentChild: 'No disponible para el índice de elementos primarios y secundarios',
|
||||
paragraph: 'Párrafo',
|
||||
parentChunkForContext: 'Fragmento primario para contexto',
|
||||
fullDoc: 'Documento completo',
|
||||
parentChildDelimiterTip: 'Un delimitador es el carácter que se utiliza para separar el texto. \\n\\n se recomienda para dividir el documento original en grandes fragmentos principales. También puede utilizar delimitadores especiales definidos por usted mismo.',
|
||||
generalTip: 'Modo de fragmentación de texto general, los fragmentos recuperados y recuperados son los mismos.',
|
||||
qaSwitchHighQualityTipContent: 'Actualmente, solo el método de índice de alta calidad admite la fragmentación en formato de preguntas y respuestas. ¿Le gustaría cambiar al modo de alta calidad?',
|
||||
useQALanguage: 'Fragmento usando el formato de preguntas y respuestas en',
|
||||
fullDocTip: 'Todo el documento se utiliza como fragmento principal y se recupera directamente. Tenga en cuenta que, por razones de rendimiento, el texto que supere los 10000 tokens se trunqueará automáticamente.',
|
||||
paragraphTip: 'Este modo divide el texto en párrafos en función de los delimitadores y la longitud máxima del fragmento, utilizando el texto dividido como fragmento principal para la recuperación.',
|
||||
highQualityTip: 'Una vez finalizada la incrustación en el modo de alta calidad, no está disponible volver al modo económico.',
|
||||
notAvailableForQA: 'No disponible para el índice de preguntas y respuestas',
|
||||
qaSwitchHighQualityTipTitle: 'El formato de preguntas y respuestas requiere un método de indexación de alta calidad',
|
||||
previewChunkCount: '{{conteo}} Fragmentos estimados',
|
||||
general: 'General',
|
||||
qaTip: 'Al usar datos estructurados de preguntas y respuestas, puede crear documentos que combinen preguntas con respuestas. Estos documentos se indexan en función de la parte de la pregunta, lo que permite que el sistema recupere respuestas relevantes en función de la similitud de la consulta.',
|
||||
},
|
||||
stepThree: {
|
||||
creationTitle: '🎉 Conocimiento creado',
|
||||
creationContent: 'Hemos asignado automáticamente un nombre al conocimiento, puedes modificarlo en cualquier momento',
|
||||
label: 'Nombre del conocimiento',
|
||||
additionTitle: '🎉 Documento cargado',
|
||||
additionP1: 'El documento se ha cargado en el conocimiento',
|
||||
additionP2: ', puedes encontrarlo en la lista de documentos del conocimiento.',
|
||||
stop: 'Detener procesamiento',
|
||||
resume: 'Reanudar procesamiento',
|
||||
navTo: 'Ir al documento',
|
||||
sideTipTitle: '¿Qué sigue?',
|
||||
sideTipContent: 'Después de que el documento termine de indexarse, el conocimiento se puede integrar en la aplicación como contexto. Puedes encontrar la configuración de contexto en la página de orquestación de indicaciones. También puedes crearlo como un plugin de indexación ChatGPT independiente para su lanzamiento.',
|
||||
modelTitle: '¿Estás seguro de detener la incrustación?',
|
||||
modelContent: 'Si necesitas reanudar el procesamiento más tarde, continuarás desde donde lo dejaste.',
|
||||
modelButtonConfirm: 'Confirmar',
|
||||
modelButtonCancel: 'Cancelar',
|
||||
},
|
||||
jinaReader: {
|
||||
configJinaReader: 'Configurar Jina Reader',
|
||||
apiKeyPlaceholder: 'Clave de API de jina.ai',
|
||||
getApiKeyLinkText: 'Obtén tu clave API gratuita en jina.ai',
|
||||
},
|
||||
otherDataSource: {
|
||||
learnMore: 'Aprende más',
|
||||
description: 'Actualmente, la base de conocimientos de Ifiy solo tiene fuentes de datos limitadas. Contribuir con una fuente de datos a la base de conocimientos de Dify es una manera fantástica de ayudar a mejorar la flexibilidad y el poder de la plataforma para todos los usuarios. Nuestra guía de contribuciones hace que sea fácil comenzar. Haga clic en el enlace a continuación para obtener más información.',
|
||||
title: '¿Conectarse a otras fuentes de datos?',
|
||||
},
|
||||
watercrawl: {
|
||||
getApiKeyLinkText: 'Obtén tu clave API de watercrawl.dev',
|
||||
apiKeyPlaceholder: 'Clave API de watercrawl.dev',
|
||||
configWatercrawl: 'Configurar Watercrawl',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
407
dify/web/i18n/es-ES/dataset-documents.ts
Normal file
407
dify/web/i18n/es-ES/dataset-documents.ts
Normal file
@@ -0,0 +1,407 @@
|
||||
const translation = {
|
||||
list: {
|
||||
title: 'Documentos',
|
||||
desc: 'Aquí se muestran todos los archivos del Conocimiento, y todo el Conocimiento se puede vincular a citas de Dify o indexarse a través del complemento de Chat.',
|
||||
addFile: 'Agregar archivo',
|
||||
addPages: 'Agregar páginas',
|
||||
addUrl: 'Agregar URL',
|
||||
table: {
|
||||
header: {
|
||||
fileName: 'NOMBRE DEL ARCHIVO',
|
||||
words: 'PALABRAS',
|
||||
hitCount: 'CANTIDAD DE RECUPERACIÓN',
|
||||
uploadTime: 'TIEMPO DE CARGA',
|
||||
status: 'ESTADO',
|
||||
action: 'ACCIÓN',
|
||||
chunkingMode: 'MODO DE FRAGMENTACIÓN',
|
||||
},
|
||||
rename: 'Renombrar',
|
||||
name: 'Nombre',
|
||||
},
|
||||
action: {
|
||||
uploadFile: 'Subir nuevo archivo',
|
||||
settings: 'Configuración de segmento',
|
||||
addButton: 'Agregar fragmento',
|
||||
add: 'Agregar un fragmento',
|
||||
batchAdd: 'Agregar en lotes',
|
||||
archive: 'Archivar',
|
||||
unarchive: 'Desarchivar',
|
||||
delete: 'Eliminar',
|
||||
enableWarning: 'El archivo archivado no puede habilitarse',
|
||||
sync: 'Sincronizar',
|
||||
resume: 'Reanudar',
|
||||
pause: 'Pausa',
|
||||
},
|
||||
index: {
|
||||
enable: 'Habilitar',
|
||||
disable: 'Deshabilitar',
|
||||
all: 'Todos',
|
||||
enableTip: 'El archivo se puede indexar',
|
||||
disableTip: 'El archivo no se puede indexar',
|
||||
},
|
||||
status: {
|
||||
queuing: 'En cola',
|
||||
indexing: 'Indexando',
|
||||
paused: 'Pausado',
|
||||
error: 'Error',
|
||||
available: 'Disponible',
|
||||
enabled: 'Habilitado',
|
||||
disabled: 'Deshabilitado',
|
||||
archived: 'Archivado',
|
||||
},
|
||||
empty: {
|
||||
title: 'Aún no hay documentación',
|
||||
upload: {
|
||||
tip: 'Puedes subir archivos, sincronizar desde el sitio web o desde aplicaciones web como Notion, GitHub, etc.',
|
||||
},
|
||||
sync: {
|
||||
tip: 'Dify descargará periódicamente archivos desde tu Notion y completará el procesamiento.',
|
||||
},
|
||||
},
|
||||
delete: {
|
||||
title: '¿Seguro que deseas eliminar?',
|
||||
content: 'Si necesitas reanudar el procesamiento más tarde, continuarás desde donde lo dejaste.',
|
||||
},
|
||||
batchModal: {
|
||||
title: 'Agregar fragmentos en lotes',
|
||||
csvUploadTitle: 'Arrastra y suelta tu archivo CSV aquí, o ',
|
||||
browse: 'navega',
|
||||
tip: 'El archivo CSV debe cumplir con la siguiente estructura:',
|
||||
question: 'pregunta',
|
||||
answer: 'respuesta',
|
||||
contentTitle: 'contenido del fragmento',
|
||||
content: 'contenido',
|
||||
template: 'Descarga la plantilla aquí',
|
||||
cancel: 'Cancelar',
|
||||
run: 'Ejecutar en lotes',
|
||||
runError: 'Error al ejecutar en lotes',
|
||||
processing: 'Procesamiento en lotes',
|
||||
completed: 'Importación completada',
|
||||
error: 'Error de importación',
|
||||
ok: 'Aceptar',
|
||||
},
|
||||
learnMore: 'Aprende más',
|
||||
sort: {
|
||||
uploadTime: 'Hora de subida',
|
||||
hitCount: 'Conteo de Recuperaciones',
|
||||
},
|
||||
},
|
||||
metadata: {
|
||||
title: 'Metadatos',
|
||||
desc: 'Etiquetar metadatos para documentos permite que la IA acceda a ellos de manera oportuna y expone la fuente de referencias para los usuarios.',
|
||||
dateTimeFormat: 'MMMM D, YYYY hh:mm A',
|
||||
docTypeSelectTitle: 'Por favor, selecciona un tipo de documento',
|
||||
docTypeChangeTitle: 'Cambiar tipo de documento',
|
||||
docTypeSelectWarning:
|
||||
'Si se cambia el tipo de documento, los metadatos ahora llenos ya no se conservarán.',
|
||||
firstMetaAction: 'Vamos D',
|
||||
placeholder: {
|
||||
add: 'Agregar ',
|
||||
select: 'Seleccionar ',
|
||||
},
|
||||
source: {
|
||||
upload_file: 'Subir archivo',
|
||||
notion: 'Sincronizar desde Notion',
|
||||
github: 'Sincronizar desde GitHub',
|
||||
online_document: 'Documento en línea',
|
||||
local_file: 'Archivo local',
|
||||
website_crawl: 'Rastreo del sitio web',
|
||||
},
|
||||
type: {
|
||||
book: 'Libro',
|
||||
webPage: 'Página Web',
|
||||
paper: 'Artículo',
|
||||
socialMediaPost: 'Publicación en Redes Sociales',
|
||||
personalDocument: 'Documento Personal',
|
||||
businessDocument: 'Documento de Negocios',
|
||||
IMChat: 'Chat IM',
|
||||
wikipediaEntry: 'Entrada de Wikipedia',
|
||||
notion: 'Sincronizar desde Notion',
|
||||
github: 'Sincronizar desde GitHub',
|
||||
technicalParameters: 'Parámetros Técnicos',
|
||||
},
|
||||
field: {
|
||||
processRule: {
|
||||
processDoc: 'Procesar documento',
|
||||
segmentRule: 'Regla de segmentación',
|
||||
segmentLength: 'Longitud de fragmentos',
|
||||
processClean: 'Limpieza de texto procesado',
|
||||
},
|
||||
book: {
|
||||
title: 'Título',
|
||||
language: 'Idioma',
|
||||
author: 'Autor',
|
||||
publisher: 'Editorial',
|
||||
publicationDate: 'Fecha de publicación',
|
||||
ISBN: 'ISBN',
|
||||
category: 'Categoría',
|
||||
},
|
||||
webPage: {
|
||||
title: 'Título',
|
||||
url: 'URL',
|
||||
language: 'Idioma',
|
||||
authorPublisher: 'Autor/Editorial',
|
||||
publishDate: 'Fecha de publicación',
|
||||
topicKeywords: 'Temas/Palabras clave',
|
||||
description: 'Descripción',
|
||||
},
|
||||
paper: {
|
||||
title: 'Título',
|
||||
language: 'Idioma',
|
||||
author: 'Autor',
|
||||
publishDate: 'Fecha de publicación',
|
||||
journalConferenceName: 'Nombre de la revista/conferencia',
|
||||
volumeIssuePage: 'Volumen/Número/Página',
|
||||
DOI: 'DOI',
|
||||
topicsKeywords: 'Temas/Palabras clave',
|
||||
abstract: 'Resumen',
|
||||
},
|
||||
socialMediaPost: {
|
||||
platform: 'Plataforma',
|
||||
authorUsername: 'Autor/Nombre de usuario',
|
||||
publishDate: 'Fecha de publicación',
|
||||
postURL: 'URL de la publicación',
|
||||
topicsTags: 'Temas/Etiquetas',
|
||||
},
|
||||
personalDocument: {
|
||||
title: 'Título',
|
||||
author: 'Autor',
|
||||
creationDate: 'Fecha de creación',
|
||||
lastModifiedDate: 'Última fecha de modificación',
|
||||
documentType: 'Tipo de documento',
|
||||
tagsCategory: 'Etiquetas/Categoría',
|
||||
},
|
||||
businessDocument: {
|
||||
title: 'Título',
|
||||
author: 'Autor',
|
||||
creationDate: 'Fecha de creación',
|
||||
lastModifiedDate: 'Última fecha de modificación',
|
||||
documentType: 'Tipo de documento',
|
||||
departmentTeam: 'Departamento/Equipo',
|
||||
},
|
||||
IMChat: {
|
||||
chatPlatform: 'Plataforma de chat',
|
||||
chatPartiesGroupName: 'Partes de chat/Nombre del grupo',
|
||||
participants: 'Participantes',
|
||||
startDate: 'Fecha de inicio',
|
||||
endDate: 'Fecha de fin',
|
||||
topicsKeywords: 'Temas/Palabras clave',
|
||||
fileType: 'Tipo de archivo',
|
||||
},
|
||||
wikipediaEntry: {
|
||||
title: 'Título',
|
||||
language: 'Idioma',
|
||||
webpageURL: 'URL de la página web',
|
||||
editorContributor: 'Editor/Contribuidor',
|
||||
lastEditDate: 'Última fecha de edición',
|
||||
summaryIntroduction: 'Resumen/Introducción',
|
||||
},
|
||||
notion: {
|
||||
title: 'Título',
|
||||
language: 'Idioma',
|
||||
author: 'Autor',
|
||||
createdTime: 'Fecha de creación',
|
||||
lastModifiedTime: 'Última fecha de modificación',
|
||||
url: 'URL',
|
||||
tag: 'Etiqueta',
|
||||
description: 'Descripción',
|
||||
},
|
||||
github: {
|
||||
repoName: 'Nombre del repositorio',
|
||||
repoDesc: 'Descripción del repositorio',
|
||||
repoOwner: 'Propietario del repositorio',
|
||||
fileName: 'Nombre del archivo',
|
||||
filePath: 'Ruta del archivo',
|
||||
programmingLang: 'Lenguaje de programación',
|
||||
url: 'URL',
|
||||
license: 'Licencia',
|
||||
lastCommitTime: 'Última hora de compromiso',
|
||||
lastCommitAuthor: 'Último autor del compromiso',
|
||||
},
|
||||
originInfo: {
|
||||
originalFilename: 'Nombre de archivo original',
|
||||
originalFileSize: 'Tamaño de archivo original',
|
||||
uploadDate: 'Fecha de carga',
|
||||
lastUpdateDate: 'Última fecha de actualización',
|
||||
source: 'Fuente',
|
||||
},
|
||||
technicalParameters: {
|
||||
segmentSpecification: 'Especificación de fragmentos',
|
||||
segmentLength: 'Longitud de fragmentos',
|
||||
avgParagraphLength: 'Longitud promedio del párrafo',
|
||||
paragraphs: 'Párrafos',
|
||||
hitCount: 'Cantidad de recuperación',
|
||||
embeddingTime: 'Tiempo de incrustación',
|
||||
embeddedSpend: 'Gasto incrustado',
|
||||
},
|
||||
},
|
||||
languageMap: {
|
||||
zh: 'Chino',
|
||||
en: 'Inglés',
|
||||
es: 'Español',
|
||||
fr: 'Francés',
|
||||
de: 'Alemán',
|
||||
ja: 'Japonés',
|
||||
ko: 'Coreano',
|
||||
ru: 'Ruso',
|
||||
ar: 'Árabe',
|
||||
pt: 'Portugués',
|
||||
it: 'Italiano',
|
||||
nl: 'Holandés',
|
||||
pl: 'Polaco',
|
||||
sv: 'Sueco',
|
||||
tr: 'Turco',
|
||||
he: 'Hebreo',
|
||||
hi: 'Hindi',
|
||||
da: 'Danés',
|
||||
fi: 'Finlandés',
|
||||
no: 'Noruego',
|
||||
hu: 'Húngaro',
|
||||
el: 'Griego',
|
||||
cs: 'Checo',
|
||||
th: 'Tailandés',
|
||||
id: 'Indonesio',
|
||||
},
|
||||
categoryMap: {
|
||||
book: {
|
||||
fiction: 'Ficción',
|
||||
biography: 'Biografía',
|
||||
history: 'Historia',
|
||||
science: 'Ciencia',
|
||||
technology: 'Tecnología',
|
||||
education: 'Educación',
|
||||
philosophy: 'Filosofía',
|
||||
religion: 'Religión',
|
||||
socialSciences: 'Ciencias Sociales',
|
||||
art: 'Arte',
|
||||
travel: 'Viaje',
|
||||
health: 'Salud',
|
||||
selfHelp: 'Autoayuda',
|
||||
businessEconomics: 'Negocios y Economía',
|
||||
cooking: 'Cocina',
|
||||
childrenYoungAdults: 'Niños y Jóvenes Adultos',
|
||||
comicsGraphicNovels: 'Cómics y Novelas Gráficas',
|
||||
poetry: 'Poesía',
|
||||
drama: 'Drama',
|
||||
other: 'Otros',
|
||||
},
|
||||
personalDoc: {
|
||||
notes: 'Notas',
|
||||
blogDraft: 'Borrador de blog',
|
||||
diary: 'Diario',
|
||||
researchReport: 'Informe de investigación',
|
||||
bookExcerpt: 'Extracto de libro',
|
||||
schedule: 'Horario',
|
||||
list: 'Lista',
|
||||
projectOverview: 'Visión general del proyecto',
|
||||
photoCollection: 'Colección de fotos',
|
||||
creativeWriting: 'Escritura creativa',
|
||||
codeSnippet: 'Fragmento de código',
|
||||
designDraft: 'Borrador de diseño',
|
||||
personalResume: 'Currículum personal',
|
||||
other: 'Otros',
|
||||
},
|
||||
businessDoc: {
|
||||
meetingMinutes: 'Minutos de reunión',
|
||||
researchReport: 'Informe de investigación',
|
||||
proposal: 'Propuesta',
|
||||
employeeHandbook: 'Manual del empleado',
|
||||
trainingMaterials: 'Materiales de capacitación',
|
||||
requirementsDocument: 'Documento de requisitos',
|
||||
designDocument: 'Documento de diseño',
|
||||
productSpecification: 'Especificación del producto',
|
||||
financialReport: 'Informe financiero',
|
||||
marketAnalysis: 'Análisis de mercado',
|
||||
projectPlan: 'Plan de proyecto',
|
||||
teamStructure: 'Estructura del equipo',
|
||||
policiesProcedures: 'Políticas y procedimientos',
|
||||
contractsAgreements: 'Contratos y acuerdos',
|
||||
emailCorrespondence: 'Correspondencia por correo electrónico',
|
||||
other: 'Otros',
|
||||
},
|
||||
},
|
||||
},
|
||||
embedding: {
|
||||
processing: 'Procesando incrustación...',
|
||||
paused: 'Incrustación pausada',
|
||||
completed: 'Incrustación completada',
|
||||
error: 'Error de incrustación',
|
||||
docName: 'Preprocesamiento del documento',
|
||||
mode: 'Regla de segmentación',
|
||||
segmentLength: 'Longitud de fragmentos',
|
||||
textCleaning: 'Definición de texto y limpieza previa',
|
||||
segments: 'Párrafos',
|
||||
highQuality: 'Modo de alta calidad',
|
||||
economy: 'Modo económico',
|
||||
estimate: 'Consumo estimado',
|
||||
stop: 'Detener procesamiento',
|
||||
resume: 'Reanudar procesamiento',
|
||||
automatic: 'Automático',
|
||||
custom: 'Personalizado',
|
||||
previewTip: 'La vista previa del párrafo estará disponible después de que se complete la incrustación',
|
||||
pause: 'Pausa',
|
||||
childMaxTokens: 'Niño',
|
||||
hierarchical: 'Padre-hijo',
|
||||
parentMaxTokens: 'Padre',
|
||||
waiting: 'Esperando incrustación...',
|
||||
},
|
||||
segment: {
|
||||
paragraphs: 'Párrafos',
|
||||
keywords: 'Palabras clave',
|
||||
addKeyWord: 'Agregar palabra clave',
|
||||
keywordError: 'La longitud máxima de la palabra clave es 20',
|
||||
hitCount: 'Cantidad de recuperación',
|
||||
vectorHash: 'Hash de vector: ',
|
||||
questionPlaceholder: 'agregar pregunta aquí',
|
||||
questionEmpty: 'La pregunta no puede estar vacía',
|
||||
answerPlaceholder: 'agregar respuesta aquí',
|
||||
answerEmpty: 'La respuesta no puede estar vacía',
|
||||
contentPlaceholder: 'agregar contenido aquí',
|
||||
contentEmpty: 'El contenido no puede estar vacío',
|
||||
newTextSegment: 'Nuevo segmento de texto',
|
||||
newQaSegment: 'Nuevo segmento de preguntas y respuestas',
|
||||
delete: '¿Eliminar este fragmento?',
|
||||
chunks_one: 'PEDAZO',
|
||||
childChunks_one: 'FRAGMENTO SECUNDARIO',
|
||||
searchResults_other: 'RESULTADOS',
|
||||
newChunk: 'Nuevo fragmento',
|
||||
childChunk: 'Fragmento secundario',
|
||||
addChunk: 'Agregar fragmento',
|
||||
editParentChunk: 'Editar fragmento principal',
|
||||
regenerationConfirmMessage: 'La regeneración de fragmentos secundarios sobrescribirá los fragmentos secundarios actuales, incluidos los fragmentos editados y los fragmentos recién agregados. La regeneración no se puede deshacer.',
|
||||
addAnother: 'Añade otro',
|
||||
regeneratingMessage: 'Esto puede tardar un momento, por favor espere...',
|
||||
addChildChunk: 'Agregar fragmento secundario',
|
||||
chunks_other: 'TROZOS',
|
||||
editChunk: 'Editar fragmento',
|
||||
searchResults_one: 'RESULTADO',
|
||||
parentChunks_one: 'FRAGMENTO PRIMARIO',
|
||||
edited: 'EDITADO',
|
||||
childChunkAdded: 'Se ha añadido 1 fragmento secundario',
|
||||
childChunks_other: 'FRAGMENTOS SECUNDARIOS',
|
||||
chunkAdded: '1 trozo añadido',
|
||||
parentChunk: 'Fragmento primario',
|
||||
editChildChunk: 'Editar fragmento secundario',
|
||||
regeneratingTitle: 'Regeneración de fragmentos secundarios',
|
||||
editedAt: 'Editado en',
|
||||
dateTimeFormat: 'MM/DD/YYYY h:mm',
|
||||
searchResults_zero: 'RESULTADO',
|
||||
clearFilter: 'Borrar filtro',
|
||||
newChildChunk: 'Nuevo fragmento secundario',
|
||||
chunkDetail: 'Detalle de fragmentos',
|
||||
chunk: 'Pedazo',
|
||||
parentChunks_other: 'FRAGMENTOS PRINCIPALES',
|
||||
expandChunks: 'Expandir fragmentos',
|
||||
empty: 'No se ha encontrado ningún fragmento',
|
||||
regenerationSuccessTitle: 'Regeneración completada',
|
||||
collapseChunks: 'Contraer fragmentos',
|
||||
characters_other: 'Caracteres',
|
||||
characters_one: 'carácter',
|
||||
regenerationSuccessMessage: 'Puede cerrar esta ventana.',
|
||||
regenerationConfirmTitle: '¿Desea regenerar fragmentos secundarios?',
|
||||
keywordEmpty: 'La palabra clave no puede estar vacía',
|
||||
keywordDuplicate: 'La palabra clave ya existe',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
34
dify/web/i18n/es-ES/dataset-hit-testing.ts
Normal file
34
dify/web/i18n/es-ES/dataset-hit-testing.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
const translation = {
|
||||
title: 'Prueba de recuperación',
|
||||
desc: 'Prueba del efecto de impacto del conocimiento basado en el texto de consulta proporcionado.',
|
||||
dateTimeFormat: 'MM/DD/YYYY hh:mm A',
|
||||
table: {
|
||||
header: {
|
||||
source: 'Fuente',
|
||||
text: 'Texto',
|
||||
time: 'Tiempo',
|
||||
},
|
||||
},
|
||||
input: {
|
||||
title: 'Texto fuente',
|
||||
placeholder: 'Por favor ingrese un texto, se recomienda una oración declarativa corta.',
|
||||
countWarning: 'Hasta 200 caracteres.',
|
||||
indexWarning: 'Solo conocimiento de alta calidad.',
|
||||
testing: 'Prueba',
|
||||
},
|
||||
hit: {
|
||||
title: 'PÁRRAFOS DE RECUPERACIÓN',
|
||||
emptyTip: 'Los resultados de la prueba de recuperación se mostrarán aquí',
|
||||
},
|
||||
noRecentTip: 'No hay resultados de consulta recientes aquí',
|
||||
viewChart: 'Ver GRÁFICO VECTORIAL',
|
||||
viewDetail: 'Ver Detalle',
|
||||
settingTitle: 'Configuración de recuperación',
|
||||
open: 'Abrir',
|
||||
records: 'Archivo',
|
||||
chunkDetail: 'Detalle de fragmentos',
|
||||
keyword: 'Palabras clave',
|
||||
hitChunks: 'Golpea {{num}} fragmentos secundarios',
|
||||
}
|
||||
|
||||
export default translation
|
||||
166
dify/web/i18n/es-ES/dataset-pipeline.ts
Normal file
166
dify/web/i18n/es-ES/dataset-pipeline.ts
Normal file
@@ -0,0 +1,166 @@
|
||||
const translation = {
|
||||
creation: {
|
||||
createFromScratch: {
|
||||
title: 'Canalización de conocimiento en blanco',
|
||||
description: 'Cree una canalización personalizada desde cero con control total sobre el procesamiento y la estructura de datos.',
|
||||
},
|
||||
caution: 'Cautela',
|
||||
backToKnowledge: 'Volver al conocimiento',
|
||||
successTip: 'Creó con éxito una base de conocimientos',
|
||||
createKnowledge: 'Crear conocimiento',
|
||||
errorTip: 'No se pudo crear una base de conocimiento',
|
||||
importDSL: 'Importar desde un archivo DSL',
|
||||
},
|
||||
templates: {
|
||||
customized: 'Personalizado',
|
||||
},
|
||||
operations: {
|
||||
preview: 'Vista previa',
|
||||
details: 'Detalles',
|
||||
dataSource: 'Fuente de datos',
|
||||
convert: 'Convertir',
|
||||
choose: 'Elegir',
|
||||
process: 'Proceso',
|
||||
backToDataSource: 'Volver a la fuente de datos',
|
||||
editInfo: 'Editar información',
|
||||
exportPipeline: 'Canalización de exportación',
|
||||
useTemplate: 'Utilice esta canalización de conocimiento',
|
||||
saveAndProcess: 'Guardar y procesar',
|
||||
},
|
||||
deletePipeline: {
|
||||
content: 'La eliminación de la plantilla de canalización es irreversible.',
|
||||
title: '¿Está seguro de eliminar esta plantilla de canalización?',
|
||||
},
|
||||
publishPipeline: {
|
||||
success: {
|
||||
message: 'Publicación de Knowledge Pipeline',
|
||||
tip: '<CustomLink>Ve a Documentos</CustomLink> para agregar o gestionar documentos.',
|
||||
},
|
||||
error: {
|
||||
message: 'No se pudo publicar la canalización de conocimiento',
|
||||
},
|
||||
},
|
||||
publishTemplate: {
|
||||
success: {
|
||||
learnMore: 'Aprende más',
|
||||
message: 'Plantilla de canalización publicada',
|
||||
tip: 'Puede usar esta plantilla en la página de creación.',
|
||||
},
|
||||
error: {
|
||||
message: 'No se pudo publicar la plantilla de canalización',
|
||||
},
|
||||
},
|
||||
exportDSL: {
|
||||
successTip: 'Exportar DSL de canalización correctamente',
|
||||
errorTip: 'No se pudo exportar DSL de canalización',
|
||||
},
|
||||
details: {
|
||||
structure: 'Structure',
|
||||
structureTooltip: 'La estructura de fragmentos determina cómo se dividen e indexan los documentos, ofreciendo modos General, Principal-Secundario y Preguntas y respuestas, y es única para cada base de conocimiento.',
|
||||
createdBy: 'Por {{author}}',
|
||||
},
|
||||
testRun: {
|
||||
steps: {
|
||||
documentProcessing: 'Procesamiento de documentos',
|
||||
dataSource: 'Fuente de datos',
|
||||
},
|
||||
dataSource: {
|
||||
localFiles: 'Archivos locales',
|
||||
},
|
||||
notion: {
|
||||
docTitle: 'Documentos de Notion',
|
||||
title: 'Elegir páginas de nociones',
|
||||
},
|
||||
title: 'Ejecución de prueba',
|
||||
tooltip: 'En el modo de ejecución de prueba, solo se permite importar un documento a la vez para facilitar la depuración y la observación.',
|
||||
},
|
||||
inputFieldPanel: {
|
||||
uniqueInputs: {
|
||||
title: 'Entradas únicas para cada entrada',
|
||||
tooltip: 'Las entradas únicas solo son accesibles para la fuente de datos seleccionada y sus nodos posteriores. Los usuarios no tendrán que rellenarlo al elegir otros orígenes de datos. Solo los campos de entrada a los que hacen referencia las variables de origen de datos aparecerán en el primer paso (Origen de datos). Todos los demás campos se mostrarán en el segundo paso (Procesar documentos).',
|
||||
},
|
||||
globalInputs: {
|
||||
title: 'Entradas globales para todas las entradas',
|
||||
tooltip: 'Las entradas globales se comparten entre todos los nodos. Los usuarios deberán completarlos al seleccionar cualquier fuente de datos. Por ejemplo, campos como el delimitador y la longitud máxima del fragmento se pueden aplicar de manera uniforme en varias fuentes de datos. Solo los campos de entrada a los que hacen referencia las variables de origen de datos aparecen en el primer paso (origen de datos). Todos los demás campos aparecen en el segundo paso (Procesar documentos).',
|
||||
},
|
||||
preview: {
|
||||
stepTwoTitle: 'Documentos de proceso',
|
||||
stepOneTitle: 'Fuente de datos',
|
||||
},
|
||||
error: {
|
||||
variableDuplicate: 'El nombre de la variable ya existe. Por favor, elija un nombre diferente.',
|
||||
},
|
||||
addInputField: 'Agregar campo de entrada',
|
||||
title: 'Campos de entrada de usuario',
|
||||
editInputField: 'Editar campo de entrada',
|
||||
description: 'Los campos de entrada del usuario se utilizan para definir y recopilar las variables necesarias durante el proceso de ejecución de la canalización. Los usuarios pueden personalizar el tipo de campo y configurar de forma flexible el valor de entrada para satisfacer las necesidades de diferentes fuentes de datos o pasos de procesamiento de documentos.',
|
||||
},
|
||||
addDocuments: {
|
||||
steps: {
|
||||
processingDocuments: 'Procesamiento de documentos',
|
||||
processDocuments: 'Documentos de proceso',
|
||||
chooseDatasource: 'Elegir una fuente de datos',
|
||||
},
|
||||
stepOne: {
|
||||
preview: 'Vista previa',
|
||||
},
|
||||
stepTwo: {
|
||||
chunkSettings: 'Configuración de fragmentos',
|
||||
previewChunks: 'Vista previa de fragmentos',
|
||||
},
|
||||
stepThree: {
|
||||
learnMore: 'Aprende más',
|
||||
},
|
||||
characters: 'Caracteres',
|
||||
title: 'Agregar documentos',
|
||||
backToDataSource: 'Fuente de datos',
|
||||
selectOnlineDocumentTip: 'Procesar hasta {{count}} páginas',
|
||||
selectOnlineDriveTip: 'Procesar hasta {{count}} archivos, máximo {{fileSize}} MB cada uno',
|
||||
},
|
||||
documentSettings: {
|
||||
title: 'Parametrizaciones de documentos',
|
||||
},
|
||||
onlineDocument: {
|
||||
pageSelectorTitle: '{{name}} páginas',
|
||||
},
|
||||
onlineDrive: {
|
||||
breadcrumbs: {
|
||||
allBuckets: 'Todos los depósitos de Cloud Storage',
|
||||
allFiles: 'Todos los archivos',
|
||||
searchPlaceholder: 'Buscar archivos...',
|
||||
searchResult: 'Encontrar {{searchResultsLength}} elementos en la carpeta "{{folderName}}"',
|
||||
},
|
||||
emptySearchResult: 'No se encontraron artículos',
|
||||
resetKeywords: 'Restablecer palabras clave',
|
||||
emptyFolder: 'Esta carpeta está vacía',
|
||||
notSupportedFileType: 'Este tipo de archivo no es compatible',
|
||||
notConnected: '{{name}} no está conectado',
|
||||
notConnectedTip: 'Para sincronizar con {{name}}, primero se debe establecer conexión con {{name}}.',
|
||||
},
|
||||
credentialSelector: {
|
||||
name: '{{credentialName}} de {{pluginName}}',
|
||||
},
|
||||
conversion: {
|
||||
confirm: {
|
||||
title: 'Confirmación',
|
||||
content: 'Esta acción es permanente. No podrá volver al método anterior. Por favor, confirme para convertir.',
|
||||
},
|
||||
title: 'Convertir en canalización de conocimiento',
|
||||
successMessage: 'Convertir correctamente el conjunto de datos en una canalización',
|
||||
warning: 'Esta acción no se puede deshacer.',
|
||||
errorMessage: 'No se pudo convertir el conjunto de datos en una canalización',
|
||||
descriptionChunk2: '— un enfoque más abierto y flexible con acceso a complementos de nuestro mercado. Esto aplicará el nuevo método de procesamiento a todos los documentos futuros.',
|
||||
descriptionChunk1: 'Ahora puede convertir su base de conocimientos existente para usar la canalización de conocimientos para el procesamiento de documentos',
|
||||
},
|
||||
knowledgeDescription: 'Descripción del conocimiento',
|
||||
knowledgeNameAndIcon: 'Nombre e icono de conocimiento',
|
||||
inputField: 'Campo de entrada',
|
||||
knowledgeNameAndIconPlaceholder: 'Ingrese el nombre de la base de conocimientos',
|
||||
knowledgeDescriptionPlaceholder: 'Describa lo que hay en esta base de conocimientos. Una descripción detallada permite a la IA acceder al contenido del conjunto de datos con mayor precisión. Si está vacío, Dify usará la estrategia de golpe predeterminada. (Opcional)',
|
||||
pipelineNameAndIcon: 'Nombre e icono de la tubería',
|
||||
knowledgePermissions: 'Permisos',
|
||||
editPipelineInfo: 'Editar información de canalización',
|
||||
configurationTip: 'Configurar {{pluginName}}',
|
||||
}
|
||||
|
||||
export default translation
|
||||
51
dify/web/i18n/es-ES/dataset-settings.ts
Normal file
51
dify/web/i18n/es-ES/dataset-settings.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
const translation = {
|
||||
title: 'Configuración del conjunto de datos',
|
||||
desc: 'Aquí puedes modificar las propiedades y los métodos de trabajo del conjunto de datos.',
|
||||
form: {
|
||||
name: 'Nombre del conjunto de datos',
|
||||
namePlaceholder: 'Por favor ingresa el nombre del conjunto de datos',
|
||||
nameError: 'El nombre no puede estar vacío',
|
||||
desc: 'Descripción del conjunto de datos',
|
||||
descInfo: 'Por favor escribe una descripción textual clara para delinear el contenido del conjunto de datos. Esta descripción se utilizará como base para la coincidencia al seleccionar entre múltiples conjuntos de datos para la inferencia.',
|
||||
descPlaceholder: 'Describe lo que hay en este conjunto de datos. Una descripción detallada permite que la IA acceda al contenido del conjunto de datos de manera oportuna. Si está vacío, Dify utilizará la estrategia de coincidencia predeterminada.',
|
||||
descWrite: 'Aprende cómo escribir una buena descripción del conjunto de datos.',
|
||||
permissions: 'Permisos',
|
||||
permissionsOnlyMe: 'Solo yo',
|
||||
permissionsAllMember: 'Todos los miembros del equipo',
|
||||
permissionsInvitedMembers: 'Miembros del equipo invitados',
|
||||
me: '(Tú)',
|
||||
indexMethod: 'Método de indexación',
|
||||
indexMethodHighQuality: 'Alta calidad',
|
||||
indexMethodHighQualityTip: 'Llama al modelo de incrustación para procesar y proporcionar una mayor precisión cuando los usuarios realizan consultas.',
|
||||
indexMethodEconomy: 'Económico',
|
||||
indexMethodEconomyTip: 'Utiliza motores de vectores sin conexión, índices de palabras clave, etc. para reducir la precisión sin gastar tokens.',
|
||||
embeddingModel: 'Modelo de incrustación',
|
||||
embeddingModelTip: 'Cambia el modelo de incrustación, por favor ve a ',
|
||||
embeddingModelTipLink: 'Configuración',
|
||||
retrievalSetting: {
|
||||
title: 'Configuración de recuperación',
|
||||
learnMore: 'Aprende más',
|
||||
description: ' sobre el método de recuperación.',
|
||||
longDescription: ' sobre el método de recuperación, puedes cambiar esto en cualquier momento en la configuración del conjunto de datos.',
|
||||
method: 'Método de recuperación',
|
||||
},
|
||||
save: 'Guardar',
|
||||
retrievalSettings: 'Configuración de recuperación',
|
||||
externalKnowledgeID: 'ID de conocimiento externo',
|
||||
externalKnowledgeAPI: 'API de conocimiento externo',
|
||||
indexMethodChangeToEconomyDisabledTip: 'No disponible para degradar de HQ a ECO',
|
||||
helpText: 'Aprenda a escribir una buena descripción del conjunto de datos.',
|
||||
upgradeHighQualityTip: 'Una vez que se actualiza al modo de alta calidad, no está disponible volver al modo económico',
|
||||
searchModel: 'Buscar modelo',
|
||||
chunkStructure: {
|
||||
learnMore: 'Aprende más',
|
||||
description: 'sobre la estructura de fragmentos.',
|
||||
title: 'Estructura de fragmentos',
|
||||
},
|
||||
numberOfKeywords: 'Número de palabras clave',
|
||||
nameAndIcon: 'Nombre e icono',
|
||||
onSearchResults: 'Ningún miembro coincide con su consulta de búsqueda.\nIntente su búsqueda nuevamente.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
243
dify/web/i18n/es-ES/dataset.ts
Normal file
243
dify/web/i18n/es-ES/dataset.ts
Normal file
@@ -0,0 +1,243 @@
|
||||
const translation = {
|
||||
knowledge: 'Conocimiento',
|
||||
documentCount: ' documentos',
|
||||
wordCount: ' mil palabras',
|
||||
appCount: ' aplicaciones vinculadas',
|
||||
createDataset: 'Crear Conocimiento',
|
||||
createDatasetIntro: 'Importa tus propios datos de texto o escribe datos en tiempo real a través de Webhook para mejorar el contexto de LLM.',
|
||||
deleteDatasetConfirmTitle: '¿Eliminar este Conocimiento?',
|
||||
deleteDatasetConfirmContent:
|
||||
'Eliminar el Conocimiento es irreversible. Los usuarios ya no podrán acceder a tu Conocimiento y todas las configuraciones y registros de las sugerencias se eliminarán permanentemente.',
|
||||
datasetUsedByApp: 'El conocimiento está siendo utilizado por algunas aplicaciones. Las aplicaciones ya no podrán utilizar este Conocimiento y todas las configuraciones y registros de las sugerencias se eliminarán permanentemente.',
|
||||
datasetDeleted: 'Conocimiento eliminado',
|
||||
datasetDeleteFailed: 'Error al eliminar el Conocimiento',
|
||||
didYouKnow: '¿Sabías?',
|
||||
intro1: 'El Conocimiento se puede integrar en la aplicación Dify ',
|
||||
intro2: 'como contexto',
|
||||
intro3: ',',
|
||||
intro4: 'o ',
|
||||
intro5: 'se puede crear',
|
||||
intro6: ' como un complemento independiente de ChatGPT para publicar',
|
||||
unavailable: 'No disponible',
|
||||
datasets: 'CONOCIMIENTO',
|
||||
datasetsApi: 'ACCESO A LA API',
|
||||
retrieval: {
|
||||
semantic_search: {
|
||||
title: 'Búsqueda Vectorial',
|
||||
description: 'Genera incrustaciones de consulta y busca el fragmento de texto más similar a su representación vectorial.',
|
||||
},
|
||||
full_text_search: {
|
||||
title: 'Búsqueda de Texto Completo',
|
||||
description: 'Indexa todos los términos del documento, lo que permite a los usuarios buscar cualquier término y recuperar el fragmento de texto relevante que contiene esos términos.',
|
||||
},
|
||||
hybrid_search: {
|
||||
title: 'Búsqueda Híbrida',
|
||||
description: 'Ejecuta búsquedas de texto completo y búsquedas vectoriales simultáneamente, reordena para seleccionar la mejor coincidencia para la consulta del usuario. Es necesaria la configuración de las API del modelo de reordenamiento.',
|
||||
recommend: 'Recomendar',
|
||||
},
|
||||
invertedIndex: {
|
||||
},
|
||||
change: 'Cambiar',
|
||||
changeRetrievalMethod: 'Cambiar método de recuperación',
|
||||
keyword_search: {
|
||||
title: 'Índice invertido',
|
||||
description: 'El índice invertido es una estructura utilizada para una recuperación eficiente. Organizado por términos, cada término apunta a documentos o páginas web que lo contienen.',
|
||||
},
|
||||
},
|
||||
docsFailedNotice: 'no se pudieron indexar los documentos',
|
||||
retry: 'Reintentar',
|
||||
indexingTechnique: {
|
||||
high_quality: 'AC',
|
||||
economy: 'ECO',
|
||||
},
|
||||
indexingMethod: {
|
||||
semantic_search: 'VECTOR',
|
||||
full_text_search: 'TEXTO COMPLETO',
|
||||
hybrid_search: 'HÍBRIDO',
|
||||
invertedIndex: 'INVERTIDO',
|
||||
},
|
||||
mixtureHighQualityAndEconomicTip: 'Se requiere el modelo de reclasificación para la mezcla de bases de conocimiento de alta calidad y económicas.',
|
||||
inconsistentEmbeddingModelTip: 'Se requiere el modelo de reclasificación si los modelos de incrustación de las bases de conocimiento seleccionadas son inconsistentes.',
|
||||
retrievalSettings: 'Configuración de recuperación',
|
||||
rerankSettings: 'Configuración de reclasificación',
|
||||
weightedScore: {
|
||||
title: 'Puntuación ponderada',
|
||||
description: 'Al ajustar los pesos asignados, esta estrategia de reclasificación determina si se debe priorizar la coincidencia semántica o de palabras clave.',
|
||||
semanticFirst: 'Semántica primero',
|
||||
keywordFirst: 'Palabra clave primero',
|
||||
customized: 'Personalizado',
|
||||
semantic: 'Semántico',
|
||||
keyword: 'Palabra clave',
|
||||
},
|
||||
nTo1RetrievalLegacy: 'La recuperación N-a-1 será oficialmente obsoleta a partir de septiembre. Se recomienda utilizar la última recuperación de múltiples rutas para obtener mejores resultados.',
|
||||
nTo1RetrievalLegacyLink: 'Más información',
|
||||
nTo1RetrievalLegacyLinkText: 'La recuperación N-a-1 será oficialmente obsoleta en septiembre.',
|
||||
defaultRetrievalTip: 'De forma predeterminada, se utiliza la recuperación de varias rutas. El conocimiento se recupera de múltiples bases de conocimiento y luego se vuelve a clasificar.',
|
||||
editExternalAPIConfirmWarningContent: {
|
||||
front: 'Esta API de conocimiento externo está vinculada a',
|
||||
end: 'conocimiento externo, y esta modificación se aplicará a todos ellos. ¿Estás seguro de que quieres guardar este cambio?',
|
||||
},
|
||||
editExternalAPIFormWarning: {
|
||||
end: 'Conocimiento externo',
|
||||
front: 'Esta API externa está vinculada a',
|
||||
},
|
||||
deleteExternalAPIConfirmWarningContent: {
|
||||
title: {
|
||||
end: '?',
|
||||
front: 'Borrar',
|
||||
},
|
||||
content: {
|
||||
end: 'conocimiento externo. Al eliminar esta API, se invalidarán todos ellos. ¿Estás seguro de que quieres eliminar esta API?',
|
||||
front: 'Esta API de conocimiento externo está vinculada a',
|
||||
},
|
||||
noConnectionContent: '¿Está seguro de eliminar esta API?',
|
||||
},
|
||||
selectExternalKnowledgeAPI: {
|
||||
placeholder: 'Elegir una API de conocimiento externa',
|
||||
},
|
||||
connectDatasetIntro: {
|
||||
content: {
|
||||
link: 'Más información sobre cómo crear una API externa',
|
||||
front: 'Para conectarse a una base de conocimientos externa, primero debe crear una API externa. Por favor, lea atentamente y consulte',
|
||||
end: '. A continuación, busque el ID de conocimiento correspondiente y rellénelo en el formulario de la izquierda. Si toda la información es correcta, saltará automáticamente a la prueba de recuperación en la base de conocimientos después de hacer clic en el botón conectar.',
|
||||
},
|
||||
learnMore: 'Aprende más',
|
||||
title: 'Cómo conectarse a una base de conocimientos externa',
|
||||
},
|
||||
connectHelper: {
|
||||
helper5: 'con cuidado antes de usar esta función.',
|
||||
helper2: 'Solo se admite la funcionalidad de recuperación',
|
||||
helper1: 'Conéctese a bases de conocimiento externas a través de la API y el ID de la base de conocimiento. Actualmente,',
|
||||
helper3: '. Le recomendamos encarecidamente que',
|
||||
helper4: 'Leer la documentación de ayuda',
|
||||
},
|
||||
externalKnowledgeForm: {
|
||||
connect: 'Conectar',
|
||||
cancel: 'Cancelar',
|
||||
},
|
||||
externalAPIForm: {
|
||||
encrypted: {
|
||||
front: 'Su token de API se cifrará y almacenará mediante',
|
||||
end: 'Tecnología.',
|
||||
},
|
||||
cancel: 'Cancelar',
|
||||
apiKey: 'Clave de API',
|
||||
save: 'Salvar',
|
||||
edit: 'Editar',
|
||||
name: 'Nombre',
|
||||
endpoint: 'Punto de conexión de API',
|
||||
},
|
||||
externalTag: 'Externo',
|
||||
externalKnowledgeDescriptionPlaceholder: 'Describa lo que hay en esta base de conocimientos (opcional)',
|
||||
externalKnowledgeNamePlaceholder: 'Introduzca el nombre de la base de conocimientos',
|
||||
noExternalKnowledge: 'Todavía no hay una API de conocimiento externo, haga clic aquí para crear',
|
||||
editExternalAPIFormTitle: 'Editar la API de conocimiento externo',
|
||||
externalKnowledgeName: 'Nombre del conocimiento externo',
|
||||
allExternalTip: 'Al usar solo conocimiento externo, el usuario puede elegir si desea habilitar el modelo Rerank. Si no se habilita, los fragmentos recuperados se ordenarán en función de las puntuaciones. Cuando las estrategias de recuperación de diferentes bases de conocimiento son inconsistentes, serán inexactas.',
|
||||
createExternalAPI: 'Adición de una API de conocimiento externa',
|
||||
externalKnowledgeId: 'ID de conocimiento externo',
|
||||
connectDataset: 'Conéctese a una base de conocimientos externa',
|
||||
createNewExternalAPI: 'Creación de una nueva API de conocimiento externo',
|
||||
editExternalAPITooltipTitle: 'CONOCIMIENTO VINCULADO',
|
||||
externalAPIPanelTitle: 'API de conocimiento externo',
|
||||
externalKnowledgeDescription: 'Descripción del conocimiento',
|
||||
externalAPIPanelDescription: 'La API de conocimiento externo se utiliza para conectarse a una base de conocimiento fuera de Dify y recuperar conocimiento de esa base de conocimiento.',
|
||||
externalAPI: 'API externa',
|
||||
externalKnowledgeIdPlaceholder: 'Introduzca el ID de conocimiento',
|
||||
learnHowToWriteGoodKnowledgeDescription: 'Aprende a escribir una buena descripción del conocimiento',
|
||||
externalAPIPanelDocumentation: 'Más información sobre cómo crear una API de conocimiento externo',
|
||||
mixtureInternalAndExternalTip: 'El modelo de Rerank es necesario para la mezcla de conocimiento interno y externo.',
|
||||
chunkingMode: {
|
||||
parentChild: 'Padre-hijo',
|
||||
general: 'General',
|
||||
graph: 'gráfico',
|
||||
qa: 'Preguntas y respuestas',
|
||||
},
|
||||
parentMode: {
|
||||
fullDoc: 'Documento completo',
|
||||
paragraph: 'Párrafo',
|
||||
},
|
||||
batchAction: {
|
||||
selected: 'Seleccionado',
|
||||
enable: 'Habilitar',
|
||||
disable: 'Inutilizar',
|
||||
cancel: 'Cancelar',
|
||||
archive: 'Archivo',
|
||||
delete: 'Borrar',
|
||||
},
|
||||
enable: 'Habilitar',
|
||||
documentsDisabled: '{{num}} Documentos desactivados - inactivos durante más de 30 días',
|
||||
preprocessDocument: '{{num}} Documentos de preprocesamiento',
|
||||
localDocs: 'Documentos locales',
|
||||
allKnowledgeDescription: 'Seleccione esta opción para mostrar todos los conocimientos de este espacio de trabajo. Solo el propietario del espacio de trabajo puede administrar todo el conocimiento.',
|
||||
allKnowledge: 'Todo el conocimiento',
|
||||
metadata: {
|
||||
createMetadata: {
|
||||
title: 'Nuevos Metadatos',
|
||||
back: 'Atrás',
|
||||
type: 'Escribe',
|
||||
namePlaceholder: 'Agregar nombre de metadatos',
|
||||
name: 'Nombre',
|
||||
},
|
||||
checkName: {
|
||||
empty: 'El nombre de metadatos no puede estar vacío',
|
||||
invalid: 'El nombre de los metadatos solo puede contener letras minúsculas, números y guiones bajos, y debe comenzar con una letra minúscula.',
|
||||
tooLong: 'El nombre de los metadatos no puede exceder {{max}} caracteres.',
|
||||
},
|
||||
batchEditMetadata: {
|
||||
multipleValue: 'Valor Múltiple',
|
||||
editMetadata: 'Editar Metadatos',
|
||||
editDocumentsNum: 'Editando {{num}} documentos',
|
||||
applyToAllSelectDocument: 'Aplicar a todos los documentos seleccionados',
|
||||
applyToAllSelectDocumentTip: 'Cree automáticamente todos los metadatos editados y nuevos anteriores para todos los documentos seleccionados, de lo contrario, la edición de metadatos solo se aplicará a los documentos que ya los tengan.',
|
||||
},
|
||||
selectMetadata: {
|
||||
manageAction: 'Gestionar',
|
||||
search: 'Buscar metadatos',
|
||||
newAction: 'Nuevos Metadatos',
|
||||
},
|
||||
datasetMetadata: {
|
||||
addMetaData: 'Agregar Metadatos',
|
||||
values: '{{num}} Valores',
|
||||
deleteContent: '¿Estás seguro de que quieres eliminar los metadatos "{{name}}"?',
|
||||
rename: 'Renombrar',
|
||||
deleteTitle: 'Confirme para eliminar',
|
||||
namePlaceholder: 'Nombre de metadatos',
|
||||
builtInDescription: 'Los metadatos integrados se extraen y generan automáticamente. Deben estar habilitados antes de su uso y no se pueden editar.',
|
||||
name: 'Nombre',
|
||||
description: 'Puedes gestionar todos los metadatos en este conocimiento aquí. Las modificaciones se sincronizarán en todos los documentos.',
|
||||
disabled: 'desactivar',
|
||||
builtIn: 'Integrado',
|
||||
},
|
||||
documentMetadata: {
|
||||
technicalParameters: 'Parámetros técnicos',
|
||||
startLabeling: 'Comenzar a etiquetar',
|
||||
documentInformation: 'Información del documento',
|
||||
metadataToolTip: 'Los metadatos sirven como un filtro crítico que mejora la precisión y relevancia de la recuperación de información. Puede modificar y agregar metadatos para este documento aquí.',
|
||||
},
|
||||
metadata: 'Metadatos',
|
||||
chooseTime: 'Elige una hora...',
|
||||
addMetadata: 'Agregar Metadatos',
|
||||
},
|
||||
embeddingModelNotAvailable: 'El modelo de embeddings no está disponible.',
|
||||
externalKnowledgeBase: 'Base de conocimientos externa',
|
||||
createFromPipeline: 'Crear desde Knowledge Pipeline',
|
||||
updated: 'Actualizado',
|
||||
serviceApi: {
|
||||
card: {
|
||||
apiReference: 'Referencia de la API',
|
||||
apiKey: 'Clave API',
|
||||
endpoint: 'Punto de enlace de la API de servicio',
|
||||
title: 'API del servicio de backend',
|
||||
},
|
||||
enabled: 'En servicio',
|
||||
title: 'API de servicios',
|
||||
disabled: 'Discapacitado',
|
||||
},
|
||||
docAllEnabled_one: 'Documento {{count}} activado',
|
||||
docAllEnabled_other: 'Todos los documentos {{count}} habilitados',
|
||||
partialEnabled_one: 'Total de {{count}} documentos, {{num}} disponibles',
|
||||
partialEnabled_other: 'Total de {{count}} documentos, {{num}} disponibles',
|
||||
}
|
||||
|
||||
export default translation
|
||||
76
dify/web/i18n/es-ES/education.ts
Normal file
76
dify/web/i18n/es-ES/education.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
const translation = {
|
||||
toVerifiedTip: {
|
||||
coupon: 'cupón exclusivo del 100%',
|
||||
end: 'para el Plan Profesional de Dify.',
|
||||
front: 'Ahora eres elegible para el estado de Educación Verificada. Por favor, introduce tu información educativa a continuación para completar el proceso y recibir un',
|
||||
},
|
||||
form: {
|
||||
schoolName: {
|
||||
title: 'El nombre de tu escuela',
|
||||
placeholder: 'Ingrese el nombre oficial y completo de su escuela',
|
||||
},
|
||||
schoolRole: {
|
||||
option: {
|
||||
student: 'Estudiante',
|
||||
administrator: 'Administrador escolar',
|
||||
teacher: 'Profesor',
|
||||
},
|
||||
title: 'Tu rol en la escuela',
|
||||
},
|
||||
terms: {
|
||||
desc: {
|
||||
termsOfService: 'Términos de Servicio',
|
||||
privacyPolicy: 'Política de privacidad',
|
||||
and: 'y',
|
||||
front: 'Su información y uso del estado de Educación Verificada están sujetos a nuestra',
|
||||
end: '. Al enviar:',
|
||||
},
|
||||
option: {
|
||||
age: 'Confirmo que tengo al menos 18 años',
|
||||
inSchool: 'Confirmo que estoy inscrito o empleado en la institución indicada. Dify puede solicitar prueba de inscripción/empleo. Si falseo mi elegibilidad, acepto pagar cualquier tarifa que se haya eximido inicialmente en función de mi estado educativo.',
|
||||
},
|
||||
title: 'Términos y Acuerdos',
|
||||
},
|
||||
},
|
||||
emailLabel: 'Tu correo electrónico actual',
|
||||
submit: 'Enviar',
|
||||
submitError: 'Error en el envío del formulario. Por favor, inténtelo de nuevo más tarde.',
|
||||
successTitle: 'Tienes la educación Dify verificada',
|
||||
toVerified: 'Verifica la educación',
|
||||
successContent: 'Hemos emitido un cupón de descuento del 100% para el plan Dify Professional en tu cuenta. El cupón es válido por un año, por favor utilízalo dentro del período de validez.',
|
||||
learn: 'Aprende cómo obtener la verificación de la educación',
|
||||
rejectTitle: 'Su verificación educativa de Dify ha sido rechazada.',
|
||||
currentSigned: 'ACTUALMENTE CONECTADO COMO',
|
||||
rejectContent: 'Desafortunadamente, no eres elegible para el estado de Educación Verificada y, por lo tanto, no puedes recibir el exclusivo cupón del 100% para el Plan Profesional de Dify si utilizas esta dirección de correo electrónico.',
|
||||
notice: {
|
||||
expired: {
|
||||
summary: {
|
||||
line1: 'Todavía puedes acceder y usar Dify.',
|
||||
line2: 'Sin embargo, ya no eres elegible para nuevos cupones de descuento educativo.',
|
||||
},
|
||||
title: 'Tu estado de educación ha expirado',
|
||||
},
|
||||
isAboutToExpire: {
|
||||
summary: 'No te preocupes, esto no afectará tu suscripción actual, pero no obtendrás el descuento educativo cuando se renueve a menos que verifiques tu estado nuevamente.',
|
||||
title: 'Tu estado educativo expirará el {{date}}',
|
||||
},
|
||||
stillInEducation: {
|
||||
title: '¿Aún en educación?',
|
||||
expired: 'Verifica de nuevo ahora para obtener un nuevo cupón para el próximo año académico. Lo añadiremos a tu cuenta y podrás usarlo para la próxima actualización.',
|
||||
isAboutToExpire: 'Verifica de nuevo ahora para obtener un nuevo cupón para el próximo año académico. Se guardará en tu cuenta y estará listo para usar en tu próxima renovación.',
|
||||
},
|
||||
alreadyGraduated: {
|
||||
title: '¿Ya te has graduado?',
|
||||
isAboutToExpire: 'Tu suscripción actual seguirá activa. Cuando termine, serás trasladado al plan Sandbox, o puedes actualizar en cualquier momento para restaurar el acceso completo a las funciones de pago.',
|
||||
expired: 'Siéntete libre de actualizar en cualquier momento para obtener acceso completo a las funciones de pago.',
|
||||
},
|
||||
action: {
|
||||
reVerify: 'Re-verificar',
|
||||
upgrade: 'Actualizar',
|
||||
dismiss: 'Descartar',
|
||||
},
|
||||
dateFormat: 'DD/MM/YYYY',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
44
dify/web/i18n/es-ES/explore.ts
Normal file
44
dify/web/i18n/es-ES/explore.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const translation = {
|
||||
title: 'Explorar',
|
||||
sidebar: {
|
||||
discovery: 'Descubrimiento',
|
||||
chat: 'Chat',
|
||||
workspace: 'Espacio de trabajo',
|
||||
action: {
|
||||
pin: 'Anclar',
|
||||
unpin: 'Desanclar',
|
||||
rename: 'Renombrar',
|
||||
delete: 'Eliminar',
|
||||
},
|
||||
delete: {
|
||||
title: 'Eliminar aplicación',
|
||||
content: '¿Estás seguro de que quieres eliminar esta aplicación?',
|
||||
},
|
||||
},
|
||||
apps: {
|
||||
title: 'Explorar aplicaciones de Dify',
|
||||
description: 'Utiliza estas aplicaciones de plantilla al instante o personaliza tus propias aplicaciones basadas en las plantillas.',
|
||||
allCategories: 'Recomendado',
|
||||
},
|
||||
appCard: {
|
||||
addToWorkspace: 'Agregar al espacio de trabajo',
|
||||
customize: 'Personalizar',
|
||||
},
|
||||
appCustomize: {
|
||||
title: 'Crear aplicación a partir de {{name}}',
|
||||
subTitle: 'Icono y nombre de la aplicación',
|
||||
nameRequired: 'El nombre de la aplicación es obligatorio',
|
||||
},
|
||||
category: {
|
||||
Assistant: 'Asistente',
|
||||
Writing: 'Escritura',
|
||||
Translate: 'Traducción',
|
||||
Programming: 'Programación',
|
||||
HR: 'Recursos Humanos',
|
||||
Agent: 'Agente',
|
||||
Workflow: 'Flujo de trabajo',
|
||||
Entertainment: 'Entretenimiento',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
8
dify/web/i18n/es-ES/layout.ts
Normal file
8
dify/web/i18n/es-ES/layout.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
const translation = {
|
||||
sidebar: {
|
||||
collapseSidebar: 'Contraer barra lateral',
|
||||
expandSidebar: 'Expandir barra lateral',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
126
dify/web/i18n/es-ES/login.ts
Normal file
126
dify/web/i18n/es-ES/login.ts
Normal file
@@ -0,0 +1,126 @@
|
||||
const translation = {
|
||||
pageTitle: '¡Hola, vamos a empezar!👋',
|
||||
welcome: 'Bienvenido a Dify, por favor inicia sesión para continuar.',
|
||||
email: 'Correo electrónico',
|
||||
emailPlaceholder: 'Tu correo electrónico',
|
||||
password: 'Contraseña',
|
||||
passwordPlaceholder: 'Tu contraseña',
|
||||
name: 'Nombre de usuario',
|
||||
namePlaceholder: 'Tu nombre de usuario',
|
||||
forget: '¿Olvidaste tu contraseña?',
|
||||
signBtn: 'Iniciar sesión',
|
||||
installBtn: 'Configurar',
|
||||
setAdminAccount: 'Configurando una cuenta de administrador',
|
||||
setAdminAccountDesc: 'Privilegios máximos para la cuenta de administrador, que se puede utilizar para crear aplicaciones y administrar proveedores de LLM, etc.',
|
||||
createAndSignIn: 'Crear e iniciar sesión',
|
||||
oneMoreStep: 'Un paso más',
|
||||
createSample: 'Con esta información, crearemos una aplicación de muestra para ti',
|
||||
invitationCode: 'Código de invitación',
|
||||
invitationCodePlaceholder: 'Tu código de invitación',
|
||||
interfaceLanguage: 'Idioma de interfaz',
|
||||
timezone: 'Zona horaria',
|
||||
go: 'Ir a Dify',
|
||||
sendUsMail: 'Envíanos un correo electrónico con tu presentación y nosotros nos encargaremos de la solicitud de invitación.',
|
||||
acceptPP: 'He leído y acepto la política de privacidad',
|
||||
reset: 'Por favor, ejecuta el siguiente comando para restablecer tu contraseña',
|
||||
withGitHub: 'Continuar con GitHub',
|
||||
withGoogle: 'Continuar con Google',
|
||||
rightTitle: 'Desbloquea todo el potencial de LLM',
|
||||
rightDesc: 'Construye de manera sencilla aplicaciones de IA visualmente cautivadoras, operables y mejorables.',
|
||||
tos: 'Términos de servicio',
|
||||
pp: 'Política de privacidad',
|
||||
tosDesc: 'Al registrarte, aceptas nuestros',
|
||||
goToInit: 'Si no has inicializado la cuenta, por favor ve a la página de inicialización',
|
||||
dontHave: '¿No tienes?',
|
||||
invalidInvitationCode: 'Código de invitación inválido',
|
||||
accountAlreadyInited: 'La cuenta ya está inicializada',
|
||||
forgotPassword: '¿Olvidaste tu contraseña?',
|
||||
resetLinkSent: 'Enlace de restablecimiento enviado',
|
||||
sendResetLink: 'Enviar enlace de restablecimiento',
|
||||
backToSignIn: 'Volver a iniciar sesión',
|
||||
forgotPasswordDesc: 'Por favor, ingresa tu dirección de correo electrónico para restablecer tu contraseña. Te enviaremos un correo electrónico con instrucciones sobre cómo restablecer tu contraseña.',
|
||||
checkEmailForResetLink: 'Por favor, revisa tu correo electrónico para encontrar un enlace para restablecer tu contraseña. Si no aparece en unos minutos, asegúrate de revisar tu carpeta de spam.',
|
||||
passwordChanged: 'Inicia sesión ahora',
|
||||
changePassword: 'Cambiar contraseña',
|
||||
changePasswordTip: 'Por favor, ingresa una nueva contraseña para tu cuenta',
|
||||
invalidToken: 'Token inválido o expirado',
|
||||
confirmPassword: 'Confirmar contraseña',
|
||||
confirmPasswordPlaceholder: 'Confirma tu nueva contraseña',
|
||||
passwordChangedTip: 'Tu contraseña se ha cambiado correctamente',
|
||||
error: {
|
||||
emailEmpty: 'Se requiere una dirección de correo electrónico',
|
||||
emailInValid: 'Por favor, ingresa una dirección de correo electrónico válida',
|
||||
nameEmpty: 'Se requiere un nombre',
|
||||
passwordEmpty: 'Se requiere una contraseña',
|
||||
passwordLengthInValid: 'La contraseña debe tener al menos 8 caracteres',
|
||||
passwordInvalid: 'La contraseña debe contener letras y números, y tener una longitud mayor a 8',
|
||||
registrationNotAllowed: 'Cuenta no encontrada. Póngase en contacto con el administrador del sistema para registrarse.',
|
||||
invalidEmailOrPassword: 'Correo electrónico o contraseña inválidos.',
|
||||
},
|
||||
license: {
|
||||
tip: 'Antes de comenzar con Dify Community Edition, lee la',
|
||||
link: 'Licencia de código abierto de GitHub',
|
||||
},
|
||||
join: 'Unirse',
|
||||
joinTipStart: 'Te invita a unirte al equipo de',
|
||||
joinTipEnd: 'en Dify',
|
||||
invalid: 'El enlace ha expirado',
|
||||
explore: 'Explorar Dify',
|
||||
activatedTipStart: 'Te has unido al equipo de',
|
||||
activatedTipEnd: '',
|
||||
activated: 'Inicia sesión ahora',
|
||||
adminInitPassword: 'Contraseña de inicialización de administrador',
|
||||
validate: 'Validar',
|
||||
checkCode: {
|
||||
verify: 'Verificar',
|
||||
didNotReceiveCode: '¿No recibiste el código?',
|
||||
verificationCodePlaceholder: 'Ingresa el código de 6 dígitos',
|
||||
checkYourEmail: 'Revisa tu correo electrónico',
|
||||
emptyCode: 'Se requiere código',
|
||||
useAnotherMethod: 'Usar otro método',
|
||||
resend: 'Reenviar',
|
||||
verificationCode: 'Código de verificación',
|
||||
validTime: 'Ten en cuenta que el código es válido durante 5 minutos',
|
||||
invalidCode: 'Código no válido',
|
||||
tipsPrefix: 'Enviamos un código de verificación a',
|
||||
},
|
||||
or: 'O',
|
||||
back: 'Atrás',
|
||||
continueWithCode: 'Continuar con el código',
|
||||
usePassword: 'Usar contraseña',
|
||||
changePasswordBtn: 'Establecer una contraseña',
|
||||
withSSO: 'Continuar con SSO',
|
||||
sendVerificationCode: 'Enviar código de verificación',
|
||||
backToLogin: 'Volver al inicio de sesión',
|
||||
resetPassword: 'Restablecer contraseña',
|
||||
enterYourName: 'Por favor, introduzca su nombre de usuario',
|
||||
useVerificationCode: 'Usar código de verificación',
|
||||
resetPasswordDesc: 'Escriba el correo electrónico que utilizó para registrarse en Dify y le enviaremos un correo electrónico de restablecimiento de contraseña.',
|
||||
noLoginMethod: 'Método de autenticación no configurado',
|
||||
setYourAccount: 'Configura tu cuenta',
|
||||
noLoginMethodTip: 'Póngase en contacto con el administrador del sistema para agregar un método de autenticación.',
|
||||
licenseInactive: 'Licencia inactiva',
|
||||
licenseInactiveTip: 'La licencia de Dify Enterprise para su espacio de trabajo está inactiva. Póngase en contacto con su administrador para seguir utilizando Dify.',
|
||||
licenseExpired: 'Licencia caducada',
|
||||
licenseLost: 'Licencia perdida',
|
||||
licenseExpiredTip: 'La licencia de Dify Enterprise para su espacio de trabajo ha caducado. Póngase en contacto con su administrador para seguir utilizando Dify.',
|
||||
licenseLostTip: 'No se pudo conectar el servidor de licencias de Dife. Póngase en contacto con su administrador para seguir utilizando Dify.',
|
||||
webapp: {
|
||||
disabled: 'La autenticación de la aplicación web está desactivada. Por favor, contacte al administrador del sistema para habilitarla. Puede intentar usar la aplicación directamente.',
|
||||
noLoginMethodTip: 'Por favor, contacta al administrador del sistema para agregar un método de autenticación.',
|
||||
noLoginMethod: 'Método de autenticación no configurado para la aplicación web',
|
||||
login: 'Iniciar sesión',
|
||||
},
|
||||
signup: {
|
||||
signIn: 'Iniciar sesión',
|
||||
haveAccount: '¿Ya tienes una cuenta?',
|
||||
createAccount: 'Crea tu cuenta',
|
||||
noAccount: '¿No tienes una cuenta?',
|
||||
signUp: 'Regístrate',
|
||||
welcome: '👋 ¡Bienvenido! Por favor, completa los detalles para comenzar.',
|
||||
verifyMail: 'Continuar con el código de verificación',
|
||||
},
|
||||
pageTitleForE: '¡Hola, vamos a empezar!',
|
||||
}
|
||||
|
||||
export default translation
|
||||
27
dify/web/i18n/es-ES/oauth.ts
Normal file
27
dify/web/i18n/es-ES/oauth.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
const translation = {
|
||||
tips: {
|
||||
needLogin: 'Por favor inicie sesión para autorizar',
|
||||
notLoggedIn: 'Esta aplicación quiere acceder a su cuenta de Dify Cloud',
|
||||
loggedIn: 'Esta aplicación quiere acceder a la siguiente información de su cuenta de Dify Cloud.',
|
||||
common: 'Respetamos su privacidad y solo utilizaremos esta información para mejorar su experiencia con nuestras herramientas para desarrolladores.',
|
||||
},
|
||||
scopes: {
|
||||
avatar: 'Avatar',
|
||||
name: 'Nombre',
|
||||
timezone: 'Zona horaria',
|
||||
languagePreference: 'Preferencia de idioma',
|
||||
email: 'Correo electrónico',
|
||||
},
|
||||
error: {
|
||||
authAppInfoFetchFailed: 'No se pudo obtener la información de la aplicación para la autorización',
|
||||
authorizeFailed: 'La autorización falló',
|
||||
invalidParams: 'Parámetros inválidos',
|
||||
},
|
||||
continue: 'Continuar',
|
||||
unknownApp: 'Aplicación Desconocida',
|
||||
switchAccount: 'Cambiar de cuenta',
|
||||
login: 'Iniciar sesión',
|
||||
connect: 'Conectar a',
|
||||
}
|
||||
|
||||
export default translation
|
||||
40
dify/web/i18n/es-ES/pipeline.ts
Normal file
40
dify/web/i18n/es-ES/pipeline.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
const translation = {
|
||||
common: {
|
||||
publishAsPipeline: {
|
||||
name: 'Nombre e icono de la tubería',
|
||||
description: 'Descripción del conocimiento',
|
||||
namePlaceholder: 'Ingrese el nombre de esta canalización de conocimiento. (Obligatorio)',
|
||||
descriptionPlaceholder: 'Ingrese la descripción de este canal de conocimiento. (Opcional)',
|
||||
},
|
||||
reRun: 'Repetición',
|
||||
processing: 'Tratamiento',
|
||||
publishAs: 'Publicar como una canalización de conocimiento',
|
||||
confirmPublish: 'Confirmar publicación',
|
||||
goToAddDocuments: 'Ir a agregar documentos',
|
||||
confirmPublishContent: 'Después de publicar correctamente la canalización de conocimiento, la estructura de fragmentos de esta base de conocimiento no se puede modificar. ¿Estás seguro de que quieres publicarlo?',
|
||||
preparingDataSource: 'Preparar el origen de datos',
|
||||
testRun: 'Ejecución de prueba',
|
||||
},
|
||||
inputField: {
|
||||
manage: 'Gestionar',
|
||||
create: 'Crear campo de entrada de usuario',
|
||||
},
|
||||
publishToast: {
|
||||
title: 'Este pipeline aún no se ha publicado',
|
||||
desc: 'Cuando la canalización no se publica, puede modificar la estructura de fragmentos en el nodo de la base de conocimiento y la orquestación y los cambios de la canalización se guardarán automáticamente como borrador.',
|
||||
},
|
||||
result: {
|
||||
resultPreview: {
|
||||
loading: 'Tratamiento... Espera',
|
||||
viewDetails: 'Ver detalles',
|
||||
error: 'Error ocurrido durante la ejecución',
|
||||
footerTip: 'En modo de prueba, previsualiza hasta {{count}} fragmentos',
|
||||
},
|
||||
},
|
||||
ragToolSuggestions: {
|
||||
title: 'Sugerencias para el GAR',
|
||||
noRecommendationPlugins: 'No hay complementos recomendados, encuentra más en <CustomLink>Marketplace</CustomLink>',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
26
dify/web/i18n/es-ES/plugin-tags.ts
Normal file
26
dify/web/i18n/es-ES/plugin-tags.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
const translation = {
|
||||
tags: {
|
||||
image: 'Imagen',
|
||||
agent: 'Agente',
|
||||
medical: 'Médico',
|
||||
weather: 'Tiempo',
|
||||
design: 'Diseño',
|
||||
videos: 'Vídeos',
|
||||
education: 'Educación',
|
||||
finance: 'Finanzas',
|
||||
entertainment: 'Diversión',
|
||||
social: 'Social',
|
||||
travel: 'Viajar',
|
||||
utilities: 'Utilidades',
|
||||
search: 'Buscar',
|
||||
news: 'Noticia',
|
||||
business: 'Negocio',
|
||||
other: 'Otro',
|
||||
productivity: 'Productividad',
|
||||
rag: 'TRAPO',
|
||||
},
|
||||
allTags: 'Todas las etiquetas',
|
||||
searchTags: 'Etiquetas de búsqueda',
|
||||
}
|
||||
|
||||
export default translation
|
||||
186
dify/web/i18n/es-ES/plugin-trigger.ts
Normal file
186
dify/web/i18n/es-ES/plugin-trigger.ts
Normal file
@@ -0,0 +1,186 @@
|
||||
const translation = {
|
||||
subscription: {
|
||||
title: 'Suscripciones',
|
||||
listNum: 'suscripciones de {{num}}',
|
||||
empty: {
|
||||
title: 'Sin suscripciones',
|
||||
button: 'Nueva suscripción',
|
||||
},
|
||||
createButton: {
|
||||
oauth: 'Nueva suscripción con OAuth',
|
||||
apiKey: 'Nueva suscripción con clave API',
|
||||
manual: 'Pega la URL para crear una nueva suscripción',
|
||||
},
|
||||
createSuccess: 'Suscripción creada con éxito',
|
||||
createFailed: 'No se pudo crear la suscripción',
|
||||
maxCount: 'Máximo {{num}} suscripciones',
|
||||
selectPlaceholder: 'Seleccionar suscripción',
|
||||
noSubscriptionSelected: 'No se ha seleccionado ninguna suscripción',
|
||||
subscriptionRemoved: 'Suscripción eliminada',
|
||||
list: {
|
||||
title: 'Suscripciones',
|
||||
addButton: 'Agregar',
|
||||
tip: 'Recibir eventos mediante suscripción',
|
||||
item: {
|
||||
enabled: 'Habilitado',
|
||||
disabled: 'Desactivado',
|
||||
credentialType: {
|
||||
api_key: 'Clave de API',
|
||||
oauth2: 'OAuth',
|
||||
unauthorized: 'Manual',
|
||||
},
|
||||
actions: {
|
||||
delete: 'Eliminar',
|
||||
deleteConfirm: {
|
||||
title: '¿Eliminar {{name}}?',
|
||||
success: 'Suscripción {{name}} eliminada con éxito',
|
||||
error: 'Error al eliminar la suscripción {{name}}',
|
||||
content: 'Una vez eliminada, esta suscripción no se puede recuperar. Por favor, confirme.',
|
||||
contentWithApps: 'La suscripción actual está referenciada por {{count}} aplicaciones. Eliminarla hará que las aplicaciones configuradas dejen de recibir eventos de suscripción.',
|
||||
confirm: 'Confirmar eliminación',
|
||||
cancel: 'Cancelar',
|
||||
confirmInputWarning: 'Por favor, ingrese el nombre correcto para confirmar.',
|
||||
confirmInputPlaceholder: 'Introduce "{{name}}" para confirmar.',
|
||||
confirmInputTip: 'Por favor, introduzca “{{name}}” para confirmar.',
|
||||
},
|
||||
},
|
||||
status: {
|
||||
active: 'activo',
|
||||
inactive: 'inactivo',
|
||||
},
|
||||
usedByNum: 'Utilizado por {{num}} flujos de trabajo',
|
||||
noUsed: 'No se utilizó ningún flujo de trabajo',
|
||||
},
|
||||
},
|
||||
addType: {
|
||||
title: 'Añadir suscripción',
|
||||
description: 'Elige cómo quieres crear tu suscripción de activador',
|
||||
options: {
|
||||
apikey: {
|
||||
title: 'Crear con clave API',
|
||||
description: 'Crear suscripción automáticamente usando credenciales de API',
|
||||
},
|
||||
oauth: {
|
||||
title: 'Crear con OAuth',
|
||||
description: 'Autorizar con una plataforma de terceros para crear una suscripción',
|
||||
clientSettings: 'Configuración del cliente OAuth',
|
||||
clientTitle: 'Cliente OAuth',
|
||||
default: 'predeterminado',
|
||||
custom: 'Personalizado',
|
||||
},
|
||||
manual: {
|
||||
title: 'Configuración manual',
|
||||
description: 'Pega la URL para crear una nueva suscripción',
|
||||
tip: 'Configurar la URL en la plataforma de terceros manualmente',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
modal: {
|
||||
steps: {
|
||||
verify: 'Verificar',
|
||||
configuration: 'Configuración',
|
||||
},
|
||||
common: {
|
||||
cancel: 'Cancelar',
|
||||
back: 'Atrás',
|
||||
next: 'Siguiente',
|
||||
create: 'Crear',
|
||||
verify: 'Verificar',
|
||||
authorize: 'Autorizar',
|
||||
creating: 'Creando...',
|
||||
verifying: 'Verificando...',
|
||||
authorizing: 'Autorizando...',
|
||||
},
|
||||
oauthRedirectInfo: 'Dado que no se encontraron secretos de cliente del sistema para este proveedor de herramientas, es necesario configurarlo manualmente; para redirect_uri, por favor use',
|
||||
apiKey: {
|
||||
title: 'Crear con clave API',
|
||||
verify: {
|
||||
title: 'Verificar credenciales',
|
||||
description: 'Por favor, proporciona tus credenciales de API para verificar el acceso',
|
||||
error: 'La verificación de las credenciales falló. Por favor, revisa tu clave API.',
|
||||
success: 'Credenciales verificadas con éxito',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Configurar suscripción',
|
||||
description: 'Configura los parámetros de tu suscripción',
|
||||
},
|
||||
},
|
||||
oauth: {
|
||||
title: 'Crear con OAuth',
|
||||
authorization: {
|
||||
title: 'Autorización OAuth',
|
||||
description: 'Autoriza a Dify para acceder a tu cuenta',
|
||||
redirectUrl: 'URL de redirección',
|
||||
redirectUrlHelp: 'Utiliza esta URL en la configuración de tu aplicación OAuth',
|
||||
authorizeButton: 'Autorizar con {{provider}}',
|
||||
waitingAuth: 'Esperando autorización...',
|
||||
authSuccess: 'Autorización exitosa',
|
||||
authFailed: 'Error al obtener la información de autorización OAuth',
|
||||
waitingJump: 'Autorizado, esperando para saltar',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Configurar suscripción',
|
||||
description: 'Configura los parámetros de tu suscripción después de la autorización',
|
||||
success: 'Configuración de OAuth exitosa',
|
||||
failed: 'La configuración de OAuth falló',
|
||||
},
|
||||
remove: {
|
||||
success: 'Eliminación de OAuth exitosa',
|
||||
failed: 'Error al eliminar OAuth',
|
||||
},
|
||||
save: {
|
||||
success: 'Configuración de OAuth guardada con éxito',
|
||||
},
|
||||
},
|
||||
manual: {
|
||||
title: 'Configuración manual',
|
||||
description: 'Configura tu suscripción al webhook manualmente',
|
||||
logs: {
|
||||
title: 'Registros de solicitudes',
|
||||
request: 'Solicitud',
|
||||
loading: 'Esperando solicitud de {{pluginName}}...',
|
||||
},
|
||||
},
|
||||
form: {
|
||||
subscriptionName: {
|
||||
label: 'Nombre de la suscripción',
|
||||
placeholder: 'Ingrese el nombre de la suscripción',
|
||||
required: 'Se requiere el nombre de la suscripción',
|
||||
},
|
||||
callbackUrl: {
|
||||
label: 'URL de retorno de llamada',
|
||||
description: 'Esta URL recibirá eventos de webhook',
|
||||
tooltip: 'Proporcione un endpoint accesible públicamente que pueda recibir solicitudes de devolución de llamada del proveedor del activador.',
|
||||
placeholder: 'Generando...',
|
||||
privateAddressWarning: 'Esta URL parece ser una dirección interna, lo que puede hacer que las solicitudes del webhook fallen. Puede cambiar TRIGGER_URL a una dirección pública.',
|
||||
},
|
||||
},
|
||||
errors: {
|
||||
createFailed: 'No se pudo crear la suscripción',
|
||||
verifyFailed: 'No se pudieron verificar las credenciales',
|
||||
authFailed: 'Autorización fallida',
|
||||
networkError: 'Error de red, por favor intenta de nuevo',
|
||||
},
|
||||
},
|
||||
events: {
|
||||
title: 'Eventos Disponibles',
|
||||
description: 'Eventos a los que este complemento de activación puede suscribirse',
|
||||
empty: 'No hay eventos disponibles',
|
||||
event: 'Evento',
|
||||
events: 'Eventos',
|
||||
actionNum: '{{num}} {{event}} INCLUIDO',
|
||||
item: {
|
||||
parameters: 'parámetros {{count}}',
|
||||
noParameters: 'Sin parámetros',
|
||||
},
|
||||
output: 'Salida',
|
||||
},
|
||||
node: {
|
||||
status: {
|
||||
warning: 'Desconectar',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
354
dify/web/i18n/es-ES/plugin.ts
Normal file
354
dify/web/i18n/es-ES/plugin.ts
Normal file
@@ -0,0 +1,354 @@
|
||||
const translation = {
|
||||
category: {
|
||||
bundles: 'Paquetes',
|
||||
all: 'Todo',
|
||||
extensions: 'Extensiones',
|
||||
tools: 'Herramientas',
|
||||
agents: 'Estrategias de los agentes',
|
||||
models: 'Modelos',
|
||||
datasources: 'Fuentes de datos',
|
||||
triggers: 'Desencadenantes',
|
||||
},
|
||||
categorySingle: {
|
||||
bundle: 'Haz',
|
||||
extension: 'Extensión',
|
||||
tool: 'Herramienta',
|
||||
model: 'Modelo',
|
||||
agent: 'Estrategia del agente',
|
||||
datasource: 'Fuente de datos',
|
||||
trigger: 'Disparador',
|
||||
},
|
||||
list: {
|
||||
source: {
|
||||
marketplace: 'Instalar desde Marketplace',
|
||||
github: 'Instalar desde GitHub',
|
||||
local: 'Instalar desde el archivo de paquete local',
|
||||
},
|
||||
noInstalled: 'No hay plugins instalados',
|
||||
notFound: 'No se han encontrado plugins',
|
||||
},
|
||||
source: {
|
||||
marketplace: 'Mercado',
|
||||
local: 'Archivo de paquete local',
|
||||
github: 'GitHub (en inglés)',
|
||||
},
|
||||
detailPanel: {
|
||||
categoryTip: {
|
||||
local: 'Plugin Local',
|
||||
marketplace: 'Instalado desde Marketplace',
|
||||
github: 'Instalado desde Github',
|
||||
debugging: 'Complemento de depuración',
|
||||
},
|
||||
operation: {
|
||||
viewDetail: 'Ver Detalle',
|
||||
detail: 'Detalles',
|
||||
checkUpdate: 'Comprobar actualización',
|
||||
install: 'Instalar',
|
||||
remove: 'Eliminar',
|
||||
info: 'Información del plugin',
|
||||
update: 'Actualizar',
|
||||
back: 'Atrás',
|
||||
},
|
||||
toolSelector: {
|
||||
toolLabel: 'Herramienta',
|
||||
paramsTip1: 'Controla los parámetros de inferencia de LLM.',
|
||||
settings: 'CONFIGURACIÓN DEL USUARIO',
|
||||
unsupportedContent2: 'Haga clic para cambiar de versión.',
|
||||
descriptionPlaceholder:
|
||||
'Breve descripción del propósito de la herramienta, por ejemplo, obtener la temperatura para una ubicación específica.',
|
||||
empty:
|
||||
'Haga clic en el botón \'+\' para agregar herramientas. Puede agregar varias herramientas.',
|
||||
paramsTip2:
|
||||
'Cuando \'Auto\' está desactivado, se utiliza el valor predeterminado.',
|
||||
uninstalledTitle: 'Herramienta no instalada',
|
||||
descriptionLabel: 'Descripción de la herramienta',
|
||||
unsupportedContent:
|
||||
'La versión del plugin instalado no proporciona esta acción.',
|
||||
auto: 'Auto',
|
||||
title: 'Agregar herramienta',
|
||||
placeholder: 'Seleccione una herramienta...',
|
||||
uninstalledContent:
|
||||
'Este plugin se instala desde el repositorio local/GitHub. Úselo después de la instalación.',
|
||||
unsupportedTitle: 'Acción no admitida',
|
||||
params: 'CONFIGURACIÓN DE RAZONAMIENTO',
|
||||
uninstalledLink: 'Administrar en Plugins',
|
||||
toolSetting: 'Configuraciones de la herramienta',
|
||||
unsupportedMCPTool:
|
||||
'La versión actual del plugin de estrategia del agente seleccionado no es compatible con las herramientas MCP.',
|
||||
},
|
||||
endpointDeleteContent: '¿Te gustaría eliminar {{nombre}}?',
|
||||
endpointDisableTip: 'Deshabilitar punto de conexión',
|
||||
endpointDeleteTip: 'Eliminar punto de conexión',
|
||||
strategyNum: '{{num}} {{estrategia}} INCLUIDO',
|
||||
disabled: 'Deshabilitado',
|
||||
serviceOk: 'Servicio OK',
|
||||
endpointDisableContent: '¿Te gustaría desactivar {{name}}?',
|
||||
switchVersion: 'Versión del interruptor',
|
||||
endpointsTip:
|
||||
'Este complemento proporciona funcionalidades específicas a través de puntos finales, y puede configurar varios conjuntos de puntos finales para el espacio de trabajo actual.',
|
||||
configureModel: 'Configurar modelo',
|
||||
actionNum: '{{num}} {{acción}} INCLUIDO',
|
||||
configureTool: 'Herramienta de configuración',
|
||||
endpointModalDesc:
|
||||
'Una vez configurado, se pueden utilizar las funciones proporcionadas por el complemento a través de los puntos finales de la API.',
|
||||
modelNum: '{{num}} MODELOS INCLUIDOS',
|
||||
endpoints: 'Extremos',
|
||||
endpointModalTitle: 'Punto de conexión de configuración',
|
||||
endpointsDocLink: 'Ver el documento',
|
||||
endpointsEmpty:
|
||||
'Haga clic en el botón \'+\' para agregar un punto de conexión',
|
||||
configureApp: 'Configurar la aplicación',
|
||||
deprecation: {
|
||||
reason: {
|
||||
ownershipTransferred: 'propiedad transferida',
|
||||
noMaintainer: 'sin mantenedor',
|
||||
businessAdjustments: 'ajustes comerciales',
|
||||
},
|
||||
noReason:
|
||||
'Este complemento ha sido descontinuado y ya no se actualizará.',
|
||||
onlyReason:
|
||||
'Este complemento ha sido desaprobado debido a {{deprecatedReason}} y ya no se actualizará.',
|
||||
fullMessage:
|
||||
'Este complemento ha sido descontinuado debido a {{deprecatedReason}}, y ya no será actualizado. Por favor, utilice <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> en su lugar.',
|
||||
},
|
||||
},
|
||||
debugInfo: {
|
||||
title: 'Depuración',
|
||||
viewDocs: 'Ver documentos',
|
||||
},
|
||||
privilege: {
|
||||
everyone: 'Todos',
|
||||
title: 'Preferencias del plugin',
|
||||
whoCanDebug: '¿Quién puede depurar plugins?',
|
||||
admins: 'Administradores',
|
||||
whoCanInstall: '¿Quién puede instalar y administrar complementos?',
|
||||
noone: 'Nadie',
|
||||
},
|
||||
pluginInfoModal: {
|
||||
repository: 'Depósito',
|
||||
title: 'Información del plugin',
|
||||
packageName: 'Paquete',
|
||||
release: 'Lanzamiento',
|
||||
},
|
||||
action: {
|
||||
checkForUpdates: 'Buscar actualizaciones',
|
||||
deleteContentLeft: '¿Le gustaría eliminar',
|
||||
deleteContentRight: '¿Complemento?',
|
||||
usedInApps: 'Este plugin se está utilizando en las aplicaciones {{num}}.',
|
||||
delete: 'Eliminar plugin',
|
||||
pluginInfo: 'Información del plugin',
|
||||
},
|
||||
installModal: {
|
||||
labels: {
|
||||
repository: 'Depósito',
|
||||
version: 'Versión',
|
||||
package: 'Paquete',
|
||||
},
|
||||
installPlugin: 'Instalar plugin',
|
||||
close: 'Cerrar',
|
||||
uploadingPackage: 'Subiendo {{packageName}}...',
|
||||
installComplete: 'Instalación completa',
|
||||
installFailed: 'Error de instalación',
|
||||
fromTrustSource:
|
||||
'Por favor, asegúrate de que sólo instalas plugins de una <trustSource>fuente de confianza</trustSource>.',
|
||||
installedSuccessfullyDesc: 'El plugin se ha instalado correctamente.',
|
||||
back: 'Atrás',
|
||||
installFailedDesc: 'El plugin ha fallado en la instalación.',
|
||||
installing: 'Instalar...',
|
||||
next: 'Próximo',
|
||||
readyToInstallPackages:
|
||||
'A punto de instalar los siguientes plugins {{num}}',
|
||||
cancel: 'Cancelar',
|
||||
uploadFailed: 'Error de carga',
|
||||
install: 'Instalar',
|
||||
pluginLoadError: 'Error de carga del plugin',
|
||||
pluginLoadErrorDesc: 'Este plugin no se instalará',
|
||||
readyToInstall: 'A punto de instalar el siguiente plugin',
|
||||
dropPluginToInstall:
|
||||
'Suelte el paquete del complemento aquí para instalarlo',
|
||||
readyToInstallPackage: 'A punto de instalar el siguiente plugin',
|
||||
installedSuccessfully: 'Instalación exitosa',
|
||||
installWarning: 'Este plugin no está permitido para instalar.',
|
||||
},
|
||||
installFromGitHub: {
|
||||
uploadFailed: 'Error de carga',
|
||||
updatePlugin: 'Actualizar plugin desde GitHub',
|
||||
selectPackagePlaceholder: 'Por favor, seleccione un paquete',
|
||||
installedSuccessfully: 'Instalación exitosa',
|
||||
installNote:
|
||||
'Por favor, asegúrate de que sólo instalas plugins de una fuente de confianza.',
|
||||
gitHubRepo: 'Repositorio de GitHub',
|
||||
selectPackage: 'Seleccionar paquete',
|
||||
selectVersion: 'Seleccionar versión',
|
||||
selectVersionPlaceholder: 'Por favor, seleccione una versión',
|
||||
installPlugin: 'Instalar plugin desde GitHub',
|
||||
installFailed: 'Error de instalación',
|
||||
},
|
||||
upgrade: {
|
||||
upgrading: 'Instalar...',
|
||||
close: 'Cerrar',
|
||||
description: 'A punto de instalar el siguiente plugin',
|
||||
upgrade: 'Instalar',
|
||||
title: 'Instalar plugin',
|
||||
successfulTitle: 'Instalación correcta',
|
||||
usedInApps: 'Usado en aplicaciones {{num}}',
|
||||
},
|
||||
error: {
|
||||
fetchReleasesError:
|
||||
'No se pueden recuperar las versiones. Por favor, inténtelo de nuevo más tarde.',
|
||||
noReleasesFound:
|
||||
'No se han encontrado versiones. Compruebe el repositorio de GitHub o la URL de entrada.',
|
||||
inValidGitHubUrl:
|
||||
'URL de GitHub no válida. Introduzca una URL válida en el formato: https://github.com/owner/repo',
|
||||
},
|
||||
marketplace: {
|
||||
sortOption: {
|
||||
recentlyUpdated: 'Actualizado recientemente',
|
||||
newlyReleased: 'Recién estrenado',
|
||||
firstReleased: 'Lanzado por primera vez',
|
||||
mostPopular: 'Lo más popular',
|
||||
},
|
||||
empower: 'Potencie su desarrollo de IA',
|
||||
moreFrom: 'Más de Marketplace',
|
||||
viewMore: 'Ver más',
|
||||
sortBy: 'Ordenar por',
|
||||
noPluginFound: 'No se ha encontrado ningún plugin',
|
||||
pluginsResult: '{{num}} resultados',
|
||||
discover: 'Descubrir',
|
||||
and: 'y',
|
||||
difyMarketplace: 'Mercado de Dify',
|
||||
verifiedTip: 'Verificado por Dify',
|
||||
partnerTip: 'Verificado por un socio de Dify',
|
||||
},
|
||||
task: {
|
||||
installing: 'Instalando plugins {{installingLength}}, 0 hecho.',
|
||||
clearAll: 'Borrar todo',
|
||||
installingWithSuccess:
|
||||
'Instalando plugins {{installingLength}}, {{successLength}} éxito.',
|
||||
installedError: 'Los complementos {{errorLength}} no se pudieron instalar',
|
||||
installError:
|
||||
'Los complementos {{errorLength}} no se pudieron instalar, haga clic para ver',
|
||||
installingWithError:
|
||||
'Instalando plugins {{installingLength}}, {{successLength}} éxito, {{errorLength}} fallido',
|
||||
},
|
||||
fromMarketplace: 'De Marketplace',
|
||||
endpointsEnabled: '{{num}} conjuntos de puntos finales habilitados',
|
||||
from: 'De',
|
||||
installAction: 'Instalar',
|
||||
install: '{{num}} instalaciones',
|
||||
allCategories: 'Todas las categorías',
|
||||
searchCategories: 'Categorías de búsqueda',
|
||||
installFrom: 'INSTALAR DESDE',
|
||||
search: 'Buscar',
|
||||
searchInMarketplace: 'Buscar en Marketplace',
|
||||
searchTools: 'Herramientas de búsqueda...',
|
||||
findMoreInMarketplace: 'Más información en Marketplace',
|
||||
installPlugin: 'Instalar plugin',
|
||||
searchPlugins: 'Plugins de búsqueda',
|
||||
metadata: {
|
||||
title: 'Complementos',
|
||||
},
|
||||
difyVersionNotCompatible:
|
||||
'La versión actual de Dify no es compatible con este plugin, por favor actualiza a la versión mínima requerida: {{minimalDifyVersion}}',
|
||||
requestAPlugin: 'Solicitar un plugin',
|
||||
publishPlugins: 'Publicar plugins',
|
||||
auth: {
|
||||
oauthClient: 'Cliente OAuth',
|
||||
authorizationName: 'Nombre de autorización',
|
||||
authorization: 'Autorización',
|
||||
addApi: 'Agregar clave API',
|
||||
useApiAuth: 'Configuración de Autorización de Clave API',
|
||||
addOAuth: 'Agregar OAuth',
|
||||
authorizations: 'Autorizaciones',
|
||||
authRemoved: 'Autorización retirada',
|
||||
useOAuthAuth: 'Usar autorización OAuth',
|
||||
setupOAuth: 'Configurar el cliente OAuth',
|
||||
saveAndAuth: 'Guardar y autorizar',
|
||||
useApi: 'Usa la clave de API',
|
||||
workspaceDefault: 'Espacio de trabajo predeterminado',
|
||||
custom: 'Personalizado',
|
||||
useOAuth: 'Usa OAuth',
|
||||
setDefault: 'Establecer como predeterminado',
|
||||
useApiAuthDesc:
|
||||
'Después de configurar las credenciales, todos los miembros dentro del espacio de trabajo pueden usar esta herramienta al orquestar aplicaciones.',
|
||||
saveOnly: 'Guardar solo',
|
||||
clientInfo:
|
||||
'Como no se encontraron secretos de cliente del sistema para este proveedor de herramientas, se requiere configurarlo manualmente. Para redirect_uri, por favor utiliza',
|
||||
oauthClientSettings: 'Configuración del cliente OAuth',
|
||||
default: 'Predeterminado',
|
||||
customCredentialUnavailable:
|
||||
'Las credenciales personalizadas no están disponibles actualmente.',
|
||||
unavailable: 'No disponible',
|
||||
credentialUnavailable:
|
||||
'Credenciales actualmente no disponibles. Por favor, contacte al administrador.',
|
||||
credentialUnavailableInButton: 'Credencial no disponible',
|
||||
emptyAuth: 'Configure la autenticación',
|
||||
connectedWorkspace: 'Espacio de trabajo conectado',
|
||||
},
|
||||
deprecated: 'Obsoleto',
|
||||
autoUpdate: {
|
||||
strategy: {
|
||||
disabled: {
|
||||
description: 'Los plugins no se actualizarán automáticamente',
|
||||
name: 'Discapacitado',
|
||||
},
|
||||
fixOnly: {
|
||||
name: 'Arreglar Solo',
|
||||
selectedDescription:
|
||||
'Actualización automática solo para versiones de parches',
|
||||
description:
|
||||
'Actualización automática solo para versiones de parche (por ejemplo, 1.0.1 → 1.0.2). Los cambios de versión menor no activarán actualizaciones.',
|
||||
},
|
||||
latest: {
|
||||
selectedDescription: 'Siempre actualiza a la última versión',
|
||||
description: 'Siempre actualiza a la última versión',
|
||||
name: 'último',
|
||||
},
|
||||
},
|
||||
upgradeMode: {
|
||||
partial: 'Solo seleccionado',
|
||||
all: 'Actualizar todo',
|
||||
exclude: 'Excluir seleccionado',
|
||||
},
|
||||
upgradeModePlaceholder: {
|
||||
exclude: 'Los plugins seleccionados no se actualizarán automáticamente',
|
||||
partial:
|
||||
'Solo los plugins seleccionados se actualizarán automáticamente. Actualmente no hay plugins seleccionados, por lo que no se actualizarán automáticamente.',
|
||||
},
|
||||
operation: {
|
||||
clearAll: 'Borrar todo',
|
||||
select: 'Seleccionar complementos',
|
||||
},
|
||||
pluginDowngradeWarning: {
|
||||
title: 'Degradar plugin',
|
||||
exclude: 'Excluir de la actualización automática',
|
||||
downgrade: 'De todas formas, degradar',
|
||||
description:
|
||||
'La actualización automática está actualmente habilitada para este complemento. Downgradear la versión puede hacer que tus cambios se sobrescriban durante la próxima actualización automática.',
|
||||
},
|
||||
noPluginPlaceholder: {
|
||||
noFound: 'No se encontraron complementos',
|
||||
noInstalled: 'No hay plugins instalados',
|
||||
},
|
||||
updateTimeTitle: 'Hora de actualización',
|
||||
nextUpdateTime: 'Próxima autoactualización: {{time}}',
|
||||
specifyPluginsToUpdate: 'Especifique qué complementos actualizar',
|
||||
updateTime: 'Actualizar tiempo',
|
||||
updateSettings: 'Actualizar configuraciones',
|
||||
excludeUpdate:
|
||||
'Los siguientes {{num}} complementos no se actualizarán automáticamente',
|
||||
partialUPdate:
|
||||
'Solo los siguientes {{num}} complementos se actualizarán automáticamente',
|
||||
changeTimezone:
|
||||
'Para cambiar la zona horaria, ve a <setTimezone>Configuración</setTimezone>.',
|
||||
automaticUpdates: 'Actualizaciones automáticas',
|
||||
},
|
||||
readmeInfo: {
|
||||
title: 'LEEME',
|
||||
needHelpCheckReadme: '¿Necesitas ayuda? Revisa el README.',
|
||||
noReadmeAvailable: 'No hay archivo README disponible',
|
||||
failedToFetch: 'No se pudo obtener el README',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
4
dify/web/i18n/es-ES/register.ts
Normal file
4
dify/web/i18n/es-ES/register.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
const translation = {
|
||||
}
|
||||
|
||||
export default translation
|
||||
31
dify/web/i18n/es-ES/run-log.ts
Normal file
31
dify/web/i18n/es-ES/run-log.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
const translation = {
|
||||
input: 'ENTRADA',
|
||||
result: 'RESULTADO',
|
||||
detail: 'DETALLE',
|
||||
tracing: 'TRAZADO',
|
||||
resultPanel: {
|
||||
status: 'ESTADO',
|
||||
time: 'TIEMPO TRANSCURRIDO',
|
||||
tokens: 'TOTAL DE TOKENS',
|
||||
},
|
||||
meta: {
|
||||
title: 'METADATOS',
|
||||
status: 'Estado',
|
||||
version: 'Versión',
|
||||
executor: 'Ejecutor',
|
||||
startTime: 'Hora de inicio',
|
||||
time: 'Tiempo transcurrido',
|
||||
tokens: 'Total de tokens',
|
||||
steps: 'Pasos de ejecución',
|
||||
},
|
||||
resultEmpty: {
|
||||
title: 'Esta ejecución solo produce formato JSON,',
|
||||
tipLeft: 'por favor ve al ',
|
||||
link: 'panel de detalle',
|
||||
tipRight: ' para verlo.',
|
||||
},
|
||||
actionLogs: 'Registros de acciones',
|
||||
circularInvocationTip: 'Hay una invocación circular de herramientas/nodos en el flujo de trabajo actual.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
86
dify/web/i18n/es-ES/share.ts
Normal file
86
dify/web/i18n/es-ES/share.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
const translation = {
|
||||
common: {
|
||||
welcome: '',
|
||||
appUnavailable: 'La aplicación no está disponible',
|
||||
appUnknownError: 'La aplicación no está disponible',
|
||||
},
|
||||
chat: {
|
||||
newChat: 'Nuevo chat',
|
||||
pinnedTitle: 'Fijados',
|
||||
unpinnedTitle: 'Chats',
|
||||
newChatDefaultName: 'Nueva conversación',
|
||||
resetChat: 'Reiniciar conversación',
|
||||
poweredBy: 'Desarrollado por',
|
||||
prompt: 'Indicación',
|
||||
privatePromptConfigTitle: 'Configuración de la conversación',
|
||||
publicPromptConfigTitle: 'Indicación inicial',
|
||||
configStatusDes: 'Antes de comenzar, puedes modificar la configuración de la conversación',
|
||||
configDisabled:
|
||||
'Se han utilizado las configuraciones de la sesión anterior para esta sesión.',
|
||||
startChat: 'Iniciar chat',
|
||||
privacyPolicyLeft:
|
||||
'Por favor, lee la ',
|
||||
privacyPolicyMiddle:
|
||||
'política de privacidad',
|
||||
privacyPolicyRight:
|
||||
' proporcionada por el desarrollador de la aplicación.',
|
||||
deleteConversation: {
|
||||
title: 'Eliminar conversación',
|
||||
content: '¿Estás seguro/a de que quieres eliminar esta conversación?',
|
||||
},
|
||||
tryToSolve: 'Intentar resolver',
|
||||
temporarySystemIssue: 'Lo sentimos, hay un problema temporal del sistema.',
|
||||
expand: 'Ampliar',
|
||||
collapse: 'Contraer',
|
||||
viewChatSettings: 'Ver configuraciones de chat',
|
||||
newChatTip: 'Ya en un nuevo chat',
|
||||
chatFormTip: 'No se pueden modificar los ajustes del chat después de que el chat ha comenzado.',
|
||||
chatSettingsTitle: 'Nueva configuración de chat',
|
||||
},
|
||||
generation: {
|
||||
tabs: {
|
||||
create: 'Ejecutar una vez',
|
||||
batch: 'Ejecutar en lote',
|
||||
saved: 'Guardado',
|
||||
},
|
||||
savedNoData: {
|
||||
title: '¡Aún no has guardado ningún resultado!',
|
||||
description: 'Comienza a generar contenido y encuentra tus resultados guardados aquí.',
|
||||
startCreateContent: 'Comenzar a crear contenido',
|
||||
},
|
||||
title: 'Completado por IA',
|
||||
queryTitle: 'Contenido de la consulta',
|
||||
completionResult: 'Resultado del completado',
|
||||
queryPlaceholder: 'Escribe tu contenido de consulta...',
|
||||
run: 'Ejecutar',
|
||||
copy: 'Copiar',
|
||||
resultTitle: 'Completado por IA',
|
||||
noData: 'La IA te dará lo que deseas aquí.',
|
||||
csvUploadTitle: 'Arrastra y suelta tu archivo CSV aquí, o ',
|
||||
browse: 'navega',
|
||||
csvStructureTitle: 'El archivo CSV debe cumplir con la siguiente estructura:',
|
||||
downloadTemplate: 'Descarga la plantilla aquí',
|
||||
field: 'Campo',
|
||||
batchFailed: {
|
||||
info: '{{num}} ejecuciones fallidas',
|
||||
retry: 'Reintentar',
|
||||
outputPlaceholder: 'Sin contenido de salida',
|
||||
},
|
||||
errorMsg: {
|
||||
empty: 'Por favor, ingresa contenido en el archivo cargado.',
|
||||
fileStructNotMatch: 'El archivo CSV cargado no coincide con la estructura.',
|
||||
emptyLine: 'La fila {{rowIndex}} está vacía',
|
||||
invalidLine: 'Fila {{rowIndex}}: el valor de {{varName}} no puede estar vacío',
|
||||
moreThanMaxLengthLine: 'Fila {{rowIndex}}: el valor de {{varName}} no puede tener más de {{maxLength}} caracteres',
|
||||
atLeastOne: 'Por favor, ingresa al menos una fila en el archivo cargado.',
|
||||
},
|
||||
execution: 'Ejecutar',
|
||||
executions: '{{num}} ejecuciones',
|
||||
stopRun: 'Detener ejecución',
|
||||
},
|
||||
login: {
|
||||
backToHome: 'Volver a Inicio',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
44
dify/web/i18n/es-ES/time.ts
Normal file
44
dify/web/i18n/es-ES/time.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const translation = {
|
||||
daysInWeek: {
|
||||
Sun: 'Sol',
|
||||
Thu: 'Jue',
|
||||
Tue: 'Mar',
|
||||
Sat: 'Sáb',
|
||||
Mon: 'Mon',
|
||||
Fri: 'Viernes',
|
||||
Wed: 'Miércoles',
|
||||
},
|
||||
months: {
|
||||
August: 'Agosto',
|
||||
September: 'Septiembre',
|
||||
April: 'Abril',
|
||||
February: 'Febrero',
|
||||
January: 'Enero',
|
||||
November: 'Noviembre',
|
||||
October: 'octubre',
|
||||
May: 'Mayo',
|
||||
June: 'Junio',
|
||||
December: 'Diciembre',
|
||||
July: 'Julio',
|
||||
March: 'Marzo',
|
||||
},
|
||||
operation: {
|
||||
ok: 'De acuerdo',
|
||||
pickDate: 'Seleccionar fecha',
|
||||
cancel: 'Cancelar',
|
||||
now: 'Ahora',
|
||||
},
|
||||
title: {
|
||||
pickTime: 'Elegir hora',
|
||||
},
|
||||
defaultPlaceholder: 'Elige una hora...',
|
||||
dateFormats: {
|
||||
input: 'AAAA-MM-DD',
|
||||
output: 'AAAA-MM-DD',
|
||||
display: 'MMMM D, AAAA',
|
||||
outputWithTime: 'AAAA-MM-DDTHH:mm:ss.SSSZ',
|
||||
displayWithTime: 'MMMM D, YYYY hh:mm A',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
257
dify/web/i18n/es-ES/tools.ts
Normal file
257
dify/web/i18n/es-ES/tools.ts
Normal file
@@ -0,0 +1,257 @@
|
||||
const translation = {
|
||||
title: 'Herramientas',
|
||||
createCustomTool: 'Crear Herramienta Personalizada',
|
||||
customToolTip: 'Aprende más sobre las herramientas personalizadas de Dify',
|
||||
type: {
|
||||
builtIn: 'Incorporadas',
|
||||
custom: 'Personalizadas',
|
||||
workflow: 'Flujo de Trabajo',
|
||||
},
|
||||
contribute: {
|
||||
line1: 'Estoy interesado en ',
|
||||
line2: 'contribuir herramientas a Dify.',
|
||||
viewGuide: 'Ver la guía',
|
||||
},
|
||||
author: 'Por',
|
||||
auth: {
|
||||
authorized: 'Autorizado',
|
||||
setup: 'Configurar la autorización para usar',
|
||||
setupModalTitle: 'Configurar Autorización',
|
||||
setupModalTitleDescription: 'Después de configurar las credenciales, todos los miembros dentro del espacio de trabajo pueden usar esta herramienta al orquestar aplicaciones.',
|
||||
},
|
||||
includeToolNum: '{{num}} herramientas incluidas',
|
||||
addToolModal: {
|
||||
type: 'tipo',
|
||||
category: 'categoría',
|
||||
added: 'agregada',
|
||||
custom: {
|
||||
title: 'No hay herramienta personalizada disponible',
|
||||
tip: 'Crear una herramienta personalizada',
|
||||
},
|
||||
workflow: {
|
||||
title: 'No hay herramienta de flujo de trabajo disponible',
|
||||
tip: 'Publicar flujos de trabajo como herramientas en el Estudio',
|
||||
},
|
||||
mcp: {
|
||||
title: 'No hay herramienta MCP disponible',
|
||||
tip: 'Añadir un servidor MCP',
|
||||
},
|
||||
agent: {
|
||||
title: 'No hay estrategia de agente disponible',
|
||||
},
|
||||
},
|
||||
createTool: {
|
||||
title: 'Crear Herramienta Personalizada',
|
||||
editAction: 'Configurar',
|
||||
editTitle: 'Editar Herramienta Personalizada',
|
||||
name: 'Nombre',
|
||||
toolNamePlaceHolder: 'Ingresa el nombre de la herramienta',
|
||||
nameForToolCall: 'Nombre de llamada de la herramienta',
|
||||
nameForToolCallPlaceHolder: 'Utilizado para el reconocimiento automático, como getCurrentWeather, list_pets',
|
||||
nameForToolCallTip: 'Solo soporta números, letras y guiones bajos.',
|
||||
description: 'Descripción',
|
||||
descriptionPlaceholder: 'Breve descripción del propósito de la herramienta, por ejemplo, obtener la temperatura de una ubicación específica.',
|
||||
schema: 'Esquema',
|
||||
schemaPlaceHolder: 'Ingresa tu esquema OpenAPI aquí',
|
||||
viewSchemaSpec: 'Ver la Especificación OpenAPI-Swagger',
|
||||
importFromUrl: 'Importar desde URL',
|
||||
importFromUrlPlaceHolder: 'https://...',
|
||||
urlError: 'Por favor, ingresa una URL válida',
|
||||
examples: 'Ejemplos',
|
||||
exampleOptions: {
|
||||
json: 'Clima (JSON)',
|
||||
yaml: 'Tienda de Mascotas (YAML)',
|
||||
blankTemplate: 'Plantilla en Blanco',
|
||||
},
|
||||
availableTools: {
|
||||
title: 'Herramientas Disponibles',
|
||||
name: 'Nombre',
|
||||
description: 'Descripción',
|
||||
method: 'Método',
|
||||
path: 'Ruta',
|
||||
action: 'Acciones',
|
||||
test: 'Probar',
|
||||
},
|
||||
authMethod: {
|
||||
title: 'Método de Autorización',
|
||||
type: 'Tipo de Autorización',
|
||||
keyTooltip: 'Clave del encabezado HTTP, puedes dejarla como "Authorization" si no tienes idea de qué es o configurarla con un valor personalizado',
|
||||
types: {
|
||||
none: 'Ninguno',
|
||||
apiKeyPlaceholder: 'Nombre del encabezado HTTP para la Clave API',
|
||||
apiValuePlaceholder: 'Ingresa la Clave API',
|
||||
api_key_header: 'Encabezado',
|
||||
api_key_query: 'Parámetro de consulta',
|
||||
queryParamPlaceholder: 'Nombre del parámetro de consulta para la clave de API',
|
||||
},
|
||||
key: 'Clave',
|
||||
value: 'Valor',
|
||||
queryParam: 'Parámetro de consulta',
|
||||
queryParamTooltip: 'El nombre del parámetro de consulta de clave de API que se debe pasar, por ejemplo, "key" en "https://example.com/test?key=API_KEY".',
|
||||
},
|
||||
authHeaderPrefix: {
|
||||
title: 'Tipo de Autenticación',
|
||||
types: {
|
||||
basic: 'Básica',
|
||||
bearer: 'Bearer',
|
||||
custom: 'Personalizada',
|
||||
},
|
||||
},
|
||||
privacyPolicy: 'Política de Privacidad',
|
||||
privacyPolicyPlaceholder: 'Por favor, ingresa la política de privacidad',
|
||||
toolInput: {
|
||||
title: 'Entrada de la Herramienta',
|
||||
name: 'Nombre',
|
||||
required: 'Requerido',
|
||||
method: 'Método',
|
||||
methodSetting: 'Configuración',
|
||||
methodSettingTip: 'El usuario completa la configuración de la herramienta',
|
||||
methodParameter: 'Parámetro',
|
||||
methodParameterTip: 'LLM completa durante la inferencia',
|
||||
label: 'Etiquetas',
|
||||
labelPlaceholder: 'Elige etiquetas (opcional)',
|
||||
description: 'Descripción',
|
||||
descriptionPlaceholder: 'Descripción del significado del parámetro',
|
||||
},
|
||||
customDisclaimer: 'Descargo de responsabilidad personalizado',
|
||||
customDisclaimerPlaceholder: 'Por favor, ingresa el descargo de responsabilidad personalizado',
|
||||
confirmTitle: '¿Confirmar para guardar?',
|
||||
confirmTip: 'Las aplicaciones que usen esta herramienta se verán afectadas',
|
||||
deleteToolConfirmTitle: '¿Eliminar esta Herramienta?',
|
||||
deleteToolConfirmContent: 'Eliminar la herramienta es irreversible. Los usuarios ya no podrán acceder a tu herramienta.',
|
||||
},
|
||||
test: {
|
||||
title: 'Probar',
|
||||
parametersValue: 'Parámetros y Valor',
|
||||
parameters: 'Parámetros',
|
||||
value: 'Valor',
|
||||
testResult: 'Resultados de la Prueba',
|
||||
testResultPlaceholder: 'El resultado de la prueba se mostrará aquí',
|
||||
},
|
||||
thought: {
|
||||
using: 'Usando',
|
||||
used: 'Usado',
|
||||
requestTitle: 'Solicitud a',
|
||||
responseTitle: 'Respuesta de',
|
||||
},
|
||||
setBuiltInTools: {
|
||||
info: 'Información',
|
||||
setting: 'Ajuste',
|
||||
toolDescription: 'Descripción de la herramienta',
|
||||
parameters: 'parámetros',
|
||||
string: 'cadena',
|
||||
number: 'número',
|
||||
required: 'Requerido',
|
||||
infoAndSetting: 'Información y Ajustes',
|
||||
file: 'archivo',
|
||||
},
|
||||
noCustomTool: {
|
||||
title: '¡Sin herramientas personalizadas!',
|
||||
content: 'Agrega y administra tus herramientas personalizadas aquí para construir aplicaciones de inteligencia artificial.',
|
||||
createTool: 'Crear Herramienta',
|
||||
},
|
||||
noSearchRes: {
|
||||
title: '¡Lo sentimos, no hay resultados!',
|
||||
content: 'No encontramos herramientas que coincidan con tu búsqueda.',
|
||||
reset: 'Restablecer Búsqueda',
|
||||
},
|
||||
builtInPromptTitle: 'Aviso',
|
||||
toolRemoved: 'Herramienta eliminada',
|
||||
notAuthorized: 'Herramienta no autorizada',
|
||||
howToGet: 'Cómo obtener',
|
||||
openInStudio: 'Abrir en Studio',
|
||||
toolNameUsageTip: 'Nombre de llamada de la herramienta para razonamiento y promoción de agentes',
|
||||
copyToolName: 'Nombre de la copia',
|
||||
noTools: 'No se han encontrado herramientas',
|
||||
mcp: {
|
||||
create: {
|
||||
cardTitle: 'Añadir servidor MCP (HTTP)',
|
||||
cardLink: 'Más información sobre integración de servidores MCP',
|
||||
},
|
||||
noConfigured: 'Servidor no configurado',
|
||||
updateTime: 'Actualizado',
|
||||
toolsCount: '{{count}} herramientas',
|
||||
noTools: 'No hay herramientas disponibles',
|
||||
modal: {
|
||||
title: 'Añadir servidor MCP (HTTP)',
|
||||
editTitle: 'Editar servidor MCP (HTTP)',
|
||||
name: 'Nombre e Icono',
|
||||
namePlaceholder: 'Nombre de su servidor MCP',
|
||||
serverUrl: 'URL del servidor',
|
||||
serverUrlPlaceholder: 'URL del endpoint del servidor',
|
||||
serverUrlWarning: 'Actualizar la dirección del servidor puede interrumpir aplicaciones que dependan de él',
|
||||
serverIdentifier: 'Identificador del servidor',
|
||||
serverIdentifierTip: 'Identificador único del servidor MCP en el espacio de trabajo. Solo letras minúsculas, números, guiones bajos y guiones. Máximo 24 caracteres.',
|
||||
serverIdentifierPlaceholder: 'Identificador único, ej. mi-servidor-mcp',
|
||||
serverIdentifierWarning: 'El servidor no será reconocido por aplicaciones existentes tras cambiar la ID',
|
||||
cancel: 'Cancelar',
|
||||
save: 'Guardar',
|
||||
confirm: 'Añadir y Autorizar',
|
||||
sseReadTimeout: 'Tiempo de espera de lectura SSE',
|
||||
timeout: 'Tiempo de espera',
|
||||
timeoutPlaceholder: 'treinta',
|
||||
headers: 'Encabezados',
|
||||
addHeader: 'Agregar encabezado',
|
||||
headerValuePlaceholder: 'por ejemplo, token de portador123',
|
||||
headersTip: 'Encabezados HTTP adicionales para enviar con las solicitudes del servidor MCP',
|
||||
maskedHeadersTip: 'Los valores del encabezado están enmascarados por seguridad. Los cambios actualizarán los valores reales.',
|
||||
headerKeyPlaceholder: 'por ejemplo, Autorización',
|
||||
headerValue: 'Valor del encabezado',
|
||||
noHeaders: 'No se han configurado encabezados personalizados',
|
||||
headerKey: 'Nombre del encabezado',
|
||||
authentication: 'Autenticación',
|
||||
clientID: 'ID del Cliente',
|
||||
clientSecretPlaceholder: 'Secreto del Cliente',
|
||||
useDynamicClientRegistration: 'Usar registro dinámico de clientes',
|
||||
clientSecret: 'Secreto del Cliente',
|
||||
configurations: 'Configuraciones',
|
||||
redirectUrlWarning: 'Por favor, configure su URL de redireccionamiento OAuth a:',
|
||||
},
|
||||
delete: 'Eliminar servidor MCP',
|
||||
deleteConfirmTitle: '¿Eliminar {{mcp}}?',
|
||||
operation: {
|
||||
edit: 'Editar',
|
||||
remove: 'Eliminar',
|
||||
},
|
||||
authorize: 'Autorizar',
|
||||
authorizing: 'Autorizando...',
|
||||
authorizingRequired: 'Se requiere autorización',
|
||||
authorizeTip: 'Tras la autorización, las herramientas se mostrarán aquí.',
|
||||
update: 'Actualizar',
|
||||
updating: 'Actualizando',
|
||||
gettingTools: 'Obteniendo herramientas...',
|
||||
updateTools: 'Actualizando herramientas...',
|
||||
toolsEmpty: 'Herramientas no cargadas',
|
||||
getTools: 'Obtener herramientas',
|
||||
toolUpdateConfirmTitle: 'Actualizar lista de herramientas',
|
||||
toolUpdateConfirmContent: 'Actualizar la lista puede afectar a aplicaciones existentes. ¿Continuar?',
|
||||
toolsNum: '{{count}} herramientas incluidas',
|
||||
onlyTool: '1 herramienta incluida',
|
||||
identifier: 'Identificador del servidor (Haz clic para copiar)',
|
||||
server: {
|
||||
title: 'Servidor MCP',
|
||||
url: 'URL del servidor',
|
||||
reGen: '¿Regenerar URL del servidor?',
|
||||
addDescription: 'Añadir descripción',
|
||||
edit: 'Editar descripción',
|
||||
modal: {
|
||||
addTitle: 'Añade descripción para habilitar el servidor MCP',
|
||||
editTitle: 'Editar descripción',
|
||||
description: 'Descripción',
|
||||
descriptionPlaceholder: 'Explica qué hace esta herramienta y cómo debe usarla el LLM',
|
||||
parameters: 'Parámetros',
|
||||
parametersTip: 'Añade descripciones de cada parámetro para ayudar al LLM a entender su propósito y restricciones.',
|
||||
parametersPlaceholder: 'Propósito y restricciones del parámetro',
|
||||
confirm: 'Habilitar servidor MCP',
|
||||
},
|
||||
publishTip: 'App no publicada. Publícala primero.',
|
||||
},
|
||||
toolItem: {
|
||||
noDescription: 'Sin descripción',
|
||||
parameters: 'Parámetros',
|
||||
},
|
||||
},
|
||||
allTools: 'Todas las herramientas',
|
||||
}
|
||||
|
||||
export default translation
|
||||
1291
dify/web/i18n/es-ES/workflow.ts
Normal file
1291
dify/web/i18n/es-ES/workflow.ts
Normal file
File diff suppressed because it is too large
Load Diff
98
dify/web/i18n/fa-IR/app-annotation.ts
Normal file
98
dify/web/i18n/fa-IR/app-annotation.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
const translation = {
|
||||
title: 'یادداشتها',
|
||||
name: 'پاسخ یادداشت',
|
||||
editBy: 'پاسخ ویرایش شده توسط {{author}}',
|
||||
noData: {
|
||||
title: 'بدون یادداشت',
|
||||
description: 'شما میتوانید یادداشتها را در حین اشکالزدایی برنامه ویرایش کنید یا یادداشتها را به صورت انبوه در اینجا برای پاسخگویی با کیفیت بالا وارد کنید.',
|
||||
},
|
||||
table: {
|
||||
header: {
|
||||
question: 'سوال',
|
||||
answer: 'پاسخ',
|
||||
createdAt: 'ایجاد شده در',
|
||||
hits: 'بازدیدها',
|
||||
actions: 'اقدامات',
|
||||
addAnnotation: 'افزودن یادداشت',
|
||||
bulkImport: 'واردات انبوه',
|
||||
bulkExport: 'صادرات انبوه',
|
||||
clearAll: 'پاک کردن همه یادداشتها',
|
||||
clearAllConfirm: 'آیا همه حاشیهنویسیها را حذف کنیم؟',
|
||||
},
|
||||
},
|
||||
editModal: {
|
||||
title: 'ویرایش پاسخ یادداشت',
|
||||
queryName: 'پرسش کاربر',
|
||||
answerName: 'ربات داستانسرا',
|
||||
yourAnswer: 'پاسخ شما',
|
||||
answerPlaceholder: 'پاسخ خود را اینجا بنویسید',
|
||||
yourQuery: 'پرسش شما',
|
||||
queryPlaceholder: 'پرسش خود را اینجا بنویسید',
|
||||
removeThisCache: 'حذف این یادداشت',
|
||||
createdAt: 'ایجاد شده در',
|
||||
},
|
||||
addModal: {
|
||||
title: 'افزودن پاسخ یادداشت',
|
||||
queryName: 'سوال',
|
||||
answerName: 'پاسخ',
|
||||
answerPlaceholder: 'پاسخ را اینجا بنویسید',
|
||||
queryPlaceholder: 'پرسش را اینجا بنویسید',
|
||||
createNext: 'افزودن پاسخ یادداشتشده دیگر',
|
||||
},
|
||||
batchModal: {
|
||||
title: 'واردات انبوه',
|
||||
csvUploadTitle: 'فایل CSV خود را اینجا بکشید و رها کنید، یا ',
|
||||
browse: 'مرور کنید',
|
||||
tip: 'فایل CSV باید از ساختار زیر پیروی کند:',
|
||||
question: 'سوال',
|
||||
answer: 'پاسخ',
|
||||
contentTitle: 'محتوای تکه',
|
||||
content: 'محتوا',
|
||||
template: 'الگو را از اینجا دانلود کنید',
|
||||
cancel: 'لغو',
|
||||
run: 'اجرای دستهای',
|
||||
runError: 'اجرای دستهای ناموفق بود',
|
||||
processing: 'در حال پردازش دستهای',
|
||||
completed: 'واردات تکمیل شد',
|
||||
error: 'خطای واردات',
|
||||
ok: 'تایید',
|
||||
},
|
||||
errorMessage: {
|
||||
answerRequired: 'پاسخ الزامی است',
|
||||
queryRequired: 'سوال الزامی است',
|
||||
},
|
||||
viewModal: {
|
||||
annotatedResponse: 'پاسخ یادداشتشده',
|
||||
hitHistory: 'تاریخچه بازدید',
|
||||
hit: 'بازدید',
|
||||
hits: 'بازدیدها',
|
||||
noHitHistory: 'بدون تاریخچه بازدید',
|
||||
},
|
||||
hitHistoryTable: {
|
||||
query: 'پرسش',
|
||||
match: 'تطابق',
|
||||
response: 'پاسخ',
|
||||
source: 'منبع',
|
||||
score: 'امتیاز',
|
||||
time: 'زمان',
|
||||
},
|
||||
initSetup: {
|
||||
title: 'راهاندازی اولیه پاسخ یادداشت',
|
||||
configTitle: 'تنظیمات پاسخ یادداشت',
|
||||
confirmBtn: 'ذخیره و فعالسازی',
|
||||
configConfirmBtn: 'ذخیره',
|
||||
},
|
||||
embeddingModelSwitchTip: 'مدل برداریسازی متن یادداشت، تغییر مدلها باعث جاسازی مجدد خواهد شد و هزینههای اضافی به همراه خواهد داشت.',
|
||||
list: {
|
||||
delete: {
|
||||
title: 'آیا مطمئن هستید که میخواهید حذف کنید؟',
|
||||
},
|
||||
},
|
||||
batchAction: {
|
||||
cancel: 'لغو',
|
||||
selected: 'انتخاب شده',
|
||||
delete: 'حذف کنید',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
85
dify/web/i18n/fa-IR/app-api.ts
Normal file
85
dify/web/i18n/fa-IR/app-api.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
const translation = {
|
||||
apiServer: 'سرور API',
|
||||
apiKey: 'کلید API',
|
||||
status: 'وضعیت',
|
||||
disabled: 'غیرفعال',
|
||||
ok: 'در سرویس',
|
||||
copy: 'کپی',
|
||||
copied: 'کپی شد',
|
||||
play: 'پخش',
|
||||
pause: 'مکث',
|
||||
playing: 'در حال پخش',
|
||||
loading: 'در حال بارگذاری',
|
||||
merMaid: {
|
||||
rerender: 'بازسازی مجدد',
|
||||
},
|
||||
never: 'هرگز',
|
||||
apiKeyModal: {
|
||||
apiSecretKey: 'کلید مخفی API',
|
||||
apiSecretKeyTips: 'برای جلوگیری از سوء استفاده از API، از کلید API خود محافظت کنید. از استفاده از آن به صورت متن ساده در کد فرانتاند خودداری کنید. :)',
|
||||
createNewSecretKey: 'ایجاد کلید مخفی جدید',
|
||||
secretKey: 'کلید مخفی',
|
||||
created: 'ایجاد شده',
|
||||
lastUsed: 'آخرین استفاده',
|
||||
generateTips: 'این کلید را در مکانی امن و قابل دسترس نگه دارید.',
|
||||
},
|
||||
actionMsg: {
|
||||
deleteConfirmTitle: 'این کلید مخفی حذف شود؟',
|
||||
deleteConfirmTips: 'این عمل قابل بازگشت نیست.',
|
||||
ok: 'تایید',
|
||||
},
|
||||
completionMode: {
|
||||
title: 'API برنامه تکمیل',
|
||||
info: 'برای تولید متن با کیفیت بالا، مانند مقالات، خلاصهها و ترجمهها، از API پیامهای تکمیلی با ورودی کاربر استفاده کنید. تولید متن به پارامترهای مدل و قالبهای پرامپت تنظیم شده در مهندسی پرامپت Dify بستگی دارد.',
|
||||
createCompletionApi: 'ایجاد پیام تکمیلی',
|
||||
createCompletionApiTip: 'یک پیام تکمیلی برای پشتیبانی از حالت سوال و جواب ایجاد کنید.',
|
||||
inputsTips: '(اختیاری) فیلدهای ورودی کاربر را به صورت جفتهای کلید-مقدار ارائه دهید که با متغیرهای موجود در مهندسی پرامپت مطابقت دارند. کلید نام متغیر است و مقدار، مقدار پارامتر است. اگر نوع فیلد انتخابی باشد، مقدار ارسال شده باید یکی از گزینههای از پیش تعیین شده باشد.',
|
||||
queryTips: 'محتوای متن ورودی کاربر.',
|
||||
blocking: 'نوع مسدودکننده، منتظر اتمام اجرا و بازگشت نتایج. (درخواستها ممکن است در صورت طولانی بودن فرآیند قطع شوند)',
|
||||
streaming: 'بازگشت جریانی. پیادهسازی بازگشت جریانی بر اساس SSE (رویدادهای ارسالی سرور).',
|
||||
messageFeedbackApi: 'بازخورد پیام (لایک)',
|
||||
messageFeedbackApiTip: 'پیامهای دریافتی را از طرف کاربران نهایی با لایک یا دیسلایک ارزیابی کنید. این دادهها در صفحه گزارشها و یادداشتها قابل مشاهده هستند و برای تنظیم دقیق مدل در آینده استفاده میشوند.',
|
||||
messageIDTip: 'شناسه پیام',
|
||||
ratingTip: 'لایک یا دیسلایک، null برای لغو',
|
||||
parametersApi: 'دریافت اطلاعات پارامترهای برنامه',
|
||||
parametersApiTip: 'بازیابی پارامترهای ورودی پیکربندی شده، شامل نامهای متغیر، نامهای فیلد، انواع و مقادیر پیشفرض. معمولاً برای نمایش این فیلدها در یک فرم یا پر کردن مقادیر پیشفرض پس از بارگیری کلاینت استفاده میشود.',
|
||||
},
|
||||
chatMode: {
|
||||
title: 'API برنامه چت',
|
||||
info: 'برای برنامههای مکالمهای چندمنظوره با استفاده از فرمت سوال و جواب، API پیامهای چت را برای شروع گفتگو فراخوانی کنید. با ارسال شناسه مکالمه بازگشتی، گفتگوهای مداوم را حفظ کنید. پارامترهای پاسخ و قالبها به تنظیمات مهندسی پرامپت Dify بستگی دارند.',
|
||||
createChatApi: 'ایجاد پیام چت',
|
||||
createChatApiTip: 'یک پیام مکالمه جدید ایجاد کنید یا یک گفتگوی موجود را ادامه دهید.',
|
||||
inputsTips: '(اختیاری) فیلدهای ورودی کاربر را به صورت جفتهای کلید-مقدار ارائه دهید که با متغیرهای موجود در مهندسی پرامپت مطابقت دارند. کلید نام متغیر است و مقدار، مقدار پارامتر است. اگر نوع فیلد انتخابی باشد، مقدار ارسال شده باید یکی از گزینههای از پیش تعیین شده باشد.',
|
||||
queryTips: 'محتوای ورودی/سوال کاربر',
|
||||
blocking: 'نوع مسدودکننده، منتظر اتمام اجرا و بازگشت نتایج. (درخواستها ممکن است در صورت طولانی بودن فرآیند قطع شوند)',
|
||||
streaming: 'بازگشت جریانی. پیادهسازی بازگشت جریانی بر اساس SSE (رویدادهای ارسالی سرور).',
|
||||
conversationIdTip: '(اختیاری) شناسه مکالمه: برای اولین مکالمه خالی بگذارید؛ برای ادامه گفتگو، شناسه مکالمه را از متن ارسال کنید.',
|
||||
messageFeedbackApi: 'بازخورد کاربر نهایی پیام، لایک',
|
||||
messageFeedbackApiTip: 'پیامهای دریافتی را از طرف کاربران نهایی با لایک یا دیسلایک ارزیابی کنید. این دادهها در صفحه گزارشها و یادداشتها قابل مشاهده هستند و برای تنظیم دقیق مدل در آینده استفاده میشوند.',
|
||||
messageIDTip: 'شناسه پیام',
|
||||
ratingTip: 'لایک یا دیسلایک، null برای لغو',
|
||||
chatMsgHistoryApi: 'دریافت تاریخچه پیامهای چت',
|
||||
chatMsgHistoryApiTip: 'صفحه اول آخرین `limit` پیام را به صورت معکوس برمیگرداند.',
|
||||
chatMsgHistoryConversationIdTip: 'شناسه مکالمه',
|
||||
chatMsgHistoryFirstId: 'شناسه اولین رکورد چت در صفحه فعلی. پیشفرض هیچ است.',
|
||||
chatMsgHistoryLimit: 'تعداد چتهایی که در یک درخواست برگردانده میشوند',
|
||||
conversationsListApi: 'دریافت لیست مکالمات',
|
||||
conversationsListApiTip: 'لیست جلسات کاربر فعلی را دریافت میکند. به طور پیشفرض، 20 جلسه آخر برگردانده میشود.',
|
||||
conversationsListFirstIdTip: 'شناسه آخرین رکورد در صفحه فعلی، پیشفرض هیچ.',
|
||||
conversationsListLimitTip: 'تعداد چتهایی که در یک درخواست برگردانده میشوند',
|
||||
conversationRenamingApi: 'تغییر نام مکالمه',
|
||||
conversationRenamingApiTip: 'تغییر نام مکالمات؛ نام در رابطهای کاربری چند جلسهای نمایش داده میشود.',
|
||||
conversationRenamingNameTip: 'نام جدید',
|
||||
parametersApi: 'دریافت اطلاعات پارامترهای برنامه',
|
||||
parametersApiTip: 'بازیابی پارامترهای ورودی پیکربندی شده، شامل نامهای متغیر، نامهای فیلد، انواع و مقادیر پیشفرض. معمولاً برای نمایش این فیلدها در یک فرم یا پر کردن مقادیر پیشفرض پس از بارگیری کلاینت استفاده میشود.',
|
||||
},
|
||||
develop: {
|
||||
requestBody: 'بدنه درخواست',
|
||||
pathParams: 'پارامترهای مسیر',
|
||||
query: 'پرسوجو',
|
||||
toc: 'محتویات',
|
||||
},
|
||||
regenerate: 'بازسازی',
|
||||
}
|
||||
|
||||
export default translation
|
||||
819
dify/web/i18n/fa-IR/app-debug.ts
Normal file
819
dify/web/i18n/fa-IR/app-debug.ts
Normal file
@@ -0,0 +1,819 @@
|
||||
const translation = {
|
||||
pageTitle: {
|
||||
line1: 'پرومپت',
|
||||
line2: 'مهندسی',
|
||||
},
|
||||
orchestrate: 'هماهنگ کردن',
|
||||
promptMode: {
|
||||
simple: 'برای ویرایش کل پرومپت به حالت کارشناس بروید',
|
||||
advanced: 'حالت کارشناس',
|
||||
switchBack: 'بازگشت',
|
||||
advancedWarning: {
|
||||
title: 'شما به حالت کارشناس رفتهاید، و پس از تغییر پرومپت، نمیتوانید به حالت ساده برگردید.',
|
||||
description: 'در حالت کارشناس، میتوانید کل پرومپت را ویرایش کنید.',
|
||||
learnMore: 'بیشتر بدانید',
|
||||
ok: 'باشه',
|
||||
},
|
||||
operation: {
|
||||
addMessage: 'اضافه کردن پیام',
|
||||
},
|
||||
contextMissing: 'مولفه زمینهای از دست رفته است، اثر بخشی پرومپت ممکن است خوب نباشد.',
|
||||
},
|
||||
operation: {
|
||||
applyConfig: 'انتشار',
|
||||
resetConfig: 'تنظیم مجدد',
|
||||
debugConfig: 'دیباگ',
|
||||
addFeature: 'اضافه کردن ویژگی',
|
||||
automatic: 'تولید کردن',
|
||||
stopResponding: 'توقف پاسخدهی',
|
||||
agree: 'پسندیدن',
|
||||
disagree: 'نپسندیدن',
|
||||
cancelAgree: 'لغو پسندیدن',
|
||||
cancelDisagree: 'لغو نپسندیدن',
|
||||
userAction: 'عمل کاربر',
|
||||
},
|
||||
notSetAPIKey: {
|
||||
title: 'کلید ارائهدهنده LLM تنظیم نشده است',
|
||||
trailFinished: 'آزمایش تمام شد',
|
||||
description: 'کلید ارائهدهنده LLM تنظیم نشده است و باید قبل از دیباگ تنظیم شود.',
|
||||
settingBtn: 'به تنظیمات بروید',
|
||||
},
|
||||
trailUseGPT4Info: {
|
||||
title: 'در حال حاضر پشتیبانی نمیشود gpt-4',
|
||||
description: 'برای استفاده از gpt-4، لطفاً کلید API را تنظیم کنید.',
|
||||
},
|
||||
feature: {
|
||||
groupChat: {
|
||||
title: 'تقویت گفتگو',
|
||||
description: 'افزودن تنظیمات پیش از گفتگو برای برنامهها میتواند تجربه کاربری را بهبود بخشد.',
|
||||
},
|
||||
groupExperience: {
|
||||
title: 'تقویت تجربه',
|
||||
},
|
||||
conversationOpener: {
|
||||
title: 'شروعکننده گفتگو',
|
||||
description: 'در یک برنامه چت، اولین جملهای که AI فعالانه با کاربر صحبت میکند، معمولاً به عنوان خوشامدگویی استفاده میشود.',
|
||||
},
|
||||
suggestedQuestionsAfterAnswer: {
|
||||
title: 'پیگیری',
|
||||
description: 'تنظیم پیشنهاد سوالات بعدی میتواند به کاربران یک چت بهتر ارائه دهد.',
|
||||
resDes: '3 پیشنهاد برای سوال بعدی کاربر.',
|
||||
tryToAsk: 'سعی کنید بپرسید',
|
||||
},
|
||||
moreLikeThis: {
|
||||
title: 'بیشتر از این',
|
||||
description: 'تولید چندین متن به طور همزمان، و سپس ویرایش و ادامه تولید',
|
||||
generateNumTip: 'تعداد تولید هر بار',
|
||||
tip: 'استفاده از این ویژگی هزینههای اضافی توکنها را به همراه دارد',
|
||||
},
|
||||
speechToText: {
|
||||
title: 'تبدیل گفتار به متن',
|
||||
description: 'پس از فعال شدن، میتوانید از ورودی صوتی استفاده کنید.',
|
||||
resDes: 'ورودی صوتی فعال شده است',
|
||||
},
|
||||
textToSpeech: {
|
||||
title: 'تبدیل متن به گفتار',
|
||||
description: 'پس از فعال شدن، متن میتواند به گفتار تبدیل شود.',
|
||||
resDes: 'تبدیل متن به صدا فعال شده است',
|
||||
},
|
||||
citation: {
|
||||
title: 'ارجاعات و استنادات',
|
||||
description: 'پس از فعال شدن، سند منبع و بخش استناد شده از محتوای تولید شده را نشان میدهد.',
|
||||
resDes: 'ارجاعات و استنادات فعال شده است',
|
||||
},
|
||||
annotation: {
|
||||
title: 'پاسخ حاشیهنویسی',
|
||||
description: 'میتوانید پاسخهای با کیفیت بالا را به صورت دستی به حافظه کش اضافه کنید تا با سوالات مشابه کاربران تطبیق یابد.',
|
||||
resDes: 'پاسخ حاشیهنویسی فعال شده است',
|
||||
scoreThreshold: {
|
||||
title: 'آستانه امتیاز',
|
||||
description: 'Used to set the similarity threshold for annotation reply.',
|
||||
easyMatch: 'تطابق آسان',
|
||||
accurateMatch: 'تطابق دقیق',
|
||||
},
|
||||
matchVariable: {
|
||||
title: 'تغییر متغیر',
|
||||
choosePlaceholder: 'انتخاب متغیر تغییر',
|
||||
},
|
||||
cacheManagement: 'حاشیه نویسی',
|
||||
cached: 'حاشیه نویسی شده',
|
||||
remove: 'حذف',
|
||||
removeConfirm: 'این حاشیه نویسی را حذف کنید؟',
|
||||
add: 'افزودن حاشیه نویسی',
|
||||
edit: 'ویرایش حاشیه نویسی',
|
||||
},
|
||||
dataSet: {
|
||||
title: 'زمینه',
|
||||
noData: 'شما میتوانید دانش را به عنوان زمینه وارد کنید',
|
||||
selectTitle: 'انتخاب دانش مرجع',
|
||||
selected: 'دانش انتخاب شده',
|
||||
noDataSet: 'هیچ دانشی یافت نشد',
|
||||
toCreate: 'برای ایجاد بروید',
|
||||
notSupportSelectMulti: 'در حال حاضر فقط یک دانش پشتیبانی میشود',
|
||||
queryVariable: {
|
||||
title: 'متغیر پرس و جو',
|
||||
tip: 'این متغیر به عنوان ورودی پرس و جو برای بازیابی زمینه استفاده خواهد شد و اطلاعات زمینه مرتبط با ورودی این متغیر را به دست میآورد.',
|
||||
choosePlaceholder: 'انتخاب متغیر پرس و جو',
|
||||
noVar: 'بدون متغیر',
|
||||
noVarTip: 'لطفاً متغیری را در بخش متغیرها ایجاد کنید',
|
||||
unableToQueryDataSet: 'عدم امکان پرس و جو از دانش',
|
||||
unableToQueryDataSetTip: 'پرس و جوی موفقیت آمیز دانش ممکن نیست، لطفاً یک متغیر پرس و جو زمینه را در بخش زمینه انتخاب کنید.',
|
||||
ok: 'باشه',
|
||||
contextVarNotEmpty: 'متغیر پرس و جو زمینه نمیتواند خالی باشد',
|
||||
deleteContextVarTitle: 'متغیر "{{varName}}" را حذف کنید؟',
|
||||
deleteContextVarTip: 'این متغیر به عنوان متغیر پرس و جو زمینه تنظیم شده است و حذف آن بر استفاده عادی از دانش تأثیر میگذارد. اگر هنوز نیاز به حذف دارید، لطفاً آن را در بخش زمینه دوباره انتخاب کنید.',
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
title: 'ابزارها',
|
||||
tips: 'ابزارها یک روش استاندارد برای فراخوانی API فراهم میکنند و ورودی کاربر یا متغیرها را به عنوان پارامترهای درخواست برای پرس و جو دادههای خارجی به عنوان زمینه میگیرند.',
|
||||
toolsInUse: '{{count}} ابزار در حال استفاده',
|
||||
modal: {
|
||||
title: 'ابزار',
|
||||
toolType: {
|
||||
title: 'نوع ابزار',
|
||||
placeholder: 'لطفاً نوع ابزار را انتخاب کنید',
|
||||
},
|
||||
name: {
|
||||
title: 'نام',
|
||||
placeholder: 'لطفاً نام را وارد کنید',
|
||||
},
|
||||
variableName: {
|
||||
title: 'نام متغیر',
|
||||
placeholder: 'لطفاً نام متغیر را وارد کنید',
|
||||
},
|
||||
},
|
||||
},
|
||||
conversationHistory: {
|
||||
title: 'تاریخچه مکالمه',
|
||||
description: 'تنظیم پیشوند نامها برای نقشهای مکالمه',
|
||||
tip: 'تاریخچه مکالمه فعال نشده است، لطفاً <histories> را در فراخوانی بالا اضافه کنید.',
|
||||
learnMore: 'بیشتر بدانید',
|
||||
editModal: {
|
||||
title: 'ویرایش نام نقشهای مکالمه',
|
||||
userPrefix: 'پیشوند کاربر',
|
||||
assistantPrefix: 'پیشوند دستیار',
|
||||
},
|
||||
},
|
||||
toolbox: {
|
||||
title: 'جعبه ابزار',
|
||||
},
|
||||
moderation: {
|
||||
title: 'مدیریت محتوا',
|
||||
description: 'خروجی مدل را با استفاده از API مدیریت یا نگهداری فهرست کلمات حساس امن کنید.',
|
||||
allEnabled: 'محتوای ورودی/خروجی فعال شده',
|
||||
inputEnabled: 'محتوای ورودی فعال شده',
|
||||
outputEnabled: 'محتوای خروجی فعال شده',
|
||||
modal: {
|
||||
title: 'تنظیمات مدیریت محتوا',
|
||||
provider: {
|
||||
title: 'ارائه دهنده',
|
||||
openai: 'مدیریت OpenAI',
|
||||
openaiTip: {
|
||||
prefix: 'مدیریت OpenAI نیاز به کلید API OpenAI دارد که در ',
|
||||
suffix: ' تنظیم شده باشد.',
|
||||
},
|
||||
keywords: 'کلمات کلیدی',
|
||||
},
|
||||
keywords: {
|
||||
tip: 'هر خط یک کلمه، با شکست خطوط جدا شده. حداکثر 100 کاراکتر در هر خط.',
|
||||
placeholder: 'هر خط یک کلمه، با شکست خطوط جدا شده',
|
||||
line: 'خط',
|
||||
},
|
||||
content: {
|
||||
input: 'مدیریت محتوای ورودی',
|
||||
output: 'مدیریت محتوای خروجی',
|
||||
preset: 'پاسخهای پیش فرض',
|
||||
placeholder: 'محتوای پاسخهای پیش فرض در اینجا',
|
||||
condition: 'مدیریت محتوای ورودی و خروجی حداقل یک مورد فعال شده است',
|
||||
fromApi: 'پاسخهای پیش فرض از API برگردانده میشود',
|
||||
errorMessage: 'پاسخهای پیش فرض نمیتواند خالی باشد',
|
||||
supportMarkdown: 'پشتیبانی از Markdown',
|
||||
},
|
||||
openaiNotConfig: {
|
||||
before: 'مدیریت OpenAI نیاز به کلید API OpenAI دارد که در',
|
||||
after: '',
|
||||
},
|
||||
},
|
||||
contentEnableLabel: 'مدیریت محتوا فعال شده است',
|
||||
},
|
||||
generate: {
|
||||
title: 'تولید کننده دستورالعمل',
|
||||
description: 'تولید کننده دستورالعمل از مدل تنظیم شده برای بهینه سازی دستورالعملها برای کیفیت بالاتر و ساختار بهتر استفاده میکند. لطفاً دستورالعملهای واضح و دقیقی بنویسید.',
|
||||
tryIt: 'امتحان کنید',
|
||||
instruction: 'دستورالعملها',
|
||||
instructionPlaceHolder: 'دستورالعملهای واضح و خاصی بنویسید.',
|
||||
generate: 'تولید',
|
||||
resTitle: 'دستورالعمل تولید شده',
|
||||
noDataLine1: 'موارد استفاده خود را در سمت چپ توصیف کنید،',
|
||||
noDataLine2: 'پیشنمایش ارکستراسیون در اینجا نشان داده خواهد شد.',
|
||||
apply: 'اعمال',
|
||||
loading: 'در حال ارکستراسیون برنامه برای شما...',
|
||||
overwriteTitle: 'آیا تنظیمات موجود را لغو میکنید؟',
|
||||
overwriteMessage: 'اعمال این دستورالعمل تنظیمات موجود را لغو خواهد کرد.',
|
||||
template: {
|
||||
pythonDebugger: {
|
||||
name: 'اشکالزدای پایتون',
|
||||
instruction: 'یک بات که میتواند بر اساس دستورالعمل شما کد تولید و اشکالزدایی کند',
|
||||
},
|
||||
translation: {
|
||||
name: 'ترجمه',
|
||||
instruction: 'یک مترجم که میتواند چندین زبان را ترجمه کند',
|
||||
},
|
||||
professionalAnalyst: {
|
||||
name: 'تحلیلگر حرفهای',
|
||||
instruction: 'استخراج بینشها، شناسایی ریسک و خلاصهسازی اطلاعات کلیدی از گزارشهای طولانی به یک یادداشت کوتاه',
|
||||
},
|
||||
excelFormulaExpert: {
|
||||
name: 'کارشناس فرمول اکسل',
|
||||
instruction: 'یک چتبات که میتواند به کاربران مبتدی کمک کند فرمولهای اکسل را بر اساس دستورالعملهای کاربر درک، استفاده و ایجاد کنند',
|
||||
},
|
||||
travelPlanning: {
|
||||
name: 'برنامهریزی سفر',
|
||||
instruction: 'دستیار برنامهریزی سفر یک ابزار هوشمند است که به کاربران کمک میکند سفرهای خود را به راحتی برنامهریزی کنند',
|
||||
},
|
||||
SQLSorcerer: {
|
||||
name: 'جادوگر SQL',
|
||||
instruction: 'تبدیل زبان روزمره به پرس و جوهای SQL',
|
||||
},
|
||||
GitGud: {
|
||||
name: 'Git gud',
|
||||
instruction: 'تولید دستورات مناسب Git بر اساس اقدامات توصیف شده توسط کاربر در کنترل نسخه',
|
||||
},
|
||||
meetingTakeaways: {
|
||||
name: 'نتایج جلسات',
|
||||
instruction: 'خلاصهسازی جلسات به صورت مختصر شامل موضوعات بحث، نکات کلیدی و موارد اقدام',
|
||||
},
|
||||
writingsPolisher: {
|
||||
name: 'پولیشگر نوشتهها',
|
||||
instruction: 'استفاده از تکنیکهای ویرایش پیشرفته برای بهبود نوشتههای شما',
|
||||
},
|
||||
},
|
||||
},
|
||||
resetConfig: {
|
||||
title: 'بازنشانی تأیید میشود؟',
|
||||
message: 'بازنشانی تغییرات را لغو کرده و تنظیمات منتشر شده آخر را بازیابی میکند.',
|
||||
},
|
||||
errorMessage: {
|
||||
nameOfKeyRequired: 'نام کلید: {{key}} مورد نیاز است',
|
||||
valueOfVarRequired: 'مقدار {{key}} نمیتواند خالی باشد',
|
||||
queryRequired: 'متن درخواست مورد نیاز است.',
|
||||
waitForResponse: 'لطفاً منتظر پاسخ به پیام قبلی بمانید.',
|
||||
waitForBatchResponse: 'لطفاً منتظر پاسخ به کار دستهای بمانید.',
|
||||
notSelectModel: 'لطفاً یک مدل را انتخاب کنید',
|
||||
waitForImgUpload: 'لطفاً منتظر بارگذاری تصویر بمانید',
|
||||
},
|
||||
chatSubTitle: 'دستورالعملها',
|
||||
completionSubTitle: 'پیشوند پرس و جو',
|
||||
promptTip: 'دستورالعملها و محدودیتها پاسخهای AI را هدایت میکنند. متغیرهایی مانند {{input}} را درج کنید. این دستورالعمل برای کاربران قابل مشاهده نخواهد بود.',
|
||||
formattingChangedTitle: 'قالببندی تغییر کرد',
|
||||
formattingChangedText: 'تغییر قالببندی منطقه اشکالزدایی را بازنشانی خواهد کرد، آیا مطمئن هستید؟',
|
||||
variableTitle: 'متغیرها',
|
||||
variableTip: 'کاربران متغیرها را در فرم پر میکنند و به طور خودکار متغیرها را در دستورالعملها جایگزین میکنند.',
|
||||
notSetVar: 'متغیرها به کاربران اجازه میدهند که کلمات پرس و جو یا جملات ابتدایی را هنگام پر کردن فرم معرفی کنند. شما میتوانید سعی کنید "{{input}}" را در کلمات پرس و جو وارد کنید.',
|
||||
autoAddVar: 'متغیرهای تعریف نشدهای که در پیشپرسش ذکر شدهاند، آیا میخواهید آنها را به فرم ورودی کاربر اضافه کنید؟',
|
||||
variableTable: {
|
||||
key: 'کلید متغیر',
|
||||
name: 'نام فیلد ورودی کاربر',
|
||||
optional: 'اختیاری',
|
||||
type: 'نوع ورودی',
|
||||
action: 'اقدامات',
|
||||
typeString: 'رشته',
|
||||
typeSelect: 'انتخاب',
|
||||
},
|
||||
varKeyError: {
|
||||
canNoBeEmpty: '{{key}} مطلوب',
|
||||
tooLong: '{{key}} طولانی است. نمیتواند بیش از 30 کاراکتر باشد',
|
||||
notValid: '{{key}} نامعتبر است. فقط میتواند شامل حروف، اعداد و زیرخط باشد',
|
||||
notStartWithNumber: '{{key}} نمیتواند با عدد شروع شود',
|
||||
keyAlreadyExists: '{{key}} از قبل وجود دارد',
|
||||
},
|
||||
otherError: {
|
||||
promptNoBeEmpty: 'پرس و جو نمیتواند خالی باشد',
|
||||
historyNoBeEmpty: 'تاریخچه مکالمه باید در پرس و جو تنظیم شود',
|
||||
queryNoBeEmpty: 'پرس و جو باید در پرس و جو تنظیم شود',
|
||||
},
|
||||
variableConfig: {
|
||||
'addModalTitle': 'افزودن فیلد ورودی',
|
||||
'editModalTitle': 'ویرایش فیلد ورودی',
|
||||
'description': 'تنظیم برای متغیر {{varName}}',
|
||||
'fieldType': 'نوع فیلد',
|
||||
'string': 'متن کوتاه',
|
||||
'text-input': 'متن کوتاه',
|
||||
'paragraph': 'پاراگراف',
|
||||
'select': 'انتخاب',
|
||||
'number': 'عدد',
|
||||
'notSet': 'تنظیم نشده، سعی کنید {{input}} را در پرس و جو وارد کنید',
|
||||
'stringTitle': 'گزینههای جعبه متن فرم',
|
||||
'maxLength': 'حداکثر طول',
|
||||
'options': 'گزینهها',
|
||||
'addOption': 'افزودن گزینه',
|
||||
'apiBasedVar': 'متغیر مبتنی بر API',
|
||||
'varName': 'نام متغیر',
|
||||
'labelName': 'نام برچسب',
|
||||
'inputPlaceholder': 'لطفاً وارد کنید',
|
||||
'content': 'محتوا',
|
||||
'required': 'مورد نیاز',
|
||||
'hide': 'مخفی کردن',
|
||||
'errorMsg': {
|
||||
labelNameRequired: 'نام برچسب مورد نیاز است',
|
||||
varNameCanBeRepeat: 'نام متغیر نمیتواند تکراری باشد',
|
||||
atLeastOneOption: 'حداقل یک گزینه مورد نیاز است',
|
||||
optionRepeat: 'گزینههای تکراری وجود دارد',
|
||||
},
|
||||
},
|
||||
vision: {
|
||||
name: 'بینایی',
|
||||
description: 'فعال کردن بینایی به مدل اجازه میدهد تصاویر را دریافت کند و به سوالات مربوط به آنها پاسخ دهد.',
|
||||
settings: 'تنظیمات',
|
||||
visionSettings: {
|
||||
title: 'تنظیمات بینایی',
|
||||
resolution: 'وضوح',
|
||||
resolutionTooltip: `وضوح پایین به مدل اجازه میدهد نسخه 512x512 کموضوح تصویر را دریافت کند و تصویر را با بودجه 65 توکن نمایش دهد. این به API اجازه میدهد پاسخهای سریعتری بدهد و توکنهای ورودی کمتری برای موارد استفاده که نیاز به جزئیات بالا ندارند مصرف کند.
|
||||
\n
|
||||
وضوح بالا ابتدا به مدل اجازه میدهد تصویر کموضوح را ببیند و سپس قطعات جزئیات تصویر ورودی را به عنوان مربعهای 512px ایجاد کند. هر کدام از قطعات جزئیات از بودجه توکن دو برابر استفاده میکنند که در مجموع 129 توکن است.`,
|
||||
high: 'بالا',
|
||||
low: 'پایین',
|
||||
uploadMethod: 'روش بارگذاری',
|
||||
both: 'هر دو',
|
||||
localUpload: 'بارگذاری محلی',
|
||||
url: 'URL',
|
||||
uploadLimit: 'محدودیت بارگذاری',
|
||||
},
|
||||
},
|
||||
voice: {
|
||||
name: 'صدا',
|
||||
defaultDisplay: 'صدا پیش فرض',
|
||||
description: 'تنظیمات تبدیل متن به گفتار',
|
||||
settings: 'تنظیمات',
|
||||
voiceSettings: {
|
||||
title: 'تنظیمات صدا',
|
||||
language: 'زبان',
|
||||
resolutionTooltip: 'پشتیبانی از زبان صدای تبدیل متن به گفتار.',
|
||||
voice: 'صدا',
|
||||
autoPlay: 'پخش خودکار',
|
||||
autoPlayEnabled: 'روشن کردن',
|
||||
autoPlayDisabled: 'خاموش کردن',
|
||||
},
|
||||
},
|
||||
openingStatement: {
|
||||
title: 'شروع مکالمه',
|
||||
add: 'افزودن',
|
||||
writeOpener: 'نوشتن آغازگر',
|
||||
placeholder: 'پیام آغازگر خود را اینجا بنویسید، میتوانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید.',
|
||||
openingQuestion: 'سوالات آغازین',
|
||||
openingQuestionPlaceholder: 'میتوانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید.',
|
||||
noDataPlaceHolder: 'شروع مکالمه با کاربر میتواند به AI کمک کند تا ارتباط نزدیکتری با آنها برقرار کند.',
|
||||
varTip: 'میتوانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید',
|
||||
tooShort: 'حداقل 20 کلمه از پرسش اولیه برای تولید نظرات آغازین مکالمه مورد نیاز است.',
|
||||
notIncludeKey: 'پرسش اولیه شامل متغیر: {{key}} نمیشود. لطفاً آن را به پرسش اولیه اضافه کنید.',
|
||||
},
|
||||
modelConfig: {
|
||||
model: 'مدل',
|
||||
setTone: 'تنظیم لحن پاسخها',
|
||||
title: 'مدل و پارامترها',
|
||||
modeType: {
|
||||
chat: 'چت',
|
||||
completion: 'تکمیل',
|
||||
},
|
||||
},
|
||||
inputs: {
|
||||
title: 'اشکالزدایی و پیشنمایش',
|
||||
noPrompt: 'سعی کنید پرسشهایی را در ورودی پیشپرسش بنویسید',
|
||||
userInputField: 'فیلد ورودی کاربر',
|
||||
noVar: 'مقدار متغیر را پر کنید، که به طور خودکار در کلمات پرس و جو در هر بار شروع یک جلسه جدید جایگزین میشود.',
|
||||
chatVarTip: 'مقدار متغیر را پر کنید، که به طور خودکار در کلمات پرس و جو در هر بار شروع یک جلسه جدید جایگزین میشود',
|
||||
completionVarTip: 'مقدار متغیر را پر کنید، که به طور خودکار در کلمات پرس و جو در هر بار ارسال سوال جایگزین میشود.',
|
||||
previewTitle: 'پیشنمایش پرس و جو',
|
||||
queryTitle: 'محتوای پرس و جو',
|
||||
queryPlaceholder: 'لطفاً متن درخواست را وارد کنید.',
|
||||
run: 'اجرا',
|
||||
},
|
||||
result: 'متن خروجی',
|
||||
datasetConfig: {
|
||||
settingTitle: 'تنظیمات بازیابی',
|
||||
knowledgeTip: 'روی دکمه "+" کلیک کنید تا دانش اضافه شود',
|
||||
retrieveOneWay: {
|
||||
title: 'بازیابی N به 1',
|
||||
description: 'بر اساس نیت کاربر و توصیفات دانش، عامل بهترین دانش را برای پرس و جو به طور خودکار انتخاب میکند. بهترین برای برنامههایی با دانش محدود و مشخص.',
|
||||
},
|
||||
retrieveMultiWay: {
|
||||
title: 'بازیابی چند مسیره',
|
||||
description: 'بر اساس نیت کاربر، از تمام دانش پرس و جو میکند، متنهای مرتبط از منابع چندگانه بازیابی میکند و بهترین نتایج مطابقت با پرس و جوی کاربر را پس از مرتبسازی مجدد انتخاب میکند.',
|
||||
},
|
||||
rerankModelRequired: 'مدل مرتبسازی مجدد مورد نیاز است',
|
||||
params: 'پارامترها',
|
||||
top_k: 'Top K',
|
||||
top_kTip: 'برای فیلتر کردن تکههایی که بیشترین شباهت به سوالات کاربر دارند استفاده میشود. سیستم همچنین به طور دینامیک مقدار Top K را بر اساس max_tokens مدل انتخاب شده تنظیم میکند.',
|
||||
score_threshold: 'آستانه نمره',
|
||||
score_thresholdTip: 'برای تنظیم آستانه شباهت برای فیلتر کردن تکهها استفاده میشود.',
|
||||
retrieveChangeTip: 'تغییر حالت شاخص و حالت بازیابی ممکن است بر برنامههای مرتبط با این دانش تأثیر بگذارد.',
|
||||
},
|
||||
debugAsSingleModel: 'اشکالزدایی به عنوان مدل تک',
|
||||
debugAsMultipleModel: 'اشکالزدایی به عنوان مدل چندگانه',
|
||||
duplicateModel: 'تکراری',
|
||||
publishAs: 'انتشار به عنوان',
|
||||
assistantType: {
|
||||
name: 'نوع دستیار',
|
||||
chatAssistant: {
|
||||
name: 'دستیار پایه',
|
||||
description: 'ساخت دستیار مبتنی بر چت با استفاده از مدل زبان بزرگ',
|
||||
},
|
||||
agentAssistant: {
|
||||
name: 'دستیار عامل',
|
||||
description: 'ساخت یک عامل هوشمند که میتواند ابزارها را به طور خودکار برای تکمیل وظایف انتخاب کند',
|
||||
},
|
||||
},
|
||||
agent: {
|
||||
agentMode: 'حالت عامل',
|
||||
agentModeDes: 'تنظیم نوع حالت استنتاج برای عامل',
|
||||
agentModeType: {
|
||||
ReACT: 'ReAct',
|
||||
functionCall: 'فراخوانی تابع',
|
||||
},
|
||||
setting: {
|
||||
name: 'تنظیمات عامل',
|
||||
description: 'تنظیمات دستیار عامل به شما اجازه میدهد حالت عامل و ویژگیهای پیشرفته مانند پرسشهای ساخته شده را تنظیم کنید، فقط در نوع عامل موجود است.',
|
||||
maximumIterations: {
|
||||
name: 'حداکثر تکرارها',
|
||||
description: 'محدود کردن تعداد تکرارهایی که دستیار عامل میتواند اجرا کند',
|
||||
},
|
||||
},
|
||||
buildInPrompt: 'پرسشهای ساخته شده',
|
||||
firstPrompt: 'اولین پرسش',
|
||||
nextIteration: 'تکرار بعدی',
|
||||
promptPlaceholder: 'پرسش خود را اینجا بنویسید',
|
||||
tools: {
|
||||
name: 'ابزارها',
|
||||
description: 'استفاده از ابزارها میتواند قابلیتهای LLM را گسترش دهد، مانند جستجو در اینترنت یا انجام محاسبات علمی',
|
||||
enabled: 'فعال',
|
||||
},
|
||||
},
|
||||
fileUpload: {
|
||||
title: 'آپلود فایل',
|
||||
description: 'جعبه ورودی چت امکان آپلود تصاویر، اسناد و سایر فایلها را فراهم میکند.',
|
||||
supportedTypes: 'انواع فایلهای پشتیبانی شده',
|
||||
numberLimit: 'حداکثر آپلود',
|
||||
modalTitle: 'تنظیمات آپلود فایل',
|
||||
},
|
||||
imageUpload: {
|
||||
title: 'آپلود تصویر',
|
||||
description: 'امکان آپلود تصاویر را فراهم میکند.',
|
||||
supportedTypes: 'انواع فایلهای پشتیبانی شده',
|
||||
numberLimit: 'حداکثر آپلود',
|
||||
modalTitle: 'تنظیمات آپلود تصویر',
|
||||
},
|
||||
bar: {
|
||||
empty: 'فعالسازی ویژگی برای بهبود تجربه کاربری اپلیکیشن وب',
|
||||
enableText: 'ویژگیهای فعال',
|
||||
manage: 'مدیریت',
|
||||
},
|
||||
documentUpload: {
|
||||
title: 'سند',
|
||||
description: 'فعالسازی سند به مدل اجازه میدهد اسناد را دریافت کرده و درباره آنها پاسخ دهد.',
|
||||
},
|
||||
audioUpload: {
|
||||
title: 'صوتی',
|
||||
description: 'فعالسازی صوت به مدل اجازه میدهد فایلهای صوتی را برای رونویسی و تجزیه و تحلیل پردازش کند.',
|
||||
},
|
||||
},
|
||||
codegen: {
|
||||
apply: 'درخواست',
|
||||
resTitle: 'کد تولید شده',
|
||||
generate: 'تولید',
|
||||
loading: 'تولید کد...',
|
||||
applyChanges: 'اعمال تغییرات',
|
||||
generatedCodeTitle: 'کد تولید شده',
|
||||
title: 'ژنراتور کد',
|
||||
instruction: 'دستورالعمل',
|
||||
instructionPlaceholder: 'توضیحات دقیق کدی را که می خواهید تولید کنید وارد کنید.',
|
||||
overwriteConfirmMessage: 'این عمل کد موجود را بازنویسی می کند. آیا می خواهید ادامه دهید؟',
|
||||
overwriteConfirmTitle: 'کد موجود را بازنویسی کنید؟',
|
||||
noDataLine2: 'پیش نمایش کد در اینجا نشان داده می شود.',
|
||||
noDataLine1: 'مورد استفاده خود را در سمت چپ شرح دهید،',
|
||||
description: 'Code Generator از مدل های پیکربندی شده برای تولید کد با کیفیت بالا بر اساس دستورالعمل های شما استفاده می کند. لطفا دستورالعمل های واضح و دقیق ارائه دهید.',
|
||||
},
|
||||
generate: {
|
||||
template: {
|
||||
pythonDebugger: {
|
||||
name: 'اشکال زدایی پایتون',
|
||||
instruction: 'رباتی که می تواند کد شما را بر اساس دستورالعمل شما تولید و اشکال زدایی کند',
|
||||
},
|
||||
translation: {
|
||||
name: 'ترجمه',
|
||||
instruction: 'مترجمی که می تواند چندین زبان را ترجمه کند',
|
||||
},
|
||||
professionalAnalyst: {
|
||||
name: 'تحلیلگر حرفه ای',
|
||||
instruction: 'استخراج بینش، شناسایی ریسک و تقطیر اطلاعات کلیدی از گزارش های طولانی در یک یادداشت',
|
||||
},
|
||||
excelFormulaExpert: {
|
||||
name: 'کارشناس فرمول اکسل',
|
||||
instruction: 'یک ربات چت که می تواند به کاربران تازه کار کمک کند تا فرمول های اکسل را بر اساس دستورالعمل های کاربر درک، استفاده و ایجاد کنند',
|
||||
},
|
||||
travelPlanning: {
|
||||
name: 'برنامه ریزی سفر',
|
||||
instruction: 'دستیار برنامه ریزی سفر ابزاری هوشمند است که برای کمک به کاربران در برنامه ریزی بدون زحمت سفرهای خود طراحی شده است',
|
||||
},
|
||||
SQLSorcerer: {
|
||||
name: 'جادوگر SQL',
|
||||
instruction: 'تبدیل زبان روزمره به کوئری های SQL',
|
||||
},
|
||||
GitGud: {
|
||||
name: 'گیت گود',
|
||||
instruction: 'فرمان های Git مناسب را بر اساس اکشن های کنترل نسخه توصیف شده توسط کاربر ایجاد کنید',
|
||||
},
|
||||
meetingTakeaways: {
|
||||
name: 'نکات مهم جلسه',
|
||||
instruction: 'جلسات را به خلاصه های مختصر از جمله موضوعات بحث، نکات کلیدی و موارد اقدام تقطیر کنید',
|
||||
},
|
||||
writingsPolisher: {
|
||||
name: 'پولیش نوشتن',
|
||||
instruction: 'از تکنیک های پیشرفته ویرایش کپی برای بهبود نوشته های خود استفاده کنید',
|
||||
},
|
||||
},
|
||||
title: 'ژنراتور سریع',
|
||||
resTitle: 'اعلان تولید شده',
|
||||
overwriteTitle: 'پیکربندی موجود را لغو کنید؟',
|
||||
generate: 'تولید',
|
||||
noDataLine1: 'مورد استفاده خود را در سمت چپ شرح دهید،',
|
||||
apply: 'درخواست',
|
||||
instruction: 'دستورالعمل',
|
||||
overwriteMessage: 'اعمال این اعلان پیکربندی موجود را لغو می کند.',
|
||||
instructionPlaceHolder: 'دستورالعمل های واضح و مشخص بنویسید.',
|
||||
tryIt: 'آن را امتحان کنید',
|
||||
noDataLine2: 'پیش نمایش ارکستراسیون در اینجا نشان داده می شود.',
|
||||
loading: 'هماهنگ کردن برنامه برای شما...',
|
||||
description: 'Prompt Generator از مدل پیکربندی شده برای بهینه سازی درخواست ها برای کیفیت بالاتر و ساختار بهتر استفاده می کند. لطفا دستورالعمل های واضح و دقیق بنویسید.',
|
||||
press: 'فشار',
|
||||
to: 'به',
|
||||
version: 'نسخه',
|
||||
latest: 'آخرین',
|
||||
optional: 'اختیاری',
|
||||
dismiss: 'رد کردن',
|
||||
insertContext: 'متن را وارد کنید',
|
||||
optimizationNote: 'یادداشت بهینهسازی',
|
||||
versions: 'نسخهها',
|
||||
optimizePromptTooltip: 'بهینهسازی در تولیدکننده پرامپت',
|
||||
idealOutput: 'خروجی ایده ال',
|
||||
instructionPlaceHolderLine1: 'خروجی را مختصرتر کنید و نکات اصلی را حفظ کنید.',
|
||||
instructionPlaceHolderTitle: 'توصیف کنید که چگونه میخواهید این دستورالعمل را بهبود ببخشید. به عنوان مثال:',
|
||||
idealOutputPlaceholder: 'ایدهآل پاسخ شما چه شکلی باید باشد؟ لطفاً درباره فرمت، طول، لحن و الزامات محتوایی آن توضیح دهید ...',
|
||||
newNoDataLine1: 'یک دستور در ستون چپ بنویسید و برای مشاهده پاسخ، روی تولید کلیک کنید.',
|
||||
instructionPlaceHolderLine3: 'لحن خیلی تند است، لطفاً آن را دوستانهتر کنید.',
|
||||
codeGenInstructionPlaceHolderLine: 'هر چه بازخورد دقیقتر باشد، مانند نوع دادههای ورودی و خروجی و همچنین نحوه پردازش متغیرها، تولید کد دقیقتر خواهد بود.',
|
||||
instructionPlaceHolderLine2: 'فرمت خروجی نادرست است، لطفاً به شکل JSON به دقت پایبند باشید.',
|
||||
},
|
||||
resetConfig: {
|
||||
title: 'بازنشانی را تأیید کنید؟',
|
||||
message: 'بازنشانی تغییرات را دور می اندازد و آخرین پیکربندی منتشر شده را بازیابی می کند.',
|
||||
},
|
||||
errorMessage: {
|
||||
notSelectModel: 'لطفا یک مدل را انتخاب کنید',
|
||||
waitForResponse: 'لطفا منتظر بمانید تا پاسخ به پیام قبلی کامل شود.',
|
||||
queryRequired: 'درخواست متن الزامی است.',
|
||||
waitForFileUpload: 'لطفا منتظر بمانید تا فایل/فایل ها آپلود شوند',
|
||||
waitForImgUpload: 'لطفا منتظر بمانید تا تصویر آپلود شود',
|
||||
waitForBatchResponse: 'لطفا منتظر بمانید تا پاسخ به کار دسته ای تکمیل شود.',
|
||||
nameOfKeyRequired: 'نام کلید: {{key}} الزامی است',
|
||||
valueOfVarRequired: 'مقدار {{key}} نمیتواند خالی باشد',
|
||||
},
|
||||
warningMessage: {
|
||||
timeoutExceeded: 'نتایج به دلیل مهلت زمانی نمایش داده نمی شوند. لطفا برای جمع آوری نتایج کامل به گزارش ها مراجعه کنید.',
|
||||
},
|
||||
variableTable: {
|
||||
key: 'کلید متغیر',
|
||||
typeSelect: 'انتخاب',
|
||||
action: 'اقدامات',
|
||||
typeString: 'رشته',
|
||||
name: 'نام فیلد ورودی کاربر',
|
||||
type: 'نوع ورودی',
|
||||
},
|
||||
varKeyError: {
|
||||
canNoBeEmpty: '{{key}} مورد نیاز است',
|
||||
tooLong: '{{key}} خیلی طولانی است. نمیتواند بیش از ۳۰ کاراکتر باشد',
|
||||
notValid: '{{key}} نامعتبر است. فقط میتواند شامل حروف، اعداد و زیرخط باشد',
|
||||
notStartWithNumber: '{{key}} نمیتواند با یک عدد شروع شود',
|
||||
keyAlreadyExists: '{{key}} قبلاً موجود است',
|
||||
},
|
||||
otherError: {
|
||||
promptNoBeEmpty: 'اعلان نمی تواند خالی باشد',
|
||||
historyNoBeEmpty: 'سابقه مکالمه باید در اعلان تنظیم شود',
|
||||
queryNoBeEmpty: 'پرس و جو باید در اعلان تنظیم شود',
|
||||
},
|
||||
variableConfig: {
|
||||
'file': {
|
||||
image: {
|
||||
name: 'تصویر',
|
||||
},
|
||||
audio: {
|
||||
name: 'صوتی',
|
||||
},
|
||||
document: {
|
||||
name: 'سند',
|
||||
},
|
||||
video: {
|
||||
name: 'ویدئو',
|
||||
},
|
||||
custom: {
|
||||
name: 'انواع فایل های دیگر',
|
||||
createPlaceholder: ' پسوند فایل، به عنوان مثال .doc',
|
||||
description: 'انواع فایل های دیگر را مشخص کنید.',
|
||||
},
|
||||
supportFileTypes: 'انواع فایل های پشتیبانی',
|
||||
},
|
||||
'errorMsg': {
|
||||
optionRepeat: 'دارای گزینه های تکرار',
|
||||
varNameCanBeRepeat: 'نام متغیر را نمی توان تکرار کرد',
|
||||
labelNameRequired: 'نام برچسب الزامی است',
|
||||
atLeastOneOption: 'حداقل یک گزینه مورد نیاز است',
|
||||
},
|
||||
'number': 'شماره',
|
||||
'hide': 'مخفی کردن',
|
||||
'both': 'هر دو',
|
||||
'single-file': 'تک فایل',
|
||||
'select': 'انتخاب',
|
||||
'inputPlaceholder': 'لطفا وارد کنید',
|
||||
'editModalTitle': 'ویرایش فیلد ورودی',
|
||||
'paragraph': 'پاراگراف',
|
||||
'fieldType': 'نوع فیلد',
|
||||
'maxLength': 'حداکثر طول',
|
||||
'varName': 'نام متغیر',
|
||||
'maxNumberOfUploads': 'حداکثر تعداد آپلود',
|
||||
'noDefaultValue': 'بدون مقدار پیش فرض',
|
||||
'addOption': 'افزودن گزینه',
|
||||
'stringTitle': 'گزینه های جعبه متن فرم',
|
||||
'options': 'گزینه',
|
||||
'selectDefaultValue': 'مقدار پیش فرض را انتخاب کنید',
|
||||
'content': 'محتوای',
|
||||
'multi-files': 'لیست فایل ها',
|
||||
'labelName': 'نام برچسب',
|
||||
'defaultValue': 'مقدار پیش فرض',
|
||||
'required': 'مورد نیاز',
|
||||
'uploadFileTypes': 'آپلود انواع فایل',
|
||||
'apiBasedVar': 'متغیر مبتنی بر API',
|
||||
'addModalTitle': 'افزودن فیلد ورودی',
|
||||
'string': 'متن کوتاه',
|
||||
'text-input': 'متن کوتاه',
|
||||
'localUpload': 'آپلود محلی',
|
||||
'json': 'کد JSON',
|
||||
'jsonSchema': 'طرحواره JSON',
|
||||
'optional': 'اختیاری',
|
||||
'checkbox': 'چک باکس',
|
||||
'unit': 'واحد',
|
||||
'tooltips': 'Tooltips',
|
||||
'uploadMethod': 'روش آپلود',
|
||||
'displayName': 'نام نمایشی',
|
||||
'startChecked': 'شروع بررسی شده',
|
||||
'noDefaultSelected': 'انتخاب نکنید',
|
||||
'placeholder': 'مکان نگهدارنده',
|
||||
'showAllSettings': 'نمایش همه تنظیمات',
|
||||
'startSelectedOption': 'گزینه انتخاب شده را شروع کنید',
|
||||
'defaultValuePlaceholder': 'مقدار پیش فرض را وارد کنید تا فیلد را از قبل پر کنید',
|
||||
'unitPlaceholder': 'نمایش واحدها بعد از اعداد، به عنوان مثال توکن ها',
|
||||
'placeholderPlaceholder': 'متن را وارد کنید تا زمانی که فیلد خالی است نمایش داده شود',
|
||||
'tooltipsPlaceholder': 'نوشتار مفیدی را که هنگام نگه داشتن ماوس روی برچسب نشان داده می شود وارد کنید',
|
||||
'description': 'تنظیم برای متغیر {{varName}}',
|
||||
'notSet': 'تنظیم نشده است، سعی کنید {{input}} را در پیشنویس وارد کنید',
|
||||
'maxNumberTip': 'سند < {{docLimit}}، تصویر < {{imgLimit}}، صوت < {{audioLimit}}، ویدئو < {{videoLimit}}',
|
||||
},
|
||||
vision: {
|
||||
visionSettings: {
|
||||
url: 'آدرس',
|
||||
high: 'بالا',
|
||||
low: 'کم',
|
||||
resolution: 'وضوح',
|
||||
uploadLimit: 'محدودیت آپلود',
|
||||
uploadMethod: 'روش آپلود',
|
||||
localUpload: 'آپلود محلی',
|
||||
title: 'تنظیمات بینایی',
|
||||
both: 'هر دو',
|
||||
resolutionTooltip: 'رزولوشن پایین به مدل اجازه میدهد نسخهای کمرزولوشن از تصویر با اندازه ۵۱۲ در ۵۱۲ دریافت کند و تصویر را با بودجه ۶۵ توکن نمایش دهد. این امکان باعث میشود API پاسخها را سریعتر بازگرداند و توکنهای ورودی کمتری برای مواردی که نیازی به جزئیات بالا ندارند، مصرف کند.\n\nرزولوشن بالا ابتدا به مدل اجازه میدهد تصویر کمرزولوشن را ببیند و سپس کاتهای دقیقی از تصاویر ورودی به صورت مربعهای ۵۱۲ پیکسلی بنا بر اندازه تصویر ورودی ایجاد میکند. هر کدام از کاتهای دقیق از دو برابر بودجه توکن استفاده میکنند که مجموعاً ۱۲۹ توکن میشود.',
|
||||
},
|
||||
settings: 'تنظیمات',
|
||||
name: 'چشم انداز',
|
||||
onlySupportVisionModelTip: 'فقط از مدل های بینایی پشتیبانی می کند',
|
||||
description: 'Enable Vision به مدل اجازه می دهد تا تصاویر را بگیرد و به سؤالات مربوط به آنها پاسخ دهد.',
|
||||
},
|
||||
voice: {
|
||||
voiceSettings: {
|
||||
voice: 'صوتی',
|
||||
autoPlayEnabled: 'در',
|
||||
autoPlayDisabled: 'خاموش',
|
||||
language: 'زبان',
|
||||
title: 'تنظیمات صدا',
|
||||
resolutionTooltip: 'زبان پشتیبانی از صدای متن به گفتار。',
|
||||
autoPlay: 'پخش خودکار',
|
||||
},
|
||||
settings: 'تنظیمات',
|
||||
name: 'صوتی',
|
||||
description: 'متن به گفتار به گفتار تنظیمات',
|
||||
defaultDisplay: 'صدای پیش فرض',
|
||||
},
|
||||
openingStatement: {
|
||||
tooShort: 'حداقل 20 کلمه درخواست اولیه برای ایجاد یک سخنرانی آغازین برای مکالمه مورد نیاز است.',
|
||||
writeOpener: 'ویرایش بازکن',
|
||||
add: 'اضافه کردن',
|
||||
title: 'افتتاحیه مکالمه',
|
||||
openingQuestion: 'سوالات آغازین',
|
||||
noDataPlaceHolder: 'شروع مکالمه با کاربر می تواند به هوش مصنوعی کمک کند تا در برنامه های مکالمه ارتباط نزدیک تری با آنها برقرار کند.',
|
||||
placeholder: 'پیام شروع خود را اینجا بنویسید، میتوانید از متغیرها استفاده کنید، امتحان کنید تایپ {{variable}}.',
|
||||
openingQuestionPlaceholder: 'میتوانید از متغیرها استفاده کنید، امتحان کنید {{variable}} را تایپ کنید.',
|
||||
varTip: 'میتوانید از متغیرها استفاده کنید، نوع {{variable}} را امتحان کنید',
|
||||
notIncludeKey: 'پیام اولیه شامل متغیر {{key}} نیست. لطفاً آن را به پیام اولیه اضافه کنید.',
|
||||
},
|
||||
modelConfig: {
|
||||
modeType: {
|
||||
chat: 'چت',
|
||||
completion: 'کامل',
|
||||
},
|
||||
model: 'مدل',
|
||||
title: 'مدل و پارامترها',
|
||||
setTone: 'لحن پاسخ ها را تنظیم کنید',
|
||||
},
|
||||
inputs: {
|
||||
run: 'اجرا',
|
||||
queryTitle: 'محتوای پرس و جو',
|
||||
userInputField: 'فیلد ورودی کاربر',
|
||||
previewTitle: 'پیش نمایش سریع',
|
||||
title: 'اشکال زدایی و پیش نمایش',
|
||||
queryPlaceholder: 'لطفا متن درخواست را وارد کنید.',
|
||||
noPrompt: 'سعی کنید مقداری اعلان در ورودی پیش از اعلان بنویسید',
|
||||
completionVarTip: 'مقدار متغیر را پر کنید، که هر بار که سوالی ارسال می شود، به طور خودکار در کلمات سریع جایگزین می شود.',
|
||||
chatVarTip: 'مقدار متغیر را پر کنید، که هر بار که یک جلسه جدید شروع می شود، به طور خودکار در کلمه prompt جایگزین می شود',
|
||||
noVar: 'مقدار متغیر را پر کنید، که هر بار که یک جلسه جدید شروع می شود، به طور خودکار در کلمه prompt جایگزین می شود.',
|
||||
},
|
||||
datasetConfig: {
|
||||
retrieveOneWay: {
|
||||
title: 'بازیابی N-to-1',
|
||||
description: 'بر اساس هدف کاربر و توضیحات دانش، عامل به طور مستقل بهترین دانش را برای پرس و جو انتخاب می کند. بهترین برای برنامه های کاربردی با دانش متمایز و محدود.',
|
||||
},
|
||||
retrieveMultiWay: {
|
||||
title: 'بازیابی چند مسیری',
|
||||
description: 'بر اساس هدف کاربر، پرس و جوها را در تمام دانش انجام می دهد، متن مربوطه را از چند منبع بازیابی می کند و پس از رتبه بندی مجدد، بهترین نتایج را مطابق با پرس و جو کاربر انتخاب می کند.',
|
||||
},
|
||||
top_k: 'K بالا',
|
||||
knowledgeTip: 'برای افزودن دانش روی دکمه " کلیک کنید',
|
||||
score_threshold: 'آستانه امتیاز',
|
||||
settingTitle: 'تنظیمات بازیابی',
|
||||
params: 'پارام ها',
|
||||
embeddingModelRequired: 'یک مدل تعبیه پیکربندی شده مورد نیاز است',
|
||||
rerankModelRequired: 'یک مدل Rerank پیکربندی شده مورد نیاز است',
|
||||
score_thresholdTip: 'برای تنظیم آستانه شباهت برای فیلتر کردن تکه ها استفاده می شود.',
|
||||
top_kTip: 'برای فیلتر کردن تکه هایی که بیشتر شبیه به سؤالات کاربر هستند استفاده می شود. این سیستم همچنین با توجه به max_tokens مدل انتخاب شده، مقدار Top K را به صورت پویا تنظیم می کند.',
|
||||
retrieveChangeTip: 'اصلاح حالت نمایه و حالت بازیابی ممکن است بر کاربردهای مرتبط با این دانش تأثیر بگذارد.',
|
||||
},
|
||||
assistantType: {
|
||||
chatAssistant: {
|
||||
description: 'ساخت یک دستیار مبتنی بر چت با استفاده از یک مدل زبان بزرگ',
|
||||
name: 'دستیار پایه',
|
||||
},
|
||||
agentAssistant: {
|
||||
description: 'یک عامل هوشمند بسازید که بتواند به طور مستقل ابزارهایی را برای تکمیل تسک ها انتخاب کند.',
|
||||
name: 'دستیار نماینده',
|
||||
},
|
||||
name: 'نوع دستیار',
|
||||
},
|
||||
agent: {
|
||||
agentModeType: {
|
||||
functionCall: 'فراخوانی تابع',
|
||||
ReACT: 'واکنش',
|
||||
},
|
||||
setting: {
|
||||
maximumIterations: {
|
||||
name: 'حداکثر تکرارها',
|
||||
description: 'تعداد تکرارهایی را که یک دستیار عامل می تواند اجرا کند محدود کنید',
|
||||
},
|
||||
name: 'تنظیمات نماینده',
|
||||
description: 'تنظیمات Agent Assistant امکان تنظیم حالت عامل و ویژگی های پیشرفته مانند اعلان های داخلی را فراهم می کند که فقط در نوع Agent موجود است.',
|
||||
},
|
||||
tools: {
|
||||
enabled: 'فعال',
|
||||
name: 'ابزار',
|
||||
description: 'استفاده از ابزارها می تواند قابلیت های LLM مانند جستجو در اینترنت یا انجام محاسبات علمی را گسترش دهد',
|
||||
},
|
||||
agentMode: 'حالت عامل',
|
||||
nextIteration: 'تکرار بعدی',
|
||||
promptPlaceholder: 'درخواست خود را اینجا بنویسید',
|
||||
agentModeDes: 'نوع حالت استنتاج را برای عامل تنظیم کنید',
|
||||
buildInPrompt: 'اعلان داخلی',
|
||||
firstPrompt: 'اولین اعلان',
|
||||
},
|
||||
result: 'متن خروجی',
|
||||
completionSubTitle: 'اعلان پیشوند',
|
||||
variableTitle: 'متغیرهای',
|
||||
formattingChangedTitle: 'قالب بندی تغییر کرد',
|
||||
chatSubTitle: 'دستورالعمل',
|
||||
debugAsSingleModel: 'اشکال زدایی به عنوان مدل واحد',
|
||||
publishAs: 'انتشار به عنوان',
|
||||
duplicateModel: 'تکراری',
|
||||
noResult: 'خروجی در اینجا نمایش داده می شود.',
|
||||
debugAsMultipleModel: 'اشکال زدایی به عنوان چندین مدل',
|
||||
formattingChangedText: 'با تغییر قالب بندی، ناحیه اشکال زدایی بازنشانی می شود، مطمئن هستید؟',
|
||||
variableTip: 'کاربران متغیرها را در یک فرم پر می کنند و به طور خودکار متغیرها را در اعلان جایگزین می کنند.',
|
||||
autoAddVar: 'متغیرهای تعریف نشده که در پیش اعلان ارجاع داده شده اند، آیا می خواهید آنها را به صورت ورودی کاربر اضافه کنید؟',
|
||||
promptTip: 'پرومپتها پاسخهای هوش مصنوعی را با دستورالعملها و محدودیتها هدایت میکنند. متغیرهایی مانند {{input}} را وارد کنید. این پرومپت برای کاربران قابل مشاهده نخواهد بود.',
|
||||
notSetVar: 'متغیرها به کاربران امکان میدهند تا هنگام پر کردن فرمها، کلمات راهنما یا سخنان افتتاحیه را وارد کنند. میتوانید امتحان کنید که \'{{input}}\' را در کلمات راهنما وارد کنید.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
112
dify/web/i18n/fa-IR/app-log.ts
Normal file
112
dify/web/i18n/fa-IR/app-log.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
const translation = {
|
||||
title: 'لاگها',
|
||||
description: 'لاگها وضعیت اجرایی برنامه را ثبت میکنند، شامل ورودیهای کاربر و پاسخهای هوش مصنوعی.',
|
||||
dateTimeFormat: 'MM/DD/YYYY hh:mm:ss A',
|
||||
table: {
|
||||
header: {
|
||||
updatedTime: 'زمان بهروزرسانی',
|
||||
time: 'زمان ایجاد',
|
||||
endUser: 'کاربر نهایی یا حساب',
|
||||
input: 'ورودی',
|
||||
output: 'خروجی',
|
||||
summary: 'عنوان',
|
||||
messageCount: 'تعداد پیام',
|
||||
userRate: 'امتیاز کاربر',
|
||||
adminRate: 'امتیاز اپراتور',
|
||||
startTime: 'زمان شروع',
|
||||
status: 'وضعیت',
|
||||
runtime: 'زمان اجرا',
|
||||
tokens: 'توکنها',
|
||||
user: 'کاربر نهایی یا حساب',
|
||||
version: 'نسخه',
|
||||
triggered_from: 'فعال شده توسط',
|
||||
},
|
||||
pagination: {
|
||||
previous: 'قبلی',
|
||||
next: 'بعدی',
|
||||
},
|
||||
empty: {
|
||||
noChat: 'هنوز مکالمهای وجود ندارد',
|
||||
noOutput: 'خروجی وجود ندارد',
|
||||
element: {
|
||||
title: 'کسی هست؟',
|
||||
content: 'در اینجا تعاملات بین کاربران نهایی و برنامههای هوش مصنوعی را مشاهده و حاشیهنویسی کنید تا دقت هوش مصنوعی بهبود یابد. میتوانید <shareLink>به اشتراک بگذارید</shareLink> یا <testLink>برنامه وب را تست کنید</testLink> و سپس به این صفحه برگردید.',
|
||||
},
|
||||
},
|
||||
},
|
||||
detail: {
|
||||
time: 'زمان',
|
||||
conversationId: 'شناسه مکالمه',
|
||||
promptTemplate: 'قالب درخواست',
|
||||
promptTemplateBeforeChat: 'قالب درخواست قبل از چت · به عنوان پیام سیستمی',
|
||||
annotationTip: 'بهبودها توسط {{user}} علامتگذاری شده است',
|
||||
timeConsuming: '',
|
||||
second: 'ثانیه',
|
||||
tokenCost: 'توکن مصرفی',
|
||||
loading: 'در حال بارگذاری',
|
||||
operation: {
|
||||
like: 'پسندیدن',
|
||||
dislike: 'نپسندیدن',
|
||||
addAnnotation: 'اضافه کردن بهبود',
|
||||
editAnnotation: 'ویرایش بهبود',
|
||||
annotationPlaceholder: 'پاسخ مورد انتظاری که میخواهید هوش مصنوعی بدهد را وارد کنید، که میتواند برای بهبود مدل و کیفیت تولید متن در آینده استفاده شود.',
|
||||
},
|
||||
variables: 'متغیرها',
|
||||
uploadImages: 'تصاویر آپلود شده',
|
||||
modelParams: 'پارامترهای مدل',
|
||||
},
|
||||
filter: {
|
||||
period: {
|
||||
today: 'امروز',
|
||||
last7days: '7 روز گذشته',
|
||||
last4weeks: '4 هفته گذشته',
|
||||
last3months: '3 ماه گذشته',
|
||||
last12months: '12 ماه گذشته',
|
||||
monthToDate: 'از ابتدای ماه تاکنون',
|
||||
quarterToDate: 'از ابتدای فصل تاکنون',
|
||||
yearToDate: 'از ابتدای سال تاکنون',
|
||||
allTime: 'همه زمانها',
|
||||
last30days: '۳۰ روز گذشته',
|
||||
custom: 'سفارشی',
|
||||
},
|
||||
annotation: {
|
||||
all: 'همه',
|
||||
annotated: 'بهبودهای حاشیهنویسی شده ({{count}} آیتم)',
|
||||
not_annotated: 'حاشیهنویسی نشده',
|
||||
},
|
||||
sortBy: 'مرتبسازی بر اساس:',
|
||||
descending: 'نزولی',
|
||||
ascending: 'صعودی',
|
||||
},
|
||||
workflowTitle: 'لاگهای جریان کاری',
|
||||
workflowSubtitle: 'لاگ عملیات خودکار را ثبت کرده است.',
|
||||
runDetail: {
|
||||
title: 'لاگ مکالمه',
|
||||
workflowTitle: 'جزئیات لاگ',
|
||||
fileListLabel: 'جزئیات فایل',
|
||||
fileListDetail: 'جزئیات',
|
||||
testWithParams: 'تست با پارامترها',
|
||||
},
|
||||
promptLog: 'لاگ درخواست',
|
||||
agentLog: 'لاگ عامل',
|
||||
viewLog: 'مشاهده لاگ',
|
||||
agentLogDetail: {
|
||||
agentMode: 'حالت عامل',
|
||||
toolUsed: 'ابزار استفاده شده',
|
||||
iterations: 'تکرارها',
|
||||
iteration: 'تکرار',
|
||||
finalProcessing: 'پردازش نهایی',
|
||||
},
|
||||
dateFormat: 'MM/DD/YYYY',
|
||||
triggerBy: {
|
||||
debugging: 'رفع اشکال',
|
||||
appRun: 'وب اپ',
|
||||
webhook: 'وبهوک',
|
||||
schedule: 'برنامه',
|
||||
plugin: 'افزونه',
|
||||
ragPipelineRun: 'خط لوله RAG',
|
||||
ragPipelineDebugging: 'رفع اشکال RAG',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
189
dify/web/i18n/fa-IR/app-overview.ts
Normal file
189
dify/web/i18n/fa-IR/app-overview.ts
Normal file
@@ -0,0 +1,189 @@
|
||||
const translation = {
|
||||
welcome: {
|
||||
firstStepTip: 'برای شروع،',
|
||||
enterKeyTip: 'کلید API خود را در زیر وارد کنید',
|
||||
getKeyTip: 'کلید API خود را از داشبورد OpenAI دریافت کنید',
|
||||
placeholder: 'کلید API خود را وارد کنید (مثلاً sk-xxxx)',
|
||||
},
|
||||
apiKeyInfo: {
|
||||
cloud: {
|
||||
trial: {
|
||||
title: 'شما از سهمیه آزمایشی {{providerName}} استفاده میکنید.',
|
||||
description: 'سهمیه آزمایشی برای اهداف تست شما ارائه شده است. قبل از اینکه سهمیه آزمایشی تمام شود، لطفاً ارائهدهنده مدل خود را تنظیم کنید یا سهمیه اضافی خریداری کنید.',
|
||||
},
|
||||
exhausted: {
|
||||
title: 'سهمیه آزمایشی شما تمام شده است، لطفاً کلید API خود را تنظیم کنید.',
|
||||
description: 'شما سهمیه آزمایشی خود را مصرف کردهاید. لطفاً ارائهدهنده مدل خود را تنظیم کنید یا سهمیه اضافی خریداری کنید.',
|
||||
},
|
||||
},
|
||||
selfHost: {
|
||||
title: {
|
||||
row1: 'برای شروع،',
|
||||
row2: 'ابتدا ارائهدهنده مدل خود را تنظیم کنید.',
|
||||
},
|
||||
},
|
||||
callTimes: 'تعداد تماسها',
|
||||
usedToken: 'توکنهای مصرفشده',
|
||||
setAPIBtn: 'برو به تنظیمات ارائهدهنده مدل',
|
||||
tryCloud: 'یا نسخه ابری Dify با سهمیه رایگان را امتحان کنید',
|
||||
},
|
||||
overview: {
|
||||
title: 'نمای کلی',
|
||||
appInfo: {
|
||||
explanation: 'برنامه وب AI آماده به کار',
|
||||
accessibleAddress: 'آدرس عمومی',
|
||||
preview: 'پیشنمایش',
|
||||
regenerate: 'تولید مجدد',
|
||||
regenerateNotice: 'آیا میخواهید آدرس عمومی را دوباره تولید کنید؟',
|
||||
preUseReminder: 'لطفاً قبل از ادامه، web app را فعال کنید.',
|
||||
settings: {
|
||||
entry: 'تنظیمات',
|
||||
title: 'تنظیمات web app',
|
||||
webName: 'نام web app',
|
||||
webDesc: 'توضیحات web app',
|
||||
webDescTip: 'این متن در سمت مشتری نمایش داده میشود و راهنماییهای اولیه در مورد نحوه استفاده از برنامه را ارائه میدهد',
|
||||
webDescPlaceholder: 'توضیحات web app را وارد کنید',
|
||||
language: 'زبان',
|
||||
workflow: {
|
||||
title: 'مراحل کاری',
|
||||
show: 'نمایش',
|
||||
hide: 'مخفی کردن',
|
||||
showDesc: 'نمایش یا پنهان کردن جزئیات گردش کار در web app',
|
||||
subTitle: 'جزئیات گردش کار',
|
||||
},
|
||||
chatColorTheme: 'تم رنگی چت',
|
||||
chatColorThemeDesc: 'تم رنگی چتبات را تنظیم کنید',
|
||||
chatColorThemeInverted: 'معکوس',
|
||||
invalidHexMessage: 'مقدار هگز نامعتبر',
|
||||
invalidPrivacyPolicy: 'لینک سیاست حفظ حریم خصوصی نامعتبر است. لطفاً از یک لینک معتبر که با http یا https شروع میشود استفاده کنید',
|
||||
more: {
|
||||
entry: 'نمایش تنظیمات بیشتر',
|
||||
copyright: 'حق نسخهبرداری',
|
||||
copyRightPlaceholder: 'نام نویسنده یا سازمان را وارد کنید',
|
||||
privacyPolicy: 'سیاست حفظ حریم خصوصی',
|
||||
privacyPolicyPlaceholder: 'لینک سیاست حفظ حریم خصوصی را وارد کنید',
|
||||
privacyPolicyTip: 'به بازدیدکنندگان کمک میکند تا بفهمند برنامه چه دادههایی را جمعآوری میکند، به سیاست حفظ حریم خصوصی Dify نگاه کنید <privacyPolicyLink>Privacy Policy</privacyPolicyLink>.',
|
||||
customDisclaimer: 'سلب مسئولیت سفارشی',
|
||||
customDisclaimerPlaceholder: 'متن سلب مسئولیت سفارشی را وارد کنید',
|
||||
customDisclaimerTip: 'متن سلب مسئولیت سفارشی در سمت مشتری نمایش داده میشود و اطلاعات بیشتری درباره برنامه ارائه میدهد',
|
||||
copyrightTip: 'نمایش اطلاعات حق نسخه برداری در برنامه وب',
|
||||
copyrightTooltip: 'لطفا به طرح حرفه ای یا بالاتر ارتقا دهید',
|
||||
},
|
||||
sso: {
|
||||
title: 'web app SSO',
|
||||
label: 'احراز هویت SSO',
|
||||
description: 'همه کاربران باید قبل از استفاده از web app با SSO وارد شوند',
|
||||
tooltip: 'برای فعال کردن web app SSO با سرپرست تماس بگیرید',
|
||||
},
|
||||
modalTip: 'تنظیمات برنامه وب سمت مشتری.',
|
||||
},
|
||||
embedded: {
|
||||
entry: 'جاسازی شده',
|
||||
title: 'جاسازی در وبسایت',
|
||||
explanation: 'روشهای جاسازی برنامه چت در وبسایت خود را انتخاب کنید',
|
||||
iframe: 'برای افزودن برنامه چت در هرجای وبسایت خود، این iframe را به کد HTML خود اضافه کنید.',
|
||||
scripts: 'برای افزودن برنامه چت به گوشه پایین سمت راست وبسایت خود، این کد را به HTML خود اضافه کنید.',
|
||||
chromePlugin: 'نصب افزونه Chrome Chatbot Dify',
|
||||
copied: 'کپی شد',
|
||||
copy: 'کپی',
|
||||
},
|
||||
qrcode: {
|
||||
title: 'کد QR لینک',
|
||||
scan: 'اسکن برای اشتراکگذاری',
|
||||
download: 'دانلود کد QR',
|
||||
},
|
||||
customize: {
|
||||
way: 'راه',
|
||||
entry: 'سفارشیسازی',
|
||||
title: 'سفارشیسازی web app AI',
|
||||
explanation: 'شما میتوانید ظاهر جلویی برنامه وب را برای برآوردن نیازهای سناریو و سبک خود سفارشی کنید.',
|
||||
way1: {
|
||||
name: 'کلاینت را شاخه کنید، آن را تغییر دهید و در Vercel مستقر کنید (توصیه میشود)',
|
||||
step1: 'کلاینت را شاخه کنید و آن را تغییر دهید',
|
||||
step1Tip: 'برای شاخه کردن کد منبع به حساب GitHub خود و تغییر کد اینجا کلیک کنید',
|
||||
step1Operation: 'Dify-WebClient',
|
||||
step2: 'استقرار در Vercel',
|
||||
step2Tip: 'برای وارد کردن مخزن به Vercel و استقرار اینجا کلیک کنید',
|
||||
step2Operation: 'وارد کردن مخزن',
|
||||
step3: 'پیکربندی متغیرهای محیطی',
|
||||
step3Tip: 'متغیرهای محیطی زیر را در Vercel اضافه کنید',
|
||||
},
|
||||
way2: {
|
||||
name: 'نوشتن کد سمت کلاینت برای فراخوانی API و استقرار آن بر روی سرور',
|
||||
operation: 'مستندات',
|
||||
},
|
||||
},
|
||||
launch: 'راه اندازی',
|
||||
enableTooltip: {
|
||||
description: 'برای فعال کردن این ویژگی، لطفاً یک گره ورودی کاربر به صفحه اضافه کنید. (ممکن است قبلاً در پیشنویس وجود داشته باشد، بعد از انتشار اعمال میشود)',
|
||||
learnMore: 'بیشتر بدانید',
|
||||
},
|
||||
title: 'وب اپ',
|
||||
},
|
||||
apiInfo: {
|
||||
title: 'API سرویس بکاند',
|
||||
explanation: 'به راحتی در برنامه خود یکپارچه میشود',
|
||||
accessibleAddress: 'نقطه پایانی سرویس API',
|
||||
doc: 'مرجع API',
|
||||
},
|
||||
status: {
|
||||
running: 'در حال سرویسدهی',
|
||||
disable: 'غیرفعال',
|
||||
},
|
||||
triggerInfo: {
|
||||
title: 'محرکها',
|
||||
explanation: 'مدیریت فعالسازی جریان کاری',
|
||||
triggersAdded: '{{count}} محرکها اضافه شدند',
|
||||
noTriggerAdded: 'هیچ ماشهای افزوده نشده است',
|
||||
triggerStatusDescription: 'وضعیت گره تریگر در اینجا نمایش داده میشود. (ممکن است قبلاً در پیشنویس وجود داشته باشد، پس از انتشار اعمال میشود)',
|
||||
learnAboutTriggers: 'با محرکها آشنا شوید',
|
||||
},
|
||||
disableTooltip: {
|
||||
triggerMode: 'ویژگی {{feature}} در حالت گره تریگر پشتیبانی نمیشود.',
|
||||
},
|
||||
},
|
||||
analysis: {
|
||||
title: 'تحلیل',
|
||||
ms: 'میلیثانیه',
|
||||
tokenPS: 'توکن/ثانیه',
|
||||
totalMessages: {
|
||||
title: 'کل پیامها',
|
||||
explanation: 'تعداد تعاملات روزانه با هوش مصنوعی.',
|
||||
},
|
||||
totalConversations: {
|
||||
title: 'کل مکالمات',
|
||||
explanation: 'تعداد مکالمات روزانه با هوش مصنوعی؛ مهندسی/اشکالزدایی پرامپت مستثنی است.',
|
||||
},
|
||||
activeUsers: {
|
||||
title: 'کاربران فعال',
|
||||
explanation: 'کاربران منحصر به فردی که در پرسش و پاسخ با AI شرکت میکنند؛ مهندسی/اشکالزدایی دستورات مستثنی هستند.',
|
||||
},
|
||||
tokenUsage: {
|
||||
title: 'استفاده از توکن',
|
||||
explanation: 'مصرف روزانه توکنهای مدل زبان برای برنامه را نشان میدهد، که برای کنترل هزینهها مفید است.',
|
||||
consumed: 'مصرفشده',
|
||||
},
|
||||
avgSessionInteractions: {
|
||||
title: 'میانگین تعاملات جلسه',
|
||||
explanation: 'تعداد تعاملات پیوسته کاربر-AI؛ برای برنامههای مبتنی بر گفتگو.',
|
||||
},
|
||||
avgUserInteractions: {
|
||||
title: 'میانگین تعاملات کاربران',
|
||||
explanation: 'تکرار استفاده روزانه کاربران را نشان میدهد. این معیار چسبندگی کاربران را نشان میدهد.',
|
||||
},
|
||||
userSatisfactionRate: {
|
||||
title: 'نرخ رضایت کاربران',
|
||||
explanation: 'تعداد لایکها به ازای هر ۱۰۰۰ پیام. این نشاندهنده نسبت پاسخهایی است که کاربران به شدت رضایت دارند.',
|
||||
},
|
||||
avgResponseTime: {
|
||||
title: 'میانگین زمان پاسخ',
|
||||
explanation: 'زمان (میلیثانیه) برای پردازش/پاسخ AI؛ برای برنامههای مبتنی بر متن.',
|
||||
},
|
||||
tps: {
|
||||
title: 'سرعت خروجی توکن',
|
||||
explanation: 'عملکرد مدل زبان بزرگ را اندازهگیری میکند. سرعت خروجی توکنهای مدل زبان بزرگ از آغاز درخواست تا تکمیل خروجی را بشمارید.',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
349
dify/web/i18n/fa-IR/app.ts
Normal file
349
dify/web/i18n/fa-IR/app.ts
Normal file
@@ -0,0 +1,349 @@
|
||||
const translation = {
|
||||
createApp: 'ایجاد برنامه',
|
||||
types: {
|
||||
all: 'همه',
|
||||
chatbot: 'چتبات',
|
||||
agent: 'نماینده',
|
||||
workflow: 'گردش کار',
|
||||
completion: 'تکمیل',
|
||||
basic: 'اساسی',
|
||||
advanced: 'چتفلو',
|
||||
},
|
||||
duplicate: 'تکرار',
|
||||
duplicateTitle: 'تکرار برنامه',
|
||||
export: 'صادر کردن DSL',
|
||||
exportFailed: 'صادر کردن DSL ناموفق بود.',
|
||||
importDSL: 'وارد کردن فایل DSL',
|
||||
createFromConfigFile: 'ایجاد از فایل DSL',
|
||||
importFromDSL: 'وارد کردن از DSL',
|
||||
importFromDSLFile: 'از فایل DSL',
|
||||
importFromDSLUrl: 'از URL',
|
||||
importFromDSLUrlPlaceholder: 'لینک DSL را اینجا بچسبانید',
|
||||
dslUploader: {
|
||||
button: 'فایل را بکشید و رها کنید، یا',
|
||||
browse: 'مرور',
|
||||
},
|
||||
deleteAppConfirmTitle: 'آیا این برنامه حذف شود؟',
|
||||
deleteAppConfirmContent:
|
||||
'حذف برنامه غیرقابل برگشت است. کاربران دیگر قادر به دسترسی به برنامه شما نخواهند بود و تمام تنظیمات و گزارشات درخواستها به صورت دائم حذف خواهند شد.',
|
||||
appDeleted: 'برنامه حذف شد',
|
||||
appDeleteFailed: 'حذف برنامه ناموفق بود',
|
||||
join: 'پیوستن به جامعه',
|
||||
communityIntro:
|
||||
'در کانالهای مختلف با اعضای تیم، مشارکتکنندگان و توسعهدهندگان بحث کنید.',
|
||||
roadmap: 'نقشه راه ما را ببینید',
|
||||
newApp: {
|
||||
startFromBlank: 'ایجاد از خالی',
|
||||
startFromTemplate: 'ایجاد از قالب',
|
||||
workflowWarning: 'در حال حاضر در نسخه بتا',
|
||||
captionName: 'آیکون و نام برنامه',
|
||||
appNamePlaceholder: 'به برنامه خود یک نام بدهید',
|
||||
captionDescription: 'توضیحات',
|
||||
appDescriptionPlaceholder: 'توضیحات برنامه را وارد کنید',
|
||||
useTemplate: 'استفاده از این قالب',
|
||||
previewDemo: 'پیشنمایش دمو',
|
||||
chatApp: 'دستیار',
|
||||
chatAppIntro:
|
||||
'میخواهم یک برنامه مبتنی بر چت بسازم. این برنامه از قالب پرسش و پاسخ استفاده میکند و امکان چندین دور مکالمه مداوم را فراهم میکند.',
|
||||
agentAssistant: 'دستیار نماینده جدید',
|
||||
completeApp: 'تولید کننده متن',
|
||||
completeAppIntro:
|
||||
'میخواهم برنامهای بسازم که متن با کیفیت بالا بر اساس درخواستها تولید کند، مانند تولید مقالات، خلاصهها، ترجمهها و بیشتر.',
|
||||
showTemplates: 'میخواهم از یک قالب انتخاب کنم',
|
||||
hideTemplates: 'بازگشت به انتخاب حالت',
|
||||
Create: 'ایجاد',
|
||||
Cancel: 'لغو',
|
||||
nameNotEmpty: 'نام نمیتواند خالی باشد',
|
||||
appTemplateNotSelected: 'لطفاً یک قالب انتخاب کنید',
|
||||
appTypeRequired: 'لطفاً نوع برنامه را انتخاب کنید',
|
||||
appCreated: 'برنامه ایجاد شد',
|
||||
appCreateFailed: 'ایجاد برنامه ناموفق بود',
|
||||
Confirm: 'تایید',
|
||||
appCreateDSLErrorTitle: 'ناسازگاری نسخه',
|
||||
caution: 'احتیاط',
|
||||
appCreateDSLErrorPart3: 'نسخه DSL برنامه فعلی:',
|
||||
appCreateDSLErrorPart2: 'آیا می خواهید ادامه دهید؟',
|
||||
appCreateDSLErrorPart4: 'نسخه DSL پشتیبانی شده توسط سیستم:',
|
||||
appCreateDSLErrorPart1: 'تفاوت قابل توجهی در نسخه های DSL مشاهده شده است. اجبار به واردات ممکن است باعث اختلال در عملکرد برنامه شود.',
|
||||
appCreateDSLWarning: 'احتیاط: تفاوت نسخه DSL ممکن است بر ویژگی های خاصی تأثیر بگذارد',
|
||||
completionShortDescription: 'دستیار هوش مصنوعی برای تسک های تولید متن',
|
||||
foundResult: '{{count}} نتیجه',
|
||||
chatbotUserDescription: 'به سرعت یک چت بات مبتنی بر LLM با پیکربندی ساده بسازید. بعدا می توانید به Chatflow بروید.',
|
||||
chooseAppType: 'انتخاب نوع برنامه',
|
||||
foundResults: '{{count}} نتیجه',
|
||||
noIdeaTip: 'ایده ای ندارید؟ قالب های ما را بررسی کنید',
|
||||
forBeginners: 'انواع برنامههای پایهتر',
|
||||
noAppsFound: 'هیچ برنامه ای یافت نشد',
|
||||
chatbotShortDescription: 'چت بات مبتنی بر LLM با راه اندازی ساده',
|
||||
optional: 'اختیاری',
|
||||
learnMore: 'بیشتر بدانید',
|
||||
agentShortDescription: 'عامل هوشمند با استدلال و استفاده از ابزار مستقل',
|
||||
noTemplateFoundTip: 'سعی کنید با استفاده از کلمات کلیدی مختلف جستجو کنید.',
|
||||
noTemplateFound: 'هیچ الگویی یافت نشد',
|
||||
forAdvanced: 'برای کاربران پیشرفته',
|
||||
workflowShortDescription: 'جریان عاملی برای اتوماسیونهای هوشمند',
|
||||
workflowUserDescription: 'ساخت بصری گردشکارهای خودکار هوش مصنوعی با سادگی کشیدن و رها کردن',
|
||||
advancedUserDescription: 'گردشکار با ویژگیهای حافظه اضافی و رابط چتبات',
|
||||
completionUserDescription: 'به سرعت یک دستیار هوش مصنوعی برای وظایف تولید متن با پیکربندی ساده بسازید.',
|
||||
advancedShortDescription: 'گردشکار پیشرفته برای گفتگوهای چند مرحلهای',
|
||||
agentUserDescription: 'یک عامل هوشمند که قادر به استدلال تکراری و استفاده از ابزار مستقل برای دستیابی به اهداف وظیفه است.',
|
||||
dropDSLToCreateApp: 'فایل DSL را اینجا رها کنید تا برنامه ساخته شود',
|
||||
import: 'واردات',
|
||||
},
|
||||
editApp: 'ویرایش اطلاعات',
|
||||
editAppTitle: 'ویرایش اطلاعات برنامه',
|
||||
editDone: 'اطلاعات برنامه بهروزرسانی شد',
|
||||
editFailed: 'بهروزرسانی اطلاعات برنامه ناموفق بود',
|
||||
iconPicker: {
|
||||
ok: 'باشه',
|
||||
cancel: 'لغو',
|
||||
emoji: 'ایموجی',
|
||||
image: 'تصویر',
|
||||
},
|
||||
switch: 'تغییر به سازماندهی گردش کار',
|
||||
switchTipStart: 'یک نسخه جدید از برنامه برای شما ایجاد خواهد شد و نسخه جدید به سازماندهی گردش کار تغییر خواهد کرد. نسخه جدید ',
|
||||
switchTip: 'اجازه نمیدهد',
|
||||
switchTipEnd: ' تغییر به سازماندهی اساسی بازگردد.',
|
||||
switchLabel: 'نسخه برنامه که ایجاد میشود',
|
||||
removeOriginal: 'حذف برنامه اصلی',
|
||||
switchStart: 'شروع تغییر',
|
||||
typeSelector: {
|
||||
all: 'همه انواع',
|
||||
chatbot: 'چتبات',
|
||||
agent: 'نماینده',
|
||||
workflow: 'گردش کار',
|
||||
completion: 'تکمیل',
|
||||
advanced: 'چتفلو',
|
||||
},
|
||||
tracing: {
|
||||
title: 'ردیابی عملکرد برنامه',
|
||||
description: 'پیکربندی ارائهدهنده شخص ثالث LLMOps و ردیابی عملکرد برنامه.',
|
||||
config: 'پیکربندی',
|
||||
collapse: 'بستن',
|
||||
expand: 'باز کردن',
|
||||
tracing: 'ردیابی',
|
||||
disabled: 'غیرفعال',
|
||||
disabledTip: 'لطفاً ابتدا ارائهدهنده را پیکربندی کنید',
|
||||
enabled: 'در حال خدمت',
|
||||
tracingDescription: 'ثبت کامل متن اجرای برنامه، از جمله تماسهای LLM، متن، درخواستهای HTTP و بیشتر، به یک پلتفرم ردیابی شخص ثالث.',
|
||||
configProviderTitle: {
|
||||
configured: 'پیکربندی شده',
|
||||
notConfigured: 'برای فعالسازی ردیابی ارائهدهنده را پیکربندی کنید',
|
||||
moreProvider: 'ارائهدهندگان بیشتر',
|
||||
},
|
||||
arize: {
|
||||
title: 'Arize',
|
||||
description: 'قابلیت مشاهده LLM در سطح سازمانی، ارزیابی آنلاین و آفلاین، نظارت و آزمایش — با پشتیبانی از OpenTelemetry. طراحیشده مخصوص برنامههای مبتنی بر LLM و عاملها.',
|
||||
},
|
||||
phoenix: {
|
||||
title: 'Phoenix',
|
||||
description: 'پلتفرم متنباز و مبتنی بر OpenTelemetry برای مشاهدهپذیری، ارزیابی، مهندسی پرامپت و آزمایش برای جریانهای کاری و عاملهای LLM شما.',
|
||||
},
|
||||
langsmith: {
|
||||
title: 'LangSmith',
|
||||
description: 'یک پلتفرم همهکاره برای هر مرحله از چرخه عمر برنامههای مبتنی بر LLM.',
|
||||
},
|
||||
langfuse: {
|
||||
title: 'Langfuse',
|
||||
description: 'ردیابی، ارزیابی، مدیریت درخواستها و معیارها برای رفع اشکال و بهبود برنامه LLM شما.',
|
||||
},
|
||||
inUse: 'در حال استفاده',
|
||||
configProvider: {
|
||||
title: 'پیکربندی',
|
||||
placeholder: 'کلید {{key}} خود را وارد کنید',
|
||||
project: 'پروژه',
|
||||
publicKey: 'کلید عمومی',
|
||||
secretKey: 'کلید محرمانه',
|
||||
viewDocsLink: 'مشاهده مستندات {{key}}',
|
||||
removeConfirmTitle: 'حذف پیکربندی {{key}}؟',
|
||||
removeConfirmContent: 'پیکربندی فعلی در حال استفاده است، حذف آن ویژگی ردیابی را غیرفعال خواهد کرد.',
|
||||
clientId: 'شناسه مشتری OAuth',
|
||||
username: 'نام کاربری',
|
||||
password: 'رمز عبور',
|
||||
experimentId: 'شناسه آزمایش',
|
||||
personalAccessToken: 'نشانه دسترسی شخصی (قدیمی)',
|
||||
databricksHost: 'نشانی اینترنتی محیط کاری دیتابریکس',
|
||||
trackingUri: 'آدرس URI ردیابی',
|
||||
clientSecret: 'رمز مخفی مشتری OAuth',
|
||||
},
|
||||
view: 'مشاهده',
|
||||
opik: {
|
||||
title: 'اوپیک',
|
||||
description: 'Opik یک پلت فرم منبع باز برای ارزیابی، آزمایش و نظارت بر برنامه های LLM است.',
|
||||
},
|
||||
weave: {
|
||||
title: 'بافندگی',
|
||||
description: 'ویو یک پلتفرم متن باز برای ارزیابی، آزمایش و نظارت بر برنامههای LLM است.',
|
||||
},
|
||||
aliyun: {
|
||||
title: 'نظارت بر ابر',
|
||||
description: 'پلتفرم مشاهدهپذیری کاملاً مدیریتشده و بدون نیاز به نگهداری که توسط Alibaba Cloud ارائه شده، امکان نظارت، ردیابی و ارزیابی برنامههای Dify را بهصورت آماده و با تنظیمات اولیه فراهم میکند.',
|
||||
},
|
||||
mlflow: {
|
||||
title: 'MLflow',
|
||||
description: 'پلتفرم LLMOps متنباز برای ردیابی آزمایشها، مشاهدهپذیری و ارزیابی، برای ساخت برنامههای AI/LLM با اطمینان.',
|
||||
},
|
||||
databricks: {
|
||||
title: 'Databricks',
|
||||
description: 'Databricks MLflow کاملاً مدیریتشده با حکمرانی و امنیت قوی برای ذخیرهسازی دادههای ردیابی ارائه میدهد.',
|
||||
},
|
||||
tencent: {
|
||||
title: 'تنست ایپیام',
|
||||
description: 'نظارت بر عملکرد برنامههای Tencent تحلیلهای جامع و ردیابی چندبعدی برای برنامههای LLM ارائه میدهد.',
|
||||
},
|
||||
},
|
||||
answerIcon: {
|
||||
descriptionInExplore: 'آیا از نماد web app برای جایگزینی 🤖 در Explore استفاده کنیم یا خیر',
|
||||
description: 'آیا از نماد web app برای جایگزینی 🤖 در برنامه مشترک استفاده کنیم یا خیر',
|
||||
title: 'از نماد web app برای جایگزینی 🤖 استفاده کنید',
|
||||
},
|
||||
mermaid: {
|
||||
handDrawn: 'دست کشیده شده',
|
||||
classic: 'کلاسیک',
|
||||
},
|
||||
openInExplore: 'باز کردن در کاوش',
|
||||
newAppFromTemplate: {
|
||||
sidebar: {
|
||||
Agent: 'عامل',
|
||||
Programming: 'برنامه نویسی',
|
||||
Recommended: 'توصیه',
|
||||
Assistant: 'دستیار',
|
||||
Workflow: 'گردش',
|
||||
HR: 'ساعت',
|
||||
Writing: 'نوشتن',
|
||||
},
|
||||
byCategories: 'بر اساس دسته بندی ها',
|
||||
searchAllTemplate: 'همه قالب ها را جستجو کنید...',
|
||||
},
|
||||
showMyCreatedAppsOnly: 'فقط برنامههای ایجاد شده توسط من را نشان بده',
|
||||
appSelector: {
|
||||
params: 'پارامترهای برنامه',
|
||||
noParams: 'بدون پارامتر مورد نیاز است',
|
||||
label: 'برنامه',
|
||||
placeholder: 'برنامه ای را انتخاب کنید...',
|
||||
},
|
||||
structOutput: {
|
||||
required: 'ضروری',
|
||||
modelNotSupported: 'مدل پشتیبانی نمی شود',
|
||||
notConfiguredTip: 'خروجی ساختاری هنوز تنظیم نشده است',
|
||||
structured: 'ساختار یافته',
|
||||
configure: 'تنظیمات',
|
||||
moreFillTip: 'نمایش حداکثر ۱۰ سطح تو در تو',
|
||||
LLMResponse: 'پاسخ مدل زبان بزرگ',
|
||||
modelNotSupportedTip: 'مدل فعلی این ویژگی را پشتیبانی نمیکند و بهطور خودکار به تزریق درخواست تنزل پیدا میکند.',
|
||||
structuredTip: 'خروجیهای ساختاری یک ویژگی است که تضمین میکند مدل همیشه پاسخهایی تولید میکند که به طرح JSON ارائه شده شما پایبند باشد.',
|
||||
},
|
||||
accessItemsDescription: {
|
||||
specific: 'فقط گروهها یا اعضای خاصی میتوانند به اپلیکیشن وب دسترسی پیدا کنند.',
|
||||
anyone: 'هر کسی میتواند به وباپلیکیشن دسترسی پیدا کند',
|
||||
organization: 'هر کسی در سازمان میتواند به اپلیکیشن وب دسترسی پیدا کند.',
|
||||
external: 'تنها کاربران خارجی تأیید شده میتوانند به برنامه وب دسترسی پیدا کنند.',
|
||||
},
|
||||
accessControlDialog: {
|
||||
accessItems: {
|
||||
specific: 'گروهها یا اعضای خاص',
|
||||
organization: 'فقط اعضای داخل سازمان',
|
||||
anyone: 'هر کسی که لینک را داشته باشد',
|
||||
external: 'کاربران خارجی تأیید شده',
|
||||
},
|
||||
operateGroupAndMember: {
|
||||
searchPlaceholder: 'گروهها و اعضا را جستجو کنید',
|
||||
allMembers: 'تمام اعضا',
|
||||
noResult: 'نتیجهای نیست',
|
||||
expand: 'گسترش',
|
||||
},
|
||||
description: 'مجوزهای دسترسی به برنامه وب را تنظیم کنید',
|
||||
accessLabel: 'چه کسی به آن دسترسی دارد',
|
||||
groups_one: '{{count}} گروه',
|
||||
groups_other: '{{count}} گروه',
|
||||
members_one: '{{count}} عضو',
|
||||
members_other: '{{count}} عضو',
|
||||
noGroupsOrMembers: 'هیچ گروه یا عضوی انتخاب نشده است',
|
||||
title: 'کنترل دسترسی به وب اپلیکیشن',
|
||||
updateSuccess: 'بهروز رسانی با موفقیت انجام شد',
|
||||
webAppSSONotEnabledTip: 'لطفاً با مدیر شرکت تماس بگیرید تا روش احراز هویت برنامه وب را پیکربندی کند.',
|
||||
},
|
||||
publishApp: {
|
||||
notSet: 'تنظیم نشده است',
|
||||
notSetDesc: 'در حال حاضر هیچکس نمیتواند به برنامه وب دسترسی پیدا کند. لطفاً مجوزها را تنظیم کنید.',
|
||||
title: 'چه کسی میتواند به برنامه وب دسترسی داشته باشد؟',
|
||||
},
|
||||
accessControl: 'کنترل دسترسی به وب اپلیکیشن',
|
||||
noAccessPermission: 'دسترسی به برنامه وب مجاز نیست',
|
||||
maxActiveRequests: 'بیشترین درخواستهای همزمان',
|
||||
maxActiveRequestsPlaceholder: 'برای نامحدود، 0 را وارد کنید',
|
||||
maxActiveRequestsTip: 'حداکثر تعداد درخواستهای فعال همزمان در هر برنامه (0 برای نامحدود)',
|
||||
gotoAnything: {
|
||||
actions: {
|
||||
searchPlugins: 'جستجوی افزونه ها',
|
||||
searchWorkflowNodes: 'جستجوی گره های گردش کار',
|
||||
searchApplications: 'جستجوی برنامه ها',
|
||||
searchKnowledgeBases: 'جستجو در پایگاه های دانش',
|
||||
searchWorkflowNodesHelp: 'این ویژگی فقط هنگام مشاهده گردش کار کار می کند. ابتدا به گردش کار بروید.',
|
||||
searchApplicationsDesc: 'جستجو و پیمایش به برنامه های خود',
|
||||
searchKnowledgeBasesDesc: 'پایگاه های دانش خود را جستجو کرده و به آن ناوبری کنید',
|
||||
searchPluginsDesc: 'افزونه های خود را جستجو کرده و به آنها پیمایش کنید',
|
||||
searchWorkflowNodesDesc: 'گره ها را در گردش کار فعلی بر اساس نام یا نوع پیدا کنید و به آنها بروید',
|
||||
themeCategoryTitle: 'تم',
|
||||
languageCategoryTitle: 'زبان',
|
||||
runTitle: 'دستورات',
|
||||
themeSystem: 'تم سیستم',
|
||||
themeLight: 'تم روشن',
|
||||
themeDark: 'تم تاریک',
|
||||
languageCategoryDesc: 'زبان رابط را تغییر دهید',
|
||||
themeCategoryDesc: 'تغییر تم برنامه',
|
||||
themeDarkDesc: 'از ظاهر تیره استفاده کنید',
|
||||
themeLightDesc: 'از ظاهر روشن استفاده کنید',
|
||||
languageChangeDesc: 'زبان رابط کاربری را تغییر دهید',
|
||||
themeSystemDesc: 'به ظاهر سیستمعامل خود پایبند باشید',
|
||||
runDesc: 'دستورات سریع اجرا کنید (موضوع، زبان، ...)',
|
||||
slashDesc: 'دستورات را مانند /theme، /lang اجرا کنید',
|
||||
feedbackDesc: 'بحثهای باز بازخورد جامعه',
|
||||
accountDesc: 'به صفحه حساب کاربری بروید',
|
||||
communityDesc: 'جامعه دیسکورد باز',
|
||||
docDesc: 'مستندات کمک را باز کنید',
|
||||
},
|
||||
emptyState: {
|
||||
noKnowledgeBasesFound: 'هیچ پایگاه دانش یافت نشد',
|
||||
noAppsFound: 'هیچ برنامه ای یافت نشد',
|
||||
noPluginsFound: 'هیچ افزونه ای یافت نشد',
|
||||
noWorkflowNodesFound: 'هیچ گره گردش کاری یافت نشد',
|
||||
tryDifferentTerm: 'یک عبارت جستجوی متفاوت را امتحان کنید یا فیلتر {{mode}} را حذف کنید',
|
||||
trySpecificSearch: '{{shortcuts}} را برای جستجوهای خاص امتحان کنید',
|
||||
},
|
||||
groups: {
|
||||
plugins: 'پلاگین',
|
||||
apps: 'برنامهها',
|
||||
knowledgeBases: 'پایگاه های دانش',
|
||||
workflowNodes: 'گره های گردش کار',
|
||||
commands: 'دستورات',
|
||||
},
|
||||
searching: 'جستجو...',
|
||||
searchFailed: 'جستجو انجام نشد',
|
||||
useAtForSpecific: 'از @ برای انواع خاص استفاده کنید',
|
||||
clearToSearchAll: 'پاک کردن @ برای جستجوی همه',
|
||||
noResults: 'هیچ نتیجه ای یافت نشد',
|
||||
searchTitle: 'هر چیزی را جستجو کنید',
|
||||
searchPlaceholder: 'جستجو یا تایپ @ برای دستورات...',
|
||||
searchTemporarilyUnavailable: 'جستجو به طور موقت در دسترس نیست',
|
||||
servicesUnavailableMessage: 'برخی از سرویس های جستجو ممکن است با مشکل مواجه شوند. یک لحظه دیگر دوباره امتحان کنید.',
|
||||
someServicesUnavailable: 'برخی از سرویس های جستجو دردسترس نیستند',
|
||||
selectSearchType: 'انتخاب کنید چه چیزی را جستجو کنید',
|
||||
commandHint: '@ را برای مرور بر اساس دسته بندی تایپ کنید',
|
||||
searchHint: 'شروع به تایپ کنید تا فورا همه چیز را جستجو کنید',
|
||||
resultCount: '{{count}} نتیجه',
|
||||
resultCount_other: '{{count}} نتیجه',
|
||||
inScope: 'در {{scope}}s',
|
||||
noMatchingCommands: 'هیچ دستوری منطبق یافت نشد',
|
||||
tryDifferentSearch: 'عبارت جستجوی دیگری را امتحان کنید',
|
||||
slashHint: 'برای مشاهده تمام دستورات موجود / را تایپ کنید',
|
||||
startTyping: 'برای جستجو شروع به تایپ کنید',
|
||||
selectToNavigate: 'انتخاب کنید تا برای حرکت',
|
||||
pressEscToClose: 'برای بستن ESC را فشار دهید',
|
||||
tips: 'برای حرکت به بالا و پایین کلیدهای ↑ و ↓ را فشار دهید',
|
||||
},
|
||||
noUserInputNode: 'ورودی کاربر پیدا نشد',
|
||||
notPublishedYet: 'اپ هنوز منتشر نشده است',
|
||||
}
|
||||
|
||||
export default translation
|
||||
203
dify/web/i18n/fa-IR/billing.ts
Normal file
203
dify/web/i18n/fa-IR/billing.ts
Normal file
@@ -0,0 +1,203 @@
|
||||
const translation = {
|
||||
currentPlan: 'طرح فعلی',
|
||||
upgradeBtn: {
|
||||
plain: 'ارتقاء طرح',
|
||||
encourage: 'هم اکنون ارتقاء دهید',
|
||||
encourageShort: 'ارتقاء دهید',
|
||||
},
|
||||
viewBilling: 'مدیریت صورتحسابها و اشتراکها',
|
||||
buyPermissionDeniedTip: 'لطفاً با مدیر سازمان خود تماس بگیرید تا اشتراک تهیه کنید',
|
||||
plansCommon: {
|
||||
yearlyTip: 'با اشتراک سالانه 2 ماه رایگان دریافت کنید!',
|
||||
mostPopular: 'محبوبترین',
|
||||
planRange: {
|
||||
monthly: 'ماهانه',
|
||||
yearly: 'سالانه',
|
||||
},
|
||||
month: 'ماه',
|
||||
year: 'سال',
|
||||
save: 'صرفهجویی کنید ',
|
||||
free: 'رایگان',
|
||||
currentPlan: 'طرح فعلی',
|
||||
contractSales: 'تماس با فروش',
|
||||
contractOwner: 'تماس با مدیر تیم',
|
||||
startForFree: 'رایگان شروع کنید',
|
||||
contactSales: 'تماس با فروش',
|
||||
talkToSales: 'صحبت با فروش',
|
||||
modelProviders: 'ارائهدهندگان مدل',
|
||||
annotationQuota: 'سهمیه حاشیهنویسی',
|
||||
buildApps: 'ساخت اپلیکیشنها',
|
||||
vectorSpace: 'فضای وکتور',
|
||||
vectorSpaceTooltip: 'فضای وکتور سیستم حافظه بلند مدت است که برای درک دادههای شما توسط LLMها مورد نیاز است.',
|
||||
documentProcessingPriority: 'اولویت پردازش مستندات',
|
||||
documentProcessingPriorityUpgrade: 'دادههای بیشتری را با دقت بالاتر و سرعت بیشتر پردازش کنید.',
|
||||
priority: {
|
||||
'standard': 'استاندارد',
|
||||
'priority': 'اولویت',
|
||||
'top-priority': 'اولویت بالا',
|
||||
},
|
||||
logsHistory: 'تاریخچه گزارشات',
|
||||
customTools: 'ابزارهای سفارشی',
|
||||
unavailable: 'غیرقابل دسترس',
|
||||
days: 'روز',
|
||||
unlimited: 'نامحدود',
|
||||
support: 'پشتیبانی',
|
||||
supportItems: {
|
||||
communityForums: 'انجمنهای اجتماعی',
|
||||
emailSupport: 'پشتیبانی ایمیل',
|
||||
priorityEmail: 'پشتیبانی ایمیل و چت با اولویت',
|
||||
logoChange: 'تغییر لوگو',
|
||||
SSOAuthentication: 'تأیید هویت SSO',
|
||||
personalizedSupport: 'پشتیبانی شخصیسازی شده',
|
||||
dedicatedAPISupport: 'پشتیبانی API اختصاصی',
|
||||
customIntegration: 'یکپارچهسازی و پشتیبانی سفارشی',
|
||||
ragAPIRequest: 'درخواستهای API RAG',
|
||||
bulkUpload: 'بارگذاری دستهای مستندات',
|
||||
agentMode: 'حالت Agent',
|
||||
workflow: 'جریان کار',
|
||||
llmLoadingBalancing: 'توزیع بار LLM',
|
||||
llmLoadingBalancingTooltip: 'اضافه کردن چندین کلید API به مدلها، به طور مؤثر از محدودیتهای نرخ API عبور میکند.',
|
||||
},
|
||||
comingSoon: 'به زودی',
|
||||
member: 'عضو',
|
||||
memberAfter: 'عضو',
|
||||
messageRequest: {
|
||||
title: 'اعتبارات پیام',
|
||||
tooltip: 'سهمیههای فراخوانی پیام برای طرحهای مختلف با استفاده از مدلهای OpenAI (به جز gpt4). پیامهای بیش از حد محدودیت از کلید API OpenAI شما استفاده میکنند.',
|
||||
titlePerMonth: '{{count,number}} پیام در ماه',
|
||||
},
|
||||
annotatedResponse: {
|
||||
title: 'محدودیتهای سهمیه حاشیهنویسی',
|
||||
tooltip: 'ویرایش دستی و حاشیهنویسی پاسخها، قابلیتهای پرسش و پاسخ با کیفیت بالا و قابل تنظیم برای اپلیکیشنها را فراهم میکند. (فقط در اپلیکیشنهای چت اعمال میشود)',
|
||||
},
|
||||
ragAPIRequestTooltip: 'به تعداد درخواستهای API که فقط قابلیتهای پردازش پایگاه دانش Dify را فراخوانی میکنند اشاره دارد.',
|
||||
receiptInfo: 'فقط صاحب تیم و مدیر تیم میتوانند اشتراک تهیه کنند و اطلاعات صورتحساب را مشاهده کنند',
|
||||
apiRateLimitUnit: '{{count,number}}',
|
||||
cloud: 'سرویس ابری',
|
||||
documents: '{{count,number}} سندهای دانش',
|
||||
self: 'خود میزبان',
|
||||
apiRateLimit: 'محدودیت نرخ API',
|
||||
annualBilling: 'صورتحساب سالانه',
|
||||
freeTrialTip: 'آزمایش رایگان ۲۰۰ تماس OpenAI.',
|
||||
teamMember_other: '{{count,number}} اعضای تیم',
|
||||
unlimitedApiRate: 'هیچ محدودیتی برای نرخ API وجود ندارد.',
|
||||
freeTrialTipPrefix: 'ثبتنام کنید و یک',
|
||||
comparePlanAndFeatures: 'طرح ها و ویژگی ها را مقایسه کنید',
|
||||
teamMember_one: '{{count,number}} عضو تیم',
|
||||
priceTip: 'برای هر محیط کار/',
|
||||
documentsTooltip: 'حجم مستندات وارد شده از منبع دادههای دانش.',
|
||||
freeTrialTipSuffix: 'نیاز به کارت اعتباری نیست',
|
||||
teamWorkspace: '{{count,number}} فضاي کار تيمي',
|
||||
getStarted: 'شروع کنید',
|
||||
documentsRequestQuota: '{{count,number}}/دقیقه محدودیت نرخ درخواست دانش',
|
||||
apiRateLimitTooltip: 'محدودیت نرخ API برای همه درخواستهای انجام شده از طریق API Dify اعمال میشود، از جمله تولید متن، محاورههای چت، اجرای گردشهای کار و پردازش اسناد.',
|
||||
documentsRequestQuotaTooltip: 'تعیین میکند که تعداد کلی اقداماتی که یک فضای کاری میتواند در هر دقیقه در داخل پایگاه دانش انجام دهد، شامل ایجاد مجموعه داده، حذف، بهروزرسانی، بارگذاری مستندات، تغییرات، بایگانی و پرسش از پایگاه دانش است. این معیار برای ارزیابی عملکرد درخواستهای پایگاه دانش استفاده میشود. به عنوان مثال، اگر یک کاربر Sandbox در طی یک دقیقه 10 آزمایش متوالی انجام دهد، فضای کاری او به طور موقت از انجام اقدامات زیر در دقیقه بعدی محدود خواهد شد: ایجاد مجموعه داده، حذف، بهروزرسانی و بارگذاری یا تغییر مستندات.',
|
||||
startBuilding: 'شروع به ساخت کنید',
|
||||
taxTip: 'تمام قیمتهای اشتراک (ماهانه/سالانه) شامل مالیاتهای مربوطه (مثلاً مالیات بر ارزش افزوده، مالیات فروش) نمیشوند.',
|
||||
taxTipSecond: 'اگر منطقه شما هیچ الزامات مالیاتی قابل اجرا نداشته باشد، هیچ مالیاتی در هنگام پرداخت نشان داده نمیشود و برای کل مدت اشتراک هیچ هزینه اضافی از شما دریافت نخواهد شد.',
|
||||
triggerEvents: {
|
||||
unlimited: 'رویدادهای ماشهای نامحدود',
|
||||
tooltip: 'تعداد رویدادهایی که بهطور خودکار گردشهای کاری را از طریق افزونه، برنامهزمانبندی یا ماشههای وبهوک آغاز میکنند.',
|
||||
sandbox: '{{count,number}} رویدادهای محرک',
|
||||
professional: '{{count,number}} رویدادهای فعالسازی/ماه',
|
||||
},
|
||||
workflowExecution: {
|
||||
faster: 'اجرای سریعتر جریان کاری',
|
||||
priority: 'اجرای جریان کاری اولویتدار',
|
||||
standard: 'اجرای جریان کاری استاندارد',
|
||||
tooltip: 'اولویت و سرعت صف اجرای گردش کار.',
|
||||
},
|
||||
startNodes: {
|
||||
unlimited: 'راهاندازی/فرآیندهای نامحدود',
|
||||
limited: 'تا {{count}} محرک/جریانکاری',
|
||||
},
|
||||
title: {
|
||||
plans: 'طرحها',
|
||||
description: 'برنامهای را انتخاب کنید که بهترین تناسب را با نیازهای تیم شما دارد.',
|
||||
},
|
||||
},
|
||||
plans: {
|
||||
sandbox: {
|
||||
name: 'محیط آزمایشی',
|
||||
description: '200 بار آزمایش رایگان GPT',
|
||||
for: 'دوره آزمایشی رایگان قابلیتهای اصلی',
|
||||
},
|
||||
professional: {
|
||||
name: 'حرفهای',
|
||||
description: 'برای افراد و تیمهای کوچک برای باز کردن قدرت بیشتر به طور مقرون به صرفه.',
|
||||
for: 'برای توسعهدهندگان مستقل/تیمهای کوچک',
|
||||
},
|
||||
team: {
|
||||
name: 'تیم',
|
||||
description: 'همکاری بدون محدودیت و لذت بردن از عملکرد برتر.',
|
||||
for: 'برای تیمهای متوسط',
|
||||
},
|
||||
enterprise: {
|
||||
name: 'سازمانی',
|
||||
description: 'دریافت کاملترین قابلیتها و پشتیبانی برای سیستمهای بزرگ و بحرانی.',
|
||||
includesTitle: 'همه چیز در طرح تیم، به علاوه:',
|
||||
price: 'سفارشی',
|
||||
btnText: 'تماس با فروش',
|
||||
for: 'برای تیمهای بزرگ',
|
||||
priceTip: 'فقط صورتحساب سالیانه',
|
||||
features: ['راهحلهای مستقرسازی مقیاسپذیر با سطح سازمانی', 'مجوز استفاده تجاری', 'ویژگیهای اختصاصی سازمانی', 'چند فضای کاری و مدیریت سازمانی', 'ورود یکپارچه', 'توافقنامههای سطح خدمات مذاکره شده توسط شرکای Dify', 'امنیت و کنترلهای پیشرفته', 'بهروزرسانیها و نگهداری بهطور رسمی توسط دیفی', 'پشتیبانی فنی حرفهای'],
|
||||
},
|
||||
community: {
|
||||
btnText: 'شروع کنید با جامعه',
|
||||
price: 'رایگان',
|
||||
includesTitle: 'ویژگیهای رایگان:',
|
||||
description: 'برای کاربران فردی، تیمهای کوچک یا پروژههای غیر تجاری',
|
||||
name: 'جامعه',
|
||||
for: 'برای کاربران فردی، تیمهای کوچک یا پروژههای غیر تجاری',
|
||||
features: ['تمام ویژگیهای اصلی تحت مخزن عمومی منتشر شدند', 'فضای کاری تنها', 'مطابق با مجوز متن باز Dify'],
|
||||
},
|
||||
premium: {
|
||||
btnText: 'گرفتن نسخه پریمیوم در',
|
||||
description: 'برای سازمانها و تیمهای میانرده',
|
||||
price: 'قابل گسترش',
|
||||
includesTitle: 'همه چیز از جامعه، به علاوه:',
|
||||
for: 'برای سازمانها و تیمهای میانرده',
|
||||
name: 'پیشرفته',
|
||||
priceTip: 'بر اساس بازار ابری',
|
||||
comingSoon: 'پشتیبانی مایکروسافت آژور و گوگل کلود به زودی در دسترس خواهد بود',
|
||||
features: ['قابلیت اطمینان خودمدیریتی توسط ارائهدهندگان مختلف ابری', 'فضای کاری تنها', 'سفارشیسازی لوگو و برندینگ وباپ', 'پشتیبانی اولویتدار ایمیل و چت'],
|
||||
},
|
||||
},
|
||||
vectorSpace: {
|
||||
fullTip: 'فضای وکتور پر است.',
|
||||
fullSolution: 'طرح خود را ارتقاء دهید تا فضای بیشتری دریافت کنید.',
|
||||
},
|
||||
apps: {
|
||||
fullTip2: 'محدودیت طرح به پایان رسید',
|
||||
contactUs: 'با ما تماس بگیرید',
|
||||
fullTip1: 'بهروزرسانی کنید تا برنامههای بیشتری ایجاد کنید',
|
||||
fullTip1des: 'شما به محدودیت ساخت برنامهها در این طرح رسیدهاید',
|
||||
fullTip2des: 'توصیه میشود برنامههای غیرفعال را پاک کنید تا فضای استفاده را آزاد کنید، یا با ما تماس بگیرید.',
|
||||
},
|
||||
annotatedResponse: {
|
||||
fullTipLine1: 'طرح خود را ارتقاء دهید تا',
|
||||
fullTipLine2: 'مکالمات بیشتری را حاشیهنویسی کنید.',
|
||||
quotaTitle: 'سهمیه پاسخ حاشیهنویسی',
|
||||
},
|
||||
usagePage: {
|
||||
documentsUploadQuota: 'حجم بارگذاری اسناد',
|
||||
vectorSpace: 'ذخیرهسازی دادههای دانش',
|
||||
teamMembers: 'اعضای تیم',
|
||||
annotationQuota: 'سهام حاشیه',
|
||||
buildApps: 'ساخت برنامه ها',
|
||||
vectorSpaceTooltip: 'سندهایی که با حالت نمایهسازی با کیفیت بالا تهیه میشوند، منابع ذخیرهسازی دادههای دانش را مصرف خواهند کرد. زمانی که ذخیرهسازی دادههای دانش به حد خود برسد، اسناد جدید بارگزاری نخواهند شد.',
|
||||
perMonth: 'در ماه',
|
||||
triggerEvents: 'رویدادهای محرک',
|
||||
resetsIn: 'در {{count,number}} روز بازنشانی میشود',
|
||||
},
|
||||
teamMembers: 'اعضای تیم',
|
||||
triggerLimitModal: {
|
||||
upgrade: 'ارتقا',
|
||||
description: 'شما به حد مجاز تریگرهای رویداد گردش کار برای این طرح رسیدهاید.',
|
||||
dismiss: 'رد کردن',
|
||||
title: 'ارتقا دهید تا رویدادهای محرک بیشتری باز شود',
|
||||
usageTitle: 'رویدادهای محرک',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
788
dify/web/i18n/fa-IR/common.ts
Normal file
788
dify/web/i18n/fa-IR/common.ts
Normal file
@@ -0,0 +1,788 @@
|
||||
const translation = {
|
||||
api: {
|
||||
success: 'موفقیت',
|
||||
actionSuccess: 'عملیات موفق',
|
||||
saved: 'ذخیره شد',
|
||||
create: 'ایجاد شد',
|
||||
remove: 'حذف شد',
|
||||
},
|
||||
operation: {
|
||||
create: 'ایجاد',
|
||||
confirm: 'تایید',
|
||||
cancel: 'لغو',
|
||||
clear: 'پاک کردن',
|
||||
save: 'ذخیره',
|
||||
saveAndEnable: 'ذخیره و فعال سازی',
|
||||
edit: 'ویرایش',
|
||||
add: 'افزودن',
|
||||
added: 'اضافه شد',
|
||||
refresh: 'شروع مجدد',
|
||||
reset: 'بازنشانی',
|
||||
search: 'جستجو',
|
||||
change: 'تغییر',
|
||||
remove: 'حذف',
|
||||
send: 'ارسال',
|
||||
copy: 'کپی',
|
||||
lineBreak: 'خط جدید',
|
||||
sure: 'مطمئن هستم',
|
||||
download: 'دانلود',
|
||||
delete: 'حذف',
|
||||
settings: 'تنظیمات',
|
||||
setup: 'راه اندازی',
|
||||
getForFree: 'دریافت رایگان',
|
||||
reload: 'بارگذاری مجدد',
|
||||
ok: 'تایید',
|
||||
log: 'گزارش',
|
||||
learnMore: 'اطلاعات بیشتر',
|
||||
params: 'پارامترها',
|
||||
duplicate: 'تکرار',
|
||||
rename: 'تغییر نام',
|
||||
audioSourceUnavailable: 'منبع صوتی در دسترس نیست',
|
||||
zoomIn: 'بزرگنمایی',
|
||||
copyImage: 'کپی تصویر',
|
||||
openInNewTab: 'باز کردن در برگه جدید',
|
||||
zoomOut: 'کوچک نمایی',
|
||||
close: 'نزدیک',
|
||||
regenerate: 'بازسازی',
|
||||
view: 'مشاهده',
|
||||
viewMore: 'بیشتر ببینید',
|
||||
saveAndRegenerate: 'ذخیره و بازسازی تکه های فرزند',
|
||||
submit: 'ارسال',
|
||||
skip: 'کشتی',
|
||||
imageCopied: 'تصویر کپی شده',
|
||||
deleteApp: 'حذف برنامه',
|
||||
copied: 'کپی',
|
||||
viewDetails: 'دیدن جزئیات',
|
||||
in: 'در',
|
||||
downloadFailed: 'دانلود ناموفق بود. لطفاً بعداً دوباره تلاش کنید.',
|
||||
more: 'بیشتر',
|
||||
format: 'قالب',
|
||||
downloadSuccess: 'دانلود کامل شد.',
|
||||
selectAll: 'انتخاب همه',
|
||||
deSelectAll: 'همه را انتخاب نکنید',
|
||||
config: 'تنظیمات',
|
||||
no: 'نه',
|
||||
deleteConfirmTitle: 'حذف شود؟',
|
||||
yes: 'بله',
|
||||
confirmAction: 'لطفاً اقدام خود را تأیید کنید.',
|
||||
noSearchResults: 'هیچ {{content}} یافت نشد',
|
||||
resetKeywords: 'بازنشانی کلمات کلیدی',
|
||||
selectCount: '{{count}} انتخاب شد',
|
||||
searchCount: 'یافتن {{count}} {{content}}',
|
||||
noSearchCount: '0 {{content}}',
|
||||
now: 'الان',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} الزامی است',
|
||||
urlError: 'آدرس باید با http:// یا https:// شروع شود',
|
||||
},
|
||||
placeholder: {
|
||||
input: 'لطفا وارد کنید',
|
||||
select: 'لطفا انتخاب کنید',
|
||||
search: 'جستجو...',
|
||||
},
|
||||
voice: {
|
||||
language: {
|
||||
zhHans: 'چینی',
|
||||
zhHant: 'چینی سنتی',
|
||||
enUS: 'انگلیسی',
|
||||
deDE: 'آلمانی',
|
||||
frFR: 'فرانسوی',
|
||||
esES: 'اسپانیایی',
|
||||
itIT: 'ایتالیایی',
|
||||
thTH: 'تایلندی',
|
||||
idID: 'اندونزیایی',
|
||||
jaJP: 'ژاپنی',
|
||||
koKR: 'کرهای',
|
||||
ptBR: 'پرتغالی',
|
||||
ruRU: 'روسی',
|
||||
ukUA: 'اوکراینی',
|
||||
viVN: 'ویتنامی',
|
||||
plPL: 'لهستانی',
|
||||
roRO: 'رومانیایی',
|
||||
hiIN: 'هندی',
|
||||
trTR: 'ترکی',
|
||||
faIR: 'فارسی',
|
||||
},
|
||||
},
|
||||
unit: {
|
||||
char: 'کاراکتر',
|
||||
},
|
||||
actionMsg: {
|
||||
noModification: 'در حال حاضر تغییری وجود ندارد.',
|
||||
modifiedSuccessfully: 'با موفقیت تغییر یافت',
|
||||
modifiedUnsuccessfully: 'تغییر ناموفق بود',
|
||||
copySuccessfully: 'با موفقیت کپی شد',
|
||||
paySucceeded: 'پرداخت موفق',
|
||||
payCancelled: 'پرداخت لغو شد',
|
||||
generatedSuccessfully: 'با موفقیت تولید شد',
|
||||
generatedUnsuccessfully: 'تولید ناموفق بود',
|
||||
},
|
||||
model: {
|
||||
params: {
|
||||
temperature: 'دما',
|
||||
temperatureTip:
|
||||
'تصادفی بودن را کنترل میکند: کاهش آن منجر به تکمیلهای کمتر تصادفی میشود. با نزدیک شدن دما به صفر، مدل قطعی و تکراری میشود.',
|
||||
top_p: 'بالاترین P',
|
||||
top_pTip:
|
||||
'تنوع را از طریق نمونهگیری هسته کنترل میکند: 0.5 به این معنی است که نیمی از همه گزینههای وزندار احتمالی در نظر گرفته میشوند.',
|
||||
presence_penalty: 'جریمه حضور',
|
||||
presence_penaltyTip:
|
||||
'چقدر توکنهای جدید را بر اساس اینکه آیا در متن تاکنون ظاهر شدهاند جریمه کنیم.\nاحتمال مدل برای صحبت در مورد موضوعات جدید را افزایش میدهد.',
|
||||
frequency_penalty: 'جریمه تکرار',
|
||||
frequency_penaltyTip:
|
||||
'چقدر توکنهای جدید را بر اساس فراوانی موجود آنها در متن تاکنون جریمه کنیم.\nاحتمال تکرار دقیق همان خط توسط مدل را کاهش میدهد.',
|
||||
max_tokens: 'حداکثر توکن',
|
||||
max_tokensTip:
|
||||
'برای محدود کردن حداکثر طول پاسخ، در توکنها استفاده میشود. \nمقادیر بزرگتر ممکن است فضای باقیمانده برای کلمات راهنما، گزارشهای چت و دانش را محدود کند. \nتوصیه میشود آن را کمتر از دو سوم تنظیم کنید\ngpt-4-1106-preview، gpt-4-vision-preview حداکثر توکن (ورودی 128k خروجی 4k)',
|
||||
maxTokenSettingTip: 'تنظیم حداکثر توکن شما بالاست، که ممکن است فضا را برای راهنماها، پرس و جوها و دادهها محدود کند. در نظر بگیرید آن را زیر 2/3 تنظیم کنید.',
|
||||
setToCurrentModelMaxTokenTip: 'حداکثر توکن به 80٪ حداکثر توکن مدل فعلی {{maxToken}} بهروزرسانی شد.',
|
||||
stop_sequences: 'توالیهای توقف',
|
||||
stop_sequencesTip: 'حداکثر چهار توالی که API تولید توکنهای بیشتر را متوقف میکند. متن برگردانده شده شامل توالی توقف نخواهد بود.',
|
||||
stop_sequencesPlaceholder: 'توالی را وارد کنید و Tab را فشار دهید',
|
||||
},
|
||||
tone: {
|
||||
Creative: 'خلاقانه',
|
||||
Balanced: 'متعادل',
|
||||
Precise: 'دقیق',
|
||||
Custom: 'سفارشی',
|
||||
},
|
||||
addMoreModel: 'برای افزودن مدلهای بیشتر به تنظیمات بروید',
|
||||
settingsLink: 'تنظیمات ارائه دهنده مدل',
|
||||
capabilities: 'قابلیت های چند وجهی',
|
||||
},
|
||||
menus: {
|
||||
status: 'بتا',
|
||||
explore: 'کاوش',
|
||||
apps: 'استودیو',
|
||||
plugins: 'افزونهها',
|
||||
pluginsTips: 'افزونههای شخص ثالث را ادغام کنید یا افزونههای هوش مصنوعی سازگار با ChatGPT ایجاد کنید.',
|
||||
datasets: 'دانش',
|
||||
datasetsTips: 'به زودی: دادههای متنی خود را وارد کنید یا از طریق Webhook دادهها را در زمان واقعی برای بهبود زمینه LLM بنویسید.',
|
||||
newApp: 'برنامه جدید',
|
||||
newDataset: 'ایجاد دانش',
|
||||
tools: 'ابزارها',
|
||||
exploreMarketplace: 'بازار را کاوش کنید',
|
||||
appDetail: 'جزئیات برنامه',
|
||||
account: 'حساب',
|
||||
},
|
||||
userProfile: {
|
||||
settings: 'تنظیمات',
|
||||
emailSupport: 'پشتیبانی ایمیل',
|
||||
workspace: 'فضای کاری',
|
||||
createWorkspace: 'ایجاد فضای کاری',
|
||||
helpCenter: 'راهنما',
|
||||
roadmap: 'نقشه راه',
|
||||
community: 'انجمن',
|
||||
about: 'درباره',
|
||||
logout: 'خروج',
|
||||
github: 'گیتهاب',
|
||||
compliance: 'انطباق',
|
||||
support: 'پشتیبانی',
|
||||
contactUs: 'با ما تماس بگیرید',
|
||||
forum: 'انجمن',
|
||||
},
|
||||
settings: {
|
||||
accountGroup: 'حساب کاربری',
|
||||
workplaceGroup: 'فضای کاری',
|
||||
account: 'حساب من',
|
||||
members: 'اعضا',
|
||||
billing: 'صورتحساب',
|
||||
integrations: 'ادغامها',
|
||||
language: 'زبان',
|
||||
provider: 'ارائه دهنده مدل',
|
||||
dataSource: 'منبع داده',
|
||||
plugin: 'افزونهها',
|
||||
apiBasedExtension: 'توسعه مبتنی بر API',
|
||||
generalGroup: 'عمومی',
|
||||
},
|
||||
account: {
|
||||
avatar: 'آواتار',
|
||||
name: 'نام',
|
||||
email: 'ایمیل',
|
||||
password: 'رمز عبور',
|
||||
passwordTip: 'اگر نمیخواهید از کدهای ورود موقت استفاده کنید، میتوانید یک رمز عبور دائمی تنظیم کنید',
|
||||
setPassword: 'تنظیم رمز عبور',
|
||||
resetPassword: 'بازنشانی رمز عبور',
|
||||
currentPassword: 'رمز عبور فعلی',
|
||||
newPassword: 'رمز عبور جدید',
|
||||
confirmPassword: 'تأیید رمز عبور',
|
||||
notEqual: 'دو رمز عبور متفاوت هستند.',
|
||||
langGeniusAccount: 'حساب Dify',
|
||||
langGeniusAccountTip: 'حساب Dify شما و دادههای کاربری مرتبط.',
|
||||
editName: 'ویرایش نام',
|
||||
showAppLength: 'نمایش {{length}} برنامه',
|
||||
delete: 'حذف حساب کاربری',
|
||||
deleteTip: 'حذف حساب کاربری شما تمام دادههای شما را به طور دائمی پاک میکند و قابل بازیابی نیست.',
|
||||
account: 'حساب',
|
||||
myAccount: 'حساب من',
|
||||
studio: 'استودیو Dify',
|
||||
feedbackTitle: 'بازخورد',
|
||||
verificationPlaceholder: 'کد 6 رقمی را جایگذاری کنید',
|
||||
deletePlaceholder: 'لطفا ایمیل خود را وارد کنید',
|
||||
permanentlyDeleteButton: 'حذف دائمی حساب',
|
||||
verificationLabel: 'کد تأیید',
|
||||
feedbackPlaceholder: 'اختیاری',
|
||||
sendVerificationButton: 'ارسال کد تأیید',
|
||||
deletePrivacyLink: 'سیاست حفظ حریم خصوصی.',
|
||||
deleteLabel: 'برای تایید، لطفا ایمیل خود را در زیر تایپ کنید',
|
||||
deleteSuccessTip: 'حساب شما برای پایان دادن به حذف به زمان نیاز دارد. وقتی همه چیز تمام شد به شما ایمیل خواهیم زد.',
|
||||
deletePrivacyLinkTip: 'برای کسب اطلاعات بیشتر در مورد نحوه مدیریت داده های شما، لطفا به ما مراجعه کنید',
|
||||
feedbackLabel: 'به ما بگویید چرا حساب خود را حذف کرده اید؟',
|
||||
editWorkspaceInfo: 'ویرایش اطلاعات فضای کار',
|
||||
workspaceName: 'نام فضای کاری',
|
||||
workspaceIcon: 'آیکون محیط کار',
|
||||
changeEmail: {
|
||||
changeTo: 'تغییر به {{email}}',
|
||||
resendTip: 'کدی دریافت نکردید؟',
|
||||
codeLabel: 'کد تأیید',
|
||||
resend: 'دوباره ارسال کنید',
|
||||
emailLabel: 'ایمیل جدید',
|
||||
title: 'تغییر ایمیل',
|
||||
verifyNew: 'ایمیل جدید خود را تأیید کنید',
|
||||
sendVerifyCode: 'کد تأیید را ارسال کنید',
|
||||
newEmail: 'یک آدرس ایمیل جدید راهاندازی کنید',
|
||||
emailPlaceholder: 'یک ایمیل جدید وارد کنید',
|
||||
codePlaceholder: 'کد ۶ رقمی را وارد کنید',
|
||||
existingEmail: 'کاربری با این ایمیل از قبل وجود دارد.',
|
||||
content2: 'ایمیل فعلی شما <email>{{email}}</email> است. کد تأیید به این آدرس ایمیل ارسال شده است.',
|
||||
resendCount: 'دوباره ارسال کنید در {{count}} ثانیه',
|
||||
continue: 'ادامه دهید',
|
||||
verifyEmail: 'ایمیل فعلی خود را تأیید کنید',
|
||||
content4: 'ما یک کد تأیید موقت برای شما به <email>{{email}}</email> ارسال کردیم.',
|
||||
content1: 'اگر ادامه دهید، ما یک کد تأیید به <email>{{email}}</email> برای بازگشایی مجدد ارسال خواهیم کرد.',
|
||||
content3: 'یک ایمیل جدید وارد کنید و ما یک کد تأیید برای شما ارسال خواهیم کرد.',
|
||||
authTip: 'زمانی که ایمیل شما تغییر کند، حسابهای گوگل یا گیتهاب مرتبط با ایمیل قدیمی شما دیگر قادر به ورود به این حساب نخواهند بود.',
|
||||
unAvailableEmail: 'این ایمیل به طور موقت در دسترس نیست.',
|
||||
},
|
||||
},
|
||||
members: {
|
||||
team: 'تیم',
|
||||
invite: 'افزودن',
|
||||
name: 'نام',
|
||||
lastActive: 'آخرین فعالیت',
|
||||
role: 'نقشها',
|
||||
pending: 'در انتظار...',
|
||||
owner: 'مالک',
|
||||
admin: 'مدیر',
|
||||
adminTip: 'میتواند برنامهها را بسازد و تنظیمات تیم را مدیریت کند',
|
||||
normal: 'عادی',
|
||||
normalTip: 'فقط میتواند از برنامهها استفاده کند، نمیتواند برنامه بسازد',
|
||||
builder: 'سازنده',
|
||||
builderTip: 'میتواند برنامههای خود را بسازد و ویرایش کند',
|
||||
editor: 'ویرایشگر',
|
||||
editorTip: 'میتواند برنامهها را بسازد و ویرایش کند',
|
||||
datasetOperator: 'مدیر دانش',
|
||||
datasetOperatorTip: 'فقط میتواند پایگاه دانش را مدیریت کند',
|
||||
inviteTeamMember: 'افزودن عضو تیم',
|
||||
inviteTeamMemberTip: 'آنها میتوانند پس از ورود به سیستم، مستقیماً به دادههای تیم شما دسترسی پیدا کنند.',
|
||||
emailNotSetup: 'سرور ایمیل راهاندازی نشده است، بنابراین ایمیلهای دعوت نمیتوانند ارسال شوند. لطفاً کاربران را از لینک دعوت که پس از دعوت صادر خواهد شد مطلع کنید。',
|
||||
email: 'ایمیل',
|
||||
emailInvalid: 'فرمت ایمیل نامعتبر است',
|
||||
emailPlaceholder: 'لطفاً ایمیلها را وارد کنید',
|
||||
sendInvite: 'ارسال دعوت',
|
||||
invitedAsRole: 'به عنوان کاربر {{role}} دعوت شده',
|
||||
invitationSent: 'دعوتنامه ارسال شد',
|
||||
invitationSentTip: 'دعوتنامه ارسال شد و آنها میتوانند وارد Dify شوند تا به دادههای تیم شما دسترسی پیدا کنند.',
|
||||
invitationLink: 'لینک دعوت',
|
||||
failedInvitationEmails: 'کاربران زیر با موفقیت دعوت نشدند',
|
||||
ok: 'تایید',
|
||||
removeFromTeam: 'حذف از تیم',
|
||||
removeFromTeamTip: 'دسترسی تیم را حذف میکند',
|
||||
setAdmin: 'تنظیم به عنوان مدیر',
|
||||
setMember: 'تنظیم به عنوان عضو عادی',
|
||||
setBuilder: 'تنظیم به عنوان سازنده',
|
||||
setEditor: 'تنظیم به عنوان ویرایشگر',
|
||||
disInvite: 'لغو دعوت',
|
||||
deleteMember: 'حذف عضو',
|
||||
you: '(شما)',
|
||||
transferModal: {
|
||||
resendTip: 'کدی دریافت نکردید؟',
|
||||
resend: 'دوباره ارسال کنید',
|
||||
continue: 'ادامه دهید',
|
||||
codeLabel: 'کد تأیید',
|
||||
sendVerifyCode: 'کد تأیید را ارسال کنید',
|
||||
title: 'انتقال مالکیت فضای کاری',
|
||||
verifyContent: 'ایمیل فعلی شما <email>{{email}}</email> است.',
|
||||
transfer: 'انتقال مالکیت فضای کاری',
|
||||
warning: 'شما در حال انتقال مالکیت "{{workspace}}" هستید. این بلافاصله اجرایی میشود و قابل بازگشت نیست.',
|
||||
resendCount: 'دوباره ارسال کنید در {{count}} ثانیه',
|
||||
warningTip: 'شما به یک عضو مدیر تبدیل خواهید شد و مالک جدید کنترل کامل خواهد داشت.',
|
||||
transferLabel: 'مالکیت فضای کار را به منتقل کنید',
|
||||
verifyEmail: 'ایمیل فعلی خود را تأیید کنید',
|
||||
sendTip: 'اگر ادامه دهید، ما یک کد تأیید به <email>{{email}}</email> برای بازگشایی مجدد ارسال خواهیم کرد.',
|
||||
codePlaceholder: 'کد ۶ رقمی را وارد کنید',
|
||||
transferPlaceholder: 'یک عضو از فضای کاری را انتخاب کنید…',
|
||||
verifyContent2: 'ما یک کد تأیید موقت به این ایمیل برای تأیید مجدد ارسال خواهیم کرد.',
|
||||
},
|
||||
transferOwnership: 'انتقال مالکیت',
|
||||
},
|
||||
integrations: {
|
||||
connected: 'متصل شده',
|
||||
google: 'گوگل',
|
||||
googleAccount: 'ورود با حساب گوگل',
|
||||
github: 'گیتهاب',
|
||||
githubAccount: 'ورود با حساب گیتهاب',
|
||||
connect: 'اتصال',
|
||||
},
|
||||
language: {
|
||||
displayLanguage: 'زبان نمایش',
|
||||
timezone: 'منطقه زمانی',
|
||||
},
|
||||
provider: {
|
||||
apiKey: 'کلید API',
|
||||
enterYourKey: 'کلید API خود را اینجا وارد کنید',
|
||||
invalidKey: 'کلید API OpenAI نامعتبر است',
|
||||
validatedError: 'اعتبارسنجی ناموفق بود: ',
|
||||
validating: 'در حال اعتبارسنجی کلید...',
|
||||
saveFailed: 'ذخیره کلید API ناموفق بود',
|
||||
apiKeyExceedBill: 'این کلید API سهمیه موجود ندارد، لطفاً بخوانید',
|
||||
addKey: 'افزودن کلید',
|
||||
comingSoon: 'به زودی',
|
||||
editKey: 'ویرایش',
|
||||
invalidApiKey: 'کلید API نامعتبر',
|
||||
azure: {
|
||||
apiBase: 'پایه API',
|
||||
apiBasePlaceholder: 'آدرس پایه API نقطه پایانی Azure OpenAI شما.',
|
||||
apiKey: 'کلید API',
|
||||
apiKeyPlaceholder: 'کلید API خود را اینجا وارد کنید',
|
||||
helpTip: 'آشنایی با سرویس Azure OpenAI',
|
||||
},
|
||||
openaiHosted: {
|
||||
openaiHosted: 'OpenAI میزبانی شده',
|
||||
onTrial: 'در حال آزمایش',
|
||||
exhausted: 'سهمیه تمام شده',
|
||||
desc: 'سرویس میزبانی OpenAI ارائه شده توسط Dify به شما اجازه میدهد از مدلهایی مانند GPT-3.5 استفاده کنید. قبل از اتمام سهمیه آزمایشی خود، باید سایر ارائهدهندگان مدل را تنظیم کنید.',
|
||||
callTimes: 'تعداد فراخوانی',
|
||||
usedUp: 'سهمیه آزمایشی تمام شده است. ارائهدهنده مدل خود را اضافه کنید.',
|
||||
useYourModel: 'در حال حاضر از ارائهدهنده مدل خود استفاده میکنید.',
|
||||
close: 'بستن',
|
||||
},
|
||||
anthropicHosted: {
|
||||
anthropicHosted: 'Anthropic Claude',
|
||||
onTrial: 'در حال آزمایش',
|
||||
exhausted: 'سهمیه تمام شده',
|
||||
desc: 'مدل قدرتمند که در طیف گستردهای از وظایف از گفتگوی پیشرفته و تولید محتوای خلاقانه تا دستورالعملهای دقیق عالی عمل میکند.',
|
||||
callTimes: 'تعداد فراخوانی',
|
||||
usedUp: 'سهمیه آزمایشی تمام شده است. ارائهدهنده مدل خود را اضافه کنید.',
|
||||
useYourModel: 'در حال حاضر از ارائهدهنده مدل خود استفاده میکنید.',
|
||||
close: 'بستن',
|
||||
trialQuotaTip: 'سهمیه آزمایشی Anthropic شما در تاریخ 2025/03/11 منقضی می شود و پس از آن دیگر در دسترس نخواهد بود. لطفا به موقع از آن استفاده کنید.',
|
||||
},
|
||||
anthropic: {
|
||||
using: 'قابلیت تعبیه از این استفاده میکند',
|
||||
enableTip: 'برای فعالسازی مدل Anthropic، ابتدا باید به OpenAI یا سرویس Azure OpenAI متصل شوید.',
|
||||
notEnabled: 'فعال نشده',
|
||||
keyFrom: 'کلید API خود را از Anthropic دریافت کنید',
|
||||
},
|
||||
encrypted: {
|
||||
front: 'کلید API شما با استفاده از فناوری',
|
||||
back: ' رمزگذاری و ذخیره خواهد شد.',
|
||||
},
|
||||
},
|
||||
modelProvider: {
|
||||
notConfigured: 'مدل سیستم هنوز به طور کامل پیکربندی نشده است و برخی از عملکردها ممکن است در دسترس نباشند.',
|
||||
systemModelSettings: 'تنظیمات مدل سیستم',
|
||||
systemModelSettingsLink: 'چرا تنظیم مدل سیستم ضروری است؟',
|
||||
selectModel: 'مدل خود را انتخاب کنید',
|
||||
setupModelFirst: 'لطفاً ابتدا مدل خود را تنظیم کنید',
|
||||
systemReasoningModel: {
|
||||
key: 'مدل استدلال سیستم',
|
||||
tip: 'مدل استنتاج پیشفرض را برای ایجاد برنامهها تنظیم کنید. ویژگیهایی مانند تولید نام گفتگو و پیشنهاد سوال بعدی نیز از مدل استنتاج پیشفرض استفاده خواهند کرد.',
|
||||
},
|
||||
embeddingModel: {
|
||||
key: 'مدل تعبیه',
|
||||
tip: 'مدل پیشفرض را برای پردازش تعبیه اسناد دانش تنظیم کنید. هر دو بازیابی و وارد کردن دانش از این مدل تعبیه برای پردازش برداری استفاده میکنند. تغییر باعث ناسازگاری بُعد برداری بین دانش وارد شده و سوال میشود که منجر به شکست بازیابی میشود. برای جلوگیری از شکست بازیابی، لطفاً این مدل را به دلخواه تغییر ندهید.',
|
||||
required: 'مدل تعبیه الزامی است',
|
||||
},
|
||||
speechToTextModel: {
|
||||
key: 'مدل تبدیل گفتار به متن',
|
||||
tip: 'مدل پیشفرض را برای ورودی گفتار به متن در مکالمه تنظیم کنید.',
|
||||
},
|
||||
ttsModel: {
|
||||
key: 'مدل تبدیل متن به گفتار',
|
||||
tip: 'مدل پیشفرض را برای ورودی متن به گفتار در مکالمه تنظیم کنید.',
|
||||
},
|
||||
rerankModel: {
|
||||
key: 'مدل رتبهبندی مجدد',
|
||||
tip: 'مدل رتبهبندی مجدد، لیست اسناد کاندید را بر اساس تطابق معنایی با پرسش کاربر مرتب میکند و نتایج رتبهبندی معنایی را بهبود میبخشد',
|
||||
},
|
||||
apiKey: 'کلید API',
|
||||
quota: 'سهمیه',
|
||||
searchModel: 'جستجوی مدل',
|
||||
noModelFound: 'هیچ مدلی برای {{model}} یافت نشد',
|
||||
models: 'مدلها',
|
||||
showMoreModelProvider: 'نمایش ارائهدهندگان مدل بیشتر',
|
||||
selector: {
|
||||
tip: 'این مدل حذف شده است. لطفاً یک مدل اضافه کنید یا مدل دیگری را انتخاب کنید.',
|
||||
emptyTip: 'هیچ مدل موجودی وجود ندارد',
|
||||
emptySetting: 'لطفاً به تنظیمات بروید تا پیکربندی کنید',
|
||||
rerankTip: 'لطفاً مدل رتبهبندی مجدد را تنظیم کنید',
|
||||
},
|
||||
card: {
|
||||
quota: 'سهمیه',
|
||||
onTrial: 'در حال آزمایش',
|
||||
paid: 'پرداخت شده',
|
||||
quotaExhausted: 'سهمیه تمام شده',
|
||||
callTimes: 'تعداد فراخوانی',
|
||||
tokens: 'توکنها',
|
||||
buyQuota: 'خرید سهمیه',
|
||||
priorityUse: 'استفاده با اولویت',
|
||||
removeKey: 'حذف کلید API',
|
||||
tip: 'اولویت به سهمیه پرداخت شده داده میشود. سهمیه آزمایشی پس از اتمام سهمیه پرداخت شده استفاده خواهد شد.',
|
||||
},
|
||||
item: {
|
||||
deleteDesc: '{{modelName}} به عنوان مدلهای استدلال سیستم استفاده میشوند. برخی از عملکردها پس از حذف در دسترس نخواهند بود. لطفاً تأیید کنید.',
|
||||
freeQuota: 'سهمیه رایگان',
|
||||
},
|
||||
addApiKey: 'کلید API خود را اضافه کنید',
|
||||
invalidApiKey: 'کلید API نامعتبر',
|
||||
encrypted: {
|
||||
front: 'کلید API شما با استفاده از فناوری',
|
||||
back: ' رمزگذاری و ذخیره خواهد شد.',
|
||||
},
|
||||
freeQuota: {
|
||||
howToEarn: 'چگونه کسب کنیم',
|
||||
},
|
||||
addMoreModelProvider: 'افزودن ارائهدهنده مدل بیشتر',
|
||||
addModel: 'افزودن مدل',
|
||||
modelsNum: '{{num}} مدل',
|
||||
showModels: 'نمایش مدلها',
|
||||
showModelsNum: 'نمایش {{num}} مدل',
|
||||
collapse: 'جمع کردن',
|
||||
config: 'پیکربندی',
|
||||
modelAndParameters: 'مدل و پارامترها',
|
||||
model: 'مدل',
|
||||
featureSupported: '{{feature}} پشتیبانی میشود',
|
||||
callTimes: 'تعداد فراخوانی',
|
||||
credits: 'اعتبار پیام',
|
||||
buyQuota: 'خرید سهمیه',
|
||||
getFreeTokens: 'دریافت توکنهای رایگان',
|
||||
priorityUsing: 'استفاده با اولویت',
|
||||
deprecated: 'منسوخ شده',
|
||||
confirmDelete: 'تأیید حذف؟',
|
||||
quotaTip: 'توکنهای رایگان باقیمانده در دسترس',
|
||||
loadPresets: 'بارگیری تنظیمات از پیش تعیین شده',
|
||||
parameters: 'پارامترها',
|
||||
loadBalancing: 'تعادل بار',
|
||||
loadBalancingDescription: 'کاهش فشار با چندین مجموعه اعتبارنامه.',
|
||||
loadBalancingHeadline: 'تعادل بار',
|
||||
configLoadBalancing: 'پیکربندی تعادل بار',
|
||||
modelHasBeenDeprecated: 'این مدل منسوخ شده است',
|
||||
providerManaged: 'مدیریت شده توسط ارائهدهنده',
|
||||
providerManagedDescription: 'استفاده از مجموعه واحد اعتبارنامه ارائه شده توسط ارائهدهنده مدل.',
|
||||
defaultConfig: 'پیکربندی پیشفرض',
|
||||
apiKeyStatusNormal: 'وضعیت کلید API عادی است',
|
||||
apiKeyRateLimit: 'محدودیت نرخ به دست آمد، پس از {{seconds}} ثانیه در دسترس خواهد بود',
|
||||
addConfig: 'افزودن پیکربندی',
|
||||
editConfig: 'ویرایش پیکربندی',
|
||||
loadBalancingLeastKeyWarning: 'برای فعال کردن تعادل بار، حداقل 2 کلید باید فعال باشند.',
|
||||
loadBalancingInfo: 'به طور پیشفرض، تعادل بار از استراتژی Round-robin استفاده میکند. اگر محدودیت نرخ فعال شود، یک دوره خنک شدن 1 دقیقهای اعمال خواهد شد.',
|
||||
upgradeForLoadBalancing: 'برای فعال کردن تعادل بار، طرح خود را ارتقا دهید.',
|
||||
emptyProviderTitle: 'ارائه دهنده مدل راه اندازی نشده است',
|
||||
toBeConfigured: 'پیکربندی شود',
|
||||
configureTip: 'api-key را راه اندازی کنید یا مدل را برای استفاده اضافه کنید',
|
||||
installProvider: 'نصب ارائه دهندگان مدل',
|
||||
discoverMore: 'اطلاعات بیشتر در',
|
||||
emptyProviderTip: 'لطفا ابتدا یک ارائه دهنده مدل نصب کنید.',
|
||||
auth: {
|
||||
apiKeyModal: {
|
||||
title: 'پیکربندی مجوز کلید API',
|
||||
addModel: 'مدل اضافه کنید',
|
||||
desc: 'پس از پیکربندی اعتبارنامهها، تمامی اعضای درون فضای کاری میتوانند از این مدل هنگام نظمدهی به برنامهها استفاده کنند.',
|
||||
},
|
||||
authorizationError: 'خطای مجوز',
|
||||
unAuthorized: 'بدون مجوز',
|
||||
configModel: 'مدل پیکربندی',
|
||||
apiKeys: 'کلیدهای API',
|
||||
addCredential: 'مدرک اضافه کنید',
|
||||
addNewModel: 'مدل جدید اضافه کن',
|
||||
addApiKey: 'کلید API را اضافه کنید',
|
||||
authRemoved: 'منبع حذف شد',
|
||||
configLoadBalancing: 'پیکربندی بارگذاری متوازن',
|
||||
specifyModelCredential: 'مدل اعتبارنامه را مشخص کنید',
|
||||
providerManaged: 'مدیریت شده توسط ارائهدهنده',
|
||||
addModelCredential: 'مدرک مدل را اضافه کنید',
|
||||
specifyModelCredentialTip: 'از اعتبارنامه مدل پیکربندی شده استفاده کنید.',
|
||||
providerManagedTip: 'تنظیمات فعلی توسط ارائهدهنده میزبانی میشود.',
|
||||
modelCredentials: 'مدل اعتبارنامه',
|
||||
manageCredentials: 'مدیریت اعتبارنامه ها',
|
||||
addModel: 'افزودن مدل',
|
||||
removeModel: 'حذف مدل',
|
||||
modelCredential: 'اعتبار مدل',
|
||||
selectModelCredential: 'یک اعتبار مدل را انتخاب کنید',
|
||||
editModelCredential: 'اعتبار مدل را ویرایش کنید',
|
||||
addNewModelCredential: 'افزودن اعتبار مدل جدید',
|
||||
customModelCredentials: 'اعتبار مدل سفارشی',
|
||||
customModelCredentialsDeleteTip: 'اعتبار در حال استفاده است و قابل حذف نیست',
|
||||
},
|
||||
parametersInvalidRemoved: 'برخی پارامترها نامعتبر هستند و حذف شدهاند',
|
||||
installDataSourceProvider: 'نصب ارائهدهندگان منبع داده',
|
||||
},
|
||||
dataSource: {
|
||||
add: 'افزودن منبع داده',
|
||||
connect: 'اتصال',
|
||||
configure: 'پیکربندی',
|
||||
notion: {
|
||||
title: 'نوشن',
|
||||
description: 'استفاده از نوشن به عنوان منبع داده برای دانش.',
|
||||
connectedWorkspace: 'فضای کاری متصل',
|
||||
addWorkspace: 'افزودن فضای کاری',
|
||||
connected: 'متصل شده',
|
||||
disconnected: 'قطع شده',
|
||||
changeAuthorizedPages: 'تغییر صفحات مجاز',
|
||||
pagesAuthorized: 'صفحات مجاز',
|
||||
sync: 'همگامسازی',
|
||||
remove: 'حذف',
|
||||
selector: {
|
||||
pageSelected: 'صفحات انتخاب شده',
|
||||
searchPages: 'جستجوی صفحات...',
|
||||
noSearchResult: 'نتیجه جستجویی یافت نشد',
|
||||
addPages: 'افزودن صفحات',
|
||||
preview: 'پیشنمایش',
|
||||
},
|
||||
integratedAlert: 'نوشته به طور داخلی از طریق اعتبارنامه یکپارچه شده است، نیازی به دوباره مجاز کردن نیست.',
|
||||
},
|
||||
website: {
|
||||
title: 'وبسایت',
|
||||
description: 'وارد کردن محتوا از وبسایتها با استفاده از خزنده وب.',
|
||||
with: 'با',
|
||||
configuredCrawlers: 'خزندههای پیکربندی شده',
|
||||
active: 'فعال',
|
||||
inactive: 'غیرفعال',
|
||||
},
|
||||
},
|
||||
plugin: {
|
||||
serpapi: {
|
||||
apiKey: 'کلید API',
|
||||
apiKeyPlaceholder: 'کلید API خود را وارد کنید',
|
||||
keyFrom: 'کلید SerpAPI خود را از صفحه حساب SerpAPI دریافت کنید',
|
||||
},
|
||||
},
|
||||
apiBasedExtension: {
|
||||
title: 'افزونههای مبتنی بر API مدیریت متمرکز API را فراهم میکنند و پیکربندی را برای استفاده آسان در برنامههای Dify ساده میکنند.',
|
||||
link: 'نحوه توسعه افزونه API خود را بیاموزید.',
|
||||
add: 'افزودن افزونه API',
|
||||
selector: {
|
||||
title: 'افزونه API',
|
||||
placeholder: 'لطفاً افزونه API را انتخاب کنید',
|
||||
manage: 'مدیریت افزونه API',
|
||||
},
|
||||
modal: {
|
||||
title: 'افزودن افزونه API',
|
||||
editTitle: 'ویرایش افزونه API',
|
||||
name: {
|
||||
title: 'نام',
|
||||
placeholder: 'لطفاً نام را وارد کنید',
|
||||
},
|
||||
apiEndpoint: {
|
||||
title: 'نقطه پایانی API',
|
||||
placeholder: 'لطفاً نقطه پایانی API را وارد کنید',
|
||||
},
|
||||
apiKey: {
|
||||
title: 'کلید API',
|
||||
placeholder: 'لطفاً کلید API را وارد کنید',
|
||||
lengthError: 'طول کلید API نمیتواند کمتر از ۵ کاراکتر باشد',
|
||||
},
|
||||
},
|
||||
type: 'نوع',
|
||||
},
|
||||
about: {
|
||||
changeLog: 'تغییرات',
|
||||
updateNow: 'بهروزرسانی اکنون',
|
||||
nowAvailable: 'Dify {{version}} اکنون در دسترس است.',
|
||||
latestAvailable: 'Dify {{version}} آخرین نسخه در دسترس است.',
|
||||
},
|
||||
appMenus: {
|
||||
overview: 'نظارت',
|
||||
promptEng: 'هماهنگسازی',
|
||||
apiAccess: 'دسترسی API',
|
||||
logAndAnn: 'گزارشها و اعلانات',
|
||||
logs: 'گزارشها',
|
||||
},
|
||||
environment: {
|
||||
testing: 'آزمایشی',
|
||||
development: 'توسعه',
|
||||
},
|
||||
appModes: {
|
||||
completionApp: 'تولیدکننده متن',
|
||||
chatApp: 'برنامه چت',
|
||||
},
|
||||
datasetMenus: {
|
||||
documents: 'اسناد',
|
||||
hitTesting: 'آزمایش بازیابی',
|
||||
settings: 'تنظیمات',
|
||||
emptyTip: 'دانش مرتبط نشده است، لطفاً به برنامه یا افزونه بروید تا ارتباط را کامل کنید.',
|
||||
viewDoc: 'مشاهده مستندات',
|
||||
relatedApp: 'برنامههای مرتبط',
|
||||
noRelatedApp: 'هیچ برنامه پیوندی وجود ندارد',
|
||||
pipeline: 'خط لوله',
|
||||
},
|
||||
voiceInput: {
|
||||
speaking: 'اکنون صحبت کنید...',
|
||||
converting: 'در حال تبدیل به متن...',
|
||||
notAllow: 'میکروفون مجاز نیست',
|
||||
},
|
||||
modelName: {
|
||||
'gpt-3.5-turbo': 'جیپیتی-۳.۵-توربو',
|
||||
'gpt-3.5-turbo-16k': 'جیپیتی-۳.۵-توربو-۱۶کا',
|
||||
'gpt-4': 'جیپیتی-۴',
|
||||
'gpt-4-32k': 'جیپیتی-۴-۳۲کا',
|
||||
'text-davinci-003': 'متن-داوینچی-۰۰۳',
|
||||
'text-embedding-ada-002': 'متن-تعبیه-آدا-۰۰۲',
|
||||
'whisper-1': 'ویسپر-۱',
|
||||
'claude-instant-1': 'کلاود-فوری',
|
||||
'claude-2': 'کلاود-۲',
|
||||
},
|
||||
chat: {
|
||||
renameConversation: 'تغییر نام مکالمه',
|
||||
conversationName: 'نام مکالمه',
|
||||
conversationNamePlaceholder: 'لطفاً نام مکالمه را وارد کنید',
|
||||
conversationNameCanNotEmpty: 'نام مکالمه الزامی است',
|
||||
citation: {
|
||||
title: 'استنادها',
|
||||
linkToDataset: 'پیوند به دانش',
|
||||
characters: 'کاراکترها:',
|
||||
hitCount: 'تعداد بازیابی:',
|
||||
vectorHash: 'هش بردار:',
|
||||
hitScore: 'امتیاز بازیابی:',
|
||||
},
|
||||
inputPlaceholder: 'با ربات صحبت کنید',
|
||||
thought: 'فکر',
|
||||
thinking: 'تفکر...',
|
||||
resend: 'دوباره ارسال کنید',
|
||||
},
|
||||
promptEditor: {
|
||||
placeholder: 'دستور خود را اینجا بنویسید، «{» را وارد کنید تا یک متغیر درج کنید، «/» را وارد کنید تا یک بلوک محتوای دستور درج کنید',
|
||||
context: {
|
||||
item: {
|
||||
title: 'زمینه',
|
||||
desc: 'درج الگوی زمینه',
|
||||
},
|
||||
modal: {
|
||||
title: '{{num}} دانش در زمینه',
|
||||
add: 'افزودن زمینه',
|
||||
footer: 'شما میتوانید زمینهها را در بخش زمینه در زیر مدیریت کنید.',
|
||||
},
|
||||
},
|
||||
history: {
|
||||
item: {
|
||||
title: 'تاریخچه مکالمه',
|
||||
desc: 'درج الگوی پیام تاریخی',
|
||||
},
|
||||
modal: {
|
||||
title: 'مثال',
|
||||
user: 'سلام',
|
||||
assistant: 'سلام! چطور میتوانم امروز به شما کمک کنم؟',
|
||||
edit: 'ویرایش نامهای نقش مکالمه',
|
||||
},
|
||||
},
|
||||
variable: {
|
||||
item: {
|
||||
title: 'متغیرها و ابزارهای خارجی',
|
||||
desc: 'درج متغیرها و ابزارهای خارجی',
|
||||
},
|
||||
outputToolDisabledItem: {
|
||||
title: 'متغیرها',
|
||||
desc: 'درج متغیرها',
|
||||
},
|
||||
modal: {
|
||||
add: 'متغیر جدید',
|
||||
addTool: 'ابزار جدید',
|
||||
},
|
||||
},
|
||||
query: {
|
||||
item: {
|
||||
title: 'پرسوجو',
|
||||
desc: 'درج الگوی پرسوجوی کاربر',
|
||||
},
|
||||
},
|
||||
existed: 'در حال حاضر در دستور وجود دارد',
|
||||
},
|
||||
imageUploader: {
|
||||
uploadFromComputer: 'بارگذاری از کامپیوتر',
|
||||
uploadFromComputerReadError: 'خواندن تصویر ناموفق بود، لطفاً دوباره تلاش کنید.',
|
||||
uploadFromComputerUploadError: 'بارگذاری تصویر ناموفق بود، لطفاً دوباره بارگذاری کنید.',
|
||||
uploadFromComputerLimit: 'بارگذاری تصاویر نمیتواند از {{size}} مگابایت بیشتر باشد',
|
||||
pasteImageLink: 'پیوند تصویر را بچسبانید',
|
||||
pasteImageLinkInputPlaceholder: 'پیوند تصویر را اینجا بچسبانید',
|
||||
pasteImageLinkInvalid: 'پیوند تصویر نامعتبر',
|
||||
imageUpload: 'بارگذاری تصویر',
|
||||
},
|
||||
tag: {
|
||||
placeholder: 'همه برچسبها',
|
||||
addNew: 'افزودن برچسب جدید',
|
||||
noTag: 'بدون برچسب',
|
||||
noTagYet: 'هنوز برچسبی وجود ندارد',
|
||||
addTag: 'افزودن برچسبها',
|
||||
editTag: 'ویرایش برچسبها',
|
||||
manageTags: 'مدیریت برچسبها',
|
||||
selectorPlaceholder: 'برای جستجو یا ایجاد تایپ کنید',
|
||||
create: 'ایجاد',
|
||||
delete: 'حذف برچسب',
|
||||
deleteTip: 'برچسب در حال استفاده است، آیا آن را حذف میکنید؟',
|
||||
created: 'برچسب با موفقیت ایجاد شد',
|
||||
failed: 'ایجاد برچسب ناموفق بود',
|
||||
},
|
||||
fileUploader: {
|
||||
uploadFromComputer: 'آپلود محلی',
|
||||
pasteFileLinkInputPlaceholder: 'URL را وارد کنید...',
|
||||
pasteFileLinkInvalid: 'پیوند فایل نامعتبر',
|
||||
fileExtensionNotSupport: 'پسوند فایل پشتیبانی نمی شود',
|
||||
uploadFromComputerReadError: 'خواندن فایل انجام نشد، لطفا دوباره امتحان کنید.',
|
||||
uploadFromComputerUploadError: 'آپلود فایل انجام نشد، لطفا دوباره آپلود کنید.',
|
||||
pasteFileLink: 'پیوند فایل را جایگذاری کنید',
|
||||
uploadFromComputerLimit: 'آپلود فایل نمی تواند از {{size}} تجاوز کند',
|
||||
fileExtensionBlocked: 'این نوع فایل به دلایل امنیتی مسدود شده است',
|
||||
},
|
||||
license: {
|
||||
expiring_plural: 'انقضا در {{count}} روز',
|
||||
expiring: 'انقضا در یک روز',
|
||||
unlimited: 'نامحدود',
|
||||
},
|
||||
pagination: {
|
||||
perPage: 'موارد در هر صفحه',
|
||||
},
|
||||
theme: {
|
||||
auto: 'سیستم',
|
||||
theme: 'تم',
|
||||
dark: 'تاریک',
|
||||
light: 'نور',
|
||||
},
|
||||
compliance: {
|
||||
soc2Type1: 'گزارش نوع I SOC 2',
|
||||
sandboxUpgradeTooltip: 'تنها با برنامه حرفهای یا تیمی در دسترس است.',
|
||||
gdpr: 'GDPR DPA',
|
||||
soc2Type2: 'گزارش نوع II SOC 2',
|
||||
iso27001: 'گواهینامه ISO 27001:2022',
|
||||
professionalUpgradeTooltip: 'تنها با برنامه تیم یا بالاتر در دسترس است.',
|
||||
},
|
||||
imageInput: {
|
||||
dropImageHere: 'عکس خود را اینجا رها کنید، یا',
|
||||
supportedFormats: 'از فرمتهای PNG، JPG، JPEG، WEBP و GIF پشتیبانی میکند',
|
||||
browse: 'مرورگر',
|
||||
},
|
||||
you: 'تو',
|
||||
avatar: {
|
||||
deleteTitle: 'حذف آواتار',
|
||||
deleteDescription: 'آیا مطمئن هستید که میخواهید تصویر پروفایل خود را حذف کنید؟ حساب شما از آواتار اولیه پیشفرض استفاده خواهد کرد.',
|
||||
},
|
||||
feedback: {
|
||||
title: 'بازخورد ارائه دهید',
|
||||
subtitle: 'لطفاً به ما بگویید که چه مشکلی در این پاسخ پیش آمده است.',
|
||||
content: 'محتوای بازخورد',
|
||||
placeholder: 'لطفاً توضیح دهید که چه مشکلی پیش آمد یا چگونه میتوانیم بهبود پیدا کنیم...',
|
||||
},
|
||||
label: {
|
||||
optional: '(اختیاری)',
|
||||
},
|
||||
noData: 'بدون داده',
|
||||
dynamicSelect: {
|
||||
error: 'بارگیری گزینهها ناموفق بود',
|
||||
noData: 'هیچ گزینهای در دسترس نیست',
|
||||
loading: 'در حال بارگذاری گزینهها...',
|
||||
selected: '{{count}} انتخاب شد',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
32
dify/web/i18n/fa-IR/custom.ts
Normal file
32
dify/web/i18n/fa-IR/custom.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
const translation = {
|
||||
custom: 'سفارشی سازی',
|
||||
upgradeTip: {
|
||||
prefix: 'طرح خود را ارتقا دهید به',
|
||||
suffix: 'تا برند خود را سفارشی کنید.',
|
||||
title: 'طرح خود را ارتقا دهید',
|
||||
des: 'طرح خود را ارتقا دهید تا برند خود را سفارشی کنید',
|
||||
},
|
||||
webapp: {
|
||||
title: 'سفارشی سازی برند وب اپ',
|
||||
removeBrand: 'حذف "Powered by Dify"',
|
||||
changeLogo: 'تغییر تصویر برند "Powered by"',
|
||||
changeLogoTip: 'فرمت SVG یا PNG با حداقل اندازه 40x40px',
|
||||
},
|
||||
app: {
|
||||
title: 'سفارشی سازی برند هدر اپلیکیشن',
|
||||
changeLogoTip: 'فرمت SVG یا PNG با حداقل اندازه 80x80px',
|
||||
},
|
||||
upload: 'بارگذاری',
|
||||
uploading: 'در حال بارگذاری',
|
||||
uploadedFail: 'بارگذاری تصویر ناموفق بود، لطفاً دوباره بارگذاری کنید.',
|
||||
change: 'تغییر',
|
||||
apply: 'اعمال',
|
||||
restore: 'بازگرداندن به پیشفرضها',
|
||||
customize: {
|
||||
contactUs: ' با ما تماس بگیرید ',
|
||||
prefix: 'برای سفارشیسازی لوگوی برند در اپلیکیشن، لطفاً',
|
||||
suffix: 'برای ارتقا به نسخه Enterprise.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
217
dify/web/i18n/fa-IR/dataset-creation.ts
Normal file
217
dify/web/i18n/fa-IR/dataset-creation.ts
Normal file
@@ -0,0 +1,217 @@
|
||||
const translation = {
|
||||
steps: {
|
||||
header: {
|
||||
fallbackRoute: 'دانش',
|
||||
},
|
||||
one: 'انتخاب منبع داده',
|
||||
two: 'پیشپردازش و پاکسازی متن',
|
||||
three: 'اجرا و پایان',
|
||||
},
|
||||
error: {
|
||||
unavailable: 'این دانش در دسترس نیست',
|
||||
},
|
||||
firecrawl: {
|
||||
configFirecrawl: 'پیکربندی fireFirecrawl',
|
||||
apiKeyPlaceholder: 'کلید API از firecrawl.dev',
|
||||
getApiKeyLinkText: 'کلید API خود را از firecrawl.dev دریافت کنید',
|
||||
},
|
||||
stepOne: {
|
||||
filePreview: 'پیشنمایش فایل',
|
||||
pagePreview: 'پیشنمایش صفحه',
|
||||
dataSourceType: {
|
||||
file: 'وارد کردن از فایل',
|
||||
notion: 'همگامسازی از Notion',
|
||||
web: 'همگامسازی از وبسایت',
|
||||
},
|
||||
uploader: {
|
||||
title: 'بارگذاری فایل',
|
||||
button: 'فایل ها یا پوشه ها را بکشید و رها کنید یا',
|
||||
buttonSingleFile: 'فایل را بکشید و رها کنید یا',
|
||||
browse: 'مرور',
|
||||
tip: 'پشتیبانی از {{supportTypes}}. حداکثر {{size}}MB هر کدام.',
|
||||
validation: {
|
||||
typeError: 'نوع فایل پشتیبانی نمیشود',
|
||||
size: 'فایل خیلی بزرگ است. حداکثر {{size}}MB',
|
||||
count: 'چندین فایل پشتیبانی نمیشود',
|
||||
filesNumber: 'شما به حد مجاز بارگذاری دستهای {{filesNumber}} رسیدهاید.',
|
||||
},
|
||||
cancel: 'لغو',
|
||||
change: 'تغییر',
|
||||
failed: 'بارگذاری ناموفق بود',
|
||||
},
|
||||
notionSyncTitle: 'Notion متصل نیست',
|
||||
notionSyncTip: 'برای همگامسازی با Notion، ابتدا باید اتصال به Notion برقرار شود.',
|
||||
connect: 'رفتن به اتصال',
|
||||
button: 'بعدی',
|
||||
emptyDatasetCreation: 'میخواهم یک دانش خالی ایجاد کنم',
|
||||
modal: {
|
||||
title: 'ایجاد یک دانش خالی',
|
||||
tip: 'یک دانش خالی هیچ سندی نخواهد داشت و شما میتوانید هر زمان اسناد را بارگذاری کنید.',
|
||||
input: 'نام دانش',
|
||||
placeholder: 'لطفاً وارد کنید',
|
||||
nameNotEmpty: 'نام نمیتواند خالی باشد',
|
||||
nameLengthInvalid: 'نام باید بین 1 تا 40 کاراکتر باشد',
|
||||
cancelButton: 'لغو',
|
||||
confirmButton: 'ایجاد',
|
||||
failed: 'ایجاد ناموفق بود',
|
||||
},
|
||||
website: {
|
||||
fireCrawlNotConfigured: 'Firecrawl پیکربندی نشده است',
|
||||
fireCrawlNotConfiguredDescription: 'برای استفاده از Firecrawl با کلید API پیکربندی کنید.',
|
||||
configure: 'پیکربندی',
|
||||
run: 'اجرا',
|
||||
firecrawlTitle: 'استخراج محتوای وب با fireFirecrawl',
|
||||
firecrawlDoc: 'مستندات Firecrawl',
|
||||
options: 'گزینهها',
|
||||
crawlSubPage: 'خزش صفحات فرعی',
|
||||
limit: 'محدودیت',
|
||||
maxDepth: 'حداکثر عمق',
|
||||
excludePaths: 'مسیرهای مستثنی',
|
||||
includeOnlyPaths: 'فقط مسیرهای شامل',
|
||||
extractOnlyMainContent: 'فقط محتوای اصلی را استخراج کنید (بدون هدرها، ناوبریها، پاورقیها و غیره)',
|
||||
exceptionErrorTitle: 'یک استثنا در حین اجرای کار Firecrawl رخ داد:',
|
||||
unknownError: 'خطای ناشناخته',
|
||||
totalPageScraped: 'کل صفحات خراشیده شده:',
|
||||
selectAll: 'انتخاب همه',
|
||||
resetAll: 'بازنشانی همه',
|
||||
scrapTimeInfo: 'در مجموع {{total}} صفحه در {{time}} ثانیه خراشیده شد',
|
||||
preview: 'پیشنمایش',
|
||||
maxDepthTooltip: 'حداکثر عمق برای خزش نسبت به URL وارد شده. عمق 0 فقط صفحه URL وارد شده را خراش میدهد، عمق 1 URL و همه چیز بعد از URL وارد شده + یک / را خراش میدهد، و غیره.',
|
||||
jinaReaderDocLink: 'https://jina.ai/reader',
|
||||
chooseProvider: 'یک ارائه دهنده را انتخاب کنید',
|
||||
jinaReaderTitle: 'کل سایت را به Markdown تبدیل کنید',
|
||||
jinaReaderNotConfigured: 'Jina Reader پیکربندی نشده است',
|
||||
jinaReaderDoc: 'درباره Jina Reader بیشتر بدانید',
|
||||
useSitemap: 'از نقشه سایت استفاده کنید',
|
||||
jinaReaderNotConfiguredDescription: 'با وارد کردن کلید API رایگان خود برای دسترسی، Jina Reader را راه اندازی کنید.',
|
||||
useSitemapTooltip: 'نقشه سایت را دنبال کنید تا سایت را بخزید. در غیر این صورت، Jina Reader بر اساس ارتباط صفحه به صورت تکراری می خزد و صفحات کمتر اما با کیفیت بالاتر را به دست می آورد.',
|
||||
watercrawlDoc: 'مستندات واتر کراول',
|
||||
configureFirecrawl: 'تنظیم Firecrawl',
|
||||
waterCrawlNotConfiguredDescription: 'برای استفاده از Watercrawl، آن را با کلید API پیکربندی کنید.',
|
||||
waterCrawlNotConfigured: 'Watercrawl پیکربندی نشده است',
|
||||
configureJinaReader: 'پیکربندی خواننده جینا',
|
||||
watercrawlTitle: 'محتوای وب را با واترکرال استخراج کنید',
|
||||
configureWatercrawl: 'تنظیم واترکراول',
|
||||
running: 'اجرا',
|
||||
},
|
||||
cancel: 'لغو',
|
||||
},
|
||||
stepTwo: {
|
||||
segmentation: 'تنظیمات بخشبندی',
|
||||
auto: 'خودکار',
|
||||
autoDescription: 'به طور خودکار قوانین بخشبندی و پیشپردازش را تنظیم کنید. به کاربران ناآشنا توصیه میشود این گزینه را انتخاب کنند.',
|
||||
custom: 'سفارشی',
|
||||
customDescription: 'قوانین بخشبندی، طول بخشها و قوانین پیشپردازش را سفارشی کنید، و غیره.',
|
||||
separator: 'شناسه بخش',
|
||||
separatorPlaceholder: 'برای مثال، خط جدید (\\\\n) یا جداکننده خاص (مانند "***")',
|
||||
maxLength: 'حداکثر طول بخش',
|
||||
overlap: 'همپوشانی بخش',
|
||||
overlapTip: 'تنظیم همپوشانی بخش میتواند ارتباط معنایی بین آنها را حفظ کند و اثر بازیابی را افزایش دهد. توصیه میشود 10%-25% از حداکثر اندازه بخش تنظیم شود.',
|
||||
overlapCheck: 'همپوشانی بخش نباید بزرگتر از طول حداکثر بخش باشد',
|
||||
rules: 'قوانین پیشپردازش متن',
|
||||
removeExtraSpaces: 'جایگزینی فضاهای متوالی، خطوط جدید و تبها',
|
||||
removeUrlEmails: 'حذف همه URLها و آدرسهای ایمیل',
|
||||
removeStopwords: 'حذف کلمات توقف مانند "a"، "an"، "the"',
|
||||
preview: 'تأیید و پیشنمایش',
|
||||
reset: 'بازنشانی',
|
||||
indexMode: 'حالت شاخص',
|
||||
qualified: 'کیفیت بالا',
|
||||
recommend: 'توصیه شده',
|
||||
qualifiedTip: 'رابط جاسازی سیستم پیشفرض را برای پردازش فراخوانی کنید تا دقت بالاتری هنگام پرسش کاربران فراهم شود.',
|
||||
warning: 'لطفاً ابتدا کلید API ارائهدهنده مدل را تنظیم کنید.',
|
||||
click: 'رفتن به تنظیمات',
|
||||
economical: 'اقتصادی',
|
||||
economicalTip: 'از موتورهای برداری آفلاین، شاخصهای کلیدواژه و غیره استفاده کنید تا دقت را بدون صرف توکنها کاهش دهید',
|
||||
QATitle: 'بخشبندی در قالب پرسش و پاسخ',
|
||||
QATip: 'فعال کردن این گزینه توکنهای بیشتری مصرف خواهد کرد',
|
||||
QALanguage: 'بخشبندی با استفاده از',
|
||||
estimateCost: 'برآورد',
|
||||
estimateSegment: 'بخشهای برآورد شده',
|
||||
segmentCount: 'بخشها',
|
||||
calculating: 'در حال محاسبه...',
|
||||
fileSource: 'پیشپردازش اسناد',
|
||||
notionSource: 'پیشپردازش صفحات',
|
||||
websiteSource: 'پیشپردازش وبسایت',
|
||||
other: 'و سایر',
|
||||
fileUnit: ' فایلها',
|
||||
notionUnit: ' صفحات',
|
||||
webpageUnit: ' صفحات',
|
||||
previousStep: 'مرحله قبلی',
|
||||
nextStep: 'ذخیره و پردازش',
|
||||
save: 'ذخیره و پردازش',
|
||||
cancel: 'لغو',
|
||||
sideTipTitle: 'چرا بخشبندی و پیشپردازش؟',
|
||||
sideTipP1: 'هنگام پردازش دادههای متنی، بخشبندی و پاکسازی دو مرحله مهم پیشپردازش هستند.',
|
||||
sideTipP2: 'بخشبندی متن طولانی را به پاراگرافها تقسیم میکند تا مدلها بهتر بتوانند آن را درک کنند. این کیفیت و ارتباط نتایج مدل را بهبود میبخشد.',
|
||||
sideTipP3: 'پاکسازی کاراکترها و فرمتهای غیرضروری را حذف میکند و دانش را پاکتر و آسانتر برای تجزیه میکند.',
|
||||
sideTipP4: 'بخشبندی و پاکسازی مناسب عملکرد مدل را بهبود میبخشد و نتایج دقیقتر و ارزشمندتری ارائه میدهد.',
|
||||
previewTitle: 'پیشنمایش',
|
||||
previewTitleButton: 'پیشنمایش',
|
||||
previewButton: 'تغییر به قالب پرسش و پاسخ',
|
||||
previewSwitchTipStart: 'پیشنمایش بخش فعلی در قالب متن است، تغییر به پیشنمایش قالب پرسش و پاسخ',
|
||||
previewSwitchTipEnd: ' توکنهای اضافی مصرف خواهد کرد',
|
||||
characters: 'کاراکترها',
|
||||
indexSettingTip: 'برای تغییر روش شاخص، لطفاً به',
|
||||
retrievalSettingTip: 'برای تغییر روش شاخص، لطفاً به',
|
||||
datasetSettingLink: 'تنظیمات دانش بروید.',
|
||||
separatorTip: 'جداکننده نویسه ای است که برای جداسازی متن استفاده می شود. \\n\\n و \\n معمولا برای جداسازی پاراگراف ها و خطوط استفاده می شوند. همراه با کاما (\\n\\n,\\n)، پاراگراف ها زمانی که از حداکثر طول تکه فراتر می روند، با خطوط تقسیم بندی می شوند. همچنین می توانید از جداکننده های خاصی که توسط خودتان تعریف شده اند استفاده کنید (مثلا ***).',
|
||||
maxLengthCheck: 'حداکثر طول تکه باید کمتر از {{limit}} باشد',
|
||||
notAvailableForQA: 'برای شاخص پرسش و پاسخ در دسترس نیست',
|
||||
parentChild: 'پدر و مادر و فرزند',
|
||||
qaSwitchHighQualityTipContent: 'در حال حاضر، فقط روش شاخص با کیفیت بالا از تکه تکه کردن فرمت پرسش و پاسخ پشتیبانی می کند. آیا می خواهید به حالت با کیفیت بالا بروید؟',
|
||||
previewChunk: 'پیش نمایش تکه',
|
||||
previewChunkCount: '{{تعداد}} تکه های تخمینی',
|
||||
previewChunkTip: 'روی دکمه "پیش نمایش قطعه" در سمت چپ کلیک کنید تا پیش نمایش بارگیری شود',
|
||||
general: 'عمومی',
|
||||
paragraphTip: 'این حالت متن را بر اساس جداکننده ها و حداکثر طول تکه به پاراگراف ها تقسیم می کند و از متن تقسیم شده به عنوان تکه والد برای بازیابی استفاده می کند.',
|
||||
parentChunkForContext: 'تکه والد برای زمینه',
|
||||
fullDoc: 'مستند کامل',
|
||||
switch: 'سوئیچ',
|
||||
parentChildChunkDelimiterTip: 'جداکننده نویسه ای است که برای جداسازی متن استفاده می شود. \\n برای تقسیم تکه های والد به تکه های کوچک کودک توصیه می شود. همچنین می توانید از جداکننده های ویژه ای که توسط خودتان تعریف شده است استفاده کنید.',
|
||||
generalTip: 'حالت تکه تکه کردن متن عمومی، تکه های بازیابی شده و فراخوانی شده یکسان هستند.',
|
||||
paragraph: 'پاراگراف',
|
||||
highQualityTip: 'پس از اتمام جاسازی در حالت کیفیت بالا، بازگشت به حالت اقتصادی در دسترس نیست.',
|
||||
parentChildTip: 'هنگام استفاده از حالت والد-فرزند، تکه فرزند برای بازیابی و تکه والد برای یادآوری به عنوان زمینه استفاده می شود.',
|
||||
notAvailableForParentChild: 'برای نمایه والد-فرزند در دسترس نیست',
|
||||
parentChildDelimiterTip: 'جداکننده نویسه ای است که برای جداسازی متن استفاده می شود. \\n\\n برای تقسیم سند اصلی به تکه های والد بزرگ توصیه می شود. همچنین می توانید از جداکننده های ویژه ای که توسط خودتان تعریف شده است استفاده کنید.',
|
||||
childChunkForRetrieval: 'تکه کودک برای بازیابی',
|
||||
fullDocTip: 'کل سند به عنوان تکه والد استفاده می شود و مستقیما بازیابی می شود. لطفا توجه داشته باشید که به دلایل عملکردی، متن بیش از 10000 توکن به طور خودکار کوتاه می شود.',
|
||||
qaSwitchHighQualityTipTitle: 'فرمت پرسش و پاسخ به روش نمایه سازی با کیفیت بالا نیاز دارد',
|
||||
useQALanguage: 'تکه با استفاده از فرمت پرسش و پاسخ در',
|
||||
qaTip: 'هنگام استفاده از داده های پرسش و پاسخ ساختاریافته، می توانید اسنادی ایجاد کنید که سوالات را با پاسخ جفت می کند. این اسناد بر اساس بخش سؤال نمایه می شوند و به سیستم اجازه می دهند پاسخ های مربوطه را بر اساس شباهت پرس و جو بازیابی کند.',
|
||||
},
|
||||
stepThree: {
|
||||
creationTitle: ' دانش ایجاد شد',
|
||||
creationContent: 'ما به طور خودکار نام دانش را تعیین کردیم، شما میتوانید هر زمان آن را تغییر دهید',
|
||||
label: 'نام دانش',
|
||||
additionTitle: ' سند بارگذاری شد',
|
||||
additionP1: 'سند به دانش بارگذاری شده است',
|
||||
additionP2: '، میتوانید آن را در لیست اسناد دانش پیدا کنید.',
|
||||
stop: 'توقف پردازش',
|
||||
resume: 'ادامه پردازش',
|
||||
navTo: 'رفتن به سند',
|
||||
sideTipTitle: 'بعدی چیست',
|
||||
sideTipContent: 'پس از اتمام فهرستبندی سند، دانش میتواند به عنوان زمینه در برنامه یکپارچه شود، میتوانید تنظیمات زمینه را در صفحه ارکستراسیون درخواست پیدا کنید. همچنین میتوانید آن را به عنوان یک افزونه فهرستبندی مستقل ChatGPT برای انتشار ایجاد کنید.',
|
||||
modelTitle: 'آیا مطمئن هستید که میخواهید جاسازی را متوقف کنید؟',
|
||||
modelContent: 'اگر نیاز به ادامه پردازش بعداً دارید، از جایی که متوقف شدهاید ادامه خواهید داد.',
|
||||
modelButtonConfirm: 'تأیید',
|
||||
modelButtonCancel: 'لغو',
|
||||
},
|
||||
jinaReader: {
|
||||
configJinaReader: 'پیکربندی Jina Reader',
|
||||
apiKeyPlaceholder: 'کلید API از jina.ai',
|
||||
getApiKeyLinkText: 'کلید API رایگان خود را در jina.ai دریافت کنید',
|
||||
},
|
||||
otherDataSource: {
|
||||
learnMore: 'بیشتر بدانید',
|
||||
description: 'در حال حاضر، پایگاه دانش Dify فقط منابع داده محدودی دارد. کمک به یک منبع داده به پایگاه دانش Dify راهی فوق العاده برای کمک به افزایش انعطاف پذیری و قدرت پلتفرم برای همه کاربران است. راهنمای مشارکت ما شروع کار را آسان می کند. لطفا برای کسب اطلاعات بیشتر روی لینک زیر کلیک کنید.',
|
||||
title: 'به منابع داده دیگر متصل شوید؟',
|
||||
},
|
||||
watercrawl: {
|
||||
getApiKeyLinkText: 'کلید API خود را از watercrawl.dev دریافت کنید',
|
||||
configWatercrawl: 'تنظیم واترکراول',
|
||||
apiKeyPlaceholder: 'کلید API از watercrawl.dev',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user