{
  "form": "Form",
  "name": "Form Name",
  "code": "Form Code",
  "application": "Application",
  "type": "Form Type",
  "status": "Status",
  "description": "Description",
  "createTime": "Create Time",
  "updateTime": "Update Time",
  "actions": "Actions",
  "showInMobile": "Show in Mobile",
  "showInMobileTip": "When enabled, this form will be displayed in the mobile workbench",
  "icon": "Form Icon",
  "iconBgColor": "Icon Background Color",
  "iconPreview": "Preview",
  "iconBgColorPlaceholder": "Enter custom color or gradient",
  "iconPlaceholder": "Select form icon",
  "placeholder": {
    "name": "Please enter form name",
    "code": "Please enter form code",
    "type": "Please select form type",
    "status": "Please select status"
  },
  "typeMap": {
    "all": "All",
    "normal": "Normal Form",
    "workflow": "Workflow Form"
  },
  "statusMap": {
    "all": "All",
    "published": "Published",
    "draft": "Draft"
  },
  "create": "New Form",
  "batchDelete": "Batch Delete",
  "batchDeleteWithCount": "Batch Delete ({count})",
  "deleteConfirm": "Are you sure you want to delete form \"{name}\"?",
  "deleteConfirmTitle": "Delete Confirmation",
  "deleteConfirmMessage": "The following actions will be performed when deleting the form:<br/><br/>1. Delete the form menu<br/>2. Delete the form API permissions<br/>3. Delete the form field permissions<br/>4. Delete the form data permissions<br/>5. Permanently delete form metadata and design config<br/><br/>Are you sure you want to delete form \"{name}\"?",
  "deleteSuccess": "Form deleted: {name}",
  "batchDeleteConfirm": "Are you sure you want to delete {count} selected forms?",
  "batchDeleteConfirmTitle": "Batch Delete Confirmation",
  "batchDeleteSuccess": "{count} forms deleted",
  "unpublishSuccess": "Form \"{name}\" unpublished",
  "unpublishFailed": "Unpublish failed",
  "unpublishConfirmTitle": "Unpublish Confirmation",
  "unpublishConfirmMessage": "The following actions will be performed after unpublishing:<br/><br/>1. Delete the form menu<br/>2. Delete the form API permissions<br/>3. Delete the form field permissions<br/>4. Delete the form data permissions<br/><br/>Are you sure you want to unpublish?",
  "copyCodePlaceholder": "Please enter new form code",
  "copyTitle": "Copy Form",
  "copyCodeRule": "Code can only contain letters, numbers, underscores, and dashes",
  "codeFormatError": "Code must start with a letter and contain only letters, numbers and underscores",
  "copySuccess": "Copied successfully",
  "preview": "Preview",
  "publish": "Publish",
  "unpublish": "Unpublish",
  "copy": "Copy",
  "visit": "Visit Form",
  "setAsHome": "Set as Home",
  "setAsHomeTitle": "Set as Default Home",
  "setAsHomeConfirm": "Are you sure you want to set form \"{name}\" as the default home page?",
  "setAsHomePath": "Home Path",
  "setAsHomeTip": "After setting, users will be redirected to this form page by default after login.",
  "setAsHomeAppTip": "This form belongs to app \"{app}\". The home page config of that app will be updated.",
  "setHomeSuccess": "Set as default home page successfully",
  "setHomeFailed": "Failed to set as home page",
  "more": "More",
  "design": "Design",
  "editInfo": "Edit Info",
  "saveSuccess": "Form saved successfully",
  "previewDialog": {
    "title": "Form Preview",
    "loadFailed": "Failed to load form configuration",
    "verifySuccess": "Validation passed",
    "realtimeData": "Realtime Data (v-model):",
    "noConfig": "No form configuration",
    "close": "Close",
    "verifySubmit": "Verify Submit",
    "verifyFailed": "Form validation failed"
  },
  "editor": {
    "title": "Online Development",
    "create": "Create Form",
    "edit": "Edit Form",
    "steps": {
      "basic": "Basic Info",
      "database": "Database Design",
      "form": "Form Design",
      "list": "List Design",
      "publish": "Publish Form"
    },
    "placeholder": {
      "remark": "Please enter form description"
    },
    "validate": {
      "title": "Form validation failed",
      "warningTitle": "Form validation warnings",
      "repairTip": "Please fix the following issues before continuing",
      "warningTip": "The following issues won't block saving, but please review and confirm",
      "continueAnyway": "Continue anyway",
      "basic": "Validation failed: Name and Code are required",
      "database": "Validation failed: Main table must be configured",
      "incomplete": "Incomplete form configuration",
      "perfectDesign": "Please complete form design"
    },
    "loadFailed": "Failed to load data",
    "createSuccess": "Created successfully",
    "save": "Save",
    "saveSuccess": "Saved successfully",
    "autoSave": {
      "saving": "Saving...",
      "saved": "Saved",
      "unsaved": "Unsaved"
    }
  },
  "dataSource": {
    "refresh": "Refresh",
    "refreshSuccess": "Refresh successful",
    "loading": "Loading...",
    "mainTable": "Main Table",
    "subTable": "Sub Table",
    "added": "Added",
    "fieldPreview": "Field Preview",
    "noFields": "No field information",
    "relationConfig": "Table Relation Config",
    "selectMainTip": "Please select main table first",
    "selectMainDesc": "Expand to table node in database tree, click [Main Table] button to set.",
    "addDatabase": "Add Database",
    "refreshConn": "Refresh Connection",
    "copyConnName": "Copy Connection Name",
    "addSchema": "Add Schema",
    "addTable": "Add Table",
    "editDatabase": "Edit Database",
    "refreshDatabase": "Refresh Database",
    "copyDatabaseName": "Copy Database Name",
    "editSchema": "Edit Schema",
    "refreshSchema": "Refresh Schema",
    "copySchemaName": "Copy Schema Name",
    "viewFields": "View Fields",
    "designTable": "Design Table",
    "setMainTable": "Set as Main",
    "addSubTable": "Add as Sub",
    "copyTableName": "Copy Table Name",
    "deleteTable": "Delete Table",
    "deleteTableConfirmTitle": "Delete Confirmation",
    "confirmDeleteTable": "Are you sure you want to delete table \"{tableName}\"? This operation cannot be undone!",
    "deleteTableSuccess": "Table deleted successfully",
    "deleteTableFailed": "Failed to delete table",
    "inputDatabaseName": "Please enter database name",
    "databaseNameRule": "Name can only contain letters, numbers, and underscores, starting with letter/underscore",
    "databaseCreateSuccess": "Database \"{name}\" created successfully",
    "databaseCreateFailed": "Failed to create database",
    "inputNewDatabaseName": "Please enter new database name",
    "nameNotChanged": "Name not changed",
    "renameNotSupported": "Database renaming not supported yet, please do it manually",
    "inputSchemaName": "Please enter Schema name",
    "createSchema": "Create Schema",
    "schemaNameRule": "Name can only contain letters, numbers, and underscores, starting with letter/underscore",
    "schemaCreateSuccess": "Schema \"{name}\" created successfully",
    "schemaCreateFailed": "Failed to create Schema",
    "inputNewSchemaName": "Please enter new Schema name",
    "schemaRenameSuccess": "Schema renamed to \"{name}\"",
    "schemaRenameFailed": "Failed to rename Schema",
    "sqlServerRenameSchemaNotSupported": "SQL Server does not support renaming Schema directly",
    "loadConfigFailed": "Failed to load database configuration",
    "loadDatabaseFailed": "Failed to load databases",
    "loadSchemaFailed": "Failed to load schemas",
    "loadTableFailed": "Failed to load tables",
    "loadNodeFailed": "Failed to load node data",
    "nodeNotFound": "Node not found",
    "refreshNodeSuccess": "Refresh successful, expand node to see latest data",
    "refreshNodeFailed": "Failed to refresh node",
    "refreshFailed": "Refresh failed",
    "copyToClipboard": "Copied to clipboard",
    "tableAlreadyAdded": "Table already added",
    "setMainSuccess": "{name} set as main table",
    "addSubSuccess": "Sub table {name} added",
    "tableFieldsRefreshed": "Table {name} fields updated",
    "removeMainConfirm": "Are you sure you want to remove the main table?",
    "removeSubConfirm": "Are you sure you want to remove this sub table?",
    "removeMain": "Remove Main Table",
    "subTableCount": "{count} sub tables in total",
    "tableName": "Table Name",
    "tableNamePlaceholder": "Please enter table name",
    "alias": "Alias",
    "aliasPlaceholder": "For SQL query",
    "fieldList": "Field List ({count})",
    "fieldName": "Field Name",
    "fieldNamePlaceholder": "Please enter field name",
    "fieldType": "Type",
    "fieldLength": "Length",
    "fieldScale": "Scale",
    "fieldComment": "Comment",
    "fieldCommentPlaceholder": "Please enter field comment",
    "schemaName": "Schema",
    "schemaNamePlaceholder": "Please enter schema name",
    "nullable": "Nullable",
    "isPrimaryKey": "Primary Key",
    "uniqueCheck": "Unique",
    "addField": "Add Field",
    "relationType": "Relation Type",
    "oneToMany": "One-to-Many",
    "oneToOne": "One-to-One",
    "foreignKeyField": "Foreign Key (Sub)",
    "relatedFieldMain": "Related Field (Main)",
    "selectForeignKey": "Select foreign key",
    "selectRelatedField": "Select related field",
    "viewFieldList": "View field list ({count} fields)",
    "noSubTables": "No sub tables",
    "addSubTip": "Click + button in database tree to add sub table",
    "missingSystemFieldsTitle": "Missing System Fields",
    "missingSystemFieldsMessage": "This table is missing system fields required for data permissions:<br/><br/><strong>{fields}</strong><br/><br/>Data permissions will not work properly without these fields.<br/><br/>Click 【Auto Add】 to automatically add the missing fields;<br/>Click 【Ignore and Continue】 to skip this check.",
    "autoAddFields": "Auto Add",
    "ignoreAndContinue": "Ignore and Continue",
    "addSystemFieldsSuccess": "System fields added successfully",
    "addSystemFieldsFailed": "Failed to add system fields",
    "mainTableRequired": "Please configure a main table first",
    "connectionUnavailable": "Database connection is unavailable; check connection settings",
    "mainTableNotFound": "Main table {table} was not found on the target connection",
    "subTableNotFound": "Sub table {table} was not found on the target connection",
    "currentConnection": "Connection",
    "externalConnectionTip": "Form data is stored on the external connection; ensure tables exist on the target database"
  },
  "listDesign": {
    "containerPage": "Page",
    "title": "List Design",
    "queryTab": "Query Fields",
    "listTab": "List Fields",
    "propertyTab": "List Properties",
    "querySelectionTip": "Select fields to add to query criteria",
    "listSelectionTip": "Select fields to add to list display",
    "selectAll": "Select All",
    "noAvailableFields": "No available fields, please add fields in form design first",
    "tableProperties": "Table Properties",
    "showPagination": "Show Pagination",
    "pageSize": "Page Size",
    "itemsPerPage": "{count} items/page",
    "showIndex": "Show Index Column",
    "showSelection": "Show Selection Box",
    "stripe": "Stripe",
    "border": "Border",
    "size": "Size",
    "sizeLarge": "Large",
    "sizeDefault": "Medium",
    "sizeSmall": "Small",
    "tableHeight": "Table Height",
    "adaptive": "Adaptive",
    "dialogProperties": "Dialog Properties",
    "dialogWidth": "Dialog Width",
    "widthSmall": "Small (600px)",
    "widthMedium": "Medium (800px)",
    "widthLarge": "Large (1000px)",
    "widthExtraLarge": "Extra Large (1200px)",
    "fullscreen": "Fullscreen",
    "draggable": "Draggable",
    "closeOnClickModal": "Close on Mask Click",
    "closeOnPressEscape": "Close on ESC",
    "pageProperties": "Page Properties",
    "showBackButton": "Show Back Button",
    "showBackButtonTip": "Control whether to display the back to list button in the upper left corner of the page",
    "layoutRenderMode": "Render Mode",
    "conditionRender": "Conditional Render",
    "routeRender": "Route Render",
    "conditionRenderTip": "Switch form display via v-if within the current page without creating a new route",
    "routeRenderTip": "Navigate to a separate route page to display the form without showing tabs",
    "openInNewTab": "Open in New Tab",
    "openInNewTabTip": "Whether to open the form page in a new tab when clicking add, edit, or view buttons",
    "buttonDisplay": "Button Display",
    "toolbarButtons": "Toolbar Buttons",
    "rowActionButtons": "Row Action Buttons",
    "addBtn": "Add Button",
    "editBtn": "Edit Button",
    "deleteBtn": "Delete Button",
    "viewBtn": "View Button",
    "exportBtn": "Export Button",
    "importBtn": "Import Button",
    "batchDeleteBtn": "Batch Delete",
    "startWorkflow": "Start Workflow",
    "noWorkflowBound": "No workflow bound to this form",
    "startWorkflowSuccess": "Workflow started successfully",
    "startWorkflowFailed": "Failed to start workflow",
    "workflowTitleLabel": "Workflow Title",
    "workflowTitlePlaceholder": "Please enter workflow title",
    "workflowTitleRequired": "Workflow title is required",
    "formActionSettings": "Form Action Settings",
    "showConfirmButton": "Show Confirm Button",
    "showConfirmButtonTip": "When disabled, the confirm button will not be shown when adding/editing data",
    "afterSaveAction": "After Save Action",
    "afterSaveClose": "Close and return to list",
    "afterSaveEditMode": "Switch to edit mode",
    "afterSaveContinueAdd": "Clear form and continue adding",
    "afterSaveActionTip": "Only applies when adding: close and return, stay on current record to edit, or clear form to add another",
    "enableStartWorkflowOnAdd": "Enable Start Workflow on Add",
    "enableStartWorkflowOnAddTip": "When enabled, a 'Start Workflow' button will be shown when adding new data",
    "queryConfigTitle": "Query Field Config",
    "listConfigTitle": "List Field Config",
    "sort": "Sort",
    "displayName": "Display Name",
    "fieldKey": "Field Key",
    "queryType": "Query Type",
    "componentType": "Component Type",
    "width": "Width",
    "defaultValue": "Default Value",
    "hidden": "Hidden",
    "showTime": "Time",
    "multiple": "Multiple",
    "caseSensitive": "Case Sensitive",
    "actions": "Actions",
    "matchLike": "Like",
    "matchEq": "Equals",
    "matchRange": "Range",
    "matchIn": "In",
    "matchSpaceLikeAnd": "Space Fuzzy AND",
    "matchSpaceLikeOr": "Space Fuzzy OR",
    "matchSpaceEqAnd": "Space Exact AND",
    "matchSpaceEqOr": "Space Exact OR",
    "compInput": "Input",
    "compSelect": "Select",
    "compDate": "Date",
    "compTime": "Time",
    "compUser-select": "User Selector",
    "compDept-select": "Department Selector",
    "compRole-select": "Role Selector",
    "compPost-select": "Post Selector",
    "compForm-select": "Form Selector",
    "compTable-select": "Table Selector",
    "compFile-select": "File Selector",
    "compImage-select": "Image Selector",
    "compRegion-select": "Region Selector",
    "compMoney-input": "Money Input",
    "compRich-text": "Rich Text Editor",
    "compCode-editor": "Code Editor",
    "compFormula-input": "Formula Input",
    "compCron-selector": "Cron Expression",
    "compCurrent-user": "Current User",
    "compCurrent-datetime": "Current Datetime",
    "compCode-generator": "Code Generator",
    "compAi-image-ocr": "AI Image OCR",
    "width18": "1/8 (3)",
    "width16": "1/6 (4)",
    "width14": "1/4 (6)",
    "width13": "1/3 (8)",
    "width12": "1/2 (12)",
    "widthFull": "Full (24)",
    "none": "None",
    "noQueryFields": "No query fields",
    "selectQueryTip": "Please select fields to query on the right",
    "columnName": "Column Name",
    "left": "Left",
    "center": "Center",
    "right": "Right",
    "minWidth": "Min Width",
    "min": "Min",
    "noFixed": "Not Fixed",
    "fixedLeft": "Left Side",
    "fixedRight": "Right Side",
    "sortable": "Sortable",
    "resizable": "Resizable",
    "overflowTooltip": "Overflow Tooltip",
    "ellipsis": "Ellipsis",
    "fileImageDisplayHint": "Image/signature fields display as thumbnails automatically; text options do not apply",
    "showAsTag": "Show as Tag",
    "tagType": "Tag Type:",
    "tagDefault": "Default",
    "tagSuccess": "Success",
    "tagWarning": "Warning",
    "tagInfo": "Info",
    "tagDanger": "Danger",
    "formatter": "Formatter",
    "formatDate": "Date",
    "formatDateTime": "DateTime",
    "formatMoney": "Money",
    "formatPercent": "Percent",
    "formatNumber": "Number",
    "formatPattern": "Pattern",
    "prefix": "Prefix",
    "suffix": "Suffix",
    "custom": "Custom",
    "unitYuan": "Yuan",
    "unitGe": "Unit",
    "unitCi": "Times",
    "unitDay": "Days",
    "unitHour": "Hours",
    "noListFields": "No list fields",
    "selectListTip": "Please select fields to display on the right",
    "defaultSortField": "Default Sort Field",
    "selectSortField": "Select sort field",
    "sortOrder": "Sort Order",
    "ascending": "Ascending",
    "descending": "Descending",
    "addSortField": "Add Sort Field",
    "defaultFilterConditions": "Default Filter Conditions",
    "selectFilterField": "Select field",
    "selectFilterOperator": "Operator",
    "filterValue": "Value",
    "filterValuePlaceholder": "Enter filter value",
    "addFilterCondition": "Add Filter Condition",
    "filterOperatorEq": "Equals",
    "filterOperatorNe": "Not equals",
    "filterOperatorGt": "Greater than",
    "filterOperatorGte": "Greater or equal",
    "filterOperatorLt": "Less than",
    "filterOperatorLte": "Less or equal",
    "filterOperatorLike": "Contains",
    "filterOperatorIn": "In list",
    "filterOperatorNull": "Is null",
    "filterOperatorNotNull": "Not null",
    "tableSummary": "Table Summary",
    "showSummary": "Show Summary Row",
    "summaryText": "Summary Row Label",
    "summaryTextPlaceholder": "Total",
    "summaryColumnTip": "Enable summary for numeric fields in list field config",
    "treeConfig": "Tree Table",
    "enableTree": "Enable Tree Table",
    "parentField": "Parent Field",
    "lazyLoad": "Lazy Load",
    "lazyLoadOnTip": "Load children on demand",
    "lazyLoadOffTip": "Load all data at once",
    "defaultExpandAll": "Expand All by Default",
    "indent": "Indent",
    "checkStrictly": "Check Strictly",
    "enableSummary": "Summary",
    "summaryType": "Type",
    "summarySum": "Sum",
    "summaryAvg": "Average",
    "summaryCount": "Count",
    "summaryMax": "Max",
    "summaryMin": "Min",
    "summaryPrecision": "Precision",
    "sortFrontend": "Frontend",
    "sortBackend": "Backend",
    "filterable": "Filter",
    "filterInput": "Input",
    "filterSelect": "Select",
    "filterDateRange": "Date Range",
    "filterMultiple": "Multiple",
    "dialogFilter": "Dialog Select",
    "subTableButtons": "Sub Table Buttons",
    "subTableButtonsTip": "Configure sub table form buttons, click to manage sub table data in dialog/drawer/page",
    "addSubTableButton": "Add Sub Table Button",
    "noSubTableButtons": "No sub table buttons",
    "subTableButtonText": "Button Text",
    "selectSubTable": "Select Sub Table",
    "selectSubTablePlaceholder": "Select the sub table to associate",
    "selectSubForm": "Select Sub Form",
    "selectSubFormPlaceholder": "Select the independent form for sub table",
    "foreignKeyField": "Foreign Key Field",
    "foreignKeyFieldPlaceholder": "Auto-filled from sub table config",
    "buttonStyle": "Button Style",
    "subFormContainerType": "Container Type",
    "drawerSize": "Drawer Size",
    "drawerDirection": "Open Direction",
    "customButtons": "Custom Buttons",
    "addCustomButton": "Add Custom Button",
    "noCustomButtons": "No custom buttons",
    "defaultButtonName": "Custom Button",
    "buttonName": "Button Name",
    "buttonType": "Button Type",
    "buttonPosition": "Button Position",
    "toolbar": "Toolbar",
    "tools": "Toolbar Right",
    "row": "Row Action",
    "iconAndDisplay": "Icon & Display",
    "iconOnly": "Icon Only",
    "actionType": "Action Type",
    "actionLink": "Open Link",
    "actionApi": "Call API",
    "actionEvent": "Trigger Event",
    "actionPage": "Open Page",
    "actionGenerateDocument": "Generate Document",
    "bindDocumentTemplates": "Bind Document Templates",
    "bindDocumentTemplatesPlaceholder": "Select templates to generate (multiple)",
    "bindDocumentTemplatesHint": "Leave empty to generate all published templates for this form; otherwise only selected templates",
    "pageCode": "Page Code",
    "pageCodePlaceholder": "Select page to open",
    "pageCodeRequired": "Please select a page",
    "dialogTitle": "Dialog Title",
    "dialogTitlePlaceholder": "Supports variables: {id}, {name}, etc.",
    "pageDialogWidth": "Dialog Width",
    "pageDialogFullscreen": "Fullscreen",
    "pageView": "Page View",
    "pageLoadFailed": "Failed to load page",
    "pageNoConfig": "No page configuration",
    "linkUrl": "Link URL",
    "linkUrlPlaceholder": "Supports variables: {id}, {field}, etc.",
    "apiUrl": "API URL",
    "apiUrlPlaceholder": "/api/xxx, supports variables: {id}",
    "apiMethod": "Request Method",
    "confirmMessage": "Confirm Message",
    "confirmMessagePlaceholder": "Confirmation message before execution",
    "eventName": "Event Name",
    "eventNamePlaceholder": "Custom event name",
    "buttonIcon": "Button Icon",
    "buttonIconPlaceholder": "lucide:icon-name",
    "showCondition": "Show Condition",
    "showConditionPlaceholder": "row.status === 'active'",
    "permissionCode": "Permission Code",
    "permissionCodePlaceholder": "Optional, for permission control",
    "styleOptions": "Style Options",
    "plain": "Plain",
    "round": "Round",
    "circle": "Circle",
    "textBtn": "Text",
    "linkBtn": "Link",
    "buttonSize": "Button Size",
    "stateControl": "State Control",
    "disabled": "Disabled",
    "disabledCondition": "Disabled Condition",
    "disabledConditionPlaceholder": "row.status === 'completed'",
    "tooltip": "Tooltip",
    "tooltipPlaceholder": "Tooltip text on hover",
    "badge": "Badge",
    "badgePlaceholder": "Number or text, supports variables",
    "badgeType": "Badge Type",
    "confirmDialog": "Confirm Dialog",
    "confirmTitle": "Confirm Title",
    "confirmTitlePlaceholder": "Confirm Operation",
    "messageConfig": "Message Config",
    "successMessage": "Success Message",
    "successMessagePlaceholder": "Operation successful",
    "errorMessage": "Error Message",
    "errorMessagePlaceholder": "Operation failed",
    "reloadAfterSuccess": "Reload after success",
    "actionAgent": "Agent Chat",
    "agentId": "Agent ID",
    "agentIdPlaceholder": "Unique identifier of the agent",
    "agentCode": "Agent Code",
    "agentCodePlaceholder": "Agent code (alternative)",
    "initialMessage": "Initial Message",
    "initialMessagePlaceholder": "Initial message when opening chat, supports variables like {name}",
    "includeRowData": "Include Row Data",
    "autoSend": "Auto Send Initial Message",
    "listType": "List Type",
    "cardProperties": "Card Properties",
    "cardColumns": "Columns Per Row",
    "cardColumnsOption": "{count} Columns",
    "cardGap": "Card Gap (px)",
    "cardShadow": "Card Shadow",
    "shadowAlways": "Always",
    "shadowHover": "On Hover",
    "shadowNever": "Never",
    "cardFieldsConfig": "Card Fields Config",
    "cardFieldsTip": "Drag fields to card areas",
    "cardPreview": "Card Preview",
    "cardFieldProperties": "Field Properties",
    "fieldProperties": "Field Properties",
    "showDisplayName": "Show Name",
    "showRelationField": "Show Relation Field",
    "selectDisplayField": "Select Display Field",
    "selectDisplayFieldPlaceholder": "Select field to display",
    "loadingFields": "Loading fields...",
    "showAvatar": "Show Avatar",
    "showVirtualValue": "Show Linked Value",
    "cardAreaIcon": "Icon",
    "cardAreaTitle": "Title",
    "cardAreaSubtitle": "Subtitle",
    "cardAreaDescription": "Description",
    "cardAreaTags": "Tags",
    "cardAreaFooterLeft": "Footer Left",
    "cardAreaFooterRight": "Footer Right",
    "useCursorPagination": "Cursor Pagination",
    "useCursorPaginationTip": "Suitable for large datasets. When enabled, total count is hidden and only prev/next navigation is available",
    "prevPage": "Previous",
    "nextPage": "Next",
    "noMoreData": "No more data"
  },
  "formRender": {
    "subTableData": "Sub Table Data",
    "loadSubFormFailed": "Failed to load sub form",
    "loadDataFailed": "Failed to load data",
    "validateFailed": "Please check the form input"
  },
  "publishDialog": {
    "title": "Form Publish",
    "settings": "Publish Settings",
    "allowGuest": "Allow Guest Access",
    "success": "Published successfully",
    "failed": "Publish failed",
    "menuConfig": "Menu Config",
    "menuName": "Menu Name",
    "parentMenu": "Parent Menu",
    "parentMenuPlaceholder": "Please select parent menu (top level if empty)",
    "menuIcon": "Menu Icon",
    "routeInfo": "Route Info",
    "accessPath": "Access Path",
    "confirmPublish": "Confirm Publish"
  },
  "validator": {
    "required": "is required",
    "formatInvalid": "Format is invalid",
    "tooLong": "Length exceeds limit",
    "notBound": "Not bound to any data field",
    "duplicateSubField": "Field name \"{field}\" is duplicated in sub table \"{table}\"",
    "duplicateField": "Field name \"{field}\" is duplicated",
    "invalidSubTable": "Invalid sub table \"{table}\"",
    "fieldNotInSubTable": "Field \"{field}\" does not exist in sub table \"{table}\"",
    "fieldNotInMainTable": "Field \"{field}\" does not exist in main table",
    "fileMultipleRequiresJson": "Field \"{field}\" is configured for multiple file/image selection, database type must be JSON, current type is {currentType}",
    "fileSingleRequiresVarchar": "Field \"{field}\" is configured for single file/image selection, database type must be VARCHAR, current type is {currentType}",
    "regionRequiresJson": "Field \"{field}\" uses region selector component, database type must be JSON, current type is {currentType}",
    "numericFieldRequiresNumericComponent": "Field \"{field}\" has database type {fieldType} (numeric), cannot use {componentType} component. Please use numeric components like input-number, money-input, slider, rate, or formula-input",
    "stringFieldCannotUseDateComponent": "Field \"{field}\" has database type {fieldType} (string), cannot use {componentType} component. Date/time components require corresponding date/time type fields",
    "dateTimeFieldRequiresDateComponent": "Field \"{field}\" has database type {fieldType} (date/time), cannot use {componentType} component. Please use date picker, time picker, or current-datetime components",
    "booleanFieldRequiresSwitchComponent": "Field \"{field}\" has database type {fieldType} (boolean), cannot use {componentType} component. Please use switch, radio, or select components",
    "jsonFieldRequiresJsonComponent": "Field \"{field}\" has database type {fieldType} (JSON), cannot use {componentType} component. Please use checkbox, cascader, tree-select, file-selector, or other JSON-compatible components",
    "reverseAutoFillRequiresMultiple": "Field \"{field}\" has reverse auto-fill enabled and must use multiple selection",
    "reverseAutoFillNoFormCode": "Field \"{field}\" has reverse auto-fill enabled but no linked form is configured",
    "reverseAutoFillNoSourceField": "Field \"{field}\" has reverse auto-fill enabled but no source field is configured",
    "reverseAutoFillNoTargetField": "Field \"{field}\" has reverse auto-fill enabled but no linked form filter field is configured",
    "reverseAutoFillSelfSource": "Field \"{field}\" reverse auto-fill source field cannot be itself",
    "reverseAutoFillConflictsValueLink": "Field \"{field}\" has reverse auto-fill enabled and cannot also use value link",
    "unknown": "Unknown",
    "columnNoField": "Column is not bound to any field",
    "unknownColumn": "Unknown column",
    "columnFieldNotExist": "Column bound field \"{field}\" does not exist in form or database",
    "queryFieldNoField": "Query field is not bound to any field",
    "unknownQueryField": "Unknown query field",
    "queryFieldNotExist": "Query field \"{field}\" does not exist in form or database",
    "subTableButton": "Sub-table button",
    "subTableButtonNoText": "Sub-table button has no button text",
    "subTableButtonNoFormCode": "Sub-table button has no sub-form code",
    "subTableButtonNoForeignKey": "Sub-table button has no foreign key field",
    "customButton": "Custom button",
    "customButtonNoName": "Custom button has no name",
    "customButtonLinkNoUrl": "Link type button has no URL",
    "customButtonApiNoUrl": "API type button has no API URL",
    "customButtonEventNoName": "Event type button has no event name"
  },
  "generateDocument": {
    "title": "Generate Document",
    "template": "Document Template",
    "selectTemplate": "Please select a document template",
    "selectTemplatePlaceholder": "Select the document template to generate",
    "description": "Template Description",
    "noTemplates": "No published document templates bound to this form",
    "generatedDocuments": "Generated Documents",
    "generate": "Generate",
    "generateSuccess": "Document generated successfully",
    "generateFailed": "Failed to generate document",
    "preview": "Preview",
    "download": "Download",
    "buttonLabel": "Generate Document",
    "buttonTooltip": "Generate document from this data",
    "positionHint": "Generate document button can only be placed in row actions, as it requires specific form data",
    "autoRefresh": "Auto Refresh",
    "autoRefreshHint": "When enabled, each click regenerates documents from the latest form data; when disabled, existing documents are shown first"
  },
  "apiInfo": {
    "title": "API Information",
    "description": "This form provides the following API endpoints. All endpoints require authentication.",
    "formCode": "Form Code",
    "basePrefix": "Base Prefix",
    "authRequired": "Auth Required",
    "permissions": "Permissions",
    "getPermissions": "Get Permissions",
    "getPermissionsDesc": "Get current user's operation permissions for this form (view/add/edit/delete/export/import)",
    "getFieldPermissions": "Get Field Permissions",
    "getFieldPermissionsDesc": "Get current user's field-level read/write permissions for this form",
    "dataOperations": "Data Operations",
    "getList": "List Data",
    "getListDesc": "Paginated query of form data with sorting, search, and filtering support",
    "getDetail": "Get Detail",
    "getDetailDesc": "Get single record detail including sub-table data",
    "createData": "Create Data",
    "createDataDesc": "Create a new form record with optional sub-table data",
    "updateData": "Update Data",
    "updateDataDesc": "Update a specific record with optional sub-table data",
    "deleteData": "Delete Data",
    "deleteDataDesc": "Delete a specific record and its associated sub-table data",
    "batchDelete": "Batch Delete",
    "batchDeleteDesc": "Delete multiple records and their associated sub-table data",
    "auxiliary": "Auxiliary",
    "getTreeChildren": "Get Tree Children",
    "getTreeChildrenDesc": "Get child nodes for tree table lazy loading",
    "getFieldValues": "Get Field Values",
    "getFieldValuesDesc": "Get unique values for a specific field, used for filter options",
    "checkUnique": "Check Unique",
    "checkUniqueDesc": "Check if a field value is unique",
    "importExport": "Import & Export",
    "exportExcel": "Export Excel",
    "exportExcelDesc": "Export form data to Excel file with field selection and sub-table support",
    "importTemplate": "Download Import Template",
    "importTemplateDesc": "Download Excel import template",
    "importExcel": "Import Excel",
    "importExcelDesc": "Import data from Excel file with append or overwrite mode",
    "request": "Request",
    "response": "Response",
    "pathParams": "Path Params",
    "queryParams": "Query Params",
    "requestBody": "Request Body",
    "noParams": "No params",
    "copyPath": "Copy Path",
    "copiedSuccess": "Copied to clipboard",
    "formFields": "Form Fields Reference"
  },
  "formData": {
    "import": {
      "title": "Import Data",
      "modeTitle": "Select Import Mode",
      "appendMode": "Append Mode",
      "appendModeDesc": "Keep existing data and append new data",
      "overwriteMode": "Overwrite Mode",
      "overwriteModeDesc": "Clear existing data and import all new data",
      "overwriteWarning": "Overwrite mode will delete all existing data in the table. This action cannot be undone!",
      "dataHandling": "Data Handling",
      "insertOnly": "Insert Only",
      "insertOnlyDesc": "All data from Excel will be added as new records",
      "updateOnly": "Update Only",
      "updateOnlyDesc": "Find existing records by the specified field and update them with Excel data. No new records will be added",
      "upsert": "Update & Insert",
      "upsertDesc": "Update existing records found by the specified field. When no match is found, insert as new records",
      "matchField": "Match Field",
      "matchFieldPlaceholder": "Select the field to match existing data",
      "matchFieldRequired": "A match field is required for update mode",
      "updatedCount": "updated successfully",
      "insertedCount": "inserted successfully",
      "skippedCount": "skipped",
      "selectFile": "Select File",
      "dragOrClick": "Drag file here or click to upload",
      "onlyXlsx": "Only .xlsx format is supported",
      "downloadTemplate": "Download Import Template",
      "validateAndUpload": "Validate & Upload",
      "validating": "Validating data...",
      "importing": "Importing data...",
      "passCount": "passed validation",
      "failCount": "failed validation",
      "importedCount": "imported successfully",
      "errorList": "Error Details",
      "rowNumber": "Row",
      "errorMsg": "Error Message",
      "allPassed": "All data passed validation, ready to import",
      "importSuccess": "Data import completed",
      "reselect": "Reselect",
      "confirmImport": "Confirm Import"
    }
  },
  "importExport": {
    "export": "Export Config",
    "import": "Import Config",
    "batchExport": "Batch Export",
    "exportSuccess": "Form config exported",
    "exportFailed": "Export failed",
    "importTitle": "Import Form Config",
    "selectFile": "Select File",
    "dragOrClick": "Drag a JSON file here or click to upload",
    "dragOrClickMulti": "Supports selecting multiple files for batch import",
    "onlyJson": "Only .json files are supported",
    "fileParseError": "Failed to parse file, please check the format",
    "checking": "Checking...",
    "checkResult": "Check Result",
    "codeConflict": "Form code already exists",
    "codeConflictTip": "Please change the code before importing",
    "newCode": "New Code",
    "newCodePlaceholder": "Enter a new form code",
    "tableStatus": "Database Table Status",
    "mainTable": "Main Table",
    "subTable": "Sub Table",
    "schema": "Schema",
    "tableExists": "Exists",
    "tableNotExists": "Not Exists",
    "hasDdl": "Has DDL",
    "noDdl": "No DDL",
    "autoCreateTables": "Auto create missing tables",
    "autoCreateTablesTip": "Missing tables will be created from exported DDL during import",
    "createSchemaIfNotExists": "Create schema if missing",
    "createSchemaIfNotExistsTip": "Create target schemas from config before import (PostgreSQL / SQL Server only)",
    "cannotAutoCreate": "Some tables are missing and have no DDL, cannot auto create",
    "crossDialectAutoCreate": "Export database type ({source}) differs from target connection ({target}). Auto-create is not supported; use the same engine or create tables manually.",
    "importSuccess": "Form config imported successfully",
    "importFailed": "Import failed",
    "confirmImport": "Confirm Import",
    "formInfo": "Form Info",
    "formName": "Form Name",
    "formCode": "Form Code",
    "formType": "Form Type",
    "dbConfig": "Database Config",
    "mainTableName": "Main Table",
    "fieldCount": "Fields",
    "subTableCount": "Sub Tables",
    "appTip": "Imported form will belong to the current application",
    "tableExistsRename": "Table exists, you can create with a new name and schema",
    "newTableName": "New Table Name",
    "newTableNamePlaceholder": "Enter a new table name",
    "selectSchema": "Select Schema",
    "selectSchemaPlaceholder": "Select target schema",
    "batchImportTitle": "Batch Import Form Config",
    "batchImportCount": "{count} forms total",
    "batchImportProgress": "Importing {current}/{total}...",
    "batchImportSuccess": "Batch import done, {success} succeeded, {fail} failed",
    "batchImportItem": "Item {index}",
    "batchNext": "Next",
    "batchSkip": "Skip",
    "batchSkipped": "Skipped",
    "batchConfirmAndNext": "Confirm & Next",
    "batchImportAll": "Import All",
    "batchImporting": "Importing...",
    "checkFailed": "Check failed",
    "noSelection": "Please select forms to export first",
    "batchExportProgress": "Exporting {current}/{total}...",
    "batchExportDone": "Batch export done, {success} succeeded, {fail} failed",
    "reselect": "Reselect"
  }
}
