@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.
- package/dist/assets/starters/blog/README.md +1 -1
- package/dist/assets/starters/blog/package.json +4 -4
- package/dist/assets/starters/blog/src/components/EntryList.astro +1 -1
- package/dist/assets/starters/blog/src/pages/[...path].astro +6 -2
- package/dist/assets/starters/blog/src/theme.ts +3 -2
- package/dist/assets/studio/assets/{AccountPage-C_F6GEbp.js → AccountPage-DhdHmvOg.js} +2 -2
- package/dist/assets/studio/assets/{ActivityPage-CAKmV0_b.js → ActivityPage-CjbJHI95.js} +2 -2
- package/dist/assets/studio/assets/{AgentModes-D8HMrK7G.js → AgentModes-QhxdiMYV.js} +2 -2
- package/dist/assets/studio/assets/AgentsPage-B-czVWlA.js +2 -0
- package/dist/assets/studio/assets/AnalyticsPage-CjGEPEPx.js +3 -0
- package/dist/assets/studio/assets/{ApprovalDialog-Dv9mtEvX.js → ApprovalDialog-DHKo0y6u.js} +2 -2
- package/dist/assets/studio/assets/{ApprovalsPage-BaCTOLgB.js → ApprovalsPage-DpH3gVFr.js} +3 -3
- package/dist/assets/studio/assets/ArticleEditorPage-B6i-ohJH.js +2 -0
- package/dist/assets/studio/assets/ArticlesPage-CL-4O3zB.js +2 -0
- package/dist/assets/studio/assets/{AssetPage-CQa3FSgH.js → AssetPage-C95V1y8t.js} +2 -2
- package/dist/assets/studio/assets/{Audit-BsehRESJ.js → Audit-Qsn-EQ3C.js} +2 -2
- package/dist/assets/studio/assets/{AuditBadges-Bd8EnwON.js → AuditBadges-CPDfmk_z.js} +2 -2
- package/dist/assets/studio/assets/{AuthLayout-BNLNRRmt.js → AuthLayout-wpvclpda.js} +2 -2
- package/dist/assets/studio/assets/{AutomationsPage-C1rjUwWk.js → AutomationsPage-PQAJefmU.js} +2 -2
- package/dist/assets/studio/assets/{BlockSection-dqMQjKxw.js → BlockSection-Dz_7O4BN.js} +2 -2
- package/dist/assets/studio/assets/{BodyChanges-DOaqosb8.js → BodyChanges-2lB47SO5.js} +2 -2
- package/dist/assets/studio/assets/{BuildPage-DEOfRzA9.js → BuildPage-CySzzTQW.js} +2 -2
- package/dist/assets/studio/assets/{CommandMenu-D9MNc-Wo.js → CommandMenu-CB2kq5oc.js} +2 -2
- package/dist/assets/studio/assets/{CommentThreadControls-DpKsd1i6.js → CommentThreadControls-CVB-n4D_.js} +2 -2
- package/dist/assets/studio/assets/CommentThreadPage-DZHFTxT4.js +2 -0
- package/dist/assets/studio/assets/{CommenterPage-DyUS-J5W.js → CommenterPage-7Sd7_lXK.js} +2 -2
- package/dist/assets/studio/assets/{Comments-BRP_6oQ6.js → Comments-BXWLWhKk.js} +2 -2
- package/dist/assets/studio/assets/{CommentsPage-C4uR0zDd.js → CommentsPage-BX1NccsN.js} +2 -2
- package/dist/assets/studio/assets/{ConfirmDialog-DTOOI7kj.js → ConfirmDialog-DCuw5jgs.js} +2 -2
- package/dist/assets/studio/assets/{Crumbs-BVqhFD_U.js → Crumbs-CJ6UlbPv.js} +2 -2
- package/dist/assets/studio/assets/{EditorLayout-GefNJMG2.js → EditorLayout-FlmsPOxF.js} +2 -2
- package/dist/assets/studio/assets/{EditorPreview-BuGAQX3g.js → EditorPreview-CA6-0wUw.js} +2 -2
- package/dist/assets/studio/assets/{Elevation-ahkqnCOT.js → Elevation-BrgkbjjJ.js} +2 -2
- package/dist/assets/studio/assets/{ElevationRequest-DbaZPpTy.js → ElevationRequest-DXg8u-DR.js} +2 -2
- package/dist/assets/studio/assets/EntryPath-CkymIfuw.js +2 -0
- package/dist/assets/studio/assets/{ForgotPasswordPage-ECAplOgO.js → ForgotPasswordPage-DwB7XyB2.js} +2 -2
- package/dist/assets/studio/assets/{Gating-BGO4D_AP.js → Gating-0HRGz-rR.js} +2 -2
- package/dist/assets/studio/assets/GovernanceDialog-DUYzDR09.js +2 -0
- package/dist/assets/studio/assets/{InvitePage-CciurSHj.js → InvitePage-DE6bIpV3.js} +2 -2
- package/dist/assets/studio/assets/{ListToolbar-DPtPcPWp.js → ListToolbar-BG__bomj.js} +2 -2
- package/dist/assets/studio/assets/{LoginPage-BKdmHe8_.js → LoginPage-DNfzz9zT.js} +2 -2
- package/dist/assets/studio/assets/{MediaPage-Bx_Q3p5Z.js → MediaPage-CYmEY5cn.js} +2 -2
- package/dist/assets/studio/assets/{MediaPicker-BHakhuPF.js → MediaPicker-C9vXkzHW.js} +2 -2
- package/dist/assets/studio/assets/{MediaUpload-Cjwe01QK.js → MediaUpload-BVeC5zW0.js} +2 -2
- package/dist/assets/studio/assets/MembersPage-DPlqxnNE.js +2 -0
- package/dist/assets/studio/assets/Menus-LJoFj5RT.js +2 -0
- package/dist/assets/studio/assets/{NavigationPage-3JIfd_2C.js → NavigationPage-C_3mnXYX.js} +2 -2
- package/dist/assets/studio/assets/{NewSiteDialog-DES6p9cW.js → NewSiteDialog-DSy8gRik.js} +2 -2
- package/dist/assets/studio/assets/{PageEditorPage-BiskVdPq.js → PageEditorPage-BcVleR3m.js} +2 -2
- package/dist/assets/studio/assets/{PagesPage-YrYME9pn.js → PagesPage-DBYQBTbf.js} +2 -2
- package/dist/assets/studio/assets/{PasswordField-BaDn4bwQ.js → PasswordField-CmuKqecN.js} +2 -2
- package/dist/assets/studio/assets/{PreviewPanel-CYgpgHYL.js → PreviewPanel-BGtfUafo.js} +2 -2
- package/dist/assets/studio/assets/{ProjectPage-B8YTPbZu.js → ProjectPage-fFSVFBu7.js} +2 -2
- package/dist/assets/studio/assets/{Readers-PSJxQtDw.js → Readers-BXiEXx2Q.js} +3 -3
- package/dist/assets/studio/assets/RedirectDialog-Bjj_Yc96.js +2 -0
- package/dist/assets/studio/assets/RedirectsPage-CHcqSOyu.js +2 -0
- package/dist/assets/studio/assets/{ReleaseApproval-DUUheBUr.js → ReleaseApproval-BIjYTn-g.js} +2 -2
- package/dist/assets/studio/assets/{ReleasePage-DU_sEnGb.js → ReleasePage-CxToLp34.js} +2 -2
- package/dist/assets/studio/assets/{ReleaseParts-blYiBCFL.js → ReleaseParts-B_Uljbxy.js} +2 -2
- package/dist/assets/studio/assets/{ResetPasswordPage-CxIo4Yvk.js → ResetPasswordPage-BmP2ALzo.js} +2 -2
- package/dist/assets/studio/assets/{RowMenu-CvzLtDk6.js → RowMenu-24gQZese.js} +2 -2
- package/dist/assets/studio/assets/{ScheduleCard-BNM_ecEJ.js → ScheduleCard-Chuz3OOY.js} +2 -2
- package/dist/assets/studio/assets/ScheduleDialog-Dh8bLDpe.js +2 -0
- package/dist/assets/studio/assets/{ScheduleHistoryPage-B_79RLNY.js → ScheduleHistoryPage-CS6Epz5q.js} +2 -2
- package/dist/assets/studio/assets/{ScheduleStatusBadge-CgZ65nzd.js → ScheduleStatusBadge-B4BPQAx4.js} +2 -2
- package/dist/assets/studio/assets/{SchedulerStalled-C8C91Ds8.js → SchedulerStalled-nDxONkWM.js} +2 -2
- package/dist/assets/studio/assets/{Schedules-xnhmCXba.js → Schedules-Dpu78aTu.js} +2 -2
- package/dist/assets/studio/assets/{SchedulesPage-KA7TSNlR.js → SchedulesPage-a0OcBtxY.js} +2 -2
- package/dist/assets/studio/assets/{ScopeBadge-C_XnkWYq.js → ScopeBadge-BNM9FT-5.js} +2 -2
- package/dist/assets/studio/assets/{SectionCard-GPZWTzbx.js → SectionCard-BxLoZOcp.js} +2 -2
- package/dist/assets/studio/assets/Seo-ytU9solr.js +2 -0
- package/dist/assets/studio/assets/SeoPreview-yfqYstu_.js +2 -0
- package/dist/assets/studio/assets/{Settings-BeAGyeQI.js → Settings-m8Ai9oIJ.js} +2 -2
- package/dist/assets/studio/assets/{SiteAccessField-C0J26Q-t.js → SiteAccessField-Dt_TYknY.js} +2 -2
- package/dist/assets/studio/assets/{SiteOverviewPage-CDnjXcd6.js → SiteOverviewPage-C-fICOMI.js} +3 -3
- package/dist/assets/studio/assets/SiteSettingsPage-B38ObhQp.js +3 -0
- package/dist/assets/studio/assets/{SitesPage-DSpx69dn.js → SitesPage-BeZp4ZWP.js} +2 -2
- package/dist/assets/studio/assets/{SkillsPage-DF4xGVkJ.js → SkillsPage-HCITPWLC.js} +2 -2
- package/dist/assets/studio/assets/SnapshotsPage-Bz6q1NZG.js +2 -0
- package/dist/assets/studio/assets/{Status-B6jbm_Zq.js → Status-Bj8AxXIX.js} +2 -2
- package/dist/assets/studio/assets/{StatusActions-DgRInkQb.js → StatusActions-B7qbr17X.js} +3 -3
- package/dist/assets/studio/assets/{TagsMigration-DYR-VkVc.js → TagsMigration-DWLg_J-t.js} +2 -2
- package/dist/assets/studio/assets/Taxonomy-CVwYZsH4.js +2 -0
- package/dist/assets/studio/assets/{TaxonomyPage-BYCM2_2l.js → TaxonomyPage-Bl9v3mnU.js} +2 -2
- package/dist/assets/studio/assets/{TermEditorPage-C8NQHobp.js → TermEditorPage-0g_PGShy.js} +2 -2
- package/dist/assets/studio/assets/{TermPickers-a6Ed0J4R.js → TermPickers-BI3nNBmj.js} +2 -2
- package/dist/assets/studio/assets/{Toast-DYiK3WzC.js → Toast-CXAk8wMq.js} +2 -2
- package/dist/assets/studio/assets/{TranslationList-D6YA7Vjr.js → TranslationList-hfg5iYSt.js} +2 -2
- package/dist/assets/studio/assets/{TranslationsPage-Ci-5wWIr.js → TranslationsPage-DEH0PY-i.js} +2 -2
- package/dist/assets/studio/assets/api-Mdeo6gzg.js +4 -0
- package/dist/assets/studio/assets/{api-errors-DObQzNBx.js → api-errors-CXLBmdpk.js} +2 -2
- package/dist/assets/studio/assets/{approvals-Dq0eHG8S.js → approvals-CIXN6a5b.js} +2 -2
- package/dist/assets/studio/assets/ar-ofvhEEt4.js +6 -0
- package/dist/assets/studio/assets/{charts-RqioK5fB.js → charts-Dni4XxBl.js} +2 -2
- package/dist/assets/studio/assets/{clipboard-text-gd6s3n1bqse9zgt8-_Ede63Fg.js → clipboard-text-gd6s3n1bqse9zgt8-ZQgZ1_-o.js} +2 -2
- package/dist/assets/studio/assets/{collapsible-l8g94on4w7qfosmn-Dk6hg5t7.js → collapsible-l8g94on4w7qfosmn-Bn4JrutR.js} +2 -2
- package/dist/assets/studio/assets/{combobox-hdxtsm2gqcxxgfju-DgmfP13I.js → combobox-hdxtsm2gqcxxgfju-C8ue-AJ-.js} +2 -2
- package/dist/assets/studio/assets/{createToastManager-onmoqrmr8zo02rif-_Y_xgvmb.js → createToastManager-onmoqrmr8zo02rif-V5YAqQyh.js} +2 -2
- package/dist/assets/studio/assets/de-CUjqphee.js +6 -0
- package/dist/assets/studio/assets/{deleteLabels-C5GfAnPh.js → deleteLabels-Cm9ihsQ3.js} +2 -2
- package/dist/assets/studio/assets/{dialog-glpnivujociqs9lh-Cch0_XyA.js → dialog-glpnivujociqs9lh-BqMU4UxI.js} +2 -2
- package/dist/assets/studio/assets/{editor-BQa6TaZi.js → editor-D3pyx_CZ.js} +2 -2
- package/dist/assets/studio/assets/es-DXloqVLE.js +6 -0
- package/dist/assets/studio/assets/fa-BDO-9MVu.js +6 -0
- package/dist/assets/studio/assets/fr-Cm9SdqZD.js +6 -0
- package/dist/assets/studio/assets/he-Bt5bz790.js +6 -0
- package/dist/assets/studio/assets/hi-C3-GZG-C.js +6 -0
- package/dist/assets/studio/assets/i18n-CdW50___.js +7 -0
- package/dist/assets/studio/assets/id-fk1BPM1I.js +6 -0
- package/dist/assets/studio/assets/index-DYyDeKnk.js +4 -0
- package/dist/assets/studio/assets/it-KwlZf5Ee.js +6 -0
- package/dist/assets/studio/assets/ja-BZHSI7Yq.js +6 -0
- package/dist/assets/studio/assets/ko-B9L7Js7b.js +6 -0
- package/dist/assets/studio/assets/layer-dialog-j5ywmzs46ccg6oqy-DLBR2ljP.js +2 -0
- package/dist/assets/studio/assets/{media-PkgIV37k.js → media-D4YZ713s.js} +3 -3
- package/dist/assets/studio/assets/nl-4w3IGlXj.js +6 -0
- package/dist/assets/studio/assets/permalinks-CNYgOPCo.js +2 -0
- package/dist/assets/studio/assets/pl-CCYhWdyU.js +6 -0
- package/dist/assets/studio/assets/pt-BR-xY-_D6mf.js +6 -0
- package/dist/assets/studio/assets/ru-DZ1xI15Q.js +6 -0
- package/dist/assets/studio/assets/{schedules-api-5mgRmrjL.js → schedules-api-DWQc-xjG.js} +2 -2
- package/dist/assets/studio/assets/{tag-input-ohfybx5dbxy3houy-C5BpU4R7.js → tag-input-ohfybx5dbxy3houy-CbqFHYvH.js} +2 -2
- package/dist/assets/studio/assets/tr-n4MtlsVR.js +6 -0
- package/dist/assets/studio/assets/uk-aiCWjdse.js +6 -0
- package/dist/assets/studio/assets/{useAnalyticsCard-tsyFdq37.js → useAnalyticsCard-D_EaD-GJ.js} +2 -2
- package/dist/assets/studio/assets/{useMe-DcrRDsez.js → useMe-D5W0xdO9.js} +2 -2
- package/dist/assets/studio/assets/{usePaging-kMfWrvea.js → usePaging-YS-Bfnj9.js} +2 -2
- package/dist/assets/studio/assets/{usePendingApprovals-BVHPCnd7.js → usePendingApprovals-54FcNUfi.js} +2 -2
- package/dist/assets/studio/assets/zh-Hans-D7CeiRbC.js +6 -0
- package/dist/assets/studio/index.html +16 -16
- package/dist/src/commands/analytics.d.ts +1 -1
- package/dist/src/commands/analytics.js +4 -3
- package/dist/src/commands/deploy/resources.d.ts +10 -0
- package/dist/src/commands/deploy/resources.js +25 -0
- package/dist/src/commands/deploy/ship.js +25 -19
- package/package.json +11 -11
- package/dist/assets/studio/assets/AgentsPage-DTYrfM8r.js +0 -2
- package/dist/assets/studio/assets/AnalyticsPage-BHH7HUno.js +0 -3
- package/dist/assets/studio/assets/ArticleEditorPage-DNo73SWr.js +0 -2
- package/dist/assets/studio/assets/ArticlesPage-aY2U4lYq.js +0 -2
- package/dist/assets/studio/assets/CommentThreadPage-JhpHw2fy.js +0 -2
- package/dist/assets/studio/assets/GovernanceDialog-6vMG-DjQ.js +0 -2
- package/dist/assets/studio/assets/MembersPage-1Dpp6fR0.js +0 -2
- package/dist/assets/studio/assets/Menus-BqLOw0If.js +0 -2
- package/dist/assets/studio/assets/RedirectDialog-BEIl9Rio.js +0 -2
- package/dist/assets/studio/assets/RedirectsPage-ClI2C61E.js +0 -2
- package/dist/assets/studio/assets/ScheduleDialog-BcjQEb-r.js +0 -2
- package/dist/assets/studio/assets/Seo-S2Fmf0_k.js +0 -2
- package/dist/assets/studio/assets/SeoPreview-BaS-x90q.js +0 -2
- package/dist/assets/studio/assets/SiteSettingsPage-DdNblHPf.js +0 -3
- package/dist/assets/studio/assets/SnapshotsPage-CTUCS2y4.js +0 -2
- package/dist/assets/studio/assets/Taxonomy-BP_PrlF2.js +0 -2
- package/dist/assets/studio/assets/api-Cqqt5jTd.js +0 -4
- package/dist/assets/studio/assets/ar-DZD_LN4R.js +0 -6
- package/dist/assets/studio/assets/de-D65bXpkj.js +0 -6
- package/dist/assets/studio/assets/es-c812D9nl.js +0 -6
- package/dist/assets/studio/assets/fa-vxNhZpLh.js +0 -6
- package/dist/assets/studio/assets/fr-DhVGWQ1r.js +0 -6
- package/dist/assets/studio/assets/he-BUNedH-H.js +0 -6
- package/dist/assets/studio/assets/hi-BRLMI3vy.js +0 -6
- package/dist/assets/studio/assets/i18n-Dz1LE8DB.js +0 -7
- package/dist/assets/studio/assets/id-Di4ybegt.js +0 -6
- package/dist/assets/studio/assets/index-DMKFLgkG.js +0 -4
- package/dist/assets/studio/assets/it-CmzTT1jK.js +0 -6
- package/dist/assets/studio/assets/ja-Bx1aRBDT.js +0 -6
- package/dist/assets/studio/assets/ko-Dcw0wiZr.js +0 -6
- package/dist/assets/studio/assets/layer-dialog-j5ywmzs46ccg6oqy-CySAcQJW.js +0 -2
- package/dist/assets/studio/assets/nl-BeTtPQCB.js +0 -6
- package/dist/assets/studio/assets/pl-DMfBcmtn.js +0 -6
- package/dist/assets/studio/assets/pt-BR-B4XbkQp3.js +0 -6
- package/dist/assets/studio/assets/ru-ttvcqOmM.js +0 -6
- package/dist/assets/studio/assets/tr-eeqDuraZ.js +0 -6
- package/dist/assets/studio/assets/uk-ooRGP488.js +0 -6
- package/dist/assets/studio/assets/zh-Hans-CGcsS9Bh.js +0 -6
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
var e={app:{name:`Cloudhal Studio`,tagline:`Войдите, чтобы управлять своими сайтами.`},playground:{title:`Playground`,description:[[2,`count`,{one:[`Осталась `,[4],` минута`],few:[`Осталось `,[4],` минуты`],many:[`Осталось `,[4],` минут`],other:[`Осталось `,[4],` минуты`]}],`. Всё удалится по окончании сеанса, поэтому не вводите личные данные.`],reset:`Сбросить`,deploy:`Развернуть в Cloudflare`,unavailableTitle:`Доступно в вашей установке`,unavailableDescription:`Участникам команды, ключам агентов и настройкам аккаунта нужен вход, поэтому в playground их нет. Разверните Cloudhal в своём аккаунте Cloudflare, чтобы ими пользоваться.`},common:{save:`Сохранить`,cancel:`Отмена`,delete:`Удалить`,publish:`Опубликовать`,rollBack:`Откатить`,loading:`Загрузка…`,signOut:`Выйти`,live:`Опубликовано`,language:`Язык`,more:`Ещё`,rev:`ред. {rev}`,close:`Закрыть`,optional:`(необязательно)`,moreInformation:`Подробнее`,copy:`Копировать`,copied:`Скопировано`,retry:`Повторить`,discard:`Отбросить`,saveChanges:`Сохранить изменения`,unsaved:`Несохранённые изменения`,onThisPage:`На этой странице`,on:`Вкл.`,off:`Выкл.`,deleteResource:{title:`Удалить {name}`,warning:`Это действие нельзя отменить. {type} {name} будет удалён безвозвратно.`,typeToConfirm:`Введите {name} для подтверждения:`,copy:`Скопировать {name} в буфер обмена`,confirmInput:`Введите {name}, чтобы подтвердить удаление`,delete:`Удалить: {type}`}},theme:{label:`Тема`,current:`Тема: {name}`,light:`Светлая`,dark:`Тёмная`,system:`Системная`},auth:{signInTitle:`С возвращением`,signUpTitle:`Создайте учётную запись`,signUpDescription:`Первая учётная запись в новом Studio становится его владельцем.`,footer:`Открытый исходный код · Apache-2.0`,signIn:`Войти`,createAccount:`Создать учётную запись`,name:`Имя`,email:`Электронная почта`,password:`Пароль`,passwordHint:`Не менее 8 символов`,failed:`Не удалось войти`,setupTitle:`Настройка этого Studio`,setupDescription:"Вы открыли ссылку настройки из `cloudhal deploy`. Учётная запись, которую вы сейчас создадите, станет владельцем; после этого регистрация закроется."},sites:{title:`Сайты`,description:`Каждый сайт — это граф страниц и контента, с которым агенты работают с вашего одобрения.`,columns:{project:`Проект`,name:`Название`,slug:`Slug`,pages:`Страницы`,status:`Статус`},notPublished:`Не опубликован`,empty:`Сайтов пока нет`,emptyDescription:`Создайте сайт из терминала, и он появится здесь.`,search:`Поиск сайтов`,usageTitle:`Из терминала`,usageDescription:`Всё, что есть в Studio, доступно и как команда CLI, поэтому агенты и скрипты могут делать ту же работу.`,open:`Открыть`},pageHeaders:{media:{title:`Медиафайлы`,description:`Изображения, видео, аудио, документы и файлы данных этого сайта. Новые файлы становятся доступны после следующей публикации.`},pages:{title:`Страницы`,description:`Маршруты этого сайта. Каждая страница — это набор секций, которые отрисовывают темы.`},articles:{title:`Статьи`,description:`Публикации и другие записи, написанные людьми или агентами и публикуемые вместе с сайтом.`},snapshots:{title:`Снимки`,description:`Зафиксированные версии сайта. Публикация направляет опубликованный сайт на один из них, откат — на более ранний.`},activity:{title:`Активность`,description:`Каждый вызов инструмента, сделанный агентом или человеком на этом сайте, вместе с решением политики.`},approvals:{title:`Одобрения`,description:`Здесь ждут решения публикации, откаты и удаления от агентов, их правки в режиме «Вручную», запросы на большую самостоятельность, а также публикации, которые роль человека не позволяет сделать самостоятельно, — пока их не рассмотрит тот, кто вправе решать.`},settings:{title:`Настройки`,description:`Название, языки, домены и ссылки предпросмотра этого сайта.`},agents:{title:`Агенты`,description:`Ключи позволяют агентам, задачам CI и MCP-клиентам работать с вашими сайтами. Режим ключа определяет, что агент делает сам, а что ждёт вас.`},skills:{title:`Навыки`,description:`Сценарии, которые агенты читают через MCP. Вызов в рамках навыка получает только объявленные им области доступа, а перечисленные в нём инструменты всегда ждут человека.`},account:{title:`Учётная запись`,description:`Ваш профиль, способ входа и кто ещё может войти в этот Studio.`},taxonomy:{title:`Категории и теги`,description:`Как статьи распределяются и находятся. Переименование, объединение или вывод из употребления — это одно изменение и один снимок, после которых остаются перенаправления.`},navigation:{title:`Навигация`,description:`Меню, по которым ориентируются посетители: шапка, подвал и любые другие, которые размещает ваша тема. Пункты указывают на страницы и категории, поэтому переименования их никогда не ломают.`},translations:{title:`Переводы`,description:`Каждая страница и статья по языкам: чего не хватает, что устарело или ждёт проверки человеком.`},redirects:{title:`Перенаправления`,description:`Старые адреса и куда они ведут посетителей. Смена slug, объединение и вывод из употребления добавляют их автоматически; можно добавить и свои.`},team:{title:`Команда`,description:`Кто работает в этом Studio и в какой роли. Люди присоединяются по одноразовой ссылке-приглашению; их агенты никогда не могут больше, чем они сами.`}},nav:{media:`Медиафайлы`,comments:`Комментарии`,overview:`Обзор`,content:`Контент`,history:`История`,automation:`Автоматизация`,account:`Учётная запись`,home:`Обзор`,pages:`Страницы`,articles:`Статьи`,snapshots:`Снимки`,agents:`Агенты`,allSites:`Все сайты`,sites:`Сайты`,switchSite:`Сменить сайт`,search:`Поиск или команда…`,shortcutHint:`⌘K`,shortcutHintCtrl:`Ctrl K`,agentSkills:`Навыки`,schedules:`Расписания`,activity:`Активность`,agentKeys:`Ключи и MCP`,approvals:`Одобрения`,settings:`Настройки`,siteSettings:`Настройки`,taxonomy:`Категории и теги`,navigation:`Навигация`,redirects:`Перенаправления`,translations:`Переводы`,team:`Команда`,analytics:`Аналитика`},commands:{goMedia:`Перейти к медиафайлам`,goComments:`Перейти к комментариям`,goAnalytics:`Перейти к аналитике`,placeholder:`Введите команду…`,empty:`Подходящих команд нет`,hintNavigate:`Перемещение`,hintSelect:`Выполнить`,hintClose:`Закрыть`,goOverview:`Перейти к обзору`,goArticles:`Перейти к статьям`,goSnapshots:`Перейти к снимкам`,newArticle:`Новая статья`,createSnapshot:`Сделать снимок`,publishSite:`Сделать снимок и опубликовать сайт`,goActivity:`Перейти к активности`,goAgents:`Перейти к агентам`,createAgentKey:`Создать ключ агента`,goSkills:`Перейти к навыкам`,goAccount:`Перейти к настройкам учётной записи`,goTeam:`Перейти к команде`,goSiteSettings:`Перейти к настройкам сайта`,goApprovals:`Перейти к одобрениям`,goTaxonomy:`Перейти к категориям и тегам`,goNavigation:`Перейти к меню навигации`,goRedirects:`Перейти к перенаправлениям`,goSchedules:`Перейти к расписаниям`,newSchedule:`Запланировать публикацию…`,searchPlaceholder:`Найдите контент или выполните команду…`,searchEmpty:`Нет подходящих команд или контента`,hintNewTab:`Новая вкладка`,groups:{commands:`Команды`,entry:`Статьи`,page:`Страницы`,term:`Категории и теги`,asset:`Медиафайлы`,menu:`Пункты меню`,redirect:`Перенаправления`}},overview:{commentsWaiting:[[2,`count`,{one:[[4],` комментарий ждёт решения`],few:[[4],` комментария ждут решения`],many:[[4],` комментариев ждут решения`],other:[[4],` комментария ждут решения`]}]],commentsWaitingDescription:`Читатели не увидят их, пока кто-нибудь их не одобрит.`,liveSnapshotLabel:`Опубликованный снимок`,notPublished:`Ещё не опубликован`,newPage:`Новая страница`,pages:`Страницы`,columns:{title:`Заголовок`,path:`Путь`,status:`Статус`,updated:`Обновлено`},empty:`Страниц пока нет`,emptyDescription:`Создайте первую страницу или попросите агента сделать заготовку.`,search:`Поиск страниц`,status:`Статус`,live:`Опубликовано`,recentArticles:`Недавние статьи`,viewAll:`Показать все`,cli:`Из терминала`},pageStatus:{publishTitle:`Опубликовать «{title}»?`,published:`Страница опубликована`,unpublished:`Страница возвращена в черновики`,failed:`Статус страницы не изменился`,leftOut:[[2,`count`,{one:[[4],` страница не опубликована`],few:[[4],` страницы не опубликованы`],many:[[4],` страниц не опубликовано`],other:[[4],` страницы не опубликовано`]}]],leftOutDescription:`Черновики и страницы на проверке, включая новые переводы, не попадают на живой сайт. Сначала опубликуйте их.`,review:`Проверить страницы`},articles:{description:`Записи в коллекции «posts».`,newArticle:`Новая статья`,empty:`Статей пока нет`,emptyDescription:`Напишите первую или попросите об этом агента.`,untitled:`Без названия`,columns:{title:`Заголовок`,author:`Автор`,status:`Статус`,updated:`Обновлено`},search:`Поиск статей`,none:`—`,noCategory:`Без категории`,primary:`Основная категория`,facets:{label:`Фильтр статей`,category:`Фильтр по категории`,tag:`Фильтр по тегу`,allCategories:`Все: {label}`,allTags:`Все: {label}`,clear:`Сбросить фильтры`,empty:`Нет статей, подходящих под эти фильтры`,emptyDescription:`Попробуйте другую категорию или тег либо сбросьте фильтры.`}},articleCorrections:{title:`Исправления`,description:`Читатели видят их в конце статьи, сначала новые, а дата последнего становится датой обновления статьи. После публикации исправление остаётся: тот, кто может публиковать, может изменить формулировку, но никто не может его удалить.`,empty:`Исправлений нет`,emptyDescription:`Добавьте исправление, когда опубликованный материал существенно меняется.`,kind:`Тип`,kinds:{correction:`Исправление`,clarification:`Уточнение`,update:`Обновление`},note:`Что изменилось`,noteHint:`Одно-два предложения. Ссылки и выделение Markdown работают.`,add:`Добавить исправление`,unsaved:`Не сохранено`,remove:`Удалить исправление`,pending:`Сохраните статью, чтобы добавить его; на сайте оно появится после следующей публикации.`},articleTerms:{title:`Категории и теги`,description:`Категории распределяют статью по разделам, теги описывают её. Основная категория показывается в «хлебных крошках» и в метаданных статьи.`,legacyDescription:`На этом сайте теги всё ещё хранятся как обычный текст. Перенесите их в категории и теги, чтобы у них появились названия, архивы и перенаправления.`,legacyTitle:`Старые теги этой статьи`,legacyPending:`{tags} станут тегами при сохранении.`,required:`Выберите значение «{singular}», чтобы отправить статью на проверку или опубликовать её.`,requiredToast:`Сначала выберите значение «{singular}»`,slugRedirect:`Строчные буквы через дефис. Эта статья опубликована: при смене slug со старого адреса будет создано перенаправление.`},pickers:{under:`в {path}`,clear:`Очистить`,showOptions:`Показать варианты`,noMatch:`Ничего не найдено`,remove:`Удалить {name}`,atMost:`Не больше {max}. Удалите один, чтобы добавить другой.`,categoryHint:`До {max}. Начните вводить, чтобы искать по названиям и синонимам.`,categoryRequiredHint:`Нужно для отправки на проверку или публикации. До {max}.`,categoryPlaceholder:`Выберите категории…`,noCategory:`Подходящих категорий нет. Добавьте категории в разделе «Категории и теги».`,primary:`Основная категория`,primaryHint:`Показывается в «хлебных крошках» и используется как раздел статьи.`,primaryNone:`Выберите…`,tagHint:`До {max}. Сначала идут существующие теги; их можно найти и по синонимам.`,tagPlaceholder:`Добавьте тег…`,tagFull:`Достигнут лимит тегов`,viaSynonym:`синоним «{value}»`,similar:`похожий`,create:`Создать «{name}»`,createNoSlug:`В этом названии нет букв или цифр для адреса. Попробуйте другое название.`,nearDuplicate:`Похоже на {names}. Используйте существующий тег, если он означает то же самое.`,proposedChip:`Предложено агентом. Публичная страница появится после одобрения.`},editor:{schedule:`Запланировать…`,locked:`Это зафиксировано в запланированном релизе. Снимите его с расписания, чтобы редактировать.`,heroNoImage:`Нет главного изображения`,status:`Статус`,title:`Заголовок`,slug:`Slug`,summary:`Краткое описание`,summaryHint:`Используется как мета-описание в результатах поиска и при публикации ссылок.`,body:`Текст (markdown)`,tags:`Теги`,tagsHint:`Через запятую`,path:`Путь`,pathHint:`Абсолютный, строчными буквами, без завершающей косой черты`,sections:`Секции`,addSection:`Добавить секцию`,noSections:`Секций пока нет`,noSectionsDescription:`Добавьте главный экран, форматированный текст, изображение или список контента.`,remove:`Удалить`,moveUp:`Переместить вверх`,moveDown:`Переместить вниз`,heading:`Заголовок`,subheading:`Подзаголовок`,caption:`Подпись`,collection:`Коллекция`,limit:`Лимит`,sort:`Сортировка`,sortNewest:`Сначала новые`,sortOldest:`Сначала старые`,sortTitle:`По заголовку`,saved:`Сохранено`,sendToReview:`Отправить на проверку`,submitForReview:`Отправить на проверку`,backToDraft:`Вернуть в черновик`,archive:`В архив`,restore:`Восстановить как черновик`,publishArticleTitle:`Опубликовать эту статью?`,publishArticleDescription:`Она появится на сайте, когда в следующий раз будет сделан снимок и сайт будет опубликован.`,publishPageTitle:`Опубликовать эту страницу?`,publishPageDescription:`Страница появится на сайте при следующей публикации. Другие страницы и языки сохраняют свой статус.`,deleteArticle:`Удалить статью`,deletePage:`Удалить страницу`,article:`Статья`,page:`Страница`,slugHint:`Строчные буквы через дефис; становится частью URL.`,metadata:`Сведения`,moreActions:`Другие действия`,unpublish:`Снять с публикации (в черновик)`,duplicate:`Дублировать`,duplicated:`Копия создана`,copyTitle:`{title} (копия)`,dangerZone:`Опасная зона`,deletePageTitle:`Удалить эту страницу`,deletePageHint:`Удаляет страницу и её секции. Опубликованные снимки сохраняют свою копию.`,deleteArticleTitle:`Удалить эту статью`,deleteArticleHint:`Удаляет статью с сайта. Опубликованные снимки сохраняют свою копию.`,removeSectionTitle:`Удалить эту секцию?`,removeSectionDescription:`Секция типа «{kind}» удаляется из черновика. Страница изменится только после сохранения.`,sectionKinds:{hero:`Главный экран`,richText:`Форматированный текст`,image:`Изображение`,contentList:`Список контента`,component:`Блок`,surface:`Сгенерированный интерфейс`},buildLive:`Сборка вживую`,buildLiveHint:`Смотрите, как агенты собирают эту страницу в реальном времени`,surface:{title:[`Сгенерированный интерфейс · `,[2,`count`,{one:[[4],` компонент`],few:[[4],` компонента`],many:[[4],` компонентов`],other:[[4],` компонента`]}]],hint:`Собран из компонентов темы. Тексты меняйте здесь; чтобы изменить макет, попросите ИИ.`,json:`Сгенерированный интерфейс в виде данных`,showJson:`Показать JSON`,outline:`Компоненты этой секции`,expand:`Показать содержимое {title}`,collapse:`Скрыть содержимое {title}`,changeWithAi:`Изменить с ИИ`,editTexts:`Изменить тексты {title}`,changePart:`Изменить {title} с ИИ`,bound:`показывает {path}`,computed:`вычисляется ({fn})`,notPlaced:`Не размещён на странице`},blocks:{menu:`Блоки`,unknown:`Неизвестный блок · {type}`,unknownHint:`В этом развёртывании нет типа блока с таким именем (возможно, сменилась тема). Блок сохраняется как есть и не показывается на сайте.`,item:`Элемент {n}`,addItem:`Добавить элемент`,removeItem:`Удалить элемент`,moveUp:`Переместить вверх`,moveDown:`Переместить вниз`,values:{tone:{info:`Информация`,success:`Успех`,warning:`Предупреждение`,danger:`Опасность`},variant:{primary:`Основной`,secondary:`Второстепенный`}}},bodyTitle:`Текст`,markdown:`Markdown`,words:[[2,`count`,{one:[[4],` слово`],few:[[4],` слова`],many:[[4],` слов`],other:[[4],` слова`]}]],id:`ID`,revision:`Ревизия`,locale:`Язык`,author:`Автор`,updatedAt:`Обновлено`,publishedAt:`Опубликовано`},seo:{counter:`{count} / {max}`,fixErrors:`Перед сохранением исправьте выделенные поля.`,cover:{title:`Обложка`,description:`Показывается над статьёй и используется как её изображение, когда ссылкой делятся. Выберите его в медиатеке или загрузите туда новое.`,url:`URL изображения`,urlHint:`Адрес https:// или путь на вашем сайте, например /images/cover.jpg.`,urlPlaceholder:`https://… или /images/cover.jpg`,alt:`Замещающий текст`,altHint:`Опишите, что изображено. Программы чтения с экрана зачитывают его тем, кто не видит изображение, а поисковые системы используют его, чтобы понять картинку.`,altPlaceholder:`Маяк над спокойным морем в сумерках`,remove:`Удалить изображение`,empty:`Нет обложки`,loading:`Загрузка изображения…`,broken:`Не удалось загрузить это изображение`,brokenHint:`Проверьте адрес и то, что изображение публично доступно.`,brokenPathHost:`Пути сайта загружаются с {host}. Проверьте путь или то, что сайт развёрнут.`,brokenPathNoDomain:`Пути сайта загружаются с основного домена. Добавьте его в разделе «Настройки › Домены», чтобы видеть их здесь.`,size:`{width} × {height} пкс`,errors:{required:`Введите адрес изображения или удалите изображение.`,insecure:`Используйте https://. Браузеры блокируют изображения по http на защищённых сайтах.`,invalid:`Введите адрес https:// или путь, начинающийся с /.`,tooLong:`Не более 2048 символов.`,altRequired:`Опишите изображение. Для обложки замещающий текст обязателен.`,altTooLong:`Не более 500 символов.`}},preview:{title:`Предпросмотр в поиске и соцсетях`,description:`Как эта статья выглядит в результатах поиска и когда её ссылкой делятся. Краткое описание используется как мета-описание, а обложка — как изображение для соцсетей.`,search:`Результат поиска`,social:`Карточка для соцсетей`,noSummary:`Краткого описания пока нет. Поисковые системы и соцсети возьмут текст из статьи.`,noDescription:`Нет мета-описания. Поисковые системы возьмут текст со страницы.`},checks:{label:`Проверки`,title:`Заголовок`,titleGood:[[2,`count`,{one:[[4],` символ`],few:[[4],` символа`],many:[[4],` символов`],other:[[4],` символа`]}],`. Помещается в результат поиска.`],titleLong:[[2,`count`,{one:[[4],` символ`],few:[[4],` символа`],many:[[4],` символов`],other:[[4],` символа`]}],`. Результаты поиска обрезают заголовки примерно после 60.`],titleMissing:`Добавьте заголовок.`,description:`Мета-описание`,summary:`Мета-описание (краткое описание)`,descriptionGood:[[2,`count`,{one:[[4],` символ`],few:[[4],` символа`],many:[[4],` символов`],other:[[4],` символа`]}],`. Помещается в результат поиска.`],descriptionShort:[[2,`count`,{one:[[4],` символ`],few:[[4],` символа`],many:[[4],` символов`],other:[[4],` символа`]}],`. Короткие описания часто заменяются; ориентируйтесь на 50–160.`],descriptionLong:[[2,`count`,{one:[[4],` символ`],few:[[4],` символа`],many:[[4],` символов`],other:[[4],` символа`]}],`. Результаты поиска обрезают описание примерно после 160.`],summaryMissing:`Добавьте краткое описание. Без него поисковые системы возьмут текст из статьи.`,image:`Изображение для соцсетей`,imageSet:`Используется обложка.`,imageMissing:`Нет обложки, поэтому у ссылок не будет изображения.`,imageBroken:`Обложка не загружается.`,status:{good:`Хорошо`,short:`Коротко`,long:`Слишком длинно`,missing:`Отсутствует`,broken:`Не работает`}},page:{title:`Поисковые системы и соцсети`,description:`Как эта страница выглядит в результатах поиска и когда её ссылкой делятся.`,seoTitle:`SEO-заголовок`,seoTitleHint:`Оставьте пустым, чтобы использовать заголовок страницы.`,seoDescription:`Мета-описание`,seoDescriptionHint:`Одно-два предложения о том, что предлагает страница. Ориентируйтесь на 50–160 символов.`,seoDescriptionPlaceholder:`Что посетители найдут на этой странице`,noindex:`Скрыть от поисковых систем`,noindexHint:`Добавляет тег noindex. Страница остаётся доступной по ссылке.`,noindexWarningTitle:`Эта страница скрыта от поисковых систем`,noindexWarning:`Поисковые системы просят не включать её в выдачу, а уже включённая страница исчезнет после их следующего визита. Не включайте это для страниц, которые люди должны находить через поиск.`,advanced:`Дополнительно`,custom:`Своё`,canonical:`Канонический URL`,canonicalHintHost:`Обычно пусто: используется адрес страницы на {host}. Задавайте, только если оригинал этого контента находится по другому адресу.`,canonicalHint:`Обычно пусто: используется адрес страницы на основном домене сайта. Задавайте, только если оригинал этого контента находится по другому адресу.`,canonicalPlaceholder:`https://example.com/original-page`,searchPreview:`Предпросмотр в поиске`,hidden:`Скрыто от поиска`,errors:{titleTooLong:`Не более 300 символов.`,descriptionTooLong:`Не более 500 символов.`,canonicalInvalid:`Введите полный адрес, начинающийся с https://.`,canonicalTooLong:`Не более 2048 символов.`}},noindexBadge:`noindex`,noindexBadgeHint:`Скрыто от поисковых систем. Измените это в поисковых настройках страницы.`,noCover:`Нет обложки`,archive:{seoTitleHint:`Оставьте пустым, чтобы использовать название термина.`,noindexHint:`Добавляет архиву тег noindex. Он остаётся доступным по ссылке.`,noindexWarningTitle:`Этот архив скрыт от поисковых систем`,noindexWarning:`Поисковые системы просят не включать его в выдачу, и он исключается из карты сайта. Не включайте это для тем, которые люди должны находить через поиск.`}},status:{draft:`Черновик`,review:`На проверке`,published:`Опубликовано`,archived:`В архиве`},site:{publish:`Опубликовать`,publishDescription:`Сделать снимок текущего графа и сделать его опубликованной версией.`,description:`/{slug} · {locale}`,rowMenu:`Другие действия`},snapshots:{description:`Каждый снимок неизменяем; публикация направляет сайт на один из них.`,label:`Метка`,labelPlaceholder:`Например, утренний выпуск`,empty:`Снимков пока нет`,emptyDescription:`Сделайте снимок, чтобы зафиксировать текущее состояние сайта.`,created:`Снимок создан`,published:`Опубликовано`,publishedSnapshot:`Снимок опубликован`,rolledBack:`Откат выполнен`,failed:`Ошибка`,rollbackTitle:`Откатить опубликованный сайт?`,publishTitle:`Опубликовать на сайте?`,createDescription:`Записывается снимок текущего графа, и он становится опубликованной версией.`,becomesLive:`{name} станет опубликованной версией.`,fromStudio:`Снимок из Studio`,publishedFromStudio:`Опубликовано из Studio`,compare:`Сравнить`,create:`Сделать снимок`,createTitle:`Новый снимок`,createIntro:`Фиксирует текущие страницы, статьи и настройки сайта. Сделанные снимки никогда не меняются.`,labelDescription:`Необязательно. Показывается в списке и в «Активности» вместо причины.`,afterCreate:`После создания`,keepOption:`Оставить опубликованный сайт как есть`,keepOptionDescription:`Только сохранить снимок. Опубликовать или сравнить его можно позже из этого списка.`,publishOption:`Опубликовать его на сайте`,publishOptionDescription:`Снимок станет опубликованной версией. Перед публикацией вы подтвердите действие.`,continueToPublish:`Перейти к публикации`,search:`Поиск снимков`,noMatches:`Подходящих снимков нет`,noMatchesDescription:`Попробуйте другую метку или ID снимка.`,actions:`Действия`,columns:{snapshot:`Снимок`,actor:`Автор`,changes:`Изменения`,when:`Создан`},reasons:{manual:`Вручную`,agentMutation:`Изменение агента`,publish:`Публикация`,rollback:`Откат`,scheduled:`По расписанию`,import:`Импорт`}},errors:{title:`Что-то пошло не так`,conflict:`Кто-то другой изменил это после того, как вы открыли. Перезагрузите, чтобы получить последнюю версию.`,api:{not_found:`Этого здесь больше нет. Возможно, кто-то это удалил.`,forbidden:`У вас нет разрешения на это действие.`,unauthorized:`Ваш сеанс завершён. Войдите снова.`,rank:`Ваша роль этого не позволяет.`,not_own:`Это можно делать только со своей работой.`,missing_scope:`Этому ключу или сеансу это не разрешено.`,rate_limited:`Слишком много запросов. Подождите немного и повторите попытку.`,internal:`На сервере что-то пошло не так. Повторите попытку.`,invalid_json:`Сервер прислал ответ, который Studio не смог прочитать. Повторите попытку.`,unique:`Что-то с таким названием или адресом уже существует.`,slug_taken:`Этот адрес уже используется.`,path_conflict:`Этот путь уже использует другая страница или статья.`,reserved_path:`Этот путь зарезервирован для самого сайта (поиск, медиафайлы или языковой префикс).`,in_use:`Это ещё используется, поэтому удалить нельзя.`,quota_exceeded:`Квота хранилища исчерпана.`,too_large:`Это изменение слишком велико для одной операции. Разделите его.`,state_changed:`Тем временем это изменилось. Перезагрузите и повторите попытку.`,network:`Не удаётся связаться с сервером. Проверьте подключение и повторите попытку.`,status:`Запрос не выполнен (HTTP {status}).`}},agents:{description:`Ключи позволяют агентам, задачам CI и MCP-клиентам работать с вашими сайтами. У каждого ключа есть режим, который определяет, что агент делает сам, а что ждёт вас. Каждый вызов проверяется политикой и записывается в активность сайта.`,createKey:`Создать ключ`,search:`Поиск ключей`,columns:{name:`Название`,owner:`Кем создан`,mode:`Режим`,scopes:`Области доступа`,created:`Создан`,status:`Статус`},views:{mine:`Ваши ключи`,all:`Все ключи`},all:{title:`Все ключи агентов в этом развёртывании`,description:`Как администратор вы можете завершить повышение прав или отозвать любой ключ. Менять режим ключа или повышать его права может только создатель.`,search:`Поиск ключей или людей`,empty:`Ключей агентов пока нет`,emptyDescription:`Созданные ключи появляются здесь с указанием создателя.`,unknownOwner:`Удалённый участник`,elevateOnlyCreator:`Повысить права этого ключа может только его создатель. Вы можете завершить повышение прав или отозвать ключ.`},roleCap:`Ваша роль позволяет ключи агентов не выше режима «{mode}».`,narrowed:{badge:`Ограничен ролью`,hint:`Роль создателя сейчас ограничивает возможности этого ключа; вот области доступа, с которыми он работает.`,hintRole:`Сейчас у создателя роль «{role}», поэтому ключ работает с этими областями доступа. Повышение роли не расширит их снова.`,stored:`Выдано: {scopes}`},active:`Активен`,disabled:`Отключён`,never:`Бессрочный`,expires:`Истекает {when}`,unnamed:`Ключ без названия`,keyPrefix:`{start}…`,fullAccess:`Полный доступ`,scopesModeDefault:[`По умолчанию для режима · `,[2,`count`,{one:[[4],` область`],few:[[4],` области`],many:[[4],` областей`],other:[[4],` области`]}]],empty:`Ключей агентов пока нет`,emptyDescription:`Создавайте по одному ключу на агента или автоматизацию, выдавайте только нужные области доступа и отзывайте ключ, когда работа закончена.`,noMatches:`Нет ключей, подходящих под «{query}»`,notEnabledTitle:`Ключи агентов на этом сервере недоступны`,notEnabledDescription:`Этот сервер работает без входа в систему, поэтому не может выдавать ключи. Агенты на вашем компьютере по-прежнему могут подключаться через stdio с помощью cloudhal mcp.`,copyId:`Скопировать ID ключа`,revoke:`Отозвать`,revokeKey:`Отозвать ключ`,keyResource:`Ключ агента`,revoked:`Ключ отозван`,revokedDescription:`{name} больше не может подключаться к Studio.`,scopes:{"site:read":`Просматривать сайты и снимки`,"content:read":`Читать страницы и статьи`,"content:write":`Создавать, изменять и удалять страницы и статьи`,"asset:upload":`Загружать медиафайлы и изменять свои загрузки`,"asset:manage":`Изменять, выводить и удалять любые медиафайлы`,"analytics:read":`Читать аналитику сайта (без персональных данных)`,"site:write":`Изменять настройки сайта`,"preview:create":`Отрисовывать предпросмотр черновиков`,"site:publish":`Публиковать снимок на сайте`,"site:rollback":`Откатывать опубликованный сайт`,"content:write:own":`Создавать статьи и изменять свои`,"content:draft:own":`Писать черновики и отправлять их на проверку`,"content:propose":`Предлагать правки текста; вы принимаете или отклоняете их`,"site:publish:own":`Публиковать, когда все изменения свои`,"comments:read":`Читать комментарии читателей (без адресов почты)`,"comments:moderate":`Помечать и скрывать комментарии; одобрения ждут вас`,"comments:moderate:own":`Помечать и скрывать комментарии к своим статьям`,"comments:reply":`Готовить ответы на комментарии; публикуете их вы`,"comments:reply:own":`Готовить ответы к своим статьям; публикуете их вы`,"schedules:read":`Просматривать расписание, релизы и запуски автоматизаций`,"schedules:write":`Предлагать и планировать релизы, эмбарго и истечения`,"schedules:write:own":`Планировать релизы своих страниц и статей`,"releases:publish":`Одобрять релизы; в режиме «Авто» релизы с низким риском выполняются без вас`,"releases:publish:own":`Одобрять релизы, когда все элементы свои`},modes:{legend:`Режим`,names:{plan:`План`,manual:`Вручную`,edits:`Правки`,auto:`Авто`,bypass:`Обход`},descriptions:{plan:`Читает ваши сайты и отрисовывает предпросмотр. Может предлагать изменения, но никогда их не вносит.`,manual:`Спрашивает вас перед каждым изменением, даже самым маленьким.`,edits:`Свободно создаёт и редактирует контент. Каждое изменение попадает в снимок и может быть откачено.`,auto:`Работает как «Правки», а небольшие публикации статей выходят без вас.`,bypass:`Ничто не ждёт человека. Только для cloudhal mcp на вашем собственном компьютере.`},waitsFor:[[3,`mode`,{plan:[`Ждёт вас: ничего, потому что агент ничего не может изменить`],manual:[`Ждёт вас: каждая правка, публикация, откат и удаление`],edits:[`Ждёт вас: публикация, откат и удаления`],auto:[`Ждёт вас: крупные публикации, откат и удаления`],bypass:[`Ждёт вас: ничего`],other:[`Ждёт вас: каждая правка, публикация, откат и удаление`]}]],risk:{safest:`Самый безопасный`,recommended:`Рекомендуется`,caution:`С осторожностью`},current:`Текущий`,bypassHint:`Режим «Обход», в котором ничто не ждёт человека, для ключей недоступен. Он существует только для локального сервера на вашем компьютере:`,autoTitle:`Небольшие публикации выходят без вас`,autoDescription:`В режиме «Авто» публикация, которая только добавляет или изменяет статьи, выходит сразу: ничего не удалено, страницы, меню, настройки сайта, таксономии и перенаправления не изменены, изменений не больше {limit}. В «Активности» она отмечается как одобренная автоматически, и её можно откатить одним нажатием. Крупные публикации, откат и удаления по-прежнему ждут вас.`,autoConfirm:`Я понимаю, что этот агент может публиковать без моего одобрения`,autoConfirmRequired:`Подтвердите, что понимаете, как работает режим «Авто»`},howModes:{title:`Как работают режимы`,description:`Режим определяет, что агент делает сам, а что ждёт вас. Жёстким ограничением остаются области доступа: режим никогда не даёт больше.`,columns:{mode:`Режим`,edits:`Контент`,publish:`Публикация`,rollback:`Откат, удаление`},rules:{denied:`Запрещено`,waits:`Ждёт`,free:`Свободно`,lowRisk:`Небольшие: свободно`},rulesHint:{denied:`В этом режиме агент не может этого делать.`,waits:`Агент спрашивает; вы одобряете в разделе сайта «Активность › Одобрения».`,free:`Агент делает это сам. Каждое изменение попадает в снимок.`,lowRisk:`Только добавленные или изменённые статьи, ничего не удалено, изменений не больше {limit}. Всё более крупное ждёт вас.`},gated:`С ключом всегда ждёт вас`,bypass:`«Обход» — только для вашего собственного компьютера:`},changeMode:{menu:`Изменить режим`,title:`Изменение режима`,description:`Выберите, как «{name}» будет работать дальше.`,from:`Сейчас`,to:`Новый`,nextCallTitle:`Применяется со следующего вызова агента`,nextCall:`Уже выполняющиеся вызовы завершатся в текущем режиме. Изменение записывается в журнал аудита.`,submit:`Изменить режим`,failed:`Не удалось изменить режим`,changed:`Режим изменён`,changedDescription:`{name} теперь работает в режиме «{mode}».`,elevatedTitle:`Права повышены до «{mode}» до {time}`,elevationKeeps:`Повышение прав действует до {time}, затем ключ работает в режиме «{mode}».`,elevationEnds:`Режим «{mode}» достигает повышенного, поэтому это изменение завершает повышение прав.`},elevate:{menu:`Временно повысить права`,menuDisabled:`Уже в режиме «Авто» — самом самостоятельном режиме, доступном ключу.`,title:`Временное повышение прав`,description:`Позвольте «{name}» какое-то время работать в более самостоятельном режиме. Когда время выйдет, ключ сам вернётся в свой режим.`,ownMode:`Собственный режим`,ownModeHint:`Остаётся прежним. Ключ вернётся в него, когда повышение прав закончится.`,legend:`Повысить до`,duration:`Длительность`,presets:{15:`15 мин`,60:`1 час`,240:`4 часа`,1440:`1 день`,custom:`Своя`},customValue:`Своя длительность`,customUnit:`Единица`,units:{minutes:`Минуты`,hours:`Часы`},customHint:`От {min} до {max}.`,customErrors:{invalid:`Введите число`,tooShort:`Не меньше {min}`,tooLong:`Не больше {max}`},reason:`Причина`,reasonPlaceholder:`Например: день запуска — публиковать небольшие обновления самостоятельно`,reasonHint:`Необязательно. Показывается в журнале аудита.`,replacesTitle:`Это заменит действующее повышение прав`,replaces:`«{name}» работает в режиме «{mode}» до {time}. Новое повышение прав займёт его место.`,now:`Сейчас`,elevated:`Повышенный`,summary:`До {time} (через {duration}), затем возврат к «{from}».`,nextCall:`Применяется со следующего вызова агента. Завершить досрочно можно из меню ключа.`,submit:`Повысить права`,failed:`Не удалось повысить права ключа`,done:`Права ключа повышены`,doneDescription:`{name} работает в режиме «{mode}» до {time}, затем возвращается к «{from}».`},elevation:{left:`Осталось {time}`,ownMode:`Собственный режим: {mode}`,tooltip:`Повышено с «{from}» до {time}, кем: {who}`,requestedReason:`Запрошено агентом: «{reason}»`,byYou:`вами`,temporary:`Права временно повышены`,marker:`Права временно повышены с «{from}» до {time}`,endMenu:`Завершить повышение прав сейчас`,ended:`Повышение прав завершено`,endedDescription:`{name} снова в режиме «{mode}».`,endFailed:`Не удалось завершить повышение прав`,bannerTitle:[[2,`count`,{one:[`У `,[4],` ключа агента повышены права`],few:[`У `,[4],` ключей агентов повышены права`],many:[`У `,[4],` ключей агентов повышены права`],other:[`У `,[4],` ключа агентов повышены права`]}]],bannerItem:`{name}: {from} → {to} до {time}`,endNow:`Завершить сейчас`,endAll:`Завершить все сейчас`,endsIn:`Завершится через {time}`,extendAll:`Продлить все на {duration}`,howModes:`Нужно больше самостоятельности на время? Временно повысьте права ключа вместо того, чтобы оставлять его в режиме «Авто»: он сам вернётся в свой режим.`},create:{title:`Создание ключа агента`,description:`Ключ действует как агент на всех сайтах, которые вы можете открыть, в выбранном вами режиме.`,stepMode:`Шаг 1 из 2 · Выберите режим`,stepDetails:`Шаг 2 из 2 · Название и области доступа`,continue:`Продолжить`,mode:`Режим`,changeMode:`Изменить`,name:`Название`,namePlaceholder:`Например, Claude Code на моём ноутбуке`,nameHint:`Под этим именем агенты отображаются в журнале активности.`,nameRequired:`Дайте ключу название`,advanced:`Дополнительно: области доступа`,advancedHint:`Заполнено для режима «{mode}». Области доступа — жёсткое ограничение; режим определяет, что ждёт вас.`,customised:`Изменено`,resetScopes:`Использовать области доступа режима`,missingScopesTitle:`Часть возможностей этого режима не будет работать`,missingScopes:`Без {scopes} агент не сможет делать всё, что позволяет режим «{mode}».`,scopes:`Области доступа`,scopesRequired:`Выберите хотя бы одну область доступа`,groups:{read:`Чтение`,write:`Запись`,release:`Публикация и откат`},groupHints:{read:`Достаточно для агентов, которые исследуют, обобщают или проверяют.`,write:`Изменения попадают в снимки и могут быть откачены.`,release:`Позволяет агенту изменять то, что видят посетители, или запрашивать такие изменения.`},submit:`Создать ключ`,failed:`Не удалось создать ключ`,scopeAboveRole:`Ваша роль не позволяет выдать это ключу.`,scopeNarrowed:`Ваша роль даёт {scope} только для вашей собственной работы.`,errors:{scopeAboveRole:`Ваша роль не позволяет выдать ключу некоторые из этих областей доступа. Снимите отметки и повторите попытку.`,modeAboveRole:`Ваша роль не позволяет ключи в этом режиме. Выберите менее самостоятельный.`}},reveal:{title:`Скопируйте новый ключ`,description:`«{name}» готов. Ваш агент отправляет его как bearer-токен или в заголовке x-api-key.`,warningTitle:`Вы больше не увидите этот ключ`,warning:`Сохраните его сейчас в менеджере паролей или хранилище секретов агента. Если ключ потерян, отзовите его и создайте новый.`,key:`Ключ агента`,config:`Конфигурация клиента`,done:`Ключ сохранён`},connect:{title:`Подключение MCP-клиента`,description:`Агенты подключаются к Studio по MCP по этому адресу и передают ключ в заголовке. При подключении агенту сообщается режим его ключа, чтобы он знал, что ждёт вас.`,endpoint:`Эндпоинт MCP`,header:`Заголовок`,client:`Клиент`,clients:{claude:`Claude Code`,codex:`Codex`,cursor:`Cursor`,vscode:`VS Code`,generic:`Другой клиент`,stdio:`Локально (stdio)`},hints:{claude:`Выполните это в терминале, затем проверьте подключение командой /mcp в Claude Code.`,codex:`Codex берёт ключ из CLOUDHAL_API_KEY и отправляет его как bearer-токен. Добавьте строку export в профиль оболочки, чтобы ключ был задан при каждом запуске Codex.`,cursor:`Вставьте это в ~/.cursor/mcp.json или в .cursor/mcp.json проекта. Файл содержит ключ, поэтому не добавляйте его в систему контроля версий.`,vscode:`Сохраните это как .vscode/mcp.json в проекте. VS Code один раз запросит ключ и сохранит его в своём хранилище секретов.`,generic:`Любой клиент с поддержкой streamable HTTP: этот URL и ключ в заголовке Authorization как bearer-токен. Заголовок x-api-key тоже работает.`,stdio:`На своём компьютере запустите stdio-сервер в папке сайта; ключ не нужен. --mode задаёт режим работы, и только здесь он может быть bypass.`}}},activity:{search:`Поиск по инструменту, исполнителю или навыку`,refresh:`Обновить активность`,filters:{label:`Фильтры`,kind:`Тип исполнителя`,decision:`Решение`,allKinds:`Все исполнители`,allDecisions:`Все решения`},kinds:{agent:`Агент`,human:`Человек`,system:`Система`},decisions:{allow:`Разрешено`,deny:`Запрещено`,"approval-required":`Нужно одобрение`},outcomes:{ok:`Успешно`,error:`Ошибка`,pending:`Ожидает`},columns:{when:`Когда`,actor:`Исполнитель`,tool:`Инструмент`,decision:`Решение`,outcome:`Результат`,skill:`Навык`,snapshot:`Снимок`},empty:`Активности пока нет`,emptyDescription:`Здесь записывается каждый вызов инструмента через MCP агентом или человеком: разрешённый, запрещённый или ожидающий одобрения.`,noMatches:`Нет событий, подходящих под эти фильтры`,noMatchesDescription:`Фильтры применяются к уже загруженным событиям. Загрузите ещё, чтобы заглянуть дальше в прошлое.`,clearFilters:`Сбросить фильтры`,showing:[`Показано `,[0,`shown`],` из `,[2,`loaded`,{one:[[4],` загруженного события`],few:[[4],` загруженных событий`],many:[[4],` загруженных событий`],other:[[4],` загруженного события`]}]],allLoaded:`Вы дошли до первого записанного события.`,loadMore:`Загрузить ещё`,notEnabledTitle:`Этот сервер не ведёт журнал активности`,notEnabledDescription:`Запустите Studio через cloudhal studio, чтобы записывать каждый вызов инструментов агентами и людьми.`,ownOnlyTitle:`Ваша активность`,ownOnly:`Вы видите то, что сделали на этом сайте вы и ваши агенты. Редакторы и выше видят активность всех.`,viewEvent:`Показать подробности`,detail:{when:`Время`,actor:`Исполнитель`,decision:`Решение`,outcome:`Результат`,skill:`Навык`,duration:`Длительность`,durationValue:`{ms} мс`,snapshot:`Снимок`,viewChanges:`Показать изменения`,reason:`Почему`,input:`Входные данные`,noInput:`У этого вызова не было входных данных.`,event:`Событие №{id}`,mode:`Режим`,modeHint:`Режим ключа агента на момент этого вызова.`,elevation:`Повышение прав`,elevationHint:`Собственный режим ключа — «{from}». Его владелец на время дал больше самостоятельности; когда повышение прав закончится, ключ снова будет работать в режиме «{from}».`,elevationGranted:`Повышение прав выдано`,elevationGrantedUntil:`Режим «{mode}» до {time}, затем возврат к «{from}».`,requestedByAgent:`Ответ на запрос агента`},autoApproved:`Одобрено автоматически`,autoApprovedHint:`Опубликовано без участия человека: агент работает в режиме «Авто», и эта публикация была с низким риском.`,autoApprovedTitle:`Опубликовано без участия человека`,autoApprovedCount:`Опубликовано изменений статей: {count}`,autoApprovedDescription:`Агент работает в режиме «Авто», и эта публикация только добавила или изменила статьи. Её можно откатить в разделе «Снимки».`,autoApprovedDescriptionCount:`Агент работает в режиме «Авто», и эта публикация только добавила или изменила статьи (всего {count}). Её можно откатить в разделе «Снимки».`,requestedByAgent:`Запрошено агентом`,requestedByAgentHint:`Агент запросил это повышение прав, а человек выдал его в «Одобрениях».`,recent:`Недавняя активность`,recentEmpty:`Активности агентов пока нет`,recentEmptyDescription:`Подключите агента, и его вызовы инструментов появятся здесь.`},account:{description:`Ваш профиль, способ входа и кто ещё может войти в этот Studio.`,sections:{profile:`Профиль`,password:`Пароль`,sessions:`Активные сеансы`,notifications:`Уведомления`,access:`Доступ к Studio`,server:`Этот сервер`},notifications:{description:`Колокольчик на верхней панели показывает повышения прав, которые скоро закончатся, и агентов, которые их запрашивают. Studio также может сообщать вам об этом, когда открыт в фоновой вкладке.`,switch:`Уведомлять меня в этом браузере, когда повышение прав скоро закончится или агент его запрашивает`,switchHint:`Только пока Studio открыт во вкладке. Каждое уведомление появляется один раз.`,permission:`Разрешение браузера`,permissions:{granted:`Разрешено`,default:`Ещё не запрошено`,denied:`Заблокировано`},permissionHints:{granted:`Этот браузер позволяет Studio показывать уведомления.`,default:`Браузер спросит, когда вы включите уведомления.`,denied:`Меняется в браузере, а не в Studio.`},deniedTitle:`Уведомления для Studio заблокированы`,denied:`Чтобы их включить, разрешите уведомления для этого сайта в настройках сайта в браузере (значок рядом с адресом), затем перезагрузите Studio.`,unsupported:`Этот браузер не умеет показывать уведомления. Колокольчик на верхней панели по-прежнему показывает всё.`,enabled:`Уведомления браузера включены`,test:`Отправить тестовое уведомление`,testTitle:`Уведомления включены`,testBody:`Так Studio сообщает, что повышение прав скоро закончится или агент его запрашивает.`},profile:{description:`Как вы отображаетесь в Studio и в журнале активности каждого сайта.`,name:`Имя`,nameHint:`Показывается рядом с вашими изменениями и одобрениями.`,email:`Электронная почта`,emailHint:`Вы входите с этим адресом. Изменить его здесь нельзя.`,memberSince:`Участник с {date}`,actorId:`ID исполнителя`,actorIdHint:`Как вас идентифицируют активность и снимки.`,role:`Роль`,roleHint:`Что вы можете здесь делать. Изменить её может администратор или владелец.`,saved:`Профиль сохранён`,failed:`Не удалось сохранить профиль`,errors:{required:`Введите имя`,tooLong:[`Не более `,[2,`max`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}]]}},password:{description:`Используйте длинную парольную фразу, которую вы больше нигде не используете.`,current:`Текущий пароль`,new:`Новый пароль`,newHint:[`Не менее `,[2,`min`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}],`.`],confirmHint:`Введите новый пароль ещё раз.`,confirm:`Подтверждение нового пароля`,show:`Показать пароль`,hide:`Скрыть пароль`,signOutOthers:`Выйти из всех других сеансов`,signOutOthersHint:`Рекомендуется, если ваш старый пароль мог узнать кто-то ещё.`,submit:`Изменить пароль`,changed:`Пароль изменён`,changedOthers:`Выполнен выход из других ваших сеансов.`,failed:`Не удалось изменить пароль`,errors:{currentRequired:`Введите текущий пароль`,currentWrong:`Это не ваш текущий пароль`,newRequired:`Введите новый пароль`,tooShort:[`Не менее `,[2,`min`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}]],tooLong:[`Не более `,[2,`max`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}]],same:`Выберите пароль, отличный от текущего`,confirmRequired:`Повторите новый пароль`,mismatch:`Пароли не совпадают`}},sessions:{showAll:`Показать все ({count})`,showFewer:`Показать меньше`,description:`Браузеры и клиенты, в которых выполнен вход в вашу учётную запись. Завершите те, которые вы не узнаёте. Ключи агентов перечислены в разделе «Агенты».`,columns:{device:`Устройство`,ip:`IP-адрес`,lastActive:`Последняя активность`,signedIn:`Вход выполнен`},current:`Это устройство`,unknownDevice:`Неизвестное устройство`,unknownIp:`Неизвестно`,deviceOn:`{browser} на {os}`,revoke:`Завершить`,revokeLabel:`Завершить сеанс {device}`,signOutOthers:`Завершить другие сеансы`,onlyThis:`Это ваш единственный активный сеанс.`,count:`Активных: {count}`,revokeTitle:`Завершить этот сеанс?`,revokeDescription:`На устройстве {device} придётся войти снова.`,revokeOthersTitle:`Завершить все другие сеансы?`,revokeOthersDescription:`Во всех браузерах и клиентах, кроме этого, придётся войти снова. Ключи агентов продолжат работать.`,revoked:`Сеанс завершён`,revokedOthers:`Другие сеансы завершены`,staleTitle:`Войдите снова, чтобы увидеть свои сеансы`,staleDescription:`В целях безопасности для просмотра списка сеансов нужен вход, выполненный за последние 24 часа.`,signInAgain:`Войти снова`},access:{description:`Кто может создать учётную запись в этом Studio. Это настраивается там, где работает сервер, а не здесь.`,signUp:`Регистрация`,policies:{"first-user":`Только владелец`,closed:`Закрыта`,open:`Открыта для всех`,unknown:`Нет данных`},explanations:{"first-user":`Первый зарегистрировавшийся стал владельцем, и регистрация сразу закрылась. Для всех остальных учётную запись должен создать кто-то другой.`,closed:`Никто не может зарегистрироваться. Учётные записи создаёт владелец.`,open:`Любой, кто может открыть этот адрес, может создать учётную запись, и у каждой учётной записи полный доступ ко всем сайтам.`,unknown:`Этот сервер не сообщает, как настроена регистрация.`},openWarningTitle:`Зарегистрироваться может любой`,openWarning:`Каждая учётная запись получает полный доступ ко всем сайтам. Закройте регистрацию, прежде чем делиться этим адресом.`,howToChange:`В Cloudflare задайте CLOUDHAL_SIGNUP в admin Worker как open или closed (если не задано — только владелец). cloudhal studio на вашем компьютере всегда работает в режиме «только владелец».`,serverDescription:`Что работает в этом развёртывании Studio.`,features:{members:`Команда и роли`,agentKeys:`Ключи агентов`,mcp:`MCP-сервер`,activity:`Журнал активности`,previewLinks:`Ссылки предпросмотра`,deployTransfer:`Развёртывание и перенос`,approvals:`Одобрения в Studio`,elevationRequests:`Запросы на повышение прав`},featureHints:{members:`Люди присоединяются по ссылке-приглашению и работают в одной из ролей: владелец, администратор, редактор, автор или соавтор.`,agentKeys:`Агенты и задачи CI входят с помощью созданных вами ключей.`,mcp:`Агенты подключаются по адресу /mcp.`,activity:`Каждый вызов инструмента записывается для каждого сайта.`,previewLinks:`Подписанные ссылки, показывающие черновики на развёрнутом сайте.`,deployTransfer:`cloudhal push и pull могут подключаться к этому серверу.`,approvals:`Запросы агентов на публикацию, откат и удаление ждут здесь человека.`,elevationRequests:`Агенты могут на время запросить более самостоятельный режим; человек выдаёт его в «Одобрениях».`}}},siteSettings:{sections:{general:`Общие`,domains:`Домены`,collections:`Коллекции`,appearance:`Оформление`,design:`Правила дизайна`,previews:`Ссылки предпросмотра`},design:{description:`Ваш бренд и правила дизайна в Markdown (DESIGN.md). Каждый агент и чат «Сборки» читают их перед работой: для чего сайт, его цвета и шрифты, предпочтительные макеты и компоненты, рецепты страниц и чего избегать. Они влияют на решения, но никогда не на права.`,label:`Правила этого сайта`,placeholder:`## Бренд
|
|
2
|
+
Для чего сайт, кто его читает, его тон.
|
|
3
|
+
|
|
4
|
+
## Макет
|
|
5
|
+
…`,template:`Начать с заголовков`,theme:`Правила темы {theme}`,themeHint:`Агенты читают их первыми; там, где они расходятся, побеждают ваши правила.`,noTheme:`Тема {theme} не содержит правил дизайна.`,warnings:`Стоит проверить`,saved:`Правила дизайна сохранены`,failed:`Не удалось сохранить правила дизайна`,count:`{count} из {max} символов`,agentHint:`Агенты могут предлагать изменения; они ждут человека в «Одобрениях».`},appearance:{description:`Цвета, шрифты и формы, которые позволяет менять тема {theme}.`,none:`У темы {theme} нет настроек дизайна для изменения.`,publishHint:`Сохранённые изменения появятся на сайте после следующей публикации.`,saved:`Оформление сохранено`,failed:`Не удалось сохранить оформление`},collections:{description:`Где на сайте находятся записи каждой коллекции. Изменение префикса переносит адрес каждой записи этой коллекции; старые адреса продолжают работать через постоянное перенаправление. Оставьте поле пустым, чтобы использовать значение по умолчанию — название самой коллекции. Новые адреса начнут работать после следующей публикации.`,preview:`Записи находятся по адресам вида {url}`,previewMoved:`Записи будут находиться по адресам вида {url}. Старый адрес {old} перенаправляет туда.`,exampleSlug:`my-article`,empty:`Коллекций пока нет`,emptyDescription:`Коллекции появятся здесь, когда на сайте будут статьи или другие записи.`,saved:`Коллекции сохранены`,failed:`Не удалось сохранить коллекции`,errors:{slash:`Начните с косой черты, например /blog`,trailingSlash:`Уберите косую черту в конце`,invalid:`Используйте строчные латинские буквы, цифры и дефисы между косыми чертами, например /blog или /docs/guides`}},conflictTitle:`Этот сайт изменился в другом месте`,conflictDescription:`Человек или агент сохранил этот сайт после того, как вы его открыли. Загрузите последнюю версию, проверьте своё изменение и сохраните снова.`,loadLatest:`Загрузить последнюю`,general:{description:`Основные сведения о сайте, которые видят агенты и темы.`,name:`Название сайта`,nameHint:`Показывается в Studio и доступно теме.`,slug:`Slug`,slugHint:`Идентифицирует сайт в CLI и API. Изменить нельзя.`,siteId:`ID сайта`,defaultLocale:`Язык по умолчанию`,defaultLocaleHint:`Используется для новых страниц и статей, у которых язык не указан.`,locales:`Языки`,localesHint:`Языки, на которых публикуется этот сайт.`,saved:`Настройки сохранены`,failed:`Не удалось сохранить настройки`,errors:{required:`Дайте сайту название`,tooLong:[`Не более `,[2,`max`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}]]}},domains:{description:`Имена хостов, которые обслуживают этот сайт. Основной домен используется для ссылок предпросмотра.`,dnsHint:`Добавление домена здесь лишь записывает его в сайт. DNS нужно направить на ваше развёртывание отдельно.`,columns:{hostname:`Имя хоста`,role:`Роль`},primary:`Основной`,alias:`Псевдоним`,add:`Добавить домен`,hostname:`Имя хоста`,placeholder:`www.example.com`,makePrimary:`Сделать основным`,remove:`Удалить домен`,visit:`Открыть`,empty:`Доменов пока нет`,emptyDescription:`Добавьте имя хоста, которое используют посетители. До этого ссылки предпросмотра выдаются как токен без URL.`,added:`Домен добавлен`,addedDescription:`{hostname} теперь обслуживает этот сайт.`,addedPrimaryDescription:`{hostname} — основной домен.`,removed:`Домен удалён`,primaryChanged:`Основной домен изменён`,primaryChangedDescription:`{hostname} теперь основной домен.`,removeTitle:`Удалить {hostname}?`,removeDescription:`Сайт перестанет указывать это имя хоста. DNS не изменяется.`,removePrimaryDetail:`{next} станет основным доменом.`,removeLastDetail:`У сайта не останется доменов, поэтому ссылки предпросмотра не будут содержать URL.`,failed:`Не удалось обновить домены`,errors:{required:`Введите имя хоста`,invalid:`Используйте имя хоста вида blog.example.com: латинские буквы, цифры и дефисы, без порта`,tooLong:`Имя хоста не длиннее 253 символов`,duplicate:`У этого сайта уже есть такой домен`}},previews:{description:`Подписанные ссылки, по которым человек без учётной записи Studio может увидеть черновики или более ранний снимок на развёрнутом сайте.`,target:`Показать`,targets:{live:`Текущие черновики`,snapshot:`Снимок`},targetHints:{live:`Всё, что сохранено в Studio, опубликовано или нет.`,snapshot:`Точно так, как сайт выглядел на момент снимка.`},snapshot:`Снимок`,snapshotPlaceholder:`Выберите снимок`,noSnapshots:`У этого сайта ещё нет снимков.`,snapshotRequired:`Выберите снимок`,live:`опубликован`,path:`Страница`,pathHint:`Оставьте пустым для главной страницы.`,pathPlaceholder:`blog/hello`,pathInvalid:`Укажите путь вида /blog/hello, а не полный URL`,ttl:`Истекает через`,ttls:{"1h":`1 час`,"1d":`1 день`,"7d":`7 дней`},create:`Создать ссылку`,created:`Ссылка предпросмотра создана`,result:`Ссылка предпросмотра`,expires:`Истекает {when}`,opens:`Открывает {path}`,showing:{live:`Черновики`,snapshot:`Снимок`},openLink:`Открыть ссылку`,token:`Токен`,noDomainTitle:`У этого сайта нет домена, поэтому полного URL нет`,noDomainDescription:`Добавьте домен выше или допишите ?cloudhal-preview= и этот токен к адресу развёрнутого сайта.`,revokeHint:`Ссылки нельзя отозвать по одной; они перестают работать по истечении срока. Смена секрета предпросмотра сразу отключает все ссылки.`,notEnabledTitle:`Ссылки предпросмотра на этом сервере не включены`,notEnabledDescription:`Задайте секрет CLOUDHAL_PREVIEW_SECRET в admin Worker, чтобы подписывать ссылки. cloudhal studio на вашем компьютере вместо этого показывает черновики в предпросмотре редактора.`,failed:`Не удалось создать ссылку`}},skills:{description:`Сценарии, которые агенты читают через MCP. Вызов в рамках навыка может использовать только объявленные им области доступа, а перечисленные в нём инструменты всегда ждут человека.`,search:`Поиск навыков`,columns:{skill:`Навык`,scopes:`Области доступа`,approval:`Нужно одобрение`,references:`Справочные файлы`},none:`Нет`,referenceCount:[[2,`count`,{one:[[4],` файл`],few:[[4],` файла`],many:[[4],` файлов`],other:[[4],` файла`]}]],empty:`Навыки не загружены`,emptyDescription:`Добавьте папку с SKILL.md в skills/ вашего проекта, затем перезапустите Studio.`,noMatches:`Нет навыков, подходящих под «{query}»`,notEnabledTitle:`Этот сервер не запускает MCP`,notEnabledDescription:`Навыки попадают к агентам через MCP. Запустите Studio через cloudhal studio или разверните admin Worker, чтобы их отдавать.`,view:`Показать подробности`,detail:{scopes:`Области доступа`,scopesHint:`Вызовы в рамках этого навыка могут использовать не больше этих областей и никогда больше, чем есть у ключа.`,approval:`Всегда одобряется человеком`,approvalHint:`В рамках этого навыка эти инструменты ждут человека, что бы ни разрешал ключ.`,noApproval:`Никаких дополнительных одобрений, кроме инструментов, которым они нужны всегда.`,requires:`Требует`,references:`Справочные файлы`,noReferences:`Справочных файлов нет.`,resource:`Ресурс MCP`,call:`Вызвать инструмент в рамках этого навыка`},how:{title:`Как агенты используют навыки`,steps:{read:`Агент получает список ресурсов skill:// и читает SKILL.md, подходящий для задачи.`,declare:`Каждый вызов инструмента указывает навык в метаданных запроса:`,narrow:`Политика ограничивает этот вызов областями доступа навыка и никогда не выходит за собственные области ключа.`,approve:`Инструменты, которые навык перечисляет для одобрения, ждут, пока человек не скажет «да».`},example:`Вызов инструмента в рамках навыка`},add:{title:`Добавьте свои`,description:`Studio загружает навыки из папки skills/ вашего проекта. Если её нет, используется официальный набор.`}},notifications:{title:`Уведомления`,bellCount:`Уведомления ({count})`,empty:`Новых уведомлений нет`,emptyDescription:`Когда повышение прав скоро закончится или агент его запросит, это появится здесь.`,settings:`Настройки уведомлений`,openAgents:`Открыть «Агенты»`,openTeam:`Открыть «Команду»`,memberJoined:{title:`{name}: в команде`,body:`Ваше приглашение принято.`,toast:`Приглашение принято, теперь роль — «{role}».`},roleChanged:{title:`Ваша роль теперь «{role}»`,body:`Роль изменил пользователь {name}. Вместе с ней изменилось и то, что можете делать вы и ваши агенты.`},ending:{title:`Повышение прав скоро закончится`,sentence:`Режим «{mode}» у {name} закончится через {left} ({time}), затем возврат к «{from}».`},request:{title:`{agent} запрашивает «{mode}» · {duration}`,reason:`«{reason}»`,review:`Проверить`},comments:{pending:{title:[[2,`count`,{one:[[4],` комментарий ждёт модерации`],few:[[4],` комментария ждут модерации`],many:[[4],` комментариев ждут модерации`],other:[[4],` комментария ждут модерации`]}]],body:`Самый старый ждёт уже {age}.`,bodyNew:`Никто их не увидит, пока кто-нибудь их не одобрит.`},reported:{title:[[2,`count`,{one:[`На `,[4],` комментарий пожаловались`],few:[`На `,[4],` комментария пожаловались`],many:[`На `,[4],` комментариев пожаловались`],other:[`На `,[4],` комментария пожаловались`]}]],body:`Читатели отметили их. Жалоба никогда ничего не скрывает сама.`},paused:{title:`Комментарии на сегодня приостановлены`,body:`Достигнут дневной лимит ({cap}). Новые комментарии отклоняются до полуночи UTC.`},purgeWaiting:{title:`Скрытый комментарий может ещё быть на опубликованной странице`,body:[[2,`count`,{one:[[4],` страница ждёт обновления кэша.`],few:[[4],` страницы ждут обновления кэша.`],many:[[4],` страниц ждут обновления кэша.`],other:[[4],` страницы ждут обновления кэша.`]}]],purge:`Очистить кэш сайта`,purged:`Кэш сайта очищен`,failed:`Не удалось очистить кэш`},approval:{title:`{agent} спрашивает о комментариях`,tools:{moderate:`Агент просит одобрить или восстановить комментарии. После вашего одобрения они станут публичными.`,reply:`Агент подготовил ответ, который будет опубликован под вашим именем.`,thread:`Агент просит снова открыть комментарии к статье.`,label:`Агент просит пометить комментарии.`}},review:`Проверить`,open:`Открыть комментарии`,settings:`Настройки комментариев`},toast:{endingTitle:`Режим «{mode}» у {name} закончится через {left}`,endingBody:`В {time} ключ вернётся к «{from}». Продлите, если агенту это ещё нужно.`},extend:{button:`Продлить на {duration}`,group:`Продлить повышение прав`,more:`Другая длительность`,fromNow:`Отсчёт от текущего момента`,presets:{30:`30 мин`,60:`1 час`,240:`4 часа`},presetUntil:`{duration} · до {time}`,done:`Повышение прав продлено`,failed:`Не удалось продлить повышение прав`,gone:`Это повышение прав уже закончилось`,goneDescription:`Ничего не продлено. Чтобы снова повысить права ключа, используйте «Временно повысить права» на странице «Агенты».`}},approvals:{refresh:`Обновить одобрения`,pending:`Ждут вас`,pendingDescription:`Одобрение позволяет агенту один раз выполнить именно этот вызов или выдаёт запрошенное повышение прав. При отклонении агент получит уведомление.`,history:`История`,noPending:`Ничто не ждёт вашего решения`,noPendingDescription:`Когда агент просит опубликовать, откатить или удалить, просит на время более самостоятельный режим или работает в режиме «Вручную» и хочет что-либо изменить, его запрос появляется здесь, и агент ждёт вашего решения.`,elevation:{badge:`Запрос на повышение прав`,sentence:`{agent} просит работать в режиме «{mode}» в течение {duration}.`,history:`Повышение до «{mode}» · {duration}`,historyShortened:`Повышение до «{mode}» · {duration} (запрошено {asked})`,reasonLabel:`Причина, указанная агентом`,noReason:`Агент не указал причину.`,untilIfNow:`Если одобрить сейчас: до {time}`,hint:`Одобрение выдаёт его ключу агента на выбранное вами время, затем ключ сам возвращается в свой режим. На сайте ничего не меняется.`,granted:`Выдано`,cannotTake:`Ключ {agent} теперь и так работает в режиме «{own}», поэтому выдавать нечего. Отклоните запрос, чтобы агент об этом узнал.`,title:`Выдать {agent} режим «{mode}»?`,description:`{agent} запросил это. Время можно сократить, но не увеличить.`,mode:`Режим`,modeFixed:`Как запрошено. Чтобы выдать другой режим, отклоните этот запрос и повысьте права ключа в разделе «Агенты».`,presetHours:`{count} ч`,presetMinutes:`{count} мин`,requested:`Запрошено: {duration}. Меньше — можно, больше — нельзя.`,summary:`{agent} работает в режиме «{mode}» до {time}, затем возвращается к «{from}».`,summaryNoOwn:`{agent} работает в режиме «{mode}» до {time}, затем возвращается в собственный режим.`,nextCall:`Применяется со следующего вызова агента. Завершить досрочно можно в разделе «Агенты».`,submit:`Выдать повышение прав`,failed:`Не удалось выдать повышение прав`,stillPending:`Пока запрос ожидает решения, он остаётся в списке. Его можно отклонить или одобрить, когда ключ сможет его принять.`,done:`Повышение прав выдано`,doneDescription:`{agent} работает в режиме «{mode}» до {time}, затем возвращается к «{from}».`,doneDescriptionNoOwn:`{agent} работает в режиме «{mode}» до {time}.`,asksFor:`Запрашивает «{mode}»`,asksForTooltip:`{agent} просит работать в режиме «{mode}» в течение {duration}. Откройте «Одобрения», чтобы принять решение.`},manualPrompt:`{agent} работает в режиме «Вручную», поэтому это изменение ждёт вас: {tool}.`,manualPromptShort:`Режим «Вручную»: {tool}`,bodyChanges:`Что изменит одобрение в «{title}»`,manualHint:`В режиме «Вручную» агент спрашивает перед каждым изменением. Одобрение позволяет агенту сделать эту одну правку именно с этими аргументами; она попадает в снимок, как и любая другая.`,autoHeldBack:`В режиме «Авто» небольшие обновления статей публикуются сами. Это ждёт вас, потому что {reason}.`,autoCheck:{"removes-content":`оно удаляет контент`,nothing:`публиковать нечего`,structure:`оно меняет страницы, меню, настройки сайта, таксономии или перенаправления`,"too-many":`в нём изменений: {changes}, а режим «Авто» ограничен {limit}`,media:`оно добавляет или меняет медиафайлы вне изменений статей`,"outside-window":`оно выполнилось бы после окончания самостоятельности агента`,correction:`оно добавляет исправление к опубликованной статье`},noHistory:`Решений пока нет`,noHistoryDescription:`Здесь перечислены одобренные, отклонённые, использованные и истёкшие запросы.`,requested:`Запрошено`,expires:`Истекает`,expiresSoon:`Скоро истечёт`,arguments:`Аргументы`,noArguments:`У этого вызова нет аргументов.`,approve:`Одобрить`,deny:`Отклонить`,withdraw:`Отозвать`,withdrawn:`Запрос отозван`,decide:{own_request:`Нельзя одобрить собственный запрос. Решает тот, чья роль это позволяет.`,not_key_creator:`Дать ключу этого агента больше самостоятельности может только его создатель.`,mode_above_role:`Ваша роль позволяет ключи агентов не выше режима «{mode}», поэтому вы не можете это выдать.`,missing_scope:`Ваша роль не позволяет вносить это изменение, поэтому вы не можете его одобрить.`,not_own:`Здесь есть чужая работа. Решает редактор или выше.`},role:{waiting:`Ждёт редактора`,yours:`Это ваш запрос. Вы можете его отозвать.`,prompt:`{name} хочет опубликовать сайт.`,foreign:[[2,`count`,{one:[`Сюда входит `,[4],` опубликованная статья другого автора`],few:[`Сюда входят `,[4],` опубликованные статьи других авторов`],many:[`Сюда входят `,[4],` опубликованных статей других авторов`],other:[`Сюда входят `,[4],` опубликованной статьи других авторов`]}],`, а роль этого человека позволяет публиковать только собственные материалы.`],structure:`Изменяются страницы, категории, теги или перенаправления, а роль этого человека не позволяет публиковать такое самостоятельно.`,generic:`Роль этого человека не позволяет самостоятельно опубликовать этот набор изменений.`,published:`Одобрено и опубликовано`,publishedDescription:`Запрос {name} опубликован.`,stateChanged:`Сайт изменился после этого запроса`,stateChangedDescription:`Запрос закрыт, потому что больше не соответствует сайту. Опубликуйте текущее состояние сами.`},approved:`Запрос одобрен`,approvedDescription:`{agent} теперь может один раз выполнить этот вызов.`,denied:`Запрос отклонён`,deniedDescription:`{agent} получит сообщение, что запрос отклонён.`,failed:`Не удалось записать ваше решение`,noLongerPending:`Этот запрос больше не ожидает решения`,noLongerPendingDescription:`Тем временем по нему приняли решение, его использовали или он истёк. Список обновлён.`,statuses:{pending:`Ожидает`,approved:`Одобрен`,denied:`Отклонён`,consumed:`Использован`,expired:`Истёк`},columns:{request:`Запрос`,status:`Статус`,agent:`Кто запросил`,requested:`Запрошено`,decided:`Решено`},decidedBy:`кем: {actor}`,decidedByYou:`вами`,notEnabledTitle:`Этот сервер не хранит одобрения`,notEnabledDescription:`Здесь запросы агентов на публикацию и откат подтверждаются в их MCP-клиенте. Для одобрений в Studio нужен cloudhal studio или admin Worker.`,confirm:{title:`Одобрить «{tool}»?`,requestedBy:`Запросил: {agent}`,singleUseTitle:`Однократно, для сайта в его текущем состоянии`,singleUse:`{agent} может один раз выполнить именно этот вызов. Если до следующего вызова агента на сайте что-то изменится, одобрение аннулируется и агенту придётся спросить снова.`,changes:`Примерные изменения`,changesHint:`Опубликованная версия в сравнении с последним снимком. Правки, сохранённые после этого снимка, тоже будут опубликованы, но здесь не учитываются.`,viewChanges:`Показать изменения`,first:`Пока ничего не опубликовано: эта публикация впервые сделает сайт публичным.`,upToDate:`Последний снимок уже опубликован, поэтому будут опубликованы только правки, сохранённые после него.`,rollbackTarget:`Опубликованный сайт вернётся к`,deleteTarget:`Удаляется`,submit:`Одобрить`},banner:{title:[[2,`count`,{"=1":[`Запрос агента ждёт вашего одобрения`],one:[[4],` запрос агентов ждёт вашего одобрения`],few:[[4],` запроса агентов ждут вашего одобрения`],many:[[4],` запросов агентов ждут вашего одобрения`],other:[[4],` запроса агентов ждут вашего одобрения`]}]],description:`Агенты не могут публиковать, откатывать или удалять, а агенты в режиме «Вручную» — вообще ничего менять, пока не решит человек.`,action:`Проверить запросы`}},tools:{list_assets:`Список медиафайлов`,get_asset:`Получить медиафайл`,upload_asset:`Загрузить медиафайл`,fetch_asset_url:`Добавить медиафайл по URL`,update_asset:`Изменить сведения о медиафайле`,retire_asset:`Вывести медиафайл`,restore_asset:`Восстановить медиафайл`,delete_asset:`Удалить медиафайл`,assetUpload:`Загрузка файла`,assetUpdate:`Изменение сведений о файле`,assetRetire:`Вывод файла`,assetRestore:`Восстановление файла`,assetDelete:`Удаление файла`,assetPurge:`Изъятие файла`,assetLiftPurge:`Повторное разрешение файла`,list_sites:`Список сайтов`,get_site:`Получить сайт`,list_pages:`Список страниц`,get_page:`Получить страницу`,create_page:`Создать страницу`,update_page:`Изменить страницу`,delete_page:`Удалить страницу`,list_entries:`Список статей`,get_entry:`Получить статью`,create_entry:`Создать статью`,update_entry:`Изменить статью`,add_correction:`Добавить исправление`,delete_entry:`Удалить статью`,get_theme_settings:`Прочитать настройки дизайна`,set_theme_settings:`Изменить настройки дизайна`,list_block_types:`Список типов блоков`,get_body:`Прочитать текст`,edit_body:`Изменить текст`,diff_node:`Сравнить версии`,create_snapshot:`Сделать снимок`,list_snapshots:`Список снимков`,diff_snapshots:`Сравнить снимки`,preview_page:`Предпросмотр страницы`,publish:`Опубликовать сайт`,rollback:`Откатить сайт`,list_menus:`Список меню`,get_menu:`Получить меню`,update_menu:`Изменить меню`,set_menu:`Заменить меню`,delete_menu:`Удалить меню`,request_elevation:`Запросить повышение прав`,list_comments:`Список комментариев`,get_comment_thread:`Прочитать обсуждение`,comments_summary:`Сводка комментариев`,label_comments:`Пометить комментарии`,moderate_comments:`Модерировать комментарии`,draft_comment_reply:`Подготовить ответ на комментарий`,set_comment_thread:`Изменить обсуждение`,list_schedule:`Показать расписание`,get_schedule:`Получить запланированный элемент`,list_releases:`Список релизов`,get_release:`Получить релиз`,propose_release:`Предложить релиз`,schedule_release:`Запланировать релиз`,reschedule:`Перенести релиз`,cancel_schedule:`Отменить релиз`,set_embargo:`Установить эмбарго`,lift_embargo:`Снять эмбарго`,schedule_unpublish:`Запланировать истечение`,list_automations:`Список автоматизаций`,list_runs:`Список запусков`,get_run:`Получить запуск`,begin_run:`Начать запуск`,end_run:`Завершить запуск`,pause_automation:`Приостановить автоматизацию`,get_mode:`Получить режим`,agentKeyMode:`Изменение режима ключа агента`,agentKeyElevate:`Повышение прав ключа агента`,agentKeyElevationEnd:`Завершение повышения прав`,agentKeyNarrow:`Сужение прав ключа агента`,agentKeyRevoke:`Отзыв ключа агента`,memberInvite:`Приглашение участника`,memberInviteRevoke:`Отзыв приглашения`,memberInviteFailed:`Ошибка отправки приглашения`,memberInviteAccept:`Принятие приглашения`,memberRole:`Изменение роли участника`,memberRemove:`Удаление участника`,memberTransferOwnership:`Передача владения`,memberPasswordReset:`Создание ссылки для сброса пароля`,memberPasswordResetComplete:`Сброс пароля`},preview:{title:`Предпросмотр`,frameTitle:`Предпросмотр {name}`,device:`Ширина устройства`,desktop:`Компьютер`,tablet:`Планшет`,mobile:`Телефон`,reload:`Обновить предпросмотр`,openInNewTab:`Открыть предпросмотр в новой вкладке`,loading:`Загрузка предпросмотра…`,unsaved:`Несохранённые изменения`,unsavedHint:`Предпросмотр показывает последнюю сохранённую версию. Сохраните, чтобы обновить его.`,edit:`Изменить`,show:`Показать предпросмотр`,hide:`Скрыть предпросмотр`,toggleHint:`Показать последнюю сохранённую версию рядом с формой`,toggleHintLive:`Показать страницу с несохранёнными изменениями рядом с формой`,openSaved:`Открыть сохранённую версию в новой вкладке`,failed:`Предпросмотр недоступен`},proposals:{title:`Предложения`,count:`Открыто: {count}`,from:`{name} предлагает`,outOfDate:`Устарело`,outOfDateHint:`Текст изменился после этого предложения. Отклоните его или попросите новое.`,accept:`Принять`,reject:`Отклонить`,saveFirst:`Сначала сохраните или отбросьте свои изменения.`,accepted:`Предложение принято`,rejected:`Предложение отклонено`,failed:`Не удалось принять решение по предложению`,steps:`Изменения для принятия`,acceptSome:`Принять {count} из {total}`,chooseRequired:`Выберите хотя бы одно изменение.`,step:{replace:`Переписать «{before}»`,replaceText:`Заменить «{before}» на «{after}»`,insert:`Добавить «{after}»`,move:`Переместить «{before}»`,delete:`Удалить «{before}»`},aBlock:`блок`},coverage:{scope:`Какие сайты`,thisSite:`Этот сайт`,allSites:`Все сайты проекта`,siteLanguage:`{site} · {language}`,search:`Поиск по названию`,filter:`Показать`,needsWork:`Требует работы`,all:`Все`,item:`Страница или статья`,page:`Страница`,article:`Статья`,missing:`Нет`,toReview:`На проверку`,oneLanguage:`У сайта один язык`,oneLanguageDescription:`Добавьте языки в настройках сайта; переводы появятся здесь.`,openSettings:`Открыть настройки языков`,allDone:`Всё готово`,empty:`Здесь пока пусто`,emptyDescription:`У каждого языка есть актуальная проверенная версия.`},languages:{title:`Языки`,description:`Языки, на которых публикуется этот сайт, и то, как читатели к ним попадают. Страница или статья на другом языке — это перевод оригинала.`,language:`Язык`,tag:`Код`,default:`По умолчанию`,remove:`Удалить язык: {language}`,add:`Добавить язык`,addHint:`Выберите из списка или введите любой код BCP 47, например gsw или pt-AO.`,addPlaceholder:`Поиск языков`,useTag:`Использовать код {tag}`,noMatch:`Подходящих языков нет. Введите код BCP 47, чтобы использовать его.`,clear:`Очистить`,showOptions:`Показать языки`,routing:`Адреса`,routingHint:`Где находится каждый язык. У остальных языков всегда есть префикс.`,routingOptions:{prefixExceptDefault:`Язык по умолчанию в корне, остальные под своим префиксом`,prefixAll:`Каждый язык под своим префиксом`},fallback:`Отсутствующие переводы`,fallbackHint:`Что видят читатели по адресу, у которого нет версии на этом языке.`,fallbackOptions:{none:`Не найдено`,defaultWithNotice:`Оригинал с пометкой, скрытый от поисковых систем`},review:`Проверка перед публикацией`,reviewHint:`Их машинные переводы публикуются только после проверки человеком.`,reviewOptions:{pages:`Страницы`,posts:`Статьи`},label:`Пометка о машинном переводе`,labelHint:`Когда читатели видят, что страница переведена автоматически.`,labelOptions:{unreviewed:`Пока человек не проверит перевод`,always:`Всегда, в том числе после проверки`},saved:`Языки сохранены`,failed:`Не удалось сохранить языки`},glossary:{title:`Глоссарий`,description:`Термины, которые агенты сохраняют при переводе: названия, которые не переводятся, и утверждённое слово для каждого языка.`,empty:`Терминов пока нет`,emptyDescription:`Добавьте названия брендов и продуктов, а также слова с закреплённым переводом.`,oneLanguage:`Сначала добавьте второй язык: глоссарий хранит слова для других языков сайта.`,term:`Термин`,neverTranslate:`Не переводить`,translationIn:`На языке: {language}`,add:`Добавить термин`,remove:`Удалить: {term}`,saved:`Глоссарий сохранён`,failed:`Не удалось сохранить глоссарий`},translations:{title:`Переводы`,none:`Только на языке: {language}`,noneDescription:`Агенты переводят страницы и статьи на другие языки сайта; каждая версия появляется здесь.`,current:`Эта версия`,method:{original:`Оригинал`,human:`Переведено человеком`,machine:`Машинный перевод`,machineReviewed:`Машинный перевод, проверен`},stale:`Устарел`,sourceMissing:`Оригинал удалён`,review:`Отметить как проверенный`,reviewTitle:`Отметить этот перевод как проверенный?`,reviewDescription:`Вы подтверждаете, что человек прочитал этот машинный перевод, сверив его с оригиналом. Читатели больше не видят пометку о машинном переводе, если сайт не показывает её всегда.`,reviewSaveFirst:`Сохраните изменения перед проверкой.`},translationList:{column:`Языки`,filter:`Язык`,grouped:`Все языки (по группам)`,state:[[0,`language`],`: `,[3,`state`,{published:[`опубликовано`],draft:[`черновик`],outdated:[`устарело`],review:[`на проверку`],missing:[`нет`],other:[`нет`]}]],summary:[[1,`count`],`/`,[1,`total`]],summaryLabel:[[1,`count`],` из `,[2,`total`,{one:[[4],` языка`],few:[[4],` языков`],many:[[4],` языков`],other:[[4],` языка`]}]],writeByHand:`Написать вручную`},diff:{title:`Изменения в {name}`,against:`Сравнить с`,previous:`Предыдущим снимком`,live:`Опубликованной версией`,descriptions:{previous:`Что изменилось с предыдущего снимка.`,live:`Что изменится, если этот снимок заменит опубликованную версию.`},added:`Добавлено`,changed:`Изменено`,removed:`Удалено`,counts:{added:`Добавлено: {count}`,changed:`Изменено: {count}`,removed:`Удалено: {count}`},none:`Различий нет`,noneDescription:`Оба снимка содержат в точности одинаковый контент.`,nothingToCompare:`Не с чем сравнивать`,nothingToCompareDescription:`Это первый снимок сайта, и другая версия не опубликована, поэтому сравнивать пока не с чем.`,kinds:{site:`Настройки сайта`,page:`Страница`,contentEntry:`Статья`,taxonomy:`Таксономия`,term:`Термин`,redirect:`Перенаправление`,menu:`Меню`,asset:`Медиафайл`,glossary:`Глоссарий`},gone:`Больше не существует`,revs:`ред. {from} → {to}`,rev:`ред. {rev}`,columns:{item:`Элемент`,revision:`Ревизия`},textChanges:{show:`Показать изменения`,hide:`Скрыть изменения`,loading:`Загрузка обеих версий…`,body:`Текст`,title:`Заголовок`,summary:`Краткое описание`,slug:`Slug`,path:`Путь`,section:`Секция «{kind}»`,sectionAdded:`Добавлена`,sectionRemoved:`Удалена`,sectionChanged:`Изменена`,noTextChanges:`Изменились только настройки; текст тот же.`,added:`Добавлено`,removed:`Удалено`,edited:`Изменено`,unchanged:[[2,`count`,{one:[[4],` блок без изменений`],few:[[4],` блока без изменений`],many:[[4],` блоков без изменений`],other:[[4],` блока без изменений`]}]],wordsAdded:[`+`,[2,`count`,{one:[[4],` слово`],few:[[4],` слова`],many:[[4],` слов`],other:[[4],` слова`]}]],wordsRemoved:[`−`,[2,`count`,{one:[[4],` слово`],few:[[4],` слова`],many:[[4],` слов`],other:[[4],` слова`]}]],same:`Текст не изменился`},assignments:{added:`+ {taxonomy} {name}`,removed:`− {taxonomy} {name}`,primary:`Основная: {taxonomy} → {name}`,none:`нет`}},taxonomy:{newTerm:`Создать: {singular}`,search:`Поиск: {plural}`,columns:{name:`Название`,usage:`Статьи`,lastUsed:`Последнее использование`,index:`Поисковые системы`,visibility:`Видимость`},filters:{all:`Все`,public:`Публичные`,internal:`Внутренние`,proposed:`Предложенные`,retired:`Выведенные`},state:{proposed:`Предложен`,proposedHint:`Предложено агентом. Термин можно назначать, но публичной страницы у него нет, пока его кто-нибудь не одобрит.`,internal:`Внутренний`,internalHint:`Нет архива, ленты и записи в карте сайта, статьи его не показывают. Темы и фильтры всё равно могут его использовать.`,retired:`Выведен`,mergedInto:`Объединён с {name}`},visibility:{public:`Публичный`,internal:`Внутренний`,none:`—`},defaults:{category:{singular:`Категория`,plural:`Категории`},tag:{singular:`Тег`,plural:`Теги`}},usage:{value:`{published} / {total}`,hint:[`Опубликовано `,[0,`published`],` из `,[2,`total`,{one:[[4],` статьи`],few:[[4],` статей`],many:[[4],` статей`],other:[[4],` статьи`]}],`. Открывает их в разделе «Статьи».`],none:`Нет`},index:{indexed:`Индексируется`,indexedHint:[[2,`count`,{one:[[4],` опубликованная статья`],few:[[4],` опубликованные статьи`],many:[[4],` опубликованных статей`],other:[[4],` опубликованной статьи`]}],`: архив показывается в результатах поиска и в карте сайта.`],thin:`Не индексируется: {count} из {min}`,thinHint:[`Архивы, в которых меньше `,[2,`min`,{one:[[4],` опубликованной статьи`],few:[[4],` опубликованных статей`],many:[[4],` опубликованных статей`],other:[[4],` опубликованной статьи`]}],`, отдаются с noindex, follow и исключаются из карты сайта.`],empty:`Пусто`,emptyHint:`Нет опубликованных статей: архив отвечает 404, пока сюда не попадёт статья.`,noindex:`noindex`,noindexHint:`Скрыт от поисковых систем в поисковых настройках.`,none:{internal:`Нет архива`,proposed:`Ещё не публичный`,retired:`Выведен`,archiveOff:`Архивы выключены`},noneHint:{internal:`У внутренних терминов нет публичного архива.`,proposed:`У предложенных терминов нет публичного архива, пока их кто-нибудь не одобрит.`,retired:`У выведенных терминов нет архива; старые ссылки перенаправляются или отвечают 410 Gone.`,archiveOff:`Эта таксономия не публикует страниц архива.`}},menu:{label:`Действия с термином`,edit:`Изменить`,view:`Открыть`,rename:`Изменить slug`,merge:`Объединить с…`,mergeExisting:`Объединить с существующим термином…`,move:`Переместить…`,makeInternal:`Сделать внутренним`,makePublic:`Сделать публичным`,retire:`Вывести`},review:{waiting:`Предложения, ожидающие проверки: {count}`,waitingDescription:`Агенты предложили эти элементы ({plural}). Одобрите, чтобы дать публичную страницу, объедините с существующим или отклоните.`,open:`Проверить`,approve:`Одобрить`,approved:`{name}: одобрено`,failed:`Не удалось одобрить`,reject:`Отклонить`,merge:`Объединить…`,rejectNamed:`Отклонить {name}`,proposedBy:`Кем предложено`},empty:{all:`{plural}: пока нет`,public:`{plural}: публичных нет`,internal:`{plural}: внутренних нет`,proposed:`Ничто не ждёт проверки`,retired:`{plural}: выведенных нет`,search:`По вашему запросу ничего не найдено`,allDescription:`Создайте первый или позвольте агентам предлагать теги по ходу написания.`,filteredDescription:`Попробуйте другой фильтр или запрос.`,noTaxonomies:`Категорий и тегов пока нет`,noTaxonomiesDescription:`На этом сайте теги всё ещё хранятся как обычный текст в каждой статье. Перенесите их в категории и теги; перед записью вы увидите, что изменится.`},create:{title:`Создать: {singular}`,description:`Дайте название. Синонимы, вступление, изображение и поисковые настройки можно добавить потом в редакторе.`,descriptionTree:`Дайте название и, если это подкатегория, выберите родителя. Остальное можно добавить потом в редакторе.`,name:`Название ({locale})`,slugHint:`Адрес архива. Следует за названием, пока вы его не измените.`,parentHint:`Оставьте на верхнем уровне или поместите в другую категорию.`,internal:`Внутренний`,internalHint:`У внутренних терминов нет публичной страницы; темы и фильтры всё равно могут их использовать.`,similarTitle:`Похоже на существующий термин`,similar:`Похожие: {names}. Используйте существующий, если он означает то же самое.`,submit:`Создать: {singular}`,created:`{name}: создано`},health:{title:`Состояние словаря`,description:`Тот же отчёт, который агенты читают перед тем, как ставить теги. Держите одну страницу на тему, чтобы читатели и поисковые системы её находили.`,issues:`К проверке: {count}`,clean:`Наводить порядок не нужно`,cleanDescription:`Сейчас нет почти-дубликатов, однократно использованных или пустых терминов.`,nearDuplicates:`Почти-дубликаты ({count})`,nearDuplicatesHint:`Вероятно, это одна тема. При объединении остаётся более используемый термин, а другой перенаправляется.`,mergeInto:`{source} → {target}`,merge:`Объединить`,morePairs:[[2,`count`,{one:[`Ещё `,[4],` пара`],few:[`Ещё `,[4],` пары`],many:[`Ещё `,[4],` пар`],other:[`Ещё `,[4],` пары`]}]],reasons:{similar:`Пишутся почти одинаково`,plural:`Единственное и множественное число`,synonym:`Синоним одного — название другого`},proposed:`Ждут проверки ({count})`,review:`Проверить`,missingPrimary:`Статьи без основного значения «{singular}» ({count})`,missingPrimaryHint:`Их нельзя отправить на проверку или опубликовать, пока оно не выбрано.`,unfiled:`Статьи без значения «{singular}» ({count})`,unfiledHint:`Распределите их, чтобы они появились в архиве и в «хлебных крошках».`,noIntro:`Индексируемые архивы без вступления ({count})`,noIntroHint:`короткое вступление помогает читателям и поисковым системам`,singleUse:`Использованы один раз ({count})`,unused:`Не используются ни в одной статье ({count})`,unusedHint:`выведите их или распределите по ним статьи`,empty:`Пустые категории ({count})`,emptyHint:`их архивы отвечают 404, пока туда не попадёт статья`,oversized:`Очень большие категории ({count})`,oversizedHint:`больше половины всех статей; помогли бы подкатегории`,more:[`Ещё `,[1,`count`]]},rules:{title:`Как устроено: {plural}`,description:`Правила этой таксономии. Агенты видят те же правила.`,structure:`Структура`,tree:`Дерево`,flat:`Плоский список`,treeHint:`Термин может находиться внутри родителя, до пяти уровней вложенности.`,flatHint:`У терминов нет родителя.`,newTerms:`Новые термины`,newTermsValue:{none:`Только люди`,propose:`Агенты предлагают`,free:`Агенты добавляют`},newTermsHint:{none:`Создают их только люди; агенты выбирают из существующих.`,propose:`Агенты предлагают новые, и те получают публичную страницу после одобрения.`,free:`Агенты могут сразу добавлять активные термины.`},perArticle:`На статью`,required:`Обязательно · до {max}`,optional:`Необязательно · до {max}`,requiredHint:`Для проверки или публикации статье нужен хотя бы один термин и основной.`,optionalHint:`У статьи может не быть ни одного.`,archive:`Архивы`,archiveHint:[`Индексируются от `,[2,`min`,{one:[[4],` опубликованной статьи`],few:[[4],` опубликованных статей`],many:[[4],` опубликованных статей`],other:[[4],` опубликованной статьи`]}],`; архивы поменьше получают noindex.`],archiveOff:`Страницы архива не публикуются.`}},governance:{oneSnapshot:`Одно изменение — один снимок. На сайте появится после следующей публикации.`,conflict:`Этот термин тем временем изменился в другом месте. Закройте окно и повторите попытку на последней версии.`,rename:{title:`Изменить slug {name}`,description:`Архив переезжает на новый адрес. Старый продолжает работать через постоянное перенаправление, а старый slug остаётся зарезервированным.`,slug:`Новый slug`,slugHint:`Строчные латинские буквы, цифры и одиночные дефисы.`,reclaim:`Забрать: освободить этот slug от прежнего термина и удалить его перенаправление`,history:`Прежние slug: {slugs}`,confirm:`Переименовать`,errors:{required:`Введите slug.`,invalid:`Используйте строчные латинские буквы, цифры и одиночные дефисы.`,tooLong:`Не более 128 символов.`,taken:`Этот slug использует другой термин.`,reserved:`Этот slug раньше использовал другой термин, и его старый адрес перенаправляется. Заберите его ниже, чтобы использовать здесь.`}},merge:{title:`Объединить {name} с…`,description:`Его статьи переходят к выбранному термину, который также забирает его названия и slug, поэтому старые ссылки и синонимы продолжают работать.`,target:`Объединить с`,targetHint:`Активный термин той же таксономии.`,targetPlaceholder:`Поиск терминов…`,confirm:`Объединить`},reviewMerge:{title:`Объединить предложение {name} с…`,description:`Предложение выводится, а его статьи переходят к существующему термину, который сохраняет его название как синоним.`,confirm:`Объединить`},retire:{title:`Вывести {name}`,description:`Термин убирается из всех статей и больше не может быть назначен. Его архив может перенаправлять на другой термин.`,redirectTo:`Перенаправить на…`,redirectToHint:`Без перенаправления его архив отвечает 410 Gone, и поисковые системы удаляют его окончательно.`,redirectToParentHint:`Если ничего не выбрать, архив перенаправляется на родительскую категорию, когда она публичная.`,noRedirect:`Без перенаправления`,redirectPlaceholder:`Поиск терминов…`,confirm:`Вывести`},move:{title:`Переместить {name}`,description:`Выберите нового родителя. Статьи и адреса остаются прежними; меняются меню, «хлебные крошки» и архив родителя.`,parent:`Родитель`,parentHint:[`Не больше `,[2,`max`,{one:[[4],` уровня`],few:[[4],` уровней`],many:[[4],` уровней`],other:[[4],` уровня`]}],` вложенности. Категорию нельзя переместить в неё саму или ниже.`],parentPlaceholder:`Поиск категорий…`,topLevel:`Верхний уровень`,confirm:`Переместить`},visibility:{title:{internal:`Сделать {name} внутренним`,public:`Сделать {name} публичным`},description:{internal:`Его архив, лента и запись в карте сайта исчезают, а статьи перестают его показывать. Темы и фильтры всё равно могут его использовать.`,public:`Он получает публичный архив, ленту и запись в карте сайта, и статьи его показывают.`},confirm:{internal:`Сделать внутренним`,public:`Сделать публичным`}},reject:{title:`Отклонить предложение {name}`,description:`Предложение выводится и убирается из статей, где оно есть. Агент увидит, что оно отклонено.`,confirm:`Отклонить`},preview:{waiting:`Сделайте выбор, чтобы увидеть, что изменится.`,loading:`Вычисляем, что изменится`,articles:`Статьи`,noArticles:`Ни одна статья его не содержит.`,articlesMove:[`Эти статьи изменяются в той же операции. Одно изменение может затронуть до `,[2,`limit`,{one:[[4],` статьи`],few:[[4],` статей`],many:[[4],` статей`],other:[[4],` статьи`]}],`.`],articlesLose:[`Эти статьи теряют его в той же операции. Одно изменение может затронуть до `,[2,`limit`,{one:[[4],` статьи`],few:[[4],` статей`],many:[[4],` статей`],other:[[4],` статьи`]}],`.`],articlesKeep:`Эти статьи сохраняют его; их ссылки следуют за новым адресом.`,more:`и ещё {count}`,redirects:`Перенаправления`,noRedirects:`Перенаправление не создаётся.`,permanent:`301, постоянное`,prefix:`Страницы и ленты ниже старого адреса тоже перенаправляются.`,repointed:[[2,`count`,{one:[[4],` существующее перенаправление на старый адрес теперь ведёт на новый.`],few:[[4],` существующих перенаправления на старый адрес теперь ведут на новый.`],many:[[4],` существующих перенаправлений на старый адрес теперь ведут на новый.`],other:[[4],` существующего перенаправления на старый адрес теперь ведут на новый.`]}]]},tooLarge:{title:`Слишком много для одного изменения`,description:`Это изменило бы статей: {count}, а одно изменение может затронуть не больше {limit}. Разбейте на более мелкие шаги или запросите поэтапную задачу.`},blocked:{title:[[2,`count`,{one:[[4],` опубликованная или проверяемая статья потеряет свою единственную категорию`],few:[[4],` опубликованные или проверяемые статьи потеряют свою единственную категорию`],many:[[4],` опубликованных или проверяемых статей потеряют свою единственную категорию`],other:[[4],` опубликованной или проверяемой статьи потеряют свою единственную категорию`]}]],description:`Им нужна категория. Вместо этого объедините термин с другим или сначала распределите эти статьи в другое место.`},gone:{title:`Его архив будет отвечать 410 Gone`,description:`Для {path} не создаётся перенаправление, поэтому поисковые системы удалят его окончательно. Выберите термин выше, чтобы отправлять посетителей туда.`},hidden:{title:`Его архив перестаёт быть публичным`,description:`После следующей публикации {path} будет отвечать 404.`},appears:{title:`Его архив становится публичным`,description:`{path} появится после следующей публикации.`},done:{rename:`{name}: переименовано`,merge:`{name}: объединено`,reviewMerge:`{name}: объединено`,retire:`{name}: выведено`,reject:`{name}: отклонено`,move:`{name}: перемещено`,visibility:`Видимость {name} изменена`,detail:`Изменено статей: {entries}. Перенаправлений: {redirects}. Один снимок; на сайте после следующей публикации.`}},taxonomySettings:{titleNew:`Новая таксономия`,titleEdit:`Настройки: {Singular}`,descriptionNew:`Группируйте статьи ещё одним способом помимо категорий и тегов, например по сериям или регионам. Агенты читают её правила, прежде чем распределять статьи.`,descriptionEdit:`Правила, которым следуют люди и агенты для раздела «{plural}».`,open:`Настройки: {Singular}`,newTaxonomy:`Новая таксономия`,edit:`Изменить`,exampleSlug:`summer-2026`,sections:{name:`Название`,terms:`Термины`,termsHint:`Агенты всегда сначала используют существующий термин. Эти правила определяют, что им можно делать, если ни один не подходит.`,articles:`В статьях`,archive:`Страницы архива`},key:`Ключ`,keyHint:`Используется в фильтрах и агентами (series:summer-2026). Строчные латинские буквы, цифры и дефисы. Потом изменить нельзя.`,keyFixed:`Ключи никогда не меняются: на них ссылаются статьи, фильтры и агенты.`,singular:`Единственное число ({locale})`,plural:`Множественное число ({locale})`,singularPlaceholder:`Регион`,pluralPlaceholder:`Регионы`,labelsHint:`Как это называют Studio, сайт и агенты, например «Регион» и «Регионы».`,labelsOptional:`Необязательно. Оставьте оба поля пустыми, чтобы использовать названия на языке {locale}.`,hierarchical:`У терминов может быть родитель`,hierarchicalHint:`Дерево до пяти уровней, как у категорий; архив также показывает статьи вложенных терминов. Если выключено — плоский список, как у тегов.`,newTerms:`Кто добавляет новые термины`,newTermsOptions:{none:`Только люди`,propose:`Агенты предлагают`,free:`Агенты добавляют свободно`},newTermsHints:{none:`Агенты распределяют статьи только по существующим терминам. Если ни один не подходит, они сообщают об этом и спрашивают вас.`,propose:`Агенты могут предложить новый термин. Он остаётся закрытым (без архива, не показывается в статьях), пока человек не одобрит, не объединит или не отклонит его здесь.`,free:`Агенты создают публичные термины вместе с архивами, не спрашивая. Подходит для свободных словарей; следите за состоянием словаря.`},badges:{safest:`Самый безопасный`,recommended:`Рекомендуется`,careful:`С осторожностью`},required:`Обязательно`,requiredHint:`Перед отправкой на проверку или публикацией статье нужен хотя бы один термин и основной. Черновики могут подождать.`,maxPerEntry:`Не больше на статью`,maxPerEntryHint:`Если пусто — до {max}.`,allCollections:`Применяется ко всем коллекциям`,allCollectionsHint:`Если выключено, выберите коллекции, статьи которых могут это использовать.`,collections:`Коллекции`,archiveEnabled:`Публичные страницы архива`,archiveEnabledHint:`Каждый публичный термин с опубликованной статьёй получает страницу со списком своих статей.`,basePath:`Адрес`,basePathHint:`Архивы находятся по адресам вида {example}.`,feed:`RSS-лента для каждого термина`,feedHint:`По адресу {example}/rss.xml.`,feedNeedsArchive:`Нужны публичные страницы архива.`,minEntries:`Статей нужно для поисковых систем`,minEntriesHint:`Архивы с меньшим числом опубликованных статей отдаются с noindex, follow и исключаются из карты сайта. 0 — индексируются с первой статьи.`,move:{title:`Смена адреса`,description:`Архивы переезжают. Старые адреса продолжают работать через постоянное перенаправление.`,offTitle:`Страницы архива будут отвечать 404`,offDescription:`Перенаправление не создаётся: ссылки на {path}/… перестанут работать после следующей публикации.`,onTitle:`Архивы станут публичными по адресу {path}/…`,onDescription:`Термины с опубликованной статьёй получат страницу после следующей публикации.`},create:`Создать таксономию`,save:`Сохранить настройки`,created:`{name}: создано`,saved:`Настройки {name} сохранены`,errors:{keyRequired:`Введите ключ.`,keyInvalid:`Используйте строчные латинские буквы, цифры и одиночные дефисы, например series или reading-list.`,keyTooLong:`Не более 128 символов.`,keyReserved:`«{key}» зарезервирован языком фильтров (primary, collection, locale, status, id).`,keyTaken:`На этом сайте уже есть таксономия с таким ключом.`,labelRequired:`Введите название на языке сайта по умолчанию.`,labelTooLong:[`Не более `,[2,`max`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}],`.`],labelPair:`Заполните оба поля или оставьте оба пустыми.`,pathRequired:`Введите адрес.`,pathInvalid:`Начните с / и используйте слова строчными буквами через дефис, например /series.`,pathTooLong:`Не более 1024 символов.`,pathRoot:`Архивы не могут находиться в корне сайта.`,pathTaxonomy:`Пересекается с архивами «{conflict}».`,pathPage:`Там находится страница {conflict}. Выберите другой адрес.`,pathCollection:`Адреса статей начинаются с {conflict}. Выберите другой адрес.`,range:`Целое число от {min} до {max}.`,collections:`Выберите хотя бы одну коллекцию.`,hasParents:[[2,`count`,{one:[`У `,[4],` термина всё ещё есть родитель.`],few:[`У `,[4],` терминов всё ещё есть родитель.`],many:[`У `,[4],` терминов всё ещё есть родитель.`],other:[`У `,[4],` термина всё ещё есть родитель.`]}],` Сначала переместите их на верхний уровень.`],hasProposals:[[2,`count`,{one:[[4],` предложение ждёт решения.`],few:[[4],` предложения ждут решения.`],many:[[4],` предложений ждут решения.`],other:[[4],` предложения ждут решения.`]}],` Сначала одобрите, объедините или отклоните их.`]}},termEditor:{language:`Язык`,default:`по умолчанию`,names:{title:`Названия и синонимы`,description:`Что видят читатели и что люди и агенты могут ввести, чтобы найти термин.`,name:`Название ({locale})`,nameHintDefault:`Обязательно на языке сайта по умолчанию.`,nameHint:`Оставьте пустым, чтобы показывать название на языке {locale}.`,altNames:`Синонимы`,altNamesHint:`Другие названия, по которым находится этот термин, когда их вводят или когда агент назначает термин по имени. Никогда не показываются как отдельные термины.`},intro:{title:`Вступление архива`,description:`Markdown, показываемый вверху {path}, только на первой странице.`,hint:`Markdown. HTML показывается как текст.`},image:{title:`Изображение`,description:`Показывается в архиве и используется как его изображение, когда ссылкой делятся. Укажите ссылку на изображение, которое уже есть в сети.`},seo:{title:`Поисковые системы и соцсети`,description:`Как архив выглядит в результатах поиска на языке {locale}.`},indexing:{title:`Индексация`,indexed:`{path} показывается поисковыми системами; опубликованных статей: {count}.`,thin:`В {path} опубликованных статей: {count} из необходимых {min}; до этого он отдаётся с noindex, follow.`,empty:`В {path} нет опубликованных статей, и он отвечает 404, пока туда не попадёт статья.`,noindex:`{path} скрыт от поисковых систем в поисковых настройках.`},preview:{statusHint:`Что {path} отвечает с этими изменениями: {status}. Предпросмотр всегда показывает страницу, даже пока она не публичная.`},placement:{title:`Расположение`,position:`Позиция`,positionHint:`Меньшие числа идут первыми среди соседей. Если пусто — сортировка по названию.`},history:{title:`История slug`,description:`Прежние адреса этого архива. Они остаются зарезервированными и перенаправляют сюда.`,empty:`Прежних slug нет`,emptyDescription:`Его адрес всегда был {path}.`,reserved:`зарезервирован`},details:{taxonomy:`Таксономия`,visibility:`Видимость`,usage:`Статьи`},retire:{title:`Вывести: {singular}`,description:`Убирает термин из всех статей; его архив перенаправляет или отвечает 410 Gone.`},retired:{title:`Этот термин выведен`,merged:`Этот термин объединён с {name}`,description:`У него нет архива, и его нельзя назначить. Старые адреса перенаправляются, если было задано перенаправление.`},errors:{nameRequired:`Введите название на языке сайта по умолчанию.`,nameTooLong:`Не более 200 символов.`,altTooLong:`«{value}» длиннее 200 символов.`,altDuplicate:`«{value}» указан дважды или повторяет название.`,altCollision:`«{value}» уже является названием {other}. Синоним не может указывать на два термина.`,introTooLong:`Не более 20 000 символов.`,position:`Введите целое число от 0 до {max}.`}},migration:{banner:{title:`Перенесите теги в категории и теги`,description:`Теги на этом сайте всё ещё хранятся как обычный текст. Превратите их в теги с названиями, архивами и перенаправлениями и начните распределять статьи по категориям. Сначала вы увидите результат, и перенос можно отменить.`,action:`Предпросмотр переноса`},dialog:{title:`Перенос тегов в категории и теги`,description:`Это пробный прогон: ничего не записывается, пока вы его не запустите.`,summary:`Что делает перенос`,tags:`Найдено тегов`,entries:`Будет переписано статей`,terms:`Теги`,termsValue:`Новых: {created}, повторно использованных: {reused}`,taxonomies:`Создано таксономий`,none:`Нет`,skipped:[[2,`count`,{one:[[4],` статья пропущена`],few:[[4],` статьи пропущены`],many:[[4],` статей пропущено`],other:[[4],` статьи пропущено`]}]],how:`Studio делает снимок до и после. Категории на этом сайте сначала необязательны, поэтому ничего не блокируется, и ничего не появится на сайте, пока вы не опубликуете.`,upToDate:`Переносить нечего`,upToDateDescription:`Все статьи уже используют теги и категории.`,run:`Выполнить перенос`},done:{title:`Теги перенесены`,description:`Теперь ваши статьи используют теги. Публикуйте, когда будете готовы.`,toast:`Теги перенесены`,toastDetail:`Тегов: {tags}, статей: {entries}; снимки сделаны до и после.`,undoHint:`Передумали? Отмена вернёт старые теги в статьи, которые с тех пор никто не редактировал.`,undo:`Отменить перенос`,close:`Готово`},revert:{toast:`Перенос отменён`,toastDetail:`Старые теги восстановлены в статьях: {count}.`}},redirects:{new:`Новое перенаправление`,search:`Поиск адресов`,menu:`Действия для {from}`,edit:`Изменить`,filters:{reason:`Источник`,all:`Все источники`},reasons:{"slug-change":`Смена slug`,merge:`Объединение`,retire:`Вывод`,manual:`Вручную`},columns:{from:`Старый адрес`,to:`Ведёт на`,type:`Тип`,source:`Источник`,updated:`Обновлено`},status:{301:`Постоянное (301)`,302:`Временное (302)`,"301Hint":`Поисковые системы переносят вес старого адреса на новый. Используйте, если переезд окончательный.`,"302Hint":`На короткое время, например для кампании; поисковые системы сохраняют старый адрес.`,short301:`301`,short302:`302`},match:{exact:`Только этот адрес`,exactHint:`Только этот точный путь.`,prefix:`Этот адрес и всё, что ниже`,prefixHint:`Остаток пути сохраняется: /old/a ведёт на /new/a.`,prefixShort:`и ниже`},external:{badge:`Внешнее`,title:`Отправлять посетителей на другой сайт?`,description:`Проверьте адрес назначения перед созданием перенаправления.`,leave:`Посетители перейдут на {host}`,warning:`Каждый, кто откроет старый адрес, попадёт на сайт, который вы не контролируете. Агенты никогда не могут это создать — только люди.`,target:`Назначение`,host:`Хост`,confirm:`Перенаправить на {host}`},externalHint:`Отправляет посетителей на {host}, за пределы этого сайта.`,dialog:{createTitle:`Новое перенаправление`,editTitle:`Изменить перенаправление`,description:`Отправляйте посетителей с адреса, который сайт больше не обслуживает, на новый.`,from:`Старый адрес`,fromHint:`Путь на этом сайте, например /old-page. Это не может быть адрес, который сайт всё ещё обслуживает.`,fromLocked:`Старый адрес нельзя изменить. Удалите это перенаправление и создайте другое.`,to:`Ведёт на`,toHint:`Путь на этом сайте (/new-page) или адрес https://.`,toExternal:`За пределами этого сайта: {host}. Вы подтвердите это на следующем шаге.`,toPlaceholder:`/new-page или https://…`,match:`Применяется к`,status:`Тип`,automatic:`Автоматические перенаправления всегда постоянные (301).`,note:`Примечание`,noteHint:`Необязательно. Зачем оно нужно — для того, кто будет смотреть следующим.`,create:`Создать перенаправление`},errors:{fromRequired:`Введите старый адрес.`,fromInvalid:`Укажите путь, начинающийся с /, без пробелов, ? и #.`,fromTooLong:`Не более 1024 символов.`,fromTaken:`Перенаправление с этого адреса уже существует. Измените его.`,fromServed:`Сайт обслуживает этот адрес. Перенаправление не может скрыть страницу, опубликованную статью или архив.`,toRequired:`Укажите, куда отправлять посетителей.`,toInvalid:`Укажите путь, начинающийся с /, или адрес https://.`,toInsecure:`Используйте https://.`,toTooLong:`Не более 2048 символов.`,toSelf:`Нельзя отправлять посетителей на тот же адрес.`,toLoop:`Получится цикл: цель перенаправляет обратно сюда.`},saved:`Перенаправление сохранено`,created:`Перенаправление с {from} создано`,deleted:`Перенаправление с {from} удалено`,deleteTitle:`Удалить перенаправление с {from}?`,deleteDescription:`После следующей публикации старый адрес будет отвечать 404.`,deleteAutomatic:`Studio создал его при смене адреса. После следующей публикации старый адрес будет отвечать 404, и ссылки на него перестанут работать.`,deleteConfirm:`Удалить перенаправление`,empty:`Перенаправлений пока нет`,emptyFiltered:`Нет перенаправлений из этого источника`,emptyDescription:`Смена slug, объединение и вывод из употребления добавляют перенаправления сюда автоматически. Добавьте свои для переехавших адресов.`},roles:{yours:`Ваша роль`,names:{owner:`Владелец`,administrator:`Администратор`,editor:`Редактор`,author:`Автор`,contributor:`Соавтор`},plural:{owner:`владелец`,administrator:`администраторы`,editor:`редакторы`,author:`авторы`,contributor:`соавторы`},summaries:{owner:`Всё, включая передачу владения. Владелец ровно один; владение переходит только через передачу.`,administrator:`Управляет развёртыванием: команда, роли, настройки сайтов и домены, ключи агентов всех участников. Редактирует и публикует что угодно.`,editor:`Редактирует и публикует что угодно, выстраивает структуру сайта (страницы, категории, перенаправления), выполняет откат и приглашает авторов и соавторов.`,author:`Пишет, редактирует и публикует свои статьи. Всё остальное ждёт редактора.`,contributor:`Пишет черновики и отправляет их на проверку. Публикует их редактор; опубликованное доступно соавтору только для чтения.`},explainer:{role:`Роль`,columns:{articles:`Статьи`,publish:`Публикация`,structure:`Структура`,team:`Команда`},levels:{all:`Все`,own:`Свои`,drafts:`Черновики`,none:`Нет`,invite:`Приглашение`,full:`Управление`},hints:{articles:{all:`Пишет и редактирует любые статьи, может указать автором другого человека.`,own:`Пишет статьи и редактирует свои, опубликованные или нет.`,drafts:`Пишет черновики и редактирует свои, пока их не опубликует редактор.`,none:`Не может изменять статьи.`},publish:{all:`Публикует что угодно и выполняет откат.`,own:`Публикует, когда все публичные изменения свои; всё остальное становится запросом.`,none:`Отправляет на проверку; публикует кто-то другой.`},structure:{all:`Страницы, категории и теги, перенаправления.`,none:`Видит страницы, категории и перенаправления, но не изменяет их.`},team:{full:`Приглашает, меняет роли, удаляет людей; настройки сайтов и домены; ключи агентов всех участников.`,invite:`Приглашает авторов и соавторов.`,none:`Видит состав команды.`}}}},gating:{readOnlyTitle:`Вы можете только просматривать`,entryNotOwn:`Эта статья принадлежит другому человеку. Изменять её могут автор, а также редакторы и выше.`,entryPublished:`Эта статья опубликована. Соавторы не могут изменять опубликованное; это может сделать редактор.`,entryDelete:`Удалить её могут только автор (если позволяет роль), а также редакторы и выше.`,abilities:{entries:{create:`Писать статьи могут только {roles} и выше.`,editOwnPublished:`Публиковать статьи могут только {roles} и выше. Вашу статью опубликует редактор после проверки.`,editAny:`Изменять чужие статьи могут только {roles} и выше.`},pages:{write:`Изменять страницы могут только {roles} и выше.`},publish:{own:`Публиковать могут только {roles} и выше. Отправьте работу на проверку; опубликует её редактор.`,any:`Публиковать чужую работу могут только {roles} и выше.`},rollback:`Откатывать сайт могут только {roles} и выше.`,structure:{write:`Изменять категории, теги и перенаправления могут только {roles} и выше.`},assets:{upload:`Загружать файлы могут только {roles} и выше.`,manage:`Управлять всеми файлами могут только {roles} и выше.`},activity:{all:`Активность всей команды видят только {roles} и выше.`},analytics:{read:`Аналитику видят только {roles} и выше.`,settings:`Изменять настройки аналитики могут только {roles} и выше.`},comments:{read:`Комментарии читателей видят только {roles} и выше.`,moderate:`Модерировать комментарии могут только {roles} и выше.`,moderateAny:`Модерировать комментарии к чужим статьям могут только {roles} и выше.`,reply:`Отвечать на комментарии могут только {roles} и выше.`,replyAny:`Отвечать в чужих статьях могут только {roles} и выше.`,settings:`Изменять настройки комментариев могут только {roles} и выше.`},commenters:{data:`Видеть адреса почты комментаторов или стирать их данные могут только {roles} и выше.`},settings:{write:`Изменять настройки сайта и домены могут только {roles} и выше.`},members:{invite:`Приглашать людей могут только {roles} и выше.`,manage:`Менять роли или удалять людей могут только {roles} и выше.`},agents:{manage:`Управлять чужими ключами агентов могут только {roles} и выше.`},sites:{create:`Создавать сайты могут только {roles} и выше.`},schedules:{read:`Расписание видят только {roles} и выше.`,write:`Планировать свою работу могут только {roles} и выше.`,writeAny:`Изменять чужие расписания могут только {roles} и выше.`,settings:`Приостанавливать расписания или менять их лимиты могут только {roles} и выше.`},releases:{approve:`Одобрять релизы своей работы могут только {roles} и выше.`,approveAny:`Одобрять релизы могут только {roles} и выше.`},automations:{manage:`Управлять автоматизациями могут только {roles} и выше.`},ai:{invoke:`Пользоваться ИИ в редакторе могут только {roles} и выше.`,settings:`Изменять настройки ИИ могут только {roles} и выше.`},ownership:{transfer:`Передать владение может только {roles}.`}}},publishing:{request:`Запросить публикацию`,requestCommand:`Сделать снимок и запросить публикацию`,requestTitle:`Запросить публикацию?`,requestDescription:`Ваши изменения включают чужую работу или изменения структуры сайта, поэтому публикацию одобряет редактор. Studio сейчас сделает снимок; запрос будет ждать в «Одобрениях».`,sendRequest:`Отправить запрос`,requestOption:`Запросить публикацию`,requestOptionDescription:`Редактор одобрит её в «Одобрениях» до выхода на сайт.`,requested:`Публикация запрошена`,requestedDescription:`Ваши изменения включают чужую работу, поэтому публикацию должен одобрить редактор. Запрос находится в «Одобрениях».`,openRequest:`Открыть «Одобрения»`,refused:`Вы не можете публиковать`},members:{invite:`Пригласить людей`,search:`Поиск людей`,you:`Вы`,someone:`Кто-то`,menu:`Действия для {name}`,tabs:{members:`Участники`,activity:`Активность`},columns:{member:`Участник`,role:`Роль`,joined:`Дата присоединения`,actions:`Действия`},empty:`Участников пока нет`,emptyDescription:`Первая учётная запись в Studio становится владельцем. Приглашайте людей отсюда.`,noMatches:`Никто не подходит под «{query}»`,notEnabledTitle:`На этом сервере нет команды`,notEnabledDescription:`Для ролей и приглашений нужен Studio с учётными записями (cloudhal studio или развёрнутый admin Worker). Без них каждый вошедший может делать всё.`,changeRole:`Изменить роль…`,resetLink:`Создать ссылку для сброса пароля…`,transferOwnership:`Передать владение…`,rank:{self:`Нельзя изменить собственную роль или удалить себя.`,owner_role:`Роль владельца переходит только через передачу владения.`,target_is_owner:`Владельца нельзя понизить или удалить. Сначала передайте владение.`,role_too_high:`Ваша роль не позволяет выдать эту роль.`,not_allowed:`Управлять участниками могут только администраторы и владелец.`},roles:{title:`Роли`,description:`Что может каждая роль. Ключи агентов никогда не могут больше, чем создавший их человек.`},how:{title:`Как работают приглашения`,single:`Каждая ссылка срабатывает один раз. Присоединится тот, кто откроет её первым, поэтому делитесь ей лично.`,bound:`Ссылка привязана к одному адресу электронной почты и одной роли; приглашённый не может изменить ни то, ни другое.`,expiry:`По умолчанию ссылки истекают через {default}. Приглашения администраторов истекают в течение {admin}.`,keys:`Ключи агентов человека никогда не могут больше, чем его роль, и сразу сужаются при понижении роли.`,owner:`Владелец один. Владение можно передать только администратору, с паролем владельца.`},invites:{title:`Ожидающие приглашения`,description:`Ещё не использованные ссылки. Отзовите ссылку, и она сразу перестанет работать.`,empty:`Ожидающих приглашений нет`,emptyDescription:`Созданные ссылки-приглашения появляются здесь, пока их не используют, не отзовут или пока они не истекут.`,columns:{email:`Электронная почта`,role:`Роль`,expires:`Истекает`,inviter:`Кто пригласил`,actions:`Действия`},byLink:`Ссылка`,byEmail:`Отправлено по почте`,expired:`Истекло`,incomplete:`Не завершено`,incompleteHint:`Ссылка использована, но учётная запись не создана. Пригласите снова, чтобы отправить новую ссылку.`,you:`Вы`,someone:`Бывший участник`,reinvite:`Пригласить снова`,menu:`Действия с приглашением для {email}`,revoke:`Отозвать`,revokeTitle:`Отозвать это приглашение?`,revokeDescription:`Ссылка для {email} сразу перестанет работать. Позже можно пригласить снова.`,revoked:`Приглашение отозвано`,revokedDescription:`Ссылка для {email} больше не работает.`},role:{title:`Изменить роль: {name}`,description:`Вступает в силу при следующем действии участника или вызове агента. Записывается в журнал активности.`,member:`Участник`,newRole:`Новая роль`,change:`Изменение роли`,now:`Сейчас`,immediate:`Применяется сразу`,demotionTitle:`Ключи агентов тоже сужаются`,demotion:`С ролью «{role}» ключи сохраняют только разрешённые этой ролью области доступа и режимы, а повышение прав выше неё прекращается. Последующее повышение роли не расширит ключи снова.`,submit:`Изменить роль`,failed:`Не удалось изменить роль`,changed:`Роль изменена`,changedDescription:`{name} теперь: {to}.`,narrowedTitle:`Права ключей агентов сужены`,narrowedDescription:[[2,`count`,{one:[[4],` ключ агента теперь может только то, что позволяет новая роль.`],few:[[4],` ключа агентов теперь могут только то, что позволяет новая роль.`],many:[[4],` ключей агентов теперь могут только то, что позволяет новая роль.`],other:[[4],` ключа агентов теперь могут только то, что позволяет новая роль.`]}]],narrowedBanner:`Права ключей агентов сужены: {count}`,narrowedBannerDescription:`Каждый ключ ниже сохраняет только то, что позволяет новая роль. Агенты заметят это при следующем вызове.`,narrowedMode:`Режим`,narrowedScopes:`Теперь работает с`,elevationEnded:`Повышение прав прекращено, потому что новая роль его не позволяет.`,done:`Готово`},remove:{menu:`Удалить из команды…`,title:`Удалить {name} из команды?`,description:`Доступ пропадёт сразу. Это записывается в журнал активности.`,signOut:`Выход выполняется на всех устройствах.`,keys:`Ключи агентов этого участника отключаются (сохраняются для истории, их можно удалить).`,keysCount:`Отключаются ключи агентов: {count}.`,invites:`Отправленные этим участником и ещё не принятые приглашения отменяются.`,invitesCount:`Отменяются ожидающие приглашения: {count}.`,requests:`Запросы, которых ждут агенты этого участника, отклоняются.`,kept:`Статьи и активность участника остаются. Повторное приглашение восстановит доступ.`,submit:`Удалить`,failed:`Не удалось удалить`,done:`Участник {name} удалён из команды`,doneDescription:`Отключено ключей агентов: {keys} · отменено приглашений: {invites} · отклонено запросов: {requests}.`},reset:{title:`Создать ссылку для сброса пароля?`,description:`С её помощью {name} сможет выбрать новый пароль. Отправки по почте пока нет, поэтому поделитесь ссылкой сами.`,once:`Она срабатывает один раз и истекает через час.`,signsOut:`После установки нового пароля выполняется выход на всех устройствах.`,replaces:`Новая ссылка аннулирует любую предыдущую.`,submit:`Создать ссылку`,failed:`Не удалось создать ссылку`,revealTitle:`Скопируйте ссылку для сброса`,revealDescription:`Отправьте её {name} лично, в личном сообщении.`,warningTitle:`Вы больше не увидите эту ссылку`,warning:`Скопируйте её сейчас. Любой, кто её откроет, сможет задать пароль этой учётной записи, поэтому никогда не публикуйте её в общем канале.`,link:`Ссылка для сброса`,expires:`Истекает {relative} ({absolute}).`,done:`Ссылка скопирована`},transfer:{title:`Передать владение {name}?`,description:`Владелец может всё, включая передачу владения. Он ровно один.`,warningTitle:`Сами вы это не отмените`,warning:`{name} станет владельцем, а вы — администратором. Вернуть владение сможет только {name}.`,to:`Новый владелец`,youBecome:`Вы сразу станете администратором.`,keys:`Ваши ключи агентов сужаются до того, что разрешено администратору.`,onlyThey:`Снова передать владение сможет только новый владелец.`,password:`Ваш пароль`,passwordHint:`Введите его ещё раз, чтобы подтвердить, что это вы.`,passwordRequired:`Введите пароль`,wrongPassword:`Пароль неверный`,notAdministrator:`Владение передаётся администратору. Сначала назначьте этого человека администратором и повторите попытку.`,needsAdministrator:`Владение передаётся только администратору. Сначала измените роль.`,submit:`Передать владение`,failed:`Не удалось передать владение`,done:`Владение передано`,doneDescription:`{name} теперь владелец. Вы — администратор.`},activity:{empty:`Событий команды пока нет`,emptyDescription:`Здесь появляются приглашения, изменения ролей, удаления и передачи владения.`,restrictedTitle:`Активность команды доступна редакторам и выше`}},editionGuide:{title:`Ещё один язык: здесь или отдельным сайтом?`,hereTitle:`Добавить на этот сайт`,here:`Одни и те же страницы и меню на каждом языке, одна команда, одна публикация. Лучше всего, когда языки зеркальны.`,editionTitle:`Начать языковое издание`,edition:`Отдельный сайт в этом проекте на основе этого: свои страницы, меню, роли команды и публикации, по-прежнему связанные как переводы. Лучше всего, когда рынку нужна своя структура или команда.`,create:`Создать языковое издание…`},newSite:{open:`Новый сайт`,title:`Новый сайт`,description:`Отдельный сайт в этой установке: свои страницы, настройки, роли команды и аналитика. Он начинается с главной страницы; ничего не публикуется.`,name:`Название`,nameRequired:`Дайте сайту название.`,slug:`Короткое имя`,slugHint:`Строчные латинские буквы, цифры и дефисы; по нему сайт узнают в Studio и CLI.`,slugInvalid:`Используйте строчные буквы, цифры и дефисы.`,language:`Язык`,languageHint:`Язык сайта по умолчанию; другие добавите позже в настройках языков.`,project:`Проект`,projectHint:`Проекты объединяют связанные сайты, например языковые издания одной публикации.`,newProject:`Новый проект`,submit:`Создать сайт`,failed:`Не удалось создать сайт`,created:`Сайт создан`,createdDescription:`{name} готов к правке; пока ничего не опубликовано.`,from:`Основа`,fromHint:`Пустой сайт начинается с главной страницы и страницы «О нас».`,blank:`Пустой сайт`,copyOf:`Копия {name} (языковое издание)`,editionHint:`Копирует страницы того сайта черновиками на новом языке, его меню и дизайн, связывая их как переводы; статьи и медиа не копируются. Новый сайт входит в проект того сайта.`,editionCreated:[[0,`name`],` начинается с `,[2,`count`,{one:[[4],` страницы`],few:[[4],` страниц`],many:[[4],` страниц`],other:[[4],` страницы`]}],` для перевода; пока ничего не опубликовано.`]},projects:{title:`Проект`,description:`Сайты этого проекта рядом: языки, адрес, состояние публикации и ожидающие одобрения.`,newSite:`Новый сайт в этом проекте`,sites:`Сайты`,notFound:`Такого проекта нет`,notFoundDescription:`Он удалён, или вы не можете открыть ни один из его сайтов.`,columns:{site:`Сайт`,languages:`Языки`,address:`Адрес`,status:`Состояние`,approvals:`Одобрения`},noAddress:`Домена пока нет`,none:`Нет`,waiting:[[2,`count`,{one:[[4],` ждёт`],few:[[4],` ждут`],many:[[4],` ждут`],other:[[4],` ждут`]}]],summary:{title:`Кратко`,sites:`Сайты`,languages:`Языки`,live:`Опубликованы`,waiting:`Ожидают одобрения`}},siteAccess:{legend:`Сайты`,all:`Все сайты`,some:`Только некоторые сайты`,roleOn:`Роль на сайте {site}`,everySite:`Владельцы и администраторы работают на всех сайтах этой установки.`,required:`Выберите хотя бы один сайт.`,menu:`Сайты`,title:`Сайты: {name}`,description:`Выберите, на каких сайтах работает этот человек и с какой ролью. Изменения вступают в силу сразу.`,failed:`Не удалось сохранить сайты`,submit:`Сохранить сайты`,saved:`Сайты сохранены`,savedDescription:`Сайты пользователя {name} обновлены.`,count:[[2,`count`,{one:[[4],` сайт`],few:[[4],` сайта`],many:[[4],` сайтов`],other:[[4],` сайта`]}]]},invites:{create:{title:`Пригласить человека`,reinviteTitle:`Пригласить снова`,description:`Человек получит одноразовую ссылку для создания учётной записи с выбранной вами ролью.`,step:`Шаг 1 из 2 · Кого и в какой роли`,email:`Электронная почта`,emailHint:`Учётная запись создаётся с этим адресом; изменить его нельзя.`,emailPlaceholder:`name@example.com`,role:`Роль`,roleHint:`Показаны только роли, которые может выдать ваша.`,expiry:`Ссылка истекает через`,expiryHint:`Выберите самый короткий подходящий срок.`,expiryAdmin:`Приглашения администраторов истекают в течение {max}.`,explainer:`Что может каждая роль`,delivery:`Как отправить`,deliveryLink:`Скопировать ссылку`,deliveryLinkHint:`Вы делитесь ей сами, лично.`,deliveryEmail:`Отправить по почте`,deliveryEmailHint:`Studio отправит ссылку письмом; вы её не увидите.`,submit:`Создать ссылку-приглашение`,send:`Отправить приглашение`,failed:`Не удалось создать приглашение`},reveal:{title:`Скопируйте ссылку-приглашение`,sentTitle:`Приглашение отправлено`,description:`Для {email}, роль «{role}». Шаг 2 из 2.`,warningTitle:`Вы больше не увидите эту ссылку`,warning:`Скопируйте её сейчас и отправьте лично, в личном сообщении, а не в общем канале. Тот, кто откроет её первым, присоединится с ролью «{role}».`,link:`Ссылка-приглашение`,summary:`Приглашение`,expires:`Истекает {relative} ({absolute}).`,private:`Если ссылка попадёт не к тому человеку, отзовите её в «Ожидающих приглашениях».`,done:`Ссылка скопирована`,sent:`Отправлено на {email}`,sentDescription:`Ссылка срабатывает один раз. Её можно отозвать в «Ожидающих приглашениях».`},errors:{emailRequired:`Введите адрес электронной почты`,emailInvalid:`Введите корректный адрес электронной почты, например name@example.com`,rank:`Ваша роль не позволяет пригласить человека с ролью «{role}».`,invalid_expiry:`Такой срок для этой роли не допускается. Выберите более короткий.`,delivery_unavailable:`Этот сервер не может отправлять почту. Скопируйте ссылку.`,delivery_failed:`Письмо не удалось отправить, поэтому приглашение отменено. Выберите «Скопировать ссылку» и повторите попытку.`,already_member:`{email} уже в команде.`,too_many_invites:`Слишком много ожидающих приглашений. Сначала отзовите некоторые.`,rate_limited:`За последний час вы создали много приглашений. Повторите попытку позже.`}},inviteAccept:{titleGeneric:`Присоединиться к Cloudhal Studio`,title:`Присоединиться к {name}`,descriptionGeneric:`Открываем приглашение…`,descriptionDead:`Эта ссылка больше не работает.`,description:`{inviter} приглашает вас с ролью «{role}».`,someone:`Кто-то`,summary:`Ваше приглашение`,as:`Вы присоединитесь с ролью`,expires:`Приглашение истекает {relative} ({absolute}).`,emailHint:`Приглашение предназначено для этого адреса.`,nameHint:`Показывается рядом с вашими изменениями и одобрениями.`,existingTitle:`У вас уже есть учётная запись`,existing:`Введите её пароль, чтобы присоединиться с ней.`,submit:`Принять приглашение`,toSignIn:`Перейти ко входу`,signOutFirst:`Сначала выйдите, затем примите приглашение.`,welcome:`Добро пожаловать в {name}`,welcomeDescription:`Вы вошли с ролью «{role}».`,missingTitle:`Ссылка неполная`,missing:`Откройте всю присланную ссылку целиком: часть после # отсутствует. Если не помогает, попросите новое приглашение.`,goneTitle:`Это приглашение нельзя использовать`,gone:`Оно уже использовано, отозвано или истекло. Попросите пригласившего вас человека прислать новое.`,otherSessionTitle:`Вы вошли как {email}`,otherSessionTitleGeneric:`Вы вошли под другой учётной записью`,otherSession:`Это приглашение для {email}. Выйдите, затем примите его.`,alreadyMemberTitle:`Вы уже в команде`,alreadyMember:`Эта учётная запись уже участник. Просто войдите.`,errors:{nameRequired:`Введите имя`,nameTooLong:[`Не более `,[2,`max`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}]],weakPassword:`Не менее 8 символов`,wrongPassword:`Неверный пароль для этой учётной записи`}},resetPassword:{title:`Выберите новый пароль`,description:`Для учётной записи {name}.`,descriptionGeneric:`Открываем ссылку для сброса…`,descriptionDead:`Эта ссылка больше не работает.`,expires:`Ссылка истекает {relative} ({absolute}).`,signsOut:`Будет выполнен выход на всех устройствах; затем войдите с новым паролем.`,submit:`Задать новый пароль`,doneTitle:`Пароль изменён`,doneDescription:`Войдите с новым паролем.`,changed:`Пароль задан`,changedDescription:`Выполнен выход на всех устройствах.`,missingTitle:`Ссылка неполная`,missing:`Откройте всю присланную ссылку целиком: часть после # отсутствует.`,goneTitle:`Эту ссылку для сброса нельзя использовать`,gone:`Она уже использована или истекла. Запросите новую на странице входа или обратитесь к администратору.`},forgotPassword:{link:`Забыли пароль?`,title:`Сброс пароля`,description:`Мы отправим вам письмо со ссылкой для выбора нового пароля.`,submit:`Отправить ссылку`,sentTitle:`Проверьте почту`,sent:`Если адрес {email} принадлежит учётной записи здесь, ссылка для сброса уже в пути. Она срабатывает один раз и действует один час.`,unavailableTitle:`Этот сервер не может отправлять почту`,unavailable:`Попросите ссылку для сброса у администратора этого Studio.`,back:`Назад ко входу`},passwords:{new:`Новый пароль`,confirm:`Повторите пароль`,strength:`Надёжность: {level}`,levels:{empty:`—`,tooShort:`слишком короткий`,weak:`слабый`,fair:`средний`,strong:`надёжный`},advice:{empty:[`Не менее `,[2,`min`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}],`. Несколько не связанных между собой слов дают надёжный пароль.`],tooShort:[`Не менее `,[2,`min`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}],`.`],weak:`Чем длиннее, тем надёжнее: попробуйте 12 символов и больше или несколько не связанных слов.`,fair:`Неплохо. Ещё несколько символов — и он станет надёжным.`,strong:`Надёжный пароль.`},errors:{required:`Введите пароль`,tooShort:[`Не менее `,[2,`min`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}]],tooLong:[`Не более `,[2,`max`,{one:[[4],` символа`],few:[[4],` символов`],many:[[4],` символов`],other:[[4],` символа`]}]],confirmRequired:`Повторите пароль`,mismatch:`Пароли не совпадают`}}};export{e as messages};
|
|
6
|
+
//# sourceMappingURL=ru-DZ1xI15Q.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as e,f as t,l as n}from"./api-
|
|
2
|
-
//# sourceMappingURL=schedules-api-
|
|
1
|
+
import{d as e,f as t,l as n}from"./api-Mdeo6gzg.js";var r=e=>`/api/sites/${encodeURIComponent(e)}`,i=(e,t)=>`${r(e)}/releases/${encodeURIComponent(t)}`,a=(e,t)=>`${r(e)}/automations/${encodeURIComponent(t)}`,o=(e,r)=>t(e,{method:`POST`,...n(r)}),s={calendar:(n,i)=>t(`${r(n)}/schedule${e({from:i.from,to:i.to,types:i.types?.join(`,`),states:i.states?.join(`,`),origin:i.origin,approval:i.approval,collection:i.collection,q:i.q,cursor:i.cursor})}`),releases:{list:(n,i)=>t(`${r(n)}/releases${e({state:i?.join(`,`),limit:200})}`).then(e=>e.releases),get:(e,n)=>t(i(e,n)),diff:(e,n)=>t(`${i(e,n)}/diff`),create:(e,t)=>o(`${r(e)}/releases`,t),retitle:(e,r,a,o)=>t(i(e,r),{method:`PATCH`,...n({rev:a,title:o})}),schedule:(e,t,n,r)=>o(`${i(e,t)}/schedule`,{rev:n,when:r}),reschedule:(e,t,n,r)=>o(`${i(e,t)}/reschedule`,{rev:n,when:r}),repin:(e,t,n,r=!1)=>o(`${i(e,t)}/repin`,{rev:n,approve:r}),unschedule:(e,t,n)=>o(`${i(e,t)}/unschedule`,{rev:n}),cancel:(e,t,n)=>o(`${i(e,t)}/cancel`,{rev:n}),publishNow:(e,t,n)=>o(`${i(e,t)}/publish-now`,{rev:n})},gates:{set:(e,t)=>o(`${r(e)}/gates`,t),lift:(e,t,n)=>o(`${r(e)}/gates/${encodeURIComponent(t)}/lift`,n)},automations:{list:e=>t(`${r(e)}/automations`).then(e=>e.automations),get:(e,n)=>t(a(e,n)),create:(e,t)=>o(`${r(e)}/automations`,t),update:(e,r,i,o)=>t(a(e,r),{method:`PATCH`,...n({rev:i,...o})}).then(e=>e.automation),pause:(e,t,n)=>o(`${a(e,t)}/pause`,{rev:n}).then(e=>e.automation),resume:(e,t,n)=>o(`${a(e,t)}/resume`,{rev:n}).then(e=>e.automation),runNow:(e,t)=>o(`${a(e,t)}/run-now`,{}),remove:(n,r,i)=>t(`${a(n,r)}${e({rev:i})}`,{method:`DELETE`}),previewRule:(e,t)=>o(`${r(e)}/automations/preview-rule`,t)},runs:{list:(n,i={})=>t(`${r(n)}/runs${e({state:i.state?.join(`,`),automationId:i.automationId,releaseId:i.releaseId,before:i.before,limit:50})}`),get:(e,n)=>t(`${r(e)}/runs/${encodeURIComponent(n)}`)},settings:{get:e=>t(`${r(e)}/schedule-settings`),put:(e,i)=>t(`${r(e)}/schedule-settings`,{method:`PUT`,...n(i)})}};export{s as t};
|
|
2
|
+
//# sourceMappingURL=schedules-api-DWQc-xjG.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./IconBase.es-BZDpYMnj.js";import{i as n,r}from"./react-CDCuUAOg.js";import{t as i}from"./button-pa1bq9b85hawg41a-CmOCuL-1.js";import{a,o,r as s,s as c}from"./input-c8lv9ulv0kortliq-Be2cm12J.js";import{P as l}from"./index-
|
|
2
|
-
//# sourceMappingURL=tag-input-ohfybx5dbxy3houy-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./IconBase.es-BZDpYMnj.js";import{i as n,r}from"./react-CDCuUAOg.js";import{t as i}from"./button-pa1bq9b85hawg41a-CmOCuL-1.js";import{a,o,r as s,s as c}from"./input-c8lv9ulv0kortliq-Be2cm12J.js";import{P as l}from"./index-DYyDeKnk.js";var u=e(n(),1),d=r(),f={input:`Add tag`,removeValue:e=>`Remove ${e}`,invalidValue:e=>`"${e}" is not valid.`,maxValuesReached:e=>`Limit of ${e} tags reached.`};function p(e){return e.split(/[\n,]+/).map(e=>e.trim()).filter(Boolean)}var m=(0,u.forwardRef)(({value:e,defaultValue:n=[],onValueChange:r,validateValue:m,maxValues:h,labels:g,label:_,labelTooltip:v,description:y,error:b,variant:x,disabled:S,className:C,placeholder:w,id:T,autoComplete:E=`off`,onBlur:D,onChange:O,onKeyDown:k,onPaste:A,...j},M)=>{let[N,P]=(0,u.useState)(n),[F,I]=(0,u.useState)(``),[L,R]=(0,u.useState)(),z=(0,u.useId)(),B=e??N,V=t=>{e===void 0&&P(t),r?.(t)},H=e=>{let t=p(e),n=[...B];for(let e=0;e<t.length;e+=1){let r=t[e];if(!n.includes(r)){if(h!==void 0&&n.length>=h)return I(t.slice(e).join(`, `)),R((g?.maxValuesReached??f.maxValuesReached)(h)),V(n),!1;if(m&&!m(r,n))return I(t.slice(e).join(`, `)),R((g?.invalidValue??f.invalidValue)(r)),V(n),!1;n.push(r)}}return V(n),I(``),R(void 0),!0},U=e=>{if(k?.(e),e.defaultPrevented)return;if(!F&&e.key===`Backspace`){V(B.slice(0,-1));return}if(!F||![`Enter`,`,`,`Tab`].includes(e.key))return;let t=H(F);(e.key!==`Tab`||t)&&e.preventDefault()},W=e=>{if(A?.(e),e.defaultPrevented)return;let t=e.clipboardData.getData(`text`);/[\n,]/.test(t)&&(e.preventDefault(),H(t))},G=c(b)??c(L),K=x??(G?`error`:`default`),q=t(`flex w-fit max-w-full shrink-0 items-center gap-2.5 rounded-sm bg-kumo-overlay ring-1 ring-kumo-hairline`,`h-6 py-0 pe-[3px] ps-2 text-sm`),J=e=>(0,d.jsx)(`input`,{...e,...j,ref:M,"aria-invalid":!!G,"aria-label":j[`aria-label`]??(typeof _==`string`?_:g?.input??f.input),className:t(`min-w-32 flex-1 border-0 bg-transparent outline-none`,`px-1 py-0.5`),disabled:S,autoComplete:E,id:e?.id??T??z,placeholder:w,value:F,onBlur:e=>{D?.(e),e.defaultPrevented||H(F)},onChange:e=>{I(e.target.value),R(void 0),O?.(e)},onKeyDown:U,onPaste:W}),Y=!!(_||y||G),X=(0,d.jsxs)(`div`,{className:t(s({variant:K,parentFocusIndicator:!0}),`flex h-auto min-h-9 flex-wrap items-center gap-x-2 gap-y-1.5 px-2 py-1.5`,C),children:[B.map(e=>(0,d.jsxs)(`span`,{className:t(q,`text-kumo-default`),children:[(0,d.jsx)(`span`,{className:`truncate`,children:e}),(0,d.jsx)(i,{"aria-label":(g?.removeValue??f.removeValue)(e),icon:(0,d.jsx)(l,{size:10}),shape:`square`,size:`xs`,variant:`ghost`,disabled:S,onMouseDown:e=>e.preventDefault(),onClick:()=>V(B.filter(t=>t!==e))})]},e)),Y?(0,d.jsx)(a,{render:e=>J(e)}):J()]});return Y?(0,d.jsx)(o,{label:_??``,labelTooltip:v,description:y,error:G,children:X}):X});m.displayName=`TagInput`;export{m as t};
|
|
2
|
+
//# sourceMappingURL=tag-input-ohfybx5dbxy3houy-CbqFHYvH.js.map
|