chore: add missing translations (#28631)

This commit is contained in:
yyh 2025-11-25 14:52:17 +08:00 committed by GitHub
parent 58be008676
commit 82dac2eba0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
250 changed files with 9194 additions and 324 deletions

View File

@ -326,6 +326,7 @@ const translation = {
'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',

View File

@ -20,6 +20,7 @@ const translation = {
version: 'VERSION',
tokens: 'TOKEN',
startTime: 'STARTZEIT',
triggered_from: 'AUSGELÖST DURCH',
},
pagination: {
previous: 'Vorherige',
@ -97,6 +98,15 @@ const translation = {
iteration: 'Iteration',
finalProcessing: 'Endverarbeitung',
},
triggerBy: {
debugging: 'Fehlerbehebung',
appRun: 'Webanwendung',
webhook: 'Webhook',
schedule: 'Zeitplan',
plugin: 'Plugin',
ragPipelineRun: 'RAG-Pipeline',
ragPipelineDebugging: 'RAG-Debugging',
},
}
export default translation

View File

@ -114,7 +114,11 @@ const translation = {
},
},
launch: 'Abschießen',
enableTooltip: {},
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',
@ -126,7 +130,14 @@ const translation = {
running: 'In Betrieb',
disable: 'Deaktivieren',
},
triggerInfo: {},
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.',
},

View File

