diff --git a/packages/core/client/src/collection-manager/CollectionManagerProvider.tsx b/packages/core/client/src/collection-manager/CollectionManagerProvider.tsx index 4d2cb2318..82accd272 100644 --- a/packages/core/client/src/collection-manager/CollectionManagerProvider.tsx +++ b/packages/core/client/src/collection-manager/CollectionManagerProvider.tsx @@ -32,7 +32,7 @@ export const CollectionManagerProvider: React.FC = (pr }; export const RemoteCollectionManagerProvider = (props: any) => { - const { t } = useTranslation(); + const { t } = useTranslation('lm-collections'); const api = useAPIClient(); const [contentLoading, setContentLoading] = useState(false); const { refreshCH } = useCollectionHistory(); diff --git a/packages/core/client/src/i18n/i18n.ts b/packages/core/client/src/i18n/i18n.ts index 3cf16ea2f..7bade9b97 100644 --- a/packages/core/client/src/i18n/i18n.ts +++ b/packages/core/client/src/i18n/i18n.ts @@ -24,7 +24,7 @@ i18n lng: localStorage.getItem('NOCOBASE_LOCALE') || 'en-US', // debug: true, defaultNS: 'client', - fallbackNS: 'client', + // fallbackNS: 'client', // backend: { // // for all available options read the backend's repository readme file // loadPath: '/api/locales/{{lng}}/{{ns}}.json', diff --git a/packages/core/client/src/locale/cron/zh_CN.json b/packages/core/client/src/locale/cron/zh_CN.json new file mode 100644 index 000000000..09a311676 --- /dev/null +++ b/packages/core/client/src/locale/cron/zh_CN.json @@ -0,0 +1,33 @@ +{ + "everyText": "每", + "emptyMonths": "每月", + "emptyMonthDays": "每日(月)", + "emptyMonthDaysShort": "每日", + "emptyWeekDays": "每天(周)", + "emptyWeekDaysShort": "每天(周)", + "emptyHours": "每小时", + "emptyMinutes": "每分钟", + "emptyMinutesForHourPeriod": "每", + "yearOption": "年", + "monthOption": "月", + "weekOption": "周", + "dayOption": "天", + "hourOption": "小时", + "minuteOption": "分钟", + "rebootOption": "重启", + "prefixPeriod": "每", + "prefixMonths": "的", + "prefixMonthDays": "的", + "prefixWeekDays": "的", + "prefixWeekDaysForMonthAndYearPeriod": "并且", + "prefixHours": "的", + "prefixMinutes": ":", + "prefixMinutesForHourPeriod": "的", + "suffixMinutesForHourPeriod": "分钟", + "errorInvalidCron": "不符合 cron 规则的表达式", + "clearButtonText": "清空", + "weekDays": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], + "months": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + "altWeekDays": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], + "altMonths": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"] +} diff --git a/packages/core/client/src/locale/cron/zh_CN.ts b/packages/core/client/src/locale/cron/zh_CN.ts deleted file mode 100644 index 06adaee31..000000000 --- a/packages/core/client/src/locale/cron/zh_CN.ts +++ /dev/null @@ -1,79 +0,0 @@ -export default { - everyText: '每', - emptyMonths: '每月', - emptyMonthDays: '每日(月)', - emptyMonthDaysShort: '每日', - emptyWeekDays: '每天(周)', - emptyWeekDaysShort: '每天(周)', - emptyHours: '每小时', - emptyMinutes: '每分钟', - emptyMinutesForHourPeriod: '每', - yearOption: '年', - monthOption: '月', - weekOption: '周', - dayOption: '天', - hourOption: '小时', - minuteOption: '分钟', - rebootOption: '重启', - prefixPeriod: '每', - prefixMonths: '的', - prefixMonthDays: '的', - prefixWeekDays: '的', - prefixWeekDaysForMonthAndYearPeriod: '并且', - prefixHours: '的', - prefixMinutes: ':', - prefixMinutesForHourPeriod: '的', - suffixMinutesForHourPeriod: '分钟', - errorInvalidCron: '不符合 cron 规则的表达式', - clearButtonText: '清空', - weekDays: [ - // Order is important, the index will be used as value - '周日', // Sunday must always be first, it's "0" - '周一', - '周二', - '周三', - '周四', - '周五', - '周六', - ], - months: [ - // Order is important, the index will be used as value - '一月', - '二月', - '三月', - '四月', - '五月', - '六月', - '七月', - '八月', - '九月', - '十月', - '十一月', - '十二月', - ], - altWeekDays: [ - // Order is important, the index will be used as value - '周日', // Sunday must always be first, it's "0" - '周一', - '周二', - '周三', - '周四', - '周五', - '周六', - ], - altMonths: [ - // Order is important, the index will be used as value - '一月', - '二月', - '三月', - '四月', - '五月', - '六月', - '七月', - '八月', - '九月', - '十月', - '十一月', - '十二月', - ], -}; diff --git a/packages/core/client/src/locale/en_US.json b/packages/core/client/src/locale/en_US.json new file mode 100644 index 000000000..00bb19b33 --- /dev/null +++ b/packages/core/client/src/locale/en_US.json @@ -0,0 +1,775 @@ +{ + "Display <1><0>10<1>20<2>50<3>100 items per page": "Display <1><0>10<1>20<2>50<3>100 items per page", + "Meet <1><0>All<1>Any conditions in the group": "Meet <1><0>All<1>Any conditions in the group", + "Open in<1><0>Modal<1>Drawer<2>Window": "Open in<1><0>Modal<1>Drawer<2>Window", + "{{count}} filter items": "{{count}} filter items", + "{{count}} more items": "{{count}} more items", + "Total {{count}} items": "Total {{count}} items", + "Today": "Today", + "Yesterday": "Yesterday", + "Tomorrow": "Tomorrow", + "Month": "Month", + "Week": "Week", + "This week": "This week", + "This month": "This month", + "This year": "This year", + "Next year": "Next year", + "Last week": "Last week", + "Next week": "Next week", + "Last month": "Last month", + "Next month": "Next month", + "Last quarter": "Last quarter", + "This quarter": "This quarter", + "Next quarter": "Next quarter", + "Last year": "Last year", + "Last 7 days": "Last 7 days", + "Last 30 days": "Last 30 days", + "Last 90 days": "Last 90 days", + "Next 7 days": "Next 7 days", + "Next 30 days": "Next 30 days", + "Next 90 days": "Next 90 days", + "Work week": "Work week", + "Day": "Day", + "Agenda": "Agenda", + "Date": "Date", + "Time": "Time", + "Event": "Event", + "None": "None", + "Unconnected": "Unconnected", + "System settings": "System settings", + "System title": "System title", + "Settings": "Settings", + "Logo": "Logo", + "Add menu item": "Add menu item", + "Page": "Page", + "Name": "Name", + "Icon": "Icon", + "Group": "Group", + "Link": "Link", + "Save conditions": "Save conditions", + "Edit menu item": "Edit menu item", + "Move to": "Move to", + "Insert left": "Insert left", + "Insert right": "Insert right", + "Insert inner": "Insert inner", + "Delete": "Delete", + "UI editor": "UI editor", + "Collection": "Collection", + "Collections & Fields": "Collections & Fields", + "All collections": "All collections", + "Add category": "Add category", + "Enable child collections": "Enable child collections", + "Allow adding records to the current collection": "Allow adding records to the current collection", + "Delete category": "Delete category", + "Edit category": "Edit category", + "Collection category": "Collection category", + "Collection template": "Collection template", + "Sort": "Sort", + "Categories": "Categories", + "Visible": "Visible", + "Read only": "Read only", + "Easy reading": "Easy reading", + "Hidden": "Hidden", + "Hidden(reserved value)": "Hidden(reserved value)", + "Not required": "Not required", + "Value": "Value", + "Disabled": "Disabled", + "Enabled": "Enabled", + "Problematic": "Problematic", + "Setting": "Setting", + "On": "On", + "Off": "Off", + "Empty": "Empty", + "Linkage rule": "Linkage rule", + "Linkage rules": "Linkage rules", + "Condition": "Condition", + "Properties": "Properties", + "Add linkage rule": "Add linkage rule", + "Add property": "Add property", + "Category name": "Category name", + "Roles & Permissions": "Roles & Permissions", + "Edit profile": "Edit profile", + "Change password": "Change password", + "Old password": "Old password", + "New password": "New password", + "Switch role": "Switch role", + "Super admin": "Super admin", + "Language": "Language", + "Allow sign up": "Allow sign up", + "Enable SMS authentication": "Enable SMS authentication", + "Sign out": "Sign out", + "Cancel": "Cancel", + "Submit": "Submit", + "Close": "Close", + "Set the data scope": "Set the data scope", + "Data blocks": "Data blocks", + "Filter blocks": "Filter blocks", + "Table": "Table", + "Table OID(Inheritance)": "Table OID(Inheritance)", + "Form": "Form", + "List": "List", + "Grid Card": "Grid Card", + "pixels": "pixels", + "Screen size": "Screen size", + "Display title": "Display title", + "Set the count of columns displayed in a row": "Set the count of columns displayed in a row", + "Column": "Column", + "Phone device": "Phone device", + "Tablet device": "Tablet device", + "Desktop device": "Desktop device", + "Large screen device": "Large screen device", + "Collapse": "Collapse", + "Select data source": "Select data source", + "Calendar": "Calendar", + "Delete events": "Delete events", + "This event": "This event", + "This and following events": "This and following events", + "All events": "All events", + "Delete this event?": "Delete this event?", + "Delete Event": "Delete Event", + "Kanban": "Kanban", + "Gantt": "Gantt", + "Create gantt block": "Create gantt block", + "Progress field": "Progress field", + "Time scale": "Time scale", + "Hour": "Hour", + "Quarter of day": "Quarter of day", + "Half of day": "Half of day", + "Year": "Year", + "QuarterYear": "QuarterYear", + "Select grouping field": "Select grouping field", + "Media": "Media", + "Markdown": "Markdown", + "Wysiwyg": "Wysiwyg", + "Chart blocks": "Chart blocks", + "Column chart": "Column chart", + "Bar chart": "Bar chart", + "Line chart": "Line chart", + "Pie chart": "Pie chart", + "Area chart": "Area chart", + "Other chart": "Other chart", + "Other blocks": "Other blocks", + "In configuration": "In configuration", + "Chart title": "Chart title", + "Chart type": "Chart type", + "Chart config": "Chart config", + "Templates": "Templates", + "Select template": "Select template", + "Action logs": "Action logs", + "Create template": "Create template", + "Edit markdown": "Edit markdown", + "Add block": "Add block", + "Add new": "Add new", + "Add record": "Add record", + "Add child": "Add child", + "Collapse all": "Collapse all", + "Expand all": "Expand all", + "Expand/Collapse": "Expand/Collapse", + "Default collapse": "Default collapse", + "Tree table": "Tree table", + "Custom field display name": "Custom field display name", + "Display fields": "Display collection fields", + "Edit record": "Edit record", + "Delete menu item": "Delete menu item", + "Add page": "Add page", + "Add group": "Add group", + "Add link": "Add link", + "Insert above": "Insert above", + "Insert below": "Insert below", + "Save": "Save", + "Delete block": "Delete block", + "Are you sure you want to delete it?": "Are you sure you want to delete it?", + "This is a demo text, **supports Markdown syntax**.": "This is a demo text, **supports Markdown syntax**.", + "Filter": "Filter", + "Connect data blocks": "Connect data blocks", + "Action type": "Action type", + "Actions": "Actions", + "Insert": "Insert", + "Insert if not exists": "Insert if not exists", + "Insert if not exists, or update": "Insert if not exists, or update", + "Determine whether a record exists by the following fields": "Determine whether a record exists by the following fields", + "Update": "Update", + "View": "View", + "View record": "View record", + "Refresh": "Refresh", + "Data changes": "Data changes", + "Field name": "Field name", + "Before change": "Before change", + "After change": "After change", + "Delete record": "Delete record", + "Create collection": "Create collection", + "Collection display name": "Collection display name", + "Collection name": "Collection name", + "Inherits": "Inherits", + "Generate ID field automatically": "Generate ID field automatically", + "Store the creation user of each record": "Store the creation user of each record", + "Store the last update user of each record": "Store the last update user of each record", + "Store the creation time of each record": "Store the creation time of each record", + "Store the last update time of each record": "Store the last update time of each record", + "More options": "More options", + "Records can be sorted": "Records can be sorted", + "Calendar collection": "Calendar collection", + "General collection": "General collection", + "Connect to database view": "Connect to database view", + "Source collections": "Source collections", + "Field source": "Field source", + "Preview": "Preview", + "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.", + "Edit": "Edit", + "Edit collection": "Edit collection", + "Configure fields": "Configure fields", + "Configure columns": "Configure columns", + "Edit field": "Edit field", + "Override": "Override", + "Override field": "Override field", + "Configure fields of {{title}}": "Configure fields of {{title}}", + "Association fields filter": "Association fields filter", + "PK & FK fields": "PK & FK fields", + "Association fields": "Association fields", + "Choices fields": "Choices fields", + "System fields": "System fields", + "General fields": "General fields", + "Inherited fields": "Inherited fields", + "Parent collection fields": "Parent collection fields", + "Basic": "Basic", + "Single line text": "Single line text", + "Long text": "Long text", + "Phone": "Phone", + "Email": "Email", + "Number": "Number", + "Integer": "Integer", + "Percent": "Percent", + "Password": "Password", + "Advanced type": "Advanced", + "Formula": "Formula", + "Formula description": "Compute a value in each record based on other fields in the same record.", + "Choices": "Choices", + "Checkbox": "Checkbox", + "Single select": "Single select", + "Multiple select": "Multiple select", + "Radio group": "Radio group", + "Checkbox group": "Checkbox group", + "China region": "China region", + "Date & Time": "Date & Time", + "Datetime": "Datetime", + "Relation": "Relation", + "Link to": "Link to", + "Link to description": "Used to create collection relationships quickly and compatible with most common scenarios. Suitable for non-developer use. When present as a field, it is a drop-down selection used to select records from the target collection. Once created, it will simultaneously generate the associated fields of the current collection in the target collection.", + "Sub-table": "Sub-table", + "Sub-details": "Sub-details", + "Sub-form(Popover)": "Sub-form(Popover)", + "System info": "System info", + "Created at": "Created at", + "Last updated at": "Last updated at", + "Created by": "Created by", + "Last updated by": "Last updated by", + "Add field": "Add field", + "Field display name": "Field display name", + "Field type": "Field type", + "Field interface": "Field interface", + "Date format": "Date format", + "Year/Month/Day": "Year/Month/Day", + "Year-Month-Day": "Year-Month-Day", + "Day/Month/Year": "Day/Month/Year", + "Show time": "Show time", + "Time format": "Time format", + "12 hour": "12 hour", + "24 hour": "24 hour", + "Relationship type": "Relationship type", + "Inverse relationship type": "Inverse relationship type", + "Source collection": "Source collection", + "Source key": "Source key", + "Target collection": "Target collection", + "Through collection": "Through collection", + "Target key": "Target key", + "Foreign key": "Foreign key", + "One to one": "One to one", + "One to many": "One to many", + "Many to one": "Many to one", + "Many to many": "Many to many", + "Foreign key 1": "Foreign key 1", + "Foreign key 2": "Foreign key 2", + "One to one description": "Used to create one-to-one relationships. For example, a user has a profile.", + "One to many description": "Used to create a one-to-many relationship. For example, a country will have many cities and a city can only be in one country. When present as a field, it is a sub-table that displays the records of the associated collection. When created, a Many-to-one field is automatically generated in the associated collection.", + "Many to one description": "Used to create many-to-one relationships. For example, a city can belong to only one country and a country can have many cities. When present as a field, it is a drop-down selection used to select record from the associated collection. Once created, a One-to-many field is automatically generated in the associated collection.", + "Many to many description": "Used to create many-to-many relationships. For example, a student will have many teachers and a teacher will have many students. When present as a field, it is a drop-down selection used to select records from the associated collection.", + "Generated automatically if left blank": "Generated automatically if left blank", + "Display association fields": "Display association fields", + "Display field title": "Display field title", + "Field component": "Field component", + "Allow multiple": "Allow multiple", + "Quick upload": "Quick upload", + "Select file": "Select file", + "Subtable": "Sub-table", + "Sub-form": "Sub-form", + "Field mode": "Field mode", + "Allow add new data": "Allow add new data", + "Record picker": "Record picker", + "Toggles the subfield mode": "Toggles the subfield mode", + "Selector mode": "Selector mode", + "Subtable mode": "Sub-table mode", + "Subform mode": "Sub-form mode", + "Edit block title": "Edit block title", + "Block title": "Block title", + "Pattern": "Pattern", + "Operator": "Operator", + "Editable": "Editable", + "Readonly": "Readonly", + "Easy-reading": "Easy-reading", + "Add filter": "Add filter", + "Add filter group": "Add filter group", + "Comparision": "Comparision", + "is": "is", + "is not": "is not", + "contains": "contains", + "does not contain": "does not contain", + "starts with": "starts with", + "not starts with": "not starts with", + "ends with": "ends with", + "not ends with": "not ends with", + "is empty": "is empty", + "is not empty": "is not empty", + "Edit chart": "Edit chart", + "Add text": "Add text", + "Filterable fields": "Filterable fields", + "Edit button": "Edit button", + "Hide": "Hide", + "Enable actions": "Enable actions", + "Import": "Import", + "Export": "Export", + "Customize": "Customize", + "Custom": "Custom", + "Function": "Function", + "Popup form": "Popup form", + "Flexible popup": "Flexible popup", + "Configure actions": "Configure actions", + "Display order number": "Display order number", + "Enable drag and drop sorting": "Enable drag and drop sorting", + "Triggered when the row is clicked": "Triggered when the row is clicked", + "Add tab": "Add tab", + "Disable tabs": "Disable tabs", + "Details": "Details", + "Edit tab": "Edit tab", + "Relationship blocks": "Relationship blocks", + "Select record": "Select record", + "Display name": "Display name", + "Select icon": "Select icon", + "Custom column name": "Custom column name", + "Edit description": "Edit description", + "Required": "Required", + "Unique": "Unique", + "Label field": "Label field", + "Default is the ID field": "Default is the ID field", + "Set default sorting rules": "Set default sorting rules", + "Set validation rules": "Set validation rules", + "Max length": "Max length", + "Min length": "Min length", + "Maximum": "Maximum", + "Minimum": "Minimum", + "Max length must greater than min length": "Max length must greater than min length", + "Min length must less than max length": "Min length must less than max length", + "Maximum must greater than minimum": "Maximum must greater than minimum", + "Minimum must less than maximum": "Minimum must less than maximum", + "Validation rule": "Validation rule", + "Add validation rule": "Add validation rule", + "Format": "Format", + "Regular expression": "Pattern", + "Error message": "Error message", + "Length": "Length", + "The field value cannot be greater than ": "The field value cannot be greater than ", + "The field value cannot be less than ": "The field value cannot be less than ", + "The field value is not an integer number": "The field value is not an integer number", + "Set default value": "Set default value", + "Default value": "Default value", + "is before": "is before", + "is after": "is after", + "is on or after": "is on or after", + "is on or before": "is on or before", + "is between": "is between", + "Upload": "Upload", + "Select level": "Select level", + "Province": "Province", + "City": "City", + "Area": "Area", + "Street": "Street", + "Village": "Village", + "Must select to the last level": "Must select to the last level", + "Move {{title}} to": "Move {{title}} to", + "Target position": "Target position", + "After": "After", + "Before": "Before", + "Add {{type}} before \"{{title}}\"": "Add {{type}} before \"{{title}}\"", + "Add {{type}} after \"{{title}}\"": "Add {{type}} after \"{{title}}\"", + "Add {{type}} in \"{{title}}\"": "Add {{type}} in \"{{title}}\"", + "Original name": "Original name", + "Custom name": "Custom name", + "Custom Title": "Custom Title", + "Options": "Options", + "Option value": "Option value", + "Option label": "Option label", + "Color": "Color", + "Add option": "Add option", + "Related collection": "Related collection", + "Allow linking to multiple records": "Allow linking to multiple records", + "Allow uploading multiple files": "Allow uploading multiple files", + "Configure calendar": "Configure calendar", + "Title field": "Title field", + "Custom title": "Custom title", + "Daily": "Daily", + "Weekly": "Weekly", + "Monthly": "Monthly", + "Yearly": "Yearly", + "Repeats": "Repeats", + "Show lunar": "Show lunar", + "Start date field": "Start date field", + "End date field": "End date field", + "Navigate": "Navigate", + "Title": "Title", + "Description": "Description", + "Select view": "Select view", + "Reset": "Reset", + "Importable fields": "Importable fields", + "Exportable fields": "Exportable fields", + "Saved successfully": "Saved successfully", + "Nickname": "Nickname", + "Sign in": "Sign in", + "Sign in via account": "Sign in via account", + "Sign in via phone": "Sign in via phone", + "Create an account": "Create an account", + "Sign up": "Sign up", + "Confirm password": "Confirm password", + "Log in with an existing account": "Log in with an existing account", + "Signed up successfully. It will jump to the login page.": "Signed up successfully. It will jump to the login page.", + "Password mismatch": "Password mismatch", + "Users": "Users", + "Verification code": "Verification code", + "Send code": "Send code", + "Retry after {{count}} seconds": "Retry after {{count}} seconds", + "Roles": "Roles", + "Add role": "Add role", + "Role name": "Role name", + "Configure": "Configure", + "Configure permissions": "Configure permissions", + "Edit role": "Edit role", + "Action permissions": "Action permissions", + "Menu permissions": "Menu permissions", + "Menu item name": "Menu item name", + "Allow access": "Allow access", + "Action name": "Action name", + "Allow action": "Allow action", + "Action scope": "Action scope", + "Operate on new data": "Operate on new data", + "Operate on existing data": "Operate on existing data", + "Yes": "Yes", + "No": "No", + "Red": "Red", + "Magenta": "Magenta", + "Volcano": "Volcano", + "Orange": "Orange", + "Gold": "Gold", + "Lime": "Lime", + "Green": "Green", + "Cyan": "Cyan", + "Blue": "Blue", + "Geek blue": "Geek blue", + "Purple": "Purple", + "Default": "Default", + "Add card": "Add card", + "edit title": "edit title", + "Turn pages": "Turn pages", + "Others": "Others", + "Save as template": "Save as template", + "Save as block template": "Save as block template", + "Block templates": "Block templates", + "Convert reference to duplicate": "Convert reference to duplicate", + "Template name": "Template name", + "Block type": "Block type", + "No blocks to connect": "No blocks to connect", + "Action column": "Action column", + "Records per page": "Records per page", + "(Fields only)": "(Fields only)", + "Button title": "Button title", + "Button icon": "Button icon", + "Submitted successfully": "Submitted successfully", + "Operation succeeded": "Operation succeeded", + "Operation failed": "Operation failed", + "Open mode": "Open mode", + "Popup size": "Popup size", + "Small": "Small", + "Middle": "Middle", + "Large": "Large", + "Menu item title": "Menu item title", + "Menu item icon": "Menu item icon", + "Target": "Target", + "Position": "Position", + "Insert before": "Insert before", + "Insert after": "Insert after", + "UI Editor": "UI Editor", + "ASC": "ASC", + "DESC": "DESC", + "Add sort field": "Add sort field", + "ID": "ID", + "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.", + "Drawer": "Drawer", + "Dialog": "Dialog", + "Delete action": "Delete action", + "Custom column title": "Custom column title", + "Column title": "column title", + "Original title: ": "Original title: ", + "Delete table column": "Delete table column", + "Skip required validation": "Skip required validation", + "Form values": "Form values", + "Fields values": "Fields values", + "The field has been deleted": "The field has been deleted", + "When submitting the following fields, the saved values are": "When submitting the following fields, the saved values are", + "After successful submission": "After successful submission", + "Then": "Then", + "Stay on current page": "Stay on current page", + "Redirect to": "Redirect to", + "Save action": "Save action", + "Exists": "Exists", + "Add condition": "Add condition", + "Add condition group": "Add condition group", + "exists": "exists", + "not exists": "not exists", + "=": "=", + "≠": "≠", + ">": ">", + "≥": "≥", + "<": "<", + "≤": "≤", + "Role UID": "Role UID", + "Precision": "Precision", + "Formula mode": "Formula mode", + "Expression": "Expression", + "Input +, -, *, /, ( ) to calculate, input @ to open field variables.": "Input +, -, *, /, ( ) to calculate, input @ to open field variables.", + "Formula error.": "Formula error.", + "Rich Text": "Rich Text", + "Junction collection": "Junction collection", + "Leave it blank, unless you need a custom intermediate table": "Leave it blank, unless you need a custom intermediate table", + "Fields": "Fields", + "Edit field title": "Edit field title", + "Field title": "Field title", + "Original field title: ": "Original field title: ", + "Edit tooltip": "Edit tooltip", + "Delete field": "Delete field", + "Select collection": "Select collection", + "Blank block": "Blank block", + "Duplicate template": "Duplicate template", + "Reference template": "Reference template", + "Create calendar block": "Create calendar block", + "Create kanban block": "Create kanban block", + "Grouping field": "Grouping field", + "Single select and radio fields can be used as the grouping field": "Single select and radio fields can be used as the grouping field", + "Tab name": "Tab name", + "Current record blocks": "Current record blocks", + "Popup message": "Popup message", + "Delete role": "Delete role", + "Role display name": "Role display name", + "Default role": "Default role", + "All collections use general action permissions by default; permission configured individually will override the default one.": "All collections use general action permissions by default; permission configured individually will override the default one.", + "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Allows configuration of the whole system, including UI, collections, permissions, etc.", + "New menu items are allowed to be accessed by default.": "New menu items are allowed to be accessed by default.", + "Global permissions": "Global permissions", + "General permissions": "General permissions", + "Global action permissions": "Global action permissions", + "General action permissions": "General action permissions", + "Plugin settings permissions": "Plugin settings permissions", + "Allow to desgin pages": "Allow to desgin pages", + "Allow to manage plugins": "Allow to manage plugins", + "Allow to configure plugins": "Allow to configure plugins", + "Allows to configure interface": "Allows to configure interface", + "Allows to install, activate, disable plugins": "Allows to install, activate, disable plugins", + "Allows to configure plugins": "Allows to configure plugins", + "Action display name": "Action display name", + "Allow": "Allow", + "Data scope": "Data scope", + "Action on new records": "Action on new records", + "Action on existing records": "Action on existing records", + "All records": "All records", + "Own records": "Own records", + "Permission policy": "Permission policy", + "Individual": "Individual", + "General": "General", + "Accessible": "Accessible", + "Configure permission": "Configure permission", + "Action permission": "Action permission", + "Field permission": "Field permission", + "Scope name": "Scope name", + "Unsaved changes": "Unsaved changes", + "Are you sure you don't want to save?": "Are you sure you don't want to save?", + "Dragging": "Dragging", + "Popup": "Popup", + "Trigger workflow": "Trigger workflow", + "Request API": "Request API", + "Assign field values": "Assign field values", + "Constant value": "Constant value", + "Dynamic value": "Dynamic value", + "Current user": "Current user", + "Current record": "Current record", + "Parent record": "Parent record", + "Current time": "Current time", + "System variables": "System variables", + "Date variables": "Date variables", + "Popup close method": "Popup close method", + "Automatic close": "Automatic close", + "Manually close": "Manually close", + "After successful update": "After successful update", + "Save record": "Save record", + "Updated successfully": "Updated successfully", + "After successful save": "After successful save", + "After clicking the custom button, the following field values will be assigned according to the following form.": "After clicking the custom button, the following field values will be assigned according to the following form.", + "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "After clicking the custom button, the following fields of the current record will be saved according to the following form.", + "Button background color": "Button background color", + "Highlight": "Highlight", + "Danger red": "Danger red", + "Custom request": "Custom request", + "Request settings": "Request settings", + "Request URL": "Request URL", + "Request method": "Request method", + "Request query parameters": "Request query parameters", + "Request headers": "Request headers", + "Request body": "Request body", + "Request success": "Request success", + "Invalid JSON format": "Invalid JSON format", + "After successful request": "After successful request", + "Add exportable field": "Add exportable field", + "Audit logs": "Audit logs", + "Record ID": "Record ID", + "User": "User", + "Field": "Field", + "Select": "Select", + "Select field": "Select field", + "Field value changes": "Field value changes", + "One to one (has one)": "One to one (has one)", + "One to one (belongs to)": "One to one (belongs to)", + "Use the same time zone (GMT) for all users": "Use the same time zone (GMT) for all users", + "Province/city/area name": "Province/city/area name", + "Enabled languages": "Enabled languages", + "View all plugins": "View all plugins", + "Print": "Print", + "Done": "Done", + "Sign up successfully, and automatically jump to the sign in page": "Sign up successfully, and automatically jump to the sign in page", + "File manager": "File manager", + "ACL": "ACL", + "Collection manager": "Collection manager", + "Plugin manager": "Plugin manager", + "Local": "Local", + "Built-in": "Built-in", + "Marketplace": "Marketplace", + "Add plugin": "Add plugin", + "Plugin source": "Plugin source", + "Upgrade": "Upgrade", + "Plugin dependencies check failed": "Plugin dependencies check failed", + "More details": "More details", + "Upload new version": "Upload new version", + "Version": "Version", + "Npm package": "Npm package", + "Npm package name": "Npm package name", + "Upload plugin": "Upload plugin", + "Official plugin": "Official plugin", + "Add type": "Add type", + "Changelog": "Changelog", + "Dependencies check": "Dependencies check", + "Update plugin": "Update plugin", + "Installing": "Installing", + "The deletion was successful.": "The deletion was successful.", + "Plugin Zip File": "Plugin Zip File", + "Compressed file url": "Compressed file url", + "Last updated": "Last updated", + "PackageName": "PackageName", + "DisplayName": "DisplayName", + "Readme": "Readme", + "Dependencies compatibility check": "Dependencies compatibility check", + "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.": "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.", + "Version range": "Version range", + "Plugin's version": "Plugin's version", + "Result": "Result", + "No CHANGELOG.md file": "No CHANGELOG.md file", + "No README.md file": "No README.md file", + "Homepage": "Homepage", + "Drag and drop the file here or click to upload, file size should not exceed 30M": "Drag and drop the file here or click to upload, file size should not exceed 30M", + "Dependencies check failed, can't enable.": "Dependencies check failed, can't enable.", + "Plugin starting...": "Plugin starting...", + "Plugin stopping...": "Plugin stopping...", + "Are you sure to delete this plugin?": "Are you sure to delete this plugin?", + "re-download file": "re-download file", + "Not enabled": "Not enabled", + "Search plugin": "Search plugin", + "Author": "Author", + "Plugin loading failed. Please check the server logs.": "Plugin loading failed. Please check the server logs.", + "Coming soon...": "Coming soon...", + "All plugin settings": "All plugin settings", + "Bookmark": "Bookmark", + "Manage all settings": "Manage all settings", + "Create inverse field in the target collection": "Create inverse field in the target collection", + "Inverse field name": "Inverse field name", + "Inverse field display name": "Inverse field display name", + "Bulk update": "Bulk update", + "After successful bulk update": "After successful bulk update", + "Bulk edit": "Bulk edit", + "Data will be updated": "Data will be updated", + "Selected": "Selected", + "All": "All", + "Update selected data?": "Update selected data?", + "Update all data?": "Update all data?", + "Remains the same": "Remains the same", + "Changed to": "Changed to", + "Clear": "Clear", + "Add attach": "Add attach", + "Please select the records to be updated": "Please select the records to be updated", + "Selector": "Selector", + "Inner": "Inner", + "Search and select collection": "Search and select collection", + "Please fill in the iframe URL": "Please fill in the iframe URL", + "Fix block": "Fix block", + "Plugin name": "Plugin name", + "Plugin tab name": "Plugin tab name", + "AutoGenId": "Auto-generated ID field", + "CreatedBy": "Recording a row's created user", + "UpdatedBy": "Recording a row's last updated user", + "CreatedAt": "Recording a row's created time ", + "UpdatedAt": "Recording a row's last updated user", + "Column width": "Column width", + "Sortable": "Sortable", + "Enable link": "Enable link", + "This is likely a NocoBase internals bug. Please open an issue at <1>here": "This is likely a NocoBase internals bug. Please open an issue at <1>here", + "Render Failed": "Render Failed", + "Feedback": "Feedback", + "Try again": "Try again", + "Data template": "Data template", + "Duplicate": "Duplicate", + "Duplicating": "Duplicating", + "Duplicate mode": "Duplicate mode", + "Quick duplicate": "Quick duplicate", + "Duplicate and continue": "Duplicate and continue", + "Please configure the duplicate fields": "Please configure the duplicate fields", + "Add": "Create", + "Add new mode": "Add new mode", + "Quick add": "Quick add", + "Modal add": "Modal add", + "Save mode": "Save mode", + "First or create": "First or create", + "Update or create": "Update or create", + "Find by the following fields": "Find by the following fields", + "Create": "Create", + "Current form": "Current form", + "Current object": "Current object", + "Linkage with form fields": "Linkage with form fields", + "Allow add new, update and delete actions": "Allow add new, update and delete actions", + "Date display format": "Date display format", + "Assign data scope for the template": "Assign data scope for the template", + "Table selected records": "Table selected records", + "Tag": "Tag", + "Tag color field": "Tag color field", + "Sync successfully": "Sync successfully", + "Sync from form fields": "Sync from form fields", + "Select all": "Select all", + "Restart": "Restart", + "Restart application": "Restart application", + "Cascade Select": "Cascade Select", + "Execute": "Execute", + "Please use a valid SELECT or WITH AS statement": "Please use a valid SELECT or WITH AS statement", + "Please confirm the SQL statement first": "Please confirm the SQL statement first", + "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects" +} diff --git a/packages/core/client/src/locale/en_US.ts b/packages/core/client/src/locale/en_US.ts deleted file mode 100644 index ec96d9778..000000000 --- a/packages/core/client/src/locale/en_US.ts +++ /dev/null @@ -1,789 +0,0 @@ -export default { - "Display <1><0>10<1>20<2>50<3>100 items per page": "Display <1><0>10<1>20<2>50<3>100 items per page", - "Meet <1><0>All<1>Any conditions in the group": "Meet <1><0>All<1>Any conditions in the group", - "Open in<1><0>Modal<1>Drawer<2>Window": "Open in<1><0>Modal<1>Drawer<2>Window", - "{{count}} filter items": "{{count}} filter items", - "{{count}} more items": "{{count}} more items", - "Total {{count}} items": "Total {{count}} items", - "Today": "Today", - "Yesterday": "Yesterday", - "Tomorrow": "Tomorrow", - "Month": "Month", - "Week": "Week", - "This week": "This week", - "This month": "This month", - "This year": "This year", - "Next year": "Next year", - "Last week": "Last week", - "Next week": "Next week", - "Last month": "Last month", - "Next month": "Next month", - "Last quarter": "Last quarter", - "This quarter": "This quarter", - "Next quarter": "Next quarter", - "Last year": "Last year", - "Last 7 days": "Last 7 days", - "Last 30 days": "Last 30 days", - "Last 90 days": "Last 90 days", - "Next 7 days": "Next 7 days", - "Next 30 days": "Next 30 days", - "Next 90 days": "Next 90 days", - "Work week": "Work week", - "Day": "Day", - "Agenda": "Agenda", - "Date": "Date", - "Time": "Time", - "Event": "Event", - "None": "None", - "Unconnected": "Unconnected", - "System settings": "System settings", - "System title": "System title", - "Settings": "Settings", - "Logo": "Logo", - "Add menu item": "Add menu item", - "Page": "Page", - "Name": "Name", - "Icon": "Icon", - "Group": "Group", - "Link": "Link", - "Save conditions": "Save conditions", - "Edit menu item": "Edit menu item", - "Move to": "Move to", - "Insert left": "Insert left", - "Insert right": "Insert right", - "Insert inner": "Insert inner", - "Delete": "Delete", - "UI editor": "UI editor", - "Collection": "Collection", - "Collections & Fields": "Collections & Fields", - "All collections":"All collections", - "Add category":"Add category", - "Enable child collections":"Enable child collections", - "Allow adding records to the current collection":"Allow adding records to the current collection", - "Delete category":"Delete category", - "Edit category":"Edit category", - "Collection category":"Collection category", - "Collection template":"Collection template", - "Sort":"Sort", - "Categories":"Categories", - "Visible":"Visible", - "Read only":"Read only", - "Easy reading":"Easy reading", - "Hidden":"Hidden", - "Hidden(reserved value)":"Hidden(reserved value)", - "Not required":"Not required", - "Value":"Value", - "Disabled":"Disabled", - "Enabled":"Enabled", - "Problematic": "Problematic", - "Setting": "Setting", - 'On':'On', - 'Off':'Off', - "Empty":"Empty", - "Linkage rule":"Linkage rule", - "Linkage rules":"Linkage rules", - "Condition":"Condition", - "Properties":"Properties", - "Add linkage rule":"Add linkage rule", - "Add property":"Add property", - "Category name":"Category name", - "Roles & Permissions": "Roles & Permissions", - "Edit profile": "Edit profile", - "Change password": "Change password", - "Old password": "Old password", - "New password": "New password", - "Switch role": "Switch role", - "Super admin": "Super admin", - "Language": "Language", - "Allow sign up": "Allow sign up", - "Enable SMS authentication": "Enable SMS authentication", - "Sign out": "Sign out", - "Cancel": "Cancel", - "Submit": "Submit", - "Close": "Close", - "Set the data scope": "Set the data scope", - "Data blocks": "Data blocks", - "Filter blocks": "Filter blocks", - "Table": "Table", - "Table OID(Inheritance)":"Table OID(Inheritance)", - "Form": "Form", - "List": "List", - "Grid Card": "Grid Card", - "pixels": "pixels", - "Screen size": "Screen size", - "Display title": "Display title", - 'Set the count of columns displayed in a row': "Set the count of columns displayed in a row", - 'Column': 'Column', - 'Phone device': 'Phone device', - 'Tablet device': 'Tablet device', - 'Desktop device': 'Desktop device', - 'Large screen device': 'Large screen device', - Collapse: 'Collapse', - 'Select data source': 'Select data source', - Calendar: 'Calendar', - 'Delete events': 'Delete events', - 'This event': 'This event', - 'This and following events': 'This and following events', - 'All events': 'All events', - 'Delete this event?': 'Delete this event?', - 'Delete Event': 'Delete Event', - Kanban: 'Kanban', - Gantt: 'Gantt', - 'Create gantt block': 'Create gantt block', - 'Progress field': 'Progress field', - 'Time scale': 'Time scale', - Hour: 'Hour', - 'Quarter of day': 'Quarter of day', - 'Half of day': 'Half of day', - Year: 'Year', - QuarterYear: 'QuarterYear', - 'Select grouping field': 'Select grouping field', - Media: 'Media', - Markdown: 'Markdown', - Wysiwyg: 'Wysiwyg', - 'Chart blocks': 'Chart blocks', - 'Column chart': 'Column chart', - 'Bar chart': 'Bar chart', - 'Line chart': 'Line chart', - 'Pie chart': 'Pie chart', - 'Area chart': 'Area chart', - 'Other chart': 'Other chart', - 'Other blocks': 'Other blocks', - 'In configuration': 'In configuration', - 'Chart title': 'Chart title', - 'Chart type': 'Chart type', - 'Chart config': 'Chart config', - Templates: 'Templates', - 'Select template': 'Select template', - 'Action logs': 'Action logs', - 'Create template': 'Create template', - 'Edit markdown': 'Edit markdown', - 'Add block': 'Add block', - 'Add new': 'Add new', - 'Add record': 'Add record', - 'Add child': 'Add child', - 'Collapse all': 'Collapse all', - 'Expand all': 'Expand all', - 'Expand/Collapse': 'Expand/Collapse', - 'Default collapse': 'Default collapse', - 'Tree table': 'Tree table', - 'Custom field display name': 'Custom field display name', - 'Display fields': 'Display collection fields', - 'Edit record': 'Edit record', - 'Delete menu item': 'Delete menu item', - 'Add page': 'Add page', - 'Add group': 'Add group', - 'Add link': 'Add link', - 'Insert above': 'Insert above', - 'Insert below': 'Insert below', - Save: 'Save', - 'Delete block': 'Delete block', - 'Are you sure you want to delete it?': 'Are you sure you want to delete it?', - 'This is a demo text, **supports Markdown syntax**.': 'This is a demo text, **supports Markdown syntax**.', - Filter: 'Filter', - 'Connect data blocks': 'Connect data blocks', - 'Action type': 'Action type', - Actions: 'Actions', - Insert: 'Insert', - 'Insert if not exists': 'Insert if not exists', - 'Insert if not exists, or update': 'Insert if not exists, or update', - 'Determine whether a record exists by the following fields': - 'Determine whether a record exists by the following fields', - Update: 'Update', - View: 'View', - 'View record': 'View record', - Refresh: 'Refresh', - 'Data changes': 'Data changes', - 'Field name': 'Field name', - 'Before change': 'Before change', - 'After change': 'After change', - 'Delete record': 'Delete record', - 'Create collection': 'Create collection', - 'Collection display name': 'Collection display name', - 'Collection name': 'Collection name', - Inherits: 'Inherits', - 'Generate ID field automatically': 'Generate ID field automatically', - 'Store the creation user of each record': 'Store the creation user of each record', - 'Store the last update user of each record': 'Store the last update user of each record', - 'Store the creation time of each record': 'Store the creation time of each record', - 'Store the last update time of each record': 'Store the last update time of each record', - 'More options': 'More options', - 'Records can be sorted': 'Records can be sorted', - 'Calendar collection': 'Calendar collection', - 'General collection': 'General collection', - 'Connect to database view': 'Connect to database view', - 'Source collections': 'Source collections', - 'Field source': 'Field source', - Preview: 'Preview', - 'Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.': - 'Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.', - Edit: 'Edit', - 'Edit collection': 'Edit collection', - 'Configure fields': 'Configure fields', - 'Configure columns': 'Configure columns', - 'Edit field': 'Edit field', - Override: 'Override', - 'Override field': 'Override field', - 'Configure fields of {{title}}': 'Configure fields of {{title}}', - 'Association fields filter': 'Association fields filter', - 'PK & FK fields': 'PK & FK fields', - 'Association fields': 'Association fields', - 'Choices fields': 'Choices fields', - 'System fields': 'System fields', - 'General fields': 'General fields', - 'Inherited fields': 'Inherited fields', - 'Parent collection fields': 'Parent collection fields', - Basic: 'Basic', - 'Single line text': 'Single line text', - 'Long text': 'Long text', - Phone: 'Phone', - Email: 'Email', - Number: 'Number', - Integer: 'Integer', - Percent: 'Percent', - Password: 'Password', - 'Advanced type': 'Advanced', - Formula: 'Formula', - 'Formula description': 'Compute a value in each record based on other fields in the same record.', - Choices: 'Choices', - Checkbox: 'Checkbox', - 'Single select': 'Single select', - 'Multiple select': 'Multiple select', - 'Radio group': 'Radio group', - 'Checkbox group': 'Checkbox group', - 'China region': 'China region', - 'Date & Time': 'Date & Time', - Datetime: 'Datetime', - Relation: 'Relation', - 'Link to': 'Link to', - 'Link to description': - 'Used to create collection relationships quickly and compatible with most common scenarios. Suitable for non-developer use. When present as a field, it is a drop-down selection used to select records from the target collection. Once created, it will simultaneously generate the associated fields of the current collection in the target collection.', - 'Sub-table': 'Sub-table', - 'Sub-details': 'Sub-details', - 'Sub-form(Popover)': 'Sub-form(Popover)', - 'System info': 'System info', - 'Created at': 'Created at', - 'Last updated at': 'Last updated at', - 'Created by': 'Created by', - 'Last updated by': 'Last updated by', - 'Add field': 'Add field', - 'Field display name': 'Field display name', - 'Field type': 'Field type', - 'Field interface': 'Field interface', - 'Date format': 'Date format', - 'Year/Month/Day': 'Year/Month/Day', - 'Year-Month-Day': 'Year-Month-Day', - 'Day/Month/Year': 'Day/Month/Year', - 'Show time': 'Show time', - 'Time format': 'Time format', - '12 hour': '12 hour', - '24 hour': '24 hour', - 'Relationship type': 'Relationship type', - 'Inverse relationship type': 'Inverse relationship type', - 'Source collection': 'Source collection', - 'Source key': 'Source key', - 'Target collection': 'Target collection', - 'Through collection': 'Through collection', - 'Target key': 'Target key', - 'Foreign key': 'Foreign key', - 'One to one': 'One to one', - 'One to many': 'One to many', - 'Many to one': 'Many to one', - 'Many to many': 'Many to many', - 'Foreign key 1': 'Foreign key 1', - 'Foreign key 2': 'Foreign key 2', - 'One to one description': 'Used to create one-to-one relationships. For example, a user has a profile.', - 'One to many description': - 'Used to create a one-to-many relationship. For example, a country will have many cities and a city can only be in one country. When present as a field, it is a sub-table that displays the records of the associated collection. When created, a Many-to-one field is automatically generated in the associated collection.', - 'Many to one description': - 'Used to create many-to-one relationships. For example, a city can belong to only one country and a country can have many cities. When present as a field, it is a drop-down selection used to select record from the associated collection. Once created, a One-to-many field is automatically generated in the associated collection.', - 'Many to many description': - 'Used to create many-to-many relationships. For example, a student will have many teachers and a teacher will have many students. When present as a field, it is a drop-down selection used to select records from the associated collection.', - 'Generated automatically if left blank': 'Generated automatically if left blank', - 'Display association fields': 'Display association fields', - 'Display field title': 'Display field title', - 'Field component': 'Field component', - 'Allow multiple': 'Allow multiple', - 'Quick upload': 'Quick upload', - 'Select file': 'Select file', - Subtable: 'Sub-table', - 'Sub-form': 'Sub-form', - 'Field mode': 'Field mode', - 'Allow add new data': 'Allow add new data', - 'Record picker': 'Record picker', - 'Toggles the subfield mode': 'Toggles the subfield mode', - 'Selector mode': 'Selector mode', - 'Subtable mode': 'Sub-table mode', - 'Subform mode': 'Sub-form mode', - 'Edit block title': 'Edit block title', - 'Block title': 'Block title', - Pattern: 'Pattern', - Operator: 'Operator', - Editable: 'Editable', - Readonly: 'Readonly', - 'Easy-reading': 'Easy-reading', - 'Add filter': 'Add filter', - 'Add filter group': 'Add filter group', - Comparision: 'Comparision', - is: 'is', - 'is not': 'is not', - contains: 'contains', - 'does not contain': 'does not contain', - 'starts with': 'starts with', - 'not starts with': 'not starts with', - 'ends with': 'ends with', - 'not ends with': 'not ends with', - 'is empty': 'is empty', - 'is not empty': 'is not empty', - 'Edit chart': 'Edit chart', - 'Add text': 'Add text', - 'Filterable fields': 'Filterable fields', - 'Edit button': 'Edit button', - Hide: 'Hide', - 'Enable actions': 'Enable actions', - Import: 'Import', - Export: 'Export', - Customize: 'Customize', - Custom: 'Custom', - Function: 'Function', - 'Popup form': 'Popup form', - 'Flexible popup': 'Flexible popup', - 'Configure actions': 'Configure actions', - 'Display order number': 'Display order number', - 'Enable drag and drop sorting': 'Enable drag and drop sorting', - 'Triggered when the row is clicked': 'Triggered when the row is clicked', - 'Add tab': 'Add tab', - 'Disable tabs': 'Disable tabs', - Details: 'Details', - 'Edit tab': 'Edit tab', - 'Relationship blocks': 'Relationship blocks', - 'Select record': 'Select record', - 'Display name': 'Display name', - 'Select icon': 'Select icon', - 'Custom column name': 'Custom column name', - 'Edit description': 'Edit description', - Required: 'Required', - Unique: 'Unique', - 'Label field': 'Label field', - 'Default is the ID field': 'Default is the ID field', - 'Set default sorting rules': 'Set default sorting rules', - 'Set validation rules': 'Set validation rules', - 'Max length': 'Max length', - 'Min length': 'Min length', - Maximum: 'Maximum', - Minimum: 'Minimum', - 'Max length must greater than min length': 'Max length must greater than min length', - 'Min length must less than max length': 'Min length must less than max length', - 'Maximum must greater than minimum': 'Maximum must greater than minimum', - 'Minimum must less than maximum': 'Minimum must less than maximum', - 'Validation rule': 'Validation rule', - 'Add validation rule': 'Add validation rule', - Format: 'Format', - 'Regular expression': 'Pattern', - 'Error message': 'Error message', - Length: 'Length', - 'The field value cannot be greater than ': 'The field value cannot be greater than ', - 'The field value cannot be less than ': 'The field value cannot be less than ', - 'The field value is not an integer number': 'The field value is not an integer number', - 'Set default value': 'Set default value', - 'Default value': 'Default value', - 'is before': 'is before', - 'is after': 'is after', - 'is on or after': 'is on or after', - 'is on or before': 'is on or before', - 'is between': 'is between', - Upload: 'Upload', - 'Select level': 'Select level', - Province: 'Province', - City: 'City', - Area: 'Area', - Street: 'Street', - Village: 'Village', - 'Must select to the last level': 'Must select to the last level', - 'Move {{title}} to': 'Move {{title}} to', - 'Target position': 'Target position', - After: 'After', - Before: 'Before', - 'Add {{type}} before "{{title}}"': 'Add {{type}} before "{{title}}"', - 'Add {{type}} after "{{title}}"': 'Add {{type}} after "{{title}}"', - 'Add {{type}} in "{{title}}"': 'Add {{type}} in "{{title}}"', - 'Original name': 'Original name', - 'Custom name': 'Custom name', - 'Custom Title': 'Custom Title', - Options: 'Options', - 'Option value': 'Option value', - 'Option label': 'Option label', - Color: 'Color', - 'Add option': 'Add option', - 'Related collection': 'Related collection', - 'Allow linking to multiple records': 'Allow linking to multiple records', - 'Allow uploading multiple files': 'Allow uploading multiple files', - 'Configure calendar': 'Configure calendar', - 'Title field': 'Title field', - 'Custom title': 'Custom title', - Daily: 'Daily', - Weekly: 'Weekly', - Monthly: 'Monthly', - Yearly: 'Yearly', - Repeats: 'Repeats', - 'Show lunar': 'Show lunar', - 'Start date field': 'Start date field', - 'End date field': 'End date field', - Navigate: 'Navigate', - Title: 'Title', - Description: 'Description', - 'Select view': 'Select view', - Reset: 'Reset', - 'Importable fields': 'Importable fields', - 'Exportable fields': 'Exportable fields', - 'Saved successfully': 'Saved successfully', - Nickname: 'Nickname', - 'Sign in': 'Sign in', - 'Sign in via account': 'Sign in via account', - 'Sign in via phone': 'Sign in via phone', - 'Create an account': 'Create an account', - 'Sign up': 'Sign up', - 'Confirm password': 'Confirm password', - 'Log in with an existing account': 'Log in with an existing account', - 'Signed up successfully. It will jump to the login page.': 'Signed up successfully. It will jump to the login page.', - 'Password mismatch': 'Password mismatch', - Users: 'Users', - 'Verification code': 'Verification code', - 'Send code': 'Send code', - 'Retry after {{count}} seconds': 'Retry after {{count}} seconds', - Roles: 'Roles', - 'Add role': 'Add role', - 'Role name': 'Role name', - Configure: 'Configure', - 'Configure permissions': 'Configure permissions', - 'Edit role': 'Edit role', - 'Action permissions': 'Action permissions', - 'Menu permissions': 'Menu permissions', - 'Menu item name': 'Menu item name', - 'Allow access': 'Allow access', - 'Action name': 'Action name', - 'Allow action': 'Allow action', - 'Action scope': 'Action scope', - 'Operate on new data': 'Operate on new data', - 'Operate on existing data': 'Operate on existing data', - Yes: 'Yes', - No: 'No', - Red: 'Red', - Magenta: 'Magenta', - Volcano: 'Volcano', - Orange: 'Orange', - Gold: 'Gold', - Lime: 'Lime', - Green: 'Green', - Cyan: 'Cyan', - Blue: 'Blue', - 'Geek blue': 'Geek blue', - Purple: 'Purple', - Default: 'Default', - 'Add card': 'Add card', - 'edit title': 'edit title', - 'Turn pages': 'Turn pages', - Others: 'Others', - 'Save as template': 'Save as template', - 'Save as block template': 'Save as block template', - 'Block templates': 'Block templates', - 'Convert reference to duplicate': 'Convert reference to duplicate', - 'Template name': 'Template name', - 'Block type': 'Block type', - 'No blocks to connect': 'No blocks to connect', - 'Action column': 'Action column', - 'Records per page': 'Records per page', - '(Fields only)': '(Fields only)', - 'Button title': 'Button title', - 'Button icon': 'Button icon', - 'Submitted successfully': 'Submitted successfully', - 'Operation succeeded': 'Operation succeeded', - 'Operation failed': 'Operation failed', - 'Open mode': 'Open mode', - 'Popup size': 'Popup size', - Small: 'Small', - Middle: 'Middle', - Large: 'Large', - 'Menu item title': 'Menu item title', - 'Menu item icon': 'Menu item icon', - Target: 'Target', - Position: 'Position', - 'Insert before': 'Insert before', - 'Insert after': 'Insert after', - 'UI Editor': 'UI Editor', - ASC: 'ASC', - DESC: 'DESC', - 'Add sort field': 'Add sort field', - ID: 'ID', - 'Identifier for program usage. Support letters, numbers and underscores, must start with an letter.': - 'Identifier for program usage. Support letters, numbers and underscores, must start with an letter.', - Drawer: 'Drawer', - Dialog: 'Dialog', - 'Delete action': 'Delete action', - 'Custom column title': 'Custom column title', - 'Column title': 'column title', - 'Original title: ': 'Original title: ', - 'Delete table column': 'Delete table column', - 'Skip required validation': 'Skip required validation', - 'Form values': 'Form values', - 'Fields values': 'Fields values', - 'The field has been deleted': 'The field has been deleted', - 'When submitting the following fields, the saved values are': - 'When submitting the following fields, the saved values are', - 'After successful submission': 'After successful submission', - Then: 'Then', - 'Stay on current page': 'Stay on current page', - 'Redirect to': 'Redirect to', - 'Save action': 'Save action', - Exists: 'Exists', - 'Add condition': 'Add condition', - 'Add condition group': 'Add condition group', - exists: 'exists', - 'not exists': 'not exists', - '=': '=', - '≠': '≠', - '>': '>', - '≥': '≥', - '<': '<', - '≤': '≤', - 'Role UID': 'Role UID', - Precision: 'Precision', - 'Formula mode': 'Formula mode', - Expression: 'Expression', - 'Input +, -, *, /, ( ) to calculate, input @ to open field variables.': - 'Input +, -, *, /, ( ) to calculate, input @ to open field variables.', - 'Formula error.': 'Formula error.', - 'Rich Text': 'Rich Text', - 'Junction collection': 'Junction collection', - 'Leave it blank, unless you need a custom intermediate table': - 'Leave it blank, unless you need a custom intermediate table', - Fields: 'Fields', - 'Edit field title': 'Edit field title', - 'Field title': 'Field title', - 'Original field title: ': 'Original field title: ', - 'Edit tooltip': 'Edit tooltip', - 'Delete field': 'Delete field', - 'Select collection': 'Select collection', - 'Blank block': 'Blank block', - 'Duplicate template': 'Duplicate template', - 'Reference template': 'Reference template', - 'Create calendar block': 'Create calendar block', - 'Create kanban block': 'Create kanban block', - 'Grouping field': 'Grouping field', - 'Single select and radio fields can be used as the grouping field': - 'Single select and radio fields can be used as the grouping field', - 'Tab name': 'Tab name', - 'Current record blocks': 'Current record blocks', - 'Popup message': 'Popup message', - 'Delete role': 'Delete role', - 'Role display name': 'Role display name', - 'Default role': 'Default role', - 'All collections use general action permissions by default; permission configured individually will override the default one.': - 'All collections use general action permissions by default; permission configured individually will override the default one.', - 'Allows configuration of the whole system, including UI, collections, permissions, etc.': - 'Allows configuration of the whole system, including UI, collections, permissions, etc.', - 'New menu items are allowed to be accessed by default.': 'New menu items are allowed to be accessed by default.', - 'Global permissions': 'Global permissions', - 'General permissions': 'General permissions', - 'Global action permissions': 'Global action permissions', - 'General action permissions': 'General action permissions', - 'Plugin settings permissions': 'Plugin settings permissions', - 'Allow to desgin pages': 'Allow to desgin pages', - 'Allow to manage plugins': 'Allow to manage plugins', - 'Allow to configure plugins': 'Allow to configure plugins', - 'Allows to configure interface': 'Allows to configure interface', - 'Allows to install, activate, disable plugins': 'Allows to install, activate, disable plugins', - 'Allows to configure plugins': 'Allows to configure plugins', - 'Action display name': 'Action display name', - Allow: 'Allow', - 'Data scope': 'Data scope', - 'Action on new records': 'Action on new records', - 'Action on existing records': 'Action on existing records', - 'All records': 'All records', - 'Own records': 'Own records', - 'Permission policy': 'Permission policy', - Individual: 'Individual', - General: 'General', - Accessible: 'Accessible', - 'Configure permission': 'Configure permission', - 'Action permission': 'Action permission', - 'Field permission': 'Field permission', - 'Scope name': 'Scope name', - 'Unsaved changes': 'Unsaved changes', - "Are you sure you don't want to save?": "Are you sure you don't want to save?", - "Dragging": "Dragging", - "Popup": "Popup", - "Trigger workflow": "Trigger workflow", - "Request API": "Request API", - "Assign field values": "Assign field values", - "Constant value": "Constant value", - "Dynamic value": "Dynamic value", - "Current user": "Current user", - "Current record": "Current record", - "Parent record": "Parent record", - "Current time": "Current time", - "System variables": "System variables", - "Date variables": "Date variables", - "Popup close method": "Popup close method", - "Automatic close": "Automatic close", - "Manually close": "Manually close", - "After successful update": "After successful update", - "Save record": "Save record", - "Updated successfully": "Updated successfully", - "After successful save": "After successful save", - "After clicking the custom button, the following field values will be assigned according to the following form.": "After clicking the custom button, the following field values will be assigned according to the following form.", - "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "After clicking the custom button, the following fields of the current record will be saved according to the following form.", - "Button background color": "Button background color", - "Highlight": "Highlight", - "Danger red": "Danger red", - "Custom request": "Custom request", - "Request settings": "Request settings", - "Request URL": "Request URL", - "Request method": "Request method", - "Request query parameters": "Request query parameters", - "Request headers": "Request headers", - "Request body": "Request body", - "Request success": "Request success", - "Invalid JSON format": "Invalid JSON format", - "After successful request": "After successful request", - "Add exportable field": "Add exportable field", - "Audit logs": "Audit logs", - "Record ID": "Record ID", - "User": "User", - "Field": "Field", - "Select": "Select", - "Select field": "Select field", - "Field value changes": "Field value changes", - "One to one (has one)": "One to one (has one)", - "One to one (belongs to)": "One to one (belongs to)", - "Use the same time zone (GMT) for all users": "Use the same time zone (GMT) for all users", - "Province/city/area name": "Province/city/area name", - "Enabled languages": "Enabled languages", - "View all plugins": "View all plugins", - "Print": "Print", - "Done": "Done", - "Sign up successfully, and automatically jump to the sign in page": "Sign up successfully, and automatically jump to the sign in page", - "File manager": "File manager", - "ACL": "ACL", - "Collection manager": "Collection manager", - "Plugin manager": "Plugin manager", - "Local": "Local", - "Built-in": "Built-in", - "Marketplace": "Marketplace", - "Add plugin": "Add plugin", - "Plugin source": "Plugin source", - "Upgrade": "Upgrade", - "Plugin dependencies check failed": "Plugin dependencies check failed", - "More details": "More details", - "Upload new version": "Upload new version", - "Version": "Version", - "Npm package": "Npm package", - "Npm package name": "Npm package name", - "Upload plugin": "Upload plugin", - "Official plugin": "Official plugin", - "Add type": "Add type", - "Changelog": "Changelog", - "Dependencies check": "Dependencies check", - "Update plugin": "Update plugin", - "Installing": "Installing", - "The deletion was successful.": "The deletion was successful.", - "Plugin Zip File": "Plugin Zip File", - "Compressed file url": "Compressed file url", - "Last updated": "Last updated", - "PackageName": "PackageName", - "DisplayName": "DisplayName", - "Readme": "Readme", - "Dependencies compatibility check": "Dependencies compatibility check", - "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.": "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.", - "Version range": "Version range", - "Plugin's version": "Plugin's version", - "Result": "Result", - "No CHANGELOG.md file": "No CHANGELOG.md file", - "No README.md file": "No README.md file", - "Homepage": "Homepage", - 'Drag and drop the file here or click to upload, file size should not exceed 30M': 'Drag and drop the file here or click to upload, file size should not exceed 30M', - "Dependencies check failed, can't enable.": "Dependencies check failed, can't enable.", - "Plugin starting...": "Plugin starting...", - "Plugin stopping...": "Plugin stopping...", - "Are you sure to delete this plugin?": "Are you sure to delete this plugin?", - "re-download file": "re-download file", - "Not enabled": "Not enabled", - "Search plugin": "Search plugin", - "Author": "Author", - "Plugin loading failed. Please check the server logs.": "Plugin loading failed. Please check the server logs.", - "Coming soon...": "Coming soon...", - "All plugin settings": "All plugin settings", - "Bookmark": "Bookmark", - "Manage all settings": "Manage all settings", - "Create inverse field in the target collection": "Create inverse field in the target collection", - "Inverse field name": "Inverse field name", - "Inverse field display name": "Inverse field display name", - "Bulk update": "Bulk update", - "After successful bulk update": "After successful bulk update", - "Bulk edit": "Bulk edit", - "Data will be updated": "Data will be updated", - "Selected": "Selected", - "All": "All", - "Update selected data?": "Update selected data?", - "Update all data?": "Update all data?", - "Remains the same": "Remains the same", - "Changed to": "Changed to", - "Clear": "Clear", - "Add attach": "Add attach", - "Please select the records to be updated": "Please select the records to be updated", - "Selector": "Selector", - "Inner": "Inner", - "Search and select collection": "Search and select collection", - "Please fill in the iframe URL": "Please fill in the iframe URL", - "Fix block": "Fix block", - "Plugin name": "Plugin name", - "Plugin tab name": "Plugin tab name", - "AutoGenId": "Auto-generated ID field", - "CreatedBy": "Recording a row's created user", - "UpdatedBy": "Recording a row's last updated user", - "CreatedAt": "Recording a row's created time ", - "UpdatedAt": "Recording a row's last updated user", - "Column width": "Column width", - "Sortable": "Sortable", - "Enable link": "Enable link", - "This is likely a NocoBase internals bug. Please open an issue at <1>here": "This is likely a NocoBase internals bug. Please open an issue at <1>here", - "Render Failed": "Render Failed", - "Feedback": "Feedback", - "Try again": "Try again", - "Data template": "Data template", - "Duplicate":"Duplicate", - "Duplicating":"Duplicating", - "Duplicate mode":"Duplicate mode", - "Quick duplicate":"Quick duplicate", - "Duplicate and continue":"Duplicate and continue", - "Please configure the duplicate fields":"Please configure the duplicate fields", - "Add":"Create", - "Add new mode":"Add new mode", - "Quick add":"Quick add", - "Modal add":"Modal add", - "Save mode":"Save mode", - "First or create":"First or create", - "Update or create":"Update or create", - "Find by the following fields":"Find by the following fields", - "Create":"Create", - "Current form": "Current form", - "Current object":"Current object", - "Linkage with form fields":"Linkage with form fields", - "Allow add new, update and delete actions":"Allow add new, update and delete actions", - "Date display format":"Date display format", - "Assign data scope for the template":"Assign data scope for the template", - "Table selected records":"Table selected records", - "Tag":"Tag", - "Tag color field":"Tag color field", - "Sync successfully":"Sync successfully", - "Sync from form fields":"Sync from form fields", - "Select all":"Select all", - "Restart": "Restart", - "Restart application": "Restart application", - "Cascade Select":"Cascade Select", - Execute: 'Execute', - 'Please use a valid SELECT or WITH AS statement': 'Please use a valid SELECT or WITH AS statement', - 'Please confirm the SQL statement first': 'Please confirm the SQL statement first', - 'Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects': - 'Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects', -}; diff --git a/packages/core/client/src/locale/es_ES.json b/packages/core/client/src/locale/es_ES.json new file mode 100644 index 000000000..af047c3fe --- /dev/null +++ b/packages/core/client/src/locale/es_ES.json @@ -0,0 +1,734 @@ +{ + "Display <1><0>10<1>20<2>50<3>100 items per page": "Mostrar <1><0>10<1>20<2>50<3>100 elementos por página", + "Meet <1><0>All<1>Any conditions in the group": "Cumplir <1><0>Todas<1>Cualquier condiciones del grupo", + "Open in<1><0>Modal<1>Drawer<2>Window": "Abrir en<1><0>Modal<1>Cajón<2>Ventana", + "{{count}} filter items": "{{count}} elementos de filtro", + "{{count}} more items": "{{count}} más elementos", + "Total {{count}} items": "Total {{count}} elementos", + "Today": "Hoy", + "Yesterday": "Ayer", + "Tomorrow": "Mañana", + "Month": "Mes", + "Week": "Semana", + "This week": "Esta semana", + "This month": "Este mes", + "This year": "Este año", + "Next year": "Próximo año", + "Last week": "Semana pasada", + "Next week": "Próxima semana", + "Last month": "Mes pasado", + "Next month": "Próximo mes", + "Last quarter": "Trimestre pasado", + "This quarter": "Este trimestre", + "Next quarter": "Próximo trimestre", + "Last year": "Año pasado", + "Last 7 days": "los últimos 7 días", + "Last 30 days": "los últimos 30 días", + "Last 90 days": "los últimos 90 días", + "Next 7 days": "los próximos 7 días", + "Next 30 days": "los próximos 30 días", + "Next 90 days": "los próximos 90 días", + "Work week": "Semana de trabajo", + "Day": "Día", + "Agenda": "Agenda", + "Date": "Fecha", + "Time": "Hora", + "Event": "Evento", + "None": "Ninguno", + "Unconnected": "Sin conexión", + "System settings": "Ajustes del sistema", + "System title": "Título del sistema", + "Logo": "Logo", + "Add menu item": "Añadir elemento al menú", + "Page": "Página", + "Name": "Nombre", + "Icon": "Icono", + "Group": "Grupo", + "Link": "Enlace", + "Save conditions": "Guardar condiciones", + "Edit menu item": "Editar elemento del menú", + "Move to": "Mover a", + "Insert left": "Insertar a la izquierda", + "Insert right": "Insertar a la derecha", + "Insert inner": "Insertar al interior", + "Delete": "Borrar", + "UI editor": "IU editor", + "Collection": "Colección", + "Collections & Fields": "Colección & Campos", + "All collections": "Todas las colecciones", + "Add category": "Añadir categoría", + "Enable child collections": "Activar las colecciones de niños", + "Allow adding records to the current collection": "Permitir añadir registros a la colección actual", + "Delete category": "Borrar categoría", + "Edit category": "Editar categoría", + "Collection category": "Categoría de colección", + "Collection template": "Plantilla de colección", + "Sort": "Ordenar", + "Categories": "categorías", + "Visible": "Visible", + "Read only": "Solo lectura", + "Easy reading": "Lectura fácil", + "Hidden": "Oculto", + "Hidden(reserved value)": "Oculto(valor reservado)", + "Not required": "No necesario", + "Value": "Valor", + "Disabled": "Desactivado", + "Enabled": "Activado", + "On": "Encendida", + "Off": "Apagada", + "Empty": "Vacío", + "Linkage rule": "Regla de enlace", + "Linkage rules": "Regla de enlaces", + "Condition": "Condición", + "Properties": "Propiedades", + "Add linkage rule": "Añadir Regla de enlace", + "Add property": "Añadir propiedad", + "Category name": "Nombre de Categoría", + "Roles & Permissions": "Roles & permisos", + "Edit profile": "Editar perfil", + "Change password": "Cambiar contraseña", + "Old password": "Contraseña antigua", + "New password": "Contraseña nueva", + "Switch role": "Cambiar role", + "Super admin": "Super admin", + "Language": "Idioma", + "Allow sign up": "Permitir el registro", + "Enable SMS authentication": "Activar la autenticación por SMS", + "Sign out": "Cerrar sesión", + "Cancel": "Cancelar", + "Submit": "Enviar", + "Close": "Cerrar", + "Set the data scope": "Establecer el ámbito de los datos", + "Data blocks": "Bloques de datos", + "Filter blocks": "Bloques de filtro", + "Table": "Tabla", + "Table OID(Inheritance)": "Tabla OID(Herencia)", + "Form": "Formulario", + "Collapse": "Colapsar", + "Select data source": "Seleccionar fuente de datos", + "Calendar": "Calendario", + "Delete events": "Borrar eventos", + "This event": "Este evento", + "This and following events": "Este y los siguientes eventos", + "All events": "Todos los eventos", + "Delete this event?": "¿Borrar este evento?", + "Delete Event": "Borrar evento", + "Kanban": "Kanban", + "Gantt": "Gantt", + "Create gantt block": "Crear bloque Gantt", + "Progress field": "Campo de progreso", + "Time scale": "Escala de tiempo", + "Hour": "Hora", + "Quarter of day": "Cuarto de día", + "Half of day": "Medio día", + "Year": "Año", + "QuarterYear": "Cuarto de año", + "Select grouping field": "Seleccionar campo de agrupación", + "Media": "Medios", + "Markdown": "Markdown", + "Wysiwyg": "Wysiwyg", + "Chart blocks": "Bloques de gráficos", + "Column chart": "Gráfico de columnas", + "Bar chart": "Gráfico de barras", + "Line chart": "Gráfico lineal", + "Pie chart": "Gráfico circular", + "Area chart": "Gráfico de áreas", + "Other chart": "Otro gráfico", + "Other blocks": "Otros Bloques", + "In configuration": "En configuración", + "Chart title": "Título del gráfico", + "Chart type": "Tipo del gráfico", + "Chart config": "Configuración del gráfico", + "Templates": "Plantillas", + "Select template": "Seleccione plantilla", + "Action logs": "Acción logs", + "Create template": "Crear plantilla", + "Edit markdown": "Editar markdown", + "Add block": "Añadir bloque", + "Add new": "Añadir nuevo", + "Add record": "Añadir registro", + "Add child": "Añadir hijo", + "Collapse all": "Contraer todo", + "Expand all": "Expandir todo", + "Expand/Collapse": "Expandir/Contraer", + "Default collapse": "Contraer por defecto", + "Tree table": "Tabla de árbol", + "Custom field display name": "Personalizar nombre para mostrar campo", + "Display fields": "Mostrar campos de colección", + "Edit record": "Editar registro", + "Delete menu item": "Borrar elemento de menú", + "Add page": "Añadir página", + "Add group": "Añadir grupo", + "Add link": "Añadir enlace", + "Insert above": "Insertar arriba", + "Insert below": "Insertar debajo", + "Save": "Guardar", + "Delete block": "Eliminar bloque", + "Are you sure you want to delete it?": "¿Seguro que quieres borrarlo?", + "This is a demo text, **supports Markdown syntax**.": "Este es un texto de demostración, **soporta sintaxis Markdown**", + "Filter": "Filtro", + "Connect data blocks": "Conectar bloques de datos", + "Action type": "Tipo de acción", + "Actions": "Acciones", + "Insert": "Insertar", + "Update": "Actualizar", + "View": "Ver", + "View record": "Ver registro", + "Refresh": "Actualizar", + "Data changes": "Modificar datos", + "Field name": "Nombre de campo", + "Before change": "Antes del cambio", + "After change": "Después del cambio", + "Delete record": "Eliminar registro", + "Create collection": "Crear colección", + "Collection display name": "Nombre para mostrar colección", + "Collection name": "Nombre de la colección", + "Inherits": "Hereda", + "Generate ID field automatically": "Generar campo ID automáticamente", + "Store the creation user of each record": "Almacenar el usuario de creación de cada registro", + "Store the last update user of each record": "Almacenar el usuario de última actualización de cada registro", + "Store the creation time of each record": "Almacenar la hora de creación de cada registro", + "Store the last update time of each record": "Almacenar la hora de última actualización de cada registro", + "More options": "Más opciones", + "Records can be sorted": "Los registros se pueden ordenar", + "Calendar collection": "Colección de calendarios", + "General collection": "Colección general", + "Connect to database view": "Conectarse a la vista de la base de datos", + "Source collections": "Colecciones de fuente", + "Field source": "Fuente de campo", + "Preview": "Vista previa", + "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "Generado aleatoriamente y modificable. Acepta letras, números y guiones bajos, debe empezar por una letra", + "Storage type": "Tipo de almacenamiento", + "Edit": "Editar", + "Edit collection": "Editar colección", + "Configure fields": "Configurar campos", + "Configure columns": "Configurar columnas", + "Edit field": "Editar campo", + "Override": "Anular", + "Override field": "Anular campo", + "Configure fields of {{title}}": "Configurar campos de {{title}}", + "Association fields filter": "Filtro de campos de asociación", + "PK & FK fields": "Campos PK y FK", + "Association fields": "Campos de asociación", + "Optional fields": "Campos opcionales", + "System fields": "Campos de sistema", + "General fields": "Campos generales", + "Parent collection fields": "Campos de la colección de padres", + "Basic": "Básico", + "Single line text": "Texto de una línea", + "Long text": "Texto largo", + "Phone": "Teléfono", + "Email": "Correo electrónico", + "Number": "Número", + "Integer": "Entero", + "Percent": "Porcentaje", + "Password": "Contraseña", + "Advanced type": "Avanzado", + "Formula": "Fórmula", + "Formula description": "Calcular un valor en cada registro basándose en otros campos del mismo registro", + "Choices": "Opciones", + "Checkbox": "Casilla de verificación", + "Single select": "Selección simple", + "Multiple select": "Selección múltiple", + "Radio group": "Grupo de radio", + "Checkbox group": "Grupo de checkbox", + "China region": "Región de China", + "Attachment": "Adjunto", + "Date & Time": "Fecha y hora", + "Datetime": "Datetime", + "Relation": "Relación", + "Link to": "Enlace a", + "Link to description": "Se utiliza para crear relaciones de colecciones de forma rápida y compatible con los escenarios más comunes. Adecuado para uso de no desarrolladores. Cuando está presente como campo, es una selección desplegable utilizada para seleccionar registros de la colección de destino. Una vez creado, generará simultáneamente los campos asociados de la colección actual en la colección de destino", + "Sub-table": "Subtabla", + "System info": "Información del sistema", + "Created at": "Creado el", + "Last updated at": "Última actualización en", + "Created by": "Creado por", + "Last updated by": "Última actualización por", + "Add field": "Añadir campo", + "Field display name": "Mostrar nombre de campo", + "Field type": "Tipo de campo", + "Field interface": "Interfaz de campo", + "Date format": "Formato de fecha", + "Year/Month/Day": "Año/Mes/Día", + "Year-Month-Day": "Año-Mes-Día", + "Day/Month/Year": "Día/Mes/Año", + "Show time": "Mostrar hora", + "Time format": "Formato hora", + "12 hour": "12 horas", + "24 hour": "24 horas", + "Relationship type": "Tipo de relación", + "Inverse relationship type": "Tipo de relación inversa", + "Source collection": "Colección de fuente", + "Source key": "Clave de origen", + "Target collection": "Colección de destino", + "Through collection": "Colección de paso", + "Target key": "Clave de destino", + "Foreign key": "Clave externa", + "One to one": "Uno a uno", + "One to many": "Uno a varios", + "Many to one": "Varios a uno ", + "Many to many": "Varios a varios ", + "Foreign key 1": "Clave externa 1", + "Foreign key 2": "Clave externa 2", + "One to one description": "Se utiliza para crear relaciones uno a uno. Por ejemplo, un usuario tiene un perfil", + "One to many description": "Se utiliza para crear una relación de uno a varios. Por ejemplo, un país tendrá varias ciudades y una ciudad sólo puede estar en un país. Cuando está presente como campo, es una subtabla que muestra los registros de la colección asociada. Cuando se crea, se genera automáticamente un campo Varios a uno en la colección asociada", + "Many to one description": "Se utiliza para crear relaciones de uno a varios. Por ejemplo, una ciudad puede pertenecer a un solo país y un país puede tener muchas ciudades. Cuando está presente como campo, es una selección desplegable que se utiliza para seleccionar un registro de la colección asociada. Una vez creado, se genera automáticamente un campo de uno a varios en la colección asociada", + "Many to many description": "Se utiliza para crear relaciones de uno a varios. Por ejemplo, un alumno tendrá varios profesores y un profesor tendrá varios alumnos. Cuando está presente como campo, es una selección desplegable que se utiliza para seleccionar registros de la colección asociada.", + "Generated automatically if left blank": "Se genera automáticamente si se deja en blanco", + "Display association fields": "Mostrar campos de asociación", + "Display field title": "Mostrar título de campo", + "Field component": "Componente del campo", + "Subtable": "Subtabla", + "Sub-form": "Subformulario", + "Record picker": "Selector de registros", + "Toggles the subfield mode": "Alterna el modo de subcampo", + "Selector mode": "Modo selector", + "Subtable mode": "Modo subtabla", + "Subform mode": "Modo subformulario", + "Edit block title": "Editar título de bloque", + "Block title": "Título del bloque", + "Pattern": "Patrón", + "Operator": "Operador", + "Editable": "Editable", + "Readonly": "Sólo lectura", + "Easy-reading": "Lectura fácil", + "Add filter": "Añadir filtro", + "Add filter group": "Añadir grupo de filtros", + "Comparision": "Comparación", + "is": "es", + "is not": "no es", + "is variable": "es variable", + "contains": "contiene", + "does not contain": "no contiene", + "starts with": "empieza por", + "not starts with": "no empieza por", + "ends with": "termina con", + "not ends with": "no termina con", + "is empty": "está vacío", + "is not empty": "no está vacío", + "Edit chart": "Editar gráfico", + "Add text": "Añadir texto", + "Filterable fields": "Campos filtrables", + "Edit button": "Editar botón", + "Hide": "Ocultar", + "Enable actions": "Activar acciones", + "Import": "Importar", + "Export": "Exportar", + "Customize": "Personalizar", + "Custom": "Personalizada", + "Function": "Función", + "Popup form": "Formulario emergente", + "Flexible popup": "Ventana emergente flexible", + "Configure actions": "Configurar acciones", + "Display order number": "Mostrar número de orden", + "Enable drag and drop sorting": "Activar la ordenación mediante arrastrar y soltar", + "Triggered when the row is clicked": "Activar al hacer clic en la fila", + "Add tab": "Añadir pestaña", + "Disable tabs": "Desactivar pestañas", + "Details": "Detalles", + "Edit tab": "Editar pestaña", + "Relationship blocks": "Bloques de relación", + "Select record": "Seleccionar registro", + "Display name": "Nombre para mostrar", + "Select icon": "Seleccionar icono", + "Custom column name": "Nombre de columna personalizado", + "Edit description": "Editar descripción", + "Required": "Requerido", + "Unique": "Único", + "Label field": "Campo de etiqueta", + "Default is the ID field": "Por defecto es el campo ID", + "Set default sorting rules": "Establecer reglas de ordenación por defecto", + "Set validation rules": "Establecer reglas de validación", + "Max length": "Longitud máxima", + "Min length": "Longitud mínima", + "Maximum": "Máximo", + "Minimum": "Mínimo", + "Max length must greater than min length": "Longitud máxima debe ser mayor que longitud mínima", + "Min length must less than max length": "Longitud mínima debe ser menor que longitud máxima", + "Maximum must greater than minimum": "Máximo debe ser mayor que mínimo", + "Minimum must less than maximum": "Mínimo debe ser menor que máximo", + "Validation rule": "Regla de validación", + "Add validation rule": "Añadir regla de validación", + "Format": "Formato", + "Regular expression": "Patrón", + "Error message": "Mensaje de error", + "Length": "Longitud", + "The field value cannot be greater than ": "El valor del campo no puede ser mayor que ", + "The field value cannot be less than ": "El valor del campo no puede ser menor que ", + "The field value is not an integer number": "El valor del campo no es un número entero", + "Set default value": "Establecer valor por defecto", + "Default value": "Valor por defecto", + "is before": "está antes de", + "is after": "está después de", + "is on or after": "está encendido o después", + "is on or before": "está encendido o antes", + "is between": "está entre", + "Upload": "Subir", + "Select level": "Seleccionar nivel", + "Province": "Provincia", + "City": "Ciudad", + "Area": "Zona", + "Street": "Calle", + "Village": "Pueblo", + "Must select to the last level": "Debe seleccionar hasta el último nivel", + "Move {{title}} to": "Mover {{title}} a", + "Target position": "Posición de destino", + "After": "Después", + "Before": "Antes", + "Add {{type}} before \"{{title}}\"": "Añadir {{type}} antes de \"{{title}}\"", + "Add {{type}} after \"{{title}}\"": "Añadir {{type}} después de \"{{title}}\"", + "Add {{type}} in \"{{title}}\"": "Añadir {{type}} en \"{{title}}\"", + "Original name": "Nombre original", + "Custom name": "Nombre personalizado", + "Custom Title": "Título personalizado", + "Options": "Opciones", + "Option value": "Valor de opción", + "Option label": "Etiqueta de opción", + "Color": "Color", + "Add option": "Añadir opción", + "Related collection": "Colección relacionada", + "Allow linking to multiple records": "Permitir enlazar múltiples registros", + "Allow uploading multiple files": "Permitir la carga de varios archivos", + "Configure calendar": "Configurar calendario", + "Title field": "Campo de título", + "Custom title": "Título personalizado", + "Daily": "Diario", + "Weekly": "Semanal", + "Monthly": "Mensual", + "Yearly": "Anual", + "Repeats": "se repite", + "Show lunar": "Mostrar lunar", + "Start date field": "Campo de fecha de inicio", + "End date field": "Campo de fecha de final", + "Navigate": "Navegar", + "Title": "Título", + "Description": "Descripción", + "Select view": "Seleccionar vista", + "Reset": "Restablecer", + "Importable fields": "Campos importables", + "Exportable fields": "Campos exportables", + "Saved successfully": "Guardado correctamente", + "Nickname": "Apodo", + "Sign in": "Iniciar sesión", + "Sign in via account": "Iniciar sesión a través de la cuenta", + "Sign in via phone": "Iniciar sesión a través del teléfono", + "Create an account": "Crear una cuenta", + "Sign up": "Registrarse", + "Confirm password": "Confirmar contraseña", + "Log in with an existing account": "Iniciar sesión con una cuenta existente", + "Signed up successfully. It will jump to the login page.": "Registrarse correctamente. Saltará a la página de inicio de sesión", + "Password mismatch": "Contraseña incorrecta", + "Users": "Usuarios", + "Verification code": "Código de verificación", + "Send code": "Enviar código", + "Retry after {{count}} seconds": "Reintentar después de {{count}} segundos", + "Roles": "Roles", + "Add role": "Añadir rol", + "Role name": "Nombre de rol", + "Configure": "Configurar", + "Configure permissions": "Configurar permisos", + "Edit role": "Editar rol", + "Action permissions": "Permisos de acción", + "Menu permissions": "Permisos de menú", + "Menu item name": "Nombre del elemento de menú", + "Allow access": "Permitir acceso", + "Action name": "Nombre de la acción", + "Allow action": "Permitir acción", + "Action scope": "Alcance de la acción", + "Operate on new data": "Operar con datos nuevos", + "Operate on existing data": "Operar con datos existentes", + "Yes": "Sí", + "No": "No", + "Red": "Rojo", + "Magenta": "Magenta", + "Volcano": "Volcán", + "Orange": "Naranja", + "Gold": "Oro", + "Lime": "Lima", + "Green": "Verde", + "Cyan": "Cian", + "Blue": "Azul", + "Geek blue": "Azul geek", + "Purple": "Púrpura", + "Default": "Por defecto", + "Add card": "Añandir tarjeta", + "edit title": "Editar título", + "Turn pages": "Pasar páginas", + "Others": "Otros", + "Save as template": "Guardar como plantilla", + "Save as block template": "Guardar como plantilla de bloque", + "Block templates": "Bloquear plantillas", + "Convert reference to duplicate": "Convertir referencia a duplicado", + "Template name": "Nombre de plantilla", + "Block type": "Tipo de bloque", + "No blocks to connect": "No hay bloques que conectar", + "Action column": "Columna de acción", + "Records per page": "Registros por página", + "(Fields only)": "(Sólo campos)", + "Button title": "Título del botón", + "Button icon": "Icono del botón", + "Submitted successfully": "Enviado con éxito", + "Operation succeeded": "Operación correcta", + "Operation failed": "Operación fallida", + "Open mode": "Modo de apertura", + "Popup size": "Tamaño de la ventana emergente", + "Small": "Pequeño", + "Middle": "Medio", + "Large": "Grande", + "Menu item title": "Título del elemento del menú", + "Menu item icon": "Icono del elemento del menú", + "Target": "Objetivo", + "Position": "Posición", + "Insert before": "Insertar antes", + "Insert after": "Insertar después", + "UI Editor": "Editor de IU", + "ASC": "ASC", + "DESC": "DESC", + "Add sort field": "Añadir campo de ordenación", + "ID": "ID", + "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Identificador para uso del programa. Admite letras, números y guiones bajos, debe empezar por una letra", + "Drawer": "Cajón", + "Dialog": "Diálogo", + "Delete action": "Acción de eliminar", + "Custom column title": "Título personalizado de la columna", + "Original title: ": "Título original ", + "Delete table column": "Eliminar columna de tabla", + "Skip required validation": "Omitir validación obligatoria", + "Form values": "Valores del formulario", + "Fields values": "Valores de los campos", + "When submitting the following fields, the saved values are": "Al enviar los siguientes campos, los valores guardados son", + "After successful submission": "Tras el envío correcto", + "Then": "Después", + "Stay on current page": "Permanecer en la página actual", + "Redirect to": "Redirigir a", + "Save action": "Guardar acción", + "Exists": "Existe", + "Filename": "Nombre de archivo", + "Add condition": "Añadir condición", + "Add condition group": "Añadir grupo de condiciones", + "exists": "existe", + "not exists": "no existe", + "is current logged-in user": "es el usuario conectado actual", + "is not current logged-in user": "no es el usuario actual", + "=": "=", + "≠": "≠", + ">": ">", + "≥": "≥", + "<": "<", + "≤": "≤", + "Role UID": "Rol UID", + "Precision": "Precisión", + "Formula mode": "Modo de fórmula", + "Expression": "Expresión", + "Input +, -, *, /, ( ) to calculate, input @ to open field variables.": "Introduzca +, -, *, /, ( ) para calcular, introduzca @ para abrir variables de campo", + "Formula error.": "Error de fórmula", + "Accept": "Aceptar", + "Rich Text": "Texto enriquecido", + "Junction collection": "Colección de unión", + "Leave it blank, unless you need a custom intermediate table": "Déjelo en blanco, a menos que necesite una tabla intermedia personalizada", + "Fields": "Campos", + "Edit field title": "Cambiar el título del campo ", + "Field title": "Título del campo", + "Original field title: ": "Título original del campo ", + "Edit tooltip": "Editar información sobre herramienta", + "Delete field": "Borrar campo", + "Select collection": "Seleccionar colección", + "Blank block": "Bloque en blanco", + "Duplicate template": "Duplicar plantilla", + "Reference template": "Plantilla de referencia", + "Create calendar block": "Crear bloque de calendario", + "Create kanban block": "Crear bloque kanban", + "Grouping field": "Campo de agrupación", + "Single select and radio fields can be used as the grouping field": "Los campos de selección únicos y radio se pueden utilizar como campo de agrupación", + "Tab name": "Nombre de pestaña", + "Current record blocks": "Bloques de registro actuales", + "Popup message": "Mensaje emergente", + "Delete role": "Eliminar función", + "Role display name": "Nombre de visualización del rol", + "Default role": "Rol por defecto", + "All collections use general action permissions by default; permission configured individually will override the default one.": "Todas las colecciones utilizan permisos de acción generales por defecto; el permiso configurado individualmente anulará el predeterminado", + "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Permite configurar todo el sistema, incluyendo UI, colecciones, permisos, etc.", + "New menu items are allowed to be accessed by default.": "Permite acceder a nuevos elementos de menú por defecto", + "Global permissions": "Permisos globales", + "General permissions": "Permisos generales", + "Global action permissions": "Permisos de acción globales", + "General action permissions": "Permisos de acción generales", + "Plugin settings permissions": "Permisos de configuración de plugins", + "Allow to desgin pages": "Permitir diseñar páginas", + "Allow to manage plugins": "Permitir gestionar plugins", + "Allow to configure plugins": "Permitir configurar plugins", + "Allows to configure interface": "Permite configurar la interfaz", + "Allows to install, activate, disable plugins": "Permitir instalar, activar, desactivar plugins", + "Allows to configure plugins": "Permite configurar plugins", + "Action display name": "Mostrar nombre de acción", + "Allow": "Permitir", + "Data scope": "Ámbito de datos", + "Action on new records": "Acción sobre nuevos registros", + "Action on existing records": "Acción sobre registros existentes", + "All records": "Todos los registros", + "Own records": "Registros propios", + "Permission policy": "Política de permisos", + "Individual": "Individual", + "General": "General", + "Accessible": "Accesible", + "Configure permission": "Configurar permiso", + "Action permission": "Permiso de acción", + "Field permission": "Permiso de ámbito", + "Scope name": "Nombre de ámbito", + "File storages": "Almacenamiento de archivos", + "Storage display name": "Mostrar nombre de almacenamiento", + "Storage name": "Nombre de almacenamiento", + "Default storage": "Almacenamiento por defecto", + "Add storage": "Añadir almacenamiento", + "Edit storage": "Editar almacenamiento", + "Storage base URL": "URL base de almacenamiento", + "Destination": "Destino", + "Use the built-in static file server": "Utilizar el servidor de archivos estático incorporado", + "Local storage": "Almacenamiento local", + "Aliyun OSS": "Aliyun OSS", + "Amazon S3": "Amazon S3", + "Tencent COS": "Tencent COS", + "Region": "Región", + "Bucket": "Bucket", + "Path": "Ruta", + "Unsaved changes": "Cambios no guardados", + "Are you sure you don't want to save?": "¿Seguro que no quieres guardar?", + "Dragging": "Arrastrando", + "Popup": "Popup", + "Trigger workflow": "Desencadenar flujo de trabajo", + "Request API": "Petición API", + "Assign field values": "Asignar valores de campo", + "Constant value": "Valor constante", + "Dynamic value": "Valor dinámico", + "Current user": "Usuario actual", + "Current record": "Registro actual", + "Parent record": "Registro padre", + "Current time": "Hora actual", + "System variables": "Variables del sistema", + "Date variables": "Variables de fecha", + "Popup close method": "Método de cierre del popup", + "Automatic close": "Cierre automático", + "Manually close": "Cierre manual", + "After successful update": "Tras actualización correcta", + "Save record": "Guardar registro", + "Updated successfully": "Actualizado correctamente", + "After successful save": "Tras guardar correctamente", + "After clicking the custom button, the following field values will be assigned according to the following form.": "Después de hacer clic en el botón personalizado, los siguientes valores de campo se asignarán de acuerdo con el siguiente formulario", + "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "Después de hacer clic en el botón personalizado, los siguientes campos del registro actual se guardarán de acuerdo con el siguiente formulario", + "Button background color": "Color de fondo del botón", + "Highlight": "Resaltar", + "Danger red": "Peligro rojo", + "Custom request": "Petición personalizada", + "Request settings": "Configuración de la petición", + "Request URL": "URL de petición", + "Request method": "Método de petición", + "Request query parameters": "Parámetros de consulta de la petición", + "Request headers": "Cabeceras de la petición", + "Request body": "Cuerpo de la petición", + "Request success": "Petición correcta", + "Invalid JSON format": "Formato JSON no válido", + "After successful request": "Tras petición correcta", + "Add exportable field": "Añadir campo exportable", + "Audit logs": "Registros de auditoría", + "Record ID": "ID de registro", + "User": "Usuario", + "Field": "Campo", + "Select": "Seleccionar", + "Select field": "Seleccionar campo", + "Field value changes": "Cambios en el valor del campo", + "One to one (has one)": "Uno a uno (tiene uno)", + "One to one (belongs to)": "Uno a uno (pertenece a)", + "Use the same time zone (GMT) for all users": "Utilizar la misma zona horaria (GMT) para todos los usuarios", + "Province/city/area name": "Nombre de provincia/ciudad/zona", + "Enabled languages": "Idiomas activados", + "View all plugins": "Ver todos los plugins", + "Print": "Imprimir", + "Done": "Listo", + "Sign up successfully, and automatically jump to the sign in page": "Registrarse correctamente y saltar automáticamente a la página de inicio de sesión", + "File manager": "Gestor de archivos ", + "ACL": "ACL", + "Collection manager": "Gestor de colecciones", + "Plugin manager": "Gestor de plugins", + "Local": "Local", + "Built-in": "Integrado", + "Marketplace": "Mercado", + "New plugin": "Nuevo plugin", + "Upgrade": "Actualizar", + "Dependencies check failed": "Error en la comprobación de dependencias", + "More details": "Más detalles", + "Upload new version": "Subir nueva versión", + "Official plugin": "Plugin oficial", + "Version": "Versión", + "Npm package": "Paquete Npm", + "Upload plugin": "Subir plugin", + "Npm package name": "Nombre del paquete Npm", + "Add type": "Añadir tipo", + "Changelog": "Registro de cambios", + "Dependencies check": "Comprobación de dependencias", + "Update plugin": "Actualizar plugin", + "Installing": "Instalando", + "The deletion was successful.": "Eliminación correcta", + "Plugin Zip File": "Archivo Zip del plugin", + "Compressed file url": "URL del archivo comprimido", + "Last updated": "Última actualización", + "PackageName": "Nombre del paquete", + "DisplayName": "Nombre para mostrar", + "Readme": "Leerme", + "Dependencies compatibility check": "Comprobación de compatibilidad de dependencias", + "If the compatibility check fails, you should change the dependent version to meet the version requirements.": "Si la comprobación de compatibilidad falla, debe cambiar la versión dependiente para cumplir con los requisitos de versión.", + "Version range": "Rango de versión", + "Plugin's version": "Versión del plugin", + "Result": "Resultado", + "No CHANGELOG.md file": "No hay archivo CHANGELOG.md", + "No README.md file": "No hay archivo README.md", + "Homepage": "Página de inicio", + "Drag and drop the file here or click to upload, file size should not exceed 30M": "Arrastra y suelta el archivo aquí o haz clic para subirlo, el tamaño del archivo no debe superar los 30M", + "Dependencies check failed, can't enable.": "Error en la comprobación de dependencias, no se puede habilitar.", + "Plugin starting...": "Plugin iniciando...", + "Plugin stopping...": "Plugin deteniendo...", + "Are you sure to delete this plugin?": "¿Estás seguro de eliminar este plugin?", + "re-download file": "volver a descargar el archivo", + "Not enabled": "No habilitado", + "Search plugin": "Buscar plugin", + "Author": "Autor", + "Plugin loading failed. Please check the server logs.": "Error al cargar el plugin. Compruebe los registros del servidor.", + "Coming soon...": "Próximamente...", + "All plugin settings": "Configuración de todos los plugins", + "Bookmark": "Marcador", + "Manage all settings": "Gestionar todos los ajustes", + "Create inverse field in the target collection": "Crear campo inverso en la colección de destino", + "Inverse field name": "Nombre del campo inverso", + "Inverse field display name": "Nombre mostrado del campo inverso", + "Bulk update": "Actualización en masa", + "After successful bulk update": "Tras una actualización en masa correcta", + "Bulk edit": "Edición en masa", + "Data will be updated": "Se actualizarán los datos", + "Selected": "Seleccionado", + "All": "Todos", + "Update selected data?": "¿Actualizar los datos seleccionados?", + "Update all data?": "¿Actualizar todos los datos?", + "Remains the same": "Permanece igual", + "Changed to": "Cambiado a", + "Clear": "Borrar", + "Add attach": "Añadir adjuntar", + "Please select the records to be updated": "Seleccione los registros que desea actualizar", + "Selector": "Selector", + "Inner": "Interior", + "Search and select collection": "Buscar y seleccionar colección", + "Please fill in the iframe URL": "Por favor, rellene la URL del iframe", + "Fix block": "Fijar bloque", + "Plugin name": "Nombre del plugin", + "Plugin tab name": "Nombre de la pestaña del plugin", + "AutoGenId": "Campo ID autogenerado", + "CreatedBy": "Registro del usuario creado de una fila", + "UpdatedBy": "Registro del último usuario actualizado de una fila", + "CreatedAt": "Registro de la hora de creación de una fila", + "UpdatedAt": "Registro del último usuario actualizado de una fila", + "Column width": "Ancho de columna", + "Sortable": "Clasificable", + "Enable link": "Activar enlace", + "Data template": "Plantilla de datos", + "Not found": "No encontrado", + "Add": "Añadir" +} diff --git a/packages/core/client/src/locale/es_ES.ts b/packages/core/client/src/locale/es_ES.ts deleted file mode 100644 index dd2faf650..000000000 --- a/packages/core/client/src/locale/es_ES.ts +++ /dev/null @@ -1,734 +0,0 @@ -export default { - "Display <1><0>10<1>20<2>50<3>100 items per page": "Mostrar <1><0>10<1>20<2>50<3>100 elementos por página", - "Meet <1><0>All<1>Any conditions in the group": "Cumplir <1><0>Todas<1>Cualquier condiciones del grupo", - "Open in<1><0>Modal<1>Drawer<2>Window": "Abrir en<1><0>Modal<1>Cajón<2>Ventana", - "{{count}} filter items": "{{count}} elementos de filtro", - "{{count}} more items": "{{count}} más elementos", - "Total {{count}} items": "Total {{count}} elementos", - "Today": "Hoy", - "Yesterday": "Ayer", - "Tomorrow": "Mañana", - "Month": "Mes", - "Week": "Semana", - "This week": "Esta semana", - "This month": "Este mes", - "This year": "Este año", - "Next year": "Próximo año", - "Last week": "Semana pasada", - "Next week": "Próxima semana", - "Last month": "Mes pasado", - "Next month": "Próximo mes", - "Last quarter": "Trimestre pasado", - "This quarter": "Este trimestre", - "Next quarter": "Próximo trimestre", - "Last year": "Año pasado", - "Last 7 days": "los últimos 7 días", - "Last 30 days": "los últimos 30 días", - "Last 90 days": "los últimos 90 días", - "Next 7 days": "los próximos 7 días", - "Next 30 days": "los próximos 30 días", - "Next 90 days": "los próximos 90 días", - "Work week": "Semana de trabajo", - "Day": "Día", - "Agenda": "Agenda", - "Date": "Fecha", - "Time": "Hora", - "Event": "Evento", - "None": "Ninguno", - "Unconnected": "Sin conexión", - "System settings": "Ajustes del sistema", - "System title": "Título del sistema", - "Logo": "Logo", - "Add menu item": "Añadir elemento al menú", - "Page": "Página", - "Name": "Nombre", - "Icon": "Icono", - "Group": "Grupo", - "Link": "Enlace", - "Save conditions": "Guardar condiciones", - "Edit menu item": "Editar elemento del menú", - "Move to": "Mover a", - "Insert left": "Insertar a la izquierda", - "Insert right": "Insertar a la derecha", - "Insert inner": "Insertar al interior", - "Delete": "Borrar", - "UI editor": "IU editor", - "Collection": "Colección", - "Collections & Fields": "Colección & Campos", - "All collections": "Todas las colecciones", - "Add category": "Añadir categoría", - "Enable child collections": "Activar las colecciones de niños", - "Allow adding records to the current collection": "Permitir añadir registros a la colección actual", - "Delete category": "Borrar categoría", - "Edit category": "Editar categoría", - "Collection category": "Categoría de colección", - "Collection template": "Plantilla de colección", - "Sort": "Ordenar", - "Categories": "categorías", - "Visible": "Visible", - "Read only": "Solo lectura", - "Easy reading": "Lectura fácil", - "Hidden": "Oculto", - "Hidden(reserved value)": "Oculto(valor reservado)", - "Not required": "No necesario", - "Value": "Valor", - "Disabled": "Desactivado", - "Enabled": "Activado", - "On": "Encendida", - "Off": "Apagada", - "Empty": "Vacío", - "Linkage rule": "Regla de enlace", - "Linkage rules": "Regla de enlaces", - "Condition": "Condición", - "Properties": "Propiedades", - "Add linkage rule": "Añadir Regla de enlace", - "Add property": "Añadir propiedad", - "Category name": "Nombre de Categoría", - "Roles & Permissions": "Roles & permisos", - "Edit profile": "Editar perfil", - "Change password": "Cambiar contraseña", - "Old password": "Contraseña antigua", - "New password": "Contraseña nueva", - "Switch role": "Cambiar role", - "Super admin": "Super admin", - "Language": "Idioma", - "Allow sign up": "Permitir el registro", - "Enable SMS authentication": "Activar la autenticación por SMS", - "Sign out": "Cerrar sesión", - "Cancel": "Cancelar", - "Submit": "Enviar", - "Close": "Cerrar", - "Set the data scope": "Establecer el ámbito de los datos", - "Data blocks": "Bloques de datos", - "Filter blocks": "Bloques de filtro", - "Table": "Tabla", - "Table OID(Inheritance)": "Tabla OID(Herencia)", - "Form": "Formulario", - "Collapse": "Colapsar", - "Select data source": "Seleccionar fuente de datos", - "Calendar": "Calendario", - "Delete events": "Borrar eventos", - "This event": "Este evento", - "This and following events": "Este y los siguientes eventos", - "All events": "Todos los eventos", - "Delete this event?": "¿Borrar este evento?", - "Delete Event": "Borrar evento", - "Kanban": "Kanban", - "Gantt": "Gantt", - "Create gantt block": "Crear bloque Gantt", - "Progress field": "Campo de progreso", - "Time scale": "Escala de tiempo", - "Hour": "Hora", - "Quarter of day": "Cuarto de día", - "Half of day": "Medio día", - "Year": "Año", - "QuarterYear": "Cuarto de año", - "Select grouping field": "Seleccionar campo de agrupación", - "Media": "Medios", - "Markdown": "Markdown", - "Wysiwyg": "Wysiwyg", - "Chart blocks": "Bloques de gráficos", - "Column chart": "Gráfico de columnas", - "Bar chart": "Gráfico de barras", - "Line chart": "Gráfico lineal", - "Pie chart": "Gráfico circular", - "Area chart": "Gráfico de áreas", - "Other chart": "Otro gráfico", - "Other blocks": "Otros Bloques", - "In configuration": "En configuración", - "Chart title": "Título del gráfico", - "Chart type": "Tipo del gráfico", - "Chart config": "Configuración del gráfico", - "Templates": "Plantillas", - "Select template": "Seleccione plantilla", - "Action logs": "Acción logs", - "Create template": "Crear plantilla", - "Edit markdown": "Editar markdown", - "Add block": "Añadir bloque", - "Add new": "Añadir nuevo", - "Add record": "Añadir registro", - "Add child": "Añadir hijo", - "Collapse all": "Contraer todo", - "Expand all": "Expandir todo", - "Expand/Collapse": "Expandir/Contraer", - "Default collapse": "Contraer por defecto", - "Tree table": "Tabla de árbol", - "Custom field display name": "Personalizar nombre para mostrar campo", - "Display fields": "Mostrar campos de colección", - "Edit record": "Editar registro", - "Delete menu item": "Borrar elemento de menú", - "Add page": "Añadir página", - "Add group": "Añadir grupo", - "Add link": "Añadir enlace", - "Insert above": "Insertar arriba", - "Insert below": "Insertar debajo", - "Save": "Guardar", - "Delete block": "Eliminar bloque", - "Are you sure you want to delete it?": "¿Seguro que quieres borrarlo?", - "This is a demo text, **supports Markdown syntax**.": "Este es un texto de demostración, **soporta sintaxis Markdown**", - "Filter": "Filtro", - "Connect data blocks": "Conectar bloques de datos", - "Action type": "Tipo de acción", - "Actions": "Acciones", - "Insert": "Insertar", - "Update": "Actualizar", - "View": "Ver", - "View record": "Ver registro", - "Refresh": "Actualizar", - "Data changes": "Modificar datos", - "Field name": "Nombre de campo", - "Before change": "Antes del cambio", - "After change": "Después del cambio", - "Delete record": "Eliminar registro", - "Create collection": "Crear colección", - "Collection display name": "Nombre para mostrar colección", - "Collection name": "Nombre de la colección", - "Inherits": "Hereda", - "Generate ID field automatically": "Generar campo ID automáticamente", - "Store the creation user of each record": "Almacenar el usuario de creación de cada registro", - "Store the last update user of each record": "Almacenar el usuario de última actualización de cada registro", - "Store the creation time of each record": "Almacenar la hora de creación de cada registro", - "Store the last update time of each record": "Almacenar la hora de última actualización de cada registro", - "More options": "Más opciones", - "Records can be sorted": "Los registros se pueden ordenar", - "Calendar collection": "Colección de calendarios", - "General collection": "Colección general", - "Connect to database view": "Conectarse a la vista de la base de datos", - "Source collections": "Colecciones de fuente", - "Field source": "Fuente de campo", - "Preview": "Vista previa", - "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "Generado aleatoriamente y modificable. Acepta letras, números y guiones bajos, debe empezar por una letra", - "Storage type": "Tipo de almacenamiento", - "Edit": "Editar", - "Edit collection": "Editar colección", - "Configure fields": "Configurar campos", - "Configure columns": "Configurar columnas", - "Edit field": "Editar campo", - "Override": "Anular", - "Override field": "Anular campo", - "Configure fields of {{title}}": "Configurar campos de {{title}}", - "Association fields filter": "Filtro de campos de asociación", - "PK & FK fields": "Campos PK y FK", - "Association fields": "Campos de asociación", - "Optional fields": "Campos opcionales", - "System fields": "Campos de sistema", - "General fields": "Campos generales", - "Parent collection fields": "Campos de la colección de padres", - "Basic": "Básico", - "Single line text": "Texto de una línea", - "Long text": "Texto largo", - "Phone": "Teléfono", - "Email": "Correo electrónico", - "Number": "Número", - "Integer": "Entero", - "Percent": "Porcentaje", - "Password": "Contraseña", - "Advanced type": "Avanzado", - "Formula": "Fórmula", - "Formula description": "Calcular un valor en cada registro basándose en otros campos del mismo registro", - "Choices": "Opciones", - "Checkbox": "Casilla de verificación", - "Single select": "Selección simple", - "Multiple select": "Selección múltiple", - "Radio group": "Grupo de radio", - "Checkbox group": "Grupo de checkbox", - "China region": "Región de China", - "Attachment": "Adjunto", - "Date & Time": "Fecha y hora", - "Datetime": "Datetime", - "Relation": "Relación", - "Link to": "Enlace a", - "Link to description": "Se utiliza para crear relaciones de colecciones de forma rápida y compatible con los escenarios más comunes. Adecuado para uso de no desarrolladores. Cuando está presente como campo, es una selección desplegable utilizada para seleccionar registros de la colección de destino. Una vez creado, generará simultáneamente los campos asociados de la colección actual en la colección de destino", - "Sub-table": "Subtabla", - "System info": "Información del sistema", - "Created at": "Creado el", - "Last updated at": "Última actualización en", - "Created by": "Creado por", - "Last updated by": "Última actualización por", - "Add field": "Añadir campo", - "Field display name": "Mostrar nombre de campo", - "Field type": "Tipo de campo", - "Field interface": "Interfaz de campo", - "Date format": "Formato de fecha", - "Year/Month/Day": "Año/Mes/Día", - "Year-Month-Day": "Año-Mes-Día", - "Day/Month/Year": "Día/Mes/Año", - "Show time": "Mostrar hora", - "Time format": "Formato hora", - "12 hour": "12 horas", - "24 hour": "24 horas", - "Relationship type": "Tipo de relación", - "Inverse relationship type": "Tipo de relación inversa", - "Source collection": "Colección de fuente", - "Source key": "Clave de origen", - "Target collection": "Colección de destino", - "Through collection": "Colección de paso", - "Target key": "Clave de destino", - "Foreign key": "Clave externa", - "One to one": "Uno a uno", - "One to many": "Uno a varios", - "Many to one": "Varios a uno ", - "Many to many": "Varios a varios ", - "Foreign key 1": "Clave externa 1", - "Foreign key 2": "Clave externa 2", - "One to one description": "Se utiliza para crear relaciones uno a uno. Por ejemplo, un usuario tiene un perfil", - "One to many description": "Se utiliza para crear una relación de uno a varios. Por ejemplo, un país tendrá varias ciudades y una ciudad sólo puede estar en un país. Cuando está presente como campo, es una subtabla que muestra los registros de la colección asociada. Cuando se crea, se genera automáticamente un campo Varios a uno en la colección asociada", - "Many to one description": "Se utiliza para crear relaciones de uno a varios. Por ejemplo, una ciudad puede pertenecer a un solo país y un país puede tener muchas ciudades. Cuando está presente como campo, es una selección desplegable que se utiliza para seleccionar un registro de la colección asociada. Una vez creado, se genera automáticamente un campo de uno a varios en la colección asociada", - "Many to many description": "Se utiliza para crear relaciones de uno a varios. Por ejemplo, un alumno tendrá varios profesores y un profesor tendrá varios alumnos. Cuando está presente como campo, es una selección desplegable que se utiliza para seleccionar registros de la colección asociada.", - "Generated automatically if left blank": "Se genera automáticamente si se deja en blanco", - "Display association fields": "Mostrar campos de asociación", - "Display field title": "Mostrar título de campo", - "Field component": "Componente del campo", - "Subtable": "Subtabla", - "Sub-form": "Subformulario", - "Record picker": "Selector de registros", - "Toggles the subfield mode": "Alterna el modo de subcampo", - "Selector mode": "Modo selector", - "Subtable mode": "Modo subtabla", - "Subform mode": "Modo subformulario", - "Edit block title": "Editar título de bloque", - "Block title": "Título del bloque", - "Pattern": "Patrón", - "Operator": "Operador", - "Editable": "Editable", - "Readonly": "Sólo lectura", - "Easy-reading": "Lectura fácil", - "Add filter": "Añadir filtro", - "Add filter group": "Añadir grupo de filtros", - "Comparision": "Comparación", - "is": "es", - "is not": "no es", - "is variable": "es variable", - "contains": "contiene", - "does not contain": "no contiene", - "starts with": "empieza por", - "not starts with": "no empieza por", - "ends with": "termina con", - "not ends with": "no termina con", - "is empty": "está vacío", - "is not empty": "no está vacío", - "Edit chart": "Editar gráfico", - "Add text": "Añadir texto", - "Filterable fields": "Campos filtrables", - "Edit button": "Editar botón", - "Hide": "Ocultar", - "Enable actions": "Activar acciones", - "Import": "Importar", - "Export": "Exportar", - "Customize": "Personalizar", - "Custom": "Personalizada", - "Function": "Función", - "Popup form": "Formulario emergente", - "Flexible popup": "Ventana emergente flexible", - "Configure actions": "Configurar acciones", - "Display order number": "Mostrar número de orden", - "Enable drag and drop sorting": "Activar la ordenación mediante arrastrar y soltar", - "Triggered when the row is clicked": "Activar al hacer clic en la fila", - "Add tab": "Añadir pestaña", - "Disable tabs": "Desactivar pestañas", - "Details": "Detalles", - "Edit tab": "Editar pestaña", - "Relationship blocks": "Bloques de relación", - "Select record": "Seleccionar registro", - "Display name": "Nombre para mostrar", - "Select icon": "Seleccionar icono", - "Custom column name": "Nombre de columna personalizado", - "Edit description": "Editar descripción", - "Required": "Requerido", - "Unique": "Único", - "Label field": "Campo de etiqueta", - "Default is the ID field": "Por defecto es el campo ID", - "Set default sorting rules": "Establecer reglas de ordenación por defecto", - "Set validation rules": "Establecer reglas de validación", - "Max length": "Longitud máxima", - "Min length": "Longitud mínima", - "Maximum": "Máximo", - "Minimum": "Mínimo", - "Max length must greater than min length": "Longitud máxima debe ser mayor que longitud mínima", - "Min length must less than max length": "Longitud mínima debe ser menor que longitud máxima", - "Maximum must greater than minimum": "Máximo debe ser mayor que mínimo", - "Minimum must less than maximum": "Mínimo debe ser menor que máximo", - "Validation rule": "Regla de validación", - "Add validation rule": "Añadir regla de validación", - "Format": "Formato", - "Regular expression": "Patrón", - "Error message": "Mensaje de error", - "Length": "Longitud", - "The field value cannot be greater than ": "El valor del campo no puede ser mayor que ", - "The field value cannot be less than ": "El valor del campo no puede ser menor que ", - "The field value is not an integer number": "El valor del campo no es un número entero", - "Set default value": "Establecer valor por defecto", - "Default value": "Valor por defecto", - "is before": "está antes de", - "is after": "está después de", - "is on or after": "está encendido o después", - "is on or before": "está encendido o antes", - "is between": "está entre", - "Upload": "Subir", - "Select level": "Seleccionar nivel", - "Province": "Provincia", - "City": "Ciudad", - "Area": "Zona", - "Street": "Calle", - "Village": "Pueblo", - "Must select to the last level": "Debe seleccionar hasta el último nivel", - "Move {{title}} to": "Mover {{title}} a", - "Target position": "Posición de destino", - "After": "Después", - "Before": "Antes", - "Add {{type}} before \"{{title}}\"": "Añadir {{type}} antes de \"{{title}}\"", - "Add {{type}} after \"{{title}}\"": "Añadir {{type}} después de \"{{title}}\"", - "Add {{type}} in \"{{title}}\"": "Añadir {{type}} en \"{{title}}\"", - "Original name": "Nombre original", - "Custom name": "Nombre personalizado", - "Custom Title": "Título personalizado", - "Options": "Opciones", - "Option value": "Valor de opción", - "Option label": "Etiqueta de opción", - "Color": "Color", - "Add option": "Añadir opción", - "Related collection": "Colección relacionada", - "Allow linking to multiple records": "Permitir enlazar múltiples registros", - "Allow uploading multiple files": "Permitir la carga de varios archivos", - "Configure calendar": "Configurar calendario", - "Title field": "Campo de título", - "Custom title": "Título personalizado", - "Daily": "Diario", - "Weekly": "Semanal", - "Monthly": "Mensual", - "Yearly": "Anual", - "Repeats": "se repite", - "Show lunar": "Mostrar lunar", - "Start date field": "Campo de fecha de inicio", - "End date field": "Campo de fecha de final", - "Navigate": "Navegar", - "Title": "Título", - "Description": "Descripción", - "Select view": "Seleccionar vista", - "Reset": "Restablecer", - "Importable fields": "Campos importables", - "Exportable fields": "Campos exportables", - "Saved successfully": "Guardado correctamente", - "Nickname": "Apodo", - "Sign in": "Iniciar sesión", - "Sign in via account": "Iniciar sesión a través de la cuenta", - "Sign in via phone": "Iniciar sesión a través del teléfono", - "Create an account": "Crear una cuenta", - "Sign up": "Registrarse", - "Confirm password": "Confirmar contraseña", - "Log in with an existing account": "Iniciar sesión con una cuenta existente", - "Signed up successfully. It will jump to the login page.": "Registrarse correctamente. Saltará a la página de inicio de sesión", - "Password mismatch": "Contraseña incorrecta", - "Users": "Usuarios", - "Verification code": "Código de verificación", - "Send code": "Enviar código", - "Retry after {{count}} seconds": "Reintentar después de {{count}} segundos", - "Roles": "Roles", - "Add role": "Añadir rol", - "Role name": "Nombre de rol", - "Configure": "Configurar", - "Configure permissions": "Configurar permisos", - "Edit role": "Editar rol", - "Action permissions": "Permisos de acción", - "Menu permissions": "Permisos de menú", - "Menu item name": "Nombre del elemento de menú", - "Allow access": "Permitir acceso", - "Action name": "Nombre de la acción", - "Allow action": "Permitir acción", - "Action scope": "Alcance de la acción", - "Operate on new data": "Operar con datos nuevos", - "Operate on existing data": "Operar con datos existentes", - "Yes": "Sí", - "No": "No", - "Red": "Rojo", - "Magenta": "Magenta", - "Volcano": "Volcán", - "Orange": "Naranja", - "Gold": "Oro", - "Lime": "Lima", - "Green": "Verde", - "Cyan": "Cian", - "Blue": "Azul", - "Geek blue": "Azul geek", - "Purple": "Púrpura", - "Default": "Por defecto", - "Add card": "Añandir tarjeta", - "edit title": "Editar título", - "Turn pages": "Pasar páginas", - "Others": "Otros", - "Save as template": "Guardar como plantilla", - "Save as block template": "Guardar como plantilla de bloque", - "Block templates": "Bloquear plantillas", - "Convert reference to duplicate": "Convertir referencia a duplicado", - "Template name": "Nombre de plantilla", - "Block type": "Tipo de bloque", - "No blocks to connect": "No hay bloques que conectar", - "Action column": "Columna de acción", - "Records per page": "Registros por página", - "(Fields only)": "(Sólo campos)", - "Button title": "Título del botón", - "Button icon": "Icono del botón", - "Submitted successfully": "Enviado con éxito", - "Operation succeeded": "Operación correcta", - "Operation failed": "Operación fallida", - "Open mode": "Modo de apertura", - "Popup size": "Tamaño de la ventana emergente", - "Small": "Pequeño", - "Middle": "Medio", - "Large": "Grande", - "Menu item title": "Título del elemento del menú", - "Menu item icon": "Icono del elemento del menú", - "Target": "Objetivo", - "Position": "Posición", - "Insert before": "Insertar antes", - "Insert after": "Insertar después", - "UI Editor": "Editor de IU", - "ASC": "ASC", - "DESC": "DESC", - "Add sort field": "Añadir campo de ordenación", - "ID": "ID", - "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Identificador para uso del programa. Admite letras, números y guiones bajos, debe empezar por una letra", - "Drawer": "Cajón", - "Dialog": "Diálogo", - "Delete action": "Acción de eliminar", - "Custom column title": "Título personalizado de la columna", - "Original title: ": "Título original ", - "Delete table column": "Eliminar columna de tabla", - "Skip required validation": "Omitir validación obligatoria", - "Form values": "Valores del formulario", - "Fields values": "Valores de los campos", - "When submitting the following fields, the saved values are": "Al enviar los siguientes campos, los valores guardados son", - "After successful submission": "Tras el envío correcto", - "Then": "Después", - "Stay on current page": "Permanecer en la página actual", - "Redirect to": "Redirigir a", - "Save action": "Guardar acción", - "Exists": "Existe", - "Filename": "Nombre de archivo", - "Add condition": "Añadir condición", - "Add condition group": "Añadir grupo de condiciones", - "exists": "existe", - "not exists": "no existe", - "is current logged-in user": "es el usuario conectado actual", - "is not current logged-in user": "no es el usuario actual", - "=": "=", - "≠": "≠", - ">": ">", - "≥": "≥", - "<": "<", - "≤": "≤", - "Role UID": "Rol UID", - "Precision": "Precisión", - "Formula mode": "Modo de fórmula", - "Expression": "Expresión", - "Input +, -, *, /, ( ) to calculate, input @ to open field variables.": "Introduzca +, -, *, /, ( ) para calcular, introduzca @ para abrir variables de campo", - "Formula error.": "Error de fórmula", - "Accept": "Aceptar", - "Rich Text": "Texto enriquecido", - "Junction collection": "Colección de unión", - "Leave it blank, unless you need a custom intermediate table": "Déjelo en blanco, a menos que necesite una tabla intermedia personalizada", - "Fields": "Campos", - "Edit field title": "Cambiar el título del campo ", - "Field title": "Título del campo", - "Original field title: ": "Título original del campo ", - "Edit tooltip": "Editar información sobre herramienta", - "Delete field": "Borrar campo", - "Select collection": "Seleccionar colección", - "Blank block": "Bloque en blanco", - "Duplicate template": "Duplicar plantilla", - "Reference template": "Plantilla de referencia", - "Create calendar block": "Crear bloque de calendario", - "Create kanban block": "Crear bloque kanban", - "Grouping field": "Campo de agrupación", - "Single select and radio fields can be used as the grouping field": "Los campos de selección únicos y radio se pueden utilizar como campo de agrupación", - "Tab name": "Nombre de pestaña", - "Current record blocks": "Bloques de registro actuales", - "Popup message": "Mensaje emergente", - "Delete role": "Eliminar función", - "Role display name": "Nombre de visualización del rol", - "Default role": "Rol por defecto", - "All collections use general action permissions by default; permission configured individually will override the default one.": "Todas las colecciones utilizan permisos de acción generales por defecto; el permiso configurado individualmente anulará el predeterminado", - "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Permite configurar todo el sistema, incluyendo UI, colecciones, permisos, etc.", - "New menu items are allowed to be accessed by default.": "Permite acceder a nuevos elementos de menú por defecto", - "Global permissions": "Permisos globales", - "General permissions": "Permisos generales", - "Global action permissions": "Permisos de acción globales", - "General action permissions": "Permisos de acción generales", - "Plugin settings permissions": "Permisos de configuración de plugins", - "Allow to desgin pages": "Permitir diseñar páginas", - "Allow to manage plugins": "Permitir gestionar plugins", - "Allow to configure plugins": "Permitir configurar plugins", - "Allows to configure interface": "Permite configurar la interfaz", - "Allows to install, activate, disable plugins": "Permitir instalar, activar, desactivar plugins", - "Allows to configure plugins": "Permite configurar plugins", - "Action display name": "Mostrar nombre de acción", - "Allow": "Permitir", - "Data scope": "Ámbito de datos", - "Action on new records": "Acción sobre nuevos registros", - "Action on existing records": "Acción sobre registros existentes", - "All records": "Todos los registros", - "Own records": "Registros propios", - "Permission policy": "Política de permisos", - "Individual": "Individual", - "General": "General", - "Accessible": "Accesible", - "Configure permission": "Configurar permiso", - "Action permission": "Permiso de acción", - "Field permission": "Permiso de ámbito", - "Scope name": "Nombre de ámbito", - "File storages": "Almacenamiento de archivos", - "Storage display name": "Mostrar nombre de almacenamiento", - "Storage name": "Nombre de almacenamiento", - "Default storage": "Almacenamiento por defecto", - "Add storage": "Añadir almacenamiento", - "Edit storage": "Editar almacenamiento", - "Storage base URL": "URL base de almacenamiento", - "Destination": "Destino", - "Use the built-in static file server": "Utilizar el servidor de archivos estático incorporado", - "Local storage": "Almacenamiento local", - "Aliyun OSS": "Aliyun OSS", - "Amazon S3": "Amazon S3", - "Tencent COS": "Tencent COS", - "Region": "Región", - "Bucket": "Bucket", - "Path": "Ruta", - "Unsaved changes": "Cambios no guardados", - "Are you sure you don't want to save?": "¿Seguro que no quieres guardar?", - "Dragging": "Arrastrando", - "Popup": "Popup", - "Trigger workflow": "Desencadenar flujo de trabajo", - "Request API": "Petición API", - "Assign field values": "Asignar valores de campo", - "Constant value": "Valor constante", - "Dynamic value": "Valor dinámico", - "Current user": "Usuario actual", - "Current record": "Registro actual", - "Parent record": "Registro padre", - "Current time": "Hora actual", - "System variables": "Variables del sistema", - "Date variables": "Variables de fecha", - "Popup close method": "Método de cierre del popup", - "Automatic close": "Cierre automático", - "Manually close": "Cierre manual", - "After successful update": "Tras actualización correcta", - "Save record": "Guardar registro", - "Updated successfully": "Actualizado correctamente", - "After successful save": "Tras guardar correctamente", - "After clicking the custom button, the following field values will be assigned according to the following form.": "Después de hacer clic en el botón personalizado, los siguientes valores de campo se asignarán de acuerdo con el siguiente formulario", - "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "Después de hacer clic en el botón personalizado, los siguientes campos del registro actual se guardarán de acuerdo con el siguiente formulario", - "Button background color": "Color de fondo del botón", - "Highlight": "Resaltar", - "Danger red": "Peligro rojo", - "Custom request": "Petición personalizada", - "Request settings": "Configuración de la petición", - "Request URL": "URL de petición", - "Request method": "Método de petición", - "Request query parameters": "Parámetros de consulta de la petición", - "Request headers": "Cabeceras de la petición", - "Request body": "Cuerpo de la petición", - "Request success": "Petición correcta", - "Invalid JSON format": "Formato JSON no válido", - "After successful request": "Tras petición correcta", - "Add exportable field": "Añadir campo exportable", - "Audit logs": "Registros de auditoría", - "Record ID": "ID de registro", - "User": "Usuario", - "Field": "Campo", - "Select": "Seleccionar", - "Select field": "Seleccionar campo", - "Field value changes": "Cambios en el valor del campo", - "One to one (has one)": "Uno a uno (tiene uno)", - "One to one (belongs to)": "Uno a uno (pertenece a)", - "Use the same time zone (GMT) for all users": "Utilizar la misma zona horaria (GMT) para todos los usuarios", - "Province/city/area name": "Nombre de provincia/ciudad/zona", - "Enabled languages": "Idiomas activados", - "View all plugins": "Ver todos los plugins", - "Print": "Imprimir", - "Done": "Listo", - "Sign up successfully, and automatically jump to the sign in page": "Registrarse correctamente y saltar automáticamente a la página de inicio de sesión", - "File manager": "Gestor de archivos ", - "ACL": "ACL", - "Collection manager": "Gestor de colecciones", - "Plugin manager": "Gestor de plugins", - "Local": "Local", - "Built-in": "Integrado", - "Marketplace": "Mercado", - "New plugin": "Nuevo plugin", - "Upgrade": "Actualizar", - "Dependencies check failed": "Error en la comprobación de dependencias", - "More details": "Más detalles", - "Upload new version": "Subir nueva versión", - "Official plugin": "Plugin oficial", - "Version": "Versión", - "Npm package": "Paquete Npm", - "Upload plugin": "Subir plugin", - "Npm package name": "Nombre del paquete Npm", - "Add type": "Añadir tipo", - "Changelog": "Registro de cambios", - "Dependencies check": "Comprobación de dependencias", - "Update plugin": "Actualizar plugin", - "Installing": "Instalando", - "The deletion was successful.": "Eliminación correcta", - "Plugin Zip File": "Archivo Zip del plugin", - "Compressed file url": "URL del archivo comprimido", - "Last updated": "Última actualización", - "PackageName": "Nombre del paquete", - "DisplayName": "Nombre para mostrar", - "Readme": "Leerme", - "Dependencies compatibility check": "Comprobación de compatibilidad de dependencias", - "If the compatibility check fails, you should change the dependent version to meet the version requirements.": "Si la comprobación de compatibilidad falla, debe cambiar la versión dependiente para cumplir con los requisitos de versión.", - "Version range": "Rango de versión", - "Plugin's version": "Versión del plugin", - "Result": "Resultado", - "No CHANGELOG.md file": "No hay archivo CHANGELOG.md", - "No README.md file": "No hay archivo README.md", - "Homepage": "Página de inicio", - 'Drag and drop the file here or click to upload, file size should not exceed 30M': "Arrastra y suelta el archivo aquí o haz clic para subirlo, el tamaño del archivo no debe superar los 30M", - "Dependencies check failed, can't enable.": "Error en la comprobación de dependencias, no se puede habilitar.", - "Plugin starting...": "Plugin iniciando...", - "Plugin stopping...": "Plugin deteniendo...", - "Are you sure to delete this plugin?": "¿Estás seguro de eliminar este plugin?", - "re-download file": "volver a descargar el archivo", - "Not enabled": "No habilitado", - "Search plugin": "Buscar plugin", - "Author": "Autor", - "Plugin loading failed. Please check the server logs.": "Error al cargar el plugin. Compruebe los registros del servidor.", - "Coming soon...": "Próximamente...", - "All plugin settings": "Configuración de todos los plugins", - "Bookmark": "Marcador", - "Manage all settings": "Gestionar todos los ajustes", - "Create inverse field in the target collection": "Crear campo inverso en la colección de destino", - "Inverse field name": "Nombre del campo inverso", - "Inverse field display name": "Nombre mostrado del campo inverso", - "Bulk update": "Actualización en masa", - "After successful bulk update": "Tras una actualización en masa correcta", - "Bulk edit": "Edición en masa", - "Data will be updated": "Se actualizarán los datos", - "Selected": "Seleccionado", - "All": "Todos", - "Update selected data?": "¿Actualizar los datos seleccionados?", - "Update all data?": "¿Actualizar todos los datos?", - "Remains the same": "Permanece igual", - "Changed to": "Cambiado a", - "Clear": "Borrar", - "Add attach": "Añadir adjuntar", - "Please select the records to be updated": "Seleccione los registros que desea actualizar", - "Selector": "Selector", - "Inner": "Interior", - "Search and select collection": "Buscar y seleccionar colección", - "Please fill in the iframe URL": "Por favor, rellene la URL del iframe", - "Fix block": "Fijar bloque", - "Plugin name": "Nombre del plugin", - "Plugin tab name": "Nombre de la pestaña del plugin", - "AutoGenId": "Campo ID autogenerado", - "CreatedBy": "Registro del usuario creado de una fila", - "UpdatedBy": "Registro del último usuario actualizado de una fila", - "CreatedAt": "Registro de la hora de creación de una fila", - "UpdatedAt": "Registro del último usuario actualizado de una fila", - "Column width": "Ancho de columna", - "Sortable": "Clasificable", - "Enable link": "Activar enlace", - "Data template": "Plantilla de datos", - "Not found":"No encontrado", - "Add":"Añadir" - }; diff --git a/packages/core/client/src/locale/fr_FR.ts b/packages/core/client/src/locale/fr_FR.json similarity index 92% rename from packages/core/client/src/locale/fr_FR.ts rename to packages/core/client/src/locale/fr_FR.json index 8b40a9afb..5074a7dcf 100644 --- a/packages/core/client/src/locale/fr_FR.ts +++ b/packages/core/client/src/locale/fr_FR.json @@ -1,4 +1,4 @@ -export default { +{ "Display <1><0>10<1>20<2>50<3>100 items per page": "Afficher <1><0>10<1>20<2>50<3>100 éléments par page", "Meet <1><0>All<1>Any conditions in the group": "Remplir <1><0>Toutes<1>Quelconques conditions dans le groupe", "Open in<1><0>Modal<1>Drawer<2>Window": "Ouvrir dans<1><0>Modale<1>Tiroir<2>Fenêtre", @@ -55,35 +55,35 @@ export default { "UI editor": "Éditeur d'interface utilisateur", "Collection": "Collection", "Collections & Fields": "Collections et champs", - "All collections":"Toutes les collections", - "Add category":"Ajouter une catégorie", - "Enable child collections":"Activer les collections enfants", - "Allow adding records to the current collection":"Autoriser l'ajout d'enregistrements à la collection actuelle", - "Delete category":"Supprimer la catégorie", - "Edit category":"Modifier la catégorie", - "Collection category":"Catégorie de collection", - "Collection template":"Modèle de collection", - "Sort":"Trier", - "Categories":"Catégories", - "Visible":"Visible", - "Read only":"Lecture seule", - "Easy reading":"Lecture facile", - "Hidden":"Caché", - "Hidden(reserved value)":"Caché (valeur réservée)", - "Not required":"Non requis", - "Value":"Valeur", - "Disabled":"Désactivé", - "Enabled":"Activé", - 'On':'Actif', - 'Off':'Inactif', - "Empty":"Vide", - "Linkage rule":"Règle de liaison", - "Linkage rules":"Règles de liaison", - "Condition":"Condition", - "Properties":"Propriétés", - "Add linkage rule":"Ajouter une règle de liaison", - "Add property":"Ajouter une propriété", - "Category name":"Nom de la catégorie", + "All collections": "Toutes les collections", + "Add category": "Ajouter une catégorie", + "Enable child collections": "Activer les collections enfants", + "Allow adding records to the current collection": "Autoriser l'ajout d'enregistrements à la collection actuelle", + "Delete category": "Supprimer la catégorie", + "Edit category": "Modifier la catégorie", + "Collection category": "Catégorie de collection", + "Collection template": "Modèle de collection", + "Sort": "Trier", + "Categories": "Catégories", + "Visible": "Visible", + "Read only": "Lecture seule", + "Easy reading": "Lecture facile", + "Hidden": "Caché", + "Hidden(reserved value)": "Caché (valeur réservée)", + "Not required": "Non requis", + "Value": "Valeur", + "Disabled": "Désactivé", + "Enabled": "Activé", + "On": "Actif", + "Off": "Inactif", + "Empty": "Vide", + "Linkage rule": "Règle de liaison", + "Linkage rules": "Règles de liaison", + "Condition": "Condition", + "Properties": "Propriétés", + "Add linkage rule": "Ajouter une règle de liaison", + "Add property": "Ajouter une propriété", + "Category name": "Nom de la catégorie", "Roles & Permissions": "Rôles & permissions", "Edit profile": "Modifier le profil", "Change password": "Changer de mot de passe", @@ -109,12 +109,12 @@ export default { "pixels": "pixels", "Screen size": "Taille de l'écran", "Display title": "Titre d'affichage", - 'Set the count of columns displayed in a row': 'Définir le nombre de colonnes affichées par ligne', - 'Column': 'Colonne', - 'Phone device': 'Smartphone', - 'Tablet device': 'Tablette', - 'Desktop device': 'Ordinateur de bureau', - 'Large screen device': 'Ordinateur à grand écran', + "Set the count of columns displayed in a row": "Définir le nombre de colonnes affichées par ligne", + "Column": "Colonne", + "Phone device": "Smartphone", + "Tablet device": "Tablette", + "Desktop device": "Ordinateur de bureau", + "Large screen device": "Ordinateur à grand écran", "Collapse": "Pliable", "Select data source": "Sélectionner la source de données", "Calendar": "Calendrier", @@ -158,11 +158,11 @@ export default { "Add block": "Ajouter un bloc", "Add new": "Ajouter nouveau", "Add record": "Ajouter un enregistrement", - 'Add child': 'Ajouter un enfant', - 'Collapse all': 'Réduire tout', - 'Expand all': 'Développer tout', - 'Expand/Collapse': 'Développer/Réduire', - 'Default collapse': 'Développé/réduit par défaut', + "Add child": "Ajouter un enfant", + "Collapse all": "Réduire tout", + "Expand all": "Développer tout", + "Expand/Collapse": "Développer/Réduire", + "Default collapse": "Développé/réduit par défaut", "Tree table": "Tableau arborescent", "Custom field display name": "Nom d'affichage personnalisé du champ", "Display fields": "Afficher les champs de la collection", @@ -507,13 +507,13 @@ export default { "Dialog": "Dialogue", "Delete action": "Supprimer l'action", "Custom column title": "Titre de colonne personnalisé", - 'Column title': 'Titre de colonne', + "Column title": "Titre de colonne", "Original title: ": "Titre original : ", "Delete table column": "Supprimer la colonne de tableau", "Skip required validation": "Ignorer la validation requise", "Form values": "Valeurs du formulaire", "Fields values": "Valeurs des champs", - 'The field has been deleted': 'Le champ a été supprimé', + "The field has been deleted": "Le champ a été supprimé", "When submitting the following fields, the saved values are": "Lors de l'envoi des champs suivants, les valeurs enregistrées sont", "After successful submission": "Après un envoi réussi", "Then": "Ensuite", @@ -680,7 +680,7 @@ export default { "No CHANGELOG.md file": "Aucun fichier CHANGELOG.md", "No README.md file": "Aucun fichier README.md", "Homepage": "Page d'accueil", - 'Drag and drop the file here or click to upload, file size should not exceed 30M': "Faites glisser et déposez le fichier ici ou cliquez pour télécharger, la taille du fichier ne doit pas dépasser 30M", + "Drag and drop the file here or click to upload, file size should not exceed 30M": "Faites glisser et déposez le fichier ici ou cliquez pour télécharger, la taille du fichier ne doit pas dépasser 30M", "Dependencies check failed, can't enable.": "Échec de la vérification des dépendances, impossible d'activer.", "Plugin starting...": "Démarrage du plugin...", "Plugin stopping...": "Arrêt du plugin...", @@ -730,23 +730,23 @@ export default { "Feedback": "Commentaires", "Try again": "Réessayer", "Data template": "Modèle de données", - "Duplicate":"Dupliquer", - "Duplicating":"Duplication", - "Duplicate mode":"Mode de duplication", - "Quick duplicate":"Duplication rapide", - "Duplicate and continue":"Dupliquer et continuer", - "Please configure the duplicate fields":"Veuillez configurer les champs de duplication", - "Add":"Ajouter", - "Add new mode":"Mode d'ajout", - "Quick add":"Ajout rapide", - "Modal add":"Ajout modal", - "Save mode":"Mode d'enregistrement", - "First or create":"D'abord ou créer", - "Update or create":"Mettre à jour ou créer", - "Find by the following fields":"Trouver par les champs suivants", - "Create":"Créer", + "Duplicate": "Dupliquer", + "Duplicating": "Duplication", + "Duplicate mode": "Mode de duplication", + "Quick duplicate": "Duplication rapide", + "Duplicate and continue": "Dupliquer et continuer", + "Please configure the duplicate fields": "Veuillez configurer les champs de duplication", + "Add": "Ajouter", + "Add new mode": "Mode d'ajout", + "Quick add": "Ajout rapide", + "Modal add": "Ajout modal", + "Save mode": "Mode d'enregistrement", + "First or create": "D'abord ou créer", + "Update or create": "Mettre à jour ou créer", + "Find by the following fields": "Trouver par les champs suivants", + "Create": "Créer", "Current form": "Formulaire actuel", - "Current object":"Objet actuel", - "Linkage with form fields":"Lien avec les champs de formulaire", - "Allow add new, update and delete actions":"Autoriser les actions d'ajout, de mise à jour et de suppression" -}; + "Current object": "Objet actuel", + "Linkage with form fields": "Lien avec les champs de formulaire", + "Allow add new, update and delete actions": "Autoriser les actions d'ajout, de mise à jour et de suppression" +} diff --git a/packages/core/client/src/locale/ja_JP.ts b/packages/core/client/src/locale/ja_JP.json similarity index 88% rename from packages/core/client/src/locale/ja_JP.ts rename to packages/core/client/src/locale/ja_JP.json index 4b0b985a8..e968b660d 100644 --- a/packages/core/client/src/locale/ja_JP.ts +++ b/packages/core/client/src/locale/ja_JP.json @@ -1,4 +1,4 @@ -export default { +{ "Display <1><0>10<1>20<2>50<3>100 items per page": "各ページ<1><0>10<1>20<2>50<3>100 件表示", "Meet <1><0>All<1>Any conditions in the group": "グループ内の<1><0>すべて<1>一部 の条件を満たす", "Open in<1><0>Modal<1>Drawer<2>Window": "<1><0>モーダル<1>ドロワー<2>ウィンドウで開く", @@ -65,10 +65,10 @@ export default { "Category name": "分類名", "Delete category": "分類の削除", "Collection category": "Collection category", - 'Add child': 'サブレコードの追加', - 'Collapse all': 'すべて閉じる', - 'Expand all': 'すべて展開', - 'Expand/Collapse': '展開と終了', + "Add child": "サブレコードの追加", + "Collapse all": "すべて閉じる", + "Expand all": "すべて展開", + "Expand/Collapse": "展開と終了", "Tree table": "ツリーテーブル", "Visible": "表示", "Read only": "読み取り専用(編集不可)", @@ -79,8 +79,8 @@ export default { "Value": "フィールド値", "Disabled": "無効化", "Enabled": "有効化", - 'On': '有効化', - 'Off': '無効化', + "On": "有効化", + "Off": "無効化", "Empty": "くうきち", "Linkage rule": "連動規則", "Linkage rules": "連動規則", @@ -222,7 +222,7 @@ export default { "Link to": "リンク", "Link to description": "コレクションの関連付けを素早く作成するためにしようされ、ほとんどの一般的なシナリオに対応しています。開発者以外の方のしようにも適しています。フィールドとして存在する場合、参照元コレクションのレコードを選択するために使用されるドロップダウンです。一度作成されると、参照先コレクションに現在のコレクションの関連フィールドが同時に生成されます。", "Sub-table": "サブテーブル", - "Sub-form(Popover)":"サブフォーム(ポップアップ窓)", + "Sub-form(Popover)": "サブフォーム(ポップアップ窓)", "System info": "システム情報", "Created at": "作成日", "Last updated at": "最終更新日", @@ -413,13 +413,13 @@ export default { "Dialog": "ダイアログ", "Delete action": "操作を削除", "Custom column title": "カスタムカラムタイトル", - 'Column title': 'カラムタイトル', + "Column title": "カラムタイトル", "Original title: ": "元のタイトル: ", "Delete table column": "テーブルのカラムを削除", "Skip required validation": "必須のバリデーションをスキップ", "Form values": "フォームの値", "Fields values": "フィールドの値", - 'The field has been deleted': 'フィールドが削除されました', + "The field has been deleted": "フィールドが削除されました", "When submitting the following fields, the saved values are": "次のフィールドを送信すると、保存された値は", "After successful submission": "送信が成功した後", "Then": "その後", @@ -473,7 +473,7 @@ export default { "Global action permissions": "グローバル操作権限", "General action permissions": "一般操作権限", "Plugin settings permissions": "中央権限の設定", - 'Allow to desgin pages': "インタフェース構成の許可", + "Allow to desgin pages": "インタフェース構成の許可", "Allow to manage plugins": "管理プラグインの許可", "Allow to configure plugins": "管理構成センターの許可", "Action display name": "操作名", @@ -542,27 +542,26 @@ export default { "Select file": "ファイルを選択", "Subtable": "サブテーブル", "Sub-form": "サブフォーム", - "Sub-details":"サブリスト", - "Field mode":"フィールドコンポーネント", - "Allow add new data":"データの追加を許可", + "Sub-details": "サブリスト", + "Field mode": "フィールドコンポーネント", + "Allow add new data": "データの追加を許可", "Regular expression": "正規表現", "Enabled languages": "利用可能な言語", "View all plugins": "すべてのプラグラインを見る", "Print": "Print", - 'Single select and radio fields can be used as the grouping field': '単一選択フィールドとラジオ フィールドをグループ化フィールドとして使用できます', - 'Sign up successfully, and automatically jump to the sign in page': 'アカウントの登録に成功すると、ログインページにリダイレクトされます', - /* add */ + "Single select and radio fields can be used as the grouping field": "単一選択フィールドとラジオ フィールドをグループ化フィールドとして使用できます", + "Sign up successfully, and automatically jump to the sign in page": "アカウントの登録に成功すると、ログインページにリダイレクトされます", "Unique": "重複を許可しない", "Default value": "デフォルト値", "Select field": "フィールドを選択してください", - 'Any succeeded or failed': 'いずれかが成功もしくは失敗', - 'Continue after any branch succeeded, or exit after any branch failed': 'いずれかの分岐で成功し続行するか、分岐が失敗した後終了します', - 'Delay': '遅延実行', - 'Duration': '間隔', - 'End Status': '終了状態', - 'Select status': '状態を選択してください', - 'Succeed and continue': '成功し続行', - 'Fail and exit': '失敗し終了', + "Any succeeded or failed": "いずれかが成功もしくは失敗", + "Continue after any branch succeeded, or exit after any branch failed": "いずれかの分岐で成功し続行するか、分岐が失敗した後終了します", + "Delay": "遅延実行", + "Duration": "間隔", + "End Status": "終了状態", + "Select status": "状態を選択してください", + "Succeed and continue": "成功し続行", + "Fail and exit": "失敗し終了", "Enable SMS authentication": "SMS認証を有効にする", "Display association fields": "関連付けられたコレクションのフィールドを表示", "Set default value": "デフォルト値を設定", @@ -587,47 +586,45 @@ export default { "Render Failed": "レンダリングに失敗しました", "Feedback": "フィードバック", "Try again": "再試行", - - 'Click or drag file to this area to upload': 'クリックまたはドラッグしてファイルをアップロード', - 'Support for a single or bulk upload, file size should not exceed': '単一または複数のファイルをアップロードできます。ファイルサイズは', - 'Default title for each record': '各レコードのデフォルトタイトル', - - 'If collection inherits, choose inherited collections as templates': 'コレクションが継承されている場合、継承されたコレクションをテンプレートとして選択してください', - 'Select an existing piece of data as the initialization data for the form': '既存のデータを選択して、フォームの初期化データとして使用します', - 'Only the selected fields will be used as the initialization data for the form': '選択したフィールドのみがフォームの初期化データとして使用されます', - 'Template Data': 'テンプレートデータ', - 'Data fields': 'データフィールド', - 'Add template': 'テンプレートを追加', - 'Display data template selector': 'データテンプレートセレクターを表示', - 'Form data templates': 'フォームデータテンプレート', + "Click or drag file to this area to upload": "クリックまたはドラッグしてファイルをアップロード", + "Support for a single or bulk upload, file size should not exceed": "単一または複数のファイルをアップロードできます。ファイルサイズは", + "Default title for each record": "各レコードのデフォルトタイトル", + "If collection inherits, choose inherited collections as templates": "コレクションが継承されている場合、継承されたコレクションをテンプレートとして選択してください", + "Select an existing piece of data as the initialization data for the form": "既存のデータを選択して、フォームの初期化データとして使用します", + "Only the selected fields will be used as the initialization data for the form": "選択したフィールドのみがフォームの初期化データとして使用されます", + "Template Data": "テンプレートデータ", + "Data fields": "データフィールド", + "Add template": "テンプレートを追加", + "Display data template selector": "データテンプレートセレクターを表示", + "Form data templates": "フォームデータテンプレート", "Data template": "データテンプレート", - "Duplicate":"レプリケーション", - "Duplicating":"コピー中", - "Duplicate mode":"コピーモード", - "Quick duplicate":"今すぐコピー", - "Duplicate and continue":"コピーして続行", - "Please configure the duplicate fields":"コピーするフィールドを設定してください", - "Add":"追加", - "Add new mode":"追加モード", - "Quick add":"すばやい", - "Modal add":"ポップアップ窓の追加", - "Save mode":"保存方法", - "First or create":"存在しない場合に追加", - "Update or create":"存在しなければ新規、存在すれば更新", - "Find by the following fields":"次のフィールドで検索", - "Create":"新規のみ" , - "Current form":"現在のフォーム", - "Current object":"現在のオブジェクト", - "Linkage with form fields":"フォームデータから連動", - "Allow add new, update and delete actions":"削除変更操作の許可", - "Date display format":"日付表示形式", - "Assign data scope for the template":"テンプレートのデータ範囲の指定", - "Tag":"タブ", - "Tag color field":"ラベルの色フィールド", - "Sync successfully":"同期成功", - "Sync from form fields":"フォームフィールドの同期", + "Duplicate": "レプリケーション", + "Duplicating": "コピー中", + "Duplicate mode": "コピーモード", + "Quick duplicate": "今すぐコピー", + "Duplicate and continue": "コピーして続行", + "Please configure the duplicate fields": "コピーするフィールドを設定してください", + "Add": "追加", + "Add new mode": "追加モード", + "Quick add": "すばやい", + "Modal add": "ポップアップ窓の追加", + "Save mode": "保存方法", + "First or create": "存在しない場合に追加", + "Update or create": "存在しなければ新規、存在すれば更新", + "Find by the following fields": "次のフィールドで検索", + "Create": "新規のみ", + "Current form": "現在のフォーム", + "Current object": "現在のオブジェクト", + "Linkage with form fields": "フォームデータから連動", + "Allow add new, update and delete actions": "削除変更操作の許可", + "Date display format": "日付表示形式", + "Assign data scope for the template": "テンプレートのデータ範囲の指定", + "Tag": "タブ", + "Tag color field": "ラベルの色フィールド", + "Sync successfully": "同期成功", + "Sync from form fields": "フォームフィールドの同期", "Select all": "すべて選択", - "Cascade Select":"カスケード選択", + "Cascade Select": "カスケード選択", "New plugin": "新しいプラグイン", "Upgrade": "アップグレード", "Dependencies check failed": "依存関係のチェックに失敗しました", @@ -668,6 +665,5 @@ export default { "Search plugin": "プラグインを検索", "Author": "著者", "Plugin loading failed. Please check the server logs.": "プラグインのロードに失敗しました。サーバーログを確認してください。", - 'Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects': - 'テーブルに依存するオブジェクト、およびそれらに依存するオブジェクトを自動的に削除する', + "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "テーブルに依存するオブジェクト、およびそれらに依存するオブジェクトを自動的に削除する" } diff --git a/packages/core/client/src/locale/pt_BR.ts b/packages/core/client/src/locale/pt_BR.json similarity index 93% rename from packages/core/client/src/locale/pt_BR.ts rename to packages/core/client/src/locale/pt_BR.json index b3dbc6e3d..4fcf6ba98 100644 --- a/packages/core/client/src/locale/pt_BR.ts +++ b/packages/core/client/src/locale/pt_BR.json @@ -1,4 +1,4 @@ -export default { +{ "Display <1><0>10<1>20<2>50<3>100 items per page": "Mostrar <1><0>10<1>20<2>50<3>100 itens por página", "Meet <1><0>All<1>Any conditions in the group": "Atender <1><0>Todas<1>Qualquer as condições no grupo", "Open in<1><0>Modal<1>Drawer<2>Window": "Abrir em<1><0>Modal<1>Drawer<2>Janela", @@ -35,29 +35,29 @@ export default { "UI editor": "Editor de UI", "Collection": "Coleção", "Collections & Fields": "Coleções e campos", - "All collections":"Todas as coleções", - "Add category":"Adicionar categoria", - "Delete category":"Excluir categoria", - "Edit category":"Editar categoria", - "Collection category":"Categoria da coleção", - "Sort":"Ordenar", - "Categories":"Categorias", - "Visible":"Visível", - "Read only":"Somente leitura", - "Easy reading":"Leitura fácil", - "Hidden":"Oculto", - "Hidden(reserved value)":"Oculto (valor reservado)", - "Not required":"Não obrigatório", - "Value":"Valor", - "Disabled":"Desabilitado", - "Enabled":"Habilitado", - "Linkage rule":"Regra de ligação", - "Linkage rules":"Regras de ligação", - "Condition":"Condição", - "Properties":"Propriedades", - "Add linkage rule":"Adicionar regra de ligação", - "Add property":"Adicionar propriedade", - "Category name":"Nome da categoria", + "All collections": "Todas as coleções", + "Add category": "Adicionar categoria", + "Delete category": "Excluir categoria", + "Edit category": "Editar categoria", + "Collection category": "Categoria da coleção", + "Sort": "Ordenar", + "Categories": "Categorias", + "Visible": "Visível", + "Read only": "Somente leitura", + "Easy reading": "Leitura fácil", + "Hidden": "Oculto", + "Hidden(reserved value)": "Oculto (valor reservado)", + "Not required": "Não obrigatório", + "Value": "Valor", + "Disabled": "Desabilitado", + "Enabled": "Habilitado", + "Linkage rule": "Regra de ligação", + "Linkage rules": "Regras de ligação", + "Condition": "Condição", + "Properties": "Propriedades", + "Add linkage rule": "Adicionar regra de ligação", + "Add property": "Adicionar propriedade", + "Category name": "Nome da categoria", "Roles & Permissions": "Funções e permissões", "Edit profile": "Editar perfil", "Change password": "Alterar senha", @@ -111,10 +111,10 @@ export default { "Add block": "Adicionar bloco", "Add new": "Adicionar novo", "Add record": "Adicionar registro", - 'Add child': 'Adicionar filho', - 'Collapse all': 'Colapsar tudo', - 'Expand all': 'Expandir tudo', - 'Expand/Collapse': 'Expandir/Colapsar', + "Add child": "Adicionar filho", + "Collapse all": "Colapsar tudo", + "Expand all": "Expandir tudo", + "Expand/Collapse": "Expandir/Colapsar", "Tree table": "Tabela em árvore", "Custom field display name": "Nome personalizado para exibição do campo", "Display fields": "Exibir campos da coleção", @@ -455,13 +455,13 @@ export default { "Dialog": "Diálogo", "Delete action": "Excluir ação", "Custom column title": "Título da coluna personalizado", - 'Column title': 'cabeçalho da coluna', + "Column title": "cabeçalho da coluna", "Original title: ": "Título original: ", "Delete table column": "Excluir coluna da tabela", "Skip required validation": "Ignorar validação obrigatória", "Form values": "Valores do formulário", "Fields values": "campo removido", - 'The field has been deleted': 'O campo foi excluído', + "The field has been deleted": "O campo foi excluído", "When submitting the following fields, the saved values are": "Ao enviar os seguintes campos, os valores salvos são", "After successful submission": "Depois do envio bem-sucedido", "Then": "Então", @@ -695,22 +695,19 @@ export default { "Render Failed": "Falha na renderização", "Feedback": "Feedback", "Try again": "Tente novamente", - - 'Click or drag file to this area to upload': 'Clique ou arraste o arquivo para esta área para fazer o upload', - 'Support for a single or bulk upload, file size should not exceed': 'Suporte para upload único ou em massa, o tamanho do arquivo não deve exceder', - 'Default title for each record': 'Título padrão para cada registro', - - 'If collection inherits, choose inherited collections as templates': 'Se a coleção herda, escolha as coleções herdadas como modelos', - 'Select an existing piece of data as the initialization data for the form': 'Selecione um pedaço de dados existente como os dados de inicialização para o formulário', - 'Only the selected fields will be used as the initialization data for the form': 'Somente os campos selecionados serão usados como dados de inicialização para o formulário', - 'Template Data': 'Dados do modelo', - 'Data fields': 'Campos de dados', - 'Add template': 'Adicionar modelo', - 'Display data template selector': 'Exibir seletor de modelo de dados', - 'Form data templates': 'Modelos de dados do formulário', + "Click or drag file to this area to upload": "Clique ou arraste o arquivo para esta área para fazer o upload", + "Support for a single or bulk upload, file size should not exceed": "Suporte para upload único ou em massa, o tamanho do arquivo não deve exceder", + "Default title for each record": "Título padrão para cada registro", + "If collection inherits, choose inherited collections as templates": "Se a coleção herda, escolha as coleções herdadas como modelos", + "Select an existing piece of data as the initialization data for the form": "Selecione um pedaço de dados existente como os dados de inicialização para o formulário", + "Only the selected fields will be used as the initialization data for the form": "Somente os campos selecionados serão usados como dados de inicialização para o formulário", + "Template Data": "Dados do modelo", + "Data fields": "Campos de dados", + "Add template": "Adicionar modelo", + "Display data template selector": "Exibir seletor de modelo de dados", + "Form data templates": "Modelos de dados do formulário", "Data template": "Modelo de dados", - "Not found":"Não encontrado", - "Add":"Adicionar", - 'Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects': - 'Excluir automaticamente objetos que dependem desta tabela, bem como objetos que dependem desses objetos', -}; + "Not found": "Não encontrado", + "Add": "Adicionar", + "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "Excluir automaticamente objetos que dependem desta tabela, bem como objetos que dependem desses objetos" +} diff --git a/packages/core/client/src/locale/ru_RU.ts b/packages/core/client/src/locale/ru_RU.json similarity index 95% rename from packages/core/client/src/locale/ru_RU.ts rename to packages/core/client/src/locale/ru_RU.json index 808db5d63..e2d615365 100644 --- a/packages/core/client/src/locale/ru_RU.ts +++ b/packages/core/client/src/locale/ru_RU.json @@ -1,4 +1,4 @@ -export default { +{ "Display <1><0>10<1>20<2>50<3>100 items per page": "Показать <1><0>10<1>20<2>50<3>100 элементов на странице", "Meet <1><0>All<1>Any conditions in the group": "Выполнить <1><0>Все<1>Любое условия в группе", "Open in<1><0>Modal<1>Drawer<2>Window": "Открыть в<1><0>Модальное окно<1>Ящик<2>Окно", @@ -131,7 +131,7 @@ export default { "Create collection": "Создать Коллекцию", "Collection display name": "Отображение имени Коллекции", "Collection name": "Имя Коллекции", - "Categories":"Категории таблиц данных", + "Categories": "Категории таблиц данных", "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "Случайно сгенерированный и может быть изменен. Поддерживает буквы, цифры и подчеркивания, должно начинаться с буквы.", "Edit": "Изменить", "Edit collection": "Изменить Коллекцию", @@ -354,13 +354,13 @@ export default { "Dialog": "Диалог", "Delete action": "Удалить действие", "Custom column title": "Пользовательский заголовок колонки", - 'Column title': 'заголовок столбца', + "Column title": "заголовок столбца", "Original title: ": "Заголовок по умолчанию: ", "Delete table column": "Удалить колонку таблицы", "Skip required validation": "Пропустить обязатеьную проверку", "Form values": "Значения формы", "Fields values": "Значения полей", - 'The field has been deleted': 'Поле было удалено', + "The field has been deleted": "Поле было удалено", "When submitting the following fields, the saved values are": "При отправке следующих полей, сохраненные значения такие", "After successful submission": "После удачной отправки", "Then": "Затем", @@ -484,28 +484,26 @@ export default { "Enabled languages": "Включенные языки", "View all plugins": "Посмотреть все плагины", "Print": "Печать", - 'Single select and radio fields can be used as the grouping field': 'Одиночное поле выбора и радиополя могут использоваться в качестве поля группировки', - 'Sign up successfully, and automatically jump to the sign in page': 'Зарегистрируйтесь успешно и автоматически перейдете на страницу входа', + "Single select and radio fields can be used as the grouping field": "Одиночное поле выбора и радиополя могут использоваться в качестве поля группировки", + "Sign up successfully, and automatically jump to the sign in page": "Зарегистрируйтесь успешно и автоматически перейдете на страницу входа", "Search and select collection": "Поиск и выбор коллекции", "This is likely a NocoBase internals bug. Please open an issue at <1>here": "Это, вероятно, ошибка внутреннего устройства NocoBase. Пожалуйста, откройте проблему <1>здесь", "Render Failed": "Ошибка рендеринга", "Feedback": "Обратная связь", "Try again": "Попробуйте еще раз", - - 'Click or drag file to this area to upload': "Нажмите или перетащите файл в эту область, чтобы загрузить", - 'Support for a single or bulk upload, file size should not exceed': "Поддержка одиночной или массовой загрузки, размер файла не должен превышать", - 'Default title for each record': "Заголовок по умолчанию для каждой записи", - - 'If collection inherits, choose inherited collections as templates': "Если коллекция наследуется, выберите наследуемые коллекции в качестве шаблонов", - 'Select an existing piece of data as the initialization data for the form': "Выберите существующие данные в качестве исходных данных для формы", - 'Only the selected fields will be used as the initialization data for the form': "Только выбранные поля будут использоваться в качестве исходных данных для формы", - 'Template Data': "Шаблон данных", - 'Data fields': "Поля данных", - 'Add template': "Добавить шаблон", - 'Display data template selector': "Отображать селектор шаблона данных", - 'Form data templates': "Шаблоны данных формы", + "Click or drag file to this area to upload": "Нажмите или перетащите файл в эту область, чтобы загрузить", + "Support for a single or bulk upload, file size should not exceed": "Поддержка одиночной или массовой загрузки, размер файла не должен превышать", + "Default title for each record": "Заголовок по умолчанию для каждой записи", + "If collection inherits, choose inherited collections as templates": "Если коллекция наследуется, выберите наследуемые коллекции в качестве шаблонов", + "Select an existing piece of data as the initialization data for the form": "Выберите существующие данные в качестве исходных данных для формы", + "Only the selected fields will be used as the initialization data for the form": "Только выбранные поля будут использоваться в качестве исходных данных для формы", + "Template Data": "Шаблон данных", + "Data fields": "Поля данных", + "Add template": "Добавить шаблон", + "Display data template selector": "Отображать селектор шаблона данных", + "Form data templates": "Шаблоны данных формы", "Data template": "Шаблон данных", - "Not found":"Не найдено", + "Not found": "Не найдено", "Add": "Добавить", "Select all": "Выбрать все", "New plugin": "Новый плагин", @@ -547,5 +545,5 @@ export default { "Not enabled": "Не включено", "Search plugin": "Поиск плагина", "Author": "Автор", - "Plugin loading failed. Please check the server logs.": "Не удалось загрузить плагин. Пожалуйста, проверьте журналы сервера.", + "Plugin loading failed. Please check the server logs.": "Не удалось загрузить плагин. Пожалуйста, проверьте журналы сервера." } diff --git a/packages/core/client/src/locale/tr_TR.ts b/packages/core/client/src/locale/tr_TR.json similarity index 94% rename from packages/core/client/src/locale/tr_TR.ts rename to packages/core/client/src/locale/tr_TR.json index 39faaec38..96174de7e 100644 --- a/packages/core/client/src/locale/tr_TR.ts +++ b/packages/core/client/src/locale/tr_TR.json @@ -1,4 +1,4 @@ -export default { +{ "Display <1><0>10<1>20<2>50<3>100 items per page": "Her sayfada <1><0>10<1>20<2>50<3>100 adet gösterim", "Meet <1><0>All<1>Any conditions in the group": "Meet <1><0>All<1>Any conditions in the group", "Open in<1><0>Modal<1>Drawer<2>Window": "Açılış Şekli<1><0>Popup Ekran<1>Yan Çekmece<2>Sayfa", @@ -353,13 +353,13 @@ export default { "Dialog": "Pencere", "Delete action": "İşlemi sil", "Custom column title": "Özel sütun başlığı", - 'Column title': 'Sütun başlığı', + "Column title": "Sütun başlığı", "Original title: ": "Orjinal başlık: ", "Delete table column": "Tablo sütununu sil", "Skip required validation": "Zorunlu alan kontrollerini atla", "Form values": "Form değerleri", "Fields values": "Alanların değerleri", - 'The field has been deleted': 'Alan silindi', + "The field has been deleted": "Alan silindi", "When submitting the following fields, the saved values are": "Aşağıdaki alanlar gönderilirken kaydedilen değerler", "After successful submission": "Başarılı gönderimden sonra", "Then": "Then", @@ -484,26 +484,24 @@ export default { "Enabled languages": "Aktif diller", "View all plugins": "Tüm eklentileri görüntüle", "Print": "Yazdır", - 'Single select and radio fields can be used as the grouping field': 'Gruplama alanı olarak tek seçim ve radyo alanları kullanılabilir', - 'Sign up successfully, and automatically jump to the sign in page': 'Başarılı bir şekilde kaydolun ve otomatik olarak oturum açma sayfasına geçin', + "Single select and radio fields can be used as the grouping field": "Gruplama alanı olarak tek seçim ve radyo alanları kullanılabilir", + "Sign up successfully, and automatically jump to the sign in page": "Başarılı bir şekilde kaydolun ve otomatik olarak oturum açma sayfasına geçin", "Search and select collection": "Koleksiyon ara ve seç", "This is likely a NocoBase internals bug. Please open an issue at <1>here": "Bu, NocoBase iç işlevleri hatası olabilir. Lütfen <1>burada bir sorun açın", "Render Failed": "Oluşturma başarısız", "Feedback": "Geri bildirim", "Try again": "Tekrar dene", - - 'Click or drag file to this area to upload': "Dosyayı yüklemek için buraya tıklayın veya sürükleyin", - 'Support for a single or bulk upload, file size should not exceed': "Tek veya toplu yükleme destekler, dosya boyutu aşmamalıdır", - 'Default title for each record': "Her kayıt için varsayılan başlık", - - 'If collection inherits, choose inherited collections as templates': "Koleksiyon miras alırsa, kalıtılan koleksiyonları şablon olarak seçin", - 'Select an existing piece of data as the initialization data for the form': 'Formun başlangıç ​​verileri olarak mevcut bir veri parçasını seçin', - 'Only the selected fields will be used as the initialization data for the form': 'Yalnızca seçilen alanlar, formun başlangıç ​​verileri olarak kullanılacaktır', - 'Template Data': 'Şablon Verisi', - 'Data fields': 'Veri alanları', - 'Add template': 'Şablon ekle', - 'Display data template selector': 'Veri şablonu seçicisini görüntüle', - 'Form data templates': 'Form veri şablonları', + "Click or drag file to this area to upload": "Dosyayı yüklemek için buraya tıklayın veya sürükleyin", + "Support for a single or bulk upload, file size should not exceed": "Tek veya toplu yükleme destekler, dosya boyutu aşmamalıdır", + "Default title for each record": "Her kayıt için varsayılan başlık", + "If collection inherits, choose inherited collections as templates": "Koleksiyon miras alırsa, kalıtılan koleksiyonları şablon olarak seçin", + "Select an existing piece of data as the initialization data for the form": "Formun başlangıç ​​verileri olarak mevcut bir veri parçasını seçin", + "Only the selected fields will be used as the initialization data for the form": "Yalnızca seçilen alanlar, formun başlangıç ​​verileri olarak kullanılacaktır", + "Template Data": "Şablon Verisi", + "Data fields": "Veri alanları", + "Add template": "Şablon ekle", + "Display data template selector": "Veri şablonu seçicisini görüntüle", + "Form data templates": "Form veri şablonları", "Data template": "Veri şablonu", "New plugin": "Yeni eklenti", "Upgrade": "Yükselt", @@ -544,5 +542,5 @@ export default { "Not enabled": "Etkin değil", "Search plugin": "Eklenti ara", "Author": "Yazar", - "Plugin loading failed. Please check the server logs.": "Eklenti yüklenemedi. Lütfen sunucu günlüklerini kontrol edin.", + "Plugin loading failed. Please check the server logs.": "Eklenti yüklenemedi. Lütfen sunucu günlüklerini kontrol edin." } diff --git a/packages/core/client/src/locale/uk_UA.ts b/packages/core/client/src/locale/uk_UA.json similarity index 99% rename from packages/core/client/src/locale/uk_UA.ts rename to packages/core/client/src/locale/uk_UA.json index 296ee9c65..a33fb9034 100644 --- a/packages/core/client/src/locale/uk_UA.ts +++ b/packages/core/client/src/locale/uk_UA.json @@ -1,4 +1,4 @@ -export default { +{ "Display <1><0>10<1>20<2>50<3>100 items per page": "Відображати <1><0>10<1>20<2>50<3>100 предметів на сторінку", "Meet <1><0>All<1>Any conditions in the group": "Виконувати <1><0>усі<1>будь-які умови в групі", "Open in<1><0>Modal<1>Drawer<2>Window": "Відкрити в<1><0>Модалі<1>Шухляді<2>Вікні", @@ -751,4 +751,4 @@ export default { "Try again": "Спробуйте ще раз", "Data template": "Шаблон даних", "Template fields have been removed and need to be reconfigured": "Поля шаблону були видалені і потребують повторної конфігурації" -}; +} diff --git a/packages/core/client/src/locale/zh-CN.json b/packages/core/client/src/locale/zh-CN.json new file mode 100644 index 000000000..5cc1ba396 --- /dev/null +++ b/packages/core/client/src/locale/zh-CN.json @@ -0,0 +1,831 @@ +{ + "Display <1><0>10<1>20<2>50<3>100 items per page": "每页显示 <1><0>10<1>20<2>50<3>100 条", + "Page number": "页码", + "Page size": "每页条数", + "Meet <1><0>All<1>Any conditions in the group": "满足组内 <1><0>全部<1>任意 条件", + "Open in<1><0>Modal<1>Drawer<2>Window": "在 <1><0>对话框<1>抽屉<2>窗口 内打开", + "{{count}} filter items": "{{count}} 个筛选项", + "{{count}} more items": "还有 {{count}} 项", + "Total {{count}} items": "总共 {{count}} 条", + "Today": "今天", + "Yesterday": "昨天", + "Tomorrow": "明天", + "Month": "月", + "Week": "周", + "This week": "本周", + "Next week": "下周", + "This month": "本月", + "Next month": "下月", + "Last quarter": "上季度", + "This quarter": "本季度", + "Next quarter": "下季度", + "This year": "今年", + "Next year": "明年", + "Last week": "上周", + "Last month": "上月", + "Last year": "去年", + "Last 7 days": "最近 7 天", + "Last 30 days": "最近 30 天", + "Last 90 days": "最近 90 天", + "Next 7 days": "未来 7 天", + "Next 30 days": "未来 30 天", + "Next 90 days": "未来 90 天", + "Work week": "工作日", + "Day": "天", + "Agenda": "列表", + "Date": "日期", + "Time": "时间", + "Event": "事件", + "None": "无", + "Unconnected": "未连接", + "System settings": "系统设置", + "System title": "系统名称", + "Setting": "设置", + "Settings": "设置", + "Enable": "启用", + "Disable": "禁用", + "On": "启用", + "Off": "禁用", + "Logo": "Logo", + "Add menu item": "添加菜单项", + "Page": "页面", + "Name": "名称", + "Icon": "图标", + "Group": "分组", + "Link": "链接", + "Save conditions": "保存筛选条件", + "Edit menu item": "编辑菜单项", + "Move to": "移动到", + "Insert left": "在左边插入", + "Insert right": "在右边插入", + "Insert inner": "在里面插入", + "Delete": "删除", + "UI editor": "界面配置", + "Collection": "数据表", + "Enable child collections": "启用子表", + "Allow adding records to the current collection": "允许向当前数据表里添加记录", + "Collections & Fields": "数据表配置", + "All collections": "全部数据表", + "Add category": "添加分类", + "Delete category": "删除分类", + "Edit category": "编辑分类", + "Collection category": "数据表类别", + "Collection template": "数据表模板", + "Visible": "显示", + "Read only": "只读(禁止编辑)", + "Easy reading": "只读(阅读模式)", + "Hidden": "隐藏", + "Hidden(reserved value)": "隐藏(保留值)", + "Not required": "非必填", + "Value": "字段值", + "Disabled": "禁用", + "Enabled": "启用", + "Problematic": "有问题", + "Empty": "赋空值", + "Linkage rule": "联动规则", + "Linkage rules": "联动规则", + "Condition": "条件", + "Properties": "属性", + "Add linkage rule": "添加联动规则", + "Add property": "添加属性", + "Calculation engine": "计算引擎", + "Expression": "表达式", + "Expression collection": "表达式表", + "Sort": "排序", + "Categories": "数据表类别", + "Category name": "分类名称", + "Add child": "添加子记录", + "Collapse all": "全部收起", + "Expand all": "全部展开", + "Expand/Collapse": "展开/折叠", + "Default collapse": "默认展开", + "Tree collection": "树结构表", + "Tree table": "树表格", + "Parent ID": "父记录ID", + "Parent": "父记录", + "Children": "子记录", + "Roles & Permissions": "角色和权限", + "Edit profile": "个人资料", + "Change password": "修改密码", + "Old password": "旧密码", + "New password": "新密码", + "Switch role": "切换角色", + "Super admin": "超级管理员", + "Language": "语言设置", + "Allow sign up": "允许注册", + "Enable SMS authentication": "启用短信登录和注册", + "Sign out": "注销", + "Cancel": "取消", + "Confirm": "确定", + "Submit": "提交", + "Close": "关闭", + "Set the data scope": "设置数据范围", + "Block": "区块", + "Data blocks": "数据区块", + "Filter blocks": "筛选区块", + "Table": "表格", + "Form": "表单", + "List": "列表", + "Grid Card": "网格卡片", + "Screen size": "屏幕尺寸", + "pixels": "像素", + "Display title": "显示标题", + "Set the count of columns displayed in a row": "设置一行展示的列数", + "Column": "列", + "Phone device": "手机设备", + "Tablet device": "平板设备", + "Desktop device": "电脑设备", + "Large screen device": "大屏幕设备", + "Table OID(Inheritance)": "数据表 OID(继承)", + "Collapse": "折叠面板", + "Select data source": "选择数据源", + "Calendar": "日历", + "Delete events": "删除日程", + "This event": "此日程", + "This and following events": "此日程及后续日程", + "All events": "所有日程", + "Delete this event?": "是否删除这个日程?", + "Delete Event": "删除日程", + "Kanban": "看板", + "Gantt": "甘特图", + "Create gantt block": "创建甘特图区块", + "Progress field": "进度字段", + "Time scale": "时间缩放等级", + "Hour": "小时", + "Quarter of day": "四分之一天", + "Half of day": "半天", + "Year": "年", + "QuarterYear": "季度", + "Select grouping field": "选择分组字段", + "Media": "多媒体", + "Markdown": "Markdown", + "Wysiwyg": "富文本", + "Chart blocks": "图表区块", + "Column chart": "柱状图", + "Bar chart": "条形图", + "Line chart": "折线图", + "Pie chart": "饼图", + "Area chart": "面积图", + "Other chart": "其他图表", + "Other blocks": "其他区块", + "In configuration": "配置中", + "Chart title": "图表标题", + "Chart type": "图表类型", + "Chart config": "图表配置", + "Templates": "模板", + "Select template": "选择模板", + "Action logs": "操作日志", + "Create template": "创建模板", + "Edit markdown": "编辑 Markdown", + "Add block": "创建区块", + "Add new": "添加", + "Add record": "添加数据", + "Custom field display name": "自定义字段名称", + "Display fields": "显示字段", + "Edit record": "编辑数据", + "Delete menu item": "删除菜单项", + "Add page": "添加页面", + "Add group": "添加分组", + "Add link": "添加链接", + "Insert above": "在上面插入", + "Insert below": "在下面插入", + "Save": "保存", + "Delete block": "删除区块", + "Are you sure you want to delete it?": "你确定要删除吗?", + "This is a demo text, **supports Markdown syntax**.": "这是一段演示文本,**支持 Markdown 语法**。", + "Filter": "筛选", + "Connect data blocks": "连接数据区块", + "Action type": "操作类型", + "Actions": "操作", + "Update": "更新", + "View": "查看", + "View record": "查看数据", + "Refresh": "刷新", + "Data changes": "数据变更", + "Field name": "字段标识", + "Before change": "变更前", + "After change": "变更后", + "Delete record": "删除数据", + "Create collection": "创建数据表", + "Collection display name": "数据表名称", + "Collection name": "数据表标识", + "Inherits": "继承", + "Generate ID field automatically": "自动生成 ID 字段", + "Store the creation user of each record": "记录创建人", + "Store the last update user of each record": "记录最后更新人", + "Store the creation time of each record": "记录创建时间", + "Store the last update time of each record": "记录最后更新时间", + "More options": "更多选项", + "Records can be sorted": "可以对行记录进行排序", + "Calendar collection": "日历数据表", + "General collection": "普通数据表", + "SQL collection": "SQL数据表", + "Connect to database view": "连接数据库视图", + "Source collections": "来源数据表", + "Field source": "来源字段", + "Preview": "预览", + "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "随机生成,可修改。支持英文、数字和下划线,必须以英文字母开头。", + "Edit": "编辑", + "Edit collection": "编辑数据表", + "Configure field": "配置字段", + "Configure fields": "配置字段", + "Configure columns": "配置字段", + "Edit field": "编辑字段", + "Override": "重写", + "Override field": "重写字段", + "Configure fields of {{title}}": "「{{title}}」的字段配置", + "Association fields filter": "关系筛选", + "PK & FK fields": "主外键字段", + "Association fields": "关系字段", + "Choices fields": "选项字段", + "System fields": "系统字段", + "General fields": "普通字段", + "Inherited fields": "继承字段", + "Parent collection fields": "父表字段", + "Basic": "基本类型", + "Single line text": "单行文本", + "Long text": "多行文本", + "Phone": "手机号码", + "Email": "电子邮箱", + "Username": "用户名", + "Null": "空值", + "Boolean": "逻辑值", + "Number": "数字", + "Integer": "整数", + "Percent": "百分比", + "String": "字符串", + "Password": "密码", + "Advanced type": "高级类型", + "Formula": "公式", + "Formula description": "基于同一条记录中的其他字段计算出一个值。", + "Syntax references": "语法参考", + "Math.js comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types": "Math.js 包含大量内置函数和常量,并提供了集成的解决方案来处理不同的数据类型。", + "Formula.js supports most Microsoft Excel formula functions.": "Formula.js 支持大部分 Mircrosoft Excel 公式。", + "Choices": "选择类型", + "Checkbox": "勾选", + "Display when unchecked": "未勾选时显示 ", + "Single select": "下拉菜单(单选)", + "Multiple select": "下拉菜单(多选)", + "Radio group": "单选框", + "Checkbox group": "复选框", + "China region": "中国行政区", + "Date & Time": "日期 & 时间", + "Datetime": "日期", + "Relation": "关系类型", + "Link to": "关联", + "Link to description": "用于快速创建表关系,可兼容大多数普通场景。适合非开发人员使用。作为字段存在时,它是一个下拉选择用于选择目标数据表的数据。创建后,将同时在目标数据表中生成当前数据表的关联字段。", + "Sub-table": "子表格", + "System info": "系统信息", + "Created at": "创建日期", + "Last updated at": "最后修改日期", + "Created by": "创建人", + "Last updated by": "最后修改人", + "Add field": "添加字段", + "Field display name": "字段名称", + "Field type": "字段类型", + "Field interface": "字段类型", + "Date format": "日期格式", + "Year/Month/Day": "年/月/日", + "Year-Month-Day": "年-月-日", + "Day/Month/Year": "日/月/年", + "Show time": "显示时间", + "Time format": "时间格式", + "12 hour": "12 小时制", + "24 hour": "24 小时制", + "Relationship type": "关系类型", + "Inverse relationship type": "反向关系类型", + "Source collection": "源数据表", + "Source key": "源数据表字段标识", + "Target collection": "目标数据表", + "Through collection": "中间数据表", + "Target key": "目标数据表字段标识", + "Foreign key": "外键", + "One to one": "一对一", + "One to many": "一对多", + "Many to one": "多对一", + "Many to many": "多对多", + "Foreign key 1": "外键1", + "Foreign key 2": "外键2", + "One to one description": "用于创建一对一关系,比如一个用户会有一套个人资料。", + "One to many description": "用于创建一对多关系,比如一个国家会有多个城市。作为字段存在时,它是一个子表格用于显示目标数据表的数据。创建后,会在目标数据表里自动生成一个多对一字段。", + "Many to one description": "用于创建多对一关系,比如一个城市只能属于一个国家,一个国家可以有多个城市。作为字段存在时,它是一个下拉选择用于选择目标数据表的数据。创建后,会在目标数据表里自动生成一个多对一字段。", + "Many to many description": "用于创建多对多关系,比如一个学生会有多个老师,一个老师也会有多个学生。作为字段存在时,它是一个下拉选择用于选择目标数据表的数据。", + "Generated automatically if left blank": "留空时,自动生成中间表", + "Display association fields": "显示关联表的字段", + "Display field title": "显示字段标题", + "Field component": "字段组件", + "Allow multiple": "允许添加/关联多条", + "Allow dissociate": "允许移除已关联记录", + "Quick upload": "快速上传", + "Select file": "选择文件", + "Subtable": "子表格", + "Sub-form": "子表单", + "Sub-form(Popover)": "子表单(弹窗)", + "Sub-details": "子详情", + "Record picker": "数据选择器", + "Toggles the subfield mode": "切换子字段模式", + "Selector mode": "选择器模式", + "Subtable mode": "子表格模式", + "Subform mode": "子表单模式", + "Field mode": "字段组件", + "Allow add new data": "允许添加数据", + "Edit block title": "编辑区块标题", + "Block title": "区块标题", + "Pattern": "模式", + "Operator": "运算符", + "Editable": "可编辑", + "Readonly": "只读(禁止编辑)", + "Easy-reading": "只读(阅读模式)", + "Add filter": "添加筛选条件", + "Add filter group": "添加筛选分组", + "Comparision": "值比较", + "is": "等于", + "is not": "不等于", + "contains": "包含", + "does not contain": "不包含", + "starts with": "开头是", + "not starts with": "开头不是", + "ends with": "结尾是", + "not ends with": "结尾不是", + "is empty": "为空", + "is not empty": "不为空", + "Edit chart": "编辑图表", + "Add text": "添加文本", + "Filterable fields": "可筛选字段", + "Edit button": "编辑按钮", + "Hide": "隐藏", + "Enable actions": "启用操作", + "Import": "导入", + "Export": "导出", + "Customize": "自定义", + "Custom": "自定义", + "Function": "Function", + "Popup form": "Popup form", + "Flexible popup": "Flexible popup", + "Configure actions": "配置操作", + "Display order number": "显示序号", + "Enable drag and drop sorting": "启用拖拽排序", + "Triggered when the row is clicked": "点击表格行时触发", + "Add tab": "添加标签页", + "Disable tabs": "禁用标签页", + "Details": "详情", + "Edit tab": "编辑标签页", + "Relationship blocks": "关系数据区块", + "Select record": "选择数据", + "Display name": "显示名称", + "Select icon": "选择图标", + "Custom column name": "自定义列名称", + "Edit description": "编辑描述", + "Required": "必填", + "Unique": "不允许重复", + "Label field": "标签字段", + "Default is the ID field": "默认为 ID 字段", + "Set default sorting rules": "设置排序规则", + "Set validation rules": "设置验证规则", + "Max length": "最大长度", + "Min length": "最小长度", + "Maximum": "最大值", + "Minimum": "最小值", + "Max length must greater than min length": "最大长度必须大于最小长度", + "Min length must less than max length": "最小长度必须小于最大长度", + "Maximum must greater than minimum": "最大值必须大于最小值", + "Minimum must less than maximum": "最小值必须小于最大值", + "Validation rule": "验证规则", + "Add validation rule": "新增验证规则", + "Format": "格式", + "Regular expression": "正则表达式", + "Error message": "错误消息", + "Length": "长度", + "The field value cannot be greater than ": "数值不能大于", + "The field value cannot be less than ": "数值不能小于", + "The field value is not an integer number": "数字不是整数", + "Set default value": "设置默认值", + "Default value": "默认值", + "is before": "早于", + "is after": "晚于", + "is on or after": "不早于", + "is on or before": "不晚于", + "is between": "介于", + "Upload": "上传", + "Select level": "选择层级", + "Province": "省", + "City": "市", + "Area": "区/县", + "Street": "乡镇/街道", + "Village": "村/居委会", + "Must select to the last level": "必须选到最后一级", + "Move {{title}} to": "将 {{title}} 移动到", + "Target position": "目标位置", + "After": "之后", + "Before": "之前", + "Add {{type}} before \"{{title}}\"": "在 \"{{title}}\" 前插入{{type}}", + "Add {{type}} after \"{{title}}\"": "在 \"{{title}}\" 前插入{{type}}", + "Add {{type}} in \"{{title}}\"": "在 \"{{title}}\" 里插入{{type}}", + "Original name": "原名称", + "Custom name": "自定义名称", + "Custom Title": "自定义标题", + "Options": "选项", + "Option value": "选项值", + "Option label": "选项标签", + "Color": "颜色", + "Add option": "添加选项", + "Related collection": "关系表", + "Allow linking to multiple records": "允许关联多条记录", + "Daily": "每天", + "Weekly": "每周", + "Monthly": "每月", + "Yearly": "每年", + "Repeats": "重复", + "Configure calendar": "配置日历", + "Title field": "标题字段", + "Custom title": "自定义标题", + "Show lunar": "展示农历", + "Start date field": "开始日期字段", + "End date field": "结束日期字段", + "Navigate": "分页", + "Title": "标题", + "Description": "描述", + "Select view": "切换视图", + "Reset": "重置", + "Importable fields": "可导入字段", + "Exportable fields": "可导出字段", + "Saved successfully": "保存成功", + "Nickname": "昵称", + "Sign in": "登录", + "Sign in via account": "账号密码登录", + "Sign in via phone": "手机号登录", + "Create an account": "注册账号", + "Sign up": "注册", + "Confirm password": "确认密码", + "Log in with an existing account": "使用已有账号登录", + "Signed up successfully. It will jump to the login page.": "注册成功,将跳转登录页。", + "Password mismatch": "重复密码不匹配", + "Users": "用户", + "Verification code": "验证码", + "Send code": "发送验证码", + "Retry after {{count}} seconds": "{{count}} 秒后重试", + "Must be 2-16 characters in length (excluding @.<>\"'/)": "长度为2到16个字符(不能包含@.<>\"'/)", + "Roles": "角色", + "Add role": "添加角色", + "Role name": "角色名称", + "Configure": "配置", + "Configure permissions": "配置权限", + "Edit role": "编辑角色", + "Action permissions": "数据表操作权限", + "Menu permissions": "菜单访问权限", + "Menu item name": "菜单名称", + "Allow access": "允许访问", + "Action name": "操作名称", + "Allow action": "允许操作", + "Action scope": "可操作数据范围", + "Operate on new data": "对新增数据操作", + "Operate on existing data": "对已有数据操作", + "Yes": "是", + "No": "否", + "Red": "薄暮", + "Magenta": "法式洋红", + "Volcano": "火山", + "Orange": "日暮", + "Gold": "金盏花", + "Lime": "青柠", + "Green": "极光绿", + "Cyan": "明青", + "Blue": "拂晓蓝", + "Geek blue": "极客蓝", + "Purple": "酱紫", + "Default": "默认", + "Add card": "添加卡片", + "edit title": "修改标题", + "Turn pages": "翻页", + "Others": "其他", + "Save as template": "保存为模板", + "Save as block template": "保存为区块模板", + "Block templates": "区块模板", + "Convert reference to duplicate": "模板引用转为复制", + "Template name": "模板名称", + "Block type": "区块类型", + "No blocks to connect": "没有可连接的区块", + "Action column": "操作列", + "Records per page": "每页显示数量", + "(Fields only)": "(仅字段)", + "Button title": "按钮标题", + "Button icon": "按钮图标", + "Submitted successfully": "提交成功", + "Operation succeeded": "操作成功", + "Operation failed": "操作失败", + "Open mode": "打开方式", + "Popup size": "弹窗尺寸", + "Small": "较窄", + "Middle": "中等", + "Large": "较宽", + "Menu item title": "菜单项名称", + "Menu item icon": "菜单项图标", + "Target": "目标", + "Position": "位置", + "Insert before": "在前面插入", + "Insert after": "在后面插入", + "UI Editor": "界面配置", + "ASC": "升序", + "DESC": "降序", + "Add sort field": "添加排序字段", + "ID": "ID", + "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "用于程序使用的标识符,支持字母、数字和下划线,必须以字母开头。", + "Drawer": "抽屉", + "Dialog": "对话框", + "Delete action": "删除操作", + "Custom column title": "自定义列标题", + "Column title": "列标题", + "Original title: ": "原始标题: ", + "Delete table column": "删除列", + "Skip required validation": "跳过必填校验", + "Form values": "表单值", + "Fields values": "字段值", + "The field has been deleted": "字段已删除", + "When submitting the following fields, the saved values are": "提交以下字段时,保存的值为", + "After successful submission": "提交成功后", + "Then": "然后", + "Stay on current page": "停留在当前页面", + "Redirect to": "跳转到", + "Save action": "保存操作", + "Exists": "存在", + "Add condition": "添加条件", + "Add condition group": "添加条件分组", + "exists": "存在", + "not exists": "不存在", + "=": "=", + "≠": "≠", + ">": ">", + "≥": "≥", + "<": "<", + "≤": "≤", + "Role UID": "角色标识", + "Precision": "精确度", + "Rich Text": "富文本", + "Junction collection": "中间表", + "Leave it blank, unless you need a custom intermediate table": "默认留空,除非你需要一个自定义的中间表", + "Fields": "字段", + "Edit field title": "编辑字段标题", + "Field title": "字段标题", + "Original field title: ": "原始字段标题:", + "Edit tooltip": "编辑提示信息", + "Delete field": "删除字段", + "Select collection": "选择数据表", + "Blank block": "空区块", + "Duplicate template": "复制模板", + "Reference template": "引用模板", + "Create calendar block": "创建日历区块", + "Create kanban block": "创建看板区块", + "Grouping field": "分组字段", + "Single select and radio fields can be used as the grouping field": "数据表的单选字段可以作为分组字段", + "Tab name": "标签名称", + "Current record blocks": "当前数据区块", + "Popup message": "弹窗提示消息", + "Delete role": "删除角色", + "Role display name": "角色名称", + "Default role": "默认角色", + "All collections use general action permissions by default; permission configured individually will override the default one.": "所有数据表都默认使用通用数据操作权限;同时,可以针对每个数据表单独配置权限。", + "Allows configuration of the whole system, including UI, collections, permissions, etc.": "允许配置系统,包括界面配置、数据表配置、权限配置、系统配置等全部配置项", + "New menu items are allowed to be accessed by default.": "新增菜单项默认允许访问", + "Global permissions": "全局配置", + "General permissions": "通用配置", + "Global action permissions": "全局操作权限", + "General action permissions": "通用操作权限", + "Plugin settings permissions": "插件配置权限", + "Allow to desgin pages": "允许界面配置", + "Allow to manage plugins": "允许管理插件", + "Allow to configure plugins": "允许管理配置中心", + "Allows to configure interface": "允许配置界面", + "Allows to install, activate, disable plugins": "允许安装、激活、禁用插件", + "Allows to configure plugins": "允许配置插件", + "Action display name": "操作名称", + "Allow": "允许", + "Data scope": "数据范围", + "Action on new records": "对新增数据操作", + "Action on existing records": "对已有数据操作", + "All records": "所有数据", + "Own records": "自己的数据", + "Permission policy": "权限策略", + "Individual": "单独配置", + "General": "通用配置", + "Accessible": "允许访问", + "Configure permission": "配置权限", + "Action permission": "操作权限", + "Field permission": "字段权限", + "Scope name": "数据范围名称", + "Unsaved changes": "未保存修改", + "Are you sure you don't want to save?": "你确定不保存修改吗?", + "Dragging": "拖拽中", + "Popup": "打开弹窗", + "Trigger workflow": "触发工作流", + "Request API": "请求API", + "Assign field values": "字段赋值", + "Constant value": "静态值", + "Dynamic value": "动态值", + "Current user": "当前用户", + "Current record": "当前记录", + "Parent record": "上级记录", + "Current time": "当前时间", + "Now": "现在", + "Popup close method": "弹窗关闭方式", + "Automatic close": "自动关闭", + "Manually close": "手动关闭", + "After successful update": "更新成功后", + "Save record": "保存数据", + "Updated successfully": "更新成功", + "After successful save": "保存成功后", + "After clicking the custom button, the following field values will be assigned according to the following form.": "点击当前自定义按钮时,以下字段值将按照以下表单赋值。", + "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "点击当前自定义按钮时,当前数据以下字段将按照以下表单保存。", + "Button background color": "按钮颜色", + "Highlight": "高亮", + "Danger red": "红色", + "Custom request": "自定义请求", + "Request settings": "请求设置", + "Request URL": "请求地址", + "Request method": "请求方法", + "Request query parameters": "请求查询参数(JSON格式)", + "Request headers": "请求头参数(JSON格式)", + "Request body": "请求体(JSON格式)", + "Request success": "请求成功", + "Invalid JSON format": "非法JSON格式", + "After successful request": "请求成功之后", + "Add exportable field": "添加可导出字段", + "Audit logs": "操作记录", + "Record ID": "数据 ID", + "User": "用户", + "Field": "字段", + "Select": "选择", + "Select field": "选择字段", + "Field value changes": "变更记录", + "One to one (has one)": "一对一(has one)", + "One to one (belongs to)": "一对一(belongs to)", + "Use the same time zone (GMT) for all users": "所有用户使用同一时区 (格林尼治标准时间)", + "Province/city/area name": "省市区名称", + "Enabled languages": "启用的语言", + "View all plugins": "查看所有插件", + "Print": "打印", + "Done": "完成", + "Sign up successfully, and automatically jump to the sign in page": "注册成功,即将跳转到登录页面", + "ACL": "访问控制", + "Collection manager": "数据表管理", + "Plugin manager": "插件管理器", + "Local": "本地", + "Built-in": "内置", + "Marketplace": "插件市场", + "Add plugin": "新增插件", + "Upgrade": "可供更新", + "Plugin dependencies check failed": "插件依赖检查失败", + "Remove": "移除", + "Docs": "文档", + "More details": "更多详情", + "Upload new version": "上传新版", + "Official plugin": "官方插件", + "Version": "版本", + "Npm package": "Npm 包", + "Upload plugin": "上传插件", + "Npm package name": "Npm 包名", + "Add type": "新增方式", + "Plugin source": "插件来源", + "Changelog": "更新日志", + "Dependencies check": "依赖检查", + "Update plugin": "更新插件", + "Installing": "安装中", + "The deletion was successful.": "删除成功", + "Plugin Zip File": "插件压缩包", + "Compressed file url": "压缩包地址", + "Last updated": "最后更新", + "PackageName": "包名", + "DisplayName": "显示名称", + "Readme": "说明文档", + "Dependencies compatibility check": "依赖兼容性检查", + "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.": "插件兼容性检查失败,你应该修改依赖版本以满足版本要求。", + "Version range": "版本范围", + "Plugin's version": "插件的版本", + "Result": "结果", + "No CHANGELOG.md file": "没有 CHANGELOG.md 日志", + "No README.md file": "没有 README.md 文件", + "Homepage": "主页", + "Drag and drop the file here or click to upload, file size should not exceed 30M": "将文件拖放到此处或单击上传,文件大小不应超过 30M", + "Dependencies check failed, can't enable.": "依赖检查失败,无法启用。", + "Plugin starting...": "插件启动中...", + "Plugin stopping...": "插件停止中...", + "Are you sure to delete this plugin?": "确定要删除此插件吗?", + "re-download file": "重新下载文件", + "Not enabled": "未启用", + "Search plugin": "搜索插件", + "Author": "作者", + "Plugin loading failed. Please check the server logs.": "插件加载失败,请检查服务器日志。", + "Coming soon...": "敬请期待...", + "All plugin settings": "所有插件配置", + "Bookmark": "书签", + "Manage all settings": "管理所有配置", + "Create inverse field in the target collection": "在目标数据表里创建反向关系字段", + "Inverse field name": "反向关系字段标识", + "Inverse field display name": "反向关系字段名称", + "Bulk update": "批量更新", + "After successful bulk update": "批量成功更新后", + "Bulk edit": "批量编辑", + "Data will be updated": "更新的数据", + "Selected": "选中", + "All": "所有", + "Update selected data?": "更新选中的数据吗?", + "Update all data?": "更新全部数据吗?", + "Remains the same": "不更新", + "Changed to": "修改为", + "Clear": "清空", + "Add attach": "增加关联", + "Please select the records to be updated": "请选择要更新的记录", + "Selector": "选择器", + "Inner": "里面", + "Search and select collection": "搜索并选择数据表", + "Please fill in the iframe URL": "请填写嵌入的地址", + "Fix block": "固定区块", + "Plugin name": "插件", + "Plugin tab name": "插件标签页", + "Enable page header": "启用页眉", + "Display page title": "显示页面标题", + "Edit page title": "编辑页面标题", + "Enable page tabs": "启用页面选项卡", + "Enable link": "启用链接", + "Column width": "列宽", + "Sortable": "可排序的", + "Constant": "常量", + "Select a variable": "选择变量", + "Insert": "插入", + "Insert if not exists": "不存在时插入", + "Insert if not exists, or update": "不存在时插入,否则更新", + "System variables": "系统变量", + "Date variables": "日期变量", + "Double click to choose entire object": "双击选择整个对象", + "True": "真", + "False": "假", + "Prettify": "格式化", + "Theme": "主题", + "Default theme": "默认主题", + "Compact theme": "紧凑主题", + "This is likely a NocoBase internals bug. Please open an issue at <1>here": "这可能是 NocoBase 内部的问题,你可以在<1>这里将该错误反馈给我们,我们会尽快修复", + "Render Failed": "渲染失败", + "Feedback": "反馈问题", + "Try again": "重试一下", + "Click or drag file to this area to upload": "点击或拖拽文件到此区域上传", + "Support for a single or bulk upload, file size should not exceed": "支持单个或批量上传,文件大小不能超过", + "Default title for each record": "用作数据的默认标题", + "If collection inherits, choose inherited collections as templates": "当前表有继承关系时,可选择继承链路上的表作为模板来源", + "Select an existing piece of data as the initialization data for the form": "选择一条已有的数据作为表单的初始化数据", + "Only the selected fields will be used as the initialization data for the form": "仅选择的字段才会作为表单的初始化数据", + "Template Data": "模板数据", + "Data fields": "数据字段", + "Add template": "添加模板", + "Display data template selector": "显示数据模板选择框", + "Form data templates": "表单数据模板", + "Data template": "数据模板", + "No configuration available.": "无可配置项。", + "Reload application": "重载应用", + "The application is reloading, please do not close the page.": "应用正在重新加载,请勿关闭页面。", + "Application reloading": "应用重新加载中", + "Restart application": "重启应用", + "Allows to clear cache, reboot application": "允许清除缓存,重启应用", + "The will interrupt service, it may take a few seconds to restart. Are you sure to continue?": "重启将会中断当前服务,这个过程可能需要一点时间,确定要继续吗?", + "Restart": "重启", + "Clear cache": "清除缓存", + "Duplicate": "复制", + "Duplicating": "复制中", + "Duplicate mode": "复制方式", + "Quick duplicate": "快速复制", + "Duplicate and continue": "复制并继续", + "Please configure the duplicate fields": "请配置要复制的字段", + "Add": "创建", + "Add new mode": "添加方式", + "Quick add": "快捷添加", + "Modal add": "弹窗添加", + "Save mode": "保存方式", + "First or create": "不存在时则新增,存在时不处理", + "Update or create": "不存在时新增,存在时更新", + "Find by the following fields": "通过以下字段查找", + "Create": "仅新增", + "Current form": "当前表单", + "Current object": "当前对象", + "Quick create": "快速创建", + "Dropdown": "下拉菜单", + "Pop-up": "弹窗", + "File manager": "文件管理器", + "Direct duplicate": "直接复制", + "Copy into the form and continue to fill in": "复制到表单并继续填写", + "Linkage with form fields": "从表单字段联动", + "Failed to load plugin": "插件加载失败", + "Allow add new, update and delete actions": "允许增删改操作", + "Date display format": "日期显示格式", + "Assign data scope for the template": "为模板指定数据范围", + "Table selected records": "表格中选中的记录", + "Tag": "标签", + "Tag color field": "标签颜色字段", + "Sync successfully": "同步成功", + "Sync from form fields": "同步表单字段", + "Select all": "全选", + "UnSelect all": "取消全选", + "Determine whether a record exists by the following fields": "通过以下字段判断记录是否存在", + "Cascade Select": "级联选择", + "Execute": "执行", + "Please use a valid SELECT or WITH AS statement": "请使用有效的 SELECT 或 WITH AS 语句", + "Please confirm the SQL statement first": "请先确认 SQL 语句", + "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "自动删除依赖于该表的对象,以及依赖这些对象的对象" +} diff --git a/packages/core/client/src/locale/zh_CN.ts b/packages/core/client/src/locale/zh_CN.ts deleted file mode 100644 index 1ebdc3870..000000000 --- a/packages/core/client/src/locale/zh_CN.ts +++ /dev/null @@ -1,884 +0,0 @@ -export default { - 'Display <1><0>10<1>20<2>50<3>100 items per page': - '每页显示 <1><0>10<1>20<2>50<3>100 条', - 'Page number': '页码', - 'Page size': '每页条数', - 'Meet <1><0>All<1>Any conditions in the group': '满足组内 <1><0>全部<1>任意 条件', - 'Open in<1><0>Modal<1>Drawer<2>Window': '在 <1><0>对话框<1>抽屉<2>窗口 内打开', - '{{count}} filter items': '{{count}} 个筛选项', - '{{count}} more items': '还有 {{count}} 项', - 'Total {{count}} items': '总共 {{count}} 条', - Today: '今天', - Yesterday: '昨天', - Tomorrow: '明天', - Month: '月', - Week: '周', - 'This week': '本周', - 'Next week': '下周', - 'This month': '本月', - 'Next month': '下月', - 'Last quarter': '上季度', - 'This quarter': '本季度', - 'Next quarter': '下季度', - 'This year': '今年', - 'Next year': '明年', - 'Last week': '上周', - 'Last month': '上月', - 'Last year': '去年', - 'Last 7 days': '最近 7 天', - 'Last 30 days': '最近 30 天', - 'Last 90 days': '最近 90 天', - 'Next 7 days': '未来 7 天', - 'Next 30 days': '未来 30 天', - 'Next 90 days': '未来 90 天', - 'Work week': '工作日', - Day: '天', - Agenda: '列表', - Date: '日期', - Time: '时间', - Event: '事件', - None: '无', - Unconnected: '未连接', - 'System settings': '系统设置', - 'System title': '系统名称', - Setting: '设置', - Settings: '设置', - Enable: '启用', - Disable: '禁用', - On: '启用', - Off: '禁用', - Logo: 'Logo', - 'Add menu item': '添加菜单项', - Page: '页面', - Name: '名称', - Icon: '图标', - Group: '分组', - Link: '链接', - 'Save conditions': '保存筛选条件', - 'Edit menu item': '编辑菜单项', - 'Move to': '移动到', - 'Insert left': '在左边插入', - 'Insert right': '在右边插入', - 'Insert inner': '在里面插入', - Delete: '删除', - 'UI editor': '界面配置', - Collection: '数据表', - 'Enable child collections': '启用子表', - 'Allow adding records to the current collection': '允许向当前数据表里添加记录', - 'Collections & Fields': '数据表配置', - 'All collections': '全部数据表', - 'Add category': '添加分类', - 'Delete category': '删除分类', - 'Edit category': '编辑分类', - 'Collection category': '数据表类别', - 'Collection template': '数据表模板', - Visible: '显示', - 'Read only': '只读(禁止编辑)', - 'Easy reading': '只读(阅读模式)', - Hidden: '隐藏', - 'Hidden(reserved value)': '隐藏(保留值)', - 'Not required': '非必填', - Value: '字段值', - Disabled: '禁用', - Enabled: '启用', - Problematic: '有问题', - Empty: '赋空值', - 'Linkage rule': '联动规则', - 'Linkage rules': '联动规则', - Condition: '条件', - Properties: '属性', - 'Add linkage rule': '添加联动规则', - 'Add property': '添加属性', - 'Calculation engine': '计算引擎', - Expression: '表达式', - 'Expression collection': '表达式表', - Sort: '排序', - Categories: '数据表类别', - 'Category name': '分类名称', - 'Add child': '添加子记录', - 'Collapse all': '全部收起', - 'Expand all': '全部展开', - 'Expand/Collapse': '展开/折叠', - 'Default collapse': '默认展开', - 'Tree collection': '树结构表', - 'Tree table': '树表格', - 'Parent ID': '父记录ID', - Parent: '父记录', - Children: '子记录', - 'Roles & Permissions': '角色和权限', - 'Edit profile': '个人资料', - 'Change password': '修改密码', - 'Old password': '旧密码', - 'New password': '新密码', - 'Switch role': '切换角色', - 'Super admin': '超级管理员', - Language: '语言设置', - 'Allow sign up': '允许注册', - 'Enable SMS authentication': '启用短信登录和注册', - 'Sign out': '注销', - Cancel: '取消', - Confirm: '确定', - Submit: '提交', - Close: '关闭', - 'Set the data scope': '设置数据范围', - Block: '区块', - 'Data blocks': '数据区块', - 'Filter blocks': '筛选区块', - Table: '表格', - Form: '表单', - List: '列表', - 'Grid Card': '网格卡片', - 'Screen size': '屏幕尺寸', - pixels: '像素', - 'Display title': '显示标题', - 'Set the count of columns displayed in a row': '设置一行展示的列数', - Column: '列', - 'Phone device': '手机设备', - 'Tablet device': '平板设备', - 'Desktop device': '电脑设备', - 'Large screen device': '大屏幕设备', - 'Table OID(Inheritance)': '数据表 OID(继承)', - Collapse: '折叠面板', - 'Select data source': '选择数据源', - Calendar: '日历', - 'Delete events': '删除日程', - 'This event': '此日程', - 'This and following events': '此日程及后续日程', - 'All events': '所有日程', - 'Delete this event?': '是否删除这个日程?', - 'Delete Event': '删除日程', - Kanban: '看板', - Gantt: '甘特图', - 'Create gantt block': '创建甘特图区块', - 'Progress field': '进度字段', - 'Time scale': '时间缩放等级', - Hour: '小时', - 'Quarter of day': '四分之一天', - 'Half of day': '半天', - Year: '年', - QuarterYear: '季度', - 'Select grouping field': '选择分组字段', - Media: '多媒体', - Markdown: 'Markdown', - Wysiwyg: '富文本', - 'Chart blocks': '图表区块', - 'Column chart': '柱状图', - 'Bar chart': '条形图', - 'Line chart': '折线图', - 'Pie chart': '饼图', - 'Area chart': '面积图', - 'Other chart': '其他图表', - 'Other blocks': '其他区块', - 'In configuration': '配置中', - 'Chart title': '图表标题', - 'Chart type': '图表类型', - 'Chart config': '图表配置', - Templates: '模板', - 'Select template': '选择模板', - 'Action logs': '操作日志', - 'Create template': '创建模板', - 'Edit markdown': '编辑 Markdown', - 'Add block': '创建区块', - 'Add new': '添加', - 'Add record': '添加数据', - 'Custom field display name': '自定义字段名称', - 'Display fields': '显示字段', - 'Edit record': '编辑数据', - 'Delete menu item': '删除菜单项', - 'Add page': '添加页面', - 'Add group': '添加分组', - 'Add link': '添加链接', - 'Insert above': '在上面插入', - 'Insert below': '在下面插入', - Save: '保存', - 'Delete block': '删除区块', - 'Are you sure you want to delete it?': '你确定要删除吗?', - 'This is a demo text, **supports Markdown syntax**.': '这是一段演示文本,**支持 Markdown 语法**。', - - Filter: '筛选', - 'Connect data blocks': '连接数据区块', - 'Action type': '操作类型', - Actions: '操作', - Update: '更新', - View: '查看', - 'View record': '查看数据', - Refresh: '刷新', - - 'Data changes': '数据变更', - 'Field name': '字段标识', - 'Before change': '变更前', - 'After change': '变更后', - - 'Delete record': '删除数据', - 'Create collection': '创建数据表', - 'Collection display name': '数据表名称', - 'Collection name': '数据表标识', - Inherits: '继承', - 'Generate ID field automatically': '自动生成 ID 字段', - 'Store the creation user of each record': '记录创建人', - 'Store the last update user of each record': '记录最后更新人', - 'Store the creation time of each record': '记录创建时间', - 'Store the last update time of each record': '记录最后更新时间', - 'More options': '更多选项', - 'Records can be sorted': '可以对行记录进行排序', - 'Calendar collection': '日历数据表', - 'General collection': '普通数据表', - 'SQL collection': 'SQL数据表', - 'Connect to database view': '连接数据库视图', - 'Source collections': '来源数据表', - 'Field source': '来源字段', - Preview: '预览', - 'Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.': - '随机生成,可修改。支持英文、数字和下划线,必须以英文字母开头。', - Edit: '编辑', - 'Edit collection': '编辑数据表', - 'Configure field': '配置字段', - 'Configure fields': '配置字段', - 'Configure columns': '配置字段', - 'Edit field': '编辑字段', - Override: '重写', - 'Override field': '重写字段', - 'Configure fields of {{title}}': '「{{title}}」的字段配置', - 'Association fields filter': '关系筛选', - 'PK & FK fields': '主外键字段', - 'Association fields': '关系字段', - 'Choices fields': '选项字段', - 'System fields': '系统字段', - 'General fields': '普通字段', - 'Inherited fields': '继承字段', - 'Parent collection fields': '父表字段', - Basic: '基本类型', - 'Single line text': '单行文本', - 'Long text': '多行文本', - Phone: '手机号码', - Email: '电子邮箱', - Username: '用户名', - Null: '空值', - Boolean: '逻辑值', - Number: '数字', - Integer: '整数', - Percent: '百分比', - String: '字符串', - Password: '密码', - 'Advanced type': '高级类型', - Formula: '公式', - 'Formula description': '基于同一条记录中的其他字段计算出一个值。', - 'Syntax references': '语法参考', - 'Math.js comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types': - 'Math.js 包含大量内置函数和常量,并提供了集成的解决方案来处理不同的数据类型。', - 'Formula.js supports most Microsoft Excel formula functions.': 'Formula.js 支持大部分 Mircrosoft Excel 公式。', - Choices: '选择类型', - Checkbox: '勾选', - 'Display when unchecked': '未勾选时显示 ', - 'Single select': '下拉菜单(单选)', - 'Multiple select': '下拉菜单(多选)', - 'Radio group': '单选框', - 'Checkbox group': '复选框', - 'China region': '中国行政区', - 'Date & Time': '日期 & 时间', - Datetime: '日期', - Relation: '关系类型', - 'Link to': '关联', - 'Link to description': - '用于快速创建表关系,可兼容大多数普通场景。适合非开发人员使用。作为字段存在时,它是一个下拉选择用于选择目标数据表的数据。创建后,将同时在目标数据表中生成当前数据表的关联字段。', - 'Sub-table': '子表格', - 'System info': '系统信息', - 'Created at': '创建日期', - 'Last updated at': '最后修改日期', - 'Created by': '创建人', - 'Last updated by': '最后修改人', - 'Add field': '添加字段', - 'Field display name': '字段名称', - 'Field type': '字段类型', - 'Field interface': '字段类型', - 'Date format': '日期格式', - 'Year/Month/Day': '年/月/日', - 'Year-Month-Day': '年-月-日', - 'Day/Month/Year': '日/月/年', - 'Show time': '显示时间', - 'Time format': '时间格式', - '12 hour': '12 小时制', - '24 hour': '24 小时制', - 'Relationship type': '关系类型', - 'Inverse relationship type': '反向关系类型', - 'Source collection': '源数据表', - 'Source key': '源数据表字段标识', - 'Target collection': '目标数据表', - 'Through collection': '中间数据表', - 'Target key': '目标数据表字段标识', - 'Foreign key': '外键', - 'One to one': '一对一', - 'One to many': '一对多', - 'Many to one': '多对一', - 'Many to many': '多对多', - 'Foreign key 1': '外键1', - 'Foreign key 2': '外键2', - 'One to one description': '用于创建一对一关系,比如一个用户会有一套个人资料。', - 'One to many description': - '用于创建一对多关系,比如一个国家会有多个城市。作为字段存在时,它是一个子表格用于显示目标数据表的数据。创建后,会在目标数据表里自动生成一个多对一字段。', - 'Many to one description': - '用于创建多对一关系,比如一个城市只能属于一个国家,一个国家可以有多个城市。作为字段存在时,它是一个下拉选择用于选择目标数据表的数据。创建后,会在目标数据表里自动生成一个多对一字段。', - 'Many to many description': - '用于创建多对多关系,比如一个学生会有多个老师,一个老师也会有多个学生。作为字段存在时,它是一个下拉选择用于选择目标数据表的数据。', - 'Generated automatically if left blank': '留空时,自动生成中间表', - 'Display association fields': '显示关联表的字段', - 'Display field title': '显示字段标题', - 'Field component': '字段组件', - 'Allow multiple': '允许添加/关联多条', - 'Allow dissociate': '允许移除已关联记录', - 'Quick upload': '快速上传', - 'Select file': '选择文件', - Subtable: '子表格', - 'Sub-form': '子表单', - 'Sub-form(Popover)': '子表单(弹窗)', - 'Sub-details': '子详情', - 'Record picker': '数据选择器', - 'Toggles the subfield mode': '切换子字段模式', - 'Selector mode': '选择器模式', - 'Subtable mode': '子表格模式', - 'Subform mode': '子表单模式', - 'Field mode': '字段组件', - 'Allow add new data': '允许添加数据', - 'Edit block title': '编辑区块标题', - 'Block title': '区块标题', - Pattern: '模式', - Operator: '运算符', - Editable: '可编辑', - Readonly: '只读(禁止编辑)', - 'Easy-reading': '只读(阅读模式)', - 'Add filter': '添加筛选条件', - 'Add filter group': '添加筛选分组', - Comparision: '值比较', - is: '等于', - 'is not': '不等于', - contains: '包含', - 'does not contain': '不包含', - 'starts with': '开头是', - 'not starts with': '开头不是', - 'ends with': '结尾是', - 'not ends with': '结尾不是', - 'is empty': '为空', - 'is not empty': '不为空', - 'Edit chart': '编辑图表', - 'Add text': '添加文本', - 'Filterable fields': '可筛选字段', - 'Edit button': '编辑按钮', - Hide: '隐藏', - 'Enable actions': '启用操作', - Import: '导入', - Export: '导出', - Customize: '自定义', - Custom: '自定义', - Function: 'Function', - 'Popup form': 'Popup form', - 'Flexible popup': 'Flexible popup', - 'Configure actions': '配置操作', - 'Display order number': '显示序号', - 'Enable drag and drop sorting': '启用拖拽排序', - 'Triggered when the row is clicked': '点击表格行时触发', - 'Add tab': '添加标签页', - 'Disable tabs': '禁用标签页', - Details: '详情', - 'Edit tab': '编辑标签页', - 'Relationship blocks': '关系数据区块', - 'Select record': '选择数据', - 'Display name': '显示名称', - 'Select icon': '选择图标', - 'Custom column name': '自定义列名称', - 'Edit description': '编辑描述', - Required: '必填', - Unique: '不允许重复', - 'Label field': '标签字段', - 'Default is the ID field': '默认为 ID 字段', - 'Set default sorting rules': '设置排序规则', - - 'Set validation rules': '设置验证规则', - 'Max length': '最大长度', - 'Min length': '最小长度', - Maximum: '最大值', - Minimum: '最小值', - 'Max length must greater than min length': '最大长度必须大于最小长度', - 'Min length must less than max length': '最小长度必须小于最大长度', - 'Maximum must greater than minimum': '最大值必须大于最小值', - 'Minimum must less than maximum': '最小值必须小于最大值', - 'Validation rule': '验证规则', - 'Add validation rule': '新增验证规则', - Format: '格式', - 'Regular expression': '正则表达式', - 'Error message': '错误消息', - Length: '长度', - 'The field value cannot be greater than ': '数值不能大于', - 'The field value cannot be less than ': '数值不能小于', - 'The field value is not an integer number': '数字不是整数', - 'Set default value': '设置默认值', - 'Default value': '默认值', - - 'is before': '早于', - 'is after': '晚于', - 'is on or after': '不早于', - 'is on or before': '不晚于', - 'is between': '介于', - - Upload: '上传', - - 'Select level': '选择层级', - Province: '省', - City: '市', - Area: '区/县', - Street: '乡镇/街道', - Village: '村/居委会', - 'Must select to the last level': '必须选到最后一级', - - 'Move {{title}} to': '将 {{title}} 移动到', - 'Target position': '目标位置', - After: '之后', - Before: '之前', - - 'Add {{type}} before "{{title}}"': '在 "{{title}}" 前插入{{type}}', - 'Add {{type}} after "{{title}}"': '在 "{{title}}" 前插入{{type}}', - 'Add {{type}} in "{{title}}"': '在 "{{title}}" 里插入{{type}}', - - 'Original name': '原名称', - 'Custom name': '自定义名称', - 'Custom Title': '自定义标题', - - Options: '选项', - 'Option value': '选项值', - 'Option label': '选项标签', - Color: '颜色', - 'Add option': '添加选项', - 'Related collection': '关系表', - 'Allow linking to multiple records': '允许关联多条记录', - - Daily: '每天', - Weekly: '每周', - Monthly: '每月', - Yearly: '每年', - Repeats: '重复', - 'Configure calendar': '配置日历', - 'Title field': '标题字段', - 'Custom title': '自定义标题', - 'Show lunar': '展示农历', - 'Start date field': '开始日期字段', - 'End date field': '结束日期字段', - Navigate: '分页', - Title: '标题', - Description: '描述', - 'Select view': '切换视图', - Reset: '重置', - 'Importable fields': '可导入字段', - 'Exportable fields': '可导出字段', - 'Saved successfully': '保存成功', - Nickname: '昵称', - 'Sign in': '登录', - 'Sign in via account': '账号密码登录', - 'Sign in via phone': '手机号登录', - 'Create an account': '注册账号', - 'Sign up': '注册', - 'Confirm password': '确认密码', - 'Log in with an existing account': '使用已有账号登录', - 'Signed up successfully. It will jump to the login page.': '注册成功,将跳转登录页。', - 'Password mismatch': '重复密码不匹配', - Users: '用户', - 'Verification code': '验证码', - 'Send code': '发送验证码', - 'Retry after {{count}} seconds': '{{count}} 秒后重试', - 'Must be 2-16 characters in length (excluding @.<>"\'/)': '长度为2到16个字符(不能包含@.<>"\'/)', - - Roles: '角色', - 'Add role': '添加角色', - 'Role name': '角色名称', - Configure: '配置', - 'Configure permissions': '配置权限', - 'Edit role': '编辑角色', - - 'Action permissions': '数据表操作权限', - 'Menu permissions': '菜单访问权限', - - 'Menu item name': '菜单名称', - 'Allow access': '允许访问', - - 'Action name': '操作名称', - 'Allow action': '允许操作', - 'Action scope': '可操作数据范围', - 'Operate on new data': '对新增数据操作', - 'Operate on existing data': '对已有数据操作', - - Yes: '是', - No: '否', - - Red: '薄暮', - Magenta: '法式洋红', - Volcano: '火山', - Orange: '日暮', - Gold: '金盏花', - Lime: '青柠', - Green: '极光绿', - Cyan: '明青', - Blue: '拂晓蓝', - 'Geek blue': '极客蓝', - Purple: '酱紫', - Default: '默认', - - 'Add card': '添加卡片', - 'edit title': '修改标题', - 'Turn pages': '翻页', - Others: '其他', - 'Save as template': '保存为模板', - 'Save as block template': '保存为区块模板', - 'Block templates': '区块模板', - 'Convert reference to duplicate': '模板引用转为复制', - 'Template name': '模板名称', - 'Block type': '区块类型', - 'No blocks to connect': '没有可连接的区块', - 'Action column': '操作列', - 'Records per page': '每页显示数量', - '(Fields only)': '(仅字段)', - 'Button title': '按钮标题', - 'Button icon': '按钮图标', - 'Submitted successfully': '提交成功', - 'Operation succeeded': '操作成功', - 'Operation failed': '操作失败', - 'Open mode': '打开方式', - 'Popup size': '弹窗尺寸', - Small: '较窄', - Middle: '中等', - Large: '较宽', - 'Menu item title': '菜单项名称', - 'Menu item icon': '菜单项图标', - Target: '目标', - Position: '位置', - 'Insert before': '在前面插入', - 'Insert after': '在后面插入', - 'UI Editor': '界面配置', - ASC: '升序', - DESC: '降序', - 'Add sort field': '添加排序字段', - ID: 'ID', - 'Identifier for program usage. Support letters, numbers and underscores, must start with an letter.': - '用于程序使用的标识符,支持字母、数字和下划线,必须以字母开头。', - Drawer: '抽屉', - Dialog: '对话框', - 'Delete action': '删除操作', - 'Custom column title': '自定义列标题', - 'Column title': '列标题', - 'Original title: ': '原始标题: ', - 'Delete table column': '删除列', - - 'Skip required validation': '跳过必填校验', - 'Form values': '表单值', - 'Fields values': '字段值', - 'The field has been deleted': '字段已删除', - 'When submitting the following fields, the saved values are': '提交以下字段时,保存的值为', - 'After successful submission': '提交成功后', - Then: '然后', - 'Stay on current page': '停留在当前页面', - 'Redirect to': '跳转到', - 'Save action': '保存操作', - - Exists: '存在', - 'Add condition': '添加条件', - 'Add condition group': '添加条件分组', - exists: '存在', - 'not exists': '不存在', - '=': '=', - '≠': '≠', - '>': '>', - '≥': '≥', - '<': '<', - '≤': '≤', - 'Role UID': '角色标识', - - Precision: '精确度', - 'Rich Text': '富文本', - 'Junction collection': '中间表', - 'Leave it blank, unless you need a custom intermediate table': '默认留空,除非你需要一个自定义的中间表', - Fields: '字段', - 'Edit field title': '编辑字段标题', - 'Field title': '字段标题', - 'Original field title: ': '原始字段标题:', - 'Edit tooltip': '编辑提示信息', - 'Delete field': '删除字段', - - 'Select collection': '选择数据表', - 'Blank block': '空区块', - 'Duplicate template': '复制模板', - 'Reference template': '引用模板', - - 'Create calendar block': '创建日历区块', - 'Create kanban block': '创建看板区块', - 'Grouping field': '分组字段', - 'Single select and radio fields can be used as the grouping field': '数据表的单选字段可以作为分组字段', - 'Tab name': '标签名称', - 'Current record blocks': '当前数据区块', - - 'Popup message': '弹窗提示消息', - - 'Delete role': '删除角色', - - 'Role display name': '角色名称', - 'Default role': '默认角色', - 'All collections use general action permissions by default; permission configured individually will override the default one.': - '所有数据表都默认使用通用数据操作权限;同时,可以针对每个数据表单独配置权限。', - 'Allows configuration of the whole system, including UI, collections, permissions, etc.': - '允许配置系统,包括界面配置、数据表配置、权限配置、系统配置等全部配置项', - 'New menu items are allowed to be accessed by default.': '新增菜单项默认允许访问', - 'Global permissions': '全局配置', - 'General permissions': '通用配置', - 'Global action permissions': '全局操作权限', - 'General action permissions': '通用操作权限', - 'Plugin settings permissions': '插件配置权限', - 'Allow to desgin pages': '允许界面配置', - 'Allow to manage plugins': '允许管理插件', - 'Allow to configure plugins': '允许管理配置中心', - 'Allows to configure interface': '允许配置界面', - 'Allows to install, activate, disable plugins': '允许安装、激活、禁用插件', - 'Allows to configure plugins': '允许配置插件', - 'Action display name': '操作名称', - Allow: '允许', - 'Data scope': '数据范围', - 'Action on new records': '对新增数据操作', - 'Action on existing records': '对已有数据操作', - 'All records': '所有数据', - 'Own records': '自己的数据', - 'Permission policy': '权限策略', - Individual: '单独配置', - General: '通用配置', - Accessible: '允许访问', - 'Configure permission': '配置权限', - 'Action permission': '操作权限', - 'Field permission': '字段权限', - 'Scope name': '数据范围名称', - - 'Unsaved changes': '未保存修改', - "Are you sure you don't want to save?": '你确定不保存修改吗?', - Dragging: '拖拽中', - - Popup: '打开弹窗', - 'Trigger workflow': '触发工作流', - 'Request API': '请求API', - 'Assign field values': '字段赋值', - 'Constant value': '静态值', - 'Dynamic value': '动态值', - 'Current user': '当前用户', - 'Current record': '当前记录', - 'Parent record': '上级记录', - 'Current time': '当前时间', - Now: '现在', - 'Popup close method': '弹窗关闭方式', - 'Automatic close': '自动关闭', - 'Manually close': '手动关闭', - 'After successful update': '更新成功后', - 'Save record': '保存数据', - 'Updated successfully': '更新成功', - 'After successful save': '保存成功后', - 'After clicking the custom button, the following field values will be assigned according to the following form.': - '点击当前自定义按钮时,以下字段值将按照以下表单赋值。', - 'After clicking the custom button, the following fields of the current record will be saved according to the following form.': - '点击当前自定义按钮时,当前数据以下字段将按照以下表单保存。', - 'Button background color': '按钮颜色', - Highlight: '高亮', - 'Danger red': '红色', - 'Custom request': '自定义请求', - 'Request settings': '请求设置', - 'Request URL': '请求地址', - 'Request method': '请求方法', - 'Request query parameters': '请求查询参数(JSON格式)', - 'Request headers': '请求头参数(JSON格式)', - 'Request body': '请求体(JSON格式)', - 'Request success': '请求成功', - 'Invalid JSON format': '非法JSON格式', - 'After successful request': '请求成功之后', - 'Add exportable field': '添加可导出字段', - // 'Custom column title': '自定义列标题', - 'Audit logs': '操作记录', - 'Record ID': '数据 ID', - User: '用户', - Field: '字段', - Select: '选择', - 'Select field': '选择字段', - 'Field value changes': '变更记录', - 'One to one (has one)': '一对一(has one)', - 'One to one (belongs to)': '一对一(belongs to)', - 'Use the same time zone (GMT) for all users': '所有用户使用同一时区 (格林尼治标准时间)', - 'Province/city/area name': '省市区名称', - 'Enabled languages': '启用的语言', - 'View all plugins': '查看所有插件', - Print: '打印', - Done: '完成', - 'Sign up successfully, and automatically jump to the sign in page': '注册成功,即将跳转到登录页面', - ACL: '访问控制', - 'Collection manager': '数据表管理', - 'Plugin manager': '插件管理器', - Local: '本地', - 'Built-in': '内置', - Marketplace: '插件市场', - 'Add plugin': '新增插件', - Upgrade: '可供更新', - 'Plugin dependencies check failed': '插件依赖检查失败', - Remove: '移除', - Docs: '文档', - 'More details': '更多详情', - 'Upload new version': '上传新版', - 'Official plugin': '官方插件', - Version: '版本', - 'Npm package': 'Npm 包', - 'Upload plugin': '上传插件', - 'Npm package name': 'Npm 包名', - 'Add type': '新增方式', - 'Plugin source': '插件来源', - Changelog: '更新日志', - 'Dependencies check': '依赖检查', - 'Update plugin': '更新插件', - Installing: '安装中', - 'The deletion was successful.': '删除成功', - 'Plugin Zip File': '插件压缩包', - 'Compressed file url': '压缩包地址', - 'Last updated': '最后更新', - PackageName: '包名', - DisplayName: '显示名称', - Readme: '说明文档', - 'Dependencies compatibility check': '依赖兼容性检查', - 'Plugin dependencies check failed, you should change the dependent version to meet the version requirements.': - '插件兼容性检查失败,你应该修改依赖版本以满足版本要求。', - 'Version range': '版本范围', - "Plugin's version": '插件的版本', - Result: '结果', - 'No CHANGELOG.md file': '没有 CHANGELOG.md 日志', - 'No README.md file': '没有 README.md 文件', - Homepage: '主页', - 'Drag and drop the file here or click to upload, file size should not exceed 30M': - '将文件拖放到此处或单击上传,文件大小不应超过 30M', - "Dependencies check failed, can't enable.": '依赖检查失败,无法启用。', - 'Plugin starting...': '插件启动中...', - 'Plugin stopping...': '插件停止中...', - 'Are you sure to delete this plugin?': '确定要删除此插件吗?', - 're-download file': '重新下载文件', - 'Not enabled': '未启用', - 'Search plugin': '搜索插件', - Author: '作者', - 'Plugin loading failed. Please check the server logs.': '插件加载失败,请检查服务器日志。', - 'Coming soon...': '敬请期待...', - 'All plugin settings': '所有插件配置', - Bookmark: '书签', - 'Manage all settings': '管理所有配置', - 'Create inverse field in the target collection': '在目标数据表里创建反向关系字段', - 'Inverse field name': '反向关系字段标识', - 'Inverse field display name': '反向关系字段名称', - 'Bulk update': '批量更新', - 'After successful bulk update': '批量成功更新后', - 'Bulk edit': '批量编辑', - 'Data will be updated': '更新的数据', - Selected: '选中', - All: '所有', - 'Update selected data?': '更新选中的数据吗?', - 'Update all data?': '更新全部数据吗?', - 'Remains the same': '不更新', - 'Changed to': '修改为', - Clear: '清空', - 'Add attach': '增加关联', - 'Please select the records to be updated': '请选择要更新的记录', - Selector: '选择器', - Inner: '里面', - 'Search and select collection': '搜索并选择数据表', - 'Please fill in the iframe URL': '请填写嵌入的地址', - - 'Fix block': '固定区块', - 'Plugin name': '插件', - 'Plugin tab name': '插件标签页', - 'Enable page header': '启用页眉', - 'Display page title': '显示页面标题', - 'Edit page title': '编辑页面标题', - 'Enable page tabs': '启用页面选项卡', - 'Enable link': '启用链接', - 'Column width': '列宽', - Sortable: '可排序的', - Constant: '常量', - 'Select a variable': '选择变量', - Insert: '插入', - 'Insert if not exists': '不存在时插入', - 'Insert if not exists, or update': '不存在时插入,否则更新', - 'System variables': '系统变量', - 'Date variables': '日期变量', - 'Double click to choose entire object': '双击选择整个对象', - True: '真', - False: '假', - Prettify: '格式化', - Theme: '主题', - 'Default theme': '默认主题', - 'Compact theme': '紧凑主题', - 'This is likely a NocoBase internals bug. Please open an issue at <1>here': - '这可能是 NocoBase 内部的问题,你可以在<1>这里将该错误反馈给我们,我们会尽快修复', - 'Render Failed': '渲染失败', - Feedback: '反馈问题', - 'Try again': '重试一下', - - 'Click or drag file to this area to upload': '点击或拖拽文件到此区域上传', - 'Support for a single or bulk upload, file size should not exceed': '支持单个或批量上传,文件大小不能超过', - 'Default title for each record': '用作数据的默认标题', - - 'If collection inherits, choose inherited collections as templates': - '当前表有继承关系时,可选择继承链路上的表作为模板来源', - 'Select an existing piece of data as the initialization data for the form': '选择一条已有的数据作为表单的初始化数据', - 'Only the selected fields will be used as the initialization data for the form': - '仅选择的字段才会作为表单的初始化数据', - 'Template Data': '模板数据', - 'Data fields': '数据字段', - 'Add template': '添加模板', - 'Display data template selector': '显示数据模板选择框', - 'Form data templates': '表单数据模板', - 'Data template': '数据模板', - - 'No configuration available.': '无可配置项。', - 'Reload application': '重载应用', - 'The application is reloading, please do not close the page.': '应用正在重新加载,请勿关闭页面。', - 'Application reloading': '应用重新加载中', - 'Restart application': '重启应用', - 'Allows to clear cache, reboot application': '允许清除缓存,重启应用', - 'The will interrupt service, it may take a few seconds to restart. Are you sure to continue?': - '重启将会中断当前服务,这个过程可能需要一点时间,确定要继续吗?', - Restart: '重启', - 'Clear cache': '清除缓存', - Duplicate: '复制', - Duplicating: '复制中', - 'Duplicate mode': '复制方式', - 'Quick duplicate': '快速复制', - 'Duplicate and continue': '复制并继续', - 'Please configure the duplicate fields': '请配置要复制的字段', - Add: '创建', - 'Add new mode': '添加方式', - 'Quick add': '快捷添加', - 'Modal add': '弹窗添加', - 'Save mode': '保存方式', - 'First or create': '不存在时则新增,存在时不处理', - 'Update or create': '不存在时新增,存在时更新', - 'Find by the following fields': '通过以下字段查找', - Create: '仅新增', - 'Current form': '当前表单', - 'Current object': '当前对象', - 'Quick create': '快速创建', - Dropdown: '下拉菜单', - 'Pop-up': '弹窗', - 'File manager': '文件管理器', - 'Direct duplicate': '直接复制', - 'Copy into the form and continue to fill in': '复制到表单并继续填写', - 'Linkage with form fields': '从表单字段联动', - 'Failed to load plugin': '插件加载失败', - 'Allow add new, update and delete actions': '允许增删改操作', - 'Date display format': '日期显示格式', - 'Assign data scope for the template': '为模板指定数据范围', - 'Table selected records': '表格中选中的记录', - Tag: '标签', - 'Tag color field': '标签颜色字段', - 'Sync successfully': '同步成功', - 'Sync from form fields': '同步表单字段', - 'Select all': '全选', - 'UnSelect all':'取消全选', - 'Determine whether a record exists by the following fields': '通过以下字段判断记录是否存在', - 'Cascade Select': '级联选择', - Execute: '执行', - 'Please use a valid SELECT or WITH AS statement': '请使用有效的 SELECT 或 WITH AS 语句', - 'Please confirm the SQL statement first': '请先确认 SQL 语句', - 'Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects': - '自动删除依赖于该表的对象,以及依赖这些对象的对象', -}; diff --git a/packages/core/client/src/schema-component/antd/menu/Menu.tsx b/packages/core/client/src/schema-component/antd/menu/Menu.tsx index 7e7ea1400..7113ad8a6 100644 --- a/packages/core/client/src/schema-component/antd/menu/Menu.tsx +++ b/packages/core/client/src/schema-component/antd/menu/Menu.tsx @@ -20,6 +20,7 @@ import { useCollectMenuItems, useMenuItem } from '../../../hooks/useMenuItem'; import { useProps } from '../../hooks/useProps'; import { MenuDesigner } from './Menu.Designer'; import { findKeysByUid, findMenuItem } from './util'; +import { useMenuTranslation } from './locale'; const subMenuDesignerCss = css` position: relative; @@ -477,7 +478,7 @@ export const Menu: ComposedMenu = observer( Menu.Item = observer( (props) => { - const { t } = useTranslation(); + const { t } = useMenuTranslation(); const { pushMenuItem } = useCollectMenuItems(); const { icon, children, ...others } = props; const schema = useFieldSchema(); @@ -532,7 +533,7 @@ Menu.Item = observer( Menu.URL = observer( (props) => { - const { t } = useTranslation(); + const { t } = useMenuTranslation(); const { pushMenuItem } = useCollectMenuItems(); const { icon, children, ...others } = props; const schema = useFieldSchema(); @@ -586,7 +587,7 @@ Menu.URL = observer( Menu.SubMenu = observer( (props) => { - const { t } = useTranslation(); + const { t } = useMenuTranslation(); const { Component, getMenuItems } = useMenuItem(); const { pushMenuItem } = useCollectMenuItems(); const { icon, children, ...others } = props; diff --git a/packages/core/client/src/schema-component/antd/menu/locale.ts b/packages/core/client/src/schema-component/antd/menu/locale.ts new file mode 100644 index 000000000..3be3e7d29 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/menu/locale.ts @@ -0,0 +1,5 @@ +import { useTranslation } from 'react-i18next'; + +export const useMenuTranslation = () => { + return useTranslation('lm-menus'); +}; diff --git a/packages/core/client/src/schema-component/antd/page/Page.tsx b/packages/core/client/src/schema-component/antd/page/Page.tsx index be80e8539..136037a98 100644 --- a/packages/core/client/src/schema-component/antd/page/Page.tsx +++ b/packages/core/client/src/schema-component/antd/page/Page.tsx @@ -82,7 +82,7 @@ export const Page = (props) => { className={classNames('pageHeaderCss', pageHeaderTitle || enablePageTabs ? '' : 'height0')} ghost={false} // 如果标题为空的时候会导致 PageHeader 不渲染,所以这里设置一个空白字符,然后再设置高度为 0 - title={t(pageHeaderTitle || ' ')} + title={pageHeaderTitle || ' '} {...others} footer={ enablePageTabs && ( diff --git a/packages/plugins/@nocobase/plugin-api-doc/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-api-doc/src/locale/en-US.json new file mode 100644 index 000000000..e5f1e42a1 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-api-doc/src/locale/en-US.json @@ -0,0 +1,5 @@ +{ + "API documentation": "API documentation", + "Documentation": "Documentation", + "Select a definition": "Select a definition" +} diff --git a/packages/plugins/@nocobase/plugin-api-doc/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-api-doc/src/locale/en-US.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-api-doc/src/locale/en-US.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-api-doc/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-api-doc/src/locale/zh-CN.json new file mode 100644 index 000000000..d68ec76b1 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-api-doc/src/locale/zh-CN.json @@ -0,0 +1,5 @@ +{ + "API documentation": "API 文档", + "Documentation": "文档", + "Select a definition": "选择端点" +} diff --git a/packages/plugins/@nocobase/plugin-api-doc/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-api-doc/src/locale/zh-CN.ts deleted file mode 100644 index 86c8ac0a1..000000000 --- a/packages/plugins/@nocobase/plugin-api-doc/src/locale/zh-CN.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default { - 'API documentation': 'API 文档', - 'Documentation': '文档', - 'Select a definition': '选择端点', -}; diff --git a/packages/plugins/@nocobase/plugin-api-keys/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-api-keys/src/locale/en-US.json new file mode 100644 index 000000000..75f31f40f --- /dev/null +++ b/packages/plugins/@nocobase/plugin-api-keys/src/locale/en-US.json @@ -0,0 +1,21 @@ +{ + "API keys": "API keys", + "API key created successfully": "API key created successfully", + "Make sure to copy your personal access key now as you will not be able to see this again.": "Make sure to copy your personal access key now as you will not be able to see this again.", + "Key name": "Key name", + "Expiration": "Expiration", + "Delete API key": "Delete API key", + "Role": "Role", + "Keys manager": "Keys manager", + "Created at": "Created at", + "Add API key": "Add API key", + "Never": "Never", + "Custom": "Custom", + "Never expires": "Never expires", + "1 Day": "1 Day", + "7 Days": "7 Days", + "30 Days": "30 Days", + "90 Days": "90 Days", + "Role not found": "Role not found", + "Allow only your own roles to be selected": "Allow only your own roles to be selected" +} diff --git a/packages/plugins/@nocobase/plugin-api-keys/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-api-keys/src/locale/en-US.ts deleted file mode 100644 index 2d905d194..000000000 --- a/packages/plugins/@nocobase/plugin-api-keys/src/locale/en-US.ts +++ /dev/null @@ -1,3 +0,0 @@ -const locale = {}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-api-keys/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-api-keys/src/locale/fr-FR.ts deleted file mode 100644 index 2d905d194..000000000 --- a/packages/plugins/@nocobase/plugin-api-keys/src/locale/fr-FR.ts +++ /dev/null @@ -1,3 +0,0 @@ -const locale = {}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-api-keys/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-api-keys/src/locale/zh-CN.json new file mode 100644 index 000000000..1ba9f76dd --- /dev/null +++ b/packages/plugins/@nocobase/plugin-api-keys/src/locale/zh-CN.json @@ -0,0 +1,21 @@ +{ + "API keys": "API 密钥", + "API key created successfully": "API 密钥创建成功", + "Make sure to copy your personal access key now as you will not be able to see this again.": "请确保现在复制你的个人访问密钥,因为你将无法再次看到这个密钥。", + "Key name": "密钥名称", + "Expiration": "过期时间", + "Delete API key": "删除 API 密钥", + "Role": "角色", + "Keys manager": "密钥管理", + "Created at": "创建时间", + "Add API key": "添加 API 密钥", + "Never": "永不", + "Custom": "自定义", + "Never expires": "永不过期", + "1 Day": "1 天", + "7 Days": "7 天", + "30 Days": "30 天", + "90 Days": "90 天", + "Role not found": "角色不存在", + "Allow only your own roles to be selected": "只允许选择你自己拥有的角色" +} diff --git a/packages/plugins/@nocobase/plugin-api-keys/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-api-keys/src/locale/zh-CN.ts deleted file mode 100644 index ee5083ec7..000000000 --- a/packages/plugins/@nocobase/plugin-api-keys/src/locale/zh-CN.ts +++ /dev/null @@ -1,24 +0,0 @@ -const locale = { - 'API keys': 'API 密钥', - 'API key created successfully': 'API 密钥创建成功', - 'Make sure to copy your personal access key now as you will not be able to see this again.': - '请确保现在复制你的个人访问密钥,因为你将无法再次看到这个密钥。', - 'Key name': '密钥名称', - Expiration: '过期时间', - 'Delete API key': '删除 API 密钥', - Role: '角色', - 'Keys manager': '密钥管理', - 'Created at': '创建时间', - 'Add API key': '添加 API 密钥', - Never: '永不', - Custom: '自定义', - 'Never expires': '永不过期', - '1 Day': '1 天', - '7 Days': '7 天', - '30 Days': '30 天', - '90 Days': '90 天', - 'Role not found': '角色不存在', - 'Allow only your own roles to be selected': '只允许选择你自己拥有的角色', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/en-US.json new file mode 100644 index 000000000..db69ca583 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/en-US.json @@ -0,0 +1,3 @@ +{ + "Details of changes": "Details of changes" +} diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/en-US.ts deleted file mode 100644 index 4b43902c4..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/en-US.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - 'Details of changes': 'Details of changes', -}; diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/es-ES.json b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/es-ES.json new file mode 100644 index 000000000..2ba1be068 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/es-ES.json @@ -0,0 +1,3 @@ +{ + "Details of changes": "Detalles de los cambios" +} diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/es-ES.ts deleted file mode 100644 index 6bb1e5fe7..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/es-ES.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - 'Details of changes': 'Detalles de los cambios', -}; \ No newline at end of file diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/fr-FR.json new file mode 100644 index 000000000..f3af0724c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/fr-FR.json @@ -0,0 +1,3 @@ +{ + "Details of changes": "Détails des changements" +} diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/fr-FR.ts deleted file mode 100644 index 7e42ec620..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/fr-FR.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - 'Details of changes': 'Détails des changements', -}; diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/ja-JP.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/ja-JP.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/pt-BR.json new file mode 100644 index 000000000..21f4ab35c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/pt-BR.json @@ -0,0 +1,3 @@ +{ + "Details of changes": "Detalhes das mudanças" +} diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/pt-BR.ts deleted file mode 100644 index 72b4d76d5..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/pt-BR.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - 'Details of changes': 'Detalhes das mudanças', -}; diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/ru-RU.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/ru-RU.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/ru-RU.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/tr-TR.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/tr-TR.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/tr-TR.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/zh-CN.json new file mode 100644 index 000000000..4c9cd5139 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/zh-CN.json @@ -0,0 +1,3 @@ +{ + "Details of changes": "变更详情" +} diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-audit-logs/src/locale/zh-CN.ts deleted file mode 100644 index 22efb743c..000000000 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/locale/zh-CN.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - 'Details of changes': '变更详情', -}; diff --git a/packages/plugins/@nocobase/plugin-auth/src/client/locale/index.ts b/packages/plugins/@nocobase/plugin-auth/src/client/locale/index.ts index 99bde0f3b..b8d1f6304 100644 --- a/packages/plugins/@nocobase/plugin-auth/src/client/locale/index.ts +++ b/packages/plugins/@nocobase/plugin-auth/src/client/locale/index.ts @@ -3,5 +3,5 @@ import { useTranslation } from 'react-i18next'; export const NAMESPACE = 'auth'; export function useAuthTranslation() { - return useTranslation(NAMESPACE); + return useTranslation([NAMESPACE, 'client'], { nsMode: 'fallback' }); } diff --git a/packages/plugins/@nocobase/plugin-auth/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-auth/src/locale/en-US.json new file mode 100644 index 000000000..7505a2236 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-auth/src/locale/en-US.json @@ -0,0 +1,23 @@ +{ + "Auth Type": "Auth Type", + "Authenticators": "Authenticators", + "Authentication": "Authentication", + "Sign in via email": "Sign in via email", + "Sign in via password": "Sign in via password", + "Not allowed to sign up": "Not allowed to sign up", + "Allow to sign up": "Allow to sign up", + "The username or email is incorrect, please re-enter": "The username or email is incorrect, please re-enter", + "The password is incorrect, please re-enter": "The password is incorrect, please re-enter", + "Not a valid cellphone number, please re-enter": "Not a valid cellphone number, please re-enter", + "The phone number has been registered, please login directly": "The phone number has been registered, please login directly", + "The phone number is not registered, please register first": "The phone number is not registered, please register first", + "Please keep and enable at least one authenticator": "Please keep and enable at least one authenticator", + "Allow to sign in with": "Allow to sign in with", + "Please enter a valid username": "Please enter a valid username", + "Please enter a valid email": "Please enter a valid email", + "Please enter your username or email": "Please enter your username or email", + "SMS": "SMS", + "Username/Email": "Username/Email", + "Auth UID": "Auth UID", + "The authentication allows users to sign in via username or email.": "The authentication allows users to sign in via username or email." +} diff --git a/packages/plugins/@nocobase/plugin-auth/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-auth/src/locale/zh-CN.json new file mode 100644 index 000000000..45c27007c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-auth/src/locale/zh-CN.json @@ -0,0 +1,23 @@ +{ + "Auth Type": "认证类型", + "Authenticators": "认证器", + "Authentication": "用户认证", + "Sign in via email": "邮箱登录", + "Sign in via password": "密码登录", + "Not allowed to sign up": "禁止注册", + "Allow to sign up": "允许注册", + "The username or email is incorrect, please re-enter": "用户名或邮箱有误,请重新输入", + "The password is incorrect, please re-enter": "密码有误,请重新输入", + "Not a valid cellphone number, please re-enter": "不是有效的手机号,请重新输入", + "The phone number has been registered, please login directly": "手机号已注册,请直接登录", + "The phone number is not registered, please register first": "手机号未注册,请先注册", + "Please keep and enable at least one authenticator": "请至少保留并启用一个认证器", + "Allow to sign in with": "允许使用以下方式登录", + "Please enter a valid username": "请输入有效的用户名", + "Please enter a valid email": "请输入有效的邮箱", + "Please enter your username or email": "请输入用户名或邮箱", + "SMS": "短信", + "Username/Email": "用户名/邮箱", + "Auth UID": "认证标识", + "The authentication allows users to sign in via username or email.": "该认证方式支持用户通过用户名或邮箱登录。" +} diff --git a/packages/plugins/@nocobase/plugin-auth/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-auth/src/locale/zh-CN.ts deleted file mode 100644 index 73ffbd3a6..000000000 --- a/packages/plugins/@nocobase/plugin-auth/src/locale/zh-CN.ts +++ /dev/null @@ -1,25 +0,0 @@ -const locale = { - 'Auth Type': '认证类型', - Authenticators: '认证器', - Authentication: '用户认证', - 'Sign in via email': '邮箱登录', - 'Sign in via password': '密码登录', - 'Not allowed to sign up': '禁止注册', - 'Allow to sign up': '允许注册', - 'The username or email is incorrect, please re-enter': '用户名或邮箱有误,请重新输入', - 'The password is incorrect, please re-enter': '密码有误,请重新输入', - 'Not a valid cellphone number, please re-enter': '不是有效的手机号,请重新输入', - 'The phone number has been registered, please login directly': '手机号已注册,请直接登录', - 'The phone number is not registered, please register first': '手机号未注册,请先注册', - 'Please keep and enable at least one authenticator': '请至少保留并启用一个认证器', - 'Allow to sign in with': '允许使用以下方式登录', - 'Please enter a valid username': '请输入有效的用户名', - 'Please enter a valid email': '请输入有效的邮箱', - 'Please enter your username or email': '请输入用户名或邮箱', - SMS: '短信', - 'Username/Email': '用户名/邮箱', - 'Auth UID': '认证标识', - 'The authentication allows users to sign in via username or email.': '该认证方式支持用户通过用户名或邮箱登录。', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-cas/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-cas/src/locale/en-US.json new file mode 100644 index 000000000..17d37a8e1 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-cas/src/locale/en-US.json @@ -0,0 +1,7 @@ +{ + "Sign in": "Sign in", + "User will be registered automatically if not exists.": "User will be registered automatically if not exists.", + "Sign up automatically when the user does not exist": "Sign up automatically when the user does not exist", + "Service domain": "Service domain", + "The domain is usually the address of your server, in local development, you can use the address of your local machine, such as: http://localhost:13000": "The domain is usually the address of your server, in local development, you can use the address of your local machine, such as: http://localhost:13000" +} diff --git a/packages/plugins/@nocobase/plugin-cas/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-cas/src/locale/zh-CN.json new file mode 100644 index 000000000..ccae2ee99 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-cas/src/locale/zh-CN.json @@ -0,0 +1,7 @@ +{ + "Sign in": "统一身份登录", + "User will be registered automatically if not exists.": "用户不存在时将自动注册。", + "Sign up automatically when the user does not exist": "用户不存在时自动注册", + "Service domain": "服务域名", + "The domain is usually the address of your server, in local development, you can use the address of your local machine, such as: http://localhost:13000": "域名通常是你的服务器地址,在本地开发时,可以使用你本机的地址,例如:http://localhost:13000" +} diff --git a/packages/plugins/@nocobase/plugin-cas/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-cas/src/locale/zh-CN.ts deleted file mode 100644 index a570dd7c6..000000000 --- a/packages/plugins/@nocobase/plugin-cas/src/locale/zh-CN.ts +++ /dev/null @@ -1,9 +0,0 @@ -const locale = { - 'Sign in': '统一身份登录', - 'User will be registered automatically if not exists.': '用户不存在时将自动注册。', - 'Sign up automatically when the user does not exist': '用户不存在时自动注册', - 'Service domain': '服务域名', - 'The domain is usually the address of your server, in local development, you can use the address of your local machine, such as: http://localhost:13000': '域名通常是你的服务器地址,在本地开发时,可以使用你本机的地址,例如:http://localhost:13000', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-custom-request/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-custom-request/src/locale/zh-CN.json new file mode 100644 index 000000000..d050cf3cc --- /dev/null +++ b/packages/plugins/@nocobase/plugin-custom-request/src/locale/zh-CN.json @@ -0,0 +1,26 @@ +{ + "Access Control": "权限控制", + "Custom Request": "自定义请求", + "Request settings": "请求设置", + "Roles": "角色", + "If not set, all roles can see this action": "如果不设置,所有角色都可以看到这个自定义请求", + "Title": "标题", + "HTTP method": "HTTP 方法", + "URL": "URL", + "Headers": "请求头", + "Parameters": "参数", + "Add request header": "添加请求头", + "Add parameter": "添加参数", + "Enter description info": "输入描述信息", + "Body": "请求体", + "Use variable": "使用变量", + "Format": "格式化", + "Insert": "插入", + "Timeout config": "超时设置", + "ms": "毫秒", + "Input request data": "输入请求数据", + "Only support standard JSON data": "仅支持标准 JSON 数据", + "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" 请求头仅支持 \"application/json\",无需填写", + "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": "当请求方法为 Post、Put 或 Patch 时,且此自定义请求在表单内,请求体将自动填充表单数据", + "Please configure the request settings first": "请先配置请求设置" +} diff --git a/packages/plugins/@nocobase/plugin-custom-request/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-custom-request/src/locale/zh-CN.ts deleted file mode 100644 index 23de800d3..000000000 --- a/packages/plugins/@nocobase/plugin-custom-request/src/locale/zh-CN.ts +++ /dev/null @@ -1,26 +0,0 @@ -export default { - 'Access Control': '权限控制', - 'Custom Request': '自定义请求', - 'Request settings': '请求设置', - 'Roles': '角色', - 'If not set, all roles can see this action': '如果不设置,所有角色都可以看到这个自定义请求', - "Title": "标题", - 'HTTP method': 'HTTP 方法', - 'URL': 'URL', - 'Headers': '请求头', - 'Parameters': '参数', - 'Add request header': '添加请求头', - 'Add parameter': '添加参数', - 'Enter description info': '输入描述信息', - Body: '请求体', - 'Use variable': '使用变量', - Format: '格式化', - Insert: '插入', - 'Timeout config': '超时设置', - ms: '毫秒', - 'Input request data': '输入请求数据', - 'Only support standard JSON data': '仅支持标准 JSON 数据', - '"Content-Type" only support "application/json", and no need to specify': '"Content-Type" 请求头仅支持 "application/json",无需填写', - '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': '当请求方法为 Post、Put 或 Patch 时,且此自定义请求在表单内,请求体将自动填充表单数据', - 'Please configure the request settings first': '请先配置请求设置', -} diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/en-US.json new file mode 100644 index 000000000..f066a6f6d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/en-US.json @@ -0,0 +1,84 @@ +{ + "Edit": "Edit", + "Delete": "Delete", + "Cancel": "Cancel", + "Submit": "Submit", + "Actions": "Actions", + "Title": "Title", + "Enable": "Enable", + "Chart": "Chart", + "ChartV2": "ChartV2", + "Charts": "Charts", + "Configure": "Configure", + "Duplicate": "Duplicate", + "Configure chart": "Configure chart", + "Transform": "Transform", + "Chart type": "Chart type", + "JSON config": "JSON config", + "Query": "Query", + "Data": "Data", + "Run query": "Run query", + "Measures": "Measures", + "Dimensions": "Dimensions", + "Filter": "Filter", + "Sort": "Sort", + "Limit": "Limit", + "Enable cache": "Enable cache", + "TTL (second)": "TTL (second)", + "Field": "Field", + "Aggregation": "Aggregation", + "Alias": "Alias", + "Format": "Format", + "The first 10 records of the query result:": "The first 10 records of the query result:", + "Please run query to retrive data.": "Please run query to retrive data.", + "Type": "Type", + "Add field": "Add field", + "Add chart": "Add chart", + "xField": "xField", + "yField": "yField", + "seriesField": "seriesField", + "angleField": "angleField", + "colorField": "colorField", + "Line Chart": "Line Chart", + "Area Chart": "Area Chart", + "Column Chart": "Column Chart", + "Bar Chart": "Bar Chart", + "Pie Chart": "Pie Chart", + "Dual Axes Chart": "Dual Axes Chart", + "Scatter Chart": "Scatter Chart", + "Gauge Chart": "Gauge Chart", + "Statistic": "Statistic", + "Currency": "Currency", + "Percent": "Percent", + "Exponential": "Exponential", + "Abbreviation": "Abbreviation", + "Please configure and run query": "Please configure and run query", + "Please configure chart": "Please configure chart", + "Are you sure to cancel?": "Are you sure to cancel?", + "You changes are not saved. If you click OK, your changes will be lost.": "You changes are not saved. If you click OK, your changes will be lost.", + "Same properties set in the form above will be overwritten by this JSON config.": "Same properties set in the form above will be overwritten by this JSON config.", + "Built-in": "Built-in", + "Config reference: ": "Config reference: ", + "Table": "Table", + "Sum": "Sum", + "Avg": "Avg", + "Count": "Count", + "Min": "Min", + "Max": "Max", + "Please select a chart type.": "Please select a chart type.", + "Collection": "Collection", + "isStack": "isStack", + "isPercent": "isPercent", + "isGroup": "isGroup", + "smooth": "smooth", + "Expand": "Expand", + "Current filter": "Current filter", + "Add custom field": "Add custom field", + "To filter with custom fields, use \"Current filter\" variables in the chart configuration.": "To filter with custom fields, use \"Current filter\" variables in the chart configuration.", + "Input": "Input", + "Date range": "Date range", + "Time range": "Time range", + "Edit field properties": "Edit field properties", + "Select a source field to use metadata of the field": "Select a source field to use metadata of the field", + "Original field": "Original field" +} diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/en-US.ts deleted file mode 100644 index cd2bcdef4..000000000 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/en-US.ts +++ /dev/null @@ -1,34 +0,0 @@ -export default { - Edit: 'Edit', - Delete: 'Delete', - Cancel: 'Cancel', - Submit: 'Submit', - Actions: 'Actions', - Title: 'Title', - Enable: 'Enable', - 'SAML manager': 'SAML manager', - 'SAML Providers': 'SAML Providers', - 'Redirect url': 'Redirect url', - 'SP entity id': 'SP entity id', - 'Add provider': 'Add', - 'Edit provider': 'Edit', - 'Client id': 'Client id', - 'Entity id or issuer': 'Entity id or issuer', - 'Login Url': 'Login Url', - 'Public cert': 'Public cert', - 'Delete provider': 'Delete', - 'Are you sure you want to delete it?': 'Are you sure you want to delete it?', - 'Sign in button name, which will be displayed on the sign in page': - 'Sign in button name, which will be displayed on the sign in page', - Expand: 'Expand', - 'Current filter': 'Current filter', - 'Add custom field': 'Add custom field', - 'To filter with custom fields, use "Current filter" variables in the chart configuration.': - 'To filter with custom fields, use "Current filter" variables in the chart configuration.', - Input: 'Input', - 'Date range': 'Date range', - 'Time range': 'Time range', - 'Edit field properties': 'Edit field properties', - 'Select a source field to use metadata of the field': 'Select a source field to use metadata of the field', - 'Original field': 'Original field', -}; diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/fr-FR.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/fr-FR.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/ja-JP.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/ja-JP.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/pt-BR.ts deleted file mode 100644 index 6969b693c..000000000 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/pt-BR.ts +++ /dev/null @@ -1,23 +0,0 @@ -export default { - Edit: 'Editar', - Delete: 'Delete', - Cancel: 'Cancelar', - Submit: 'Enviar', - Actions: 'Ações', - Title: 'Titulo', - Enable: 'Ativo', - 'SAML manager': 'Gerenciador SAML', - 'SAML Providers': 'Provedores SAML', - 'Redirect url': 'URL de redirecionamento', - 'SP entity id': 'ID de entidade do provedor de serviço (SP)', - 'Add provider': 'Adicionar', - 'Edit provider': 'Editar', - 'Client id': 'ID do cliente', - 'Entity id or issuer': 'ID de entidade ou emissor', - 'Login Url': 'URL de login', - 'Public cert': 'Certificado público', - 'Delete provider': 'Excluir', - 'Are you sure you want to delete it?': 'Tem certeza de que deseja excluí-lo?', - 'Sign in button name, which will be displayed on the sign in page': - 'Nome do botão de login, que será exibido na página de login', -}; diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/ru-RU.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/ru-RU.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/ru-RU.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/tr-TR.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/tr-TR.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/tr-TR.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/zh-CN.json new file mode 100644 index 000000000..81f733a24 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/zh-CN.json @@ -0,0 +1,85 @@ +{ + "Edit": "编辑", + "Delete": "删除", + "Cancel": "取消", + "Submit": "提交", + "Actions": "操作", + "Title": "名称", + "Enable": "启用", + "Chart": "图表", + "ChartV2": "图表V2", + "Charts": "图表", + "Configure": "配置", + "Duplicate": "复制", + "Configure chart": "配置图表", + "Transform": "数据转换", + "Chart type": "图表类型", + "JSON config": "JSON 配置", + "Query": "查询", + "Data": "数据", + "Run query": "执行查询", + "Measures": "度量", + "Dimensions": "维度", + "Filter": "过滤", + "Sort": "排序", + "Limit": "结果数量", + "Enable cache": "启用缓存", + "TTL (second)": "缓存时间 (秒)", + "Field": "字段", + "Aggregation": "聚合", + "Alias": "别名", + "Format": "格式", + "The first 10 records of the query result:": "查询结果的前 10 条记录:", + "Please run query to retrive data.": "请执行查询来获取数据。", + "Type": "类型", + "Add field": "添加字段", + "Add chart": "添加图表", + "xField": "x轴字段", + "yField": "y轴字段", + "seriesField": "分类字段", + "angleField": "角度字段", + "colorField": "颜色字段", + "Line Chart": "折线图", + "Area Chart": "面积图", + "Column Chart": "柱状图", + "Bar Chart": "条形图", + "Pie Chart": "饼图", + "Dual Axes Chart": "双轴图", + "Scatter Chart": "散点图", + "Gauge Chart": "仪表盘", + "Statistic": "统计", + "Currency": "货币", + "Percent": "百分比", + "Exponential": "科学记数法", + "Abbreviation": "缩写", + "Please configure and run query": "请配置并执行数据查询", + "Please configure chart": "请配置图表", + "Are you sure to cancel?": "确定要取消吗?", + "You changes are not saved. If you click OK, your changes will be lost.": "您的更改尚未保存。如果您点击“确定”,您的更改将丢失。", + "Same properties set in the form above will be overwritten by this JSON config.": "上面表单中设置的相同属性将被JSON配置覆盖。", + "Built-in": "内置图表", + "Config reference: ": "配置参考: ", + "Table": "表格", + "Sum": "求和", + "Avg": "平均值", + "Count": "计数", + "Min": "最小值", + "Max": "最大值", + "Please select a chart type.": "请选择图表类型", + "Collection": "数据表", + "isStack": "堆叠", + "isPercent": "显示为百分比", + "isGroup": "分组", + "smooth": "平滑曲线", + "Collapse": "折叠", + "Expand": "展开", + "Current filter": "当前筛选", + "Add custom field": "添加自定义字段", + "To filter with custom fields, use \"Current filter\" variables in the chart configuration.": "要通过自定义字段筛选,需要在图表配置中使用“当前筛选”变量。", + "Input": "输入框", + "Date range": "日期范围", + "Time range": "时间范围", + "Edit field properties": "编辑字段属性", + "Select a source field to use metadata of the field": "选择来源字段可以复用字段的元数据配置", + "Original field": "原始字段" +} diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/zh-CN.ts deleted file mode 100644 index eb791f3da..000000000 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/zh-CN.ts +++ /dev/null @@ -1,88 +0,0 @@ -export default { - Edit: '编辑', - Delete: '删除', - Cancel: '取消', - Submit: '提交', - Actions: '操作', - Title: '名称', - Enable: '启用', - Chart: '图表', - ChartV2: '图表V2', - Charts: '图表', - Configure: '配置', - Duplicate: '复制', - 'Configure chart': '配置图表', - Transform: '数据转换', - 'Chart type': '图表类型', - 'JSON config': 'JSON 配置', - Query: '查询', - Data: '数据', - 'Run query': '执行查询', - Measures: '度量', - Dimensions: '维度', - Filter: '过滤', - Sort: '排序', - Limit: '结果数量', - 'Enable cache': '启用缓存', - 'TTL (second)': '缓存时间 (秒)', - Field: '字段', - Aggregation: '聚合', - Alias: '别名', - Format: '格式', - 'The first 10 records of the query result:': '查询结果的前 10 条记录:', - 'Please run query to retrive data.': '请执行查询来获取数据。', - Type: '类型', - 'Add field': '添加字段', - 'Add chart': '添加图表', - xField: 'x轴字段', - yField: 'y轴字段', - seriesField: '分类字段', - angleField: '角度字段', - colorField: '颜色字段', - 'Line Chart': '折线图', - 'Area Chart': '面积图', - 'Column Chart': '柱状图', - 'Bar Chart': '条形图', - 'Pie Chart': '饼图', - 'Dual Axes Chart': '双轴图', - 'Scatter Chart': '散点图', - 'Gauge Chart': '仪表盘', - Statistic: '统计', - Currency: '货币', - Percent: '百分比', - Exponential: '科学记数法', - Abbreviation: '缩写', - 'Please configure and run query': '请配置并执行数据查询', - 'Please configure chart': '请配置图表', - 'Are you sure to cancel?': '确定要取消吗?', - 'You changes are not saved. If you click OK, your changes will be lost.': - '您的更改尚未保存。如果您点击“确定”,您的更改将丢失。', - 'Same properties set in the form above will be overwritten by this JSON config.': - '上面表单中设置的相同属性将被JSON配置覆盖。', - 'Built-in': '内置图表', - 'Config reference: ': '配置参考: ', - Table: '表格', - Sum: '求和', - Avg: '平均值', - Count: '计数', - Min: '最小值', - Max: '最大值', - 'Please select a chart type.': '请选择图表类型', - Collection: '数据表', - isStack: '堆叠', - isPercent: '显示为百分比', - isGroup: '分组', - smooth: '平滑曲线', - Collapse: '折叠', - Expand: '展开', - 'Current filter': '当前筛选', - 'Add custom field': '添加自定义字段', - 'To filter with custom fields, use "Current filter" variables in the chart configuration.': - '要通过自定义字段筛选,需要在图表配置中使用“当前筛选”变量。', - Input: '输入框', - 'Date range': '日期范围', - 'Time range': '时间范围', - 'Edit field properties': '编辑字段属性', - 'Select a source field to use metadata of the field': '选择来源字段可以复用字段的元数据配置', - 'Original field': '原始字段', -}; diff --git a/packages/plugins/@nocobase/plugin-duplicator/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-duplicator/src/locale/en-US.json new file mode 100644 index 000000000..52a6b3e64 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-duplicator/src/locale/en-US.json @@ -0,0 +1,8 @@ +{ + "Select Import data": "Select Import data", + "Select Import Plugins": "Select Import Plugins", + "Select User Collections": "Select User Collections", + "Basic Data": "Basic Data", + "Optional Data": "Optional Data", + "User Data": "User Data" +} diff --git a/packages/plugins/@nocobase/plugin-duplicator/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-duplicator/src/locale/zh-CN.json new file mode 100644 index 000000000..1d92696fc --- /dev/null +++ b/packages/plugins/@nocobase/plugin-duplicator/src/locale/zh-CN.json @@ -0,0 +1,8 @@ +{ + "Select Import data": "请选择导入数据", + "Select Import Plugins": "请选择导入插件", + "Select User Collections": "请选择用户数据", + "Basic Data": "基础数据", + "Optional Data": "可选数据", + "User Data": "用户数据" +} diff --git a/packages/plugins/@nocobase/plugin-duplicator/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-duplicator/src/locale/zh-CN.ts deleted file mode 100644 index 0736493f7..000000000 --- a/packages/plugins/@nocobase/plugin-duplicator/src/locale/zh-CN.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default { - 'Select Import data': '请选择导入数据', - 'Select Import Plugins': '请选择导入插件', - 'Select User Collections': '请选择用户数据', - 'Basic Data': '基础数据', - 'Optional Data': '可选数据', - 'User Data': '用户数据', -}; diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/en_US.json b/packages/plugins/@nocobase/plugin-error-handler/src/locale/en_US.json new file mode 100644 index 000000000..1d03ff880 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/en_US.json @@ -0,0 +1,6 @@ +{ + "unique violation": "{{field}} must be unique", + "notNull violation": "notNull violation", + "Validation error": "{{field}} validation error", + "notNull Violation": "{{field}} cannot be null" +} diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/en_US.ts b/packages/plugins/@nocobase/plugin-error-handler/src/locale/en_US.ts deleted file mode 100644 index b248d9b0c..000000000 --- a/packages/plugins/@nocobase/plugin-error-handler/src/locale/en_US.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - 'unique violation': '{{field}} must be unique', - 'notNull violation': 'notNull violation', - 'Validation error': '{{field}} validation error', - 'notNull Violation': '{{field}} cannot be null', -}; diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-error-handler/src/locale/es-ES.json similarity index 91% rename from packages/plugins/@nocobase/plugin-error-handler/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-error-handler/src/locale/es-ES.json index 81ac5606c..a864e5805 100644 --- a/packages/plugins/@nocobase/plugin-error-handler/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/es-ES.json @@ -1,6 +1,6 @@ -export default { +{ "unique violation": "{{field}} debe ser único", "notNull violation": "notNull violación", "Validation error": "{{field}} error de validación", "notNull Violation": "{{field}} no puede ser null" -}; +} diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/fr_FR.json b/packages/plugins/@nocobase/plugin-error-handler/src/locale/fr_FR.json new file mode 100644 index 000000000..c843b26df --- /dev/null +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/fr_FR.json @@ -0,0 +1,6 @@ +{ + "unique violation": "{{field}} doit être unique", + "notNull violation": "Violation de contrainte notNull", + "Validation error": "Erreur de validation de {{field}}", + "notNull Violation": "{{field}} ne peut pas être null" +} diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/fr_FR.ts b/packages/plugins/@nocobase/plugin-error-handler/src/locale/fr_FR.ts deleted file mode 100644 index 10463d83d..000000000 --- a/packages/plugins/@nocobase/plugin-error-handler/src/locale/fr_FR.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - 'unique violation': '{{field}} doit être unique', - 'notNull violation': 'Violation de contrainte notNull', - 'Validation error': 'Erreur de validation de {{field}}', - 'notNull Violation': '{{field}} ne peut pas être null', -}; diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/ja_JP.json b/packages/plugins/@nocobase/plugin-error-handler/src/locale/ja_JP.json new file mode 100644 index 000000000..b764928e7 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/ja_JP.json @@ -0,0 +1,4 @@ +{ + "unique violation": "{{field}} は一意でなくてはなりません", + "notNull Violation": "{{field}} はNullにできません" +} diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/ja_JP.ts b/packages/plugins/@nocobase/plugin-error-handler/src/locale/ja_JP.ts deleted file mode 100644 index ffd51b984..000000000 --- a/packages/plugins/@nocobase/plugin-error-handler/src/locale/ja_JP.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - 'unique violation': '{{field}} は一意でなくてはなりません', - 'notNull Violation': '{{field}} はNullにできません', -}; diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-error-handler/src/locale/pt-BR.json new file mode 100644 index 000000000..d0b08aed6 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/pt-BR.json @@ -0,0 +1,6 @@ +{ + "unique violation": "{{field}} deve ser único", + "notNull violation": "violação de não nulo", + "Validation error": "erro de validação de {{field}}", + "notNull Violation": "{{field}} não pode ser nulo" +} diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-error-handler/src/locale/pt-BR.ts deleted file mode 100644 index 6ee8e7caa..000000000 --- a/packages/plugins/@nocobase/plugin-error-handler/src/locale/pt-BR.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - 'unique violation': '{{field}} deve ser único', - 'notNull violation': 'violação de não nulo', - 'Validation error': 'erro de validação de {{field}}', - 'notNull Violation': '{{field}} não pode ser nulo', -}; diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/zh_CN.json b/packages/plugins/@nocobase/plugin-error-handler/src/locale/zh_CN.json new file mode 100644 index 000000000..057a84fbc --- /dev/null +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/zh_CN.json @@ -0,0 +1,5 @@ +{ + "unique violation": "{{field}} 字段值是唯一的", + "notNull violation": "{{field}} 字段不能为空", + "Validation error": "{{field}} 字段规则验证失败" +} diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/zh_CN.ts b/packages/plugins/@nocobase/plugin-error-handler/src/locale/zh_CN.ts deleted file mode 100644 index 1849dd4dc..000000000 --- a/packages/plugins/@nocobase/plugin-error-handler/src/locale/zh_CN.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default { - 'unique violation': '{{field}} 字段值是唯一的', - 'notNull violation': '{{field}} 字段不能为空', - 'Validation error': '{{field}} 字段规则验证失败', -}; diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/en-US.json new file mode 100644 index 000000000..5bd8948fe --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/en-US.json @@ -0,0 +1,22 @@ +{ + "File manager": "File manager", + "Attachment": "Attachment", + "MIME type": "MIME type", + "Storage display name": "Storage display name", + "Storage name": "Storage name", + "Storage type": "Storage type", + "Default storage": "Default storage", + "Storage base URL": "Storage base URL", + "Destination": "Destination", + "Use the built-in static file server": "Use the built-in static file server", + "Local storage": "Local storage", + "Aliyun OSS": "Aliyun OSS", + "Tencent COS": "Tencent COS", + "Amazon S3": "Amazon S3", + "Region": "Region", + "Bucket": "Bucket", + "Path": "Path", + "Filename": "Filename", + "See more": "See more", + "Will be used for API": "Will be used for API" +} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-file-manager/src/locale/en-US.ts deleted file mode 100644 index 785767d16..000000000 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/en-US.ts +++ /dev/null @@ -1,22 +0,0 @@ -export default { - 'File manager': 'File manager', - Attachment: 'Attachment', - 'MIME type': 'MIME type', - 'Storage display name': 'Storage display name', - 'Storage name': 'Storage name', - 'Storage type': 'Storage type', - 'Default storage': 'Default storage', - 'Storage base URL': 'Storage base URL', - Destination: 'Destination', - 'Use the built-in static file server': 'Use the built-in static file server', - 'Local storage': 'Local storage', - 'Aliyun OSS': 'Aliyun OSS', - 'Tencent COS': 'Tencent COS', - 'Amazon S3': 'Amazon S3', - Region: 'Region', - Bucket: 'Bucket', - Path: 'Path', - Filename: 'Filename', - 'See more': 'See more', - 'Will be used for API': 'Will be used for API', -}; diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/fr-FR.json new file mode 100644 index 000000000..c45c25d72 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/fr-FR.json @@ -0,0 +1,21 @@ +{ + "File manager": "Gestionnaire de fichiers", + "Attachment": "Pièce jointe", + "MIME type": "Type MIME", + "Storage display name": "Nom d'affichage du stockage", + "Storage name": "Nom du stockage", + "Storage type": "Type de stockage", + "Default storage": "Stockage par défaut", + "Storage base URL": "URL de base du stockage", + "Destination": "Destination", + "Use the built-in static file server": "Utiliser le serveur de fichiers statique intégré", + "Local storage": "Stockage local", + "Aliyun OSS": "Aliyun OSS", + "Tencent COS": "Tencent COS", + "Amazon S3": "Amazon S3", + "Region": "Region", + "Bucket": "Bucket", + "Path": "Chemin", + "Filename": "Nom de fichier", + "Will be used for API": "Sera utilisé pour l'API" +} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-file-manager/src/locale/fr-FR.ts deleted file mode 100644 index 6ef4d51d5..000000000 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/fr-FR.ts +++ /dev/null @@ -1,21 +0,0 @@ -export default { - 'File manager': 'Gestionnaire de fichiers', - Attachment: 'Pièce jointe', - 'MIME type': 'Type MIME', - 'Storage display name': "Nom d'affichage du stockage", - 'Storage name': 'Nom du stockage', - 'Storage type': 'Type de stockage', - 'Default storage': 'Stockage par défaut', - 'Storage base URL': 'URL de base du stockage', - Destination: 'Destination', - 'Use the built-in static file server': 'Utiliser le serveur de fichiers statique intégré', - 'Local storage': 'Stockage local', - 'Aliyun OSS': 'Aliyun OSS', - 'Tencent COS': 'Tencent COS', - 'Amazon S3': 'Amazon S3', - Region: 'Region', - Bucket: 'Bucket', - Path: 'Chemin', - Filename: 'Nom de fichier', - 'Will be used for API': "Sera utilisé pour l'API", -}; diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/ja-JP.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/ja-JP.json new file mode 100644 index 000000000..bfead819d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/ja-JP.json @@ -0,0 +1,18 @@ +{ + "File manager": "ファイルストレージ", + "Attachment": "添付ファイル", + "MIME type": "ファイル形式", + "Allow uploading multiple files": "複数ファイルのアップロードを許可する", + "Storage display name": "ファイルストレージ名", + "Storage name": "ファイルストレージ識別子", + "Storage type": "ストレージタイプ", + "Default storage": "デフォルトストレージ", + "Storage base URL": "Storage base URL", + "Destination": "ファイルパス", + "Use the built-in static file server": "組み込みの静的ファイル サービスを使用する", + "Local storage": "ローカルストレージ", + "Aliyun OSS": "Aliyun OSS", + "Tencent COS": "Tencent COS", + "Amazon S3": "Amazon S3", + "Filename": "ファイル名" +} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-file-manager/src/locale/ja-JP.ts deleted file mode 100644 index 3b92490a0..000000000 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/ja-JP.ts +++ /dev/null @@ -1,18 +0,0 @@ -export default { - 'File manager': 'ファイルストレージ', - 'Attachment': '添付ファイル', - 'MIME type': 'ファイル形式', - 'Allow uploading multiple files': '複数ファイルのアップロードを許可する', - 'Storage display name': 'ファイルストレージ名', - 'Storage name': 'ファイルストレージ識別子', - 'Storage type': 'ストレージタイプ', - 'Default storage': 'デフォルトストレージ', - 'Storage base URL': 'Storage base URL', - 'Destination': 'ファイルパス', - 'Use the built-in static file server': '組み込みの静的ファイル サービスを使用する', - 'Local storage': 'ローカルストレージ', - 'Aliyun OSS': 'Aliyun OSS', - 'Tencent COS': 'Tencent COS', - 'Amazon S3': 'Amazon S3', - 'Filename': 'ファイル名', -}; diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/ru-RU.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/ru-RU.json new file mode 100644 index 000000000..fcf27be02 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/ru-RU.json @@ -0,0 +1,18 @@ +{ + "File manager": "Файловые хранилища", + "Attachment": "Вложение", + "MIME type": "Подтвердить", + "Allow uploading multiple files": "Позволить загружать много файлов", + "Storage display name": "Имя храшилища на экране", + "Storage name": "Имя хранилища", + "Storage type": "Тип Хранилища", + "Default storage": "Хранилище по умолчанию", + "Storage base URL": "Базовый URL хранилища", + "Destination": "Назначение", + "Use the built-in static file server": "Использовать встроенный статический файл-сервер", + "Local storage": "Локальное хранилище", + "Aliyun OSS": "Aliyun OSS", + "Amazon S3": "Amazon S3", + "Tencent COS": "Tencent COS", + "Filename": "Имя файла" +} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/ru-RU.ts b/packages/plugins/@nocobase/plugin-file-manager/src/locale/ru-RU.ts deleted file mode 100644 index 6b9cd9f66..000000000 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/ru-RU.ts +++ /dev/null @@ -1,18 +0,0 @@ -export default { - 'File manager': 'Файловые хранилища', - 'Attachment': 'Вложение', - 'MIME type': 'Подтвердить', - 'Allow uploading multiple files': 'Позволить загружать много файлов', - 'Storage display name': 'Имя храшилища на экране', - 'Storage name': 'Имя хранилища', - 'Storage type': 'Тип Хранилища', - 'Default storage': 'Хранилище по умолчанию', - 'Storage base URL': 'Базовый URL хранилища', - 'Destination': 'Назначение', - 'Use the built-in static file server': 'Использовать встроенный статический файл-сервер', - 'Local storage': 'Локальное хранилище', - 'Aliyun OSS': 'Aliyun OSS', - 'Amazon S3': 'Amazon S3', - 'Tencent COS': 'Tencent COS', - 'Filename': 'Имя файла', -} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/tr-TR.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/tr-TR.json new file mode 100644 index 000000000..82590896b --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/tr-TR.json @@ -0,0 +1,17 @@ +{ + "File manager": "Dosya depoları", + "Attachment": "Dosya eki", + "MIME type": "Kabul et", + "Allow uploading multiple files": "Birden çok dosya yüklemeye izin ver", + "Storage name": "Depo adı", + "Storage type": "Depolama türü", + "Default storage": "Varsayılan depo", + "Storage base URL": "Depolama temel URLsi", + "Destination": "Hedef", + "Use the built-in static file server": "Yerleşik statik dosya sunucusunu kullanın", + "Local storage": "Lokal depolama", + "Aliyun OSS": "Aliyun OSS", + "Amazon S3": "Amazon S3", + "Tencent COS": "Tencent COS", + "Filename": "Dosya adı" +} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/tr-TR.ts b/packages/plugins/@nocobase/plugin-file-manager/src/locale/tr-TR.ts deleted file mode 100644 index e582f6c60..000000000 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/tr-TR.ts +++ /dev/null @@ -1,17 +0,0 @@ -export default { - 'File manager': 'Dosya depoları', - 'Attachment': 'Dosya eki', - 'MIME type': 'Kabul et', - 'Allow uploading multiple files': 'Birden çok dosya yüklemeye izin ver', - 'Storage name': 'Depo adı', - 'Storage type': 'Depolama türü', - 'Default storage': 'Varsayılan depo', - 'Storage base URL': 'Depolama temel URLsi', - 'Destination': 'Hedef', - 'Use the built-in static file server': 'Yerleşik statik dosya sunucusunu kullanın', - 'Local storage': 'Lokal depolama', - 'Aliyun OSS': 'Aliyun OSS', - 'Amazon S3': 'Amazon S3', - 'Tencent COS': 'Tencent COS', - 'Filename': 'Dosya adı', -}; diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/zh-CN.json new file mode 100644 index 000000000..7731d8b9c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/zh-CN.json @@ -0,0 +1,32 @@ +{ + "File collection": "文件数据表", + "File name": "文件名", + "Extension name": "扩展名", + "Size": "文件大小", + "MIME type": "MIME 类型", + "URL": "URL", + "File storage": "文件存储", + "File manager": "文件管理器", + "Attachment": "附件", + "Allow uploading multiple files": "允许上传多个文件", + "Storage": "存储空间", + "Storages": "存储空间", + "Storage name": "存储空间标识", + "Storage type": "存储类型", + "Default storage": "默认存储空间", + "Storage base URL": "访问 URL 基础", + "Destination": "上传目标文件夹", + "Use the built-in static file server": "使用内置静态文件服务", + "Local storage": "本地存储", + "Aliyun OSS": "阿里云 OSS", + "Amazon S3": "亚马逊 S3", + "Tencent COS": "腾讯云 COS", + "Region": "区域", + "Bucket": "存储桶", + "Path": "路径", + "Filename": "文件名", + "Will be used for API": "将用于 API", + "Default storage will be used when not selected": "留空将使用默认存储空间", + "Keep file in storage when destroy record": "删除记录时保留文件", + "See more": "更多请查阅" +} diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-file-manager/src/locale/zh-CN.ts deleted file mode 100644 index c9647bc56..000000000 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/zh-CN.ts +++ /dev/null @@ -1,32 +0,0 @@ -export default { - 'File collection': '文件数据表', - 'File name': '文件名', - 'Extension name': '扩展名', - Size: '文件大小', - 'MIME type': 'MIME 类型', - URL: 'URL', - 'File storage': '文件存储', - 'File manager': '文件管理器', - Attachment: '附件', - 'Allow uploading multiple files': '允许上传多个文件', - Storage: '存储空间', - Storages: '存储空间', - 'Storage name': '存储空间标识', - 'Storage type': '存储类型', - 'Default storage': '默认存储空间', - 'Storage base URL': '访问 URL 基础', - Destination: '上传目标文件夹', - 'Use the built-in static file server': '使用内置静态文件服务', - 'Local storage': '本地存储', - 'Aliyun OSS': '阿里云 OSS', - 'Amazon S3': '亚马逊 S3', - 'Tencent COS': '腾讯云 COS', - Region: '区域', - Bucket: '存储桶', - Path: '路径', - Filename: '文件名', - 'Will be used for API': '将用于 API', - 'Default storage will be used when not selected': '留空将使用默认存储空间', - 'Keep file in storage when destroy record': '删除记录时保留文件', - 'See more': '更多请查阅', -}; diff --git a/packages/plugins/@nocobase/plugin-formula-field/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-formula-field/src/locale/en-US.json new file mode 100644 index 000000000..9894a8097 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-formula-field/src/locale/en-US.json @@ -0,0 +1,8 @@ +{ + "Formula": "Formula", + "Calculation engine": "Calculation engine", + "Expression": "Expression", + "Expression syntax error": "Expression syntax error", + "Syntax references": "Syntax references", + "Compute a value based on the other fields": "Compute a value based on the other fields" +} diff --git a/packages/plugins/@nocobase/plugin-formula-field/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-formula-field/src/locale/zh-CN.json new file mode 100644 index 000000000..f531151eb --- /dev/null +++ b/packages/plugins/@nocobase/plugin-formula-field/src/locale/zh-CN.json @@ -0,0 +1,8 @@ +{ + "Formula": "公式", + "Calculation engine": "计算引擎", + "Expression": "表达式", + "Expression syntax error": "表达式语法错误", + "Syntax references": "语法参考", + "Compute a value based on the other fields": "基于其他字段进行计算" +} diff --git a/packages/plugins/@nocobase/plugin-formula-field/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-formula-field/src/locale/zh-CN.ts deleted file mode 100644 index 029cd3808..000000000 --- a/packages/plugins/@nocobase/plugin-formula-field/src/locale/zh-CN.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default { - Formula: '公式', - 'Calculation engine': '计算引擎', - Expression: '表达式', - 'Expression syntax error': '表达式语法错误', - 'Syntax references': '语法参考', - 'Compute a value based on the other fields': '基于其他字段进行计算', -}; diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/en-US.json new file mode 100644 index 000000000..65be34147 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/en-US.json @@ -0,0 +1,15 @@ +{ + "Graph Collection": "Graph Collection", + "Collection List": "Collection List", + "Full Screen": "Full Screen", + "Collection Search": "Collection Search", + "Create Collection": "Create Collection", + "All Fields": "All Fields", + "Association Fields": "Association Fields", + "Choices fields": "Choices fields", + "All relationships": "All relationships", + "Entity relationship only": "Entity relationship only", + "Inheritance relationship only": "Inheritance relationship only", + "Graphical interface": "Graphical interface", + "Selection": "Selection" +} diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/en-US.ts deleted file mode 100644 index 3ae29bdc1..000000000 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/en-US.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default { - 'Graph Collection': 'Graph Collection', - 'Collection List': 'Collection List', - 'Full Screen': 'Full Screen', - 'Collection Search': 'Collection Search', - 'Create Collection': 'Create Collection', - 'All Fields': 'All Fields', - 'Association Fields': 'Association Fields', - 'Choices fields': 'Choices fields', - 'All relationships': 'All relationships', - 'Entity relationship only': 'Entity relationship only', - 'Inheritance relationship only': 'Inheritance relationship only', - 'Graphical interface': 'Graphical interface', - Selection: 'Selection', -}; diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/es-ES.json similarity index 96% rename from packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/es-ES.json index 380f8b94b..6a5c80c23 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/es-ES.json @@ -1,4 +1,4 @@ -export default { +{ "Graph Collection": "Colección de gráficos", "Collection List": "Lista de colecciones", "Full Screen": "Vista completa", @@ -12,4 +12,4 @@ export default { "Inheritance relationship only": "Sólo relaciones de herencia", "Graphical interface": "Interfaz gráfica", "Selection": "Selección" -}; \ No newline at end of file +} diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/fr-FR.json new file mode 100644 index 000000000..b180dd9de --- /dev/null +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/fr-FR.json @@ -0,0 +1,15 @@ +{ + "Graph Collection": "Collection de graphiques", + "Collection List": "Liste des collections", + "Full Screen": "Plein écran", + "Collection Search": "Recherche de collection", + "Create Collection": "Créer une collection", + "All Fields": "Tous les champs", + "Association Fields": "Champs d'association", + "Choices fields": "Champs de choix", + "All relationships": "Toutes les relations", + "Entity relationship only": "Uniquement les relations d'entité", + "Inheritance relationship only": "Uniquement les relations d'héritage", + "Graphical interface": "Interface graphique", + "Selection": "Sélection" +} diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/fr-FR.ts deleted file mode 100644 index d8cbcd487..000000000 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/fr-FR.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default { - 'Graph Collection': 'Collection de graphiques', - 'Collection List': 'Liste des collections', - 'Full Screen': 'Plein écran', - 'Collection Search': 'Recherche de collection', - 'Create Collection': 'Créer une collection', - 'All Fields': 'Tous les champs', - 'Association Fields': "Champs d'association", - 'Choices fields': 'Champs de choix', - 'All relationships': 'Toutes les relations', - 'Entity relationship only': "Uniquement les relations d'entité", - 'Inheritance relationship only': "Uniquement les relations d'héritage", - 'Graphical interface': 'Interface graphique', - Selection: 'Sélection', -}; diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/ja-JP.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/ja-JP.json new file mode 100644 index 000000000..c155f3912 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/ja-JP.json @@ -0,0 +1,13 @@ +{ + "Graph Collection": "グラフ化データテーブル", + "Collection List": "データテーブルリスト", + "Full Screen": "フルスクリーン", + "Collection Search": "表フィルタ", + "Create Collection": "データテーブルの作成", + "All Fields": "すべて", + "Associations Fields": "関係フィールド", + "All relationships": "すべての関係", + "Entity relationship only": "エンティティ関係", + "Inheritance relationship only": "継承関係", + "Selection": "せんたく" +} diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/ja-JP.ts deleted file mode 100644 index 2797aa5d8..000000000 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/ja-JP.ts +++ /dev/null @@ -1,13 +0,0 @@ -export default { - 'Graph Collection': 'グラフ化データテーブル', - 'Collection List': 'データテーブルリスト', - 'Full Screen': 'フルスクリーン', - 'Collection Search': '表フィルタ', - 'Create Collection': 'データテーブルの作成', - 'All Fields': 'すべて', - 'Associations Fields': '関係フィールド', - 'All relationships': 'すべての関係', - 'Entity relationship only': 'エンティティ関係', - 'Inheritance relationship only': '継承関係', - Selection: 'せんたく', -}; diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/pt-BR.json new file mode 100644 index 000000000..940826292 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/pt-BR.json @@ -0,0 +1,15 @@ +{ + "Graph Collection": "Coleção de Gráficos", + "Collection List": "Lista de Coleções", + "Full Screen": "Tela Cheia", + "Collection Search": "Busca de Coleção", + "Create Collection": "Criar Coleção", + "All Fields": "Todos os Campos", + "Association Fields": "Campos de Associação", + "Choices fields": "Campos de opções", + "All relationships": "Todos os relacionamentos", + "Entity relationship only": "Somente relação de Entidade", + "Inheritance relationship only": "Somente relação de Herança", + "Graphical interface": "Interface Gráfica", + "Selection": "Seleção" +} diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/pt-BR.ts deleted file mode 100644 index d99f5d53a..000000000 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/pt-BR.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default { - 'Graph Collection': 'Coleção de Gráficos', - 'Collection List': 'Lista de Coleções', - 'Full Screen': 'Tela Cheia', - 'Collection Search': 'Busca de Coleção', - 'Create Collection': 'Criar Coleção', - 'All Fields': 'Todos os Campos', - 'Association Fields': 'Campos de Associação', - 'Choices fields': 'Campos de opções', - 'All relationships': 'Todos os relacionamentos', - 'Entity relationship only': 'Somente relação de Entidade', - 'Inheritance relationship only': 'Somente relação de Herança', - 'Graphical interface': 'Interface Gráfica', - Selection: 'Seleção', -}; diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/zh-CN.json new file mode 100644 index 000000000..871f3c9c3 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/zh-CN.json @@ -0,0 +1,16 @@ +{ + "Graph Collection": "图形化数据表", + "Collection List": "数据表列表", + "Full Screen": "全屏", + "Collection Search": "表筛选", + "Create Collection": "创建数据表", + "All Fields": "全部", + "Association Fields": "关系字段", + "Choices fields": "选项字段", + "All relationships": "所有关系", + "Entity relationship only": "实体关系", + "Inheritance relationship only": "继承关系", + "Graphical interface": "图形化界面", + "Auto layout": "自动布局", + "Selection": "选择模式" +} diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/zh-CN.ts deleted file mode 100644 index 9a5ff24eb..000000000 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/locale/zh-CN.ts +++ /dev/null @@ -1,16 +0,0 @@ -export default { - 'Graph Collection': '图形化数据表', - 'Collection List': '数据表列表', - 'Full Screen': '全屏', - 'Collection Search': '表筛选', - 'Create Collection': '创建数据表', - 'All Fields': '全部', - 'Association Fields': '关系字段', - 'Choices fields': '选项字段', - 'All relationships': '所有关系', - 'Entity relationship only': '实体关系', - 'Inheritance relationship only': '继承关系', - 'Graphical interface': '图形化界面', - 'Auto layout': '自动布局', - Selection: '选择模式', -}; diff --git a/packages/plugins/@nocobase/plugin-import/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-import/src/locale/en-US.json new file mode 100644 index 000000000..b21d2b3ac --- /dev/null +++ b/packages/plugins/@nocobase/plugin-import/src/locale/en-US.json @@ -0,0 +1,27 @@ +{ + "Only one file is allowed to be uploaded": "Only one file is allowed to be uploaded", + "File size cannot exceed 10M": "File size cannot exceed 10M", + "Please upload the file of Excel": "Please upload the file of Excel", + "Import Data": "Import Data", + "Start import": "Start import", + "Import explain": "Guide", + "Download template": "Download template", + "Step 1: Download template": "Step 1: Download template", + "Step 2: Upload Excel": "Step 2: Upload Excel", + "Download tip": "- Download the template and fill in the data according to the format \r\n - Import only the first worksheet \r\n - Support single import of up to 10,000 rows of data \r\n - Do not change the header of the template to prevent import failure", + "Upload placeholder": "Drag and drop the file here or click to upload, file size should not exceed 30M", + "Excel data importing": "Excel data importing", + "Import done, total success have {{successCount}} , total failure have {{failureCount}}": "Import is complete, with a total of {{successCount}} successful and {{failureCount}} failed", + "To download the failure data": "To download the failure data", + "Add importable field": "Add importable field", + "Done": "Done", + "Yes": "Yes", + "No": "No", + "Field {{fieldName}} does not exist": "Field {{fieldName}} does not exist", + "can not find value": "can not find value", + "password is empty": "password is empty", + "Incorrect time format": "Incorrect time format", + "Incorrect date format": "Incorrect date format", + "Incorrect email format": "Incorrect email format", + "Illegal percentage format": "Illegal percentage format" +} diff --git a/packages/plugins/@nocobase/plugin-import/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-import/src/locale/en-US.ts deleted file mode 100644 index 2cc45cb88..000000000 --- a/packages/plugins/@nocobase/plugin-import/src/locale/en-US.ts +++ /dev/null @@ -1,29 +0,0 @@ -export default { - 'Only one file is allowed to be uploaded': 'Only one file is allowed to be uploaded', - 'File size cannot exceed 10M': 'File size cannot exceed 10M', - 'Please upload the file of Excel': 'Please upload the file of Excel', - 'Import Data': 'Import Data', - 'Start import': 'Start import', - 'Import explain': 'Guide', - 'Download template': 'Download template', - 'Step 1: Download template': 'Step 1: Download template', - 'Step 2: Upload Excel': 'Step 2: Upload Excel', - 'Download tip': - '- Download the template and fill in the data according to the format \r\n - Import only the first worksheet \r\n - Support single import of up to 10,000 rows of data \r\n - Do not change the header of the template to prevent import failure', - 'Upload placeholder': 'Drag and drop the file here or click to upload, file size should not exceed 30M', - 'Excel data importing': 'Excel data importing', - 'Import done, total success have {{successCount}} , total failure have {{failureCount}}': - 'Import is complete, with a total of {{successCount}} successful and {{failureCount}} failed', - 'To download the failure data': 'To download the failure data', - 'Add importable field': 'Add importable field', - Done: 'Done', - Yes: 'Yes', - No: 'No', - 'Field {{fieldName}} does not exist': 'Field {{fieldName}} does not exist', - 'can not find value': 'can not find value', - 'password is empty': 'password is empty', - 'Incorrect time format': 'Incorrect time format', - 'Incorrect date format': 'Incorrect date format', - 'Incorrect email format': 'Incorrect email format', - 'Illegal percentage format': 'Illegal percentage format', -}; diff --git a/packages/plugins/@nocobase/plugin-import/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-import/src/locale/es-ES.json similarity index 98% rename from packages/plugins/@nocobase/plugin-import/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-import/src/locale/es-ES.json index 07f595975..23eb52d83 100644 --- a/packages/plugins/@nocobase/plugin-import/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-import/src/locale/es-ES.json @@ -1,4 +1,4 @@ -export default { +{ "Only one file is allowed to be uploaded": "Sólo se permite cargar un archivo", "File size cannot exceed 10M": "El tamaño del archivo no puede superar los 10M", "Please upload the file of Excel": "Por favor, cargue el archivo de Excel", @@ -24,4 +24,4 @@ export default { "Incorrect date format": "Formato de fecha incorrecto", "Incorrect email format": "Formato de correo electrónico incorrecto", "Illegal percentage format": "Formato de porcentaje ilegal" -}; +} diff --git a/packages/plugins/@nocobase/plugin-import/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-import/src/locale/pt-BR.json new file mode 100644 index 000000000..aa0efe96b --- /dev/null +++ b/packages/plugins/@nocobase/plugin-import/src/locale/pt-BR.json @@ -0,0 +1,27 @@ +{ + "Only one file is allowed to be uploaded": "Somente um arquivo pode ser enviado de cada vez", + "File size cannot exceed 10M": "O tamanho do arquivo não pode exceder 10 MB", + "Please upload the file of Excel": "Por favor, envie um arquivo do Excel", + "Import Data": "Importar dados", + "Start import": "Iniciar importação", + "Import explain": "Guia", + "Download template": "Baixar modelo", + "Step 1: Download template": "Passo 1: Baixar modelo", + "Step 2: Upload Excel": "Passo 2: Enviar Excel", + "Download tip": "- Baixe o modelo e preencha os dados de acordo com o formato \r\n - Importe apenas a primeira planilha \r\n - Suporte de importação única de até 10.000 linhas de dados \r\n - Não altere o cabeçalho do modelo para evitar falhas de importação", + "Upload placeholder": "Arraste e solte o arquivo aqui ou clique para enviar, o tamanho do arquivo não deve exceder 10 MB", + "Excel data importing": "Importando dados do Excel", + "Import done, total success have {{successCount}} , total failure have {{failureCount}}": "Importação concluída, com um total de {{successCount}} sucesso e {{failureCount}} falhas", + "To download the failure data": "Para baixar os dados que falharam", + "Add importable field": "Adicionar campo importável", + "Done": "Concluído", + "Yes": "Sim", + "No": "Não", + "Field {{fieldName}} does not exist": "O campo {{fieldName}} não existe", + "can not find value": "Não foi possível encontrar o valor", + "password is empty": "A senha está vazia", + "Incorrect time format": "Formato de hora incorreto", + "Incorrect date format": "Formato de data incorreto", + "Incorrect email format": "Formato de e-mail incorreto", + "Illegal percentage format": "Formato de porcentagem ilegal" +} diff --git a/packages/plugins/@nocobase/plugin-import/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-import/src/locale/pt-BR.ts deleted file mode 100644 index f5d809166..000000000 --- a/packages/plugins/@nocobase/plugin-import/src/locale/pt-BR.ts +++ /dev/null @@ -1,30 +0,0 @@ -export default { - 'Only one file is allowed to be uploaded': 'Somente um arquivo pode ser enviado de cada vez', - 'File size cannot exceed 10M': 'O tamanho do arquivo não pode exceder 10 MB', - 'Please upload the file of Excel': 'Por favor, envie um arquivo do Excel', - 'Import Data': 'Importar dados', - 'Start import': 'Iniciar importação', - 'Import explain': 'Guia', - 'Download template': 'Baixar modelo', - 'Step 1: Download template': 'Passo 1: Baixar modelo', - 'Step 2: Upload Excel': 'Passo 2: Enviar Excel', - 'Download tip': - '- Baixe o modelo e preencha os dados de acordo com o formato \r\n - Importe apenas a primeira planilha \r\n - Suporte de importação única de até 10.000 linhas de dados \r\n - Não altere o cabeçalho do modelo para evitar falhas de importação', - 'Upload placeholder': - 'Arraste e solte o arquivo aqui ou clique para enviar, o tamanho do arquivo não deve exceder 10 MB', - 'Excel data importing': 'Importando dados do Excel', - 'Import done, total success have {{successCount}} , total failure have {{failureCount}}': - 'Importação concluída, com um total de {{successCount}} sucesso e {{failureCount}} falhas', - 'To download the failure data': 'Para baixar os dados que falharam', - 'Add importable field': 'Adicionar campo importável', - Done: 'Concluído', - Yes: 'Sim', - No: 'Não', - 'Field {{fieldName}} does not exist': 'O campo {{fieldName}} não existe', - 'can not find value': 'Não foi possível encontrar o valor', - 'password is empty': 'A senha está vazia', - 'Incorrect time format': 'Formato de hora incorreto', - 'Incorrect date format': 'Formato de data incorreto', - 'Incorrect email format': 'Formato de e-mail incorreto', - 'Illegal percentage format': 'Formato de porcentagem ilegal', -}; diff --git a/packages/plugins/@nocobase/plugin-import/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-import/src/locale/zh-CN.json new file mode 100644 index 000000000..40b5e0a88 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-import/src/locale/zh-CN.json @@ -0,0 +1,28 @@ +{ + "Only one file is allowed to be uploaded": "只允许上传一个文件", + "File size cannot exceed 10M": "文件大小不能超过10M", + "Please upload the file of Excel": "请上传Excel的文件", + "Import Data": "导入数据", + "Start import": "开始导入", + "Import explain": "说明", + "Download template": "下载模板", + "Step 1: Download template": "1.下载模板", + "Step 2: Upload Excel": "2.上传完善后的表格", + "Download tip": "- 下载模板后,按格式填写数据\r\n - 只导入第一张工作表\r\n - 支持单次导入不超过10000行数据\r\n - 请勿改模板表头,防止导入失败", + "Upload placeholder": "将文件拖曳到此处或点击上传,文件大小不超过10M", + "Excel data importing": "数据导入中,请勿关闭窗口", + "Import done, total success have {{successCount}} , total failure have {{failureCount}}": "导入完成,共导入成功{{successCount}}条数据,共导入失败{{failureCount}}条数据", + "To download the failure data": "下载导入失败的数据", + "Add importable field": "添加可导入字段", + "Done": "完成", + "Yes": "是", + "No": "否", + "Field {{fieldName}} does not exist": "字段 {{fieldName}} 不存在", + "can not find value": "找不到对应值", + "password is empty": "密码为空", + "Incorrect time format": "时间格式不正确", + "Incorrect date format": "日期格式不正确", + "Incorrect email format": "邮箱格式不正确", + "Illegal percentage format": "百分比格式有误", + "Imported template does not match, please download again.": "导入模板不匹配,请检查导入文件标题行或重新下载导入模板" +} diff --git a/packages/plugins/@nocobase/plugin-import/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-import/src/locale/zh-CN.ts deleted file mode 100644 index 40830edc2..000000000 --- a/packages/plugins/@nocobase/plugin-import/src/locale/zh-CN.ts +++ /dev/null @@ -1,30 +0,0 @@ -export default { - 'Only one file is allowed to be uploaded': '只允许上传一个文件', - 'File size cannot exceed 10M': '文件大小不能超过10M', - 'Please upload the file of Excel': '请上传Excel的文件', - 'Import Data': '导入数据', - 'Start import': '开始导入', - 'Import explain': '说明', - 'Download template': '下载模板', - 'Step 1: Download template': '1.下载模板', - 'Step 2: Upload Excel': '2.上传完善后的表格', - 'Download tip': - '- 下载模板后,按格式填写数据\r\n - 只导入第一张工作表\r\n - 支持单次导入不超过10000行数据\r\n - 请勿改模板表头,防止导入失败', - 'Upload placeholder': '将文件拖曳到此处或点击上传,文件大小不超过10M', - 'Excel data importing': '数据导入中,请勿关闭窗口', - 'Import done, total success have {{successCount}} , total failure have {{failureCount}}': - '导入完成,共导入成功{{successCount}}条数据,共导入失败{{failureCount}}条数据', - 'To download the failure data': '下载导入失败的数据', - 'Add importable field': '添加可导入字段', - Done: '完成', - Yes: '是', - No: '否', - 'Field {{fieldName}} does not exist': '字段 {{fieldName}} 不存在', - 'can not find value': '找不到对应值', - 'password is empty': '密码为空', - 'Incorrect time format': '时间格式不正确', - 'Incorrect date format': '日期格式不正确', - 'Incorrect email format': '邮箱格式不正确', - 'Illegal percentage format': '百分比格式有误', - 'Imported template does not match, please download again.': '导入模板不匹配,请检查导入文件标题行或重新下载导入模板', -}; diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/client/Localization.tsx b/packages/plugins/@nocobase/plugin-localization-management/src/client/Localization.tsx index cef3b3249..d050886aa 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/client/Localization.tsx +++ b/packages/plugins/@nocobase/plugin-localization-management/src/client/Localization.tsx @@ -3,6 +3,7 @@ import { Form, createForm } from '@formily/core'; import { Field, useField, useForm } from '@formily/react'; import { FormProvider, + Select, Input, PopoverWithStopPropagation, Radio, @@ -15,7 +16,8 @@ import { useResourceContext, } from '@nocobase/client'; import { Input as AntdInput, Button, Card, Checkbox, Col, Divider, Row, Tag, Typography, message } from 'antd'; -import React, { useMemo, useState } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; +import { useMemoizedFn } from 'ahooks'; import { useLocalTranslation } from './locale'; import { localizationSchema } from './schemas/localization'; const { Text } = Typography; @@ -162,11 +164,24 @@ const Sync = () => { ); }; +const useModules = () => { + const { t: lang } = useLocalTranslation(); + const t = useMemoizedFn(lang); + const { data } = useResourceActionContext(); + return useMemo( + () => + data?.meta?.modules?.map((module) => ({ + value: module.value, + label: t(module.label), + })) || [], + [data?.meta?.modules, t], + ); +}; + const Filter = () => { const { t } = useLocalTranslation(); - const { run, refresh } = useResourceActionContext(); - const api = useAPIClient(); - const locale = api.auth.getLocale(); + const { run } = useResourceActionContext(); + const modules = useModules(); const form = useMemo
( () => createForm({ @@ -181,9 +196,26 @@ const Filter = () => { ...(values || form.values), }); }; + useEffect(() => { + const module = form.query('module').take() as any; + module.dataSource = modules; + }, [form, modules]); + return (
+ filter({ ...form.values, module }), + }, + ]} + /> { placeholder: t('Keyword'), allowClear: true, style: { + marginLeft: '8px', width: 'fit-content', }, onSearch: (keyword) => filter({ ...form.values, keyword }), @@ -247,6 +280,7 @@ export const Localization = () => { useBulkDestroyTranslationAction, useUpdateTranslationAction, usePublishAction, + useModules, }} /> diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/client/locale/index.ts b/packages/plugins/@nocobase/plugin-localization-management/src/client/locale/index.ts index 5aa63f7f7..8a63e2571 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/client/locale/index.ts +++ b/packages/plugins/@nocobase/plugin-localization-management/src/client/locale/index.ts @@ -3,5 +3,5 @@ import { useTranslation } from 'react-i18next'; export const NAMESPACE = 'localization-management'; export const useLocalTranslation = () => { - return useTranslation(NAMESPACE); + return useTranslation([NAMESPACE, 'client'], { nsMode: 'fallback' }); }; diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/client/schemas/localization.tsx b/packages/plugins/@nocobase/plugin-localization-management/src/client/schemas/localization.tsx index 959e96010..e8d4252cb 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/client/schemas/localization.tsx +++ b/packages/plugins/@nocobase/plugin-localization-management/src/client/schemas/localization.tsx @@ -3,18 +3,6 @@ import { ISchema } from '@formily/react'; const collection = { name: 'localization', fields: [ - { - interface: 'input', - type: 'string', - name: 'module', - uiSchema: { - type: 'string', - title: '{{t("Module")}}', - 'x-component': 'Select', - required: true, - enum: '{{ useModules()}}', - }, - }, { interface: 'input', type: 'string', @@ -36,6 +24,26 @@ const collection = { 'x-component': 'Input.TextArea', }, }, + { + interface: 'select', + type: 'string', + name: 'moduleTitle', + uiSchema: { + type: 'string', + title: '{{t("Module")}}', + 'x-component': 'Select', + enum: [ + { + value: 'Menu', + label: '{{t("Menu")}}', + }, + { + value: 'Collections & Fields', + label: '{{t("Collections & Fields", {ns:"localization-management"})}}', + }, + ], + }, + }, ], }; @@ -121,18 +129,6 @@ export const localizationSchema: ISchema = { useDataSource: '{{ cm.useDataSourceFromRAC }}', }, properties: { - // module: { - // type: 'void', - // 'x-decorator': 'Table.Column.Decorator', - // 'x-component': 'Table.Column', - // properties: { - // module: { - // type: 'string', - // 'x-component': 'CollectionField', - // 'x-read-pretty': true, - // }, - // }, - // }, text: { type: 'void', 'x-decorator': 'Table.Column.Decorator', @@ -160,6 +156,18 @@ export const localizationSchema: ISchema = { }, }, }, + moduleTitle: { + type: 'void', + 'x-decorator': 'Table.Column.Decorator', + 'x-component': 'Table.Column', + properties: { + moduleTitle: { + type: 'string', + 'x-component': 'CollectionField', + 'x-read-pretty': true, + }, + }, + }, actions: { type: 'void', title: '{{t("Actions")}}', @@ -189,11 +197,11 @@ export const localizationSchema: ISchema = { }, title: '{{t("Edit")}}', properties: { - // module: { - // 'x-component': 'CollectionField', - // 'x-decorator': 'FormItem', - // 'x-read-pretty': true, - // }, + moduleTitle: { + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + 'x-read-pretty': true, + }, text: { 'x-component': 'CollectionField', 'x-decorator': 'FormItem', diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-localization-management/src/locale/en-US.json new file mode 100644 index 000000000..902f0c1d5 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-localization-management/src/locale/en-US.json @@ -0,0 +1,23 @@ +{ + "Edit": "Edit", + "Add new": "Add new", + "Localization management": "Localization management", + "No data": "No data", + "Delete text": "Delete text", + "Delete translation": "Delete translation", + "Module": "Module", + "Text": "Text", + "Translation": "Translation", + "Sync": "Sync", + "Current language": "Current language", + "Keyword": "Keyword", + "All": "All", + "No translation": "No translation", + "System & Plugins": "System & Plugins", + "User interfaces": "User interfaces", + "Collections & Fields": "Collections & Fields", + "Please select the resources you want to synchronize": "Please select the resources you want to synchronize", + "Menu": "Menu", + "Publish": "Publish", + "Translations": "Translations" +} diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-localization-management/src/locale/zh-CN.json new file mode 100644 index 000000000..ccab456b1 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-localization-management/src/locale/zh-CN.json @@ -0,0 +1,23 @@ +{ + "Edit": "编辑", + "Add new": "新增", + "Localization management": "多语言管理", + "No data": "暂无数据", + "Delete text": "删除原文", + "Delete translation": "删除译文", + "Module": "模块", + "Text": "原文", + "Translation": "译文", + "Sync": "同步", + "Current language": "当前语言", + "Keyword": "关键字", + "All": "全部", + "No translation": "待翻译", + "System & Plugins": "系统和插件", + "User interfaces": "用户界面配置", + "Collections & Fields": "数据表和字段", + "Please select the resources you want to synchronize": "请选择需要同步的资源", + "Menu": "菜单", + "Publish": "发布", + "Translations": "翻译" +} diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-localization-management/src/locale/zh-CN.ts deleted file mode 100644 index 41916967a..000000000 --- a/packages/plugins/@nocobase/plugin-localization-management/src/locale/zh-CN.ts +++ /dev/null @@ -1,23 +0,0 @@ -export default { - Edit: '编辑', - 'Add new': '新增', - 'Localization management': '多语言管理', - 'No data': '暂无数据', - 'Delete text': '删除原文', - 'Delete translation': '删除译文', - Module: '模块', - Text: '原文', - Translation: '译文', - Sync: '同步', - 'Current language': '当前语言', - Keyword: '关键字', - All: '全部', - 'No translation': '待翻译', - 'System & Plugins': '系统和插件', - 'User interfaces': '用户界面配置', - 'Collections & Fields': '数据表和字段', - 'Please select the resources you want to synchronize': '请选择需要同步的资源', - Menu: '菜单', - Publish: '发布', - Translations: '翻译', -}; diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/server/__tests__/resources.test.ts b/packages/plugins/@nocobase/plugin-localization-management/src/server/__tests__/resources.test.ts index a1a450adb..b83ff1dd3 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/server/__tests__/resources.test.ts +++ b/packages/plugins/@nocobase/plugin-localization-management/src/server/__tests__/resources.test.ts @@ -60,8 +60,18 @@ describe('resources', () => { }); test('filterExists', async () => { - const result = await resources.filterExists(['Edit', 'Add new', 'Admin', 'Test']); - expect(result).toEqual(['Test']); + const result = await resources.filterExists([ + { text: 'Edit', module: 'resources.client' }, + { text: 'Add new', module: 'resources.client' }, + { text: 'Admin', module: 'resources.acl' }, + { text: 'Test', module: 'resources.acl' }, + ]); + expect(result).toEqual([ + { + text: 'Test', + module: 'resources.acl', + }, + ]); }); test('updateCacheTexts', async () => { diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localization.ts b/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localization.ts index 756ffcad3..933b6fbe7 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localization.ts +++ b/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localization.ts @@ -3,6 +3,7 @@ import { Database, Model, Op } from '@nocobase/database'; import { UiSchemaRepository } from '@nocobase/plugin-ui-schema-storage'; import LocalizationManagementPlugin from '../plugin'; import { getTextsFromDBRecord, getTextsFromUISchema } from '../utils'; +import { NAMESPACE_COLLECTIONS, NAMESPACE_MENUS } from '../constans'; const getResourcesInstance = async (ctx: Context) => { const plugin = ctx.app.getPlugin('localization-management') as LocalizationManagementPlugin; @@ -11,18 +12,6 @@ const getResourcesInstance = async (ctx: Context) => { export const getResources = async (ctx: Context) => { const resources = await ctx.app.localeManager.getCacheResources(ctx.get('X-Locale') || 'en-US'); - const client = resources['client']; - // Remove duplicated keys - Object.keys(resources).forEach((module) => { - if (module === 'client') { - return; - } - Object.keys(resources[module]).forEach((key) => { - if (client[key]) { - resources[module][key] = undefined; - } - }); - }); return { ...resources }; }; @@ -69,29 +58,6 @@ export const getUISchemas = async (db: Database) => { return uiSchemas; }; -export const resourcesToRecords = async ( - locale: string, - resources: any, -): Promise<{ - [key: string]: { module: string; text: string; locale: string; translation: string }; -}> => { - const records = {}; - for (const module in resources) { - const resource = resources[module]; - for (const text in resource) { - if (resource[text] || module === 'client') { - records[text] = { - module: 'client', - text, - locale, - translation: resource[text], - }; - } - } - } - return records; -}; - const getTextsFromUISchemas = async (db: Database) => { const result = {}; const schemas = await getUISchemas(db); @@ -102,7 +68,7 @@ const getTextsFromUISchemas = async (db: Database) => { return result; }; -const getTextsFromDB = async (db: Database) => { +export const getTextsFromDB = async (db: Database) => { const result = {}; const collections = Array.from(db.collections.values()); for (const collection of collections) { @@ -129,7 +95,7 @@ const getSchemaUid = async (db: Database) => { return { adminSchemaUid, mobileSchemaUid }; }; -const getTextsFromMenu = async (db: Database) => { +export const getTextsFromMenu = async (db: Database) => { const result = {}; const { adminSchemaUid, mobileSchemaUid } = await getSchemaUid(db); const repo = db.getRepository('uiSchemas') as UiSchemaRepository; @@ -177,24 +143,23 @@ const sync = async (ctx: Context, next: Next) => { } if (type.includes('menu')) { const menuTexts = await getTextsFromMenu(ctx.db); - resources['client'] = { + resources[NAMESPACE_MENUS] = { ...menuTexts, - ...resources['client'], }; } if (type.includes('db')) { const dbTexts = await getTextsFromDB(ctx.db); - resources['client'] = { + resources[NAMESPACE_COLLECTIONS] = { ...dbTexts, - ...resources['client'], }; } - const records = await resourcesToRecords(locale, resources); - let textValues = Object.values(records).map((record) => ({ - module: `resources.${record.module}`, - text: record.text, - })); + let textValues = []; + Object.entries(resources).forEach(([module, resource]) => { + Object.keys(resource).forEach((text) => { + textValues.push({ module: `resources.${module}`, text }); + }); + }); textValues = (await resourcesInstance.filterExists(textValues)) as any[]; await ctx.db.sequelize.transaction(async (t) => { const newTexts = await ctx.db.getModel('localizationTexts').bulkCreate(textValues, { @@ -206,15 +171,19 @@ const sync = async (ctx: Context, next: Next) => { transaction: t, }); const translationValues = texts - .filter((text: Model) => records[text.text]) + .filter((text: Model) => { + const module = text.module.replace('resources.', ''); + return resources[module]?.[text.text]; + }) .map((text: Model) => { + const module = text.module.replace('resources.', ''); return { locale, textId: text.id, - translation: records[text.text].translation, + translation: resources[module]?.[text.text], }; - }) - .filter((translation) => translation.translation); + }); + await ctx.db.getModel('localizationTranslations').bulkCreate(translationValues, { transaction: t, }); diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localizationTexts.ts b/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localizationTexts.ts index 3f4556dc9..191663c9d 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localizationTexts.ts +++ b/packages/plugins/@nocobase/plugin-localization-management/src/server/actions/localizationTexts.ts @@ -1,5 +1,8 @@ import { Context, Next, DEFAULT_PAGE, DEFAULT_PER_PAGE } from '@nocobase/actions'; +import { Cache } from '@nocobase/cache'; import { Database, Model, Op } from '@nocobase/database'; +import { PluginManager } from '@nocobase/server'; +import { EXTEND_MODULES } from '../constans'; const appendTranslations = async (db: Database, rows: Model[], locale: string): Promise => { const texts = rows || []; @@ -27,24 +30,24 @@ const appendTranslations = async (db: Database, rows: Model[], locale: string): }; const listText = async (db: Database, params: any): Promise<[any[], number]> => { - const { keyword, hasTranslation, locale, options } = params; + const { module, keyword, hasTranslation, locale, options } = params; + if (module) { + options['filter'] = { module: `resources.${module}` }; + } if (keyword || !hasTranslation) { options['include'] = [{ association: 'translations', where: { locale }, required: false }]; if (!hasTranslation) { if (keyword) { - options['where'] = { - [Op.and]: [ - { text: { [Op.like]: `%${keyword}%` } }, - { - '$translations.id$': null, - }, - ], - }; - } else { - options['where'] = { - '$translations.id$': null, + options['filter'] = { + ...options['filter'], + text: { + $includes: keyword, + }, }; } + options['where'] = { + '$translations.id$': null, + }; } else { options['where'] = { [Op.or]: [ @@ -67,19 +70,45 @@ const list = async (ctx: Context, next: Next) => { page = parseInt(String(page)); pageSize = parseInt(String(pageSize)); hasTranslation = hasTranslation === 'true' || hasTranslation === undefined; - const { keyword } = ctx.action.params; + const { keyword, module } = ctx.action.params; const options = { context: ctx, offset: (page - 1) * pageSize, limit: pageSize, }; - const [rows, count] = await listText(ctx.db, { keyword, hasTranslation, locale, options }); + const [rows, count] = await listText(ctx.db, { module, keyword, hasTranslation, locale, options }); + + // append plugin displayName + const cache = ctx.app.cache as Cache; + const pm = ctx.app.pm as PluginManager; + const plugins = await cache.wrap(`lm-plugins:${locale}`, () => pm.list({ locale })); + const modules = [ + ...EXTEND_MODULES, + ...plugins.map((plugin) => ({ + value: plugin.alias || plugin.name, + label: plugin.displayName, + })), + ]; + for (const row of rows) { + const moduleName = (row.get('module') as string).replace('resources.', ''); + const module = modules.find((module) => module.value === moduleName); + if (module) { + row.set('moduleTitle', module.label, { raw: true }); + } + } ctx.body = { count, rows, page, pageSize, totalPage: Math.ceil(count / pageSize), + modules: [ + ...EXTEND_MODULES, + ...plugins.map((plugin) => ({ + value: plugin.alias || plugin.name, + label: plugin.displayName, + })), + ], }; await next(); }; diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/server/constans.ts b/packages/plugins/@nocobase/plugin-localization-management/src/server/constans.ts index 48bf9ca31..a774448c6 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/server/constans.ts +++ b/packages/plugins/@nocobase/plugin-localization-management/src/server/constans.ts @@ -1 +1,15 @@ export const CACHE_KEY = 'localization:texts'; + +export const NAMESPACE_PREFIX = 'lm-'; +export const NAMESPACE_MENUS = `${NAMESPACE_PREFIX}menus`; +export const NAMESPACE_COLLECTIONS = `${NAMESPACE_PREFIX}collections`; +export const EXTEND_MODULES = [ + { + value: NAMESPACE_MENUS, + label: 'Menu', + }, + { + value: NAMESPACE_COLLECTIONS, + label: 'Collections & Fields', + }, +]; diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/server/migrations/20231130161851-fix-module.ts b/packages/plugins/@nocobase/plugin-localization-management/src/server/migrations/20231130161851-fix-module.ts new file mode 100644 index 000000000..e23387d45 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-localization-management/src/server/migrations/20231130161851-fix-module.ts @@ -0,0 +1,73 @@ +import { Migration } from '@nocobase/server'; +import { getTextsFromMenu, getTextsFromDB } from '../actions/localization'; +import { NAMESPACE_COLLECTIONS, NAMESPACE_MENUS } from '../constans'; +import { Op } from '@nocobase/database'; + +export default class FixModuleMigration extends Migration { + async up() { + const result = await this.app.version.satisfies('<=0.16.0-alpha.7'); + + if (!result) { + return; + } + + const resources = await this.app.localeManager.getCacheResources('zh-CN'); + const menus = await getTextsFromMenu(this.context.db); + const collections = await getTextsFromDB(this.context.db); + + const db = this.context.db; + await db.sequelize.transaction(async (t) => { + const menuTexts = Object.keys(menus); + await db.getModel('localizationTexts').update( + { + module: `resources.${NAMESPACE_MENUS}`, + }, + { + where: { + text: { + [Op.in]: menuTexts, + }, + }, + transaction: t, + }, + ); + + const collectionTexts = Object.keys(collections); + await db.getModel('localizationTexts').update( + { + module: `resources.${NAMESPACE_COLLECTIONS}`, + }, + { + where: { + text: { + [Op.in]: collectionTexts, + }, + }, + transaction: t, + }, + ); + + for (const [module, resource] of Object.entries(resources)) { + if (module === 'client') { + continue; + } + const texts = Object.keys(resource); + await db.getModel('localizationTexts').update( + { + module: `resources.${module}`, + }, + { + where: { + text: { + [Op.in]: texts, + }, + }, + transaction: t, + }, + ); + } + }); + } + + async down() {} +} diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/server/plugin.ts b/packages/plugins/@nocobase/plugin-localization-management/src/server/plugin.ts index 29f69b675..b049f7a37 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/server/plugin.ts +++ b/packages/plugins/@nocobase/plugin-localization-management/src/server/plugin.ts @@ -7,6 +7,7 @@ import localization from './actions/localization'; import localizationTexts from './actions/localizationTexts'; import Resources from './resources'; import { getTextsFromDBRecord } from './utils'; +import { NAMESPACE_COLLECTIONS, NAMESPACE_MENUS } from './constans'; export class LocalizationManagementPlugin extends Plugin { resources: Resources; @@ -18,12 +19,13 @@ export class LocalizationManagementPlugin extends Plugin { } uiSchemaStoragePlugin.serverHooks.register('onSelfSave', 'extractTextToLocale', async ({ schemaInstance }) => { + const module = `resources.${NAMESPACE_MENUS}`; const schema = schemaInstance.get('schema'); const title = schema?.title || schema?.['x-component-props']?.title; if (!title) { return; } - const result = await this.resources.filterExists([title]); + const result = await this.resources.filterExists([{ text: title, module }]); if (!result.length) { return; } @@ -31,7 +33,7 @@ export class LocalizationManagementPlugin extends Plugin { .getRepository('localizationTexts') .create({ values: { - module: 'resources.client', + module, text: title, }, }) @@ -73,6 +75,7 @@ export class LocalizationManagementPlugin extends Plugin { }); this.db.on('afterSave', async (instance: Model) => { + const module = `resources.${NAMESPACE_COLLECTIONS}`; const model = instance.constructor as typeof Model; const collection = model.collection; if (!collection) { @@ -87,12 +90,17 @@ export class LocalizationManagementPlugin extends Plugin { } const textsFromDB = getTextsFromDBRecord(fields, instance); textsFromDB.forEach((text) => { - texts.push(text); + texts.push({ text, module }); }); texts = await this.resources.filterExists(texts); this.db .getModel('localizationTexts') - .bulkCreate(texts.map((text) => ({ module: 'resources.client', text }))) + .bulkCreate( + texts.map((text) => ({ + module, + text, + })), + ) .then((newTexts) => this.resources.updateCacheTexts(newTexts)) .catch((err) => {}); }); @@ -112,22 +120,12 @@ export class LocalizationManagementPlugin extends Plugin { if (resourceName === 'app' && actionName === 'getLang') { const custom = await this.resources.getResources(ctx.get('X-Locale') || 'en-US'); const appLang = ctx.body; - const resources = {}; - Object.keys(appLang.resources).forEach((key) => { - const resource = custom[`resources.${key}`]; - resources[key] = resource ? deepmerge(appLang.resources[key], resource) : { ...appLang.resources[key] }; - }); - // For duplicate texts, use translations from client to override translations in other modules - const client = resources['client'] || {}; - Object.keys(resources).forEach((key) => { - if (key === 'client') { - return; - } - Object.keys(resources[key]).forEach((text) => { - if (client[text]) { - resources[key][text] = client[text]; - } - }); + const resources = { ...appLang.resources }; + Object.keys(custom).forEach((key) => { + const module = key.replace('resources.', ''); + const resource = appLang.resources[module]; + const customResource = custom[key]; + resources[module] = resource ? deepmerge(resource, customResource) : customResource; }); ctx.body = { ...appLang, diff --git a/packages/plugins/@nocobase/plugin-localization-management/src/server/resources.ts b/packages/plugins/@nocobase/plugin-localization-management/src/server/resources.ts index 30f7b40c2..12b52c036 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/src/server/resources.ts +++ b/packages/plugins/@nocobase/plugin-localization-management/src/server/resources.ts @@ -50,14 +50,10 @@ export default class Resources { return resources; } - async filterExists(texts: (string | { text: string })[]) { - let existTexts = await this.getTexts(); - existTexts = existTexts.map((item) => item.text); + async filterExists(texts: { text: string; module: string }[]) { + const existTexts = await this.getTexts(); return texts.filter((text) => { - if (typeof text === 'string') { - return !existTexts.includes(text); - } - return !existTexts.includes(text.text); + return !existTexts.find((item: any) => item.text === text.text && item.module === text.module); }); } diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-map/src/locale/en-US.json new file mode 100644 index 000000000..38f0a8d79 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-map/src/locale/en-US.json @@ -0,0 +1,51 @@ +{ + "Map": "Map", + "Map-based geometry": "Map-based geometry", + "Map type": "Map type", + "Point": "Point", + "Line": "Line", + "Circle": "Circle", + "Polygon": "Polygon", + "Access key": "Access key", + "securityJsCode or serviceHost": "securityJsCode or serviceHost", + "AMap": "AMap", + "Google Maps": "Google Maps", + "Clear": "Clear", + "Click to select the starting point and double-click to end the drawing": "Click to select the starting point and double-click to end the drawing", + "Clear the canvas": "Clear the canvas", + "Are you sure to clear the canvas?": "Are you sure to clear the canvas?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Enter keywords to search": "Enter keywords to search", + "The AccessKey is incorrect, please check it": "The AccessKey is incorrect, please check it", + "Please configure the AMap securityCode or serviceHost correctly": "Please configure the AMap securityCode or serviceHost correctly", + "Map Manager": "Map Manager", + "Configuration": "Configuration", + "Saved successfully": "Saved successfully", + "Saved failed": "Saved failed", + "Edit": "Edit", + "Save": "Save", + "Please configure the AccessKey and SecurityJsCode first": "Please configure the AccessKey and SecurityJsCode first", + "Go to the configuration page": "Go to the configuration page", + "Zoom": "Zoom", + "Set default zoom level": "Set default zoom level", + "The default zoom level of the map": "The default zoom level of the map", + "Edit field title": "Edit field title", + "Field title": "Field title", + "Edit tooltip": "Edit tooltip", + "Delete field": "Delete field", + "Required": "Required", + "Pattern": "Pattern", + "Operator": "Operator", + "Editable": "Editable", + "Readonly": "Readonly", + "Easy-reading": "Easy-reading", + "Edit description": "Edit description", + "Map field": "Map field", + "Marker field": "Marker field", + "Load google maps failed, Please check the Api key and refresh the page": "Load google maps failed, Please check the Api key and refresh the page", + "Create map block": "Create map block", + "Start point": "Start point", + "End point": "End point", + "Concatenation order field": "Concatenation order field" +} diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-map/src/locale/en-US.ts deleted file mode 100644 index 2d905d194..000000000 --- a/packages/plugins/@nocobase/plugin-map/src/locale/en-US.ts +++ /dev/null @@ -1,3 +0,0 @@ -const locale = {}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-map/src/locale/fr-FR.ts deleted file mode 100644 index 2d905d194..000000000 --- a/packages/plugins/@nocobase/plugin-map/src/locale/fr-FR.ts +++ /dev/null @@ -1,3 +0,0 @@ -const locale = {}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-map/src/locale/pt-BR.json new file mode 100644 index 000000000..aaf9e78db --- /dev/null +++ b/packages/plugins/@nocobase/plugin-map/src/locale/pt-BR.json @@ -0,0 +1,45 @@ +{ + "Map-based geometry": "Geometria baseada em mapa", + "Map type": "Tipo de mapa", + "Point": "Ponto", + "Line": "Linha", + "Circle": "Círculo", + "Polygon": "Polígono", + "Access key": "Chave de acesso", + "securityJsCode or serviceHost": "securityJsCode ou serviceHost", + "AMap": "AMap", + "Google Maps": "Google Maps", + "Clear": "Limpar", + "Click to select the starting point and double-click to end the drawing": "Clique para selecionar o ponto de partida e dê um duplo clique para terminar a criação", + "Clear the canvas": "Limpar a tela", + "Are you sure to clear the canvas?": "Tem certeza de que deseja limpar a tela?", + "Confirm": "Confirmar", + "Cancel": "Cancelar", + "Enter keywords to search": "Digite palavras-chave para buscar", + "The AccessKey is incorrect, please check it": "A chave de acesso está incorreta, por favor verifique", + "Please configure the AMap securityCode or serviceHost correctly": "Por favor, configure o securityCode ou serviceHost do AMap corretamente", + "Map Manager": "Gerenciador de Mapa", + "Configuration": "Configuração", + "Saved successfully": "Salvo com sucesso", + "Saved failed": "Falha ao salvar", + "Edit": "Editar", + "Save": "Salvar", + "Please configure the AccessKey and SecurityJsCode first": "Por favor, configure a AccessKey e o SecurityJsCode primeiro", + "Go to the configuration page": "Ir para a página de configuração", + "Zoom": "Zoom", + "Set default zoom level": "Definir nível de zoom padrão", + "The default zoom level of the map": "O nível de zoom padrão do mapa", + "Edit field title": "Editar título do campo", + "Field title": "Título do campo", + "Edit tooltip": "Editar dica de ferramenta", + "Delete field": "Excluir campo", + "Required": "Obrigatório", + "Pattern": "Padrão", + "Operator": "Operador", + "Editable": "Editável", + "Readonly": "Somente leitura", + "Easy-reading": "Apenas leitura (Modo de Leitura)", + "Edit description": "Editar descrição", + "Map field": "Campo de mapa", + "Marker field": "Campo de marcador" +} diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-map/src/locale/pt-BR.ts deleted file mode 100644 index 1f7d9da07..000000000 --- a/packages/plugins/@nocobase/plugin-map/src/locale/pt-BR.ts +++ /dev/null @@ -1,51 +0,0 @@ -const locale = { - 'Map-based geometry': 'Geometria baseada em mapa', - 'Map type': 'Tipo de mapa', - Point: 'Ponto', - Line: 'Linha', - Circle: 'Círculo', - Polygon: 'Polígono', - 'Access key': 'Chave de acesso', - 'securityJsCode or serviceHost': 'securityJsCode ou serviceHost', - AMap: 'AMap', - 'Google Maps': 'Google Maps', - Clear: 'Limpar', - 'Click to select the starting point and double-click to end the drawing': - 'Clique para selecionar o ponto de partida e dê um duplo clique para terminar a criação', - 'Clear the canvas': 'Limpar a tela', - 'Are you sure to clear the canvas?': 'Tem certeza de que deseja limpar a tela?', - Confirm: 'Confirmar', - Cancel: 'Cancelar', - 'Enter keywords to search': 'Digite palavras-chave para buscar', - 'The AccessKey is incorrect, please check it': 'A chave de acesso está incorreta, por favor verifique', - 'Please configure the AMap securityCode or serviceHost correctly': - 'Por favor, configure o securityCode ou serviceHost do AMap corretamente', - 'Map Manager': 'Gerenciador de Mapa', - Configuration: 'Configuração', - 'Saved successfully': 'Salvo com sucesso', - 'Saved failed': 'Falha ao salvar', - Edit: 'Editar', - Save: 'Salvar', - 'Please configure the AccessKey and SecurityJsCode first': - 'Por favor, configure a AccessKey e o SecurityJsCode primeiro', - 'Go to the configuration page': 'Ir para a página de configuração', - Zoom: 'Zoom', - 'Set default zoom level': 'Definir nível de zoom padrão', - 'The default zoom level of the map': 'O nível de zoom padrão do mapa', - // Designer - 'Edit field title': 'Editar título do campo', - 'Field title': 'Título do campo', - 'Edit tooltip': 'Editar dica de ferramenta', - 'Delete field': 'Excluir campo', - Required: 'Obrigatório', - Pattern: 'Padrão', - Operator: 'Operador', - Editable: 'Editável', - Readonly: 'Somente leitura', - 'Easy-reading': 'Apenas leitura (Modo de Leitura)', - 'Edit description': 'Editar descrição', - 'Map field': 'Campo de mapa', - 'Marker field': 'Campo de marcador', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.json new file mode 100644 index 000000000..38f0a8d79 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.json @@ -0,0 +1,51 @@ +{ + "Map": "Map", + "Map-based geometry": "Map-based geometry", + "Map type": "Map type", + "Point": "Point", + "Line": "Line", + "Circle": "Circle", + "Polygon": "Polygon", + "Access key": "Access key", + "securityJsCode or serviceHost": "securityJsCode or serviceHost", + "AMap": "AMap", + "Google Maps": "Google Maps", + "Clear": "Clear", + "Click to select the starting point and double-click to end the drawing": "Click to select the starting point and double-click to end the drawing", + "Clear the canvas": "Clear the canvas", + "Are you sure to clear the canvas?": "Are you sure to clear the canvas?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Enter keywords to search": "Enter keywords to search", + "The AccessKey is incorrect, please check it": "The AccessKey is incorrect, please check it", + "Please configure the AMap securityCode or serviceHost correctly": "Please configure the AMap securityCode or serviceHost correctly", + "Map Manager": "Map Manager", + "Configuration": "Configuration", + "Saved successfully": "Saved successfully", + "Saved failed": "Saved failed", + "Edit": "Edit", + "Save": "Save", + "Please configure the AccessKey and SecurityJsCode first": "Please configure the AccessKey and SecurityJsCode first", + "Go to the configuration page": "Go to the configuration page", + "Zoom": "Zoom", + "Set default zoom level": "Set default zoom level", + "The default zoom level of the map": "The default zoom level of the map", + "Edit field title": "Edit field title", + "Field title": "Field title", + "Edit tooltip": "Edit tooltip", + "Delete field": "Delete field", + "Required": "Required", + "Pattern": "Pattern", + "Operator": "Operator", + "Editable": "Editable", + "Readonly": "Readonly", + "Easy-reading": "Easy-reading", + "Edit description": "Edit description", + "Map field": "Map field", + "Marker field": "Marker field", + "Load google maps failed, Please check the Api key and refresh the page": "Load google maps failed, Please check the Api key and refresh the page", + "Create map block": "Create map block", + "Start point": "Start point", + "End point": "End point", + "Concatenation order field": "Concatenation order field" +} diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.ts deleted file mode 100644 index 8c6d1f960..000000000 --- a/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.ts +++ /dev/null @@ -1,55 +0,0 @@ -const locale = { - Map: '地图', - 'Map-based geometry': '基于地图的几何图形', - 'Map type': '地图类型', - Point: '点', - Line: '线', - Circle: '圆', - Polygon: '多边形', - 'Access key': '访问密钥', - 'securityJsCode or serviceHost': 'securityJsCode 或 serviceHost', - AMap: '高德地图', - 'Google Maps': '谷歌地图', - Clear: '清空', - 'Click to select the starting point and double-click to end the drawing': '点击选择起点,双击结束绘制', - 'Clear the canvas': '清空画布', - 'Are you sure to clear the canvas?': '您确定要清空画布吗?', - Confirm: '确定', - Cancel: '取消', - 'Enter keywords to search': '输入地方名关键字搜索(必须包含省/市)', - 'The AccessKey is incorrect, please check it': '访问密钥不正确,请检查', - 'Please configure the AMap securityCode or serviceHost correctly': '请正确配置高德地图 securityCode 或 serviceHost', - 'Map Manager': '地图管理', - Configuration: '配置', - 'Saved successfully': '保存成功', - 'Saved failed': '保存失败', - Edit: '编辑', - Save: '保存', - 'Please configure the AccessKey and SecurityJsCode first': '请先配置 AccessKey 和 SecurityJsCode', - 'Go to the configuration page': '前往配置页面', - Zoom: '缩放', - 'Set default zoom level': '设置默认缩放级别', - 'The default zoom level of the map': '地图默认缩放级别', - // Designer - 'Edit field title': '编辑字段标题', - 'Field title': '字段标题', - 'Edit tooltip': '编辑提示信息', - 'Delete field': '删除字段', - Required: '必填', - Pattern: '模式', - Operator: '运算符', - Editable: '可编辑', - Readonly: '只读(禁止编辑)', - 'Easy-reading': '只读(阅读模式)', - 'Edit description': '编辑描述', - 'Map field': '地图字段', - 'Marker field': '标记字段', - 'Load google maps failed, Please check the Api key and refresh the page': - '加载谷歌地图失败,请检查 Api key 并刷新页面', - 'Create map block': '创建地图区块', - 'Start point': '起点', - 'End point': '终点', - 'Concatenation order field': '连接顺序字段', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/en-US.json new file mode 100644 index 000000000..13d2aba48 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/en-US.json @@ -0,0 +1,32 @@ +{ + "Mobile Client-side": "Mobile Client-side", + "Interface Configuration": "Interface Configuration", + "App Configuration": "App Configuration", + "Enable TabBar": "Enable TabBar", + "Untitled": "Untitled", + "Edit info": "Edit info", + "Title": "Title", + "Display back button": "Display back button", + "Delete menu": "Delete menu", + "Edit menu info": "Edit menu info", + "Menu": "Menu", + "Menu name": "Menu name", + "Icon": "Icon", + "Delete menu item?": "Delete menu item?", + "Add menu item": "Add menu item", + "Page template": "Page template", + "Template mode": "Template mode", + "Enable Header": "Enable Header", + "Enable Tabs": "Enable Tabs", + "Delete tab item?": "Delete tab item?", + "Add tab": "Add tab", + "App level Configuration": "App level Configuration", + "Menu configuration": "Menu configuration", + "Page configuration": "Page configuration", + "Settings": "Settings", + "Delete settings block": "Delete settings block", + "Delete menu block": "Delete menu block", + "Mobile client access address": "Mobile client access address", + "The full address is": "The full address is", + "Open in new tab": "Open in new tab" +} diff --git a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/en-US.ts deleted file mode 100644 index 2d905d194..000000000 --- a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/en-US.ts +++ /dev/null @@ -1,3 +0,0 @@ -const locale = {}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/fr-FR.ts deleted file mode 100644 index 2d905d194..000000000 --- a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/fr-FR.ts +++ /dev/null @@ -1,3 +0,0 @@ -const locale = {}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/zh-CN.json new file mode 100644 index 000000000..b9ccb928e --- /dev/null +++ b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/zh-CN.json @@ -0,0 +1,32 @@ +{ + "Mobile Client-side": "移动端", + "Interface Configuration": "界面配置", + "App Configuration": "App配置", + "Enable TabBar": "启用底部标签栏", + "Untitled": "未设置标题", + "Edit info": "编辑信息", + "Title": "标题", + "Display back button": "展示退后按钮", + "Delete menu": "删除菜单", + "Edit menu info": "编辑菜单信息", + "Menu": "菜单", + "Menu name": "菜单名", + "Icon": "图标", + "Delete menu item?": "删除菜单项", + "Add menu item": "添加菜单项", + "Page template": "页面模板", + "Template mode": "模板模式", + "Enable Header": "启用头部栏", + "Enable Tabs": "启用标签栏", + "Delete tab item?": "是否删除标签项?", + "Add tab": "添加标签页", + "App level Configuration": "应用级别配置", + "Menu configuration": "菜单配置", + "Page configuration": "页面配置", + "Settings": "设置", + "Delete settings block": "删除设置区块", + "Delete menu block": "删除菜单区块", + "Mobile client access address": "移动端访问地址", + "The full address is": "完整的地址是", + "Open in new tab": "在新标签页打开" +} diff --git a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-mobile-client/src/locale/zh-CN.ts deleted file mode 100644 index 4a422faa0..000000000 --- a/packages/plugins/@nocobase/plugin-mobile-client/src/locale/zh-CN.ts +++ /dev/null @@ -1,34 +0,0 @@ -const locale = { - 'Mobile Client-side': '移动端', - 'Interface Configuration': '界面配置', - 'App Configuration': 'App配置', - 'Enable TabBar': '启用底部标签栏', - Untitled: '未设置标题', - 'Edit info': '编辑信息', - Title: '标题', - 'Display back button': '展示退后按钮', - 'Delete menu': '删除菜单', - 'Edit menu info': '编辑菜单信息', - Menu: '菜单', - 'Menu name': '菜单名', - Icon: '图标', - 'Delete menu item?': '删除菜单项', - 'Add menu item': '添加菜单项', - 'Page template': '页面模板', - 'Template mode': '模板模式', - 'Enable Header': '启用头部栏', - 'Enable Tabs': '启用标签栏', - 'Delete tab item?': '是否删除标签项?', - 'Add tab': '添加标签页', - 'App level Configuration': '应用级别配置', - 'Menu configuration': '菜单配置', - 'Page configuration': '页面配置', - Settings: '设置', - 'Delete settings block': '删除设置区块', - 'Delete menu block': '删除菜单区块', - 'Mobile client access address': '移动端访问地址', - 'The full address is': '完整的地址是', - 'Open in new tab': '在新标签页打开', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/en-US.json new file mode 100644 index 000000000..0e18aecaa --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/en-US.json @@ -0,0 +1,11 @@ +{ + "Multi-app manager": "Multi-app manager", + "Applications": "Applications", + "App display name": "App display name", + "App ID": "App ID", + "Pin to menu": "Pin to menu", + "Custom domain": "Custom domain", + "Manage applications": "Manage applications", + "Standalone deployment": "Standalone deployment", + "Auto start": "Auto start" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/es-ES.json b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/es-ES.json new file mode 100644 index 000000000..aff524611 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/es-ES.json @@ -0,0 +1,9 @@ +{ + "Multi-app manager": "Gestor de aplicaciones múltiples", + "Applications": "Aplicaciones", + "App display name": "Mostrar nombre de aplicación", + "App ID": "ID de aplicación", + "Pin to menu": " Fijar al menú", + "Custom domain": "Dominio personalizado", + "Manage applications": "Gestionar aplicaciones" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/es-ES.ts deleted file mode 100644 index beacf9530..000000000 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/es-ES.ts +++ /dev/null @@ -1,9 +0,0 @@ -export default { - 'Multi-app manager': 'Gestor de aplicaciones múltiples', - Applications: 'Aplicaciones', - 'App display name': 'Mostrar nombre de aplicación', - 'App ID': 'ID de aplicación', - 'Pin to menu': ' Fijar al menú', - 'Custom domain': 'Dominio personalizado', - 'Manage applications': 'Gestionar aplicaciones', -}; diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/pt-BR.json new file mode 100644 index 000000000..12198d439 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/pt-BR.json @@ -0,0 +1,9 @@ +{ + "Multi-app manager": "Gerenciador de aplicativos múltiplos", + "Applications": "Aplicativos", + "App display name": "Nome de exibição do aplicativo", + "App ID": "ID do aplicativo", + "Pin to menu": "Fixar no menu", + "Custom domain": "Domínio personalizado", + "Manage applications": "Gerenciar aplicativos" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/pt-BR.ts deleted file mode 100644 index 7a757c74d..000000000 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/pt-BR.ts +++ /dev/null @@ -1,9 +0,0 @@ -export default { - 'Multi-app manager': 'Gerenciador de aplicativos múltiplos', - Applications: 'Aplicativos', - 'App display name': 'Nome de exibição do aplicativo', - 'App ID': 'ID do aplicativo', - 'Pin to menu': 'Fixar no menu', - 'Custom domain': 'Domínio personalizado', - 'Manage applications': 'Gerenciar aplicativos', -}; diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/zh-CN.json new file mode 100644 index 000000000..1b81f70ff --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/zh-CN.json @@ -0,0 +1,11 @@ +{ + "Multi-app manager": "多应用管理", + "Applications": "应用", + "App display name": "应用名称", + "App ID": "应用标识", + "Pin to menu": "在菜单上显示", + "Custom domain": "自定义域名", + "Manage applications": "管理应用", + "Standalone deployment": "独立部署", + "Auto start": "自动启动" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/zh-CN.ts deleted file mode 100644 index edf147d9a..000000000 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/src/locale/zh-CN.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default { - 'Multi-app manager': '多应用管理', - Applications: '应用', - 'App display name': '应用名称', - 'App ID': '应用标识', - 'Pin to menu': '在菜单上显示', - 'Custom domain': '自定义域名', - 'Manage applications': '管理应用', - 'Standalone deployment': '独立部署', - 'Auto start': '自动启动', -}; diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/en-US.json new file mode 100644 index 000000000..bf2ddc85a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/en-US.json @@ -0,0 +1,12 @@ +{ + "Share collections": "Share collections", + "Unshared collections": "Unshared collections", + "Shared collections": "Shared collections", + "All categories": "All categories", + "Enter name or title...": "Enter name or title...", + "Are you sure to add the following collections?": "Are you sure to add the following collections?", + "Are you sure to remove the following collections?": "Are you sure to remove the following collections?", + "Collection display name": "Collection display name", + "Collection name": "Collection name", + "Collection category": "Collection category" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/es-ES.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/es-ES.json new file mode 100644 index 000000000..86abe6acb --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/es-ES.json @@ -0,0 +1,12 @@ +{ + "Share collections": "Tablas compartidas", + "Unshared collections": "Tablas no compartidas", + "Shared collections": "Tablas compartidas", + "All categories": "Todas las categorías", + "Enter name or title...": "Introducir nombre o título...", + "Are you sure to add the following collections?": "¿Está seguro de que desea añadir las siguientes tablas?", + "Are you sure to remove the following collections?": "¿Está seguro de que desea eliminar las siguientes tablas?", + "Collection display name": "Mostrar nombre de la tabla", + "Collection name": "Nombre de la tabla", + "Collection category": "Categoría de tabla" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/es-ES.ts deleted file mode 100644 index eb7fb1e9c..000000000 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/es-ES.ts +++ /dev/null @@ -1,12 +0,0 @@ -export default { - 'Share collections': 'Tablas compartidas', - 'Unshared collections': 'Tablas no compartidas', - 'Shared collections': 'Tablas compartidas', - 'All categories': 'Todas las categorías', - 'Enter name or title...': 'Introducir nombre o título...', - 'Are you sure to add the following collections?': '¿Está seguro de que desea añadir las siguientes tablas?', - 'Are you sure to remove the following collections?': '¿Está seguro de que desea eliminar las siguientes tablas?', - 'Collection display name': 'Mostrar nombre de la tabla', - 'Collection name': 'Nombre de la tabla', - 'Collection category': 'Categoría de tabla', -}; diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/pt-BR.json new file mode 100644 index 000000000..82a5a65ef --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/pt-BR.json @@ -0,0 +1,12 @@ +{ + "Share collections": "Compartilhar tabelas", + "Unshared collections": "Tabelas não compartilhadas", + "Shared collections": "Tabelas compartilhadas", + "All categories": "Todas as categorias", + "Enter name or title...": "Digite o nome ou título...", + "Are you sure to add the following collections?": "Tem certeza de que deseja adicionar as seguintes tabelas?", + "Are you sure to remove the following collections?": "Tem certeza de que deseja remover as seguintes tabelas?", + "Collection display name": "Nome de exibição da tabela", + "Collection name": "Nome da tabela", + "Collection category": "Categoria da tabela" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/pt-BR.ts deleted file mode 100644 index 179606888..000000000 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/pt-BR.ts +++ /dev/null @@ -1,12 +0,0 @@ -export default { - 'Share collections': 'Compartilhar tabelas', - 'Unshared collections': 'Tabelas não compartilhadas', - 'Shared collections': 'Tabelas compartilhadas', - 'All categories': 'Todas as categorias', - 'Enter name or title...': 'Digite o nome ou título...', - 'Are you sure to add the following collections?': 'Tem certeza de que deseja adicionar as seguintes tabelas?', - 'Are you sure to remove the following collections?': 'Tem certeza de que deseja remover as seguintes tabelas?', - 'Collection display name': 'Nome de exibição da tabela', - 'Collection name': 'Nome da tabela', - 'Collection category': 'Categoria da tabela', -}; diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/zh-CN.json new file mode 100644 index 000000000..dd227c3c8 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/zh-CN.json @@ -0,0 +1,12 @@ +{ + "Share collections": "共享数据表", + "Unshared collections": "未共享的数据表", + "Shared collections": "已共享的数据表", + "All categories": "所有分类", + "Enter name or title...": "输入数据表标题或标识", + "Are you sure to add the following collections?": "确定添加以下数据表?", + "Are you sure to remove the following collections?": "确定移除以下数据表?", + "Collection display name": "标题", + "Collection name": "标识", + "Collection category": "分类" +} diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/zh-CN.ts deleted file mode 100644 index 65963f07d..000000000 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/locale/zh-CN.ts +++ /dev/null @@ -1,12 +0,0 @@ -export default { - 'Share collections': '共享数据表', - 'Unshared collections': '未共享的数据表', - 'Shared collections': '已共享的数据表', - 'All categories': '所有分类', - 'Enter name or title...': '输入数据表标题或标识', - 'Are you sure to add the following collections?': '确定添加以下数据表?', - 'Are you sure to remove the following collections?': '确定移除以下数据表?', - 'Collection display name': '标题', - 'Collection name': '标识', - 'Collection category': '分类', -}; diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-oidc/src/locale/en-US.json new file mode 100644 index 000000000..706425673 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-oidc/src/locale/en-US.json @@ -0,0 +1,25 @@ +{ + "Enable": "Enable", + "Issuer": "Issuer", + "OIDC manager": "OIDC manager", + "OIDC Providers": "OIDC Providers", + "Provider name": "Name", + "Client id": "Client id", + "Client secret": "Client secret", + "Openid configuration": "Openid configuration", + "Authorization endpoint": "Authorization endpoint", + "Access token endpoint": "Access token endpoint", + "JWKS endpoint": "JWKS endpoint", + "Userinfo endpoint": "Userinfo endpoint", + "Redirect url": "Redirect url", + "Logout endpoint": "Logout endpoint", + "Id token sign alg": "Id token sign alg", + "Add provider": "Add", + "Edit provider": "Edit", + "Delete provider": "Delete", + "Sign in button name, which will be displayed on the sign in page": "Sign in button name, which will be displayed on the sign in page", + "Use this field to bind the user": "Use this field to bind the user", + "Sign up automatically when the user does not exist": "Sign up automatically when the user does not exist", + "Username must be 2-16 characters in length (excluding @.<>\"'/)": "Username must be 2-16 characters in length (excluding @.<>\"'/)", + "User not found": "User not found" +} diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/en-US.ts deleted file mode 100644 index 0c5b2021a..000000000 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/en-US.ts +++ /dev/null @@ -1,27 +0,0 @@ -export default { - Enable: 'Enable', - Issuer: 'Issuer', - 'OIDC manager': 'OIDC manager', - 'OIDC Providers': 'OIDC Providers', - 'Provider name': 'Name', - 'Client id': 'Client id', - 'Client secret': 'Client secret', - 'Openid configuration': 'Openid configuration', - 'Authorization endpoint': 'Authorization endpoint', - 'Access token endpoint': 'Access token endpoint', - 'JWKS endpoint': 'JWKS endpoint', - 'Userinfo endpoint': 'Userinfo endpoint', - 'Redirect url': 'Redirect url', - 'Logout endpoint': 'Logout endpoint', - 'Id token sign alg': 'Id token sign alg', - 'Add provider': 'Add', - 'Edit provider': 'Edit', - 'Delete provider': 'Delete', - 'Sign in button name, which will be displayed on the sign in page': - 'Sign in button name, which will be displayed on the sign in page', - 'Use this field to bind the user': 'Use this field to bind the user', - 'Sign up automatically when the user does not exist': 'Sign up automatically when the user does not exist', - 'Username must be 2-16 characters in length (excluding @.<>"\'/)': - 'Username must be 2-16 characters in length (excluding @.<>"\'/)', - 'User not found': 'User not found', -}; diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/es-ES.json similarity index 98% rename from packages/plugins/@nocobase/plugin-oidc/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-oidc/src/locale/es-ES.json index f493a4879..e31ce83d8 100644 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-oidc/src/locale/es-ES.json @@ -1,4 +1,4 @@ -export default { +{ "Enable": "Activar", "Issuer": "Emisor", "Actions": "Acciones", @@ -22,4 +22,4 @@ export default { "Edit provider": "Editar Proveedor", "Delete provider": "Borrar Proveedor", "Sign in button name, which will be displayed on the sign in page": "Nombre del botón de inicio de sesión, que se mostrará en la página de inicio de sesión" -}; +} diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-oidc/src/locale/fr-FR.json new file mode 100644 index 000000000..7927beced --- /dev/null +++ b/packages/plugins/@nocobase/plugin-oidc/src/locale/fr-FR.json @@ -0,0 +1,21 @@ +{ + "Enable": "Activer", + "Issuer": "Issuer", + "OIDC manager": "OIDC manager", + "OIDC Providers": "OIDC Providers", + "Provider name": "Nom", + "Client id": "Client id", + "Client secret": "Client secret", + "Openid configuration": "Openid configuration", + "Authorization endpoint": "Authorization endpoint", + "Access token endpoint": "Access token endpoint", + "JWKS endpoint": "JWKS endpoint", + "Userinfo endpoint": "Userinfo endpoint", + "Redirect url": "Redirect url", + "Logout endpoint": "Logout endpoint", + "Id token sign alg": "Id token sign alg", + "Add provider": "Ajouter", + "Edit provider": "Modifier", + "Delete provider": "Supprimer", + "Sign in button name, which will be displayed on the sign in page": "Nom du bouton de connexion, qui sera affiché sur la page de connexion" +} diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/fr-FR.ts deleted file mode 100644 index 18b00edbf..000000000 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/fr-FR.ts +++ /dev/null @@ -1,22 +0,0 @@ -export default { - Enable: 'Activer', - Issuer: 'Issuer', - 'OIDC manager': 'OIDC manager', - 'OIDC Providers': 'OIDC Providers', - 'Provider name': 'Nom', - 'Client id': 'Client id', - 'Client secret': 'Client secret', - 'Openid configuration': 'Openid configuration', - 'Authorization endpoint': 'Authorization endpoint', - 'Access token endpoint': 'Access token endpoint', - 'JWKS endpoint': 'JWKS endpoint', - 'Userinfo endpoint': 'Userinfo endpoint', - 'Redirect url': 'Redirect url', - 'Logout endpoint': 'Logout endpoint', - 'Id token sign alg': 'Id token sign alg', - 'Add provider': 'Ajouter', - 'Edit provider': 'Modifier', - 'Delete provider': 'Supprimer', - 'Sign in button name, which will be displayed on the sign in page': - 'Nom du bouton de connexion, qui sera affiché sur la page de connexion', -}; diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/ja-JP.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/ja-JP.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-oidc/src/locale/pt-BR.json new file mode 100644 index 000000000..533f645e4 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-oidc/src/locale/pt-BR.json @@ -0,0 +1,21 @@ +{ + "Enable": "Habilitar", + "Issuer": "Emissor", + "OIDC manager": "Gerenciador OIDC", + "OIDC Providers": "Provedores OIDC", + "Provider name": "Nome do provedor", + "Client id": "ID do cliente", + "Client secret": "Segredo do cliente", + "Openid configuration": "Configuração OpenID", + "Authorization endpoint": "Endpoint de autorização", + "Access token endpoint": "Endpoint de token de acesso", + "JWKS endpoint": "Endpoint JWKS", + "Userinfo endpoint": "Endpoint de informações do usuário", + "Redirect url": "URL de redirecionamento", + "Logout endpoint": "Endpoint de logout", + "Id token sign alg": "Algoritmo de assinatura do token de ID", + "Add provider": "Adicionar", + "Edit provider": "Editar", + "Delete provider": "Excluir", + "Sign in button name, which will be displayed on the sign in page": "Nome do botão de login, que será exibido na página de login" +} diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/pt-BR.ts deleted file mode 100644 index 184baf0e5..000000000 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/pt-BR.ts +++ /dev/null @@ -1,22 +0,0 @@ -export default { - Enable: 'Habilitar', - Issuer: 'Emissor', - 'OIDC manager': 'Gerenciador OIDC', - 'OIDC Providers': 'Provedores OIDC', - 'Provider name': 'Nome do provedor', - 'Client id': 'ID do cliente', - 'Client secret': 'Segredo do cliente', - 'Openid configuration': 'Configuração OpenID', - 'Authorization endpoint': 'Endpoint de autorização', - 'Access token endpoint': 'Endpoint de token de acesso', - 'JWKS endpoint': 'Endpoint JWKS', - 'Userinfo endpoint': 'Endpoint de informações do usuário', - 'Redirect url': 'URL de redirecionamento', - 'Logout endpoint': 'Endpoint de logout', - 'Id token sign alg': 'Algoritmo de assinatura do token de ID', - 'Add provider': 'Adicionar', - 'Edit provider': 'Editar', - 'Delete provider': 'Excluir', - 'Sign in button name, which will be displayed on the sign in page': - 'Nome do botão de login, que será exibido na página de login', -}; diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/ru-RU.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/ru-RU.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/ru-RU.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/tr-TR.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/tr-TR.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/tr-TR.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-oidc/src/locale/zh-CN.json new file mode 100644 index 000000000..b6bffa34b --- /dev/null +++ b/packages/plugins/@nocobase/plugin-oidc/src/locale/zh-CN.json @@ -0,0 +1,13 @@ +{ + "Enable": "启用", + "Actions": "操作", + "Delete": "删除", + "Edit": "编辑", + "Copied": "已复制", + "Field Map": "字段映射", + "id_token signed response algorithm": "id_token签名算法", + "Use this field to bind the user": "使用此字段绑定用户", + "Sign up automatically when the user does not exist": "用户不存在时自动注册", + "Username must be 2-16 characters in length (excluding @.<>\"'/)": "用户名必须为2-16个字符并且不包含@.<>\"'/)", + "User not found": "用户不存在" +} diff --git a/packages/plugins/@nocobase/plugin-oidc/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-oidc/src/locale/zh-CN.ts deleted file mode 100644 index 9fbb64cdf..000000000 --- a/packages/plugins/@nocobase/plugin-oidc/src/locale/zh-CN.ts +++ /dev/null @@ -1,13 +0,0 @@ -export default { - Enable: '启用', - Actions: '操作', - Delete: '删除', - Edit: '编辑', - Copied: '已复制', - 'Field Map': '字段映射', - 'id_token signed response algorithm': 'id_token签名算法', - 'Use this field to bind the user': '使用此字段绑定用户', - 'Sign up automatically when the user does not exist': '用户不存在时自动注册', - 'Username must be 2-16 characters in length (excluding @.<>"\'/)': '用户名必须为2-16个字符并且不包含@.<>"\'/)', - 'User not found': '用户不存在', -}; diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-saml/src/locale/en-US.json new file mode 100644 index 000000000..2646be723 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-saml/src/locale/en-US.json @@ -0,0 +1,26 @@ +{ + "Edit": "Edit", + "Delete": "Delete", + "Cancel": "Cancel", + "Submit": "Submit", + "Actions": "Actions", + "Title": "Title", + "Enable": "Enable", + "SAML manager": "SAML manager", + "SAML Providers": "SAML Providers", + "Redirect url": "Redirect url", + "SP entity id": "SP entity id", + "Add provider": "Add", + "Edit provider": "Edit", + "Client id": "Client id", + "Entity id or issuer": "Entity id or issuer", + "Login Url": "Login Url", + "Public cert": "Public cert", + "Delete provider": "Delete", + "Are you sure you want to delete it?": "Are you sure you want to delete it?", + "Sign in button name, which will be displayed on the sign in page": "Sign in button name, which will be displayed on the sign in page", + "Use this field to bind the user": "Use this field to bind the user", + "Sign up automatically when the user does not exist": "Sign up automatically when the user does not exist", + "Username must be 2-16 characters in length (excluding @.<>\"'/)": "Username must be 2-16 characters in length (excluding @.<>\"'/)", + "User not found": "User not found" +} diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/en-US.ts deleted file mode 100644 index cfc671f86..000000000 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/en-US.ts +++ /dev/null @@ -1,28 +0,0 @@ -export default { - Edit: 'Edit', - Delete: 'Delete', - Cancel: 'Cancel', - Submit: 'Submit', - Actions: 'Actions', - Title: 'Title', - Enable: 'Enable', - 'SAML manager': 'SAML manager', - 'SAML Providers': 'SAML Providers', - 'Redirect url': 'Redirect url', - 'SP entity id': 'SP entity id', - 'Add provider': 'Add', - 'Edit provider': 'Edit', - 'Client id': 'Client id', - 'Entity id or issuer': 'Entity id or issuer', - 'Login Url': 'Login Url', - 'Public cert': 'Public cert', - 'Delete provider': 'Delete', - 'Are you sure you want to delete it?': 'Are you sure you want to delete it?', - 'Sign in button name, which will be displayed on the sign in page': - 'Sign in button name, which will be displayed on the sign in page', - 'Use this field to bind the user': 'Use this field to bind the user', - 'Sign up automatically when the user does not exist': 'Sign up automatically when the user does not exist', - 'Username must be 2-16 characters in length (excluding @.<>"\'/)': - 'Username must be 2-16 characters in length (excluding @.<>"\'/)', - 'User not found': 'User not found', -}; diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/es-ES.json similarity index 97% rename from packages/plugins/@nocobase/plugin-saml/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-saml/src/locale/es-ES.json index 8872dc75b..5ae7b99da 100644 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-saml/src/locale/es-ES.json @@ -1,4 +1,4 @@ -export default { +{ "Edit": "Editar", "Delete": "Borrar", "Cancel": "Cancelar", @@ -19,4 +19,4 @@ export default { "Delete provider": "Borrar Proveedor", "Are you sure you want to delete it?": "¿Está seguro de que quiere borrarlo?", "Sign in button name, which will be displayed on the sign in page": "Nombre del botón de inicio de sesión, que se mostrará en la página de inicio de sesión" -}; +} diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-saml/src/locale/fr-FR.json new file mode 100644 index 000000000..ac6875452 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-saml/src/locale/fr-FR.json @@ -0,0 +1,22 @@ +{ + "Edit": "Modifier", + "Delete": "Supprimer", + "Cancel": "Annuler", + "Submit": "Envoyer", + "Actions": "Actions", + "Title": "Titre", + "Enable": "Activer", + "SAML manager": "SAML manager", + "SAML Providers": "SAML Providers", + "Redirect url": "Url de redirection", + "SP entity id": "SP entity id", + "Add provider": "Ajouter", + "Edit provider": "Modifier", + "Client id": "Client id", + "Entity id or issuer": "Entity id or issuer", + "Login Url": "Url de connexion", + "Public cert": "Public cert", + "Delete provider": "Supprimer", + "Are you sure you want to delete it?": "Êtes-vous sûr de vouloir le supprimer ?", + "Sign in button name, which will be displayed on the sign in page": "Nom du bouton de connexion, qui sera affiché sur la page de connexion" +} diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/fr-FR.ts deleted file mode 100644 index 5d10c1459..000000000 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/fr-FR.ts +++ /dev/null @@ -1,23 +0,0 @@ -export default { - Edit: 'Modifier', - Delete: 'Supprimer', - Cancel: 'Annuler', - Submit: 'Envoyer', - Actions: 'Actions', - Title: 'Titre', - Enable: 'Activer', - 'SAML manager': 'SAML manager', - 'SAML Providers': 'SAML Providers', - 'Redirect url': 'Url de redirection', - 'SP entity id': 'SP entity id', - 'Add provider': 'Ajouter', - 'Edit provider': 'Modifier', - 'Client id': 'Client id', - 'Entity id or issuer': 'Entity id or issuer', - 'Login Url': 'Url de connexion', - 'Public cert': 'Public cert', - 'Delete provider': 'Supprimer', - 'Are you sure you want to delete it?': 'Êtes-vous sûr de vouloir le supprimer ?', - 'Sign in button name, which will be displayed on the sign in page': - 'Nom du bouton de connexion, qui sera affiché sur la page de connexion', -}; diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/ja-JP.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/ja-JP.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-saml/src/locale/pt-BR.json new file mode 100644 index 000000000..3f09d0b9c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-saml/src/locale/pt-BR.json @@ -0,0 +1,22 @@ +{ + "Edit": "Editar", + "Delete": "Excluir", + "Cancel": "Cacelar", + "Submit": "Enviar", + "Actions": "Ações", + "Title": "Titulo", + "Enable": "Ativo", + "SAML manager": "Gerenciador SAML", + "SAML Providers": "Fornecedores SAML", + "Redirect url": "URL de redirecionamento", + "SP entity id": "ID da entidade do provedor de serviços", + "Add provider": "Adicionar", + "Edit provider": "Editar", + "Client id": "ID do cliente", + "Entity id or issuer": "ID da entidade ou emissor", + "Login Url": "URL de login", + "Public cert": "Certificado público", + "Delete provider": "Excluir", + "Are you sure you want to delete it?": "Tem certeza de que deseja excluí-lo?", + "Sign in button name, which will be displayed on the sign in page": "Nome do botão de login, que será exibido na página de login" +} diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/pt-BR.ts deleted file mode 100644 index aa33fbc04..000000000 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/pt-BR.ts +++ /dev/null @@ -1,23 +0,0 @@ -export default { - Edit: 'Editar', - Delete: 'Excluir', - Cancel: 'Cacelar', - Submit: 'Enviar', - Actions: 'Ações', - Title: 'Titulo', - Enable: 'Ativo', - 'SAML manager': 'Gerenciador SAML', - 'SAML Providers': 'Fornecedores SAML', - 'Redirect url': 'URL de redirecionamento', - 'SP entity id': 'ID da entidade do provedor de serviços', - 'Add provider': 'Adicionar', - 'Edit provider': 'Editar', - 'Client id': 'ID do cliente', - 'Entity id or issuer': 'ID da entidade ou emissor', - 'Login Url': 'URL de login', - 'Public cert': 'Certificado público', - 'Delete provider': 'Excluir', - 'Are you sure you want to delete it?': 'Tem certeza de que deseja excluí-lo?', - 'Sign in button name, which will be displayed on the sign in page': - 'Nome do botão de login, que será exibido na página de login', -}; diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/ru-RU.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/ru-RU.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/ru-RU.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/tr-TR.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/tr-TR.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/tr-TR.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-saml/src/locale/zh-CN.json new file mode 100644 index 000000000..56cd21d93 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-saml/src/locale/zh-CN.json @@ -0,0 +1,29 @@ +{ + "Edit": "编辑", + "Delete": "删除", + "Cancel": "取消", + "Submit": "提交", + "Actions": "操作", + "Title": "名称", + "Enable": "启用", + "Button title": "登录按钮标题", + "SAML manager": "SAML 管理", + "SAML Providers": "SAML 身份提供者", + "Redirect url": "重定向地址", + "SP entity id": "应用唯一标识(SP Entity ID)", + "Add provider": "添加", + "Edit provider": "编辑", + "Client id": "客户端 id", + "Entity id or issuer": "IdP 唯一标识", + "Login Url": "登录地址", + "Public cert": "公钥", + "Delete provider": "删除", + "Are you sure you want to delete it?": "你确定要删除它吗?", + "Sign in button name, which will be displayed on the sign in page": "登录按钮名称,将在登录页中显示", + "Copied": "已复制", + "Usage": "使用", + "Use this field to bind the user": "使用此字段绑定用户", + "Sign up automatically when the user does not exist": "用户不存在时自动注册", + "Username must be 2-16 characters in length (excluding @.<>\"'/)": "用户名必须为2-16个字符并且不包含@.<>\"'/)", + "User not found": "用户不存在" +} diff --git a/packages/plugins/@nocobase/plugin-saml/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-saml/src/locale/zh-CN.ts deleted file mode 100644 index 457489a74..000000000 --- a/packages/plugins/@nocobase/plugin-saml/src/locale/zh-CN.ts +++ /dev/null @@ -1,29 +0,0 @@ -export default { - Edit: '编辑', - Delete: '删除', - Cancel: '取消', - Submit: '提交', - Actions: '操作', - Title: '名称', - Enable: '启用', - 'Button title': '登录按钮标题', - 'SAML manager': 'SAML 管理', - 'SAML Providers': 'SAML 身份提供者', - 'Redirect url': '重定向地址', - 'SP entity id': '应用唯一标识(SP Entity ID)', - 'Add provider': '添加', - 'Edit provider': '编辑', - 'Client id': '客户端 id', - 'Entity id or issuer': 'IdP 唯一标识', - 'Login Url': '登录地址', - 'Public cert': '公钥', - 'Delete provider': '删除', - 'Are you sure you want to delete it?': '你确定要删除它吗?', - 'Sign in button name, which will be displayed on the sign in page': '登录按钮名称,将在登录页中显示', - Copied: '已复制', - Usage: '使用', - 'Use this field to bind the user': '使用此字段绑定用户', - 'Sign up automatically when the user does not exist': '用户不存在时自动注册', - 'Username must be 2-16 characters in length (excluding @.<>"\'/)': '用户名必须为2-16个字符并且不包含@.<>"\'/)', - 'User not found': '用户不存在', -}; diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/en-US.json new file mode 100644 index 000000000..d40db5d57 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/en-US.json @@ -0,0 +1,24 @@ +{ + "Sequence": "Sequence", + "Sequence rules": "Sequence rules", + "Add rule": "Add rule", + "Inputable": "Inputable", + "Match rules": "Match rules", + "Type": "Type", + "Autoincrement": "Autoincrement", + "Fixed text": "Fixed text", + "Text content": "Text content", + "Rule content": "Rule content", + "{{value}} Digits": "{{value}} Digits", + "Digits": "Digits", + "Start from": "Start from", + "Starts from {{value}}": "Starts from {{value}}", + "Reset cycle": "Reset cycle", + "No reset": "No reset", + "Daily": "Daily", + "Every Monday": "Every Monday", + "Monthly": "Monthly", + "Yearly": "Yearly", + "Operations": "Operations", + "Customize": "Customize" +} diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/en-US.ts deleted file mode 100644 index 94ebf0bf4..000000000 --- a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/en-US.ts +++ /dev/null @@ -1,24 +0,0 @@ -export default { - Sequence: 'Sequence', - 'Sequence rules': 'Sequence rules', - 'Add rule': 'Add rule', - Inputable: 'Inputable', - 'Match rules': 'Match rules', - Type: 'Type', - Autoincrement: 'Autoincrement', - 'Fixed text': 'Fixed text', - 'Text content': 'Text content', - 'Rule content': 'Rule content', - '{{value}} Digits': '{{value}} Digits', - Digits: 'Digits', - 'Start from': 'Start from', - 'Starts from {{value}}': 'Starts from {{value}}', - 'Reset cycle': 'Reset cycle', - 'No reset': 'No reset', - Daily: 'Daily', - 'Every Monday': 'Every Monday', - Monthly: 'Monthly', - Yearly: 'Yearly', - Operations: 'Operations', - Customize: 'Customize', -}; diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/es-ES.json similarity index 97% rename from packages/plugins/@nocobase/plugin-sequence-field/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-sequence-field/src/locale/es-ES.json index 8fb9b85b7..7dcb57d84 100644 --- a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/es-ES.json @@ -1,4 +1,4 @@ -export default { +{ "Sequence": "Secuencia", "Sequence rules": "Reglas de secuencia", "Add rule": "Añadir regla", @@ -21,4 +21,4 @@ export default { "Yearly": "Anual", "Operations": "Operaciones", "Customize": "Personalizar" -}; +} diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/fr-FR.json new file mode 100644 index 000000000..5a6112f21 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/fr-FR.json @@ -0,0 +1,24 @@ +{ + "Sequence": "Séquence", + "Sequence rules": "Règles de séquence", + "Add rule": "Ajouter une règle", + "Inputable": "Modifiable", + "Match rules": "Règles de correspondance", + "Type": "Type", + "Autoincrement": "Incrémentation automatique", + "Fixed text": "Texte fixe", + "Text content": "Contenu du texte", + "Rule content": "Contenu de la règle", + "{{value}} Digits": "{{value}} chiffres", + "Digits": "Chiffres", + "Start from": "Commencer à partir de", + "Starts from {{value}}": "Commence à partir de {{value}}", + "Reset cycle": "Cycle de réinitialisation", + "No reset": "Pas de réinitialisation", + "Daily": "Quotidien", + "Every Monday": "Chaque lundi", + "Monthly": "Mensuel", + "Yearly": "Annuel", + "Operations": "Opérations", + "Customize": "Personnaliser" +} diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/fr-FR.ts deleted file mode 100644 index abd095053..000000000 --- a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/fr-FR.ts +++ /dev/null @@ -1,24 +0,0 @@ -export default { - Sequence: 'Séquence', - 'Sequence rules': 'Règles de séquence', - 'Add rule': 'Ajouter une règle', - Inputable: 'Modifiable', - 'Match rules': 'Règles de correspondance', - Type: 'Type', - Autoincrement: 'Incrémentation automatique', - 'Fixed text': 'Texte fixe', - 'Text content': 'Contenu du texte', - 'Rule content': 'Contenu de la règle', - '{{value}} Digits': '{{value}} chiffres', - Digits: 'Chiffres', - 'Start from': 'Commencer à partir de', - 'Starts from {{value}}': 'Commence à partir de {{value}}', - 'Reset cycle': 'Cycle de réinitialisation', - 'No reset': 'Pas de réinitialisation', - Daily: 'Quotidien', - 'Every Monday': 'Chaque lundi', - Monthly: 'Mensuel', - Yearly: 'Annuel', - Operations: 'Opérations', - Customize: 'Personnaliser', -}; diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/pt-BR.json new file mode 100644 index 000000000..5f40a2e8f --- /dev/null +++ b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/pt-BR.json @@ -0,0 +1,24 @@ +{ + "Sequence": "Sequência", + "Sequence rules": "Regras de sequência", + "Add rule": "Adicionar regra", + "Inputable": "Inserível", + "Match rules": "Regras de correspondência", + "Type": "Tipo", + "Autoincrement": "Autoincremento", + "Fixed text": "Texto fixo", + "Text content": "Conteúdo de texto", + "Rule content": "Conteúdo da regra", + "{{value}} Digits": "{{value}} Dígitos", + "Digits": "Dígitos", + "Start from": "Começa a partir de", + "Starts from {{value}}": "Começa a partir de {{value}}", + "Reset cycle": "Ciclo de reinício", + "No reset": "Sem reinício", + "Daily": "Diariamente", + "Every Monday": "Toda segunda-feira", + "Monthly": "Mensalmente", + "Yearly": "Anualmente", + "Operations": "Operações", + "Customize": "Personalizar" +} diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/pt-BR.ts deleted file mode 100644 index 739f8b58c..000000000 --- a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/pt-BR.ts +++ /dev/null @@ -1,24 +0,0 @@ -export default { - Sequence: 'Sequência', - 'Sequence rules': 'Regras de sequência', - 'Add rule': 'Adicionar regra', - Inputable: 'Inserível', - 'Match rules': 'Regras de correspondência', - Type: 'Tipo', - Autoincrement: 'Autoincremento', - 'Fixed text': 'Texto fixo', - 'Text content': 'Conteúdo de texto', - 'Rule content': 'Conteúdo da regra', - '{{value}} Digits': '{{value}} Dígitos', - Digits: 'Dígitos', - 'Start from': 'Começa a partir de', - 'Starts from {{value}}': 'Começa a partir de {{value}}', - 'Reset cycle': 'Ciclo de reinício', - 'No reset': 'Sem reinício', - Daily: 'Diariamente', - 'Every Monday': 'Toda segunda-feira', - Monthly: 'Mensalmente', - Yearly: 'Anualmente', - Operations: 'Operações', - Customize: 'Personalizar', -}; diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/zh-CN.json new file mode 100644 index 000000000..2ca0c60a8 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/zh-CN.json @@ -0,0 +1,24 @@ +{ + "Sequence": "自动编码", + "Sequence rules": "编号规则", + "Add rule": "添加规则", + "Inputable": "可输入", + "Match rules": "输入必须匹配规则", + "Type": "类型", + "Autoincrement": "自增数字", + "Fixed text": "固定文本", + "Text content": "文本内容", + "Rule content": "规则内容", + "{{value}} Digits": "{{value}} 位数字", + "Digits": "位数", + "Start from": "起始于", + "Starts from {{value}}": "从 {{value}} 开始", + "Reset cycle": "重置周期", + "No reset": "不重置", + "Daily": "每天", + "Every Monday": "每周一", + "Monthly": "每月", + "Yearly": "每年", + "Operations": "操作", + "Customize": "自定义" +} diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-sequence-field/src/locale/zh-CN.ts deleted file mode 100644 index 11ac4f1f4..000000000 --- a/packages/plugins/@nocobase/plugin-sequence-field/src/locale/zh-CN.ts +++ /dev/null @@ -1,24 +0,0 @@ -export default { - Sequence: '自动编码', - 'Sequence rules': '编号规则', - 'Add rule': '添加规则', - Inputable: '可输入', - 'Match rules': '输入必须匹配规则', - Type: '类型', - Autoincrement: '自增数字', - 'Fixed text': '固定文本', - 'Text content': '文本内容', - 'Rule content': '规则内容', - '{{value}} Digits': '{{value}} 位数字', - Digits: '位数', - 'Start from': '起始于', - 'Starts from {{value}}': '从 {{value}} 开始', - 'Reset cycle': '重置周期', - 'No reset': '不重置', - Daily: '每天', - 'Every Monday': '每周一', - Monthly: '每月', - Yearly: '每年', - Operations: '操作', - Customize: '自定义', -}; diff --git a/packages/plugins/@nocobase/plugin-sms-auth/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-sms-auth/src/locale/en-US.json new file mode 100644 index 000000000..4d5089e43 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-sms-auth/src/locale/en-US.json @@ -0,0 +1,5 @@ +{ + "Sign in via SMS": "Sign in via SMS", + "User will be registered automatically if not exists.": "User will be registered automatically if not exists.", + "Sign up automatically when the user does not exist": "Sign up automatically when the user does not exist" +} diff --git a/packages/plugins/@nocobase/plugin-sms-auth/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-sms-auth/src/locale/zh-CN.json new file mode 100644 index 000000000..22ec1e407 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-sms-auth/src/locale/zh-CN.json @@ -0,0 +1,5 @@ +{ + "Sign in via SMS": "短信登录", + "User will be registered automatically if not exists.": "用户不存在时将自动注册。", + "Sign up automatically when the user does not exist": "用户不存在时自动注册" +} diff --git a/packages/plugins/@nocobase/plugin-sms-auth/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-sms-auth/src/locale/zh-CN.ts deleted file mode 100644 index fbbd872f0..000000000 --- a/packages/plugins/@nocobase/plugin-sms-auth/src/locale/zh-CN.ts +++ /dev/null @@ -1,7 +0,0 @@ -const locale = { - 'Sign in via SMS': '短信登录', - 'User will be registered automatically if not exists.': '用户不存在时将自动注册。', - 'Sign up automatically when the user does not exist': '用户不存在时自动注册', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/en-US.json new file mode 100644 index 000000000..d940d6dd6 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/en-US.json @@ -0,0 +1,11 @@ +{ + "Detail": "Detail", + "Snapshot": "Snapshot", + "View record": "View record", + "Add block": "Add block", + "Allow linking to multiple records": "Allow linking to multiple records", + "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.": "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.", + "The association field to snapshot": "The association field to snapshot", + "Snapshot the snapshot's association fields": "Snapshot the snapshot's association fields", + "Please select": "Please select" +} diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/en-US.ts deleted file mode 100644 index 27e7437e6..000000000 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/en-US.ts +++ /dev/null @@ -1,12 +0,0 @@ -export default { - Detail: 'Detail', - Snapshot: 'Snapshot', - 'View record': 'View record', - 'Add block': 'Add block', - 'Allow linking to multiple records': 'Allow linking to multiple records', - '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.': - '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.', - 'The association field to snapshot': 'The association field to snapshot', - "Snapshot the snapshot's association fields": "Snapshot the snapshot's association fields", - 'Please select': 'Please select', -}; diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/es-ES.json similarity index 97% rename from packages/plugins/@nocobase/plugin-snapshot-field/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-snapshot-field/src/locale/es-ES.json index 0bb46aae6..5e171df6f 100644 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/es-ES.json @@ -1,4 +1,4 @@ -export default { +{ "Detail": "Detalle", "Snapshot": "Snapshot", "View record": "Ver registro", @@ -8,4 +8,4 @@ export default { "The association field to snapshot": "El campo de asociación a la snapshot", "Snapshot the snapshot's association fields": "Snapshot los campos de asociación de la snapshot", "Please select": "Por favor, seleccione" -}; +} diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/fr-FR.json new file mode 100644 index 000000000..31ebfc0a3 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/fr-FR.json @@ -0,0 +1,11 @@ +{ + "Detail": "Détail", + "Snapshot": "Snapshot", + "View record": "Voir l'enregistrement", + "Add block": "Ajouter un bloc", + "Allow linking to multiple records": "Autoriser la liaison à plusieurs enregistrements", + "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.": "Lors de l'ajout d'un nouvel enregistrement, créez un snapshot pour son enregistrement relationnel et enregistrez-le dans l'enregistrement actuel. Le snapshot n'est pas mis à jour lorsque l'enregistrement est ultérieurement modifié.", + "The association field to snapshot": "Le champ d'association à un snapshot", + "Snapshot the snapshot's association fields": "Snapshot des champs d'association du snapshot", + "Please select": "Veuillez sélectionner" +} diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/fr-FR.ts deleted file mode 100644 index 655155a8a..000000000 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/fr-FR.ts +++ /dev/null @@ -1,12 +0,0 @@ -export default { - Detail: 'Détail', - Snapshot: 'Snapshot', - 'View record': "Voir l'enregistrement", - 'Add block': 'Ajouter un bloc', - 'Allow linking to multiple records': 'Autoriser la liaison à plusieurs enregistrements', - '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.': - "Lors de l'ajout d'un nouvel enregistrement, créez un snapshot pour son enregistrement relationnel et enregistrez-le dans l'enregistrement actuel. Le snapshot n'est pas mis à jour lorsque l'enregistrement est ultérieurement modifié.", - 'The association field to snapshot': "Le champ d'association à un snapshot", - "Snapshot the snapshot's association fields": "Snapshot des champs d'association du snapshot", - 'Please select': 'Veuillez sélectionner', -}; diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/ja-JP.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/ja-JP.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/pt-BR.json new file mode 100644 index 000000000..3b0cffd02 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/pt-BR.json @@ -0,0 +1,11 @@ +{ + "Detail": "Detalhes", + "Snapshot": "Fotografia", + "View record": "Visualizar registro", + "Add block": "Adicionar bloco", + "Allow linking to multiple records": "Permitir vinculação a vários registros", + "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.": "Ao adicionar um novo registro, crie uma imagem instantânea para o registro relacionado e salve no registro atual. A imagem instantânea não é atualizada quando o registro é posteriormente atualizado.", + "The association field to snapshot": "O campo de associação para criar imagem instantânea", + "Snapshot the snapshot's association fields": "Criar imagem instantânea para os campos de associação da imagem instantânea", + "Please select": "Por favor, selecione" +} diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/pt-BR.ts deleted file mode 100644 index 8330bc7f5..000000000 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/pt-BR.ts +++ /dev/null @@ -1,13 +0,0 @@ -export default { - Detail: 'Detalhes', - Snapshot: 'Fotografia', - 'View record': 'Visualizar registro', - 'Add block': 'Adicionar bloco', - 'Allow linking to multiple records': 'Permitir vinculação a vários registros', - '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.': - 'Ao adicionar um novo registro, crie uma imagem instantânea para o registro relacionado e salve no registro atual. A imagem instantânea não é atualizada quando o registro é posteriormente atualizado.', - 'The association field to snapshot': 'O campo de associação para criar imagem instantânea', - "Snapshot the snapshot's association fields": - 'Criar imagem instantânea para os campos de associação da imagem instantânea', - 'Please select': 'Por favor, selecione', -}; diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/ru-RU.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/ru-RU.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/ru-RU.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/tr-TR.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/tr-TR.ts deleted file mode 100644 index ff8b4c563..000000000 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/tr-TR.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/zh-CN.json new file mode 100644 index 000000000..fe941984d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/zh-CN.json @@ -0,0 +1,13 @@ +{ + "Detail": "详情", + "Snapshot": "快照", + "Add block": "创建区块", + "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.": "在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。后续更新数据时,快照不再更新。", + "View record": "查看数据", + "Allow linking to multiple records": "允许关联多条记录", + "The association field to snapshot": "快照目标关系字段", + "Snapshot the snapshot's association fields": "为快照的关系数据创建快照", + "Please select": "请选择", + "When a record is created, association data is backed up in a snapshot": "创建记录时,关系数据会备份到快照里", + "Snapshot data": "快照数据" +} diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/zh-CN.ts deleted file mode 100644 index 6186ed459..000000000 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/zh-CN.ts +++ /dev/null @@ -1,14 +0,0 @@ -export default { - Detail: '详情', - Snapshot: '快照', - 'Add block': '创建区块', - '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.': - '在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。后续更新数据时,快照不再更新。', - 'View record': '查看数据', - 'Allow linking to multiple records': '允许关联多条记录', - 'The association field to snapshot': '快照目标关系字段', - "Snapshot the snapshot's association fields": '为快照的关系数据创建快照', - 'Please select': '请选择', - 'When a record is created, association data is backed up in a snapshot': '创建记录时,关系数据会备份到快照里', - 'Snapshot data': '快照数据', -}; diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/en-US.json new file mode 100644 index 000000000..9175869be --- /dev/null +++ b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/en-US.json @@ -0,0 +1,22 @@ +{ + "Theme": "Theme", + "Local": "Local", + "Dark theme": "Dark theme", + "Optional": "Optional", + "Non-optional": "Non-optional", + "Current": "Current", + "Default": "Default", + "Theme Editor": "Theme Editor", + "Save": "Save", + "Close": "Close", + "Edit": "Edit", + "Export": "Export", + "edit Theme Config": "edit Theme Config", + "The theme of the JSON format is incorrect": "The theme of the JSON format is incorrect", + "Edited successfully": "Edited successfully", + "Saved successfully": "Saved successfully", + "Initializing Editor...": "Initializing Editor...", + "Save theme": "Save theme", + "Please set a name for this theme": "Please set a name for this theme", + "Please input the theme name": "Please input the theme name" +} diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/en-US.ts deleted file mode 100644 index 2a0ff2051..000000000 --- a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/en-US.ts +++ /dev/null @@ -1,26 +0,0 @@ -const locale = { - Theme: 'Theme', - Local: 'Local', - 'Dark theme': 'Dark theme', - Optional: 'Optional', - 'Non-optional': 'Non-optional', - Current: 'Current', - Default: 'Default', - - // 主题编辑器 - 'Theme Editor': 'Theme Editor', - Save: 'Save', - Close: 'Close', - Edit: 'Edit', - Export: 'Export', - 'edit Theme Config': 'edit Theme Config', - 'The theme of the JSON format is incorrect': 'The theme of the JSON format is incorrect', - 'Edited successfully': 'Edited successfully', - 'Saved successfully': 'Saved successfully', - 'Initializing Editor...': 'Initializing Editor...', - 'Save theme': 'Save theme', - 'Please set a name for this theme': 'Please set a name for this theme', - 'Please input the theme name': 'Please input the theme name', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/fr-FR.json new file mode 100644 index 000000000..9ca26f8ba --- /dev/null +++ b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/fr-FR.json @@ -0,0 +1,22 @@ +{ + "Theme": "Thème", + "Local": "Local", + "Dark theme": "Thème sombre", + "Optional": "Optionnel", + "Non-optional": "Non-optionnel", + "Current": "Actuel", + "Default": "Par défaut", + "Theme Editor": "Éditeur de thème", + "Save": "Enregistrer", + "Close": "Fermer", + "Edit": "Modifier", + "Export": "Exporter", + "edit Theme Config": "Modifier la configuration du thème", + "The theme of the JSON format is incorrect": "Le thème au format JSON est incorrect", + "Edited successfully": "Modifié avec succès", + "Saved successfully": "Enregistré avec succès", + "Initializing Editor...": "Initialisation de l'éditeur...", + "Save theme": "Enregistrer le thème", + "Please set a name for this theme": "Veuillez définir un nom pour ce thème", + "Please input the theme name": "Veuillez saisir le nom du thème" +} diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/fr-FR.ts deleted file mode 100644 index c0ee95504..000000000 --- a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/fr-FR.ts +++ /dev/null @@ -1,26 +0,0 @@ -const locale = { - Theme: 'Thème', - Local: 'Local', - 'Dark theme': 'Thème sombre', - Optional: 'Optionnel', - 'Non-optional': 'Non-optionnel', - Current: 'Actuel', - Default: 'Par défaut', - - // 主题编辑器 - 'Theme Editor': 'Éditeur de thème', - Save: 'Enregistrer', - Close: 'Fermer', - Edit: 'Modifier', - Export: 'Exporter', - 'edit Theme Config': 'Modifier la configuration du thème', - 'The theme of the JSON format is incorrect': 'Le thème au format JSON est incorrect', - 'Edited successfully': 'Modifié avec succès', - 'Saved successfully': 'Enregistré avec succès', - 'Initializing Editor...': "Initialisation de l'éditeur...", - 'Save theme': 'Enregistrer le thème', - 'Please set a name for this theme': 'Veuillez définir un nom pour ce thème', - 'Please input the theme name': 'Veuillez saisir le nom du thème', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/zh-CN.json new file mode 100644 index 000000000..1dbfcfaf1 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/zh-CN.json @@ -0,0 +1,34 @@ +{ + "Theme editor": "主题编辑器", + "Themes": "主题", + "Dark theme": "暗黑主题", + "Optional": "可选", + "Non-optional": "不可选", + "Current": "当前主题", + "Default": "默认", + "Delete theme": "删除主题", + "Deletion is unrecoverable. Confirm deletion?": "删除后不可恢复,确认删除?", + "Deleted successfully": "删除成功", + "Updated successfully": "更新成功", + "User selectable": "可被用户选择", + "Default theme": "默认主题", + "Add new theme": "添加新主题", + "Edit based on current theme": "基于当前主题进行编辑", + "Create a brand new theme": "创建一个全新的主题", + "Dark": "暗黑", + "Compact": "紧凑", + "Compact dark": "紧凑暗黑", + "Theme Editor": "主题编辑器", + "Save": "保存", + "Close": "关闭", + "Edit": "编辑", + "Export": "导出", + "edit Theme Config": "编辑主题配置", + "The theme of the JSON format is incorrect": "主题 JSON 格式错误", + "Edited successfully": "编辑成功", + "Saved successfully": "保存成功", + "Initializing Editor...": "正在初始化编辑器...", + "Save theme": "保存主题", + "Please set a name for this theme": "请为该主题设置一个名字", + "Please input the theme name": "请输入主题名字" +} diff --git a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-theme-editor/src/locale/zh-CN.ts deleted file mode 100644 index d6cf5b477..000000000 --- a/packages/plugins/@nocobase/plugin-theme-editor/src/locale/zh-CN.ts +++ /dev/null @@ -1,39 +0,0 @@ -const locale = { - 'Theme editor': '主题编辑器', - Themes: '主题', - 'Dark theme': '暗黑主题', - Optional: '可选', - 'Non-optional': '不可选', - Current: '当前主题', - Default: '默认', - 'Delete theme': '删除主题', - 'Deletion is unrecoverable. Confirm deletion?': '删除后不可恢复,确认删除?', - 'Deleted successfully': '删除成功', - 'Updated successfully': '更新成功', - 'User selectable': '可被用户选择', - 'Default theme': '默认主题', - 'Add new theme': '添加新主题', - 'Edit based on current theme': '基于当前主题进行编辑', - 'Create a brand new theme': '创建一个全新的主题', - - Dark: '暗黑', - Compact: '紧凑', - 'Compact dark': '紧凑暗黑', - - // 主题编辑器 - 'Theme Editor': '主题编辑器', - Save: '保存', - Close: '关闭', - Edit: '编辑', - Export: '导出', - 'edit Theme Config': '编辑主题配置', - 'The theme of the JSON format is incorrect': '主题 JSON 格式错误', - 'Edited successfully': '编辑成功', - 'Saved successfully': '保存成功', - 'Initializing Editor...': '正在初始化编辑器...', - 'Save theme': '保存主题', - 'Please set a name for this theme': '请为该主题设置一个名字', - 'Please input the theme name': '请输入主题名字', -}; - -export default locale; diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-users/src/locale/en-US.ts deleted file mode 100644 index 8da957a8b..000000000 --- a/packages/plugins/@nocobase/plugin-users/src/locale/en-US.ts +++ /dev/null @@ -1,10 +0,0 @@ -export default { - 'The email is incorrect, please re-enter': 'The email is incorrect, please re-enter', - 'Please fill in your email address': 'Please fill in your email address', - 'The password is incorrect, please re-enter': 'The password is incorrect, please re-enter', - 'Not a valid cellphone number, please re-enter': 'Not a valid cellphone number, please re-enter', - 'The phone number has been registered, please login directly': - 'The phone number has been registered, please login directly', - 'The phone number is not registered, please register first': - 'The phone number is not registered, please register first', -}; diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-users/src/locale/es-ES.ts deleted file mode 100644 index d5c319337..000000000 --- a/packages/plugins/@nocobase/plugin-users/src/locale/es-ES.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default { - "The email is incorrect, please re-enter": "El correo electrónico es incorrecto, por favor vuelva a introducirlo", - "Please fill in your email address": "Por favor, introduzca su dirección de correo electrónico", - "The password is incorrect, please re-enter": "La contraseña es incorrecta, por favor, vuelva a introducirla", - "Not a valid cellphone number, please re-enter": "No es un número de móvil válido, por favor, vuelva a introducirlo", - "The phone number has been registered, please login directly": "El número de teléfono ha sido registrado, por favor, inicie sesión directamente", - "The phone number is not registered, please register first": "El número de teléfono no está registrado, por favor regístrese primero" -}; \ No newline at end of file diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-users/src/locale/fr-FR.ts deleted file mode 100644 index 4dfacf6b7..000000000 --- a/packages/plugins/@nocobase/plugin-users/src/locale/fr-FR.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default { - 'The email is incorrect, please re-enter': "L'adresse e-mail est incorrecte, veuillez la saisir à nouveau", - 'Please fill in your email address': 'Veuillez remplir votre adresse e-mail', - 'The password is incorrect, please re-enter': 'Le mot de passe est incorrect, veuillez le saisir à nouveau', - 'Not a valid cellphone number, please re-enter': - 'Numéro de téléphone portable invalide, veuillez le saisir à nouveau', - 'The phone number has been registered, please login directly': - 'Le numéro de téléphone a été enregistré, veuillez vous connecter directement', - 'The phone number is not registered, please register first': - "Le numéro de téléphone n'est pas enregistré, veuillez vous inscrire d'abord", -}; diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-users/src/locale/ja-JP.ts deleted file mode 100644 index 5af98b70f..000000000 --- a/packages/plugins/@nocobase/plugin-users/src/locale/ja-JP.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - 'Please fill in your email address': 'メールアドレスを入力してください', - 'The password is incorrect, please re-enter': 'パスワードが正しくありません。再度入力してください。', -}; diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-users/src/locale/pt-BR.ts deleted file mode 100644 index d6b5f77ec..000000000 --- a/packages/plugins/@nocobase/plugin-users/src/locale/pt-BR.ts +++ /dev/null @@ -1,10 +0,0 @@ -export default { - 'The email is incorrect, please re-enter': 'O e-mail está incorreto, por favor, digite novamente', - 'Please fill in your email address': 'Por favor, preencha o seu endereço de e-mail', - 'The password is incorrect, please re-enter': 'A senha está incorreta, por favor, digite novamente', - 'Not a valid cellphone number, please re-enter': 'Número de celular inválido, por favor, digite novamente', - 'The phone number has been registered, please login directly': - 'O número de celular já está registrado, por favor, faça login diretamente', - 'The phone number is not registered, please register first': - 'O número de celular não está registrado, por favor, registre-se primeiro', -}; diff --git a/packages/plugins/@nocobase/plugin-users/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-users/src/locale/zh-CN.ts deleted file mode 100644 index a8650e64b..000000000 --- a/packages/plugins/@nocobase/plugin-users/src/locale/zh-CN.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default { - 'The email is incorrect, please re-enter': '邮箱有误,请重新输入', - 'Please fill in your email address': '请填写邮箱', - 'The password is incorrect, please re-enter': '密码有误,请重新输入', - 'Not a valid cellphone number, please re-enter': '不是有效的手机号,请重新输入', - 'The phone number has been registered, please login directly': '手机号已注册,请直接登录', - 'The phone number is not registered, please register first': '手机号未注册,请先注册', -}; diff --git a/packages/plugins/@nocobase/plugin-verification/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-verification/src/locale/en-US.json new file mode 100644 index 000000000..1a06e425c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-verification/src/locale/en-US.json @@ -0,0 +1,22 @@ +{ + "Verification": "Verification", + "Verification providers": "Verification providers", + "Provider type": "Provider type", + "Aliyun SMS": "Aliyun SMS", + "Access Key ID": "Access Key ID", + "Access Key Secret": "Access Key Secret", + "Endpoint": "Endpoint", + "Sign": "Sign", + "Template code": "Template code", + "Secret Id": "Secret Id", + "Secret Key": "Secret Key", + "Region": "Region", + "Sign name": "Sign name", + "Sms sdk app id": "Sms sdk app id", + "Template Id": "Template Id", + "Verification send failed, please try later or contact to administrator": "Verification send failed, please try later or contact to administrator", + "Not a valid cellphone number, please re-enter": "Not a valid cellphone number, please re-enter", + "Please don't retry in {{time}} seconds": "Please don't retry in {{time}} seconds", + "You are trying so frequently, please slow down": "You are trying so frequently, please slow down", + "Verification code is invalid": "Verification code is invalid" +} diff --git a/packages/plugins/@nocobase/plugin-verification/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-verification/src/locale/pt-BR.json new file mode 100644 index 000000000..a6a3799bb --- /dev/null +++ b/packages/plugins/@nocobase/plugin-verification/src/locale/pt-BR.json @@ -0,0 +1,17 @@ +{ + "Verification": "Verificação", + "Verification providers": "Provedores de verificação", + "Provider type": "Tipo de provedor", + "Aliyun SMS": "Serviço de Mensagem de Texto Aliyun", + "Access Key ID": "ID da chave de acesso", + "Access Key Secret": "Chave secreta de acesso", + "Endpoint": "Ponto de extremidade", + "Sign": "Assinatura", + "Template code": "Código do modelo", + "Secret Id": "ID secreto", + "Secret Key": "Chave secreta", + "Region": "Região", + "Sign name": "Conteúdo de assinatura de SMS", + "Sms sdk app id": "ID do aplicativo de SMS", + "Template Id": "ID do modelo de SMS" +} diff --git a/packages/plugins/@nocobase/plugin-verification/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-verification/src/locale/pt-BR.ts deleted file mode 100644 index 29c6b4f96..000000000 --- a/packages/plugins/@nocobase/plugin-verification/src/locale/pt-BR.ts +++ /dev/null @@ -1,20 +0,0 @@ -export default { - Verification: 'Verificação', - 'Verification providers': 'Provedores de verificação', - 'Provider type': 'Tipo de provedor', - - // aliyun sms - 'Aliyun SMS': 'Serviço de Mensagem de Texto Aliyun', - 'Access Key ID': 'ID da chave de acesso', - 'Access Key Secret': 'Chave secreta de acesso', - Endpoint: 'Ponto de extremidade', - Sign: 'Assinatura', - 'Template code': 'Código do modelo', - - 'Secret Id': 'ID secreto', - 'Secret Key': 'Chave secreta', - Region: 'Região', - 'Sign name': 'Conteúdo de assinatura de SMS', - 'Sms sdk app id': 'ID do aplicativo de SMS', - 'Template Id': 'ID do modelo de SMS', -}; diff --git a/packages/plugins/@nocobase/plugin-verification/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-verification/src/locale/zh-CN.json new file mode 100644 index 000000000..3a2e243ad --- /dev/null +++ b/packages/plugins/@nocobase/plugin-verification/src/locale/zh-CN.json @@ -0,0 +1,22 @@ +{ + "Verification": "验证码", + "Verification providers": "验证码提供商", + "Provider type": "提供商类型", + "Aliyun SMS": "阿里云短信服务", + "Access Key ID": "Access Key ID", + "Access Key Secret": "Access Key Secret", + "Endpoint": "接入点", + "Sign": "签名", + "Template code": "模板代码", + "Secret Id": "Secret Id", + "Secret Key": "Secret Key", + "Region": "地域", + "Sign name": "短信签名内容", + "Sms sdk app id": "短信应用 ID", + "Template Id": "短信模板 ID", + "Verification send failed, please try later or contact to administrator": "验证码发送失败,请稍后重试或联系管理员", + "Not a valid cellphone number, please re-enter": "不是有效的手机号,请重新输入", + "Please don't retry in {{time}} seconds": "请 {{time}} 秒后再试", + "You are trying so frequently, please slow down": "您的操作太频繁,请稍后再试", + "Verification code is invalid": "无效的验证码" +} diff --git a/packages/plugins/@nocobase/plugin-verification/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-verification/src/locale/zh-CN.ts deleted file mode 100644 index a4d281553..000000000 --- a/packages/plugins/@nocobase/plugin-verification/src/locale/zh-CN.ts +++ /dev/null @@ -1,26 +0,0 @@ -export default { - Verification: '验证码', - 'Verification providers': '验证码提供商', - 'Provider type': '提供商类型', - - // aliyun sms - 'Aliyun SMS': '阿里云短信服务', - 'Access Key ID': 'Access Key ID', - 'Access Key Secret': 'Access Key Secret', - Endpoint: '接入点', - Sign: '签名', - 'Template code': '模板代码', - - 'Secret Id': 'Secret Id', - 'Secret Key': 'Secret Key', - Region: '地域', - 'Sign name': '短信签名内容', - 'Sms sdk app id': '短信应用 ID', - 'Template Id': '短信模板 ID', - - 'Verification send failed, please try later or contact to administrator': '验证码发送失败,请稍后重试或联系管理员', - 'Not a valid cellphone number, please re-enter': '不是有效的手机号,请重新输入', - "Please don't retry in {{time}} seconds": '请 {{time}} 秒后再试', - 'You are trying so frequently, please slow down': '您的操作太频繁,请稍后再试', - 'Verification code is invalid': '无效的验证码', -}; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/en-US.json new file mode 100644 index 000000000..470de82e9 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/en-US.json @@ -0,0 +1,129 @@ +{ + "Workflow": "Workflow", + "Execution history": "Execution history", + "Executed": "Executed", + "Trigger type": "Trigger type", + "Status": "Status", + "On": "On", + "Off": "Off", + "Version": "Version", + "Copy to new version": "Copy to new version", + "Duplicate": "Duplicate", + "Loading": "Loading", + "Load failed": "Load failed", + "Trigger": "Trigger", + "Trigger variables": "Trigger variables", + "Trigger data": "Trigger data", + "Trigger time": "Trigger time", + "Triggered at": "Triggered at", + "Collection event": "Collection event", + "Trigger on": "Trigger on", + "After record added": "After record added", + "After record updated": "After record updated", + "After record added or updated": "After record added or updated", + "After record deleted": "After record deleted", + "Changed fields": "Changed fields", + "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.": "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.", + "Only triggers when match conditions": "Only triggers when match conditions", + "Schedule event": "Schedule event", + "Trigger mode": "Trigger mode", + "Based on certain date": "Based on certain date", + "Based on date field of collection": "Based on date field of collection", + "Starts on": "Starts on", + "Ends on": "Ends on", + "No end": "No end", + "Exactly at": "Exactly at", + "Repeat mode": "Repeat mode", + "Repeat limit": "Repeat limit", + "No limit": "No limit", + "Seconds": "Seconds", + "Minutes": "Minutes", + "Hours": "Hours", + "Days": "Days", + "Weeks": "Weeks", + "Months": "Months", + "No repeat": "No repeat", + "Every": "Every", + "By minute": "By minute", + "By hour": "By hour", + "By day": "By day", + "By week": "By week", + "By month": "By month", + "By field": "By field", + "By custom date": "By custom date", + "Advanced": "Advanced", + "End": "End", + "Node result": "Node result", + "Constant": "Constant", + "Null": "Null", + "Boolean": "Boolean", + "String": "String", + "Calculator": "Calculator", + "Arithmetic calculation": "Arithmetic calculation", + "String operation": "String operation", + "Executed at": "Executed at", + "Queueing": "Queueing", + "On going": "On going", + "Succeeded": "Succeeded", + "Failed": "Failed", + "Pending": "Pending", + "Canceled": "Canceled", + "This node contains branches, deleting will also be preformed to them, are you sure?": "This node contains branches, deleting will also be preformed to them, are you sure?", + "Control": "Control", + "Collection operations": "Collection operations", + "Extended types": "Extended types", + "Node type": "Node type", + "Calculation": "Calculation", + "Configure calculation": "Configure calculation", + "Calculation result": "Calculation result", + "True": "True", + "False": "False", + "concat": "concat", + "Condition": "Condition", + "Mode": "Mode", + "Continue when \"Yes\"": "Continue when \"Yes\"", + "Branch into \"Yes\" and \"No\"": "Branch into \"Yes\" and \"No\"", + "Conditions": "Conditions", + "Parallel branch": "Parallel branch", + "Add branch": "Add branch", + "All succeeded": "All succeeded", + "Any succeeded": "Any succeeded", + "Any succeeded or failed": "Any succeeded or failed", + "Continue after all branches succeeded": "Continue after all branches succeeded", + "Continue after any branch succeeded": "Continue after any branch succeeded", + "Continue after any branch succeeded, or exit after any branch failed": "Continue after any branch succeeded, or exit after any branch failed", + "Delay": "Delay", + "Duration": "Duration", + "End Status": "End Status", + "Select status": "Select status", + "Succeed and continue": "Succeed and continue", + "Fail and exit": "Fail and exit", + "Create record": "Create record", + "Update record": "Update record", + "Query record": "Query record", + "Multiple records": "Multiple records", + "Please select collection first": "Please select collection first", + "Only update records matching conditions": "Only update records matching conditions", + "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.": "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.", + "Trigger in executed workflow cannot be modified": "Trigger in executed workflow cannot be modified", + "Node in executed workflow cannot be modified": "Node in executed workflow cannot be modified", + "Can not delete": "Can not delete", + "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.", + "HTTP request": "HTTP request", + "HTTP method": "HTTP method", + "URL": "URL", + "Headers": "Headers", + "Add request header": "Add request header", + "Parameters": "Parameters", + "Add parameter": "Add parameter", + "Body": "Body", + "Use variable": "Use variable", + "Format": "Format", + "Insert": "Insert", + "Timeout config": "Timeout config", + "ms": "ms", + "Input request data": "Input request data", + "Only support standard JSON data": "Only support standard JSON data", + "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" only support \"application/json\", and no need to specify", + "Ignore fail request and continue workflow": "Ignore fail request and continue workflow" +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/en-US.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/en-US.ts deleted file mode 100644 index 94b89baf6..000000000 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/en-US.ts +++ /dev/null @@ -1,136 +0,0 @@ -export default { - Workflow: 'Workflow', - 'Execution history': 'Execution history', - Executed: 'Executed', - 'Trigger type': 'Trigger type', - Status: 'Status', - On: 'On', - Off: 'Off', - Version: 'Version', - 'Copy to new version': 'Copy to new version', - Duplicate: 'Duplicate', - Loading: 'Loading', - 'Load failed': 'Load failed', - Trigger: 'Trigger', - 'Trigger variables': 'Trigger variables', - 'Trigger data': 'Trigger data', - 'Trigger time': 'Trigger time', - 'Triggered at': 'Triggered at', - 'Collection event': 'Collection event', - 'Trigger on': 'Trigger on', - 'After record added': 'After record added', - 'After record updated': 'After record updated', - 'After record added or updated': 'After record added or updated', - 'After record deleted': 'After record deleted', - 'Changed fields': 'Changed fields', - '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.': - '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.', - 'Only triggers when match conditions': 'Only triggers when match conditions', - 'Schedule event': 'Schedule event', - 'Trigger mode': 'Trigger mode', - 'Based on certain date': 'Based on certain date', - 'Based on date field of collection': 'Based on date field of collection', - 'Starts on': 'Starts on', - 'Ends on': 'Ends on', - 'No end': 'No end', - 'Exactly at': 'Exactly at', - 'Repeat mode': 'Repeat mode', - 'Repeat limit': 'Repeat limit', - 'No limit': 'No limit', - Seconds: 'Seconds', - Minutes: 'Minutes', - Hours: 'Hours', - Days: 'Days', - Weeks: 'Weeks', - Months: 'Months', - 'No repeat': 'No repeat', - Every: 'Every', - 'By minute': 'By minute', - 'By hour': 'By hour', - 'By day': 'By day', - 'By week': 'By week', - 'By month': 'By month', - 'By field': 'By field', - 'By custom date': 'By custom date', - Advanced: 'Advanced', - End: 'End', - 'Node result': 'Node result', - Constant: 'Constant', - Null: 'Null', - Boolean: 'Boolean', - String: 'String', - Calculator: 'Calculator', - 'Arithmetic calculation': 'Arithmetic calculation', - 'String operation': 'String operation', - 'Executed at': 'Executed at', - Queueing: 'Queueing', - 'On going': 'On going', - Succeeded: 'Succeeded', - Failed: 'Failed', - Pending: 'Pending', - Canceled: 'Canceled', - 'This node contains branches, deleting will also be preformed to them, are you sure?': - 'This node contains branches, deleting will also be preformed to them, are you sure?', - Control: 'Control', - 'Collection operations': 'Collection operations', - 'Extended types': 'Extended types', - 'Node type': 'Node type', - Calculation: 'Calculation', - 'Configure calculation': 'Configure calculation', - 'Calculation result': 'Calculation result', - True: 'True', - False: 'False', - concat: 'concat', - Condition: 'Condition', - Mode: 'Mode', - 'Continue when "Yes"': 'Continue when "Yes"', - 'Branch into "Yes" and "No"': 'Branch into "Yes" and "No"', - Conditions: 'Conditions', - 'Parallel branch': 'Parallel branch', - 'Add branch': 'Add branch', - 'All succeeded': 'All succeeded', - 'Any succeeded': 'Any succeeded', - 'Any succeeded or failed': 'Any succeeded or failed', - 'Continue after all branches succeeded': 'Continue after all branches succeeded', - 'Continue after any branch succeeded': 'Continue after any branch succeeded', - 'Continue after any branch succeeded, or exit after any branch failed': - 'Continue after any branch succeeded, or exit after any branch failed', - Delay: 'Delay', - Duration: 'Duration', - 'End Status': 'End Status', - 'Select status': 'Select status', - 'Succeed and continue': 'Succeed and continue', - 'Fail and exit': 'Fail and exit', - 'Create record': 'Create record', - 'Update record': 'Update record', - 'Query record': 'Query record', - 'Multiple records': 'Multiple records', - 'Please select collection first': 'Please select collection first', - 'Only update records matching conditions': 'Only update records matching conditions', - '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.': - '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.', - 'Trigger in executed workflow cannot be modified': 'Trigger in executed workflow cannot be modified', - 'Node in executed workflow cannot be modified': 'Node in executed workflow cannot be modified', - 'Can not delete': 'Can not delete', - 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': - 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.', - - 'HTTP request': 'HTTP request', - 'HTTP method': 'HTTP method', - URL: 'URL', - Headers: 'Headers', - 'Add request header': 'Add request header', - Parameters: 'Parameters', - 'Add parameter': 'Add parameter', - Body: 'Body', - 'Use variable': 'Use variable', - Format: 'Format', - Insert: 'Insert', - 'Timeout config': 'Timeout config', - ms: 'ms', - 'Input request data': 'Input request data', - 'Only support standard JSON data': 'Only support standard JSON data', - '"Content-Type" only support "application/json", and no need to specify': - '"Content-Type" only support "application/json", and no need to specify', - 'Ignore fail request and continue workflow': 'Ignore fail request and continue workflow', -}; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/es-ES.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/es-ES.json similarity index 99% rename from packages/plugins/@nocobase/plugin-workflow/src/locale/es-ES.ts rename to packages/plugins/@nocobase/plugin-workflow/src/locale/es-ES.json index 383c55ff0..b3c948a1e 100644 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/es-ES.ts +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/es-ES.json @@ -1,4 +1,4 @@ -export default { +{ "Workflow": "Flujo de trabajo", "Execution history": "Historial de ejecución", "Executed": "Ejecutado", @@ -126,4 +126,4 @@ export default { "Only support standard JSON data": "Sólo admite datos JSON estándar", "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" sólo admite \"application/json\", y no es necesario especificar", "Ignore fail request and continue workflow": "Ignorar solicitud fallida y continuar flujo de trabajo" -}; +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/fr-FR.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/fr-FR.json new file mode 100644 index 000000000..2d34c45aa --- /dev/null +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/fr-FR.json @@ -0,0 +1,129 @@ +{ + "Workflow": "Workflow", + "Execution history": "Historique d'exécution", + "Executed": "Exécuté", + "Trigger type": "Type de déclencheur", + "Status": "Statut", + "On": "Activé", + "Off": "Désactivé", + "Version": "Version", + "Copy to new version": "Copier vers une nouvelle version", + "Duplicate": "Dupliquer", + "Loading": "Chargement", + "Load failed": "Échec du chargement", + "Trigger": "Déclencheur", + "Trigger variables": "Variables de déclenchement", + "Trigger data": "Données de déclenchement", + "Trigger time": "Temps de déclenchement", + "Triggered at": "Déclenché à", + "Collection event": "Événement de collection", + "Trigger on": "Déclencher sur", + "After record added": "Après l'ajout d'un enregistrement", + "After record updated": "Après la mise à jour d'un enregistrement", + "After record added or updated": "Après l'ajout ou la mise à jour d'un enregistrement", + "After record deleted": "Après la suppression d'un enregistrement", + "Changed fields": "Champs modifiés", + "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.": "Déclenché uniquement si l'un des champs sélectionnés change. S'il n'est pas sélectionné, cela signifie qu'il sera déclenché lorsque n'importe quel champ change. Lorsque l'enregistrement est ajouté ou supprimé, n'importe quel champ est considéré comme ayant été modifié.", + "Only triggers when match conditions": "Déclenche uniquement lorsque les conditions correspondent", + "Schedule event": "Événement planifié", + "Trigger mode": "Mode de déclenchement", + "Based on certain date": "Basé sur une date spécifique", + "Based on date field of collection": "Basé sur le champ de date de la collection", + "Starts on": "Commence le", + "Ends on": "Se termine le", + "No end": "Pas de fin", + "Exactly at": "Exactement à", + "Repeat mode": "Mode de répétition", + "Repeat limit": "Limite de répétition", + "No limit": "Pas de limite", + "Seconds": "Secondes", + "Minutes": "Minutes", + "Hours": "Heures", + "Days": "Jours", + "Weeks": "Semaines", + "Months": "Mois", + "No repeat": "Pas de répétition", + "Every": "Chaque", + "By minute": "Par minute", + "By hour": "Par heure", + "By day": "Par jour", + "By week": "Par semaine", + "By month": "Par mois", + "By field": "Par champ", + "By custom date": "Par date personnalisée", + "Advanced": "Avancé", + "End": "Fin", + "Node result": "Résultat du nœud", + "Constant": "Constante", + "Null": "Null", + "Boolean": "Booléen", + "String": "Chaîne de caractères", + "Calculator": "Calculatrice", + "Arithmetic calculation": "Calcul arithmétique", + "String operation": "Opération sur les chaînes de caractères", + "Executed at": "Exécuté à", + "Queueing": "En attente", + "On going": "En cours", + "Succeeded": "Réussi", + "Failed": "Échoué", + "Pending": "En attente", + "Canceled": "Annulé", + "This node contains branches, deleting will also be preformed to them, are you sure?": "Ce nœud contient des branches, leur suppression sera également effectuée, êtes-vous sûr(e) ?", + "Control": "Contrôle", + "Collection operations": "Opérations sur la collection", + "Extended types": "Types étendus", + "Node type": "Type de nœud", + "Calculation": "Calcul", + "Configure calculation": "Configurer le calcul", + "Calculation result": "Résultat du calcul", + "True": "Vrai", + "False": "Faux", + "concat": "concat", + "Condition": "Condition", + "Mode": "Mode", + "Continue when \"Yes\"": "Continuer quand \"Oui\"", + "Branch into \"Yes\" and \"No\"": "Brancher sur \"Oui\" et \"Non\"", + "Conditions": "Conditions", + "Parallel branch": "Branche parallèle", + "Add branch": "Ajouter une branche", + "All succeeded": "Tous réussis", + "Any succeeded": "Un réussi", + "Any succeeded or failed": "Un réussi ou un échoué", + "Continue after all branches succeeded": "Continuer après la réussite de toutes les branches", + "Continue after any branch succeeded": "Continuer après la réussite d'une branche", + "Continue after any branch succeeded, or exit after any branch failed": "Continuer après la réussite d'une branche, ou quitter après l'échec d'une branche", + "Delay": "Délai", + "Duration": "Durée", + "End Status": "Statut de fin", + "Select status": "Sélectionner un statut", + "Succeed and continue": "Réussir et continuer", + "Fail and exit": "Échouer et quitter", + "Create record": "Créer un enregistrement", + "Update record": "Mettre à jour un enregistrement", + "Query record": "Interroger un enregistrement", + "Multiple records": "Multiples enregistrements", + "Please select collection first": "Veuillez d'abord sélectionner une collection", + "Only update records matching conditions": "Mettre à jour uniquement les enregistrements correspondant aux conditions", + "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.": "Les champs qui ne reçoivent pas de valeur seront définis sur la valeur par défaut, et ceux qui n'ont pas de valeur par défaut seront définis sur null.", + "Trigger in executed workflow cannot be modified": "Le déclencheur dans le workflow exécuté ne peut pas être modifié", + "Node in executed workflow cannot be modified": "Le nœud dans le workflow exécuté ne peut pas être modifié", + "Can not delete": "Impossible de supprimer", + "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": "Le résultat de ce nœud a été référencé par d'autres nœuds ({{nodes}}), veuillez supprimer son utilisation avant de le supprimer.", + "HTTP request": "Requête HTTP", + "HTTP method": "Méthode HTTP", + "URL": "URL", + "Headers": "En-têtes", + "Add request header": "Ajouter un en-tête de requête", + "Parameters": "Paramètres", + "Add parameter": "Ajouter un paramètre", + "Body": "Corps", + "Use variable": "Utiliser une variable", + "Format": "Format", + "Insert": "Insérer", + "Timeout config": "Configuration du délai d'expiration", + "ms": "ms", + "Input request data": "Entrée des données de requête", + "Only support standard JSON data": "Prend uniquement en charge les données JSON standard", + "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" prend uniquement en charge \"application/json\" et n'a pas besoin d'être spécifié", + "Ignore fail request and continue workflow": "Ignorer l'échec de la requête et continuer le workflow" +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/fr-FR.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/fr-FR.ts deleted file mode 100644 index a7d58324b..000000000 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/fr-FR.ts +++ /dev/null @@ -1,137 +0,0 @@ -export default { - Workflow: 'Workflow', - 'Execution history': "Historique d'exécution", - Executed: 'Exécuté', - 'Trigger type': 'Type de déclencheur', - Status: 'Statut', - On: 'Activé', - Off: 'Désactivé', - Version: 'Version', - 'Copy to new version': 'Copier vers une nouvelle version', - Duplicate: 'Dupliquer', - Loading: 'Chargement', - 'Load failed': 'Échec du chargement', - Trigger: 'Déclencheur', - 'Trigger variables': 'Variables de déclenchement', - 'Trigger data': 'Données de déclenchement', - 'Trigger time': 'Temps de déclenchement', - 'Triggered at': 'Déclenché à', - 'Collection event': 'Événement de collection', - 'Trigger on': 'Déclencher sur', - 'After record added': "Après l'ajout d'un enregistrement", - 'After record updated': "Après la mise à jour d'un enregistrement", - 'After record added or updated': "Après l'ajout ou la mise à jour d'un enregistrement", - 'After record deleted': "Après la suppression d'un enregistrement", - 'Changed fields': 'Champs modifiés', - '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.': - "Déclenché uniquement si l'un des champs sélectionnés change. S'il n'est pas sélectionné, cela signifie qu'il sera déclenché lorsque n'importe quel champ change. Lorsque l'enregistrement est ajouté ou supprimé, n'importe quel champ est considéré comme ayant été modifié.", - 'Only triggers when match conditions': 'Déclenche uniquement lorsque les conditions correspondent', - 'Schedule event': 'Événement planifié', - 'Trigger mode': 'Mode de déclenchement', - 'Based on certain date': 'Basé sur une date spécifique', - 'Based on date field of collection': 'Basé sur le champ de date de la collection', - 'Starts on': 'Commence le', - 'Ends on': 'Se termine le', - 'No end': 'Pas de fin', - 'Exactly at': 'Exactement à', - 'Repeat mode': 'Mode de répétition', - 'Repeat limit': 'Limite de répétition', - 'No limit': 'Pas de limite', - Seconds: 'Secondes', - Minutes: 'Minutes', - Hours: 'Heures', - Days: 'Jours', - Weeks: 'Semaines', - Months: 'Mois', - 'No repeat': 'Pas de répétition', - Every: 'Chaque', - 'By minute': 'Par minute', - 'By hour': 'Par heure', - 'By day': 'Par jour', - 'By week': 'Par semaine', - 'By month': 'Par mois', - 'By field': 'Par champ', - 'By custom date': 'Par date personnalisée', - Advanced: 'Avancé', - End: 'Fin', - 'Node result': 'Résultat du nœud', - Constant: 'Constante', - Null: 'Null', - Boolean: 'Booléen', - String: 'Chaîne de caractères', - Calculator: 'Calculatrice', - 'Arithmetic calculation': 'Calcul arithmétique', - 'String operation': 'Opération sur les chaînes de caractères', - 'Executed at': 'Exécuté à', - Queueing: 'En attente', - 'On going': 'En cours', - Succeeded: 'Réussi', - Failed: 'Échoué', - Pending: 'En attente', - Canceled: 'Annulé', - 'This node contains branches, deleting will also be preformed to them, are you sure?': - 'Ce nœud contient des branches, leur suppression sera également effectuée, êtes-vous sûr(e) ?', - Control: 'Contrôle', - 'Collection operations': 'Opérations sur la collection', - 'Extended types': 'Types étendus', - 'Node type': 'Type de nœud', - Calculation: 'Calcul', - 'Configure calculation': 'Configurer le calcul', - 'Calculation result': 'Résultat du calcul', - True: 'Vrai', - False: 'Faux', - concat: 'concat', - Condition: 'Condition', - Mode: 'Mode', - 'Continue when "Yes"': 'Continuer quand "Oui"', - 'Branch into "Yes" and "No"': 'Brancher sur "Oui" et "Non"', - Conditions: 'Conditions', - 'Parallel branch': 'Branche parallèle', - 'Add branch': 'Ajouter une branche', - 'All succeeded': 'Tous réussis', - 'Any succeeded': 'Un réussi', - 'Any succeeded or failed': 'Un réussi ou un échoué', - 'Continue after all branches succeeded': 'Continuer après la réussite de toutes les branches', - 'Continue after any branch succeeded': "Continuer après la réussite d'une branche", - 'Continue after any branch succeeded, or exit after any branch failed': - "Continuer après la réussite d'une branche, ou quitter après l'échec d'une branche", - Delay: 'Délai', - Duration: 'Durée', - 'End Status': 'Statut de fin', - 'Select status': 'Sélectionner un statut', - 'Succeed and continue': 'Réussir et continuer', - 'Fail and exit': 'Échouer et quitter', - 'Create record': 'Créer un enregistrement', - 'Update record': 'Mettre à jour un enregistrement', - 'Query record': 'Interroger un enregistrement', - 'Multiple records': 'Multiples enregistrements', - 'Please select collection first': "Veuillez d'abord sélectionner une collection", - 'Only update records matching conditions': - 'Mettre à jour uniquement les enregistrements correspondant aux conditions', - '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.': - "Les champs qui ne reçoivent pas de valeur seront définis sur la valeur par défaut, et ceux qui n'ont pas de valeur par défaut seront définis sur null.", - 'Trigger in executed workflow cannot be modified': 'Le déclencheur dans le workflow exécuté ne peut pas être modifié', - 'Node in executed workflow cannot be modified': 'Le nœud dans le workflow exécuté ne peut pas être modifié', - 'Can not delete': 'Impossible de supprimer', - 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': - "Le résultat de ce nœud a été référencé par d'autres nœuds ({{nodes}}), veuillez supprimer son utilisation avant de le supprimer.", - - 'HTTP request': 'Requête HTTP', - 'HTTP method': 'Méthode HTTP', - URL: 'URL', - Headers: 'En-têtes', - 'Add request header': 'Ajouter un en-tête de requête', - Parameters: 'Paramètres', - 'Add parameter': 'Ajouter un paramètre', - Body: 'Corps', - 'Use variable': 'Utiliser une variable', - Format: 'Format', - Insert: 'Insérer', - 'Timeout config': "Configuration du délai d'expiration", - ms: 'ms', - 'Input request data': 'Entrée des données de requête', - 'Only support standard JSON data': 'Prend uniquement en charge les données JSON standard', - '"Content-Type" only support "application/json", and no need to specify': - '"Content-Type" prend uniquement en charge "application/json" et n\'a pas besoin d\'être spécifié', - 'Ignore fail request and continue workflow': "Ignorer l'échec de la requête et continuer le workflow", -}; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/ja-JP.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/ja-JP.json new file mode 100644 index 000000000..e275cca78 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/ja-JP.json @@ -0,0 +1,87 @@ +{ + "Workflow": "ワークフロー", + "Execution history": "実行履歴", + "Trigger type": "トリガータイプ", + "Status": "状態", + "On": "有効", + "Off": "無効", + "Version": "バージョン", + "Copy to new version": "新しいバージョンにコピー", + "Load failed": "読み込みに失敗しました", + "Trigger": "トリガー", + "Collection event": "コレクションイベント", + "Trigger on": "トリガータイミング", + "After record added": "レコードを追加した後", + "After record updated": "レコードを更新した後", + "After record added or updated": "レコードを追加もしくは更新した後", + "After record deleted": "レコードを削除した後", + "Changed fields": "フィールドが変更された時", + "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.": "選択したフィールドの 1 つが変更された場合にのみトリガーされます。 選択されていない場合は、フィールドが変更されたときにトリガーされることを意味します。 レコードが追加または削除されると、すべてのフィールドが変更されたと見なされます。", + "Only triggers when match conditions": "以下の条件を満たすと発動", + "Schedule event": "スケジュールイベント", + "Trigger mode": "トリガーモード", + "Based on certain date": "カスタム時間", + "Based on date field of collection": "コレクションのフィールド時間に基づく", + "Starts on": "開始", + "Ends on": "終了", + "Exactly at": "ちょうど", + "Repeat mode": "繰り返しパターン", + "Repeat limit": "繰り返し回数", + "No limit": "無制限", + "Seconds": "秒", + "Minutes": "分", + "Hours": "時", + "Days": "日", + "Weeks": "週", + "Months": "月", + "No repeat": "繰り返さない", + "Every": "毎", + "By minute": "分ごと", + "By hour": "時間ごと", + "By day": "日ごと", + "By week": "週ごと", + "By month": "月ごと", + "By field": "フィールドごと", + "By custom date": "カスタム時間", + "Advanced": "アドバンスド", + "End": "終了", + "Trigger variables": "トリガーフィールド", + "Node result": "ノードの結果", + "Constant": "定数", + "Boolean": "論理値", + "String": "文字列", + "Arithmetic calculation": "算術演算", + "String operation": "文字列操作", + "On going": "処理中", + "Succeeded": "成功", + "Failed": "失敗", + "Canceled": "取消", + "This node contains branches, deleting will also be preformed to them, are you sure?": "ノードにはブランチが含まれており、そのすべてのブランチの下にあるすべての子ノードが同時に削除されます。続行してもよろしいですか?", + "Control": "プロセス制御", + "Collection operations": "フィールド操作", + "Node type": "ノードタイプ", + "Calculation": "演算", + "Configure calculation": "演算設定", + "Calculation result": "演算結果", + "True": "真", + "False": "偽", + "Condition": "条件", + "Mode": "モデル", + "Continue when \"Yes\"": "「はい」の場合に続行", + "Branch into \"Yes\" and \"No\"": "「はい」と「いいえ」で分岐して続行", + "Conditions": "条件設定", + "Parallel branch": "分岐", + "All succeeded": "すべて成功", + "Any succeeded": "いずれかが成功", + "Continue after all branches succeeded": "すべての分岐が成功した後に続行", + "Continue after any branch succeeded": "いずれかの分岐が成功した後に続行", + "Create record": "レコード追加", + "Update record": "レコード更新", + "Query record": "クエリ レコード", + "Multiple records": "複数レコード", + "Please select collection first": "先にコレクションを選択してください", + "Only update records matching conditions": "条件を満たすレコードのみ更新", + "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.": "値が割り当てられていないフィールドはデフォルト値に設定され、デフォルト値がないフィールドは null に設定されます", + "Trigger in executed workflow cannot be modified": "すでにワークフローを実行したトリガーは変更できません", + "Node in executed workflow cannot be modified": "すでに実行されたワークフローのノードは変更できません" +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/ja-JP.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/ja-JP.ts deleted file mode 100644 index d1735d38d..000000000 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/ja-JP.ts +++ /dev/null @@ -1,90 +0,0 @@ -export default { - Workflow: 'ワークフロー', - 'Execution history': '実行履歴', - 'Trigger type': 'トリガータイプ', - Status: '状態', - On: '有効', - Off: '無効', - Version: 'バージョン', - 'Copy to new version': '新しいバージョンにコピー', - 'Load failed': '読み込みに失敗しました', - Trigger: 'トリガー', - 'Collection event': 'コレクションイベント', - 'Trigger on': 'トリガータイミング', - 'After record added': 'レコードを追加した後', - 'After record updated': 'レコードを更新した後', - 'After record added or updated': 'レコードを追加もしくは更新した後', - 'After record deleted': 'レコードを削除した後', - 'Changed fields': 'フィールドが変更された時', - '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.': - '選択したフィールドの 1 つが変更された場合にのみトリガーされます。 選択されていない場合は、フィールドが変更されたときにトリガーされることを意味します。 レコードが追加または削除されると、すべてのフィールドが変更されたと見なされます。', - 'Only triggers when match conditions': '以下の条件を満たすと発動', - 'Schedule event': 'スケジュールイベント', - 'Trigger mode': 'トリガーモード', - 'Based on certain date': 'カスタム時間', - 'Based on date field of collection': 'コレクションのフィールド時間に基づく', - 'Starts on': '開始', - 'Ends on': '終了', - 'Exactly at': 'ちょうど', - 'Repeat mode': '繰り返しパターン', - 'Repeat limit': '繰り返し回数', - 'No limit': '無制限', - Seconds: '秒', - Minutes: '分', - Hours: '時', - Days: '日', - Weeks: '週', - Months: '月', - 'No repeat': '繰り返さない', - Every: '毎', - 'By minute': '分ごと', - 'By hour': '時間ごと', - 'By day': '日ごと', - 'By week': '週ごと', - 'By month': '月ごと', - 'By field': 'フィールドごと', - 'By custom date': 'カスタム時間', - Advanced: 'アドバンスド', - End: '終了', - 'Trigger variables': 'トリガーフィールド', - 'Node result': 'ノードの結果', - Constant: '定数', - Boolean: '論理値', - String: '文字列', - 'Arithmetic calculation': '算術演算', - 'String operation': '文字列操作', - 'On going': '処理中', - Succeeded: '成功', - Failed: '失敗', - Canceled: '取消', - 'This node contains branches, deleting will also be preformed to them, are you sure?': - 'ノードにはブランチが含まれており、そのすべてのブランチの下にあるすべての子ノードが同時に削除されます。続行してもよろしいですか?', - Control: 'プロセス制御', - 'Collection operations': 'フィールド操作', - 'Node type': 'ノードタイプ', - Calculation: '演算', - 'Configure calculation': '演算設定', - 'Calculation result': '演算結果', - True: '真', - False: '偽', - Condition: '条件', - Mode: 'モデル', - 'Continue when "Yes"': '「はい」の場合に続行', - 'Branch into "Yes" and "No"': '「はい」と「いいえ」で分岐して続行', - Conditions: '条件設定', - 'Parallel branch': '分岐', - 'All succeeded': 'すべて成功', - 'Any succeeded': 'いずれかが成功', - 'Continue after all branches succeeded': 'すべての分岐が成功した後に続行', - 'Continue after any branch succeeded': 'いずれかの分岐が成功した後に続行', - 'Create record': 'レコード追加', - 'Update record': 'レコード更新', - 'Query record': 'クエリ レコード', - 'Multiple records': '複数レコード', - 'Please select collection first': '先にコレクションを選択してください', - 'Only update records matching conditions': '条件を満たすレコードのみ更新', - '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.': - '値が割り当てられていないフィールドはデフォルト値に設定され、デフォルト値がないフィールドは null に設定されます', - 'Trigger in executed workflow cannot be modified': 'すでにワークフローを実行したトリガーは変更できません', - 'Node in executed workflow cannot be modified': 'すでに実行されたワークフローのノードは変更できません', -}; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/pt-BR.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/pt-BR.json new file mode 100644 index 000000000..09e044385 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/pt-BR.json @@ -0,0 +1,129 @@ +{ + "Workflow": "Fluxo de trabalho", + "Execution history": "Histórico de execução", + "Executed": "Executado", + "Trigger type": "Tipo de acionador", + "Status": "Status", + "On": "Ligado", + "Off": "Desligado", + "Version": "Versão", + "Copy to new version": "Copiar para nova versão", + "Duplicate": "Duplicar", + "Loading": "Carregando", + "Load failed": "Falha ao carregar", + "Trigger": "Acionador", + "Trigger variables": "Variáveis do acionador", + "Trigger data": "Dados do acionador", + "Trigger time": "Tempo do acionador", + "Triggered at": "Acionado em", + "Collection event": "Evento da coleção", + "Trigger on": "Acionar em", + "After record added": "Depois do registro ser adicionado", + "After record updated": "Depois do registro ser atualizado", + "After record added or updated": "Depois do registro ser adicionado ou atualizado", + "After record deleted": "Depois do registro ser excluído", + "Changed fields": "Campos alterados", + "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.": "Acionado apenas se um dos campos selecionados for alterado. Se não estiver selecionado, será acionado quando qualquer campo for alterado. Quando um registro é adicionado ou excluído, qualquer campo é considerado como tendo sido alterado.", + "Only triggers when match conditions": "Aciona somente quando as condições correspondem", + "Schedule event": "Evento programado", + "Trigger mode": "Modo de acionamento", + "Based on certain date": "Com base em uma data específica", + "Based on date field of collection": "Com base no campo de data da coleção", + "Starts on": "Começa em", + "Ends on": "Termina em", + "No end": "Sem fim", + "Exactly at": "Exatamente às", + "Repeat mode": "Modo de repetição", + "Repeat limit": "Limite de repetição", + "No limit": "Sem limite", + "Seconds": "Segundos", + "Minutes": "Minutos", + "Hours": "Horas", + "Days": "Dias", + "Weeks": "Semanas", + "Months": "Meses", + "No repeat": "Sem repetição", + "Every": "Cada", + "By minute": "Por minuto", + "By hour": "Por hora", + "By day": "Por dia", + "By week": "Por semana", + "By month": "Por mês", + "By field": "Por campo", + "By custom date": "Por data personalizada", + "Advanced": "Avançado", + "End": "Fim", + "Node result": "Resultado do nó", + "Constant": "Constante", + "Null": "Nulo", + "Boolean": "Booleano", + "String": "String", + "Calculator": "Calculadora", + "Arithmetic calculation": "Cálculo aritmético", + "String operation": "Operação de string", + "Executed at": "Executado em", + "Queueing": "Em fila", + "On going": "Em andamento", + "Succeeded": "Sucesso", + "Failed": "Falhou", + "Pending": "Pendente", + "Canceled": "Cancelado", + "This node contains branches, deleting will also be preformed to them, are you sure?": "Este nó contém ramos, a exclusão também será realizada neles, você tem certeza?", + "Control": "Controle", + "Collection operations": "Operações de coleção", + "Extended types": "Tipos estendidos", + "Node type": "Tipo de nó", + "Calculation": "Cálculo", + "Configure calculation": "Configurar cálculo", + "Calculation result": "Resultado do cálculo", + "True": "Verdadeiro", + "False": "Falso", + "concat": "concatenar", + "Condition": "Condição", + "Mode": "Modo", + "Continue when \"Yes\"": "Continuar quando \"Sim\"", + "Branch into \"Yes\" and \"No\"": "Ramo em \"Sim\" e \"Não\"", + "Conditions": "Condições", + "Parallel branch": "Ramo paralelo", + "Add branch": "Adicionar ramo", + "All succeeded": "Todos com sucesso", + "Any succeeded": "Qualquer um com sucesso", + "Any succeeded or failed": "Qualquer um com sucesso ou falha", + "Continue after all branches succeeded": "Continuar após todos os ramos com sucesso", + "Continue after any branch succeeded": "Continuar após qualquer ramo com sucesso", + "Continue after any branch succeeded, or exit after any branch failed": "Continuar após qualquer ramo com sucesso ou sair após qualquer ramo falhar", + "Delay": "Atraso", + "Duration": "Duração", + "End Status": "Status final", + "Select status": "Selecionar status", + "Succeed and continue": "Ter sucesso e continuar", + "Fail and exit": "Falhar e sair", + "Create record": "Criar registro", + "Update record": "Atualizar registro", + "Query record": "Consultar registro", + "Multiple records": "Múltiplos registros", + "Please select collection first": "Por favor, selecione uma coleção primeiro", + "Only update records matching conditions": "Atualizar somente registros que atendem às condições", + "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.": "Campos que não recebem valor serão definidos como valor padrão e aqueles sem valor padrão serão definidos como nulo.", + "Trigger in executed workflow cannot be modified": "O acionador em fluxo de trabalho executado não pode ser modificado", + "Node in executed workflow cannot be modified": "O nó em fluxo de trabalho executado não pode ser modificado", + "Can not delete": "Não é possível excluir", + "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": "O resultado deste nó foi referenciado por outros nós ({{nodes}}), por favor, remova a referência antes de excluir.", + "HTTP request": "Requisição HTTP", + "HTTP method": "Método HTTP", + "URL": "URL", + "Headers": "Cabeçalhos", + "Add request header": "Adicionar cabeçalho de requisição", + "Parameters": "Parâmetros", + "Add parameter": "Adicionar parâmetro", + "Body": "Corpo", + "Use variable": "Usar variável", + "Format": "Formato", + "Insert": "Inserir", + "Timeout config": "Configuração de tempo limite", + "ms": "ms", + "Input request data": "Dados de entrada da requisição", + "Only support standard JSON data": "Suporta somente dados JSON padrão", + "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" somente suporta \"application/json\" e não precisa ser especificado", + "Ignore fail request and continue workflow": "Ignorar falhas na requisição e continuar o fluxo de trabalho" +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/pt-BR.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/pt-BR.ts deleted file mode 100644 index 5246d6830..000000000 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/pt-BR.ts +++ /dev/null @@ -1,136 +0,0 @@ -export default { - Workflow: 'Fluxo de trabalho', - 'Execution history': 'Histórico de execução', - Executed: 'Executado', - 'Trigger type': 'Tipo de acionador', - Status: 'Status', - On: 'Ligado', - Off: 'Desligado', - Version: 'Versão', - 'Copy to new version': 'Copiar para nova versão', - Duplicate: 'Duplicar', - Loading: 'Carregando', - 'Load failed': 'Falha ao carregar', - Trigger: 'Acionador', - 'Trigger variables': 'Variáveis do acionador', - 'Trigger data': 'Dados do acionador', - 'Trigger time': 'Tempo do acionador', - 'Triggered at': 'Acionado em', - 'Collection event': 'Evento da coleção', - 'Trigger on': 'Acionar em', - 'After record added': 'Depois do registro ser adicionado', - 'After record updated': 'Depois do registro ser atualizado', - 'After record added or updated': 'Depois do registro ser adicionado ou atualizado', - 'After record deleted': 'Depois do registro ser excluído', - 'Changed fields': 'Campos alterados', - '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.': - 'Acionado apenas se um dos campos selecionados for alterado. Se não estiver selecionado, será acionado quando qualquer campo for alterado. Quando um registro é adicionado ou excluído, qualquer campo é considerado como tendo sido alterado.', - 'Only triggers when match conditions': 'Aciona somente quando as condições correspondem', - 'Schedule event': 'Evento programado', - 'Trigger mode': 'Modo de acionamento', - 'Based on certain date': 'Com base em uma data específica', - 'Based on date field of collection': 'Com base no campo de data da coleção', - 'Starts on': 'Começa em', - 'Ends on': 'Termina em', - 'No end': 'Sem fim', - 'Exactly at': 'Exatamente às', - 'Repeat mode': 'Modo de repetição', - 'Repeat limit': 'Limite de repetição', - 'No limit': 'Sem limite', - Seconds: 'Segundos', - Minutes: 'Minutos', - Hours: 'Horas', - Days: 'Dias', - Weeks: 'Semanas', - Months: 'Meses', - 'No repeat': 'Sem repetição', - Every: 'Cada', - 'By minute': 'Por minuto', - 'By hour': 'Por hora', - 'By day': 'Por dia', - 'By week': 'Por semana', - 'By month': 'Por mês', - 'By field': 'Por campo', - 'By custom date': 'Por data personalizada', - Advanced: 'Avançado', - End: 'Fim', - 'Node result': 'Resultado do nó', - Constant: 'Constante', - Null: 'Nulo', - Boolean: 'Booleano', - String: 'String', - Calculator: 'Calculadora', - 'Arithmetic calculation': 'Cálculo aritmético', - 'String operation': 'Operação de string', - 'Executed at': 'Executado em', - Queueing: 'Em fila', - 'On going': 'Em andamento', - Succeeded: 'Sucesso', - Failed: 'Falhou', - Pending: 'Pendente', - Canceled: 'Cancelado', - 'This node contains branches, deleting will also be preformed to them, are you sure?': - 'Este nó contém ramos, a exclusão também será realizada neles, você tem certeza?', - Control: 'Controle', - 'Collection operations': 'Operações de coleção', - 'Extended types': 'Tipos estendidos', - 'Node type': 'Tipo de nó', - Calculation: 'Cálculo', - 'Configure calculation': 'Configurar cálculo', - 'Calculation result': 'Resultado do cálculo', - True: 'Verdadeiro', - False: 'Falso', - concat: 'concatenar', - Condition: 'Condição', - Mode: 'Modo', - 'Continue when "Yes"': 'Continuar quando "Sim"', - 'Branch into "Yes" and "No"': 'Ramo em "Sim" e "Não"', - Conditions: 'Condições', - 'Parallel branch': 'Ramo paralelo', - 'Add branch': 'Adicionar ramo', - 'All succeeded': 'Todos com sucesso', - 'Any succeeded': 'Qualquer um com sucesso', - 'Any succeeded or failed': 'Qualquer um com sucesso ou falha', - 'Continue after all branches succeeded': 'Continuar após todos os ramos com sucesso', - 'Continue after any branch succeeded': 'Continuar após qualquer ramo com sucesso', - 'Continue after any branch succeeded, or exit after any branch failed': - 'Continuar após qualquer ramo com sucesso ou sair após qualquer ramo falhar', - Delay: 'Atraso', - Duration: 'Duração', - 'End Status': 'Status final', - 'Select status': 'Selecionar status', - 'Succeed and continue': 'Ter sucesso e continuar', - 'Fail and exit': 'Falhar e sair', - 'Create record': 'Criar registro', - 'Update record': 'Atualizar registro', - 'Query record': 'Consultar registro', - 'Multiple records': 'Múltiplos registros', - 'Please select collection first': 'Por favor, selecione uma coleção primeiro', - 'Only update records matching conditions': 'Atualizar somente registros que atendem às condições', - '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.': - 'Campos que não recebem valor serão definidos como valor padrão e aqueles sem valor padrão serão definidos como nulo.', - 'Trigger in executed workflow cannot be modified': - 'O acionador em fluxo de trabalho executado não pode ser modificado', - 'Node in executed workflow cannot be modified': 'O nó em fluxo de trabalho executado não pode ser modificado', - 'Can not delete': 'Não é possível excluir', - 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': - 'O resultado deste nó foi referenciado por outros nós ({{nodes}}), por favor, remova a referência antes de excluir.', - 'HTTP request': 'Requisição HTTP', - 'HTTP method': 'Método HTTP', - URL: 'URL', - Headers: 'Cabeçalhos', - 'Add request header': 'Adicionar cabeçalho de requisição', - Parameters: 'Parâmetros', - 'Add parameter': 'Adicionar parâmetro', - Body: 'Corpo', - 'Use variable': 'Usar variável', - Format: 'Formato', - Insert: 'Inserir', - 'Timeout config': 'Configuração de tempo limite', - ms: 'ms', - 'Input request data': 'Dados de entrada da requisição', - 'Only support standard JSON data': 'Suporta somente dados JSON padrão', - '"Content-Type" only support "application/json", and no need to specify': - '"Content-Type" somente suporta "application/json" e não precisa ser especificado', - 'Ignore fail request and continue workflow': 'Ignorar falhas na requisição e continuar o fluxo de trabalho', -}; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/ru-RU.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/ru-RU.json new file mode 100644 index 000000000..540e1685c --- /dev/null +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/ru-RU.json @@ -0,0 +1,87 @@ +{ + "Workflow": "Рабочий процесс", + "Execution history": "История запусков", + "Trigger type": "Тип триггера", + "Status": "Статус", + "On": "Вкл.", + "Off": "Выкл.", + "Version": "Версия", + "Copy to new version": "Скопировать в новую версию", + "Load failed": "Загрузка не удалась", + "Trigger": "Триггер", + "Collection event": "Событие коллекции", + "Trigger on": "Триггер на", + "After record added": "После добавления записи", + "After record updated": "После обновления записи", + "After record added or updated": "После добавления или обновления записи", + "After record deleted": "После удаления записи", + "Changed fields": "Измененные поля", + "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.": "Запускается только при изменении одного из выбранных полей. Если флажок не установлен, это означает, что он будет срабатывать при изменении любого поля. При добавлении или удалении записи любое поле считается измененным.", + "Only triggers when match conditions": "Срабатывает только при совпадении условий", + "Schedule event": "Событие по расписанию", + "Trigger mode": "Режим триггера", + "Based on certain date": "На основе определенной даты", + "Based on date field of collection": "На базе поля с датой в коллекции", + "Starts on": "Стартует с", + "Ends on": "Оканчивается в", + "Exactly at": "Ровно в", + "Repeat mode": "Режим повтора", + "Repeat limit": "Ограничение на повторы", + "No limit": "Нет ограничений", + "Seconds": "Секунды", + "Minutes": "Минуты", + "Hours": "Часы", + "Days": "Дни", + "Weeks": "Недели", + "Months": "Месяцы", + "No repeat": "Не повторять", + "Every": "Каждые", + "By minute": "По минутам", + "By hour": "По часам", + "By day": "По дням", + "By week": "По неделям", + "By month": "По месяцам", + "By field": "По полю", + "By custom date": "По пользовательской дате", + "Advanced": "Продвинутый", + "End": "Окончание", + "Trigger variables": "Контекст триггера", + "Node result": "Результат Узла", + "Constant": "Константа", + "Boolean": "Логический", + "String": "Строка", + "Arithmetic calculation": "Арифметическое вычисление", + "String operation": "Операция со строкой", + "On going": "Непрерывный", + "Succeeded": "Успешный", + "Failed": "Неудачный", + "Canceled": "Прерванный", + "This node contains branches, deleting will also be preformed to them, are you sure?": "Этот узел содержит ветки, к ним тоже будет произведено удаление, вы уверены?", + "Control": "Управление", + "Collection operations": "Операции с Коллекцией", + "Node type": "Тип Узла", + "Calculation": "Вычисление", + "Configure calculation": "Настроить вычисление", + "Calculation result": "Результат вычисления", + "True": "Истина", + "False": "Ложь", + "Condition": "Условие", + "Mode": "Режим", + "Continue when \"Yes\"": "Продолжить когда \"Да\"", + "Branch into \"Yes\" and \"No\"": "Разветвление на \"Да\" and \"Нет\"", + "Conditions": "Условия", + "Parallel branch": "Параллельная ветвь", + "All succeeded": "Всё успешно", + "Any succeeded": "Что-то успешно", + "Continue after all branches succeeded": "Продолжать после успеха на всех ветвях", + "Continue after any branch succeeded": "Продолжать после успеха на любой из ветвей", + "Create record": "Создать запись", + "Update record": "Обновить запись", + "Query record": "Запрос записи", + "Multiple records": "Множество записей", + "Please select collection first": "Выберите сначала Коллекцию, пожалуйста", + "Only update records matching conditions": "Обновлять только записи, соответствующие условиям", + "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.": "Поля, которым не присвоено значение, будут установлены на значение по умолчанию, а поля, не имеющие значения по умолчанию, будут установлены на null.", + "Trigger in executed workflow cannot be modified": "Триггер в выполняемом рабочем процессе не может быть изменен", + "Node in executed workflow cannot be modified": "Узел в выполняемом рабочем процессе не может быть изменен" +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/ru-RU.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/ru-RU.ts deleted file mode 100644 index 1a684cc5d..000000000 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/ru-RU.ts +++ /dev/null @@ -1,90 +0,0 @@ -export default { - Workflow: 'Рабочий процесс', - 'Execution history': 'История запусков', - 'Trigger type': 'Тип триггера', - Status: 'Статус', - On: 'Вкл.', - Off: 'Выкл.', - Version: 'Версия', - 'Copy to new version': 'Скопировать в новую версию', - 'Load failed': 'Загрузка не удалась', - Trigger: 'Триггер', - 'Collection event': 'Событие коллекции', - 'Trigger on': 'Триггер на', - 'After record added': 'После добавления записи', - 'After record updated': 'После обновления записи', - 'After record added or updated': 'После добавления или обновления записи', - 'After record deleted': 'После удаления записи', - 'Changed fields': 'Измененные поля', - '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.': - 'Запускается только при изменении одного из выбранных полей. Если флажок не установлен, это означает, что он будет срабатывать при изменении любого поля. При добавлении или удалении записи любое поле считается измененным.', - 'Only triggers when match conditions': 'Срабатывает только при совпадении условий', - 'Schedule event': 'Событие по расписанию', - 'Trigger mode': 'Режим триггера', - 'Based on certain date': 'На основе определенной даты', - 'Based on date field of collection': 'На базе поля с датой в коллекции', - 'Starts on': 'Стартует с', - 'Ends on': 'Оканчивается в', - 'Exactly at': 'Ровно в', - 'Repeat mode': 'Режим повтора', - 'Repeat limit': 'Ограничение на повторы', - 'No limit': 'Нет ограничений', - Seconds: 'Секунды', - Minutes: 'Минуты', - Hours: 'Часы', - Days: 'Дни', - Weeks: 'Недели', - Months: 'Месяцы', - 'No repeat': 'Не повторять', - Every: 'Каждые', - 'By minute': 'По минутам', - 'By hour': 'По часам', - 'By day': 'По дням', - 'By week': 'По неделям', - 'By month': 'По месяцам', - 'By field': 'По полю', - 'By custom date': 'По пользовательской дате', - Advanced: 'Продвинутый', - End: 'Окончание', - 'Trigger variables': 'Контекст триггера', - 'Node result': 'Результат Узла', - Constant: 'Константа', - Boolean: 'Логический', - String: 'Строка', - 'Arithmetic calculation': 'Арифметическое вычисление', - 'String operation': 'Операция со строкой', - 'On going': 'Непрерывный', - Succeeded: 'Успешный', - Failed: 'Неудачный', - Canceled: 'Прерванный', - 'This node contains branches, deleting will also be preformed to them, are you sure?': - 'Этот узел содержит ветки, к ним тоже будет произведено удаление, вы уверены?', - Control: 'Управление', - 'Collection operations': 'Операции с Коллекцией', - 'Node type': 'Тип Узла', - Calculation: 'Вычисление', - 'Configure calculation': 'Настроить вычисление', - 'Calculation result': 'Результат вычисления', - True: 'Истина', - False: 'Ложь', - Condition: 'Условие', - Mode: 'Режим', - 'Continue when "Yes"': 'Продолжить когда "Да"', - 'Branch into "Yes" and "No"': 'Разветвление на "Да" and "Нет"', - Conditions: 'Условия', - 'Parallel branch': 'Параллельная ветвь', - 'All succeeded': 'Всё успешно', - 'Any succeeded': 'Что-то успешно', - 'Continue after all branches succeeded': 'Продолжать после успеха на всех ветвях', - 'Continue after any branch succeeded': 'Продолжать после успеха на любой из ветвей', - 'Create record': 'Создать запись', - 'Update record': 'Обновить запись', - 'Query record': 'Запрос записи', - 'Multiple records': 'Множество записей', - 'Please select collection first': 'Выберите сначала Коллекцию, пожалуйста', - 'Only update records matching conditions': 'Обновлять только записи, соответствующие условиям', - '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.': - 'Поля, которым не присвоено значение, будут установлены на значение по умолчанию, а поля, не имеющие значения по умолчанию, будут установлены на null.', - 'Trigger in executed workflow cannot be modified': 'Триггер в выполняемом рабочем процессе не может быть изменен', - 'Node in executed workflow cannot be modified': 'Узел в выполняемом рабочем процессе не может быть изменен', -}; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/tr-TR.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/tr-TR.json new file mode 100644 index 000000000..fd84515ee --- /dev/null +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/tr-TR.json @@ -0,0 +1,87 @@ +{ + "Workflow": "İş Akışı", + "Execution history": "Yürütme Geçmişi", + "Trigger type": "Tetikleme türü", + "Status": "Durum", + "On": "Aç", + "Off": "Kapa", + "Version": "Sürüm", + "Copy to new version": "Yeni sürüme kopyala", + "Load failed": "Yükleme başarısız", + "Trigger": "Tetikle", + "Collection event": "Koleksiyon etkinliği", + "Trigger on": "Tetikleme açık", + "After record added": "Kayıt eklendikten sonra", + "After record updated": "Kayıt güncellendikten sonra", + "After record added or updated": "Kayıt eklendikten veya güncellendikten sonra", + "After record deleted": "Kayıt silindikten sonra", + "Changed fields": "Değiştirilen alanlar", + "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.": "Yalnızca seçilen alanlardan biri değiştiğinde tetiklenir. Seçili değilse, herhangi bir alan değiştiğinde tetikleneceği anlamına gelir. Kayıt eklendiğinde veya silindiğinde, herhangi bir alan değiştirilmiş olarak kabul edilir.", + "Only triggers when match conditions": "Yalnızca eşleşme koşulları olduğunda tetiklenir", + "Schedule event": "Etkinlik planla", + "Trigger mode": "Tetikleme modu", + "Based on certain date": "Belirli bir tarihe göre", + "Based on date field of collection": "Koleksiyonun tarih alanına göre", + "Starts on": "Başlangıç", + "Ends on": "Bitiş", + "Exactly at": "Tam zamanı", + "Repeat mode": "Tekrarlama modu", + "Repeat limit": "Tekrarlama limiti", + "No limit": "Limit yok", + "Seconds": "Saniye", + "Minutes": "Dakika", + "Hours": "Saat", + "Days": "Gün", + "Weeks": "Hafta", + "Months": "Ay", + "No repeat": "Tekrar yok", + "Every": "Her", + "By minute": "Dakikada", + "By hour": "Saatte", + "By day": "Günde", + "By week": "Haftada", + "By month": "Ayda", + "By field": "Alanda", + "By custom date": "Özel tarihe göre", + "Advanced": "Gelişmiş", + "End": "Son", + "Trigger variables": "Tetikleyici bağlamı", + "Node result": "Düğüm sonucu", + "Constant": "Devamlı", + "Boolean": "Boolean", + "String": "String", + "Arithmetic calculation": "Aritmetik hesaplama", + "String operation": "String operation", + "On going": "Devam eden", + "Succeeded": "Başarılı", + "Failed": "Başarısız", + "Canceled": "İptal edilen", + "This node contains branches, deleting will also be preformed to them, are you sure?": "Bu düğüm başka içeriklerle bağlantı içeriyor, silme işlemini onaylarsanız o bağlantılarda silinecek, emin misiniz?", + "Control": "Kontrol", + "Collection operations": "Koleksiyon operasyonları", + "Node type": "Düğüm türü", + "Calculation": "Hesaplama", + "Configure calculation": "Hesaplamayı yapılandır", + "Calculation result": "Hesaplama sonucu", + "True": "Doğru", + "False": "Yanlış", + "Condition": "Koşul", + "Mode": "Tür", + "Continue when \"Yes\"": "\"Evet\" durumunda devam", + "Branch into \"Yes\" and \"No\"": "\"Evet\" ve \"Hayır\" olarak dallandırın", + "Conditions": "Koşullar", + "Parallel branch": "Paralel dal", + "All succeeded": "Hepsi başarılı", + "Any succeeded": "Herhangi biri başarılı", + "Continue after all branches succeeded": "Tüm dallar başarılı olduktan sonra devam et", + "Continue after any branch succeeded": "Herhangi bir dal başarılı olduktan sonra devam et", + "Create record": "Kayıt oluştur", + "Update record": "Kayıt güncelle", + "Query record": "Sorgu kaydı", + "Multiple records": "Birden çok kayıt", + "Please select collection first": "Lütfen önce koleksiyonu seçin", + "Only update records matching conditions": "Yalnızca koşullarla eşleşen kayıtları güncelleyin", + "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.": "Değer atanmamış alanlar varsayılan değere, varsayılan değeri olmayan alanlar ise null olarak ayarlanır.", + "Trigger in executed workflow cannot be modified": "Yürütülen iş akışındaki tetikleyici değiştirilemez", + "Node in executed workflow cannot be modified": "Yürütülen iş akışındaki düğüm değiştirilemez" +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/tr-TR.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/tr-TR.ts deleted file mode 100644 index c43d42b1f..000000000 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/tr-TR.ts +++ /dev/null @@ -1,90 +0,0 @@ -export default { - Workflow: 'İş Akışı', - 'Execution history': 'Yürütme Geçmişi', - 'Trigger type': 'Tetikleme türü', - Status: 'Durum', - On: 'Aç', - Off: 'Kapa', - Version: 'Sürüm', - 'Copy to new version': 'Yeni sürüme kopyala', - 'Load failed': 'Yükleme başarısız', - Trigger: 'Tetikle', - 'Collection event': 'Koleksiyon etkinliği', - 'Trigger on': 'Tetikleme açık', - 'After record added': 'Kayıt eklendikten sonra', - 'After record updated': 'Kayıt güncellendikten sonra', - 'After record added or updated': 'Kayıt eklendikten veya güncellendikten sonra', - 'After record deleted': 'Kayıt silindikten sonra', - 'Changed fields': 'Değiştirilen alanlar', - '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.': - 'Yalnızca seçilen alanlardan biri değiştiğinde tetiklenir. Seçili değilse, herhangi bir alan değiştiğinde tetikleneceği anlamına gelir. Kayıt eklendiğinde veya silindiğinde, herhangi bir alan değiştirilmiş olarak kabul edilir.', - 'Only triggers when match conditions': 'Yalnızca eşleşme koşulları olduğunda tetiklenir', - 'Schedule event': 'Etkinlik planla', - 'Trigger mode': 'Tetikleme modu', - 'Based on certain date': 'Belirli bir tarihe göre', - 'Based on date field of collection': 'Koleksiyonun tarih alanına göre', - 'Starts on': 'Başlangıç', - 'Ends on': 'Bitiş', - 'Exactly at': 'Tam zamanı', - 'Repeat mode': 'Tekrarlama modu', - 'Repeat limit': 'Tekrarlama limiti', - 'No limit': 'Limit yok', - Seconds: 'Saniye', - Minutes: 'Dakika', - Hours: 'Saat', - Days: 'Gün', - Weeks: 'Hafta', - Months: 'Ay', - 'No repeat': 'Tekrar yok', - Every: 'Her', - 'By minute': 'Dakikada', - 'By hour': 'Saatte', - 'By day': 'Günde', - 'By week': 'Haftada', - 'By month': 'Ayda', - 'By field': 'Alanda', - 'By custom date': 'Özel tarihe göre', - Advanced: 'Gelişmiş', - End: 'Son', - 'Trigger variables': 'Tetikleyici bağlamı', - 'Node result': 'Düğüm sonucu', - Constant: 'Devamlı', - Boolean: 'Boolean', - String: 'String', - 'Arithmetic calculation': 'Aritmetik hesaplama', - 'String operation': 'String operation', - 'On going': 'Devam eden', - Succeeded: 'Başarılı', - Failed: 'Başarısız', - Canceled: 'İptal edilen', - 'This node contains branches, deleting will also be preformed to them, are you sure?': - 'Bu düğüm başka içeriklerle bağlantı içeriyor, silme işlemini onaylarsanız o bağlantılarda silinecek, emin misiniz?', - Control: 'Kontrol', - 'Collection operations': 'Koleksiyon operasyonları', - 'Node type': 'Düğüm türü', - Calculation: 'Hesaplama', - 'Configure calculation': 'Hesaplamayı yapılandır', - 'Calculation result': 'Hesaplama sonucu', - True: 'Doğru', - False: 'Yanlış', - Condition: 'Koşul', - Mode: 'Tür', - 'Continue when "Yes"': '"Evet" durumunda devam', - 'Branch into "Yes" and "No"': '"Evet" ve "Hayır" olarak dallandırın', - Conditions: 'Koşullar', - 'Parallel branch': 'Paralel dal', - 'All succeeded': 'Hepsi başarılı', - 'Any succeeded': 'Herhangi biri başarılı', - 'Continue after all branches succeeded': 'Tüm dallar başarılı olduktan sonra devam et', - 'Continue after any branch succeeded': 'Herhangi bir dal başarılı olduktan sonra devam et', - 'Create record': 'Kayıt oluştur', - 'Update record': 'Kayıt güncelle', - 'Query record': 'Sorgu kaydı', - 'Multiple records': 'Birden çok kayıt', - 'Please select collection first': 'Lütfen önce koleksiyonu seçin', - 'Only update records matching conditions': 'Yalnızca koşullarla eşleşen kayıtları güncelleyin', - '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.': - 'Değer atanmamış alanlar varsayılan değere, varsayılan değeri olmayan alanlar ise null olarak ayarlanır.', - 'Trigger in executed workflow cannot be modified': 'Yürütülen iş akışındaki tetikleyici değiştirilemez', - 'Node in executed workflow cannot be modified': 'Yürütülen iş akışındaki düğüm değiştirilemez', -}; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/zh-CN.json new file mode 100644 index 000000000..5b023d8ca --- /dev/null +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/zh-CN.json @@ -0,0 +1,248 @@ +{ + "Workflow": "工作流", + "Execution history": "执行历史", + "Clear all executions": "清除所有执行记录", + "Clear executions will not reset executed count, and started executions will not be deleted, are you sure you want to delete them all?": "清空执行记录不会重置执行次数,且执行中的也不会被删除,确定要删除所有执行记录吗?", + "Executed": "已执行", + "Sync": "同步", + "Sync enabled status of all workflows from database": "从数据库同步所有工作流的启用状态", + "Trigger type": "触发方式", + "Status": "状态", + "On": "启用", + "Off": "停用", + "Version": "版本", + "Copy to new version": "复制到新版本", + "Duplicate": "复制", + "Duplicate to new workflow": "复制为新工作流", + "Delete a main version will cause all other revisions to be deleted too.": "删除主版本将导致其他版本一并被删除。", + "Loading": "加载中", + "Load failed": "加载失败", + "Use transaction": "启用事务", + "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.": "工作流中的节点将在同一个事务中运行。任何失败都会导致数据回滚,同时也会回滚相应的执行历史。", + "Auto delete history when execution is on end status": "执行结束后自动删除对应状态的历史记录", + "Trigger": "触发器", + "Trigger variables": "触发器变量", + "Trigger data": "触发数据", + "Trigger time": "触发时间", + "Triggered at": "触发时间", + "Form event": "表单事件", + "Event triggers when submitted a workflow bound form action.": "在提交绑定工作流的表单操作按钮后触发。", + "Form data model": "表单数据模型", + "Use a collection to match form data.": "使用一个数据表来匹配表单数据。", + "Associations to use": "待使用的关系数据", + "User submitted form": "提交表单的用户", + "Bind workflows": "绑定工作流", + "Workflow will be triggered after submitting succeeded.": "提交成功后触发工作流。", + "Workflow will be triggered after saving succeeded.": "保存成功后触发工作流。", + "Workflow will be triggered directly once the button clicked.": "按钮点击后直接触发工作流。", + "Submit to workflow": "提交至工作流", + "Add workflow": "添加工作流", + "Select workflow": "选择工作流", + "Trigger data context": "触发数据上下文", + "Full form data": "完整表单数据", + "Select context": "选择上下文", + "Collection event": "数据表事件", + "Event will be triggered on collection data row created, updated or deleted.": "当数据表中的数据被新增、更新或删除时触发。", + "Trigger on": "触发时机", + "After record added": "新增数据后", + "After record updated": "更新数据后", + "After record added or updated": "新增或更新数据后", + "After record deleted": "删除数据后", + "Changed fields": "发生变动的字段", + "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.": "只有被选中的某个字段发生变动时才会触发。如果不选择,则表示任何字段变动时都会触发。新增或删除数据时,任意字段都被认为发生变动。", + "Only triggers when match conditions": "满足以下条件才触发", + "Preload associations": "预加载关联数据", + "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.": "请选中需要在后续节点中被访问的关系字段。超过两层的对多关联可能会导致性能问题,请谨慎使用。", + "Schedule event": "定时任务", + "Event will be scheduled and triggered base on time conditions.": "基于时间条件进行定时触发的事件。", + "Trigger mode": "触发模式", + "Based on certain date": "自定义时间", + "Based on date field of collection": "根据数据表时间字段", + "Starts on": "开始于", + "Ends on": "结束于", + "No end": "不结束", + "Exactly at": "当时", + "Repeat mode": "重复模式", + "Repeat limit": "重复次数", + "No limit": "不限", + "Seconds": "秒", + "Minutes": "分钟", + "Hours": "小时", + "Days": "天", + "Weeks": "周", + "Months": "月", + "No repeat": "不重复", + "Every": "每", + "By minute": "按分钟", + "By hour": "按小时", + "By day": "按天", + "By week": "按周", + "By month": "按月", + "By field": "数据表字段", + "By custom date": "自定义时间", + "Advanced": "高级模式", + "End": "结束", + "Node result": "节点数据", + "Variable key of node": "节点变量标识", + "Calculator": "运算", + "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 can be static or dynamic one from an expression collections.": "基于计算引擎对一个表达式进行计算,并获得一个值作为结果。表达式中可以使用上游节点里的变量。表达式可以是静态的,也可以是表达式表中的动态表达式。", + "String operation": "字符串", + "System variables": "系统变量", + "System time": "系统时间", + "Date variables": "日期变量", + "Executed at": "执行于", + "Queueing": "队列中", + "On going": "进行中", + "Resolved": "完成", + "Pending": "待处理", + "Failed": "失败", + "Error": "出错", + "Aborted": "已终止", + "Canceled": "已取消", + "Rejected": "已拒绝", + "Retry needed": "需重试", + "Triggered but still waiting in queue to execute.": "已触发但仍在队列中等待执行。", + "Started and executing, maybe waiting for an async callback (manual, delay etc.).": "已开始执行,可能在等待异步回调(人工、延时等)。", + "Successfully finished.": "成功完成。", + "Failed to satisfy node configurations.": "未满足节点配置造成的失败。", + "Some node meets error.": "某个节点出错。", + "Running of some node was aborted by program flow.": "某个节点被程序流程终止。", + "Manually canceled whole execution when waiting.": "等待时被手动取消整个执行。", + "Rejected from a manual node.": "被人工节点拒绝继续。", + "General failed but should do another try.": "执行失败,需重试。", + "Continue the process": "继续流程", + "Terminate the process": "终止流程", + "Save temporarily": "暂存", + "Operations": "操作", + "This node contains branches, deleting will also be preformed to them, are you sure?": "节点包含分支,将同时删除其所有分支下的子节点,确定继续?", + "Control": "流程控制", + "Collection operations": "数据表操作", + "Manual": "人工处理", + "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.": "可用于人工提交数据,并决定是否继续或退出流程。工作流在执行到人工节点时会为被指派的用户生成待办事项,直到用户提交对应表单后继续处理该流程。", + "Values preset in this form will override user submitted ones when continue or reject.": "表单中预设的字段值会在用户提交继续或拒绝时覆盖相应字段的值。", + "Extended types": "扩展类型", + "Node type": "节点类型", + "Calculation": "运算", + "Expression type": "表达式类型", + "Static": "静态", + "Dynamic": "动态", + "Select dynamic expression": "选择动态表达式", + "Select the dynamic expression queried from the upstream node. You need to query it from an expression collection.": "从上游节点中选择查询出来的动态表达式。你需要从动态表达式类型的数据表中查询。", + "Variable datasource": "变量数据源", + "Calculation engine": "运算引擎", + "Basic": "基础", + "Calculation expression": "运算表达式", + "Expression syntax error": "表达式语法错误", + "Syntax references: ": "语法参考:", + "Calculation result": "运算结果", + "True": "真", + "False": "假", + "concat": "连接", + "Condition": "条件判断", + "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\".": "基于运算结果的真假来决定“继续”或“退出”流程,或者在“是”与“否”的分支上分别继续。", + "Mode": "模式", + "Continue when \"Yes\"": "“是”则继续", + "Branch into \"Yes\" and \"No\"": "“是”和“否”分别继续", + "Condition expression": "条件表达式", + "Parallel branch": "分支", + "Run multiple branch processes in parallel.": "并行运行多个分支流程。", + "Add branch": "增加分支", + "All succeeded": "全部成功", + "Any succeeded": "任意成功", + "Any succeeded or failed": "任意成功或失败", + "Continue after all branches succeeded": "全部分支都成功后才能继续", + "Continue after any branch succeeded": "任意分支成功后就继续", + "Continue after any branch succeeded, or exit after any branch failed.": "任意分支成功就继续流程,或者任意分支失败就退出流程。", + "Loop": "循环", + "Loop target": "循环对象", + "Loop index": "当前索引", + "Loop length": "循环长度", + "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.": "使用循环节点可以对多条数据进行同样的操作,多条数据的来源可以是查询节点的多条结果,或者一条数据的多条关系数据。也可以用于一定次数的循环,或者对字符串中每一个字符的循环处理。循环次数过高可能引起性能问题,请谨慎使用。", + "Scope variables": "局域变量", + "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.": "单一数字值将被视为循环次数,单一字符串值将被视为字符数组,其他非数组值将被转换为数组。达到循环次数,或者将数组循环完成后,循环节点结束。你也可以在循环中添加条件节点,以终止循环。", + "Delay": "延时", + "Delay a period of time and then continue or exit the process. Can be used to set wait or timeout times in parallel branches.": "延时一段时间,然后继续或退出流程。可以用于并行分支中等待其他分支或设置超时时间。", + "Duration": "时长", + "End Status": "到时状态", + "Select status": "选择状态", + "Succeed and continue": "通过并继续", + "Fail and exit": "失败并退出", + "Assignee": "负责人", + "Assignees": "负责人", + "User interface": "操作界面", + "Configure user interface": "配置界面", + "View user interface": "查看界面", + "Separately": "分别处理", + "Each user has own task": "每个人处理各自的任务", + "Collaboratively": "协作处理", + "Everyone shares one task": "所有人共享同一个任务", + "Negotiation": "协商机制", + "All pass": "全部通过", + "Everyone should pass": "每个人通过才通过", + "Any pass": "任意通过", + "Anyone pass": "任何一人通过即通过", + "Field name existed in form": "表单中已有对应标识的字段", + "Custom form": "自定义表单", + "Data record": "数据记录", + "Create record form": "新增数据表单", + "Update record form": "更新数据表单", + "Filter settings": "筛选设置", + "Create record": "新增数据", + "Add new record to a collection. You can use variables from upstream nodes to assign values to fields.": "向一个数据表中添加新的数据。可以使用上游节点里的变量为字段赋值。", + "Update record": "更新数据", + "Update records of a collection. You can use variables from upstream nodes as query conditions and field values.": "更新一个数据表中的数据。可以使用上游节点里的变量作为查询条件和数据值。", + "Update mode": "更新模式", + "Update in a batch": "批量更新", + "Update one by one": "逐条更新", + "Update all eligible data at one time, which has better performance when the amount of data is large. But the updated data will not trigger other workflows, and will not record audit logs.": "一次性更新所有符合条件的数据,在数据量较大时有比较好的性能;但被更新的数据不会触发其他工作流,也不会记录更新日志。", + "The updated data can trigger other workflows, and the audit log will also be recorded. But it is usually only applicable to several or dozens of pieces of data, otherwise there will be performance problems.": "被更新的数据可以再次触发其他工作流,也会记录更新日志;但通常只适用于数条或数十条数据,否则会有性能问题。", + "Query record": "查询数据", + "Query records from a collection. You can use variables from upstream nodes as query conditions.": "查询一个数据表中的数据。可以使用上游节点里的变量作为查询条件。", + "Allow multiple records as result": "允许结果是多条数据", + "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.": "选中后,当查询结果有多条记录时,会返回数组作为结果,可以使用循环节点对它逐条操作;否则,仅返回一条数据。", + "Exit when query result is null": "查询结果为空时,退出流程", + "Please select collection first": "请先选择数据表", + "Only update records matching conditions": "只更新满足条件的数据", + "Please add at least one condition": "请添加至少一个条件", + "Unassigned fields will be set to default values, and those without default values will be set to null.": "未被赋值的字段将被设置为默认值,没有默认值的设置为空值。", + "Delete record": "删除数据", + "Delete records of a collection. Could use variables in workflow context as filter. All records match the filter will be deleted.": "删除一个数据表中的数据。可以使用上游节点里的变量作为过滤条件。所有满足条件的数据都将被删除。", + "Aggregate": "聚合查询", + "Counting, summing, finding maximum, minimum, and average values for multiple records of a collection or associated data of a record.": "对一个数据表里的多条数据或者一条数据里的关系数据进行统计、求和、求最大值、最小值、平均值。", + "Aggregator function": "聚合函数", + "Target type": "目标类型", + "Data of collection": "数据表数据", + "Data of associated collection": "关联数据表数据", + "Field to aggregate": "聚合字段", + "Distinct": "去重", + "Query result": "查询结果", + "Executed workflow cannot be modified": "已经执行过的工作流不能被修改", + "Can not delete": "无法删除", + "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": "该节点的执行结果已被其他节点({{nodes}})引用,删除前请先移除引用。", + "HTTP request": "HTTP 请求", + "Send HTTP request to a URL. You can use the variables in the upstream nodes as request headers, parameters and request body.": "向指定 URL 发送 HTTP 请求。可以使用上游节点里的变量作为请求头、参数和请求体。", + "HTTP method": "HTTP 方法", + "URL": "地址", + "Headers": "请求头", + "Add request header": "添加请求头", + "Parameters": "参数", + "Add parameter": "添加参数", + "Body": "请求体", + "Use variable": "使用变量", + "Format": "格式化", + "Insert": "插入", + "Timeout config": "超时设置", + "ms": "毫秒", + "Input request data": "输入请求数据", + "Only support standard JSON data": "仅支持标准 JSON 数据", + "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" 请求头仅支持 \"application/json\",无需填写", + "Ignore failed request and continue workflow": "忽略失败的请求并继续工作流", + "Workflow todos": "工作流待办", + "Task": "任务", + "Dynamic expression": "动态表达式", + "An expression for calculation in each rows": "每行数据计算规则不同时使用", + "Unconfigured": "未配置", + "SQL action": "SQL 操作", + "Execute a SQL statement in database": "在数据库中执行一个 SQL 语句", + "Usage of SQL query result is not supported yet.": "SQL 执行的结果暂不支持使用。" +} diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/zh-CN.ts b/packages/plugins/@nocobase/plugin-workflow/src/locale/zh-CN.ts deleted file mode 100644 index 5cc730dab..000000000 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/zh-CN.ts +++ /dev/null @@ -1,290 +0,0 @@ -export default { - Workflow: '工作流', - 'Execution history': '执行历史', - 'Clear all executions': '清除所有执行记录', - 'Clear executions will not reset executed count, and started executions will not be deleted, are you sure you want to delete them all?': - '清空执行记录不会重置执行次数,且执行中的也不会被删除,确定要删除所有执行记录吗?', - Executed: '已执行', - Sync: '同步', - 'Sync enabled status of all workflows from database': '从数据库同步所有工作流的启用状态', - 'Trigger type': '触发方式', - Status: '状态', - On: '启用', - Off: '停用', - Version: '版本', - 'Copy to new version': '复制到新版本', - Duplicate: '复制', - 'Duplicate to new workflow': '复制为新工作流', - 'Delete a main version will cause all other revisions to be deleted too.': '删除主版本将导致其他版本一并被删除。', - Loading: '加载中', - 'Load failed': '加载失败', - 'Use transaction': '启用事务', - '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.': - '工作流中的节点将在同一个事务中运行。任何失败都会导致数据回滚,同时也会回滚相应的执行历史。', - 'Auto delete history when execution is on end status': '执行结束后自动删除对应状态的历史记录', - Trigger: '触发器', - 'Trigger variables': '触发器变量', - 'Trigger data': '触发数据', - 'Trigger time': '触发时间', - 'Triggered at': '触发时间', - - 'Form event': '表单事件', - 'Event triggers when submitted a workflow bound form action.': '在提交绑定工作流的表单操作按钮后触发。', - 'Form data model': '表单数据模型', - 'Use a collection to match form data.': '使用一个数据表来匹配表单数据。', - 'Associations to use': '待使用的关系数据', - 'User submitted form': '提交表单的用户', - 'Bind workflows': '绑定工作流', - 'Workflow will be triggered after submitting succeeded.': '提交成功后触发工作流。', - 'Workflow will be triggered after saving succeeded.': '保存成功后触发工作流。', - 'Workflow will be triggered directly once the button clicked.': '按钮点击后直接触发工作流。', - 'Submit to workflow': '提交至工作流', - 'Add workflow': '添加工作流', - 'Select workflow': '选择工作流', - 'Trigger data context': '触发数据上下文', - 'Full form data': '完整表单数据', - 'Select context': '选择上下文', - 'Collection event': '数据表事件', - 'Event will be triggered on collection data row created, updated or deleted.': - '当数据表中的数据被新增、更新或删除时触发。', - 'Trigger on': '触发时机', - 'After record added': '新增数据后', - 'After record updated': '更新数据后', - 'After record added or updated': '新增或更新数据后', - 'After record deleted': '删除数据后', - 'Changed fields': '发生变动的字段', - '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.': - '只有被选中的某个字段发生变动时才会触发。如果不选择,则表示任何字段变动时都会触发。新增或删除数据时,任意字段都被认为发生变动。', - 'Only triggers when match conditions': '满足以下条件才触发', - 'Preload associations': '预加载关联数据', - '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.': - '请选中需要在后续节点中被访问的关系字段。超过两层的对多关联可能会导致性能问题,请谨慎使用。', - 'Schedule event': '定时任务', - 'Event will be scheduled and triggered base on time conditions.': '基于时间条件进行定时触发的事件。', - 'Trigger mode': '触发模式', - 'Based on certain date': '自定义时间', - 'Based on date field of collection': '根据数据表时间字段', - 'Starts on': '开始于', - 'Ends on': '结束于', - 'No end': '不结束', - 'Exactly at': '当时', - 'Repeat mode': '重复模式', - 'Repeat limit': '重复次数', - 'No limit': '不限', - Seconds: '秒', - Minutes: '分钟', - Hours: '小时', - Days: '天', - Weeks: '周', - Months: '月', - 'No repeat': '不重复', - Every: '每', - 'By minute': '按分钟', - 'By hour': '按小时', - 'By day': '按天', - 'By week': '按周', - 'By month': '按月', - 'By field': '数据表字段', - 'By custom date': '自定义时间', - Advanced: '高级模式', - End: '结束', - 'Node result': '节点数据', - 'Variable key of node': '节点变量标识', - Calculator: '运算', - '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 can be static or dynamic one from an expression collections.': - '基于计算引擎对一个表达式进行计算,并获得一个值作为结果。表达式中可以使用上游节点里的变量。表达式可以是静态的,也可以是表达式表中的动态表达式。', - 'String operation': '字符串', - 'System variables': '系统变量', - 'System time': '系统时间', - 'Date variables': '日期变量', - - 'Executed at': '执行于', - Queueing: '队列中', - 'On going': '进行中', - Resolved: '完成', - Pending: '待处理', - Failed: '失败', - Error: '出错', - Aborted: '已终止', - Canceled: '已取消', - Rejected: '已拒绝', - 'Retry needed': '需重试', - - 'Triggered but still waiting in queue to execute.': '已触发但仍在队列中等待执行。', - 'Started and executing, maybe waiting for an async callback (manual, delay etc.).': - '已开始执行,可能在等待异步回调(人工、延时等)。', - 'Successfully finished.': '成功完成。', - 'Failed to satisfy node configurations.': '未满足节点配置造成的失败。', - 'Some node meets error.': '某个节点出错。', - 'Running of some node was aborted by program flow.': '某个节点被程序流程终止。', - 'Manually canceled whole execution when waiting.': '等待时被手动取消整个执行。', - 'Rejected from a manual node.': '被人工节点拒绝继续。', - 'General failed but should do another try.': '执行失败,需重试。', - - 'Continue the process': '继续流程', - 'Terminate the process': '终止流程', - 'Save temporarily': '暂存', - - Operations: '操作', - 'This node contains branches, deleting will also be preformed to them, are you sure?': - '节点包含分支,将同时删除其所有分支下的子节点,确定继续?', - Control: '流程控制', - 'Collection operations': '数据表操作', - Manual: '人工处理', - '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.': - '可用于人工提交数据,并决定是否继续或退出流程。工作流在执行到人工节点时会为被指派的用户生成待办事项,直到用户提交对应表单后继续处理该流程。', - 'Values preset in this form will override user submitted ones when continue or reject.': - '表单中预设的字段值会在用户提交继续或拒绝时覆盖相应字段的值。', - 'Extended types': '扩展类型', - 'Node type': '节点类型', - Calculation: '运算', - 'Expression type': '表达式类型', - Static: '静态', - Dynamic: '动态', - 'Select dynamic expression': '选择动态表达式', - 'Select the dynamic expression queried from the upstream node. You need to query it from an expression collection.': - '从上游节点中选择查询出来的动态表达式。你需要从动态表达式类型的数据表中查询。', - 'Variable datasource': '变量数据源', - 'Calculation engine': '运算引擎', - Basic: '基础', - 'Calculation expression': '运算表达式', - 'Expression syntax error': '表达式语法错误', - 'Syntax references: ': '语法参考:', - 'Calculation result': '运算结果', - True: '真', - False: '假', - concat: '连接', - Condition: '条件判断', - '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".': - '基于运算结果的真假来决定“继续”或“退出”流程,或者在“是”与“否”的分支上分别继续。', - Mode: '模式', - 'Continue when "Yes"': '“是”则继续', - 'Branch into "Yes" and "No"': '“是”和“否”分别继续', - 'Condition expression': '条件表达式', - 'Parallel branch': '分支', - 'Run multiple branch processes in parallel.': '并行运行多个分支流程。', - 'Add branch': '增加分支', - 'All succeeded': '全部成功', - 'Any succeeded': '任意成功', - 'Any succeeded or failed': '任意成功或失败', - 'Continue after all branches succeeded': '全部分支都成功后才能继续', - 'Continue after any branch succeeded': '任意分支成功后就继续', - 'Continue after any branch succeeded, or exit after any branch failed.': - '任意分支成功就继续流程,或者任意分支失败就退出流程。', - Loop: '循环', - 'Loop target': '循环对象', - 'Loop index': '当前索引', - 'Loop length': '循环长度', - '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.': - '使用循环节点可以对多条数据进行同样的操作,多条数据的来源可以是查询节点的多条结果,或者一条数据的多条关系数据。也可以用于一定次数的循环,或者对字符串中每一个字符的循环处理。循环次数过高可能引起性能问题,请谨慎使用。', - 'Scope variables': '局域变量', - '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.': - '单一数字值将被视为循环次数,单一字符串值将被视为字符数组,其他非数组值将被转换为数组。达到循环次数,或者将数组循环完成后,循环节点结束。你也可以在循环中添加条件节点,以终止循环。', - Delay: '延时', - 'Delay a period of time and then continue or exit the process. Can be used to set wait or timeout times in parallel branches.': - '延时一段时间,然后继续或退出流程。可以用于并行分支中等待其他分支或设置超时时间。', - Duration: '时长', - 'End Status': '到时状态', - 'Select status': '选择状态', - 'Succeed and continue': '通过并继续', - 'Fail and exit': '失败并退出', - - Assignee: '负责人', - Assignees: '负责人', - 'User interface': '操作界面', - 'Configure user interface': '配置界面', - 'View user interface': '查看界面', - Separately: '分别处理', - 'Each user has own task': '每个人处理各自的任务', - Collaboratively: '协作处理', - 'Everyone shares one task': '所有人共享同一个任务', - Negotiation: '协商机制', - 'All pass': '全部通过', - 'Everyone should pass': '每个人通过才通过', - 'Any pass': '任意通过', - 'Anyone pass': '任何一人通过即通过', - 'Field name existed in form': '表单中已有对应标识的字段', - 'Custom form': '自定义表单', - 'Data record': '数据记录', - 'Create record form': '新增数据表单', - 'Update record form': '更新数据表单', - 'Filter settings': '筛选设置', - - 'Create record': '新增数据', - 'Add new record to a collection. You can use variables from upstream nodes to assign values to fields.': - '向一个数据表中添加新的数据。可以使用上游节点里的变量为字段赋值。', - 'Update record': '更新数据', - 'Update records of a collection. You can use variables from upstream nodes as query conditions and field values.': - '更新一个数据表中的数据。可以使用上游节点里的变量作为查询条件和数据值。', - 'Update mode': '更新模式', - 'Update in a batch': '批量更新', - 'Update one by one': '逐条更新', - 'Update all eligible data at one time, which has better performance when the amount of data is large. But the updated data will not trigger other workflows, and will not record audit logs.': - '一次性更新所有符合条件的数据,在数据量较大时有比较好的性能;但被更新的数据不会触发其他工作流,也不会记录更新日志。', - 'The updated data can trigger other workflows, and the audit log will also be recorded. But it is usually only applicable to several or dozens of pieces of data, otherwise there will be performance problems.': - '被更新的数据可以再次触发其他工作流,也会记录更新日志;但通常只适用于数条或数十条数据,否则会有性能问题。', - 'Query record': '查询数据', - 'Query records from a collection. You can use variables from upstream nodes as query conditions.': - '查询一个数据表中的数据。可以使用上游节点里的变量作为查询条件。', - 'Allow multiple records as result': '允许结果是多条数据', - '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.': - '选中后,当查询结果有多条记录时,会返回数组作为结果,可以使用循环节点对它逐条操作;否则,仅返回一条数据。', - 'Exit when query result is null': '查询结果为空时,退出流程', - 'Please select collection first': '请先选择数据表', - 'Only update records matching conditions': '只更新满足条件的数据', - 'Please add at least one condition': '请添加至少一个条件', - 'Unassigned fields will be set to default values, and those without default values will be set to null.': - '未被赋值的字段将被设置为默认值,没有默认值的设置为空值。', - - 'Delete record': '删除数据', - 'Delete records of a collection. Could use variables in workflow context as filter. All records match the filter will be deleted.': - '删除一个数据表中的数据。可以使用上游节点里的变量作为过滤条件。所有满足条件的数据都将被删除。', - - Aggregate: '聚合查询', - 'Counting, summing, finding maximum, minimum, and average values for multiple records of a collection or associated data of a record.': - '对一个数据表里的多条数据或者一条数据里的关系数据进行统计、求和、求最大值、最小值、平均值。', - 'Aggregator function': '聚合函数', - 'Target type': '目标类型', - 'Data of collection': '数据表数据', - 'Data of associated collection': '关联数据表数据', - 'Field to aggregate': '聚合字段', - Distinct: '去重', - 'Query result': '查询结果', - - 'Executed workflow cannot be modified': '已经执行过的工作流不能被修改', - 'Can not delete': '无法删除', - 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': - '该节点的执行结果已被其他节点({{nodes}})引用,删除前请先移除引用。', - - 'HTTP request': 'HTTP 请求', - 'Send HTTP request to a URL. You can use the variables in the upstream nodes as request headers, parameters and request body.': - '向指定 URL 发送 HTTP 请求。可以使用上游节点里的变量作为请求头、参数和请求体。', - 'HTTP method': 'HTTP 方法', - URL: '地址', - Headers: '请求头', - 'Add request header': '添加请求头', - Parameters: '参数', - 'Add parameter': '添加参数', - Body: '请求体', - 'Use variable': '使用变量', - Format: '格式化', - Insert: '插入', - 'Timeout config': '超时设置', - ms: '毫秒', - 'Input request data': '输入请求数据', - 'Only support standard JSON data': '仅支持标准 JSON 数据', - '"Content-Type" only support "application/json", and no need to specify': - '"Content-Type" 请求头仅支持 "application/json",无需填写', - 'Ignore failed request and continue workflow': '忽略失败的请求并继续工作流', - - 'Workflow todos': '工作流待办', - Task: '任务', - - 'Dynamic expression': '动态表达式', - 'An expression for calculation in each rows': '每行数据计算规则不同时使用', - Unconfigured: '未配置', - - 'SQL action': 'SQL 操作', - 'Execute a SQL statement in database': '在数据库中执行一个 SQL 语句', - 'Usage of SQL query result is not supported yet.': 'SQL 执行的结果暂不支持使用。', -};