@abtnode/webapp 1.17.8-beta-20260116-080047-9fdd00d3 → 1.17.8-beta-20260119-102944-6ba93a16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blocklet.js +1 -1
- package/blocklet.yml +1 -1
- package/dist/assets/{AdapterDayjs-CHVRCEwB.js → AdapterDayjs-QPUTgQRV.js} +6 -6
- package/dist/assets/{Add-IxR__ozX.js → Add-vvp5juzF.js} +1 -1
- package/dist/assets/ArrowDropDown-CZ9_k8VG.js +1 -0
- package/dist/assets/{Autocomplete-OhxbbTq9.js → Autocomplete-BqPV4fCq.js} +1 -1
- package/dist/assets/{Breadcrumbs-CfkRwQNu.js → Breadcrumbs-DEV3jkdC.js} +1 -1
- package/dist/assets/{ButtonGroup--8rwLvQ8.js → ButtonGroup-BDg4XqiR.js} +1 -1
- package/dist/assets/{CSSTransition-D4fabzL2.js → CSSTransition-CoGzojVI.js} +1 -1
- package/dist/assets/{CallMerge-Di3dNXj5.js → CallMerge-C5DyJ6fm.js} +1 -1
- package/dist/assets/{CardContent-CPUlyd-R.js → CardContent-rjL6kB_r.js} +1 -1
- package/dist/assets/{ChevronLeft-lzYf4tao.js → ChevronLeft-DqSG9UHo.js} +1 -1
- package/dist/assets/{ChevronRight-CO-Fv8kP.js → ChevronRight-DxsEcvUg.js} +1 -1
- package/dist/assets/{Clear-DriUx9_Q.js → Clear-Bq2o3otF.js} +1 -1
- package/dist/assets/{Delete-DkHujAB7.js → Delete-RCnwfW1g.js} +1 -1
- package/dist/assets/{DeleteOutline-DUcJA7eO.js → DeleteOutline-BXoQnWFj.js} +1 -1
- package/dist/assets/{Done-B_L7rkHk.js → Done-DVQ_2sA2.js} +1 -1
- package/dist/assets/{Edit-DgzPfnB_.js → Edit-DVXYin_T.js} +1 -1
- package/dist/assets/{EditOutlined-yXcT-6A0.js → EditOutlined-CHgCULNs.js} +1 -1
- package/dist/assets/{ErrorOutline-B7jRfGmR.js → ErrorOutline-qdJUw5q6.js} +1 -1
- package/dist/assets/{FilterList-DMbHmf0X.js → FilterList-Dfj9GsZN.js} +1 -1
- package/dist/assets/{Google-DMfPhzx4.js → Google-BtG0IwAt.js} +1 -1
- package/dist/assets/{HelpOutline-Be59cdK1.js → HelpOutline-DaGemEcX.js} +1 -1
- package/dist/assets/{Launch-B8FfXmf_.js → Launch-BsxqWG7C.js} +1 -1
- package/dist/assets/{Link-wdDqdiCm.js → Link-BRsXeoEC.js} +1 -1
- package/dist/assets/{ListItemButton-BHNRxd8I.js → ListItemButton-kpGgMj08.js} +1 -1
- package/dist/assets/{ListSubheader-UFJcQfY_.js → ListSubheader-BTZwmxdp.js} +1 -1
- package/dist/assets/{LoadingButton-CUdpFc0p.js → LoadingButton-DZ6V6Qhe.js} +1 -1
- package/dist/assets/{LottiePlayer.modern-Jxnonfmi.js → LottiePlayer.modern-H3Pn2YNu.js} +1 -1
- package/dist/assets/{MoreVert-BVgcfW7V.js → MoreVert-DxM-B8xa.js} +1 -1
- package/dist/assets/{OpenInNew-CEBJXmxa.js → OpenInNew-BUUx7OSU.js} +1 -1
- package/dist/assets/{Refresh-DrflkqFW.js → Refresh-BV0ShuHj.js} +1 -1
- package/dist/assets/{Replay-qvum4SpI.js → Replay-DyvF6A5F.js} +1 -1
- package/dist/assets/{Search-CtujvL0H.js → Search-m3CMNGDm.js} +1 -1
- package/dist/assets/{Stepper-CJfsKFpi.js → Stepper-DR0cCC-q.js} +1 -1
- package/dist/assets/{TableSearch-CdKaHbVQ.js → TableSearch-okRl0dqT.js} +1 -1
- package/dist/assets/{ToggleButtonGroup-BP4C4KFu.js → ToggleButtonGroup-DxIvj50j.js} +1 -1
- package/dist/assets/{UnfoldMore-BvZuyACH.js → UnfoldMore-CZT-4-ZR.js} +1 -1
- package/dist/assets/Verified-C1aYOY3u.js +1 -0
- package/dist/assets/{VerifiedUser-D0ltmMtV.js → VerifiedUser-CS3FW2sd.js} +1 -1
- package/dist/assets/{ViewList--urcCqVt.js → ViewList-CXrUBR0t.js} +1 -1
- package/dist/assets/{_createAggregator-G6HCftPW.js → _createAggregator-BunO9xPF.js} +1 -1
- package/dist/assets/{actions-5RspfWE_.js → actions-CoszoXjw.js} +1 -1
- package/dist/assets/{actions-DjLoksgL.js → actions-DE2r6nPV.js} +1 -1
- package/dist/assets/{actions-CQAb6_Rz.js → actions-MiEliG9R.js} +1 -1
- package/dist/assets/{agreement-b4V3Z14P.js → agreement-CiVQRYD2.js} +1 -1
- package/dist/assets/api-CKaiYijO.js +1 -0
- package/dist/assets/{appearance-AiyB_V1W.js → appearance-DtyCmGdO.js} +1 -1
- package/dist/assets/{ar-BHqjWgUQ.js → ar-DOhYGTlW.js} +1 -1
- package/dist/assets/{audit-logs-C4Hps2ag.js → audit-logs-DQ3aFS2x.js} +2 -2
- package/dist/assets/{babel-sNEik07f.js → babel-yl1c6pTl.js} +1 -1
- package/dist/assets/{base-chart-BE2BHY3Y.js → base-chart-G_tNYsY8.js} +1 -1
- package/dist/assets/{blocklet-lDvdqhrX.js → blocklet-CzBGFesP.js} +1 -1
- package/dist/assets/{chain-BQMbjNUU.js → chain-z8CuvP-V.js} +1 -1
- package/dist/assets/{click-to-copy-C6h97nXy.js → click-to-copy-DXIfZNln.js} +1 -1
- package/dist/assets/cloneDeep-BDiWjxRu.js +1 -0
- package/dist/assets/config-navigation-BYqsSWyl.js +472 -0
- package/dist/assets/{connect-B1msLBDb.js → connect-64-QZQcE.js} +3 -3
- package/dist/assets/{connect-to-DeMt1m5c.js → connect-to-CeGdVeiX.js} +3 -3
- package/dist/assets/{de-QUGQFv2K.js → de-CtKPdGk6.js} +1 -1
- package/dist/assets/{delete-confirm-DyLbGAy5.js → delete-confirm-Dh3X0iXU.js} +1 -1
- package/dist/assets/{depsEqual-CM0PEscV.js → depsEqual-Bfsv3kHf.js} +1 -1
- package/dist/assets/{detail-C3fs8uRl.js → detail-C4nQbO7d.js} +2 -2
- package/dist/assets/{domains-CVE_fz_I.js → domains-7n5twKTf.js} +2 -2
- package/dist/assets/{download-f9_CnIWg.js → download-CFyTq_FK.js} +1 -1
- package/dist/assets/{edit.svg-Bdq-FCGM.js → edit.svg-DBlxe-2U.js} +1 -1
- package/dist/assets/emotion-cache.browser.esm-Cu824RS4.js +1 -0
- package/dist/assets/engine-Bbh7Mw-7.js +1 -0
- package/dist/assets/{es-C4w6cL07.js → es-BSYtSZPg.js} +1 -1
- package/dist/assets/{fr-Bq3UipEu.js → fr-C35fi7h9.js} +1 -1
- package/dist/assets/{get-safe-url-RPQVYlWr.js → get-safe-url-BTJDduf6.js} +1 -1
- package/dist/assets/getValidReactChildren-T3CvLHYr.js +1 -0
- package/dist/assets/{graphql-5mE8kB37.js → graphql-Cnx2YXBE.js} +1 -1
- package/dist/assets/{graphqlMode-BHMSwqwV.js → graphqlMode-7KCJGlgj.js} +2 -2
- package/dist/assets/{hi-DGZy0DLh.js → hi-5fpYJkiW.js} +1 -1
- package/dist/assets/{html-title-DE0TrRVC.js → html-title-CQe12Cut.js} +1 -1
- package/dist/assets/{id-DOzDilAf.js → id-DoVb0JYr.js} +1 -1
- package/dist/assets/{iframe-B7aYePTd.js → iframe-BWle7w_S.js} +1 -1
- package/dist/assets/{index-r58wskKh.js → index-AaVex2Te.js} +1 -1
- package/dist/assets/{index-B4azxfc8.js → index-B8JpxHJE.js} +1 -1
- package/dist/assets/{index-hG-7kift.js → index-BCrgfevn.js} +2 -2
- package/dist/assets/index-BHLEff7q.js +369 -0
- package/dist/assets/{index-DbRhfp5G.js → index-BMGgZI9D.js} +1 -1
- package/dist/assets/{index-CaLjm3Sr.js → index-BXpvvqAs.js} +1 -1
- package/dist/assets/{index-D7yowN9E.js → index-BcZYQGNY.js} +8 -8
- package/dist/assets/{index-CEn1Olzp.js → index-Bg6faJyI.js} +1 -1
- package/dist/assets/{index-B2xyyyAv.js → index-Bv6Ryg7V.js} +1 -1
- package/dist/assets/index-BzFgWQ5w.js +1 -0
- package/dist/assets/{index-DaEqVg3j.js → index-C73PGWD5.js} +1 -1
- package/dist/assets/{index-B29Pha71.js → index-C97bSDg2.js} +3 -3
- package/dist/assets/index-CBCPHvf_.js +102 -0
- package/dist/assets/{index-B1mmOd5b.js → index-CJ_aJ5dR.js} +1 -1
- package/dist/assets/{index-DmCKwIHx.js → index-CQob6fmR.js} +4 -4
- package/dist/assets/{index-BqqU8gwj.js → index-CTjBZAn9.js} +1 -1
- package/dist/assets/{index-2l_1Jppv.js → index-CUGajpSS.js} +3 -3
- package/dist/assets/{index-CWB_ryH-.js → index-CXEKSKL7.js} +1 -1
- package/dist/assets/{index-BgYMQ-SO.js → index-ChmYDkPv.js} +2 -2
- package/dist/assets/{index-QndNtIi-.js → index-CoHxWTi-.js} +1 -1
- package/dist/assets/{index-9co-KaYp.js → index-D42m9V9f.js} +9 -9
- package/dist/assets/{index-EzJJEvjR.js → index-D4yrNQ5O.js} +3 -3
- package/dist/assets/{index-CPZ5M8hw.js → index-DBtWMsht.js} +1 -1
- package/dist/assets/{index-DaVz8byr.js → index-DHLFobHl.js} +3 -3
- package/dist/assets/{index-nVFW1KOC.js → index-DJt6Q1WW.js} +1 -1
- package/dist/assets/{index-BtOLGXbe.js → index-DSG25x4F.js} +1 -1
- package/dist/assets/{index-BfetuCUm.js → index-DTVaw2Hc.js} +4 -4
- package/dist/assets/{index-BfQLSa8k.js → index-DUEj1V-j.js} +1 -1
- package/dist/assets/{index-Cmj8zxd_.js → index-DVR29wYi.js} +14 -14
- package/dist/assets/index-Denq1UAZ.js +20 -0
- package/dist/assets/{index-BcjR7La5.js → index-DfCxzzye.js} +1 -1
- package/dist/assets/{index-Beek8Qoq.js → index-DftYcsPB.js} +6 -6
- package/dist/assets/{index-B0oOTjeC.js → index-DqCVCPmC.js} +1 -1
- package/dist/assets/{index-BIgX2N1A.js → index-DrI_kbUr.js} +6 -6
- package/dist/assets/{index-ByymZrPq.js → index-DtIwM7gL.js} +2 -2
- package/dist/assets/{index-BBu-RTSN.js → index-DyNVa2Lx.js} +1 -1
- package/dist/assets/{index-DYd4YT_K.js → index-G-jrPGsm.js} +1 -1
- package/dist/assets/{index-BX6YpiBs.js → index-Ii4Xi_du.js} +2 -2
- package/dist/assets/{index-BZ5rC2Lk.js → index-P2FBSyZf.js} +1 -1
- package/dist/assets/{index-Ca61GFb8.js → index-dCiAdDNg.js} +1 -1
- package/dist/assets/{index-Bm8Rp86x.js → index-kSplQjj2.js} +1 -1
- package/dist/assets/{index-82LLl9rh.js → index-nmsk2vjw.js} +2 -2
- package/dist/assets/{index-CVpBdzTr.js → index-nsujgMc_.js} +1 -1
- package/dist/assets/{index-D3SOJZGy.js → index-u76kHZTc.js} +3 -3
- package/dist/assets/{index-gwhKA5OT.js → index-xtzr7R_I.js} +1 -1
- package/dist/assets/{index.esm-C5mhDUsD.js → index.esm-iaB2Jgy_.js} +1 -1
- package/dist/assets/{install-from-url-DPdbO0Jq.js → install-from-url-CzhDO2C0.js} +1 -1
- package/dist/assets/{invitation-3RtS1iUK.js → invitation-C3HrxXln.js} +2 -2
- package/dist/assets/is-path-prefix-equal-dPdZJpAg.js +1 -0
- package/dist/assets/{isEmail-apFH2MvD.js → isEmail-CmCW4Fgq.js} +1 -1
- package/dist/assets/item-C6yFM2Os.js +163 -0
- package/dist/assets/{ja-DMq-YXDX.js → ja-DZPUwZ9l.js} +1 -1
- package/dist/assets/{jsonMode-RjxYywbi.js → jsonMode-BRueWwe6.js} +1 -1
- package/dist/assets/{ko-BrYbXurh.js → ko-q4i4r9g6.js} +1 -1
- package/dist/assets/{list-header-BNS6BF2P.js → list-header-s21LDuvb.js} +1 -1
- package/dist/assets/{lite-C-Ikw2GQ.js → lite-BBz66z5Z.js} +2 -2
- package/dist/assets/{lock.svg-BFdqOrkF.js → lock.svg-DK1hXFWn.js} +1 -1
- package/dist/assets/{log-DZlkZyGX.js → log-DRaCmTGd.js} +1 -1
- package/dist/assets/{login-method-item-ZVrK6tB1.js → login-method-item-DwSmGt8t.js} +1 -1
- package/dist/assets/{lottie-react.esm-A7yQ3Nfv.js → lottie-react.esm-DqwAKW0L.js} +1 -1
- package/dist/assets/{memory-CoCFCBkX.js → memory-VAHG3fjG.js} +1 -1
- package/dist/assets/{metric-B3S53u3H.js → metric-B6TET6QI.js} +1 -1
- package/dist/assets/{monaco-editor-CQ6Pm7Hi.js → monaco-editor-BH4xSgKB.js} +3 -3
- package/dist/assets/{mouseTarget-DxlEpFaz.js → mouseTarget-txK7mk_L.js} +1 -1
- package/dist/assets/omit-B-qG4p98.js +1 -0
- package/dist/assets/{overview-z9AW_vcO.js → overview-D3hqR9Yg.js} +1 -1
- package/dist/assets/{permission-C_g43OOf.js → permission-DET008IY.js} +1 -1
- package/dist/assets/{preference-1qTmAvHN.js → preference-pxwdMSFg.js} +8 -8
- package/dist/assets/{provider-icon-CoJ5ERXe.js → provider-icon-CCZmjsDZ.js} +1 -1
- package/dist/assets/{pt-Dl6732JN.js → pt-BFCHl6F1.js} +1 -1
- package/dist/assets/{raf-schd.esm-CU1FaTjd.js → raf-schd.esm-BuSKwIfR.js} +1 -1
- package/dist/assets/{rotate-session-key-CQOBWeRr.js → rotate-session-key-DE58Q8ag.js} +1 -1
- package/dist/assets/{ru-CVUeN9AX.js → ru-CSTl62kK.js} +1 -1
- package/dist/assets/runtime-b4EXN3II.js +1 -0
- package/dist/assets/schema-DE6tzaXQ.js +1 -0
- package/dist/assets/sdk-CxXstbZm.js +1 -0
- package/dist/assets/{service-iJdsq1ul.js → service-BpzqSJv4.js} +1 -1
- package/dist/assets/{shorten-label-CCnq_MUQ.js → shorten-label-PYNmzpP_.js} +1 -1
- package/dist/assets/{simple-select-0S1qRvRS.js → simple-select-BiJQdJOQ.js} +1 -1
- package/dist/assets/{spaces-BbUa6G9F.js → spaces-MVFShLV4.js} +1 -1
- package/dist/assets/{status-g0Lvwqad.js → status-LmBdrnlB.js} +1 -1
- package/dist/assets/{status-B4gHBixJ.js → status-UZAIOWNB.js} +1 -1
- package/dist/assets/{switch-control-CwXplLu0.js → switch-control-CE57fLeM.js} +1 -1
- package/dist/assets/{table-icons-BwS2Y2wV.js → table-icons-BG66cxZv.js} +1 -1
- package/dist/assets/{team-DETQHkho.js → team-DgQYntrc.js} +1 -1
- package/dist/assets/{th-32eBNQes.js → th-D75Dlluo.js} +1 -1
- package/dist/assets/{toLower-oQZ3J7Wi.js → toLower-DBVF4v1M.js} +1 -1
- package/dist/assets/toUpper-RYfZ9dsZ.js +1 -0
- package/dist/assets/{traffic-Cqk5X-Ty.js → traffic-7oEMp-9f.js} +1 -1
- package/dist/assets/trim-Dm26Hw3f.js +1 -0
- package/dist/assets/{url-evaluation-DyzOKILN.js → url-evaluation-CTsNt3ve.js} +1 -1
- package/dist/assets/{url-join-BM9fQWnd.js → url-join-oxVMh_nl.js} +1 -1
- package/dist/assets/{use-mobile-23djKzeO.js → use-mobile-BS_f_Fn7.js} +1 -1
- package/dist/assets/{use-mobile-BmaqHxmL.js → use-mobile-Czu8FCYf.js} +1 -1
- package/dist/assets/{useAsync-DtsKmLYR.js → useAsync-sbHIoH6-.js} +1 -1
- package/dist/assets/{useAsyncRetry-bd8YRPLB.js → useAsyncRetry-CCLyjAGj.js} +1 -1
- package/dist/assets/{useLocalStorage-Cf0vlWCe.js → useLocalStorage-CnqCtMp_.js} +1 -1
- package/dist/assets/{useThemeProps-CSqQ3Rdj.js → useThemeProps-DrXM-hmA.js} +1 -1
- package/dist/assets/{util-w8OtW6iJ.js → util-odWrmhcv.js} +1 -1
- package/dist/assets/{vi-DF8IinAc.js → vi-D1mKYrmb.js} +1 -1
- package/dist/assets/{wait-container-CoMsFqPE.js → wait-container-D_OCwH7P.js} +1 -1
- package/dist/assets/{without-wallet-U-jwKDa8.js → without-wallet-suCG1vjR.js} +1 -1
- package/dist/assets/wrap-locale-C0daq2dx.js +1 -0
- package/dist/assets/{zh-ByJkLAV1.js → zh-G2I44gfs.js} +1 -1
- package/dist/assets/{zh-tw-34G9tsUP.js → zh-tw-C4Juvs-i.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/ArrowDropDown-BLLloj8o.js +0 -1
- package/dist/assets/KeyboardArrowDown-Dlq5aN05.js +0 -1
- package/dist/assets/Verified-BAR-FN7O.js +0 -1
- package/dist/assets/api-Bv3RStR2.js +0 -1
- package/dist/assets/cloneDeep-CheRvpcx.js +0 -1
- package/dist/assets/config-navigation-D55MBXAB.js +0 -472
- package/dist/assets/emotion-cache.browser.esm-DxLNiXj3.js +0 -1
- package/dist/assets/engine-DGEfu7n8.js +0 -1
- package/dist/assets/getValidReactChildren-CVyZy5bG.js +0 -1
- package/dist/assets/index-CckoDRE8.js +0 -1
- package/dist/assets/index-DciiOEW2.js +0 -20
- package/dist/assets/index-Duu5UY8_.js +0 -1
- package/dist/assets/index-DxkMGrHs.js +0 -358
- package/dist/assets/index-K5eCanEK.js +0 -102
- package/dist/assets/is-path-prefix-equal-Cc6vYZ8N.js +0 -1
- package/dist/assets/item-BinI3jhy.js +0 -163
- package/dist/assets/omit-Bk5eP-SH.js +0 -1
- package/dist/assets/runtime-CVva7EgW.js +0 -1
- package/dist/assets/schema-7NDYbay9.js +0 -1
- package/dist/assets/sdk-Dvt1785F.js +0 -1
- package/dist/assets/toUpper-lxerpjTR.js +0 -1
- package/dist/assets/trim-D7km596D.js +0 -1
- package/dist/assets/wrap-locale-DxhU5ODE.js +0 -1
|
@@ -4,6 +4,6 @@ Modo vertical:
|
|
|
4
4
|
Proporción: 9:16
|
|
5
5
|
|
|
6
6
|
Modo horizontal:
|
|
7
|
-
Proporción: 16:9`,copyrightDesc:"Utilizado en: pie de página del sitio web",appUrlDesc:"Usado en: sitemap y compartir en redes sociales",advanced:"Configuración avanzada",errorReason:"Blocklet no se pudo iniciar, pero aún puedes acceder a él haciendo clic en el botón de abajo.",nameValidateError:"Inválido: debe comenzar con letra/número, 3–129 caracteres, solo a–z, 0–9, - y _."},overview:{source:"Fuente",deployedFrom:"Desplegado desde",accessControl:"Control de acceso",viewInStore:"Verlo en la tienda"},diskInfo:{empty:"¡Información del disco no disponible en este momento!",appDir:"Directorio de aplicaciones",dataDir:"Directorio de datos",logDir:"Directorio de registro",cacheDir:"Directorio de caché"},runtimeInfo:{noRunning:"¡La información de tiempo de ejecución estará disponible cuando el blocklet esté en ejecución!",memoryUsage:"Uso de memoria",cpuUsage:"Uso de la CPU",uptime:"Tiempo de actividad",port:"Puerto",processId:"ID de proceso",dataStorage:"Almacenamiento de datos"},dist:{downloadLink:"Enlace de descarga",verify:"Verificar"},status:{added:"Añadido",waiting:"Esperando",downloading:"Descargando",extracting:"Extrayendo",installing:"Instalando",upgrading:"Actualizando",installed:"Instalado",created:"Creado",starting:"Comenzando",running:"Corriendo",stopping:"Deteniendo",stopped:"Detenido",error:"Error",deleting:"Borrando",corrupted:"Corrompido",purchasing:"Esperando la compra",purchased:"Comprado",verifying:"Verificando compra",resource:"Recurso",failWithOldVersion:"La nueva versión no pudo iniciar, Blocklet está ejecutándose en la versión anterior.",hasSomeErrors:"{blocklets} No está funcionando por completo, posiblemente debido a problemas o a una puesta en marcha pendiente."},list:{download:"Descargar",star:"Estrella",searchPlaceholder:"Buscar por nombre de Blocklet o DID"},component:{container:"Configuración Global",showContainer:"Mostrar configuración global",didSpaceConfig:"Configurar espacios DID",didSpaceConfigTip:"Completa el siguiente proceso de autorización para almacenar datos de aplicación en DID Spaces",didSpaceConnected:"Almacenamiento autorizado para: {endpoint}",checkUpdateTitle:"Buscar actualizaciones",updateTitle:"Actualizar Componentes",noUpdate:"No hay componentes para actualizar",add:"Agregar componente",selectComponent:"Seleccionar Blocklet",selectRegistry:"Selecciona la Tienda de Blocklets",selectRegistryTip:"Puedes cambiar la tienda de blocklets para ver más componentes",selectInstance:"Seleccionar instancia",selectInstanceTip:"Puedes seleccionar una instancia existente o crear una nueva instancia. Las instancias existentes utilizarán la configuración y datos guardados previamente",newInstance:"Crear nueva instancia",noComponent:"No hay componentes",mountPoint:"¿Cuál es el punto de montaje?",mountPointTip:"Si estableces el punto de montaje en '/my-prefix', entonces todas las solicitudes que comiencen con ese punto de montaje se enrutarán al componente seleccionado.",delete:"Eliminar Componente",deleteDescription:"Este componente no estará accesible después de ser eliminado. ¿Confirmar eliminación?",purchase:"Pago requerido",tip:{stopBlocklet:"Por favor, detén la ejecución de Blocklet primero",requiredBy:"El componente es requerido por {name}"},choose:"Elige",addWithName:"Agregar Bloque a {name}",installingCanCloseWindowTip:"Instalando componente en segundo plano, puedes cerrar esta ventana de forma segura",installSuccessTip:"¡Felicidades, el componente se instaló correctamente!",missDownloadTokenTip:"No se puede agregar un componente de pago sin un token de descarga válido",purchaseComponentSecondCheckTip:"Por favor, presenta tu NFT de compra de blocklet para continuar",installComponentError:"Hubo un error al instalar el componente, por favor inténtelo de nuevo",downloadComponentError:"Hubo un error al descargar el componente, por favor intenta de nuevo",addComponentTip:{introduction:"Bienvenido/a al Asistente para agregar componentes",isPurchase:"Necesitas verificar NFT antes de usar <b>{name}</b> como componente",belowInformation:"A continuación se muestra la información para el componente:",verifyNFT:"Por favor selecciona el método de verificación de NFT",config:"Por favor, complete la configuración del componente",environment:"Por favor rellene el entorno del componente",fromUrl:"Agregar Blocklet desde URL",fromUpload:"Añadir Blocklet desde subida",uploadFailed:"Subida fallida",allowedFileTypes:"Tipos de archivos permitidos para subir: {types}"},addNext:"Agregar {name}",upgradeNext:"Actualizar {name}",setting:"Ajustes",noDependencies:"{name} no tiene dependencias",relatedComponents:"Bloques relacionados",required:"Requerido",installed:"Instalado",installingTip:"Instalando componente, por favor espere...",upgrade:"Mejorar",upgradeAvailable:"Actualización disponible",needBuy:"Necesita comprar",isOfficial:"Oficialmente Certificado"},router:{urlPath:"URL Path",noRunning:"El blocklet no está actualmente iniciado. ¡No se puede acceder a través de la siguiente dirección!",securitySetting:"Configuración de seguridad",checkUrlAccessible:"Verifique la accesibilidad de la dirección",urlInaccessible:"Puede ser debido a problemas de red, la dirección no está accesible temporalmente",noAccessibleUrl:"No hay una URL accesible",domainLockTooltip:"El dominio generado por el sistema no se puede editar.",urlLockTooltip:"La ruta de URL generada por el sistema no se puede editar.",showAllDomains:"Mostrar todos los dominios",showAllDIDs:"Mostrar todos los DIDs",currentDomainTip:"Estás accediendo a la página actual a través de este dominio"},export:{title:"Exportar Blocklet",name:"Nombre del paquete",nameTip:"mi-nombre-de-bloque",result:"¿Qué sigue?",exportSource:"Fuente de exportación",success:"Blocklet exportado con éxito",resultTipStart:"Con",resultTipEnd:"Puedes construir y publicar esta blocklet en minutos",uploadedComponentTip:"Los componentes cargados directamente no pueden ser exportados"},migrate:{title:"Migrar Aplicación",scan:"Conecta tu billetera DID para generar un par de claves para esta aplicación",confirm:"Revise esta operación en su Monedero de DID",success:"Tu aplicación se ha migrado correctamente, la página se actualizará en {sec} segundos",intro:{l1:"Haz clic aquí",l2:"Para migrar tu aplicación a una nueva versión (los cambios están desactivados hasta que se complete la migración)",l3:"La aplicación DID será completamente controlada desde tu billetera DID.",l4:"2. Los datos de la aplicación serán migrados y no se requieren cambios adicionales.",l5:"3. La nueva estructura de la aplicación te dará más flexibilidad al cambiar componentes.",l6:"4. Por favor, no cambies los puntos de montaje de los componentes antes de que salga la nueva versión del componente."},tip:{duplicate:"Encuentra el componente duplicado {name}, por favor elimina los componentes inútiles y migrar nuevamente",running:"Por favor detén el blocklet antes de la migración"}},error:{isRunning:"Blocklet está en ejecución, por favor deténgalo primero",isInProgress:"Blocklet está en progreso, por favor espera a que termine"},publish:{createResource:"Crear Recurso",addResource:"Agregar lanzamiento",productTitle:"Producto",versionTitle:"Versionando",imgTitle:"Imágenes",resourceTitle:"Contenido",blockletEmptyTip:"No hay Blocklets aquí",createBlockletTip:"Puede crear un nuevo blocklet a través de recursos, componentes y configuración existentes en esta aplicación",createBlocklet:"Nuevo bloque",componentNotRunning:"El Blocklet {name} no está en ejecución, por favor inícialo primero",releaseEmptyTip:"No hay ninguna versión aquí",createReleaseTip:"Puedes crear una versión de la blocklet, junto con notas de lanzamiento y recursos, para que otras personas la puedan utilizar",createRelease:"Crear versión",deleteReleaseTip:"La versión no se puede recuperar después de la eliminación",createBlockletDid:"Crear desde la billetera DID",createReleaseSuccess:"Liberación creada exitosamente",saveDraftSuccess:"Borrador guardado exitosamente",connect:{title:"Crear Blocklet DID",scan:"Usa los siguientes métodos para generar Blocklet DID",confirm:"Confirma usando DID Wallet",success:"Se ha generado el DID de Blocklet, por favor continúa con tu operación"},saveDraft:"Guardar Borrador",releaseNote:"Nota de lanzamiento",errorTip:{noDid:"El DID de Blocklet es requerido",noTitle:"Se requiere el título de Blocklet",noVersion:"Se requiere la versión de Blocklet",noDescription:"La descripción de Blocklet es requerida",noNote:"Se requiere la Nota de Lanzamiento",inValidVersion:"Versión de Blocklet no válida",noResource:"Por favor seleccione cargar recurso para incluirlo en el blocklet",noFirstDid:"Por favor, crea Blocklet DID primero",invalidUrl:"Por favor, ingrese una URL válida",invalidUrlOrEmail:"Por favor ingrese una URL o correo electrónico válido"},packTip:"Actualmente, los blocklets se pueden instalar directamente como aplicaciones. Los componentes y las configuraciones de la aplicación se incluirán automáticamente en el Blocklet",resourceChangedWarning:"Ha modificado el recurso, por favor guárdelo a tiempo",installResourceTip:"URL de instalación:",installResourceTip2:"Si desea ver más consejos, visite {name}",installResourceHelp:"Ayuda Documento",componentIncluded:"Incluido",componentForceRequired:"Requerido",download:"Descargar {name}",delete:"Eliminar {name}",copyInstallUrl:"Copiar URL de instalación",install:"Instalar {name}",publishToStoreSuccess:"Blocklet publicado en la tienda con éxito",connectStoreSuccess:"La tienda de Blocklet se conectó correctamente",uploadToStoreSuccess:"Bloque de carga a la tienda exitosamente, necesitas publicarlo en la tienda",viewLastRelease:"Ver última versión",reconnectStoreTip:"Después de reconectar, se vinculará un nuevo desarrollador. ¿Estás seguro de que deseas reconectar?",deleteProject:{title:"Borrar {name}",scan:"Usa los siguientes métodos para eliminar {name}",confirm:"Confirmar usando el monedero DID",success:"El proyecto Blocklet ha sido eliminado, por favor continúa tu operación",tip1:"El proyecto de Blocklet no será recuperable después de su eliminación",tip2:"Ya no podrás publicar nuevas versiones del Blocklet eliminado, lo que significa que el Blocklet ya no se actualizará en la tienda.",tip3:"Borrar el Bloque no afectará su versión actualmente publicada en la Tienda.",description:"Después de eliminar el Blocklet, te encontrarás con los siguientes problemas, ¿estás seguro de que quieres eliminarlo?"},resourceTip:"Actualmente, como un Bloque de Recursos, no se puede instalar directamente desde la Tienda.",whyCantSeeInStore:"Puedes publicar el Blocklet actual en la tienda, y se podrá usar en todo el mundo",whyCantSeeResourceBlockletInStore:"Puedes publicar el Blocklet actual en la tienda, y podrá ser usado en todo el mundo. Los Blocklets están ocultos de la página de listado de la tienda por defecto",tenantScope:"Inquilino",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets no está ejecutándose, por favor inícialo primero",resourceEmptyTip:"No hay recursos disponibles",steps:{resources:"Por favor selecciona los recursos que necesitan ser asociados con el Blocklet actual, ya que estos recursos se instalarán junto con el Blocklet.",blocklets:"Selecciona los blocklets a asociar.",version:"Establecer la versión de lanzamiento y el registro de cambios.",introduction:"Una introducción clara puede resaltar eficazmente tu Blocklet. Puedes usar la sintaxis de Markdown para escribir y previsualizarlo.",branding:"Describe la información básica de tu Blocklet. Esta información se presentará a los usuarios en la tienda."},branding:"Branding",brandingHelp:"Se mostrará más información sobre el blocklet en la tienda",resourceSelect:"Seleccionar recurso de blocklets",resourceUpload:"Cargar recurso desde tu disco (index.html es requerido en el archivo)",deleteStoreTip:"¿Estás seguro de que quieres eliminar a {name} de la lista de la tienda Connect?",disconnectStoreTip:"Después de la desconexión, se eliminará el blocklet de la tienda. ¿Seguro que desea desconectar?",connectOrUpload:"Conectar o Subir",developerInfo:"Información del desarrollador",autoUploadTip:"Cargar automáticamente el blocklet en la tienda después de la versión de creación",possibleSameStoreTip:"Intenta resolver las dependencias de los blocklets en la misma tienda de blocklets antes de cada carga cuando sea posible",needProjectId:"Por favor, crea un proyecto primero",projectSettings:"Configuraciones del Proyecto",noStoreSelected:"Por favor, seleccione una de las tiendas existentes o agregue una nueva tienda para continuar",installToThisServer:"Instalar en este servidor",forceResourceBlocklet:"Fuerza definida como un blocklet basado en recursos",resourceDocker:"Crear Blocklet desde Docker",resourceSelectTitle:"Recurso",resourceUploadTitle:"Subir",resourceDockerTitle:"Docker",resourceDockerInputTip:"Por favor, introduzca el comando docker run",docker:{pleaseInputDockerCommand:"Por favor ingrese el comando docker run",volumeTip:"El volumen debe comenzar con $BLOCKLET_DATA_DIR o $BLOCKLET_APP_DIR",volumeTip2:'El volumen no puede contener ".."',noAllowTheArg:"No se permite usar el argumento en el comando docker run",needCustomInput:"Configure el valor al instalar Blocklet",dockerParams:"Parámetros de Docker",dockerCommand:"Comando Docker",dockerImageName:"Nombre de la imagen de Docker",addItem:"Agregar parámetro de ejecución de Docker",envKey:"Clave de variable de entorno",publishTips:"El puerto externo final será asignado automáticamente por el blocklet",volumeTips:"El volumen debe comenzar con $BLOCKLET_DATA_DIR o $BLOCKLET_APP_DIR",modifyParam:"Modificar parámetro de ejecución de Docker",modifyEnv:"Modificar variable de entorno",paramDetail:"Detalle de parámetro",description:"Descripción",secure:"Seguro",shared:"Compartido",required:"Requerido",prefix:"Prefijo",path:"Ruta",name:"Nombre",portType:"Tipo de puerto",dockerImageNameError:"El nombre de la imagen de Docker no puede contener espacios",autoGenerated:"Generado automáticamente",dockerCMDError:"Docker CMD solo admite caracteres simples",proxyBehavior:"Comportamiento del proxy",serviceProxy:"Servicio",directProxy:"Directo",nextTab:"Analizar Comando"},storeRule:{maxImageCount:"La tienda permite como máximo {max} capturas de pantalla.",minImageCount:"La tienda requiere al menos {min} {unit}.",minImageSize:"El tamaño de la imagen de la captura de pantalla de {name} debe ser de al menos {width}x{height}.",logoFormat:"El formato de imagen del logo solo admite [{format}]",warning:"Advertencia",screenshot:"Captura de pantalla",screenshots:"Capturas de pantalla",first:"Primero",second:"2º",third:"3º"},store:"Tienda Blocklet",endpoint:{tab:"Blocklet remoto",uploadToEndpoint:"Puedes subir el Blocklet actual al Blocklet especificado.",addEndpoint:"Añadir punto final de Blocklet",urlEmpty:"La URL del punto final no puede estar vacía",addFailed:"Error al agregar el punto final de Blocklet:",deleteEndpoint:"Eliminar punto final de Blocklet",deleteDesc:'Confirmar eliminación del endpoint de Blocklet {name}?<br/><span style="color: {color}">*Después de eliminar este endpoint de Blocklet, no podrá actualizar las aplicaciones instaladas desde este endpoint de Blocklet a menos que las agregue de nuevo.</span>',confirmDesc:"Por favor, ingrese {name} para eliminar",visitEndpoint:"Visita Blocklet",disconnectEndpointTip:"¿Estás seguro de que quieres desconectar {url}? Después de desconectar, el Blocklet no se cargará en este punto final.",deleteFailed:"Error al eliminar el punto final de Blocklet",publishToEndpointSuccess:"Blocklet publicado en Endpoint correctamente",uploadToEndpointSuccess:"Blocklet subido al Endpoint correctamente"},autoPublishErrorTip:"Publicación automática a {storeName} fallida: {error}",singleton:"Solo una instancia",singletonTip:"Cuando el modo singleton está habilitado, la aplicación no puede ejecutar varias instancias al mismo tiempo. Como tu aplicación usa el modo singleton, el despliegue azul-verde no puede usarse para actualizaciones o reinicios."},titleValidationError:"La longitud del título debe estar entre 3 y 20 caracteres",descriptionValidationError:"La longitud de la descripción debe estar entre 3 y 80 caracteres",whyNeedAppPid:"Si se ha migrado su aplicación, el DID permanente es el DID generado cuando este Blocklet se instaló originalmente.",usingDocker:"Este Blocklet se ejecutará usando docker",gotoVisitError:"No se puede acceder a la URL de Blocklet, por favor intenta de nuevo más tarde",usingIsolation:"Este Blocklet se ejecutará con aislamiento de red",dockerImage:"Soporta Docker",mountPoint:{description1:"Este cambio puede romper URLs que contengan el antiguo punto de montaje, lo que puede llevar a:",case1:"Referencias de recursos rotas entre Blocklets en esta aplicación",case2:"URL roto si los has compartido públicamente",description2:"Puedes configurar una redirección desde el antiguo punto de montaje al nuevo para minimizar posibles cambios que rompan la funcionalidad."},skSourceMigratedTip:"Esta app se lanzó con un monedero administrado por servidor y ha migrado a DID Wallet para una mayor seguridad.",skSourceManagedTip:"Esta app se ejecuta con un monedero gestionado por servidor; migra a DID Wallet lo antes posible para una mayor seguridad.",zeroDowntime:"Sin tiempo de inactividad"},dashboard:{nodeDid:"Nodo",ownerDid:"Propietario",routingEngine:"Motor de Enrutamiento",ownerNftURL:"Propietario NFT",expirationLeft:"Vencimiento Restante",startFromCrashTip:"El servidor de Blocklet no se cerró correctamente la última vez, por favor inicie manualmente los blocklets que deben ejecutarse.",runtimeConfig:{blockletMaxMemoryLimit:"Límite máximo de memoria de Blocklet",daemonMaxMemoryLimit:"Límite Máximo de Memoria del Servidor"},document:"Más información en nuestra documentación",database:"Base de datos"},store:{nameSort:"Nombre",popularSort:"Popularidad",headerDescription:"Encuentra e instala tus Blocklets",detail:{purchase:"Compra {name}",open:"Abrir {name}",install:"Instalar {name}",upgrade:"Actualiza {name}",empty:"No introducción"},blockletRegistry:{changeFailed:"Fallo en cambiar la Tienda de Blocklet",addFailed:"Error al agregar Blocklet Store",editFailed:"Error al editar la tienda de Blocklet",switchRegistry:"Cambiar tienda de Blocklet",addRegistry:"Añadir Blocklet Store",editRegistry:"Editar Bloque Tienda",deleteRegistry:"Eliminar Blocklet Store",haveSameRegistry:"Existe la misma tienda de blocklets",registryName:"Nombre de la tienda de Blocklet",registryUrl:"URL de Blocklet Store",registryNameEmpty:"El nombre de la tienda de Blocklet no puede estar vacío",registryUrlEmpty:"La URL de la tienda de Bloquelets no puede estar vacía",deleteDesc:'¿Confirmar eliminar la tienda de blocklets {name}?<br/><span style="color: {color}">*Después de eliminar esta tienda de blocklets, no podrás actualizar las aplicaciones instaladas desde esta tienda a menos que las vuelvas a añadir.</span>',confirmDesc:"Por favor ingrese {name} para eliminar"},purchase:{title:"Compra {name}",confirmed:"Tu compra de NFT de Blocklet ha sido verificada",declined:"No has proporcionado la compra válida de Blocklet NFT",waiting:"Esperando completar la compra...",purchase:{title:"Compra NFT",description:"Paga un token antes de instalar esta blocklet si no la has comprado"},verify:{title:"Verificar NFT",description:"Tu NFT será verificado antes de instalar este blocklet si has comprado y tienes el NFT de compra en tu billetera DID",auth:{title:"Compra de credenciales requerida",scan:"Conecta la billetera DID para adquirir NFT de blocklet",confirm:"Revisa esta operación en tu billetera de DID",success:"Tu compra de NFT está verificada y la instalación ha comenzado"}},auth:{title:"Comprar {name}",scan:"Escanee el siguiente código QR con su billetera DID",confirm:"Confirmar en su cuenta",success:"Compra de NFT enviada a tu billetera DID"},launch:"Lanzamiento {name}",autoLaunch:"{name} ha comprado con éxito, redirigiendo a la página de inicio..."},tooltip:{upgradeServer:"Se necesita la versión {version} del servidor de Blocklet, la versión actual del servidor de Blocklet es {serverVersion}"}},setting:{saveSuccess:"Configuración guardada exitosamente",unSavedTip:'Hay cambios no guardados, por favor haz clic en "Guardar cambios" para guardarlos.',unSavedLeaveTip:"Hay cambios no guardados, ¿estás seguro de abandonar la página?",form:{name:"Nombre de tu servidor",nameRequired:"Se requiere una descripción del servidor",namePlaceholder:"Nombre del servidor",description:"Description tu servidor",descriptionHolder:"Descripción del servidor",descriptionRequired:"Se requiere una descripción del servidor",domain:"Tu nombre de dominio del servidor",domainPlaceholder:"Nombre de dominio del servidor",domainRequired:"Se requiere el dominio del servidor",ipPlaceholder:"IP",ipRequired:"La IP es requerida",registry:"Blocklet Store",registryPlaceholder:"Tienda de Blocklet para obtener blocklets",registryRequired:"Se requiere Blocklet store",registerUrl:"URL de Blocklet Launcher",registerUrlPlaceholder:"Ingresa la URL de tu Blocklet Launcher preferido, puedes usar el oficial de forma segura",webWalletUrl:"URL de DID Wallet",webWalletUrlPlaceholder:"Por favor ingresa la URL de tu 'DID Wallet' alojada, puedes usar la oficial con seguridad",nftDomainUrl:"URL de dominio NFT",nftDomainUrlPlaceholder:'Por favor ingresa la URL de tu "Dominio NFT" alojado, puedes usar el oficial de forma segura',enableWelcomePage:"Habilitar página de bienvenida",welcome:{switchLabel:"Página de bienvenida"},upgrade:{title:"Actualiza el servidor de Blocklet a {version}",description:"Durante la actualización, tu servidor de Blocklet entrará en modo de mantenimiento durante unos minutos mientras se completa la actualización.",dialog:'Haz clic en "confirmar" para instalar la actualización. El servidor Blocklet entrará en modo de mantenimiento hasta que la actualización se complete y volverá automáticamente al modo de producción.',confirm:"Mejora",switchLabel:"Verificación automática de actualizaciones",enableBetaRelease:"Habilitar lanzamiento beta",setup:"Preparando la actualización",installing:"Instalando Blocklet Server v{version}",restarting:"Reiniciando el servidor Blocklet",cleanup:"Migrando datos del servidor Blocklet",verifying:"Verificando el servidor de Blocklet v{version}",rollback:"Revertir servidor de Blocklet",complete:"¡Actualización completa!",progress:"Mejorando {name}",check:"Buscar actualizaciones",latest:"Estás ejecutando la última versión."},restart:{title:"Reiniciar el servidor de Blocklet",description:"Durante el reinicio, tu Servidor de Blocklets entrará en modo de mantenimiento mientras se completa el reinicio.",dialog:'Haz clic en "confirmar" para reiniciar. El servidor de Blocklet entrará en modo de mantenimiento hasta que se complete el reinicio y volverá automáticamente al modo de producción.',confirm:"Reiniciar",setup:"Preparando el reinicio",verifying:"Verificación del servidor de Blocklet",restarting:"Reiniciando el servidor Blocklet",cleanup:"Asegúrate de que todo esté bien",rollback:"Limpiar el estado sucio",complete:"¡Mantenimiento completo!",progress:"Reiniciando {name}"},register:{title:"Regístrate en Blocklet Launcher",description:"Una vez agregado, puedes lanzar blocklets a este servidor de blocklets desde {url}",button:"Registrar"},monitor:{diskThreshold:"Enviar alerta cuando el uso del disco exceda (%)",diskThresholdPlaceholder:"Por favor, establezca el umbral de alerta para el uso del disco"},security:{switchLabel:"Aislamiento del sistema de archivos",switchTips:"Después de deshabilitar esta opción, el sistema de archivos del Blocklet ya no estará aislado, lo que podría representar un riesgo de que software malicioso dañe el sistema de archivos.",warningTips:"La función de aislamiento del sistema de archivos no puede tener efecto. Actualiza la versión de node.js (la versión actual es {version}) a la versión 21.6.0 o superior."},docker:{switchLabel:"Ejecutar Blocklets en Contenedores",switchTips:"Después de habilitar esta opción, los blocklets se ejecutarán utilizando contenedores, lo que puede mejorar la seguridad general del servidor.",notInstalled:"No se puede activar el contenedor de ejecución porque Docker no está instalado o no tiene los permisos necesarios para ejecutar",needCloseFileSystemIsolation:"El aislamiento del sistema de archivos y el modo de contenedor Docker no se pueden habilitar al mismo tiempo"},dockerNetwork:{switchLabel:"Aislamiento de red de contenedor",switchTips:"Tras habilitar esta opción, los blocklets se ejecutan de un modo más seguro: un blocklet no puede acceder al servidor de blocklets ni a otros blocklets en las aplicaciones.",needEnableDocker:"El modo contenedor debe estar activado para activar el aislamiento de red"},restartAllContainers:{title:"Reiniciar todos los contenedores",description:"Reiniciar todos los contenedores y mantener los Blocklets en ejecución.",dialog:'Haz clic en "confirmar" para reiniciar todos los blocklets de contenedor y mantener el estado de blocklets en ejecución.',confirm:"Reiniciar",setup:"Preparando el reinicio",verifying:"Verificando Blocklet Server",restarting:"Reiniciando todos los contenedores en segundo plano",cleanup:"Asegúrese de que todo esté bien",rollback:"Limpiar el estado sucio",complete:"¡Mantener completo!",progress:"Reiniciando todos los contenedores en segundo plano"},restartAllBlocklet:{title:"Reiniciar todos los Blocklets",description:"Reiniciar todos los Blocklets que se estén ejecutando o tengan errores en este servidor.",dialog:'Haz clic en "confirmar" para reiniciar todos los blocklets en segundo plano.',confirm:"Reiniciar",setup:"Preparando el reinicio",verifying:"Verificando Blocklet Server",restarting:"Reiniciando todos los Blocklets en ejecución o con errores en segundo plano",cleanup:"Asegúrese de que todo esté bien",rollback:"Limpiar el estado sucio",complete:"¡Mantenimiento completado!",progress:"Reiniciando todos los Blocklets en ejecución o con errores en segundo plano"},enableSessionHardening:{switchLabel:"Habilitar endurecimiento de sesión",switchTips:"Después de habilitar esta opción, las operaciones de mutación requerirán verificación estricta, lo que puede mejorar la seguridad general del servidor."}},accessKey:{accessKeyId:"ID de Clave de Acceso",lastUsed:"Último utilizado en",tip:"Introduce un nombre para esta clave de acceso",saveSecretTip:"Esta es la única vez que se puede ver la clave secreta de acceso y no se puede recuperar. Sin embargo, en cualquier momento puedes crear nuevas claves de acceso",iKnow:"He copiado y guardado el Acceso Secret",showSecret:"Mostrar clave de acceso secreta",hideSecret:"Ocultar Secreto",title:"Eliminar clave de acceso",descriptionNoTime:"Esto eliminará de forma permanente la clave de acceso {key} con nombre {name}, la cual nunca se ha utilizado antes",description:"Esto eliminará permanentemente la clave de acceso {key} con el nombre {name}, la cual fue utilizada por última vez el {time}, {timeAge}",confirm_desc:"Por favor ingresa {name} para eliminar",remark:"Nombre de clave de acceso",remarkInvalid:"Se requiere el nombre de la clave de acceso",passport:"Selecciona un pasaporte para la clave de acceso para otorgar o limitar permisos",expireTime:"Establezca una fecha de caducidad para la clave de acceso para una mejor seguridad",authType:"Tipo de autenticación",resourceType:"Tipo de Recurso",resourceId:"ID de recurso",component:"Componente",expired:"{time} caducado",accessKeySecret:"Clave secreta de acceso",simple:"Simple",signature:"Firma",signatureDesc:"Seguridad de nivel empresarial con criptografía. Requiere integración de código con SDK (@blocklet/server-js), ideal para escenarios con altos requisitos de seguridad y transmisión de datos críticos",simpleDesc:"Mecanismo de token portador ligero, similar a una clave OpenAPI, admite llamadas a API RESTful e integración de servicios de terceros. No se requiere codificación, integración rápida a través de encabezado HTTP, perfecto para un desarrollo rápido",viewSecret:"Puedes acceder a la clave secreta más tarde en la página de detalles de la clave de acceso",usage:"Uso",listTitle:"Gestionar el acceso seguro a la API con claves de acceso",tooltipTitle:"Genere y administre credenciales que permitan a los sistemas de confianza interactuar con su aplicación mediante programación. Las claves de acceso permiten la automatización segura y la integración perfecta en sus herramientas y servicios."},webhook:{add:"Agregar Integración",delTitle:"Borrar Integración",requiredError:"Por favor proporcione un {type} válido",confirm_desc:"Por favor ingrese {name} para eliminar",test:"Prueba",description:"Esto eliminará permanentemente la integración con ID {id}",columns:{description:"ID",params:"Parámetros",createdAt:"Creado en"},testSuccess:"Mensaje de prueba enviado con éxito",duplicateError:"La URL ya existe",updateSuccess:"Estado actualizado correctamente"},dns:{step1Title:"Inicia sesión en tu registrador de dominio",step1Desc1:"Inicia sesión en tu registrador de dominio, busca la página de administración de dominios y localiza la página de configuración de servidores de nombres. Puedes buscar tu registrador de dominio en",step2Title:"2. Encuentra la configuración DNS para {url}",step2Desc:'Esto puede llamarse "Gestión DNS", "Configuración avanzada", o similar.',step3Title:"3. Añada los siguientes registros DNS",step3Desc:'El nombre puede llamarse "host", "hostname", o "alias"'},domain:{addingDomain:"Añadiendo dominio...",checkingResolvable:"Comprobando estado del dominio...",cannotResolve:"{domain} no se puede resolver, verifique su configuración de DNS",resolvedAddressError:"{domain} no está configurado correctamente con un registro CNAME que apunte a {curDomain}",invalidDNSReminder:"{error}. Sin embargo, puedes continuar añadiendo el dominio, pero la generación automática de certificados no está disponible.",continueAdd:"Continuar añadiendo",conflictTitle:"{domain} ya está en uso",conflictDescription:'{domain} ya está en uso por "{title}". Al confirmar, el dominio se eliminará de "{from}" y se agregará a "{to}".'},aigne:{modelAdapter:"Proveedor de Modelo",modelName:"Nombre del Modelo",desc:{modelAdapter:"La plataforma que ofrece un servicio de modelo AI",modelName:"La versión específica del modelo o el nombre del modelo",key:"La clave API de {provider} usada para autenticación",baseUrl:"Ingrese la URL de su instancia AIGNE Hub (p. ej., https://hub.aigne.io). Use la suya si está autoalojando.",accessKeyId:"La clave única ID para acceder al modelo",secretAccessKey:"La clave secreta emparejada con el ID de clave de acceso",docLink:"Ver la documentación oficial para más detalles y referencia API"},failed:"Error al guardar la configuración de AIGNE",authorizeAigneHub:"Conectar a {name}",baseUrl:"URL del Hub AIGNE",disconnect:"Desconectar",disconnectConfirm:"¿Estás seguro de que quieres desconectarte de AIGNE Hub? Esto eliminará la configuración de IA actual.",disconnectSuccess:"Desconectado con éxito de AIGNE Hub",disconnectFailed:"Error al desconectar de AIGNE Hub",testConnection:"Probar conexión {provider}",invalidUrl:"La URL de {provider} no es válida",description:"La configuración actual tendrá efecto cuando {name} esté en ejecución. Debe guardar y reiniciar el Blocklet para que tenga efecto.",revokeUrlAuthTitle:"Confirmar cambio de {url}?",revokeUrlAuth:"¿Está seguro de que desea cambiar el {url}? Después de la modificación, su autorización será inválida y necesitará ser reautorizada.",testSuccess:"Conectado exitosamente a AIGNE Hub",check:"Comprobar",apiKeyNotAuthorized:"La clave API no está autorizada. Por favor, haga clic en el botón conectar a AIGNE Hub para autorizarla",switchUser:"Cambiar Usuario",connectTimeOut:"Conexión a {provider} agotada, por favor intente de nuevo más tarde",restart:{title:"Reiniciar Blocklet",connectedContent:"Tu Blocklet está actualmente conectado a {provider}. La configuración tendrá efecto después del reinicio. ¿Quieres reiniciar ahora?",notConnectedContent:"Tu Blocklet está actualmente desconectado de {provider}. La configuración tendrá efecto después del reinicio. ¿Quieres reiniciar ahora?",confirm:"Reiniciar Ahora",cancel:"Reiniciar Más Tarde"},testFailed:"No se pudo conectar a AIGNE Hub. Por favor, revise la URL o su red.",addCredits:"Comprar Créditos",transaction:"Transacciones",connected:"Conectado exitosamente",account:"Información de la cuenta",pendingCredit:"Cargos Pendientes",infinite:"Ilimitado",config:"Configurar AIGNE Hub"}},notification:{title:"Notificaciones",history:"Historial",channelSettings:"Configuración del canal",empty:"No hay actividades aun",viewAll:"Ver Todo",showRead:"Mostrar leer",markAllAsRead:"Marcar todo como leído",markAsRead:"Marcar como leído",proceed:"Proceder",checkingForUpdates:"Comprobando actualizaciones...",email:{enable:"Activar notificaciones",from:"Remitente del correo electrónico",host:"Servidor SMTP Host",port:"Puerto del servidor SMTP",user:"Nombre de usuario SMTP",secure:"Conexión segura",password:"Contraseña SMTP",fromRequired:"Se requiere el remitente de correo electrónico",fromInvalid:"El remitente del correo electrónico no es válido",receiverRequired:"Se requiere destinatario de correo electrónico",receiverInvalid:"El destinatario del correo electrónico es inválido",hostRequired:"Se requiere el host del servidor SMTP",hostInvalid:"El servidor SMTP es inválido",portRequired:"El puerto del servidor SMTP es requerido",portInvalid:"El puerto del servidor SMTP es inválido, el puerto debe estar entre 1 y 65535",userRequired:"Se requiere nombre de usuario del servidor SMTP",passwordRequired:"Se requiere contraseña de usuario del servidor SMTP.",testSuccess:"El correo de prueba se ha enviado con éxito",testFailed:"Fallo al enviar correo de prueba",testReceiver:"Destinatario del correo electrónico",testSendEmail:"Prueba de envío de correo electrónico",inputTestReceiver:"Por favor ingresa el correo electrónico de prueba del receptor",disable:"Cancelar notificación por correo electrónico",disableDescription:"Después de darte de baja, dejarás de recibir notificaciones por correo electrónico. Para recibir notificaciones por correo electrónico, puedes suscribirte nuevamente en esta página.",unsubscribe:"Cancelar suscripción notificación por correo electrónico",unsubscribeDescription:"Después de darte de baja, ya no recibirás notificaciones por correo electrónico.",subscribe:"Suscribirse",subscribeDescription:"Para recibir notificaciones por correo electrónico, puedes suscribirte de nuevo en la página de configuración.",companyName:"Nombre de la compañía",companyLink:"Enlace de la Compañía",companyAddress:"Dirección de la empresa",supportEmail:"Correo de soporte",emailInvalid:"Correo electrónico inválido",linkInvalid:"Enlace inválido, debe comenzar con http o https",signature:"Firma",signatureTooltip:"La firma de correo electrónico se usa al final para proporcionar al destinatario información clave sobre el remitente."},wallet:{description:"Las notificaciones de Wallet DID están siempre habilitadas para todos los usuarios."},webhooks:{description:"Las notificaciones enviadas a través de webhooks están siempre habilitadas para todos los usuarios."},comingSoon:"Más canales de notificación se encuentran en construcción",unsubscribe:"Cancelar subscripción",unsubscribeSucceed:"La cancelación se realizó con éxito",unsubscribeFailed:"La cancelación de la suscripción falló",unsubscribeTokenRequired:"El token de cancelación es requerido",unsubscribeTokenExpired:"El token de cancelación de suscripción ha caducado",unsubscribeTokenInvalid:"El token de cancelación de suscripción no es válido",installComponentError:"Componente {name} no encontrado o desinstalado",installingComponent:"Instalando componente {name}",pushKit:{enable:"Activar notificaciones",endpoint:"Punto final PushKit",endpointInvalid:"El punto final PushKit no es una URL válida",testSuccess:"La prueba de PushKit se envió correctamente",testFailed:"Test PushKit enviar falló",testReceiver:"Receptor PushKit",testSend:"Probar enviar push-kit",inputTestReceiver:"Introduzca el receptor de prueba did",receiverRequired:"Se requiere receptor PushKit",pushPath:"Ruta de API para push-kit (predeterminado /api/push)",did:"PushKit Blocklet DID",customOptions:"Opciones personalizadas"},notificationDetails:"Detalles de la notificación",receiver:"Receptor",sendStatus:{success:"Enviado",failed:"Error",sentTime:"Hora de envío: {date}",pending:"Pendiente",reason:{enabled:"El usuario ha activado la notificación de {channel}",disabled:"El usuario no ha habilitado la notificación de {channel}",unavailable:"El Blocklet actual no ha configurado la notificación de {channel}",available:"El Blocklet actual ha configurado la notificación {channel}",notSent:"El mensaje actual no se ha enviado a {channel}",offline:"Usuario está desconectado"},count:"{count}",total:"Total"},filter:"Filtrar",notificationPreview:"Vista previa de notificación",resend:"Reenviar",resendLimit:"Puedes reenviar una notificación hasta tres veces al día.",from:"Desde",to:"Para",body:"Cuerpo",notificationTitle:"Título",createdAt:"Creado en",status:"Estado",system:"Sistema",severity:"Severidad",config:"Configuraciones",selectChannels:"Seleccionar Canales",selectChannelsTip:"Selecciona los canales para reenviar",resendFailedOnly:"Reenviar solo a canales fallidos",statistics:"Estadísticas",allSender:"Todos los remitentes",allSeverity:"Todas las Gravedades",severityType:{info:"Info",success:"Éxito",warning:"Advertencia",error:"Error"},clear:"Limpiar",allDone:"Todo listo",filterType:{all:"Todo",unread:"No leídos"},viewMore:"Ver más"},router:{routerSetting:"Dominios y URL",certSetting:"Certificados SSL",defaultSite:"Predeterminado",urlHelperText:"Las URL que no comienzan con HTTP/HTTPS se consideran rutas relativas",empty:"Haz clic en Acciones para configurar el mapeo de URL",healthy:{ok:"El bloque o servicio está en ejecución",error:"Blocklet o servicio no está en funcionamiento o no está instalado"},service:{select:"Seleccionar Servicios de Bloquelet (opcional)",what:"Los servicios de Blocklet son tuberías ejecutadas contra la solicitud antes de redirigirla a la blocklet superior"},nonProvider:{title:"Advertencia de cambio de motor",description:"Si cambias el motor a ninguno, es posible que tu página actual no funcione correctamente porque el motor anterior se detendrá. ¿Estás seguro de continuar?",confirm:"Entiendo, continúa"},validation:{urlRequired:"Se requiere la URL",redirectCodeRequired:"Es necesario el código de redirección",didRequired:"Se requiere Blocklet",pathPrefixTooLong:"El prefijo de URL no puede exceder los {length} caracteres",pathPrefixCannotBeEmpty:"El prefijo de URL no puede estar vacío",domainRequired:"Se requiere el dominio del servidor",invalidUrl:"Por favor proporciona una URL válida",pathPrefixRequired:"Se requiere un prefijo de URL",redirectUrlRequired:"La URL de redireccionamiento es requerida",rewriteUrlRequired:"Se requiere una url de redirección"},domain:{addSite:"Agregar sitio",validate:{emptyTip:"El dominio del sitio no puede estar vacío",suffixTip:"El dominio del sitio no puede incluir {suffix}"},add:{title:"Agregar Nombre de Dominio",description:"Por favor proporciona un nombre de dominio válido",confirm:"Agregar",cancel:"Cancelar",blocklet:"Seleccionar Blocklet",redirect:"¿A dónde redirigir el tráfico?",port:"¿A qué puerto necesita escuchar su controlador de solicitudes?",portTip:"Esto se establece por defecto en el puerto principal del controlador de solicitudes, puedes personalizarlo",type:"Controlador de Tráfico",component:"Seleccionar Componente",pageGroup:"Grupo de Página",pageGroupTip:"Este componente puede renderizar cualquier grupo de páginas enumeradas arriba, dejar vacío para renderizar todas las páginas"},update:{title:"Actualizar dominio del sitio",label:"Dominio del sitio",description:"Por favor, proporcione un dominio de sitio válido"},setup:{tipStart:"Agregue los registros DNS para el dominio",tipEnd:"Según las siguientes pautas",recordType:"Tipo de Registro",recordValue:"Valor de registro"},verify:{ok:"La resolución de dominio es normal",notResolved:"Este dominio no se resuelve ni se puede acceder, por favor verifica la configuración de tu DNS"},https:{ok:"Este dominio tiene habilitado el protocolo https",bad:"Este dominio no ha habilitado https"},delete:{title:"Eliminar sitio",description:'Al confirmar, eliminarás tu sitio existente "{name}". Escribe "{name}" a continuación y selecciona Eliminar para completar el cambio, o selecciona Cancelar si deseas dejar tu sitio.',confirm_desc:"Por favor ingrese {name} para confirmar"}},domainAlias:{nftDomain:"Configuración automática con nombres DID",showTipHint:"¿Cómo configuro la resolución de nombres de dominio?",add:{title:"Agregar dominio adicional",domainDescription:"Por favor proporcione un nombre de dominio válido",forceTip:"Agregue forzosamente si el nombre de dominio ya existe",helperText:"Si se ingresa una URL HTTP o HTTPS, se convertirá automáticamente en un nombre de dominio.",isDidDomainError:"Este dominio es un Dominio DID. Por favor, agréguelo utilizando el método de configuración automática de dominios.",tips:"Puedes ingresar un nombre de dominio comprado de DID Names o cualquier otro dominio. Si es un Dominio DID, debes presentar el NFT del Dominio DID para continuar."},addCustomDomain:{name:"Dominio personalizado"},addDomainNFT:{showNFT:"Configurar dominio automáticamente",tips:"Puedes ingresar un dominio comprado de DID Names. Si se detecta un dominio DID, debes presentar el NFT del dominio DID para continuar.",connect:{scan:"Use uno de los siguientes métodos para conectar {domain} a {appName}",confirm:"Confirmar en su cuenta",success:"Autorización exitosa",title:"Conectar nombres DID a {appName}"},buyTip:"Los nombres DID resolverán automáticamente el nombre de dominio, sin necesidad de configurarlo manualmente, y el Blocklet actualizará automáticamente el registro de resolución del nombre de dominio cuando sea necesario. Si aún no tienes DID Domain NFT,",buy:"Comprar dominio DID",topLevelDidDomainHint:"Para el Dominio DID, si ingresa un dominio de nivel superior (ej. example.com), se configurará automáticamente como www.example.com",authorizeFailed:"Error al obtener la información del dominio NFT, ¡intente de nuevo!"},delete:{title:"Borrar",description:'Después de eliminar "{domain}", el acceso a ese alias puede no funcionar correctamente.',confirmPlaceholder:'Por favor, ingrese "{domain}" para eliminar'},custom:"Dominio personalizado",noCustom:"Sin dominio personalizado",noCustomTip:"No hay ningún dominio personalizado configurado con tu sitio web. Para una mayor seguridad y una mejor experiencia de usuario, te recomendamos configurar tu propio dominio personalizado. Haz clic a continuación para comenzar."},domainSecurity:{title:"Seguridad del Dominio",cors:{title:"Dominios CORS permitidos",description:'Lista de dominios que pueden enviar solicitudes de origen cruzado a {name}, separados por comas, usa "*" para permitir a cualquiera, lo cual no se recomienda',domainInvalid:"Por favor ingrese una lista válida de nombres de dominio"}},rule:{add:{title:"Agregar mapeo de URL",confirm:"Agregar",pathPrefix:"¿Cuál es el prefijo de URL?",pathPrefixTip:"Si configuras el prefijo como '/my-prefix', todas las solicitudes que comiencen con ese prefijo se dirigirán al bloque configurado",blocklet:"¿Qué Blocklet se encargará de manejar esas solicitudes?",port:"¿Qué puerto del blocklet manejará las solicitudes?",portTip:"Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto",responseType:"Tipo de respuesta",responseBody:"Contenido de respuesta",responseBodyTip:"Pega tu contenido de respuesta aquí, no debe exceder los 4096 caracteres",responseBodyRequired:"El contenido de respuesta no puede estar vacío"},delete:{title:"Eliminar asignación de URL",description:'Al confirmar, eliminarás tu URL Mapping existente de "{name}". Escribe "{name}" a continuación y selecciona Eliminar para completar el cambio, o selecciona Cancelar si deseas mantener tu URL Mapping.',confirm_desc:"Por favor ingresa {name} para eliminar",cancel:"Cancelar"},update:{title:"Actualizar asignación de URL",confirm:"Sí, Actualizar",cancel:"Cancelar"}},cert:{name:"Nombre del certificado",domain:"Nombre de Dominio",action:"Acción",commonName:"Nombre común",boundDomains:"Dominios",source:"Fuente",expired:"Caducado",leftDays:"Días restantes",issuedOn:"Emitido el",expiryOn:"Vencimiento en",fingerprintAlg:"Algoritmo de huella digital",validityPeriod:"Período de validez",matchedSites:"Sitios coincidentes",upload:"Carga manual",publicCertHelperText:"Los certificados públicos se pueden descargar",nonPublicCertHelperText:"No se pueden descargar certificados no públicos",protectedCertHelperText:"Los certificados protegidos no se pueden editar",unprotectedCertHelperText:"Los certificados sin protección pueden ser editados",issuing:"Certificado siendo generado",sourceTypes:{upload:"Subida manual",lets_encrypt:"Vamos a Encriptar"},table:{nodata:"No hay datos"},delete:{title:"Eliminar Certificado",description:"¿Confirma la eliminación del certificado del dominio {domain}? Su eliminación podría afectar a los servicios relacionados. Confirme que es seguro antes de continuar con la eliminación.",confirm:"Confirmar"},nginx:{title:"Actualizar Certificado",titleAdd:"Agregar Certificado",pem:"Archivo de Certificado SSL",pemTip:'Por favor, coloca tu archivo de certificado de servidor aquí, debe terminar con ".pem" o ".crt"',key:"Archivo de Clave Privada",keyTip:'Por favor, coloca aquí tu archivo de clave privada del servidor, debería terminar con ".pem" o ".key"',confirm:"Guardar",cancel:"Cancelar",invalidFile:"Has seleccionado un archivo inválido",empty:"No se ha seleccionado ningún archivo todavía",source:"Fuente",sourceTypes:{upload:"Subida manual",lets_encrypt:"Vamos a Encriptar"}},detail:{title:"Detalles de Certificado"},genLetsEncryptCert:{title:"Generar certificado Let's Encrypt",dnsTip:"Por favor asegúrese de que el nombre de dominio apunte al servidor Blocklet actual.",description:"Agregar un certificado hará que el servicio sea más seguro, y Blocklet Server renovará automáticamente el certificado antes de que expire."}},gateway:{reqLimit:{switchLabel:"Habilitar limitación de solicitudes concurrentes para un rendimiento fiable",rate:"Limitar solicitudes concurrentes por IP a {rate} por segundo (límite por IP)",title:"Limitación de solicitudes",global:"Limitar solicitudes concurrentes manejadas por la gateway a {global} por segundo (límite global)",burstFactor:"Factor de ráfaga para la limitación de velocidad, aplicado a los límites globales y por IP (global: {global}, por IP: {rate})",methods:"Limitar solicitudes concurrentes por IP para los siguientes métodos",burstDelay:"Retraso cuando las solicitudes superan el límite por IP ({delay} segundos)"},cacheEnabled:{switchLabel:"Habilitar caché del gateway para mejorar el rendimiento",title:"Caché de Gateway"},blockPolicy:{switchLabel:"Bloqueo de solicitudes",addItem:"Agregar ítem",blacklistDesc:"Las solicitudes de estas direcciones IP serán bloqueadas para acceder a este Servidor y a todos los Blocklets",inputPlaceholder:"Ingrese la dirección IP, rango CIDR o URL",invalidItem:"Dirección IP, rango CIDR o URL inválidos",title:"Solicitud bloqueando",autoBlocking:{switchLabel:"Bloquear solicitudes incorrectas mediante detección en tiempo real",windowSize:"El tamaño de la ventana de tiempo para contar solicitudes (segundos)",windowQuota:"El número máximo de solicitudes (por IP) permitidas dentro de la ventana",blockDuration:"Duración para bloquear usuario por IP cuando la cuota se excede dentro de la ventana (segundos)",statusCodes:"Los códigos de estado a verificar"}},proxyPolicy:{switchLabel:"Corriendo detrás de proxies",trustRecursive:"Confíe en los proxies recursivamente",trustRecursiveDesc:"Use la IP más a la izquierda en la cadena X-Forwarded-For",trustedProxies:"Proxies de confianza",trustedProxiesDesc:"Las solicitudes de estas IP serán confiables para obtener la IP real del cliente",realIpHeaderLabel:"Encabezado de IP del cliente",realIpHeaderDesc:"Si el Servidor de Blocklets se está ejecutando detrás de proxies como CloudFront, puedes establecer la cabecera de la IP real del cliente aquí.",addItem:"Agregar artículo",inputPlaceholder:"Ingrese la dirección IP, rango CIDR",invalidItem:"Dirección IP no válida, rango CIDR",title:"Política de Proxy"},wafPolicy:{switchLabel:"Detecta y bloquea solicitudes malas con ModSecurity",modeDesc:"El modo de modsecurity (se requiere el módulo modsecurity)",mode:{detectOnly:"Detectar solo (no bloqueará solicitudes)",on:"Activado (bloqueará solicitudes)"},logLevelDesc:"El nivel de registro para ModSecurity (0-9), 0 significa deshabilitar el registro de auditoría",inboundAnomalyScoreThresholdDesc:"El umbral de puntuación de anomalía entrante (1-100), valor más bajo significa más estricto",outboundAnomalyScoreThresholdDesc:"El umbral de puntuación de anomalía saliente (1-100), un valor más bajo significa más estricto",docDesc:"Consulta la documentación para ver cómo configurar modsecurity",title:"Cortafuegos de aplicaciones web"}}},noMatch:{desc:"No podemos encontrar la página que estás buscando"},health:{connectionErrorTip:"El servidor de Blocklet no puede conectarse a la red, por favor verifica si el servidor de Blocklet ha sido detenido o si hay un problema de red",connectionRecoveryTip:"Se ha recuperado la conectividad del servidor de Blocklet",connectionStoppedTip:"El servidor Blocklet se ha detenido",wrongAccessUrlTip:"La dirección de acceso al servidor de Blocklet es incorrecta, por favor use la dirección de acceso correcta"},debug:{title:"¡Tu servidor de Blocklet está activo y funcionando!"},team:{invite:{action:"Invitar Nuevo",setting:"Configuración de Invitación",enabled:"Desactive esta configuración para restringir las nuevas invitaciones de usuarios solo a propietarios/administradores",disabled:"Activa esta configuración para permitir que cualquier usuario invite a nuevos usuarios",inviter:"Invitado por"},add:"Agregar Nuevo",member:{name:"Nombre",passport:"Pasaporte",passports:"Pasaportes",lastLogin:"Último inicio de sesión",lastLoginIp:"Última dirección IP de inicio de sesión",source:"Registrar fuente",source_derived:"Derivado de oauth",source_wallet:"Billetera DID",filter:"Filtrar por",blockAccess:"Prohibir inicio de sesión",blockAccessDescription:"El usuario no podrá conectarse a esta aplicación",allowAccess:"Permitir Iniciar sesión",allowAccessDescription:"El usuario podrá conectarse a esta aplicación",updateRole:"Actualizar Rol",removeUser:"Eliminar Usuario",removeUserDescription:'¿Confirmar eliminar usuario "{name}"?',revokePassport:"Revocar Pasaporte",revokePassportDescription:"Una vez que se revoca el pasaporte, el titular del pasaporte no puede usarlo para iniciar sesión nuevamente, ¿estás seguro de continuar?",enablePassport:"Habilitar Pasaporte",enablePassportDescription:"Una vez que se habilite nuevamente el pasaporte revocado, el titular del pasaporte podrá volver a usarlo para iniciar sesión, ¿seguro que deseas continuar?",passportPermissionTitle:"El pasaporte tiene los siguientes permisos:",search:"Buscar miembro",onlyApprovedMember:"Mostrar solo Aprobados",inviteDialog:{createInviteLink:"Generar enlace de invitación",createSuccessTip:"El enlace de invitación se ha creado correctamente. Haz clic para copiar y enviar el enlace al miembro invitado. Por favor, ten en cuenta que este enlace de invitación no se puede reutilizar y caducará el {expireDate}"},error:{passportEmpty:"El pasaporte no debe estar vacío"},connectedAccounts:"Cuentas Conectadas",connections:"Conexiones",federated:"Federado",switch:{did:"Cambiar DID",profile:"Cambiar Perfil",passport:"Cambiar pasaporte"},settings:{notification:"Notificaciones",email:"Envíame un correo electrónico cuando ocurran algunos eventos",wallet:"Envía notificación a mi billetera cuando ocurran algunos eventos",phone:"Envíame un mensaje de texto cuando ocurra algún evento",webhook:"Webhooks",add:"Agregar nuevo webhook",url:"URL personalizada",slack:"Slack Webhook",tested:"Mensaje de prueba enviado"},activeUserSessions:"Sesiones de usuario activas",forceLogout:"Cerrar sesión forzada",forceLogoutDescription:"¿Confirmar para forzar el cierre de sesión de este usuario?",openProfile:"Ver Perfil",removeUserSuccess:"Usuario eliminado exitosamente",forceLogoutRemoveDescription:"¿Confirmar forzar el cierre de sesión de este usuario (también eliminar todas las sesiones de usuario)?"},transferNode:{name:"Transferir propiedad",inviteDialog:{title:"Transferir el servidor de Blocklet",tips:{progress:"Para completar la operación de transferencia, el receptor debe aceptar la solicitud de transferencia del servidor. Una vez aceptada, no podrás acceder al servidor nuevamente con el pasaporte actual.",newOwnerPermissions:"El nuevo Propietario tendrá el derecho de gestionar todas las operaciones como miembros, pasaportes y Blocklets.",revoke:"Si quieres retirar la invitación de transferencia, puedes eliminar el enlace de invitación en la página 'Equipo -> Miembros -> Invitar'."},createInviteLink:"Generar enlace de invitación",createSuccessTip:"El enlace de invitación se ha creado correctamente, haz clic para copiar y enviar el enlace al miembro invitado. Ten en cuenta que este enlace de invitación no se puede reutilizar y caducará el {expireDate}"},delegateDialog:{title:"Se requiere autorización",scan:"Use los siguientes métodos para autorizar al servidor a transferir la propiedad NFT del servidor.",confirm:"Confirma en tu cuenta",success:"Autorización exitosa"}},transferApp:{name:"Transferir propietario",transferDialog:{title:"Solicitud de transferencia",tips:{progress:"El receptor debe aceptar la transferencia de la aplicación para completar la operación de transferencia, y una vez que el receptor la acepte, no podrás iniciar sesión en la aplicación con el pasaporte actual nuevamente.",newOwnerPermissions:"El nuevo Propietario tendrá el derecho de gestionar todas las operaciones, como miembros, pasaportes y configuraciones."},createTransferLink:"Generar enlace de transferencia",createSuccessTip1:'El enlace de transferencia se ha creado correctamente, el invitado debe usar <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> para recibir la propiedad de la aplicación',createSuccessTip2:"Por favor, haz clic para copiar y enviar el enlace al miembro invitado. Ten en cuenta que este enlace de transferencia no se puede reutilizar y caducará el {expireDate}. Tu enlace de transferencia solo se mostrará una vez y no será visible de nuevo después de cerrar este diálogo.",createSuccessTip3:"Después de que la transferencia sea exitosa, la aplicación se reiniciará automáticamente para que los cambios surtan efecto",link:"Enlace de transferencia",iKnow:"He copiado y guardado el enlace"},connectDialog:{title:"Autorización requerida",scan:"Utilice los siguientes métodos para autorizar la aplicación a transferir la propiedad.",confirm:"Confirmar en su cuenta",success:"Autorización exitosa"},receiveDialog:{title:"Recibir la propiedad de la solicitud",scan:"Utilice los siguientes métodos para recibir la propiedad de la aplicación.",confirm:"Confirma en tu cuenta",success:"Recibir propiedad con éxito"},successTitle:"Te has convertido en el nuevo propietario de esta aplicación",visitDashboard:"Visita el panel de control de la aplicación",description:"Puedes transferir la propiedad de tu aplicación a otra billetera u otra persona."},permission:{create:{title:"Crear Permiso",description:"Formato: <acción>_<recurso> por ejemplo: 'consulta_usuario', 'modifica_usuario'"},delete:{title:"Eliminar permiso",description:"¿Confirmar eliminar {name}?"},error:{actionEmpty:"La acción no puede estar vacía",resourceEmpty:"El recurso no puede estar vacío",permissionTooLong:"La permiso no puede exceder {length} caracteres",descriptionTooLong:"La descripción no puede superar los {length} caracteres"}},passport:{create:{title:"Crear Pasaporte",titleTip:"El título no puede modificarse después de ser creado, se recomienda que tenga un máximo de 14 letras"},bind:{title:"Permiso de enlace",roleTip:"Obtendrás todos los permisos del pasaporte seleccionado después de la vinculación.",permissionTip:"Obtendrás los permisos seleccionados después de vincularlos",transferLeftTitle:"Todos los permisos",transferRightTitle:"Permisos otorgados"},delete:{title:"Eliminar Pasaporte",description:"Los pasaportes que tenga el usuario perderán todos los permisos después de ser eliminados. ¿Está seguro de que desea continuar?"},error:{titleEmpty:"El título no puede estar vacío",titleTooLong:"El título no puede exceder {length} caracteres",descriptionEmpty:"La descripción no puede estar vacía"},issuance:{pending:"Pendiente",create:{title:"Generar Enlace"},delete:{title:"Eliminar recibir enlace",description:"¿Confirmar eliminar {link}?"}},issue:"Emitir pasaporte",disableIssuance:"Deshabilitar Emisión de Pasaportes",enableIssuance:"Habilitar emisión de pasaportes",disableIssuanceTip:'Se desactivarán las operaciones "Issue Passport", "Invite Member" y otras.',enableIssuanceTip:"Emitir Pasaporte",trustedPassportIssuers:"Emisores de pasaportes confiables",trustedIssuers:"Emisores confiables",trustedFactories:"Colecciones de NFT de confianza",trustedFactoriesTip:"Administrar colecciones de NFT confiables que se pueden utilizar para intercambiar por un pasaporte",searchFactoryAddress:"Buscar Colección DID",configFactories:"Configurar colecciones confiables de NFT",configFactoriesTip:"Permitir a los usuarios intercambiar NFTs por pasaportes",factoryAddress:"Dirección de la colección NFT",factory404:"Colección de NFT no encontrada",factoryAddressTip:"La dirección de la colección NFT debe existir en la cadena principal de ArcBlock",role:"Tipo de pasaporte",ttl:"Política de vencimiento de pasaportes",ttlNever:"Nunca Caducar",ttlMint:"Desde la compra de NFT",ttlExchange:"Desde el intercambio de pasaporte",ttlNeverTip:"El pasaporte será válido hasta que sea revocado",ttlMintTip:"El pasaporte será válido desde que se compre el NFT hasta que especifiques ttl o lo revoques",ttlExchangeTip:"El pasaporte será válido desde el momento en que el usuario lo intercambie con éxito hasta que especifique el ttl o revoque",ttlTip:"365d significa 365 días, también puedes usar 30 días o 24h",validUntil:"Válido hasta: {date}",externalPassport:"Pasaporte Externo",notTrustedIssuerTip:"El pasaporte no puede ser utilizado porque el emisor no está en la lista de emisores confiables",issuerDid:"DID del emisor",addNodeToTrustedIssuers:"Agregar el servidor actual como un emisor de pasaportes confiable",revoked:"Revocado",noPermission:"No tienes permiso para realizar esta operación",shouldNotDeleteCurrent:"No puedes revocar tu pasaporte actualmente en uso",mappingRule:"Regla de mapeo",defaultRule:"Regla predeterminada",search:"Buscar Pasaporte",searchIssuerDid:"Buscar Identificador del Emisor DID",issueBy:"Problema por {name}",configColor:"Configurar el color del pasaporte",configColorTip:"Personaliza el color del pasaporte",color:"Color del pasaporte",description:"Usa este pasaporte para conectarte como {title} en {teamName}",displayBuiltin:"Incorporado",displayCustom:"Personalizado",typesTip:"Personaliza los tipos de pasaporte, separados por coma",issuanceDate:"Fecha de emisión: {date}",sourceMaps:{recover:"Recuperado",issue:"Emitido",invite:"Invitado",trusted:"De confianza"},related:"Pasaportes relacionados",operationLogs:"Registros de operación",owner:"Propietario",status:"Estado",statusMap:{valid:"Válido",revoked:"Revocado",expired:"Caducado"},view:"Gestionar Pasaportes",trustedPassportIssuersTip:"Gestionar emisores de pasaportes de confianza que se pueden usar para emitir pasaportes",issuanceTime:"Tiempo de emisión",relatedDescription:"El pasaporte actual se deriva del siguiente pasaporte",passportExpireTime:"Establecer una fecha de vencimiento para el Passport",customExpireTime:"Tiempo de expiración personalizado",customExpireTimeIsInvalid:"El tiempo de expiración personalizado no es válido"},inviting:{link:"Enlace de invitación",inviter:"Invitador",delete:{title:"Eliminar enlace de invitación",description:"¿Confirmar eliminar {link}?"},disabledTip:"La invitación no está habilitada"},whoCanAccess:{all:{title:"Accesible para todos"},owner:{title:"Dueño solamente"},invited:{title:"Usuario invitado solamente"}},userFollowers:{follow:"Seguir",unfollow:"Dejar de seguir",followersOnly:"Solo visible para seguidores",followers:"Seguidores",following:"Siguiendo",emptyFollowing:"Aún no sigues a ningún usuario.",emptyFollowers:"Aún no hay seguidores.",title:"Seguir",invitees:"Invitados",emptyInvitees:"Aún no has invitado a nadie."},orgs:{explain:"Permite a los usuarios crear y unirse a organizaciones, asignar roles y gestionar recursos.",description:"Descripción",deleteConfirm:"¿Confirmar eliminar {name}?",members:"Miembros",myCreated:"Mi Creado",myJoined:"Mis Uniones",myCreatedEmpty:"Aún no has creado ninguna organización.",myJoinedEmpty:"Aún no te has unido a ninguna organización.",deleteConfirmDescription:"Eliminar esta organización eliminará todos los roles y recursos vinculados a ella. Los usuarios permanecerán en el sistema pero perderán sus roles en esta organización. Esta acción no se puede deshacer.",active:"Activo",deleteOrg:"Eliminar la organización actual",invitedAt:"Invitado a: {time}",joinedAt:"Unido a las: {time}",createNew:"Crear nueva organización",viewAll:"Ver todas las organizaciones",validate:{nameEmpty:"El nombre no puede estar vacío",nameTooLong:"El nombre no puede exceder los {length} caracteres",descriptionTooLong:"La descripción no puede exceder {length} caracteres"},mutate:{title:"Organización {mode}",name:"Nombre de la organización",createSuccess:"Organización creada con éxito",updateSuccess:"Organización actualizada con éxito",orgNotEnabled:"Organización no está habilitada",maxMemberPerOrg:"La organización puede invitar hasta {maxMemberPerOrg} miembros",maxOrgPerUser:"Puedes crear hasta {maxOrgPerUser} organizaciones"},invite:{chooseUsersToInvite:"Elige usuarios para invitar",success:"Invitación enviada a los usuarios",pleaseSelectUsers:"Por favor seleccione usuarios",pleaseSelectRole:"Por favor seleccione rol",inviteExternalUsers:"Invitar usuarios externos",failed:"Falló la invitación de {count} usuarios, inténtelo de nuevo más tarde",remove:"Eliminar usuario",removeSuccess:"Usuario eliminado con éxito",limit:"Límite",limitTip:"Limitar miembros de org y orgs por usuario",maxMembers:"Máx miembros por org",maxOrgs:"Org máximo por usuario",maxMembersTip:"Número máximo de usuarios que se pueden invitar a esta organización",inviteLinkSendToEmail:"Se ha enviado un enlace de invitación a email ({email}), por favor, revíselo",enterEmailAddress:"Por favor, introduzca la dirección de correo electrónico",inviteTitle:"Invitar a usuarios a unirse a {orgName}"},member:{removeMemberConfirm:"¿Confirmar eliminar {name}?",removeMemberConfirmDescription:"Tras la eliminación, el usuario perderá los roles y permisos en la organización. Esta acción no se puede deshacer.",removeInvitingMember:"¿Confirmar cancelar invitación a {name}?",removeInvitingMemberDescription:"Después de la eliminación, el usuario no podrá unirse a la organización y necesita ser reinvitado. Esta acción no se puede deshacer."}}},launcher:{provider:"Proveedor",adminUrl:"URL"},session:{blockAccess:"Has sido bloqueado de acceder a este servidor"},launchBlocklet:{appInfo:"Información de la aplicación",appInfoDesc:"Confirma la información de la solicitud",author:"Autor de la aplicación: {author}",setup:"Configurar Blocklet",redirect:"Redireccionar",alreadyRunning:"La aplicación {name} ya está en ejecución en este servidor de Blocklet",alreadyInstalled:"La aplicación {name} ya está instalada en este servidor de Blocklet",alreadyExists:"Esta aplicación ya existe, redirigiendo...",purchased:"Ya comprado",purchase:"Compra",nextStep:"Siguiente paso",agreement:"Contrato de Licencia",agreeAll:"Aceptar y continuar",installing:"Instalando {appName} en {serverName}, puede tomar minutos completar, por favor manténgase atento...",redirecting:"{appName} se ha instalado correctamente, ahora comenzando...",start:"Lanzamiento",launch:"Instalar Blocklet en el servidor",launchSuccess:"{appName} se ha lanzado con éxito!",installSuccess:"Blocklet se ha instalado y lanzado correctamente en {serverName}",openInRegistry:"Ver en Blocklet Store",subTitle:"Listo para instalar Blocklet {appName} en {serverName}",installingSubTitle:"{appName} instalando",access:"Abre la aplicación",viewApplication:"Ver Aplicación",newVersion:"Nueva Versión",newVersionDesc:"La aplicación ya existe, pero la versión actual se puede actualizar",upgradeNow:"Mejora ahora",later:"Más tarde",introduction:"Introducción",welcome:"Bienvenido al Asistente de Lanzamiento de Blocklet",accept:"Estoy de acuerdo con el EULA de Blocklet",license:"Licencia de la aplicación",next:"Acepta el EULA y continúa",purchaseApp:"Comprar Blocklet",setupAppDesc:"Inicialice su Blocklet",launched:"Completar",confirmInstall:"Confirmar Instalación",dialog:{title:"Conviértete en propietario de la aplicación",nftFreeDescription:"Por favor, presenta el espacio NFT de la aplicación y crea una cuenta de la aplicación para continuar",nftPaidDescription:"Por favor presenta el espacio de la aplicación NFT y la compra de la aplicación NFT para continuar",freeDescription:"Por favor crea una cuenta en la aplicación para continuar",paidDescription:"Por favor, presenta la compra de la aplicación NFT y crea una cuenta de aplicación para continuar",confirm:"Confirma en tu cuenta",success:"Autorización exitosa",authorizationTimeout:"Tiempo de autorización superado"},waiting:{verifying:"Verificando metadatos de la aplicación...",downloading:"Descargando paquete de la aplicación...",downloadingComponent:"Descargando {name}",extractingComponent:"Extrayendo {name}",extracting:"Extrayendo paquete de la aplicación...",installing:"Instalando componentes de la aplicación...",installed:"Instalado",starting:"Iniciando la aplicación...",done:"Tu aplicación se está lanzando...",parsing:"Analizando metadatos de la app...",initializing:"Inicializando configuración de la app...",initializingOwner:"Inicializando propietario de la app...",creatingSecurityRules:"Creando reglas de seguridad predeterminadas...",assigningDomain:"Asignando dominio predeterminado...",waitingForDomain:"Esperando a que el dominio predeterminado surta efecto..."},error:{loadMetaFailed:"Error al cargar la información de la aplicación",appMetaNotFound:"No se encontraron datos para esta aplicación",downloadFailed:"Error al descargar la aplicación, por favor intenta nuevamente",installFailed:"Error al instalar la aplicación, por favor intenta nuevamente",startFailed:"Error al iniciar la aplicación, por favor inténtalo de nuevo",launchFailed:"Error al iniciar la aplicación, por favor intenta de nuevo",installedButStopped:"La aplicación se instaló correctamente, pero no se puede iniciar. Puede iniciarlo manualmente después de resolver los problemas de bloqueo",installedButError:"La aplicación se instaló correctamente, pero no se pudo iniciar",restoreFailed:"Error al restaurar la aplicación, por favor intente nuevamente",resourceBlocklet:"Este Blocklet no puede ser lanzado directamente, pero puedes añadirlo a una aplicación existente."},steps:{introduction:"Introducción",installApp:"Instalar aplicacion",purchaseSpace:"Comprar Espacio",prepareSpace:"Preparar Espacio"},installRelatedComponents:"Instalar Blocklets relacionados",canNotInstall:"No se puede instalar",dockerBlockletCantInstall:"No se puede instalar el Blocklet, porque el Blocklet Server no ha habilitado Docker o Docker Network",nav:{myApps:"Mis Apps",viewMyApps:"Ver mis apps"},withoutWallet:"Omitir conexión de DID Wallet",nwFailed:"Error al recuperar el flujo de trabajo.",alreadyConsumed:"La sesión de lanzamiento se ha consumido",redirectToLauncherBlocklet:"Redireccionando a Launcher Blocklet"},issuePassport:{title:"Recibir pasaporte",description:"Utilice los siguientes métodos para recibir el pasaporte emitido por {name}",dialog:{scan:"Utilice los siguientes métodos para reclamar el pasaporte",confirm:"Confirma en tu cuenta",success:"El pasaporte se ha añadido correctamente a tu billetera",loginWithPassport:"Conéctate con este Pasaporte",autoClose:"La página se cerrará automáticamente en {seconds}s",autoJump:"La página saltará automáticamente en {seconds}s"}},lostPassport:{title:"Pasaporte perdido",description:"El propietario de {name} puede usar los siguientes métodos para recuperar el pasaporte; los miembros deben contactar al propietario para reemitir el pasaporte",return:"Cancelar operación de recuperación, volver a la página principal",receivePassport:"Recibir pasaporte",recoverDialog:{title:"Recuperar pasaporte",scan:"Utilice los siguientes métodos para recuperar su pasaporte",confirm:"Confirmar en tu DID wallet",success:"Recuperado correctamente"},receiveDialog:{title:"Recibir pasaporte",scan:"Utilice los siguientes métodos para recibir el pasaporte",confirm:"Confirmar en tu DID wallet",success:"Recibido correctamente"},recoverPassport:"Recuperar pasaporte"},invite:{message:"{name} te invita a ser el {role} de {dapp}",success:"Te has unido correctamente a {dapp}",receive:"Recibir con",validUntil:"Válido hasta:",viewPermission:"Permiso de vista",emptyPermission:"Permiso vacío",open:"Abrir",description:{step1:"Descarga e instala tu {wallet}",step2:"Haz clic en el botón de arriba para recibir el pasaporte",step3:"Inicia sesión en {dapp} con el pasaporte recibido"},transferNFTDialog:{title:"Aceptar Blocklet Server {name}",scan:"Conecta el lanzador para completar la recepción del servidor Blocklet.",confirm:"Revise esta operación en su billetera DID",success:"Conexión exitosa, esperando confirmación de recibir el servidor"}},receive:{dialog:{title:"Recibir pasaporte",scan:"Después de recibir el pasaporte, puede usarlo para iniciar sesión en la aplicación",confirm:"Confirma en tu cuenta",success:"Estás conectado exitosamente",scanWithDid:"Por favor, usa la cuenta {did} para recibir este pasaporte. Después de recibir el pasaporte, puedes usarlo para iniciar sesión en la aplicación."}},navigation:{navigation:"Navegación",actionFailed:"Acción fallida",form:{themeConfig:"Configuración de tema",contentConfig:"Configuración de contenido",title:"Título",titlePlaceholder:"Por favor ingrese el título de navegación",titleTooLong:"El largo del título debería ser inferior a {len}",description:"Descripción",descriptionPlaceholder:"Por favor ingrese la descripción de navegación",descriptionTooLong:"El largo de la descripción debería ser inferior a {len}",icon:"Icono predeterminado",iconPlaceholder:"Por favor, seleccione un icono",invalidIcon:"El icono no es válido",findMoreIcon:"Encuentra más iconos",link:"Enlace",linkPlaceholder:"Por favor ingrese el enlace de navegación",invalidLink:"El enlace no es válido",component:"Componente",componentPlaceholder:"Por favor selecciona el componente de navegación",role:"Rol",rolePlaceholder:"Por favor seleccione un rol de navegación",locale:"Locale",localePlaceholder:"Por favor ingrese la configuración regional que desea agregar",localeExists:"{value} ya existe",activeIcon:"Icono activo",activeColor:"Color activo",color:"Color predeterminado",colorPlaceholder:"p. ej. #FF0000",invalidColor:"Color no válido",searchIcons:"Buscar icono",searchIconsPlaceholder:"Por ejemplo: mdi:home"},action:{add:"Agregar navegación",addSub:"Agregar subnavegación",edit:"Editar navegación",hide:"Ocultar navegación",show:"Mostrar navegación",del:"Eliminar navegación",new:"Nuevo",noAddSub:"El componente desinstalado no puede agregar subnavegación",noEdit:"No se puede editar el componente desinstalado",noDel:"No se permite eliminar la navegación incorporada",reset:"Reiniciar",restConfirmTitle:"¿Restablecer la navegación {section} a la predeterminada?",restConfirmDesc:"Se borrará tu navegación personalizada y se restaurarán los elementos predeterminados.",resetSuccessful:"Restablecimiento exitoso",delTabBarTitle:"¿Deseas eliminar esta navegación?",delTabBarDesc:"Después de eliminar, la navegación se eliminará de la barra de navegación."},system:"Sistema",services:"Servicios",access:"Acceso",members:"Miembros",passport:"Pasaporte",analytics:"Analítica",dashboard:"Tablero",studio:"Blocklet Studio",aigne:"Conexiones IA",blockletService:"Servicio de Blocklet",didConnect:"Identidad y Acceso",didSpaces:"Almacenamiento y Copia de Seguridad",website:"Estudio de sitio web",notification:"Centro de notificaciones",operations:"Observabilidad",integration:"Integraciones",developer:"Desarrolladores",overviewDesc:"Monitoree la salud y los detalles de la aplicación, e instale, inicie o elimine Blocklets fácilmente en un solo lugar.",didConnectDesc:"Agregue miembros del equipo, configure opciones de inicio de sesión y administre el acceso seguro para una colaboración fluida.",aigneDesc:'Configure las conexiones relacionadas con IA para su blocklet, incluyendo <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> y <a href="{mcpUrl}" target="_blank">servidores compatibles con MCP</a>.',websiteDesc:"Administre el dominio, ajuste el tema, refine la marca y personalice la navegación para un aspecto de sitio único.",operationsDesc:"Vea análisis, revise registros de actividad, reciba alertas y ajuste la configuración avanzada según sea necesario.",integrationsDesc:"Vincule servicios externos a través de Webhooks, claves de acceso y servidores MCP para ampliar las capacidades de la aplicación.",developersDesc:"Use registros, seguimiento de rendimiento y documentación para crear, depurar y optimizar su aplicación.",didSpacesDesc:"Almacene y respalde de forma segura los datos de su aplicación Blocklet para garantizar una protección confiable y una recuperación sencilla.",publishDesc:"Publique su aplicación en tiendas o compártala mediante enlaces para que más personas puedan usarla."},storage:{spaces:{title:"DID Spaces",tips:"Consejos",label:"Ingresa el espacio de puerta DID",connected:{title:"Espacios de DID conectados",tag:"Conectado"},connectedWithName:"Te has conectado exitosamente a {name}",addedWithName:"Has añadido exitosamente a {name}",connects:"Conectar",reconnect:"Reconectar",addressCannotEmpty:"La dirección no puede estar vacía",addressNotValid:"{url} no es una dirección válida",authorize:{title:"Conecta {appName} a DID Spaces",scan:"Utilice los siguientes métodos para permitir que la app {appName} se conecte a DID Spaces",success:"Conexión exitosa"},provideNFT:{title:"Por favor muestra el DID Spaces NFT para {appName}",scan:"Utilice los siguientes métodos para permitir que la app {appName} muestre el NFT de DID Space",success:"Conexión exitosa"},backup:{title:"Copia de seguridad",records:"Registros de respaldo",without:"Sin copia de seguridad",succeeded:"Copia de seguridad realizada",failed:"Error en la copia de seguridad",lastBackup:"Última copia de seguridad",lastBackupTip:'Han pasado {time} desde tu última copia de seguridad exitosa, revisa la configuración de copia de seguridad en la pestaña "DID Spaces"',noBackup:"Sin copia de seguridad",noBackupTip:"Aún no se ha creado ninguna copia de seguridad. Recomendamos configurar copias de seguridad regulares para proteger sus datos y configuraciones",pending:"Copia de seguridad en progreso",timeout:"Tiempo de espera de copia de seguridad"},autoBackup:{title:"Copia de seguridad automática",enabled:"La copia de seguridad automática está activada",disabled:"La copia de seguridad automática está apagada"},autoCheckUpdate:{title:"Comprobando automáticamente la notificación de nuevas versiones",enabled:"La opción de verificar automáticamente nuevas versiones está activada.",disabled:"La verificación automática de nuevas versiones está desactivada"},backupSuccessfully:"Copia de seguridad realizada correctamente",restore:"Restaurar",restoreSuccessfully:"Restauración exitosa",gateway:{title:"Puerta de enlace",select:"Seleccione un espacio DID",add:{title:"Agregar Espacios DID",label:"Por favor ingrese la URL de los Espacios DID",failed:"No se pudo agregar los Espacios de DID",invalidUrl:"URL de puerta de enlace de espacios de DID no válida",duplicate:"{name} ya está conectado a este Blocklet"},delete:{title:"Desconectar",succeeded:"Desconectado de DID Spaces {name}",failed:"Error al desconectar de la puerta de enlace",failedForSelected:"No se puede desconectar del DID Space seleccionado",descForBackup:`Después de desconectar de {name}, no podrás hacer copias de seguridad de Blocklet a este DID Space. ¿Estás seguro de que quieres desconectar?
|
|
7
|
+
Proporción: 16:9`,copyrightDesc:"Utilizado en: pie de página del sitio web",appUrlDesc:"Usado en: sitemap y compartir en redes sociales",advanced:"Configuración avanzada",errorReason:"Blocklet no se pudo iniciar, pero aún puedes acceder a él haciendo clic en el botón de abajo.",nameValidateError:"Inválido: debe comenzar con letra/número, 3–129 caracteres, solo a–z, 0–9, - y _."},overview:{source:"Fuente",deployedFrom:"Desplegado desde",accessControl:"Control de acceso",viewInStore:"Verlo en la tienda"},diskInfo:{empty:"¡Información del disco no disponible en este momento!",appDir:"Directorio de aplicaciones",dataDir:"Directorio de datos",logDir:"Directorio de registro",cacheDir:"Directorio de caché"},runtimeInfo:{noRunning:"¡La información de tiempo de ejecución estará disponible cuando el blocklet esté en ejecución!",memoryUsage:"Uso de memoria",cpuUsage:"Uso de la CPU",uptime:"Tiempo de actividad",port:"Puerto",processId:"ID de proceso",dataStorage:"Almacenamiento de datos"},dist:{downloadLink:"Enlace de descarga",verify:"Verificar"},status:{added:"Añadido",waiting:"Esperando",downloading:"Descargando",extracting:"Extrayendo",installing:"Instalando",upgrading:"Actualizando",installed:"Instalado",created:"Creado",starting:"Comenzando",running:"Corriendo",stopping:"Deteniendo",stopped:"Detenido",error:"Error",deleting:"Borrando",corrupted:"Corrompido",purchasing:"Esperando la compra",purchased:"Comprado",verifying:"Verificando compra",resource:"Recurso",failWithOldVersion:"La nueva versión no pudo iniciar, Blocklet está ejecutándose en la versión anterior.",hasSomeErrors:"{blocklets} No está funcionando por completo, posiblemente debido a problemas o a una puesta en marcha pendiente."},list:{download:"Descargar",star:"Estrella",searchPlaceholder:"Buscar por nombre de Blocklet o DID"},component:{container:"Configuración Global",showContainer:"Mostrar configuración global",didSpaceConfig:"Configurar espacios DID",didSpaceConfigTip:"Completa el siguiente proceso de autorización para almacenar datos de aplicación en DID Spaces",didSpaceConnected:"Almacenamiento autorizado para: {endpoint}",checkUpdateTitle:"Buscar actualizaciones",updateTitle:"Actualizar Componentes",noUpdate:"No hay componentes para actualizar",add:"Agregar componente",selectComponent:"Seleccionar Blocklet",selectRegistry:"Selecciona la Tienda de Blocklets",selectRegistryTip:"Puedes cambiar la tienda de blocklets para ver más componentes",selectInstance:"Seleccionar instancia",selectInstanceTip:"Puedes seleccionar una instancia existente o crear una nueva instancia. Las instancias existentes utilizarán la configuración y datos guardados previamente",newInstance:"Crear nueva instancia",noComponent:"No hay componentes",mountPoint:"¿Cuál es el punto de montaje?",mountPointTip:"Si estableces el punto de montaje en '/my-prefix', entonces todas las solicitudes que comiencen con ese punto de montaje se enrutarán al componente seleccionado.",delete:"Eliminar Componente",deleteDescription:"Este componente no estará accesible después de ser eliminado. ¿Confirmar eliminación?",purchase:"Pago requerido",tip:{stopBlocklet:"Por favor, detén la ejecución de Blocklet primero",requiredBy:"El componente es requerido por {name}"},choose:"Elige",addWithName:"Agregar Bloque a {name}",installingCanCloseWindowTip:"Instalando componente en segundo plano, puedes cerrar esta ventana de forma segura",installSuccessTip:"¡Felicidades, el componente se instaló correctamente!",missDownloadTokenTip:"No se puede agregar un componente de pago sin un token de descarga válido",purchaseComponentSecondCheckTip:"Por favor, presenta tu NFT de compra de blocklet para continuar",installComponentError:"Hubo un error al instalar el componente, por favor inténtelo de nuevo",downloadComponentError:"Hubo un error al descargar el componente, por favor intenta de nuevo",addComponentTip:{introduction:"Bienvenido/a al Asistente para agregar componentes",isPurchase:"Necesitas verificar NFT antes de usar <b>{name}</b> como componente",belowInformation:"A continuación se muestra la información para el componente:",verifyNFT:"Por favor selecciona el método de verificación de NFT",config:"Por favor, complete la configuración del componente",environment:"Por favor rellene el entorno del componente",fromUrl:"Agregar Blocklet desde URL",fromUpload:"Añadir Blocklet desde subida",uploadFailed:"Subida fallida",allowedFileTypes:"Tipos de archivos permitidos para subir: {types}"},addNext:"Agregar {name}",upgradeNext:"Actualizar {name}",setting:"Ajustes",noDependencies:"{name} no tiene dependencias",relatedComponents:"Bloques relacionados",required:"Requerido",installed:"Instalado",installingTip:"Instalando componente, por favor espere...",upgrade:"Mejorar",upgradeAvailable:"Actualización disponible",needBuy:"Necesita comprar",isOfficial:"Oficialmente Certificado"},router:{urlPath:"URL Path",noRunning:"El blocklet no está actualmente iniciado. ¡No se puede acceder a través de la siguiente dirección!",securitySetting:"Configuración de seguridad",checkUrlAccessible:"Verifique la accesibilidad de la dirección",urlInaccessible:"Puede ser debido a problemas de red, la dirección no está accesible temporalmente",noAccessibleUrl:"No hay una URL accesible",domainLockTooltip:"El dominio generado por el sistema no se puede editar.",urlLockTooltip:"La ruta de URL generada por el sistema no se puede editar.",showAllDomains:"Mostrar todos los dominios",showAllDIDs:"Mostrar todos los DIDs",currentDomainTip:"Estás accediendo a la página actual a través de este dominio"},export:{title:"Exportar Blocklet",name:"Nombre del paquete",nameTip:"mi-nombre-de-bloque",result:"¿Qué sigue?",exportSource:"Fuente de exportación",success:"Blocklet exportado con éxito",resultTipStart:"Con",resultTipEnd:"Puedes construir y publicar esta blocklet en minutos",uploadedComponentTip:"Los componentes cargados directamente no pueden ser exportados"},migrate:{title:"Migrar Aplicación",scan:"Conecta tu billetera DID para generar un par de claves para esta aplicación",confirm:"Revise esta operación en su Monedero de DID",success:"Tu aplicación se ha migrado correctamente, la página se actualizará en {sec} segundos",intro:{l1:"Haz clic aquí",l2:"Para migrar tu aplicación a una nueva versión (los cambios están desactivados hasta que se complete la migración)",l3:"La aplicación DID será completamente controlada desde tu billetera DID.",l4:"2. Los datos de la aplicación serán migrados y no se requieren cambios adicionales.",l5:"3. La nueva estructura de la aplicación te dará más flexibilidad al cambiar componentes.",l6:"4. Por favor, no cambies los puntos de montaje de los componentes antes de que salga la nueva versión del componente."},tip:{duplicate:"Encuentra el componente duplicado {name}, por favor elimina los componentes inútiles y migrar nuevamente",running:"Por favor detén el blocklet antes de la migración"}},error:{isRunning:"Blocklet está en ejecución, por favor deténgalo primero",isInProgress:"Blocklet está en progreso, por favor espera a que termine"},publish:{createResource:"Crear Recurso",addResource:"Agregar lanzamiento",productTitle:"Producto",versionTitle:"Versionando",imgTitle:"Imágenes",resourceTitle:"Contenido",blockletEmptyTip:"No hay Blocklets aquí",createBlockletTip:"Puede crear un nuevo blocklet a través de recursos, componentes y configuración existentes en esta aplicación",createBlocklet:"Nuevo bloque",componentNotRunning:"El Blocklet {name} no está en ejecución, por favor inícialo primero",releaseEmptyTip:"No hay ninguna versión aquí",createReleaseTip:"Puedes crear una versión de la blocklet, junto con notas de lanzamiento y recursos, para que otras personas la puedan utilizar",createRelease:"Crear versión",deleteReleaseTip:"La versión no se puede recuperar después de la eliminación",createBlockletDid:"Crear desde la billetera DID",createReleaseSuccess:"Liberación creada exitosamente",saveDraftSuccess:"Borrador guardado exitosamente",connect:{title:"Crear Blocklet DID",scan:"Usa los siguientes métodos para generar Blocklet DID",confirm:"Confirma usando DID Wallet",success:"Se ha generado el DID de Blocklet, por favor continúa con tu operación"},saveDraft:"Guardar Borrador",releaseNote:"Nota de lanzamiento",errorTip:{noDid:"El DID de Blocklet es requerido",noTitle:"Se requiere el título de Blocklet",noVersion:"Se requiere la versión de Blocklet",noDescription:"La descripción de Blocklet es requerida",noNote:"Se requiere la Nota de Lanzamiento",inValidVersion:"Versión de Blocklet no válida",noResource:"Por favor seleccione cargar recurso para incluirlo en el blocklet",noFirstDid:"Por favor, crea Blocklet DID primero",invalidUrl:"Por favor, ingrese una URL válida",invalidUrlOrEmail:"Por favor ingrese una URL o correo electrónico válido"},packTip:"Actualmente, los blocklets se pueden instalar directamente como aplicaciones. Los componentes y las configuraciones de la aplicación se incluirán automáticamente en el Blocklet",resourceChangedWarning:"Ha modificado el recurso, por favor guárdelo a tiempo",installResourceTip:"URL de instalación:",installResourceTip2:"Si desea ver más consejos, visite {name}",installResourceHelp:"Ayuda Documento",componentIncluded:"Incluido",componentForceRequired:"Requerido",download:"Descargar {name}",delete:"Eliminar {name}",copyInstallUrl:"Copiar URL de instalación",install:"Instalar {name}",publishToStoreSuccess:"Blocklet publicado en la tienda con éxito",connectStoreSuccess:"La tienda de Blocklet se conectó correctamente",uploadToStoreSuccess:"Bloque de carga a la tienda exitosamente, necesitas publicarlo en la tienda",viewLastRelease:"Ver última versión",reconnectStoreTip:"Después de reconectar, se vinculará un nuevo desarrollador. ¿Estás seguro de que deseas reconectar?",deleteProject:{title:"Borrar {name}",scan:"Usa los siguientes métodos para eliminar {name}",confirm:"Confirmar usando el monedero DID",success:"El proyecto Blocklet ha sido eliminado, por favor continúa tu operación",tip1:"El proyecto de Blocklet no será recuperable después de su eliminación",tip2:"Ya no podrás publicar nuevas versiones del Blocklet eliminado, lo que significa que el Blocklet ya no se actualizará en la tienda.",tip3:"Borrar el Bloque no afectará su versión actualmente publicada en la Tienda.",description:"Después de eliminar el Blocklet, te encontrarás con los siguientes problemas, ¿estás seguro de que quieres eliminarlo?"},resourceTip:"Actualmente, como un Bloque de Recursos, no se puede instalar directamente desde la Tienda.",whyCantSeeInStore:"Puedes publicar el Blocklet actual en la tienda, y se podrá usar en todo el mundo",whyCantSeeResourceBlockletInStore:"Puedes publicar el Blocklet actual en la tienda, y podrá ser usado en todo el mundo. Los Blocklets están ocultos de la página de listado de la tienda por defecto",tenantScope:"Inquilino",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets no está ejecutándose, por favor inícialo primero",resourceEmptyTip:"No hay recursos disponibles",steps:{resources:"Por favor selecciona los recursos que necesitan ser asociados con el Blocklet actual, ya que estos recursos se instalarán junto con el Blocklet.",blocklets:"Selecciona los blocklets a asociar.",version:"Establecer la versión de lanzamiento y el registro de cambios.",introduction:"Una introducción clara puede resaltar eficazmente tu Blocklet. Puedes usar la sintaxis de Markdown para escribir y previsualizarlo.",branding:"Describe la información básica de tu Blocklet. Esta información se presentará a los usuarios en la tienda."},branding:"Branding",brandingHelp:"Se mostrará más información sobre el blocklet en la tienda",resourceSelect:"Seleccionar recurso de blocklets",resourceUpload:"Cargar recurso desde tu disco (index.html es requerido en el archivo)",deleteStoreTip:"¿Estás seguro de que quieres eliminar a {name} de la lista de la tienda Connect?",disconnectStoreTip:"Después de la desconexión, se eliminará el blocklet de la tienda. ¿Seguro que desea desconectar?",connectOrUpload:"Conectar o Subir",developerInfo:"Información del desarrollador",autoUploadTip:"Cargar automáticamente el blocklet en la tienda después de la versión de creación",possibleSameStoreTip:"Intenta resolver las dependencias de los blocklets en la misma tienda de blocklets antes de cada carga cuando sea posible",needProjectId:"Por favor, crea un proyecto primero",projectSettings:"Configuraciones del Proyecto",noStoreSelected:"Por favor, seleccione una de las tiendas existentes o agregue una nueva tienda para continuar",installToThisServer:"Instalar en este servidor",forceResourceBlocklet:"Fuerza definida como un blocklet basado en recursos",resourceDocker:"Crear Blocklet desde Docker",resourceSelectTitle:"Recurso",resourceUploadTitle:"Subir",resourceDockerTitle:"Docker",resourceDockerInputTip:"Por favor, introduzca el comando docker run",docker:{pleaseInputDockerCommand:"Por favor ingrese el comando docker run",volumeTip:"El volumen debe comenzar con $BLOCKLET_DATA_DIR o $BLOCKLET_APP_DIR",volumeTip2:'El volumen no puede contener ".."',noAllowTheArg:"No se permite usar el argumento en el comando docker run",needCustomInput:"Configure el valor al instalar Blocklet",dockerParams:"Parámetros de Docker",dockerCommand:"Comando Docker",dockerImageName:"Nombre de la imagen de Docker",addItem:"Agregar parámetro de ejecución de Docker",envKey:"Clave de variable de entorno",publishTips:"El puerto externo final será asignado automáticamente por el blocklet",volumeTips:"El volumen debe comenzar con $BLOCKLET_DATA_DIR o $BLOCKLET_APP_DIR",modifyParam:"Modificar parámetro de ejecución de Docker",modifyEnv:"Modificar variable de entorno",paramDetail:"Detalle de parámetro",description:"Descripción",secure:"Seguro",shared:"Compartido",required:"Requerido",prefix:"Prefijo",path:"Ruta",name:"Nombre",portType:"Tipo de puerto",dockerImageNameError:"El nombre de la imagen de Docker no puede contener espacios",autoGenerated:"Generado automáticamente",dockerCMDError:"Docker CMD solo admite caracteres simples",proxyBehavior:"Comportamiento del proxy",serviceProxy:"Servicio",directProxy:"Directo",nextTab:"Analizar Comando"},storeRule:{maxImageCount:"La tienda permite como máximo {max} capturas de pantalla.",minImageCount:"La tienda requiere al menos {min} {unit}.",minImageSize:"El tamaño de la imagen de la captura de pantalla de {name} debe ser de al menos {width}x{height}.",logoFormat:"El formato de imagen del logo solo admite [{format}]",warning:"Advertencia",screenshot:"Captura de pantalla",screenshots:"Capturas de pantalla",first:"Primero",second:"2º",third:"3º"},store:"Tienda Blocklet",endpoint:{tab:"Blocklet remoto",uploadToEndpoint:"Puedes subir el Blocklet actual al Blocklet especificado.",addEndpoint:"Añadir punto final de Blocklet",urlEmpty:"La URL del punto final no puede estar vacía",addFailed:"Error al agregar el punto final de Blocklet:",deleteEndpoint:"Eliminar punto final de Blocklet",deleteDesc:'Confirmar eliminación del endpoint de Blocklet {name}?<br/><span style="color: {color}">*Después de eliminar este endpoint de Blocklet, no podrá actualizar las aplicaciones instaladas desde este endpoint de Blocklet a menos que las agregue de nuevo.</span>',confirmDesc:"Por favor, ingrese {name} para eliminar",visitEndpoint:"Visita Blocklet",disconnectEndpointTip:"¿Estás seguro de que quieres desconectar {url}? Después de desconectar, el Blocklet no se cargará en este punto final.",deleteFailed:"Error al eliminar el punto final de Blocklet",publishToEndpointSuccess:"Blocklet publicado en Endpoint correctamente",uploadToEndpointSuccess:"Blocklet subido al Endpoint correctamente"},autoPublishErrorTip:"Publicación automática a {storeName} fallida: {error}",singleton:"Solo una instancia",singletonTip:"Cuando el modo singleton está habilitado, la aplicación no puede ejecutar varias instancias al mismo tiempo. Como tu aplicación usa el modo singleton, el despliegue azul-verde no puede usarse para actualizaciones o reinicios."},titleValidationError:"La longitud del título debe estar entre 3 y 20 caracteres",descriptionValidationError:"La longitud de la descripción debe estar entre 3 y 80 caracteres",whyNeedAppPid:"Si se ha migrado su aplicación, el DID permanente es el DID generado cuando este Blocklet se instaló originalmente.",usingDocker:"Este Blocklet se ejecutará usando docker",gotoVisitError:"No se puede acceder a la URL de Blocklet, por favor intenta de nuevo más tarde",usingIsolation:"Este Blocklet se ejecutará con aislamiento de red",dockerImage:"Soporta Docker",mountPoint:{description1:"Este cambio puede romper URLs que contengan el antiguo punto de montaje, lo que puede llevar a:",case1:"Referencias de recursos rotas entre Blocklets en esta aplicación",case2:"URL roto si los has compartido públicamente",description2:"Puedes configurar una redirección desde el antiguo punto de montaje al nuevo para minimizar posibles cambios que rompan la funcionalidad."},skSourceMigratedTip:"Esta app se lanzó con un monedero administrado por servidor y ha migrado a DID Wallet para una mayor seguridad.",skSourceManagedTip:"Esta app se ejecuta con un monedero gestionado por servidor; migra a DID Wallet lo antes posible para una mayor seguridad.",zeroDowntime:"Sin tiempo de inactividad"},dashboard:{nodeDid:"Nodo",ownerDid:"Propietario",routingEngine:"Motor de Enrutamiento",ownerNftURL:"Propietario NFT",expirationLeft:"Vencimiento Restante",startFromCrashTip:"El servidor de Blocklet no se cerró correctamente la última vez, por favor inicie manualmente los blocklets que deben ejecutarse.",runtimeConfig:{blockletMaxMemoryLimit:"Límite máximo de memoria de Blocklet",daemonMaxMemoryLimit:"Límite Máximo de Memoria del Servidor"},document:"Más información en nuestra documentación",database:"Base de datos"},store:{nameSort:"Nombre",popularSort:"Popularidad",headerDescription:"Encuentra e instala tus Blocklets",detail:{purchase:"Compra {name}",open:"Abrir {name}",install:"Instalar {name}",upgrade:"Actualiza {name}",empty:"No introducción"},blockletRegistry:{changeFailed:"Fallo en cambiar la Tienda de Blocklet",addFailed:"Error al agregar Blocklet Store",editFailed:"Error al editar la tienda de Blocklet",switchRegistry:"Cambiar tienda de Blocklet",addRegistry:"Añadir Blocklet Store",editRegistry:"Editar Bloque Tienda",deleteRegistry:"Eliminar Blocklet Store",haveSameRegistry:"Existe la misma tienda de blocklets",registryName:"Nombre de la tienda de Blocklet",registryUrl:"URL de Blocklet Store",registryNameEmpty:"El nombre de la tienda de Blocklet no puede estar vacío",registryUrlEmpty:"La URL de la tienda de Bloquelets no puede estar vacía",deleteDesc:'¿Confirmar eliminar la tienda de blocklets {name}?<br/><span style="color: {color}">*Después de eliminar esta tienda de blocklets, no podrás actualizar las aplicaciones instaladas desde esta tienda a menos que las vuelvas a añadir.</span>',confirmDesc:"Por favor ingrese {name} para eliminar"},purchase:{title:"Compra {name}",confirmed:"Tu compra de NFT de Blocklet ha sido verificada",declined:"No has proporcionado la compra válida de Blocklet NFT",waiting:"Esperando completar la compra...",purchase:{title:"Compra NFT",description:"Paga un token antes de instalar esta blocklet si no la has comprado"},verify:{title:"Verificar NFT",description:"Tu NFT será verificado antes de instalar este blocklet si has comprado y tienes el NFT de compra en tu billetera DID",auth:{title:"Compra de credenciales requerida",scan:"Conecta la billetera DID para adquirir NFT de blocklet",confirm:"Revisa esta operación en tu billetera de DID",success:"Tu compra de NFT está verificada y la instalación ha comenzado"}},auth:{title:"Comprar {name}",scan:"Escanee el siguiente código QR con su billetera DID",confirm:"Confirmar en su cuenta",success:"Compra de NFT enviada a tu billetera DID"},launch:"Lanzamiento {name}",autoLaunch:"{name} ha comprado con éxito, redirigiendo a la página de inicio..."},tooltip:{upgradeServer:"Se necesita la versión {version} del servidor de Blocklet, la versión actual del servidor de Blocklet es {serverVersion}"}},setting:{saveSuccess:"Configuración guardada exitosamente",unSavedTip:'Hay cambios no guardados, por favor haz clic en "Guardar cambios" para guardarlos.',unSavedLeaveTip:"Hay cambios no guardados, ¿estás seguro de abandonar la página?",form:{name:"Nombre de tu servidor",nameRequired:"Se requiere una descripción del servidor",namePlaceholder:"Nombre del servidor",description:"Description tu servidor",descriptionHolder:"Descripción del servidor",descriptionRequired:"Se requiere una descripción del servidor",domain:"Tu nombre de dominio del servidor",domainPlaceholder:"Nombre de dominio del servidor",domainRequired:"Se requiere el dominio del servidor",ipPlaceholder:"IP",ipRequired:"La IP es requerida",registry:"Blocklet Store",registryPlaceholder:"Tienda de Blocklet para obtener blocklets",registryRequired:"Se requiere Blocklet store",registerUrl:"URL de Blocklet Launcher",registerUrlPlaceholder:"Ingresa la URL de tu Blocklet Launcher preferido, puedes usar el oficial de forma segura",webWalletUrl:"URL de DID Wallet",webWalletUrlPlaceholder:"Por favor ingresa la URL de tu 'DID Wallet' alojada, puedes usar la oficial con seguridad",nftDomainUrl:"URL de dominio NFT",nftDomainUrlPlaceholder:'Por favor ingresa la URL de tu "Dominio NFT" alojado, puedes usar el oficial de forma segura',enableWelcomePage:"Habilitar página de bienvenida",welcome:{switchLabel:"Página de bienvenida"},upgrade:{title:"Actualiza el servidor de Blocklet a {version}",description:"Durante la actualización, tu servidor de Blocklet entrará en modo de mantenimiento durante unos minutos mientras se completa la actualización.",dialog:'Haz clic en "confirmar" para instalar la actualización. El servidor Blocklet entrará en modo de mantenimiento hasta que la actualización se complete y volverá automáticamente al modo de producción.',confirm:"Mejora",switchLabel:"Verificación automática de actualizaciones",enableBetaRelease:"Habilitar lanzamiento beta",setup:"Preparando la actualización",installing:"Instalando Blocklet Server v{version}",restarting:"Reiniciando el servidor Blocklet",cleanup:"Migrando datos del servidor Blocklet",verifying:"Verificando el servidor de Blocklet v{version}",rollback:"Revertir servidor de Blocklet",complete:"¡Actualización completa!",progress:"Mejorando {name}",check:"Buscar actualizaciones",latest:"Estás ejecutando la última versión."},restart:{title:"Reiniciar el servidor de Blocklet",description:"Durante el reinicio, tu Servidor de Blocklets entrará en modo de mantenimiento mientras se completa el reinicio.",dialog:'Haz clic en "confirmar" para reiniciar. El servidor de Blocklet entrará en modo de mantenimiento hasta que se complete el reinicio y volverá automáticamente al modo de producción.',confirm:"Reiniciar",setup:"Preparando el reinicio",verifying:"Verificación del servidor de Blocklet",restarting:"Reiniciando el servidor Blocklet",cleanup:"Asegúrate de que todo esté bien",rollback:"Limpiar el estado sucio",complete:"¡Mantenimiento completo!",progress:"Reiniciando {name}"},register:{title:"Regístrate en Blocklet Launcher",description:"Una vez agregado, puedes lanzar blocklets a este servidor de blocklets desde {url}",button:"Registrar"},monitor:{diskThreshold:"Enviar alerta cuando el uso del disco exceda (%)",diskThresholdPlaceholder:"Por favor, establezca el umbral de alerta para el uso del disco"},security:{switchLabel:"Aislamiento del sistema de archivos",switchTips:"Después de deshabilitar esta opción, el sistema de archivos del Blocklet ya no estará aislado, lo que podría representar un riesgo de que software malicioso dañe el sistema de archivos.",warningTips:"La función de aislamiento del sistema de archivos no puede tener efecto. Actualiza la versión de node.js (la versión actual es {version}) a la versión 21.6.0 o superior."},docker:{switchLabel:"Ejecutar Blocklets en Contenedores",switchTips:"Después de habilitar esta opción, los blocklets se ejecutarán utilizando contenedores, lo que puede mejorar la seguridad general del servidor.",notInstalled:"No se puede activar el contenedor de ejecución porque Docker no está instalado o no tiene los permisos necesarios para ejecutar",needCloseFileSystemIsolation:"El aislamiento del sistema de archivos y el modo de contenedor Docker no se pueden habilitar al mismo tiempo"},dockerNetwork:{switchLabel:"Aislamiento de red de contenedor",switchTips:"Tras habilitar esta opción, los blocklets se ejecutan de un modo más seguro: un blocklet no puede acceder al servidor de blocklets ni a otros blocklets en las aplicaciones.",needEnableDocker:"El modo contenedor debe estar activado para activar el aislamiento de red"},restartAllContainers:{title:"Reiniciar todos los contenedores",description:"Reiniciar todos los contenedores y mantener los Blocklets en ejecución.",dialog:'Haz clic en "confirmar" para reiniciar todos los blocklets de contenedor y mantener el estado de blocklets en ejecución.',confirm:"Reiniciar",setup:"Preparando el reinicio",verifying:"Verificando Blocklet Server",restarting:"Reiniciando todos los contenedores en segundo plano",cleanup:"Asegúrese de que todo esté bien",rollback:"Limpiar el estado sucio",complete:"¡Mantener completo!",progress:"Reiniciando todos los contenedores en segundo plano"},restartAllBlocklet:{title:"Reiniciar todos los Blocklets",description:"Reiniciar todos los Blocklets que se estén ejecutando o tengan errores en este servidor.",dialog:'Haz clic en "confirmar" para reiniciar todos los blocklets en segundo plano.',confirm:"Reiniciar",setup:"Preparando el reinicio",verifying:"Verificando Blocklet Server",restarting:"Reiniciando todos los Blocklets en ejecución o con errores en segundo plano",cleanup:"Asegúrese de que todo esté bien",rollback:"Limpiar el estado sucio",complete:"¡Mantenimiento completado!",progress:"Reiniciando todos los Blocklets en ejecución o con errores en segundo plano"},enableSessionHardening:{switchLabel:"Habilitar endurecimiento de sesión",switchTips:"Después de habilitar esta opción, las operaciones de mutación requerirán verificación estricta, lo que puede mejorar la seguridad general del servidor."}},accessKey:{accessKeyId:"ID de Clave de Acceso",lastUsed:"Último utilizado en",tip:"Introduce un nombre para esta clave de acceso",saveSecretTip:"Esta es la única vez que se puede ver la clave secreta de acceso y no se puede recuperar. Sin embargo, en cualquier momento puedes crear nuevas claves de acceso",iKnow:"He copiado y guardado el Acceso Secret",showSecret:"Mostrar clave de acceso secreta",hideSecret:"Ocultar Secreto",title:"Eliminar clave de acceso",descriptionNoTime:"Esto eliminará de forma permanente la clave de acceso {key} con nombre {name}, la cual nunca se ha utilizado antes",description:"Esto eliminará permanentemente la clave de acceso {key} con el nombre {name}, la cual fue utilizada por última vez el {time}, {timeAge}",confirm_desc:"Por favor ingresa {name} para eliminar",remark:"Nombre de clave de acceso",remarkInvalid:"Se requiere el nombre de la clave de acceso",passport:"Selecciona un pasaporte para la clave de acceso para otorgar o limitar permisos",expireTime:"Establezca una fecha de caducidad para la clave de acceso para una mejor seguridad",authType:"Tipo de autenticación",resourceType:"Tipo de Recurso",resourceId:"ID de recurso",component:"Componente",expired:"{time} caducado",accessKeySecret:"Clave secreta de acceso",simple:"Simple",signature:"Firma",signatureDesc:"Seguridad de nivel empresarial con criptografía. Requiere integración de código con SDK (@blocklet/server-js), ideal para escenarios con altos requisitos de seguridad y transmisión de datos críticos",simpleDesc:"Mecanismo de token portador ligero, similar a una clave OpenAPI, admite llamadas a API RESTful e integración de servicios de terceros. No se requiere codificación, integración rápida a través de encabezado HTTP, perfecto para un desarrollo rápido",viewSecret:"Puedes acceder a la clave secreta más tarde en la página de detalles de la clave de acceso",usage:"Uso",listTitle:"Gestionar el acceso seguro a la API con claves de acceso",tooltipTitle:"Genere y administre credenciales que permitan a los sistemas de confianza interactuar con su aplicación mediante programación. Las claves de acceso permiten la automatización segura y la integración perfecta en sus herramientas y servicios."},webhook:{add:"Agregar Integración",delTitle:"Borrar Integración",requiredError:"Por favor proporcione un {type} válido",confirm_desc:"Por favor ingrese {name} para eliminar",test:"Prueba",description:"Esto eliminará permanentemente la integración con ID {id}",columns:{description:"ID",params:"Parámetros",createdAt:"Creado en"},testSuccess:"Mensaje de prueba enviado con éxito",duplicateError:"La URL ya existe",updateSuccess:"Estado actualizado correctamente"},dns:{step1Title:"Inicia sesión en tu registrador de dominio",step1Desc1:"Inicia sesión en tu registrador de dominio, busca la página de administración de dominios y localiza la página de configuración de servidores de nombres. Puedes buscar tu registrador de dominio en",step2Title:"2. Encuentra la configuración DNS para {url}",step2Desc:'Esto puede llamarse "Gestión DNS", "Configuración avanzada", o similar.',step3Title:"3. Añada los siguientes registros DNS",step3Desc:'El nombre puede llamarse "host", "hostname", o "alias"'},domain:{addingDomain:"Añadiendo dominio...",checkingResolvable:"Comprobando estado del dominio...",cannotResolve:"{domain} no se puede resolver, verifique su configuración de DNS",resolvedAddressError:"{domain} no está configurado correctamente con un registro CNAME que apunte a {curDomain}",invalidDNSReminder:"{error}. Sin embargo, puedes continuar añadiendo el dominio, pero la generación automática de certificados no está disponible.",continueAdd:"Continuar añadiendo",conflictTitle:"{domain} ya está en uso",conflictDescription:'{domain} ya está en uso por "{title}". Al confirmar, el dominio se eliminará de "{from}" y se agregará a "{to}".'},aigne:{modelAdapter:"Proveedor de Modelo",modelName:"Nombre del Modelo",desc:{modelAdapter:"La plataforma que ofrece un servicio de modelo AI",modelName:"La versión específica del modelo o el nombre del modelo",key:"La clave API de {provider} usada para autenticación",baseUrl:"Ingrese la URL de su instancia AIGNE Hub (p. ej., https://hub.aigne.io). Use la suya si está autoalojando.",accessKeyId:"La clave única ID para acceder al modelo",secretAccessKey:"La clave secreta emparejada con el ID de clave de acceso",docLink:"Ver la documentación oficial para más detalles y referencia API"},failed:"Error al guardar la configuración de AIGNE",authorizeAigneHub:"Conectar a {name}",baseUrl:"URL del Hub AIGNE",disconnect:"Desconectar",disconnectConfirm:"¿Estás seguro de que quieres desconectarte de AIGNE Hub? Esto eliminará la configuración de IA actual.",disconnectSuccess:"Desconectado con éxito de AIGNE Hub",disconnectFailed:"Error al desconectar de AIGNE Hub",testConnection:"Probar conexión {provider}",invalidUrl:"La URL de {provider} no es válida",description:"La configuración actual tendrá efecto cuando {name} esté en ejecución. Debe guardar y reiniciar el Blocklet para que tenga efecto.",revokeUrlAuthTitle:"Confirmar cambio de {url}?",revokeUrlAuth:"¿Está seguro de que desea cambiar el {url}? Después de la modificación, su autorización será inválida y necesitará ser reautorizada.",testSuccess:"Conectado exitosamente a AIGNE Hub",check:"Comprobar",apiKeyNotAuthorized:"La clave API no está autorizada. Por favor, haga clic en el botón conectar a AIGNE Hub para autorizarla",switchUser:"Cambiar Usuario",connectTimeOut:"Conexión a {provider} agotada, por favor intente de nuevo más tarde",restart:{title:"Reiniciar Blocklet",connectedContent:"Tu Blocklet está actualmente conectado a {provider}. La configuración tendrá efecto después del reinicio. ¿Quieres reiniciar ahora?",notConnectedContent:"Tu Blocklet está actualmente desconectado de {provider}. La configuración tendrá efecto después del reinicio. ¿Quieres reiniciar ahora?",confirm:"Reiniciar Ahora",cancel:"Reiniciar Más Tarde"},testFailed:"No se pudo conectar a AIGNE Hub. Por favor, revise la URL o su red.",addCredits:"Comprar Créditos",transaction:"Transacciones",connected:"Conectado exitosamente",account:"Información de la cuenta",pendingCredit:"Cargos Pendientes",infinite:"Ilimitado",config:"Configurar AIGNE Hub"}},notification:{title:"Notificaciones",history:"Historial",channelSettings:"Configuración del canal",empty:"No hay actividades aun",viewAll:"Ver Todo",showRead:"Mostrar leer",markAllAsRead:"Marcar todo como leído",markAsRead:"Marcar como leído",proceed:"Proceder",checkingForUpdates:"Comprobando actualizaciones...",email:{enable:"Activar notificaciones",from:"Remitente del correo electrónico",host:"Servidor SMTP Host",port:"Puerto del servidor SMTP",user:"Nombre de usuario SMTP",secure:"Conexión segura",password:"Contraseña SMTP",fromRequired:"Se requiere el remitente de correo electrónico",fromInvalid:"El remitente del correo electrónico no es válido",receiverRequired:"Se requiere destinatario de correo electrónico",receiverInvalid:"El destinatario del correo electrónico es inválido",hostRequired:"Se requiere el host del servidor SMTP",hostInvalid:"El servidor SMTP es inválido",portRequired:"El puerto del servidor SMTP es requerido",portInvalid:"El puerto del servidor SMTP es inválido, el puerto debe estar entre 1 y 65535",userRequired:"Se requiere nombre de usuario del servidor SMTP",passwordRequired:"Se requiere contraseña de usuario del servidor SMTP.",testSuccess:"El correo de prueba se ha enviado con éxito",testFailed:"Fallo al enviar correo de prueba",testReceiver:"Destinatario del correo electrónico",testSendEmail:"Prueba de envío de correo electrónico",inputTestReceiver:"Por favor ingresa el correo electrónico de prueba del receptor",disable:"Cancelar notificación por correo electrónico",disableDescription:"Después de darte de baja, dejarás de recibir notificaciones por correo electrónico. Para recibir notificaciones por correo electrónico, puedes suscribirte nuevamente en esta página.",unsubscribe:"Cancelar suscripción notificación por correo electrónico",unsubscribeDescription:"Después de darte de baja, ya no recibirás notificaciones por correo electrónico.",subscribe:"Suscribirse",subscribeDescription:"Para recibir notificaciones por correo electrónico, puedes suscribirte de nuevo en la página de configuración.",companyName:"Nombre de la compañía",companyLink:"Enlace de la Compañía",companyAddress:"Dirección de la empresa",supportEmail:"Correo de soporte",emailInvalid:"Correo electrónico inválido",linkInvalid:"Enlace inválido, debe comenzar con http o https",signature:"Firma",signatureTooltip:"La firma de correo electrónico se usa al final para proporcionar al destinatario información clave sobre el remitente."},wallet:{description:"Las notificaciones de Wallet DID están siempre habilitadas para todos los usuarios."},webhooks:{description:"Las notificaciones enviadas a través de webhooks están siempre habilitadas para todos los usuarios."},comingSoon:"Más canales de notificación se encuentran en construcción",unsubscribe:"Cancelar subscripción",unsubscribeSucceed:"La cancelación se realizó con éxito",unsubscribeFailed:"La cancelación de la suscripción falló",unsubscribeTokenRequired:"El token de cancelación es requerido",unsubscribeTokenExpired:"El token de cancelación de suscripción ha caducado",unsubscribeTokenInvalid:"El token de cancelación de suscripción no es válido",installComponentError:"Componente {name} no encontrado o desinstalado",installingComponent:"Instalando componente {name}",pushKit:{enable:"Activar notificaciones",endpoint:"Punto final PushKit",endpointInvalid:"El punto final PushKit no es una URL válida",testSuccess:"La prueba de PushKit se envió correctamente",testFailed:"Test PushKit enviar falló",testReceiver:"Receptor PushKit",testSend:"Probar enviar push-kit",inputTestReceiver:"Introduzca el receptor de prueba did",receiverRequired:"Se requiere receptor PushKit",pushPath:"Ruta de API para push-kit (predeterminado /api/push)",did:"PushKit Blocklet DID",customOptions:"Opciones personalizadas"},notificationDetails:"Detalles de la notificación",receiver:"Receptor",sendStatus:{success:"Enviado",failed:"Error",sentTime:"Hora de envío: {date}",pending:"Pendiente",reason:{enabled:"El usuario ha activado la notificación de {channel}",disabled:"El usuario no ha habilitado la notificación de {channel}",unavailable:"El Blocklet actual no ha configurado la notificación de {channel}",available:"El Blocklet actual ha configurado la notificación {channel}",notSent:"El mensaje actual no se ha enviado a {channel}",offline:"Usuario está desconectado"},count:"{count}",total:"Total"},filter:"Filtrar",notificationPreview:"Vista previa de notificación",resend:"Reenviar",resendLimit:"Puedes reenviar una notificación hasta tres veces al día.",from:"Desde",to:"Para",body:"Cuerpo",notificationTitle:"Título",createdAt:"Creado en",status:"Estado",system:"Sistema",severity:"Severidad",config:"Configuraciones",selectChannels:"Seleccionar Canales",selectChannelsTip:"Selecciona los canales para reenviar",resendFailedOnly:"Reenviar solo a canales fallidos",statistics:"Estadísticas",allSender:"Todos los remitentes",allSeverity:"Todas las Gravedades",severityType:{info:"Info",success:"Éxito",warning:"Advertencia",error:"Error"},clear:"Limpiar",allDone:"Todo listo",filterType:{all:"Todo",unread:"No leídos"},viewMore:"Ver más"},router:{routerSetting:"Dominios y URL",certSetting:"Certificados SSL",defaultSite:"Predeterminado",urlHelperText:"Las URL que no comienzan con HTTP/HTTPS se consideran rutas relativas",empty:"Haz clic en Acciones para configurar el mapeo de URL",healthy:{ok:"El bloque o servicio está en ejecución",error:"Blocklet o servicio no está en funcionamiento o no está instalado"},service:{select:"Seleccionar Servicios de Bloquelet (opcional)",what:"Los servicios de Blocklet son tuberías ejecutadas contra la solicitud antes de redirigirla a la blocklet superior"},nonProvider:{title:"Advertencia de cambio de motor",description:"Si cambias el motor a ninguno, es posible que tu página actual no funcione correctamente porque el motor anterior se detendrá. ¿Estás seguro de continuar?",confirm:"Entiendo, continúa"},validation:{urlRequired:"Se requiere la URL",redirectCodeRequired:"Es necesario el código de redirección",didRequired:"Se requiere Blocklet",pathPrefixTooLong:"El prefijo de URL no puede exceder los {length} caracteres",pathPrefixCannotBeEmpty:"El prefijo de URL no puede estar vacío",domainRequired:"Se requiere el dominio del servidor",invalidUrl:"Por favor proporciona una URL válida",pathPrefixRequired:"Se requiere un prefijo de URL",redirectUrlRequired:"La URL de redireccionamiento es requerida",rewriteUrlRequired:"Se requiere una url de redirección"},domain:{addSite:"Agregar sitio",validate:{emptyTip:"El dominio del sitio no puede estar vacío",suffixTip:"El dominio del sitio no puede incluir {suffix}"},add:{title:"Agregar Nombre de Dominio",description:"Por favor proporciona un nombre de dominio válido",confirm:"Agregar",cancel:"Cancelar",blocklet:"Seleccionar Blocklet",redirect:"¿A dónde redirigir el tráfico?",port:"¿A qué puerto necesita escuchar su controlador de solicitudes?",portTip:"Esto se establece por defecto en el puerto principal del controlador de solicitudes, puedes personalizarlo",type:"Controlador de Tráfico",component:"Seleccionar Componente",pageGroup:"Grupo de Página",pageGroupTip:"Este componente puede renderizar cualquier grupo de páginas enumeradas arriba, dejar vacío para renderizar todas las páginas"},update:{title:"Actualizar dominio del sitio",label:"Dominio del sitio",description:"Por favor, proporcione un dominio de sitio válido"},setup:{tipStart:"Agregue los registros DNS para el dominio",tipEnd:"Según las siguientes pautas",recordType:"Tipo de Registro",recordValue:"Valor de registro"},verify:{ok:"La resolución de dominio es normal",notResolved:"Este dominio no se resuelve ni se puede acceder, por favor verifica la configuración de tu DNS"},https:{ok:"Este dominio tiene habilitado el protocolo https",bad:"Este dominio no ha habilitado https"},delete:{title:"Eliminar sitio",description:'Al confirmar, eliminarás tu sitio existente "{name}". Escribe "{name}" a continuación y selecciona Eliminar para completar el cambio, o selecciona Cancelar si deseas dejar tu sitio.',confirm_desc:"Por favor ingrese {name} para confirmar"}},domainAlias:{nftDomain:"Configuración automática con nombres DID",showTipHint:"¿Cómo configuro la resolución de nombres de dominio?",add:{title:"Agregar dominio adicional",domainDescription:"Por favor proporcione un nombre de dominio válido",forceTip:"Agregue forzosamente si el nombre de dominio ya existe",helperText:"Si se ingresa una URL HTTP o HTTPS, se convertirá automáticamente en un nombre de dominio.",isDidDomainError:"Este dominio es un Dominio DID. Por favor, agréguelo utilizando el método de configuración automática de dominios.",tips:"Puedes ingresar un nombre de dominio comprado de DID Names o cualquier otro dominio. Si es un Dominio DID, debes presentar el NFT del Dominio DID para continuar."},addCustomDomain:{name:"Dominio personalizado"},addDomainNFT:{showNFT:"Configurar dominio automáticamente",tips:"Puedes ingresar un dominio comprado de DID Names. Si se detecta un dominio DID, debes presentar el NFT del dominio DID para continuar.",connect:{scan:"Use uno de los siguientes métodos para conectar {domain} a {appName}",confirm:"Confirmar en su cuenta",success:"Autorización exitosa",title:"Conectar nombres DID a {appName}"},buyTip:"Los nombres DID resolverán automáticamente el nombre de dominio, sin necesidad de configurarlo manualmente, y el Blocklet actualizará automáticamente el registro de resolución del nombre de dominio cuando sea necesario. Si aún no tienes DID Domain NFT,",buy:"Comprar dominio DID",topLevelDidDomainHint:"Para el Dominio DID, si ingresa un dominio de nivel superior (ej. example.com), se configurará automáticamente como www.example.com",authorizeFailed:"Error al obtener la información del dominio NFT, ¡intente de nuevo!"},delete:{title:"Borrar",description:'Después de eliminar "{domain}", el acceso a ese alias puede no funcionar correctamente.',confirmPlaceholder:'Por favor, ingrese "{domain}" para eliminar'},custom:"Dominio personalizado",noCustom:"Sin dominio personalizado",noCustomTip:"No hay ningún dominio personalizado configurado con tu sitio web. Para una mayor seguridad y una mejor experiencia de usuario, te recomendamos configurar tu propio dominio personalizado. Haz clic a continuación para comenzar."},domainSecurity:{title:"Seguridad del Dominio",cors:{title:"Dominios CORS permitidos",description:'Lista de dominios que pueden enviar solicitudes de origen cruzado a {name}, separados por comas, usa "*" para permitir a cualquiera, lo cual no se recomienda',domainInvalid:"Por favor ingrese una lista válida de nombres de dominio"}},rule:{add:{title:"Agregar mapeo de URL",confirm:"Agregar",pathPrefix:"¿Cuál es el prefijo de URL?",pathPrefixTip:"Si configuras el prefijo como '/my-prefix', todas las solicitudes que comiencen con ese prefijo se dirigirán al bloque configurado",blocklet:"¿Qué Blocklet se encargará de manejar esas solicitudes?",port:"¿Qué puerto del blocklet manejará las solicitudes?",portTip:"Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto",responseType:"Tipo de respuesta",responseBody:"Contenido de respuesta",responseBodyTip:"Pega tu contenido de respuesta aquí, no debe exceder los 4096 caracteres",responseBodyRequired:"El contenido de respuesta no puede estar vacío"},delete:{title:"Eliminar asignación de URL",description:'Al confirmar, eliminarás tu URL Mapping existente de "{name}". Escribe "{name}" a continuación y selecciona Eliminar para completar el cambio, o selecciona Cancelar si deseas mantener tu URL Mapping.',confirm_desc:"Por favor ingresa {name} para eliminar",cancel:"Cancelar"},update:{title:"Actualizar asignación de URL",confirm:"Sí, Actualizar",cancel:"Cancelar"}},cert:{name:"Nombre del certificado",domain:"Nombre de Dominio",action:"Acción",commonName:"Nombre común",boundDomains:"Dominios",source:"Fuente",expired:"Caducado",leftDays:"Días restantes",issuedOn:"Emitido el",expiryOn:"Vencimiento en",fingerprintAlg:"Algoritmo de huella digital",validityPeriod:"Período de validez",matchedSites:"Sitios coincidentes",upload:"Carga manual",publicCertHelperText:"Los certificados públicos se pueden descargar",nonPublicCertHelperText:"No se pueden descargar certificados no públicos",protectedCertHelperText:"Los certificados protegidos no se pueden editar",unprotectedCertHelperText:"Los certificados sin protección pueden ser editados",issuing:"Certificado siendo generado",sourceTypes:{upload:"Subida manual",lets_encrypt:"Vamos a Encriptar"},table:{nodata:"No hay datos"},delete:{title:"Eliminar Certificado",description:"¿Confirma la eliminación del certificado del dominio {domain}? Su eliminación podría afectar a los servicios relacionados. Confirme que es seguro antes de continuar con la eliminación.",confirm:"Confirmar"},nginx:{title:"Actualizar Certificado",titleAdd:"Agregar Certificado",pem:"Archivo de Certificado SSL",pemTip:'Por favor, coloca tu archivo de certificado de servidor aquí, debe terminar con ".pem" o ".crt"',key:"Archivo de Clave Privada",keyTip:'Por favor, coloca aquí tu archivo de clave privada del servidor, debería terminar con ".pem" o ".key"',confirm:"Guardar",cancel:"Cancelar",invalidFile:"Has seleccionado un archivo inválido",empty:"No se ha seleccionado ningún archivo todavía",source:"Fuente",sourceTypes:{upload:"Subida manual",lets_encrypt:"Vamos a Encriptar"}},detail:{title:"Detalles de Certificado"},genLetsEncryptCert:{title:"Generar certificado Let's Encrypt",dnsTip:"Por favor asegúrese de que el nombre de dominio apunte al servidor Blocklet actual.",description:"Agregar un certificado hará que el servicio sea más seguro, y Blocklet Server renovará automáticamente el certificado antes de que expire."}},gateway:{reqLimit:{switchLabel:"Habilitar limitación de solicitudes concurrentes para un rendimiento fiable",rate:"Limitar solicitudes concurrentes por IP a {rate} por segundo (límite por IP)",title:"Limitación de solicitudes",global:"Limitar solicitudes concurrentes manejadas por la gateway a {global} por segundo (límite global)",burstFactor:"Factor de ráfaga para la limitación de velocidad, aplicado a los límites globales y por IP (global: {global}, por IP: {rate})",methods:"Limitar solicitudes concurrentes por IP para los siguientes métodos",burstDelay:"Retraso cuando las solicitudes superan el límite por IP ({delay} segundos)"},cacheEnabled:{switchLabel:"Habilitar caché del gateway para mejorar el rendimiento",title:"Caché de Gateway"},blockPolicy:{switchLabel:"Bloqueo de solicitudes",addItem:"Agregar ítem",blacklistDesc:"Las solicitudes de estas direcciones IP serán bloqueadas para acceder a este Servidor y a todos los Blocklets",inputPlaceholder:"Ingrese la dirección IP, rango CIDR o URL",invalidItem:"Dirección IP, rango CIDR o URL inválidos",title:"Solicitud bloqueando",autoBlocking:{switchLabel:"Bloquear solicitudes incorrectas mediante detección en tiempo real",windowSize:"El tamaño de la ventana de tiempo para contar solicitudes (segundos)",windowQuota:"El número máximo de solicitudes (por IP) permitidas dentro de la ventana",blockDuration:"Duración para bloquear usuario por IP cuando la cuota se excede dentro de la ventana (segundos)",statusCodes:"Los códigos de estado a verificar"}},proxyPolicy:{switchLabel:"Corriendo detrás de proxies",trustRecursive:"Confíe en los proxies recursivamente",trustRecursiveDesc:"Use la IP más a la izquierda en la cadena X-Forwarded-For",trustedProxies:"Proxies de confianza",trustedProxiesDesc:"Las solicitudes de estas IP serán confiables para obtener la IP real del cliente",realIpHeaderLabel:"Encabezado de IP del cliente",realIpHeaderDesc:"Si el Servidor de Blocklets se está ejecutando detrás de proxies como CloudFront, puedes establecer la cabecera de la IP real del cliente aquí.",addItem:"Agregar artículo",inputPlaceholder:"Ingrese la dirección IP, rango CIDR",invalidItem:"Dirección IP no válida, rango CIDR",title:"Política de Proxy"},wafPolicy:{switchLabel:"Detecta y bloquea solicitudes malas con ModSecurity",modeDesc:"El modo de modsecurity (se requiere el módulo modsecurity)",mode:{detectOnly:"Detectar solo (no bloqueará solicitudes)",on:"Activado (bloqueará solicitudes)"},logLevelDesc:"El nivel de registro para ModSecurity (0-9), 0 significa deshabilitar el registro de auditoría",inboundAnomalyScoreThresholdDesc:"El umbral de puntuación de anomalía entrante (1-100), valor más bajo significa más estricto",outboundAnomalyScoreThresholdDesc:"El umbral de puntuación de anomalía saliente (1-100), un valor más bajo significa más estricto",docDesc:"Consulta la documentación para ver cómo configurar modsecurity",title:"Cortafuegos de aplicaciones web"}}},noMatch:{desc:"No podemos encontrar la página que estás buscando"},health:{connectionErrorTip:"El servidor de Blocklet no puede conectarse a la red, por favor verifica si el servidor de Blocklet ha sido detenido o si hay un problema de red",connectionRecoveryTip:"Se ha recuperado la conectividad del servidor de Blocklet",connectionStoppedTip:"El servidor Blocklet se ha detenido",wrongAccessUrlTip:"La dirección de acceso al servidor de Blocklet es incorrecta, por favor use la dirección de acceso correcta"},debug:{title:"¡Tu servidor de Blocklet está activo y funcionando!"},team:{invite:{action:"Invitar Nuevo",setting:"Configuración de Invitación",enabled:"Desactive esta configuración para restringir las nuevas invitaciones de usuarios solo a propietarios/administradores",disabled:"Activa esta configuración para permitir que cualquier usuario invite a nuevos usuarios",inviter:"Invitado por"},add:"Agregar Nuevo",member:{name:"Nombre",passport:"Pasaporte",passports:"Pasaportes",lastLogin:"Último inicio de sesión",lastLoginIp:"Última dirección IP de inicio de sesión",source:"Registrar fuente",source_derived:"Derivado de oauth",source_wallet:"Billetera DID",filter:"Filtrar por",blockAccess:"Prohibir inicio de sesión",blockAccessDescription:"El usuario no podrá conectarse a esta aplicación",allowAccess:"Permitir Iniciar sesión",allowAccessDescription:"El usuario podrá conectarse a esta aplicación",updateRole:"Actualizar Rol",removeUser:"Eliminar Usuario",removeUserDescription:'¿Confirmar eliminar usuario "{name}"?',revokePassport:"Revocar Pasaporte",revokePassportDescription:"Una vez que se revoca el pasaporte, el titular del pasaporte no puede usarlo para iniciar sesión nuevamente, ¿estás seguro de continuar?",enablePassport:"Habilitar Pasaporte",enablePassportDescription:"Una vez que se habilite nuevamente el pasaporte revocado, el titular del pasaporte podrá volver a usarlo para iniciar sesión, ¿seguro que deseas continuar?",passportPermissionTitle:"El pasaporte tiene los siguientes permisos:",search:"Buscar miembro",onlyApprovedMember:"Mostrar solo Aprobados",inviteDialog:{createInviteLink:"Generar enlace de invitación",createSuccessTip:"El enlace de invitación se ha creado correctamente. Haz clic para copiar y enviar el enlace al miembro invitado. Por favor, ten en cuenta que este enlace de invitación no se puede reutilizar y caducará el {expireDate}"},error:{passportEmpty:"El pasaporte no debe estar vacío"},connectedAccounts:"Cuentas Conectadas",connections:"Conexiones",federated:"Federado",switch:{did:"Cambiar DID",profile:"Cambiar Perfil",passport:"Cambiar pasaporte"},settings:{notification:"Notificaciones",email:"Envíame un correo electrónico cuando ocurran algunos eventos",wallet:"Envía notificación a mi billetera cuando ocurran algunos eventos",phone:"Envíame un mensaje de texto cuando ocurra algún evento",webhook:"Webhooks",add:"Agregar nuevo webhook",url:"URL personalizada",slack:"Slack Webhook",tested:"Mensaje de prueba enviado"},activeUserSessions:"Sesiones de usuario activas",forceLogout:"Cerrar sesión forzada",forceLogoutDescription:"¿Confirmar para forzar el cierre de sesión de este usuario?",openProfile:"Ver Perfil",removeUserSuccess:"Usuario eliminado exitosamente",forceLogoutRemoveDescription:"¿Confirmar forzar el cierre de sesión de este usuario (también eliminar todas las sesiones de usuario)?",currentOwner:"Propietario Actual"},transferNode:{name:"Transferir propiedad",inviteDialog:{title:"Transferir el servidor de Blocklet",tips:{progress:"Para completar la operación de transferencia, el receptor debe aceptar la solicitud de transferencia del servidor. Una vez aceptada, no podrás acceder al servidor nuevamente con el pasaporte actual.",newOwnerPermissions:"El nuevo Propietario tendrá el derecho de gestionar todas las operaciones como miembros, pasaportes y Blocklets.",revoke:"Si quieres retirar la invitación de transferencia, puedes eliminar el enlace de invitación en la página 'Equipo -> Miembros -> Invitar'."},createInviteLink:"Generar enlace de invitación",createSuccessTip:"El enlace de invitación se ha creado correctamente, haz clic para copiar y enviar el enlace al miembro invitado. Ten en cuenta que este enlace de invitación no se puede reutilizar y caducará el {expireDate}"},delegateDialog:{title:"Se requiere autorización",scan:"Use los siguientes métodos para autorizar al servidor a transferir la propiedad NFT del servidor.",confirm:"Confirma en tu cuenta",success:"Autorización exitosa"}},transferApp:{name:"Transferir propietario",transferDialog:{title:"Solicitud de transferencia",tips:{progress:"El receptor debe aceptar la transferencia de la aplicación para completar la operación de transferencia, y una vez que el receptor la acepte, no podrás iniciar sesión en la aplicación con el pasaporte actual nuevamente.",newOwnerPermissions:"El nuevo Propietario tendrá el derecho de gestionar todas las operaciones, como miembros, pasaportes y configuraciones."},createTransferLink:"Generar enlace de transferencia",createSuccessTip1:'El enlace de transferencia se ha creado correctamente, el invitado debe usar <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> para recibir la propiedad de la aplicación',createSuccessTip2:"Por favor, haz clic para copiar y enviar el enlace al miembro invitado. Ten en cuenta que este enlace de transferencia no se puede reutilizar y caducará el {expireDate}. Tu enlace de transferencia solo se mostrará una vez y no será visible de nuevo después de cerrar este diálogo.",createSuccessTip3:"Después de que la transferencia sea exitosa, la aplicación se reiniciará automáticamente para que los cambios surtan efecto",link:"Enlace de transferencia",iKnow:"He copiado y guardado el enlace"},connectDialog:{title:"Autorización requerida",scan:"Utilice los siguientes métodos para autorizar la aplicación a transferir la propiedad.",confirm:"Confirmar en su cuenta",success:"Autorización exitosa"},receiveDialog:{title:"Recibir la propiedad de la solicitud",scan:"Utilice los siguientes métodos para recibir la propiedad de la aplicación.",confirm:"Confirma en tu cuenta",success:"Recibir propiedad con éxito"},successTitle:"Te has convertido en el nuevo propietario de esta aplicación",visitDashboard:"Visita el panel de control de la aplicación",description:"Puedes transferir la propiedad de tu aplicación a otra billetera u otra persona."},permission:{create:{title:"Crear Permiso",description:"Formato: <acción>_<recurso> por ejemplo: 'consulta_usuario', 'modifica_usuario'"},delete:{title:"Eliminar permiso",description:"¿Confirmar eliminar {name}?"},error:{actionEmpty:"La acción no puede estar vacía",resourceEmpty:"El recurso no puede estar vacío",permissionTooLong:"La permiso no puede exceder {length} caracteres",descriptionTooLong:"La descripción no puede superar los {length} caracteres"}},passport:{create:{title:"Crear Pasaporte",titleTip:"El título no puede modificarse después de ser creado, se recomienda que tenga un máximo de 14 letras"},bind:{title:"Permiso de enlace",roleTip:"Obtendrás todos los permisos del pasaporte seleccionado después de la vinculación.",permissionTip:"Obtendrás los permisos seleccionados después de vincularlos",transferLeftTitle:"Todos los permisos",transferRightTitle:"Permisos otorgados"},delete:{title:"Eliminar Pasaporte",description:"Los pasaportes que tenga el usuario perderán todos los permisos después de ser eliminados. ¿Está seguro de que desea continuar?"},error:{titleEmpty:"El título no puede estar vacío",titleTooLong:"El título no puede exceder {length} caracteres",descriptionEmpty:"La descripción no puede estar vacía"},issuance:{pending:"Pendiente",create:{title:"Generar Enlace"},delete:{title:"Eliminar recibir enlace",description:"¿Confirmar eliminar {link}?"}},issue:"Emitir pasaporte",disableIssuance:"Deshabilitar Emisión de Pasaportes",enableIssuance:"Habilitar emisión de pasaportes",disableIssuanceTip:'Se desactivarán las operaciones "Issue Passport", "Invite Member" y otras.',enableIssuanceTip:"Emitir Pasaporte",trustedPassportIssuers:"Emisores de pasaportes confiables",trustedIssuers:"Emisores confiables",trustedFactories:"Colecciones de NFT de confianza",trustedFactoriesTip:"Administrar colecciones de NFT confiables que se pueden utilizar para intercambiar por un pasaporte",searchFactoryAddress:"Buscar Colección DID",configFactories:"Configurar colecciones confiables de NFT",configFactoriesTip:"Permitir a los usuarios intercambiar NFTs por pasaportes",factoryAddress:"Dirección de la colección NFT",factory404:"Colección de NFT no encontrada",factoryAddressTip:"La dirección de la colección NFT debe existir en la cadena principal de ArcBlock",role:"Tipo de pasaporte",ttl:"Política de vencimiento de pasaportes",ttlNever:"Nunca Caducar",ttlMint:"Desde la compra de NFT",ttlExchange:"Desde el intercambio de pasaporte",ttlNeverTip:"El pasaporte será válido hasta que sea revocado",ttlMintTip:"El pasaporte será válido desde que se compre el NFT hasta que especifiques ttl o lo revoques",ttlExchangeTip:"El pasaporte será válido desde el momento en que el usuario lo intercambie con éxito hasta que especifique el ttl o revoque",ttlTip:"365d significa 365 días, también puedes usar 30 días o 24h",validUntil:"Válido hasta: {date}",externalPassport:"Pasaporte Externo",notTrustedIssuerTip:"El pasaporte no puede ser utilizado porque el emisor no está en la lista de emisores confiables",issuerDid:"DID del emisor",addNodeToTrustedIssuers:"Agregar el servidor actual como un emisor de pasaportes confiable",revoked:"Revocado",noPermission:"No tienes permiso para realizar esta operación",shouldNotDeleteCurrent:"No puedes revocar tu pasaporte actualmente en uso",mappingRule:"Regla de mapeo",defaultRule:"Regla predeterminada",search:"Buscar Pasaporte",searchIssuerDid:"Buscar Identificador del Emisor DID",issueBy:"Problema por {name}",configColor:"Configurar el color del pasaporte",configColorTip:"Personaliza el color del pasaporte",color:"Color del pasaporte",description:"Usa este pasaporte para conectarte como {title} en {teamName}",displayBuiltin:"Incorporado",displayCustom:"Personalizado",typesTip:"Personaliza los tipos de pasaporte, separados por coma",issuanceDate:"Fecha de emisión: {date}",sourceMaps:{recover:"Recuperado",issue:"Emitido",invite:"Invitado",trusted:"De confianza"},related:"Pasaportes relacionados",operationLogs:"Registros de operación",owner:"Propietario",status:"Estado",statusMap:{valid:"Válido",revoked:"Revocado",expired:"Caducado"},view:"Gestionar Pasaportes",trustedPassportIssuersTip:"Gestionar emisores de pasaportes de confianza que se pueden usar para emitir pasaportes",issuanceTime:"Tiempo de emisión",relatedDescription:"El pasaporte actual se deriva del siguiente pasaporte",passportExpireTime:"Establecer una fecha de vencimiento para el Passport",customExpireTime:"Tiempo de expiración personalizado",customExpireTimeIsInvalid:"El tiempo de expiración personalizado no es válido"},inviting:{link:"Enlace de invitación",inviter:"Invitador",delete:{title:"Eliminar enlace de invitación",description:"¿Confirmar eliminar {link}?"},disabledTip:"La invitación no está habilitada"},whoCanAccess:{all:{title:"Accesible para todos"},owner:{title:"Dueño solamente"},invited:{title:"Usuario invitado solamente"}},userFollowers:{follow:"Seguir",unfollow:"Dejar de seguir",followersOnly:"Solo visible para seguidores",followers:"Seguidores",following:"Siguiendo",emptyFollowing:"Aún no sigues a ningún usuario.",emptyFollowers:"Aún no hay seguidores.",title:"Seguir",invitees:"Invitados",emptyInvitees:"Aún no has invitado a nadie."},orgs:{explain:"Permite a los usuarios crear y unirse a organizaciones, asignar roles y gestionar recursos.",description:"Descripción",deleteConfirm:"¿Confirmar eliminar {name}?",members:"Miembros",myCreated:"Mi Creado",myJoined:"Mis Uniones",myCreatedEmpty:"Aún no has creado ninguna organización.",myJoinedEmpty:"Aún no te has unido a ninguna organización.",deleteConfirmDescription:"Eliminar esta organización eliminará todos los roles y recursos vinculados a ella. Los usuarios permanecerán en el sistema pero perderán sus roles en esta organización. Esta acción no se puede deshacer.",active:"Activo",deleteOrg:"Eliminar la organización actual",invitedAt:"Invitado a: {time}",joinedAt:"Unido a las: {time}",createNew:"Crear nueva organización",viewAll:"Ver todas las organizaciones",validate:{nameEmpty:"El nombre no puede estar vacío",nameTooLong:"El nombre no puede exceder los {length} caracteres",descriptionTooLong:"La descripción no puede exceder {length} caracteres"},mutate:{title:"Organización {mode}",name:"Nombre de la organización",createSuccess:"Organización creada con éxito",updateSuccess:"Organización actualizada con éxito",orgNotEnabled:"Organización no está habilitada",maxMemberPerOrg:"La organización puede invitar hasta {maxMemberPerOrg} miembros",maxOrgPerUser:"Puedes crear hasta {maxOrgPerUser} organizaciones"},invite:{chooseUsersToInvite:"Elige usuarios para invitar",success:"Invitación enviada a los usuarios",pleaseSelectUsers:"Por favor seleccione usuarios",pleaseSelectRole:"Por favor seleccione rol",inviteExternalUsers:"Invitar usuarios externos",failed:"Falló la invitación de {count} usuarios, inténtelo de nuevo más tarde",remove:"Eliminar usuario",removeSuccess:"Usuario eliminado con éxito",limit:"Límite",limitTip:"Limitar miembros de org y orgs por usuario",maxMembers:"Máx miembros por org",maxOrgs:"Org máximo por usuario",maxMembersTip:"Número máximo de usuarios que se pueden invitar a esta organización",inviteLinkSendToEmail:"Se ha enviado un enlace de invitación a email ({email}), por favor, revíselo",enterEmailAddress:"Por favor, introduzca la dirección de correo electrónico",inviteTitle:"Invitar a usuarios a unirse a {orgName}"},member:{removeMemberConfirm:"¿Confirmar eliminar {name}?",removeMemberConfirmDescription:"Tras la eliminación, el usuario perderá los roles y permisos en la organización. Esta acción no se puede deshacer.",removeInvitingMember:"¿Confirmar cancelar invitación a {name}?",removeInvitingMemberDescription:"Después de la eliminación, el usuario no podrá unirse a la organización y necesita ser reinvitado. Esta acción no se puede deshacer."}}},launcher:{provider:"Proveedor",adminUrl:"URL"},session:{blockAccess:"Has sido bloqueado de acceder a este servidor"},launchBlocklet:{appInfo:"Información de la aplicación",appInfoDesc:"Confirma la información de la solicitud",author:"Autor de la aplicación: {author}",setup:"Configurar Blocklet",redirect:"Redireccionar",alreadyRunning:"La aplicación {name} ya está en ejecución en este servidor de Blocklet",alreadyInstalled:"La aplicación {name} ya está instalada en este servidor de Blocklet",alreadyExists:"Esta aplicación ya existe, redirigiendo...",purchased:"Ya comprado",purchase:"Compra",nextStep:"Siguiente paso",agreement:"Contrato de Licencia",agreeAll:"Aceptar y continuar",installing:"Instalando {appName} en {serverName}, puede tomar minutos completar, por favor manténgase atento...",redirecting:"{appName} se ha instalado correctamente, ahora comenzando...",start:"Lanzamiento",launch:"Instalar Blocklet en el servidor",launchSuccess:"{appName} se ha lanzado con éxito!",installSuccess:"Blocklet se ha instalado y lanzado correctamente en {serverName}",openInRegistry:"Ver en Blocklet Store",subTitle:"Listo para instalar Blocklet {appName} en {serverName}",installingSubTitle:"{appName} instalando",access:"Abre la aplicación",viewApplication:"Ver Aplicación",newVersion:"Nueva Versión",newVersionDesc:"La aplicación ya existe, pero la versión actual se puede actualizar",upgradeNow:"Mejora ahora",later:"Más tarde",introduction:"Introducción",welcome:"Bienvenido al Asistente de Lanzamiento de Blocklet",accept:"Estoy de acuerdo con el EULA de Blocklet",license:"Licencia de la aplicación",next:"Acepta el EULA y continúa",purchaseApp:"Comprar Blocklet",setupAppDesc:"Inicialice su Blocklet",launched:"Completar",confirmInstall:"Confirmar Instalación",dialog:{title:"Conviértete en propietario de la aplicación",nftFreeDescription:"Por favor, presenta el espacio NFT de la aplicación y crea una cuenta de la aplicación para continuar",nftPaidDescription:"Por favor presenta el espacio de la aplicación NFT y la compra de la aplicación NFT para continuar",freeDescription:"Por favor crea una cuenta en la aplicación para continuar",paidDescription:"Por favor, presenta la compra de la aplicación NFT y crea una cuenta de aplicación para continuar",confirm:"Confirma en tu cuenta",success:"Autorización exitosa",authorizationTimeout:"Tiempo de autorización superado"},waiting:{verifying:"Verificando metadatos de la aplicación...",downloading:"Descargando paquete de la aplicación...",downloadingComponent:"Descargando {name}",extractingComponent:"Extrayendo {name}",extracting:"Extrayendo paquete de la aplicación...",installing:"Instalando componentes de la aplicación...",installed:"Instalado",starting:"Iniciando la aplicación...",done:"Tu aplicación se está lanzando...",parsing:"Analizando metadatos de la app...",initializing:"Inicializando configuración de la app...",initializingOwner:"Inicializando propietario de la app...",creatingSecurityRules:"Creando reglas de seguridad predeterminadas...",assigningDomain:"Asignando dominio predeterminado...",waitingForDomain:"Esperando a que el dominio predeterminado surta efecto..."},error:{loadMetaFailed:"Error al cargar la información de la aplicación",appMetaNotFound:"No se encontraron datos para esta aplicación",downloadFailed:"Error al descargar la aplicación, por favor intenta nuevamente",installFailed:"Error al instalar la aplicación, por favor intenta nuevamente",startFailed:"Error al iniciar la aplicación, por favor inténtalo de nuevo",launchFailed:"Error al iniciar la aplicación, por favor intenta de nuevo",installedButStopped:"La aplicación se instaló correctamente, pero no se puede iniciar. Puede iniciarlo manualmente después de resolver los problemas de bloqueo",installedButError:"La aplicación se instaló correctamente, pero no se pudo iniciar",restoreFailed:"Error al restaurar la aplicación, por favor intente nuevamente",resourceBlocklet:"Este Blocklet no puede ser lanzado directamente, pero puedes añadirlo a una aplicación existente."},steps:{introduction:"Introducción",installApp:"Instalar aplicacion",purchaseSpace:"Comprar Espacio",prepareSpace:"Preparar Espacio"},installRelatedComponents:"Instalar Blocklets relacionados",canNotInstall:"No se puede instalar",dockerBlockletCantInstall:"No se puede instalar el Blocklet, porque el Blocklet Server no ha habilitado Docker o Docker Network",nav:{myApps:"Mis Apps",viewMyApps:"Ver mis apps"},withoutWallet:"Omitir conexión de DID Wallet",nwFailed:"Error al recuperar el flujo de trabajo.",alreadyConsumed:"La sesión de lanzamiento se ha consumido",redirectToLauncherBlocklet:"Redireccionando a Launcher Blocklet"},issuePassport:{title:"Recibir pasaporte",description:"Utilice los siguientes métodos para recibir el pasaporte emitido por {name}",dialog:{scan:"Utilice los siguientes métodos para reclamar el pasaporte",confirm:"Confirma en tu cuenta",success:"El pasaporte se ha añadido correctamente a tu billetera",loginWithPassport:"Conéctate con este Pasaporte",autoClose:"La página se cerrará automáticamente en {seconds}s",autoJump:"La página saltará automáticamente en {seconds}s"}},lostPassport:{title:"Pasaporte perdido",description:"El propietario de {name} puede usar los siguientes métodos para recuperar el pasaporte; los miembros deben contactar al propietario para reemitir el pasaporte",return:"Cancelar operación de recuperación, volver a la página principal",receivePassport:"Recibir pasaporte",recoverDialog:{title:"Recuperar pasaporte",scan:"Utilice los siguientes métodos para recuperar su pasaporte",confirm:"Confirmar en tu DID wallet",success:"Recuperado correctamente"},receiveDialog:{title:"Recibir pasaporte",scan:"Utilice los siguientes métodos para recibir el pasaporte",confirm:"Confirmar en tu DID wallet",success:"Recibido correctamente"},recoverPassport:"Recuperar pasaporte"},invite:{message:"{name} te invita a ser el {role} de {dapp}",success:"Te has unido correctamente a {dapp}",receive:"Recibir con",validUntil:"Válido hasta:",viewPermission:"Permiso de vista",emptyPermission:"Permiso vacío",open:"Abrir",description:{step1:"Descarga e instala tu {wallet}",step2:"Haz clic en el botón de arriba para recibir el pasaporte",step3:"Inicia sesión en {dapp} con el pasaporte recibido"},transferNFTDialog:{title:"Aceptar Blocklet Server {name}",scan:"Conecta el lanzador para completar la recepción del servidor Blocklet.",confirm:"Revise esta operación en su billetera DID",success:"Conexión exitosa, esperando confirmación de recibir el servidor"}},receive:{dialog:{title:"Recibir pasaporte",scan:"Después de recibir el pasaporte, puede usarlo para iniciar sesión en la aplicación",confirm:"Confirma en tu cuenta",success:"Estás conectado exitosamente",scanWithDid:"Por favor, usa la cuenta {did} para recibir este pasaporte. Después de recibir el pasaporte, puedes usarlo para iniciar sesión en la aplicación."}},navigation:{navigation:"Navegación",actionFailed:"Acción fallida",form:{themeConfig:"Configuración de tema",contentConfig:"Configuración de contenido",title:"Título",titlePlaceholder:"Por favor ingrese el título de navegación",titleTooLong:"El largo del título debería ser inferior a {len}",description:"Descripción",descriptionPlaceholder:"Por favor ingrese la descripción de navegación",descriptionTooLong:"El largo de la descripción debería ser inferior a {len}",icon:"Icono predeterminado",iconPlaceholder:"Por favor, seleccione un icono",invalidIcon:"El icono no es válido",findMoreIcon:"Encuentra más iconos",link:"Enlace",linkPlaceholder:"Por favor ingrese el enlace de navegación",invalidLink:"El enlace no es válido",component:"Componente",componentPlaceholder:"Por favor selecciona el componente de navegación",role:"Rol",rolePlaceholder:"Por favor seleccione un rol de navegación",locale:"Locale",localePlaceholder:"Por favor ingrese la configuración regional que desea agregar",localeExists:"{value} ya existe",activeIcon:"Icono activo",activeColor:"Color activo",color:"Color predeterminado",colorPlaceholder:"p. ej. #FF0000",invalidColor:"Color no válido",searchIcons:"Buscar icono",searchIconsPlaceholder:"Por ejemplo: mdi:home"},action:{add:"Agregar navegación",addSub:"Agregar subnavegación",edit:"Editar navegación",hide:"Ocultar navegación",show:"Mostrar navegación",del:"Eliminar navegación",new:"Nuevo",noAddSub:"El componente desinstalado no puede agregar subnavegación",noEdit:"No se puede editar el componente desinstalado",noDel:"No se permite eliminar la navegación incorporada",reset:"Reiniciar",restConfirmTitle:"¿Restablecer la navegación {section} a la predeterminada?",restConfirmDesc:"Se borrará tu navegación personalizada y se restaurarán los elementos predeterminados.",resetSuccessful:"Restablecimiento exitoso",delTabBarTitle:"¿Deseas eliminar esta navegación?",delTabBarDesc:"Después de eliminar, la navegación se eliminará de la barra de navegación."},system:"Sistema",services:"Servicios",access:"Acceso",members:"Miembros",passport:"Pasaporte",analytics:"Analítica",dashboard:"Tablero",studio:"Blocklet Studio",aigne:"Conexiones IA",blockletService:"Servicio de Blocklet",didConnect:"Identidad y Acceso",didSpaces:"Almacenamiento y Copia de Seguridad",website:"Estudio de sitio web",notification:"Centro de notificaciones",operations:"Observabilidad",integration:"Integraciones",developer:"Desarrolladores",overviewDesc:"Monitoree la salud y los detalles de la aplicación, e instale, inicie o elimine Blocklets fácilmente en un solo lugar.",didConnectDesc:"Agregue miembros del equipo, configure opciones de inicio de sesión y administre el acceso seguro para una colaboración fluida.",aigneDesc:'Configure las conexiones relacionadas con IA para su blocklet, incluyendo <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> y <a href="{mcpUrl}" target="_blank">servidores compatibles con MCP</a>.',websiteDesc:"Administre el dominio, ajuste el tema, refine la marca y personalice la navegación para un aspecto de sitio único.",operationsDesc:"Vea análisis, revise registros de actividad, reciba alertas y ajuste la configuración avanzada según sea necesario.",integrationsDesc:"Vincule servicios externos a través de Webhooks, claves de acceso y servidores MCP para ampliar las capacidades de la aplicación.",developersDesc:"Use registros, seguimiento de rendimiento y documentación para crear, depurar y optimizar su aplicación.",didSpacesDesc:"Almacene y respalde de forma segura los datos de su aplicación Blocklet para garantizar una protección confiable y una recuperación sencilla.",publishDesc:"Publique su aplicación en tiendas o compártala mediante enlaces para que más personas puedan usarla."},storage:{spaces:{title:"DID Spaces",tips:"Consejos",label:"Ingresa el espacio de puerta DID",connected:{title:"Espacios de DID conectados",tag:"Conectado"},connectedWithName:"Te has conectado exitosamente a {name}",addedWithName:"Has añadido exitosamente a {name}",connects:"Conectar",reconnect:"Reconectar",addressCannotEmpty:"La dirección no puede estar vacía",addressNotValid:"{url} no es una dirección válida",authorize:{title:"Conecta {appName} a DID Spaces",scan:"Utilice los siguientes métodos para permitir que la app {appName} se conecte a DID Spaces",success:"Conexión exitosa"},provideNFT:{title:"Por favor muestra el DID Spaces NFT para {appName}",scan:"Utilice los siguientes métodos para permitir que la app {appName} muestre el NFT de DID Space",success:"Conexión exitosa"},backup:{title:"Copia de seguridad",records:"Registros de respaldo",without:"Sin copia de seguridad",succeeded:"Copia de seguridad realizada",failed:"Error en la copia de seguridad",lastBackup:"Última copia de seguridad",lastBackupTip:'Han pasado {time} desde tu última copia de seguridad exitosa, revisa la configuración de copia de seguridad en la pestaña "DID Spaces"',noBackup:"Sin copia de seguridad",noBackupTip:"Aún no se ha creado ninguna copia de seguridad. Recomendamos configurar copias de seguridad regulares para proteger sus datos y configuraciones",pending:"Copia de seguridad en progreso",timeout:"Tiempo de espera de copia de seguridad"},autoBackup:{title:"Copia de seguridad automática",enabled:"La copia de seguridad automática está activada",disabled:"La copia de seguridad automática está apagada"},autoCheckUpdate:{title:"Comprobando automáticamente la notificación de nuevas versiones",enabled:"La opción de verificar automáticamente nuevas versiones está activada.",disabled:"La verificación automática de nuevas versiones está desactivada"},backupSuccessfully:"Copia de seguridad realizada correctamente",restore:"Restaurar",restoreSuccessfully:"Restauración exitosa",gateway:{title:"Puerta de enlace",select:"Seleccione un espacio DID",add:{title:"Agregar Espacios DID",label:"Por favor ingrese la URL de los Espacios DID",failed:"No se pudo agregar los Espacios de DID",invalidUrl:"URL de puerta de enlace de espacios de DID no válida",duplicate:"{name} ya está conectado a este Blocklet"},delete:{title:"Desconectar",succeeded:"Desconectado de DID Spaces {name}",failed:"Error al desconectar de la puerta de enlace",failedForSelected:"No se puede desconectar del DID Space seleccionado",descForBackup:`Después de desconectar de {name}, no podrás hacer copias de seguridad de Blocklet a este DID Space. ¿Estás seguro de que quieres desconectar?
|
|
8
8
|
Puedes restaurar las operaciones de copia de seguridad conectando nuevamente con {name}.`,descForStorage:`Después de desconectar de {name}, no podrás hacer copias de seguridad de Blocklet a este DID Space. ¿Estás seguro de que quieres desconectar?
|
|
9
9
|
Puedes restaurar las operaciones de copia de seguridad conectando nuevamente con {name}.`},connect:{title:"Conectar espacios de DID",add:"Conéctate a DID Spaces ahora",addTips:"Aún no estás conectado a ningún DID Space",switch:"Cambiar espacios DID",switchTips:"Estás conectado a {name}",connected:"Conectado"},switch:{failedForMismatchSpace:"Por favor, conéctate al espacio DID correcto {name}"},connectTo:"Conéctese a Espacios DID"},strategy:{title:"Estrategia de respaldo",autoBackup:"Respaldo automático",backupNow:"Copia de seguridad ahora",viewBackupFiles:"Ver archivos de respaldo"},progress:{title:"Progreso de respaldo"},record:{title:"Respaldo de registros",emptyData:"No hay registros"},notYet:"Todavía no tienes una copia de seguridad en progreso...",connect:{now:"Conectar ahora",title:"Conectar DID Spaces",provider:"Proporcione su DID Space para comenzar las copias de seguridad",providerForStorage:"Proporcione su DID Space para almacenamiento de datos",useWallet:"Conectar con DID Wallet",useWalletReconnect:"Reconectar con DID Wallet",useSpaceGateway:"Conectar usando DID Space Gateway",useSpaceGatewayReconnect:"Reconectar usando DID Space Gateway",switchToSpace:"Cambiar a DID Space",switchToSpaceSucceeded:"Cambiado a DID Space {name}",succeeded:"Conectado exitosamente a DID Space",disconnect:"Desconectar",abortBlockletBackup:"Abortar copia de seguridad"},disconnected:{tag:"Desconectado",reconnectNow:"Reconectar ahora"}},appLevel:{title:"Almacenamiento a nivel de aplicación",description:"Todos los datos generados por la aplicación se almacenan en este DID Space"}},log:{lastDays:{1:"Último 1 día",7:"Última 1 semana"}},oauth:{authorize:"Autorización OAuth",client:{tab:"Aplicaciones OAuth",name:"Nombre de la app",clientId:"ID de cliente",clientSecret:"Secreto del cliente",scope:"Alcance",redirectUris:"URIs de redirección",grantTypes:"Tipos de concesión",responseTypes:"Tipos de respuesta",tokenEndpointAuthMethod:"Método de autenticación del punto final del token",actions:"Acciones",grantResponse:"Conceder y Responder",metaContact:"Meta & Contacto",clientUri:"URI del cliente",logoUri:"URI del logo",contacts:"Contactos",tosUri:"URL de Términos de Servicio",policyUri:"URI de política",jwksSoftware:"JWKS & Software",jwksUri:"URI JWKS",jwks:"JWKS",softwareId:"ID del software",softwareVersion:"Versión del software",clientSecretExpiresAt:"Secreto del cliente expira en",clientIdIssuedAt:"ID de Cliente Emitido el",oauthAppDetails:"Detalles de la aplicación OAuth",oauthEndpoints:"Puntos finales de OAuth",authorizationEndpoint:"Punto final de autorización",tokenEndpoint:"Punto final de token",userinfoEndpoint:"Punto final de información del usuario",registrationEndpoint:"Punto final de registro",endSessionEndpoint:"Fin de la sesión Endpoint",validate:{clientName:"Se requiere el nombre de la app",clientNameMinLength:"El nombre de la app debe tener al menos 3 caracteres",clientUri:"Se requiere la URL de la página de inicio",clientUriInvalid:"Ingrese una URL válida que comience con http:// o https://",redirectUris:"Se requiere URL de callback de autorización",redirectUrisInvalid:"Ingrese URLs válidas que comiencen con http:// o https://",contacts:"Ingrese direcciones de correo electrónico válidas separadas por comas",tosUri:"Se requiere la URL de los Términos del Servicio",tosUriInvalid:"Por favor, ingrese una URL válida",policyUri:"Se requiere la URL de la política",policyUriInvalid:"Ingrese una URL válida",jwksUri:"Se requiere URI JWKS",jwksUriInvalid:"Ingrese una URL válida",jwks:"Se requiere JWKS",jwksInvalid:"Introduzca una JWKS válida"},input:{clientName:"Nombre de la app",clientNamePlaceholder:"Algo que los usuarios reconocerán y confiarán",clientUri:"URL de inicio",clientUriPlaceholder:"https://your-app.com",redirectUris:"URL de devolución de autorización",redirectUrisPlaceholder:"https://your-app.com/callback",contacts:"Correos de contacto",contactsPlaceholder:"admin@your-app.com, support@your-app.com",permissions:"Selecciona los permisos que necesitas",tosUri:"URL de Términos de Servicio",tosUriPlaceholder:"https://your-app.com/terms",policyUri:"URL de la Política",policyUriPlaceholder:"https://your-app.com/policy",jwksUri:"URI JWKS",jwksUriPlaceholder:"https://your-app.com/jwks",jwks:"JWKS",jwksPlaceholder:"Conjunto de claves web JSON",expireTime:"Establezca una fecha de caducidad para el secreto del cliente para una mejor seguridad"},helperText:{clientName:"Algo que los usuarios reconocerán y confiarán.",clientUri:"La URL completa a la página de inicio de tu aplicación",redirectUris:"URL de callback de tu aplicación",contacts:"El correo electrónico del responsable de la aplicación.",tosUri:"La URL de los términos de servicio de tu aplicación.",policyUri:"La URL de la política de privacidad de tu aplicación.",read:"Lee nuestra",document:"Documentación OAuth",more:"Para más información."},delete:{title:"Eliminar cliente OAuth",description:"¿Estás seguro de que quieres eliminar este cliente OAuth {clientName}?"},register:"Crear una nueva aplicación OAuth",requiredInformation:"Información requerida",optionalInformation:"Información opcional",registerButton:"Crear",logo:"Logo",openRegistration:"Registro Abierto",openidConfiguration:"Configuración OpenID",createUser:"Creado por",update:"Actualizar aplicación OAuth",listTitle:"Habilitar acceso seguro de terceros con aplicaciones OAuth",tooltipTitle:"Utilice el servidor OAuth integrado de su app para autorizar aplicaciones externas con protocolos estándar del sector. Faculte a los usuarios con una autenticación segura y fluida y un control de acceso delegado.",empty:"No se agregaron datos"}},expiration:{mobile:{tips:{success:"Hola, {validity}",warning:"{validity}",error:"Expirado"},loadFailed:"Reintentar!"},desktop:{tips:{success:"La suscripción expirará después de {validity}",warning:"La suscripción caducará después de {validity}",error:"Suscripción vencida"},loading:"Cargar suscripción...",loadFailed:"No se pudo cargar la información de la suscripción, ¡por favor intente de nuevo!",nextInvoice:"Próxima factura: {date}"}},analytics:{trend:"Tendencias",detail:"Descomposición",traffic:{totalRequests:"Total de Solicitudes",validRequests:"Solicitudes exitosas",failedRequests:"Solicitudes fallidas",uniqueVisitors:"Visitantes únicos",uniqueFiles:"URLs únicas",uniqueReferrers:"Referentes únicos",uniqueNotFound:"Único 404",uniqueStaticFiles:"Archivos estáticos únicos",logSize:"Tamaño del registro",bandwidth:"Ancho de banda"},runtime:"Tiempo de ejecución"},federated:{inviteJoinFederatedLogin:"Invitar a unirse a inicio de sesión federado",inviteJoinFederatedLoginDescription:"Copia la siguiente dirección y complétala en la solicitud donde necesitas unirte para solicitar el inicio de sesión federado.",federatedLogin:"Inicio de sesión federado",joinFederatedLogin:"Unirse a inicio de sesión federado",joinFederatedLoginDescription:"Por favor ingrese la dirección de inicio de sesión federada proporcionada por Master Blocklet para unirse al inicio de sesión federado",quitFederatedLogin:"Salir del inicio de sesión federado",quitFederatedLoginDescription:"Después de salir de la sesión federada, el inicio de sesión normal siempre está disponible",federatedJoinAppUrl:"Unirse a la aplicación de inicio de sesión federado en appUrl",federatedJoinAppUrlRequired:"Por favor ingrese el inicio de sesión federado unirse a la appUrl",failedToGetFederatedLoginAppUrl:"No se pudo obtener la URL de inicio de sesión federado de la aplicación",federatedJoinAppUrlInvalid:"La appUrl del inicio de sesión federado no es válida",siteDetail:"Detalles del sitio",approveToJoinLogin:"Aprobar unirse a inicio de sesión federado",approve:"Habilitar inicio de sesión",revoke:"Desactivar inicio de sesión",enableFederatedLogin:"Habilitar inicio de sesión federado",disableFederatedLogin:"Deshabilitar inicio de sesión federado",enableFederatedLoginDescription:"Después de habilitar el inicio de sesión federado, este sitio se iniciará automáticamente",disableFederatedLoginDescription:"Después de desactivar el inicio de sesión federado, este sitio no se iniciará sesión automáticamente",enableFederatedAutoLogin:"Activar inicio de sesión automático",enableFederatedAutoLoginDescription:"Tras habilitar el inicio de sesión automático, si actualmente hay un estado de inicio de sesión unificado, el sitio iniciará sesión automáticamente con la identidad del inicio de sesión federado.",disableFederatedAutoLogin:"Deshabilitar inicio de sesión automático",disableFederatedAutoLoginDescription:"Después de desactivar el inicio de sesión automático, el sitio no iniciará sesión automáticamente con la información del usuario registrado de inicio de sesión unificado, y aún puedes elegir iniciar sesión manualmente con la identidad de inicio de sesión federado.",info:{appId:"APP HIZO",appPid:"ID permanente",migratedFrom:"También conocido como",appName:"Nombre del Blocklet",appDescription:"Descripción del bloque",appUrl:"URL del Blocklet",appLogo:"Logo de Blocklet",did:"Bloquear DID",serverId:"Identificador del servidor Blocklet",serverVersion:"Versión del servidor Blocklet",version:"Versión de Blocklet",appliedAt:"Aplica en",status:"Estado"},status:{pending:"Pendiente",approved:"Aprobado",rejected:"Rechazado",revoked:"Revocado"},disbandFederatedLogin:"Cerrar sesión federada",disbandFederatedLoginDescription:"Después de disolver la conexión federada, todos los sitios miembros abandonarán automáticamente la conexión federada.",syncConfig:"Sincronizar configuración de sitios federados",quitMember:"Eliminar",quitMemberDescription:"Eliminar miembros específicos del grupo del sitio",removeFederatedLogin:"Eliminar miembro",removeFederatedLoginDescription:"Después de eliminar miembros específicos del grupo del sitio, los miembros solo pueden usar el inicio de sesión normal.",title:"¿Qué es el inicio de sesión federado?",description:"El inicio de sesión federado se puede lograr mediante inicio de sesión único en múltiples sistemas. Puedes invitar a otros equipos a unirse al inicio de sesión federado o unirse proactivamente a la plataforma de inicio de sesión federado de otras organizaciones.",link:"Ver Documento"},optionsOrder:{1:"Opción Uno",2:"Opción Dos"},securityRule:{title:"Regla de seguridad",sortByDescription:"Ordenar por prioridad coincidente",add:"Agregar regla de seguridad",edit:"Editar regla de seguridad",view:"Ver la regla de seguridad",form:{precede:"Precede",pathPattern:"Patrón de ruta",pathPatternPlaceholder:"Introduce el patrón de ruta",pathPatternErrorText:"El patrón de ruta no es válido",accessPolicyOrResponseHeaderPolicyRequired:"Se requiere una política de acceso o una política de encabezado de respuesta",accessPolicy:"Política de acceso",accessPolicyPlaceholder:"Seleccionar política de acceso",accessPolicyHelperText:"Selecciona la política de acceso",responseHeaderPolicy:"Política de encabezado de respuesta",responseHeaderPolicyPlaceholder:"Selecciona la política de encabezados de respuesta",responseHeaderPolicyHelperText:"Selecciona una política de encabezados de respuesta",remark:"Observar",remarkPlaceholder:"Por favor, ingresa el comentario",component:"Componente",componentPlaceholder:"Por favor, elija componente"},delete:{title:"¿Eliminar regla de seguridad?",description:"Después de eliminar una regla de seguridad, la regla ya no tendrá efecto"},useless:"Regla de seguridad inútil"},responseHeaderPolicy:{title:"Política de encabezado de respuesta",add:"Agregar política de encabezado de respuesta",edit:"Editar la directiva del encabezado de respuesta",view:"Política de cabecera de respuesta de vista",form:{name:"Nombre",namePlaceholder:"Por favor, introduce tu nombre",description:"Descripción",descriptionPlaceholder:"Introduzca la descripción",cors:{origin:"Origin",originPlaceholder:"Admite los siguientes formatos de dominio: http://www.example.com, http://*.example.com, http://www.example.com:8080, * (no se recomienda el comodín)",originHelperText:"El nombre de dominio empieza por http:// o https://, uno por línea, un comodín * por línea",methods:"Métodos",allowedHeaders:"Cabeceras permitidas",allowedHeadersPlaceholder:"Se recomienda rellenar *, admite entradas de varias líneas",allowedHeadersHelperText:"Dile al servidor qué encabezados de petición HTTP personalizados pueden usarse en la próxima petición al enviar una petición OPTIONS, como: x-blocklet-version",exposedHeaders:"Cabeceras expuestas",exposedHeadersPlaceholder:"Admite entrada de varias líneas",exposedHeadersHelperText:"Configura Expose-Headers, por ejemplo: X-Content-Range",maxAge:"Max-Age (segundos)",maxAgeHelperText:"El período de validez del resultado obtenido por la solicitud de OPCIONES, el cual debe ser un entero positivo",optionsSuccessStatus:"Opciones Éxito Estado",preflightContinue:"Continuar con la revisión previa",credentials:"Credenciales",smartModeHelperText:"Añade automáticamente todos los nombres de dominio de la aplicación actual, así como los nombres de dominio del grupo de sitio de inicio de sesión federado",smartMode:"Modo Inteligente"},originOverride:"Anulación de origen",originOverrideHelperText:"¿Permitir que la lógica de la aplicación invalide esta cabecera de respuesta?"},delete:{title:"¿Eliminar la política de encabezado de respuesta?",description:"Después de eliminar una política de encabezado de respuesta, la política no surtirá efecto"}},accessPolicy:{title:"Política de acceso",add:"Agregar política de acceso",edit:"Editar política de acceso",view:"Ver política de acceso",form:{name:"Nombre",namePlaceholder:"Introduce un nombre",description:"Descripción",descriptionPlaceholder:"Por favor, introduce la descripción",roles:"Roles de acceso",accessType:"Tipo de acceso"},delete:{title:"¿Eliminar política de acceso?",description:"La política dejará de surtir efecto después de quitarla"}},didConnect:{genKeyPair:{title:"Generar DID de Blocklet",scan:"Utilice los siguientes métodos para generar un Blocklet DID",success:"Se generó correctamente el DID de Blocklet",successDesc:"El Blocklet DID se ha generado correctamente (Las publicaciones posteriores requieren la cartera que generó el DID para operar)"},common:{invalidSession:"Sesión inválida",invalidSessionDesc:"La sesión no existe o ha expirado",connectionError:"Fallo de conexión"}},pagination:{next:"Página siguiente",previous:"Página anterior",rowsPerPage:"Por página:",displayRows:"de",jumpToPage:"Ir a la página:"},webhookEndpoint:{createWebhook:"Crear Webhook",createWebhookTitle:"Crear Webhook",selectAllEvents:"Seleccionar todos los eventos",selectAllEventsTooltip:"Seleccionar todos los eventos disponibles",selectedEventsCount:"{count} eventos seleccionados",selectedCount:"{count} seleccionados",eventsCount:"{count} eventos",saveWebhook:"Crear Webhook",noAvailableEvents:"No hay eventos disponibles",loadingEvents:"Cargando eventos...",loadingError:"Error al cargar eventos: {message}",title:"Webhooks",noWebhooksAdded:"No hay webhooks agregados",validation:{urlRequired:"Se requiere URL",urlInvalid:"Ingrese una URL válida",descriptionRequired:"Se requiere descripción",eventRequired:"Selecciona al menos un evento"},hosted:"Puntos finales alojados",add:"Crear Webhook",addTip:"Configura tu endpoint webhook para recibir eventos en vivo",listen:"Escuchar para",version:"Versión de API",attempts:"Intentos de Webhook",url:{label:"URL",description:"URL del punto final de Webhook"},description:{label:"Descripción",description:"Descripción opcional del uso de este punto final"},events:{label:"Seleccionar eventos para escuchar",description:"Hola, {name}."},disabled:"Deshabilitado",enabled:"Activado",disable:"Deshabilitar",enable:"Habilitar",editWebhookTitle:"Actualizar Webhook",updateWebhook:"Actualizar Webhook",waitingForEvents:"Esperando eventos...",loadingMore:"Cargando más...",loadMore:"Cargar más",response:"Respuesta",request:"Solicitud",eventData:"Datos del evento",deleteWebhook:{title:"¿Eliminar Webhook?",description:"Después de eliminar un webhook, este dejará de recibir eventos"},success:"Éxito",listTitle:"Enviar datos de eventos en tiempo real con Webhooks",tooltipTitle:"Conecta tu app a sistemas externos sin problemas enviando notificaciones de eventos en tiempo real. Los webhooks permiten integraciones potentes y flujos de trabajo automatizados en tus herramientas y servicios.",triggeredFrom:"Este webhook se activó desde un intento"},description:{environment:"Las variables actuales surtirán efecto cuando {name} se esté ejecutando. Necesita reiniciar la aplicación para que surtan efecto.",preferences:"Las variables actuales surtirán efecto cuando {name} se esté ejecutando. Los cambios se aplicarán después de guardar, no se requiere reiniciar la aplicación."},preferencesFor:"Preferencias para {name}",environmentFor:"Entornos para {name}",accessKey:"Clave de acceso",embed:{iconTip:"Haga clic para ver los detalles de la suscripción"},command:"Comando",mcp:{listTitle:"Accede a tu Blocklet desde clientes MCP",tooltipTitle:"Explora la lista de servidores MCP compatibles con este Blocklet, selecciona un servidor para ver al instante los comandos de conexión que necesitas para unirte desde tu cliente.",endpoint:"Punto final MCP",available:"Servidores MCP disponibles",noServer:"Servidor MCP no disponible"},installCommand:"Comando de instalación",label:{add:"Agregar",apply:"Aplicar etiquetas",manage:"Gestionar etiquetas",title:"Etiquetas",description:"Descripción",systemLabel:"Etiqueta del sistema",create:"Crear etiqueta",edit:"Editar etiqueta",name:"Nombre",slug:"Slug",parentLabel:"Etiqueta principal",color:"Color",search:"Buscar etiquetas",saveSuccess:"Etiqueta guardada con éxito",delete:"Eliminar",deleteTip:'¿Eliminar "{name}"?',deleteSuccess:"Etiqueta eliminada con éxito",reassignTip:"Si esta etiqueta está en uso, reasigne sus elementos a otra etiqueta.",reassignTo:"Elegir una nueva etiqueta",recently:"Reciente",noMatching:"No se encontraron etiquetas",noLabels:"No hay etiquetas creadas aún",filter:"Filtrar etiquetas",createNewLabel:'Crear nueva etiqueta "{name}"',actionLabel:"Asignar etiquetas en lote",selectLabels:"Seleccionar etiquetas",deleteDesc:"Después de eliminar una etiqueta, la etiqueta ya no se utilizará. ¿Estás seguro de que quieres eliminar {name}?",nameRequired:"El título es obligatorio.",nameMinLength:"El título debe tener al menos 1 carácter.",nameMaxLength:"El título debe tener menos de 64 caracteres.",slugRequired:"El slug es obligatorio.",slugMinLength:"Slug debe tener al menos 1 carácter",slugMaxLength:"Slug debe ser menor de 128 caracteres.",descriptionMaxLength:"La descripción debe tener menos de 255 caracteres.",colorRequired:"El color es obligatorio",colorInvalid:"El color es inválido"},environmentTips:{delete:"¿Estás seguro de que quieres eliminar esta fila?",deleteForbidden:"Solo se puede cambiar la clave del entorno personalizado."},authentication:{emailLoginDescription:"El inicio de sesión por correo electrónico utilizará la Configuración de Notificaciones para enviar enlaces de inicio de sesión o códigos de inicio de sesión a los usuarios.",emailNotificationRequired:"Asegúrate de haber habilitado la Notificación por Correo Electrónico.",chooseProvider:"Método de inicio de sesión",chooseProviderPlaceholder:"Selecciona un método de inicio de sesión para configurar",addLoginProvider:"Agregar Método de Inicio de Sesión",updateLoginProvider:"Actualizar método de inicio de sesión: {provider}",alreadyBindOAuth:"Ya se ha vinculado el inicio de sesión de terceros",alreadyBindWallet:"Ya vinculaste la billetera DID",didConnectSettings:"Visualización y Marca",commonSettings:"Configuraciones Comunes",sessionSettings:"Seguridad de Sesión",federated:"Inicio de sesión federado",loginProviders:"Métodos de inicio de sesión",oauth:"Inicio de sesión de terceros",save:"Guardar",thirdPartyLogin:"Iniciar sesión con terceros",viewDocument:"Ver Documentación",oauthCallbackUrl:"URL de Callback",gotoEmailNotification:"Abrir configuración de notificaciones de correo electrónico",deleteLoginProvider:"Eliminar Proveedor de Inicio de Sesión {provider}",deleteLoginProviderDescription:"Después de eliminar el proveedor de inicio de sesión, los usuarios no podrán iniciar sesión usando {provider}. ¿Está seguro de que desea continuar?",auth0:{title:"Auth0",enable:"Activar Auth0 inicio de sesión",domain:"Dominio",domainDescription:"Se requiere el dominio de Auth0",clientId:"ID de cliente",clientIdDescription:"Se requiere el ID de cliente de la aplicación Auth0 OAuth",clientSecret:"Secreto del Cliente",clientSecretDescription:"Se requiere el Client Secret de la aplicación OAuth de Auth0"},github:{title:"Github",enable:"Habilitar inicio de sesión en Github",clientId:"ID de cliente",clientIdDescription:"Se requiere el ID de cliente de la aplicación de Github OAuth",clientSecret:"Secreto del Cliente",clientSecretDescription:"Se requiere el Client Secret de la aplicación de Github OAuth"},twitter:{title:"X",enable:"Habilitar X login",clientId:"ID de cliente",clientIdDescription:"Se requiere el Client ID de la aplicación X OAuth",clientSecret:"Secreto del Cliente",clientSecretDescription:"Se requiere el secreto de cliente de la aplicación X OAuth"},google:{title:"Google",enable:"Habilitar Google login",clientId:"ID de cliente",clientIdDescription:"Se requiere el ID de cliente de la aplicación Google OAuth",clientSecret:"Secreto del Cliente",clientSecretDescription:"Se requiere el Client Secret de la aplicación Google OAuth"},apple:{title:"Manzana",enable:"Habilitar inicio de sesión con Apple",teamId:"ID de equipo",teamIdDescription:"Se requiere el ID del equipo de la aplicación Apple OAuth",serviceId:"ID de servicio",serviceIdDescription:"Se requiere el ID de servicio de la aplicación OAuth de Apple",keyId:"ID de clave",keyIdDescription:"Se requiere el ID de clave de aplicación Apple OAuth",authKey:"Clave de autenticación",authKeyDescription:"Se requiere la clave de autenticación de la aplicación Apple OAuth",bundleId:"ID del paquete",bundleIdDescription:"Se requiere el Bundle ID de la aplicación OAuth de Apple"},wallet:{showQrcode:"Mostrar código QR"},didConnect:{showDidColor:"Mostrar color DID Connect",showAppInfo:"Mostrar información de Blocklet",basicSettings:"Configuración básica",customSettings:"Ajustes personalizados",configDialogTitle:"Texto emergente de configuración de autenticación",addNewAction:"Agregar acción",addLanguage:"Agregar idioma",selectLanguage:"Selecciona un idioma...",actionNameError:"Solo letras minúsculas y guiones permitidos; no puede empezar con un guión.",actionNameDuplicate:"El nombre de acción ya existe"}}};export{e as default};
|