@tracearr/translations 2.2.0-beta.2 → 2.2.0-beta.3

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 (318) hide show
  1. package/dist/config.d.ts +3349 -1105
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +3349 -1105
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js +2 -2
  7. package/dist/locales/af-ZA/common.json +282 -250
  8. package/dist/locales/af-ZA/nav.json +21 -17
  9. package/dist/locales/af-ZA/notifications.json +22 -38
  10. package/dist/locales/af-ZA/pages.json +1170 -97
  11. package/dist/locales/af-ZA/settings.json +455 -426
  12. package/dist/locales/ar-SA/common.json +282 -250
  13. package/dist/locales/ar-SA/nav.json +21 -17
  14. package/dist/locales/ar-SA/notifications.json +22 -38
  15. package/dist/locales/ar-SA/pages.json +1170 -97
  16. package/dist/locales/ar-SA/settings.json +455 -426
  17. package/dist/locales/ca-ES/common.json +282 -250
  18. package/dist/locales/ca-ES/nav.json +21 -17
  19. package/dist/locales/ca-ES/notifications.json +22 -38
  20. package/dist/locales/ca-ES/pages.json +1170 -97
  21. package/dist/locales/ca-ES/settings.json +455 -426
  22. package/dist/locales/cs-CZ/common.json +282 -250
  23. package/dist/locales/cs-CZ/nav.json +21 -17
  24. package/dist/locales/cs-CZ/notifications.json +22 -38
  25. package/dist/locales/cs-CZ/pages.json +1170 -97
  26. package/dist/locales/cs-CZ/settings.json +455 -426
  27. package/dist/locales/da-DK/common.json +282 -250
  28. package/dist/locales/da-DK/nav.json +21 -17
  29. package/dist/locales/da-DK/notifications.json +22 -38
  30. package/dist/locales/da-DK/pages.json +1170 -97
  31. package/dist/locales/da-DK/settings.json +455 -426
  32. package/dist/locales/de-DE/common.json +282 -250
  33. package/dist/locales/de-DE/nav.json +21 -17
  34. package/dist/locales/de-DE/notifications.json +22 -38
  35. package/dist/locales/de-DE/pages.json +1170 -97
  36. package/dist/locales/de-DE/settings.json +455 -426
  37. package/dist/locales/el-GR/common.json +282 -250
  38. package/dist/locales/el-GR/nav.json +21 -17
  39. package/dist/locales/el-GR/notifications.json +22 -38
  40. package/dist/locales/el-GR/pages.json +1170 -97
  41. package/dist/locales/el-GR/settings.json +455 -426
  42. package/dist/locales/en/common.json +36 -4
  43. package/dist/locales/en/nav.json +6 -2
  44. package/dist/locales/en/notifications.json +13 -29
  45. package/dist/locales/en/pages.json +1187 -114
  46. package/dist/locales/en/settings.json +31 -2
  47. package/dist/locales/en-US/common.json +282 -250
  48. package/dist/locales/en-US/nav.json +21 -17
  49. package/dist/locales/en-US/notifications.json +22 -38
  50. package/dist/locales/en-US/pages.json +1170 -97
  51. package/dist/locales/en-US/settings.json +455 -426
  52. package/dist/locales/es-ES/common.json +282 -250
  53. package/dist/locales/es-ES/nav.json +21 -17
  54. package/dist/locales/es-ES/notifications.json +22 -38
  55. package/dist/locales/es-ES/pages.json +1170 -97
  56. package/dist/locales/es-ES/settings.json +455 -426
  57. package/dist/locales/fi-FI/common.json +282 -250
  58. package/dist/locales/fi-FI/nav.json +21 -17
  59. package/dist/locales/fi-FI/notifications.json +22 -38
  60. package/dist/locales/fi-FI/pages.json +1170 -97
  61. package/dist/locales/fi-FI/settings.json +455 -426
  62. package/dist/locales/fr-FR/common.json +282 -250
  63. package/dist/locales/fr-FR/nav.json +21 -17
  64. package/dist/locales/fr-FR/notifications.json +22 -38
  65. package/dist/locales/fr-FR/pages.json +1170 -97
  66. package/dist/locales/fr-FR/settings.json +455 -426
  67. package/dist/locales/he-IL/common.json +282 -250
  68. package/dist/locales/he-IL/nav.json +21 -17
  69. package/dist/locales/he-IL/notifications.json +22 -38
  70. package/dist/locales/he-IL/pages.json +1170 -97
  71. package/dist/locales/he-IL/settings.json +455 -426
  72. package/dist/locales/hu-HU/common.json +282 -250
  73. package/dist/locales/hu-HU/nav.json +21 -17
  74. package/dist/locales/hu-HU/notifications.json +22 -38
  75. package/dist/locales/hu-HU/pages.json +1170 -97
  76. package/dist/locales/hu-HU/settings.json +455 -426
  77. package/dist/locales/it-IT/common.json +282 -250
  78. package/dist/locales/it-IT/nav.json +21 -17
  79. package/dist/locales/it-IT/notifications.json +22 -38
  80. package/dist/locales/it-IT/pages.json +1170 -97
  81. package/dist/locales/it-IT/settings.json +455 -426
  82. package/dist/locales/ja-JP/common.json +282 -250
  83. package/dist/locales/ja-JP/nav.json +21 -17
  84. package/dist/locales/ja-JP/notifications.json +22 -38
  85. package/dist/locales/ja-JP/pages.json +1170 -97
  86. package/dist/locales/ja-JP/settings.json +455 -426
  87. package/dist/locales/ko-KR/common.json +282 -250
  88. package/dist/locales/ko-KR/nav.json +21 -17
  89. package/dist/locales/ko-KR/notifications.json +22 -38
  90. package/dist/locales/ko-KR/pages.json +1170 -97
  91. package/dist/locales/ko-KR/settings.json +455 -426
  92. package/dist/locales/nl-NL/common.json +282 -250
  93. package/dist/locales/nl-NL/nav.json +21 -17
  94. package/dist/locales/nl-NL/notifications.json +22 -38
  95. package/dist/locales/nl-NL/pages.json +1170 -97
  96. package/dist/locales/nl-NL/settings.json +455 -426
  97. package/dist/locales/no-NO/common.json +282 -250
  98. package/dist/locales/no-NO/nav.json +21 -17
  99. package/dist/locales/no-NO/notifications.json +22 -38
  100. package/dist/locales/no-NO/pages.json +1170 -97
  101. package/dist/locales/no-NO/settings.json +455 -426
  102. package/dist/locales/pl-PL/common.json +282 -250
  103. package/dist/locales/pl-PL/nav.json +21 -17
  104. package/dist/locales/pl-PL/notifications.json +22 -38
  105. package/dist/locales/pl-PL/pages.json +1170 -97
  106. package/dist/locales/pl-PL/settings.json +455 -426
  107. package/dist/locales/pt-BR/common.json +282 -250
  108. package/dist/locales/pt-BR/nav.json +21 -17
  109. package/dist/locales/pt-BR/notifications.json +22 -38
  110. package/dist/locales/pt-BR/pages.json +1170 -97
  111. package/dist/locales/pt-BR/settings.json +455 -426
  112. package/dist/locales/pt-PT/common.json +282 -250
  113. package/dist/locales/pt-PT/nav.json +21 -17
  114. package/dist/locales/pt-PT/notifications.json +22 -38
  115. package/dist/locales/pt-PT/pages.json +1170 -97
  116. package/dist/locales/pt-PT/settings.json +455 -426
  117. package/dist/locales/ro-RO/common.json +282 -250
  118. package/dist/locales/ro-RO/nav.json +21 -17
  119. package/dist/locales/ro-RO/notifications.json +22 -38
  120. package/dist/locales/ro-RO/pages.json +1170 -97
  121. package/dist/locales/ro-RO/settings.json +455 -426
  122. package/dist/locales/ru-RU/common.json +282 -250
  123. package/dist/locales/ru-RU/nav.json +21 -17
  124. package/dist/locales/ru-RU/notifications.json +22 -38
  125. package/dist/locales/ru-RU/pages.json +1170 -97
  126. package/dist/locales/ru-RU/settings.json +455 -426
  127. package/dist/locales/sr-SP/common.json +282 -250
  128. package/dist/locales/sr-SP/nav.json +21 -17
  129. package/dist/locales/sr-SP/notifications.json +22 -38
  130. package/dist/locales/sr-SP/pages.json +1170 -97
  131. package/dist/locales/sr-SP/settings.json +455 -426
  132. package/dist/locales/sv-SE/common.json +282 -250
  133. package/dist/locales/sv-SE/nav.json +21 -17
  134. package/dist/locales/sv-SE/notifications.json +22 -38
  135. package/dist/locales/sv-SE/pages.json +1170 -97
  136. package/dist/locales/sv-SE/settings.json +455 -426
  137. package/dist/locales/tr-TR/common.json +282 -250
  138. package/dist/locales/tr-TR/nav.json +21 -17
  139. package/dist/locales/tr-TR/notifications.json +22 -38
  140. package/dist/locales/tr-TR/pages.json +1170 -97
  141. package/dist/locales/tr-TR/settings.json +455 -426
  142. package/dist/locales/uk-UA/common.json +282 -250
  143. package/dist/locales/uk-UA/nav.json +21 -17
  144. package/dist/locales/uk-UA/notifications.json +22 -38
  145. package/dist/locales/uk-UA/pages.json +1170 -97
  146. package/dist/locales/uk-UA/settings.json +455 -426
  147. package/dist/locales/vi-VN/common.json +282 -250
  148. package/dist/locales/vi-VN/nav.json +21 -17
  149. package/dist/locales/vi-VN/notifications.json +22 -38
  150. package/dist/locales/vi-VN/pages.json +1170 -97
  151. package/dist/locales/vi-VN/settings.json +455 -426
  152. package/dist/locales/zh-CN/common.json +282 -250
  153. package/dist/locales/zh-CN/nav.json +21 -17
  154. package/dist/locales/zh-CN/notifications.json +22 -38
  155. package/dist/locales/zh-CN/pages.json +1170 -97
  156. package/dist/locales/zh-CN/settings.json +455 -426
  157. package/dist/locales/zh-TW/common.json +282 -250
  158. package/dist/locales/zh-TW/nav.json +21 -17
  159. package/dist/locales/zh-TW/notifications.json +22 -38
  160. package/dist/locales/zh-TW/pages.json +1170 -97
  161. package/dist/locales/zh-TW/settings.json +455 -426
  162. package/package.json +1 -1
  163. package/src/index.ts +2 -2
  164. package/src/locales/af-ZA/common.json +282 -250
  165. package/src/locales/af-ZA/nav.json +21 -17
  166. package/src/locales/af-ZA/notifications.json +22 -38
  167. package/src/locales/af-ZA/pages.json +1170 -97
  168. package/src/locales/af-ZA/settings.json +455 -426
  169. package/src/locales/ar-SA/common.json +282 -250
  170. package/src/locales/ar-SA/nav.json +21 -17
  171. package/src/locales/ar-SA/notifications.json +22 -38
  172. package/src/locales/ar-SA/pages.json +1170 -97
  173. package/src/locales/ar-SA/settings.json +455 -426
  174. package/src/locales/ca-ES/common.json +282 -250
  175. package/src/locales/ca-ES/nav.json +21 -17
  176. package/src/locales/ca-ES/notifications.json +22 -38
  177. package/src/locales/ca-ES/pages.json +1170 -97
  178. package/src/locales/ca-ES/settings.json +455 -426
  179. package/src/locales/cs-CZ/common.json +282 -250
  180. package/src/locales/cs-CZ/nav.json +21 -17
  181. package/src/locales/cs-CZ/notifications.json +22 -38
  182. package/src/locales/cs-CZ/pages.json +1170 -97
  183. package/src/locales/cs-CZ/settings.json +455 -426
  184. package/src/locales/da-DK/common.json +282 -250
  185. package/src/locales/da-DK/nav.json +21 -17
  186. package/src/locales/da-DK/notifications.json +22 -38
  187. package/src/locales/da-DK/pages.json +1170 -97
  188. package/src/locales/da-DK/settings.json +455 -426
  189. package/src/locales/de-DE/common.json +282 -250
  190. package/src/locales/de-DE/nav.json +21 -17
  191. package/src/locales/de-DE/notifications.json +22 -38
  192. package/src/locales/de-DE/pages.json +1170 -97
  193. package/src/locales/de-DE/settings.json +455 -426
  194. package/src/locales/el-GR/common.json +282 -250
  195. package/src/locales/el-GR/nav.json +21 -17
  196. package/src/locales/el-GR/notifications.json +22 -38
  197. package/src/locales/el-GR/pages.json +1170 -97
  198. package/src/locales/el-GR/settings.json +455 -426
  199. package/src/locales/en/common.json +36 -4
  200. package/src/locales/en/nav.json +6 -2
  201. package/src/locales/en/notifications.json +13 -29
  202. package/src/locales/en/pages.json +1187 -114
  203. package/src/locales/en/settings.json +31 -2
  204. package/src/locales/en-US/common.json +282 -250
  205. package/src/locales/en-US/nav.json +21 -17
  206. package/src/locales/en-US/notifications.json +22 -38
  207. package/src/locales/en-US/pages.json +1170 -97
  208. package/src/locales/en-US/settings.json +455 -426
  209. package/src/locales/es-ES/common.json +282 -250
  210. package/src/locales/es-ES/nav.json +21 -17
  211. package/src/locales/es-ES/notifications.json +22 -38
  212. package/src/locales/es-ES/pages.json +1170 -97
  213. package/src/locales/es-ES/settings.json +455 -426
  214. package/src/locales/fi-FI/common.json +282 -250
  215. package/src/locales/fi-FI/nav.json +21 -17
  216. package/src/locales/fi-FI/notifications.json +22 -38
  217. package/src/locales/fi-FI/pages.json +1170 -97
  218. package/src/locales/fi-FI/settings.json +455 -426
  219. package/src/locales/fr-FR/common.json +282 -250
  220. package/src/locales/fr-FR/nav.json +21 -17
  221. package/src/locales/fr-FR/notifications.json +22 -38
  222. package/src/locales/fr-FR/pages.json +1170 -97
  223. package/src/locales/fr-FR/settings.json +455 -426
  224. package/src/locales/he-IL/common.json +282 -250
  225. package/src/locales/he-IL/nav.json +21 -17
  226. package/src/locales/he-IL/notifications.json +22 -38
  227. package/src/locales/he-IL/pages.json +1170 -97
  228. package/src/locales/he-IL/settings.json +455 -426
  229. package/src/locales/hu-HU/common.json +282 -250
  230. package/src/locales/hu-HU/nav.json +21 -17
  231. package/src/locales/hu-HU/notifications.json +22 -38
  232. package/src/locales/hu-HU/pages.json +1170 -97
  233. package/src/locales/hu-HU/settings.json +455 -426
  234. package/src/locales/it-IT/common.json +282 -250
  235. package/src/locales/it-IT/nav.json +21 -17
  236. package/src/locales/it-IT/notifications.json +22 -38
  237. package/src/locales/it-IT/pages.json +1170 -97
  238. package/src/locales/it-IT/settings.json +455 -426
  239. package/src/locales/ja-JP/common.json +282 -250
  240. package/src/locales/ja-JP/nav.json +21 -17
  241. package/src/locales/ja-JP/notifications.json +22 -38
  242. package/src/locales/ja-JP/pages.json +1170 -97
  243. package/src/locales/ja-JP/settings.json +455 -426
  244. package/src/locales/ko-KR/common.json +282 -250
  245. package/src/locales/ko-KR/nav.json +21 -17
  246. package/src/locales/ko-KR/notifications.json +22 -38
  247. package/src/locales/ko-KR/pages.json +1170 -97
  248. package/src/locales/ko-KR/settings.json +455 -426
  249. package/src/locales/nl-NL/common.json +282 -250
  250. package/src/locales/nl-NL/nav.json +21 -17
  251. package/src/locales/nl-NL/notifications.json +22 -38
  252. package/src/locales/nl-NL/pages.json +1170 -97
  253. package/src/locales/nl-NL/settings.json +455 -426
  254. package/src/locales/no-NO/common.json +282 -250
  255. package/src/locales/no-NO/nav.json +21 -17
  256. package/src/locales/no-NO/notifications.json +22 -38
  257. package/src/locales/no-NO/pages.json +1170 -97
  258. package/src/locales/no-NO/settings.json +455 -426
  259. package/src/locales/pl-PL/common.json +282 -250
  260. package/src/locales/pl-PL/nav.json +21 -17
  261. package/src/locales/pl-PL/notifications.json +22 -38
  262. package/src/locales/pl-PL/pages.json +1170 -97
  263. package/src/locales/pl-PL/settings.json +455 -426
  264. package/src/locales/pt-BR/common.json +282 -250
  265. package/src/locales/pt-BR/nav.json +21 -17
  266. package/src/locales/pt-BR/notifications.json +22 -38
  267. package/src/locales/pt-BR/pages.json +1170 -97
  268. package/src/locales/pt-BR/settings.json +455 -426
  269. package/src/locales/pt-PT/common.json +282 -250
  270. package/src/locales/pt-PT/nav.json +21 -17
  271. package/src/locales/pt-PT/notifications.json +22 -38
  272. package/src/locales/pt-PT/pages.json +1170 -97
  273. package/src/locales/pt-PT/settings.json +455 -426
  274. package/src/locales/ro-RO/common.json +282 -250
  275. package/src/locales/ro-RO/nav.json +21 -17
  276. package/src/locales/ro-RO/notifications.json +22 -38
  277. package/src/locales/ro-RO/pages.json +1170 -97
  278. package/src/locales/ro-RO/settings.json +455 -426
  279. package/src/locales/ru-RU/common.json +282 -250
  280. package/src/locales/ru-RU/nav.json +21 -17
  281. package/src/locales/ru-RU/notifications.json +22 -38
  282. package/src/locales/ru-RU/pages.json +1170 -97
  283. package/src/locales/ru-RU/settings.json +455 -426
  284. package/src/locales/sr-SP/common.json +282 -250
  285. package/src/locales/sr-SP/nav.json +21 -17
  286. package/src/locales/sr-SP/notifications.json +22 -38
  287. package/src/locales/sr-SP/pages.json +1170 -97
  288. package/src/locales/sr-SP/settings.json +455 -426
  289. package/src/locales/sv-SE/common.json +282 -250
  290. package/src/locales/sv-SE/nav.json +21 -17
  291. package/src/locales/sv-SE/notifications.json +22 -38
  292. package/src/locales/sv-SE/pages.json +1170 -97
  293. package/src/locales/sv-SE/settings.json +455 -426
  294. package/src/locales/tr-TR/common.json +282 -250
  295. package/src/locales/tr-TR/nav.json +21 -17
  296. package/src/locales/tr-TR/notifications.json +22 -38
  297. package/src/locales/tr-TR/pages.json +1170 -97
  298. package/src/locales/tr-TR/settings.json +455 -426
  299. package/src/locales/uk-UA/common.json +282 -250
  300. package/src/locales/uk-UA/nav.json +21 -17
  301. package/src/locales/uk-UA/notifications.json +22 -38
  302. package/src/locales/uk-UA/pages.json +1170 -97
  303. package/src/locales/uk-UA/settings.json +455 -426
  304. package/src/locales/vi-VN/common.json +282 -250
  305. package/src/locales/vi-VN/nav.json +21 -17
  306. package/src/locales/vi-VN/notifications.json +22 -38
  307. package/src/locales/vi-VN/pages.json +1170 -97
  308. package/src/locales/vi-VN/settings.json +455 -426
  309. package/src/locales/zh-CN/common.json +282 -250
  310. package/src/locales/zh-CN/nav.json +21 -17
  311. package/src/locales/zh-CN/notifications.json +22 -38
  312. package/src/locales/zh-CN/pages.json +1170 -97
  313. package/src/locales/zh-CN/settings.json +455 -426
  314. package/src/locales/zh-TW/common.json +282 -250
  315. package/src/locales/zh-TW/nav.json +21 -17
  316. package/src/locales/zh-TW/notifications.json +22 -38
  317. package/src/locales/zh-TW/pages.json +1170 -97
  318. package/src/locales/zh-TW/settings.json +455 -426
