@nocobase/app-plugin-releases 0.1.0-beta.2 → 0.1.0-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/CHANGELOG.md +341 -0
  2. package/LICENSE.txt +129 -0
  3. package/README.md +91 -16
  4. package/dist/client/components/environment-form.d.ts +1 -1
  5. package/dist/client/components/environment-form.d.ts.map +1 -1
  6. package/dist/client/components/environment-form.js +9 -2
  7. package/dist/client/components/environment-form.js.map +1 -1
  8. package/dist/client/components/page-header.d.ts.map +1 -1
  9. package/dist/client/components/page-header.js +1 -1
  10. package/dist/client/components/page-header.js.map +1 -1
  11. package/dist/client/components/release-badges.d.ts.map +1 -1
  12. package/dist/client/components/release-badges.js +13 -1
  13. package/dist/client/components/release-badges.js.map +1 -1
  14. package/dist/client/components/route-overlay.d.ts +4 -1
  15. package/dist/client/components/route-overlay.d.ts.map +1 -1
  16. package/dist/client/components/route-overlay.js +32 -3
  17. package/dist/client/components/route-overlay.js.map +1 -1
  18. package/dist/client/components/runtime-policy-fields.d.ts +7 -1
  19. package/dist/client/components/runtime-policy-fields.d.ts.map +1 -1
  20. package/dist/client/components/runtime-policy-fields.js +19 -5
  21. package/dist/client/components/runtime-policy-fields.js.map +1 -1
  22. package/dist/client/components/runtime-state.d.ts +6 -0
  23. package/dist/client/components/runtime-state.d.ts.map +1 -0
  24. package/dist/client/components/runtime-state.js +67 -0
  25. package/dist/client/components/runtime-state.js.map +1 -0
  26. package/dist/client/components/shared-host.d.ts +20 -0
  27. package/dist/client/components/shared-host.d.ts.map +1 -0
  28. package/dist/client/components/shared-host.js +88 -0
  29. package/dist/client/components/shared-host.js.map +1 -0
  30. package/dist/client/components/ui/progress.d.ts +9 -0
  31. package/dist/client/components/ui/progress.d.ts.map +1 -0
  32. package/dist/client/components/ui/progress.js +20 -0
  33. package/dist/client/components/ui/progress.js.map +1 -0
  34. package/dist/client/components/use-route-overlay.d.ts +2 -9
  35. package/dist/client/components/use-route-overlay.d.ts.map +1 -1
  36. package/dist/client/components/use-route-overlay.js +5 -3
  37. package/dist/client/components/use-route-overlay.js.map +1 -1
  38. package/dist/client/components/variable-alerts.d.ts.map +1 -1
  39. package/dist/client/components/variable-alerts.js +6 -18
  40. package/dist/client/components/variable-alerts.js.map +1 -1
  41. package/dist/client/hooks/use-app-summary.d.ts +1 -1
  42. package/dist/client/hooks/use-app-summary.d.ts.map +1 -1
  43. package/dist/client/hooks/use-app-summary.js +4 -1
  44. package/dist/client/hooks/use-app-summary.js.map +1 -1
  45. package/dist/client/hooks/use-releases.d.ts +4 -1
  46. package/dist/client/hooks/use-releases.d.ts.map +1 -1
  47. package/dist/client/hooks/use-releases.js +6 -2
  48. package/dist/client/hooks/use-releases.js.map +1 -1
  49. package/dist/client/lib/app-state.d.ts +2 -2
  50. package/dist/client/lib/app-state.d.ts.map +1 -1
  51. package/dist/client/lib/app-state.js +10 -3
  52. package/dist/client/lib/app-state.js.map +1 -1
  53. package/dist/client/lib/errors.d.ts.map +1 -1
  54. package/dist/client/lib/errors.js +7 -0
  55. package/dist/client/lib/errors.js.map +1 -1
  56. package/dist/client/lib/format.d.ts +2 -0
  57. package/dist/client/lib/format.d.ts.map +1 -1
  58. package/dist/client/lib/format.js +7 -0
  59. package/dist/client/lib/format.js.map +1 -1
  60. package/dist/client/lib/paths.d.ts +5 -0
  61. package/dist/client/lib/paths.d.ts.map +1 -1
  62. package/dist/client/lib/paths.js +10 -0
  63. package/dist/client/lib/paths.js.map +1 -1
  64. package/dist/client/lib/permissions.d.ts +5 -0
  65. package/dist/client/lib/permissions.d.ts.map +1 -1
  66. package/dist/client/lib/permissions.js +8 -0
  67. package/dist/client/lib/permissions.js.map +1 -1
  68. package/dist/client/lib/runtime-state.d.ts +25 -0
  69. package/dist/client/lib/runtime-state.d.ts.map +1 -0
  70. package/dist/client/lib/runtime-state.js +58 -0
  71. package/dist/client/lib/runtime-state.js.map +1 -0
  72. package/dist/client/locales/de-DE.d.ts +5 -0
  73. package/dist/client/locales/de-DE.d.ts.map +1 -0
  74. package/dist/client/locales/de-DE.js +876 -0
  75. package/dist/client/locales/de-DE.js.map +1 -0
  76. package/dist/client/locales/en-US.d.ts +83 -9
  77. package/dist/client/locales/en-US.d.ts.map +1 -1
  78. package/dist/client/locales/en-US.js +80 -9
  79. package/dist/client/locales/en-US.js.map +1 -1
  80. package/dist/client/locales/es-ES.d.ts +5 -0
  81. package/dist/client/locales/es-ES.d.ts.map +1 -0
  82. package/dist/client/locales/es-ES.js +882 -0
  83. package/dist/client/locales/es-ES.js.map +1 -0
  84. package/dist/client/locales/fr-FR.d.ts +5 -0
  85. package/dist/client/locales/fr-FR.d.ts.map +1 -0
  86. package/dist/client/locales/fr-FR.js +882 -0
  87. package/dist/client/locales/fr-FR.js.map +1 -0
  88. package/dist/client/locales/id-ID.d.ts +5 -0
  89. package/dist/client/locales/id-ID.d.ts.map +1 -0
  90. package/dist/client/locales/id-ID.js +876 -0
  91. package/dist/client/locales/id-ID.js.map +1 -0
  92. package/dist/client/locales/index.d.ts.map +1 -1
  93. package/dist/client/locales/index.js +10 -0
  94. package/dist/client/locales/index.js.map +1 -1
  95. package/dist/client/locales/ja-JP.d.ts +5 -0
  96. package/dist/client/locales/ja-JP.d.ts.map +1 -0
  97. package/dist/client/locales/ja-JP.js +876 -0
  98. package/dist/client/locales/ja-JP.js.map +1 -0
  99. package/dist/client/locales/ko-KR.d.ts +5 -0
  100. package/dist/client/locales/ko-KR.d.ts.map +1 -0
  101. package/dist/client/locales/ko-KR.js +879 -0
  102. package/dist/client/locales/ko-KR.js.map +1 -0
  103. package/dist/client/locales/pt-BR.d.ts +5 -0
  104. package/dist/client/locales/pt-BR.d.ts.map +1 -0
  105. package/dist/client/locales/pt-BR.js +882 -0
  106. package/dist/client/locales/pt-BR.js.map +1 -0
  107. package/dist/client/locales/ru-RU.d.ts +5 -0
  108. package/dist/client/locales/ru-RU.d.ts.map +1 -0
  109. package/dist/client/locales/ru-RU.js +891 -0
  110. package/dist/client/locales/ru-RU.js.map +1 -0
  111. package/dist/client/locales/vi-VN.d.ts +5 -0
  112. package/dist/client/locales/vi-VN.d.ts.map +1 -0
  113. package/dist/client/locales/vi-VN.js +876 -0
  114. package/dist/client/locales/vi-VN.js.map +1 -0
  115. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  116. package/dist/client/locales/zh-CN.js +83 -9
  117. package/dist/client/locales/zh-CN.js.map +1 -1
  118. package/dist/client/locales/zh-TW.d.ts +5 -0
  119. package/dist/client/locales/zh-TW.d.ts.map +1 -0
  120. package/dist/client/locales/zh-TW.js +876 -0
  121. package/dist/client/locales/zh-TW.js.map +1 -0
  122. package/dist/client/pages/app-page.d.ts.map +1 -1
  123. package/dist/client/pages/app-page.js +14 -8
  124. package/dist/client/pages/app-page.js.map +1 -1
  125. package/dist/client/pages/apps-outlet.d.ts +8 -0
  126. package/dist/client/pages/apps-outlet.d.ts.map +1 -0
  127. package/dist/client/pages/apps-outlet.js +9 -0
  128. package/dist/client/pages/apps-outlet.js.map +1 -0
  129. package/dist/client/pages/environment-page.d.ts.map +1 -1
  130. package/dist/client/pages/environment-page.js +112 -24
  131. package/dist/client/pages/environment-page.js.map +1 -1
  132. package/dist/client/pages/environments-page.d.ts +8 -3
  133. package/dist/client/pages/environments-page.d.ts.map +1 -1
  134. package/dist/client/pages/environments-page.js +58 -10
  135. package/dist/client/pages/environments-page.js.map +1 -1
  136. package/dist/client/pages/new-app-page.d.ts +2 -4
  137. package/dist/client/pages/new-app-page.d.ts.map +1 -1
  138. package/dist/client/pages/new-app-page.js +29 -19
  139. package/dist/client/pages/new-app-page.js.map +1 -1
  140. package/dist/client/pages/new-app-redirect.d.ts +7 -0
  141. package/dist/client/pages/new-app-redirect.d.ts.map +1 -0
  142. package/dist/client/pages/new-app-redirect.js +8 -0
  143. package/dist/client/pages/new-app-redirect.js.map +1 -0
  144. package/dist/client/pages/request-page.js +1 -1
  145. package/dist/client/pages.d.ts +6 -2
  146. package/dist/client/pages.d.ts.map +1 -1
  147. package/dist/client/pages.js +8 -4
  148. package/dist/client/pages.js.map +1 -1
  149. package/dist/client/routes.d.ts.map +1 -1
  150. package/dist/client/routes.js +37 -10
  151. package/dist/client/routes.js.map +1 -1
  152. package/dist/database/migrations/.manifest.json +10 -2
  153. package/dist/database/migrations/202610020001_rel_create_tables.js +1 -1
  154. package/dist/database/migrations/202610020001_rel_create_tables.js.map +1 -1
  155. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.d.ts +4 -0
  156. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.d.ts.map +1 -0
  157. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.js +51 -0
  158. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.js.map +1 -0
  159. package/dist/database/migrations/202611020001_rel_environment_purpose.d.ts +8 -0
  160. package/dist/database/migrations/202611020001_rel_environment_purpose.d.ts.map +1 -0
  161. package/dist/database/migrations/202611020001_rel_environment_purpose.js +30 -0
  162. package/dist/database/migrations/202611020001_rel_environment_purpose.js.map +1 -0
  163. package/dist/server/access/caller.d.ts +6 -0
  164. package/dist/server/access/caller.d.ts.map +1 -1
  165. package/dist/server/access/caller.js +36 -0
  166. package/dist/server/access/caller.js.map +1 -1
  167. package/dist/server/artifact-config.d.ts +9 -0
  168. package/dist/server/artifact-config.d.ts.map +1 -0
  169. package/dist/server/artifact-config.js +49 -0
  170. package/dist/server/artifact-config.js.map +1 -0
  171. package/dist/server/composition.d.ts +6 -0
  172. package/dist/server/composition.d.ts.map +1 -1
  173. package/dist/server/composition.js +7 -1
  174. package/dist/server/composition.js.map +1 -1
  175. package/dist/server/config.d.ts +18 -2
  176. package/dist/server/config.d.ts.map +1 -1
  177. package/dist/server/drivers/host/driver.d.ts +13 -2
  178. package/dist/server/drivers/host/driver.d.ts.map +1 -1
  179. package/dist/server/drivers/host/driver.js +427 -81
  180. package/dist/server/drivers/host/driver.js.map +1 -1
  181. package/dist/server/drivers/types.d.ts +79 -1
  182. package/dist/server/drivers/types.d.ts.map +1 -1
  183. package/dist/server/drivers/types.js +6 -0
  184. package/dist/server/drivers/types.js.map +1 -1
  185. package/dist/server/index.d.ts +1 -1
  186. package/dist/server/index.d.ts.map +1 -1
  187. package/dist/server/index.js.map +1 -1
  188. package/dist/server/locales/de-DE.d.ts +5 -0
  189. package/dist/server/locales/de-DE.d.ts.map +1 -0
  190. package/dist/server/locales/de-DE.js +133 -0
  191. package/dist/server/locales/de-DE.js.map +1 -0
  192. package/dist/server/locales/es-ES.d.ts +5 -0
  193. package/dist/server/locales/es-ES.d.ts.map +1 -0
  194. package/dist/server/locales/es-ES.js +133 -0
  195. package/dist/server/locales/es-ES.js.map +1 -0
  196. package/dist/server/locales/fr-FR.d.ts +5 -0
  197. package/dist/server/locales/fr-FR.d.ts.map +1 -0
  198. package/dist/server/locales/fr-FR.js +133 -0
  199. package/dist/server/locales/fr-FR.js.map +1 -0
  200. package/dist/server/locales/id-ID.d.ts +5 -0
  201. package/dist/server/locales/id-ID.d.ts.map +1 -0
  202. package/dist/server/locales/id-ID.js +133 -0
  203. package/dist/server/locales/id-ID.js.map +1 -0
  204. package/dist/server/locales/index.d.ts.map +1 -1
  205. package/dist/server/locales/index.js +10 -0
  206. package/dist/server/locales/index.js.map +1 -1
  207. package/dist/server/locales/ja-JP.d.ts +5 -0
  208. package/dist/server/locales/ja-JP.d.ts.map +1 -0
  209. package/dist/server/locales/ja-JP.js +133 -0
  210. package/dist/server/locales/ja-JP.js.map +1 -0
  211. package/dist/server/locales/ko-KR.d.ts +5 -0
  212. package/dist/server/locales/ko-KR.d.ts.map +1 -0
  213. package/dist/server/locales/ko-KR.js +133 -0
  214. package/dist/server/locales/ko-KR.js.map +1 -0
  215. package/dist/server/locales/pt-BR.d.ts +5 -0
  216. package/dist/server/locales/pt-BR.d.ts.map +1 -0
  217. package/dist/server/locales/pt-BR.js +133 -0
  218. package/dist/server/locales/pt-BR.js.map +1 -0
  219. package/dist/server/locales/ru-RU.d.ts +5 -0
  220. package/dist/server/locales/ru-RU.d.ts.map +1 -0
  221. package/dist/server/locales/ru-RU.js +133 -0
  222. package/dist/server/locales/ru-RU.js.map +1 -0
  223. package/dist/server/locales/vi-VN.d.ts +5 -0
  224. package/dist/server/locales/vi-VN.d.ts.map +1 -0
  225. package/dist/server/locales/vi-VN.js +133 -0
  226. package/dist/server/locales/vi-VN.js.map +1 -0
  227. package/dist/server/locales/zh-TW.d.ts +5 -0
  228. package/dist/server/locales/zh-TW.d.ts.map +1 -0
  229. package/dist/server/locales/zh-TW.js +133 -0
  230. package/dist/server/locales/zh-TW.js.map +1 -0
  231. package/dist/server/providers/releases.d.ts.map +1 -1
  232. package/dist/server/providers/releases.js +12 -5
  233. package/dist/server/providers/releases.js.map +1 -1
  234. package/dist/server/routes/api.d.ts +1 -1
  235. package/dist/server/routes/api.d.ts.map +1 -1
  236. package/dist/server/routes/api.js +120 -20
  237. package/dist/server/routes/api.js.map +1 -1
  238. package/dist/server/routes/index.d.ts.map +1 -1
  239. package/dist/server/routes/index.js +10 -2
  240. package/dist/server/routes/index.js.map +1 -1
  241. package/dist/server/routes/schemas.d.ts +7 -2
  242. package/dist/server/routes/schemas.d.ts.map +1 -1
  243. package/dist/server/routes/schemas.js +320 -89
  244. package/dist/server/routes/schemas.js.map +1 -1
  245. package/dist/server/services/environments.d.ts +2 -2
  246. package/dist/server/services/environments.d.ts.map +1 -1
  247. package/dist/server/services/environments.js +21 -1
  248. package/dist/server/services/environments.js.map +1 -1
  249. package/dist/server/services/releases.d.ts +69 -8
  250. package/dist/server/services/releases.d.ts.map +1 -1
  251. package/dist/server/services/releases.js +574 -128
  252. package/dist/server/services/releases.js.map +1 -1
  253. package/dist/server/services/validation.d.ts +2 -0
  254. package/dist/server/services/validation.d.ts.map +1 -1
  255. package/dist/server/services/validation.js +8 -0
  256. package/dist/server/services/validation.js.map +1 -1
  257. package/dist/server/tokens.d.ts +15 -2
  258. package/dist/server/tokens.d.ts.map +1 -1
  259. package/dist/server/tokens.js.map +1 -1
  260. package/dist/shared/releases.d.ts +94 -3
  261. package/dist/shared/releases.d.ts.map +1 -1
  262. package/dist/shared/releases.js +37 -0
  263. package/dist/shared/releases.js.map +1 -1
  264. package/package.json +18 -18
  265. package/dist/client/pages/apps-page.d.ts +0 -4
  266. package/dist/client/pages/apps-page.d.ts.map +0 -1
  267. package/dist/client/pages/apps-page.js +0 -116
  268. package/dist/client/pages/apps-page.js.map +0 -1
