@cloudhal/cli 0.3.9 → 0.3.11

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 (174) hide show
  1. package/dist/assets/starters/blog/README.md +1 -1
  2. package/dist/assets/starters/blog/package.json +4 -4
  3. package/dist/assets/starters/blog/src/components/EntryList.astro +1 -1
  4. package/dist/assets/starters/blog/src/pages/[...path].astro +6 -2
  5. package/dist/assets/starters/blog/src/theme.ts +3 -2
  6. package/dist/assets/studio/assets/{AccountPage-C_F6GEbp.js → AccountPage-DhdHmvOg.js} +2 -2
  7. package/dist/assets/studio/assets/{ActivityPage-CAKmV0_b.js → ActivityPage-CjbJHI95.js} +2 -2
  8. package/dist/assets/studio/assets/{AgentModes-D8HMrK7G.js → AgentModes-QhxdiMYV.js} +2 -2
  9. package/dist/assets/studio/assets/AgentsPage-B-czVWlA.js +2 -0
  10. package/dist/assets/studio/assets/AnalyticsPage-CjGEPEPx.js +3 -0
  11. package/dist/assets/studio/assets/{ApprovalDialog-Dv9mtEvX.js → ApprovalDialog-DHKo0y6u.js} +2 -2
  12. package/dist/assets/studio/assets/{ApprovalsPage-BaCTOLgB.js → ApprovalsPage-DpH3gVFr.js} +3 -3
  13. package/dist/assets/studio/assets/ArticleEditorPage-B6i-ohJH.js +2 -0
  14. package/dist/assets/studio/assets/ArticlesPage-CL-4O3zB.js +2 -0
  15. package/dist/assets/studio/assets/{AssetPage-CQa3FSgH.js → AssetPage-C95V1y8t.js} +2 -2
  16. package/dist/assets/studio/assets/{Audit-BsehRESJ.js → Audit-Qsn-EQ3C.js} +2 -2
  17. package/dist/assets/studio/assets/{AuditBadges-Bd8EnwON.js → AuditBadges-CPDfmk_z.js} +2 -2
  18. package/dist/assets/studio/assets/{AuthLayout-BNLNRRmt.js → AuthLayout-wpvclpda.js} +2 -2
  19. package/dist/assets/studio/assets/{AutomationsPage-C1rjUwWk.js → AutomationsPage-PQAJefmU.js} +2 -2
  20. package/dist/assets/studio/assets/{BlockSection-dqMQjKxw.js → BlockSection-Dz_7O4BN.js} +2 -2
  21. package/dist/assets/studio/assets/{BodyChanges-DOaqosb8.js → BodyChanges-2lB47SO5.js} +2 -2
  22. package/dist/assets/studio/assets/{BuildPage-DEOfRzA9.js → BuildPage-CySzzTQW.js} +2 -2
  23. package/dist/assets/studio/assets/{CommandMenu-D9MNc-Wo.js → CommandMenu-CB2kq5oc.js} +2 -2
  24. package/dist/assets/studio/assets/{CommentThreadControls-DpKsd1i6.js → CommentThreadControls-CVB-n4D_.js} +2 -2
  25. package/dist/assets/studio/assets/CommentThreadPage-DZHFTxT4.js +2 -0
  26. package/dist/assets/studio/assets/{CommenterPage-DyUS-J5W.js → CommenterPage-7Sd7_lXK.js} +2 -2
  27. package/dist/assets/studio/assets/{Comments-BRP_6oQ6.js → Comments-BXWLWhKk.js} +2 -2
  28. package/dist/assets/studio/assets/{CommentsPage-C4uR0zDd.js → CommentsPage-BX1NccsN.js} +2 -2
  29. package/dist/assets/studio/assets/{ConfirmDialog-DTOOI7kj.js → ConfirmDialog-DCuw5jgs.js} +2 -2
  30. package/dist/assets/studio/assets/{Crumbs-BVqhFD_U.js → Crumbs-CJ6UlbPv.js} +2 -2
  31. package/dist/assets/studio/assets/{EditorLayout-GefNJMG2.js → EditorLayout-FlmsPOxF.js} +2 -2
  32. package/dist/assets/studio/assets/{EditorPreview-BuGAQX3g.js → EditorPreview-CA6-0wUw.js} +2 -2
  33. package/dist/assets/studio/assets/{Elevation-ahkqnCOT.js → Elevation-BrgkbjjJ.js} +2 -2
  34. package/dist/assets/studio/assets/{ElevationRequest-DbaZPpTy.js → ElevationRequest-DXg8u-DR.js} +2 -2
  35. package/dist/assets/studio/assets/EntryPath-CkymIfuw.js +2 -0
  36. package/dist/assets/studio/assets/{ForgotPasswordPage-ECAplOgO.js → ForgotPasswordPage-DwB7XyB2.js} +2 -2
  37. package/dist/assets/studio/assets/{Gating-BGO4D_AP.js → Gating-0HRGz-rR.js} +2 -2
  38. package/dist/assets/studio/assets/GovernanceDialog-DUYzDR09.js +2 -0
  39. package/dist/assets/studio/assets/{InvitePage-CciurSHj.js → InvitePage-DE6bIpV3.js} +2 -2
  40. package/dist/assets/studio/assets/{ListToolbar-DPtPcPWp.js → ListToolbar-BG__bomj.js} +2 -2
  41. package/dist/assets/studio/assets/{LoginPage-BKdmHe8_.js → LoginPage-DNfzz9zT.js} +2 -2
  42. package/dist/assets/studio/assets/{MediaPage-Bx_Q3p5Z.js → MediaPage-CYmEY5cn.js} +2 -2
  43. package/dist/assets/studio/assets/{MediaPicker-BHakhuPF.js → MediaPicker-C9vXkzHW.js} +2 -2
  44. package/dist/assets/studio/assets/{MediaUpload-Cjwe01QK.js → MediaUpload-BVeC5zW0.js} +2 -2
  45. package/dist/assets/studio/assets/MembersPage-DPlqxnNE.js +2 -0
  46. package/dist/assets/studio/assets/Menus-LJoFj5RT.js +2 -0
  47. package/dist/assets/studio/assets/{NavigationPage-3JIfd_2C.js → NavigationPage-C_3mnXYX.js} +2 -2
  48. package/dist/assets/studio/assets/{NewSiteDialog-DES6p9cW.js → NewSiteDialog-DSy8gRik.js} +2 -2
  49. package/dist/assets/studio/assets/{PageEditorPage-BiskVdPq.js → PageEditorPage-BcVleR3m.js} +2 -2
  50. package/dist/assets/studio/assets/{PagesPage-YrYME9pn.js → PagesPage-DBYQBTbf.js} +2 -2
  51. package/dist/assets/studio/assets/{PasswordField-BaDn4bwQ.js → PasswordField-CmuKqecN.js} +2 -2
  52. package/dist/assets/studio/assets/{PreviewPanel-CYgpgHYL.js → PreviewPanel-BGtfUafo.js} +2 -2
  53. package/dist/assets/studio/assets/{ProjectPage-B8YTPbZu.js → ProjectPage-fFSVFBu7.js} +2 -2
  54. package/dist/assets/studio/assets/{Readers-PSJxQtDw.js → Readers-BXiEXx2Q.js} +3 -3
  55. package/dist/assets/studio/assets/RedirectDialog-Bjj_Yc96.js +2 -0
  56. package/dist/assets/studio/assets/RedirectsPage-CHcqSOyu.js +2 -0
  57. package/dist/assets/studio/assets/{ReleaseApproval-DUUheBUr.js → ReleaseApproval-BIjYTn-g.js} +2 -2
  58. package/dist/assets/studio/assets/{ReleasePage-DU_sEnGb.js → ReleasePage-CxToLp34.js} +2 -2
  59. package/dist/assets/studio/assets/{ReleaseParts-blYiBCFL.js → ReleaseParts-B_Uljbxy.js} +2 -2
  60. package/dist/assets/studio/assets/{ResetPasswordPage-CxIo4Yvk.js → ResetPasswordPage-BmP2ALzo.js} +2 -2
  61. package/dist/assets/studio/assets/{RowMenu-CvzLtDk6.js → RowMenu-24gQZese.js} +2 -2
  62. package/dist/assets/studio/assets/{ScheduleCard-BNM_ecEJ.js → ScheduleCard-Chuz3OOY.js} +2 -2
  63. package/dist/assets/studio/assets/ScheduleDialog-Dh8bLDpe.js +2 -0
  64. package/dist/assets/studio/assets/{ScheduleHistoryPage-B_79RLNY.js → ScheduleHistoryPage-CS6Epz5q.js} +2 -2
  65. package/dist/assets/studio/assets/{ScheduleStatusBadge-CgZ65nzd.js → ScheduleStatusBadge-B4BPQAx4.js} +2 -2
  66. package/dist/assets/studio/assets/{SchedulerStalled-C8C91Ds8.js → SchedulerStalled-nDxONkWM.js} +2 -2
  67. package/dist/assets/studio/assets/{Schedules-xnhmCXba.js → Schedules-Dpu78aTu.js} +2 -2
  68. package/dist/assets/studio/assets/{SchedulesPage-KA7TSNlR.js → SchedulesPage-a0OcBtxY.js} +2 -2
  69. package/dist/assets/studio/assets/{ScopeBadge-C_XnkWYq.js → ScopeBadge-BNM9FT-5.js} +2 -2
  70. package/dist/assets/studio/assets/{SectionCard-GPZWTzbx.js → SectionCard-BxLoZOcp.js} +2 -2
  71. package/dist/assets/studio/assets/Seo-ytU9solr.js +2 -0
  72. package/dist/assets/studio/assets/SeoPreview-yfqYstu_.js +2 -0
  73. package/dist/assets/studio/assets/{Settings-BeAGyeQI.js → Settings-m8Ai9oIJ.js} +2 -2
  74. package/dist/assets/studio/assets/{SiteAccessField-C0J26Q-t.js → SiteAccessField-Dt_TYknY.js} +2 -2
  75. package/dist/assets/studio/assets/{SiteOverviewPage-CDnjXcd6.js → SiteOverviewPage-C-fICOMI.js} +3 -3
  76. package/dist/assets/studio/assets/SiteSettingsPage-B38ObhQp.js +3 -0
  77. package/dist/assets/studio/assets/{SitesPage-DSpx69dn.js → SitesPage-BeZp4ZWP.js} +2 -2
  78. package/dist/assets/studio/assets/{SkillsPage-DF4xGVkJ.js → SkillsPage-HCITPWLC.js} +2 -2
  79. package/dist/assets/studio/assets/SnapshotsPage-Bz6q1NZG.js +2 -0
  80. package/dist/assets/studio/assets/{Status-B6jbm_Zq.js → Status-Bj8AxXIX.js} +2 -2
  81. package/dist/assets/studio/assets/{StatusActions-DgRInkQb.js → StatusActions-B7qbr17X.js} +3 -3
  82. package/dist/assets/studio/assets/{TagsMigration-DYR-VkVc.js → TagsMigration-DWLg_J-t.js} +2 -2
  83. package/dist/assets/studio/assets/Taxonomy-CVwYZsH4.js +2 -0
  84. package/dist/assets/studio/assets/{TaxonomyPage-BYCM2_2l.js → TaxonomyPage-Bl9v3mnU.js} +2 -2
  85. package/dist/assets/studio/assets/{TermEditorPage-C8NQHobp.js → TermEditorPage-0g_PGShy.js} +2 -2
  86. package/dist/assets/studio/assets/{TermPickers-a6Ed0J4R.js → TermPickers-BI3nNBmj.js} +2 -2
  87. package/dist/assets/studio/assets/{Toast-DYiK3WzC.js → Toast-CXAk8wMq.js} +2 -2
  88. package/dist/assets/studio/assets/{TranslationList-D6YA7Vjr.js → TranslationList-hfg5iYSt.js} +2 -2
  89. package/dist/assets/studio/assets/{TranslationsPage-Ci-5wWIr.js → TranslationsPage-DEH0PY-i.js} +2 -2
  90. package/dist/assets/studio/assets/api-Mdeo6gzg.js +4 -0
  91. package/dist/assets/studio/assets/{api-errors-DObQzNBx.js → api-errors-CXLBmdpk.js} +2 -2
  92. package/dist/assets/studio/assets/{approvals-Dq0eHG8S.js → approvals-CIXN6a5b.js} +2 -2
  93. package/dist/assets/studio/assets/ar-ofvhEEt4.js +6 -0
  94. package/dist/assets/studio/assets/{charts-RqioK5fB.js → charts-Dni4XxBl.js} +2 -2
  95. package/dist/assets/studio/assets/{clipboard-text-gd6s3n1bqse9zgt8-_Ede63Fg.js → clipboard-text-gd6s3n1bqse9zgt8-ZQgZ1_-o.js} +2 -2
  96. package/dist/assets/studio/assets/{collapsible-l8g94on4w7qfosmn-Dk6hg5t7.js → collapsible-l8g94on4w7qfosmn-Bn4JrutR.js} +2 -2
  97. package/dist/assets/studio/assets/{combobox-hdxtsm2gqcxxgfju-DgmfP13I.js → combobox-hdxtsm2gqcxxgfju-C8ue-AJ-.js} +2 -2
  98. package/dist/assets/studio/assets/{createToastManager-onmoqrmr8zo02rif-_Y_xgvmb.js → createToastManager-onmoqrmr8zo02rif-V5YAqQyh.js} +2 -2
  99. package/dist/assets/studio/assets/de-CUjqphee.js +6 -0
  100. package/dist/assets/studio/assets/{deleteLabels-C5GfAnPh.js → deleteLabels-Cm9ihsQ3.js} +2 -2
  101. package/dist/assets/studio/assets/{dialog-glpnivujociqs9lh-Cch0_XyA.js → dialog-glpnivujociqs9lh-BqMU4UxI.js} +2 -2
  102. package/dist/assets/studio/assets/{editor-BQa6TaZi.js → editor-D3pyx_CZ.js} +2 -2
  103. package/dist/assets/studio/assets/es-DXloqVLE.js +6 -0
  104. package/dist/assets/studio/assets/fa-BDO-9MVu.js +6 -0
  105. package/dist/assets/studio/assets/fr-Cm9SdqZD.js +6 -0
  106. package/dist/assets/studio/assets/he-Bt5bz790.js +6 -0
  107. package/dist/assets/studio/assets/hi-C3-GZG-C.js +6 -0
  108. package/dist/assets/studio/assets/i18n-CdW50___.js +7 -0
  109. package/dist/assets/studio/assets/id-fk1BPM1I.js +6 -0
  110. package/dist/assets/studio/assets/index-DYyDeKnk.js +4 -0
  111. package/dist/assets/studio/assets/it-KwlZf5Ee.js +6 -0
  112. package/dist/assets/studio/assets/ja-BZHSI7Yq.js +6 -0
  113. package/dist/assets/studio/assets/ko-B9L7Js7b.js +6 -0
  114. package/dist/assets/studio/assets/layer-dialog-j5ywmzs46ccg6oqy-DLBR2ljP.js +2 -0
  115. package/dist/assets/studio/assets/{media-PkgIV37k.js → media-D4YZ713s.js} +3 -3
  116. package/dist/assets/studio/assets/nl-4w3IGlXj.js +6 -0
  117. package/dist/assets/studio/assets/permalinks-CNYgOPCo.js +2 -0
  118. package/dist/assets/studio/assets/pl-CCYhWdyU.js +6 -0
  119. package/dist/assets/studio/assets/pt-BR-xY-_D6mf.js +6 -0
  120. package/dist/assets/studio/assets/ru-DZ1xI15Q.js +6 -0
  121. package/dist/assets/studio/assets/{schedules-api-5mgRmrjL.js → schedules-api-DWQc-xjG.js} +2 -2
  122. package/dist/assets/studio/assets/{tag-input-ohfybx5dbxy3houy-C5BpU4R7.js → tag-input-ohfybx5dbxy3houy-CbqFHYvH.js} +2 -2
  123. package/dist/assets/studio/assets/tr-n4MtlsVR.js +6 -0
  124. package/dist/assets/studio/assets/uk-aiCWjdse.js +6 -0
  125. package/dist/assets/studio/assets/{useAnalyticsCard-tsyFdq37.js → useAnalyticsCard-D_EaD-GJ.js} +2 -2
  126. package/dist/assets/studio/assets/{useMe-DcrRDsez.js → useMe-D5W0xdO9.js} +2 -2
  127. package/dist/assets/studio/assets/{usePaging-kMfWrvea.js → usePaging-YS-Bfnj9.js} +2 -2
  128. package/dist/assets/studio/assets/{usePendingApprovals-BVHPCnd7.js → usePendingApprovals-54FcNUfi.js} +2 -2
  129. package/dist/assets/studio/assets/zh-Hans-D7CeiRbC.js +6 -0
  130. package/dist/assets/studio/index.html +16 -16
  131. package/dist/src/commands/analytics.d.ts +1 -1
  132. package/dist/src/commands/analytics.js +4 -3
  133. package/dist/src/commands/deploy/resources.d.ts +10 -0
  134. package/dist/src/commands/deploy/resources.js +25 -0
  135. package/dist/src/commands/deploy/ship.js +25 -19
  136. package/package.json +11 -11
  137. package/dist/assets/studio/assets/AgentsPage-DTYrfM8r.js +0 -2
  138. package/dist/assets/studio/assets/AnalyticsPage-BHH7HUno.js +0 -3
  139. package/dist/assets/studio/assets/ArticleEditorPage-DNo73SWr.js +0 -2
  140. package/dist/assets/studio/assets/ArticlesPage-aY2U4lYq.js +0 -2
  141. package/dist/assets/studio/assets/CommentThreadPage-JhpHw2fy.js +0 -2
  142. package/dist/assets/studio/assets/GovernanceDialog-6vMG-DjQ.js +0 -2
  143. package/dist/assets/studio/assets/MembersPage-1Dpp6fR0.js +0 -2
  144. package/dist/assets/studio/assets/Menus-BqLOw0If.js +0 -2
  145. package/dist/assets/studio/assets/RedirectDialog-BEIl9Rio.js +0 -2
  146. package/dist/assets/studio/assets/RedirectsPage-ClI2C61E.js +0 -2
  147. package/dist/assets/studio/assets/ScheduleDialog-BcjQEb-r.js +0 -2
  148. package/dist/assets/studio/assets/Seo-S2Fmf0_k.js +0 -2
  149. package/dist/assets/studio/assets/SeoPreview-BaS-x90q.js +0 -2
  150. package/dist/assets/studio/assets/SiteSettingsPage-DdNblHPf.js +0 -3
  151. package/dist/assets/studio/assets/SnapshotsPage-CTUCS2y4.js +0 -2
  152. package/dist/assets/studio/assets/Taxonomy-BP_PrlF2.js +0 -2
  153. package/dist/assets/studio/assets/api-Cqqt5jTd.js +0 -4
  154. package/dist/assets/studio/assets/ar-DZD_LN4R.js +0 -6
  155. package/dist/assets/studio/assets/de-D65bXpkj.js +0 -6
  156. package/dist/assets/studio/assets/es-c812D9nl.js +0 -6
  157. package/dist/assets/studio/assets/fa-vxNhZpLh.js +0 -6
  158. package/dist/assets/studio/assets/fr-DhVGWQ1r.js +0 -6
  159. package/dist/assets/studio/assets/he-BUNedH-H.js +0 -6
  160. package/dist/assets/studio/assets/hi-BRLMI3vy.js +0 -6
  161. package/dist/assets/studio/assets/i18n-Dz1LE8DB.js +0 -7
  162. package/dist/assets/studio/assets/id-Di4ybegt.js +0 -6
  163. package/dist/assets/studio/assets/index-DMKFLgkG.js +0 -4
  164. package/dist/assets/studio/assets/it-CmzTT1jK.js +0 -6
  165. package/dist/assets/studio/assets/ja-Bx1aRBDT.js +0 -6
  166. package/dist/assets/studio/assets/ko-Dcw0wiZr.js +0 -6
  167. package/dist/assets/studio/assets/layer-dialog-j5ywmzs46ccg6oqy-CySAcQJW.js +0 -2
  168. package/dist/assets/studio/assets/nl-BeTtPQCB.js +0 -6
  169. package/dist/assets/studio/assets/pl-DMfBcmtn.js +0 -6
  170. package/dist/assets/studio/assets/pt-BR-B4XbkQp3.js +0 -6
  171. package/dist/assets/studio/assets/ru-ttvcqOmM.js +0 -6
  172. package/dist/assets/studio/assets/tr-eeqDuraZ.js +0 -6
  173. package/dist/assets/studio/assets/uk-ooRGP488.js +0 -6
  174. package/dist/assets/studio/assets/zh-Hans-CGcsS9Bh.js +0 -6
