@abtnode/blocklet-services 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/dist/assets/{AdapterDayjs-BI3dme25.js → AdapterDayjs-CYW0YvmK.js} +1 -1
- package/dist/assets/{Google-BMSeyXdi.js → Google-DKRt92nm.js} +1 -1
- package/dist/assets/{access-control-CSfPgD_B.js → access-control-RI6LQbSm.js} +1 -1
- package/dist/assets/{actions-Ng-YRTer.js → actions-BlWED76c.js} +2 -2
- package/dist/assets/{actions-Dktj9pEF.js → actions-DydkTgA0.js} +1 -1
- package/dist/assets/{add-component-core-DOIm-W83.js → add-component-core-nc1ps0ni.js} +32 -32
- package/dist/assets/{add-resource-_wuuBiJJ.js → add-resource-BVOdOQSW.js} +1 -1
- package/dist/assets/{addon-N_sS-Sx6.js → addon-DfWedLEC.js} +1 -1
- package/dist/assets/{advanced-BhbxG-_n.js → advanced-CuKHqbLO.js} +2 -2
- package/dist/assets/{aigne-DElJAbjP.js → aigne-6nMSoyeQ.js} +1 -1
- package/dist/assets/{appearance-D71HSeGD.js → appearance-C9TkbSjV.js} +1 -1
- package/dist/assets/{ar-BHqjWgUQ.js → ar-DOhYGTlW.js} +1 -1
- package/dist/assets/{audit-logs-Ci_HlT4m.js → audit-logs-DKGke9hI.js} +2 -2
- package/dist/assets/{authorize-DQERA3Vv.js → authorize-DkSqywe8.js} +1 -1
- package/dist/assets/{base-chart-DWXZOkNE.js → base-chart-DcZV4ZCI.js} +1 -1
- package/dist/assets/{base32-Cpvj2sD4.js → base32-7iZvvdX8.js} +1 -1
- package/dist/assets/{bind-account-BIzFrnLk.js → bind-account-DOwM9Nhe.js} +1 -1
- package/dist/assets/branding-Cak2s8bn.js +1 -0
- package/dist/assets/{branding-BHJqY7Mz.js → branding-CwSyd5WC.js} +1 -1
- package/dist/assets/{branding-DAdwbyWZ.js → branding-lcfxmmPp.js} +1 -1
- package/dist/assets/{bundle-avatar-sDqev1Fh.js → bundle-avatar-DwiOyeMO.js} +1 -1
- package/dist/assets/button-uUU4Wycr.js +1 -0
- package/dist/assets/{click-to-copy-RBTqACSW.js → click-to-copy-BgIYUMoo.js} +1 -1
- package/dist/assets/{collapse-DWmyzfnW.js → collapse-RMuUWnK3.js} +1 -1
- package/dist/assets/{complete-D6XDZtnV.js → complete-Udiv_yFp.js} +1 -1
- package/dist/assets/{component-B2qSKMGx.js → component-CuKviNC8.js} +2 -2
- package/dist/assets/{config-oF-A1tKe.js → config-6IwEgT3b.js} +1 -1
- package/dist/assets/{config-Ca5tnO9j.js → config-CJwxv2uK.js} +1 -1
- package/dist/assets/{config-fYkZxdEr.js → config-D1OcHGlN.js} +4 -4
- package/dist/assets/{config-navigation-BEYJ5bSz.js → config-navigation-hDihVsjx.js} +2 -2
- package/dist/assets/{config-space-HmsYCb6s.js → config-space-DfstlHnF.js} +1 -1
- package/dist/assets/{confirm-DQYDHHdS.js → confirm-CdVn5WdC.js} +1 -1
- package/dist/assets/{connect-COLwEMSx.js → connect-CT2vMz6l.js} +3 -3
- package/dist/assets/{connect-ydb7rKXe.js → connect-DA7RO2yv.js} +1 -1
- package/dist/assets/{connect-BeWeBwCA.js → connect-Dy0Y8HRB.js} +1 -1
- package/dist/assets/{connect-to-C3ac4B-g.js → connect-to-CQMUbQkH.js} +1 -1
- package/dist/assets/{content-layout-CanSZTqf.js → content-layout-Dlmn5DW6.js} +1 -1
- package/dist/assets/{create-passport-svg-De1vqcmo.js → create-passport-svg-hldNORaB.js} +1 -1
- package/dist/assets/{createClass-CRUn7w67.js → createClass-CgfWUrk8.js} +1 -1
- package/dist/assets/{dashboard-BZiea8Z_.js → dashboard-BvI3ii8Z.js} +2 -2
- package/dist/assets/{de-QUGQFv2K.js → de-CtKPdGk6.js} +1 -1
- package/dist/assets/{delete-confirm-CpaOkuin.js → delete-confirm-CkiUXocp.js} +1 -1
- package/dist/assets/{did-address-DRYM96gB.js → did-address-CG36eCOx.js} +1 -1
- package/dist/assets/{domain-D9Kc4Rgt.js → domain-CDTeLbkZ.js} +1 -1
- package/dist/assets/{domain-action-card-ugKl692S.js → domain-action-card-kMPYS2Nj.js} +1 -1
- package/dist/assets/domains-TI6o1CvX.js +1 -0
- package/dist/assets/{email-DDyG3qPR.js → email-DHRHueET.js} +2 -2
- package/dist/assets/{empty-spinner-ChYvCNCV.js → empty-spinner-DB1GKIOS.js} +1 -1
- package/dist/assets/engine-D_fEFx9_.js +1 -0
- package/dist/assets/{es-C4w6cL07.js → es-BSYtSZPg.js} +1 -1
- package/dist/assets/{exchange-passport-DoiXZo5M.js → exchange-passport-Cc872mjQ.js} +1 -1
- package/dist/assets/{fallback-CZRO9TTQ.js → fallback-D-IHOW-7.js} +1 -1
- package/dist/assets/{form--iZWaH7Y.js → form-Co-tgocU.js} +1 -1
- package/dist/assets/{form-text-input-Cs-LuCu0.js → form-text-input-CPLafaTk.js} +1 -1
- package/dist/assets/{form-wrapper-EixE0Jkw.js → form-wrapper-kWYD3nZz.js} +1 -1
- package/dist/assets/{fr-Bq3UipEu.js → fr-C35fi7h9.js} +1 -1
- package/dist/assets/{fuel-C85y6XSK.js → fuel-BFx1ShM2.js} +1 -1
- package/dist/assets/{gen-access-key-DxF-VBeV.js → gen-access-key-DrgLVRbm.js} +1 -1
- package/dist/assets/{gen-simple-access-key-Cxq1_uy6.js → gen-simple-access-key-B24d6k7g.js} +1 -1
- package/dist/assets/get-safe-url-beob4f2C.js +1 -0
- package/dist/assets/{hi-DGZy0DLh.js → hi-5fpYJkiW.js} +1 -1
- package/dist/assets/{home-EzPPxjBW.js → home-Dw18IODa.js} +1 -1
- package/dist/assets/{id-DOzDilAf.js → id-DoVb0JYr.js} +1 -1
- package/dist/assets/{iframe-C5nvJ0m0.js → iframe-DUzp97tk.js} +1 -1
- package/dist/assets/{index-B3ArnS-X.js → index--WQuhwJL.js} +1 -1
- package/dist/assets/{index-Cw8Yly1u.js → index-2M4w6J9r.js} +1 -1
- package/dist/assets/{index-D3fA5iF-.js → index-3H6a5edM.js} +1 -1
- package/dist/assets/{index-_uJPC7_n.js → index-8RHrVCC6.js} +1 -1
- package/dist/assets/{index-BM9QepzF.js → index-B-8044Gs.js} +22 -11
- package/dist/assets/{index-Ba_SJ3UV.js → index-B6l4xGy5.js} +2 -2
- package/dist/assets/{index-CbZQvtgh.js → index-B9FojAjj.js} +1 -1
- package/dist/assets/{index-BQFgfBFX.js → index-BOPR4Iyc.js} +2 -2
- package/dist/assets/{index-VlFqUdI2.js → index-BUhEyicQ.js} +1 -1
- package/dist/assets/{index-DGU5RA0-.js → index-BeunkI-Z.js} +3 -3
- package/dist/assets/{index-_bvucGkF.js → index-Bo9KtpTY.js} +1 -1
- package/dist/assets/{index-r7svI4rK.js → index-Bpic07NM.js} +7 -7
- package/dist/assets/{index-BuucS_rQ.js → index-C1fKsLzf.js} +1 -1
- package/dist/assets/{index-D_ymA2Th.js → index-C4ZzROeE.js} +5 -5
- package/dist/assets/{index-sb6EjUcD.js → index-CEJb82tA.js} +1 -1
- package/dist/assets/{index-Ca33rdd_.js → index-CXp5SI_f.js} +82 -82
- package/dist/assets/{index-zkaWHEAS.js → index-C_kNXHsF.js} +1 -1
- package/dist/assets/{index-DvQIPWQ6.js → index-Cax1AxL9.js} +1 -1
- package/dist/assets/{index-Ca5zgzpl.js → index-CfvGuvbD.js} +1 -1
- package/dist/assets/{index-BbO4pSmm.js → index-CqCXPf7W.js} +1 -1
- package/dist/assets/{index-p0MfrvgW.js → index-Cx0E03Bs.js} +1 -1
- package/dist/assets/{index-CL5ZGYlc.js → index-D3BuekEe.js} +3 -3
- package/dist/assets/{index-D4_8N2le.js → index-D6pCyJv8.js} +1 -1
- package/dist/assets/{index-Ddl9fWMP.js → index-DFUM0Pvk.js} +1 -1
- package/dist/assets/{index-B3fG443w.js → index-DH4rC-7M.js} +1 -1
- package/dist/assets/{index-B2PeJoug.js → index-DKzBOJCu.js} +2 -2
- package/dist/assets/index-DL0wTcgx.js +1 -0
- package/dist/assets/{index-C9V4aWeM.js → index-DWHFecw2.js} +4 -4
- package/dist/assets/{index-Dxb3MonW.js → index-DcW3jqfL.js} +1 -1
- package/dist/assets/{index-CxOxF1pg.js → index-Di2nSesc.js} +1 -1
- package/dist/assets/{index-CiCryHDZ.js → index-DqcciDRh.js} +2 -2
- package/dist/assets/{index-DCxNOCc2.js → index-VKjWmvRV.js} +1 -1
- package/dist/assets/{index-DVOweIMx.js → index-Vf51dp11.js} +1 -1
- package/dist/assets/{index-2AyCotIy.js → index-ZzcJ7eKO.js} +1 -1
- package/dist/assets/{index-Bwibx9MU.js → index-bEFOmVth.js} +1 -1
- package/dist/assets/{info-outline-rounded-DVdLJtdi.js → info-outline-rounded-DlgANjBB.js} +1 -1
- package/dist/assets/{invitation-CUluW5mi.js → invitation-BP8hOEFv.js} +1 -1
- package/dist/assets/invitations-C8aZLxdl.js +3 -0
- package/dist/assets/{invite-zC3nU84H.js → invite-Cd5zEHFb.js} +1 -1
- package/dist/assets/{issue-passport-B_pYDft0.js → issue-passport-D7zqv3Al.js} +1 -1
- package/dist/assets/{item-DoUn7xhc.js → item-DNj7ORqk.js} +1 -1
- package/dist/assets/{ja-DMq-YXDX.js → ja-DZPUwZ9l.js} +1 -1
- package/dist/assets/{ko-BrYbXurh.js → ko-q4i4r9g6.js} +1 -1
- package/dist/assets/{landing-page-BJAji-kI.js → landing-page-JLA-ZD1t.js} +1 -1
- package/dist/assets/{launch-result-message-B2nhmkKt.js → launch-result-message-DJqF-slD.js} +1 -1
- package/dist/assets/{layout-CydCBGqn.js → layout-Cwvm7lmD.js} +1 -1
- package/dist/assets/{list-BIwaCPhs.js → list-3MUy-8Ol.js} +2 -2
- package/dist/assets/{list-CO8Xp7iX.js → list-BSXHuqLM.js} +1 -1
- package/dist/assets/{list-header-DQZTNnUc.js → list-header-BEZSwSji.js} +1 -1
- package/dist/assets/localization-Dond4H78.js +1 -0
- package/dist/assets/{log-JZXyzrRA.js → log-Bq445Z1e.js} +1 -1
- package/dist/assets/logger-CCAAJ2Xo.js +1 -0
- package/dist/assets/{login-CU5Tw5QB.js → login-dc2t9Qyo.js} +1 -1
- package/dist/assets/{login-method-item-KhJ672kA.js → login-method-item-CyTsqz88.js} +1 -1
- package/dist/assets/{login-oauth-callback-Bz7N73Sg.js → login-oauth-callback-Bext19kc.js} +1 -1
- package/dist/assets/{logo-uploader-DjKJkvts.js → logo-uploader-CyZuvhwV.js} +1 -1
- package/dist/assets/{lost-passport-CyJVtH1V.js → lost-passport-BiYg3QQI.js} +1 -1
- package/dist/assets/{metadata-CkzdOpl3.js → metadata-B2-Ltdko.js} +1 -1
- package/dist/assets/{nav-menu-5M0Q4jYU.js → nav-menu-DSdXRbfg.js} +1 -1
- package/dist/assets/{open-window-DphH3aTv.js → open-window-Dyu79ome.js} +1 -1
- package/dist/assets/over-due-invoice-payment-DzUsy6q0.js +1 -0
- package/dist/assets/{overview-CGIG2I_w.js → overview-0TBmi-_i.js} +1 -1
- package/dist/assets/{page-header-B0HpJClf.js → page-header-qdK3sAJh.js} +1 -1
- package/dist/assets/{passport-DKYg_d4G.js → passport-BhEaZ-sr.js} +1 -1
- package/dist/assets/{passport-item-CjcqN_g-.js → passport-item-DHwif94N.js} +1 -1
- package/dist/assets/{permission-DhyiLNfC.js → permission-CvrrGfG6.js} +1 -1
- package/dist/assets/preferences-BBSWzZiT.js +1 -0
- package/dist/assets/profile-embed-shcOdRUI.js +1 -0
- package/dist/assets/{provider-icon-DX-QfJQN.js → provider-icon-DO2PqSth.js} +1 -1
- package/dist/assets/{pt-Dl6732JN.js → pt-BFCHl6F1.js} +1 -1
- package/dist/assets/{publish-resource-vCC9AfJK.js → publish-resource-CMuHIOUf.js} +1 -1
- package/dist/assets/{react-beautiful-dnd.esm-bkXlrjYw.js → react-beautiful-dnd.esm-CWJ5I9Zv.js} +1 -1
- package/dist/assets/{react-stripe.esm-BBCEegrE.js → react-stripe.esm-B-FTN8ep.js} +1 -1
- package/dist/assets/{required-11pmtzQr.js → required-DnQpCGsD.js} +1 -1
- package/dist/assets/{ru-CVUeN9AX.js → ru-CSTl62kK.js} +1 -1
- package/dist/assets/{runtime-BjKYEBG_.js → runtime-B_ZLP4FF.js} +1 -1
- package/dist/assets/sdk-CktKu_IW.js +1 -0
- package/dist/assets/{section-ewv0pNWr.js → section-CZylgxjz.js} +1 -1
- package/dist/assets/{security-Xrnc8Gqe.js → security-DHRU8k0u.js} +1 -1
- package/dist/assets/{session-lE2gmzzF.js → session-Bp3LV7zJ.js} +1 -1
- package/dist/assets/{setup-p5LUFpYK.js → setup-B6-Ei_3X.js} +1 -1
- package/dist/assets/{shorten-label-1iJcvGQT.js → shorten-label-CuBHsWUR.js} +1 -1
- package/dist/assets/{simple-select-BKXEgxog.js → simple-select-nI-W90c_.js} +1 -1
- package/dist/assets/{spaces-Ckljlc4d.js → spaces-ix8u0ZiI.js} +1 -1
- package/dist/assets/{start-BE-C9MhV.js → start-oRp78RMQ.js} +1 -1
- package/dist/assets/{starting-progress-DC-J-5Os.js → starting-progress-CWp5fTY0.js} +1 -1
- package/dist/assets/{status-DR5t3VVx.js → status-Dn_LKaNp.js} +1 -1
- package/dist/assets/{step-actions-CArEuzNw.js → step-actions-DIZRcnXf.js} +1 -1
- package/dist/assets/{studio-BEzAGvQT.js → studio-CVIa8-XY.js} +1 -1
- package/dist/assets/{switch-CmVFEdik.js → switch-BbyTGEOo.js} +1 -1
- package/dist/assets/{switch-control-DbLHF-NB.js → switch-control-BRjXGc1d.js} +1 -1
- package/dist/assets/{table-tips-DQIh1EQR.js → table-tips-Dvmdodc5.js} +1 -1
- package/dist/assets/{team-7-48iuwj.js → team-BTz28XqK.js} +1 -1
- package/dist/assets/{th-32eBNQes.js → th-D75Dlluo.js} +1 -1
- package/dist/assets/theme-mode-toggle-D3bcd10D.js +1 -0
- package/dist/assets/{traffic-Dwd2RNqG.js → traffic-Cea69sMW.js} +1 -1
- package/dist/assets/{transfer-BwnSX6wY.js → transfer-BydXCVCg.js} +1 -1
- package/dist/assets/unsubscribe-BjAjx-Fl.js +1 -0
- package/dist/assets/{use-app-logo-BzsLZwwK.js → use-app-logo-IRizt64R.js} +1 -1
- package/dist/assets/{use-blocklet-logo-BWPJOOVd.js → use-blocklet-logo-Cf1j7pQz.js} +1 -1
- package/dist/assets/{use-mobile-DgmmfWdl.js → use-mobile-CyUZDIaX.js} +1 -1
- package/dist/assets/{use-mobile-BSL5RsRd.js → use-mobile-DFkQ5N0b.js} +1 -1
- package/dist/assets/{use-mobile-TAIHvgoJ.js → use-mobile-DwGMuJlg.js} +1 -1
- package/dist/assets/{use-server-logo-BLcfNvrR.js → use-server-logo-KZn9RrZd.js} +1 -1
- package/dist/assets/{use-window-close-D2_118dJ.js → use-window-close-Dpj5UcYT.js} +1 -1
- package/dist/assets/{useAsyncRetry-B-Txlvk6.js → useAsyncRetry-C4R9ufi-.js} +1 -1
- package/dist/assets/{useLocalStorage-D6axLnAi.js → useLocalStorage-BQfIniHX.js} +1 -1
- package/dist/assets/{user-center-DBscV1le.js → user-center-6K47tx8j.js} +5 -5
- package/dist/assets/{user-follower-Di51icra.js → user-follower-BwzTutxU.js} +1 -1
- package/dist/assets/{util-DCHBQZpP.js → util-DkTwHdRu.js} +1 -1
- package/dist/assets/{util-ad0rjUA1.js → util-DySzCymV.js} +1 -1
- package/dist/assets/{vendor-arcblock-ivFYo5vP.js → vendor-arcblock-Dll6qxMT.js} +1 -1
- package/dist/assets/{vendor-mui-core-D7t4vMS5.js → vendor-mui-core-CV-FnYH_.js} +1 -1
- package/dist/assets/{vendor-mui-x-BpPw6UfF.js → vendor-mui-x-DwN6dcQH.js} +1 -1
- package/dist/assets/{vendor-ux-Dl3wVbv_.js → vendor-ux-CLT2i3Pv.js} +2 -2
- package/dist/assets/{vi-DF8IinAc.js → vi-D1mKYrmb.js} +1 -1
- package/dist/assets/{wait-connect-DOIonmAv.js → wait-connect-q0_7mz_u.js} +1 -1
- package/dist/assets/wallet-hidden-topbar-joIVZ1nl.js +68 -0
- package/dist/assets/{wizard-CrkxQgBY.js → wizard-C5Kl-g70.js} +1 -1
- package/dist/assets/{wizard-components-BzPyRFRt.js → wizard-components-DQrlaeeW.js} +1 -1
- package/dist/assets/wrap-locale-5DJTJTXP.js +1 -0
- package/dist/assets/{zh-DQQBhbva.js → zh-CJ9vCpmv.js} +1 -1
- 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 +31 -31
- package/dist/assets/branding-D-ShZ8m2.js +0 -1
- package/dist/assets/button-B_Qd9K_t.js +0 -1
- package/dist/assets/domains-B9b2gmbn.js +0 -1
- package/dist/assets/engine-L1SEogaX.js +0 -1
- package/dist/assets/get-safe-url-D4zRnTpF.js +0 -1
- package/dist/assets/index-BoJbHOhC.js +0 -1
- package/dist/assets/invitations-gJ3uAWGN.js +0 -3
- package/dist/assets/localization-BYdi6ljV.js +0 -1
- package/dist/assets/logger-BMHd-C1S.js +0 -1
- package/dist/assets/over-due-invoice-payment-DD_j5vb4.js +0 -1
- package/dist/assets/preferences-DHjRWgwZ.js +0 -1
- package/dist/assets/profile-embed-Gc79_Dhj.js +0 -1
- package/dist/assets/sdk-CXEy5Pgp.js +0 -1
- package/dist/assets/theme-mode-toggle-BltDSXhy.js +0 -1
- package/dist/assets/unsubscribe-CP0mTwWi.js +0 -1
- package/dist/assets/wallet-hidden-topbar-DKISAPb3.js +0 -68
- package/dist/assets/wrap-locale-BJF_SaOe.js +0 -1
|
@@ -2,4 +2,4 @@ const e={setup:{connect:{title:"Configurar servidor Blocklet",scan:"Use os méto
|
|
|
2
2
|
Modo Retrato:
|
|
3
3
|
Proporção: 9:16
|
|
4
4
|
Modo Paisagem:
|
|
5
|
-
Proporção: 16:9`,copyrightDesc:"Usado em: rodapé do site",appUrlDesc:"Usado em: mapa do site e compartilhamento social",advanced:"Configuração Avançada",errorReason:"Falhou ao iniciar o Blocklet, mas você ainda pode acessá-lo clicando no botão abaixo.",nameValidateError:"Inválido: comece com letra/número, 3–129 caracteres, apenas a–z, 0–9, - e _."},overview:{source:"Origem",deployedFrom:"Implantado de",accessControl:"Controle de Acesso",viewInStore:"Ver no estabelecimento"},diskInfo:{empty:"Informações do disco não disponíveis no momento!",appDir:"Diretório de Aplicativos",dataDir:"Diretório de Dados",logDir:"Diretório de logs",cacheDir:"Diretório de cache"},runtimeInfo:{noRunning:"As informações de execução estarão disponíveis quando o bloco estiver em execução!",memoryUsage:"Uso de memória",cpuUsage:"Uso de CPU",uptime:"Tempo de atividade",port:"Porto",processId:"ID do Processo",dataStorage:"Armazenamento de dados"},dist:{downloadLink:"Link de Download",verify:"Verificar"},status:{added:"Adicionado",waiting:"Esperando",downloading:"Baixando",extracting:"Extraindo",installing:"Instalando",upgrading:"Atualizando",installed:"Instalado",created:"Criado",starting:"Começando",running:"Correndo",stopping:"Parar",stopped:"Parado",error:"Erro",deleting:"Deletando",corrupted:"Corrompido",purchasing:"Aguardando a compra",purchased:"Comprado",verifying:"Verificando compra",resource:"Recurso",failWithOldVersion:"Nova versão falhou ao iniciar, Blocklet está rodando na versão antiga.",hasSomeErrors:"{blocklets} não está totalmente em funcionamento, possivelmente devido a problemas ou inicialização pendente."},list:{download:"Baixar",star:"Estrela",searchPlaceholder:"Pesquise por nome do Blocklet ou DID"},component:{container:"Configuração Global",showContainer:"Mostrar Configuração Global",didSpaceConfig:"Configurar DID Spaces",didSpaceConfigTip:"Complete o processo de autorização a seguir para armazenar dados do aplicativo em DID Spaces",didSpaceConnected:"Armazenamento autorizado para: {endpoint}",checkUpdateTitle:"Verificar Atualizações",updateTitle:"Atualizar Componentes",noUpdate:"Não há componentes para atualizar",add:"Adicionar Componente",selectComponent:"Selecionar Blocklet",selectRegistry:"Selecionar Blocklet Store",selectRegistryTip:"Você pode alternar a loja de blocos para ver mais componentes",selectInstance:"Selecione a Instância",selectInstanceTip:"Você pode selecionar uma instância existente ou criar uma nova instância. As instâncias existentes usarão as configurações e dados previamente salvos.",newInstance:"Criar Nova Instância",noComponent:"Nenhum componente",mountPoint:"Qual é o ponto de montagem?",mountPointTip:"Se você definir o ponto de montagem como '/meu-prefixo', todas as solicitações que começarem com esse ponto de montagem serão direcionadas para o componente selecionado",delete:"Excluir Componente",deleteDescription:"Este componente não estará acessível após a exclusão. Confirmar exclusão?",purchase:"Pagamento Necessário",tip:{stopBlocklet:"Por favor, pare de executar o Blocklet primeiro",requiredBy:"O componente é requerido por {name}"},choose:"Escolha",addWithName:"Adicionar Bloco para {name}",installingCanCloseWindowTip:"Instalando componente em segundo plano, você pode fechar esta janela com segurança",installSuccessTip:"Parabéns, o componente foi instalado com sucesso!",missDownloadTokenTip:"Não é possível adicionar componente pago sem um token de download válido",purchaseComponentSecondCheckTip:"Apresente seu NFT de compra de blocklet para continuar",installComponentError:"Ocorreu um erro durante a instalação do componente, por favor, tente novamente",downloadComponentError:"Ocorreu um erro ao baixar o componente, por favor, tente novamente",addComponentTip:{introduction:"Bem-vindo ao Assistente de Adição de Componente",isPurchase:"Você precisa verificar o NFT antes de usar <b>{name}</b> como um componente",belowInformation:"Abaixo estão as informações do componente:",verifyNFT:"Selecione o método de Verificação de NFT, por favor",config:"Por favor, preencha a configuração do componente",environment:"Por favor, preencha o ambiente do componente",fromUrl:"Adicionar Bloquetes a partir do URL",fromUpload:"Adicionar Blocklet a partir do Upload",uploadFailed:"Envio falhou",allowedFileTypes:"Tipos de ficheiros permitidos para carregamento: {types}"},addNext:"Adicione {name}",upgradeNext:"Atualize {name}",setting:"Configurações",noDependencies:"{name} não possui nenhuma dependência",relatedComponents:"Blocos Relacionados",required:"Obrigatório",installed:"Instalado",installingTip:"A instalar o componente, aguarde...",upgrade:"Atualizar",upgradeAvailable:"Atualização Disponível",needBuy:"Necessário Comprar",isOfficial:"Oficialmente Certificado"},router:{urlPath:"URL Path",noRunning:"O blocklet não está atualmente iniciado. Não é possível acessar pelo seguinte endereço!",securitySetting:"Configuração de Segurança",checkUrlAccessible:"Verifique a acessibilidade do endereço",urlInaccessible:"Pode ser devido a problemas na rede, o endereço está temporariamente inacessível",noAccessibleUrl:"URL não acessível",domainLockTooltip:"O Domínio gerado pelo sistema não pode ser editado.",urlLockTooltip:"O caminho do URL gerado pelo sistema não pode ser editado.",showAllDomains:"Mostrar todos os domínios",showAllDIDs:"Mostrar todos os DIDs",currentDomainTip:"Você está acessando a página atual por meio deste domínio"},export:{title:"Exportar o Blocklet",name:"Nome do Pacote",nameTip:"e.g. 'my-blocklet-name' ou '@my-scope/blocklet-name'",result:"O que vem a seguir",exportSource:"Exportar Origem",success:"Blocklet exportado com sucesso",resultTipStart:"Com",resultTipEnd:"Você pode construir e publicar esse bloquete em minutos",uploadedComponentTip:"Os componentes carregados diretamente não podem ser exportados:"},migrate:{title:"Migrar Aplicação",scan:"Conecte sua Carteira DID para gerar um par de chaves para este aplicativo",confirm:"Revise esta operação em sua carteira DID",success:"Sua aplicação foi migrada com sucesso, a página será atualizada em {sec} segundos",intro:{l1:"Clique aqui",l2:"Para migrar sua aplicação para a nova versão (as alterações estão desabilitadas até que a migração seja concluída)",l3:"A aplicação DID será totalmente controlada a partir da sua carteira DID.",l4:"Os dados do aplicativo serão migrados e nenhuma outra alteração é necessária.",l5:"A nova estrutura do aplicativo lhe dará mais flexibilidade ao alterar componentes.",l6:"4. Por favor, não altere os pontos de montagem do componente antes que a nova versão do componente seja lançada."},tip:{duplicate:"Encontre o componente duplicado {name}, por favor exclua os componentes inúteis e migre novamente",running:"Por favor, pare de bloquear antes da migração"}},error:{isRunning:"O Blocklet está em execução, por favor, pare-o primeiro",isInProgress:"Blocklet está em andamento, aguarde até que seja concluído"},publish:{createResource:"Criar Recurso",addResource:"Adicionar Lançamento",productTitle:"Produto",versionTitle:"Versionamento",imgTitle:"Imagens",resourceTitle:"Conteúdo",blockletEmptyTip:"Não há Blocklets aqui",createBlockletTip:"Você pode criar um novo blocklet através dos recursos, componentes e configurações existentes nesta aplicação",createBlocklet:"Novo bloco",componentNotRunning:"O Blocklet {name} não está em execução, por favor, inicie-o primeiro",releaseEmptyTip:"Não há nenhum lançamento aqui",createReleaseTip:"Você pode criar um lançamento do blocklet, juntamente com notas de lançamento e recursos, para que outras pessoas possam usar",createRelease:"Criar lançamento",deleteReleaseTip:"A liberação não pode ser recuperada após exclusão",createBlockletDid:"Criar a partir da Carteira DID",createReleaseSuccess:"Lançamento criado com sucesso",saveDraftSuccess:"Rascunho salvo com sucesso",connect:{title:"Criar DID Blocklet",scan:"Use os seguintes métodos para gerar Blocklet DID",confirm:"Confirmar usando a carteira DID",success:"O DID do Blocklet foi gerado, por favor, continue sua operação"},saveDraft:"Salvar Rascunho",releaseNote:"Nota de lançamento",errorTip:{noDid:"O Blocklet DID é necessário",noTitle:"O título do bloco é obrigatório",noVersion:"A versão do Blocklet é requerida",noDescription:"A descrição do Blocklet é obrigatória",noNote:"Nota de lançamento é obrigatória",inValidVersion:"Versão de Bloco Inválida",noResource:"Por favor, selecione o recurso para ser incluído no blocklet",noFirstDid:"Por favor, crie um DID do Blocklet primeiro",invalidUrl:"Por favor, insira uma URL válida",invalidUrlOrEmail:"Por favor, insira um URL ou e-mail válido"},packTip:"Atualmente, os blocos podem ser instalados diretamente como aplicativos. Componentes e configurações de aplicativos serão automaticamente incluídos no Blocklet.",resourceChangedWarning:"Você modificou o recurso, por favor salve-o a tempo",installResourceTip:"URL de Instalação:",installResourceTip2:"Se você deseja ver mais dicas, por favor visite",installResourceHelp:"Documento de ajuda",componentIncluded:"Incluído",componentForceRequired:"Requerido",download:"Baixe {name}",delete:"Excluir {name}",copyInstallUrl:"Copiar URL de instalação",install:"Instale {name}",publishToStoreSuccess:"Blocklet publicado na Loja com sucesso",connectStoreSuccess:"Loja de Blocos conectada com sucesso",uploadToStoreSuccess:"Blocklet enviado para a Store com sucesso, você precisa publicá-lo na Store",viewLastRelease:"Visualizar última versão",reconnectStoreTip:"Após reconectar, um novo desenvolvedor será vinculado. Você tem certeza de que deseja reconectar?",deleteProject:{title:"Excluir {name}",scan:"Use os seguintes métodos para apagar {name}",confirm:"Confirmar usando a Carteira DID",success:"O projeto Blocklet foi excluído, por favor, continue sua operação",tip1:"O projeto do Blocklet não será recuperável após a exclusão",tip2:"Você não poderá mais publicar novas versões para o Blocklet excluído, o que significa que o Blocklet não será mais atualizado na Loja.",tip3:"Excluir o Bloco não afetará sua versão atualmente publicada na Loja.",description:"Após excluir o Blocklet, você enfrentará os seguintes problemas, você tem certeza de que deseja excluí-lo?"},resourceTip:"Atualmente, como um Bloquete de Recursos, ele não pode ser instalado diretamente da Loja.",whyCantSeeInStore:"Você pode publicar o Blocklet atual na loja, e ele poderá ser usado no mundo todo",whyCantSeeResourceBlockletInStore:"Você pode publicar o Blocklet atual na loja, e ele poderá ser usado em todo o mundo. Blocklets são ocultos da página de listagem da loja por padrão.",tenantScope:"Inquilino",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"O Blocklets não está em execução, por favor, inicie-o primeiro",resourceEmptyTip:"Não há recursos disponíveis",steps:{resources:"Por favor, selecione os recursos que precisam ser associados ao Blocklet atual, pois esses recursos serão instalados juntamente com o Blocklet.",blocklets:"Selecione os blocos a serem associados.",version:"Defina a versão de lançamento e o log de alterações.",introduction:"Uma introdução clara pode destacar efetivamente o seu Blocklet. Você pode usar a sintaxe Markdown para escrevê-lo e visualizá-lo.",branding:"Descreva as informações básicas do seu Blocklet. Essas informações serão apresentadas aos usuários na loja."},branding:"Marca",brandingHelp:"Mais informações sobre o blocklet serão exibidas na Loja",resourceSelect:"Selecionar recurso dos blocos",resourceUpload:"Carregar recurso do seu disco (index.html é necessário no arquivo)",deleteStoreTip:"Tem certeza de que deseja remover {name} da lista da Loja de Conexão?",disconnectStoreTip:"Após desconectado, o Blocklet será removido da loja. Você tem certeza que deseja desconectar?",connectOrUpload:"Conectar ou Enviar",developerInfo:"Informações do Desenvolvedor",autoUploadTip:"Enviar automaticamente o blocklet para a Loja após o lançamento da criação",possibleSameStoreTip:"Tente resolver blocklets de dependência na mesma Loja de Blocklets antes de fazer o upload sempre que possível",needProjectId:"Por favor, crie um projeto primeiro",projectSettings:"Configurações do Projeto",noStoreSelected:"Por favor, selecione uma das lojas existentes ou adicione uma nova loja para continuar",installToThisServer:"Instale neste servidor",forceResourceBlocklet:"Força definida como um Blocklet baseado em recurso",resourceDocker:"Crie Blocklet a partir do Docker",resourceSelectTitle:"Recurso",resourceUploadTitle:"Carregar",resourceDockerTitle:"Docker",resourceDockerInputTip:"Por favor, insira o comando docker run",docker:{pleaseInputDockerCommand:"Por favor, insira o comando docker run",volumeTip:"O volume deve começar com $BLOCKLET_DATA_DIR ou $BLOCKLET_APP_DIR",volumeTip2:'Volume não pode conter ".."',noAllowTheArg:"O argumento não é permitido no comando docker run",needCustomInput:"Configure o valor ao instalar blocklet",dockerParams:"Parâmetros Docker",dockerCommand:"Comando Docker",dockerImageName:"Nome da Docker Image",addItem:"Adicionar parâmetro de execução Docker",envKey:"Chave de variável de ambiente",publishTips:"A porta externa final será atribuída automaticamente pelo blocklet",volumeTips:"O volume precisa começar com $BLOCKLET_DATA_DIR ou $BLOCKLET_APP_DIR",modifyParam:"Modificar parâmetro de execução do Docker",modifyEnv:"Modificar Variável de Ambiente",paramDetail:"Detalhe do Param",description:"Descrição",secure:"Seguro",shared:"Compartilhado",required:"Obrigatório",prefix:"Prefixo",path:"Caminho",name:"Nome",portType:"Tipo de Porta",dockerImageNameError:"Nome da imagem Docker não pode conter espaços",autoGenerated:"Gerado automaticamente",dockerCMDError:"O comando Docker CMD suporta apenas caracteres simples",proxyBehavior:"Comportamento do Proxy",serviceProxy:"Serviço",directProxy:"Direto",nextTab:"Analisar Comando"},storeRule:{maxImageCount:"A loja permite no máximo {max} capturas de ecrã.",minImageCount:"A loja requer pelo menos {min} {unit}.",minImageSize:"A imagem de captura de tela do {name} deve ter pelo menos {width}x{height}.",logoFormat:"O formato da imagem do logo suporta apenas [{format}].",warning:"Aviso",screenshot:"Captura de tela",screenshots:"Capturas de tela",first:"1º",second:"2º",third:"3º"},store:"Loja Blocklet",endpoint:{tab:"Blocklet Remoto",uploadToEndpoint:"Você pode carregar o Blocklet atual para o Blocklet especificado.",addEndpoint:"Adicionar Endpoint do Blocklet",urlEmpty:"URL do endpoint não pode estar vazio",addFailed:"Falha ao adicionar o endpoint do Blocklet:",deleteEndpoint:"Apagar Endpoint do Blocklet",deleteDesc:'Confirmar exclusão do endpoint Blocklet {name}? <br/><span style="color: {color}">*Após remover este endpoint Blocklet, você não poderá atualizar os aplicativos instalados a partir deste endpoint Blocklet, a menos que os adicione novamente.</span>',confirmDesc:"Por favor, insira {name} para apagar",visitEndpoint:"Visite Blocklet",disconnectEndpointTip:"Tem certeza de que deseja desconectar {url}? Após a desconexão, o Blocklet não será enviado para este endpoint.",deleteFailed:"Falha ao excluir o endpoint do Blocklet",publishToEndpointSuccess:"Blocklet publicado no Endpoint com sucesso",uploadToEndpointSuccess:"Blocklet enviado para Endpoint com sucesso"},autoPublishErrorTip:"Publicação automática para {storeName} falhou: {error}",singleton:"Apenas uma instância",singletonTip:"Quando o modo singleton estiver ativado, o aplicativo não pode executar várias instâncias ao mesmo tempo. Como seu aplicativo usa o modo singleton, a implantação blue-green não pode ser usada para atualizações ou reinicializações."},titleValidationError:"O comprimento do título deve estar entre 3 e 20 caracteres",descriptionValidationError:"O comprimento da descrição deve estar entre 3 e 80 caracteres",whyNeedAppPid:"Se o seu aplicativo foi migrado, o DID permanente é o DID gerado quando este Blocklet foi instalado originalmente",usingDocker:"Este Blocklet será executado usando docker",gotoVisitError:"Impossível acessar a URL do Blocklet, tente novamente mais tarde",usingIsolation:"Este Blocklet será executado com isolamento de rede",dockerImage:"Suporte Docker",mountPoint:{description1:"Esta alteração pode quebrar URLs contendo o antigo ponto de montagem, o que pode levar a:",case1:"Referências de recursos quebradas entre Blocklets neste app",case2:"URL quebrado se você as compartilhou publicamente",description2:"Você pode configurar um redirecionamento do ponto de montagem antigo para o novo para minimizar possíveis alterações drásticas."},skSourceMigratedTip:"Este app foi lançado com uma carteira gerenciada por servidor e migrou para DID Wallet para melhor segurança.",skSourceManagedTip:"Este app está rodando com uma carteira de servidor gerenciada, por favor migre para a DID Wallet o mais rápido possível para melhor segurança.",zeroDowntime:"Sem tempo de inatividade"},dashboard:{nodeDid:"Nó",ownerDid:"Proprietário",routingEngine:"Motor de Roteamento",ownerNftURL:"Proprietário NFT",expirationLeft:"Expiração Restante",startFromCrashTip:"O servidor Blocklet não foi encerrado normalmente da última vez, por favor, inicie manualmente os blocklets que precisam ser executados.",runtimeConfig:{blockletMaxMemoryLimit:"Limite máximo de memória do Blocklet",daemonMaxMemoryLimit:"Limite máximo de memória do servidor"},document:"Saiba mais em nossa documentação",database:"Banco de dados"},store:{nameSort:"Nome",popularSort:"Popularidade",headerDescription:"Encontre e Instale seus Blocklets",detail:{purchase:"Comprar {name}",open:"Abra {name}",install:"Instale {name}",upgrade:"Atualize {name}",empty:"Sem introdução"},blockletRegistry:{changeFailed:"Falha ao Alterar a Loja de Bloco:",addFailed:"Falha ao adicionar a Loja de Blocos: {name}",editFailed:"Falha ao editar a Loja de Blocklets",switchRegistry:"Alternar Bloco da Loja",addRegistry:"Adicionar Loja de Blocos",editRegistry:"Editar Loja de Blocklets",deleteRegistry:"Excluir Blocklet Store",haveSameRegistry:"A mesma loja de blocos existe",registryName:"Nome da Loja de Blocklet",registryUrl:"URL da Loja de Blocklet",registryNameEmpty:"O nome da loja do Blocklet não pode estar vazio",registryUrlEmpty:"O URL da loja Blocklet não pode estar vazio",deleteDesc:"Confirmar Excluir a loja de blocos {name} ?",confirmDesc:"Por favor, insira {name} para excluir"},purchase:{title:"Comprar {name}",confirmed:"Sua compra de bloco NFT foi verificada",declined:"Você não forneceu a compra válida do NFT do blocklet",waiting:"Aguardando compra concluída...",purchase:{title:"Compra de NFT",description:"Pague algum token antes de instalar este bloco se você ainda não comprou este bloco"},verify:{title:"Verificar NFT",description:"Seu NFT será verificado antes de instalar este blocklet se você comprou e possui o NFT de compra em sua Carteira DID",auth:{title:"Compra de Credencial Necessária",scan:"Conecte DID Wallet para fornecer compra de blocklet NFT",confirm:"Revise esta operação em sua Carteira de Identidades Descentralizadas",success:"Sua compra de NFT foi verificada e a instalação começou"}},auth:{title:"Comprar {name}",scan:"Escanee o seguinte código QR com sua carteira DID",confirm:"Confirme em sua conta",success:"Compra NFT enviada para sua carteira DID"},launch:"Lançar {name}",autoLaunch:"{name} comprou com sucesso, redirecionando para a página de lançamento..."},tooltip:{upgradeServer:"Blocklet requer Blocklet Server versão {version}, a versão atual do Blocklet Server é {serverVersion}"}},setting:{saveSuccess:"Configurações salvas com sucesso",unSavedTip:'Existem alterações não salvas, clique em "Salvar alterações" para salvá-las.',unSavedLeaveTip:"Existem alterações não salvos, tem certeza que deseja sair da página?",form:{name:"Nome do seu servidor",nameRequired:"Descrição do servidor é obrigatória",namePlaceholder:"Nome do servidor",description:"Descreva seu servidor",descriptionHolder:"Descrição do servidor",descriptionRequired:"É necessário uma descrição do servidor",domain:"Seu nome de domínio do servidor",domainPlaceholder:"Nome do Domínio do Servidor",domainRequired:"É necessário um domínio de servidor",ipPlaceholder:"IP",ipRequired:"IP é obrigatório",registry:"Loja de Blocklets",registryPlaceholder:"Loja de blocos para buscar blocos",registryRequired:"A loja Blocklet é obrigatória",registerUrl:"URL do Blocklet Launcher",registerUrlPlaceholder:"Insira a URL do seu Blocklet Launcher preferido, você pode usar o oficial com segurança",webWalletUrl:"URL da carteira DID",webWalletUrlPlaceholder:'Por favor, insira a URL da sua "Carteira DID" hospedada, você pode usar a oficial com segurança',nftDomainUrl:"URL do Domínio NFT",nftDomainUrlPlaceholder:'Por favor, insira a URL do seu domínio "NFT", você pode usar o oficial com segurança',enableWelcomePage:"Ativar página de boas-vindas",welcome:{switchLabel:"Página de Boas-vindas"},upgrade:{title:"Atualize o Servidor Blocklet para a versão {version}",description:"Durante a atualização, seu servidor Blocklet entrará no modo de manutenção por alguns minutos enquanto a atualização for concluída.",dialog:'Clique em "confirmar" para instalar a atualização. O Blocklet Server entrará em modo de manutenção até que a atualização seja concluída e retornará ao modo de produção automaticamente.',confirm:"Atualizar",switchLabel:"Verificação de Atualização Automática",enableBetaRelease:"Ativar lançamento Beta",setup:"Preparando a atualização",installing:"Instalando o servidor Blocklet v{version}",restarting:"Reiniciando o Servidor Blocklet",cleanup:"Migrando dados do servidor Blocklet",verifying:"Verificando o servidor Blocklet v{version}",rollback:"Servidor Blocklet Rollback",complete:"Atualização concluída!",progress:"Atualizando {name}",check:"Verificar atualizações",latest:"Você está usando a versão mais recente."},restart:{title:"Reiniciar o servidor Blocklet",description:"Durante a reinicialização, o servidor do Blocklet entrará no modo de manutenção até que a reinicialização seja concluída.",dialog:'Clique em "confirmar" para reiniciar. O servidor Blocklet entrará no modo de manutenção até que a reinicialização seja concluída e retornará automaticamente ao modo de produção.',confirm:"Reiniciar",setup:"Preparando o reinício",verifying:"Verificando o Servidor Blocklet",restarting:"Reiniciando o Servidor Blocklet",cleanup:"Certifique-se de que tudo está OK",rollback:"Limpar o estado sujo",complete:"Manter completo!",progress:"Reiniciando {name}"},register:{title:"Registre-se no Blocklet Launcher",description:"Uma vez adicionado, você pode iniciar blocos nesta servidor de blocos a partir de {url}.",button:"Registrar"},monitor:{diskThreshold:"Enviar alerta quando o uso do disco exceder (%)",diskThresholdPlaceholder:"Por favor, defina o limiar de alerta de uso de disco"},security:{switchLabel:"Isolamento do Sistema de Arquivos",switchTips:"Após desativar esta opção, o sistema de arquivos do Blocklet não estará mais em isolamento, o que pode representar um risco de software malicioso danificar o sistema de arquivos.",warningTips:"O recurso de isolamento do sistema de arquivos não pode funcionar. Atualize a versão node.js (a versão atual é {version}) para a v21.6.0 ou superior."},docker:{switchLabel:"Executar Blocklets em Containers",switchTips:"Após ativar esta opção, os blocklets serão executados usando contêineres, o que pode melhorar a segurança geral do servidor.",notInstalled:"Não é possível ativar a execução do contêiner porque o Docker não está instalado ou não possui as permissões necessárias para executar.",needCloseFileSystemIsolation:"O isolamento do sistema de arquivos e o modo de contêiner docker não podem ser ativados ao mesmo tempo"},dockerNetwork:{switchLabel:"Isolamento de Rede de Container",switchTips:"Depois de habilitar essa opção, os blocklets executam de forma mais segura: um blocklet não consegue acessar o servidor de blocklets ou outros blocklets em aplicativos.",needEnableDocker:"O modo de container deve ser ativado para habilitar o isolamento de rede"},restartAllContainers:{title:"Reiniciar Todos os Contêineres",description:"Reiniciar todos os contêineres e manter os blocklets em execução.",dialog:'Clique em "confirmar" para reiniciar todos os blocklets do contêiner e manter o status dos blocklets em execução.',confirm:"Reiniciar",setup:"Preparando para reiniciar",verifying:"Verificando o servidor Blocklet",restarting:"Reiniciando todos os contêineres em segundo plano",cleanup:"Assegure-se de que tudo está OK",rollback:"Limpar o estado sujo",complete:"Manutenção completa!",progress:"Reiniciando todos os contêineres em segundo plano"},restartAllBlocklet:{title:"Reiniciar todos os Blocklets",description:"Reiniciar todos os Blocklets que estão em execução ou com erro neste servidor.",dialog:'Clique em "confirmar" para reiniciar todos os blocklets em segundo plano.',confirm:"Reiniciar",setup:"Preparando para reiniciar",verifying:"Verificando Blocklet Server",restarting:"Reiniciando todos os Blocklets em execução ou com erros em segundo plano",cleanup:"Certifique-se de que tudo está OK",rollback:"Limpar o estado sujo",complete:"Manutenção completa!",progress:"Reiniciando todos os Blocklets em execução ou com erro em segundo plano"},enableSessionHardening:{switchLabel:"Ativar Endurecimento de Sessão",switchTips:"Após habilitar esta opção, operações de mutação exigirão verificação estrita, o que pode melhorar a segurança geral do servidor."}},accessKey:{accessKeyId:"ID da Chave de Acesso",lastUsed:"Último utilizado em",tip:"Insira um nome para esta chave de acesso",saveSecretTip:"Esta é a única vez que sua chave secreta de acesso pode ser visualizada e não pode ser recuperada. No entanto, você pode criar novas chaves de acesso a qualquer momento.",iKnow:"Eu copiei e salvei a Chave de Acesso Secreta",showSecret:"Mostrar Chave de Acesso Secreta",hideSecret:"Esconder Segredo",title:"Excluir chave de acesso",descriptionNoTime:"Isso irá excluir permanentemente a chave de acesso {key} com o nome {name}, que nunca foi usada antes",description:"Isso irá excluir permanentemente a chave de acesso {key} com o nome {name}, que foi usada pela última vez em {time}, {timeAge}",confirm_desc:"Por favor, digite {name} para deletar",remark:"Nome da Chave de Acesso",remarkInvalid:"O nome da chave de acesso é obrigatório",passport:"Selecione um passaporte para a chave de acesso para conceder ou limitar permissões",expireTime:"Defina uma data de expiração para a chave de acesso para melhor segurança",authType:"Tipo de Autenticação",resourceType:"Tipo de Recurso",resourceId:"ID do Recurso",component:"Componente",expired:"{time} expirou",accessKeySecret:"Chave de Acesso Secreta",simple:"Simples",signature:"Assinatura",signatureDesc:"Segurança de nível empresarial usando criptografia. Requer integração de código com o SDK (@blocklet/server-js), ideal para cenários com altos requisitos de segurança e transmissão de dados críticos",simpleDesc:"Mecanismo de Token Bearer leve, semelhante à chave OpenAPI, suporta chamadas de API RESTful e integração de serviços de terceiros. Não requer codificação, integração rápida via cabeçalho HTTP, perfeito para desenvolvimento rápido",viewSecret:"Você pode acessar a chave secreta posteriormente na página de detalhes da chave de acesso",usage:"Uso",listTitle:"Gerencie o acesso seguro à API com Chaves de Acesso",tooltipTitle:"Gere e gerencie credenciais que permitem que sistemas confiáveis interajam com seu aplicativo programaticamente. Chaves de acesso permitem automação segura e integração perfeita em suas ferramentas e serviços."},webhook:{add:"Adicionar Integração",delTitle:"Excluir Integração",requiredError:"Por favor, forneça um {type} válido",confirm_desc:"Por favor, insira {name} para excluir",test:"Teste",description:"Isto irá excluir permanentemente a integração com o ID {id}",columns:{description:"Olá, ID",params:"Parâmetros",createdAt:"Criado em"},testSuccess:"Mensagem de teste enviada com sucesso",duplicateError:"O URL já existe",updateSuccess:"Status atualizado com sucesso"},dns:{step1Title:"Aceda ao seu registo de domínio",step1Desc1:"Aceda ao seu registo de domínio, encontre a página de gestão de domínio e localize a página de definições do servidor de nomes. Pode procurar o seu registo de domínio em",step2Title:"2. Encontre as definições de DNS para {url}",step2Desc:'Isso pode ser chamado de "Gestão de DNS", "Configurações avançadas", ou similar.',step3Title:"3. Adicione os seguintes registos DNS",step3Desc:'O nome pode ser chamado de "host", "hostname" ou "alias"'},domain:{addingDomain:"Adicionando domínio...",checkingResolvable:"Verificando o status do domínio...",cannotResolve:"{domain} não pode ser resolvido, verifique sua configuração de DNS",resolvedAddressError:"{domain} não está configurado corretamente com um registro CNAME apontando para {curDomain}",invalidDNSReminder:"{error}. No entanto, pode continuar a adicionar o domínio, mas a geração automática de certificados não está disponível.",continueAdd:"Continuar Adicionando",conflictTitle:"{domain} já foi usado",conflictDescription:'{domain} já está em uso por "{title}". Ao clicar em confirmar, o domínio será removido de "{from}" e adicionado a "{to}".'},aigne:{modelAdapter:"Fornecedor de Modelo",modelName:"Nome do Modelo",desc:{modelAdapter:"A plataforma que fornece um serviço de modelo AI",modelName:"A versão específica do modelo ou nome do modelo",key:"A Chave API {provider} usada para autenticação",baseUrl:"Insira a URL da sua instância AIGNE Hub (ex., https://hub.aigne.io). Use a sua se estiver auto-hospedando.",accessKeyId:"A chave ID única para acessar o modelo",secretAccessKey:"A chave secreta emparelhada com o ID da chave de acesso",docLink:"Veja a documentação oficial para mais detalhes e referência de API"},failed:"Falha ao salvar a configuração AIGNE",authorizeAigneHub:"Conectar a {name}",baseUrl:"URL do Hub AIGNE",disconnect:"Desconectar",disconnectConfirm:"Tem certeza de que deseja desconectar-se do AIGNE Hub? Isso removerá a configuração atual de AI.",disconnectSuccess:"Desconectado com sucesso do AIGNE Hub",disconnectFailed:"Falha ao desconectar do AIGNE Hub",testConnection:"Testar conexão {provider}",invalidUrl:"URL do {provider} é inválida",description:"A configuração atual terá efeito quando {name} estiver em execução. É necessário salvar e reiniciar o Blocklet para ter efeito.",revokeUrlAuthTitle:"Confirmar a alteração do {url}?",revokeUrlAuth:"Tem certeza de que deseja alterar o {url}? Após a modificação, sua autorização será inválida e precisará ser reautorizar!",testSuccess:"Conectado com sucesso ao AIGNE Hub",check:"Verificar",apiKeyNotAuthorized:"A chave API não está autorizada. Por favor, clique no botão conectar ao AIGNE Hub para autorizá-la",switchUser:"Trocar Usuário",connectTimeOut:"Conexão com {provider} expirou, por favor tente novamente mais tarde",restart:{title:"Reiniciar Blocklet",connectedContent:"Seu Blocklet está atualmente conectado a {provider}. A configuração terá efeito após a reinicialização. Deseja reiniciar agora?",notConnectedContent:"Seu Blocklet está atualmente desconectado de {provider}. A configuração terá efeito após a reinicialização. Deseja reiniciar agora?",confirm:"Reiniciar Agora",cancel:"Reiniciar Depois"},testFailed:"Não foi possível conectar ao AIGNE Hub. Verifique a URL ou sua rede.",addCredits:"Comprar Créditos",transaction:"Transações",connected:"Conectado com sucesso",account:"Informações da Conta",pendingCredit:"Encargos Pendentes",infinite:"Ilimitado",config:"Configurar AIGNE Hub"}},notification:{title:"Notificações",history:"Histórico",channelSettings:"Configurações do canal",empty:"Nenhuma atividade ainda",viewAll:"Ver Todos",showRead:"Mostrar Leitura",markAllAsRead:"Marcar todos como lidos",markAsRead:"Marcar como Lido",proceed:"Continue",checkingForUpdates:"Verificando atualizações...",email:{enable:"Ativar notificação",from:"Remetente do Email",host:"Servidor SMTP Host",port:"Porta do Servidor SMTP",user:"Nome de utilizador SMTP",secure:"Conexão Segura",password:"Senha SMTP",fromRequired:"O remetente de e-mail é obrigatório",fromInvalid:"O remetente do email é inválido",receiverRequired:"É necessário o destinatário do e-mail",receiverInvalid:"O destinatário do email é inválido",hostRequired:"O servidor de hospedagem SMTP é obrigatório",hostInvalid:"O host do servidor SMTP é inválido",portRequired:"A porta do servidor SMTP é obrigatória",portInvalid:"A porta do servidor SMTP é inválida, a porta deve estar entre 1 e 65535",userRequired:"É necessário fornecer o nome de usuário do servidor SMTP",passwordRequired:"É necessário fornecer a senha do usuário do servidor SMTP",testSuccess:"Teste de envio de email realizado com sucesso",testFailed:"O envio do email de teste falhou",testReceiver:"Receptor de Email",testSendEmail:"Teste de envio de email",inputTestReceiver:"Por favor, insira o e-mail do destinatário de teste",disable:"Cancelar notificação por e-mail",disableDescription:"Após cancelar a inscrição, você não receberá mais notificações por e-mail. Para receber notificações por e-mail, você pode se inscrever novamente nesta página.",unsubscribe:"Cancelar inscrição de notificação por email",unsubscribeDescription:"Após o cancelamento da inscrição, você não receberá mais nenhuma notificação por e-mail.",subscribe:"Inscrever-se",subscribeDescription:"Para receber notificações por email, você pode se inscrever novamente na página de configurações.",companyName:"Nome da Empresa",companyLink:"Link da Empresa",companyAddress:"Endereço da Empresa",supportEmail:"Email de Suporte",emailInvalid:"Email inválido",linkInvalid:"Link inválido, deve começar com http ou https",signature:"Assinatura",signatureTooltip:"A assinatura de e-mail é usada na parte inferior para fornecer ao destinatário informações importantes sobre o remetente."},wallet:{description:"Notificações da Wallet DID estão sempre habilitadas para todos os usuários."},webhooks:{description:"Notificações enviadas através de webhooks estão sempre habilitadas para todos os usuários."},comingSoon:"Mais canais de notificação estão em construção",unsubscribe:"Cancelar inscrição",unsubscribeSucceed:"Cancelar inscrição bem-sucedida",unsubscribeFailed:"Falha ao cancelar a inscrição",unsubscribeTokenRequired:"O token de cancelamento é obrigatório",unsubscribeTokenExpired:"O token de cancelamento de inscrição expirou",unsubscribeTokenInvalid:"O token de cancelamento da inscrição é inválido",installComponentError:"Componente {name} desinstalado não encontrado",installingComponent:"Instalando o componente {name}",pushKit:{enable:"Ativar notificação",endpoint:"PushKit endpoint",endpointInvalid:"O endpoint do PushKit é uma URL inválida",testSuccess:"Teste PushKit enviado com sucesso",testFailed:"Teste do envio PushKit falhou",testReceiver:"Receptor PushKit",testSend:"Teste o envio do push-kit",inputTestReceiver:"Digite o receptor de teste",receiverRequired:"É necessário o receptor PushKit",pushPath:"Caminho da api para push-kit (padrão /api/push)",did:"PushKit Blocklet DID",customOptions:"Opções Personalizadas"},notificationDetails:"Detalhes da Notificação",receiver:"Receptor",sendStatus:{success:"Enviado",failed:"Falha",sentTime:"Enviado em: {date}",pending:"Pendente",reason:{enabled:"Usuário ativou notificação de {channel}",disabled:"O usuário não ativou a notificação de {channel}",unavailable:"O Blocklet atual não configurou notificação {channel}",available:"Blocklet atual configurou notificação {channel}",notSent:"Mensagem atual não foi enviada para {channel}",offline:"Usuário está offline"},count:"{count}",total:"Total"},filter:"Filtrar",notificationPreview:"Pré-visualização de Notificação",resend:"Reenviar",resendLimit:"Você pode reenviar uma notificação até três vezes por dia.",from:"De",to:"Para",body:"Corpo",notificationTitle:"Título",createdAt:"Criado em",status:"Status",system:"Sistema",severity:"Gravidade",config:"Configs",selectChannels:"Selecionar Canais",selectChannelsTip:"Selecione os canais para reenviar",resendFailedOnly:"Reenviar apenas para canais com falha",statistics:"Estatísticas",allSender:"Todos os Remetente",allSeverity:"Todas as Severidades",severityType:{info:"Info",success:"Sucesso",warning:"Aviso",error:"Erro"},clear:"Limpar",allDone:"Concluído",filterType:{all:"Tudo",unread:"Não lidas"},viewMore:"Ver Mais"},router:{routerSetting:"Domínios e URLs",certSetting:"Certificados SSL",defaultSite:"Padrão",urlHelperText:"URLs que não começam com HTTP/HTTPS são considerados caminhos relativos",empty:"Clique em Ações para configurar o Mapeamento de URL",healthy:{ok:"O blocklet ou serviço está em execução",error:"Bloco ou serviço não está sendo executado ou não está instalado"},service:{select:"Selecione os Serviços do Blocklet (Opcional)",what:"Os serviços do Bloco são tubulações executadas contra a solicitação antes de redirecionar para o bloco a montante"},nonProvider:{title:"Aviso de Troca de Motor",description:"Se você trocar o motor para nenhum, sua página atual pode não funcionar corretamente porque o motor anterior será interrompido. Tem certeza de que deseja continuar?",confirm:"Eu entendo, continue"},validation:{urlRequired:"URL é obrigatório",redirectCodeRequired:"O código de redirecionamento é necessário",didRequired:"Blocklet é obrigatório",pathPrefixTooLong:"O prefixo do URL não pode exceder {length} caracteres",pathPrefixCannotBeEmpty:"O Prefixo URL não pode ficar vazio",domainRequired:"O domínio do servidor é necessário",invalidUrl:"Por favor, forneça um URL válido",pathPrefixRequired:"É necessário um prefixo de URL",redirectUrlRequired:"É necessário um URL de redirecionamento",rewriteUrlRequired:"É necessário reescrever o URL"},domain:{addSite:"Adicionar Site",validate:{emptyTip:"O domínio do site não pode estar vazio",suffixTip:"O domínio do site não pode incluir {suffix}"},add:{title:"Adicionar Nome de Domínio",description:"Por favor, forneça um nome de domínio válido",confirm:"Adicionar",cancel:"Cancelar",blocklet:"Selecionar Bloco",redirect:"Para onde redirecionar o tráfego?",port:"Em qual porta o manipulador de solicitações precisa ouvir?",portTip:"Isso retorna a porta principal do manipulador de solicitação. Você pode personalizar isso",type:"Controlador de tráfego",component:"Selecione Componente",pageGroup:"Grupo de Página",pageGroupTip:"Este componente pode renderizar qualquer grupo de páginas listadas acima, deixe vazio para renderizar todas as páginas"},update:{title:"Atualizar domínio do site",label:"Domínio do Site",description:"Por favor, forneça um domínio de site válido"},setup:{tipStart:"Adicione os registros DNS para o domínio",tipEnd:"De acordo com as seguintes diretrizes",recordType:"Tipo de Registro",recordValue:"Valor do registro"},verify:{ok:"A resolução do domínio está normal",notResolved:"Este domínio não foi resolvido nem é acessível, verifique a configuração do DNS."},https:{ok:"Este domínio possui https ativado",bad:"Este domínio não habilitou https"},delete:{title:"Excluir Site",description:'Ao confirmar, você irá excluir o seu site existente "{name}". Digite "{name}" abaixo e selecione Excluir para concluir a mudança ou selecione Cancelar se deseja manter o seu site.',confirm_desc:"Por favor, insira {name} para confirmar"}},domainAlias:{nftDomain:"Configuração automática com Nomes DID",showTipHint:"Como configurar a resolução de nomes de domínio?",add:{title:"Adicionar Domínio Adicional",domainDescription:"Por favor, forneça um nome de domínio válido",forceTip:"Forçar adição se o nome de domínio já existir",helperText:"Se for inserido um URL HTTP ou HTTPS, ele será automaticamente convertido em um nome de domínio.",isDidDomainError:"Este domínio é um Domínio DID. Por favor, adicione-o usando o método de configuração automática de domínio.",tips:"Pode inserir um nome de domínio comprado em DID Names ou qualquer outro domínio. Se for um Domínio DID, deve apresentar o NFT do Domínio DID para prosseguir."},addCustomDomain:{name:"Domínio personalizado"},addDomainNFT:{showNFT:"Configure o domínio automaticamente",tips:"Pode inserir um domínio comprado na DID Names. Se um Domínio DID for detetado, terá de apresentar o NFT do Domínio DID para continuar.",connect:{scan:"Use um dos métodos abaixo para conectar {domain} a {appName}",confirm:"Confirmar em sua conta",success:"Autorização bem-sucedida",title:"Conecte nomes DID a {appName}"},buyTip:"Nomes DID farão a resolução de nome de domínio automaticamente, sem necessidade de configurar manualmente, e o blocklet atualizará o registro de resolução do nome de domínio automaticamente quando necessário. Se você ainda não tem DID Domain NFT, ",buy:"Comprar Domínio DID",topLevelDidDomainHint:"Para o Domínio DID, se inserir um domínio de nível superior (ex: example.com), ele será configurado automaticamente como www.example.com",authorizeFailed:"Falha ao obter as informações do NFT de domínio, tente novamente!"},delete:{title:"Excluir",description:'Após excluir "{domain}", o acesso a esse alias pode não funcionar corretamente.',confirmPlaceholder:'Insira "{domain}" para apagar'},custom:"Domínio personalizado",noCustom:"Sem domínio personalizado",noCustomTip:"Nenhum domínio personalizado está configurado com seu site. Para segurança aprimorada e melhor experiência do usuário, recomendamos configurar seu próprio domínio personalizado. Clique abaixo para começar."},domainSecurity:{title:"Segurança de Domínio",cors:{title:"Domínios CORS permitidos",description:'Lista de domínios que podem enviar solicitações de origem cruzada para {name}, separados por vírgula, use "*" para permitir qualquer um, o que não é recomendado',domainInvalid:"Por favor, informe uma lista válida de nomes de domínio"}},rule:{add:{title:"Adicionar Mapeamento de URL",confirm:"Adicionar",pathPrefix:"Qual é o prefixo da URL?",pathPrefixTip:"Se você definir o prefixo como '/meu-prefixo', todas as solicitações que começarem com esse prefixo serão direcionadas para o bloco configurado",blocklet:"Qual Blocklet será responsável por essas solicitações?",port:"Qual porta do blocklet será responsável por lidar com as solicitações?",portTip:"Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso",responseType:"Tipo de resposta",responseBody:"Conteúdo da resposta",responseBodyTip:"Cole aqui o conteúdo da sua resposta, não deve exceder 4096 caracteres",responseBodyRequired:"O conteúdo da resposta não pode estar vazio"},delete:{title:"Excluir mapeamento de URL",description:'Ao confirmar, você excluirá seu mapeamento de URL existente para "{name}". Digite "{name}" abaixo e selecione Excluir para concluir a alteração ou selecione Cancelar se você deseja manter seu mapeamento de URL.',confirm_desc:"Por favor, insira {name} para excluir",cancel:"Cancelar"},update:{title:"Atualizar Mapeamento de URL",confirm:"Sim, Atualizar",cancel:"Cancelar"}},cert:{name:"Nome do certificado",domain:"Nome de Domínio",action:"Ação",commonName:"Nome Comum",boundDomains:"Domínios",source:"Origem",expired:"Expirado",leftDays:"dias restantes",issuedOn:"Emitido em",expiryOn:"Expira em",fingerprintAlg:"Algoritmo de Impressão Digital",validityPeriod:"Período de validade",matchedSites:"Sites Correspondentes",upload:"Envio manual",publicCertHelperText:"Os certificados públicos podem ser baixados",nonPublicCertHelperText:"Certificados não públicos não podem ser baixados",protectedCertHelperText:"Certificados protegidos não podem ser editados",unprotectedCertHelperText:"Certificados desprotegidos podem ser editados",issuing:"Certificado sendo gerado",sourceTypes:{upload:"Upload Manual",lets_encrypt:"Vamos Criptografar"},table:{nodata:"Sem dados"},delete:{title:"Apagar Certificado",description:"Confirmar exclusão do certificado do domínio {domain}? Excluir pode afetar os serviços relacionados. Confirme que é seguro antes de prosseguir com a exclusão.",confirm:"Confirmar"},nginx:{title:"Atualizar Certificado",titleAdd:"Adicionar Certificado",pem:"Arquivo de certificado SSL",pemTip:'Por favor, insira aqui o arquivo do certificado do servidor, ele deve terminar com ".pem" ou ".crt"',key:"Arquivo de Chave Privada",keyTip:"Por favor, deixe seu arquivo de chave privada do servidor aqui, ele deve terminar com '.pem' ou '.key'",confirm:"Salvar",cancel:"Cancelar",invalidFile:"Você selecionou um arquivo inválido",empty:"Nenhum arquivo selecionado ainda",source:"Source",sourceTypes:{upload:"Upload Manual",lets_encrypt:"Vamos Criptografar"}},detail:{title:"Detalhes do Certificado"},genLetsEncryptCert:{title:"Gerar certificado Let's Encrypt",dnsTip:"Por favor, verifique se o nome de domínio aponta para o servidor Blocklet atual.",description:"Adicionar um certificado tornará o serviço mais seguro, e o Blocklet Server renovará automaticamente o certificado antes de expirar."}},gateway:{reqLimit:{switchLabel:"Habilitar limitação de solicitações concorrentes para desempenho confiável",rate:"Limite solicitações simultâneas por IP a {rate} por segundo (limite por IP)",title:"Limitação de solicitações",global:"Limite de solicitações simultâneas processadas pelo gateway para {global} por segundo (limite global)",burstFactor:"Fator de estouro para limitação de taxa, aplicado a limites globais e por IP (global: {global}, por IP: {rate})",methods:"Limitar solicitações simultâneas por IP para os métodos seguintes",burstDelay:"Atraso quando as solicitações em rajada excedem o limite por IP ({delay} segundos)"},cacheEnabled:{switchLabel:"Habilitar cache de gateway para aumentar o desempenho",title:"Cache de Gateway"},blockPolicy:{switchLabel:"Bloqueio de solicitações",addItem:"Adicionar Item",blacklistDesc:"Os pedidos desses IPs serão bloqueados de acessar este Servidor e todos os Bloquetes",inputPlaceholder:"Digite o endereço IP, intervalo CIDR ou URL",invalidItem:"Endereço IP, intervalo CIDR ou URL inválido",title:"Bloqueio de Solicitação",autoBlocking:{switchLabel:"Bloqueie solicitações ruins por detecção em tempo real",windowSize:"Tamanho da janela de tempo para contar solicitações (segundos)",windowQuota:"Número máximo de solicitações (por IP) permitido dentro da janela",blockDuration:"Duração para bloquear usuário por IP quando a cota for excedida dentro da janela (segundos)",statusCodes:"Os códigos de status a serem verificados"}},proxyPolicy:{switchLabel:"Executando atrás de proxies",trustRecursive:"Confiar em proxies recursivamente",trustRecursiveDesc:"Use o IP mais à esquerda na cadeia X-Forwarded-For",trustedProxies:"Proxies de Confiança",trustedProxiesDesc:"Requisições desses IPs serão confiáveis para obter o IP real do cliente",realIpHeaderLabel:"Cabeçalho do IP do Cliente",realIpHeaderDesc:"Se o Servidor Blocklet estiver sendo executado atrás de proxies como o CloudFront, você pode definir o cabeçalho do IP real do cliente aqui.",addItem:"Adicionar item",inputPlaceholder:"Digite o endereço IP, intervalo CIDR",invalidItem:"Endereço de IP inválido, intervalo CIDR",title:"Política de Proxy"},wafPolicy:{switchLabel:"Detectar e bloquear pedidos maliciosos com ModSecurity",modeDesc:"O modo do modsecurity (módulo modsecurity é necessário)",mode:{detectOnly:"Detectar apenas (não bloqueará solicitações)",on:"Em (bloqueará solicitações)"},logLevelDesc:"O nível de log para ModSecurity (0-9), 0 significa desativar o log de auditoria",inboundAnomalyScoreThresholdDesc:"O limite da pontuação de anomalia de entrada (1-100), valor menor significa mais rigoroso",outboundAnomalyScoreThresholdDesc:"O limite do score de anomalia de saída (1-100), valor menor significa mais rigoroso",docDesc:"Verifique a documentação para saber como configurar o modsecurity",title:"Firewall de Aplicação Web"}}},noMatch:{desc:"Não conseguimos encontrar a página que você está procurando"},health:{connectionErrorTip:"O Blocklet Server não consegue se conectar à rede, por favor verifique se o Blocklet Server foi interrompido ou se há um problema de rede",connectionRecoveryTip:"A conectividade do servidor Blocklet foi restaurada",connectionStoppedTip:"O servidor do Blocklet foi interrompido",wrongAccessUrlTip:"O endereço de acesso ao servidor Blocklet está incorreto, por favor, use o endereço de acesso correto"},debug:{title:"Seu servidor Blocklet está funcionando!"},team:{invite:{action:"Convidar Novo",setting:"Configurações de convite",enabled:"Desativar esta configuração limitará novos convites apenas para proprietário/administrador",disabled:"Habilite esta configuração para permitir que qualquer usuário convide novos usuários",inviter:"Convidado Por"},add:"Adicionar Novo",member:{name:"Nome",passport:"Passaporte",passports:"Passaportes",lastLogin:"Último login",lastLoginIp:"Último IP de login",source:"Registrar Fonte",source_derived:"Derivado do OAuth",source_wallet:"DID Carteira",filter:"Filtrar por",blockAccess:"Proibido fazer login",blockAccessDescription:"O usuário não conseguirá se conectar a esta aplicação",allowAccess:"Permitir Login",allowAccessDescription:"O usuário poderá se conectar a este aplicativo",updateRole:"Atualizar Função",removeUser:"Excluir Usuário",removeUserDescription:'Confirmar exclusão do usuário "{name}"?',revokePassport:"Revogar Passaporte",revokePassportDescription:"Uma vez que o passaporte seja revogado, o portador do passaporte não poderá usá-lo para fazer login novamente, tem certeza de que deseja continuar?",enablePassport:"Ativar Passaporte",enablePassportDescription:"Uma vez que o passaporte revogado for habilitado novamente, o titular do passaporte poderá usá-lo para fazer login novamente, você tem certeza de que deseja continuar?",passportPermissionTitle:"O passaporte tem as seguintes permissões:",search:"Procurar Membro",onlyApprovedMember:"Mostrar Aprovados Apenas",inviteDialog:{createInviteLink:"Gerar link de convite",createSuccessTip:"O link do convite foi criado com sucesso, clique para copiar e enviar o link para o membro convidado. Por favor, lembre-se de que este link de convite não pode ser reutilizado e expirará em {expireDate}."},error:{passportEmpty:"O campo do passaporte não deve estar vazio"},connectedAccounts:"Contas Conectadas",connections:"Conexões",federated:"Federado",switch:{did:"Trocar DID",profile:"Alternar Perfil",passport:"Trocar Passaporte"},settings:{notification:"Notificações",email:"Enviar email para mim quando alguns eventos acontecerem",wallet:"Enviar notificação para minha carteira quando alguns eventos ocorrem",phone:"Envie uma mensagem de texto para mim quando alguns eventos ocorrerem",webhook:"Webhooks",add:"Adicionar novo webhook",url:"URL personalizado",slack:"Slack Webhook",tested:"Mensagem de teste enviada"},activeUserSessions:"Sessões de Usuários Ativos",forceLogout:"Logout forçado",forceLogoutDescription:"Confirmar o logout forçado deste usuário?",openProfile:"Ver perfil",removeUserSuccess:"Usuário removido com sucesso",forceLogoutRemoveDescription:"Confirmar para forçar o logout deste usuário (Também remover todas as sessões de usuário)?"},transferNode:{name:"Transferir Propriedade",inviteDialog:{title:"Transferir servidor Blocklet",tips:{progress:"A transferência do servidor precisa ser aceita pelo destinatário para concluir a operação de transferência, e uma vez que o destinatário aceita, você não pode fazer login no servidor com o passaporte atual novamente.",newOwnerPermissions:"O novo proprietário terá o direito de gerenciar todas as operações, como membros, passaportes e Blocklets.",revoke:'Se você deseja cancelar o convite de transferência, você pode excluir o link de convite na página "Equipe -> Membros -> Convites".'},createInviteLink:"Gerar Link de Convite",createSuccessTip:"O link do convite foi criado com sucesso. Clique para copiar e enviar o link para o membro convidado. Por favor, note que este link de convite não pode ser reutilizado e expirará em {expireDate}."},delegateDialog:{title:"Autorização necessária",scan:"Use os seguintes métodos para autorizar o servidor a transferir a NFT de propriedade do servidor.",confirm:"Confirmar na sua conta",success:"Autorização bem-sucedida"}},transferApp:{name:"Transferir Propriedade",transferDialog:{title:"Aplicação de Transferência",tips:{progress:"A transferência do aplicativo precisa ser aceita pelo destinatário para concluir a operação de transferência e, uma vez que o destinatário a aceitar, você não poderá fazer login no aplicativo novamente com o passaporte atual.",newOwnerPermissions:"O novo proprietário terá o direito de gerenciar todas as operações, como membros, passaportes e configurações."},createTransferLink:"Gerar Link de Transferência",createSuccessTip1:'O link de transferência é criado com sucesso, o convidado deve usar <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> para receber a propriedade do aplicativo',createSuccessTip2:"Por favor, clique para copiar e enviar o link para o membro convidado, observe que este link de transferência não pode ser reutilizado e expirará em {expireDate}. Seu link de transferência será mostrado apenas uma vez e não poderá ser visualizado novamente após fechar este diálogo.",createSuccessTip3:"Após a transferência ser bem-sucedida, o aplicativo reiniciará automaticamente para que as alterações tenham efeito.",link:"Link de transferência",iKnow:"Eu copiei e salvei o link"},connectDialog:{title:"Autorização necessária",scan:"Use os seguintes métodos para autorizar o aplicativo a transferir a propriedade.",confirm:"Confirme na sua conta",success:"Autorização bem-sucedida"},receiveDialog:{title:"Receber Propriedade da Aplicação",scan:"Use os seguintes métodos para receber a propriedade do aplicativo.",confirm:"Confirme na sua conta",success:"Receber Propriedade com Sucesso"},successTitle:"Você se tornou o novo proprietário desta aplicação",visitDashboard:"Visite o Painel de Controle do Aplicativo",description:"Você pode transferir a propriedade do seu aplicativo para outra carteira ou outra pessoa."},permission:{create:{title:"Criar Permissão",description:"Formato: <ação>_<recurso>"},delete:{title:"Excluir Permissão",description:"Confirmar exclusão de {name}?"},error:{actionEmpty:"A ação não pode estar vazia",resourceEmpty:"O recurso não pode estar vazio",permissionTooLong:"A permissão não pode exceder {length} caracteres",descriptionTooLong:"A descrição não pode exceder {length} caracteres"}},passport:{create:{title:"Criar Passaporte",titleTip:"O título não pode ser modificado após criado, recomendado até 14 letras"},bind:{title:"Vincular Permissão",roleTip:"Você receberá todas as permissões do passaporte selecionado após a vinculação",permissionTip:"Você receberá as permissões selecionadas após a associação",transferLeftTitle:"Todas as permissões",transferRightTitle:"Permissões concedidas"},delete:{title:"Excluir Passaporte",description:"Os passaportes mantidos pelo usuário perderão todas as permissões depois que forem excluídos. Você tem certeza de que deseja continuar?"},error:{titleEmpty:"O título não pode estar vazio",titleTooLong:"O título não pode exceder {length} caracteres",descriptionEmpty:"A descrição não pode ficar vazia"},issuance:{pending:"Aguardando",create:{title:"Gerar link"},delete:{title:"Excluir Link Recebido",description:"Confirmar exclusão {link}?"}},issue:"Emitir passaporte",disableIssuance:"Desativar Emissão de Passaportes",enableIssuance:"Habilitar Emissão de Passaporte",disableIssuanceTip:'As operações "Emissão de Passaporte", "Convite de Membro" e outras serão desativadas',enableIssuanceTip:"A emissão de passaporte",trustedPassportIssuers:"Emissores de passaportes confiáveis",trustedIssuers:"Emissoras de Confiança",trustedFactories:"Coleções NFT confiáveis",trustedFactoriesTip:"Gerencie Coleções NFT confiáveis que podem ser usadas para trocar por um passaporte",searchFactoryAddress:"Buscar Coleção DID",configFactories:"Configurar Coleções de NFTs Confiáveis",configFactoriesTip:"Permitir que os usuários troquem NFTs por passaporte",factoryAddress:"Endereço da Coleção NFT",factory404:"Coleção NFT não encontrada",factoryAddressTip:"O endereço da coleção NFT deve existir na Chain principal da ArcBlock",role:"Tipo de Passaporte",ttl:"Política de Vencimento do Passaporte",ttlNever:"Nunca Expirar",ttlMint:"Desde a compra de NFT",ttlExchange:"Desde a Troca de Passaportes",ttlNeverTip:"O passaporte será válido até ser revogado",ttlMintTip:"O passaporte será válido desde a compra do NFT até o tempo especificado (ttl) ou cancelamento.",ttlExchangeTip:"O passaporte será válido a partir do momento em que o usuário trocar com sucesso até que você especifique o ttl ou revogue",ttlTip:'365d significa 365 dias, você também pode usar "30 dias" ou "24h"',validUntil:"Válido até: {date}",externalPassport:"Passaporte Externo",notTrustedIssuerTip:"O passaporte não pode ser usado porque o emissor não está na lista de emissores confiáveis",issuerDid:"ISSUER DID",addNodeToTrustedIssuers:"Adicione o servidor atual como um emissor de passaporte confiável",revoked:"Revogado",noPermission:"Sem permissão para executar esta operação",shouldNotDeleteCurrent:"Você não pode revogar seu passaporte atualmente em uso",mappingRule:"Regra de mapeamento",defaultRule:"Regra padrão",search:"Buscar Passaporte",searchIssuerDid:"Procurar emissor DID",issueBy:"Problema por {name}",configColor:"Configurar Cor do Passaporte",configColorTip:"Personalize a cor do passaporte",color:"Cor do Passaporte",description:"Use este passaporte para conectar {teamName} como {title}",displayBuiltin:"Integrado",displayCustom:"Personalizado",typesTip:"Personalize os tipos do passaporte, divididos por vírgula",issuanceDate:"Data de emissão: {date}",sourceMaps:{recover:"Recuperado",issue:"Emitido",invite:"Convidado",trusted:"Confiável"},related:"Passaportes Relacionados",operationLogs:"Registros de Operação",owner:"Proprietário",status:"Estado",statusMap:{valid:"Válido",revoked:"Revocado",expired:"Expirado"},view:"Gerir Passaportes",trustedPassportIssuersTip:"Gerenciar emissores de passaportes confiáveis que podem ser usados para emitir passaportes",issuanceTime:"Hora de Emissão",relatedDescription:"O passaporte atual é derivado do seguinte passaporte",passportExpireTime:"Definir uma data de validade para o Passport",customExpireTime:"Tempo de Expiração Personalizado",customExpireTimeIsInvalid:"Tempo de Expiração Personalizado é inválido"},inviting:{link:"Link de convite",inviter:"Convidante",delete:{title:"Excluir Link de Convite",description:"Confirmar exclusão {link}?"},disabledTip:"Convite não está habilitado"},whoCanAccess:{all:{title:"Acessível a todos"},owner:{title:"Apenas o proprietário"},invited:{title:"Apenas usuário convidado"}},userFollowers:{follow:"Seguir",unfollow:"Deixar de seguir",followersOnly:"Visível apenas para seguidores",followers:"Seguidores",following:"Seguindo",emptyFollowing:"Ainda não está seguindo nenhum usuário.",emptyFollowers:"Ainda não há seguidores.",title:"Seguir",invitees:"Convidados",emptyInvitees:"Você ainda não convidou ninguém."},orgs:{explain:"Permite aos usuários criar e entrar em organizações, atribuir funções e gerenciar recursos.",description:"Descrição",deleteConfirm:"Confirmar exclusão de {name}?",members:"Membros",myCreated:"Minhas Criações",myJoined:"Meus Aderidos",myCreatedEmpty:"Você ainda não criou nenhuma organização.",myJoinedEmpty:"Você ainda não entrou em nenhuma organização.",deleteConfirmDescription:"Excluir esta organização removerá todas as funções e recursos vinculados a ela. Os usuários permanecerão no sistema, mas perderão suas funções nesta organização. Esta ação não pode ser desfeita.",active:"Ativo",deleteOrg:"Remover Organização Atual",invitedAt:"Convidado em: {time}",joinedAt:"Entrou em: {time}",createNew:"Criar Nova Organização",viewAll:"Ver Todas as Organizações",validate:{nameEmpty:"O nome não pode estar vazio",nameTooLong:"O Nome não pode exceder {length} caracteres",descriptionTooLong:"A descrição não pode exceder {length} caracteres"},mutate:{title:"{mode} Organização",name:"Nome da Organização",createSuccess:"Organização criada com sucesso",updateSuccess:"Organização atualizada com sucesso",orgNotEnabled:"Organização não está habilitada",maxMemberPerOrg:"A organização pode convidar até {maxMemberPerOrg} membros",maxOrgPerUser:"Você pode criar até {maxOrgPerUser} organizações"},invite:{chooseUsersToInvite:"Escolha os usuários para convidar",success:"Convite enviado aos usuários",pleaseSelectUsers:"Por favor, selecione usuários",pleaseSelectRole:"Por favor selecione o papel",inviteExternalUsers:"Convidar usuários externos",failed:"{count} convites de usuários falharam, tente novamente mais tarde",remove:"Remover usuário",removeSuccess:"Usuário removido com sucesso",limit:"Limite",limitTip:"Limitar membros da org e orgs por usuário",maxMembers:"Máximo de membros por org",maxOrgs:"Número máximo de organizações por usuário",maxMembersTip:"Número máximo de usuários que podem ser convidados para esta organização",inviteLinkSendToEmail:"O link de convite foi enviado para o email ({email}), por favor verifique",enterEmailAddress:"Por favor, insira o endereço de email",inviteTitle:"Convidar usuários para participar de {orgName}"},member:{removeMemberConfirm:"Confirmar remover {name}?",removeMemberConfirmDescription:"Após a remoção, o usuário perderá os papéis e permissões na organização. Esta ação não pode ser desfeita.",removeInvitingMember:"Confirmar cancelamento do convite {name}?",removeInvitingMemberDescription:"Após a remoção, o usuário não poderá entrar na organização e precisará ser convidado novamente. Esta ação não pode ser desfeita."}}},launcher:{provider:"Provedor",adminUrl:"URL"},session:{blockAccess:"Você foi bloqueado de acessar este servidor"},launchBlocklet:{appInfo:"Informações do Aplicativo",appInfoDesc:"Confirme as informações do aplicativo",author:"Autor do aplicativo: {author}",setup:"Configurar Blocklet",redirect:"Redirecionar",alreadyRunning:"A aplicação {name} já está em execução neste servidor Blocklet",alreadyInstalled:"O aplicativo {name} já está instalado neste servidor de Blocklet",alreadyExists:"Esta aplicação já existe, redirecionando...",purchased:"Já Comprado",purchase:"Compra",nextStep:"Próximo Passo",agreement:"Contrato de Licença",agreeAll:"Concordar e Continuar",installing:"Instalando {appName} no {serverName}, pode levar alguns minutos para concluir, por favor aguarde...",redirecting:"{appName} foi instalado com sucesso, iniciando agora...",start:"Lançando",launch:"Instale o Blocklet no servidor",launchSuccess:"{appName} foi lançado com sucesso!",installSuccess:"Blocklet foi instalado e lançado com sucesso em {serverName}",openInRegistry:"Ver na Blocklet Store",subTitle:"Pronto para instalar o Blocklet {appName} em {serverName}",installingSubTitle:"{appName} instalando",access:"Abra o aplicativo",viewApplication:"Ver Aplicação",newVersion:"Nova Versão",newVersionDesc:"A aplicação já existe, mas a versão atual pode ser atualizada",upgradeNow:"Atualize agora",later:"Mais tarde",introduction:"Introdução",welcome:"Bem-vindo ao Assistente de Lançamento do Blocklet",accept:"Eu concordo com o EULA do Blocklet",license:"Licença de Aplicação",next:"Concordar com o EULA e continuar",purchaseApp:"Comprar Blocklet",setupAppDesc:"Inicialize o seu Blocklet",launched:"Completo",confirmInstall:"Confirmar Instalação",dialog:{title:"Torne-se proprietário do aplicativo",nftFreeDescription:"Por favor, apresente o espaço NFT do aplicativo e crie uma conta de aplicativo para continuar",nftPaidDescription:"Por favor, apresente espaço de app NFT e compra de app NFT para continuar",freeDescription:"Por favor, crie uma conta no aplicativo para continuar",paidDescription:"Por favor, apresente a compra de NFT do aplicativo e crie uma conta de aplicativo para continuar",confirm:"Confirme em sua conta",success:"Autorização bem-sucedida",authorizationTimeout:"Tempo de autorização esgotado"},waiting:{verifying:"Verificando meta do aplicativo...",downloading:"Baixando pacote de aplicativos...",downloadingComponent:"Baixando {name}",extractingComponent:"Extraindo {name}",extracting:"Extraindo pacote de aplicativos...",installing:"Instalando componentes do aplicativo...",installed:"Instalado",starting:"Iniciando o aplicativo...",done:"Seu app está lançando...",parsing:"Analisando metadados do app...",initializing:"Inicializando configuração do app...",initializingOwner:"Inicializando proprietário do app...",creatingSecurityRules:"Criando regras de segurança padrão...",assigningDomain:"Atribuindo domínio padrão...",waitingForDomain:"Aguardando a ativação do domínio padrão..."},error:{loadMetaFailed:"Falha ao carregar as informações do aplicativo",appMetaNotFound:"Nenhuma informação encontrada para este aplicativo",downloadFailed:"Falha ao baixar o aplicativo, tente novamente",installFailed:"Falha ao instalar o aplicativo, por favor tente novamente",startFailed:"Falha ao iniciar o aplicativo, por favor, tente novamente",launchFailed:"Falha ao iniciar o aplicativo, por favor, tente novamente",installedButStopped:"O aplicativo foi instalado com sucesso, mas não pode ser iniciado. Você pode iniciá-lo manualmente após resolver problemas de bloqueio",installedButError:"O aplicativo foi instalado com sucesso, mas falhou ao iniciar",restoreFailed:"Falha ao restaurar o aplicativo, por favor, tente novamente",resourceBlocklet:"Este bloco não pode ser iniciado diretamente, mas você pode adicioná-lo ao aplicativo existente."},steps:{introduction:"Introdução",installApp:"Instalar Aplicativo",purchaseSpace:"Comprar Espaço",prepareSpace:"Preparar Espaço"},installRelatedComponents:"Instalar Blocklets relacionados",canNotInstall:"Não é possível instalar",dockerBlockletCantInstall:"Não é possível instalar o Blocklet, porque o Blocklet Server não habilitou o Docker ou Docker Network",nav:{myApps:"Meus Apps",viewMyApps:"Ver Meus Apps"},withoutWallet:"Ignorar ligação da carteira DID",nwFailed:"Falha ao recuperar o fluxo de trabalho.",alreadyConsumed:"Sessão de lançamento consumida",redirectToLauncherBlocklet:"Redirecionando para o Launcher Blocklet"},issuePassport:{title:"Receber Passaporte",description:"Use os seguintes métodos para receber o passaporte emitido por {name}",dialog:{scan:"Use os seguintes métodos para reclamar o passaporte",confirm:"Confirme na sua conta",success:"O passaporte foi adicionado com sucesso em sua carteira",loginWithPassport:"Conecte-se com este passaporte",autoClose:"A página será fechada automaticamente em {seconds}s",autoJump:"A página será redirecionada automaticamente em {seconds}s"}},lostPassport:{title:"Passaporte perdido",description:"O dono de {name} pode usar os seguintes métodos para recuperar o passaporte; membros, por favor, contactem o dono para reemissão do passaporte.",return:"Cancelar operação de recuperação, voltar para a página inicial",receivePassport:"Receber passaporte",recoverDialog:{title:"Recuperar passaporte",scan:"Use os seguintes métodos para obter seu passaporte",confirm:"Confirme na sua carteira DID",success:"Recuperado com sucesso"},receiveDialog:{title:"Receber passaporte",scan:"Use os seguintes métodos para receber o passaporte",confirm:"Confirme na sua carteira DID",success:"Recebido com sucesso"},recoverPassport:"Recuperar passaporte"},invite:{message:"{name} o convida a ser o {role} do {dapp}",success:"Você se juntou com sucesso a {dapp}",receive:"Receber com",validUntil:"Válido até:",viewPermission:"Permissão de visualização",emptyPermission:"Permissão Vazia",open:"Abrir",description:{step1:"Baixe e configure sua {wallet}",step2:"Clique no botão acima para receber o passaporte",step3:"Faça login no {dapp} com o passaporte recebido"},transferNFTDialog:{title:"Aceitar Servidor Blocklet {name}",scan:"Conecte o Launcher para completar a recepção do servidor Blocklet.",confirm:"Revise esta operação em sua Carteira DID",success:"Conexão estabelecida com sucesso, aguardando confirmação de recebimento do Servidor"}},receive:{dialog:{title:"Receber passaporte",scan:"Após receber o passaporte, você pode usá-lo para entrar no aplicativo",confirm:"Confirme em sua conta",success:"Você está conectado com sucesso",scanWithDid:"Use a conta {did} para receber este passaporte. Depois de receber o passaporte, você pode usá-lo para fazer login no aplicativo."}},navigation:{navigation:"Navegação",actionFailed:"Ação Falhou",form:{themeConfig:"Configuração de Tema",contentConfig:"Configuração de Conteúdo",title:"Título",titlePlaceholder:"Por favor, insira o título de navegação",titleTooLong:"O comprimento do título deve ser menor que {len}",description:"Descrição",descriptionPlaceholder:"Por favor, insira a descrição de navegação",descriptionTooLong:"O comprimento da descrição deve ser menor que {len}",icon:"Ícone Padrão",iconPlaceholder:"Selecione um ícone",invalidIcon:"Ícone inválido",findMoreIcon:"Encontre mais ícones",link:"Link",linkPlaceholder:"Por favor, insira o link de navegação",invalidLink:"O link é inválido",component:"Componente",componentPlaceholder:"Por favor, selecione o componente de navegação",role:"Função",rolePlaceholder:"Por favor, selecione a função de navegação",locale:"Local",localePlaceholder:"Por favor, insira a localidade que precisa adicionar",localeExists:"{value} já existe",activeIcon:"Ícone Ativo",activeColor:"Cor Ativa",color:"Cor Padrão",colorPlaceholder:"e.g., #FF0000",invalidColor:"Cor inválida",searchIcons:"Pesquisar ícones",searchIconsPlaceholder:"Exemplo: mdi:home"},action:{add:"Adicionar navegação",addSub:"Adicionar sub navegação",edit:"Editar navegação",hide:"Ocultar navegação",show:"Mostrar navegação",del:"Excluir navegação",new:"Novo",noAddSub:"Componente desinstalado não pode adicionar subnavegação",noEdit:"Componente desinstalado não pode ser editado",noDel:"Não é permitido excluir a navegação incorporada",reset:"Redefinir",restConfirmTitle:"Redefinir a navegação {section} para o padrão?",restConfirmDesc:"Sua navegação personalizada será limpa e restaurada aos itens padrão.",resetSuccessful:"Reinício bem-sucedido",delTabBarTitle:"Você quer excluir este tab?",delTabBarDesc:"Após a exclusão, o tab será removido da lista de navegação."},access:"Acesso",members:"Membros",passport:"Passaporte",analytics:"Análise",system:"Sistema",services:"Serviços",dashboard:"Painel",studio:"Blocklet Estúdio",aigne:"Conexões IA",blockletService:"Serviço de Bloco",didConnect:"Identidade e Acesso",didSpaces:"Armazenamento e Backup",website:"Website Studio",notification:"Centro de notificações",operations:"Observabilidade",integration:"Integrações",developer:"Desenvolvedores",overviewDesc:"Monitore a saúde e os detalhes do aplicativo, e instale, inicie ou remova Blocklets facilmente em um só lugar.",didConnectDesc:"Adicione membros da equipe, defina opções de login e gerencie o acesso seguro para colaboração suave.",aigneDesc:'Configure conexões relacionadas à IA para seu blocklet, incluindo <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> e <a href="{mcpUrl}" target="_blank">servidores compatíveis com MCP</a>.',websiteDesc:"Gerencie o domínio, ajuste o tema, refine a marca e personalize a navegação para uma aparência de site única.",operationsDesc:"Veja análises, verifique logs de atividade, receba alertas e ajuste configurações avançadas conforme necessário.",integrationsDesc:"Vincule serviços externos por meio de Webhooks, chaves de acesso e servidores MCP para expandir as capacidades do aplicativo.",developersDesc:"Use logs, rastreamento de desempenho e documentação para criar, depurar e otimizar seu aplicativo.",didSpacesDesc:"Armazene e faça backup dos dados do seu aplicativo Blocklet com segurança para garantir proteção confiável e recuperação fácil.",publishDesc:"Publique seu aplicativo em lojas ou compartilhe por meio de links para que mais pessoas possam usá-lo."},storage:{spaces:{title:"DID Spaces",tips:"Dicas",label:"Digite o Gateway do DID Spaces",connected:{title:"Espaços de DID Conectados",tag:"Conectado"},connectedWithName:"Você conectou com sucesso a {name}",addedWithName:"Você adicionou com sucesso {name}",connects:"Conectar",reconnect:"Reconectar",addressCannotEmpty:"Endereço não pode estar vazio",addressNotValid:"{url} não é um endereço válido",authorize:{title:"Conecte {appName} ao DID Spaces",scan:"Use os seguintes métodos para permitir que o aplicativo {appName} se conecte ao DID Spaces",success:"Conectado com sucesso"},provideNFT:{title:"Por favor, mostre o espaço DID NFT para {appName}",scan:"Use os seguintes métodos para permitir que o app {appName} mostre o NFT do espaço DID",success:"Conexão bem sucedida"},backup:{title:"Backup",records:"Cópias de segurança",without:"Sem backup",succeeded:"Cópia de segurança efetuada",failed:"Cópia de segurança falhou",lastBackup:"Último backup",lastBackupTip:'Já se passaram {time} desde o seu último backup bem-sucedido. Verifique as suas definições de backup no separador "DID Spaces".',noBackup:"Sem backup",noBackupTip:"Ainda não foi criado nenhum backup. Recomendamos configurar backups regulares para proteger seus dados e configurações",pending:"Backup em andamento",timeout:"Tempo limite de backup"},autoBackup:{title:"Backup automático",enabled:"O backup automático está ligado",disabled:"O backup automático está desligado"},autoCheckUpdate:{title:"Verifique automaticamente notificações de nova versão",enabled:"A verificação automática de nova versão está ativada",disabled:"A verificação automática de novas versões está desativada"},backupSuccessfully:"Backup realizado com sucesso",restore:"Restaurar",restoreSuccessfully:"Restauração concluída com sucesso",gateway:{title:"Portão",select:"Selecione um Espaço DID",add:{title:"Adicionar Espaços DID",label:"Digite a URL dos Espaços DID",failed:"Falha ao adicionar DID Spaces",invalidUrl:"URL de gateway de espaços DID inválida",duplicate:"{name} já está conectado a este Blocklet"},delete:{title:"Desconectar",succeeded:"DID Space {name} desconectado com sucesso",failed:"Falha ao desconectar",failedForSelected:"Não é possível desconectar um DID Space selecionado",descForBackup:"Após desconectar de {name}, você não poderá mais fazer backup deste Blocklet para este DID Space. Você deseja desconectar?",descForStorage:"Após desconectar de {name}, você não poderá mais fazer backup deste Blocklet para este DID Space. Você deseja desconectar?"},connect:{title:"Conecte os Espaços de DID",add:"Conecte-se aos Espaços DID agora",addTips:"Você ainda não está conectado a nenhum espaço DID",switch:"Alternar espaços de ID de DID",switchTips:"Você está conectado a {name}",connected:"Conectado"},switch:{failedForMismatchSpace:"Por favor, conecte-se ao Espaço DID correto {name}"},connectTo:"Conecte-se aos Espaços DID"},strategy:{title:"Estratégia de backup",autoBackup:"Auto backup",backupNow:"Faça backup agora",viewBackupFiles:"Ver arquivos de backup"},progress:{title:"Progresso de backup"},record:{title:"Registrar backup",emptyData:"Sem registros"},notYet:"Você ainda não possui um backup em andamento...",connect:{now:"Conectar agora",title:"Conectar DID Spaces",provider:"Fornecer seu DID Space para iniciar backups",providerForStorage:"Forneça seu DID Space para armazenamento de dados",useWallet:"Conectar com carteira DID",useWalletReconnect:"Reconectar com carteira DID",useSpaceGateway:"Conectar usando gateway DID Spaces",useSpaceGatewayReconnect:"Reconectar usando gateway DID Spaces",switchToSpace:"Mudar para DID Space",switchToSpaceSucceeded:"Mudou para o espaço DID {name}",succeeded:"Conectado com sucesso ao DID Space",disconnect:"Desconectar",abortBlockletBackup:"Abortar backup"},disconnected:{tag:"Desconectado",reconnectNow:"Reconectar agora"}},appLevel:{title:"Nível do aplicativo",description:"Todos os dados gerados pelo aplicativo são armazenados neste DID Space"}},log:{lastDays:{1:"Último 1 dia",7:"Última 1 Semana"}},oauth:{authorize:"Autorização OAuth",client:{tab:"Aplicativos OAuth",name:"Nome do App",clientId:"ID do Cliente",clientSecret:"Segredo do Cliente",scope:"Âmbito",redirectUris:"URLs de redirecionamento",grantTypes:"Tipos de Concessão",responseTypes:"Tipos de Resposta",tokenEndpointAuthMethod:"Método de Autenticação do Endpoint de Token",actions:"Ações",grantResponse:"Autorização e Resposta",metaContact:"Meta & Contacto",clientUri:"URI do Cliente",logoUri:"URI do logotipo",contacts:"Contactos",tosUri:"URL dos Termos de Serviço",policyUri:"URI da Política",jwksSoftware:"JWKS & Software",jwksUri:"URI JWKS",jwks:"JWKS",softwareId:"ID do Software",softwareVersion:"Versão do Software",clientSecretExpiresAt:"Chave secreta expira em",clientIdIssuedAt:"ID do Cliente Emitido em",oauthAppDetails:"Detalhes do Aplicativo OAuth",oauthEndpoints:"Endpoints OAuth",authorizationEndpoint:"Endpoint de Autorização",tokenEndpoint:"Endpoint de Token",userinfoEndpoint:"Endpoint de Informações do Usuário",registrationEndpoint:"Endpoint de Registo",endSessionEndpoint:"Fim da Sessão Endpoint",validate:{clientName:"Nome do app é obrigatório",clientNameMinLength:"O nome do app deve ter pelo menos 3 caracteres",clientUri:"URL da página inicial é obrigatório",clientUriInvalid:"Insira uma URL válida começando com http:// ou https://",redirectUris:"URL de retorno de autorização é obrigatório",redirectUrisInvalid:"Insira URLs válidas começando com http:// ou https://",contacts:"Insira endereços de e-mail válidos separados por vírgulas",tosUri:"URL dos Termos de Serviço é obrigatório",tosUriInvalid:"Insira uma URL válida",policyUri:"URL da Política é obrigatório",policyUriInvalid:"Insira uma URL válida",jwksUri:"URI JWKS é obrigatório",jwksUriInvalid:"Insira uma URL válida",jwks:"JWKS é necessário",jwksInvalid:"Insira um JWKS válido"},input:{clientName:"Nome do app",clientNamePlaceholder:"Algo que os utilizadores reconhecerão e confiarão",clientUri:"URL da página inicial",clientUriPlaceholder:"https://your-app.com",redirectUris:"URL de retorno de autorização",redirectUrisPlaceholder:"https://your-app.com/callback",contacts:"E-mails de contato",contactsPlaceholder:"admin@your-app.com, support@your-app.com",permissions:"Selecione as permissões necessárias",tosUri:"URL dos Termos de Serviço",tosUriPlaceholder:"https://your-app.com/termos",policyUri:"URL da Política",policyUriPlaceholder:"https://your-app.com/policy",jwksUri:"URI JWKS",jwksUriPlaceholder:"https://your-app.com/jwks",jwks:"JWKS",jwksPlaceholder:"Conjunto de Chaves Web JSON",expireTime:"Defina uma data de expiração para o segredo do cliente para melhor segurança"},helperText:{clientName:"Algo que os usuários reconhecerão e confiarão.",clientUri:"URL completo da página inicial do seu aplicativo.",redirectUris:"URL de retorno do seu aplicativo.",contacts:"O endereço de email da pessoa responsável pela aplicação.",tosUri:"URL dos termos de serviço do seu aplicativo.",policyUri:"URL da política de privacidade do seu aplicativo.",read:"Leia nosso",document:"Documentação OAuth",more:"Para mais informações."},delete:{title:"Apagar Cliente OAuth",description:"Tem certeza de que deseja excluir este cliente OAuth {clientName}?"},register:"Criar um novo App OAuth",requiredInformation:"Informações necessárias",optionalInformation:"Informação Opcional",registerButton:"Criar",logo:"Logótipo",openRegistration:"Inscrição Aberta",openidConfiguration:"Configuração OpenID",createUser:"Criado por",update:"Atualizar App OAuth",listTitle:"Ativar acesso seguro de terceiros com Apps OAuth",tooltipTitle:"Use o servidor OAuth integrado do seu app para autorizar aplicativos externos com protocolos padrão do setor. Ofereça aos usuários autenticação segura e perfeita e controle de acesso delegado.",empty:"Sem dados adicionados"}},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"Expirado"},loadFailed:"Tentar novamente!"},desktop:{tips:{success:"A assinatura expirará após {validity}",warning:"A assinatura expirará após {validity}",error:"Assinatura Expirada"},loading:"Carregar assinatura...",loadFailed:"Falha ao carregar as informações de inscrição, por favor tente novamente!",nextInvoice:"Próxima fatura: {date}"}},analytics:{trend:"Tendências",detail:"Avaria",traffic:{totalRequests:"Total de solicitações",validRequests:"Pedidos de sucesso",failedRequests:"Solicitações falhadas",uniqueVisitors:"Visitantes únicos",uniqueFiles:"URLs únicas",uniqueReferrers:"Referenciadores únicos",uniqueNotFound:"Único 404",uniqueStaticFiles:"Arquivos Estáticos Únicos",logSize:"Tamanho do Log",bandwidth:"Largura de banda"},runtime:"Runtime"},federated:{inviteJoinFederatedLogin:"Convite para entrar no login federado",inviteJoinFederatedLoginDescription:"Copie o seguinte endereço e preencha-o na aplicação em que você precisa participar para se inscrever no login federado.",federatedLogin:"Login federado",joinFederatedLogin:"Junte-se ao login federado",joinFederatedLoginDescription:"Por favor, insira o endereço de login federado fornecido pelo Master Blocklet para participar do login federado",quitFederatedLogin:"Sair do login federado",quitFederatedLoginDescription:"Depois de sair do login federado, o login normal está sempre disponível",federatedJoinAppUrl:"Entrar com login federado em appUrl",federatedJoinAppUrlRequired:"Por favor, insira o login federado para entrar em {appUrl}",failedToGetFederatedLoginAppUrl:"Falha ao obter login federado, junte-se ao appUrl",federatedJoinAppUrlInvalid:"O appUrl de login federado é inválido",siteDetail:"Detalhes do site",approveToJoinLogin:"Aprovar a adesão ao login federado",approve:"Habilitar login",revoke:"Desativar login",enableFederatedLogin:"Habilitar login federado",disableFederatedLogin:"Desativar login federado",enableFederatedLoginDescription:"Após habilitar o login federado, este site fará login automático",disableFederatedLoginDescription:"Depois de desabilitar o login federado, este site não fará login automático",enableFederatedAutoLogin:"Ativar login automático",enableFederatedAutoLoginDescription:"Depois de habilitar o login automático, se houver atualmente um status de login unificado, o site fará login automaticamente na identidade do login federado",disableFederatedAutoLogin:"Desativar login automático",disableFederatedAutoLoginDescription:"Depois que o login automático for desativado, o site não fará login automaticamente nas informações do usuário do login unificado e você ainda poderá optar por fazer login manualmente com a identidade do login federado.",info:{appId:"APP FEITO",appPid:"ID permanente",migratedFrom:"Também conhecido como",appName:"Nome do Blocklet",appDescription:"Descrição do bloco",appUrl:"URL do Blocklet",appLogo:"Logo do Blocklet",did:"Blocklet DID",serverId:"ID do Servidor Blocklet",serverVersion:"Versão do Blocklet Server",version:"Versão do Blocklet",appliedAt:"Inscreva-se em",status:"Status"},status:{pending:"Pendente",approved:"Aprovado",rejected:"Rejeitado",revoked:"Revogado"},disbandFederatedLogin:"Desconectar login federado",disbandFederatedLoginDescription:"Após o desmantelamento do login federado, todos os sites membros deixarão automaticamente o login federado",syncConfig:"Sincronizar configuração de sites federados",quitMember:"Remover",quitMemberDescription:"Remover membros especificados do grupo do site",removeFederatedLogin:"Remover membro",removeFederatedLoginDescription:"Após remover membros especificados do grupo do site, o membro só pode usar o login normal",title:"O que é Federated Login?",description:"O login federado pode ser alcançado através de single sign-on em múltiplos sistemas. Você pode convidar outras equipes a se juntarem ao login federado ou proativamente se juntar à plataforma de login federado de outras organizações.",link:"Ver Documento"},optionsOrder:{1:"Opção Um",2:"Opção Dois"},securityRule:{title:"Regra de segurança",sortByDescription:"Ordenar por prioridade correspondente",add:"Adicionar Regra de Segurança",edit:"Editar Regra de Segurança",view:"Ver regra de segurança",form:{precede:"Precedente",pathPattern:"Padrão de Caminho",pathPatternPlaceholder:"Por favor insira o padrão de caminho",pathPatternErrorText:"O padrão do caminho é inválido",accessPolicyOrResponseHeaderPolicyRequired:"É necessária Política de Acesso ou Política de Cabeçalho de Resposta",accessPolicy:"Política de Acesso",accessPolicyPlaceholder:"Selecione a política de acesso",accessPolicyHelperText:"Selecione a política de acesso",responseHeaderPolicy:"Política de Cabeçalho de Resposta",responseHeaderPolicyPlaceholder:"Selecione a política de cabeçalho da resposta",responseHeaderPolicyHelperText:"Selecione a política de cabeçalho de resposta",remark:"Observação",remarkPlaceholder:"Insira observação",component:"Componente",componentPlaceholder:"Por favor, escolha o componente"},delete:{title:"Eliminar regra de segurança?",description:"Após remover uma regra de segurança, a regra deixará de ter efeito"},useless:"Regra de Segurança Inútil"},responseHeaderPolicy:{title:"Política de cabeçalho de resposta",add:"Adicionar Política de Cabeçalho de Resposta",edit:"Editar Política de Cabeçalho de Resposta",view:"Ver Política de Cabeçalho de Resposta",form:{name:"Nome",namePlaceholder:"Por favor, digite seu nome",description:"Descrição",descriptionPlaceholder:"Insira a descrição",cors:{origin:"Origem",originPlaceholder:"Suporte aos seguintes formatos de domínio: http://www.example.com, http://*.example.com, http://www.example.com:8080, * (não recomendável usar curinga)",originHelperText:"Nome do domínio começa com http:// ou https://, um por linha, um curinga * por linha",methods:"Métodos",allowedHeaders:"Cabeçalhos permitidos",allowedHeadersPlaceholder:"É recomendado preencher *, suporta entrada em várias linhas",allowedHeadersHelperText:"Informa o servidor quais cabeçalhos HTTP personalizados de solicitação podem ser usador na próxima solicitação durante o envio de uma solicitação OPTIONS, como: x-blocklet-version",exposedHeaders:"Cabeçalhos Expostos",exposedHeadersPlaceholder:"Suporte a múltiplas linhas de entrada",exposedHeadersHelperText:"Configure o Expose-Headers, por exemplo: X-Content-Range",maxAge:"Max-Age (segundos)",maxAgeHelperText:"O período de validade do resultado obtido pela solicitação de OPTIONS, que precisa ser um número inteiro positivo",optionsSuccessStatus:"Estatísticas de sucesso de opções",preflightContinue:"Continua a Pré-Visualizar",credentials:"Credenciais",smartModeHelperText:"Adicionar automaticamente todos os nomes de domínio do aplicativo atual, bem como todos os nomes de domínio do grupo do site de login federado",smartMode:"Modo Inteligente"},originOverride:"Substituição de Origem",originOverrideHelperText:"Permitir que a lógica no aplicativo sobreponha este cabeçalho de resposta"},delete:{title:"Remover política de cabeçalho de resposta?",description:"Depois de remover uma política de cabeçalho de resposta, a política não terá mais efeito"}},accessPolicy:{title:"Política de Acesso",add:"Adicionar política de acesso",edit:"Editar Política de Acesso",view:"Ver política de acesso",form:{name:"Nome",namePlaceholder:"Por favor, insira o nome",description:"Descrição",descriptionPlaceholder:"Por favor insira uma descrição",roles:"Funções de Acesso",accessType:"Tipo de acesso"},delete:{title:"Excluir política de acesso?",description:"Após remover uma política de acesso, a política não entrará mais em vigor"}},didConnect:{genKeyPair:{title:"Gerar DID do Blocklet",scan:"Use os seguintes métodos para gerar um Blocklet DID",success:"DID do Blocklet gerado com sucesso",successDesc:"O Blocklet DID foi gerado com sucesso (Publicações subsequentes exigem a carteira que gerou o DID para operar)"},common:{invalidSession:"Sessão inválida",invalidSessionDesc:"Sessão inexistente ou expirada",connectionError:"Falha na conexão"}},pagination:{next:"Próxima Página",previous:"Página Anterior",rowsPerPage:"Por página:",displayRows:"de",jumpToPage:"Ir para a página:"},webhookEndpoint:{createWebhook:"Criar Webhook",createWebhookTitle:"Criar Webhook",selectAllEvents:"Selecionar todos os Eventos",selectAllEventsTooltip:"Selecionar todos os eventos disponíveis",selectedEventsCount:"{count} eventos selecionados",selectedCount:"{count} selecionados",eventsCount:"{count} eventos",saveWebhook:"Criar Webhook",noAvailableEvents:"Sem eventos disponíveis",loadingEvents:"Carregando eventos...",loadingError:"Falha ao carregar eventos: {message}",title:"Webhooks",noWebhooksAdded:"Nenhum webhook adicionado",validation:{urlRequired:"URL é obrigatório",urlInvalid:"Insira uma URL válida",descriptionRequired:"Descrição obrigatória",eventRequired:"Selecione pelo menos um evento"},hosted:"Endpoints hospedados",add:"Criar Webhook",addTip:"Configure seu endpoint webhook para receber eventos ao vivo",listen:"Ouvir para",version:"Versão da API",attempts:"Tentativas de Webhook",url:{label:"URL",description:"URL do Endpoint Webhook"},description:{label:"Descrição",description:"Descrição opcional da finalidade deste endpoint"},events:{label:"Selecionar eventos para ouvir",description:"Olá, {name}."},disabled:"Desabilitado",enabled:"Ativado",disable:"Desativar",enable:"Ativar",editWebhookTitle:"Atualizar Webhook",updateWebhook:"Atualizar Webhook",waitingForEvents:"A aguardar eventos...",loadingMore:"Carregando mais...",loadMore:"Carregar mais",response:"Resposta",request:"Pedido",eventData:"Dados do Evento",deleteWebhook:{title:"Eliminar Webhook?",description:"Após excluir um webhook, ele não receberá mais eventos"},success:"Sucesso",listTitle:"Enviar dados de eventos em tempo real com Webhooks",tooltipTitle:"Conecte seu app a sistemas externos sem interrupções, enviando notificações de eventos em tempo real. Webhooks permitem integrações poderosas e fluxos de trabalho automatizados em suas ferramentas e serviços.",triggeredFrom:"Este webhook foi acionado a partir de uma tentativa"},description:{environment:"As variáveis atuais terão efeito quando {name} estiver em execução. Necessário reiniciar a aplicação para que surtam efeito.",preferences:"As variáveis atuais terão efeito quando {name} estiver em execução. As alterações serão aplicadas após a gravação, não sendo necessário reiniciar a aplicação."},preferencesFor:"Preferências para {name}",environmentFor:"Ambientes para {name}",accessKey:"Chave de Acesso",embed:{iconTip:"Clique para ver os detalhes da assinatura"},command:"Comando",mcp:{listTitle:"Acesse seu Blocklet de clientes MCP",tooltipTitle:"Explore a lista de servidores MCP suportados por este Blocklet, selecione um servidor para visualizar instantaneamente os comandos de conexão necessários para se juntar a partir do seu cliente.",endpoint:"Ponto de extremidade MCP",available:"Servidores MCP disponíveis",noServer:"Sem servidor MCP disponível"},installCommand:"Comando de Instalação",label:{add:"Adicionar",apply:"Aplicar etiquetas",manage:"Gerenciar etiquetas",title:"Etiquetas",description:"Descrição",systemLabel:"Etiqueta do Sistema",create:"Criar etiqueta",edit:"Editar etiqueta",name:"Nome",slug:"Slug",parentLabel:"Etiqueta pai",color:"Cor",search:"Pesquisar etiquetas",saveSuccess:"Etiqueta salva com sucesso",delete:"Excluir",deleteTip:'Excluir "{name}"?',deleteSuccess:"Etiqueta excluída com sucesso",reassignTip:"Se este rótulo estiver em uso, reatribua seus itens a outro rótulo.",reassignTo:"Escolher um novo rótulo",recently:"Recente",noMatching:"Nenhuma etiqueta encontrada",noLabels:"Nenhuma etiqueta criada ainda",filter:"Filtrar rótulos",createNewLabel:'Criar nova etiqueta "{name}"',actionLabel:"Atribuir etiquetas em massa",selectLabels:"Selecionar etiquetas",deleteDesc:'Depois de excluir um rótulo, o rótulo não será mais utilizado. Tem certeza de que deseja excluir "{name}"?',nameRequired:"O título é obrigatório.",nameMinLength:"O título deve ter pelo menos 1 caractere.",nameMaxLength:"O título deve ter menos de 64 caracteres.",slugRequired:"Slug é obrigatório",slugMinLength:"Slug deve ter pelo menos 1 caractere",slugMaxLength:"Slug deve ter menos de 128 caracteres",descriptionMaxLength:"Descrição deve ter menos de 255 caracteres",colorRequired:"A cor é obrigatória",colorInvalid:"A cor é inválida"},environmentTips:{delete:"Você tem certeza de que deseja excluir esta linha?",deleteForbidden:"Apenas a chave do ambiente personalizado pode ser alterada."},authentication:{emailLoginDescription:"O login por e-mail usará Configuração de Notificação para enviar links de login ou código de login para os usuários.",emailNotificationRequired:"Certifique-se de que ativou a Notificação por Email.",chooseProvider:"Método de Login",chooseProviderPlaceholder:"Selecione um método de login para configurar",addLoginProvider:"Adicionar Método de Login",updateLoginProvider:"Atualizar Método de Login: {provider}",alreadyBindOAuth:"Já vinculado login de terceiros",alreadyBindWallet:"Já vinculei a carteira DID",didConnectSettings:"Exibição e Branding",commonSettings:"Configurações Comuns",sessionSettings:"Segurança da Sessão",federated:"Login Federado",loginProviders:"Métodos de Login",oauth:"Login de Terceiros",save:"Salvar",thirdPartyLogin:"Login de terceiros",viewDocument:"Ver Documentação",oauthCallbackUrl:"URL de Callback",gotoEmailNotification:"Abrir configurações de notificação por e-mail",deleteLoginProvider:"Excluir Provedor de Login {provider}",deleteLoginProviderDescription:"Após excluir o provedor de login, os usuários não poderão fazer login usando {provider}. Você tem certeza de que deseja continuar?",auth0:{title:"Auth0",enable:"Ativar login Auth0",domain:"Domínio",domainDescription:"O domínio do Auth0 é obrigatório",clientId:"ID do Cliente",clientIdDescription:"É necessário o ID do cliente da aplicação Auth0 OAuth",clientSecret:"Segredo do Cliente",clientSecretDescription:"A chave secreta do cliente da aplicação Auth0 OAuth é necessária"},github:{title:"Github",enable:"Ativar login do Github",clientId:"ID do Cliente",clientIdDescription:"O ID do Cliente da aplicação Github OAuth é necessário",clientSecret:"Segredo do Cliente",clientSecretDescription:"O segredo do cliente da aplicação Github OAuth é necessário"},twitter:{title:"X",enable:"Ativar login X",clientId:"ID do Cliente",clientIdDescription:"O ID do Cliente da aplicação OAuth é necessário",clientSecret:"Segredo do Cliente",clientSecretDescription:"É necessário o Client Secret da aplicação X OAuth"},google:{title:"Google",enable:"Ativar login com Google",clientId:"ID do Cliente",clientIdDescription:"O ID do cliente da aplicação Google OAuth é necessário",clientSecret:"Segredo do Cliente",clientSecretDescription:"O Client Secret da aplicação Google OAuth é necessário"},apple:{title:"Maçã",enable:"Ativar login com Apple",teamId:"ID da equipe",teamIdDescription:"O ID da equipe do aplicativo Apple OAuth é necessário",serviceId:"ID do Serviço",serviceIdDescription:"O ID do serviço da aplicação Apple OAuth é obrigatório",keyId:"ID da Chave",keyIdDescription:"É necessário o Key ID da aplicação Apple OAuth",authKey:"Chave de autenticação",authKeyDescription:"A chave de autenticação do aplicativo Apple OAuth é necessária",bundleId:"ID do pacote",bundleIdDescription:"O ID do pacote da aplicação Apple OAuth é necessário"},wallet:{showQrcode:"Mostrar código QR"},didConnect:{showDidColor:"Mostrar a cor do DID Connect",showAppInfo:"Mostrar informações do Blocklet",basicSettings:"Configurações básicas",customSettings:"Configurações Personalizadas",configDialogTitle:"Configurar texto de popup de autenticação",addNewAction:"Adicionar Ação",addLanguage:"Adicionar idioma",selectLanguage:"Selecione um idioma...",actionNameError:"Apenas letras minúsculas e hífens são permitidos, não pode começar com hífen",actionNameDuplicate:"O nome da ação já existe"}}};export{e as default};
|
|
5
|
+
Proporção: 16:9`,copyrightDesc:"Usado em: rodapé do site",appUrlDesc:"Usado em: mapa do site e compartilhamento social",advanced:"Configuração Avançada",errorReason:"Falhou ao iniciar o Blocklet, mas você ainda pode acessá-lo clicando no botão abaixo.",nameValidateError:"Inválido: comece com letra/número, 3–129 caracteres, apenas a–z, 0–9, - e _."},overview:{source:"Origem",deployedFrom:"Implantado de",accessControl:"Controle de Acesso",viewInStore:"Ver no estabelecimento"},diskInfo:{empty:"Informações do disco não disponíveis no momento!",appDir:"Diretório de Aplicativos",dataDir:"Diretório de Dados",logDir:"Diretório de logs",cacheDir:"Diretório de cache"},runtimeInfo:{noRunning:"As informações de execução estarão disponíveis quando o bloco estiver em execução!",memoryUsage:"Uso de memória",cpuUsage:"Uso de CPU",uptime:"Tempo de atividade",port:"Porto",processId:"ID do Processo",dataStorage:"Armazenamento de dados"},dist:{downloadLink:"Link de Download",verify:"Verificar"},status:{added:"Adicionado",waiting:"Esperando",downloading:"Baixando",extracting:"Extraindo",installing:"Instalando",upgrading:"Atualizando",installed:"Instalado",created:"Criado",starting:"Começando",running:"Correndo",stopping:"Parar",stopped:"Parado",error:"Erro",deleting:"Deletando",corrupted:"Corrompido",purchasing:"Aguardando a compra",purchased:"Comprado",verifying:"Verificando compra",resource:"Recurso",failWithOldVersion:"Nova versão falhou ao iniciar, Blocklet está rodando na versão antiga.",hasSomeErrors:"{blocklets} não está totalmente em funcionamento, possivelmente devido a problemas ou inicialização pendente."},list:{download:"Baixar",star:"Estrela",searchPlaceholder:"Pesquise por nome do Blocklet ou DID"},component:{container:"Configuração Global",showContainer:"Mostrar Configuração Global",didSpaceConfig:"Configurar DID Spaces",didSpaceConfigTip:"Complete o processo de autorização a seguir para armazenar dados do aplicativo em DID Spaces",didSpaceConnected:"Armazenamento autorizado para: {endpoint}",checkUpdateTitle:"Verificar Atualizações",updateTitle:"Atualizar Componentes",noUpdate:"Não há componentes para atualizar",add:"Adicionar Componente",selectComponent:"Selecionar Blocklet",selectRegistry:"Selecionar Blocklet Store",selectRegistryTip:"Você pode alternar a loja de blocos para ver mais componentes",selectInstance:"Selecione a Instância",selectInstanceTip:"Você pode selecionar uma instância existente ou criar uma nova instância. As instâncias existentes usarão as configurações e dados previamente salvos.",newInstance:"Criar Nova Instância",noComponent:"Nenhum componente",mountPoint:"Qual é o ponto de montagem?",mountPointTip:"Se você definir o ponto de montagem como '/meu-prefixo', todas as solicitações que começarem com esse ponto de montagem serão direcionadas para o componente selecionado",delete:"Excluir Componente",deleteDescription:"Este componente não estará acessível após a exclusão. Confirmar exclusão?",purchase:"Pagamento Necessário",tip:{stopBlocklet:"Por favor, pare de executar o Blocklet primeiro",requiredBy:"O componente é requerido por {name}"},choose:"Escolha",addWithName:"Adicionar Bloco para {name}",installingCanCloseWindowTip:"Instalando componente em segundo plano, você pode fechar esta janela com segurança",installSuccessTip:"Parabéns, o componente foi instalado com sucesso!",missDownloadTokenTip:"Não é possível adicionar componente pago sem um token de download válido",purchaseComponentSecondCheckTip:"Apresente seu NFT de compra de blocklet para continuar",installComponentError:"Ocorreu um erro durante a instalação do componente, por favor, tente novamente",downloadComponentError:"Ocorreu um erro ao baixar o componente, por favor, tente novamente",addComponentTip:{introduction:"Bem-vindo ao Assistente de Adição de Componente",isPurchase:"Você precisa verificar o NFT antes de usar <b>{name}</b> como um componente",belowInformation:"Abaixo estão as informações do componente:",verifyNFT:"Selecione o método de Verificação de NFT, por favor",config:"Por favor, preencha a configuração do componente",environment:"Por favor, preencha o ambiente do componente",fromUrl:"Adicionar Bloquetes a partir do URL",fromUpload:"Adicionar Blocklet a partir do Upload",uploadFailed:"Envio falhou",allowedFileTypes:"Tipos de ficheiros permitidos para carregamento: {types}"},addNext:"Adicione {name}",upgradeNext:"Atualize {name}",setting:"Configurações",noDependencies:"{name} não possui nenhuma dependência",relatedComponents:"Blocos Relacionados",required:"Obrigatório",installed:"Instalado",installingTip:"A instalar o componente, aguarde...",upgrade:"Atualizar",upgradeAvailable:"Atualização Disponível",needBuy:"Necessário Comprar",isOfficial:"Oficialmente Certificado"},router:{urlPath:"URL Path",noRunning:"O blocklet não está atualmente iniciado. Não é possível acessar pelo seguinte endereço!",securitySetting:"Configuração de Segurança",checkUrlAccessible:"Verifique a acessibilidade do endereço",urlInaccessible:"Pode ser devido a problemas na rede, o endereço está temporariamente inacessível",noAccessibleUrl:"URL não acessível",domainLockTooltip:"O Domínio gerado pelo sistema não pode ser editado.",urlLockTooltip:"O caminho do URL gerado pelo sistema não pode ser editado.",showAllDomains:"Mostrar todos os domínios",showAllDIDs:"Mostrar todos os DIDs",currentDomainTip:"Você está acessando a página atual por meio deste domínio"},export:{title:"Exportar o Blocklet",name:"Nome do Pacote",nameTip:"e.g. 'my-blocklet-name' ou '@my-scope/blocklet-name'",result:"O que vem a seguir",exportSource:"Exportar Origem",success:"Blocklet exportado com sucesso",resultTipStart:"Com",resultTipEnd:"Você pode construir e publicar esse bloquete em minutos",uploadedComponentTip:"Os componentes carregados diretamente não podem ser exportados:"},migrate:{title:"Migrar Aplicação",scan:"Conecte sua Carteira DID para gerar um par de chaves para este aplicativo",confirm:"Revise esta operação em sua carteira DID",success:"Sua aplicação foi migrada com sucesso, a página será atualizada em {sec} segundos",intro:{l1:"Clique aqui",l2:"Para migrar sua aplicação para a nova versão (as alterações estão desabilitadas até que a migração seja concluída)",l3:"A aplicação DID será totalmente controlada a partir da sua carteira DID.",l4:"Os dados do aplicativo serão migrados e nenhuma outra alteração é necessária.",l5:"A nova estrutura do aplicativo lhe dará mais flexibilidade ao alterar componentes.",l6:"4. Por favor, não altere os pontos de montagem do componente antes que a nova versão do componente seja lançada."},tip:{duplicate:"Encontre o componente duplicado {name}, por favor exclua os componentes inúteis e migre novamente",running:"Por favor, pare de bloquear antes da migração"}},error:{isRunning:"O Blocklet está em execução, por favor, pare-o primeiro",isInProgress:"Blocklet está em andamento, aguarde até que seja concluído"},publish:{createResource:"Criar Recurso",addResource:"Adicionar Lançamento",productTitle:"Produto",versionTitle:"Versionamento",imgTitle:"Imagens",resourceTitle:"Conteúdo",blockletEmptyTip:"Não há Blocklets aqui",createBlockletTip:"Você pode criar um novo blocklet através dos recursos, componentes e configurações existentes nesta aplicação",createBlocklet:"Novo bloco",componentNotRunning:"O Blocklet {name} não está em execução, por favor, inicie-o primeiro",releaseEmptyTip:"Não há nenhum lançamento aqui",createReleaseTip:"Você pode criar um lançamento do blocklet, juntamente com notas de lançamento e recursos, para que outras pessoas possam usar",createRelease:"Criar lançamento",deleteReleaseTip:"A liberação não pode ser recuperada após exclusão",createBlockletDid:"Criar a partir da Carteira DID",createReleaseSuccess:"Lançamento criado com sucesso",saveDraftSuccess:"Rascunho salvo com sucesso",connect:{title:"Criar DID Blocklet",scan:"Use os seguintes métodos para gerar Blocklet DID",confirm:"Confirmar usando a carteira DID",success:"O DID do Blocklet foi gerado, por favor, continue sua operação"},saveDraft:"Salvar Rascunho",releaseNote:"Nota de lançamento",errorTip:{noDid:"O Blocklet DID é necessário",noTitle:"O título do bloco é obrigatório",noVersion:"A versão do Blocklet é requerida",noDescription:"A descrição do Blocklet é obrigatória",noNote:"Nota de lançamento é obrigatória",inValidVersion:"Versão de Bloco Inválida",noResource:"Por favor, selecione o recurso para ser incluído no blocklet",noFirstDid:"Por favor, crie um DID do Blocklet primeiro",invalidUrl:"Por favor, insira uma URL válida",invalidUrlOrEmail:"Por favor, insira um URL ou e-mail válido"},packTip:"Atualmente, os blocos podem ser instalados diretamente como aplicativos. Componentes e configurações de aplicativos serão automaticamente incluídos no Blocklet.",resourceChangedWarning:"Você modificou o recurso, por favor salve-o a tempo",installResourceTip:"URL de Instalação:",installResourceTip2:"Se você deseja ver mais dicas, por favor visite",installResourceHelp:"Documento de ajuda",componentIncluded:"Incluído",componentForceRequired:"Requerido",download:"Baixe {name}",delete:"Excluir {name}",copyInstallUrl:"Copiar URL de instalação",install:"Instale {name}",publishToStoreSuccess:"Blocklet publicado na Loja com sucesso",connectStoreSuccess:"Loja de Blocos conectada com sucesso",uploadToStoreSuccess:"Blocklet enviado para a Store com sucesso, você precisa publicá-lo na Store",viewLastRelease:"Visualizar última versão",reconnectStoreTip:"Após reconectar, um novo desenvolvedor será vinculado. Você tem certeza de que deseja reconectar?",deleteProject:{title:"Excluir {name}",scan:"Use os seguintes métodos para apagar {name}",confirm:"Confirmar usando a Carteira DID",success:"O projeto Blocklet foi excluído, por favor, continue sua operação",tip1:"O projeto do Blocklet não será recuperável após a exclusão",tip2:"Você não poderá mais publicar novas versões para o Blocklet excluído, o que significa que o Blocklet não será mais atualizado na Loja.",tip3:"Excluir o Bloco não afetará sua versão atualmente publicada na Loja.",description:"Após excluir o Blocklet, você enfrentará os seguintes problemas, você tem certeza de que deseja excluí-lo?"},resourceTip:"Atualmente, como um Bloquete de Recursos, ele não pode ser instalado diretamente da Loja.",whyCantSeeInStore:"Você pode publicar o Blocklet atual na loja, e ele poderá ser usado no mundo todo",whyCantSeeResourceBlockletInStore:"Você pode publicar o Blocklet atual na loja, e ele poderá ser usado em todo o mundo. Blocklets são ocultos da página de listagem da loja por padrão.",tenantScope:"Inquilino",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"O Blocklets não está em execução, por favor, inicie-o primeiro",resourceEmptyTip:"Não há recursos disponíveis",steps:{resources:"Por favor, selecione os recursos que precisam ser associados ao Blocklet atual, pois esses recursos serão instalados juntamente com o Blocklet.",blocklets:"Selecione os blocos a serem associados.",version:"Defina a versão de lançamento e o log de alterações.",introduction:"Uma introdução clara pode destacar efetivamente o seu Blocklet. Você pode usar a sintaxe Markdown para escrevê-lo e visualizá-lo.",branding:"Descreva as informações básicas do seu Blocklet. Essas informações serão apresentadas aos usuários na loja."},branding:"Marca",brandingHelp:"Mais informações sobre o blocklet serão exibidas na Loja",resourceSelect:"Selecionar recurso dos blocos",resourceUpload:"Carregar recurso do seu disco (index.html é necessário no arquivo)",deleteStoreTip:"Tem certeza de que deseja remover {name} da lista da Loja de Conexão?",disconnectStoreTip:"Após desconectado, o Blocklet será removido da loja. Você tem certeza que deseja desconectar?",connectOrUpload:"Conectar ou Enviar",developerInfo:"Informações do Desenvolvedor",autoUploadTip:"Enviar automaticamente o blocklet para a Loja após o lançamento da criação",possibleSameStoreTip:"Tente resolver blocklets de dependência na mesma Loja de Blocklets antes de fazer o upload sempre que possível",needProjectId:"Por favor, crie um projeto primeiro",projectSettings:"Configurações do Projeto",noStoreSelected:"Por favor, selecione uma das lojas existentes ou adicione uma nova loja para continuar",installToThisServer:"Instale neste servidor",forceResourceBlocklet:"Força definida como um Blocklet baseado em recurso",resourceDocker:"Crie Blocklet a partir do Docker",resourceSelectTitle:"Recurso",resourceUploadTitle:"Carregar",resourceDockerTitle:"Docker",resourceDockerInputTip:"Por favor, insira o comando docker run",docker:{pleaseInputDockerCommand:"Por favor, insira o comando docker run",volumeTip:"O volume deve começar com $BLOCKLET_DATA_DIR ou $BLOCKLET_APP_DIR",volumeTip2:'Volume não pode conter ".."',noAllowTheArg:"O argumento não é permitido no comando docker run",needCustomInput:"Configure o valor ao instalar blocklet",dockerParams:"Parâmetros Docker",dockerCommand:"Comando Docker",dockerImageName:"Nome da Docker Image",addItem:"Adicionar parâmetro de execução Docker",envKey:"Chave de variável de ambiente",publishTips:"A porta externa final será atribuída automaticamente pelo blocklet",volumeTips:"O volume precisa começar com $BLOCKLET_DATA_DIR ou $BLOCKLET_APP_DIR",modifyParam:"Modificar parâmetro de execução do Docker",modifyEnv:"Modificar Variável de Ambiente",paramDetail:"Detalhe do Param",description:"Descrição",secure:"Seguro",shared:"Compartilhado",required:"Obrigatório",prefix:"Prefixo",path:"Caminho",name:"Nome",portType:"Tipo de Porta",dockerImageNameError:"Nome da imagem Docker não pode conter espaços",autoGenerated:"Gerado automaticamente",dockerCMDError:"O comando Docker CMD suporta apenas caracteres simples",proxyBehavior:"Comportamento do Proxy",serviceProxy:"Serviço",directProxy:"Direto",nextTab:"Analisar Comando"},storeRule:{maxImageCount:"A loja permite no máximo {max} capturas de ecrã.",minImageCount:"A loja requer pelo menos {min} {unit}.",minImageSize:"A imagem de captura de tela do {name} deve ter pelo menos {width}x{height}.",logoFormat:"O formato da imagem do logo suporta apenas [{format}].",warning:"Aviso",screenshot:"Captura de tela",screenshots:"Capturas de tela",first:"1º",second:"2º",third:"3º"},store:"Loja Blocklet",endpoint:{tab:"Blocklet Remoto",uploadToEndpoint:"Você pode carregar o Blocklet atual para o Blocklet especificado.",addEndpoint:"Adicionar Endpoint do Blocklet",urlEmpty:"URL do endpoint não pode estar vazio",addFailed:"Falha ao adicionar o endpoint do Blocklet:",deleteEndpoint:"Apagar Endpoint do Blocklet",deleteDesc:'Confirmar exclusão do endpoint Blocklet {name}? <br/><span style="color: {color}">*Após remover este endpoint Blocklet, você não poderá atualizar os aplicativos instalados a partir deste endpoint Blocklet, a menos que os adicione novamente.</span>',confirmDesc:"Por favor, insira {name} para apagar",visitEndpoint:"Visite Blocklet",disconnectEndpointTip:"Tem certeza de que deseja desconectar {url}? Após a desconexão, o Blocklet não será enviado para este endpoint.",deleteFailed:"Falha ao excluir o endpoint do Blocklet",publishToEndpointSuccess:"Blocklet publicado no Endpoint com sucesso",uploadToEndpointSuccess:"Blocklet enviado para Endpoint com sucesso"},autoPublishErrorTip:"Publicação automática para {storeName} falhou: {error}",singleton:"Apenas uma instância",singletonTip:"Quando o modo singleton estiver ativado, o aplicativo não pode executar várias instâncias ao mesmo tempo. Como seu aplicativo usa o modo singleton, a implantação blue-green não pode ser usada para atualizações ou reinicializações."},titleValidationError:"O comprimento do título deve estar entre 3 e 20 caracteres",descriptionValidationError:"O comprimento da descrição deve estar entre 3 e 80 caracteres",whyNeedAppPid:"Se o seu aplicativo foi migrado, o DID permanente é o DID gerado quando este Blocklet foi instalado originalmente",usingDocker:"Este Blocklet será executado usando docker",gotoVisitError:"Impossível acessar a URL do Blocklet, tente novamente mais tarde",usingIsolation:"Este Blocklet será executado com isolamento de rede",dockerImage:"Suporte Docker",mountPoint:{description1:"Esta alteração pode quebrar URLs contendo o antigo ponto de montagem, o que pode levar a:",case1:"Referências de recursos quebradas entre Blocklets neste app",case2:"URL quebrado se você as compartilhou publicamente",description2:"Você pode configurar um redirecionamento do ponto de montagem antigo para o novo para minimizar possíveis alterações drásticas."},skSourceMigratedTip:"Este app foi lançado com uma carteira gerenciada por servidor e migrou para DID Wallet para melhor segurança.",skSourceManagedTip:"Este app está rodando com uma carteira de servidor gerenciada, por favor migre para a DID Wallet o mais rápido possível para melhor segurança.",zeroDowntime:"Sem tempo de inatividade"},dashboard:{nodeDid:"Nó",ownerDid:"Proprietário",routingEngine:"Motor de Roteamento",ownerNftURL:"Proprietário NFT",expirationLeft:"Expiração Restante",startFromCrashTip:"O servidor Blocklet não foi encerrado normalmente da última vez, por favor, inicie manualmente os blocklets que precisam ser executados.",runtimeConfig:{blockletMaxMemoryLimit:"Limite máximo de memória do Blocklet",daemonMaxMemoryLimit:"Limite máximo de memória do servidor"},document:"Saiba mais em nossa documentação",database:"Banco de dados"},store:{nameSort:"Nome",popularSort:"Popularidade",headerDescription:"Encontre e Instale seus Blocklets",detail:{purchase:"Comprar {name}",open:"Abra {name}",install:"Instale {name}",upgrade:"Atualize {name}",empty:"Sem introdução"},blockletRegistry:{changeFailed:"Falha ao Alterar a Loja de Bloco:",addFailed:"Falha ao adicionar a Loja de Blocos: {name}",editFailed:"Falha ao editar a Loja de Blocklets",switchRegistry:"Alternar Bloco da Loja",addRegistry:"Adicionar Loja de Blocos",editRegistry:"Editar Loja de Blocklets",deleteRegistry:"Excluir Blocklet Store",haveSameRegistry:"A mesma loja de blocos existe",registryName:"Nome da Loja de Blocklet",registryUrl:"URL da Loja de Blocklet",registryNameEmpty:"O nome da loja do Blocklet não pode estar vazio",registryUrlEmpty:"O URL da loja Blocklet não pode estar vazio",deleteDesc:"Confirmar Excluir a loja de blocos {name} ?",confirmDesc:"Por favor, insira {name} para excluir"},purchase:{title:"Comprar {name}",confirmed:"Sua compra de bloco NFT foi verificada",declined:"Você não forneceu a compra válida do NFT do blocklet",waiting:"Aguardando compra concluída...",purchase:{title:"Compra de NFT",description:"Pague algum token antes de instalar este bloco se você ainda não comprou este bloco"},verify:{title:"Verificar NFT",description:"Seu NFT será verificado antes de instalar este blocklet se você comprou e possui o NFT de compra em sua Carteira DID",auth:{title:"Compra de Credencial Necessária",scan:"Conecte DID Wallet para fornecer compra de blocklet NFT",confirm:"Revise esta operação em sua Carteira de Identidades Descentralizadas",success:"Sua compra de NFT foi verificada e a instalação começou"}},auth:{title:"Comprar {name}",scan:"Escanee o seguinte código QR com sua carteira DID",confirm:"Confirme em sua conta",success:"Compra NFT enviada para sua carteira DID"},launch:"Lançar {name}",autoLaunch:"{name} comprou com sucesso, redirecionando para a página de lançamento..."},tooltip:{upgradeServer:"Blocklet requer Blocklet Server versão {version}, a versão atual do Blocklet Server é {serverVersion}"}},setting:{saveSuccess:"Configurações salvas com sucesso",unSavedTip:'Existem alterações não salvas, clique em "Salvar alterações" para salvá-las.',unSavedLeaveTip:"Existem alterações não salvos, tem certeza que deseja sair da página?",form:{name:"Nome do seu servidor",nameRequired:"Descrição do servidor é obrigatória",namePlaceholder:"Nome do servidor",description:"Descreva seu servidor",descriptionHolder:"Descrição do servidor",descriptionRequired:"É necessário uma descrição do servidor",domain:"Seu nome de domínio do servidor",domainPlaceholder:"Nome do Domínio do Servidor",domainRequired:"É necessário um domínio de servidor",ipPlaceholder:"IP",ipRequired:"IP é obrigatório",registry:"Loja de Blocklets",registryPlaceholder:"Loja de blocos para buscar blocos",registryRequired:"A loja Blocklet é obrigatória",registerUrl:"URL do Blocklet Launcher",registerUrlPlaceholder:"Insira a URL do seu Blocklet Launcher preferido, você pode usar o oficial com segurança",webWalletUrl:"URL da carteira DID",webWalletUrlPlaceholder:'Por favor, insira a URL da sua "Carteira DID" hospedada, você pode usar a oficial com segurança',nftDomainUrl:"URL do Domínio NFT",nftDomainUrlPlaceholder:'Por favor, insira a URL do seu domínio "NFT", você pode usar o oficial com segurança',enableWelcomePage:"Ativar página de boas-vindas",welcome:{switchLabel:"Página de Boas-vindas"},upgrade:{title:"Atualize o Servidor Blocklet para a versão {version}",description:"Durante a atualização, seu servidor Blocklet entrará no modo de manutenção por alguns minutos enquanto a atualização for concluída.",dialog:'Clique em "confirmar" para instalar a atualização. O Blocklet Server entrará em modo de manutenção até que a atualização seja concluída e retornará ao modo de produção automaticamente.',confirm:"Atualizar",switchLabel:"Verificação de Atualização Automática",enableBetaRelease:"Ativar lançamento Beta",setup:"Preparando a atualização",installing:"Instalando o servidor Blocklet v{version}",restarting:"Reiniciando o Servidor Blocklet",cleanup:"Migrando dados do servidor Blocklet",verifying:"Verificando o servidor Blocklet v{version}",rollback:"Servidor Blocklet Rollback",complete:"Atualização concluída!",progress:"Atualizando {name}",check:"Verificar atualizações",latest:"Você está usando a versão mais recente."},restart:{title:"Reiniciar o servidor Blocklet",description:"Durante a reinicialização, o servidor do Blocklet entrará no modo de manutenção até que a reinicialização seja concluída.",dialog:'Clique em "confirmar" para reiniciar. O servidor Blocklet entrará no modo de manutenção até que a reinicialização seja concluída e retornará automaticamente ao modo de produção.',confirm:"Reiniciar",setup:"Preparando o reinício",verifying:"Verificando o Servidor Blocklet",restarting:"Reiniciando o Servidor Blocklet",cleanup:"Certifique-se de que tudo está OK",rollback:"Limpar o estado sujo",complete:"Manter completo!",progress:"Reiniciando {name}"},register:{title:"Registre-se no Blocklet Launcher",description:"Uma vez adicionado, você pode iniciar blocos nesta servidor de blocos a partir de {url}.",button:"Registrar"},monitor:{diskThreshold:"Enviar alerta quando o uso do disco exceder (%)",diskThresholdPlaceholder:"Por favor, defina o limiar de alerta de uso de disco"},security:{switchLabel:"Isolamento do Sistema de Arquivos",switchTips:"Após desativar esta opção, o sistema de arquivos do Blocklet não estará mais em isolamento, o que pode representar um risco de software malicioso danificar o sistema de arquivos.",warningTips:"O recurso de isolamento do sistema de arquivos não pode funcionar. Atualize a versão node.js (a versão atual é {version}) para a v21.6.0 ou superior."},docker:{switchLabel:"Executar Blocklets em Containers",switchTips:"Após ativar esta opção, os blocklets serão executados usando contêineres, o que pode melhorar a segurança geral do servidor.",notInstalled:"Não é possível ativar a execução do contêiner porque o Docker não está instalado ou não possui as permissões necessárias para executar.",needCloseFileSystemIsolation:"O isolamento do sistema de arquivos e o modo de contêiner docker não podem ser ativados ao mesmo tempo"},dockerNetwork:{switchLabel:"Isolamento de Rede de Container",switchTips:"Depois de habilitar essa opção, os blocklets executam de forma mais segura: um blocklet não consegue acessar o servidor de blocklets ou outros blocklets em aplicativos.",needEnableDocker:"O modo de container deve ser ativado para habilitar o isolamento de rede"},restartAllContainers:{title:"Reiniciar Todos os Contêineres",description:"Reiniciar todos os contêineres e manter os blocklets em execução.",dialog:'Clique em "confirmar" para reiniciar todos os blocklets do contêiner e manter o status dos blocklets em execução.',confirm:"Reiniciar",setup:"Preparando para reiniciar",verifying:"Verificando o servidor Blocklet",restarting:"Reiniciando todos os contêineres em segundo plano",cleanup:"Assegure-se de que tudo está OK",rollback:"Limpar o estado sujo",complete:"Manutenção completa!",progress:"Reiniciando todos os contêineres em segundo plano"},restartAllBlocklet:{title:"Reiniciar todos os Blocklets",description:"Reiniciar todos os Blocklets que estão em execução ou com erro neste servidor.",dialog:'Clique em "confirmar" para reiniciar todos os blocklets em segundo plano.',confirm:"Reiniciar",setup:"Preparando para reiniciar",verifying:"Verificando Blocklet Server",restarting:"Reiniciando todos os Blocklets em execução ou com erros em segundo plano",cleanup:"Certifique-se de que tudo está OK",rollback:"Limpar o estado sujo",complete:"Manutenção completa!",progress:"Reiniciando todos os Blocklets em execução ou com erro em segundo plano"},enableSessionHardening:{switchLabel:"Ativar Endurecimento de Sessão",switchTips:"Após habilitar esta opção, operações de mutação exigirão verificação estrita, o que pode melhorar a segurança geral do servidor."}},accessKey:{accessKeyId:"ID da Chave de Acesso",lastUsed:"Último utilizado em",tip:"Insira um nome para esta chave de acesso",saveSecretTip:"Esta é a única vez que sua chave secreta de acesso pode ser visualizada e não pode ser recuperada. No entanto, você pode criar novas chaves de acesso a qualquer momento.",iKnow:"Eu copiei e salvei a Chave de Acesso Secreta",showSecret:"Mostrar Chave de Acesso Secreta",hideSecret:"Esconder Segredo",title:"Excluir chave de acesso",descriptionNoTime:"Isso irá excluir permanentemente a chave de acesso {key} com o nome {name}, que nunca foi usada antes",description:"Isso irá excluir permanentemente a chave de acesso {key} com o nome {name}, que foi usada pela última vez em {time}, {timeAge}",confirm_desc:"Por favor, digite {name} para deletar",remark:"Nome da Chave de Acesso",remarkInvalid:"O nome da chave de acesso é obrigatório",passport:"Selecione um passaporte para a chave de acesso para conceder ou limitar permissões",expireTime:"Defina uma data de expiração para a chave de acesso para melhor segurança",authType:"Tipo de Autenticação",resourceType:"Tipo de Recurso",resourceId:"ID do Recurso",component:"Componente",expired:"{time} expirou",accessKeySecret:"Chave de Acesso Secreta",simple:"Simples",signature:"Assinatura",signatureDesc:"Segurança de nível empresarial usando criptografia. Requer integração de código com o SDK (@blocklet/server-js), ideal para cenários com altos requisitos de segurança e transmissão de dados críticos",simpleDesc:"Mecanismo de Token Bearer leve, semelhante à chave OpenAPI, suporta chamadas de API RESTful e integração de serviços de terceiros. Não requer codificação, integração rápida via cabeçalho HTTP, perfeito para desenvolvimento rápido",viewSecret:"Você pode acessar a chave secreta posteriormente na página de detalhes da chave de acesso",usage:"Uso",listTitle:"Gerencie o acesso seguro à API com Chaves de Acesso",tooltipTitle:"Gere e gerencie credenciais que permitem que sistemas confiáveis interajam com seu aplicativo programaticamente. Chaves de acesso permitem automação segura e integração perfeita em suas ferramentas e serviços."},webhook:{add:"Adicionar Integração",delTitle:"Excluir Integração",requiredError:"Por favor, forneça um {type} válido",confirm_desc:"Por favor, insira {name} para excluir",test:"Teste",description:"Isto irá excluir permanentemente a integração com o ID {id}",columns:{description:"Olá, ID",params:"Parâmetros",createdAt:"Criado em"},testSuccess:"Mensagem de teste enviada com sucesso",duplicateError:"O URL já existe",updateSuccess:"Status atualizado com sucesso"},dns:{step1Title:"Aceda ao seu registo de domínio",step1Desc1:"Aceda ao seu registo de domínio, encontre a página de gestão de domínio e localize a página de definições do servidor de nomes. Pode procurar o seu registo de domínio em",step2Title:"2. Encontre as definições de DNS para {url}",step2Desc:'Isso pode ser chamado de "Gestão de DNS", "Configurações avançadas", ou similar.',step3Title:"3. Adicione os seguintes registos DNS",step3Desc:'O nome pode ser chamado de "host", "hostname" ou "alias"'},domain:{addingDomain:"Adicionando domínio...",checkingResolvable:"Verificando o status do domínio...",cannotResolve:"{domain} não pode ser resolvido, verifique sua configuração de DNS",resolvedAddressError:"{domain} não está configurado corretamente com um registro CNAME apontando para {curDomain}",invalidDNSReminder:"{error}. No entanto, pode continuar a adicionar o domínio, mas a geração automática de certificados não está disponível.",continueAdd:"Continuar Adicionando",conflictTitle:"{domain} já foi usado",conflictDescription:'{domain} já está em uso por "{title}". Ao clicar em confirmar, o domínio será removido de "{from}" e adicionado a "{to}".'},aigne:{modelAdapter:"Fornecedor de Modelo",modelName:"Nome do Modelo",desc:{modelAdapter:"A plataforma que fornece um serviço de modelo AI",modelName:"A versão específica do modelo ou nome do modelo",key:"A Chave API {provider} usada para autenticação",baseUrl:"Insira a URL da sua instância AIGNE Hub (ex., https://hub.aigne.io). Use a sua se estiver auto-hospedando.",accessKeyId:"A chave ID única para acessar o modelo",secretAccessKey:"A chave secreta emparelhada com o ID da chave de acesso",docLink:"Veja a documentação oficial para mais detalhes e referência de API"},failed:"Falha ao salvar a configuração AIGNE",authorizeAigneHub:"Conectar a {name}",baseUrl:"URL do Hub AIGNE",disconnect:"Desconectar",disconnectConfirm:"Tem certeza de que deseja desconectar-se do AIGNE Hub? Isso removerá a configuração atual de AI.",disconnectSuccess:"Desconectado com sucesso do AIGNE Hub",disconnectFailed:"Falha ao desconectar do AIGNE Hub",testConnection:"Testar conexão {provider}",invalidUrl:"URL do {provider} é inválida",description:"A configuração atual terá efeito quando {name} estiver em execução. É necessário salvar e reiniciar o Blocklet para ter efeito.",revokeUrlAuthTitle:"Confirmar a alteração do {url}?",revokeUrlAuth:"Tem certeza de que deseja alterar o {url}? Após a modificação, sua autorização será inválida e precisará ser reautorizar!",testSuccess:"Conectado com sucesso ao AIGNE Hub",check:"Verificar",apiKeyNotAuthorized:"A chave API não está autorizada. Por favor, clique no botão conectar ao AIGNE Hub para autorizá-la",switchUser:"Trocar Usuário",connectTimeOut:"Conexão com {provider} expirou, por favor tente novamente mais tarde",restart:{title:"Reiniciar Blocklet",connectedContent:"Seu Blocklet está atualmente conectado a {provider}. A configuração terá efeito após a reinicialização. Deseja reiniciar agora?",notConnectedContent:"Seu Blocklet está atualmente desconectado de {provider}. A configuração terá efeito após a reinicialização. Deseja reiniciar agora?",confirm:"Reiniciar Agora",cancel:"Reiniciar Depois"},testFailed:"Não foi possível conectar ao AIGNE Hub. Verifique a URL ou sua rede.",addCredits:"Comprar Créditos",transaction:"Transações",connected:"Conectado com sucesso",account:"Informações da Conta",pendingCredit:"Encargos Pendentes",infinite:"Ilimitado",config:"Configurar AIGNE Hub"}},notification:{title:"Notificações",history:"Histórico",channelSettings:"Configurações do canal",empty:"Nenhuma atividade ainda",viewAll:"Ver Todos",showRead:"Mostrar Leitura",markAllAsRead:"Marcar todos como lidos",markAsRead:"Marcar como Lido",proceed:"Continue",checkingForUpdates:"Verificando atualizações...",email:{enable:"Ativar notificação",from:"Remetente do Email",host:"Servidor SMTP Host",port:"Porta do Servidor SMTP",user:"Nome de utilizador SMTP",secure:"Conexão Segura",password:"Senha SMTP",fromRequired:"O remetente de e-mail é obrigatório",fromInvalid:"O remetente do email é inválido",receiverRequired:"É necessário o destinatário do e-mail",receiverInvalid:"O destinatário do email é inválido",hostRequired:"O servidor de hospedagem SMTP é obrigatório",hostInvalid:"O host do servidor SMTP é inválido",portRequired:"A porta do servidor SMTP é obrigatória",portInvalid:"A porta do servidor SMTP é inválida, a porta deve estar entre 1 e 65535",userRequired:"É necessário fornecer o nome de usuário do servidor SMTP",passwordRequired:"É necessário fornecer a senha do usuário do servidor SMTP",testSuccess:"Teste de envio de email realizado com sucesso",testFailed:"O envio do email de teste falhou",testReceiver:"Receptor de Email",testSendEmail:"Teste de envio de email",inputTestReceiver:"Por favor, insira o e-mail do destinatário de teste",disable:"Cancelar notificação por e-mail",disableDescription:"Após cancelar a inscrição, você não receberá mais notificações por e-mail. Para receber notificações por e-mail, você pode se inscrever novamente nesta página.",unsubscribe:"Cancelar inscrição de notificação por email",unsubscribeDescription:"Após o cancelamento da inscrição, você não receberá mais nenhuma notificação por e-mail.",subscribe:"Inscrever-se",subscribeDescription:"Para receber notificações por email, você pode se inscrever novamente na página de configurações.",companyName:"Nome da Empresa",companyLink:"Link da Empresa",companyAddress:"Endereço da Empresa",supportEmail:"Email de Suporte",emailInvalid:"Email inválido",linkInvalid:"Link inválido, deve começar com http ou https",signature:"Assinatura",signatureTooltip:"A assinatura de e-mail é usada na parte inferior para fornecer ao destinatário informações importantes sobre o remetente."},wallet:{description:"Notificações da Wallet DID estão sempre habilitadas para todos os usuários."},webhooks:{description:"Notificações enviadas através de webhooks estão sempre habilitadas para todos os usuários."},comingSoon:"Mais canais de notificação estão em construção",unsubscribe:"Cancelar inscrição",unsubscribeSucceed:"Cancelar inscrição bem-sucedida",unsubscribeFailed:"Falha ao cancelar a inscrição",unsubscribeTokenRequired:"O token de cancelamento é obrigatório",unsubscribeTokenExpired:"O token de cancelamento de inscrição expirou",unsubscribeTokenInvalid:"O token de cancelamento da inscrição é inválido",installComponentError:"Componente {name} desinstalado não encontrado",installingComponent:"Instalando o componente {name}",pushKit:{enable:"Ativar notificação",endpoint:"PushKit endpoint",endpointInvalid:"O endpoint do PushKit é uma URL inválida",testSuccess:"Teste PushKit enviado com sucesso",testFailed:"Teste do envio PushKit falhou",testReceiver:"Receptor PushKit",testSend:"Teste o envio do push-kit",inputTestReceiver:"Digite o receptor de teste",receiverRequired:"É necessário o receptor PushKit",pushPath:"Caminho da api para push-kit (padrão /api/push)",did:"PushKit Blocklet DID",customOptions:"Opções Personalizadas"},notificationDetails:"Detalhes da Notificação",receiver:"Receptor",sendStatus:{success:"Enviado",failed:"Falha",sentTime:"Enviado em: {date}",pending:"Pendente",reason:{enabled:"Usuário ativou notificação de {channel}",disabled:"O usuário não ativou a notificação de {channel}",unavailable:"O Blocklet atual não configurou notificação {channel}",available:"Blocklet atual configurou notificação {channel}",notSent:"Mensagem atual não foi enviada para {channel}",offline:"Usuário está offline"},count:"{count}",total:"Total"},filter:"Filtrar",notificationPreview:"Pré-visualização de Notificação",resend:"Reenviar",resendLimit:"Você pode reenviar uma notificação até três vezes por dia.",from:"De",to:"Para",body:"Corpo",notificationTitle:"Título",createdAt:"Criado em",status:"Status",system:"Sistema",severity:"Gravidade",config:"Configs",selectChannels:"Selecionar Canais",selectChannelsTip:"Selecione os canais para reenviar",resendFailedOnly:"Reenviar apenas para canais com falha",statistics:"Estatísticas",allSender:"Todos os Remetente",allSeverity:"Todas as Severidades",severityType:{info:"Info",success:"Sucesso",warning:"Aviso",error:"Erro"},clear:"Limpar",allDone:"Concluído",filterType:{all:"Tudo",unread:"Não lidas"},viewMore:"Ver Mais"},router:{routerSetting:"Domínios e URLs",certSetting:"Certificados SSL",defaultSite:"Padrão",urlHelperText:"URLs que não começam com HTTP/HTTPS são considerados caminhos relativos",empty:"Clique em Ações para configurar o Mapeamento de URL",healthy:{ok:"O blocklet ou serviço está em execução",error:"Bloco ou serviço não está sendo executado ou não está instalado"},service:{select:"Selecione os Serviços do Blocklet (Opcional)",what:"Os serviços do Bloco são tubulações executadas contra a solicitação antes de redirecionar para o bloco a montante"},nonProvider:{title:"Aviso de Troca de Motor",description:"Se você trocar o motor para nenhum, sua página atual pode não funcionar corretamente porque o motor anterior será interrompido. Tem certeza de que deseja continuar?",confirm:"Eu entendo, continue"},validation:{urlRequired:"URL é obrigatório",redirectCodeRequired:"O código de redirecionamento é necessário",didRequired:"Blocklet é obrigatório",pathPrefixTooLong:"O prefixo do URL não pode exceder {length} caracteres",pathPrefixCannotBeEmpty:"O Prefixo URL não pode ficar vazio",domainRequired:"O domínio do servidor é necessário",invalidUrl:"Por favor, forneça um URL válido",pathPrefixRequired:"É necessário um prefixo de URL",redirectUrlRequired:"É necessário um URL de redirecionamento",rewriteUrlRequired:"É necessário reescrever o URL"},domain:{addSite:"Adicionar Site",validate:{emptyTip:"O domínio do site não pode estar vazio",suffixTip:"O domínio do site não pode incluir {suffix}"},add:{title:"Adicionar Nome de Domínio",description:"Por favor, forneça um nome de domínio válido",confirm:"Adicionar",cancel:"Cancelar",blocklet:"Selecionar Bloco",redirect:"Para onde redirecionar o tráfego?",port:"Em qual porta o manipulador de solicitações precisa ouvir?",portTip:"Isso retorna a porta principal do manipulador de solicitação. Você pode personalizar isso",type:"Controlador de tráfego",component:"Selecione Componente",pageGroup:"Grupo de Página",pageGroupTip:"Este componente pode renderizar qualquer grupo de páginas listadas acima, deixe vazio para renderizar todas as páginas"},update:{title:"Atualizar domínio do site",label:"Domínio do Site",description:"Por favor, forneça um domínio de site válido"},setup:{tipStart:"Adicione os registros DNS para o domínio",tipEnd:"De acordo com as seguintes diretrizes",recordType:"Tipo de Registro",recordValue:"Valor do registro"},verify:{ok:"A resolução do domínio está normal",notResolved:"Este domínio não foi resolvido nem é acessível, verifique a configuração do DNS."},https:{ok:"Este domínio possui https ativado",bad:"Este domínio não habilitou https"},delete:{title:"Excluir Site",description:'Ao confirmar, você irá excluir o seu site existente "{name}". Digite "{name}" abaixo e selecione Excluir para concluir a mudança ou selecione Cancelar se deseja manter o seu site.',confirm_desc:"Por favor, insira {name} para confirmar"}},domainAlias:{nftDomain:"Configuração automática com Nomes DID",showTipHint:"Como configurar a resolução de nomes de domínio?",add:{title:"Adicionar Domínio Adicional",domainDescription:"Por favor, forneça um nome de domínio válido",forceTip:"Forçar adição se o nome de domínio já existir",helperText:"Se for inserido um URL HTTP ou HTTPS, ele será automaticamente convertido em um nome de domínio.",isDidDomainError:"Este domínio é um Domínio DID. Por favor, adicione-o usando o método de configuração automática de domínio.",tips:"Pode inserir um nome de domínio comprado em DID Names ou qualquer outro domínio. Se for um Domínio DID, deve apresentar o NFT do Domínio DID para prosseguir."},addCustomDomain:{name:"Domínio personalizado"},addDomainNFT:{showNFT:"Configure o domínio automaticamente",tips:"Pode inserir um domínio comprado na DID Names. Se um Domínio DID for detetado, terá de apresentar o NFT do Domínio DID para continuar.",connect:{scan:"Use um dos métodos abaixo para conectar {domain} a {appName}",confirm:"Confirmar em sua conta",success:"Autorização bem-sucedida",title:"Conecte nomes DID a {appName}"},buyTip:"Nomes DID farão a resolução de nome de domínio automaticamente, sem necessidade de configurar manualmente, e o blocklet atualizará o registro de resolução do nome de domínio automaticamente quando necessário. Se você ainda não tem DID Domain NFT, ",buy:"Comprar Domínio DID",topLevelDidDomainHint:"Para o Domínio DID, se inserir um domínio de nível superior (ex: example.com), ele será configurado automaticamente como www.example.com",authorizeFailed:"Falha ao obter as informações do NFT de domínio, tente novamente!"},delete:{title:"Excluir",description:'Após excluir "{domain}", o acesso a esse alias pode não funcionar corretamente.',confirmPlaceholder:'Insira "{domain}" para apagar'},custom:"Domínio personalizado",noCustom:"Sem domínio personalizado",noCustomTip:"Nenhum domínio personalizado está configurado com seu site. Para segurança aprimorada e melhor experiência do usuário, recomendamos configurar seu próprio domínio personalizado. Clique abaixo para começar."},domainSecurity:{title:"Segurança de Domínio",cors:{title:"Domínios CORS permitidos",description:'Lista de domínios que podem enviar solicitações de origem cruzada para {name}, separados por vírgula, use "*" para permitir qualquer um, o que não é recomendado',domainInvalid:"Por favor, informe uma lista válida de nomes de domínio"}},rule:{add:{title:"Adicionar Mapeamento de URL",confirm:"Adicionar",pathPrefix:"Qual é o prefixo da URL?",pathPrefixTip:"Se você definir o prefixo como '/meu-prefixo', todas as solicitações que começarem com esse prefixo serão direcionadas para o bloco configurado",blocklet:"Qual Blocklet será responsável por essas solicitações?",port:"Qual porta do blocklet será responsável por lidar com as solicitações?",portTip:"Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso",responseType:"Tipo de resposta",responseBody:"Conteúdo da resposta",responseBodyTip:"Cole aqui o conteúdo da sua resposta, não deve exceder 4096 caracteres",responseBodyRequired:"O conteúdo da resposta não pode estar vazio"},delete:{title:"Excluir mapeamento de URL",description:'Ao confirmar, você excluirá seu mapeamento de URL existente para "{name}". Digite "{name}" abaixo e selecione Excluir para concluir a alteração ou selecione Cancelar se você deseja manter seu mapeamento de URL.',confirm_desc:"Por favor, insira {name} para excluir",cancel:"Cancelar"},update:{title:"Atualizar Mapeamento de URL",confirm:"Sim, Atualizar",cancel:"Cancelar"}},cert:{name:"Nome do certificado",domain:"Nome de Domínio",action:"Ação",commonName:"Nome Comum",boundDomains:"Domínios",source:"Origem",expired:"Expirado",leftDays:"dias restantes",issuedOn:"Emitido em",expiryOn:"Expira em",fingerprintAlg:"Algoritmo de Impressão Digital",validityPeriod:"Período de validade",matchedSites:"Sites Correspondentes",upload:"Envio manual",publicCertHelperText:"Os certificados públicos podem ser baixados",nonPublicCertHelperText:"Certificados não públicos não podem ser baixados",protectedCertHelperText:"Certificados protegidos não podem ser editados",unprotectedCertHelperText:"Certificados desprotegidos podem ser editados",issuing:"Certificado sendo gerado",sourceTypes:{upload:"Upload Manual",lets_encrypt:"Vamos Criptografar"},table:{nodata:"Sem dados"},delete:{title:"Apagar Certificado",description:"Confirmar exclusão do certificado do domínio {domain}? Excluir pode afetar os serviços relacionados. Confirme que é seguro antes de prosseguir com a exclusão.",confirm:"Confirmar"},nginx:{title:"Atualizar Certificado",titleAdd:"Adicionar Certificado",pem:"Arquivo de certificado SSL",pemTip:'Por favor, insira aqui o arquivo do certificado do servidor, ele deve terminar com ".pem" ou ".crt"',key:"Arquivo de Chave Privada",keyTip:"Por favor, deixe seu arquivo de chave privada do servidor aqui, ele deve terminar com '.pem' ou '.key'",confirm:"Salvar",cancel:"Cancelar",invalidFile:"Você selecionou um arquivo inválido",empty:"Nenhum arquivo selecionado ainda",source:"Source",sourceTypes:{upload:"Upload Manual",lets_encrypt:"Vamos Criptografar"}},detail:{title:"Detalhes do Certificado"},genLetsEncryptCert:{title:"Gerar certificado Let's Encrypt",dnsTip:"Por favor, verifique se o nome de domínio aponta para o servidor Blocklet atual.",description:"Adicionar um certificado tornará o serviço mais seguro, e o Blocklet Server renovará automaticamente o certificado antes de expirar."}},gateway:{reqLimit:{switchLabel:"Habilitar limitação de solicitações concorrentes para desempenho confiável",rate:"Limite solicitações simultâneas por IP a {rate} por segundo (limite por IP)",title:"Limitação de solicitações",global:"Limite de solicitações simultâneas processadas pelo gateway para {global} por segundo (limite global)",burstFactor:"Fator de estouro para limitação de taxa, aplicado a limites globais e por IP (global: {global}, por IP: {rate})",methods:"Limitar solicitações simultâneas por IP para os métodos seguintes",burstDelay:"Atraso quando as solicitações em rajada excedem o limite por IP ({delay} segundos)"},cacheEnabled:{switchLabel:"Habilitar cache de gateway para aumentar o desempenho",title:"Cache de Gateway"},blockPolicy:{switchLabel:"Bloqueio de solicitações",addItem:"Adicionar Item",blacklistDesc:"Os pedidos desses IPs serão bloqueados de acessar este Servidor e todos os Bloquetes",inputPlaceholder:"Digite o endereço IP, intervalo CIDR ou URL",invalidItem:"Endereço IP, intervalo CIDR ou URL inválido",title:"Bloqueio de Solicitação",autoBlocking:{switchLabel:"Bloqueie solicitações ruins por detecção em tempo real",windowSize:"Tamanho da janela de tempo para contar solicitações (segundos)",windowQuota:"Número máximo de solicitações (por IP) permitido dentro da janela",blockDuration:"Duração para bloquear usuário por IP quando a cota for excedida dentro da janela (segundos)",statusCodes:"Os códigos de status a serem verificados"}},proxyPolicy:{switchLabel:"Executando atrás de proxies",trustRecursive:"Confiar em proxies recursivamente",trustRecursiveDesc:"Use o IP mais à esquerda na cadeia X-Forwarded-For",trustedProxies:"Proxies de Confiança",trustedProxiesDesc:"Requisições desses IPs serão confiáveis para obter o IP real do cliente",realIpHeaderLabel:"Cabeçalho do IP do Cliente",realIpHeaderDesc:"Se o Servidor Blocklet estiver sendo executado atrás de proxies como o CloudFront, você pode definir o cabeçalho do IP real do cliente aqui.",addItem:"Adicionar item",inputPlaceholder:"Digite o endereço IP, intervalo CIDR",invalidItem:"Endereço de IP inválido, intervalo CIDR",title:"Política de Proxy"},wafPolicy:{switchLabel:"Detectar e bloquear pedidos maliciosos com ModSecurity",modeDesc:"O modo do modsecurity (módulo modsecurity é necessário)",mode:{detectOnly:"Detectar apenas (não bloqueará solicitações)",on:"Em (bloqueará solicitações)"},logLevelDesc:"O nível de log para ModSecurity (0-9), 0 significa desativar o log de auditoria",inboundAnomalyScoreThresholdDesc:"O limite da pontuação de anomalia de entrada (1-100), valor menor significa mais rigoroso",outboundAnomalyScoreThresholdDesc:"O limite do score de anomalia de saída (1-100), valor menor significa mais rigoroso",docDesc:"Verifique a documentação para saber como configurar o modsecurity",title:"Firewall de Aplicação Web"}}},noMatch:{desc:"Não conseguimos encontrar a página que você está procurando"},health:{connectionErrorTip:"O Blocklet Server não consegue se conectar à rede, por favor verifique se o Blocklet Server foi interrompido ou se há um problema de rede",connectionRecoveryTip:"A conectividade do servidor Blocklet foi restaurada",connectionStoppedTip:"O servidor do Blocklet foi interrompido",wrongAccessUrlTip:"O endereço de acesso ao servidor Blocklet está incorreto, por favor, use o endereço de acesso correto"},debug:{title:"Seu servidor Blocklet está funcionando!"},team:{invite:{action:"Convidar Novo",setting:"Configurações de convite",enabled:"Desativar esta configuração limitará novos convites apenas para proprietário/administrador",disabled:"Habilite esta configuração para permitir que qualquer usuário convide novos usuários",inviter:"Convidado Por"},add:"Adicionar Novo",member:{name:"Nome",passport:"Passaporte",passports:"Passaportes",lastLogin:"Último login",lastLoginIp:"Último IP de login",source:"Registrar Fonte",source_derived:"Derivado do OAuth",source_wallet:"DID Carteira",filter:"Filtrar por",blockAccess:"Proibido fazer login",blockAccessDescription:"O usuário não conseguirá se conectar a esta aplicação",allowAccess:"Permitir Login",allowAccessDescription:"O usuário poderá se conectar a este aplicativo",updateRole:"Atualizar Função",removeUser:"Excluir Usuário",removeUserDescription:'Confirmar exclusão do usuário "{name}"?',revokePassport:"Revogar Passaporte",revokePassportDescription:"Uma vez que o passaporte seja revogado, o portador do passaporte não poderá usá-lo para fazer login novamente, tem certeza de que deseja continuar?",enablePassport:"Ativar Passaporte",enablePassportDescription:"Uma vez que o passaporte revogado for habilitado novamente, o titular do passaporte poderá usá-lo para fazer login novamente, você tem certeza de que deseja continuar?",passportPermissionTitle:"O passaporte tem as seguintes permissões:",search:"Procurar Membro",onlyApprovedMember:"Mostrar Aprovados Apenas",inviteDialog:{createInviteLink:"Gerar link de convite",createSuccessTip:"O link do convite foi criado com sucesso, clique para copiar e enviar o link para o membro convidado. Por favor, lembre-se de que este link de convite não pode ser reutilizado e expirará em {expireDate}."},error:{passportEmpty:"O campo do passaporte não deve estar vazio"},connectedAccounts:"Contas Conectadas",connections:"Conexões",federated:"Federado",switch:{did:"Trocar DID",profile:"Alternar Perfil",passport:"Trocar Passaporte"},settings:{notification:"Notificações",email:"Enviar email para mim quando alguns eventos acontecerem",wallet:"Enviar notificação para minha carteira quando alguns eventos ocorrem",phone:"Envie uma mensagem de texto para mim quando alguns eventos ocorrerem",webhook:"Webhooks",add:"Adicionar novo webhook",url:"URL personalizado",slack:"Slack Webhook",tested:"Mensagem de teste enviada"},activeUserSessions:"Sessões de Usuários Ativos",forceLogout:"Logout forçado",forceLogoutDescription:"Confirmar o logout forçado deste usuário?",openProfile:"Ver perfil",removeUserSuccess:"Usuário removido com sucesso",forceLogoutRemoveDescription:"Confirmar para forçar o logout deste usuário (Também remover todas as sessões de usuário)?",currentOwner:"Proprietário Atual"},transferNode:{name:"Transferir Propriedade",inviteDialog:{title:"Transferir servidor Blocklet",tips:{progress:"A transferência do servidor precisa ser aceita pelo destinatário para concluir a operação de transferência, e uma vez que o destinatário aceita, você não pode fazer login no servidor com o passaporte atual novamente.",newOwnerPermissions:"O novo proprietário terá o direito de gerenciar todas as operações, como membros, passaportes e Blocklets.",revoke:'Se você deseja cancelar o convite de transferência, você pode excluir o link de convite na página "Equipe -> Membros -> Convites".'},createInviteLink:"Gerar Link de Convite",createSuccessTip:"O link do convite foi criado com sucesso. Clique para copiar e enviar o link para o membro convidado. Por favor, note que este link de convite não pode ser reutilizado e expirará em {expireDate}."},delegateDialog:{title:"Autorização necessária",scan:"Use os seguintes métodos para autorizar o servidor a transferir a NFT de propriedade do servidor.",confirm:"Confirmar na sua conta",success:"Autorização bem-sucedida"}},transferApp:{name:"Transferir Propriedade",transferDialog:{title:"Aplicação de Transferência",tips:{progress:"A transferência do aplicativo precisa ser aceita pelo destinatário para concluir a operação de transferência e, uma vez que o destinatário a aceitar, você não poderá fazer login no aplicativo novamente com o passaporte atual.",newOwnerPermissions:"O novo proprietário terá o direito de gerenciar todas as operações, como membros, passaportes e configurações."},createTransferLink:"Gerar Link de Transferência",createSuccessTip1:'O link de transferência é criado com sucesso, o convidado deve usar <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> para receber a propriedade do aplicativo',createSuccessTip2:"Por favor, clique para copiar e enviar o link para o membro convidado, observe que este link de transferência não pode ser reutilizado e expirará em {expireDate}. Seu link de transferência será mostrado apenas uma vez e não poderá ser visualizado novamente após fechar este diálogo.",createSuccessTip3:"Após a transferência ser bem-sucedida, o aplicativo reiniciará automaticamente para que as alterações tenham efeito.",link:"Link de transferência",iKnow:"Eu copiei e salvei o link"},connectDialog:{title:"Autorização necessária",scan:"Use os seguintes métodos para autorizar o aplicativo a transferir a propriedade.",confirm:"Confirme na sua conta",success:"Autorização bem-sucedida"},receiveDialog:{title:"Receber Propriedade da Aplicação",scan:"Use os seguintes métodos para receber a propriedade do aplicativo.",confirm:"Confirme na sua conta",success:"Receber Propriedade com Sucesso"},successTitle:"Você se tornou o novo proprietário desta aplicação",visitDashboard:"Visite o Painel de Controle do Aplicativo",description:"Você pode transferir a propriedade do seu aplicativo para outra carteira ou outra pessoa."},permission:{create:{title:"Criar Permissão",description:"Formato: <ação>_<recurso>"},delete:{title:"Excluir Permissão",description:"Confirmar exclusão de {name}?"},error:{actionEmpty:"A ação não pode estar vazia",resourceEmpty:"O recurso não pode estar vazio",permissionTooLong:"A permissão não pode exceder {length} caracteres",descriptionTooLong:"A descrição não pode exceder {length} caracteres"}},passport:{create:{title:"Criar Passaporte",titleTip:"O título não pode ser modificado após criado, recomendado até 14 letras"},bind:{title:"Vincular Permissão",roleTip:"Você receberá todas as permissões do passaporte selecionado após a vinculação",permissionTip:"Você receberá as permissões selecionadas após a associação",transferLeftTitle:"Todas as permissões",transferRightTitle:"Permissões concedidas"},delete:{title:"Excluir Passaporte",description:"Os passaportes mantidos pelo usuário perderão todas as permissões depois que forem excluídos. Você tem certeza de que deseja continuar?"},error:{titleEmpty:"O título não pode estar vazio",titleTooLong:"O título não pode exceder {length} caracteres",descriptionEmpty:"A descrição não pode ficar vazia"},issuance:{pending:"Aguardando",create:{title:"Gerar link"},delete:{title:"Excluir Link Recebido",description:"Confirmar exclusão {link}?"}},issue:"Emitir passaporte",disableIssuance:"Desativar Emissão de Passaportes",enableIssuance:"Habilitar Emissão de Passaporte",disableIssuanceTip:'As operações "Emissão de Passaporte", "Convite de Membro" e outras serão desativadas',enableIssuanceTip:"A emissão de passaporte",trustedPassportIssuers:"Emissores de passaportes confiáveis",trustedIssuers:"Emissoras de Confiança",trustedFactories:"Coleções NFT confiáveis",trustedFactoriesTip:"Gerencie Coleções NFT confiáveis que podem ser usadas para trocar por um passaporte",searchFactoryAddress:"Buscar Coleção DID",configFactories:"Configurar Coleções de NFTs Confiáveis",configFactoriesTip:"Permitir que os usuários troquem NFTs por passaporte",factoryAddress:"Endereço da Coleção NFT",factory404:"Coleção NFT não encontrada",factoryAddressTip:"O endereço da coleção NFT deve existir na Chain principal da ArcBlock",role:"Tipo de Passaporte",ttl:"Política de Vencimento do Passaporte",ttlNever:"Nunca Expirar",ttlMint:"Desde a compra de NFT",ttlExchange:"Desde a Troca de Passaportes",ttlNeverTip:"O passaporte será válido até ser revogado",ttlMintTip:"O passaporte será válido desde a compra do NFT até o tempo especificado (ttl) ou cancelamento.",ttlExchangeTip:"O passaporte será válido a partir do momento em que o usuário trocar com sucesso até que você especifique o ttl ou revogue",ttlTip:'365d significa 365 dias, você também pode usar "30 dias" ou "24h"',validUntil:"Válido até: {date}",externalPassport:"Passaporte Externo",notTrustedIssuerTip:"O passaporte não pode ser usado porque o emissor não está na lista de emissores confiáveis",issuerDid:"ISSUER DID",addNodeToTrustedIssuers:"Adicione o servidor atual como um emissor de passaporte confiável",revoked:"Revogado",noPermission:"Sem permissão para executar esta operação",shouldNotDeleteCurrent:"Você não pode revogar seu passaporte atualmente em uso",mappingRule:"Regra de mapeamento",defaultRule:"Regra padrão",search:"Buscar Passaporte",searchIssuerDid:"Procurar emissor DID",issueBy:"Problema por {name}",configColor:"Configurar Cor do Passaporte",configColorTip:"Personalize a cor do passaporte",color:"Cor do Passaporte",description:"Use este passaporte para conectar {teamName} como {title}",displayBuiltin:"Integrado",displayCustom:"Personalizado",typesTip:"Personalize os tipos do passaporte, divididos por vírgula",issuanceDate:"Data de emissão: {date}",sourceMaps:{recover:"Recuperado",issue:"Emitido",invite:"Convidado",trusted:"Confiável"},related:"Passaportes Relacionados",operationLogs:"Registros de Operação",owner:"Proprietário",status:"Estado",statusMap:{valid:"Válido",revoked:"Revocado",expired:"Expirado"},view:"Gerir Passaportes",trustedPassportIssuersTip:"Gerenciar emissores de passaportes confiáveis que podem ser usados para emitir passaportes",issuanceTime:"Hora de Emissão",relatedDescription:"O passaporte atual é derivado do seguinte passaporte",passportExpireTime:"Definir uma data de validade para o Passport",customExpireTime:"Tempo de Expiração Personalizado",customExpireTimeIsInvalid:"Tempo de Expiração Personalizado é inválido"},inviting:{link:"Link de convite",inviter:"Convidante",delete:{title:"Excluir Link de Convite",description:"Confirmar exclusão {link}?"},disabledTip:"Convite não está habilitado"},whoCanAccess:{all:{title:"Acessível a todos"},owner:{title:"Apenas o proprietário"},invited:{title:"Apenas usuário convidado"}},userFollowers:{follow:"Seguir",unfollow:"Deixar de seguir",followersOnly:"Visível apenas para seguidores",followers:"Seguidores",following:"Seguindo",emptyFollowing:"Ainda não está seguindo nenhum usuário.",emptyFollowers:"Ainda não há seguidores.",title:"Seguir",invitees:"Convidados",emptyInvitees:"Você ainda não convidou ninguém."},orgs:{explain:"Permite aos usuários criar e entrar em organizações, atribuir funções e gerenciar recursos.",description:"Descrição",deleteConfirm:"Confirmar exclusão de {name}?",members:"Membros",myCreated:"Minhas Criações",myJoined:"Meus Aderidos",myCreatedEmpty:"Você ainda não criou nenhuma organização.",myJoinedEmpty:"Você ainda não entrou em nenhuma organização.",deleteConfirmDescription:"Excluir esta organização removerá todas as funções e recursos vinculados a ela. Os usuários permanecerão no sistema, mas perderão suas funções nesta organização. Esta ação não pode ser desfeita.",active:"Ativo",deleteOrg:"Remover Organização Atual",invitedAt:"Convidado em: {time}",joinedAt:"Entrou em: {time}",createNew:"Criar Nova Organização",viewAll:"Ver Todas as Organizações",validate:{nameEmpty:"O nome não pode estar vazio",nameTooLong:"O Nome não pode exceder {length} caracteres",descriptionTooLong:"A descrição não pode exceder {length} caracteres"},mutate:{title:"{mode} Organização",name:"Nome da Organização",createSuccess:"Organização criada com sucesso",updateSuccess:"Organização atualizada com sucesso",orgNotEnabled:"Organização não está habilitada",maxMemberPerOrg:"A organização pode convidar até {maxMemberPerOrg} membros",maxOrgPerUser:"Você pode criar até {maxOrgPerUser} organizações"},invite:{chooseUsersToInvite:"Escolha os usuários para convidar",success:"Convite enviado aos usuários",pleaseSelectUsers:"Por favor, selecione usuários",pleaseSelectRole:"Por favor selecione o papel",inviteExternalUsers:"Convidar usuários externos",failed:"{count} convites de usuários falharam, tente novamente mais tarde",remove:"Remover usuário",removeSuccess:"Usuário removido com sucesso",limit:"Limite",limitTip:"Limitar membros da org e orgs por usuário",maxMembers:"Máximo de membros por org",maxOrgs:"Número máximo de organizações por usuário",maxMembersTip:"Número máximo de usuários que podem ser convidados para esta organização",inviteLinkSendToEmail:"O link de convite foi enviado para o email ({email}), por favor verifique",enterEmailAddress:"Por favor, insira o endereço de email",inviteTitle:"Convidar usuários para participar de {orgName}"},member:{removeMemberConfirm:"Confirmar remover {name}?",removeMemberConfirmDescription:"Após a remoção, o usuário perderá os papéis e permissões na organização. Esta ação não pode ser desfeita.",removeInvitingMember:"Confirmar cancelamento do convite {name}?",removeInvitingMemberDescription:"Após a remoção, o usuário não poderá entrar na organização e precisará ser convidado novamente. Esta ação não pode ser desfeita."}}},launcher:{provider:"Provedor",adminUrl:"URL"},session:{blockAccess:"Você foi bloqueado de acessar este servidor"},launchBlocklet:{appInfo:"Informações do Aplicativo",appInfoDesc:"Confirme as informações do aplicativo",author:"Autor do aplicativo: {author}",setup:"Configurar Blocklet",redirect:"Redirecionar",alreadyRunning:"A aplicação {name} já está em execução neste servidor Blocklet",alreadyInstalled:"O aplicativo {name} já está instalado neste servidor de Blocklet",alreadyExists:"Esta aplicação já existe, redirecionando...",purchased:"Já Comprado",purchase:"Compra",nextStep:"Próximo Passo",agreement:"Contrato de Licença",agreeAll:"Concordar e Continuar",installing:"Instalando {appName} no {serverName}, pode levar alguns minutos para concluir, por favor aguarde...",redirecting:"{appName} foi instalado com sucesso, iniciando agora...",start:"Lançando",launch:"Instale o Blocklet no servidor",launchSuccess:"{appName} foi lançado com sucesso!",installSuccess:"Blocklet foi instalado e lançado com sucesso em {serverName}",openInRegistry:"Ver na Blocklet Store",subTitle:"Pronto para instalar o Blocklet {appName} em {serverName}",installingSubTitle:"{appName} instalando",access:"Abra o aplicativo",viewApplication:"Ver Aplicação",newVersion:"Nova Versão",newVersionDesc:"A aplicação já existe, mas a versão atual pode ser atualizada",upgradeNow:"Atualize agora",later:"Mais tarde",introduction:"Introdução",welcome:"Bem-vindo ao Assistente de Lançamento do Blocklet",accept:"Eu concordo com o EULA do Blocklet",license:"Licença de Aplicação",next:"Concordar com o EULA e continuar",purchaseApp:"Comprar Blocklet",setupAppDesc:"Inicialize o seu Blocklet",launched:"Completo",confirmInstall:"Confirmar Instalação",dialog:{title:"Torne-se proprietário do aplicativo",nftFreeDescription:"Por favor, apresente o espaço NFT do aplicativo e crie uma conta de aplicativo para continuar",nftPaidDescription:"Por favor, apresente espaço de app NFT e compra de app NFT para continuar",freeDescription:"Por favor, crie uma conta no aplicativo para continuar",paidDescription:"Por favor, apresente a compra de NFT do aplicativo e crie uma conta de aplicativo para continuar",confirm:"Confirme em sua conta",success:"Autorização bem-sucedida",authorizationTimeout:"Tempo de autorização esgotado"},waiting:{verifying:"Verificando meta do aplicativo...",downloading:"Baixando pacote de aplicativos...",downloadingComponent:"Baixando {name}",extractingComponent:"Extraindo {name}",extracting:"Extraindo pacote de aplicativos...",installing:"Instalando componentes do aplicativo...",installed:"Instalado",starting:"Iniciando o aplicativo...",done:"Seu app está lançando...",parsing:"Analisando metadados do app...",initializing:"Inicializando configuração do app...",initializingOwner:"Inicializando proprietário do app...",creatingSecurityRules:"Criando regras de segurança padrão...",assigningDomain:"Atribuindo domínio padrão...",waitingForDomain:"Aguardando a ativação do domínio padrão..."},error:{loadMetaFailed:"Falha ao carregar as informações do aplicativo",appMetaNotFound:"Nenhuma informação encontrada para este aplicativo",downloadFailed:"Falha ao baixar o aplicativo, tente novamente",installFailed:"Falha ao instalar o aplicativo, por favor tente novamente",startFailed:"Falha ao iniciar o aplicativo, por favor, tente novamente",launchFailed:"Falha ao iniciar o aplicativo, por favor, tente novamente",installedButStopped:"O aplicativo foi instalado com sucesso, mas não pode ser iniciado. Você pode iniciá-lo manualmente após resolver problemas de bloqueio",installedButError:"O aplicativo foi instalado com sucesso, mas falhou ao iniciar",restoreFailed:"Falha ao restaurar o aplicativo, por favor, tente novamente",resourceBlocklet:"Este bloco não pode ser iniciado diretamente, mas você pode adicioná-lo ao aplicativo existente."},steps:{introduction:"Introdução",installApp:"Instalar Aplicativo",purchaseSpace:"Comprar Espaço",prepareSpace:"Preparar Espaço"},installRelatedComponents:"Instalar Blocklets relacionados",canNotInstall:"Não é possível instalar",dockerBlockletCantInstall:"Não é possível instalar o Blocklet, porque o Blocklet Server não habilitou o Docker ou Docker Network",nav:{myApps:"Meus Apps",viewMyApps:"Ver Meus Apps"},withoutWallet:"Ignorar ligação da carteira DID",nwFailed:"Falha ao recuperar o fluxo de trabalho.",alreadyConsumed:"Sessão de lançamento consumida",redirectToLauncherBlocklet:"Redirecionando para o Launcher Blocklet"},issuePassport:{title:"Receber Passaporte",description:"Use os seguintes métodos para receber o passaporte emitido por {name}",dialog:{scan:"Use os seguintes métodos para reclamar o passaporte",confirm:"Confirme na sua conta",success:"O passaporte foi adicionado com sucesso em sua carteira",loginWithPassport:"Conecte-se com este passaporte",autoClose:"A página será fechada automaticamente em {seconds}s",autoJump:"A página será redirecionada automaticamente em {seconds}s"}},lostPassport:{title:"Passaporte perdido",description:"O dono de {name} pode usar os seguintes métodos para recuperar o passaporte; membros, por favor, contactem o dono para reemissão do passaporte.",return:"Cancelar operação de recuperação, voltar para a página inicial",receivePassport:"Receber passaporte",recoverDialog:{title:"Recuperar passaporte",scan:"Use os seguintes métodos para obter seu passaporte",confirm:"Confirme na sua carteira DID",success:"Recuperado com sucesso"},receiveDialog:{title:"Receber passaporte",scan:"Use os seguintes métodos para receber o passaporte",confirm:"Confirme na sua carteira DID",success:"Recebido com sucesso"},recoverPassport:"Recuperar passaporte"},invite:{message:"{name} o convida a ser o {role} do {dapp}",success:"Você se juntou com sucesso a {dapp}",receive:"Receber com",validUntil:"Válido até:",viewPermission:"Permissão de visualização",emptyPermission:"Permissão Vazia",open:"Abrir",description:{step1:"Baixe e configure sua {wallet}",step2:"Clique no botão acima para receber o passaporte",step3:"Faça login no {dapp} com o passaporte recebido"},transferNFTDialog:{title:"Aceitar Servidor Blocklet {name}",scan:"Conecte o Launcher para completar a recepção do servidor Blocklet.",confirm:"Revise esta operação em sua Carteira DID",success:"Conexão estabelecida com sucesso, aguardando confirmação de recebimento do Servidor"}},receive:{dialog:{title:"Receber passaporte",scan:"Após receber o passaporte, você pode usá-lo para entrar no aplicativo",confirm:"Confirme em sua conta",success:"Você está conectado com sucesso",scanWithDid:"Use a conta {did} para receber este passaporte. Depois de receber o passaporte, você pode usá-lo para fazer login no aplicativo."}},navigation:{navigation:"Navegação",actionFailed:"Ação Falhou",form:{themeConfig:"Configuração de Tema",contentConfig:"Configuração de Conteúdo",title:"Título",titlePlaceholder:"Por favor, insira o título de navegação",titleTooLong:"O comprimento do título deve ser menor que {len}",description:"Descrição",descriptionPlaceholder:"Por favor, insira a descrição de navegação",descriptionTooLong:"O comprimento da descrição deve ser menor que {len}",icon:"Ícone Padrão",iconPlaceholder:"Selecione um ícone",invalidIcon:"Ícone inválido",findMoreIcon:"Encontre mais ícones",link:"Link",linkPlaceholder:"Por favor, insira o link de navegação",invalidLink:"O link é inválido",component:"Componente",componentPlaceholder:"Por favor, selecione o componente de navegação",role:"Função",rolePlaceholder:"Por favor, selecione a função de navegação",locale:"Local",localePlaceholder:"Por favor, insira a localidade que precisa adicionar",localeExists:"{value} já existe",activeIcon:"Ícone Ativo",activeColor:"Cor Ativa",color:"Cor Padrão",colorPlaceholder:"e.g., #FF0000",invalidColor:"Cor inválida",searchIcons:"Pesquisar ícones",searchIconsPlaceholder:"Exemplo: mdi:home"},action:{add:"Adicionar navegação",addSub:"Adicionar sub navegação",edit:"Editar navegação",hide:"Ocultar navegação",show:"Mostrar navegação",del:"Excluir navegação",new:"Novo",noAddSub:"Componente desinstalado não pode adicionar subnavegação",noEdit:"Componente desinstalado não pode ser editado",noDel:"Não é permitido excluir a navegação incorporada",reset:"Redefinir",restConfirmTitle:"Redefinir a navegação {section} para o padrão?",restConfirmDesc:"Sua navegação personalizada será limpa e restaurada aos itens padrão.",resetSuccessful:"Reinício bem-sucedido",delTabBarTitle:"Você quer excluir este tab?",delTabBarDesc:"Após a exclusão, o tab será removido da lista de navegação."},access:"Acesso",members:"Membros",passport:"Passaporte",analytics:"Análise",system:"Sistema",services:"Serviços",dashboard:"Painel",studio:"Blocklet Estúdio",aigne:"Conexões IA",blockletService:"Serviço de Bloco",didConnect:"Identidade e Acesso",didSpaces:"Armazenamento e Backup",website:"Website Studio",notification:"Centro de notificações",operations:"Observabilidade",integration:"Integrações",developer:"Desenvolvedores",overviewDesc:"Monitore a saúde e os detalhes do aplicativo, e instale, inicie ou remova Blocklets facilmente em um só lugar.",didConnectDesc:"Adicione membros da equipe, defina opções de login e gerencie o acesso seguro para colaboração suave.",aigneDesc:'Configure conexões relacionadas à IA para seu blocklet, incluindo <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> e <a href="{mcpUrl}" target="_blank">servidores compatíveis com MCP</a>.',websiteDesc:"Gerencie o domínio, ajuste o tema, refine a marca e personalize a navegação para uma aparência de site única.",operationsDesc:"Veja análises, verifique logs de atividade, receba alertas e ajuste configurações avançadas conforme necessário.",integrationsDesc:"Vincule serviços externos por meio de Webhooks, chaves de acesso e servidores MCP para expandir as capacidades do aplicativo.",developersDesc:"Use logs, rastreamento de desempenho e documentação para criar, depurar e otimizar seu aplicativo.",didSpacesDesc:"Armazene e faça backup dos dados do seu aplicativo Blocklet com segurança para garantir proteção confiável e recuperação fácil.",publishDesc:"Publique seu aplicativo em lojas ou compartilhe por meio de links para que mais pessoas possam usá-lo."},storage:{spaces:{title:"DID Spaces",tips:"Dicas",label:"Digite o Gateway do DID Spaces",connected:{title:"Espaços de DID Conectados",tag:"Conectado"},connectedWithName:"Você conectou com sucesso a {name}",addedWithName:"Você adicionou com sucesso {name}",connects:"Conectar",reconnect:"Reconectar",addressCannotEmpty:"Endereço não pode estar vazio",addressNotValid:"{url} não é um endereço válido",authorize:{title:"Conecte {appName} ao DID Spaces",scan:"Use os seguintes métodos para permitir que o aplicativo {appName} se conecte ao DID Spaces",success:"Conectado com sucesso"},provideNFT:{title:"Por favor, mostre o espaço DID NFT para {appName}",scan:"Use os seguintes métodos para permitir que o app {appName} mostre o NFT do espaço DID",success:"Conexão bem sucedida"},backup:{title:"Backup",records:"Cópias de segurança",without:"Sem backup",succeeded:"Cópia de segurança efetuada",failed:"Cópia de segurança falhou",lastBackup:"Último backup",lastBackupTip:'Já se passaram {time} desde o seu último backup bem-sucedido. Verifique as suas definições de backup no separador "DID Spaces".',noBackup:"Sem backup",noBackupTip:"Ainda não foi criado nenhum backup. Recomendamos configurar backups regulares para proteger seus dados e configurações",pending:"Backup em andamento",timeout:"Tempo limite de backup"},autoBackup:{title:"Backup automático",enabled:"O backup automático está ligado",disabled:"O backup automático está desligado"},autoCheckUpdate:{title:"Verifique automaticamente notificações de nova versão",enabled:"A verificação automática de nova versão está ativada",disabled:"A verificação automática de novas versões está desativada"},backupSuccessfully:"Backup realizado com sucesso",restore:"Restaurar",restoreSuccessfully:"Restauração concluída com sucesso",gateway:{title:"Portão",select:"Selecione um Espaço DID",add:{title:"Adicionar Espaços DID",label:"Digite a URL dos Espaços DID",failed:"Falha ao adicionar DID Spaces",invalidUrl:"URL de gateway de espaços DID inválida",duplicate:"{name} já está conectado a este Blocklet"},delete:{title:"Desconectar",succeeded:"DID Space {name} desconectado com sucesso",failed:"Falha ao desconectar",failedForSelected:"Não é possível desconectar um DID Space selecionado",descForBackup:"Após desconectar de {name}, você não poderá mais fazer backup deste Blocklet para este DID Space. Você deseja desconectar?",descForStorage:"Após desconectar de {name}, você não poderá mais fazer backup deste Blocklet para este DID Space. Você deseja desconectar?"},connect:{title:"Conecte os Espaços de DID",add:"Conecte-se aos Espaços DID agora",addTips:"Você ainda não está conectado a nenhum espaço DID",switch:"Alternar espaços de ID de DID",switchTips:"Você está conectado a {name}",connected:"Conectado"},switch:{failedForMismatchSpace:"Por favor, conecte-se ao Espaço DID correto {name}"},connectTo:"Conecte-se aos Espaços DID"},strategy:{title:"Estratégia de backup",autoBackup:"Auto backup",backupNow:"Faça backup agora",viewBackupFiles:"Ver arquivos de backup"},progress:{title:"Progresso de backup"},record:{title:"Registrar backup",emptyData:"Sem registros"},notYet:"Você ainda não possui um backup em andamento...",connect:{now:"Conectar agora",title:"Conectar DID Spaces",provider:"Fornecer seu DID Space para iniciar backups",providerForStorage:"Forneça seu DID Space para armazenamento de dados",useWallet:"Conectar com carteira DID",useWalletReconnect:"Reconectar com carteira DID",useSpaceGateway:"Conectar usando gateway DID Spaces",useSpaceGatewayReconnect:"Reconectar usando gateway DID Spaces",switchToSpace:"Mudar para DID Space",switchToSpaceSucceeded:"Mudou para o espaço DID {name}",succeeded:"Conectado com sucesso ao DID Space",disconnect:"Desconectar",abortBlockletBackup:"Abortar backup"},disconnected:{tag:"Desconectado",reconnectNow:"Reconectar agora"}},appLevel:{title:"Nível do aplicativo",description:"Todos os dados gerados pelo aplicativo são armazenados neste DID Space"}},log:{lastDays:{1:"Último 1 dia",7:"Última 1 Semana"}},oauth:{authorize:"Autorização OAuth",client:{tab:"Aplicativos OAuth",name:"Nome do App",clientId:"ID do Cliente",clientSecret:"Segredo do Cliente",scope:"Âmbito",redirectUris:"URLs de redirecionamento",grantTypes:"Tipos de Concessão",responseTypes:"Tipos de Resposta",tokenEndpointAuthMethod:"Método de Autenticação do Endpoint de Token",actions:"Ações",grantResponse:"Autorização e Resposta",metaContact:"Meta & Contacto",clientUri:"URI do Cliente",logoUri:"URI do logotipo",contacts:"Contactos",tosUri:"URL dos Termos de Serviço",policyUri:"URI da Política",jwksSoftware:"JWKS & Software",jwksUri:"URI JWKS",jwks:"JWKS",softwareId:"ID do Software",softwareVersion:"Versão do Software",clientSecretExpiresAt:"Chave secreta expira em",clientIdIssuedAt:"ID do Cliente Emitido em",oauthAppDetails:"Detalhes do Aplicativo OAuth",oauthEndpoints:"Endpoints OAuth",authorizationEndpoint:"Endpoint de Autorização",tokenEndpoint:"Endpoint de Token",userinfoEndpoint:"Endpoint de Informações do Usuário",registrationEndpoint:"Endpoint de Registo",endSessionEndpoint:"Fim da Sessão Endpoint",validate:{clientName:"Nome do app é obrigatório",clientNameMinLength:"O nome do app deve ter pelo menos 3 caracteres",clientUri:"URL da página inicial é obrigatório",clientUriInvalid:"Insira uma URL válida começando com http:// ou https://",redirectUris:"URL de retorno de autorização é obrigatório",redirectUrisInvalid:"Insira URLs válidas começando com http:// ou https://",contacts:"Insira endereços de e-mail válidos separados por vírgulas",tosUri:"URL dos Termos de Serviço é obrigatório",tosUriInvalid:"Insira uma URL válida",policyUri:"URL da Política é obrigatório",policyUriInvalid:"Insira uma URL válida",jwksUri:"URI JWKS é obrigatório",jwksUriInvalid:"Insira uma URL válida",jwks:"JWKS é necessário",jwksInvalid:"Insira um JWKS válido"},input:{clientName:"Nome do app",clientNamePlaceholder:"Algo que os utilizadores reconhecerão e confiarão",clientUri:"URL da página inicial",clientUriPlaceholder:"https://your-app.com",redirectUris:"URL de retorno de autorização",redirectUrisPlaceholder:"https://your-app.com/callback",contacts:"E-mails de contato",contactsPlaceholder:"admin@your-app.com, support@your-app.com",permissions:"Selecione as permissões necessárias",tosUri:"URL dos Termos de Serviço",tosUriPlaceholder:"https://your-app.com/termos",policyUri:"URL da Política",policyUriPlaceholder:"https://your-app.com/policy",jwksUri:"URI JWKS",jwksUriPlaceholder:"https://your-app.com/jwks",jwks:"JWKS",jwksPlaceholder:"Conjunto de Chaves Web JSON",expireTime:"Defina uma data de expiração para o segredo do cliente para melhor segurança"},helperText:{clientName:"Algo que os usuários reconhecerão e confiarão.",clientUri:"URL completo da página inicial do seu aplicativo.",redirectUris:"URL de retorno do seu aplicativo.",contacts:"O endereço de email da pessoa responsável pela aplicação.",tosUri:"URL dos termos de serviço do seu aplicativo.",policyUri:"URL da política de privacidade do seu aplicativo.",read:"Leia nosso",document:"Documentação OAuth",more:"Para mais informações."},delete:{title:"Apagar Cliente OAuth",description:"Tem certeza de que deseja excluir este cliente OAuth {clientName}?"},register:"Criar um novo App OAuth",requiredInformation:"Informações necessárias",optionalInformation:"Informação Opcional",registerButton:"Criar",logo:"Logótipo",openRegistration:"Inscrição Aberta",openidConfiguration:"Configuração OpenID",createUser:"Criado por",update:"Atualizar App OAuth",listTitle:"Ativar acesso seguro de terceiros com Apps OAuth",tooltipTitle:"Use o servidor OAuth integrado do seu app para autorizar aplicativos externos com protocolos padrão do setor. Ofereça aos usuários autenticação segura e perfeita e controle de acesso delegado.",empty:"Sem dados adicionados"}},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"Expirado"},loadFailed:"Tentar novamente!"},desktop:{tips:{success:"A assinatura expirará após {validity}",warning:"A assinatura expirará após {validity}",error:"Assinatura Expirada"},loading:"Carregar assinatura...",loadFailed:"Falha ao carregar as informações de inscrição, por favor tente novamente!",nextInvoice:"Próxima fatura: {date}"}},analytics:{trend:"Tendências",detail:"Avaria",traffic:{totalRequests:"Total de solicitações",validRequests:"Pedidos de sucesso",failedRequests:"Solicitações falhadas",uniqueVisitors:"Visitantes únicos",uniqueFiles:"URLs únicas",uniqueReferrers:"Referenciadores únicos",uniqueNotFound:"Único 404",uniqueStaticFiles:"Arquivos Estáticos Únicos",logSize:"Tamanho do Log",bandwidth:"Largura de banda"},runtime:"Runtime"},federated:{inviteJoinFederatedLogin:"Convite para entrar no login federado",inviteJoinFederatedLoginDescription:"Copie o seguinte endereço e preencha-o na aplicação em que você precisa participar para se inscrever no login federado.",federatedLogin:"Login federado",joinFederatedLogin:"Junte-se ao login federado",joinFederatedLoginDescription:"Por favor, insira o endereço de login federado fornecido pelo Master Blocklet para participar do login federado",quitFederatedLogin:"Sair do login federado",quitFederatedLoginDescription:"Depois de sair do login federado, o login normal está sempre disponível",federatedJoinAppUrl:"Entrar com login federado em appUrl",federatedJoinAppUrlRequired:"Por favor, insira o login federado para entrar em {appUrl}",failedToGetFederatedLoginAppUrl:"Falha ao obter login federado, junte-se ao appUrl",federatedJoinAppUrlInvalid:"O appUrl de login federado é inválido",siteDetail:"Detalhes do site",approveToJoinLogin:"Aprovar a adesão ao login federado",approve:"Habilitar login",revoke:"Desativar login",enableFederatedLogin:"Habilitar login federado",disableFederatedLogin:"Desativar login federado",enableFederatedLoginDescription:"Após habilitar o login federado, este site fará login automático",disableFederatedLoginDescription:"Depois de desabilitar o login federado, este site não fará login automático",enableFederatedAutoLogin:"Ativar login automático",enableFederatedAutoLoginDescription:"Depois de habilitar o login automático, se houver atualmente um status de login unificado, o site fará login automaticamente na identidade do login federado",disableFederatedAutoLogin:"Desativar login automático",disableFederatedAutoLoginDescription:"Depois que o login automático for desativado, o site não fará login automaticamente nas informações do usuário do login unificado e você ainda poderá optar por fazer login manualmente com a identidade do login federado.",info:{appId:"APP FEITO",appPid:"ID permanente",migratedFrom:"Também conhecido como",appName:"Nome do Blocklet",appDescription:"Descrição do bloco",appUrl:"URL do Blocklet",appLogo:"Logo do Blocklet",did:"Blocklet DID",serverId:"ID do Servidor Blocklet",serverVersion:"Versão do Blocklet Server",version:"Versão do Blocklet",appliedAt:"Inscreva-se em",status:"Status"},status:{pending:"Pendente",approved:"Aprovado",rejected:"Rejeitado",revoked:"Revogado"},disbandFederatedLogin:"Desconectar login federado",disbandFederatedLoginDescription:"Após o desmantelamento do login federado, todos os sites membros deixarão automaticamente o login federado",syncConfig:"Sincronizar configuração de sites federados",quitMember:"Remover",quitMemberDescription:"Remover membros especificados do grupo do site",removeFederatedLogin:"Remover membro",removeFederatedLoginDescription:"Após remover membros especificados do grupo do site, o membro só pode usar o login normal",title:"O que é Federated Login?",description:"O login federado pode ser alcançado através de single sign-on em múltiplos sistemas. Você pode convidar outras equipes a se juntarem ao login federado ou proativamente se juntar à plataforma de login federado de outras organizações.",link:"Ver Documento"},optionsOrder:{1:"Opção Um",2:"Opção Dois"},securityRule:{title:"Regra de segurança",sortByDescription:"Ordenar por prioridade correspondente",add:"Adicionar Regra de Segurança",edit:"Editar Regra de Segurança",view:"Ver regra de segurança",form:{precede:"Precedente",pathPattern:"Padrão de Caminho",pathPatternPlaceholder:"Por favor insira o padrão de caminho",pathPatternErrorText:"O padrão do caminho é inválido",accessPolicyOrResponseHeaderPolicyRequired:"É necessária Política de Acesso ou Política de Cabeçalho de Resposta",accessPolicy:"Política de Acesso",accessPolicyPlaceholder:"Selecione a política de acesso",accessPolicyHelperText:"Selecione a política de acesso",responseHeaderPolicy:"Política de Cabeçalho de Resposta",responseHeaderPolicyPlaceholder:"Selecione a política de cabeçalho da resposta",responseHeaderPolicyHelperText:"Selecione a política de cabeçalho de resposta",remark:"Observação",remarkPlaceholder:"Insira observação",component:"Componente",componentPlaceholder:"Por favor, escolha o componente"},delete:{title:"Eliminar regra de segurança?",description:"Após remover uma regra de segurança, a regra deixará de ter efeito"},useless:"Regra de Segurança Inútil"},responseHeaderPolicy:{title:"Política de cabeçalho de resposta",add:"Adicionar Política de Cabeçalho de Resposta",edit:"Editar Política de Cabeçalho de Resposta",view:"Ver Política de Cabeçalho de Resposta",form:{name:"Nome",namePlaceholder:"Por favor, digite seu nome",description:"Descrição",descriptionPlaceholder:"Insira a descrição",cors:{origin:"Origem",originPlaceholder:"Suporte aos seguintes formatos de domínio: http://www.example.com, http://*.example.com, http://www.example.com:8080, * (não recomendável usar curinga)",originHelperText:"Nome do domínio começa com http:// ou https://, um por linha, um curinga * por linha",methods:"Métodos",allowedHeaders:"Cabeçalhos permitidos",allowedHeadersPlaceholder:"É recomendado preencher *, suporta entrada em várias linhas",allowedHeadersHelperText:"Informa o servidor quais cabeçalhos HTTP personalizados de solicitação podem ser usador na próxima solicitação durante o envio de uma solicitação OPTIONS, como: x-blocklet-version",exposedHeaders:"Cabeçalhos Expostos",exposedHeadersPlaceholder:"Suporte a múltiplas linhas de entrada",exposedHeadersHelperText:"Configure o Expose-Headers, por exemplo: X-Content-Range",maxAge:"Max-Age (segundos)",maxAgeHelperText:"O período de validade do resultado obtido pela solicitação de OPTIONS, que precisa ser um número inteiro positivo",optionsSuccessStatus:"Estatísticas de sucesso de opções",preflightContinue:"Continua a Pré-Visualizar",credentials:"Credenciais",smartModeHelperText:"Adicionar automaticamente todos os nomes de domínio do aplicativo atual, bem como todos os nomes de domínio do grupo do site de login federado",smartMode:"Modo Inteligente"},originOverride:"Substituição de Origem",originOverrideHelperText:"Permitir que a lógica no aplicativo sobreponha este cabeçalho de resposta"},delete:{title:"Remover política de cabeçalho de resposta?",description:"Depois de remover uma política de cabeçalho de resposta, a política não terá mais efeito"}},accessPolicy:{title:"Política de Acesso",add:"Adicionar política de acesso",edit:"Editar Política de Acesso",view:"Ver política de acesso",form:{name:"Nome",namePlaceholder:"Por favor, insira o nome",description:"Descrição",descriptionPlaceholder:"Por favor insira uma descrição",roles:"Funções de Acesso",accessType:"Tipo de acesso"},delete:{title:"Excluir política de acesso?",description:"Após remover uma política de acesso, a política não entrará mais em vigor"}},didConnect:{genKeyPair:{title:"Gerar DID do Blocklet",scan:"Use os seguintes métodos para gerar um Blocklet DID",success:"DID do Blocklet gerado com sucesso",successDesc:"O Blocklet DID foi gerado com sucesso (Publicações subsequentes exigem a carteira que gerou o DID para operar)"},common:{invalidSession:"Sessão inválida",invalidSessionDesc:"Sessão inexistente ou expirada",connectionError:"Falha na conexão"}},pagination:{next:"Próxima Página",previous:"Página Anterior",rowsPerPage:"Por página:",displayRows:"de",jumpToPage:"Ir para a página:"},webhookEndpoint:{createWebhook:"Criar Webhook",createWebhookTitle:"Criar Webhook",selectAllEvents:"Selecionar todos os Eventos",selectAllEventsTooltip:"Selecionar todos os eventos disponíveis",selectedEventsCount:"{count} eventos selecionados",selectedCount:"{count} selecionados",eventsCount:"{count} eventos",saveWebhook:"Criar Webhook",noAvailableEvents:"Sem eventos disponíveis",loadingEvents:"Carregando eventos...",loadingError:"Falha ao carregar eventos: {message}",title:"Webhooks",noWebhooksAdded:"Nenhum webhook adicionado",validation:{urlRequired:"URL é obrigatório",urlInvalid:"Insira uma URL válida",descriptionRequired:"Descrição obrigatória",eventRequired:"Selecione pelo menos um evento"},hosted:"Endpoints hospedados",add:"Criar Webhook",addTip:"Configure seu endpoint webhook para receber eventos ao vivo",listen:"Ouvir para",version:"Versão da API",attempts:"Tentativas de Webhook",url:{label:"URL",description:"URL do Endpoint Webhook"},description:{label:"Descrição",description:"Descrição opcional da finalidade deste endpoint"},events:{label:"Selecionar eventos para ouvir",description:"Olá, {name}."},disabled:"Desabilitado",enabled:"Ativado",disable:"Desativar",enable:"Ativar",editWebhookTitle:"Atualizar Webhook",updateWebhook:"Atualizar Webhook",waitingForEvents:"A aguardar eventos...",loadingMore:"Carregando mais...",loadMore:"Carregar mais",response:"Resposta",request:"Pedido",eventData:"Dados do Evento",deleteWebhook:{title:"Eliminar Webhook?",description:"Após excluir um webhook, ele não receberá mais eventos"},success:"Sucesso",listTitle:"Enviar dados de eventos em tempo real com Webhooks",tooltipTitle:"Conecte seu app a sistemas externos sem interrupções, enviando notificações de eventos em tempo real. Webhooks permitem integrações poderosas e fluxos de trabalho automatizados em suas ferramentas e serviços.",triggeredFrom:"Este webhook foi acionado a partir de uma tentativa"},description:{environment:"As variáveis atuais terão efeito quando {name} estiver em execução. Necessário reiniciar a aplicação para que surtam efeito.",preferences:"As variáveis atuais terão efeito quando {name} estiver em execução. As alterações serão aplicadas após a gravação, não sendo necessário reiniciar a aplicação."},preferencesFor:"Preferências para {name}",environmentFor:"Ambientes para {name}",accessKey:"Chave de Acesso",embed:{iconTip:"Clique para ver os detalhes da assinatura"},command:"Comando",mcp:{listTitle:"Acesse seu Blocklet de clientes MCP",tooltipTitle:"Explore a lista de servidores MCP suportados por este Blocklet, selecione um servidor para visualizar instantaneamente os comandos de conexão necessários para se juntar a partir do seu cliente.",endpoint:"Ponto de extremidade MCP",available:"Servidores MCP disponíveis",noServer:"Sem servidor MCP disponível"},installCommand:"Comando de Instalação",label:{add:"Adicionar",apply:"Aplicar etiquetas",manage:"Gerenciar etiquetas",title:"Etiquetas",description:"Descrição",systemLabel:"Etiqueta do Sistema",create:"Criar etiqueta",edit:"Editar etiqueta",name:"Nome",slug:"Slug",parentLabel:"Etiqueta pai",color:"Cor",search:"Pesquisar etiquetas",saveSuccess:"Etiqueta salva com sucesso",delete:"Excluir",deleteTip:'Excluir "{name}"?',deleteSuccess:"Etiqueta excluída com sucesso",reassignTip:"Se este rótulo estiver em uso, reatribua seus itens a outro rótulo.",reassignTo:"Escolher um novo rótulo",recently:"Recente",noMatching:"Nenhuma etiqueta encontrada",noLabels:"Nenhuma etiqueta criada ainda",filter:"Filtrar rótulos",createNewLabel:'Criar nova etiqueta "{name}"',actionLabel:"Atribuir etiquetas em massa",selectLabels:"Selecionar etiquetas",deleteDesc:'Depois de excluir um rótulo, o rótulo não será mais utilizado. Tem certeza de que deseja excluir "{name}"?',nameRequired:"O título é obrigatório.",nameMinLength:"O título deve ter pelo menos 1 caractere.",nameMaxLength:"O título deve ter menos de 64 caracteres.",slugRequired:"Slug é obrigatório",slugMinLength:"Slug deve ter pelo menos 1 caractere",slugMaxLength:"Slug deve ter menos de 128 caracteres",descriptionMaxLength:"Descrição deve ter menos de 255 caracteres",colorRequired:"A cor é obrigatória",colorInvalid:"A cor é inválida"},environmentTips:{delete:"Você tem certeza de que deseja excluir esta linha?",deleteForbidden:"Apenas a chave do ambiente personalizado pode ser alterada."},authentication:{emailLoginDescription:"O login por e-mail usará Configuração de Notificação para enviar links de login ou código de login para os usuários.",emailNotificationRequired:"Certifique-se de que ativou a Notificação por Email.",chooseProvider:"Método de Login",chooseProviderPlaceholder:"Selecione um método de login para configurar",addLoginProvider:"Adicionar Método de Login",updateLoginProvider:"Atualizar Método de Login: {provider}",alreadyBindOAuth:"Já vinculado login de terceiros",alreadyBindWallet:"Já vinculei a carteira DID",didConnectSettings:"Exibição e Branding",commonSettings:"Configurações Comuns",sessionSettings:"Segurança da Sessão",federated:"Login Federado",loginProviders:"Métodos de Login",oauth:"Login de Terceiros",save:"Salvar",thirdPartyLogin:"Login de terceiros",viewDocument:"Ver Documentação",oauthCallbackUrl:"URL de Callback",gotoEmailNotification:"Abrir configurações de notificação por e-mail",deleteLoginProvider:"Excluir Provedor de Login {provider}",deleteLoginProviderDescription:"Após excluir o provedor de login, os usuários não poderão fazer login usando {provider}. Você tem certeza de que deseja continuar?",auth0:{title:"Auth0",enable:"Ativar login Auth0",domain:"Domínio",domainDescription:"O domínio do Auth0 é obrigatório",clientId:"ID do Cliente",clientIdDescription:"É necessário o ID do cliente da aplicação Auth0 OAuth",clientSecret:"Segredo do Cliente",clientSecretDescription:"A chave secreta do cliente da aplicação Auth0 OAuth é necessária"},github:{title:"Github",enable:"Ativar login do Github",clientId:"ID do Cliente",clientIdDescription:"O ID do Cliente da aplicação Github OAuth é necessário",clientSecret:"Segredo do Cliente",clientSecretDescription:"O segredo do cliente da aplicação Github OAuth é necessário"},twitter:{title:"X",enable:"Ativar login X",clientId:"ID do Cliente",clientIdDescription:"O ID do Cliente da aplicação OAuth é necessário",clientSecret:"Segredo do Cliente",clientSecretDescription:"É necessário o Client Secret da aplicação X OAuth"},google:{title:"Google",enable:"Ativar login com Google",clientId:"ID do Cliente",clientIdDescription:"O ID do cliente da aplicação Google OAuth é necessário",clientSecret:"Segredo do Cliente",clientSecretDescription:"O Client Secret da aplicação Google OAuth é necessário"},apple:{title:"Maçã",enable:"Ativar login com Apple",teamId:"ID da equipe",teamIdDescription:"O ID da equipe do aplicativo Apple OAuth é necessário",serviceId:"ID do Serviço",serviceIdDescription:"O ID do serviço da aplicação Apple OAuth é obrigatório",keyId:"ID da Chave",keyIdDescription:"É necessário o Key ID da aplicação Apple OAuth",authKey:"Chave de autenticação",authKeyDescription:"A chave de autenticação do aplicativo Apple OAuth é necessária",bundleId:"ID do pacote",bundleIdDescription:"O ID do pacote da aplicação Apple OAuth é necessário"},wallet:{showQrcode:"Mostrar código QR"},didConnect:{showDidColor:"Mostrar a cor do DID Connect",showAppInfo:"Mostrar informações do Blocklet",basicSettings:"Configurações básicas",customSettings:"Configurações Personalizadas",configDialogTitle:"Configurar texto de popup de autenticação",addNewAction:"Adicionar Ação",addLanguage:"Adicionar idioma",selectLanguage:"Selecione um idioma...",actionNameError:"Apenas letras minúsculas e hífens são permitidos, não pode começar com hífen",actionNameDuplicate:"O nome da ação já existe"}}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{L as n,j as i,al as l}from"./vendor-mui-core-
|
|
1
|
+
import{L as n,j as i,al as l}from"./vendor-mui-core-CV-FnYH_.js";import{m as d,r as c}from"./vendor-react-DX7tU9aY.js";import{W as u,aO as h}from"./vendor-ux-CLT2i3Pv.js";import g from"./index-BeunkI-Z.js";import"./vendor-utils-BzQg432x.js";import"./vendor-hooks-DAZ1H6Va.js";import"./index-CXp5SI_f.js";import"./vendor-arcblock-Dll6qxMT.js";import"./confirm-CdVn5WdC.js";import"./index-DBs9Ljax.js";import"./session-Bp3LV7zJ.js";import"./did-address-CG36eCOx.js";import"./empty-spinner-DB1GKIOS.js";import"./bundle-avatar-DwiOyeMO.js";import"./shorten-label-CuBHsWUR.js";import"./list-header-BEZSwSji.js";import"./click-to-copy-BgIYUMoo.js";import"./question-mark-circle.svg-B0bcUgC5.js";import"./useSetState-CUbypYGT.js";import"./engine-D_fEFx9_.js";import"./api-B8JXuhVp.js";import"./vendor-mui-x-DwN6dcQH.js";import"./react-beautiful-dnd.esm-CWJ5I9Zv.js";import"./raf-schd.esm-BZ-2sjAE.js";import"./wait-connect-q0_7mz_u.js";import"./get-safe-url-beob4f2C.js";import"./item-DNj7ORqk.js";import"./delete-confirm-CkiUXocp.js";import"./index-C_kNXHsF.js";import"./index-Cax1AxL9.js";import"./purify.es-HRjpPm7y.js";import"./index-B9FojAjj.js";import"./joi-browser.min-eEVeW7LC.js";import"./joi-browser.min-CUdv8seQ.js";const r=new URL(window.location.href),s=r.searchParams.get("mode")==="dialog",w=s?"":r.searchParams.get("padding")||"";function Y(){const{t:p}=u(),{componentDid:o}=d(),m=n(t=>t.breakpoints.down("md")),a=t=>{t.stopPropagation(),window.parent.postMessage({event:"resourceDialog.close",componentDid:o},"*")};c.useEffect(()=>{window.parent.postMessage({event:"resourceDialog.loaded",componentDid:o},"*")},[o]);const e=i.jsx(g,{padding:w,initUrl:r});return s?i.jsx(h,{className:"studio-dialog",title:p("blocklet.publish.blockletStudio"),maxWidth:!1,fullWidth:!1,PaperProps:{style:m?{width:"100%",height:window.innerHeight}:{maxWidth:1350,minWidth:930,width:"80%"}},onClose:a,showCloseButton:!0,disableEscapeKeyDown:!0,open:!0,children:i.jsx(l,{sx:{height:"72vh",overflow:"auto",position:"relative"},children:e})}):e}export{Y as default};
|