@abtnode/blocklet-services 1.17.8-beta-20260106-113136-b3c09e14 → 1.17.8-beta-20260108-120904-21cb5fb6

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.
Files changed (217) hide show
  1. package/api/util/blocklet-utils.js +9 -4
  2. package/dist/assets/{AdapterDayjs-DafRMFLg.js → AdapterDayjs-C1bdndja.js} +1 -1
  3. package/dist/assets/{Google-DRu937I3.js → Google-BI3aC5vK.js} +1 -1
  4. package/dist/assets/{access-control-cgo5Z15_.js → access-control-BL-PuDiR.js} +1 -1
  5. package/dist/assets/{actions-Dfiiwkit.js → actions-m1acuA78.js} +1 -1
  6. package/dist/assets/{add-component-core-BfzNEcS5.js → add-component-core-BzMN094F.js} +1 -1
  7. package/dist/assets/add-resource-BRF-rYME.js +1 -0
  8. package/dist/assets/{addon-qN24wAb4.js → addon-yDIBSjIk.js} +1 -1
  9. package/dist/assets/{advanced-1Vu6rcXU.js → advanced-DEE0XFtQ.js} +1 -1
  10. package/dist/assets/{aigne-D6MrXXCU.js → aigne-9evgyH7b.js} +1 -1
  11. package/dist/assets/api-B24x7kOD.js +1 -0
  12. package/dist/assets/{appearance-DOQHBg9p.js → appearance-C8B414U2.js} +1 -1
  13. package/dist/assets/{ar-BukCw0OI.js → ar-BHqjWgUQ.js} +2 -2
  14. package/dist/assets/{audit-logs-ISyoqJFp.js → audit-logs-qNutRhHx.js} +1 -1
  15. package/dist/assets/{authorize-B9RLEFal.js → authorize-CZSHuYdu.js} +1 -1
  16. package/dist/assets/{base-chart-DhxjAyBU.js → base-chart-DT--nPCU.js} +1 -1
  17. package/dist/assets/{base32-_D4eWUeh.js → base32-z3esjJBn.js} +1 -1
  18. package/dist/assets/{bind-account-CLIjYy96.js → bind-account-QxLU_sxt.js} +1 -1
  19. package/dist/assets/{branding-iwUveEf5.js → branding-Bk26INk9.js} +1 -1
  20. package/dist/assets/{branding-C81Kt22j.js → branding-_XszRU-Z.js} +1 -1
  21. package/dist/assets/branding-tR0gcoY_.js +1 -0
  22. package/dist/assets/bundle-avatar-2AQWR0ld.js +1 -0
  23. package/dist/assets/button-LwkniwV9.js +1 -0
  24. package/dist/assets/{click-to-copy-CMo42VnK.js → click-to-copy-Dk6ZAJOw.js} +1 -1
  25. package/dist/assets/{omit-CCIQ0Qdi.js → cloneDeep-rgNCMFod.js} +1 -1
  26. package/dist/assets/{collapse-B7gUzFaX.js → collapse-D72lnPa9.js} +1 -1
  27. package/dist/assets/{complete-CJ_buCAS.js → complete-CEvsz8uU.js} +2 -2
  28. package/dist/assets/{component-Dip3v1Iq.js → component-BrZ1DWiw.js} +2 -2
  29. package/dist/assets/{config-D5KnWqfn.js → config-6tpm84_l.js} +1 -1
  30. package/dist/assets/{config-D8XZj8JI.js → config-CwlqBQNt.js} +2 -2
  31. package/dist/assets/config-cdtQwn5t.js +53 -0
  32. package/dist/assets/{config-navigation-Ni0iczgA.js → config-navigation-CZ9V7otK.js} +2 -2
  33. package/dist/assets/{config-space-B6_f52sE.js → config-space-CZRqkXsR.js} +1 -1
  34. package/dist/assets/{confirm-Lb1MrAdS.js → confirm-Ch-CAgUO.js} +1 -1
  35. package/dist/assets/{connect-JAX_oP3o.js → connect-BNkv99fz.js} +1 -1
  36. package/dist/assets/connect-CadBIZOq.js +5 -0
  37. package/dist/assets/connect-i7rkK26L.js +1 -0
  38. package/dist/assets/connect-to-lX3lujSp.js +1 -0
  39. package/dist/assets/{content-layout-DmSBGGVm.js → content-layout-Dtfb5X6M.js} +1 -1
  40. package/dist/assets/{create-passport-svg-5AYzBKFb.js → create-passport-svg-DeDfPZeD.js} +1 -1
  41. package/dist/assets/{createClass-DXYd7BIe.js → createClass-07c4wbGU.js} +1 -1
  42. package/dist/assets/{dashboard-C0l2IWWH.js → dashboard-CmJOnF0g.js} +2 -2
  43. package/dist/assets/{de-Br0tDZam.js → de-QUGQFv2K.js} +1 -1
  44. package/dist/assets/{delete-confirm-tbfLqDBI.js → delete-confirm-DiU5PO2T.js} +1 -1
  45. package/dist/assets/{did-address-CsOJBoiY.js → did-address-Cq16cwTy.js} +1 -1
  46. package/dist/assets/{domain-CnhOsdmM.js → domain-DHqSA0zl.js} +1 -1
  47. package/dist/assets/{domain-action-card-BsdHbhEi.js → domain-action-card-BsNaII7k.js} +2 -2
  48. package/dist/assets/domains-BQ_Of9Oo.js +1 -0
  49. package/dist/assets/{email-Dt_DGuhf.js → email-DXdzQLls.js} +2 -2
  50. package/dist/assets/{empty-spinner-BYDonf35.js → empty-spinner-BClWI15N.js} +1 -1
  51. package/dist/assets/engine-D18zeIE7.js +1 -0
  52. package/dist/assets/{es-D_e0gGgp.js → es-C4w6cL07.js} +2 -2
  53. package/dist/assets/{exchange-passport-DztKvBat.js → exchange-passport-NOgYhNpm.js} +1 -1
  54. package/dist/assets/{form-DoC8uBcB.js → form-DhecYoSJ.js} +3 -3
  55. package/dist/assets/{form-text-input-XjloVwBd.js → form-text-input-BsCymY_c.js} +1 -1
  56. package/dist/assets/{form-wrapper-PT5ZzMQy.js → form-wrapper-pwkkz4we.js} +1 -1
  57. package/dist/assets/{fr-DXizOT4b.js → fr-Bq3UipEu.js} +2 -2
  58. package/dist/assets/{fuel-IaJHNPPW.js → fuel-DgzL5KSX.js} +1 -1
  59. package/dist/assets/{gen-access-key-BJlDqEhI.js → gen-access-key-BxnyhhCR.js} +1 -1
  60. package/dist/assets/{gen-simple-access-key-lyiUw0C-.js → gen-simple-access-key-BJI-4yOF.js} +1 -1
  61. package/dist/assets/get-safe-url-BVTaUfvO.js +1 -0
  62. package/dist/assets/{hi-D2FEb_Tx.js → hi-DGZy0DLh.js} +2 -2
  63. package/dist/assets/{home-Bs_5YPbK.js → home-Bibhtg_U.js} +1 -1
  64. package/dist/assets/{id-Dw9URVwP.js → id-DOzDilAf.js} +2 -2
  65. package/dist/assets/{iframe-Dqu4MSyW.js → iframe-CqiUrjUO.js} +1 -1
  66. package/dist/assets/{index-BDH_LtJL.js → index-0ZSFNH-D.js} +1 -1
  67. package/dist/assets/{index-1HKgA-fz.js → index-BB8sYq-N.js} +1 -1
  68. package/dist/assets/{index-BWDWEkUF.js → index-BSZ3mQac.js} +2 -2
  69. package/dist/assets/{index-Dfx19arA.js → index-BhpNA6ar.js} +1 -1
  70. package/dist/assets/{index-B4YCnemd.js → index-BnOC3Ium.js} +1 -1
  71. package/dist/assets/index-BszSKE9L.js +1 -0
  72. package/dist/assets/{index-vP1T6V7V.js → index-CHkWO9t3.js} +4 -4
  73. package/dist/assets/{index-BsohFwTm.js → index-CaQuyP_U.js} +1 -1
  74. package/dist/assets/{index-DT5AXPVB.js → index-Cdaohlhu.js} +7 -7
  75. package/dist/assets/{index-B10SG1vs.js → index-CdsI3g5U.js} +1 -1
  76. package/dist/assets/index-CsYL8tps.js +1 -0
  77. package/dist/assets/{index-CRAuhYSg.js → index-D-O_eFad.js} +1 -1
  78. package/dist/assets/{index-BNhv-9xy.js → index-D88DUiSg.js} +1 -1
  79. package/dist/assets/{index-TYwJnR0n.js → index-D8NN8LDz.js} +6 -6
  80. package/dist/assets/{index-CQgzjKgB.js → index-DI4CWTXR.js} +106 -106
  81. package/dist/assets/{index-BhhZ8IDZ.js → index-DUnMyyWn.js} +9 -9
  82. package/dist/assets/{index-BSZtxRM0.js → index-D_ckidZn.js} +2 -2
  83. package/dist/assets/{index-B_SjLIbT.js → index-DlifV2p1.js} +5 -5
  84. package/dist/assets/{index-dbYkWwF4.js → index-DzdHYw6g.js} +1 -1
  85. package/dist/assets/{index-Cq6z7yeF.js → index-Ge2WhAk1.js} +4 -4
  86. package/dist/assets/{index-Cp0b8q3A.js → index-KUC3HPt0.js} +1 -1
  87. package/dist/assets/index-POuATgdm.js +1 -0
  88. package/dist/assets/index-TBM4hzrY.js +81 -0
  89. package/dist/assets/{index-DhHvANH8.js → index-WjASWJcO.js} +4 -4
  90. package/dist/assets/{index-DctZHPFL.js → index-fC-FqmP3.js} +1 -1
  91. package/dist/assets/{index-BGhqVqit.js → index-gohmHhDq.js} +1 -1
  92. package/dist/assets/{index-CRZM3CKo.js → index-hBDzzv6I.js} +1 -1
  93. package/dist/assets/{index-BWL6HE0j.js → index-iX-pnOjy.js} +1 -1
  94. package/dist/assets/{index-B7_VUEoc.js → index-jILCQaR3.js} +1 -1
  95. package/dist/assets/{index-B6DWjLJS.js → index-m_xRKGyG.js} +8 -8
  96. package/dist/assets/{index-G6Vk78zE.js → index-mt_AKU_F.js} +2 -2
  97. package/dist/assets/{index-B0Q9wWG1.js → index-oucqu2vy.js} +1 -1
  98. package/dist/assets/{index-B4KKUWng.js → index-u9tqiWy4.js} +1 -1
  99. package/dist/assets/{index-BkePHcyK.js → index-uexcv8C-.js} +7 -7
  100. package/dist/assets/info-outline-rounded-BLwoUxyI.js +1 -0
  101. package/dist/assets/{invitation-CYFN9u5t.js → invitation-DSs7YT3_.js} +4 -4
  102. package/dist/assets/{invitations-jY13RXbI.js → invitations-DK7oD-E6.js} +1 -1
  103. package/dist/assets/{invite-D72FvaiG.js → invite-CdWfDz--.js} +1 -1
  104. package/dist/assets/{isURL-CJRImg0N.js → isURL-DMMDDAKA.js} +1 -1
  105. package/dist/assets/{issue-passport-BfqkJF3W.js → issue-passport-yIqheTA0.js} +1 -1
  106. package/dist/assets/{item-5ZWPft2s.js → item-BV3WfK17.js} +1 -1
  107. package/dist/assets/{ja-DBxpsmGJ.js → ja-DMq-YXDX.js} +2 -2
  108. package/dist/assets/{ko-CCAdSyce.js → ko-BrYbXurh.js} +2 -2
  109. package/dist/assets/{landing-page-DRtId3hN.js → landing-page-BDAr8Hmo.js} +1 -1
  110. package/dist/assets/{launch-result-message-MNpx7ysR.js → launch-result-message-C04PaKk0.js} +1 -1
  111. package/dist/assets/{layout-Be1KH57_.js → layout-DzZv-Jny.js} +1 -1
  112. package/dist/assets/{list-CQtiNSih.js → list-B6eMSw29.js} +1 -1
  113. package/dist/assets/{list-CHI1rCEg.js → list-BWd3aUjb.js} +2 -2
  114. package/dist/assets/{list-header-Cl3jykCe.js → list-header-wJF4c6BN.js} +1 -1
  115. package/dist/assets/localization-oLJXrcTA.js +1 -0
  116. package/dist/assets/{log-BfCFT05M.js → log-BskdQbRf.js} +1 -1
  117. package/dist/assets/logger-DhW79f4a.js +1 -0
  118. package/dist/assets/{login-BtsH3IvI.js → login-CfL0Uf6Y.js} +1 -1
  119. package/dist/assets/{login-oauth-callback-Ds4uYiRr.js → login-oauth-callback-_6XAZMOE.js} +1 -1
  120. package/dist/assets/{logo-uploader-lepUW_D7.js → logo-uploader-D5E5QaRF.js} +1 -1
  121. package/dist/assets/{lost-passport-BtN3h1ya.js → lost-passport-CUtEI06a.js} +1 -1
  122. package/dist/assets/omit-BeaKJrg9.js +1 -0
  123. package/dist/assets/{open-window-CNt8gsrN.js → open-window-Bi6zVDJd.js} +1 -1
  124. package/dist/assets/{over-due-invoice-payment-7TbnqqKX.js → over-due-invoice-payment-B7FQEnNH.js} +1 -1
  125. package/dist/assets/{overview-Be3tncsL.js → overview-C7QghcRT.js} +1 -1
  126. package/dist/assets/{page-header-CHAwrgX-.js → page-header-BZv-tfgN.js} +1 -1
  127. package/dist/assets/passport-B_eTMTmZ.js +1 -0
  128. package/dist/assets/{passport-item-Bhbm8_m6.js → passport-item-D53yZ-cF.js} +1 -1
  129. package/dist/assets/{permission-BHvrn0M5.js → permission-DC8i_y8F.js} +1 -1
  130. package/dist/assets/preferences-DzDUGj-O.js +1 -0
  131. package/dist/assets/profile-embed-B3QUDkbU.js +1 -0
  132. package/dist/assets/{provider-icon-DQY2_LaP.js → provider-icon-D15U0Izg.js} +1 -1
  133. package/dist/assets/{pt-CrMGrBZ6.js → pt-Dl6732JN.js} +2 -2
  134. package/dist/assets/publish-resource-DCIlLUPS.js +1 -0
  135. package/dist/assets/{react-beautiful-dnd.esm-D0JKrMDl.js → react-beautiful-dnd.esm-BwIgGfYj.js} +1 -1
  136. package/dist/assets/{react-stripe.esm-CVZErl8X.js → react-stripe.esm-5Snjx_mn.js} +1 -1
  137. package/dist/assets/{required-BQln5OcV.js → required-DHjZE3-Y.js} +1 -1
  138. package/dist/assets/{ru-up3R57Pv.js → ru-CVUeN9AX.js} +2 -2
  139. package/dist/assets/{runtime-npJC4gp_.js → runtime-BHekBabT.js} +1 -1
  140. package/dist/assets/{sanitize-C-shWbtD.js → sanitize-yX1j-ggS.js} +1 -1
  141. package/dist/assets/sdk-CJUhxOGJ.js +1 -0
  142. package/dist/assets/{section-jXB9AxBb.js → section-CenHBXqj.js} +1 -1
  143. package/dist/assets/{security-nSKpCl8B.js → security-BMslI5IZ.js} +3 -3
  144. package/dist/assets/{session-C2ZBRIpv.js → session-CZpDtsCZ.js} +1 -1
  145. package/dist/assets/{setup-krkSJpAg.js → setup-CCvGdFDO.js} +1 -1
  146. package/dist/assets/{shorten-label-C4py9TLA.js → shorten-label-DXFyDHDr.js} +1 -1
  147. package/dist/assets/{simple-select-i16Vwzvl.js → simple-select-DtCsUIHR.js} +1 -1
  148. package/dist/assets/{spaces-BdZ_Rv3s.js → spaces-D3H6AchN.js} +1 -1
  149. package/dist/assets/{start-y3zrboBQ.js → start-SeWUP0mo.js} +4 -4
  150. package/dist/assets/{starting-progress-DI-J-VlX.js → starting-progress-Y3UjFmoX.js} +1 -1
  151. package/dist/assets/{status-B8pB_mTB.js → status-MSXp_buG.js} +1 -1
  152. package/dist/assets/{step-actions-B1ufIDaK.js → step-actions-BNFJWVZI.js} +1 -1
  153. package/dist/assets/{studio-1jwq0HOw.js → studio-CRjDRBty.js} +1 -1
  154. package/dist/assets/{switch-CetbUrYR.js → switch-C49IloVU.js} +1 -1
  155. package/dist/assets/{switch-control-_85hc9FG.js → switch-control-npfWE_aC.js} +1 -1
  156. package/dist/assets/{table-tips-CMt22HEy.js → table-tips-DMrnJF8e.js} +1 -1
  157. package/dist/assets/{team-DDjNXwXE.js → team-YWd-FRKh.js} +8 -8
  158. package/dist/assets/{th-DdNj2Ao6.js → th-32eBNQes.js} +2 -2
  159. package/dist/assets/{traffic-mcbpWOFq.js → traffic-0IuWlrAD.js} +1 -1
  160. package/dist/assets/{transfer-C66c3bWd.js → transfer-DRS2VUAN.js} +1 -1
  161. package/dist/assets/{unsubscribe-Cvz0OKhq.js → unsubscribe-xDow2Z6m.js} +1 -1
  162. package/dist/assets/{use-app-logo-BuyF983S.js → use-app-logo-hIHAHSSI.js} +1 -1
  163. package/dist/assets/{use-mobile-BINJTzMb.js → use-mobile-Bz2ML4Gk.js} +1 -1
  164. package/dist/assets/{use-mobile-D5clNlrm.js → use-mobile-_vjPRYx2.js} +1 -1
  165. package/dist/assets/{use-server-logo-Pbr_UuiI.js → use-server-logo-Da86xnyt.js} +1 -1
  166. package/dist/assets/{use-window-close-B16QghYq.js → use-window-close-DUJmRIjM.js} +1 -1
  167. package/dist/assets/{useAsync-BVTh1KYj.js → useAsync-D0xh4Var.js} +1 -1
  168. package/dist/assets/{useAsync-ZGLJQow7.js → useAsync-D6IP8T2e.js} +1 -1
  169. package/dist/assets/{useAsyncRetry-BMmRgSGm.js → useAsyncRetry-B_bXUXWM.js} +1 -1
  170. package/dist/assets/{useLocalStorage-De-EuH_M.js → useLocalStorage-Brr2PSz9.js} +1 -1
  171. package/dist/assets/{user-center-DQSoqc_z.js → user-center-COnqQuqE.js} +6 -6
  172. package/dist/assets/{user-follower-TTyja_sV.js → user-follower-DVX8m-Zk.js} +1 -1
  173. package/dist/assets/{util-Ff3hwYmy.js → util-Dee1Ybp3.js} +1 -1
  174. package/dist/assets/{util-DuMKfKo8.js → util-GXkeqbBQ.js} +1 -1
  175. package/dist/assets/{vendor-arcblock-Cnwtqa7s.js → vendor-arcblock-BCP2x3BR.js} +1 -1
  176. package/dist/assets/{vendor-hooks-BQWlJm53.js → vendor-hooks-DQAdyHrE.js} +1 -1
  177. package/dist/assets/{vendor-mui-core-DnR6WYuU.js → vendor-mui-core-CKKG_1TN.js} +2 -2
  178. package/dist/assets/{vendor-mui-x-CQc01l4r.js → vendor-mui-x-DHGvg6Bj.js} +1 -1
  179. package/dist/assets/{vendor-utils-DCMKu06e.js → vendor-utils-CUs2ebe7.js} +17 -17
  180. package/dist/assets/{vendor-ux-B0gV9NvH.js → vendor-ux-DjXlxcvL.js} +115 -115
  181. package/dist/assets/{vi-HNh41Xxk.js → vi-DF8IinAc.js} +2 -2
  182. package/dist/assets/{wait-connect-CRZmfXOA.js → wait-connect-CLe9IfYi.js} +1 -1
  183. package/dist/assets/{wizard-B41kI39b.js → wizard-8Tk0iyxY.js} +1 -1
  184. package/dist/assets/wizard-components-C10frai0.js +52 -0
  185. package/dist/assets/wrap-locale-CxYp8fAf.js +1 -0
  186. package/dist/assets/{zh-BmX_fuoi.js → zh-BRjrClew.js} +1 -1
  187. package/dist/assets/{zh-MM5bvwO_.js → zh-ByJkLAV1.js} +2 -2
  188. package/dist/assets/{zh-tw-Dr5DyPwA.js → zh-tw-34G9tsUP.js} +2 -2
  189. package/dist/index.html +1 -1
  190. package/package.json +44 -44
  191. package/dist/assets/add-resource-CYRgZ1ps.js +0 -1
  192. package/dist/assets/api-DwxIBXZs.js +0 -1
  193. package/dist/assets/branding-myiZl37D.js +0 -1
  194. package/dist/assets/bundle-avatar-Cc_6nw01.js +0 -1
  195. package/dist/assets/button-D-lyR9BW.js +0 -1
  196. package/dist/assets/cloneDeep-BY8zW7hH.js +0 -1
  197. package/dist/assets/config-44sI5I0w.js +0 -53
  198. package/dist/assets/connect-0OZVqJvc.js +0 -1
  199. package/dist/assets/connect-B9GQZEi7.js +0 -5
  200. package/dist/assets/connect-to-Djgj6TLg.js +0 -1
  201. package/dist/assets/domains-DRP2VSvO.js +0 -1
  202. package/dist/assets/engine-BXGX_w-S.js +0 -1
  203. package/dist/assets/get-safe-url-BiNPujaX.js +0 -1
  204. package/dist/assets/index-B9LF8Bep.js +0 -1
  205. package/dist/assets/index-BmXPp3DU.js +0 -1
  206. package/dist/assets/index-CI_uwh_J.js +0 -81
  207. package/dist/assets/index-CbiyJRV7.js +0 -1
  208. package/dist/assets/info-outline-rounded-BIwvgXCK.js +0 -1
  209. package/dist/assets/localization-CKE-bHgd.js +0 -1
  210. package/dist/assets/logger-DU7baop2.js +0 -1
  211. package/dist/assets/passport-CkJ4B4CG.js +0 -1
  212. package/dist/assets/preferences-TFWtUYLy.js +0 -1
  213. package/dist/assets/profile-embed-B9f9hlSS.js +0 -1
  214. package/dist/assets/publish-resource-CyvkVMG_.js +0 -1
  215. package/dist/assets/sdk-CoWDgSLO.js +0 -1
  216. package/dist/assets/wizard-components-Bn72hVOe.js +0 -52
  217. package/dist/assets/wrap-locale-CF46rj6q.js +0 -1
@@ -1,5 +1,5 @@
1
- const n={setup:{connect:{title:"Thiết lập máy chủ Blocklet",scan:"Sử dụng các phương pháp sau để trở thành chủ sở hữu của máy chủ này",confirm:"Vui lòng xem xét thao tác này trên Ví DID của bạn",success:"Tài khoản của bạn đã kết nối với máy chủ này"},keyPair:{title:"Đưa ra KeyPair",scan:"Kết nối ví DID của bạn để tạo cặp khóa cho ứng dụng này",confirm:"Xem lại hoạt động này trên ví DID của bạn",success:"Cặp khóa của bạn được lưu trữ một cách an toàn"},verify:{title:"Yêu cầu Chứng chỉ Sở hữu",scan:"Kết nối Ví DID của bạn để cung cấp các thông tin chứng thực sở hữu",confirm:"Xem lại thao tác này trên Ví DID của bạn",success:"Tài khoản của bạn đã kết nối với máy chủ này"},accept:{title:"Chấp nhận chứng chỉ sở hữu máy chủ",scan:"Kết nối ví DID của bạn để cung cấp các chứng chỉ sở hữu",confirm:"Xem lại thao tác này trên ví DID của bạn",success:"Tài khoản của bạn được kết nối với máy chủ này"},title:"Cài đặt máy chủ Blocklet",steps:{eula:"Hợp đồng Cấp phép Người dùng cuối",eulaFooter:"Tôi đã đọc và đồng ý với các điều khoản của EULA",connect:"Kết nối Ví DID Chủ sở hữu",verify:"Xác minh Sở hữu",basicSettings:"Cài đặt cơ bản",launchApp:"Khởi chạy ứng dụng",complete:"Hoàn thành"},congratulation:"Xin chúc mừng! Máy chủ Blocklet của bạn đã được bảo mật và sẵn sàng sử dụng",redirectButton:"Đưa tôi đến bảng điều khiển!"},login:{loginTo:"Kết nối với",description:"Chỉ chủ sở hữu máy chủ và thành viên được phê duyệt mới có thể truy cập bảng điều khiển.",switchDid:{title:"Chuyển Tài Khoản",scan:"Sử dụng các phương pháp sau để thêm tài khoản",confirm:"Xác nhận chuyển đổi trong ví DID của bạn",success:"Chuyển đổi thành công"},switchSpecifiedDid:{title:"Chuyển tài khoản",scan:"Bạn cần chuyển đổi DID thành {did} để hoàn thành các hành động sau",confirm:"Xác nhận chuyển đổi trong Ví của bạn",success:"Chuyển đổi thành công"},connect:{title:"Kết nối",scan:"Chỉ chủ sở hữu máy chủ và các thành viên được phê duyệt mới có thể truy cập bảng điều khiển",confirm:"Xác nhận trong tài khoản của bạn",success:"Bạn đã kết nối thành công"},verify:{title:"Xác minh truy cập",scan:"Kết nối ví DID của bạn với chủ sở hữu hoặc quản trị viên hiện tại",confirm:"Xác nhận trong tài khoản của bạn",success:"Quyền truy cập của bạn đã được xác minh",abort:"Xác minh truy cập đã bị hủy",description:"Bạn cần cung cấp hộ chiếu {roles} để thực hiện thao tác này, bạn chỉ cần xác minh lại sau 1 giờ không hoạt động.",descriptionForDestroy:"Bạn cần cung cấp hộ chiếu {roles} để thực hiện hoạt động nguy hiểm này nhằm đảm bảo an toàn."},login:"Kết nối",termsOfUse:"Điều khoản sử dụng",agreeTermsOfUse:"Tôi xác nhận rằng tôi đã đọc và đồng ý với điều khoản áp dụng"},acceptServer:{title:"Thu thập máy chủ với NFT Sở hữu",tooltip:"Nếu bạn nhận được một NFT quyền sở hữu máy chủ, bạn có thể yêu cầu hộ chiếu chủ sở hữu của bạn với liên kết này."},exchangePassport:{title:"Đổi hộ chiếu của bạn bằng NFT",success:"Bạn đã thành công trong việc đổi hộ chiếu và đăng nhập bằng hộ chiếu của mình",login:"Đăng nhập",dialog:{title:"Nhận hộ chiếu với NFT",scan:"Kết nối Ví DID của bạn để trình diễn NFT và nhận hộ chiếu",confirm:"Chọn NFT trên Ví DID của bạn",success:"Hộ chiếu đã được đổi thành công"},tooltip1:"Nếu bạn sở hữu NFT từ bộ sưu tập này,",tooltip2:"Bạn có thể đổi hộ chiếu của mình qua liên kết này."},payablePassport:{title:"Mua hộ chiếu bằng phương thức thanh toán",tooltip:"Nếu bạn không có hộ chiếu, bạn có thể mua hộ chiếu qua liên kết này."},sidebar:{dashboard:"Bảng điều khiển",blocklets:"Blocklets",console:"Bảng điều khiển",settings:"Cài đặt"},system:{total:"Tổng cộng",used:"Đã sử dụng",free:"Miễn phí",cores:"Số nhân",instances:"Số lượng trường hợp"},common:{invalid:"Không hợp lệ",about:"Về",access:"Truy cập",accessKey:"Khóa truy cập",action:"Hành động",actions:"Hành động",add:"Thêm",address:"Địa chỉ",afterTime:"Sau {time}",allow:"Cho phép",alreadyExist:"đã tồn tại",approve:"Phê duyệt",approved:"Được chấp thuận",appUrl:"URL Ứng dụng",auditLogs:"Lịch sử kiểm toán",author:"Tác giả",avatar:"Avatar",back:"Quay lại",basic:"Cơ bản",basicInfo:"Thông tin cơ bản",profile:"Hồ sơ",bind:"Buộc",blocklet:"Khối",blocklets:"Blocklets",blockletsStorage:"Lưu trữ Blocklets",cacheStorage:"Lưu trữ Bộ nhớ cache",cancel:"Hủy",certificate:"Chứng chỉ",category:"Chủ đề nhật ký",click:"Nhấp để sao chép",close:"Đóng",selectAll:"Chọn tất cả",unselectAll:"Bỏ chọn tất cả",collapseAll:"Thu gọn Tất cả",community:"URL Cộng đồng",complete:"Hoàn thành",componentBasicInfo:"Thông tin cơ bản về thành phần",components:"Trình quản lý Blocklet",config:"Cài đặt",configuration:"Cấu hình",appearance:"Giao diện",configNavigation:"Điều hướng",configSuccess:"Cấu hình thành công",confirm:"Xác nhận",connect:"Kết nối",console:"Console",continue:"Tiếp tục",continueWith:"Tiếp Tục Với",copiedTip:"Đã sao chép",copyAndClose:"Sao chép và Đóng",copyTip:"Nhấp để sao chép",coreStorage:"Lưu trữ Core",cpu:"CPU",create:"Tạo",createSuccess:"Tạo Khóa Truy Cập",created:"Được tạo lúc",createdAt:"Tạo vào",createdBy:"Được tạo bởi",dAddress:"Các Định danh Phi tập trung (DID)",dataStorage:"Lưu trữ trên Ổ đĩa Cục bộ",delConfirm:"Xoá",delConfirmDescription:"Xác nhận xóa {data}?",delete:"Xóa",dependents:"Người phụ thuộc",description:"Mô tả",detail:"Chi tiết",did:"DID",disk:"Ổ đĩa",diskInfo:"Thông tin đĩa",docker:"Có phải là Docker không",documentation:"Tài liệu",domain:"Miền",downgradeTo:"Downgrade xuống {name}",download:"Tải xuống",downloading:"Đang tải xuống",edit:"Chỉnh sửa",email:"Email",phone:"Điện thoại",empty:"Trống",emptyData:"Không tìm thấy kết quả",enable:"Bật",engine:"Động cơ",env:"Môi trường",environment:"Môi trường",expandAll:"Mở rộng Tất cả",expired:"Hết hạn",expires:"Hết hạn",export:"Xuất khẩu",externalIp:"IP Bên ngoài",failed:"Thất bại",filter:"Bộ lọc Nhật ký",fingerprint:"Vân tay",finish:"Hoàn thành",forbid:"Cấm",free:"Miễn phí",general:"Tổng quát",gitpod:"Gitpod LÀ GÌ",goEULA:'Nhấp để xem "Thỏa thuận Giấy phép Người dùng Cuối cùng"',group:"Nhóm",image:"Đây là một hình ảnh",install:"Cài đặt",installed:"Đã cài đặt",installedAt:"Đã cài đặt tại",installSuccess:"Cài đặt thành công",installing:"Đang cài đặt",internalIp:"Địa chỉ IP nội bộ",introduction:"Giới thiệu",invite:"Mời",inviting:"Mời",ip:"IP",isPublic:"Công chúng",issue:"Vấn đề",issuer:"Người phát hành",item:"Mục",joined:"Tham gia",key:"Khóa",releases:"Phát hành",lastPublishedAt:"Được xuất bản vào",launcher:"Thông tin về launcher",leavePageTip:"Bạn có chắc chắn muốn rời khỏi trang này không?",link:"Liên kết",loading:"Đang tải",log:"Xem Logs",logStorage:"Lưu trữ nhật ký",login:"Đăng nhập",logo:"Logo",logout:"Đăng xuất",logs:"Nhật ký",manageTeam:"Quản lý Nhóm",marketplace:"Chợ",member:"Thành viên",members:"Thành viên",memory:"Ký ức",meta:"Dữ liệu siêu",analytics:"Phân tích",runtime:"Thời gian chạy",traffic:"Giao thông",more:"Hơn",mountPoint:"Điểm Mount",name:"Tên",next:"Tiếp theo",no:"Không",noData:"Không có bản ghi để hiển thị",notice:"Những điều tồi tệ không ngờ sẽ xảy ra nếu bạn không đọc điều này!",noticeTitle:"Thông báo",notification:"Thông báo",open:"Mở",management:"Quản lý",os:"Hệ điều hành",overview:"Tổng quan",owner:"Chủ sở hữu",page404:"Trang 404",passport:"Hộ chiếu",permission:"Quyền",port:"Port",pre:"Trước đó",preferences:"Tùy chọn",preview:"Xem trước",protected:"Bảo vệ",protocol:"Giao thức",purchase:"Mua hàng",readMore:"Nhiều hơn",redirect:"Chuyển hướng",redirectCode:"Mã chuyển hướng",redirectPermanently:"Chuyển hướng vĩnh viễn",redirectTemporary:"Chuyển hướng tạm thời",redirectUrl:"URL chuyển hướng",rewrite:"Viết lại",release:"Phát hành",rewriteUrl:"Viết lại URL",reject:"Từ chối",reload:"Tải lại",remark:"Ghi chú",remove:"Xóa bỏ",removeSuccess:"Xoá thành công",renew:"Gia hạn",reportIssue:"Báo cáo vấn đề",required:"Bắt buộc",requiredErrorText:"Yêu cầu {name}",resource:"Tài nguyên",restart:"Khởi động lại",restore:"Phục hồi",retry:"Thử lại",revoke:"Thu hồi",role:"Vai trò",running:"Đang chạy",runtimeInfo:"Thông tin thời gian chạy",save:"Lưu",saveChanges:"Lưu Thay đổi",saveSuccess:"Lưu thành công",scheduleFailed:"Lịch trình thất bại",scheduleSuccess:"Đã lên lịch thành công",scope:"Phạm vi",screenshot:"Ảnh chụp màn hình",search:"Tìm kiếm",security:"An ninh",serverDid:"Máy chủ DID",serverVersion:"Phiên bản máy chủ",setting:"Cài đặt",start:"Bắt đầu",status:"Tình trạng",stop:"Dừng lại",storage:"Lưu trữ",backup:"Sao lưu",store:"Cửa hàng",succeeded:"Thành công",subscription:"Đăng ký",support:"Hỗ trợ: URL hoặc Email",switch:"Chuyển đổi",team:"Đội",the:"O",timeAgo:"{time} trước",title:"Tiêu đề",type:"Loại",unavailable:"Không có sẵn",update:"Cập nhật",updateAvailable:"Phiên bản mới {version} đã có sẵn",updatedAt:"Cập nhật lúc",updatedBy:"Được cập nhật bởi",upgrade:"Nâng cấp",upgradeTo:"Nâng cấp lên",upgrading:"Nâng cấp",uptime:"Thời gian hoạt động",url:"URL",valid:"Hợp lệ",value:"Giá trị",version:"Phiên bản",visit:"Ghé thăm",waiting:"Đang chờ",webhook:"Tích hợp",yes:"Vâng",invalidParam:"Tham số không hợp lệ",launch:"Khởi chạy",price:"Giá",redirecting:"Đang chuyển hướng",error:"Lỗi",reminder:"Nhắc nhở",normal:"Bình thường",gateway:"Cổng",verifyNFT:"Xác minh NFT",errorMessage:"Thông báo lỗi:",slugifyHint:"Điểm gắn kết thực tế sẽ là: {value}",strategy:"Chiến lược",auto:"Ô tô",manual:"Hướng dẫn",progress:"Đang tiến hành",startTime:"Thời gian bắt đầu",endTime:"Thời gian kết thúc",timeoutError:"Lỗi thời gian chờ",tags:"Tags",connectToStore:"Kết nối tới Cửa hàng",uploaded:"Đã tải lên",upload:"Tải lên",blockletStudio:"Studio",visitStore:"Ghé cửa hàng",reconnect:"Kết nối lại",change:"Thay đổi",disconnect:"Ngắt kết nối",sourceApp:"Thuộc về ứng dụng",visitTarget:"Ghé thăm {name}",upgradeServer:"Nâng cấp Máy chủ",display:"Hiển thị",requiredInputPlaceholder:"Vui lòng nhập {name}",refresh:"Làm mới",moveUp:"Di chuyển lên trên",moveDown:"Di chuyển xuống",enabled:"Đã kích hoạt",disabled:"Tắt",homepage:"Trang Chủ",buy:"Mua",view:"Xem",homepageTip:"Trang chủ hoặc URL Bản demo trực tiếp",repository:"Kho lưu trữ",expand:"Mở rộng",collapse:"Thu gọn",all:"Tất cả",notificationRecords:"Thông báo",unrecordedUser:"Tên chưa ghi",unrecordedRole:"Vai trò chưa ghi nhận",auditLogsSearch:"Tìm kiếm theo hành động hoặc nội dung",optional:"Tùy chọn",bugOrConnectDomain:"Mua hoặc kết nối một miền hiện có",bugOrConnectDomainTip:"Tên miền là địa chỉ duy nhất của trang web bạn trên internet. Bạn có thể mua tên miền mới từ DID Names hoặc bất kỳ nhà đăng ký tên miền nào, hoặc cấu hình tên miền hiện có mà bạn đã sở hữu.",connectExistingDomain:"Kết nối miền hiện có",domains:"Tên miền",didDomains:"Tên miền DID",manualDomains:"Tên miền của tôi",didDomainsDescription:"Các miền sau được quản lý tự động bởi dịch vụ DID:Names.",systemDomains:"Cấp bởi Hệ thống",systemDomainsDescription:"Các miền sau được tự động gán theo mặc định. Mặc dù có thể truy cập, chúng không dành cho mục đích sản xuất và không nên chia sẻ với khách hàng. Các miền này chủ yếu dành cho mục đích phát triển.",manualDomainsDescription:"Các miền sau được quản lý bởi nhà cung cấp miền của bạn và đã được cấu hình thủ công để trỏ đến đây.",fileCount:"Số lượng Tệp",fileSize:"Kích thước tệp",time:"Thời gian",less:"Ít hơn",timeInfo:"Thời gian",operator:"Operator",inviter:"Người mời",clear:"Xóa",ok:"OK",minutes:"Phút",hours:"Giờ",hour:"Giờ",days:"Ngày",day:"Ngày",weeks:"Tuần",months:"Tháng",custom:"Tùy chỉnh",environments:"Môi trường",sites:"Trang web",active:"Đang hoạt động",backupTime:"Thời gian sao lưu",lastUsedAt:"Lần sử dụng cuối cùng",expiredAt:"Ngày hết hạn",createdVia:"Tạo qua",neverExpired:"Không bao giờ",baseInfo:"Thông tin cơ bản",otherInfo:"Thông tin khác",lightMode:"Chế độ sáng",darkMode:"Chế độ tối",globalSettings:"Cài đặt toàn cục",document:"Tài liệu",mcpServers:"Máy chủ MCP",generate:"Tạo",copy:"Sao chép",copied:"Đã sao chép",orgs:"Tổ chức",userSessions:"Phiên người dùng",duplicate:"Sao chép",oauth:"Ứng dụng OAuth",poweredBy:"Được hỗ trợ bởi {brand}",theme:"Chủ đề",issued:"Đã phát hành",runTest:"Kiểm tra",saveFailed:"Lưu không thành công",policies:"Chính sách"},blocklet:{external:"Bên ngoài",notFound:"Không tìm thấy Blocklet trên máy chủ này, có thể đã bị xóa",installFromMarket:"Cài đặt Blocklets Mới",installFromUrl:"Cài đặt từ URL",installFromCreate:"Tạo Blocklet",installFromDiskBackup:"Khôi phục từ máy chủ này",installedAt:"Được cài đặt tại",internal:"Nội bộ",startedAt:"Bắt đầu lúc",stoppedAt:"Đã dừng lại ở",urlEmptyTip:"URL không có quyền truy cập",goToAddRule:"Đi đến Thêm",services:"Các Dịch vụ Tiếp cận",upstreamPort:"Cổng Thượng Dòng",noService:"Không có dịch vụ",appId:"App DID",appPid:"DID vĩnh viễn",alsoKnownAs:"Còn được biết đến là",skSource:"Ví của Người sở hữu",reloadSuccess:"Blocklet đã được tải lại thành công",statusTip:"Blocklet là {status}",initialUptime:"Dưới 1m",dashboard:"Bảng điều khiển Blocklet",noComponent:"Ứng dụng không có thành phần và không thể được khởi chạy",fromUrl:{title:"Cài đặt Blocklet",label:"URL Meta Blocklet",description:"URL nên trỏ đến Tệp thông tin Meta của Blocklet. Nếu bạn cần tham chiếu đến một tệp cục bộ, vui lòng thêm tiền tố file://, ví dụ file:///Users/foo/blocklet.json.",confirm:"Cài đặt",step0:"URL đầu vào",step1:"Xác nhận Meta Info",existTipPrefix:"Blocklet với cùng DID đã tồn tại, phiên bản đang là {version}",existTipSuffix:"Vui lòng cài đặt phiên bản cao hơn."},action:{stopDescription:"Dừng blocklet sẽ làm cho giao diện công khai của nó trở thành không thể tiếp cận, điều này có thể gây ra các lỗi cho người dùng cuối",stopComponentDescription:"Ngừng hoạt động của thành phần sẽ làm cho giao diện công khai của nó không thể truy cập, điều này có thể gây ra sự cố cho người dùng cuối",confirmStop:"Vâng, Dừng lại",cancelDownloadDescription:"Hủy tải xuống {name}?",removeApplicationDescription:"Xóa ứng dụng sẽ xóa mã và dữ liệu được tạo ra bởi ứng dụng này, và không thể khôi phục nếu bạn không có bất kỳ bản sao lưu nào.",removeApplicationAfterBackup:"Sao lưu và gỡ bỏ ứng dụng. Bạn có thể khôi phục ứng dụng từ máy chủ này nếu cần",removeApplicationComplete:"Xóa cả mã và dữ liệu cho ứng dụng này",removeComponentDescription:"Việc xóa thành phần sẽ xóa mã và dữ liệu được tạo bởi thành phần này, không thể phục hồi nếu bạn không có bản sao",removeComponentKeepData:"Giữ dữ liệu cho thành phần này, chỉ xóa mã",removeComponentComplete:"Xoá cả mã và dữ liệu cho thành phần này",confirmRemove:"Vâng, Xóa nó",confirmComponentRemove:"Có, Xóa nó",upgradeDescription:"Nâng cấp blocklet sẽ làm cho nó tạm thời không khả dụng, bạn có chắc chắn muốn tiếp tục không?",confirmUpgrade:"Có, Nâng cấp nó",confirmRestart:"Có, Khởi động lại nó",restartDescription:"Khởi động lại blocklet sẽ tạm thời bị tạm ngưng và có thể không khởi động được do thay đổi cấu hình"},dev:{modeTip:"Vui lòng chuyển Blocklet Server sang chế độ DEBUG"},index:{tableTitle:"Quản lý Blocklets Của Bạn",noBlocklet:"Không tìm thấy blocklets trong Máy chủ Blocklet này, cài đặt một blocklet từ thị trường để bắt đầu."},config:{name:"Tên ứng dụng",description:"Mô tả ứng dụng",logoSquare:"Biểu trưng ứng dụng",logoRect:"Logo Website",logoRectDesc:"Được sử dụng trong: tiêu đề và chân trang website; nếu không được cấu hình, sẽ quay lại logo ứng dụng",logoFavicon:"Favicon",logoFaviconDesc:"Được sử dụng trong: thanh địa chỉ và tab trình duyệt; sẽ chuyển về logo ứng dụng nếu không được cấu hình",clusterSize:"Số lượng phiên bản khi chạy blocklet này trong chế độ cụm",copyrightOwner:"Chủ sở hữu bản quyền",copyrightYear:"Bản quyền Năm",deletable:{name:"Bảo vệ Xóa",enable:"Hiện tại, Khối này KHÔNG thể xóa",disable:"Hiện tại, blocklet này có thể bị xóa"},walletType:{name:"Loại ví",description:"Loại ví của khối Blocklet, sẽ thay đổi DID được lấy ra"},languages:"Ngôn ngữ được hỗ trợ",selectLanguagesTip:"Điều chỉnh thứ tự bằng cách loại bỏ và thêm lại",languagesSearch:"Tìm kiếm theo Tên Gọi địa phương của Quốc gia, Tên tiếng Anh hoặc Mã ISO...",passportColor:"Màu hòm hộ chiếu",appUrl:"URL ứng dụng",access:{title:"Ai có thể truy cập?",description:"Chọn cách bạn muốn kiểm soát quyền truy cập vào ứng dụng của mình.",useDefault:"Sử dụng mặc định",defaultDescription:"Sử dụng cấu hình mặc định của ứng dụng",whoCanAccess:{all:{title:"Mở cửa cho mọi người",description:"Mở cửa ra thế giới, bất cứ ai cũng có thể truy cập mà không cần hộ chiếu"},owner:{title:"Chỉ chủ sở hữu mới được truy cập",description:"Bạn phải cung cấp hộ chiếu của chủ sở hữu để truy cập vào ứng dụng này"},invited:{title:"Truy cập chỉ dành cho người được mời",description:"Chỉ thành viên được mời mới có thể truy cập."}},publicToStore:"Công khai tại Cửa hàng",publicInstanceTip:"Địa chỉ truy cập khối này sẽ được hiển thị trong Cửa hàng (cùng với DID của bạn để chấp nhận quyên góp)",updatedTip:"Kiểm soát truy cập đã được sửa đổi"},changedTip:"Cấu hình được cập nhật, vui lòng khởi động lại Blocklet",missingRequired:"Thiếu cấu hình bắt buộc để khởi động blocklet",gotoFix:"Đi sửa",environment:{key:"Khóa cấu hình",value:"Giá trị cấu hình",keyValueRequired:"Phải chỉ định khóa và giá trị cấu hình",invalidKey:"Khóa cấu hình không được bắt đầu bằng BLOCKLET_ hoặc COMPONENT_",deleteForbidden:"Cấu hình này là bắt buộc và không được xóa",tip:"Các cấu hình có tiền tố BWA_ không nên chứa thông tin nhạy cảm vì chúng sẽ được gửi đến trình duyệt"},dangerZone:"Khu Vực Nguy Hiểm",sharedToAllComponents:"Sẽ được chia sẻ cho tất cả các thành phần",session:{ttl:"Người dùng sẽ được yêu cầu đăng nhập lại nếu không có hoạt động trên trang web này trong {ngày} ngày",day:"{day} ngày",days:"{day} ngày",period:"Thời gian hiệu lực phiên",profile:"Yêu cầu hồ sơ người dùng",cacheTtl:"Thời gian lưu trữ cache cho dữ liệu phiên người dùng (theo giây)",fullNameEnabled:"Yêu cầu tên người dùng khi đăng nhập (được bật mặc định)",avatarEnabled:"Yêu cầu avatar người dùng khi đăng nhập (được kích hoạt mặc định)",emailEnabled:"Yêu cầu email người dùng khi đăng nhập",emailRequireVerified:"Yêu cầu xác minh email người dùng trước khi đăng nhập",emailRequireUnique:"Yêu cầu email người dùng là duy nhất trong tất cả người dùng",phoneEnabled:"Yêu cầu số điện thoại người dùng khi đăng nhập (chưa được hỗ trợ)",phoneRequireVerified:"Yêu cầu xác minh số điện thoại người dùng trước khi đăng nhập",phoneRequireUnique:"Yêu cầu số điện thoại người dùng phải duy nhất trong tất cả người dùng",emailTrustOauthProviders:"Tin tưởng các nhà cung cấp OAuth để kiểm tra trạng thái xác minh email",enableDomainBlackList:"Kích hoạt danh sách đen tên miền email (từ chối các tên miền email đã liệt kê)",enableDomainWhiteList:"Kích hoạt danh sách trắng tên miền email (chỉ cho phép các tên miền email được liệt kê để đăng nhập)",addDomain:"Thêm nguồn để lấy danh sách (dưới dạng văn bản thường, một miền trên mỗi dòng)",enableBlacklist:"Bật thu hồi token đăng nhập và token làm mới",experimentalSettings:"Cài đặt Thử nghiệm"},clearCache:{name:"Quản lý Cache",purpose:"Quản lý file được lưu trữ trong dịch vụ router và blocklet",title:"Xác nhận xóa Cache?",action:"Xóa Cache",success:"{count} mục cache đã được xóa thành công",description:"Bạn có chắc chắn muốn xóa các tệp được lưu trữ tạm thời trong bộ định tuyến và dịch vụ blocklet không? Thao tác này có thể làm giảm hiệu suất một chút trong thời gian ngắn."},tenantMode:{name:"Chế độ Nhiều người thuê",multiple:"Blocklet này chạy trong chế độ nhiều người thuê, dữ liệu được cô lập cho mỗi người thuê",single:"Khối mã này chạy trong chế độ khách hàng đơn, tất cả dữ liệu được chia sẻ"},splashPortrait:"Hình ảnh Splash",splashLandscape:"Cảnh Splash",splashPortraitDesc:"Hiển thị khi Blocklet được khởi chạy. Định dạng PNG hoặc JPG, tỷ lệ khung hình được đề xuất 9:16 cho ảnh chân dung và 16:9 cho ảnh phong cảnh (tối đa 5MB)",rotateSessionKey:{name:"Xoay muối phiên",purpose:"Salt phiên là một giá trị ngẫu nhiên được sử dụng để tăng cường bảo mật của token phiên. Nhấp vào nút để xoay salt phiên thủ công, điều này giúp giảm nguy cơ bị đánh cắp token đăng nhập.",title:"Xác nhận xoay muối phiên?",action:"Xoay Muối",success:"Xoay thành công muối phiên",description:"Bạn có chắc chắn muốn xoay muối phiên? Thao tác này sẽ làm mất hiệu lực tất cả các token đăng nhập hiện có và buộc người dùng phải đăng nhập lại, bao gồm cả token đăng nhập của bạn."},ogImage:"Mở Graph Background",ogImageDesc:"Được sử dụng trong: nền chia sẻ phương tiện truyền thông xã hội",migrate:{button:"Di chuyển với DID Wallet",title:"Xác nhận thay đổi DID",description:"Nếu bạn đang khởi chạy với ví được quản lý bởi máy chủ, bạn có thể thay đổi DID ứng dụng thành ví của riêng bạn.",confirm:"Bạn có chắc chắn muốn thay đổi DID của ứng dụng? Thao tác này sẽ làm mất hiệu lực tất cả các phiên hiện có và buộc người dùng phải đăng nhập lại, bao gồm cả phiên của bạn."},vault:{name:"Vault DID",title:"Thiết lập Vault",desc:"Sử dụng vault để thêm lớp bảo mật bổ sung cho quỹ được quản lý bởi blocklet này.",tip:"Nhập địa chỉ kho để tiếp tục, bạn cần chứng minh quyền sở hữu địa chỉ kho trước khi có thể sử dụng.",address:"Địa chỉ Vault",verified:"Vault đã được xác minh",current:"Kho hiện tại",error:{invalid:"Địa chỉ Vault phải là DID hợp lệ",holder:"Địa chỉ Vault phải là người nắm giữ token hợp lệ trên blockchain; địa chỉ token/tài sản/nhà máy/cổ phần không được hỗ trợ.",duplicate:"Địa chỉ vault này đã được sử dụng trước đó, vui lòng sử dụng địa chỉ khác",appDid:"Không thể sử dụng DID ứng dụng làm địa chỉ vault, vui lòng sử dụng địa chỉ khác."},role:"Loại vai trò",firstSeen:"Thấy đầu tiên",lastSeen:"Lần cuối thấy",migratedFrom:"Di chuyển từ",migratedTo:"Di chuyển tới",commit:{title:"Xác minh quyền sở hữu Vault",scan:"Sử dụng các phương pháp sau để xác minh quyền sở hữu kho lưu trữ",confirm:"Xác nhận sử dụng DID Wallet",success:"Vault được cấu hình thành công"},approve:{title:"Duyệt Thay Đổi Vault",byOwner:"Ký với chủ sở hữu Blocklet để phê duyệt thay đổi",byLast:"Đăng nhập bằng vault cuối cùng để phê duyệt thay đổi",confirm:"Xác nhận bằng DID Wallet",success:"Thay đổi Vault đã được phê duyệt"}},changeImageTip:"Tip: Nếu muốn thay đổi hình ảnh, vui lòng nhấp vào Xem trước Hình ảnh.",baseInfo:"Thông tin cơ bản",baseInfoDesc:"Thông tin cơ bản của trang web có thể được thiết lập ở đây.",logoSettings:"Thông tin trực quan",logoSettingsDesc:"Tạo hình ảnh thương hiệu độc đáo, nâng cao khả năng nhận diện website và sức hấp dẫn trực quan trong nhiều trường hợp.",languagesDesc:"Được sử dụng trong: lựa chọn ngôn ngữ của khách truy cập",nameDesc:"Được sử dụng trong: tiêu đề DID Connect, tab trình duyệt, chân trang website, meta dữ liệu SEO và meta dữ liệu OpenGraph",descriptionDesc:"Được sử dụng trong: meta dữ liệu SEO và meta dữ liệu OpenGraph",logoSquareDesc:"Được sử dụng trong: chân trang hộp thoại xác thực người dùng và danh sách ứng dụng <b>DID Wallet</b>",logoDesc:"Kích thước đề nghị: {width}*{height} pixels",splashDesc:`Màn hình khởi chạy APP ArcSphere (sẽ được hiển thị trong <b>ArcSphere</b> nếu được cấu hình)
1
+ const n={setup:{connect:{title:"Thiết lập máy chủ Blocklet",scan:"Sử dụng các phương pháp sau để trở thành chủ sở hữu của máy chủ này",confirm:"Vui lòng xem xét thao tác này trên Ví DID của bạn",success:"Tài khoản của bạn đã kết nối với máy chủ này"},keyPair:{title:"Đưa ra KeyPair",scan:"Kết nối ví DID của bạn để tạo cặp khóa cho ứng dụng này",confirm:"Xem lại hoạt động này trên ví DID của bạn",success:"Cặp khóa của bạn được lưu trữ một cách an toàn"},verify:{title:"Yêu cầu Chứng chỉ Sở hữu",scan:"Kết nối Ví DID của bạn để cung cấp các thông tin chứng thực sở hữu",confirm:"Xem lại thao tác này trên Ví DID của bạn",success:"Tài khoản của bạn đã kết nối với máy chủ này"},accept:{title:"Chấp nhận chứng chỉ sở hữu máy chủ",scan:"Kết nối ví DID của bạn để cung cấp các chứng chỉ sở hữu",confirm:"Xem lại thao tác này trên ví DID của bạn",success:"Tài khoản của bạn được kết nối với máy chủ này"},title:"Cài đặt máy chủ Blocklet",steps:{eula:"Hợp đồng Cấp phép Người dùng cuối",eulaFooter:"Tôi đã đọc và đồng ý với các điều khoản của EULA",connect:"Kết nối Ví DID Chủ sở hữu",verify:"Xác minh Sở hữu",basicSettings:"Cài đặt cơ bản",launchApp:"Khởi chạy ứng dụng",complete:"Hoàn thành"},congratulation:"Xin chúc mừng! Máy chủ Blocklet của bạn đã được bảo mật và sẵn sàng sử dụng",redirectButton:"Đưa tôi đến bảng điều khiển!"},login:{loginTo:"Kết nối với",description:"Chỉ chủ sở hữu máy chủ và thành viên được phê duyệt mới có thể truy cập bảng điều khiển.",switchDid:{title:"Chuyển Tài Khoản",scan:"Sử dụng các phương pháp sau để thêm tài khoản",confirm:"Xác nhận chuyển đổi trong ví DID của bạn",success:"Chuyển đổi thành công"},switchSpecifiedDid:{title:"Chuyển tài khoản",scan:"Bạn cần chuyển đổi DID thành {did} để hoàn thành các hành động sau",confirm:"Xác nhận chuyển đổi trong Ví của bạn",success:"Chuyển đổi thành công"},connect:{title:"Kết nối",scan:"Chỉ chủ sở hữu máy chủ và các thành viên được phê duyệt mới có thể truy cập bảng điều khiển",confirm:"Xác nhận trong tài khoản của bạn",success:"Bạn đã kết nối thành công"},verify:{title:"Xác minh truy cập",scan:"Kết nối ví DID của bạn với chủ sở hữu hoặc quản trị viên hiện tại",confirm:"Xác nhận trong tài khoản của bạn",success:"Quyền truy cập của bạn đã được xác minh",abort:"Xác minh truy cập đã bị hủy",description:"Bạn cần cung cấp hộ chiếu {roles} để thực hiện thao tác này, bạn chỉ cần xác minh lại sau 1 giờ không hoạt động.",descriptionForDestroy:"Bạn cần cung cấp hộ chiếu {roles} để thực hiện hoạt động nguy hiểm này nhằm đảm bảo an toàn."},login:"Kết nối",termsOfUse:"Điều khoản sử dụng",agreeTermsOfUse:"Tôi xác nhận rằng tôi đã đọc và đồng ý với điều khoản áp dụng"},acceptServer:{title:"Thu thập máy chủ với NFT Sở hữu",tooltip:"Nếu bạn nhận được một NFT quyền sở hữu máy chủ, bạn có thể yêu cầu hộ chiếu chủ sở hữu của bạn với liên kết này."},exchangePassport:{title:"Đổi hộ chiếu của bạn bằng NFT",success:"Bạn đã thành công trong việc đổi hộ chiếu và đăng nhập bằng hộ chiếu của mình",login:"Đăng nhập",dialog:{title:"Nhận hộ chiếu với NFT",scan:"Kết nối Ví DID của bạn để trình diễn NFT và nhận hộ chiếu",confirm:"Chọn NFT trên Ví DID của bạn",success:"Hộ chiếu đã được đổi thành công"},tooltip1:"Nếu bạn sở hữu NFT từ bộ sưu tập này,",tooltip2:"Bạn có thể đổi hộ chiếu của mình qua liên kết này."},payablePassport:{title:"Mua hộ chiếu bằng phương thức thanh toán",tooltip:"Nếu bạn không có hộ chiếu, bạn có thể mua hộ chiếu qua liên kết này."},sidebar:{dashboard:"Bảng điều khiển",blocklets:"Blocklets",console:"Bảng điều khiển",settings:"Cài đặt"},system:{total:"Tổng cộng",used:"Đã sử dụng",free:"Miễn phí",cores:"Số nhân",instances:"Số lượng trường hợp"},common:{invalid:"Không hợp lệ",about:"Về",access:"Truy cập",accessKey:"Khóa truy cập",action:"Hành động",actions:"Hành động",add:"Thêm",address:"Địa chỉ",afterTime:"Sau {time}",allow:"Cho phép",alreadyExist:"đã tồn tại",approve:"Phê duyệt",approved:"Được chấp thuận",appUrl:"URL Ứng dụng",auditLogs:"Lịch sử kiểm toán",author:"Tác giả",avatar:"Avatar",back:"Quay lại",basic:"Cơ bản",basicInfo:"Thông tin cơ bản",profile:"Hồ sơ",bind:"Buộc",blocklet:"Khối",blocklets:"Blocklets",blockletsStorage:"Lưu trữ Blocklets",cacheStorage:"Lưu trữ Bộ nhớ cache",cancel:"Hủy",certificate:"Chứng chỉ",category:"Chủ đề nhật ký",click:"Nhấp để sao chép",close:"Đóng",selectAll:"Chọn tất cả",unselectAll:"Bỏ chọn tất cả",collapseAll:"Thu gọn Tất cả",community:"URL Cộng đồng",complete:"Hoàn thành",componentBasicInfo:"Thông tin cơ bản về thành phần",components:"Blocklets",config:"Cài đặt",configuration:"Cấu hình",appearance:"Giao diện",configNavigation:"Điều hướng",configSuccess:"Cấu hình thành công",confirm:"Xác nhận",connect:"Kết nối",console:"Console",continue:"Tiếp tục",continueWith:"Tiếp Tục Với",copiedTip:"Đã sao chép",copyAndClose:"Sao chép và Đóng",copyTip:"Nhấp để sao chép",coreStorage:"Lưu trữ Core",cpu:"CPU",create:"Tạo",createSuccess:"Tạo Khóa Truy Cập",created:"Được tạo lúc",createdAt:"Tạo vào",createdBy:"Được tạo bởi",dAddress:"Các Định danh Phi tập trung (DID)",dataStorage:"Lưu trữ trên Ổ đĩa Cục bộ",delConfirm:"Xoá",delConfirmDescription:"Xác nhận xóa {data}?",delete:"Xóa",dependents:"Người phụ thuộc",description:"Mô tả",detail:"Chi tiết",did:"DID",disk:"Ổ đĩa",diskInfo:"Thông tin đĩa",docker:"Có phải là Docker không",documentation:"Tài liệu",domain:"Miền",downgradeTo:"Downgrade xuống {name}",download:"Tải xuống",downloading:"Đang tải xuống",edit:"Chỉnh sửa",email:"Email",phone:"Điện thoại",empty:"Trống",emptyData:"Không tìm thấy kết quả",enable:"Bật",engine:"Động cơ",env:"Môi trường",environment:"Môi trường",expandAll:"Mở rộng Tất cả",expired:"Hết hạn",expires:"Hết hạn",export:"Xuất khẩu",externalIp:"IP Bên ngoài",failed:"Thất bại",filter:"Bộ lọc Nhật ký",fingerprint:"Vân tay",finish:"Hoàn thành",forbid:"Cấm",free:"Miễn phí",general:"Tổng quát",gitpod:"Gitpod LÀ GÌ",goEULA:'Nhấp để xem "Thỏa thuận Giấy phép Người dùng Cuối cùng"',group:"Nhóm",image:"Đây là một hình ảnh",install:"Cài đặt",installed:"Đã cài đặt",installedAt:"Đã cài đặt tại",installSuccess:"Cài đặt thành công",installing:"Đang cài đặt",internalIp:"Địa chỉ IP nội bộ",introduction:"Giới thiệu",invite:"Mời",inviting:"Mời",ip:"IP",isPublic:"Công chúng",issue:"Vấn đề",issuer:"Người phát hành",item:"Mục",joined:"Tham gia",key:"Khóa",releases:"Phát hành",lastPublishedAt:"Được xuất bản vào",launcher:"Thông tin về launcher",leavePageTip:"Bạn có chắc chắn muốn rời khỏi trang này không?",link:"Liên kết",loading:"Đang tải",log:"Xem Logs",logStorage:"Lưu trữ nhật ký",login:"Đăng nhập",logo:"Logo",logout:"Đăng xuất",logs:"Nhật ký",manageTeam:"Quản lý Nhóm",marketplace:"Chợ",member:"Thành viên",members:"Thành viên",memory:"Ký ức",meta:"Dữ liệu siêu",analytics:"Phân tích",runtime:"Thời gian chạy",traffic:"Giao thông",more:"Hơn",mountPoint:"Điểm Mount",name:"Tên",next:"Tiếp theo",no:"Không",noData:"Không có bản ghi để hiển thị",notice:"Những điều tồi tệ không ngờ sẽ xảy ra nếu bạn không đọc điều này!",noticeTitle:"Thông báo",notification:"Thông báo",open:"Mở",management:"Quản lý",os:"Hệ điều hành",overview:"Tổng quan",owner:"Chủ sở hữu",page404:"Trang 404",passport:"Hộ chiếu",permission:"Quyền",port:"Port",pre:"Trước đó",preferences:"Tùy chọn",preview:"Xem trước",protected:"Bảo vệ",protocol:"Giao thức",purchase:"Mua hàng",readMore:"Nhiều hơn",redirect:"Chuyển hướng",redirectCode:"Mã chuyển hướng",redirectPermanently:"Chuyển hướng vĩnh viễn",redirectTemporary:"Chuyển hướng tạm thời",redirectUrl:"URL chuyển hướng",rewrite:"Viết lại",release:"Phát hành",rewriteUrl:"Viết lại URL",reject:"Từ chối",reload:"Tải lại",remark:"Ghi chú",remove:"Xóa bỏ",removeSuccess:"Xoá thành công",renew:"Gia hạn",reportIssue:"Báo cáo vấn đề",required:"Bắt buộc",requiredErrorText:"Yêu cầu {name}",resource:"Tài nguyên",restart:"Khởi động lại",restore:"Phục hồi",retry:"Thử lại",revoke:"Thu hồi",role:"Vai trò",running:"Đang chạy",runtimeInfo:"Thông tin thời gian chạy",save:"Lưu",saveChanges:"Lưu Thay đổi",saveSuccess:"Lưu thành công",scheduleFailed:"Lịch trình thất bại",scheduleSuccess:"Đã lên lịch thành công",scope:"Phạm vi",screenshot:"Ảnh chụp màn hình",search:"Tìm kiếm",security:"An ninh",serverDid:"Máy chủ DID",serverVersion:"Phiên bản máy chủ",setting:"Cài đặt",start:"Bắt đầu",status:"Tình trạng",stop:"Dừng lại",storage:"Lưu trữ",backup:"Sao lưu",store:"Cửa hàng",succeeded:"Thành công",subscription:"Đăng ký",support:"Hỗ trợ: URL hoặc Email",switch:"Chuyển đổi",team:"Đội",the:"O",timeAgo:"{time} trước",title:"Tiêu đề",type:"Loại",unavailable:"Không có sẵn",update:"Cập nhật",updateAvailable:"Phiên bản mới {version} đã có sẵn",updatedAt:"Cập nhật lúc",updatedBy:"Được cập nhật bởi",upgrade:"Nâng cấp",upgradeTo:"Nâng cấp lên",upgrading:"Nâng cấp",uptime:"Thời gian hoạt động",url:"URL",valid:"Hợp lệ",value:"Giá trị",version:"Phiên bản",visit:"Ghé thăm",waiting:"Đang chờ",webhook:"Tích hợp",yes:"Vâng",invalidParam:"Tham số không hợp lệ",launch:"Khởi chạy",price:"Giá",redirecting:"Đang chuyển hướng",error:"Lỗi",reminder:"Nhắc nhở",normal:"Bình thường",gateway:"Cổng",verifyNFT:"Xác minh NFT",errorMessage:"Thông báo lỗi:",slugifyHint:"Điểm gắn kết thực tế sẽ là: {value}",strategy:"Chiến lược",auto:"Ô tô",manual:"Hướng dẫn",progress:"Đang tiến hành",startTime:"Thời gian bắt đầu",endTime:"Thời gian kết thúc",timeoutError:"Lỗi thời gian chờ",tags:"Tags",connectToStore:"Kết nối tới Cửa hàng",uploaded:"Đã tải lên",upload:"Tải lên",blockletStudio:"Studio",visitStore:"Ghé cửa hàng",reconnect:"Kết nối lại",change:"Thay đổi",disconnect:"Ngắt kết nối",sourceApp:"Thuộc về ứng dụng",visitTarget:"Ghé thăm {name}",upgradeServer:"Nâng cấp Máy chủ",display:"Hiển thị",requiredInputPlaceholder:"Vui lòng nhập {name}",refresh:"Làm mới",moveUp:"Di chuyển lên trên",moveDown:"Di chuyển xuống",enabled:"Đã kích hoạt",disabled:"Tắt",homepage:"Trang Chủ",buy:"Mua",view:"Xem",homepageTip:"Trang chủ hoặc URL Bản demo trực tiếp",repository:"Kho lưu trữ",expand:"Mở rộng",collapse:"Thu gọn",all:"Tất cả",notificationRecords:"Thông báo",unrecordedUser:"Tên chưa ghi",unrecordedRole:"Vai trò chưa ghi nhận",auditLogsSearch:"Tìm kiếm theo hành động hoặc nội dung",optional:"Tùy chọn",bugOrConnectDomain:"Mua hoặc kết nối một miền hiện có",bugOrConnectDomainTip:"Tên miền là địa chỉ duy nhất của trang web bạn trên internet. Bạn có thể mua tên miền mới từ DID Names hoặc bất kỳ nhà đăng ký tên miền nào, hoặc cấu hình tên miền hiện có mà bạn đã sở hữu.",connectExistingDomain:"Kết nối miền hiện có",domains:"Tên miền",didDomains:"Tên miền DID",manualDomains:"Tên miền của tôi",didDomainsDescription:"Các miền sau được quản lý tự động bởi dịch vụ DID:Names.",systemDomains:"Cấp bởi Hệ thống",systemDomainsDescription:"Các miền sau được tự động gán theo mặc định. Mặc dù có thể truy cập, chúng không dành cho mục đích sản xuất và không nên chia sẻ với khách hàng. Các miền này chủ yếu dành cho mục đích phát triển.",manualDomainsDescription:"Các miền sau được quản lý bởi nhà cung cấp miền của bạn và đã được cấu hình thủ công để trỏ đến đây.",fileCount:"Số lượng Tệp",fileSize:"Kích thước tệp",time:"Thời gian",less:"Ít hơn",timeInfo:"Thời gian",operator:"Operator",inviter:"Người mời",clear:"Xóa",ok:"OK",minutes:"Phút",hours:"Giờ",hour:"Giờ",days:"Ngày",day:"Ngày",weeks:"Tuần",months:"Tháng",custom:"Tùy chỉnh",environments:"Môi trường",sites:"Trang web",active:"Đang hoạt động",backupTime:"Thời gian sao lưu",lastUsedAt:"Lần sử dụng cuối cùng",expiredAt:"Ngày hết hạn",createdVia:"Tạo qua",neverExpired:"Không bao giờ",baseInfo:"Thông tin cơ bản",otherInfo:"Thông tin khác",lightMode:"Chế độ sáng",darkMode:"Chế độ tối",globalSettings:"Cài đặt toàn cục",document:"Tài liệu",mcpServers:"Máy chủ MCP",generate:"Tạo",copy:"Sao chép",copied:"Đã sao chép",orgs:"Tổ chức",userSessions:"Phiên người dùng",duplicate:"Sao chép",oauth:"Ứng dụng OAuth",poweredBy:"Được hỗ trợ bởi {brand}",theme:"Chủ đề",issued:"Đã phát hành",runTest:"Kiểm tra",saveFailed:"Lưu không thành công",policies:"Chính sách"},blocklet:{external:"Bên ngoài",notFound:"Không tìm thấy Blocklet trên máy chủ này, có thể đã bị xóa",installFromMarket:"Cài đặt Blocklets Mới",installFromUrl:"Cài đặt từ URL",installFromCreate:"Tạo Blocklet",installFromDiskBackup:"Khôi phục từ máy chủ này",installedAt:"Được cài đặt tại",internal:"Nội bộ",startedAt:"Bắt đầu lúc",stoppedAt:"Đã dừng lại ở",urlEmptyTip:"URL không có quyền truy cập",goToAddRule:"Đi đến Thêm",services:"Các Dịch vụ Tiếp cận",upstreamPort:"Cổng Thượng Dòng",noService:"Không có dịch vụ",appId:"App DID",appPid:"DID vĩnh viễn",alsoKnownAs:"Còn được biết đến là",skSource:"Ví của Người sở hữu",reloadSuccess:"Blocklet đã được tải lại thành công",statusTip:"Blocklet là {status}",initialUptime:"Dưới 1m",dashboard:"Bảng điều khiển Blocklet",noComponent:"Ứng dụng không có thành phần và không thể được khởi chạy",fromUrl:{title:"Cài đặt Blocklet",label:"URL Meta Blocklet",description:"URL nên trỏ đến Tệp thông tin Meta của Blocklet. Nếu bạn cần tham chiếu đến một tệp cục bộ, vui lòng thêm tiền tố file://, ví dụ file:///Users/foo/blocklet.json.",confirm:"Cài đặt",step0:"URL đầu vào",step1:"Xác nhận Meta Info",existTipPrefix:"Blocklet với cùng DID đã tồn tại, phiên bản đang là {version}",existTipSuffix:"Vui lòng cài đặt phiên bản cao hơn."},action:{stopDescription:"Dừng blocklet sẽ làm cho giao diện công khai của nó trở thành không thể tiếp cận, điều này có thể gây ra các lỗi cho người dùng cuối",stopComponentDescription:"Ngừng hoạt động của thành phần sẽ làm cho giao diện công khai của nó không thể truy cập, điều này có thể gây ra sự cố cho người dùng cuối",confirmStop:"Vâng, Dừng lại",cancelDownloadDescription:"Hủy tải xuống {name}?",removeApplicationDescription:"Xóa ứng dụng sẽ xóa mã và dữ liệu được tạo ra bởi ứng dụng này, và không thể khôi phục nếu bạn không có bất kỳ bản sao lưu nào.",removeApplicationAfterBackup:"Sao lưu và gỡ bỏ ứng dụng. Bạn có thể khôi phục ứng dụng từ máy chủ này nếu cần",removeApplicationComplete:"Xóa cả mã và dữ liệu cho ứng dụng này",removeComponentDescription:"Việc xóa thành phần sẽ xóa mã và dữ liệu được tạo bởi thành phần này, không thể phục hồi nếu bạn không có bản sao",removeComponentKeepData:"Giữ dữ liệu cho thành phần này, chỉ xóa mã",removeComponentComplete:"Xoá cả mã và dữ liệu cho thành phần này",confirmRemove:"Vâng, Xóa nó",confirmComponentRemove:"Có, Xóa nó",upgradeDescription:"Nâng cấp blocklet sẽ làm cho nó tạm thời không khả dụng, bạn có chắc chắn muốn tiếp tục không?",confirmUpgrade:"Có, Nâng cấp nó",confirmRestart:"Có, Khởi động lại nó",restartDescription:"Khởi động lại blocklet sẽ tạm thời bị tạm ngưng và có thể không khởi động được do thay đổi cấu hình"},dev:{modeTip:"Vui lòng chuyển Blocklet Server sang chế độ DEBUG"},index:{tableTitle:"Quản lý Blocklets Của Bạn",noBlocklet:"Không tìm thấy blocklets trong Máy chủ Blocklet này, cài đặt một blocklet từ thị trường để bắt đầu."},config:{name:"Tên ứng dụng",description:"Mô tả ứng dụng",logoSquare:"Biểu trưng ứng dụng",logoRect:"Logo Website",logoRectDesc:"Được sử dụng trong: tiêu đề và chân trang website; nếu không được cấu hình, sẽ quay lại logo ứng dụng",logoFavicon:"Favicon",logoFaviconDesc:"Được sử dụng trong: thanh địa chỉ và tab trình duyệt; sẽ chuyển về logo ứng dụng nếu không được cấu hình",clusterSize:"Số lượng phiên bản khi chạy blocklet này trong chế độ cụm",copyrightOwner:"Chủ sở hữu bản quyền",copyrightYear:"Bản quyền Năm",deletable:{name:"Bảo vệ Xóa",enable:"Hiện tại, Khối này KHÔNG thể xóa",disable:"Hiện tại, blocklet này có thể bị xóa"},walletType:{name:"Loại ví",description:"Loại ví của khối Blocklet, sẽ thay đổi DID được lấy ra"},languages:"Ngôn ngữ được hỗ trợ",selectLanguagesTip:"Điều chỉnh thứ tự bằng cách loại bỏ và thêm lại",languagesSearch:"Tìm kiếm theo Tên Gọi địa phương của Quốc gia, Tên tiếng Anh hoặc Mã ISO...",passportColor:"Màu hòm hộ chiếu",appUrl:"URL ứng dụng",access:{title:"Ai có thể truy cập?",description:"Chọn cách bạn muốn kiểm soát quyền truy cập vào ứng dụng của mình.",useDefault:"Sử dụng mặc định",defaultDescription:"Sử dụng cấu hình mặc định của ứng dụng",whoCanAccess:{all:{title:"Mở cửa cho mọi người",description:"Mở cửa ra thế giới, bất cứ ai cũng có thể truy cập mà không cần hộ chiếu"},owner:{title:"Chỉ chủ sở hữu mới được truy cập",description:"Bạn phải cung cấp hộ chiếu của chủ sở hữu để truy cập vào ứng dụng này"},invited:{title:"Truy cập chỉ dành cho người được mời",description:"Chỉ thành viên được mời mới có thể truy cập."}},publicToStore:"Công khai tại Cửa hàng",publicInstanceTip:"Địa chỉ truy cập khối này sẽ được hiển thị trong Cửa hàng (cùng với DID của bạn để chấp nhận quyên góp)",updatedTip:"Kiểm soát truy cập đã được sửa đổi"},changedTip:"Cấu hình được cập nhật, vui lòng khởi động lại Blocklet",missingRequired:"Thiếu cấu hình bắt buộc để khởi động blocklet",gotoFix:"Đi sửa",environment:{key:"Khóa cấu hình",value:"Giá trị cấu hình",keyValueRequired:"Phải chỉ định khóa và giá trị cấu hình",invalidKey:"Khóa cấu hình không được bắt đầu bằng BLOCKLET_ hoặc COMPONENT_",deleteForbidden:"Cấu hình này là bắt buộc và không được xóa",tip:"Các cấu hình có tiền tố BWA_ không nên chứa thông tin nhạy cảm vì chúng sẽ được gửi đến trình duyệt"},dangerZone:"Khu Vực Nguy Hiểm",sharedToAllComponents:"Sẽ được chia sẻ cho tất cả các thành phần",session:{ttl:"Người dùng sẽ được yêu cầu đăng nhập lại nếu không có hoạt động trên trang web này trong {ngày} ngày",day:"{day} ngày",days:"{day} ngày",period:"Thời gian hiệu lực phiên",profile:"Yêu cầu hồ sơ người dùng",cacheTtl:"Thời gian lưu trữ cache cho dữ liệu phiên người dùng (theo giây)",fullNameEnabled:"Yêu cầu tên người dùng khi đăng nhập (được bật mặc định)",avatarEnabled:"Yêu cầu avatar người dùng khi đăng nhập (được kích hoạt mặc định)",emailEnabled:"Yêu cầu email người dùng khi đăng nhập",emailRequireVerified:"Yêu cầu xác minh email người dùng trước khi đăng nhập",emailRequireUnique:"Yêu cầu email người dùng là duy nhất trong tất cả người dùng",phoneEnabled:"Yêu cầu số điện thoại người dùng khi đăng nhập (chưa được hỗ trợ)",phoneRequireVerified:"Yêu cầu xác minh số điện thoại người dùng trước khi đăng nhập",phoneRequireUnique:"Yêu cầu số điện thoại người dùng phải duy nhất trong tất cả người dùng",emailTrustOauthProviders:"Tin tưởng các nhà cung cấp OAuth để kiểm tra trạng thái xác minh email",enableDomainBlackList:"Kích hoạt danh sách đen tên miền email (từ chối các tên miền email đã liệt kê)",enableDomainWhiteList:"Kích hoạt danh sách trắng tên miền email (chỉ cho phép các tên miền email được liệt kê để đăng nhập)",addDomain:"Thêm nguồn để lấy danh sách (dưới dạng văn bản thường, một miền trên mỗi dòng)",enableBlacklist:"Bật thu hồi token đăng nhập và token làm mới",experimentalSettings:"Cài đặt Thử nghiệm"},clearCache:{name:"Quản lý Cache",purpose:"Quản lý file được lưu trữ trong dịch vụ router và blocklet",title:"Xác nhận xóa Cache?",action:"Xóa Cache",success:"{count} mục cache đã được xóa thành công",description:"Bạn có chắc chắn muốn xóa các tệp được lưu trữ tạm thời trong bộ định tuyến và dịch vụ blocklet không? Thao tác này có thể làm giảm hiệu suất một chút trong thời gian ngắn."},tenantMode:{name:"Chế độ Nhiều người thuê",multiple:"Blocklet này chạy trong chế độ nhiều người thuê, dữ liệu được cô lập cho mỗi người thuê",single:"Khối mã này chạy trong chế độ khách hàng đơn, tất cả dữ liệu được chia sẻ"},splashPortrait:"Hình ảnh Splash",splashLandscape:"Cảnh Splash",splashPortraitDesc:"Hiển thị khi Blocklet được khởi chạy. Định dạng PNG hoặc JPG, tỷ lệ khung hình được đề xuất 9:16 cho ảnh chân dung và 16:9 cho ảnh phong cảnh (tối đa 5MB)",rotateSessionKey:{name:"Xoay muối phiên",purpose:"Salt phiên là một giá trị ngẫu nhiên được sử dụng để tăng cường bảo mật của token phiên. Nhấp vào nút để xoay salt phiên thủ công, điều này giúp giảm nguy cơ bị đánh cắp token đăng nhập.",title:"Xác nhận xoay muối phiên?",action:"Xoay Muối",success:"Xoay thành công muối phiên",description:"Bạn có chắc chắn muốn xoay muối phiên? Thao tác này sẽ làm mất hiệu lực tất cả các token đăng nhập hiện có và buộc người dùng phải đăng nhập lại, bao gồm cả token đăng nhập của bạn."},ogImage:"Mở Graph Background",ogImageDesc:"Được sử dụng trong: nền chia sẻ phương tiện truyền thông xã hội",migrate:{button:"Di chuyển với DID Wallet",title:"Xác nhận thay đổi DID",description:"Nếu bạn đang khởi chạy với ví được quản lý bởi máy chủ, bạn có thể thay đổi DID ứng dụng thành ví của riêng bạn.",confirm:"Bạn có chắc chắn muốn thay đổi DID của ứng dụng? Thao tác này sẽ làm mất hiệu lực tất cả các phiên hiện có và buộc người dùng phải đăng nhập lại, bao gồm cả phiên của bạn."},vault:{name:"Vault DID",title:"Thiết lập Vault",desc:"Sử dụng vault để thêm lớp bảo mật bổ sung cho quỹ được quản lý bởi blocklet này.",tip:"Nhập địa chỉ kho để tiếp tục, bạn cần chứng minh quyền sở hữu địa chỉ kho trước khi có thể sử dụng.",address:"Địa chỉ Vault",verified:"Vault đã được xác minh",current:"Kho hiện tại",error:{invalid:"Địa chỉ Vault phải là DID hợp lệ",holder:"Địa chỉ Vault phải là người nắm giữ token hợp lệ trên blockchain; địa chỉ token/tài sản/nhà máy/cổ phần không được hỗ trợ.",duplicate:"Địa chỉ vault này đã được sử dụng trước đó, vui lòng sử dụng địa chỉ khác",appDid:"Không thể sử dụng DID ứng dụng làm địa chỉ vault, vui lòng sử dụng địa chỉ khác."},role:"Loại vai trò",firstSeen:"Thấy đầu tiên",lastSeen:"Lần cuối thấy",migratedFrom:"Di chuyển từ",migratedTo:"Di chuyển tới",commit:{title:"Xác minh quyền sở hữu Vault",scan:"Sử dụng các phương pháp sau để xác minh quyền sở hữu kho lưu trữ",confirm:"Xác nhận sử dụng DID Wallet",success:"Vault được cấu hình thành công"},approve:{title:"Duyệt Thay Đổi Vault",byOwner:"Ký với chủ sở hữu Blocklet để phê duyệt thay đổi",byLast:"Đăng nhập bằng vault cuối cùng để phê duyệt thay đổi",confirm:"Xác nhận bằng DID Wallet",success:"Thay đổi Vault đã được phê duyệt"}},changeImageTip:"Tip: Nếu muốn thay đổi hình ảnh, vui lòng nhấp vào Xem trước Hình ảnh.",baseInfo:"Thông tin cơ bản",baseInfoDesc:"Thông tin cơ bản của trang web có thể được thiết lập ở đây.",logoSettings:"Thông tin trực quan",logoSettingsDesc:"Tạo hình ảnh thương hiệu độc đáo, nâng cao khả năng nhận diện website và sức hấp dẫn trực quan trong nhiều trường hợp.",languagesDesc:"Được sử dụng trong: lựa chọn ngôn ngữ của khách truy cập",nameDesc:"Được sử dụng trong: tiêu đề DID Connect, tab trình duyệt, chân trang website, meta dữ liệu SEO và meta dữ liệu OpenGraph",descriptionDesc:"Được sử dụng trong: meta dữ liệu SEO và meta dữ liệu OpenGraph",logoSquareDesc:"Được sử dụng trong: chân trang hộp thoại xác thực người dùng và danh sách ứng dụng <b>DID Wallet</b>",logoDesc:"Kích thước đề nghị: {width}*{height} pixels",splashDesc:`Màn hình khởi chạy APP ArcSphere (sẽ được hiển thị trong <b>ArcSphere</b> nếu được cấu hình)
2
2
  Chế độ Chân dung:
3
3
  Tỷ lệ: 9:16
4
4
  Chế độ Phong cảnh:
5
- Tỷ lệ: 16:9`,copyrightDesc:"Được sử dụng trong: chân trang website",appUrlDesc:"Được sử dụng trong: sơ đồ trang web và chia sẻ trên mạng xã hội",advanced:"Cấu hình Nâng cao",errorReason:"Blocklet khởi động thất bại, nhưng bạn vẫn có thể truy cập nó bằng cách nhấp vào nút bên dưới.",nameValidateError:"Không hợp lệ: bắt đầu bằng chữ cái/số, 3–129 ký tự, chỉ a–z, 0–9, - và _."},overview:{source:"Nguồn",deployedFrom:"Triển khai từ",accessControl:"Kiểm soát truy cập",viewInStore:"Xem tại cửa hàng"},diskInfo:{empty:"Thông tin đĩa không khả dụng hiện tại!",appDir:"Thư mục Ứng dụng",dataDir:"Thư mục dữ liệu",logDir:"Thư mục nhật ký",cacheDir:"Thư mục cache"},runtimeInfo:{noRunning:"Thông tin thời gian chạy sẽ có sẵn khi blocklet đang chạy!",memoryUsage:"Bộ nhớ sử dụng",cpuUsage:"Sử dụng CPU",uptime:"Thời gian hoạt động",port:"Cảng",processId:"Mã quy trình",dataStorage:"Lưu trữ dữ liệu"},dist:{downloadLink:"Liên kết Tải xuống",verify:"Xác minh"},status:{added:"Đã thêm",waiting:"Đang chờ",downloading:"Đang tải xuống",extracting:"Trích xuất",installing:"Đang cài đặt",upgrading:"Nâng cấp",installed:"Đã cài đặt",created:"Được tạo",starting:"Bắt đầu",running:"Chạy",stopping:"Dừng lại",stopped:"Dừng",error:"Lỗi",deleting:"Xóa",corrupted:"Bị hỏng",purchasing:"Đang chờ mua hàng",purchased:"Đã mua",verifying:"Xác minh mua hàng",resource:"Tài nguyên",failWithOldVersion:"Phiên bản mới khởi động thất bại, Blocklet đang chạy trên phiên bản cũ.",hasSomeErrors:"{blocklets} chưa hoạt động hoàn chỉnh, có thể do sự cố hoặc đang chờ khởi động."},list:{download:"Tải xuống",star:"Ngôi sao",searchPlaceholder:"Tìm kiếm theo tên khối hoặc DID"},component:{container:"Cấu hình Toàn cầu",showContainer:"Hiển thị Cấu hình Toàn cầu",didSpaceConfig:"Cấu hình DID Spaces",didSpaceConfigTip:"Hoàn thành quy trình ủy quyền sau để lưu trữ dữ liệu ứng dụng trong DID Spaces",didSpaceConnected:"Lưu trữ được ủy quyền cho: {endpoint}",checkUpdateTitle:"Kiểm tra Cập nhật",updateTitle:"Cập nhật thành phần",noUpdate:"Không có thành phần cần cập nhật",add:"Thêm thành phần",selectComponent:"Chọn Blocklet",selectRegistry:"Chọn Blocklet Store",selectRegistryTip:"Bạn có thể chuyển cửa hàng khối để xem nhiều thành phần hơn",selectInstance:"Chọn Instance",selectInstanceTip:"Bạn có thể chọn một phiên bản hiện có hoặc tạo một phiên bản mới. Các phiên bản hiện có sẽ sử dụng cấu hình và dữ liệu đã được lưu trước đó.",newInstance:"Tạo Mới Thể hiện",noComponent:"Không có thành phần",mountPoint:"Điểm gắn kết là gì?",mountPointTip:"Nếu bạn đặt điểm gắn kết thành '/my-prefix', thì tất cả các yêu cầu bắt đầu bằng điểm gắn kết đó sẽ được định tuyến đến thành phần đã chọn",delete:"Xóa Bộ phận",deleteDescription:"Thành phần này sẽ không thể truy cập sau khi xóa. Xác nhận xóa?",purchase:"Yêu cầu thanh toán",tip:{stopBlocklet:"Vui lòng dừng chạy Blocklet trước",requiredBy:"Yếu tố này được yêu cầu bởi {name}"},choose:"Chọn",addWithName:"Thêm Blocklet vào {name}",installingCanCloseWindowTip:"Đang cài đặt thành phần trong nền, bạn có thể đóng cửa sổ này an toàn",installSuccessTip:"Chúc mừng, thành phần đã được cài đặt thành công!",missDownloadTokenTip:"Không thể thêm thành phần trả phí mà không có mã thông tin tải xuống hợp lệ",purchaseComponentSecondCheckTip:"Vui lòng trình diễn NFT mua Blocklet của bạn để tiếp tục",installComponentError:"Đã xảy ra lỗi khi cài đặt thành phần, vui lòng thử lại",downloadComponentError:"Đã xảy ra lỗi khi tải xuống thành phần, vui lòng thử lại",addComponentTip:{introduction:"Chào mừng bạn đến Vị tro Tiện ích Thêm Thành phần",isPurchase:"Bạn cần xác minh NFT trước khi sử dụng <b>{name}</b> như một thành phần",belowInformation:"Dưới đây là thông tin về thành phần:",verifyNFT:"Vui lòng chọn phương pháp Xác minh NFT",config:"Vui lòng điền vào cấu hình của thành phần",environment:"Vui lòng điền vào môi trường của thành phần",fromUrl:"Thêm Blocklet Từ Url",fromUpload:"Thêm Blocklet từ Tải lên",uploadFailed:"Tải lên thất bại",allowedFileTypes:"Các loại tệp được phép tải lên: {types}"},addNext:"Thêm {name}",upgradeNext:"Nâng cấp {name}",setting:"Cài đặt",noDependencies:"{name} không có bất kỳ sự phụ thuộc nào",relatedComponents:"Các khối liên quan",required:"Cần thiết",installed:"Đã cài đặt",installingTip:"Đang cài đặt thành phần, vui lòng chờ...",upgrade:"Nâng cấp",upgradeAvailable:"Cập nhật khả dụng",needBuy:"Cần mua",isOfficial:"Đã được chứng nhận chính thức"},router:{urlPath:"URL Path",noRunning:"Blocklet hiện không được khởi động. Không thể truy cập thông qua địa chỉ sau!",securitySetting:"Cài đặt Bảo mật",checkUrlAccessible:"Kiểm tra tính khả dụng của địa chỉ",urlInaccessible:"Có thể do lý do mạng, địa chỉ tạm thời không thể truy cập",noAccessibleUrl:"URL không thể truy cập",domainLockTooltip:"Miền tên được tạo bởi hệ thống không thể chỉnh sửa.",urlLockTooltip:"Đường dẫn URL được tạo bởi hệ thống không thể chỉnh sửa.",showAllDomains:"Hiển thị tất cả các miền",showAllDIDs:"Hiển thị tất cả DIDs",currentDomainTip:"Bạn đang truy cập trang hiện tại qua tên miền này"},export:{title:"Xuất Blocklet",name:"Tên Bundle",nameTip:"ví dụ 'my-blocklet-name' hoặc '@my-scope/blocklet-name'",result:"Tiếp theo là gì",exportSource:"Xuất nguồn",success:"Blocklet xuất thành công",resultTipStart:"Với",resultTipEnd:"Bạn có thể xây dựng và xuất bản blocklet này trong vài phút",uploadedComponentTip:"Các thành phần được tải lên trực tiếp không thể được xuất khẩu:"},migrate:{title:"Di chuyển ứng dụng",scan:"Kết nối Ví DID của bạn để tạo một cặp khóa cho ứng dụng này",confirm:"Xem lại thao tác này trên ví DID của bạn",success:"Ứng dụng của bạn đã được di chuyển thành công, trang sẽ được làm mới trong {sec} giây",intro:{l1:"Nhấp vào đây",l2:"Để di chuyển ứng dụng của bạn sang phiên bản mới (thay đổi bị tắt cho đến khi quá trình di chuyển hoàn tất)",l3:"Ứng dụng DID sẽ được điều khiển hoàn toàn từ Ví DID của bạn.",l4:"Dữ liệu ứng dụng sẽ được di chuyển, và không yêu cầu thay đổi khác.",l5:"Cấu trúc ứng dụng mới sẽ mang lại cho bạn linh hoạt hơn khi thay đổi các thành phần.",l6:"4. Vui lòng không thay đổi điểm gắn kết thành phần trước khi phiên bản thành phần mới được phát hành."},tip:{duplicate:"Tìm thành phần trùng lặp {name}, vui lòng xóa các thành phần không cần thiết và di chuyển lại",running:"Vui lòng ngừng chặn trước quá trình di chuyển"}},error:{isRunning:"Blocklet đang chạy, vui lòng dừng nó trước",isInProgress:"Blocklet đang tiến hành, vui lòng đợi cho đến khi hoàn thành"},publish:{createResource:"Tạo tài nguyên",addResource:"Thêm bản phát hành",productTitle:"Sản phẩm",versionTitle:"Phiên bản",imgTitle:"Hình ảnh",resourceTitle:"Nội dung",blockletEmptyTip:"Không có Blocklets nào ở đây",createBlockletTip:"Bạn có thể tạo blocklet mới thông qua các tài nguyên, thành phần và cấu hình hiện có trong ứng dụng này",createBlocklet:"Khối mới",componentNotRunning:"Blocklet {name} không hoạt động, vui lòng khởi chạy trước",releaseEmptyTip:"Không có bản phát hành ở đây",createReleaseTip:"Bạn có thể tạo một phiên bản của blocklet, cùng với ghi chú về phiên bản và tài nguyên, để mọi người khác có thể sử dụng",createRelease:"Tạo bản phát hành",deleteReleaseTip:"Phiên bản không thể khôi phục sau khi xóa",createBlockletDid:"Tạo từ Ví Điện tử DID",createReleaseSuccess:"Phát hành được tạo thành công",saveDraftSuccess:"Nháp đã được lưu thành công",connect:{title:"Tạo DID Blocklet",scan:"Sử dụng các phương pháp sau để tạo Blocklet DID",confirm:"Xác nhận bằng cách sử dụng Ví DID",success:"DID Blocklet đã được tạo ra, vui lòng tiếp tục hoạt động của bạn"},saveDraft:"Lưu nháp",releaseNote:"Ghi chú phát hành",errorTip:{noDid:"Blocklet DID là bắt buộc",noTitle:"Tiêu đề khối là bắt buộc",noVersion:"Phiên bản Blocklet cần thiết",noDescription:"Yêu cầu miêu tả Blocklet",noNote:"Cần có Ghi chú phát hành",inValidVersion:"Phiên bản Blocklet không hợp lệ",noResource:"Vui lòng chọn tài nguyên tải lên để bao gồm trong blocklet",noFirstDid:"Vui lòng tạo Blocklet DID trước",invalidUrl:"Vui lòng nhập một URL hợp lệ",invalidUrlOrEmail:"Vui lòng nhập một URL hoặc email hợp lệ"},packTip:"Hiện tại, blocklet có thể được cài đặt trực tiếp như các ứng dụng. Các thành phần và cấu hình ứng dụng sẽ được tự động bao gồm trong Blocklet.",resourceChangedWarning:"Bạn đã chỉnh sửa nguồn tài nguyên, vui lòng lưu lại đúng giờ",installResourceTip:"Đường dẫn Cài đặt:",installResourceTip2:"Nếu bạn muốn xem thêm những mẹo khác, vui lòng truy cập",installResourceHelp:"Tài liệu giúp đỡ",componentIncluded:"Bao gồm",componentForceRequired:"Yêu cầu",download:"Tải về {name}",delete:"Xóa {name}",copyInstallUrl:"Sao chép URL cài đặt",install:"Cài đặt {name}",publishToStoreSuccess:"Blocklet đã được xuất bản lên Cửa hàng thành công",connectStoreSuccess:"Kết nối Blocklet Store thành công",uploadToStoreSuccess:"Blocklet đã tải lên Store thành công, bạn cần phải xuất bản nó trong Store",viewLastRelease:"Xem phiên bản phát hành gần đây nhất",reconnectStoreTip:"Sau khi kết nối lại, một nhà phát triển mới sẽ được liên kết. Bạn có chắc chắn muốn kết nối lại không?",deleteProject:{title:"Xóa {name}",scan:"Sử dụng các phương pháp sau để xóa {name}",confirm:"Xác nhận sử dụng Ví DID",success:"Dự án Blocklet đã bị xóa, vui lòng tiếp tục hoạt động của bạn",tip1:"Dự án Blocklet sẽ không thể khôi phục sau khi xóa",tip2:"Bạn sẽ không còn có khả năng xuất bản phiên bản mới cho Blocklet đã bị xóa, điều đó có nghĩa là Blocklet sẽ không được cập nhật nữa trên Cửa hàng.",tip3:"Xóa Blocklet sẽ không ảnh hưởng đến phiên bản hiện tại đã được xuất bản trong Cửa hàng.",description:"Sau khi xóa Blocklet, bạn sẽ gặp các vấn đề sau, bạn có chắc chắn muốn xóa nó không?"},resourceTip:"Hiện tại, là một khối tài nguyên, nó không thể được cài đặt trực tiếp từ Cửa hàng.",whyCantSeeInStore:"Bạn có thể xuất bản Blocklet hiện tại trên cửa hàng, và nó có thể được sử dụng trên toàn thế giới",whyCantSeeResourceBlockletInStore:"Bạn có thể xuất bản Blocklet hiện tại trên cửa hàng, và nó có thể được sử dụng trên toàn thế giới. Blocklets bị ẩn khỏi trang danh sách cửa hàng theo mặc định.",tenantScope:"Người thuê",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets không đang chạy, vui lòng khởi động nó trước",resourceEmptyTip:"Không có tài nguyên khả dụng",steps:{resources:"Vui lòng chọn các tài nguyên cần được liên kết với Blocklet hiện tại, vì các tài nguyên này sẽ được cài đặt cùng với Blocklet.",blocklets:"Chọn các khối để kết hợp.",version:"Cài đặt phiên bản phát hành và nhật ký thay đổi.",introduction:"Một phần giới thiệu rõ ràng có thể làm nổi bật hiệu quả Blocklet của bạn. Bạn có thể sử dụng cú pháp Markdown để viết và xem trước nó.",branding:"Mô tả thông tin cơ bản về Blocklet của bạn. Thông tin này sẽ được trình bày cho người dùng trong cửa hàng."},branding:"Thương hiệu",brandingHelp:"Thông tin chi tiết về blocklet sẽ được hiển thị trên Cửa hàng",resourceSelect:"Chọn tài nguyên từ blocklets",resourceUpload:"Tải tài nguyên từ ổ đĩa của bạn (index.html cần thiết trong tệp nén)",deleteStoreTip:"Bạn có chắc chắn muốn xóa {name} khỏi danh sách Cửa hàng Kết nối không?",disconnectStoreTip:"Sau khi ngắt kết nối, Blocklet sẽ bị xóa khỏi cửa hàng. Bạn có chắc chắn muốn ngắt kết nối không?",connectOrUpload:"Kết nối hoặc Tải lên",developerInfo:"Thông tin nhà phát triển",autoUploadTip:"Tự động tải lên blocklet lên Cửa hàng sau khi phát hành",possibleSameStoreTip:"Hãy thử giải quyết các blocklet phụ thuộc trong cùng một Cửa hàng Blocklet trước mỗi khi tải lên khi có thể",needProjectId:"Vui lòng tạo dự án trước",projectSettings:"Cài đặt Dự án",noStoreSelected:"Vui lòng chọn một cửa hàng hiện có hoặc thêm cửa hàng mới để tiếp tục",installToThisServer:"Cài đặt vào máy chủ này",forceResourceBlocklet:"Lực được định nghĩa như là Blocklet dựa theo tài nguyên",resourceDocker:"Xây dựng Blocklet từ Docker",resourceSelectTitle:"Nguồn lực",resourceUploadTitle:"Tải lên",resourceDockerTitle:"Docker",resourceDockerInputTip:"Vui lòng nhập lệnh docker run",docker:{pleaseInputDockerCommand:"Vui lòng nhập lệnh docker run",volumeTip:"Phải bắt đầu với $BLOCKLET_DATA_DIR hoặc $BLOCKLET_APP_DIR",volumeTip2:'Âm lượng không thể chứa ".."',noAllowTheArg:"Tham số không được phép sử dụng trong lệnh docker run",needCustomInput:"Thiết lập giá trị khi cài đặt blocklet",dockerParams:"Tham số Docker",dockerCommand:"Lệnh Docker",dockerImageName:"Tên Docker Image",addItem:"Thêm tham số chạy Docker",envKey:"Khóa biến môi trường",publishTips:"Cổng ngoài cuối cùng sẽ được gán tự động bởi blocklet",volumeTips:"Âm lượng cần bắt đầu với $BLOCKLET_DATA_DIR hoặc $BLOCKLET_APP_DIR",modifyParam:"Chỉnh sửa tham số chạy Docker",modifyEnv:"Sửa đổi Biến Môi trường",paramDetail:"Chi tiết Param",description:"Mô tả",secure:"Bảo mật",shared:"Đã chia sẻ",required:"Bắt buộc",prefix:"Tiền tố",path:"Đường dẫn",name:"Tên",portType:"Loại Cổng",dockerImageNameError:"Tên của Docker Image không được chứa khoảng trắng",autoGenerated:"Tự động tạo",dockerCMDError:"Docker CMD chỉ hỗ trợ các ký tự đơn giản",proxyBehavior:"Hành vi Proxy",serviceProxy:"Dịch vụ",directProxy:"Trực tiếp",nextTab:"Phân tích Lệnh"},storeRule:{maxImageCount:"Cửa hàng cho phép tối đa {max} ảnh chụp màn hình.",minImageCount:"Cửa hàng yêu cầu tối thiểu {min} {unit}.",minImageSize:"Kích thước ảnh chụp màn hình {name} phải tối thiểu {width}x{height}.",logoFormat:"Định dạng hình ảnh logo chỉ hỗ trợ [{format}].",warning:"Cảnh báo",screenshot:"Ảnh chụp màn hình",screenshots:"Ảnh chụp màn hình",first:"Thứ 1",second:"Thứ 2",third:"Thứ 3"},store:"Cửa hàng Blocklet",endpoint:{tab:"Blocklet Từ Xa",uploadToEndpoint:"Bạn có thể tải Blocklet hiện tại lên Blocklet đã chỉ định.",addEndpoint:"Thêm Endpoint Blocklet",urlEmpty:"URL Endpoint không được để trống",addFailed:"Thêm điểm cuối Blocklet thất bại:",deleteEndpoint:"Xóa Endpoint Blocklet",deleteDesc:'Xác nhận xóa endpoint Blocklet {name}? <br/><span style="color: {color}">*Sau khi xóa endpoint Blocklet này, bạn không thể cập nhật các ứng dụng được cài đặt từ endpoint Blocklet này trừ khi bạn thêm chúng lại.</span>',confirmDesc:"Vui lòng nhập {name} để xóa",visitEndpoint:"Truy cập Blocklet",disconnectEndpointTip:"Bạn có chắc chắn muốn ngắt kết nối {url}? Sau khi ngắt kết nối, Blocklet sẽ không được tải lên điểm cuối này.",deleteFailed:"Xóa điểm cuối Blocklet thất bại",publishToEndpointSuccess:"Blocklet đã được xuất bản đến Endpoint thành công",uploadToEndpointSuccess:"Blocklet đã được tải lên Endpoint thành công"},autoPublishErrorTip:"Tự động xuất bản lên {storeName} thất bại: {error}",singleton:"Chỉ một thực thể",singletonTip:"Khi chế độ singleton được bật, ứng dụng không thể chạy nhiều phiên bản cùng lúc. Vì ứng dụng của bạn sử dụng chế độ singleton, triển khai blue-green không thể được sử dụng cho cập nhật hoặc khởi động lại."},titleValidationError:"Độ dài tiêu đề phải từ 3 đến 20 ký tự",descriptionValidationError:"Độ dài mô tả phải từ 3 đến 80 ký tự",whyNeedAppPid:"Nếu ứng dụng của bạn đã được di chuyển, DID vĩnh viễn là DID được tạo khi Blocklet này được cài đặt ban đầu",usingDocker:"Blocklet này sẽ chạy bằng docker",gotoVisitError:"Không thể truy cập URL Blocklet, vui lòng thử lại sau",usingIsolation:"Blocklet này sẽ chạy với cách ly mạng",dockerImage:"Hỗ trợ Docker",mountPoint:{description1:"Thay đổi này có thể làm hỏng các URL chứa điểm gắn kết cũ, điều này có thể dẫn đến:",case1:"Tham chiếu tài nguyên bị hỏng giữa các Blocklets trong ứng dụng này",case2:"URL bị hỏng nếu bạn đã chia sẻ chúng công khai",description2:"Bạn có thể thiết lập chuyển hướng từ điểm gắn kết cũ sang điểm gắn kết mới để giảm thiểu những thay đổi có thể gây lỗi."},skSourceMigratedTip:"Ứng dụng này được ra mắt với ví được quản lý bởi máy chủ, và đã chuyển sang DID Wallet để tăng cường bảo mật.",skSourceManagedTip:"Ứng dụng này đang chạy với ví được quản lý bởi máy chủ, vui lòng chuyển sang DID Wallet sớm nhất có thể để đảm bảo bảo mật tốt hơn.",zeroDowntime:"Không thời gian chết"},dashboard:{nodeDid:"Nút",ownerDid:"Chủ sở hữu",routingEngine:"Bộ Quy Tắc",ownerNftURL:"Chủ sở hữu NFT",expirationLeft:"Ngày hết hạn còn lại",startFromCrashTip:"Blocklet Server không thoát bình thường lần trước, vui lòng khởi động thủ công các blocklets cần chạy.",runtimeConfig:{blockletMaxMemoryLimit:"Giới hạn bộ nhớ tối đa của Blocklet",daemonMaxMemoryLimit:"Giới hạn bộ nhớ tối đa của máy chủ"},document:"Tìm hiểu thêm trong tài liệu của chúng tôi",database:"Cơ sở dữ liệu"},store:{nameSort:"Tên",popularSort:"Sự phổ biến",headerDescription:"Tìm kiếm và Cài đặt Blocklets của bạn",detail:{purchase:"Mua {name}",open:"Mở {name}",install:"Cài đặt {name}",upgrade:"Nâng cấp {name}",empty:"Không giới thiệu"},blockletRegistry:{changeFailed:"Thay đổi Cửa hàng Blocklet thất bại:",addFailed:"Thêm Blocklet Store thất bại: {name}",editFailed:"Sửa cửa hàng Blocklet không thành công",switchRegistry:"Chuyển Đổi Cửa Hàng Khối",addRegistry:"Thêm Blocklet Store",editRegistry:"Chỉnh sửa Cửa hàng Blocklet",deleteRegistry:"Xóa Blocklet Store",haveSameRegistry:"Cửa hàng khối cùng tồn tại",registryName:"Tên Cửa hàng Blocklet",registryUrl:"URL cửa hàng Blocklet",registryNameEmpty:"Tên cửa hàng Blocklet không thể để trống",registryUrlEmpty:"URL cửa hàng Blocklet không được để trống",deleteDesc:"Xác nhận Xóa cửa hàng blocklet {name} ?",confirmDesc:"Vui lòng nhập {name} để xóa"},purchase:{title:"Mua {name}",confirmed:"Giao dịch mua NFT của bạn đã được xác minh",declined:"Bạn không cung cấp mua NFT blocklet hợp lệ",waiting:"Đang chờ hoàn tất mua hàng...",purchase:{title:"Mua NFT",description:"Hãy thanh toán một số mã thông báo trước khi cài đặt khối này nếu bạn chưa mua khối này"},verify:{title:"Xác minh NFT",description:"NFT của bạn sẽ được xác minh trước khi cài đặt blocklet này nếu bạn đã mua và giữ NFT mua hàng trong Ví DID của bạn",auth:{title:"Yêu cầu Mua thông tin Xác thực",scan:"Kết nối DID Wallet để cung cấp mua blocklet NFT",confirm:"Vui lòng xem lại hoạt động này trên Ví DID của bạn",success:"Mua NFT của bạn đã được xác minh và việc cài đặt đã bắt đầu"}},auth:{title:"Mua {name}",scan:"Quét mã QR sau đây bằng ví điện tử DID của bạn",confirm:"Xác nhận trong tài khoản của bạn",success:"Mua NFT được gửi vào ví DID của bạn"},launch:"Khởi chạy {name}",autoLaunch:"{name} đã mua thành công, đang chuyển hướng đến trang khởi chạy..."},tooltip:{upgradeServer:"Blocklet yêu cầu Blocklet Server phiên bản {version}, phiên bản Blocklet Server hiện tại là {serverVersion}"}},setting:{saveSuccess:"Cài đặt đã được lưu thành công",unSavedTip:'Có những thay đổi chưa được lưu, vui lòng nhấp vào "Lưu Thay Đổi" để lưu chúng.',unSavedLeaveTip:"Có những thay đổi chưa được lưu, bạn chắc chắn muốn rời khỏi trang?",form:{name:"Tên Máy chủ của bạn",nameRequired:"Mô tả máy chủ là bắt buộc",namePlaceholder:"Tên máy chủ",description:"Mô tả máy chủ của bạn",descriptionHolder:"Mô tả máy chủ",descriptionRequired:"Cần mô tả của máy chủ",domain:"Tên miền máy chủ của bạn",domainPlaceholder:"Tên Miền Máy Chủ",domainRequired:"Yêu cầu miền máy chủ",ipPlaceholder:"IP",ipRequired:"IP được yêu cầu",registry:"Cửa hàng Blocklet",registryPlaceholder:"Kho blocklet để tìm blocklets",registryRequired:"Cửa hàng Blocklet là bắt buộc",registerUrl:"Địa chỉ URL của Blocklet Launcher",registerUrlPlaceholder:"Nhập URL của Blocklet Launcher ưa thích của bạn, bạn có thể sử dụng phiên bản chính thức một cách an toàn",webWalletUrl:"URL ví DID",webWalletUrlPlaceholder:"Vui lòng nhập URL của 'Ví DID' của bạn được lưu trữ, bạn có thể sử dụng phiên bản chính thức một cách an toàn",nftDomainUrl:"URL miền NFT",nftDomainUrlPlaceholder:'Vui lòng nhập URL của miền "NFT" đã lưu trữ của bạn, bạn có thể sử dụng nó một cách an toàn',enableWelcomePage:"Bật trang chào mừng",welcome:{switchLabel:"Trang Chào mừng"},upgrade:{title:"Nâng cấp Blocklet Server lên phiên bản {version}",description:"Trong quá trình nâng cấp, máy chủ Blocklet của bạn sẽ vào chế độ bảo trì trong vài phút trong khi cập nhật hoàn tất.",dialog:'Nhấp vào "xác nhận" để cài đặt bản cập nhật. Blocklet Server sẽ vào chế độ bảo trì cho đến khi cập nhật hoàn thành và tự động trở lại chế độ sản xuất.',confirm:"Nâng cấp",switchLabel:"Kiểm tra cập nhật tự động",enableBetaRelease:"Kích hoạt Phiên bản Beta",setup:"Đang chuẩn bị nâng cấp",installing:"Đang cài đặt máy chủ Blocklet v{version}",restarting:"Khởi động lại Máy chủ Blocklet",cleanup:"Di chuyển dữ liệu máy chủ Blocklet",verifying:"Đang xác minh máy chủ Blocklet v{version}",rollback:"Máy chủ Rollback Blocklet",complete:"Nâng cấp đã hoàn thành!",progress:"Nâng cấp {name}",check:"Kiểm tra cập nhật",latest:"Bạn đang chạy phiên bản mới nhất."},restart:{title:"Khởi động lại máy chủ Blocklet",description:"Trong quá trình khởi động lại, máy chủ Blocklet của bạn sẽ vào chế độ bảo trì cho đến khi quá trình khởi động lại hoàn tất.",dialog:'Bấm vào "xác nhận" để khởi động lại. Blocklet Server sẽ vào chế độ bảo trì cho đến khi khởi động lại hoàn thành và tự động quay trở lại chế độ sản xuất.',confirm:"Khởi động lại",setup:"Đang chuẩn bị khởi động lại",verifying:"Đang xác minh Máy chủ Blocklet",restarting:"Khởi động lại Máy chủ Blocklet",cleanup:"Đảm bảo mọi thứ đều ổn",rollback:"Dọn dẹp trạng thái bẩn",complete:"Giữ hoàn chỉnh!",progress:"Khởi động lại {name}"},register:{title:"Đăng ký Blocklet Launcher",description:"Sau khi thêm, bạn có thể khởi chạy blocklets tới máy chủ blocklet này từ {url}.",button:"Đăng ký"},monitor:{diskThreshold:"Gửi cảnh báo khi sử dụng đĩa vượt quá (%)",diskThresholdPlaceholder:"Vui lòng đặt ngưỡng cảnh báo việc sử dụng đĩa"},security:{switchLabel:"Cách ly Hệ thống Tệp",switchTips:"Sau khi vô hiệu hóa tùy chọn này, hệ thống tệp của Blocklet sẽ không còn được cách ly nữa, điều này có thể tạo ra nguy cơ phần mềm độc hại làm hỏng hệ thống tệp.",warningTips:"Tính năng cô lập hệ thống tệp không có hiệu lực. Vui lòng nâng cấp phiên bản node.js (phiên bản hiện tại là {version}) lên v21.6.0 hoặc cao hơn."},docker:{switchLabel:"Chạy Blocklets trong Containers",switchTips:"Sau khi kích hoạt tùy chọn này, các blocklet sẽ chạy bằng cách sử dụng container, có thể cải thiện bảo mật tổng thể của máy chủ.",notInstalled:"Không thể kích hoạt chạy container vì Docker chưa được cài đặt hoặc thiếu quyền cần thiết để thực thi.",needCloseFileSystemIsolation:"Cách ly hệ thống tệp và chế độ thùng chứa docker không thể được kích hoạt cùng một lúc"},dockerNetwork:{switchLabel:"Phân lập Mạng cho Container",switchTips:"Sau khi bật tùy chọn này, các blocklet sẽ chạy an toàn hơn: một blocklet không thể truy cập vào máy chủ blocklet hoặc các blocklet khác trên các ứng dụng.",needEnableDocker:"Chế độ chứa phải được kích hoạt để bật khả năng cô lập mạng"},restartAllContainers:{title:"Khởi động lại tất cả Container",description:"Khởi động lại tất cả các container và giữ cho blocklets chạy.",dialog:'Nhấp vào "xác nhận" để khởi động lại tất cả blocklets trong container và giữ trạng thái blocklets đang chạy.',confirm:"Khởi động lại",setup:"Đang chuẩn bị khởi động lại",verifying:"Đang xác minh Server Blocklet",restarting:"Khởi động lại tất cả container ở nền",cleanup:"Đảm bảo mọi thứ đều ổn",rollback:"Dọn dẹp trạng thái bẩn",complete:"Bảo trì hoàn tất!",progress:"Khởi động lại tất cả các container ở chế độ nền"},restartAllBlocklet:{title:"Khởi động lại tất cả Blocklets",description:"Khởi động lại tất cả Blocklets đang chạy hoặc lỗi trên server này.",dialog:'Nhấp vào "xác nhận" để khởi động lại tất cả blocklets ở chế độ nền.',confirm:"Khởi động lại",setup:"Đang chuẩn bị khởi động lại",verifying:"Đang xác minh Blocklet Server",restarting:"Khởi động lại tất cả các Blocklets đang chạy hoặc lỗi ở chế độ nền",cleanup:"Đảm bảo mọi thứ đều ổn",rollback:"Dọn dẹp trạng thái bẩn",complete:"Bảo trì hoàn tất!",progress:"Khởi động lại tất cả Blocklets đang chạy hoặc bị lỗi ở chế độ nền"},enableSessionHardening:{switchLabel:"Kích hoạt Tăng cường Phiên",switchTips:"Sau khi bật tùy chọn này, các hoạt động đột biến sẽ yêu cầu xác minh nghiêm ngặt, có thể cải thiện bảo mật tổng thể của máy chủ."}},accessKey:{accessKeyId:"ID Khóa Truy cập",lastUsed:"Lần cuối sử dụng vào",tip:"Vui lòng nhập tên cho khóa truy cập này",saveSecretTip:"Đây là lần duy nhất mà khóa bí mật truy cập của bạn có thể được xem và không thể khôi phục. Tuy nhiên, bạn có thể tạo các khóa truy cập mới bất kỳ lúc nào.",iKnow:"Tôi đã sao chép và lưu Khoá truy cập Bí mật",showSecret:"Hiển thị Mã Truy Cập Bí Mật",hideSecret:"Ẩn bí mật",title:"Xóa Khóa Truy Cập",descriptionNoTime:"Điều này sẽ xóa vĩnh viễn khóa truy cập {key} với tên {name}, chưa bao giờ được sử dụng trước đó",description:"Điều này sẽ xóa khóa truy cập {key} vĩnh viễn với tên {name}, được sử dụng lần cuối vào {time}, {timeAge}",confirm_desc:"Vui lòng nhập {name} để xóa",remark:"Tên Khóa Truy Cập",remarkInvalid:"Tên Khóa truy cập là bắt buộc",passport:"Chọn hộ chiếu cho khóa truy cập để cấp hoặc hạn chế quyền",expireTime:"Đặt ngày hết hạn cho khóa truy cập để đảm bảo an ninh tốt hơn",authType:"Loại xác thực",resourceType:"Loại Tài Nguyên",resourceId:"ID Tài nguyên",component:"Thành phần",expired:"{time} hết hạn",accessKeySecret:"Khóa Truy cập Bí mật",simple:"Đơn giản",signature:"Chữ ký",signatureDesc:"Tiêu chuẩn bảo mật cấp doanh nghiệp sử dụng mật mã. Yêu cầu tích hợp mã với SDK (@blocklet/server-js), lý tưởng cho các kịch bản có yêu cầu bảo mật cao và truyền dữ liệu quan trọng",simpleDesc:"Cơ chế Token Bearer nhẹ, tương tự như OpenAPI Key, hỗ trợ các cuộc gọi API RESTful và tích hợp dịch vụ của bên thứ ba. Không cần mã hóa, tích hợp nhanh chóng thông qua Header HTTP, hoàn hảo cho phát triển nhanh",viewSecret:"Bạn có thể truy cập khóa bí mật sau này trong trang chi tiết của khóa truy cập",usage:"Sử dụng",listTitle:"Quản lý truy cập API an toàn bằng Khóa Truy cập",tooltipTitle:"Tạo và quản lý thông tin xác thực cho phép các hệ thống đáng tin cậy tương tác với ứng dụng của bạn một cách lập trình. Khóa truy cập cho phép tự động hóa an toàn và tích hợp liền mạch trên các công cụ và dịch vụ của bạn."},webhook:{add:"Thêm tích hợp",delTitle:"Xóa tích hợp",requiredError:"Vui lòng cung cấp một {type} hợp lệ",confirm_desc:"Vui lòng nhập {name} để xóa",test:"Kiểm tra",description:"Điều này sẽ xóa vĩnh viễn tích hợp với ID {id}",columns:{description:"Xin chào, ID",params:"Tham số",createdAt:"Tạo vào"},testSuccess:"Tin nhắn kiểm tra đã gửi thành công",duplicateError:"URL đã tồn tại",updateSuccess:"Cập nhật trạng thái thành công"},dns:{step1Title:"Đăng nhập vào nhà đăng ký miền của bạn",step1Desc1:"Đăng nhập vào nhà đăng ký miền của bạn, tìm trang quản lý miền và tìm trang cài đặt máy chủ tên. Bạn có thể tìm nhà đăng ký miền của mình tại",step2Title:"2. Tìm cài đặt DNS cho {url}",step2Desc:'Điều này có thể được gọi là "Quản lý DNS", "Cài đặt nâng cao", hoặc tương tự.',step3Title:"3. Thêm các bản ghi DNS sau",step3Desc:'Tên có thể được gọi là "host", "hostname" hoặc "alias"'},domain:{addingDomain:"Đang thêm domain...",checkingResolvable:"Đang kiểm tra trạng thái miền...",cannotResolve:"{domain} không thể được giải quyết, vui lòng kiểm tra cấu hình DNS của bạn",resolvedAddressError:"{domain} chưa được cấu hình chính xác với bản ghi CNAME trỏ đến {curDomain}",invalidDNSReminder:"{error}. Tuy nhiên, bạn có thể tiếp tục thêm domain, nhưng việc tạo chứng chỉ tự động không khả dụng.",continueAdd:"Tiếp tục Thêm",conflictTitle:"{domain} đã được sử dụng",conflictDescription:'{domain} đang được sử dụng bởi "{title}". Bằng cách nhấp vào xác nhận, domain sẽ bị xóa khỏi "{from}" và được thêm vào "{to}".'},aigne:{modelAdapter:"Nhà cung cấp Mô hình",modelName:"Tên Mẫu",desc:{modelAdapter:"Nền tảng cung cấp dịch vụ mô hình AI",modelName:"Phiên bản model cụ thể hoặc tên model",key:"Khóa API {provider} được sử dụng để xác thực",baseUrl:"Nhập URL của instance AIGNE Hub của bạn (ví dụ, https://hub.aigne.io). Sử dụng của bạn nếu bạn tự lưu trữ.",accessKeyId:"Khóa ID duy nhất để truy cập mô hình",secretAccessKey:"Khóa bí mật kết hợp với ID khóa truy cập",docLink:"Xem tài liệu chính thức để biết thêm chi tiết và tham khảo API"},failed:"Lưu cấu hình AIGNE thất bại",authorizeAigneHub:"Kết nối với {name}",baseUrl:"URL Hub AIGNE",disconnect:"Ngắt kết nối",disconnectConfirm:"Bạn có chắc muốn ngắt kết nối khỏi AIGNE Hub không? Điều này sẽ xóa cấu hình AI hiện tại.",disconnectSuccess:"Ngắt kết nối thành công với AIGNE Hub",disconnectFailed:"Không thể ngắt kết nối từ AIGNE Hub",testConnection:"Kiểm tra kết nối {provider}",invalidUrl:"URL {provider} không hợp lệ",description:"Cấu hình hiện tại sẽ có hiệu lực khi {name} đang chạy. Cần lưu và khởi động lại Blocklet để có hiệu lực.",revokeUrlAuthTitle:"Xác nhận thay đổi {url}?",revokeUrlAuth:"Bạn có chắc muốn thay đổi {url}? Sau khi sửa đổi, quyền cấp phép của bạn sẽ không hợp lệ và cần được cấp phép lại!",testSuccess:"Đã kết nối thành công với AIGNE Hub",check:"Kiểm tra",apiKeyNotAuthorized:"Khóa API không được phép. Vui lòng nhấn nút kết nối với AIGNE Hub để cấp quyền",switchUser:"Chuyển Người Dùng",connectTimeOut:"Kết nối đến {provider} hết thời gian, vui lòng thử lại sau",restart:{title:"Khởi động lại Blocklet",connectedContent:"Blocklet của bạn hiện đang kết nối với {provider}. Cấu hình sẽ có hiệu lực sau khi khởi động lại. Bạn muốn khởi động lại ngay bây giờ?",notConnectedContent:"Blocklet của bạn hiện đang ngắt kết nối với {provider}. Cấu hình sẽ có hiệu lực sau khi khởi động lại. Bạn có muốn khởi động lại ngay không?",confirm:"Khởi Động Lại Ngay",cancel:"Khởi Động Lại Sau"},testFailed:"Không thể kết nối với AIGNE Hub. Vui lòng kiểm tra URL hoặc mạng của bạn.",addCredits:"Mua Tín Dụng",transaction:"Giao dịch",connected:"Kết nối thành công",account:"Thông Tin Tài Khoản",pendingCredit:"Các Khoản Phí Chưa Thanh Toán",infinite:"Không giới hạn",config:"Cấu hình AIGNE Hub"}},notification:{title:"Thông báo",history:"Lịch sử",channelSettings:"Cài đặt kênh",empty:"Chưa có hoạt động",viewAll:"Xem Tất Cả",showRead:"Hiển thị Đọc",markAllAsRead:"Đánh dấu tất cả là đã đọc",markAsRead:"Đánh dấu đã đọc",proceed:"Tiếp tục",checkingForUpdates:"Đang kiểm tra cập nhật...",email:{enable:"Bật thông báo",from:"Người gửi Email",host:"Host máy chủ SMTP",port:"Cổng Server SMTP",user:"Tên người dùng SMTP",secure:"Kết nối an toàn",password:"Mật khẩu SMTP",fromRequired:"Người gửi email là bắt buộc",fromInvalid:"Người gửi email không hợp lệ",receiverRequired:"Người nhận email bắt buộc",receiverInvalid:"Người nhận email không hợp lệ",hostRequired:"Máy chủ SMTP cần được cung cấp",hostInvalid:"Máy chủ SMTP không hợp lệ",portRequired:"Cổng máy chủ SMTP là bắt buộc",portInvalid:"Cổng máy chủ SMTP không hợp lệ, cổng phải từ 1 đến 65535",userRequired:"Cần nhập tên người dùng máy chủ SMTP",passwordRequired:"Yêu cầu mật khẩu người dùng máy chủ SMTP",testSuccess:"Gửi email kiểm tra thành công",testFailed:"Gửi email thử thất bại",testReceiver:"Người nhận Email",testSendEmail:"Thử gửi email",inputTestReceiver:"Vui lòng nhập email nhận kiểm tra",disable:"Hủy đăng ký thông báo qua email",disableDescription:"Sau khi hủy đăng ký, bạn sẽ không còn nhận được thông báo qua email nữa. Để nhận thông báo qua email, bạn có thể đăng ký lại trang này.",unsubscribe:"Hủy đăng ký thông báo qua email",unsubscribeDescription:"Sau khi hủy đăng ký, bạn sẽ không còn nhận được bất kỳ thông báo qua email nào nữa.",subscribe:"Đăng ký",subscribeDescription:"Để nhận thông báo qua email, bạn có thể đăng ký lại trên trang cài đặt.",companyName:"Tên Công ty",companyLink:"Liên kết Công ty",companyAddress:"Địa chỉ Công ty",supportEmail:"Email Hỗ trợ",emailInvalid:"Email không hợp lệ",linkInvalid:"Liên kết không hợp lệ, phải bắt đầu bằng http hoặc https",signature:"Chữ ký",signatureTooltip:"Chữ ký email được sử dụng ở cuối để cung cấp cho người nhận thông tin quan trọng về người gửi."},wallet:{description:"Thông báo Wallet DID luôn được bật cho tất cả người dùng."},webhooks:{description:"Thông báo gửi qua webhooks luôn được bật cho tất cả người dùng."},comingSoon:"Có thêm kênh thông báo đang được xây dựng",unsubscribe:"Huỷ đăng ký",unsubscribeSucceed:"Hủy đăng ký thành công",unsubscribeFailed:"Hủy đăng ký không thành công",unsubscribeTokenRequired:"Mã token hủy đăng ký bắt buộc",unsubscribeTokenExpired:"Mã hủy đăng ký đã hết hạn",unsubscribeTokenInvalid:"Mã hủy đăng ký không hợp lệ",installComponentError:"Không tìm thấy thành phần {name} đã gỡ cài đặt",installingComponent:"Đang cài đặt thành phần {name}",pushKit:{enable:"Bật thông báo",endpoint:"PushKit endpoint",endpointInvalid:"Điểm cuối PushKit là URL không hợp lệ",testSuccess:"Đẩy thử PushKit thành công",testFailed:"Thử nghiệm gửi PushKit không thành công",testReceiver:"Máy thu PushKit",testSend:"Thử nghiệm đẩy push-kit",inputTestReceiver:"Vui lòng nhập máy thu thử nghiệm",receiverRequired:"Cần có bộ thu PushKit",pushPath:"Đường dẫn api cho push-kit (mặc định /api/push)",did:"PushKit Blocklet DID",customOptions:"Tùy Chọn Tùy Chỉnh"},notificationDetails:"Chi tiết thông báo",receiver:"Người nhận",sendStatus:{success:"Đã gửi",failed:"Thất bại",sentTime:"Gửi vào lúc: {date}",pending:"Đang chờ",reason:{enabled:"Người dùng đã bật thông báo {channel}",disabled:"Người dùng chưa bật thông báo {channel}",unavailable:"Blocklet hiện tại chưa cấu hình thông báo {channel}",available:"Blocklet hiện tại đã cấu hình thông báo {channel}",notSent:"Tin nhắn hiện tại chưa được gửi đến {channel}",offline:"Người dùng đang ngoại tuyến"},count:"{count}",total:"Tổng cộng"},filter:"Lọc",notificationPreview:"Xem trước Thông báo",resend:"Gửi lại",resendLimit:"Bạn có thể gửi lại thông báo tối đa ba lần mỗi ngày.",from:"Từ",to:"Cho",body:"Cơ thể",notificationTitle:"Tiêu đề",createdAt:"Tạo lúc",status:"Trạng thái",system:"Hệ thống",severity:"Mức độ nghiêm trọng",config:"Configs",selectChannels:"Chọn Kênh",selectChannelsTip:"Chọn các kênh để gửi lại",resendFailedOnly:"Gửi lại chỉ đến các kênh đã thất bại",statistics:"Thống kê",allSender:"Tất cả Người gửi",allSeverity:"Tất cả mức độ nghiêm trọng",severityType:{info:"Info",success:"Thành công",warning:"Cảnh báo",error:"Lỗi"},clear:"Xóa",allDone:"Hoàn tất",filterType:{all:"Tất cả",unread:"Chưa đọc"},viewMore:"Xem Thêm"},router:{routerSetting:"Domínio và URL",certSetting:"Chứng chỉ SSL",defaultSite:"Mặc định",urlHelperText:"URL không bắt đầu bằng HTTP/HTTPS được coi là đường dẫn tương đối",empty:"Nhấp vào Tác vụ để thiết lập Bản đồ URL",healthy:{ok:"Blocklet hoặc dịch vụ đang chạy",error:"Khối hoặc dịch vụ không chạy hoặc chưa được cài đặt"},service:{select:"Chọn Dịch vụ Blocklet (Tùy chọn)",what:"Dịch vụ Blocklet là các đường ống thực hiện trước yêu cầu trước khi chuyển hướng đến blocklet trên"},nonProvider:{title:"Cảnh báo Thay đổi Động cơ",description:"Nếu bạn thay đổi động cơ thành none, trang hiện tại của bạn có thể không hoạt động đúng vì động cơ trước đó sẽ bị dừng, bạn có chắc chắn tiếp tục không?",confirm:"Tôi hiểu, tiếp tục"},validation:{urlRequired:"URL là bắt buộc",redirectCodeRequired:"Mã chuyển hướng bắt buộc",didRequired:"Blocklet là bắt buộc",pathPrefixTooLong:"Tiền tố URL không được vượt quá {length} ký tự",pathPrefixCannotBeEmpty:"Tiền tố URL không được để trống",domainRequired:"Yêu cầu tên miền máy chủ",invalidUrl:"Vui lòng cung cấp một URL hợp lệ",pathPrefixRequired:"Yêu cầu tiền tố URL",redirectUrlRequired:"Yêu cầu URL chuyển hướng",rewriteUrlRequired:"Cần phải viết lại URL"},domain:{addSite:"Thêm Trang",validate:{emptyTip:"Tên miền trang web không thể để trống",suffixTip:"Tên miền trang web không thể bao gồm {suffix}"},add:{title:"Thêm Tên Miền",description:"Vui lòng cung cấp tên miền hợp lệ",confirm:"Thêm",cancel:"Hủy bỏ",blocklet:"Chọn Blocklet",redirect:"Hướng dẫn chuyển hướng lưu lượng?",port:"Cổng nào mà trình xử lý yêu cầu của bạn cần nghe?",portTip:"Mặc định là cổng chính của trình xử lý yêu cầu, bạn có thể tùy chỉnh điều này",type:"Người điều khiển giao thông",component:"Chọn thành phần",pageGroup:"Nhóm Trang",pageGroupTip:"Thành phần này có thể hiển thị bất kỳ nhóm trang nào được liệt kê ở trên, để trống để hiển thị tất cả các trang"},update:{title:"Cập nhật tên miền trang web",label:"Tên miền trang web",description:"Vui lòng cung cấp một tên miền trang web hợp lệ"},setup:{tipStart:"Thêm các bản ghi DNS cho tên miền",tipEnd:"Theo hướng dẫn dưới đây",recordType:"Loại Bản ghi",recordValue:"Giá trị ghi"},verify:{ok:"Giải quyết tên miền bình thường",notResolved:"Miền này không được giải quyết hoặc truy cập, vui lòng kiểm tra cấu hình DNS của bạn."},https:{ok:"Tên miền này đã kích hoạt https",bad:"Tên miền này chưa bật https"},delete:{title:"Xóa trang",description:'Bằng cách xác nhận, bạn sẽ xóa trang web "{name}" hiện có của bạn. Nhập "{name}" vào phần dưới và chọn Xóa để hoàn tất thay đổi, hoặc chọn Hủy bỏ nếu bạn muốn giữ lại trang web của bạn.',confirm_desc:"Vui lòng nhập {name} để xác nhận"}},domainAlias:{nftDomain:"Cấu hình tự động với Tên DID",showTipHint:"Làm thế nào để cấu hình giải quyết tên miền?",add:{title:"Thêm tên miền bổ sung",domainDescription:"Vui lòng cung cấp tên miền hợp lệ",forceTip:"Thêm bắt buộc nếu tên miền đã tồn tại",helperText:"Nếu nhập một URL HTTP hoặc HTTPS, nó sẽ tự động chuyển đổi thành tên miền.",isDidDomainError:"Miền này là Miền DID. Vui lòng thêm nó bằng phương pháp cấu hình miền tự động.",tips:"Bạn có thể nhập tên miền mua từ DID Names hoặc bất kỳ tên miền nào khác. Nếu đó là Miền DID, bạn phải xuất trình NFT Miền DID để tiếp tục."},addCustomDomain:{name:"Tên miền tùy chỉnh"},addDomainNFT:{showNFT:"Cấu hình tên miền tự động",tips:"Bạn có thể nhập một domain đã mua từ DID Names. Nếu phát hiện một Domain DID, bạn phải xuất trình NFT Domain DID để tiếp tục.",connect:{scan:"Sử dụng một trong các phương pháp sau để kết nối {domain} với {appName}",confirm:"Xác nhận trong tài khoản của bạn",success:"Cho phép thành công",title:"Kết nối tên DID với {appName}"},buyTip:"Tên DID sẽ tự động phân giải tên miền, không cần cấu hình thủ công và blocklet sẽ tự động cập nhật bản ghi phân giải tên miền khi cần. Nếu bạn chưa có DID Domain NFT, ",buy:"Mua Tên miền DID",topLevelDidDomainHint:"Đối với Miền DID, nếu bạn nhập một miền cấp cao nhất (ví dụ: example.com), nó sẽ tự động được cấu hình thành www.example.com",authorizeFailed:"Không lấy được thông tin NFT miền, vui lòng thử lại!"},delete:{title:"Xóa",description:'Sau khi xóa "{domain}", truy cập vào alias đó có thể không được xử lý đúng cách.',confirmPlaceholder:'Nhập "{domain}" để xóa'},custom:"Tên miền tùy chỉnh",noCustom:"Không có miền tùy chỉnh",noCustomTip:"Chưa có tên miền tùy chỉnh nào được cấu hình với trang web của bạn. Để tăng cường bảo mật và trải nghiệm người dùng tốt hơn, chúng tôi khuyên bạn nên cấu hình tên miền tùy chỉnh của riêng mình. Nhấp vào bên dưới để bắt đầu."},domainSecurity:{title:"Bảo mật miền",cors:{title:"Tên miền CORS được phép",description:'Danh sách tên miền có thể gửi yêu cầu gốc chéo đến {name}, phân tách bằng dấu phẩy, sử dụng "*" để cho phép bất kỳ ai, điều này không được khuyến nghị',domainInvalid:"Vui lòng nhập một danh sách tên miền hợp lệ"}},rule:{add:{title:"Thêm Ánh xạ địa chỉ URL",confirm:"Thêm",pathPrefix:"Tiền tố URL là gì?",pathPrefixTip:"Nếu bạn đặt tiền tố là '/tiền-tố-của-tôi', thì tất cả các yêu cầu bắt đầu bằng tiền tố đó sẽ được định tuyến đến khối đã được cấu hình",blocklet:"Blocklet nào sẽ xử lý những yêu cầu đó?",port:"Cổng nào của blocklet sẽ xử lý các yêu cầu?",portTip:"Mặc định là cổng chính của blocklet, nếu blocklet của bạn lắng nghe trên nhiều cổng, bạn có thể tùy chỉnh điều này",responseType:"Loại phản hồi",responseBody:"Nội dung phản hồi",responseBodyTip:"Dán nội dung đáp ứng của bạn vào đây, không vượt quá 4096 ký tự",responseBodyRequired:"Nội dung phản hồi không thể trống"},delete:{title:"Xóa Liên kết URL",description:'Bằng cách xác nhận, bạn sẽ xóa Bản đồ URL "{name}" hiện có của bạn. Nhập "{name}" vào bên dưới và chọn Xóa để hoàn tất thay đổi hoặc chọn Hủy nếu bạn muốn giữ Bản đồ URL của bạn.',confirm_desc:"Vui lòng nhập {name} để xóa",cancel:"Hủy"},update:{title:"Cập nhật Gán địa chỉ URL",confirm:"Có, Cập nhật",cancel:"Hủy bỏ"}},cert:{name:"Tên Chứng chỉ",domain:"Tên miền",action:"Hành động",commonName:"Tên thông thường",boundDomains:"Tên miền",source:"Nguồn",expired:"Hết hạn",leftDays:"ngày còn lại",issuedOn:"Được phát hành vào",expiryOn:"Hết hạn vào",fingerprintAlg:"Thuật toán Vân tay",validityPeriod:"Thời hạn hiệu lực",matchedSites:"Các trang phù hợp",upload:"Tải lên thủ công",publicCertHelperText:"Chứng chỉ công cộng có thể được tải xuống",nonPublicCertHelperText:"Không thể tải xuống chứng chỉ không công khai",protectedCertHelperText:"Chứng chỉ bảo vệ không thể chỉnh sửa",unprotectedCertHelperText:"Chứng chỉ chưa được bảo vệ có thể được chỉnh sửa",issuing:"Đang tạo chứng chỉ",sourceTypes:{upload:"Tải lên bằng tay",lets_encrypt:"Hãy Mã hóa"},table:{nodata:"Không có dữ liệu"},delete:{title:"Xóa Chứng chỉ",description:"Xác nhận xóa chứng chỉ của miền {domain}? Xóa nó có thể ảnh hưởng đến các dịch vụ liên quan. Vui lòng xác nhận rằng nó an toàn trước khi tiếp tục xóa.",confirm:"Xác nhận"},nginx:{title:"Cập nhật Chứng chỉ",titleAdd:"Thêm Chứng chỉ",pem:"Tập tin chứng chỉ SSL",pemTip:'Vui lòng thả tệp chứng chỉ máy chủ của bạn vào đây, tệp nên kết thúc bằng ".pem" hoặc ".crt"',key:"Tệp Khóa Riêng",keyTip:"Vui lòng thả tệp khóa riêng của máy chủ của bạn vào đây, nó phải kết thúc bằng '.pem' hoặc '.key'",confirm:"Lưu",cancel:"Hủy",invalidFile:"Bạn đã chọn một tệp không hợp lệ",empty:"Chưa chọn tệp nào",source:"Nguồn",sourceTypes:{upload:"Tải lên thủ công",lets_encrypt:"Hãy mã hóa"}},detail:{title:"Chi tiết Chứng chỉ"},genLetsEncryptCert:{title:"Tạo chứng chỉ Let's Encrypt",dnsTip:"Vui lòng đảm bảo tên miền đã trỏ đến Máy chủ Blocklet hiện tại.",description:"Thêm một chứng chỉ sẽ làm cho dịch vụ an toàn hơn, và Blocklet Server sẽ tự động gia hạn chứng chỉ trước khi hết hạn."}},gateway:{reqLimit:{switchLabel:"Bật giới hạn yêu cầu đồng thời để có hiệu suất đáng tin cậy",rate:"Giới hạn yêu cầu đồng thời mỗi IP tới {rate} mỗi giây (giới hạn mỗi IP)",title:"Giới hạn yêu cầu",global:"Giới hạn các yêu cầu đồng thời được gateway xử lý tới {global} mỗi giây (giới hạn toàn cục)",burstFactor:"Hệ số đột biến cho việc giới hạn tốc độ, áp dụng cho cả giới hạn toàn cầu và giới hạn theo IP (toàn cầu: {global}, theo IP: {rate})",methods:"Giới hạn yêu cầu đồng thời theo IP cho các phương thức sau",burstDelay:"Sự chậm trễ khi các yêu cầu đột biến vượt quá giới hạn mỗi IP ({delay} giây)"},cacheEnabled:{switchLabel:"Bật bộ nhớ đệm gateway để tăng hiệu suất",title:"Bộ nhớ đệm Gateway"},blockPolicy:{switchLabel:"Chặn Yêu Cầu",addItem:"Thêm Mục",blacklistDesc:"Yêu cầu từ các IP này sẽ bị chặn khỏi việc truy cập vào Máy chủ này và tất cả các Blocklet",inputPlaceholder:"Nhập địa chỉ IP, phạm vi CIDR hoặc URL",invalidItem:"Địa chỉ IP, phạm vi CIDR hoặc URL không hợp lệ",title:"Chặn Yêu cầu",autoBlocking:{switchLabel:"Chặn yêu cầu xấu bằng cách phát hiện thời gian thực",windowSize:"Kích thước cửa sổ thời gian để đếm yêu cầu (giây)",windowQuota:"Số lượng yêu cầu tối đa (mỗi IP) được phép trong cửa sổ",blockDuration:"Thời gian chặn người dùng theo IP khi vượt quá giới hạn trong cửa sổ (giây)",statusCodes:"Mã trạng thái cần kiểm tra"}},proxyPolicy:{switchLabel:"Chạy sau các proxy",trustRecursive:"Tin cậy các proxy theo cách đệ quy",trustRecursiveDesc:"Sử dụng địa chỉ IP ngoài cùng bên trái trong chuỗi X-Forwarded-For",trustedProxies:"Proxy Đáng Tin Cậy",trustedProxiesDesc:"Yêu cầu từ các IP này sẽ được tin cậy để lấy IP thực của khách hàng",realIpHeaderLabel:"Đầu IP Khách hàng",realIpHeaderDesc:"Nếu máy chủ Blocklet đang chạy đằng sau các proxy như CloudFront, bạn có thể đặt tiêu đề của IP thực của khách hàng ở đây.",addItem:"Thêm mục",inputPlaceholder:"Nhập địa chỉ IP, phạm vi CIDR",invalidItem:"Địa chỉ IP không hợp lệ, phạm vi CIDR",title:"Chính sách Proxy"},wafPolicy:{switchLabel:"Phát hiện và chặn các yêu cầu xấu với ModSecurity",modeDesc:"Chế độ modsecurity (cần có mô-đun modsecurity)",mode:{detectOnly:"Chỉ phát hiện (sẽ không chặn yêu cầu)",on:"Bật (sẽ chặn yêu cầu)"},logLevelDesc:"Mức nhật ký cho ModSecurity (0-9), 0 có nghĩa là tắt nhật ký kiểm tra",inboundAnomalyScoreThresholdDesc:"Ngưỡng điểm bất thường đầu vào (1-100), giá trị thấp hơn nghĩa là nghiêm ngặt hơn",outboundAnomalyScoreThresholdDesc:"Ngưỡng điểm bất thường đầu ra (1-100), giá trị thấp hơn có nghĩa nghiêm ngặt hơn",docDesc:"Kiểm tra tài liệu để biết cách thiết lập modsecurity",title:"Tường lửa Ứng dụng Web"}}},noMatch:{desc:"Chúng tôi không thể tìm thấy trang bạn đang tìm kiếm"},health:{connectionErrorTip:"Blocklet Server không thể kết nối với mạng, vui lòng kiểm tra xem Blocklet Server đã bị dừng hoặc có vấn đề về mạng",connectionRecoveryTip:"Đã khôi phục kết nối với máy chủ Blocklet",connectionStoppedTip:"Máy chủ Blocklet đã được tắt",wrongAccessUrlTip:"Địa chỉ truy cập máy chủ Blocklet không đúng, vui lòng sử dụng địa chỉ truy cập đúng"},debug:{title:"Máy chủ Blocklet của bạn đã hoạt động!"},team:{invite:{action:"Mời Mới",setting:"Cài đặt Mời",enabled:"Vô hiệu hóa cài đặt này để hạn chế lời mời người dùng mới chỉ cho chủ sở hữu/quản trị viên",disabled:"Bật cài đặt này để cho phép bất kỳ người dùng nào mời người dùng mới",inviter:"Được Mời Bởi"},add:"Thêm Mới",member:{name:"Tên",passport:"Hộ chiếu",passports:"Hộ chiếu",lastLogin:"Lần đăng nhập cuối",lastLoginIp:"IP đăng nhập gần nhất",source:"Đăng ký Nguồn",source_derived:"Bắt nguồn từ OAuth",source_wallet:"Ví DID",filter:"Lọc theo",blockAccess:"Cấm đăng nhập",blockAccessDescription:"Người dùng sẽ không thể kết nối với ứng dụng này",allowAccess:"Cho phép Đăng nhập",allowAccessDescription:"Người dùng sẽ có thể kết nối với ứng dụng này",updateRole:"Cập nhật Vai trò",removeUser:"Xóa Người dùng",removeUserDescription:'Xác nhận xóa người dùng "{name}"?',revokePassport:"Thu hồi Hộ chiếu",revokePassportDescription:"Một khi hộ chiếu bị thu hồi, người giữ hộ chiếu không thể sử dụng nó để đăng nhập lại, bạn có chắc chắn muốn tiếp tục không?",enablePassport:"Kích hoạt Hộ chiếu",enablePassportDescription:"Sau khi hồ sơ hủy bỏ được kích hoạt lại, chủ sở hữu hộ chiếu có thể sử dụng nó để đăng nhập lại, bạn có chắc chắn muốn tiếp tục không?",passportPermissionTitle:"Hộ chiếu có các quyền sau:",search:"Tìm Kiếm Thành Viên",onlyApprovedMember:"Chỉ Hiện Được Phê Duyệt",inviteDialog:{createInviteLink:"Tạo liên kết mời",createSuccessTip:"Liên kết mời đã được tạo thành công, nhấn để sao chép và gửi liên kết cho thành viên được mời. Vui lòng lưu ý rằng liên kết mời này không thể sử dụng lại và sẽ hết hạn vào {expireDate}."},error:{passportEmpty:"Hộ chiếu không được để trống"},connectedAccounts:"Tài khoản Đã kết nối",connections:"Kết nối",federated:"Liên minh",switch:{did:"Chuyển đổi DID",profile:"Chuyển đổi Hồ sơ",passport:"Đổi Hộ chiếu"},settings:{notification:"Thông báo",email:"Gửi email cho tôi khi có một số sự kiện xảy ra",wallet:"Gửi thông báo đến ví của tôi khi có một số sự kiện xảy ra",phone:"Gửi tin nhắn đến tôi khi các sự kiện xảy ra",webhook:"Webhooks",add:"Thêm webhook mới",url:"URL tùy chỉnh",slack:"Slack Webhook",tested:"Tin nhắn kiểm tra đã được gửi"},activeUserSessions:"Phiên người dùng hoạt động",forceLogout:"Đăng xuất bắt buộc",forceLogoutDescription:"Xác nhận đăng xuất buộc người dùng này?",openProfile:"Xem hồ sơ",removeUserSuccess:"Người dùng đã bị xóa thành công",forceLogoutRemoveDescription:"Xác nhận để buộc đăng xuất người dùng này (Cũng xoá tất cả phiên người dùng)?"},transferNode:{name:"Chuyển quyền sở hữu",inviteDialog:{title:"Chuyển máy chủ Blocklet",tips:{progress:"Việc chuyển đổi máy chủ cần được người nhận chấp nhận để hoàn tất hoạt động chuyển đổi và một khi người nhận đã chấp nhận, bạn không thể đăng nhập vào máy chủ với hộ chiếu hiện tại nữa.",newOwnerPermissions:"Chủ sở hữu mới sẽ có quyền quản lý tất cả các hoạt động như thành viên, hộ chiếu và Blocklets.",revoke:'Nếu bạn muốn rút lại lời mời chuyển giao, bạn có thể xóa liên kết mời trên trang "Nhóm -> Thành viên -> Mời".'},createInviteLink:"Tạo Liên kết Mời",createSuccessTip:"Liên kết mời đã được tạo thành công, nhấp để sao chép và gửi liên kết đến thành viên được mời, lưu ý rằng liên kết mời này không thể tái sử dụng và sẽ hết hạn vào {expireDate}."},delegateDialog:{title:"Yêu cầu ủy quyền",scan:"Sử dụng các phương pháp sau để ủy quyền cho máy chủ chuyển nhượng NFT quyền sở hữu máy chủ.",confirm:"Xác nhận trong tài khoản của bạn",success:"Xác thực thành công"}},transferApp:{name:"Chuyển Quyền Sở Hữu",transferDialog:{title:"Ứng dụng Chuyển khoản",tips:{progress:"Yêu cầu chuyển tiền phải được người nhận chấp nhận để hoàn tất thao tác chuyển tiền, và một khi người nhận chấp nhận, bạn không thể đăng nhập vào ứng dụng bằng hộ chiếu hiện tại.",newOwnerPermissions:"Chủ sở hữu mới sẽ có quyền quản lý tất cả các hoạt động như thành viên, hộ chiếu và cài đặt."},createTransferLink:"Tạo liên kết Chuyển khoản",createSuccessTip1:'Liên kết chuyển nhượng đã được tạo thành công, người được mời phải sử dụng <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> để nhận quyền sở hữu ứng dụng',createSuccessTip2:"Vui lòng nhấp để sao chép và gửi liên kết đến thành viên được mời, lưu ý rằng liên kết chuyển này không thể tái sử dụng và sẽ hết hạn vào ngày {expireDate}. Liên kết chuyển của bạn chỉ được hiển thị một lần và sẽ không thể xem được sau khi đóng hộp thoại này.",createSuccessTip3:"Sau khi chuyển thành công, ứng dụng sẽ tự động khởi động lại để thay đổi có hiệu lực.",link:"Liên kết chuyển tiền",iKnow:"Tôi đã sao chép và lưu liên kết"},connectDialog:{title:"Yêu cầu Xin phép",scan:"Sử dụng các phương pháp sau để ủy quyền cho ứng dụng chuyển nhượng quyền sở hữu.",confirm:"Xác nhận trong tài khoản của bạn",success:"Xác thực thành công"},receiveDialog:{title:"Nhận Quyền Sở Hữu Ứng Dụng",scan:"Sử dụng các phương pháp sau để nhận quyền sở hữu ứng dụng.",confirm:"Xác nhận trong tài khoản của bạn",success:"Nhận Quyền Sở Hữu Thành Công"},successTitle:"Bạn đã trở thành chủ sở hữu mới của ứng dụng này",visitDashboard:"Truy cập Bảng điều khiển Ứng dụng",description:"Bạn có thể chuyển quyền sở hữu ứng dụng của mình cho ví hoặc người khác."},permission:{create:{title:"Tạo Quyền",description:"Định dạng: <hành động>_<tài nguyên>"},delete:{title:"Xóa Quyền",description:"Xác nhận xóa {name}?"},error:{actionEmpty:"Hành động không thể trống",resourceEmpty:"Tài nguyên không thể trống",permissionTooLong:"Quyền không được vượt quá {length} ký tự",descriptionTooLong:"Mô tả không được vượt quá {length} ký tự"}},passport:{create:{title:"Tạo hộ chiếu",titleTip:"Tiêu đề không thể chỉnh sửa sau khi tạo, nên giới hạn trong 14 chữ cái"},bind:{title:"Gán Phân Quyền",roleTip:"Bạn sẽ nhận được tất cả các quyền của hộ chiếu đã chọn sau khi ràng buộc",permissionTip:"Bạn sẽ nhận được các quyền đã chọn sau khi ràng buộc",transferLeftTitle:"Tất cả các quyền",transferRightTitle:"Được cấp quyền"},delete:{title:"Xóa Hộ chiếu",description:"Các hộ chiếu mà người dùng đang sở hữu sẽ mất mọi quyền sau khi bị xóa. Bạn có chắc chắn muốn tiếp tục?"},error:{titleEmpty:"Tiêu đề không thể bỏ trống",titleTooLong:"Tiêu đề không được vượt quá {length} ký tự",descriptionEmpty:"Mô tả không thể để trống"},issuance:{pending:"Đang chờ",create:{title:"Tạo liên kết"},delete:{title:"Xóa Liên kết Nhận",description:"Xác nhận xóa {link}?"}},issue:"Phát hành hộ chiếu",disableIssuance:"Vô hiệu hóa Cấp phát Hộ chiếu",enableIssuance:"Bật Phát Hành Hộ Chiếu",disableIssuanceTip:'Các hoạt động "Cấp hộ chiếu", "Mời thành viên" và các hoạt động khác sẽ bị vô hiệu',enableIssuanceTip:"Cấp Hộ chiếu",trustedPassportIssuers:"Nhà cấp hộ chiếu đáng tin cậy",trustedIssuers:"Người phát hành đáng tin cậy",trustedFactories:"Bộ sưu tập NFT đáng tin cậy",trustedFactoriesTip:"Quản lý bộ sưu tập NFT đáng tin cậy có thể được sử dụng để trao đổi cho hộ chiếu",searchFactoryAddress:"Tìm bộ sưu tập DID",configFactories:"Cấu hình Bộ sưu tập NFT Đáng tin cậy",configFactoriesTip:"Cho phép người dùng đổi NFT cho hộ chiếu",factoryAddress:"Địa chỉ Bộ sưu tập NFT",factory404:"Bộ sưu tập NFT không tìm thấy",factoryAddressTip:"Địa chỉ bộ sưu tập NFT phải tồn tại trên ArcBlock Main Chain",role:"Loại hộ chiếu",ttl:"Chính sách hết hạn Hộ chiếu",ttlNever:"Không bao giờ hết hạn",ttlMint:"Kể từ khi mua NFT",ttlExchange:"Kể từ Trao đổi Hộ chiếu",ttlNeverTip:"Hộ chiếu sẽ có giá trị cho đến khi bị thu hồi",ttlMintTip:"Hộ chiếu sẽ có giá trị từ khi mua NFT cho đến khi bạn chỉ định thời gian (ttl) hoặc thu hồi",ttlExchangeTip:"Hộ chiếu sẽ hợp lệ từ thời điểm người dùng đổi thành công cho đến khi bạn chỉ định ttl hoặc thu hồi",ttlTip:'"365d" có nghĩa là 365 ngày, bạn cũng có thể sử dụng "30 ngày" hoặc "24 giờ"',validUntil:"Có hiệu lực đến: {date}",externalPassport:"Hộ chiếu ngoại",notTrustedIssuerTip:"Hộ chiếu không thể được sử dụng vì người cấp không có trong danh sách người cấp phát đáng tin cậy",issuerDid:"DID NGƯỜI CÃƠ QUAN PHÁT HÀNH",addNodeToTrustedIssuers:"Thêm máy chủ hiện tại như một nhà phát hành hộ chiếu đáng tin cậy",revoked:"Rút lại",noPermission:"Không có quyền để thực hiện thao tác này",shouldNotDeleteCurrent:"Bạn không thể thu hồi hộ chiếu đang sử dụng hiện tại",mappingRule:"Quy tắc ánh xạ",defaultRule:"Luật mặc định",search:"Tìm Hộ Chiếu",searchIssuerDid:"Tìm kiếm Nhà phát hành DID",issueBy:"Vấn đề bởi {name}",configColor:"Cấu hình Màu Hộ Chiếu",configColorTip:"Tùy chỉnh màu hộ chiếu",color:"Màu Hộ Chiếu",description:"Sử dụng hộ chiếu này để kết nối {teamName} là {title}",displayBuiltin:"Được tích hợp sẵn",displayCustom:"Tùy chỉnh",typesTip:"Tùy chỉnh các loại hộ chiếu, phân chia bằng dấu phẩy",issuanceDate:"Ngày phát hành: {date}",sourceMaps:{recover:"Khôi phục",issue:"Đã phát hành",invite:"Được mời",trusted:"Đáng tin cậy"},related:"Hộ chiếu Liên quan",operationLogs:" Nhật ký hoạt động",owner:"Chủ sở hữu",status:"Trạng thái",statusMap:{valid:"Hợp lệ",revoked:"Đã thu hồi",expired:"Hết hạn"},view:"Quản lý Hộ chiếu",trustedPassportIssuersTip:"Quản lý các nhà phát hành hộ chiếu đáng tin cậy có thể được sử dụng để cấp hộ chiếu",issuanceTime:"Thời gian phát hành",relatedDescription:"Hộ chiếu hiện tại được lấy từ hộ chiếu sau",passportExpireTime:"Đặt ngày hết hạn cho Passport",customExpireTime:"Thời gian hết hạn tùy chỉnh",customExpireTimeIsInvalid:"Thời gian hết hạn tùy chỉnh không hợp lệ"},inviting:{link:"Liên kết Mời",inviter:"Người mời",delete:{title:"Xóa Liên kết Mời",description:"Xác nhận xóa {link}?"},disabledTip:"Lời mời không được kích hoạt"},whoCanAccess:{all:{title:"Dễ tiếp cận cho tất cả"},owner:{title:"Chỉ chủ sở hữu"},invited:{title:"Chỉ người dùng được mời"}},userFollowers:{follow:"Theo dõi",unfollow:"Bỏ theo dõi",followersOnly:"Chỉ hiển thị với người theo dõi",followers:"Người theo dõi",following:"Tiếp theo",emptyFollowing:"Bạn chưa theo dõi người dùng nào.",emptyFollowers:"Chưa có người theo dõi.",title:"Theo dõi",invitees:"Người được mời",emptyInvitees:"Bạn chưa mời ai cả."},orgs:{explain:"Cho phép người dùng tạo và tham gia tổ chức, phân công vai trò và quản lý tài nguyên.",description:"Mô tả",deleteConfirm:"Xác nhận xóa {name}?",members:"Thành viên",myCreated:"Tôi Đã Tạo",myJoined:"Đã tham gia của tôi",myCreatedEmpty:"Bạn chưa tạo tổ chức nào.",myJoinedEmpty:"Bạn chưa tham gia tổ chức nào.",deleteConfirmDescription:"Xóa tổ chức này sẽ xóa tất cả các vai trò và tài nguyên được liên kết với nó. Người dùng sẽ vẫn còn trong hệ thống nhưng mất vai trò của họ trong tổ chức này. Hành động này không thể hoàn tác.",active:"Đang hoạt động",deleteOrg:"Xóa Tổ Chức Hiện Tại",invitedAt:"Được mời vào lúc: {time}",joinedAt:"Đã tham gia vào: {time}",createNew:"Tạo Tổ Chức Mới",viewAll:"Xem Tất Cả Các Tổ Chức",validate:{nameEmpty:"Tên không được để trống",nameTooLong:"Tên không được vượt quá {length} ký tự",descriptionTooLong:"Mô tả không được vượt quá {length} ký tự"},mutate:{title:"{mode} Tổ chức",name:"Tên Tổ Chức",createSuccess:"Tổ chức được tạo thành công",updateSuccess:"Đã cập nhật tổ chức thành công",orgNotEnabled:"Tổ chức chưa được bật",maxMemberPerOrg:"Tổ chức có thể mời tối đa {maxMemberPerOrg} thành viên",maxOrgPerUser:"Bạn có thể tạo tối đa {maxOrgPerUser} tổ chức"},invite:{chooseUsersToInvite:"Chọn người dùng để mời",success:"Lời mời đã được gửi đến người dùng",pleaseSelectUsers:"Vui lòng chọn người dùng",pleaseSelectRole:"Vui lòng chọn vai trò",inviteExternalUsers:"Mời người dùng bên ngoài",failed:"{count} lời mời người dùng không thành công, vui lòng thử lại sau",remove:"Xóa người dùng",removeSuccess:"Người dùng đã xóa thành công",limit:"Giới hạn",limitTip:"Giới hạn thành viên tổ chức và tổ chức trên mỗi người dùng",maxMembers:"Tối đa thành viên mỗi org",maxOrgs:"Số lượng tổ chức tối đa trên mỗi người dùng",maxMembersTip:"Số lượng người dùng tối đa có thể được mời cho tổ chức này",inviteLinkSendToEmail:"Liên kết mời đã được gửi đến email ({email}), vui lòng kiểm tra",enterEmailAddress:"Vui lòng nhập địa chỉ email",inviteTitle:"Mời người dùng tham gia {orgName}"},member:{removeMemberConfirm:"Xác nhận xóa {name}?",removeMemberConfirmDescription:"Sau khi xóa, người dùng sẽ mất các vai trò và quyền hạn trong tổ chức. Hành động này không thể hoàn tác.",removeInvitingMember:"Xác nhận hủy lời mời {name}?",removeInvitingMemberDescription:"Sau khi xóa, người dùng sẽ không thể tham gia tổ chức và cần được mời lại. Hành động này không thể hoàn tác."}}},launcher:{provider:"Nhà cung cấp",adminUrl:"URL"},session:{blockAccess:"Bạn đã bị chặn khỏi truy cập vào máy chủ này"},launchBlocklet:{appInfo:"Thông tin ứng dụng",appInfoDesc:"Xác nhận thông tin ứng dụng",author:"Tác giả ứng dụng: {author}",setup:"Cài đặt Blocklet",redirect:"Chuyển hướng",alreadyRunning:"Ứng dụng {name} đã được chạy trên máy chủ Blocklet này",alreadyInstalled:"Ứng dụng {name} đã được cài đặt trên máy chủ Blocklet này",alreadyExists:"Ứng dụng này đã tồn tại, đang chuyển hướng...",purchased:"Đã Mua",purchase:"Mua hàng",nextStep:"Bước Tiếp theo",agreement:"Thỏa thuận Cấp phép",agreeAll:"Đồng ý & Tiếp tục",installing:"Đang cài đặt {appName} trên {serverName}, việc này có thể mất vài phút để hoàn thành, xin vui lòng đợi...",redirecting:"{appName} đã được cài đặt thành công, đang khởi động...",start:"Khởi động",launch:"Cài đặt Blocklet vào máy chủ",launchSuccess:"{appName} đã được khởi chạy thành công!",installSuccess:"Blocklet đã được cài đặt và khởi chạy thành công trên {serverName}",openInRegistry:"Xem trong Blocklet Store",subTitle:"Sẵn sàng cài đặt Blocklet {appName} trên {serverName}",installingSubTitle:"{appName} đang được cài đặt",access:"Mở ứng dụng",viewApplication:"Xem Ứng Dụng",newVersion:"Phiên bản mới",newVersionDesc:"Ứng dụng đã tồn tại, nhưng phiên bản hiện tại có thể nâng cấp",upgradeNow:"Nâng cấp Ngay",later:"Sau",introduction:"Giới thiệu",welcome:"Chào mừng bạn đến với Trình hướng dẫn Khởi chạy Blocklet",accept:"Tôi đồng ý với EULA của Blocklet",license:"Giấy phép ứng dụng",next:"Đồng ý với EULA và tiếp tục",purchaseApp:"Mua Blocklet",setupAppDesc:"Khởi tạo Blocklet của bạn",launched:"Hoàn thành",confirmInstall:"Xác nhận Cài đặt",dialog:{title:"Trở thành chủ sở hữu ứng dụng",nftFreeDescription:"Vui lòng giới thiệu không gian NFT ứng dụng và tạo tài khoản ứng dụng để tiếp tục",nftPaidDescription:"Vui lòng giới thiệu NFT không gian ứng dụng và mua NFT ứng dụng để tiếp tục",freeDescription:"Vui lòng tạo tài khoản ứng dụng để tiếp tục",paidDescription:"Vui lòng trình diễn mua NFT ứng dụng và tạo tài khoản ứng dụng để tiếp tục",confirm:"Xác nhận trong tài khoản của bạn",success:"Cho phép thành công",authorizationTimeout:"Hết thời gian ủy quyền"},waiting:{verifying:"Đang xác minh siêu dữ liệu ứng dụng...",downloading:"Đang tải xuống gói ứng dụng...",downloadingComponent:"Đang tải xuống {name}",extractingComponent:"Trích xuất {name}",extracting:"Đang trích xuất gói ứng dụng...",installing:"Đang cài đặt các thành phần ứng dụng...",installed:"Đã cài đặt",starting:"Bắt đầu ứng dụng...",done:"Ứng dụng của bạn đang khởi chạy...",parsing:"Đang phân tích meta dữ liệu ứng dụng...",initializing:"Đang khởi tạo cấu hình ứng dụng...",initializingOwner:"Đang khởi tạo chủ sở hữu ứng dụng...",creatingSecurityRules:"Đang tạo các quy tắc bảo mật mặc định...",assigningDomain:"Đang gán tên miền mặc định...",waitingForDomain:"Đang chờ miền mặc định có hiệu lực..."},error:{loadMetaFailed:"Không thể tải thông tin ứng dụng",appMetaNotFound:"Không tìm thấy thông tin cho ứng dụng này",downloadFailed:"Không tải được ứng dụng, vui lòng thử lại",installFailed:"Không cài đặt được ứng dụng, vui lòng thử lại",startFailed:"Không thể khởi động ứng dụng, vui lòng thử lại",launchFailed:"Không khởi động được ứng dụng, vui lòng thử lại",installedButStopped:"Ứng dụng được cài đặt thành công, nhưng không thể khởi động. Bạn có thể khởi động nó thủ công sau khi giải quyết các vấn đề chặn",installedButError:"Ứng dụng đã được cài đặt thành công, nhưng không khởi động được",restoreFailed:"Không thể khôi phục ứng dụng, vui lòng thử lại",resourceBlocklet:"Không thể khởi chạy khối chức năng này trực tiếp, nhưng bạn có thể thêm khối chức năng này vào ứng dụng hiện có."},steps:{introduction:"Giới thiệu",installApp:"Cài đặt Ứng dụng",purchaseSpace:"Mua Không gian",prepareSpace:"Chuẩn bị không gian"},installRelatedComponents:"Cài đặt các Blocklet liên quan",canNotInstall:"Không thể cài đặt",dockerBlockletCantInstall:"Không thể cài đặt Blocklet, vì Server Blocklet chưa kích hoạt Docker hoặc Docker Network",nav:{myApps:"Ứng dụng của tôi",viewMyApps:"Xem Ứng Dụng Của Tôi"},withoutWallet:"Bỏ qua kết nối ví DID",nwFailed:"Không thể truy xuất quy trình làm việc.",alreadyConsumed:"Phiên bản khởi chạy đã được sử dụng",redirectToLauncherBlocklet:"Đang chuyển hướng đến Launcher Blocklet"},issuePassport:{title:"Nhận Hộ chiếu",description:"Sử dụng các phương pháp sau để nhận hộ chiếu do {name} cấp",dialog:{scan:"Sử dụng các phương pháp sau để nhận hộ chiếu",confirm:"Xác nhận trong tài khoản của bạn",success:"Hộ chiếu đã được thêm vào ví của bạn thành công",loginWithPassport:"Kết nối với hộ chiếu này",autoClose:"Trang sẽ tự đóng sau {seconds}s",autoJump:"Trang sẽ tự động chuyển đến trong {seconds}s"}},lostPassport:{title:"Hộ chiếu bị mất",description:"Chủ sở hữu của {name} có thể sử dụng các phương pháp sau để lấy lại hộ chiếu, các thành viên vui lòng liên hệ với chủ sở hữu để cấp lại hộ chiếu.",return:"Hủy thao tác truy xuất, trở về trang chủ",receivePassport:"Nhận hộ chiếu",recoverDialog:{title:"Khôi phục hộ chiếu",scan:"Sử dụng các phương pháp sau để lấy hộ chiếu của bạn",confirm:"Xác nhận trên ví DID của bạn",success:"Đã lấy thành công"},receiveDialog:{title:"Nhận hộ chiếu",scan:"Sử dụng các phương pháp sau để nhận hộ chiếu",confirm:"Xác nhận trên ví DID của bạn",success:"Đã nhận thành công"},recoverPassport:"Khôi phục hộ chiếu"},invite:{message:"{name} mời bạn làm {role} của {dapp}",success:"Bạn đã tham gia {dapp} thành công",receive:"Nhận với",validUntil:"Hiệu lực đến:",viewPermission:"Quyền Xem",emptyPermission:"Quyền trống rỗng",open:"Mở",description:{step1:"Tải về và cài đặt {wallet} của bạn",step2:"Nhấp vào nút bên trên để nhận hộ chiếu",step3:"Đăng nhập vào {dapp} bằng hộ chiếu đã nhận được"},transferNFTDialog:{title:"Chấp nhận máy chủ Blocklet {name}",scan:"Kết nối Launcher để hoàn tất việc nhận dữ liệu từ máy chủ Blocklet.",confirm:"Xem lại thao tác này trên Ví DID của bạn",success:"Kết nối thành công, đang chờ xác nhận nhận từ Máy chủ"}},receive:{dialog:{title:"Nhận hộ chiếu",scan:"Sau khi nhận được hộ chiếu, bạn có thể sử dụng hộ chiếu để đăng nhập vào ứng dụng",confirm:"Xác nhận trong tài khoản của bạn",success:"Bạn đã kết nối thành công",scanWithDid:"Vui lòng sử dụng tài khoản {did} để nhận hộ chiếu này. Sau khi nhận được hộ chiếu, bạn có thể sử dụng hộ chiếu để đăng nhập vào ứng dụng."}},navigation:{navigation:"Điều hướng",actionFailed:"Hành động thất bại",form:{themeConfig:"Cấu hình chủ đề",contentConfig:"Cấu hình nội dung",title:"Tiêu đề",titlePlaceholder:"Vui lòng nhập tiêu đề điều hướng",titleTooLong:"Độ dài tiêu đề phải nhỏ hơn {len}",description:"Mô tả",descriptionPlaceholder:"Vui lòng nhập mô tả điều hướng",descriptionTooLong:"Độ dài mô tả phải nhỏ hơn {len}",icon:"Biểu tượng Mặc định",iconPlaceholder:"Chọn một biểu tượng",invalidIcon:"Biểu tượng không hợp lệ",findMoreIcon:"Tìm thêm biểu tượng",link:"Liên kết",linkPlaceholder:"Vui lòng nhập liên kết điều hướng",invalidLink:"Liên kết không hợp lệ",component:"Thành phần",componentPlaceholder:"Vui lòng chọn thành phần điều hướng",role:"Vai trò",rolePlaceholder:"Vui lòng chọn vai trò điều hướng",locale:"Cấu hình",localePlaceholder:"Vui lòng nhập vị trí cần thêm",localeExists:"{value} đã tồn tại",activeIcon:"Biểu tượng Hoạt động",activeColor:"Màu Hoạt Động",color:"Màu Mặc Định",colorPlaceholder:"e.g., #FF0000",invalidColor:"Màu không hợp lệ",searchIcons:"Tìm kiếm biểu tượng",searchIconsPlaceholder:"Ví dụ: mdi:home"},action:{add:"Thêm điều hướng",addSub:"Thêm điều hướng phụ",edit:"Chỉnh sửa điều hướng",hide:"Ẩn điều hướng",show:"Hiển thị điều hướng",del:"Xóa điều hướng",new:"Mới",noAddSub:"Thành phần đã gỡ cài đặt không thể thêm điều hướng phụ",noEdit:"Không thể chỉnh sửa thành phần đã gỡ cài đặt",noDel:"Không cho phép xóa điều hướng tích hợp sẵn",reset:"Đặt lại",restConfirmTitle:"Đặt lại điều hướng {section} về mặc định?",restConfirmDesc:"Điều hướng tùy chỉnh của bạn sẽ bị xóa và khôi phục về các mục mặc định.",resetSuccessful:"Khôi phục thành công",delTabBarTitle:"Bạn có muốn xóa tab này không?",delTabBarDesc:"Sau khi xóa, tab sẽ được xóa khỏi danh sách điều hướng."},system:"Hệ thống",services:"Dịch vụ",access:"Truy cập",members:"Thành viên",passport:"Hộ chiếu",analytics:"Phân tích",dashboard:"Bảng điều khiển",studio:"Blocklet Studio",aigne:"Kết nối AI",blockletService:"Dịch vụ Blocklet",didConnect:"Danh tính & Truy cập",didSpaces:"Lưu trữ & Sao lưu",website:"Website Studio",notification:"Trung tâm thông báo",operations:"Quan sát",integration:"Tích hợp",developer:"Nhà phát triển",overviewDesc:"Theo dõi sức khỏe và chi tiết ứng dụng, dễ dàng cài đặt, khởi động hoặc xóa Blocklets ở một nơi.",didConnectDesc:"Thêm thành viên nhóm, đặt tùy chọn đăng nhập và quản lý quyền truy cập an toàn để hợp tác suôn sẻ.",aigneDesc:'Cấu hình kết nối liên quan đến AI cho blocklet của bạn, bao gồm <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> và <a href="{mcpUrl}" target="_blank">các máy chủ tương thích MCP</a>.',websiteDesc:"Quản lý miền, điều chỉnh chủ đề, tinh chỉnh thương hiệu và tùy chỉnh điều hướng cho giao diện trang web độc đáo.",operationsDesc:"Xem phân tích, kiểm tra nhật ký hoạt động, nhận cảnh báo và điều chỉnh cài đặt nâng cao khi cần thiết.",integrationsDesc:"Liên kết các dịch vụ bên ngoài thông qua Webhooks, khóa truy cập và máy chủ MCP để mở rộng khả năng ứng dụng.",developersDesc:"Sử dụng nhật ký, theo dõi hiệu suất và tài liệu để xây dựng, gỡ lỗi và tối ưu hóa ứng dụng của bạn.",didSpacesDesc:"Lưu trữ và sao lưu dữ liệu ứng dụng Blocklet của bạn một cách an toàn để đảm bảo bảo vệ đáng tin cậy và khôi phục dễ dàng.",publishDesc:"Xuất bản ứng dụng của bạn lên cửa hàng hoặc chia sẻ qua liên kết để nhiều người có thể sử dụng hơn."},storage:{spaces:{title:"DID Spaces",tips:"Mẹo",label:"Nhập Cổng DID Spaces",connected:{title:"Các Không gian DID đã Kết nối",tag:"Kết nối"},connectedWithName:"Bạn đã kết nối thành công với {name}",addedWithName:"Bạn đã thêm {name} thành công",connects:"Kết nối",reconnect:"Kết nối lại",addressCannotEmpty:"Địa chỉ không được để trống",addressNotValid:"{url} không phải là một địa chỉ hợp lệ",authorize:{title:"Kết nối {appName} với DID Spaces",scan:"Sử dụng các phương pháp sau để cho phép ứng dụng {appName} kết nối với DID Spaces",success:"Kết nối thành công"},provideNFT:{title:"Vui lòng hiển thị DID Spaces NFT cho {appName}",scan:"Sử dụng các phương pháp sau để cho phép ứng dụng {appName} hiển thị NFT Space DID",success:"Kết nối thành công"},backup:{title:"Sao lưu",records:"Sao lưu bản ghi",without:"Không có sao lưu",succeeded:"Sao lưu thành công",failed:"Sao lưu thất bại",lastBackup:"Thời gian sao lưu cuối cùng",lastBackupTip:'Đã {time} kể từ bản sao lưu thành công cuối cùng của bạn, vui lòng kiểm tra cài đặt sao lưu của bạn trong tab "DID Spaces".',noBackup:"Không có sao lưu",noBackupTip:"Chưa tạo bản sao lưu nào. Chúng tôi khuyên bạn nên thiết lập sao lưu thường xuyên để bảo vệ dữ liệu và cài đặt của bạn",pending:"Đang sao lưu",timeout:"Thời gian chờ sao lưu"},autoBackup:{title:"Sao lưu tự động",enabled:"Sao lưu tự động đã được bật",disabled:"Sao lưu tự động đã tắt"},autoCheckUpdate:{title:"Kiểm tra tự động thông báo phiên bản mới",enabled:"Tự động kiểm tra phiên bản mới đã được kích hoạt",disabled:"Tự động kiểm tra phiên bản mới đã tắt"},backupSuccessfully:"Sao lưu thành công",restore:"Khôi phục",restoreSuccessfully:"Khôi phục thành công",gateway:{title:"Cổng",select:"Chọn một Không gian DID",add:{title:"Thêm Không gian DID",label:"Nhập URL của Không gian DID",failed:"Thêm DID Spaces thất bại",invalidUrl:"URL cổng không gian DID không hợp lệ",duplicate:"{name} đã được kết nối với Blocklet này"},delete:{title:"Ngắt kết nối",succeeded:"Ngắt kết nối DID Space {name} thành công",failed:"Ngắt kết nối thất bại",failedForSelected:"Không thể ngắt kết nối DID Space đã chọn",descForBackup:"Sau khi ngắt kết nối từ {name}, bạn sẽ không thể sao lưu dữ liệu từ Blocklet này đến DID Space này nữa. Bạn có muốn ngắt kết nối?",descForStorage:"Sau khi ngắt kết nối từ {name}, bạn sẽ không thể lưu dữ liệu từ Blocklet này đến DID Space này nữa. Bạn có muốn ngắt kết nối?"},connect:{title:"Kết nối DID Spaces",add:"Kết nối với không gian DID ngay bây giờ",addTips:"Bạn chưa kết nối với bất kỳ không gian DID nào",switch:"Chuyển đổi không gian DID",switchTips:"Bạn đã kết nối với {name}",connected:"Đã kết nối"},switch:{failedForMismatchSpace:"Vui lòng kết nối với DID Space đúng {name}"},connectTo:"Kết nối với DID Spaces"},strategy:{title:"Chiến lược sao lưu",autoBackup:"Auto backup",backupNow:"Sao lưu ngay bây giờ",viewBackupFiles:"Xem tệp sao lưu"},progress:{title:"Tiến trình sao lưu"},record:{title:"Sao lưu hồ sơ",emptyData:"Không có hồ sơ"},notYet:"Bạn chưa có sao lưu đang diễn ra...",connect:{now:"Kết nối ngay",title:"Kết nối DID Spaces",provider:"Cung cấp DID Space của bạn để bắt đầu sao lưu",providerForStorage:"Cung cấp DID Space của bạn để lưu trữ dữ liệu",useWallet:"Kết nối với ví DID",useWalletReconnect:"Kết nối lại với ví DID",useSpaceGateway:"Kết nối qua cổng DID Spaces",useSpaceGatewayReconnect:"Kết nối lại qua cổng DID Spaces",switchToSpace:"Chuyển sang DID Space",switchToSpaceSucceeded:"Chuyển sang không gian DID {name}",succeeded:"Bạn đã kết nối thành công với DID Space",disconnect:"Ngắt kết nối",abortBlockletBackup:"Hủy sao lưu"},disconnected:{tag:"Ngắt kết nối",reconnectNow:"Kết nối lại ngay bây giờ"}},appLevel:{title:"Lưu trữ ứng dụng",description:"Tất cả dữ liệu được tạo ra bởi ứng dụng được lưu trữ trên DID Space này"}},log:{lastDays:{1:"1 Ngày cuối cùng",7:"Tuần trước"}},oauth:{auth0:{},github:{},google:{},apple:{},authorize:"Xác thực OAuth",client:{tab:"Ứng dụng OAuth",name:"Tên ứng dụng",clientId:"ID Khách hàng",clientSecret:"Mật khẩu bảo mật khách hàng",scope:"Phạm vi",redirectUris:"URL chuyển hướng",grantTypes:"Loại Grant",responseTypes:"Loại phản hồi",tokenEndpointAuthMethod:"Phương thức xác thực Endpoint Token",actions:"Hành động",grantResponse:"Cấp phép và Phản hồi",metaContact:"Meta & Liên hệ",clientUri:"URI Khách hàng",logoUri:"URI logo",contacts:"Liên hệ",tosUri:"URL Điều khoản Dịch vụ",policyUri:"URI Chính sách",jwksSoftware:"JWKS & Software",jwksUri:"URI JWKS",jwks:"JWKS",softwareId:"ID Phần Mềm",softwareVersion:"Phiên bản Phần mềm",clientSecretExpiresAt:"Client Secret hết hạn vào",clientIdIssuedAt:"ID Khách hàng Được cấp vào",oauthAppDetails:"Chi tiết Ứng dụng OAuth",oauthEndpoints:"Endpoints OAuth",authorizationEndpoint:"Endpoint ủy quyền",tokenEndpoint:"Endpoint Token",userinfoEndpoint:"Endpoint Thông tin Người dùng",registrationEndpoint:"Điểm cuối đăng ký",endSessionEndpoint:"Kết thúc phiên Endpoint",validate:{clientName:"Tên ứng dụng là bắt buộc",clientNameMinLength:"Tên ứng dụng phải có ít nhất 3 ký tự",clientUri:"URL trang chủ bắt buộc",clientUriInvalid:"Vui lòng nhập URL hợp lệ bắt đầu bằng http:// hoặc https://",redirectUris:"URL gọi lại xác thực là bắt buộc",redirectUrisInvalid:"Vui lòng nhập URL hợp lệ bắt đầu bằng http:// hoặc https://",contacts:"Vui lòng nhập các địa chỉ email hợp lệ, cách nhau bằng dấu phẩy",tosUri:"URL Điều khoản Dịch vụ bắt buộc",tosUriInvalid:"Vui lòng nhập một URL hợp lệ",policyUri:"URL Chính sách bắt buộc",policyUriInvalid:"Vui lòng nhập URL hợp lệ",jwksUri:"URI JWKS bắt buộc",jwksUriInvalid:"Vui lòng nhập URL hợp lệ",jwks:"Cần JWKS",jwksInvalid:"Vui lòng nhập JWKS hợp lệ"},input:{clientName:"Tên ứng dụng",clientNamePlaceholder:"Điều gì đó người dùng sẽ nhận ra và tin tưởng",clientUri:"URL trang chủ",clientUriPlaceholder:"https://your-app.com",redirectUris:"URL gọi lại xác thực",redirectUrisPlaceholder:"https://your-app.com/callback",contacts:"Email liên hệ",contactsPlaceholder:"admin@your-app.com, support@your-app.com",permissions:"Chọn các quyền bạn cần",tosUri:"URL Điều khoản Dịch vụ",tosUriPlaceholder:"https://your-app.com/terms",policyUri:"URL Chính sách",policyUriPlaceholder:"https://your-app.com/policy",jwksUri:"URI JWKS",jwksUriPlaceholder:"https://your-app.com/jwks",jwks:"JWKS",jwksPlaceholder:"Bộ Khóa Web JSON",expireTime:"Đặt ngày hết hạn cho secret của client để tăng cường bảo mật"},helperText:{clientName:"Điều mà người dùng sẽ nhận ra và tin tưởng.",clientUri:"URL đầy đủ của trang chủ ứng dụng của bạn.",redirectUris:"URL gọi lại của ứng dụng của bạn.",contacts:"Địa chỉ email của người chịu trách nhiệm về ứng dụng.",tosUri:"URL điều khoản dịch vụ của ứng dụng bạn.",policyUri:"URL chính sách quyền riêng tư ứng dụng của bạn.",read:"Đọc",document:"Tài liệu OAuth",more:"Để biết thêm thông tin."},delete:{title:"Xóa Client OAuth",description:"Bạn có chắc chắn muốn xóa khách hàng OAuth {clientName} này không?"},register:"Tạo ứng dụng OAuth mới",requiredInformation:"Thông tin bắt buộc",optionalInformation:"Thông tin tùy chọn",registerButton:"Tạo",logo:"Logo",openRegistration:"Đăng ký mở",openidConfiguration:"Cấu hình OpenID",createUser:"Được tạo bởi",update:"Cập nhật Ứng dụng OAuth",listTitle:"Bật quyền truy cập an toàn của bên thứ ba bằng Ứng dụng OAuth",tooltipTitle:"Sử dụng máy chủ OAuth tích hợp sẵn của ứng dụng để ủy quyền cho các ứng dụng bên ngoài với các giao thức tiêu chuẩn ngành. Trao quyền cho người dùng với xác thực an toàn, liền mạch và kiểm soát truy cập được ủy quyền.",empty:"Chưa thêm dữ liệu"},twitter:{}},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"Hết hạn"},loadFailed:"Thử lại!"},desktop:{tips:{success:"Gói đăng ký sẽ hết hạn sau {validity}",warning:"Đăng ký sẽ hết hạn sau {validity}",error:"Đã hết hạn đăng ký"},loading:"Tải đăng ký...",loadFailed:"Không tải được thông tin đăng ký, vui lòng thử lại!",nextInvoice:"Hóa đơn tiếp theo: {date}"}},analytics:{trend:"Xu hướng",detail:"Hỏng",traffic:{totalRequests:"Tổng số yêu cầu",validRequests:"Các yêu cầu thành công",failedRequests:"Yêu cầu thất bại",uniqueVisitors:"Lượt truy cập duy nhất",uniqueFiles:"URL duy nhất",uniqueReferrers:"Người giới thiệu duy nhất",uniqueNotFound:"404 Độc nhất",uniqueStaticFiles:"Tập tin tĩnh duy nhất",logSize:"Kích thước Log",bandwidth:"Băng thông"},runtime:"Thời gian chạy"},federated:{inviteJoinFederatedLogin:"Mời tham gia đăng nhập liên kết",inviteJoinFederatedLoginDescription:"Sao chép địa chỉ sau đây và điền vào ứng dụng nơi bạn cần tham gia để đăng ký đăng nhập liên minh.",federatedLogin:"Đăng nhập liên kết",joinFederatedLogin:"Tham gia đăng nhập phân liên hợp",joinFederatedLoginDescription:"Vui lòng nhập địa chỉ đăng nhập liên kết được cung cấp bởi Master Blocklet để tham gia đăng nhập liên kết",quitFederatedLogin:"Thoát khỏi đăng nhập liên minh",quitFederatedLoginDescription:"Sau khi thoát khỏi đăng nhập được liên kết, đăng nhập thông thường luôn có sẵn",federatedJoinAppUrl:"Đăng nhập bằng đăng ký kết hợp trên appUrl",federatedJoinAppUrlRequired:"Vui lòng nhập đăng nhập liên kết để tham gia {appUrl}",failedToGetFederatedLoginAppUrl:"Không thành công trong việc lấy đăng nhập qui định liên kết, tham gia appUrl",federatedJoinAppUrlInvalid:"AppUrl đăng nhập liên kết không hợp lệ",siteDetail:"Chi tiết trang web",approveToJoinLogin:"Chấp nhận tham gia đăng nhập liên thông",approve:"Bật chế độ đăng nhập",revoke:"Vô hiệu hóa đăng nhập",enableFederatedLogin:"Kích hoạt đăng nhập liên danh",disableFederatedLogin:"Vô hiệu hóa đăng nhập liên kết",enableFederatedLoginDescription:"Sau khi kích hoạt đăng nhập liên kết, trang web này sẽ tự động đăng nhập",disableFederatedLoginDescription:"Sau khi vô hiệu hóa đăng nhập liên tục, trang web này sẽ không đăng nhập tự động",enableFederatedAutoLogin:"Bật đăng nhập tự động",enableFederatedAutoLoginDescription:"Sau khi kích hoạt đăng nhập tự động, nếu hiện tại có trạng thái đăng nhập thống nhất, trang web sẽ tự động đăng nhập với danh tính của đăng nhập đoàn thể",disableFederatedAutoLogin:"Tắt đăng nhập tự động",disableFederatedAutoLoginDescription:"Sau khi đăng nhập tự động tắt, trang web sẽ không đăng nhập tự động thông tin người dùng của đăng nhập thống nhất và bạn vẫn có thể chọn để đăng nhập bằng tay bằng danh tính đăng nhập liên minh.",info:{appId:"ỨNG DỤNG ĐÃ LÀM",appPid:"ID vĩnh viễn",migratedFrom:"Còn được biết đến là",appName:"Tên Blocklet",appDescription:"Mô tả khối",appUrl:"URL Blocklet",appLogo:"Logo Blocklet",did:"Blocklet DID",serverId:"ID máy chủ Blocklet",serverVersion:"Phiên bản Blocklet Server",version:"Phiên bản Blocklet",appliedAt:"Đăng ký tại",status:"Tình trạng"},status:{pending:"Đang chờ",approved:"Được chấp thuận",rejected:"Bị từ chối",revoked:"Thu hồi"},disbandFederatedLogin:"Hủy kết nối đăng nhập liên kết",disbandFederatedLoginDescription:"Sau khi giải tán đăng nhập liên kết, tất cả các trang thành viên sẽ tự động thoát khỏi đăng nhập liên kết",syncConfig:"Đồng bộ cấu hình trang web liên kết",quitMember:"Xóa",quitMemberDescription:"Xóa thành viên chỉ định khỏi nhóm trang web",removeFederatedLogin:"Gỡ thành viên",removeFederatedLoginDescription:"Sau khi loại bỏ các thành viên được chỉ định khỏi nhóm trang web, thành viên chỉ có thể sử dụng đăng nhập bình thường",title:"Federated Login là gì?",description:"Đăng nhập liên kết có thể đạt được thông qua đăng nhập duy nhất trên nhiều hệ thống. Bạn có thể mời các nhóm khác tham gia đăng nhập liên kết, hoặc chủ động tham gia nền tảng đăng nhập liên kết của các tổ chức khác.",link:"Xem Tài liệu"},optionsOrder:{1:"Tùy chọn Một",2:"Lựa chọn Hai"},securityRule:{title:"Quy tắc bảo mật",sortByDescription:"Sắp xếp theo mức độ ưu tiên phù hợp",add:"Thêm Quy tắc Bảo mật",edit:"Chỉnh sửa Quy tắc Bảo mật",view:"Xem quy tắc bảo mật",form:{precede:"Trước đó",pathPattern:"รูปแบบพาธ",pathPatternPlaceholder:"Hãy nhập mô hình đường dẫn",pathPatternErrorText:"Mẫu đường dẫn không hợp lệ",accessPolicyOrResponseHeaderPolicyRequired:"Chính sách truy cập hoặc chính sách tiêu đề phản hồi là bắt buộc",accessPolicy:"Chính sách truy cập",accessPolicyPlaceholder:"Vui lòng chọn chính sách truy cập",accessPolicyHelperText:"Chọn chính sách truy cập",responseHeaderPolicy:"Chính sách Tiêu đề phản hồi",responseHeaderPolicyPlaceholder:"Vui lòng chọn chính sách tiêu đề phản hồi",responseHeaderPolicyHelperText:"Vui lòng chọn chính sách tiêu đề phản hồi",remark:"Chú thích",remarkPlaceholder:"Hãy nhập chú thích",component:"Thành phần",componentPlaceholder:"Vui lòng chọn thành phần"},delete:{title:"Xóa Quy tắc Bảo mật?",description:"Sau khi xóa bỏ quy tắc bảo mật, quy tắc này sẽ không còn hiệu lực"},useless:"Quy tắc Bảo mật Vô ích"},responseHeaderPolicy:{title:"Chính sách header phản hồi",add:"Thêm Chính sách Tiêu đề Phản hồi",edit:"Chỉnh sửa Chính sách Đầu phản hồi",view:"Xem Chính sách Tiêu đề Phản hồi",form:{name:"Tên",namePlaceholder:"Vui lòng nhập tên",description:"Mô tả",descriptionPlaceholder:"Vui lòng nhập mô tả",cors:{origin:"Gốc",originPlaceholder:"Hỗ trợ các định dạng miền sau: http://www.example.com, http://*.example.com, http://www.example.com:8080, * (không khuyến nghị sử dụng ký tự đại diện)",originHelperText:"Tên miền bắt đầu với http:// hoặc https://, một trên một dòng, một ký tự đại diện * trên một dòng",methods:"Phương pháp",allowedHeaders:"Đầu trang được cho phép",allowedHeadersPlaceholder:"Khuyến nghị điền *, hỗ trợ nhập nhiều dòng",allowedHeadersHelperText:"Cho máy chủ biết những header tùy chỉnh nào có thể dùng trong yêu cầu tiếp theo khi gửi yêu cầu OPTIONS như: x-blocklet-version",exposedHeaders:"Tiêu đề được hiển thị",exposedHeadersPlaceholder:"Hỗ trợ nhập nhiều dòng",exposedHeadersHelperText:"Cấu hình Expose-Headers, ví dụ: X-Content-Range",maxAge:"Max-Age (giây)",maxAgeHelperText:"Thời hạn hiệu lực của kết quả thu được bằng yêu cầu OPTIONS, phải là một số nguyên dương",optionsSuccessStatus:"Trạng thái thành công của tùy chọn",preflightContinue:"Tiếp tục Chế độ xem trước",credentials:"Thông tin xác thực",smartModeHelperText:"Tự động thêm mọi tên miền của ứng dụng hiện tại, cũng như mọi tên miền của nhóm trang web đăng nhập liên kết",smartMode:"Chế Độ Thông Minh"},originOverride:"Origin Override",originOverrideHelperText:"Cho phép logic trong ứng dụng ghi đè lên tiêu đề phản hồi này"},delete:{title:"Xóa Chính sách tiêu đề phản hồi?",description:"Sau khi xóa chính sách tiêu đề phản hồi, chính sách sẽ không còn hiệu lực"}},accessPolicy:{title:"Chính sách truy cập",add:"Thêm Chính sách truy cập",edit:"Chỉnh sửa Chính sách Truy cập",view:"Xem chính sách quyền truy cập",form:{name:"Tên",namePlaceholder:"Vui lòng nhập tên",description:"Mô tả",descriptionPlaceholder:"Vui lòng nhập mô tả",roles:"Quyền truy cập",accessType:"Loại truy cập"},delete:{title:"Xóa Chính sách truy cập?",description:"Sau khi xóa một chính sách truy cập, chính sách này sẽ không còn hiệu lực"}},didConnect:{genKeyPair:{title:"Tạo DID Blocklet",scan:"Sử dụng các phương pháp sau để tạo Blocklet DID",success:"Tạo DID Blocklet thành công",successDesc:"Blocklet DID đã được tạo thành công (Các ấn phẩm sau yêu cầu ví đã tạo DID để vận hành)"},common:{invalidSession:"Phiên làm việc không hợp lệ",invalidSessionDesc:"Phiên không tồn tại hoặc đã hết hạn",connectionError:"Kết nối thất bại"}},pagination:{next:"Trang Kế Tiếp",previous:"Trang trước",rowsPerPage:"Mỗi trang:",displayRows:"của",jumpToPage:"Nhảy đến Trang:"},webhookEndpoint:{createWebhook:"Tạo Webhook",createWebhookTitle:"Tạo Webhook",selectAllEvents:"Chọn tất cả Sự kiện",selectAllEventsTooltip:"Chọn tất cả sự kiện khả dụng",selectedEventsCount:"{count} sự kiện đã chọn",selectedCount:"{count} đã chọn",eventsCount:"{count} sự kiện",saveWebhook:"Tạo Webhook",noAvailableEvents:"Không có sự kiện nào",loadingEvents:"Đang tải sự kiện...",loadingError:"Thất bại khi tải sự kiện: {message}",title:"Webhooks",noWebhooksAdded:"Chưa thêm webhook nào",validation:{urlRequired:"URL bắt buộc",urlInvalid:"Vui lòng nhập URL hợp lệ",descriptionRequired:"Mô tả bắt buộc",eventRequired:"Vui lòng chọn ít nhất một sự kiện"},hosted:"Endpoint được lưu trữ",add:"Tạo Webhook",addTip:"Thiết lập endpoint webhook của bạn để nhận các sự kiện trực tiếp",listen:"Nghe để",version:"Phiên bản API",attempts:"Thử nghiệm Webhook",url:{label:"URL",description:"URL Endpoint Webhook"},description:{label:"Mô tả",description:"Mô tả tùy chọn về mục đích sử dụng của endpoint này"},events:{label:"Chọn sự kiện để nghe",description:"Xin chào, {name}."},disabled:"Đã tắt",enabled:"Đã bật",disable:"Tắt",enable:"Bật",editWebhookTitle:"Cập nhật Webhook",updateWebhook:"Cập nhật Webhook",waitingForEvents:"Đang chờ sự kiện...",loadingMore:"Đang tải thêm...",loadMore:"Tải thêm",response:"Trả lời",request:"Yêu cầu",eventData:"Dữ liệu Sự kiện",deleteWebhook:{title:"Xóa Webhook?",description:"Sau khi xóa một webhook, webhook đó sẽ không còn nhận được sự kiện nữa"},success:"Thành công",listTitle:"Gửi dữ liệu sự kiện thời gian thực với Webhooks",tooltipTitle:"Kết nối liền mạch ứng dụng của bạn với các hệ thống bên ngoài bằng cách gửi thông báo sự kiện thời gian thực. Webhook cho phép tích hợp mạnh mẽ và quy trình làm việc tự động trên các công cụ và dịch vụ của bạn.",triggeredFrom:"Webhook này được kích hoạt từ một lần thử"},description:{environment:"Các biến hiện tại sẽ có hiệu lực khi {name} đang chạy. Cần khởi động lại ứng dụng để thay đổi có hiệu lực.",preferences:"Các biến hiện tại sẽ có hiệu lực khi {name} đang chạy. Thay đổi sẽ được áp dụng sau khi lưu, không cần khởi động lại ứng dụng."},preferencesFor:"Tùy chọn cho {name}",environmentFor:"Môi trường cho {name}",accessKey:"Khóa Truy cập",embed:{iconTip:"Nhấn để xem chi tiết đăng ký"},command:"Lệnh",mcp:{listTitle:"Truy cập Blocklet của bạn từ khách hàng MCP",tooltipTitle:"Khám phá danh sách các máy chủ MCP được hỗ trợ bởi Blocklet này, chọn một máy chủ để xem ngay các lệnh kết nối cần thiết để tham gia từ máy khách của bạn.",endpoint:"Điểm cuối MCP",available:"Máy chủ MCP khả dụng",noServer:"Không có máy chủ MCP khả dụng"},installCommand:"Lệnh Cài đặt",label:{add:"Thêm",apply:"Áp dụng nhãn",manage:"Quản lý nhãn",title:"Nhãn",description:"Mô tả",systemLabel:"Nhãn Hệ thống",create:"Tạo nhãn",edit:"Sửa nhãn",name:"Tên",slug:"Slug",parentLabel:"Nhãn cha",color:"Màu sắc",search:"Tìm nhãn",saveSuccess:"Nhãn đã được lưu thành công",delete:"Xóa",deleteTip:'Xóa "{name}"?',deleteSuccess:"Đã xóa nhãn thành công",reassignTip:"Nếu nhãn này đang được sử dụng, hãy gán lại các mục của nó cho một nhãn khác.",reassignTo:"Chọn nhãn mới",recently:"Mới đây",noMatching:"Không tìm thấy nhãn",noLabels:"Chưa có nhãn nào được tạo",filter:"Lọc nhãn",createNewLabel:'Tạo nhãn mới "{name}"',actionLabel:"Gán nhãn hàng loạt",selectLabels:"Chọn nhãn",deleteDesc:'Sau khi xóa nhãn, nhãn sẽ không được sử dụng nữa. Bạn có chắc chắn muốn xóa "{name}" không?',nameRequired:"Tiêu đề là bắt buộc.",nameMinLength:"Tiêu đề phải có ít nhất 1 ký tự.",nameMaxLength:"Tiêu đề phải ít hơn 64 ký tự.",slugRequired:"Slug bắt buộc",slugMinLength:"Slug phải có ít nhất 1 ký tự",slugMaxLength:"Slug phải có ít hơn 128 ký tự",descriptionMaxLength:"Mô tả phải ngắn hơn 255 ký tự",colorRequired:"Màu sắc là bắt buộc",colorInvalid:"Màu không hợp lệ"},environmentTips:{delete:"Bạn có chắc chắn muốn xóa hàng này không?",deleteForbidden:"Chỉ khóa của biến môi trường tùy chỉnh có thể được thay đổi."},authentication:{emailLoginDescription:"Đăng nhập qua email sẽ sử dụng Cài đặt Thông báo để gửi liên kết đăng nhập hoặc mã đăng nhập cho người dùng.",emailNotificationRequired:"Hãy chắc chắn rằng bạn đã kích hoạt Thông báo Email.",chooseProvider:"Phương thức Đăng nhập",chooseProviderPlaceholder:"Chọn phương thức đăng nhập để cấu hình",addLoginProvider:"Thêm Phương Thức Đăng Nhập",updateLoginProvider:"Cập nhật Phương thức Đăng nhập: {provider}",alreadyBindOAuth:"Đã liên kết đăng nhập bên thứ ba",alreadyBindWallet:"Đã liên kết Ví DID",didConnectSettings:"Hiển thị & Thương hiệu",commonSettings:"Cài đặt Chung",sessionSettings:"Bảo mật Phiên",federated:"Đăng nhập Liên hiệp",loginProviders:"Phương thức Đăng nhập",oauth:"Đăng Nhập Bên Thứ Ba",save:"Lưu",thirdPartyLogin:"Đăng nhập bên thứ ba",viewDocument:"Xem Tài liệu",oauthCallbackUrl:"URL callback",gotoEmailNotification:"Mở cài đặt thông báo email",deleteLoginProvider:"Xóa Nhà cung cấp Đăng nhập {provider}",deleteLoginProviderDescription:"Sau khi xóa nhà cung cấp đăng nhập, người dùng sẽ không thể đăng nhập bằng {provider}. Bạn có chắc chắn muốn tiếp tục?",auth0:{title:"Auth0",enable:"Kích hoạt đăng nhập Auth0",domain:"Miền",domainDescription:"Tên miền của Auth0 là cần thiết",clientId:"ID Khách hàng",clientIdDescription:"ID khách hàng ứng dụng Auth0 OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Khóa bí mật của ứng dụng Auth0 OAuth là cần thiết"},github:{title:"Github",enable:"Kích hoạt đăng nhập Github",clientId:"ID Khách hàng",clientIdDescription:"ID Khách hàng của ứng dụng Github OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Bí mật khách hàng của ứng dụng Github OAuth là bắt buộc"},twitter:{title:"X",enable:"Bật đăng nhập X",clientId:"ID Khách hàng",clientIdDescription:"ID Khách hàng của ứng dụng OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Client Secret của ứng dụng X OAuth là bắt buộc"},google:{title:"Google",enable:"Kích hoạt đăng nhập Google",clientId:"ID Khách hàng",clientIdDescription:"ID khách hàng của ứng dụng Google OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Client Secret của ứng dụng Google OAuth là bắt buộc"},apple:{title:"Táo",enable:"Kích hoạt đăng nhập với Apple",teamId:"ID nhóm",teamIdDescription:"ID nhóm ứng dụng Apple OAuth là bắt buộc",serviceId:"ID Dịch vụ",serviceIdDescription:"ID dịch vụ ứng dụng Apple OAuth là bắt buộc",keyId:"ID Khóa",keyIdDescription:"Cần có Key ID ứng dụng Apple OAuth",authKey:"Khóa xác thực",authKeyDescription:"Khóa xác thực ứng dụng Apple OAuth là bắt buộc",bundleId:"ID gói",bundleIdDescription:"ID gói ứng dụng Apple OAuth là bắt buộc"},wallet:{showQrcode:"Hiển thị mã QR"},didConnect:{showDidColor:"Hiển thị màu của DID Connect",showAppInfo:"Hiển thị thông tin Blocklet"}}};export{n as default};
5
+ Tỷ lệ: 16:9`,copyrightDesc:"Được sử dụng trong: chân trang website",appUrlDesc:"Được sử dụng trong: sơ đồ trang web và chia sẻ trên mạng xã hội",advanced:"Cấu hình Nâng cao",errorReason:"Blocklet khởi động thất bại, nhưng bạn vẫn có thể truy cập nó bằng cách nhấp vào nút bên dưới.",nameValidateError:"Không hợp lệ: bắt đầu bằng chữ cái/số, 3–129 ký tự, chỉ a–z, 0–9, - và _."},overview:{source:"Nguồn",deployedFrom:"Triển khai từ",accessControl:"Kiểm soát truy cập",viewInStore:"Xem tại cửa hàng"},diskInfo:{empty:"Thông tin đĩa không khả dụng hiện tại!",appDir:"Thư mục Ứng dụng",dataDir:"Thư mục dữ liệu",logDir:"Thư mục nhật ký",cacheDir:"Thư mục cache"},runtimeInfo:{noRunning:"Thông tin thời gian chạy sẽ có sẵn khi blocklet đang chạy!",memoryUsage:"Bộ nhớ sử dụng",cpuUsage:"Sử dụng CPU",uptime:"Thời gian hoạt động",port:"Cảng",processId:"Mã quy trình",dataStorage:"Lưu trữ dữ liệu"},dist:{downloadLink:"Liên kết Tải xuống",verify:"Xác minh"},status:{added:"Đã thêm",waiting:"Đang chờ",downloading:"Đang tải xuống",extracting:"Trích xuất",installing:"Đang cài đặt",upgrading:"Nâng cấp",installed:"Đã cài đặt",created:"Được tạo",starting:"Bắt đầu",running:"Chạy",stopping:"Dừng lại",stopped:"Dừng",error:"Lỗi",deleting:"Xóa",corrupted:"Bị hỏng",purchasing:"Đang chờ mua hàng",purchased:"Đã mua",verifying:"Xác minh mua hàng",resource:"Tài nguyên",failWithOldVersion:"Phiên bản mới khởi động thất bại, Blocklet đang chạy trên phiên bản cũ.",hasSomeErrors:"{blocklets} chưa hoạt động hoàn chỉnh, có thể do sự cố hoặc đang chờ khởi động."},list:{download:"Tải xuống",star:"Ngôi sao",searchPlaceholder:"Tìm kiếm theo tên khối hoặc DID"},component:{container:"Cấu hình Toàn cầu",showContainer:"Hiển thị Cấu hình Toàn cầu",didSpaceConfig:"Cấu hình DID Spaces",didSpaceConfigTip:"Hoàn thành quy trình ủy quyền sau để lưu trữ dữ liệu ứng dụng trong DID Spaces",didSpaceConnected:"Lưu trữ được ủy quyền cho: {endpoint}",checkUpdateTitle:"Kiểm tra Cập nhật",updateTitle:"Cập nhật thành phần",noUpdate:"Không có thành phần cần cập nhật",add:"Thêm thành phần",selectComponent:"Chọn Blocklet",selectRegistry:"Chọn Blocklet Store",selectRegistryTip:"Bạn có thể chuyển cửa hàng khối để xem nhiều thành phần hơn",selectInstance:"Chọn Instance",selectInstanceTip:"Bạn có thể chọn một phiên bản hiện có hoặc tạo một phiên bản mới. Các phiên bản hiện có sẽ sử dụng cấu hình và dữ liệu đã được lưu trước đó.",newInstance:"Tạo Mới Thể hiện",noComponent:"Không có thành phần",mountPoint:"Điểm gắn kết là gì?",mountPointTip:"Nếu bạn đặt điểm gắn kết thành '/my-prefix', thì tất cả các yêu cầu bắt đầu bằng điểm gắn kết đó sẽ được định tuyến đến thành phần đã chọn",delete:"Xóa Bộ phận",deleteDescription:"Thành phần này sẽ không thể truy cập sau khi xóa. Xác nhận xóa?",purchase:"Yêu cầu thanh toán",tip:{stopBlocklet:"Vui lòng dừng chạy Blocklet trước",requiredBy:"Yếu tố này được yêu cầu bởi {name}"},choose:"Chọn",addWithName:"Thêm Blocklet vào {name}",installingCanCloseWindowTip:"Đang cài đặt thành phần trong nền, bạn có thể đóng cửa sổ này an toàn",installSuccessTip:"Chúc mừng, thành phần đã được cài đặt thành công!",missDownloadTokenTip:"Không thể thêm thành phần trả phí mà không có mã thông tin tải xuống hợp lệ",purchaseComponentSecondCheckTip:"Vui lòng trình diễn NFT mua Blocklet của bạn để tiếp tục",installComponentError:"Đã xảy ra lỗi khi cài đặt thành phần, vui lòng thử lại",downloadComponentError:"Đã xảy ra lỗi khi tải xuống thành phần, vui lòng thử lại",addComponentTip:{introduction:"Chào mừng bạn đến Vị tro Tiện ích Thêm Thành phần",isPurchase:"Bạn cần xác minh NFT trước khi sử dụng <b>{name}</b> như một thành phần",belowInformation:"Dưới đây là thông tin về thành phần:",verifyNFT:"Vui lòng chọn phương pháp Xác minh NFT",config:"Vui lòng điền vào cấu hình của thành phần",environment:"Vui lòng điền vào môi trường của thành phần",fromUrl:"Thêm Blocklet Từ Url",fromUpload:"Thêm Blocklet từ Tải lên",uploadFailed:"Tải lên thất bại",allowedFileTypes:"Các loại tệp được phép tải lên: {types}"},addNext:"Thêm {name}",upgradeNext:"Nâng cấp {name}",setting:"Cài đặt",noDependencies:"{name} không có bất kỳ sự phụ thuộc nào",relatedComponents:"Các khối liên quan",required:"Cần thiết",installed:"Đã cài đặt",installingTip:"Đang cài đặt thành phần, vui lòng chờ...",upgrade:"Nâng cấp",upgradeAvailable:"Cập nhật khả dụng",needBuy:"Cần mua",isOfficial:"Đã được chứng nhận chính thức"},router:{urlPath:"URL Path",noRunning:"Blocklet hiện không được khởi động. Không thể truy cập thông qua địa chỉ sau!",securitySetting:"Cài đặt Bảo mật",checkUrlAccessible:"Kiểm tra tính khả dụng của địa chỉ",urlInaccessible:"Có thể do lý do mạng, địa chỉ tạm thời không thể truy cập",noAccessibleUrl:"URL không thể truy cập",domainLockTooltip:"Miền tên được tạo bởi hệ thống không thể chỉnh sửa.",urlLockTooltip:"Đường dẫn URL được tạo bởi hệ thống không thể chỉnh sửa.",showAllDomains:"Hiển thị tất cả các miền",showAllDIDs:"Hiển thị tất cả DIDs",currentDomainTip:"Bạn đang truy cập trang hiện tại qua tên miền này"},export:{title:"Xuất Blocklet",name:"Tên Bundle",nameTip:"ví dụ 'my-blocklet-name' hoặc '@my-scope/blocklet-name'",result:"Tiếp theo là gì",exportSource:"Xuất nguồn",success:"Blocklet xuất thành công",resultTipStart:"Với",resultTipEnd:"Bạn có thể xây dựng và xuất bản blocklet này trong vài phút",uploadedComponentTip:"Các thành phần được tải lên trực tiếp không thể được xuất khẩu:"},migrate:{title:"Di chuyển ứng dụng",scan:"Kết nối Ví DID của bạn để tạo một cặp khóa cho ứng dụng này",confirm:"Xem lại thao tác này trên ví DID của bạn",success:"Ứng dụng của bạn đã được di chuyển thành công, trang sẽ được làm mới trong {sec} giây",intro:{l1:"Nhấp vào đây",l2:"Để di chuyển ứng dụng của bạn sang phiên bản mới (thay đổi bị tắt cho đến khi quá trình di chuyển hoàn tất)",l3:"Ứng dụng DID sẽ được điều khiển hoàn toàn từ Ví DID của bạn.",l4:"Dữ liệu ứng dụng sẽ được di chuyển, và không yêu cầu thay đổi khác.",l5:"Cấu trúc ứng dụng mới sẽ mang lại cho bạn linh hoạt hơn khi thay đổi các thành phần.",l6:"4. Vui lòng không thay đổi điểm gắn kết thành phần trước khi phiên bản thành phần mới được phát hành."},tip:{duplicate:"Tìm thành phần trùng lặp {name}, vui lòng xóa các thành phần không cần thiết và di chuyển lại",running:"Vui lòng ngừng chặn trước quá trình di chuyển"}},error:{isRunning:"Blocklet đang chạy, vui lòng dừng nó trước",isInProgress:"Blocklet đang tiến hành, vui lòng đợi cho đến khi hoàn thành"},publish:{createResource:"Tạo tài nguyên",addResource:"Thêm bản phát hành",productTitle:"Sản phẩm",versionTitle:"Phiên bản",imgTitle:"Hình ảnh",resourceTitle:"Nội dung",blockletEmptyTip:"Không có Blocklets nào ở đây",createBlockletTip:"Bạn có thể tạo blocklet mới thông qua các tài nguyên, thành phần và cấu hình hiện có trong ứng dụng này",createBlocklet:"Khối mới",componentNotRunning:"Blocklet {name} không hoạt động, vui lòng khởi chạy trước",releaseEmptyTip:"Không có bản phát hành ở đây",createReleaseTip:"Bạn có thể tạo một phiên bản của blocklet, cùng với ghi chú về phiên bản và tài nguyên, để mọi người khác có thể sử dụng",createRelease:"Tạo bản phát hành",deleteReleaseTip:"Phiên bản không thể khôi phục sau khi xóa",createBlockletDid:"Tạo từ Ví Điện tử DID",createReleaseSuccess:"Phát hành được tạo thành công",saveDraftSuccess:"Nháp đã được lưu thành công",connect:{title:"Tạo DID Blocklet",scan:"Sử dụng các phương pháp sau để tạo Blocklet DID",confirm:"Xác nhận bằng cách sử dụng Ví DID",success:"DID Blocklet đã được tạo ra, vui lòng tiếp tục hoạt động của bạn"},saveDraft:"Lưu nháp",releaseNote:"Ghi chú phát hành",errorTip:{noDid:"Blocklet DID là bắt buộc",noTitle:"Tiêu đề khối là bắt buộc",noVersion:"Phiên bản Blocklet cần thiết",noDescription:"Yêu cầu miêu tả Blocklet",noNote:"Cần có Ghi chú phát hành",inValidVersion:"Phiên bản Blocklet không hợp lệ",noResource:"Vui lòng chọn tài nguyên tải lên để bao gồm trong blocklet",noFirstDid:"Vui lòng tạo Blocklet DID trước",invalidUrl:"Vui lòng nhập một URL hợp lệ",invalidUrlOrEmail:"Vui lòng nhập một URL hoặc email hợp lệ"},packTip:"Hiện tại, blocklet có thể được cài đặt trực tiếp như các ứng dụng. Các thành phần và cấu hình ứng dụng sẽ được tự động bao gồm trong Blocklet.",resourceChangedWarning:"Bạn đã chỉnh sửa nguồn tài nguyên, vui lòng lưu lại đúng giờ",installResourceTip:"Đường dẫn Cài đặt:",installResourceTip2:"Nếu bạn muốn xem thêm những mẹo khác, vui lòng truy cập",installResourceHelp:"Tài liệu giúp đỡ",componentIncluded:"Bao gồm",componentForceRequired:"Yêu cầu",download:"Tải về {name}",delete:"Xóa {name}",copyInstallUrl:"Sao chép URL cài đặt",install:"Cài đặt {name}",publishToStoreSuccess:"Blocklet đã được xuất bản lên Cửa hàng thành công",connectStoreSuccess:"Kết nối Blocklet Store thành công",uploadToStoreSuccess:"Blocklet đã tải lên Store thành công, bạn cần phải xuất bản nó trong Store",viewLastRelease:"Xem phiên bản phát hành gần đây nhất",reconnectStoreTip:"Sau khi kết nối lại, một nhà phát triển mới sẽ được liên kết. Bạn có chắc chắn muốn kết nối lại không?",deleteProject:{title:"Xóa {name}",scan:"Sử dụng các phương pháp sau để xóa {name}",confirm:"Xác nhận sử dụng Ví DID",success:"Dự án Blocklet đã bị xóa, vui lòng tiếp tục hoạt động của bạn",tip1:"Dự án Blocklet sẽ không thể khôi phục sau khi xóa",tip2:"Bạn sẽ không còn có khả năng xuất bản phiên bản mới cho Blocklet đã bị xóa, điều đó có nghĩa là Blocklet sẽ không được cập nhật nữa trên Cửa hàng.",tip3:"Xóa Blocklet sẽ không ảnh hưởng đến phiên bản hiện tại đã được xuất bản trong Cửa hàng.",description:"Sau khi xóa Blocklet, bạn sẽ gặp các vấn đề sau, bạn có chắc chắn muốn xóa nó không?"},resourceTip:"Hiện tại, là một khối tài nguyên, nó không thể được cài đặt trực tiếp từ Cửa hàng.",whyCantSeeInStore:"Bạn có thể xuất bản Blocklet hiện tại trên cửa hàng, và nó có thể được sử dụng trên toàn thế giới",whyCantSeeResourceBlockletInStore:"Bạn có thể xuất bản Blocklet hiện tại trên cửa hàng, và nó có thể được sử dụng trên toàn thế giới. Blocklets bị ẩn khỏi trang danh sách cửa hàng theo mặc định.",tenantScope:"Người thuê",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets không đang chạy, vui lòng khởi động nó trước",resourceEmptyTip:"Không có tài nguyên khả dụng",steps:{resources:"Vui lòng chọn các tài nguyên cần được liên kết với Blocklet hiện tại, vì các tài nguyên này sẽ được cài đặt cùng với Blocklet.",blocklets:"Chọn các khối để kết hợp.",version:"Cài đặt phiên bản phát hành và nhật ký thay đổi.",introduction:"Một phần giới thiệu rõ ràng có thể làm nổi bật hiệu quả Blocklet của bạn. Bạn có thể sử dụng cú pháp Markdown để viết và xem trước nó.",branding:"Mô tả thông tin cơ bản về Blocklet của bạn. Thông tin này sẽ được trình bày cho người dùng trong cửa hàng."},branding:"Thương hiệu",brandingHelp:"Thông tin chi tiết về blocklet sẽ được hiển thị trên Cửa hàng",resourceSelect:"Chọn tài nguyên từ blocklets",resourceUpload:"Tải tài nguyên từ ổ đĩa của bạn (index.html cần thiết trong tệp nén)",deleteStoreTip:"Bạn có chắc chắn muốn xóa {name} khỏi danh sách Cửa hàng Kết nối không?",disconnectStoreTip:"Sau khi ngắt kết nối, Blocklet sẽ bị xóa khỏi cửa hàng. Bạn có chắc chắn muốn ngắt kết nối không?",connectOrUpload:"Kết nối hoặc Tải lên",developerInfo:"Thông tin nhà phát triển",autoUploadTip:"Tự động tải lên blocklet lên Cửa hàng sau khi phát hành",possibleSameStoreTip:"Hãy thử giải quyết các blocklet phụ thuộc trong cùng một Cửa hàng Blocklet trước mỗi khi tải lên khi có thể",needProjectId:"Vui lòng tạo dự án trước",projectSettings:"Cài đặt Dự án",noStoreSelected:"Vui lòng chọn một cửa hàng hiện có hoặc thêm cửa hàng mới để tiếp tục",installToThisServer:"Cài đặt vào máy chủ này",forceResourceBlocklet:"Lực được định nghĩa như là Blocklet dựa theo tài nguyên",resourceDocker:"Xây dựng Blocklet từ Docker",resourceSelectTitle:"Nguồn lực",resourceUploadTitle:"Tải lên",resourceDockerTitle:"Docker",resourceDockerInputTip:"Vui lòng nhập lệnh docker run",docker:{pleaseInputDockerCommand:"Vui lòng nhập lệnh docker run",volumeTip:"Phải bắt đầu với $BLOCKLET_DATA_DIR hoặc $BLOCKLET_APP_DIR",volumeTip2:'Âm lượng không thể chứa ".."',noAllowTheArg:"Tham số không được phép sử dụng trong lệnh docker run",needCustomInput:"Thiết lập giá trị khi cài đặt blocklet",dockerParams:"Tham số Docker",dockerCommand:"Lệnh Docker",dockerImageName:"Tên Docker Image",addItem:"Thêm tham số chạy Docker",envKey:"Khóa biến môi trường",publishTips:"Cổng ngoài cuối cùng sẽ được gán tự động bởi blocklet",volumeTips:"Âm lượng cần bắt đầu với $BLOCKLET_DATA_DIR hoặc $BLOCKLET_APP_DIR",modifyParam:"Chỉnh sửa tham số chạy Docker",modifyEnv:"Sửa đổi Biến Môi trường",paramDetail:"Chi tiết Param",description:"Mô tả",secure:"Bảo mật",shared:"Đã chia sẻ",required:"Bắt buộc",prefix:"Tiền tố",path:"Đường dẫn",name:"Tên",portType:"Loại Cổng",dockerImageNameError:"Tên của Docker Image không được chứa khoảng trắng",autoGenerated:"Tự động tạo",dockerCMDError:"Docker CMD chỉ hỗ trợ các ký tự đơn giản",proxyBehavior:"Hành vi Proxy",serviceProxy:"Dịch vụ",directProxy:"Trực tiếp",nextTab:"Phân tích Lệnh"},storeRule:{maxImageCount:"Cửa hàng cho phép tối đa {max} ảnh chụp màn hình.",minImageCount:"Cửa hàng yêu cầu tối thiểu {min} {unit}.",minImageSize:"Kích thước ảnh chụp màn hình {name} phải tối thiểu {width}x{height}.",logoFormat:"Định dạng hình ảnh logo chỉ hỗ trợ [{format}].",warning:"Cảnh báo",screenshot:"Ảnh chụp màn hình",screenshots:"Ảnh chụp màn hình",first:"Thứ 1",second:"Thứ 2",third:"Thứ 3"},store:"Cửa hàng Blocklet",endpoint:{tab:"Blocklet Từ Xa",uploadToEndpoint:"Bạn có thể tải Blocklet hiện tại lên Blocklet đã chỉ định.",addEndpoint:"Thêm Endpoint Blocklet",urlEmpty:"URL Endpoint không được để trống",addFailed:"Thêm điểm cuối Blocklet thất bại:",deleteEndpoint:"Xóa Endpoint Blocklet",deleteDesc:'Xác nhận xóa endpoint Blocklet {name}? <br/><span style="color: {color}">*Sau khi xóa endpoint Blocklet này, bạn không thể cập nhật các ứng dụng được cài đặt từ endpoint Blocklet này trừ khi bạn thêm chúng lại.</span>',confirmDesc:"Vui lòng nhập {name} để xóa",visitEndpoint:"Truy cập Blocklet",disconnectEndpointTip:"Bạn có chắc chắn muốn ngắt kết nối {url}? Sau khi ngắt kết nối, Blocklet sẽ không được tải lên điểm cuối này.",deleteFailed:"Xóa điểm cuối Blocklet thất bại",publishToEndpointSuccess:"Blocklet đã được xuất bản đến Endpoint thành công",uploadToEndpointSuccess:"Blocklet đã được tải lên Endpoint thành công"},autoPublishErrorTip:"Tự động xuất bản lên {storeName} thất bại: {error}",singleton:"Chỉ một thực thể",singletonTip:"Khi chế độ singleton được bật, ứng dụng không thể chạy nhiều phiên bản cùng lúc. Vì ứng dụng của bạn sử dụng chế độ singleton, triển khai blue-green không thể được sử dụng cho cập nhật hoặc khởi động lại."},titleValidationError:"Độ dài tiêu đề phải từ 3 đến 20 ký tự",descriptionValidationError:"Độ dài mô tả phải từ 3 đến 80 ký tự",whyNeedAppPid:"Nếu ứng dụng của bạn đã được di chuyển, DID vĩnh viễn là DID được tạo khi Blocklet này được cài đặt ban đầu",usingDocker:"Blocklet này sẽ chạy bằng docker",gotoVisitError:"Không thể truy cập URL Blocklet, vui lòng thử lại sau",usingIsolation:"Blocklet này sẽ chạy với cách ly mạng",dockerImage:"Hỗ trợ Docker",mountPoint:{description1:"Thay đổi này có thể làm hỏng các URL chứa điểm gắn kết cũ, điều này có thể dẫn đến:",case1:"Tham chiếu tài nguyên bị hỏng giữa các Blocklets trong ứng dụng này",case2:"URL bị hỏng nếu bạn đã chia sẻ chúng công khai",description2:"Bạn có thể thiết lập chuyển hướng từ điểm gắn kết cũ sang điểm gắn kết mới để giảm thiểu những thay đổi có thể gây lỗi."},skSourceMigratedTip:"Ứng dụng này được ra mắt với ví được quản lý bởi máy chủ, và đã chuyển sang DID Wallet để tăng cường bảo mật.",skSourceManagedTip:"Ứng dụng này đang chạy với ví được quản lý bởi máy chủ, vui lòng chuyển sang DID Wallet sớm nhất có thể để đảm bảo bảo mật tốt hơn.",zeroDowntime:"Không thời gian chết"},dashboard:{nodeDid:"Nút",ownerDid:"Chủ sở hữu",routingEngine:"Bộ Quy Tắc",ownerNftURL:"Chủ sở hữu NFT",expirationLeft:"Ngày hết hạn còn lại",startFromCrashTip:"Blocklet Server không thoát bình thường lần trước, vui lòng khởi động thủ công các blocklets cần chạy.",runtimeConfig:{blockletMaxMemoryLimit:"Giới hạn bộ nhớ tối đa của Blocklet",daemonMaxMemoryLimit:"Giới hạn bộ nhớ tối đa của máy chủ"},document:"Tìm hiểu thêm trong tài liệu của chúng tôi",database:"Cơ sở dữ liệu"},store:{nameSort:"Tên",popularSort:"Sự phổ biến",headerDescription:"Tìm kiếm và Cài đặt Blocklets của bạn",detail:{purchase:"Mua {name}",open:"Mở {name}",install:"Cài đặt {name}",upgrade:"Nâng cấp {name}",empty:"Không giới thiệu"},blockletRegistry:{changeFailed:"Thay đổi Cửa hàng Blocklet thất bại:",addFailed:"Thêm Blocklet Store thất bại: {name}",editFailed:"Sửa cửa hàng Blocklet không thành công",switchRegistry:"Chuyển Đổi Cửa Hàng Khối",addRegistry:"Thêm Blocklet Store",editRegistry:"Chỉnh sửa Cửa hàng Blocklet",deleteRegistry:"Xóa Blocklet Store",haveSameRegistry:"Cửa hàng khối cùng tồn tại",registryName:"Tên Cửa hàng Blocklet",registryUrl:"URL cửa hàng Blocklet",registryNameEmpty:"Tên cửa hàng Blocklet không thể để trống",registryUrlEmpty:"URL cửa hàng Blocklet không được để trống",deleteDesc:"Xác nhận Xóa cửa hàng blocklet {name} ?",confirmDesc:"Vui lòng nhập {name} để xóa"},purchase:{title:"Mua {name}",confirmed:"Giao dịch mua NFT của bạn đã được xác minh",declined:"Bạn không cung cấp mua NFT blocklet hợp lệ",waiting:"Đang chờ hoàn tất mua hàng...",purchase:{title:"Mua NFT",description:"Hãy thanh toán một số mã thông báo trước khi cài đặt khối này nếu bạn chưa mua khối này"},verify:{title:"Xác minh NFT",description:"NFT của bạn sẽ được xác minh trước khi cài đặt blocklet này nếu bạn đã mua và giữ NFT mua hàng trong Ví DID của bạn",auth:{title:"Yêu cầu Mua thông tin Xác thực",scan:"Kết nối DID Wallet để cung cấp mua blocklet NFT",confirm:"Vui lòng xem lại hoạt động này trên Ví DID của bạn",success:"Mua NFT của bạn đã được xác minh và việc cài đặt đã bắt đầu"}},auth:{title:"Mua {name}",scan:"Quét mã QR sau đây bằng ví điện tử DID của bạn",confirm:"Xác nhận trong tài khoản của bạn",success:"Mua NFT được gửi vào ví DID của bạn"},launch:"Khởi chạy {name}",autoLaunch:"{name} đã mua thành công, đang chuyển hướng đến trang khởi chạy..."},tooltip:{upgradeServer:"Blocklet yêu cầu Blocklet Server phiên bản {version}, phiên bản Blocklet Server hiện tại là {serverVersion}"}},setting:{saveSuccess:"Cài đặt đã được lưu thành công",unSavedTip:'Có những thay đổi chưa được lưu, vui lòng nhấp vào "Lưu Thay Đổi" để lưu chúng.',unSavedLeaveTip:"Có những thay đổi chưa được lưu, bạn chắc chắn muốn rời khỏi trang?",form:{name:"Tên Máy chủ của bạn",nameRequired:"Mô tả máy chủ là bắt buộc",namePlaceholder:"Tên máy chủ",description:"Mô tả máy chủ của bạn",descriptionHolder:"Mô tả máy chủ",descriptionRequired:"Cần mô tả của máy chủ",domain:"Tên miền máy chủ của bạn",domainPlaceholder:"Tên Miền Máy Chủ",domainRequired:"Yêu cầu miền máy chủ",ipPlaceholder:"IP",ipRequired:"IP được yêu cầu",registry:"Cửa hàng Blocklet",registryPlaceholder:"Kho blocklet để tìm blocklets",registryRequired:"Cửa hàng Blocklet là bắt buộc",registerUrl:"Địa chỉ URL của Blocklet Launcher",registerUrlPlaceholder:"Nhập URL của Blocklet Launcher ưa thích của bạn, bạn có thể sử dụng phiên bản chính thức một cách an toàn",webWalletUrl:"URL ví DID",webWalletUrlPlaceholder:"Vui lòng nhập URL của 'Ví DID' của bạn được lưu trữ, bạn có thể sử dụng phiên bản chính thức một cách an toàn",nftDomainUrl:"URL miền NFT",nftDomainUrlPlaceholder:'Vui lòng nhập URL của miền "NFT" đã lưu trữ của bạn, bạn có thể sử dụng nó một cách an toàn',enableWelcomePage:"Bật trang chào mừng",welcome:{switchLabel:"Trang Chào mừng"},upgrade:{title:"Nâng cấp Blocklet Server lên phiên bản {version}",description:"Trong quá trình nâng cấp, máy chủ Blocklet của bạn sẽ vào chế độ bảo trì trong vài phút trong khi cập nhật hoàn tất.",dialog:'Nhấp vào "xác nhận" để cài đặt bản cập nhật. Blocklet Server sẽ vào chế độ bảo trì cho đến khi cập nhật hoàn thành và tự động trở lại chế độ sản xuất.',confirm:"Nâng cấp",switchLabel:"Kiểm tra cập nhật tự động",enableBetaRelease:"Kích hoạt Phiên bản Beta",setup:"Đang chuẩn bị nâng cấp",installing:"Đang cài đặt máy chủ Blocklet v{version}",restarting:"Khởi động lại Máy chủ Blocklet",cleanup:"Di chuyển dữ liệu máy chủ Blocklet",verifying:"Đang xác minh máy chủ Blocklet v{version}",rollback:"Máy chủ Rollback Blocklet",complete:"Nâng cấp đã hoàn thành!",progress:"Nâng cấp {name}",check:"Kiểm tra cập nhật",latest:"Bạn đang chạy phiên bản mới nhất."},restart:{title:"Khởi động lại máy chủ Blocklet",description:"Trong quá trình khởi động lại, máy chủ Blocklet của bạn sẽ vào chế độ bảo trì cho đến khi quá trình khởi động lại hoàn tất.",dialog:'Bấm vào "xác nhận" để khởi động lại. Blocklet Server sẽ vào chế độ bảo trì cho đến khi khởi động lại hoàn thành và tự động quay trở lại chế độ sản xuất.',confirm:"Khởi động lại",setup:"Đang chuẩn bị khởi động lại",verifying:"Đang xác minh Máy chủ Blocklet",restarting:"Khởi động lại Máy chủ Blocklet",cleanup:"Đảm bảo mọi thứ đều ổn",rollback:"Dọn dẹp trạng thái bẩn",complete:"Giữ hoàn chỉnh!",progress:"Khởi động lại {name}"},register:{title:"Đăng ký Blocklet Launcher",description:"Sau khi thêm, bạn có thể khởi chạy blocklets tới máy chủ blocklet này từ {url}.",button:"Đăng ký"},monitor:{diskThreshold:"Gửi cảnh báo khi sử dụng đĩa vượt quá (%)",diskThresholdPlaceholder:"Vui lòng đặt ngưỡng cảnh báo việc sử dụng đĩa"},security:{switchLabel:"Cách ly Hệ thống Tệp",switchTips:"Sau khi vô hiệu hóa tùy chọn này, hệ thống tệp của Blocklet sẽ không còn được cách ly nữa, điều này có thể tạo ra nguy cơ phần mềm độc hại làm hỏng hệ thống tệp.",warningTips:"Tính năng cô lập hệ thống tệp không có hiệu lực. Vui lòng nâng cấp phiên bản node.js (phiên bản hiện tại là {version}) lên v21.6.0 hoặc cao hơn."},docker:{switchLabel:"Chạy Blocklets trong Containers",switchTips:"Sau khi kích hoạt tùy chọn này, các blocklet sẽ chạy bằng cách sử dụng container, có thể cải thiện bảo mật tổng thể của máy chủ.",notInstalled:"Không thể kích hoạt chạy container vì Docker chưa được cài đặt hoặc thiếu quyền cần thiết để thực thi.",needCloseFileSystemIsolation:"Cách ly hệ thống tệp và chế độ thùng chứa docker không thể được kích hoạt cùng một lúc"},dockerNetwork:{switchLabel:"Phân lập Mạng cho Container",switchTips:"Sau khi bật tùy chọn này, các blocklet sẽ chạy an toàn hơn: một blocklet không thể truy cập vào máy chủ blocklet hoặc các blocklet khác trên các ứng dụng.",needEnableDocker:"Chế độ chứa phải được kích hoạt để bật khả năng cô lập mạng"},restartAllContainers:{title:"Khởi động lại tất cả Container",description:"Khởi động lại tất cả các container và giữ cho blocklets chạy.",dialog:'Nhấp vào "xác nhận" để khởi động lại tất cả blocklets trong container và giữ trạng thái blocklets đang chạy.',confirm:"Khởi động lại",setup:"Đang chuẩn bị khởi động lại",verifying:"Đang xác minh Server Blocklet",restarting:"Khởi động lại tất cả container ở nền",cleanup:"Đảm bảo mọi thứ đều ổn",rollback:"Dọn dẹp trạng thái bẩn",complete:"Bảo trì hoàn tất!",progress:"Khởi động lại tất cả các container ở chế độ nền"},restartAllBlocklet:{title:"Khởi động lại tất cả Blocklets",description:"Khởi động lại tất cả Blocklets đang chạy hoặc lỗi trên server này.",dialog:'Nhấp vào "xác nhận" để khởi động lại tất cả blocklets ở chế độ nền.',confirm:"Khởi động lại",setup:"Đang chuẩn bị khởi động lại",verifying:"Đang xác minh Blocklet Server",restarting:"Khởi động lại tất cả các Blocklets đang chạy hoặc lỗi ở chế độ nền",cleanup:"Đảm bảo mọi thứ đều ổn",rollback:"Dọn dẹp trạng thái bẩn",complete:"Bảo trì hoàn tất!",progress:"Khởi động lại tất cả Blocklets đang chạy hoặc bị lỗi ở chế độ nền"},enableSessionHardening:{switchLabel:"Kích hoạt Tăng cường Phiên",switchTips:"Sau khi bật tùy chọn này, các hoạt động đột biến sẽ yêu cầu xác minh nghiêm ngặt, có thể cải thiện bảo mật tổng thể của máy chủ."}},accessKey:{accessKeyId:"ID Khóa Truy cập",lastUsed:"Lần cuối sử dụng vào",tip:"Vui lòng nhập tên cho khóa truy cập này",saveSecretTip:"Đây là lần duy nhất mà khóa bí mật truy cập của bạn có thể được xem và không thể khôi phục. Tuy nhiên, bạn có thể tạo các khóa truy cập mới bất kỳ lúc nào.",iKnow:"Tôi đã sao chép và lưu Khoá truy cập Bí mật",showSecret:"Hiển thị Mã Truy Cập Bí Mật",hideSecret:"Ẩn bí mật",title:"Xóa Khóa Truy Cập",descriptionNoTime:"Điều này sẽ xóa vĩnh viễn khóa truy cập {key} với tên {name}, chưa bao giờ được sử dụng trước đó",description:"Điều này sẽ xóa khóa truy cập {key} vĩnh viễn với tên {name}, được sử dụng lần cuối vào {time}, {timeAge}",confirm_desc:"Vui lòng nhập {name} để xóa",remark:"Tên Khóa Truy Cập",remarkInvalid:"Tên Khóa truy cập là bắt buộc",passport:"Chọn hộ chiếu cho khóa truy cập để cấp hoặc hạn chế quyền",expireTime:"Đặt ngày hết hạn cho khóa truy cập để đảm bảo an ninh tốt hơn",authType:"Loại xác thực",resourceType:"Loại Tài Nguyên",resourceId:"ID Tài nguyên",component:"Thành phần",expired:"{time} hết hạn",accessKeySecret:"Khóa Truy cập Bí mật",simple:"Đơn giản",signature:"Chữ ký",signatureDesc:"Tiêu chuẩn bảo mật cấp doanh nghiệp sử dụng mật mã. Yêu cầu tích hợp mã với SDK (@blocklet/server-js), lý tưởng cho các kịch bản có yêu cầu bảo mật cao và truyền dữ liệu quan trọng",simpleDesc:"Cơ chế Token Bearer nhẹ, tương tự như OpenAPI Key, hỗ trợ các cuộc gọi API RESTful và tích hợp dịch vụ của bên thứ ba. Không cần mã hóa, tích hợp nhanh chóng thông qua Header HTTP, hoàn hảo cho phát triển nhanh",viewSecret:"Bạn có thể truy cập khóa bí mật sau này trong trang chi tiết của khóa truy cập",usage:"Sử dụng",listTitle:"Quản lý truy cập API an toàn bằng Khóa Truy cập",tooltipTitle:"Tạo và quản lý thông tin xác thực cho phép các hệ thống đáng tin cậy tương tác với ứng dụng của bạn một cách lập trình. Khóa truy cập cho phép tự động hóa an toàn và tích hợp liền mạch trên các công cụ và dịch vụ của bạn."},webhook:{add:"Thêm tích hợp",delTitle:"Xóa tích hợp",requiredError:"Vui lòng cung cấp một {type} hợp lệ",confirm_desc:"Vui lòng nhập {name} để xóa",test:"Kiểm tra",description:"Điều này sẽ xóa vĩnh viễn tích hợp với ID {id}",columns:{description:"Xin chào, ID",params:"Tham số",createdAt:"Tạo vào"},testSuccess:"Tin nhắn kiểm tra đã gửi thành công",duplicateError:"URL đã tồn tại",updateSuccess:"Cập nhật trạng thái thành công"},dns:{step1Title:"Đăng nhập vào nhà đăng ký miền của bạn",step1Desc1:"Đăng nhập vào nhà đăng ký miền của bạn, tìm trang quản lý miền và tìm trang cài đặt máy chủ tên. Bạn có thể tìm nhà đăng ký miền của mình tại",step2Title:"2. Tìm cài đặt DNS cho {url}",step2Desc:'Điều này có thể được gọi là "Quản lý DNS", "Cài đặt nâng cao", hoặc tương tự.',step3Title:"3. Thêm các bản ghi DNS sau",step3Desc:'Tên có thể được gọi là "host", "hostname" hoặc "alias"'},domain:{addingDomain:"Đang thêm domain...",checkingResolvable:"Đang kiểm tra trạng thái miền...",cannotResolve:"{domain} không thể được giải quyết, vui lòng kiểm tra cấu hình DNS của bạn",resolvedAddressError:"{domain} chưa được cấu hình chính xác với bản ghi CNAME trỏ đến {curDomain}",invalidDNSReminder:"{error}. Tuy nhiên, bạn có thể tiếp tục thêm domain, nhưng việc tạo chứng chỉ tự động không khả dụng.",continueAdd:"Tiếp tục Thêm",conflictTitle:"{domain} đã được sử dụng",conflictDescription:'{domain} đang được sử dụng bởi "{title}". Bằng cách nhấp vào xác nhận, domain sẽ bị xóa khỏi "{from}" và được thêm vào "{to}".'},aigne:{modelAdapter:"Nhà cung cấp Mô hình",modelName:"Tên Mẫu",desc:{modelAdapter:"Nền tảng cung cấp dịch vụ mô hình AI",modelName:"Phiên bản model cụ thể hoặc tên model",key:"Khóa API {provider} được sử dụng để xác thực",baseUrl:"Nhập URL của instance AIGNE Hub của bạn (ví dụ, https://hub.aigne.io). Sử dụng của bạn nếu bạn tự lưu trữ.",accessKeyId:"Khóa ID duy nhất để truy cập mô hình",secretAccessKey:"Khóa bí mật kết hợp với ID khóa truy cập",docLink:"Xem tài liệu chính thức để biết thêm chi tiết và tham khảo API"},failed:"Lưu cấu hình AIGNE thất bại",authorizeAigneHub:"Kết nối với {name}",baseUrl:"URL Hub AIGNE",disconnect:"Ngắt kết nối",disconnectConfirm:"Bạn có chắc muốn ngắt kết nối khỏi AIGNE Hub không? Điều này sẽ xóa cấu hình AI hiện tại.",disconnectSuccess:"Ngắt kết nối thành công với AIGNE Hub",disconnectFailed:"Không thể ngắt kết nối từ AIGNE Hub",testConnection:"Kiểm tra kết nối {provider}",invalidUrl:"URL {provider} không hợp lệ",description:"Cấu hình hiện tại sẽ có hiệu lực khi {name} đang chạy. Cần lưu và khởi động lại Blocklet để có hiệu lực.",revokeUrlAuthTitle:"Xác nhận thay đổi {url}?",revokeUrlAuth:"Bạn có chắc muốn thay đổi {url}? Sau khi sửa đổi, quyền cấp phép của bạn sẽ không hợp lệ và cần được cấp phép lại!",testSuccess:"Đã kết nối thành công với AIGNE Hub",check:"Kiểm tra",apiKeyNotAuthorized:"Khóa API không được phép. Vui lòng nhấn nút kết nối với AIGNE Hub để cấp quyền",switchUser:"Chuyển Người Dùng",connectTimeOut:"Kết nối đến {provider} hết thời gian, vui lòng thử lại sau",restart:{title:"Khởi động lại Blocklet",connectedContent:"Blocklet của bạn hiện đang kết nối với {provider}. Cấu hình sẽ có hiệu lực sau khi khởi động lại. Bạn muốn khởi động lại ngay bây giờ?",notConnectedContent:"Blocklet của bạn hiện đang ngắt kết nối với {provider}. Cấu hình sẽ có hiệu lực sau khi khởi động lại. Bạn có muốn khởi động lại ngay không?",confirm:"Khởi Động Lại Ngay",cancel:"Khởi Động Lại Sau"},testFailed:"Không thể kết nối với AIGNE Hub. Vui lòng kiểm tra URL hoặc mạng của bạn.",addCredits:"Mua Tín Dụng",transaction:"Giao dịch",connected:"Kết nối thành công",account:"Thông Tin Tài Khoản",pendingCredit:"Các Khoản Phí Chưa Thanh Toán",infinite:"Không giới hạn",config:"Cấu hình AIGNE Hub"}},notification:{title:"Thông báo",history:"Lịch sử",channelSettings:"Cài đặt kênh",empty:"Chưa có hoạt động",viewAll:"Xem Tất Cả",showRead:"Hiển thị Đọc",markAllAsRead:"Đánh dấu tất cả là đã đọc",markAsRead:"Đánh dấu đã đọc",proceed:"Tiếp tục",checkingForUpdates:"Đang kiểm tra cập nhật...",email:{enable:"Bật thông báo",from:"Người gửi Email",host:"Host máy chủ SMTP",port:"Cổng Server SMTP",user:"Tên người dùng SMTP",secure:"Kết nối an toàn",password:"Mật khẩu SMTP",fromRequired:"Người gửi email là bắt buộc",fromInvalid:"Người gửi email không hợp lệ",receiverRequired:"Người nhận email bắt buộc",receiverInvalid:"Người nhận email không hợp lệ",hostRequired:"Máy chủ SMTP cần được cung cấp",hostInvalid:"Máy chủ SMTP không hợp lệ",portRequired:"Cổng máy chủ SMTP là bắt buộc",portInvalid:"Cổng máy chủ SMTP không hợp lệ, cổng phải từ 1 đến 65535",userRequired:"Cần nhập tên người dùng máy chủ SMTP",passwordRequired:"Yêu cầu mật khẩu người dùng máy chủ SMTP",testSuccess:"Gửi email kiểm tra thành công",testFailed:"Gửi email thử thất bại",testReceiver:"Người nhận Email",testSendEmail:"Thử gửi email",inputTestReceiver:"Vui lòng nhập email nhận kiểm tra",disable:"Hủy đăng ký thông báo qua email",disableDescription:"Sau khi hủy đăng ký, bạn sẽ không còn nhận được thông báo qua email nữa. Để nhận thông báo qua email, bạn có thể đăng ký lại trang này.",unsubscribe:"Hủy đăng ký thông báo qua email",unsubscribeDescription:"Sau khi hủy đăng ký, bạn sẽ không còn nhận được bất kỳ thông báo qua email nào nữa.",subscribe:"Đăng ký",subscribeDescription:"Để nhận thông báo qua email, bạn có thể đăng ký lại trên trang cài đặt.",companyName:"Tên Công ty",companyLink:"Liên kết Công ty",companyAddress:"Địa chỉ Công ty",supportEmail:"Email Hỗ trợ",emailInvalid:"Email không hợp lệ",linkInvalid:"Liên kết không hợp lệ, phải bắt đầu bằng http hoặc https",signature:"Chữ ký",signatureTooltip:"Chữ ký email được sử dụng ở cuối để cung cấp cho người nhận thông tin quan trọng về người gửi."},wallet:{description:"Thông báo Wallet DID luôn được bật cho tất cả người dùng."},webhooks:{description:"Thông báo gửi qua webhooks luôn được bật cho tất cả người dùng."},comingSoon:"Có thêm kênh thông báo đang được xây dựng",unsubscribe:"Huỷ đăng ký",unsubscribeSucceed:"Hủy đăng ký thành công",unsubscribeFailed:"Hủy đăng ký không thành công",unsubscribeTokenRequired:"Mã token hủy đăng ký bắt buộc",unsubscribeTokenExpired:"Mã hủy đăng ký đã hết hạn",unsubscribeTokenInvalid:"Mã hủy đăng ký không hợp lệ",installComponentError:"Không tìm thấy thành phần {name} đã gỡ cài đặt",installingComponent:"Đang cài đặt thành phần {name}",pushKit:{enable:"Bật thông báo",endpoint:"PushKit endpoint",endpointInvalid:"Điểm cuối PushKit là URL không hợp lệ",testSuccess:"Đẩy thử PushKit thành công",testFailed:"Thử nghiệm gửi PushKit không thành công",testReceiver:"Máy thu PushKit",testSend:"Thử nghiệm đẩy push-kit",inputTestReceiver:"Vui lòng nhập máy thu thử nghiệm",receiverRequired:"Cần có bộ thu PushKit",pushPath:"Đường dẫn api cho push-kit (mặc định /api/push)",did:"PushKit Blocklet DID",customOptions:"Tùy Chọn Tùy Chỉnh"},notificationDetails:"Chi tiết thông báo",receiver:"Người nhận",sendStatus:{success:"Đã gửi",failed:"Thất bại",sentTime:"Gửi vào lúc: {date}",pending:"Đang chờ",reason:{enabled:"Người dùng đã bật thông báo {channel}",disabled:"Người dùng chưa bật thông báo {channel}",unavailable:"Blocklet hiện tại chưa cấu hình thông báo {channel}",available:"Blocklet hiện tại đã cấu hình thông báo {channel}",notSent:"Tin nhắn hiện tại chưa được gửi đến {channel}",offline:"Người dùng đang ngoại tuyến"},count:"{count}",total:"Tổng cộng"},filter:"Lọc",notificationPreview:"Xem trước Thông báo",resend:"Gửi lại",resendLimit:"Bạn có thể gửi lại thông báo tối đa ba lần mỗi ngày.",from:"Từ",to:"Cho",body:"Cơ thể",notificationTitle:"Tiêu đề",createdAt:"Tạo lúc",status:"Trạng thái",system:"Hệ thống",severity:"Mức độ nghiêm trọng",config:"Configs",selectChannels:"Chọn Kênh",selectChannelsTip:"Chọn các kênh để gửi lại",resendFailedOnly:"Gửi lại chỉ đến các kênh đã thất bại",statistics:"Thống kê",allSender:"Tất cả Người gửi",allSeverity:"Tất cả mức độ nghiêm trọng",severityType:{info:"Info",success:"Thành công",warning:"Cảnh báo",error:"Lỗi"},clear:"Xóa",allDone:"Hoàn tất",filterType:{all:"Tất cả",unread:"Chưa đọc"},viewMore:"Xem Thêm"},router:{routerSetting:"Domínio và URL",certSetting:"Chứng chỉ SSL",defaultSite:"Mặc định",urlHelperText:"URL không bắt đầu bằng HTTP/HTTPS được coi là đường dẫn tương đối",empty:"Nhấp vào Tác vụ để thiết lập Bản đồ URL",healthy:{ok:"Blocklet hoặc dịch vụ đang chạy",error:"Khối hoặc dịch vụ không chạy hoặc chưa được cài đặt"},service:{select:"Chọn Dịch vụ Blocklet (Tùy chọn)",what:"Dịch vụ Blocklet là các đường ống thực hiện trước yêu cầu trước khi chuyển hướng đến blocklet trên"},nonProvider:{title:"Cảnh báo Thay đổi Động cơ",description:"Nếu bạn thay đổi động cơ thành none, trang hiện tại của bạn có thể không hoạt động đúng vì động cơ trước đó sẽ bị dừng, bạn có chắc chắn tiếp tục không?",confirm:"Tôi hiểu, tiếp tục"},validation:{urlRequired:"URL là bắt buộc",redirectCodeRequired:"Mã chuyển hướng bắt buộc",didRequired:"Blocklet là bắt buộc",pathPrefixTooLong:"Tiền tố URL không được vượt quá {length} ký tự",pathPrefixCannotBeEmpty:"Tiền tố URL không được để trống",domainRequired:"Yêu cầu tên miền máy chủ",invalidUrl:"Vui lòng cung cấp một URL hợp lệ",pathPrefixRequired:"Yêu cầu tiền tố URL",redirectUrlRequired:"Yêu cầu URL chuyển hướng",rewriteUrlRequired:"Cần phải viết lại URL"},domain:{addSite:"Thêm Trang",validate:{emptyTip:"Tên miền trang web không thể để trống",suffixTip:"Tên miền trang web không thể bao gồm {suffix}"},add:{title:"Thêm Tên Miền",description:"Vui lòng cung cấp tên miền hợp lệ",confirm:"Thêm",cancel:"Hủy bỏ",blocklet:"Chọn Blocklet",redirect:"Hướng dẫn chuyển hướng lưu lượng?",port:"Cổng nào mà trình xử lý yêu cầu của bạn cần nghe?",portTip:"Mặc định là cổng chính của trình xử lý yêu cầu, bạn có thể tùy chỉnh điều này",type:"Người điều khiển giao thông",component:"Chọn thành phần",pageGroup:"Nhóm Trang",pageGroupTip:"Thành phần này có thể hiển thị bất kỳ nhóm trang nào được liệt kê ở trên, để trống để hiển thị tất cả các trang"},update:{title:"Cập nhật tên miền trang web",label:"Tên miền trang web",description:"Vui lòng cung cấp một tên miền trang web hợp lệ"},setup:{tipStart:"Thêm các bản ghi DNS cho tên miền",tipEnd:"Theo hướng dẫn dưới đây",recordType:"Loại Bản ghi",recordValue:"Giá trị ghi"},verify:{ok:"Giải quyết tên miền bình thường",notResolved:"Miền này không được giải quyết hoặc truy cập, vui lòng kiểm tra cấu hình DNS của bạn."},https:{ok:"Tên miền này đã kích hoạt https",bad:"Tên miền này chưa bật https"},delete:{title:"Xóa trang",description:'Bằng cách xác nhận, bạn sẽ xóa trang web "{name}" hiện có của bạn. Nhập "{name}" vào phần dưới và chọn Xóa để hoàn tất thay đổi, hoặc chọn Hủy bỏ nếu bạn muốn giữ lại trang web của bạn.',confirm_desc:"Vui lòng nhập {name} để xác nhận"}},domainAlias:{nftDomain:"Cấu hình tự động với Tên DID",showTipHint:"Làm thế nào để cấu hình giải quyết tên miền?",add:{title:"Thêm tên miền bổ sung",domainDescription:"Vui lòng cung cấp tên miền hợp lệ",forceTip:"Thêm bắt buộc nếu tên miền đã tồn tại",helperText:"Nếu nhập một URL HTTP hoặc HTTPS, nó sẽ tự động chuyển đổi thành tên miền.",isDidDomainError:"Miền này là Miền DID. Vui lòng thêm nó bằng phương pháp cấu hình miền tự động.",tips:"Bạn có thể nhập tên miền mua từ DID Names hoặc bất kỳ tên miền nào khác. Nếu đó là Miền DID, bạn phải xuất trình NFT Miền DID để tiếp tục."},addCustomDomain:{name:"Tên miền tùy chỉnh"},addDomainNFT:{showNFT:"Cấu hình tên miền tự động",tips:"Bạn có thể nhập một domain đã mua từ DID Names. Nếu phát hiện một Domain DID, bạn phải xuất trình NFT Domain DID để tiếp tục.",connect:{scan:"Sử dụng một trong các phương pháp sau để kết nối {domain} với {appName}",confirm:"Xác nhận trong tài khoản của bạn",success:"Cho phép thành công",title:"Kết nối tên DID với {appName}"},buyTip:"Tên DID sẽ tự động phân giải tên miền, không cần cấu hình thủ công và blocklet sẽ tự động cập nhật bản ghi phân giải tên miền khi cần. Nếu bạn chưa có DID Domain NFT, ",buy:"Mua Tên miền DID",topLevelDidDomainHint:"Đối với Miền DID, nếu bạn nhập một miền cấp cao nhất (ví dụ: example.com), nó sẽ tự động được cấu hình thành www.example.com",authorizeFailed:"Không lấy được thông tin NFT miền, vui lòng thử lại!"},delete:{title:"Xóa",description:'Sau khi xóa "{domain}", truy cập vào alias đó có thể không được xử lý đúng cách.',confirmPlaceholder:'Nhập "{domain}" để xóa'},custom:"Tên miền tùy chỉnh",noCustom:"Không có miền tùy chỉnh",noCustomTip:"Chưa có tên miền tùy chỉnh nào được cấu hình với trang web của bạn. Để tăng cường bảo mật và trải nghiệm người dùng tốt hơn, chúng tôi khuyên bạn nên cấu hình tên miền tùy chỉnh của riêng mình. Nhấp vào bên dưới để bắt đầu."},domainSecurity:{title:"Bảo mật miền",cors:{title:"Tên miền CORS được phép",description:'Danh sách tên miền có thể gửi yêu cầu gốc chéo đến {name}, phân tách bằng dấu phẩy, sử dụng "*" để cho phép bất kỳ ai, điều này không được khuyến nghị',domainInvalid:"Vui lòng nhập một danh sách tên miền hợp lệ"}},rule:{add:{title:"Thêm Ánh xạ địa chỉ URL",confirm:"Thêm",pathPrefix:"Tiền tố URL là gì?",pathPrefixTip:"Nếu bạn đặt tiền tố là '/tiền-tố-của-tôi', thì tất cả các yêu cầu bắt đầu bằng tiền tố đó sẽ được định tuyến đến khối đã được cấu hình",blocklet:"Blocklet nào sẽ xử lý những yêu cầu đó?",port:"Cổng nào của blocklet sẽ xử lý các yêu cầu?",portTip:"Mặc định là cổng chính của blocklet, nếu blocklet của bạn lắng nghe trên nhiều cổng, bạn có thể tùy chỉnh điều này",responseType:"Loại phản hồi",responseBody:"Nội dung phản hồi",responseBodyTip:"Dán nội dung đáp ứng của bạn vào đây, không vượt quá 4096 ký tự",responseBodyRequired:"Nội dung phản hồi không thể trống"},delete:{title:"Xóa Liên kết URL",description:'Bằng cách xác nhận, bạn sẽ xóa Bản đồ URL "{name}" hiện có của bạn. Nhập "{name}" vào bên dưới và chọn Xóa để hoàn tất thay đổi hoặc chọn Hủy nếu bạn muốn giữ Bản đồ URL của bạn.',confirm_desc:"Vui lòng nhập {name} để xóa",cancel:"Hủy"},update:{title:"Cập nhật Gán địa chỉ URL",confirm:"Có, Cập nhật",cancel:"Hủy bỏ"}},cert:{name:"Tên Chứng chỉ",domain:"Tên miền",action:"Hành động",commonName:"Tên thông thường",boundDomains:"Tên miền",source:"Nguồn",expired:"Hết hạn",leftDays:"ngày còn lại",issuedOn:"Được phát hành vào",expiryOn:"Hết hạn vào",fingerprintAlg:"Thuật toán Vân tay",validityPeriod:"Thời hạn hiệu lực",matchedSites:"Các trang phù hợp",upload:"Tải lên thủ công",publicCertHelperText:"Chứng chỉ công cộng có thể được tải xuống",nonPublicCertHelperText:"Không thể tải xuống chứng chỉ không công khai",protectedCertHelperText:"Chứng chỉ bảo vệ không thể chỉnh sửa",unprotectedCertHelperText:"Chứng chỉ chưa được bảo vệ có thể được chỉnh sửa",issuing:"Đang tạo chứng chỉ",sourceTypes:{upload:"Tải lên bằng tay",lets_encrypt:"Hãy Mã hóa"},table:{nodata:"Không có dữ liệu"},delete:{title:"Xóa Chứng chỉ",description:"Xác nhận xóa chứng chỉ của miền {domain}? Xóa nó có thể ảnh hưởng đến các dịch vụ liên quan. Vui lòng xác nhận rằng nó an toàn trước khi tiếp tục xóa.",confirm:"Xác nhận"},nginx:{title:"Cập nhật Chứng chỉ",titleAdd:"Thêm Chứng chỉ",pem:"Tập tin chứng chỉ SSL",pemTip:'Vui lòng thả tệp chứng chỉ máy chủ của bạn vào đây, tệp nên kết thúc bằng ".pem" hoặc ".crt"',key:"Tệp Khóa Riêng",keyTip:"Vui lòng thả tệp khóa riêng của máy chủ của bạn vào đây, nó phải kết thúc bằng '.pem' hoặc '.key'",confirm:"Lưu",cancel:"Hủy",invalidFile:"Bạn đã chọn một tệp không hợp lệ",empty:"Chưa chọn tệp nào",source:"Nguồn",sourceTypes:{upload:"Tải lên thủ công",lets_encrypt:"Hãy mã hóa"}},detail:{title:"Chi tiết Chứng chỉ"},genLetsEncryptCert:{title:"Tạo chứng chỉ Let's Encrypt",dnsTip:"Vui lòng đảm bảo tên miền đã trỏ đến Máy chủ Blocklet hiện tại.",description:"Thêm một chứng chỉ sẽ làm cho dịch vụ an toàn hơn, và Blocklet Server sẽ tự động gia hạn chứng chỉ trước khi hết hạn."}},gateway:{reqLimit:{switchLabel:"Bật giới hạn yêu cầu đồng thời để có hiệu suất đáng tin cậy",rate:"Giới hạn yêu cầu đồng thời mỗi IP tới {rate} mỗi giây (giới hạn mỗi IP)",title:"Giới hạn yêu cầu",global:"Giới hạn các yêu cầu đồng thời được gateway xử lý tới {global} mỗi giây (giới hạn toàn cục)",burstFactor:"Hệ số đột biến cho việc giới hạn tốc độ, áp dụng cho cả giới hạn toàn cầu và giới hạn theo IP (toàn cầu: {global}, theo IP: {rate})",methods:"Giới hạn yêu cầu đồng thời theo IP cho các phương thức sau",burstDelay:"Sự chậm trễ khi các yêu cầu đột biến vượt quá giới hạn mỗi IP ({delay} giây)"},cacheEnabled:{switchLabel:"Bật bộ nhớ đệm gateway để tăng hiệu suất",title:"Bộ nhớ đệm Gateway"},blockPolicy:{switchLabel:"Chặn Yêu Cầu",addItem:"Thêm Mục",blacklistDesc:"Yêu cầu từ các IP này sẽ bị chặn khỏi việc truy cập vào Máy chủ này và tất cả các Blocklet",inputPlaceholder:"Nhập địa chỉ IP, phạm vi CIDR hoặc URL",invalidItem:"Địa chỉ IP, phạm vi CIDR hoặc URL không hợp lệ",title:"Chặn Yêu cầu",autoBlocking:{switchLabel:"Chặn yêu cầu xấu bằng cách phát hiện thời gian thực",windowSize:"Kích thước cửa sổ thời gian để đếm yêu cầu (giây)",windowQuota:"Số lượng yêu cầu tối đa (mỗi IP) được phép trong cửa sổ",blockDuration:"Thời gian chặn người dùng theo IP khi vượt quá giới hạn trong cửa sổ (giây)",statusCodes:"Mã trạng thái cần kiểm tra"}},proxyPolicy:{switchLabel:"Chạy sau các proxy",trustRecursive:"Tin cậy các proxy theo cách đệ quy",trustRecursiveDesc:"Sử dụng địa chỉ IP ngoài cùng bên trái trong chuỗi X-Forwarded-For",trustedProxies:"Proxy Đáng Tin Cậy",trustedProxiesDesc:"Yêu cầu từ các IP này sẽ được tin cậy để lấy IP thực của khách hàng",realIpHeaderLabel:"Đầu IP Khách hàng",realIpHeaderDesc:"Nếu máy chủ Blocklet đang chạy đằng sau các proxy như CloudFront, bạn có thể đặt tiêu đề của IP thực của khách hàng ở đây.",addItem:"Thêm mục",inputPlaceholder:"Nhập địa chỉ IP, phạm vi CIDR",invalidItem:"Địa chỉ IP không hợp lệ, phạm vi CIDR",title:"Chính sách Proxy"},wafPolicy:{switchLabel:"Phát hiện và chặn các yêu cầu xấu với ModSecurity",modeDesc:"Chế độ modsecurity (cần có mô-đun modsecurity)",mode:{detectOnly:"Chỉ phát hiện (sẽ không chặn yêu cầu)",on:"Bật (sẽ chặn yêu cầu)"},logLevelDesc:"Mức nhật ký cho ModSecurity (0-9), 0 có nghĩa là tắt nhật ký kiểm tra",inboundAnomalyScoreThresholdDesc:"Ngưỡng điểm bất thường đầu vào (1-100), giá trị thấp hơn nghĩa là nghiêm ngặt hơn",outboundAnomalyScoreThresholdDesc:"Ngưỡng điểm bất thường đầu ra (1-100), giá trị thấp hơn có nghĩa nghiêm ngặt hơn",docDesc:"Kiểm tra tài liệu để biết cách thiết lập modsecurity",title:"Tường lửa Ứng dụng Web"}}},noMatch:{desc:"Chúng tôi không thể tìm thấy trang bạn đang tìm kiếm"},health:{connectionErrorTip:"Blocklet Server không thể kết nối với mạng, vui lòng kiểm tra xem Blocklet Server đã bị dừng hoặc có vấn đề về mạng",connectionRecoveryTip:"Đã khôi phục kết nối với máy chủ Blocklet",connectionStoppedTip:"Máy chủ Blocklet đã được tắt",wrongAccessUrlTip:"Địa chỉ truy cập máy chủ Blocklet không đúng, vui lòng sử dụng địa chỉ truy cập đúng"},debug:{title:"Máy chủ Blocklet của bạn đã hoạt động!"},team:{invite:{action:"Mời Mới",setting:"Cài đặt Mời",enabled:"Vô hiệu hóa cài đặt này để hạn chế lời mời người dùng mới chỉ cho chủ sở hữu/quản trị viên",disabled:"Bật cài đặt này để cho phép bất kỳ người dùng nào mời người dùng mới",inviter:"Được Mời Bởi"},add:"Thêm Mới",member:{name:"Tên",passport:"Hộ chiếu",passports:"Hộ chiếu",lastLogin:"Lần đăng nhập cuối",lastLoginIp:"IP đăng nhập gần nhất",source:"Đăng ký Nguồn",source_derived:"Bắt nguồn từ OAuth",source_wallet:"Ví DID",filter:"Lọc theo",blockAccess:"Cấm đăng nhập",blockAccessDescription:"Người dùng sẽ không thể kết nối với ứng dụng này",allowAccess:"Cho phép Đăng nhập",allowAccessDescription:"Người dùng sẽ có thể kết nối với ứng dụng này",updateRole:"Cập nhật Vai trò",removeUser:"Xóa Người dùng",removeUserDescription:'Xác nhận xóa người dùng "{name}"?',revokePassport:"Thu hồi Hộ chiếu",revokePassportDescription:"Một khi hộ chiếu bị thu hồi, người giữ hộ chiếu không thể sử dụng nó để đăng nhập lại, bạn có chắc chắn muốn tiếp tục không?",enablePassport:"Kích hoạt Hộ chiếu",enablePassportDescription:"Sau khi hồ sơ hủy bỏ được kích hoạt lại, chủ sở hữu hộ chiếu có thể sử dụng nó để đăng nhập lại, bạn có chắc chắn muốn tiếp tục không?",passportPermissionTitle:"Hộ chiếu có các quyền sau:",search:"Tìm Kiếm Thành Viên",onlyApprovedMember:"Chỉ Hiện Được Phê Duyệt",inviteDialog:{createInviteLink:"Tạo liên kết mời",createSuccessTip:"Liên kết mời đã được tạo thành công, nhấn để sao chép và gửi liên kết cho thành viên được mời. Vui lòng lưu ý rằng liên kết mời này không thể sử dụng lại và sẽ hết hạn vào {expireDate}."},error:{passportEmpty:"Hộ chiếu không được để trống"},connectedAccounts:"Tài khoản Đã kết nối",connections:"Kết nối",federated:"Liên minh",switch:{did:"Chuyển đổi DID",profile:"Chuyển đổi Hồ sơ",passport:"Đổi Hộ chiếu"},settings:{notification:"Thông báo",email:"Gửi email cho tôi khi có một số sự kiện xảy ra",wallet:"Gửi thông báo đến ví của tôi khi có một số sự kiện xảy ra",phone:"Gửi tin nhắn đến tôi khi các sự kiện xảy ra",webhook:"Webhooks",add:"Thêm webhook mới",url:"URL tùy chỉnh",slack:"Slack Webhook",tested:"Tin nhắn kiểm tra đã được gửi"},activeUserSessions:"Phiên người dùng hoạt động",forceLogout:"Đăng xuất bắt buộc",forceLogoutDescription:"Xác nhận đăng xuất buộc người dùng này?",openProfile:"Xem hồ sơ",removeUserSuccess:"Người dùng đã bị xóa thành công",forceLogoutRemoveDescription:"Xác nhận để buộc đăng xuất người dùng này (Cũng xoá tất cả phiên người dùng)?"},transferNode:{name:"Chuyển quyền sở hữu",inviteDialog:{title:"Chuyển máy chủ Blocklet",tips:{progress:"Việc chuyển đổi máy chủ cần được người nhận chấp nhận để hoàn tất hoạt động chuyển đổi và một khi người nhận đã chấp nhận, bạn không thể đăng nhập vào máy chủ với hộ chiếu hiện tại nữa.",newOwnerPermissions:"Chủ sở hữu mới sẽ có quyền quản lý tất cả các hoạt động như thành viên, hộ chiếu và Blocklets.",revoke:'Nếu bạn muốn rút lại lời mời chuyển giao, bạn có thể xóa liên kết mời trên trang "Nhóm -> Thành viên -> Mời".'},createInviteLink:"Tạo Liên kết Mời",createSuccessTip:"Liên kết mời đã được tạo thành công, nhấp để sao chép và gửi liên kết đến thành viên được mời, lưu ý rằng liên kết mời này không thể tái sử dụng và sẽ hết hạn vào {expireDate}."},delegateDialog:{title:"Yêu cầu ủy quyền",scan:"Sử dụng các phương pháp sau để ủy quyền cho máy chủ chuyển nhượng NFT quyền sở hữu máy chủ.",confirm:"Xác nhận trong tài khoản của bạn",success:"Xác thực thành công"}},transferApp:{name:"Chuyển Quyền Sở Hữu",transferDialog:{title:"Ứng dụng Chuyển khoản",tips:{progress:"Yêu cầu chuyển tiền phải được người nhận chấp nhận để hoàn tất thao tác chuyển tiền, và một khi người nhận chấp nhận, bạn không thể đăng nhập vào ứng dụng bằng hộ chiếu hiện tại.",newOwnerPermissions:"Chủ sở hữu mới sẽ có quyền quản lý tất cả các hoạt động như thành viên, hộ chiếu và cài đặt."},createTransferLink:"Tạo liên kết Chuyển khoản",createSuccessTip1:'Liên kết chuyển nhượng đã được tạo thành công, người được mời phải sử dụng <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> để nhận quyền sở hữu ứng dụng',createSuccessTip2:"Vui lòng nhấp để sao chép và gửi liên kết đến thành viên được mời, lưu ý rằng liên kết chuyển này không thể tái sử dụng và sẽ hết hạn vào ngày {expireDate}. Liên kết chuyển của bạn chỉ được hiển thị một lần và sẽ không thể xem được sau khi đóng hộp thoại này.",createSuccessTip3:"Sau khi chuyển thành công, ứng dụng sẽ tự động khởi động lại để thay đổi có hiệu lực.",link:"Liên kết chuyển tiền",iKnow:"Tôi đã sao chép và lưu liên kết"},connectDialog:{title:"Yêu cầu Xin phép",scan:"Sử dụng các phương pháp sau để ủy quyền cho ứng dụng chuyển nhượng quyền sở hữu.",confirm:"Xác nhận trong tài khoản của bạn",success:"Xác thực thành công"},receiveDialog:{title:"Nhận Quyền Sở Hữu Ứng Dụng",scan:"Sử dụng các phương pháp sau để nhận quyền sở hữu ứng dụng.",confirm:"Xác nhận trong tài khoản của bạn",success:"Nhận Quyền Sở Hữu Thành Công"},successTitle:"Bạn đã trở thành chủ sở hữu mới của ứng dụng này",visitDashboard:"Truy cập Bảng điều khiển Ứng dụng",description:"Bạn có thể chuyển quyền sở hữu ứng dụng của mình cho ví hoặc người khác."},permission:{create:{title:"Tạo Quyền",description:"Định dạng: <hành động>_<tài nguyên>"},delete:{title:"Xóa Quyền",description:"Xác nhận xóa {name}?"},error:{actionEmpty:"Hành động không thể trống",resourceEmpty:"Tài nguyên không thể trống",permissionTooLong:"Quyền không được vượt quá {length} ký tự",descriptionTooLong:"Mô tả không được vượt quá {length} ký tự"}},passport:{create:{title:"Tạo hộ chiếu",titleTip:"Tiêu đề không thể chỉnh sửa sau khi tạo, nên giới hạn trong 14 chữ cái"},bind:{title:"Gán Phân Quyền",roleTip:"Bạn sẽ nhận được tất cả các quyền của hộ chiếu đã chọn sau khi ràng buộc",permissionTip:"Bạn sẽ nhận được các quyền đã chọn sau khi ràng buộc",transferLeftTitle:"Tất cả các quyền",transferRightTitle:"Được cấp quyền"},delete:{title:"Xóa Hộ chiếu",description:"Các hộ chiếu mà người dùng đang sở hữu sẽ mất mọi quyền sau khi bị xóa. Bạn có chắc chắn muốn tiếp tục?"},error:{titleEmpty:"Tiêu đề không thể bỏ trống",titleTooLong:"Tiêu đề không được vượt quá {length} ký tự",descriptionEmpty:"Mô tả không thể để trống"},issuance:{pending:"Đang chờ",create:{title:"Tạo liên kết"},delete:{title:"Xóa Liên kết Nhận",description:"Xác nhận xóa {link}?"}},issue:"Phát hành hộ chiếu",disableIssuance:"Vô hiệu hóa Cấp phát Hộ chiếu",enableIssuance:"Bật Phát Hành Hộ Chiếu",disableIssuanceTip:'Các hoạt động "Cấp hộ chiếu", "Mời thành viên" và các hoạt động khác sẽ bị vô hiệu',enableIssuanceTip:"Cấp Hộ chiếu",trustedPassportIssuers:"Nhà cấp hộ chiếu đáng tin cậy",trustedIssuers:"Người phát hành đáng tin cậy",trustedFactories:"Bộ sưu tập NFT đáng tin cậy",trustedFactoriesTip:"Quản lý bộ sưu tập NFT đáng tin cậy có thể được sử dụng để trao đổi cho hộ chiếu",searchFactoryAddress:"Tìm bộ sưu tập DID",configFactories:"Cấu hình Bộ sưu tập NFT Đáng tin cậy",configFactoriesTip:"Cho phép người dùng đổi NFT cho hộ chiếu",factoryAddress:"Địa chỉ Bộ sưu tập NFT",factory404:"Bộ sưu tập NFT không tìm thấy",factoryAddressTip:"Địa chỉ bộ sưu tập NFT phải tồn tại trên ArcBlock Main Chain",role:"Loại hộ chiếu",ttl:"Chính sách hết hạn Hộ chiếu",ttlNever:"Không bao giờ hết hạn",ttlMint:"Kể từ khi mua NFT",ttlExchange:"Kể từ Trao đổi Hộ chiếu",ttlNeverTip:"Hộ chiếu sẽ có giá trị cho đến khi bị thu hồi",ttlMintTip:"Hộ chiếu sẽ có giá trị từ khi mua NFT cho đến khi bạn chỉ định thời gian (ttl) hoặc thu hồi",ttlExchangeTip:"Hộ chiếu sẽ hợp lệ từ thời điểm người dùng đổi thành công cho đến khi bạn chỉ định ttl hoặc thu hồi",ttlTip:'"365d" có nghĩa là 365 ngày, bạn cũng có thể sử dụng "30 ngày" hoặc "24 giờ"',validUntil:"Có hiệu lực đến: {date}",externalPassport:"Hộ chiếu ngoại",notTrustedIssuerTip:"Hộ chiếu không thể được sử dụng vì người cấp không có trong danh sách người cấp phát đáng tin cậy",issuerDid:"DID NGƯỜI CÃƠ QUAN PHÁT HÀNH",addNodeToTrustedIssuers:"Thêm máy chủ hiện tại như một nhà phát hành hộ chiếu đáng tin cậy",revoked:"Rút lại",noPermission:"Không có quyền để thực hiện thao tác này",shouldNotDeleteCurrent:"Bạn không thể thu hồi hộ chiếu đang sử dụng hiện tại",mappingRule:"Quy tắc ánh xạ",defaultRule:"Luật mặc định",search:"Tìm Hộ Chiếu",searchIssuerDid:"Tìm kiếm Nhà phát hành DID",issueBy:"Vấn đề bởi {name}",configColor:"Cấu hình Màu Hộ Chiếu",configColorTip:"Tùy chỉnh màu hộ chiếu",color:"Màu Hộ Chiếu",description:"Sử dụng hộ chiếu này để kết nối {teamName} là {title}",displayBuiltin:"Được tích hợp sẵn",displayCustom:"Tùy chỉnh",typesTip:"Tùy chỉnh các loại hộ chiếu, phân chia bằng dấu phẩy",issuanceDate:"Ngày phát hành: {date}",sourceMaps:{recover:"Khôi phục",issue:"Đã phát hành",invite:"Được mời",trusted:"Đáng tin cậy"},related:"Hộ chiếu Liên quan",operationLogs:" Nhật ký hoạt động",owner:"Chủ sở hữu",status:"Trạng thái",statusMap:{valid:"Hợp lệ",revoked:"Đã thu hồi",expired:"Hết hạn"},view:"Quản lý Hộ chiếu",trustedPassportIssuersTip:"Quản lý các nhà phát hành hộ chiếu đáng tin cậy có thể được sử dụng để cấp hộ chiếu",issuanceTime:"Thời gian phát hành",relatedDescription:"Hộ chiếu hiện tại được lấy từ hộ chiếu sau",passportExpireTime:"Đặt ngày hết hạn cho Passport",customExpireTime:"Thời gian hết hạn tùy chỉnh",customExpireTimeIsInvalid:"Thời gian hết hạn tùy chỉnh không hợp lệ"},inviting:{link:"Liên kết Mời",inviter:"Người mời",delete:{title:"Xóa Liên kết Mời",description:"Xác nhận xóa {link}?"},disabledTip:"Lời mời không được kích hoạt"},whoCanAccess:{all:{title:"Dễ tiếp cận cho tất cả"},owner:{title:"Chỉ chủ sở hữu"},invited:{title:"Chỉ người dùng được mời"}},userFollowers:{follow:"Theo dõi",unfollow:"Bỏ theo dõi",followersOnly:"Chỉ hiển thị với người theo dõi",followers:"Người theo dõi",following:"Tiếp theo",emptyFollowing:"Bạn chưa theo dõi người dùng nào.",emptyFollowers:"Chưa có người theo dõi.",title:"Theo dõi",invitees:"Người được mời",emptyInvitees:"Bạn chưa mời ai cả."},orgs:{explain:"Cho phép người dùng tạo và tham gia tổ chức, phân công vai trò và quản lý tài nguyên.",description:"Mô tả",deleteConfirm:"Xác nhận xóa {name}?",members:"Thành viên",myCreated:"Tôi Đã Tạo",myJoined:"Đã tham gia của tôi",myCreatedEmpty:"Bạn chưa tạo tổ chức nào.",myJoinedEmpty:"Bạn chưa tham gia tổ chức nào.",deleteConfirmDescription:"Xóa tổ chức này sẽ xóa tất cả các vai trò và tài nguyên được liên kết với nó. Người dùng sẽ vẫn còn trong hệ thống nhưng mất vai trò của họ trong tổ chức này. Hành động này không thể hoàn tác.",active:"Đang hoạt động",deleteOrg:"Xóa Tổ Chức Hiện Tại",invitedAt:"Được mời vào lúc: {time}",joinedAt:"Đã tham gia vào: {time}",createNew:"Tạo Tổ Chức Mới",viewAll:"Xem Tất Cả Các Tổ Chức",validate:{nameEmpty:"Tên không được để trống",nameTooLong:"Tên không được vượt quá {length} ký tự",descriptionTooLong:"Mô tả không được vượt quá {length} ký tự"},mutate:{title:"{mode} Tổ chức",name:"Tên Tổ Chức",createSuccess:"Tổ chức được tạo thành công",updateSuccess:"Đã cập nhật tổ chức thành công",orgNotEnabled:"Tổ chức chưa được bật",maxMemberPerOrg:"Tổ chức có thể mời tối đa {maxMemberPerOrg} thành viên",maxOrgPerUser:"Bạn có thể tạo tối đa {maxOrgPerUser} tổ chức"},invite:{chooseUsersToInvite:"Chọn người dùng để mời",success:"Lời mời đã được gửi đến người dùng",pleaseSelectUsers:"Vui lòng chọn người dùng",pleaseSelectRole:"Vui lòng chọn vai trò",inviteExternalUsers:"Mời người dùng bên ngoài",failed:"{count} lời mời người dùng không thành công, vui lòng thử lại sau",remove:"Xóa người dùng",removeSuccess:"Người dùng đã xóa thành công",limit:"Giới hạn",limitTip:"Giới hạn thành viên tổ chức và tổ chức trên mỗi người dùng",maxMembers:"Tối đa thành viên mỗi org",maxOrgs:"Số lượng tổ chức tối đa trên mỗi người dùng",maxMembersTip:"Số lượng người dùng tối đa có thể được mời cho tổ chức này",inviteLinkSendToEmail:"Liên kết mời đã được gửi đến email ({email}), vui lòng kiểm tra",enterEmailAddress:"Vui lòng nhập địa chỉ email",inviteTitle:"Mời người dùng tham gia {orgName}"},member:{removeMemberConfirm:"Xác nhận xóa {name}?",removeMemberConfirmDescription:"Sau khi xóa, người dùng sẽ mất các vai trò và quyền hạn trong tổ chức. Hành động này không thể hoàn tác.",removeInvitingMember:"Xác nhận hủy lời mời {name}?",removeInvitingMemberDescription:"Sau khi xóa, người dùng sẽ không thể tham gia tổ chức và cần được mời lại. Hành động này không thể hoàn tác."}}},launcher:{provider:"Nhà cung cấp",adminUrl:"URL"},session:{blockAccess:"Bạn đã bị chặn khỏi truy cập vào máy chủ này"},launchBlocklet:{appInfo:"Thông tin ứng dụng",appInfoDesc:"Xác nhận thông tin ứng dụng",author:"Tác giả ứng dụng: {author}",setup:"Cài đặt Blocklet",redirect:"Chuyển hướng",alreadyRunning:"Ứng dụng {name} đã được chạy trên máy chủ Blocklet này",alreadyInstalled:"Ứng dụng {name} đã được cài đặt trên máy chủ Blocklet này",alreadyExists:"Ứng dụng này đã tồn tại, đang chuyển hướng...",purchased:"Đã Mua",purchase:"Mua hàng",nextStep:"Bước Tiếp theo",agreement:"Thỏa thuận Cấp phép",agreeAll:"Đồng ý & Tiếp tục",installing:"Đang cài đặt {appName} trên {serverName}, việc này có thể mất vài phút để hoàn thành, xin vui lòng đợi...",redirecting:"{appName} đã được cài đặt thành công, đang khởi động...",start:"Khởi động",launch:"Cài đặt Blocklet vào máy chủ",launchSuccess:"{appName} đã được khởi chạy thành công!",installSuccess:"Blocklet đã được cài đặt và khởi chạy thành công trên {serverName}",openInRegistry:"Xem trong Blocklet Store",subTitle:"Sẵn sàng cài đặt Blocklet {appName} trên {serverName}",installingSubTitle:"{appName} đang được cài đặt",access:"Mở ứng dụng",viewApplication:"Xem Ứng Dụng",newVersion:"Phiên bản mới",newVersionDesc:"Ứng dụng đã tồn tại, nhưng phiên bản hiện tại có thể nâng cấp",upgradeNow:"Nâng cấp Ngay",later:"Sau",introduction:"Giới thiệu",welcome:"Chào mừng bạn đến với Trình hướng dẫn Khởi chạy Blocklet",accept:"Tôi đồng ý với EULA của Blocklet",license:"Giấy phép ứng dụng",next:"Đồng ý với EULA và tiếp tục",purchaseApp:"Mua Blocklet",setupAppDesc:"Khởi tạo Blocklet của bạn",launched:"Hoàn thành",confirmInstall:"Xác nhận Cài đặt",dialog:{title:"Trở thành chủ sở hữu ứng dụng",nftFreeDescription:"Vui lòng giới thiệu không gian NFT ứng dụng và tạo tài khoản ứng dụng để tiếp tục",nftPaidDescription:"Vui lòng giới thiệu NFT không gian ứng dụng và mua NFT ứng dụng để tiếp tục",freeDescription:"Vui lòng tạo tài khoản ứng dụng để tiếp tục",paidDescription:"Vui lòng trình diễn mua NFT ứng dụng và tạo tài khoản ứng dụng để tiếp tục",confirm:"Xác nhận trong tài khoản của bạn",success:"Cho phép thành công",authorizationTimeout:"Hết thời gian ủy quyền"},waiting:{verifying:"Đang xác minh siêu dữ liệu ứng dụng...",downloading:"Đang tải xuống gói ứng dụng...",downloadingComponent:"Đang tải xuống {name}",extractingComponent:"Trích xuất {name}",extracting:"Đang trích xuất gói ứng dụng...",installing:"Đang cài đặt các thành phần ứng dụng...",installed:"Đã cài đặt",starting:"Bắt đầu ứng dụng...",done:"Ứng dụng của bạn đang khởi chạy...",parsing:"Đang phân tích meta dữ liệu ứng dụng...",initializing:"Đang khởi tạo cấu hình ứng dụng...",initializingOwner:"Đang khởi tạo chủ sở hữu ứng dụng...",creatingSecurityRules:"Đang tạo các quy tắc bảo mật mặc định...",assigningDomain:"Đang gán tên miền mặc định...",waitingForDomain:"Đang chờ miền mặc định có hiệu lực..."},error:{loadMetaFailed:"Không thể tải thông tin ứng dụng",appMetaNotFound:"Không tìm thấy thông tin cho ứng dụng này",downloadFailed:"Không tải được ứng dụng, vui lòng thử lại",installFailed:"Không cài đặt được ứng dụng, vui lòng thử lại",startFailed:"Không thể khởi động ứng dụng, vui lòng thử lại",launchFailed:"Không khởi động được ứng dụng, vui lòng thử lại",installedButStopped:"Ứng dụng được cài đặt thành công, nhưng không thể khởi động. Bạn có thể khởi động nó thủ công sau khi giải quyết các vấn đề chặn",installedButError:"Ứng dụng đã được cài đặt thành công, nhưng không khởi động được",restoreFailed:"Không thể khôi phục ứng dụng, vui lòng thử lại",resourceBlocklet:"Không thể khởi chạy khối chức năng này trực tiếp, nhưng bạn có thể thêm khối chức năng này vào ứng dụng hiện có."},steps:{introduction:"Giới thiệu",installApp:"Cài đặt Ứng dụng",purchaseSpace:"Mua Không gian",prepareSpace:"Chuẩn bị không gian"},installRelatedComponents:"Cài đặt các Blocklet liên quan",canNotInstall:"Không thể cài đặt",dockerBlockletCantInstall:"Không thể cài đặt Blocklet, vì Server Blocklet chưa kích hoạt Docker hoặc Docker Network",nav:{myApps:"Ứng dụng của tôi",viewMyApps:"Xem Ứng Dụng Của Tôi"},withoutWallet:"Bỏ qua kết nối ví DID",nwFailed:"Không thể truy xuất quy trình làm việc.",alreadyConsumed:"Phiên bản khởi chạy đã được sử dụng",redirectToLauncherBlocklet:"Đang chuyển hướng đến Launcher Blocklet"},issuePassport:{title:"Nhận Hộ chiếu",description:"Sử dụng các phương pháp sau để nhận hộ chiếu do {name} cấp",dialog:{scan:"Sử dụng các phương pháp sau để nhận hộ chiếu",confirm:"Xác nhận trong tài khoản của bạn",success:"Hộ chiếu đã được thêm vào ví của bạn thành công",loginWithPassport:"Kết nối với hộ chiếu này",autoClose:"Trang sẽ tự đóng sau {seconds}s",autoJump:"Trang sẽ tự động chuyển đến trong {seconds}s"}},lostPassport:{title:"Hộ chiếu bị mất",description:"Chủ sở hữu của {name} có thể sử dụng các phương pháp sau để lấy lại hộ chiếu, các thành viên vui lòng liên hệ với chủ sở hữu để cấp lại hộ chiếu.",return:"Hủy thao tác truy xuất, trở về trang chủ",receivePassport:"Nhận hộ chiếu",recoverDialog:{title:"Khôi phục hộ chiếu",scan:"Sử dụng các phương pháp sau để lấy hộ chiếu của bạn",confirm:"Xác nhận trên ví DID của bạn",success:"Đã lấy thành công"},receiveDialog:{title:"Nhận hộ chiếu",scan:"Sử dụng các phương pháp sau để nhận hộ chiếu",confirm:"Xác nhận trên ví DID của bạn",success:"Đã nhận thành công"},recoverPassport:"Khôi phục hộ chiếu"},invite:{message:"{name} mời bạn làm {role} của {dapp}",success:"Bạn đã tham gia {dapp} thành công",receive:"Nhận với",validUntil:"Hiệu lực đến:",viewPermission:"Quyền Xem",emptyPermission:"Quyền trống rỗng",open:"Mở",description:{step1:"Tải về và cài đặt {wallet} của bạn",step2:"Nhấp vào nút bên trên để nhận hộ chiếu",step3:"Đăng nhập vào {dapp} bằng hộ chiếu đã nhận được"},transferNFTDialog:{title:"Chấp nhận máy chủ Blocklet {name}",scan:"Kết nối Launcher để hoàn tất việc nhận dữ liệu từ máy chủ Blocklet.",confirm:"Xem lại thao tác này trên Ví DID của bạn",success:"Kết nối thành công, đang chờ xác nhận nhận từ Máy chủ"}},receive:{dialog:{title:"Nhận hộ chiếu",scan:"Sau khi nhận được hộ chiếu, bạn có thể sử dụng hộ chiếu để đăng nhập vào ứng dụng",confirm:"Xác nhận trong tài khoản của bạn",success:"Bạn đã kết nối thành công",scanWithDid:"Vui lòng sử dụng tài khoản {did} để nhận hộ chiếu này. Sau khi nhận được hộ chiếu, bạn có thể sử dụng hộ chiếu để đăng nhập vào ứng dụng."}},navigation:{navigation:"Điều hướng",actionFailed:"Hành động thất bại",form:{themeConfig:"Cấu hình chủ đề",contentConfig:"Cấu hình nội dung",title:"Tiêu đề",titlePlaceholder:"Vui lòng nhập tiêu đề điều hướng",titleTooLong:"Độ dài tiêu đề phải nhỏ hơn {len}",description:"Mô tả",descriptionPlaceholder:"Vui lòng nhập mô tả điều hướng",descriptionTooLong:"Độ dài mô tả phải nhỏ hơn {len}",icon:"Biểu tượng Mặc định",iconPlaceholder:"Chọn một biểu tượng",invalidIcon:"Biểu tượng không hợp lệ",findMoreIcon:"Tìm thêm biểu tượng",link:"Liên kết",linkPlaceholder:"Vui lòng nhập liên kết điều hướng",invalidLink:"Liên kết không hợp lệ",component:"Thành phần",componentPlaceholder:"Vui lòng chọn thành phần điều hướng",role:"Vai trò",rolePlaceholder:"Vui lòng chọn vai trò điều hướng",locale:"Cấu hình",localePlaceholder:"Vui lòng nhập vị trí cần thêm",localeExists:"{value} đã tồn tại",activeIcon:"Biểu tượng Hoạt động",activeColor:"Màu Hoạt Động",color:"Màu Mặc Định",colorPlaceholder:"e.g., #FF0000",invalidColor:"Màu không hợp lệ",searchIcons:"Tìm kiếm biểu tượng",searchIconsPlaceholder:"Ví dụ: mdi:home"},action:{add:"Thêm điều hướng",addSub:"Thêm điều hướng phụ",edit:"Chỉnh sửa điều hướng",hide:"Ẩn điều hướng",show:"Hiển thị điều hướng",del:"Xóa điều hướng",new:"Mới",noAddSub:"Thành phần đã gỡ cài đặt không thể thêm điều hướng phụ",noEdit:"Không thể chỉnh sửa thành phần đã gỡ cài đặt",noDel:"Không cho phép xóa điều hướng tích hợp sẵn",reset:"Đặt lại",restConfirmTitle:"Đặt lại điều hướng {section} về mặc định?",restConfirmDesc:"Điều hướng tùy chỉnh của bạn sẽ bị xóa và khôi phục về các mục mặc định.",resetSuccessful:"Khôi phục thành công",delTabBarTitle:"Bạn có muốn xóa tab này không?",delTabBarDesc:"Sau khi xóa, tab sẽ được xóa khỏi danh sách điều hướng."},system:"Hệ thống",services:"Dịch vụ",access:"Truy cập",members:"Thành viên",passport:"Hộ chiếu",analytics:"Phân tích",dashboard:"Bảng điều khiển",studio:"Blocklet Studio",aigne:"Kết nối AI",blockletService:"Dịch vụ Blocklet",didConnect:"Danh tính & Truy cập",didSpaces:"Lưu trữ & Sao lưu",website:"Website Studio",notification:"Trung tâm thông báo",operations:"Quan sát",integration:"Tích hợp",developer:"Nhà phát triển",overviewDesc:"Theo dõi sức khỏe và chi tiết ứng dụng, dễ dàng cài đặt, khởi động hoặc xóa Blocklets ở một nơi.",didConnectDesc:"Thêm thành viên nhóm, đặt tùy chọn đăng nhập và quản lý quyền truy cập an toàn để hợp tác suôn sẻ.",aigneDesc:'Cấu hình kết nối liên quan đến AI cho blocklet của bạn, bao gồm <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> và <a href="{mcpUrl}" target="_blank">các máy chủ tương thích MCP</a>.',websiteDesc:"Quản lý miền, điều chỉnh chủ đề, tinh chỉnh thương hiệu và tùy chỉnh điều hướng cho giao diện trang web độc đáo.",operationsDesc:"Xem phân tích, kiểm tra nhật ký hoạt động, nhận cảnh báo và điều chỉnh cài đặt nâng cao khi cần thiết.",integrationsDesc:"Liên kết các dịch vụ bên ngoài thông qua Webhooks, khóa truy cập và máy chủ MCP để mở rộng khả năng ứng dụng.",developersDesc:"Sử dụng nhật ký, theo dõi hiệu suất và tài liệu để xây dựng, gỡ lỗi và tối ưu hóa ứng dụng của bạn.",didSpacesDesc:"Lưu trữ và sao lưu dữ liệu ứng dụng Blocklet của bạn một cách an toàn để đảm bảo bảo vệ đáng tin cậy và khôi phục dễ dàng.",publishDesc:"Xuất bản ứng dụng của bạn lên cửa hàng hoặc chia sẻ qua liên kết để nhiều người có thể sử dụng hơn."},storage:{spaces:{title:"DID Spaces",tips:"Mẹo",label:"Nhập Cổng DID Spaces",connected:{title:"Các Không gian DID đã Kết nối",tag:"Kết nối"},connectedWithName:"Bạn đã kết nối thành công với {name}",addedWithName:"Bạn đã thêm {name} thành công",connects:"Kết nối",reconnect:"Kết nối lại",addressCannotEmpty:"Địa chỉ không được để trống",addressNotValid:"{url} không phải là một địa chỉ hợp lệ",authorize:{title:"Kết nối {appName} với DID Spaces",scan:"Sử dụng các phương pháp sau để cho phép ứng dụng {appName} kết nối với DID Spaces",success:"Kết nối thành công"},provideNFT:{title:"Vui lòng hiển thị DID Spaces NFT cho {appName}",scan:"Sử dụng các phương pháp sau để cho phép ứng dụng {appName} hiển thị NFT Space DID",success:"Kết nối thành công"},backup:{title:"Sao lưu",records:"Sao lưu bản ghi",without:"Không có sao lưu",succeeded:"Sao lưu thành công",failed:"Sao lưu thất bại",lastBackup:"Thời gian sao lưu cuối cùng",lastBackupTip:'Đã {time} kể từ bản sao lưu thành công cuối cùng của bạn, vui lòng kiểm tra cài đặt sao lưu của bạn trong tab "DID Spaces".',noBackup:"Không có sao lưu",noBackupTip:"Chưa tạo bản sao lưu nào. Chúng tôi khuyên bạn nên thiết lập sao lưu thường xuyên để bảo vệ dữ liệu và cài đặt của bạn",pending:"Đang sao lưu",timeout:"Thời gian chờ sao lưu"},autoBackup:{title:"Sao lưu tự động",enabled:"Sao lưu tự động đã được bật",disabled:"Sao lưu tự động đã tắt"},autoCheckUpdate:{title:"Kiểm tra tự động thông báo phiên bản mới",enabled:"Tự động kiểm tra phiên bản mới đã được kích hoạt",disabled:"Tự động kiểm tra phiên bản mới đã tắt"},backupSuccessfully:"Sao lưu thành công",restore:"Khôi phục",restoreSuccessfully:"Khôi phục thành công",gateway:{title:"Cổng",select:"Chọn một Không gian DID",add:{title:"Thêm Không gian DID",label:"Nhập URL của Không gian DID",failed:"Thêm DID Spaces thất bại",invalidUrl:"URL cổng không gian DID không hợp lệ",duplicate:"{name} đã được kết nối với Blocklet này"},delete:{title:"Ngắt kết nối",succeeded:"Ngắt kết nối DID Space {name} thành công",failed:"Ngắt kết nối thất bại",failedForSelected:"Không thể ngắt kết nối DID Space đã chọn",descForBackup:"Sau khi ngắt kết nối từ {name}, bạn sẽ không thể sao lưu dữ liệu từ Blocklet này đến DID Space này nữa. Bạn có muốn ngắt kết nối?",descForStorage:"Sau khi ngắt kết nối từ {name}, bạn sẽ không thể lưu dữ liệu từ Blocklet này đến DID Space này nữa. Bạn có muốn ngắt kết nối?"},connect:{title:"Kết nối DID Spaces",add:"Kết nối với không gian DID ngay bây giờ",addTips:"Bạn chưa kết nối với bất kỳ không gian DID nào",switch:"Chuyển đổi không gian DID",switchTips:"Bạn đã kết nối với {name}",connected:"Đã kết nối"},switch:{failedForMismatchSpace:"Vui lòng kết nối với DID Space đúng {name}"},connectTo:"Kết nối với DID Spaces"},strategy:{title:"Chiến lược sao lưu",autoBackup:"Auto backup",backupNow:"Sao lưu ngay bây giờ",viewBackupFiles:"Xem tệp sao lưu"},progress:{title:"Tiến trình sao lưu"},record:{title:"Sao lưu hồ sơ",emptyData:"Không có hồ sơ"},notYet:"Bạn chưa có sao lưu đang diễn ra...",connect:{now:"Kết nối ngay",title:"Kết nối DID Spaces",provider:"Cung cấp DID Space của bạn để bắt đầu sao lưu",providerForStorage:"Cung cấp DID Space của bạn để lưu trữ dữ liệu",useWallet:"Kết nối với ví DID",useWalletReconnect:"Kết nối lại với ví DID",useSpaceGateway:"Kết nối qua cổng DID Spaces",useSpaceGatewayReconnect:"Kết nối lại qua cổng DID Spaces",switchToSpace:"Chuyển sang DID Space",switchToSpaceSucceeded:"Chuyển sang không gian DID {name}",succeeded:"Bạn đã kết nối thành công với DID Space",disconnect:"Ngắt kết nối",abortBlockletBackup:"Hủy sao lưu"},disconnected:{tag:"Ngắt kết nối",reconnectNow:"Kết nối lại ngay bây giờ"}},appLevel:{title:"Lưu trữ ứng dụng",description:"Tất cả dữ liệu được tạo ra bởi ứng dụng được lưu trữ trên DID Space này"}},log:{lastDays:{1:"1 Ngày cuối cùng",7:"Tuần trước"}},oauth:{authorize:"Xác thực OAuth",client:{tab:"Ứng dụng OAuth",name:"Tên ứng dụng",clientId:"ID Khách hàng",clientSecret:"Mật khẩu bảo mật khách hàng",scope:"Phạm vi",redirectUris:"URL chuyển hướng",grantTypes:"Loại Grant",responseTypes:"Loại phản hồi",tokenEndpointAuthMethod:"Phương thức xác thực Endpoint Token",actions:"Hành động",grantResponse:"Cấp phép và Phản hồi",metaContact:"Meta & Liên hệ",clientUri:"URI Khách hàng",logoUri:"URI logo",contacts:"Liên hệ",tosUri:"URL Điều khoản Dịch vụ",policyUri:"URI Chính sách",jwksSoftware:"JWKS & Software",jwksUri:"URI JWKS",jwks:"JWKS",softwareId:"ID Phần Mềm",softwareVersion:"Phiên bản Phần mềm",clientSecretExpiresAt:"Client Secret hết hạn vào",clientIdIssuedAt:"ID Khách hàng Được cấp vào",oauthAppDetails:"Chi tiết Ứng dụng OAuth",oauthEndpoints:"Endpoints OAuth",authorizationEndpoint:"Endpoint ủy quyền",tokenEndpoint:"Endpoint Token",userinfoEndpoint:"Endpoint Thông tin Người dùng",registrationEndpoint:"Điểm cuối đăng ký",endSessionEndpoint:"Kết thúc phiên Endpoint",validate:{clientName:"Tên ứng dụng là bắt buộc",clientNameMinLength:"Tên ứng dụng phải có ít nhất 3 ký tự",clientUri:"URL trang chủ bắt buộc",clientUriInvalid:"Vui lòng nhập URL hợp lệ bắt đầu bằng http:// hoặc https://",redirectUris:"URL gọi lại xác thực là bắt buộc",redirectUrisInvalid:"Vui lòng nhập URL hợp lệ bắt đầu bằng http:// hoặc https://",contacts:"Vui lòng nhập các địa chỉ email hợp lệ, cách nhau bằng dấu phẩy",tosUri:"URL Điều khoản Dịch vụ bắt buộc",tosUriInvalid:"Vui lòng nhập một URL hợp lệ",policyUri:"URL Chính sách bắt buộc",policyUriInvalid:"Vui lòng nhập URL hợp lệ",jwksUri:"URI JWKS bắt buộc",jwksUriInvalid:"Vui lòng nhập URL hợp lệ",jwks:"Cần JWKS",jwksInvalid:"Vui lòng nhập JWKS hợp lệ"},input:{clientName:"Tên ứng dụng",clientNamePlaceholder:"Điều gì đó người dùng sẽ nhận ra và tin tưởng",clientUri:"URL trang chủ",clientUriPlaceholder:"https://your-app.com",redirectUris:"URL gọi lại xác thực",redirectUrisPlaceholder:"https://your-app.com/callback",contacts:"Email liên hệ",contactsPlaceholder:"admin@your-app.com, support@your-app.com",permissions:"Chọn các quyền bạn cần",tosUri:"URL Điều khoản Dịch vụ",tosUriPlaceholder:"https://your-app.com/terms",policyUri:"URL Chính sách",policyUriPlaceholder:"https://your-app.com/policy",jwksUri:"URI JWKS",jwksUriPlaceholder:"https://your-app.com/jwks",jwks:"JWKS",jwksPlaceholder:"Bộ Khóa Web JSON",expireTime:"Đặt ngày hết hạn cho secret của client để tăng cường bảo mật"},helperText:{clientName:"Điều mà người dùng sẽ nhận ra và tin tưởng.",clientUri:"URL đầy đủ của trang chủ ứng dụng của bạn.",redirectUris:"URL gọi lại của ứng dụng của bạn.",contacts:"Địa chỉ email của người chịu trách nhiệm về ứng dụng.",tosUri:"URL điều khoản dịch vụ của ứng dụng bạn.",policyUri:"URL chính sách quyền riêng tư ứng dụng của bạn.",read:"Đọc",document:"Tài liệu OAuth",more:"Để biết thêm thông tin."},delete:{title:"Xóa Client OAuth",description:"Bạn có chắc chắn muốn xóa khách hàng OAuth {clientName} này không?"},register:"Tạo ứng dụng OAuth mới",requiredInformation:"Thông tin bắt buộc",optionalInformation:"Thông tin tùy chọn",registerButton:"Tạo",logo:"Logo",openRegistration:"Đăng ký mở",openidConfiguration:"Cấu hình OpenID",createUser:"Được tạo bởi",update:"Cập nhật Ứng dụng OAuth",listTitle:"Bật quyền truy cập an toàn của bên thứ ba bằng Ứng dụng OAuth",tooltipTitle:"Sử dụng máy chủ OAuth tích hợp sẵn của ứng dụng để ủy quyền cho các ứng dụng bên ngoài với các giao thức tiêu chuẩn ngành. Trao quyền cho người dùng với xác thực an toàn, liền mạch và kiểm soát truy cập được ủy quyền.",empty:"Chưa thêm dữ liệu"}},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"Hết hạn"},loadFailed:"Thử lại!"},desktop:{tips:{success:"Gói đăng ký sẽ hết hạn sau {validity}",warning:"Đăng ký sẽ hết hạn sau {validity}",error:"Đã hết hạn đăng ký"},loading:"Tải đăng ký...",loadFailed:"Không tải được thông tin đăng ký, vui lòng thử lại!",nextInvoice:"Hóa đơn tiếp theo: {date}"}},analytics:{trend:"Xu hướng",detail:"Hỏng",traffic:{totalRequests:"Tổng số yêu cầu",validRequests:"Các yêu cầu thành công",failedRequests:"Yêu cầu thất bại",uniqueVisitors:"Lượt truy cập duy nhất",uniqueFiles:"URL duy nhất",uniqueReferrers:"Người giới thiệu duy nhất",uniqueNotFound:"404 Độc nhất",uniqueStaticFiles:"Tập tin tĩnh duy nhất",logSize:"Kích thước Log",bandwidth:"Băng thông"},runtime:"Thời gian chạy"},federated:{inviteJoinFederatedLogin:"Mời tham gia đăng nhập liên kết",inviteJoinFederatedLoginDescription:"Sao chép địa chỉ sau đây và điền vào ứng dụng nơi bạn cần tham gia để đăng ký đăng nhập liên minh.",federatedLogin:"Đăng nhập liên kết",joinFederatedLogin:"Tham gia đăng nhập phân liên hợp",joinFederatedLoginDescription:"Vui lòng nhập địa chỉ đăng nhập liên kết được cung cấp bởi Master Blocklet để tham gia đăng nhập liên kết",quitFederatedLogin:"Thoát khỏi đăng nhập liên minh",quitFederatedLoginDescription:"Sau khi thoát khỏi đăng nhập được liên kết, đăng nhập thông thường luôn có sẵn",federatedJoinAppUrl:"Đăng nhập bằng đăng ký kết hợp trên appUrl",federatedJoinAppUrlRequired:"Vui lòng nhập đăng nhập liên kết để tham gia {appUrl}",failedToGetFederatedLoginAppUrl:"Không thành công trong việc lấy đăng nhập qui định liên kết, tham gia appUrl",federatedJoinAppUrlInvalid:"AppUrl đăng nhập liên kết không hợp lệ",siteDetail:"Chi tiết trang web",approveToJoinLogin:"Chấp nhận tham gia đăng nhập liên thông",approve:"Bật chế độ đăng nhập",revoke:"Vô hiệu hóa đăng nhập",enableFederatedLogin:"Kích hoạt đăng nhập liên danh",disableFederatedLogin:"Vô hiệu hóa đăng nhập liên kết",enableFederatedLoginDescription:"Sau khi kích hoạt đăng nhập liên kết, trang web này sẽ tự động đăng nhập",disableFederatedLoginDescription:"Sau khi vô hiệu hóa đăng nhập liên tục, trang web này sẽ không đăng nhập tự động",enableFederatedAutoLogin:"Bật đăng nhập tự động",enableFederatedAutoLoginDescription:"Sau khi kích hoạt đăng nhập tự động, nếu hiện tại có trạng thái đăng nhập thống nhất, trang web sẽ tự động đăng nhập với danh tính của đăng nhập đoàn thể",disableFederatedAutoLogin:"Tắt đăng nhập tự động",disableFederatedAutoLoginDescription:"Sau khi đăng nhập tự động tắt, trang web sẽ không đăng nhập tự động thông tin người dùng của đăng nhập thống nhất và bạn vẫn có thể chọn để đăng nhập bằng tay bằng danh tính đăng nhập liên minh.",info:{appId:"ỨNG DỤNG ĐÃ LÀM",appPid:"ID vĩnh viễn",migratedFrom:"Còn được biết đến là",appName:"Tên Blocklet",appDescription:"Mô tả khối",appUrl:"URL Blocklet",appLogo:"Logo Blocklet",did:"Blocklet DID",serverId:"ID máy chủ Blocklet",serverVersion:"Phiên bản Blocklet Server",version:"Phiên bản Blocklet",appliedAt:"Đăng ký tại",status:"Tình trạng"},status:{pending:"Đang chờ",approved:"Được chấp thuận",rejected:"Bị từ chối",revoked:"Thu hồi"},disbandFederatedLogin:"Hủy kết nối đăng nhập liên kết",disbandFederatedLoginDescription:"Sau khi giải tán đăng nhập liên kết, tất cả các trang thành viên sẽ tự động thoát khỏi đăng nhập liên kết",syncConfig:"Đồng bộ cấu hình trang web liên kết",quitMember:"Xóa",quitMemberDescription:"Xóa thành viên chỉ định khỏi nhóm trang web",removeFederatedLogin:"Gỡ thành viên",removeFederatedLoginDescription:"Sau khi loại bỏ các thành viên được chỉ định khỏi nhóm trang web, thành viên chỉ có thể sử dụng đăng nhập bình thường",title:"Federated Login là gì?",description:"Đăng nhập liên kết có thể đạt được thông qua đăng nhập duy nhất trên nhiều hệ thống. Bạn có thể mời các nhóm khác tham gia đăng nhập liên kết, hoặc chủ động tham gia nền tảng đăng nhập liên kết của các tổ chức khác.",link:"Xem Tài liệu"},optionsOrder:{1:"Tùy chọn Một",2:"Lựa chọn Hai"},securityRule:{title:"Quy tắc bảo mật",sortByDescription:"Sắp xếp theo mức độ ưu tiên phù hợp",add:"Thêm Quy tắc Bảo mật",edit:"Chỉnh sửa Quy tắc Bảo mật",view:"Xem quy tắc bảo mật",form:{precede:"Trước đó",pathPattern:"รูปแบบพาธ",pathPatternPlaceholder:"Hãy nhập mô hình đường dẫn",pathPatternErrorText:"Mẫu đường dẫn không hợp lệ",accessPolicyOrResponseHeaderPolicyRequired:"Chính sách truy cập hoặc chính sách tiêu đề phản hồi là bắt buộc",accessPolicy:"Chính sách truy cập",accessPolicyPlaceholder:"Vui lòng chọn chính sách truy cập",accessPolicyHelperText:"Chọn chính sách truy cập",responseHeaderPolicy:"Chính sách Tiêu đề phản hồi",responseHeaderPolicyPlaceholder:"Vui lòng chọn chính sách tiêu đề phản hồi",responseHeaderPolicyHelperText:"Vui lòng chọn chính sách tiêu đề phản hồi",remark:"Chú thích",remarkPlaceholder:"Hãy nhập chú thích",component:"Thành phần",componentPlaceholder:"Vui lòng chọn thành phần"},delete:{title:"Xóa Quy tắc Bảo mật?",description:"Sau khi xóa bỏ quy tắc bảo mật, quy tắc này sẽ không còn hiệu lực"},useless:"Quy tắc Bảo mật Vô ích"},responseHeaderPolicy:{title:"Chính sách header phản hồi",add:"Thêm Chính sách Tiêu đề Phản hồi",edit:"Chỉnh sửa Chính sách Đầu phản hồi",view:"Xem Chính sách Tiêu đề Phản hồi",form:{name:"Tên",namePlaceholder:"Vui lòng nhập tên",description:"Mô tả",descriptionPlaceholder:"Vui lòng nhập mô tả",cors:{origin:"Gốc",originPlaceholder:"Hỗ trợ các định dạng miền sau: http://www.example.com, http://*.example.com, http://www.example.com:8080, * (không khuyến nghị sử dụng ký tự đại diện)",originHelperText:"Tên miền bắt đầu với http:// hoặc https://, một trên một dòng, một ký tự đại diện * trên một dòng",methods:"Phương pháp",allowedHeaders:"Đầu trang được cho phép",allowedHeadersPlaceholder:"Khuyến nghị điền *, hỗ trợ nhập nhiều dòng",allowedHeadersHelperText:"Cho máy chủ biết những header tùy chỉnh nào có thể dùng trong yêu cầu tiếp theo khi gửi yêu cầu OPTIONS như: x-blocklet-version",exposedHeaders:"Tiêu đề được hiển thị",exposedHeadersPlaceholder:"Hỗ trợ nhập nhiều dòng",exposedHeadersHelperText:"Cấu hình Expose-Headers, ví dụ: X-Content-Range",maxAge:"Max-Age (giây)",maxAgeHelperText:"Thời hạn hiệu lực của kết quả thu được bằng yêu cầu OPTIONS, phải là một số nguyên dương",optionsSuccessStatus:"Trạng thái thành công của tùy chọn",preflightContinue:"Tiếp tục Chế độ xem trước",credentials:"Thông tin xác thực",smartModeHelperText:"Tự động thêm mọi tên miền của ứng dụng hiện tại, cũng như mọi tên miền của nhóm trang web đăng nhập liên kết",smartMode:"Chế Độ Thông Minh"},originOverride:"Origin Override",originOverrideHelperText:"Cho phép logic trong ứng dụng ghi đè lên tiêu đề phản hồi này"},delete:{title:"Xóa Chính sách tiêu đề phản hồi?",description:"Sau khi xóa chính sách tiêu đề phản hồi, chính sách sẽ không còn hiệu lực"}},accessPolicy:{title:"Chính sách truy cập",add:"Thêm Chính sách truy cập",edit:"Chỉnh sửa Chính sách Truy cập",view:"Xem chính sách quyền truy cập",form:{name:"Tên",namePlaceholder:"Vui lòng nhập tên",description:"Mô tả",descriptionPlaceholder:"Vui lòng nhập mô tả",roles:"Quyền truy cập",accessType:"Loại truy cập"},delete:{title:"Xóa Chính sách truy cập?",description:"Sau khi xóa một chính sách truy cập, chính sách này sẽ không còn hiệu lực"}},didConnect:{genKeyPair:{title:"Tạo DID Blocklet",scan:"Sử dụng các phương pháp sau để tạo Blocklet DID",success:"Tạo DID Blocklet thành công",successDesc:"Blocklet DID đã được tạo thành công (Các ấn phẩm sau yêu cầu ví đã tạo DID để vận hành)"},common:{invalidSession:"Phiên làm việc không hợp lệ",invalidSessionDesc:"Phiên không tồn tại hoặc đã hết hạn",connectionError:"Kết nối thất bại"}},pagination:{next:"Trang Kế Tiếp",previous:"Trang trước",rowsPerPage:"Mỗi trang:",displayRows:"của",jumpToPage:"Nhảy đến Trang:"},webhookEndpoint:{createWebhook:"Tạo Webhook",createWebhookTitle:"Tạo Webhook",selectAllEvents:"Chọn tất cả Sự kiện",selectAllEventsTooltip:"Chọn tất cả sự kiện khả dụng",selectedEventsCount:"{count} sự kiện đã chọn",selectedCount:"{count} đã chọn",eventsCount:"{count} sự kiện",saveWebhook:"Tạo Webhook",noAvailableEvents:"Không có sự kiện nào",loadingEvents:"Đang tải sự kiện...",loadingError:"Thất bại khi tải sự kiện: {message}",title:"Webhooks",noWebhooksAdded:"Chưa thêm webhook nào",validation:{urlRequired:"URL bắt buộc",urlInvalid:"Vui lòng nhập URL hợp lệ",descriptionRequired:"Mô tả bắt buộc",eventRequired:"Vui lòng chọn ít nhất một sự kiện"},hosted:"Endpoint được lưu trữ",add:"Tạo Webhook",addTip:"Thiết lập endpoint webhook của bạn để nhận các sự kiện trực tiếp",listen:"Nghe để",version:"Phiên bản API",attempts:"Thử nghiệm Webhook",url:{label:"URL",description:"URL Endpoint Webhook"},description:{label:"Mô tả",description:"Mô tả tùy chọn về mục đích sử dụng của endpoint này"},events:{label:"Chọn sự kiện để nghe",description:"Xin chào, {name}."},disabled:"Đã tắt",enabled:"Đã bật",disable:"Tắt",enable:"Bật",editWebhookTitle:"Cập nhật Webhook",updateWebhook:"Cập nhật Webhook",waitingForEvents:"Đang chờ sự kiện...",loadingMore:"Đang tải thêm...",loadMore:"Tải thêm",response:"Trả lời",request:"Yêu cầu",eventData:"Dữ liệu Sự kiện",deleteWebhook:{title:"Xóa Webhook?",description:"Sau khi xóa một webhook, webhook đó sẽ không còn nhận được sự kiện nữa"},success:"Thành công",listTitle:"Gửi dữ liệu sự kiện thời gian thực với Webhooks",tooltipTitle:"Kết nối liền mạch ứng dụng của bạn với các hệ thống bên ngoài bằng cách gửi thông báo sự kiện thời gian thực. Webhook cho phép tích hợp mạnh mẽ và quy trình làm việc tự động trên các công cụ và dịch vụ của bạn.",triggeredFrom:"Webhook này được kích hoạt từ một lần thử"},description:{environment:"Các biến hiện tại sẽ có hiệu lực khi {name} đang chạy. Cần khởi động lại ứng dụng để thay đổi có hiệu lực.",preferences:"Các biến hiện tại sẽ có hiệu lực khi {name} đang chạy. Thay đổi sẽ được áp dụng sau khi lưu, không cần khởi động lại ứng dụng."},preferencesFor:"Tùy chọn cho {name}",environmentFor:"Môi trường cho {name}",accessKey:"Khóa Truy cập",embed:{iconTip:"Nhấn để xem chi tiết đăng ký"},command:"Lệnh",mcp:{listTitle:"Truy cập Blocklet của bạn từ khách hàng MCP",tooltipTitle:"Khám phá danh sách các máy chủ MCP được hỗ trợ bởi Blocklet này, chọn một máy chủ để xem ngay các lệnh kết nối cần thiết để tham gia từ máy khách của bạn.",endpoint:"Điểm cuối MCP",available:"Máy chủ MCP khả dụng",noServer:"Không có máy chủ MCP khả dụng"},installCommand:"Lệnh Cài đặt",label:{add:"Thêm",apply:"Áp dụng nhãn",manage:"Quản lý nhãn",title:"Nhãn",description:"Mô tả",systemLabel:"Nhãn Hệ thống",create:"Tạo nhãn",edit:"Sửa nhãn",name:"Tên",slug:"Slug",parentLabel:"Nhãn cha",color:"Màu sắc",search:"Tìm nhãn",saveSuccess:"Nhãn đã được lưu thành công",delete:"Xóa",deleteTip:'Xóa "{name}"?',deleteSuccess:"Đã xóa nhãn thành công",reassignTip:"Nếu nhãn này đang được sử dụng, hãy gán lại các mục của nó cho một nhãn khác.",reassignTo:"Chọn nhãn mới",recently:"Mới đây",noMatching:"Không tìm thấy nhãn",noLabels:"Chưa có nhãn nào được tạo",filter:"Lọc nhãn",createNewLabel:'Tạo nhãn mới "{name}"',actionLabel:"Gán nhãn hàng loạt",selectLabels:"Chọn nhãn",deleteDesc:'Sau khi xóa nhãn, nhãn sẽ không được sử dụng nữa. Bạn có chắc chắn muốn xóa "{name}" không?',nameRequired:"Tiêu đề là bắt buộc.",nameMinLength:"Tiêu đề phải có ít nhất 1 ký tự.",nameMaxLength:"Tiêu đề phải ít hơn 64 ký tự.",slugRequired:"Slug bắt buộc",slugMinLength:"Slug phải có ít nhất 1 ký tự",slugMaxLength:"Slug phải có ít hơn 128 ký tự",descriptionMaxLength:"Mô tả phải ngắn hơn 255 ký tự",colorRequired:"Màu sắc là bắt buộc",colorInvalid:"Màu không hợp lệ"},environmentTips:{delete:"Bạn có chắc chắn muốn xóa hàng này không?",deleteForbidden:"Chỉ khóa của biến môi trường tùy chỉnh có thể được thay đổi."},authentication:{emailLoginDescription:"Đăng nhập qua email sẽ sử dụng Cài đặt Thông báo để gửi liên kết đăng nhập hoặc mã đăng nhập cho người dùng.",emailNotificationRequired:"Hãy chắc chắn rằng bạn đã kích hoạt Thông báo Email.",chooseProvider:"Phương thức Đăng nhập",chooseProviderPlaceholder:"Chọn phương thức đăng nhập để cấu hình",addLoginProvider:"Thêm Phương Thức Đăng Nhập",updateLoginProvider:"Cập nhật Phương thức Đăng nhập: {provider}",alreadyBindOAuth:"Đã liên kết đăng nhập bên thứ ba",alreadyBindWallet:"Đã liên kết Ví DID",didConnectSettings:"Hiển thị & Thương hiệu",commonSettings:"Cài đặt Chung",sessionSettings:"Bảo mật Phiên",federated:"Đăng nhập Liên hiệp",loginProviders:"Phương thức Đăng nhập",oauth:"Đăng Nhập Bên Thứ Ba",save:"Lưu",thirdPartyLogin:"Đăng nhập bên thứ ba",viewDocument:"Xem Tài liệu",oauthCallbackUrl:"URL callback",gotoEmailNotification:"Mở cài đặt thông báo email",deleteLoginProvider:"Xóa Nhà cung cấp Đăng nhập {provider}",deleteLoginProviderDescription:"Sau khi xóa nhà cung cấp đăng nhập, người dùng sẽ không thể đăng nhập bằng {provider}. Bạn có chắc chắn muốn tiếp tục?",auth0:{title:"Auth0",enable:"Kích hoạt đăng nhập Auth0",domain:"Miền",domainDescription:"Tên miền của Auth0 là cần thiết",clientId:"ID Khách hàng",clientIdDescription:"ID khách hàng ứng dụng Auth0 OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Khóa bí mật của ứng dụng Auth0 OAuth là cần thiết"},github:{title:"Github",enable:"Kích hoạt đăng nhập Github",clientId:"ID Khách hàng",clientIdDescription:"ID Khách hàng của ứng dụng Github OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Bí mật khách hàng của ứng dụng Github OAuth là bắt buộc"},twitter:{title:"X",enable:"Bật đăng nhập X",clientId:"ID Khách hàng",clientIdDescription:"ID Khách hàng của ứng dụng OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Client Secret của ứng dụng X OAuth là bắt buộc"},google:{title:"Google",enable:"Kích hoạt đăng nhập Google",clientId:"ID Khách hàng",clientIdDescription:"ID khách hàng của ứng dụng Google OAuth là bắt buộc",clientSecret:"Mã bí mật của Khách hàng",clientSecretDescription:"Client Secret của ứng dụng Google OAuth là bắt buộc"},apple:{title:"Táo",enable:"Kích hoạt đăng nhập với Apple",teamId:"ID nhóm",teamIdDescription:"ID nhóm ứng dụng Apple OAuth là bắt buộc",serviceId:"ID Dịch vụ",serviceIdDescription:"ID dịch vụ ứng dụng Apple OAuth là bắt buộc",keyId:"ID Khóa",keyIdDescription:"Cần có Key ID ứng dụng Apple OAuth",authKey:"Khóa xác thực",authKeyDescription:"Khóa xác thực ứng dụng Apple OAuth là bắt buộc",bundleId:"ID gói",bundleIdDescription:"ID gói ứng dụng Apple OAuth là bắt buộc"},wallet:{showQrcode:"Hiển thị mã QR"},didConnect:{showDidColor:"Hiển thị màu của DID Connect",showAppInfo:"Hiển thị thông tin Blocklet",basicSettings:"Cài đặt cơ bản",customSettings:"Cài đặt Tùy Chỉnh",configDialogTitle:"Cấu hình văn bản popup xác thực",addNewAction:"Thêm Hành Động",addLanguage:"Thêm ngôn ngữ",selectLanguage:"Chọn một ngôn ngữ...",actionNameError:"Chỉ cho phép chữ cái thường và dấu gạch ngang, không được bắt đầu bằng dấu gạch ngang",actionNameDuplicate:"Tên hành động đã tồn tại"}}};export{n as default};