@@ -0,0 +1,7 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ar-CS6h3U7d.js","assets/preload-helper-DjzSQ1t3.js","assets/de-COZWf0tz.js","assets/es-Cpr7u5Cz.js","assets/fa-8y3tvKw6.js","assets/fr-IvKa5dhW.js","assets/he-DG-oJz8N.js","assets/hi-CngsNxV4.js","assets/id-CrWAlC6J.js","assets/it-BbkGji4q.js","assets/ja-CLpIeite.js","assets/ko-u0y0T6iL.js","assets/nl-CraQgOQ0.js","assets/pl-Z99ZIGWL.js","assets/pt-BR-CjvH9SeS.js","assets/ru-CwyHst7f.js","assets/tr-DOAJHdbH.js","assets/uk-9ZV1-TPI.js","assets/zh-Hans-D57DCm9K.js"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,r as n}from"./react-CDCuUAOg.js";import{u as r}from"./intl-C22KAx_l.js";import{i,n as a,t as o}from"./format-DGE2c-4V.js";import{t as s}from"./preload-helper-DjzSQ1t3.js";var c=e(t(),1),l=n(),u={app:{name:`Cloudhal Studio`,tagline:`Sign in to operate your sites.`},playground:{title:`Playground`,description:[[2,`count`,{one:[[4],` minute left`],other:[[4],` minutes left`]}],`. Everything here is deleted when the session ends, so don't enter personal data.`],reset:`Reset`,deploy:`Deploy to Cloudflare`,unavailableTitle:`Available in your own install`,unavailableDescription:`Team members, agent keys and account settings need sign-in, so the playground leaves them out. Deploy Cloudhal to your Cloudflare account to use them.`},common:{save:`Save`,cancel:`Cancel`,delete:`Delete`,publish:`Publish`,rollBack:`Roll back`,loading:`Loading…`,signOut:`Sign out`,live:`Live`,language:`Language`,more:`More`,rev:`rev {rev}`,close:`Close`,optional:`(optional)`,moreInformation:`More information`,copy:`Copy`,copied:`Copied`,retry:`Try again`,discard:`Discard`,saveChanges:`Save changes`,unsaved:`Unsaved changes`,onThisPage:`On this page`,on:`On`,off:`Off`,deleteResource:{title:`Delete {name}`,warning:`This action cannot be undone. This will permanently delete the {name} {type}.`,typeToConfirm:`Type {name} to confirm:`,copy:`Copy {name} to clipboard`,confirmInput:`Type {name} to confirm deletion`,delete:`Delete {type}`}},theme:{label:`Theme`,current:`Theme: {name}`,light:`Light`,dark:`Dark`,system:`System`},auth:{signInTitle:`Welcome back`,signUpTitle:`Create your account`,signUpDescription:`The first account on a new Studio becomes its owner.`,footer:`Open source · Apache-2.0`,signIn:`Sign in`,createAccount:`Create account`,name:`Name`,email:`Email`,password:`Password`,passwordHint:`At least 8 characters`,failed:`Sign-in failed`,setupTitle:`Set up this Studio`,setupDescription:"You opened the setup link from `cloudhal deploy`. The account you create now becomes the owner; afterwards sign-up closes."},sites:{title:`Sites`,description:`Every site is a graph of pages and content that agents operate under your approval.`,columns:{project:`Project`,name:`Name`,slug:`Slug`,pages:`Pages`,status:`Status`},notPublished:`Not published`,empty:`No sites yet`,emptyDescription:`Create one from the terminal and it appears here.`,search:`Search sites`,usageTitle:`From the terminal`,usageDescription:`Everything in Studio is also a CLI command, so agents and scripts can do the same work.`,open:`Open`},pageHeaders:{media:{title:`Media`,description:`Images, video, audio, documents and data files of this site. New files go live with the next publish.`},pages:{title:`Pages`,description:`The routes of this site. Each page is a stack of sections that themes render.`},articles:{title:`Articles`,description:`Posts and other entries, written by people or agents and published with the site.`},snapshots:{title:`Snapshots`,description:`Frozen versions of the site. Publishing points the live site at one; rolling back points it at an earlier one.`},activity:{title:`Activity`,description:`Every tool call an agent or person made on this site, with the policy decision.`},approvals:{title:`Approvals`,description:`Agents' publishes, rollbacks and deletes, their edits in Manual mode, their requests for more autonomy, and publishes people's roles can't make alone wait here until someone who may decide does.`},settings:{title:`Settings`,description:`Name, languages, domains and preview links for this site.`},agents:{title:`Agents`,description:`Keys let agents, CI jobs and MCP clients work on your sites. A key's mode decides what the agent does on its own and what waits for you.`},skills:{title:`Skills`,description:`Playbooks agents read over MCP. A call made under a skill only gets the scopes it declares, and the tools it lists always wait for a person.`},account:{title:`Account`,description:`Your profile, how you sign in, and who else can get into this Studio.`},taxonomy:{title:`Categories & tags`,description:`How articles are filed and found. A rename, merge or retirement is one change and one snapshot, and leaves redirects behind.`},navigation:{title:`Navigation`,description:`The menus visitors find their way with: the header, the footer and any your theme places. Items point at pages and categories, so renames never break them.`},translations:{title:`Translations`,description:`Every page and article by language: what is missing, out of date or waiting for a person's review.`},redirects:{title:`Redirects`,description:`Old addresses and where they send visitors. Slug changes, merges and retirements add them on their own; you can add your own too.`},team:{title:`Team`,description:`Who works on this Studio and in which role. People join with a one-time invite link; their agents never do more than they can.`}},nav:{media:`Media`,comments:`Comments`,overview:`Overview`,content:`Content`,history:`History`,automation:`Automation`,account:`Account`,home:`Overview`,pages:`Pages`,articles:`Articles`,snapshots:`Snapshots`,agents:`Agents`,allSites:`All sites`,sites:`Sites`,switchSite:`Switch site`,search:`Search or run a command…`,shortcutHint:`⌘K`,shortcutHintCtrl:`Ctrl K`,agentSkills:`Skills`,schedules:`Schedules`,activity:`Activity`,agentKeys:`Keys and MCP`,approvals:`Approvals`,settings:`Settings`,siteSettings:`Settings`,taxonomy:`Categories & tags`,navigation:`Navigation`,redirects:`Redirects`,translations:`Translations`,team:`Team`,analytics:`Analytics`},commands:{goMedia:`Go to media`,goComments:`Go to comments`,goAnalytics:`Go to analytics`,placeholder:`Type a command…`,empty:`No matching command`,hintNavigate:`Navigate`,hintSelect:`Run`,hintClose:`Close`,goOverview:`Go to overview`,goArticles:`Go to articles`,goSnapshots:`Go to snapshots`,newArticle:`New article`,createSnapshot:`Create snapshot`,publishSite:`Snapshot and publish site`,goActivity:`Go to activity`,goAgents:`Go to agents`,createAgentKey:`Create agent key`,goSkills:`Go to skills`,goAccount:`Go to account settings`,goTeam:`Go to team`,goSiteSettings:`Go to site settings`,goApprovals:`Go to approvals`,goTaxonomy:`Go to categories and tags`,goNavigation:`Go to navigation menus`,goRedirects:`Go to redirects`,goSchedules:`Go to schedules`,newSchedule:`Schedule a publish…`,searchPlaceholder:`Search content or run a command…`,searchEmpty:`No commands or content match`,hintNewTab:`New tab`,groups:{commands:`Commands`,entry:`Articles`,page:`Pages`,term:`Categories and tags`,asset:`Media`,menu:`Menu items`,redirect:`Redirects`}},overview:{commentsWaiting:[[2,`count`,{one:[[4],` comment is waiting`],other:[[4],` comments are waiting`]}]],commentsWaitingDescription:`Readers don't see them until someone approves them.`,liveSnapshotLabel:`Live snapshot`,notPublished:`Not published yet`,newPage:`New page`,pages:`Pages`,columns:{title:`Title`,path:`Path`,status:`Status`,updated:`Updated`},empty:`No pages yet`,emptyDescription:`Create the first page or ask the agent to scaffold one.`,search:`Search pages`,status:`Status`,live:`Live`,recentArticles:`Recent articles`,viewAll:`View all`,cli:`From the terminal`},pageStatus:{publishTitle:`Publish “{title}”?`,published:`Page published`,unpublished:`Page moved back to draft`,failed:`The page's status did not change`,leftOut:[[2,`count`,{one:[[4],` page is not published`],other:[[4],` pages are not published`]}]],leftOutDescription:`Drafts and pages in review, new translations included, stay off the live site. Publish them first.`,review:`Review pages`},articles:{description:`Posts in the “posts” collection.`,newArticle:`New article`,empty:`No articles yet`,emptyDescription:`Write the first one, or ask the agent to.`,untitled:`Untitled`,columns:{title:`Title`,author:`Author`,status:`Status`,updated:`Updated`},search:`Search articles`,none:`—`,noCategory:`No category`,primary:`Primary category`,facets:{label:`Filter articles`,category:`Filter by category`,tag:`Filter by tag`,allCategories:`All {label}`,allTags:`All {label}`,clear:`Clear filters`,empty:`No articles match these filters`,emptyDescription:`Try another category or tag, or clear the filters.`}},articleCorrections:{title:`Corrections`,description:`Readers see these at the end of the article, newest first, and the latest is its Updated date. Once published, a correction stays: someone who can publish may reword it, nobody removes it.`,empty:`No corrections`,emptyDescription:`Add one when a published story changes in substance.`,kind:`Kind`,kinds:{correction:`Correction`,clarification:`Clarification`,update:`Update`},note:`What changed`,noteHint:`One or two sentences. Markdown links and emphasis work.`,add:`Add correction`,unsaved:`Not saved`,remove:`Remove correction`,pending:`Save the article to add it; it goes live with the next publish.`},articleTerms:{title:`Categories and tags`,description:`Categories file the article; tags describe it. The primary category appears in breadcrumbs and in the article's metadata.`,legacyDescription:`This site still keeps tags as plain text. Move them to categories and tags to give them names, archives and redirects.`,legacyTitle:`Older tags on this article`,legacyPending:`{tags} become tags when you save.`,required:`Choose a {singular} to send this article to review or publish it.`,requiredToast:`Choose a {singular} first`,slugRedirect:`Lower-case, hyphenated. This article is published: a new slug leaves a redirect from the old address.`},pickers:{under:`in {path}`,clear:`Clear`,showOptions:`Show options`,noMatch:`Nothing matches`,remove:`Remove {name}`,atMost:`At most {max}. Remove one to add another.`,categoryHint:`Up to {max}. Type to search names and synonyms.`,categoryRequiredHint:`Needed to send it to review or publish it. Up to {max}.`,categoryPlaceholder:`Choose categories…`,noCategory:`No category matches. Add categories in Categories & tags.`,primary:`Primary category`,primaryHint:`Shown in breadcrumbs and used as the article's section.`,primaryNone:`Choose one…`,tagHint:`Up to {max}. Existing tags come first, and synonyms find them too.`,tagPlaceholder:`Add a tag…`,tagFull:`Tag limit reached`,viaSynonym:`synonym “{value}”`,similar:`similar`,create:`Create “{name}”`,createNoSlug:`This name has no letters or digits for an address. Try another name.`,nearDuplicate:`Looks like {names}. Use the existing tag if it means the same.`,proposedChip:`Proposed by an agent. It gets a public page once someone approves it.`},editor:{schedule:`Schedule…`,locked:`A scheduled release holds this. Unschedule it to edit.`,heroNoImage:`No hero image`,status:`Status`,title:`Title`,slug:`Slug`,summary:`Summary`,summaryHint:`Used as the meta description in search results and on shared links.`,body:`Body (markdown)`,tags:`Tags`,tagsHint:`Comma separated`,path:`Path`,pathHint:`Absolute, lower-case, no trailing slash`,sections:`Sections`,addSection:`Add section`,noSections:`No sections yet`,noSectionsDescription:`Add a hero, rich text, image or content list.`,remove:`Remove`,moveUp:`Move up`,moveDown:`Move down`,heading:`Heading`,subheading:`Subheading`,caption:`Caption`,collection:`Collection`,limit:`Limit`,sort:`Sort`,sortNewest:`Newest`,sortOldest:`Oldest`,sortTitle:`Title`,saved:`Saved`,sendToReview:`Send to review`,submitForReview:`Submit for review`,backToDraft:`Back to draft`,archive:`Archive`,restore:`Restore to draft`,publishArticleTitle:`Publish this article?`,publishArticleDescription:`It becomes visible on the site the next time the site is snapshotted and published.`,publishPageTitle:`Publish this page?`,publishPageDescription:`It goes live the next time the site is published. Other pages and languages keep their own status.`,deleteArticle:`Delete article`,deletePage:`Delete page`,article:`Article`,page:`Page`,slugHint:`Lower-case, hyphenated; becomes the URL.`,metadata:`Details`,moreActions:`More actions`,unpublish:`Unpublish (back to draft)`,duplicate:`Duplicate`,duplicated:`Copy created`,copyTitle:`{title} (copy)`,dangerZone:`Danger zone`,deletePageTitle:`Delete this page`,deletePageHint:`Removes the page and its sections. Published snapshots keep their copy.`,deleteArticleTitle:`Delete this article`,deleteArticleHint:`Removes the article from the site. Published snapshots keep their copy.`,removeSectionTitle:`Remove this section?`,removeSectionDescription:`The {kind} section is removed from the draft. The page changes only when you save.`,sectionKinds:{hero:`Hero`,richText:`Rich text`,image:`Image`,contentList:`Content list`,component:`Block`,surface:`Generated UI`},buildLive:`Build live`,buildLiveHint:`Watch agents build this page as it happens`,surface:{title:`Generated UI · {count} components`,hint:`Built from the theme's components. Change its texts here; to change the layout, ask the AI.`,json:`Generated UI as data`,showJson:`Show JSON`,outline:`Components of this section`,expand:`Show what is inside {title}`,collapse:`Hide what is inside {title}`,changeWithAi:`Change with AI`,editTexts:`Edit the texts of {title}`,changePart:`Change {title} with AI`,bound:`shows {path}`,computed:`computed ({fn})`,notPlaced:`Not on the page`},blocks:{menu:`Blocks`,unknown:`Unknown block · {type}`,unknownHint:`This deployment has no block type with this name (the theme may have changed). It is kept as is and not shown on the site.`,item:`Item {n}`,addItem:`Add item`,removeItem:`Remove item`,moveUp:`Move up`,moveDown:`Move down`,values:{tone:{info:`Info`,success:`Success`,warning:`Warning`,danger:`Danger`},variant:{primary:`Primary`,secondary:`Secondary`}}},bodyTitle:`Body`,markdown:`Markdown`,words:[[2,`count`,{one:[[4],` word`],other:[[4],` words`]}]],id:`ID`,revision:`Revision`,locale:`Language`,author:`Author`,updatedAt:`Updated`,publishedAt:`Published`},seo:{counter:`{count} / {max}`,fixErrors:`Fix the highlighted fields before saving.`,cover:{title:`Cover image`,description:`Shown above the article and used as its picture when the link is shared. Choose it from the media library, or upload a new one there.`,url:`Image URL`,urlHint:`An https:// address, or a path on your site such as /images/cover.jpg.`,urlPlaceholder:`https://… or /images/cover.jpg`,alt:`Alt text`,altHint:`Describe what the image shows. Screen readers read it to people who can't see the image, and search engines use it to understand it.`,altPlaceholder:`A lighthouse above a calm sea at dusk`,remove:`Remove image`,empty:`No cover image`,loading:`Loading image…`,broken:`Couldn't load this image`,brokenHint:`Check the address and that the image is public.`,brokenPathHost:`Site paths load from {host}. Check the path, or that the site is deployed.`,brokenPathNoDomain:`Site paths load from the primary domain. Add one in Settings › Domains to see them here.`,size:`{width} × {height} px`,errors:{required:`Enter an image address, or remove the image.`,insecure:`Use https://. Browsers block http images on secure sites.`,invalid:`Enter an https:// address or a path that starts with /.`,tooLong:`At most 2,048 characters.`,altRequired:`Describe the image. Alt text is required for a cover image.`,altTooLong:`At most 500 characters.`}},preview:{title:`Search and social preview`,description:`How this article appears in search results and when its link is shared. The summary is used as the meta description and the cover image as the share image.`,search:`Search result`,social:`Social card`,noSummary:`No summary yet. Search engines and social networks pick text from the article.`,noDescription:`No meta description. Search engines pick text from the page.`},checks:{label:`Checks`,title:`Title`,titleGood:`{count} characters. Fits in a search result.`,titleLong:`{count} characters. Search results cut titles after about 60.`,titleMissing:`Add a title.`,description:`Meta description`,summary:`Meta description (summary)`,descriptionGood:`{count} characters. Fits in a search result.`,descriptionShort:`{count} characters. Short descriptions are often replaced; aim for 50–160.`,descriptionLong:`{count} characters. Search results cut it after about 160.`,summaryMissing:`Add a summary. Without one, search engines pick text from the article.`,image:`Share image`,imageSet:`The cover image is used.`,imageMissing:`No cover image, so shared links show no picture.`,imageBroken:`The cover image doesn't load.`,status:{good:`Good`,short:`Short`,long:`Too long`,missing:`Missing`,broken:`Broken`}},page:{title:`Search engines and sharing`,description:`How this page appears in search results and when its link is shared.`,seoTitle:`SEO title`,seoTitleHint:`Leave empty to use the page title.`,seoDescription:`Meta description`,seoDescriptionHint:`One or two sentences on what the page offers. Aim for 50–160 characters.`,seoDescriptionPlaceholder:`What visitors find on this page`,noindex:`Hide from search engines`,noindexHint:`Adds a noindex tag. The page stays reachable through its link.`,noindexWarningTitle:`This page is hidden from search engines`,noindexWarning:`Search engines are asked not to list it, and a page that is already listed drops out after their next visit. Leave this off for pages people should find through search.`,advanced:`Advanced`,custom:`Custom`,canonical:`Canonical URL`,canonicalHintHost:`Usually empty: the page's address on {host} is used. Set it only when the original of this content lives at another address.`,canonicalHint:`Usually empty: the page's address on the site's primary domain is used. Set it only when the original of this content lives at another address.`,canonicalPlaceholder:`https://example.com/original-page`,searchPreview:`Search preview`,hidden:`Hidden from search`,errors:{titleTooLong:`At most 300 characters.`,descriptionTooLong:`At most 500 characters.`,canonicalInvalid:`Enter a full address that starts with https://.`,canonicalTooLong:`At most 2,048 characters.`}},noindexBadge:`noindex`,noindexBadgeHint:`Hidden from search engines. Change it in the page's search settings.`,noCover:`No cover image`,archive:{seoTitleHint:`Leave empty to use the term's name.`,noindexHint:`Adds a noindex tag to the archive. It stays reachable through its link.`,noindexWarningTitle:`This archive is hidden from search engines`,noindexWarning:`Search engines are asked not to list it, and it leaves the sitemap. Leave this off for topics people should find through search.`}},status:{draft:`Draft`,review:`In review`,published:`Published`,archived:`Archived`},site:{publish:`Publish`,publishDescription:`Record a snapshot of the current graph and make it the live version.`,description:`/{slug} · {locale}`,rowMenu:`More actions`},snapshots:{description:`Every snapshot is immutable; publishing points the site at one.`,label:`Label`,labelPlaceholder:`e.g. Morning edition`,empty:`No snapshots yet`,emptyDescription:`Take a snapshot to freeze the current state of the site.`,created:`Snapshot created`,published:`Published`,publishedSnapshot:`Snapshot published`,rolledBack:`Rolled back`,failed:`Failed`,rollbackTitle:`Roll back the live site?`,publishTitle:`Publish to the live site?`,createDescription:`A snapshot of the current graph is recorded and becomes the live version.`,becomesLive:`{name} becomes the live version.`,fromStudio:`Snapshot from Studio`,publishedFromStudio:`Published from Studio`,compare:`Compare`,create:`Create snapshot`,createTitle:`Create a snapshot`,createIntro:`Freezes the site's current pages, articles and settings. Snapshots never change once taken.`,labelDescription:`Optional. Shown in the list and in Activity instead of the reason.`,afterCreate:`After creating it`,keepOption:`Keep the live site as it is`,keepOptionDescription:`Save the snapshot only. Publish it or compare it later from this list.`,publishOption:`Publish it to the live site`,publishOptionDescription:`The snapshot becomes the live version. You confirm before anything goes live.`,continueToPublish:`Continue to publish`,search:`Search snapshots`,noMatches:`No snapshots match`,noMatchesDescription:`Try another label or snapshot id.`,actions:`Actions`,columns:{snapshot:`Snapshot`,actor:`Author`,changes:`Changes`,when:`Created`},reasons:{manual:`Manual`,agentMutation:`Agent change`,publish:`Publish`,rollback:`Rollback`,scheduled:`Scheduled`,import:`Import`}},errors:{title:`Something went wrong`,conflict:`Someone else changed this since you opened it. Reload to get the latest version.`,api:{not_found:`It's no longer here. Someone may have deleted it.`,forbidden:`You don't have permission to do this.`,unauthorized:`Your session has ended. Sign in again.`,rank:`Your role doesn't allow this.`,not_own:`You can only do this to your own work.`,missing_scope:`This key or session isn't allowed to do this.`,rate_limited:`Too many requests. Wait a moment and try again.`,internal:`Something went wrong on the server. Try again.`,invalid_json:`The server sent an answer Studio couldn't read. Try again.`,unique:`Something with this name or address already exists.`,slug_taken:`This address is already in use.`,path_conflict:`Another page or article already uses this path.`,reserved_path:`This path is reserved for the site itself (search, media or a language prefix).`,in_use:`It's still in use, so it can't be removed.`,quota_exceeded:`The storage quota is full.`,too_large:`This change is too large for one operation. Split it up.`,state_changed:`This changed in the meantime. Reload and try again.`,network:`Can't reach the server. Check your connection and try again.`,status:`The request failed (HTTP {status}).`}},agents:{description:`Keys let agents, CI jobs and MCP clients work on your sites. Each key has a mode that decides what the agent does on its own and what waits for you. Every call is checked by policy and recorded in the site's activity.`,createKey:`Create key`,search:`Search keys`,columns:{name:`Name`,owner:`Created by`,mode:`Mode`,scopes:`Scopes`,created:`Created`,status:`Status`},views:{mine:`Your keys`,all:`All keys`},all:{title:`Every agent key on this deployment`,description:`As an Administrator you can end an elevation or revoke any key. Only a key's creator changes its mode or elevates it.`,search:`Search keys or people`,empty:`No agent keys yet`,emptyDescription:`Keys people create appear here with who made them.`,unknownOwner:`Removed member`,elevateOnlyCreator:`Only the person who created this key can elevate it. You can end an elevation or revoke the key.`},roleCap:`Your role allows agent keys up to {mode} mode.`,narrowed:{badge:`Narrowed by role`,hint:`The creator's role limits what this key can do right now; these are the scopes it works with.`,hintRole:`The creator's role is {role} now, so this key works with these scopes. A promotion doesn't widen it again.`,stored:`Given: {scopes}`},active:`Active`,disabled:`Disabled`,never:`Never expires`,expires:`Expires {when}`,unnamed:`Unnamed key`,keyPrefix:`{start}…`,fullAccess:`Full access`,scopesModeDefault:`Mode default · {count} scopes`,empty:`No agent keys yet`,emptyDescription:`Create one key per agent or automation, grant only the scopes it needs, and revoke it when the work is done.`,noMatches:`No keys match “{query}”`,notEnabledTitle:`Agent keys aren't available on this server`,notEnabledDescription:`This server runs without sign-in, so it can't issue keys. Agents on your machine can still connect over stdio with cloudhal mcp.`,copyId:`Copy key ID`,revoke:`Revoke`,revokeKey:`Revoke key`,keyResource:`Agent key`,revoked:`Key revoked`,revokedDescription:`{name} can no longer reach Studio.`,scopes:{"site:read":`See sites and snapshots`,"content:read":`Read pages and articles`,"content:write":`Create, edit and delete pages and articles`,"asset:upload":`Upload media and edit its own uploads`,"asset:manage":`Edit, retire and delete any media`,"analytics:read":`Read site analytics (no personal data)`,"site:write":`Change site settings`,"preview:create":`Render draft previews`,"site:publish":`Publish a snapshot to the live site`,"site:rollback":`Roll the live site back`,"content:write:own":`Create articles and change your own`,"content:draft:own":`Write drafts and send them to review`,"content:propose":`Suggest body edits; you accept or reject them`,"site:publish:own":`Publish when every change is your own`,"comments:read":`Read reader comments (never emails)`,"comments:moderate":`Label and hide comments; approvals wait for you`,"comments:moderate:own":`Label and hide comments on your own articles`,"comments:reply":`Draft replies to comments; you publish them`,"comments:reply:own":`Draft replies on your own articles; you publish them`,"schedules:read":`See the schedule, releases and automation runs`,"schedules:write":`Propose and schedule releases, embargoes and expiries`,"schedules:write:own":`Schedule releases of your own pages and articles`,"releases:publish":`Approve releases; in Auto mode, low-risk ones run without you`,"releases:publish:own":`Approve releases when every item is your own`},modes:{legend:`Mode`,names:{plan:`Plan`,manual:`Manual`,edits:`Edits`,auto:`Auto`,bypass:`Bypass`},descriptions:{plan:`Reads your sites and renders previews. It can suggest changes but never makes them.`,manual:`Asks you before every change it makes, however small.`,edits:`Creates and edits content freely. Every change is snapshotted and can be rolled back.`,auto:`Works like Edits, and small article publishes go live without you.`,bypass:`Nothing waits for a person. Only for cloudhal mcp on your own machine.`},waitsFor:[[3,`mode`,{plan:[`Waits for you: nothing, because it can't change anything`],manual:[`Waits for you: every edit, publish, rollback and deletion`],edits:[`Waits for you: publish, rollback and deletions`],auto:[`Waits for you: larger publishes, rollback and deletions`],bypass:[`Waits for you: nothing`],other:[`Waits for you: every edit, publish, rollback and deletion`]}]],risk:{safest:`Safest`,recommended:`Recommended`,caution:`Use with care`},current:`Current`,bypassHint:`Bypass, where nothing waits for a person, isn't available for keys. It exists only for the local server on your own machine:`,autoTitle:`Small publishes go live without you`,autoDescription:`In Auto mode, a publish that only adds or edits articles goes live right away: nothing removed, no pages, menus, site settings, taxonomies or redirects changed, at most {limit} changes. Activity marks it as auto-approved and you can roll it back in one click. Larger publishes, rollback and deletions still wait for you.`,autoConfirm:`I understand that this agent can publish without my approval`,autoConfirmRequired:`Confirm that you understand what Auto mode does`},howModes:{title:`How modes work`,description:`A mode decides what an agent does on its own and what waits for you. Scopes stay the hard limit: a mode never grants more.`,columns:{mode:`Mode`,edits:`Content`,publish:`Publish`,rollback:`Rollback, delete`},rules:{denied:`Blocked`,waits:`Waits`,free:`Free`,lowRisk:`Small: free`},rulesHint:{denied:`The agent can't do this in this mode.`,waits:`The agent asks; you approve in the site's Activity › Approvals.`,free:`The agent does this on its own. Every change is snapshotted.`,lowRisk:`Only articles added or edited, nothing removed, at most {limit} changes. Anything larger waits for you.`},gated:`Always waits for you with a key`,bypass:`Bypass is for your own machine only:`},changeMode:{menu:`Change mode`,title:`Change mode`,description:`Choose how “{name}” works from now on.`,from:`Now`,to:`New`,nextCallTitle:`Applies on the agent's next call`,nextCall:`Calls already running finish in the current mode. The change is recorded in the audit log.`,submit:`Change mode`,failed:`Couldn't change the mode`,changed:`Mode changed`,changedDescription:`{name} now works in {mode} mode.`,elevatedTitle:`Elevated to {mode} until {time}`,elevationKeeps:`The elevation stays in force until {time}, then the key works in {mode} mode.`,elevationEnds:`{mode} reaches the elevated mode, so this change ends the elevation.`},elevate:{menu:`Elevate temporarily`,menuDisabled:`Already in Auto, the most autonomous mode a key can have.`,title:`Elevate temporarily`,description:`Let “{name}” work in a more autonomous mode for a while. When the time is up, it goes back to its own mode by itself.`,ownMode:`Own mode`,ownModeHint:`Stays as it is. The key returns to it when the elevation ends.`,legend:`Elevate to`,duration:`Duration`,presets:{15:`15 min`,60:`1 hour`,240:`4 hours`,1440:`1 day`,custom:`Custom`},customValue:`Custom duration`,customUnit:`Unit`,units:{minutes:`Minutes`,hours:`Hours`},customHint:`Between {min} and {max}.`,customErrors:{invalid:`Enter a number`,tooShort:`At least {min}`,tooLong:`At most {max}`},reason:`Reason`,reasonPlaceholder:`e.g. Launch day: publish small updates on its own`,reasonHint:`Optional. Shown in the audit log.`,replacesTitle:`This replaces the elevation in force`,replaces:`“{name}” works in {mode} mode until {time}. The new elevation takes its place.`,now:`Now`,elevated:`Elevated`,summary:`Until {time} (in {duration}), then back to {from}.`,nextCall:`Applies on the agent's next call. You can end it early from the key's menu.`,submit:`Elevate`,failed:`Couldn't elevate the key`,done:`Key elevated`,doneDescription:`{name} works in {mode} mode until {time}, then back to {from}.`},elevation:{left:`{time} left`,ownMode:`Own mode: {mode}`,tooltip:`Elevated from {from} until {time} by {who}`,requestedReason:`Requested by the agent: “{reason}”`,byYou:`you`,temporary:`Temporarily elevated`,marker:`Temporarily elevated from {from} until {time}`,endMenu:`End elevation now`,ended:`Elevation ended`,endedDescription:`{name} is back in {mode} mode.`,endFailed:`Couldn't end the elevation`,bannerTitle:[[2,`count`,{one:[[4],` agent key is elevated`],other:[[4],` agent keys are elevated`]}]],bannerItem:`{name}: {from} → {to} until {time}`,endNow:`End now`,endAll:`End all now`,endsIn:`Ends in {time}`,extendAll:`Extend all {duration}`,howModes:`Need more autonomy for a while? Elevate a key temporarily instead of leaving it in Auto: it returns to its own mode by itself.`},create:{title:`Create agent key`,description:`The key acts as an agent on every site you can open, in the mode you choose.`,stepMode:`Step 1 of 2 · Choose a mode`,stepDetails:`Step 2 of 2 · Name and scopes`,continue:`Continue`,mode:`Mode`,changeMode:`Change`,name:`Name`,namePlaceholder:`e.g. Claude Code on my laptop`,nameHint:`Agents appear under this name in the activity log.`,nameRequired:`Give the key a name`,advanced:`Advanced: scopes`,advancedHint:`Prefilled for {mode} mode. Scopes are the hard limit; the mode decides what waits for you.`,customised:`Customised`,resetScopes:`Use the mode's scopes`,missingScopesTitle:`Some of what this mode allows won't work`,missingScopes:`Without {scopes}, the agent can't do everything {mode} mode allows.`,scopes:`Scopes`,scopesRequired:`Choose at least one scope`,groups:{read:`Read`,write:`Write`,release:`Publish and roll back`},groupHints:{read:`Enough for agents that research, summarise or review.`,write:`Changes are snapshotted and can be rolled back.`,release:`Lets the agent change, or ask to change, what visitors see.`},submit:`Create key`,failed:`Couldn't create the key`,scopeAboveRole:`Your role can't give this to a key.`,scopeNarrowed:`Your role gives {scope} only for your own work.`,errors:{scopeAboveRole:`Your role can't give a key some of these scopes. Untick them and try again.`,modeAboveRole:`Your role doesn't allow keys in this mode. Choose a less autonomous one.`}},reveal:{title:`Copy your new key`,description:`“{name}” is ready. Your agent sends it as a bearer token or in the x-api-key header.`,warningTitle:`You won't see this key again`,warning:`Store it now in your password manager or the agent's secret store. If it's lost, revoke it and create a new one.`,key:`Agent key`,config:`Client configuration`,done:`I've stored the key`},connect:{title:`Connect an MCP client`,description:`Agents reach Studio over MCP at this address and send their key in a header. When it connects, the agent is told its key's mode, so it knows what waits for you.`,endpoint:`MCP endpoint`,header:`Header`,client:`Client`,clients:{claude:`Claude Code`,codex:`Codex`,cursor:`Cursor`,vscode:`VS Code`,generic:`Other client`,stdio:`Local (stdio)`},hints:{claude:`Run it in a terminal, then check the connection with /mcp inside Claude Code.`,codex:`Codex reads the key from CLOUDHAL_API_KEY and sends it as a bearer token. Put the export line in your shell profile so the key is set whenever Codex starts.`,cursor:`Paste it into ~/.cursor/mcp.json, or .cursor/mcp.json in a project. The file holds the key, so keep it out of version control.`,vscode:`Save it as .vscode/mcp.json in your project. VS Code asks for the key once and keeps it in its secret storage.`,generic:`Any client that speaks streamable HTTP: this URL, with the key in the Authorization header as a bearer token. The x-api-key header works too.`,stdio:`On your own machine, run the stdio server inside the site folder; no key needed. --mode sets how it works, and only here can it be bypass.`}}},activity:{search:`Search tool, actor or skill`,refresh:`Refresh activity`,filters:{label:`Filters`,kind:`Actor type`,decision:`Decision`,allKinds:`All actors`,allDecisions:`All decisions`},kinds:{agent:`Agent`,human:`Person`,system:`System`},decisions:{allow:`Allowed`,deny:`Denied`,"approval-required":`Needs approval`},outcomes:{ok:`Succeeded`,error:`Failed`,pending:`Pending`},columns:{when:`When`,actor:`Actor`,tool:`Tool`,decision:`Decision`,outcome:`Outcome`,skill:`Skill`,snapshot:`Snapshot`},empty:`No activity yet`,emptyDescription:`Every tool call an agent or person makes over MCP is recorded here: allowed, denied or waiting for approval.`,noMatches:`No events match these filters`,noMatchesDescription:`Filters apply to the events loaded so far. Load more to look further back.`,clearFilters:`Clear filters`,showing:`Showing {shown} of {loaded} loaded events`,allLoaded:`You've reached the first recorded event.`,loadMore:`Load more`,notEnabledTitle:`This server doesn't keep an activity log`,notEnabledDescription:`Run Studio with cloudhal studio to record every agent and human tool call.`,ownOnlyTitle:`Your activity`,ownOnly:`You see what you and your agents did on this site. Editors and above see everyone's activity.`,viewEvent:`Show details`,detail:{when:`Time`,actor:`Actor`,decision:`Decision`,outcome:`Outcome`,skill:`Skill`,duration:`Duration`,durationValue:`{ms} ms`,snapshot:`Snapshot`,viewChanges:`View changes`,reason:`Why`,input:`Input`,noInput:`This call had no input.`,event:`Event #{id}`,mode:`Mode`,modeHint:`The mode the agent's key had when it made this call.`,elevation:`Elevation`,elevationHint:`The key's own mode is {from}. Its owner granted more autonomy for a while; when the elevation ends, the key works in {from} mode again.`,elevationGranted:`Elevation granted`,elevationGrantedUntil:`{mode} mode until {time}, then back to {from}.`,requestedByAgent:`Answers the agent's request`},autoApproved:`Auto-approved`,autoApprovedHint:`Went live without a person: the agent works in Auto mode and this publish was low risk.`,autoApprovedTitle:`Published without a person`,autoApprovedCount:`Article changes published: {count}`,autoApprovedDescription:`The agent works in Auto mode and this publish only added or edited articles. You can roll it back from Snapshots.`,autoApprovedDescriptionCount:`The agent works in Auto mode and this publish only added or edited articles ({count} in total). You can roll it back from Snapshots.`,requestedByAgent:`Requested by the agent`,requestedByAgentHint:`The agent asked for this elevation and a person granted it in Approvals.`,recent:`Recent activity`,recentEmpty:`No agent activity yet`,recentEmptyDescription:`Connect an agent and its tool calls appear here.`},account:{description:`Your profile, how you sign in, and who else can get into this Studio.`,sections:{profile:`Profile`,password:`Password`,sessions:`Active sessions`,notifications:`Notifications`,access:`Studio access`,server:`This server`},notifications:{description:`The bell in the top bar lists elevations that are about to end and agents that ask for one. Studio can also tell you while it's in a background tab.`,switch:`Notify me in this browser when an elevation is about to end or an agent asks for one`,switchHint:`Only while Studio is open in a tab. Each notice appears once.`,permission:`Browser permission`,permissions:{granted:`Allowed`,default:`Not asked yet`,denied:`Blocked`},permissionHints:{granted:`This browser lets Studio show notifications.`,default:`Your browser asks when you turn notifications on.`,denied:`Changed in your browser, not in Studio.`},deniedTitle:`Notifications are blocked for Studio`,denied:`To turn them on, allow notifications for this site in your browser's site settings (the icon next to the address), then reload Studio.`,unsupported:`This browser can't show notifications. The bell in the top bar still lists everything.`,enabled:`Browser notifications are on`,test:`Send a test notification`,testTitle:`Notifications are on`,testBody:`This is how Studio tells you when an elevation is about to end or an agent asks for one.`},profile:{description:`How you appear in Studio and in each site's activity log.`,name:`Name`,nameHint:`Shown next to the changes and approvals you make.`,email:`Email`,emailHint:`You sign in with this address. It can't be changed here.`,memberSince:`Member since {date}`,actorId:`Actor ID`,actorIdHint:`How activity and snapshots identify you.`,role:`Role`,roleHint:`What you can do here. An Administrator or the Owner changes it.`,saved:`Profile saved`,failed:`Couldn't save your profile`,errors:{required:`Enter your name`,tooLong:`Use at most {max} characters`}},password:{description:`Use a long passphrase you don't use anywhere else.`,current:`Current password`,new:`New password`,newHint:`At least {min} characters.`,confirmHint:`Type the new password again.`,confirm:`Confirm new password`,show:`Show password`,hide:`Hide password`,signOutOthers:`Sign out of all other sessions`,signOutOthersHint:`Recommended if someone else might know your old password.`,submit:`Change password`,changed:`Password changed`,changedOthers:`Your other sessions were signed out.`,failed:`Couldn't change your password`,errors:{currentRequired:`Enter your current password`,currentWrong:`That isn't your current password`,newRequired:`Enter a new password`,tooShort:`Use at least {min} characters`,tooLong:`Use at most {max} characters`,same:`Choose a password different from the current one`,confirmRequired:`Repeat the new password`,mismatch:`The passwords don't match`}},sessions:{showAll:`Show all {count}`,showFewer:`Show fewer`,description:`Browsers and clients signed in to your account. Sign out any you don't recognise. Agent keys are listed under Agents.`,columns:{device:`Device`,ip:`IP address`,lastActive:`Last active`,signedIn:`Signed in`},current:`This device`,unknownDevice:`Unknown device`,unknownIp:`Unknown`,deviceOn:`{browser} on {os}`,revoke:`Sign out`,revokeLabel:`Sign out {device}`,signOutOthers:`Sign out other sessions`,onlyThis:`This is your only active session.`,count:`{count} active`,revokeTitle:`Sign out this session?`,revokeDescription:`{device} will have to sign in again.`,revokeOthersTitle:`Sign out all other sessions?`,revokeOthersDescription:`Every browser and client except this one will have to sign in again. Agent keys keep working.`,revoked:`Session signed out`,revokedOthers:`Other sessions signed out`,staleTitle:`Sign in again to see your sessions`,staleDescription:`For your security, the session list needs a sign-in from the last 24 hours.`,signInAgain:`Sign in again`},access:{description:`Who can create an account on this Studio. It's set where the server runs, not here.`,signUp:`Sign-up`,policies:{"first-user":`Owner only`,closed:`Closed`,open:`Open to anyone`,unknown:`Not reported`},explanations:{"first-user":`The first person to sign up became the owner, and sign-up closed right after. Anyone else needs an account created for them.`,closed:`Nobody can sign up. Accounts are created by the owner.`,open:`Anyone who can reach this address can create an account, and every account has full access to every site.`,unknown:`This server doesn't report how sign-up is configured.`},openWarningTitle:`Anyone can sign up`,openWarning:`Every account gets full access to every site. Close sign-up before you share this address.`,howToChange:`On Cloudflare, set CLOUDHAL_SIGNUP on the admin Worker to open or closed (unset means owner only). cloudhal studio on your machine is always owner only.`,serverDescription:`What this Studio deployment runs.`,features:{members:`Team and roles`,agentKeys:`Agent keys`,mcp:`MCP server`,activity:`Activity log`,previewLinks:`Preview links`,deployTransfer:`Deploy and transfer`,approvals:`Approvals in Studio`,elevationRequests:`Elevation requests`},featureHints:{members:`People join by invite link and work in a role: Owner, Administrator, Editor, Author or Contributor.`,agentKeys:`Agents and CI jobs sign in with keys you create.`,mcp:`Agents connect at /mcp.`,activity:`Every tool call is recorded per site.`,previewLinks:`Signed links that show drafts on the deployed site.`,deployTransfer:`cloudhal push and pull can reach this server.`,approvals:`Agents' publish, rollback and delete requests wait here for a person.`,elevationRequests:`Agents can ask for a more autonomous mode for a while; a person grants it in Approvals.`}}},siteSettings:{sections:{general:`General`,domains:`Domains`,collections:`Collections`,appearance:`Appearance`,design:`Design rules`,previews:`Preview links`},design:{description:`Your brand and design rules in Markdown (DESIGN.md). Every agent and Build chat reads them before building: what the site is for, its colors and type, the layouts and components to prefer, page recipes, and what to avoid. They shape choices, never permissions.`,label:`This site's rules`,placeholder:`## Brand
3
+ What the site is for, who reads it, its voice.
4
+
5
+ ## Layout
6
+ …`,template:`Start from the headings`,theme:`The {theme} theme's rules`,themeHint:`Agents read these first; your rules win where they differ.`,noTheme:`The {theme} theme ships no design rules.`,warnings:`Worth a look`,saved:`Design rules saved`,failed:`Could not save the design rules`,count:`{count} of {max} characters`,agentHint:`Agents can propose changes; they wait for a person in Approvals.`},appearance:{description:`Colors, type and shapes the {theme} theme lets you change.`,none:`The {theme} theme has no design settings to change.`,publishHint:`Saved changes show on the site after the next publish.`,saved:`Appearance saved`,failed:`Could not save the appearance`},collections:{description:`Where each collection's entries live on the site. Changing a prefix moves the address of every entry in that collection; old addresses keep working through a permanent redirect. Leave a field empty for the default, the collection's own name. New addresses go live with the next publish.`,preview:`Entries live at addresses like {url}`,previewMoved:`Entries will live at addresses like {url}. The old address {old} redirects there.`,exampleSlug:`my-article`,empty:`No collections yet`,emptyDescription:`Collections appear here once the site has articles or other entries.`,saved:`Collections saved`,failed:`Couldn't save the collections`,errors:{slash:`Start with a slash, like /blog`,trailingSlash:`Leave out the slash at the end`,invalid:`Use lower-case letters, digits and hyphens between slashes, like /blog or /docs/guides`}},conflictTitle:`This site changed somewhere else`,conflictDescription:`A person or an agent saved this site after you opened it. Load the latest version, check your change and save again.`,loadLatest:`Load latest`,general:{description:`The basics agents and themes see for this site.`,name:`Site name`,nameHint:`Shown in Studio and available to the theme.`,slug:`Slug`,slugHint:`Identifies the site in the CLI and the API. It can't be changed.`,siteId:`Site ID`,defaultLocale:`Default language`,defaultLocaleHint:`Used for new pages and articles that don't name a language.`,locales:`Languages`,localesHint:`The languages this site publishes in.`,saved:`Settings saved`,failed:`Couldn't save the settings`,errors:{required:`Give the site a name`,tooLong:`Use at most {max} characters`}},domains:{description:`Hostnames that serve this site. The primary domain is used for preview links.`,dnsHint:`Adding a domain here records it on the site. Point its DNS at your deployment separately.`,columns:{hostname:`Hostname`,role:`Role`},primary:`Primary`,alias:`Alias`,add:`Add domain`,hostname:`Hostname`,placeholder:`www.example.com`,makePrimary:`Make primary`,remove:`Remove domain`,visit:`Visit`,empty:`No domains yet`,emptyDescription:`Add the hostname visitors use. Until then, preview links come as a token without a URL.`,added:`Domain added`,addedDescription:`{hostname} now serves this site.`,addedPrimaryDescription:`{hostname} is the primary domain.`,removed:`Domain removed`,primaryChanged:`Primary domain changed`,primaryChangedDescription:`{hostname} is now the primary domain.`,removeTitle:`Remove {hostname}?`,removeDescription:`The site stops listing this hostname. Its DNS isn't changed.`,removePrimaryDetail:`{next} becomes the primary domain.`,removeLastDetail:`The site will have no domain, so preview links won't include a URL.`,failed:`Couldn't update the domains`,errors:{required:`Enter a hostname`,invalid:`Use a hostname like blog.example.com: letters, digits and hyphens, no port`,tooLong:`Hostnames are at most 253 characters`,duplicate:`This site already has that domain`}},previews:{description:`Signed links that let someone without a Studio account see drafts or an earlier snapshot on the deployed site.`,target:`Show`,targets:{live:`Current drafts`,snapshot:`A snapshot`},targetHints:{live:`Everything saved in Studio, published or not.`,snapshot:`Exactly what the site looked like at that snapshot.`},snapshot:`Snapshot`,snapshotPlaceholder:`Choose a snapshot`,noSnapshots:`This site has no snapshots yet.`,snapshotRequired:`Choose a snapshot`,live:`live`,path:`Page`,pathHint:`Leave empty for the home page.`,pathPlaceholder:`blog/hello`,pathInvalid:`Use a path like /blog/hello, not a full URL`,ttl:`Expires after`,ttls:{"1h":`1 hour`,"1d":`1 day`,"7d":`7 days`},create:`Create link`,created:`Preview link created`,result:`Preview link`,expires:`Expires {when}`,opens:`Opens {path}`,showing:{live:`Drafts`,snapshot:`Snapshot`},openLink:`Open link`,token:`Token`,noDomainTitle:`This site has no domain, so there's no full URL`,noDomainDescription:`Add a domain above, or append ?cloudhal-preview= and this token to the deployed site's address.`,revokeHint:`Links can't be revoked one by one; they stop working when they expire. Rotating the preview secret ends every link at once.`,notEnabledTitle:`Preview links aren't enabled on this server`,notEnabledDescription:`Set the CLOUDHAL_PREVIEW_SECRET secret on the admin Worker to sign links. cloudhal studio on your machine shows drafts in the editor preview instead.`,failed:`Couldn't create the link`}},skills:{description:`Playbooks agents read over MCP. A call made under a skill can only use the scopes it declares, and the tools it lists always wait for a person.`,search:`Search skills`,columns:{skill:`Skill`,scopes:`Scopes`,approval:`Needs approval`,references:`References`},none:`None`,referenceCount:[[2,`count`,{one:[[4],` file`],other:[[4],` files`]}]],empty:`No skills loaded`,emptyDescription:`Add a folder with a SKILL.md under skills/ in your project, then restart Studio.`,noMatches:`No skills match “{query}”`,notEnabledTitle:`This server doesn't run MCP`,notEnabledDescription:`Skills reach agents over MCP. Start Studio with cloudhal studio, or deploy the admin Worker, to serve them.`,view:`Show details`,detail:{scopes:`Scopes`,scopesHint:`Calls under this skill can use at most these, and never more than the key has.`,approval:`Always approved by a person`,approvalHint:`Under this skill these tools pause for a human, whatever the key allows.`,noApproval:`No extra approvals beyond the tools that always need one.`,requires:`Requires`,references:`Reference files`,noReferences:`No reference files.`,resource:`MCP resource`,call:`Call a tool under this skill`},how:{title:`How agents use skills`,steps:{read:`The agent lists the skill:// resources and reads the SKILL.md that fits the task.`,declare:`Each tool call names the skill in its request metadata:`,narrow:`Policy limits that call to the skill's scopes, and never beyond the key's own scopes.`,approve:`Tools the skill lists for approval pause until a person says yes.`},example:`A tool call under a skill`},add:{title:`Add your own`,description:`Studio loads skills from the skills/ folder of your project. Without one, it serves the official set.`}},notifications:{title:`Notifications`,bellCount:`Notifications ({count})`,empty:`You're all caught up`,emptyDescription:`When an elevation is about to end or an agent asks for one, it shows up here.`,settings:`Notification settings`,openAgents:`Open Agents`,openTeam:`Open Team`,memberJoined:{title:`{name} joined`,body:`accepted your invite.`,toast:`They accepted your invite and work as {role} now.`},roleChanged:{title:`Your role is now {role}`,body:`{name} changed it. What you and your agents can do changed with it.`},ending:{title:`Elevation ending soon`,sentence:`{name}'s {mode} mode ends in {left} ({time}), then back to {from}.`},request:{title:`{agent} asks for {mode} · {duration}`,reason:`“{reason}”`,review:`Review`},comments:{pending:{title:[[2,`count`,{one:[[4],` comment waits for moderation`],other:[[4],` comments wait for moderation`]}]],body:`The oldest has waited {age}.`,bodyNew:`Nobody sees them until someone approves them.`},reported:{title:[[2,`count`,{one:[[4],` comment was reported`],other:[[4],` comments were reported`]}]],body:`Readers flagged them. A report never hides anything by itself.`},paused:{title:`Comments are paused for today`,body:`The daily limit ({cap}) was reached. New comments are refused until midnight UTC.`},purgeWaiting:{title:`A hidden comment may still be on the live page`,body:`{count} pages wait for the cache to refresh.`,purge:`Purge site cache`,purged:`The site's cache was purged`,failed:`Couldn't purge the cache`},approval:{title:`{agent} asks about comments`,tools:{moderate:`It asks to approve or restore comments. They become public once you approve.`,reply:`It drafted a reply that would be published under your name.`,thread:`It asks to open comments on an article again.`,label:`It asks to label comments.`}},review:`Review`,open:`Open comments`,settings:`Comment settings`},toast:{endingTitle:`{name}'s {mode} mode ends in {left}`,endingBody:`At {time} it goes back to {from}. Extend it if the agent still needs it.`},extend:{button:`Extend {duration}`,group:`Extend the elevation`,more:`Other durations`,fromNow:`Counts from now`,presets:{30:`30 min`,60:`1 hour`,240:`4 hours`},presetUntil:`{duration} · until {time}`,done:`Elevation extended`,failed:`Couldn't extend the elevation`,gone:`This elevation has already ended`,goneDescription:`Nothing was extended. To elevate the key again, use Elevate temporarily on the Agents page.`}},approvals:{refresh:`Refresh approvals`,pending:`Waiting for you`,pendingDescription:`Approving lets the agent make that exact call once, or grants the elevation it asked for. Denying tells the agent.`,history:`History`,noPending:`Nothing is waiting for you`,noPendingDescription:`When an agent asks to publish, roll back or delete, asks for a more autonomous mode for a while, or works in Manual mode and wants to change anything, its request appears here and the agent waits for your decision.`,elevation:{badge:`Elevation request`,sentence:`{agent} asks to work in {mode} mode for {duration}.`,history:`Elevation to {mode} · {duration}`,historyShortened:`Elevation to {mode} · {duration} (asked {asked})`,reasonLabel:`The agent's reason`,noReason:`The agent gave no reason.`,untilIfNow:`If you approve now: until {time}`,hint:`Approving grants it on the agent's key for the time you choose, then the key returns to its own mode by itself. Nothing on the site changes.`,granted:`Granted`,cannotTake:`{agent}'s key now works in {own} mode on its own, so there is nothing to grant. Deny the request to let the agent know.`,title:`Grant {mode} mode to {agent}?`,description:`{agent} asked for this. You can shorten the time, not extend it.`,mode:`Mode`,modeFixed:`As requested. To grant another mode, deny this request and elevate the key from Agents.`,presetHours:`{count} hr`,presetMinutes:`{count} min`,requested:`Requested: {duration}. Shorter is fine, longer isn't possible.`,summary:`{agent} works in {mode} mode until {time}, then back to {from}.`,summaryNoOwn:`{agent} works in {mode} mode until {time}, then back to its own mode.`,nextCall:`Applies on the agent's next call. You can end it early from Agents.`,submit:`Grant elevation`,failed:`Couldn't grant the elevation`,stillPending:`The request stays in the list while it is pending. You can deny it, or grant it once the key can take it.`,done:`Elevation granted`,doneDescription:`{agent} works in {mode} mode until {time}, then back to {from}.`,doneDescriptionNoOwn:`{agent} works in {mode} mode until {time}.`,asksFor:`Asks for {mode}`,asksForTooltip:`{agent} asks to work in {mode} mode for {duration}. Open Approvals to decide.`},manualPrompt:`{agent} works in Manual mode, so this change waits for you: {tool}.`,manualPromptShort:`Manual mode: {tool}`,bodyChanges:`What approving changes in “{title}”`,manualHint:`Manual mode asks before every change. Approving lets the agent make this one edit with exactly these arguments; it is snapshotted like any other.`,autoHeldBack:`Auto mode publishes small article updates on its own. This one waits for you because {reason}.`,autoCheck:{"removes-content":`it removes content`,nothing:`there is nothing new to publish`,structure:`it changes pages, menus, site settings, taxonomies or redirects`,"too-many":`it carries {changes} changes and auto mode stops at {limit}`,media:`it adds or changes media that is not part of an article change`,"outside-window":`it would run after the agent's autonomy ends`,correction:`it adds a correction to a published article`},noHistory:`No decisions yet`,noHistoryDescription:`Approved, denied, used and expired requests are listed here.`,requested:`Requested`,expires:`Expires`,expiresSoon:`Expires soon`,arguments:`Arguments`,noArguments:`This call has no arguments.`,approve:`Approve`,deny:`Deny`,withdraw:`Withdraw`,withdrawn:`Request withdrawn`,decide:{own_request:`You can't approve your own request. Someone whose role allows it decides.`,not_key_creator:`Only the person who created this agent's key can grant it more autonomy.`,mode_above_role:`Your role allows agent keys up to {mode} mode, so you can't grant this.`,missing_scope:`Your role can't make this change, so you can't approve it.`,not_own:`This includes work that isn't yours. An Editor or above decides it.`},role:{waiting:`Waiting for an Editor`,yours:`You asked for this. You can withdraw it.`,prompt:`{name} wants to publish the site.`,foreign:`It includes {count} published article(s) by someone else, and their role publishes only their own work.`,structure:`It changes pages, categories, tags or redirects, which their role can't publish alone.`,generic:`Their role can't publish this change set alone.`,published:`Approved and published`,publishedDescription:`{name}'s request is live now.`,stateChanged:`The site changed after this request`,stateChangedDescription:`The request was closed because it no longer matches the site. Publish the current state yourself.`},approved:`Request approved`,approvedDescription:`{agent} can now make this call once.`,denied:`Request denied`,deniedDescription:`{agent} will be told the request was denied.`,failed:`Couldn't record your decision`,noLongerPending:`This request is no longer pending`,noLongerPendingDescription:`It was decided, used or expired in the meantime. The list has been refreshed.`,statuses:{pending:`Pending`,approved:`Approved`,denied:`Denied`,consumed:`Used`,expired:`Expired`},columns:{request:`Request`,status:`Status`,agent:`Requested by`,requested:`Requested`,decided:`Decided`},decidedBy:`by {actor}`,decidedByYou:`by you`,notEnabledTitle:`This server doesn't keep approvals`,notEnabledDescription:`Agents' publish and rollback requests are confirmed in their MCP client here. Approvals in Studio need cloudhal studio or the admin Worker.`,confirm:{title:`Approve “{tool}”?`,requestedBy:`Requested by {agent}`,singleUseTitle:`Single use, for the site as it is now`,singleUse:`{agent} may make this exact call once. If anything on the site changes before the agent calls again, the approval is void and it has to ask again.`,changes:`Approximate changes`,changesHint:`The live version compared with the newest snapshot. Edits saved after that snapshot are published too, but aren't counted here.`,viewChanges:`View changes`,first:`Nothing is live yet: this publish makes the site public for the first time.`,upToDate:`The newest snapshot is already live, so only edits saved since then would be published.`,rollbackTarget:`Live site goes back to`,deleteTarget:`Deletes`,submit:`Approve`},banner:{title:[[2,`count`,{one:[`An agent request is waiting for your approval`],other:[[4],` agent requests are waiting for your approval`]}]],description:`Agents can't publish, roll back or delete, and agents in Manual mode can't change anything, until a person decides.`,action:`Review requests`}},tools:{list_assets:`List media`,get_asset:`Get media file`,upload_asset:`Upload media`,fetch_asset_url:`Add media from a URL`,update_asset:`Update media details`,retire_asset:`Retire media`,restore_asset:`Restore media`,delete_asset:`Delete media`,assetUpload:`Upload file`,assetUpdate:`Update file details`,assetRetire:`Retire file`,assetRestore:`Restore file`,assetDelete:`Delete file`,assetPurge:`Take down file`,assetLiftPurge:`Allow file again`,list_sites:`List sites`,get_site:`Get site`,list_pages:`List pages`,get_page:`Get page`,create_page:`Create page`,update_page:`Update page`,delete_page:`Delete page`,list_entries:`List articles`,get_entry:`Get article`,create_entry:`Create article`,update_entry:`Update article`,add_correction:`Add correction`,delete_entry:`Delete article`,get_theme_settings:`Read design settings`,set_theme_settings:`Change design settings`,list_block_types:`List block types`,get_body:`Read body`,edit_body:`Edit body`,diff_node:`Compare versions`,create_snapshot:`Create snapshot`,list_snapshots:`List snapshots`,diff_snapshots:`Compare snapshots`,preview_page:`Preview page`,publish:`Publish site`,rollback:`Roll back site`,list_menus:`List menus`,get_menu:`Get menu`,update_menu:`Update menu`,set_menu:`Replace menu`,delete_menu:`Delete menu`,request_elevation:`Request elevation`,list_comments:`List comments`,get_comment_thread:`Read comment thread`,comments_summary:`Summarise comments`,label_comments:`Label comments`,moderate_comments:`Moderate comments`,draft_comment_reply:`Draft comment reply`,set_comment_thread:`Change comment thread`,list_schedule:`List the schedule`,get_schedule:`Get a scheduled item`,list_releases:`List releases`,get_release:`Get release`,propose_release:`Propose a release`,schedule_release:`Schedule a release`,reschedule:`Move a release`,cancel_schedule:`Cancel a release`,set_embargo:`Set an embargo`,lift_embargo:`Lift an embargo`,schedule_unpublish:`Schedule an expiry`,list_automations:`List automations`,list_runs:`List runs`,get_run:`Get run`,begin_run:`Begin a run`,end_run:`End a run`,pause_automation:`Pause an automation`,get_mode:`Get mode`,agentKeyMode:`Change agent key mode`,agentKeyElevate:`Elevate agent key`,agentKeyElevationEnd:`End elevation`,agentKeyNarrow:`Narrow agent key`,agentKeyRevoke:`Revoke agent key`,memberInvite:`Invite member`,memberInviteRevoke:`Revoke invite`,memberInviteFailed:`Invite email failed`,memberInviteAccept:`Accept invite`,memberRole:`Change member role`,memberRemove:`Remove member`,memberTransferOwnership:`Transfer ownership`,memberPasswordReset:`Create password reset link`,memberPasswordResetComplete:`Reset password`},preview:{title:`Preview`,frameTitle:`Preview of {name}`,device:`Device width`,desktop:`Desktop`,tablet:`Tablet`,mobile:`Mobile`,reload:`Reload preview`,openInNewTab:`Open preview in a new tab`,loading:`Loading preview…`,unsaved:`Unsaved changes`,unsavedHint:`The preview shows the last saved version. Save to update it.`,edit:`Edit`,show:`Show preview`,hide:`Hide preview`,toggleHint:`Show the last saved version next to the form`,toggleHintLive:`Show the page with your unsaved changes next to the form`,openSaved:`Open the saved version in a new tab`,failed:`Preview unavailable`},proposals:{title:`Suggestions`,count:`{count} open`,from:`{name} suggests`,outOfDate:`Out of date`,outOfDateHint:`The text changed since this suggestion. Reject it, or ask for a new one.`,accept:`Accept`,reject:`Reject`,saveFirst:`Save or discard your changes first.`,accepted:`Suggestion accepted`,rejected:`Suggestion rejected`,failed:`Could not decide on the suggestion`,steps:`Changes to accept`,acceptSome:`Accept {count} of {total}`,chooseRequired:`Choose at least one change.`,step:{replace:`Rewrite “{before}”`,replaceText:`Change “{before}” to “{after}”`,insert:`Add “{after}”`,move:`Move “{before}”`,delete:`Remove “{before}”`},aBlock:`a block`},coverage:{scope:`Which sites`,thisSite:`This site`,allSites:`All sites in the project`,siteLanguage:`{site} · {language}`,search:`Search by title`,filter:`Show`,needsWork:`Needs work`,all:`Everything`,item:`Page or article`,page:`Page`,article:`Article`,missing:`Missing`,toReview:`To review`,oneLanguage:`This site has one language`,oneLanguageDescription:`Add languages in the site's settings; translations show here.`,openSettings:`Open language settings`,allDone:`Nothing needs work`,empty:`Nothing here yet`,emptyDescription:`Every language has an up-to-date, reviewed version.`},languages:{title:`Languages`,description:`The languages this site publishes in and how readers reach them. A page or article in another language is a translation of the original.`,language:`Language`,tag:`Tag`,default:`Default`,remove:`Remove {language}`,add:`Add a language`,addHint:`Pick from the list, or type any BCP 47 tag such as gsw or pt-AO.`,addPlaceholder:`Search languages`,useTag:`Use the tag {tag}`,noMatch:`No language matches. Type a BCP 47 tag to use it.`,clear:`Clear`,showOptions:`Show languages`,routing:`Addresses`,routingHint:`Where each language lives. Other languages always have a prefix.`,routingOptions:{prefixExceptDefault:`The default language at the root, others under their prefix`,prefixAll:`Every language under its prefix`},fallback:`Missing translations`,fallbackHint:`What readers get at an address the language has no version for.`,fallbackOptions:{none:`Not found`,defaultWithNotice:`The original, with a notice, kept out of search engines`},review:`Review before publishing`,reviewHint:`Machine translations of these go live only after a person reviews them.`,reviewOptions:{pages:`Pages`,posts:`Articles`},label:`Machine-translation notice`,labelHint:`When readers see that a page was translated automatically.`,labelOptions:{unreviewed:`Until a person reviews the translation`,always:`Always, also after a review`},saved:`Languages saved`,failed:`Couldn't save the languages`},glossary:{title:`Glossary`,description:`Terms agents keep when they translate: names that are never translated, and the approved word in each language.`,empty:`No terms yet`,emptyDescription:`Add brand and product names, and words with a fixed translation.`,oneLanguage:`Add a second language first: the glossary holds words for the site's other languages.`,term:`Term`,neverTranslate:`Never translate`,translationIn:`In {language}`,add:`Add term`,remove:`Remove {term}`,saved:`Glossary saved`,failed:`Couldn't save the glossary`},translations:{title:`Translations`,none:`Only in {language}`,noneDescription:`Agents translate pages and articles into the site's other languages; every version shows here.`,current:`This version`,method:{original:`Original`,human:`Translated by a person`,machine:`Machine translation`,machineReviewed:`Machine translation, reviewed`},stale:`Out of date`,sourceMissing:`Original removed`,review:`Mark as reviewed`,reviewTitle:`Mark this translation as reviewed?`,reviewDescription:`You confirm that a person read this machine translation against the original. Readers stop seeing the machine-translation notice, unless the site always shows it.`,reviewSaveFirst:`Save your changes before you review.`},translationList:{column:`Languages`,filter:`Language`,grouped:`All languages (grouped)`,state:[[0,`language`],`: `,[3,`state`,{published:[`published`],draft:[`draft`],outdated:[`out of date`],review:[`needs review`],missing:[`missing`],other:[`missing`]}]],summary:[[1,`count`],`/`,[1,`total`]],summaryLabel:[[1,`count`],` of `,[2,`total`,{one:[[4],` language`],other:[[4],` languages`]}]],writeByHand:`Write by hand`},diff:{title:`Changes in {name}`,against:`Compare with`,previous:`Previous snapshot`,live:`Live version`,descriptions:{previous:`What changed since the snapshot before it.`,live:`What would change if this snapshot replaced the live version.`},added:`Added`,changed:`Changed`,removed:`Removed`,counts:{added:`{count} added`,changed:`{count} changed`,removed:`{count} removed`},none:`No differences`,noneDescription:`Both snapshots contain exactly the same content.`,nothingToCompare:`Nothing to compare with`,nothingToCompareDescription:`This is the site's first snapshot and no other version is live, so there is nothing to compare it with yet.`,kinds:{site:`Site settings`,page:`Page`,contentEntry:`Article`,taxonomy:`Taxonomy`,term:`Term`,redirect:`Redirect`,menu:`Menu`,asset:`Media`,glossary:`Glossary`},gone:`No longer exists`,revs:`rev {from} → {to}`,rev:`rev {rev}`,columns:{item:`Item`,revision:`Revision`},textChanges:{show:`Show changes`,hide:`Hide changes`,loading:`Loading both versions…`,body:`Body`,title:`Title`,summary:`Summary`,slug:`Slug`,path:`Path`,section:`{kind} section`,sectionAdded:`Added`,sectionRemoved:`Removed`,sectionChanged:`Changed`,noTextChanges:`Only settings changed; the text is the same.`,added:`Added`,removed:`Removed`,edited:`Edited`,unchanged:[[2,`count`,{one:[[4],` unchanged block`],other:[[4],` unchanged blocks`]}]],wordsAdded:`+{count} words`,wordsRemoved:`−{count} words`,same:`No text changes`},assignments:{added:`+ {taxonomy} {name}`,removed:`− {taxonomy} {name}`,primary:`Primary {taxonomy} → {name}`,none:`none`}},taxonomy:{newTerm:`New {singular}`,search:`Search {plural}`,columns:{name:`Name`,usage:`Articles`,lastUsed:`Last used`,index:`Search engines`,visibility:`Visibility`},filters:{all:`All`,public:`Public`,internal:`Internal`,proposed:`Proposed`,retired:`Retired`},state:{proposed:`Proposed`,proposedHint:`An agent proposed it. It can be assigned, but it has no public page until someone approves it.`,internal:`Internal`,internalHint:`No archive, feed or sitemap entry, and articles don't show it. Themes and filters can still use it.`,retired:`Retired`,mergedInto:`Merged into {name}`},visibility:{public:`Public`,internal:`Internal`,none:`—`},defaults:{category:{singular:`Category`,plural:`Categories`},tag:{singular:`Tag`,plural:`Tags`}},usage:{value:`{published} / {total}`,hint:`{published} published of {total} articles. Opens them in Articles.`,none:`None`},index:{indexed:`Indexed`,indexedHint:`{count} published articles: the archive is listed in search results and in the sitemap.`,thin:`Not indexed: {count} of {min}`,thinHint:`Archives with fewer than {min} published articles are served with noindex, follow and left out of the sitemap.`,empty:`Empty`,emptyHint:`No published articles: the archive answers 404 until one is filed here.`,noindex:`noindex`,noindexHint:`Hidden from search engines in its search settings.`,none:{internal:`No archive`,proposed:`Not public yet`,retired:`Retired`,archiveOff:`Archives off`},noneHint:{internal:`Internal terms have no public archive.`,proposed:`Proposed terms have no public archive until someone approves them.`,retired:`Retired terms have no archive; old links redirect or answer 410 Gone.`,archiveOff:`This taxonomy publishes no archive pages.`}},menu:{label:`Term actions`,edit:`Edit`,view:`View`,rename:`Rename slug`,merge:`Merge into…`,mergeExisting:`Merge into an existing term…`,move:`Move…`,makeInternal:`Make internal`,makePublic:`Make public`,retire:`Retire`},review:{waiting:`Proposals waiting for review: {count}`,waitingDescription:`Agents proposed these {plural}. Approve one to give it a public page, merge it into an existing one, or reject it.`,open:`Review`,approve:`Approve`,approved:`{name} approved`,failed:`Couldn't approve`,reject:`Reject`,merge:`Merge…`,rejectNamed:`Reject {name}`,proposedBy:`Proposed by`},empty:{all:`No {plural} yet`,public:`No public {plural}`,internal:`No internal {plural}`,proposed:`Nothing waiting for review`,retired:`No retired {plural}`,search:`Nothing matches your search`,allDescription:`Create the first one, or let agents propose tags as they write.`,filteredDescription:`Try another filter or search.`,noTaxonomies:`No categories or tags yet`,noTaxonomiesDescription:`This site still keeps tags as plain text on each article. Move them to categories and tags; you see what changes before anything is written.`},create:{title:`New {singular}`,description:`Give it a name. Synonyms, an introduction, an image and search settings can follow in its editor.`,descriptionTree:`Give it a name and, if it belongs under another category, a parent. The rest can follow in its editor.`,name:`Name ({locale})`,slugHint:`The address of its archive. It follows the name until you change it.`,parentHint:`Leave it at the top level, or file it under another category.`,internal:`Internal`,internalHint:`Internal terms get no public page; themes and filters can still use them.`,similarTitle:`This looks like an existing term`,similar:`Similar: {names}. Use that one if it means the same.`,submit:`Create {singular}`,created:`{name} created`},health:{title:`Vocabulary health`,description:`The same report agents read before they tag. Keep one page per topic so readers and search engines find it.`,issues:`{count} to review`,clean:`Nothing to tidy up`,cleanDescription:`No near-duplicates, single-use or empty terms right now.`,nearDuplicates:`Near-duplicates ({count})`,nearDuplicatesHint:`Probably the same topic. Merging keeps the busier one and redirects the other.`,mergeInto:`{source} → {target}`,merge:`Merge`,morePairs:`{count} more pairs`,reasons:{similar:`Spelled almost the same`,plural:`Singular and plural`,synonym:`One's synonym is the other's name`},proposed:`Waiting for review ({count})`,review:`Review`,missingPrimary:`Articles without a primary {singular} ({count})`,missingPrimaryHint:`They can't go to review or be published until one is chosen.`,unfiled:`Articles without a {singular} ({count})`,unfiledHint:`File them so they appear in an archive and in breadcrumbs.`,noIntro:`Indexed archives without an intro ({count})`,noIntroHint:`a short intro helps readers and search engines`,singleUse:`Used once ({count})`,unused:`Not on any article ({count})`,unusedHint:`retire them or file articles under them`,empty:`Empty categories ({count})`,emptyHint:`their archives answer 404 until an article is filed`,oversized:`Very large categories ({count})`,oversizedHint:`over half of all articles; sub-categories would help`,more:[[1,`count`],` more`]},rules:{title:`How {plural} work`,description:`The rules of this taxonomy. Agents see the same ones.`,structure:`Structure`,tree:`Tree`,flat:`Flat list`,treeHint:`A term can sit under a parent, up to 5 levels deep.`,flatHint:`Terms have no parent.`,newTerms:`New terms`,newTermsValue:{none:`People only`,propose:`Agents propose`,free:`Agents add`},newTermsHint:{none:`Only people create them; agents choose from the existing ones.`,propose:`Agents propose new ones, which get a public page once someone approves.`,free:`Agents may add active terms directly.`},perArticle:`Per article`,required:`Required · up to {max}`,optional:`Optional · up to {max}`,requiredHint:`An article needs one, with a primary, to be reviewed or published.`,optionalHint:`Articles may have none.`,archive:`Archives`,archiveHint:`Indexed from {min} published articles; thinner archives are noindex.`,archiveOff:`No archive pages are published.`}},governance:{oneSnapshot:`One change, one snapshot. It goes live with the next publish.`,conflict:`This term changed somewhere else in the meantime. Close the dialog and try again on the latest version.`,rename:{title:`Rename the slug of {name}`,description:`The archive moves to the new address. The old one keeps working through a permanent redirect, and the old slug stays reserved.`,slug:`New slug`,slugHint:`Lower-case letters, digits and single hyphens.`,reclaim:`Reclaim it: free this slug from the earlier term and drop its redirect`,history:`Earlier slugs: {slugs}`,confirm:`Rename`,errors:{required:`Enter a slug.`,invalid:`Use lower-case letters, digits and single hyphens.`,tooLong:`At most 128 characters.`,taken:`Another term uses this slug.`,reserved:`A term used this slug before and its old address redirects. Reclaim it below to use it here.`}},merge:{title:`Merge {name} into…`,description:`Its articles move to the term you choose, which also takes over its names and slugs, so old links and synonyms keep working.`,target:`Merge into`,targetHint:`An active term of the same taxonomy.`,targetPlaceholder:`Search terms…`,confirm:`Merge`},reviewMerge:{title:`Merge the proposal {name} into…`,description:`The proposal is retired and its articles move to the existing term, which keeps its name as a synonym.`,confirm:`Merge`},retire:{title:`Retire {name}`,description:`It is removed from every article and can't be assigned again. Its archive can redirect to another term.`,redirectTo:`Redirect to…`,redirectToHint:`Without a redirect, its archive answers 410 Gone, so search engines drop it for good.`,redirectToParentHint:`Without a choice, the archive redirects to its parent category when that one is public.`,noRedirect:`No redirect`,redirectPlaceholder:`Search terms…`,confirm:`Retire`},move:{title:`Move {name}`,description:`Choose its new parent. Articles and addresses stay as they are; menus, breadcrumbs and the parent's archive change.`,parent:`Parent`,parentHint:`Up to {max} levels deep. A category can't move under itself or below it.`,parentPlaceholder:`Search categories…`,topLevel:`Top level`,confirm:`Move`},visibility:{title:{internal:`Make {name} internal`,public:`Make {name} public`},description:{internal:`Its archive, feed and sitemap entry go away and articles stop showing it. Themes and filters can still use it.`,public:`It gets a public archive, a feed and a sitemap entry, and articles show it.`},confirm:{internal:`Make internal`,public:`Make public`}},reject:{title:`Reject the proposal {name}`,description:`The proposal is retired and removed from the articles that carry it. The agent sees it was rejected.`,confirm:`Reject`},preview:{waiting:`Make a choice to see what changes.`,loading:`Working out what changes`,articles:`Articles`,noArticles:`No article carries it.`,articlesMove:`These articles change in the same operation. One change can touch up to {limit} articles.`,articlesLose:`These articles lose it in the same operation. One change can touch up to {limit} articles.`,articlesKeep:`These articles keep it; their links follow the new address.`,more:`and {count} more`,redirects:`Redirects`,noRedirects:`No redirect is created.`,permanent:`301 permanent`,prefix:`Pages and feeds below the old address follow too.`,repointed:`{count} existing redirects to the old address now point to the new one.`},tooLarge:{title:`Too large for one change`,description:`This would change {count} articles; one change can touch at most {limit}. Split it into smaller steps, or ask for the staged job.`},blocked:{title:`{count} published or in-review articles would lose their only category`,description:`They need a category. Merge this term into another one instead, or file those articles elsewhere first.`},gone:{title:`Its archive will answer 410 Gone`,description:`{path} gets no redirect, so search engines drop it for good. Choose a term above to send visitors there instead.`},hidden:{title:`Its archive stops being public`,description:`{path} answers 404 after the next publish.`},appears:{title:`Its archive becomes public`,description:`{path} goes live with the next publish.`},done:{rename:`{name} renamed`,merge:`{name} merged`,reviewMerge:`{name} merged`,retire:`{name} retired`,reject:`{name} rejected`,move:`{name} moved`,visibility:`Visibility of {name} changed`,detail:`Articles changed: {entries}. Redirects: {redirects}. One snapshot; live with the next publish.`}},taxonomySettings:{titleNew:`New taxonomy`,titleEdit:`{Singular} settings`,descriptionNew:`Group articles another way besides categories and tags, such as a series or a region. Agents read its rules before they file articles.`,descriptionEdit:`The rules people and agents follow for {plural}.`,open:`{Singular} settings`,newTaxonomy:`New taxonomy`,edit:`Edit`,exampleSlug:`summer-2026`,sections:{name:`Name`,terms:`Terms`,termsHint:`Agents always reuse an existing term first. These rules decide what they may do when none fits.`,articles:`On articles`,archive:`Archive pages`},key:`Key`,keyHint:`Used in filters and by agents (series:summer-2026). Lower-case letters, digits and hyphens. It can't be changed later.`,keyFixed:`Keys never change: articles, filters and agents refer to it.`,singular:`Singular ({locale})`,plural:`Plural ({locale})`,singularPlaceholder:`Region`,pluralPlaceholder:`Regions`,labelsHint:`What Studio, the site and agents call it, e.g. Region and Regions.`,labelsOptional:`Optional. Leave both empty to use the {locale} names.`,hierarchical:`Terms can have a parent`,hierarchicalHint:`A tree up to 5 levels deep, like categories; an archive also lists its sub-terms' articles. Off: a flat list, like tags.`,newTerms:`Who adds new terms`,newTermsOptions:{none:`People only`,propose:`Agents propose`,free:`Agents add freely`},newTermsHints:{none:`Agents file articles under existing terms only. If none fits, they say so and ask you.`,propose:`Agents may suggest a new term. It stays private (no archive, not shown on articles) until a person approves, merges or rejects it here.`,free:`Agents create public terms, archives included, without asking. Suits loose vocabularies; keep an eye on vocabulary health.`},badges:{safest:`Safest`,recommended:`Recommended`,careful:`Use with care`},required:`Required`,requiredHint:`An article needs at least one, with a primary, before it goes to review or is published. Drafts can wait.`,maxPerEntry:`At most per article`,maxPerEntryHint:`Empty: up to {max}.`,allCollections:`Applies to every collection`,allCollectionsHint:`Off: choose the collections whose articles can use it.`,collections:`Collections`,archiveEnabled:`Public archive pages`,archiveEnabledHint:`Every public term with a published article gets a page listing its articles.`,basePath:`Address`,basePathHint:`Archives live at addresses like {example}.`,feed:`RSS feed per term`,feedHint:`At {example}/rss.xml.`,feedNeedsArchive:`Needs public archive pages.`,minEntries:`Articles needed for search engines`,minEntriesHint:`Archives with fewer published articles are served with noindex, follow and left out of the sitemap. 0: indexed from the first article.`,move:{title:`Address change`,description:`The archives move. Old addresses keep working through a permanent redirect.`,offTitle:`Archive pages will answer 404`,offDescription:`No redirect is created: links to {path}/… stop working after the next publish.`,onTitle:`Archives become public at {path}/…`,onDescription:`Terms with a published article get a page after the next publish.`},create:`Create taxonomy`,save:`Save settings`,created:`{name} created`,saved:`{name} settings saved`,errors:{keyRequired:`Enter a key.`,keyInvalid:`Use lower-case letters, digits and single hyphens, like series or reading-list.`,keyTooLong:`At most 128 characters.`,keyReserved:`“{key}” is reserved by the filter language (primary, collection, locale, status, id).`,keyTaken:`This site already has a taxonomy with this key.`,labelRequired:`Enter a name in the site's default language.`,labelTooLong:`At most {max} characters.`,labelPair:`Fill in both, or leave both empty.`,pathRequired:`Enter an address.`,pathInvalid:`Start with / and use lower-case words joined by hyphens, like /series.`,pathTooLong:`At most 1,024 characters.`,pathRoot:`Archives can't live at the site root.`,pathTaxonomy:`It overlaps the archives of “{conflict}”.`,pathPage:`The page {conflict} lives there. Choose another address.`,pathCollection:`Article addresses start with {conflict}. Choose another address.`,range:`A whole number from {min} to {max}.`,collections:`Choose at least one collection.`,hasParents:`{count} terms still have a parent. Move them to the top level first.`,hasProposals:`{count} proposals are waiting. Approve, merge or reject them first.`}},termEditor:{language:`Language`,default:`default`,names:{title:`Names and synonyms`,description:`What readers see, and what people and agents may type to find it.`,name:`Name ({locale})`,nameHintDefault:`Required in the site's default language.`,nameHint:`Leave it empty to show the {locale} name.`,altNames:`Synonyms`,altNamesHint:`Other names that find this term when someone types them or an agent assigns by name. Never shown as separate terms.`},intro:{title:`Archive introduction`,description:`Markdown shown at the top of {path}, on its first page only.`,hint:`Markdown. HTML is shown as text.`},image:{title:`Image`,description:`Shown on the archive and used as its picture when the link is shared. Link to an image that is already online.`},seo:{title:`Search engines and sharing`,description:`How the archive appears in search results, in {locale}.`},indexing:{title:`Indexing`,indexed:`{path} is listed by search engines, with {count} published articles.`,thin:`{path} has {count} of the {min} published articles it needs; until then it is served with noindex, follow.`,empty:`{path} has no published articles and answers 404 until one is filed.`,noindex:`{path} is hidden from search engines in its search settings.`},preview:{statusHint:`What {path} answers with these changes: {status}. The preview always shows the page, even before it is public.`},placement:{title:`Placement`,position:`Position`,positionHint:`Lower numbers come first among siblings. Empty: sorted by name.`},history:{title:`Slug history`,description:`Earlier addresses of this archive. They stay reserved and redirect here.`,empty:`No earlier slugs`,emptyDescription:`Its address has always been {path}.`,reserved:`reserved`},details:{taxonomy:`Taxonomy`,visibility:`Visibility`,usage:`Articles`},retire:{title:`Retire this {singular}`,description:`Removes it from every article; its archive redirects or answers 410 Gone.`},retired:{title:`This term is retired`,merged:`This term was merged into {name}`,description:`It has no archive and can't be assigned. Its old addresses redirect when a redirect was set.`},errors:{nameRequired:`Enter a name in the site's default language.`,nameTooLong:`At most 200 characters.`,altTooLong:`“{value}” is longer than 200 characters.`,altDuplicate:`“{value}” is listed twice or repeats the name.`,altCollision:`“{value}” already names {other}. A synonym can't point to two terms.`,introTooLong:`At most 20,000 characters.`,position:`Use a whole number from 0 to {max}.`}},migration:{banner:{title:`Move your tags to categories and tags`,description:`Tags on this site are still plain text. Turn them into tags with names, archives and redirects, and start filing articles under categories. You see the result first, and you can undo it.`,action:`Preview the move`},dialog:{title:`Move tags to categories and tags`,description:`This is a dry run: nothing is written until you run it.`,summary:`What the move does`,tags:`Tags found`,entries:`Articles rewritten`,terms:`Tags`,termsValue:`{created} new, {reused} reused`,taxonomies:`Taxonomies created`,none:`None`,skipped:`{count} articles are skipped`,how:`Studio takes a snapshot before and after. Categories start optional on this site, so nothing is blocked, and nothing goes live until you publish.`,upToDate:`Nothing to move`,upToDateDescription:`Every article already uses tags and categories.`,run:`Run the move`},done:{title:`Tags moved`,description:`Your articles now use tags. Publish when you're ready.`,toast:`Tags moved`,toastDetail:`{tags} tags on {entries} articles, with snapshots before and after.`,undoHint:`Changed your mind? Undo restores the old tags on articles nobody has edited since.`,undo:`Undo the move`,close:`Done`},revert:{toast:`Move undone`,toastDetail:`Old tags restored on {count} articles.`}},redirects:{new:`New redirect`,search:`Search addresses`,menu:`Actions for {from}`,edit:`Edit`,filters:{reason:`Source`,all:`All sources`},reasons:{"slug-change":`Slug change`,merge:`Merge`,retire:`Retired`,manual:`Manual`},columns:{from:`Old address`,to:`Sends to`,type:`Type`,source:`Source`,updated:`Updated`},status:{301:`Permanent (301)`,"301Hint":`Search engines move the old address's standing to the new one. Use it when the move is for good.`,302:`Temporary (302)`,"302Hint":`For a short while, like a campaign; search engines keep the old address.`,short301:`301`,short302:`302`},match:{exact:`This address only`,exactHint:`Only this exact path.`,prefix:`This address and everything below it`,prefixHint:`The rest of the path is kept: /old/a goes to /new/a.`,prefixShort:`and below`},external:{badge:`External`,title:`Send visitors to another site?`,description:`Check the destination before you create the redirect.`,leave:`Visitors will leave for {host}`,warning:`Everyone who opens the old address goes to a site you don't control. Agents can never create this; only people can.`,target:`Destination`,host:`Host`,confirm:`Redirect to {host}`},externalHint:`Sends visitors to {host}, outside this site.`,dialog:{createTitle:`New redirect`,editTitle:`Edit redirect`,description:`Send visitors from an address the site no longer serves to a new one.`,from:`Old address`,fromHint:`A path on this site, like /old-page. It can't be an address the site still serves.`,fromLocked:`The old address can't change. Delete this redirect and create another instead.`,to:`Sends to`,toHint:`A path on this site (/new-page) or an https:// address.`,toExternal:`Outside this site: {host}. You confirm it in the next step.`,toPlaceholder:`/new-page or https://…`,match:`Applies to`,status:`Kind`,automatic:`Automatic redirects are always permanent (301).`,note:`Note`,noteHint:`Optional. Why it exists, for whoever looks next.`,create:`Create redirect`},errors:{fromRequired:`Enter the old address.`,fromInvalid:`Use a path that starts with /, without spaces, ? or #.`,fromTooLong:`At most 1,024 characters.`,fromTaken:`A redirect from this address already exists. Edit that one instead.`,fromServed:`The site serves this address. A redirect can't hide a page, a published article or an archive.`,toRequired:`Enter where it sends visitors.`,toInvalid:`Use a path that starts with / or an https:// address.`,toInsecure:`Use https://.`,toTooLong:`At most 2,048 characters.`,toSelf:`It can't send visitors to the same address.`,toLoop:`That would loop: the target redirects back here.`},saved:`Redirect saved`,created:`Redirect from {from} created`,deleted:`Redirect from {from} deleted`,deleteTitle:`Delete the redirect from {from}?`,deleteDescription:`After the next publish, the old address answers 404.`,deleteAutomatic:`Studio created it when an address changed. After the next publish the old address answers 404, and links to it break.`,deleteConfirm:`Delete redirect`,empty:`No redirects yet`,emptyFiltered:`No redirects from this source`,emptyDescription:`Slug changes, merges and retirements add redirects here on their own. Add your own for addresses that moved.`},roles:{yours:`Your role`,names:{owner:`Owner`,administrator:`Administrator`,editor:`Editor`,author:`Author`,contributor:`Contributor`},plural:{owner:`the Owner`,administrator:`Administrators`,editor:`Editors`,author:`Authors`,contributor:`Contributors`},summaries:{owner:`Everything, including moving ownership. There is exactly one Owner; ownership moves only by transfer.`,administrator:`Runs the deployment: team, roles, site settings and domains, everyone's agent keys. Edits and publishes anything.`,editor:`Edits and publishes anything, structures the site (pages, categories, redirects), rolls back and invites Authors and Contributors.`,author:`Writes, edits and publishes their own articles. Anything more waits for an Editor.`,contributor:`Writes drafts and submits them for review. An Editor publishes them; published work is read-only to them.`},explainer:{role:`Role`,columns:{articles:`Articles`,publish:`Publish`,structure:`Structure`,team:`Team`},levels:{all:`All`,own:`Own`,drafts:`Drafts`,none:`No`,invite:`Invite`,full:`Manage`},hints:{articles:{all:`Writes and edits every article, and can credit someone else as the author.`,own:`Writes articles and edits their own, published or not.`,drafts:`Writes drafts and edits their own until an Editor publishes them.`,none:`Can't change articles.`},publish:{all:`Publishes anything and rolls back.`,own:`Publishes when every public change is their own; anything more becomes a request.`,none:`Submits for review; someone else publishes.`},structure:{all:`Pages, categories and tags, redirects.`,none:`Reads pages, categories and redirects, but doesn't change them.`},team:{full:`Invites, changes roles, removes people, site settings and domains, everyone's agent keys.`,invite:`Invites Authors and Contributors.`,none:`Sees who is on the team.`}}}},gating:{readOnlyTitle:`You can view this`,entryNotOwn:`This article belongs to someone else. Its author and Editors and above can change it.`,entryPublished:`This article has been published. Contributors can't change published work; an Editor can.`,entryDelete:`Only its author (while your role allows it) and Editors and above can delete it.`,abilities:{entries:{create:`Only {roles} and above can write articles.`,editOwnPublished:`Only {roles} and above can publish articles. An Editor publishes yours after review.`,editAny:`Only {roles} and above can change others' articles.`},pages:{write:`Only {roles} and above can change pages.`},publish:{own:`Only {roles} and above can publish. Submit your work for review; an Editor publishes it.`,any:`Only {roles} and above can publish others' work.`},rollback:`Only {roles} and above can roll the site back.`,structure:{write:`Only {roles} and above can change categories, tags and redirects.`},assets:{upload:`Only {roles} and above can upload files.`,manage:`Only {roles} and above can manage every file.`},activity:{all:`Only {roles} and above see the whole team's activity.`},analytics:{read:`Only {roles} and above see analytics.`,settings:`Only {roles} and above can change analytics settings.`},comments:{read:`Only {roles} and above see reader comments.`,moderate:`Only {roles} and above moderate comments.`,moderateAny:`Only {roles} and above moderate comments on others' articles.`,reply:`Only {roles} and above reply to comments.`,replyAny:`Only {roles} and above reply on others' articles.`,settings:`Only {roles} and above can change comment settings.`},commenters:{data:`Only {roles} and above see commenters' emails or erase their data.`},settings:{write:`Only {roles} and above can change site settings and domains.`},members:{invite:`Only {roles} and above can invite people.`,manage:`Only {roles} and above can change roles or remove people.`},agents:{manage:`Only {roles} and above can manage others' agent keys.`},sites:{create:`Only {roles} and above can create sites.`},schedules:{read:`Only {roles} and above see the schedule.`,write:`Only {roles} and above schedule their work.`,writeAny:`Only {roles} and above change others' schedules.`,settings:`Only {roles} and above pause schedules or change their limits.`},releases:{approve:`Only {roles} and above approve releases of their own work.`,approveAny:`Only {roles} and above approve releases.`},automations:{manage:`Only {roles} and above manage automations.`},ai:{invoke:`Only {roles} and above use AI in the editor.`,settings:`Only {roles} and above change the AI settings.`},ownership:{transfer:`Only {roles} can transfer ownership.`}}},publishing:{request:`Request publish`,requestCommand:`Snapshot and request publish`,requestTitle:`Request a publish?`,requestDescription:`Your changes include work by others or changes to the site's structure, so an Editor approves the publish. Studio takes a snapshot now; the request waits in Approvals.`,sendRequest:`Send request`,requestOption:`Request a publish`,requestOptionDescription:`An Editor approves it in Approvals before it goes live.`,requested:`Publish requested`,requestedDescription:`Your changes include work that isn't yours, so an Editor must approve the publish. You'll find the request in Approvals.`,openRequest:`Open Approvals`,refused:`You can't publish`},members:{invite:`Invite people`,search:`Search people`,you:`You`,someone:`Someone`,menu:`Actions for {name}`,tabs:{members:`Members`,activity:`Activity`},columns:{member:`Member`,role:`Role`,joined:`Joined`,actions:`Actions`},empty:`No members yet`,emptyDescription:`The first account on a Studio becomes its Owner. Invite people from here.`,noMatches:`No one matches “{query}”`,notEnabledTitle:`This server has no team`,notEnabledDescription:`Roles and invites need a Studio with accounts (cloudhal studio, or a deployed admin Worker). Without them, every signed-in person can do everything.`,changeRole:`Change role…`,resetLink:`Create password reset link…`,transferOwnership:`Transfer ownership…`,rank:{self:`You can't change your own role or remove yourself.`,owner_role:`The Owner role moves only by transferring ownership.`,target_is_owner:`The Owner can't be demoted or removed. Transfer ownership first.`,role_too_high:`Your role can't give this role.`,not_allowed:`Only Administrators and the Owner can manage members.`},roles:{title:`Roles`,description:`What each role can do. Agent keys never do more than the person who made them.`},how:{title:`How invites work`,single:`Each link works once. Whoever opens it first joins, so share it privately.`,bound:`It is bound to one email address and one role; the invitee can't change either.`,expiry:`Links expire after {default} by default. Administrator invites expire within {admin}.`,keys:`A person's agent keys never do more than their role, and narrow at once when the role goes down.`,owner:`There is one Owner. Ownership moves only to an Administrator, with the Owner's password.`},invites:{title:`Pending invites`,description:`Links that haven't been used yet. Revoke one and it stops working at once.`,empty:`No pending invites`,emptyDescription:`Invite links you create appear here until they're used, revoked or expire.`,columns:{email:`Email`,role:`Role`,expires:`Expires`,inviter:`Invited by`,actions:`Actions`},byLink:`Link`,byEmail:`Sent by email`,expired:`Expired`,incomplete:`Not completed`,incompleteHint:`The link was used, but the account wasn't created. Invite them again to send a new link.`,you:`You`,someone:`A former member`,reinvite:`Re-invite`,menu:`Actions for the invite to {email}`,revoke:`Revoke`,revokeTitle:`Revoke this invite?`,revokeDescription:`The link for {email} stops working at once. You can invite them again later.`,revoked:`Invite revoked`,revokedDescription:`The link for {email} no longer works.`},role:{title:`Change {name}'s role`,description:`Takes effect on their next click or agent call. It's recorded in the activity log.`,member:`Member`,newRole:`New role`,change:`Role change`,now:`Now`,immediate:`Applies at once`,demotionTitle:`Their agent keys narrow too`,demotion:`As {role}, their keys keep only the scopes and modes that role allows, and an elevation above it ends. A later promotion doesn't widen the keys again.`,submit:`Change role`,failed:`Couldn't change the role`,changed:`Role changed`,changedDescription:`{name} is {to} now.`,narrowedTitle:`Agent keys narrowed`,narrowedDescription:`{count} of their agent keys now do only what the new role allows.`,narrowedBanner:`Agent keys narrowed: {count}`,narrowedBannerDescription:`Each key below keeps only what the new role allows. Their agents notice on their next call.`,narrowedMode:`Mode`,narrowedScopes:`Now works with`,elevationEnded:`Its elevation ended because the new role doesn't allow it.`,done:`Done`},remove:{menu:`Remove from team…`,title:`Remove {name} from the team?`,description:`They lose access at once. This is recorded in the activity log.`,signOut:`They're signed out on every device.`,keys:`Their agent keys are disabled (kept for the record, deletable).`,keysCount:`Their agent keys are disabled: {count}.`,invites:`Invites they sent and that are still pending are cancelled.`,invitesCount:`Their pending invites are cancelled: {count}.`,requests:`Requests their agents are waiting on are denied.`,kept:`Their articles and activity stay. Inviting them again restores access.`,submit:`Remove`,failed:`Couldn't remove them`,done:`{name} was removed`,doneDescription:`Agent keys disabled: {keys} · invites cancelled: {invites} · requests denied: {requests}.`},reset:{title:`Create a password reset link?`,description:`{name} can choose a new password with it. There's no email yet, so you share the link yourself.`,once:`It works once and expires in one hour.`,signsOut:`Setting a new password signs them out everywhere.`,replaces:`A new link voids any earlier one.`,submit:`Create link`,failed:`Couldn't create the link`,revealTitle:`Copy the reset link`,revealDescription:`Send it to {name} privately, in a direct message.`,warningTitle:`You won't see this link again`,warning:`Copy it now. Anyone who opens it can set this account's password, so never post it in a shared channel.`,link:`Reset link`,expires:`Expires {relative} ({absolute}).`,done:`I've copied the link`},transfer:{title:`Transfer ownership to {name}?`,description:`The Owner can do everything, including moving ownership. There is exactly one.`,warningTitle:`You can't undo this yourself`,warning:`{name} becomes the Owner and you become an Administrator. Only {name} can give ownership back.`,to:`New Owner`,youBecome:`You become an Administrator straight away.`,keys:`Your agent keys narrow to what an Administrator may do.`,onlyThey:`Only the new Owner can transfer ownership again.`,password:`Your password`,passwordHint:`Enter it again to confirm it's you.`,passwordRequired:`Enter your password`,wrongPassword:`That password isn't right`,notAdministrator:`Ownership goes to an Administrator. Make them one first, then try again.`,needsAdministrator:`Ownership goes only to an Administrator. Change their role first.`,submit:`Transfer ownership`,failed:`Couldn't transfer ownership`,done:`Ownership transferred`,doneDescription:`{name} is the Owner now. You're an Administrator.`},activity:{empty:`No team events yet`,emptyDescription:`Invites, role changes, removals and ownership transfers appear here.`,restrictedTitle:`Team activity is for Editors and above`}},editionGuide:{title:`Another language: here or as its own site?`,hereTitle:`Add it to this site`,here:`Same pages and menus in every language, one team, one publish. Best when the languages mirror each other.`,editionTitle:`Start a language edition`,edition:`A separate site in this project that starts from this one: its own pages, menus, team roles and releases, still linked as translations. Best when a market needs its own structure or team.`,create:`Create a language edition…`},newSite:{open:`New site`,title:`New site`,description:`A site of its own in this installation: its own pages, settings, team roles and analytics. It starts with a home page; nothing is published.`,name:`Name`,nameRequired:`Give the site a name.`,slug:`Short name`,slugHint:`Lower-case letters, digits and hyphens; it identifies the site in Studio and the CLI.`,slugInvalid:`Use lower-case letters, digits and hyphens.`,language:`Language`,languageHint:`The site's default language; add more later in its language settings.`,project:`Project`,projectHint:`Projects group related sites, such as the language editions of one publication.`,newProject:`A new project`,submit:`Create site`,failed:`The site could not be created`,created:`Site created`,createdDescription:`{name} is ready to edit; nothing is published yet.`,from:`Start from`,fromHint:`A blank site starts with a home page and an About page.`,blank:`A blank site`,copyOf:`A copy of {name} (language edition)`,editionHint:`Copies that site's pages as drafts in the new language, its menus and design, linked as translations; articles and media stay. The new site joins that site's project.`,editionCreated:[[0,`name`],` starts with `,[2,`count`,{one:[[4],` page`],other:[[4],` pages`]}],` to translate; nothing is published yet.`]},projects:{title:`Project`,description:`The sites of this project side by side: languages, address, publish state and approvals waiting.`,newSite:`New site in this project`,sites:`Sites`,notFound:`No such project`,notFoundDescription:`It was removed, or none of its sites are yours to open.`,columns:{site:`Site`,languages:`Languages`,address:`Address`,status:`Status`,approvals:`Approvals`},noAddress:`No domain yet`,none:`None`,waiting:[[2,`count`,{one:[[4],` waiting`],other:[[4],` waiting`]}]],summary:{title:`At a glance`,sites:`Sites`,languages:`Languages`,live:`Live`,waiting:`Approvals waiting`}},siteAccess:{legend:`Sites`,all:`Every site`,some:`Only some sites`,roleOn:`Role on {site}`,everySite:`Owners and Administrators work on every site of this installation.`,required:`Pick at least one site.`,menu:`Sites`,title:`Sites for {name}`,description:`Choose which sites this person works on and their role on each. Changes apply at once.`,failed:`The sites could not be saved`,submit:`Save sites`,saved:`Sites saved`,savedDescription:`The sites of {name} were updated.`,count:[[2,`count`,{one:[[4],` site`],other:[[4],` sites`]}]]},invites:{create:{title:`Invite someone`,reinviteTitle:`Invite again`,description:`They get a one-time link to create their account in the role you choose.`,step:`Step 1 of 2 · Who and in which role`,email:`Email`,emailHint:`The account is created with this address; they can't change it.`,emailPlaceholder:`name@example.com`,role:`Role`,roleHint:`Only roles yours may give are listed.`,expiry:`Link expires after`,expiryHint:`Choose the shortest time that works for them.`,expiryAdmin:`Administrator invites expire within {max}.`,explainer:`What each role can do`,delivery:`How to send it`,deliveryLink:`Copy a link`,deliveryLinkHint:`You share it yourself, privately.`,deliveryEmail:`Send by email`,deliveryEmailHint:`Studio emails the link; you won't see it.`,submit:`Create invite link`,send:`Send invite`,failed:`Couldn't create the invite`},reveal:{title:`Copy the invite link`,sentTitle:`Invite sent`,description:`For {email}, as {role}. Step 2 of 2.`,warningTitle:`You won't see this link again`,warning:`Copy it now and share it privately, in a direct message, not a shared channel. Whoever opens it first joins as {role}.`,link:`Invite link`,summary:`Invite`,expires:`Expires {relative} ({absolute}).`,private:`If it reaches the wrong person, revoke it from Pending invites.`,done:`I've copied the link`,sent:`Sent to {email}`,sentDescription:`The link works once. You can revoke it from Pending invites.`},errors:{emailRequired:`Enter an email address`,emailInvalid:`Enter a valid email address, like name@example.com`,rank:`Your role can't invite someone as {role}.`,invalid_expiry:`That expiry isn't allowed for this role. Choose a shorter one.`,delivery_unavailable:`This server can't send email. Copy a link instead.`,delivery_failed:`The email couldn't be sent, so the invite was canceled. Choose Copy a link and try again.`,already_member:`{email} is already on the team.`,too_many_invites:`There are too many pending invites. Revoke some first.`,rate_limited:`You've created a lot of invites in the last hour. Try again later.`}},inviteAccept:{titleGeneric:`Join a Cloudhal Studio`,title:`Join {name}`,descriptionGeneric:`Opening your invite…`,descriptionDead:`This link doesn't work anymore.`,description:`{inviter} invited you as {role}.`,someone:`Someone`,summary:`Your invite`,as:`You'll join as`,expires:`This invite expires {relative} ({absolute}).`,emailHint:`The invite is for this address.`,nameHint:`Shown next to your changes and approvals.`,existingTitle:`You already have an account`,existing:`Enter its password to join with it.`,submit:`Accept invite`,toSignIn:`Go to sign in`,signOutFirst:`Sign out first, then accept the invite.`,welcome:`Welcome to {name}`,welcomeDescription:`You're signed in as {role}.`,missingTitle:`This link is incomplete`,missing:`Open the whole link you were sent; the part after # is missing. If it still doesn't work, ask for a new invite.`,goneTitle:`This invite can't be used`,gone:`It was used, revoked or has expired. Ask the person who invited you for a new one.`,otherSessionTitle:`You're signed in as {email}`,otherSessionTitleGeneric:`You're signed in as someone else`,otherSession:`This invite is for {email}. Sign out, then accept it.`,alreadyMemberTitle:`You're already on the team`,alreadyMember:`This account is already a member. Sign in instead.`,errors:{nameRequired:`Enter your name`,nameTooLong:`At most {max} characters`,weakPassword:`Use at least 8 characters`,wrongPassword:`That password isn't right for this account`}},resetPassword:{title:`Choose a new password`,description:`For {name}'s account.`,descriptionGeneric:`Opening your reset link…`,descriptionDead:`This link doesn't work anymore.`,expires:`This link expires {relative} ({absolute}).`,signsOut:`You'll be signed out on every device; then sign in with the new password.`,submit:`Set new password`,doneTitle:`Password changed`,doneDescription:`Sign in with your new password.`,changed:`Your password is set`,changedDescription:`You've been signed out everywhere.`,missingTitle:`This link is incomplete`,missing:`Open the whole link you were sent; the part after # is missing.`,goneTitle:`This reset link can't be used`,gone:`It was used or has expired. Ask for a new one from the sign-in page, or ask an Administrator.`},forgotPassword:{link:`Forgot password?`,title:`Reset your password`,description:`We'll email you a link to choose a new one.`,submit:`Email me a link`,sentTitle:`Check your email`,sent:`If {email} belongs to an account here, a reset link is on its way. It works once, for one hour.`,unavailableTitle:`This server can't send email`,unavailable:`Ask an Administrator of this Studio for a reset link.`,back:`Back to sign in`},passwords:{new:`New password`,confirm:`Repeat the password`,strength:`Strength: {level}`,levels:{empty:`—`,tooShort:`too short`,weak:`weak`,fair:`fair`,strong:`strong`},advice:{empty:`At least {min} characters. A few unrelated words make a strong one.`,tooShort:`At least {min} characters.`,weak:`Longer is stronger: try 12 characters or more, or a few unrelated words.`,fair:`Good. A few more characters make it strong.`,strong:`Strong password.`},errors:{required:`Enter a password`,tooShort:`Use at least {min} characters`,tooLong:`Use at most {max} characters`,confirmRequired:`Repeat the password`,mismatch:`The passwords don't match`}}},d={en:{name:`English`,dir:`ltr`,fallback:[],reviewed:!0},tr:{name:`Türkçe`,dir:`ltr`,fallback:[`en`],reviewed:!0},de:{name:`Deutsch`,dir:`ltr`,fallback:[`en`],reviewed:!1},es:{name:`Español`,dir:`ltr`,fallback:[`en`],reviewed:!1},fr:{name:`Français`,dir:`ltr`,fallback:[`en`],reviewed:!1},it:{name:`Italiano`,dir:`ltr`,fallback:[`en`],reviewed:!1},"pt-BR":{name:`Português (Brasil)`,dir:`ltr`,fallback:[`en`],reviewed:!1},nl:{name:`Nederlands`,dir:`ltr`,fallback:[`en`],reviewed:!1},pl:{name:`Polski`,dir:`ltr`,fallback:[`en`],reviewed:!1},ru:{name:`Русский`,dir:`ltr`,fallback:[`en`],reviewed:!1},uk:{name:`Українська`,dir:`ltr`,fallback:[`en`],reviewed:!1},ja:{name:`日本語`,dir:`ltr`,fallback:[`en`],reviewed:!1},ko:{name:`한국어`,dir:`ltr`,fallback:[`en`],reviewed:!1},"zh-Hans":{name:`简体中文`,dir:`ltr`,fallback:[`en`],reviewed:!1},hi:{name:`हिन्दी`,dir:`ltr`,fallback:[`en`],reviewed:!1},id:{name:`Bahasa Indonesia`,dir:`ltr`,fallback:[`en`],reviewed:!1},ar:{name:`العربية`,dir:`rtl`,fallback:[`en`],reviewed:!1,intl:`ar-u-nu-latn`},fa:{name:`فارسی`,dir:`rtl`,fallback:[`en`],reviewed:!1,intl:`fa-u-nu-latn`},he:{name:`עברית`,dir:`rtl`,fallback:[`en`],reviewed:!1}},f=Object.fromEntries(Object.entries(d).flatMap(([e,t])=>t.intl?[[e,t.intl]]:[])),p=Object.keys(d),m=Object.fromEntries(p.map(e=>[e,d[e].name])),h=e=>Object.hasOwn(d,e);function g(e){let t=[e,...d[e].fallback];return t.includes(`en`)?t:[...t,`en`]}var _=Object.assign({"./lazy/aiSettings.en.ts":()=>s(()=>import(`./aiSettings.en-C8dj9xkg.js`),[]),"./lazy/analytics.en.ts":()=>s(()=>import(`./analytics.en-BjRe9VE9.js`),[]),"./lazy/analyticsSettings.en.ts":()=>s(()=>import(`./analyticsSettings.en-Dn_QYKbo.js`),[]),"./lazy/appearance.en.ts":()=>s(()=>import(`./appearance.en-mFJuOtIH.js`),[]),"./lazy/bodyEditor.en.ts":()=>s(()=>import(`./bodyEditor.en-B8FW4NF8.js`),[]),"./lazy/build.en.ts":()=>s(()=>import(`./build.en-Byn4-h2I.js`),[]),"./lazy/comments.en.ts":()=>s(()=>import(`./comments.en-DXe1aP-J.js`),[]),"./lazy/commentsSettings.en.ts":()=>s(()=>import(`./commentsSettings.en-CjQdkMZH.js`),[]),"./lazy/media.en.ts":()=>s(()=>import(`./media.en-BT47PRGz.js`),[]),"./lazy/menus.en.ts":()=>s(()=>import(`./menus.en-CJ5d7ms0.js`),[]),"./lazy/readers.en.ts":()=>s(()=>import(`./readers.en-CbmwKSip.js`),[]),"./lazy/scheduleSettings.en.ts":()=>s(()=>import(`./scheduleSettings.en-Ke9GgFqw.js`),[]),"./lazy/schedules.en.ts":()=>s(()=>import(`./schedules.en-D7O8u4iy.js`),[])}),v=Object.assign({"./loaders/ar.ts":()=>s(()=>import(`./ar-CS6h3U7d.js`),__vite__mapDeps([0,1])),"./loaders/de.ts":()=>s(()=>import(`./de-COZWf0tz.js`),__vite__mapDeps([2,1])),"./loaders/es.ts":()=>s(()=>import(`./es-Cpr7u5Cz.js`),__vite__mapDeps([3,1])),"./loaders/fa.ts":()=>s(()=>import(`./fa-8y3tvKw6.js`),__vite__mapDeps([4,1])),"./loaders/fr.ts":()=>s(()=>import(`./fr-IvKa5dhW.js`),__vite__mapDeps([5,1])),"./loaders/he.ts":()=>s(()=>import(`./he-DG-oJz8N.js`),__vite__mapDeps([6,1])),"./loaders/hi.ts":()=>s(()=>import(`./hi-CngsNxV4.js`),__vite__mapDeps([7,1])),"./loaders/id.ts":()=>s(()=>import(`./id-CrWAlC6J.js`),__vite__mapDeps([8,1])),"./loaders/it.ts":()=>s(()=>import(`./it-BbkGji4q.js`),__vite__mapDeps([9,1])),"./loaders/ja.ts":()=>s(()=>import(`./ja-CLpIeite.js`),__vite__mapDeps([10,1])),"./loaders/ko.ts":()=>s(()=>import(`./ko-u0y0T6iL.js`),__vite__mapDeps([11,1])),"./loaders/nl.ts":()=>s(()=>import(`./nl-CraQgOQ0.js`),__vite__mapDeps([12,1])),"./loaders/pl.ts":()=>s(()=>import(`./pl-Z99ZIGWL.js`),__vite__mapDeps([13,1])),"./loaders/pt-BR.ts":()=>s(()=>import(`./pt-BR-CjvH9SeS.js`),__vite__mapDeps([14,1])),"./loaders/ru.ts":()=>s(()=>import(`./ru-CwyHst7f.js`),__vite__mapDeps([15,1])),"./loaders/tr.ts":()=>s(()=>import(`./tr-DOAJHdbH.js`),__vite__mapDeps([16,1])),"./loaders/uk.ts":()=>s(()=>import(`./uk-9ZV1-TPI.js`),__vite__mapDeps([17,1])),"./loaders/zh-Hans.ts":()=>s(()=>import(`./zh-Hans-D57DCm9K.js`),__vite__mapDeps([18,1]))}),y=`./lazy/`,b=`.en.ts`,x=Object.keys(_).map(e=>e.slice(7,-6)).sort();function S(e){return Object.hasOwn(_,`${y}${e}${b}`)}var C=new Map;function w(e){let t=C.get(e);if(!t){let n=v[`./loaders/${e}.ts`];if(!n)return Promise.resolve({});t=n().then(e=>e.loaders,t=>{throw C.delete(e),t}),C.set(e,t)}return t}async function T(e,t){return t===`en`?_[`${y}${e}${b}`]:(await w(t))[`../lazy/${e}.${t}.ts`]}var E=new Map,D=new Map,O=(e,t)=>`${e}:${t}`;function k(e,t){return E.get(O(e,t))}function A(e){return x.filter(t=>E.has(O(t,e)))}function j(e,t){let n=O(e,t);if(E.has(n))return Promise.resolve();let r=D.get(n);return r||(r=T(e,t).then(n=>{if(!n)throw Error(`no "${e}" messages for locale "${t}"`);return n()}).then(t=>{E.set(n,t.messages[e]),D.delete(n)},e=>{throw D.delete(n),e}),D.set(n,r)),r}function M(e,t){return o(V(),e,t)}r(f);var N={en:u},P=Object.assign({"./ar.ts":()=>s(()=>import(`./ar-ofvhEEt4.js`),[]),"./de.ts":()=>s(()=>import(`./de-CUjqphee.js`),[]),"./es.ts":()=>s(()=>import(`./es-DXloqVLE.js`),[]),"./fa.ts":()=>s(()=>import(`./fa-BDO-9MVu.js`),[]),"./fr.ts":()=>s(()=>import(`./fr-Cm9SdqZD.js`),[]),"./he.ts":()=>s(()=>import(`./he-Bt5bz790.js`),[]),"./hi.ts":()=>s(()=>import(`./hi-C3-GZG-C.js`),[]),"./id.ts":()=>s(()=>import(`./id-fk1BPM1I.js`),[]),"./it.ts":()=>s(()=>import(`./it-KwlZf5Ee.js`),[]),"./ja.ts":()=>s(()=>import(`./ja-BZHSI7Yq.js`),[]),"./ko.ts":()=>s(()=>import(`./ko-B9L7Js7b.js`),[]),"./nl.ts":()=>s(()=>import(`./nl-4w3IGlXj.js`),[]),"./pl.ts":()=>s(()=>import(`./pl-CCYhWdyU.js`),[]),"./pt-BR.ts":()=>s(()=>import(`./pt-BR-xY-_D6mf.js`),[]),"./ru.ts":()=>s(()=>import(`./ru-DZ1xI15Q.js`),[]),"./tr.ts":()=>s(()=>import(`./tr-n4MtlsVR.js`),[]),"./uk.ts":()=>s(()=>import(`./uk-aiCWjdse.js`),[]),"./zh-Hans.ts":()=>s(()=>import(`./zh-Hans-D7CeiRbC.js`),[])}),F=new Map;function I(e){if(N[e])return Promise.resolve();let t=F.get(e);if(!t){let n=P[`./${e}.ts`];if(!n)return Promise.reject(Error(`no core catalog for locale "${e}"`));w(e).catch(()=>{}),t=n().then(({messages:t})=>{N[e]=t,F.delete(e)},t=>{throw F.delete(e),t}),F.set(e,t)}return t}function L(e){return N[e]!==void 0}var R=`cloudhal.studio.locale`;function z(){try{let e=localStorage.getItem(R);if(e&&h(e))return e}catch{}return`en`}var B;function V(){return B??=z(),B}function H(...e){return Object.fromEntries(e.map(e=>[e,`{${e}}`]))}function U(e,t){let n=e;for(let e of t)n=n?.[e];return typeof n==`string`||i(n)?n:void 0}function W(e,t){let n=t.split(`.`),r=n[0]??``;return S(r)?U(k(r,e),n.slice(1)):U(N[e],n)}function G(e){return d[e].dir}function K(e,t,n={}){let r;for(let n of g(e))if(r=W(n,t),r!==void 0)break;return a(e,r??t,n)}var q=(0,c.createContext)(void 0);function J({children:e,initialLocale:t}){let[n,r]=(0,c.useState)(()=>{let e=t??z();return B=e,e}),i=(0,c.useCallback)(e=>{let t=()=>{B=e,(0,c.startTransition)(()=>r(e));try{localStorage.setItem(R,e)}catch{}},i=A(n).filter(t=>!k(t,e));i.length===0&&L(e)?t():Promise.all([I(e),...i.map(t=>j(t,e))]).then(t,()=>{t()})},[n]);(0,c.useEffect)(()=>{document.documentElement.lang=n,document.documentElement.dir=G(n)},[n]),L(n)||(0,c.use)(I(n));let a=(0,c.useMemo)(()=>({locale:n,setLocale:i,t:((e,t)=>K(n,e,t))}),[n,i]);return(0,l.jsx)(q.Provider,{value:a,children:e})}function Y(e,t){let n=(0,c.useContext)(q);if(!n)throw Error(`useMessages must be used inside <I18nProvider>`);for(let r of t??[n.locale])for(let t of e)k(t,r)||(0,c.use)(j(t,r))}function X(...e){let t=(0,c.useContext)(q);if(!t)throw Error(`useI18n must be used inside <I18nProvider>`);return Y(e),t}function Z(...e){return X(...e).t}function Q(e,t,n=[V()]){return Promise.all([e,...n.flatMap(e=>t.map(t=>j(t,e)))]).then(([e])=>e)}export{M as a,X as c,Q as d,j as f,u as h,H as i,Y as l,p as m,V as n,I as o,m as p,G as r,K as s,J as t,Z as u};
7
+ //# sourceMappingURL=i18n-CdW50___.js.map
@@ -0,0 +1,6 @@
1
+ var e={app:{name:`Cloudhal Studio`,tagline:`Masuk untuk mengelola situs Anda.`},playground:{title:`Playground`,description:[[2,`count`,{other:[`Tersisa `,[4],` menit`]}],`. Semua di sini dihapus saat sesi berakhir, jadi jangan masukkan data pribadi.`],reset:`Atur ulang`,deploy:`Deploy ke Cloudflare`,unavailableTitle:`Tersedia di instalasi Anda sendiri`,unavailableDescription:`Anggota tim, kunci agen, dan pengaturan akun memerlukan masuk, jadi playground tidak menyertakannya. Deploy Cloudhal ke akun Cloudflare Anda untuk menggunakannya.`},common:{save:`Simpan`,cancel:`Batal`,delete:`Hapus`,publish:`Terbitkan`,rollBack:`Kembalikan`,loading:`Memuat…`,signOut:`Keluar`,live:`Live`,language:`Bahasa`,more:`Lainnya`,rev:`rev {rev}`,close:`Tutup`,optional:`(opsional)`,moreInformation:`Info selengkapnya`,copy:`Salin`,copied:`Disalin`,retry:`Coba lagi`,discard:`Buang`,saveChanges:`Simpan perubahan`,unsaved:`Perubahan belum disimpan`,onThisPage:`Di halaman ini`,on:`Aktif`,off:`Nonaktif`,deleteResource:{title:`Hapus {name}`,warning:`Tindakan ini tidak dapat dibatalkan. {type} {name} akan dihapus secara permanen.`,typeToConfirm:`Ketik {name} untuk mengonfirmasi:`,copy:`Salin {name} ke papan klip`,confirmInput:`Ketik {name} untuk mengonfirmasi penghapusan`,delete:`Hapus {type}`}},theme:{label:`Tema`,current:`Tema: {name}`,light:`Terang`,dark:`Gelap`,system:`Sistem`},auth:{signInTitle:`Selamat datang kembali`,signUpTitle:`Buat akun Anda`,signUpDescription:`Akun pertama di Studio baru menjadi pemiliknya.`,footer:`Sumber terbuka · Apache-2.0`,signIn:`Masuk`,createAccount:`Buat akun`,name:`Nama`,email:`Email`,password:`Kata sandi`,passwordHint:`Minimal 8 karakter`,failed:`Gagal masuk`,setupTitle:`Siapkan Studio ini`,setupDescription:"Anda membuka tautan penyiapan dari `cloudhal deploy`. Akun yang Anda buat sekarang menjadi pemilik; setelah itu pendaftaran ditutup."},sites:{title:`Situs`,description:`Setiap situs adalah graf halaman dan konten yang dikelola agen dengan persetujuan Anda.`,columns:{project:`Proyek`,name:`Nama`,slug:`Slug`,pages:`Halaman`,status:`Status`},notPublished:`Belum diterbitkan`,empty:`Belum ada situs`,emptyDescription:`Buat situs dari terminal dan situs itu akan muncul di sini.`,search:`Cari situs`,usageTitle:`Dari terminal`,usageDescription:`Semua yang ada di Studio juga merupakan perintah CLI, sehingga agen dan skrip dapat melakukan pekerjaan yang sama.`,open:`Buka`},pageHeaders:{media:{title:`Media`,description:`Gambar, video, audio, dokumen, dan file data situs ini. File baru live pada penerbitan berikutnya.`},pages:{title:`Halaman`,description:`Rute situs ini. Setiap halaman adalah tumpukan bagian yang dirender oleh tema.`},articles:{title:`Artikel`,description:`Pos dan entri lainnya, ditulis oleh orang atau agen dan diterbitkan bersama situs.`},snapshots:{title:`Snapshot`,description:`Versi beku situs. Menerbitkan mengarahkan situs live ke salah satunya; mengembalikan mengarahkannya ke versi yang lebih lama.`},activity:{title:`Aktivitas`,description:`Setiap panggilan alat yang dilakukan agen atau orang di situs ini, beserta keputusan kebijakannya.`},approvals:{title:`Persetujuan`,description:`Penerbitan, pengembalian, dan penghapusan oleh agen, suntingan mereka dalam mode Manual, permintaan mereka untuk otonomi lebih, serta penerbitan yang tidak dapat dilakukan sendiri oleh peran seseorang menunggu di sini sampai orang yang berwenang memutuskan.`},settings:{title:`Pengaturan`,description:`Nama, bahasa, domain, dan tautan pratinjau untuk situs ini.`},agents:{title:`Agen`,description:`Kunci memungkinkan agen, tugas CI, dan klien MCP bekerja di situs Anda. Mode kunci menentukan apa yang dilakukan agen sendiri dan apa yang menunggu Anda.`},skills:{title:`Skill`,description:`Panduan yang dibaca agen melalui MCP. Panggilan yang dilakukan dengan skill hanya mendapat cakupan yang dideklarasikannya, dan alat yang dicantumkannya selalu menunggu seseorang.`},account:{title:`Akun`,description:`Profil Anda, cara Anda masuk, dan siapa lagi yang dapat masuk ke Studio ini.`},taxonomy:{title:`Kategori & tag`,description:`Cara artikel diarsipkan dan ditemukan. Penggantian nama, penggabungan, atau pemensiunan adalah satu perubahan dan satu snapshot, dan meninggalkan pengalihan.`},navigation:{title:`Navigasi`,description:`Menu yang dipakai pengunjung untuk menemukan jalan: header, footer, dan menu lain yang ditempatkan tema Anda. Item menunjuk ke halaman dan kategori, sehingga penggantian nama tidak pernah merusaknya.`},translations:{title:`Terjemahan`,description:`Setiap halaman dan artikel menurut bahasa: yang belum ada, yang kedaluwarsa, atau yang menunggu ditinjau seseorang.`},redirects:{title:`Pengalihan`,description:`Alamat lama dan ke mana pengunjung dikirim. Perubahan slug, penggabungan, dan pemensiunan menambahkannya secara otomatis; Anda juga dapat menambahkan sendiri.`},team:{title:`Tim`,description:`Siapa yang bekerja di Studio ini dan dengan peran apa. Orang bergabung dengan tautan undangan sekali pakai; agen mereka tidak pernah melakukan lebih dari yang dapat mereka lakukan.`}},nav:{media:`Media`,comments:`Komentar`,overview:`Ringkasan`,content:`Konten`,history:`Riwayat`,automation:`Otomatisasi`,account:`Akun`,home:`Ringkasan`,pages:`Halaman`,articles:`Artikel`,snapshots:`Snapshot`,agents:`Agen`,allSites:`Semua situs`,sites:`Situs`,switchSite:`Ganti situs`,search:`Cari atau jalankan perintah…`,shortcutHint:`⌘K`,shortcutHintCtrl:`Ctrl K`,agentSkills:`Skill`,schedules:`Jadwal`,activity:`Aktivitas`,agentKeys:`Kunci dan MCP`,approvals:`Persetujuan`,settings:`Pengaturan`,siteSettings:`Pengaturan`,taxonomy:`Kategori & tag`,navigation:`Navigasi`,redirects:`Pengalihan`,translations:`Terjemahan`,team:`Tim`,analytics:`Analitik`},commands:{goMedia:`Buka media`,goComments:`Buka komentar`,goAnalytics:`Buka analitik`,placeholder:`Ketik perintah…`,empty:`Tidak ada perintah yang cocok`,hintNavigate:`Navigasi`,hintSelect:`Jalankan`,hintClose:`Tutup`,goOverview:`Buka ringkasan`,goArticles:`Buka artikel`,goSnapshots:`Buka snapshot`,newArticle:`Artikel baru`,createSnapshot:`Buat snapshot`,publishSite:`Buat snapshot dan terbitkan situs`,goActivity:`Buka aktivitas`,goAgents:`Buka agen`,createAgentKey:`Buat kunci agen`,goSkills:`Buka skill`,goAccount:`Buka pengaturan akun`,goTeam:`Buka tim`,goSiteSettings:`Buka pengaturan situs`,goApprovals:`Buka persetujuan`,goTaxonomy:`Buka kategori dan tag`,goNavigation:`Buka menu navigasi`,goRedirects:`Buka pengalihan`,goSchedules:`Buka jadwal`,newSchedule:`Jadwalkan penerbitan…`,searchPlaceholder:`Cari konten atau jalankan perintah…`,searchEmpty:`Tidak ada perintah atau konten yang cocok`,hintNewTab:`Tab baru`,groups:{commands:`Perintah`,entry:`Artikel`,page:`Halaman`,term:`Kategori & tag`,asset:`Media`,menu:`Item menu`,redirect:`Pengalihan`}},overview:{commentsWaiting:[[2,`count`,{other:[[4],` komentar menunggu`]}]],commentsWaitingDescription:`Pembaca tidak melihatnya sampai seseorang menyetujuinya.`,liveSnapshotLabel:`Snapshot live`,notPublished:`Belum diterbitkan`,newPage:`Halaman baru`,pages:`Halaman`,columns:{title:`Judul`,path:`Path`,status:`Status`,updated:`Diperbarui`},empty:`Belum ada halaman`,emptyDescription:`Buat halaman pertama atau minta agen menyiapkan kerangkanya.`,search:`Cari halaman`,status:`Status`,live:`Live`,recentArticles:`Artikel terbaru`,viewAll:`Lihat semua`,cli:`Dari terminal`},pageStatus:{publishTitle:`Terbitkan “{title}”?`,published:`Halaman diterbitkan`,unpublished:`Halaman kembali menjadi draf`,failed:`Status halaman tidak berubah`,leftOut:[[2,`count`,{other:[[4],` halaman belum diterbitkan`]}]],leftOutDescription:`Draf dan halaman dalam peninjauan, termasuk terjemahan baru, tidak tampil di situs live. Terbitkan dulu.`,review:`Tinjau halaman`},articles:{description:`Pos dalam koleksi “posts”.`,newArticle:`Artikel baru`,empty:`Belum ada artikel`,emptyDescription:`Tulis yang pertama, atau minta agen menulisnya.`,untitled:`Tanpa judul`,columns:{title:`Judul`,author:`Penulis`,status:`Status`,updated:`Diperbarui`},search:`Cari artikel`,none:`—`,noCategory:`Tanpa kategori`,primary:`Kategori utama`,facets:{label:`Filter artikel`,category:`Filter menurut kategori`,tag:`Filter menurut tag`,allCategories:`Semua {label}`,allTags:`Semua {label}`,clear:`Hapus filter`,empty:`Tidak ada artikel yang cocok dengan filter ini`,emptyDescription:`Coba kategori atau tag lain, atau hapus filter.`}},articleCorrections:{title:`Koreksi`,description:`Pembaca melihatnya di akhir artikel, yang terbaru lebih dulu, dan yang terakhir menjadi tanggal Diperbarui artikel. Setelah diterbitkan, koreksi tetap ada: orang yang dapat menerbitkan boleh mengubah kata-katanya, tetapi tidak ada yang menghapusnya.`,empty:`Tidak ada koreksi`,emptyDescription:`Tambahkan saat isi berita yang diterbitkan berubah secara substansial.`,kind:`Jenis`,kinds:{correction:`Koreksi`,clarification:`Klarifikasi`,update:`Pembaruan`},note:`Apa yang berubah`,noteHint:`Satu atau dua kalimat. Tautan dan penekanan Markdown dapat digunakan.`,add:`Tambah koreksi`,unsaved:`Belum disimpan`,remove:`Hapus koreksi`,pending:`Simpan artikel untuk menambahkannya; koreksi live pada penerbitan berikutnya.`},articleTerms:{title:`Kategori dan tag`,description:`Kategori mengelompokkan artikel; tag mendeskripsikannya. Kategori utama muncul di breadcrumb dan di metadata artikel.`,legacyDescription:`Situs ini masih menyimpan tag sebagai teks biasa. Pindahkan ke kategori dan tag agar memiliki nama, arsip, dan pengalihan.`,legacyTitle:`Tag lama pada artikel ini`,legacyPending:`{tags} menjadi tag saat Anda menyimpan.`,required:`Pilih {singular} untuk mengirim artikel ini ke tinjauan atau menerbitkannya.`,requiredToast:`Pilih {singular} terlebih dahulu`,slugRedirect:`Huruf kecil, dengan tanda hubung. Artikel ini sudah diterbitkan: slug baru meninggalkan pengalihan dari alamat lama.`},pickers:{under:`di {path}`,clear:`Hapus`,showOptions:`Tampilkan opsi`,noMatch:`Tidak ada yang cocok`,remove:`Hapus {name}`,atMost:`Paling banyak {max}. Hapus satu untuk menambahkan yang lain.`,categoryHint:`Hingga {max}. Ketik untuk mencari nama dan sinonim.`,categoryRequiredHint:`Diperlukan untuk mengirim ke tinjauan atau menerbitkan. Hingga {max}.`,categoryPlaceholder:`Pilih kategori…`,noCategory:`Tidak ada kategori yang cocok. Tambahkan kategori di Kategori & tag.`,primary:`Kategori utama`,primaryHint:`Ditampilkan di breadcrumb dan digunakan sebagai rubrik artikel.`,primaryNone:`Pilih satu…`,tagHint:`Hingga {max}. Tag yang sudah ada muncul lebih dulu, dan sinonim juga menemukannya.`,tagPlaceholder:`Tambah tag…`,tagFull:`Batas tag tercapai`,viaSynonym:`sinonim “{value}”`,similar:`mirip`,create:`Buat “{name}”`,createNoSlug:`Nama ini tidak memiliki huruf atau angka untuk alamat. Coba nama lain.`,nearDuplicate:`Tampak seperti {names}. Gunakan tag yang sudah ada jika artinya sama.`,proposedChip:`Diusulkan oleh agen. Tag ini mendapat halaman publik setelah seseorang menyetujuinya.`},editor:{schedule:`Jadwalkan…`,locked:`Rilis terjadwal menahan ini. Batalkan jadwalnya untuk mengedit.`,heroNoImage:`Tanpa gambar hero`,status:`Status`,title:`Judul`,slug:`Slug`,summary:`Ringkasan`,summaryHint:`Digunakan sebagai deskripsi meta di hasil pencarian dan pada tautan yang dibagikan.`,body:`Isi (markdown)`,tags:`Tag`,tagsHint:`Dipisahkan koma`,path:`Path`,pathHint:`Absolut, huruf kecil, tanpa garis miring di akhir`,sections:`Bagian`,addSection:`Tambah bagian`,noSections:`Belum ada bagian`,noSectionsDescription:`Tambahkan hero, teks kaya, gambar, atau daftar konten.`,remove:`Hapus`,moveUp:`Pindah ke atas`,moveDown:`Pindah ke bawah`,heading:`Judul`,subheading:`Subjudul`,caption:`Keterangan`,collection:`Koleksi`,limit:`Batas`,sort:`Urutkan`,sortNewest:`Terbaru`,sortOldest:`Terlama`,sortTitle:`Judul`,saved:`Disimpan`,sendToReview:`Kirim ke tinjauan`,submitForReview:`Ajukan untuk ditinjau`,backToDraft:`Kembali ke draf`,archive:`Arsipkan`,restore:`Pulihkan ke draf`,publishArticleTitle:`Terbitkan artikel ini?`,publishArticleDescription:`Artikel akan terlihat di situs saat snapshot situs berikutnya dibuat dan diterbitkan.`,publishPageTitle:`Terbitkan halaman ini?`,publishPageDescription:`Halaman ini tayang saat situs diterbitkan berikutnya. Halaman dan bahasa lain tetap dengan statusnya sendiri.`,deleteArticle:`Hapus artikel`,deletePage:`Hapus halaman`,article:`Artikel`,page:`Halaman`,slugHint:`Huruf kecil, dengan tanda hubung; menjadi URL.`,metadata:`Detail`,moreActions:`Tindakan lainnya`,unpublish:`Batalkan penerbitan (kembali ke draf)`,duplicate:`Duplikat`,duplicated:`Salinan dibuat`,copyTitle:`{title} (salinan)`,dangerZone:`Zona berbahaya`,deletePageTitle:`Hapus halaman ini`,deletePageHint:`Menghapus halaman dan bagian-bagiannya. Snapshot yang diterbitkan tetap menyimpan salinannya.`,deleteArticleTitle:`Hapus artikel ini`,deleteArticleHint:`Menghapus artikel dari situs. Snapshot yang diterbitkan tetap menyimpan salinannya.`,removeSectionTitle:`Hapus bagian ini?`,removeSectionDescription:`Bagian {kind} dihapus dari draf. Halaman baru berubah saat Anda menyimpan.`,sectionKinds:{hero:`Hero`,richText:`Teks kaya`,image:`Gambar`,contentList:`Daftar konten`,component:`Blok`,surface:`UI yang dihasilkan`},buildLive:`Build langsung`,buildLiveHint:`Saksikan agen membangun halaman ini secara langsung`,surface:{title:`UI yang dihasilkan · {count} komponen`,hint:`Dibangun dari komponen tema. Ubah teksnya di sini; untuk mengubah tata letak, minta kepada AI.`,json:`UI yang dihasilkan sebagai data`,showJson:`Tampilkan JSON`,outline:`Komponen bagian ini`,expand:`Tampilkan isi {title}`,collapse:`Sembunyikan isi {title}`,changeWithAi:`Ubah dengan AI`,editTexts:`Edit teks {title}`,changePart:`Ubah {title} dengan AI`,bound:`menampilkan {path}`,computed:`dihitung ({fn})`,notPlaced:`Tidak ada di halaman`},blocks:{menu:`Blok`,unknown:`Blok tidak dikenal · {type}`,unknownHint:`Deployment ini tidak memiliki tipe blok dengan nama ini (tema mungkin telah berubah). Blok disimpan apa adanya dan tidak ditampilkan di situs.`,item:`Item {n}`,addItem:`Tambah item`,removeItem:`Hapus item`,moveUp:`Pindah ke atas`,moveDown:`Pindah ke bawah`,values:{tone:{info:`Info`,success:`Berhasil`,warning:`Peringatan`,danger:`Bahaya`},variant:{primary:`Utama`,secondary:`Sekunder`}}},bodyTitle:`Isi`,markdown:`Markdown`,words:[[2,`count`,{other:[[4],` kata`]}]],id:`ID`,revision:`Revisi`,locale:`Bahasa`,author:`Penulis`,updatedAt:`Diperbarui`,publishedAt:`Diterbitkan`},seo:{counter:`{count} / {max}`,fixErrors:`Perbaiki kolom yang disorot sebelum menyimpan.`,cover:{title:`Gambar sampul`,description:`Ditampilkan di atas artikel dan digunakan sebagai gambarnya saat tautan dibagikan. Pilih dari pustaka media, atau unggah yang baru di sana.`,url:`URL gambar`,urlHint:`Alamat https://, atau path di situs Anda seperti /images/cover.jpg.`,urlPlaceholder:`https://… atau /images/cover.jpg`,alt:`Teks alt`,altHint:`Deskripsikan apa yang ditampilkan gambar. Pembaca layar membacakannya untuk orang yang tidak dapat melihat gambar, dan mesin pencari menggunakannya untuk memahaminya.`,altPlaceholder:`Mercusuar di atas laut yang tenang saat senja`,remove:`Hapus gambar`,empty:`Tanpa gambar sampul`,loading:`Memuat gambar…`,broken:`Gambar ini tidak dapat dimuat`,brokenHint:`Periksa alamatnya dan pastikan gambar bersifat publik.`,brokenPathHost:`Path situs dimuat dari {host}. Periksa path-nya, atau pastikan situs sudah di-deploy.`,brokenPathNoDomain:`Path situs dimuat dari domain utama. Tambahkan domain di Pengaturan › Domain untuk melihatnya di sini.`,size:`{width} × {height} px`,errors:{required:`Masukkan alamat gambar, atau hapus gambar.`,insecure:`Gunakan https://. Browser memblokir gambar http di situs yang aman.`,invalid:`Masukkan alamat https:// atau path yang diawali dengan /.`,tooLong:`Paling banyak 2.048 karakter.`,altRequired:`Deskripsikan gambar. Teks alt wajib untuk gambar sampul.`,altTooLong:`Paling banyak 500 karakter.`}},preview:{title:`Pratinjau pencarian dan media sosial`,description:`Tampilan artikel ini di hasil pencarian dan saat tautannya dibagikan. Ringkasan digunakan sebagai deskripsi meta dan gambar sampul sebagai gambar berbagi.`,search:`Hasil pencarian`,social:`Kartu sosial`,noSummary:`Belum ada ringkasan. Mesin pencari dan jejaring sosial mengambil teks dari artikel.`,noDescription:`Tidak ada deskripsi meta. Mesin pencari mengambil teks dari halaman.`},checks:{label:`Pemeriksaan`,title:`Judul`,titleGood:`{count} karakter. Muat di hasil pencarian.`,titleLong:`{count} karakter. Hasil pencarian memotong judul setelah sekitar 60 karakter.`,titleMissing:`Tambahkan judul.`,description:`Deskripsi meta`,summary:`Deskripsi meta (ringkasan)`,descriptionGood:`{count} karakter. Muat di hasil pencarian.`,descriptionShort:`{count} karakter. Deskripsi pendek sering diganti; usahakan 50–160.`,descriptionLong:`{count} karakter. Hasil pencarian memotongnya setelah sekitar 160 karakter.`,summaryMissing:`Tambahkan ringkasan. Tanpa ringkasan, mesin pencari mengambil teks dari artikel.`,image:`Gambar berbagi`,imageSet:`Gambar sampul digunakan.`,imageMissing:`Tidak ada gambar sampul, jadi tautan yang dibagikan tidak menampilkan gambar.`,imageBroken:`Gambar sampul tidak dapat dimuat.`,status:{good:`Baik`,short:`Pendek`,long:`Terlalu panjang`,missing:`Tidak ada`,broken:`Rusak`}},page:{title:`Mesin pencari dan berbagi`,description:`Tampilan halaman ini di hasil pencarian dan saat tautannya dibagikan.`,seoTitle:`Judul SEO`,seoTitleHint:`Biarkan kosong untuk menggunakan judul halaman.`,seoDescription:`Deskripsi meta`,seoDescriptionHint:`Satu atau dua kalimat tentang apa yang ditawarkan halaman. Usahakan 50–160 karakter.`,seoDescriptionPlaceholder:`Apa yang ditemukan pengunjung di halaman ini`,noindex:`Sembunyikan dari mesin pencari`,noindexHint:`Menambahkan tag noindex. Halaman tetap dapat dijangkau melalui tautannya.`,noindexWarningTitle:`Halaman ini disembunyikan dari mesin pencari`,noindexWarning:`Mesin pencari diminta untuk tidak mencantumkannya, dan halaman yang sudah tercantum akan hilang setelah kunjungan berikutnya. Biarkan nonaktif untuk halaman yang harus ditemukan orang melalui pencarian.`,advanced:`Lanjutan`,custom:`Kustom`,canonical:`URL kanonis`,canonicalHintHost:`Biasanya kosong: alamat halaman di {host} yang digunakan. Setel hanya jika konten asli ini berada di alamat lain.`,canonicalHint:`Biasanya kosong: alamat halaman di domain utama situs yang digunakan. Setel hanya jika konten asli ini berada di alamat lain.`,canonicalPlaceholder:`https://example.com/original-page`,searchPreview:`Pratinjau pencarian`,hidden:`Disembunyikan dari pencarian`,errors:{titleTooLong:`Paling banyak 300 karakter.`,descriptionTooLong:`Paling banyak 500 karakter.`,canonicalInvalid:`Masukkan alamat lengkap yang diawali dengan https://.`,canonicalTooLong:`Paling banyak 2.048 karakter.`}},noindexBadge:`noindex`,noindexBadgeHint:`Disembunyikan dari mesin pencari. Ubah di pengaturan pencarian halaman.`,noCover:`Tanpa gambar sampul`,archive:{seoTitleHint:`Biarkan kosong untuk menggunakan nama istilah.`,noindexHint:`Menambahkan tag noindex ke arsip. Arsip tetap dapat dijangkau melalui tautannya.`,noindexWarningTitle:`Arsip ini disembunyikan dari mesin pencari`,noindexWarning:`Mesin pencari diminta untuk tidak mencantumkannya, dan arsip keluar dari sitemap. Biarkan nonaktif untuk topik yang harus ditemukan orang melalui pencarian.`}},status:{draft:`Draf`,review:`Dalam tinjauan`,published:`Diterbitkan`,archived:`Diarsipkan`},site:{publish:`Terbitkan`,publishDescription:`Rekam snapshot dari graf saat ini dan jadikan versi live.`,description:`/{slug} · {locale}`,rowMenu:`Tindakan lainnya`},snapshots:{description:`Setiap snapshot tidak dapat diubah; menerbitkan mengarahkan situs ke salah satunya.`,label:`Label`,labelPlaceholder:`mis. Edisi pagi`,empty:`Belum ada snapshot`,emptyDescription:`Buat snapshot untuk membekukan kondisi situs saat ini.`,created:`Snapshot dibuat`,published:`Diterbitkan`,publishedSnapshot:`Snapshot diterbitkan`,rolledBack:`Dikembalikan`,failed:`Gagal`,rollbackTitle:`Kembalikan situs live?`,publishTitle:`Terbitkan ke situs live?`,createDescription:`Snapshot dari graf saat ini direkam dan menjadi versi live.`,becomesLive:`{name} menjadi versi live.`,fromStudio:`Snapshot dari Studio`,publishedFromStudio:`Diterbitkan dari Studio`,compare:`Bandingkan`,create:`Buat snapshot`,createTitle:`Buat snapshot`,createIntro:`Membekukan halaman, artikel, dan pengaturan situs saat ini. Snapshot tidak pernah berubah setelah dibuat.`,labelDescription:`Opsional. Ditampilkan di daftar dan di Aktivitas sebagai pengganti alasan.`,afterCreate:`Setelah dibuat`,keepOption:`Biarkan situs live apa adanya`,keepOptionDescription:`Hanya simpan snapshot. Terbitkan atau bandingkan nanti dari daftar ini.`,publishOption:`Terbitkan ke situs live`,publishOptionDescription:`Snapshot menjadi versi live. Anda mengonfirmasi sebelum ada yang live.`,continueToPublish:`Lanjutkan ke penerbitan`,search:`Cari snapshot`,noMatches:`Tidak ada snapshot yang cocok`,noMatchesDescription:`Coba label atau ID snapshot lain.`,actions:`Tindakan`,columns:{snapshot:`Snapshot`,actor:`Pembuat`,changes:`Perubahan`,when:`Dibuat`},reasons:{manual:`Manual`,agentMutation:`Perubahan agen`,publish:`Penerbitan`,rollback:`Pengembalian`,scheduled:`Terjadwal`,import:`Impor`}},errors:{title:`Terjadi kesalahan`,conflict:`Orang lain mengubah ini sejak Anda membukanya. Muat ulang untuk mendapatkan versi terbaru.`,api:{not_found:`Sudah tidak ada di sini. Seseorang mungkin telah menghapusnya.`,forbidden:`Anda tidak memiliki izin untuk melakukan ini.`,unauthorized:`Sesi Anda telah berakhir. Masuk lagi.`,rank:`Peran Anda tidak mengizinkan ini.`,not_own:`Anda hanya dapat melakukan ini pada pekerjaan Anda sendiri.`,missing_scope:`Kunci atau sesi ini tidak diizinkan melakukan ini.`,rate_limited:`Terlalu banyak permintaan. Tunggu sebentar lalu coba lagi.`,internal:`Terjadi kesalahan di server. Coba lagi.`,invalid_json:`Server mengirim jawaban yang tidak dapat dibaca Studio. Coba lagi.`,unique:`Sudah ada sesuatu dengan nama atau alamat ini.`,slug_taken:`Alamat ini sudah digunakan.`,path_conflict:`Halaman atau artikel lain sudah menggunakan path ini.`,reserved_path:`Jalur ini dicadangkan untuk situs itu sendiri (pencarian, media, atau awalan bahasa).`,in_use:`Masih digunakan, jadi tidak dapat dihapus.`,quota_exceeded:`Kuota penyimpanan penuh.`,too_large:`Perubahan ini terlalu besar untuk satu operasi. Pecah menjadi beberapa bagian.`,state_changed:`Ini berubah sementara itu. Muat ulang dan coba lagi.`,network:`Server tidak dapat dijangkau. Periksa koneksi Anda dan coba lagi.`,status:`Permintaan gagal (HTTP {status}).`}},agents:{description:`Kunci memungkinkan agen, tugas CI, dan klien MCP bekerja di situs Anda. Setiap kunci memiliki mode yang menentukan apa yang dilakukan agen sendiri dan apa yang menunggu Anda. Setiap panggilan diperiksa oleh kebijakan dan dicatat dalam aktivitas situs.`,createKey:`Buat kunci`,search:`Cari kunci`,columns:{name:`Nama`,owner:`Dibuat oleh`,mode:`Mode`,scopes:`Cakupan`,created:`Dibuat`,status:`Status`},views:{mine:`Kunci Anda`,all:`Semua kunci`},all:{title:`Semua kunci agen di deployment ini`,description:`Sebagai Administrator, Anda dapat mengakhiri peningkatan akses atau mencabut kunci apa pun. Hanya pembuat kunci yang dapat mengubah modenya atau meningkatkan aksesnya.`,search:`Cari kunci atau orang`,empty:`Belum ada kunci agen`,emptyDescription:`Kunci yang dibuat orang muncul di sini beserta pembuatnya.`,unknownOwner:`Anggota yang dihapus`,elevateOnlyCreator:`Hanya orang yang membuat kunci ini yang dapat meningkatkan aksesnya. Anda dapat mengakhiri peningkatan akses atau mencabut kunci.`},roleCap:`Peran Anda mengizinkan kunci agen hingga mode {mode}.`,narrowed:{badge:`Dipersempit oleh peran`,hint:`Peran pembuat membatasi apa yang dapat dilakukan kunci ini saat ini; inilah cakupan yang berlaku untuknya.`,hintRole:`Peran pembuat kini {role}, jadi kunci ini bekerja dengan cakupan ini. Kenaikan peran tidak memperluasnya lagi.`,stored:`Diberikan: {scopes}`},active:`Aktif`,disabled:`Dinonaktifkan`,never:`Tidak pernah kedaluwarsa`,expires:`Kedaluwarsa {when}`,unnamed:`Kunci tanpa nama`,keyPrefix:`{start}…`,fullAccess:`Akses penuh`,scopesModeDefault:`Bawaan mode · {count} cakupan`,empty:`Belum ada kunci agen`,emptyDescription:`Buat satu kunci per agen atau otomatisasi, berikan hanya cakupan yang dibutuhkan, dan cabut setelah pekerjaan selesai.`,noMatches:`Tidak ada kunci yang cocok dengan “{query}”`,notEnabledTitle:`Kunci agen tidak tersedia di server ini`,notEnabledDescription:`Server ini berjalan tanpa proses masuk, jadi tidak dapat menerbitkan kunci. Agen di mesin Anda tetap dapat terhubung melalui stdio dengan cloudhal mcp.`,copyId:`Salin ID kunci`,revoke:`Cabut`,revokeKey:`Cabut kunci`,keyResource:`Kunci agen`,revoked:`Kunci dicabut`,revokedDescription:`{name} tidak dapat lagi menjangkau Studio.`,scopes:{"site:read":`Melihat situs dan snapshot`,"content:read":`Membaca halaman dan artikel`,"content:write":`Membuat, mengedit, dan menghapus halaman dan artikel`,"asset:upload":`Mengunggah media dan mengedit unggahannya sendiri`,"asset:manage":`Mengedit, mempensiunkan, dan menghapus media apa pun`,"analytics:read":`Membaca analitik situs (tanpa data pribadi)`,"site:write":`Mengubah pengaturan situs`,"preview:create":`Merender pratinjau draf`,"site:publish":`Menerbitkan snapshot ke situs live`,"site:rollback":`Mengembalikan situs live`,"content:write:own":`Membuat artikel dan mengubah artikel sendiri`,"content:draft:own":`Menulis draf dan mengirimnya ke tinjauan`,"content:propose":`Menyarankan suntingan isi; Anda menerima atau menolaknya`,"site:publish:own":`Menerbitkan jika semua perubahan adalah milik sendiri`,"comments:read":`Membaca komentar pembaca (tidak pernah email)`,"comments:moderate":`Memberi label dan menyembunyikan komentar; persetujuan menunggu Anda`,"comments:moderate:own":`Memberi label dan menyembunyikan komentar pada artikel sendiri`,"comments:reply":`Membuat draf balasan komentar; Anda yang menerbitkannya`,"comments:reply:own":`Membuat draf balasan pada artikel sendiri; Anda yang menerbitkannya`,"schedules:read":`Melihat jadwal, rilis, dan eksekusi otomatisasi`,"schedules:write":`Mengusulkan dan menjadwalkan rilis, embargo, dan kedaluwarsa`,"schedules:write:own":`Menjadwalkan rilis halaman dan artikel sendiri`,"releases:publish":`Menyetujui rilis; dalam mode Otomatis, rilis berisiko rendah berjalan tanpa Anda`,"releases:publish:own":`Menyetujui rilis jika semua itemnya milik sendiri`},modes:{legend:`Mode`,names:{plan:`Rencana`,manual:`Manual`,edits:`Edit`,auto:`Otomatis`,bypass:`Bypass`},descriptions:{plan:`Membaca situs Anda dan merender pratinjau. Dapat menyarankan perubahan tetapi tidak pernah melakukannya.`,manual:`Bertanya kepada Anda sebelum setiap perubahan, sekecil apa pun.`,edits:`Bebas membuat dan mengedit konten. Setiap perubahan disimpan dalam snapshot dan dapat dikembalikan.`,auto:`Bekerja seperti Edit, dan penerbitan artikel kecil langsung live tanpa Anda.`,bypass:`Tidak ada yang menunggu persetujuan orang. Hanya untuk cloudhal mcp di mesin Anda sendiri.`},waitsFor:[[3,`mode`,{plan:[`Menunggu Anda: tidak ada, karena tidak dapat mengubah apa pun`],manual:[`Menunggu Anda: setiap suntingan, penerbitan, pengembalian, dan penghapusan`],edits:[`Menunggu Anda: penerbitan, pengembalian, dan penghapusan`],auto:[`Menunggu Anda: penerbitan yang lebih besar, pengembalian, dan penghapusan`],bypass:[`Menunggu Anda: tidak ada`],other:[`Menunggu Anda: setiap suntingan, penerbitan, pengembalian, dan penghapusan`]}]],risk:{safest:`Paling aman`,recommended:`Direkomendasikan`,caution:`Gunakan dengan hati-hati`},current:`Saat ini`,bypassHint:`Bypass, tempat tidak ada yang menunggu persetujuan orang, tidak tersedia untuk kunci. Mode ini hanya ada untuk server lokal di mesin Anda sendiri:`,autoTitle:`Penerbitan kecil langsung live tanpa Anda`,autoDescription:`Dalam mode Otomatis, penerbitan yang hanya menambah atau mengedit artikel langsung live: tidak ada yang dihapus, tidak ada halaman, menu, pengaturan situs, taksonomi, atau pengalihan yang diubah, paling banyak {limit} perubahan. Aktivitas menandainya sebagai disetujui otomatis dan Anda dapat mengembalikannya dengan satu klik. Penerbitan yang lebih besar, pengembalian, dan penghapusan tetap menunggu Anda.`,autoConfirm:`Saya memahami bahwa agen ini dapat menerbitkan tanpa persetujuan saya`,autoConfirmRequired:`Konfirmasikan bahwa Anda memahami cara kerja mode Otomatis`},howModes:{title:`Cara kerja mode`,description:`Mode menentukan apa yang dilakukan agen sendiri dan apa yang menunggu Anda. Cakupan tetap menjadi batas mutlak: mode tidak pernah memberi lebih.`,columns:{mode:`Mode`,edits:`Konten`,publish:`Penerbitan`,rollback:`Pengembalian, penghapusan`},rules:{denied:`Diblokir`,waits:`Menunggu`,free:`Bebas`,lowRisk:`Kecil: bebas`},rulesHint:{denied:`Agen tidak dapat melakukan ini dalam mode ini.`,waits:`Agen bertanya; Anda menyetujuinya di Aktivitas › Persetujuan situs.`,free:`Agen melakukan ini sendiri. Setiap perubahan disimpan dalam snapshot.`,lowRisk:`Hanya artikel yang ditambahkan atau diedit, tidak ada yang dihapus, paling banyak {limit} perubahan. Yang lebih besar menunggu Anda.`},gated:`Selalu menunggu Anda jika memakai kunci`,bypass:`Bypass hanya untuk mesin Anda sendiri:`},changeMode:{menu:`Ubah mode`,title:`Ubah mode`,description:`Pilih cara kerja “{name}” mulai sekarang.`,from:`Sekarang`,to:`Baru`,nextCallTitle:`Berlaku pada panggilan agen berikutnya`,nextCall:`Panggilan yang sedang berjalan selesai dalam mode saat ini. Perubahan dicatat di log audit.`,submit:`Ubah mode`,failed:`Mode tidak dapat diubah`,changed:`Mode diubah`,changedDescription:`{name} kini bekerja dalam mode {mode}.`,elevatedTitle:`Ditingkatkan ke {mode} hingga {time}`,elevationKeeps:`Peningkatan akses tetap berlaku hingga {time}, lalu kunci bekerja dalam mode {mode}.`,elevationEnds:`{mode} mencapai mode yang ditingkatkan, jadi perubahan ini mengakhiri peningkatan akses.`},elevate:{menu:`Tingkatkan sementara`,menuDisabled:`Sudah dalam mode Otomatis, mode paling otonom yang dapat dimiliki kunci.`,title:`Tingkatkan sementara`,description:`Biarkan “{name}” bekerja dalam mode yang lebih otonom untuk sementara. Saat waktunya habis, kunci kembali ke modenya sendiri secara otomatis.`,ownMode:`Mode sendiri`,ownModeHint:`Tetap seperti adanya. Kunci kembali ke mode ini saat peningkatan akses berakhir.`,legend:`Tingkatkan ke`,duration:`Durasi`,presets:{15:`15 mnt`,60:`1 jam`,240:`4 jam`,1440:`1 hari`,custom:`Kustom`},customValue:`Durasi kustom`,customUnit:`Satuan`,units:{minutes:`Menit`,hours:`Jam`},customHint:`Antara {min} dan {max}.`,customErrors:{invalid:`Masukkan angka`,tooShort:`Minimal {min}`,tooLong:`Maksimal {max}`},reason:`Alasan`,reasonPlaceholder:`mis. Hari peluncuran: terbitkan pembaruan kecil sendiri`,reasonHint:`Opsional. Ditampilkan di log audit.`,replacesTitle:`Ini menggantikan peningkatan akses yang sedang berlaku`,replaces:`“{name}” bekerja dalam mode {mode} hingga {time}. Peningkatan akses baru menggantikannya.`,now:`Sekarang`,elevated:`Ditingkatkan`,summary:`Hingga {time} ({duration} lagi), lalu kembali ke {from}.`,nextCall:`Berlaku pada panggilan agen berikutnya. Anda dapat mengakhirinya lebih awal dari menu kunci.`,submit:`Tingkatkan`,failed:`Akses kunci tidak dapat ditingkatkan`,done:`Akses kunci ditingkatkan`,doneDescription:`{name} bekerja dalam mode {mode} hingga {time}, lalu kembali ke {from}.`},elevation:{left:`{time} lagi`,ownMode:`Mode sendiri: {mode}`,tooltip:`Ditingkatkan dari {from} hingga {time} oleh {who}`,requestedReason:`Diminta oleh agen: “{reason}”`,byYou:`Anda`,temporary:`Ditingkatkan sementara`,marker:`Ditingkatkan sementara dari {from} hingga {time}`,endMenu:`Akhiri peningkatan akses sekarang`,ended:`Peningkatan akses diakhiri`,endedDescription:`{name} kembali ke mode {mode}.`,endFailed:`Peningkatan akses tidak dapat diakhiri`,bannerTitle:[[2,`count`,{other:[[4],` kunci agen sedang ditingkatkan`]}]],bannerItem:`{name}: {from} → {to} hingga {time}`,endNow:`Akhiri sekarang`,endAll:`Akhiri semua sekarang`,endsIn:`Berakhir dalam {time}`,extendAll:`Perpanjang semua {duration}`,howModes:`Butuh otonomi lebih untuk sementara? Tingkatkan akses kunci sementara alih-alih membiarkannya dalam mode Otomatis: kunci kembali ke modenya sendiri secara otomatis.`},create:{title:`Buat kunci agen`,description:`Kunci bertindak sebagai agen di setiap situs yang dapat Anda buka, dalam mode yang Anda pilih.`,stepMode:`Langkah 1 dari 2 · Pilih mode`,stepDetails:`Langkah 2 dari 2 · Nama dan cakupan`,continue:`Lanjutkan`,mode:`Mode`,changeMode:`Ubah`,name:`Nama`,namePlaceholder:`mis. Claude Code di laptop saya`,nameHint:`Agen muncul dengan nama ini di log aktivitas.`,nameRequired:`Beri nama kunci`,advanced:`Lanjutan: cakupan`,advancedHint:`Diisi otomatis untuk mode {mode}. Cakupan adalah batas mutlak; mode menentukan apa yang menunggu Anda.`,customised:`Disesuaikan`,resetScopes:`Gunakan cakupan mode`,missingScopesTitle:`Sebagian yang diizinkan mode ini tidak akan berfungsi`,missingScopes:`Tanpa {scopes}, agen tidak dapat melakukan semua yang diizinkan mode {mode}.`,scopes:`Cakupan`,scopesRequired:`Pilih setidaknya satu cakupan`,groups:{read:`Baca`,write:`Tulis`,release:`Penerbitan dan pengembalian`},groupHints:{read:`Cukup untuk agen yang meneliti, merangkum, atau meninjau.`,write:`Perubahan disimpan dalam snapshot dan dapat dikembalikan.`,release:`Memungkinkan agen mengubah, atau meminta untuk mengubah, apa yang dilihat pengunjung.`},submit:`Buat kunci`,failed:`Kunci tidak dapat dibuat`,scopeAboveRole:`Peran Anda tidak dapat memberikan ini kepada kunci.`,scopeNarrowed:`Peran Anda memberikan {scope} hanya untuk pekerjaan Anda sendiri.`,errors:{scopeAboveRole:`Peran Anda tidak dapat memberikan sebagian cakupan ini kepada kunci. Hapus centangnya lalu coba lagi.`,modeAboveRole:`Peran Anda tidak mengizinkan kunci dalam mode ini. Pilih mode yang kurang otonom.`}},reveal:{title:`Salin kunci baru Anda`,description:`“{name}” sudah siap. Agen Anda mengirimkannya sebagai token bearer atau di header x-api-key.`,warningTitle:`Anda tidak akan melihat kunci ini lagi`,warning:`Simpan sekarang di pengelola kata sandi Anda atau penyimpanan rahasia agen. Jika hilang, cabut lalu buat yang baru.`,key:`Kunci agen`,config:`Konfigurasi klien`,done:`Saya sudah menyimpan kuncinya`},connect:{title:`Hubungkan klien MCP`,description:`Agen menjangkau Studio melalui MCP di alamat ini dan mengirim kuncinya di header. Saat terhubung, agen diberi tahu mode kuncinya, sehingga tahu apa yang menunggu Anda.`,endpoint:`Endpoint MCP`,header:`Header`,client:`Klien`,clients:{claude:`Claude Code`,codex:`Codex`,cursor:`Cursor`,vscode:`VS Code`,generic:`Klien lain`,stdio:`Lokal (stdio)`},hints:{claude:`Jalankan di terminal, lalu periksa koneksinya dengan /mcp di Claude Code.`,codex:`Codex membaca kunci dari CLOUDHAL_API_KEY dan mengirimkannya sebagai token bearer. Tambahkan baris export ke profil shell Anda agar kunci selalu tersedia saat Codex dimulai.`,cursor:`Tempelkan ke ~/.cursor/mcp.json, atau .cursor/mcp.json di sebuah proyek. Berkas ini berisi kunci, jadi jangan masukkan ke kontrol versi.`,vscode:`Simpan sebagai .vscode/mcp.json di proyek Anda. VS Code meminta kunci sekali dan menyimpannya di penyimpanan rahasianya.`,generic:`Klien apa pun yang mendukung streamable HTTP: URL ini, dengan kunci di header Authorization sebagai token bearer. Header x-api-key juga bisa.`,stdio:`Di mesin Anda sendiri, jalankan server stdio di dalam folder situs; tidak perlu kunci. --mode menentukan cara kerjanya, dan hanya di sini mode bisa bypass.`}}},activity:{search:`Cari alat, pelaku, atau skill`,refresh:`Segarkan aktivitas`,filters:{label:`Filter`,kind:`Jenis pelaku`,decision:`Keputusan`,allKinds:`Semua pelaku`,allDecisions:`Semua keputusan`},kinds:{agent:`Agen`,human:`Orang`,system:`Sistem`},decisions:{allow:`Diizinkan`,deny:`Ditolak`,"approval-required":`Perlu persetujuan`},outcomes:{ok:`Berhasil`,error:`Gagal`,pending:`Tertunda`},columns:{when:`Kapan`,actor:`Pelaku`,tool:`Alat`,decision:`Keputusan`,outcome:`Hasil`,skill:`Skill`,snapshot:`Snapshot`},empty:`Belum ada aktivitas`,emptyDescription:`Setiap panggilan alat yang dilakukan agen atau orang melalui MCP dicatat di sini: diizinkan, ditolak, atau menunggu persetujuan.`,noMatches:`Tidak ada peristiwa yang cocok dengan filter ini`,noMatchesDescription:`Filter berlaku untuk peristiwa yang sudah dimuat. Muat lebih banyak untuk melihat lebih jauh ke belakang.`,clearFilters:`Hapus filter`,showing:`Menampilkan {shown} dari {loaded} peristiwa yang dimuat`,allLoaded:`Anda sudah mencapai peristiwa pertama yang tercatat.`,loadMore:`Muat lainnya`,notEnabledTitle:`Server ini tidak menyimpan log aktivitas`,notEnabledDescription:`Jalankan Studio dengan cloudhal studio untuk mencatat setiap panggilan alat oleh agen dan orang.`,ownOnlyTitle:`Aktivitas Anda`,ownOnly:`Anda melihat apa yang Anda dan agen Anda lakukan di situs ini. Editor ke atas melihat aktivitas semua orang.`,viewEvent:`Tampilkan detail`,detail:{when:`Waktu`,actor:`Pelaku`,decision:`Keputusan`,outcome:`Hasil`,skill:`Skill`,duration:`Durasi`,durationValue:`{ms} md`,snapshot:`Snapshot`,viewChanges:`Lihat perubahan`,reason:`Alasan`,input:`Input`,noInput:`Panggilan ini tidak memiliki input.`,event:`Peristiwa #{id}`,mode:`Mode`,modeHint:`Mode kunci agen saat melakukan panggilan ini.`,elevation:`Peningkatan akses`,elevationHint:`Mode bawaan kunci adalah {from}. Pemiliknya memberikan otonomi lebih untuk sementara; saat peningkatan akses berakhir, kunci kembali bekerja dalam mode {from}.`,elevationGranted:`Peningkatan akses diberikan`,elevationGrantedUntil:`Mode {mode} hingga {time}, lalu kembali ke {from}.`,requestedByAgent:`Menjawab permintaan agen`},autoApproved:`Disetujui otomatis`,autoApprovedHint:`Live tanpa persetujuan orang: agen bekerja dalam mode Otomatis dan penerbitan ini berisiko rendah.`,autoApprovedTitle:`Diterbitkan tanpa persetujuan orang`,autoApprovedCount:`Perubahan artikel yang diterbitkan: {count}`,autoApprovedDescription:`Agen bekerja dalam mode Otomatis dan penerbitan ini hanya menambah atau mengedit artikel. Anda dapat mengembalikannya dari Snapshot.`,autoApprovedDescriptionCount:`Agen bekerja dalam mode Otomatis dan penerbitan ini hanya menambah atau mengedit artikel (total {count}). Anda dapat mengembalikannya dari Snapshot.`,requestedByAgent:`Diminta oleh agen`,requestedByAgentHint:`Agen meminta peningkatan akses ini dan seseorang memberikannya di Persetujuan.`,recent:`Aktivitas terbaru`,recentEmpty:`Belum ada aktivitas agen`,recentEmptyDescription:`Hubungkan agen dan panggilan alatnya muncul di sini.`},account:{description:`Profil Anda, cara Anda masuk, dan siapa lagi yang dapat masuk ke Studio ini.`,sections:{profile:`Profil`,password:`Kata sandi`,sessions:`Sesi aktif`,notifications:`Notifikasi`,access:`Akses Studio`,server:`Server ini`},notifications:{description:`Lonceng di bilah atas mencantumkan peningkatan akses yang akan segera berakhir dan agen yang memintanya. Studio juga dapat memberi tahu Anda saat berada di tab latar belakang.`,switch:`Beri tahu saya di browser ini saat peningkatan akses akan berakhir atau agen memintanya`,switchHint:`Hanya selama Studio terbuka di sebuah tab. Setiap pemberitahuan muncul sekali.`,permission:`Izin browser`,permissions:{granted:`Diizinkan`,default:`Belum ditanyakan`,denied:`Diblokir`},permissionHints:{granted:`Browser ini mengizinkan Studio menampilkan notifikasi.`,default:`Browser Anda bertanya saat Anda mengaktifkan notifikasi.`,denied:`Diubah di browser Anda, bukan di Studio.`},deniedTitle:`Notifikasi diblokir untuk Studio`,denied:`Untuk mengaktifkannya, izinkan notifikasi untuk situs ini di pengaturan situs browser Anda (ikon di sebelah alamat), lalu muat ulang Studio.`,unsupported:`Browser ini tidak dapat menampilkan notifikasi. Lonceng di bilah atas tetap mencantumkan semuanya.`,enabled:`Notifikasi browser aktif`,test:`Kirim notifikasi uji`,testTitle:`Notifikasi aktif`,testBody:`Beginilah cara Studio memberi tahu Anda saat peningkatan akses akan berakhir atau agen memintanya.`},profile:{description:`Cara Anda tampil di Studio dan di log aktivitas setiap situs.`,name:`Nama`,nameHint:`Ditampilkan di samping perubahan dan persetujuan yang Anda buat.`,email:`Email`,emailHint:`Anda masuk dengan alamat ini. Alamat ini tidak dapat diubah di sini.`,memberSince:`Anggota sejak {date}`,actorId:`ID pelaku`,actorIdHint:`Cara aktivitas dan snapshot mengidentifikasi Anda.`,role:`Peran`,roleHint:`Apa yang dapat Anda lakukan di sini. Administrator atau Pemilik yang mengubahnya.`,saved:`Profil disimpan`,failed:`Profil Anda tidak dapat disimpan`,errors:{required:`Masukkan nama Anda`,tooLong:`Gunakan paling banyak {max} karakter`}},password:{description:`Gunakan frasa sandi panjang yang tidak Anda gunakan di tempat lain.`,current:`Kata sandi saat ini`,new:`Kata sandi baru`,newHint:`Minimal {min} karakter.`,confirmHint:`Ketik ulang kata sandi baru.`,confirm:`Konfirmasi kata sandi baru`,show:`Tampilkan kata sandi`,hide:`Sembunyikan kata sandi`,signOutOthers:`Keluar dari semua sesi lain`,signOutOthersHint:`Disarankan jika orang lain mungkin mengetahui kata sandi lama Anda.`,submit:`Ubah kata sandi`,changed:`Kata sandi diubah`,changedOthers:`Sesi Anda yang lain telah dikeluarkan.`,failed:`Kata sandi Anda tidak dapat diubah`,errors:{currentRequired:`Masukkan kata sandi Anda saat ini`,currentWrong:`Itu bukan kata sandi Anda saat ini`,newRequired:`Masukkan kata sandi baru`,tooShort:`Gunakan minimal {min} karakter`,tooLong:`Gunakan paling banyak {max} karakter`,same:`Pilih kata sandi yang berbeda dari yang sekarang`,confirmRequired:`Ulangi kata sandi baru`,mismatch:`Kata sandi tidak cocok`}},sessions:{showAll:`Tampilkan semua {count}`,showFewer:`Tampilkan lebih sedikit`,description:`Browser dan klien yang masuk ke akun Anda. Keluarkan yang tidak Anda kenali. Kunci agen dicantumkan di bagian Agen.`,columns:{device:`Perangkat`,ip:`Alamat IP`,lastActive:`Terakhir aktif`,signedIn:`Masuk`},current:`Perangkat ini`,unknownDevice:`Perangkat tidak dikenal`,unknownIp:`Tidak diketahui`,deviceOn:`{browser} di {os}`,revoke:`Keluarkan`,revokeLabel:`Keluarkan {device}`,signOutOthers:`Keluarkan sesi lain`,onlyThis:`Ini satu-satunya sesi aktif Anda.`,count:`{count} aktif`,revokeTitle:`Keluarkan sesi ini?`,revokeDescription:`{device} harus masuk lagi.`,revokeOthersTitle:`Keluarkan semua sesi lain?`,revokeOthersDescription:`Setiap browser dan klien kecuali yang ini harus masuk lagi. Kunci agen tetap berfungsi.`,revoked:`Sesi dikeluarkan`,revokedOthers:`Sesi lain dikeluarkan`,staleTitle:`Masuk lagi untuk melihat sesi Anda`,staleDescription:`Demi keamanan Anda, daftar sesi memerlukan proses masuk dalam 24 jam terakhir.`,signInAgain:`Masuk lagi`},access:{description:`Siapa yang dapat membuat akun di Studio ini. Diatur di tempat server berjalan, bukan di sini.`,signUp:`Pendaftaran`,policies:{"first-user":`Hanya pemilik`,closed:`Ditutup`,open:`Terbuka untuk siapa saja`,unknown:`Tidak dilaporkan`},explanations:{"first-user":`Orang pertama yang mendaftar menjadi pemilik, dan pendaftaran langsung ditutup setelahnya. Orang lain memerlukan akun yang dibuatkan untuk mereka.`,closed:`Tidak ada yang dapat mendaftar. Akun dibuat oleh pemilik.`,open:`Siapa pun yang dapat menjangkau alamat ini dapat membuat akun, dan setiap akun memiliki akses penuh ke setiap situs.`,unknown:`Server ini tidak melaporkan bagaimana pendaftaran dikonfigurasi.`},openWarningTitle:`Siapa saja dapat mendaftar`,openWarning:`Setiap akun mendapat akses penuh ke setiap situs. Tutup pendaftaran sebelum Anda membagikan alamat ini.`,howToChange:`Di Cloudflare, setel CLOUDHAL_SIGNUP pada Worker admin ke open atau closed (jika tidak disetel berarti hanya pemilik). cloudhal studio di mesin Anda selalu hanya pemilik.`,serverDescription:`Apa yang dijalankan deployment Studio ini.`,features:{members:`Tim dan peran`,agentKeys:`Kunci agen`,mcp:`Server MCP`,activity:`Log aktivitas`,previewLinks:`Tautan pratinjau`,deployTransfer:`Deploy dan transfer`,approvals:`Persetujuan di Studio`,elevationRequests:`Permintaan peningkatan akses`},featureHints:{members:`Orang bergabung melalui tautan undangan dan bekerja dalam satu peran: Pemilik, Administrator, Editor, Penulis, atau Kontributor.`,agentKeys:`Agen dan tugas CI masuk dengan kunci yang Anda buat.`,mcp:`Agen terhubung di /mcp.`,activity:`Setiap panggilan alat dicatat per situs.`,previewLinks:`Tautan bertanda tangan yang menampilkan draf di situs yang di-deploy.`,deployTransfer:`cloudhal push dan pull dapat menjangkau server ini.`,approvals:`Permintaan penerbitan, pengembalian, dan penghapusan dari agen menunggu seseorang di sini.`,elevationRequests:`Agen dapat meminta mode yang lebih otonom untuk sementara; seseorang memberikannya di Persetujuan.`}}},siteSettings:{sections:{general:`Umum`,domains:`Domain`,collections:`Koleksi`,appearance:`Tampilan`,design:`Aturan desain`,previews:`Tautan pratinjau`},design:{description:`Merek dan aturan desain Anda dalam Markdown (DESIGN.md). Setiap agen dan chat Build membacanya sebelum membangun: untuk apa situs ini, warna dan tipografinya, tata letak dan komponen yang diutamakan, resep halaman, dan apa yang harus dihindari. Aturan ini membentuk pilihan, tidak pernah izin.`,label:`Aturan situs ini`,placeholder:`## Merek
2
+ Untuk apa situs ini, siapa pembacanya, gaya bahasanya.
3
+
4
+ ## Tata letak
5
+ …`,template:`Mulai dari judul-judulnya`,theme:`Aturan tema {theme}`,themeHint:`Agen membaca ini terlebih dahulu; aturan Anda yang berlaku jika berbeda.`,noTheme:`Tema {theme} tidak menyertakan aturan desain.`,warnings:`Perlu dilihat`,saved:`Aturan desain disimpan`,failed:`Aturan desain tidak dapat disimpan`,count:`{count} dari {max} karakter`,agentHint:`Agen dapat mengusulkan perubahan; usulan menunggu seseorang di Persetujuan.`},appearance:{description:`Warna, tipografi, dan bentuk yang dapat Anda ubah di tema {theme}.`,none:`Tema {theme} tidak memiliki pengaturan desain yang dapat diubah.`,publishHint:`Perubahan yang disimpan tampil di situs setelah penerbitan berikutnya.`,saved:`Tampilan disimpan`,failed:`Tampilan tidak dapat disimpan`},collections:{description:`Tempat entri setiap koleksi berada di situs. Mengubah awalan memindahkan alamat setiap entri dalam koleksi itu; alamat lama tetap berfungsi melalui pengalihan permanen. Biarkan kolom kosong untuk bawaan, yaitu nama koleksi itu sendiri. Alamat baru tayang pada publikasi berikutnya.`,preview:`Entri berada di alamat seperti {url}`,previewMoved:`Entri akan berada di alamat seperti {url}. Alamat lama {old} dialihkan ke sana.`,exampleSlug:`artikel-saya`,empty:`Belum ada koleksi`,emptyDescription:`Koleksi muncul di sini setelah situs memiliki artikel atau entri lain.`,saved:`Koleksi disimpan`,failed:`Tidak dapat menyimpan koleksi`,errors:{slash:`Mulai dengan garis miring, seperti /blog`,trailingSlash:`Hapus garis miring di akhir`,invalid:`Gunakan huruf kecil, angka, dan tanda hubung di antara garis miring, seperti /blog atau /docs/guides`}},conflictTitle:`Situs ini diubah di tempat lain`,conflictDescription:`Seseorang atau agen menyimpan situs ini setelah Anda membukanya. Muat versi terbaru, periksa perubahan Anda, lalu simpan lagi.`,loadLatest:`Muat terbaru`,general:{description:`Hal-hal dasar yang dilihat agen dan tema untuk situs ini.`,name:`Nama situs`,nameHint:`Ditampilkan di Studio dan tersedia bagi tema.`,slug:`Slug`,slugHint:`Mengidentifikasi situs di CLI dan API. Tidak dapat diubah.`,siteId:`ID situs`,defaultLocale:`Bahasa bawaan`,defaultLocaleHint:`Digunakan untuk halaman dan artikel baru yang tidak menyebutkan bahasa.`,locales:`Bahasa`,localesHint:`Bahasa yang digunakan situs ini untuk menerbitkan.`,saved:`Pengaturan disimpan`,failed:`Pengaturan tidak dapat disimpan`,errors:{required:`Beri nama situs`,tooLong:`Gunakan paling banyak {max} karakter`}},domains:{description:`Nama host yang menyajikan situs ini. Domain utama digunakan untuk tautan pratinjau.`,dnsHint:`Menambahkan domain di sini mencatatnya pada situs. Arahkan DNS-nya ke deployment Anda secara terpisah.`,columns:{hostname:`Nama host`,role:`Peran`},primary:`Utama`,alias:`Alias`,add:`Tambah domain`,hostname:`Nama host`,placeholder:`www.example.com`,makePrimary:`Jadikan utama`,remove:`Hapus domain`,visit:`Kunjungi`,empty:`Belum ada domain`,emptyDescription:`Tambahkan nama host yang digunakan pengunjung. Sampai saat itu, tautan pratinjau berupa token tanpa URL.`,added:`Domain ditambahkan`,addedDescription:`{hostname} kini menyajikan situs ini.`,addedPrimaryDescription:`{hostname} adalah domain utama.`,removed:`Domain dihapus`,primaryChanged:`Domain utama diubah`,primaryChangedDescription:`{hostname} kini menjadi domain utama.`,removeTitle:`Hapus {hostname}?`,removeDescription:`Situs tidak lagi mencantumkan nama host ini. DNS-nya tidak diubah.`,removePrimaryDetail:`{next} menjadi domain utama.`,removeLastDetail:`Situs tidak akan memiliki domain, jadi tautan pratinjau tidak akan menyertakan URL.`,failed:`Domain tidak dapat diperbarui`,errors:{required:`Masukkan nama host`,invalid:`Gunakan nama host seperti blog.example.com: huruf, angka, dan tanda hubung, tanpa port`,tooLong:`Nama host paling banyak 253 karakter`,duplicate:`Situs ini sudah memiliki domain tersebut`}},previews:{description:`Tautan bertanda tangan yang memungkinkan orang tanpa akun Studio melihat draf atau snapshot sebelumnya di situs yang di-deploy.`,target:`Tampilkan`,targets:{live:`Draf saat ini`,snapshot:`Sebuah snapshot`},targetHints:{live:`Semua yang disimpan di Studio, diterbitkan atau belum.`,snapshot:`Persis seperti tampilan situs pada snapshot itu.`},snapshot:`Snapshot`,snapshotPlaceholder:`Pilih snapshot`,noSnapshots:`Situs ini belum memiliki snapshot.`,snapshotRequired:`Pilih snapshot`,live:`live`,path:`Halaman`,pathHint:`Biarkan kosong untuk halaman beranda.`,pathPlaceholder:`blog/hello`,pathInvalid:`Gunakan path seperti /blog/hello, bukan URL lengkap`,ttl:`Kedaluwarsa setelah`,ttls:{"1h":`1 jam`,"1d":`1 hari`,"7d":`7 hari`},create:`Buat tautan`,created:`Tautan pratinjau dibuat`,result:`Tautan pratinjau`,expires:`Kedaluwarsa {when}`,opens:`Membuka {path}`,showing:{live:`Draf`,snapshot:`Snapshot`},openLink:`Buka tautan`,token:`Token`,noDomainTitle:`Situs ini tidak memiliki domain, jadi tidak ada URL lengkap`,noDomainDescription:`Tambahkan domain di atas, atau tambahkan ?cloudhal-preview= dan token ini ke alamat situs yang di-deploy.`,revokeHint:`Tautan tidak dapat dicabut satu per satu; tautan berhenti berfungsi saat kedaluwarsa. Mengganti secret pratinjau mengakhiri semua tautan sekaligus.`,notEnabledTitle:`Tautan pratinjau tidak diaktifkan di server ini`,notEnabledDescription:`Setel secret CLOUDHAL_PREVIEW_SECRET pada Worker admin untuk menandatangani tautan. cloudhal studio di mesin Anda menampilkan draf di pratinjau editor sebagai gantinya.`,failed:`Tautan tidak dapat dibuat`}},skills:{description:`Panduan yang dibaca agen melalui MCP. Panggilan yang dilakukan dengan skill hanya dapat menggunakan cakupan yang dideklarasikannya, dan alat yang dicantumkannya selalu menunggu seseorang.`,search:`Cari skill`,columns:{skill:`Skill`,scopes:`Cakupan`,approval:`Perlu persetujuan`,references:`Referensi`},none:`Tidak ada`,referenceCount:[[2,`count`,{other:[[4],` file`]}]],empty:`Tidak ada skill yang dimuat`,emptyDescription:`Tambahkan folder berisi SKILL.md di bawah skills/ dalam proyek Anda, lalu mulai ulang Studio.`,noMatches:`Tidak ada skill yang cocok dengan “{query}”`,notEnabledTitle:`Server ini tidak menjalankan MCP`,notEnabledDescription:`Skill sampai ke agen melalui MCP. Jalankan Studio dengan cloudhal studio, atau deploy Worker admin, untuk menyajikannya.`,view:`Tampilkan detail`,detail:{scopes:`Cakupan`,scopesHint:`Panggilan dengan skill ini dapat menggunakan paling banyak cakupan ini, dan tidak pernah lebih dari yang dimiliki kunci.`,approval:`Selalu disetujui oleh seseorang`,approvalHint:`Dengan skill ini, alat-alat ini berhenti menunggu manusia, apa pun yang diizinkan kunci.`,noApproval:`Tidak ada persetujuan tambahan selain alat yang selalu memerlukannya.`,requires:`Memerlukan`,references:`File referensi`,noReferences:`Tidak ada file referensi.`,resource:`Resource MCP`,call:`Panggil alat dengan skill ini`},how:{title:`Cara agen menggunakan skill`,steps:{read:`Agen mencantumkan resource skill:// dan membaca SKILL.md yang sesuai dengan tugasnya.`,declare:`Setiap panggilan alat menyebutkan skill di metadata permintaannya:`,narrow:`Kebijakan membatasi panggilan itu pada cakupan skill, dan tidak pernah melampaui cakupan kunci itu sendiri.`,approve:`Alat yang dicantumkan skill untuk persetujuan berhenti sampai seseorang menyetujuinya.`},example:`Panggilan alat dengan skill`},add:{title:`Tambahkan milik Anda sendiri`,description:`Studio memuat skill dari folder skills/ proyek Anda. Tanpa folder itu, Studio menyajikan set resmi.`}},notifications:{title:`Notifikasi`,bellCount:`Notifikasi ({count})`,empty:`Tidak ada yang tertinggal`,emptyDescription:`Saat peningkatan akses akan berakhir atau agen memintanya, notifikasi muncul di sini.`,settings:`Pengaturan notifikasi`,openAgents:`Buka Agen`,openTeam:`Buka Tim`,memberJoined:{title:`{name} bergabung`,body:`menerima undangan Anda.`,toast:`Mereka menerima undangan Anda dan kini bekerja sebagai {role}.`},roleChanged:{title:`Peran Anda kini {role}`,body:`{name} mengubahnya. Apa yang dapat Anda dan agen Anda lakukan ikut berubah.`},ending:{title:`Peningkatan akses segera berakhir`,sentence:`Mode {mode} milik {name} berakhir dalam {left} ({time}), lalu kembali ke {from}.`},request:{title:`{agent} meminta {mode} · {duration}`,reason:`“{reason}”`,review:`Tinjau`},comments:{pending:{title:[[2,`count`,{other:[[4],` komentar menunggu moderasi`]}]],body:`Yang terlama sudah menunggu {age}.`,bodyNew:`Tidak ada yang melihatnya sampai seseorang menyetujuinya.`},reported:{title:[[2,`count`,{other:[[4],` komentar dilaporkan`]}]],body:`Pembaca menandainya. Laporan tidak pernah menyembunyikan apa pun dengan sendirinya.`},paused:{title:`Komentar dijeda untuk hari ini`,body:`Batas harian ({cap}) telah tercapai. Komentar baru ditolak sampai tengah malam UTC.`},purgeWaiting:{title:`Komentar yang disembunyikan mungkin masih ada di halaman live`,body:`{count} halaman menunggu cache diperbarui.`,purge:`Bersihkan cache situs`,purged:`Cache situs telah dibersihkan`,failed:`Cache tidak dapat dibersihkan`},approval:{title:`{agent} bertanya tentang komentar`,tools:{moderate:`Agen meminta untuk menyetujui atau memulihkan komentar. Komentar menjadi publik setelah Anda menyetujuinya.`,reply:`Agen membuat draf balasan yang akan diterbitkan atas nama Anda.`,thread:`Agen meminta untuk membuka kembali komentar pada sebuah artikel.`,label:`Agen meminta untuk memberi label pada komentar.`}},review:`Tinjau`,open:`Buka komentar`,settings:`Pengaturan komentar`},toast:{endingTitle:`Mode {mode} milik {name} berakhir dalam {left}`,endingBody:`Pada {time} kembali ke {from}. Perpanjang jika agen masih membutuhkannya.`},extend:{button:`Perpanjang {duration}`,group:`Perpanjang peningkatan akses`,more:`Durasi lain`,fromNow:`Dihitung dari sekarang`,presets:{30:`30 mnt`,60:`1 jam`,240:`4 jam`},presetUntil:`{duration} · hingga {time}`,done:`Peningkatan akses diperpanjang`,failed:`Peningkatan akses tidak dapat diperpanjang`,gone:`Peningkatan akses ini sudah berakhir`,goneDescription:`Tidak ada yang diperpanjang. Untuk meningkatkan akses kunci lagi, gunakan Tingkatkan sementara di halaman Agen.`}},approvals:{refresh:`Segarkan persetujuan`,pending:`Menunggu Anda`,pendingDescription:`Menyetujui mengizinkan agen melakukan panggilan persis itu satu kali, atau memberikan peningkatan akses yang dimintanya. Menolak akan memberi tahu agen.`,history:`Riwayat`,noPending:`Tidak ada yang menunggu Anda`,noPendingDescription:`Saat agen meminta untuk menerbitkan, mengembalikan, atau menghapus, meminta mode yang lebih otonom untuk sementara, atau bekerja dalam mode Manual dan ingin mengubah sesuatu, permintaannya muncul di sini dan agen menunggu keputusan Anda.`,elevation:{badge:`Permintaan peningkatan akses`,sentence:`{agent} meminta untuk bekerja dalam mode {mode} selama {duration}.`,history:`Peningkatan ke {mode} · {duration}`,historyShortened:`Peningkatan ke {mode} · {duration} (diminta {asked})`,reasonLabel:`Alasan agen`,noReason:`Agen tidak memberikan alasan.`,untilIfNow:`Jika Anda menyetujui sekarang: hingga {time}`,hint:`Menyetujui memberikannya pada kunci agen selama waktu yang Anda pilih, lalu kunci kembali ke modenya sendiri secara otomatis. Tidak ada yang berubah di situs.`,granted:`Diberikan`,cannotTake:`Kunci {agent} kini sudah bekerja dalam mode {own} dengan sendirinya, jadi tidak ada yang perlu diberikan. Tolak permintaan agar agen mengetahuinya.`,title:`Berikan mode {mode} kepada {agent}?`,description:`{agent} memintanya. Anda dapat mempersingkat waktunya, tetapi tidak memperpanjangnya.`,mode:`Mode`,modeFixed:`Sesuai permintaan. Untuk memberikan mode lain, tolak permintaan ini dan tingkatkan akses kunci dari Agen.`,presetHours:`{count} jam`,presetMinutes:`{count} mnt`,requested:`Diminta: {duration}. Lebih singkat boleh, lebih lama tidak memungkinkan.`,summary:`{agent} bekerja dalam mode {mode} hingga {time}, lalu kembali ke {from}.`,summaryNoOwn:`{agent} bekerja dalam mode {mode} hingga {time}, lalu kembali ke modenya sendiri.`,nextCall:`Berlaku pada panggilan agen berikutnya. Anda dapat mengakhirinya lebih awal dari Agen.`,submit:`Berikan peningkatan akses`,failed:`Peningkatan akses tidak dapat diberikan`,stillPending:`Permintaan tetap ada di daftar selama masih tertunda. Anda dapat menolaknya, atau memberikannya setelah kunci dapat menerimanya.`,done:`Peningkatan akses diberikan`,doneDescription:`{agent} bekerja dalam mode {mode} hingga {time}, lalu kembali ke {from}.`,doneDescriptionNoOwn:`{agent} bekerja dalam mode {mode} hingga {time}.`,asksFor:`Meminta {mode}`,asksForTooltip:`{agent} meminta untuk bekerja dalam mode {mode} selama {duration}. Buka Persetujuan untuk memutuskan.`},manualPrompt:`{agent} bekerja dalam mode Manual, jadi perubahan ini menunggu Anda: {tool}.`,manualPromptShort:`Mode Manual: {tool}`,bodyChanges:`Apa yang diubah persetujuan di “{title}”`,manualHint:`Mode Manual bertanya sebelum setiap perubahan. Menyetujui mengizinkan agen melakukan satu suntingan ini dengan argumen persis seperti ini; suntingan disimpan dalam snapshot seperti yang lain.`,autoHeldBack:`Mode Otomatis menerbitkan pembaruan artikel kecil dengan sendirinya. Yang ini menunggu Anda karena {reason}.`,autoCheck:{"removes-content":`menghapus konten`,nothing:`tidak ada yang baru untuk diterbitkan`,structure:`mengubah halaman, menu, pengaturan situs, taksonomi, atau pengalihan`,"too-many":`membawa {changes} perubahan sedangkan mode Otomatis berhenti di {limit}`,media:`menambah atau mengubah media yang bukan bagian dari perubahan artikel`,"outside-window":`akan berjalan setelah otonomi agen berakhir`,correction:`menambahkan koreksi pada artikel yang diterbitkan`},noHistory:`Belum ada keputusan`,noHistoryDescription:`Permintaan yang disetujui, ditolak, digunakan, dan kedaluwarsa dicantumkan di sini.`,requested:`Diminta`,expires:`Kedaluwarsa`,expiresSoon:`Segera kedaluwarsa`,arguments:`Argumen`,noArguments:`Panggilan ini tidak memiliki argumen.`,approve:`Setujui`,deny:`Tolak`,withdraw:`Tarik`,withdrawn:`Permintaan ditarik`,decide:{own_request:`Anda tidak dapat menyetujui permintaan Anda sendiri. Orang yang perannya mengizinkan yang memutuskan.`,not_key_creator:`Hanya orang yang membuat kunci agen ini yang dapat memberinya otonomi lebih.`,mode_above_role:`Peran Anda mengizinkan kunci agen hingga mode {mode}, jadi Anda tidak dapat memberikan ini.`,missing_scope:`Peran Anda tidak dapat melakukan perubahan ini, jadi Anda tidak dapat menyetujuinya.`,not_own:`Ini mencakup pekerjaan yang bukan milik Anda. Editor ke atas yang memutuskan.`},role:{waiting:`Menunggu Editor`,yours:`Anda yang meminta ini. Anda dapat menariknya.`,prompt:`{name} ingin menerbitkan situs.`,foreign:`Mencakup {count} artikel terbitan milik orang lain, sedangkan peran mereka hanya dapat menerbitkan pekerjaan sendiri.`,structure:`Mengubah halaman, kategori, tag, atau pengalihan, yang tidak dapat diterbitkan sendiri oleh peran mereka.`,generic:`Peran mereka tidak dapat menerbitkan kumpulan perubahan ini sendiri.`,published:`Disetujui dan diterbitkan`,publishedDescription:`Permintaan {name} kini sudah live.`,stateChanged:`Situs berubah setelah permintaan ini`,stateChangedDescription:`Permintaan ditutup karena tidak lagi sesuai dengan situs. Terbitkan kondisi saat ini sendiri.`},approved:`Permintaan disetujui`,approvedDescription:`{agent} kini dapat melakukan panggilan ini satu kali.`,denied:`Permintaan ditolak`,deniedDescription:`{agent} akan diberi tahu bahwa permintaannya ditolak.`,failed:`Keputusan Anda tidak dapat dicatat`,noLongerPending:`Permintaan ini tidak lagi tertunda`,noLongerPendingDescription:`Permintaan sudah diputuskan, digunakan, atau kedaluwarsa sementara itu. Daftar telah disegarkan.`,statuses:{pending:`Tertunda`,approved:`Disetujui`,denied:`Ditolak`,consumed:`Digunakan`,expired:`Kedaluwarsa`},columns:{request:`Permintaan`,status:`Status`,agent:`Diminta oleh`,requested:`Diminta`,decided:`Diputuskan`},decidedBy:`oleh {actor}`,decidedByYou:`oleh Anda`,notEnabledTitle:`Server ini tidak menyimpan persetujuan`,notEnabledDescription:`Permintaan penerbitan dan pengembalian dari agen dikonfirmasi di klien MCP mereka di sini. Persetujuan di Studio memerlukan cloudhal studio atau Worker admin.`,confirm:{title:`Setujui “{tool}”?`,requestedBy:`Diminta oleh {agent}`,singleUseTitle:`Sekali pakai, untuk situs sebagaimana adanya sekarang`,singleUse:`{agent} boleh melakukan panggilan persis ini satu kali. Jika ada yang berubah di situs sebelum agen memanggil lagi, persetujuan batal dan agen harus meminta lagi.`,changes:`Perkiraan perubahan`,changesHint:`Versi live dibandingkan dengan snapshot terbaru. Suntingan yang disimpan setelah snapshot itu juga diterbitkan, tetapi tidak dihitung di sini.`,viewChanges:`Lihat perubahan`,first:`Belum ada yang live: penerbitan ini membuat situs menjadi publik untuk pertama kalinya.`,upToDate:`Snapshot terbaru sudah live, jadi hanya suntingan yang disimpan sejak saat itu yang akan diterbitkan.`,rollbackTarget:`Situs live kembali ke`,deleteTarget:`Menghapus`,submit:`Setujui`},banner:{title:[[2,`count`,{"=1":[`Sebuah permintaan agen menunggu persetujuan Anda`],other:[[4],` permintaan agen menunggu persetujuan Anda`]}]],description:`Agen tidak dapat menerbitkan, mengembalikan, atau menghapus, dan agen dalam mode Manual tidak dapat mengubah apa pun, sampai seseorang memutuskan.`,action:`Tinjau permintaan`}},tools:{list_assets:`Daftar media`,get_asset:`Ambil file media`,upload_asset:`Unggah media`,fetch_asset_url:`Tambah media dari URL`,update_asset:`Perbarui detail media`,retire_asset:`Pensiunkan media`,restore_asset:`Pulihkan media`,delete_asset:`Hapus media`,assetUpload:`Unggah file`,assetUpdate:`Perbarui detail file`,assetRetire:`Pensiunkan file`,assetRestore:`Pulihkan file`,assetDelete:`Hapus file`,assetPurge:`Turunkan file`,assetLiftPurge:`Izinkan file lagi`,list_sites:`Daftar situs`,get_site:`Ambil situs`,list_pages:`Daftar halaman`,get_page:`Ambil halaman`,create_page:`Buat halaman`,update_page:`Perbarui halaman`,delete_page:`Hapus halaman`,list_entries:`Daftar artikel`,get_entry:`Ambil artikel`,create_entry:`Buat artikel`,update_entry:`Perbarui artikel`,add_correction:`Tambah koreksi`,delete_entry:`Hapus artikel`,get_theme_settings:`Baca pengaturan desain`,set_theme_settings:`Ubah pengaturan desain`,list_block_types:`Daftar tipe blok`,get_body:`Baca isi`,edit_body:`Edit isi`,diff_node:`Bandingkan versi`,create_snapshot:`Buat snapshot`,list_snapshots:`Daftar snapshot`,diff_snapshots:`Bandingkan snapshot`,preview_page:`Pratinjau halaman`,publish:`Terbitkan situs`,rollback:`Kembalikan situs`,list_menus:`Daftar menu`,get_menu:`Ambil menu`,update_menu:`Perbarui menu`,set_menu:`Ganti menu`,delete_menu:`Hapus menu`,request_elevation:`Minta peningkatan akses`,list_comments:`Daftar komentar`,get_comment_thread:`Baca utas komentar`,comments_summary:`Rangkum komentar`,label_comments:`Beri label komentar`,moderate_comments:`Moderasi komentar`,draft_comment_reply:`Draf balasan komentar`,set_comment_thread:`Ubah utas komentar`,list_schedule:`Daftar jadwal`,get_schedule:`Ambil item terjadwal`,list_releases:`Daftar rilis`,get_release:`Ambil rilis`,propose_release:`Usulkan rilis`,schedule_release:`Jadwalkan rilis`,reschedule:`Pindahkan rilis`,cancel_schedule:`Batalkan rilis`,set_embargo:`Setel embargo`,lift_embargo:`Cabut embargo`,schedule_unpublish:`Jadwalkan kedaluwarsa`,list_automations:`Daftar otomatisasi`,list_runs:`Daftar eksekusi`,get_run:`Ambil eksekusi`,begin_run:`Mulai eksekusi`,end_run:`Akhiri eksekusi`,pause_automation:`Jeda otomatisasi`,get_mode:`Ambil mode`,agentKeyMode:`Ubah mode kunci agen`,agentKeyElevate:`Tingkatkan akses kunci agen`,agentKeyElevationEnd:`Akhiri peningkatan akses`,agentKeyNarrow:`Persempit kunci agen`,agentKeyRevoke:`Cabut kunci agen`,memberInvite:`Undang anggota`,memberInviteRevoke:`Cabut undangan`,memberInviteFailed:`Email undangan gagal`,memberInviteAccept:`Terima undangan`,memberRole:`Ubah peran anggota`,memberRemove:`Hapus anggota`,memberTransferOwnership:`Alihkan kepemilikan`,memberPasswordReset:`Buat tautan reset kata sandi`,memberPasswordResetComplete:`Reset kata sandi`},preview:{title:`Pratinjau`,frameTitle:`Pratinjau {name}`,device:`Lebar perangkat`,desktop:`Desktop`,tablet:`Tablet`,mobile:`Seluler`,reload:`Muat ulang pratinjau`,openInNewTab:`Buka pratinjau di tab baru`,loading:`Memuat pratinjau…`,unsaved:`Perubahan belum disimpan`,unsavedHint:`Pratinjau menampilkan versi terakhir yang disimpan. Simpan untuk memperbaruinya.`,edit:`Edit`,show:`Tampilkan pratinjau`,hide:`Sembunyikan pratinjau`,toggleHint:`Tampilkan versi terakhir yang disimpan di samping formulir`,toggleHintLive:`Tampilkan halaman dengan perubahan Anda yang belum disimpan di samping formulir`,openSaved:`Buka versi tersimpan di tab baru`,failed:`Pratinjau tidak tersedia`},proposals:{title:`Saran`,count:`{count} terbuka`,from:`{name} menyarankan`,outOfDate:`Usang`,outOfDateHint:`Teks telah berubah sejak saran ini. Tolak, atau minta saran baru.`,accept:`Terima`,reject:`Tolak`,saveFirst:`Simpan atau buang perubahan Anda terlebih dahulu.`,accepted:`Saran diterima`,rejected:`Saran ditolak`,failed:`Keputusan atas saran tidak dapat dibuat`,steps:`Perubahan yang akan diterima`,acceptSome:`Terima {count} dari {total}`,chooseRequired:`Pilih setidaknya satu perubahan.`,step:{replace:`Tulis ulang “{before}”`,replaceText:`Ubah “{before}” menjadi “{after}”`,insert:`Tambahkan “{after}”`,move:`Pindahkan “{before}”`,delete:`Hapus “{before}”`},aBlock:`sebuah blok`},coverage:{scope:`Situs mana`,thisSite:`Situs ini`,allSites:`Semua situs dalam proyek`,siteLanguage:`{site} · {language}`,search:`Cari berdasarkan judul`,filter:`Tampilkan`,needsWork:`Perlu dikerjakan`,all:`Semua`,item:`Halaman atau artikel`,page:`Halaman`,article:`Artikel`,missing:`Belum ada`,toReview:`Perlu ditinjau`,oneLanguage:`Situs ini punya satu bahasa`,oneLanguageDescription:`Tambahkan bahasa di pengaturan situs; terjemahan muncul di sini.`,openSettings:`Buka pengaturan bahasa`,allDone:`Tidak ada yang perlu dikerjakan`,empty:`Belum ada apa-apa`,emptyDescription:`Setiap bahasa punya versi terbaru yang sudah ditinjau.`},languages:{title:`Bahasa`,description:`Bahasa yang dipakai situs ini untuk menerbitkan dan cara pembaca menjangkaunya. Halaman atau artikel dalam bahasa lain adalah terjemahan dari versi aslinya.`,language:`Bahasa`,tag:`Tag`,default:`Bawaan`,remove:`Hapus {language}`,add:`Tambahkan bahasa`,addHint:`Pilih dari daftar, atau ketik tag BCP 47 apa pun seperti gsw atau pt-AO.`,addPlaceholder:`Cari bahasa`,useTag:`Gunakan tag {tag}`,noMatch:`Tidak ada bahasa yang cocok. Ketik tag BCP 47 untuk menggunakannya.`,clear:`Hapus`,showOptions:`Tampilkan bahasa`,routing:`Alamat`,routingHint:`Letak setiap bahasa. Bahasa lain selalu memakai awalan.`,routingOptions:{prefixExceptDefault:`Bahasa bawaan di akar, bahasa lain di bawah awalannya`,prefixAll:`Setiap bahasa di bawah awalannya`},fallback:`Terjemahan yang belum ada`,fallbackHint:`Apa yang dilihat pembaca di alamat yang belum punya versi dalam bahasa itu.`,fallbackOptions:{none:`Tidak ditemukan`,defaultWithNotice:`Versi asli, dengan pemberitahuan, tidak diindeks mesin pencari`},review:`Tinjau sebelum terbit`,reviewHint:`Terjemahan mesinnya baru tayang setelah ditinjau seseorang.`,reviewOptions:{pages:`Halaman`,posts:`Artikel`},label:`Pemberitahuan terjemahan mesin`,labelHint:`Kapan pembaca melihat bahwa halaman diterjemahkan otomatis.`,labelOptions:{unreviewed:`Sampai seseorang meninjau terjemahannya`,always:`Selalu, juga setelah ditinjau`},saved:`Bahasa disimpan`,failed:`Bahasa tidak dapat disimpan`},glossary:{title:`Glosarium`,description:`Istilah yang dipertahankan agen saat menerjemahkan: nama yang tidak pernah diterjemahkan, dan kata yang disetujui di setiap bahasa.`,empty:`Belum ada istilah`,emptyDescription:`Tambahkan nama merek dan produk, serta kata dengan terjemahan tetap.`,oneLanguage:`Tambahkan bahasa kedua terlebih dahulu: glosarium menyimpan kata untuk bahasa lain di situs.`,term:`Istilah`,neverTranslate:`Jangan pernah terjemahkan`,translationIn:`Dalam {language}`,add:`Tambah istilah`,remove:`Hapus {term}`,saved:`Glosarium disimpan`,failed:`Glosarium tidak dapat disimpan`},translations:{title:`Terjemahan`,none:`Hanya dalam {language}`,noneDescription:`Agen menerjemahkan halaman dan artikel ke bahasa lain di situs; setiap versi muncul di sini.`,current:`Versi ini`,method:{original:`Asli`,human:`Diterjemahkan oleh orang`,machine:`Terjemahan mesin`,machineReviewed:`Terjemahan mesin, sudah ditinjau`},stale:`Kedaluwarsa`,sourceMissing:`Versi asli dihapus`,review:`Tandai sudah ditinjau`,reviewTitle:`Tandai terjemahan ini sudah ditinjau?`,reviewDescription:`Anda mengonfirmasi bahwa seseorang telah membaca terjemahan mesin ini dengan membandingkannya ke versi asli. Pembaca tidak lagi melihat pemberitahuan terjemahan mesin, kecuali situs selalu menampilkannya.`,reviewSaveFirst:`Simpan perubahan Anda sebelum meninjau.`},translationList:{column:`Bahasa`,filter:`Bahasa`,grouped:`Semua bahasa (dikelompokkan)`,state:[[0,`language`],`: `,[3,`state`,{published:[`terbit`],draft:[`draf`],outdated:[`usang`],review:[`perlu ditinjau`],missing:[`belum ada`],other:[`belum ada`]}]],summary:[[1,`count`],`/`,[1,`total`]],summaryLabel:[[1,`count`],` dari `,[2,`total`,{other:[[4],` bahasa`]}]],writeByHand:`Tulis sendiri`},diff:{title:`Perubahan di {name}`,against:`Bandingkan dengan`,previous:`Snapshot sebelumnya`,live:`Versi live`,descriptions:{previous:`Apa yang berubah sejak snapshot sebelumnya.`,live:`Apa yang akan berubah jika snapshot ini menggantikan versi live.`},added:`Ditambahkan`,changed:`Diubah`,removed:`Dihapus`,counts:{added:`{count} ditambahkan`,changed:`{count} diubah`,removed:`{count} dihapus`},none:`Tidak ada perbedaan`,noneDescription:`Kedua snapshot berisi konten yang persis sama.`,nothingToCompare:`Tidak ada pembanding`,nothingToCompareDescription:`Ini adalah snapshot pertama situs dan belum ada versi lain yang live, jadi belum ada pembandingnya.`,kinds:{site:`Pengaturan situs`,page:`Halaman`,contentEntry:`Artikel`,taxonomy:`Taksonomi`,term:`Istilah`,redirect:`Pengalihan`,menu:`Menu`,asset:`Media`,glossary:`Glosarium`},gone:`Sudah tidak ada`,revs:`rev {from} → {to}`,rev:`rev {rev}`,columns:{item:`Item`,revision:`Revisi`},textChanges:{show:`Tampilkan perubahan`,hide:`Sembunyikan perubahan`,loading:`Memuat kedua versi…`,body:`Isi`,title:`Judul`,summary:`Ringkasan`,slug:`Slug`,path:`Path`,section:`Bagian {kind}`,sectionAdded:`Ditambahkan`,sectionRemoved:`Dihapus`,sectionChanged:`Diubah`,noTextChanges:`Hanya pengaturan yang berubah; teksnya sama.`,added:`Ditambahkan`,removed:`Dihapus`,edited:`Diedit`,unchanged:[[2,`count`,{other:[[4],` blok tidak berubah`]}]],wordsAdded:`+{count} kata`,wordsRemoved:`−{count} kata`,same:`Tidak ada perubahan teks`},assignments:{added:`+ {taxonomy} {name}`,removed:`− {taxonomy} {name}`,primary:`{taxonomy} utama → {name}`,none:`tidak ada`}},taxonomy:{newTerm:`{singular} baru`,search:`Cari {plural}`,columns:{name:`Nama`,usage:`Artikel`,lastUsed:`Terakhir digunakan`,index:`Mesin pencari`,visibility:`Visibilitas`},filters:{all:`Semua`,public:`Publik`,internal:`Internal`,proposed:`Diusulkan`,retired:`Dipensiunkan`},state:{proposed:`Diusulkan`,proposedHint:`Diusulkan oleh agen. Dapat ditetapkan, tetapi belum memiliki halaman publik sampai seseorang menyetujuinya.`,internal:`Internal`,internalHint:`Tanpa arsip, feed, atau entri sitemap, dan artikel tidak menampilkannya. Tema dan filter tetap dapat menggunakannya.`,retired:`Dipensiunkan`,mergedInto:`Digabungkan ke {name}`},visibility:{public:`Publik`,internal:`Internal`,none:`—`},defaults:{category:{singular:`Kategori`,plural:`Kategori`},tag:{singular:`Tag`,plural:`Tag`}},usage:{value:`{published} / {total}`,hint:`{published} diterbitkan dari {total} artikel. Membukanya di Artikel.`,none:`Tidak ada`},index:{indexed:`Terindeks`,indexedHint:`{count} artikel diterbitkan: arsip tercantum di hasil pencarian dan di sitemap.`,thin:`Tidak terindeks: {count} dari {min}`,thinHint:`Arsip dengan kurang dari {min} artikel diterbitkan disajikan dengan noindex, follow dan tidak dimasukkan ke sitemap.`,empty:`Kosong`,emptyHint:`Tidak ada artikel yang diterbitkan: arsip menjawab 404 sampai ada artikel yang dimasukkan ke sini.`,noindex:`noindex`,noindexHint:`Disembunyikan dari mesin pencari di pengaturan pencariannya.`,none:{internal:`Tanpa arsip`,proposed:`Belum publik`,retired:`Dipensiunkan`,archiveOff:`Arsip nonaktif`},noneHint:{internal:`Istilah internal tidak memiliki arsip publik.`,proposed:`Istilah yang diusulkan tidak memiliki arsip publik sampai seseorang menyetujuinya.`,retired:`Istilah yang dipensiunkan tidak memiliki arsip; tautan lama dialihkan atau menjawab 410 Gone.`,archiveOff:`Taksonomi ini tidak menerbitkan halaman arsip.`}},menu:{label:`Tindakan istilah`,edit:`Edit`,view:`Lihat`,rename:`Ganti slug`,merge:`Gabungkan ke…`,mergeExisting:`Gabungkan ke istilah yang sudah ada…`,move:`Pindahkan…`,makeInternal:`Jadikan internal`,makePublic:`Jadikan publik`,retire:`Pensiunkan`},review:{waiting:`Usulan yang menunggu tinjauan: {count}`,waitingDescription:`Agen mengusulkan {plural} ini. Setujui untuk memberinya halaman publik, gabungkan ke yang sudah ada, atau tolak.`,open:`Tinjau`,approve:`Setujui`,approved:`{name} disetujui`,failed:`Tidak dapat disetujui`,reject:`Tolak`,merge:`Gabungkan…`,rejectNamed:`Tolak {name}`,proposedBy:`Diusulkan oleh`},empty:{all:`Belum ada {plural}`,public:`Tidak ada {plural} publik`,internal:`Tidak ada {plural} internal`,proposed:`Tidak ada yang menunggu tinjauan`,retired:`Tidak ada {plural} yang dipensiunkan`,search:`Tidak ada yang cocok dengan pencarian Anda`,allDescription:`Buat yang pertama, atau biarkan agen mengusulkan tag saat menulis.`,filteredDescription:`Coba filter atau pencarian lain.`,noTaxonomies:`Belum ada kategori atau tag`,noTaxonomiesDescription:`Situs ini masih menyimpan tag sebagai teks biasa di setiap artikel. Pindahkan ke kategori dan tag; Anda melihat apa yang berubah sebelum ada yang ditulis.`},create:{title:`{singular} baru`,description:`Beri nama. Sinonim, pengantar, gambar, dan pengaturan pencarian dapat ditambahkan di editornya.`,descriptionTree:`Beri nama dan, jika termasuk dalam kategori lain, induknya. Sisanya dapat ditambahkan di editornya.`,name:`Nama ({locale})`,slugHint:`Alamat arsipnya. Mengikuti nama sampai Anda mengubahnya.`,parentHint:`Biarkan di tingkat teratas, atau masukkan ke bawah kategori lain.`,internal:`Internal`,internalHint:`Istilah internal tidak mendapat halaman publik; tema dan filter tetap dapat menggunakannya.`,similarTitle:`Ini tampak seperti istilah yang sudah ada`,similar:`Mirip: {names}. Gunakan yang itu jika artinya sama.`,submit:`Buat {singular}`,created:`{name} dibuat`},health:{title:`Kesehatan kosakata`,description:`Laporan yang sama yang dibaca agen sebelum memberi tag. Pertahankan satu halaman per topik agar pembaca dan mesin pencari menemukannya.`,issues:`{count} perlu ditinjau`,clean:`Tidak ada yang perlu dirapikan`,cleanDescription:`Saat ini tidak ada istilah yang hampir duplikat, sekali pakai, atau kosong.`,nearDuplicates:`Hampir duplikat ({count})`,nearDuplicatesHint:`Mungkin topik yang sama. Penggabungan mempertahankan yang lebih ramai dan mengalihkan yang lain.`,mergeInto:`{source} → {target}`,merge:`Gabungkan`,morePairs:`{count} pasangan lagi`,reasons:{similar:`Ejaannya hampir sama`,plural:`Bentuk tunggal dan jamak`,synonym:`Sinonim yang satu adalah nama yang lain`},proposed:`Menunggu tinjauan ({count})`,review:`Tinjau`,missingPrimary:`Artikel tanpa {singular} utama ({count})`,missingPrimaryHint:`Artikel tidak dapat ditinjau atau diterbitkan sampai salah satunya dipilih.`,unfiled:`Artikel tanpa {singular} ({count})`,unfiledHint:`Kelompokkan agar muncul di arsip dan di breadcrumb.`,noIntro:`Arsip terindeks tanpa pengantar ({count})`,noIntroHint:`pengantar singkat membantu pembaca dan mesin pencari`,singleUse:`Digunakan sekali ({count})`,unused:`Tidak ada di artikel mana pun ({count})`,unusedHint:`pensiunkan atau masukkan artikel ke dalamnya`,empty:`Kategori kosong ({count})`,emptyHint:`arsipnya menjawab 404 sampai ada artikel yang dimasukkan`,oversized:`Kategori sangat besar ({count})`,oversizedHint:`lebih dari separuh semua artikel; subkategori akan membantu`,more:[[1,`count`],` lagi`]},rules:{title:`Cara kerja {plural}`,description:`Aturan taksonomi ini. Agen melihat aturan yang sama.`,structure:`Struktur`,tree:`Pohon`,flat:`Daftar datar`,treeHint:`Istilah dapat berada di bawah induk, hingga lima tingkat.`,flatHint:`Istilah tidak memiliki induk.`,newTerms:`Istilah baru`,newTermsValue:{none:`Hanya orang`,propose:`Agen mengusulkan`,free:`Agen menambahkan`},newTermsHint:{none:`Hanya orang yang membuatnya; agen memilih dari yang sudah ada.`,propose:`Agen mengusulkan yang baru, yang mendapat halaman publik setelah seseorang menyetujuinya.`,free:`Agen boleh langsung menambahkan istilah aktif.`},perArticle:`Per artikel`,required:`Wajib · hingga {max}`,optional:`Opsional · hingga {max}`,requiredHint:`Artikel memerlukan satu, dengan satu yang utama, untuk ditinjau atau diterbitkan.`,optionalHint:`Artikel boleh tidak memilikinya.`,archive:`Arsip`,archiveHint:`Diindeks mulai dari {min} artikel diterbitkan; arsip yang lebih sedikit diberi noindex.`,archiveOff:`Tidak ada halaman arsip yang diterbitkan.`}},governance:{oneSnapshot:`Satu perubahan, satu snapshot. Live pada penerbitan berikutnya.`,conflict:`Istilah ini diubah di tempat lain sementara itu. Tutup dialog dan coba lagi pada versi terbaru.`,rename:{title:`Ganti slug {name}`,description:`Arsip pindah ke alamat baru. Alamat lama tetap berfungsi melalui pengalihan permanen, dan slug lama tetap dicadangkan.`,slug:`Slug baru`,slugHint:`Huruf kecil, angka, dan tanda hubung tunggal.`,reclaim:`Ambil kembali: bebaskan slug ini dari istilah sebelumnya dan hapus pengalihannya`,history:`Slug sebelumnya: {slugs}`,confirm:`Ganti nama`,errors:{required:`Masukkan slug.`,invalid:`Gunakan huruf kecil, angka, dan tanda hubung tunggal.`,tooLong:`Paling banyak 128 karakter.`,taken:`Istilah lain menggunakan slug ini.`,reserved:`Sebuah istilah pernah menggunakan slug ini dan alamat lamanya dialihkan. Ambil kembali di bawah untuk menggunakannya di sini.`}},merge:{title:`Gabungkan {name} ke…`,description:`Artikelnya pindah ke istilah yang Anda pilih, yang juga mengambil alih nama dan slug-nya, sehingga tautan lama dan sinonim tetap berfungsi.`,target:`Gabungkan ke`,targetHint:`Istilah aktif dari taksonomi yang sama.`,targetPlaceholder:`Cari istilah…`,confirm:`Gabungkan`},reviewMerge:{title:`Gabungkan usulan {name} ke…`,description:`Usulan dipensiunkan dan artikelnya pindah ke istilah yang sudah ada, yang mempertahankan namanya sebagai sinonim.`,confirm:`Gabungkan`},retire:{title:`Pensiunkan {name}`,description:`Istilah dihapus dari setiap artikel dan tidak dapat ditetapkan lagi. Arsipnya dapat dialihkan ke istilah lain.`,redirectTo:`Alihkan ke…`,redirectToHint:`Tanpa pengalihan, arsipnya menjawab 410 Gone, sehingga mesin pencari menghapusnya untuk selamanya.`,redirectToParentHint:`Tanpa pilihan, arsip dialihkan ke kategori induknya jika kategori itu publik.`,noRedirect:`Tanpa pengalihan`,redirectPlaceholder:`Cari istilah…`,confirm:`Pensiunkan`},move:{title:`Pindahkan {name}`,description:`Pilih induk barunya. Artikel dan alamat tetap seperti adanya; menu, breadcrumb, dan arsip induk berubah.`,parent:`Induk`,parentHint:`Hingga {max} tingkat. Kategori tidak dapat dipindahkan ke bawah dirinya sendiri atau ke bawah turunannya.`,parentPlaceholder:`Cari kategori…`,topLevel:`Tingkat teratas`,confirm:`Pindahkan`},visibility:{title:{internal:`Jadikan {name} internal`,public:`Jadikan {name} publik`},description:{internal:`Arsip, feed, dan entri sitemap-nya dihapus dan artikel tidak lagi menampilkannya. Tema dan filter tetap dapat menggunakannya.`,public:`Istilah mendapat arsip publik, feed, dan entri sitemap, dan artikel menampilkannya.`},confirm:{internal:`Jadikan internal`,public:`Jadikan publik`}},reject:{title:`Tolak usulan {name}`,description:`Usulan dipensiunkan dan dihapus dari artikel yang memilikinya. Agen melihat bahwa usulannya ditolak.`,confirm:`Tolak`},preview:{waiting:`Tentukan pilihan untuk melihat apa yang berubah.`,loading:`Menghitung apa yang berubah`,articles:`Artikel`,noArticles:`Tidak ada artikel yang memilikinya.`,articlesMove:`Artikel-artikel ini berubah dalam operasi yang sama. Satu perubahan dapat menyentuh hingga {limit} artikel.`,articlesLose:`Artikel-artikel ini kehilangannya dalam operasi yang sama. Satu perubahan dapat menyentuh hingga {limit} artikel.`,articlesKeep:`Artikel-artikel ini tetap memilikinya; tautannya mengikuti alamat baru.`,more:`dan {count} lainnya`,redirects:`Pengalihan`,noRedirects:`Tidak ada pengalihan yang dibuat.`,permanent:`301 permanen`,prefix:`Halaman dan feed di bawah alamat lama juga ikut dialihkan.`,repointed:`{count} pengalihan yang ada ke alamat lama kini mengarah ke alamat baru.`},tooLarge:{title:`Terlalu besar untuk satu perubahan`,description:`Ini akan mengubah {count} artikel; satu perubahan dapat menyentuh paling banyak {limit}. Pecah menjadi langkah-langkah yang lebih kecil, atau minta tugas bertahap.`},blocked:{title:`{count} artikel yang diterbitkan atau sedang ditinjau akan kehilangan satu-satunya kategorinya`,description:`Artikel-artikel itu memerlukan kategori. Gabungkan istilah ini ke istilah lain, atau kelompokkan artikel tersebut di tempat lain terlebih dahulu.`},gone:{title:`Arsipnya akan menjawab 410 Gone`,description:`{path} tidak mendapat pengalihan, sehingga mesin pencari menghapusnya untuk selamanya. Pilih istilah di atas untuk mengarahkan pengunjung ke sana.`},hidden:{title:`Arsipnya tidak lagi publik`,description:`{path} menjawab 404 setelah penerbitan berikutnya.`},appears:{title:`Arsipnya menjadi publik`,description:`{path} live pada penerbitan berikutnya.`},done:{rename:`{name} diganti namanya`,merge:`{name} digabungkan`,reviewMerge:`{name} digabungkan`,retire:`{name} dipensiunkan`,reject:`{name} ditolak`,move:`{name} dipindahkan`,visibility:`Visibilitas {name} diubah`,detail:`Artikel diubah: {entries}. Pengalihan: {redirects}. Satu snapshot; live pada penerbitan berikutnya.`}},taxonomySettings:{titleNew:`Taksonomi baru`,titleEdit:`Pengaturan {Singular}`,descriptionNew:`Kelompokkan artikel dengan cara lain selain kategori dan tag, seperti seri atau wilayah. Agen membaca aturannya sebelum mengelompokkan artikel.`,descriptionEdit:`Aturan yang diikuti orang dan agen untuk {plural}.`,open:`Pengaturan {Singular}`,newTaxonomy:`Taksonomi baru`,edit:`Edit`,exampleSlug:`musim-panas-2026`,sections:{name:`Nama`,terms:`Istilah`,termsHint:`Agen selalu menggunakan ulang istilah yang sudah ada terlebih dahulu. Aturan ini menentukan apa yang boleh mereka lakukan jika tidak ada yang cocok.`,articles:`Pada artikel`,archive:`Halaman arsip`},key:`Kunci`,keyHint:`Digunakan dalam filter dan oleh agen (series:summer-2026). Huruf kecil, angka, dan tanda hubung. Tidak dapat diubah nanti.`,keyFixed:`Kunci tidak pernah berubah: artikel, filter, dan agen merujuk padanya.`,singular:`Tunggal ({locale})`,plural:`Jamak ({locale})`,singularPlaceholder:`Wilayah`,pluralPlaceholder:`Wilayah`,labelsHint:`Sebutan yang digunakan Studio, situs, dan agen, mis. Wilayah.`,labelsOptional:`Opsional. Biarkan keduanya kosong untuk menggunakan nama {locale}.`,hierarchical:`Istilah dapat memiliki induk`,hierarchicalHint:`Pohon hingga lima tingkat, seperti kategori; arsip juga mencantumkan artikel dari sub-istilahnya. Nonaktif: daftar datar, seperti tag.`,newTerms:`Siapa yang menambahkan istilah baru`,newTermsOptions:{none:`Hanya orang`,propose:`Agen mengusulkan`,free:`Agen bebas menambahkan`},newTermsHints:{none:`Agen hanya mengelompokkan artikel di bawah istilah yang sudah ada. Jika tidak ada yang cocok, agen menyampaikannya dan bertanya kepada Anda.`,propose:`Agen boleh menyarankan istilah baru. Istilah itu tetap privat (tanpa arsip, tidak ditampilkan di artikel) sampai seseorang menyetujui, menggabungkan, atau menolaknya di sini.`,free:`Agen membuat istilah publik, termasuk arsipnya, tanpa bertanya. Cocok untuk kosakata yang longgar; pantau kesehatan kosakata.`},badges:{safest:`Paling aman`,recommended:`Direkomendasikan`,careful:`Gunakan dengan hati-hati`},required:`Wajib`,requiredHint:`Artikel memerlukan setidaknya satu, dengan satu yang utama, sebelum masuk tinjauan atau diterbitkan. Draf boleh menunggu.`,maxPerEntry:`Maksimal per artikel`,maxPerEntryHint:`Kosong: hingga {max}.`,allCollections:`Berlaku untuk setiap koleksi`,allCollectionsHint:`Nonaktif: pilih koleksi yang artikelnya dapat menggunakannya.`,collections:`Koleksi`,archiveEnabled:`Halaman arsip publik`,archiveEnabledHint:`Setiap istilah publik dengan artikel yang diterbitkan mendapat halaman yang mencantumkan artikelnya.`,basePath:`Alamat`,basePathHint:`Arsip berada di alamat seperti {example}.`,feed:`Feed RSS per istilah`,feedHint:`Di {example}/rss.xml.`,feedNeedsArchive:`Memerlukan halaman arsip publik.`,minEntries:`Artikel yang diperlukan untuk mesin pencari`,minEntriesHint:`Arsip dengan artikel diterbitkan yang lebih sedikit disajikan dengan noindex, follow dan tidak dimasukkan ke sitemap. 0: diindeks sejak artikel pertama.`,move:{title:`Perubahan alamat`,description:`Arsip berpindah. Alamat lama tetap berfungsi melalui pengalihan permanen.`,offTitle:`Halaman arsip akan menjawab 404`,offDescription:`Tidak ada pengalihan yang dibuat: tautan ke {path}/… berhenti berfungsi setelah penerbitan berikutnya.`,onTitle:`Arsip menjadi publik di {path}/…`,onDescription:`Istilah dengan artikel yang diterbitkan mendapat halaman setelah penerbitan berikutnya.`},create:`Buat taksonomi`,save:`Simpan pengaturan`,created:`{name} dibuat`,saved:`Pengaturan {name} disimpan`,errors:{keyRequired:`Masukkan kunci.`,keyInvalid:`Gunakan huruf kecil, angka, dan tanda hubung tunggal, seperti series atau reading-list.`,keyTooLong:`Paling banyak 128 karakter.`,keyReserved:`“{key}” dicadangkan oleh bahasa filter (primary, collection, locale, status, id).`,keyTaken:`Situs ini sudah memiliki taksonomi dengan kunci ini.`,labelRequired:`Masukkan nama dalam bahasa bawaan situs.`,labelTooLong:`Paling banyak {max} karakter.`,labelPair:`Isi keduanya, atau biarkan keduanya kosong.`,pathRequired:`Masukkan alamat.`,pathInvalid:`Awali dengan / dan gunakan kata huruf kecil yang digabung dengan tanda hubung, seperti /series.`,pathTooLong:`Paling banyak 1.024 karakter.`,pathRoot:`Arsip tidak dapat berada di root situs.`,pathTaxonomy:`Tumpang tindih dengan arsip “{conflict}”.`,pathPage:`Halaman {conflict} berada di sana. Pilih alamat lain.`,pathCollection:`Alamat artikel diawali dengan {conflict}. Pilih alamat lain.`,range:`Bilangan bulat dari {min} hingga {max}.`,collections:`Pilih setidaknya satu koleksi.`,hasParents:`{count} istilah masih memiliki induk. Pindahkan ke tingkat teratas terlebih dahulu.`,hasProposals:`{count} usulan sedang menunggu. Setujui, gabungkan, atau tolak terlebih dahulu.`}},termEditor:{language:`Bahasa`,default:`bawaan`,names:{title:`Nama dan sinonim`,description:`Yang dilihat pembaca, dan yang dapat diketik orang serta agen untuk menemukannya.`,name:`Nama ({locale})`,nameHintDefault:`Wajib dalam bahasa bawaan situs.`,nameHint:`Biarkan kosong untuk menampilkan nama {locale}.`,altNames:`Sinonim`,altNamesHint:`Nama lain yang menemukan istilah ini saat seseorang mengetiknya atau agen menetapkan berdasarkan nama. Tidak pernah ditampilkan sebagai istilah terpisah.`},intro:{title:`Pengantar arsip`,description:`Markdown yang ditampilkan di bagian atas {path}, hanya di halaman pertamanya.`,hint:`Markdown. HTML ditampilkan sebagai teks.`},image:{title:`Gambar`,description:`Ditampilkan di arsip dan digunakan sebagai gambarnya saat tautan dibagikan. Tautkan ke gambar yang sudah online.`},seo:{title:`Mesin pencari dan berbagi`,description:`Tampilan arsip di hasil pencarian, dalam {locale}.`},indexing:{title:`Pengindeksan`,indexed:`{path} dicantumkan oleh mesin pencari, dengan {count} artikel diterbitkan.`,thin:`{path} memiliki {count} dari {min} artikel diterbitkan yang dibutuhkan; sampai saat itu disajikan dengan noindex, follow.`,empty:`{path} tidak memiliki artikel yang diterbitkan dan menjawab 404 sampai ada yang dimasukkan.`,noindex:`{path} disembunyikan dari mesin pencari di pengaturan pencariannya.`},preview:{statusHint:`Jawaban {path} dengan perubahan ini: {status}. Pratinjau selalu menampilkan halaman, bahkan sebelum menjadi publik.`},placement:{title:`Penempatan`,position:`Posisi`,positionHint:`Angka yang lebih kecil muncul lebih dulu di antara saudaranya. Kosong: diurutkan menurut nama.`},history:{title:`Riwayat slug`,description:`Alamat sebelumnya dari arsip ini. Alamat itu tetap dicadangkan dan dialihkan ke sini.`,empty:`Tidak ada slug sebelumnya`,emptyDescription:`Alamatnya selalu {path}.`,reserved:`dicadangkan`},details:{taxonomy:`Taksonomi`,visibility:`Visibilitas`,usage:`Artikel`},retire:{title:`Pensiunkan {singular} ini`,description:`Menghapusnya dari setiap artikel; arsipnya dialihkan atau menjawab 410 Gone.`},retired:{title:`Istilah ini dipensiunkan`,merged:`Istilah ini digabungkan ke {name}`,description:`Istilah ini tidak memiliki arsip dan tidak dapat ditetapkan. Alamat lamanya dialihkan jika pengalihan telah disetel.`},errors:{nameRequired:`Masukkan nama dalam bahasa bawaan situs.`,nameTooLong:`Paling banyak 200 karakter.`,altTooLong:`“{value}” lebih dari 200 karakter.`,altDuplicate:`“{value}” tercantum dua kali atau mengulang nama.`,altCollision:`“{value}” sudah menjadi nama {other}. Sinonim tidak dapat menunjuk ke dua istilah.`,introTooLong:`Paling banyak 20.000 karakter.`,position:`Gunakan bilangan bulat dari 0 hingga {max}.`}},migration:{banner:{title:`Pindahkan tag Anda ke kategori dan tag`,description:`Tag di situs ini masih berupa teks biasa. Ubah menjadi tag dengan nama, arsip, dan pengalihan, dan mulai kelompokkan artikel di bawah kategori. Anda melihat hasilnya terlebih dahulu, dan dapat membatalkannya.`,action:`Pratinjau pemindahan`},dialog:{title:`Pindahkan tag ke kategori dan tag`,description:`Ini adalah uji coba: tidak ada yang ditulis sampai Anda menjalankannya.`,summary:`Yang dilakukan pemindahan`,tags:`Tag ditemukan`,entries:`Artikel ditulis ulang`,terms:`Tag`,termsValue:`{created} baru, {reused} digunakan ulang`,taxonomies:`Taksonomi dibuat`,none:`Tidak ada`,skipped:`{count} artikel dilewati`,how:`Studio membuat snapshot sebelum dan sesudahnya. Kategori awalnya opsional di situs ini, jadi tidak ada yang diblokir, dan tidak ada yang live sampai Anda menerbitkan.`,upToDate:`Tidak ada yang perlu dipindahkan`,upToDateDescription:`Setiap artikel sudah menggunakan tag dan kategori.`,run:`Jalankan pemindahan`},done:{title:`Tag dipindahkan`,description:`Artikel Anda kini menggunakan tag. Terbitkan saat Anda siap.`,toast:`Tag dipindahkan`,toastDetail:`{tags} tag pada {entries} artikel, dengan snapshot sebelum dan sesudahnya.`,undoHint:`Berubah pikiran? Urungkan memulihkan tag lama pada artikel yang belum diedit siapa pun sejak itu.`,undo:`Urungkan pemindahan`,close:`Selesai`},revert:{toast:`Pemindahan diurungkan`,toastDetail:`Tag lama dipulihkan pada {count} artikel.`}},redirects:{new:`Pengalihan baru`,search:`Cari alamat`,menu:`Tindakan untuk {from}`,edit:`Edit`,filters:{reason:`Sumber`,all:`Semua sumber`},reasons:{"slug-change":`Perubahan slug`,merge:`Penggabungan`,retire:`Dipensiunkan`,manual:`Manual`},columns:{from:`Alamat lama`,to:`Mengarah ke`,type:`Tipe`,source:`Sumber`,updated:`Diperbarui`},status:{301:`Permanen (301)`,302:`Sementara (302)`,"301Hint":`Mesin pencari memindahkan reputasi alamat lama ke alamat baru. Gunakan jika pemindahan bersifat permanen.`,"302Hint":`Untuk sementara waktu, seperti kampanye; mesin pencari tetap menyimpan alamat lama.`,short301:`301`,short302:`302`},match:{exact:`Hanya alamat ini`,exactHint:`Hanya path persis ini.`,prefix:`Alamat ini dan semua di bawahnya`,prefixHint:`Sisa path dipertahankan: /old/a menuju /new/a.`,prefixShort:`dan di bawahnya`},external:{badge:`Eksternal`,title:`Kirim pengunjung ke situs lain?`,description:`Periksa tujuan sebelum Anda membuat pengalihan.`,leave:`Pengunjung akan keluar menuju {host}`,warning:`Semua orang yang membuka alamat lama akan menuju situs yang tidak Anda kendalikan. Agen tidak pernah dapat membuat ini; hanya orang yang dapat.`,target:`Tujuan`,host:`Host`,confirm:`Alihkan ke {host}`},externalHint:`Mengirim pengunjung ke {host}, di luar situs ini.`,dialog:{createTitle:`Pengalihan baru`,editTitle:`Ubah pengalihan`,description:`Kirim pengunjung dari alamat yang tidak lagi disajikan situs ke alamat baru.`,from:`Alamat lama`,fromHint:`Path di situs ini, seperti /halaman-lama. Tidak boleh berupa alamat yang masih disajikan situs.`,fromLocked:`Alamat lama tidak dapat diubah. Hapus pengalihan ini dan buat yang lain sebagai gantinya.`,to:`Mengarah ke`,toHint:`Path di situs ini (/halaman-baru) atau alamat https://.`,toExternal:`Di luar situs ini: {host}. Anda mengonfirmasinya pada langkah berikutnya.`,toPlaceholder:`/halaman-baru atau https://…`,match:`Berlaku untuk`,status:`Jenis`,automatic:`Pengalihan otomatis selalu permanen (301).`,note:`Catatan`,noteHint:`Opsional. Alasan keberadaannya, untuk siapa pun yang melihat berikutnya.`,create:`Buat pengalihan`},errors:{fromRequired:`Masukkan alamat lama.`,fromInvalid:`Gunakan path yang diawali dengan /, tanpa spasi, ? atau #.`,fromTooLong:`Paling banyak 1.024 karakter.`,fromTaken:`Pengalihan dari alamat ini sudah ada. Edit yang itu saja.`,fromServed:`Situs menyajikan alamat ini. Pengalihan tidak dapat menyembunyikan halaman, artikel yang diterbitkan, atau arsip.`,toRequired:`Masukkan ke mana pengunjung dikirim.`,toInvalid:`Gunakan path yang diawali dengan / atau alamat https://.`,toInsecure:`Gunakan https://.`,toTooLong:`Paling banyak 2.048 karakter.`,toSelf:`Tidak dapat mengirim pengunjung ke alamat yang sama.`,toLoop:`Itu akan berputar: target dialihkan kembali ke sini.`},saved:`Pengalihan disimpan`,created:`Pengalihan dari {from} dibuat`,deleted:`Pengalihan dari {from} dihapus`,deleteTitle:`Hapus pengalihan dari {from}?`,deleteDescription:`Setelah penerbitan berikutnya, alamat lama menjawab 404.`,deleteAutomatic:`Studio membuatnya saat sebuah alamat berubah. Setelah penerbitan berikutnya alamat lama menjawab 404, dan tautan ke alamat itu rusak.`,deleteConfirm:`Hapus pengalihan`,empty:`Belum ada pengalihan`,emptyFiltered:`Tidak ada pengalihan dari sumber ini`,emptyDescription:`Perubahan slug, penggabungan, dan pemensiunan menambahkan pengalihan di sini secara otomatis. Tambahkan sendiri untuk alamat yang berpindah.`},roles:{yours:`Peran Anda`,names:{owner:`Pemilik`,administrator:`Administrator`,editor:`Editor`,author:`Penulis`,contributor:`Kontributor`},plural:{owner:`Pemilik`,administrator:`Administrator`,editor:`Editor`,author:`Penulis`,contributor:`Kontributor`},summaries:{owner:`Semuanya, termasuk memindahkan kepemilikan. Hanya ada satu Pemilik; kepemilikan hanya berpindah melalui pengalihan kepemilikan.`,administrator:`Menjalankan deployment: tim, peran, pengaturan situs dan domain, kunci agen semua orang. Mengedit dan menerbitkan apa pun.`,editor:`Mengedit dan menerbitkan apa pun, menyusun struktur situs (halaman, kategori, pengalihan), mengembalikan, serta mengundang Penulis dan Kontributor.`,author:`Menulis, mengedit, dan menerbitkan artikelnya sendiri. Selebihnya menunggu Editor.`,contributor:`Menulis draf dan mengajukannya untuk ditinjau. Editor yang menerbitkannya; karya yang sudah diterbitkan hanya dapat dibaca olehnya.`},explainer:{role:`Peran`,columns:{articles:`Artikel`,publish:`Penerbitan`,structure:`Struktur`,team:`Tim`},levels:{all:`Semua`,own:`Sendiri`,drafts:`Draf`,none:`Tidak`,invite:`Undang`,full:`Kelola`},hints:{articles:{all:`Menulis dan mengedit setiap artikel, dan dapat mencantumkan orang lain sebagai penulis.`,own:`Menulis artikel dan mengedit artikelnya sendiri, diterbitkan atau belum.`,drafts:`Menulis draf dan mengedit drafnya sendiri sampai Editor menerbitkannya.`,none:`Tidak dapat mengubah artikel.`},publish:{all:`Menerbitkan apa pun dan mengembalikan.`,own:`Menerbitkan jika setiap perubahan publik adalah miliknya sendiri; selebihnya menjadi permintaan.`,none:`Mengajukan untuk ditinjau; orang lain yang menerbitkan.`},structure:{all:`Halaman, kategori dan tag, pengalihan.`,none:`Membaca halaman, kategori, dan pengalihan, tetapi tidak mengubahnya.`},team:{full:`Mengundang, mengubah peran, menghapus orang, pengaturan situs dan domain, kunci agen semua orang.`,invite:`Mengundang Penulis dan Kontributor.`,none:`Melihat siapa saja anggota tim.`}}}},gating:{readOnlyTitle:`Anda dapat melihat ini`,entryNotOwn:`Artikel ini milik orang lain. Penulisnya serta Editor ke atas dapat mengubahnya.`,entryPublished:`Artikel ini telah diterbitkan. Kontributor tidak dapat mengubah karya yang diterbitkan; Editor dapat.`,entryDelete:`Hanya penulisnya (selama peran Anda mengizinkan) serta Editor ke atas yang dapat menghapusnya.`,abilities:{entries:{create:`Hanya {roles} ke atas yang dapat menulis artikel.`,editOwnPublished:`Hanya {roles} ke atas yang dapat menerbitkan artikel. Editor menerbitkan artikel Anda setelah ditinjau.`,editAny:`Hanya {roles} ke atas yang dapat mengubah artikel orang lain.`},pages:{write:`Hanya {roles} ke atas yang dapat mengubah halaman.`},publish:{own:`Hanya {roles} ke atas yang dapat menerbitkan. Ajukan pekerjaan Anda untuk ditinjau; Editor yang menerbitkannya.`,any:`Hanya {roles} ke atas yang dapat menerbitkan pekerjaan orang lain.`},rollback:`Hanya {roles} ke atas yang dapat mengembalikan situs.`,structure:{write:`Hanya {roles} ke atas yang dapat mengubah kategori, tag, dan pengalihan.`},assets:{upload:`Hanya {roles} ke atas yang dapat mengunggah file.`,manage:`Hanya {roles} ke atas yang dapat mengelola semua file.`},activity:{all:`Hanya {roles} ke atas yang melihat aktivitas seluruh tim.`},analytics:{read:`Hanya {roles} ke atas yang melihat analitik.`,settings:`Hanya {roles} ke atas yang dapat mengubah pengaturan analitik.`},comments:{read:`Hanya {roles} ke atas yang melihat komentar pembaca.`,moderate:`Hanya {roles} ke atas yang memoderasi komentar.`,moderateAny:`Hanya {roles} ke atas yang memoderasi komentar pada artikel orang lain.`,reply:`Hanya {roles} ke atas yang membalas komentar.`,replyAny:`Hanya {roles} ke atas yang membalas pada artikel orang lain.`,settings:`Hanya {roles} ke atas yang dapat mengubah pengaturan komentar.`},commenters:{data:`Hanya {roles} ke atas yang melihat email pemberi komentar atau menghapus data mereka.`},settings:{write:`Hanya {roles} ke atas yang dapat mengubah pengaturan situs dan domain.`},members:{invite:`Hanya {roles} ke atas yang dapat mengundang orang.`,manage:`Hanya {roles} ke atas yang dapat mengubah peran atau menghapus orang.`},agents:{manage:`Hanya {roles} ke atas yang dapat mengelola kunci agen milik orang lain.`},sites:{create:`Hanya {roles} ke atas yang dapat membuat situs.`},schedules:{read:`Hanya {roles} ke atas yang melihat jadwal.`,write:`Hanya {roles} ke atas yang menjadwalkan pekerjaannya.`,writeAny:`Hanya {roles} ke atas yang mengubah jadwal orang lain.`,settings:`Hanya {roles} ke atas yang menjeda jadwal atau mengubah batasnya.`},releases:{approve:`Hanya {roles} ke atas yang menyetujui rilis pekerjaannya sendiri.`,approveAny:`Hanya {roles} ke atas yang menyetujui rilis.`},automations:{manage:`Hanya {roles} ke atas yang mengelola otomatisasi.`},ai:{invoke:`Hanya {roles} ke atas yang menggunakan AI di editor.`,settings:`Hanya {roles} ke atas yang mengubah pengaturan AI.`},ownership:{transfer:`Hanya {roles} yang dapat mengalihkan kepemilikan.`}}},publishing:{request:`Minta penerbitan`,requestCommand:`Buat snapshot dan minta penerbitan`,requestTitle:`Minta penerbitan?`,requestDescription:`Perubahan Anda mencakup pekerjaan orang lain atau perubahan struktur situs, jadi Editor yang menyetujui penerbitan. Studio membuat snapshot sekarang; permintaan menunggu di Persetujuan.`,sendRequest:`Kirim permintaan`,requestOption:`Minta penerbitan`,requestOptionDescription:`Editor menyetujuinya di Persetujuan sebelum live.`,requested:`Penerbitan diminta`,requestedDescription:`Perubahan Anda mencakup pekerjaan yang bukan milik Anda, jadi Editor harus menyetujui penerbitan. Anda akan menemukan permintaannya di Persetujuan.`,openRequest:`Buka Persetujuan`,refused:`Anda tidak dapat menerbitkan`},members:{invite:`Undang orang`,search:`Cari orang`,you:`Anda`,someone:`Seseorang`,menu:`Tindakan untuk {name}`,tabs:{members:`Anggota`,activity:`Aktivitas`},columns:{member:`Anggota`,role:`Peran`,joined:`Bergabung`,actions:`Tindakan`},empty:`Belum ada anggota`,emptyDescription:`Akun pertama di Studio menjadi Pemiliknya. Undang orang dari sini.`,noMatches:`Tidak ada yang cocok dengan “{query}”`,notEnabledTitle:`Server ini tidak memiliki tim`,notEnabledDescription:`Peran dan undangan memerlukan Studio dengan akun (cloudhal studio, atau Worker admin yang di-deploy). Tanpa itu, setiap orang yang masuk dapat melakukan apa saja.`,changeRole:`Ubah peran…`,resetLink:`Buat tautan reset kata sandi…`,transferOwnership:`Alihkan kepemilikan…`,rank:{self:`Anda tidak dapat mengubah peran Anda sendiri atau menghapus diri sendiri.`,owner_role:`Peran Pemilik hanya berpindah melalui pengalihan kepemilikan.`,target_is_owner:`Pemilik tidak dapat diturunkan atau dihapus. Alihkan kepemilikan terlebih dahulu.`,role_too_high:`Peran Anda tidak dapat memberikan peran ini.`,not_allowed:`Hanya Administrator dan Pemilik yang dapat mengelola anggota.`},roles:{title:`Peran`,description:`Apa yang dapat dilakukan setiap peran. Kunci agen tidak pernah melakukan lebih dari orang yang membuatnya.`},how:{title:`Cara kerja undangan`,single:`Setiap tautan hanya berfungsi sekali. Siapa pun yang membukanya pertama kali akan bergabung, jadi bagikan secara pribadi.`,bound:`Tautan terikat pada satu alamat email dan satu peran; orang yang diundang tidak dapat mengubah keduanya.`,expiry:`Secara bawaan tautan kedaluwarsa setelah {default}. Undangan Administrator kedaluwarsa dalam {admin}.`,keys:`Kunci agen seseorang tidak pernah melakukan lebih dari perannya, dan langsung dipersempit saat perannya turun.`,owner:`Hanya ada satu Pemilik. Kepemilikan hanya berpindah ke Administrator, dengan kata sandi Pemilik.`},invites:{title:`Undangan tertunda`,description:`Tautan yang belum digunakan. Cabut salah satunya dan tautan itu langsung berhenti berfungsi.`,empty:`Tidak ada undangan tertunda`,emptyDescription:`Tautan undangan yang Anda buat muncul di sini sampai digunakan, dicabut, atau kedaluwarsa.`,columns:{email:`Email`,role:`Peran`,expires:`Kedaluwarsa`,inviter:`Diundang oleh`,actions:`Tindakan`},byLink:`Tautan`,byEmail:`Dikirim melalui email`,expired:`Kedaluwarsa`,incomplete:`Belum selesai`,incompleteHint:`Tautan telah digunakan, tetapi akun belum dibuat. Undang lagi untuk mengirim tautan baru.`,you:`Anda`,someone:`Mantan anggota`,reinvite:`Undang ulang`,menu:`Tindakan untuk undangan ke {email}`,revoke:`Cabut`,revokeTitle:`Cabut undangan ini?`,revokeDescription:`Tautan untuk {email} langsung berhenti berfungsi. Anda dapat mengundangnya lagi nanti.`,revoked:`Undangan dicabut`,revokedDescription:`Tautan untuk {email} tidak lagi berfungsi.`},role:{title:`Ubah peran {name}`,description:`Berlaku pada klik atau panggilan agen berikutnya. Dicatat di log aktivitas.`,member:`Anggota`,newRole:`Peran baru`,change:`Perubahan peran`,now:`Sekarang`,immediate:`Langsung berlaku`,demotionTitle:`Kunci agen mereka juga dipersempit`,demotion:`Sebagai {role}, kunci mereka hanya mempertahankan cakupan dan mode yang diizinkan peran itu, dan peningkatan akses di atasnya berakhir. Kenaikan peran di kemudian hari tidak memperluas kunci lagi.`,submit:`Ubah peran`,failed:`Peran tidak dapat diubah`,changed:`Peran diubah`,changedDescription:`{name} kini menjadi {to}.`,narrowedTitle:`Kunci agen dipersempit`,narrowedDescription:`{count} kunci agen mereka kini hanya melakukan apa yang diizinkan peran baru.`,narrowedBanner:`Kunci agen dipersempit: {count}`,narrowedBannerDescription:`Setiap kunci di bawah hanya mempertahankan apa yang diizinkan peran baru. Agen mereka mengetahuinya pada panggilan berikutnya.`,narrowedMode:`Mode`,narrowedScopes:`Kini bekerja dengan`,elevationEnded:`Peningkatan aksesnya berakhir karena peran baru tidak mengizinkannya.`,done:`Selesai`},remove:{menu:`Hapus dari tim…`,title:`Hapus {name} dari tim?`,description:`Mereka langsung kehilangan akses. Ini dicatat di log aktivitas.`,signOut:`Mereka dikeluarkan dari setiap perangkat.`,keys:`Kunci agen mereka dinonaktifkan (disimpan sebagai catatan, dapat dihapus).`,keysCount:`Kunci agen mereka dinonaktifkan: {count}.`,invites:`Undangan yang mereka kirim dan masih tertunda dibatalkan.`,invitesCount:`Undangan tertunda mereka dibatalkan: {count}.`,requests:`Permintaan yang sedang ditunggu agen mereka ditolak.`,kept:`Artikel dan aktivitas mereka tetap ada. Mengundang mereka lagi akan memulihkan akses.`,submit:`Hapus`,failed:`Mereka tidak dapat dihapus`,done:`{name} telah dihapus`,doneDescription:`Kunci agen dinonaktifkan: {keys} · undangan dibatalkan: {invites} · permintaan ditolak: {requests}.`},reset:{title:`Buat tautan reset kata sandi?`,description:`{name} dapat memilih kata sandi baru dengan tautan ini. Belum ada email, jadi Anda membagikan tautannya sendiri.`,once:`Tautan berfungsi sekali dan kedaluwarsa dalam satu jam.`,signsOut:`Menyetel kata sandi baru akan mengeluarkan mereka dari semua perangkat.`,replaces:`Tautan baru membatalkan tautan sebelumnya.`,submit:`Buat tautan`,failed:`Tautan tidak dapat dibuat`,revealTitle:`Salin tautan reset`,revealDescription:`Kirim ke {name} secara pribadi, melalui pesan langsung.`,warningTitle:`Anda tidak akan melihat tautan ini lagi`,warning:`Salin sekarang. Siapa pun yang membukanya dapat menyetel kata sandi akun ini, jadi jangan pernah membagikannya di kanal bersama.`,link:`Tautan reset`,expires:`Kedaluwarsa {relative} ({absolute}).`,done:`Saya sudah menyalin tautannya`},transfer:{title:`Alihkan kepemilikan ke {name}?`,description:`Pemilik dapat melakukan semuanya, termasuk memindahkan kepemilikan. Hanya ada satu Pemilik.`,warningTitle:`Anda tidak dapat membatalkan ini sendiri`,warning:`{name} menjadi Pemilik dan Anda menjadi Administrator. Hanya {name} yang dapat mengembalikan kepemilikan.`,to:`Pemilik baru`,youBecome:`Anda langsung menjadi Administrator.`,keys:`Kunci agen Anda dipersempit menjadi apa yang boleh dilakukan Administrator.`,onlyThey:`Hanya Pemilik baru yang dapat mengalihkan kepemilikan lagi.`,password:`Kata sandi Anda`,passwordHint:`Masukkan lagi untuk mengonfirmasi bahwa ini Anda.`,passwordRequired:`Masukkan kata sandi Anda`,wrongPassword:`Kata sandi itu salah`,notAdministrator:`Kepemilikan dialihkan ke Administrator. Jadikan dia Administrator terlebih dahulu, lalu coba lagi.`,needsAdministrator:`Kepemilikan hanya dapat dialihkan ke Administrator. Ubah perannya terlebih dahulu.`,submit:`Alihkan kepemilikan`,failed:`Kepemilikan tidak dapat dialihkan`,done:`Kepemilikan dialihkan`,doneDescription:`{name} kini menjadi Pemilik. Anda adalah Administrator.`},activity:{empty:`Belum ada peristiwa tim`,emptyDescription:`Undangan, perubahan peran, penghapusan, dan pengalihan kepemilikan muncul di sini.`,restrictedTitle:`Aktivitas tim untuk Editor ke atas`}},editionGuide:{title:`Bahasa lain: di sini atau sebagai situs tersendiri?`,hereTitle:`Tambahkan ke situs ini`,here:`Halaman dan menu yang sama di setiap bahasa, satu tim, satu penerbitan. Paling cocok bila bahasanya saling mencerminkan.`,editionTitle:`Mulai edisi bahasa`,edition:`Situs terpisah di proyek ini yang berawal dari situs ini: halaman, menu, peran tim, dan rilisnya sendiri, tetap tertaut sebagai terjemahan. Paling cocok bila sebuah pasar butuh struktur atau tim sendiri.`,create:`Buat edisi bahasa…`},newSite:{open:`Situs baru`,title:`Situs baru`,description:`Situs tersendiri di instalasi ini: halaman, pengaturan, peran tim, dan analitiknya sendiri. Dimulai dengan halaman beranda; tidak ada yang diterbitkan.`,name:`Nama`,nameRequired:`Beri situs ini nama.`,slug:`Nama singkat`,slugHint:`Huruf kecil, angka, dan tanda hubung; mengenali situs di Studio dan CLI.`,slugInvalid:`Gunakan huruf kecil, angka, dan tanda hubung.`,language:`Bahasa`,languageHint:`Bahasa bawaan situs; tambahkan bahasa lain nanti di pengaturan bahasa.`,project:`Proyek`,projectHint:`Proyek mengelompokkan situs yang berkaitan, seperti edisi bahasa dari satu publikasi.`,newProject:`Proyek baru`,submit:`Buat situs`,failed:`Situs tidak dapat dibuat`,created:`Situs dibuat`,createdDescription:`{name} siap disunting; belum ada yang diterbitkan.`,from:`Mulai dari`,fromHint:`Situs kosong dimulai dengan halaman beranda dan halaman Tentang.`,blank:`Situs kosong`,copyOf:`Salinan {name} (edisi bahasa)`,editionHint:`Menyalin halaman situs itu sebagai draf dalam bahasa baru, beserta menu dan desainnya, ditautkan sebagai terjemahan; artikel dan media tidak disalin. Situs baru bergabung ke proyek situs itu.`,editionCreated:[[0,`name`],` dimulai dengan `,[2,`count`,{other:[[4],` halaman`]}],` untuk diterjemahkan; belum ada yang diterbitkan.`]},projects:{title:`Proyek`,description:`Situs-situs proyek ini berdampingan: bahasa, alamat, status terbit, dan persetujuan yang menunggu.`,newSite:`Situs baru di proyek ini`,sites:`Situs`,notFound:`Proyek tidak ditemukan`,notFoundDescription:`Proyek ini dihapus, atau Anda tidak dapat membuka satu pun situsnya.`,columns:{site:`Situs`,languages:`Bahasa`,address:`Alamat`,status:`Status`,approvals:`Persetujuan`},noAddress:`Belum ada domain`,none:`Tidak ada`,waiting:[[2,`count`,{other:[[4],` menunggu`]}]],summary:{title:`Sekilas`,sites:`Situs`,languages:`Bahasa`,live:`Tayang`,waiting:`Persetujuan menunggu`}},siteAccess:{legend:`Situs`,all:`Semua situs`,some:`Hanya beberapa situs`,roleOn:`Peran di {site}`,everySite:`Pemilik dan Administrator bekerja di semua situs pada instalasi ini.`,required:`Pilih setidaknya satu situs.`,menu:`Situs`,title:`Situs untuk {name}`,description:`Pilih situs mana yang dikerjakan orang ini dan perannya di masing-masing. Perubahan langsung berlaku.`,failed:`Situs tidak dapat disimpan`,submit:`Simpan situs`,saved:`Situs disimpan`,savedDescription:`Situs {name} telah diperbarui.`,count:[[2,`count`,{other:[[4],` situs`]}]]},invites:{create:{title:`Undang seseorang`,reinviteTitle:`Undang lagi`,description:`Mereka mendapat tautan sekali pakai untuk membuat akun dengan peran yang Anda pilih.`,step:`Langkah 1 dari 2 · Siapa dan dengan peran apa`,email:`Email`,emailHint:`Akun dibuat dengan alamat ini; mereka tidak dapat mengubahnya.`,emailPlaceholder:`nama@example.com`,role:`Peran`,roleHint:`Hanya peran yang boleh diberikan oleh peran Anda yang dicantumkan.`,expiry:`Tautan kedaluwarsa setelah`,expiryHint:`Pilih waktu tersingkat yang masih memungkinkan bagi mereka.`,expiryAdmin:`Undangan Administrator kedaluwarsa dalam {max}.`,explainer:`Apa yang dapat dilakukan setiap peran`,delivery:`Cara mengirim`,deliveryLink:`Salin tautan`,deliveryLinkHint:`Anda membagikannya sendiri, secara pribadi.`,deliveryEmail:`Kirim melalui email`,deliveryEmailHint:`Studio mengirim tautan melalui email; Anda tidak akan melihatnya.`,submit:`Buat tautan undangan`,send:`Kirim undangan`,failed:`Undangan tidak dapat dibuat`},reveal:{title:`Salin tautan undangan`,sentTitle:`Undangan terkirim`,description:`Untuk {email}, sebagai {role}. Langkah 2 dari 2.`,warningTitle:`Anda tidak akan melihat tautan ini lagi`,warning:`Salin sekarang dan bagikan secara pribadi, melalui pesan langsung, bukan kanal bersama. Siapa pun yang membukanya pertama kali akan bergabung sebagai {role}.`,link:`Tautan undangan`,summary:`Undangan`,expires:`Kedaluwarsa {relative} ({absolute}).`,private:`Jika sampai ke orang yang salah, cabut dari Undangan tertunda.`,done:`Saya sudah menyalin tautannya`,sent:`Dikirim ke {email}`,sentDescription:`Tautan berfungsi sekali. Anda dapat mencabutnya dari Undangan tertunda.`},errors:{emailRequired:`Masukkan alamat email`,emailInvalid:`Masukkan alamat email yang valid, seperti nama@example.com`,rank:`Peran Anda tidak dapat mengundang seseorang sebagai {role}.`,invalid_expiry:`Masa berlaku itu tidak diizinkan untuk peran ini. Pilih yang lebih singkat.`,delivery_unavailable:`Server ini tidak dapat mengirim email. Salin tautan sebagai gantinya.`,delivery_failed:`Email tidak dapat dikirim, jadi undangan dibatalkan. Pilih Salin tautan dan coba lagi.`,already_member:`{email} sudah ada di tim.`,too_many_invites:`Terlalu banyak undangan tertunda. Cabut beberapa terlebih dahulu.`,rate_limited:`Anda telah membuat banyak undangan dalam satu jam terakhir. Coba lagi nanti.`}},inviteAccept:{titleGeneric:`Bergabung dengan Cloudhal Studio`,title:`Bergabung dengan {name}`,descriptionGeneric:`Membuka undangan Anda…`,descriptionDead:`Tautan ini tidak lagi berfungsi.`,description:`{inviter} mengundang Anda sebagai {role}.`,someone:`Seseorang`,summary:`Undangan Anda`,as:`Anda akan bergabung sebagai`,expires:`Undangan ini kedaluwarsa {relative} ({absolute}).`,emailHint:`Undangan ini untuk alamat ini.`,nameHint:`Ditampilkan di samping perubahan dan persetujuan Anda.`,existingTitle:`Anda sudah memiliki akun`,existing:`Masukkan kata sandinya untuk bergabung dengan akun itu.`,submit:`Terima undangan`,toSignIn:`Buka halaman masuk`,signOutFirst:`Keluar terlebih dahulu, lalu terima undangan.`,welcome:`Selamat datang di {name}`,welcomeDescription:`Anda masuk sebagai {role}.`,missingTitle:`Tautan ini tidak lengkap`,missing:`Buka seluruh tautan yang dikirimkan kepada Anda; bagian setelah # hilang. Jika masih tidak berfungsi, minta undangan baru.`,goneTitle:`Undangan ini tidak dapat digunakan`,gone:`Undangan sudah digunakan, dicabut, atau kedaluwarsa. Minta undangan baru kepada orang yang mengundang Anda.`,otherSessionTitle:`Anda masuk sebagai {email}`,otherSessionTitleGeneric:`Anda masuk sebagai orang lain`,otherSession:`Undangan ini untuk {email}. Keluar, lalu terima undangan.`,alreadyMemberTitle:`Anda sudah ada di tim`,alreadyMember:`Akun ini sudah menjadi anggota. Masuk saja.`,errors:{nameRequired:`Masukkan nama Anda`,nameTooLong:`Paling banyak {max} karakter`,weakPassword:`Gunakan minimal 8 karakter`,wrongPassword:`Kata sandi itu salah untuk akun ini`}},resetPassword:{title:`Pilih kata sandi baru`,description:`Untuk akun {name}.`,descriptionGeneric:`Membuka tautan reset Anda…`,descriptionDead:`Tautan ini tidak lagi berfungsi.`,expires:`Tautan ini kedaluwarsa {relative} ({absolute}).`,signsOut:`Anda akan dikeluarkan dari setiap perangkat; lalu masuk dengan kata sandi baru.`,submit:`Setel kata sandi baru`,doneTitle:`Kata sandi diubah`,doneDescription:`Masuk dengan kata sandi baru Anda.`,changed:`Kata sandi Anda sudah disetel`,changedDescription:`Anda telah dikeluarkan dari semua perangkat.`,missingTitle:`Tautan ini tidak lengkap`,missing:`Buka seluruh tautan yang dikirimkan kepada Anda; bagian setelah # hilang.`,goneTitle:`Tautan reset ini tidak dapat digunakan`,gone:`Tautan sudah digunakan atau kedaluwarsa. Minta yang baru dari halaman masuk, atau minta kepada Administrator.`},forgotPassword:{link:`Lupa kata sandi?`,title:`Reset kata sandi Anda`,description:`Kami akan mengirimkan tautan melalui email untuk memilih kata sandi baru.`,submit:`Kirimi saya tautan`,sentTitle:`Periksa email Anda`,sent:`Jika {email} terdaftar sebagai akun di sini, tautan reset sedang dikirim. Tautan berfungsi sekali, selama satu jam.`,unavailableTitle:`Server ini tidak dapat mengirim email`,unavailable:`Minta tautan reset kepada Administrator Studio ini.`,back:`Kembali ke halaman masuk`},passwords:{new:`Kata sandi baru`,confirm:`Ulangi kata sandi`,strength:`Kekuatan: {level}`,levels:{empty:`—`,tooShort:`terlalu pendek`,weak:`lemah`,fair:`cukup`,strong:`kuat`},advice:{empty:`Minimal {min} karakter. Beberapa kata yang tidak berhubungan menghasilkan kata sandi yang kuat.`,tooShort:`Minimal {min} karakter.`,weak:`Lebih panjang lebih kuat: coba 12 karakter atau lebih, atau beberapa kata yang tidak berhubungan.`,fair:`Bagus. Beberapa karakter lagi akan membuatnya kuat.`,strong:`Kata sandi kuat.`},errors:{required:`Masukkan kata sandi`,tooShort:`Gunakan minimal {min} karakter`,tooLong:`Gunakan paling banyak {max} karakter`,confirmRequired:`Ulangi kata sandi`,mismatch:`Kata sandi tidak cocok`}}};export{e as messages};
6
+ //# sourceMappingURL=id-fk1BPM1I.js.map