From d666fc61b8d13a11f7b1f05e9ee6e2fd6aa7e107 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Sun, 25 Feb 2024 15:28:01 +0100 Subject: [PATCH 1/8] Added Docu about privacy for local marketplace --- deploy/docker/README.md | 53 +++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 45a51e20f..4fba9a727 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -21,32 +21,33 @@ DOCKER_BUILDKIT=1 docker build -f deploy/docker/Dockerfile -t lowcoderorg/lowcod Image can be configured by setting environment variables. -| Environment variable | Description | Value | -| --------------------------------| --------------------------------------------------------------------| ----------------------------------------------------- | -| `LOWCODER_REDIS_ENABLED` | If **true** redis server is started in the container | `true` | -| `LOWCODER_MONGODB_ENABLED` | If **true** mongo database is started in the container | `true` | -| `LOWCODER_API_SERVICE_ENABLED` | If **true** lowcoder api-service is started in the container | `true` | -| `LOWCODER_NODE_SERVICE_ENABLED` | If **true** lowcoder node-service is started in the container | `true` | -| `LOWCODER_FRONTEND_ENABLED` | If **true** lowcoder web frontend is started in the container | `true` | -| `LOWCODER_PUID` | ID of user running services. It will own all created logs and data. | `9001` | -| `LOWCODER_PGID` | ID of group of the user running services. | `9001` | -| `LOWCODER_MONGODB_URL` | Mongo database connection string | `mongodb://localhost:27017/lowcoder?authSource=admin` | -| `LOWCODER_REDIS_URL` | Redis server URL | `redis://localhost:6379` | -| `LOWCODER_DB_ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` | -| `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` | -| `LOWCODER_CORS_DOMAINS` | CORS allowed domains | `*` | -| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | -| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` | -| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | -| `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | -| `LOWCODER_MAX_ORGS_PER_USER` | Default maximum organizations per user | `100` | -| `LOWCODER_MAX_MEMBERS_PER_ORG` | Default maximum members per organization | `1000` | -| `LOWCODER_MAX_GROUPS_PER_ORG` | Default maximum groups per organization | `100` | -| `LOWCODER_MAX_APPS_PER_ORG` | Default maximum applications per organization | `1000` | -| `LOWCODER_MAX_DEVELOPERS` | Default maximum developers | `100` | -| `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` | -| `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control if users create their own Workspace automatic when Sign Up | `true` | -| `LOWCODER_EMAIL_AUTH_ENABLED` | Control to show the eMail Login after Admin user is set | `true` | +| Environment variable | Description | Value | +| --------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------- | +| `LOWCODER_REDIS_ENABLED` | If **true** redis server is started in the container | `true` | +| `LOWCODER_MONGODB_ENABLED` | If **true** mongo database is started in the container | `true` | +| `LOWCODER_API_SERVICE_ENABLED` | If **true** lowcoder api-service is started in the container | `true` | +| `LOWCODER_NODE_SERVICE_ENABLED` | If **true** lowcoder node-service is started in the container | `true` | +| `LOWCODER_FRONTEND_ENABLED` | If **true** lowcoder web frontend is started in the container | `true` | +| `LOWCODER_PUID` | ID of user running services. It will own all created logs and data. | `9001` | +| `LOWCODER_PGID` | ID of group of the user running services. | `9001` | +| `LOWCODER_MONGODB_URL` | Mongo database connection string | `mongodb://localhost:27017/lowcoder?authSource=admin` | +| `LOWCODER_REDIS_URL` | Redis server URL | `redis://localhost:6379` | +| `LOWCODER_DB_ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` | +| `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` | +| `LOWCODER_CORS_DOMAINS` | CORS allowed domains | `*` | +| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | +| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` | +| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | +| `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | +| `LOWCODER_MAX_ORGS_PER_USER` | Default maximum organizations per user | `100` | +| `LOWCODER_MAX_MEMBERS_PER_ORG` | Default maximum members per organization | `1000` | +| `LOWCODER_MAX_GROUPS_PER_ORG` | Default maximum groups per organization | `100` | +| `LOWCODER_MAX_APPS_PER_ORG` | Default maximum applications per organization | `1000` | +| `LOWCODER_MAX_DEVELOPERS` | Default maximum developers | `100` | +| `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` | +| `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control if users create their own Workspace automatic when Sign Up | `true` | +| `LOWCODER_EMAIL_AUTH_ENABLED` | Control to show the eMail Login after Admin user is set | `true` | +| `MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` | ## Building api-service image From c6a207a1d26c15df9a1df7753141ff0df3443bc8 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Sun, 25 Feb 2024 17:32:34 +0100 Subject: [PATCH 2/8] Changes to support persistence of Layers Mode per App --- .../packages/lowcoder/src/constants/applicationConstants.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/packages/lowcoder/src/constants/applicationConstants.ts b/client/packages/lowcoder/src/constants/applicationConstants.ts index 339548ab0..2e09ba8c3 100644 --- a/client/packages/lowcoder/src/constants/applicationConstants.ts +++ b/client/packages/lowcoder/src/constants/applicationConstants.ts @@ -11,6 +11,8 @@ export enum AppTypeEnum { NavLayout = 3, // 4 folder, 5 mobile MobileTabLayout = 6, + // WorkflowScreen = 7, + // Slide = 8, } export enum ApplicationCategoriesEnum { @@ -52,6 +54,8 @@ export const AppUILayoutType: Record = { [AppTypeEnum.Module]: "module", [AppTypeEnum.NavLayout]: "nav", [AppTypeEnum.MobileTabLayout]: "mobileTabLayout", + // [AppTypeEnum.WorkflowScreen]: "module", + // [AppTypeEnum.Slide]: "normal", }; export type ApplicationDSLType = "editing" | "published" | "view_marketplace"; @@ -61,6 +65,7 @@ export type ApplicationPermissionType = "USER" | "GROUP" | "ORG_ADMIN"; export interface ApplicationExtra { moduleHeight?: number; moduleWidth?: number; + layers?: boolean; } export interface ApplicationMeta { From 643e46f8d4fbbe32c89e44888f58c725ba96702b Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Mon, 26 Feb 2024 16:05:05 +0500 Subject: [PATCH 3/8] handle disableCollision flag in app dsl --- .../src/comps/comps/appSettingsComp.tsx | 1 + .../comps/containerComp/containerView.tsx | 1 - .../lowcoder/src/comps/editorState.tsx | 18 +++++----- .../src/comps/generators/uiCompBuilder.tsx | 3 -- client/packages/lowcoder/src/layout/utils.ts | 8 +---- .../src/pages/ApplicationV2/HomeLayout.tsx | 7 +++- .../src/pages/editor/LeftLayersContent.tsx | 35 +++++++++---------- .../src/pages/editor/editorSkeletonView.tsx | 5 ++- .../lowcoder/src/util/localStorageUtil.ts | 20 ++++++----- 9 files changed, 47 insertions(+), 51 deletions(-) diff --git a/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx b/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx index f984860ba..9fa023cae 100644 --- a/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx @@ -138,6 +138,7 @@ const childrenMap = { maxWidth: dropdownInputSimpleControl(OPTIONS, USER_DEFINE, "1920"), themeId: valueComp(DEFAULT_THEMEID), customShortcuts: CustomShortcutsComp, + disableCollision: valueComp(false), }; type ChildrenInstance = RecordConstructorToComp & { themeList: ThemeType[]; diff --git a/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx b/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx index d7ee0e421..f54f34308 100644 --- a/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx +++ b/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx @@ -478,7 +478,6 @@ export function InnerGrid(props: ViewPropsWithSelect) { layout={props.layout} extraLayout={extraLayout} onDropDragOver={(e) => { - const compType = draggingUtils.getData("compType"); const compLayout = draggingUtils.getData("compLayout"); if (compType) { diff --git a/client/packages/lowcoder/src/comps/editorState.tsx b/client/packages/lowcoder/src/comps/editorState.tsx index ee9db5475..d6d1c6640 100644 --- a/client/packages/lowcoder/src/comps/editorState.tsx +++ b/client/packages/lowcoder/src/comps/editorState.tsx @@ -17,7 +17,7 @@ import { NameAndExposingInfo } from "./utils/exposingTypes"; import { checkName } from "./utils/rename"; import { trans } from "i18n"; import { UiLayoutType } from "./comps/uiComp"; -import { getCollisionStatus, getEditorModeStatus } from "util/localStorageUtil"; +import { /* getCollisionStatus,*/ getEditorModeStatus, saveCollisionStatus } from "util/localStorageUtil"; type RootComp = InstanceType; @@ -47,7 +47,7 @@ export class EditorState { readonly showPropertyPane: boolean = false; readonly selectedCompNames: Set = new Set(); readonly editorModeStatus: string = ""; - readonly collisionStatus: string = ""; + readonly collisionStatus: boolean = false; readonly isDragging: boolean = false; readonly draggingCompType: string = "button"; readonly forceShowGrid: boolean = false; // show grid lines @@ -65,12 +65,13 @@ export class EditorState { rootComp: RootComp, setEditorState: (fn: (editorState: EditorState) => EditorState) => void, initialEditorModeStatus: string = getEditorModeStatus(), - initialCollisionStatus: string = getCollisionStatus() ) { this.rootComp = rootComp; this.setEditorState = setEditorState; this.editorModeStatus = initialEditorModeStatus; - this.collisionStatus = initialCollisionStatus; + + // save collision status from app dsl to localstorage + saveCollisionStatus(this.getCollisionStatus()); } /** @@ -356,10 +357,6 @@ export class EditorState { this.changeState({ editorModeStatus: newEditorModeStatus }); } - setCollisionStatus(newCollisionStatus: string) { - this.changeState({ collisionStatus: newCollisionStatus }); - } - setDragging(dragging: boolean) { if (this.isDragging === dragging) { return; @@ -513,8 +510,9 @@ export class EditorState { getAppType(): UiLayoutType { return this.getUIComp().children.compType.getView(); } - getCollisionStatus(): string { - return this.collisionStatus; + getCollisionStatus(): boolean { + const { disableCollision } = this.getAppSettings(); + return disableCollision ?? false; } } diff --git a/client/packages/lowcoder/src/comps/generators/uiCompBuilder.tsx b/client/packages/lowcoder/src/comps/generators/uiCompBuilder.tsx index bfa0f20cf..7e360a2da 100644 --- a/client/packages/lowcoder/src/comps/generators/uiCompBuilder.tsx +++ b/client/packages/lowcoder/src/comps/generators/uiCompBuilder.tsx @@ -161,9 +161,6 @@ export const DisabledContext = React.createContext(false); */ function UIView(props: { comp: any; viewFn: any }) { const comp = props.comp; - console.log(comp); - - console.log(comp.children); const childrenProps = childrenToProps(comp.children); const parentDisabled = useContext(DisabledContext); diff --git a/client/packages/lowcoder/src/layout/utils.ts b/client/packages/lowcoder/src/layout/utils.ts index 40ee0ed72..22ae8525e 100644 --- a/client/packages/lowcoder/src/layout/utils.ts +++ b/client/packages/lowcoder/src/layout/utils.ts @@ -5,7 +5,6 @@ import { DraggableEvent } from "react-draggable"; import { PositionParams } from "./calculateUtils"; import { draggingUtils } from "./draggingUtils"; import { GridLayoutProps, ResizeHandleAxis } from "./gridLayoutPropTypes"; - import { getCollisionStatus } from "util/localStorageUtil"; export type LayoutItem = { @@ -172,12 +171,7 @@ export function collides(l1: LayoutItem, l2: LayoutItem): boolean { if (l1.y + l1.h <= l2.y) return false; // l1 is above l2 if (l1.y >= l2.y + l2.h) return false; // l1 is below l2 - if (getCollisionStatus() === "true") { - return false; - } - else { - return true; // boxes overlap - } + return !getCollisionStatus(); } /** diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/HomeLayout.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/HomeLayout.tsx index eccd53b21..1442e1620 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/HomeLayout.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/HomeLayout.tsx @@ -25,7 +25,7 @@ import { useLocation } from "react-use"; import { TrashTableView } from "./TrashTableView"; import { HomepageTourV2 } from "../tutorials/HomeTutorialsV2"; import { HomeCardView } from "./HomeCardView"; -import { getHomeLayout, HomeLayoutType, saveHomeLayout } from "../../util/localStorageUtil"; +import { getHomeLayout, HomeLayoutType, removeCollisionStatus, saveHomeLayout } from "../../util/localStorageUtil"; import { HomeTableView } from "./HomeTableView"; import { Layers } from "../../constants/Layers"; import { CreateDropdown } from "./CreateDropdown"; @@ -288,6 +288,11 @@ export function HomeLayout(props: HomeLayoutProps) { useEffect(() => saveHomeLayout(layout), [layout]); + useEffect(() => { + // remove collision status from localstorage + removeCollisionStatus(); + }, []); + const currentPath = useLocation().pathname; if (!user.currentOrgId) { diff --git a/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx b/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx index 93a66fc44..0426dbf63 100644 --- a/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx +++ b/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx @@ -29,9 +29,7 @@ import { Button, Divider, Dropdown, Flex, Input, Menu, MenuProps, Space } from " import { Switch } from "antd"; import { saveCollisionStatus, - getCollisionStatus, } from "util/localStorageUtil"; -import { check, withViewFn } from "@lowcoder-ee/index.sdk"; import { DownOutlined } from "@ant-design/icons"; import { ItemType } from "antd/es/menu/hooks/useItems"; import ColorPicker, { configChangeParams } from "components/ColorPicker"; @@ -78,17 +76,19 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => { const applicationId = useApplicationId(); // added by Falk Wolsky to support a Layers in Lowcoder - const [collisionStatus, setCollisionStatus] = useState(() => { - return getCollisionStatus(); - }); - - const toggleCollisionStatus: ToggleCollisionStatus = useCallback( - (value) => { - setCollisionStatus(value ? value : ("false" as DisabledCollisionStatus)); - saveCollisionStatus(value ? value : ("false" as DisabledCollisionStatus)); - }, - [collisionStatus] - ); + const [collisionStatus, setCollisionStatus] = useState(editorState.getCollisionStatus()); + + useEffect(() => { + console.log('useEffect', collisionStatus); + saveCollisionStatus(collisionStatus); + }, [collisionStatus]) + + const handleToggleLayer = (checked: boolean) => { + editorState.rootComp.children.settings.children.disableCollision.dispatchChangeValueAction( + checked + ) + setCollisionStatus(checked); + } const getTree = (tree: CompTree, result: NodeItem[], key?: string) => { const { items, children } = tree; @@ -429,7 +429,7 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => { // TODO: sort by category // TODO: sort by Types etc. const uiCompInfos = _.sortBy(editorState.uiCompInfoList(), [(x) => x.name]); - const isDraggable = editorState.collisionStatus === "true" ? true : false; + const isDraggable = editorState.getCollisionStatus(); return ( <> @@ -439,11 +439,10 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => { { - toggleCollisionStatus(value == true ? "true" : "false"); - editorState.setCollisionStatus(value == true ? "true" : "false"); + onChange={(value: boolean) => { + handleToggleLayer(value); }} /> diff --git a/client/packages/lowcoder/src/pages/editor/editorSkeletonView.tsx b/client/packages/lowcoder/src/pages/editor/editorSkeletonView.tsx index 01ba97c43..a38afd104 100644 --- a/client/packages/lowcoder/src/pages/editor/editorSkeletonView.tsx +++ b/client/packages/lowcoder/src/pages/editor/editorSkeletonView.tsx @@ -7,7 +7,7 @@ import { LeftPanel, MiddlePanel, } from "pages/common/styledComponent"; -import { getPanelStatus, getEditorModeStatus, getPanelStyle, getCollisionStatus } from "util/localStorageUtil"; +import { getPanelStatus, getEditorModeStatus, getPanelStyle } from "util/localStorageUtil"; import { BottomSkeleton } from "pages/editor/bottom/BottomContent"; import RightPanel from "pages/editor/right/RightPanel"; import _ from "lodash"; @@ -48,7 +48,6 @@ export const EditorLoadingSpin = (props: { height?: string | number }) => { export default function EditorSkeletonView() { const panelStatus = getPanelStatus(); const editorModeStatus = getEditorModeStatus(); - const collisionStatus = getCollisionStatus(); const panelStyle = getPanelStyle(); const isUserViewMode = useUserViewMode(); const isTemplate = useTemplateViewMode(); @@ -70,7 +69,7 @@ export default function EditorSkeletonView() { {panelStatus.left && ( diff --git a/client/packages/lowcoder/src/util/localStorageUtil.ts b/client/packages/lowcoder/src/util/localStorageUtil.ts index 1c468be88..2eb1a3dfd 100644 --- a/client/packages/lowcoder/src/util/localStorageUtil.ts +++ b/client/packages/lowcoder/src/util/localStorageUtil.ts @@ -47,18 +47,22 @@ export function saveEditorModeStatus(editorModeStatus: EditorModeStatus) { } //ADDED BY FRED TO SAVE enabledCollision export function saveCollisionStatus( - collisionStatus: DisabledCollisionStatus + collisionStatus: boolean ) { - localStorage.setItem("disable_collision", collisionStatus); + localStorage.setItem("disableCollision", String(collisionStatus)); } -export const DefaultCollisionStatus: DisabledCollisionStatus = "true"; -export function getCollisionStatus(): DisabledCollisionStatus { - const str = localStorage.getItem("disable_collision"); - if (!str) { - return DefaultCollisionStatus; +// export const DefaultCollisionStatus: DisabledCollisionStatus = "true"; +export function getCollisionStatus(): boolean { + const str = localStorage.getItem("disableCollision"); + if (str === 'true') { + return true; } - return str as DisabledCollisionStatus; + return false; +} + +export function removeCollisionStatus() { + localStorage.removeItem("disableCollision"); } export const DefaultEditorModeStatus: EditorModeStatus = "both"; From 317455ad635ead1faf937c3c8d2f2a53ed369c86 Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Mon, 26 Feb 2024 18:47:50 +0500 Subject: [PATCH 4/8] small fix --- client/packages/lowcoder/src/comps/editorState.tsx | 2 +- client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/client/packages/lowcoder/src/comps/editorState.tsx b/client/packages/lowcoder/src/comps/editorState.tsx index d6d1c6640..7cc7ee989 100644 --- a/client/packages/lowcoder/src/comps/editorState.tsx +++ b/client/packages/lowcoder/src/comps/editorState.tsx @@ -17,7 +17,7 @@ import { NameAndExposingInfo } from "./utils/exposingTypes"; import { checkName } from "./utils/rename"; import { trans } from "i18n"; import { UiLayoutType } from "./comps/uiComp"; -import { /* getCollisionStatus,*/ getEditorModeStatus, saveCollisionStatus } from "util/localStorageUtil"; +import { getEditorModeStatus, saveCollisionStatus } from "util/localStorageUtil"; type RootComp = InstanceType; diff --git a/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx b/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx index 0426dbf63..f2d6c6122 100644 --- a/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx +++ b/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx @@ -79,7 +79,6 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => { const [collisionStatus, setCollisionStatus] = useState(editorState.getCollisionStatus()); useEffect(() => { - console.log('useEffect', collisionStatus); saveCollisionStatus(collisionStatus); }, [collisionStatus]) From efd6dbe35b212aa0b99260ec140d241993a5c6e7 Mon Sep 17 00:00:00 2001 From: Abdul Qadir Date: Mon, 26 Feb 2024 19:54:31 +0500 Subject: [PATCH 5/8] Revert the validation that stops unpiblished apps to be viewed --- .../org/lowcoder/api/application/ApplicationApiService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java index fb05dcf87..e43e48fba 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java @@ -249,7 +249,8 @@ private Mono checkApplicationStatus(Application application, ApplicationSt } private Mono checkApplicationViewRequest(Application application, ApplicationEndpoints.ApplicationRequestType expected) { - if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_ALL && application.isPublicToAll()) { + // TODO: The check is correct ( logically ) but we need to provide some time for the users to adapt. Will bring it back in the next release + if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_ALL /* && application.isPublicToAll() */) { return Mono.empty(); } if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_MARKETPLACE && application.isPublicToMarketplace()) { From cffdba8fb1dbbd86ac3ef3a8c540c1a74e22d431 Mon Sep 17 00:00:00 2001 From: Abdul Qadir Date: Mon, 26 Feb 2024 20:00:56 +0500 Subject: [PATCH 6/8] Rename marketplace env var --- deploy/docker/README.md | 54 +++++++++---------- .../resources/selfhost/ce/application.yml | 2 +- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 4fba9a727..6a672bb05 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -21,33 +21,33 @@ DOCKER_BUILDKIT=1 docker build -f deploy/docker/Dockerfile -t lowcoderorg/lowcod Image can be configured by setting environment variables. -| Environment variable | Description | Value | -| --------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------- | -| `LOWCODER_REDIS_ENABLED` | If **true** redis server is started in the container | `true` | -| `LOWCODER_MONGODB_ENABLED` | If **true** mongo database is started in the container | `true` | -| `LOWCODER_API_SERVICE_ENABLED` | If **true** lowcoder api-service is started in the container | `true` | -| `LOWCODER_NODE_SERVICE_ENABLED` | If **true** lowcoder node-service is started in the container | `true` | -| `LOWCODER_FRONTEND_ENABLED` | If **true** lowcoder web frontend is started in the container | `true` | -| `LOWCODER_PUID` | ID of user running services. It will own all created logs and data. | `9001` | -| `LOWCODER_PGID` | ID of group of the user running services. | `9001` | -| `LOWCODER_MONGODB_URL` | Mongo database connection string | `mongodb://localhost:27017/lowcoder?authSource=admin` | -| `LOWCODER_REDIS_URL` | Redis server URL | `redis://localhost:6379` | -| `LOWCODER_DB_ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` | -| `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` | -| `LOWCODER_CORS_DOMAINS` | CORS allowed domains | `*` | -| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | -| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` | -| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | -| `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | -| `LOWCODER_MAX_ORGS_PER_USER` | Default maximum organizations per user | `100` | -| `LOWCODER_MAX_MEMBERS_PER_ORG` | Default maximum members per organization | `1000` | -| `LOWCODER_MAX_GROUPS_PER_ORG` | Default maximum groups per organization | `100` | -| `LOWCODER_MAX_APPS_PER_ORG` | Default maximum applications per organization | `1000` | -| `LOWCODER_MAX_DEVELOPERS` | Default maximum developers | `100` | -| `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` | -| `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control if users create their own Workspace automatic when Sign Up | `true` | -| `LOWCODER_EMAIL_AUTH_ENABLED` | Control to show the eMail Login after Admin user is set | `true` | -| `MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` | +| Environment variable | Description | Value | +|-------------------------------------| ----------------------------------------------------------------------- | ----------------------------------------------------- | +| `LOWCODER_REDIS_ENABLED` | If **true** redis server is started in the container | `true` | +| `LOWCODER_MONGODB_ENABLED` | If **true** mongo database is started in the container | `true` | +| `LOWCODER_API_SERVICE_ENABLED` | If **true** lowcoder api-service is started in the container | `true` | +| `LOWCODER_NODE_SERVICE_ENABLED` | If **true** lowcoder node-service is started in the container | `true` | +| `LOWCODER_FRONTEND_ENABLED` | If **true** lowcoder web frontend is started in the container | `true` | +| `LOWCODER_PUID` | ID of user running services. It will own all created logs and data. | `9001` | +| `LOWCODER_PGID` | ID of group of the user running services. | `9001` | +| `LOWCODER_MONGODB_URL` | Mongo database connection string | `mongodb://localhost:27017/lowcoder?authSource=admin` | +| `LOWCODER_REDIS_URL` | Redis server URL | `redis://localhost:6379` | +| `LOWCODER_DB_ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` | +| `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` | +| `LOWCODER_CORS_DOMAINS` | CORS allowed domains | `*` | +| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | +| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` | +| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | +| `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | +| `LOWCODER_MAX_ORGS_PER_USER` | Default maximum organizations per user | `100` | +| `LOWCODER_MAX_MEMBERS_PER_ORG` | Default maximum members per organization | `1000` | +| `LOWCODER_MAX_GROUPS_PER_ORG` | Default maximum groups per organization | `100` | +| `LOWCODER_MAX_APPS_PER_ORG` | Default maximum applications per organization | `1000` | +| `LOWCODER_MAX_DEVELOPERS` | Default maximum developers | `100` | +| `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` | +| `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control if users create their own Workspace automatic when Sign Up | `true` | +| `LOWCODER_EMAIL_AUTH_ENABLED` | Control to show the eMail Login after Admin user is set | `true` | +| `LOWCODER_MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` | ## Building api-service image diff --git a/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml b/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml index 11c0511c2..258833aea 100644 --- a/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml +++ b/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml @@ -54,7 +54,7 @@ common: workspace: mode: ${LOWCODER_WORKSPACE_MODE:SAAS} marketplace: - private-mode: ${MARKETPLACE_PRIVATE_MODE:true} + private-mode: ${LOWCODER_MARKETPLACE_PRIVATE_MODE:true} material: mongodb-grid-fs: From 966fa27fbb6da4e837fe28fb8a201e483efbafb3 Mon Sep 17 00:00:00 2001 From: Andy C <46699959+sudoischenny@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:11:03 -0500 Subject: [PATCH 7/8] Drawer Close Button Left or Right Adds the ability to select the left or right position for the close button in the drawer component. --- .../lowcoder/src/comps/hooks/drawerComp.tsx | 75 +++++++++++-------- .../packages/lowcoder/src/i18n/locales/de.ts | 1 + .../packages/lowcoder/src/i18n/locales/en.ts | 1 + .../i18n/locales/translation_files/de.json | 1 + .../i18n/locales/translation_files/en.json | 1 + .../i18n/locales/translation_files/es.json | 2 +- .../packages/lowcoder/src/i18n/locales/zh.ts | 1 + 7 files changed, 50 insertions(+), 32 deletions(-) diff --git a/client/packages/lowcoder/src/comps/hooks/drawerComp.tsx b/client/packages/lowcoder/src/comps/hooks/drawerComp.tsx index f885e2436..1d04e984d 100644 --- a/client/packages/lowcoder/src/comps/hooks/drawerComp.tsx +++ b/client/packages/lowcoder/src/comps/hooks/drawerComp.tsx @@ -1,4 +1,4 @@ -import { CloseOutlined } from "@ant-design/icons"; +import { CloseOutlined, PropertySafetyFilled } from "@ant-design/icons"; import { default as Button } from "antd/es/button"; import { ContainerCompBuilder } from "comps/comps/containerBase/containerCompBuilder"; import { gridItemCompToGridItems, InnerGrid } from "comps/comps/containerComp/containerView"; @@ -6,7 +6,7 @@ import { AutoHeightControl } from "comps/controls/autoHeightControl"; import { BoolControl } from "comps/controls/boolControl"; import { StringControl } from "comps/controls/codeControl"; import { booleanExposingStateControl } from "comps/controls/codeStateControl"; -import { PositionControl } from "comps/controls/dropdownControl"; +import { PositionControl, LeftRightControl } from "comps/controls/dropdownControl"; import { closeEvent, eventHandlerControl } from "comps/controls/eventHandlerControl"; import { styleControl } from "comps/controls/styleControl"; import { DrawerStyle } from "comps/controls/styleControlConstants"; @@ -35,40 +35,22 @@ const DrawerWrapper = styled.div` pointer-events: auto; `; -const ButtonStyle = styled(Button)` - position: absolute; - left: 0; - top: 0; - z-index: 10; - font-weight: 700; - box-shadow: none; - color: rgba(0, 0, 0, 0.45); - height: 54px; - width: 54px; - - svg { - width: 16px; - height: 16px; - } - - &, - :hover, - :focus { - background-color: transparent; - border: none; - } - - :hover, - :focus { - color: rgba(0, 0, 0, 0.75); - } -`; - // If it is a number, use the px unit by default function transToPxSize(size: string | number) { return isNumeric(size) ? size + "px" : (size as string); } +const ClosePlacementOptions = [ + { + label: trans("drawer.left"), + value: "left", + }, + { + label: trans("drawer.right"), + value: "right", + }, +] as const; + const PlacementOptions = [ { label: trans("drawer.top"), @@ -88,6 +70,7 @@ const PlacementOptions = [ }, ] as const; + let TmpDrawerComp = (function () { return new ContainerCompBuilder( { @@ -98,6 +81,7 @@ let TmpDrawerComp = (function () { autoHeight: AutoHeightControl, style: styleControl(DrawerStyle), placement: PositionControl, + closePosition: withDefault(LeftRightControl, "left"), maskClosable: withDefault(BoolControl, true), showMask: withDefault(BoolControl, true), }, @@ -119,6 +103,34 @@ let TmpDrawerComp = (function () { }, [dispatch, isTopBom] ); + const ButtonStyle = styled(Button)` + position: absolute; + ${props.closePosition === "right" ? "right: 0;" : "left: 0;"} + top: 0; + z-index: 10; + font-weight: 700; + box-shadow: none; + color: rgba(0, 0, 0, 0.45); + height: 54px; + width: 54px; + + svg { + width: 16px; + height: 16px; + } + + &, + :hover, + :focus { + background-color: transparent; + border: none; + } + + :hover, + :focus { + color: rgba(0, 0, 0, 0.75); + } + `; return ( @@ -181,6 +193,7 @@ let TmpDrawerComp = (function () { .setPropertyViewFn((children) => ( <>
+ {children.closePosition.propertyView({ label: trans("drawer.closePosition"), radioButton: true })} {children.placement.propertyView({ label: trans("drawer.placement"), radioButton: true })} {["top", "bottom"].includes(children.placement.getView()) ? children.autoHeight.getPropertyView() diff --git a/client/packages/lowcoder/src/i18n/locales/de.ts b/client/packages/lowcoder/src/i18n/locales/de.ts index 671abf94c..cc41a8d1e 100644 --- a/client/packages/lowcoder/src/i18n/locales/de.ts +++ b/client/packages/lowcoder/src/i18n/locales/de.ts @@ -1347,6 +1347,7 @@ export const de = { "title": "Angezeigter Container-Titel" }, "drawer": { + "closePosition": "Platzierung der Verschlusses", "placement": "Platzierung der Schubladen", "size": "Größe", "top": "Top", diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 146aa4330..9e71926f0 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -1500,6 +1500,7 @@ export const en = { "title": "Displayed Container Title" }, "drawer": { + "closePosition": "Close Button Placement", "placement": "Drawer Placement", "size": "Size", "top": "Top", diff --git a/client/packages/lowcoder/src/i18n/locales/translation_files/de.json b/client/packages/lowcoder/src/i18n/locales/translation_files/de.json index e40d34b54..5b64c4f81 100644 --- a/client/packages/lowcoder/src/i18n/locales/translation_files/de.json +++ b/client/packages/lowcoder/src/i18n/locales/translation_files/de.json @@ -1335,6 +1335,7 @@ "title": "Angezeigter Container-Titel" }, "drawer": { + "closePosition": "Platzierung der Verschlusses", "placement": "Platzierung der Schubladen", "size": "Größe", "top": "Top", diff --git a/client/packages/lowcoder/src/i18n/locales/translation_files/en.json b/client/packages/lowcoder/src/i18n/locales/translation_files/en.json index f53bbcb57..279c51ae1 100644 --- a/client/packages/lowcoder/src/i18n/locales/translation_files/en.json +++ b/client/packages/lowcoder/src/i18n/locales/translation_files/en.json @@ -1399,6 +1399,7 @@ "title": "Displayed Container Title" }, "drawer": { + "closePosition": "Close Button Placement", "placement": "Drawer Placement", "size": "Size", "top": "Top", diff --git a/client/packages/lowcoder/src/i18n/locales/translation_files/es.json b/client/packages/lowcoder/src/i18n/locales/translation_files/es.json index 94ec33fe1..1a2e8e409 100644 --- a/client/packages/lowcoder/src/i18n/locales/translation_files/es.json +++ b/client/packages/lowcoder/src/i18n/locales/translation_files/es.json @@ -1 +1 @@ -{"productName":"Lowcoder","productDesc":"Crea aplicaciones de software para tu empresa y tus clientes con una experiencia mínima en codificación. Lowcoder es una excelente alternativa a Retool, Appsmith y Tooljet.","notSupportedBrowser":"Tu navegador actual puede tener problemas de compatibilidad. Para una experiencia de usuario óptima, utiliza la última versión de Chrome.","create":"Crea","move":"Muévete","addItem":"Añade","newItem":"Nuevo","copy":"Copia","rename":"Cambia el nombre de","delete":"Borra","deletePermanently":"Borrar permanentemente","remove":"Elimina","recover":"Recupera","edit":"Edita","view":"Ver","value":"Valor","data":"Datos","information":"Información","success":"Éxito","warning":"Advertencia","error":"Error","reference":"Referencia","text":"Texto","label":"Etiqueta","color":"Color","form":"Formulario","menu":"Menú","menuItem":"Elemento del menú","ok":"OK","cancel":"Cancelar","finish":"Acabado","reset":"Restablece","icon":"Icono","code":"Código","title":"Título","emptyContent":"Contenido vacío","more":"Más","search":"Busca en","back":"Volver","accessControl":"Control de acceso","copySuccess":"Copiado correctamente","copyError":"Error de copia","api":{"publishSuccess":"Publicado con éxito","recoverFailed":"Recuperación fallida","needUpdate":"Tu versión actual está obsoleta. Por favor, actualízala a la última versión."},"codeEditor":{"notSupportAutoFormat":"El editor de código actual no admite el autoformateo.","fold":"Pliega"},"exportMethod":{"setDesc":"Establecer propiedad: {propiedad}","clearDesc":"Borrar propiedad: {propiedad}","resetDesc":"Restablecer propiedad: {propiedad} al valor por defecto"},"method":{"focus":"Focalizar","focusOptions":"Opciones de enfoque. Ver HTMLElement.focus()","blur":"Eliminar Enfoque","click":"Haz clic en","select":"Seleccionar todo el texto","setSelectionRange":"Establecer las posiciones inicial y final de la selección de texto","selectionStart":"Índice basado en 0 del primer carácter seleccionado","selectionEnd":"Índice basado en 0 del carácter después del último carácter seleccionado","setRangeText":"Reemplazar rango de texto","replacement":"Cadena a insertar","replaceStart":"Índice basado en 0 del primer carácter a sustituir","replaceEnd":"Índice basado en 0 del carácter después del último carácter a sustituir"},"errorBoundary":{"encounterError":"Error en la carga del componente. Comprueba tu configuración.","clickToReload":"Haz clic para recargar","errorMsg":"Error: "},"imgUpload":{"notSupportError":"Sólo admite tipos de imagen {tipos}","exceedSizeError":"El tamaño de la imagen no debe superar el {tamaño}."},"gridCompOperator":{"notSupport":"No admitido","selectAtLeastOneComponent":"Selecciona al menos un componente","selectCompFirst":"Seleccionar componentes antes de copiar","noContainerSelected":"[Bug] No se ha seleccionado ningún contenedor","deleteCompsSuccess":"Eliminado correctamente. Pulsa {Tecla Deshacer} para deshacer.","deleteCompsTitle":"Eliminar componentes","deleteCompsBody":"¿Estás seguro de que quieres borrar {compNum} componentes seleccionados?","cutCompsSuccess":"Corta con éxito. Pulsa {pegarTecla} para pegar, o {deshacerTecla} para deshacer."},"leftPanel":{"queries":"Consultas de datos en tu app","globals":"Variables de datos globales","propTipsArr":"{num} Elementos","propTips":"{num} Teclas","propTipArr":"{num} Artículo","propTip":"{num} Tecla","stateTab":"Estado","settingsTab":"Ajustes","toolbarTitle":"Individualización","toolbarPreload":"Guiones y estilos","components":"Componentes activos","modals":"Modales in-App","expandTip":"Haz clic para ampliar los datos del {componente}","collapseTip":"Haz clic para contraer los datos del {componente}"},"bottomPanel":{"title":"Consultas de datos","run":"Ejecuta","noSelectedQuery":"No se ha seleccionado ninguna consulta","metaData":"Metadatos de la fuente de datos","noMetadata":"No hay metadatos disponibles","metaSearchPlaceholder":"Buscar metadatos","allData":"Todas las mesas"},"rightPanel":{"propertyTab":"Propiedades","noSelectedComps":"No hay Componentes seleccionados. Haz clic en un Componente para ver sus Propiedades.","createTab":"Inserta","searchPlaceHolder":"Buscar componentes o módulos","uiComponentTab":"Componentes","extensionTab":"Extensiones","modulesTab":"Módulos","moduleListTitle":"Módulos","pluginListTitle":"Plugins","emptyModules":"Los módulos son Mikro-Apps reutilizables. Puedes incrustarlos en tu App.","searchNotFound":"¿No encuentras el componente adecuado? Envía un problema","emptyPlugins":"No se han añadido plugins","contactUs":"Contacta con nosotros","issueHere":"aquí."},"prop":{"expand":"Amplía","columns":"Columnas","videokey":"Llave de vídeo","rowSelection":"Selección de filas","toolbar":"Barra de herramientas","pagination":"Paginación","logo":"Logotipo","style":"Estilo","inputs":"Entradas","meta":"Metadatos","data":"Datos","hide":"Ocultar","loading":"Cargando","disabled":"Discapacitados","placeholder":"Marcador de posición","showClear":"Mostrar botón Borrar","showSearch":"Puedes buscar en","defaultValue":"Valor por defecto","required":"Campo obligatorio","readOnly":"Sólo lectura","readOnlyTooltip":"Los componentes de sólo lectura parecen normales, pero no se pueden modificar.","minimum":"Mínimo","maximum":"Máximo","regex":"Regex","minLength":"Longitud mínima","maxLength":"Longitud máxima","height":"Altura","width":"Anchura","selectApp":"Seleccionar aplicación","showCount":"Mostrar recuento","textType":"Tipo de texto","customRule":"Regla personalizada","customRuleTooltip":"Una cadena no vacía indica un error; vacía o nula significa que la validación se ha superado. Ejemplo: ","manual":"Manual","map":"Mapa","json":"JSON","use12Hours":"Utiliza el formato de 12 horas","hourStep":"Hora Paso","minuteStep":"Paso del minuto","secondStep":"Segundo paso","minDate":"Fecha mínima","maxDate":"Fecha máxima","minTime":"Tiempo mínimo","maxTime":"Tiempo máximo","type":"Tipo","showLabel":"Mostrar etiqueta","showHeader":"Mostrar cabecera","showBody":"Mostrar cuerpo","showFooter":"Mostrar pie de página","maskClosable":"Pulsa Fuera para Cerrar","showMask":"Mostrar máscara"},"autoHeightProp":{"auto":"Auto","fixed":"Fijo"},"labelProp":{"text":"Etiqueta","tooltip":"Información sobre herramientas","position":"Posición","left":"Izquierda","top":"Arriba","align":"Alineación","width":"Anchura","widthTooltip":"La anchura de la etiqueta admite porcentajes (%) y píxeles (px)."},"eventHandler":{"eventHandlers":"Manejadores de eventos","emptyEventHandlers":"Sin manejadores de eventos","incomplete":"Selección incompleta","inlineEventTitle":"En {eventName}","event":"Evento","action":"Acción","noSelect":"Sin selección","runQuery":"Ejecutar una consulta de datos","selectQuery":"Seleccionar consulta de datos","controlComp":"Controlar un componente","runScript":"Ejecutar JavaScript","runScriptPlaceHolder":"Escribe aquí el código","component":"Componente","method":"Método","setTempState":"Establece un valor de Estado Temporal","state":"Estado","triggerModuleEvent":"Activar un evento de módulo","moduleEvent":"Módulo Evento","goToApp":"Ir a otra App","queryParams":"Parámetros de consulta","hashParams":"Parámetros Hash","showNotification":"Mostrar una notificación","text":"Texto","level":"Nivel","duration":"Duración","notifyDurationTooltip":"La unidad de tiempo puede ser \\'s\\' (segundo, por defecto) o \\'ms\\' (milisegundo). La duración máxima es {max} segundos","goToURL":"Abrir una URL","openInNewTab":"Abrir en pestaña nueva","copyToClipboard":"Copiar un valor al Portapapeles","copyToClipboardValue":"Valor","export":"Exportar datos","exportNoFileType":"Sin selección (Opcional)","fileName":"Nombre del archivo","fileNameTooltip":"Incluye la extensión para especificar el tipo de archivo, por ejemplo: \\'imagen.png'","fileType":"Tipo de archivo","condition":"Corre sólo cuando...","conditionTooltip":"Ejecuta el controlador de eventos sólo cuando esta condición se evalúe como \"verdadero\".","debounce":"Rebote para","throttle":"Acelerador para","slowdownTooltip":"Utiliza debounce o throttle para controlar la frecuencia de los disparos de acción. La unidad de tiempo puede ser \\'ms\\' (milisegundo, por defecto) o \\'s\\' (segundo).","notHandledError":"No manipulado","currentApp":"Actual"},"event":{"submit":"Envía","submitDesc":"Activadores al enviar","change":"Cambia","changeDesc":"Activadores de cambios de valor","focus":"Enfoque","focusDesc":"Activadores en Foco","blur":"Desenfocar","blurDesc":"Activadores del desenfoque","click":"Haz clic en","clickDesc":"Activadores al hacer clic","close":"Cerrar","closeDesc":"Desencadenantes al cerrar","parse":"Analiza","parseDesc":"Disparadores en Parse","success":"Éxito","successDesc":"Activadores del éxito","delete":"Borra","deleteDesc":"Activadores al borrar","mention":"Menciona","mentionDesc":"Activadores de la mención"},"themeDetail":{"primary":"Color de la marca","primaryDesc":"Color primario por defecto utilizado por la mayoría de los componentes","textDark":"Color de texto oscuro","textDarkDesc":"Se utiliza cuando el color de fondo es claro","textLight":"Color de texto claro","textLightDesc":"Se utiliza cuando el color de fondo es oscuro","canvas":"Color del lienzo","canvasDesc":"Color de fondo predeterminado de la aplicación","primarySurface":"Color del envase","primarySurfaceDesc":"Color de fondo por defecto para componentes como las tablas","borderRadius":"Radio del borde","borderRadiusDesc":"Radio del borde por defecto utilizado por la mayoría de los componentes","chart":"Estilo gráfico","chartDesc":"Entrada para Echarts","echartsJson":"Tema JSON","margin":"Margen","marginDesc":"Margen por defecto utilizado normalmente para la mayoría de los componentes","padding":"Acolchado","paddingDesc":"Relleno por defecto utilizado normalmente para la mayoría de los componentes","containerheaderpadding":"Relleno de cabecera","containerheaderpaddingDesc":"Relleno de cabecera por defecto utilizado normalmente para la mayoría de los componentes","gridColumns":"Columnas de cuadrícula","gridColumnsDesc":"Número predeterminado de columnas utilizado normalmente para la mayoría de los contenedores"},"style":{"resetTooltip":"Restablecer estilos. Borra el campo de entrada para restablecer un estilo individual.","textColor":"Color del texto","contrastText":"Contraste Color del texto","generated":"Generado","customize":"Personaliza","staticText":"Texto estático","accent":"Acento","validate":"Mensaje de validación","border":"Color del borde","borderRadius":"Radio del borde","borderWidth":"Anchura del borde","background":"Antecedentes","headerBackground":"Fondo de la cabecera","footerBackground":"Fondo de pie de página","fill":"Rellena","track":"Pista","links":"Enlaces","thumb":"Pulgar","thumbBorder":"Borde del pulgar","checked":"Comprobado","unchecked":"Sin marcar","handle":"Asa","tags":"Etiquetas","tagsText":"Etiquetas Texto","multiIcon":"Icono multiselección","tabText":"Texto de la pestaña","tabAccent":"Acento de pestaña","checkedBackground":"Antecedentes comprobados","uncheckedBackground":"Fondo sin marcar","uncheckedBorder":"Frontera sin marcar","indicatorBackground":"Indicador Antecedentes","tableCellText":"Texto celular","selectedRowBackground":"Fondo de fila seleccionado","hoverRowBackground":"Fondo de la fila Hover","alternateRowBackground":"Fondo de fila alternativo","tableHeaderBackground":"Fondo de la cabecera","tableHeaderText":"Texto de cabecera","toolbarBackground":"Fondo de la barra de herramientas","toolbarText":"Texto de la barra de herramientas","pen":"Bolígrafo","footerIcon":"Icono de pie de página","tips":"Consejos","margin":"Margen","padding":"Acolchado","marginLeft":"Margen izquierdo","marginRight":"Margen derecho","marginTop":"Margen superior","marginBottom":"Margen inferior","containerheaderpadding":"Relleno de cabecera","containerfooterpadding":"Relleno de pie de página","containerbodypadding":"Acolchado corporal","minWidth":"Anchura mínima","aspectRatio":"Relación de aspecto","textSize":"Tamaño del texto"},"export":{"hiddenDesc":"Si es verdadero, el componente se oculta","disabledDesc":"Si es verdadero, el componente está desactivado y no es interactivo","visibleDesc":"Si es verdadero, el componente es visible","inputValueDesc":"Valor actual de la entrada","invalidDesc":"Indica si el valor no es válido","placeholderDesc":"Texto de marcador de posición cuando no se establece ningún valor","requiredDesc":"Si es verdadero, se requiere un valor válido","submitDesc":"Enviar formulario","richTextEditorValueDesc":"Valor actual del Editor","richTextEditorReadOnlyDesc":"Si es verdadero, el Editor es de sólo lectura","richTextEditorHideToolBarDesc":"Si es verdadero, la barra de herramientas se oculta","jsonEditorDesc":"Datos JSON actuales","sliderValueDesc":"Valor seleccionado actualmente","sliderMaxValueDesc":"Valor máximo del deslizador","sliderMinValueDesc":"Valor mínimo de la corredera","sliderStartDesc":"Valor del punto de partida seleccionado","sliderEndDesc":"Valor del punto final seleccionado","ratingValueDesc":"Clasificación seleccionada actualmente","ratingMaxDesc":"Valor nominal máximo","datePickerValueDesc":"Fecha seleccionada actualmente","datePickerFormattedValueDesc":"Fecha seleccionada formateada","datePickerTimestampDesc":"Marca de tiempo de la fecha seleccionada","dateRangeStartDesc":"Fecha de inicio del rango","dateRangeEndDesc":"Fecha final del intervalo","dateRangeStartTimestampDesc":"Marca de tiempo de la fecha de inicio","dateRangeEndTimestampDesc":"Marca de tiempo de la fecha de finalización","dateRangeFormattedValueDesc":"Rango de fechas formateado","dateRangeFormattedStartValueDesc":"Fecha de inicio formateada","dateRangeFormattedEndValueDesc":"Fecha final formateada","timePickerValueDesc":"Hora seleccionada actualmente","timePickerFormattedValueDesc":"Hora seleccionada formateada","timeRangeStartDesc":"Hora de inicio del alcance","timeRangeEndDesc":"Hora de finalización del alcance","timeRangeFormattedValueDesc":"Rango de tiempo formateado","timeRangeFormattedStartValueDesc":"Hora de inicio formateada","timeRangeFormattedEndValueDesc":"Hora final formateada"},"validationDesc":{"email":"Introduce una dirección de correo electrónico válida","url":"Por favor, introduce una URL válida","regex":"Concuerda con el patrón especificado","maxLength":"Demasiados caracteres, actual: {longitud}, máximo: {longitudmáxima}","minLength":"No hay suficientes caracteres, actual: {longitud}, mínimo: {longitud mínima}","maxValue":"El valor supera el máximo, actual: {valor}, máximo: {máximo}","minValue":"Valor por debajo del mínimo, actual: {valor}, mínimo: {mín}","maxTime":"El tiempo supera el máximo, actual: {hora}, máximo: {tiempomáx}","minTime":"Tiempo por debajo del mínimo, actual: {hora}, mínimo: {minTime}","maxDate":"La fecha supera el máximo, actual: {fecha}, máximo: {fechaMáx}","minDate":"Fecha por debajo del mínimo, actual: {fecha}, mínimo: {fechaMín}"},"query":{"noQueries":"No hay Consultas de Datos disponibles.","queryTutorialButton":"Ver documentos {valor}","datasource":"Tus fuentes de datos","newDatasource":"Nueva fuente de datos","generalTab":"General","notificationTab":"Notificación","advancedTab":"Avanzado","showFailNotification":"Mostrar notificación en caso de fallo","failCondition":"Condiciones de fallo","failConditionTooltip1":"Personaliza las condiciones de fallo y las notificaciones correspondientes.","failConditionTooltip2":"Si alguna condición devuelve verdadero, la consulta se marca como fallida y activa la notificación correspondiente.","showSuccessNotification":"Mostrar notificación de éxito","successMessageLabel":"Mensaje de éxito","successMessage":"Corre con éxito","notifyDuration":"Duración","notifyDurationTooltip":"Duración de la notificación. La unidad de tiempo puede ser \\'s\\' (segundo, por defecto) o \\'ms\\' (milisegundo). El valor por defecto es {default}s. El máximo es {max}s.","successMessageWithName":"{nombre} ejecutado correctamente","failMessageWithName":"Ha fallado la ejecución de {nombre}: {resultado}","showConfirmationModal":"Mostrar Modal de Confirmación Antes de Ejecutar","confirmationMessageLabel":"Mensaje de confirmación","confirmationMessage":"¿Estás seguro de que quieres ejecutar esta Consulta de Datos?","newQuery":"Nueva consulta de datos","newFolder":"Carpeta nueva","recentlyUsed":"Usado recientemente","folder":"Carpeta","folderNotEmpty":"La carpeta no está vacía","dataResponder":"Respondedor de datos","tempState":"Estado Temporal","transformer":"Transformador","quickRestAPI":"Consulta REST","quickStreamAPI":"Consulta de flujos","quickGraphql":"Consulta GraphQL","lowcoderAPI":"API Lowcoder","executeJSCode":"Ejecutar código JavaScript","importFromQueryLibrary":"Importar desde la biblioteca de consultas","importFromFile":"Importar desde archivo","triggerType":"Se activa cuando...","triggerTypeAuto":"Cambio de entradas o al cargar la página","triggerTypePageLoad":"Cuando se carga la Aplicación (Página)","triggerTypeManual":"Sólo cuando lo activas manualmente","chooseDataSource":"Elegir fuente de datos","method":"Método","updateExceptionDataSourceTitle":"Actualizar fuente de datos que falla","updateExceptionDataSourceContent":"Actualiza la siguiente consulta con la misma fuente de datos que falla:","update":"Actualiza","disablePreparedStatement":"Desactivar Declaraciones Preparadas","disablePreparedStatementTooltip":"Desactivar las sentencias preparadas puede generar SQL dinámico, pero aumenta el riesgo de inyección SQL","timeout":"Tiempo de espera tras","timeoutTooltip":"Unidad por defecto: ms. Unidades de entrada admitidas: ms, s. Valor por defecto: {defaultSeconds} segundos. Valor máximo: {maxSeconds} segundos. Por ejemplo, 300 (es decir, 300ms), 800ms, 5s.","periodic":"Ejecuta periódicamente esta consulta de datos","periodicTime":"Periodo","periodicTimeTooltip":"Periodo entre ejecuciones sucesivas. Unidad por defecto: ms. Unidades de entrada admitidas: ms, s. Valor mínimo: 100ms. La ejecución periódica se desactiva para valores inferiores a 100ms. Por ejemplo, 300 (es decir, 300ms), 800ms, 5s.","cancelPrevious":"Ignorar los resultados de ejecuciones anteriores no completadas","cancelPreviousTooltip":"Si se desencadena una nueva ejecución, se ignorará el resultado de las ejecuciones anteriores no completadas si no se completaron, y estas ejecuciones ignoradas no desencadenarán la lista de eventos de la consulta.","dataSourceStatusError":"Si se desencadena una nueva ejecución, se ignorará el resultado de las ejecuciones anteriores no completadas, y las ejecuciones ignoradas no desencadenarán la lista de eventos de la consulta.","success":"Éxito","fail":"Fallo","successDesc":"Se activa cuando la ejecución tiene éxito","failDesc":"Se activa cuando falla la ejecución","fixedDelayError":"Consulta no ejecutada","execSuccess":"Corre con éxito","execFail":"Error de ejecución","execIgnored":"Los resultados de esta consulta fueron ignorados","deleteSuccessMessage":"Eliminado con éxito. Puedes utilizar {undoKey} para Deshacer","dataExportDesc":"Datos obtenidos por la consulta actual","codeExportDesc":"Código de estado de la consulta actual","successExportDesc":"Si la consulta actual se ha ejecutado correctamente","messageExportDesc":"Información devuelta por la consulta actual","extraExportDesc":"Otros datos de la consulta actual","isFetchingExportDesc":"¿Es la consulta actual de la petición?","runTimeExportDesc":"Tiempo de ejecución de la consulta actual (ms)","latestEndTimeExportDesc":"Último tiempo de ejecución","triggerTypeExportDesc":"Tipo de gatillo","chooseResource":"Elige un Recurso","createDataSource":"Crear una nueva fuente de datos","editDataSource":"Edita","datasourceName":"Nombre","datasourceNameRuleMessage":"Introduce un nombre de fuente de datos","generalSetting":"Configuración general","advancedSetting":"Ajustes avanzados","port":"Puerto","portRequiredMessage":"Introduce un puerto","portErrorMessage":"Introduce un puerto correcto","connectionType":"Tipo de conexión","regular":"Regular","host":"Anfitrión","hostRequiredMessage":"Introduce un nombre de dominio de host o una dirección IP","userName":"Nombre de usuario","password":"Contraseña","encryptedServer":"-------- Cifrado en el lado del servidor --------","uriRequiredMessage":"Introduce un URI","urlRequiredMessage":"Introduce una URL","uriErrorMessage":"Por favor, introduce un URI correcto","urlErrorMessage":"Introduce una URL correcta","httpRequiredMessage":"Introduce http:// o https://","databaseName":"Nombre de la base de datos","databaseNameRequiredMessage":"Introduce el nombre de la base de datos","useSSL":"Utiliza SSL","userNameRequiredMessage":"Introduce tu nombre","passwordRequiredMessage":"Introduce tu contraseña","authentication":"Autenticación","authenticationType":"Tipo de autenticación","sslCertVerificationType":"Verificación de certificados SSL","sslCertVerificationTypeDefault":"Verificar CA Cert","sslCertVerificationTypeSelf":"Verificar certificado autofirmado","sslCertVerificationTypeDisabled":"Discapacitados","selfSignedCert":"Certificado autofirmado","selfSignedCertRequireMsg":"Introduce tu certificado","enableTurnOffPreparedStatement":"Activar la alternancia de sentencias preparadas para consultas","enableTurnOffPreparedStatementTooltip":"Puedes activar o desactivar las sentencias preparadas en la pestaña Avanzado de la consulta","serviceName":"Nombre del servicio","serviceNameRequiredMessage":"Introduce el nombre de tu servicio","useSID":"Utiliza el SID","connectSuccessfully":"Conexión correcta","saveSuccessfully":"Guardado correctamente","database":"Base de datos","cloudHosting":"Lowcoder alojado en la nube no puede acceder a los servicios locales utilizando 127.0.0.1 o localhost. Intenta conectarte a fuentes de datos de la red pública o utiliza un proxy inverso para los servicios privados.","notCloudHosting":"Para el despliegue alojado en Docker, Lowcoder utiliza redes puente, por lo que 127.0.0.1 y localhost no son válidos para las direcciones de host. Para acceder a las fuentes de datos de la máquina local, consulta","howToAccessHostDocLink":"Cómo acceder a la API/DB del host","returnList":"Devuelve","chooseDatasourceType":"Elige el tipo de fuente de datos","viewDocuments":"Ver documentos","testConnection":"Conexión de prueba","save":"Guarda","whitelist":"Lista de permisos","whitelistTooltip":"Añade las direcciones IP de Lowcoder\\ a tu lista de fuentes de datos permitidas según sea necesario.","address":"Dirección: ","nameExists":"El nombre {nombre} ya existe","jsQueryDocLink":"Acerca de la consulta JavaScript","dynamicDataSourceConfigLoadingText":"Cargando configuración extra de fuente de datos...","dynamicDataSourceConfigErrText":"No se ha podido cargar la configuración adicional de la fuente de datos.","retry":"Reintentar"},"sqlQuery":{"keyValuePairs":"Pares clave-valor","object":"Objeto","allowMultiModify":"Permitir la modificación de varias filas","allowMultiModifyTooltip":"Si se selecciona, se operan todas las filas que cumplan las condiciones. En caso contrario, sólo se operará sobre la primera fila que cumpla las condiciones.","array":"Matriz","insertList":"Insertar lista","insertListTooltip":"Valores insertados cuando no existen","filterRule":"Regla de filtrado","updateList":"Actualizar lista","updateListTooltip":"Los valores actualizados tal como existen pueden ser anulados por los mismos valores de la lista de inserción","sqlMode":"Modo SQL","guiMode":"Modo GUI","operation":"Operación","insert":"Inserta","upsert":"Insertar, pero Actualizar si hay conflicto","update":"Actualiza","delete":"Borra","bulkInsert":"Inserción a granel","bulkUpdate":"Actualización masiva","table":"Tabla","primaryKeyColumn":"Columna de clave primaria"},"EsQuery":{"rawCommand":"Comando en bruto","queryTutorialButton":"Ver documentos de la API de Elasticsearch","request":"Solicita"},"googleSheets":{"rowIndex":"Índice de filas","spreadsheetId":"ID de la hoja de cálculo","sheetName":"Nombre de la hoja","readData":"Leer datos","appendData":"Añadir fila","updateData":"Actualizar Fila","deleteData":"Borrar fila","clearData":"Fila clara","serviceAccountRequireMessage":"Introduce tu cuenta de servicio","ASC":"ASC","DESC":"DESC","sort":"Clasificar","sortPlaceholder":"Nombre"},"queryLibrary":{"export":"Exportar a JSON","noInput":"La consulta actual no tiene entrada","inputName":"Nombre","inputDesc":"Descripción","emptyInputs":"Sin entradas","clickToAdd":"Añade","chooseQuery":"Elige Consulta","viewQuery":"Ver consulta","chooseVersion":"Elegir versión","latest":"Lo último en","publish":"Publica","historyVersion":"Historia Versión","deleteQueryLabel":"Borrar consulta","deleteQueryContent":"No se puede recuperar la consulta después de borrarla. ¿Borrar la consulta?","run":"Ejecuta","readOnly":"Sólo lectura","exit":"Salir","recoverAppSnapshotContent":"Restaurar la consulta actual a la versión {versión}","searchPlaceholder":"Consulta de búsqueda","allQuery":"Todas las consultas","deleteQueryTitle":"Borrar consulta","unnamed":"Sin nombre","publishNewVersion":"Publicar nueva versión","publishSuccess":"Publicado con éxito","version":"Versión","desc":"Descripción"},"snowflake":{"accountIdentifierTooltip":"Consulta ","extParamsTooltip":"Configurar parámetros de conexión adicionales"},"lowcoderQuery":{"queryOrgUsers":"Consultar usuarios del espacio de trabajo"},"redisQuery":{"rawCommand":"Comando en bruto","command":"Mando","queryTutorial":"Ver documentos sobre los comandos de Redis"},"httpQuery":{"bodyFormDataTooltip":"Si se selecciona {tipo}, el formato del valor debe ser {objeto}. Ejemplo: {ejemplo}","text":"Texto","file":"Archivo","extraBodyTooltip":"Los valores clave del cuerpo extra se añadirán al cuerpo con tipos de datos JSON o de formulario","forwardCookies":"Adelante Cookies","forwardAllCookies":"Reenviar todas las cookies"},"smtpQuery":{"attachment":"Adjunto","attachmentTooltip":"Puede utilizarse con el componente de carga de archivos, los datos deben convertirse a: ","MIMETypeUrl":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types","sender":"Remitente","recipient":"Destinatario","carbonCopy":"Copia al carbón","blindCarbonCopy":"Copia al carbón ciega","subject":"Asunto","content":"Contenido","contentTooltip":"Admite la introducción de texto o HTML"},"uiCompCategory":{"dashboards":"Cuadros de mando e informes","layout":"Diseño y navegación","forms":"Recogida de datos y formularios","collaboration":"Reunión y colaboración","projectmanagement":"Gestión de proyectos","scheduling":"Calendario y programación","documents":"Gestión de documentos y archivos","itemHandling":"Tramitación de artículos y firmas","multimedia":"Multimedia y animación","integration":"Integración y ampliación"},"uiComp":{"autoCompleteCompName":"Auto Completo","autoCompleteCompDesc":"Un campo de entrada que proporciona sugerencias mientras escribes, mejorando la experiencia del usuario y la precisión.","autoCompleteCompKeywords":"sugerencias, autocompletar, escribir, entrada","inputCompName":"Entrada","inputCompDesc":"Un campo de entrada de texto básico que permite a los usuarios introducir y editar texto.","inputCompKeywords":"texto, entrada, campo, editar","textAreaCompName":"Área de texto","textAreaCompDesc":"Una entrada de texto de varias líneas para contenidos de forma más larga, como comentarios o descripciones.","textAreaCompKeywords":"multilínea, área de texto, entrada, texto","passwordCompName":"Contraseña","passwordCompDesc":"Un campo seguro para introducir la contraseña, enmascarando los caracteres para mayor privacidad.","passwordCompKeywords":"contraseña, seguridad, entrada, oculto","richTextEditorCompName":"Editor de texto enriquecido","richTextEditorCompDesc":"Un editor de texto avanzado que admite numerosas opciones de formato, como negrita, cursiva y listas.","richTextEditorCompKeywords":"editor, texto, formato, contenido enriquecido","numberInputCompName":"Número Entrada","numberInputCompDesc":"Un campo específico para la introducción de datos numéricos, con controles para aumentar y disminuir los valores.","numberInputCompKeywords":"número, entrada, incremento, decremento","sliderCompName":"Deslizador","sliderCompDesc":"Componente gráfico deslizante para seleccionar un valor o rango dentro de una escala definida.","sliderCompKeywords":"deslizador, rango, entrada, gráfico","rangeSliderCompName":"Corredera de alcance","rangeSliderCompDesc":"Un deslizador de doble asa para seleccionar un rango de valores, útil para filtrar o establecer límites.","rangeSliderCompKeywords":"gama, deslizador, doble asa, filtro","ratingCompName":"Clasificación","ratingCompDesc":"Un componente para capturar las valoraciones de los usuarios, mostradas como estrellas.","ratingCompKeywords":"valoración, estrellas, opiniones, aportaciones","switchCompName":"Interruptor","switchCompDesc":"Un interruptor basculante para decisiones del tipo encendido/apagado o sí/no.","switchCompKeywords":"conmutador, interruptor, encendido/apagado, control","selectCompName":"Selecciona","selectCompDesc":"Un menú desplegable para seleccionar entre una lista de opciones.","selectCompKeywords":"desplegable, seleccionar, opciones, menú","multiSelectCompName":"Multiselector","multiSelectCompDesc":"Un componente que permite seleccionar varios elementos de una lista desplegable.","multiSelectCompKeywords":"multiselección, múltiple, desplegable, opciones","cascaderCompName":"Cascader","cascaderCompDesc":"Un desplegable de varios niveles para la selección jerárquica de datos, como la selección de una ubicación.","cascaderCompKeywords":"cascada, jerárquico, desplegable, niveles","checkboxCompName":"Casilla de verificación","checkboxCompDesc":"Una casilla de verificación estándar para opciones que se pueden seleccionar o deseleccionar.","checkboxCompKeywords":"casilla, opciones, seleccionar, alternar","radioCompName":"Radio","radioCompDesc":"Botones de radio para seleccionar una opción de un conjunto, donde sólo se permite una elección.","radioCompKeywords":"radio, botones, seleccionar, elección única","segmentedControlCompName":"Control segmentado","segmentedControlCompDesc":"Un control con opciones segmentadas para alternar rápidamente entre varias opciones.","segmentedControlCompKeywords":"segmentado, control, conmutar, opciones","fileUploadCompName":"Carga de archivos","fileUploadCompDesc":"Un componente para subir archivos, con soporte para arrastrar y soltar y selección de archivos.","fileUploadCompKeywords":"archivo, subir, arrastrar y soltar, seleccionar","dateCompName":"Fecha","dateCompDesc":"Un componente selector de fechas para seleccionar fechas de una interfaz de calendario.","dateCompKeywords":"fecha, selector, calendario, seleccionar","dateRangeCompName":"Rango de fechas","dateRangeCompDesc":"Un componente para seleccionar un intervalo de fechas, útil para sistemas de reservas o filtros.","dateRangeCompKeywords":"daterange, seleccionar, reservar, filtrar","timeCompName":"Tiempo","timeCompDesc":"Un componente de selección de hora para elegir horas concretas del día.","timeCompKeywords":"hora, selector, seleccionar, reloj","timeRangeCompName":"Rango temporal","timeRangeCompDesc":"Componente para seleccionar un intervalo de tiempo, utilizado a menudo en aplicaciones de programación.","timeRangeCompKeywords":"timerange, seleccionar, programación, duración","buttonCompName":"Botón Formulario","buttonCompDesc":"Un componente de botón versátil para enviar formularios, desencadenar acciones o navegar.","buttonCompKeywords":"botón, enviar, acción, navegar","linkCompName":"Enlace","linkCompDesc":"Un componente de visualización de hipervínculos para navegar o enlazar con recursos externos.","linkCompKeywords":"enlace, hipervínculo, navegación, externo","scannerCompName":"Escáner","scannerCompDesc":"Un componente para escanear códigos de barras, códigos QR y otros datos similares.","scannerCompKeywords":"escáner, código de barras, código QR, escanear","dropdownCompName":"Desplegable","dropdownCompDesc":"Un menú desplegable para mostrar de forma compacta una lista de opciones.","dropdownCompKeywords":"desplegable, menú, opciones, seleccionar","toggleButtonCompName":"Botón Alternar","toggleButtonCompDesc":"Un botón que puede alternar entre dos estados u opciones.","toggleButtonCompKeywords":"conmutar, botón, interruptor, estado","textCompName":"Visualización de texto","textCompDesc":"Un componente sencillo para mostrar contenido de texto estático o dinámico con formato Markdown incluido.","textCompKeywords":"texto, visualización, estático, dinámico","tableCompName":"Tabla","tableCompDesc":"Un componente de tabla enriquecido para mostrar datos en formato de tabla estructurada, con opciones de ordenación y filtrado, visualización de Datos en árbol y Filas extensibles.","tableCompKeywords":"tabla, datos, ordenar, filtrar","imageCompName":"Imagen","imageCompDesc":"Un componente para mostrar imágenes, compatible con varios formatos basados en datos URI o Base64.","imageCompKeywords":"imagen, visualización, medios, Base64","progressCompName":"Progreso","progressCompDesc":"Un indicador visual de progreso, utilizado normalmente para mostrar el estado de finalización de una tarea.","progressCompKeywords":"progreso, indicador, estado, tarea","progressCircleCompName":"Círculo de Progreso","progressCircleCompDesc":"Un indicador de progreso circular, utilizado a menudo para estados de carga o tareas con límite de tiempo.","progressCircleCompKeywords":"círculo, progreso, indicador, carga","fileViewerCompName":"Visor de archivos","fileViewerCompDesc":"Un componente para visualizar varios tipos de archivos, incluidos documentos e imágenes.","fileViewerCompKeywords":"archivo, visor, documento, imagen","dividerCompName":"Divisor","dividerCompDesc":"Componente divisor visual, utilizado para separar contenidos o secciones en un diseño.","dividerCompKeywords":"divisor, separador, disposición, diseño","qrCodeCompName":"Código QR","qrCodeCompDesc":"Un componente para mostrar códigos QR, útil para escanearlos rápidamente y transferir información.","qrCodeCompKeywords":"Código QR, escaneo, código de barras, información","formCompName":"Formulario","formCompDesc":"Un componente contenedor para construir formularios estructurados con varios tipos de entrada.","formCompKeywords":"formulario, entrada, contenedor, estructura","jsonSchemaFormCompName":"Formulario de esquema JSON","jsonSchemaFormCompDesc":"Un componente de formulario dinámico generado a partir de un esquema JSON.","jsonSchemaFormCompKeywords":"JSON, esquema, formulario, dinámico","containerCompName":"Contenedor","containerCompDesc":"Un contenedor de uso general para el diseño y la organización de los elementos de la interfaz de usuario.","containerCompKeywords":"contenedor, diseño, organización, IU","collapsibleContainerCompName":"Contenedor plegable","collapsibleContainerCompDesc":"Un contenedor que puede expandirse o colapsarse, ideal para gestionar la visibilidad del contenido.","collapsibleContainerCompKeywords":"plegable, contenedor, expandir, colapsar","tabbedContainerCompName":"Contenedor con pestañas","tabbedContainerCompDesc":"Un contenedor con navegación por pestañas para organizar el contenido en paneles separados.","tabbedContainerCompKeywords":"pestañas, contenedor, navegación, paneles","modalCompName":"Modal","modalCompDesc":"Un componente modal emergente para mostrar contenido, alertas o formularios en foco.","modalCompKeywords":"modal, popup, alerta, formulario","listViewCompName":"Ver lista","listViewCompDesc":"Un componente para mostrar una lista de elementos o datos, en cuyo interior puedes colocar otros componentes. Como un repetidor.","listViewCompKeywords":"lista, vista, visualización, repetidor","gridCompName":"Rejilla","gridCompDesc":"Un componente de cuadrícula flexible para crear diseños estructurados con filas y columnas como extensión del componente Vista Lista.","gridCompKeywords":"cuadrícula, diseño, filas, columnas","navigationCompName":"Navegación","navigationCompDesc":"Un componente de navegación para crear menús, migas de pan o pestañas para la navegación por el sitio.","navigationCompKeywords":"navegación, menú, migas de pan, pestañas","iframeCompName":"IFrame","iframeCompDesc":"Un componente de marco en línea para incrustar páginas web externas y aplicaciones o contenidos dentro de la aplicación.","iframeCompKeywords":"iframe, incrustar, página web, contenido","customCompName":"Componente personalizado","customCompDesc":"Un componente flexible y programable para crear elementos de interfaz de usuario únicos, definidos por el usuario y adaptados a tus necesidades específicas.","customCompKeywords":"personalizado, definido por el usuario, flexible, programable","moduleCompName":"Módulo","moduleCompDesc":"Utiliza Módulos para crear Micro-Apps diseñadas para encapsular funcionalidades o características específicas. Los módulos pueden incrustarse y reutilizarse en todas las aplicaciones.","moduleCompKeywords":"módulo, micro-app, funcionalidad, reutilizable","jsonExplorerCompName":"Explorador JSON","jsonExplorerCompDesc":"Un componente para explorar visualmente e interactuar con estructuras de datos JSON.","jsonExplorerCompKeywords":"JSON, explorador, datos, estructura","jsonEditorCompName":"Editor JSON","jsonEditorCompDesc":"Un componente editor para crear y modificar datos JSON con validación y resaltado de sintaxis.","jsonEditorCompKeywords":"JSON, editor, modificar, validar","treeCompName":"Árbol","treeCompDesc":"Un componente de estructura de árbol para mostrar datos jerárquicos, como sistemas de archivos u organigramas.","treeCompKeywords":"árbol, jerárquico, datos, estructura","treeSelectCompName":"Seleccionar árbol","treeSelectCompDesc":"Un componente de selección que presenta las opciones en formato de árbol jerárquico, permitiendo selecciones organizadas y anidadas.","treeSelectCompKeywords":"árbol, seleccionar, jerárquico, anidado","audioCompName":"Audio","audioCompDesc":"Un componente para incrustar contenido de audio, con controles para la reproducción y el ajuste del volumen.","audioCompKeywords":"audio, reproducción, sonido, música","videoCompName":"Vídeo","videoCompDesc":"Un componente multimedia para incrustar y reproducir contenidos de vídeo, compatible con varios formatos.","videoCompKeywords":"vídeo, multimedia, reproducción, incrustar","drawerCompName":"Cajón","drawerCompDesc":"Componente de un panel deslizante que puede utilizarse para navegación adicional o visualización de contenidos, y que suele emerger del borde de la pantalla.","drawerCompKeywords":"cajón, corredera, panel, navegación","chartCompName":"Gráfico","chartCompDesc":"Un componente versátil para visualizar datos mediante diversos tipos de tablas y gráficos.","chartCompKeywords":"tabla, gráfico, datos, visualización","carouselCompName":"Carrusel de imágenes","carouselCompDesc":"Un componente de carrusel giratorio para mostrar imágenes, banners o diapositivas de contenido.","carouselCompKeywords":"carrusel, imágenes, rotación, escaparate","imageEditorCompName":"Editor de imágenes","imageEditorCompDesc":"Un componente interactivo para editar y manipular imágenes, que ofrece diversas herramientas y filtros.","imageEditorCompKeywords":"imagen, editor, manipular, herramientas","mermaidCompName":"Cartas de sirenas","mermaidCompDesc":"Un componente para representar diagramas y organigramas complejos basados en la sintaxis Mermaid.","mermaidCompKeywords":"sirena, gráficos, diagramas, organigramas","calendarCompName":"Calendario","calendarCompDesc":"Un componente de calendario para mostrar fechas y eventos, con opciones de vistas de mes, semana o día.","calendarCompKeywords":"calendario, fechas, eventos, programación","signatureCompName":"Firma","signatureCompDesc":"Un componente para capturar firmas digitales, útil para procesos de aprobación y verificación.","signatureCompKeywords":"firma, digital, aprobación, verificación","jsonLottieCompName":"Animación Lottie","jsonLottieCompDesc":"Un componente para mostrar animaciones Lottie, que proporciona animaciones ligeras y escalables basadas en datos JSON.","jsonLottieCompKeywords":"lottie, animación, JSON, escalable","timelineCompName":"Cronología","timelineCompDesc":"Componente para mostrar acontecimientos o acciones en orden cronológico, representados visualmente a lo largo de una línea de tiempo lineal.","timelineCompKeywords":"cronología, acontecimientos, cronológico, historia","commentCompName":"Comentario","commentCompDesc":"Un componente para añadir y mostrar comentarios de los usuarios, que admite respuestas en hilos y la interacción de los usuarios.","commentCompKeywords":"comentario, debate, interacción con el usuario, respuesta","mentionCompName":"Menciona","mentionCompDesc":"Componente que permite mencionar usuarios o etiquetas dentro de un contenido de texto, utilizado normalmente en redes sociales o plataformas colaborativas.","mentionCompKeywords":"mencionar, etiquetar, usuario, redes sociales","responsiveLayoutCompName":"Diseño adaptable","responsiveLayoutCompDesc":"Un componente de diseño diseñado para adaptarse y responder a diferentes tamaños de pantalla y dispositivos, garantizando una experiencia de usuario coherente.","responsiveLayoutCompKeywords":"responsive, diseño, adaptar, tamaño pantalla"},"comp":{"menuViewDocs":"Ver documentación","menuViewPlayground":"Ver zona de juegos interactiva","menuUpgradeToLatest":"Actualizar a la última versión","nameNotEmpty":"No puede estar vacío","nameRegex":"Debe empezar por una letra y contener sólo letras, cifras y guiones bajos (_)","nameJSKeyword":"No puede ser una palabra clave JavaScript","nameGlobalVariable":"No puede ser un nombre de variable global","nameExists":"El nombre {nombre} ya existe","getLatestVersionMetaError":"No se ha podido obtener la última versión, inténtalo más tarde.","needNotUpgrade":"La versión actual ya es la última.","compNotFoundInLatestVersion":"Componente actual no encontrado en la última versión.","upgradeSuccess":"Actualizado correctamente a la última versión.","searchProp":"Busca en"},"jsonSchemaForm":{"retry":"Reintentar","resetAfterSubmit":"Restablecer después de enviar correctamente el formulario","jsonSchema":"Esquema JSON","uiSchema":"Esquema de IU","schemaTooltip":"Consulta","defaultData":"Datos de formulario precargados","dataDesc":"Datos del formulario actual","required":"Necesario","maximum":"El valor máximo es {valor}","minimum":"El valor mínimo es {valor}","exclusiveMaximum":"Debe ser inferior a {valor}","exclusiveMinimum":"Debe ser mayor que {valor}","multipleOf":"Debe ser múltiplo de {valor}","minLength":"Al menos {valor} Caracteres","maxLength":"Como máximo {valor} Caracteres","pattern":"Debe coincidir con el patrón {valor}","format":"Debe coincidir con el formato {valor}"},"select":{"inputValueDesc":"Valor de búsqueda de entrada"},"customComp":{"text":"Es un buen día.","triggerQuery":"Consulta desencadenante","updateData":"Actualizar datos","updateText":"¡También estoy de buen humor para desarrollar ahora mi propio componente personalizado con Lowcoder!","sdkGlobalVarName":"Lowcoder","data":"Datos que quieres pasar al Componente personalizado","code":"Código de tu componente personalizado"},"tree":{"selectType":"Selecciona el tipo","noSelect":"No Seleccionar","singleSelect":"Selección única","multiSelect":"Selección múltiple","checkbox":"Casilla de verificación","checkedStrategy":"Estrategia comprobada","showAll":"Todos los nodos","showParent":"Sólo nodos padre","showChild":"Nodos hijos únicos","autoExpandParent":"Auto Expandir Padre","checkStrictly":"Comprobar estrictamente","checkStrictlyTooltip":"Comprueba con precisión el Nodo del Árbol; el Nodo del Árbol padre y los Nodos del Árbol hijos no están asociados","treeData":"Datos del árbol","treeDataDesc":"Datos actuales del árbol","value":"Valores por defecto","valueDesc":"Valores actuales","expanded":"Valores ampliados","expandedDesc":"Valores ampliados actuales","defaultExpandAll":"Por defecto Expandir todos los nodos","showLine":"Mostrar línea","showLeafIcon":"Mostrar icono de hoja","treeDataAsia":"Asia","treeDataChina":"China","treeDataBeijing":"Pekín","treeDataShanghai":"Shanghai","treeDataJapan":"Japón","treeDataEurope":"Europa","treeDataEngland":"Inglaterra","treeDataFrance":"Francia","treeDataGermany":"Alemania","treeDataNorthAmerica":"América del Norte","helpLabel":"Etiqueta de nodo","helpValue":"Valor único del nodo en el árbol","helpChildren":"Niños Nodos","helpDisabled":"Desactiva el Nodo","helpSelectable":"Si el Nodo es Seleccionable (Tipo de Selección Simple/Múltiple)","helpCheckable":"Si mostrar casilla de verificación (Tipo de casilla de verificación)","helpDisableCheckbox":"Desactiva la casilla de verificación (Tipo de casilla de verificación)"},"moduleContainer":{"eventTest":"Prueba de Evento","methodTest":"Método de ensayo","inputTest":"Prueba de entrada"},"password":{"label":"Contraseña","visibilityToggle":"Conmutar visibilidad"},"richTextEditor":{"toolbar":"Personalizar la barra de herramientas","toolbarDescription":"Puedes personalizar la barra de herramientas. Consulta: https://quilljs.com/docs/modules/toolbar/ para más detalles.","placeholder":"Por favor, introduce...","hideToolbar":"Ocultar barra de herramientas","content":"Contenido","title":"Título","save":"Guarda","link":"Enlace: ","edit":"Edita","remove":"Elimina","defaultValue":"Contenido básico"},"numberInput":{"formatter":"Formato","precision":"Precisión","allowNull":"Permitir valor nulo","thousandsSeparator":"Mostrar separador de miles","controls":"Mostrar botones de aumento/disminución","step":"Paso","standard":"Estándar","percent":"Porcentaje"},"slider":{"step":"Paso","stepTooltip":"El valor debe ser mayor que 0 y divisible por (Máx-Mín)"},"rating":{"max":"Clasificación máxima","allowHalf":"Permitir la mitad de puntos de valoración"},"optionsControl":{"optionList":"Opciones","option":"Opción","optionI":"Opción {i}","viewDocs":"Ver documentos","tip":"Las variables \\'item\\' y \\'i\\' representan el valor y el índice de cada elemento de la matriz de datos"},"radio":{"options":"Opciones","horizontal":"Horizontal","horizontalTooltip":"La Disposición Horizontal Se Enrolla Cuando Se Queda Sin Espacio","vertical":"Vertical","verticalTooltip":"El diseño vertical siempre se mostrará en una sola columna","autoColumns":"Columna Auto","autoColumnsTooltip":"La disposición en autocolumnas reordena automáticamente el orden según lo permita el espacio y se muestra como varias columnas"},"cascader":{"options":"Datos JSON para mostrar selecciones en cascada"},"selectInput":{"valueDesc":"Valor seleccionado actualmente","selectedIndexDesc":"El índice del valor seleccionado actualmente, o -1 si no hay ningún valor seleccionado","selectedLabelDesc":"La etiqueta del valor seleccionado actualmente"},"file":{"typeErrorMsg":"Debe ser un número con una unidad de tamaño de archivo válida, o un número de bytes sin unidad.","fileEmptyErrorMsg":"Carga fallida. El tamaño del archivo está vacío.","fileSizeExceedErrorMsg":"Carga fallida. El tamaño del archivo supera el límite.","minSize":"Tamaño mínimo","minSizeTooltip":"El Tamaño Mínimo de los Archivos Subidos con Unidades de Tamaño de Archivo Opcionales (por ejemplo, \\'5kb\\', \\'10 MB\\'). Si no se proporciona ninguna unidad, el valor se considerará un número de bytes.","maxSize":"Tamaño máximo","maxSizeTooltip":"El tamaño máximo de los archivos subidos con unidades opcionales de tamaño de archivo (por ejemplo, \\'5kb\\', \\'10 MB\\'). Si no se proporciona ninguna unidad, el valor se considerará un número de bytes.","single":"Individual","multiple":"Múltiple","directory":"Directorio","upload":"Navega por","fileType":"Tipos de archivos","reference":"Consulta","fileTypeTooltipUrl":"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers","fileTypeTooltip":"Especificadores únicos de tipo de archivo","uploadType":"Tipo de carga","showUploadList":"Mostrar lista de cargas","maxFiles":"Archivos Max","filesValueDesc":"El contenido del archivo cargado actualmente está codificado en Base64","filesDesc":"Lista de los archivos cargados actualmente. Para más detalles, consulta","clearValueDesc":"Borrar todos los archivos","parseFiles":"Analizar archivos","parsedValueTooltip1":"Si parseFiles es True, los archivos cargados se convertirán en objetos, matrices o cadenas. Se puede acceder a los datos analizados a través de la matriz parsedValue.","parsedValueTooltip2":"Admite archivos Excel, JSON, CSV y de texto. Otros formatos devolverán un valor nulo."},"date":{"format":"Formato","formatTip":"Admite: \\AAAA-MM-DD HH:mm:ss\", \"AAAA-MM-DD\", \"Timestamp\".","reference":"Consulta","showTime":"Hora del espectáculo","start":"Fecha de inicio","end":"Fecha final","year":"Año","quarter":"Cuarto","month":"Mes","week":"Semana","date":"Fecha","clearAllDesc":"Borrar todo","resetAllDesc":"Restablecer todo","placeholder":"Seleccionar fecha","placeholderText":"Marcador de posición","startDate":"Fecha de inicio","endDate":"Fecha final"},"time":{"start":"Hora de inicio","end":"Fin de los tiempos","formatTip":"Soporte: \\'HH:mm:ss\\', \\'Timestamp\\'","format":"Formato","placeholder":"Selecciona Hora","placeholderText":"Marcador de posición","startTime":"Hora de inicio","endTime":"Fin de los tiempos"},"button":{"prefixIcon":"Icono Prefijo","suffixIcon":"Icono Sufijo","icon":"Icono","iconSize":"Tamaño del icono","button":"Botón Formulario","formToSubmit":"Formulario para enviar","default":"Por defecto","submit":"Envía","textDesc":"Texto mostrado actualmente en el botón","loadingDesc":"¿Está el Botón en Estado de Carga? Si es cierto, el botón actual está cargando","formButtonEvent":"Evento"},"link":{"link":"Enlace","textDesc":"Texto mostrado actualmente en el enlace","loadingDesc":"¿Está el Enlace en Estado de Carga? Si es Verdadero, el Enlace Actual Está Cargando"},"scanner":{"text":"Haz clic en Escanear","camera":"Cámara {índice}","changeCamera":"Cambiar cámara","continuous":"Escaneado continuo","uniqueData":"Ignorar datos duplicados","maskClosable":"Pulsa la Máscara para Cerrar","errTip":"Utiliza este componente bajo HTTPS o Localhost"},"dropdown":{"onlyMenu":"Pantalla sólo con etiqueta","textDesc":"Texto mostrado actualmente en el botón"},"textShow":{"text":"### 👋 Hola, {nombre}","valueTooltip":"Markdown admite la mayoría de etiquetas y atributos HTML. iframe, Script y otras etiquetas están desactivadas por motivos de seguridad.","verticalAlignment":"Alineación vertical","horizontalAlignment":"Alineación horizontal","textDesc":"Texto mostrado en el cuadro de texto actual"},"table":{"editable":"Editable","columnNum":"Columnas","viewModeResizable":"Ancho de columna ajustado por el usuario","viewModeResizableTooltip":"Si los usuarios pueden ajustar el ancho de columna.","showFilter":"Botón Mostrar filtro","showRefresh":"Mostrar botón Actualizar","showDownload":"Mostrar botón de descarga","columnSetting":"Botón Mostrar ajuste de columna","searchText":"Buscar texto","searchTextTooltip":"Buscar y Filtrar los Datos Presentados en la Tabla","showQuickJumper":"Mostrar saltador rápido","hideOnSinglePage":"Ocultar en una sola página","showSizeChanger":"Mostrar botón de cambio de tamaño","pageSizeOptions":"Opciones de tamaño de página","pageSize":"Tamaño de página","total":"Recuento total de filas","totalTooltip":"El valor por defecto es el número de elementos de datos actuales, que se pueden obtener de la consulta, por ejemplo: \\'{{query1.data[0].count}}\\'","filter":"Filtrar","filterRule":"Regla de filtrado","chooseColumnName":"Elegir columna","chooseCondition":"Elegir condición","clear":"Claro","columnShows":"Columnas","selectAll":"Seleccionar todo","and":"Y","or":"O","contains":"Contiene","notContain":"No contiene","equals":"Es igual a","isNotEqual":"No es igual","isEmpty":"Está vacío","isNotEmpty":"No está vacío","greater":"Mayor que","greaterThanOrEquals":"Mayor o igual que","lessThan":"Menos de","lessThanOrEquals":"Menor o igual que","action":"Acción","columnValue":"Valor de columna","columnValueTooltip":"\\'{{currentCell}}\\': Datos celulares actuales{{currentRow}}\\': Datos de la fila actual{{currentIndex}}\\': Índice de Datos Actuales (Empezando por 0)\\n Ejemplo: \\'{{CeldaActual * 5}}' Mostrar 5 Veces el Valor Original de los Datos.","imageSrc":"Fuente de la imagen","imageSize":"Tamaño de la imagen","columnTitle":"Título","sortable":"Clasificable","align":"Alineación","fixedColumn":"Columna fija","autoWidth":"Ancho automático","customColumn":"Columna personalizada","auto":"Auto","fixed":"Fijo","columnType":"Tipo de columna","float":"Flotador","prefix":"Prefijo","suffix":"Sufijo","text":"Texto","number":"Número","link":"Enlace","links":"Enlaces","tag":"Etiqueta","date":"Fecha","dateTime":"Fecha Hora","badgeStatus":"Estado","button":"Botón","image":"Imagen","boolean":"Booleano","rating":"Clasificación","progress":"Progreso","option":"Operación","optionList":"Lista de operaciones","option1":"Operación 1","status":"Estado","statusTooltip":"Valores opcionales: Correcto, Error, Predeterminado, Advertencia, Procesando","primaryButton":"Primaria","defaultButton":"Por defecto","type":"Tipo","tableSize":"Tamaño de la tabla","hideHeader":"Ocultar cabecera de tabla","fixedHeader":"Cabecera de tabla fija","fixedHeaderTooltip":"La cabecera será fija para la tabla desplazable verticalmente","fixedToolbar":"Barra de herramientas fija","fixedToolbarTooltip":"La barra de herramientas se fijará para la tabla desplazable verticalmente en función de la posición","hideBordered":"Ocultar borde de columna","deleteColumn":"Borrar columna","confirmDeleteColumn":"Confirmar Borrar columna: ","small":"S","middle":"M","large":"L","refreshButtonTooltip":"Los Datos Actuales Cambian, Pulsa para Regenerar la Columna.","changeSetDesc":"Un Objeto que Representa Cambios en una Tabla Editable, Sólo Contiene la Celda Cambiada. Las filas van primero y las columnas después.","selectedRowDesc":"Proporciona Datos de la Fila Seleccionada Actualmente, Indicando la Fila que Desencadena un Suceso de Clic Si el Usuario Pulsa un Botón/Link en la Fila","selectedRowsDesc":"Útil en el modo de selección múltiple, igual que SelectedRow","pageNoDesc":"Página de visualización actual, empezando por 1","pageSizeDesc":"Cuántas filas por página","sortColumnDesc":"El nombre de la columna ordenada actualmente seleccionada","sortDesc":"Si la fila actual está en orden descendente","pageOffsetDesc":"El inicio actual de la paginación, utilizado para paginar para obtener datos. Ejemplo: Select * from Usuarios Limit \\'{{table1.pageSize}}\\Desplazamiento{{table1.pageOffset}}\\'","displayDataDesc":"Datos mostrados en la tabla actual","selectedIndexDesc":"Índice seleccionado en Mostrar datos","filterDesc":"Parámetros de filtrado de tablas","dataDesc":"Los datos JSON de la tabla","saveChanges":"Guardar cambios","cancelChanges":"Cancelar cambios","rowSelectChange":"Cambio de selección de fila","rowClick":"Fila Clic","rowExpand":"Fila Ampliar","filterChange":"Cambio de filtro","sortChange":"Ordenar Cambio","pageChange":"Cambio de página","refresh":"Actualiza","rowColor":"Color de fila condicional","rowColorDesc":"Establece Condicionalmente el Color de la Fila en Función de las Variables Opcionales: FilaActual, ÍndiceOriginalActual, ÍndiceActual, TítuloDeColumna. Por ejemplo \\'{{ filaactual.id > 3 ? \"verde%r@\\\" : \"rojo%r@\\\" }}\\'","cellColor":"Color de celda condicional","cellColorDesc":"Establece condicionalmente el color de la celda en función del valor de la celda utilizando CeldaActual. Por ejemplo \\'{{ celdaactual == 3 ? \"verde%r@\\\" : \"rojo%r@\\\" }}\\'","saveChangesNotBind":"No se ha configurado ningún controlador de eventos para guardar los cambios. Por favor, vincula al menos un controlador de eventos antes de hacer clic.","dynamicColumn":"Utilizar la configuración dinámica de columnas","dynamicColumnConfig":"Ajuste de columna","dynamicColumnConfigDesc":"Configuración Dinámica de Columnas. Acepta una Matriz de Nombres de Columna. Todas las Columnas son Visibles por Defecto. Ejemplo: [%r@\\\"id%r@\\\", %r@\\\"name%r@\\\"]","position":"Posición","showDataLoadSpinner":"Mostrar la rueda giratoria durante la carga de datos","showValue":"Mostrar valor","expandable":"Ampliable","configExpandedView":"Configurar vista ampliada","toUpdateRowsDesc":"Una matriz de objetos para filas a actualizar en tablas editables.","empty":"Vacío","falseValues":"Texto cuando es falso","allColumn":"Todos","visibleColumn":"Visible","emptyColumns":"Actualmente no hay columnas visibles"},"image":{"src":"Fuente de la imagen","srcDesc":"La fuente de la imagen. Puede ser una URL, una ruta o una cadena Base64. Por ejemplo: data:image/png;base64, AAA... CCC","supportPreview":"Soporte Haz clic en Vista previa (zoom)","supportPreviewTip":"Efectivo cuando la fuente de la imagen es válida"},"progress":{"value":"Valor","valueTooltip":"El Porcentaje Completo como valor entre 0 y 100","showInfo":"Mostrar valor","valueDesc":"Valor de progreso actual, de 0 a 100","showInfoDesc":"Si mostrar el valor de progreso actual"},"fileViewer":{"invalidURL":"Introduce una URL válida o una cadena Base64","src":"URI del archivo","srcTooltip":"Previsualiza el contenido del enlace proporcionado incrustando HTML, también se pueden admitir datos codificados en base64, por ejemplo: data:application/pdf; base64,AAA... CCC","srcDesc":"La URI del archivo"},"divider":{"title":"Título","align":"Alineación","dashed":"Guiones","dashedDesc":"Si utilizar línea discontinua","titleDesc":"Título del divisor","alignDesc":"Alineación del título del divisor"},"QRCode":{"value":"Valor del contenido del código QR","valueTooltip":"El valor contiene un máximo de 2953 caracteres. El valor del código QR puede codificar varios tipos de datos, como mensajes de texto, URL, datos de contacto (VCard/meCard), credenciales de inicio de sesión Wi-Fi, direcciones de correo electrónico, números de teléfono, mensajes SMS, coordenadas de geolocalización, detalles de eventos del calendario, información de pago, direcciones de criptomonedas y enlaces de descarga de aplicaciones.","valueDesc":"El valor del contenido del código QR","level":"Nivel de tolerancia a fallos","levelTooltip":"Se refiere a la capacidad del código QR para ser escaneado aunque parte de él esté bloqueada. Cuanto más alto es el nivel, más complejo es el código.","includeMargin":"Mostrar margen","image":"Mostrar imagen en el centro","L":"L (Bajo)","M":"M (Medio)","Q":"Q (Cuartil)","H":"H (Alto)","maxLength":"El contenido es demasiado largo. Ajusta la longitud a menos de 2953 caracteres"},"jsonExplorer":{"indent":"Sangría de cada nivel","expandToggle":"Expandir árbol JSON","theme":"Tema del color","valueDesc":"Datos JSON actuales","default":"Por defecto","defaultDark":"Por defecto Oscuro","neutralLight":"Luz neutra","neutralDark":"Neutro Oscuro","azure":"Azure","darkBlue":"Azul oscuro"},"audio":{"src":"URI de la fuente de audio o cadena Base64","defaultSrcUrl":"https://cdn.pixabay.com/audio/2023/07/06/audio_e12e5bea9d.mp3","autoPlay":"Reproducción automática","loop":"Bucle","srcDesc":"URI de audio actual o cadena Base64 como data:audio/mpeg;base64,AAA... CCC","play":"Juega a","playDesc":"Se activa cuando se reproduce audio","pause":"Pausa","pauseDesc":"Se activa cuando se pausa el audio","ended":"Finalizado","endedDesc":"Se activa cuando el audio termina de reproducirse"},"video":{"src":"URI de la fuente de vídeo o cadena Base64","defaultSrcUrl":"https://www.youtube.com/watch?v=pRpeEdMmmQ0","poster":"URL del póster","defaultPosterUrl":"","autoPlay":"Reproducción automática","loop":"Bucle","controls":"Ocultar controles","volume":"Volumen","playbackRate":"Velocidad de reproducción","posterTooltip":"El valor por defecto es el primer fotograma del vídeo","autoPlayTooltip":"Después de cargar el vídeo, se reproducirá automáticamente. Si cambias este valor de Verdadero a Falso, el vídeo se pausará. (Si se establece un Póster, se reproducirá mediante el Botón de Póster)","controlsTooltip":"Ocultar controles de reproducción de vídeo. Puede no ser totalmente compatible con todas las fuentes de vídeo.","volumeTooltip":"Ajustar el Volumen del Reproductor, Entre 0 y 1","playbackRateTooltip":"Ajustar la velocidad del reproductor, entre 1 y 2","srcDesc":"URI de audio actual o cadena Base64 como data:video/mp4;base64, AAA... CCC","play":"Juega a","playDesc":"Se activa cuando se reproduce el vídeo","pause":"Pausa","pauseDesc":"Se activa al pausar el vídeo","load":"Carga","loadDesc":"Se activa cuando el recurso de vídeo ha terminado de cargarse","ended":"Finalizado","endedDesc":"Se activa cuando el vídeo termina de reproducirse","currentTimeStamp":"La posición actual de reproducción del vídeo en segundos","duration":"La duración total del vídeo en segundos"},"media":{"playDesc":"Inicia la reproducción del medio.","pauseDesc":"Pausa la reproducción multimedia.","loadDesc":"Restablece el Medio al Principio y Reinicia Seleccionando el Recurso Multimedia.","seekTo":"Buscar hasta el número de segundos dado, o fracción si la cantidad está entre 0 y 1","seekToAmount":"Número de segundos, o fracción si está entre 0 y 1","showPreview":"Avance del espectáculo"},"rangeSlider":{"start":"Valor inicial","end":"Valor final","step":"Tamaño del paso","stepTooltip":"Granularidad del deslizador, el valor debe ser mayor que 0 y divisible por (Max-Min)"},"iconControl":{"selectIcon":"Selecciona un icono","insertIcon":"Insertar un icono","insertImage":"Insertar una imagen o "},"millisecondsControl":{"timeoutTypeError":"Por favor, introduce el periodo de tiempo de espera correcto en ms, la entrada actual es: {valor}","timeoutLessThanMinError":"La entrada debe ser mayor que {izquierda}, la entrada actual es: {valor}"},"selectionControl":{"single":"Individual","multiple":"Múltiple","close":"Cerrar","mode":"Seleccionar modo"},"container":{"title":"Título del contenedor mostrado"},"drawer":{"placement":"Colocación de los cajones","size":"Talla","top":"Arriba","right":"A la derecha","bottom":"Fondo","left":"Izquierda","widthTooltip":"Píxel o Porcentaje, por ejemplo 520, 60%.","heightTooltip":"Píxel, por ejemplo 378","openDrawerDesc":"Cajón abierto","closeDrawerDesc":"Cerrar cajón","width":"Ancho del cajón","height":"Altura del cajón"},"meeting":{"logLevel":"Agora SDK Nivel de registro","placement":"Colocación del cajón de reunión","meeting":"Ajustes de la reunión","cameraView":"Vista de cámara","cameraViewDesc":"Vista de cámara del usuario local (anfitrión)","screenShared":"Pantalla compartida","screenSharedDesc":"Pantalla compartida por el usuario local (anfitrión)","audioUnmuted":"Audio sin silenciar","audioMuted":"Audio silenciado","videoClicked":"Vídeo pulsado","videoOff":"Vídeo apagado","videoOn":"Vídeo","size":"Talla","top":"Arriba","host":"Anfitrión de la Sala de Reuniones. Tendrías que gestionar el anfitrión como una Aplicación Lógica propia","participants":"Participantes de la Sala de Reuniones","shareScreen":"Pantalla compartida por el usuario local","appid":"ID de la aplicación Ágora","meetingName":"Nombre de la reunión","localUserID":"ID de usuario del host","userName":"Nombre de usuario del host","rtmToken":"Ficha Agora RTM","rtcToken":"Ficha Agora RTC","noVideo":"Sin vídeo","profileImageUrl":"URL de la imagen del perfil","right":"A la derecha","bottom":"Fondo","videoId":"ID del flujo de vídeo","audioStatus":"Estado del audio","left":"Izquierda","widthTooltip":"Píxel o Porcentaje, por ejemplo 520, 60%.","heightTooltip":"Píxel, por ejemplo 378","openDrawerDesc":"Cajón abierto","closeDrawerDesc":"Cerrar cajón","width":"Ancho del cajón","height":"Altura del cajón","actionBtnDesc":"Botón de acción","broadCast":"Transmitir mensajes","title":"Título de la reunión","meetingCompName":"Controlador de Reuniones Agora","sharingCompName":"Compartir pantalla Stream","videoCompName":"Flujo de cámara","videoSharingCompName":"Compartir pantalla Stream","meetingControlCompName":"Botón de control","meetingCompDesc":"Componente de la reunión","meetingCompControls":"Control de reuniones","meetingCompKeywords":"Reunión Ágora, Reunión Web, Colaboración","iconSize":"Tamaño del icono","userId":"ID de usuario del host","roomId":"Identificación de la habitación","meetingActive":"Reunión en curso","messages":"Mensajes emitidos"},"settings":{"title":"Ajustes","userGroups":"Grupos de usuarios","organization":"Espacios de trabajo","audit":"Registros de auditoría","theme":"Temas","plugin":"Plugins","advanced":"Avanzado","lab":"Laboratorio","branding":"Marca","oauthProviders":"Proveedores OAuth","appUsage":"Registros de uso de la aplicación","environments":"Entornos","premium":"Premium"},"memberSettings":{"admin":"Admin","adminGroupRoleInfo":"El administrador puede gestionar los miembros y recursos del grupo","adminOrgRoleInfo":"Los administradores son propietarios de todos los recursos y pueden gestionar grupos.","member":"Miembro","memberGroupRoleInfo":"Los miembros pueden ver a los miembros del grupo","memberOrgRoleInfo":"Los miembros sólo pueden utilizar o visitar los recursos a los que tienen acceso.","title":"Miembros","createGroup":"Crear grupo","newGroupPrefix":"Nuevo Grupo ","allMembers":"Todos los miembros","deleteModalTitle":"Eliminar este grupo","deleteModalContent":"No se puede restaurar el grupo eliminado. ¿Estás Seguro de Borrar el Grupo?","addMember":"Añadir miembros","nameColumn":"Nombre de usuario","joinTimeColumn":"Hora de incorporación","actionColumn":"Operación","roleColumn":"Papel","exitGroup":"Grupo de salida","moveOutGroup":"Eliminar del Grupo","inviteUser":"Invitar a miembros","exitOrg":"Deja","exitOrgDesc":"¿Estás seguro de que quieres dejar este espacio de trabajo?","moveOutOrg":"Elimina","moveOutOrgDescSaasMode":"¿Estás seguro de que quieres eliminar al usuario {nombre} de este espacio de trabajo?","moveOutOrgDesc":"¿Estás seguro de que quieres eliminar al usuario {nombre}? Esta acción no se puede recuperar.","devGroupTip":"Los miembros del Grupo de Desarrolladores tienen privilegios para crear aplicaciones y fuentes de datos.","lastAdminQuit":"El último administrador no puede salir.","organizationNotExist":"El espacio de trabajo actual no existe","inviteUserHelp":"Puedes copiar el enlace de invitación para enviarlo al usuario","inviteUserLabel":"Enlace de invitación:","inviteCopyLink":"Copiar enlace","inviteText":"{userName} Te invita a unirte al espacio de trabajo \"{organization}%r@\\\", Haz clic en el enlace para unirte: {inviteLink}","groupName":"Nombre del grupo","createTime":"Crear Tiempo","manageBtn":"Gestiona","userDetail":"Detalle","syncDeleteTip":"Este grupo ha sido eliminado de la Agenda Fuente","syncGroupTip":"Este grupo es un grupo de sincronización de la Agenda y no se puede editar"},"orgSettings":{"newOrg":"Nuevo espacio de trabajo (Organización)","title":"Espacio de trabajo","createOrg":"Crear espacio de trabajo (Organización)","deleteModalTitle":"¿Estás seguro de eliminar este espacio de trabajo?","deleteModalContent":"Estás a punto de Eliminar este Espacio de Trabajo {permanentementeEliminado}. Una vez Eliminado, el Espacio de Trabajo {noSeRestaura}.","permanentlyDelete":"Permanentemente","notRestored":"No se puede restaurar","deleteModalLabel":"Introduce el nombre del espacio de trabajo {nombre} para confirmar la operación:","deleteModalTip":"Introduce el nombre del espacio de trabajo","deleteModalErr":"El nombre del espacio de trabajo es incorrecto","deleteModalBtn":"Borra","editOrgTitle":"Editar información del espacio de trabajo","orgNameLabel":"Nombre del espacio de trabajo:","orgNameCheckMsg":"El nombre del espacio de trabajo no puede estar vacío","orgLogo":"Logotipo del Espacio de Trabajo:","logoModify":"Modificar imagen","inviteSuccessMessage":"Únete con éxito al espacio de trabajo","inviteFailMessage":"Error al unirse al espacio de trabajo","uploadErrorMessage":"Error de carga","orgName":"Nombre del espacio de trabajo"},"freeLimit":"Prueba gratuita","tabbedContainer":{"switchTab":"Pestaña Interruptor","switchTabDesc":"Se activa al cambiar de pestaña","tab":"Fichas","atLeastOneTabError":"El Contenedor de Pestañas Guarda al Menos Una Pestaña","selectedTabKeyDesc":"Pestaña \"Seleccionado actualmente","iconPosition":"Icono Posición"},"formComp":{"containerPlaceholder":"Arrastra componentes desde el panel derecho o","openDialogButton":"Generar un Formulario a partir de una de tus Fuentes de Datos","resetAfterSubmit":"Reiniciar después de enviar correctamente","initialData":"Datos iniciales","disableSubmit":"Desactivar Enviar","success":"Formulario generado correctamente","selectCompType":"Selecciona el tipo de componente","dataSource":"Fuente de datos: ","selectSource":"Seleccionar fuente","table":"Tabla: ","selectTable":"Seleccionar tabla","columnName":"Nombre de la columna","dataType":"Tipo de datos","compType":"Tipo de componente","required":"Necesario","generateForm":"Generar formulario","compSelectionError":"Tipo de columna no configurada","compTypeNameError":"No se ha podido obtener el nombre del tipo de componente","noDataSourceSelected":"No se ha seleccionado ninguna fuente de datos","noTableSelected":"No hay mesa seleccionada","noColumn":"Sin columna","noColumnSelected":"Sin columna seleccionada","noDataSourceFound":"No se ha encontrado ninguna fuente de datos compatible. Crear una nueva fuente de datos","noTableFound":"No se encontraron tablas en esta fuente de datos, por favor selecciona otra fuente de datos","noColumnFound":"No se ha encontrado ninguna columna compatible en esta tabla. Selecciona otra tabla","formTitle":"Título del formulario","name":"Nombre","nameTooltip":"El Nombre del Atributo en los Datos del Formulario, si se deja en blanco, es por defecto el Nombre del Componente","notSupportMethod":"Métodos no admitidos: ","notValidForm":"El formulario no es válido","resetDesc":"Restablecer los datos del formulario al valor por defecto","clearDesc":"Borrar datos del formulario","setDataDesc":"Establecer datos del formulario","valuesLengthError":"Número de parámetro Error","valueTypeError":"Tipo de parámetro Error","dataDesc":"Datos del formulario actual","loadingDesc":"¿Si el formulario está cargando?"},"modalComp":{"close":"Cerrar","closeDesc":"Se activa cuando se cierra el cuadro de diálogo modal","openModalDesc":"Abrir el Cuadro de Diálogo","closeModalDesc":"Cerrar el Cuadro de Diálogo","visibleDesc":"¿Es Visible? Si es Verdadero, Aparecerá el Cuadro de Diálogo Actual","modalHeight":"Altura modal","modalHeightTooltip":"Píxel, Ejemplo: 222","modalWidth":"Anchura modal","modalWidthTooltip":"Número o porcentaje, Ejemplo: 520, 60%"},"listView":{"noOfRows":"Recuento de filas","noOfRowsTooltip":"Número de filas de la lista - Suele establecerse en una variable (por ejemplo, \\'{{query1.data.length}}\\') para presentar los resultados de la consulta","noOfColumns":"Recuento de columnas","itemIndexName":"Elemento de datos Índice Nombre","itemIndexNameDesc":"El nombre de la variable que se refiere al índice del elemento, por defecto como {por defecto}.","itemDataName":"Elemento de datos Nombre del objeto","itemDataNameDesc":"El nombre de la variable que se refiere al objeto de datos del elemento, por defecto como {default}.","itemsDesc":"Exponer datos de componentes en lista","dataDesc":"Los datos JSON utilizados en la lista actual","dataTooltip":"Si sólo pones un Número, Este Campo Se Considerará Como Recuento De Filas, Y Los Datos Se Considerarán Vacíos."},"navigation":{"addText":"Añadir elemento de submenú","logoURL":"Navegación Logo URL","horizontalAlignment":"Alineación horizontal","logoURLDesc":"Puedes mostrar un Logotipo en el lado izquierdo introduciendo un Valor URI o una Cadena Base64 como data:image/png;base64,AAA... CCC","itemsDesc":"Elementos del menú de navegación jerárquica"},"droppadbleMenuItem":{"subMenu":"Submenú {número}"},"navItemComp":{"active":"Activo"},"iframe":{"URLDesc":"La URL de origen del contenido del IFrame. Asegúrate de que la URL es HTTPS o localhost. Asegúrate también de que la URL no está bloqueada por la Política de Seguridad de Contenidos (CSP) del navegador. La cabecera \\'X-Frame-Options\\' no debe tener el valor \\'DENY\\' o \\'SAMEORIGIN\\'.","allowDownload":"Permitir descargas","allowSubmitForm":"Permitir Enviar Formulario","allowMicrophone":"Permitir micrófono","allowCamera":"Permitir cámara","allowPopup":"Permitir ventanas emergentes"},"switchComp":{"defaultValue":"Valor booleano por defecto","open":"En","close":"Fuera de","openDesc":"Se activa al encender el interruptor","closeDesc":"Se activa cuando el interruptor está apagado","valueDesc":"Estado actual del interruptor"},"signature":{"tips":"Texto de sugerencia","signHere":"Firma aquí","showUndo":"Mostrar Deshacer","showClear":"Mostrar Borrar"},"localStorageComp":{"valueDesc":"Todos los datos almacenados actualmente","setItemDesc":"Añadir un elemento","removeItemDesc":"Eliminar un elemento","clearItemDesc":"Borrar todos los artículos"},"utilsComp":{"openUrl":"Abrir URL","openApp":"Abrir App","copyToClipboard":"Copiar al portapapeles","downloadFile":"Descargar archivo"},"messageComp":{"info":"Enviar una notificación","success":"Enviar una notificación de éxito","warn":"Enviar una notificación de advertencia","error":"Enviar una notificación de error"},"themeComp":{"switchTo":"Cambiar tema"},"transformer":{"preview":"Vista previa","docLink":"Leer más sobre Transformers...","previewSuccess":"Vista previa Éxito","previewFail":"Vista previa Fracaso","deleteMessage":"Eliminar Transformador con éxito. Puedes usar {undoKey} para Deshacer.","documentationText":"Los Transformadores están diseñados para transformar datos y reutilizar tu código JavaScript multilínea. Utiliza Transformadores para adaptar datos de consultas o componentes a las necesidades de tu App local. A diferencia de la consulta JavaScript, el transformador está diseñado para realizar operaciones de sólo lectura, lo que significa que no puedes lanzar una consulta o actualizar un estado temporal dentro de un transformador."},"temporaryState":{"value":"Valor inicial","valueTooltip":"El valor inicial almacenado en el estado temporal puede ser cualquier valor JSON válido.","docLink":"Leer más sobre los Estados Temporales...","pathTypeError":"La ruta debe ser una cadena o una matriz de valores","unStructuredError":"Los datos no estructurados {prev} no pueden ser actualizados por {path}.","valueDesc":"Valor Temporal del Estado","deleteMessage":"El Estado Temporal se Borra con Éxito. Puedes Usar {undoKey} para Deshacer.","documentationText":"Los estados temporales en Lowcoder son una potente función utilizada para gestionar variables complejas que actualizan dinámicamente el estado de los componentes de tu aplicación. Estos estados actúan como almacenamiento intermedio o transitorio de datos que pueden cambiar con el tiempo debido a interacciones del usuario u otros procesos."},"dataResponder":{"data":"Datos","dataDesc":"Datos del respondedor de datos actual","dataTooltip":"Cuando se modifiquen estos datos, se desencadenarán acciones posteriores.","docLink":"Más información sobre los respondedores de datos...","deleteMessage":"El Respondedor de datos se ha eliminado correctamente. Puedes utilizar {undoKey} para Deshacer.","documentationText":"Al desarrollar una aplicación, puedes asignar eventos a los componentes para controlar los cambios en datos concretos. Por ejemplo, un componente Tabla puede tener eventos como %r@\\\"Cambio de selección de fila%r@\\\", %r@\\\"Cambio de filtro%r@\\\", %r@\\\"Cambio de ordenación%r@\\\" y %r@\\\"Cambio de página%r@\\\" para controlar los cambios en la propiedad Fila seleccionada. Sin embargo, para los cambios en estados temporales, transformadores o resultados de consulta, en los que no se dispone de eventos estándar, se utilizan los Respondedores de datos. Te permiten detectar y reaccionar ante cualquier modificación de los datos."},"theme":{"title":"Temas","createTheme":"Crear tema","themeName":"Nombre del tema:","themeNamePlaceholder":"Introduce un nombre de tema","defaultThemeTip":"Tema por defecto:","createdThemeTip":"El tema que has creado:","option":"Opción{índice}","input":"Entrada","confirm":"Ok","emptyTheme":"No hay temas disponibles","click":"","toCreate":"","nameColumn":"Nombre","defaultTip":"Por defecto","updateTimeColumn":"Hora de actualización","edit":"Edita","cancelDefaultTheme":"Desactivar tema por defecto","setDefaultTheme":"Establecer como tema por defecto","copyTheme":"Tema duplicado","setSuccessMsg":"Ajuste superado","cancelSuccessMsg":"Desajuste conseguido","deleteSuccessMsg":"Supresión superada","checkDuplicateNames":"El nombre del tema ya existe, por favor, introdúcelo de nuevo","copySuffix":" Copia","saveSuccessMsg":"Guardado correctamente","leaveTipTitle":"Consejos","leaveTipContent":"¿Aún no te has salvado, confirma que te vas?","leaveTipOkText":"Deja","goList":"Volver a la lista","saveBtn":"Guarda","mainColor":"Colores principales","text":"Colores del texto","defaultTheme":"Por defecto","yellow":"Amarillo","green":"Verde","previewTitle":"Vista previa del tema\\nComponentes de ejemplo que utilizan los colores de tu tema","dateColumn":"Fecha","emailColumn":"Envía un correo electrónico a","phoneColumn":"Teléfono","subTitle":"Título","linkLabel":"Enlace","linkUrl":"app.lowcoder.nube","progressLabel":"Progreso","sliderLabel":"Deslizador","radioLabel":"Radio","checkboxLabel":"Casilla de verificación","buttonLabel":"Botón Formulario","switch":"Interruptor","previewDate":"16/10/2022","previewEmail1":"ted.com","previewEmail2":"skype.com","previewEmail3":"imgur.com","previewEmail4":"globo.com","previewPhone1":"+63-317-333-0093","previewPhone2":"+30-668-580-6521","previewPhone3":"+86-369-925-2071","previewPhone4":"+7-883-227-8093","chartPreviewTitle":"Vista previa del estilo de gráfico","chartSpending":"Gastar","chartBudget":"Presupuesto","chartAdmin":"Administración","chartFinance":"Finanzas","chartSales":"Ventas","chartFunnel":"Gráfico de embudo","chartShow":"Mostrar","chartClick":"Haz clic en","chartVisit":"Visita","chartQuery":"Consulta","chartBuy":"Comprar"},"pluginSetting":{"title":"Plugins","npmPluginTitle":"Plugins npm","npmPluginDesc":"Configurar plugins npm para todas las aplicaciones del espacio de trabajo actual.","npmPluginEmpty":"No se han añadido plugins npm.","npmPluginAddButton":"Añadir un plugin npm","saveSuccess":"Guardado correctamente"},"advanced":{"title":"Avanzado","defaultHomeTitle":"Página de inicio por defecto","defaultHomeHelp":"La página de inicio es la aplicación que todos los no desarrolladores verán por defecto cuando se conecten. Nota: Asegúrate de que la aplicación seleccionada es accesible para los no desarrolladores.","defaultHomePlaceholder":"Selecciona la página de inicio predeterminada","saveBtn":"Guarda","preloadJSTitle":"Precargar JavaScript","preloadJSHelp":"Configurar código JavaScript precargado para todas las aplicaciones del espacio de trabajo actual.","preloadCSSTitle":"Precargar CSS","preloadCSSHelp":"Configura el código CSS precargado para todas las aplicaciones del espacio de trabajo actual.","preloadCSSApply":"Aplicar a la página de inicio del espacio de trabajo","preloadLibsTitle":"Biblioteca JavaScript","preloadLibsHelp":"Configura Bibliotecas JavaScript Precargadas para Todas las Aplicaciones en el Espacio de Trabajo Actual, y el Sistema Tiene Incorporadas lodash, day.js, uuid, numbro para Uso Directo. Las Bibliotecas JavaScript Se Cargan Antes De Inicializar La Aplicación, Por Lo Que Hay Un Cierto Impacto En El Rendimiento De La Aplicación.","preloadLibsEmpty":"No se han añadido bibliotecas JavaScript","preloadLibsAddBtn":"Añadir una biblioteca","saveSuccess":"Guardado correctamente","AuthOrgTitle":"Pantalla de bienvenida al espacio de trabajo","AuthOrgDescrition":"La URL para que tus usuarios inicien sesión en el espacio de trabajo actual."},"branding":{"title":"Marca","logoTitle":"Logotipo","logoHelp":"Sólo .JPG, .SVG o .PNG","faviconTitle":"Favicon","faviconHelp":"Sólo .JPG, .SVG o .PNG","brandNameTitle":"Marca","headColorTitle":"Color de la cabeza","save":"Guarda","saveSuccessMsg":"Guardado correctamente","upload":"Haz clic para cargar"},"networkMessage":{"0":"No se ha podido conectar con el servidor, comprueba la red","401":"Autenticación fallida, por favor, inicia sesión de nuevo","403":"Sin permiso, ponte en contacto con el administrador para obtener autorización","500":"Servicio ocupado, inténtalo más tarde","timeout":"Tiempo de espera de la solicitud"},"share":{"title":"Comparte","viewer":"Visor","editor":"Editor","owner":"Propietario","datasourceViewer":"Se puede utilizar","datasourceOwner":"Puede gestionar"},"debug":{"title":"Título","switch":"Componente del interruptor: "},"module":{"emptyText":"Sin datos","circularReference":"Referencia circular, ¡no se puede utilizar el módulo/aplicación actual!","emptyTestInput":"El módulo actual no tiene entrada para comprobar","emptyTestMethod":"El módulo actual no tiene ningún método para probar","name":"Nombre","input":"Entrada","params":"Parámetros","emptyParams":"No se ha añadido ningún parámetro","emptyInput":"No se ha añadido ninguna entrada","emptyMethod":"No se ha añadido ningún método","emptyOutput":"No se ha añadido ninguna salida","data":"Datos","string":"Cadena","number":"Número","array":"Matriz","boolean":"Booleano","query":"Consulta","autoScaleCompHeight":"Básculas de altura de componentes con contenedor","excuteMethod":"Ejecutar método {nombre}","method":"Método","action":"Acción","output":"Salida","nameExists":"Nombre {name} Ya existe","eventTriggered":"Evento {nombre} activado","globalPromptWhenEventTriggered":"Muestra un aviso global cuando se activa un evento","emptyEventTest":"El módulo actual no tiene eventos que probar","emptyEvent":"No se ha añadido ningún evento","event":"Evento"},"resultPanel":{"returnFunction":"El valor de retorno es una función.","consume":"{tiempo}","JSON":"Mostrar JSON"},"createAppButton":{"creating":"Crear...","created":"Crear {nombre}"},"apiMessage":{"authenticationFail":"Ha fallado la autenticación de usuario, por favor, inicia sesión de nuevo","verifyAccount":"Necesidad de verificar la cuenta","functionNotSupported":"La versión actual no soporta esta función. Ponte en contacto con el equipo comercial de Lowcoder para actualizar tu cuenta."},"globalErrorMessage":{"createCompFail":"Crear componente {comp} Fallido","notHandledError":"{método} Método no ejecutado"},"aggregation":{"navLayout":"Barra de navegación","chooseApp":"Elegir aplicación","iconTooltip":"Admite enlace src de imagen o cadena base64 como data:image/png;base64,AAA... CCC","hideWhenNoPermission":"Oculto para usuarios no autorizados","queryParam":"Parámetros de consulta URL","hashParam":"Parámetros Hash de URL","tabBar":"Barra de pestañas","emptyTabTooltip":"Configurar esta página en el panel derecho"},"appSetting":{"450":"450px (Teléfono)","800":"800px (Tableta)","1440":"1440px (Portátil)","1920":"1920px (Pantalla ancha)","3200":"3200px (Pantalla supergrande)","title":"Configuración general de la aplicación","autofill":"Autorrelleno","userDefined":"Personalizado","default":"Por defecto","tooltip":"Cerrar la ventana emergente después de ajustar","canvasMaxWidth":"Ancho máximo del lienzo para esta aplicación","userDefinedMaxWidth":"Ancho máximo personalizado","inputUserDefinedPxValue":"Introduce un valor de píxel personalizado","maxWidthTip":"La anchura máxima debe ser mayor o igual que 350","themeSetting":"Tema Estilo Aplicado","themeSettingDefault":"Por defecto","themeCreate":"Crear tema"},"customShortcut":{"title":"Atajos personalizados","shortcut":"Atajo","action":"Acción","empty":"Sin atajos","placeholder":"Pulsa Atajo","otherPlatform":"Otros","space":"Espacio"},"profile":{"orgSettings":"Configuración del espacio de trabajo","switchOrg":"Cambiar de espacio de trabajo","joinedOrg":"Mis espacios de trabajo","createOrg":"Crear espacio de trabajo","logout":"Cerrar sesión","personalInfo":"Mi perfil","bindingSuccess":"Vinculación {nombreFuente} Éxito","uploadError":"Error de carga","editProfilePicture":"Modifica","nameCheck":"El nombre no puede estar vacío","name":"Nombre: ","namePlaceholder":"Introduce tu nombre","toBind":"Encuadernar","binding":"Es vinculante","bindError":"Error de parámetro, actualmente no admitido Vinculación.","bindName":"Enlazar {nombre}","loginAfterBind":"Después de vincular, puedes utilizar {nombre} para iniciar sesión","bindEmail":"Enlazar correo electrónico:","email":"Envía un correo electrónico a","emailCheck":"Introduce una dirección de correo electrónico válida","emailPlaceholder":"Introduce tu dirección de correo electrónico","submit":"Envía","bindEmailSuccess":"Éxito de la encuadernación por correo electrónico","passwordModifiedSuccess":"Contraseña cambiada correctamente","passwordSetSuccess":"Contraseña establecida correctamente","oldPassword":"Contraseña antigua:","inputCurrentPassword":"Introduce tu contraseña actual","newPassword":"Nueva contraseña:","inputNewPassword":"Introduce tu nueva contraseña","confirmNewPassword":"Confirma la nueva contraseña:","inputNewPasswordAgain":"Vuelve a introducir tu nueva contraseña","password":"Contraseña:","modifyPassword":"Modificar contraseña","setPassword":"Establecer contraseña","alreadySetPassword":"Conjunto de contraseñas","setPassPlaceholder":"Puedes iniciar sesión con tu contraseña","setPassAfterBind":"Puedes establecer la contraseña después de vincular la cuenta","socialConnections":"Conexiones sociales"},"shortcut":{"shortcutList":"Atajos de teclado","click":"Haz clic en","global":"Global","toggleShortcutList":"Alternar atajos de teclado","editor":"Editor","toggleLeftPanel":"Alternar panel izquierdo","toggleBottomPanel":"Alternar panel inferior","toggleRightPanel":"Alternar panel derecho","toggleAllPanels":"Conmutar todos los paneles","preview":"Vista previa","undo":"Deshacer","redo":"Rehaz","showGrid":"Mostrar cuadrícula","component":"Componente","multiSelect":"Seleccionar varios","selectAll":"Seleccionar todo","copy":"Copia","cut":"Corta","paste":"Pega","move":"Muévete","zoom":"Cambia el tamaño de","delete":"Borra","deSelect":"Deselecciona","queryEditor":"Editor de consultas","excuteQuery":"Ejecutar consulta actual","editBox":"Editor de texto","formatting":"Formato","openInLeftPanel":"Abrir en el panel izquierdo"},"help":{"videoText":"Visión general","onBtnText":"OK","permissionDenyTitle":"💡 ¿No se puede crear una nueva aplicación o fuente de datos?","permissionDenyContent":"No tienes permiso para crear la aplicación y la fuente de datos. Ponte en contacto con el Administrador para unirte al Grupo de Desarrolladores.","appName":"Aplicación Tutorial","chat":"Chatea con nosotros","docs":"Ver documentación","editorTutorial":"Tutorial del editor","update":"¿Qué hay de nuevo?","version":"Versión","versionWithColon":"Versión: ","submitIssue":"Enviar un asunto"},"header":{"nameCheckMessage":"El nombre no puede estar vacío","viewOnly":"Ver sólo","recoverAppSnapshotTitle":"¿Restaurar esta versión?","recoverAppSnapshotContent":"Restaurar la aplicación actual a la versión creada en {tiempo}.","recoverAppSnapshotMessage":"Restaurar esta versión","returnEdit":"Volver al editor","deploy":"Publica","export":"Exportar a JSON","editName":"Editar nombre","duplicate":"Duplicar {tipo}","snapshot":"Historia","scriptsAndStyles":"Guiones y estilo","appSettings":"Ajustes de la aplicación","preview":"Vista previa","editError":"Modo de Vista Previa de la Historia, no se admite ninguna operación.","clone":"Clon","editorMode_layout":"Disposición","editorMode_logic":"Lógica","editorMode_both":"Ambos"},"userAuth":{"registerByEmail":"Inscríbete","email":"Correo electrónico:","inputEmail":"Introduce tu dirección de correo electrónico","inputValidEmail":"Introduce una dirección de correo electrónico válida","register":"Inscríbete","userLogin":"Regístrate","login":"Regístrate","bind":"Encuaderna","passwordCheckLength":"Al menos {min} Personajes","passwordCheckContainsNumberAndLetter":"Debe contener letras y números","passwordCheckSpace":"No puede contener espacios en blanco","welcomeTitle":"Bienvenido a {productName}","inviteWelcomeTitle":"{username} Te invito a conectarte {productName}","terms":"Términos","privacy":"Política de privacidad","registerHint":"He leído y acepto el","chooseAccount":"Elige tu cuenta","signInLabel":"Iniciar sesión con {nombre}","bindAccount":"Vincular cuenta","scanQrCode":"Escanea el código QR con {nombre}","invalidThirdPartyParam":"Parámetros de terceros no válidos","account":"Cuenta","inputAccount":"Introduce tu cuenta","ldapLogin":"Inicio de sesión LDAP","resetPassword":"Restablecer contraseña","resetPasswordDesc":"Restablecer la contraseña del usuario {nombre}. Se generará una nueva contraseña después de restablecerla.","resetSuccess":"Reinicio efectuado","resetSuccessDesc":"Se ha restablecido la contraseña. La nueva contraseña es: {contraseña}","copyPassword":"Copiar contraseña","poweredByLowcoder":"Desarrollado por Lowcoder.cloud"},"preLoad":{"jsLibraryHelpText":"Añade Bibliotecas JavaScript a tu Aplicación Actual mediante Direcciones URL. lodash, day.js, uuid, numbro están Integradas en el Sistema para su Uso Inmediato. Las Bibliotecas JavaScript se Cargan Antes de Inicializar la Aplicación, Lo Que Puede Tener un Impacto en el Rendimiento de la Aplicación.","exportedAs":"Exportado como","urlTooltip":"Dirección URL de la biblioteca JavaScript, se recomienda [unpkg.com](https://unpkg.com/) o [jsdelivr.net](https://www.jsdelivr.com/)","recommended":"Recomendado","viewJSLibraryDocument":"Documento","jsLibraryURLError":"URL no válida","jsLibraryExist":"La biblioteca JavaScript ya existe","jsLibraryEmptyContent":"No se han añadido bibliotecas JavaScript","jsLibraryDownloadError":"Error de descarga de la biblioteca JavaScript","jsLibraryInstallSuccess":"Biblioteca JavaScript instalada correctamente","jsLibraryInstallFailed":"Fallo en la instalación de la biblioteca JavaScript","jsLibraryInstallFailedCloud":"Puede que la biblioteca no esté disponible en el Sandbox, [Documentación](https://docs.lowcoder.cloud/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\\n{mensaje}","jsLibraryInstallFailedHost":"{mensaje}","add":"Añadir nuevo","jsHelpText":"Añade un Método o Variable Global a la Aplicación Actual.","cssHelpText":"Añadir Estilos a la Aplicación Actual. La Estructura DOM Puede Cambiar Mientras Itera el Sistema. Intenta Modificar los Estilos a Través de las Propiedades de los Componentes.","scriptsAndStyles":"Guiones y estilos","jsLibrary":"Biblioteca JavaScript"},"editorTutorials":{"component":"Componente","componentContent":"El Panel de Componentes Derecho te ofrece muchos Bloques de Aplicación (Componentes) ya hechos. Puedes arrastrarlos al lienzo para utilizarlos. También puedes crear tus propios componentes con unos pocos conocimientos de programación.","canvas":"Lienzo","canvasContent":"Construye tus aplicaciones en el Lienzo con un enfoque \"Lo que ves es lo que hay\". Sólo tienes que arrastrar y soltar componentes para diseñar tu diseño, y utilizar los atajos de teclado para una edición rápida como borrar, copiar y pegar. Una vez seleccionado un componente, puedes ajustar todos los detalles, desde el estilo y el diseño hasta la vinculación de datos y el comportamiento lógico. Además, disfruta de la ventaja añadida del diseño adaptable, que garantiza que tus aplicaciones se vean bien en cualquier dispositivo.","queryData":"Consulta de datos","queryDataContent":"Aquí puedes crear Consultas de Datos y Conectarte a tu MySQL, MongoDB, Redis, Airtable y muchas Otras Fuentes de Datos. Tras configurar la Consulta, haz clic en \"Ejecutar\" para obtener los Datos y continuar con el Tutorial.","compProperties":"Propiedades de los componentes"},"homeTutorials":{"createAppContent":"🎉 Bienvenido a {productName}, haz clic en \\'App\\' y empieza a crear tu primera aplicación.","createAppTitle":"Crear aplicación"},"history":{"layout":"\\'{0}\\' ajuste del diseño","upgrade":"Actualizar \\'{0}\\'","delete":"Borrar \\'{0}\\'","add":"Añade \"0\".","modify":"Modificar \\'{0}\\'","rename":"Cambia el nombre de \"{1}\" a \"{0}\".","recover":"Recuperar la versión \"2","recoverVersion":"Recuperar versión","andSoOn":"etc.","timeFormat":"MM DD a las hh:mm A","emptyHistory":"Sin antecedentes","currentVersionWithBracket":" (Actual)","currentVersion":"Versión actual","justNow":"Ahora mismo","history":"Historia"},"home":{"allApplications":"Todas las aplicaciones","allModules":"Todos los módulos","allFolders":"Todas las carpetas","modules":"Módulos","module":"Módulo","trash":"Basura","queryLibrary":"Biblioteca de consultas","datasource":"Fuentes de datos","selectDatasourceType":"Selecciona el tipo de fuente de datos","home":"Inicio | Área de Administración","all":"Todos","app":"Aplicación","navigation":"Navegación","navLayout":"Navegación por PC","navLayoutDesc":"Menú a la izquierda para facilitar la navegación por el escritorio.","mobileTabLayout":"Navegación móvil","mobileTabLayoutDesc":"Barra de navegación inferior para una navegación móvil fluida.","folders":"Carpetas","folder":"Carpeta","rootFolder":"Raíz","import":"Importa","export":"Exportar a JSON","inviteUser":"Invitar a miembros","createFolder":"Crear carpeta","createFolderSubTitle":"Nombre de la carpeta:","moveToFolder":"Mover a carpeta","moveToTrash":"Mover a la papelera","moveToFolderSubTitle":"Desplázate a:","folderName":"Nombre de la carpeta:","resCardSubTitle":"{tiempo} por {creador}","trashEmpty":"La papelera está vacía.","projectEmpty":"Aquí no hay nada.","projectEmptyCanAdd":"Todavía no tienes ninguna aplicación. Haz clic en Nueva para empezar.","name":"Nombre","type":"Tipo","creator":"Creado por","lastModified":"Última modificación","deleteTime":"Borrar hora","createTime":"Crear tiempo","datasourceName":"Nombre de la fuente de datos","databaseName":"Nombre de la base de datos","nameCheckMessage":"El nombre no puede estar vacío","deleteElementTitle":"Borrar permanentemente","moveToTrashSubTitle":"{tipo} {nombre} se moverá a la papelera.","deleteElementSubTitle":"Borrar {tipo} {nombre} permanentemente, no se puede recuperar.","deleteSuccessMsg":"Eliminado con éxito","deleteErrorMsg":"Error borrado","recoverSuccessMsg":"Recuperado con éxito","newDatasource":"Nueva fuente de datos","creating":"Crear...","chooseDataSourceType":"Elige el tipo de fuente de datos","folderAlreadyExists":"La carpeta ya existe","newNavLayout":"{nombredeusuario} de {nombre} ","newApp":"nuevo {nombre} de {nombre} de {usuario} ","importError":"Error de importación, {mensaje}","exportError":"Error de exportación, {mensaje}","importSuccess":"Éxito de la importación","fileUploadError":"Error de carga de archivos","fileFormatError":"Error de formato de archivo","groupWithSquareBrackets":"[Grupo] ","allPermissions":"Propietario","shareLink":"Comparte el enlace: ","copyLink":"Copiar enlace","appPublicMessage":"Haz pública la aplicación. Cualquiera puede verla.","modulePublicMessage":"Haz que el módulo sea público. Cualquiera puede verlo.","memberPermissionList":"Permisos de los miembros: ","orgName":"{orgName} admins","addMember":"Añadir miembros","addPermissionPlaceholder":"Introduce un nombre para buscar miembros","searchMemberOrGroup":"Buscar miembros o grupos: ","addPermissionErrorMessage":"Fallo al añadir permiso, {mensaje}","copyModalTitle":"Clonarlo","copyNameLabel":"{tipo} nombre","copyModalfolderLabel":"Añadir a la carpeta","copyNamePlaceholder":"Por favor, introduce un {tipo} de nombre","chooseNavType":"Elige el tipo de navegación","createNavigation":"Crear navegación"},"carousel":{"dotPosition":"Posición de los puntos de navegación","autoPlay":"Reproducción automática","showDots":"Mostrar puntos de navegación"},"npm":{"invalidNpmPackageName":"Nombre o URL de paquete npm no válidos.","pluginExisted":"Este plugin npm ya existía","compNotFound":"No se ha encontrado el componente {compName}.","addPluginModalTitle":"Añadir plugin desde un repositorio npm","pluginNameLabel":"URL o nombre del paquete npm","noCompText":"Sin componentes.","compsLoading":"Cargando...","removePluginBtnText":"Elimina","addPluginBtnText":"Añadir plugin npm"},"toggleButton":{"valueDesc":"El Valor por Defecto del Botón Alternar, Por Ejemplo: Falso","trueDefaultText":"Ocultar","falseDefaultText":"Mostrar","trueLabel":"Texto para Verdadero","falseLabel":"Texto para Falso","trueIconLabel":"Icono de Verdadero","falseIconLabel":"Icono de Falso","iconPosition":"Icono Posición","showText":"Mostrar texto","alignment":"Alineación","showBorder":"Mostrar borde"},"componentDoc":{"markdownDemoText":"**Lowcoder** | Crea aplicaciones de software para tu Empresa y tus Clientes con mínima experiencia en codificación. Lowcoder es la mejor alternativa a Retool, Appsmith o Tooljet.","demoText":"Lowcoder | Crea aplicaciones de software para tu Empresa y tus Clientes con una mínima experiencia en codificación. Lowcoder es la mejor alternativa a Retool, Appsmith o Tooljet.","submit":"Envía","style":"Estilo","danger":"Peligro","warning":"Advertencia","success":"Éxito","menu":"Menú","link":"Enlace","customAppearance":"Apariencia personalizada","search":"Busca en","pleaseInputNumber":"Introduce un número","mostValue":"Más valor","maxRating":"Clasificación máxima","notSelect":"No seleccionado","halfSelect":"Media selección","pleaseSelect":"Selecciona","title":"Título","content":"Contenido","componentNotFound":"El componente no existe","example":"Ejemplos","defaultMethodDesc":"Establecer el valor de la propiedad {nombre}","propertyUsage":"Puedes leer información relacionada con el componente accediendo a las propiedades del componente por su nombre en cualquier lugar donde puedas escribir JavaScript.","property":"Propiedades","propertyName":"Nombre de la propiedad","propertyType":"Tipo","propertyDesc":"Descripción","event":"Eventos","eventName":"Nombre del evento","eventDesc":"Descripción","mehtod":"Métodos","methodUsage":"Puedes interactuar con los componentes a través de sus métodos, y puedes llamarlos por su nombre en cualquier lugar donde puedas escribir JavaScript. O puedes llamarlos a través de la acción \"Componente de control\" de un evento.","methodName":"Nombre del método","methodDesc":"Descripción","showBorder":"Mostrar borde","haveTry":"Pruébalo tú mismo","settings":"Configurar","settingValues":"Valor de ajuste","defaultValue":"Valor por defecto","time":"Tiempo","date":"Fecha","noValue":"Ninguno","xAxisType":"Tipo de eje X","hAlignType":"Alineación horizontal","leftLeftAlign":"Alineación izquierda-izquierda","leftRightAlign":"Alineación izquierda-derecha","topLeftAlign":"Alineación superior izquierda","topRightAlign":"Alineación superior derecha","validation":"Validación","required":"Necesario","defaultStartDateValue":"Fecha de inicio por defecto","defaultEndDateValue":"Fecha de finalización por defecto","basicUsage":"Uso básico","basicDemoDescription":"Los siguientes ejemplos muestran el uso básico del componente.","noDefaultValue":"Sin valor por defecto","forbid":"Prohibido","placeholder":"Marcador de posición","pleaseInputPassword":"Introduce una contraseña","password":"Contraseña","textAlign":"Alineación del texto","length":"Longitud","top":"Arriba","pleaseInputName":"Introduce tu nombre","userName":"Nombre","fixed":"Fijo","responsive":"Respuesta","workCount":"Recuento de palabras","cascaderOptions":"Opciones de Cascader","pleaseSelectCity":"Selecciona una ciudad","advanced":"Avanzado","showClearIcon":"Mostrar icono Borrar","likedFruits":"Favoritos","option":"Opción","singleFileUpload":"Carga de un solo archivo","multiFileUpload":"Carga múltiple de archivos","folderUpload":"Cargar carpeta","multiFile":"Varios archivos","folder":"Carpeta","open":"Abre","favoriteFruits":"Frutas favoritas","pleaseSelectOneFruit":"Selecciona una fruta","notComplete":"No Completo","complete":"Completa","echart":"EChart","lineChart":"Gráfico lineal","basicLineChart":"Gráfico de líneas básico","lineChartType":"Tipo de gráfico de líneas","stackLineChart":"Línea apilada","areaLineChart":"Línea de área","scatterChart":"Gráfico de dispersión","scatterShape":"Forma de dispersión","scatterShapeCircle":"Círculo","scatterShapeRect":"Rectángulo","scatterShapeTri":"Triángulo","scatterShapeDiamond":"Diamante","scatterShapePin":"Chincheta","scatterShapeArrow":"Flecha","pieChart":"Gráfico circular","basicPieChart":"Gráfico circular básico","pieChatType":"Tipo de gráfico circular","pieChartTypeCircle":"Gráfico de donuts","pieChartTypeRose":"Gráfico de rosas","titleAlign":"Título Cargo","color":"Color","dashed":"Guiones","imADivider":"Soy una línea divisoria","tableSize":"Tamaño de la tabla","subMenuItem":"SubMenú {num}","menuItem":"Menú {num}","labelText":"Etiqueta","labelPosition":"Etiqueta - Posición","labelAlign":"Etiqueta - Alinear","optionsOptionType":"Método de configuración","styleBackgroundColor":"Color de fondo","styleBorderColor":"Color del borde","styleColor":"Color de fuente","selectionMode":"Modo de selección de filas","paginationSetting":"Configuración de la paginación","paginationShowSizeChanger":"Ayudar a los usuarios a modificar el número de entradas por página","paginationShowSizeChangerButton":"Mostrar botón de cambio de tamaño","paginationShowQuickJumper":"Mostrar saltador rápido","paginationHideOnSinglePage":"Ocultar cuando sólo hay una página","paginationPageSizeOptions":"Tamaño de página","chartConfigCompType":"Tipo de gráfico","xConfigType":"Tipo de eje X","loading":"Cargando","disabled":"Discapacitados","minLength":"Longitud mínima","maxLength":"Longitud máxima","showCount":"Mostrar recuento de palabras","autoHeight":"Altura","thousandsSeparator":"Separador de miles","precision":"Posiciones decimales","value":"Valor por defecto","formatter":"Formato","min":"Valor mínimo","max":"Valor máximo","step":"Tamaño del paso","start":"Hora de inicio","end":"Fin de los tiempos","allowHalf":"Permitir media selección","filetype":"Tipo de archivo","showUploadList":"Mostrar lista de cargas","uploadType":"Tipo de carga","allowClear":"Mostrar icono Borrar","minSize":"Tamaño mínimo del archivo","maxSize":"Tamaño máximo del archivo","maxFiles":"Número máximo de archivos cargados","format":"Formato","minDate":"Fecha mínima","maxDate":"Fecha máxima","minTime":"Tiempo mínimo","maxTime":"Tiempo máximo","text":"Texto","type":"Tipo","hideHeader":"Ocultar cabecera","hideBordered":"Ocultar borde","src":"URL de la imagen","showInfo":"Mostrar valor","mode":"Modo","onlyMenu":"Sólo Menú","horizontalAlignment":"Alineación horizontal","row":"Izquierda","column":"Arriba","leftAlign":"Alineación izquierda","rightAlign":"Alineación correcta","percent":"Porcentaje","fixedHeight":"Altura fija","auto":"Adaptativo","directory":"Carpeta","multiple":"Varios archivos","singleFile":"Archivo único","manual":"Manual","default":"Por defecto","small":"Pequeño","middle":"Medio","large":"Grande","single":"Individual","multi":"Múltiple","close":"Cerrar","ui":"Modo IU","line":"Gráfico lineal","scatter":"Gráfico de dispersión","pie":"Gráfico circular","basicLine":"Gráfico de líneas básico","stackedLine":"Gráfico de líneas apiladas","areaLine":"Área Mapa del área","basicPie":"Gráfico circular básico","doughnutPie":"Gráfico de donuts","rosePie":"Gráfico de rosas","category":"Categoría Eje","circle":"Círculo","rect":"Rectángulo","triangle":"Triángulo","diamond":"Diamante","pin":"Chincheta","arrow":"Flecha","left":"Izquierda","right":"A la derecha","center":"Centro","bottom":"Fondo","justify":"Justificar ambos extremos"},"playground":{"url":"https://app.lowcoder.cloud/playground/{compType}/1","data":"Estado actual de los datos","preview":"Vista previa","property":"Propiedades","console":"Consola Visual Script","executeMethods":"Ejecutar métodos","noMethods":"Sin métodos.","methodParams":"Parámetros del método","methodParamsHelp":"Parámetros del método de entrada utilizando JSON. Por ejemplo, puedes establecer los parámetros de setValue\\ con: [1] o 1"},"calendar":{"headerBtnBackground":"Botón Fondo","btnText":"Texto del botón","title":"Título","selectBackground":"Antecedentes seleccionados"},"componentDocExtra":{"table":"Documentación adicional para el componente Tabla"},"idSource":{"title":"Proveedores OAuth","form":"Envía un correo electrónico a","pay":"Premium","enable":"Activa","unEnable":"No activado","loginType":"Tipo de conexión","status":"Estado","desc":"Descripción","manual":"Agenda:","syncManual":"Sincronizar Agenda","syncManualSuccess":"Sincronización realizada","enableRegister":"Permitir la inscripción","saveBtn":"Guardar y Activar","save":"Guarda","none":"Ninguno","formPlaceholder":"Introduce {etiqueta}","formSelectPlaceholder":"Selecciona la {etiqueta}","saveSuccess":"Guardado correctamente","dangerLabel":"Zona de peligro","dangerTip":"Desactivar este proveedor de ID puede provocar que algunos usuarios no puedan iniciar sesión. Procede con precaución.","disable":"Desactiva","disableSuccess":"Desactivado correctamente","encryptedServer":"-------- Cifrado en el lado del servidor --------","disableTip":"Consejos","disableContent":"Desactivar este proveedor de ID puede provocar que algunos usuarios no puedan iniciar sesión. ¿Estás seguro de proceder?","manualTip":"","lockTip":"El Contenido está Bloqueado. Para realizar cambios, haz clic en el {icono} para desbloquearlo.","lockModalContent":"La modificación del campo \"Atributo ID\" puede tener repercusiones importantes en la identificación del usuario. Por favor, confirma que comprendes las implicaciones de este cambio antes de proceder.","payUserTag":"Premium"},"slotControl":{"configSlotView":"Configurar vista de ranura"},"jsonLottie":{"lottieJson":"Lottie JSON","speed":"Velocidad","width":"Anchura","height":"Altura","backgroundColor":"Color de fondo","animationStart":"Inicio de la animación","valueDesc":"Datos JSON actuales","loop":"Bucle","auto":"Auto","onHover":"Al pasar por encima","singlePlay":"Juego individual","endlessLoop":"Bucle sin fin","keepLastFrame":"Mantener visualizado el último fotograma"},"timeLine":{"titleColor":"Título Color","subTitleColor":"Color del subtítulo","lableColor":"Color de la etiqueta","value":"Datos cronológicos","mode":"Orden de visualización","left":"Contenido Correcto","right":"Contenido Izquierda","alternate":"Orden alternativo del contenido","modeTooltip":"Configura el contenido para que aparezca a izquierda/derecha o alternativamente en ambos lados de la línea de tiempo","reverse":"Eventos más recientes primero","pending":"Texto de nodo pendiente","pendingDescription":"Si se establece, se mostrará un último nodo con el texto y un indicador de espera.","defaultPending":"Mejora continua","clickTitleEvent":"Haz clic en el título Evento","clickTitleEventDesc":"Haz clic en el título Evento","Introduction":"Introducción Claves","helpTitle":"Título del cronograma (Obligatorio)","helpsubTitle":"Subtítulo del cronograma","helpLabel":"Etiqueta de la línea de tiempo, utilizada para mostrar las fechas","helpColor":"Indica el color del nodo de la línea de tiempo","helpDot":"Representación de los nodos de la línea de tiempo como iconos de diseño Ant","helpTitleColor":"Controlar individualmente el color del título del nodo","helpSubTitleColor":"Controlar Individualmente el Color del Subtítulo del Nodo","helpLableColor":"Controlar Individualmente el Color del Icono del Nodo","valueDesc":"Datos de la cronología","clickedObjectDesc":"Datos del elemento pulsado","clickedIndexDesc":"Índice de elementos pulsados"},"comment":{"value":"Datos de la lista de comentarios","showSendButton":"Permitir comentarios","title":"Título","titledDefaultValue":"%d Comentario en total","placeholder":"Mayús + Intro para comentar; introduce @ o # para entrada rápida","placeholderDec":"Marcador de posición","buttonTextDec":"Título del botón","buttonText":"Comentario","mentionList":"Datos de la Lista de Menciones","mentionListDec":"Palabras clave de mención clave; Datos de la lista de mención de valor","userInfo":"Información del usuario","dateErr":"Error de fecha","commentList":"Lista de comentarios","deletedItem":"Elemento eliminado","submitedItem":"Artículo enviado","deleteAble":"Mostrar botón Eliminar","Introduction":"Introducción Claves","helpUser":"Información del usuario (Obligatorio)","helpname":"Nombre de usuario (Obligatorio)","helpavatar":"Avatar URL (Alta prioridad)","helpdisplayName":"Nombre para mostrar (prioridad baja)","helpvalue":"Contenido de los comentarios","helpcreatedAt":"Fecha de creación"},"mention":{"mentionList":"Datos de la Lista de Menciones"},"autoComplete":{"value":"Auto Complete Value","checkedValueFrom":"Valor comprobado Desde","ignoreCase":"Buscar Ignorar Caso","searchLabelOnly":"Buscar sólo etiqueta","searchFirstPY":"Buscar First Pinyin","searchCompletePY":"Buscar Pinyin completo","searchText":"Buscar texto","SectionDataName":"Autocompletar datos","valueInItems":"Valor en artículos","type":"Tipo","antDesign":"AntDesign","normal":"Normal","selectKey":"Clave","selectLable":"Etiqueta","ComponentType":"Tipo de componente","colorIcon":"Azul","grewIcon":"Gris","noneIcon":"Ninguno","small":"Pequeño","large":"Grande","componentSize":"Tamaño del componente","Introduction":"Introducción Claves","helpLabel":"Etiqueta","helpValue":"Valor"},"responsiveLayout":{"column":"Columnas","atLeastOneColumnError":"El diseño adaptable mantiene al menos una columna","columnsPerRow":"Columnas por fila","columnsSpacing":"Espacio entre columnas (px)","horizontal":"Horizontal","vertical":"Vertical","mobile":"Móvil","tablet":"Tableta","desktop":"Escritorio","rowStyle":"Estilo Fila","columnStyle":"Estilo columna","minWidth":"Mín. Anchura","rowBreak":"Rotura de fila","matchColumnsHeight":"Igualar altura de columnas","rowLayout":"Disposición de filas","columnsLayout":"Disposición de las columnas"},"navLayout":{"mode":"Modo","modeInline":"En línea","modeVertical":"Vertical","width":"Anchura","widthTooltip":"Píxel o Porcentaje, por ejemplo 520, 60%.","navStyle":"Estilo de menú","navItemStyle":"Estilo del elemento de menú"}} \ No newline at end of file +{"productName":"Lowcoder","productDesc":"Crea aplicaciones de software para tu empresa y tus clientes con una experiencia mínima en codificación. Lowcoder es una excelente alternativa a Retool, Appsmith y Tooljet.","notSupportedBrowser":"Tu navegador actual puede tener problemas de compatibilidad. Para una experiencia de usuario óptima, utiliza la última versión de Chrome.","create":"Crea","move":"Muévete","addItem":"Añade","newItem":"Nuevo","copy":"Copia","rename":"Cambia el nombre de","delete":"Borra","deletePermanently":"Borrar permanentemente","remove":"Elimina","recover":"Recupera","edit":"Edita","view":"Ver","value":"Valor","data":"Datos","information":"Información","success":"Éxito","warning":"Advertencia","error":"Error","reference":"Referencia","text":"Texto","label":"Etiqueta","color":"Color","form":"Formulario","menu":"Menú","menuItem":"Elemento del menú","ok":"OK","cancel":"Cancelar","finish":"Acabado","reset":"Restablece","icon":"Icono","code":"Código","title":"Título","emptyContent":"Contenido vacío","more":"Más","search":"Busca en","back":"Volver","accessControl":"Control de acceso","copySuccess":"Copiado correctamente","copyError":"Error de copia","api":{"publishSuccess":"Publicado con éxito","recoverFailed":"Recuperación fallida","needUpdate":"Tu versión actual está obsoleta. Por favor, actualízala a la última versión."},"codeEditor":{"notSupportAutoFormat":"El editor de código actual no admite el autoformateo.","fold":"Pliega"},"exportMethod":{"setDesc":"Establecer propiedad: {propiedad}","clearDesc":"Borrar propiedad: {propiedad}","resetDesc":"Restablecer propiedad: {propiedad} al valor por defecto"},"method":{"focus":"Focalizar","focusOptions":"Opciones de enfoque. Ver HTMLElement.focus()","blur":"Eliminar Enfoque","click":"Haz clic en","select":"Seleccionar todo el texto","setSelectionRange":"Establecer las posiciones inicial y final de la selección de texto","selectionStart":"Índice basado en 0 del primer carácter seleccionado","selectionEnd":"Índice basado en 0 del carácter después del último carácter seleccionado","setRangeText":"Reemplazar rango de texto","replacement":"Cadena a insertar","replaceStart":"Índice basado en 0 del primer carácter a sustituir","replaceEnd":"Índice basado en 0 del carácter después del último carácter a sustituir"},"errorBoundary":{"encounterError":"Error en la carga del componente. Comprueba tu configuración.","clickToReload":"Haz clic para recargar","errorMsg":"Error: "},"imgUpload":{"notSupportError":"Sólo admite tipos de imagen {tipos}","exceedSizeError":"El tamaño de la imagen no debe superar el {tamaño}."},"gridCompOperator":{"notSupport":"No admitido","selectAtLeastOneComponent":"Selecciona al menos un componente","selectCompFirst":"Seleccionar componentes antes de copiar","noContainerSelected":"[Bug] No se ha seleccionado ningún contenedor","deleteCompsSuccess":"Eliminado correctamente. Pulsa {Tecla Deshacer} para deshacer.","deleteCompsTitle":"Eliminar componentes","deleteCompsBody":"¿Estás seguro de que quieres borrar {compNum} componentes seleccionados?","cutCompsSuccess":"Corta con éxito. Pulsa {pegarTecla} para pegar, o {deshacerTecla} para deshacer."},"leftPanel":{"queries":"Consultas de datos en tu app","globals":"Variables de datos globales","propTipsArr":"{num} Elementos","propTips":"{num} Teclas","propTipArr":"{num} Artículo","propTip":"{num} Tecla","stateTab":"Estado","settingsTab":"Ajustes","toolbarTitle":"Individualización","toolbarPreload":"Guiones y estilos","components":"Componentes activos","modals":"Modales in-App","expandTip":"Haz clic para ampliar los datos del {componente}","collapseTip":"Haz clic para contraer los datos del {componente}"},"bottomPanel":{"title":"Consultas de datos","run":"Ejecuta","noSelectedQuery":"No se ha seleccionado ninguna consulta","metaData":"Metadatos de la fuente de datos","noMetadata":"No hay metadatos disponibles","metaSearchPlaceholder":"Buscar metadatos","allData":"Todas las mesas"},"rightPanel":{"propertyTab":"Propiedades","noSelectedComps":"No hay Componentes seleccionados. Haz clic en un Componente para ver sus Propiedades.","createTab":"Inserta","searchPlaceHolder":"Buscar componentes o módulos","uiComponentTab":"Componentes","extensionTab":"Extensiones","modulesTab":"Módulos","moduleListTitle":"Módulos","pluginListTitle":"Plugins","emptyModules":"Los módulos son Mikro-Apps reutilizables. Puedes incrustarlos en tu App.","searchNotFound":"¿No encuentras el componente adecuado? Envía un problema","emptyPlugins":"No se han añadido plugins","contactUs":"Contacta con nosotros","issueHere":"aquí."},"prop":{"expand":"Amplía","columns":"Columnas","videokey":"Llave de vídeo","rowSelection":"Selección de filas","toolbar":"Barra de herramientas","pagination":"Paginación","logo":"Logotipo","style":"Estilo","inputs":"Entradas","meta":"Metadatos","data":"Datos","hide":"Ocultar","loading":"Cargando","disabled":"Discapacitados","placeholder":"Marcador de posición","showClear":"Mostrar botón Borrar","showSearch":"Puedes buscar en","defaultValue":"Valor por defecto","required":"Campo obligatorio","readOnly":"Sólo lectura","readOnlyTooltip":"Los componentes de sólo lectura parecen normales, pero no se pueden modificar.","minimum":"Mínimo","maximum":"Máximo","regex":"Regex","minLength":"Longitud mínima","maxLength":"Longitud máxima","height":"Altura","width":"Anchura","selectApp":"Seleccionar aplicación","showCount":"Mostrar recuento","textType":"Tipo de texto","customRule":"Regla personalizada","customRuleTooltip":"Una cadena no vacía indica un error; vacía o nula significa que la validación se ha superado. Ejemplo: ","manual":"Manual","map":"Mapa","json":"JSON","use12Hours":"Utiliza el formato de 12 horas","hourStep":"Hora Paso","minuteStep":"Paso del minuto","secondStep":"Segundo paso","minDate":"Fecha mínima","maxDate":"Fecha máxima","minTime":"Tiempo mínimo","maxTime":"Tiempo máximo","type":"Tipo","showLabel":"Mostrar etiqueta","showHeader":"Mostrar cabecera","showBody":"Mostrar cuerpo","showFooter":"Mostrar pie de página","maskClosable":"Pulsa Fuera para Cerrar","showMask":"Mostrar máscara"},"autoHeightProp":{"auto":"Auto","fixed":"Fijo"},"labelProp":{"text":"Etiqueta","tooltip":"Información sobre herramientas","position":"Posición","left":"Izquierda","top":"Arriba","align":"Alineación","width":"Anchura","widthTooltip":"La anchura de la etiqueta admite porcentajes (%) y píxeles (px)."},"eventHandler":{"eventHandlers":"Manejadores de eventos","emptyEventHandlers":"Sin manejadores de eventos","incomplete":"Selección incompleta","inlineEventTitle":"En {eventName}","event":"Evento","action":"Acción","noSelect":"Sin selección","runQuery":"Ejecutar una consulta de datos","selectQuery":"Seleccionar consulta de datos","controlComp":"Controlar un componente","runScript":"Ejecutar JavaScript","runScriptPlaceHolder":"Escribe aquí el código","component":"Componente","method":"Método","setTempState":"Establece un valor de Estado Temporal","state":"Estado","triggerModuleEvent":"Activar un evento de módulo","moduleEvent":"Módulo Evento","goToApp":"Ir a otra App","queryParams":"Parámetros de consulta","hashParams":"Parámetros Hash","showNotification":"Mostrar una notificación","text":"Texto","level":"Nivel","duration":"Duración","notifyDurationTooltip":"La unidad de tiempo puede ser \\'s\\' (segundo, por defecto) o \\'ms\\' (milisegundo). La duración máxima es {max} segundos","goToURL":"Abrir una URL","openInNewTab":"Abrir en pestaña nueva","copyToClipboard":"Copiar un valor al Portapapeles","copyToClipboardValue":"Valor","export":"Exportar datos","exportNoFileType":"Sin selección (Opcional)","fileName":"Nombre del archivo","fileNameTooltip":"Incluye la extensión para especificar el tipo de archivo, por ejemplo: \\'imagen.png'","fileType":"Tipo de archivo","condition":"Corre sólo cuando...","conditionTooltip":"Ejecuta el controlador de eventos sólo cuando esta condición se evalúe como \"verdadero\".","debounce":"Rebote para","throttle":"Acelerador para","slowdownTooltip":"Utiliza debounce o throttle para controlar la frecuencia de los disparos de acción. La unidad de tiempo puede ser \\'ms\\' (milisegundo, por defecto) o \\'s\\' (segundo).","notHandledError":"No manipulado","currentApp":"Actual"},"event":{"submit":"Envía","submitDesc":"Activadores al enviar","change":"Cambia","changeDesc":"Activadores de cambios de valor","focus":"Enfoque","focusDesc":"Activadores en Foco","blur":"Desenfocar","blurDesc":"Activadores del desenfoque","click":"Haz clic en","clickDesc":"Activadores al hacer clic","close":"Cerrar","closeDesc":"Desencadenantes al cerrar","parse":"Analiza","parseDesc":"Disparadores en Parse","success":"Éxito","successDesc":"Activadores del éxito","delete":"Borra","deleteDesc":"Activadores al borrar","mention":"Menciona","mentionDesc":"Activadores de la mención"},"themeDetail":{"primary":"Color de la marca","primaryDesc":"Color primario por defecto utilizado por la mayoría de los componentes","textDark":"Color de texto oscuro","textDarkDesc":"Se utiliza cuando el color de fondo es claro","textLight":"Color de texto claro","textLightDesc":"Se utiliza cuando el color de fondo es oscuro","canvas":"Color del lienzo","canvasDesc":"Color de fondo predeterminado de la aplicación","primarySurface":"Color del envase","primarySurfaceDesc":"Color de fondo por defecto para componentes como las tablas","borderRadius":"Radio del borde","borderRadiusDesc":"Radio del borde por defecto utilizado por la mayoría de los componentes","chart":"Estilo gráfico","chartDesc":"Entrada para Echarts","echartsJson":"Tema JSON","margin":"Margen","marginDesc":"Margen por defecto utilizado normalmente para la mayoría de los componentes","padding":"Acolchado","paddingDesc":"Relleno por defecto utilizado normalmente para la mayoría de los componentes","containerheaderpadding":"Relleno de cabecera","containerheaderpaddingDesc":"Relleno de cabecera por defecto utilizado normalmente para la mayoría de los componentes","gridColumns":"Columnas de cuadrícula","gridColumnsDesc":"Número predeterminado de columnas utilizado normalmente para la mayoría de los contenedores"},"style":{"resetTooltip":"Restablecer estilos. Borra el campo de entrada para restablecer un estilo individual.","textColor":"Color del texto","contrastText":"Contraste Color del texto","generated":"Generado","customize":"Personaliza","staticText":"Texto estático","accent":"Acento","validate":"Mensaje de validación","border":"Color del borde","borderRadius":"Radio del borde","borderWidth":"Anchura del borde","background":"Antecedentes","headerBackground":"Fondo de la cabecera","footerBackground":"Fondo de pie de página","fill":"Rellena","track":"Pista","links":"Enlaces","thumb":"Pulgar","thumbBorder":"Borde del pulgar","checked":"Comprobado","unchecked":"Sin marcar","handle":"Asa","tags":"Etiquetas","tagsText":"Etiquetas Texto","multiIcon":"Icono multiselección","tabText":"Texto de la pestaña","tabAccent":"Acento de pestaña","checkedBackground":"Antecedentes comprobados","uncheckedBackground":"Fondo sin marcar","uncheckedBorder":"Frontera sin marcar","indicatorBackground":"Indicador Antecedentes","tableCellText":"Texto celular","selectedRowBackground":"Fondo de fila seleccionado","hoverRowBackground":"Fondo de la fila Hover","alternateRowBackground":"Fondo de fila alternativo","tableHeaderBackground":"Fondo de la cabecera","tableHeaderText":"Texto de cabecera","toolbarBackground":"Fondo de la barra de herramientas","toolbarText":"Texto de la barra de herramientas","pen":"Bolígrafo","footerIcon":"Icono de pie de página","tips":"Consejos","margin":"Margen","padding":"Acolchado","marginLeft":"Margen izquierdo","marginRight":"Margen derecho","marginTop":"Margen superior","marginBottom":"Margen inferior","containerheaderpadding":"Relleno de cabecera","containerfooterpadding":"Relleno de pie de página","containerbodypadding":"Acolchado corporal","minWidth":"Anchura mínima","aspectRatio":"Relación de aspecto","textSize":"Tamaño del texto"},"export":{"hiddenDesc":"Si es verdadero, el componente se oculta","disabledDesc":"Si es verdadero, el componente está desactivado y no es interactivo","visibleDesc":"Si es verdadero, el componente es visible","inputValueDesc":"Valor actual de la entrada","invalidDesc":"Indica si el valor no es válido","placeholderDesc":"Texto de marcador de posición cuando no se establece ningún valor","requiredDesc":"Si es verdadero, se requiere un valor válido","submitDesc":"Enviar formulario","richTextEditorValueDesc":"Valor actual del Editor","richTextEditorReadOnlyDesc":"Si es verdadero, el Editor es de sólo lectura","richTextEditorHideToolBarDesc":"Si es verdadero, la barra de herramientas se oculta","jsonEditorDesc":"Datos JSON actuales","sliderValueDesc":"Valor seleccionado actualmente","sliderMaxValueDesc":"Valor máximo del deslizador","sliderMinValueDesc":"Valor mínimo de la corredera","sliderStartDesc":"Valor del punto de partida seleccionado","sliderEndDesc":"Valor del punto final seleccionado","ratingValueDesc":"Clasificación seleccionada actualmente","ratingMaxDesc":"Valor nominal máximo","datePickerValueDesc":"Fecha seleccionada actualmente","datePickerFormattedValueDesc":"Fecha seleccionada formateada","datePickerTimestampDesc":"Marca de tiempo de la fecha seleccionada","dateRangeStartDesc":"Fecha de inicio del rango","dateRangeEndDesc":"Fecha final del intervalo","dateRangeStartTimestampDesc":"Marca de tiempo de la fecha de inicio","dateRangeEndTimestampDesc":"Marca de tiempo de la fecha de finalización","dateRangeFormattedValueDesc":"Rango de fechas formateado","dateRangeFormattedStartValueDesc":"Fecha de inicio formateada","dateRangeFormattedEndValueDesc":"Fecha final formateada","timePickerValueDesc":"Hora seleccionada actualmente","timePickerFormattedValueDesc":"Hora seleccionada formateada","timeRangeStartDesc":"Hora de inicio del alcance","timeRangeEndDesc":"Hora de finalización del alcance","timeRangeFormattedValueDesc":"Rango de tiempo formateado","timeRangeFormattedStartValueDesc":"Hora de inicio formateada","timeRangeFormattedEndValueDesc":"Hora final formateada"},"validationDesc":{"email":"Introduce una dirección de correo electrónico válida","url":"Por favor, introduce una URL válida","regex":"Concuerda con el patrón especificado","maxLength":"Demasiados caracteres, actual: {longitud}, máximo: {longitudmáxima}","minLength":"No hay suficientes caracteres, actual: {longitud}, mínimo: {longitud mínima}","maxValue":"El valor supera el máximo, actual: {valor}, máximo: {máximo}","minValue":"Valor por debajo del mínimo, actual: {valor}, mínimo: {mín}","maxTime":"El tiempo supera el máximo, actual: {hora}, máximo: {tiempomáx}","minTime":"Tiempo por debajo del mínimo, actual: {hora}, mínimo: {minTime}","maxDate":"La fecha supera el máximo, actual: {fecha}, máximo: {fechaMáx}","minDate":"Fecha por debajo del mínimo, actual: {fecha}, mínimo: {fechaMín}"},"query":{"noQueries":"No hay Consultas de Datos disponibles.","queryTutorialButton":"Ver documentos {valor}","datasource":"Tus fuentes de datos","newDatasource":"Nueva fuente de datos","generalTab":"General","notificationTab":"Notificación","advancedTab":"Avanzado","showFailNotification":"Mostrar notificación en caso de fallo","failCondition":"Condiciones de fallo","failConditionTooltip1":"Personaliza las condiciones de fallo y las notificaciones correspondientes.","failConditionTooltip2":"Si alguna condición devuelve verdadero, la consulta se marca como fallida y activa la notificación correspondiente.","showSuccessNotification":"Mostrar notificación de éxito","successMessageLabel":"Mensaje de éxito","successMessage":"Corre con éxito","notifyDuration":"Duración","notifyDurationTooltip":"Duración de la notificación. La unidad de tiempo puede ser \\'s\\' (segundo, por defecto) o \\'ms\\' (milisegundo). El valor por defecto es {default}s. El máximo es {max}s.","successMessageWithName":"{nombre} ejecutado correctamente","failMessageWithName":"Ha fallado la ejecución de {nombre}: {resultado}","showConfirmationModal":"Mostrar Modal de Confirmación Antes de Ejecutar","confirmationMessageLabel":"Mensaje de confirmación","confirmationMessage":"¿Estás seguro de que quieres ejecutar esta Consulta de Datos?","newQuery":"Nueva consulta de datos","newFolder":"Carpeta nueva","recentlyUsed":"Usado recientemente","folder":"Carpeta","folderNotEmpty":"La carpeta no está vacía","dataResponder":"Respondedor de datos","tempState":"Estado Temporal","transformer":"Transformador","quickRestAPI":"Consulta REST","quickStreamAPI":"Consulta de flujos","quickGraphql":"Consulta GraphQL","lowcoderAPI":"API Lowcoder","executeJSCode":"Ejecutar código JavaScript","importFromQueryLibrary":"Importar desde la biblioteca de consultas","importFromFile":"Importar desde archivo","triggerType":"Se activa cuando...","triggerTypeAuto":"Cambio de entradas o al cargar la página","triggerTypePageLoad":"Cuando se carga la Aplicación (Página)","triggerTypeManual":"Sólo cuando lo activas manualmente","chooseDataSource":"Elegir fuente de datos","method":"Método","updateExceptionDataSourceTitle":"Actualizar fuente de datos que falla","updateExceptionDataSourceContent":"Actualiza la siguiente consulta con la misma fuente de datos que falla:","update":"Actualiza","disablePreparedStatement":"Desactivar Declaraciones Preparadas","disablePreparedStatementTooltip":"Desactivar las sentencias preparadas puede generar SQL dinámico, pero aumenta el riesgo de inyección SQL","timeout":"Tiempo de espera tras","timeoutTooltip":"Unidad por defecto: ms. Unidades de entrada admitidas: ms, s. Valor por defecto: {defaultSeconds} segundos. Valor máximo: {maxSeconds} segundos. Por ejemplo, 300 (es decir, 300ms), 800ms, 5s.","periodic":"Ejecuta periódicamente esta consulta de datos","periodicTime":"Periodo","periodicTimeTooltip":"Periodo entre ejecuciones sucesivas. Unidad por defecto: ms. Unidades de entrada admitidas: ms, s. Valor mínimo: 100ms. La ejecución periódica se desactiva para valores inferiores a 100ms. Por ejemplo, 300 (es decir, 300ms), 800ms, 5s.","cancelPrevious":"Ignorar los resultados de ejecuciones anteriores no completadas","cancelPreviousTooltip":"Si se desencadena una nueva ejecución, se ignorará el resultado de las ejecuciones anteriores no completadas si no se completaron, y estas ejecuciones ignoradas no desencadenarán la lista de eventos de la consulta.","dataSourceStatusError":"Si se desencadena una nueva ejecución, se ignorará el resultado de las ejecuciones anteriores no completadas, y las ejecuciones ignoradas no desencadenarán la lista de eventos de la consulta.","success":"Éxito","fail":"Fallo","successDesc":"Se activa cuando la ejecución tiene éxito","failDesc":"Se activa cuando falla la ejecución","fixedDelayError":"Consulta no ejecutada","execSuccess":"Corre con éxito","execFail":"Error de ejecución","execIgnored":"Los resultados de esta consulta fueron ignorados","deleteSuccessMessage":"Eliminado con éxito. Puedes utilizar {undoKey} para Deshacer","dataExportDesc":"Datos obtenidos por la consulta actual","codeExportDesc":"Código de estado de la consulta actual","successExportDesc":"Si la consulta actual se ha ejecutado correctamente","messageExportDesc":"Información devuelta por la consulta actual","extraExportDesc":"Otros datos de la consulta actual","isFetchingExportDesc":"¿Es la consulta actual de la petición?","runTimeExportDesc":"Tiempo de ejecución de la consulta actual (ms)","latestEndTimeExportDesc":"Último tiempo de ejecución","triggerTypeExportDesc":"Tipo de gatillo","chooseResource":"Elige un Recurso","createDataSource":"Crear una nueva fuente de datos","editDataSource":"Edita","datasourceName":"Nombre","datasourceNameRuleMessage":"Introduce un nombre de fuente de datos","generalSetting":"Configuración general","advancedSetting":"Ajustes avanzados","port":"Puerto","portRequiredMessage":"Introduce un puerto","portErrorMessage":"Introduce un puerto correcto","connectionType":"Tipo de conexión","regular":"Regular","host":"Anfitrión","hostRequiredMessage":"Introduce un nombre de dominio de host o una dirección IP","userName":"Nombre de usuario","password":"Contraseña","encryptedServer":"-------- Cifrado en el lado del servidor --------","uriRequiredMessage":"Introduce un URI","urlRequiredMessage":"Introduce una URL","uriErrorMessage":"Por favor, introduce un URI correcto","urlErrorMessage":"Introduce una URL correcta","httpRequiredMessage":"Introduce http:// o https://","databaseName":"Nombre de la base de datos","databaseNameRequiredMessage":"Introduce el nombre de la base de datos","useSSL":"Utiliza SSL","userNameRequiredMessage":"Introduce tu nombre","passwordRequiredMessage":"Introduce tu contraseña","authentication":"Autenticación","authenticationType":"Tipo de autenticación","sslCertVerificationType":"Verificación de certificados SSL","sslCertVerificationTypeDefault":"Verificar CA Cert","sslCertVerificationTypeSelf":"Verificar certificado autofirmado","sslCertVerificationTypeDisabled":"Discapacitados","selfSignedCert":"Certificado autofirmado","selfSignedCertRequireMsg":"Introduce tu certificado","enableTurnOffPreparedStatement":"Activar la alternancia de sentencias preparadas para consultas","enableTurnOffPreparedStatementTooltip":"Puedes activar o desactivar las sentencias preparadas en la pestaña Avanzado de la consulta","serviceName":"Nombre del servicio","serviceNameRequiredMessage":"Introduce el nombre de tu servicio","useSID":"Utiliza el SID","connectSuccessfully":"Conexión correcta","saveSuccessfully":"Guardado correctamente","database":"Base de datos","cloudHosting":"Lowcoder alojado en la nube no puede acceder a los servicios locales utilizando 127.0.0.1 o localhost. Intenta conectarte a fuentes de datos de la red pública o utiliza un proxy inverso para los servicios privados.","notCloudHosting":"Para el despliegue alojado en Docker, Lowcoder utiliza redes puente, por lo que 127.0.0.1 y localhost no son válidos para las direcciones de host. Para acceder a las fuentes de datos de la máquina local, consulta","howToAccessHostDocLink":"Cómo acceder a la API/DB del host","returnList":"Devuelve","chooseDatasourceType":"Elige el tipo de fuente de datos","viewDocuments":"Ver documentos","testConnection":"Conexión de prueba","save":"Guarda","whitelist":"Lista de permisos","whitelistTooltip":"Añade las direcciones IP de Lowcoder\\ a tu lista de fuentes de datos permitidas según sea necesario.","address":"Dirección: ","nameExists":"El nombre {nombre} ya existe","jsQueryDocLink":"Acerca de la consulta JavaScript","dynamicDataSourceConfigLoadingText":"Cargando configuración extra de fuente de datos...","dynamicDataSourceConfigErrText":"No se ha podido cargar la configuración adicional de la fuente de datos.","retry":"Reintentar"},"sqlQuery":{"keyValuePairs":"Pares clave-valor","object":"Objeto","allowMultiModify":"Permitir la modificación de varias filas","allowMultiModifyTooltip":"Si se selecciona, se operan todas las filas que cumplan las condiciones. En caso contrario, sólo se operará sobre la primera fila que cumpla las condiciones.","array":"Matriz","insertList":"Insertar lista","insertListTooltip":"Valores insertados cuando no existen","filterRule":"Regla de filtrado","updateList":"Actualizar lista","updateListTooltip":"Los valores actualizados tal como existen pueden ser anulados por los mismos valores de la lista de inserción","sqlMode":"Modo SQL","guiMode":"Modo GUI","operation":"Operación","insert":"Inserta","upsert":"Insertar, pero Actualizar si hay conflicto","update":"Actualiza","delete":"Borra","bulkInsert":"Inserción a granel","bulkUpdate":"Actualización masiva","table":"Tabla","primaryKeyColumn":"Columna de clave primaria"},"EsQuery":{"rawCommand":"Comando en bruto","queryTutorialButton":"Ver documentos de la API de Elasticsearch","request":"Solicita"},"googleSheets":{"rowIndex":"Índice de filas","spreadsheetId":"ID de la hoja de cálculo","sheetName":"Nombre de la hoja","readData":"Leer datos","appendData":"Añadir fila","updateData":"Actualizar Fila","deleteData":"Borrar fila","clearData":"Fila clara","serviceAccountRequireMessage":"Introduce tu cuenta de servicio","ASC":"ASC","DESC":"DESC","sort":"Clasificar","sortPlaceholder":"Nombre"},"queryLibrary":{"export":"Exportar a JSON","noInput":"La consulta actual no tiene entrada","inputName":"Nombre","inputDesc":"Descripción","emptyInputs":"Sin entradas","clickToAdd":"Añade","chooseQuery":"Elige Consulta","viewQuery":"Ver consulta","chooseVersion":"Elegir versión","latest":"Lo último en","publish":"Publica","historyVersion":"Historia Versión","deleteQueryLabel":"Borrar consulta","deleteQueryContent":"No se puede recuperar la consulta después de borrarla. ¿Borrar la consulta?","run":"Ejecuta","readOnly":"Sólo lectura","exit":"Salir","recoverAppSnapshotContent":"Restaurar la consulta actual a la versión {versión}","searchPlaceholder":"Consulta de búsqueda","allQuery":"Todas las consultas","deleteQueryTitle":"Borrar consulta","unnamed":"Sin nombre","publishNewVersion":"Publicar nueva versión","publishSuccess":"Publicado con éxito","version":"Versión","desc":"Descripción"},"snowflake":{"accountIdentifierTooltip":"Consulta ","extParamsTooltip":"Configurar parámetros de conexión adicionales"},"lowcoderQuery":{"queryOrgUsers":"Consultar usuarios del espacio de trabajo"},"redisQuery":{"rawCommand":"Comando en bruto","command":"Mando","queryTutorial":"Ver documentos sobre los comandos de Redis"},"httpQuery":{"bodyFormDataTooltip":"Si se selecciona {tipo}, el formato del valor debe ser {objeto}. Ejemplo: {ejemplo}","text":"Texto","file":"Archivo","extraBodyTooltip":"Los valores clave del cuerpo extra se añadirán al cuerpo con tipos de datos JSON o de formulario","forwardCookies":"Adelante Cookies","forwardAllCookies":"Reenviar todas las cookies"},"smtpQuery":{"attachment":"Adjunto","attachmentTooltip":"Puede utilizarse con el componente de carga de archivos, los datos deben convertirse a: ","MIMETypeUrl":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types","sender":"Remitente","recipient":"Destinatario","carbonCopy":"Copia al carbón","blindCarbonCopy":"Copia al carbón ciega","subject":"Asunto","content":"Contenido","contentTooltip":"Admite la introducción de texto o HTML"},"uiCompCategory":{"dashboards":"Cuadros de mando e informes","layout":"Diseño y navegación","forms":"Recogida de datos y formularios","collaboration":"Reunión y colaboración","projectmanagement":"Gestión de proyectos","scheduling":"Calendario y programación","documents":"Gestión de documentos y archivos","itemHandling":"Tramitación de artículos y firmas","multimedia":"Multimedia y animación","integration":"Integración y ampliación"},"uiComp":{"autoCompleteCompName":"Auto Completo","autoCompleteCompDesc":"Un campo de entrada que proporciona sugerencias mientras escribes, mejorando la experiencia del usuario y la precisión.","autoCompleteCompKeywords":"sugerencias, autocompletar, escribir, entrada","inputCompName":"Entrada","inputCompDesc":"Un campo de entrada de texto básico que permite a los usuarios introducir y editar texto.","inputCompKeywords":"texto, entrada, campo, editar","textAreaCompName":"Área de texto","textAreaCompDesc":"Una entrada de texto de varias líneas para contenidos de forma más larga, como comentarios o descripciones.","textAreaCompKeywords":"multilínea, área de texto, entrada, texto","passwordCompName":"Contraseña","passwordCompDesc":"Un campo seguro para introducir la contraseña, enmascarando los caracteres para mayor privacidad.","passwordCompKeywords":"contraseña, seguridad, entrada, oculto","richTextEditorCompName":"Editor de texto enriquecido","richTextEditorCompDesc":"Un editor de texto avanzado que admite numerosas opciones de formato, como negrita, cursiva y listas.","richTextEditorCompKeywords":"editor, texto, formato, contenido enriquecido","numberInputCompName":"Número Entrada","numberInputCompDesc":"Un campo específico para la introducción de datos numéricos, con controles para aumentar y disminuir los valores.","numberInputCompKeywords":"número, entrada, incremento, decremento","sliderCompName":"Deslizador","sliderCompDesc":"Componente gráfico deslizante para seleccionar un valor o rango dentro de una escala definida.","sliderCompKeywords":"deslizador, rango, entrada, gráfico","rangeSliderCompName":"Corredera de alcance","rangeSliderCompDesc":"Un deslizador de doble asa para seleccionar un rango de valores, útil para filtrar o establecer límites.","rangeSliderCompKeywords":"gama, deslizador, doble asa, filtro","ratingCompName":"Clasificación","ratingCompDesc":"Un componente para capturar las valoraciones de los usuarios, mostradas como estrellas.","ratingCompKeywords":"valoración, estrellas, opiniones, aportaciones","switchCompName":"Interruptor","switchCompDesc":"Un interruptor basculante para decisiones del tipo encendido/apagado o sí/no.","switchCompKeywords":"conmutador, interruptor, encendido/apagado, control","selectCompName":"Selecciona","selectCompDesc":"Un menú desplegable para seleccionar entre una lista de opciones.","selectCompKeywords":"desplegable, seleccionar, opciones, menú","multiSelectCompName":"Multiselector","multiSelectCompDesc":"Un componente que permite seleccionar varios elementos de una lista desplegable.","multiSelectCompKeywords":"multiselección, múltiple, desplegable, opciones","cascaderCompName":"Cascader","cascaderCompDesc":"Un desplegable de varios niveles para la selección jerárquica de datos, como la selección de una ubicación.","cascaderCompKeywords":"cascada, jerárquico, desplegable, niveles","checkboxCompName":"Casilla de verificación","checkboxCompDesc":"Una casilla de verificación estándar para opciones que se pueden seleccionar o deseleccionar.","checkboxCompKeywords":"casilla, opciones, seleccionar, alternar","radioCompName":"Radio","radioCompDesc":"Botones de radio para seleccionar una opción de un conjunto, donde sólo se permite una elección.","radioCompKeywords":"radio, botones, seleccionar, elección única","segmentedControlCompName":"Control segmentado","segmentedControlCompDesc":"Un control con opciones segmentadas para alternar rápidamente entre varias opciones.","segmentedControlCompKeywords":"segmentado, control, conmutar, opciones","fileUploadCompName":"Carga de archivos","fileUploadCompDesc":"Un componente para subir archivos, con soporte para arrastrar y soltar y selección de archivos.","fileUploadCompKeywords":"archivo, subir, arrastrar y soltar, seleccionar","dateCompName":"Fecha","dateCompDesc":"Un componente selector de fechas para seleccionar fechas de una interfaz de calendario.","dateCompKeywords":"fecha, selector, calendario, seleccionar","dateRangeCompName":"Rango de fechas","dateRangeCompDesc":"Un componente para seleccionar un intervalo de fechas, útil para sistemas de reservas o filtros.","dateRangeCompKeywords":"daterange, seleccionar, reservar, filtrar","timeCompName":"Tiempo","timeCompDesc":"Un componente de selección de hora para elegir horas concretas del día.","timeCompKeywords":"hora, selector, seleccionar, reloj","timeRangeCompName":"Rango temporal","timeRangeCompDesc":"Componente para seleccionar un intervalo de tiempo, utilizado a menudo en aplicaciones de programación.","timeRangeCompKeywords":"timerange, seleccionar, programación, duración","buttonCompName":"Botón Formulario","buttonCompDesc":"Un componente de botón versátil para enviar formularios, desencadenar acciones o navegar.","buttonCompKeywords":"botón, enviar, acción, navegar","linkCompName":"Enlace","linkCompDesc":"Un componente de visualización de hipervínculos para navegar o enlazar con recursos externos.","linkCompKeywords":"enlace, hipervínculo, navegación, externo","scannerCompName":"Escáner","scannerCompDesc":"Un componente para escanear códigos de barras, códigos QR y otros datos similares.","scannerCompKeywords":"escáner, código de barras, código QR, escanear","dropdownCompName":"Desplegable","dropdownCompDesc":"Un menú desplegable para mostrar de forma compacta una lista de opciones.","dropdownCompKeywords":"desplegable, menú, opciones, seleccionar","toggleButtonCompName":"Botón Alternar","toggleButtonCompDesc":"Un botón que puede alternar entre dos estados u opciones.","toggleButtonCompKeywords":"conmutar, botón, interruptor, estado","textCompName":"Visualización de texto","textCompDesc":"Un componente sencillo para mostrar contenido de texto estático o dinámico con formato Markdown incluido.","textCompKeywords":"texto, visualización, estático, dinámico","tableCompName":"Tabla","tableCompDesc":"Un componente de tabla enriquecido para mostrar datos en formato de tabla estructurada, con opciones de ordenación y filtrado, visualización de Datos en árbol y Filas extensibles.","tableCompKeywords":"tabla, datos, ordenar, filtrar","imageCompName":"Imagen","imageCompDesc":"Un componente para mostrar imágenes, compatible con varios formatos basados en datos URI o Base64.","imageCompKeywords":"imagen, visualización, medios, Base64","progressCompName":"Progreso","progressCompDesc":"Un indicador visual de progreso, utilizado normalmente para mostrar el estado de finalización de una tarea.","progressCompKeywords":"progreso, indicador, estado, tarea","progressCircleCompName":"Círculo de Progreso","progressCircleCompDesc":"Un indicador de progreso circular, utilizado a menudo para estados de carga o tareas con límite de tiempo.","progressCircleCompKeywords":"círculo, progreso, indicador, carga","fileViewerCompName":"Visor de archivos","fileViewerCompDesc":"Un componente para visualizar varios tipos de archivos, incluidos documentos e imágenes.","fileViewerCompKeywords":"archivo, visor, documento, imagen","dividerCompName":"Divisor","dividerCompDesc":"Componente divisor visual, utilizado para separar contenidos o secciones en un diseño.","dividerCompKeywords":"divisor, separador, disposición, diseño","qrCodeCompName":"Código QR","qrCodeCompDesc":"Un componente para mostrar códigos QR, útil para escanearlos rápidamente y transferir información.","qrCodeCompKeywords":"Código QR, escaneo, código de barras, información","formCompName":"Formulario","formCompDesc":"Un componente contenedor para construir formularios estructurados con varios tipos de entrada.","formCompKeywords":"formulario, entrada, contenedor, estructura","jsonSchemaFormCompName":"Formulario de esquema JSON","jsonSchemaFormCompDesc":"Un componente de formulario dinámico generado a partir de un esquema JSON.","jsonSchemaFormCompKeywords":"JSON, esquema, formulario, dinámico","containerCompName":"Contenedor","containerCompDesc":"Un contenedor de uso general para el diseño y la organización de los elementos de la interfaz de usuario.","containerCompKeywords":"contenedor, diseño, organización, IU","collapsibleContainerCompName":"Contenedor plegable","collapsibleContainerCompDesc":"Un contenedor que puede expandirse o colapsarse, ideal para gestionar la visibilidad del contenido.","collapsibleContainerCompKeywords":"plegable, contenedor, expandir, colapsar","tabbedContainerCompName":"Contenedor con pestañas","tabbedContainerCompDesc":"Un contenedor con navegación por pestañas para organizar el contenido en paneles separados.","tabbedContainerCompKeywords":"pestañas, contenedor, navegación, paneles","modalCompName":"Modal","modalCompDesc":"Un componente modal emergente para mostrar contenido, alertas o formularios en foco.","modalCompKeywords":"modal, popup, alerta, formulario","listViewCompName":"Ver lista","listViewCompDesc":"Un componente para mostrar una lista de elementos o datos, en cuyo interior puedes colocar otros componentes. Como un repetidor.","listViewCompKeywords":"lista, vista, visualización, repetidor","gridCompName":"Rejilla","gridCompDesc":"Un componente de cuadrícula flexible para crear diseños estructurados con filas y columnas como extensión del componente Vista Lista.","gridCompKeywords":"cuadrícula, diseño, filas, columnas","navigationCompName":"Navegación","navigationCompDesc":"Un componente de navegación para crear menús, migas de pan o pestañas para la navegación por el sitio.","navigationCompKeywords":"navegación, menú, migas de pan, pestañas","iframeCompName":"IFrame","iframeCompDesc":"Un componente de marco en línea para incrustar páginas web externas y aplicaciones o contenidos dentro de la aplicación.","iframeCompKeywords":"iframe, incrustar, página web, contenido","customCompName":"Componente personalizado","customCompDesc":"Un componente flexible y programable para crear elementos de interfaz de usuario únicos, definidos por el usuario y adaptados a tus necesidades específicas.","customCompKeywords":"personalizado, definido por el usuario, flexible, programable","moduleCompName":"Módulo","moduleCompDesc":"Utiliza Módulos para crear Micro-Apps diseñadas para encapsular funcionalidades o características específicas. Los módulos pueden incrustarse y reutilizarse en todas las aplicaciones.","moduleCompKeywords":"módulo, micro-app, funcionalidad, reutilizable","jsonExplorerCompName":"Explorador JSON","jsonExplorerCompDesc":"Un componente para explorar visualmente e interactuar con estructuras de datos JSON.","jsonExplorerCompKeywords":"JSON, explorador, datos, estructura","jsonEditorCompName":"Editor JSON","jsonEditorCompDesc":"Un componente editor para crear y modificar datos JSON con validación y resaltado de sintaxis.","jsonEditorCompKeywords":"JSON, editor, modificar, validar","treeCompName":"Árbol","treeCompDesc":"Un componente de estructura de árbol para mostrar datos jerárquicos, como sistemas de archivos u organigramas.","treeCompKeywords":"árbol, jerárquico, datos, estructura","treeSelectCompName":"Seleccionar árbol","treeSelectCompDesc":"Un componente de selección que presenta las opciones en formato de árbol jerárquico, permitiendo selecciones organizadas y anidadas.","treeSelectCompKeywords":"árbol, seleccionar, jerárquico, anidado","audioCompName":"Audio","audioCompDesc":"Un componente para incrustar contenido de audio, con controles para la reproducción y el ajuste del volumen.","audioCompKeywords":"audio, reproducción, sonido, música","videoCompName":"Vídeo","videoCompDesc":"Un componente multimedia para incrustar y reproducir contenidos de vídeo, compatible con varios formatos.","videoCompKeywords":"vídeo, multimedia, reproducción, incrustar","drawerCompName":"Cajón","drawerCompDesc":"Componente de un panel deslizante que puede utilizarse para navegación adicional o visualización de contenidos, y que suele emerger del borde de la pantalla.","drawerCompKeywords":"cajón, corredera, panel, navegación","chartCompName":"Gráfico","chartCompDesc":"Un componente versátil para visualizar datos mediante diversos tipos de tablas y gráficos.","chartCompKeywords":"tabla, gráfico, datos, visualización","carouselCompName":"Carrusel de imágenes","carouselCompDesc":"Un componente de carrusel giratorio para mostrar imágenes, banners o diapositivas de contenido.","carouselCompKeywords":"carrusel, imágenes, rotación, escaparate","imageEditorCompName":"Editor de imágenes","imageEditorCompDesc":"Un componente interactivo para editar y manipular imágenes, que ofrece diversas herramientas y filtros.","imageEditorCompKeywords":"imagen, editor, manipular, herramientas","mermaidCompName":"Cartas de sirenas","mermaidCompDesc":"Un componente para representar diagramas y organigramas complejos basados en la sintaxis Mermaid.","mermaidCompKeywords":"sirena, gráficos, diagramas, organigramas","calendarCompName":"Calendario","calendarCompDesc":"Un componente de calendario para mostrar fechas y eventos, con opciones de vistas de mes, semana o día.","calendarCompKeywords":"calendario, fechas, eventos, programación","signatureCompName":"Firma","signatureCompDesc":"Un componente para capturar firmas digitales, útil para procesos de aprobación y verificación.","signatureCompKeywords":"firma, digital, aprobación, verificación","jsonLottieCompName":"Animación Lottie","jsonLottieCompDesc":"Un componente para mostrar animaciones Lottie, que proporciona animaciones ligeras y escalables basadas en datos JSON.","jsonLottieCompKeywords":"lottie, animación, JSON, escalable","timelineCompName":"Cronología","timelineCompDesc":"Componente para mostrar acontecimientos o acciones en orden cronológico, representados visualmente a lo largo de una línea de tiempo lineal.","timelineCompKeywords":"cronología, acontecimientos, cronológico, historia","commentCompName":"Comentario","commentCompDesc":"Un componente para añadir y mostrar comentarios de los usuarios, que admite respuestas en hilos y la interacción de los usuarios.","commentCompKeywords":"comentario, debate, interacción con el usuario, respuesta","mentionCompName":"Menciona","mentionCompDesc":"Componente que permite mencionar usuarios o etiquetas dentro de un contenido de texto, utilizado normalmente en redes sociales o plataformas colaborativas.","mentionCompKeywords":"mencionar, etiquetar, usuario, redes sociales","responsiveLayoutCompName":"Diseño adaptable","responsiveLayoutCompDesc":"Un componente de diseño diseñado para adaptarse y responder a diferentes tamaños de pantalla y dispositivos, garantizando una experiencia de usuario coherente.","responsiveLayoutCompKeywords":"responsive, diseño, adaptar, tamaño pantalla"},"comp":{"menuViewDocs":"Ver documentación","menuViewPlayground":"Ver zona de juegos interactiva","menuUpgradeToLatest":"Actualizar a la última versión","nameNotEmpty":"No puede estar vacío","nameRegex":"Debe empezar por una letra y contener sólo letras, cifras y guiones bajos (_)","nameJSKeyword":"No puede ser una palabra clave JavaScript","nameGlobalVariable":"No puede ser un nombre de variable global","nameExists":"El nombre {nombre} ya existe","getLatestVersionMetaError":"No se ha podido obtener la última versión, inténtalo más tarde.","needNotUpgrade":"La versión actual ya es la última.","compNotFoundInLatestVersion":"Componente actual no encontrado en la última versión.","upgradeSuccess":"Actualizado correctamente a la última versión.","searchProp":"Busca en"},"jsonSchemaForm":{"retry":"Reintentar","resetAfterSubmit":"Restablecer después de enviar correctamente el formulario","jsonSchema":"Esquema JSON","uiSchema":"Esquema de IU","schemaTooltip":"Consulta","defaultData":"Datos de formulario precargados","dataDesc":"Datos del formulario actual","required":"Necesario","maximum":"El valor máximo es {valor}","minimum":"El valor mínimo es {valor}","exclusiveMaximum":"Debe ser inferior a {valor}","exclusiveMinimum":"Debe ser mayor que {valor}","multipleOf":"Debe ser múltiplo de {valor}","minLength":"Al menos {valor} Caracteres","maxLength":"Como máximo {valor} Caracteres","pattern":"Debe coincidir con el patrón {valor}","format":"Debe coincidir con el formato {valor}"},"select":{"inputValueDesc":"Valor de búsqueda de entrada"},"customComp":{"text":"Es un buen día.","triggerQuery":"Consulta desencadenante","updateData":"Actualizar datos","updateText":"¡También estoy de buen humor para desarrollar ahora mi propio componente personalizado con Lowcoder!","sdkGlobalVarName":"Lowcoder","data":"Datos que quieres pasar al Componente personalizado","code":"Código de tu componente personalizado"},"tree":{"selectType":"Selecciona el tipo","noSelect":"No Seleccionar","singleSelect":"Selección única","multiSelect":"Selección múltiple","checkbox":"Casilla de verificación","checkedStrategy":"Estrategia comprobada","showAll":"Todos los nodos","showParent":"Sólo nodos padre","showChild":"Nodos hijos únicos","autoExpandParent":"Auto Expandir Padre","checkStrictly":"Comprobar estrictamente","checkStrictlyTooltip":"Comprueba con precisión el Nodo del Árbol; el Nodo del Árbol padre y los Nodos del Árbol hijos no están asociados","treeData":"Datos del árbol","treeDataDesc":"Datos actuales del árbol","value":"Valores por defecto","valueDesc":"Valores actuales","expanded":"Valores ampliados","expandedDesc":"Valores ampliados actuales","defaultExpandAll":"Por defecto Expandir todos los nodos","showLine":"Mostrar línea","showLeafIcon":"Mostrar icono de hoja","treeDataAsia":"Asia","treeDataChina":"China","treeDataBeijing":"Pekín","treeDataShanghai":"Shanghai","treeDataJapan":"Japón","treeDataEurope":"Europa","treeDataEngland":"Inglaterra","treeDataFrance":"Francia","treeDataGermany":"Alemania","treeDataNorthAmerica":"América del Norte","helpLabel":"Etiqueta de nodo","helpValue":"Valor único del nodo en el árbol","helpChildren":"Niños Nodos","helpDisabled":"Desactiva el Nodo","helpSelectable":"Si el Nodo es Seleccionable (Tipo de Selección Simple/Múltiple)","helpCheckable":"Si mostrar casilla de verificación (Tipo de casilla de verificación)","helpDisableCheckbox":"Desactiva la casilla de verificación (Tipo de casilla de verificación)"},"moduleContainer":{"eventTest":"Prueba de Evento","methodTest":"Método de ensayo","inputTest":"Prueba de entrada"},"password":{"label":"Contraseña","visibilityToggle":"Conmutar visibilidad"},"richTextEditor":{"toolbar":"Personalizar la barra de herramientas","toolbarDescription":"Puedes personalizar la barra de herramientas. Consulta: https://quilljs.com/docs/modules/toolbar/ para más detalles.","placeholder":"Por favor, introduce...","hideToolbar":"Ocultar barra de herramientas","content":"Contenido","title":"Título","save":"Guarda","link":"Enlace: ","edit":"Edita","remove":"Elimina","defaultValue":"Contenido básico"},"numberInput":{"formatter":"Formato","precision":"Precisión","allowNull":"Permitir valor nulo","thousandsSeparator":"Mostrar separador de miles","controls":"Mostrar botones de aumento/disminución","step":"Paso","standard":"Estándar","percent":"Porcentaje"},"slider":{"step":"Paso","stepTooltip":"El valor debe ser mayor que 0 y divisible por (Máx-Mín)"},"rating":{"max":"Clasificación máxima","allowHalf":"Permitir la mitad de puntos de valoración"},"optionsControl":{"optionList":"Opciones","option":"Opción","optionI":"Opción {i}","viewDocs":"Ver documentos","tip":"Las variables \\'item\\' y \\'i\\' representan el valor y el índice de cada elemento de la matriz de datos"},"radio":{"options":"Opciones","horizontal":"Horizontal","horizontalTooltip":"La Disposición Horizontal Se Enrolla Cuando Se Queda Sin Espacio","vertical":"Vertical","verticalTooltip":"El diseño vertical siempre se mostrará en una sola columna","autoColumns":"Columna Auto","autoColumnsTooltip":"La disposición en autocolumnas reordena automáticamente el orden según lo permita el espacio y se muestra como varias columnas"},"cascader":{"options":"Datos JSON para mostrar selecciones en cascada"},"selectInput":{"valueDesc":"Valor seleccionado actualmente","selectedIndexDesc":"El índice del valor seleccionado actualmente, o -1 si no hay ningún valor seleccionado","selectedLabelDesc":"La etiqueta del valor seleccionado actualmente"},"file":{"typeErrorMsg":"Debe ser un número con una unidad de tamaño de archivo válida, o un número de bytes sin unidad.","fileEmptyErrorMsg":"Carga fallida. El tamaño del archivo está vacío.","fileSizeExceedErrorMsg":"Carga fallida. El tamaño del archivo supera el límite.","minSize":"Tamaño mínimo","minSizeTooltip":"El Tamaño Mínimo de los Archivos Subidos con Unidades de Tamaño de Archivo Opcionales (por ejemplo, \\'5kb\\', \\'10 MB\\'). Si no se proporciona ninguna unidad, el valor se considerará un número de bytes.","maxSize":"Tamaño máximo","maxSizeTooltip":"El tamaño máximo de los archivos subidos con unidades opcionales de tamaño de archivo (por ejemplo, \\'5kb\\', \\'10 MB\\'). Si no se proporciona ninguna unidad, el valor se considerará un número de bytes.","single":"Individual","multiple":"Múltiple","directory":"Directorio","upload":"Navega por","fileType":"Tipos de archivos","reference":"Consulta","fileTypeTooltipUrl":"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers","fileTypeTooltip":"Especificadores únicos de tipo de archivo","uploadType":"Tipo de carga","showUploadList":"Mostrar lista de cargas","maxFiles":"Archivos Max","filesValueDesc":"El contenido del archivo cargado actualmente está codificado en Base64","filesDesc":"Lista de los archivos cargados actualmente. Para más detalles, consulta","clearValueDesc":"Borrar todos los archivos","parseFiles":"Analizar archivos","parsedValueTooltip1":"Si parseFiles es True, los archivos cargados se convertirán en objetos, matrices o cadenas. Se puede acceder a los datos analizados a través de la matriz parsedValue.","parsedValueTooltip2":"Admite archivos Excel, JSON, CSV y de texto. Otros formatos devolverán un valor nulo."},"date":{"format":"Formato","formatTip":"Admite: \\AAAA-MM-DD HH:mm:ss\", \"AAAA-MM-DD\", \"Timestamp\".","reference":"Consulta","showTime":"Hora del espectáculo","start":"Fecha de inicio","end":"Fecha final","year":"Año","quarter":"Cuarto","month":"Mes","week":"Semana","date":"Fecha","clearAllDesc":"Borrar todo","resetAllDesc":"Restablecer todo","placeholder":"Seleccionar fecha","placeholderText":"Marcador de posición","startDate":"Fecha de inicio","endDate":"Fecha final"},"time":{"start":"Hora de inicio","end":"Fin de los tiempos","formatTip":"Soporte: \\'HH:mm:ss\\', \\'Timestamp\\'","format":"Formato","placeholder":"Selecciona Hora","placeholderText":"Marcador de posición","startTime":"Hora de inicio","endTime":"Fin de los tiempos"},"button":{"prefixIcon":"Icono Prefijo","suffixIcon":"Icono Sufijo","icon":"Icono","iconSize":"Tamaño del icono","button":"Botón Formulario","formToSubmit":"Formulario para enviar","default":"Por defecto","submit":"Envía","textDesc":"Texto mostrado actualmente en el botón","loadingDesc":"¿Está el Botón en Estado de Carga? Si es cierto, el botón actual está cargando","formButtonEvent":"Evento"},"link":{"link":"Enlace","textDesc":"Texto mostrado actualmente en el enlace","loadingDesc":"¿Está el Enlace en Estado de Carga? Si es Verdadero, el Enlace Actual Está Cargando"},"scanner":{"text":"Haz clic en Escanear","camera":"Cámara {índice}","changeCamera":"Cambiar cámara","continuous":"Escaneado continuo","uniqueData":"Ignorar datos duplicados","maskClosable":"Pulsa la Máscara para Cerrar","errTip":"Utiliza este componente bajo HTTPS o Localhost"},"dropdown":{"onlyMenu":"Pantalla sólo con etiqueta","textDesc":"Texto mostrado actualmente en el botón"},"textShow":{"text":"### 👋 Hola, {nombre}","valueTooltip":"Markdown admite la mayoría de etiquetas y atributos HTML. iframe, Script y otras etiquetas están desactivadas por motivos de seguridad.","verticalAlignment":"Alineación vertical","horizontalAlignment":"Alineación horizontal","textDesc":"Texto mostrado en el cuadro de texto actual"},"table":{"editable":"Editable","columnNum":"Columnas","viewModeResizable":"Ancho de columna ajustado por el usuario","viewModeResizableTooltip":"Si los usuarios pueden ajustar el ancho de columna.","showFilter":"Botón Mostrar filtro","showRefresh":"Mostrar botón Actualizar","showDownload":"Mostrar botón de descarga","columnSetting":"Botón Mostrar ajuste de columna","searchText":"Buscar texto","searchTextTooltip":"Buscar y Filtrar los Datos Presentados en la Tabla","showQuickJumper":"Mostrar saltador rápido","hideOnSinglePage":"Ocultar en una sola página","showSizeChanger":"Mostrar botón de cambio de tamaño","pageSizeOptions":"Opciones de tamaño de página","pageSize":"Tamaño de página","total":"Recuento total de filas","totalTooltip":"El valor por defecto es el número de elementos de datos actuales, que se pueden obtener de la consulta, por ejemplo: \\'{{query1.data[0].count}}\\'","filter":"Filtrar","filterRule":"Regla de filtrado","chooseColumnName":"Elegir columna","chooseCondition":"Elegir condición","clear":"Claro","columnShows":"Columnas","selectAll":"Seleccionar todo","and":"Y","or":"O","contains":"Contiene","notContain":"No contiene","equals":"Es igual a","isNotEqual":"No es igual","isEmpty":"Está vacío","isNotEmpty":"No está vacío","greater":"Mayor que","greaterThanOrEquals":"Mayor o igual que","lessThan":"Menos de","lessThanOrEquals":"Menor o igual que","action":"Acción","columnValue":"Valor de columna","columnValueTooltip":"\\'{{currentCell}}\\': Datos celulares actuales{{currentRow}}\\': Datos de la fila actual{{currentIndex}}\\': Índice de Datos Actuales (Empezando por 0)\\n Ejemplo: \\'{{CeldaActual * 5}}' Mostrar 5 Veces el Valor Original de los Datos.","imageSrc":"Fuente de la imagen","imageSize":"Tamaño de la imagen","columnTitle":"Título","sortable":"Clasificable","align":"Alineación","fixedColumn":"Columna fija","autoWidth":"Ancho automático","customColumn":"Columna personalizada","auto":"Auto","fixed":"Fijo","columnType":"Tipo de columna","float":"Flotador","prefix":"Prefijo","suffix":"Sufijo","text":"Texto","number":"Número","link":"Enlace","links":"Enlaces","tag":"Etiqueta","date":"Fecha","dateTime":"Fecha Hora","badgeStatus":"Estado","button":"Botón","image":"Imagen","boolean":"Booleano","rating":"Clasificación","progress":"Progreso","option":"Operación","optionList":"Lista de operaciones","option1":"Operación 1","status":"Estado","statusTooltip":"Valores opcionales: Correcto, Error, Predeterminado, Advertencia, Procesando","primaryButton":"Primaria","defaultButton":"Por defecto","type":"Tipo","tableSize":"Tamaño de la tabla","hideHeader":"Ocultar cabecera de tabla","fixedHeader":"Cabecera de tabla fija","fixedHeaderTooltip":"La cabecera será fija para la tabla desplazable verticalmente","fixedToolbar":"Barra de herramientas fija","fixedToolbarTooltip":"La barra de herramientas se fijará para la tabla desplazable verticalmente en función de la posición","hideBordered":"Ocultar borde de columna","deleteColumn":"Borrar columna","confirmDeleteColumn":"Confirmar Borrar columna: ","small":"S","middle":"M","large":"L","refreshButtonTooltip":"Los Datos Actuales Cambian, Pulsa para Regenerar la Columna.","changeSetDesc":"Un Objeto que Representa Cambios en una Tabla Editable, Sólo Contiene la Celda Cambiada. Las filas van primero y las columnas después.","selectedRowDesc":"Proporciona Datos de la Fila Seleccionada Actualmente, Indicando la Fila que Desencadena un Suceso de Clic Si el Usuario Pulsa un Botón/Link en la Fila","selectedRowsDesc":"Útil en el modo de selección múltiple, igual que SelectedRow","pageNoDesc":"Página de visualización actual, empezando por 1","pageSizeDesc":"Cuántas filas por página","sortColumnDesc":"El nombre de la columna ordenada actualmente seleccionada","sortDesc":"Si la fila actual está en orden descendente","pageOffsetDesc":"El inicio actual de la paginación, utilizado para paginar para obtener datos. Ejemplo: Select * from Usuarios Limit \\'{{table1.pageSize}}\\Desplazamiento{{table1.pageOffset}}\\'","displayDataDesc":"Datos mostrados en la tabla actual","selectedIndexDesc":"Índice seleccionado en Mostrar datos","filterDesc":"Parámetros de filtrado de tablas","dataDesc":"Los datos JSON de la tabla","saveChanges":"Guardar cambios","cancelChanges":"Cancelar cambios","rowSelectChange":"Cambio de selección de fila","rowClick":"Fila Clic","rowExpand":"Fila Ampliar","filterChange":"Cambio de filtro","sortChange":"Ordenar Cambio","pageChange":"Cambio de página","refresh":"Actualiza","rowColor":"Color de fila condicional","rowColorDesc":"Establece Condicionalmente el Color de la Fila en Función de las Variables Opcionales: FilaActual, ÍndiceOriginalActual, ÍndiceActual, TítuloDeColumna. Por ejemplo \\'{{ filaactual.id > 3 ? \"verde%r@\\\" : \"rojo%r@\\\" }}\\'","cellColor":"Color de celda condicional","cellColorDesc":"Establece condicionalmente el color de la celda en función del valor de la celda utilizando CeldaActual. Por ejemplo \\'{{ celdaactual == 3 ? \"verde%r@\\\" : \"rojo%r@\\\" }}\\'","saveChangesNotBind":"No se ha configurado ningún controlador de eventos para guardar los cambios. Por favor, vincula al menos un controlador de eventos antes de hacer clic.","dynamicColumn":"Utilizar la configuración dinámica de columnas","dynamicColumnConfig":"Ajuste de columna","dynamicColumnConfigDesc":"Configuración Dinámica de Columnas. Acepta una Matriz de Nombres de Columna. Todas las Columnas son Visibles por Defecto. Ejemplo: [%r@\\\"id%r@\\\", %r@\\\"name%r@\\\"]","position":"Posición","showDataLoadSpinner":"Mostrar la rueda giratoria durante la carga de datos","showValue":"Mostrar valor","expandable":"Ampliable","configExpandedView":"Configurar vista ampliada","toUpdateRowsDesc":"Una matriz de objetos para filas a actualizar en tablas editables.","empty":"Vacío","falseValues":"Texto cuando es falso","allColumn":"Todos","visibleColumn":"Visible","emptyColumns":"Actualmente no hay columnas visibles"},"image":{"src":"Fuente de la imagen","srcDesc":"La fuente de la imagen. Puede ser una URL, una ruta o una cadena Base64. Por ejemplo: data:image/png;base64, AAA... CCC","supportPreview":"Soporte Haz clic en Vista previa (zoom)","supportPreviewTip":"Efectivo cuando la fuente de la imagen es válida"},"progress":{"value":"Valor","valueTooltip":"El Porcentaje Completo como valor entre 0 y 100","showInfo":"Mostrar valor","valueDesc":"Valor de progreso actual, de 0 a 100","showInfoDesc":"Si mostrar el valor de progreso actual"},"fileViewer":{"invalidURL":"Introduce una URL válida o una cadena Base64","src":"URI del archivo","srcTooltip":"Previsualiza el contenido del enlace proporcionado incrustando HTML, también se pueden admitir datos codificados en base64, por ejemplo: data:application/pdf; base64,AAA... CCC","srcDesc":"La URI del archivo"},"divider":{"title":"Título","align":"Alineación","dashed":"Guiones","dashedDesc":"Si utilizar línea discontinua","titleDesc":"Título del divisor","alignDesc":"Alineación del título del divisor"},"QRCode":{"value":"Valor del contenido del código QR","valueTooltip":"El valor contiene un máximo de 2953 caracteres. El valor del código QR puede codificar varios tipos de datos, como mensajes de texto, URL, datos de contacto (VCard/meCard), credenciales de inicio de sesión Wi-Fi, direcciones de correo electrónico, números de teléfono, mensajes SMS, coordenadas de geolocalización, detalles de eventos del calendario, información de pago, direcciones de criptomonedas y enlaces de descarga de aplicaciones.","valueDesc":"El valor del contenido del código QR","level":"Nivel de tolerancia a fallos","levelTooltip":"Se refiere a la capacidad del código QR para ser escaneado aunque parte de él esté bloqueada. Cuanto más alto es el nivel, más complejo es el código.","includeMargin":"Mostrar margen","image":"Mostrar imagen en el centro","L":"L (Bajo)","M":"M (Medio)","Q":"Q (Cuartil)","H":"H (Alto)","maxLength":"El contenido es demasiado largo. Ajusta la longitud a menos de 2953 caracteres"},"jsonExplorer":{"indent":"Sangría de cada nivel","expandToggle":"Expandir árbol JSON","theme":"Tema del color","valueDesc":"Datos JSON actuales","default":"Por defecto","defaultDark":"Por defecto Oscuro","neutralLight":"Luz neutra","neutralDark":"Neutro Oscuro","azure":"Azure","darkBlue":"Azul oscuro"},"audio":{"src":"URI de la fuente de audio o cadena Base64","defaultSrcUrl":"https://cdn.pixabay.com/audio/2023/07/06/audio_e12e5bea9d.mp3","autoPlay":"Reproducción automática","loop":"Bucle","srcDesc":"URI de audio actual o cadena Base64 como data:audio/mpeg;base64,AAA... CCC","play":"Juega a","playDesc":"Se activa cuando se reproduce audio","pause":"Pausa","pauseDesc":"Se activa cuando se pausa el audio","ended":"Finalizado","endedDesc":"Se activa cuando el audio termina de reproducirse"},"video":{"src":"URI de la fuente de vídeo o cadena Base64","defaultSrcUrl":"https://www.youtube.com/watch?v=pRpeEdMmmQ0","poster":"URL del póster","defaultPosterUrl":"","autoPlay":"Reproducción automática","loop":"Bucle","controls":"Ocultar controles","volume":"Volumen","playbackRate":"Velocidad de reproducción","posterTooltip":"El valor por defecto es el primer fotograma del vídeo","autoPlayTooltip":"Después de cargar el vídeo, se reproducirá automáticamente. Si cambias este valor de Verdadero a Falso, el vídeo se pausará. (Si se establece un Póster, se reproducirá mediante el Botón de Póster)","controlsTooltip":"Ocultar controles de reproducción de vídeo. Puede no ser totalmente compatible con todas las fuentes de vídeo.","volumeTooltip":"Ajustar el Volumen del Reproductor, Entre 0 y 1","playbackRateTooltip":"Ajustar la velocidad del reproductor, entre 1 y 2","srcDesc":"URI de audio actual o cadena Base64 como data:video/mp4;base64, AAA... CCC","play":"Juega a","playDesc":"Se activa cuando se reproduce el vídeo","pause":"Pausa","pauseDesc":"Se activa al pausar el vídeo","load":"Carga","loadDesc":"Se activa cuando el recurso de vídeo ha terminado de cargarse","ended":"Finalizado","endedDesc":"Se activa cuando el vídeo termina de reproducirse","currentTimeStamp":"La posición actual de reproducción del vídeo en segundos","duration":"La duración total del vídeo en segundos"},"media":{"playDesc":"Inicia la reproducción del medio.","pauseDesc":"Pausa la reproducción multimedia.","loadDesc":"Restablece el Medio al Principio y Reinicia Seleccionando el Recurso Multimedia.","seekTo":"Buscar hasta el número de segundos dado, o fracción si la cantidad está entre 0 y 1","seekToAmount":"Número de segundos, o fracción si está entre 0 y 1","showPreview":"Avance del espectáculo"},"rangeSlider":{"start":"Valor inicial","end":"Valor final","step":"Tamaño del paso","stepTooltip":"Granularidad del deslizador, el valor debe ser mayor que 0 y divisible por (Max-Min)"},"iconControl":{"selectIcon":"Selecciona un icono","insertIcon":"Insertar un icono","insertImage":"Insertar una imagen o "},"millisecondsControl":{"timeoutTypeError":"Por favor, introduce el periodo de tiempo de espera correcto en ms, la entrada actual es: {valor}","timeoutLessThanMinError":"La entrada debe ser mayor que {izquierda}, la entrada actual es: {valor}"},"selectionControl":{"single":"Individual","multiple":"Múltiple","close":"Cerrar","mode":"Seleccionar modo"},"container":{"title":"Título del contenedor mostrado"},"drawer":{"closePosition": "Colocación de los cerca","placement":"Colocación de los cajones","size":"Talla","top":"Arriba","right":"A la derecha","bottom":"Fondo","left":"Izquierda","widthTooltip":"Píxel o Porcentaje, por ejemplo 520, 60%.","heightTooltip":"Píxel, por ejemplo 378","openDrawerDesc":"Cajón abierto","closeDrawerDesc":"Cerrar cajón","width":"Ancho del cajón","height":"Altura del cajón"},"meeting":{"logLevel":"Agora SDK Nivel de registro","placement":"Colocación del cajón de reunión","meeting":"Ajustes de la reunión","cameraView":"Vista de cámara","cameraViewDesc":"Vista de cámara del usuario local (anfitrión)","screenShared":"Pantalla compartida","screenSharedDesc":"Pantalla compartida por el usuario local (anfitrión)","audioUnmuted":"Audio sin silenciar","audioMuted":"Audio silenciado","videoClicked":"Vídeo pulsado","videoOff":"Vídeo apagado","videoOn":"Vídeo","size":"Talla","top":"Arriba","host":"Anfitrión de la Sala de Reuniones. Tendrías que gestionar el anfitrión como una Aplicación Lógica propia","participants":"Participantes de la Sala de Reuniones","shareScreen":"Pantalla compartida por el usuario local","appid":"ID de la aplicación Ágora","meetingName":"Nombre de la reunión","localUserID":"ID de usuario del host","userName":"Nombre de usuario del host","rtmToken":"Ficha Agora RTM","rtcToken":"Ficha Agora RTC","noVideo":"Sin vídeo","profileImageUrl":"URL de la imagen del perfil","right":"A la derecha","bottom":"Fondo","videoId":"ID del flujo de vídeo","audioStatus":"Estado del audio","left":"Izquierda","widthTooltip":"Píxel o Porcentaje, por ejemplo 520, 60%.","heightTooltip":"Píxel, por ejemplo 378","openDrawerDesc":"Cajón abierto","closeDrawerDesc":"Cerrar cajón","width":"Ancho del cajón","height":"Altura del cajón","actionBtnDesc":"Botón de acción","broadCast":"Transmitir mensajes","title":"Título de la reunión","meetingCompName":"Controlador de Reuniones Agora","sharingCompName":"Compartir pantalla Stream","videoCompName":"Flujo de cámara","videoSharingCompName":"Compartir pantalla Stream","meetingControlCompName":"Botón de control","meetingCompDesc":"Componente de la reunión","meetingCompControls":"Control de reuniones","meetingCompKeywords":"Reunión Ágora, Reunión Web, Colaboración","iconSize":"Tamaño del icono","userId":"ID de usuario del host","roomId":"Identificación de la habitación","meetingActive":"Reunión en curso","messages":"Mensajes emitidos"},"settings":{"title":"Ajustes","userGroups":"Grupos de usuarios","organization":"Espacios de trabajo","audit":"Registros de auditoría","theme":"Temas","plugin":"Plugins","advanced":"Avanzado","lab":"Laboratorio","branding":"Marca","oauthProviders":"Proveedores OAuth","appUsage":"Registros de uso de la aplicación","environments":"Entornos","premium":"Premium"},"memberSettings":{"admin":"Admin","adminGroupRoleInfo":"El administrador puede gestionar los miembros y recursos del grupo","adminOrgRoleInfo":"Los administradores son propietarios de todos los recursos y pueden gestionar grupos.","member":"Miembro","memberGroupRoleInfo":"Los miembros pueden ver a los miembros del grupo","memberOrgRoleInfo":"Los miembros sólo pueden utilizar o visitar los recursos a los que tienen acceso.","title":"Miembros","createGroup":"Crear grupo","newGroupPrefix":"Nuevo Grupo ","allMembers":"Todos los miembros","deleteModalTitle":"Eliminar este grupo","deleteModalContent":"No se puede restaurar el grupo eliminado. ¿Estás Seguro de Borrar el Grupo?","addMember":"Añadir miembros","nameColumn":"Nombre de usuario","joinTimeColumn":"Hora de incorporación","actionColumn":"Operación","roleColumn":"Papel","exitGroup":"Grupo de salida","moveOutGroup":"Eliminar del Grupo","inviteUser":"Invitar a miembros","exitOrg":"Deja","exitOrgDesc":"¿Estás seguro de que quieres dejar este espacio de trabajo?","moveOutOrg":"Elimina","moveOutOrgDescSaasMode":"¿Estás seguro de que quieres eliminar al usuario {nombre} de este espacio de trabajo?","moveOutOrgDesc":"¿Estás seguro de que quieres eliminar al usuario {nombre}? Esta acción no se puede recuperar.","devGroupTip":"Los miembros del Grupo de Desarrolladores tienen privilegios para crear aplicaciones y fuentes de datos.","lastAdminQuit":"El último administrador no puede salir.","organizationNotExist":"El espacio de trabajo actual no existe","inviteUserHelp":"Puedes copiar el enlace de invitación para enviarlo al usuario","inviteUserLabel":"Enlace de invitación:","inviteCopyLink":"Copiar enlace","inviteText":"{userName} Te invita a unirte al espacio de trabajo \"{organization}%r@\\\", Haz clic en el enlace para unirte: {inviteLink}","groupName":"Nombre del grupo","createTime":"Crear Tiempo","manageBtn":"Gestiona","userDetail":"Detalle","syncDeleteTip":"Este grupo ha sido eliminado de la Agenda Fuente","syncGroupTip":"Este grupo es un grupo de sincronización de la Agenda y no se puede editar"},"orgSettings":{"newOrg":"Nuevo espacio de trabajo (Organización)","title":"Espacio de trabajo","createOrg":"Crear espacio de trabajo (Organización)","deleteModalTitle":"¿Estás seguro de eliminar este espacio de trabajo?","deleteModalContent":"Estás a punto de Eliminar este Espacio de Trabajo {permanentementeEliminado}. Una vez Eliminado, el Espacio de Trabajo {noSeRestaura}.","permanentlyDelete":"Permanentemente","notRestored":"No se puede restaurar","deleteModalLabel":"Introduce el nombre del espacio de trabajo {nombre} para confirmar la operación:","deleteModalTip":"Introduce el nombre del espacio de trabajo","deleteModalErr":"El nombre del espacio de trabajo es incorrecto","deleteModalBtn":"Borra","editOrgTitle":"Editar información del espacio de trabajo","orgNameLabel":"Nombre del espacio de trabajo:","orgNameCheckMsg":"El nombre del espacio de trabajo no puede estar vacío","orgLogo":"Logotipo del Espacio de Trabajo:","logoModify":"Modificar imagen","inviteSuccessMessage":"Únete con éxito al espacio de trabajo","inviteFailMessage":"Error al unirse al espacio de trabajo","uploadErrorMessage":"Error de carga","orgName":"Nombre del espacio de trabajo"},"freeLimit":"Prueba gratuita","tabbedContainer":{"switchTab":"Pestaña Interruptor","switchTabDesc":"Se activa al cambiar de pestaña","tab":"Fichas","atLeastOneTabError":"El Contenedor de Pestañas Guarda al Menos Una Pestaña","selectedTabKeyDesc":"Pestaña \"Seleccionado actualmente","iconPosition":"Icono Posición"},"formComp":{"containerPlaceholder":"Arrastra componentes desde el panel derecho o","openDialogButton":"Generar un Formulario a partir de una de tus Fuentes de Datos","resetAfterSubmit":"Reiniciar después de enviar correctamente","initialData":"Datos iniciales","disableSubmit":"Desactivar Enviar","success":"Formulario generado correctamente","selectCompType":"Selecciona el tipo de componente","dataSource":"Fuente de datos: ","selectSource":"Seleccionar fuente","table":"Tabla: ","selectTable":"Seleccionar tabla","columnName":"Nombre de la columna","dataType":"Tipo de datos","compType":"Tipo de componente","required":"Necesario","generateForm":"Generar formulario","compSelectionError":"Tipo de columna no configurada","compTypeNameError":"No se ha podido obtener el nombre del tipo de componente","noDataSourceSelected":"No se ha seleccionado ninguna fuente de datos","noTableSelected":"No hay mesa seleccionada","noColumn":"Sin columna","noColumnSelected":"Sin columna seleccionada","noDataSourceFound":"No se ha encontrado ninguna fuente de datos compatible. Crear una nueva fuente de datos","noTableFound":"No se encontraron tablas en esta fuente de datos, por favor selecciona otra fuente de datos","noColumnFound":"No se ha encontrado ninguna columna compatible en esta tabla. Selecciona otra tabla","formTitle":"Título del formulario","name":"Nombre","nameTooltip":"El Nombre del Atributo en los Datos del Formulario, si se deja en blanco, es por defecto el Nombre del Componente","notSupportMethod":"Métodos no admitidos: ","notValidForm":"El formulario no es válido","resetDesc":"Restablecer los datos del formulario al valor por defecto","clearDesc":"Borrar datos del formulario","setDataDesc":"Establecer datos del formulario","valuesLengthError":"Número de parámetro Error","valueTypeError":"Tipo de parámetro Error","dataDesc":"Datos del formulario actual","loadingDesc":"¿Si el formulario está cargando?"},"modalComp":{"close":"Cerrar","closeDesc":"Se activa cuando se cierra el cuadro de diálogo modal","openModalDesc":"Abrir el Cuadro de Diálogo","closeModalDesc":"Cerrar el Cuadro de Diálogo","visibleDesc":"¿Es Visible? Si es Verdadero, Aparecerá el Cuadro de Diálogo Actual","modalHeight":"Altura modal","modalHeightTooltip":"Píxel, Ejemplo: 222","modalWidth":"Anchura modal","modalWidthTooltip":"Número o porcentaje, Ejemplo: 520, 60%"},"listView":{"noOfRows":"Recuento de filas","noOfRowsTooltip":"Número de filas de la lista - Suele establecerse en una variable (por ejemplo, \\'{{query1.data.length}}\\') para presentar los resultados de la consulta","noOfColumns":"Recuento de columnas","itemIndexName":"Elemento de datos Índice Nombre","itemIndexNameDesc":"El nombre de la variable que se refiere al índice del elemento, por defecto como {por defecto}.","itemDataName":"Elemento de datos Nombre del objeto","itemDataNameDesc":"El nombre de la variable que se refiere al objeto de datos del elemento, por defecto como {default}.","itemsDesc":"Exponer datos de componentes en lista","dataDesc":"Los datos JSON utilizados en la lista actual","dataTooltip":"Si sólo pones un Número, Este Campo Se Considerará Como Recuento De Filas, Y Los Datos Se Considerarán Vacíos."},"navigation":{"addText":"Añadir elemento de submenú","logoURL":"Navegación Logo URL","horizontalAlignment":"Alineación horizontal","logoURLDesc":"Puedes mostrar un Logotipo en el lado izquierdo introduciendo un Valor URI o una Cadena Base64 como data:image/png;base64,AAA... CCC","itemsDesc":"Elementos del menú de navegación jerárquica"},"droppadbleMenuItem":{"subMenu":"Submenú {número}"},"navItemComp":{"active":"Activo"},"iframe":{"URLDesc":"La URL de origen del contenido del IFrame. Asegúrate de que la URL es HTTPS o localhost. Asegúrate también de que la URL no está bloqueada por la Política de Seguridad de Contenidos (CSP) del navegador. La cabecera \\'X-Frame-Options\\' no debe tener el valor \\'DENY\\' o \\'SAMEORIGIN\\'.","allowDownload":"Permitir descargas","allowSubmitForm":"Permitir Enviar Formulario","allowMicrophone":"Permitir micrófono","allowCamera":"Permitir cámara","allowPopup":"Permitir ventanas emergentes"},"switchComp":{"defaultValue":"Valor booleano por defecto","open":"En","close":"Fuera de","openDesc":"Se activa al encender el interruptor","closeDesc":"Se activa cuando el interruptor está apagado","valueDesc":"Estado actual del interruptor"},"signature":{"tips":"Texto de sugerencia","signHere":"Firma aquí","showUndo":"Mostrar Deshacer","showClear":"Mostrar Borrar"},"localStorageComp":{"valueDesc":"Todos los datos almacenados actualmente","setItemDesc":"Añadir un elemento","removeItemDesc":"Eliminar un elemento","clearItemDesc":"Borrar todos los artículos"},"utilsComp":{"openUrl":"Abrir URL","openApp":"Abrir App","copyToClipboard":"Copiar al portapapeles","downloadFile":"Descargar archivo"},"messageComp":{"info":"Enviar una notificación","success":"Enviar una notificación de éxito","warn":"Enviar una notificación de advertencia","error":"Enviar una notificación de error"},"themeComp":{"switchTo":"Cambiar tema"},"transformer":{"preview":"Vista previa","docLink":"Leer más sobre Transformers...","previewSuccess":"Vista previa Éxito","previewFail":"Vista previa Fracaso","deleteMessage":"Eliminar Transformador con éxito. Puedes usar {undoKey} para Deshacer.","documentationText":"Los Transformadores están diseñados para transformar datos y reutilizar tu código JavaScript multilínea. Utiliza Transformadores para adaptar datos de consultas o componentes a las necesidades de tu App local. A diferencia de la consulta JavaScript, el transformador está diseñado para realizar operaciones de sólo lectura, lo que significa que no puedes lanzar una consulta o actualizar un estado temporal dentro de un transformador."},"temporaryState":{"value":"Valor inicial","valueTooltip":"El valor inicial almacenado en el estado temporal puede ser cualquier valor JSON válido.","docLink":"Leer más sobre los Estados Temporales...","pathTypeError":"La ruta debe ser una cadena o una matriz de valores","unStructuredError":"Los datos no estructurados {prev} no pueden ser actualizados por {path}.","valueDesc":"Valor Temporal del Estado","deleteMessage":"El Estado Temporal se Borra con Éxito. Puedes Usar {undoKey} para Deshacer.","documentationText":"Los estados temporales en Lowcoder son una potente función utilizada para gestionar variables complejas que actualizan dinámicamente el estado de los componentes de tu aplicación. Estos estados actúan como almacenamiento intermedio o transitorio de datos que pueden cambiar con el tiempo debido a interacciones del usuario u otros procesos."},"dataResponder":{"data":"Datos","dataDesc":"Datos del respondedor de datos actual","dataTooltip":"Cuando se modifiquen estos datos, se desencadenarán acciones posteriores.","docLink":"Más información sobre los respondedores de datos...","deleteMessage":"El Respondedor de datos se ha eliminado correctamente. Puedes utilizar {undoKey} para Deshacer.","documentationText":"Al desarrollar una aplicación, puedes asignar eventos a los componentes para controlar los cambios en datos concretos. Por ejemplo, un componente Tabla puede tener eventos como %r@\\\"Cambio de selección de fila%r@\\\", %r@\\\"Cambio de filtro%r@\\\", %r@\\\"Cambio de ordenación%r@\\\" y %r@\\\"Cambio de página%r@\\\" para controlar los cambios en la propiedad Fila seleccionada. Sin embargo, para los cambios en estados temporales, transformadores o resultados de consulta, en los que no se dispone de eventos estándar, se utilizan los Respondedores de datos. Te permiten detectar y reaccionar ante cualquier modificación de los datos."},"theme":{"title":"Temas","createTheme":"Crear tema","themeName":"Nombre del tema:","themeNamePlaceholder":"Introduce un nombre de tema","defaultThemeTip":"Tema por defecto:","createdThemeTip":"El tema que has creado:","option":"Opción{índice}","input":"Entrada","confirm":"Ok","emptyTheme":"No hay temas disponibles","click":"","toCreate":"","nameColumn":"Nombre","defaultTip":"Por defecto","updateTimeColumn":"Hora de actualización","edit":"Edita","cancelDefaultTheme":"Desactivar tema por defecto","setDefaultTheme":"Establecer como tema por defecto","copyTheme":"Tema duplicado","setSuccessMsg":"Ajuste superado","cancelSuccessMsg":"Desajuste conseguido","deleteSuccessMsg":"Supresión superada","checkDuplicateNames":"El nombre del tema ya existe, por favor, introdúcelo de nuevo","copySuffix":" Copia","saveSuccessMsg":"Guardado correctamente","leaveTipTitle":"Consejos","leaveTipContent":"¿Aún no te has salvado, confirma que te vas?","leaveTipOkText":"Deja","goList":"Volver a la lista","saveBtn":"Guarda","mainColor":"Colores principales","text":"Colores del texto","defaultTheme":"Por defecto","yellow":"Amarillo","green":"Verde","previewTitle":"Vista previa del tema\\nComponentes de ejemplo que utilizan los colores de tu tema","dateColumn":"Fecha","emailColumn":"Envía un correo electrónico a","phoneColumn":"Teléfono","subTitle":"Título","linkLabel":"Enlace","linkUrl":"app.lowcoder.nube","progressLabel":"Progreso","sliderLabel":"Deslizador","radioLabel":"Radio","checkboxLabel":"Casilla de verificación","buttonLabel":"Botón Formulario","switch":"Interruptor","previewDate":"16/10/2022","previewEmail1":"ted.com","previewEmail2":"skype.com","previewEmail3":"imgur.com","previewEmail4":"globo.com","previewPhone1":"+63-317-333-0093","previewPhone2":"+30-668-580-6521","previewPhone3":"+86-369-925-2071","previewPhone4":"+7-883-227-8093","chartPreviewTitle":"Vista previa del estilo de gráfico","chartSpending":"Gastar","chartBudget":"Presupuesto","chartAdmin":"Administración","chartFinance":"Finanzas","chartSales":"Ventas","chartFunnel":"Gráfico de embudo","chartShow":"Mostrar","chartClick":"Haz clic en","chartVisit":"Visita","chartQuery":"Consulta","chartBuy":"Comprar"},"pluginSetting":{"title":"Plugins","npmPluginTitle":"Plugins npm","npmPluginDesc":"Configurar plugins npm para todas las aplicaciones del espacio de trabajo actual.","npmPluginEmpty":"No se han añadido plugins npm.","npmPluginAddButton":"Añadir un plugin npm","saveSuccess":"Guardado correctamente"},"advanced":{"title":"Avanzado","defaultHomeTitle":"Página de inicio por defecto","defaultHomeHelp":"La página de inicio es la aplicación que todos los no desarrolladores verán por defecto cuando se conecten. Nota: Asegúrate de que la aplicación seleccionada es accesible para los no desarrolladores.","defaultHomePlaceholder":"Selecciona la página de inicio predeterminada","saveBtn":"Guarda","preloadJSTitle":"Precargar JavaScript","preloadJSHelp":"Configurar código JavaScript precargado para todas las aplicaciones del espacio de trabajo actual.","preloadCSSTitle":"Precargar CSS","preloadCSSHelp":"Configura el código CSS precargado para todas las aplicaciones del espacio de trabajo actual.","preloadCSSApply":"Aplicar a la página de inicio del espacio de trabajo","preloadLibsTitle":"Biblioteca JavaScript","preloadLibsHelp":"Configura Bibliotecas JavaScript Precargadas para Todas las Aplicaciones en el Espacio de Trabajo Actual, y el Sistema Tiene Incorporadas lodash, day.js, uuid, numbro para Uso Directo. Las Bibliotecas JavaScript Se Cargan Antes De Inicializar La Aplicación, Por Lo Que Hay Un Cierto Impacto En El Rendimiento De La Aplicación.","preloadLibsEmpty":"No se han añadido bibliotecas JavaScript","preloadLibsAddBtn":"Añadir una biblioteca","saveSuccess":"Guardado correctamente","AuthOrgTitle":"Pantalla de bienvenida al espacio de trabajo","AuthOrgDescrition":"La URL para que tus usuarios inicien sesión en el espacio de trabajo actual."},"branding":{"title":"Marca","logoTitle":"Logotipo","logoHelp":"Sólo .JPG, .SVG o .PNG","faviconTitle":"Favicon","faviconHelp":"Sólo .JPG, .SVG o .PNG","brandNameTitle":"Marca","headColorTitle":"Color de la cabeza","save":"Guarda","saveSuccessMsg":"Guardado correctamente","upload":"Haz clic para cargar"},"networkMessage":{"0":"No se ha podido conectar con el servidor, comprueba la red","401":"Autenticación fallida, por favor, inicia sesión de nuevo","403":"Sin permiso, ponte en contacto con el administrador para obtener autorización","500":"Servicio ocupado, inténtalo más tarde","timeout":"Tiempo de espera de la solicitud"},"share":{"title":"Comparte","viewer":"Visor","editor":"Editor","owner":"Propietario","datasourceViewer":"Se puede utilizar","datasourceOwner":"Puede gestionar"},"debug":{"title":"Título","switch":"Componente del interruptor: "},"module":{"emptyText":"Sin datos","circularReference":"Referencia circular, ¡no se puede utilizar el módulo/aplicación actual!","emptyTestInput":"El módulo actual no tiene entrada para comprobar","emptyTestMethod":"El módulo actual no tiene ningún método para probar","name":"Nombre","input":"Entrada","params":"Parámetros","emptyParams":"No se ha añadido ningún parámetro","emptyInput":"No se ha añadido ninguna entrada","emptyMethod":"No se ha añadido ningún método","emptyOutput":"No se ha añadido ninguna salida","data":"Datos","string":"Cadena","number":"Número","array":"Matriz","boolean":"Booleano","query":"Consulta","autoScaleCompHeight":"Básculas de altura de componentes con contenedor","excuteMethod":"Ejecutar método {nombre}","method":"Método","action":"Acción","output":"Salida","nameExists":"Nombre {name} Ya existe","eventTriggered":"Evento {nombre} activado","globalPromptWhenEventTriggered":"Muestra un aviso global cuando se activa un evento","emptyEventTest":"El módulo actual no tiene eventos que probar","emptyEvent":"No se ha añadido ningún evento","event":"Evento"},"resultPanel":{"returnFunction":"El valor de retorno es una función.","consume":"{tiempo}","JSON":"Mostrar JSON"},"createAppButton":{"creating":"Crear...","created":"Crear {nombre}"},"apiMessage":{"authenticationFail":"Ha fallado la autenticación de usuario, por favor, inicia sesión de nuevo","verifyAccount":"Necesidad de verificar la cuenta","functionNotSupported":"La versión actual no soporta esta función. Ponte en contacto con el equipo comercial de Lowcoder para actualizar tu cuenta."},"globalErrorMessage":{"createCompFail":"Crear componente {comp} Fallido","notHandledError":"{método} Método no ejecutado"},"aggregation":{"navLayout":"Barra de navegación","chooseApp":"Elegir aplicación","iconTooltip":"Admite enlace src de imagen o cadena base64 como data:image/png;base64,AAA... CCC","hideWhenNoPermission":"Oculto para usuarios no autorizados","queryParam":"Parámetros de consulta URL","hashParam":"Parámetros Hash de URL","tabBar":"Barra de pestañas","emptyTabTooltip":"Configurar esta página en el panel derecho"},"appSetting":{"450":"450px (Teléfono)","800":"800px (Tableta)","1440":"1440px (Portátil)","1920":"1920px (Pantalla ancha)","3200":"3200px (Pantalla supergrande)","title":"Configuración general de la aplicación","autofill":"Autorrelleno","userDefined":"Personalizado","default":"Por defecto","tooltip":"Cerrar la ventana emergente después de ajustar","canvasMaxWidth":"Ancho máximo del lienzo para esta aplicación","userDefinedMaxWidth":"Ancho máximo personalizado","inputUserDefinedPxValue":"Introduce un valor de píxel personalizado","maxWidthTip":"La anchura máxima debe ser mayor o igual que 350","themeSetting":"Tema Estilo Aplicado","themeSettingDefault":"Por defecto","themeCreate":"Crear tema"},"customShortcut":{"title":"Atajos personalizados","shortcut":"Atajo","action":"Acción","empty":"Sin atajos","placeholder":"Pulsa Atajo","otherPlatform":"Otros","space":"Espacio"},"profile":{"orgSettings":"Configuración del espacio de trabajo","switchOrg":"Cambiar de espacio de trabajo","joinedOrg":"Mis espacios de trabajo","createOrg":"Crear espacio de trabajo","logout":"Cerrar sesión","personalInfo":"Mi perfil","bindingSuccess":"Vinculación {nombreFuente} Éxito","uploadError":"Error de carga","editProfilePicture":"Modifica","nameCheck":"El nombre no puede estar vacío","name":"Nombre: ","namePlaceholder":"Introduce tu nombre","toBind":"Encuadernar","binding":"Es vinculante","bindError":"Error de parámetro, actualmente no admitido Vinculación.","bindName":"Enlazar {nombre}","loginAfterBind":"Después de vincular, puedes utilizar {nombre} para iniciar sesión","bindEmail":"Enlazar correo electrónico:","email":"Envía un correo electrónico a","emailCheck":"Introduce una dirección de correo electrónico válida","emailPlaceholder":"Introduce tu dirección de correo electrónico","submit":"Envía","bindEmailSuccess":"Éxito de la encuadernación por correo electrónico","passwordModifiedSuccess":"Contraseña cambiada correctamente","passwordSetSuccess":"Contraseña establecida correctamente","oldPassword":"Contraseña antigua:","inputCurrentPassword":"Introduce tu contraseña actual","newPassword":"Nueva contraseña:","inputNewPassword":"Introduce tu nueva contraseña","confirmNewPassword":"Confirma la nueva contraseña:","inputNewPasswordAgain":"Vuelve a introducir tu nueva contraseña","password":"Contraseña:","modifyPassword":"Modificar contraseña","setPassword":"Establecer contraseña","alreadySetPassword":"Conjunto de contraseñas","setPassPlaceholder":"Puedes iniciar sesión con tu contraseña","setPassAfterBind":"Puedes establecer la contraseña después de vincular la cuenta","socialConnections":"Conexiones sociales"},"shortcut":{"shortcutList":"Atajos de teclado","click":"Haz clic en","global":"Global","toggleShortcutList":"Alternar atajos de teclado","editor":"Editor","toggleLeftPanel":"Alternar panel izquierdo","toggleBottomPanel":"Alternar panel inferior","toggleRightPanel":"Alternar panel derecho","toggleAllPanels":"Conmutar todos los paneles","preview":"Vista previa","undo":"Deshacer","redo":"Rehaz","showGrid":"Mostrar cuadrícula","component":"Componente","multiSelect":"Seleccionar varios","selectAll":"Seleccionar todo","copy":"Copia","cut":"Corta","paste":"Pega","move":"Muévete","zoom":"Cambia el tamaño de","delete":"Borra","deSelect":"Deselecciona","queryEditor":"Editor de consultas","excuteQuery":"Ejecutar consulta actual","editBox":"Editor de texto","formatting":"Formato","openInLeftPanel":"Abrir en el panel izquierdo"},"help":{"videoText":"Visión general","onBtnText":"OK","permissionDenyTitle":"💡 ¿No se puede crear una nueva aplicación o fuente de datos?","permissionDenyContent":"No tienes permiso para crear la aplicación y la fuente de datos. Ponte en contacto con el Administrador para unirte al Grupo de Desarrolladores.","appName":"Aplicación Tutorial","chat":"Chatea con nosotros","docs":"Ver documentación","editorTutorial":"Tutorial del editor","update":"¿Qué hay de nuevo?","version":"Versión","versionWithColon":"Versión: ","submitIssue":"Enviar un asunto"},"header":{"nameCheckMessage":"El nombre no puede estar vacío","viewOnly":"Ver sólo","recoverAppSnapshotTitle":"¿Restaurar esta versión?","recoverAppSnapshotContent":"Restaurar la aplicación actual a la versión creada en {tiempo}.","recoverAppSnapshotMessage":"Restaurar esta versión","returnEdit":"Volver al editor","deploy":"Publica","export":"Exportar a JSON","editName":"Editar nombre","duplicate":"Duplicar {tipo}","snapshot":"Historia","scriptsAndStyles":"Guiones y estilo","appSettings":"Ajustes de la aplicación","preview":"Vista previa","editError":"Modo de Vista Previa de la Historia, no se admite ninguna operación.","clone":"Clon","editorMode_layout":"Disposición","editorMode_logic":"Lógica","editorMode_both":"Ambos"},"userAuth":{"registerByEmail":"Inscríbete","email":"Correo electrónico:","inputEmail":"Introduce tu dirección de correo electrónico","inputValidEmail":"Introduce una dirección de correo electrónico válida","register":"Inscríbete","userLogin":"Regístrate","login":"Regístrate","bind":"Encuaderna","passwordCheckLength":"Al menos {min} Personajes","passwordCheckContainsNumberAndLetter":"Debe contener letras y números","passwordCheckSpace":"No puede contener espacios en blanco","welcomeTitle":"Bienvenido a {productName}","inviteWelcomeTitle":"{username} Te invito a conectarte {productName}","terms":"Términos","privacy":"Política de privacidad","registerHint":"He leído y acepto el","chooseAccount":"Elige tu cuenta","signInLabel":"Iniciar sesión con {nombre}","bindAccount":"Vincular cuenta","scanQrCode":"Escanea el código QR con {nombre}","invalidThirdPartyParam":"Parámetros de terceros no válidos","account":"Cuenta","inputAccount":"Introduce tu cuenta","ldapLogin":"Inicio de sesión LDAP","resetPassword":"Restablecer contraseña","resetPasswordDesc":"Restablecer la contraseña del usuario {nombre}. Se generará una nueva contraseña después de restablecerla.","resetSuccess":"Reinicio efectuado","resetSuccessDesc":"Se ha restablecido la contraseña. La nueva contraseña es: {contraseña}","copyPassword":"Copiar contraseña","poweredByLowcoder":"Desarrollado por Lowcoder.cloud"},"preLoad":{"jsLibraryHelpText":"Añade Bibliotecas JavaScript a tu Aplicación Actual mediante Direcciones URL. lodash, day.js, uuid, numbro están Integradas en el Sistema para su Uso Inmediato. Las Bibliotecas JavaScript se Cargan Antes de Inicializar la Aplicación, Lo Que Puede Tener un Impacto en el Rendimiento de la Aplicación.","exportedAs":"Exportado como","urlTooltip":"Dirección URL de la biblioteca JavaScript, se recomienda [unpkg.com](https://unpkg.com/) o [jsdelivr.net](https://www.jsdelivr.com/)","recommended":"Recomendado","viewJSLibraryDocument":"Documento","jsLibraryURLError":"URL no válida","jsLibraryExist":"La biblioteca JavaScript ya existe","jsLibraryEmptyContent":"No se han añadido bibliotecas JavaScript","jsLibraryDownloadError":"Error de descarga de la biblioteca JavaScript","jsLibraryInstallSuccess":"Biblioteca JavaScript instalada correctamente","jsLibraryInstallFailed":"Fallo en la instalación de la biblioteca JavaScript","jsLibraryInstallFailedCloud":"Puede que la biblioteca no esté disponible en el Sandbox, [Documentación](https://docs.lowcoder.cloud/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\\n{mensaje}","jsLibraryInstallFailedHost":"{mensaje}","add":"Añadir nuevo","jsHelpText":"Añade un Método o Variable Global a la Aplicación Actual.","cssHelpText":"Añadir Estilos a la Aplicación Actual. La Estructura DOM Puede Cambiar Mientras Itera el Sistema. Intenta Modificar los Estilos a Través de las Propiedades de los Componentes.","scriptsAndStyles":"Guiones y estilos","jsLibrary":"Biblioteca JavaScript"},"editorTutorials":{"component":"Componente","componentContent":"El Panel de Componentes Derecho te ofrece muchos Bloques de Aplicación (Componentes) ya hechos. Puedes arrastrarlos al lienzo para utilizarlos. También puedes crear tus propios componentes con unos pocos conocimientos de programación.","canvas":"Lienzo","canvasContent":"Construye tus aplicaciones en el Lienzo con un enfoque \"Lo que ves es lo que hay\". Sólo tienes que arrastrar y soltar componentes para diseñar tu diseño, y utilizar los atajos de teclado para una edición rápida como borrar, copiar y pegar. Una vez seleccionado un componente, puedes ajustar todos los detalles, desde el estilo y el diseño hasta la vinculación de datos y el comportamiento lógico. Además, disfruta de la ventaja añadida del diseño adaptable, que garantiza que tus aplicaciones se vean bien en cualquier dispositivo.","queryData":"Consulta de datos","queryDataContent":"Aquí puedes crear Consultas de Datos y Conectarte a tu MySQL, MongoDB, Redis, Airtable y muchas Otras Fuentes de Datos. Tras configurar la Consulta, haz clic en \"Ejecutar\" para obtener los Datos y continuar con el Tutorial.","compProperties":"Propiedades de los componentes"},"homeTutorials":{"createAppContent":"🎉 Bienvenido a {productName}, haz clic en \\'App\\' y empieza a crear tu primera aplicación.","createAppTitle":"Crear aplicación"},"history":{"layout":"\\'{0}\\' ajuste del diseño","upgrade":"Actualizar \\'{0}\\'","delete":"Borrar \\'{0}\\'","add":"Añade \"0\".","modify":"Modificar \\'{0}\\'","rename":"Cambia el nombre de \"{1}\" a \"{0}\".","recover":"Recuperar la versión \"2","recoverVersion":"Recuperar versión","andSoOn":"etc.","timeFormat":"MM DD a las hh:mm A","emptyHistory":"Sin antecedentes","currentVersionWithBracket":" (Actual)","currentVersion":"Versión actual","justNow":"Ahora mismo","history":"Historia"},"home":{"allApplications":"Todas las aplicaciones","allModules":"Todos los módulos","allFolders":"Todas las carpetas","modules":"Módulos","module":"Módulo","trash":"Basura","queryLibrary":"Biblioteca de consultas","datasource":"Fuentes de datos","selectDatasourceType":"Selecciona el tipo de fuente de datos","home":"Inicio | Área de Administración","all":"Todos","app":"Aplicación","navigation":"Navegación","navLayout":"Navegación por PC","navLayoutDesc":"Menú a la izquierda para facilitar la navegación por el escritorio.","mobileTabLayout":"Navegación móvil","mobileTabLayoutDesc":"Barra de navegación inferior para una navegación móvil fluida.","folders":"Carpetas","folder":"Carpeta","rootFolder":"Raíz","import":"Importa","export":"Exportar a JSON","inviteUser":"Invitar a miembros","createFolder":"Crear carpeta","createFolderSubTitle":"Nombre de la carpeta:","moveToFolder":"Mover a carpeta","moveToTrash":"Mover a la papelera","moveToFolderSubTitle":"Desplázate a:","folderName":"Nombre de la carpeta:","resCardSubTitle":"{tiempo} por {creador}","trashEmpty":"La papelera está vacía.","projectEmpty":"Aquí no hay nada.","projectEmptyCanAdd":"Todavía no tienes ninguna aplicación. Haz clic en Nueva para empezar.","name":"Nombre","type":"Tipo","creator":"Creado por","lastModified":"Última modificación","deleteTime":"Borrar hora","createTime":"Crear tiempo","datasourceName":"Nombre de la fuente de datos","databaseName":"Nombre de la base de datos","nameCheckMessage":"El nombre no puede estar vacío","deleteElementTitle":"Borrar permanentemente","moveToTrashSubTitle":"{tipo} {nombre} se moverá a la papelera.","deleteElementSubTitle":"Borrar {tipo} {nombre} permanentemente, no se puede recuperar.","deleteSuccessMsg":"Eliminado con éxito","deleteErrorMsg":"Error borrado","recoverSuccessMsg":"Recuperado con éxito","newDatasource":"Nueva fuente de datos","creating":"Crear...","chooseDataSourceType":"Elige el tipo de fuente de datos","folderAlreadyExists":"La carpeta ya existe","newNavLayout":"{nombredeusuario} de {nombre} ","newApp":"nuevo {nombre} de {nombre} de {usuario} ","importError":"Error de importación, {mensaje}","exportError":"Error de exportación, {mensaje}","importSuccess":"Éxito de la importación","fileUploadError":"Error de carga de archivos","fileFormatError":"Error de formato de archivo","groupWithSquareBrackets":"[Grupo] ","allPermissions":"Propietario","shareLink":"Comparte el enlace: ","copyLink":"Copiar enlace","appPublicMessage":"Haz pública la aplicación. Cualquiera puede verla.","modulePublicMessage":"Haz que el módulo sea público. Cualquiera puede verlo.","memberPermissionList":"Permisos de los miembros: ","orgName":"{orgName} admins","addMember":"Añadir miembros","addPermissionPlaceholder":"Introduce un nombre para buscar miembros","searchMemberOrGroup":"Buscar miembros o grupos: ","addPermissionErrorMessage":"Fallo al añadir permiso, {mensaje}","copyModalTitle":"Clonarlo","copyNameLabel":"{tipo} nombre","copyModalfolderLabel":"Añadir a la carpeta","copyNamePlaceholder":"Por favor, introduce un {tipo} de nombre","chooseNavType":"Elige el tipo de navegación","createNavigation":"Crear navegación"},"carousel":{"dotPosition":"Posición de los puntos de navegación","autoPlay":"Reproducción automática","showDots":"Mostrar puntos de navegación"},"npm":{"invalidNpmPackageName":"Nombre o URL de paquete npm no válidos.","pluginExisted":"Este plugin npm ya existía","compNotFound":"No se ha encontrado el componente {compName}.","addPluginModalTitle":"Añadir plugin desde un repositorio npm","pluginNameLabel":"URL o nombre del paquete npm","noCompText":"Sin componentes.","compsLoading":"Cargando...","removePluginBtnText":"Elimina","addPluginBtnText":"Añadir plugin npm"},"toggleButton":{"valueDesc":"El Valor por Defecto del Botón Alternar, Por Ejemplo: Falso","trueDefaultText":"Ocultar","falseDefaultText":"Mostrar","trueLabel":"Texto para Verdadero","falseLabel":"Texto para Falso","trueIconLabel":"Icono de Verdadero","falseIconLabel":"Icono de Falso","iconPosition":"Icono Posición","showText":"Mostrar texto","alignment":"Alineación","showBorder":"Mostrar borde"},"componentDoc":{"markdownDemoText":"**Lowcoder** | Crea aplicaciones de software para tu Empresa y tus Clientes con mínima experiencia en codificación. Lowcoder es la mejor alternativa a Retool, Appsmith o Tooljet.","demoText":"Lowcoder | Crea aplicaciones de software para tu Empresa y tus Clientes con una mínima experiencia en codificación. Lowcoder es la mejor alternativa a Retool, Appsmith o Tooljet.","submit":"Envía","style":"Estilo","danger":"Peligro","warning":"Advertencia","success":"Éxito","menu":"Menú","link":"Enlace","customAppearance":"Apariencia personalizada","search":"Busca en","pleaseInputNumber":"Introduce un número","mostValue":"Más valor","maxRating":"Clasificación máxima","notSelect":"No seleccionado","halfSelect":"Media selección","pleaseSelect":"Selecciona","title":"Título","content":"Contenido","componentNotFound":"El componente no existe","example":"Ejemplos","defaultMethodDesc":"Establecer el valor de la propiedad {nombre}","propertyUsage":"Puedes leer información relacionada con el componente accediendo a las propiedades del componente por su nombre en cualquier lugar donde puedas escribir JavaScript.","property":"Propiedades","propertyName":"Nombre de la propiedad","propertyType":"Tipo","propertyDesc":"Descripción","event":"Eventos","eventName":"Nombre del evento","eventDesc":"Descripción","mehtod":"Métodos","methodUsage":"Puedes interactuar con los componentes a través de sus métodos, y puedes llamarlos por su nombre en cualquier lugar donde puedas escribir JavaScript. O puedes llamarlos a través de la acción \"Componente de control\" de un evento.","methodName":"Nombre del método","methodDesc":"Descripción","showBorder":"Mostrar borde","haveTry":"Pruébalo tú mismo","settings":"Configurar","settingValues":"Valor de ajuste","defaultValue":"Valor por defecto","time":"Tiempo","date":"Fecha","noValue":"Ninguno","xAxisType":"Tipo de eje X","hAlignType":"Alineación horizontal","leftLeftAlign":"Alineación izquierda-izquierda","leftRightAlign":"Alineación izquierda-derecha","topLeftAlign":"Alineación superior izquierda","topRightAlign":"Alineación superior derecha","validation":"Validación","required":"Necesario","defaultStartDateValue":"Fecha de inicio por defecto","defaultEndDateValue":"Fecha de finalización por defecto","basicUsage":"Uso básico","basicDemoDescription":"Los siguientes ejemplos muestran el uso básico del componente.","noDefaultValue":"Sin valor por defecto","forbid":"Prohibido","placeholder":"Marcador de posición","pleaseInputPassword":"Introduce una contraseña","password":"Contraseña","textAlign":"Alineación del texto","length":"Longitud","top":"Arriba","pleaseInputName":"Introduce tu nombre","userName":"Nombre","fixed":"Fijo","responsive":"Respuesta","workCount":"Recuento de palabras","cascaderOptions":"Opciones de Cascader","pleaseSelectCity":"Selecciona una ciudad","advanced":"Avanzado","showClearIcon":"Mostrar icono Borrar","likedFruits":"Favoritos","option":"Opción","singleFileUpload":"Carga de un solo archivo","multiFileUpload":"Carga múltiple de archivos","folderUpload":"Cargar carpeta","multiFile":"Varios archivos","folder":"Carpeta","open":"Abre","favoriteFruits":"Frutas favoritas","pleaseSelectOneFruit":"Selecciona una fruta","notComplete":"No Completo","complete":"Completa","echart":"EChart","lineChart":"Gráfico lineal","basicLineChart":"Gráfico de líneas básico","lineChartType":"Tipo de gráfico de líneas","stackLineChart":"Línea apilada","areaLineChart":"Línea de área","scatterChart":"Gráfico de dispersión","scatterShape":"Forma de dispersión","scatterShapeCircle":"Círculo","scatterShapeRect":"Rectángulo","scatterShapeTri":"Triángulo","scatterShapeDiamond":"Diamante","scatterShapePin":"Chincheta","scatterShapeArrow":"Flecha","pieChart":"Gráfico circular","basicPieChart":"Gráfico circular básico","pieChatType":"Tipo de gráfico circular","pieChartTypeCircle":"Gráfico de donuts","pieChartTypeRose":"Gráfico de rosas","titleAlign":"Título Cargo","color":"Color","dashed":"Guiones","imADivider":"Soy una línea divisoria","tableSize":"Tamaño de la tabla","subMenuItem":"SubMenú {num}","menuItem":"Menú {num}","labelText":"Etiqueta","labelPosition":"Etiqueta - Posición","labelAlign":"Etiqueta - Alinear","optionsOptionType":"Método de configuración","styleBackgroundColor":"Color de fondo","styleBorderColor":"Color del borde","styleColor":"Color de fuente","selectionMode":"Modo de selección de filas","paginationSetting":"Configuración de la paginación","paginationShowSizeChanger":"Ayudar a los usuarios a modificar el número de entradas por página","paginationShowSizeChangerButton":"Mostrar botón de cambio de tamaño","paginationShowQuickJumper":"Mostrar saltador rápido","paginationHideOnSinglePage":"Ocultar cuando sólo hay una página","paginationPageSizeOptions":"Tamaño de página","chartConfigCompType":"Tipo de gráfico","xConfigType":"Tipo de eje X","loading":"Cargando","disabled":"Discapacitados","minLength":"Longitud mínima","maxLength":"Longitud máxima","showCount":"Mostrar recuento de palabras","autoHeight":"Altura","thousandsSeparator":"Separador de miles","precision":"Posiciones decimales","value":"Valor por defecto","formatter":"Formato","min":"Valor mínimo","max":"Valor máximo","step":"Tamaño del paso","start":"Hora de inicio","end":"Fin de los tiempos","allowHalf":"Permitir media selección","filetype":"Tipo de archivo","showUploadList":"Mostrar lista de cargas","uploadType":"Tipo de carga","allowClear":"Mostrar icono Borrar","minSize":"Tamaño mínimo del archivo","maxSize":"Tamaño máximo del archivo","maxFiles":"Número máximo de archivos cargados","format":"Formato","minDate":"Fecha mínima","maxDate":"Fecha máxima","minTime":"Tiempo mínimo","maxTime":"Tiempo máximo","text":"Texto","type":"Tipo","hideHeader":"Ocultar cabecera","hideBordered":"Ocultar borde","src":"URL de la imagen","showInfo":"Mostrar valor","mode":"Modo","onlyMenu":"Sólo Menú","horizontalAlignment":"Alineación horizontal","row":"Izquierda","column":"Arriba","leftAlign":"Alineación izquierda","rightAlign":"Alineación correcta","percent":"Porcentaje","fixedHeight":"Altura fija","auto":"Adaptativo","directory":"Carpeta","multiple":"Varios archivos","singleFile":"Archivo único","manual":"Manual","default":"Por defecto","small":"Pequeño","middle":"Medio","large":"Grande","single":"Individual","multi":"Múltiple","close":"Cerrar","ui":"Modo IU","line":"Gráfico lineal","scatter":"Gráfico de dispersión","pie":"Gráfico circular","basicLine":"Gráfico de líneas básico","stackedLine":"Gráfico de líneas apiladas","areaLine":"Área Mapa del área","basicPie":"Gráfico circular básico","doughnutPie":"Gráfico de donuts","rosePie":"Gráfico de rosas","category":"Categoría Eje","circle":"Círculo","rect":"Rectángulo","triangle":"Triángulo","diamond":"Diamante","pin":"Chincheta","arrow":"Flecha","left":"Izquierda","right":"A la derecha","center":"Centro","bottom":"Fondo","justify":"Justificar ambos extremos"},"playground":{"url":"https://app.lowcoder.cloud/playground/{compType}/1","data":"Estado actual de los datos","preview":"Vista previa","property":"Propiedades","console":"Consola Visual Script","executeMethods":"Ejecutar métodos","noMethods":"Sin métodos.","methodParams":"Parámetros del método","methodParamsHelp":"Parámetros del método de entrada utilizando JSON. Por ejemplo, puedes establecer los parámetros de setValue\\ con: [1] o 1"},"calendar":{"headerBtnBackground":"Botón Fondo","btnText":"Texto del botón","title":"Título","selectBackground":"Antecedentes seleccionados"},"componentDocExtra":{"table":"Documentación adicional para el componente Tabla"},"idSource":{"title":"Proveedores OAuth","form":"Envía un correo electrónico a","pay":"Premium","enable":"Activa","unEnable":"No activado","loginType":"Tipo de conexión","status":"Estado","desc":"Descripción","manual":"Agenda:","syncManual":"Sincronizar Agenda","syncManualSuccess":"Sincronización realizada","enableRegister":"Permitir la inscripción","saveBtn":"Guardar y Activar","save":"Guarda","none":"Ninguno","formPlaceholder":"Introduce {etiqueta}","formSelectPlaceholder":"Selecciona la {etiqueta}","saveSuccess":"Guardado correctamente","dangerLabel":"Zona de peligro","dangerTip":"Desactivar este proveedor de ID puede provocar que algunos usuarios no puedan iniciar sesión. Procede con precaución.","disable":"Desactiva","disableSuccess":"Desactivado correctamente","encryptedServer":"-------- Cifrado en el lado del servidor --------","disableTip":"Consejos","disableContent":"Desactivar este proveedor de ID puede provocar que algunos usuarios no puedan iniciar sesión. ¿Estás seguro de proceder?","manualTip":"","lockTip":"El Contenido está Bloqueado. Para realizar cambios, haz clic en el {icono} para desbloquearlo.","lockModalContent":"La modificación del campo \"Atributo ID\" puede tener repercusiones importantes en la identificación del usuario. Por favor, confirma que comprendes las implicaciones de este cambio antes de proceder.","payUserTag":"Premium"},"slotControl":{"configSlotView":"Configurar vista de ranura"},"jsonLottie":{"lottieJson":"Lottie JSON","speed":"Velocidad","width":"Anchura","height":"Altura","backgroundColor":"Color de fondo","animationStart":"Inicio de la animación","valueDesc":"Datos JSON actuales","loop":"Bucle","auto":"Auto","onHover":"Al pasar por encima","singlePlay":"Juego individual","endlessLoop":"Bucle sin fin","keepLastFrame":"Mantener visualizado el último fotograma"},"timeLine":{"titleColor":"Título Color","subTitleColor":"Color del subtítulo","lableColor":"Color de la etiqueta","value":"Datos cronológicos","mode":"Orden de visualización","left":"Contenido Correcto","right":"Contenido Izquierda","alternate":"Orden alternativo del contenido","modeTooltip":"Configura el contenido para que aparezca a izquierda/derecha o alternativamente en ambos lados de la línea de tiempo","reverse":"Eventos más recientes primero","pending":"Texto de nodo pendiente","pendingDescription":"Si se establece, se mostrará un último nodo con el texto y un indicador de espera.","defaultPending":"Mejora continua","clickTitleEvent":"Haz clic en el título Evento","clickTitleEventDesc":"Haz clic en el título Evento","Introduction":"Introducción Claves","helpTitle":"Título del cronograma (Obligatorio)","helpsubTitle":"Subtítulo del cronograma","helpLabel":"Etiqueta de la línea de tiempo, utilizada para mostrar las fechas","helpColor":"Indica el color del nodo de la línea de tiempo","helpDot":"Representación de los nodos de la línea de tiempo como iconos de diseño Ant","helpTitleColor":"Controlar individualmente el color del título del nodo","helpSubTitleColor":"Controlar Individualmente el Color del Subtítulo del Nodo","helpLableColor":"Controlar Individualmente el Color del Icono del Nodo","valueDesc":"Datos de la cronología","clickedObjectDesc":"Datos del elemento pulsado","clickedIndexDesc":"Índice de elementos pulsados"},"comment":{"value":"Datos de la lista de comentarios","showSendButton":"Permitir comentarios","title":"Título","titledDefaultValue":"%d Comentario en total","placeholder":"Mayús + Intro para comentar; introduce @ o # para entrada rápida","placeholderDec":"Marcador de posición","buttonTextDec":"Título del botón","buttonText":"Comentario","mentionList":"Datos de la Lista de Menciones","mentionListDec":"Palabras clave de mención clave; Datos de la lista de mención de valor","userInfo":"Información del usuario","dateErr":"Error de fecha","commentList":"Lista de comentarios","deletedItem":"Elemento eliminado","submitedItem":"Artículo enviado","deleteAble":"Mostrar botón Eliminar","Introduction":"Introducción Claves","helpUser":"Información del usuario (Obligatorio)","helpname":"Nombre de usuario (Obligatorio)","helpavatar":"Avatar URL (Alta prioridad)","helpdisplayName":"Nombre para mostrar (prioridad baja)","helpvalue":"Contenido de los comentarios","helpcreatedAt":"Fecha de creación"},"mention":{"mentionList":"Datos de la Lista de Menciones"},"autoComplete":{"value":"Auto Complete Value","checkedValueFrom":"Valor comprobado Desde","ignoreCase":"Buscar Ignorar Caso","searchLabelOnly":"Buscar sólo etiqueta","searchFirstPY":"Buscar First Pinyin","searchCompletePY":"Buscar Pinyin completo","searchText":"Buscar texto","SectionDataName":"Autocompletar datos","valueInItems":"Valor en artículos","type":"Tipo","antDesign":"AntDesign","normal":"Normal","selectKey":"Clave","selectLable":"Etiqueta","ComponentType":"Tipo de componente","colorIcon":"Azul","grewIcon":"Gris","noneIcon":"Ninguno","small":"Pequeño","large":"Grande","componentSize":"Tamaño del componente","Introduction":"Introducción Claves","helpLabel":"Etiqueta","helpValue":"Valor"},"responsiveLayout":{"column":"Columnas","atLeastOneColumnError":"El diseño adaptable mantiene al menos una columna","columnsPerRow":"Columnas por fila","columnsSpacing":"Espacio entre columnas (px)","horizontal":"Horizontal","vertical":"Vertical","mobile":"Móvil","tablet":"Tableta","desktop":"Escritorio","rowStyle":"Estilo Fila","columnStyle":"Estilo columna","minWidth":"Mín. Anchura","rowBreak":"Rotura de fila","matchColumnsHeight":"Igualar altura de columnas","rowLayout":"Disposición de filas","columnsLayout":"Disposición de las columnas"},"navLayout":{"mode":"Modo","modeInline":"En línea","modeVertical":"Vertical","width":"Anchura","widthTooltip":"Píxel o Porcentaje, por ejemplo 520, 60%.","navStyle":"Estilo de menú","navItemStyle":"Estilo del elemento de menú"}} \ No newline at end of file diff --git a/client/packages/lowcoder/src/i18n/locales/zh.ts b/client/packages/lowcoder/src/i18n/locales/zh.ts index a6057f176..12821ebf6 100644 --- a/client/packages/lowcoder/src/i18n/locales/zh.ts +++ b/client/packages/lowcoder/src/i18n/locales/zh.ts @@ -1469,6 +1469,7 @@ container: { title: "容器标题", }, drawer: { + closePosition: "关闭位置", placement: "抽屉位置", size: "大小", top: "顶部", From f65f85b4e31fd9d1df75bc82f654dc6a8545361e Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Mon, 26 Feb 2024 23:06:03 +0100 Subject: [PATCH 8/8] Adding LOWCODER_CREATE_WORKSPACE_ON_SIGNUP to Readme --- deploy/docker/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 6a672bb05..ff70a597a 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -47,9 +47,12 @@ Image can be configured by setting environment variables. | `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` | | `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control if users create their own Workspace automatic when Sign Up | `true` | | `LOWCODER_EMAIL_AUTH_ENABLED` | Control to show the eMail Login after Admin user is set | `true` | +| `LOWCODER_CREATE_WORKSPACE_ON_SIGNUP` | IF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign up | `true` | | `LOWCODER_MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` | + + ## Building api-service image Standalone Lowcoder api-service image.