@tracearr/translations 2.1.0-beta.7 → 2.1.0

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