@@ -1,475 +1,504 @@
1
1
  {
2
- "title": "Настройки",
3
- "tabs": {
4
- "general": "Общие положения",
5
- "servers": "Серверы",
6
- "notifications": "Уведомления",
7
- "mobile": "Мобильное приложение",
8
- "tailscale": "Хвостовая чешуя",
9
- "import": "Импорт",
10
- "advanced": "Расширенные",
11
- "jobs": "Задания",
12
- "accessControl": "Контроль доступа",
13
- "backup": "Резервное копирование"
2
+ "accessControl": {
3
+ "allowGuestAccess": "Разрешить гостевой доступ",
4
+ "allowGuestAccessDesc": "Когда отключено, только владелец сервера может войти в Tracearr",
5
+ "description": "Настройте кто может получить доступ к Tracearr",
6
+ "singleOwnerNote": "Примечание: Если гостевой доступ отключен, авторизоваться могут только владелец сервера. Все другие пользователи увидят сообщение \"Отказано в доступе\".",
7
+ "title": "Контроль доступа"
8
+ },
9
+ "account": {
10
+ "createAccount": "Создать Аккаунт",
11
+ "createYourAccount": "Создайте свой аккаунт, чтобы начать",
12
+ "displayName": "Показать имя",
13
+ "email": "Почта",
14
+ "password": "Пароль",
15
+ "signInToAccount": "Войдите в свою учетную запись",
16
+ "useLocalAccount": "Использовать локальную учетную запись"
17
+ },
18
+ "advanced": {
19
+ "connectionScenarios": "Сценарии подключения",
20
+ "externalUrl": "Внешний URL",
21
+ "reverseProxy": "Обратный прокси",
22
+ "title": "Расширенные настройки",
23
+ "trustProxy": "Доверять заголовкам прокси"
24
+ },
25
+ "backup": {
26
+ "actions": "Действия",
27
+ "backToBackups": "Вернуться к резервным копиям",
28
+ "backupHistory": "История резервных копий",
29
+ "createBackup": "Создать резервную копию",
30
+ "creating": "Создание резервной копии...",
31
+ "databaseSize": "Текущий размер базы данных: {{size}}",
32
+ "date": "Дата",
33
+ "dayFri": "Пятница",
34
+ "dayMon": "Понедельник",
35
+ "daySat": "Суббота",
36
+ "daySun": "Воскресенье",
37
+ "dayThu": "Четверг",
38
+ "dayTue": "Вторник",
39
+ "dayWed": "Среда",
40
+ "deleteConfirmDescription": "Вы уверены, что хотите удалить эту резервную копию? Это действие нельзя отменить.",
41
+ "deleteConfirmTitle": "Удалить резервную копию",
42
+ "description": "Резервное копирование и восстановление данных Tracearr",
43
+ "filename": "Имя файла",
44
+ "freeSpace": "Каталог резервных копий свободного места: {{size}}",
45
+ "lowDiskSpace": "Низкое место на диске — резервные копии и восстановления требуют по крайней мере в два раза больше размера базы данных в свободное пространство.",
46
+ "noBackups": "Резервных копий пока нет. Создайте первую резервную копию выше.",
47
+ "restore": {
48
+ "automations": "Automations",
49
+ "cannotRestore": "Для восстановления требуются права суперпользователя PostgreSQL. Пожалуйста, убедитесь, что пользователь базы данных имеет права суперпользователя и повторите попытку.",
50
+ "complete": "Восстановление успешно завершено. Страница будет обновлена в ближайшее время.",
51
+ "confirm": "Начать восстановление",
52
+ "confirmLabel": "Я понимаю, что это заменит все данные",
53
+ "databaseSize": "Размер базы данных",
54
+ "failed": "Не удалось восстановить",
55
+ "libraryItems": "Элементы библиотеки",
56
+ "pgVersionMismatch": "Резервная копия была создана на PostgreSQL {{backupVersion}} , но этот сервер запускает PostgreSQL {{serverVersion}}. Восстановление дампа с новой версии PostgreSQL не поддерживается.",
57
+ "selectedBackup": "Выбранная резервная копия",
58
+ "servers": "Серверы",
59
+ "sessions": "Сессии",
60
+ "tables": "Таблицы",
61
+ "title": "Восстановить резервную копию",
62
+ "tsVersionMismatch": "Резервная копия была создана с TimescaleDB {{backupVersion}} , но этот сервер поддерживает только до TimescaleDB {{serverVersion}}.",
63
+ "users": "Пользователи",
64
+ "warning": "Восстановление заменит все существующие данные. Вам нужно будет заново войти в систему после завершения восстановления."
65
+ },
66
+ "restoreAction": "Восстановить",
67
+ "retentionCount": "Сохранить последний",
68
+ "retentionSuffix": "запланированные резервные копии",
69
+ "schedule": "Запланированные резервные копии",
70
+ "scheduleDaily": "Ежедневно",
71
+ "scheduleDayOfMonth": "День месяца",
72
+ "scheduleDayOfMonthHint": "В месяцах с меньшим количеством дней, резервная копия работает в последний день.",
73
+ "scheduleDayOfWeek": "День недели",
74
+ "scheduleDisabled": "Отключено",
75
+ "scheduleMonthly": "Ежемесячно",
76
+ "scheduleTime": "Время ({{timezone}})",
77
+ "scheduleType": "График",
78
+ "scheduleWeekly": "Еженедельно",
79
+ "size": "Размер",
80
+ "title": "Резервное копирование",
81
+ "toast": {
82
+ "backupCreateFailed": "Не удалось создать резервную копию",
83
+ "backupCreated": "Резервная копия успешно создана",
84
+ "backupDeleteFailed": "Не удалось удалить резервную копию",
85
+ "backupDeleted": "Резервная копия удалена",
86
+ "backupUploadFailed": "Не удалось загрузить резервную копию",
87
+ "backupUploaded": "Резервная копия успешно загружена",
88
+ "restoreStartFailed": "Не удалось начать восстановление",
89
+ "restoreStarted": "Восстановление начато",
90
+ "scheduleError": "Не удалось сохранить резервную копию расписания",
91
+ "scheduleSaved": "Расписание резервного копирования сохранено"
92
+ },
93
+ "type": "Тип",
94
+ "typeManual": "Ручной",
95
+ "typeScheduled": "Запланированный",
96
+ "typeUploaded": "Загружено",
97
+ "uploadBackup": "Загрузить резервную копию",
98
+ "uploading": "Загрузка...",
99
+ "version": "Версии"
14
100
  },
15
101
  "general": {
16
- "title": "Общие настройки",
17
- "unitSystem": "Система модулей",
18
- "metric": "Метрика (км, км/ч)",
19
- "imperial": "Имперская (mi, mph)",
20
- "timezone": "Timezone",
21
- "primaryAuth": "Метод первичной аутентификации",
22
- "localAccount": "Локальный счет",
23
- "plexAccount": "Аккаунт Plex",
24
- "language": "Язык",
25
- "languageDescription": "Выберите предпочитаемый язык отображения.",
26
- "helpTranslate": "Помогите перевести Tracearr",
27
- "timeFormat": "Формат времени",
28
- "timeFormatDescription": "Выберите, как время отображается.",
29
- "timeFormat12h": "12 часов (1:30 PM)",
30
- "timeFormat24h": "24-часовой (13:30)",
102
+ "accentColor": "Цвет акцента",
103
+ "apiDocs": "API Docs",
104
+ "apiKeyDesc": "Получите доступ к Tracearr API для сторонних интеграций, таких как Homarr, Home Assistant, и т.д.",
105
+ "apiKeyReadAccess": "Ваш ключ API предоставляет полный доступ к чтению данных Tracearr.",
106
+ "apiRateLimit": "API Rate Limit",
107
+ "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
108
+ "apiRateLimitSuffix": "/min",
31
109
  "appearance": "Внешний вид",
32
110
  "appearanceDesc": "Настройка внешнего вида Tracearr",
33
- "theme": "Тема",
34
- "accentColor": "Цвет акцента",
35
- "default": "(по умолчанию)",
36
- "cyanDefault": "* Бирюзовый цвет по умолчанию",
37
- "themeLight": "Светлая",
38
- "themeDark": "Тёмная",
39
- "themeSystem": "Система",
40
111
  "application": "Приложение",
41
112
  "applicationDesc": "Настройка базовых параметров приложения",
42
- "unitSystemDesc": "Выберите, как отображаются расстояния и скорости",
43
- "sessionSync": "Синхронизация сессий",
44
- "sessionSyncDesc": "Включить отслеживание сессий для ваших медиа серверов",
45
- "syncInterval": "Интервал синхронизации",
46
- "syncIntervalDesc": "Частота опроса для Jellyfin/Emby (5-300 секунд)",
47
- "syncIntervalSuffix": "сек",
48
- "plexSseNote": "Plex использует Server-Sent Events (SSE) для быстрых обновлений — опрос не требуется.",
49
- "jellyfinPollingNote": "Jellyfin/Emby опрошены с интервалом выше.",
113
+ "copyToClipboard": "Копировать в буфер обмена",
114
+ "cyanDefault": "* Бирюзовый цвет по умолчанию",
115
+ "default": "(по умолчанию)",
116
+ "detect": "Обнаружить",
50
117
  "enhancedGeoIP": "Расширенный поиск GeoIP",
51
118
  "enhancedGeoIPDesc": "Используйте сервис GeoIP Plex для получения более точных данных о местоположении. Когда включено, IP адреса отправляются в plex. v для поиска. Локальная база данных MaxMind используется как резервная копия.",
52
119
  "externalAccess": "Внешний доступ",
53
120
  "externalAccessDesc": "Настройте как внешние устройства (например, мобильные приложения) подключаться к вашему серверу",
54
121
  "externalUrl": "Внешний URL",
55
- "externalUrlPlaceholder": "https://tracearr.example.com",
56
122
  "externalUrlDesc": "URL-адрес, который внешние устройства должны использовать для доступа к этому серверу. Используется для подключения QR-кодов и мобильных приложений.",
57
- "detect": "Обнаружить",
58
- "localhostWarning": "URL-адреса локальных хостов не будут работать для внешних устройств. Используйте локальный IP адрес или имя домена.",
123
+ "externalUrlPlaceholder": "https://tracearr.example.com",
124
+ "generateApiKeyPrompt": "Создайте API ключ для включения внешней интеграции.",
125
+ "generateKey": "Сгенерировать ключ",
126
+ "helpTranslate": "Помогите перевести Tracearr",
127
+ "imperial": "Имперская (mi, mph)",
59
128
  "iosHttpWarning": "iOS требует HTTPS для внешних подключений. Настройте обратный прокси с помощью SSL.",
60
- "apiKeyDesc": "Получите доступ к Tracearr API для сторонних интеграций, таких как Homarr, Home Assistant, и т.д.",
61
- "apiDocs": "API Docs",
129
+ "jellyfinPollingNote": "Jellyfin/Emby опрошены с интервалом выше.",
130
+ "language": "Язык",
131
+ "languageDescription": "Выберите предпочитаемый язык отображения.",
132
+ "localAccount": "Локальный счет",
133
+ "localhostWarning": "URL-адреса локальных хостов не будут работать для внешних устройств. Используйте локальный IP адрес или имя домена.",
134
+ "metric": "Метрика (км, км/ч)",
62
135
  "noApiKeyGenerated": "Ключ API не создан",
63
- "copyToClipboard": "Копировать в буфер обмена",
64
- "apiKeyReadAccess": "Ваш ключ API предоставляет полный доступ к чтению данных Tracearr.",
65
- "generateApiKeyPrompt": "Создайте API ключ для включения внешней интеграции.",
136
+ "plexAccount": "Аккаунт Plex",
137
+ "plexSseNote": "Plex использует Server-Sent Events (SSE) для быстрых обновлений — опрос не требуется.",
138
+ "primaryAuth": "Метод первичной аутентификации",
139
+ "publicApiSettings": "Public API",
140
+ "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
66
141
  "regenerate": "Восстановить",
67
- "generateKey": "Сгенерировать ключ",
68
142
  "regenerateApiKey": "Пересоздать ключ API?",
69
143
  "regenerateApiKeyDesc": "Это аннулирует ваш текущий ключ API. Любые интеграции, использующие старый ключ, перестанут работать.",
70
- "publicApiSettings": "Public API",
71
- "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
144
+ "sessionSync": "Синхронизация сессий",
145
+ "sessionSyncDesc": "Включить отслеживание сессий для ваших медиа серверов",
146
+ "syncInterval": "Интервал синхронизации",
147
+ "syncIntervalDesc": "Частота опроса для Jellyfin/Emby (5-300 секунд)",
148
+ "syncIntervalSuffix": "сек",
149
+ "theme": "Тема",
150
+ "themeDark": "Тёмная",
151
+ "themeLight": "Светлая",
152
+ "themeSystem": "Система",
153
+ "timeFormat": "Формат времени",
154
+ "timeFormat12h": "12 часов (1:30 PM)",
155
+ "timeFormat24h": "24-часовой (13:30)",
156
+ "timeFormatDescription": "Выберите, как время отображается.",
157
+ "timezone": "Timezone",
158
+ "title": "Общие настройки",
159
+ "unitSystem": "Система модулей",
160
+ "unitSystemDesc": "Выберите, как отображаются расстояния и скорости",
161
+ "updateChecks": {
162
+ "description": "Tracearr looks for new releases every six hours. Notifications come from whatever automation listens for the update triggers.",
163
+ "plugin": "Realtime plugin",
164
+ "pluginDesc": "Check for new releases of the Tracearr plugin your Jellyfin and Emby servers stream events through.",
165
+ "server": "Media servers",
166
+ "serverDesc": "Compare what each Plex, Jellyfin and Emby server runs with the newest release its makers publish.",
167
+ "title": "Update checks"
168
+ },
169
+ "imageCache": {
170
+ "title": "Poster cache",
171
+ "description": "One copy of each poster, kept on disk until the poster changes. Nothing here is evicted to make room; when the disk runs low the cache stops growing and says so.",
172
+ "size": "On disk",
173
+ "files": "Files",
174
+ "need": "Estimated need",
175
+ "needHint": "{{count}} posters × 18 KB",
176
+ "free": "Free disk",
177
+ "freeOf": "of {{total}}",
178
+ "floor": "Keeps free",
179
+ "ceiling": "Ceiling",
180
+ "lastSweep": "Last sweep",
181
+ "never": "not yet",
182
+ "diskLimited": "Disk-limited since {{since}}: about {{shortfall}} of posters are not cached.",
183
+ "loadError": "Could not load the cache status."
184
+ },
72
185
  "watchedThresholdMovie": "Movie Watched Threshold",
73
186
  "watchedThresholdMovieDesc": "Percentage of a movie that must be watched before it's marked complete",
74
- "watchedThresholdTv": "TV Episode Watched Threshold",
75
- "watchedThresholdTvDesc": "Percentage of an episode that must be watched before it's marked complete",
76
187
  "watchedThresholdMusic": "Track Watched Threshold",
77
188
  "watchedThresholdMusicDesc": "Percentage of a track that must be played before it's marked complete",
78
189
  "watchedThresholdSuffix": "%",
79
- "apiRateLimit": "API Rate Limit",
80
- "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
81
- "apiRateLimitSuffix": "/min"
82
- },
83
- "servers": {
84
- "title": "Подключенные серверы",
85
- "addServer": "Добавить сервер",
86
- "serverName": "Имя сервера",
87
- "serverUrl": "URL сервера",
88
- "syncInterval": "Интервал синхронизации",
89
- "testConnection": "Проверить соединение",
90
- "connectionSuccess": "Успешное подключение",
91
- "connectionFailed": "Не удалось подключиться",
92
- "noServersConnected": "Нет подключенных серверов",
93
- "noServersConnectedHint": "Нажмите \"Add Server\", чтобы подключить сервер Jellyfin или Emby",
94
- "serverType": "Тип сервера",
95
- "loadingAccounts": "Загрузка связанных аккаунтов...",
96
- "noPlexAccountsLinked": "Нет привязанных аккаунтов Plex",
97
- "noPlexAccountsLinkedHint": "Привяжите аккаунт Plex выше, а затем вернитесь, чтобы добавить сервер.",
98
- "selectPlexAccount": "Выберите аккаунт Plex",
99
- "chooseAccount": "Выберите аккаунт...",
100
- "selectAccountHelp": "Выберите, с какой учетной записи Plex обнаружить серверы.",
101
- "allServersConnected": "Все серверы подключены",
102
- "allServersConnectedDesc": "Все серверы этой учетной записи уже подключены.",
103
- "serverUrlPlaceholder": "http://192.168.1.100:8096",
104
- "serverUrlHelp": "Прямой URL-адрес вашего Jellyfin или Emby сервера. Используйте IP:порт для лучшей надежности.",
105
- "serverNamePlaceholder": "Мой медиа сервер",
106
- "apiKeyPlaceholder": "Введите ваш API ключ",
107
- "apiKeyHelp": "Найдена в панели управления вашего медиа-сервера под API Keys или Расширенные настройки.",
108
- "connecting": "Подключение...",
109
- "connectServer": "Подключить сервер",
110
- "removeServer": "Удалить сервер",
111
- "removeServerConfirm": "Вы уверены, что хотите удалить этот сервер? Все соответствующие данные сессии будут сохранены, но вы не сможете контролировать новые сеансы с этого сервера.",
112
- "editServer": "Изменить сервер",
113
- "editServerDesc": "Обновить имя сервера или URL-адрес подключения.",
114
- "serverColor": "Цвет сервера",
115
- "serverColorDesc": "Используется для визуального атрибута в многосерверном режиме",
116
- "updating": "Обновление...",
117
- "allFieldsRequired": "Все поля обязательны",
118
- "addServerDialogDescPlex": "Выберите Plex сервер из связанного аккаунта.",
119
- "addServerDialogDescOther": "Подключите сервер Jellyfin или Emby.",
120
- "description": "Управление подключенными приложениями Plex, Jellyfin, и Emby серверами",
121
- "discoveringServers": "Поиск доступных серверов Plex...",
122
- "discoveringConnections": "Поиск соединений...",
123
- "plexAccount": "Аккаунт Plex",
124
- "serverUrlHelpJellyfin": "URL-адрес, на котором доступен ваш сервер Jellyfin",
125
- "serverUrlHelpEmby": "URL-адрес, на котором доступен сервер Emby",
126
- "apiKeyHelpJellyfin": "Найти это в панели управления Jellyfin → API Keys",
127
- "apiKeyHelpEmby": "Найти это в Emby Server → API Keys",
128
- "plexServerPlaceholder": "Мой Plex Сервер",
129
- "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
130
- "updateHint": "Или нажмите кнопку Обновить ниже, чтобы сохранить только изменение имени.",
131
- "added": "Добавлено {{date}}",
132
- "realtimeActive": "Real-time updates active",
133
- "pollingMode": "Polling",
134
- "setupRealtime": "Set up real-time updates",
135
- "realtimeError": "Real-time error",
136
- "checkingConnection": "Checking connection…",
137
- "pluginVersion": "plugin v{{version}}",
138
- "pluginUpdateAvailable": "Plugin update available",
139
- "realtimeDialog": {
140
- "title": "Enable real-time updates",
141
- "updateTitle": "Update the Tracearr SSE plugin",
142
- "jellyfinDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
143
- "embyDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
144
- "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
145
- "embyUpdateDescription": "A newer plugin release is available. Download the latest release zip, replace the plugin DLL in your Emby plugins folder, and restart Emby.",
146
- "repositoryUrl": "Repository URL",
147
- "copyUrl": "Copy URL",
148
- "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
149
- "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
150
- "openReleases": "Open releases page",
151
- "autoDetectNote": "Restart Jellyfin or Emby after installing the plugin; the restart is required. Tracearr itself needs no restart and picks the plugin up automatically.",
152
- "close": "Close",
153
- "issueBlocked": "The server reports the plugin as installed and active, but Tracearr gets a 404 from its endpoint. A reverse proxy blocking the path is the usual cause.",
154
- "issueRestartRequired": "The plugin is installed, but the media server needs a restart before it activates.",
155
- "issueMalfunctioned": "The server reports the plugin failed to load. Updating the plugin or the media server usually clears this."
156
- },
157
- "posterSource": {
158
- "title": "Poster Preferences",
159
- "titleDesc": "Choose which server's poster is shown when a title exists on more than one server",
160
- "label": "Preferred Poster Source",
161
- "description": "When a title is on more than one server, use this server's poster. If it doesn't have one, we'll fall back to the most recently added copy.",
162
- "automatic": "Automatic (most recent)",
163
- "emptyHint": "Add a server to choose a preferred poster source."
164
- }
165
- },
166
- "mobile": {
167
- "title": "Мобильное приложение",
168
- "pairDevice": "Соединить устройство",
169
- "connectedDevices": "Подключенные устройства",
170
- "generateToken": "Сгенерировать токен пары",
171
- "scanQrCode": "Scan QR Code",
172
- "tokenExpires": "Токен истекает в {{time}}",
173
- "noDevices": "Устройства не подключены",
174
- "revokeAll": "Отозвать все сессии",
175
- "getTheApp": "Скачать приложение",
176
- "getTheAppDesc": "Скачайте мобильное приложение Tracearr для iOS или Android",
177
- "getOnGooglePlay": "Получить на Google Play",
178
- "downloadOnAppStore": "Скачать на App Store",
179
- "pairYourDevice": "Соедините ваше устройство",
180
- "pairYourDeviceDesc": "Сканируйте QR-код с помощью приложения Tracearr для подключения к серверу.",
181
- "externalUrlRequired": "Внешний URL-адрес должен быть настроен в Общие настройки для подключения мобильных устройств.",
182
- "mobileAccessDisabled": "Мобильный доступ отключен",
183
- "mobileAccessDisabledDesc": "Разрешить мобильный доступ к приложению Tracearr подключаться к серверу.",
184
- "enableMobileAccess": "Включить мобильный доступ",
185
- "enabling": "Включение...",
186
- "devicesConnected": "{{current}} устройств {{max}} подключено",
187
- "pendingTokens": "{{count}} в ожидании парных токенов",
188
- "addDevice": "Добавить устройство",
189
- "disableMobileAccess": "Отключить мобильный доступ",
190
- "connectedDevicesDesc": "Устройства {{count}} в паре с вашим сервером",
191
- "revokeAllSessions": "Отозвать все",
192
- "pairNewDevice": "Соединить новое устройство",
193
- "pairNewDeviceDesc": "Сканируйте QR-код с помощью мобильного приложения Tracearr или введите токен вручную.",
194
- "expiresIn": "Истекает через {{time}}",
195
- "oneTimePairToken": "Одноразовый токен пары",
196
- "copyToken": "Копировать токен",
197
- "tokenExpiryNote": "Этот токен истекает через 5 минут и может быть использован только один раз.",
198
- "done": "Готово",
199
- "disableMobileAccessConfirm": "Это отключит все мобильные устройства и отменит все сеансы. Вы можете снова включить мобильный доступ позже.",
200
- "disable": "Отключено",
201
- "revokeAllConfirm": "Это отключит все мобильные устройства. Для повторного подключения им потребуется подключить снова.",
202
- "renameDevice": "Переименовать устройство",
203
- "renameDeviceDesc": "Введите имя для идентификации этого устройства в списке.",
204
- "deviceName": "Имя устройства",
205
- "deviceNamePlaceholder": "напр. iPhone 15",
206
- "removeDevice": "Удалить устройство",
207
- "failedToGenerateToken": "Не удалось сгенерировать токен",
208
- "removeDeviceConfirm": "Вы уверены, что хотите удалить {{deviceName}}? Это устройство будет необходимо снова подключиться, чтобы восстановить.",
209
- "externalUrlBanner": "Использование обратного прокси или удаленный доступ к нему? Установить",
210
- "externalUrlBannerLink": "Внешний URL",
211
- "externalUrlBannerSuffix": "чтобы мобильное приложение могло подключиться к серверу."
212
- },
213
- "tailscale": {
214
- "title": "VPN-чешуя",
215
- "description": "Безопасный доступ к Tracearr в сети Tailscale без перенаправления портов.",
216
- "notAvailable": "Бинарный файл Tailscale не найден. Эта функция доступна только при запуске официального образа Docker.",
217
- "disabledDescription": "Включите Tailscale для того, чтобы Tracearr использовал ваш частный адаптер. Пересылка портов или обратный прокси не требуется.",
218
- "hostnameLabel": "Имя устройства",
219
- "hostnameHint": "Необязательное настраиваемое имя для этого устройства только на ваш хвост. Только буквы, цифры и дефисы.",
220
- "enable": "Включить масштаб хвоста",
221
- "disable": "Отключить хвостовую шкалу",
222
- "starting": "Запуск тайл...",
223
- "stopping": "Остановка хвостовой шкалы...",
224
- "awaitingAuth": "Ожидание подтверждения...",
225
- "authorize": "Авторизоваться в хвостовой шкале",
226
- "connected": "Tailscale подключен. Ваш экземпляр Tracearr доступен в портсете.",
227
- "hostname": "Hostname",
228
- "dnsName": "DNS Имя",
229
- "tailnetUrl": "URL",
230
- "showLogs": "Показать логи",
231
- "hideLogs": "Скрыть журналы",
232
- "noLogs": "Нет доступных журналов.",
233
- "exitNodeNone": "Нет",
234
- "exitNodeOffline": "(оффлайн)",
235
- "unknownError": "Произошла неизвестная ошибка.",
236
- "disableConfirmTitle": "Отключить Tailscale?",
237
- "disableConfirmDescription": "Это отключит Tracearr от вашего портсета. Вы можете снова включить без повторной авторизации.",
238
- "resetConfirmTitle": "Reset Tailscale?",
239
- "resetConfirmDescription": "Это отключит Tracearr от вашей сети и удалит идентификацию устройства. Вам нужно будет повторно авторизоваться, если вы включите его снова.",
240
- "toast": {
241
- "disabled": "Шкала хвостовых тканей отключена.",
242
- "enableFailed": "Не удалось включить Tailscale",
243
- "disableFailed": "Не удалось отключить Tailscale",
244
- "reset": "Хвостовая чешуя была сброшена.",
245
- "resetFailed": "Не удалось сбросить Tailscale",
246
- "exitNodeSet": "Узел выхода обновлен.",
247
- "exitNodeFailed": "Не удалось установить узел"
248
- }
249
- },
250
- "jobs": {
251
- "title": "Задания по обслуживанию",
252
- "description": "Управление фоновыми задачами, которые сохраняют ваши данные точными и оптимизированными.",
253
- "normalization": "Нормализация",
254
- "backfill": "Заполнение",
255
- "cleanup": "Очистить",
256
- "running": "запущен",
257
- "queued": "в очереди",
258
- "delayed": "задержка",
259
- "waiting": "Ожидание",
260
- "runningState": "Выполняется",
261
- "runJob": "Запустить работу",
262
- "processed": "обработано",
263
- "updated": "обновлено",
264
- "unchanged": "без изменений",
265
- "errors": "ошибки",
266
- "lastJobCompleted": "Последняя работа успешно завершена",
267
- "lastJobFailed": "Последняя работа не удалась",
268
- "jobHistory": "История заданий",
269
- "jobHistoryDesc": "Последнее выполнение задания по обслуживанию",
270
- "runConfirm": "Запустить {{name}}?",
271
- "mayTakeAWhile": "Это может занять некоторое время",
272
- "mayTakeAWhileDesc": "Завершение этой работы может занять несколько минут в зависимости от размера вашей библиотеки.",
273
- "startJob": "Начать работу"
274
- },
275
- "advanced": {
276
- "title": "Расширенные настройки",
277
- "externalUrl": "Внешний URL",
278
- "trustProxy": "Доверять заголовкам прокси",
279
- "reverseProxy": "Обратный прокси",
280
- "connectionScenarios": "Сценарии подключения"
281
- },
282
- "accessControl": {
283
- "title": "Контроль доступа",
284
- "description": "Настройте кто может получить доступ к Tracearr",
285
- "allowGuestAccess": "Разрешить гостевой доступ",
286
- "allowGuestAccessDesc": "Когда отключено, только владелец сервера может войти в Tracearr",
287
- "singleOwnerNote": "Примечание: Если гостевой доступ отключен, авторизоваться могут только владелец сервера. Все другие пользователи увидят сообщение \"Отказано в доступе\"."
190
+ "watchedThresholdTv": "TV Episode Watched Threshold",
191
+ "watchedThresholdTvDesc": "Percentage of an episode that must be watched before it's marked complete"
288
192
  },
289
193
  "import": {
290
- "title": "Импорт данных",
291
- "jellystat": "Импорт из Jellystat",
292
- "tautulli": "Импорт из Tautulli",
293
- "importProgress": "Прогресс импорта",
194
+ "apiKeyHelp": "Найдено в настройках Tautulli → Web Интерфейс → API ключ.",
195
+ "apiKeyPlaceholder": "Ваш ключ Tautulli API",
196
+ "checkPlugin": "Check Plugin",
197
+ "checkingPlugin": "Checking...",
198
+ "connectToTautulli": "Подключиться к Tautulli",
199
+ "connectedFound": "Подключено! Найдено {{users}} пользователей и записей истории {{records}}.",
200
+ "duplicates": "{{count}} duplicates skipped",
201
+ "enrichMetadata": "Дополнить метаданными медиа (рекомендуется)",
202
+ "enrichMetadataHelp": "Извлекает дополнительные метаданные из вашего медиа-сервера для импортированных сессий.",
203
+ "enriched": "Богатый",
204
+ "errors": "Ошибки",
205
+ "exportBackupHelp": "В Jellystat, перейдите в Настройки → Резервное копирование → Резервное копирование действий для экспорта данных.",
206
+ "exportBackupHint": "Экспорт резервного копирования действий из Jellystat",
207
+ "howItWorks": "Как работает импорт",
208
+ "howItWorksDesc": "Tracearr импортирует все исторические данные из вашего источника. Это может занять некоторое время в зависимости от размера вашей библиотеки.",
294
209
  "importComplete": "Импорт завершен",
295
210
  "importFailed": "Не удалось импортировать",
296
- "processed": "Обработано",
297
- "page": "Страница",
211
+ "importFullRange": "Import full history",
212
+ "importFullRangeHelp": "By default only history older than Tracearr's earliest tracked session for this server is imported, so sessions Tracearr already recorded are never duplicated. Enable this to import the plugin's entire history regardless of overlap, if your Tracearr history has gaps. Exact duplicates are still skipped.",
213
+ "importHistory": "История импорта",
214
+ "importHistoryDesc": "Импортировать исторические наблюдения из внешних источников",
215
+ "importInProgressGeneric": "Идёт импорт...",
216
+ "importInProgressPercent": "Импорт в процессе ({{percent}}% завершено)...",
217
+ "importOptions": "Параметры импорта",
218
+ "importProgress": "Прогресс импорта",
298
219
  "imported": "Импортировано",
299
- "skipped": "Пропущено",
300
- "enriched": "Богатый",
301
- "errors": "Ошибки",
220
+ "importing": "Импортируем...",
221
+ "includeStreamDetails": "Включать подробные данные потока (кодеки, битрейт, разрешение)",
222
+ "includeStreamDetailsHelp": "Импорт дополнительной информации о потоке. Может значительно увеличить время импорта.",
223
+ "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
224
+ "jellystat": "Импорт из Jellystat",
302
225
  "noServers": "Серверы не подключены",
303
226
  "noServersHint": "Для импорта данных необходим по крайней мере один подключенный сервер.",
304
- "tautulliUrl": "URL Tautulli",
305
- "tautulliUrlPlaceholder": "http://localhost:8181",
306
- "tautulliUrlHelp": "URL вашего экземпляра Tautulli.",
307
- "apiKeyHelp": "Найдено в настройках Tautulli → Web Интерфейс → API ключ.",
308
- "testing": "Тестирование...",
309
- "connectToTautulli": "Подключиться к Tautulli",
310
- "importHistory": "История импорта",
311
- "targetServer": "Target Server",
312
- "selectPlexServer": "Выберите Plex сервер",
227
+ "overlapSkipped": "{{count}} skipped as overlap",
313
228
  "overwriteFriendlyNames": "Перезаписать существующие дружественные имена с названиями Tautulli",
314
229
  "overwriteFriendlyNamesHelp": "Существующие идентификационные имена в Tracearr будут заменены на дружественные имена от Tautulli.",
315
- "includeStreamDetails": "Включать подробные данные потока (кодеки, битрейт, разрешение)",
316
- "includeStreamDetailsHelp": "Импорт дополнительной информации о потоке. Может значительно увеличить время импорта.",
317
- "importing": "Импортируем...",
318
- "startImport": "Начать импорт",
319
- "howItWorks": "Как работает импорт",
320
- "howItWorksDesc": "Tracearr импортирует все исторические данные из вашего источника. Это может занять некоторое время в зависимости от размера вашей библиотеки.",
321
- "recordsMayBeSkipped": "Записи могут быть пропущены, если:",
322
- "selectTargetServer": "Выберите целевой сервер",
323
- "selectJellyfinServer": "Выберите сервер Jellyfin или Emby",
324
- "uploadJellystatBackup": "Загрузить резервную копию Jellystat",
325
- "exportBackupHint": "Экспорт резервного копирования действий из Jellystat",
326
- "exportBackupHelp": "В Jellystat, перейдите в Настройки → Резервное копирование → Резервное копирование действий для экспорта данных.",
327
- "importOptions": "Параметры импорта",
328
- "enrichMetadata": "Дополнить метаданными медиа (рекомендуется)",
329
- "enrichMetadataHelp": "Извлекает дополнительные метаданные из вашего медиа-сервера для импортированных сессий.",
330
- "updateExistingRecords": "Обновить существующие записи с подробностями потока",
331
- "updateExistingRecordsHelp": "Раньше импортированные записи будут обновляться с данными качества потока.",
230
+ "page": "Страница",
231
+ "playbackReporting": "Playback Reporting Plugin",
232
+ "playbackReportingDesc": "Import history directly from the Playback Reporting plugin installed on your Jellyfin or Emby server. No file export needed.",
332
233
  "pleaseEnterDetails": "Пожалуйста, введите Tautulli URL и API ключ",
333
- "testingConnection": "Проверка соединения...",
334
234
  "pleaseSelectJsonFile": "Пожалуйста, выберите файл JSON",
335
- "uploadingBackup": "Загрузка файла резервной копии...",
336
- "importHistoryDesc": "Импортировать исторические наблюдения из внешних источников",
337
235
  "plex": "Plex (Таулли)",
338
- "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
339
- "step1": "1",
340
- "step2": "2",
341
- "apiKeyPlaceholder": "Ваш ключ Tautulli API",
342
- "skipUserNotFoundPlex": "Пользователь не найден — Plex пользователь не существует в Tracearr. Синхронизируйте ваш сервер, чтобы добавить всех пользователей.",
343
- "skipDuplicate": "Повторяющиеся сессии— сессия уже была импортирована ранее.",
344
- "skipInProgress": "Сессия In-progress — Пропущены активные или незавершенные сеансы без идентификатора ссылки.",
345
- "skipUserNotFoundJellyfin": "Пользователь не найден — Пользователь Jellyfin/Emby не существует в Tracearr. Синхронизируйте ваш сервер, чтобы добавить всех пользователей.",
346
- "skipSyncHint": "Если пропущено много записей, убедитесь, что вы недавно синхронизировали ваш сервер в Настройках → Серверах.",
347
- "importInProgressPercent": "Импорт в процессе ({{percent}}% завершено)...",
348
- "importInProgressGeneric": "Идёт импорт...",
349
- "startingImport": "Запуск импорта...",
350
- "connectedFound": "Подключено! Найдено {{users}} пользователей и записей истории {{records}}.",
351
- "playbackReporting": "Playback Reporting Plugin",
352
- "playbackReportingDesc": "Import history directly from the Playback Reporting plugin installed on your Jellyfin or Emby server. No file export needed.",
353
- "checkPlugin": "Check Plugin",
354
- "checkingPlugin": "Checking...",
355
236
  "pluginFound": "Plugin found: {{records}} records from {{oldestDate}} to {{newestDate}}",
356
237
  "pluginNotInstalled": "The Playback Reporting plugin is not installed on this server, or Tracearr cannot reach it. Install it from the server's plugin catalog to start recording history, or use the Jellystat import below.",
238
+ "processed": "Обработано",
239
+ "recordsMayBeSkipped": "Записи могут быть пропущены, если:",
240
+ "selectJellyfinServer": "Выберите сервер Jellyfin или Emby",
241
+ "selectPlexServer": "Выберите Plex сервер",
242
+ "selectTargetServer": "Выберите целевой сервер",
357
243
  "serverTimezone": "Server Timezone",
358
244
  "serverTimezoneHelp": "Must match the timezone configured on your media server host, not your browser's timezone. Playback Reporting timestamps are stored in local server time.",
359
- "importFullRange": "Import full history",
360
- "importFullRangeHelp": "By default only history older than Tracearr's earliest tracked session for this server is imported, so sessions Tracearr already recorded are never duplicated. Enable this to import the plugin's entire history regardless of overlap, if your Tracearr history has gaps. Exact duplicates are still skipped.",
361
- "overlapSkipped": "{{count}} skipped as overlap",
362
- "duplicates": "{{count}} duplicates skipped",
245
+ "skipDuplicate": "Повторяющиеся сессии— сессия уже была импортирована ранее.",
246
+ "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data.",
247
+ "skipInProgress": "Сессия In-progress — Пропущены активные или незавершенные сеансы без идентификатора ссылки.",
363
248
  "skipOverlap": "Overlapping record - the timestamp falls inside the period Tracearr already tracks for this server. Enable full-range import to include it.",
364
- "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data."
365
- },
366
- "plex": {
367
- "signInWithPlex": "Войти через Plex",
368
- "signUpWithPlex": "Зарегистрироваться через Plex",
369
- "selectServer": "Выбрать сервер",
370
- "chooseServer": "Выберите Plex Media Server для мониторинга"
249
+ "skipSyncHint": "Если пропущено много записей, убедитесь, что вы недавно синхронизировали ваш сервер в Настройках → Серверах.",
250
+ "skipUserNotFoundJellyfin": "Пользователь не найден — Пользователь Jellyfin/Emby не существует в Tracearr. Синхронизируйте ваш сервер, чтобы добавить всех пользователей.",
251
+ "skipUserNotFoundPlex": "Пользователь не найден — Plex пользователь не существует в Tracearr. Синхронизируйте ваш сервер, чтобы добавить всех пользователей.",
252
+ "skipped": "Пропущено",
253
+ "startImport": "Начать импорт",
254
+ "startingImport": "Запуск импорта...",
255
+ "step1": "1",
256
+ "step2": "2",
257
+ "targetServer": "Target Server",
258
+ "tautulli": "Импорт из Tautulli",
259
+ "tautulliUrl": "URL Tautulli",
260
+ "tautulliUrlHelp": "URL вашего экземпляра Tautulli.",
261
+ "tautulliUrlPlaceholder": "http://localhost:8181",
262
+ "testing": "Тестирование...",
263
+ "testingConnection": "Проверка соединения...",
264
+ "title": "Импорт данных",
265
+ "updateExistingRecords": "Обновить существующие записи с подробностями потока",
266
+ "updateExistingRecordsHelp": "Раньше импортированные записи будут обновляться с данными качества потока.",
267
+ "uploadJellystatBackup": "Загрузить резервную копию Jellystat",
268
+ "uploadingBackup": "Загрузка файла резервной копии..."
371
269
  },
372
- "account": {
373
- "createAccount": "Создать Аккаунт",
374
- "email": "Почта",
375
- "password": "Пароль",
376
- "displayName": "Показать имя",
377
- "createYourAccount": "Создайте свой аккаунт, чтобы начать",
378
- "signInToAccount": "Войдите в свою учетную запись",
379
- "useLocalAccount": "Использовать локальную учетную запись"
270
+ "ipWarning": {
271
+ "acknowledge": "Понятно",
272
+ "message": "Кажется, все пользователи используют один и тот же IP адрес или локальный сетевой IP-адрес. Это может повлиять на логику, основанную на правилах для определения местоположения или IP-адресов."
380
273
  },
381
- "update": {
382
- "title": "Доступно обновление",
383
- "releaseNotes": "Примечания к выпуску",
384
- "updateCommand": "Обновить команду",
385
- "pullInstructions": "После загрузки перезагрузите контейнер, чтобы применить обновление.",
386
- "stableRelease": "Стабильный выпуск",
387
- "betaUpdate": "Бета обновление",
388
- "newVersion": "Новая версия",
389
- "versionAvailable": "Доступно {{version}}"
274
+ "jobs": {
275
+ "backfill": "Заполнение",
276
+ "cleanup": "Очистить",
277
+ "delayed": "задержка",
278
+ "description": "Управление фоновыми задачами, которые сохраняют ваши данные точными и оптимизированными.",
279
+ "errors": "ошибки",
280
+ "jobHistory": "История заданий",
281
+ "jobHistoryDesc": "Последнее выполнение задания по обслуживанию",
282
+ "lastJobCompleted": "Последняя работа успешно завершена",
283
+ "lastJobFailed": "Последняя работа не удалась",
284
+ "mayTakeAWhile": "Это может занять некоторое время",
285
+ "mayTakeAWhileDesc": "Завершение этой работы может занять несколько минут в зависимости от размера вашей библиотеки.",
286
+ "normalization": "Нормализация",
287
+ "processed": "обработано",
288
+ "queued": "в очереди",
289
+ "runConfirm": "Запустить {{name}}?",
290
+ "runJob": "Запустить работу",
291
+ "running": "запущен",
292
+ "runningState": "Выполняется",
293
+ "startJob": "Начать работу",
294
+ "title": "Задания по обслуживанию",
295
+ "unchanged": "без изменений",
296
+ "updated": "обновлено",
297
+ "waiting": "Ожидание"
390
298
  },
391
- "serverHealth": {
392
- "unreachable": "{{serverName}} недоступен",
393
- "multipleUnreachable": "Сервер {{count}} недоступен: {{serverNames}}"
299
+ "mobile": {
300
+ "addDevice": "Добавить устройство",
301
+ "connectedDevices": "Подключенные устройства",
302
+ "connectedDevicesDesc": "Устройства {{count}} в паре с вашим сервером",
303
+ "copyToken": "Копировать токен",
304
+ "deviceName": "Имя устройства",
305
+ "deviceNamePlaceholder": "напр. iPhone 15",
306
+ "devicesConnected": "{{current}} устройств {{max}} подключено",
307
+ "disable": "Отключено",
308
+ "disableMobileAccess": "Отключить мобильный доступ",
309
+ "disableMobileAccessConfirm": "Это отключит все мобильные устройства и отменит все сеансы. Вы можете снова включить мобильный доступ позже.",
310
+ "done": "Готово",
311
+ "downloadOnAppStore": "Скачать на App Store",
312
+ "enableMobileAccess": "Включить мобильный доступ",
313
+ "enabling": "Включение...",
314
+ "expiresIn": "Истекает через {{time}}",
315
+ "externalUrlBanner": "Использование обратного прокси или удаленный доступ к нему? Установить",
316
+ "externalUrlBannerLink": "Внешний URL",
317
+ "externalUrlBannerSuffix": "чтобы мобильное приложение могло подключиться к серверу.",
318
+ "externalUrlRequired": "Внешний URL-адрес должен быть настроен в Общие настройки для подключения мобильных устройств.",
319
+ "failedToGenerateToken": "Не удалось сгенерировать токен",
320
+ "generateToken": "Сгенерировать токен пары",
321
+ "getOnGooglePlay": "Получить на Google Play",
322
+ "getTheApp": "Скачать приложение",
323
+ "getTheAppDesc": "Скачайте мобильное приложение Tracearr для iOS или Android",
324
+ "mobileAccessDisabled": "Мобильный доступ отключен",
325
+ "mobileAccessDisabledDesc": "Разрешить мобильный доступ к приложению Tracearr подключаться к серверу.",
326
+ "noDevices": "Устройства не подключены",
327
+ "oneTimePairToken": "Одноразовый токен пары",
328
+ "pairDevice": "Соединить устройство",
329
+ "pairNewDevice": "Соединить новое устройство",
330
+ "pairNewDeviceDesc": "Сканируйте QR-код с помощью мобильного приложения Tracearr или введите токен вручную.",
331
+ "pairYourDevice": "Соедините ваше устройство",
332
+ "pairYourDeviceDesc": "Сканируйте QR-код с помощью приложения Tracearr для подключения к серверу.",
333
+ "pendingTokens": "{{count}} в ожидании парных токенов",
334
+ "removeDevice": "Удалить устройство",
335
+ "removeDeviceConfirm": "Вы уверены, что хотите удалить {{deviceName}}? Это устройство будет необходимо снова подключиться, чтобы восстановить.",
336
+ "renameDevice": "Переименовать устройство",
337
+ "renameDeviceDesc": "Введите имя для идентификации этого устройства в списке.",
338
+ "revokeAll": "Отозвать все сессии",
339
+ "revokeAllConfirm": "Это отключит все мобильные устройства. Для повторного подключения им потребуется подключить снова.",
340
+ "revokeAllSessions": "Отозвать все",
341
+ "scanQrCode": "Scan QR Code",
342
+ "title": "Мобильное приложение",
343
+ "tokenExpires": "Токен истекает в {{time}}",
344
+ "tokenExpiryNote": "Этот токен истекает через 5 минут и может быть использован только один раз."
394
345
  },
395
- "ipWarning": {
396
- "message": "Кажется, все пользователи используют один и тот же IP адрес или локальный сетевой IP-адрес. Это может повлиять на логику, основанную на правилах для определения местоположения или IP-адресов.",
397
- "acknowledge": "Понятно"
346
+ "plex": {
347
+ "chooseServer": "Выберите Plex Media Server для мониторинга",
348
+ "selectServer": "Выбрать сервер",
349
+ "signInWithPlex": "Войти через Plex",
350
+ "signUpWithPlex": "Зарегистрироваться через Plex"
398
351
  },
399
- "backup": {
400
- "title": "Резервное копирование",
401
- "backToBackups": "Вернуться к резервным копиям",
402
- "description": "Резервное копирование и восстановление данных Tracearr",
403
- "createBackup": "Создать резервную копию",
404
- "creating": "Создание резервной копии...",
405
- "uploadBackup": "Загрузить резервную копию",
406
- "uploading": "Загрузка...",
407
- "databaseSize": "Текущий размер базы данных: {{size}}",
408
- "freeSpace": "Каталог резервных копий свободного места: {{size}}",
409
- "lowDiskSpace": "Низкое место на диске — резервные копии и восстановления требуют по крайней мере в два раза больше размера базы данных в свободное пространство.",
410
- "backupHistory": "История резервных копий",
411
- "noBackups": "Резервных копий пока нет. Создайте первую резервную копию выше.",
412
- "filename": "Имя файла",
413
- "size": "Размер",
414
- "date": "Дата",
415
- "type": "Тип",
416
- "version": "Версии",
417
- "actions": "Действия",
418
- "typeManual": "Ручной",
419
- "typeScheduled": "Запланированный",
420
- "typeUploaded": "Загружено",
421
- "restoreAction": "Восстановить",
422
- "deleteConfirmTitle": "Удалить резервную копию",
423
- "deleteConfirmDescription": "Вы уверены, что хотите удалить эту резервную копию? Это действие нельзя отменить.",
424
- "schedule": "Запланированные резервные копии",
425
- "scheduleType": "График",
426
- "scheduleDisabled": "Отключено",
427
- "scheduleDaily": "Ежедневно",
428
- "scheduleWeekly": "Еженедельно",
429
- "scheduleMonthly": "Ежемесячно",
430
- "scheduleTime": "Время ({{timezone}})",
431
- "scheduleDayOfWeek": "День недели",
432
- "scheduleDayOfMonth": "День месяца",
433
- "scheduleDayOfMonthHint": "В месяцах с меньшим количеством дней, резервная копия работает в последний день.",
434
- "retentionCount": "Сохранить последний",
435
- "retentionSuffix": "запланированные резервные копии",
436
- "daySun": "Воскресенье",
437
- "dayMon": "Понедельник",
438
- "dayTue": "Вторник",
439
- "dayWed": "Среда",
440
- "dayThu": "Четверг",
441
- "dayFri": "Пятница",
442
- "daySat": "Суббота",
443
- "restore": {
444
- "title": "Восстановить резервную копию",
445
- "selectedBackup": "Выбранная резервная копия",
446
- "databaseSize": "Размер базы данных",
447
- "sessions": "Сессии",
448
- "users": "Пользователи",
449
- "servers": "Серверы",
450
- "rules": "Правила",
451
- "libraryItems": "Элементы библиотеки",
452
- "tables": "Таблицы",
453
- "warning": "Восстановление заменит все существующие данные. Вам нужно будет заново войти в систему после завершения восстановления.",
454
- "confirmLabel": "Я понимаю, что это заменит все данные",
455
- "confirm": "Начать восстановление",
456
- "complete": "Восстановление успешно завершено. Страница будет обновлена в ближайшее время.",
457
- "failed": "Не удалось восстановить",
458
- "cannotRestore": "Для восстановления требуются права суперпользователя PostgreSQL. Пожалуйста, убедитесь, что пользователь базы данных имеет права суперпользователя и повторите попытку.",
459
- "pgVersionMismatch": "Резервная копия была создана на PostgreSQL {{backupVersion}} , но этот сервер запускает PostgreSQL {{serverVersion}}. Восстановление дампа с новой версии PostgreSQL не поддерживается.",
460
- "tsVersionMismatch": "Резервная копия была создана с TimescaleDB {{backupVersion}} , но этот сервер поддерживает только до TimescaleDB {{serverVersion}}."
352
+ "serverHealth": {
353
+ "multipleUnreachable": "Сервер {{count}} недоступен: {{serverNames}}",
354
+ "unreachable": "{{serverName}} недоступен"
355
+ },
356
+ "servers": {
357
+ "addServer": "Добавить сервер",
358
+ "addServerDialogDescOther": "Подключите сервер Jellyfin или Emby.",
359
+ "addServerDialogDescPlex": "Выберите Plex сервер из связанного аккаунта.",
360
+ "added": "Добавлено {{date}}",
361
+ "allFieldsRequired": "Все поля обязательны",
362
+ "allServersConnected": "Все серверы подключены",
363
+ "allServersConnectedDesc": "Все серверы этой учетной записи уже подключены.",
364
+ "apiKeyHelp": "Найдена в панели управления вашего медиа-сервера под API Keys или Расширенные настройки.",
365
+ "apiKeyHelpEmby": "Найти это в Emby Server → API Keys",
366
+ "apiKeyHelpJellyfin": "Найти это в панели управления Jellyfin → API Keys",
367
+ "apiKeyPlaceholder": "Введите ваш API ключ",
368
+ "checkingConnection": "Checking connection…",
369
+ "chooseAccount": "Выберите аккаунт...",
370
+ "connectServer": "Подключить сервер",
371
+ "connecting": "Подключение...",
372
+ "connectionFailed": "Не удалось подключиться",
373
+ "connectionSuccess": "Успешное подключение",
374
+ "description": "Управление подключенными приложениями Plex, Jellyfin, и Emby серверами",
375
+ "discoveringConnections": "Поиск соединений...",
376
+ "discoveringServers": "Поиск доступных серверов Plex...",
377
+ "editServer": "Изменить сервер",
378
+ "editServerDesc": "Обновить имя сервера или URL-адрес подключения.",
379
+ "loadingAccounts": "Загрузка связанных аккаунтов...",
380
+ "noPlexAccountsLinked": "Нет привязанных аккаунтов Plex",
381
+ "noPlexAccountsLinkedHint": "Привяжите аккаунт Plex выше, а затем вернитесь, чтобы добавить сервер.",
382
+ "noServersConnected": "Нет подключенных серверов",
383
+ "noServersConnectedHint": "Нажмите \"Add Server\", чтобы подключить сервер Jellyfin или Emby",
384
+ "plexAccount": "Аккаунт Plex",
385
+ "plexServerPlaceholder": "Мой Plex Сервер",
386
+ "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
387
+ "pluginUpdateAvailable": "Plugin update available",
388
+ "pluginVersion": "plugin v{{version}}",
389
+ "pollingMode": "Polling",
390
+ "posterSource": {
391
+ "automatic": "Automatic (most recent)",
392
+ "description": "When a title is on more than one server, use this server's poster. If it doesn't have one, we'll fall back to the most recently added copy.",
393
+ "emptyHint": "Add a server to choose a preferred poster source.",
394
+ "label": "Preferred Poster Source",
395
+ "title": "Poster Preferences",
396
+ "titleDesc": "Choose which server's poster is shown when a title exists on more than one server"
461
397
  },
462
- "toast": {
463
- "backupCreated": "Резервная копия успешно создана",
464
- "backupCreateFailed": "Не удалось создать резервную копию",
465
- "backupUploaded": "Резервная копия успешно загружена",
466
- "backupUploadFailed": "Не удалось загрузить резервную копию",
467
- "backupDeleted": "Резервная копия удалена",
468
- "backupDeleteFailed": "Не удалось удалить резервную копию",
469
- "restoreStarted": "Восстановление начато",
470
- "restoreStartFailed": "Не удалось начать восстановление",
471
- "scheduleSaved": "Расписание резервного копирования сохранено",
472
- "scheduleError": "Не удалось сохранить резервную копию расписания"
398
+ "realtimeActive": "Real-time updates active",
399
+ "realtimeDialog": {
400
+ "autoDetectNote": "Restart Jellyfin or Emby after installing the plugin; the restart is required. Tracearr itself needs no restart and picks the plugin up automatically.",
401
+ "close": "Close",
402
+ "copyUrl": "Copy URL",
403
+ "embyDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
404
+ "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
405
+ "embyUpdateDescription": "A newer plugin release is available. Download the latest release zip, replace the plugin DLL in your Emby plugins folder, and restart Emby.",
406
+ "issueBlocked": "The server reports the plugin as installed and active, but Tracearr gets a 404 from its endpoint. A reverse proxy blocking the path is the usual cause.",
407
+ "issueMalfunctioned": "The server reports the plugin failed to load. Updating the plugin or the media server usually clears this.",
408
+ "issueRestartRequired": "The plugin is installed, but the media server needs a restart before it activates.",
409
+ "jellyfinDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
410
+ "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
411
+ "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
412
+ "openReleases": "Open releases page",
413
+ "repositoryUrl": "Repository URL",
414
+ "title": "Enable real-time updates",
415
+ "updateTitle": "Update the Tracearr SSE plugin"
416
+ },
417
+ "realtimeError": "Real-time error",
418
+ "removeServer": "Удалить сервер",
419
+ "removeServerConfirm": "Вы уверены, что хотите удалить этот сервер? Все соответствующие данные сессии будут сохранены, но вы не сможете контролировать новые сеансы с этого сервера.",
420
+ "selectAccountHelp": "Выберите, с какой учетной записи Plex обнаружить серверы.",
421
+ "selectPlexAccount": "Выберите аккаунт Plex",
422
+ "serverColor": "Цвет сервера",
423
+ "serverColorDesc": "Используется для визуального атрибута в многосерверном режиме",
424
+ "serverName": "Имя сервера",
425
+ "serverNamePlaceholder": "Мой медиа сервер",
426
+ "serverType": "Тип сервера",
427
+ "serverUrl": "URL сервера",
428
+ "serverUrlHelp": "Прямой URL-адрес вашего Jellyfin или Emby сервера. Используйте IP:порт для лучшей надежности.",
429
+ "serverUrlHelpEmby": "URL-адрес, на котором доступен сервер Emby",
430
+ "serverUrlHelpJellyfin": "URL-адрес, на котором доступен ваш сервер Jellyfin",
431
+ "serverUrlPlaceholder": "http://192.168.1.100:8096",
432
+ "setupRealtime": "Set up real-time updates",
433
+ "syncInterval": "Интервал синхронизации",
434
+ "testConnection": "Проверить соединение",
435
+ "title": "Подключенные серверы",
436
+ "updateHint": "Или нажмите кнопку Обновить ниже, чтобы сохранить только изменение имени.",
437
+ "updating": "Обновление...",
438
+ "version": {
439
+ "installed": "Version {{version}}",
440
+ "upToDate": "up to date",
441
+ "updateAvailable": "update {{version}} available"
473
442
  }
443
+ },
444
+ "tabs": {
445
+ "accessControl": "Контроль доступа",
446
+ "advanced": "Расширенные",
447
+ "backup": "Резервное копирование",
448
+ "general": "Общие положения",
449
+ "import": "Импорт",
450
+ "jobs": "Задания",
451
+ "mobile": "Мобильное приложение",
452
+ "notifications": "Уведомления",
453
+ "servers": "Серверы",
454
+ "tailscale": "Хвостовая чешуя"
455
+ },
456
+ "tailscale": {
457
+ "authorize": "Авторизоваться в хвостовой шкале",
458
+ "awaitingAuth": "Ожидание подтверждения...",
459
+ "connected": "Tailscale подключен. Ваш экземпляр Tracearr доступен в портсете.",
460
+ "description": "Безопасный доступ к Tracearr в сети Tailscale без перенаправления портов.",
461
+ "disable": "Отключить хвостовую шкалу",
462
+ "disableConfirmDescription": "Это отключит Tracearr от вашего портсета. Вы можете снова включить без повторной авторизации.",
463
+ "disableConfirmTitle": "Отключить Tailscale?",
464
+ "disabledDescription": "Включите Tailscale для того, чтобы Tracearr использовал ваш частный адаптер. Пересылка портов или обратный прокси не требуется.",
465
+ "dnsName": "DNS Имя",
466
+ "enable": "Включить масштаб хвоста",
467
+ "exitNodeNone": "Нет",
468
+ "exitNodeOffline": "(оффлайн)",
469
+ "hideLogs": "Скрыть журналы",
470
+ "hostname": "Hostname",
471
+ "hostnameHint": "Необязательное настраиваемое имя для этого устройства только на ваш хвост. Только буквы, цифры и дефисы.",
472
+ "hostnameLabel": "Имя устройства",
473
+ "noLogs": "Нет доступных журналов.",
474
+ "notAvailable": "Бинарный файл Tailscale не найден. Эта функция доступна только при запуске официального образа Docker.",
475
+ "resetConfirmDescription": "Это отключит Tracearr от вашей сети и удалит идентификацию устройства. Вам нужно будет повторно авторизоваться, если вы включите его снова.",
476
+ "resetConfirmTitle": "Reset Tailscale?",
477
+ "showLogs": "Показать логи",
478
+ "starting": "Запуск тайл...",
479
+ "stopping": "Остановка хвостовой шкалы...",
480
+ "tailnetUrl": "URL",
481
+ "title": "VPN-чешуя",
482
+ "toast": {
483
+ "disableFailed": "Не удалось отключить Tailscale",
484
+ "disabled": "Шкала хвостовых тканей отключена.",
485
+ "enableFailed": "Не удалось включить Tailscale",
486
+ "exitNodeFailed": "Не удалось установить узел",
487
+ "exitNodeSet": "Узел выхода обновлен.",
488
+ "reset": "Хвостовая чешуя была сброшена.",
489
+ "resetFailed": "Не удалось сбросить Tailscale"
490
+ },
491
+ "unknownError": "Произошла неизвестная ошибка."
492
+ },
493
+ "title": "Настройки",
494
+ "update": {
495
+ "betaUpdate": "Бета обновление",
496
+ "newVersion": "Новая версия",
497
+ "pullInstructions": "После загрузки перезагрузите контейнер, чтобы применить обновление.",
498
+ "releaseNotes": "Примечания к выпуску",
499
+ "stableRelease": "Стабильный выпуск",
500
+ "title": "Доступно обновление",
501
+ "updateCommand": "Обновить команду",
502
+ "versionAvailable": "Доступно {{version}}"
474
503
  }
475
504
  }