@ -98,6 +98,8 @@ const translation = {
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',
@ -107,6 +109,11 @@ const translation = {
},
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: {
@ -133,17 +140,7 @@ const translation = {
price: 'Benutzerdefiniert',
priceTip: 'Jährliche Abrechnung nur',
for: 'Für große Teams',
features: [
'Skalierbare Bereitstellungslösungen in Unternehmensqualität',
'Kommerzielle Lizenzierung',
'Exklusive Enterprise-Funktionen',
'Mehrere Arbeitsbereiche und Unternehmensverwaltung',
'SSO (Single Sign-On)',
'Vereinbarte SLAs mit Dify-Partnern',
'Erweiterte Sicherheitsfunktionen und Kontrollen',
'Offizielle Updates und Wartung durch Dify',
'Professioneller technischer Support',
],
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',
@ -152,11 +149,7 @@ const translation = {
price: 'Kostenlos',
includesTitle: 'Kostenlose Funktionen:',
name: 'Gemeinschaft',
features: [
'Alle Kernfunktionen im öffentlichen Repository veröffentlicht',
'Einzelner Arbeitsbereich',
'Entspricht der Dify Open-Source-Lizenz',
],
features: ['Alle Kernfunktionen im öffentlichen Repository veröffentlicht', 'Einzelarbeitsbereich', 'Entspricht der Dify Open-Source-Lizenz'],
},
premium: {
includesTitle: 'Alles aus der Community, plus:',
@ -167,12 +160,7 @@ const translation = {
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',
'Einzelner Arbeitsbereich',
'Anpassung von WebApp-Logo und Branding',
'Bevorzugter E-Mail- und Chat-Support',
],
features: ['Selbstverwaltete Zuverlässigkeit durch verschiedene Cloud-Anbieter', 'Einzelarbeitsbereich', 'WebApp-Logo & Markenanpassung', 'Priorisierte E-Mail- und Chatsupport'],
},
},
vectorSpace: {
@ -200,6 +188,7 @@ const translation = {
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: {

View File

@ -65,10 +65,17 @@ const translation = {
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: {
@ -769,6 +776,13 @@ const translation = {
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

View File

@ -81,7 +81,10 @@ const translation = {
},
addUrl: 'URL hinzufügen',
learnMore: 'Weitere Informationen',
sort: {},
sort: {
uploadTime: 'Upload-Zeit',
hitCount: 'Abrufanzahl',
},
},
metadata: {
title: 'Metadaten',

View File

@ -34,6 +34,7 @@ const translation = {
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',
@ -56,6 +57,7 @@ const translation = {
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: {
@ -112,23 +114,32 @@ const translation = {
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: {},
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}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Bestätigung',
@ -149,6 +160,7 @@ const translation = {
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

View File

@ -234,6 +234,10 @@ const translation = {
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

View File

@ -52,6 +52,7 @@ const translation = {
},
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?',

View File

@ -28,10 +28,12 @@ const translation = {
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>',
},
}

View 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

View File

@ -7,6 +7,7 @@ const translation = {
all: 'Alle',
tools: 'Werkzeuge',
datasources: 'Datenquellen',
triggers: 'Auslöser',
},
categorySingle: {
extension: 'Erweiterung',
@ -15,6 +16,7 @@ const translation = {
model: 'Modell',
tool: 'Werkzeug',
datasource: 'Datenquelle',
trigger: 'Auslöser',
},
list: {
source: {
@ -45,6 +47,7 @@ const translation = {
checkUpdate: 'Update prüfen',
update: 'Aktualisieren',
viewDetail: 'Im Detail sehen',
back: 'Zurück',
},
toolSelector: {
paramsTip1: 'Steuert LLM-Inferenzparameter.',
@ -339,6 +342,12 @@ const translation = {
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

View File

@ -113,6 +113,15 @@ const translation = {
currentWorkflow: 'Aktueller Arbeitsablauf',
currentView: 'Aktuelle Ansicht',
moreActions: 'Weitere Aktionen',
listening: 'Zuhören',
chooseStartNodeToRun: 'Wählen Sie den Startknoten zum Ausführen',
runAllTriggers: 'Alle Auslöser ausführen',
features: 'Funktionen',
featuresDescription: 'Verbessern Sie die Benutzererfahrung der Webanwendung',
featuresDocLink: 'Mehr erfahren',
needAdd: '{{node}} Knoten muss hinzugefügt werden',
needStartNode: 'Es muss mindestens ein Startknoten hinzugefügt werden',
workflowAsToolDisabledHint: 'Veröffentlichen Sie den neuesten Workflow und stellen Sie sicher, dass ein verbundener User-Input-Knoten vorhanden ist, bevor Sie ihn als Werkzeug konfigurieren.',
},
env: {
envPanelTitle: 'Umgebungsvariablen',
@ -219,6 +228,7 @@ const translation = {
rerankModelRequired: 'Bevor Sie das Rerank-Modell aktivieren, bestätigen Sie bitte, dass das Modell in den Einstellungen erfolgreich konfiguriert wurde.',
toolParameterRequired: '{{field}}: Parameter [{{param}}] ist erforderlich',
noValidTool: '{{field}} kein gültiges Werkzeug ausgewählt',
startNodeRequired: 'Bitte füge zuerst einen Startknoten hinzu, bevor du {{operation}}.',
},
singleRun: {
testRun: 'Testlauf ',
@ -250,6 +260,21 @@ const translation = {
'addAll': 'Alles hinzufügen',
'sources': 'Quellen',
'searchDataSource': 'Datenquelle durchsuchen',
'start': 'Start',
'searchTrigger': 'Suchauslöser...',
'allTriggers': 'Alle Auslöser',
'noPluginsFound': 'Es wurden keine Plugins gefunden',
'requestToCommunity': 'Anfragen an die Community',
'featuredTools': 'Ausgewählt',
'showMoreFeatured': 'Mehr anzeigen',
'showLessFeatured': 'Weniger anzeigen',
'installed': 'Installiert',
'pluginByAuthor': 'Von {{author}}',
'usePlugin': 'Werkzeug auswählen',
'hideActions': 'Werkzeuge ausblenden',
'noFeaturedPlugins': 'Entdecken Sie weitere Tools im Marktplatz',
'noFeaturedTriggers': 'Entdecken Sie weitere Auslöser im Marketplace',
'startDisabledTip': 'Trigger-Knoten und Benutzereingabeknoten schließen sich gegenseitig aus.',
},
blocks: {
'start': 'Start',
@ -276,6 +301,10 @@ const translation = {
'loop-end': 'Schleife beenden',
'datasource': 'Datenquelle',
'knowledge-index': 'Wissensdatenbank',
'originalStartNode': 'ursprünglicher Startknoten',
'trigger-schedule': 'Zeitplan-Auslöser',
'trigger-webhook': 'Webhook-Auslöser',
'trigger-plugin': 'Plugin-Auslöser',
},
blocksAbout: {
'start': 'Definieren Sie die Anfangsparameter zum Starten eines Workflows',
@ -300,6 +329,9 @@ const translation = {
'loop-end': 'Entspricht "break". Dieser Knoten hat keine Konfigurationselemente. Wenn der Schleifenrumpf diesen Knoten erreicht, wird die Schleife beendet.',
'datasource': 'Datenquelle Über',
'knowledge-index': 'Wissensdatenbank Über',
'trigger-schedule': 'Zeitbasierter Workflow-Auslöser, der Workflows nach einem Zeitplan startet',
'trigger-webhook': 'Webhook-Trigger empfängt HTTP-Pushes von Drittanbietersystemen, um Workflows automatisch auszulösen.',
'trigger-plugin': 'Auslöser für die Integration von Drittanbietern, der Workflows anhand von Ereignissen externer Plattformen startet',
},
operator: {
zoomIn: 'Vergrößern',
@ -340,6 +372,8 @@ const translation = {
minimize: 'Vollbildmodus beenden',
scrollToSelectedNode: 'Zum ausgewählten Knoten scrollen',
optional_and_hidden: '(optional & hidden)',
goTo: 'Gehe zu',
startNode: 'Startknoten',
},
nodes: {
common: {
@ -787,6 +821,8 @@ const translation = {
parallelModeEnableTitle: 'Paralleler Modus aktiviert',
parallelModeUpper: 'PARALLELER MODUS',
comma: ',',
flattenOutput: 'Ausgabe abflachen',
flattenOutputDesc: 'Wenn aktiviert, werden alle Iterationsergebnisse, die Arrays sind, in ein einzelnes Array zusammengeführt. Wenn deaktiviert, behalten die Ergebnisse eine verschachtelte Array-Struktur bei.',
},
note: {
editor: {
@ -963,6 +999,144 @@ const translation = {
embeddingModelIsInvalid: 'Einbettungsmodell ist ungültig',
rerankingModelIsInvalid: 'Das Reranking-Modell ist ungültig',
},
triggerPlugin: {
authorized: 'Autorisiert',
notConfigured: 'Nicht konfiguriert',
notAuthorized: 'Nicht autorisiert',
selectSubscription: 'Abonnement auswählen',
availableSubscriptions: 'Verfügbare Abonnements',
addSubscription: 'Neue Anmeldung hinzufügen',
removeSubscription: 'Abonnement kündigen',
subscriptionRemoved: 'Abonnement erfolgreich entfernt',
error: 'Fehler',
configuration: 'Konfiguration',
remove: 'Entfernen',
or: 'ODER',
useOAuth: 'OAuth verwenden',
useApiKey: 'API-Schlüssel verwenden',
authenticationFailed: 'Authentifizierung fehlgeschlagen',
authenticationSuccess: 'Authentifizierung erfolgreich',
oauthConfigFailed: 'OAuth-Konfiguration fehlgeschlagen',
configureOAuthClient: 'OAuth-Client konfigurieren',
oauthClientDescription: 'Konfigurieren Sie OAuth-Client-Anmeldeinformationen, um die Authentifizierung zu ermöglichen',
oauthClientSaved: 'OAuth-Clientkonfiguration erfolgreich gespeichert',
configureApiKey: 'API-Schlüssel konfigurieren',
apiKeyDescription: 'API-Schlüssel-Anmeldeinformationen für die Authentifizierung konfigurieren',
apiKeyConfigured: 'API-Schlüssel erfolgreich konfiguriert',
configurationFailed: 'Konfiguration fehlgeschlagen',
failedToStart: 'Authentifizierungsablauf konnte nicht gestartet werden',
credentialsVerified: 'Anmeldedaten erfolgreich überprüft',
credentialVerificationFailed: 'Anmeldeinformationen konnten nicht überprüft werden',
verifyAndContinue: 'Überprüfen & Fortfahren',
configureParameters: 'Parameter konfigurieren',
parametersDescription: 'Trigger-Parameter und -Eigenschaften konfigurieren',
configurationComplete: 'Konfiguration abgeschlossen',
configurationCompleteDescription: 'Ihr Trigger wurde erfolgreich konfiguriert',
configurationCompleteMessage: 'Ihre Auslöserkonfiguration ist jetzt abgeschlossen und einsatzbereit.',
parameters: 'Parameter',
properties: 'Eigenschaften',
propertiesDescription: 'Zusätzliche Konfigurationseigenschaften für diesen Auslöser',
noConfigurationRequired: 'Für diesen Auslöser ist keine zusätzliche Konfiguration erforderlich.',
subscriptionName: 'Abonnementname',
subscriptionNameDescription: 'Geben Sie einen eindeutigen Namen für dieses Trigger-Abonnement ein',
subscriptionNamePlaceholder: 'Abonnementnamen eingeben...',
subscriptionNameRequired: 'Der Abonnementname ist erforderlich',
subscriptionRequired: 'Abonnement erforderlich',
},
triggerSchedule: {
title: 'Zeitplan',
nodeTitle: 'Zeitplan-Auslöser',
notConfigured: 'Nicht konfiguriert',
useCronExpression: 'Cron-Ausdruck verwenden',
useVisualPicker: 'Visuellen Auswähler verwenden',
frequency: {
label: 'FREQUENZ',
hourly: 'Stündlich',
daily: 'Täglich',
weekly: 'Wöchentlich',
monthly: 'Monatlich',
},
selectFrequency: 'Frequenz auswählen',
frequencyLabel: 'Frequenz',
nextExecution: 'Nächste Ausführung',
weekdays: 'Wochentage',
time: 'Zeit',
cronExpression: 'Cron-Ausdruck',
nextExecutionTime: 'NÄCHSTE AUSFÜHRUNGSZEIT',
nextExecutionTimes: 'Nächste 5 Ausführungszeiten',
startTime: 'Startzeit',
executeNow: 'Jetzt ausführen',
selectDateTime: 'Datum und Uhrzeit auswählen',
hours: 'Stunden',
minutes: 'Protokoll',
onMinute: 'In einer Minute',
days: 'Tage',
lastDay: 'Letzter Tag',
lastDayTooltip: 'Nicht alle Monate haben 31 Tage. Verwenden Sie die Option Letzter Tag, um den letzten Tag jedes Monats auszuwählen.',
mode: 'Mode',
timezone: 'Zeitzone',
visualConfig: 'Visuelle Konfiguration',
monthlyDay: 'Monatlicher Tag',
executionTime: 'Ausführungszeit',
invalidTimezone: 'Ungültige Zeitzone',
invalidCronExpression: 'Ungültiger Cron-Ausdruck',
noValidExecutionTime: 'Es kann keine gültige Ausführungszeit berechnet werden',
executionTimeCalculationError: 'Fehler beim Berechnen der Ausführungszeiten',
invalidFrequency: 'Ungültige Frequenz',
invalidStartTime: 'Ungültige Startzeit',
startTimeMustBeFuture: 'Die Startzeit muss in der Zukunft liegen',
invalidTimeFormat: 'Ungültiges Zeitformat (erwartet HH:MM AM/PM)',
invalidWeekday: 'Ungültiger Wochentag: {{weekday}}',
invalidMonthlyDay: 'Der monatliche Tag muss zwischen 1 und 31 oder "letzter" liegen',
invalidOnMinute: 'Die Minute muss zwischen 0 und 59 liegen',
invalidExecutionTime: 'Ungültige Ausführungszeit',
executionTimeMustBeFuture: 'Die Ausführungszeit muss in der Zukunft liegen',
},
triggerWebhook: {
title: 'Webhook-Auslöser',
nodeTitle: '🔗 Webhook-Auslöser',
configPlaceholder: 'Webhook-Trigger-Konfiguration wird hier implementiert',
webhookUrl: 'Webhook-URL',
webhookUrlPlaceholder: 'Klicken Sie auf Erstellen, um die Webhook-URL zu erstellen',
generate: 'Erzeugen',
copy: 'Kopieren',
test: 'Test',
urlGenerated: 'Webhook-URL erfolgreich erstellt',
urlGenerationFailed: 'Fehler beim Erstellen der Webhook-URL',
urlCopied: 'URL in die Zwischenablage kopiert',
method: 'Methode',
contentType: 'Inhaltstyp',
queryParameters: 'Abfrageparameter',
headerParameters: 'Header-Parameter',
requestBodyParameters: 'Anforderungs-Body-Parameter',
parameterName: 'Variablenname',
varName: 'Variablenname',
varType: 'Typ',
varNamePlaceholder: 'Variablennamen eingeben...',
required: 'Erforderlich',
addParameter: 'Hinzufügen',
addHeader: 'Hinzufügen',
noParameters: 'Keine Parameter konfiguriert',
noQueryParameters: 'Keine Abfrageparameter konfiguriert',
noHeaders: 'Keine Kopfzeilen konfiguriert',
noBodyParameters: 'Keine Körperparameter konfiguriert',
debugUrlTitle: 'Für Testläufe verwenden Sie immer diese URL',
debugUrlCopy: 'Zum Kopieren klicken',
debugUrlCopied: 'Kopiert!',
debugUrlPrivateAddressWarning: '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.',
errorHandling: 'Fehlerbehandlung',
errorStrategy: 'Fehlerbehandlung',
responseConfiguration: 'Antwort',
asyncMode: 'Asynchroner Modus',
statusCode: 'Statuscode',
responseBody: 'Antworttext',
responseBodyPlaceholder: 'Schreiben Sie hier Ihren Antworttext',
headers: 'Überschriften',
validation: {
webhookUrlRequired: 'Webhook-URL ist erforderlich',
invalidParameterType: 'Ungültiger Parametertyp "{{type}}" für den Parameter "{{name}}"',
},
},
},
tracing: {
stopBy: 'Gestoppt von {{user}}',
@ -1037,6 +1211,18 @@ const translation = {
export: 'exportieren',
exportToolTip: 'Variable als Datei exportieren',
largeDataNoExport: 'Große Datenmengen nur teilweise Vorschau',
listening: {
title: 'Höre auf Ereignisse von Triggern...',
tip: 'Sie können jetzt Ereignisauslöser simulieren, indem Sie Testanfragen an den HTTP-{{nodeName}}-Endpunkt senden oder ihn als Rückruf-URL für das Live-Debugging von Ereignissen verwenden. Alle Ausgaben können direkt im Variableninspektor angezeigt werden.',
tipPlugin: 'Jetzt können Sie in {{- pluginName}} Ereignisse erstellen und Ausgaben dieser Ereignisse im Variableninspektor abrufen.',
tipSchedule: 'Hört auf Ereignisse von Zeitplan-Auslösern. Nächster geplanter Lauf: {{nextTriggerTime}}',
tipFallback: 'Auf eingehende Trigger-Ereignisse warten. Ausgaben werden hier angezeigt.',
defaultNodeName: 'dieser Auslöser',
defaultPluginName: 'dieses Plugin auslösen',
defaultScheduleTime: 'Nicht konfiguriert',
selectedTriggers: 'ausgewählte Auslöser',
stopButton: 'Stopp',
},
},
settingsTab: 'Einstellungen',
lastRunTab: 'Letzte Ausführung',
@ -1054,11 +1240,52 @@ const translation = {
noMatchingInputsFound: 'Keine übereinstimmenden Eingaben aus dem letzten Lauf gefunden.',
noLastRunFound: 'Kein vorheriger Lauf gefunden',
lastOutput: 'Letzte Ausgabe',
lastRunInputsCopied: '{{count}} Eingabe(n) aus dem letzten Durchlauf kopiert',
},
sidebar: {
exportWarning: 'Aktuelle gespeicherte Version exportieren',
exportWarningDesc: 'Dies wird die derzeit gespeicherte Version Ihres Workflows exportieren. Wenn Sie ungespeicherte Änderungen im Editor haben, speichern Sie diese bitte zuerst, indem Sie die Exportoption im Workflow-Canvas verwenden.',
},
publishLimit: {
startNodeTitlePrefix: 'Upgrade auf',
startNodeTitleSuffix: 'uneingeschränkt viele Auslöser pro Arbeitsablauf freischalten',
startNodeDesc: 'Sie haben das Limit von 2 Auslösern pro Workflow für diesen Plan erreicht. Upgraden Sie, um diesen Workflow zu veröffentlichen.',
},
error: {
startNodeRequired: 'Bitte füge zuerst einen Startknoten hinzu, bevor du {{operation}}.',
operations: {
connectingNodes: 'Knoten verbinden',
addingNodes: 'Knoten hinzufügen',
modifyingWorkflow: 'Arbeitsablauf ändern',
updatingWorkflow: 'Arbeitsablauf aktualisieren',
},
},
customWebhook: 'Benutzerdefinierter Webhook',
difyTeam: 'Dify-Team',
triggerStatus: {
enabled: 'AUSLÖSER',
disabled: 'AUSLÖSER • DEAKTIVIERT',
},
entryNodeStatus: {
enabled: 'START',
disabled: 'START • DEAKTIVIERT',
},
onboarding: {
title: 'Wählen Sie einen Startknoten, um zu beginnen',
description: 'Verschiedene Startknoten haben unterschiedliche Fähigkeiten. Keine Sorge, du kannst sie später jederzeit ändern.',
userInputFull: 'Benutzereingabe (ursprünglicher Startknoten)',
userInputDescription: 'Startknoten, der das Festlegen von Benutzereingabevariablen ermöglicht, mit Web-App, Service-API, MCP-Server und Workflow als Werkzeugfunktionen.',
trigger: 'Auslöser',
triggerDescription: 'Trigger können als Startpunkt eines Workflows dienen, wie zum Beispiel geplante Aufgaben, benutzerdefinierte Webhooks oder Integrationen mit anderen Apps.',
back: 'Zurück',
learnMore: 'Mehr erfahren',
aboutStartNode: 'über den Startknoten.',
escTip: {
press: 'Presse',
key: 'esc',
toDismiss: 'entlassen',
},
},
}
export default translation

View File

@ -326,6 +326,7 @@ const translation = {
'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',

View File

@ -19,6 +19,7 @@ const translation = {
tokens: 'TOKENS',
user: 'USUARIO FINAL O CUENTA',
version: 'VERSIÓN',
triggered_from: 'ACTIVADO POR',
},
pagination: {
previous: 'Anterior',
@ -97,6 +98,15 @@ const translation = {
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

View File

@ -114,7 +114,11 @@ const translation = {
},
},
launch: 'Lanzar',
enableTooltip: {},
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',
@ -126,7 +130,14 @@ const translation = {
running: 'En servicio',
disable: 'Deshabilitar',
},
triggerInfo: {},
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.',
},

View File

@ -98,6 +98,8 @@ const translation = {
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.',
@ -107,6 +109,11 @@ const translation = {
},
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: {
@ -133,17 +140,7 @@ const translation = {
for: 'Para equipos de gran tamaño',
price: 'Personalizado',
priceTip: 'Facturación Anual Solo',
features: [
'Soluciones de implementación escalables a nivel empresarial',
'Autorización de licencia comercial',
'Funciones exclusivas para empresas',
'Múltiples espacios de trabajo y gestión empresarial',
'SSO (inicio de sesión único)',
'SLAs negociados con socios de Dify',
'Seguridad y controles avanzados',
'Actualizaciones y mantenimiento oficiales por parte de Dify',
'Soporte técnico profesional',
],
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:',
@ -152,11 +149,7 @@ const translation = {
btnText: 'Comienza con la Comunidad',
name: 'Comunidad',
description: 'Para usuarios individuales, pequeños equipos o proyectos no comerciales',
features: [
'Todas las funciones principales publicadas en el repositorio público',
'Espacio de trabajo único',
'Cumple con la licencia de código abierto de Dify',
],
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',
@ -167,12 +160,7 @@ const translation = {
includesTitle: 'Todo de Community, además:',
name: 'Premium',
for: 'Para organizaciones y equipos de tamaño mediano',
features: [
'Fiabilidad autogestionada mediante varios proveedores de nube',
'Espacio de trabajo único',
'Personalización del logotipo y la marca de la aplicación web',
'Soporte prioritario por correo electrónico y chat',
],
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: {
@ -200,6 +188,7 @@ const translation = {
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: {

View File

@ -65,6 +65,12 @@ const translation = {
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',
@ -73,6 +79,7 @@ const translation = {
placeholder: {
input: 'Por favor ingresa',
select: 'Por favor selecciona',
search: 'Buscar...',
},
voice: {
language: {
@ -769,6 +776,13 @@ const translation = {
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

View File

@ -81,7 +81,10 @@ const translation = {
ok: 'Aceptar',
},
learnMore: 'Aprende más',
sort: {},
sort: {
uploadTime: 'Hora de subida',
hitCount: 'Conteo de Recuperaciones',
},
},
metadata: {
title: 'Metadatos',

View File

@ -34,6 +34,7 @@ const translation = {
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',
@ -56,6 +57,7 @@ const translation = {
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: {
@ -112,23 +114,32 @@ const translation = {
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: {},
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}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Confirmación',
@ -149,6 +160,7 @@ const translation = {
pipelineNameAndIcon: 'Nombre e icono de la tubería',
knowledgePermissions: 'Permisos',
editPipelineInfo: 'Editar información de canalización',
configurationTip: 'Configurar {{pluginName}}',
}
export default translation

View File

@ -234,6 +234,10 @@ const translation = {
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

View File

@ -52,6 +52,7 @@ const translation = {
},
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?',

View File

@ -28,10 +28,12 @@ const translation = {
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>',
},
}

View 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

View File

@ -7,6 +7,7 @@ const translation = {
agents: 'Estrategias de los agentes',
models: 'Modelos',
datasources: 'Fuentes de datos',
triggers: 'Desencadenantes',
},
categorySingle: {
bundle: 'Haz',
@ -15,6 +16,7 @@ const translation = {
model: 'Modelo',
agent: 'Estrategia del agente',
datasource: 'Fuente de datos',
trigger: 'Disparador',
},
list: {
source: {
@ -45,6 +47,7 @@ const translation = {
remove: 'Eliminar',
info: 'Información del plugin',
update: 'Actualizar',
back: 'Atrás',
},
toolSelector: {
toolLabel: 'Herramienta',
@ -340,6 +343,12 @@ const translation = {
'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

View File

@ -113,6 +113,15 @@ const translation = {
currentView: 'Vista actual',
currentWorkflow: 'Flujo de trabajo actual',
moreActions: 'Más acciones',
listening: 'Escucha',
chooseStartNodeToRun: 'Elige el nodo de inicio para ejecutar',
runAllTriggers: 'Ejecutar todos los desencadenadores',
features: 'Características',
featuresDescription: 'Mejorar la experiencia del usuario en la aplicación web',
featuresDocLink: 'Aprender más',
needAdd: 'Se debe añadir el nodo {{node}}',
needStartNode: 'Se debe añadir al menos un nodo de inicio',
workflowAsToolDisabledHint: 'Publica el flujo de trabajo más reciente y asegúrate de que haya un nodo de Entrada de Usuario conectado antes de configurarlo como una herramienta.',
},
env: {
envPanelTitle: 'Variables de Entorno',
@ -219,6 +228,7 @@ const translation = {
rerankModelRequired: 'Antes de activar el modelo de reclasificación, confirme que el modelo se ha configurado correctamente en la configuración.',
toolParameterRequired: '{{campo}}: el parámetro [{{param}}] es obligatorio',
noValidTool: '{{campo}} no se ha seleccionado ninguna herramienta válida',
startNodeRequired: 'Por favor, agregue primero un nodo de inicio antes de {{operation}}',
},
singleRun: {
testRun: 'Ejecución de prueba',
@ -250,6 +260,21 @@ const translation = {
'allAdded': 'Todo añadido',
'sources': 'Fuentes',
'searchDataSource': 'Fuente de datos de búsqueda',
'start': 'Iniciar',
'searchTrigger': 'Buscar desencadenantes...',
'allTriggers': 'Todos los desencadenantes',
'noPluginsFound': 'No se encontraron complementos',
'requestToCommunity': 'Solicitudes a la comunidad',
'featuredTools': 'Destacado',
'showMoreFeatured': 'Mostrar más',
'showLessFeatured': 'Mostrar menos',
'installed': 'Instalado',
'pluginByAuthor': 'Por {{author}}',
'usePlugin': 'Seleccionar herramienta',
'hideActions': 'Ocultar herramientas',
'noFeaturedPlugins': 'Descubre más herramientas en el Marketplace',
'noFeaturedTriggers': 'Descubre más desencadenantes en el Marketplace',
'startDisabledTip': 'El nodo activador y el nodo de entrada del usuario son mutuamente excluyentes.',
},
blocks: {
'start': 'Inicio',
@ -276,6 +301,10 @@ const translation = {
'loop-start': 'Inicio del bucle',
'knowledge-index': 'Knowledge base',
'datasource': 'Fuente de datos',
'originalStartNode': 'nodo inicial original',
'trigger-schedule': 'Disparador de horario',
'trigger-webhook': 'Disparador de Webhook',
'trigger-plugin': 'Disparador de complemento',
},
blocksAbout: {
'start': 'Define los parámetros iniciales para iniciar un flujo de trabajo',
@ -300,6 +329,9 @@ const translation = {
'loop': 'Ejecuta un bucle de lógica hasta que se cumpla la condición de terminación o se alcance el conteo máximo de bucles.',
'knowledge-index': 'Base de conocimientos Acerca de',
'datasource': 'Fuente de datos Acerca de',
'trigger-schedule': 'Disparador de flujo de trabajo basado en tiempo que inicia flujos de trabajo según un horario',
'trigger-webhook': 'El disparador de Webhook recibe envíos HTTP de sistemas de terceros para activar automáticamente flujos de trabajo.',
'trigger-plugin': 'Disparador de integración de terceros que inicia flujos de trabajo a partir de eventos de plataformas externas',
},
operator: {
zoomIn: 'Acercar',
@ -340,6 +372,8 @@ const translation = {
minimize: 'Salir de pantalla completa',
scrollToSelectedNode: 'Desplácese hasta el nodo seleccionado',
optional_and_hidden: '(opcional y oculto)',
goTo: 'Ir a',
startNode: 'Nodo de inicio',
},
nodes: {
common: {
@ -787,6 +821,8 @@ const translation = {
MaxParallelismDesc: 'El paralelismo máximo se utiliza para controlar el número de tareas ejecutadas simultáneamente en una sola iteración.',
answerNodeWarningDesc: 'Advertencia de modo paralelo: Los nodos de respuesta, las asignaciones de variables de conversación y las operaciones de lectura/escritura persistentes dentro de las iteraciones pueden provocar excepciones.',
parallelModeEnableTitle: 'Modo paralelo habilitado',
flattenOutput: 'Aplanar salida',
flattenOutputDesc: 'Cuando está habilitado, si todas las salidas de la iteración son arrays, se aplanarán en un solo array. Cuando está deshabilitado, las salidas mantendrán una estructura de array anidada.',
},
note: {
addNote: 'Agregar nota',
@ -963,6 +999,144 @@ const translation = {
rerankingModelIsInvalid: 'El modelo de reordenación no es válido',
embeddingModelIsInvalid: 'El modelo de incrustación no es válido',
},
triggerPlugin: {
authorized: 'autorizado',
notConfigured: 'No Configurado',
notAuthorized: 'No autorizado',
selectSubscription: 'Seleccionar suscripción',
availableSubscriptions: 'Suscripciones disponibles',
addSubscription: 'Agregar nueva suscripción',
removeSubscription: 'Cancelar suscripción',
subscriptionRemoved: 'Suscripción eliminada con éxito',
error: 'Error',
configuration: 'Configuración',
remove: 'Eliminar',
or: 'O',
useOAuth: 'Usar OAuth',
useApiKey: 'Usar clave API',
authenticationFailed: 'Autenticación fallida',
authenticationSuccess: 'Autenticación exitosa',
oauthConfigFailed: 'La configuración de OAuth falló',
configureOAuthClient: 'Configurar cliente OAuth',
oauthClientDescription: 'Configura las credenciales del cliente OAuth para habilitar la autenticación',
oauthClientSaved: 'Configuración del cliente OAuth guardada correctamente',
configureApiKey: 'Configurar clave API',
apiKeyDescription: 'Configurar las credenciales de la clave API para la autenticación',
apiKeyConfigured: 'Clave API configurada correctamente',
configurationFailed: 'La configuración falló',
failedToStart: 'Error al iniciar el flujo de autenticación',
credentialsVerified: 'Credenciales verificadas con éxito',
credentialVerificationFailed: 'Verificación de credenciales fallida',
verifyAndContinue: 'Verificar y continuar',
configureParameters: 'Configurar parámetros',
parametersDescription: 'Configurar parámetros y propiedades del disparador',
configurationComplete: 'Configuración completa',
configurationCompleteDescription: 'Tu disparador se ha configurado correctamente',
configurationCompleteMessage: 'Tu configuración de activadores ya está completa y lista para usar.',
parameters: 'Parámetros',
properties: 'Propiedades',
propertiesDescription: 'Propiedades de configuración adicionales para este disparador',
noConfigurationRequired: 'No se requiere configuración adicional para este disparador.',
subscriptionName: 'Nombre de la suscripción',
subscriptionNameDescription: 'Ingresa un nombre único para esta suscripción de activador',
subscriptionNamePlaceholder: 'Ingrese el nombre de la suscripción...',
subscriptionNameRequired: 'Se requiere el nombre de la suscripción',
subscriptionRequired: 'Se requiere suscripción',
},
triggerSchedule: {
title: 'Horario',
nodeTitle: 'Disparador de horario',
notConfigured: 'No configurado',
useCronExpression: 'Usar expresión cron',
useVisualPicker: 'Usar selector visual',
frequency: {
label: 'FRECUENCIA',
hourly: 'Por hora',
daily: 'diario',
weekly: 'Semanal',
monthly: 'Mensual',
},
selectFrequency: 'Seleccionar frecuencia',
frequencyLabel: 'Frecuencia',
nextExecution: 'Próxima ejecución',
weekdays: 'Días de la semana',
time: 'Tiempo',
cronExpression: 'Expresión Cron',
nextExecutionTime: 'PRÓXIMA HORA DE EJECUCIÓN',
nextExecutionTimes: 'Próximos 5 tiempos de ejecución',
startTime: 'Hora de inicio',
executeNow: 'Ejecución ahora',
selectDateTime: 'Seleccionar fecha y hora',
hours: 'Horas',
minutes: 'Minutos',
onMinute: 'En un minuto',
days: 'Días',
lastDay: 'Último día',
lastDayTooltip: 'No todos los meses tienen 31 días. Usa la opción \'último día\' para seleccionar el último día de cada mes.',
mode: 'Modo',
timezone: 'Zona horaria',
visualConfig: 'Configuración Visual',
monthlyDay: 'Día mensual',
executionTime: 'Tiempo de ejecución',
invalidTimezone: 'Zona horaria no válida',
invalidCronExpression: 'Expresión cron inválida',
noValidExecutionTime: 'No se puede calcular un tiempo de ejecución válido',
executionTimeCalculationError: 'Error al calcular los tiempos de ejecución',
invalidFrequency: 'Frecuencia inválida',
invalidStartTime: 'Hora de inicio no válida',
startTimeMustBeFuture: 'La hora de inicio debe ser en el futuro',
invalidTimeFormat: 'Formato de hora inválido (se esperaba HH:MM AM/PM)',
invalidWeekday: 'Día de la semana no válido: {{weekday}}',
invalidMonthlyDay: 'El día del mes debe estar entre 1 y 31 o "último"',
invalidOnMinute: 'El minuto debe estar entre 0 y 59',
invalidExecutionTime: 'Tiempo de ejecución inválido',
executionTimeMustBeFuture: 'El tiempo de ejecución debe estar en el futuro',
},
triggerWebhook: {
title: 'Disparador de Webhook',
nodeTitle: '🔗 Disparador de Webhook',
configPlaceholder: 'La configuración del activador del webhook se implementará aquí',
webhookUrl: 'URL del webhook',
webhookUrlPlaceholder: 'Haz clic en generar para crear la URL del webhook',
generate: 'Generar',
copy: 'Copiar',
test: 'Prueba',
urlGenerated: 'URL del webhook generada con éxito',
urlGenerationFailed: 'No se pudo generar la URL del webhook',
urlCopied: 'URL copiada al portapapeles',
method: 'Método',
contentType: 'Tipo de contenido',
queryParameters: 'Parámetros de consulta',
headerParameters: 'Parámetros de encabezado',
requestBodyParameters: 'Parámetros del cuerpo de la solicitud',
parameterName: 'Nombre de la variable',
varName: 'Nombre de la variable',
varType: 'Tipo',
varNamePlaceholder: 'Ingrese el nombre de la variable...',
required: 'Requerido',
addParameter: 'Agregar',
addHeader: 'Agregar',
noParameters: 'No se han configurado parámetros',
noQueryParameters: 'No se han configurado parámetros de consulta',
noHeaders: 'No se han configurado encabezados',
noBodyParameters: 'No se configuraron parámetros de cuerpo',
debugUrlTitle: 'Para pruebas, siempre use esta URL',
debugUrlCopy: 'Haz clic para copiar',
debugUrlCopied: '¡Copiado!',
debugUrlPrivateAddressWarning: '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.',
errorHandling: 'Manejo de errores',
errorStrategy: 'Manejo de errores',
responseConfiguration: 'Respuesta',
asyncMode: 'Modo Asíncrono',
statusCode: 'Código de estado',
responseBody: 'Cuerpo de la respuesta',
responseBodyPlaceholder: 'Escribe aquí el cuerpo de tu respuesta',
headers: 'Encabezados',
validation: {
webhookUrlRequired: 'Se requiere la URL del webhook',
invalidParameterType: 'Tipo de parámetro inválido "{{type}}" para el parámetro "{{name}}"',
},
},
},
tracing: {
stopBy: 'Pásate por {{user}}',
@ -1037,6 +1211,18 @@ const translation = {
exportToolTip: 'Exportar variable como archivo',
largeData: 'Datos grandes, vista previa de solo lectura. Exportar para verlo todo.',
largeDataNoExport: 'Datos grandes: solo vista previa parcial',
listening: {
title: 'Escuchando eventos desde los activadores...',
tip: 'Ahora puedes simular disparadores de eventos enviando solicitudes de prueba al endpoint HTTP {{nodeName}} o usarlo como una URL de retorno de llamada para la depuración de eventos en tiempo real. Todos los resultados se pueden ver directamente en el Inspector de Variables.',
tipPlugin: 'Ahora puedes crear eventos en {{- pluginName}} y obtener los resultados de estos eventos en el Inspector de Variables.',
tipSchedule: 'Escuchando eventos de los desencadenadores de programación.\nPróxima ejecución programada: {{nextTriggerTime}}',
tipFallback: 'Esperando eventos desencadenantes entrantes. Las salidas aparecerán aquí.',
defaultNodeName: 'este disparador',
defaultPluginName: 'este activador de plugin',
defaultScheduleTime: 'No configurado',
selectedTriggers: 'disparadores seleccionados',
stopButton: 'Para',
},
},
lastRunTab: 'Última ejecución',
settingsTab: 'Ajustes',
@ -1054,11 +1240,52 @@ const translation = {
copyLastRun: 'Copiar última ejecución',
noMatchingInputsFound: 'No se encontraron entradas coincidentes de la última ejecución.',
lastOutput: 'Última salida',
lastRunInputsCopied: '{{count}} entrada(s) copiadas de la última ejecución',
},
sidebar: {
exportWarning: 'Exportar la versión guardada actual',
exportWarningDesc: 'Esto exportará la versión guardada actual de tu flujo de trabajo. Si tienes cambios no guardados en el editor, guárdalos primero utilizando la opción de exportar en el lienzo del flujo de trabajo.',
},
publishLimit: {
startNodeTitlePrefix: 'Actualizar a',
startNodeTitleSuffix: 'desbloquear disparadores ilimitados por flujo de trabajo',
startNodeDesc: 'Has alcanzado el límite de 2 desencadenadores por flujo de trabajo para este plan. Actualiza para publicar este flujo de trabajo.',
},
error: {
startNodeRequired: 'Por favor, agregue primero un nodo de inicio antes de {{operation}}',
operations: {
connectingNodes: 'conectando nodos',
addingNodes: 'agregando nodos',
modifyingWorkflow: 'modificando el flujo de trabajo',
updatingWorkflow: 'actualizando flujo de trabajo',
},
},
customWebhook: 'Webhook personalizado',
difyTeam: 'Equipo Dify',
triggerStatus: {
enabled: 'DISPARADOR',
disabled: 'DISPARADOR • DESACTIVADO',
},
entryNodeStatus: {
enabled: 'INICIAR',
disabled: 'INICIAR • DESACTIVADO',
},
onboarding: {
title: 'Selecciona un nodo de inicio para comenzar',
description: 'Los diferentes nodos iniciales tienen distintas capacidades. No te preocupes, siempre puedes cambiarlos más adelante.',
userInputFull: 'Entrada del usuario (nodo de inicio original)',
userInputDescription: 'Nodo de inicio que permite establecer variables de entrada del usuario, con capacidades de herramienta para aplicación web, API de servicio, servidor MCP y flujo de trabajo.',
trigger: 'Disparador',
triggerDescription: 'Los desencadenantes pueden servir como el nodo inicial de un flujo de trabajo, como tareas programadas, webhooks personalizados o integraciones con otras aplicaciones.',
back: 'Atrás',
learnMore: 'Aprender más',
aboutStartNode: 'sobre el nodo de inicio.',
escTip: {
press: 'Prensa',
key: 'esc',
toDismiss: 'despedir',
},
},
}
export default translation

View File

@ -575,6 +575,8 @@ const translation = {
waitForFileUpload: 'لطفا منتظر بمانید تا فایل/فایل ها آپلود شوند',
waitForImgUpload: 'لطفا منتظر بمانید تا تصویر آپلود شود',
waitForBatchResponse: 'لطفا منتظر بمانید تا پاسخ به کار دسته ای تکمیل شود.',
nameOfKeyRequired: 'نام کلید: {{key}} الزامی است',
valueOfVarRequired: 'مقدار {{key}} نمی‌تواند خالی باشد',
},
warningMessage: {
timeoutExceeded: 'نتایج به دلیل مهلت زمانی نمایش داده نمی شوند. لطفا برای جمع آوری نتایج کامل به گزارش ها مراجعه کنید.',
@ -587,7 +589,13 @@ const translation = {
name: 'نام فیلد ورودی کاربر',
type: 'نوع ورودی',
},
varKeyError: {},
varKeyError: {
canNoBeEmpty: '{{key}} مورد نیاز است',
tooLong: '{{key}} خیلی طولانی است. نمی‌تواند بیش از ۳۰ کاراکتر باشد',
notValid: '{{key}} نامعتبر است. فقط می‌تواند شامل حروف، اعداد و زیرخط باشد',
notStartWithNumber: '{{key}} نمی‌تواند با یک عدد شروع شود',
keyAlreadyExists: '{{key}} قبلاً موجود است',
},
otherError: {
promptNoBeEmpty: 'اعلان نمی تواند خالی باشد',
historyNoBeEmpty: 'سابقه مکالمه باید در اعلان تنظیم شود',
@ -665,6 +673,9 @@ const translation = {
'unitPlaceholder': 'نمایش واحدها بعد از اعداد، به عنوان مثال توکن ها',
'placeholderPlaceholder': 'متن را وارد کنید تا زمانی که فیلد خالی است نمایش داده شود',
'tooltipsPlaceholder': 'نوشتار مفیدی را که هنگام نگه داشتن ماوس روی برچسب نشان داده می شود وارد کنید',
'description': 'تنظیم برای متغیر {{varName}}',
'notSet': 'تنظیم نشده است، سعی کنید {{input}} را در پیش‌نویس وارد کنید',
'maxNumberTip': 'سند < {{docLimit}}، تصویر < {{imgLimit}}، صوت < {{audioLimit}}، ویدئو < {{videoLimit}}',
},
vision: {
visionSettings: {
@ -677,6 +688,7 @@ const translation = {
localUpload: 'آپلود محلی',
title: 'تنظیمات بینایی',
both: 'هر دو',
resolutionTooltip: 'رزولوشن پایین به مدل اجازه می‌دهد نسخه‌ای کم‌رزولوشن از تصویر با اندازه ۵۱۲ در ۵۱۲ دریافت کند و تصویر را با بودجه ۶۵ توکن نمایش دهد. این امکان باعث می‌شود API پاسخ‌ها را سریع‌تر بازگرداند و توکن‌های ورودی کمتری برای مواردی که نیازی به جزئیات بالا ندارند، مصرف کند.\n\nرزولوشن بالا ابتدا به مدل اجازه می‌دهد تصویر کم‌رزولوشن را ببیند و سپس کات‌های دقیقی از تصاویر ورودی به صورت مربع‌های ۵۱۲ پیکسلی بنا بر اندازه تصویر ورودی ایجاد می‌کند. هر کدام از کات‌های دقیق از دو برابر بودجه توکن استفاده می‌کنند که مجموعاً ۱۲۹ توکن می‌شود.',
},
settings: 'تنظیمات',
name: 'چشم انداز',
@ -705,6 +717,10 @@ const translation = {
title: 'افتتاحیه مکالمه',
openingQuestion: 'سوالات آغازین',
noDataPlaceHolder: 'شروع مکالمه با کاربر می تواند به هوش مصنوعی کمک کند تا در برنامه های مکالمه ارتباط نزدیک تری با آنها برقرار کند.',
placeholder: 'پیام شروع خود را اینجا بنویسید، می‌توانید از متغیرها استفاده کنید، امتحان کنید تایپ {{variable}}.',
openingQuestionPlaceholder: 'می‌توانید از متغیرها استفاده کنید، امتحان کنید {{variable}} را تایپ کنید.',
varTip: 'می‌توانید از متغیرها استفاده کنید، نوع {{variable}} را امتحان کنید',
notIncludeKey: 'پیام اولیه شامل متغیر {{key}} نیست. لطفاً آن را به پیام اولیه اضافه کنید.',
},
modelConfig: {
modeType: {
@ -796,6 +812,8 @@ const translation = {
formattingChangedText: 'با تغییر قالب بندی، ناحیه اشکال زدایی بازنشانی می شود، مطمئن هستید؟',
variableTip: 'کاربران متغیرها را در یک فرم پر می کنند و به طور خودکار متغیرها را در اعلان جایگزین می کنند.',
autoAddVar: 'متغیرهای تعریف نشده که در پیش اعلان ارجاع داده شده اند، آیا می خواهید آنها را به صورت ورودی کاربر اضافه کنید؟',
promptTip: 'پرومپت‌ها پاسخ‌های هوش مصنوعی را با دستورالعمل‌ها و محدودیت‌ها هدایت می‌کنند. متغیرهایی مانند {{input}} را وارد کنید. این پرومپت برای کاربران قابل مشاهده نخواهد بود.',
notSetVar: 'متغیرها به کاربران امکان می‌دهند تا هنگام پر کردن فرم‌ها، کلمات راهنما یا سخنان افتتاحیه را وارد کنند. می‌توانید امتحان کنید که \'{{input}}\' را در کلمات راهنما وارد کنید.',
}
export default translation

View File

@ -19,6 +19,7 @@ const translation = {
tokens: 'توکن‌ها',
user: 'کاربر نهایی یا حساب',
version: 'نسخه',
triggered_from: 'فعال شده توسط',
},
pagination: {
previous: 'قبلی',
@ -97,6 +98,15 @@ const translation = {
finalProcessing: 'پردازش نهایی',
},
dateFormat: 'MM/DD/YYYY',
triggerBy: {
debugging: 'رفع اشکال',
appRun: 'وب اپ',
webhook: 'وب‌هوک',
schedule: 'برنامه',
plugin: 'افزونه',
ragPipelineRun: 'خط لوله RAG',
ragPipelineDebugging: 'رفع اشکال RAG',
},
}
export default translation

View File

@ -114,7 +114,11 @@ const translation = {
},
},
launch: 'راه اندازی',
enableTooltip: {},
enableTooltip: {
description: 'برای فعال کردن این ویژگی، لطفاً یک گره ورودی کاربر به صفحه اضافه کنید. (ممکن است قبلاً در پیش‌نویس وجود داشته باشد، بعد از انتشار اعمال می‌شود)',
learnMore: 'بیشتر بدانید',
},
title: 'وب اپ',
},
apiInfo: {
title: 'API سرویس بک‌اند',
@ -126,7 +130,14 @@ const translation = {
running: 'در حال سرویس‌دهی',
disable: 'غیرفعال',
},
triggerInfo: {},
triggerInfo: {
title: 'محرک‌ها',
explanation: 'مدیریت فعال‌سازی جریان کاری',
triggersAdded: '{{count}} محرک‌ها اضافه شدند',
noTriggerAdded: 'هیچ ماشه‌ای افزوده نشده است',
triggerStatusDescription: 'وضعیت گره تریگر در اینجا نمایش داده می‌شود. (ممکن است قبلاً در پیش‌نویس وجود داشته باشد، پس از انتشار اعمال می‌شود)',
learnAboutTriggers: 'با محرک‌ها آشنا شوید',
},
disableTooltip: {
triggerMode: 'ویژگی {{feature}} در حالت گره تریگر پشتیبانی نمی‌شود.',
},

View File

@ -98,6 +98,8 @@ const translation = {
triggerEvents: {
unlimited: 'رویدادهای ماشه‌ای نامحدود',
tooltip: 'تعداد رویدادهایی که به‌طور خودکار گردش‌های کاری را از طریق افزونه، برنامه‌زمان‌بندی یا ماشه‌های وب‌هوک آغاز می‌کنند.',
sandbox: '{{count,number}} رویدادهای محرک',
professional: '{{count,number}} رویدادهای فعال‌سازی/ماه',
},
workflowExecution: {
faster: 'اجرای سریع‌تر جریان کاری',
@ -107,6 +109,11 @@ const translation = {
},
startNodes: {
unlimited: 'راه‌اندازی/فرآیندهای نامحدود',
limited: 'تا {{count}} محرک/جریان‌کاری',
},
title: {
plans: 'طرح‌ها',
description: 'برنامه‌ای را انتخاب کنید که بهترین تناسب را با نیازهای تیم شما دارد.',
},
},
plans: {
@ -133,8 +140,7 @@ const translation = {
btnText: 'تماس با فروش',
for: 'برای تیم‌های بزرگ',
priceTip: 'فقط صورتحساب سالیانه',
features: {
},
features: ['راه‌حل‌های مستقرسازی مقیاس‌پذیر با سطح سازمانی', 'مجوز استفاده تجاری', 'ویژگی‌های اختصاصی سازمانی', 'چند فضای کاری و مدیریت سازمانی', 'ورود یکپارچه', 'توافق‌نامه‌های سطح خدمات مذاکره شده توسط شرکای Dify', 'امنیت و کنترل‌های پیشرفته', 'به‌روزرسانی‌ها و نگهداری به‌طور رسمی توسط دیفی', 'پشتیبانی فنی حرفه‌ای'],
},
community: {
btnText: 'شروع کنید با جامعه',
@ -143,8 +149,7 @@ const translation = {
description: 'برای کاربران فردی، تیم‌های کوچک یا پروژه‌های غیر تجاری',
name: 'جامعه',
for: 'برای کاربران فردی، تیم‌های کوچک یا پروژه‌های غیر تجاری',
features: {
},
features: ['تمام ویژگی‌های اصلی تحت مخزن عمومی منتشر شدند', 'فضای کاری تنها', 'مطابق با مجوز متن باز Dify'],
},
premium: {
btnText: 'گرفتن نسخه پریمیوم در',
@ -155,8 +160,7 @@ const translation = {
name: 'پیشرفته',
priceTip: 'بر اساس بازار ابری',
comingSoon: 'پشتیبانی مایکروسافت آژور و گوگل کلود به زودی در دسترس خواهد بود',
features: {
},
features: ['قابلیت اطمینان خودمدیریتی توسط ارائه‌دهندگان مختلف ابری', 'فضای کاری تنها', 'سفارشی‌سازی لوگو و برندینگ وب‌اپ', 'پشتیبانی اولویت‌دار ایمیل و چت'],
},
},
vectorSpace: {
@ -184,6 +188,7 @@ const translation = {
vectorSpaceTooltip: 'سندهایی که با حالت نمایه‌سازی با کیفیت بالا تهیه می‌شوند، منابع ذخیره‌سازی داده‌های دانش را مصرف خواهند کرد. زمانی که ذخیره‌سازی داده‌های دانش به حد خود برسد، اسناد جدید بارگزاری نخواهند شد.',
perMonth: 'در ماه',
triggerEvents: 'رویدادهای محرک',
resetsIn: 'در {{count,number}} روز بازنشانی می‌شود',
},
teamMembers: 'اعضای تیم',
triggerLimitModal: {

View File

@ -65,6 +65,12 @@ const translation = {
deleteConfirmTitle: 'حذف شود؟',
yes: 'بله',
confirmAction: 'لطفاً اقدام خود را تأیید کنید.',
noSearchResults: 'هیچ {{content}} یافت نشد',
resetKeywords: 'بازنشانی کلمات کلیدی',
selectCount: '{{count}} انتخاب شد',
searchCount: 'یافتن {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'الان',
},
errorMsg: {
fieldRequired: '{{field}} الزامی است',
@ -73,6 +79,7 @@ const translation = {
placeholder: {
input: 'لطفا وارد کنید',
select: 'لطفا انتخاب کنید',
search: 'جستجو...',
},
voice: {
language: {
@ -769,6 +776,13 @@ const translation = {
label: {
optional: '(اختیاری)',
},
noData: 'بدون داده',
dynamicSelect: {
error: 'بارگیری گزینه‌ها ناموفق بود',
noData: 'هیچ گزینه‌ای در دسترس نیست',
loading: 'در حال بارگذاری گزینه‌ها...',
selected: '{{count}} انتخاب شد',
},
}
export default translation

View File

@ -81,7 +81,10 @@ const translation = {
ok: 'تأیید',
},
learnMore: 'بیشتر بدانید',
sort: {},
sort: {
uploadTime: 'زمان بارگذاری',
hitCount: 'تعداد بازیابی',
},
},
metadata: {
title: 'اطلاعات متا',

View File

@ -34,6 +34,7 @@ const translation = {
publishPipeline: {
success: {
message: 'خط لوله دانش منتشر شد',
tip: 'برای افزودن یا مدیریت اسناد، به اسناد بروید.',
},
error: {
message: 'انتشار پایپ لاین دانش ناموفق است',
@ -56,6 +57,7 @@ const translation = {
details: {
structure: 'ساختار',
structureTooltip: 'ساختار Chunk نحوه تقسیم و نمایه سازی اسناد را تعیین می کند - حالت های عمومی، والد-فرزند و پرسش و پاسخ را ارائه می دهد - و برای هر پایگاه دانش منحصر به فرد است.',
createdBy: 'توسط {{author}}',
},
testRun: {
steps: {
@ -112,23 +114,32 @@ const translation = {
backToDataSource: 'منبع داده',
characters: 'کاراکتر',
title: 'اسناد را اضافه کنید',
selectOnlineDocumentTip: 'پردازش تا {{count}} صفحه',
selectOnlineDriveTip: 'پردازش تا {{count}} فایل، حداکثر {{fileSize}} مگابایت برای هر فایل',
},
documentSettings: {
title: 'تنظیمات سند',
},
onlineDocument: {},
onlineDocument: {
pageSelectorTitle: '{{name}} صفحه',
},
onlineDrive: {
breadcrumbs: {
allFiles: 'همه فایل ها',
searchPlaceholder: 'فایل های جستجو...',
allBuckets: 'همه سطل های ذخیره سازی ابری',
searchResult: 'یافتن {{searchResultsLength}} مورد در پوشه «{{folderName}}»',
},
emptyFolder: 'این پوشه خالی است',
resetKeywords: 'بازنشانی کلمات کلیدی',
emptySearchResult: 'هیچ موردی یافت نشد',
notSupportedFileType: 'این نوع فایل پشتیبانی نمی شود',
notConnected: '{{name}} متصل نیست',
notConnectedTip: 'برای همگام‌سازی با {{name}}، ابتدا باید اتصال به {{name}} برقرار شود.',
},
credentialSelector: {
name: '{{pluginName}} {{credentialName}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'تایید',
@ -149,6 +160,7 @@ const translation = {
editPipelineInfo: 'ویرایش اطلاعات خط لوله',
knowledgeNameAndIconPlaceholder: 'لطفا نام پایگاه دانش را وارد کنید',
knowledgeDescriptionPlaceholder: 'آنچه در این پایگاه دانش وجود دارد را شرح دهید. توضیحات دقیق به هوش مصنوعی اجازه می دهد تا با دقت بیشتری به محتوای مجموعه داده دسترسی داشته باشد. اگر خالی باشد، Dify از استراتژی ضربه پیش فرض استفاده می کند. (اختیاری)',
configurationTip: 'پیکربندی {{pluginName}}',
}
export default translation

View File

@ -234,6 +234,10 @@ const translation = {
enabled: 'در حال خدمت',
title: 'رابط برنامه‌نویسی سرویس',
},
docAllEnabled_one: 'سند {{count}} فعال شد',
docAllEnabled_other: 'تمام اسناد {{count}} فعال شدند',
partialEnabled_one: 'مجموعاً {{count}} سند، {{num}} موجود',
partialEnabled_other: 'مجموع {{count}} سند، {{num}} موجود',
}
export default translation

View File

@ -52,6 +52,7 @@ const translation = {
},
isAboutToExpire: {
summary: 'نگران نباشید — این بر اشتراک فعلی شما تأثیر نخواهد گذاشت، اما زمانیکه تمدید شود، شما تخفیف آموزشی را دریافت نخواهید کرد مگر اینکه وضعیت خود را دوباره تأیید کنید.',
title: 'وضعیت تحصیلی شما در {{date}} منقضی خواهد شد',
},
stillInEducation: {
title: 'آیا هنوز در حال تحصیل هستید؟',

View File

@ -28,10 +28,12 @@ const translation = {
viewDetails: 'مشاهده جزئیات',
loading: 'پردازش... لطفاً منتظر بمانید',
error: 'خطا در حین اجرا رخ داد',
footerTip: 'در حالت اجرای آزمایشی، پیش‌نمایش تا {{count}} بخش',
},
},
ragToolSuggestions: {
title: 'پیشنهاداتی برای RAG',
noRecommendationPlugins: 'هیچ افزونه‌ای پیشنهادی وجود ندارد، برای یافتن بیشتر به <CustomLink>بازار</CustomLink> مراجعه کنید',
},
}

View File

@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'اشتراک‌ها',
listNum: 'اشتراک‌های {{num}}',
empty: {
title: 'بدون اشتراک',
button: 'اشتراک جدید',
},
createButton: {
oauth: 'اشتراک جدید با OAuth',
apiKey: 'اشتراک جدید با کلید API',
manual: 'چسباندن URL برای ایجاد اشتراک جدید',
},
createSuccess: 'اشتراک با موفقیت ایجاد شد',
createFailed: 'ایجاد اشتراک با شکست مواجه شد',
maxCount: 'حداکثر {{num}} اشتراک',
selectPlaceholder: 'انتخاب اشتراک',
noSubscriptionSelected: 'هیچ اشتراکی انتخاب نشده است',
subscriptionRemoved: 'اشتراک حذف شد',
list: {
title: 'اشتراک‌ها',
addButton: 'افزودن',
tip: 'دریافت رویدادها از طریق اشتراک',
item: {
enabled: 'فعال',
disabled: 'غیرفعال',
credentialType: {
api_key: 'کلید API',
oauth2: 'اواف',
unauthorized: 'دستی',
},
actions: {
delete: 'حذف',
deleteConfirm: {
title: 'آیا {{name}} را حذف می‌کنید؟',
success: 'اشتراک {{name}} با موفقیت حذف شد',
error: 'حذف اشتراک {{name}} ناموفق بود',
content: 'پس از حذف، این اشتراک قابل بازیابی نخواهد بود. لطفاً تأیید کنید.',
contentWithApps: 'اشتراک فعلی توسط {{count}} برنامه مورد استفاده قرار گرفته است. حذف آن باعث می‌شود برنامه‌های پیکربندی‌شده دریافت رویدادهای اشتراک را متوقف کنند.',
confirm: 'تأیید حذف',
cancel: 'لغو',
confirmInputWarning: 'لطفاً نام صحیح را برای تأیید وارد کنید.',
confirmInputPlaceholder: 'برای تأیید «{{name}}» را وارد کنید.',
confirmInputTip: 'لطفاً برای تأیید «{{name}}» را وارد کنید.',
},
},
status: {
active: 'فعال',
inactive: 'غیرفعال',
},
usedByNum: 'استفاده شده توسط {{num}} جریان‌های کاری',
noUsed: 'هیچ روند کاری استفاده نشده است',
},
},
addType: {
title: 'افزودن اشتراک',
description: 'انتخاب کنید که چگونه می‌خواهید اشتراک محرک خود را ایجاد کنید',
options: {
apikey: {
title: 'ایجاد با کلید API',
description: 'ایجاد اشتراک به‌صورت خودکار با استفاده از اطلاعات ورود API',
},
oauth: {
title: 'ایجاد با OAuth',
description: 'با پلتفرم شخص ثالث مجوز بدهید تا اشتراک ایجاد شود',
clientSettings: 'تنظیمات کلاینت OAuth',
clientTitle: 'کلاینت OAuth',
default: 'پیش‌فرض',
custom: 'سفارشی',
},
manual: {
title: 'راه‌اندازی دستی',
description: 'چسباندن URL برای ایجاد اشتراک جدید',
tip: 'تنظیم دستی URL در پلتفرم شخص ثالث',
},
},
},
},
modal: {
steps: {
verify: 'تأیید کردن',
configuration: 'پیکربندی',
},
common: {
cancel: 'لغو',
back: 'بازگشت',
next: 'بعدی',
create: 'ایجاد کردن',
verify: 'تأیید کردن',
authorize: 'مجاز کردن',
creating: 'در حال ایجاد...',
verifying: 'در حال تأیید...',
authorizing: 'در حال مجازسازی...',
},
oauthRedirectInfo: 'چون هیچ راز کلاینت سیستمی برای این ارائه‌دهنده ابزار پیدا نشد، تنظیم آن به صورت دستی لازم است، برای redirect_uri لطفاً استفاده کنید',
apiKey: {
title: 'ایجاد با کلید API',
verify: {
title: 'تأیید اطلاعات کاربری',
description: 'لطفاً اطلاعات API خود را برای تأیید دسترسی ارائه دهید',
error: 'تأیید اعتبار ناموفق بود. لطفاً کلید API خود را بررسی کنید.',
success: 'اعتبارات با موفقیت تأیید شد',
},
configuration: {
title: 'پیکربندی اشتراک',
description: 'پارامترهای اشتراک خود را تنظیم کنید',
},
},
oauth: {
title: 'ایجاد با OAuth',
authorization: {
title: 'مجوز او‌آه‌اِس',
description: 'اجازه دهید دیفی به حساب شما دسترسی داشته باشد',
redirectUrl: 'تغییر مسیر آدرس اینترنتی',
redirectUrlHelp: 'از این URL در تنظیمات برنامه OAuth خود استفاده کنید',
authorizeButton: 'مجوزدهی با {{provider}}',
waitingAuth: 'در انتظار مجوز...',
authSuccess: 'مجوز با موفقیت صادر شد',
authFailed: 'دریافت اطلاعات مجوز OAuth ناکام ماند',
waitingJump: 'مجاز، در انتظار پرش',
},
configuration: {
title: 'پیکربندی اشتراک',
description: 'پس از تأیید هویت، پارامترهای اشتراک خود را تنظیم کنید',
success: 'پیکربندی OAuth با موفقیت انجام شد',
failed: 'پیکربندی OAuth با شکست مواجه شد',
},
remove: {
success: 'حذف OAuth با موفقیت انجام شد',
failed: 'حذف OAuth ناموفق بود',
},
save: {
success: 'پیکربندی OAuth با موفقیت ذخیره شد',
},
},
manual: {
title: 'راه‌اندازی دستی',
description: 'اشتراک وب‌هوک خود را به‌صورت دستی تنظیم کنید',
logs: {
title: 'گزارش‌های درخواست',
request: 'درخواست',
loading: 'در انتظار درخواست از {{pluginName}}...',
},
},
form: {
subscriptionName: {
label: 'نام اشتراک',
placeholder: 'نام اشتراک را وارد کنید',
required: 'نام اشتراک الزامی است',
},
callbackUrl: {
label: 'آدرس بازگشت تماس',
description: 'این آدرس URL رویدادهای وب هوک را دریافت خواهد کرد',
tooltip: 'یک نقطه دسترسی عمومی فراهم کنید که بتواند درخواست‌های بازگشتی از ارائه‌دهنده تریگر را دریافت کند.',
placeholder: 'در حال تولید...',
privateAddressWarning: 'به نظر می‌رسد این URL یک آدرس داخلی است که ممکن است باعث شود درخواست‌های وب‌هوک با شکست مواجه شوند. شما می‌توانید TRIGGER_URL را به یک آدرس عمومی تغییر دهید.',
},
},
errors: {
createFailed: 'ایجاد اشتراک با شکست مواجه شد',
verifyFailed: 'تأیید اطلاعات ورود ناموفق بود',
authFailed: 'مجوز ناموفق بود',
networkError: 'خطای شبکه، لطفاً دوباره تلاش کنید',
},
},
events: {
title: 'رویدادهای موجود',
description: 'رویدادهایی که این افزونه فعال‌سازی می‌تواند به آن‌ها مشترک شود',
empty: 'هیچ رویدادی در دسترس نیست',
event: 'رویداد',
events: 'رویدادها',
actionNum: '{{num}} {{event}} گنجانده شده',
item: {
parameters: 'پارامترهای {{count}}',
noParameters: 'هیچ پارامتری',
},
output: 'خروجی',
},
node: {
status: {
warning: 'قطع ارتباط',
},
},
}
export default translation

View File

@ -7,6 +7,7 @@ const translation = {
tools: 'ابزار',
extensions: 'پسوند',
datasources: 'منابع داده',
triggers: 'محرک‌ها',
},
categorySingle: {
tool: 'ابزار',
@ -15,6 +16,7 @@ const translation = {
model: 'مدل',
bundle: 'بسته',
datasource: 'منبع داده',
trigger: 'محرک',
},
list: {
source: {
@ -45,6 +47,7 @@ const translation = {
detail: 'جزئیات',
viewDetail: 'نمایش جزئیات',
install: 'نصب',
back: 'بازگشت',
},
toolSelector: {
descriptionPlaceholder:
@ -332,6 +335,12 @@ const translation = {
partialUPdate:
'تنها {{num}} پلاگین زیر به‌طور خودکار به‌روزرسانی خواهد شد.',
},
readmeInfo: {
title: 'خواندنی',
needHelpCheckReadme: 'نیاز به کمک دارید؟ فایل README را بررسی کنید.',
noReadmeAvailable: 'بدون پرونده README موجود',
failedToFetch: 'بارگیری فایل README با شکست مواجه شد',
},
}
export default translation

View File

@ -113,6 +113,15 @@ const translation = {
currentView: 'نمای فعلی',
currentWorkflow: 'گردش کار فعلی',
moreActions: 'اقدامات بیشتر',
listening: 'گوش دادن',
chooseStartNodeToRun: 'گره شروع را برای اجرا انتخاب کنید',
runAllTriggers: 'اجرای همه‌ی تریگرها',
features: 'ویژگی‌ها',
featuresDescription: 'بهبود تجربه کاربری برنامه وب',
featuresDocLink: 'بیشتر بدانید',
needAdd: 'باید یک گره {{node}} اضافه شود',
needStartNode: 'حداقل یک گره شروع باید اضافه شود',
workflowAsToolDisabledHint: 'آخرین جریان کاری را منتشر کنید و قبل از تنظیم آن به عنوان یک ابزار، مطمئن شوید که یک گره ورودی کاربر متصل وجود دارد.',
},
env: {
envPanelTitle: 'متغیرهای محیطی',
@ -219,6 +228,7 @@ const translation = {
rerankModelRequired: 'قبل از روشن کردن Rerank Model، لطفا تأیید کنید که مدل با موفقیت در تنظیمات پیکربندی شده است.',
noValidTool: '{{field}} هیچ ابزار معتبری انتخاب نشده است',
toolParameterRequired: '{{field}}: پارامتر [{{param}}] مورد نیاز است',
startNodeRequired: 'لطفاً ابتدا یک گره شروع اضافه کنید قبل از {{operation}}',
},
singleRun: {
testRun: 'اجرای آزمایشی',
@ -250,6 +260,21 @@ const translation = {
'allAdded': 'همه اضافه شده است',
'sources': 'منابع',
'searchDataSource': 'منبع داده جستجو',
'start': 'شروع',
'searchTrigger': 'فعال‌سازی جستجو...',
'allTriggers': 'همه‌ی محرک‌ها',
'noPluginsFound': 'هیچ پلاگینی پیدا نشد',
'requestToCommunity': 'درخواست‌ها از جامعه',
'featuredTools': 'ویژه',
'showMoreFeatured': 'نمایش بیشتر',
'showLessFeatured': 'نمایش کمتر',
'installed': 'نصب شده',
'pluginByAuthor': 'توسط {{author}}',
'usePlugin': 'انتخاب ابزار',
'hideActions': 'ابزارها را مخفی کن',
'noFeaturedPlugins': 'ابزارهای بیشتر را در بازار پیدا کنید',
'noFeaturedTriggers': 'کشف محرک‌های بیشتر در بازار',
'startDisabledTip': 'گره تریگر و گره ورودی کاربر به‌طور متقابل انحصاری هستند.',
},
blocks: {
'start': 'شروع',
@ -276,6 +301,10 @@ const translation = {
'loop': 'حلقه',
'datasource': 'منبع داده',
'knowledge-index': 'پایگاه دانش',
'originalStartNode': 'گره شروع اصلی',
'trigger-schedule': 'راه‌اندازی زمان‌بندی',
'trigger-webhook': 'راه‌انداز وبهوک',
'trigger-plugin': 'راه‌انداز پلاگین',
},
blocksAbout: {
'start': 'پارامترهای اولیه برای راه‌اندازی جریان کار را تعریف کنید',
@ -300,6 +329,9 @@ const translation = {
'loop': 'یک حلقه منطقی را اجرا کنید تا زمانی که شرایط خاتمه برآورده شود یا حداکثر تعداد حلقه به پایان برسد.',
'knowledge-index': 'پایگاه دانش درباره',
'datasource': 'منبع داده درباره',
'trigger-schedule': 'راه‌اندازی گردش کار مبتنی بر زمان که گردش کارها را بر اساس برنامه آغاز می‌کند',
'trigger-webhook': 'Webhook Trigger دریافت‌کنندهٔ pushهای HTTP از سیستم‌های شخص ثالث است تا به‌طور خودکار جریان‌های کاری را راه‌اندازی کند.',
'trigger-plugin': 'راه‌اندازی یکپارچه‌سازی با شخص ثالث که گردش‌های کاری را از رویدادهای پلتفرم خارجی شروع می‌کند',
},
operator: {
zoomIn: 'بزرگ‌نمایی',
@ -340,6 +372,8 @@ const translation = {
maximize: 'بیشینه‌سازی بوم',
scrollToSelectedNode: 'به گره انتخاب شده بروید',
optional_and_hidden: '(اختیاری و پنهان)',
goTo: 'برو به',
startNode: 'گره شروع',
},
nodes: {
common: {
@ -787,6 +821,8 @@ const translation = {
parallelPanelDesc: 'در حالت موازی، وظایف در تکرار از اجرای موازی پشتیبانی می کنند.',
MaxParallelismDesc: 'حداکثر موازی سازی برای کنترل تعداد وظایف اجرا شده به طور همزمان در یک تکرار واحد استفاده می شود.',
answerNodeWarningDesc: 'هشدار حالت موازی: گره های پاسخ، تکالیف متغیر مکالمه و عملیات خواندن/نوشتن مداوم در تکرارها ممکن است باعث استثنائات شود.',
flattenOutput: 'صاف کردن خروجی',
flattenOutputDesc: 'هنگامی که فعال باشد، اگر تمام خروجی‌های تکرار آرایه باشند، آنها به یک آرایهٔ واحد تبدیل خواهند شد. هنگامی که غیرفعال باشد، خروجی‌ها ساختار آرایهٔ تو در تو را حفظ می‌کنند.',
},
note: {
addNote: 'افزودن یادداشت',
@ -963,6 +999,144 @@ const translation = {
embeddingModelIsInvalid: 'مدل جاسازی نامعتبر است',
rerankingModelIsInvalid: 'مدل رتبه‌بندی مجدد نامعتبر است',
},
triggerPlugin: {
authorized: 'مجاز',
notConfigured: 'پیکربندی نشده',
notAuthorized: 'مجوز ندارد',
selectSubscription: 'انتخاب اشتراک',
availableSubscriptions: 'اشتراک‌های موجود',
addSubscription: 'افزودن اشتراک جدید',
removeSubscription: 'لغو اشتراک',
subscriptionRemoved: 'اشتراک با موفقیت حذف شد',
error: 'خطا',
configuration: 'پیکربندی',
remove: 'حذف',
or: 'یا',
useOAuth: 'استفاده از OAuth',
useApiKey: 'استفاده از کلید API',
authenticationFailed: 'احراز هویت ناموفق بود',
authenticationSuccess: 'احراز هویت با موفقیت انجام شد',
oauthConfigFailed: 'پیکربندی OAuth با شکست مواجه شد',
configureOAuthClient: 'پیکربندی مشتری OAuth',
oauthClientDescription: 'تنظیم اطلاعات مشتری OAuth برای فعال‌سازی احراز هویت',
oauthClientSaved: 'پیکربندی کلاینت OAuth با موفقیت ذخیره شد',
configureApiKey: 'پیکربندی کلید API',
apiKeyDescription: 'تنظیم اطلاعات کلید API برای احراز هویت',
apiKeyConfigured: 'کلید API با موفقیت پیکربندی شد',
configurationFailed: 'پیکربندی ناموفق بود',
failedToStart: 'شروع فرآیند احراز هویت ناکام ماند',
credentialsVerified: 'اعتبارات با موفقیت تأیید شد',
credentialVerificationFailed: 'اعتبارسنجی مدارک ناموفق بود',
verifyAndContinue: 'تأیید و ادامه',
configureParameters: 'پیکربندی پارامترها',
parametersDescription: 'تنظیم پارامترها و ویژگی‌های تریگر',
configurationComplete: 'پیکربندی کامل شد',
configurationCompleteDescription: 'راه‌انداز شما با موفقیت پیکربندی شد',
configurationCompleteMessage: 'پیکربندی ماشه شما اکنون کامل شده و آماده استفاده است.',
parameters: 'پارامترها',
properties: 'ویژگی‌ها',
propertiesDescription: 'خصوصیات پیکربندی اضافی برای این تریگر',
noConfigurationRequired: 'برای این محرک تنظیمات اضافی لازم نیست.',
subscriptionName: 'نام اشتراک',
subscriptionNameDescription: 'یک نام منحصر به فرد برای اشتراک این تریگر وارد کنید',
subscriptionNamePlaceholder: 'نام اشتراک را وارد کنید...',
subscriptionNameRequired: 'نام اشتراک الزامی است',
subscriptionRequired: 'اشتراک لازم است',
},
triggerSchedule: {
title: 'برنامه',
nodeTitle: 'راه‌اندازی زمان‌بندی',
notConfigured: 'پیکربندی نشده',
useCronExpression: 'استفاده از عبارت کران',
useVisualPicker: 'استفاده از انتخابگر بصری',
frequency: {
label: 'فرکانس',
hourly: 'ساعتی',
daily: 'روزانه',
weekly: 'هفتگی',
monthly: 'ماهانه',
},
selectFrequency: 'انتخاب فرکانس',
frequencyLabel: 'فرکانس',
nextExecution: 'اجرای بعدی',
weekdays: 'روزهای هفته',
time: 'زمان',
cronExpression: 'بیان کرون',
nextExecutionTime: 'زمان اجرای بعدی',
nextExecutionTimes: '۵ زمان اجرای بعدی',
startTime: 'زمان شروع',
executeNow: 'اجرا اکنون',
selectDateTime: 'تاریخ و زمان را انتخاب کنید',
hours: 'ساعات',
minutes: 'دقایق',
onMinute: 'در دقیقه',
days: 'روزها',
lastDay: 'آخرین روز',
lastDayTooltip: 'تمام ماه‌ها ۳۱ روز ندارند. از گزینه «آخرین روز» برای انتخاب روز آخر هر ماه استفاده کنید.',
mode: 'مد',
timezone: 'منطقه زمانی',
visualConfig: 'پیکربندی بصری',
monthlyDay: 'روز ماهانه',
executionTime: 'زمان اجرا',
invalidTimezone: 'منطقه زمانی نامعتبر',
invalidCronExpression: 'عبارت کرون نامعتبر',
noValidExecutionTime: 'زمان اجرای معتبر نمی‌تواند محاسبه شود',
executionTimeCalculationError: 'محاسبه زمان‌های اجرا با شکست مواجه شد',
invalidFrequency: 'فرکانس نامعتبر',
invalidStartTime: 'زمان شروع نامعتبر',
startTimeMustBeFuture: 'زمان شروع باید در آینده باشد',
invalidTimeFormat: 'فرمت زمان نامعتبر است (انتظار می‌رفت HH:MM AM/PM باشد)',
invalidWeekday: 'روز هفته نامعتبر: {{weekday}}',
invalidMonthlyDay: 'روز ماهانه باید بین ۱ تا ۳۱ یا «آخر» باشد',
invalidOnMinute: 'دقیقه باید بین ۰ تا ۵۹ باشد',
invalidExecutionTime: 'زمان اجرای نامعتبر',
executionTimeMustBeFuture: 'زمان اجرا باید در آینده باشد',
},
triggerWebhook: {
title: 'راه‌اندازی وبهوک',
nodeTitle: '🔗 فعال‌سازی وبهوک',
configPlaceholder: 'پیکربندی فعال‌سازی وب هوک در اینجا انجام خواهد شد',
webhookUrl: 'آدرس وب هوک',
webhookUrlPlaceholder: 'برای ایجاد آدرس وبهوک روی تولید کلیک کنید',
generate: 'تولید کردن',
copy: 'کپی',
test: 'تست',
urlGenerated: 'آدرس وبهوک با موفقیت ایجاد شد',
urlGenerationFailed: 'ایجاد URL وب‌هوک ناموفق بود',
urlCopied: 'آدرس وب‌سایت در حافظه موقت کپی شد',
method: 'روش',
contentType: 'نوع محتوا',
queryParameters: 'پارامترهای پرس‌وجو',
headerParameters: 'پارامترهای هدر',
requestBodyParameters: 'پارامترهای بدنه درخواست',
parameterName: 'نام متغیر',
varName: 'نام متغیر',
varType: 'نوع',
varNamePlaceholder: 'نام متغیر را وارد کنید...',
required: 'الزامی',
addParameter: 'افزودن',
addHeader: 'افزودن',
noParameters: 'هیچ پارامتری پیکربندی نشده است',
noQueryParameters: 'پارامترهای پرس‌وجو تنظیم نشده‌اند',
noHeaders: 'هیچ هدر پیکربندی نشده است',
noBodyParameters: 'هیچ پارامتر بدنی پیکربندی نشده است',
debugUrlTitle: 'برای اجرای آزمایشی، همیشه از این آدرس اینترنتی استفاده کنید',
debugUrlCopy: 'برای کپی کلیک کنید',
debugUrlCopied: 'کپی شد!',
debugUrlPrivateAddressWarning: 'به نظر می‌رسد این URL یک آدرس داخلی است که ممکن است باعث شود درخواست‌های وب‌هوک با شکست مواجه شوند. شما می‌توانید TRIGGER_URL را به یک آدرس عمومی تغییر دهید.',
errorHandling: 'مدیریت خطا',
errorStrategy: 'مدیریت خطا',
responseConfiguration: 'پاسخ',
asyncMode: 'حالت غیرهمزمان',
statusCode: 'کد وضعیت',
responseBody: 'بدنه پاسخ',
responseBodyPlaceholder: 'بدنه پاسخ خود را اینجا بنویسید',
headers: 'سرتیترها',
validation: {
webhookUrlRequired: 'آدرس وبهوک الزامی است',
invalidParameterType: 'نوع پارامتر نامعتبر "{{type}}" برای پارامتر "{{name}}"',
},
},
},
tracing: {
stopBy: 'متوقف شده توسط {{user}}',
@ -1037,6 +1211,18 @@ const translation = {
exportToolTip: 'اکسپورت متغیر به عنوان فایل',
largeData: 'داده های بزرگ، پیش نمایش فقط خواندنی صادرات برای مشاهده همه.',
largeDataNoExport: 'داده های بزرگ - فقط پیش نمایش جزئی',
listening: {
title: 'در انتظار رویدادها از تریگرها...',
tip: 'اکنون می‌توانید با ارسال درخواست‌های آزمایشی به نقطه پایانی HTTP {{nodeName}} رویدادها را شبیه‌سازی کنید یا از آن به عنوان URL بازخوانی برای دیباگ رویدادهای زنده استفاده کنید. تمام خروجی‌ها را می‌توان به طور مستقیم در بازرس متغیر مشاهده کرد.',
tipPlugin: 'حال می‌توانید در {{- pluginName}} رویداد ایجاد کنید و خروجی‌های این رویدادها را در بازرس متغیرها بازیابی کنید.',
tipSchedule: 'گوش دادن به رویدادها از طریق محرک‌های زمان‌بندی شده.\nزمان اجرای بعدی برنامه‌ریزی شده: {{nextTriggerTime}}',
tipFallback: 'در انتظار رویدادهای فعال‌سازی ورودی باشید. خروجی‌ها در اینجا نمایش داده خواهند شد.',
defaultNodeName: 'این محرک',
defaultPluginName: 'این افزونه فعال می‌شود',
defaultScheduleTime: 'پیکربندی نشده',
selectedTriggers: 'تریگرهای انتخاب‌شده',
stopButton: 'توقف',
},
},
settingsTab: 'تنظیمات',
lastRunTab: 'آخرین اجرا',
@ -1054,11 +1240,52 @@ const translation = {
noMatchingInputsFound: 'هیچ ورودی مطابقی از آخرین اجرا یافت نشد',
copyLastRunError: 'نتوانستم ورودی‌های آخرین اجرای را کپی کنم',
lastOutput: 'آخرین خروجی',
lastRunInputsCopied: '{{count}} ورودی(ها) از اجرای قبلی کپی شد',
},
sidebar: {
exportWarning: 'صادرات نسخه ذخیره شده فعلی',
exportWarningDesc: 'این نسخه فعلی ذخیره شده از کار خود را صادر خواهد کرد. اگر تغییرات غیرذخیره شده‌ای در ویرایشگر دارید، لطفاً ابتدا از گزینه صادرات در بوم کار برای ذخیره آنها استفاده کنید.',
},
publishLimit: {
startNodeTitlePrefix: 'ارتقا به',
startNodeTitleSuffix: 'فعال‌سازی تعداد نامحدود تریگر در هر جریان کاری',
startNodeDesc: 'شما به حد مجاز ۲ ماشه در هر گردش کار برای این طرح رسیده‌اید. برای انتشار این گردش کار ارتقا دهید.',
},
error: {
startNodeRequired: 'لطفاً ابتدا یک گره شروع اضافه کنید قبل از {{operation}}',
operations: {
connectingNodes: 'اتصال گره‌ها',
addingNodes: 'افزودن گره‌ها',
modifyingWorkflow: 'تغییر جریان کاری',
updatingWorkflow: 'به‌روزرسانی جریان کاری',
},
},
customWebhook: 'وبهوک سفارشی',
difyTeam: 'تیم دیفی',
triggerStatus: {
enabled: 'محرک',
disabled: 'فعال‌سازی • غیرفعال',
},
entryNodeStatus: {
enabled: 'شروع',
disabled: 'شروع • غیر فعال',
},
onboarding: {
title: 'یک گره شروع را برای آغاز انتخاب کنید',
description: 'گره‌های شروع مختلف، قابلیت‌های متفاوتی دارند. نگران نباشید، همیشه می‌توانید بعداً آن‌ها را تغییر دهید.',
userInputFull: 'ورودی کاربر (گره شروع اصلی)',
userInputDescription: 'گره شروع که امکان تنظیم متغیرهای ورودی کاربر را دارد، با برنامه وب، API سرویس، سرور MCP و جریان کاری به عنوان قابلیت‌های ابزار.',
trigger: 'محرک',
triggerDescription: 'تریگرها می‌توانند به عنوان گره شروع یک گردش کار عمل کنند، مانند کارهای زمان‌بندی‌شده، وبهوک‌های سفارشی، یا یکپارچه‌سازی با برنامه‌های دیگر.',
back: 'بازگشت',
learnMore: 'بیشتر بدانید',
aboutStartNode: 'درباره گره شروع.',
escTip: {
press: 'چاپ',
key: 'فرار',
toDismiss: 'اخراج کردن',
},
},
}
export default translation

View File

@ -329,6 +329,7 @@ const translation = {
'multi-files': 'Liste des fichiers',
'both': 'Les deux',
'maxNumberOfUploads': 'Nombre maximal de téléchargements',
'maxNumberTip': 'Document < {{docLimit}}, image < {{imgLimit}}, audio < {{audioLimit}}, vidéo < {{videoLimit}}',
'localUpload': 'Téléchargement local',
'single-file': 'En file indienne',
'optional': 'optionnel',
@ -540,10 +541,7 @@ const translation = {
generate: 'Générer',
tryIt: 'Essaie',
overwriteTitle: 'Remplacer la configuration existante ?',
noDataLine2: 'Laperçu de lorchestration saffichera ici.',
overwriteMessage: 'Lapplication de cette invite remplacera la configuration existante.',
noDataLine1: 'Décrivez votre cas dutilisation sur la gauche,',
instructionPlaceHolder: 'Rédigez des instructions claires et précises.',
title: 'Générateur dinvites',
apply: 'Appliquer',
resTitle: 'Invite générée',

View File

@ -19,6 +19,7 @@ const translation = {
tokens: 'JETONS',
user: 'UTILISATEUR FINAL OU COMPTE',
version: 'VERSION',
triggered_from: 'DÉCLENCHÉ PAR',
},
pagination: {
previous: 'Précédent',
@ -97,6 +98,15 @@ const translation = {
finalProcessing: 'Traitement final',
},
dateFormat: 'JJ/MM/YYYY',
triggerBy: {
debugging: 'Débogage',
appRun: 'Application Web',
webhook: 'Webhook',
schedule: 'Programme',
plugin: 'Plugin',
ragPipelineRun: 'Pipeline RAG',
ragPipelineDebugging: 'Débogage RAG',
},
}
export default translation

View File

@ -114,7 +114,11 @@ const translation = {
},
},
launch: 'Lancer',
enableTooltip: {},
enableTooltip: {
description: 'Pour activer cette fonctionnalité, veuillez ajouter un nœud d\'entrée utilisateur sur le canevas. (Peut déjà exister dans le brouillon, prend effet après publication)',
learnMore: 'En savoir plus',
},
title: 'Application Web',
},
apiInfo: {
title: 'API de service Backend',
@ -126,7 +130,14 @@ const translation = {
running: 'En service',
disable: 'Désactiver',
},
triggerInfo: {},
triggerInfo: {
title: 'Déclencheurs',
explanation: 'Gestion des déclencheurs de flux de travail',
triggersAdded: 'Déclencheurs ajoutés',
noTriggerAdded: 'Aucun déclencheur ajouté',
triggerStatusDescription: 'L\'état du nœud de déclenchement apparaît ici. (Peut déjà exister dans le brouillon, prend effet après publication)',
learnAboutTriggers: 'En savoir plus sur les déclencheurs',
},
disableTooltip: {
triggerMode: 'La fonctionnalité {{feature}} n\'est pas prise en charge en mode Nœud Déclencheur.',
},

View File

@ -98,6 +98,8 @@ const translation = {
triggerEvents: {
unlimited: 'Événements Déclencheurs Illimités',
tooltip: 'Le nombre d\'événements qui déclenchent automatiquement des flux de travail via des déclencheurs Plugin, Planification ou Webhook.',
sandbox: '{{count,number}} Déclencher des événements',
professional: '{{count,number}} Déclenchements par mois',
},
workflowExecution: {
priority: 'Exécution du flux de travail prioritaire',
@ -107,6 +109,11 @@ const translation = {
},
startNodes: {
unlimited: 'Déclencheurs/workflows illimités',
limited: 'Jusqu\'à {{count}} déclencheurs/workflow',
},
title: {
plans: 'plans',
description: 'Sélectionnez le plan qui correspond le mieux aux besoins de votre équipe.',
},
},
plans: {
@ -129,16 +136,14 @@ const translation = {
name: 'Entreprise',
description: 'Obtenez toutes les capacités et le support pour les systèmes à grande échelle et critiques pour la mission.',
includesTitle: 'Tout ce qui est inclus dans le plan Équipe, plus :',
features: {
},
features: ['Solutions de déploiement évolutives de niveau entreprise', 'Autorisation de licence commerciale', 'Fonctionnalités exclusives pour les entreprises', 'Espaces de travail multiples et gestion d\'entreprise', 'SSO', 'Accords sur les SLA négociés par les partenaires Dify', 'Sécurité et Contrôles Avancés', 'Mises à jour et maintenance par Dify Officiellement', 'Assistance technique professionnelle'],
for: 'Pour les équipes de grande taille',
btnText: 'Contacter les ventes',
priceTip: 'Facturation Annuel Seulement',
price: 'Personnalisé',
},
community: {
features: {
},
features: ['Toutes les fonctionnalités principales publiées dans le dépôt public', 'Espace de travail unique', 'Conforme à la licence open source Dify'],
name: 'Communauté',
btnText: 'Commencez avec la communauté',
for: 'Pour les utilisateurs individuels, les petites équipes ou les projets non commerciaux',
@ -147,8 +152,7 @@ const translation = {
description: 'Pour les utilisateurs individuels, les petites équipes ou les projets non commerciaux',
},
premium: {
features: {
},
features: ['Fiabilité autonome par divers fournisseurs de cloud', 'Espace de travail unique', 'Personnalisation du logo et de l\'identité visuelle de l\'application web', 'Assistance prioritaire par e-mail et chat'],
for: 'Pour les organisations et les équipes de taille moyenne',
includesTitle: 'Tout de la communauté, en plus :',
name: 'Premium',
@ -184,6 +188,7 @@ const translation = {
documentsUploadQuota: 'Quota de téléchargement de documents',
perMonth: 'par mois',
triggerEvents: 'Événements déclencheurs',
resetsIn: 'Réinitialisations dans {{count,number}} jours',
},
teamMembers: 'Membres de l\'équipe',
triggerLimitModal: {

View File

@ -65,10 +65,17 @@ const translation = {
confirmAction: 'Veuillez confirmer votre action.',
deleteConfirmTitle: 'Supprimer ?',
yes: 'Oui',
noSearchResults: 'Aucun {{content}} n\'a été trouvé',
resetKeywords: 'Réinitialiser les mots-clés',
selectCount: '{{count}} Sélectionné',
searchCount: 'Trouver {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'Maintenant',
},
placeholder: {
input: 'Veuillez entrer',
select: 'Veuillez sélectionner',
search: 'Rechercher...',
},
voice: {
language: {
@ -203,7 +210,6 @@ const translation = {
showAppLength: 'Afficher {{length}} applications',
delete: 'Supprimer le compte',
deleteTip: 'La suppression de votre compte effacera définitivement toutes vos données et elles ne pourront pas être récupérées.',
deleteConfirmTip: 'Pour confirmer, veuillez envoyer ce qui suit depuis votre adresse e-mail enregistrée à ',
myAccount: 'Mon compte',
account: 'Compte',
studio: 'Dify Studio',
@ -770,6 +776,13 @@ const translation = {
label: {
optional: '(facultatif)',
},
noData: 'Aucune donnée',
dynamicSelect: {
error: 'Échec du chargement des options',
noData: 'Aucune option disponible',
loading: 'Chargement des options...',
selected: '{{count}} sélectionné',
},
}
export default translation

View File

@ -1,8 +1,6 @@
const translation = {
steps: {
header: {
creation: 'Créer des Connaissances',
update: 'Ajouter des données',
fallbackRoute: 'Connaissance',
},
one: 'Choisissez la source de données',

View File

@ -30,7 +30,6 @@ const translation = {
sync: 'Synchroniser',
pause: 'Pause',
resume: 'Reprendre',
download: 'Télécharger le fichier',
},
index: {
enable: 'Activer',
@ -82,7 +81,10 @@ const translation = {
},
addUrl: 'Ajouter une URL',
learnMore: 'Pour en savoir plus',
sort: {},
sort: {
uploadTime: 'Heure de téléchargement',
hitCount: 'Nombre de récupérations',
},
},
metadata: {
title: 'Métadonnées',
@ -348,7 +350,6 @@ const translation = {
keywords: 'Mots Clés',
addKeyWord: 'Ajouter un mot-clé',
keywordError: 'La longueur maximale du mot-clé est de 20',
characters: 'personnages',
hitCount: 'Nombre de récupérations',
vectorHash: 'Vector hash: ',
questionPlaceholder: 'ajoutez la question ici',

View File

@ -2,7 +2,6 @@ const translation = {
title: 'Test de Récupération',
desc: 'Testez l\'effet d\'impact de la Connaissance basée sur le texte de la requête donnée.',
dateTimeFormat: 'JJ/MM/AAAA hh:mm A',
recents: 'Récents',
table: {
header: {
source: 'Source',

View File

@ -34,6 +34,7 @@ const translation = {
publishPipeline: {
success: {
message: 'Pipeline de connaissances publié',
tip: '<CustomLink>Allez dans Documents</CustomLink> pour ajouter ou gérer des documents.',
},
error: {
message: 'Échec de la publication du pipeline de connaissances',
@ -56,6 +57,7 @@ const translation = {
details: {
structure: 'Structure',
structureTooltip: 'La structure par blocs détermine la façon dont les documents sont divisés et indexés (en proposant les modes Général, Parent-Enfant et Q&R) et est unique à chaque base de connaissances.',
createdBy: 'Par {{author}}',
},
testRun: {
steps: {
@ -112,23 +114,32 @@ const translation = {
characters: 'caractères',
title: 'Ajouter des documents',
backToDataSource: 'Source des données',
selectOnlineDocumentTip: 'Traiter jusqu\'à {{count}} pages',
selectOnlineDriveTip: 'Traiter jusqu\'à {{count}} fichiers, maximum {{fileSize}} Mo chacun',
},
documentSettings: {
title: 'Paramètres du document',
},
onlineDocument: {},
onlineDocument: {
pageSelectorTitle: '{{name}} pages',
},
onlineDrive: {
breadcrumbs: {
searchPlaceholder: 'Rechercher des fichiers...',
allBuckets: 'Tous les compartiments de stockage dans le cloud',
allFiles: 'Tous les fichiers',
searchResult: 'Trouver {{searchResultsLength}} éléments dans le dossier « {{folderName}} »',
},
notSupportedFileType: 'Ce type de fichier nest pas pris en charge',
emptySearchResult: 'Aucun objet na été trouvé',
emptyFolder: 'Ce dossier est vide',
resetKeywords: 'Réinitialiser les mots-clés',
notConnected: '{{name}} n\'est pas connecté',
notConnectedTip: 'Pour se synchroniser avec {{name}}, une connexion à {{name}} doit d\'abord être établie.',
},
credentialSelector: {
name: '{{credentialName}} de {{pluginName}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Confirmation',
@ -149,6 +160,7 @@ const translation = {
knowledgeNameAndIcon: 'Nom et icône de la connaissance',
inputField: 'Champ de saisie',
knowledgeDescriptionPlaceholder: 'Décrivez le contenu de cette base de connaissances. Une description détaillée permet à lIA daccéder plus précisément au contenu de lensemble de données. Sil est vide, Dify utilisera la stratégie daccès par défaut. (Facultatif)',
configurationTip: 'Configurer {{pluginName}}',
}
export default translation

View File

@ -234,6 +234,10 @@ const translation = {
title: 'API de service',
disabled: 'désactivé',
},
docAllEnabled_one: 'Document {{count}} activé',
docAllEnabled_other: 'Tous les documents {{count}} activés',
partialEnabled_one: 'Total de {{count}} documents, {{num}} disponibles',
partialEnabled_other: 'Total de {{count}} documents, {{num}} disponibles',
}
export default translation

View File

@ -52,6 +52,7 @@ const translation = {
},
isAboutToExpire: {
summary: 'Ne vous inquiétez pas — cela n\'affectera pas votre abonnement actuel, mais vous n\'obtiendrez pas la remise éducative lors de son renouvellement à moins que vous ne vérifiiez à nouveau votre statut.',
title: 'Votre statut éducatif expirera le {{date}}',
},
stillInEducation: {
title: 'Encore dans l\'éducation ?',

View File

@ -28,10 +28,12 @@ const translation = {
loading: 'Traitement... Veuillez patienter',
viewDetails: 'Voir les détails',
error: 'Une erreur sest produite lors de lexécution',
footerTip: 'En mode de test, prévisualisez jusqu\'à {{count}} morceaux',
},
},
ragToolSuggestions: {
title: 'Suggestions pour RAG',
noRecommendationPlugins: 'Aucun plugin recommandé, trouvez-en plus dans le <CustomLink>Marketplace</CustomLink>',
},
}

View File

@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'Abonnements',
listNum: 'abonnements {{num}}',
empty: {
title: 'Aucun abonnement',
button: 'Nouvel abonnement',
},
createButton: {
oauth: 'Nouvelle abonnement avec OAuth',
apiKey: 'Nouvel abonnement avec clé API',
manual: 'Collez l\'URL pour créer un nouvel abonnement',
},
createSuccess: 'Abonnement créé avec succès',
createFailed: 'Échec de la création de l\'abonnement',
maxCount: 'Nombre maximal d\'abonnements {{num}}',
selectPlaceholder: 'Sélectionner un abonnement',
noSubscriptionSelected: 'Aucun abonnement sélectionné',
subscriptionRemoved: 'Abonnement supprimé',
list: {
title: 'Abonnements',
addButton: 'Ajouter',
tip: 'Recevoir des événements via abonnement',
item: {
enabled: 'Activé',
disabled: 'désactivé',
credentialType: {
api_key: 'Clé API',
oauth2: 'OAuth',
unauthorized: 'Manuel',
},
actions: {
delete: 'Supprimer',
deleteConfirm: {
title: 'Supprimer {{name}} ?',
success: 'Abonnement {{name}} supprimé avec succès',
error: 'Échec de la suppression de l\'abonnement {{name}}',
content: 'Une fois supprimé, cet abonnement ne peut pas être récupéré. Veuillez confirmer.',
contentWithApps: 'L\'abonnement actuel est référencé par {{count}} applications. Le supprimer fera en sorte que les applications configurées ne reçoivent plus d\'événements d\'abonnement.',
confirm: 'Confirmer la suppression',
cancel: 'Annuler',
confirmInputWarning: 'Veuillez entrer le nom correct pour confirmer.',
confirmInputPlaceholder: 'Entrez "{{name}}" pour confirmer.',
confirmInputTip: 'Veuillez entrer « {{name}} » pour confirmer.',
},
},
status: {
active: 'actif',
inactive: 'Inactif',
},
usedByNum: 'Utilisé par {{num}} flux de travail',
noUsed: 'Aucun flux de travail utilisé',
},
},
addType: {
title: 'Ajouter un abonnement',
description: 'Choisissez comment vous souhaitez créer votre abonnement de déclenchement',
options: {
apikey: {
title: 'Créer avec la clé API',
description: 'Créer automatiquement un abonnement en utilisant les identifiants API',
},
oauth: {
title: 'Créer avec OAuth',
description: 'Autoriser la plateforme tierce à créer un abonnement',
clientSettings: 'Paramètres du client OAuth',
clientTitle: 'Client OAuth',
default: 'Par défaut',
custom: 'Personnalisé',
},
manual: {
title: 'Configuration manuelle',
description: 'Collez l\'URL pour créer un nouvel abonnement',
tip: 'Configurer l\'URL sur une plateforme tierce manuellement',
},
},
},
},
modal: {
steps: {
verify: 'Vérifier',
configuration: 'Configuration',
},
common: {
cancel: 'Annuler',
back: 'Retour',
next: 'Suivant',
create: 'Créer',
verify: 'Vérifier',
authorize: 'Autoriser',
creating: 'Création...',
verifying: 'Vérification...',
authorizing: 'Autorisation en cours...',
},
oauthRedirectInfo: 'Comme aucun secret client système n\'a été trouvé pour ce fournisseur d\'outil, une configuration manuelle est requise ; pour redirect_uri, veuillez utiliser',
apiKey: {
title: 'Créer avec la clé API',
verify: {
title: 'Vérifier les identifiants',
description: 'Veuillez fournir vos identifiants API pour vérifier l\'accès',
error: 'Échec de la vérification des identifiants. Veuillez vérifier votre clé API.',
success: 'Identifiants vérifiés avec succès',
},
configuration: {
title: 'Configurer l\'abonnement',
description: 'Configurez les paramètres de votre abonnement',
},
},
oauth: {
title: 'Créer avec OAuth',
authorization: {
title: 'Autorisation OAuth',
description: 'Autorisez Dify à accéder à votre compte',
redirectUrl: 'URL de redirection',
redirectUrlHelp: 'Utilisez cette URL dans la configuration de votre application OAuth',
authorizeButton: 'Autoriser avec {{provider}}',
waitingAuth: 'En attente d\'autorisation...',
authSuccess: 'Autorisation réussie',
authFailed: 'Échec de lobtention des informations dautorisation OAuth',
waitingJump: 'Autorisé, en attente du saut',
},
configuration: {
title: 'Configurer l\'abonnement',
description: 'Configurez les paramètres de votre abonnement après l\'autorisation',
success: 'Configuration OAuth réussie',
failed: 'Échec de la configuration OAuth',
},
remove: {
success: 'Suppression d\'OAuth réussie',
failed: 'Échec de la suppression d\'OAuth',
},
save: {
success: 'Configuration OAuth enregistrée avec succès',
},
},
manual: {
title: 'Configuration manuelle',
description: 'Configurez votre abonnement webhook manuellement',
logs: {
title: 'Journaux des requêtes',
request: 'Demande',
loading: 'En attente de la demande de {{pluginName}}...',
},
},
form: {
subscriptionName: {
label: 'Nom de l\'abonnement',
placeholder: 'Entrez le nom de l\'abonnement',
required: 'Le nom de l\'abonnement est requis',
},
callbackUrl: {
label: 'URL de rappel',
description: 'Cette URL recevra des événements webhook',
tooltip: 'Fournissez un point de terminaison accessible publiquement qui peut recevoir des requêtes de rappel du fournisseur de déclenchement.',
placeholder: 'Génération...',
privateAddressWarning: 'Cette URL semble être une adresse interne, ce qui peut provoquer l\'échec des requêtes webhook. Vous pouvez changer TRIGGER_URL pour une adresse publique.',
},
},
errors: {
createFailed: 'Échec de la création de l\'abonnement',
verifyFailed: 'Échec de la vérification des identifiants',
authFailed: 'Autorisation échouée',
networkError: 'Erreur réseau, veuillez réessayer',
},
},
events: {
title: 'Événements disponibles',
description: 'Événements auxquels ce plugin de déclenchement peut s\'abonner',
empty: 'Aucun événement disponible',
event: 'Événement',
events: 'Événements',
actionNum: '{{num}} {{event}} INCLUS',
item: {
parameters: 'paramètres {{count}}',
noParameters: 'Aucun paramètre',
},
output: 'Sortie',
},
node: {
status: {
warning: 'Se déconnecter',
},
},
}
export default translation

View File

@ -7,6 +7,7 @@ const translation = {
bundles: 'Paquets',
all: 'Tout',
datasources: 'Sources des données',
triggers: 'Déclencheurs',
},
categorySingle: {
extension: 'Extension',
@ -15,6 +16,7 @@ const translation = {
agent: 'Stratégie dagent',
bundle: 'Paquet',
datasource: 'Source des données',
trigger: 'Déclencheur',
},
list: {
source: {
@ -45,6 +47,7 @@ const translation = {
install: 'Installer',
remove: 'Enlever',
detail: 'Détails',
back: 'Retour',
},
toolSelector: {
uninstalledLink: 'Gérer dans les plugins',
@ -339,6 +342,12 @@ const translation = {
'Seuls les {{num}} plugins suivants se mettront à jour automatiquement',
nextUpdateTime: 'Prochaine mise à jour automatique : {{time}}',
},
readmeInfo: {
title: 'Lisez-moi',
needHelpCheckReadme: 'Besoin d\'aide ? Consultez le README.',
noReadmeAvailable: 'Aucun README disponible',
failedToFetch: 'Échec de la récupération du README',
},
}
export default translation

View File

@ -113,6 +113,15 @@ const translation = {
currentView: 'Vue actuelle',
currentWorkflow: 'Flux de travail actuel',
moreActions: 'Plus dactions',
listening: 'Écouter',
chooseStartNodeToRun: 'Choisissez le nœud de départ pour lancer',
runAllTriggers: 'Exécuter tous les déclencheurs',
features: 'Fonctionnalités',
featuresDescription: 'Améliorer l\'expérience utilisateur de l\'application web',
featuresDocLink: 'En savoir plus',
needAdd: 'Le nœud {{node}} doit être ajouté',
needStartNode: 'Au moins un nœud de départ doit être ajouté',
workflowAsToolDisabledHint: 'Publiez le dernier flux de travail et assurez-vous qu\'un nœud d\'entrée utilisateur est connecté avant de le configurer comme outil.',
},
env: {
envPanelTitle: 'Variables d\'Environnement',
@ -219,6 +228,7 @@ const translation = {
rerankModelRequired: 'Avant dactiver le modèle de reclassement, veuillez confirmer que le modèle a été correctement configuré dans les paramètres.',
noValidTool: '{{field}} aucun outil valide sélectionné',
toolParameterRequired: '{{field}} : le paramètre [{{param}}] est obligatoire',
startNodeRequired: 'Veuillez d\'abord ajouter un nœud de départ avant {{operation}}',
},
singleRun: {
testRun: 'Exécution de test',
@ -250,6 +260,21 @@ const translation = {
'allAdded': 'Tout ajouté',
'sources': 'Sources',
'searchDataSource': 'Source de données de recherche',
'start': 'Démarrer',
'searchTrigger': 'Déclencheurs de recherche...',
'allTriggers': 'Tous les déclencheurs',
'noPluginsFound': 'Aucun plugin n\'a été trouvé',
'requestToCommunity': 'Demandes à la communauté',
'featuredTools': 'En vedette',
'showMoreFeatured': 'Afficher plus',
'showLessFeatured': 'Afficher moins',
'installed': 'Installé',
'pluginByAuthor': 'Par {{author}}',
'usePlugin': 'Sélectionner l\'outil',
'hideActions': 'Cacher les outils',
'noFeaturedPlugins': 'Découvrez plus d\'outils dans le Marketplace',
'noFeaturedTriggers': 'Découvrez plus de déclencheurs dans le Marketplace',
'startDisabledTip': 'Le nœud de déclenchement et le nœud d\'entrée utilisateur sont mutuellement exclusifs.',
},
blocks: {
'start': 'Début',
@ -276,6 +301,10 @@ const translation = {
'loop-start': 'Début de boucle',
'knowledge-index': 'Base de connaissances',
'datasource': 'Source des données',
'originalStartNode': 'nœud de départ original',
'trigger-schedule': 'Déclencheur de programmation',
'trigger-webhook': 'Déclencheur Webhook',
'trigger-plugin': 'Déclencheur de plugin',
},
blocksAbout: {
'start': 'Définir les paramètres initiaux pour lancer un flux de travail',
@ -300,6 +329,9 @@ const translation = {
'loop-end': 'Équivalent à "break". Ce nœud n\'a pas d\'éléments de configuration. Lorsque le corps de la boucle atteint ce nœud, la boucle se termine.',
'datasource': 'Source de données À propos',
'knowledge-index': 'Base de connaissances À propos',
'trigger-schedule': 'Déclencheur de flux de travail basé sur le temps qui démarre les flux de travail selon un calendrier',
'trigger-webhook': 'Le déclencheur Webhook reçoit des pushs HTTP provenant de systèmes tiers pour déclencher automatiquement des flux de travail.',
'trigger-plugin': 'Déclencheur dintégration tierce qui démarre des flux de travail à partir dévénements dune plateforme externe',
},
operator: {
zoomIn: 'Zoomer',
@ -340,6 +372,8 @@ const translation = {
minimize: 'Sortir du mode plein écran',
scrollToSelectedNode: 'Faites défiler jusquau nœud sélectionné',
optional_and_hidden: '(optionnel et caché)',
goTo: 'Aller à',
startNode: 'Nœud de départ',
},
nodes: {
common: {
@ -787,6 +821,8 @@ const translation = {
answerNodeWarningDesc: 'Avertissement en mode parallèle : les nœuds de réponse, les affectations de variables de conversation et les opérations de lecture/écriture persistantes au sein des itérations peuvent provoquer des exceptions.',
parallelModeEnableTitle: 'Mode parallèle activé',
parallelMode: 'Mode parallèle',
flattenOutput: 'Aplatir la sortie',
flattenOutputDesc: 'Lorsqu\'il est activé, si toutes les sorties d\'itération sont des tableaux, elles seront aplaties en un seul tableau. Lorsqu\'il est désactivé, les sorties conserveront une structure de tableau imbriqué.',
},
note: {
addNote: 'Ajouter note',
@ -963,6 +999,144 @@ const translation = {
rerankingModelIsInvalid: 'Le modèle de rerank est invalide',
embeddingModelIsInvalid: 'Le modèle d\'intégration est invalide',
},
triggerPlugin: {
authorized: 'autorisé',
notConfigured: 'Non configuré',
notAuthorized: 'Non autorisé',
selectSubscription: 'Sélectionner un abonnement',
availableSubscriptions: 'Abonnements disponibles',
addSubscription: 'Ajouter un nouvel abonnement',
removeSubscription: 'Supprimer l\'abonnement',
subscriptionRemoved: 'Abonnement supprimé avec succès',
error: 'Erreur',
configuration: 'Configuration',
remove: 'Supprimer',
or: 'OU',
useOAuth: 'Utiliser OAuth',
useApiKey: 'Utiliser la clé API',
authenticationFailed: 'Échec de l\'authentification',
authenticationSuccess: 'Authentification réussie',
oauthConfigFailed: 'Échec de la configuration OAuth',
configureOAuthClient: 'Configurer le client OAuth',
oauthClientDescription: 'Configurez les identifiants du client OAuth pour activer l\'authentification',
oauthClientSaved: 'Configuration du client OAuth enregistrée avec succès',
configureApiKey: 'Configurer la clé API',
apiKeyDescription: 'Configurer les identifiants de clé API pour l\'authentification',
apiKeyConfigured: 'Clé API configurée avec succès',
configurationFailed: 'Échec de la configuration',
failedToStart: 'Échec du démarrage du processus d\'authentification',
credentialsVerified: 'Identifiants vérifiés avec succès',
credentialVerificationFailed: 'Échec de la vérification des identifiants',
verifyAndContinue: 'Vérifier et continuer',
configureParameters: 'Configurer les paramètres',
parametersDescription: 'Configurer les paramètres et les propriétés du déclencheur',
configurationComplete: 'Configuration terminée',
configurationCompleteDescription: 'Votre déclencheur a été configuré avec succès',
configurationCompleteMessage: 'La configuration de votre déclencheur est maintenant complète et prête à l\'emploi.',
parameters: 'Paramètres',
properties: 'Propriétés',
propertiesDescription: 'Propriétés de configuration supplémentaires pour ce déclencheur',
noConfigurationRequired: 'Aucune configuration supplémentaire n\'est requise pour ce déclencheur.',
subscriptionName: 'Nom de l\'abonnement',
subscriptionNameDescription: 'Entrez un nom unique pour cet abonnement de déclencheur',
subscriptionNamePlaceholder: 'Entrez le nom de l\'abonnement...',
subscriptionNameRequired: 'Le nom de l\'abonnement est requis',
subscriptionRequired: 'L\'abonnement est requis',
},
triggerSchedule: {
title: 'Programme',
nodeTitle: 'Déclencheur de programmation',
notConfigured: 'Non configuré',
useCronExpression: 'Utiliser une expression cron',
useVisualPicker: 'Utiliser le sélecteur visuel',
frequency: {
label: 'FRÉQUENCE',
hourly: 'Horaire',
daily: 'Quotidien',
weekly: 'Hebdomadaire',
monthly: 'mensuel',
},
selectFrequency: 'Sélectionner la fréquence',
frequencyLabel: 'Fréquence',
nextExecution: 'Prochaine exécution',
weekdays: 'Jours de la semaine',
time: 'Temps',
cronExpression: 'Expression Cron',
nextExecutionTime: 'PROCHAINE HEURE D\'EXÉCUTION',
nextExecutionTimes: 'Prochaines 5 exécutions',
startTime: 'Heure de début',
executeNow: 'Exécution maintenant',
selectDateTime: 'Sélectionner la date et l\'heure',
hours: 'Heures',
minutes: 'Minutes',
onMinute: 'Une minute',
days: 'Jours',
lastDay: 'Dernier jour',
lastDayTooltip: 'Tous les mois n\'ont pas 31 jours. Utilisez l\'option « dernier jour » pour sélectionner le dernier jour de chaque mois.',
mode: 'Mode',
timezone: 'Fuseau horaire',
visualConfig: 'Configuration visuelle',
monthlyDay: 'Jour mensuel',
executionTime: 'Temps d\'exécution',
invalidTimezone: 'Fuseau horaire invalide',
invalidCronExpression: 'Expression cron invalide',
noValidExecutionTime: 'Aucun temps d\'exécution valide ne peut être calculé',
executionTimeCalculationError: 'Échec du calcul des temps d\'exécution',
invalidFrequency: 'Fréquence invalide',
invalidStartTime: 'Heure de début invalide',
startTimeMustBeFuture: 'L\'heure de début doit être dans le futur',
invalidTimeFormat: 'Format d\'heure invalide (attendu HH:MM AM/PM)',
invalidWeekday: 'Jour de la semaine invalide : {{weekday}}',
invalidMonthlyDay: 'Le jour du mois doit être compris entre 1 et 31 ou "dernier"',
invalidOnMinute: 'Une minute doit être comprise entre 0 et 59',
invalidExecutionTime: 'Heure d\'exécution invalide',
executionTimeMustBeFuture: 'Le délai d\'exécution doit être dans le futur',
},
triggerWebhook: {
title: 'Déclencheur Webhook',
nodeTitle: '🔗 Déclencheur Webhook',
configPlaceholder: 'La configuration du déclencheur webhook sera implémentée ici',
webhookUrl: 'URL du webhook',
webhookUrlPlaceholder: 'Cliquez sur générer pour créer l\'URL du webhook',
generate: 'Générer',
copy: 'Copier',
test: 'Test',
urlGenerated: 'URL du webhook générée avec succès',
urlGenerationFailed: 'Échec de la génération de lURL du webhook',
urlCopied: 'URL copiée dans le presse-papiers',
method: 'Méthode',
contentType: 'Type de contenu',
queryParameters: 'Paramètres de requête',
headerParameters: 'Paramètres d\'en-tête',
requestBodyParameters: 'Paramètres du corps de la requête',
parameterName: 'Nom de variable',
varName: 'Nom de variable',
varType: 'Type',
varNamePlaceholder: 'Entrez le nom de la variable...',
required: 'Requis',
addParameter: 'Ajouter',
addHeader: 'Ajouter',
noParameters: 'Aucun paramètre configuré',
noQueryParameters: 'Aucun paramètre de requête configuré',
noHeaders: 'Aucun en-tête configuré',
noBodyParameters: 'Aucun paramètre de corps configuré',
debugUrlTitle: 'Pour les tests, utilisez toujours cette URL',
debugUrlCopy: 'Cliquez pour copier',
debugUrlCopied: 'Copié !',
debugUrlPrivateAddressWarning: 'Cette URL semble être une adresse interne, ce qui peut provoquer l\'échec des requêtes webhook. Vous pouvez changer TRIGGER_URL pour une adresse publique.',
errorHandling: 'Gestion des erreurs',
errorStrategy: 'Gestion des erreurs',
responseConfiguration: 'Réponse',
asyncMode: 'Mode asynchrone',
statusCode: 'Code d\'état',
responseBody: 'Corps de la réponse',
responseBodyPlaceholder: 'Écrivez ici le corps de votre réponse',
headers: 'En-têtes',
validation: {
webhookUrlRequired: 'L\'URL du webhook est requise',
invalidParameterType: 'Type de paramètre invalide "{{type}}" pour le paramètre "{{name}}"',
},
},
},
tracing: {
stopBy: 'Arrêté par {{user}}',
@ -1037,6 +1211,18 @@ const translation = {
exportToolTip: 'Exporter la variable en tant que fichier',
largeData: 'Données volumineuses, aperçu en lecture seule. Exporter pour tout afficher.',
largeDataNoExport: 'Données volumineuses - aperçu partiel uniquement',
listening: {
title: 'En attente d\'événements provenant des déclencheurs...',
tip: 'Vous pouvez maintenant simuler des déclencheurs d\'événements en envoyant des requêtes de test au point de terminaison HTTP {{nodeName}} ou l\'utiliser comme URL de rappel pour le débogage en direct des événements. Toutes les sorties peuvent être consultées directement dans l\'Inspecteur de Variables.',
tipPlugin: 'Vous pouvez maintenant créer des événements dans {{- pluginName}} et récupérer les résultats de ces événements dans l\'Inspecteur de Variables.',
tipSchedule: 'Écoute des événements des déclencheurs de planification.\nProchaine exécution planifiée : {{nextTriggerTime}}',
tipFallback: 'Attendez les événements de déclenchement entrants. Les sorties apparaîtront ici.',
defaultNodeName: 'ce déclencheur',
defaultPluginName: 'ce plugin déclenche',
defaultScheduleTime: 'Non configuré',
selectedTriggers: 'déclencheurs sélectionnés',
stopButton: 'Arrête',
},
},
settingsTab: 'Paramètres',
lastRunTab: 'Dernière Exécution',
@ -1054,11 +1240,52 @@ const translation = {
noMatchingInputsFound: 'Aucune entrée correspondante trouvée dans la dernière exécution.',
copyLastRunError: 'Échec de la copie des entrées de la dernière exécution',
lastOutput: 'Dernière sortie',
lastRunInputsCopied: '{{count}} entrée(s) copiée(s) de la dernière exécution',
},
sidebar: {
exportWarning: 'Exporter la version enregistrée actuelle',
exportWarningDesc: 'Cela exportera la version actuelle enregistrée de votre flux de travail. Si vous avez des modifications non enregistrées dans l\'éditeur, veuillez d\'abord les enregistrer en utilisant l\'option d\'exportation dans le canevas du flux de travail.',
},
publishLimit: {
startNodeTitlePrefix: 'Mettre à niveau vers',
startNodeTitleSuffix: 'débloquez des déclencheurs illimités par flux de travail',
startNodeDesc: 'Vous avez atteint la limite de 2 déclencheurs par flux de travail pour ce plan. Passez à une version supérieure pour publier ce flux de travail.',
},
error: {
startNodeRequired: 'Veuillez d\'abord ajouter un nœud de départ avant {{operation}}',
operations: {
connectingNodes: 'connecter des nœuds',
addingNodes: 'ajout de nœuds',
modifyingWorkflow: 'modification du flux de travail',
updatingWorkflow: 'mise à jour du flux de travail',
},
},
customWebhook: 'Webhook personnalisé',
difyTeam: 'Équipe Dify',
triggerStatus: {
enabled: 'DÉCLENCHEUR',
disabled: 'DÉCLENCHEUR • DÉSACTIVÉ',
},
entryNodeStatus: {
enabled: 'DÉMARRER',
disabled: 'DÉMARRER • DÉSACTIVÉ',
},
onboarding: {
title: 'Sélectionnez un nœud de départ pour commencer',
description: 'Différents nœuds de départ ont différentes capacités. Ne vous inquiétez pas, vous pouvez toujours les changer plus tard.',
userInputFull: 'Entrée utilisateur (nœud de départ original)',
userInputDescription: 'Nœud de démarrage qui permet de définir des variables de saisie utilisateur, avec comme capacités d\'outil l\'application web, l\'API de service, le serveur MCP et le workflow.',
trigger: 'Déclencheur',
triggerDescription: 'Les déclencheurs peuvent servir de nœud de départ d\'un flux de travail, comme les tâches planifiées, les webhooks personnalisés ou les intégrations avec d\'autres applications.',
back: 'Retour',
learnMore: 'En savoir plus',
aboutStartNode: 'à propos du nœud de départ.',
escTip: {
press: 'Appuyer',
key: 'Échap',
toDismiss: 'rejeter',
},
},
}
export default translation

View File

@ -372,6 +372,7 @@ const translation = {
'unitPlaceholder': 'संख्याओं के बाद इकाइयों को प्रदर्शित करें, जैसे कि टोकन',
'placeholderPlaceholder': 'जब फ़ील्ड खाली हो तो दिखाने के लिए पाठ दर्ज करें',
'defaultValuePlaceholder': 'फ़ील्ड को पूर्व-जनित करने के लिए डिफ़ॉल्ट मान दर्ज करें',
'maxNumberTip': 'दस्तावेज़ < {{docLimit}}, छवि < {{imgLimit}}, ऑडियो < {{audioLimit}}, वीडियो < {{videoLimit}}',
},
vision: {
name: 'विजन',

View File

@ -19,6 +19,7 @@ const translation = {
tokens: 'टोकन',
user: 'अंतिम उपयोगकर्ता या खाता',
version: 'संस्करण',
triggered_from: 'के द्वारा ट्रिगर',
},
pagination: {
previous: 'पिछला',
@ -99,6 +100,15 @@ const translation = {
iteration: 'चलना',
},
dateFormat: 'MM/DD/YYYY',
triggerBy: {
debugging: 'डिबगिंग',
appRun: 'वेबएप',
webhook: 'वेबहूक',
schedule: 'अनुसूची',
plugin: 'प्लगइन',
ragPipelineRun: 'RAG पाइपलाइन',
ragPipelineDebugging: 'RAG डीबगिंग',
},
}
export default translation

View File

@ -125,7 +125,11 @@ const translation = {
},
},
launch: 'लॉन्च',
enableTooltip: {},
enableTooltip: {
description: 'इस सुविधा को सक्षम करने के लिए कृपया कैनवास में एक उपयोगकर्ता इनपुट नोड जोड़ें। (शायद यह ड्राफ्ट में पहले से मौजूद हो, प्रकाशित करने के बाद प्रभावी होगा)',
learnMore: 'और जानें',
},
title: 'वेब एप',
},
apiInfo: {
title: 'बैकएंड सेवा एपीआई',
@ -137,7 +141,14 @@ const translation = {
running: 'सेवा में',
disable: 'अक्षम करें',
},
triggerInfo: {},
triggerInfo: {
title: 'ट्रिगर्स',
explanation: 'वर्कफ़्लो ट्रिगर प्रबंधन',
triggersAdded: '{{count}} ट्रिगर्स जोड़े गए',
noTriggerAdded: 'कोई ट्रिगर जोड़ा नहीं गया',
triggerStatusDescription: 'ट्रिगर नोड की स्थिति यहाँ दिखाई देगी। (शायद पहले से ड्राफ्ट में मौजूद है, प्रकाशित करने के बाद प्रभावी होगी)',
learnAboutTriggers: 'ट्रिगर्स के बारे में जानें',
},
disableTooltip: {
triggerMode: 'ट्रिगर नोड मोड में {{feature}} फ़ीचर समर्थित नहीं है।',
},

View File

@ -106,6 +106,8 @@ const translation = {
triggerEvents: {
unlimited: 'असीमित ट्रिगर इवेंट्स',
tooltip: 'घटनाओं की संख्या जो प्लगइन, शेड्यूल या वेबहुक ट्रिगर के माध्यम से स्वतः वर्कफ़्लो शुरू करती हैं।',
sandbox: '{{count,number}} ट्रिगर इवेंट्स',
professional: '{{count,number}} ट्रिगर इवेंट/महीना',
},
workflowExecution: {
standard: 'मानक कार्यप्रवाह निष्पादन',
@ -115,6 +117,11 @@ const translation = {
},
startNodes: {
unlimited: 'असीमित ट्रिगर्स/कार्यप्रवाह',
limited: '{{count}} ट्रिगर्स/वर्कफ़्लो तक',
},
title: {
plans: 'योजनाएँ',
description: 'उस योजना का चयन करें जो आपकी टीम की जरूरतों के लिए सबसे उपयुक्त हो।',
},
},
plans: {
@ -140,16 +147,14 @@ const translation = {
description:
'बड़े पैमाने पर मिशन-क्रिटिकल सिस्टम के लिए पूर्ण क्षमताएं और समर्थन प्राप्त करें।',
includesTitle: 'टीम योजना में सब कुछ, साथ में:',
features: {
},
features: ['एंटरप्राइज-ग्रेड स्केलेबल डिप्लॉयमेंट समाधान', 'व्यावसायिक लाइसेंस प्राधिकरण', 'विशेष एंटरप्राइज सुविधाएँ', 'कई कार्यक्षेत्र और एंटरप्राइज प्रबंधन', 'एसएसओ', 'डिफ़ी पार्टनर्स द्वारा बातचीत किए गए SLA', 'उन्नत सुरक्षा और नियंत्रण', 'Dify द्वारा आधिकारिक रूप से अपडेट और रखरखाव', 'पेशेवर तकनीकी समर्थन'],
price: 'कस्टम',
btnText: 'बिक्री से संपर्क करें',
priceTip: 'वार्षिक बिलिंग केवल',
for: 'बड़े आकार की टीमों के लिए',
},
community: {
features: {
},
features: ['सभी मुख्य फीचर्स सार्वजनिक रिपॉज़िटरी के तहत जारी किए गए', 'एकल कार्यक्षेत्र', 'Dify ओपन सोर्स लाइसेंस का पालन करता है'],
description: 'व्यक्तिगत उपयोगकर्ताओं, छोटे टीमों, या गैर-व्यावसायिक परियोजनाओं के लिए',
for: 'व्यक्तिगत उपयोगकर्ताओं, छोटे टीमों, या गैर-व्यावसायिक परियोजनाओं के लिए',
includesTitle: 'निःशुल्क सुविधाएँ:',
@ -158,8 +163,7 @@ const translation = {
price: 'मुक्त',
},
premium: {
features: {
},
features: ['विभिन्न क्लाउड प्रदाताओं द्वारा स्व-प्रबंधित विश्वसनीयता', 'एकल कार्यक्षेत्र', 'वेबऐप लोगो और ब्रांडिंग अनुकूलन', 'प्राथमिकता ईमेल और चैट सहायता'],
priceTip: 'क्लाउड मार्केटप्लेस के आधार पर',
name: 'प्रीमियम',
btnText: 'प्रीमियम प्राप्त करें',
@ -195,6 +199,7 @@ const translation = {
vectorSpaceTooltip: 'उच्च गुणवत्ता वाले अनुक्रमण मोड के साथ दस्तावेज़ों के लिए ज्ञान डेटा स्टोरेज संसाधनों का उपभोग होगा। जब ज्ञान डेटा स्टोरेज सीमा तक पहुँच जाएगा, तो नए दस्तावेज़ नहीं अपलोड किए जाएंगे।',
perMonth: 'प्रति माह',
triggerEvents: 'उत्तेजक घटनाएँ',
resetsIn: '{{count,number}} दिनों में रीसेट होता है',
},
teamMembers: 'टीम के सदस्य',
triggerLimitModal: {

View File

@ -65,6 +65,12 @@ const translation = {
yes: 'हाँ',
deleteConfirmTitle: 'हटाएं?',
confirmAction: 'कृपया अपनी क्रिया की पुष्टि करें।',
noSearchResults: 'कोई {{content}} नहीं मिला',
resetKeywords: 'कीवर्ड रीसेट करें',
selectCount: '{{count}} चयनित',
searchCount: '{{count}} {{content}} खोजें',
noSearchCount: '0 {{content}}',
now: 'अब',
},
errorMsg: {
fieldRequired: '{{field}} आवश्यक है',
@ -73,6 +79,7 @@ const translation = {
placeholder: {
input: 'कृपया दर्ज करें',
select: 'कृपया चयन करें',
search: 'खोजें...',
},
voice: {
language: {
@ -791,6 +798,13 @@ const translation = {
label: {
optional: '(अनिवार्य नहीं)',
},
noData: 'कोई डेटा नहीं',
dynamicSelect: {
error: 'विकल्प लोड करने में विफल',
noData: 'कोई विकल्प उपलब्ध नहीं है',
loading: 'विकल्प लोड हो रहे हैं...',
selected: '{{count}} चयनित',
},
}
export default translation

View File

@ -82,7 +82,10 @@ const translation = {
ok: 'ठीक है',
},
learnMore: 'और जानो',
sort: {},
sort: {
uploadTime: 'अपलोड समय',
hitCount: 'पुनः प्राप्ति गणना',
},
},
metadata: {
title: 'मेटाडेटा',

View File

@ -34,6 +34,7 @@ const translation = {
publishPipeline: {
success: {
message: 'ज्ञान पाइपलाइन प्रकाशित',
tip: '<CustomLink>दस्तावेज़ जोड़ने या प्रबंधित करने के लिए </CustomLink>दस्तावेज़ पर जाएँ।',
},
error: {
message: 'ज्ञान पाइपलाइन प्रकाशित करने में विफल रहा',
@ -56,6 +57,7 @@ const translation = {
details: {
structure: 'संरचना',
structureTooltip: 'चंक संरचना यह निर्धारित करती है कि दस्तावेज कैसे विभाजित और अनुक्रमित होते हैं—सामान्य, माता-पिता- बच्चे, और प्रश्नोत्तर मोड प्रदान करते हुए—और यह प्रत्येक ज्ञान आधार के लिए अद्वितीय होती है।',
createdBy: '{{author}} द्वारा',
},
testRun: {
steps: {
@ -112,23 +114,32 @@ const translation = {
backToDataSource: 'डेटा स्रोत',
characters: 'पात्र',
title: 'दस्तावेज़ जोड़ें',
selectOnlineDocumentTip: '{{count}} पृष्ठों तक प्रक्रिया करें',
selectOnlineDriveTip: '{{count}} फ़ाइलों तक संसाधित करें, प्रत्येक अधिकतम {{fileSize}} MB',
},
documentSettings: {
title: 'डॉक्यूमेंट सेटिंग्स',
},
onlineDocument: {},
onlineDocument: {
pageSelectorTitle: '{{name}} पृष्ठ',
},
onlineDrive: {
breadcrumbs: {
allFiles: 'सभी फ़ाइलें',
searchPlaceholder: 'फाइलें खोजें...',
allBuckets: 'सभी क्लाउड स्टोरेज बकेट्स',
searchResult: '{{folderName}} फ़ोल्डर में {{searchResultsLength}} आइटम खोजें',
},
resetKeywords: 'कीवर्ड रीसेट करें',
emptyFolder: 'यह फ़ोल्डर खाली है',
notSupportedFileType: 'यह फ़ाइल प्रकार समर्थित नहीं है',
emptySearchResult: 'कोई सामान नहीं मिला',
notConnected: '{{name}} कनेक्ट नहीं है',
notConnectedTip: '{{name}} के साथ सिंक करने के लिए, पहले {{name}} से कनेक्शन स्थापित करना आवश्यक है।',
},
credentialSelector: {
name: '{{credentialName}} का {{pluginName}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'पुष्टि',
@ -149,6 +160,7 @@ const translation = {
inputField: 'इनपुट फ़ील्ड',
editPipelineInfo: 'पाइपलाइन जानकारी संपादित करें',
knowledgeDescriptionPlaceholder: 'इस ज्ञान आधार में क्या है इसका वर्णन करें। एक विस्तृत विवरण एआई को डेटा सेट की सामग्री को अधिक सटीकता से एक्सेस करने की अनुमति देता है। यदि खाली है, तो डिफी डिफ़ॉल्ट हिट रणनीति का उपयोग करेगा। (वैकल्पिक)',
configurationTip: '{{pluginName}} कॉन्फ़िगर करें',
}
export default translation

View File

@ -239,6 +239,10 @@ const translation = {
disabled: 'अक्षम',
title: 'सेवा एपीआई',
},
docAllEnabled_one: '{{count}} दस्तावेज़ सक्षम किया गया',
docAllEnabled_other: 'सभी {{count}} दस्तावेज़ सक्षम हैं',
partialEnabled_one: 'कुल {{count}} दस्तावेज़, {{num}} उपलब्ध',
partialEnabled_other: 'कुल {{count}} दस्तावेज़, {{num}} उपलब्ध',
}
export default translation

View File

@ -52,6 +52,7 @@ const translation = {
},
isAboutToExpire: {
summary: 'चिंता मत करो — यह आपके वर्तमान सदस्यता पर प्रभाव नहीं डालेगा, लेकिन जब यह नवीनीकरण होगा तो आपको शिक्षा छूट नहीं मिलेगी जब तक कि आप अपनी स्थिति को फिर से सत्यापित नहीं करते।',
title: 'आपकी शिक्षा स्थिति {{date}} को समाप्त हो जाएगी',
},
stillInEducation: {
title: 'क्या आप अभी भी शिक्षा में हैं?',

View File

@ -28,10 +28,12 @@ const translation = {
viewDetails: 'विवरण देखें',
error: 'कार्यवाही के दौरान त्रुटि हुई',
loading: 'प्रसंस्करण हो रहा है... कृपया प्रतीक्षा करें',
footerTip: 'परीक्षण रन मोड में, {{count}} खंड तक पूर्वावलोकन करें',
},
},
ragToolSuggestions: {
title: 'आरएजी के लिए सुझाव',
noRecommendationPlugins: 'कोई सुझाए गए प्लगइन्स नहीं, और अधिक खोजें <CustomLink>मार्केटप्लेस</CustomLink> में',
},
}

View File

@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'सदस्यताएँ',
listNum: '{{num}} सब्सक्रिप्शन्स',
empty: {
title: 'कोई सदस्यता नहीं',
button: 'नई सब्सक्रिप्शन',
},
createButton: {
oauth: 'OAuth के साथ नई सदस्यता',
apiKey: 'एपीआई कुंजी के साथ नया सब्सक्रिप्शन',
manual: 'नई सदस्यता बनाने के लिए URL चिपकाएँ',
},
createSuccess: 'सब्सक्रिप्शन सफलतापूर्वक बनाया गया',
createFailed: 'सब्सक्रिप्शन बनाने में असफल',
maxCount: 'अधिकतम {{num}} सदस्यताएँ',
selectPlaceholder: 'सदस्यता चुनें',
noSubscriptionSelected: 'कोई सदस्यता नहीं चुनी गई',
subscriptionRemoved: 'सदस्यता हटा दी गई',
list: {
title: 'सदस्यताएँ',
addButton: 'जोड़ें',
tip: 'सब्सक्रिप्शन के माध्यम से इवेंट प्राप्त करें',
item: {
enabled: 'सक्रिय',
disabled: 'विकलांग',
credentialType: {
api_key: 'एपीआई कुंजी',
oauth2: 'OAuth',
unauthorized: 'मैनुअल',
},
actions: {
delete: 'हटाएँ',
deleteConfirm: {
title: 'क्या आप {{name}} को हटा देना चाहते हैं?',
success: 'सदस्यता {{name}} सफलतापूर्वक हटाई गई',
error: 'सदस्यता {{name}} हटाने में असफल',
content: 'एक बार हटा दी जाने के बाद, इस सदस्यता को पुनर्प्राप्त नहीं किया जा सकता। कृपया पुष्टि करें।',
contentWithApps: 'वर्तमान सदस्यता का संदर्भ {{count}} अनुप्रयोगों द्वारा लिया गया है। इसे हटाने से कॉन्फ़िगर किए गए अनुप्रयोग सदस्यता घटनाओं को प्राप्त करना बंद कर देंगे।',
confirm: 'हटाना पुष्टि करें',
cancel: 'रद्द करें',
confirmInputWarning: 'कृपया पुष्टि करने के लिए सही नाम दर्ज करें।',
confirmInputPlaceholder: 'पुष्टि करने के लिए "{{name}}" दर्ज करें।',
confirmInputTip: 'कृपया पुष्टि करने के लिए “{{name}}” दर्ज करें।',
},
},
status: {
active: 'सक्रिय',
inactive: 'निष्क्रिय',
},
usedByNum: '{{num}} वर्कफ़्लो द्वारा उपयोग किया गया',
noUsed: 'कोई वर्कफ़्लो उपयोग नहीं किया गया',
},
},
addType: {
title: 'सदस्यता जोड़ें',
description: 'निर्धारित करने के लिए चुनें कि आप अपनी ट्रिगर सदस्यता कैसे बनाना चाहते हैं',
options: {
apikey: {
title: 'एपीआई कुंजी के साथ बनाएं',
description: 'API क्रेडेंशियल का उपयोग करके स्वचालित रूप से सब्सक्रिप्शन बनाएं',
},
oauth: {
title: 'OAuth के साथ बनाएं',
description: 'सदस्यता बनाने के लिए तृतीय-पक्ष प्लेटफ़ॉर्म के साथ प्राधिकृत करें',
clientSettings: 'OAuth क्लाइंट सेटिंग्स',
clientTitle: 'OAuth क्लाइंट',
default: 'डिफ़ॉल्ट',
custom: 'कस्टम',
},
manual: {
title: 'मैनुअल सेटअप',
description: 'नई सदस्यता बनाने के लिए URL चिपकाएँ',
tip: 'थर्ड-पार्टी प्लेटफ़ॉर्म पर URL मैन्युअली कॉन्फ़िगर करें',
},
},
},
},
modal: {
steps: {
verify: 'सत्यापित करें',
configuration: 'कॉन्फ़िगरेशन',
},
common: {
cancel: 'रद्द करें',
back: 'वापस',
next: 'अगला',
create: 'बनाएँ',
verify: 'सत्यापित करें',
authorize: 'अधिकार देना',
creating: 'बना रहा हूँ...',
verifying: 'सत्यापित किया जा रहा है...',
authorizing: 'अधिकृत किया जा रहा है...',
},
oauthRedirectInfo: 'चूंकि इस टूल प्रदाता के लिए कोई सिस्टम क्लाइंट सीक्रेट्स नहीं मिले, इसलिए इसे मैनुअली सेटअप करने की आवश्यकता है, redirect_uri के लिए कृपया उपयोग करें',
apiKey: {
title: 'एपीआई कुंजी के साथ बनाएं',
verify: {
title: 'क्रेडेंशियल्स सत्यापित करें',
description: 'कृपया पहुँच सत्यापित करने के लिए अपने API क्रेडेंशियल्स प्रदान करें',
error: 'सत्यापन विफल हुआ। कृपया अपनी API कुंजी जांचें।',
success: 'प्रमाण-पत्र सफलतापूर्वक सत्यापित किए गए',
},
configuration: {
title: 'सदस्यता कॉन्फ़िगर करें',
description: 'अपनी सदस्यता सेटिंग्स सेट करें',
},
},
oauth: {
title: 'OAuth के साथ बनाएं',
authorization: {
title: 'OAuth प्राधिकरण',
description: 'अपने खाते तक पहुँचने के लिए Dify को अधिकृत करें',
redirectUrl: 'पुनःमार्गित करें URL',
redirectUrlHelp: 'अपने OAuth ऐप कॉन्फ़िगरेशन में इस URL का उपयोग करें',
authorizeButton: '{{provider}} के साथ प्राधिकृत करें',
waitingAuth: 'अनुमति की प्रतीक्षा कर रहे हैं...',
authSuccess: 'प्राधिकरण सफल',
authFailed: 'OAuth प्राधिकरण जानकारी प्राप्त करने में विफल',
waitingJump: 'अधिकृत, कूदने की प्रतीक्षा कर रहा है',
},
configuration: {
title: 'सदस्यता कॉन्फ़िगर करें',
description: 'अधिकार के बाद अपनी सदस्यता पैरामीटर सेट करें',
success: 'OAuth कॉन्फ़िगरेशन सफल',
failed: 'OAuth कॉन्फ़िगरेशन विफल हुआ',
},
remove: {
success: 'OAuth सफलतापूर्वक हटा दिया गया',
failed: 'OAuth हटाने में विफल',
},
save: {
success: 'OAuth कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया',
},
},
manual: {
title: 'मैनुअल सेटअप',
description: 'अपने वेबहुक सब्सक्रिप्शन को मैन्युअली कॉन्फ़िगर करें',
logs: {
title: 'अनुरोध लॉग',
request: 'अनुरोध',
loading: '{{pluginName}} से अनुरोध की प्रतीक्षा कर रहे हैं...',
},
},
form: {
subscriptionName: {
label: 'सदस्यता का नाम',
placeholder: 'सब्सक्रिप्शन नाम दर्ज करें',
required: 'सदस्यता का नाम आवश्यक है',
},
callbackUrl: {
label: 'कॉलबैक URL',
description: 'यह URL वेबहुक इवेंट प्राप्त करेगा',
tooltip: 'एक सार्वजनिक रूप से सुलभ एन्डपॉइंट प्रदान करें जो ट्रिगर प्रदाता से कॉलबैक अनुरोध प्राप्त कर सके।',
placeholder: 'उत्पादन हो रहा है...',
privateAddressWarning: 'यह URL आंतरिक पता प्रतीत होता है, जिससे वेबहुक अनुरोध विफल हो सकते हैं। आप TRIGGER_URL को एक सार्वजनिक पते में बदल सकते हैं।',
},
},
errors: {
createFailed: 'सब्सक्रिप्शन बनाने में असफल',
verifyFailed: 'प्रमाणीकरण सत्यापित करने में विफल',
authFailed: 'प्राधिकरण असफल',
networkError: 'नेटवर्क त्रुटि, कृपया फिर से प्रयास करें',
},
},
events: {
title: 'उपलब्ध कार्यक्रम',
description: 'इवेंट्स जिन्हें यह ट्रिगर प्लगइन सब्सक्राइब कर सकता है',
empty: 'कोई घटना उपलब्ध नहीं है',
event: 'घटना',
events: 'कार्यक्रम',
actionNum: '{{num}} {{event}} शामिल',
item: {
parameters: '{{count}} पैरामीटर',
noParameters: 'कोई पैरामीटर नहीं',
},
output: 'आउटपुट',
},
node: {
status: {
warning: 'विच्छेद करें',
},
},
}
export default translation

View File

@ -7,6 +7,7 @@ const translation = {
tools: 'उपकरण',
agents: 'एजेंट रणनीतियाँ',
datasources: 'डेटा स्रोत',
triggers: 'ट्रिगर्स',
},
categorySingle: {
extension: 'विस्तार',
@ -15,6 +16,7 @@ const translation = {
agent: 'एजेंट रणनीति',
model: 'मॉडल',
datasource: 'डेटा स्रोत',
trigger: 'ट्रिगर',
},
list: {
source: {
@ -45,6 +47,7 @@ const translation = {
install: 'स्थापित करें',
detail: 'विवरण',
update: 'अपडेट',
back: 'वापस',
},
toolSelector: {
uninstalledTitle: 'उपकरण स्थापित नहीं है',
@ -336,6 +339,12 @@ const translation = {
excludeUpdate:
'निम्नलिखित {{num}} प्लगइन्स स्वचालित रूप से अपडेट नहीं होंगे',
},
readmeInfo: {
title: 'पढ़ें मुझे',
needHelpCheckReadme: 'मदद चाहिए? README देखें।',
noReadmeAvailable: 'कोई README उपलब्ध नहीं है',
failedToFetch: 'README लाने में असफल',
},
}
export default translation

View File

@ -116,6 +116,15 @@ const translation = {
currentView: 'वर्तमान दृश्य',
currentWorkflow: 'वर्तमान कार्यप्रवाह',
moreActions: 'अधिक क्रियाएँ',
listening: 'सुनना',
chooseStartNodeToRun: 'चलाने के लिए प्रारंभ नोड चुनें',
runAllTriggers: 'सभी ट्रिगर्स चलाएँ',
features: 'विशेषताएँ',
featuresDescription: 'वेब ऐप उपयोगकर्ता अनुभव को बढ़ाएं',
featuresDocLink: 'और जानें',
needAdd: '{{node}} नोड को जोड़ा जाना चाहिए',
needStartNode: 'कम से कम एक प्रारंभ नोड जोड़ा जाना चाहिए',
workflowAsToolDisabledHint: 'सबसे नया वर्कफ़्लो प्रकाशित करें और इसे टूल के रूप में कॉन्फ़िगर करने से पहले एक कनेक्टेड यूज़र इनपुट नोड सुनिश्चित करें।',
},
env: {
envPanelTitle: 'पर्यावरण चर',
@ -222,6 +231,7 @@ const translation = {
rerankModelRequired: 'Rerank मॉडल चालू करने से पहले, कृपया पुष्टि करें कि मॉडल को सेटिंग्स में सफलतापूर्वक कॉन्फ़िगर किया गया है।',
toolParameterRequired: '{{field}}: पैरामीटर [{{param}}] आवश्यक है',
noValidTool: '{{field}} कोई मान्य उपकरण चयनित नहीं किया गया',
startNodeRequired: 'कृपया {{operation}} से पहले पहले एक स्टार्ट नोड जोड़ें',
},
singleRun: {
testRun: 'परीक्षण रन',
@ -253,6 +263,21 @@ const translation = {
'allAdded': 'सभी जोड़े गए',
'sources': 'स्रोत',
'searchDataSource': 'डेटा स्रोत की खोज करें',
'start': 'शुरू करें',
'searchTrigger': 'खोज ट्रिगर्स...',
'allTriggers': 'सभी ट्रिगर्स',
'noPluginsFound': 'कोई प्लगइन नहीं मिला',
'requestToCommunity': 'समुदाय से अनुरोध',
'featuredTools': 'विशेष रूप से प्रदर्शित',
'showMoreFeatured': 'और दिखाएं',
'showLessFeatured': 'कम दिखाएं',
'installed': 'स्थापित',
'pluginByAuthor': '{{author}} द्वारा',
'usePlugin': 'उपकरण चुनें',
'hideActions': 'उपकरण छुपाएँ',
'noFeaturedPlugins': 'मार्केटप्लेस में और उपकरणों की खोज करें',
'noFeaturedTriggers': 'मार्केटप्लेस में और ट्रिगर खोजें',
'startDisabledTip': 'ट्रिगर नोड और उपयोगकर्ता इनपुट नोड परस्पर विशेष हैं।',
},
blocks: {
'start': 'प्रारंभ',
@ -279,6 +304,10 @@ const translation = {
'loop-start': 'लूप प्रारंभ',
'knowledge-index': 'ज्ञान आधार',
'datasource': 'डेटा स्रोत',
'originalStartNode': 'मूल प्रारंभ नोड',
'trigger-schedule': 'अनुसूची ट्रिगर',
'trigger-webhook': 'वेबहूक ट्रिगर',
'trigger-plugin': 'प्लगइन ट्रिगर',
},
blocksAbout: {
'start': 'वर्कफ़्लो लॉन्च करने के लिए प्रारंभिक पैरामीटर को परिभाषित करें',
@ -311,6 +340,9 @@ const translation = {
'loop-end': '"ब्रेक" के समान। इस नोड में कोई विन्यास आइटम नहीं हैं। जब लूप का शरीर इस नोड पर पहुँचता है, तो लूप समाप्त होता है।',
'knowledge-index': 'ज्ञान आधार के बारे में',
'datasource': 'डेटा स्रोत के बारे में',
'trigger-schedule': 'समय-आधारित वर्कफ़्लो ट्रिगर जो वर्कफ़्लो को शेड्यूल पर शुरू करता है',
'trigger-webhook': 'वेबहुक ट्रिगर थर्ड-पार्टी सिस्टम्स से HTTP पुश प्राप्त करता है ताकि वर्कफ़्लो को स्वचालित रूप से ट्रिगर किया जा सके।',
'trigger-plugin': 'थर्ड-पार्टी इंटीग्रेशन ट्रिगर जो बाहरी प्लेटफ़ॉर्म घटनाओं से वर्कफ़्लो शुरू करता है',
},
operator: {
zoomIn: 'ज़ूम इन',
@ -352,6 +384,8 @@ const translation = {
maximize: 'कैनवास का अधिकतम लाभ उठाएँ',
scrollToSelectedNode: 'चुने गए नोड पर स्क्रॉल करें',
optional_and_hidden: '(वैकल्पिक और छिपा हुआ)',
goTo: 'जाओ',
startNode: 'प्रारंभ नोड',
},
nodes: {
common: {
@ -807,6 +841,8 @@ const translation = {
parallelPanelDesc: 'समानांतर मोड में, पुनरावृत्ति में कार्य समानांतर निष्पादन का समर्थन करते हैं।',
MaxParallelismDesc: 'अधिकतम समांतरता का उपयोग एकल पुनरावृत्ति में एक साथ निष्पादित कार्यों की संख्या को नियंत्रित करने के लिए किया जाता है।',
answerNodeWarningDesc: 'समानांतर मोड चेतावनी: उत्तर नोड्स, वार्तालाप चर असाइनमेंट, और पुनरावृत्तियों के भीतर लगातार पढ़ने/लिखने की कार्रवाई अपवाद पैदा कर सकती है।',
flattenOutput: 'आउटपुट को सपाट करें',
flattenOutputDesc: 'जब सक्षम किया जाता है, यदि सभी पुनरावृत्ति आउटपुट सरणियाँ हैं, तो उन्हें एक ही सरणी में समतल कर दिया जाएगा। जब अक्षम किया जाता है, तो आउटपुट घोंसले वाली सरणी संरचना बनाए रखेगा।',
},
note: {
addNote: 'नोट जोड़ें',
@ -983,6 +1019,144 @@ const translation = {
rerankingModelIsInvalid: 'पुनः क्रमांकन मॉडल अमान्य है',
embeddingModelIsInvalid: 'एम्बेडिंग मॉडल अमान्य है',
},
triggerPlugin: {
authorized: 'अधिकृत',
notConfigured: 'कॉन्फ़िगर नहीं किया गया',
notAuthorized: 'अधिकृत नहीं',
selectSubscription: 'सदस्यता चुनें',
availableSubscriptions: 'उपलब्ध सदस्यताएँ',
addSubscription: 'नई सदस्यता जोड़ें',
removeSubscription: 'सदस्यता हटाएँ',
subscriptionRemoved: 'सब्सक्रिप्शन सफलतापूर्वक हटा दिया गया',
error: 'त्रुटि',
configuration: 'कॉन्फ़िगरेशन',
remove: 'हटाएँ',
or: 'या',
useOAuth: 'OAuth का उपयोग करें',
useApiKey: 'API कुंजी का उपयोग करें',
authenticationFailed: 'प्रमाणीकरण विफल',
authenticationSuccess: 'प्रमाणीकरण सफल',
oauthConfigFailed: 'OAuth कॉन्फ़िगरेशन विफल हुआ',
configureOAuthClient: 'OAuth क्लाइंट कॉन्फ़िगर करें',
oauthClientDescription: 'प्रमाणीकरण सक्षम करने के लिए OAuth क्लाइंट क्रेडेंशियल्स कॉन्फ़िगर करें',
oauthClientSaved: 'OAuth क्लाइंट कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया',
configureApiKey: 'एपीआई कुंजी कॉन्फ़िगर करें',
apiKeyDescription: 'प्रमाणीकरण के लिए एपीआई कुंजी क्रेडेंशियल कॉन्फ़िगर करें',
apiKeyConfigured: 'एपीआई कुंजी सफलतापूर्वक कॉन्फ़िगर की गई',
configurationFailed: 'कॉन्फ़िगरेशन असफल हुआ',
failedToStart: 'प्रमाणीकरण प्रवाह शुरू करने में विफल',
credentialsVerified: 'प्रमाण-पत्र सफलतापूर्वक सत्यापित किए गए',
credentialVerificationFailed: 'प्रमाणीकरण विफल हुआ',
verifyAndContinue: 'सत्यापित करें और जारी रखें',
configureParameters: 'पैरामीटर कॉन्फ़िगर करें',
parametersDescription: 'ट्रिगर पैरामीटर और गुणों को कॉन्फ़िगर करें',
configurationComplete: 'कॉन्फ़िगरेशन पूरा',
configurationCompleteDescription: 'आपका ट्रिगर सफलतापूर्वक कॉन्फ़िगर किया गया है',
configurationCompleteMessage: 'आपका ट्रिगर कॉन्फ़िगरेशन अब पूरा हो गया है और उपयोग के लिए तैयार है।',
parameters: 'पैरामीटर',
properties: 'संपत्तियाँ',
propertiesDescription: 'इस ट्रिगर के लिए अतिरिक्त कॉन्फ़िगरेशन प्रॉपर्टीज़',
noConfigurationRequired: 'इस ट्रिगर के लिए किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है।',
subscriptionName: 'सदस्यता का नाम',
subscriptionNameDescription: 'इस ट्रिगर सब्सक्रिप्शन के लिए एक अद्वितीय नाम दर्ज करें',
subscriptionNamePlaceholder: 'सब्सक्रिप्शन नाम दर्ज करें...',
subscriptionNameRequired: 'सदस्यता का नाम आवश्यक है',
subscriptionRequired: 'सब्सक्रिप्शन आवश्यक है',
},
triggerSchedule: {
title: 'अनुसूची',
nodeTitle: 'अनुसूची ट्रिगर',
notConfigured: 'कॉन्फ़िगर नहीं किया गया',
useCronExpression: 'क्रोन एक्सप्रेशन का उपयोग करें',
useVisualPicker: 'विज़ुअल पिकर का उपयोग करें',
frequency: {
label: 'आवृत्ति',
hourly: 'प्रति घंटा',
daily: 'दैनिक',
weekly: 'साप्ताहिक',
monthly: 'मासिक',
},
selectFrequency: 'आवृत्ति चुनें',
frequencyLabel: 'आवृत्ति',
nextExecution: 'अगला निष्पादन',
weekdays: 'सप्ताह के दिन',
time: 'समय',
cronExpression: 'क्रॉन एक्सप्रेशन',
nextExecutionTime: 'अगली निष्पादन समय',
nextExecutionTimes: 'अगली 5 निष्पादन समय',
startTime: 'प्रारंभ समय',
executeNow: 'अब निष्पादन',
selectDateTime: 'तारीख़ और समय चुनें',
hours: 'घंटे',
minutes: 'मिनट',
onMinute: 'एक मिनट पर',
days: 'दिन',
lastDay: 'अंतिम दिन',
lastDayTooltip: 'सभी महीनों में 31 दिन नहीं होते। हर महीने का अंतिम दिन चुनने के लिए \'अंतिम दिन\' विकल्प का उपयोग करें।',
mode: 'मोड',
timezone: 'समय क्षेत्र',
visualConfig: 'दृश्य कॉन्फ़िगरेशन',
monthlyDay: 'मासिक दिवस',
executionTime: 'क्रियान्वयन समय',
invalidTimezone: 'अमान्य समय क्षेत्र',
invalidCronExpression: 'अमान्य क्रॉन अभिव्यक्ति',
noValidExecutionTime: 'कोई मान्य निष्पादन समय नहीं निकाला जा सकता',
executionTimeCalculationError: 'निष्पादन समय की गणना करने में असफल',
invalidFrequency: 'अमान्य आवृत्ति',
invalidStartTime: 'अमान्य प्रारंभ समय',
startTimeMustBeFuture: 'आरंभ समय भविष्य में होना चाहिए',
invalidTimeFormat: 'अमान्य समय प्रारूप (अपेक्षित HH:MM AM/PM)',
invalidWeekday: 'अमान्य सप्ताह का दिन: {{weekday}}',
invalidMonthlyDay: 'मासिक दिन 1-31 या "अंतिम" के बीच होना चाहिए',
invalidOnMinute: 'मिनट 0-59 के बीच होना चाहिए',
invalidExecutionTime: 'अमान्य निष्पादन समय',
executionTimeMustBeFuture: 'कार्यन्वयन समय भविष्य में होना चाहिए',
},
triggerWebhook: {
title: 'वेबहूक ट्रिगर',
nodeTitle: '🔗 वेबहूक ट्रिगर',
configPlaceholder: 'Webhook ट्रिगर कॉन्फ़िगरेशन यहाँ लागू किया जाएगा',
webhookUrl: 'वेबहूक URL',
webhookUrlPlaceholder: 'वेबहुक URL बनाने के लिए जनरेट पर क्लिक करें',
generate: 'उत्पन्न करना',
copy: 'कॉपी',
test: 'परीक्षण',
urlGenerated: 'Webhook URL सफलतापूर्वक उत्पन्न किया गया',
urlGenerationFailed: 'वेबहुक URL बनाने में असफल',
urlCopied: 'URL क्लिपबोर्ड में कॉपी किया गया',
method: 'विधि',
contentType: 'सामग्री प्रकार',
queryParameters: 'क्वेरी पैरामीटर्स',
headerParameters: 'हेडर पैरामीटर्स',
requestBodyParameters: 'रिक्वेस्ट बॉडी पैरामीटर्स',
parameterName: 'चर का नाम',
varName: 'चर का नाम',
varType: 'टाइप',
varNamePlaceholder: 'चर नाम दर्ज करें...',
required: 'आवश्यक',
addParameter: 'जोड़ें',
addHeader: 'जोड़ें',
noParameters: 'कोई पैरामीटर कॉन्फ़िगर नहीं किया गया',
noQueryParameters: 'कोई क्वेरी पैरामीटर कॉन्फ़िगर नहीं किया गया',
noHeaders: 'कोई हेडर कॉन्फ़िगर नहीं किया गया',
noBodyParameters: 'कोई बॉडी पैरामीटर कॉन्फ़िगर नहीं किया गया',
debugUrlTitle: 'परीक्षण रन के लिए, हमेशा इस URL का उपयोग करें',
debugUrlCopy: 'कॉपी करने के लिए क्लिक करें',
debugUrlCopied: 'कॉपी किया गया!',
debugUrlPrivateAddressWarning: 'यह URL आंतरिक पता प्रतीत होता है, जिससे वेबहुक अनुरोध विफल हो सकते हैं। आप TRIGGER_URL को एक सार्वजनिक पते में बदल सकते हैं।',
errorHandling: 'त्रुटि प्रबंधन',
errorStrategy: 'त्रुटि प्रबंधन',
responseConfiguration: 'प्रतिक्रिया',
asyncMode: 'असिंक मोड',
statusCode: 'स्थिति कोड',
responseBody: 'प्रतिक्रिया बॉडी',
responseBodyPlaceholder: 'यहाँ अपना उत्तर正文 लिखें',
headers: 'हेडर',
validation: {
webhookUrlRequired: 'Webhook URL आवश्यक है',
invalidParameterType: 'पैरामीटर "{{name}}" के लिए अमान्य पैरामीटर प्रकार "{{type}}"',
},
},
},
tracing: {
stopBy: '{{user}} द्वारा रोका गया',
@ -1057,6 +1231,18 @@ const translation = {
exportToolTip: 'फ़ाइल के रूप में निर्यात चर',
largeDataNoExport: 'विशाल डेटा - केवल आंशिक पूर्वावलोकन',
largeData: 'बड़ा डाटा, केवल पढ़ने के लिए पूर्वावलोकन। सभी देखने के लिए निर्यात करें।',
listening: {
title: 'ट्रिगर से घटनाओं को सुनना...',
tip: 'अब आप टेस्ट अनुरोध भेजकर HTTP {{nodeName}} एंडपॉइंट पर इवेंट ट्रिगर्स का सिमुलेशन कर सकते हैं या इसे लाइव इवेंट डिबगिंग के लिए कॉलबैक URL के रूप में उपयोग कर सकते हैं। सभी आउटपुट सीधे वेरिएबल इंस्पेक्टर में देखे जा सकते हैं।',
tipPlugin: 'अब आप {{- pluginName}} में ईवेंट बना सकते हैं, और वैरिएबल इंस्पेक्टर में इन ईवेंट्स के आउटपुट प्राप्त कर सकते हैं।',
tipSchedule: 'अनुसूची ट्रिगर्स से घटनाओं के लिए सुनना।\nअगली निर्धारित रन: {{nextTriggerTime}}',
tipFallback: 'आगामी ट्रिगर घटनाओं की प्रतीक्षा करें। आउटपुट्स यहाँ दिखाई देंगे।',
defaultNodeName: 'यह ट्रिगर',
defaultPluginName: 'यह प्लगइन ट्रिगर',
defaultScheduleTime: 'कॉन्फ़िगर नहीं किया गया',
selectedTriggers: 'चयनित ट्रिगर्स',
stopButton: 'रुकें',
},
},
settingsTab: 'सेटिंग्स',
lastRunTab: 'अंतिम रन',
@ -1074,11 +1260,52 @@ const translation = {
noMatchingInputsFound: 'अंतिम रन से कोई मेल खाने वाले इनपुट नहीं मिले',
copyLastRunError: 'अंतिम रन इनपुट को कॉपी करने में विफल',
lastOutput: 'अंतिम आउटपुट',
lastRunInputsCopied: '{{count}} इनपुट पिछली रन से कॉपी किए गए',
},
sidebar: {
exportWarning: 'वर्तमान सहेजी गई संस्करण निर्यात करें',
exportWarningDesc: 'यह आपके कार्यप्रवाह का वर्तमान सहेजा हुआ संस्करण निर्यात करेगा। यदि आपके संपादक में कोई असहेजा किए गए परिवर्तन हैं, तो कृपया पहले उन्हें सहेजें, कार्यप्रवाह कैनवास में निर्यात विकल्प का उपयोग करके।',
},
publishLimit: {
startNodeTitlePrefix: 'अपग्रेड करें',
startNodeTitleSuffix: 'प्रत्येक वर्कफ़्लो के लिए असीमित ट्रिगर्स अनलॉक करें',
startNodeDesc: 'इस योजना के लिए आप प्रति वर्कफ़्लो 2 ट्रिगर्स की सीमा तक पहुँच चुके हैं। इस वर्कफ़्लो को प्रकाशित करने के लिए अपग्रेड करें।',
},
error: {
startNodeRequired: 'कृपया {{operation}} से पहले एक प्रारंभ नोड जोड़ें',
operations: {
connectingNodes: 'नोड्स को जोड़ना',
addingNodes: 'नोड जोड़ना',
modifyingWorkflow: 'कार्यप्रवाह संशोधित करना',
updatingWorkflow: 'वर्कफ़्लो को अपडेट करना',
},
},
customWebhook: 'कस्टम वेबहुक',
difyTeam: 'डिफ़ी टीम',
triggerStatus: {
enabled: 'ट्रिगर',
disabled: 'ट्रिगर • अक्षम',
},
entryNodeStatus: {
enabled: 'शुरू',
disabled: 'प्रारंभ • अक्षम',
},
onboarding: {
title: 'शुरू करने के लिए एक प्रारंभिक नोड चुनें',
description: 'विभिन्न प्रारंभिक नोड्स की विभिन्न क्षमताएँ होती हैं। चिंता मत करो, आप उन्हें बाद में हमेशा बदल सकते हैं।',
userInputFull: 'उपयोगकर्ता इनपुट (मूल प्रारंभ नोड)',
userInputDescription: 'स्टार्ट नोड जो उपयोगकर्ता इनपुट वेरिएबल सेट करने की अनुमति देता है, जिसमें टूल क्षमताओं के रूप में वेब ऐप, सर्विस API, MCP सर्वर और वर्कफ़्लो शामिल हैं।',
trigger: 'ट्रिगर',
triggerDescription: 'ट्रिगर वर्कफ़्लो का प्रारंभिक नोड हो सकते हैं, जैसे कि निर्धारित कार्य, कस्टम वेबहुक, या अन्य ऐप्स के साथ एकीकरण।',
back: 'वापस',
learnMore: 'और जानें',
aboutStartNode: 'स्टार्ट नोड के बारे में।',
escTip: {
press: 'दबाएँ',
key: 'एस्केप',
toDismiss: 'अस्वीकार करना',
},
},
}
export default translation

View File

@ -92,6 +92,7 @@ const translation = {
title: 'Anotasi',
name: 'Balas Anotasi',
embeddingModelSwitchTip: 'Model vektorisasi teks anotasi, model switching akan disematkan kembali, menghasilkan biaya tambahan.',
editBy: 'Jawaban diedit oleh {{author}}',
}
export default translation

View File

@ -113,6 +113,7 @@ const translation = {
deleteContextVarTip: 'Variabel ini telah ditetapkan sebagai variabel kueri konteks, dan menghapusnya akan berdampak pada penggunaan normal Pengetahuan. Jika Anda masih perlu menghapusnya, silakan pilih kembali di bagian konteks.',
ok: 'OKE',
noVarTip: 'silakan buat variabel di bawah bagian Variabel',
deleteContextVarTitle: 'Hapus variabel “{{varName}}”?',
},
notSupportSelectMulti: 'Saat ini hanya mendukung satu Pengetahuan',
selectTitle: 'Pilih referensi Pengetahuan',
@ -140,6 +141,7 @@ const translation = {
},
tips: 'Alat menyediakan metode panggilan API standar, mengambil input atau variabel pengguna sebagai parameter permintaan untuk mengkueri data eksternal sebagai konteks.',
title: 'Perkakas',
toolsInUse: '{{count}} alat yang digunakan',
},
conversationHistory: {
editModal: {
@ -150,6 +152,7 @@ const translation = {
description: 'Menetapkan nama awalan untuk peran percakapan',
title: 'Riwayat Percakapan',
learnMore: 'Pelajari lebih lanjut',
tip: 'Riwayat Percakapan tidak diaktifkan, silakan tambahkan <histories> di prompt di atas.',
},
toolbox: {
title: 'TOOLBOX',
@ -316,6 +319,8 @@ const translation = {
waitForResponse: 'Harap tunggu hingga respons terhadap pesan sebelumnya selesai.',
waitForBatchResponse: 'Harap tunggu hingga respons terhadap tugas batch selesai.',
waitForFileUpload: 'Harap tunggu file/file diunggah',
nameOfKeyRequired: 'nama kunci: {{key}} diperlukan',
valueOfVarRequired: 'Nilai {{key}} tidak boleh kosong',
},
warningMessage: {
timeoutExceeded: 'Hasil tidak ditampilkan karena batas waktu. Silakan lihat log untuk mengumpulkan hasil lengkap.',
@ -328,7 +333,13 @@ const translation = {
key: 'Kunci Variabel',
name: 'Nama Bidang Input Pengguna',
},
varKeyError: {},
varKeyError: {
canNoBeEmpty: '{{key}} wajib diisi',
tooLong: '{{key}} terlalu panjang. Tidak boleh lebih dari 30 karakter',
notValid: '{{key}} tidak valid. Hanya boleh berisi huruf, angka, dan garis bawah',
notStartWithNumber: '{{key}} tidak dapat diawali dengan angka',
keyAlreadyExists: '{{key}} sudah ada',
},
otherError: {
queryNoBeEmpty: 'Kueri harus diatur dalam prompt',
historyNoBeEmpty: 'Riwayat percakapan harus diatur dalam prompt',
@ -406,6 +417,9 @@ const translation = {
'startSelectedOption': 'Mulai opsi yang dipilih',
'unitPlaceholder': 'Tampilkan unit setelah angka, misalnya token',
'placeholderPlaceholder': 'Masukkan teks untuk ditampilkan saat bidang kosong',
'description': 'Pengaturan untuk variabel {{varName}}',
'notSet': 'Belum diatur, coba ketik {{input}} di prompt awalan',
'maxNumberTip': 'Dokumen < {{docLimit}}, gambar < {{imgLimit}}, audio < {{audioLimit}}, video < {{videoLimit}}',
},
vision: {
visionSettings: {
@ -418,6 +432,7 @@ const translation = {
uploadLimit: 'Batas Unggahan',
resolution: 'Resolusi',
url: 'URL',
resolutionTooltip: 'res rendah akan memungkinkan model menerima versi gambar resolusi rendah 512 x 512, dan merepresentasikan gambar dengan anggaran 65 token. Ini memungkinkan API memberikan respons lebih cepat dan menggunakan lebih sedikit token input untuk kasus penggunaan yang tidak memerlukan detail tinggi.\n\nres tinggi pertama-tama memungkinkan model melihat gambar resolusi rendah dan kemudian membuat potongan gambar yang lebih detail sebagai kotak 512px berdasarkan ukuran gambar input. Setiap potongan detail menggunakan dua kali anggaran token sehingga totalnya menjadi 129 token.',
},
settings: 'Pengaturan',
description: 'Aktifkan Penglihatan akan memungkinkan model untuk mengambil gambar dan menjawab pertanyaan tentangnya.',
@ -446,6 +461,10 @@ const translation = {
title: 'Pembuka Percakapan',
noDataPlaceHolder: 'Memulai percakapan dengan pengguna dapat membantu AI menjalin hubungan yang lebih dekat dengan mereka dalam aplikasi percakapan.',
tooShort: 'Setidaknya 20 kata prompt awal diperlukan untuk menghasilkan pidato pembuka untuk percakapan.',
placeholder: 'Tulis pesan pembuka Anda di sini, Anda bisa menggunakan variabel, coba ketik {{variable}}.',
openingQuestionPlaceholder: 'Anda bisa menggunakan variabel, coba ketik {{variable}}.',
varTip: 'Anda dapat menggunakan variabel, coba ketik {{variable}}',
notIncludeKey: 'Prompt awal tidak menyertakan variabel: {{key}}. Harap tambahkan ke prompt awal.',
},
modelConfig: {
modeType: {
@ -538,6 +557,8 @@ const translation = {
duplicateModel: 'Duplikat',
result: 'Teks Keluaran',
noResult: 'Output akan ditampilkan di sini.',
promptTip: 'Prompts membimbing respons AI dengan instruksi dan batasan. Masukkan variabel seperti {{input}}. Prompt ini tidak akan terlihat oleh pengguna.',
notSetVar: 'Variabel memungkinkan pengguna untuk memasukkan kata pemicu atau ucapan pembuka saat mengisi formulir. Anda dapat mencoba memasukkan "{{input}}" pada kata pemicu.',
}
export default translation

View File

@ -16,6 +16,7 @@ const translation = {
input: 'Masukan',
status: 'KEADAAN',
runtime: 'WAKTU BERJALAN',
triggered_from: 'DIPICU OLEH',
},
pagination: {
previous: 'Sebelumnya',
@ -24,6 +25,7 @@ const translation = {
empty: {
element: {
title: 'Apakah ada yang ada di sana?',
content: 'Amati dan anotasi interaksi antara pengguna akhir dan aplikasi AI di sini untuk terus meningkatkan akurasi AI. Anda dapat mencoba <shareLink>berbagi</shareLink> atau <testLink>menguji</testLink> Aplikasi Web sendiri, kemudian kembali ke halaman ini.',
},
noChat: 'Belum ada percakapan',
noOutput: 'Tidak ada keluaran',
@ -48,6 +50,7 @@ const translation = {
second: 's',
promptTemplateBeforeChat: 'Templat Prompt Sebelum Obrolan · Sebagai Pesan Sistem',
uploadImages: 'Gambar yang Diunggah',
annotationTip: 'Peningkatan Ditandai oleh {{user}}',
},
filter: {
period: {
@ -66,6 +69,7 @@ const translation = {
annotation: {
all: 'Semua',
not_annotated: 'Tidak Beranotasi',
annotated: 'Peningkatan yang Diberi Catatan ({{count}} item)',
},
ascending: 'Naik',
descending: 'Turun',
@ -94,6 +98,15 @@ const translation = {
promptLog: 'Prompt Log',
workflowSubtitle: 'Log mencatat pengoperasian Automate.',
workflowTitle: 'Log Alur Kerja',
triggerBy: {
debugging: 'Men-debug',
appRun: 'Aplikasi Web',
webhook: 'Webhook',
schedule: 'Jadwal',
plugin: 'Plugin',
ragPipelineRun: 'Rangkaian RAG',
ragPipelineDebugging: 'Debugging RAG',
},
}
export default translation

View File

@ -9,6 +9,7 @@ const translation = {
cloud: {
trial: {
description: 'Kuota uji coba disediakan untuk tujuan pengujian Anda. Sebelum kuota uji coba habis, harap siapkan penyedia model Anda sendiri atau beli kuota tambahan.',
title: 'Anda sedang menggunakan kuota percobaan {{providerName}}.',
},
exhausted: {
title: 'Kuota uji coba Anda telah habis, silakan atur APIKey Anda.',
@ -53,6 +54,7 @@ const translation = {
privacyPolicyPlaceholder: 'Masukkan tautan kebijakan privasi',
customDisclaimerTip: 'Teks penafian khusus akan ditampilkan di sisi klien, memberikan informasi tambahan tentang aplikasi',
copyright: 'Hak cipta',
privacyPolicyTip: 'Membantu pengunjung memahami data yang dikumpulkan aplikasi, lihat <privacyPolicyLink>Kebijakan Privasi Dify</privacyPolicyLink>.',
},
chatColorThemeInverted: 'Terbalik',
invalidPrivacyPolicy: 'Tautan kebijakan privasi tidak valid. Silakan gunakan tautan valid yang dimulai dengan http atau https',
@ -111,7 +113,11 @@ const translation = {
preUseReminder: 'Harap aktifkan aplikasi web sebelum melanjutkan.',
regenerateNotice: 'Apakah Anda ingin membuat ulang URL publik?',
explanation: 'Aplikasi web AI siap pakai',
enableTooltip: {},
enableTooltip: {
description: 'Untuk mengaktifkan fitur ini, harap tambahkan node Input Pengguna ke kanvas. (Mungkin sudah ada di draft, berlaku setelah dipublikasikan)',
learnMore: 'Pelajari lebih lanjut',
},
title: 'Aplikasi Web',
},
apiInfo: {
accessibleAddress: 'Titik Akhir API Layanan',
@ -124,7 +130,14 @@ const translation = {
running: 'Berjalan',
},
title: 'Ikhtisar',
triggerInfo: {},
triggerInfo: {
title: 'Pemicu',
explanation: 'Manajemen pemicu alur kerja',
triggersAdded: '{{count}} Pemicu ditambahkan',
noTriggerAdded: 'Tidak ada pemicu yang ditambahkan',
triggerStatusDescription: 'Status node pemicu muncul di sini. (Mungkin sudah ada di draf, berlaku setelah dipublikasikan)',
learnAboutTriggers: 'Pelajari tentang Pemicu',
},
disableTooltip: {
triggerMode: 'Fitur {{feature}} tidak didukung dalam mode Node Pemicu.',
},

View File

@ -69,6 +69,8 @@ const translation = {
useTemplate: 'Gunakan template ini',
appCreateDSLErrorPart2: 'Apakah Anda ingin melanjutkan?',
import: 'Mengimpor',
foundResult: 'Hasil {{count}}',
foundResults: 'Hasil {{count}}',
},
newAppFromTemplate: {
sidebar: {
@ -150,6 +152,9 @@ const translation = {
databricksHost: 'URL Workspace Databricks',
personalAccessToken: 'Token Akses Pribadi (lama)',
password: 'Kata sandi',
placeholder: 'Masukkan {{key}} Anda',
viewDocsLink: 'Lihat dokumen {{key}}',
removeConfirmTitle: 'Hapus konfigurasi {{key}}?',
},
expand: 'Memperluas',
disabledTip: 'Silakan konfigurasi penyedia terlebih dahulu',
@ -218,6 +223,10 @@ const translation = {
description: 'Menetapkan izin akses aplikasi web',
title: 'Kontrol Akses Aplikasi Web',
accessLabel: 'Siapa yang memiliki akses',
groups_one: 'GRUP {{count}}',
groups_other: '{{count}} KELOMPOK',
members_one: '{{count}} ANGGOTA',
members_other: '{{count}} ANGGOTA',
},
publishApp: {
notSetDesc: 'Saat ini tidak ada yang dapat mengakses aplikasi web. Silakan atur izin.',
@ -260,6 +269,7 @@ const translation = {
noPluginsFound: 'Tidak ada plugin yang ditemukan',
noKnowledgeBasesFound: 'Tidak ada basis pengetahuan yang ditemukan',
tryDifferentTerm: 'Coba istilah penelusuran lain',
trySpecificSearch: 'Coba {{shortcuts}} untuk pencarian spesifik',
},
groups: {
apps: 'Apps',
@ -288,6 +298,9 @@ const translation = {
startTyping: 'Mulai mengetik untuk mencari',
selectToNavigate: 'Pilih untuk menavigasi',
pressEscToClose: 'Tekan ESC untuk menutup',
resultCount: 'hasil {{count}}',
resultCount_other: 'hasil {{count}}',
inScope: 'di {{scope}}s',
},
createApp: 'BUAT APLIKASI',
accessControl: 'Kontrol Akses Aplikasi Web',

View File

@ -8,6 +8,7 @@ const translation = {
annotationQuota: 'Kuota Anotasi',
perMonth: 'per bulan',
triggerEvents: 'Pemicu Acara',
resetsIn: 'Diatur ulang dalam {{count,number}} hari',
},
upgradeBtn: {
encourage: 'Tingkatkan Sekarang',
@ -42,9 +43,12 @@ const translation = {
},
messageRequest: {
tooltip: 'Kredit pesan disediakan untuk membantu Anda mencoba berbagai model OpenAI dengan mudah di Dify. Kredit digunakan berdasarkan jenis model. Setelah habis, Anda dapat beralih ke kunci API OpenAI Anda sendiri.',
title: 'kredit pesan {{count,number}}',
titlePerMonth: '{{count,number}} kredit pesan/bulan',
},
annotatedResponse: {
tooltip: 'Pengeditan manual dan anotasi respons memberikan kemampuan menjawab pertanyaan berkualitas tinggi yang dapat disesuaikan untuk aplikasi. (Hanya berlaku di aplikasi Chat)',
title: 'Batas Kuota Anotasi {{count,number}}',
},
mostPopular: 'Populer',
free: 'Bebas',
@ -93,6 +97,8 @@ const translation = {
triggerEvents: {
unlimited: 'Peristiwa Pemicu Tak Terbatas',
tooltip: 'Jumlah peristiwa yang secara otomatis memulai alur kerja melalui pemicu Plugin, Jadwal, atau Webhook.',
sandbox: '{{count,number}} Memicu Peristiwa',
professional: '{{count,number}} Pemicu Peristiwa/bulan',
},
workflowExecution: {
priority: 'Eksekusi Alur Kerja Prioritas',
@ -102,7 +108,21 @@ const translation = {
},
startNodes: {
unlimited: 'Pemicu/alur kerja tanpa batas',
limited: 'Hingga {{count}} Pemicu/alur kerja',
},
title: {
plans: 'rencana',
description: 'Pilih paket yang paling sesuai dengan kebutuhan tim Anda.',
},
teamWorkspace: 'Ruang Kerja Tim {{count,number}}',
teamMember_one: 'Anggota Tim {{count,number}}',
teamMember_other: 'Anggota Tim {{count,number}}',
buildApps: 'Aplikasi {{count,number}}',
documents: '{{count,number}} Dokumen Pengetahuan',
vectorSpace: '{{size}} Penyimpanan Data Pengetahuan',
documentsRequestQuota: '{{count,number}} Permintaan Pengetahuan/menit',
apiRateLimitUnit: '{{count,number}}',
logsHistory: '{{days}} Riwayat log',
},
plans: {
sandbox: {
@ -121,8 +141,7 @@ const translation = {
for: 'Untuk Tim Berukuran Menengah',
},
community: {
features: {
},
features: ['Semua Fitur Inti Dirilis di Bawah Repositori Publik', 'Ruang Kerja Tunggal', 'Mematuhi Lisensi Sumber Terbuka Dify'],
price: 'Bebas',
for: 'Untuk Pengguna Individu, Tim Kecil, atau Proyek Non-Komersial',
name: 'Masyarakat',
@ -131,8 +150,7 @@ const translation = {
includesTitle: 'Fitur Gratis:',
},
premium: {
features: {
},
features: ['Keandalan yang Dikelola Sendiri oleh Berbagai Penyedia Cloud', 'Ruang Kerja Tunggal', 'Kostumisasi Logo & Merek WebApp', 'Dukungan Email & Obrolan Prioritas'],
name: 'Premi',
price: 'Scalable',
priceTip: 'Berdasarkan Cloud Marketplace',
@ -143,8 +161,7 @@ const translation = {
btnText: 'Dapatkan Premium di',
},
enterprise: {
features: {
},
features: ['Solusi Penerapan Skala Besar Kelas Perusahaan', 'Otorisasi Lisensi Komersial', 'Fitur Eksklusif Perusahaan', 'Beberapa Ruang Kerja & Manajemen Perusahaan', 'SSO', 'SLA yang dinegosiasikan oleh Mitra Dify', 'Keamanan & Kontrol Lanjutan', 'Pembaruan dan Pemeliharaan oleh Dify Secara Resmi', 'Dukungan Teknis Profesional'],
includesTitle: 'Semuanya mulai dari Premium, ditambah:',
btnText: 'Hubungi Sales',
price: 'Adat',

View File

@ -71,13 +71,21 @@ const translation = {
confirmAction: 'Silakan konfirmasi tindakan Anda.',
yes: 'Ya',
no: 'Tidak',
noSearchResults: 'Tidak ada {{content}} yang ditemukan',
resetKeywords: 'Atur ulang kata kunci',
selectCount: '{{count}} Dipilih',
searchCount: 'Temukan {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'Sekarang',
},
errorMsg: {
urlError: 'URL harus dimulai dengan http:// atau https://',
fieldRequired: '{{field}} wajib diisi',
},
placeholder: {
select: 'Silakan pilih',
input: 'Silakan masuk',
search: 'Cari...',
},
voice: {
language: {
@ -132,6 +140,7 @@ const translation = {
presence_penalty: 'Penalti kehadiran',
presence_penaltyTip: 'Berapa banyak yang harus menghukum token baru berdasarkan apakah mereka muncul dalam teks sejauh ini.\nMeningkatkan kemungkinan model untuk membicarakan topik baru.',
temperatureTip: 'Mengontrol keacakan: Menurunkan menghasilkan lebih sedikit penyelesaian acak. Saat suhu mendekati nol, model akan menjadi deterministik dan berulang.',
setToCurrentModelMaxTokenTip: 'Token maksimum diperbarui menjadi 80% dari token maksimum model saat ini {{maxToken}}.',
},
tone: {
Precise: 'Tepat',
@ -214,6 +223,11 @@ const translation = {
verifyEmail: 'Memverifikasi email Anda saat ini',
unAvailableEmail: 'Email ini tidak tersedia untuk sementara.',
authTip: 'Setelah email Anda diubah, akun Google atau GitHub yang ditautkan ke email lama Anda tidak akan dapat lagi masuk ke akun ini.',
content1: 'Jika Anda melanjutkan, kami akan mengirim kode verifikasi ke <email>{{email}}</email> untuk autentikasi ulang.',
content2: 'Email Anda saat ini adalah <email>{{email}}</email>. Kode verifikasi telah dikirim ke alamat email ini.',
content4: 'Kami baru saja mengirimkan kode verifikasi sementara kepada Anda ke <email>{{email}}</email>.',
changeTo: 'Ubah ke {{email}}',
resendCount: 'Kirim ulang dalam {{count}} detik',
},
account: 'Rekening',
langGeniusAccount: 'Data akun',
@ -249,6 +263,7 @@ const translation = {
password: 'Kata sandi',
deleteTip: 'Harap dicatat, setelah dikonfirmasi, sebagai Pemilik Ruang Kerja apa pun, ruang kerja Anda akan dijadwalkan dalam antrean untuk penghapusan permanen, dan semua data pengguna Anda akan diantri untuk penghapusan permanen.',
workspaceIcon: 'Ikon Ruang Kerja',
showAppLength: 'Tampilkan {{length}} aplikasi',
},
members: {
transferModal: {
@ -265,6 +280,10 @@ const translation = {
transferLabel: 'Mentransfer kepemilikan ruang kerja ke',
resend: 'Kirim Ulang',
transferPlaceholder: 'Pilih anggota ruang kerja...',
warning: 'Anda akan mentransfer kepemilikan “{{workspace}}”. Ini akan berlaku segera dan tidak dapat dibatalkan.',
sendTip: 'Jika Anda melanjutkan, kami akan mengirim kode verifikasi ke <email>{{email}}</email> untuk autentikasi ulang.',
verifyContent: 'Email Anda saat ini adalah <email>{{email}}</email>.',
resendCount: 'Kirim ulang dalam {{count}} detik',
},
lastActive: 'TERAKHIR AKTIF',
owner: 'Pemilik',
@ -305,6 +324,7 @@ const translation = {
editorTip: 'Dapat membangun & mengedit aplikasi',
admin: 'Admin',
normalTip: 'Hanya dapat menggunakan aplikasi, tidak dapat membuat aplikasi',
invitedAsRole: 'Diundang sebagai pengguna {{role}}',
},
feedback: {
subtitle: 'Tolong beri tahu kami apa yang salah dengan tanggapan ini',
@ -417,6 +437,7 @@ const translation = {
},
item: {
freeQuota: 'KUOTA GRATIS',
deleteDesc: '{{modelName}} sedang digunakan sebagai model penalaran sistem. Beberapa fungsi tidak akan tersedia setelah dihapus. Harap konfirmasi.',
},
encrypted: {
back: 'Teknologi.',
@ -507,6 +528,11 @@ const translation = {
getFreeTokens: 'Dapatkan Token gratis',
parametersInvalidRemoved: 'Beberapa parameter tidak valid dan telah dihapus',
installDataSourceProvider: 'Pasang penyedia sumber data',
noModelFound: 'Tidak ditemukan model untuk {{model}}',
modelsNum: 'Model {{num}}',
showModelsNum: 'Tampilkan {{num}} Model',
featureSupported: '{{feature}} didukung',
apiKeyRateLimit: 'Batas kecepatan tercapai, tersedia setelah {{seconds}} detik',
},
dataSource: {
notion: {
@ -579,6 +605,8 @@ const translation = {
about: {
changeLog: 'Log perubahan',
updateNow: 'Perbarui sekarang',
nowAvailable: 'Dify {{version}} kini tersedia.',
latestAvailable: 'Dify {{version}} adalah versi terbaru yang tersedia.',
},
appMenus: {
logs: 'Log',
@ -637,6 +665,7 @@ const translation = {
thought: 'Pikiran',
renameConversation: 'Ganti Nama Percakapan',
conversationNamePlaceholder: 'Silakan masukkan nama percakapan',
inputPlaceholder: 'Bicaralah dengan {{botName}}',
},
promptEditor: {
context: {
@ -647,6 +676,7 @@ const translation = {
modal: {
footer: 'Anda dapat mengelola konteks di bagian Konteks di bawah.',
add: 'Tambahkan Konteks',
title: '{{num}} Pengetahuan dalam Konteks',
},
},
history: {
@ -692,6 +722,7 @@ const translation = {
uploadFromComputerReadError: 'Pembacaan gambar gagal, silakan coba lagi.',
pasteImageLinkInvalid: 'Tautan gambar tidak valid',
pasteImageLinkInputPlaceholder: 'Tempel tautan gambar di sini',
uploadFromComputerLimit: 'Unggah gambar tidak boleh lebih dari {{size}} MB',
},
fileUploader: {
fileExtensionNotSupport: 'Ekstensi file tidak didukung',
@ -702,6 +733,7 @@ const translation = {
pasteFileLinkInputPlaceholder: 'Masukkan URL...',
uploadFromComputerReadError: 'Pembacaan file gagal, silakan coba lagi.',
fileExtensionBlocked: 'Tipe file ini diblokir karena alasan keamanan',
uploadFromComputerLimit: 'Unggahan {{type}} tidak boleh melebihi {{size}}',
},
tag: {
noTag: 'Tidak ada tag',
@ -721,6 +753,7 @@ const translation = {
license: {
unlimited: 'Unlimited',
expiring: 'Kedaluwarsa dalam satu hari',
expiring_plural: 'Kedaluwarsa dalam {{count}} hari',
},
pagination: {
perPage: 'Item per halaman',
@ -738,6 +771,13 @@ const translation = {
label: {
optional: '(opsional)',
},
noData: 'Tidak ada data',
dynamicSelect: {
error: 'Gagal memuat opsi',
noData: 'Tidak ada opsi yang tersedia',
loading: 'Memuat opsi...',
selected: '{{count}} dipilih',
},
}
export default translation

View File

@ -35,6 +35,8 @@ const translation = {
validation: {
count: 'Beberapa file tidak didukung',
typeError: 'Jenis file tidak didukung',
size: 'Berkas terlalu besar. Maksimal {{size}}MB',
filesNumber: 'Anda telah mencapai batas unggah batch sebanyak {{filesNumber}}.',
},
buttonSingleFile: 'Seret dan lepas file, atau',
title: 'Unggah file',
@ -43,6 +45,7 @@ const translation = {
button: 'Seret dan lepas file atau folder, atau',
change: 'Ubah',
failed: 'Upload gagal',
tip: 'Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing. Total maksimal {{totalCount}} file.',
},
modal: {
title: 'Buat Pengetahuan kosong',
@ -92,6 +95,7 @@ const translation = {
firecrawlDoc: 'Dokumen Firecrawl',
configureWatercrawl: 'Konfigurasikan Watercrawl',
running: 'Menjalankan',
scrapTimeInfo: 'Telah mengumpulkan {{total}} halaman secara total dalam {{time}} detik',
},
pagePreview: 'Pratinjau Halaman',
notionSyncTitle: 'Notion tidak terhubung',
@ -183,6 +187,8 @@ const translation = {
general: 'Umum',
indexSettingTip: 'Untuk mengubah metode indeks & model penyematan, silakan pergi ke',
qaTip: 'Saat menggunakan data Tanya Jawab terstruktur, Anda dapat membuat dokumen yang memasangkan pertanyaan dengan jawaban. Dokumen-dokumen ini diindeks berdasarkan bagian pertanyaan, memungkinkan sistem untuk mengambil jawaban yang relevan berdasarkan kesamaan kueri.',
maxLengthCheck: 'Panjang potongan maksimum sebaiknya kurang dari {{limit}}',
previewChunkCount: '{{count}} Potongan perkiraan',
},
stepThree: {
modelTitle: 'Apakah Anda yakin untuk berhenti menyematkan?',

View File

@ -81,7 +81,10 @@ const translation = {
learnMore: 'Pelajari lebih lanjut',
addUrl: 'Tambahkan URL',
title: 'Dokumen',
sort: {},
sort: {
uploadTime: 'Waktu Unggah',
hitCount: 'Jumlah Pengambilan',
},
},
metadata: {
placeholder: {

View File

@ -15,6 +15,7 @@ const translation = {
},
hit: {
emptyTip: 'Hasil Pengujian Pengambilan akan ditampilkan di sini',
title: '{{num}} Potongan yang Diambil',
},
keyword: 'Kata kunci',
noRecentTip: 'Tidak ada hasil kueri terbaru di sini',
@ -27,6 +28,7 @@ const translation = {
viewChart: 'Lihat GRAFIK VAKTOR',
chunkDetail: 'Detail Potongan',
title: 'Tes Pengambilan',
hitChunks: 'Pukul {{num}} potongan anak',
}
export default translation

View File

@ -34,6 +34,7 @@ const translation = {
publishPipeline: {
success: {
message: 'Alur Pengetahuan Diterbitkan',
tip: '<CustomLink>Buka Dokumen</CustomLink> untuk menambahkan atau mengelola dokumen.',
},
error: {
message: 'Gagal Menerbitkan Alur Pengetahuan',
@ -56,6 +57,7 @@ const translation = {
details: {
structure: 'Struktur',
structureTooltip: 'Struktur Potongan menentukan bagaimana dokumen dibagi dan diindeks—menawarkan mode Umum, Induk-Anak, dan Tanya Jawab—dan unik untuk setiap basis pengetahuan.',
createdBy: 'Oleh {{author}}',
},
testRun: {
steps: {
@ -112,23 +114,32 @@ const translation = {
title: 'Tambahkan Dokumen',
backToDataSource: 'Sumber Data',
characters: 'Karakter',
selectOnlineDocumentTip: 'Proses hingga {{count}} halaman',
selectOnlineDriveTip: 'Proses hingga {{count}} file, maksimum {{fileSize}} MB masing-masing',
},
documentSettings: {
title: 'Pengaturan Dokumen',
},
onlineDocument: {},
onlineDocument: {
pageSelectorTitle: '{{name}} halaman',
},
onlineDrive: {
breadcrumbs: {
allFiles: 'Semua File',
allBuckets: 'Semua Bucket Penyimpanan Cloud',
searchPlaceholder: 'Cari file...',
searchResult: 'Temukan {{searchResultsLength}} item di folder "{{folderName}}"',
},
resetKeywords: 'Mengatur ulang kata kunci',
notSupportedFileType: 'Jenis file ini tidak didukung',
emptySearchResult: 'Tidak ada barang yang ditemukan',
emptyFolder: 'Folder ini kosong',
notConnected: '{{name}} tidak terhubung',
notConnectedTip: 'Untuk menyinkronkan dengan {{name}}, koneksi ke {{name}} harus dibuat terlebih dahulu.',
},
credentialSelector: {
name: '{{credentialName}}\'s {{pluginName}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Konfirmasi',
@ -149,6 +160,7 @@ const translation = {
knowledgeNameAndIcon: 'Nama & ikon pengetahuan',
knowledgeDescriptionPlaceholder: 'Jelaskan apa yang ada di Basis Pengetahuan ini. Deskripsi terperinci memungkinkan AI mengakses konten kumpulan data dengan lebih akurat. Jika kosong, Dify akan menggunakan strategi hit default. (Opsional)',
editPipelineInfo: 'Mengedit info alur',
configurationTip: 'Konfigurasikan {{pluginName}}',
}
export default translation

View File

@ -124,12 +124,14 @@ const translation = {
checkName: {
empty: 'Nama metadata tidak boleh kosong',
invalid: 'Nama metadata hanya dapat berisi huruf kecil, angka, dan garis bawah dan harus dimulai dengan huruf kecil',
tooLong: 'Nama metadata tidak boleh melebihi {{max}} karakter',
},
batchEditMetadata: {
editMetadata: 'Edit Metadata',
applyToAllSelectDocument: 'Terapkan ke semua dokumen yang dipilih',
multipleValue: 'Beberapa Nilai',
applyToAllSelectDocumentTip: 'Secara otomatis membuat semua metadata yang diedit di atas dan baru untuk semua dokumen yang dipilih, jika tidak, mengedit metadata hanya akan berlaku untuk dokumen yang dengannya.',
editDocumentsNum: 'Mengedit dokumen {{num}}',
},
selectMetadata: {
manageAction: 'Urus',
@ -146,6 +148,8 @@ const translation = {
builtInDescription: 'Metadata bawaan secara otomatis diekstrak dan dihasilkan. Itu harus diaktifkan sebelum digunakan dan tidak dapat diedit.',
namePlaceholder: 'Nama metadata',
builtIn: 'Bawaan',
values: 'Nilai {{num}}',
deleteContent: 'Apakah Anda yakin ingin menghapus metadata "{{name}}"',
},
documentMetadata: {
metadataToolTip: 'Metadata berfungsi sebagai filter penting yang meningkatkan akurasi dan relevansi pengambilan informasi. Anda dapat memodifikasi dan menambahkan metadata untuk dokumen ini di sini.',
@ -227,6 +231,12 @@ const translation = {
enabled: 'Sedang Beroperasi',
disabled: 'Dinonaktifkan',
},
docAllEnabled_one: 'dokumen {{count}} diaktifkan',
docAllEnabled_other: 'Semua dokumen {{count}} diaktifkan',
partialEnabled_one: 'Total {{count}} dokumen, {{num}} tersedia',
partialEnabled_other: 'Total {{count}} dokumen, {{num}} tersedia',
documentsDisabled: '{{num}} dokumen dinonaktifkan - tidak aktif lebih dari 30 hari',
preprocessDocument: '{{num}} Prasekolah Dokumen',
}
export default translation

View File

@ -42,6 +42,7 @@ const translation = {
},
isAboutToExpire: {
summary: 'Jangan khawatir — ini tidak akan memengaruhi langganan Anda saat ini, tetapi Anda tidak akan mendapatkan diskon pendidikan saat diperpanjang kecuali Anda memverifikasi status Anda lagi.',
title: 'Status pendidikan Anda akan berakhir pada {{date}}',
},
stillInEducation: {
isAboutToExpire: 'Verifikasi ulang sekarang untuk mendapatkan kupon baru untuk tahun akademik mendatang. Ini akan disimpan ke akun Anda dan siap digunakan pada perpanjangan berikutnya.',

View File

@ -26,6 +26,7 @@ const translation = {
appCustomize: {
subTitle: 'Ikon & nama aplikasi',
nameRequired: 'Nama aplikasi diperlukan',
title: 'Buat aplikasi dari {{name}}',
},
category: {
Entertainment: 'Hiburan',

View File

@ -28,10 +28,12 @@ const translation = {
loading: 'Pengolahan... Harap tunggu',
viewDetails: 'Lihat detail',
error: 'Terjadi kesalahan selama eksekusi',
footerTip: 'Dalam mode uji coba, pratinjau hingga {{count}} potongan',
},
},
ragToolSuggestions: {
title: 'Saran untuk RAG',
noRecommendationPlugins: 'Tidak ada plugin yang disarankan, temukan lebih banyak di <CustomLink>Marketplace</CustomLink>',
},
}

View File

@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'Langganan',
listNum: 'langganan {{num}}',
empty: {
title: 'Tidak ada langganan',
button: 'Langganan baru',
},
createButton: {
oauth: 'Langganan baru dengan OAuth',
apiKey: 'Langganan baru dengan Kunci API',
manual: 'Tempel URL untuk membuat langganan baru',
},
createSuccess: 'Langganan berhasil dibuat',
createFailed: 'Gagal membuat langganan',
maxCount: 'Maks {{num}} langganan',
selectPlaceholder: 'Pilih langganan',
noSubscriptionSelected: 'Belum memilih langganan',
subscriptionRemoved: 'Langganan dihapus',
list: {
title: 'Langganan',
addButton: 'Tambahkan',
tip: 'Terima acara melalui Langganan',
item: {
enabled: 'Diaktifkan',
disabled: 'Dinonaktifkan',
credentialType: {
api_key: 'Kunci API',
oauth2: 'OAuth',
unauthorized: 'Manual',
},
actions: {
delete: 'Hapus',
deleteConfirm: {
title: 'Hapus {{name}}?',
success: 'Langganan {{name}} berhasil dihapus',
error: 'Gagal menghapus langganan {{name}}',
content: 'Setelah dihapus, langganan ini tidak dapat dikembalikan. Harap konfirmasi.',
contentWithApps: 'Langganan saat ini direferensikan oleh {{count}} aplikasi. Menghapusnya akan menyebabkan aplikasi yang dikonfigurasi berhenti menerima acara langganan.',
confirm: 'Konfirmasi Hapus',
cancel: 'Batal',
confirmInputWarning: 'Silakan masukkan nama yang benar untuk konfirmasi.',
confirmInputPlaceholder: 'Masukkan "{{name}}" untuk konfirmasi.',
confirmInputTip: 'Silakan masukkan “{{name}}” untuk mengonfirmasi.',
},
},
status: {
active: 'Aktif',
inactive: 'Tidak aktif',
},
usedByNum: 'Digunakan oleh {{num}} alur kerja',
noUsed: 'Tidak ada alur kerja yang digunakan',
},
},
addType: {
title: 'Tambah langganan',
description: 'Pilih bagaimana Anda ingin membuat langganan pemicu Anda',
options: {
apikey: {
title: 'Buat dengan Kunci API',
description: 'Buat langganan secara otomatis menggunakan kredensial API',
},
oauth: {
title: 'Buat dengan OAuth',
description: 'Otorisasi dengan platform pihak ketiga untuk membuat langganan',
clientSettings: 'Pengaturan Klien OAuth',
clientTitle: 'Klien OAuth',
default: 'Default',
custom: 'Kustom',
},
manual: {
title: 'Pengaturan Manual',
description: 'Tempel URL untuk membuat langganan baru',
tip: 'Konfigurasikan URL di platform pihak ketiga secara manual',
},
},
},
},
modal: {
steps: {
verify: 'Verifikasi',
configuration: 'Konfigurasi',
},
common: {
cancel: 'Batal',
back: 'Kembali',
next: 'Berikutnya',
create: 'Buat',
verify: 'Verifikasi',
authorize: 'Otorisasi',
creating: 'Membuat...',
verifying: 'Memverifikasi...',
authorizing: 'Mengizinkan...',
},
oauthRedirectInfo: 'Karena tidak ditemukan rahasia klien sistem untuk penyedia alat ini, pengaturannya harus dilakukan secara manual, untuk redirect_uri, silakan gunakan',
apiKey: {
title: 'Buat dengan Kunci API',
verify: {
title: 'Verifikasi Kredensial',
description: 'Silakan berikan kredensial API Anda untuk memverifikasi akses',
error: 'Verifikasi kredensial gagal. Silakan periksa kunci API Anda.',
success: 'Kredensial berhasil diverifikasi',
},
configuration: {
title: 'Atur Langganan',
description: 'Atur parameter langganan Anda',
},
},
oauth: {
title: 'Buat dengan OAuth',
authorization: {
title: 'Otorisasi OAuth',
description: 'Izinkan Dify untuk mengakses akun Anda',
redirectUrl: 'URL Pengalihan',
redirectUrlHelp: 'Gunakan URL ini dalam konfigurasi aplikasi OAuth Anda',
authorizeButton: 'Otorisasi dengan {{provider}}',
waitingAuth: 'Menunggu otorisasi...',
authSuccess: 'Otorisasi berhasil',
authFailed: 'Gagal mendapatkan informasi otorisasi OAuth',
waitingJump: 'Diizinkan, menunggu lompatan',
},
configuration: {
title: 'Atur Langganan',
description: 'Atur parameter langganan Anda setelah otorisasi',
success: 'Konfigurasi OAuth berhasil',
failed: 'Konfigurasi OAuth gagal',
},
remove: {
success: 'Penghapusan OAuth berhasil',
failed: 'Gagal menghapus OAuth',
},
save: {
success: 'Konfigurasi OAuth berhasil disimpan',
},
},
manual: {
title: 'Pengaturan Manual',
description: 'Konfigurasikan langganan webhook Anda secara manual',
logs: {
title: 'Catatan Permintaan',
request: 'Permintaan',
loading: 'Menunggu permintaan dari {{pluginName}}...',
},
},
form: {
subscriptionName: {
label: 'Nama Langganan',
placeholder: 'Masukkan nama langganan',
required: 'Nama langganan wajib diisi',
},
callbackUrl: {
label: 'URL Panggilan Balik',
description: 'URL ini akan menerima event webhook',
tooltip: 'Sediakan endpoint yang dapat diakses publik yang dapat menerima permintaan callback dari penyedia pemicu.',
placeholder: 'Sedang menghasilkan...',
privateAddressWarning: 'URL ini tampaknya merupakan alamat internal, yang mungkin menyebabkan permintaan webhook gagal. Anda dapat mengubah TRIGGER_URL ke alamat publik.',
},
},
errors: {
createFailed: 'Gagal membuat langganan',
verifyFailed: 'Gagal memverifikasi kredensial',
authFailed: 'Otorisasi gagal',
networkError: 'Kesalahan jaringan, silakan coba lagi',
},
},
events: {
title: 'Acara Tersedia',
description: 'Peristiwa yang dapat diikuti oleh plugin pemicu ini',
empty: 'Tidak ada acara tersedia',
event: 'Acara',
events: 'Acara',
actionNum: '{{num}} {{event}} TERMASUK',
item: {
parameters: 'parameter {{count}}',
noParameters: 'Tidak ada parameter',
},
output: 'Keluaran',
},
node: {
status: {
warning: 'Putuskan sambungan',
},
},
}
export default translation

View File

@ -10,6 +10,7 @@ const translation = {
agents: 'Strategi Agen',
tools: 'Perkakas',
datasources: 'Sumber Data',
triggers: 'Pemicu',
},
categorySingle: {
bundle: 'Bundel',
@ -18,6 +19,7 @@ const translation = {
model: 'Pola',
extension: 'Ekstensi',
datasource: 'Sumber Data',
trigger: 'Pemicu',
},
list: {
source: {
@ -48,6 +50,7 @@ const translation = {
viewDetail: 'Lihat Detail',
install: 'Pasang',
checkUpdate: 'Periksa Pembaruan',
back: 'Kembali',
},
toolSelector: {
descriptionLabel: 'Deskripsi alat',
@ -77,6 +80,8 @@ const translation = {
ownershipTransferred: 'kepemilikan dialihkan',
},
noReason: 'Plugin ini tidak digunakan lagi dan tidak akan diperbarui lagi.',
fullMessage: 'Plugin ini telah dihentikan karena {{deprecatedReason}}, dan tidak akan diperbarui lagi. Silakan gunakan <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> sebagai gantinya.',
onlyReason: 'Plugin ini telah dihentikan penggunaannya karena {{deprecatedReason}} dan tidak akan diperbarui lagi.',
},
endpoints: 'Endpoint',
endpointDisableTip: 'Nonaktifkan Titik Akhir',
@ -92,6 +97,11 @@ const translation = {
endpointsTip: 'Plugin ini menyediakan fungsionalitas khusus melalui titik akhir, dan Anda dapat mengonfigurasi beberapa set titik akhir untuk ruang kerja saat ini.',
endpointModalTitle: 'Menyiapkan titik akhir',
endpointsEmpty: 'Klik tombol \' \' untuk menambahkan titik akhir',
actionNum: '{{num}} {{action}} TERMASUK',
strategyNum: '{{num}} {{strategy}} TERMASUK',
endpointDisableContent: 'Apakah Anda ingin menonaktifkan {{name}}?',
endpointDeleteContent: 'Apakah Anda ingin menghapus {{name}}?',
modelNum: '{{num}} MODEL TERMASUK',
},
debugInfo: {
title: 'Debugging',
@ -150,6 +160,10 @@ const translation = {
updateTimeTitle: 'Waktu pembaruan',
specifyPluginsToUpdate: 'Tentukan plugin untuk diperbarui',
automaticUpdates: 'Pembaruan otomatis',
excludeUpdate: 'Plugin {{num}} berikut ini tidak akan diperbarui secara otomatis',
partialUPdate: 'Hanya plugin {{num}} berikut yang akan diperbarui secara otomatis',
nextUpdateTime: 'Pembaruan otomatis berikutnya: {{time}}',
changeTimezone: 'Untuk mengubah zona waktu, pergi ke <setTimezone>Pengaturan</setTimezone>',
},
pluginInfoModal: {
repository: 'Repositori',
@ -163,6 +177,7 @@ const translation = {
checkForUpdates: 'Periksa pembaruan',
deleteContentLeft: 'Apakah Anda ingin menghapus',
delete: 'Hapus plugin',
usedInApps: 'Plugin ini digunakan di {{num}} aplikasi.',
},
installModal: {
labels: {
@ -189,6 +204,9 @@ const translation = {
dropPluginToInstall: 'Jatuhkan paket plugin di sini untuk menginstal',
installComplete: 'Instalasi selesai',
installPlugin: 'Instal Plugin',
uploadingPackage: 'Mengunggah {{packageName}}...',
readyToInstallPackages: 'Akan memasang plugin {{num}} berikut',
fromTrustSource: 'Pastikan Anda hanya menginstal plugin dari <trustSource>sumber yang tepercaya</trustSource>.',
},
installFromGitHub: {
installFailed: 'Instalasi gagal',
@ -210,6 +228,7 @@ const translation = {
successfulTitle: 'Instal berhasil',
description: 'Tentang menginstal plugin berikut',
title: 'Instal Plugin',
usedInApps: 'Digunakan di {{num}} aplikasi',
},
error: {
fetchReleasesError: 'Tidak dapat mengambil rilis. Silakan coba lagi nanti.',
@ -233,9 +252,15 @@ const translation = {
and: 'dan',
difyMarketplace: 'Dify Marketplace',
verifiedTip: 'Diverifikasi oleh Dify',
pluginsResult: 'hasil {{num}}',
},
task: {
clearAll: 'Hapus semua',
installing: 'Memasang plugin {{installingLength}}, 0 selesai.',
installingWithSuccess: 'Memasang plugin {{installingLength}}, {{successLength}} berhasil.',
installingWithError: 'Memasang {{installingLength}} plugin, {{successLength}} berhasil, {{errorLength}} gagal',
installError: 'Gagal menginstal plugin {{errorLength}}, klik untuk melihat',
installedError: 'Gagal menginstal {{errorLength}} plugin',
},
auth: {
customCredentialUnavailable: 'Kredensial kustom saat ini tidak tersedia',
@ -281,6 +306,15 @@ const translation = {
installAction: 'Pasang',
publishPlugins: 'Menerbitkan plugin',
requestAPlugin: 'Minta plugin',
endpointsEnabled: '{{num}} set endpoint diaktifkan',
install: '{{num}} menginstal',
difyVersionNotCompatible: 'Versi Dify saat ini tidak kompatibel dengan plugin ini, harap perbarui ke versi minimum yang dibutuhkan: {{minimalDifyVersion}}',
readmeInfo: {
title: 'BACA SAYA',
needHelpCheckReadme: 'Butuh bantuan? Periksa README.',
noReadmeAvailable: 'Tidak ada README yang tersedia',
failedToFetch: 'Gagal mengambil README',
},
}
export default translation

View File

@ -47,11 +47,15 @@ const translation = {
batchFailed: {
outputPlaceholder: 'Tidak ada konten keluaran',
retry: 'Pengulangan',
info: '{{num}} eksekusi gagal',
},
errorMsg: {
atLeastOne: 'Silakan masukkan setidaknya satu baris dalam file yang diunggah.',
empty: 'Silakan masukkan konten dalam file yang diunggah.',
fileStructNotMatch: 'File CSV yang diunggah tidak cocok dengan struct.',
emptyLine: 'Baris {{rowIndex}} kosong',
invalidLine: 'Baris {{rowIndex}}: nilai {{varName}} tidak boleh kosong',
moreThanMaxLengthLine: 'Baris {{rowIndex}}: nilai {{varName}} tidak boleh lebih dari {{maxLength}} karakter',
},
field: 'Kebun',
queryTitle: 'Kueri konten',

View File

@ -234,6 +234,9 @@ const translation = {
parameters: 'Parameter',
noDescription: 'Tanpa deskripsi',
},
toolsCount: 'alat {{count}}',
deleteConfirmTitle: 'Apakah Anda ingin menghapus {{mcp}}?',
toolsNum: 'alat {{count}} termasuk',
},
title: 'Perkakas',
createCustomTool: 'Buat Alat Kustom',
@ -248,6 +251,7 @@ const translation = {
builtInPromptTitle: 'Cepat',
toolNameUsageTip: 'Nama panggilan alat untuk penalaran dan permintaan agen',
allTools: 'Semua alat',
includeToolNum: '{{num}} {{action}} termasuk',
}
export default translation

View File

@ -13,6 +13,8 @@ const translation = {
desc: 'untuk terhubung',
title: 'Tarik',
},
limit: 'Paralelisme terbatas pada {{num}} cabang.',
depthLimit: 'Batas lapisan bersarang paralel sebesar {{num}} lapisan',
},
undo: 'Urungkan',
embedIntoSite: 'Sematkan ke Situs',
@ -33,7 +35,6 @@ const translation = {
addParallelNode: 'Tambahkan Node Paralel',
onFailure: 'Pada Kegagalan',
update: 'Pemutakhiran',
parallelRun: 'Jalankan Paralel',
configure: 'Konfigurasikan',
copy: 'Menyalin',
redo: 'Ulangi',
@ -113,6 +114,14 @@ const translation = {
currentWorkflow: 'Alur Kerja Saat Ini',
viewOnly: 'Lihat Saja',
restore: 'Mengembalikan',
listening: 'Mendengarkan',
chooseStartNodeToRun: 'Pilih node awal untuk dijalankan',
runAllTriggers: 'Jalankan semua pemicu',
maxTreeDepth: 'Batas maksimum {{depth}} node per cabang',
needAdd: 'Node {{node}} harus ditambahkan',
needStartNode: 'Setidaknya satu node awal harus ditambahkan',
moreActions: 'Tindakan Lain',
workflowAsToolDisabledHint: 'Terbitkan alur kerja terbaru dan pastikan ada node Input Pengguna yang terhubung sebelum mengonfigurasinya sebagai alat.',
},
env: {
modal: {
@ -198,6 +207,10 @@ const translation = {
currentState: 'Keadaan Saat Ini',
edgeDelete: 'Node terputus',
nodeChange: 'Node diubah',
stepBackward_one: '{{count}} langkah mundur',
stepBackward_other: '{{count}} langkah mundur',
stepForward_one: '{{count}} melangkah maju',
stepForward_other: '{{count}} melangkah maju',
},
errorMsg: {
fields: {
@ -211,6 +224,11 @@ const translation = {
invalidVariable: 'Variabel tidak valid',
authRequired: 'Otorisasi diperlukan',
rerankModelRequired: 'Model Rerank yang dikonfigurasi diperlukan',
fieldRequired: '{{field}} wajib diisi',
invalidJson: '{{field}} adalah JSON yang tidak valid',
noValidTool: '{{field}} tidak ada alat yang valid dipilih',
toolParameterRequired: '{{field}}: parameter [{{param}}] diperlukan',
startNodeRequired: 'Silakan tambahkan node awal terlebih dahulu sebelum {{operation}}',
},
singleRun: {
back: 'Belakang',
@ -242,6 +260,21 @@ const translation = {
'allTool': 'Semua',
'sources': 'Sumber',
'searchDataSource': 'Cari Sumber Data',
'start': 'Mulai',
'searchTrigger': 'Pencarian memicu...',
'allTriggers': 'Semua pemicu',
'noPluginsFound': 'Tidak ada plugin yang ditemukan',
'requestToCommunity': 'Permintaan kepada komunitas',
'featuredTools': 'Unggulan',
'showMoreFeatured': 'Tampilkan lebih banyak',
'showLessFeatured': 'Tampilkan lebih sedikit',
'installed': 'Terpasang',
'pluginByAuthor': 'Oleh {{author}}',
'usePlugin': 'Pilih alat',
'hideActions': 'Sembunyikan alat',
'noFeaturedPlugins': 'Temukan lebih banyak alat di Marketplace',
'noFeaturedTriggers': 'Temukan lebih banyak pemicu di Marketplace',
'startDisabledTip': 'Node pemicu dan node input pengguna saling eksklusif.',
},
blocks: {
'code': 'Kode',
@ -268,6 +301,10 @@ const translation = {
'variable-aggregator': 'Agregator Variabel',
'datasource': 'Sumber Data',
'knowledge-index': 'Basis Pengetahuan',
'originalStartNode': 'node awal asli',
'trigger-schedule': 'Pemicu Jadwal',
'trigger-webhook': 'Pemicu Webhook',
'trigger-plugin': 'Pemicu Plugin',
},
blocksAbout: {
'template-transform': 'Mengonversi data menjadi string menggunakan sintaks templat Jinja',
@ -292,6 +329,9 @@ const translation = {
'list-operator': 'Digunakan untuk memfilter atau mengurutkan konten array.',
'datasource': 'Sumber Data Tentang',
'knowledge-index': 'Basis Pengetahuan Tentang',
'trigger-schedule': 'Pemicu alur kerja berbasis waktu yang memulai alur kerja sesuai jadwal',
'trigger-webhook': 'Pemicu Webhook menerima push HTTP dari sistem pihak ketiga untuk secara otomatis memicu alur kerja.',
'trigger-plugin': 'Pemicu integrasi pihak ketiga yang memulai alur kerja dari kejadian platform eksternal',
},
operator: {
zoomIn: 'Perbesar',
@ -323,7 +363,6 @@ const translation = {
change: 'Ubah',
checklist: 'Checklist',
about: 'Sekitar',
moveToThisNode: 'Pindah ke simpul ini',
optional: '(opsional)',
checklistTip: 'Pastikan semua masalah diselesaikan sebelum dipublikasikan',
organizeBlocks: 'Mengatur simpul',
@ -339,6 +378,9 @@ const translation = {
runThisStep: 'Jalankan langkah ini',
maximize: 'Maksimalkan Kanvas',
optional_and_hidden: '(opsional & tersembunyi)',
goTo: 'Pergi ke',
startNode: 'Mulai Node',
scrollToSelectedNode: 'Gulir ke node yang dipilih',
},
nodes: {
common: {
@ -374,7 +416,9 @@ const translation = {
title: 'Cabang Gagal',
customizeTip: 'Saat cabang gagal diaktifkan, pengecualian yang dilemparkan oleh simpul tidak akan mengakhiri proses. Sebagai gantinya, itu akan secara otomatis mengeksekusi cabang gagal yang telah ditentukan sebelumnya, memungkinkan Anda untuk secara fleksibel memberikan pesan kesalahan, laporan, perbaikan, atau tindakan lewati.',
},
partialSucceeded: {},
partialSucceeded: {
tip: 'Ada {{num}} node dalam proses yang berjalan tidak normal, silakan pergi ke tracing untuk memeriksa log.',
},
title: 'Penanganan Kesalahan',
tip: 'Strategi penanganan pengecualian, dipicu ketika simpul menemukan pengecualian.',
},
@ -388,6 +432,9 @@ const translation = {
retryInterval: 'interval coba lagi',
times: 'kali',
retrySuccessful: 'Coba lagi berhasil',
retryTimes: 'Coba ulang {{times}} kali jika gagal',
retryFailedTimes: '{{times}} percobaan gagal',
retries: '{{num}} Percobaan Ulang',
},
typeSwitch: {
variable: 'Gunakan variabel',
@ -649,7 +696,9 @@ const translation = {
object: 'Benda',
string: 'Tali',
},
outputVars: {},
outputVars: {
varDescribe: 'output {{groupName}}',
},
noVarTip: 'Tambahkan variabel yang akan ditetapkan',
aggregationGroup: 'Grup Agregasi',
title: 'Tetapkan variabel',
@ -775,6 +824,12 @@ const translation = {
deleteTitle: 'Hapus Node Iterasi?',
parallelModeEnableTitle: 'Mode Paralel Diaktifkan',
answerNodeWarningDesc: 'Peringatan mode paralel: Simpul jawaban, penetapan variabel percakapan, dan operasi baca/tulis persisten dalam iterasi dapat menyebabkan pengecualian.',
iteration_one: '{{count}} Iterasi',
iteration_other: '{{count}} Iterasi',
error_one: 'Kesalahan {{count}}',
error_other: 'Kesalahan {{count}}',
flattenOutput: 'Ratakan Keluaran',
flattenOutputDesc: 'Saat diaktifkan, jika semua output iterasi berupa array, mereka akan digabung menjadi satu array tunggal. Saat dinonaktifkan, output akan mempertahankan struktur array bersarang.',
},
loop: {
ErrorMethod: {
@ -800,6 +855,13 @@ const translation = {
comma: ',',
finalLoopVariables: 'Variabel Loop Akhir',
initialLoopVariables: 'Variabel Loop Awal',
loop_one: '{{count}} Loop',
loop_other: '{{count}} Perulangan',
error_one: 'Kesalahan {{count}}',
error_other: 'Kesalahan {{count}}',
loopMaxCountError: 'Harap masukkan jumlah loop maksimum yang valid, mulai dari 1 hingga {{maxCount}}',
currentLoopCount: 'Jumlah putaran saat ini: {{count}}',
totalLoopCount: 'Jumlah total loop: {{count}}',
},
note: {
editor: {
@ -826,6 +888,7 @@ const translation = {
},
learnMore: 'Pelajari lebih lanjut',
inputVar: 'Variabel Masukan',
supportFileTypes: 'Jenis file yang didukung: {{types}}.',
},
listFilter: {
outputVars: {
@ -913,6 +976,9 @@ const translation = {
linkToPlugin: 'Tautan ke Plugin',
parameterSchema: 'Skema Parameter',
strategyNotFoundDesc: 'Versi plugin yang diinstal tidak menyediakan strategi ini.',
toolNotInstallTooltip: '{{tool}} tidak terpasang',
toolNotAuthorizedTooltip: '{{tool}} Tidak Berwenang',
strategyNotInstallTooltip: '{{strategy}} tidak terpasang',
},
dataSource: {
add: 'Menambahkan sumber data',
@ -940,8 +1006,148 @@ const translation = {
rerankingModelIsInvalid: 'Model reranking tidak valid',
embeddingModelIsInvalid: 'Model embedding tidak valid',
},
triggerPlugin: {
authorized: 'Otorisasi',
notConfigured: 'Belum Dikonfigurasi',
notAuthorized: 'Tidak Diizinkan',
selectSubscription: 'Pilih Langganan',
availableSubscriptions: 'Langganan Tersedia',
addSubscription: 'Tambah Langganan Baru',
removeSubscription: 'Hapus Langganan',
subscriptionRemoved: 'Langganan berhasil dihapus',
error: 'Kesalahan',
configuration: 'Konfigurasi',
remove: 'Hapus',
or: 'ATAU',
useOAuth: 'Gunakan OAuth',
useApiKey: 'Gunakan Kunci API',
authenticationFailed: 'Autentikasi gagal',
authenticationSuccess: 'Autentikasi berhasil',
oauthConfigFailed: 'Konfigurasi OAuth gagal',
configureOAuthClient: 'Konfigurasikan Klien OAuth',
oauthClientDescription: 'Konfigurasikan kredensial klien OAuth untuk mengaktifkan otentikasi',
oauthClientSaved: 'Konfigurasi klien OAuth berhasil disimpan',
configureApiKey: 'Konfigurasikan Kunci API',
apiKeyDescription: 'Konfigurasikan kredensial kunci API untuk otentikasi',
apiKeyConfigured: 'Kunci API berhasil dikonfigurasi',
configurationFailed: 'Konfigurasi gagal',
failedToStart: 'Gagal memulai alur autentikasi',
credentialsVerified: 'Kredensial berhasil diverifikasi',
credentialVerificationFailed: 'Verifikasi kredensial gagal',
verifyAndContinue: 'Verifikasi & Lanjutkan',
configureParameters: 'Konfigurasikan Parameter',
parametersDescription: 'Konfigurasikan parameter dan properti pemicu',
configurationComplete: 'Konfigurasi Selesai',
configurationCompleteDescription: 'Pemicu Anda telah dikonfigurasi dengan sukses',
configurationCompleteMessage: 'Konfigurasi pemicu Anda sekarang telah selesai dan siap digunakan.',
parameters: 'Parameter',
properties: 'Properti',
propertiesDescription: 'Properti konfigurasi tambahan untuk pemicu ini',
noConfigurationRequired: 'Tidak diperlukan pengaturan tambahan untuk pemicu ini.',
subscriptionName: 'Nama Langganan',
subscriptionNameDescription: 'Masukkan nama unik untuk langganan pemicu ini',
subscriptionNamePlaceholder: 'Masukkan nama langganan...',
subscriptionNameRequired: 'Nama langganan wajib diisi',
subscriptionRequired: 'Berlangganan diperlukan',
},
triggerSchedule: {
title: 'Jadwal',
nodeTitle: 'Pemicu Jadwal',
notConfigured: 'Belum dikonfigurasi',
useCronExpression: 'Gunakan ekspresi cron',
useVisualPicker: 'Gunakan pemilih visual',
frequency: {
label: 'FREKUENSI',
hourly: 'Per jam',
daily: 'Harian',
weekly: 'Mingguan',
monthly: 'Bulanan',
},
selectFrequency: 'Pilih frekuensi',
frequencyLabel: 'Frekuensi',
nextExecution: 'Eksekusi berikutnya',
weekdays: 'Hari kerja',
time: 'Waktu',
cronExpression: 'Ekspresi Cron',
nextExecutionTime: 'WAKTU EKSEKUSI BERIKUTNYA',
nextExecutionTimes: '5 waktu eksekusi berikutnya',
startTime: 'Waktu Mulai',
executeNow: 'Eksekusi sekarang',
selectDateTime: 'Pilih Tanggal & Waktu',
hours: 'Jam',
minutes: 'Menit',
onMinute: 'Dalam Sejuta',
days: 'Hari',
lastDay: 'Hari terakhir',
lastDayTooltip: 'Tidak semua bulan memiliki 31 hari. Gunakan opsi \'hari terakhir\' untuk memilih hari terakhir setiap bulan.',
mode: 'Mode',
timezone: 'Zona waktu',
visualConfig: 'Konfigurasi Visual',
monthlyDay: 'Hari Bulanan',
executionTime: 'Waktu Eksekusi',
invalidTimezone: 'Zona waktu tidak valid',
invalidCronExpression: 'Ekspresi cron tidak valid',
noValidExecutionTime: 'Tidak dapat menghitung waktu eksekusi yang valid',
executionTimeCalculationError: 'Gagal menghitung waktu eksekusi',
invalidFrequency: 'Frekuensi tidak valid',
invalidStartTime: 'Waktu mulai tidak valid',
startTimeMustBeFuture: 'Waktu mulai harus di masa depan',
invalidTimeFormat: 'Format waktu tidak valid (diharapkan HH:MM AM/PM)',
invalidWeekday: 'Hari kerja tidak valid: {{weekday}}',
invalidMonthlyDay: 'Hari bulanan harus antara 1-31 atau "terakhir"',
invalidOnMinute: 'Menit harus berada di antara 0-59',
invalidExecutionTime: 'Waktu eksekusi tidak valid',
executionTimeMustBeFuture: 'Waktu eksekusi harus di masa depan',
},
triggerWebhook: {
title: 'Pemicu Webhook',
nodeTitle: '🔗 Pemicu Webhook',
configPlaceholder: 'Konfigurasi pemicu webhook akan diterapkan di sini',
webhookUrl: 'URL Webhook',
webhookUrlPlaceholder: 'Klik buat untuk membuat URL webhook',
generate: 'Hasilkan',
copy: 'Salin',
test: 'Tes',
urlGenerated: 'URL Webhook berhasil dibuat',
urlGenerationFailed: 'Gagal membuat URL webhook',
urlCopied: 'URL disalin ke papan klip',
method: 'Metode',
contentType: 'Jenis Konten',
queryParameters: 'Parameter Kueri',
headerParameters: 'Parameter Header',
requestBodyParameters: 'Parameter Body Permintaan',
parameterName: 'Nama variabel',
varName: 'Nama variabel',
varType: 'Jenis',
varNamePlaceholder: 'Masukkan nama variabel...',
required: 'Diperlukan',
addParameter: 'Tambahkan',
addHeader: 'Tambahkan',
noParameters: 'Tidak ada parameter yang dikonfigurasi',
noQueryParameters: 'Tidak ada parameter kueri yang dikonfigurasi',
noHeaders: 'Tidak ada header yang dikonfigurasi',
noBodyParameters: 'Tidak ada parameter tubuh yang dikonfigurasi',
debugUrlTitle: 'Untuk percobaan, selalu gunakan URL ini',
debugUrlCopy: 'Klik untuk menyalin',
debugUrlCopied: 'Disalin!',
debugUrlPrivateAddressWarning: 'URL ini tampaknya merupakan alamat internal, yang mungkin menyebabkan permintaan webhook gagal. Anda dapat mengubah TRIGGER_URL ke alamat publik.',
errorHandling: 'Penanganan Kesalahan',
errorStrategy: 'Penanganan Kesalahan',
responseConfiguration: 'Tanggapan',
asyncMode: 'Mode Asinkron',
statusCode: 'Kode Status',
responseBody: 'Isi Tanggapan',
responseBodyPlaceholder: 'Tulis isi tanggapan Anda di sini',
headers: 'Header',
validation: {
webhookUrlRequired: 'URL Webhook diperlukan',
invalidParameterType: 'Tipe parameter "{{type}}" tidak valid untuk parameter "{{name}}"',
},
},
},
tracing: {
stopBy: 'Singgah di {{user}}',
},
tracing: {},
versionHistory: {
filter: {
empty: 'Tidak ada riwayat versi yang cocok ditemukan',
@ -953,6 +1159,8 @@ const translation = {
editField: {
releaseNotes: 'Catatan Rilis',
title: 'Titel',
titleLengthLimit: 'Judul tidak boleh melebihi {{limit}} karakter',
releaseNotesLengthLimit: 'Catatan rilis tidak boleh melebihi {{limit}} karakter',
},
action: {
copyIdSuccess: 'ID disalin ke clipboard',
@ -1003,6 +1211,18 @@ const translation = {
largeDataNoExport: 'Data besar - hanya pratinjau sebagian',
exportToolTip: 'Ekspor Variabel sebagai File',
largeData: 'Data besar, pratinjau baca-saja. Ekspor untuk melihat semua.',
listening: {
title: 'Mendengarkan peristiwa dari pemicu...',
tip: 'Sekarang Anda dapat mensimulasikan pemicu acara dengan mengirim permintaan uji ke endpoint HTTP {{nodeName}} atau menggunakannya sebagai URL callback untuk debugging acara secara langsung. Semua output dapat dilihat langsung di Variable Inspector.',
tipPlugin: 'Sekarang Anda dapat membuat acara di {{- pluginName}}, dan mengambil hasil dari acara ini di Inspektur Variabel.',
tipSchedule: 'Mendengarkan acara dari pemicu jadwal.\nJalankan berikutnya yang dijadwalkan: {{nextTriggerTime}}',
tipFallback: 'Tunggu event pemicu yang masuk. Output akan muncul di sini.',
defaultNodeName: 'pemicu ini',
defaultPluginName: 'pemicu plugin ini',
defaultScheduleTime: 'Belum dikonfigurasi',
selectedTriggers: 'pemicu yang dipilih',
stopButton: 'Berhenti',
},
},
relations: {
noDependents: 'Tidak ada tanggungan',
@ -1020,11 +1240,52 @@ const translation = {
relationsTab: 'Hubungan',
lastOutput: 'Keluaran Terakhir',
noLastRunFound: 'Tidak ada eksekusi sebelumnya ditemukan',
lastRunInputsCopied: '{{count}} input yang disalin dari proses terakhir',
},
sidebar: {
exportWarning: 'Ekspor Versi Tersimpan Saat Ini',
exportWarningDesc: 'Ini akan mengekspor versi terkini dari alur kerja Anda yang telah disimpan. Jika Anda memiliki perubahan yang belum disimpan di editor, harap simpan terlebih dahulu dengan menggunakan opsi ekspor di kanvas alur kerja.',
},
publishLimit: {
startNodeTitlePrefix: 'Tingkatkan ke',
startNodeTitleSuffix: 'buka kunci pemicu tak terbatas per alur kerja',
startNodeDesc: 'Anda telah mencapai batas 2 pemicu per alur kerja untuk paket ini. Tingkatkan paket untuk mempublikasikan alur kerja ini.',
},
error: {
startNodeRequired: 'Silakan tambahkan node awal terlebih dahulu sebelum {{operation}}',
operations: {
connectingNodes: 'menghubungkan node',
addingNodes: 'menambahkan node',
modifyingWorkflow: 'memodifikasi alur kerja',
updatingWorkflow: 'memperbarui alur kerja',
},
},
customWebhook: 'Webhook Kustom',
difyTeam: 'Tim Dify',
triggerStatus: {
enabled: 'PEICU',
disabled: 'PEICU • DINONAKTIFKAN',
},
entryNodeStatus: {
enabled: 'MULAI',
disabled: 'MULAI • NONAKTIF',
},
onboarding: {
title: 'Pilih node awal untuk memulai',
description: 'Node awal yang berbeda memiliki kemampuan yang berbeda. Jangan khawatir, kamu selalu bisa mengubahnya nanti.',
userInputFull: 'Input Pengguna (node awal asli)',
userInputDescription: 'Node awal yang memungkinkan pengaturan variabel input pengguna, dengan aplikasi web, API layanan, server MCP, dan alur kerja sebagai kemampuan alat.',
trigger: 'Pemicu',
triggerDescription: 'Pemicu dapat berfungsi sebagai node awal dari alur kerja, seperti tugas terjadwal, webhook kustom, atau integrasi dengan aplikasi lain.',
back: 'Kembali',
learnMore: 'Pelajari lebih lanjut',
aboutStartNode: 'tentang node awal.',
escTip: {
press: 'Tekan',
key: 'esc',
toDismiss: 'memberhentikan',
},
},
}
export default translation

View File

@ -354,6 +354,7 @@ const translation = {
'single-file': 'File singolo',
'uploadFileTypes': 'Caricare i tipi di file',
'maxNumberOfUploads': 'Numero massimo di caricamenti',
'maxNumberTip': 'Documento < {{docLimit}}, immagine < {{imgLimit}}, audio < {{audioLimit}}, video < {{videoLimit}}',
'multi-files': 'Elenco file',
'both': 'Ambedue',
'localUpload': 'Caricamento locale',

View File

@ -20,6 +20,7 @@ const translation = {
tokens: 'TOKEN',
user: 'UTENTE FINALE O ACCOUNT',
version: 'VERSIONE',
triggered_from: 'ATTIVATO DA',
},
pagination: {
previous: 'Prec',
@ -101,6 +102,15 @@ const translation = {
finalProcessing: 'Elaborazione Finale',
},
dateFormat: 'GG/MM/AAAA',
triggerBy: {
debugging: 'Debugging',
appRun: 'WebApp',
webhook: 'Webhook',
schedule: 'Programma',
plugin: 'Plugin',
ragPipelineRun: 'Pipeline RAG',
ragPipelineDebugging: 'Debugging RAG',
},
}
export default translation

View File

@ -127,7 +127,11 @@ const translation = {
},
},
launch: 'Lanciare',
enableTooltip: {},
enableTooltip: {
description: 'Per abilitare questa funzione, aggiungi un nodo di input utente alla tela. (Potrebbe già esistere nella bozza, efficace dopo la pubblicazione)',
learnMore: 'Scopri di più',
},
title: 'App Web',
},
apiInfo: {
title: 'API del servizio backend',
@ -139,7 +143,14 @@ const translation = {
running: 'In servizio',
disable: 'Disabilita',
},
triggerInfo: {},
triggerInfo: {
title: 'Inneschi',
explanation: 'Gestione dei trigger del flusso di lavoro',
triggersAdded: 'Trigger aggiunti',
noTriggerAdded: 'Nessun trigger aggiunto',
triggerStatusDescription: 'Lo stato del nodo trigger appare qui. (Può già esistere in bozza, prende effetto dopo la pubblicazione)',
learnAboutTriggers: 'Scopri i Trigger',
},
disableTooltip: {
triggerMode: 'La funzionalità {{feature}} non è supportata in modalità Nodo Trigger.',
},

View File

@ -106,6 +106,8 @@ const translation = {
triggerEvents: {
unlimited: 'Eventi di attivazione illimitati',
tooltip: 'Il numero di eventi che avviano automaticamente i flussi di lavoro tramite trigger Plugin, Pianificazione o Webhook.',
sandbox: '{{count,number}} Eventi di attivazione',
professional: '{{count,number}} Eventi attivati/mese',
},
workflowExecution: {
priority: 'Esecuzione del flusso di lavoro prioritario',
@ -115,6 +117,11 @@ const translation = {
},
startNodes: {
unlimited: 'Eventi di attivazione/workflow illimitati',
limited: 'Fino a {{count}} trigger/workflow',
},
title: {
plans: 'piani',
description: 'Seleziona il piano che meglio si adatta alle esigenze del tuo team.',
},
},
plans: {
@ -140,16 +147,14 @@ const translation = {
description:
'Ottieni tutte le capacità e il supporto per sistemi mission-critical su larga scala.',
includesTitle: 'Tutto nel piano Team, più:',
features: {
},
features: ['Soluzioni di Distribuzione Scalabili di Classe Aziendale', 'Autorizzazione alla Licenza Commerciale', 'Funzionalità Esclusive per le Aziende', 'Molteplici Spazi di Lavoro e Gestione Aziendale', 'SSO', 'SLA negoziati dai partner Dify', 'Sicurezza e Controlli Avanzati', 'Aggiornamenti e manutenzione ufficiali di Dify', 'Assistenza Tecnica Professionale'],
price: 'Personalizzato',
for: 'Per team di grandi dimensioni',
btnText: 'Contatta le vendite',
priceTip: 'Solo fatturazione annuale',
},
community: {
features: {
},
features: ['Tutte le funzionalità principali rilasciate nel repository pubblico', 'Spazio di lavoro singolo', 'Conforme alla Licenza Open Source Dify'],
name: 'Comunità',
btnText: 'Inizia con la comunità',
includesTitle: 'Caratteristiche Gratuite:',
@ -158,8 +163,7 @@ const translation = {
for: 'Per utenti individuali, piccole squadre o progetti non commerciali',
},
premium: {
features: {
},
features: ['Affidabilità Autogestita dai Vari Provider Cloud', 'Spazio di lavoro singolo', 'Personalizzazione del Logo e del Marchio dell\'App Web', 'Assistenza Prioritaria via Email e Chat'],
name: 'Premium',
priceTip: 'Basato su Cloud Marketplace',
includesTitle: 'Tutto dalla Community, oltre a:',
@ -195,6 +199,7 @@ const translation = {
vectorSpaceTooltip: 'I documenti con la modalità di indicizzazione ad alta qualità consumeranno risorse di Knowledge Data Storage. Quando il Knowledge Data Storage raggiunge il limite, nuovi documenti non verranno caricati.',
perMonth: 'al mese',
triggerEvents: 'Eventi di attivazione',
resetsIn: 'Si resetta tra {{count,number}} giorni',
},
teamMembers: 'Membri del team',
triggerLimitModal: {

View File

@ -65,6 +65,12 @@ const translation = {
yes: 'Sì',
confirmAction: 'Per favore conferma la tua azione.',
deleteConfirmTitle: 'Eliminare?',
noSearchResults: 'Nessun {{content}} è stato trovato',
resetKeywords: 'Reimposta parole chiave',
selectCount: '{{count}} Selezionato',
searchCount: 'Trova {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'Adesso',
},
errorMsg: {
fieldRequired: '{{field}} è obbligatorio',
@ -73,6 +79,7 @@ const translation = {
placeholder: {
input: 'Per favore inserisci',
select: 'Per favore seleziona',
search: 'Cerca...',
},
voice: {
language: {
@ -799,6 +806,13 @@ const translation = {
label: {
optional: '(Facoltativo)',
},
noData: 'Nessun dato',
dynamicSelect: {
error: 'Caricamento delle opzioni non riuscito',
noData: 'Nessuna opzione disponibile',
loading: 'Caricamento opzioni...',
selected: '{{count}} selezionato',
},
}
export default translation

View File

@ -82,7 +82,10 @@ const translation = {
ok: 'OK',
},
learnMore: 'Ulteriori informazioni',
sort: {},
sort: {
uploadTime: 'Ora di caricamento',
hitCount: 'Conteggio Recuperi',
},
},
metadata: {
title: 'Metadati',

View File

@ -34,6 +34,7 @@ const translation = {
publishPipeline: {
success: {
message: 'Pipeline di conoscenza pubblicata',
tip: '<CustomLink>Vai a Documenti</CustomLink> per aggiungere o gestire i documenti.',
},
error: {
message: 'Impossibile pubblicare la pipeline delle conoscenze',
@ -56,6 +57,7 @@ const translation = {
details: {
structure: 'Struttura',
structureTooltip: 'La struttura a blocchi determina il modo in cui i documenti vengono suddivisi e indicizzati, offrendo le modalità Generale, Padre-Figlio e Domande e risposte, ed è univoca per ogni knowledge base.',
createdBy: 'Da {{author}}',
},
testRun: {
steps: {
@ -112,23 +114,32 @@ const translation = {
characters: 'personaggi',
title: 'Aggiungi documenti',
backToDataSource: 'Origine dati',
selectOnlineDocumentTip: 'Elabora fino a {{count}} pagine',
selectOnlineDriveTip: 'Elabora fino a {{count}} file, massimo {{fileSize}} MB ciascuno',
},
documentSettings: {
title: 'Impostazioni documento',
},
onlineDocument: {},
onlineDocument: {
pageSelectorTitle: '{{name}} pagine',
},
onlineDrive: {
breadcrumbs: {
allFiles: 'Tutti i file',
searchPlaceholder: 'Cerca file...',
allBuckets: 'Tutti i bucket di archiviazione cloud',
searchResult: 'Trova {{searchResultsLength}} elementi nella cartella "{{folderName}}"',
},
emptyFolder: 'Questa cartella è vuota',
resetKeywords: 'Reimposta le parole chiave',
emptySearchResult: 'Nessun oggetto trovato',
notSupportedFileType: 'Questo tipo di file non è supportato',
notConnected: '{{name}} non è connesso',
notConnectedTip: 'Per sincronizzarsi con {{name}}, è necessario prima stabilire la connessione a {{name}}.',
},
credentialSelector: {
name: '{{credentialName}}\'s {{pluginName}}',
},
credentialSelector: {},
conversion: {
confirm: {
content: 'Questa azione è permanente. Non sarà possibile ripristinare il metodo precedente. Si prega di confermare per convertire.',
@ -149,6 +160,7 @@ const translation = {
pipelineNameAndIcon: 'Nome e icona della pipeline',
knowledgeNameAndIconPlaceholder: 'Inserisci il nome della Knowledge Base',
knowledgeDescriptionPlaceholder: 'Descrivi cosa c\'è in questa Knowledge Base. Una descrizione dettagliata consente all\'intelligenza artificiale di accedere al contenuto del set di dati in modo più accurato. Se vuoto, Dify utilizzerà la strategia di hit predefinita. (Facoltativo)',
configurationTip: 'Configura {{pluginName}}',
}
export default translation

View File

@ -239,6 +239,10 @@ const translation = {
title: 'API di servizio',
enabled: 'In servizio',
},
docAllEnabled_one: '{{count}} documento abilitato',
docAllEnabled_other: 'Tutti i documenti {{count}} abilitati',
partialEnabled_one: 'Totale di {{count}} documenti, {{num}} disponibili',
partialEnabled_other: 'Totale di {{count}} documenti, {{num}} disponibili',
}
export default translation

View File

@ -52,6 +52,7 @@ const translation = {
},
isAboutToExpire: {
summary: 'Non preoccuparti — ciò non influenzerà il tuo abbonamento attuale, ma non otterrai lo sconto per l\'istruzione al momento del rinnovo a meno che tu non verifichi nuovamente il tuo stato.',
title: 'Il tuo stato educativo scadrà il {{date}}',
},
stillInEducation: {
title: 'Ancora in formazione?',

View File

@ -28,10 +28,12 @@ const translation = {
loading: 'Elaborazione... Attendere prego',
error: 'Si è verificato un errore durante l\'esecuzione',
viewDetails: 'Mostra dettagli',
footerTip: 'In modalità di test, anteprima di fino a {{count}} frammenti',
},
},
ragToolSuggestions: {
title: 'Suggerimenti per RAG',
noRecommendationPlugins: 'Nessun plugin consigliato, trova di più in <CustomLink>Marketplace</CustomLink>',
},
}

View File

@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'Abbonamenti',
listNum: 'abbonamenti {{num}}',
empty: {
title: 'Nessun abbonamento',
button: 'Nuovo abbonamento',
},
createButton: {
oauth: 'Nuovo abbonamento con OAuth',
apiKey: 'Nuovo abbonamento con chiave API',
manual: 'Incolla l\'URL per creare un nuovo abbonamento',
},
createSuccess: 'Abbonamento creato con successo',
createFailed: 'Impossibile creare l\'abbonamento',
maxCount: 'Max {{num}} abbonamenti',
selectPlaceholder: 'Seleziona abbonamento',
noSubscriptionSelected: 'Nessun abbonamento selezionato',
subscriptionRemoved: 'Abbonamento rimosso',
list: {
title: 'Abbonamenti',
addButton: 'Aggiungi',
tip: 'Ricevi eventi tramite Sottoscrizione',
item: {
enabled: 'Abilitato',
disabled: 'Disabilitato',
credentialType: {
api_key: 'Chiave API',
oauth2: 'OAuth',
unauthorized: 'Manuale',
},
actions: {
delete: 'Elimina',
deleteConfirm: {
title: 'Eliminare {{name}}?',
success: 'Abbonamento {{name}} eliminato con successo',
error: 'Impossibile eliminare l\'abbonamento {{name}}',
content: 'Una volta eliminato, questo abbonamento non può essere recuperato. Si prega di confermare.',
contentWithApps: 'L\'abbonamento attuale è referenziato da {{count}} applicazioni. La sua cancellazione farà sì che le applicazioni configurate smettano di ricevere gli eventi dell\'abbonamento.',
confirm: 'Conferma eliminazione',
cancel: 'Annulla',
confirmInputWarning: 'Per favore inserisci il nome corretto per confermare.',
confirmInputPlaceholder: 'Inserisci "{{name}}" per confermare.',
confirmInputTip: 'Per favore inserisci “{{name}}” per confermare.',
},
},
status: {
active: 'Attivo',
inactive: 'Inattivo',
},
usedByNum: 'Utilizzato da {{num}} flussi di lavoro',
noUsed: 'Nessun flusso di lavoro utilizzato',
},
},
addType: {
title: 'Aggiungi abbonamento',
description: 'Scegli come vuoi creare il tuo abbonamento al trigger',
options: {
apikey: {
title: 'Crea con chiave API',
description: 'Crea automaticamente un abbonamento utilizzando le credenziali API',
},
oauth: {
title: 'Crea con OAuth',
description: 'Autorizza con una piattaforma di terze parti per creare un abbonamento',
clientSettings: 'Impostazioni del client OAuth',
clientTitle: 'Client OAuth',
default: 'Predefinito',
custom: 'Personalizzato',
},
manual: {
title: 'Configurazione manuale',
description: 'Incolla l\'URL per creare un nuovo abbonamento',
tip: 'Configura manualmente l\'URL sulla piattaforma di terze parti',
},
},
},
},
modal: {
steps: {
verify: 'Verifica',
configuration: 'Configurazione',
},
common: {
cancel: 'Annulla',
back: 'Indietro',
next: 'Avanti',
create: 'Crea',
verify: 'Verifica',
authorize: 'Autorizzare',
creating: 'Creazione...',
verifying: 'Verifica in corso...',
authorizing: 'Autorizzazione in corso...',
},
oauthRedirectInfo: 'Poiché non sono stati trovati segreti client di sistema per questo provider di strumenti, è necessario configurarlo manualmente; per redirect_uri, si prega di utilizzare',
apiKey: {
title: 'Crea con chiave API',
verify: {
title: 'Verifica credenziali',
description: 'Fornisci le tue credenziali API per verificare l\'accesso',
error: 'Verifica delle credenziali fallita. Controlla la tua chiave API.',
success: 'Credenziali verificate con successo',
},
configuration: {
title: 'Configura abbonamento',
description: 'Imposta i parametri del tuo abbonamento',
},
},
oauth: {
title: 'Crea con OAuth',
authorization: {
title: 'Autorizzazione OAuth',
description: 'Autorizza Dify ad accedere al tuo account',
redirectUrl: 'URL di reindirizzamento',
redirectUrlHelp: 'Utilizza questo URL nella configurazione della tua app OAuth',
authorizeButton: 'Autorizza con {{provider}}',
waitingAuth: 'In attesa di autorizzazione...',
authSuccess: 'Autorizzazione riuscita',
authFailed: 'Impossibile ottenere le informazioni di autorizzazione OAuth',
waitingJump: 'Autorizzato, in attesa del salto',
},
configuration: {
title: 'Configura abbonamento',
description: 'Configura i parametri del tuo abbonamento dopo l\'autorizzazione',
success: 'Configurazione OAuth completata con successo',
failed: 'Configurazione OAuth non riuscita',
},
remove: {
success: 'Rimozione di OAuth riuscita',
failed: 'Rimozione OAuth fallita',
},
save: {
success: 'Configurazione OAuth salvata con successo',
},
},
manual: {
title: 'Configurazione manuale',
description: 'Configura manualmente il tuo abbonamento al webhook',
logs: {
title: 'Registro delle richieste',
request: 'Richiesta',
loading: 'In attesa della richiesta da {{pluginName}}...',
},
},
form: {
subscriptionName: {
label: 'Nome dell\'abbonamento',
placeholder: 'Inserisci il nome dell\'abbonamento',
required: 'Il nome dell\'abbonamento è obbligatorio',
},
callbackUrl: {
label: 'URL di richiamata',
description: 'Questa URL riceverà eventi webhook',
tooltip: 'Fornire un endpoint accessibile pubblicamente che possa ricevere richieste di callback dal fornitore del trigger.',
placeholder: 'Generazione...',
privateAddressWarning: 'Questo URL sembra essere un indirizzo interno, il che potrebbe causare il fallimento delle richieste webhook. Puoi modificare TRIGGER_URL con un indirizzo pubblico.',
},
},
errors: {
createFailed: 'Impossibile creare l\'abbonamento',
verifyFailed: 'Impossibile verificare le credenziali',
authFailed: 'Autorizzazione fallita',
networkError: 'Errore di rete, riprova',
},
},
events: {
title: 'Eventi disponibili',
description: 'Eventi a cui questo plugin trigger può iscriversi',
empty: 'Nessun evento disponibile',
event: 'Evento',
events: 'Eventi',
actionNum: '{{num}} {{event}} INCLUSO',
item: {
parameters: 'parametri {{count}}',
noParameters: 'Nessun parametro',
},
output: 'Uscita',
},
node: {
status: {
warning: 'Disconnetti',
},
},
}
export default translation

View File

@ -7,6 +7,7 @@ const translation = {
models: 'Modelli',
all: 'Tutto',
datasources: 'Fonti dei dati',
triggers: 'Trigger',
},
categorySingle: {
bundle: 'Fascio',
@ -15,6 +16,7 @@ const translation = {
extension: 'Estensione',
tool: 'Strumento',
datasource: 'Origine dati',
trigger: 'Innescare',
},
list: {
source: {
@ -45,6 +47,7 @@ const translation = {
viewDetail: 'vedi dettagli',
checkUpdate: 'Controlla l\'aggiornamento',
info: 'Informazioni sul plugin',
back: 'Indietro',
},
toolSelector: {
paramsTip1: 'Controlla i parametri di inferenza LLM.',
@ -306,6 +309,12 @@ const translation = {
excludeUpdate: 'I seguenti {{num}} plugin non si aggiorneranno automaticamente',
updateTimeTitle: 'Tempo di aggiornamento',
},
readmeInfo: {
title: 'LEGGIMI',
needHelpCheckReadme: 'Hai bisogno di aiuto? Controlla il README.',
noReadmeAvailable: 'Nessun README disponibile',
failedToFetch: 'Impossibile recuperare il README',
},
}
export default translation

View File

@ -117,6 +117,15 @@ const translation = {
currentWorkflow: 'Flusso di lavoro corrente',
currentView: 'Vista corrente',
moreActions: 'Altre azioni',
listening: 'Ascoltando',
chooseStartNodeToRun: 'Scegli il nodo di partenza da eseguire',
runAllTriggers: 'Esegui tutti i trigger',
features: 'Caratteristiche',
featuresDescription: 'Migliorare l\'esperienza utente dell\'app web',
featuresDocLink: 'Scopri di più',
needAdd: 'È necessario aggiungere il nodo {{node}}',
needStartNode: 'Deve essere aggiunto almeno un nodo iniziale',
workflowAsToolDisabledHint: 'Pubblica il flusso di lavoro più recente e assicurati che ci sia un nodo di Input Utente collegato prima di configurarlo come strumento.',
},
env: {
envPanelTitle: 'Variabili d\'Ambiente',
@ -224,6 +233,7 @@ const translation = {
rerankModelRequired: 'Prima di attivare il modello di reranking, conferma che il modello è stato configurato correttamente nelle impostazioni.',
toolParameterRequired: '{{field}}: il parametro [{{param}}] è obbligatorio',
noValidTool: '{{field}} nessuno strumento valido selezionato',
startNodeRequired: 'Per favore aggiungi prima un nodo iniziale prima di {{operation}}',
},
singleRun: {
testRun: 'Esecuzione Test ',
@ -255,6 +265,21 @@ const translation = {
'addAll': 'Aggiungi tutto',
'sources': 'Fonti',
'searchDataSource': 'Cerca origine dati',
'start': 'Inizia',
'searchTrigger': 'Trigger di ricerca...',
'allTriggers': 'Tutti i trigger',
'noPluginsFound': 'Nessun plugin trovato',
'requestToCommunity': 'Richieste alla comunità',
'featuredTools': 'In evidenza',
'showMoreFeatured': 'Mostra di più',
'showLessFeatured': 'Mostra di meno',
'installed': 'Installato',
'pluginByAuthor': 'Da {{author}}',
'usePlugin': 'Strumento di selezione',
'hideActions': 'Nascondi strumenti',
'noFeaturedPlugins': 'Scopri altri strumenti nel Marketplace',
'noFeaturedTriggers': 'Scopri altri trigger nel Marketplace',
'startDisabledTip': 'Il nodo di attivazione e il nodo di input utente sono mutualmente esclusivi.',
},
blocks: {
'start': 'Inizio',
@ -281,6 +306,10 @@ const translation = {
'loop': 'Anello',
'knowledge-index': 'Knowledge base',
'datasource': 'Origine dati',
'originalStartNode': 'nodo iniziale originale',
'trigger-schedule': 'Trigger di pianificazione',
'trigger-webhook': 'Trigger Webhook',
'trigger-plugin': 'Attivatore del plugin',
},
blocksAbout: {
'start': 'Definisci i parametri iniziali per l\'avvio di un flusso di lavoro',
@ -314,6 +343,9 @@ const translation = {
'loop': 'Esegui un ciclo di logica fino a quando la condizione di terminazione non viene soddisfatta o il numero massimo di cicli viene raggiunto.',
'datasource': 'Origine dati Informazioni',
'knowledge-index': 'Base di conoscenza su',
'trigger-schedule': 'Trigger di flusso di lavoro basato sul tempo che avvia i flussi di lavoro secondo un programma',
'trigger-webhook': 'Il Webhook Trigger riceve invii HTTP da sistemi di terze parti per attivare automaticamente i flussi di lavoro.',
'trigger-plugin': 'Trigger di integrazione di terze parti che avvia flussi di lavoro da eventi di piattaforme esterne',
},
operator: {
zoomIn: 'Zoom In',
@ -355,6 +387,8 @@ const translation = {
maximize: 'Massimizza Canvas',
scrollToSelectedNode: 'Scorri fino al nodo selezionato',
optional_and_hidden: '(opzionale e nascosto)',
goTo: 'Vai a',
startNode: 'Nodo iniziale',
},
nodes: {
common: {
@ -813,6 +847,8 @@ const translation = {
comma: ',',
parallelPanelDesc: 'In modalità parallela, le attività nell\'iterazione supportano l\'esecuzione parallela.',
answerNodeWarningDesc: 'Avviso in modalità parallela: i nodi di risposta, le assegnazioni di variabili di conversazione e le operazioni di lettura/scrittura persistenti all\'interno delle iterazioni possono causare eccezioni.',
flattenOutput: 'Appiattisci output',
flattenOutputDesc: 'Quando abilitato, se tutti i risultati delle iterazioni sono array, saranno uniti in un unico array. Quando disabilitato, i risultati manterranno una struttura di array nidificati.',
},
note: {
addNote: 'Aggiungi Nota',
@ -989,6 +1025,144 @@ const translation = {
embeddingModelIsInvalid: 'Il modello di embedding non è valido',
rerankingModelIsInvalid: 'Il modello di riorganizzazione è non valido',
},
triggerPlugin: {
authorized: 'Autorizzato',
notConfigured: 'Non configurato',
notAuthorized: 'Non autorizzato',
selectSubscription: 'Seleziona abbonamento',
availableSubscriptions: 'Abbonamenti disponibili',
addSubscription: 'Aggiungi Nuovo Abbonamento',
removeSubscription: 'Rimuovi abbonamento',
subscriptionRemoved: 'Abbonamento rimosso con successo',
error: 'Errore',
configuration: 'Configurazione',
remove: 'Rimuovi',
or: 'O',
useOAuth: 'Usa OAuth',
useApiKey: 'Usa la chiave API',
authenticationFailed: 'Autenticazione fallita',
authenticationSuccess: 'Autenticazione riuscita',
oauthConfigFailed: 'La configurazione di OAuth è fallita',
configureOAuthClient: 'Configura client OAuth',
oauthClientDescription: 'Configura le credenziali del client OAuth per abilitare l\'autenticazione',
oauthClientSaved: 'Configurazione del client OAuth salvata con successo',
configureApiKey: 'Configura la chiave API',
apiKeyDescription: 'Configura le credenziali della chiave API per l\'autenticazione',
apiKeyConfigured: 'Chiave API configurata con successo',
configurationFailed: 'Configurazione non riuscita',
failedToStart: 'Impossibile avviare il processo di autenticazione',
credentialsVerified: 'Credenziali verificate con successo',
credentialVerificationFailed: 'Verifica delle credenziali non riuscita',
verifyAndContinue: 'Verifica e continua',
configureParameters: 'Configura Parametri',
parametersDescription: 'Configura i parametri e le proprietà del trigger',
configurationComplete: 'Configurazione completata',
configurationCompleteDescription: 'Il tuo trigger è stato configurato correttamente',
configurationCompleteMessage: 'La configurazione del tuo trigger è ora completa e pronta all\'uso.',
parameters: 'Parametri',
properties: 'Proprietà',
propertiesDescription: 'Proprietà di configurazione aggiuntive per questo trigger',
noConfigurationRequired: 'Nessuna configurazione aggiuntiva necessaria per questo trigger.',
subscriptionName: 'Nome dell\'abbonamento',
subscriptionNameDescription: 'Inserisci un nome univoco per questa sottoscrizione del trigger',
subscriptionNamePlaceholder: 'Inserisci il nome dell\'abbonamento...',
subscriptionNameRequired: 'Il nome dell\'abbonamento è obbligatorio',
subscriptionRequired: 'È necessario abbonarsi',
},
triggerSchedule: {
title: 'Programma',
nodeTitle: 'Attivatore della pianificazione',
notConfigured: 'Non configurato',
useCronExpression: 'Usa un\'espressione cron',
useVisualPicker: 'Usa il selettore visivo',
frequency: {
label: 'FREQUENZA',
hourly: 'orario',
daily: 'Quotidiano',
weekly: 'Settimanale',
monthly: 'Mensile',
},
selectFrequency: 'Seleziona frequenza',
frequencyLabel: 'Frequenza',
nextExecution: 'Prossima esecuzione',
weekdays: 'Giorni della settimana',
time: 'Tempo',
cronExpression: 'Espressione Cron',
nextExecutionTime: 'PROSSIMA ORA DI ESECUZIONE',
nextExecutionTimes: 'Prossimi 5 tempi di esecuzione',
startTime: 'Orario di inizio',
executeNow: 'Esecuzione adesso',
selectDateTime: 'Seleziona Data e Ora',
hours: 'Ore',
minutes: 'Minuti',
onMinute: 'In un minuto',
days: 'Giorni',
lastDay: 'Ultimo giorno',
lastDayTooltip: 'Non tutti i mesi hanno 31 giorni. Usa l\'opzione \'ultimo giorno\' per selezionare l\'ultimo giorno di ogni mese.',
mode: 'Modalità',
timezone: 'Fuso orario',
visualConfig: 'Configurazione visiva',
monthlyDay: 'Giorno del mese',
executionTime: 'Tempo di esecuzione',
invalidTimezone: 'Fuso orario non valido',
invalidCronExpression: 'Espressione cron non valida',
noValidExecutionTime: 'Non è possibile calcolare un tempo di esecuzione valido',
executionTimeCalculationError: 'Impossibile calcolare i tempi di esecuzione',
invalidFrequency: 'Frequenza non valida',
invalidStartTime: 'Ora di inizio non valida',
startTimeMustBeFuture: 'L\'orario di inizio deve essere nel futuro',
invalidTimeFormat: 'Formato orario non valido (previsto HH:MM AM/PM)',
invalidWeekday: 'Giorno della settimana non valido: {{weekday}}',
invalidMonthlyDay: 'Il giorno del mese deve essere compreso tra 1 e 31 o \'ultimo\'',
invalidOnMinute: 'I minuti devono essere compresi tra 0 e 59',
invalidExecutionTime: 'Tempo di esecuzione non valido',
executionTimeMustBeFuture: 'Il tempo di esecuzione deve essere nel futuro',
},
triggerWebhook: {
title: 'Trigger Webhook',
nodeTitle: '🔗 Trigger del Webhook',
configPlaceholder: 'La configurazione del trigger del webhook sarà implementata qui',
webhookUrl: 'URL del webhook',
webhookUrlPlaceholder: 'Fai clic su genera per creare l\'URL del webhook',
generate: 'Generare',
copy: 'Copia',
test: 'Test',
urlGenerated: 'URL del webhook generato con successo',
urlGenerationFailed: 'Impossibile generare l\'URL del webhook',
urlCopied: 'URL copiato negli appunti',
method: 'Metodo',
contentType: 'Tipo di contenuto',
queryParameters: 'Parametri di query',
headerParameters: 'Parametri dell\'intestazione',
requestBodyParameters: 'Parametri del corpo della richiesta',
parameterName: 'Nome della variabile',
varName: 'Nome della variabile',
varType: 'Tipo',
varNamePlaceholder: 'Inserisci il nome della variabile...',
required: 'Obbligatorio',
addParameter: 'Aggiungi',
addHeader: 'Aggiungi',
noParameters: 'Nessun parametro configurato',
noQueryParameters: 'Nessun parametro di query configurato',
noHeaders: 'Nessun header configurato',
noBodyParameters: 'Nessun parametro del corpo configurato',
debugUrlTitle: 'Per le prove, usa sempre questo URL',
debugUrlCopy: 'Clicca per copiare',
debugUrlCopied: 'Copiato!',
debugUrlPrivateAddressWarning: 'Questo URL sembra essere un indirizzo interno, il che potrebbe causare il fallimento delle richieste webhook. Puoi cambiare TRIGGER_URL con un indirizzo pubblico.',
errorHandling: 'Gestione degli errori',
errorStrategy: 'Gestione degli errori',
responseConfiguration: 'Risposta',
asyncMode: 'Modalità asincrona',
statusCode: 'Codice di stato',
responseBody: 'Corpo della risposta',
responseBodyPlaceholder: 'Scrivi qui il corpo della tua risposta',
headers: 'Intestazioni',
validation: {
webhookUrlRequired: 'L\'URL del webhook è obbligatorio',
invalidParameterType: 'Tipo di parametro non valido "{{type}}" per il parametro "{{name}}"',
},
},
},
tracing: {
stopBy: 'Interrotto da {{user}}',
@ -1063,6 +1237,18 @@ const translation = {
largeData: 'Dati di grandi dimensioni, anteprima di sola lettura. Esporta per visualizzare tutto.',
exportToolTip: 'Esporta variabile come file',
largeDataNoExport: 'Dati di grandi dimensioni - solo anteprima parziale',
listening: {
title: 'In ascolto degli eventi dai trigger...',
tip: 'Ora puoi simulare i trigger degli eventi inviando richieste di prova all\'endpoint HTTP {{nodeName}} oppure usarlo come URL di callback per il debug degli eventi in tempo reale. Tutti i risultati possono essere visualizzati direttamente nel Visualizzatore di Variabili.',
tipPlugin: 'Ora puoi creare eventi in {{- pluginName}} e recuperare i risultati di questi eventi nell\'Ispettore Variabili.',
tipSchedule: 'Ascolto degli eventi dai trigger del programma.\nProssima esecuzione programmata: {{nextTriggerTime}}',
tipFallback: 'Attendere gli eventi trigger in arrivo. I risultati appariranno qui.',
defaultNodeName: 'questo trigger',
defaultPluginName: 'questo plugin attiva',
defaultScheduleTime: 'Non configurato',
selectedTriggers: 'trigger selezionati',
stopButton: 'Fermati',
},
},
settingsTab: 'Impostazioni',
lastRunTab: 'Ultima corsa',
@ -1080,11 +1266,52 @@ const translation = {
copyLastRunError: 'Impossibile copiare gli input dell\'ultima esecuzione',
noLastRunFound: 'Nessuna esecuzione precedente trovata',
lastOutput: 'Ultimo output',
lastRunInputsCopied: '{{count}} input copiato dall\'ultima esecuzione',
},
sidebar: {
exportWarning: 'Esporta la versione salvata corrente',
exportWarningDesc: 'Questo exporterà l\'attuale versione salvata del tuo flusso di lavoro. Se hai modifiche non salvate nell\'editor, ti preghiamo di salvarle prima utilizzando l\'opzione di esportazione nel canvas del flusso di lavoro.',
},
publishLimit: {
startNodeTitlePrefix: 'Aggiorna a',
startNodeTitleSuffix: 'sblocca trigger illimitati per flusso di lavoro',
startNodeDesc: 'Hai raggiunto il limite di 2 trigger per flusso di lavoro per questo piano. Effettua l\'upgrade per pubblicare questo flusso di lavoro.',
},
error: {
startNodeRequired: 'Per favore aggiungi prima un nodo iniziale prima di {{operation}}',
operations: {
connectingNodes: 'collegamento dei nodi',
addingNodes: 'aggiunta di nodi',
modifyingWorkflow: 'modifica del flusso di lavoro',
updatingWorkflow: 'aggiornamento del flusso di lavoro',
},
},
customWebhook: 'Webhook personalizzato',
difyTeam: 'Team Dify',
triggerStatus: {
enabled: 'GRILLETTO',
disabled: 'ATTIVATORE • DISABILITATO',
},
entryNodeStatus: {
enabled: 'INIZIO',
disabled: 'AVVIO • DISABILITATO',
},
onboarding: {
title: 'Seleziona un nodo di partenza per iniziare',
description: 'Nodi di partenza diversi hanno capacità diverse. Non preoccuparti, potrai sempre cambiarli più tardi.',
userInputFull: 'Input utente (nodo iniziale originale)',
userInputDescription: 'Nodo iniziale che consente di impostare variabili di input dell\'utente, con app web, API di servizio, server MCP e workflow come funzionalità degli strumenti.',
trigger: 'Innescare',
triggerDescription: 'I trigger possono fungere da nodo iniziale di un flusso di lavoro, come attività programmate, webhook personalizzati o integrazioni con altre app.',
back: 'Indietro',
learnMore: 'Scopri di più',
aboutStartNode: 'riguardo al nodo iniziale.',
escTip: {
press: 'Premi',
key: 'esc',
toDismiss: 'licenziare',
},
},
}
export default translation

Some files were not shown because too many files have changed in this diff Show More