@@ -0,0 +1,891 @@
1
+ const ruRU = {
2
+ access: {
3
+ section: 'Релизы',
4
+ pages: {
5
+ 'rel-apps': 'Приложения',
6
+ },
7
+ businessSection: 'Релизы',
8
+ businesses: {
9
+ apps: {
10
+ title: 'Приложения',
11
+ description: 'Приложения, их релизы, развёртывания и работа.',
12
+ actions: {
13
+ view: {
14
+ title: 'Просмотр приложений',
15
+ description: 'Видеть приложения, их релизы, развёртывания и состояние работы',
16
+ related: 'Просмотр приложений (связанных с ним)',
17
+ relatedLabel: 'Созданные мной',
18
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
19
+ all: 'Просмотр приложений (всех)',
20
+ },
21
+ readLogs: {
22
+ title: 'Чтение журналов',
23
+ description: 'Читать журналы приложений и развёртываний',
24
+ related: 'Чтение журналов (связанных с ним)',
25
+ relatedLabel: 'Созданные мной',
26
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
27
+ all: 'Чтение журналов (всех)',
28
+ },
29
+ create: {
30
+ title: 'Создание приложений',
31
+ description: 'Создавать приложения в среде',
32
+ all: 'Создание приложений',
33
+ },
34
+ configure: {
35
+ title: 'Настройка приложений',
36
+ description: 'Читать и изменять конфигурацию приложения, которая может содержать секреты',
37
+ related: 'Настройка приложений (связанных с ним)',
38
+ relatedLabel: 'Созданные мной',
39
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
40
+ all: 'Настройка приложений (всех)',
41
+ },
42
+ upload: {
43
+ title: 'Загрузка релизов',
44
+ description: 'Загружать и продвигать релизы',
45
+ related: 'Загрузка релизов (связанных с ним)',
46
+ relatedLabel: 'Созданные мной',
47
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
48
+ all: 'Загрузка релизов (всех)',
49
+ },
50
+ deploy: {
51
+ title: 'Развёртывание',
52
+ description: 'Развёртывать и откатывать в незащищённых средах, запрашивать развёртывание в защищённых',
53
+ related: 'Развёртывание (связанных с ним)',
54
+ relatedLabel: 'Созданные мной',
55
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
56
+ all: 'Развёртывание (всех)',
57
+ },
58
+ deployProtected: {
59
+ title: 'Одобрение защищённых развёртываний',
60
+ description: 'Одобрять развёртывания в защищённых средах без назначенных утверждающих; только для людей',
61
+ related: 'Одобрение защищённых развёртываний (связанных с ним)',
62
+ relatedLabel: 'Созданные мной',
63
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
64
+ all: 'Одобрение защищённых развёртываний (всех)',
65
+ },
66
+ operate: {
67
+ title: 'Запуск и остановка',
68
+ description: 'Запускать, останавливать и перезапускать приложения',
69
+ related: 'Запуск и остановка (связанных с ним)',
70
+ relatedLabel: 'Созданные мной',
71
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
72
+ all: 'Запуск и остановка (всех)',
73
+ },
74
+ delete: {
75
+ title: 'Удаление приложений',
76
+ description: 'Удалять приложение вместе с его данными',
77
+ related: 'Удаление приложений (связанных с ним)',
78
+ relatedLabel: 'Созданные мной',
79
+ relatedHint: 'Приложения, которые я создал, и те, что приложение связывает со мной',
80
+ all: 'Удаление приложений (всех)',
81
+ },
82
+ },
83
+ },
84
+ },
85
+ recordAccess: {
86
+ owned: 'Созданные ими приложения',
87
+ },
88
+ settings: {
89
+ rel: {
90
+ environments: 'Среды развёртывания',
91
+ },
92
+ },
93
+ keyScopes: {
94
+ apps: {
95
+ title: 'Приложения и развёртывания',
96
+ description: 'Чтение: просмотр приложений, релизов, развёртываний и журналов. Чтение и запись: также загрузка релизов. Администратор: также развёртывание, запуск и остановка приложений.',
97
+ objects: 'Приложения',
98
+ },
99
+ environments: {
100
+ title: 'Среды развёртывания',
101
+ description: 'Чтение: список сред. Чтение и запись: управление ими.',
102
+ },
103
+ presets: {
104
+ ciDeploy: {
105
+ title: 'Развёртывание из CI',
106
+ description: 'Загрузка релизов в выбранные приложения и их развёртывание в течение 90 дней.',
107
+ },
108
+ ciUpload: {
109
+ title: 'Загрузка из CI',
110
+ description: 'Загрузка релизов в выбранные приложения без развёртывания в течение 90 дней.',
111
+ },
112
+ },
113
+ },
114
+ actions: {
115
+ read: 'Просмотр',
116
+ manage: 'Управление',
117
+ view: 'Просмотр',
118
+ 'read-logs': 'Чтение журналов',
119
+ create: 'Создание',
120
+ configure: 'Настройка',
121
+ upload: 'Загрузка релизов',
122
+ deploy: 'Развёртывание',
123
+ 'deploy-protected': 'Одобрение защищённых развёртываний',
124
+ operate: 'Запуск и остановка',
125
+ delete: 'Удаление',
126
+ },
127
+ },
128
+ drivers: {
129
+ host: 'Этот сервер',
130
+ },
131
+ ui: {
132
+ nav: {
133
+ environments: 'Среды развёртывания',
134
+ },
135
+ apps: {
136
+ title: 'Приложения',
137
+ create: 'Создать приложение',
138
+ id: 'ID приложения',
139
+ name: 'Имя',
140
+ environment: 'Среда',
141
+ version: 'Версия',
142
+ state: 'Состояние',
143
+ url: 'Адрес',
144
+ labels: 'Метки',
145
+ loadFailed: 'Не удалось загрузить приложения.',
146
+ loadOneFailed: 'Не удалось загрузить приложение.',
147
+ created: '{{name}} создано.',
148
+ createDescription: 'Приложение развёртывается в одной среде; его релизы загружаются позже.',
149
+ idHint: 'Буквы, цифры, подчёркивания и дефисы; входит в адрес. Позже изменить нельзя.',
150
+ lastAccess: 'Последнее посещение',
151
+ stateFilter: 'Состояние',
152
+ anyState: 'Любое состояние',
153
+ clearFilters: 'Сбросить фильтры',
154
+ noMatches: 'Нет приложений, подходящих под фильтры.',
155
+ runStates: {
156
+ running: 'Работает',
157
+ starting: 'Запускается',
158
+ pending: 'Ещё не запущено',
159
+ waiting: 'Ожидает',
160
+ stopped: 'Остановлено или в спящем режиме',
161
+ failed: 'Ошибка',
162
+ unknown: 'Неизвестно',
163
+ },
164
+ page: 'Страница {{page}} из {{pages}}',
165
+ previousPage: 'Предыдущая страница',
166
+ nextPage: 'Следующая страница',
167
+ },
168
+ advanced: 'Дополнительно (необязательно)',
169
+ labels: {
170
+ name: 'Имя',
171
+ value: 'Значение',
172
+ nameOf: 'Имя метки {{index}}',
173
+ valueOf: 'Значение метки {{index}}',
174
+ remove: 'Удалить метку {{index}}',
175
+ add: 'Добавить метку',
176
+ hint: 'Метки помогают инструментам и людям находить и группировать приложения и релизы.',
177
+ count_one: '{{count}} метка',
178
+ count_other: '{{count}} метки',
179
+ count_few: '{{count}} метки',
180
+ count_many: '{{count}} меток',
181
+ system: 'Метки, добавленные системой',
182
+ systemHint: 'Добавлено системой; здесь изменить нельзя.',
183
+ errors: {
184
+ keyRequired: 'Введите имя для этого значения.',
185
+ keyInvalid: 'Используйте латинские буквы, цифры, ".", "_", "/" или "-", начиная с буквы или цифры (не более 63).',
186
+ keyDuplicate: 'Это имя уже используется.',
187
+ valueTooLong: 'Не более {{max}} символов.',
188
+ tooMany: 'Не более {{max}} меток.',
189
+ },
190
+ },
191
+ policy: {
192
+ title: 'Работа',
193
+ activationLabel: 'Запуск',
194
+ activation: {
195
+ eager: 'Всегда работает',
196
+ onDemand: 'Запускается при посещении',
197
+ },
198
+ activationHint: {
199
+ eager: 'Запускается при развёртывании и при каждом перезапуске среды выполнения.',
200
+ onDemand: 'Запускается при первом посещении после развёртывания или перезапуска среды выполнения.',
201
+ },
202
+ idleLabel: 'Останавливать, если нет посещений',
203
+ dormantLabel: 'Усыплять, если нет посещений',
204
+ idleModeLabel: 'Таймер остановки',
205
+ dormantModeLabel: 'Таймер сна',
206
+ minutes: 'мин',
207
+ hours: 'ч',
208
+ neverIdle: 'Никогда',
209
+ neverDormant: 'Никогда',
210
+ timerMode: {
211
+ inherit: 'По умолчанию для среды',
212
+ custom: 'Задать своё значение',
213
+ },
214
+ customTimerHint: 'Пустое своё значение выключает этот таймер, а не использует значение среды по умолчанию.',
215
+ idleSummary: 'останавливается после {{minutes}} мин без посещений',
216
+ dormantSummary: 'засыпает через {{hours}} ч',
217
+ timersHint: 'Остановленное приложение освобождает память и снова запускается при следующем посещении. У спящего приложения также удаляются распакованные файлы; конфигурация и данные сохраняются, а следующее посещение снова подготавливает его, что занимает больше времени.',
218
+ unsupported: 'Эта среда не поддерживает запуск при посещении; приложение продолжает работать.',
219
+ errors: {
220
+ idleInvalid: 'Введите целое число минут от 1 до {{max}} или оставьте пустым.',
221
+ dormantInvalid: 'Введите часы от 0,02 (одна минута) до {{max}} или оставьте пустым.',
222
+ dormantBeforeIdle: 'Сон должен наступать после остановки.',
223
+ },
224
+ },
225
+ state: {
226
+ pending: 'Запуск',
227
+ starting: 'Запуск',
228
+ running: 'Работает',
229
+ stopped: 'Остановлено',
230
+ stoppedOnDemand: 'Остановлено (запустится при посещении)',
231
+ dormant: 'Спит (подготовится при посещении)',
232
+ waitingCapacity: 'Ждёт свободного места',
233
+ waitingMemory: 'Ждёт памяти',
234
+ waitingRecycle: 'Ждёт перезапуска хоста',
235
+ failed: 'Ошибка',
236
+ unknown: 'Неизвестно',
237
+ deploying: 'Развёртывается',
238
+ },
239
+ operate: {
240
+ refreshFailed: 'Не удалось обновить состояние приложения. Операции недоступны, пока состояние не обновится. Проверьте подключение и доступ, затем повторите.',
241
+ disabled: {
242
+ busy: 'Выполняется операция.',
243
+ unavailable: 'Состояние приложения недоступно. Обновите состояние, прежде чем управлять приложением.',
244
+ deploying: 'Выполняется развёртывание.',
245
+ starting: 'Приложение запускается.',
246
+ notDeployed: 'Сначала разверните релиз.',
247
+ alreadyRunning: 'Приложение уже работает.',
248
+ notRunning: 'Приложение не работает.',
249
+ },
250
+ start: 'Запустить',
251
+ stop: 'Остановить',
252
+ restart: 'Перезапустить',
253
+ done: {
254
+ start: 'Приложение запускается.',
255
+ stop: 'Приложение остановлено.',
256
+ restart: 'Приложение перезапускается.',
257
+ },
258
+ },
259
+ releases: {
260
+ title: 'Релизы',
261
+ upload: 'Загрузить релиз',
262
+ uploadAction: 'Загрузить',
263
+ commit: 'Коммит',
264
+ commitHint: 'Необязательно: коммит, из которого собран архив; сохраняется как метка sha.',
265
+ uploaded: 'Релиз загружен.',
266
+ checksum: 'Контрольная сумма',
267
+ size: 'Размер',
268
+ created: 'Создан',
269
+ empty: 'Релизов пока нет. Загрузите пакет .tar.gz, собранный для этого приложения.',
270
+ loadFailed: 'Не удалось загрузить релизы.',
271
+ },
272
+ deploy: {
273
+ deploy: 'Развернуть',
274
+ started: 'Развёртывание {{version}}.',
275
+ confirmProtected: 'Эта среда защищена. Введите {{appId}}, чтобы развернуть.',
276
+ },
277
+ deployments: {
278
+ cancel: 'Отменить развёртывание',
279
+ replaced: 'Заменено более новым развёртыванием.',
280
+ cancelAccepted: 'Отмена принята.',
281
+ queueAhead: 'В очереди · впереди {{ahead}}',
282
+ restartHint: 'Развёртывание прервано. Разверните релиз снова.',
283
+ title: 'Развёртывания',
284
+ kind: 'Тип',
285
+ status: 'Статус',
286
+ by: 'Кем',
287
+ current: 'Текущее',
288
+ logs: 'Журналы',
289
+ rollback: 'Откатить',
290
+ rollbackStarted: 'Выполняется откат.',
291
+ confirmRollbackTitle: 'Откатить {{name}}?',
292
+ confirmRollback: 'Приложение вернётся к релизу этого развёртывания; всё развёрнутое после него будет отменено.',
293
+ loadFailed: 'Не удалось загрузить развёртывания.',
294
+ empty: 'Ещё не развёрнуто.',
295
+ hideLogs: 'Скрыть журналы',
296
+ noLogs: 'Нет строк журнала.',
297
+ statuses: {
298
+ cancelling: 'Отменяется',
299
+ cancelled: 'Отменено',
300
+ queued: 'В очереди',
301
+ deploying: 'Развёртывается',
302
+ succeeded: 'Успешно',
303
+ failed: 'Ошибка',
304
+ },
305
+ },
306
+ actors: {
307
+ human: 'человек',
308
+ agent: 'Agent',
309
+ key: 'ключ',
310
+ rule: 'правило',
311
+ system: 'система',
312
+ },
313
+ requests: {
314
+ title: 'Запросы на развёртывание',
315
+ pendingApproval: 'Ожидает одобрения',
316
+ notice: {
317
+ deploy: 'запросил(а) развёртывание {{version}} в {{environment}}',
318
+ rollback: 'запросил(а) откат {{environment}} к {{version}}',
319
+ },
320
+ someone: 'Кто-то',
321
+ review: 'Рассмотреть',
322
+ view: 'Открыть',
323
+ comment: 'Комментарий (необязательно)',
324
+ decideFailed: 'Решение не применилось',
325
+ request: 'Запросить развёртывание',
326
+ created: 'Развёртывание запрошено.',
327
+ approve: 'Одобрить',
328
+ confirmApproveTitle: 'Одобрить развёртывание {{appId}}?',
329
+ reject: 'Отклонить',
330
+ cancel: 'Отозвать',
331
+ requestedBy: 'Запросил(а)',
332
+ decidedBy: 'Решил(а)',
333
+ note: 'Примечание',
334
+ approvedToast: 'Развёртывание {{appId}} одобрено.',
335
+ rejectedToast: 'Развёртывание {{appId}} отклонено.',
336
+ app: 'Приложение',
337
+ commit: 'Коммит',
338
+ build: 'Сборка',
339
+ ciLog: 'Журнал CI',
340
+ requestedAt: 'Запрошено',
341
+ decisionNote: 'Примечание к решению',
342
+ pinned: 'контрольная сумма {{checksum}}; при одобрении развёртывается именно это',
343
+ loadFailed: 'Не удалось загрузить запрос на развёртывание.',
344
+ detailTitle: {
345
+ deploy: 'Запрос на развёртывание {{appId}}',
346
+ rollback: 'Запрос на откат {{appId}}',
347
+ },
348
+ reviewTitle: {
349
+ deploy: 'Рассмотрите запрос на развёртывание {{appId}}',
350
+ rollback: 'Рассмотрите запрос на откат {{appId}}',
351
+ },
352
+ done: {
353
+ approve: 'Запрос одобрен.',
354
+ reject: 'Запрос отклонён.',
355
+ cancel: 'Запрос отозван.',
356
+ },
357
+ kind: {
358
+ deploy: 'Развёртывание',
359
+ rollback: 'Откат',
360
+ },
361
+ status: {
362
+ pending: 'Ожидает',
363
+ approved: 'Одобрен',
364
+ rejected: 'Отклонён',
365
+ cancelled: 'Отозван',
366
+ deployed: 'Развёрнут',
367
+ failed: 'Ошибка',
368
+ },
369
+ },
370
+ variables: {
371
+ title: 'Переменные',
372
+ description: 'Переменные окружения, с которыми работает это приложение. Каждое изменение сохраняется сразу и попадает в приложение при следующем развёртывании.',
373
+ environmentDescription: 'Каждое приложение в этой среде, включая предпросмотры pull request, получает эти значения, если не задаёт свои. Показаны вместе с тем, что объявляет последняя сборка каждого приложения. Изменения сохраняются сразу и попадают в приложение при следующем развёртывании.',
374
+ add: 'Добавить переменную',
375
+ name: 'Имя',
376
+ value: 'Значение',
377
+ source: 'Источник',
378
+ secret: 'Секрет',
379
+ secretHint: 'После сохранения секрет больше не показывается.',
380
+ nameHint: 'Заглавные латинские буквы, цифры и подчёркивания, начиная с буквы.',
381
+ invalidName: 'Используйте заглавные латинские буквы, цифры и подчёркивания, начиная с буквы.',
382
+ valueOf: 'Значение {{name}}',
383
+ set: 'Задано',
384
+ notSet: 'Не задано',
385
+ sources: {
386
+ app: 'Приложение',
387
+ environment: 'Из среды',
388
+ configFile: 'config.yml',
389
+ generated: 'Сгенерировано',
390
+ default: 'По умолчанию',
391
+ unset: 'Не задано',
392
+ },
393
+ tags: {
394
+ required: 'Обязательная',
395
+ secret: 'Секрет',
396
+ firstStartOnly: 'Только при первом запуске',
397
+ changed: 'Изменена — нужен перезапуск',
398
+ missing: 'Отсутствует',
399
+ undeclared: 'Не объявлена',
400
+ },
401
+ setValue: 'Задать значение',
402
+ replace: 'Заменить',
403
+ override: 'Переопределить',
404
+ overrideOf: 'Переопределить {{name}}',
405
+ overrideTitle: 'Переопределить {{name}}',
406
+ overrideHint: 'Это приложение использует это значение вместо значения своей среды. Сохраняется сразу; приложение получит его при следующем развёртывании.',
407
+ savedAtOnce: 'Сохраняется сразу; приложение получит это при следующем развёртывании.',
408
+ updated: 'Обновлено',
409
+ clear: 'Очистить',
410
+ addTitle: 'Добавить переменную',
411
+ setTitle: 'Задать {{name}}',
412
+ save: 'Сохранить',
413
+ cancel: 'Отмена',
414
+ saved: '{{name}} сохранена.',
415
+ cleared: '{{name}} очищена.',
416
+ loadFailed: 'Не удалось загрузить переменные.',
417
+ emptyTitle: 'Нет переменных',
418
+ emptyDescription: 'Релиз не объявляет переменных, и ни одна не задана. Добавьте переменную, чтобы передать её приложению.',
419
+ emptyEnvironmentTitle: 'Переменных пока нет',
420
+ emptyEnvironment: 'Добавьте переменную, чтобы передать её всем приложениям этой среды.',
421
+ emptyEnvironmentReadOnly: 'Попросите администратора добавить переменную.',
422
+ noManifest: 'Этот релиз не объявляет свои переменные, поэтому перед развёртыванием они не проверяются.',
423
+ basis: 'Показаны так, как их объявляет последняя сборка ({{version}}). Собственное значение приложения важнее значения его среды.',
424
+ noBuildTitle: 'Сборок пока нет',
425
+ noBuildDescription: 'Переменные появятся здесь после загрузки первой сборки приложения. Сейчас можно добавить переменную вручную.',
426
+ noBuild: 'Сборок пока нет: это значения, заданные вручную.',
427
+ undeclaredTitle: 'Не объявлены',
428
+ undeclaredDescription: 'Последняя сборка не объявляет эти переменные. Они всё равно передаются приложению; очистите собственное значение приложения, когда оно станет не нужно.',
429
+ setOnEnvironment: 'Задано в среде',
430
+ setOnApp: 'Задано в этом приложении',
431
+ declaredBy: 'Кем объявлена',
432
+ status: 'Статус',
433
+ noApps: 'Ни одно приложение не объявляет её',
434
+ moreApps: '+{{count}}',
435
+ appGroup: '{{label}} ×{{count}}',
436
+ missingIn_one: 'Отсутствует в {{count}} приложении',
437
+ missingIn_other: 'Отсутствует в {{count}} приложениях',
438
+ missingIn_few: 'Отсутствует в {{count}} приложениях',
439
+ missingIn_many: 'Отсутствует в {{count}} приложениях',
440
+ missingInTitle: 'Обязательна, и нет значения для: {{apps}}',
441
+ environmentSet: 'Задано здесь',
442
+ environmentNotSet: 'Здесь не задано',
443
+ missingTitle: 'Обязательные переменные не заданы',
444
+ missingDescription: 'Перед развёртыванием последней сборки нужно задать {{names}}: в среде для всех её приложений или только в этом приложении.',
445
+ review: 'Проверить переменные',
446
+ changedTitle: 'Изменения переменных не применены',
447
+ changedDescription: 'После развёртывания приложения переменная изменилась. Изменение вступит в силу при следующем развёртывании.',
448
+ apply: 'Применить и перезапустить',
449
+ applied: 'Повторное развёртывание с новыми переменными.',
450
+ needs_one: 'Нужна {{count}} переменная',
451
+ needs_other: 'Нужно {{count}} переменной',
452
+ needs_few: 'Нужны {{count}} переменные',
453
+ needs_many: 'Нужно {{count}} переменных',
454
+ missing: 'Отсутствуют: {{count}}',
455
+ bulk: {
456
+ edit: 'Массовое изменение',
457
+ title: 'Массовое изменение переменных',
458
+ reviewTitle: 'Проверка изменений',
459
+ description: 'Вставьте или измените строки KEY=value, как в файле .env. Строки, начинающиеся с #, игнорируются.',
460
+ appHint: 'Показаны значения, которые это приложение задаёт само. Значения из среды и секреты не показываются: добавьте строку, чтобы переопределить или заменить значение. Удаление строки очищает значение.',
461
+ environmentHint: 'Показаны значения этой среды. Секреты не показываются: добавьте строку, чтобы заменить секрет. Удаление строки очищает значение.',
462
+ label: 'Переменные (.env)',
463
+ review: 'Проверить изменения',
464
+ back: 'Назад',
465
+ changes: 'Изменения',
466
+ noChanges: 'Текст задаёт то, что уже есть.',
467
+ nothing: 'Нечего сохранять',
468
+ unchanged_one: '{{count}} переменная остаётся без изменений.',
469
+ unchanged_other: '{{count}} переменной остаются без изменений.',
470
+ unchanged_few: '{{count}} переменные остаются без изменений.',
471
+ unchanged_many: '{{count}} переменных остаются без изменений.',
472
+ save_one: 'Сохранить {{count}} изменение',
473
+ save_other: 'Сохранить {{count}} изменения',
474
+ save_few: 'Сохранить {{count}} изменения',
475
+ save_many: 'Сохранить {{count}} изменений',
476
+ saved_one: 'Сохранено {{count}} изменение.',
477
+ saved_other: 'Сохранено {{count}} изменения.',
478
+ saved_few: 'Сохранено {{count}} изменения.',
479
+ saved_many: 'Сохранено {{count}} изменений.',
480
+ secretOf: '{{name}} — секрет',
481
+ failedTitle: 'Некоторые изменения не сохранены',
482
+ kinds: {
483
+ add: 'Добавить',
484
+ change: 'Изменить',
485
+ remove: 'Удалить',
486
+ },
487
+ problems: {
488
+ syntax: 'Строка {{line}}: запишите в виде KEY=value.',
489
+ name: 'Строка {{line}}: {{name}} — недопустимое имя. Используйте заглавные латинские буквы, цифры и подчёркивания, начиная с буквы.',
490
+ reserved: 'Строка {{line}}: {{name}} задаётся средой выполнения и не может быть переменной.',
491
+ duplicate: 'Строка {{line}}: {{name}} уже задана в одной из строк выше.',
492
+ unterminated: 'Строка {{line}}: не закрыта кавычка вокруг значения {{name}}.',
493
+ },
494
+ },
495
+ },
496
+ tabs: {
497
+ label: 'Разделы {{name}}',
498
+ overview: 'Обзор',
499
+ deployments: 'Развёртывания',
500
+ variables: 'Переменные',
501
+ settings: 'Настройки',
502
+ },
503
+ sharedHost: {
504
+ title: 'Общий хост приложений',
505
+ description: 'Приложения всех сред на этом хосте используют один процесс и его память.',
506
+ environments: 'Среды на нём: {{names}}',
507
+ recycling: {
508
+ pending: 'Старый код освобождается перезапуском хоста, когда ни одно приложение не используется. Новые версии ждут этого момента; работающие приложения продолжают обслуживать запросы.',
509
+ restarting: 'Хост перезапускается. Его приложения отвечают «повторите чуть позже», пока не вернутся.',
510
+ },
511
+ restoreFailed: '{{name}}: не удалось восстановить приложения; повтор выполняется в фоне.',
512
+ failed: 'Не удалось восстановить приложение после перезапуска общего хоста; повтор в фоновом режиме.',
513
+ view: 'Посмотреть загрузку хоста',
514
+ deployed: 'Развёрнуто: {{count}}',
515
+ appsLabel: 'Работают или запускаются',
516
+ heapLabel: 'Куча',
517
+ processLabel: 'Память процесса',
518
+ ratio: '{{used}} / {{limit}}',
519
+ runningUnlimited: '{{running}} · без ограничения',
520
+ available: 'На сервере свободно ещё {{available}}',
521
+ wholeHost: 'Итоги всего хоста со всеми его средами; память нельзя разделить между приложениями.',
522
+ viewAppsNote: 'Показаны только приложения, которые вам доступны.',
523
+ byEnvironment: 'Работают или запускаются, по средам:',
524
+ },
525
+ runtime: {
526
+ holds: {
527
+ requests: 'Обслуживает запросы',
528
+ connections: 'Открытые соединения',
529
+ starting: 'Запускается',
530
+ operation: 'Развёртывается или останавливается',
531
+ resident: 'Всегда работает',
532
+ busy: 'Занято',
533
+ recent: 'Использовалось в последнюю минуту',
534
+ },
535
+ waiting: {
536
+ capacity: 'Запуск отклонён: достигнут предел активных приложений или очередь запуска заполнена',
537
+ memory: 'Запуск отклонён: недостаточно памяти',
538
+ recycle: 'Запуск отклонён: новый код ждёт перезапуска хоста',
539
+ },
540
+ idle: 'Простаивает; останавливается первым, когда нужно место',
541
+ lastVisit: 'Последнее посещение: {{time}}',
542
+ },
543
+ overview: {
544
+ currentRelease: 'Текущий релиз',
545
+ recent: 'Последние развёртывания',
546
+ viewAll: 'Показать все',
547
+ },
548
+ initialAdmin: {
549
+ title: 'Первый администратор',
550
+ kept: 'Создан для первого развёртывания; хранится, пока приложение не будет удалено.',
551
+ username: 'Имя пользователя',
552
+ email: 'Эл. почта',
553
+ password: 'Пароль',
554
+ show: 'Показать пароль',
555
+ hide: 'Скрыть пароль',
556
+ copy: 'Копировать пароль',
557
+ copied: 'Пароль скопирован.',
558
+ copyFailed: 'Не удалось скопировать пароль. Покажите его и скопируйте вручную.',
559
+ dismiss: 'Я сохранил(а) его',
560
+ dismissed: 'Первый администратор удалён из менеджера релизов.',
561
+ },
562
+ config: {
563
+ title: 'Дополнительно',
564
+ description: 'config.yml развёрнутого приложения; при сохранении приложение перезагружается. Для значений, различающихся по средам, и для секретов лучше использовать переменные.',
565
+ loadFailed: 'Не удалось загрузить конфигурацию.',
566
+ discard: 'Отменить изменения',
567
+ save: 'Сохранить и перезагрузить',
568
+ saved: 'Конфигурация сохранена.',
569
+ external: 'Это приложение читает конфигурацию извне управления релизами, поэтому здесь нет config.yml для редактирования. Значения, различающиеся по средам, задавайте переменными.',
570
+ externalTitle: 'Нет config.yml для редактирования',
571
+ noFileTitle: 'config.yml пока нет',
572
+ noFile: 'config.yml создаётся при первом развёртывании. До этого настраивайте приложение переменными.',
573
+ toVariables: 'К переменным',
574
+ maskedHint: 'Секретные значения показаны как {{mask}}. Оставьте маску, чтобы сохранить текущее значение, или впишите поверх неё новое.',
575
+ secrets: 'Секреты',
576
+ secretsHint: 'Сохранённые значения никогда не показываются. Замените или очистите значение здесь; изменение вступит в силу при сохранении.',
577
+ newValue: 'Новое значение для {{path}}',
578
+ replace: 'Заменить {{path}}',
579
+ clear: 'Очистить {{path}}',
580
+ },
581
+ settings: {
582
+ edit: 'Работа и метки',
583
+ editShort: 'Изменить',
584
+ editDescription: 'Когда приложение работает и как оно помечено. Изменения применяются без перезапуска.',
585
+ save: 'Сохранить',
586
+ saved: 'Настройки сохранены.',
587
+ danger: 'Удаление приложения',
588
+ delete: 'Удалить вместе с данными',
589
+ deleteDescription: 'Удаляет приложение, его релизы, развёртывания и данные. Это действие нельзя отменить.',
590
+ deleted: '{{name}} удалено.',
591
+ confirmDeleteTitle: 'Удалить {{name}}?',
592
+ confirmDelete: '{{appId}} будет удалено вместе со всеми данными. Введите {{appId}} для подтверждения.',
593
+ },
594
+ common: {
595
+ retry: 'Повторить',
596
+ refresh: 'Обновить',
597
+ actions: 'Действия',
598
+ rowActions: 'Действия для {{name}}',
599
+ },
600
+ errors: {
601
+ requestFailed: 'Запрос не выполнен.',
602
+ reasons: {
603
+ IMAGE_REQUIRED: 'Эта среда запускает образы релизов, а у релиза нет образа для неё. Зарегистрируйте образ, отправленный вашим CI (`release image`), затем разверните его.',
604
+ ARCHIVE_REQUIRED: 'Эта среда запускает архивы релизов внутри процесса; загрузите архив (`release upload`).',
605
+ IMAGE_CONFLICT: 'У релиза уже есть другой образ для этой платформы; образ релиза никогда не меняется.',
606
+ INVALID_IMAGE: 'Это не ссылка на образ с дайджестом sha256.',
607
+ REGISTRY_EXISTS: 'Реестр с таким ID уже существует.',
608
+ REGISTRY_IN_USE: 'Из этого реестра загружают образы среды; сначала выберите для них другой реестр.',
609
+ UNKNOWN_REGISTRY: 'Такого реестра нет.',
610
+ INVALID_REGISTRY_URL: 'Введите источник реестра, например https://ghcr.io или localhost:5000.',
611
+ INVALID_REGISTRY_NAMESPACE: 'Пространство имён — это части пути в нижнем регистре, например acme.',
612
+ APP_EXISTS: 'Приложение с таким ID уже существует.',
613
+ APP_NOT_DEPLOYED: 'Приложение ещё не развёрнуто.',
614
+ APP_NOT_FOUND: 'Приложение не существует, или у вас нет к нему доступа.',
615
+ APPROVAL_REQUIRED: 'Эта среда защищена: вместо этого запросите развёртывание.',
616
+ ARTIFACT_TOO_LARGE: 'Пакет релиза слишком большой.',
617
+ BASE_PATH_MISMATCH: 'Релиз собран для другого базового пути.',
618
+ CHECKSUM_MISMATCH: 'Пакет не соответствует своей контрольной сумме.',
619
+ CONFIG_NOT_EDITABLE: 'Конфигурацию этого приложения здесь изменить нельзя.',
620
+ CONFIG_SECRET_NOT_STORED: 'Для замаскированного значения в этом месте нет сохранённого секрета. Введите значение вместо маски.',
621
+ CONFIG_RELOAD_FAILED: 'Конфигурация сохранена, но приложение не смогло её перезагрузить.',
622
+ CONFIG_TOO_LARGE: 'Конфигурация слишком большая.',
623
+ CONFIRMATION_REQUIRED: 'Введите ID приложения для подтверждения.',
624
+ DEPLOYMENT_NOT_CANCELLABLE: 'Развёртывание уже начало переключение или завершилось.',
625
+ CANCELLATION_UNSUPPORTED: 'Этот драйвер развёртывания не поддерживает отмену.',
626
+ DEPLOYMENT_IN_PROGRESS: 'Развёртывание этого приложения уже выполняется.',
627
+ DEPLOYMENT_NOT_FOUND: 'Развёртывание не существует.',
628
+ DRIVER_UNAVAILABLE: 'Драйвер среды недоступен.',
629
+ ENVIRONMENT_DRIVER_FIXED: 'Драйвер среды изменить нельзя.',
630
+ ENVIRONMENT_VARIANT_FIXED: 'Режим работы среды изменить нельзя; вместо этого создайте другую среду.',
631
+ ENVIRONMENT_EXISTS: 'Среда с таким ID уже существует.',
632
+ ENVIRONMENT_FULL: 'В среде достигнут предел числа приложений.',
633
+ ENVIRONMENT_IN_USE: 'В этой среде ещё развёрнуты приложения.',
634
+ ENVIRONMENT_NOT_FOUND: 'Среда не существует.',
635
+ FORBIDDEN: 'У вас нет прав на это действие.',
636
+ IDEMPOTENCY_CONFLICT: 'Тот же запрос был отправлен с другим содержимым.',
637
+ INVALID_ACTIVATION_POLICY: 'Недопустимая политика запуска.',
638
+ INVALID_IDLE_STOP: 'Недопустимое время остановки при простое.',
639
+ INVALID_DORMANCY: 'Недопустимое время до сна.',
640
+ INVALID_APP_ID: 'ID приложения может содержать буквы, цифры, подчёркивания и дефисы, не должен начинаться с "__" и не может быть "new".',
641
+ INVALID_APPROVERS: 'Недопустимые утверждающие.',
642
+ INVALID_ARTIFACT_SIZE: 'Недопустимый размер пакета.',
643
+ INVALID_ARTIFACT_VERSION: 'Недопустимая версия релиза.',
644
+ INVALID_ARTIFACT: 'Файл не является допустимым пакетом релиза.',
645
+ INVALID_CHECKSUM: 'Недопустимая контрольная сумма.',
646
+ INVALID_CONFIG_FILE: 'Конфигурация не является допустимым YAML.',
647
+ INVALID_CONFIG_MODE: 'Недопустимый режим конфигурации.',
648
+ INVALID_CONFIG_SECRET: 'Недопустимое изменение секрета.',
649
+ INVALID_CONTENT_TYPE: 'Загрузите пакет .tar.gz.',
650
+ INVALID_DEPLOYMENT_INPUT: 'Недопустимый запрос на развёртывание.',
651
+ INVALID_DRIVER: 'Недопустимый драйвер.',
652
+ INVALID_ENVIRONMENT_CONFIG: 'Настройки среды недопустимы для её драйвера.',
653
+ INVALID_ENVIRONMENT_ID: 'ID среды может содержать строчные латинские буквы, цифры, подчёркивания и дефисы.',
654
+ INVALID_ENVIRONMENT_SETTINGS: 'Недопустимые настройки среды.',
655
+ INVALID_IDEMPOTENCY_KEY: 'Недопустимый ключ запроса.',
656
+ INVALID_INPUT: 'Некоторые поля запроса недопустимы.',
657
+ INVALID_LABELS: 'Записывайте метки как key=value через запятую.',
658
+ INVALID_LOG_CURSOR: 'Недопустимая позиция в журнале.',
659
+ INVALID_LOG_ID: 'Журнал не существует.',
660
+ INVALID_NOTE: 'Примечание слишком длинное.',
661
+ INVALID_PUBLIC_URL: 'Недопустимый шаблон публичного URL.',
662
+ INVALID_REQUEST: 'Недопустимый запрос.',
663
+ INVALID_ROLLBACK_TARGET: 'К этому развёртыванию нельзя откатиться.',
664
+ INVALID_SEARCH: 'Недопустимый поисковый запрос.',
665
+ INVALID_TICKET: 'Недопустимый тикет.',
666
+ RELEASE_EXISTS: 'Эта версия уже загружена.',
667
+ RELEASE_NOT_FOUND: 'Релиз не существует.',
668
+ REQUEST_DECIDED: 'По запросу уже принято решение.',
669
+ REQUEST_NOT_FOUND: 'Запрос не существует.',
670
+ REQUEST_PENDING: 'Запрос для этого приложения уже ожидает одобрения.',
671
+ RESTART_FAILED: 'Не удалось перезапустить приложение.',
672
+ SESSION_REQUIRED: 'Войдите снова, чтобы продолжить.',
673
+ START_FAILED: 'Не удалось запустить приложение.',
674
+ STOP_FAILED: 'Не удалось остановить приложение.',
675
+ TICKET_DEPLOY_REFUSED: 'Тикет не разрешает это развёртывание.',
676
+ TICKET_FORBIDDEN: 'Тикет этого не разрешает.',
677
+ UNSAFE_ARTIFACT: 'Пакет содержит небезопасные пути.',
678
+ VARIABLES_MISSING: 'Не заданы обязательные переменные: {{names}}. Задайте их в переменных приложения или его среды, затем разверните снова.',
679
+ VARIABLE_RESERVED: 'Это имя задаётся средой выполнения и не может быть переменной.',
680
+ INVALID_VARIABLE_NAME: 'Имя переменной — заглавные латинские буквы, цифры и подчёркивания, начиная с буквы.',
681
+ INVALID_VARIABLE_VALUE: 'Значение слишком длинное.',
682
+ VARIABLE_NOT_FOUND: 'Переменная не задана.',
683
+ INVALID_VARIABLES_MANIFEST: 'Манифест переменных релиза (dist/variables.json) недопустим.',
684
+ INITIAL_ADMIN_UNAVAILABLE: 'Нет первого администратора для показа.',
685
+ },
686
+ messages: {
687
+ hostExited: 'Процесс приложения остановился до того, как стал готов.',
688
+ hostDisabled: 'Хост приложений выключен.',
689
+ hostShutDown: 'Хост приложений завершил работу.',
690
+ hostEntryMissing: 'Отсутствует входной файл хоста приложений.',
691
+ cannotRestart: 'Этот хост нельзя перезапустить отсюда.',
692
+ selfDeploy: 'Хост не может развернуть приложение, внутри которого он работает.',
693
+ noStatus: 'Хост не сообщил, как прошло развёртывание.',
694
+ interrupted: 'Развёртывание прервано перезапуском.',
695
+ notReported: 'Среда выполнения не сообщила о приложении.',
696
+ notRunning: 'После перезапуска приложение не работает.',
697
+ deploymentNotReported: 'Среда выполнения не сообщила о развёртывании.',
698
+ notReady: 'Ещё не готово; повторите чуть позже.',
699
+ checkTimeout: 'Проверка не завершилась за 20 секунд.',
700
+ hostNoSettings: 'Локальная среда выполнения не принимает параметров подключения.',
701
+ },
702
+ prefixed: {
703
+ startFailed: 'Ошибка запуска: {{detail}}',
704
+ stopFailed: 'Ошибка остановки: {{detail}}',
705
+ restartFailed: 'Ошибка перезапуска: {{detail}}',
706
+ outcomeUnreadable: 'Не удалось прочитать результат: {{detail}}',
707
+ },
708
+ },
709
+ confirm: {
710
+ cancel: 'Отмена',
711
+ typeLabel: 'Введите {{text}} для подтверждения',
712
+ },
713
+ environments: {
714
+ title: 'Среды развёртывания',
715
+ description: 'Где развёртываются приложения и кто может туда развёртывать.',
716
+ open: 'Открыть',
717
+ loadOneFailed: 'Не удалось загрузить среду.',
718
+ settingsTitle: 'Настройки среды',
719
+ readOnly: 'Вы можете просматривать настройки этой среды, но не изменять их.',
720
+ danger: 'Удаление среды',
721
+ deleteDescription: 'Удаляет среду и её переменные. Развёрнутые здесь приложения нужно удалить заранее.',
722
+ discard: 'Отменить изменения',
723
+ anyone: 'Любой, кто может развёртывать',
724
+ unlimited: 'Без ограничений',
725
+ apps: 'Приложения',
726
+ appsDescription: 'Приложения, развёрнутые в этой среде.',
727
+ appsEmpty: 'Здесь пока не развёрнуто ни одного приложения.',
728
+ sampleData: 'Загружать примеры данных при первом развёртывании',
729
+ sampleDataHint: 'Первое развёртывание приложения здесь устанавливает его примеры данных (APP_SAMPLE_DATA=true). Используйте для предпросмотров, а не для продакшена.',
730
+ add: 'Добавить среду',
731
+ edit: 'Изменить',
732
+ delete: 'Удалить',
733
+ save: 'Сохранить',
734
+ cancel: 'Отмена',
735
+ check: 'Проверить',
736
+ reachable: '{{name}} доступна.',
737
+ unreachable: '{{name}} недоступна.',
738
+ deleted: 'Среда {{name}} удалена.',
739
+ saved: 'Среда {{name}} сохранена.',
740
+ added: 'Среда {{name}} добавлена.',
741
+ loadFailed: 'Не удалось загрузить среды.',
742
+ emptyTitle: 'Сред пока нет',
743
+ emptyNoAccess: 'Попросите администратора добавить среду.',
744
+ emptyDescription: 'Добавьте среду, в которую будут развёртываться приложения.',
745
+ editTitle: 'Изменить {{name}}',
746
+ formDescription: 'Где развёртываются приложения, как к ним обращаться и кто может туда развёртывать.',
747
+ configHint: 'Настройки драйвера в виде объекта JSON.',
748
+ secretHint: 'Хранится в зашифрованном виде и больше не показывается; оставьте пустым, чтобы сохранить текущее.',
749
+ invalidJson: 'Введите объект JSON, например {}.',
750
+ protectedHint: 'Каждое развёртывание — человеком или CI — ждёт утверждающего, который для одобрения повторно вводит ID приложения.',
751
+ approversColumn: 'Утверждающие',
752
+ approversPlaceholder: 'Выберите утверждающих',
753
+ approversHint: 'Одобрить может любой из них, в том числе собственные запросы. Если никто не выбран, решают люди с правом одобрять защищённые развёртывания.',
754
+ confirmDelete: 'Удалить среду {{id}}?',
755
+ id: 'ID среды',
756
+ name: 'Имя',
757
+ driver: 'Драйвер',
758
+ runsOn: 'Где работает',
759
+ appCount: 'Приложения',
760
+ purpose: 'Назначение',
761
+ purposeHint: 'Каждая среда служит одной цели: предпросмотрам pull request или тестированию релизов.',
762
+ purposes: {
763
+ preview: 'Предпросмотры',
764
+ test: 'Тестирование',
765
+ },
766
+ policy: 'Политика',
767
+ publicUrl: 'Шаблон публичного URL',
768
+ config: 'Настройки (JSON)',
769
+ secret: 'Учётные данные (JSON, только запись)',
770
+ secretStored: 'Учётные данные сохранены; введите новые, чтобы заменить их.',
771
+ protected: 'Защищена',
772
+ approvers: 'Утверждающие',
773
+ pickDriver: 'Выберите, как работают приложения в этой среде. Драйвер среды изменить нельзя.',
774
+ next: 'Продолжить',
775
+ addWith: 'Добавить среду {{driver}}',
776
+ changeDriver: 'Изменить',
777
+ basics: 'Среда',
778
+ namePlaceholder: 'Staging',
779
+ idHint: 'Строчные латинские буквы, цифры, подчёркивания и дефисы; позже изменить нельзя.',
780
+ policyDescription: 'Кто может развёртывать здесь.',
781
+ appDefaults: 'Приложения',
782
+ appDefaultsDescription: 'Не более стольких приложений, и когда приложение, созданное без собственной политики работы, останавливается и засыпает. Пусто: без ограничений, никогда.',
783
+ maxApps: 'Максимум приложений',
784
+ defaultIdle: 'Останавливать через (мин без посещений)',
785
+ defaultDormant: 'Усыплять через (ч без посещений)',
786
+ noForm: 'Нет формы настроек; настройки вводятся в JSON ({{kind}}).',
787
+ imageSource: 'Образы релизов',
788
+ imageSourceDescription: 'Загружать образ каждого релиза из реестра по дайджесту с учётными данными для загрузки, чтобы эта среда запускала именно тот образ, который отправил CI и запускали другие среды.',
789
+ registry: 'Реестр',
790
+ noRegistry: 'Нет: загружать публичные образы анонимно',
791
+ newRegistry: 'Новый реестр',
792
+ editRegistry: 'Изменить',
793
+ cancelRegistryEdit: 'Отменить изменение',
794
+ registryShared: 'Изменения применяются ко всем средам, которые загружают образы из этого реестра.',
795
+ },
796
+ registries: {
797
+ check: 'Проверить подключение',
798
+ url: 'Адрес',
799
+ urlHint: 'Его источник, например https://ghcr.io; к адресу localhost обращение идёт по HTTP.',
800
+ namespace: 'Пространство имён',
801
+ namespaceHint: 'Путь, под которым хранятся образы релизов, например acme.',
802
+ pull: 'Учётные данные для загрузки',
803
+ pullHint: 'Для сред, загружающих образы из этого реестра; не указывайте, если реестр разрешает анонимную загрузку.',
804
+ username: 'Имя пользователя',
805
+ password: 'Пароль или токен',
806
+ checkOk: 'Подключено',
807
+ checkFailed: 'Проверка подключения не прошла.',
808
+ checkFailedTitle: 'Реестр нельзя использовать',
809
+ anonymous: 'Реестр отвечает без учётных данных: загружать может любой, кто до него доберётся.',
810
+ status: {
811
+ ok: 'принято',
812
+ failed: 'отклонено',
813
+ notSet: 'не задано',
814
+ },
815
+ },
816
+ artifacts: {
817
+ title: 'Артефакты',
818
+ tarball: 'Архив',
819
+ image: 'Образ',
820
+ ran: 'Запускалось',
821
+ ranTarball: 'Архив, внутри процесса',
822
+ },
823
+ driverForm: {
824
+ advanced: 'Дополнительные настройки',
825
+ advancedHint: 'Значения по умолчанию подходят большинству сред; откройте группу, чтобы изменить её.',
826
+ on: 'Вкл.',
827
+ off: 'Выкл.',
828
+ noLimit: 'Без ограничений',
829
+ writeOnly: '(только запись)',
830
+ secretSet: 'Задано',
831
+ secretCleared: 'Будет удалено при сохранении',
832
+ replace: 'Заменить',
833
+ clear: 'Удалить',
834
+ undo: 'Отменить',
835
+ keepStored: 'Оставить сохранённое',
836
+ jsonTitle: 'Настройки драйвера',
837
+ jsonDescription: 'У этого драйвера нет формы настроек; введите настройки в JSON.',
838
+ check: 'Проверить подключение',
839
+ checkOk: 'Подключено',
840
+ checkFailed: 'Проверка подключения не прошла.',
841
+ checkFailedTitle: 'Не удалось подключиться',
842
+ fixErrors: 'Некоторые настройки нужно исправить; они отмечены выше.',
843
+ errors: {
844
+ required: 'Обязательно.',
845
+ number: 'Введите число.',
846
+ integer: 'Введите целое число.',
847
+ range: 'Вне допустимого диапазона.',
848
+ mapLine: 'Пишите по одному NAME=value в строке.',
849
+ mapName: 'Имена — латинские буквы, цифры и подчёркивания, не начиная с цифры.',
850
+ },
851
+ },
852
+ driverForms: {
853
+ host: {
854
+ description: 'Запускает приложения на этом сервере: в дочернем процессе App Host, который запускает это приложение, или каждое в своём контейнере Docker.',
855
+ runtime: 'Режим работы',
856
+ backend: 'Режим работы',
857
+ backendInProcess: 'Внутри процесса',
858
+ backendInProcessHint: 'Работает в дочернем процессе App Host, который запускает этот сервер, общем для всех таких приложений. Подходит для предпросмотров.',
859
+ backendDocker: 'Docker',
860
+ backendDockerHint: 'Один контейнер на приложение, изолированный от остальных. Подходит для тестирования и продакшена.',
861
+ dockerConnection: 'Подключение к Docker',
862
+ dockerConnectionDescription: 'Использует Docker на этом сервере, найденный через DOCKER_HOST или текущий контекст Docker, с рекомендуемыми настройками контейнеров. Проверьте подключение, чтобы увидеть, какой Docker найден.',
863
+ access: 'Адрес доступа',
864
+ publicUrl: 'Шаблон публичного URL',
865
+ publicUrlHint: 'Где люди открывают приложение, с {appId} в пути или имени хоста; если пусто, используется собственный адрес сервера.',
866
+ check: {
867
+ url: 'Адрес',
868
+ apps: 'Работающие приложения',
869
+ endpoint: 'Docker',
870
+ version: 'Версия Docker',
871
+ platform: 'Платформа',
872
+ errors: {
873
+ unsupported: 'Поддерживается только Docker на этом сервере: DOCKER_HOST должен быть сокетом unix:// или прокси сокета tcp://.',
874
+ socketMissing: 'Там нет сокета Docker. Установлен ли Docker и запущен ли он на этом сервере?',
875
+ permission: 'Docker отказал в доступе. Пользователю, от имени которого работает это приложение, может быть запрещено использовать сокет Docker.',
876
+ refused: 'По этому адресу никто не принимает соединения. Проверьте, что Docker запущен.',
877
+ timeout: 'Docker не ответил вовремя.',
878
+ },
879
+ },
880
+ },
881
+ },
882
+ },
883
+ actions: {
884
+ close: 'Закрыть',
885
+ },
886
+ status: {
887
+ loading: 'Загрузка',
888
+ },
889
+ };
890
+ export default ruRU;
891
+ //# sourceMappingURL=ru-RU.js.map