From 24b2e3c60dac54c7cdf7b09bf3cd4f8ce716255f Mon Sep 17 00:00:00 2001 From: Katherine Date: Wed, 12 Mar 2025 18:32:45 +0800 Subject: [PATCH 01/13] =?UTF-8?q?feat:=20support=20date=20scope=20(min/max?= =?UTF-8?q?)=20configuration=20for=20time=20fields=20in=20l=E2=80=A6=20(#6?= =?UTF-8?q?356)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: support date scope (min/max) configuration for time fields in linkage rules * fix: bug * fix: bug * fix: bug --- packages/core/client/src/locale/zh-CN.json | 3 +- .../LinkageRules/DateScopeComponent.tsx | 131 ++++++++++++++++++ .../LinkageRules/LinkageRuleAction.tsx | 11 +- .../LinkageRules/action-hooks.ts | 8 ++ .../LinkageRules/bindLinkageRulesToFiled.ts | 27 +++- .../src/schema-settings/LinkageRules/type.ts | 1 + .../schema-settings/LinkageRules/useValues.ts | 2 +- .../components/MobileDatePicker.tsx | 46 +++++- 8 files changed, 220 insertions(+), 9 deletions(-) create mode 100644 packages/core/client/src/schema-settings/LinkageRules/DateScopeComponent.tsx diff --git a/packages/core/client/src/locale/zh-CN.json b/packages/core/client/src/locale/zh-CN.json index ee7937d066..279887b3ca 100644 --- a/packages/core/client/src/locale/zh-CN.json +++ b/packages/core/client/src/locale/zh-CN.json @@ -1080,5 +1080,6 @@ "If selected, the page will display Tab pages.": "如果选中,该页面将显示标签页。", "If selected, the route will be displayed in the menu.": "如果选中,该路由将显示在菜单中。", "Are you sure you want to hide this tab?": "你确定要隐藏该标签页吗?", - "After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it.": "隐藏后,该标签将不再显示在标签栏中。要想再次显示它,你需要到路由管理页面进行设置。" + "After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it.": "隐藏后,该标签将不再显示在标签栏中。要想再次显示它,你需要到路由管理页面进行设置。", + "Date scope":"日期范围" } diff --git a/packages/core/client/src/schema-settings/LinkageRules/DateScopeComponent.tsx b/packages/core/client/src/schema-settings/LinkageRules/DateScopeComponent.tsx new file mode 100644 index 0000000000..4437dcf1a2 --- /dev/null +++ b/packages/core/client/src/schema-settings/LinkageRules/DateScopeComponent.tsx @@ -0,0 +1,131 @@ +/** + * 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 React, { useCallback } from 'react'; +import { useFieldSchema } from '@formily/react'; +import { SchemaComponent } from '../../schema-component'; +import { useCollectionManager_deprecated, VariableInput, useFormBlockContext, useRecord } from '../../'; + +export const DateScopeComponent = (props) => { + const fieldSchema = useFieldSchema(); + const { getCollectionJoinField } = useCollectionManager_deprecated(); + const collectionField = getCollectionJoinField(fieldSchema?.['x-collection-field']) || {}; + const gmt = collectionField?.uiSchema?.['x-component-props'].gmt || false; + const utc = collectionField?.uiSchema?.['x-component-props'].utc || false; + const { form } = useFormBlockContext(); + const record = useRecord(); + const showTime = + fieldSchema?.['x-component-props']?.showTime || collectionField?.uiSchema?.['x-component-props']?.showTime || false; + const dateFormat = + fieldSchema?.['x-component-props']?.dateFormat || + collectionField?.uiSchema?.['x-component-props']?.dateFormat || + 'YYYY-MM-DD'; + const timeFormat = + fieldSchema?.['x-component-props']?.timeFormat || + collectionField?.uiSchema?.['x-component-props']?.timeFormat || + 'HH:mm:ss'; + const picker = + fieldSchema?.['x-component-props']?.picker || collectionField?.uiSchema?.['x-component-props']?.picker || 'date'; + + const renderSchemaComponent = useCallback( + (props) => { + return ( + + ); + }, + [dateFormat, gmt, picker, showTime, timeFormat, utc], + ); + const Component = useCallback( + (props) => { + return ( + + ); + }, + [fieldSchema, form, record, renderSchemaComponent], + ); + + return ( +
+ +
+ ); +}; diff --git a/packages/core/client/src/schema-settings/LinkageRules/LinkageRuleAction.tsx b/packages/core/client/src/schema-settings/LinkageRules/LinkageRuleAction.tsx index 06818fd0e7..e7581cf748 100644 --- a/packages/core/client/src/schema-settings/LinkageRules/LinkageRuleAction.tsx +++ b/packages/core/client/src/schema-settings/LinkageRules/LinkageRuleAction.tsx @@ -22,6 +22,7 @@ import { OptionsComponent } from './OptionsComponent'; import { LinkageLogicContext, RemoveActionContext } from './context'; import { ActionType } from './type'; import { useValues } from './useValues'; +import { DateScopeComponent } from './DateScopeComponent'; export const FormFieldLinkageRuleAction = observer( (props: any) => { @@ -57,7 +58,7 @@ export const FormFieldLinkageRuleAction = observer( .ant-space-item { max-width: 95%; display: inline-block; - margin: 2px; + margin: 2px 6px; vertical-align: top; } `} @@ -116,6 +117,14 @@ export const FormFieldLinkageRuleAction = observer( collectionName={collectionName} /> )} + {[ActionType.DateScope].includes(operator) && ( + + )} {!props.disabled && ( remove()} style={{ color: '#bfbfbf' }} /> diff --git a/packages/core/client/src/schema-settings/LinkageRules/action-hooks.ts b/packages/core/client/src/schema-settings/LinkageRules/action-hooks.ts index 0ffa636052..fe33bba3c4 100644 --- a/packages/core/client/src/schema-settings/LinkageRules/action-hooks.ts +++ b/packages/core/client/src/schema-settings/LinkageRules/action-hooks.ts @@ -33,6 +33,7 @@ export const useLinkageCollectionFieldOptions = (collectionName: string, readPre selected: false, schema: {}, }, + { label: t('Date scope'), value: ActionType.DateScope, selected: false, schema: {} }, ].filter((v) => { if (readPretty) { return [ActionType.Visible, ActionType.None, ActionType.Hidden].includes(v.value); @@ -59,6 +60,13 @@ export const useLinkageCollectionFieldOptions = (collectionName: string, readPre if (!['select', 'radioGroup', 'multipleSelect', 'checkboxGroup'].includes(fieldInterface.name)) { return operator?.value !== ActionType.Options; } + if ( + !['date', 'datetime', 'dateOnly', 'datetimeNoTz', 'unixTimestamp', 'createdAt', 'updatedAt'].includes( + fieldInterface.name, + ) + ) { + return operator?.value !== ActionType.DateScope; + } return true; }) || [], }; diff --git a/packages/core/client/src/schema-settings/LinkageRules/bindLinkageRulesToFiled.ts b/packages/core/client/src/schema-settings/LinkageRules/bindLinkageRulesToFiled.ts index 47c3e61ccc..d6ff32ec6a 100644 --- a/packages/core/client/src/schema-settings/LinkageRules/bindLinkageRulesToFiled.ts +++ b/packages/core/client/src/schema-settings/LinkageRules/bindLinkageRulesToFiled.ts @@ -37,6 +37,7 @@ interface Props { * @default '$nForm' */ variableNameOfLeftCondition?: string; + action?: any; } export function bindLinkageRulesToFiled( @@ -71,6 +72,7 @@ export function bindLinkageRulesToFiled( pattern: field.initStateOfLinkageRules?.pattern || getTempFieldState(true, field.pattern), value: field.initStateOfLinkageRules?.value || getTempFieldState(true, field.value || field.initialValue), dataSource: field.initStateOfLinkageRules?.dataSource || getTempFieldState(true, field.dataSource || field.options), + dateScope: field.initStateOfLinkageRules?.dateScope || getTempFieldState(true, null), }; return reaction( @@ -213,6 +215,7 @@ function getSubscriber( variables, localVariables, variableNameOfLeftCondition, + action, }, jsonLogic, ); @@ -240,6 +243,12 @@ function getSubscriber( if (stateList.length > 1) { field.value = lastState.value; } + } else if (fieldName === 'dateScope') { + console.log(lastState.value); + field.setComponentProps({ + _maxDate: lastState.value?._maxDate?.value || lastState.value?._maxDate, + _minDate: lastState.value?._minDate?.value || lastState.value?._minDate, + }); } else { // 为了让字段的默认值中的变量能正常工作,需要保证字段被隐藏时,字段组件依然会被渲染 if (fieldName === 'display' && lastState?.value === 'hidden') { @@ -304,13 +313,15 @@ function getFieldNameByOperator(operator: ActionType) { return 'value'; case ActionType.Options: return 'dataSource'; + case ActionType.DateScope: + return 'dateScope'; default: return null; } } export const collectFieldStateOfLinkageRules = ( - { operator, value, field, condition, variables, localVariables, variableNameOfLeftCondition }: Props, + { operator, value, field, condition, variables, localVariables, variableNameOfLeftCondition, action }: Props, jsonLogic: any, ) => { const requiredResult = field?.stateOfLinkageRules?.required || [field?.initStateOfLinkageRules?.required]; @@ -320,6 +331,7 @@ export const collectFieldStateOfLinkageRules = ( const optionsResult = field?.stateOfLinkageRules?.dataSource || [field?.initStateOfLinkageRules?.dataSource]; const { evaluate } = evaluators.get('formula.js'); const paramsToGetConditionResult = { ruleGroup: condition, variables, localVariables, variableNameOfLeftCondition }; + const dateScopeResult = field?.stateOfLinkageRules?.dateScope || [field?.initStateOfLinkageRules?.dateScope]; switch (operator) { case ActionType.Required: @@ -401,6 +413,19 @@ export const collectFieldStateOfLinkageRules = ( }; } break; + case ActionType.DateScope: { + dateScopeResult.push( + getTempFieldState(conditionAnalyses(paramsToGetConditionResult, jsonLogic), { + _maxDate: action._maxDate, + _minDate: action._minDate, + }), + ); + field.stateOfLinkageRules = { + ...field.stateOfLinkageRules, + dateScope: dateScopeResult, + }; + break; + } default: return null; } diff --git a/packages/core/client/src/schema-settings/LinkageRules/type.ts b/packages/core/client/src/schema-settings/LinkageRules/type.ts index a50fc97546..615db26ece 100644 --- a/packages/core/client/src/schema-settings/LinkageRules/type.ts +++ b/packages/core/client/src/schema-settings/LinkageRules/type.ts @@ -23,6 +23,7 @@ export enum ActionType { BackgroundColor = 'backgroundColor', TextAlign = 'textAlign', Options = 'options', + DateScope = 'dateScope', } export enum LinkageRuleCategory { diff --git a/packages/core/client/src/schema-settings/LinkageRules/useValues.ts b/packages/core/client/src/schema-settings/LinkageRules/useValues.ts index 36ab6af699..722b9da6ae 100644 --- a/packages/core/client/src/schema-settings/LinkageRules/useValues.ts +++ b/packages/core/client/src/schema-settings/LinkageRules/useValues.ts @@ -46,7 +46,7 @@ export const useValues = (options) => { const operators = option?.operators; field.data.operators = operators?.filter((v) => { if (dataIndex.length > 1) { - return v.value !== 'value' && v.value !== 'options'; + return !['value', 'dateScope', 'options'].includes(v.value); } return true; }); diff --git a/packages/plugins/@nocobase/plugin-mobile/src/client/pages/dynamic-page/components/MobileDatePicker.tsx b/packages/plugins/@nocobase/plugin-mobile/src/client/pages/dynamic-page/components/MobileDatePicker.tsx index 977cfb0a7a..34ea6d7f90 100644 --- a/packages/plugins/@nocobase/plugin-mobile/src/client/pages/dynamic-page/components/MobileDatePicker.tsx +++ b/packages/plugins/@nocobase/plugin-mobile/src/client/pages/dynamic-page/components/MobileDatePicker.tsx @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import React, { useState, useCallback } from 'react'; +import React, { useState, useCallback, useEffect, useRef } from 'react'; import { DatePicker, Picker } from 'antd-mobile'; import { Space, Select } from 'antd'; import { @@ -18,7 +18,11 @@ import { inferPickerType, TimePicker as NBTimePicker, mapTimeFormat, + useVariables, + isVariable, + useLocalVariables, } from '@nocobase/client'; +import { autorun } from '@formily/reactive'; import dayjs from 'dayjs'; import { connect, mapProps, mapReadPretty, useField, useFieldSchema } from '@formily/react'; import { getPickerFormat } from '@nocobase/utils/client'; @@ -52,8 +56,41 @@ const MobileDateTimePicker = connect( ...rest } = props; const [visible, setVisible] = useState(false); + const { parseVariable } = useVariables() || {}; + const localVariables = useLocalVariables(); + const [minDate, setMinDate] = useState(null); + const [maxDate, setMaxDate] = useState(null); + const disposeRef = useRef(null); + + useEffect(() => { + if (disposeRef.current) { + disposeRef.current(); + } + disposeRef.current = autorun(() => { + limitDate(); + }); + return () => { + disposeRef.current(); + }; + }, [props._maxDate, props._minDate, localVariables, parseVariable]); + + const limitDate = async () => { + // dayjs() 如果传入 undefined 可能会被解析成当前时间 + let minDateTimePromise = props._minDate ? Promise.resolve(dayjs(props._minDate)) : Promise.resolve(null); + let maxDateTimePromise = props._maxDate ? Promise.resolve(dayjs(props._maxDate)) : Promise.resolve(null); + + if (isVariable(props._maxDate)) { + maxDateTimePromise = parseVariable(props._maxDate, localVariables).then((result) => dayjs(result.value)); + } + if (isVariable(props._minDate)) { + minDateTimePromise = parseVariable(props._minDate, localVariables).then((result) => dayjs(result.value)); + } + + const [minDateTime, maxDateTime] = await Promise.all([minDateTimePromise, maxDateTimePromise]); + setMinDate(minDateTime ? minDateTime.toDate() : null); + setMaxDate(maxDateTime ? maxDateTime.toDate() : null); + }; - // 性能优化:使用 useCallback 缓存函数 const handleConfirm = useCallback( (value) => { setVisible(false); @@ -79,7 +116,6 @@ const MobileDateTimePicker = connect( return data; } }, []); - return ( <>
!disabled && setVisible(true)}> @@ -104,8 +140,8 @@ const MobileDateTimePicker = connect( }} precision={showTime && picker === 'date' ? getPrecision(timeFormat) : picker === 'date' ? 'day' : picker} renderLabel={labelRenderer} - min={rest.min || new Date(1000, 0, 1)} - max={rest.max || new Date(9999, 11, 31)} + min={minDate || rest.min || new Date(1000, 0, 1)} + max={maxDate || rest.max || new Date(9999, 11, 31)} onConfirm={(val) => { handleConfirm(val); }} From 9d572bf8f421d41578d09fd6660de080e3a35eee Mon Sep 17 00:00:00 2001 From: Jonas Fleischer <72101423+jnsflschr@users.noreply.github.com> Date: Wed, 12 Mar 2025 14:35:26 +0100 Subject: [PATCH 02/13] feat: add German localization files for NocoBase core and plugins (#6435) * feat: add German localization files for NocoBase core and plugins * feat: expand German localization for NocoBase plugins compared to chinese translation This commit adds and enhances German translation files across multiple NocoBase plugins, including: - Workflow plugins (action trigger, manual, notification, etc.) - File management - Charts and data visualization - Async task management - Import/export functionality - Theme editor - And several other core and extension plugins --- packages/core/client/src/locale/de-DE.json | 888 ++++++++++++++++++ .../plugin-acl/src/locale/de-DE.json | 11 + .../src/locale/de-DE.json | 5 + .../src/locale/de-DE.json | 6 + .../src/locale/de-DE.json | 7 + .../src/locale/de-DE.json | 51 + .../@nocobase/plugin-ai/src/locale/de-DE.json | 25 + .../plugin-api-doc/src/locale/de-DE.json | 5 + .../plugin-api-keys/src/locale/de-DE.json | 21 + .../src/locale/de-DE.json | 45 + .../plugin-audit-logs/src/locale/de-DE.json | 3 + .../plugin-auth-sms/src/locale/de-DE.json | 6 + .../plugin-auth/src/locale/de-DE.json | 50 + .../src/locale/de-DE.json | 50 + .../src/locale/de-DE.json | 18 + .../plugin-calendar/src/locale/de-DE.json | 54 ++ .../plugin-charts/src/locale/de-DE.json | 74 ++ .../src/locale/de-DE.json | 4 + .../src/locale/de-DE.json | 40 + .../src/locale/de-DE.json | 102 ++ .../src/locale/de-DE.json | 16 + .../src/locale/de-DE.json | 6 + .../src/locale/de-DE.json | 9 + .../src/locale/de-DE.json | 4 + .../src/locale/de-DE.json | 33 + .../src/locale/de-DE.json | 37 + .../plugin-field-sort/src/locale/de-DE.json | 1 + .../plugin-file-manager/src/locale/de-DE.json | 41 + .../plugin-gantt/src/locale/de-DE.json | 7 + .../src/locale/de-DE.json | 16 + .../plugin-kanban/src/locale/de-DE.json | 9 + .../plugin-localization/src/locale/de-DE.json | 24 + .../plugin-logger/src/locale/de-DE.json | 9 + .../plugin-map/src/locale/de-DE.json | 51 + .../src/locale/de-DE.json | 32 + .../plugin-mobile/src/locale/de-DE.json | 35 + .../src/locale/de-DE.json | 14 + .../src/locale/de-DE.json | 12 + .../src/locale/de-DE.json | 22 + .../src/locale/de-DE.json | 29 + .../src/locale/de-DE.json | 43 + .../plugin-public-forms/src/locale/de-DE.json | 18 + .../plugin-public-forms/src/locale/en-US.json | 18 + .../src/locale/de-DE.json | 13 + .../plugin-theme-editor/src/locale/de-DE.json | 36 + .../src/locale/de-DE.json | 24 + .../plugin-users/src/locale/de-DE.json | 12 + .../plugin-verification/src/locale/de-DE.json | 22 + .../src/locale/de-DE.json | 22 + .../src/locale/de-DE.json | 12 + .../src/locale/de-DE.json | 9 + .../src/locale/de-DE.json | 14 + .../src/locale/de-DE.json | 24 + .../src/locale/de-DE.json | 19 + .../src/locale/de-DE.json | 36 + .../src/locale/de-DE.json | 6 + .../src/locale/de-DE.json | 12 + .../src/locale/de-DE.json | 27 + .../plugin-workflow-sql/src/locale/de-DE.json | 9 + .../plugin-workflow/src/locale/de-DE.json | 216 +++++ 60 files changed, 2464 insertions(+) create mode 100644 packages/core/client/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-acl/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-action-export/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-action-import/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-ai/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-api-doc/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-api-keys/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-async-task-manager/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-audit-logs/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-auth-sms/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-auth/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-backup-restore/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-block-workbench/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-calendar/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-charts/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-data-source-main/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-data-source-manager/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-data-visualization/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-environment-variables/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-error-handler/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-field-formula/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-field-m2m-array/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-field-markdown-vditor/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-field-sequence/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-field-sort/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-file-manager/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-gantt/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-kanban/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-localization/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-logger/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-map/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-mobile-client/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-mobile/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-notification-email/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-notification-manager/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-public-forms/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-public-forms/src/locale/en-US.json create mode 100644 packages/plugins/@nocobase/plugin-snapshot-field/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-theme-editor/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-users/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-verification/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-aggregate/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-delay/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-loop/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-manual/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-notification/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-request/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow-sql/src/locale/de-DE.json create mode 100644 packages/plugins/@nocobase/plugin-workflow/src/locale/de-DE.json diff --git a/packages/core/client/src/locale/de-DE.json b/packages/core/client/src/locale/de-DE.json new file mode 100644 index 0000000000..1f0df5805f --- /dev/null +++ b/packages/core/client/src/locale/de-DE.json @@ -0,0 +1,888 @@ +{ + "Display <1><0>10<1>20<2>50<3>100 items per page": "<1><0>10<1>20<2>50<3>100 Einträge pro Seite anzeigen", + "Meet <1><0>All<1>Any conditions in the group": "<1><0>Alle<1>Beliebige Bedingungen in der Gruppe erfüllen", + "Open in<1><0>Modal<1>Drawer<2>Window": "Öffnen in<1><0>Modal<1>Seitenleiste<2>Fenster", + "{{count}} filter items": "{{count}} Filterelemente", + "{{count}} more items": "{{count}} weitere Einträge", + "Total {{count}} items": "Insgesamt {{count}} Einträge", + "Today": "Heute", + "Yesterday": "Gestern", + "Tomorrow": "Morgen", + "Month": "Monat", + "Week": "Woche", + "This week": "Diese Woche", + "This month": "Dieser Monat", + "This year": "Dieses Jahr", + "Next year": "Nächstes Jahr", + "Last week": "Letzte Woche", + "Next week": "Nächste Woche", + "Last month": "Letzter Monat", + "Next month": "Nächster Monat", + "Last quarter": "Letztes Quartal", + "This quarter": "Dieses Quartal", + "Next quarter": "Nächstes Quartal", + "Last year": "Letztes Jahr", + "Last 7 days": "Letzte 7 Tage", + "Last 30 days": "Letzte 30 Tage", + "Last 90 days": "Letzte 90 Tage", + "Next 7 days": "Nächste 7 Tage", + "Next 30 days": "Nächste 30 Tage", + "Next 90 days": "Nächste 90 Tage", + "Work week": "Arbeitswoche", + "Day": "Tag", + "Agenda": "Agenda", + "Date": "Datum", + "Time": "Zeit", + "Event": "Ereignis", + "None": "Keine", + "Unconnected": "Nicht verbunden", + "System settings": "Systemeinstellungen", + "System title": "Systemtitel", + "Settings": "Einstellungen", + "Logo": "Logo", + "Add menu item": "Menüpunkt hinzufügen", + "Page": "Seite", + "Name": "Name", + "Icon": "Symbol", + "Group": "Gruppe", + "Link": "Link", + "Tab": "Tab", + "Save conditions": "Bedingungen speichern", + "Edit menu item": "Menüpunkt bearbeiten", + "Move to": "Verschieben nach", + "Insert left": "Links einfügen", + "Insert right": "Rechts einfügen", + "Insert inner": "Innen einfügen", + "Delete": "Löschen", + "Disassociate": "Trennen", + "Disassociate record": "Datensatz trennen", + "Are you sure you want to disassociate it?": "Sind Sie sicher, dass Sie die Verbindung trennen möchten?", + "UI editor": "UI-Editor", + "Collection": "Sammlung", + "Collection selector": "Sammlungsauswahl", + "Providing certain collections as options for users, typically used in polymorphic or inheritance scenarios": "Bestimmte Sammlungen als Optionen für Benutzer bereitstellen, typischerweise verwendet in polymorphen oder Vererbungsszenarien", + "Collections & Fields": "Sammlungen & Felder", + "All collections": "Alle Sammlungen", + "Add category": "Kategorie hinzufügen", + "Enable child collections": "Untersammlungen aktivieren", + "Allow adding records to the current collection": "Hinzufügen von Datensätzen zur aktuellen Sammlung erlauben", + "Delete category": "Kategorie löschen", + "Edit category": "Kategorie bearbeiten", + "Collection category": "Sammlungskategorie", + "Collection template": "Sammlungsvorlage", + "Sort": "Sortieren", + "Categories": "Kategorien", + "Visible": "Sichtbar", + "Read only": "Nur lesen", + "Easy reading": "Leicht lesbar", + "Hidden": "Versteckt", + "Hidden(reserved value)": "Versteckt (reservierter Wert)", + "Not required": "Nicht erforderlich", + "Value": "Wert", + "Disabled": "Deaktiviert", + "Enabled": "Aktiviert", + "Problematic": "Problematisch", + "Setting": "Einstellung", + "On": "Ein", + "Off": "Aus", + "Empty": "Leer", + "Linkage rule": "Verknüpfungsregel", + "Linkage rules": "Verknüpfungsregeln", + "Condition": "Bedingung", + "Properties": "Eigenschaften", + "Add linkage rule": "Verknüpfungsregel hinzufügen", + "Add property": "Eigenschaft hinzufügen", + "Category name": "Kategoriename", + "Roles & Permissions": "Rollen & Berechtigungen", + "Edit profile": "Profil bearbeiten", + "Change password": "Passwort ändern", + "Old password": "Altes Passwort", + "New password": "Neues Passwort", + "Switch role": "Rolle wechseln", + "Super admin": "Superadministrator", + "Language": "Sprache", + "Allow sign up": "Registrierung erlauben", + "Enable SMS authentication": "SMS-Authentifizierung aktivieren", + "Sign out": "Abmelden", + "Cancel": "Abbrechen", + "Submit": "Absenden", + "Close": "Schließen", + "Set the data scope": "Datenbereich festlegen", + "Set data loading mode": "Datenladungsmodus festlegen", + "Load all data when filter is empty": "Alle Daten laden, wenn der Filter leer ist", + "Do not load data when filter is empty": "Keine Daten laden, wenn der Filter leer ist", + "Data loading mode": "Datenladungsmodus", + "Data blocks": "Datenblöcke", + "Filter blocks": "Filterblöcke", + "Table": "Tabelle", + "Table OID(Inheritance)": "Tabellen-OID (Vererbung)", + "Form": "Formular", + "List": "Liste", + "Grid Card": "Rasterkarte", + "pixels": "Pixel", + "Screen size": "Bildschirmgröße", + "Display title": "Titel anzeigen", + "Set the count of columns displayed in a row": "Anzahl der Spalten in einer Zeile festlegen", + "Column": "Spalte", + "Phone device": "Mobiltelefon", + "Tablet device": "Tablet", + "Desktop device": "Desktop", + "Large screen device": "Großer Bildschirm", + "Collapse": "Einklappen", + "Select data source": "Datenquelle auswählen", + "Calendar": "Kalender", + "Delete events": "Ereignisse löschen", + "This event": "Dieses Ereignis", + "This and following events": "Dieses und folgende Ereignisse", + "All events": "Alle Ereignisse", + "Delete this event?": "Dieses Ereignis löschen?", + "Delete Event": "Ereignis löschen", + "Kanban": "Kanban", + "Gantt": "Gantt", + "Create gantt block": "Gantt-Block erstellen", + "Progress field": "Fortschrittsfeld", + "Time scale": "Zeitskala", + "Hour": "Stunde", + "Quarter of day": "Viertel des Tages", + "Half of day": "Halber Tag", + "Year": "Jahr", + "QuarterYear": "Jahresquartal", + "Select grouping field": "Gruppierungsfeld auswählen", + "Media": "Medien", + "Markdown": "Markdown", + "Wysiwyg": "Wysiwyg", + "Chart blocks": "Diagrammblöcke", + "Column chart": "Säulendiagramm", + "Bar chart": "Balkendiagramm", + "Line chart": "Liniendiagramm", + "Pie chart": "Kreisdiagramm", + "Area chart": "Flächendiagramm", + "Other chart": "Anderes Diagramm", + "Other blocks": "Andere Blöcke", + "In configuration": "In Konfiguration", + "Chart title": "Diagrammtitel", + "Chart type": "Diagrammtyp", + "Chart config": "Diagrammkonfiguration", + "Templates": "Vorlagen", + "Select template": "Vorlage auswählen", + "Action logs": "Aktionslogs", + "Create template": "Vorlage erstellen", + "Edit markdown": "Markdown bearbeiten", + "Add block": "Block hinzufügen", + "Add new": "Neu hinzufügen", + "Add record": "Datensatz hinzufügen", + "Add child": "Kind hinzufügen", + "Collapse all": "Alle einklappen", + "Expand all": "Alle ausklappen", + "Expand/Collapse": "Erweitern/Einklappen", + "Default collapse": "Standardmäßig eingeklappt", + "Tree table": "Baumtabelle", + "Custom field display name": "Benutzerdefinierter Feldanzeigename", + "Display fields": "Anzeigefelder der Sammlung", + "Edit record": "Datensatz bearbeiten", + "Delete menu item": "Menüpunkt löschen", + "Add page": "Seite hinzufügen", + "Add group": "Gruppe hinzufügen", + "Add link": "Link hinzufügen", + "Insert above": "Oben einfügen", + "Insert below": "Unten einfügen", + "Save": "Speichern", + "Delete block": "Block löschen", + "Are you sure you want to delete it?": "Sind Sie sicher, dass Sie es löschen möchten?", + "This is a demo text, **supports Markdown syntax**.": "Dies ist ein Beispieltext, **unterstützt Markdown-Syntax**.", + "Filter": "Filter", + "Connect data blocks": "Datenblöcke verbinden", + "Action type": "Aktionstyp", + "Actions": "Aktionen", + "Insert": "Einfügen", + "Insert if not exists": "Einfügen, wenn nicht vorhanden", + "Insert if not exists, or update": "Einfügen, wenn nicht vorhanden, sonst aktualisieren", + "Determine whether a record exists by the following fields": "Bestimmen Sie, ob ein Datensatz anhand der folgenden Felder existiert", + "Update": "Aktualisieren", + "Update record": "Datensatz aktualisieren", + "View": "Ansicht", + "View record": "Datensatz ansehen", + "Refresh": "Aktualisieren", + "Data changes": "Datenänderungen", + "Field name": "Feldname", + "Before change": "Vor der Änderung", + "After change": "Nach der Änderung", + "Delete record": "Datensatz löschen", + "Delete collection": "Sammlung löschen", + "Create collection": "Sammlung erstellen", + "Collection display name": "Anzeigename der Sammlung", + "Collection name": "Sammlungsname", + "Inherits": "Erbt von", + "Primary key, unique identifier, self growth": "Primärschlüssel, eindeutiger Bezeichner, automatische Erhöhung", + "Store the creation user of each record": "Speichert den Erstellungsbenutzer jedes Datensatzes", + "Store the last update user of each record": "Speichert den letzten Aktualisierungsbenutzer jedes Datensatzes", + "Store the creation time of each record": "Speichert die Erstellungszeit jedes Datensatzes", + "Store the last update time of each record": "Speichert die letzte Aktualisierungszeit jedes Datensatzes", + "More options": "Weitere Optionen", + "Records can be sorted": "Datensätze können sortiert werden", + "Calendar collection": "Kalendersammlung", + "General collection": "Allgemeine Sammlung", + "Connect to database view": "Mit Datenbankansicht verbinden", + "Sync from database": "Von Datenbank synchronisieren", + "Source collections": "Quellsammlungen", + "Field source": "Feldquelle", + "Preview": "Vorschau", + "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "Zufällig generiert und kann geändert werden. Unterstützt Buchstaben, Zahlen und Unterstriche, muss mit einem Buchstaben beginnen.", + "Edit": "Bearbeiten", + "Edit collection": "Sammlung bearbeiten", + "Configure fields": "Felder konfigurieren", + "Configure columns": "Spalten konfigurieren", + "Edit field": "Feld bearbeiten", + "Override": "Überschreiben", + "Override field": "Feld überschreiben", + "Configure fields of {{title}}": "Felder von {{title}} konfigurieren", + "Association fields filter": "Filter für Verknüpfungsfelder", + "PK & FK fields": "PK & FK Felder", + "Association fields": "Verknüpfungsfelder", + "Choices fields": "Auswahlfelder", + "System fields": "Systemfelder", + "General fields": "Allgemeine Felder", + "Inherited fields": "Geerbte Felder", + "Parent collection fields": "Felder der übergeordneten Sammlung", + "Basic": "Grundlegend", + "Single line text": "Einzeiliger Text", + "Long text": "Langer Text", + "Phone": "Telefon", + "Email": "E-Mail", + "Number": "Zahl", + "Integer": "Ganzzahl", + "Percent": "Prozent", + "Password": "Passwort", + "Advanced type": "Erweitert", + "Formula": "Formel", + "Formula description": "Berechnet einen Wert in jedem Datensatz basierend auf anderen Feldern im selben Datensatz.", + "Choices": "Auswahlmöglichkeiten", + "Checkbox": "Kontrollkästchen", + "Single select": "Einzelauswahl", + "Multiple select": "Mehrfachauswahl", + "Radio group": "Radiogruppe", + "Checkbox group": "Kontrollkästchengruppe", + "China region": "China-Region", + "Date & Time": "Datum & Zeit", + "Datetime": "Datum/Zeit", + "Relation": "Beziehung", + "Link to": "Verknüpfen mit", + "Link to description": "Wird verwendet, um Sammlungsbeziehungen schnell zu erstellen und ist mit den meisten gängigen Szenarien kompatibel. Geeignet für Nicht-Entwickler. Als Feld dargestellt, ist es eine Dropdown-Auswahl zur Auswahl von Datensätzen aus der Zielsammlung. Nach der Erstellung werden gleichzeitig die zugehörigen Felder der aktuellen Sammlung in der Zielsammlung generiert.", + "Sub-table": "Untertabelle", + "Sub-details": "Unterdetails", + "Sub-form(Popover)": "Unterformular (Popover)", + "System info": "Systeminformationen", + "Created at": "Erstellt am", + "Last updated at": "Zuletzt aktualisiert am", + "Created by": "Erstellt von", + "Last updated by": "Zuletzt aktualisiert von", + "Add field": "Feld hinzufügen", + "Field display name": "Feldanzeigename", + "Field type": "Feldtyp", + "Field interface": "Feldschnittstelle", + "Date format": "Datumsformat", + "Year/Month/Day": "Jahr/Monat/Tag", + "Year-Month-Day": "Jahr-Monat-Tag", + "Day/Month/Year": "Tag/Monat/Jahr", + "Show time": "Zeit anzeigen", + "Time format": "Zeitformat", + "12 hour": "12 Stunden", + "24 hour": "24 Stunden", + "Relationship type": "Beziehungstyp", + "Inverse relationship type": "Inverse Beziehungstyp", + "Source collection": "Quellsammlung", + "Source key": "Quellschlüssel", + "Target collection": "Zielsammlung", + "Through collection": "Zwischensammlung", + "Target key": "Zielschlüssel", + "Foreign key": "Fremdschlüssel", + "One to one": "Eins zu Eins", + "One to many": "Eins zu Viele", + "Many to one": "Viele zu Eins", + "Many to many": "Viele zu Viele", + "Foreign key 1": "Fremdschlüssel 1", + "Foreign key 2": "Fremdschlüssel 2", + "One to one description": "Wird verwendet, um eine Eins-zu-Eins-Beziehung zu erstellen. Zum Beispiel hat ein Benutzer ein Profil.", + "One to many description": "Wird verwendet, um eine Eins-zu-Viele-Beziehung zu erstellen. Zum Beispiel hat ein Land viele Städte und eine Stadt kann nur in einem Land sein. Als Feld dargestellt, ist es eine Untertabelle, die die Datensätze der zugehörigen Sammlung anzeigt. Bei der Erstellung wird automatisch ein Viele-zu-Eins-Feld in der zugehörigen Sammlung generiert.", + "Many to one description": "Wird verwendet, um Viele-zu-Eins-Beziehungen zu erstellen. Zum Beispiel kann eine Stadt nur zu einem Land gehören und ein Land kann viele Städte haben. Als Feld dargestellt, ist es eine Dropdown-Auswahl zur Auswahl eines Datensatzes aus der zugehörigen Sammlung. Nach der Erstellung wird automatisch ein Eins-zu-Viele-Feld in der zugehörigen Sammlung generiert.", + "Many to many description": "Wird verwendet, um Viele-zu-Viele-Beziehungen zu erstellen. Zum Beispiel hat ein Schüler viele Lehrer und ein Lehrer hat viele Schüler. Als Feld dargestellt, ist es eine Dropdown-Auswahl zur Auswahl von Datensätzen aus der zugehörigen Sammlung.", + "Generated automatically if left blank": "Wird automatisch generiert, wenn leer gelassen", + "Display association fields": "Verknüpfungsfelder anzeigen", + "Display field title": "Feldtitel anzeigen", + "Field component": "Feldkomponente", + "Allow multiple": "Mehrere erlauben", + "Quick upload": "Schnelles Hochladen", + "Select file": "Datei auswählen", + "Subtable": "Untertabelle", + "Sub-form": "Unterformular", + "Field mode": "Feldmodus", + "Allow add new data": "Hinzufügen neuer Daten erlauben", + "Record picker": "Datensatzauswahl", + "Toggles the subfield mode": "Schaltet den Unterfeld-Modus um", + "Selector mode": "Auswahlmodus", + "Subtable mode": "Untertabellenmodus", + "Subform mode": "Unterformularmodus", + "Edit block title": "Blocktitel bearbeiten", + "Block title": "Blocktitel", + "Pattern": "Muster", + "Operator": "Operator", + "Editable": "Bearbeitbar", + "Readonly": "Schreibgeschützt", + "Easy-reading": "Leicht lesbar", + "Add filter": "Filter hinzufügen", + "Add filter group": "Filtergruppe hinzufügen", + "Comparision": "Vergleich", + "is": "ist", + "is not": "ist nicht", + "contains": "enthält", + "does not contain": "enthält nicht", + "starts with": "beginnt mit", + "not starts with": "beginnt nicht mit", + "ends with": "endet mit", + "not ends with": "endet nicht mit", + "is empty": "ist leer", + "is not empty": "ist nicht leer", + "Edit chart": "Diagramm bearbeiten", + "Add text": "Text hinzufügen", + "Filterable fields": "Filterbare Felder", + "Edit button": "Schaltfläche bearbeiten", + "Hide": "Ausblenden", + "Enable actions": "Aktionen aktivieren", + "Import": "Importieren", + "Export": "Exportieren", + "Customize": "Anpassen", + "Custom": "Benutzerdefiniert", + "Function": "Funktion", + "Popup form": "Popup-Formular", + "Flexible popup": "Flexibles Popup", + "Configure actions": "Aktionen konfigurieren", + "Display order number": "Bestellnummer anzeigen", + "Enable drag and drop sorting": "Drag & Drop-Sortierung aktivieren", + "Triggered when the row is clicked": "Wird ausgelöst, wenn auf die Zeile geklickt wird", + "Add tab": "Tab hinzufügen", + "Disable tabs": "Tabs deaktivieren", + "Details": "Details", + "Edit form": "Formular bearbeiten", + "Create form": "Formular erstellen", + "Form (Edit)": "Formular (Bearbeiten)", + "Form (Add new)": "Formular (Neu hinzufügen)", + "Edit tab": "Tab bearbeiten", + "Relationship blocks": "Beziehungsblöcke", + "Select record": "Datensatz auswählen", + "Display name": "Anzeigename", + "Select icon": "Symbol auswählen", + "Custom column name": "Benutzerdefinierter Spaltenname", + "Edit description": "Beschreibung bearbeiten", + "Required": "Erforderlich", + "Unique": "Eindeutig", + "Primary": "Primär", + "Auto increment": "Automatische Erhöhung", + "Label field": "Beschriftungsfeld", + "Default is the ID field": "Standard ist das ID-Feld", + "Set default sorting rules": "Standardsortierregeln festlegen", + "Set validation rules": "Validierungsregeln festlegen", + "Max length": "Maximale Länge", + "Min length": "Minimale Länge", + "Maximum": "Maximum", + "Minimum": "Minimum", + "Max length must greater than min length": "Maximale Länge muss größer als minimale Länge sein", + "Min length must less than max length": "Minimale Länge muss kleiner als maximale Länge sein", + "Maximum must greater than minimum": "Maximum muss größer als Minimum sein", + "Minimum must less than maximum": "Minimum muss kleiner als Maximum sein", + "Validation rule": "Validierungsregel", + "Add validation rule": "Validierungsregel hinzufügen", + "Format": "Format", + "Regular expression": "Regulärer Ausdruck", + "Error message": "Fehlermeldung", + "Length": "Länge", + "The field value cannot be greater than ": "Der Feldwert darf nicht größer sein als ", + "The field value cannot be less than ": "Der Feldwert darf nicht kleiner sein als ", + "The field value is not an integer number": "Der Feldwert ist keine ganze Zahl", + "Set default value": "Standardwert festlegen", + "Default value": "Standardwert", + "is before": "ist vor", + "is after": "ist nach", + "is on or after": "ist am oder nach", + "is on or before": "ist am oder vor", + "is between": "ist zwischen", + "Upload": "Hochladen", + "Select level": "Ebene auswählen", + "Province": "Provinz", + "City": "Stadt", + "Area": "Gebiet", + "Street": "Straße", + "Village": "Dorf", + "Must select to the last level": "Muss bis zur letzten Ebene ausgewählt werden", + "Move {{title}} to": "{{title}} verschieben nach", + "Target position": "Zielposition", + "After": "Nach", + "Before": "Vor", + "Add {{type}} before \"{{title}}\"": "{{type}} vor \"{{title}}\" hinzufügen", + "Add {{type}} after \"{{title}}\"": "{{type}} nach \"{{title}}\" hinzufügen", + "Add {{type}} in \"{{title}}\"": "{{type}} in \"{{title}}\" hinzufügen", + "Original name": "Ursprünglicher Name", + "Custom name": "Benutzerdefinierter Name", + "Custom Title": "Benutzerdefinierter Titel", + "Options": "Optionen", + "Option value": "Optionswert", + "Option label": "Optionsbezeichnung", + "Color": "Farbe", + "Background Color": "Hintergrundfarbe", + "Text Align": "Textausrichtung", + "Add option": "Option hinzufügen", + "Related collection": "Zugehörige Sammlung", + "Allow linking to multiple records": "Verknüpfung mit mehreren Datensätzen erlauben", + "Allow uploading multiple files": "Hochladen mehrerer Dateien erlauben", + "Configure calendar": "Kalender konfigurieren", + "Title field": "Titelfeld", + "Custom title": "Benutzerdefinierter Titel", + "Daily": "Täglich", + "Weekly": "Wöchentlich", + "Monthly": "Monatlich", + "Yearly": "Jährlich", + "Repeats": "Wiederholungen", + "Show lunar": "Mondkalender anzeigen", + "Start date field": "Startdatumsfeld", + "End date field": "Enddatumsfeld", + "Navigate": "Navigieren", + "Title": "Titel", + "Description": "Beschreibung", + "Select view": "Ansicht auswählen", + "Reset": "Zurücksetzen", + "Importable fields": "Importierbare Felder", + "Exportable fields": "Exportierbare Felder", + "Saved successfully": "Erfolgreich gespeichert", + "Nickname": "Spitzname", + "Sign in": "Anmelden", + "Sign in via account": "Über Konto anmelden", + "Sign in via phone": "Über Telefon anmelden", + "Create an account": "Konto erstellen", + "Sign up": "Registrieren", + "Confirm password": "Passwort bestätigen", + "Log in with an existing account": "Mit einem bestehenden Konto anmelden", + "Signed up successfully. It will jump to the login page.": "Registrierung erfolgreich. Sie werden zur Anmeldeseite weitergeleitet.", + "Password mismatch": "Passwörter stimmen nicht überein", + "Users": "Benutzer", + "Verification code": "Bestätigungscode", + "Send code": "Code senden", + "Retry after {{count}} seconds": "Wiederholen nach {{count}} Sekunden", + "Roles": "Rollen", + "Add role": "Rolle hinzufügen", + "Role name": "Rollenname", + "Configure": "Konfigurieren", + "Configure permissions": "Berechtigungen konfigurieren", + "Edit role": "Rolle bearbeiten", + "Action permissions": "Aktionsberechtigungen", + "Menu permissions": "Menüberechtigungen", + "Menu item name": "Menüpunktname", + "Allow access": "Zugriff erlauben", + "Action name": "Aktionsname", + "Allow action": "Aktion erlauben", + "Action scope": "Aktionsbereich", + "Operate on new data": "Mit neuen Daten arbeiten", + "Operate on existing data": "Mit vorhandenen Daten arbeiten", + "Yes": "Ja", + "No": "Nein", + "Red": "Rot", + "Magenta": "Magenta", + "Volcano": "Vulkan", + "Orange": "Orange", + "Gold": "Gold", + "Lime": "Limette", + "Green": "Grün", + "Cyan": "Cyan", + "Blue": "Blau", + "Geek blue": "Geek-Blau", + "Purple": "Lila", + "Default": "Standard", + "Add card": "Karte hinzufügen", + "edit title": "Titel bearbeiten", + "Turn pages": "Seiten umblättern", + "Others": "Andere", + "Other records": "Andere Datensätze", + "Save as template": "Als Vorlage speichern", + "Save as block template": "Als Blockvorlage speichern", + "Block templates": "Blockvorlagen", + "Block template": "Blockvorlage", + "Convert reference to duplicate": "Referenz in Duplikat umwandeln", + "Template name": "Vorlagenname", + "Block type": "Blocktyp", + "No blocks to connect": "Keine Blöcke zum Verbinden", + "Action column": "Aktionsspalte", + "Records per page": "Datensätze pro Seite", + "(Fields only)": "(Nur Felder)", + "Button title": "Schaltflächentitel", + "Button icon": "Schaltflächensymbol", + "Submitted successfully": "Erfolgreich übermittelt", + "Operation succeeded": "Operation erfolgreich", + "Operation failed": "Operation fehlgeschlagen", + "Open mode": "Öffnungsmodus", + "Popup size": "Popup-Größe", + "Small": "Klein", + "Middle": "Mittel", + "Large": "Groß", + "Size": "Größe", + "Oversized": "Übergroß", + "Auto": "Automatisch", + "Object Fit": "Objektanpassung", + "Cover": "Abdecken", + "Fill": "Füllen", + "Contain": "Enthalten", + "Scale Down": "Verkleinern", + "Menu item title": "Menüpunkttitel", + "Menu item icon": "Menüpunktsymbol", + "Target": "Ziel", + "Position": "Position", + "Insert before": "Davor einfügen", + "Insert after": "Danach einfügen", + "UI Editor": "UI-Editor", + "ASC": "Aufsteigend", + "DESC": "Absteigend", + "Add sort field": "Sortierfeld hinzufügen", + "ID": "ID", + "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Bezeichner für Programmnutzung. Unterstützt Buchstaben, Zahlen und Unterstriche, muss mit einem Buchstaben beginnen.", + "Drawer": "Seitenleiste", + "Dialog": "Dialog", + "Delete action": "Aktion löschen", + "Custom column title": "Benutzerdefinierter Spaltentitel", + "Column title": "Spaltentitel", + "Original title: ": "Ursprünglicher Titel: ", + "Delete table column": "Tabellenspalte löschen", + "Skip required validation": "Erforderliche Validierung überspringen", + "Form values": "Formularwerte", + "Fields values": "Feldwerte", + "The field has been deleted": "Das Feld wurde gelöscht", + "When submitting the following fields, the saved values are": "Beim Absenden der folgenden Felder sind die gespeicherten Werte", + "After successful submission": "Nach erfolgreicher Übermittlung", + "Then": "Dann", + "Stay on current page": "Auf aktueller Seite bleiben", + "Redirect to": "Weiterleiten zu", + "Save action": "Aktion speichern", + "Exists": "Existiert", + "Add condition": "Bedingung hinzufügen", + "Add condition group": "Bedingungsgruppe hinzufügen", + "exists": "existiert", + "not exists": "existiert nicht", + "Style": "Stil", + "=": "=", + "≠": "≠", + ">": ">", + "≥": "≥", + "<": "<", + "≤": "≤", + "Role UID": "Rollen-UID", + "Precision": "Genauigkeit", + "Formula mode": "Formelmodus", + "Expression": "Ausdruck", + "Input +, -, *, /, ( ) to calculate, input @ to open field variables.": "Geben Sie +, -, *, /, ( ) zum Berechnen ein, geben Sie @ ein, um Feldvariablen zu öffnen.", + "Formula error.": "Formelfehler.", + "Rich Text": "Rich Text", + "Junction collection": "Verbindungssammlung", + "Leave it blank, unless you need a custom intermediate table": "Lassen Sie es leer, es sei denn, Sie benötigen eine benutzerdefinierte Zwischentabelle", + "Fields": "Felder", + "Edit field title": "Feldtitel bearbeiten", + "Field title": "Feldtitel", + "Original field title: ": "Ursprünglicher Feldtitel: ", + "Edit tooltip": "Tooltip bearbeiten", + "Delete field": "Feld löschen", + "Select collection": "Sammlung auswählen", + "Blank block": "Leerer Block", + "Duplicate template": "Vorlage duplizieren", + "Reference template": "Referenzvorlage", + "Create calendar block": "Kalenderblock erstellen", + "Create kanban block": "Kanban-Block erstellen", + "Grouping field": "Gruppierungsfeld", + "Single select and radio fields can be used as the grouping field": "Einzelauswahl- und Radiofelder können als Gruppierungsfeld verwendet werden", + "Tab name": "Tab-Name", + "Current record blocks": "Blöcke des aktuellen Datensatzes", + "Popup message": "Popup-Nachricht", + "Delete role": "Rolle löschen", + "Role display name": "Rollenanzeigename", + "Default role": "Standardrolle", + "All collections use general action permissions by default; permission configured individually will override the default one.": "Alle Sammlungen verwenden standardmäßig allgemeine Aktionsberechtigungen; individuell konfigurierte Berechtigungen überschreiben die Standardeinstellung.", + "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Ermöglicht die Konfiguration des gesamten Systems, einschließlich UI, Sammlungen, Berechtigungen usw.", + "New menu items are allowed to be accessed by default.": "Neue Menüpunkte dürfen standardmäßig zugegriffen werden.", + "Global permissions": "Globale Berechtigungen", + "General permissions": "Allgemeine Berechtigungen", + "Global action permissions": "Globale Aktionsberechtigungen", + "General action permissions": "Allgemeine Aktionsberechtigungen", + "Plugin settings permissions": "Plugin-Einstellungsberechtigungen", + "Allow to desgin pages": "Erlauben, Seiten zu gestalten", + "Allow to manage plugins": "Erlauben, Plugins zu verwalten", + "Allow to configure plugins": "Erlauben, Plugins zu konfigurieren", + "Allows to configure interface": "Erlaubt die Konfiguration der Schnittstelle", + "Allows to install, activate, disable plugins": "Erlaubt das Installieren, Aktivieren und Deaktivieren von Plugins", + "Allows to configure plugins": "Erlaubt die Konfiguration von Plugins", + "Action display name": "Anzeigeame der Aktion", + "Allow": "Erlauben", + "Data scope": "Datenbereich", + "Action on new records": "Aktion für neue Datensätze", + "Action on existing records": "Aktion für bestehende Datensätze", + "All records": "Alle Datensätze", + "Own records": "Eigene Datensätze", + "Permission policy": "Berechtigungsrichtlinie", + "Individual": "Individuell", + "General": "Allgemein", + "Accessible": "Zugänglich", + "Configure permission": "Berechtigung konfigurieren", + "Action permission": "Aktionsberechtigung", + "Field permission": "Feldberechtigung", + "Scope name": "Bereichsname", + "Unsaved changes": "Ungespeicherte Änderungen", + "Are you sure you don't want to save?": "Sind Sie sicher, dass Sie nicht speichern möchten?", + "Dragging": "Ziehen", + "Popup": "Popup", + "Trigger workflow": "Workflow auslösen", + "Request API": "API anfragen", + "Assign field values": "Feldwerte zuweisen", + "Constant value": "Konstanter Wert", + "Dynamic value": "Dynamischer Wert", + "Current user": "Aktueller Benutzer", + "Current role": "Aktuelle Rolle", + "Current record": "Aktueller Datensatz", + "Current collection": "Aktuelle Sammlung", + "Other collections": "Andere Sammlungen", + "Current popup record": "Aktueller Popup-Datensatz", + "Parent popup record": "Übergeordneter Popup-Datensatz", + "Associated records": "Zugehörige Datensätze", + "Parent record": "Übergeordneter Datensatz", + "Current time": "Aktuelle Zeit", + "System variables": "Systemvariablen", + "Date variables": "Datumsvariablen", + "Message popup close method": "Schließmethode für Popup-Nachrichten", + "Automatic close": "Automatisch schließen", + "Manually close": "Manuell schließen", + "After successful update": "Nach erfolgreicher Aktualisierung", + "Save record": "Datensatz speichern", + "Updated successfully": "Erfolgreich aktualisiert", + "After successful save": "Nach erfolgreichem Speichern", + "After clicking the custom button, the following field values will be assigned according to the following form.": "Nach dem Klicken auf die benutzerdefinierte Schaltfläche werden die folgenden Feldwerte gemäß dem folgenden Formular zugewiesen.", + "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "Nach dem Klicken auf die benutzerdefinierte Schaltfläche werden die folgenden Felder des aktuellen Datensatzes gemäß dem folgenden Formular gespeichert.", + "Button background color": "Schaltflächen-Hintergrundfarbe", + "Highlight": "Hervorheben", + "Danger red": "Gefahr-Rot", + "Custom request": "Benutzerdefinierte Anfrage", + "Request settings": "Anfrageeinstellungen", + "Request URL": "Anfrage-URL", + "Request method": "Anfragemethode", + "Request query parameters": "Anfrageparameter", + "Request headers": "Anfrageheader", + "Request body": "Anfragekörper", + "Request success": "Anfrage erfolgreich", + "Invalid JSON format": "Ungültiges JSON-Format", + "After successful request": "Nach erfolgreicher Anfrage", + "Add exportable field": "Exportierbares Feld hinzufügen", + "Audit logs": "Prüfprotokolle", + "Record ID": "Datensatz-ID", + "User": "Benutzer", + "Field": "Feld", + "Select": "Auswählen", + "Select field": "Feld auswählen", + "Field value changes": "Feldwertänderungen", + "One to one (has one)": "Eins zu Eins (hat ein)", + "One to one (belongs to)": "Eins zu Eins (gehört zu)", + "Use the same time zone (GMT) for all users": "Verwenden Sie die gleiche Zeitzone (GMT) für alle Benutzer", + "Province/city/area name": "Provinz/Stadt/Gebietsname", + "Enabled languages": "Aktivierte Sprachen", + "View all plugins": "Alle Plugins anzeigen", + "Print": "Drucken", + "Done": "Fertig", + "Sign up successfully, and automatically jump to the sign in page": "Registrierung erfolgreich, Sie werden automatisch zur Anmeldeseite weitergeleitet", + "File manager": "Dateimanager", + "ACL": "ACL", + "Collection manager": "Sammlungsmanager", + "Plugin manager": "Plugin-Manager", + "Local": "Lokal", + "Built-in": "Eingebaut", + "Marketplace": "Marktplatz", + "Add plugin": "Plugin hinzufügen", + "Plugin source": "Plugin-Quelle", + "Upgrade": "Aktualisieren", + "Plugin dependencies check failed": "Überprüfung der Plugin-Abhängigkeiten fehlgeschlagen", + "More details": "Weitere Details", + "Upload new version": "Neue Version hochladen", + "Version": "Version", + "Npm package": "NPM-Paket", + "Npm package name": "NPM-Paketname", + "Upload plugin": "Plugin hochladen", + "Official plugin": "Offizielles Plugin", + "Add type": "Typ hinzufügen", + "Changelog": "Änderungsprotokoll", + "Dependencies check": "Abhängigkeitsprüfung", + "Update plugin": "Plugin aktualisieren", + "Installing": "Installiere", + "The deletion was successful.": "Das Löschen war erfolgreich.", + "Plugin Zip File": "Plugin-ZIP-Datei", + "Compressed file url": "URL der komprimierten Datei", + "Last updated": "Zuletzt aktualisiert", + "PackageName": "Paketname", + "DisplayName": "Anzeigename", + "Readme": "Readme", + "Dependencies compatibility check": "Kompatibilitätsprüfung der Abhängigkeiten", + "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.": "Die Überprüfung der Plugin-Abhängigkeiten ist fehlgeschlagen. Sie sollten die abhängige Version ändern, um die Versionsanforderungen zu erfüllen.", + "Version range": "Versionsbereich", + "Plugin's version": "Plugin-Version", + "Result": "Ergebnis", + "No CHANGELOG.md file": "Keine CHANGELOG.md-Datei", + "No README.md file": "Keine README.md-Datei", + "Homepage": "Startseite", + "Drag and drop the file here or click to upload, file size should not exceed 30M": "Ziehen Sie die Datei hierher oder klicken Sie zum Hochladen, die Dateigröße sollte 30M nicht überschreiten", + "Dependencies check failed, can't enable.": "Abhängigkeitsprüfung fehlgeschlagen, kann nicht aktiviert werden.", + "Plugin starting...": "Plugin wird gestartet...", + "Plugin stopping...": "Plugin wird gestoppt...", + "Are you sure to delete this plugin?": "Sind Sie sicher, dass Sie dieses Plugin löschen möchten?", + "Are you sure to disable this plugin?": "Sind Sie sicher, dass Sie dieses Plugin deaktivieren möchten?", + "re-download file": "Datei erneut herunterladen", + "Not enabled": "Nicht aktiviert", + "Search plugin": "Plugin suchen", + "Author": "Autor", + "Plugin loading failed. Please check the server logs.": "Plugin-Ladung fehlgeschlagen. Bitte überprüfen Sie die Serverprotokolle.", + "Coming soon...": "Demnächst verfügbar...", + "All plugin settings": "Alle Plugin-Einstellungen", + "Bookmark": "Lesezeichen", + "Manage all settings": "Alle Einstellungen verwalten", + "Create inverse field in the target collection": "Inverses Feld in der Zielsammlung erstellen", + "Inverse field name": "Name des inversen Feldes", + "Inverse field display name": "Anzeigename des inversen Feldes", + "Bulk update": "Massenaktualisierung", + "After successful bulk update": "Nach erfolgreicher Massenaktualisierung", + "Bulk edit": "Massenbearbeitung", + "Data will be updated": "Daten werden aktualisiert", + "Selected": "Ausgewählt", + "All": "Alle", + "Update selected data?": "Ausgewählte Daten aktualisieren?", + "Update all data?": "Alle Daten aktualisieren?", + "Remains the same": "Bleibt gleich", + "Changed to": "Geändert zu", + "Clear": "Löschen", + "Add attach": "Anhang hinzufügen", + "Please select the records to be updated": "Bitte wählen Sie die zu aktualisierenden Datensätze aus", + "Selector": "Selektor", + "Inner": "Innen", + "Search and select collection": "Sammlung suchen und auswählen", + "Please fill in the iframe URL": "Bitte geben Sie die iframe-URL ein", + "Fix block": "Block fixieren", + "Plugin name": "Plugin-Name", + "Plugin tab name": "Plugin-Tab-Name", + "AutoGenId": "Automatisch generiertes ID-Feld", + "CreatedBy": "Erstellt von", + "UpdatedBy": "Aktualisiert von", + "CreatedAt": "Erstellt am", + "UpdatedAt": "Aktualisiert am", + "Column width": "Spaltenbreite", + "Sortable": "Sortierbar", + "Enable link": "Link aktivieren", + "This is likely a NocoBase internals bug. Please open an issue at <1>here": "Dies ist wahrscheinlich ein interner Fehler von NocoBase. Bitte öffnen Sie ein Problem <1>hier", + "Render Failed": "Rendering fehlgeschlagen", + "App error": "App-Fehler", + "Feedback": "Feedback", + "Try again": "Erneut versuchen", + "Download logs": "Protokolle herunterladen", + "Data template": "Datenvorlage", + "Duplicate": "Duplizieren", + "Duplicating": "Dupliziere", + "Duplicate mode": "Duplikationsmodus", + "Quick duplicate": "Schnelles Duplizieren", + "Duplicate and continue": "Duplizieren und fortfahren", + "Please configure the duplicate fields": "Bitte konfigurieren Sie die Duplikatfelder", + "Add": "Hinzufügen", + "Add new mode": "Neuer Hinzufügungsmodus", + "Quick add": "Schnell hinzufügen", + "Modal add": "Modal hinzufügen", + "Save mode": "Speichermodus", + "First or create": "Zuerst oder erstellen", + "Update or create": "Aktualisieren oder erstellen", + "Find by the following fields": "Nach den folgenden Feldern suchen", + "Create": "Erstellen", + "Current form": "Aktuelles Formular", + "Current object": "Aktuelles Objekt", + "Linkage with form fields": "Verknüpfung mit Formularfeldern", + "Allow add new, update and delete actions": "Hinzufügen, Aktualisieren und Löschen erlauben", + "Date display format": "Datumsanzeigeformat", + "Assign data scope for the template": "Datenbereich für die Vorlage zuweisen", + "Table selected records": "Ausgewählte Tabellendatensätze", + "Tag": "Tag", + "Tag color field": "Tag-Farbfeld", + "Sync successfully": "Synchronisierung erfolgreich", + "Sync from form fields": "Von Formularfeldern synchronisieren", + "Select all": "Alle auswählen", + "Restart": "Neustart", + "Restart application": "Anwendung neu starten", + "Cascade Select": "Kaskadierte Auswahl", + "Execute": "Ausführen", + "Please use a valid SELECT or WITH AS statement": "Bitte verwenden Sie eine gültige SELECT- oder WITH AS-Anweisung", + "Please confirm the SQL statement first": "Bitte bestätigen Sie zuerst die SQL-Anweisung", + "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "Automatisches Löschen von Objekten, die von der Sammlung abhängen (wie Ansichten), und wiederum aller Objekte, die von diesen Objekten abhängen", + "Sign in with another account": "Mit einem anderen Konto anmelden", + "Return to the main application": "Zurück zur Hauptanwendung", + "Permission deined": "Berechtigung verweigert", + "loading": "Lädt", + "name is required": "Name ist erforderlich", + "data source": "Datenquelle", + "Data source": "Datenquelle", + "DataSource": "Datenquelle", + "The {{type}} \"{{name}}\" may have been deleted. Please remove this {{blockType}}.": "Der {{type}} \"{{name}}\" wurde möglicherweise gelöscht. Bitte entfernen Sie diesen {{blockType}}.", + "Preset fields": "Voreingestellte Felder", + "Home page": "Startseite", + "Handbook": "Handbuch", + "License": "Lizenz", + "Generic properties": "Allgemeine Eigenschaften", + "Specific properties": "Spezifische Eigenschaften", + "Used for drag and drop sorting scenarios, supporting grouping sorting": "Wird für Drag & Drop-Sortierungsszenarien verwendet und unterstützt Gruppensortierung", + "Grouped sorting": "Gruppierte Sortierung", + "When a field is selected for grouping, it will be grouped first before sorting.": "Wenn ein Feld für die Gruppierung ausgewählt wird, wird es zuerst gruppiert, bevor es sortiert wird.", + "Departments": "Abteilungen", + "Main department": "Hauptabteilung", + "Department name": "Abteilungsname", + "Superior department": "Übergeordnete Abteilung", + "Owners": "Eigentümer", + "Plugin settings": "Plugin-Einstellungen", + "Menu": "Menü", + "Drag and drop sorting field": "Feld für Drag & Drop-Sortierung", + "This variable has been deprecated and can be replaced with \"Current form\"": "Diese Variable ist veraltet und kann durch \"Aktuelles Formular\" ersetzt werden", + "The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string.": "Der Wert dieser Variable wird aus der Abfragezeichenfolge der Seiten-URL abgeleitet. Diese Variable kann nur normal verwendet werden, wenn die Seite eine Abfragezeichenfolge hat.", + "URL search params": "URL-Suchparameter", + "Expand All": "Alle erweitern", + "Search": "Suchen", + "Clear default value": "Standardwert löschen", + "Open in new window": "In neuem Fenster öffnen", + "Sorry, the page you visited does not exist.": "Entschuldigung, die von Ihnen besuchte Seite existiert nicht.", + "is none of": "ist keines von", + "is any of": "ist eines von", + "Plugin dependency version mismatch": "Versionsinkompatibilität der Plugin-Abhängigkeit", + "The current dependency version of the plugin does not match the version of the application and may not work properly. Are you sure you want to continue enabling the plugin?": "Die aktuelle Abhängigkeitsversion des Plugins stimmt nicht mit der Version der Anwendung überein und funktioniert möglicherweise nicht ordnungsgemäß. Sind Sie sicher, dass Sie das Plugin weiterhin aktivieren möchten?", + "Allow multiple selection": "Mehrfachauswahl erlauben", + "Parent object": "Übergeordnetes Objekt", + "Skip getting the total number of table records during paging to speed up loading. It is recommended to enable this option for data tables with a large amount of data": "Überspringt das Abrufen der Gesamtanzahl der Tabellendatensätze während der Paginierung, um das Laden zu beschleunigen. Es wird empfohlen, diese Option für Datentabellen mit einer großen Datenmenge zu aktivieren", + "Enable secondary confirmation": "Sekundäre Bestätigung aktivieren", + "Notification": "Benachrichtigung", + "Ellipsis overflow content": "Auslassungszeichen für Überlaufinhalt", + "Hide column": "Spalte ausblenden", + "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "Im Konfigurationsmodus wird die gesamte Spalte transparent. Im Nicht-Konfigurationsmodus wird die gesamte Spalte ausgeblendet. Auch wenn die gesamte Spalte ausgeblendet ist, werden ihre konfigurierten Standardwerte und andere Einstellungen weiterhin wirksam.", + "Unauthenticated. Please sign in to continue.": "Nicht authentifiziert. Bitte melden Sie sich an, um fortzufahren.", + "User not found. Please sign in again to continue.": "Benutzer nicht gefunden. Bitte melden Sie sich erneut an, um fortzufahren.", + "Your session has expired. Please sign in again.": "Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.", + "User password changed, please signin again.": "Benutzerpasswort geändert, bitte melden Sie sich erneut an.", + "Desktop routes": "Desktop-Routen", + "Route permissions": "Routenberechtigungen", + "New routes are allowed to be accessed by default": "Neue Routen dürfen standardmäßig zugegriffen werden", + "Route name": "Routenname", + "Mobile routes": "Mobile Routen", + "Show in menu": "Im Menü anzeigen", + "Hide in menu": "Im Menü ausblenden", + "Path": "Pfad", + "Type": "Typ", + "Access": "Zugriff", + "Routes": "Routen", + "Add child route": "Unterroute hinzufügen", + "Delete routes": "Routen löschen", + "Delete route": "Route löschen", + "Are you sure you want to hide these routes in menu?": "Sind Sie sicher, dass Sie diese Routen im Menü ausblenden möchten?", + "Are you sure you want to show these routes in menu?": "Sind Sie sicher, dass Sie diese Routen im Menü anzeigen möchten?", + "Are you sure you want to hide this menu?": "Sind Sie sicher, dass Sie dieses Menü ausblenden möchten?", + "After hiding, this menu will no longer appear in the menu bar. To show it again, you need to go to the route management page to configure it.": "Nach dem Ausblenden wird dieses Menü nicht mehr in der Menüleiste angezeigt. Um es wieder anzuzeigen, müssen Sie zur Routenverwaltungsseite gehen, um es zu konfigurieren.", + "If selected, the page will display Tab pages.": "Wenn ausgewählt, zeigt die Seite Tab-Seiten an.", + "If selected, the route will be displayed in the menu.": "Wenn ausgewählt, wird die Route im Menü angezeigt.", + "Are you sure you want to hide this tab?": "Sind Sie sicher, dass Sie diesen Tab ausblenden möchten?", + "After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it.": "Nach dem Ausblenden wird dieser Tab nicht mehr in der Tableiste angezeigt. Um ihn wieder anzuzeigen, müssen Sie zur Routenverwaltungsseite gehen, um ihn einzustellen." +} diff --git a/packages/plugins/@nocobase/plugin-acl/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-acl/src/locale/de-DE.json new file mode 100644 index 0000000000..e509e67a56 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-acl/src/locale/de-DE.json @@ -0,0 +1,11 @@ +{ + "The current user has no roles. Please try another account.": "Der aktuelle Benutzer hat keine Rollen. Bitte versuchen Sie es mit einem anderen Konto.", + "The user role does not exist. Please try signing in again": "Die Benutzerrolle existiert nicht. Bitte versuchen Sie, sich erneut anzumelden", + "New role": "Neue Rolle", + "Permissions": "Berechtigungen", + "Roles & Permissions": "Rollen und Berechtigungen", + "General": "Allgemein", + "Desktop menu": "Desktop-Menü", + "Plugin settings": "Plugin-Einstellungen", + "Data sources": "Datenquellen" +} diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/de-DE.json new file mode 100644 index 0000000000..0097b04528 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/de-DE.json @@ -0,0 +1,5 @@ +{ + "Bulk edit": "Massenbearbeitung", + "Data will be updated": "Daten werden aktualisiert", + "Entire collection": "Gesamte Sammlung" +} diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/de-DE.json new file mode 100644 index 0000000000..8f7979c1bc --- /dev/null +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/de-DE.json @@ -0,0 +1,6 @@ +{ + "Bulk update": "Massenaktualisierung", + "After successful bulk update": "Nach erfolgreicher Massenaktualisierung", + "Please select the records to be updated": "Bitte wählen Sie die zu aktualisierenden Datensätze aus", + "Entire collection": "Gesamte Sammlung" +} diff --git a/packages/plugins/@nocobase/plugin-action-export/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-action-export/src/locale/de-DE.json new file mode 100644 index 0000000000..c2a89b97c2 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-action-export/src/locale/de-DE.json @@ -0,0 +1,7 @@ +{ + "Export warning": "Sie können bis zu {{limit}} Datenzeilen auf einmal exportieren, alles darüber hinaus wird ignoriert.", + "Start export": "Export starten", + "another export action is running, please try again later.": "Ein anderer Exportvorgang läuft, bitte versuchen Sie es später erneut.", + "True": "Wahr", + "False": "Falsch" +} diff --git a/packages/plugins/@nocobase/plugin-action-import/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-action-import/src/locale/de-DE.json new file mode 100644 index 0000000000..59244c694c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-action-import/src/locale/de-DE.json @@ -0,0 +1,51 @@ +{ + "Only one file is allowed to be uploaded": "Es darf nur eine Datei hochgeladen werden", + "File size cannot exceed 10M": "Die Dateigröße darf 10 MB nicht überschreiten", + "Please upload the file of Excel": "Bitte laden Sie die Excel-Datei hoch", + "Import Data": "Daten importieren", + "Import": "Importieren", + "Start import": "Import starten", + "Import explain": "Anleitung", + "Download template": "Vorlage herunterladen", + "Step 1: Download template": "Schritt 1: Vorlage herunterladen", + "Step 2: Upload Excel": "Schritt 2: Excel hochladen", + "Step 3: Import options": "Schritt 3: Importoptionen", + "Download tips": "- Laden Sie die Vorlage herunter und füllen Sie die Daten gemäß dem Format aus \r\n - Es wird nur das erste Arbeitsblatt importiert \r\n - Ändern Sie nicht die Kopfzeile der Vorlage, um einen Importfehler zu vermeiden", + "Import warnings": "Sie können bis zu {{limit}} Datenzeilen auf einmal importieren, alles darüber hinaus wird ignoriert.", + "Upload placeholder": "Ziehen Sie die Datei hierher oder klicken Sie zum Hochladen, die Dateigröße sollte 80 MB nicht überschreiten", + "Excel data importing": "Excel-Datenimport läuft, bitte schließen Sie das Fenster nicht", + "{{successCount}} records have been successfully imported": "{{successCount}} Datensätze wurden erfolgreich importiert", + "To download the failure data": "Um die fehlgeschlagenen Daten herunterzuladen", + "Add importable field": "Importierbares Feld hinzufügen", + "Done": "Fertig", + "Yes": "Ja", + "No": "Nein", + "Field {{fieldName}} does not exist": "Feld {{fieldName}} existiert nicht", + "can not find value": "Wert kann nicht gefunden werden", + "password is empty": "Passwort ist leer", + "Incorrect time format": "Falsches Zeitformat", + "Incorrect date format": "Falsches Datumsformat", + "Incorrect email format": "Falsches E-Mail-Format", + "Illegal percentage format": "Ungültiges Prozentformat", + "Imported template does not match, please download again.": "Importierte Vorlage stimmt nicht überein, bitte erneut herunterladen.", + "another import action is running, please try again later.": "Ein anderer Importvorgang läuft, bitte versuchen Sie es später erneut.", + "Please select": "Bitte auswählen", + "Custom column title": "Benutzerdefinierter Spaltentitel", + "Field description": "Feldbeschreibung", + "Field description placeholder": "Feldbeschreibung eingeben", + "Columns configuration is empty": "Spaltenkonfiguration ist leer", + "Field not found: {{field}}": "Feld nicht gefunden: {{field}}", + "Headers not found. Expected headers: {{headers}}": "Kopfzeilen nicht gefunden. Erwartete Kopfzeilen: {{headers}}", + "Header mismatch at column {{column}}: expected \"{{expected}}\", but got \"{{actual}}\"": "Kopfzeile stimmt nicht überein in Spalte {{column}}: erwartet \"{{expected}}\", aber erhalten \"{{actual}}\"", + "No data to import": "Keine Daten zum Importieren", + "Failed to import row {{row}}, {{message}}, row data: {{data}}": "Fehler beim Importieren von Zeile {{row}}, {{message}}, Zeilendaten: {{data}}", + "import-error": "Fehler beim Importieren von Zeile {{rowIndex}}, Zeilendaten: {{rowData}}, Ursache: {{causeMessage}}", + "Import completed": "Import abgeschlossen: {{success}} Datensätze importiert, {{updated}} Datensätze aktualisiert, {{skipped}} Datensätze übersprungen, insgesamt {{total}} Datensätze", + "Successfully imported": "Erfolgreich importiert", + "Updated records": "Aktualisierte Datensätze", + "Skipped records": "Übersprungene Datensätze", + "Total records": "Gesamtzahl der Datensätze", + "View result": "Ergebnis anzeigen", + "ImportResult": "{{success}} importiert, {{updated}} aktualisiert, {{skipped}} übersprungen, insgesamt {{total}}", + "Task result": "Aufgabenergebnis" +} diff --git a/packages/plugins/@nocobase/plugin-ai/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-ai/src/locale/de-DE.json new file mode 100644 index 0000000000..658de8eb6d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-ai/src/locale/de-DE.json @@ -0,0 +1,25 @@ +{ + "AI integration": "KI-Integration", + "LLM services": "LLM-Dienste", + "LLM service": "LLM-Dienst", + "Model": "Modell", + "Messages": "Nachrichten", + "Structured output": "Strukturierte Ausgabe", + "Message": "Nachricht", + "Role": "Rolle", + "UID": "UID", + "Add content": "Inhalt hinzufügen", + "Add prompt": "Prompt hinzufügen", + "Provider": "Anbieter", + "Text": "Text", + "Image": "Bild", + "Timout (ms)": "Zeitüberschreitung (ms)", + "Max retries": "Maximale Wiederholungen", + "Frequency penalty description": "Zahl zwischen -2,0 und 2,0. Positive Werte bestrafen neue Tokens basierend auf ihrer vorhandenen Häufigkeit im bisherigen Text und verringern so die Wahrscheinlichkeit, dass das Modell dieselbe Zeile wörtlich wiederholt.", + "Max completion tokens description": "Eine Obergrenze für die Anzahl der Tokens, die für eine Vervollständigung generiert werden können, einschließlich sichtbarer Ausgabe-Tokens und Reasoning-Tokens.", + "Presence penalty description": "Zahl zwischen -2,0 und 2,0. Positive Werte bestrafen neue Tokens basierend darauf, ob sie bisher im Text vorkommen, und erhöhen die Wahrscheinlichkeit, dass das Modell über neue Themen spricht.", + "Response format description": "Wichtig: Bei Verwendung des JSON-Modus müssen Sie das Modell auch selbst über eine System- oder Benutzernachricht anweisen, JSON zu erzeugen.", + "Temperature description": "Welche Sampling-Temperatur verwendet werden soll, zwischen 0 und 2. Höhere Werte wie 0,8 machen die Ausgabe zufälliger, während niedrigere Werte wie 0,2 sie fokussierter und deterministischer machen.", + "Top P description": "Eine Alternative zum Sampling mit Temperatur, genannt Nucleus-Sampling, bei dem das Modell die Ergebnisse der Tokens mit der Wahrscheinlichkeitsmasse top_p berücksichtigt. 0,1 bedeutet also, dass nur die Tokens berücksichtigt werden, die die obersten 10% der Wahrscheinlichkeitsmasse ausmachen.", + "Get models list failed, you can enter a model name manually.": "Abrufen der Modellliste fehlgeschlagen, Sie können einen Modellnamen manuell eingeben." +} diff --git a/packages/plugins/@nocobase/plugin-api-doc/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-api-doc/src/locale/de-DE.json new file mode 100644 index 0000000000..a8fd74e974 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-api-doc/src/locale/de-DE.json @@ -0,0 +1,5 @@ +{ + "API documentation": "API-Dokumentation", + "Documentation": "Dokumentation", + "Select a definition": "Wählen Sie eine Definition aus" +} diff --git a/packages/plugins/@nocobase/plugin-api-keys/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-api-keys/src/locale/de-DE.json new file mode 100644 index 0000000000..7349d6b2ff --- /dev/null +++ b/packages/plugins/@nocobase/plugin-api-keys/src/locale/de-DE.json @@ -0,0 +1,21 @@ +{ + "API keys": "API-Schlüssel", + "API key created successfully": "API-Schlüssel erfolgreich erstellt", + "Make sure to copy your personal access key now as you will not be able to see this again.": "Stellen Sie sicher, dass Sie Ihren persönlichen Zugriffsschlüssel jetzt kopieren, da Sie ihn später nicht mehr sehen können.", + "Key name": "Schlüsselname", + "Expiration": "Ablauf", + "Delete API key": "API-Schlüssel löschen", + "Role": "Rolle", + "Keys manager": "Schlüsselverwaltung", + "Created at": "Erstellt am", + "Add API key": "API-Schlüssel hinzufügen", + "Never": "Nie", + "Custom": "Benutzerdefiniert", + "Never expires": "Läuft nie ab", + "1 Day": "1 Tag", + "7 Days": "7 Tage", + "30 Days": "30 Tage", + "90 Days": "90 Tage", + "Role not found": "Rolle nicht gefunden", + "Allow only your own roles to be selected": "Erlauben Sie nur die Auswahl Ihrer eigenen Rollen" +} diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/de-DE.json new file mode 100644 index 0000000000..209fc9b3e5 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/de-DE.json @@ -0,0 +1,45 @@ +{ + "Export": "Exportieren", + "Import": "Importieren", + "Data": "Daten", + "Task": "Aufgabe", + "Status": "Status", + "Actions": "Aktionen", + "Created at": "Erstellt am", + "Type": "Typ", + "Waiting": "Wartend", + "Processing": "In Bearbeitung", + "Completed": "Abgeschlossen", + "Failed": "Fehlgeschlagen", + "Cancelled": "Abgebrochen", + "Cancel": "Abbrechen", + "Cancelling": "Wird abgebrochen", + "Download": "Herunterladen", + "Error details": "Fehlerdetails", + "Confirm cancel": "Abbruch bestätigen", + "Confirm cancel description": "Sind Sie sicher, dass Sie diese Aufgabe abbrechen möchten?", + "Confirm": "Bestätigen", + "Task cancelled": "Aufgabe abgebrochen", + "Task completed": "Aufgabe abgeschlossen", + "Task failed": "Aufgabe fehlgeschlagen", + "Error Details": "Fehlerdetails", + "Close": "Schließen", + "Error code": "Fehlercode", + "Unknown error": "Unbekannter Fehler", + "OK": "OK", + "Import result": "Importergebnis", + "Import completed": "Import abgeschlossen: {{success}} Datensätze importiert, {{updated}} Datensätze aktualisiert, {{skipped}} Datensätze übersprungen, insgesamt {{total}} Datensätze", + "Import summary": "{{success}}/{{total}} Datensätze importiert", + "Import details": "{{success}} erfolgreich importiert, {{updated}} aktualisiert, {{skipped}} übersprungen, insgesamt {{total}}", + "Imported": "{{count}}/{{total}} importiert", + "Successfully imported": "Erfolgreich importiert", + "Updated records": "Aktualisierte Datensätze", + "Skipped records": "Übersprungene Datensätze", + "Total records": "Gesamtzahl der Datensätze", + "View result": "Ergebnis anzeigen", + "ImportResult": "{{success}} importiert, {{updated}} aktualisiert, {{skipped}} übersprungen, insgesamt {{total}}", + "Task result": "Aufgabenergebnis", + "Export {collection} attachments": "Export von {collection} Anhängen", + "Export {collection} data": "Export von {collection} Daten", + "Import {collection} data": "Import von {collection} Daten" +} diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/de-DE.json new file mode 100644 index 0000000000..2e2c812dbd --- /dev/null +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/de-DE.json @@ -0,0 +1,3 @@ +{ + "Details of changes": "Details der Änderungen" +} diff --git a/packages/plugins/@nocobase/plugin-auth-sms/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-auth-sms/src/locale/de-DE.json new file mode 100644 index 0000000000..a51bafaec8 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-auth-sms/src/locale/de-DE.json @@ -0,0 +1,6 @@ +{ + "Sign in via SMS": "Anmeldung per SMS", + "User will be registered automatically if not exists.": "Benutzer wird automatisch registriert, wenn er nicht existiert.", + "Sign up automatically when the user does not exist": "Automatische Registrierung, wenn der Benutzer nicht existiert", + "SMS": "SMS" +} diff --git a/packages/plugins/@nocobase/plugin-auth/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-auth/src/locale/de-DE.json new file mode 100644 index 0000000000..12593a10c9 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-auth/src/locale/de-DE.json @@ -0,0 +1,50 @@ +{ + "Auth Type": "Authentifizierungstyp", + "Authenticators": "Authentifikatoren", + "Authentication": "Authentifizierung", + "Sign in via email": "Mit E-Mail anmelden", + "Sign in via password": "Mit Passwort anmelden", + "Not allowed to sign up": "Registrierung nicht erlaubt", + "Allow to sign up": "Registrierung erlauben", + "The username or email is incorrect, please re-enter": "Der Benutzername oder die E-Mail ist falsch, bitte erneut eingeben", + "The password is incorrect, please re-enter": "Das Passwort ist falsch, bitte erneut eingeben", + "Not a valid cellphone number, please re-enter": "Keine gültige Handynummer, bitte erneut eingeben", + "The phone number has been registered, please login directly": "Die Telefonnummer wurde bereits registriert, bitte direkt anmelden", + "The phone number is not registered, please register first": "Die Telefonnummer ist nicht registriert, bitte zuerst registrieren", + "Please keep and enable at least one authenticator": "Bitte mindestens einen Authentifikator beibehalten und aktivieren", + "Allow to sign in with": "Anmeldung erlauben mit", + "Please enter a valid username": "Bitte geben Sie einen gültigen Benutzernamen ein", + "Please enter a valid email": "Bitte geben Sie eine gültige E-Mail-Adresse ein", + "Please enter your username or email": "Bitte geben Sie Ihren Benutzernamen oder Ihre E-Mail-Adresse ein", + "Please enter a password": "Bitte geben Sie ein Passwort ein", + "Username/Email": "Benutzername/E-Mail", + "Auth UID": "Auth-UID", + "The authentication allows users to sign in via username or email.": "Die Authentifizierung ermöglicht Benutzern die Anmeldung über Benutzernamen oder E-Mail.", + "No authentication methods available.": "Keine Authentifizierungsmethoden verfügbar.", + "The password is inconsistent, please re-enter": "Das Passwort ist inkonsistent, bitte erneut eingeben", + "Sign-in": "Anmelden", + "Password": "Passwort", + "The username/email or password is incorrect, please re-enter": "Der Benutzername/die E-Mail oder das Passwort ist falsch, bitte erneut eingeben", + "Show": "Anzeigen", + "Sign up settings": "Registrierungseinstellungen", + "Sign up form": "Registrierungsformular", + "At least one of the username or email fields is required": "Mindestens eines der Felder Benutzername oder E-Mail ist erforderlich", + "Password is not allowed to be changed": "Das Passwort darf nicht geändert werden", + "Token policy": "Token-Richtlinie", + "Token validity period": "Token-Gültigkeitsdauer", + "Session validity period": "Sitzungsgültigkeitsdauer", + "Expired token refresh limit": "Limit für die Aktualisierung abgelaufener Token", + "Token validity period must be less than session validity period!": "Die Token-Gültigkeitsdauer muss kürzer sein als die Sitzungsgültigkeitsdauer!", + "Seconds": "Sekunden", + "Minutes": "Minuten", + "Hours": "Stunden", + "Days": "Tage", + "Saved successfully!": "Erfolgreich gespeichert!", + "The maximum valid time for each user login. During the session validity, the Token will be automatically updated. After the timeout, the user is required to log in again.": "Die maximale Gültigkeitsdauer für jede Benutzeranmeldung. Während der Sitzungsgültigkeit wird das Token automatisch aktualisiert. Nach dem Timeout muss sich der Benutzer erneut anmelden.", + "The validity period of each issued API Token. After the Token expires, if it is within the session validity period and has not exceeded the refresh limit, the server will automatically issue a new Token to maintain the user session, otherwise the user is required to log in again. (Each Token can only be refreshed once)": "Die Gültigkeitsdauer jedes ausgestellten API-Tokens. Nachdem das Token abgelaufen ist, wird der Server automatisch ein neues Token ausstellen, um die Benutzersitzung aufrechtzuerhalten, wenn es innerhalb der Sitzungsgültigkeitsdauer liegt und das Aktualisierungslimit nicht überschritten hat, andernfalls muss sich der Benutzer erneut anmelden. (Jedes Token kann nur einmal aktualisiert werden)", + "The maximum time limit allowed for refreshing a Token after it expires. After this time limit, the token cannot be automatically renewed, and the user needs to log in again.": "Die maximal zulässige Zeitbegrenzung für die Aktualisierung eines Tokens nach dessen Ablauf. Nach dieser Zeitbegrenzung kann das Token nicht automatisch erneuert werden, und der Benutzer muss sich erneut anmelden.", + "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "Im Konfigurationsmodus wird die gesamte Spalte transparent. Im Nicht-Konfigurationsmodus wird die gesamte Spalte ausgeblendet. Auch wenn die gesamte Spalte ausgeblendet ist, bleiben ihre konfigurierten Standardwerte und andere Einstellungen weiterhin wirksam.", + "Your session has expired. Please sign in again.": "Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.", + "Unauthenticated. Please sign in to continue.": "Nicht authentifiziert. Bitte melden Sie sich an, um fortzufahren.", + "User not found. Please sign in again to continue.": "Benutzer nicht gefunden. Bitte melden Sie sich erneut an, um fortzufahren." +} diff --git a/packages/plugins/@nocobase/plugin-backup-restore/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-backup-restore/src/locale/de-DE.json new file mode 100644 index 0000000000..a9c4502e4a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-backup-restore/src/locale/de-DE.json @@ -0,0 +1,50 @@ +{ + "Backup file": "Sicherungsdatei", + "Select Import data": "Bitte wählen Sie die zu importierenden Daten", + "Select Import Plugins": "Bitte wählen Sie die zu importierenden Plugins", + "Select User Collections": "Bitte wählen Sie Benutzersammlungen", + "Basic Data": "Basisdaten", + "Optional Data": "Optionale Daten", + "User Data": "Benutzerdaten", + "System metadata": "System-Metadaten", + "System config": "Systemkonfiguration", + "Business data": "Geschäftsdaten", + "Backup & Restore": "Sicherung & Wiederherstellung", + "Backup": "Sicherung", + "Restore": "Wiederherstellung", + "Configuration": "Konfiguration", + "Select the data to be backed up": "Wählen Sie die zu sichernden Daten aus", + "Select the data to be restored": "Wählen Sie die wiederherzustellenden Daten aus", + "Click or drag file to this area to upload": "Klicken oder ziehen Sie die Datei in diesen Bereich, um sie hochzuladen", + "Learn more": "Mehr erfahren", + "Start backup": "Sicherung starten", + "Start restore": "Wiederherstellung starten", + "Backed up successfully": "Erfolgreich gesichert", + "Plugin": "Plugin", + "file uploaded successfully": "Datei erfolgreich hochgeladen", + "file upload failed": "Datei-Upload fehlgeschlagen", + "Download": "Herunterladen", + "Restore backup from local": "Sicherung von lokal wiederherstellen", + "Backup instructions": "Sicherungsanweisungen", + "File size": "Dateigröße", + "New backup": "Neue Sicherung", + "Origin": "Ursprung", + "Backing up": "Sicherung läuft", + "Refresh": "Aktualisieren", + "Delete": "Löschen", + "Deleted successfully": "Erfolgreich gelöscht", + "required.title": "Erforderliche Daten", + "user.title": "Benutzerdaten", + "log.title": "Protokolldaten", + "custom.title": "Benutzerdefinierte Sammlungsdaten", + "skipped.title": "Übersprungene Daten", + "unknown.title": "Unbekannt", + "third-party.title": "Informationen zu Drittanbieterdiensten", + "required.description": "Erforderliche Daten", + "user.description": "Benutzerdaten", + "log.description": "Protokolldaten", + "custom.description": "Benutzerdefinierte Sammlungsdaten", + "skipped.description": "Übersprungene Daten", + "unknown.description": "Daten ohne konfigurierte Dump-Regeln", + "third-party.description": "Informationen zu Drittanbieterdiensten" +} diff --git a/packages/plugins/@nocobase/plugin-block-workbench/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-block-workbench/src/locale/de-DE.json new file mode 100644 index 0000000000..e599b9db7f --- /dev/null +++ b/packages/plugins/@nocobase/plugin-block-workbench/src/locale/de-DE.json @@ -0,0 +1,18 @@ +{ + "Workbench": "Arbeitsbereich", + "Action panel": "Aktionspanel", + "Scan QR code": "QR-Code scannen", + "Album": "Album", + "No camera device detected": "Keine Kamera erkannt", + "You have not granted permission to use the camera": "Sie haben keine Berechtigung zur Nutzung der Kamera erteilt", + "Unknown error": "Unbekannter Fehler", + "The image size is too large. Please compress it to below 1MB before uploading": "Die Bildgröße ist zu groß. Bitte komprimieren Sie es auf unter 1MB vor dem Hochladen.", + "QR code recognition failed, please scan again": "QR-Code-Erkennung fehlgeschlagen, bitte erneut scannen.", + "Layout": "Layout", + "Grid": "Raster", + "List": "Liste", + "Add popup": "Popup hinzufügen", + "Add custom request": "Benutzerdefinierte Anfrage hinzufügen", + "At least 1, up to 6": "Mindestens 1, maximal 6", + "Items per row": "Elemente pro Zeile" +} diff --git a/packages/plugins/@nocobase/plugin-calendar/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-calendar/src/locale/de-DE.json new file mode 100644 index 0000000000..b5364d62d2 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-calendar/src/locale/de-DE.json @@ -0,0 +1,54 @@ +{ + "Configure calendar": "Kalender konfigurieren", + "Title field": "Titelfeld", + "Custom title": "Benutzerdefinierter Titel", + "Show lunar": "Mondkalender anzeigen", + "Start date field": "Startdatumsfeld", + "End date field": "Enddatumsfeld", + "Work week": "Arbeitswoche", + "Today": "Heute", + "Day": "Tag", + "Agenda": "Agenda", + "Date": "Datum", + "Time": "Zeit", + "Event": "Ereignis", + "None": "Keine", + "Calendar": "Kalender", + "Delete events": "Ereignisse löschen", + "This event": "Dieses Ereignis", + "This and following events": "Dieses und folgende Ereignisse", + "All events": "Alle Ereignisse", + "Delete this event?": "Dieses Ereignis löschen?", + "Delete Event": "Ereignis löschen", + "Calendar collection": "Kalendersammlung", + "Create calendar block": "Kalenderblock erstellen", + "Filter": "Filter", + "Configure actions": "Aktionen konfigurieren", + "Enable actions": "Aktionen aktivieren", + "Turn pages": "Seiten umblättern", + "Select view": "Ansicht auswählen", + "Add new": "Neu hinzufügen", + "View record": "Datensatz anzeigen", + "Details": "Details", + "Customize": "Anpassen", + "Popup": "Popup", + "Updated successfully": "Erfolgreich aktualisiert", + "Custom request": "Benutzerdefinierte Anfrage", + "Edit": "Bearbeiten", + "Delete": "Löschen", + "Print": "Drucken", + "Daily": "Täglich", + "Weekly": "Wöchentlich", + "Monthly": "Monatlich", + "Yearly": "Jährlich", + "Repeats": "Wiederholungen", + "Title": "Titel", + "Month": "Monat", + "Week": "Woche", + "{{count}} more items": "{{count}} weitere Einträge", + "Color field": "Farbfeld", + "Not selected": "Nicht ausgewählt", + "Default view": "Standardansicht", + "Event open mode": "Ereignisöffnungsmodus", + "Update record": "Datensatz aktualisieren" +} diff --git a/packages/plugins/@nocobase/plugin-charts/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-charts/src/locale/de-DE.json new file mode 100644 index 0000000000..302cb7e034 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-charts/src/locale/de-DE.json @@ -0,0 +1,74 @@ +{ + "Edit": "Bearbeiten", + "Delete": "Löschen", + "Cancel": "Abbrechen", + "Submit": "Absenden", + "Actions": "Aktionen", + "Title": "Titel", + "Enable": "Aktivieren", + "SAML manager": "SAML-Manager", + "SAML Providers": "SAML-Anbieter", + "Redirect url": "Weiterleitungs-URL", + "SP entity id": "SP-Entitäts-ID", + "Add provider": "Hinzufügen", + "Edit provider": "Bearbeiten", + "Client id": "Client-ID", + "Entity id or issuer": "Entitäts-ID oder Aussteller", + "Login Url": "Login-URL", + "Public cert": "Öffentliches Zertifikat", + "Delete provider": "Löschen", + "Are you sure you want to delete it?": "Sind Sie sicher, dass Sie es löschen möchten?", + "Sign in button name, which will be displayed on the sign in page": "Name der Anmeldeschaltfläche, der auf der Anmeldeseite angezeigt wird", + "Chart": "Diagramm", + "Charts": "Diagramme", + "Queries": "Abfragen", + "Select chart query": "Diagrammabfrage auswählen", + "Select query data": "Abfragedaten auswählen", + "Type": "Typ", + "Chart type": "Diagrammtyp", + "Chart title": "Diagrammtitel", + "Basic charts": "Grundlegende Diagramme", + "More charts": "Weitere Diagramme", + "Chart config": "Diagrammkonfiguration", + "Add query": "Abfrage hinzufügen", + "Edit query": "Abfrage bearbeiten", + "Invalid JSON format,must be an object array.": "Ungültiges JSON-Format, muss ein Array von Objekten sein.", + "Area": "Flächendiagramm", + "Bar": "Balkendiagramm", + "Column": "Säulendiagramm", + "Funnel": "Trichterdiagramm", + "Line": "Liniendiagramm", + "Pie": "Kreisdiagramm", + "Radar": "Radardiagramm", + "Scatter": "Streudiagramm", + "Edit chart block": "Diagrammblock bearbeiten", + "Chart preview": "Diagrammvorschau", + "Delete queries": "Abfragen löschen", + "Delete query": "Abfrage löschen", + "Add chart query": "Diagrammabfrage hinzufügen", + "Add SQL query": "SQL-Abfrage hinzufügen", + "Add JSON query": "JSON-Abfrage hinzufügen", + "Data preview": "Datenvorschau", + "Category axis / Dimension": "Kategorienachse / Dimension", + "Value axis / Metrics": "Werteachse / Metriken", + "JSON config": "JSON-Konfiguration", + "Json config references": "JSON-Konfigurationsreferenzen", + "Create chart block": "Diagrammblock erstellen", + "Invalid JSON format": "Ungültiges JSON-Format", + "Json config references: ": "JSON-Konfigurationsreferenzen: ", + "Sector Angle / Metric": "Sektorwinkel / Metrik", + "Sector label / Dimensional": "Sektorbeschriftung / Dimensional", + "Color legend / Dimensional": "Farblegende / Dimensional", + "Funnel Layer Width/Metrics": "Trichterebenenbreite / Metriken", + "Branch Tags/Dimensions": "Zweigbeschriftungen / Dimensionen", + "Branch Length/Metrics": "Zweiglänge / Metriken", + "Please check the chart config": "Bitte überprüfen Sie die Diagrammkonfiguration", + "1 「time」or 「Ordered Noun」 field,1 「Numerical」 field,1 「Unordered Noun」 field (optional)": "1 「Zeit」- oder 「Geordnetes Substantiv」-Feld, 1 「Numerisches」-Feld, 1 「Ungeordnetes Substantiv」-Feld (optional)", + "1 「time」 or 「ordered noun」 field, 1 「value」 field, 0~ 1 「unordered noun」": "1 「Zeit」- oder 「geordnetes Substantiv」-Feld, 1 「Wert」-Feld, 0~1 「ungeordnetes Substantiv」", + "1 「time」 or 「ordered noun」 field, 1 「value」 field, 0 to 1 「unordered noun」": "1 「Zeit」- oder 「geordnetes Substantiv」-Feld, 1 「Wert」-Feld, 0 bis 1 「ungeordnetes Substantiv」", + "1 「Unordered Noun」 field, 1 「Numeric」 field": "1 「Ungeordnetes Substantiv」-Feld, 1 「Numerisches」-Feld", + "1 「Time」 or 「Order Noun」 field, 1 「Value」 field": "1 「Zeit」- oder 「Geordnetes Substantiv」-Feld, 1 「Wert」-Feld", + "1~ 2 「Unordered Noun」 fields, 1 「Numeric」 field": "1~2 「Ungeordnete Substantiv」-Felder, 1 「Numerisches」-Feld", + "1 「Numeric」 field, 0~ 1 「Unordered Noun」 field": "1 「Numerisches」-Feld, 0~1 「Ungeordnetes Substantiv」-Feld", + "Chart (Old)": "Diagramm (Alt)" +} diff --git a/packages/plugins/@nocobase/plugin-data-source-main/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-data-source-main/src/locale/de-DE.json new file mode 100644 index 0000000000..5755bb6fbc --- /dev/null +++ b/packages/plugins/@nocobase/plugin-data-source-main/src/locale/de-DE.json @@ -0,0 +1,4 @@ +{ + "field-name-exists": "Feldname \"{{name}}\" existiert bereits in der Sammlung \"{{collectionName}}\"", + "field-is-depended-on-by-other": "Feld \"{{fieldName}}\" in \"{{fieldCollectionName}}\" kann nicht gelöscht werden, es wird von Feld \"{{dependedFieldName}}\" in \"{{dependedFieldCollectionName}}\" als \"{{dependedFieldAs}}\" verwendet" +} diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-data-source-manager/src/locale/de-DE.json new file mode 100644 index 0000000000..b794ab66a3 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-data-source-manager/src/locale/de-DE.json @@ -0,0 +1,40 @@ +{ + "Data source name": "Datenquellname", + "Data source display name": "Anzeigename der Datenquelle", + "Host": "Host", + "Port": "Port", + "Database": "Datenbank", + "Data source manager": "Datenquellenverwaltung", + "Data sources": "Datenquellen", + "No external data source plugin installed": "Kein externes Datenquellen-Plugin installiert", + "View documentation": "Dokumentation anzeigen", + "Test Connection": "Verbindung testen", + "Connection successful": "Verbindung erfolgreich", + "Display name": "Anzeigename", + "Username": "Benutzername", + "Password": "Passwort", + "Type": "Typ", + "Description": "Beschreibung", + "Storage": "Speicher", + "Collections": "Sammlungen", + "Permissions": "Berechtigungen", + "Allow adding and modifying collection": "Hinzufügen und Ändern von Sammlungen erlauben", + "Unknown field type": "Unbekannter Feldtyp", + "The following field types are not compatible and do not support output and display": "Die folgenden Feldtypen sind nicht kompatibel und unterstützen keine Ausgabe und Anzeige", + "Field database type": "Felddatenbanktyp", + "Field interface": "Feldschnittstelle", + "Status": "Status", + "Loading": "Wird geladen", + "Failed": "Fehlgeschlagen", + "Loaded": "Geladen", + "Reloading": "Wird neu geladen", + "Data source synchronization in progress": "Datenquellensynchronisierung läuft", + "Data source synchronization successful": "Datenquellensynchronisierung erfolgreich", + "Filter target key": "Zielschlüssel filtern", + "Select field": "Feld auswählen", + "OK": "OK", + "Please select a field.": "Bitte wählen Sie ein Feld aus.", + "Are you sure you want to set the \"{{title}}\" field as a record unique key? This setting cannot be changed after it's been set.": "Sind Sie sicher, dass Sie das Feld \"{{title}}\" als eindeutigen Datensatzschlüssel festlegen möchten? Diese Einstellung kann nach dem Festlegen nicht mehr geändert werden.", + "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.": "Wenn eine Sammlung keinen Primärschlüssel hat, müssen Sie einen eindeutigen Datensatzschlüssel konfigurieren, um Zeilendatensätze innerhalb eines Blocks zu lokalisieren. Wenn Sie dies nicht konfigurieren, wird die Erstellung von Datenblöcken für die Sammlung verhindert.", + "Filter data based on the specific field, with the requirement that the field value must be unique.": "Filtern Sie Daten basierend auf dem spezifischen Feld, mit der Anforderung, dass der Feldwert eindeutig sein muss." +} diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/de-DE.json new file mode 100644 index 0000000000..ccefc13020 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/de-DE.json @@ -0,0 +1,102 @@ +{ + "Edit": "Bearbeiten", + "Delete": "Löschen", + "Cancel": "Abbrechen", + "Submit": "Absenden", + "Actions": "Aktionen", + "Title": "Titel", + "Enable": "Aktivieren", + "Chart": "Diagramm", + "ChartV2": "DiagrammV2", + "Charts": "Diagramme", + "Configure": "Konfigurieren", + "Duplicate": "Duplizieren", + "Configure chart": "Diagramm konfigurieren", + "Transform": "Transformieren", + "Chart type": "Diagrammtyp", + "JSON config": "JSON-Konfiguration", + "Query": "Abfrage", + "Data": "Daten", + "Run query": "Abfrage ausführen", + "Measures": "Messgrößen", + "Dimensions": "Dimensionen", + "Filter": "Filter", + "Sort": "Sortierung", + "Limit": "Limit", + "Offset": "Versatz", + "Enable cache": "Cache aktivieren", + "TTL (second)": "TTL (Sekunden)", + "Field": "Feld", + "Aggregation": "Aggregation", + "Alias": "Alias", + "Format": "Format", + "The first 10 records of the query result:": "Die ersten 10 Datensätze des Abfrageergebnisses:", + "Please run query to retrive data.": "Bitte führen Sie die Abfrage aus, um Daten abzurufen.", + "Type": "Typ", + "Add field": "Feld hinzufügen", + "Add chart": "Diagramm hinzufügen", + "xField": "X-Feld", + "yField": "Y-Feld", + "seriesField": "Reihenfeld", + "angleField": "Winkelfeld", + "colorField": "Farbfeld", + "Line": "Linie", + "Area": "Fläche", + "Column": "Säule", + "Bar": "Balken", + "Pie": "Kreis", + "Dual axes": "Doppelachsen", + "Scatter": "Streuung", + "Gauge": "Messanzeige", + "Statistic": "Statistik", + "Currency": "Währung", + "Percent": "Prozent", + "Exponential": "Exponentiell", + "Abbreviation": "Abkürzung", + "Please configure and run query": "Bitte konfigurieren und führen Sie die Abfrage aus", + "Please configure chart": "Bitte konfigurieren Sie das Diagramm", + "Are you sure to cancel?": "Sind Sie sicher, dass Sie abbrechen möchten?", + "You changes are not saved. If you click OK, your changes will be lost.": "Ihre Änderungen sind nicht gespeichert. Wenn Sie OK klicken, gehen Ihre Änderungen verloren.", + "Same properties set in the form above will be overwritten by this JSON config.": "Dieselben Eigenschaften, die im obigen Formular festgelegt wurden, werden durch diese JSON-Konfiguration überschrieben.", + "Built-in": "Eingebaut", + "Config reference: ": "Konfigurationsreferenz: ", + "Table": "Tabelle", + "Sum": "Summe", + "Avg": "Durchschnitt", + "Count": "Anzahl", + "Min": "Minimum", + "Max": "Maximum", + "Please select a chart type.": "Bitte wählen Sie einen Diagrammtyp aus.", + "Collection": "Sammlung", + "isStack": "istGestapelt", + "isPercent": "istProzent", + "isGroup": "istGruppiert", + "smooth": "geglättet", + "Collapse": "Einklappen", + "Expand": "Erweitern", + "Current filter": "Aktueller Filter", + "Add custom field": "Benutzerdefiniertes Feld hinzufügen", + "To filter with custom fields, use \"Current filter\" variables in the chart configuration.": "Um mit benutzerdefinierten Feldern zu filtern, verwenden Sie die Variablen \"Aktueller Filter\" in der Diagrammkonfiguration.", + "Input": "Eingabe", + "Date range": "Datumsbereich", + "Time range": "Zeitbereich", + "Edit field properties": "Feldeigenschaften bearbeiten", + "Select a source field to use metadata of the field": "Wählen Sie ein Quellfeld aus, um Metadaten des Feldes zu verwenden", + "Original field": "Ursprüngliches Feld", + "Transformation": "Transformation", + "Add transformation": "Transformation hinzufügen", + "Container": "Container", + "Show border": "Rahmen anzeigen", + "Transformation tip": "Felder erlauben mehrere Transformationen, die nacheinander angewendet werden. Achten Sie auf Datentypenänderungen nach jeder Transformation. Drag-and-Drop-Funktionalität ermöglicht die Anpassung der Transformationsreihenfolge.", + "Type conversion": "Typumwandlung", + "Transformer": "Transformator", + "Size": "Größe", + "Width": "Breite", + "Height": "Höhe", + "Aspect ratio": "Seitenverhältnis", + "Fixed height": "Feste Höhe", + "Show background": "Hintergrund anzeigen", + "Show padding": "Abstand anzeigen", + "Distinct": "Eindeutig", + "Auto refresh": "Automatische Aktualisierung" +} diff --git a/packages/plugins/@nocobase/plugin-environment-variables/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-environment-variables/src/locale/de-DE.json new file mode 100644 index 0000000000..18985f5bc3 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-environment-variables/src/locale/de-DE.json @@ -0,0 +1,16 @@ +{ + "Environment": "Umgebung", + "Variables and secrets": "Variablen und Geheimnisse", + "Variables": "Variablen", + "Secrets": "Geheimnisse", + "Add variable": "Variable hinzufügen", + "Bulk import": "Massenimport", + "Name": "Name", + "Value": "Wert", + "Type": "Typ", + "Plain text": "Klartext", + "Encrypted": "Verschlüsselt", + "Delete variable": "Variable löschen", + "Restart now": "Jetzt neu starten", + "Variables and secrets have been updated. A restart is required for the changes to take effect.": "Variablen und Geheimnisse wurden aktualisiert. Ein Neustart ist erforderlich, damit die Änderungen wirksam werden." +} diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-error-handler/src/locale/de-DE.json new file mode 100644 index 0000000000..904ff688f3 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/de-DE.json @@ -0,0 +1,6 @@ +{ + "unique violation": "{{field}} existiert bereits", + "notNull violation": "{{field}} darf nicht null sein", + "Validation error": "{{field}} Validierungsfehler", + "notNull Violation": "{{field}} darf nicht null sein" +} diff --git a/packages/plugins/@nocobase/plugin-field-formula/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-field-formula/src/locale/de-DE.json new file mode 100644 index 0000000000..6af9ae6a38 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-field-formula/src/locale/de-DE.json @@ -0,0 +1,9 @@ +{ + "Formula": "Formel", + "Calculation engine": "Berechnungs-Engine", + "Expression": "Ausdruck", + "Expression syntax error": "Ausdruckssyntaxfehler", + "Syntax references": "Syntaxreferenzen", + "Compute a value based on the other fields": "Berechnen Sie einen Wert basierend auf den anderen Feldern", + "Configure and store the results of calculations between multiple field values in the same record, supporting both Math.js and Excel formula functions.": "Konfigurieren und speichern Sie die Ergebnisse von Berechnungen zwischen mehreren Feldwerten im selben Datensatz, unterstützt sowohl Math.js als auch Excel-Formelfunktionen." +} diff --git a/packages/plugins/@nocobase/plugin-field-m2m-array/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-field-m2m-array/src/locale/de-DE.json new file mode 100644 index 0000000000..6bcaef440d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-field-m2m-array/src/locale/de-DE.json @@ -0,0 +1,4 @@ +{ + "Many to many (array)": "Viele-zu-viele (Array)", + "Many to many (array) description": "Ermöglicht die Erstellung von Viele-zu-viele-Beziehungen zwischen zwei Modellen durch Speicherung eines Arrays eindeutiger Schlüssel des Zielmodells." +} diff --git a/packages/plugins/@nocobase/plugin-field-markdown-vditor/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-field-markdown-vditor/src/locale/de-DE.json new file mode 100644 index 0000000000..ba814c4387 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-field-markdown-vditor/src/locale/de-DE.json @@ -0,0 +1,33 @@ +{ + "Vditor": "Markdown(Vditor)", + "File collection": "Dateisammlung", + "Used to store files uploaded in the Markdown editor": "Wird verwendet, um Dateien zu speichern, die im Markdown-Editor hochgeladen wurden", + "Toolbar": "Editor-Symbolleistenkonfiguration", + "Emoji": "Emoji", + "Headings": "Überschriften", + "Bold": "Fett", + "Italic": "Kursiv", + "Strike": "Durchgestrichen", + "Record": "Aufnahme starten/Aufnahme beenden", + "Line": "Linie", + "Quote": "Zitat", + "List": "Liste", + "OrderedList": "Geordnete Liste", + "Check": "Aufgabenliste", + "Outdent": "Ausrücken", + "Indent": "Einrücken", + "Code": "Codeblock", + "InlineCode": "Inline-Code", + "InsertAfter": "Zeile danach einfügen", + "InsertBefore": "Zeile davor einfügen", + "Undo": "Rückgängig", + "Redo": "Wiederholen", + "Upload": "Bild oder Datei hochladen", + "Link": "Link", + "Table": "Tabelle", + "EditMode": "Bearbeitungsmodus", + "Both": "Editor & Vorschau", + "Preview": "Vorschau", + "Fullscreen": "Vollbild umschalten", + "Outline": "Gliederung" +} diff --git a/packages/plugins/@nocobase/plugin-field-sequence/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-field-sequence/src/locale/de-DE.json new file mode 100644 index 0000000000..98eee230a0 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-field-sequence/src/locale/de-DE.json @@ -0,0 +1,37 @@ +{ + "Sequence": "Sequenz", + "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.": "Generieren Sie automatisch Codes basierend auf konfigurierten Regeln, unterstützt Kombinationen aus Datum, Zahlen und Text.", + "Sequence rules": "Sequenzregeln", + "Add rule": "Regel hinzufügen", + "Inputable": "Eingabefähig", + "Match rules": "Übereinstimmungsregeln", + "Type": "Typ", + "Autoincrement": "Automatische Erhöhung", + "Fixed text": "Fester Text", + "Text content": "Textinhalt", + "Date": "Datum", + "Date format": "Datumsformat", + "Supports all formats of the Day.js library, such as \"YYYYMMDD\", \"YYYY-MM-DD\", etc.": "Unterstützt alle Formate der Day.js-Bibliothek, wie \"YYYYMMDD\", \"YYYY-MM-DD\" usw.", + "Rule content": "Regelinhalt", + "{{value}} Digits": "{{value}} Ziffern", + "Digits": "Ziffern", + "Start from": "Beginnen bei", + "Starts from {{value}}": "Beginnt bei {{value}}", + "Reset cycle": "Zurücksetzungszyklus", + "No reset": "Kein Zurücksetzen", + "Daily": "Täglich", + "Every Monday": "Jeden Montag", + "Monthly": "Monatlich", + "Yearly": "Jährlich", + "Operations": "Operationen", + "Customize": "Anpassen", + "Random character": "Zufälliges Zeichen", + "Length": "Länge", + "Will generate random characters with specified length.": "Generiert zufällige Zeichen mit angegebener Länge.", + "Character sets": "Zeichensätze", + "Select character sets to generate random characters.": "Wählen Sie Zeichensätze zur Generierung zufälliger Zeichen.", + "Number": "Zahl", + "Lowercase letters": "Kleinbuchstaben", + "Uppercase letters": "Großbuchstaben", + "Symbols": "Symbole" +} diff --git a/packages/plugins/@nocobase/plugin-field-sort/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-field-sort/src/locale/de-DE.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/packages/plugins/@nocobase/plugin-field-sort/src/locale/de-DE.json @@ -0,0 +1 @@ +{} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/de-DE.json new file mode 100644 index 0000000000..42a9c9da42 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/de-DE.json @@ -0,0 +1,41 @@ +{ + "File collection": "Dateisammlung", + "File name": "Dateiname", + "Extension name": "Erweiterungsname", + "Size": "Größe", + "File size limit": "Dateigrößenbegrenzung", + "Minimum from 1 byte, maximum up to 1GB.": "Minimum 1 Byte, Maximum bis zu 1GB.", + "File manager": "Dateimanager", + "Attachment": "Anhang", + "MIME type": "MIME-Typ", + "File type (in MIME type format)": "Dateityp (im MIME-Typ-Format)", + "Multi-types seperated with comma, for example: \"image/*\", \"image/png\", \"image/*, application/pdf\" etc.": "Mehrere Typen durch Kommas getrennt, zum Beispiel: \"image/*\", \"image/png\", \"image/*, application/pdf\" usw.", + "URL": "URL", + "File storage": "Dateispeicher", + "Allow uploading multiple files": "Hochladen mehrerer Dateien erlauben", + "Storage": "Speicher", + "Storages": "Speicher", + "Storage display name": "Anzeigename des Speichers", + "Storage name": "Speichername", + "Storage type": "Speichertyp", + "Default storage": "Standardspeicher", + "Storage base URL": "Basis-URL des Speichers", + "Access base URL": "Basis-URL für den Zugriff", + "Base URL for file access, could be your CDN base URL. For example: \"https://cdn.nocobase.com\".": "Basis-URL für den Dateizugriff, könnte Ihre CDN-Basis-URL sein. Zum Beispiel: \"https://cdn.nocobase.com\".", + "Destination": "Ziel", + "Use the built-in static file server": "Den integrierten statischen Dateiserver verwenden", + "Local storage": "Lokaler Speicher", + "Aliyun OSS": "Aliyun OSS", + "Amazon S3": "Amazon S3", + "Tencent COS": "Tencent COS", + "Region": "Region", + "Bucket": "Bucket", + "Path": "Pfad", + "Relative path the file will be saved to. Left blank as root path. The leading and trailing slashes \"/\" will be ignored. For example: \"user/avatar\".": "Relativer Pfad, in dem die Datei gespeichert wird. Leer lassen als Stammpfad. Die führenden und abschließenden Schrägstriche \"/\" werden ignoriert. Zum Beispiel: \"user/avatar\".", + "Filename": "Dateiname", + "Will be used for API": "Wird für API verwendet", + "Default storage will be used when not selected": "Wenn nicht ausgewählt, wird der Standardspeicher verwendet", + "Keep file in storage when destroy record": "Datei im Speicher behalten, wenn Datensatz gelöscht wird", + "See more": "Mehr anzeigen", + "Aliyun OSS region part of the bucket. For example: \"oss-cn-beijing\".": "Aliyun OSS-Regionsteil des Buckets. Zum Beispiel: \"oss-cn-beijing\"." +} diff --git a/packages/plugins/@nocobase/plugin-gantt/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-gantt/src/locale/de-DE.json new file mode 100644 index 0000000000..349eabba04 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-gantt/src/locale/de-DE.json @@ -0,0 +1,7 @@ +{ + "Title field": "Titelfeld", + "Time scale": "Zeitskala", + "Start date field": "Startdatumsfeld", + "End date field": "Enddatumsfeld", + "Progress field": "Fortschrittsfeld" +} diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/de-DE.json new file mode 100644 index 0000000000..af407e6b0a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/de-DE.json @@ -0,0 +1,16 @@ +{ + "Graph Collection": "Graphische Sammlung", + "Collection List": "Sammlungsliste", + "Full Screen": "Vollbild", + "Collection Search": "Sammlungssuche", + "Create Collection": "Sammlung erstellen", + "All Fields": "Alle Felder", + "Association Fields": "Assoziationsfelder", + "Choices fields": "Auswahlfelder", + "All relationships": "Alle Beziehungen", + "Entity relationship only": "Nur Entitätsbeziehungen", + "Inheritance relationship only": "Nur Vererbungsbeziehungen", + "Graphical interface": "Grafische Benutzeroberfläche", + "Auto layout": "Automatisches Layout", + "Selection": "Auswahl" +} diff --git a/packages/plugins/@nocobase/plugin-kanban/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-kanban/src/locale/de-DE.json new file mode 100644 index 0000000000..17babc1375 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-kanban/src/locale/de-DE.json @@ -0,0 +1,9 @@ +{ + "Used for sorting kanban cards, only sorting fields corresponding to grouping fields can be selected": "Wird zum Sortieren von Kanban-Karten verwendet, es können nur Sortierfelder ausgewählt werden, die den Gruppierungsfeldern entsprechen", + "Global sorting": "Globale Sortierung", + "Create sort field": "Sortierfeld erstellen", + "Convert the following integer fields to sorting fields": "Die folgenden Ganzzahlfelder in Sortierfelder umwandeln", + "Sorting field": "Sortierfeld", + "Grouped sorting based on": "Gruppierte Sortierung basierend auf", + "Enable drag and drop sorting": "Drag-and-Drop-Sortierung aktivieren" +} diff --git a/packages/plugins/@nocobase/plugin-localization/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-localization/src/locale/de-DE.json new file mode 100644 index 0000000000..d02625b1b1 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-localization/src/locale/de-DE.json @@ -0,0 +1,24 @@ +{ + "Edit": "Bearbeiten", + "Add new": "Neu hinzufügen", + "Localization management": "Lokalisierungsverwaltung", + "No data": "Keine Daten", + "Delete text": "Text löschen", + "Delete translation": "Übersetzung löschen", + "Module": "Modul", + "Text": "Text", + "Translation": "Übersetzung", + "Sync": "Synchronisieren", + "Current language": "Aktuelle Sprache", + "Keyword": "Stichwort", + "All": "Alle", + "No translation": "Keine Übersetzung", + "System & Plugins": "System & Plugins", + "User interfaces": "Benutzeroberflächen", + "Collections & Fields": "Sammlungen & Felder", + "Please select the resources you want to synchronize": "Bitte wählen Sie die Ressourcen aus, die Sie synchronisieren möchten", + "Menu": "Menü", + "Publish": "Veröffentlichen", + "Translations": "Übersetzungen", + "Localization": "Lokalisierung" +} diff --git a/packages/plugins/@nocobase/plugin-logger/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-logger/src/locale/de-DE.json new file mode 100644 index 0000000000..4958edea8d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-logger/src/locale/de-DE.json @@ -0,0 +1,9 @@ +{ + "Logger": "Logger", + "Search": "Suche", + "Download": "Herunterladen", + "Download logs": "Protokolle herunterladen", + "API request and response logs": "API-Anfrage- und Antwortprotokolle", + "Application, database, plugins and other system logs, the error level logs will be sent to": "Anwendungs-, Datenbank-, Plugin- und andere Systemprotokolle, die Fehlerprotokolle werden gesendet an", + "SQL execution logs, printed by Sequelize when the db logging is enabled": "SQL-Ausführungsprotokolle, die von Sequelize ausgegeben werden, wenn das DB-Logging aktiviert ist" +} diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-map/src/locale/de-DE.json new file mode 100644 index 0000000000..5ebe792569 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-map/src/locale/de-DE.json @@ -0,0 +1,51 @@ +{ + "Map": "Karte", + "Map-based geometry": "Kartenbasierte Geometrie", + "Map type": "Kartentyp", + "Point": "Punkt", + "Line": "Linie", + "Circle": "Kreis", + "Polygon": "Polygon", + "Access key": "Zugriffsschlüssel", + "securityJsCode or serviceHost": "securityJsCode oder serviceHost", + "AMap": "AMap", + "Google Maps": "Google Maps", + "Clear": "Löschen", + "Click to select the starting point and double-click to end the drawing": "Klicken Sie, um den Startpunkt auszuwählen, und doppelklicken Sie, um die Zeichnung zu beenden", + "Clear the canvas": "Leinwand löschen", + "Are you sure to clear the canvas?": "Sind Sie sicher, dass Sie die Leinwand löschen möchten?", + "Confirm": "Bestätigen", + "Cancel": "Abbrechen", + "Enter keywords to search": "Geben Sie Suchbegriffe ein", + "The AccessKey is incorrect, please check it": "Der Zugriffsschlüssel ist falsch, bitte überprüfen Sie ihn", + "Please configure the AMap securityCode or serviceHost correctly": "Bitte konfigurieren Sie den AMap securityCode oder serviceHost korrekt", + "Map manager": "Karten-Manager", + "Configuration": "Konfiguration", + "Saved successfully": "Erfolgreich gespeichert", + "Saved failed": "Speichern fehlgeschlagen", + "Edit": "Bearbeiten", + "Save": "Speichern", + "Please configure the AccessKey and SecurityJsCode first": "Bitte konfigurieren Sie zuerst den AccessKey und SecurityJsCode", + "Go to the configuration page": "Zur Konfigurationsseite gehen", + "Zoom": "Zoom", + "Set default zoom level": "Standard-Zoomstufe festlegen", + "The default zoom level of the map": "Die Standard-Zoomstufe der Karte", + "Edit field title": "Feldtitel bearbeiten", + "Field title": "Feldtitel", + "Edit tooltip": "Tooltip bearbeiten", + "Delete field": "Feld löschen", + "Required": "Erforderlich", + "Pattern": "Muster", + "Operator": "Operator", + "Editable": "Bearbeitbar", + "Readonly": "Schreibgeschützt", + "Easy-reading": "Leicht lesbar", + "Edit description": "Beschreibung bearbeiten", + "Map field": "Kartenfeld", + "Marker field": "Markierungsfeld", + "Load google maps failed, Please check the Api key and refresh the page": "Google Maps konnte nicht geladen werden. Bitte überprüfen Sie den API-Schlüssel und aktualisieren Sie die Seite", + "Create map block": "Kartenblock erstellen", + "Start point": "Startpunkt", + "End point": "Endpunkt", + "Concatenation order field": "Verkettungsreihenfolgefeld" +} diff --git a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/de-DE.json new file mode 100644 index 0000000000..959b3aebb0 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/de-DE.json @@ -0,0 +1,32 @@ +{ + "Mobile Client-side(Deprecated)": "Mobile Client-Seite (Veraltet)", + "Interface Configuration": "Schnittstellenkonfiguration", + "App Configuration": "App-Konfiguration", + "Enable TabBar": "TabBar aktivieren", + "Untitled": "Ohne Titel", + "Edit info": "Informationen bearbeiten", + "Title": "Titel", + "Display back button": "Zurück-Button anzeigen", + "Delete menu": "Menü löschen", + "Edit menu info": "Menüinformationen bearbeiten", + "Menu": "Menü", + "Menu name": "Menüname", + "Icon": "Symbol", + "Delete menu item?": "Menüelement löschen?", + "Add menu item": "Menüelement hinzufügen", + "Page template": "Seitenvorlage", + "Template mode": "Vorlagenmodus", + "Enable Header": "Header aktivieren", + "Enable Tabs": "Tabs aktivieren", + "Delete tab item?": "Tab-Element löschen?", + "Add tab": "Tab hinzufügen", + "App level Configuration": "App-Ebenen-Konfiguration", + "Menu configuration": "Menükonfiguration", + "Page configuration": "Seitenkonfiguration", + "Settings": "Einstellungen", + "Delete settings block": "Einstellungsblock löschen", + "Delete menu block": "Menüblock löschen", + "Mobile client access address": "Zugangsadresse für mobile Clients", + "The full address is": "Die vollständige Adresse ist", + "Preview": "Vorschau" +} diff --git a/packages/plugins/@nocobase/plugin-mobile/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-mobile/src/locale/de-DE.json new file mode 100644 index 0000000000..e1b3f4d95f --- /dev/null +++ b/packages/plugins/@nocobase/plugin-mobile/src/locale/de-DE.json @@ -0,0 +1,35 @@ +{ + "Fill": "Füllen", + "App settings": "App-Einstellungen", + "Page settings": "Seiteneinstellungen", + "Info": "Info", + "Back": "Zurück", + "Link": "Link", + "Remove": "Entfernen", + "Add page": "Seite hinzufügen", + "Title": "Titel", + "Icon": "Symbol", + "Selected icon": "Ausgewähltes Symbol", + "Add link": "Link hinzufügen", + "Display tab bar": "Tab-Leiste anzeigen", + "Display page header": "Seitenkopf anzeigen", + "Display navigation bar": "Navigationsleiste anzeigen", + "Display page title": "Seitentitel anzeigen", + "Display tabs": "Tabs anzeigen", + "Add tab": "Tab hinzufügen", + "Mobile": "Mobil", + "Title field is required": "Titelfeld ist erforderlich", + "Icon field is required": "Symbolfeld ist erforderlich", + "Desktop data blocks": "Desktop-Datenblöcke", + "Other desktop blocks": "Andere Desktop-Blöcke", + "Settings": "Einstellungen", + "Mobile menu": "Mobiles Menü", + "Mobile routes": "Mobile Routen", + "No accessible pages found": "Keine zugänglichen Seiten gefunden", + "This might be due to permission configuration issues": "Dies könnte auf Probleme mit der Berechtigungskonfiguration zurückzuführen sein", + "Select time": "Zeit auswählen", + "Clear": "Löschen", + "Confirm": "Bestätigen", + "Cancel": "Abbrechen", + "Display < back button": "< Zurück-Schaltfläche anzeigen" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/de-DE.json new file mode 100644 index 0000000000..5066e22a83 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/de-DE.json @@ -0,0 +1,14 @@ +{ + "Multi-app manager": "Multi-App-Manager", + "Applications": "Anwendungen", + "App display name": "App-Anzeigename", + "App ID": "App-ID", + "Pin to menu": "An Menü anheften", + "Custom domain": "Benutzerdefinierte Domain", + "Manage applications": "Anwendungen verwalten", + "Standalone deployment": "Eigenständige Bereitstellung", + "Auto start": "Automatischer Start", + "Start mode": "Startmodus", + "Start on first visit": "Beim ersten Besuch starten", + "Start with main application": "Mit Hauptanwendung starten" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/de-DE.json new file mode 100644 index 0000000000..94bc89f825 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/de-DE.json @@ -0,0 +1,12 @@ +{ + "Share collections": "Sammlungen teilen", + "Unshared collections": "Nicht geteilte Sammlungen", + "Shared collections": "Geteilte Sammlungen", + "All categories": "Alle Kategorien", + "Enter name or title...": "Name oder Titel eingeben...", + "Are you sure to add the following collections?": "Sind Sie sicher, dass Sie die folgenden Sammlungen hinzufügen möchten?", + "Are you sure to remove the following collections?": "Sind Sie sicher, dass Sie die folgenden Sammlungen entfernen möchten?", + "Collection display name": "Anzeigename der Sammlung", + "Collection name": "Sammlungsname", + "Collection category": "Sammlungskategorie" +} diff --git a/packages/plugins/@nocobase/plugin-notification-email/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-notification-email/src/locale/de-DE.json new file mode 100644 index 0000000000..3ce7eaa2bc --- /dev/null +++ b/packages/plugins/@nocobase/plugin-notification-email/src/locale/de-DE.json @@ -0,0 +1,22 @@ +{ + "Email": "E-Mail", + "From": "Von", + "To": "An", + "CC": "CC", + "BCC": "BCC", + "Add email address": "E-Mail-Adresse hinzufügen", + "Subject": "Betreff", + "Content": "Inhalt", + "Host": "Host", + "Port": "Port", + "Secure": "Sicher", + "Account": "Konto", + "Password" : "Passwort", + "Configure": "Konfigurieren", + "The email address that will be used as the sender": "Die E-Mail-Adresse, die als Absender verwendet wird", + "SMTP mail": "SMTP-E-Mail", + "SMTP server host": "SMTP-Server-Host", + "Content type": "Inhaltstyp", + "Plain text": "Einfacher Text", + "Transport": "Transport" +} diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/de-DE.json new file mode 100644 index 0000000000..6d14c8114b --- /dev/null +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/de-DE.json @@ -0,0 +1,29 @@ +{ + "Inbox": "Posteingang", + "Message": "Nachricht", + "Loading": "Wird geladen", + "Loading more": "Mehr laden", + "No more": "Keine weiteren", + "Loading failed,": "Laden fehlgeschlagen,", + "please reload": "bitte neu laden", + "Detail": "Detail", + "Content": "Inhalt", + "Datetime": "Datum/Uhrzeit", + "Status": "Status", + "All": "Alle", + "Read": "Gelesen", + "Unread": "Ungelesen", + "In-app message": "In-App-Nachricht", + "Receivers": "Empfänger", + "Channel name": "Kanalname", + "Message group name": "Nachrichtengruppenname", + "Message title": "Nachrichtentitel", + "Message content": "Nachrichteninhalt", + "detail URL": "Detail-URL", + "Details page for desktop": "Detailseite für Desktop", + "Support two types of links: internal links and external links. If using an internal link, the link starts with\"/\", for example, \"/admin\". If using an external link, the link starts with \"http\", for example, \"https://example.com\".": "Unterstützt zwei Arten von Links: interne Links und externe Links. Bei Verwendung eines internen Links beginnt der Link mit \"/\", zum Beispiel \"/admin\". Bei Verwendung eines externen Links beginnt der Link mit \"http\", zum Beispiel \"https://example.com\".", + "Mark as read": "Als gelesen markieren", + "Support two types of links: internal links and external links. If using an internal link, the link starts with\"/\", for example, \"/m\". If using an external link, the link starts with \"http\", for example, \"https://example.com\".": "Unterstützt zwei Arten von Links: interne Links und externe Links. Bei Verwendung eines internen Links beginnt der Link mit \"/\", zum Beispiel \"/m\". Bei Verwendung eines externen Links beginnt der Link mit \"http\", zum Beispiel \"https://example.com\".", + "Details page for mobile": "Detailseite für Mobilgeräte", + "The message page has already been created.": "Die Nachrichtenseite wurde bereits erstellt." +} diff --git a/packages/plugins/@nocobase/plugin-notification-manager/src/locale/de-DE.json b/packages/plugins/@nocobase/plugin-notification-manager/src/locale/de-DE.json new file mode 100644 index 0000000000..f5dcbdc3f6 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-notification-manager/src/locale/de-DE.json @@ -0,0 +1,43 @@ +{ + "Notification Management": "Benachrichtigungsverwaltung", + "Notification": "Benachrichtigung", + "Channels": "Kanäle", + "Channel": "Kanal", + "Channel title": "Kanaltitel", + "Channel name": "Kanalname", + "Channel display name": "Kanalanzeigename", + "Content": "Inhalt", + "Receivers": "Empfänger", + "Receiver": "Empfänger", + "Add new receiver": "Neuen Empfänger hinzufügen", + "Templates": "Vorlagen", + "Logs": "Protokolle", + "Title": "Titel", + "Description": "Beschreibung", + "Notification type": "Benachrichtigungstyp", + "Actions": "Aktionen", + "Configure": "Konfigurieren", + "Add new": "Neu hinzufügen", + "Trigger from": "Auslöser von", + "Status": "Status", + "Created at": "Erstellt am", + "Delete record": "Datensatz löschen", + "Are you sure you want to delete it?": "Sind Sie sicher, dass Sie es löschen möchten?", + "Deleted successfully!": "Erfolgreich gelöscht!", + "Add user": "Benutzer hinzufügen", + "Select users": "Benutzer auswählen", + "Query users": "Benutzer abfragen", + "Receiver type": "Empfängertyp", + "Manual input": "Manuelle Eingabe", + "Select user": "Benutzer auswählen", + "No channel enabled yet": "Noch kein Kanal aktiviert", + "Success": "Erfolg", + "Fail": "Fehlschlag", + "Failure": "Fehlschlag", + "Reason": "Grund", + "Failed reason": "Fehlergrund", + "Log detail": "Protokolldetail", + "Message": "Nachricht", + "Notification manager": "Benachrichtigungsmanager", + "Randomly generated and can not be modified. Support letters, numbers and underscores, must start with an letter.": "Zufällig generiert und kann nicht geändert werden. Unterstützt Buchstaben, Zahlen und Unterstriche, muss mit einem Buchstaben beginnen." +} 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-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-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-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-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-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/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/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/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/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/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/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/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-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/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/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/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 node (Commercial plugin).": "SQL-Abfrageergebnisse können über <1>JSON-Abfrageknoten 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/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}}<2>View the execution": "Workflow ausgeführt, der Ergebnisstatus ist <1>{{statusText}}<2>Ausführung anzeigen", + "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" +} From 97940d246c49649aa8aad55d9ee214116333351d Mon Sep 17 00:00:00 2001 From: N3tN00b3r <61335029+N3tN00b3r@users.noreply.github.com> Date: Wed, 12 Mar 2025 14:39:47 +0100 Subject: [PATCH 03/13] Updating italian translations (#6434) * Add italian translation * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json The following strings have been intentionally not translated to avoid misinterpretation of the technical terms: Access Key ID Access Key Secret Secret ID Secret Key * Create it-IT.json * Create it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json --- packages/core/client/src/locale/it-IT.json | 24 +++---- .../plugin-acl/src/locale/it-IT.json | 4 ++ .../src/locale/it-IT.json | 1 + .../src/locale/it-IT.json | 1 + .../src/locale/it-IT.json | 2 +- .../src/locale/it-IT.json | 1 + .../src/locale/it-IT.json | 11 +++- .../@nocobase/plugin-ai/src/locale/it-IT.json | 25 +++++++ .../plugin-api-doc/src/locale/it-IT.json | 2 +- .../src/locale/it-IT.json | 40 ++++++++++++ .../plugin-auth/src/locale/it-IT.json | 22 +++++++ .../src/locale/it-IT.json | 11 +++- .../plugin-calendar/src/locale/it-IT.json | 35 ++++------ .../plugin-charts/src/locale/it-IT.json | 65 +++++++++++++++---- .../src/locale/it-IT.json | 3 +- .../src/locale/it-IT.json | 16 +++++ .../src/locale/it-IT.json | 15 ++++- .../plugin-file-manager/src/locale/it-IT.json | 20 ++++++ .../plugin-gantt/src/locale/it-IT.json | 5 +- .../src/locale/it-IT.json | 1 + .../plugin-kanban/src/locale/it-IT.json | 3 +- .../plugin-mobile/src/locale/it-IT.json | 6 ++ .../src/locale/it-IT.json | 3 + .../src/locale/it-IT.json | 3 +- .../src/locale/it-IT.json | 8 ++- .../src/locale/it-IT.json | 8 ++- .../plugin-theme-editor/src/locale/it-IT.json | 20 ++++-- .../src/locale/it-IT.json | 3 + .../plugin-users/src/locale/it-IT.json | 4 ++ 29 files changed, 293 insertions(+), 69 deletions(-) create mode 100644 packages/plugins/@nocobase/plugin-ai/src/locale/it-IT.json create mode 100644 packages/plugins/@nocobase/plugin-environment-variables/src/locale/it-IT.json diff --git a/packages/core/client/src/locale/it-IT.json b/packages/core/client/src/locale/it-IT.json index 5963f2120f..a9818450e7 100644 --- a/packages/core/client/src/locale/it-IT.json +++ b/packages/core/client/src/locale/it-IT.json @@ -127,7 +127,7 @@ "Tablet device": "Tablet", "Desktop device": "Desktop", "Large screen device": "Schermo di grandi dimensioni", - "Collapse": "Collassa", + "Collapse": "Comprimi", "Select data source": "Seleziona origine dati", "Calendar": "Calendario", "Delete events": "Elimina eventi", @@ -171,10 +171,10 @@ "Add new": "Aggiungi nuovo", "Add record": "Aggiungi record", "Add child": "Aggiungi figlio", - "Collapse all": "Collassare tutto", - "Expand all": "Espandere tutto", - "Expand/Collapse": "Espandere/Collassare", - "Default collapse": "Collassa di default", + "Collapse all": "Comprimi tutto", + "Expand all": "Espandi tutto", + "Expand/Collapse": "Espandi/Comprimi", + "Default collapse": "Comprimi di default", "Tree table": "Tabella ad albero", "Custom field display name": "Nome visualizzato campo personalizzato ", "Display fields": "Visualizza campi", @@ -344,7 +344,7 @@ "Edit chart": "Modifica grafico", "Add text": "Aggiungi testo", "Filterable fields": "Campi filtrabili", - "Edit button": "Pulsante Modifica", + "Edit button": "Modifica pulsante", "Hide": "Nascondi", "Enable actions": "Abilita operazioni", "Import": "Importa", @@ -552,7 +552,7 @@ "Fields values": "Valori campi", "The field has been deleted": "Il campo è stato eliminato", "When submitting the following fields, the saved values are": "Quando si inviano i seguenti campi, i valori salvati sono", - "After successful submission": "Dopo una invio riuscito", + "After successful submission": "Dopo un invio riuscito", "Then": "Poi", "Stay on current page": "Resta sulla pagina corrente", "Redirect to": "Reindirizza a", @@ -658,9 +658,9 @@ "After clicking the custom button, the following field values will be assigned according to the following form.": "Dopo aver fatto clic sul pulsante personalizza, i seguenti valori verranno assegnati in base al seguente modulo.", "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "Dopo aver fatto clic sul pulsante personalizza, i seguenti campi del record corrente verranno salvati in base al seguente modulo.", "Button background color": "Colore sfondo del pulsante", - "Highlight": "Evidenzia", - "Danger red": "Pericolo rosso", - "Custom request": "Personalizza richiesta", + "Highlight": "Evidenziato", + "Danger red": "Rosso pericolo", + "Custom request": "Richiesta personalizzata", "Request settings": "Impostazioni richiesta", "Request URL": "URL richiesta", "Request method": "Metodo richiesta", @@ -753,7 +753,7 @@ "Update all data?": "Aggiornare tutti i dati?", "Remains the same": "Rimane lo stesso", "Changed to": "Cambiato in", - "Clear": "Pulisci", + "Clear": "Cancella", "Add attach": "Aggiungi allegato", "Please select the records to be updated": "Si prega di selezionare i record da aggiornare", "Selector": "Selettore", @@ -841,7 +841,7 @@ "This variable has been deprecated and can be replaced with \"Current form\"": "Questa variabile è stata deprecata e può essere sostituita con \"Current form\"", "The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string.": "Il valore di questa variabile deriva dalla stringa di ricerca nell'URL della pagina. Questa variabile può essere utilizzata normalmente solo quando la pagina ha una stringa di ricerca.", "URL search params": "Parametri di ricerca URL", - "Expand All": "Espandere tutto", + "Expand All": "Espandi tutto", "Search": "Ricerca", "Clear default value": "Cancella il valore predefinito", "Open in new window": "Apri in una nuova finestra", diff --git a/packages/plugins/@nocobase/plugin-acl/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-acl/src/locale/it-IT.json index c36f51a080..ccbdff8259 100644 --- a/packages/plugins/@nocobase/plugin-acl/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-acl/src/locale/it-IT.json @@ -4,4 +4,8 @@ "New role": "Nuovo ruolo", "Permissions": "Permessi", "Desktop menu": "Menu desktop" + "Roles & Permissions": "Ruoli e permessi", + "General": "Generale", + "Plugin settings": "Impostazioni plugin", + "Data sources": "Origini dati" } diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/it-IT.json index 92ce7f68bd..19cea5150b 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/locale/it-IT.json @@ -1,4 +1,5 @@ { "Bulk edit": "Modifica di massa", "Data will be updated": "I dati saranno aggiornati" + "Entire collection":"Raccolta intera" } diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/it-IT.json index 4347508ecc..87227d65ab 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/src/locale/it-IT.json @@ -2,4 +2,5 @@ "Bulk update": "Aggiornamento di massa", "After successful bulk update": "Dopo un aggiornamento di massa riuscito", "Please select the records to be updated": "Per favore seleziona i record da aggiornare" + "Entire collection": "Raccolta intera" } diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-action-custom-request/src/locale/it-IT.json index 1d59a5e002..25cb36e170 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-action-custom-request/src/locale/it-IT.json @@ -20,7 +20,7 @@ "ms": "ms", "Input request data": "Inserisci dati richiesta", "Only support standard JSON data": "Supporta solo dati JSON standard", - "Content-Type only support \"application/json\", and no need to specify": "Content-Type supporta solo \"application/json\", e non è necessario specificarlo", + "\"Content-Type\" only support \"application/json\", and no need to specify": "Content-Type supporta solo \"application/json\", e non è necessario specificarlo", "When the HTTP method is Post, Put or Patch, and this custom request inside the form, the request body will be automatically filled in with the form data": "Quando il metodo HTTP è Post, Put o Patch, e questa richiesta personalizzata è all'interno del modulo, il corpo della richiesta verrà automaticamente riempito con i dati del modulo", "Please configure the request settings first": "Per favore configura prima le impostazioni della richiesta" } diff --git a/packages/plugins/@nocobase/plugin-action-export/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-action-export/src/locale/it-IT.json index 946bd0b3ca..58d73d8415 100644 --- a/packages/plugins/@nocobase/plugin-action-export/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-action-export/src/locale/it-IT.json @@ -1,6 +1,7 @@ { "Export warning": "Puoi esportare fino a {{limit}} colonne di dati alla volta, qualsiasi eccedenza sarà ignorata.", "Start export": "Avvia esportazione", + "another export action is running, please try again later.": "È in esecuzione un'altra attività di esportazione. Riprova più tardi.", "True": "Vero", "False": "Falso" } diff --git a/packages/plugins/@nocobase/plugin-action-import/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-action-import/src/locale/it-IT.json index b9d88382dd..6887661dcb 100644 --- a/packages/plugins/@nocobase/plugin-action-import/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-action-import/src/locale/it-IT.json @@ -9,7 +9,7 @@ "Step 1: Download template": "Passo 1: Scarica modello", "Step 2: Upload Excel": "Passo 2: Carica file Excel", "Step 3: Import options": "Passo 3: Opzioni di importazione", - "Download tips": "- Scarica il modello e compila i dati secondo il formato \\r\\n - Importa solo il primo foglio di lavoro \\r\\n - Non cambiare l'intestazione del modello per evitare errori di importazione", + "Download tips": "- Scarica il modello e compila i dati secondo il formato \r\n - Importa solo il primo foglio di lavoro \r\n - Non cambiare l'intestazione del modello per evitare errori di importazione", "Import warnings": "Puoi importare fino a {{limit}} righe di dati alla volta, qualsiasi eccedenza verrà ignorata.", "Upload placeholder": "Trascina qui il file o clicca per caricare, la dimensione del file non deve superare 80M", "Excel data importing": "Importazione dati Excel in corso", @@ -39,4 +39,13 @@ "No data to import": "Nessun dato da importare", "Failed to import row {{row}}, {{message}}, row data: {{data}}": "Errore nell'importazione della riga {{row}}, {{message}}, dati della riga: {{data}}", "import-error": "Errore nell'importazione della riga {{rowIndex}}, dati della riga: {{rowData}}, causa: {{causeMessage}}" + "Import": "Importa", + "Import completed": "Importazione completata: {{success}} record importati con successo, {{updated}} record aggiornati, {{skipped}} record saltati, totale {{total}} record", + "Successfully imported": "Importazione riuscita", + "Updated records": "Record aggiornati", + "Skipped records": "Record saltati", + "Total records": "Record totali", + "View result": "Visualizza risultato", + "ImportResult": "Importati {{success}}, aggiornati {{updated}}, saltati {{skipped}}, totale {{total}}", + "Task result": "Risultato attività" } diff --git a/packages/plugins/@nocobase/plugin-ai/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-ai/src/locale/it-IT.json new file mode 100644 index 0000000000..2c0ccda3fe --- /dev/null +++ b/packages/plugins/@nocobase/plugin-ai/src/locale/it-IT.json @@ -0,0 +1,25 @@ +{ + "AI integration": "Integrazione AI", + "LLM services": "Servizi LLM", + "LLM service": "Servizio LLM", + "Model": "Modello", + "Messages": "Messaggi", + "Structured output": "Output strutturato", + "Message": "Messaggio", + "Role": "Ruolo", + "UID": "UID", + "Add content": "Aggiungi contenuto", + "Add prompt": "Aggiungi prompt", + "Provider": "Fornitore", + "Text": "Testo", + "Image": "Immagine", + "Timout (ms)": "Timeout (ms)", + "Max retries": "Tentativi massimi", + "Frequency penalty description": "Un numero compreso tra -2,0 e 2,0. Se il valore è positivo, i nuovi token vengono penalizzati in base alla loro frequenza di occorrenza nel testo esistente, riducendo la probabilità che il modello ripeta lo stesso contenuto.", + "Max completion tokens description": "Un limite superiore per il numero di token che possono essere generati per un completamento, inclusi i token di output visibili e i token di ragionamento.", + "Presence penalty description": "Numero tra -2.0 e 2.0. I valori positivi penalizzano i nuovi token in base alla loro presenza o meno nel testo finora, aumentando la probabilità del modello di parlare di nuovi argomenti.", + "Response format description": "Importante: quando si utilizza la modalità JSON, è necessario anche istruire il modello a produrre JSON tramite un messaggio di sistema o messaggio utente.", + "Temperature description": "Quale temperatura di campionamento utilizzare, tra 0 e 2. Valori più alti come 0.8 renderanno l'output più casuale, mentre valori più bassi come 0.2 lo renderanno più focalizzato e deterministico.", + "Top P description": "Un'alternativa al campionamento con temperatura, chiamata campionamento del nucleo, in cui il modello considera i risultati dei token con massa di probabilità top_p. Quindi 0.1 significa che vengono considerati solo i token che comprendono la massa di probabilità del 10% o superiore.", + "Get models list failed, you can enter a model name manually.": "Recupero dell'elenco dei modelli fallito, è possibile inserire manualmente il nome del modello." +} diff --git a/packages/plugins/@nocobase/plugin-api-doc/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-api-doc/src/locale/it-IT.json index b1a48d2934..f76462a015 100644 --- a/packages/plugins/@nocobase/plugin-api-doc/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-api-doc/src/locale/it-IT.json @@ -1,5 +1,5 @@ { - "API documentation": "Docuemntazione API", + "API documentation": "Documentazione API", "Documentation": "Documentazione", "Select a definition": "Seleziona una definizione" } diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json index 3e8f7fbc47..76e0f3446c 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json @@ -1,4 +1,44 @@ { + "Export": "Esporta", + "Import": "Importa", + "Data": "Dati", + "Task": "Attività", + "Status": "Stato", + "Actions": "Operazioni", + "Created at": "Creato alle", + "Type": "Tipo", + "Waiting": "In attesa", + "Processing": "In elaborazione", + "Completed": "Completato", + "Failed": "Fallito", + "Cancelled": "Annullato", + "Cancel": "Annulla", + "Cancelling": "Annullamento in corso", + "Download": "Scarica", + "Error details": "Dettagli errore", + "Confirm cancel": "Conferma annullamento", + "Confirm cancel description": "Sei sicuro di voler annullare questa attività?", + "Confirm": "Conferma", + "Task cancelled": "Attività annullata", + "Task completed": "Attività completata", + "Task failed": "Esecuzione attività fallita", + "Error Details": "Dettagli errore", + "Close": "Chiudi", + "Error code": "Codice errore", + "Unknown error": "Errore sconosciuto", + "OK": "OK", + "Import result": "Risultato importazione", + "Import completed": "Importazione completata: {{success}} record importati con successo, {{updated}} record aggiornati, {{skipped}} record saltati, totale {{total}} record", + "Import summary": "{{success}}/{{total}} record importati", + "Import details": "{{success}} record importati con successo, {{updated}} record aggiornati, {{skipped}} record saltati, totale {{total}} record", + "Imported": "{{count}}/{{total}} importati", + "Successfully imported": "Importazione riuscita", + "Updated records": "Record aggiornati", + "Skipped records": "Record saltati", + "Total records": "Record totali", + "View result": "Visualizza risultato", + "ImportResult": "Importati {{success}}, aggiornati {{updated}}, saltati {{skipped}}, totale {{total}}", + "Task result": "Risultato attività" "Export {collection} attachments": "Esporta allegati {collection}", "Export {collection} data": "Esporta dati {collection}", "Import {collection} data": "Importa dati {collection}" diff --git a/packages/plugins/@nocobase/plugin-auth/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-auth/src/locale/it-IT.json index bcf52d9fd9..1248edf8c0 100644 --- a/packages/plugins/@nocobase/plugin-auth/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-auth/src/locale/it-IT.json @@ -30,4 +30,26 @@ "Sign up form": "Modulo di registrazione", "At least one of the username or email fields is required": "È richiesto almeno uno dei campi nome utente o email", "Password is not allowed to be changed": "Non consentire cambio password" + "Token policy": "Politica token", + "Token validity period": "Periodo di validità del token", + "Session validity period": "Periodo di validità della sessione", + "Expired token refresh limit": "Limite di aggiornamento token scaduto", + "Token validity period must be less than session validity period!": "Il periodo di validità del token deve essere inferiore al periodo di validità della sessione!", + "Seconds": "Secondi", + "Minutes": "Minuti", + "Hours": "Ore", + "Days": "Giorni", + "Saved successfully!": "Salvato con successo!", + "The maximum valid time for each user login. During the session validity, the Token will be automatically updated. After the timeout, the user is required to log in again.": "Il tempo massimo valido per ogni accesso utente. Durante la validità della sessione, il token verrà aggiornato automaticamente. Dopo il timeout, all'utente verrà richiesto di accedere nuovamente.", + "The validity period of each issued API Token. After the Token expires, if it is within the session validity period and has not exceeded the refresh limit, the server will automatically issue a new Token to maintain the user session, otherwise the user is required to log in again. (Each Token can only be refreshed once)": "Il periodo di validità di ciascun token API emesso. Dopo la scadenza del token, se rientra nel periodo di validità della sessione e il limite di tempo di aggiornamento non è stato superato, il server emetterà automaticamente un nuovo token per mantenere la sessione utente, altrimenti all'utente verrà richiesto di accedere nuovamente. (Ogni token può essere aggiornato una sola volta)", + "The maximum time limit allowed for refreshing a Token after it expires. After this time limit, the token cannot be automatically renewed, and the user needs to log in again.": "Il limite di tempo massimo consentito per l'aggiornamento del token dopo la scadenza. Superato questo limite di tempo, il token non può essere rinnovato automaticamente e l'utente dovrà effettuare nuovamente l'accesso.", + "Your session has expired. Please sign in again.": "La tua sessione è scaduta. Accedi di nuovo.", + "Unauthenticated. Please sign in to continue.": "Non autenticato. Accedi per continuare.", + "User not found. Please sign in again to continue.": "Utente non trovato. Accedi di nuovo per continuare." + "Select Import data": "Seleziona dati da importare", + "Select Import Plugins": "Seleziona plugin di importazione", + "Select User Collections": "Seleziona raccolte utente", + "Basic Data": "Dati di base", + "Optional Data": "Dati opzionali", + "User Data": "Dati utente" } diff --git a/packages/plugins/@nocobase/plugin-block-workbench/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-block-workbench/src/locale/it-IT.json index f75d6b26c7..ac234350dc 100644 --- a/packages/plugins/@nocobase/plugin-block-workbench/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-block-workbench/src/locale/it-IT.json @@ -1,10 +1,17 @@ { - "Workbench": "Banco di lavoro", + "Action panel": "Pannello azioni", "Scan QR code": "Scansiona codice QR", "Album": "Album", "No camera device detected": "Nessuna fotocamera rilevata", "You have not granted permission to use the camera": "Non hai concesso l'autorizzazione per utilizzare la fotocamera", "Unknown error": "Errore sconosciuto", "The image size is too large. Please compress it to below 1MB before uploading": "La dimensione dell'immagine è troppo grande. Si prega di comprimerla sotto 1MB prima di caricarla.", - "QR code recognition failed, please scan again": "Riconoscimento del codice QR fallito, si prega di scansionare di nuovo." + "QR code recognition failed, please scan again": "Riconoscimento del codice QR fallito, si prega di scansionare di nuovo." + "Layout": "Layout", + "Grid": "Griglia", + "List": "Elenco", + "Add popup": "Aggiungi popup", + "Add custom request": "Aggiungi richiesta personalizzata", + "At least 1, up to 6": "Almeno 1, fino a 6", + "Items per row": "Elementi per riga" } diff --git a/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json index 801f5307bb..a55b42ab8f 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json @@ -1,22 +1,4 @@ -/** - * 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. - */ - -/** - * 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. - */ - -export default { +{ "Configure calendar": "Configura calendario", "Title field": "Campo titolo", "Custom title": "Titolo personalizzato", @@ -49,6 +31,7 @@ export default { "View record": "Visualizza record", "Details": "Dettagli", "Customize": "Personalizza", + "Update record": "Aggiorna record", "Popup": "Popup", "Updated successfully": "Aggiornato con successo", "Custom request": "Richiesta personalizzata", @@ -59,7 +42,13 @@ export default { "Weekly": "Settimanale", "Monthly": "Mensile", "Yearly": "Annuale", - "Repeats": "Ripeti", - "Background color field": "Campo colore sfondo", - "Not selected": "Non selezionato" -}; + "Repeats": "Ripeti", + "Title": "Titolo", + "Month": "Mese", + "Week": "Settimana", + "{{count}} more items": "{{count}} altri elementi", + "Not selected": "Non selezionato", + "Color field": "Campo colore", + "Default view": "Vista predefinita", + "Event open mode": "Modalità apertura evento" +} diff --git a/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json index 9b4b123b8b..0e4ab1a53a 100644 --- a/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json @@ -6,17 +6,56 @@ "Actions": "Operazioni", "Title": "Titolo", "Enable": "Abilita", - "SAML manager": "Gestore SAML", - "SAML Providers": "Fornitori SAML", - "Redirect url": "URL di reindirizzamento", - "SP entity id": "ID entità SP", - "Add provider": "Aggiungi fornitore", - "Edit provider": "Modifica fornitore", - "Client id": "ID client", - "Entity id or issuer": "ID entità o emittente", - "Login Url": "URL di accesso", - "Public cert": "Certificato pubblico", - "Delete provider": "Elimina fornitore", - "Are you sure you want to delete it?": "Sei sicuro di volerlo eliminare?", - "Sign in button name, which will be displayed on the sign in page": "Nome del pulsante di accesso, che verrà visualizzato nella pagina di accesso" + "Chart": "Grafico", + "Charts": "Grafici", + "Queries": "Elenco query", + "Select chart query": "Seleziona dati grafico", + "Select query data": "Seleziona dati query", + "Type": "Tipo", + "Chart type": "Tipo di grafico", + "Chart title": "Titolo grafico", + "Basic charts": "Grafici di base", + "More charts": "Altri grafici", + "Chart config": "Configurazione grafico", + "Add query": "Aggiungi query", + "Edit query": "Modifica query", + "Invalid JSON format,must be an object array.": "Formato JSON non valido, deve essere un array di oggetti.", + "Area": "Area", + "Bar": "Barre orizzontali", + "Column": "Colonne", + "Funnel": "Imbuto", + "Line": "Linee", + "Pie": "Torta", + "Radar": "Radar", + "Scatter": "Dispersione", + "Edit chart block": "Modifica blocco grafico", + "Chart preview": "Anteprima grafico", + "Delete queries": "Elimina elenco query", + "Delete query": "Elimina query", + "Add chart query": "Aggiungi query grafico", + "Add SQL query": "Aggiungi query SQL", + "Add JSON query": "Aggiungi query JSON", + "Data preview": "Anteprima dati", + "Category axis / Dimension": "Assi Categoria / Dimensione", + "Value axis / Metrics": "Assi Valore / Metriche", + "JSON config": "Configurazione JSON", + "Json config references": "Riferimenti configurazione JSON", + "Create chart block": "Crea blocco grafico", + "Invalid JSON format": "Formato JSON non valido", + "Json config references: ": "Riferimenti configurazione JSON: ", + "Sector Angle / Metric": "Angolo Settore / Metrica", + "Sector label / Dimensional": "Etichetta Settore / Dimensionale", + "Color legend / Dimensional": "Legenda colori / Dimensionale", + "Funnel Layer Width/Metrics": "Larghezza livello imbuto / Metriche", + "Branch Tags/Dimensions": "Etichette rami / Dimensioni", + "Branch Length/Metrics": "Lunghezza rami / Metriche", + "Please check the chart config": "Controlla la configurazione del grafico", + "1 「time」or 「Ordered Noun」 field,1 「Numerical」 field,1 「Unordered Noun」 field (optional)": "1 campo 「time」 o 「Ordered Noun」, 1 campo 「Numerical」, 1 campo 「Unordered Noun」 (opzionale)", + "1 「time」 or 「ordered noun」 field, 1 「value」 field, 0~ 1 「unordered noun」": "1 campo 「time」 o 「ordered noun」, 1 campo 「value」, 0~1 「unordered noun」", + "1 「time」 or 「ordered noun」 field, 1 「value」 field, 0 to 1 「unordered noun」": "1 campo 「time」 o 「ordered noun」, 1 campo 「value」, da 0 a 1 「unordered noun」", + "1 「Unordered Noun」 field, 1 「Numeric」 field": "1 campo 「Unordered Noun」, 1 campo 「Numeric」", + "1 「Time」 or 「Order Noun」 field, 1 「Value」 field": "1 campo 「Time」 o 「Order Noun」, 1 campo 「Value」", + "1~ 2 「Unordered Noun」 fields, 1 「Numeric」 field": "1 ~ 2 campi 「Unordered Noun」, 1 campo 「Numeric」", + "1 「Numeric」 field, 0~ 1 「Unordered Noun」 field": "1 campo 「Numeric」, 0 ~ 1 campo 「Unordered Noun」", + "Chart (Old)": "Grafico (Vecchio)" } diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json index 6ae45ec6bd..668ca91534 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json @@ -72,10 +72,11 @@ "isPercent": "èPercentuale", "isGroup": "èGruppo", "smooth": "smussato", + "Collapse": "Comprimi", "Expand": "Espandi", "Current filter": "Filtro corrente", "Add custom field": "Aggiungi campo personalizzato", - "To filter with custom fields, use \"Current filter\" variables in the chart configuration.": "Per filtrare con campi personalizzati, utilizza le variabili \"Filtro corrente\" nella configurazione del grafico.", + "To filter with custom fields, use \"Current filter\" variables in the chart configuration.": "Per filtrare con campi personalizzati, utilizza le variabili \"Current filter\" nella configurazione del grafico.", "Input": "Input", "Date range": "Intervallo date", "Time range": "Intervallo tempo", diff --git a/packages/plugins/@nocobase/plugin-environment-variables/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-environment-variables/src/locale/it-IT.json new file mode 100644 index 0000000000..19d9a98d53 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-environment-variables/src/locale/it-IT.json @@ -0,0 +1,16 @@ +{ + "Environment": "Ambiente", + "Variables and secrets": "Variabili e segreti", + "Variables": "Variabili", + "Secrets": "Segreti", + "Add variable": "Aggiungi variabile", + "Bulk import": "Importazione in blocco", + "Name": "Nome", + "Value": "Valore", + "Type": "Tipo", + "Plain text": "Testo semplice", + "Encrypted": "Crittografato", + "Delete variable": "Elimina variabile", + "Restart now": "Riavvia ora", + "Variables and secrets have been updated. A restart is required for the changes to take effect.": "Rilevati aggiornamenti a variabili e segreti. È necessario un riavvio per applicare le modifiche." +} diff --git a/packages/plugins/@nocobase/plugin-field-sequence/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-field-sequence/src/locale/it-IT.json index 9875267035..d6e4192ab3 100644 --- a/packages/plugins/@nocobase/plugin-field-sequence/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-field-sequence/src/locale/it-IT.json @@ -20,5 +20,18 @@ "Monthly": "Mensile", "Yearly": "Annuale", "Operations": "Operazioni", - "Customize": "Personalizza" + "Customize": "Personalizza" + "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.": "Genera automaticamente codici basati su regole configurate, supportando combinazioni di date, numeri e testo.", + "Date": "Data", + "Date format": "Formato data", + "Supports all formats of the Day.js library, such as \"YYYYMMDD\", \"YYYY-MM-DD\", etc.": "Supporta tutti i formati della libreria Day.js, come \"YYYYMMDD\", \"YYYY-MM-DD\", ecc.", + "Random character": "Carattere casuale", + "Length": "Lunghezza", + "Will generate random characters with specified length.": "Genererà caratteri casuali con la lunghezza specificata.", + "Character sets": "Set di caratteri", + "Select character sets to generate random characters.": "Seleziona i set di caratteri per generare caratteri casuali.", + "Number": "Numero", + "Lowercase letters": "Lettere minuscole", + "Uppercase letters": "Lettere maiuscole", + "Symbols": "Simboli" } diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json index 953aeb9514..fee0432210 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json @@ -19,4 +19,24 @@ "Filename": "Nome file", "See more": "Vedi altro", "Will be used for API": "Sarà utilizzato per l'API" + { + "File collection": "Raccolta file", + "File name": "Nome file", + "Extension name": "Nome estensione", + "Size": "Dimensione file", + "File size limit": "Limite dimensione file", + "Minimum from 1 byte, maximum up to 1GB.": "Minimo da 1 byte, massimo fino a 1GB.", + "File type (in MIME type format)": "Tipo di file (in formato MIME)", + "Multi-types seperated with comma, for example: \"image/*\", \"image/png\", \"image/*, application/pdf\" etc.": "Più tipi separati da virgola, ad esempio: \"image/*\", \"image/png\", \"image/*, application/pdf\" ecc.", + "URL": "URL", + "File storage": "Archiviazione file", + "Allow uploading multiple files": "Consenti caricamento di più file", + "Storage": "Spazio di archiviazione", + "Storages": "Spazi di archiviazione", + "Access base URL": "URL base accesso", + "Base URL for file access, could be your CDN base URL. For example: \"https://cdn.nocobase.com\".": "URL base per l'accesso ai file, potrebbe essere l'URL base del tuo CDN. Ad esempio: \"https://cdn.nocobase.com\".", + "Relative path the file will be saved to. Left blank as root path. The leading and trailing slashes \"/\" will be ignored. For example: \"user/avatar\".": "Percorso relativo in cui verrà salvato il file. Lasciare vuoto per il percorso radice. Le barre iniziali e finali \"/\" verranno ignorate. Ad esempio: \"user/avatar\".", + "Default storage will be used when not selected": "Se non selezionato verrà utilizzato lo spazio di archiviazione predefinito", + "Keep file in storage when destroy record": "Quando elimini il record mantieni il file nello spazio di archiviazione", + "Aliyun OSS region part of the bucket. For example: \"oss-cn-beijing\".": "Parte della regione Aliyun OSS del bucket. Ad esempio: \"oss-cn-beijing\"." } diff --git a/packages/plugins/@nocobase/plugin-gantt/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-gantt/src/locale/it-IT.json index 0fba7e6039..8ab41cfd91 100644 --- a/packages/plugins/@nocobase/plugin-gantt/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-gantt/src/locale/it-IT.json @@ -1,6 +1,7 @@ { "Title field": "Campo titolo", "Time scale": "Scala temporale", - "Start date field":"Campo data di inizio", - "Progress field":"Campo progresso" + "Start date field": "Campo data di inizio", + "End date field": "Campo data di fine", + "Progress field": "Campo progresso" } diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/it-IT.json index 9efe92bc21..63d9c429c5 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/it-IT.json @@ -11,5 +11,6 @@ "Entity relationship only": "Solo Relazioni Entità", "Inheritance relationship only": "Solo Relazioni Eredità", "Graphical interface": "Interfaccia Grafica", + "Auto layout": "Layout automatico", "Selection": "Selezione" } diff --git a/packages/plugins/@nocobase/plugin-kanban/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-kanban/src/locale/it-IT.json index cace7548b5..3c9994bd6d 100644 --- a/packages/plugins/@nocobase/plugin-kanban/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-kanban/src/locale/it-IT.json @@ -4,5 +4,6 @@ "Create sort field": "Crea campo di ordinamento", "Convert the following integer fields to sorting fields": "Converti i seguenti campi interi in campi di ordinamento", "Sorting field": "Campo di ordinamento", - "Grouped sorting based on": "Ordinamento raggruppato basato su" + "Grouped sorting based on": "Ordinamento raggruppato basato su", + "Enable drag and drop sorting": "Abilita l'ordinamento con drag and drop" } diff --git a/packages/plugins/@nocobase/plugin-mobile/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-mobile/src/locale/it-IT.json index 0a56a70694..c6963f13a9 100644 --- a/packages/plugins/@nocobase/plugin-mobile/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-mobile/src/locale/it-IT.json @@ -26,4 +26,10 @@ "No accessible pages found": "Nessuna pagina accessibile trovata", "This might be due to permission configuration issues": "Questo potrebbe essere dovuto a problemi di configurazione dei permessi", "Select time":"Seleziona orario" + "Fill": "Riempimento", + "Mobile routes": "Percorsi mobile", + "Clear": "Cancella", + "Confirm": "Conferma", + "Cancel": "Annulla", + "Display < back button": "Visualizza pulsante < indietro" } diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/it-IT.json index bd997aba35..f604180510 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/it-IT.json @@ -8,4 +8,7 @@ "Manage applications": "Gestisci applicazioni", "Standalone deployment": "Distribuzione autonoma", "Auto start": "Avvio automatico" + "Start mode": "Modalità di avvio", + "Start on first visit": "Avvia alla prima visita", + "Start with main application": "Avvia con l'applicazione principale" } diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json index a722e01ec1..8f0b8d40d1 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json @@ -24,5 +24,6 @@ "Mark as read": "Segna come letto", "Support two types of links: internal links and external links. If using an internal link, the link starts with\"/\", for example, \"/m\". If using an external link, the link starts with \"http\", for example, \"https://example.com\".": "Supporta due tipi di link: link interni e link esterni. Se si utilizza un link interno, il link inizia con \"/\", ad esempio, \"/m\". Se si utilizza un link esterno, il link inizia con \"http\", ad esempio, \"https://example.com\".", "Details page for mobile": "Pagina dettagli per mobile", - "The message page has already been created.": "La pagina dei messaggi è già stata creata." + "The message page has already been created.": "La pagina dei messaggi è già stata creata.", + "When select receivers from node result, only support ID of user (or IDs array of users). Others will not match any user.": "Quando selezioni i destinatari dal risultato del nodo, supporta solo l'ID dell'utente (o l'array di ID degli utenti). Gli altri non corrisponderanno a nessun utente." } diff --git a/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json index a0862446f3..326573c179 100644 --- a/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json @@ -3,9 +3,7 @@ "Notification": "Notifica", "Channels": "Canali", "Channel": "Canale", - "Channel title": "Titolo canale", - "Channel name": "Nome canale", - "Channel display name": "Nome visualizzato canale", + "Channel title": "Titolo canale", "Content": "Contenuto", "Receivers": "Destinatari", "Receiver": "Destinatario", @@ -16,6 +14,8 @@ "Description": "Descrizione", "Notification type": "Tipo di notifica", "Actions": "Azioni", + "Channel name": "Nome canale", + "Channel display name": "Nome visualizzato canale", "Configure": "Configura", "Add new": "Aggiungi nuovo", "Trigger From": "Attivato da", @@ -28,6 +28,8 @@ "Select users": "Seleziona utenti", "Query users": "Cerca utenti", "Receiver type": "Tipo di destinatario", + "Manual input": "Inserimento manuale", + "Select user": "Seleziona utente", "No channel enabled yet": "Nessun canale ancora abilitato", "Success": "Successo", "Fail": "Fallito", 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-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-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/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" } From c408c916d7dd7bfec7952ac7771de3d4a9fba44e Mon Sep 17 00:00:00 2001 From: Katherine Date: Wed, 12 Mar 2025 22:44:10 +0800 Subject: [PATCH 04/13] fix: custom request server-side permission validation error (#6438) --- .../plugin-action-custom-request/src/server/actions/send.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/src/server/actions/send.ts b/packages/plugins/@nocobase/plugin-action-custom-request/src/server/actions/send.ts index 240f52e08b..c44e1f6c99 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/src/server/actions/send.ts +++ b/packages/plugins/@nocobase/plugin-action-custom-request/src/server/actions/send.ts @@ -77,13 +77,12 @@ export async function send(this: CustomRequestPlugin, ctx: Context, next: Next) // root role has all permissions if (ctx.state.currentRole !== 'root') { - const crRepo = ctx.db.getRepository('customRequestsRoles'); + const crRepo = ctx.db.getRepository('uiButtonSchemasRoles'); const hasRoles = await crRepo.find({ filter: { - customRequestKey: filterByTk, + uid: filterByTk, }, }); - if (hasRoles.length) { if (!hasRoles.find((item) => item.roleName === ctx.state.currentRole)) { return ctx.throw(403, 'custom request no permission'); From cc0e13dce0569acc66f585faa3f613615c52ce6a Mon Sep 17 00:00:00 2001 From: Junyi Date: Wed, 12 Mar 2025 23:35:14 +0800 Subject: [PATCH 05/13] fix(plugin-file-manager): fix file issues (#6436) * fix(plugin-file-manager): fix file issues * fix(plugin-file-manager): fix special char in windows --- docker/nocobase-full/nocobase.conf | 2 +- docker/nocobase/nocobase.conf | 2 +- packages/core/cli/nocobase.conf.tpl | 2 +- .../antd/input/ReadPretty.tsx | 20 +++++++++++- .../schema-component/antd/upload/Upload.tsx | 16 +++++----- .../schema-component/antd/upload/shared.ts | 12 +++++++ .../plugin-file-manager/package.json | 1 - .../plugin-file-manager/src/constants.ts | 2 +- .../src/server/__tests__/action.test.ts | 31 ++++++++++++++++++- .../files/[]中文报告! 1%~50.4% (123) {$#}.txt | 1 + .../src/server/actions/attachments.ts | 13 ++------ .../plugin-file-manager/src/server/utils.ts | 8 ++--- 12 files changed, 81 insertions(+), 29 deletions(-) create mode 100644 packages/plugins/@nocobase/plugin-file-manager/src/server/__tests__/files/[]中文报告! 1%~50.4% (123) {$#}.txt diff --git a/docker/nocobase-full/nocobase.conf b/docker/nocobase-full/nocobase.conf index 61ddc70335..7de9bbb630 100644 --- a/docker/nocobase-full/nocobase.conf +++ b/docker/nocobase-full/nocobase.conf @@ -17,7 +17,7 @@ server { server_name _; root /app/nocobase/packages/app/client/dist; index index.html; - client_max_body_size 20M; + client_max_body_size 0; access_log /var/log/nginx/nocobase.log apm; diff --git a/docker/nocobase/nocobase.conf b/docker/nocobase/nocobase.conf index 7c0c4d2c41..d178440bf9 100644 --- a/docker/nocobase/nocobase.conf +++ b/docker/nocobase/nocobase.conf @@ -17,7 +17,7 @@ server { server_name _; root /app/nocobase/node_modules/@nocobase/app/dist/client; index index.html; - client_max_body_size 1000M; + client_max_body_size 0; access_log /var/log/nginx/nocobase.log apm; gzip on; diff --git a/packages/core/cli/nocobase.conf.tpl b/packages/core/cli/nocobase.conf.tpl index a40343cc02..141ca74282 100644 --- a/packages/core/cli/nocobase.conf.tpl +++ b/packages/core/cli/nocobase.conf.tpl @@ -17,7 +17,7 @@ server { server_name _; root {{cwd}}/node_modules/@nocobase/app/dist/client; index index.html; - client_max_body_size 1000M; + client_max_body_size 0; access_log /var/log/nginx/nocobase.log apm; gzip on; diff --git a/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx b/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx index 94f038ddea..3bf5255fec 100644 --- a/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx +++ b/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx @@ -199,11 +199,29 @@ export interface URLReadPrettyProps { } const ellipsisStyle = { textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', display: 'block' }; + +function encodeFileURL(url: string): string { + if (!url) { + return url; + } + + const parts = url.split('/'); + const filename = parts.pop(); + parts.push(encodeURIComponent(filename)); + const encodedURL = parts.join('/'); + return encodedURL; +} + ReadPretty.URL = (props: URLReadPrettyProps) => { // eslint-disable-next-line react-hooks/rules-of-hooks const prefixCls = usePrefixCls('description-url', props); const content = props.value && ( - + {props.value} ); diff --git a/packages/core/client/src/schema-component/antd/upload/Upload.tsx b/packages/core/client/src/schema-component/antd/upload/Upload.tsx index 57b00995d9..098dff9f52 100644 --- a/packages/core/client/src/schema-component/antd/upload/Upload.tsx +++ b/packages/core/client/src/schema-component/antd/upload/Upload.tsx @@ -32,6 +32,7 @@ import { toValueItem as toValueItemDefault, useBeforeUpload, useUploadProps, + encodeFileURL, } from './shared'; import { useStyles } from './style'; import type { ComposedUpload, DraggerProps, DraggerV2Props, UploadProps } from './type'; @@ -89,26 +90,27 @@ attachmentFileTypes.add({ }, }); -const iframePreviewSupportedTypes = ['application/pdf', 'audio/*', 'image/*', 'video/*']; +const iframePreviewSupportedTypes = ['application/pdf', 'audio/*', 'image/*', 'video/*', 'text/*']; function IframePreviewer({ index, list, onSwitchIndex }) { const { t } = useTranslation(); const file = list[index]; + const url = encodeFileURL(file.url); const onOpen = useCallback( (e) => { e.preventDefault(); e.stopPropagation(); - window.open(file.url); + window.open(url); }, - [file], + [url], ); const onDownload = useCallback( (e) => { e.preventDefault(); e.stopPropagation(); - saveAs(file.url, `${file.title}${file.extname}`); + saveAs(url, `${file.title}${file.extname}`); }, - [file], + [file.extname, file.title, url], ); const onClose = useCallback(() => { onSwitchIndex(null); @@ -148,7 +150,7 @@ function IframePreviewer({ index, list, onSwitchIndex }) { > {iframePreviewSupportedTypes.some((type) => matchMimetype(file, type)) ? (