@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
|
@@ -4,7 +4,7 @@ const e={setup:{connect:{title:"设置 Blocklet Server",scan:"使用以下方法
|
|
|
4
4
|
比例:9:16
|
|
5
5
|
|
|
6
6
|
横向模式:
|
|
7
|
-
比例:16:9`,copyrightDesc:"使用于:网站页脚",appUrlDesc:"使用于:网站地图和社交分享",errorReason:"Blocklet 启动失败,但您仍然可以通过点击下面的按钮访问它。"},overview:{source:"来源",deployedFrom:"部署源",accessControl:"访问控制",viewInStore:"在商店中查看"},diskInfo:{empty:"无法获得磁盘信息",appDir:"应用目录",dataDir:"数据目录",logDir:"日志目录",cacheDir:"缓存目录"},runtimeInfo:{noRunning:"当应用运行时才可以获得运行信息!",memoryUsage:"内存",cpuUsage:"CPU",uptime:"启动时长",port:"端口",processId:"进程 ID",dataStorage:"数据存储"},dist:{downloadLink:"下载地址",verify:"校验信息"},status:{added:"已添加",waiting:"等待中",downloading:"下载中",extracting:"提取中",installing:"安装中",upgrading:"升级中",installed:"已安装",created:"已创建",starting:"启动中",running:"运行中",stopping:"停止中",stopped:"已停止",error:"错误",deleting:"删除中",corrupted:"已损坏",purchased:"已购买",purchasing:"购买中...",verifying:"验证中...",resource:"资源",failWithOldVersion:"新版本启动失败, Blocklet 正在旧版本上运行。",hasSomeErrors:"{blocklets} 未完全运行,可能是由于问题或待启动。"},list:{download:"下载数",star:"收藏数",searchPlaceholder:"按 Blocklet 名称或 DID 搜索"},component:{container:"全局配置",showContainer:"显示全局配置",didSpaceConfig:"配置 DID Spaces",didSpaceConfigTip:"完成以下授权流程,即可将应用数据存储到 DID Spaces 中",didSpaceConnected:"正在授权存储到:{endpoint}",checkUpdateTitle:"检查更新",updateTitle:"更新 Blocklet",noUpdate:"没有需要更新的 Blocklet",add:"添加 Blocklet",selectComponent:"选择 Blocklet",selectRegistry:"选择应用商店",selectRegistryTip:"您可以切换应用商店以查看更多 Blocklet",selectInstance:"选择实例",selectInstanceTip:"您可以选择已有实例 或 创建新的实例。已有实例将使用之前保存的配置和数据",newInstance:"创建新实例",noComponent:"暂无 Blocklets",mountPoint:"Blocklet 的挂载点是什么?",mountPointTip:"如果你填写了 '/my-prefix',那么所有以其为前缀的请求都会被转发到配置的 Blocklet",delete:"删除 Blocklet",deleteDescription:"删除后此 Blocklet 将无法访问。确认删除?",purchase:"需要支付",tip:{stopBlocklet:"请先停止运行应用",requiredBy:"{name} 需要该 Blocklet"},choose:"选择",upgrade:"升级",addWithName:"将 Blocklet 添加到 {name}",installed:"已安装",installingTip:"正在安装 Blocklet 中, 请等待安装结束",installingCanCloseWindowTip:"正在后台安装 Blocklet 中, 您可以放心关掉此窗口",installSuccessTip:"恭喜,组件安装成功!",missDownloadTokenTip:"缺少下载凭证,无法下载",purchaseComponentSecondCheckTip:"请在 钱包 提供应用购买凭证",installComponentError:"安装组件遇到错误,请重试",downloadComponentError:"下载组件遇到错误,请重试",addComponentTip:{introduction:"欢迎来到添加组件向导",isPurchase:"您需要验证凭证才能添加 <b>{name}</b> 为组件;",belowInformation:"下面为该组件的信息:",verifyNFT:"请选择验证凭证方式",config:"请填写组件的相关配置",environment:"请填写组件的环境变量",fromUrl:"从 URL 添加 Blocklet",fromUpload:"从上传添加 Blocklet",uploadFailed:"上传失败",allowedFileTypes:"允许上传的文件类型:{types}"},addNext:"添加 {name}",upgradeNext:"升级 {name}",setting:"参数设置",noDependencies:"{name}没有任何依赖",relatedComponents:"相关 Blocklets",required:"必须",upgradeAvailable:"可更新",needBuy:"需购买",isOfficial:"官方认证"},router:{urlPath:"URL 路径",securitySetting:"安全设置",noRunning:"应用当前未启动。无法通过以下地址访问!",checkUrlAccessible:"检查地址的是否可访问",urlInaccessible:"可能因为网络的原因,该地址暂时无法访问",noAccessibleUrl:"没有可访问的地址",domainLockTooltip:"无法编辑由系统生成的域名",urlLockTooltip:"无法编辑由系统生成的 URL 路径",showAllDomains:"显示所有域名",showAllDIDs:"显示所有 DID",currentDomainTip:"你正在通过该域名访问当前页面"},export:{title:"导出应用",name:"包名称",nameTip:'e.g. "my-blocklet-name" or "@my-scope/blocklet-name"',result:"接下来",exportSource:"导出源代码",success:"应用导出成功",resultTipStart:"使用",resultTipEnd:"你可以在几分钟内构建并发布这个应用",uploadedComponentTip:"无法导出直接上传的组件:"},migrate:{title:"迁移应用",scan:"用你的 DID Wallet 为这个应用生成钥匙对",confirm:"请在 DID Wallet 上确认",success:"你的应用已迁移成功,页面将在 {sec} 秒后刷新",intro:{l1:"点击这里",l2:"迁移应用到新版(迁移完成之前组件升级将被禁用)",l3:"1. 应用的钥匙对将完全由钱包管理",l4:"2. 应用的数据将平滑迁移,不会丢失",l5:"3. 新的结构将为你组合应用提供更大的灵活性",l6:"4. 在组件有新版之前,请不要在迁移之后随意变更组件挂载点"},tip:{duplicate:"发现重复的组件 {name},请删除无用组件并重新迁移",running:"迁移前请先停止应用"}},error:{isRunning:"应用正在运行,请先停止运行",isInProgress:"应用正在进行中,请等待完成"},publish:{createResource:"创建资源",addResource:"添加 Blocklet",productTitle:"Blocklet 详情",versionTitle:"版本",imgTitle:"图片资源",resourceTitle:"内容",blockletEmptyTip:"这里没有任何 Blocklet",createBlockletTip:"你可以使用此应用的资源,组件,配置制作新的 Blocklet",createBlocklet:"新建 Blocklet",componentNotRunning:"Blocklet {name} 没有运行,请先启动它",resourceEmptyTip:"没有可用的资源",releaseEmptyTip:"这里没有任何发布",createReleaseTip:"您可以创建 Blocklet 新版本,在发布中包含说明和资源,以供其他人使用",createRelease:"创建版本",deleteReleaseTip:"此发布删除后不可恢复,是否继续?",createBlockletDid:"通过 DID Wallet 创建",createReleaseSuccess:"发布成功",saveDraftSuccess:"保存成功",packTip:"您的 Blocklet 现在可以直接安装为应用程序。应用程序配置将自动包含在内",resourceChangedWarning:"您修改了资源,请及时保存",installResourceTip:"安装网址:",installResourceTip2:"如果你需要更多提示,请查看",installResourceHelp:"帮助文档",componentIncluded:"包含",componentForceRequired:"强依赖",connect:{title:"创建 Blocklet DID",scan:"使用以下方法生成 Blocklet DID",confirm:"使用 DID Wallet 确认",success:"Blocklet DID 已经生成,请继续您的操作"},saveDraft:"保存草稿",releaseNote:"发布说明",errorTip:{noDid:"请填写 Blocklet DID",noFirstDid:"请先填写 Blocklet DID",noTitle:"请填写 Blocklet 名称",noVersion:"请填写 Blocklet 版本号",noResource:"请选择上传的资源以包含在应用中",noDescription:"请填写 Blocklet 描述",noNote:"请填写 发布说明",inValidVersion:"无效的 Blocklet 版本",invalidUrl:"请输入有效的网址",invalidUrlOrEmail:"请输入有效的URL或电子邮箱"},download:"下载 {name}",delete:"删除 {name}",copyInstallUrl:"复制安装链接",install:"安装 {name}",publishToStoreSuccess:"成功发布到商店的Blocklet",connectStoreSuccess:"Blocklet 成功连接 Store",uploadToStoreSuccess:"Blocklet 成功上传至 Store,请在 Store 中发布",viewLastRelease:"查看最新版本",reconnectStoreTip:"重新连接后,将绑定一个新的开发者。你确定要重新连接吗?",deleteProject:{title:"删除{name}",scan:"使用以下方法删除 {name}",confirm:"确认使用DID钱包",success:"Blocklet 已被删除,请继续操作",tip1:"Blocklet 一旦删除将无法恢复。",tip2:"您将不能再向已删除的 Blocklet 发布新版本,这意味着 Blocklet 将不再在商店中更新。",tip3:"删除 Blocklet 不会影响商店中已发布的版本。",description:"您确定要删除这个 Blocklet 吗?删除后可能会遇到以下问题:"},resourceTip:"目前,作为资源型 Blocklet,它无法直接从 Store 安装。",whyCantSeeInStore:"你可以将当前 Blocklet 发布到商店,它可以在全世界使用",whyCantSeeResourceBlockletInStore:"你可以将当前 Blocklet 发布到商店,它可以在全球使用。Blocklets 默认情况下隐藏在商店列表页面",tenantScope:"租户",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets未运行,请先启动",steps:{resources:"请选择需要与当前的 Blocklet 关联的资源,这些资源将与 Blocklet 一起安装。",blocklets:"请选择当前 Blocklet 安装时, 需要关联安装的 Blocklets。",version:"设置发布版本和更改日志。",introduction:"清晰的介绍可以有效地突出你的Blocklet。你可以使用Markdown语法来编写和预览。",branding:"描述您的应用链应用的基本信息。此信息将在商店向用户展示。"},branding:"品牌",brandingHelp:"将在商店中显示有关应用链的更多信息",resourceSelect:"从 blocklets 选择资源",resourceUpload:"从您的磁盘上传资源(存档中需要index.html)",deleteStoreTip:"您确定要将{name}从连接商店列表中移除吗?",disconnectStoreTip:"断开连接后,blocklet 将从商店中移除。您确定要断开连接吗?",connectOrUpload:"连接或上传",developerInfo:"开发者信息",possibleSameStoreTip:"依赖的 Blocklets 优先使用同源 Store",autoUploadTip:"创建发布后自动将 Blocklet 上传到商店",needProjectId:"请先创建一个项目",projectSettings:"项目设置",noStoreSelected:"请选择现有店铺中的一个或添加新店铺以继续",installToThisServer:"安装到此服务器",forceResourceBlocklet:"强制定义为资源型组件",resourceDocker:"从 Docker 构建 Blocklet",resourceSelectTitle:"资源",resourceUploadTitle:"上传",resourceDockerTitle:"Docker",resourceDockerInputTip:"请输入 docker run 命令",docker:{pleaseInputDockerCommand:"请输入 docker run 命令",volumeTip:"卷必须以 $BLOCKLET_DATA_DIR 或 $BLOCKLET_APP_DIR 开头",volumeTip2:'卷不能包含 ".."',noAllowTheArg:"不允许在 docker run 命令中使用该参数",needCustomInput:"安装 Blocklet 时设置值",dockerParams:"Docker 参数",dockerCommand:"Docker 命令",dockerImageName:"Docker 镜像名称",addItem:"添加 Docker 运行参数",envKey:"环境变量键",publishTips:"最终外部端口将由 blocklet 自动分配",volumeTips:"卷需要以 $BLOCKLET_DATA_DIR 或 $BLOCKLET_APP_DIR 开头",modifyParam:"修改 Docker 运行参数",modifyEnv:"修改环境变量",paramDetail:"参数详情",description:"描述",secure:"安全",shared:"共享",required:"必需",prefix:"前缀",path:"路径",name:"名字",portType:"端口类型",dockerImageNameError:"Docker 镜像名称不能包含空格",autoGenerated:"自动生成",dockerCMDError:"Docker CMD 只支持简单字符",proxyBehavior:"代理行为",serviceProxy:"服务",directProxy:"直接",nextTab:"解析 命令"},storeRule:{maxImageCount:"该 Store 最多允许 {max} 张截图。",minImageCount:"该 Store 至少需要 {min} 张截图。",minImageSize:"{name}张屏幕截图图像大小必须至少为 {width}x{height}。",logoFormat:"Logo 图片格式仅支持 [{format}]。",warning:"警告",screenshot:"截图",screenshots:"截图",first:"第一",second:"第二",third:"第三"},store:"Blocklet 商店",endpoint:{tab:"远程 Blocklet",uploadToEndpoint:"你可以上传当前 Blocklet 到指定的 Blocklet。",addEndpoint:"添加 Blocklet URL",urlEmpty:"端点 URL 不能为空",addFailed:"添加 Blocklet URL 失败:",deleteEndpoint:"删除 Blocklet URL",deleteDesc:'确认删除 Blocklet URL {name}?<br/><span style="color: {color}">*移除此 Blocklet URL后,除非重新添加,否则无法更新从此 Blocklet URL安装的应用。</span>',confirmDesc:"请输入 {name} 删除",visitEndpoint:"访问 Blocklet",disconnectEndpointTip:"你确定要断开 {url} 的连接吗?断开连接后,Blocklet 将不会上传到此端点。",deleteFailed:"删除 Blocklet URL 失败",publishToEndpointSuccess:"Blocklet 成功发布到 URL",uploadToEndpointSuccess:"Blocklet 上传到 URL 成功"},autoPublishErrorTip:"自动发布到 {storeName} 失败:{error}",singleton:"仅运行一个实例",singletonTip:"启用单例模式时,应用程序不能同时运行多个实例。由于您的应用使用单例模式,蓝绿部署不能用于更新或重启。"},titleValidationError:"标题长度必须在 3 到 20 个字符之间",descriptionValidationError:"描述长度必须介于3到80个字符之间",usingDocker:"这个 Blocklet 将使用 docker 运行",gotoVisitError:"无法访问 Blocklet 地址,请稍后再试",usingIsolation:"这个 Blocklet 将使用网络隔离运行",dockerImage:"支持 Docker",mountPoint:{description1:"这次更改有可能会影响到包含旧挂载点的 URL,进而可能引发一些问题:",case1:"应用里 Blocklets 之间的资源引用出现异常",case2:"如果您对外分享过相关内容,分享 URL 可能失效",description2:"为了尽量降低可能的影响,您可以设置旧挂载点到新挂载点的重定向。"},skSourceMigratedTip:"此应用最初使用服务器管理的钱包启动,现已迁移到 DID Wallet 以增强安全性。",skSourceManagedTip:"此应用正在使用服务器管理的钱包,请尽快迁移到DID Wallet以获得更好的安全性。",zeroDowntime:"零停机"},dashboard:{nodeDid:"节点地址",ownerDid:"所有者地址",routingEngine:"路由引擎",ownerNftURL:"所有者 NFT",expirationLeft:"有效期还剩",startFromCrashTip:"应用Server 上次未正常退出,请手动启动需要运行的 blocklet.",runtimeConfig:{blockletMaxMemoryLimit:"Blocklet 最大内存限制",daemonMaxMemoryLimit:"Server 最大内存限制"},document:"在我们的文档中了解更多信息",database:"数据库"},store:{nameSort:"名称",popularSort:"下载量",headerDescription:"查找、安装 Blocklet",detail:{purchase:"购买 {name}",open:"打开 {name}",install:"安装 {name}",upgrade:"升级 {name}",empty:"暂无介绍"},blockletRegistry:{changeFailed:"更改应用商店地址失败:",addFailed:"添加应用商店地址失败:",editFailed:"编辑应用商店地址失败:",switchRegistry:"选择应用商店地址",addRegistry:"添加应用商店地址",editRegistry:"编辑应用商店地址",deleteRegistry:"删除应用商店地址",haveSameRegistry:"存在相同的应用商店地址",registryName:"应用商店名称",registryUrl:"应用商店地址",registryNameEmpty:"应用商店名称不能为空",registryUrlEmpty:"应用商店地址不能为空",deleteDesc:'确认删除应用商店地址 {name} ?<br/><span style="color: {color}">*移除该商店之后,无法更新从此商店安装的应用,除非你再次添加。</span>',confirmDesc:"请输入 {name} 以确认删除"},purchase:{title:"购买 {name}",confirmed:"你的购买已经验证,安装中",declined:"你没有提供有效的购买凭证",waiting:"等待购买完成...",purchase:{title:"获取凭证",description:"安装此应用之前你需要支付一定数量的通证以完成购买"},verify:{title:"验证凭证",description:"如果你已经购买过此应用,提供购买凭证 NFT 即可完成安装",auth:{title:"需要验证购买凭证",scan:"用你的 DID Wallet 提供购买凭证",confirm:"请在 DID Wallet 上确认",success:"你的购买凭证已经验证通过,应用正在安装中"}},auth:{title:"购买 {name}",scan:"用你的 DID Wallet 完成操作",confirm:"确认 在您的账户",success:"购买凭证已经发送到你钱包"},launch:"启动 {name}",autoLaunch:"{name} 购买成功,正在跳转到启动页面..."},tooltip:{upgradeServer:"Blocklet 需要 Blocklet Server 版本 {version},当前 Blocklet Server 版本是 {serverVersion}"}},setting:{saveSuccess:"保存设置成功",unSavedTip:"有尚未保存的更改,请单击“保存”使更改生效。",unSavedLeaveTip:"有尚未保存的更改,是否确定离开当前页面?",form:{name:"节点命名",nameRequired:"名称不能为空",namePlaceholder:"节点名称",description:"节点描述",descriptionHolder:"节点描述",descriptionRequired:"节点描述不能为空",domain:"节点域名",domainPlaceholder:"节点域名",registry:"应用商店地址",registryPlaceholder:"用来拉取 Blocklets 列表",registryRequired:"应用商店地址是必填的",registerUrl:"应用启动器地址",registerUrlPlaceholder:'你可以使用自己运行的"应用启动器", 也可以使用官方提供的版本',webWalletUrl:"DID Wallet 地址",webWalletUrlPlaceholder:'你可以使用自己运行的 "DID Wallet", 也可以使用官方提供的版本',nftDomainUrl:"NFT Domain 地址",nftDomainUrlPlaceholder:"你可以选择其它的 NFT Domain 服务器, 也可以使用官方提供的版本",upgrade:{title:"升级 Blocklet 服务器到 {version}",description:"在升级期间,节点将会进入维护模式几分钟。",dialog:"点击 “确认” 安装更新。节点将进入维护模式,直到更新完成并自动返回生产模式。",confirm:"升级",switchLabel:"自动更新检查",enableBetaRelease:"允许安装测试版",setup:"准备升级中",installing:"安装节点新版本(v{version})",restarting:"重新启动节点",cleanup:"迁移节点数据",verifying:"验证节点新版本 v{version}",rollback:"回滚此次升级",complete:"升级完成!",progress:"升级 {name}",check:"检查更新",latest:"太棒了,你的节点已经是最新版!"},restart:{title:"重新启动节点",description:"在重启期间,节点将会进入维护模式几十秒钟。",dialog:"点击 “确认” 开启重启。节点将进入维护模式,直到更新完成并自动返回生产模式。",confirm:"重启",setup:"准备重启中",verifying:"验证节点版本",restarting:"重启节点中",cleanup:"验证重启成功",rollback:"撤销重启操作",complete:"维护完成",progress:"重新开始 {name}"},welcome:{switchLabel:"Welcome 页面"},security:{switchLabel:"文件系统隔离",switchTips:"关闭此选项后,Blocklet 的文件系统将不再处于隔离状态,可能会存在恶意软件破坏文件系统的风险。",warningTips:"文件系统隔离功能无法生效,请将 node.js 版本(当前版本为 {version})升级至 v21.6.0 或更高。"},register:{title:"注册到 Blocklet Launcher",description:"添加成功后,你可以快速从 {url} 安装应用到此节点",button:"注册"},monitor:{diskThreshold:"当磁盘使用率超过(%)时发送报警",diskThresholdPlaceholder:"请设置磁盘使用率报警阈值"},domainRequired:"服务器域名是必需的",ipPlaceholder:"IP",ipRequired:"IP是必需的",enableWelcomePage:"启用欢迎页",docker:{switchLabel:"在容器中运行 Blocklets",switchTips:"启用此选项后,块将使用容器运行,可以提高服务器的整体安全性。",notInstalled:"无法激活容器运行,因为未安装Docker或缺少执行所需的权限",needCloseFileSystemIsolation:"文件系统隔离和Docker容器模式运行时不能同时启用"},dockerNetwork:{switchLabel:"容器网络隔离",switchTips:"启用该选项后,blocklet 会以更高安全性运行:一个 blocklet 无法访问跨应用程序的其他 blocklet 或 blocklet 服务器。",needEnableDocker:"必须启用容器模式才能启用网络隔离"},restartAllContainers:{title:"重启所有容器",description:"重启所有容器并保持 Blocklets 运行。",dialog:'点击 "确认" 重启所有容器 Blocklets 并保持 Blocklets 状态运行。',confirm:"重新启动",setup:"正在准备重启",verifying:"正在验证 Blocklet Server",restarting:"在后台重启所有容器",cleanup:"确保一切正常",rollback:"清理脏状态",complete:"保持完整!",progress:"在后台重启所有容器"},restartAllBlocklet:{title:"重启所有 Blocklets",description:"重新启动此服务器上所有正在运行或出错的 Blocklets。",dialog:"点击“确认”在后台重新启动所有 Blocklets。",confirm:"重新启动",setup:"正在准备重启",verifying:"验证 Blocklet Server",restarting:"后台重新启动所有正在运行或出错的 Blocklets",cleanup:"确保一切正常",rollback:"清理脏状态",complete:"维护完成!",progress:"正在后台重启所有运行中或出错的 Blocklets"},enableSessionHardening:{switchLabel:"启用会话强化",switchTips:"启用此选项后,变更操作将需要严格验证,这可以提高服务器的整体安全性。"}},accessKey:{accessKeyId:"Access Key ID",accessKeySecret:"Access Key Secret",lastUsed:"最后使用",tip:"请给 Access Key 起个名字",saveSecretTip:"你的 Access Secret 只会展示一次,关闭此窗口后将无法再次查看,不过你可以随时重新创建新的 Access Key",iKnow:"我已复制保存好该 Access Secret",showSecret:"展示 Secret",hideSecret:"隐藏 Secret",title:"删除 Access Key",descriptionNoTime:"此操作无法撤消。这将永久删除备注为 {name} 并且 Id 为 {key} 的 Access Key (此 Access Key 之前没有被使用过) ",description:"此操作无法撤消。这将永久删除备注为 {name} 并且 Id 为 {key} 的 Access Key (最后的使用时间为 {time}, {timeAge})",confirm_desc:"请输入 {name} 以确认删除",remark:"Access Key 名称",remarkInvalid:"Access Key 名称不能为空",passport:"选择一个护照用于访问密钥以授予或限制权限",expireTime:"设置访问密钥的过期日期以增强安全性",authType:"验证类型",resourceType:"资源类型",resourceId:"资源 ID",component:"组件",expired:"{time}过期",simple:"一般安全",signature:"高安全",signatureDesc:"企业级安全标准,使用加密技术。需要与SDK (@blocklet/server-js)集成代码,非常适合对安全要求高和需要传输关键数据的场景",simpleDesc:"轻量级载体令牌机制,类似于OpenAPI Key,支持RESTful API调用和第三方服务集成。无需编码,通过HTTP Header快速集成,非常适合快速开发",viewSecret:"你可以在访问密钥的详情页稍后访问密钥",usage:"使用",listTitle:"使用访问密钥管理安全的 API 访问",tooltipTitle:"生成和管理允许信任系统以编程方式与您的应用交互的凭据。访问密钥支持安全自动化以及您工具和服务之间的无缝集成。"},webhook:{add:"添加应用集成",delTitle:"删除应用集成",requiredError:"请输入正确的 {type}",duplicateError:"该 URL 已经存在",confirm_desc:"请输入 {name} 以确认删除",test:"测试",description:"此操作无法撤消。这将永久删除 ID 为 {id} 的应用集成",columns:{description:"ID",params:"参数",createdAt:"创建时间"},testSuccess:"测试消息发送成功",updateSuccess:"更新状态成功"},dns:{step1Title:"登录你的域名注册商",step1Desc1:"登录你的域名注册商,找到域名管理页面,并找到名称服务器设置页面。 你可以访问",step2Title:"2. 查找 {url} 的 DNS 设置",step2Desc:'这可能被称为"DNS 管理","高级设置"或类似名称。',step3Title:"3. 添加以下 DNS 记录",step3Desc:'Name可以叫做 "host","hostname",或 "alias"'},domain:{addingDomain:"添加域名...",checkingResolvable:"正在检查域名状态...",cannotResolve:"{domain} 无法解析,请检查您的 DNS 配置",resolvedAddressError:"{domain} 未正确配置指向 {curDomain} 的 CNAME 记录",invalidDNSReminder:"{error}。但是,您可以继续添加域名,但无法自动生成证书。",continueAdd:"继续添加",conflictTitle:"{domain} 已经被使用了",conflictDescription:'{domain} 已经被 "{title}" 使用。点击确认,该域名将从 "{from}"移除并添加到 "{to}"。'},aigne:{modelAdapter:"模型提供商",modelName:"模型名称",baseUrl:"AIGNE Hub 网址",desc:{modelAdapter:"提供 AI 模型服务的平台",modelName:"特定的模型版本或模型名称",key:"{provider} API 密钥用于认证",baseUrl:"输入您的 AIGNE Hub 实例的 URL(例如 https://hub.aigne.io)。如果您自行托管,请使用您自己的地址。",accessKeyId:"访问模型的唯一密钥 ID",secretAccessKey:"与访问密钥 ID 配对的秘密密钥",docLink:"查看官方文档以获取更多详细信息和 API 参考"},failed:"AIGNE 配置保存失败",authorizeAigneHub:"连接到 {name}",disconnect:"断开连接",disconnectConfirm:"确定要断开与 AIGNE Hub 的连接吗?这将清除当前的 AI 配置。",disconnectSuccess:"成功断开与 AIGNE Hub 的连接",disconnectFailed:"断开与 AIGNE Hub 的连接失败",testConnection:"测试 {provider} 连接",invalidUrl:"{provider} URL 无效",description:"当前配置在 {name} 运行时生效。需要保存并重启 Blocklet 才能生效。",revokeUrlAuthTitle:"确认更改 {url}?",revokeUrlAuth:"您确定要更改 {url} 吗?修改后,您的授权将失效,需要重新授权!",testSuccess:"成功连接到 AIGNE Hub",check:"检查",apiKeyNotAuthorized:"API 密钥未获授权。 请点击连接到 AIGNE Hub 按钮进行授权",switchUser:"切换用户",connectTimeOut:"连接到 {provider} 超时,请稍后再试",restart:{title:"重启 Blocklet",connectedContent:"你的 Blocklet 当前连接到 {provider}。配置将在重启后生效。你想现在重启吗?",notConnectedContent:"你的 Blocklet 当前已与 {provider} 断开连接。配置将在重启后生效。你想现在重启吗?",confirm:"立即重启",cancel:"稍后重启"},testFailed:"无法连接到 AIGNE Hub。请检查 URL 或您的网络。",addCredits:"购买 Credits",transaction:"查看账单",connected:"成功连接",account:"账户信息",pendingCredit:"未付费用",infinite:"无限制",config:"配置 AIGNE Hub"}},notification:{title:"通知",history:"历史",channelSettings:"渠道设置",empty:"没有动态",viewAll:"查看所有动态",showRead:"显示已读",markAllAsRead:"全部标记为已读",markAsRead:"标记为已读",proceed:"处理",checkingForUpdates:"正在检查更新...",email:{enable:"启用通知",from:"发件人邮箱",host:"SMTP 服务地址",port:"SMTP 服务端口",user:"SMTP 用户名",secure:"安全连接",password:"SMTP 密码",fromRequired:"请输入发件人邮箱",fromInvalid:"发件人邮箱格式不正确",receiverRequired:"请输入收件人邮箱",receiverInvalid:"收件人邮箱格式不正确",hostRequired:"请输入 SMTP 服务地址",hostInvalid:"请输入 SMTP 服务地址格式不正确",portRequired:"请输入 SMTP 服务端口",portInvalid:"请输入 SMTP 服务端口,端口号应该在 0-65535 之间",userRequired:"请输入 SMTP 服务用户名",passwordRequired:"请输入 SMTP 服务用户密码",testSuccess:"测试邮件发送成功",testFailed:"测试邮件发送失败",testReceiver:"收件人邮箱",testSendEmail:"测试邮件发送",inputTestReceiver:"请输入测试邮件接收者的邮箱地址",disable:"禁用邮件通知",disableDescription:"禁用后将不再收到邮件通知,如需收到邮件通知,可以在本页面再次开启",unsubscribe:"取消邮件订阅",unsubscribeDescription:"取消邮件订阅后将不再收到所有邮件通知",subscribe:"订阅邮件",subscribeDescription:"如需收到邮件通知,可进入配置页再次开启订阅",companyName:"公司名称",companyLink:"公司链接",companyAddress:"公司地址",supportEmail:"支持邮箱",emailInvalid:"邮箱无效",linkInvalid:"链接无效,应以http或https开头",signature:"邮件签名",signatureTooltip:"电子邮件签名用于底部,以便向收件人提供发送者的关键信息。"},wallet:{description:"DID Wallet 通知总是对所有用户启用。"},webhooks:{description:"通过 webhooks 发送的通知总是对所有用户启用。"},comingSoon:"更多通知方式正在建设中",unsubscribe:"取消订阅",unsubscribeSucceed:"取消订阅成功",unsubscribeFailed:"取消订阅失败",unsubscribeTokenRequired:"取消订阅链接不存在",unsubscribeTokenExpired:"取消订阅链接已过期",unsubscribeTokenInvalid:"取消订阅链接有误",installComponentError:"未找到卸载的组件 {name}",installingComponent:"安装组件{name}",pushKit:{enable:"启用通知",endpoint:"PushKit 端点",endpointInvalid:"PushKit 端点不是一个有效的网址",testSuccess:"Test PushKit 发送成功",testFailed:"测试 PushKit 发送失败",testReceiver:"PushKit 接收器",testSend:"测试推送",inputTestReceiver:"请输入测试接收者 DID",receiverRequired:"需要 PushKit 接收者 DID",pushPath:"PushKit 的 API 路径(默认 /api/push)",did:"PushKit Blocklet DID",customOptions:"自定义选项"},notificationDetails:"通知详情",notificationPreview:"通知预览",receiver:"接收者",filter:"筛选器",resend:"重发",resendLimit:"您每天最多可以重新发送三次通知。",sendStatus:{success:"发送成功",failed:"发送失败",pending:"待发送",sentTime:"发送时间:{date}",reason:{enabled:"用户已开启 {channel} 通知",disabled:"用户没有开启 {channel} 通知",unavailable:"当前 Blocklet 没有配置 {channel} 通知",available:"当前 Blocklet 已配置 {channel} 通知",notSent:"当前消息没有向 {channel} 发送",offline:"用户未在线"},count:"{count}",total:"总计"},from:"发送方",to:"接收方",body:"内容",notificationTitle:"标题",createdAt:"创建时间",status:"状态",system:"系统通知",severity:"消息等级",config:"配置",selectChannels:"选择通知渠道",selectChannelsTip:"选择需要重发的渠道",resendFailedOnly:"仅重发失败渠道",statistics:"统计",allSender:"所有发送者",allSeverity:"所有等级",severityType:{info:"正常",success:"成功",warning:"警告",error:"错误"},clear:"清空",allDone:"全部完成",filterType:{all:"全部",unread:"未读"},viewMore:"查看更多"},router:{routerSetting:"域名和网址",certSetting:"SSL 证书",defaultSite:"默认",urlHelperText:"不以 HTTP/HTTPS 开头的 URL 将被认为是相对路径",empty:"点击 “添加 URL” 来增加映射",healthy:{ok:"Blocklet 运行中,可访问",error:"Blocklet 未安装或未运行中,无法访问"},service:{select:"选择和配置服务(可选)",what:"服务是把请求转交给 Blocklet 前执行的逻辑,比如要求用户登录,检查权限等"},nonProvider:{title:"变更引擎警告",description:"如果你将引擎切换为 none,你当前访问的页面可能不再可用,因为它可能是由引擎来提供服务的,是否要继续?",confirm:"我知道风险,继续吧"},validation:{urlRequired:"URL 是必填的",redirectCodeRequired:"重定向码是必选的",didRequired:"应用是必选的",pathPrefixTooLong:"请求的前缀不能超过30个字符",pathPrefixCannotBeEmpty:"请求的前缀不能为空",domainRequired:"节点域名不能为空",invalidUrl:"请填写正确的 URL",pathPrefixRequired:"URL 前缀是必填的",redirectUrlRequired:"重定向 URL 是必填的",rewriteUrlRequired:"重写到 URL 是必填的"},domain:{addSite:"添加站点",validate:{emptyTip:"站点域名不能为空",suffixTip:"站点域名不能包含 {suffix}"},add:{title:"添加域名",description:"请填写你所拥有的合法的域名",confirm:"添加",cancel:"取消",blocklet:"选择 Blocklet",redirect:"重定向到哪里?",port:"负责处理请求的服务监听在哪个端口?",portTip:"保持默认值就好,如果你想把请求转发到非默认端口,可以根据需要修改",type:"服务类型",component:"选择组件",pageGroup:"路由分组",pageGroupTip:"该组件具备渲染这里列出的任何一组页面,留空表示渲染所有页面"},update:{title:"更新站点域名",label:"站点域名",description:"请填写你所拥有的合法的站点域名"},setup:{tipStart:"请将",tipEnd:"域名的 DNS 记录按照下面的提示添加",recordType:"记录类型",recordValue:"记录值"},verify:{ok:"该域名解析正常",notResolved:"该域名解析异常,请检查你域名服务商的 DNS 配置"},https:{ok:"该域名已启用 HTTPS",bad:"该域名尚未启用 HTTPS"},delete:{title:"删除站点",description:"确认之后,你会删除掉 “{name}” 站点, 在下面输入“{name}”,选择删除按钮完成修改,或者选择取消按钮关闭当前弹窗。",confirm_desc:"请输入 {name} 以确认删除"}},domainAlias:{nftDomain:"使用 DID Names 自动配置",showTipHint:"如何配置域名解析?",add:{title:"添加额外域名",domainDescription:"请填写有效的域名",forceTip:"当域名已存在时强制添加",helperText:"如果输入 HTTP 或者 HTTPS URL, 则会被自动转换为域名。",isDidDomainError:"该域名是 DID Domain, 请使用自动配置域名的方式添加该域名。",tips:"你可以输入从 DID Names 或任何其他地方购买的域名。如果这是一个 DID 域名,你必须出示 DID 域名 NFT 才能继续。"},addCustomDomain:{name:"自定义域名"},addDomainNFT:{showNFT:"自动配置域名",tips:"你可以输入从 DID Names 购买的域名。如果检测到 DID 域名,你必须出示 DID 域名 NFT 才能继续。",connect:{scan:"使用以下其中一种方法连接 {domain} 到 {appName}",confirm:"确认 在 您的 账户",success:"授权成功",title:"连接 DID Names 到 {appName}"},buyTip:"DID 名称将自动完成域名解析,无需手动配置, Blocklet 会在需要时自动更新域名的解析记录。如果您还没有 DID Domain NFT,",buy:"购买 DID Domain",topLevelDidDomainHint:"对于DID域名,如果您输入顶级域名(例如 example.com),它将自动配置为 www.example.com",authorizeFailed:"获取域名 NFT 信息失败,请重试!"},delete:{title:"删除",description:"删除“{domain}”后,对该别名的访问可能无法正常处理。",confirmPlaceholder:'请输入 "{domain}" 删除'},custom:"自定义域名",noCustom:"无自定义域名",noCustomTip:"你的网站尚未配置自定义域名。为增强安全性并提升用户体验,我们建议你配置自己的自定义域名。点击下方开始配置。"},domainSecurity:{title:"站点安全设置",cors:{title:"CORS 域名白名单",description:'此白名单显示的声明可以往 {name} 发送跨域请求的域名, 多个域名用逗号分隔, 可以用 "*" 来允许任何域名(我们不推荐这么做)',domainInvalid:"请输入有效的域名列表"}},rule:{add:{title:"添加 URL",confirm:"添加",pathPrefix:"请求的前缀是什么?",pathPrefixTip:"如果你填写了 '/prefix',那么所有以其为前缀的请求都会被转发到配置的 Blocklet",blocklet:"把请求代理到哪个服务?",port:"把请求代理到哪个端口?",portTip:"这里的默认值是应用默认监听的端口,如果你的应用会启用多个端口,你可以根据需要自定义",responseType:"回应类型",responseBody:"响应内容",responseBodyTip:"请将您的回复内容粘贴在这里,不要超过4096个字符",responseBodyRequired:"响应内容不能为空"},delete:{title:"删除规则",description:"确认之后,你会删除掉 “{name}” URL映射, 在下面输入“{name}”,选择删除按钮完成修改,或者选择取消按钮关闭当前弹窗。",confirm_desc:"请输入 {name} 以确认删除",cancel:"取消"},update:{title:"更新规则",confirm:"确认,更新吧",cancel:"取消"}},cert:{name:"证书名称",domain:"域名",commonName:"通用名称",boundDomains:"域名",action:"操作",expired:"已过期",leftDays:" 天 剩余",issuedOn:"签发时间",expiryOn:"过期时间",fingerprintAlg:"指纹算法",validityPeriod:"有效期",matchedSites:"匹配站点",source:"添加方式",upload:"手动上传",publicCertHelperText:"公开证书可以下载",nonPublicCertHelperText:"非公开的证书不能被下载",protectedCertHelperText:"受保护的证书不可以编辑",unprotectedCertHelperText:"不受保护的证书可以编辑",issuing:"正在生成证书",sourceTypes:{upload:"手动上传",lets_encrypt:"Let's Encrypt"},table:{nodata:"暂无数据"},delete:{title:"删除证书",description:"确认删除域名 {domain} 的证书?删除后相关服务可能会受到影响,请确认无风险后再删除。",confirm:"确认"},nginx:{title:"更新证书",titleAdd:"添加证书",pem:"证书文件",pemTip:'请把证书文件拖拽到这里, 应该以 ".pem" 或 ".crt" 结尾',key:"证书私钥",keyTip:'请把证书私钥拖拽到这里,应该以 ".pem" 或 ".key" 结尾',confirm:"提交",cancel:"取消",invalidFile:"所选择的文件无效",empty:"尚未选择任何文件",sourceTypes:{upload:"通过上传文件",lets_encrypt:"通过 Let's Encrypt 自动生成"},source:"來源"},detail:{title:"证书详情"},genLetsEncryptCert:{title:"生成 Let's Encrypt 证书",dnsTip:"请确保该域名已经解析到了当前节点。",description:"添加证书会让服务变得更安全,节点会在证书过期前自动更新证书。"}},gateway:{reqLimit:{switchLabel:"启用并发请求限制以获得可靠的性能",rate:"限制每个 IP 并发请求数为每秒 {rate} 个 (按 IP 限制)",title:"请求限制",global:"限制网关处理的并发请求数为每秒 {global} 个(全局限制)",burstFactor:"速率限制的突发因子,应用于全局和每个IP的限制 (全局: {global}, 单 IP: {rate})",methods:"只限制以下 HTTP METHOD 的并发请求(仅对 IP 生效)",burstDelay:"请求突发并超过每IP限制时的延迟 ({delay} 秒)"},cacheEnabled:{switchLabel:"启用网关缓存以提升性能",title:"网关缓存"},blockPolicy:{switchLabel:"请求封禁",addItem:"添加",blacklistDesc:"来自这些 IP 的请求将被阻止访问此服务器和所有应用",inputPlaceholder:"请输入 IP 地址、CIDR 范围或 URL",invalidItem:"无效的 IP 地址、CIDR 范围或 URL",title:"请求阻止",autoBlocking:{switchLabel:"通过实时检测阻止恶意请求",windowSize:"用于统计请求的时间窗口大小(秒)",windowQuota:"每个 IP 在窗口期内允许的最大请求数",blockDuration:"超出窗口配额时按 IP 阻止用户的持续时间(秒)",statusCodes:"需要检查的状态代码"}},proxyPolicy:{switchLabel:"运行在代理之后",trustRecursive:"无条件信任代理",trustRecursiveDesc:"使用 X-Forwarded-For 链中的最左边的 IP",trustedProxies:"可信代理",trustedProxiesDesc:"来自这些 IP 的请求将被信任以获取真实的客户端 IP",realIpHeaderLabel:"客户端 IP 标头",realIpHeaderDesc:"如果 Blocklet 服务器在诸如 CloudFront 之类的代理后面运行,您可以在此设置客户端真实 IP 的标头。",addItem:"添加",inputPlaceholder:"输入 IP 地址,CIDR 范围",invalidItem:"无效的 IP 地址、CIDR 范围",title:"代理政策"},wafPolicy:{switchLabel:"使用 ModSecurity 检测和阻止恶意请求",modeDesc:"Modsecurity 的模式(需要 modsecurity 模块)",mode:{detectOnly:"仅检测(不会阻止请求)",on:"开启(将阻止请求)"},logLevelDesc:"ModSecurity 的日志级别(0-9),0 表示禁用审计日志",inboundAnomalyScoreThresholdDesc:"入站异常评分阈值 (1-100),值越低意味着越严格",outboundAnomalyScoreThresholdDesc:"外部异常评分阈值 (1-100),较低值意味着更严格",docDesc:"查看文档了解如何设置 modsecurity",title:"Web 应用防火墙"}}},noMatch:{desc:"我们找不到您要找的页面"},health:{connectionErrorTip:"节点服务节点的连接已经断开,可能是出现了网络异常或者节点服务节点故障",connectionRecoveryTip:"节点服务节点的连接刚刚恢复正常",connectionStoppedTip:"节点服务节点已经被停止",wrongAccessUrlTip:"节点访问地址错误,请使用正确的访问地址"},debug:{title:"您的节点已启动并正在运行"},embed:{iconTip:"点击查看订阅详情"},team:{invite:{action:"邀请新人",setting:"邀请设置",enabled:"禁用此设置以限制只有拥有者/管理员才能邀请新用户",disabled:"启用此设置以允许任何用户邀请新用户",inviter:"被邀请者"},add:"添加",member:{name:"姓名",passport:"通行证",passports:"通行证",lastLogin:"上次登录",lastLoginIp:"上次登陆 IP",source:"注册来源",source_derived:"OAuth 账户派生",source_wallet:"DID Wallet",filter:"条件筛选",blockAccess:"禁止登录",blockAccessDescription:"该成员将无法登录此应用",allowAccess:"允许登录",allowAccessDescription:"该成员将可以登录此应用",removeUser:"删除成员",removeUserDescription:'确认删除用户 "{did}" 及其所有相关数据(已连接账号、通行证、登录会话等)?此操作无法撤销。',updateRole:"更新角色",revokePassport:"撤销通行证",revokePassportDescription:"通行证一旦被撤销,通行证的持有者将无法用其登录,是否继续?",enablePassport:"启用通行证",enablePassportDescription:"撤销的通行证一旦被重新启用,通行证持有者将可以继续登陆应用,是否继续?",passportPermissionTitle:"该通行证具有以下权限:",search:"搜索成员",onlyApprovedMember:"仅显示已批准",inviteDialog:{createInviteLink:"生成邀请链接",createSuccessTip:"创建邀请链接成功,请复制并发送给被邀请人。该链接只能使用一次,并将在 {expireDate} 过期"},error:{passportEmpty:"通行证不能为空"},connectedAccounts:"已连接账号",connections:"账号绑定",federated:"统一登录",switch:{did:"添加账户",profile:"更新身份",passport:"切换通行证"},settings:{notification:"通知设置",email:"当有动态时给我发送邮件",wallet:"当有动态时给我发送钱包通知",phone:"当有动态时给我发送短信",webhook:"外部钩子",add:"添加新钩子",url:"自定义 URL",slack:"Slack 通知",tested:"测试消息已经发送"},activeUserSessions:"活跃用户会话",forceLogout:"强制注销",forceLogoutDescription:"确认是否强制退出此用户?",forceLogoutRemoveDescription:"确认是否强制退出此用户(同时删除所有登录会话)?",openProfile:"查看个人资料",removeUserSuccess:"用户删除成功"},transferNode:{name:"转移所有者",inviteDialog:{createInviteLink:"生成邀请链接",title:"转移节点",tips:{progress:"转移节点需要对方接受后才能完成转移操作,对方一旦接受,无法再使用当前凭据登录节点。",newOwnerPermissions:"新 Owner 将有权管理成员、通行证,以及应用等所有操作。",revoke:'如果想收回转移邀请,在"团队 -> 成员 -> 邀请中"页面删除邀请链接即可。'},createSuccessTip:"创建邀请链接成功,请复制并发送给被邀请人。该链接只能使用一次,并将在 {expireDate} 过期"},delegateDialog:{title:"需要授权",scan:"使用以下方法授权服务器转移节点所有权 NFT",confirm:"确认在你的账户",success:"授权成功"}},transferApp:{name:"转移所有者",transferDialog:{title:"转移应用",tips:{progress:"转移应用需要对方接受后才能完成转移操作,对方一旦接受,无法再使用当前应用所有者凭据登录应用。",newOwnerPermissions:"新 Owner 将有权管理成员、通行证,以及设置等所有操作。"},createTransferLink:"生成转移链接",createSuccessTip1:'创建转移链接成功,被邀请人必须使用 <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> 接收应用所有权',createSuccessTip2:"请复制并发送给被邀请人。该链接只能使用一次,并将在 {expireDate} 过期。你的转移链接只会展示一次,关闭此窗口后将无法再次查看",createSuccessTip3:"转移成功之后应用会自动重启以使变更生效",link:"邀请链接",iKnow:"我已复制保存好该链接"},connectDialog:{title:"需要授权",scan:"使用以下方法授权应用转移所有权。",confirm:"确认 在您的账户中",success:"授权成功"},receiveDialog:{title:"接收应用程序所有权",scan:"使用以下方法接收应用所有权。",confirm:"确认 在 您 的 账户",success:"成功获得所有权"},successTitle:"你已成为应用的所有者",visitDashboard:"访问应用控制台",description:"你可以将你的应用程序所有权转移到另一个钱包或其他人。"},permission:{create:{title:"创建权限",description:`格式:<操作>_<资源>
|
|
7
|
+
比例:16:9`,copyrightDesc:"使用于:网站页脚",appUrlDesc:"使用于:网站地图和社交分享",errorReason:"Blocklet 启动失败,但您仍然可以通过点击下面的按钮访问它。"},overview:{source:"来源",deployedFrom:"部署源",accessControl:"访问控制",viewInStore:"在商店中查看"},diskInfo:{empty:"无法获得磁盘信息",appDir:"应用目录",dataDir:"数据目录",logDir:"日志目录",cacheDir:"缓存目录"},runtimeInfo:{noRunning:"当应用运行时才可以获得运行信息!",memoryUsage:"内存",cpuUsage:"CPU",uptime:"启动时长",port:"端口",processId:"进程 ID",dataStorage:"数据存储"},dist:{downloadLink:"下载地址",verify:"校验信息"},status:{added:"已添加",waiting:"等待中",downloading:"下载中",extracting:"提取中",installing:"安装中",upgrading:"升级中",installed:"已安装",created:"已创建",starting:"启动中",running:"运行中",stopping:"停止中",stopped:"已停止",error:"错误",deleting:"删除中",corrupted:"已损坏",purchased:"已购买",purchasing:"购买中...",verifying:"验证中...",resource:"资源",failWithOldVersion:"新版本启动失败, Blocklet 正在旧版本上运行。",hasSomeErrors:"{blocklets} 未完全运行,可能是由于问题或待启动。"},list:{download:"下载数",star:"收藏数",searchPlaceholder:"按 Blocklet 名称或 DID 搜索"},component:{container:"全局配置",showContainer:"显示全局配置",didSpaceConfig:"配置 DID Spaces",didSpaceConfigTip:"完成以下授权流程,即可将应用数据存储到 DID Spaces 中",didSpaceConnected:"正在授权存储到:{endpoint}",checkUpdateTitle:"检查更新",updateTitle:"更新 Blocklet",noUpdate:"没有需要更新的 Blocklet",add:"添加 Blocklet",selectComponent:"选择 Blocklet",selectRegistry:"选择应用商店",selectRegistryTip:"您可以切换应用商店以查看更多 Blocklet",selectInstance:"选择实例",selectInstanceTip:"您可以选择已有实例 或 创建新的实例。已有实例将使用之前保存的配置和数据",newInstance:"创建新实例",noComponent:"暂无 Blocklets",mountPoint:"Blocklet 的挂载点是什么?",mountPointTip:"如果你填写了 '/my-prefix',那么所有以其为前缀的请求都会被转发到配置的 Blocklet",delete:"删除 Blocklet",deleteDescription:"删除后此 Blocklet 将无法访问。确认删除?",purchase:"需要支付",tip:{stopBlocklet:"请先停止运行应用",requiredBy:"{name} 需要该 Blocklet"},choose:"选择",upgrade:"升级",addWithName:"将 Blocklet 添加到 {name}",installed:"已安装",installingTip:"正在安装 Blocklet 中, 请等待安装结束",installingCanCloseWindowTip:"正在后台安装 Blocklet 中, 您可以放心关掉此窗口",installSuccessTip:"恭喜,组件安装成功!",missDownloadTokenTip:"缺少下载凭证,无法下载",purchaseComponentSecondCheckTip:"请在 钱包 提供应用购买凭证",installComponentError:"安装组件遇到错误,请重试",downloadComponentError:"下载组件遇到错误,请重试",addComponentTip:{introduction:"欢迎来到添加组件向导",isPurchase:"您需要验证凭证才能添加 <b>{name}</b> 为组件;",belowInformation:"下面为该组件的信息:",verifyNFT:"请选择验证凭证方式",config:"请填写组件的相关配置",environment:"请填写组件的环境变量",fromUrl:"从 URL 添加 Blocklet",fromUpload:"从上传添加 Blocklet",uploadFailed:"上传失败",allowedFileTypes:"允许上传的文件类型:{types}"},addNext:"添加 {name}",upgradeNext:"升级 {name}",setting:"参数设置",noDependencies:"{name}没有任何依赖",relatedComponents:"相关 Blocklets",required:"必须",upgradeAvailable:"可更新",needBuy:"需购买",isOfficial:"官方认证"},router:{urlPath:"URL 路径",securitySetting:"安全设置",noRunning:"应用当前未启动。无法通过以下地址访问!",checkUrlAccessible:"检查地址的是否可访问",urlInaccessible:"可能因为网络的原因,该地址暂时无法访问",noAccessibleUrl:"没有可访问的地址",domainLockTooltip:"无法编辑由系统生成的域名",urlLockTooltip:"无法编辑由系统生成的 URL 路径",showAllDomains:"显示所有域名",showAllDIDs:"显示所有 DID",currentDomainTip:"你正在通过该域名访问当前页面"},export:{title:"导出应用",name:"包名称",nameTip:'e.g. "my-blocklet-name" or "@my-scope/blocklet-name"',result:"接下来",exportSource:"导出源代码",success:"应用导出成功",resultTipStart:"使用",resultTipEnd:"你可以在几分钟内构建并发布这个应用",uploadedComponentTip:"无法导出直接上传的组件:"},migrate:{title:"迁移应用",scan:"用你的 DID Wallet 为这个应用生成钥匙对",confirm:"请在 DID Wallet 上确认",success:"你的应用已迁移成功,页面将在 {sec} 秒后刷新",intro:{l1:"点击这里",l2:"迁移应用到新版(迁移完成之前组件升级将被禁用)",l3:"1. 应用的钥匙对将完全由钱包管理",l4:"2. 应用的数据将平滑迁移,不会丢失",l5:"3. 新的结构将为你组合应用提供更大的灵活性",l6:"4. 在组件有新版之前,请不要在迁移之后随意变更组件挂载点"},tip:{duplicate:"发现重复的组件 {name},请删除无用组件并重新迁移",running:"迁移前请先停止应用"}},error:{isRunning:"应用正在运行,请先停止运行",isInProgress:"应用正在进行中,请等待完成"},publish:{createResource:"创建资源",addResource:"添加 Blocklet",productTitle:"Blocklet 详情",versionTitle:"版本",imgTitle:"图片资源",resourceTitle:"内容",blockletEmptyTip:"这里没有任何 Blocklet",createBlockletTip:"你可以使用此应用的资源,组件,配置制作新的 Blocklet",createBlocklet:"新建 Blocklet",componentNotRunning:"Blocklet {name} 没有运行,请先启动它",resourceEmptyTip:"没有可用的资源",releaseEmptyTip:"这里没有任何发布",createReleaseTip:"您可以创建 Blocklet 新版本,在发布中包含说明和资源,以供其他人使用",createRelease:"创建版本",deleteReleaseTip:"此发布删除后不可恢复,是否继续?",createBlockletDid:"通过 DID Wallet 创建",createReleaseSuccess:"发布成功",saveDraftSuccess:"保存成功",packTip:"您的 Blocklet 现在可以直接安装为应用程序。应用程序配置将自动包含在内",resourceChangedWarning:"您修改了资源,请及时保存",installResourceTip:"安装网址:",installResourceTip2:"如果你需要更多提示,请查看",installResourceHelp:"帮助文档",componentIncluded:"包含",componentForceRequired:"强依赖",connect:{title:"创建 Blocklet DID",scan:"使用以下方法生成 Blocklet DID",confirm:"使用 DID Wallet 确认",success:"Blocklet DID 已经生成,请继续您的操作"},saveDraft:"保存草稿",releaseNote:"发布说明",errorTip:{noDid:"请填写 Blocklet DID",noFirstDid:"请先填写 Blocklet DID",noTitle:"请填写 Blocklet 名称",noVersion:"请填写 Blocklet 版本号",noResource:"请选择上传的资源以包含在应用中",noDescription:"请填写 Blocklet 描述",noNote:"请填写 发布说明",inValidVersion:"无效的 Blocklet 版本",invalidUrl:"请输入有效的网址",invalidUrlOrEmail:"请输入有效的URL或电子邮箱"},download:"下载 {name}",delete:"删除 {name}",copyInstallUrl:"复制安装链接",install:"安装 {name}",publishToStoreSuccess:"成功发布到商店的Blocklet",connectStoreSuccess:"Blocklet 成功连接 Store",uploadToStoreSuccess:"Blocklet 成功上传至 Store,请在 Store 中发布",viewLastRelease:"查看最新版本",reconnectStoreTip:"重新连接后,将绑定一个新的开发者。你确定要重新连接吗?",deleteProject:{title:"删除{name}",scan:"使用以下方法删除 {name}",confirm:"确认使用DID钱包",success:"Blocklet 已被删除,请继续操作",tip1:"Blocklet 一旦删除将无法恢复。",tip2:"您将不能再向已删除的 Blocklet 发布新版本,这意味着 Blocklet 将不再在商店中更新。",tip3:"删除 Blocklet 不会影响商店中已发布的版本。",description:"您确定要删除这个 Blocklet 吗?删除后可能会遇到以下问题:"},resourceTip:"目前,作为资源型 Blocklet,它无法直接从 Store 安装。",whyCantSeeInStore:"你可以将当前 Blocklet 发布到商店,它可以在全世界使用",whyCantSeeResourceBlockletInStore:"你可以将当前 Blocklet 发布到商店,它可以在全球使用。Blocklets 默认情况下隐藏在商店列表页面",tenantScope:"租户",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets未运行,请先启动",steps:{resources:"请选择需要与当前的 Blocklet 关联的资源,这些资源将与 Blocklet 一起安装。",blocklets:"请选择当前 Blocklet 安装时, 需要关联安装的 Blocklets。",version:"设置发布版本和更改日志。",introduction:"清晰的介绍可以有效地突出你的Blocklet。你可以使用Markdown语法来编写和预览。",branding:"描述您的应用链应用的基本信息。此信息将在商店向用户展示。"},branding:"品牌",brandingHelp:"将在商店中显示有关应用链的更多信息",resourceSelect:"从 blocklets 选择资源",resourceUpload:"从您的磁盘上传资源(存档中需要index.html)",deleteStoreTip:"您确定要将{name}从连接商店列表中移除吗?",disconnectStoreTip:"断开连接后,blocklet 将从商店中移除。您确定要断开连接吗?",connectOrUpload:"连接或上传",developerInfo:"开发者信息",possibleSameStoreTip:"依赖的 Blocklets 优先使用同源 Store",autoUploadTip:"创建发布后自动将 Blocklet 上传到商店",needProjectId:"请先创建一个项目",projectSettings:"项目设置",noStoreSelected:"请选择现有店铺中的一个或添加新店铺以继续",installToThisServer:"安装到此服务器",forceResourceBlocklet:"强制定义为资源型组件",resourceDocker:"从 Docker 构建 Blocklet",resourceSelectTitle:"资源",resourceUploadTitle:"上传",resourceDockerTitle:"Docker",resourceDockerInputTip:"请输入 docker run 命令",docker:{pleaseInputDockerCommand:"请输入 docker run 命令",volumeTip:"卷必须以 $BLOCKLET_DATA_DIR 或 $BLOCKLET_APP_DIR 开头",volumeTip2:'卷不能包含 ".."',noAllowTheArg:"不允许在 docker run 命令中使用该参数",needCustomInput:"安装 Blocklet 时设置值",dockerParams:"Docker 参数",dockerCommand:"Docker 命令",dockerImageName:"Docker 镜像名称",addItem:"添加 Docker 运行参数",envKey:"环境变量键",publishTips:"最终外部端口将由 blocklet 自动分配",volumeTips:"卷需要以 $BLOCKLET_DATA_DIR 或 $BLOCKLET_APP_DIR 开头",modifyParam:"修改 Docker 运行参数",modifyEnv:"修改环境变量",paramDetail:"参数详情",description:"描述",secure:"安全",shared:"共享",required:"必需",prefix:"前缀",path:"路径",name:"名字",portType:"端口类型",dockerImageNameError:"Docker 镜像名称不能包含空格",autoGenerated:"自动生成",dockerCMDError:"Docker CMD 只支持简单字符",proxyBehavior:"代理行为",serviceProxy:"服务",directProxy:"直接",nextTab:"解析 命令"},storeRule:{maxImageCount:"该 Store 最多允许 {max} 张截图。",minImageCount:"该 Store 至少需要 {min} 张截图。",minImageSize:"{name}张屏幕截图图像大小必须至少为 {width}x{height}。",logoFormat:"Logo 图片格式仅支持 [{format}]。",warning:"警告",screenshot:"截图",screenshots:"截图",first:"第一",second:"第二",third:"第三"},store:"Blocklet 商店",endpoint:{tab:"远程 Blocklet",uploadToEndpoint:"你可以上传当前 Blocklet 到指定的 Blocklet。",addEndpoint:"添加 Blocklet URL",urlEmpty:"端点 URL 不能为空",addFailed:"添加 Blocklet URL 失败:",deleteEndpoint:"删除 Blocklet URL",deleteDesc:'确认删除 Blocklet URL {name}?<br/><span style="color: {color}">*移除此 Blocklet URL后,除非重新添加,否则无法更新从此 Blocklet URL安装的应用。</span>',confirmDesc:"请输入 {name} 删除",visitEndpoint:"访问 Blocklet",disconnectEndpointTip:"你确定要断开 {url} 的连接吗?断开连接后,Blocklet 将不会上传到此端点。",deleteFailed:"删除 Blocklet URL 失败",publishToEndpointSuccess:"Blocklet 成功发布到 URL",uploadToEndpointSuccess:"Blocklet 上传到 URL 成功"},autoPublishErrorTip:"自动发布到 {storeName} 失败:{error}",singleton:"仅运行一个实例",singletonTip:"启用单例模式时,应用程序不能同时运行多个实例。由于您的应用使用单例模式,蓝绿部署不能用于更新或重启。"},titleValidationError:"标题长度必须在 3 到 20 个字符之间",descriptionValidationError:"描述长度必须介于3到80个字符之间",usingDocker:"这个 Blocklet 将使用 docker 运行",gotoVisitError:"无法访问 Blocklet 地址,请稍后再试",usingIsolation:"这个 Blocklet 将使用网络隔离运行",dockerImage:"支持 Docker",mountPoint:{description1:"这次更改有可能会影响到包含旧挂载点的 URL,进而可能引发一些问题:",case1:"应用里 Blocklets 之间的资源引用出现异常",case2:"如果您对外分享过相关内容,分享 URL 可能失效",description2:"为了尽量降低可能的影响,您可以设置旧挂载点到新挂载点的重定向。"},skSourceMigratedTip:"此应用最初使用服务器管理的钱包启动,现已迁移到 DID Wallet 以增强安全性。",skSourceManagedTip:"此应用正在使用服务器管理的钱包,请尽快迁移到DID Wallet以获得更好的安全性。",zeroDowntime:"零停机"},dashboard:{nodeDid:"节点地址",ownerDid:"所有者地址",routingEngine:"路由引擎",ownerNftURL:"所有者 NFT",expirationLeft:"有效期还剩",startFromCrashTip:"应用Server 上次未正常退出,请手动启动需要运行的 blocklet.",runtimeConfig:{blockletMaxMemoryLimit:"Blocklet 最大内存限制",daemonMaxMemoryLimit:"Server 最大内存限制"},document:"在我们的文档中了解更多信息",database:"数据库"},store:{nameSort:"名称",popularSort:"下载量",headerDescription:"查找、安装 Blocklet",detail:{purchase:"购买 {name}",open:"打开 {name}",install:"安装 {name}",upgrade:"升级 {name}",empty:"暂无介绍"},blockletRegistry:{changeFailed:"更改应用商店地址失败:",addFailed:"添加应用商店地址失败:",editFailed:"编辑应用商店地址失败:",switchRegistry:"选择应用商店地址",addRegistry:"添加应用商店地址",editRegistry:"编辑应用商店地址",deleteRegistry:"删除应用商店地址",haveSameRegistry:"存在相同的应用商店地址",registryName:"应用商店名称",registryUrl:"应用商店地址",registryNameEmpty:"应用商店名称不能为空",registryUrlEmpty:"应用商店地址不能为空",deleteDesc:'确认删除应用商店地址 {name} ?<br/><span style="color: {color}">*移除该商店之后,无法更新从此商店安装的应用,除非你再次添加。</span>',confirmDesc:"请输入 {name} 以确认删除"},purchase:{title:"购买 {name}",confirmed:"你的购买已经验证,安装中",declined:"你没有提供有效的购买凭证",waiting:"等待购买完成...",purchase:{title:"获取凭证",description:"安装此应用之前你需要支付一定数量的通证以完成购买"},verify:{title:"验证凭证",description:"如果你已经购买过此应用,提供购买凭证 NFT 即可完成安装",auth:{title:"需要验证购买凭证",scan:"用你的 DID Wallet 提供购买凭证",confirm:"请在 DID Wallet 上确认",success:"你的购买凭证已经验证通过,应用正在安装中"}},auth:{title:"购买 {name}",scan:"用你的 DID Wallet 完成操作",confirm:"确认 在您的账户",success:"购买凭证已经发送到你钱包"},launch:"启动 {name}",autoLaunch:"{name} 购买成功,正在跳转到启动页面..."},tooltip:{upgradeServer:"Blocklet 需要 Blocklet Server 版本 {version},当前 Blocklet Server 版本是 {serverVersion}"}},setting:{saveSuccess:"保存设置成功",unSavedTip:"有尚未保存的更改,请单击“保存”使更改生效。",unSavedLeaveTip:"有尚未保存的更改,是否确定离开当前页面?",form:{name:"节点命名",nameRequired:"名称不能为空",namePlaceholder:"节点名称",description:"节点描述",descriptionHolder:"节点描述",descriptionRequired:"节点描述不能为空",domain:"节点域名",domainPlaceholder:"节点域名",registry:"应用商店地址",registryPlaceholder:"用来拉取 Blocklets 列表",registryRequired:"应用商店地址是必填的",registerUrl:"应用启动器地址",registerUrlPlaceholder:'你可以使用自己运行的"应用启动器", 也可以使用官方提供的版本',webWalletUrl:"DID Wallet 地址",webWalletUrlPlaceholder:'你可以使用自己运行的 "DID Wallet", 也可以使用官方提供的版本',nftDomainUrl:"NFT Domain 地址",nftDomainUrlPlaceholder:"你可以选择其它的 NFT Domain 服务器, 也可以使用官方提供的版本",upgrade:{title:"升级 Blocklet 服务器到 {version}",description:"在升级期间,节点将会进入维护模式几分钟。",dialog:"点击 “确认” 安装更新。节点将进入维护模式,直到更新完成并自动返回生产模式。",confirm:"升级",switchLabel:"自动更新检查",enableBetaRelease:"允许安装测试版",setup:"准备升级中",installing:"安装节点新版本(v{version})",restarting:"重新启动节点",cleanup:"迁移节点数据",verifying:"验证节点新版本 v{version}",rollback:"回滚此次升级",complete:"升级完成!",progress:"升级 {name}",check:"检查更新",latest:"太棒了,你的节点已经是最新版!"},restart:{title:"重新启动节点",description:"在重启期间,节点将会进入维护模式几十秒钟。",dialog:"点击 “确认” 开启重启。节点将进入维护模式,直到更新完成并自动返回生产模式。",confirm:"重启",setup:"准备重启中",verifying:"验证节点版本",restarting:"重启节点中",cleanup:"验证重启成功",rollback:"撤销重启操作",complete:"维护完成",progress:"重新开始 {name}"},welcome:{switchLabel:"Welcome 页面"},security:{switchLabel:"文件系统隔离",switchTips:"关闭此选项后,Blocklet 的文件系统将不再处于隔离状态,可能会存在恶意软件破坏文件系统的风险。",warningTips:"文件系统隔离功能无法生效,请将 node.js 版本(当前版本为 {version})升级至 v21.6.0 或更高。"},register:{title:"注册到 Blocklet Launcher",description:"添加成功后,你可以快速从 {url} 安装应用到此节点",button:"注册"},monitor:{diskThreshold:"当磁盘使用率超过(%)时发送报警",diskThresholdPlaceholder:"请设置磁盘使用率报警阈值"},domainRequired:"服务器域名是必需的",ipPlaceholder:"IP",ipRequired:"IP是必需的",enableWelcomePage:"启用欢迎页",docker:{switchLabel:"在容器中运行 Blocklets",switchTips:"启用此选项后,块将使用容器运行,可以提高服务器的整体安全性。",notInstalled:"无法激活容器运行,因为未安装Docker或缺少执行所需的权限",needCloseFileSystemIsolation:"文件系统隔离和Docker容器模式运行时不能同时启用"},dockerNetwork:{switchLabel:"容器网络隔离",switchTips:"启用该选项后,blocklet 会以更高安全性运行:一个 blocklet 无法访问跨应用程序的其他 blocklet 或 blocklet 服务器。",needEnableDocker:"必须启用容器模式才能启用网络隔离"},restartAllContainers:{title:"重启所有容器",description:"重启所有容器并保持 Blocklets 运行。",dialog:'点击 "确认" 重启所有容器 Blocklets 并保持 Blocklets 状态运行。',confirm:"重新启动",setup:"正在准备重启",verifying:"正在验证 Blocklet Server",restarting:"在后台重启所有容器",cleanup:"确保一切正常",rollback:"清理脏状态",complete:"保持完整!",progress:"在后台重启所有容器"},restartAllBlocklet:{title:"重启所有 Blocklets",description:"重新启动此服务器上所有正在运行或出错的 Blocklets。",dialog:"点击“确认”在后台重新启动所有 Blocklets。",confirm:"重新启动",setup:"正在准备重启",verifying:"验证 Blocklet Server",restarting:"后台重新启动所有正在运行或出错的 Blocklets",cleanup:"确保一切正常",rollback:"清理脏状态",complete:"维护完成!",progress:"正在后台重启所有运行中或出错的 Blocklets"},enableSessionHardening:{switchLabel:"启用会话强化",switchTips:"启用此选项后,变更操作将需要严格验证,这可以提高服务器的整体安全性。"}},accessKey:{accessKeyId:"Access Key ID",accessKeySecret:"Access Key Secret",lastUsed:"最后使用",tip:"请给 Access Key 起个名字",saveSecretTip:"你的 Access Secret 只会展示一次,关闭此窗口后将无法再次查看,不过你可以随时重新创建新的 Access Key",iKnow:"我已复制保存好该 Access Secret",showSecret:"展示 Secret",hideSecret:"隐藏 Secret",title:"删除 Access Key",descriptionNoTime:"此操作无法撤消。这将永久删除备注为 {name} 并且 Id 为 {key} 的 Access Key (此 Access Key 之前没有被使用过) ",description:"此操作无法撤消。这将永久删除备注为 {name} 并且 Id 为 {key} 的 Access Key (最后的使用时间为 {time}, {timeAge})",confirm_desc:"请输入 {name} 以确认删除",remark:"Access Key 名称",remarkInvalid:"Access Key 名称不能为空",passport:"选择一个护照用于访问密钥以授予或限制权限",expireTime:"设置访问密钥的过期日期以增强安全性",authType:"验证类型",resourceType:"资源类型",resourceId:"资源 ID",component:"组件",expired:"{time}过期",simple:"一般安全",signature:"高安全",signatureDesc:"企业级安全标准,使用加密技术。需要与SDK (@blocklet/server-js)集成代码,非常适合对安全要求高和需要传输关键数据的场景",simpleDesc:"轻量级载体令牌机制,类似于OpenAPI Key,支持RESTful API调用和第三方服务集成。无需编码,通过HTTP Header快速集成,非常适合快速开发",viewSecret:"你可以在访问密钥的详情页稍后访问密钥",usage:"使用",listTitle:"使用访问密钥管理安全的 API 访问",tooltipTitle:"生成和管理允许信任系统以编程方式与您的应用交互的凭据。访问密钥支持安全自动化以及您工具和服务之间的无缝集成。"},webhook:{add:"添加应用集成",delTitle:"删除应用集成",requiredError:"请输入正确的 {type}",duplicateError:"该 URL 已经存在",confirm_desc:"请输入 {name} 以确认删除",test:"测试",description:"此操作无法撤消。这将永久删除 ID 为 {id} 的应用集成",columns:{description:"ID",params:"参数",createdAt:"创建时间"},testSuccess:"测试消息发送成功",updateSuccess:"更新状态成功"},dns:{step1Title:"登录你的域名注册商",step1Desc1:"登录你的域名注册商,找到域名管理页面,并找到名称服务器设置页面。 你可以访问",step2Title:"2. 查找 {url} 的 DNS 设置",step2Desc:'这可能被称为"DNS 管理","高级设置"或类似名称。',step3Title:"3. 添加以下 DNS 记录",step3Desc:'Name可以叫做 "host","hostname",或 "alias"'},domain:{addingDomain:"添加域名...",checkingResolvable:"正在检查域名状态...",cannotResolve:"{domain} 无法解析,请检查您的 DNS 配置",resolvedAddressError:"{domain} 未正确配置指向 {curDomain} 的 CNAME 记录",invalidDNSReminder:"{error}。但是,您可以继续添加域名,但无法自动生成证书。",continueAdd:"继续添加",conflictTitle:"{domain} 已经被使用了",conflictDescription:'{domain} 已经被 "{title}" 使用。点击确认,该域名将从 "{from}"移除并添加到 "{to}"。'},aigne:{modelAdapter:"模型提供商",modelName:"模型名称",baseUrl:"AIGNE Hub 网址",desc:{modelAdapter:"提供 AI 模型服务的平台",modelName:"特定的模型版本或模型名称",key:"{provider} API 密钥用于认证",baseUrl:"输入您的 AIGNE Hub 实例的 URL(例如 https://hub.aigne.io)。如果您自行托管,请使用您自己的地址。",accessKeyId:"访问模型的唯一密钥 ID",secretAccessKey:"与访问密钥 ID 配对的秘密密钥",docLink:"查看官方文档以获取更多详细信息和 API 参考"},failed:"AIGNE 配置保存失败",authorizeAigneHub:"连接到 {name}",disconnect:"断开连接",disconnectConfirm:"确定要断开与 AIGNE Hub 的连接吗?这将清除当前的 AI 配置。",disconnectSuccess:"成功断开与 AIGNE Hub 的连接",disconnectFailed:"断开与 AIGNE Hub 的连接失败",testConnection:"测试 {provider} 连接",invalidUrl:"{provider} URL 无效",description:"当前配置在 {name} 运行时生效。需要保存并重启 Blocklet 才能生效。",revokeUrlAuthTitle:"确认更改 {url}?",revokeUrlAuth:"您确定要更改 {url} 吗?修改后,您的授权将失效,需要重新授权!",testSuccess:"成功连接到 AIGNE Hub",check:"检查",apiKeyNotAuthorized:"API 密钥未获授权。 请点击连接到 AIGNE Hub 按钮进行授权",switchUser:"切换用户",connectTimeOut:"连接到 {provider} 超时,请稍后再试",restart:{title:"重启 Blocklet",connectedContent:"你的 Blocklet 当前连接到 {provider}。配置将在重启后生效。你想现在重启吗?",notConnectedContent:"你的 Blocklet 当前已与 {provider} 断开连接。配置将在重启后生效。你想现在重启吗?",confirm:"立即重启",cancel:"稍后重启"},testFailed:"无法连接到 AIGNE Hub。请检查 URL 或您的网络。",addCredits:"购买 Credits",transaction:"查看账单",connected:"成功连接",account:"账户信息",pendingCredit:"未付费用",infinite:"无限制",config:"配置 AIGNE Hub"}},notification:{title:"通知",history:"历史",channelSettings:"渠道设置",empty:"没有动态",viewAll:"查看所有动态",showRead:"显示已读",markAllAsRead:"全部标记为已读",markAsRead:"标记为已读",proceed:"处理",checkingForUpdates:"正在检查更新...",email:{enable:"启用通知",from:"发件人邮箱",host:"SMTP 服务地址",port:"SMTP 服务端口",user:"SMTP 用户名",secure:"安全连接",password:"SMTP 密码",fromRequired:"请输入发件人邮箱",fromInvalid:"发件人邮箱格式不正确",receiverRequired:"请输入收件人邮箱",receiverInvalid:"收件人邮箱格式不正确",hostRequired:"请输入 SMTP 服务地址",hostInvalid:"请输入 SMTP 服务地址格式不正确",portRequired:"请输入 SMTP 服务端口",portInvalid:"请输入 SMTP 服务端口,端口号应该在 0-65535 之间",userRequired:"请输入 SMTP 服务用户名",passwordRequired:"请输入 SMTP 服务用户密码",testSuccess:"测试邮件发送成功",testFailed:"测试邮件发送失败",testReceiver:"收件人邮箱",testSendEmail:"测试邮件发送",inputTestReceiver:"请输入测试邮件接收者的邮箱地址",disable:"禁用邮件通知",disableDescription:"禁用后将不再收到邮件通知,如需收到邮件通知,可以在本页面再次开启",unsubscribe:"取消邮件订阅",unsubscribeDescription:"取消邮件订阅后将不再收到所有邮件通知",subscribe:"订阅邮件",subscribeDescription:"如需收到邮件通知,可进入配置页再次开启订阅",companyName:"公司名称",companyLink:"公司链接",companyAddress:"公司地址",supportEmail:"支持邮箱",emailInvalid:"邮箱无效",linkInvalid:"链接无效,应以http或https开头",signature:"邮件签名",signatureTooltip:"电子邮件签名用于底部,以便向收件人提供发送者的关键信息。"},wallet:{description:"DID Wallet 通知总是对所有用户启用。"},webhooks:{description:"通过 webhooks 发送的通知总是对所有用户启用。"},comingSoon:"更多通知方式正在建设中",unsubscribe:"取消订阅",unsubscribeSucceed:"取消订阅成功",unsubscribeFailed:"取消订阅失败",unsubscribeTokenRequired:"取消订阅链接不存在",unsubscribeTokenExpired:"取消订阅链接已过期",unsubscribeTokenInvalid:"取消订阅链接有误",installComponentError:"未找到卸载的组件 {name}",installingComponent:"安装组件{name}",pushKit:{enable:"启用通知",endpoint:"PushKit 端点",endpointInvalid:"PushKit 端点不是一个有效的网址",testSuccess:"Test PushKit 发送成功",testFailed:"测试 PushKit 发送失败",testReceiver:"PushKit 接收器",testSend:"测试推送",inputTestReceiver:"请输入测试接收者 DID",receiverRequired:"需要 PushKit 接收者 DID",pushPath:"PushKit 的 API 路径(默认 /api/push)",did:"PushKit Blocklet DID",customOptions:"自定义选项"},notificationDetails:"通知详情",notificationPreview:"通知预览",receiver:"接收者",filter:"筛选器",resend:"重发",resendLimit:"您每天最多可以重新发送三次通知。",sendStatus:{success:"发送成功",failed:"发送失败",pending:"待发送",sentTime:"发送时间:{date}",reason:{enabled:"用户已开启 {channel} 通知",disabled:"用户没有开启 {channel} 通知",unavailable:"当前 Blocklet 没有配置 {channel} 通知",available:"当前 Blocklet 已配置 {channel} 通知",notSent:"当前消息没有向 {channel} 发送",offline:"用户未在线"},count:"{count}",total:"总计"},from:"发送方",to:"接收方",body:"内容",notificationTitle:"标题",createdAt:"创建时间",status:"状态",system:"系统通知",severity:"消息等级",config:"配置",selectChannels:"选择通知渠道",selectChannelsTip:"选择需要重发的渠道",resendFailedOnly:"仅重发失败渠道",statistics:"统计",allSender:"所有发送者",allSeverity:"所有等级",severityType:{info:"正常",success:"成功",warning:"警告",error:"错误"},clear:"清空",allDone:"全部完成",filterType:{all:"全部",unread:"未读"},viewMore:"查看更多"},router:{routerSetting:"域名和网址",certSetting:"SSL 证书",defaultSite:"默认",urlHelperText:"不以 HTTP/HTTPS 开头的 URL 将被认为是相对路径",empty:"点击 “添加 URL” 来增加映射",healthy:{ok:"Blocklet 运行中,可访问",error:"Blocklet 未安装或未运行中,无法访问"},service:{select:"选择和配置服务(可选)",what:"服务是把请求转交给 Blocklet 前执行的逻辑,比如要求用户登录,检查权限等"},nonProvider:{title:"变更引擎警告",description:"如果你将引擎切换为 none,你当前访问的页面可能不再可用,因为它可能是由引擎来提供服务的,是否要继续?",confirm:"我知道风险,继续吧"},validation:{urlRequired:"URL 是必填的",redirectCodeRequired:"重定向码是必选的",didRequired:"应用是必选的",pathPrefixTooLong:"请求的前缀不能超过30个字符",pathPrefixCannotBeEmpty:"请求的前缀不能为空",domainRequired:"节点域名不能为空",invalidUrl:"请填写正确的 URL",pathPrefixRequired:"URL 前缀是必填的",redirectUrlRequired:"重定向 URL 是必填的",rewriteUrlRequired:"重写到 URL 是必填的"},domain:{addSite:"添加站点",validate:{emptyTip:"站点域名不能为空",suffixTip:"站点域名不能包含 {suffix}"},add:{title:"添加域名",description:"请填写你所拥有的合法的域名",confirm:"添加",cancel:"取消",blocklet:"选择 Blocklet",redirect:"重定向到哪里?",port:"负责处理请求的服务监听在哪个端口?",portTip:"保持默认值就好,如果你想把请求转发到非默认端口,可以根据需要修改",type:"服务类型",component:"选择组件",pageGroup:"路由分组",pageGroupTip:"该组件具备渲染这里列出的任何一组页面,留空表示渲染所有页面"},update:{title:"更新站点域名",label:"站点域名",description:"请填写你所拥有的合法的站点域名"},setup:{tipStart:"请将",tipEnd:"域名的 DNS 记录按照下面的提示添加",recordType:"记录类型",recordValue:"记录值"},verify:{ok:"该域名解析正常",notResolved:"该域名解析异常,请检查你域名服务商的 DNS 配置"},https:{ok:"该域名已启用 HTTPS",bad:"该域名尚未启用 HTTPS"},delete:{title:"删除站点",description:"确认之后,你会删除掉 “{name}” 站点, 在下面输入“{name}”,选择删除按钮完成修改,或者选择取消按钮关闭当前弹窗。",confirm_desc:"请输入 {name} 以确认删除"}},domainAlias:{nftDomain:"使用 DID Names 自动配置",showTipHint:"如何配置域名解析?",add:{title:"添加额外域名",domainDescription:"请填写有效的域名",forceTip:"当域名已存在时强制添加",helperText:"如果输入 HTTP 或者 HTTPS URL, 则会被自动转换为域名。",isDidDomainError:"该域名是 DID Domain, 请使用自动配置域名的方式添加该域名。",tips:"你可以输入从 DID Names 或任何其他地方购买的域名。如果这是一个 DID 域名,你必须出示 DID 域名 NFT 才能继续。"},addCustomDomain:{name:"自定义域名"},addDomainNFT:{showNFT:"自动配置域名",tips:"你可以输入从 DID Names 购买的域名。如果检测到 DID 域名,你必须出示 DID 域名 NFT 才能继续。",connect:{scan:"使用以下其中一种方法连接 {domain} 到 {appName}",confirm:"确认 在 您的 账户",success:"授权成功",title:"连接 DID Names 到 {appName}"},buyTip:"DID 名称将自动完成域名解析,无需手动配置, Blocklet 会在需要时自动更新域名的解析记录。如果您还没有 DID Domain NFT,",buy:"购买 DID Domain",topLevelDidDomainHint:"对于DID域名,如果您输入顶级域名(例如 example.com),它将自动配置为 www.example.com",authorizeFailed:"获取域名 NFT 信息失败,请重试!"},delete:{title:"删除",description:"删除“{domain}”后,对该别名的访问可能无法正常处理。",confirmPlaceholder:'请输入 "{domain}" 删除'},custom:"自定义域名",noCustom:"无自定义域名",noCustomTip:"你的网站尚未配置自定义域名。为增强安全性并提升用户体验,我们建议你配置自己的自定义域名。点击下方开始配置。"},domainSecurity:{title:"站点安全设置",cors:{title:"CORS 域名白名单",description:'此白名单显示的声明可以往 {name} 发送跨域请求的域名, 多个域名用逗号分隔, 可以用 "*" 来允许任何域名(我们不推荐这么做)',domainInvalid:"请输入有效的域名列表"}},rule:{add:{title:"添加 URL",confirm:"添加",pathPrefix:"请求的前缀是什么?",pathPrefixTip:"如果你填写了 '/prefix',那么所有以其为前缀的请求都会被转发到配置的 Blocklet",blocklet:"把请求代理到哪个服务?",port:"把请求代理到哪个端口?",portTip:"这里的默认值是应用默认监听的端口,如果你的应用会启用多个端口,你可以根据需要自定义",responseType:"回应类型",responseBody:"响应内容",responseBodyTip:"请将您的回复内容粘贴在这里,不要超过4096个字符",responseBodyRequired:"响应内容不能为空"},delete:{title:"删除规则",description:"确认之后,你会删除掉 “{name}” URL映射, 在下面输入“{name}”,选择删除按钮完成修改,或者选择取消按钮关闭当前弹窗。",confirm_desc:"请输入 {name} 以确认删除",cancel:"取消"},update:{title:"更新规则",confirm:"确认,更新吧",cancel:"取消"}},cert:{name:"证书名称",domain:"域名",commonName:"通用名称",boundDomains:"域名",action:"操作",expired:"已过期",leftDays:" 天 剩余",issuedOn:"签发时间",expiryOn:"过期时间",fingerprintAlg:"指纹算法",validityPeriod:"有效期",matchedSites:"匹配站点",source:"添加方式",upload:"手动上传",publicCertHelperText:"公开证书可以下载",nonPublicCertHelperText:"非公开的证书不能被下载",protectedCertHelperText:"受保护的证书不可以编辑",unprotectedCertHelperText:"不受保护的证书可以编辑",issuing:"正在生成证书",sourceTypes:{upload:"手动上传",lets_encrypt:"Let's Encrypt"},table:{nodata:"暂无数据"},delete:{title:"删除证书",description:"确认删除域名 {domain} 的证书?删除后相关服务可能会受到影响,请确认无风险后再删除。",confirm:"确认"},nginx:{title:"更新证书",titleAdd:"添加证书",pem:"证书文件",pemTip:'请把证书文件拖拽到这里, 应该以 ".pem" 或 ".crt" 结尾',key:"证书私钥",keyTip:'请把证书私钥拖拽到这里,应该以 ".pem" 或 ".key" 结尾',confirm:"提交",cancel:"取消",invalidFile:"所选择的文件无效",empty:"尚未选择任何文件",sourceTypes:{upload:"通过上传文件",lets_encrypt:"通过 Let's Encrypt 自动生成"},source:"來源"},detail:{title:"证书详情"},genLetsEncryptCert:{title:"生成 Let's Encrypt 证书",dnsTip:"请确保该域名已经解析到了当前节点。",description:"添加证书会让服务变得更安全,节点会在证书过期前自动更新证书。"}},gateway:{reqLimit:{switchLabel:"启用并发请求限制以获得可靠的性能",rate:"限制每个 IP 并发请求数为每秒 {rate} 个 (按 IP 限制)",title:"请求限制",global:"限制网关处理的并发请求数为每秒 {global} 个(全局限制)",burstFactor:"速率限制的突发因子,应用于全局和每个IP的限制 (全局: {global}, 单 IP: {rate})",methods:"只限制以下 HTTP METHOD 的并发请求(仅对 IP 生效)",burstDelay:"请求突发并超过每IP限制时的延迟 ({delay} 秒)"},cacheEnabled:{switchLabel:"启用网关缓存以提升性能",title:"网关缓存"},blockPolicy:{switchLabel:"请求封禁",addItem:"添加",blacklistDesc:"来自这些 IP 的请求将被阻止访问此服务器和所有应用",inputPlaceholder:"请输入 IP 地址、CIDR 范围或 URL",invalidItem:"无效的 IP 地址、CIDR 范围或 URL",title:"请求阻止",autoBlocking:{switchLabel:"通过实时检测阻止恶意请求",windowSize:"用于统计请求的时间窗口大小(秒)",windowQuota:"每个 IP 在窗口期内允许的最大请求数",blockDuration:"超出窗口配额时按 IP 阻止用户的持续时间(秒)",statusCodes:"需要检查的状态代码"}},proxyPolicy:{switchLabel:"运行在代理之后",trustRecursive:"无条件信任代理",trustRecursiveDesc:"使用 X-Forwarded-For 链中的最左边的 IP",trustedProxies:"可信代理",trustedProxiesDesc:"来自这些 IP 的请求将被信任以获取真实的客户端 IP",realIpHeaderLabel:"客户端 IP 标头",realIpHeaderDesc:"如果 Blocklet 服务器在诸如 CloudFront 之类的代理后面运行,您可以在此设置客户端真实 IP 的标头。",addItem:"添加",inputPlaceholder:"输入 IP 地址,CIDR 范围",invalidItem:"无效的 IP 地址、CIDR 范围",title:"代理政策"},wafPolicy:{switchLabel:"使用 ModSecurity 检测和阻止恶意请求",modeDesc:"Modsecurity 的模式(需要 modsecurity 模块)",mode:{detectOnly:"仅检测(不会阻止请求)",on:"开启(将阻止请求)"},logLevelDesc:"ModSecurity 的日志级别(0-9),0 表示禁用审计日志",inboundAnomalyScoreThresholdDesc:"入站异常评分阈值 (1-100),值越低意味着越严格",outboundAnomalyScoreThresholdDesc:"外部异常评分阈值 (1-100),较低值意味着更严格",docDesc:"查看文档了解如何设置 modsecurity",title:"Web 应用防火墙"}}},noMatch:{desc:"我们找不到您要找的页面"},health:{connectionErrorTip:"节点服务节点的连接已经断开,可能是出现了网络异常或者节点服务节点故障",connectionRecoveryTip:"节点服务节点的连接刚刚恢复正常",connectionStoppedTip:"节点服务节点已经被停止",wrongAccessUrlTip:"节点访问地址错误,请使用正确的访问地址"},debug:{title:"您的节点已启动并正在运行"},embed:{iconTip:"点击查看订阅详情"},team:{invite:{action:"邀请新人",setting:"邀请设置",enabled:"禁用此设置以限制只有拥有者/管理员才能邀请新用户",disabled:"启用此设置以允许任何用户邀请新用户",inviter:"被邀请者"},add:"添加",member:{name:"姓名",passport:"通行证",passports:"通行证",lastLogin:"上次登录",lastLoginIp:"上次登陆 IP",source:"注册来源",source_derived:"OAuth 账户派生",source_wallet:"DID Wallet",filter:"条件筛选",blockAccess:"禁止登录",blockAccessDescription:"该成员将无法登录此应用",allowAccess:"允许登录",allowAccessDescription:"该成员将可以登录此应用",removeUser:"删除成员",removeUserDescription:'确认删除用户 "{did}" 及其所有相关数据(已连接账号、通行证、登录会话等)?此操作无法撤销。',updateRole:"更新角色",revokePassport:"撤销通行证",revokePassportDescription:"通行证一旦被撤销,通行证的持有者将无法用其登录,是否继续?",enablePassport:"启用通行证",enablePassportDescription:"撤销的通行证一旦被重新启用,通行证持有者将可以继续登陆应用,是否继续?",passportPermissionTitle:"该通行证具有以下权限:",search:"搜索成员",onlyApprovedMember:"仅显示已批准",inviteDialog:{createInviteLink:"生成邀请链接",createSuccessTip:"创建邀请链接成功,请复制并发送给被邀请人。该链接只能使用一次,并将在 {expireDate} 过期"},error:{passportEmpty:"通行证不能为空"},connectedAccounts:"已连接账号",connections:"账号绑定",federated:"统一登录",switch:{did:"添加账户",profile:"更新身份",passport:"切换通行证"},settings:{notification:"通知设置",email:"当有动态时给我发送邮件",wallet:"当有动态时给我发送钱包通知",phone:"当有动态时给我发送短信",webhook:"外部钩子",add:"添加新钩子",url:"自定义 URL",slack:"Slack 通知",tested:"测试消息已经发送"},activeUserSessions:"活跃用户会话",forceLogout:"强制注销",forceLogoutDescription:"确认是否强制退出此用户?",forceLogoutRemoveDescription:"确认是否强制退出此用户(同时删除所有登录会话)?",openProfile:"查看个人资料",removeUserSuccess:"用户删除成功",currentOwner:"当前所有者"},transferNode:{name:"转移所有者",inviteDialog:{createInviteLink:"生成邀请链接",title:"转移节点",tips:{progress:"转移节点需要对方接受后才能完成转移操作,对方一旦接受,无法再使用当前凭据登录节点。",newOwnerPermissions:"新 Owner 将有权管理成员、通行证,以及应用等所有操作。",revoke:'如果想收回转移邀请,在"团队 -> 成员 -> 邀请中"页面删除邀请链接即可。'},createSuccessTip:"创建邀请链接成功,请复制并发送给被邀请人。该链接只能使用一次,并将在 {expireDate} 过期"},delegateDialog:{title:"需要授权",scan:"使用以下方法授权服务器转移节点所有权 NFT",confirm:"确认在你的账户",success:"授权成功"}},transferApp:{name:"转移所有者",transferDialog:{title:"转移应用",tips:{progress:"转移应用需要对方接受后才能完成转移操作,对方一旦接受,无法再使用当前应用所有者凭据登录应用。",newOwnerPermissions:"新 Owner 将有权管理成员、通行证,以及设置等所有操作。"},createTransferLink:"生成转移链接",createSuccessTip1:'创建转移链接成功,被邀请人必须使用 <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> 接收应用所有权',createSuccessTip2:"请复制并发送给被邀请人。该链接只能使用一次,并将在 {expireDate} 过期。你的转移链接只会展示一次,关闭此窗口后将无法再次查看",createSuccessTip3:"转移成功之后应用会自动重启以使变更生效",link:"邀请链接",iKnow:"我已复制保存好该链接"},connectDialog:{title:"需要授权",scan:"使用以下方法授权应用转移所有权。",confirm:"确认 在您的账户中",success:"授权成功"},receiveDialog:{title:"接收应用程序所有权",scan:"使用以下方法接收应用所有权。",confirm:"确认 在 您 的 账户",success:"成功获得所有权"},successTitle:"你已成为应用的所有者",visitDashboard:"访问应用控制台",description:"你可以将你的应用程序所有权转移到另一个钱包或其他人。"},permission:{create:{title:"创建权限",description:`格式:<操作>_<资源>
|
|
8
8
|
举例:'query_user', 'mutate_user'`},delete:{title:"删除权限",description:"确认删除 {name}?(角色中关联的 {name} 将会同时被删除)"},error:{actionEmpty:"操作不能为空",resourceEmpty:"资源不能为空",permissionTooLong:"权限不能超过 {length} 个字符",descriptionTooLong:"描述不能超过 {length} 个字符"}},passport:{view:"查看通行证",create:{title:"创建通行证",titleTip:"名称创建后不可修改,建议在14个字母内"},bind:{title:"绑定",roleTip:"绑定后将会获得选定的通行证的所有权限",permissionTip:"绑定后将会获得选定的权限",transferLeftTitle:"所有权限",transferRightTitle:"已添加权限"},delete:{title:"删除通行证",description:"删除后,用户持有的此通行证的将失去所有权限,是否继续?"},error:{titleEmpty:"名称不能为空",titleTooLong:"名称不能超过 {length} 个字符",descriptionEmpty:"描述不能为空"},issuance:{pending:"待领取",create:{title:"生成链接"},delete:{title:"删除领取链接",description:"确认删除 {link}?"}},issue:"颁发通行证",disableIssuance:"禁止颁发通行证",enableIssuance:"允许颁发通行证",disableIssuanceTip:"“颁发通行证”,“邀请成员” 等操作将被禁止",enableIssuanceTip:"“颁发通行证”,“邀请成员” 等操作将被允许",trustedPassportIssuers:"信任的通行证颁发者",trustedIssuers:"信任的颁发者",trustedFactories:"信任的 NFT 集合",trustedFactoriesTip:"管理信任的 NFT 集合,持有这些集合中 NFT 的用户可以领取指定通行证",searchFactoryAddress:"搜索集合 DID",configFactories:"配置信任的 NFT 集合",configFactoriesTip:"允许用户用特定 NFT 来换取通行证",factoryAddress:"NFT 集合 DID",factory404:"NFT 集合未找到",factoryAddressTip:"NFT 集合必须 ArcBlock 主链上的",role:"通行证类型",ttl:"通行证过期策略",ttlNever:"永不过期",ttlMint:"从购买日期算起",ttlExchange:"从兑换日期算起",ttlTip:'"365d" 意思是 365 天, 你也可以使用类似 "30 days" 或 "24h" 的',ttlNeverTip:"通行证将永久有效直到被吊销",ttlMintTip:"通行证有效期将从 NFT 购买时间开始计算,直到指定的时间或者被吊销",ttlExchangeTip:"通行证将从用户成功交换时起有效,直到您指定的ttl或撤销",validUntil:"有效期至: {date}",externalPassport:"外部的通信证",notTrustedIssuerTip:"该通行证无法使用,因为颁发者未在信任的颁发者列表中",issuerDid:"颁发者 DID",addNodeToTrustedIssuers:"添加当前 node 为信任的通行证颁发者",revoked:"撤销",noPermission:"没有权限执行此操作",shouldNotDeleteCurrent:"无法删除当前正在使用的通行证",mappingRule:"映射规则",defaultRule:"默认规则",search:"搜索通行证",searchIssuerDid:"搜索颁发者 DID",issueBy:"由 {name} 颁发",configColor:"设置通行证颜色",configColorTip:"通过调色盘来自定义通行证的主色调",color:"通行证颜色",description:"使用此通行证以 {title} 连接 {teamName}",displayBuiltin:"内置",displayCustom:"自定义",typesTip:"自定义通行证类型,以逗号分隔",issuanceDate:"签发日期: {date}",sourceMaps:{recover:"找回",issue:"颁发",invite:"邀请",trusted:"信任"},related:"相关通行证",operationLogs:"操作日志",owner:"所有者",status:"状态",statusMap:{valid:"有效",revoked:"已撤销",expired:"已过期"},trustedPassportIssuersTip:"管理可用于签发通行证的可信通行证颁发机构",issuanceTime:"发行时间",relatedDescription:"当前通行证是被找回的,数据流转过程如下",passportExpireTime:"设置通行证的过期日期",customExpireTime:"自定义过期时间",customExpireTimeIsInvalid:"自定义过期时间无效"},inviting:{link:"邀请链接",inviter:"邀请人",delete:{title:"删除邀请链接",description:"确认删除 {link}?"},disabledTip:"邀请功能未开启"},whoCanAccess:{all:{title:"所有人可访问"},owner:{title:"只有我自己可访问"},invited:{title:"只有被邀请的人可以访问"}},userFollowers:{title:"关注",follow:"关注",unfollow:"取消关注",followersOnly:"仅关注者可见",followers:"粉丝",following:"正在关注",emptyFollowing:"还没有关注任何人",emptyFollowers:"还没有粉丝",emptyInvitees:"您还没有邀请任何人",invitees:"受邀者"},orgs:{explain:"开启后,用户可以创建和加入组织,在组织内分配角色并管理资源。",description:"描述",deleteConfirm:"确认删除 {name}?",members:"成员",myCreated:"我创建的组织",myJoined:"我加入的组织",myCreatedEmpty:"您还没有创建任何组织",myJoinedEmpty:"您还没有加入任何组织",deleteConfirmDescription:"删除此组织将移除所有关联的角色和资源。用户仍将保留在系统中,但将失去该组织中的角色。此操作无法撤销。",active:"活跃的",deleteOrg:"删除当前组织",invitedAt:"邀请时间:{time}",joinedAt:"加入时间:{time}",createNew:"创建新组织",viewAll:"查看所有组织",validate:{nameEmpty:"名称不能为空",nameTooLong:"名称不能超过 {length} 个字符",descriptionTooLong:"描述不能超过 {length} 个字符"},mutate:{title:"{mode}组织",name:"组织名称",createSuccess:"组织创建成功",updateSuccess:"组织更新成功",orgNotEnabled:"组织功能未启用",maxMemberPerOrg:"这个组织最多可以邀请{maxMemberPerOrg}个用户",maxOrgPerUser:"每个用户最多可创建{maxOrgPerUser}个组织"},invite:{chooseUsersToInvite:"请选择要邀请的用户",success:"已向用户发出邀请",pleaseSelectUsers:"请选择用户",pleaseSelectRole:"请选择角色",inviteExternalUsers:"邀请外部用户",failed:"{count} 个用户邀请失败,请稍后重试",remove:"移除用户",removeSuccess:"用户已移除",limit:"限制",limitTip:"限制组织成员数和用户可创建的组织数",maxMembers:"每个组织的最大成员数",maxOrgs:"每个用户的最大组织数",maxMembersTip:"可邀请加入此组织的最大用户数",inviteLinkSendToEmail:"邀请链接已经发送至邮箱({email}),请查收",enterEmailAddress:"请输入邮箱地址",inviteTitle:"邀请用户加入{orgName}"},member:{removeMemberConfirm:"确认移除 {name}?",removeMemberConfirmDescription:"移除后,用户将失去该组织中的角色和权限。此操作无法撤销。",removeInvitingMember:"确认取消邀请{name}?",removeInvitingMemberDescription:"移除后,用户将无法加入该组织,需要重新邀请。该操作无法撤销。"}}},launcher:{provider:"云服务商",adminUrl:"Launcher 管理页面"},session:{blockAccess:"你已被禁止访问此节点"},launchBlocklet:{appInfo:"应用信息",appInfoDesc:"确认应用信息",author:"应用作者:{author}",setup:"设置应用",redirect:"跳转",alreadyRunning:"应用 {name} 已经运行在当前节点",alreadyInstalled:"应用 {name} 已经安装到当前节点,无需重复安装",alreadyExists:"该应用已经存在,跳转中...",launchSuccess:"{appName} 已经启动成功!",nextStep:"下一步",purchased:"已购买",purchase:"购买",agreeAll:"同意并继续",agreement:"许可协议",installing:" 正在节点 {serverName} 上安装 {appName},请稍等片刻",redirecting:"安装成功,现正在启动 {appName}",start:"启动中",launch:"安装应用到节点",installSuccess:"应用已经成功安装到节点 {serverName} 并启动",openInRegistry:"在应用商店中打开",subTitle:"准备在节点 {serverName} 上安装 {appName}",installingSubTitle:"正在安装 {appName}",access:"打开应用",viewApplication:"查看应用",newVersion:"新版本",newVersionDesc:"应用已经存在,但当前版本可更新",later:"稍后",upgradeNow:"现在更新",introduction:"简介",welcome:"欢迎来到应用启动向导",accept:"许可协议",license:"应用许可",next:"同意协议并继续",purchaseApp:"购买应用",setupAppDesc:"初始化你的应用",launched:"启动",confirmInstall:"确认安装",dialog:{title:"成为应用所有者",nftFreeDescription:"请提空间购买凭证并创建应用账户以继续",nftPaidDescription:"请提空间购买凭证、应用购买凭证、创建应用账户以继续",freeDescription:"请创建应用账户以继续",paidDescription:"请提供应用购买凭证、并创建应用账户以继续",confirm:"在你的账户中确认",success:"授权成功",authorizationTimeout:"授权超时"},waiting:{verifying:"验证应用元数据...",downloading:"下载应用包...",extracting:"提取应用包的数据...",downloadingComponent:"下载 {name}",extractingComponent:"提取 {name}",installing:"安装应用组件...",installed:"已安装",starting:"正在启动应用...",done:"您的应用正在启动...",parsing:"正在解析应用元数据...",initializing:"正在初始化应用配置...",initializingOwner:"正在初始化应用所有者...",creatingSecurityRules:"正在创建默认安全规则...",assigningDomain:"正在为应用分配默认域名...",waitingForDomain:"正在等待默认域名生效..."},error:{loadMetaFailed:"获取应用信息出错",appMetaNotFound:"没有找到该应用的信息",downloadFailed:"下载应用失败,请重试",installFailed:"安装应用失败,请重试",startFailed:"启动应用失败,请重试",launchFailed:"启动应用失败,请重试",installedButStopped:"应用安装成功,但是无法启动,解决启动问题之后后可手动启动",installedButError:"应用已经安装,但是运行出错了",restoreFailed:"还原应用失败,请重试",resourceBlocklet:"此 Blocklet 无法直接启动,但你可以将其添加到现有的应用程序中。"},steps:{introduction:"简介",installApp:"安装应用",purchaseSpace:"选购空间",prepareSpace:"准备空间"},installRelatedComponents:"安装相关的 Blocklets",canNotInstall:"无法安装",dockerBlockletCantInstall:"无法安装 Blocklet,因为 Blocklet Server 未启用 Docker 或 Docker Network",nav:{myApps:"我的应用",viewMyApps:"查看我的应用"},withoutWallet:"暂不连接 DID Wallet",nwFailed:"获取工作流程失败。",alreadyConsumed:"启动会话已被使用",redirectToLauncherBlocklet:"正在跳转到 Launcher Blocklet"},issuePassport:{title:"领取通行证",description:"使用以下方法接收由 {name} 颁发的通行证",dialog:{confirm:"确认在你的账户",success:"通行证已成功添加到您的 DID Wallet ",loginWithPassport:"用此通行证连接",scan:"使用以下方法认领通行证",autoClose:"页面将在 {seconds} 秒后自动关闭",autoJump:"页面将在 {seconds} 秒后自动跳转"}},lostPassport:{title:"找回通行证",description:"{name} 所有者可使用下列方式找回通行证,成员请联系所有者重新颁发通行证",recoverDialog:{title:"找回通行证",scan:"使用以下方法找回通行证",confirm:"在您的 DID Wallet 上确认",success:"找回成功"},receiveDialog:{title:"领取通行证",scan:"使用以下方法领取通行证",confirm:"在您的 DID Wallet 上确认",success:"领取成功"},return:"取消找回操作,返回主页",recoverPassport:"找回通行证",receivePassport:"领取通行证"},invite:{message:"{name} 邀请你成为 {dapp} 的 {role}",success:"你已成功加入 {dapp}",receive:"领取通行证",validUntil:"过期时间:",viewPermission:"查看权限",emptyPermission:"没有权限",open:"打开",description:{step1:"下载并设置好您的 {wallet}",step2:"点击上面的按钮领取通行证",step3:"使用通行证登录 {dapp}"},transferNFTDialog:{title:"接受节点 {name}",scan:"连接节点启动器,以完成节点的接收。",confirm:"请在 DID Wallet 上确认",success:"连接成功,等待确认接收节点。"}},receive:{dialog:{title:"领取通行证",scan:"领取通行证后,您将可以使用此通行证来登录应用",confirm:"在您的账户中确认",success:"连接成功",scanWithDid:"请使用 {did} 帐户接收此通行证。收到通行证后,您可以使用该通行证登录到应用程序。"}},navigation:{actionFailed:"操作失败",navigation:"导航",form:{themeConfig:"主题配置",contentConfig:"内容配置",title:"标题",titlePlaceholder:"请输入导航标题",titleTooLong:"标题最长为 {len}",description:"描述",descriptionPlaceholder:"请输入导航描述",descriptionTooLong:"描述最长为 {len}",icon:"默认图标",iconPlaceholder:"请选择一个图标",invalidIcon:"图标不存在",findMoreIcon:"找到更多图标",link:"链接",linkPlaceholder:"请输入导航链接",invalidLink:"链接格式不正确",component:"组件",componentPlaceholder:"请选择导航所属的组件",role:"角色",rolePlaceholder:"请选择导航可见的角色",locale:"语言",localePlaceholder:"请输入要添加的多语言标识符",localeExists:"{value} 已经存在",activeIcon:"激活图标",activeColor:"激活颜色",color:"默认颜色",colorPlaceholder:"例如 #FF0000",invalidColor:"无效的16进制颜色",searchIcons:"搜索图标",searchIconsPlaceholder:"如:mdi:home"},action:{add:"增加导航",addSub:"增加子导航",edit:"编辑导航",hide:"隐藏导航",show:"显示导航",del:"删除导航",new:"新建",noAddSub:"未安装组件无法添加子导航",noEdit:"未安装组件的导航无法编辑",noDel:"内置的导航无法删除",reset:"重置",restConfirmTitle:"将 {section} 导航重置为默认设置?",restConfirmDesc:"您的自定义导航将被清除并恢复为默认项目。",resetSuccessful:"重置成功",delTabBarTitle:"您要删除此导航吗?",delTabBarDesc:"删除后,导航将恢复到 Blocklet 的默认配置"},system:"系统",services:"服务",access:"访问",members:"用户",passport:"通行证",analytics:"分析",dashboard:"仪表板",studio:"Blocklet Studio",aigne:"AI 连接",blockletService:"Blocklet Service",didConnect:"身份和访问",didSpaces:"存储与备份",website:"网站工作室",notification:"通知中心",operations:"可观察性",integration:"服务集成",developer:"开发者工具",overviewDesc:"监控应用健康状况和详情,在一个地方轻松安装、启动或移除 Blocklets。",didConnectDesc:"添加团队成员,设置登录选项,管理安全访问,实现顺畅协作。",aigneDesc:'配置您的 blocklet 的 AI 相关连接,包括 <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> 和 <a href="{mcpUrl}" target="_blank">MCP 兼容服务器</a>。',websiteDesc:"管理域名,调整主题,完善品牌,自定义导航,打造独特的网站外观。",operationsDesc:"查看分析、检查活动日志、获取警报,并根据需要调整高级设置。",integrationsDesc:"通过 Webhooks、访问密钥和 MCP 服务器链接外部服务,扩展应用功能。",developersDesc:"使用日志、性能跟踪和文档来构建、调试和优化您的应用。",didSpacesDesc:"安全存储和备份您的 Blocklet 应用数据,确保可靠的保护和轻松恢复。",publishDesc:"将您的应用发布到商店或通过链接分享,让更多人使用它。"},storage:{spaces:{title:"DID Spaces",tips:"提示",label:"请输入 DID Spaces 服务地址",connected:{title:"已连接的 DID Spaces",tag:"已连接"},connectedWithName:"你已成功连接至 {name}",addedWithName:"你已成功添加 {name}",connects:"连接",reconnect:"重新连接",addressCannotEmpty:"地址不能为空",addressNotValid:"{url} 不是一个合法的地址",authorize:{title:"连接 {appName} 至 DID Spaces",scan:"使用以下方法允许应用 {appName} 连接到 DID Spaces",success:"连接成功"},provideNFT:{title:"请为 {appName} 出示 DID Spaces NFT",scan:"使用以下方法允许应用 {appName} 显示DID Space NFT",success:"连接成功"},backup:{title:"备份",records:"备份记录",without:"未备份",succeeded:"备份成功",pending:"备份中",timeout:"备份超时",failed:"备份失败",lastBackup:"上次备份时间",lastBackupTip:"距离您上次成功备份已是 {time},请在“DID Spaces”选项卡中检查你的备份设置",noBackup:"没有备份",noBackupTip:"尚未创建任何备份。我们建议设置定期备份以保护您的数据和设置"},autoBackup:{title:"自动备份",enabled:"自动备份已开启",disabled:"自动备份已关闭"},autoCheckUpdate:{title:"自动检测新版本提醒",enabled:"自动检测新版本提醒已开启",disabled:"自动检测新版本提醒已关闭"},backupSuccessfully:"备份成功",restore:"还原",restoreSuccessfully:"还原成功",gateway:{select:"选择一个 DID Spaces",add:{title:"添加 DID Spaces",label:"输入 DID Spaces 的地址",failed:"添加 DID Spaces 失败",invalidUrl:"无效的 DID Spaces 网关地址",duplicate:"{name} 已连接到此 Blocklet"},delete:{title:"断开连接",succeeded:"成功断开连接 DID Space {name}",failed:"断开连接失败",failedForSelected:"无法断开连接所选的 DID Space",descForBackup:`断开连接后,您将无法再将此 Blocklet 的数据备份到此 DID Space。您确定要断开连接吗?
|
|
9
9
|
断开连接后,您可以重新连接到 {name} 以恢复备份操作。`,descForStorage:`断开连接后,您将无法再将此 Blocklet 的数据备份到此 DID Space。您确定要断开连接吗?
|
|
10
10
|
断开连接后,您可以重新连接到 {name} 以恢复备份操作。`},connect:{title:"连接到 DID Spaces",add:"立即连接 DID Spaces",addTips:"你还没有连接到任何 DID Space",switch:"切换 DID Spaces",switchTips:"你已连接到 {name}",connected:"已连接"},switch:{failedForMismatchSpace:"请连接到正确的 DID 空间 {name}"},connectTo:"连接至 DID Spaces",title:"门户"},strategy:{title:"备份策略",autoBackup:"自动备份",backupNow:"立即备份",viewBackupFiles:"查看备份文件"},progress:{title:"备份进度"},record:{title:"备份记录",emptyData:"暂无记录"},notYet:"你还没有正在进行中的备份...",connect:{now:"立即连接",title:"使用 DID Wallet 连接",provider:"提供您的 DID Spaces 开始备份",providerForStorage:"提供您的 DID Space 进行数据存储",useWallet:"使用 DID Wallet 连接",useWalletReconnect:"使用 DID Wallet 重新连接",useSpaceGateway:"使用 DID Spaces 网关连接",useSpaceGatewayReconnect:"使用 DID Spaces 网关重新连接",switchToSpace:"切换至 DID Space",abortBlockletBackup:"停止备份",switchToSpaceSucceeded:"已切换到 DID Space {name}",succeeded:"你已成功连接至 DID Spaces",disconnect:"断开连接"},disconnected:{tag:"连接已断开",reconnectNow:"立即重连"}},appLevel:{title:"应用级存储",description:"应用生成的所有数据都存储在这个 DID Space 上"}},log:{lastDays:{1:"最近 1 天",7:"最近 1 周"}},oauth:{authorize:"OAuth 授权",client:{tab:"OAuth 应用",name:"应用名称",clientId:"Client ID",clientSecret:"Client 秘钥",scope:"作用范围",redirectUris:"重定向 URI",grantTypes:"授权类型",responseTypes:"响应类型",tokenEndpointAuthMethod:"令牌端点身份验证方法",actions:"操作",grantResponse:"授权与回应",metaContact:"Meta & 联系方式",clientUri:"客户端 URI",logoUri:"Logo URI",contacts:"联系人",tosUri:"服务条款 URI",policyUri:"隐私策略 URI",jwksSoftware:"JWKS & Software",jwksUri:"JWKS URI",jwks:"JWKS",softwareId:"软件 ID",softwareVersion:"软件版本",clientSecretExpiresAt:"Client 密钥过期时间",clientIdIssuedAt:"Client ID 发行时间",oauthAppDetails:"OAuth 应用详情",oauthEndpoints:"OAuth 端点",authorizationEndpoint:"授权端点",tokenEndpoint:"令牌端点",userinfoEndpoint:"用户信息端点",registrationEndpoint:"注册端点",endSessionEndpoint:"会话结束 Endpoint",validate:{clientName:"应用名称必填",clientNameMinLength:"应用名称必须至少包含3个字符",clientUri:"需要主页 URL",clientUriInvalid:"请输入以 http:// 或 https:// 开头的有效网址",redirectUris:"需要授权回调 URL",redirectUrisInvalid:"请输入以http:// 或 https:// 开头的有效网址",contacts:"请输入用逗号分隔的有效邮箱地址",tosUri:"需要服务条款 URL",tosUriInvalid:"请输入有效的 URL",policyUri:"需要隐私策略 URL",policyUriInvalid:"请输入有效的 URL",jwksUri:"需要 JWKS URI",jwksUriInvalid:"请输入有效的URL",jwks:"需要 JWKS",jwksInvalid:"请输入有效的 JWKS"},input:{clientName:"应用名称",clientNamePlaceholder:"用户熟悉并信任的内容",clientUri:"主页 URL",clientUriPlaceholder:"https://your-app.com",redirectUris:"授权回调 URL",redirectUrisPlaceholder:"https://your-app.com/callback",contacts:"联系邮箱",contactsPlaceholder:"admin@your-app.com, support@your-app.com",permissions:"选择你需要的权限",tosUri:"服务条款 URL",tosUriPlaceholder:"https://your-app.com/terms",policyUri:"隐私政策 URL",policyUriPlaceholder:"https://your-app.com/policy",jwksUri:"JWKS URI",jwksUriPlaceholder:"https://your-app.com/jwks",jwks:"JWKS",jwksPlaceholder:"JSON Web 密钥集",expireTime:"设置客户端密钥的过期日期以增强安全性"},helperText:{clientName:"用户熟悉并信任的名称",clientUri:"你的应用程序主页面的完整 URL",redirectUris:"你应用的回调 URL。",contacts:"应用程序负责人的电子邮箱地址",tosUri:"你应用的服务条款网址。",policyUri:"你应用的隐私政策网址。",read:"阅读我们的",document:"OAuth 文档",more:"获取更多信息。"},delete:{title:"删除 OAuth 客户端",description:"你确定要删除这个 {clientName} OAuth 客户端吗?"},register:"创建新的 OAuth 应用",requiredInformation:"所需信息",optionalInformation:"可选信息",registerButton:"创建",logo:"Logo",openRegistration:"开放注册",openidConfiguration:"OpenID 配置",createUser:"创建者",update:"更新 OAuth 应用",listTitle:"启用 OAuth 应用的安全第三方访问",tooltipTitle:"使用您应用内置的 OAuth 服务器来授权外部应用使用行业标准协议。赋予用户安全、无缝的身份验证和委托访问控制。",empty:"没有添加数据"}},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"订阅已过期"},loadFailed:"请重试!"},desktop:{tips:{success:"订阅将在{validity}后到期",warning:"订阅将在{validity}后到期",error:"订阅已过期"},loadFailed:"加载订阅信息失败,请重试!",loading:"加载订阅信息...",nextInvoice:"下次账单:{date}"}},analytics:{trend:"趋势",detail:"分布",traffic:{totalRequests:"总请求数",validRequests:"成功请求数",failedRequests:"失败请求数",uniqueVisitors:"访客数量",uniqueFiles:"网址数量",uniqueReferrers:"来源数量",uniqueNotFound:"404 数量",uniqueStaticFiles:"静态资源数量",logSize:"日志大小",bandwidth:"带宽消耗"},runtime:"运行时"},federated:{inviteJoinFederatedLogin:"邀请加入统一登录",inviteJoinFederatedLoginDescription:"复制以下地址到需要加入的应用中填入,申请加入统一登录",federatedLogin:"统一登录",joinFederatedLogin:"加入统一登录",joinFederatedLoginDescription:"请输入 Master Blocklet 提供的统一登录地址以加入统一登录",quitFederatedLogin:"退出统一登录",quitFederatedLoginDescription:"退出统一登录后,你仍可以使用普通的登录方式来登录",federatedJoinAppUrl:"统一登录地址",federatedJoinAppUrlRequired:"请输入统一登录地址",failedToGetFederatedLoginAppUrl:"获取统一登录地址失败",federatedJoinAppUrlInvalid:"统一登录地址不可用",siteDetail:"站点详情",approveToJoinLogin:"审核加入统一登录",approve:"恢复登录",revoke:"禁止登录",enableFederatedLogin:"启用统一登录",disableFederatedLogin:"禁用统一登录",enableFederatedLoginDescription:"启用统一登录后,该站点将自动登录",disableFederatedLoginDescription:"禁用统一登录后,该站点将无法自动登录",enableFederatedAutoLogin:"开启自动登录",enableFederatedAutoLoginDescription:"开启自动登录后,如果当前存在统一登录的状态,则该站点将自动登录统一登录的身份",disableFederatedAutoLogin:"关闭自动登录",disableFederatedAutoLoginDescription:"关闭自动登录后,该站点将不会自动登录统一登录的用户信息,您仍可选择手动点击登录统一登录的身份",info:{appId:"应用 DID",appPid:"永久 DID",migratedFrom:"曾用 DID",appName:"应用名称",appDescription:"应用描述",appUrl:"应用地址",appLogo:"应用图标",did:"应用 DID",serverId:"Blocklet Server ID",serverVersion:"Blocklet Server 版本",version:"应用版本",appliedAt:"申请时间",status:"状态"},status:{pending:"待审核",approved:"已通过",rejected:"已拒绝",revoked:"已撤销"},disbandFederatedLogin:"解散统一登录",disbandFederatedLoginDescription:"解散统一登录后,将自动让所有成员站点自动退出统一登录站点群",syncConfig:"同步站点群配置",quitMember:"移除",quitMemberDescription:"从站点组中移除指定成员",removeFederatedLogin:"移除成员",removeFederatedLoginDescription:"从站点组中移除指定成员后,成员只能使用普通登录。",title:"什么是统一登录?",description:"统一登录可以通过在多个系统中单点登录来实现。你可以邀请其他团队加入统一登录,或主动加入其他组织的统一登录平台。",link:"查看文档"},optionsOrder:{1:"选择一",2:"选择二"},securityRule:{title:"安全规则",sortByDescription:"按匹配优先级排序",add:"添加安全规则",edit:"编辑安全规则",view:"查看安全规则",form:{precede:"执行顺序",pathPattern:"路由匹配规则",pathPatternPlaceholder:"请输入路由匹配规则",pathPatternErrorText:"路由匹配规则无效",accessPolicyOrResponseHeaderPolicyRequired:"至少选择访问策略或响应头策略之一",accessPolicy:"访问策略",accessPolicyPlaceholder:"请选择访问策略",accessPolicyHelperText:"请选择访问策略",responseHeaderPolicy:"响应头策略",responseHeaderPolicyPlaceholder:"请选择响应头策略",responseHeaderPolicyHelperText:"请选择响应头策略",remark:"备注",remarkPlaceholder:"请输入备注",component:"组件",componentPlaceholder:"请选择组件"},delete:{title:"删除安全规则?",description:"删除安全规则后,规则将不再生效"},useless:"无用的安全规则"},responseHeaderPolicy:{title:"响应头策略",add:"添加响应头策略",edit:"编辑响应头策略",view:"查看响应头策略",form:{name:"姓名",namePlaceholder:"请输入你的名字",description:"描述",descriptionPlaceholder:"请输入描述",originOverride:"允许覆盖",originOverrideHelperText:"是否允许应用程序中的逻辑覆盖该响应头",cors:{origin:"Origin",originPlaceholder:"支持下列域名格式:http://www.example.com, http://*.example.com, http://www.example.com:8080, (通配符不推荐使用)",originHelperText:"域名以 http:// 或 https:// 开头,每行一个,每行一个通配符 *",methods:"Methods",allowedHeaders:"Allowed Headers",allowedHeadersPlaceholder:"建议填写 *,支持多行输入",allowedHeadersHelperText:"告诉服务器在发送 OPTIONS 请求时,可以在下一请求中使用哪些自定义的 HTTP 请求头,例如: x-blocklet-version",exposedHeaders:"Exposed Headers",exposedHeadersPlaceholder:"多行输入支持",exposedHeadersHelperText:"配置 Expose-Headers,例如: X-Content-Range",maxAge:"Max-Age (秒)",maxAgeHelperText:"通过 OPTIONS 请求获得的结果的有效期,必须是正整数",optionsSuccessStatus:"OPTIONS 成功状态码",preflightContinue:"预检是否继续传递给下一中间件",credentials:"是否携带凭证",smartMode:"智能模式",smartModeHelperText:"自动添加当前应用程序的所有域名以及统一登录网站组的所有域名"}},delete:{title:"删除响应标题政策?",description:"删除响应头策略后,该策略将不再生效"}},accessPolicy:{title:"访问策略",add:"添加访问策略",edit:"编辑访问权限策略",view:"查看访问策略",form:{name:"策略名称",namePlaceholder:"请输入策略名称",description:"策略描述",descriptionPlaceholder:"请输入策略描述",roles:"访问角色",accessType:"访问类型"},delete:{title:"删除访问策略?",description:"删除访问策略后,该策略将不再生效"}},pagination:{next:"下一页",previous:"上一页",rowsPerPage:"每页行数:",displayRows:"的",jumpToPage:"跳转到页面:"},webhookEndpoint:{createWebhook:"创建 Webhook",createWebhookTitle:"创建 Webhook",selectAllEvents:"选择所有事件",selectAllEventsTooltip:"选择所有可用事件",selectedEventsCount:"{count} 个事件已选择",selectedCount:"{count} 个已选择",eventsCount:"{count} 个事件",saveWebhook:"创建 Webhook",noAvailableEvents:"没有可用的事件",loadingEvents:"加载事件...",loadingError:"加载事件失败:{message}",title:"Webhooks",noWebhooksAdded:"未添加任何 Webhook",validation:{urlRequired:"Webhook URL 是必填的",urlInvalid:"请输入有效的 URL",descriptionRequired:"Webhook 描述是必填的",eventRequired:"请选择至少一个事件"},hosted:"托管端点",add:"创建 Webhook",addTip:"设置你的 webhook 端点以接收实时事件",listen:"收听",version:"API 版本",attempts:"Webhook 事件",url:{label:"URL",description:"Webhook URL"},description:{label:"描述",description:"此端點用途的選填描述"},events:{label:"选择要收听的事件",description:"你好, {name}."},disabled:"已禁用",enabled:"已启用",disable:"禁用",enable:"启用",editWebhookTitle:"更新 Webhook",updateWebhook:"更新 Webhook",waitingForEvents:"等待接收事件...",loadingMore:"正在加载...",loadMore:"加载更多",response:"回复",request:"请求",eventData:"事件数据",deleteWebhook:{title:"删除 Webhook?",description:"删除 Webhook 后,Webhook 将不再接收事件"},success:"成功",listTitle:"使用 Webhooks 发送实时事件数据",tooltipTitle:"通过发送实时事件通知,无缝连接你的应用到外部系统。Webhooks 支持强大的集成和跨工具及服务的自动化工作流程。",triggeredFrom:"此 Webhook 数据来自触发"},description:{environment:"当前变量将在 {name} 运行时生效。需要重启应用程序才能生效。",preferences:"当前变量将在 {name} 运行时生效。保存后将应用更改,无需重新启动应用程序。"},preferencesFor:"{name} 的偏好设置",environmentFor:"{name} 的环境变量",environmentTips:{delete:"你确定要删除此行吗?",deleteForbidden:"只有自定义环境变量可以被删除。"},accessKey:"访问密钥",command:"命令",mcp:{listTitle:"从 MCP 客户端访问你的 Blocklet",tooltipTitle:"探索此Blocklet支持的MCP服务器列表,选择一个服务器即可立即查看从客户端加入所需的连接命令。",endpoint:"MCP 端点",available:"可用的 MCP 服务器",noServer:"没有可用的 MCP 服务器"},installCommand:"安装命令",label:{add:"添加",apply:"应用标签",manage:"管理标签",title:"标签",description:"描述",systemLabel:"系统标签",create:"创建标签",edit:"编辑标签",name:"名称",slug:"标识(Slug)",parentLabel:"父标签",color:"颜色",search:"搜索标签",saveSuccess:"标签已成功保存",delete:"删除",deleteTip:"确定删除“{name}”?",deleteDesc:"删除标签后,该标签将不再被使用。确定要删除“{name}”吗?",deleteSuccess:"标签已成功删除",reassignTip:"如果该标签正在被使用,可将相关项目重新分配到其他标签。",reassignTo:"选择新的标签",recently:"最近",noMatching:"未找到匹配的标签",noLabels:"尚未创建任何标签",filter:"筛选标签",createNewLabel:"创建新标签“{name}”",actionLabel:"批量分配标签",selectLabels:"选择标签",nameRequired:"标题为必填项",nameMinLength:"标题至少需要 1 个字符",nameMaxLength:"标题不能超过 64 个字符",slugRequired:"标识(Slug)为必填项",slugMinLength:"标识至少需要 1 个字符",slugMaxLength:"标识不能超过 128 个字符",descriptionMaxLength:"描述不能超过 255 个字符",colorRequired:"颜色为必填项",colorInvalid:"颜色无效"},authentication:{emailLoginDescription:"电子邮件登录将使用通知设置向用户发送登录链接或登录代码。",emailNotificationRequired:"确保你已启用 邮件通知。",chooseProvider:"登录方式",chooseProviderPlaceholder:"选择一个登录方法进行配置",addLoginProvider:"添加 登录 方法",updateLoginProvider:"更新登录方式: {provider}",alreadyBindOAuth:"已绑定第三方登录",alreadyBindWallet:"已经绑定 DID 钱包",didConnectSettings:"显示与品牌",commonSettings:"常见设置",sessionSettings:"会话安全",federated:"联合登录",loginProviders:"登录方法",oauth:"第三方登录",save:"保存",thirdPartyLogin:"第三方登录",viewDocument:"查看 文档",oauthCallbackUrl:"回调 URL",gotoEmailNotification:"打开电子邮件通知设置",deleteLoginProvider:"删除 登录提供者 {provider}",deleteLoginProviderDescription:"删除登录提供程序后,用户将无法使用 {provider} 登录。您确定要继续吗?",auth0:{title:"Auth0",enable:"启用 Auth0 登录",domain:"域名",domainDescription:"需要 Auth0 的域名",clientId:"客户 ID",clientIdDescription:"需要 Auth0 OAuth 应用程序客户端 ID",clientSecret:"客户端密钥",clientSecretDescription:"需要 Auth0 OAuth 应用的 Client Secret"},github:{title:"Github",enable:"启用 Github 登录",clientId:"客户 ID",clientIdDescription:"需要 Github OAuth 应用程序的客户端 ID",clientSecret:"客户端密钥",clientSecretDescription:"需要 Github OAuth 应用的 Client Secret"},twitter:{title:"X",enable:"启用 X login",clientId:"客户 ID",clientIdDescription:"需要 X OAuth 应用程序的 Client ID",clientSecret:"客户端密钥",clientSecretDescription:"需要 X OAuth 应用程序的客户端密钥"},google:{title:"谷歌",enable:"启用 Google 登录",clientId:"客户 ID",clientIdDescription:"需要 Google OAuth 应用程序客户端 ID",clientSecret:"客户端密钥",clientSecretDescription:"需要 Google OAuth 应用程序的 Client Secret"},apple:{title:"苹果",enable:"启用 Apple 登录",teamId:"团队 ID",teamIdDescription:"需要 Apple OAuth 应用的团队 ID",serviceId:"服务 ID",serviceIdDescription:"需要 Apple OAuth 应用程序服务 ID",keyId:"密钥 ID",keyIdDescription:"需要 Apple OAuth 应用程序密钥 ID",authKey:"认证密钥",authKeyDescription:"需要 Apple OAuth 应用程序的认证密钥",bundleId:"捆绑 ID",bundleIdDescription:"需要 Apple OAuth 应用程序的 Bundle ID"},wallet:{showQrcode:"显示二维码"},didConnect:{showDidColor:"显示 DID Connect 颜色",showAppInfo:"显示 Blocklet 信息",basicSettings:"基本配置",customSettings:"自定义配置",configDialogTitle:"认证文案配置",addNewAction:"添加操作",addLanguage:"添加语言",selectLanguage:"选择语言...",actionNameError:"只能使用小写字母和连字符,且不能以连字符开头",actionNameDuplicate:"操作名称已存在"}}};export{e as default};
|