import('./components/AdminPublicFormList'), 'AdminPublicFormList');
const { AdminPublicFormPage } = lazy(() => import('./components/AdminPublicFormPage'), 'AdminPublicFormPage');
diff --git a/packages/plugins/@nocobase/plugin-public-forms/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-public-forms/src/locale/de-DE.json
new file mode 100644
index 0000000000..8ee53befde
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-public-forms/src/locale/de-DE.json
@@ -0,0 +1,18 @@
+{
+ "Enable form": "Formular aktivieren",
+ "Public forms": "Öffentliche Formulare",
+ "Add New": "Neu hinzufügen",
+ "Type": "Typ",
+ "Open form": "Öffentliches Formular öffnen",
+ "Set password": "Passwort festlegen",
+ "Copy link": "Link kopieren",
+ "QR code": "QR-Code",
+ "The form is not enabled and cannot be accessed": "Das Formular ist nicht aktiviert und kann nicht aufgerufen werden",
+ "Link copied successfully": "Link erfolgreich kopiert",
+ "After successful submission": "Nach erfolgreicher Übermittlung",
+ "Enable password": "Passwort aktivieren",
+ "Prompt after successful submission": "Hinweis nach erfolgreicher Übermittlung",
+ "Form": "Normales Formular",
+ "# Submitted successfully!\nThis is a demo text, **supports Markdown syntax**.": "# Erfolgreich übermittelt!\nDies ist ein Beispieltext, **unterstützt Markdown-Syntax**.",
+ "The form is not found": "Formular nicht gefunden"
+}
diff --git a/packages/plugins/@nocobase/plugin-public-forms/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-public-forms/src/locale/en-US.json
new file mode 100644
index 0000000000..e9516a6afd
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-public-forms/src/locale/en-US.json
@@ -0,0 +1,18 @@
+{
+ "Enable form": "Enable form",
+ "Public forms": "Public forms",
+ "Add New": "Add New",
+ "Type": "Type",
+ "Open form": "Open form",
+ "Set password": "Set password",
+ "Copy link": "Copy link",
+ "QR code": "QR code",
+ "The form is not enabled and cannot be accessed": "The form is not enabled and cannot be accessed",
+ "Link copied successfully": "Link copied successfully",
+ "After successful submission": "After successful submission",
+ "Enable password": "Enable password",
+ "Prompt after successful submission": "Prompt after successful submission",
+ "Form": "Form",
+ "# Submitted successfully!\nThis is a demo text, **supports Markdown syntax**.": "# Submitted successfully!\nThis is a demo text, **supports Markdown syntax**.",
+ "The form is not found": "The form is not found"
+}
diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json
index f0c078d360..570ccce29b 100644
--- a/packages/plugins/@nocobase/plugin-sample-hello/package.json
+++ b/packages/plugins/@nocobase/plugin-sample-hello/package.json
@@ -1,6 +1,6 @@
{
"name": "@nocobase/plugin-sample-hello",
- "version": "1.6.0",
+ "version": "1.6.2",
"main": "./dist/server/index.js",
"displayName": "Hello",
"displayName.zh-CN": "Hello",
diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/package.json b/packages/plugins/@nocobase/plugin-snapshot-field/package.json
index 2e4685c796..bcb93aeb2a 100644
--- a/packages/plugins/@nocobase/plugin-snapshot-field/package.json
+++ b/packages/plugins/@nocobase/plugin-snapshot-field/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "数据表字段:关系快照",
"description": "When adding a new record, create a snapshot for its relational record and save in the new record. The snapshot will not be updated when the relational record is updated.",
"description.zh-CN": "在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。关系数据更新时,快照不会更新。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/field-snapshot",
diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/de-DE.json
new file mode 100644
index 0000000000..b2b556db0d
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/de-DE.json
@@ -0,0 +1,13 @@
+{
+ "Detail": "Detail",
+ "Snapshot": "Snapshot",
+ "View record": "Datensatz anzeigen",
+ "Add block": "Block hinzufügen",
+ "Allow linking to multiple records": "Verknüpfung mit mehreren Datensätzen erlauben",
+ "When adding a new record, create a snapshot for its relational record and save in the current record. The snapshot is not updated when the record is subsequently updated.": "Beim Hinzufügen eines neuen Datensatzes wird ein Snapshot für seinen Beziehungsdatensatz erstellt und im aktuellen Datensatz gespeichert. Der Snapshot wird nicht aktualisiert, wenn der Datensatz später aktualisiert wird.",
+ "The association field to snapshot": "Das Verknüpfungsfeld für den Snapshot",
+ "Snapshot the snapshot's association fields": "Snapshot der Verknüpfungsfelder des Snapshots",
+ "Please select": "Bitte auswählen",
+ "When a record is created, association data is backed up in a snapshot": "Wenn ein Datensatz erstellt wird, werden Verknüpfungsdaten in einem Snapshot gesichert",
+ "Snapshot data": "Snapshot-Daten"
+}
diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json
index 8dc3322940..cfd74426d8 100644
--- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json
+++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json
@@ -1,11 +1,13 @@
{
"Detail": "Dettaglio",
- "Snapshot": "Snapshot",
- "View record": "Visualizza record",
+ "Snapshot": "Snapshot",
"Add block": "Aggiungi blocco",
- "Allow linking to multiple records": "Consenti collegamento a più record",
"When adding a new record, create a snapshot for its relational record and save in the current record. The snapshot is not updated when the record is subsequently updated.": "Quando si aggiunge un nuovo record, crea uno snapshot del suo record relazionale e salvalo nel record corrente. Lo snapshot non viene aggiornato quando il record viene successivamente aggiornato.",
+ "View record": "Visualizza record",
+ "Allow linking to multiple records": "Consenti collegamento a più record",
"The association field to snapshot": "Campo di associazione per lo snapshot",
"Snapshot the snapshot's association fields": "Snapshot campi di associazione dello snapshot",
"Please select": "Seleziona"
+ "When a record is created, association data is backed up in a snapshot": "Quando viene creato un record, viene eseguito il backup dei dati relazionali in uno snapshot",
+ "Snapshot data": "Dati snapshot"
}
diff --git a/packages/plugins/@nocobase/plugin-system-settings/package.json b/packages/plugins/@nocobase/plugin-system-settings/package.json
index 89c05bfd1b..241ac1c092 100644
--- a/packages/plugins/@nocobase/plugin-system-settings/package.json
+++ b/packages/plugins/@nocobase/plugin-system-settings/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "系统设置",
"description": "Used to adjust the system title, logo, language, etc.",
"description.zh-CN": "用于调整系统的标题、LOGO、语言等。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/system-settings",
diff --git a/packages/plugins/@nocobase/plugin-theme-editor/package.json b/packages/plugins/@nocobase/plugin-theme-editor/package.json
index 0857fca93d..f5800f153a 100644
--- a/packages/plugins/@nocobase/plugin-theme-editor/package.json
+++ b/packages/plugins/@nocobase/plugin-theme-editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@nocobase/plugin-theme-editor",
- "version": "1.6.0",
+ "version": "1.6.2",
"main": "dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/theme-editor",
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/theme-editor",
diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/de-DE.json
new file mode 100644
index 0000000000..6a829533d8
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/de-DE.json
@@ -0,0 +1,36 @@
+{
+ "Theme editor": "Theme-Editor",
+ "Themes": "Themes",
+ "Theme": "Theme",
+ "Local": "Lokal",
+ "Dark theme": "Dunkles Theme",
+ "Optional": "Optional",
+ "Non-optional": "Nicht optional",
+ "Current": "Aktuell",
+ "Default": "Standard",
+ "Delete theme": "Theme löschen",
+ "Deletion is unrecoverable. Confirm deletion?": "Das Löschen ist nicht rückgängig zu machen. Löschen bestätigen?",
+ "Deleted successfully": "Erfolgreich gelöscht",
+ "Updated successfully": "Erfolgreich aktualisiert",
+ "User selectable": "Vom Benutzer auswählbar",
+ "Default theme": "Standard-Theme",
+ "Add new theme": "Neues Theme hinzufügen",
+ "Edit based on current theme": "Basierend auf dem aktuellen Theme bearbeiten",
+ "Create a brand new theme": "Ein völlig neues Theme erstellen",
+ "Dark": "Dunkel",
+ "Compact": "Kompakt",
+ "Compact dark": "Kompakt dunkel",
+ "Theme Editor": "Theme-Editor",
+ "Save": "Speichern",
+ "Close": "Schließen",
+ "Edit": "Bearbeiten",
+ "Export": "Exportieren",
+ "edit Theme Config": "Theme-Konfiguration bearbeiten",
+ "The theme of the JSON format is incorrect": "Das Format des JSON-Themes ist nicht korrekt",
+ "Edited successfully": "Erfolgreich bearbeitet",
+ "Saved successfully": "Erfolgreich gespeichert",
+ "Initializing Editor...": "Editor wird initialisiert...",
+ "Save theme": "Theme speichern",
+ "Please set a name for this theme": "Bitte legen Sie einen Namen für dieses Theme fest",
+ "Please input the theme name": "Bitte geben Sie den Theme-Namen ein"
+}
diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/it-IT.json
index fa59977262..53e4d37b07 100644
--- a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/it-IT.json
+++ b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/it-IT.json
@@ -1,11 +1,23 @@
{
- "Theme": "Tema",
- "Local": "Locale",
+ "Theme editor": "Editor temi",
+ "Themes": "Temi",
"Dark theme": "Tema scuro",
"Optional": "Opzionale",
"Non-optional": "Non opzionale",
"Current": "Corrente",
- "Default": "Predefinito",
+ "Default": "Predefinito",
+ "Delete theme": "Elimina tema",
+ "Deletion is unrecoverable. Confirm deletion?": "L'eliminazione è irreversibile. Confermare l'eliminazione?",
+ "Deleted successfully": "Eliminato con successo",
+ "Updated successfully": "Aggiornato con successo",
+ "User selectable": "Selezionabile dall'utente",
+ "Default theme": "Tema predefinito",
+ "Add new theme": "Aggiungi nuovo tema",
+ "Edit based on current theme": "Modifica basata sul tema corrente",
+ "Create a brand new theme": "Crea un tema completamente nuovo",
+ "Dark": "Scuro",
+ "Compact": "Compatto",
+ "Compact dark": "Scuro compatto"
"Theme Editor": "Editor Tema",
"Save": "Salva",
"Close": "Chiudi",
@@ -18,5 +30,5 @@
"Initializing Editor...": "Inizializzazione Editor...",
"Save theme": "Salva tema",
"Please set a name for this theme": "Imposta un nome per questo tema",
- "Please input the theme name": "Inserisci il nome del tema"
+ "Please input the theme name": "Inserisci il nome del tema"
}
diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json
index 665d509dac..ab2c774d83 100644
--- a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json
+++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "UI schema 存储服务",
"description": "Provides centralized UI schema storage service.",
"description.zh-CN": "提供中心化的 UI schema 存储服务。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/ui-schema-storage",
diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/package.json b/packages/plugins/@nocobase/plugin-user-data-sync/package.json
index e0e799ad45..1d7b44d552 100644
--- a/packages/plugins/@nocobase/plugin-user-data-sync/package.json
+++ b/packages/plugins/@nocobase/plugin-user-data-sync/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "用户数据同步",
"description": "Reigster and manage extensible user data synchronization sources, with HTTP API provided by default. Support for synchronizing data to resources such as users and departments.",
"description.zh-CN": "注册和管理可扩展的用户数据同步来源,默认提供 HTTP API。支持向用户和部门等资源同步数据。",
- "version": "1.6.0",
+ "version": "1.6.2",
"main": "dist/server/index.js",
"peerDependencies": {
"@nocobase/client": "1.x",
diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/de-DE.json
new file mode 100644
index 0000000000..5b13516be4
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/de-DE.json
@@ -0,0 +1,24 @@
+{
+ "Synchronize": "Synchronisieren",
+ "Source name": "Quellname",
+ "Source display name": "Anzeigename der Quelle",
+ "Type": "Typ",
+ "Sync": "Synchronisieren",
+ "Tasks": "Aufgaben",
+ "Batch": "Stapel",
+ "Status": "Status",
+ "Message": "Nachricht",
+ "Init": "Initialisierung",
+ "Processing": "In Bearbeitung",
+ "Success": "Erfolg",
+ "Failed": "Fehlgeschlagen",
+ "Authenticator": "Authentifizierer",
+ "dingtalk": "DingTalk",
+ "wecom": "WeCom",
+ "default": "Standard",
+ "Retry": "Wiederholen",
+ "No user data source plugin installed": "Kein Benutzerdatenquellen-Plugin installiert",
+ "View documentation": "Dokumentation anzeigen",
+ "The synchronization has started. You can click on 'Tasks' to view the synchronization status.": "Die Synchronisierung wurde gestartet. Sie können auf 'Aufgaben' klicken, um den Synchronisierungsstatus anzuzeigen.",
+ "The sync source API call failed. Please check the logs to troubleshoot the issue.": "Der API-Aufruf der Synchronisierungsquelle ist fehlgeschlagen. Bitte überprüfen Sie die Protokolle, um das Problem zu beheben."
+}
diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/it-IT.json
index 47e672bfa9..c9f6c88894 100644
--- a/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/it-IT.json
+++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/it-IT.json
@@ -13,6 +13,9 @@
"Success": "Successo",
"Failed": "Fallito",
"Authenticator": "Autenticatore",
+ "dingtalk": "DingTalk",
+ "wecom": "WeChat",
+ "default": "predefinito",
"Retry": "Riprova",
"No user data source plugin installed": "Nessun plugin origine dati utente installato",
"View documentation": "Visualizza documentazione",
diff --git a/packages/plugins/@nocobase/plugin-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json
index b76737aacc..8323312afd 100644
--- a/packages/plugins/@nocobase/plugin-users/package.json
+++ b/packages/plugins/@nocobase/plugin-users/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "用户",
"description": "Provides basic user model, as well as created by and updated by fields.",
"description.zh-CN": "提供了基础的用户模型,以及创建人和最后更新人字段。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/users",
diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-users/src/locale/de-DE.json
new file mode 100644
index 0000000000..5fc2eb938e
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-users/src/locale/de-DE.json
@@ -0,0 +1,12 @@
+{
+ "Users & Permissions": "Benutzer & Berechtigungen",
+ "Add users": "Benutzer hinzufügen",
+ "Add user": "Benutzer hinzufügen",
+ "Remove user": "Benutzer entfernen",
+ "Are you sure you want to remove it?": "Sind Sie sicher, dass Sie es entfernen möchten?",
+ "Random password": "Zufälliges Passwort",
+ "Users manager": "Benutzerverwaltung",
+ "Allow edit profile": "Bearbeitung des Profils erlauben",
+ "Allow change password": "Passwortänderung erlauben",
+ "User profile is not allowed to be edited": "Das Benutzerprofil darf nicht bearbeitet werden"
+}
diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-users/src/locale/it-IT.json
index 6231950978..04b90d81dd 100644
--- a/packages/plugins/@nocobase/plugin-users/src/locale/it-IT.json
+++ b/packages/plugins/@nocobase/plugin-users/src/locale/it-IT.json
@@ -1,8 +1,12 @@
{
"Users & Permissions": "Utenti e Permessi",
"Add users": "Aggiungi utenti",
+ "Add user": "Aggiungi utente",
"Remove user": "Rimuovi utente",
"Are you sure you want to remove it?": "Sei sicuro di volerlo rimuovere?",
"Random password": "Password casuale",
+ "Users manager": "Gestore utenti",
+ "Allow edit profile": "Permetti modifica profilo",
+ "Allow change password": "Permetti modifica password",
"User profile is not allowed to be edited": "Il profilo utente non può essere modificato"
}
diff --git a/packages/plugins/@nocobase/plugin-verification/package.json b/packages/plugins/@nocobase/plugin-verification/package.json
index e6717b6504..d9c95adcc6 100644
--- a/packages/plugins/@nocobase/plugin-verification/package.json
+++ b/packages/plugins/@nocobase/plugin-verification/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "验证码",
"description": "verification setting.",
"description.zh-CN": "验证码配置。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/verification",
diff --git a/packages/plugins/@nocobase/plugin-verification/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-verification/src/locale/de-DE.json
new file mode 100644
index 0000000000..365f25489a
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-verification/src/locale/de-DE.json
@@ -0,0 +1,22 @@
+{
+ "Verification": "Verifizierung",
+ "Verification providers": "Verifizierungsanbieter",
+ "Provider type": "Anbietertyp",
+ "Aliyun SMS": "Aliyun SMS",
+ "Access Key ID": "Zugriffsschlüssel-ID",
+ "Access Key Secret": "Zugriffsschlüssel-Geheimnis",
+ "Endpoint": "Endpunkt",
+ "Sign": "Signatur",
+ "Template code": "Vorlagencode",
+ "Secret Id": "Geheime ID",
+ "Secret Key": "Geheimer Schlüssel",
+ "Region": "Region",
+ "Sign name": "Signaturname",
+ "Sms sdk app id": "SMS-SDK-App-ID",
+ "Template Id": "Vorlagen-ID",
+ "Verification send failed, please try later or contact to administrator": "Verifizierungsversand fehlgeschlagen, bitte versuchen Sie es später oder kontaktieren Sie den Administrator",
+ "Not a valid cellphone number, please re-enter": "Keine gültige Handynummer, bitte erneut eingeben",
+ "Please don't retry in {{time}} seconds": "Bitte versuchen Sie es nicht in {{time}} Sekunden erneut",
+ "You are trying so frequently, please slow down": "Sie versuchen es zu häufig, bitte verlangsamen Sie",
+ "Verification code is invalid": "Verifizierungscode ist ungültig"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json
index 3ba7c3d4fc..084d2f93da 100644
--- a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:操作后事件",
"description": "Triggered after the completion of a request initiated through an action button or API, such as after adding, updating, deleting data, or \"submit to workflow\". Suitable for data processing, sending notifications, etc., after actions are completed.",
"description.zh-CN": "通过操作按钮或 API 发起请求并在执行完成后触发,比如新增、更新、删除数据或者“提交至工作流”之后。适用于在操作完成后进行数据处理、发送通知等。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/plugins/workflow-action-trigger",
diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/de-DE.json
new file mode 100644
index 0000000000..7acbac5899
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/de-DE.json
@@ -0,0 +1,22 @@
+{
+ "Form event": "Formularereignis",
+ "Event triggers when submitted a workflow bound form action.": "Ereignis wird ausgelöst, wenn eine an einen Workflow gebundene Formularaktion übermittelt wird.",
+ "Form data model": "Formulardatenmodell",
+ "Use a collection to match form data.": "Verwenden Sie eine Sammlung, um Formulardaten abzugleichen.",
+ "Post-action event": "Ereignis nach Aktion",
+ "Triggered after the completion of a request initiated through an action button or API, such as after adding or updating data. Suitable for data processing, sending notifications, etc., after actions are completed.": "Wird nach Abschluss einer Anfrage ausgelöst, die über eine Aktionsschaltfläche oder API initiiert wurde, z. B. nach dem Hinzufügen oder Aktualisieren von Daten. Geeignet für Datenverarbeitung, Senden von Benachrichtigungen usw. nach Abschluss von Aktionen.",
+ "Collection": "Sammlung",
+ "The collection to which the triggered data belongs.": "Die Sammlung, zu der die ausgelösten Daten gehören.",
+ "Trigger mode": "Auslösemodus",
+ "Local mode, triggered after the completion of actions bound to this workflow": "Lokaler Modus, wird nach Abschluss von Aktionen ausgelöst, die an diesen Workflow gebunden sind",
+ "Global mode, triggered after the completion of the following actions": "Globaler Modus, wird nach Abschluss der folgenden Aktionen ausgelöst",
+ "Select actions": "Aktionen auswählen",
+ "Create record action": "Datensatz erstellen Aktion",
+ "Update record action": "Datensatz aktualisieren Aktion",
+ "Associations to use": "Zu verwendende Verknüpfungen",
+ "User submitted form": "Vom Benutzer übermitteltes Formular",
+ "Role of user submitted form": "Rolle des vom Benutzer übermittelten Formulars",
+ "Trigger data": "Auslöserdaten",
+ "User acted": "Handelnder Benutzer",
+ "Role of user acted": "Rolle des handelnden Benutzers"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json
index 749a8a544e..94e938e472 100644
--- a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:聚合查询节点",
"description": "Used to aggregate data against the database in workflow, such as: statistics, sum, average, etc.",
"description.zh-CN": "可用于在工作流中对数据库进行聚合查询,如:统计数量、求和、平均值等。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-aggregate",
diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-aggregate/src/locale/de-DE.json
new file mode 100644
index 0000000000..bc38579860
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/src/locale/de-DE.json
@@ -0,0 +1,12 @@
+{
+ "Aggregate": "Aggregieren",
+ "Counting, summing, finding maximum, minimum, and average values for multiple records of a collection or associated data of a record.":
+ "Zählen, Summieren, Finden von Maximum, Minimum und Durchschnittswerten für mehrere Datensätze einer Sammlung oder verknüpfte Daten eines Datensatzes.",
+ "Aggregator function": "Aggregatorfunktion",
+ "Target type": "Zieltyp",
+ "Data of collection": "Daten der Sammlung",
+ "Data of associated collection": "Daten der verknüpften Sammlung",
+ "Field to aggregate": "Zu aggregierendes Feld",
+ "Distinct": "Eindeutig",
+ "Query result": "Abfrageergebnis"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/package.json b/packages/plugins/@nocobase/plugin-workflow-delay/package.json
index aa8194cd6d..e9a327588f 100644
--- a/packages/plugins/@nocobase/plugin-workflow-delay/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-delay/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:延时节点",
"description": "Could be used in workflow parallel branch for waiting other branches.",
"description.zh-CN": "可用于工作流并行分支中等待其他分支执行完成。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-delay",
diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-delay/src/locale/de-DE.json
new file mode 100644
index 0000000000..f13dff018d
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-delay/src/locale/de-DE.json
@@ -0,0 +1,9 @@
+{
+ "Delay": "Verzögerung",
+ "Delay a period of time and then continue or exit the process. Can be used to set wait or timeout times in parallel branches.": "Verzögert einen Zeitraum und setzt dann den Prozess fort oder beendet ihn. Kann verwendet werden, um Warte- oder Zeitüberschreitungszeiten in parallelen Zweigen festzulegen.",
+ "Duration": "Dauer",
+ "End status": "Endstatus",
+ "Select status": "Status auswählen",
+ "Succeed and continue": "Erfolgreich und fortfahren",
+ "Fail and exit": "Fehlschlagen und beenden"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json
index c596906b5c..23131255fd 100644
--- a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:动态表达式计算节点",
"description": "Useful plugin for doing dynamic calculation based on expression collection records in workflow.",
"description.zh-CN": "用于在工作流中进行基于数据行的动态表达式计算。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-dynamic-calculation",
diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/de-DE.json
new file mode 100644
index 0000000000..9ba0fc2fc1
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/de-DE.json
@@ -0,0 +1,14 @@
+{
+ "Dynamic Calculation": "Dynamische Berechnung",
+ "Expression": "Ausdruck",
+ "Dynamic expression calculation": "Dynamische Ausdrucksberechnung",
+ "Calculate an expression based on a calculation engine and obtain a value as the result. Variables in the upstream nodes can be used in the expression. The expression is dynamic one from an expression collections.": "Berechnet einen Ausdruck basierend auf einer Berechnungs-Engine und erhält einen Wert als Ergebnis. Variablen in den vorgelagerten Knoten können im Ausdruck verwendet werden. Der Ausdruck ist ein dynamischer Ausdruck aus einer Ausdruckssammlung.",
+ "Select dynamic expression": "Dynamischen Ausdruck auswählen",
+ "Select the dynamic expression queried from the upstream node. You need to query it from an expression collection.": "Wählen Sie den dynamischen Ausdruck aus, der vom vorgelagerten Knoten abgefragt wird. Sie müssen ihn aus einer Ausdruckssammlung abfragen.",
+ "Variable datasource": "Variable Datenquelle",
+ "Dynamic expression": "Dynamischer Ausdruck",
+ "An expression for calculation in each rows": "Ein Ausdruck für die Berechnung in jeder Zeile",
+ "Used to store expressions for use in workflows so that different expressions can be called for different data.": "Wird verwendet, um Ausdrücke zur Nutzung in Workflows zu speichern, damit für verschiedene Daten unterschiedliche Ausdrücke aufgerufen werden können.",
+ "Unconfigured": "Nicht konfiguriert",
+ "Calculation result": "Berechnungsergebnis"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/package.json b/packages/plugins/@nocobase/plugin-workflow-loop/package.json
index 2b2f8f5068..4ffa0760e0 100644
--- a/packages/plugins/@nocobase/plugin-workflow-loop/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-loop/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:循环节点",
"description": "Used to repeat the sub-process processing of each value in an array, and can also be used for fixed times of sub-process processing.",
"description.zh-CN": "用于对一个数组中的每个值进行重复的子流程处理,也可用于固定次数的重复子流程处理。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-loop",
diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-loop/src/locale/de-DE.json
new file mode 100644
index 0000000000..a70a483642
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-loop/src/locale/de-DE.json
@@ -0,0 +1,24 @@
+{
+ "Loop": "Schleife",
+ "Loop target": "Schleifenziel",
+ "Loop index": "Schleifenindex",
+ "Loop index (starts from 0)": "Schleifenindex (beginnt bei 0)",
+ "Loop sequence (starts from 1)": "Schleifensequenz (beginnt bei 1)",
+ "Loop length": "Schleifenlänge",
+ "By using a loop node, you can perform the same operation on multiple sets of data. The source of these sets can be either multiple records from a query node or multiple associated records of a single record. Loop node can also be used for iterating a certain number of times or for looping through each character in a string. However, excessive looping may cause performance issues, so use with caution.": "Mit einem Schleifenknoten können Sie dieselbe Operation auf mehreren Datensätzen ausführen. Die Quelle dieser Datensätze können entweder mehrere Datensätze aus einem Abfrageknoten oder mehrere verknüpfte Datensätze eines einzelnen Datensatzes sein. Schleifenknoten können auch verwendet werden, um eine bestimmte Anzahl von Malen zu iterieren oder um jeden Buchstaben in einer Zeichenkette zu durchlaufen. Übermäßiges Schleifen kann jedoch zu Leistungsproblemen führen, daher mit Vorsicht verwenden.",
+ "Scope variables": "Gültigkeitsbereichsvariablen",
+ "A single number will be treated as a loop count, a single string will be treated as an array of characters, and other non-array values will be converted to arrays. The loop node ends when the loop count is reached, or when the array loop is completed. You can also add condition nodes to the loop to terminate it.": "Eine einzelne Zahl wird als Schleifenzähler behandelt, eine einzelne Zeichenkette wird als ein Array von Zeichen behandelt, und andere Nicht-Array-Werte werden in Arrays umgewandelt. Der Schleifenknoten endet, wenn der Schleifenzähler erreicht ist oder wenn die Array-Schleife abgeschlossen ist. Sie können der Schleife auch Bedingungsknoten hinzufügen, um sie zu beenden.",
+ "Enable loop condition": "Schleifenbedingung aktivieren",
+ "Loop condition on each item": "Schleifenbedingung für jedes Element",
+ "When to check": "Wann zu prüfen",
+ "Before each starts": "Vor jedem Start",
+ "After each ends": "Nach jedem Ende",
+ "When condition is not met on item": "Wenn die Bedingung für ein Element nicht erfüllt ist",
+ "Exit loop": "Schleife beenden",
+ "Continue on next item": "Mit nächstem Element fortfahren",
+ "Condition": "Bedingung",
+ "When node inside loop failed": "Wenn ein Knoten innerhalb der Schleife fehlgeschlagen ist",
+ "Continue loop on next item": "Schleife mit nächstem Element fortsetzen",
+ "Exit loop and continue workflow": "Schleife beenden und Workflow fortsetzen",
+ "Exit workflow": "Workflow beenden"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json
index a415e581b4..53caa9373d 100644
--- a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:邮件发送节点",
"description": "Send email in workflow.",
"description.zh-CN": "可用于在工作流中发送电子邮件。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer",
diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/de-DE.json
new file mode 100644
index 0000000000..89d57653f7
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/de-DE.json
@@ -0,0 +1,19 @@
+{
+ "Mailer": "Mailer",
+ "Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "E-Mail senden durch Aufruf des SMTP-Dienstes. Sie können die Variablen in den vorgelagerten Knoten als Empfänger, Betreff und Inhalt der E-Mail verwenden.",
+ "SMTP host": "Service-Host",
+ "Port": "Port",
+ "Secure": "Sicher",
+ "User": "Benutzer",
+ "Password": "Passwort",
+ "From": "Von",
+ "To": "An",
+ "CC": "CC",
+ "BCC": "BCC",
+ "Add email address": "E-Mail-Adresse hinzufügen",
+ "Subject": "Betreff",
+ "Content": "Inhalt",
+ "Content type": "Inhaltstyp",
+ "Plain text": "Einfacher Text",
+ "Ignore failed sending and continue workflow": "Fehlgeschlagenen Versand ignorieren und Workflow fortsetzen"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/package.json b/packages/plugins/@nocobase/plugin-workflow-manual/package.json
index bdaf6c02ca..6fec2349ec 100644
--- a/packages/plugins/@nocobase/plugin-workflow-manual/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-manual/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:人工处理节点",
"description": "Could be used for workflows which some of decisions are made by users.",
"description.zh-CN": "用于人工控制部分决策的流程。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-manual",
diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-manual/src/locale/de-DE.json
new file mode 100644
index 0000000000..7352e60d08
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/locale/de-DE.json
@@ -0,0 +1,36 @@
+{
+ "Manual": "Manuell",
+ "Could be used for manually submitting data, and determine whether to continue or exit. Workflow will generate a todo item for assigned user when it reaches a manual node, and continue processing after user submits the form.": "Kann für die manuelle Übermittlung von Daten verwendet werden und bestimmt, ob fortgefahren oder beendet werden soll. Der Workflow generiert ein To-Do-Element für den zugewiesenen Benutzer, wenn er einen manuellen Knoten erreicht, und setzt die Verarbeitung fort, nachdem der Benutzer das Formular abgesendet hat.",
+ "Values preset in this form will override user submitted ones when continue or reject.": "Die in diesem Formular voreingestellten Werte überschreiben die vom Benutzer übermittelten Werte beim Fortfahren oder Ablehnen.",
+ "Assignee": "Beauftragter",
+ "Assignees": "Beauftragte",
+ "User interface": "Benutzeroberfläche",
+ "Configure user interface": "Benutzeroberfläche konfigurieren",
+ "View user interface": "Benutzeroberfläche anzeigen",
+ "Separately": "Getrennt",
+ "Each user has own task": "Jeder Benutzer hat eine eigene Aufgabe",
+ "Collaboratively": "Kollaborativ",
+ "Everyone shares one task": "Alle teilen sich eine Aufgabe",
+ "Negotiation": "Verhandlung",
+ "All pass": "Alle bestehen",
+ "Everyone should pass": "Jeder sollte bestehen",
+ "Any pass": "Beliebiger Bestehen",
+ "Anyone pass": "Jeder kann bestehen",
+ "Field name existed in form": "Feldname existiert bereits im Formular",
+ "Continue the process": "Den Prozess fortsetzen",
+ "Terminate the process": "Den Prozess beenden",
+ "Save temporarily": "Temporär speichern",
+ "Custom form": "Benutzerdefiniertes Formular",
+ "Data record": "Datensatz",
+ "Create record form": "Formular zum Erstellen von Datensätzen",
+ "Update record form": "Formular zum Aktualisieren von Datensätzen",
+ "Filter settings": "Filtereinstellungen",
+ "Workflow todos": "Workflow-Aufgaben",
+ "Task node": "Aufgabenknoten",
+ "Unprocessed": "Unbearbeitet",
+ "Please check one of your update record form, and add at least one filter condition in form settings.": "Bitte überprüfen Sie eines Ihrer Formulare zur Aktualisierung von Datensätzen und fügen Sie in den Formulareinstellungen mindestens eine Filterbedingung hinzu.",
+ "My manual tasks": "Meine manuellen Aufgaben",
+ "Task title": "Aufgabentitel",
+ "Title of each task item. Default to node title.": "Titel jedes Aufgabenelements. Standardmäßig der Knotentitel.",
+ "Task": "Aufgabe"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/server/__tests__/migrations/20250312100512-change-table-name.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/server/__tests__/migrations/20250312100512-change-table-name.test.ts
new file mode 100644
index 0000000000..dbaa6093ea
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/server/__tests__/migrations/20250312100512-change-table-name.test.ts
@@ -0,0 +1,83 @@
+/**
+ * This file is part of the NocoBase (R) project.
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
+ * Authors: NocoBase Team.
+ *
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
+ * For more information, please refer to: https://www.nocobase.com/agreement.
+ */
+
+import { createMockServer } from '@nocobase/test';
+import { describe, test } from 'vitest';
+import workflowManualTasks from '../../collections/workflowManualTasks';
+import Migration from '../../migrations/20250312100512-change-table-name';
+
+const matrix: [string, string][] = [
+ // schema, tablePrefix
+ [undefined, undefined],
+ ['ss', undefined],
+ [undefined, 'tt_'],
+ ['ss', 'tt_'],
+];
+
+function matrixTest() {
+ for (const [schema, tablePrefix] of matrix) {
+ if (schema && process.env.DB_DIALECT !== 'postgres') {
+ continue;
+ }
+ test(`schema: ${schema}, tablePrefix: ${tablePrefix}`, async () => {
+ const app = await createMockServer({
+ database: {
+ schema,
+ tablePrefix,
+ },
+ });
+ await app.version.update('1.5.0');
+ const oldCollection = app.db.collection({
+ ...workflowManualTasks,
+ name: 'users_jobs',
+ });
+ await app.db.sync();
+ const r1 = await oldCollection.repository.create({});
+ const migration = new Migration({ db: app.db, app } as any);
+ await migration.up();
+
+ const newCollection = app.db.collection({
+ ...workflowManualTasks,
+ });
+ const r2 = await newCollection.repository.findOne({
+ filterByTk: r1.id,
+ });
+ expect(r2).toBeTruthy();
+
+ await app.destroy();
+ });
+ }
+}
+
+describe('20250225175712-change-table-name.test', () => {
+ matrixTest();
+
+ test(`new table exists`, async () => {
+ const app = await createMockServer();
+ await app.version.update('1.5.0');
+ const oldCollection = app.db.collection({
+ ...workflowManualTasks,
+ name: 'users_jobs',
+ });
+ const newCollection = app.db.collection({
+ ...workflowManualTasks,
+ });
+ await app.db.sync();
+ const r1 = await oldCollection.repository.create({});
+ const migration = new Migration({ db: app.db, app } as any);
+ await migration.up();
+
+ const r2 = await newCollection.repository.findOne({
+ filterByTk: r1.id,
+ });
+ expect(r2).toBeTruthy();
+
+ await app.destroy();
+ });
+});
diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/server/migrations/20250225175712-change-table-name.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/server/migrations/20250225175712-change-table-name.ts
deleted file mode 100644
index 8d0e6112c1..0000000000
--- a/packages/plugins/@nocobase/plugin-workflow-manual/src/server/migrations/20250225175712-change-table-name.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * This file is part of the NocoBase (R) project.
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
- * Authors: NocoBase Team.
- *
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
- * For more information, please refer to: https://www.nocobase.com/agreement.
- */
-
-import { Migration } from '@nocobase/server';
-
-export default class extends Migration {
- appVersion = '<1.6.0';
- on = 'beforeLoad';
- async up() {
- const { db } = this.context;
- const queryInterface = db.sequelize.getQueryInterface();
- await db.sequelize.transaction(async (transaction) => {
- const exists = await queryInterface.tableExists('users_jobs', { transaction });
- if (exists) {
- const newTableName = db.options.underscored ? 'workflow_manual_tasks' : 'workflowManualTasks';
-
- await queryInterface.renameTable('users_jobs', newTableName, { transaction });
-
- const indexes: any = await queryInterface.showIndex(newTableName, { transaction });
-
- for (const item of indexes) {
- if (item.name.startsWith('users_jobs')) {
- if (this.db.isPostgresCompatibleDialect()) {
- await db.sequelize.query(
- `ALTER INDEX "${item.name}" RENAME TO "${item.name.replace('users_jobs', 'workflow_manual_tasks')}";`,
- { transaction },
- );
- } else if (this.db.isMySQLCompatibleDialect()) {
- await db.sequelize.query(
- `ALTER TABLE ${newTableName} RENAME INDEX ${item.name} TO ${item.name.replace(
- 'users_jobs',
- 'workflow_manual_tasks',
- )};`,
- { transaction },
- );
- }
- }
- }
- }
- });
- }
-}
diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/server/migrations/20250312100512-change-table-name.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/server/migrations/20250312100512-change-table-name.ts
new file mode 100644
index 0000000000..13f6e3d281
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/server/migrations/20250312100512-change-table-name.ts
@@ -0,0 +1,79 @@
+/**
+ * This file is part of the NocoBase (R) project.
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
+ * Authors: NocoBase Team.
+ *
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
+ * For more information, please refer to: https://www.nocobase.com/agreement.
+ */
+
+import { Migration } from '@nocobase/server';
+
+export default class extends Migration {
+ appVersion = '<1.7.0';
+ on = 'beforeLoad';
+ async up() {
+ const { db } = this.context;
+ const queryInterface = db.sequelize.getQueryInterface();
+ const usersJobsCollection = db.collection({
+ name: 'users_jobs',
+ fields: [{ name: 'id', type: 'bigInt' }],
+ });
+ const workflowManualTasksCollection = db.collection({
+ name: 'workflowManualTasks',
+ fields: [{ name: 'id', type: 'bigInt' }],
+ });
+ const oldTableName = usersJobsCollection.getTableNameWithSchema();
+ const oldTableNameWithQuotes = usersJobsCollection.getRealTableName(true);
+ const newTableName = workflowManualTasksCollection.getTableNameWithSchema();
+ const newTableNameWithQuotes = workflowManualTasksCollection.getRealTableName(true);
+ await db.sequelize.transaction(async (transaction) => {
+ const exists = await queryInterface.tableExists(oldTableName, { transaction });
+ if (exists) {
+ const newExists = await queryInterface.tableExists(newTableName, { transaction });
+ if (newExists) {
+ await queryInterface.dropTable(newTableName, { transaction });
+ }
+ if (this.db.isPostgresCompatibleDialect()) {
+ await db.sequelize.query(
+ `ALTER TABLE ${oldTableNameWithQuotes} RENAME TO "${db.options.tablePrefix || ''}${
+ db.options.underscored ? 'workflow_manual_tasks' : 'workflowManualTasks'
+ }";`,
+ {
+ transaction,
+ },
+ );
+ } else {
+ await queryInterface.renameTable(oldTableName, newTableName, { transaction });
+ }
+
+ const indexes: any = await queryInterface.showIndex(newTableName, { transaction });
+
+ const oldIndexPrefix = `${db.options.tablePrefix || ''}users_jobs`;
+ const newIndexPrefix = `${db.options.tablePrefix || ''}workflow_manual_tasks`;
+ for (const item of indexes) {
+ if (item.name.startsWith(oldIndexPrefix)) {
+ if (this.db.isPostgresCompatibleDialect()) {
+ await db.sequelize.query(
+ `ALTER INDEX ${db.options.schema ? `"${db.options.schema}".` : ''}"${
+ item.name
+ }" RENAME TO "${item.name.replace(oldIndexPrefix, newIndexPrefix)}";`,
+ { transaction },
+ );
+ } else if (this.db.isMySQLCompatibleDialect()) {
+ await db.sequelize.query(
+ `ALTER TABLE ${newTableNameWithQuotes} RENAME INDEX ${item.name} TO ${item.name.replace(
+ oldIndexPrefix,
+ newIndexPrefix,
+ )};`,
+ { transaction },
+ );
+ }
+ }
+ }
+ }
+ });
+ db.removeCollection('users_jobs');
+ db.removeCollection('workflowManualTasks');
+ }
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/package.json b/packages/plugins/@nocobase/plugin-workflow-notification/package.json
index 840007474f..de21e302e3 100644
--- a/packages/plugins/@nocobase/plugin-workflow-notification/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-notification/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:通知节点",
"description": "Send notification in workflow.",
"description.zh-CN": "可用于在工作流中发送各类通知。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer",
diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-notification/src/locale/de-DE.json
new file mode 100644
index 0000000000..89bff4c2f2
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-notification/src/locale/de-DE.json
@@ -0,0 +1,6 @@
+{
+ "Notification": "Benachrichtigung",
+ "Send notification. You can use the variables in the upstream nodes as content and ohter config.": "Benachrichtigung senden. Sie können die Variablen in den vorgelagerten Knoten als Inhalt und andere Konfiguration verwenden.",
+ "Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "E-Mail senden durch Aufruf des SMTP-Dienstes. Sie können die Variablen in den vorgelagerten Knoten als Empfänger, Betreff und Inhalt der E-Mail verwenden.",
+ "Ignore failed sending and continue workflow": "Fehlgeschlagenen Versand ignorieren und Workflow fortsetzen"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json
index c3ab907e05..c6778ddc3b 100644
--- a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:并行分支节点",
"description": "Could be used for parallel execution of branch processes in the workflow.",
"description.zh-CN": "用于在工作流中需要并行执行的分支流程。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-parallel",
diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/de-DE.json
new file mode 100644
index 0000000000..8e442df2dd
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/de-DE.json
@@ -0,0 +1,12 @@
+{
+ "Parallel branch": "Paralleler Zweig",
+ "Run multiple branch processes in parallel.": "Führt mehrere Zweigprozesse parallel aus.",
+ "Add branch": "Zweig hinzufügen",
+ "Mode": "Ausführungsmodus",
+ "All succeeded": "Alle erfolgreich",
+ "Any succeeded": "Irgendein erfolgreich",
+ "Any succeeded or failed": "Irgendein erfolgreich oder fehlgeschlagen",
+ "Continue after all branches succeeded": "Fortfahren, nachdem alle Zweige erfolgreich waren",
+ "Continue after any branch succeeded": "Fortfahren, nachdem ein Zweig erfolgreich war",
+ "Continue after any branch succeeded, or exit after any branch failed.": "Fortfahren, nachdem ein Zweig erfolgreich war, oder beenden, nachdem ein Zweig fehlgeschlagen ist."
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-request/package.json b/packages/plugins/@nocobase/plugin-workflow-request/package.json
index a89aefc333..98c03ff27b 100644
--- a/packages/plugins/@nocobase/plugin-workflow-request/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-request/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:HTTP 请求节点",
"description": "Send HTTP requests to any HTTP service for data interaction in workflow.",
"description.zh-CN": "可用于在工作流中向任意 HTTP 服务发送请求,进行数据交互。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-request",
diff --git a/packages/plugins/@nocobase/plugin-workflow-request/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-request/src/locale/de-DE.json
new file mode 100644
index 0000000000..23b7b62f29
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-request/src/locale/de-DE.json
@@ -0,0 +1,27 @@
+{
+ "HTTP request": "HTTP-Anfrage",
+ "Send HTTP request to a URL. You can use the variables in the upstream nodes as request headers, parameters and request body.": "Sendet eine HTTP-Anfrage an eine URL. Sie können die Variablen in den vorgelagerten Knoten als Anfrage-Header, Parameter und Anfrage-Body verwenden.",
+ "HTTP method": "HTTP-Methode",
+ "URL": "URL",
+ "Headers": "Header",
+ "Add request header": "Anfrage-Header hinzufügen",
+ "Parameters": "Parameter",
+ "Add parameter": "Parameter hinzufügen",
+ "Body": "Body",
+ "Use variable": "Variable verwenden",
+ "Add key-value pairs": "Schlüssel-Wert-Paare hinzufügen",
+ "Format": "Format",
+ "Insert": "Einfügen",
+ "Timeout config": "Timeout-Konfiguration",
+ "ms": "ms",
+ "Timeout": "Timeout",
+ "Milliseconds": "Millisekunden",
+ "Input request data": "Anfragedaten eingeben",
+ "Only support standard JSON data": "Unterstützt nur Standard-JSON-Daten",
+ "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" unterstützt nur \"application/json\" und muss nicht angegeben werden",
+ "\"Content-Type\" will be ignored from headers.": "\"Content-Type\" wird aus den Headern ignoriert.",
+ "Ignore failed request and continue workflow": "Fehlgeschlagene Anfrage ignorieren und Workflow fortsetzen",
+ "Status code": "Statuscode",
+ "Data": "Daten",
+ "Response headers": "Antwort-Header"
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/package.json b/packages/plugins/@nocobase/plugin-workflow-sql/package.json
index b2a9c61444..b066de9916 100644
--- a/packages/plugins/@nocobase/plugin-workflow-sql/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-sql/package.json
@@ -4,7 +4,7 @@
"displayName.zh-CN": "工作流:SQL 节点",
"description": "Execute SQL statements in workflow.",
"description.zh-CN": "可用于在工作流中对数据库执行任意 SQL 语句。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow-sql",
diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow-sql/src/locale/de-DE.json
new file mode 100644
index 0000000000..fa223ede52
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow-sql/src/locale/de-DE.json
@@ -0,0 +1,9 @@
+{
+ "SQL action": "SQL-Aktion",
+ "Execute a SQL statement in database.": "Führt eine SQL-Anweisung in der Datenbank aus.",
+ "Execute a SQL statement in database": "Führt eine SQL-Anweisung in der Datenbank aus",
+ "Select a data source to execute SQL.": "Wählen Sie eine Datenquelle zur Ausführung von SQL aus",
+ "SQL query result could be used through <1>JSON query node1> (Commercial plugin).": "SQL-Abfrageergebnisse können über <1>JSON-Abfrageknoten1> verwendet werden (kommerzielles Plugin).",
+ "Include meta information of this query in result": "Metainformationen dieser Abfrage im Ergebnis einschließen",
+ "Usage of SQL query result is not supported yet.": "Die Verwendung von SQL-Abfrageergebnissen wird noch nicht unterstützt."
+}
diff --git a/packages/plugins/@nocobase/plugin-workflow-test/package.json b/packages/plugins/@nocobase/plugin-workflow-test/package.json
index a04ad65932..4a2711f574 100644
--- a/packages/plugins/@nocobase/plugin-workflow-test/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow-test/package.json
@@ -2,7 +2,7 @@
"name": "@nocobase/plugin-workflow-test",
"displayName": "Workflow: test kit",
"displayName.zh-CN": "工作流:测试工具包",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "dist/server/index.js",
"types": "./dist/server/index.d.ts",
diff --git a/packages/plugins/@nocobase/plugin-workflow/package.json b/packages/plugins/@nocobase/plugin-workflow/package.json
index ffae61b230..9e8a915753 100644
--- a/packages/plugins/@nocobase/plugin-workflow/package.json
+++ b/packages/plugins/@nocobase/plugin-workflow/package.json
@@ -4,13 +4,13 @@
"displayName.zh-CN": "工作流",
"description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.",
"description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./dist/server/index.js",
"homepage": "https://docs.nocobase.com/handbook/workflow",
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow",
"dependencies": {
- "@nocobase/plugin-workflow-test": "1.6.0"
+ "@nocobase/plugin-workflow-test": "1.6.2"
},
"devDependencies": {
"@ant-design/icons": "5.x",
diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/de-DE.json
new file mode 100644
index 0000000000..b5a7c9ad31
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/de-DE.json
@@ -0,0 +1,216 @@
+{
+ "Workflow": "Workflow",
+ "Execution history": "Ausführungsverlauf",
+ "Clear all executions": "Alle Ausführungen löschen",
+ "Clear executions will not reset executed count, and started executions will not be deleted, are you sure you want to delete them all?": "Das Löschen von Ausführungen setzt den Ausführungszähler nicht zurück, und begonnene Ausführungen werden nicht gelöscht. Sind Sie sicher, dass Sie alle löschen möchten?",
+ "Executed": "Ausgeführt",
+ "Sync": "Synchronisieren",
+ "Sync enabled status of all workflows from database": "Aktivierungsstatus aller Workflows aus der Datenbank synchronisieren",
+ "Trigger type": "Auslösertyp",
+ "Status": "Status",
+ "On": "Ein",
+ "Off": "Aus",
+ "Version": "Version",
+ "Copy to new version": "In neue Version kopieren",
+ "Duplicate": "Duplizieren",
+ "Duplicate to new workflow": "Als neuen Workflow duplizieren",
+ "Delete a main version will cause all other revisions to be deleted too.": "Das Löschen einer Hauptversion führt dazu, dass alle anderen Versionen ebenfalls gelöscht werden.",
+ "Execute manually": "Manuell ausführen",
+ "The trigger is not configured correctly, please check the trigger configuration.": "Der Auslöser ist nicht korrekt konfiguriert, bitte überprüfen Sie die Auslöserkonfiguration.",
+ "This type of trigger has not been supported to be executed manually.": "Dieser Auslösertyp wird für manuelle Ausführung nicht unterstützt.",
+ "Trigger variables need to be filled for executing.": "Auslösevariablen müssen für die Ausführung ausgefüllt werden.",
+ "A new version will be created automatically after execution if current version is not executed.": "Eine neue Version wird automatisch nach der Ausführung erstellt, wenn die aktuelle Version noch nicht ausgeführt wurde.",
+ "This will perform all the actions configured in the workflow. Are you sure you want to continue?": "Dies führt alle im Workflow konfigurierten Aktionen aus. Sind Sie sicher, dass Sie fortfahren möchten?",
+ "Automatically create a new version after execution": "Nach Ausführung automatisch eine neue Version erstellen",
+ "Workflow executed, the result status is <1>{{statusText}}1><2>View the execution2>": "Workflow ausgeführt, der Ergebnisstatus ist <1>{{statusText}}1><2>Ausführung anzeigen2>",
+ "Loading": "Wird geladen",
+ "Load failed": "Laden fehlgeschlagen",
+ "Use transaction": "Transaktion verwenden",
+ "Data operation nodes in workflow will run in a same transaction until any interruption. Any failure will cause data rollback, and will also rollback the history of the execution.": "Datenoperationsknoten im Workflow werden in einer gemeinsamen Transaktion ausgeführt, bis eine Unterbrechung auftritt. Jeder Fehler führt zu einem Daten-Rollback und einem Rollback des Ausführungsverlaufs.",
+ "Auto delete history when execution is on end status": "Ausführungsverlauf automatisch löschen, wenn die Ausführung im Endstatus ist",
+ "Maximum number of cycling triggers": "Maximale Anzahl zyklischer Auslöser",
+ "The triggers of same workflow by some node (create, update and sub-flow etc.) more than this number will be ignored. Large number may cause performance issues. Please use with caution.": "Auslöser desselben Workflows durch bestimmte Knoten (Erstellen, Aktualisieren und Unterabläufe usw.), die diese Anzahl überschreiten, werden ignoriert. Eine hohe Anzahl kann zu Leistungsproblemen führen. Bitte mit Vorsicht verwenden.",
+ "Trigger": "Auslöser",
+ "Unknown trigger": "Unbekannter Auslöser",
+ "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow mit unbekanntem Typ verursacht Fehler. Bitte löschen Sie ihn oder überprüfen Sie das Plugin, das diesen Typ bereitstellt.",
+ "Trigger variables": "Auslösevariablen",
+ "Trigger data": "Auslösedaten",
+ "Trigger time": "Auslösezeit",
+ "Triggered at": "Ausgelöst am",
+ "Execute mode": "Ausführungsmodus",
+ "Execute workflow asynchronously or synchronously based on trigger type, and could not be changed after created.": "Workflow asynchron oder synchron basierend auf dem Auslösertyp ausführen, kann nach der Erstellung nicht mehr geändert werden.",
+ "Asynchronously": "Asynchron",
+ "Synchronously": "Synchron",
+ "Will be executed in the background as a queued task.": "Wird im Hintergrund als Aufgabe in der Warteschlange ausgeführt.",
+ "For user actions that require immediate feedback. Can not use asynchronous nodes in such mode, and it is not recommended to perform time-consuming operations under synchronous mode.": "Für Benutzeraktionen, die sofortiges Feedback erfordern. In diesem Modus können keine asynchronen Knoten verwendet werden, und es wird nicht empfohlen, zeitaufwändige Operationen im synchronen Modus durchzuführen.",
+ "Go back": "Zurück",
+ "Bind workflows": "Workflows binden",
+ "Support pre-action event (local mode), post-action event (local mode), and approval event here.": "Unterstützt hier Ereignisse vor der Aktion (lokaler Modus), Ereignisse nach der Aktion (lokaler Modus) und Genehmigungsereignisse.",
+ "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow wird direkt ausgelöst, sobald der Button geklickt wird, ohne Datenspeicherung. Unterstützt nur die Bindung an \"Benutzerdefiniertes Aktionsereignis\".",
+ "\"Submit to workflow\" to \"Post-action event\" is deprecated, please use \"Custom action event\" instead.": "\"An Workflow senden\" zu \"Ereignis nach Aktion\" ist veraltet, bitte verwenden Sie stattdessen \"Benutzerdefiniertes Aktionsereignis\".",
+ "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow wird vor erfolgreichem Löschen ausgelöst (unterstützt nur Ereignis vor der Aktion im lokalen Modus).",
+ "Submit to workflow": "An Workflow senden",
+ "Add workflow": "Workflow hinzufügen",
+ "Select workflow": "Workflow auswählen",
+ "Trigger data context": "Auslösedatenkontext",
+ "Full form data": "Vollständige Formulardaten",
+ "Select context": "Kontext auswählen",
+ "Collection event": "Sammlungsereignis",
+ "Triggered when data changes in the collection, such as after adding, updating, or deleting a record. Unlike \"Post-action event\", Collection event listens for data changes rather than HTTP requests. Unless you understand the exact meaning, it is recommended to use \"Post-action event\".": "Wird ausgelöst, wenn sich Daten in der Sammlung ändern, z.B. nach dem Hinzufügen, Aktualisieren oder Löschen eines Datensatzes. Im Gegensatz zum \"Ereignis nach Aktion\" überwacht das Sammlungsereignis Datenänderungen und nicht HTTP-Anfragen. Wenn Sie die genaue Bedeutung nicht verstehen, wird empfohlen, \"Ereignis nach Aktion\" zu verwenden.",
+ "Trigger on": "Auslösen bei",
+ "After record added": "Nach Hinzufügen eines Datensatzes",
+ "After record updated": "Nach Aktualisierung eines Datensatzes",
+ "After record added or updated": "Nach Hinzufügen oder Aktualisierung eines Datensatzes",
+ "After record deleted": "Nach Löschen eines Datensatzes",
+ "Changed fields": "Geänderte Felder",
+ "Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.": "Wird nur ausgelöst, wenn eines der ausgewählten Felder geändert wird. Wenn nicht ausgewählt, bedeutet dies, dass es ausgelöst wird, wenn ein beliebiges Feld geändert wird. Wenn ein Datensatz hinzugefügt oder gelöscht wird, gilt jedes Feld als geändert.",
+ "Only triggers when match conditions": "Wird nur ausgelöst, wenn die Bedingungen erfüllt sind",
+ "Preload associations": "Assoziationen vorladen",
+ "Please select the associated fields that need to be accessed in subsequent nodes. With more than two levels of to-many associations may cause performance issue, please use with caution.": "Bitte wählen Sie die assoziierten Felder aus, auf die in nachfolgenden Knoten zugegriffen werden muss. Bei mehr als zwei Ebenen von To-Many-Assoziationen kann es zu Leistungsproblemen kommen, bitte mit Vorsicht verwenden.",
+ "Choose a record or primary key of a record in the collection to trigger.": "Wählen Sie einen Datensatz oder Primärschlüssel eines Datensatzes in der Sammlung zum Auslösen.",
+ "Schedule event": "Geplantes Ereignis",
+ "Triggered according to preset time conditions. Suitable for one-time or periodic tasks, such as sending notifications and cleaning data on a schedule.": "Wird gemäß voreingestellten Zeitbedingungen ausgelöst. Geeignet für einmalige oder periodische Aufgaben, wie das Senden von Benachrichtigungen und das Bereinigen von Daten nach Zeitplan.",
+ "Trigger mode": "Auslösemodus",
+ "Based on certain date": "Basierend auf bestimmtem Datum",
+ "Based on date field of collection": "Basierend auf Datumsfeld der Sammlung",
+ "Starts on": "Beginnt am",
+ "Ends on": "Endet am",
+ "No end": "Kein Ende",
+ "Exactly at": "Genau um",
+ "Repeat mode": "Wiederholungsmodus",
+ "Repeat limit": "Wiederholungslimit",
+ "No limit": "Kein Limit",
+ "Seconds": "Sekunden",
+ "Minutes": "Minuten",
+ "Hours": "Stunden",
+ "Days": "Tage",
+ "Weeks": "Wochen",
+ "Months": "Monate",
+ "No repeat": "Keine Wiederholung",
+ "Every": "Jede(r/s)",
+ "By minute": "Nach Minute",
+ "By hour": "Nach Stunde",
+ "By day": "Nach Tag",
+ "By week": "Nach Woche",
+ "By month": "Nach Monat",
+ "By field": "Nach Feld",
+ "By custom date": "Nach benutzerdefiniertem Datum",
+ "Advanced": "Erweitert",
+ "Execute on": "Ausführen am",
+ "Current time": "Aktuelle Zeit",
+ "End": "Ende",
+ "Node result": "Knotenergebnis",
+ "Variable key of node": "Variablenschlüssel des Knotens",
+ "Scope variables": "Bereichsvariablen",
+ "Operator": "Operator",
+ "Calculate an expression based on a calculation engine and obtain a value as the result. Variables in the upstream nodes can be used in the expression.": "Berechnet einen Ausdruck basierend auf einer Berechnungs-Engine und erhält einen Wert als Ergebnis. Variablen in den vorgelagerten Knoten können im Ausdruck verwendet werden.",
+ "String operation": "Zeichenkettenoperation",
+ "System variables": "Systemvariablen",
+ "System time": "Systemzeit",
+ "Date variables": "Datumsvariablen",
+ "Date range": "Datumsbereich",
+ "Executed at": "Ausgeführt am",
+ "Queueing": "In Warteschlange",
+ "On going": "Laufend",
+ "Resolved": "Abgeschlossen",
+ "Pending": "Ausstehend",
+ "Failed": "Fehlgeschlagen",
+ "Error": "Fehler",
+ "Aborted": "Abgebrochen",
+ "Canceled": "Abgebrochen",
+ "Rejected": "Abgelehnt",
+ "Retry needed": "Wiederholung erforderlich",
+ "Completed": "Abgeschlossen",
+ "All": "Alle",
+ "View result": "Ergebnis anzeigen",
+ "Triggered but still waiting in queue to execute.": "Ausgelöst, aber wartet noch in der Warteschlange auf Ausführung.",
+ "Started and executing, maybe waiting for an async callback (manual, delay etc.).": "Gestartet und wird ausgeführt, wartet möglicherweise auf einen asynchronen Callback (manuell, Verzögerung usw.).",
+ "Successfully finished.": "Erfolgreich abgeschlossen.",
+ "Failed to satisfy node configurations.": "Knoten-Konfigurationen konnten nicht erfüllt werden.",
+ "Some node meets error.": "Bei einem Knoten ist ein Fehler aufgetreten.",
+ "Running of some node was aborted by program flow.": "Die Ausführung eines Knotens wurde durch den Programmablauf abgebrochen.",
+ "Manually canceled whole execution when waiting.": "Gesamte Ausführung während des Wartens manuell abgebrochen.",
+ "Rejected from a manual node.": "Von einem manuellen Knoten abgelehnt.",
+ "General failed but should do another try.": "Allgemeiner Fehler, aber sollte erneut versucht werden.",
+ "Cancel the execution": "Ausführung abbrechen",
+ "Are you sure you want to cancel the execution?": "Sind Sie sicher, dass Sie die Ausführung abbrechen möchten?",
+ "Operations": "Operationen",
+ "This node contains branches, deleting will also be preformed to them, are you sure?": "Dieser Knoten enthält Verzweigungen, das Löschen wird auch auf diese angewendet. Sind Sie sicher?",
+ "Control": "Steuerung",
+ "Collection operations": "Sammlungsoperationen",
+ "Manual": "Manuell",
+ "Extended types": "Erweiterte Typen",
+ "Node type": "Knotentyp",
+ "Unknown node": "Unbekannter Knoten",
+ "Node with unknown type will cause error. Please delete it or check plugin which provide this type.": "Knoten mit unbekanntem Typ verursacht Fehler. Bitte löschen Sie ihn oder überprüfen Sie das Plugin, das diesen Typ bereitstellt.",
+ "Calculation": "Berechnung",
+ "Calculation engine": "Berechnungs-Engine",
+ "Basic": "Grundlegend",
+ "Calculation expression": "Berechnungsausdruck",
+ "Expression syntax error": "Ausdruckssyntaxfehler",
+ "Syntax references: ": "Syntaxreferenzen: ",
+ "Calculation result": "Berechnungsergebnis",
+ "True": "Wahr",
+ "False": "Falsch",
+ "concat": "verketten",
+ "Condition": "Bedingung",
+ "Based on boolean result of the calculation to determine whether to \"continue\" or \"exit\" the process, or continue on different branches of \"yes\" and \"no\".": "Basierend auf dem booleschen Ergebnis der Berechnung, um zu bestimmen, ob der Prozess \"fortgesetzt\" oder \"beendet\" wird, oder auf verschiedenen Zweigen von \"ja\" und \"nein\" fortgesetzt wird.",
+ "Mode": "Modus",
+ "Continue when \"Yes\"": "Fortfahren bei \"Ja\"",
+ "Branch into \"Yes\" and \"No\"": "In \"Ja\" und \"Nein\" verzweigen",
+ "Condition expression": "Bedingungsausdruck",
+ "Inside of \"Yes\" branch": "Innerhalb des \"Ja\"-Zweigs",
+ "Inside of \"No\" branch": "Innerhalb des \"Nein\"-Zweigs",
+ "Create record": "Datensatz erstellen",
+ "Add new record to a collection. You can use variables from upstream nodes to assign values to fields.": "Neuen Datensatz zu einer Sammlung hinzufügen. Sie können Variablen aus vorgelagerten Knoten verwenden, um Feldern Werte zuzuweisen.",
+ "Update record": "Datensatz aktualisieren",
+ "Update records of a collection. You can use variables from upstream nodes as query conditions and field values.": "Datensätze einer Sammlung aktualisieren. Sie können Variablen aus vorgelagerten Knoten als Abfragebedingungen und Feldwerte verwenden.",
+ "Update mode": "Aktualisierungsmodus",
+ "Update in a batch": "Stapelaktualisierung",
+ "Update one by one": "Einzeln aktualisieren",
+ "Update all eligible data at one time, which has better performance when the amount of data is large. But association fields are not supported (unless foreign key in current collection), and the updated data will not trigger other workflows.": "Alle berechtigten Daten auf einmal aktualisieren, was bei großen Datenmengen eine bessere Leistung bietet. Aber Assoziationsfelder werden nicht unterstützt (es sei denn, Fremdschlüssel in der aktuellen Sammlung), und die aktualisierten Daten lösen keine anderen Workflows aus.",
+ "Query record": "Datensatz abfragen",
+ "Query records from a collection. You can use variables from upstream nodes as query conditions.": "Datensätze aus einer Sammlung abfragen. Sie können Variablen aus vorgelagerten Knoten als Abfragebedingungen verwenden.",
+ "Allow multiple records as result": "Mehrere Datensätze als Ergebnis zulassen",
+ "If checked, when there are multiple records in the query result, an array will be returned as the result, which can be operated on one by one using a loop node. Otherwise, only one record will be returned.": "Wenn aktiviert, wird bei mehreren Datensätzen im Abfrageergebnis ein Array als Ergebnis zurückgegeben, das mit einem Schleifenknoten einzeln verarbeitet werden kann. Andernfalls wird nur ein Datensatz zurückgegeben.",
+ "Result type": "Ergebnistyp",
+ "Single record": "Einzeldatensatz",
+ "Multiple records": "Mehrere Datensätze",
+ "The result will be an object of the first matching record only, or null if no matched record.": "Das Ergebnis ist ein Objekt nur des ersten übereinstimmenden Datensatzes oder null, wenn kein übereinstimmender Datensatz vorhanden ist.",
+ "The result will be an array containing matched records, or an empty one if no matching records. This can be used to be processed in a loop node.": "Das Ergebnis ist ein Array mit übereinstimmenden Datensätzen oder ein leeres Array, wenn keine übereinstimmenden Datensätze vorhanden sind. Dies kann in einem Schleifenknoten verarbeitet werden.",
+ "Exit when query result is null": "Beenden, wenn das Abfrageergebnis null ist",
+ "Please select collection first": "Bitte wählen Sie zuerst eine Sammlung aus",
+ "Only update records matching conditions": "Nur Datensätze aktualisieren, die den Bedingungen entsprechen",
+ "Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.": "Felder, denen kein Wert zugewiesen wird, werden auf den Standardwert gesetzt, und solche, die keinen Standardwert haben, werden auf null gesetzt.",
+ "Please add at least one condition": "Bitte fügen Sie mindestens eine Bedingung hinzu",
+ "Unassigned fields will be set to default values, and those without default values will be set to null.": "Nicht zugewiesene Felder werden auf Standardwerte gesetzt, und solche ohne Standardwerte werden auf null gesetzt.",
+ "Delete record": "Datensatz löschen",
+ "Delete records of a collection. Could use variables in workflow context as filter. All records match the filter will be deleted.": "Datensätze einer Sammlung löschen. Kann Variablen im Workflow-Kontext als Filter verwenden. Alle Datensätze, die dem Filter entsprechen, werden gelöscht.",
+ "Executed workflow cannot be modified. Could be copied to a new version to modify.": "Ausgeführter Workflow kann nicht geändert werden. Kann in eine neue Version kopiert werden, um Änderungen vorzunehmen.",
+ "Can not delete": "Kann nicht gelöscht werden",
+ "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": "Das Ergebnis dieses Knotens wurde von anderen Knoten ({{nodes}}) referenziert. Bitte entfernen Sie die Verwendung vor dem Löschen.",
+ "End process": "Prozess beenden",
+ "End the process immediately, with set status.": "Den Prozess sofort mit festgelegtem Status beenden.",
+ "End status": "Endstatus",
+ "Succeeded": "Erfolgreich",
+ "Test run": "Testlauf",
+ "Test run will do the actual data manipulating or API calling, please use with caution.": "Testlauf führt tatsächliche Datenmanipulationen oder API-Aufrufe durch, bitte mit Vorsicht verwenden.",
+ "No variable": "Keine Variable",
+ "Add node": "Knoten hinzufügen",
+ "Move all downstream nodes to": "Alle nachgelagerten Knoten verschieben nach",
+ "After end of branches": "Nach Ende der Verzweigungen",
+ "Inside of branch": "Innerhalb der Verzweigung",
+ "Workflow todos": "Workflow-Aufgaben",
+ "New version enabled": "Neue Version aktiviert",
+ "Maximum number of loop calls": "Maximale Anzahl von Schleifenaufrufen",
+ "If the number of loop calls is too large, there will be performance issues.": "Wenn die Anzahl der Schleifenaufrufe zu groß ist, kann es zu Leistungsproblemen kommen.",
+ "Conditions": "Bedingungen",
+ "Trigger in executed workflow cannot be modified": "Auslöser in ausgeführtem Workflow kann nicht geändert werden",
+ "Node in executed workflow cannot be modified": "Knoten in ausgeführtem Workflow kann nicht geändert werden",
+ "Constant": "Konstante",
+ "Null": "Null",
+ "Boolean": "Boolesch",
+ "String": "Zeichenkette",
+ "Arithmetic calculation": "Arithmetische Berechnung",
+ "Configure calculation": "Berechnung konfigurieren"
+}
diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json
index c199ffdf73..93ea1ab140 100644
--- a/packages/presets/nocobase/package.json
+++ b/packages/presets/nocobase/package.json
@@ -1,80 +1,80 @@
{
"name": "@nocobase/preset-nocobase",
- "version": "1.6.0",
+ "version": "1.6.2",
"license": "AGPL-3.0",
"main": "./lib/server/index.js",
"dependencies": {
"@formily/json-schema": "2.x",
- "@nocobase/plugin-acl": "1.6.0",
- "@nocobase/plugin-action-bulk-edit": "1.6.0",
- "@nocobase/plugin-action-bulk-update": "1.6.0",
- "@nocobase/plugin-action-custom-request": "1.6.0",
- "@nocobase/plugin-action-duplicate": "1.6.0",
- "@nocobase/plugin-action-export": "1.6.0",
- "@nocobase/plugin-action-import": "1.6.0",
- "@nocobase/plugin-action-print": "1.6.0",
- "@nocobase/plugin-ai": "1.6.0",
- "@nocobase/plugin-api-doc": "1.6.0",
- "@nocobase/plugin-api-keys": "1.6.0",
- "@nocobase/plugin-async-task-manager": "1.6.0",
- "@nocobase/plugin-audit-logs": "1.6.0",
- "@nocobase/plugin-auth": "1.6.0",
- "@nocobase/plugin-auth-sms": "1.6.0",
- "@nocobase/plugin-backup-restore": "1.6.0",
- "@nocobase/plugin-block-iframe": "1.6.0",
- "@nocobase/plugin-block-workbench": "1.6.0",
- "@nocobase/plugin-calendar": "1.6.0",
- "@nocobase/plugin-charts": "1.6.0",
- "@nocobase/plugin-client": "1.6.0",
- "@nocobase/plugin-collection-sql": "1.6.0",
- "@nocobase/plugin-collection-tree": "1.6.0",
- "@nocobase/plugin-data-source-main": "1.6.0",
- "@nocobase/plugin-data-source-manager": "1.6.0",
- "@nocobase/plugin-data-visualization": "1.6.0",
- "@nocobase/plugin-environment-variables": "1.6.0",
- "@nocobase/plugin-error-handler": "1.6.0",
- "@nocobase/plugin-field-china-region": "1.6.0",
- "@nocobase/plugin-field-formula": "1.6.0",
- "@nocobase/plugin-field-m2m-array": "1.6.0",
- "@nocobase/plugin-field-markdown-vditor": "1.6.0",
- "@nocobase/plugin-field-sequence": "1.6.0",
- "@nocobase/plugin-field-sort": "1.6.0",
- "@nocobase/plugin-file-manager": "1.6.0",
- "@nocobase/plugin-gantt": "1.6.0",
- "@nocobase/plugin-graph-collection-manager": "1.6.0",
- "@nocobase/plugin-kanban": "1.6.0",
- "@nocobase/plugin-localization": "1.6.0",
- "@nocobase/plugin-logger": "1.6.0",
- "@nocobase/plugin-map": "1.6.0",
- "@nocobase/plugin-mobile": "1.6.0",
- "@nocobase/plugin-mobile-client": "1.6.0",
- "@nocobase/plugin-mock-collections": "1.6.0",
- "@nocobase/plugin-multi-app-manager": "1.6.0",
- "@nocobase/plugin-multi-app-share-collection": "1.6.0",
- "@nocobase/plugin-notification-email": "1.6.0",
- "@nocobase/plugin-notification-in-app-message": "1.6.0",
- "@nocobase/plugin-notification-manager": "1.6.0",
- "@nocobase/plugin-public-forms": "1.6.0",
- "@nocobase/plugin-snapshot-field": "1.6.0",
- "@nocobase/plugin-system-settings": "1.6.0",
- "@nocobase/plugin-theme-editor": "1.6.0",
- "@nocobase/plugin-ui-schema-storage": "1.6.0",
- "@nocobase/plugin-user-data-sync": "1.6.0",
- "@nocobase/plugin-users": "1.6.0",
- "@nocobase/plugin-verification": "1.6.0",
- "@nocobase/plugin-workflow": "1.6.0",
- "@nocobase/plugin-workflow-action-trigger": "1.6.0",
- "@nocobase/plugin-workflow-aggregate": "1.6.0",
- "@nocobase/plugin-workflow-delay": "1.6.0",
- "@nocobase/plugin-workflow-dynamic-calculation": "1.6.0",
- "@nocobase/plugin-workflow-loop": "1.6.0",
- "@nocobase/plugin-workflow-mailer": "1.6.0",
- "@nocobase/plugin-workflow-manual": "1.6.0",
- "@nocobase/plugin-workflow-notification": "1.6.0",
- "@nocobase/plugin-workflow-parallel": "1.6.0",
- "@nocobase/plugin-workflow-request": "1.6.0",
- "@nocobase/plugin-workflow-sql": "1.6.0",
- "@nocobase/server": "1.6.0",
+ "@nocobase/plugin-acl": "1.6.2",
+ "@nocobase/plugin-action-bulk-edit": "1.6.2",
+ "@nocobase/plugin-action-bulk-update": "1.6.2",
+ "@nocobase/plugin-action-custom-request": "1.6.2",
+ "@nocobase/plugin-action-duplicate": "1.6.2",
+ "@nocobase/plugin-action-export": "1.6.2",
+ "@nocobase/plugin-action-import": "1.6.2",
+ "@nocobase/plugin-action-print": "1.6.2",
+ "@nocobase/plugin-ai": "1.6.2",
+ "@nocobase/plugin-api-doc": "1.6.2",
+ "@nocobase/plugin-api-keys": "1.6.2",
+ "@nocobase/plugin-async-task-manager": "1.6.2",
+ "@nocobase/plugin-audit-logs": "1.6.2",
+ "@nocobase/plugin-auth": "1.6.2",
+ "@nocobase/plugin-auth-sms": "1.6.2",
+ "@nocobase/plugin-backup-restore": "1.6.2",
+ "@nocobase/plugin-block-iframe": "1.6.2",
+ "@nocobase/plugin-block-workbench": "1.6.2",
+ "@nocobase/plugin-calendar": "1.6.2",
+ "@nocobase/plugin-charts": "1.6.2",
+ "@nocobase/plugin-client": "1.6.2",
+ "@nocobase/plugin-collection-sql": "1.6.2",
+ "@nocobase/plugin-collection-tree": "1.6.2",
+ "@nocobase/plugin-data-source-main": "1.6.2",
+ "@nocobase/plugin-data-source-manager": "1.6.2",
+ "@nocobase/plugin-data-visualization": "1.6.2",
+ "@nocobase/plugin-environment-variables": "1.6.2",
+ "@nocobase/plugin-error-handler": "1.6.2",
+ "@nocobase/plugin-field-china-region": "1.6.2",
+ "@nocobase/plugin-field-formula": "1.6.2",
+ "@nocobase/plugin-field-m2m-array": "1.6.2",
+ "@nocobase/plugin-field-markdown-vditor": "1.6.2",
+ "@nocobase/plugin-field-sequence": "1.6.2",
+ "@nocobase/plugin-field-sort": "1.6.2",
+ "@nocobase/plugin-file-manager": "1.6.2",
+ "@nocobase/plugin-gantt": "1.6.2",
+ "@nocobase/plugin-graph-collection-manager": "1.6.2",
+ "@nocobase/plugin-kanban": "1.6.2",
+ "@nocobase/plugin-localization": "1.6.2",
+ "@nocobase/plugin-logger": "1.6.2",
+ "@nocobase/plugin-map": "1.6.2",
+ "@nocobase/plugin-mobile": "1.6.2",
+ "@nocobase/plugin-mobile-client": "1.6.2",
+ "@nocobase/plugin-mock-collections": "1.6.2",
+ "@nocobase/plugin-multi-app-manager": "1.6.2",
+ "@nocobase/plugin-multi-app-share-collection": "1.6.2",
+ "@nocobase/plugin-notification-email": "1.6.2",
+ "@nocobase/plugin-notification-in-app-message": "1.6.2",
+ "@nocobase/plugin-notification-manager": "1.6.2",
+ "@nocobase/plugin-public-forms": "1.6.2",
+ "@nocobase/plugin-snapshot-field": "1.6.2",
+ "@nocobase/plugin-system-settings": "1.6.2",
+ "@nocobase/plugin-theme-editor": "1.6.2",
+ "@nocobase/plugin-ui-schema-storage": "1.6.2",
+ "@nocobase/plugin-user-data-sync": "1.6.2",
+ "@nocobase/plugin-users": "1.6.2",
+ "@nocobase/plugin-verification": "1.6.2",
+ "@nocobase/plugin-workflow": "1.6.2",
+ "@nocobase/plugin-workflow-action-trigger": "1.6.2",
+ "@nocobase/plugin-workflow-aggregate": "1.6.2",
+ "@nocobase/plugin-workflow-delay": "1.6.2",
+ "@nocobase/plugin-workflow-dynamic-calculation": "1.6.2",
+ "@nocobase/plugin-workflow-loop": "1.6.2",
+ "@nocobase/plugin-workflow-mailer": "1.6.2",
+ "@nocobase/plugin-workflow-manual": "1.6.2",
+ "@nocobase/plugin-workflow-notification": "1.6.2",
+ "@nocobase/plugin-workflow-parallel": "1.6.2",
+ "@nocobase/plugin-workflow-request": "1.6.2",
+ "@nocobase/plugin-workflow-sql": "1.6.2",
+ "@nocobase/server": "1.6.2",
"cronstrue": "^2.11.0",
"fs-extra": "^11.1.1"
},
diff --git a/yarn.lock b/yarn.lock
index 0c11f76500..d104ae4bbd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3497,7 +3497,7 @@
resolved "https://registry.npmmirror.com/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz#923ca57e173c6b232bbbb07347b1be982f03e783"
integrity sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==
-"@budibase/handlebars-helpers@^0.14.0":
+"@budibase/handlebars-helpers@0.14.0":
version "0.14.0"
resolved "https://registry.npmmirror.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.14.0.tgz#6124bc3d2a84840a03575b7853f7e2df95208da7"
integrity sha512-iuK0HmxqAQ4jjcI46ILE6j1g8FK2wZXVrVFClDByGpiCrQ+TZ2rGZ/UNA2kG3qleZvoI2Izk/gXERmyfREke5w==