@tracearr/translations 2.2.0-beta.3 → 2.2.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 (365) hide show
  1. package/dist/config.d.ts +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +2 -0
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/locales/af-ZA/common.json +313 -313
  6. package/dist/locales/af-ZA/mobile.json +138 -138
  7. package/dist/locales/af-ZA/nav.json +30 -30
  8. package/dist/locales/af-ZA/notifications.json +228 -228
  9. package/dist/locales/af-ZA/pages.json +1776 -1775
  10. package/dist/locales/af-ZA/settings.json +483 -483
  11. package/dist/locales/ar-SA/common.json +289 -289
  12. package/dist/locales/ar-SA/mobile.json +96 -96
  13. package/dist/locales/ar-SA/nav.json +8 -8
  14. package/dist/locales/ar-SA/notifications.json +227 -227
  15. package/dist/locales/ar-SA/pages.json +1779 -1778
  16. package/dist/locales/ar-SA/settings.json +452 -452
  17. package/dist/locales/ca-ES/common.json +286 -286
  18. package/dist/locales/ca-ES/mobile.json +125 -125
  19. package/dist/locales/ca-ES/nav.json +8 -8
  20. package/dist/locales/ca-ES/notifications.json +228 -228
  21. package/dist/locales/ca-ES/pages.json +1775 -1774
  22. package/dist/locales/ca-ES/settings.json +471 -471
  23. package/dist/locales/cs-CZ/common.json +284 -284
  24. package/dist/locales/cs-CZ/mobile.json +99 -99
  25. package/dist/locales/cs-CZ/nav.json +8 -8
  26. package/dist/locales/cs-CZ/notifications.json +226 -226
  27. package/dist/locales/cs-CZ/pages.json +1766 -1765
  28. package/dist/locales/cs-CZ/settings.json +451 -451
  29. package/dist/locales/da-DK/common.json +284 -284
  30. package/dist/locales/da-DK/mobile.json +99 -99
  31. package/dist/locales/da-DK/nav.json +9 -9
  32. package/dist/locales/da-DK/notifications.json +226 -226
  33. package/dist/locales/da-DK/pages.json +1775 -1774
  34. package/dist/locales/da-DK/settings.json +451 -451
  35. package/dist/locales/de-DE/common.json +285 -285
  36. package/dist/locales/de-DE/mobile.json +102 -102
  37. package/dist/locales/de-DE/nav.json +10 -10
  38. package/dist/locales/de-DE/notifications.json +226 -226
  39. package/dist/locales/de-DE/pages.json +1775 -1774
  40. package/dist/locales/de-DE/settings.json +451 -451
  41. package/dist/locales/el-GR/common.json +283 -283
  42. package/dist/locales/el-GR/mobile.json +97 -97
  43. package/dist/locales/el-GR/nav.json +8 -8
  44. package/dist/locales/el-GR/notifications.json +226 -226
  45. package/dist/locales/el-GR/pages.json +1781 -1780
  46. package/dist/locales/el-GR/settings.json +451 -451
  47. package/dist/locales/en/pages.json +2 -1
  48. package/dist/locales/en-US/common.json +280 -280
  49. package/dist/locales/en-US/nav.json +20 -20
  50. package/dist/locales/en-US/notifications.json +222 -222
  51. package/dist/locales/en-US/pages.json +1553 -1552
  52. package/dist/locales/en-US/settings.json +432 -432
  53. package/dist/locales/es-ES/common.json +283 -283
  54. package/dist/locales/es-ES/mobile.json +96 -96
  55. package/dist/locales/es-ES/nav.json +8 -8
  56. package/dist/locales/es-ES/notifications.json +226 -226
  57. package/dist/locales/es-ES/pages.json +1774 -1773
  58. package/dist/locales/es-ES/settings.json +451 -451
  59. package/dist/locales/fi-FI/common.json +284 -284
  60. package/dist/locales/fi-FI/mobile.json +97 -97
  61. package/dist/locales/fi-FI/nav.json +9 -9
  62. package/dist/locales/fi-FI/notifications.json +226 -226
  63. package/dist/locales/fi-FI/pages.json +1776 -1775
  64. package/dist/locales/fi-FI/settings.json +451 -451
  65. package/dist/locales/fr-FR/common.json +284 -284
  66. package/dist/locales/fr-FR/mobile.json +10 -10
  67. package/dist/locales/fr-FR/nav.json +11 -11
  68. package/dist/locales/fr-FR/notifications.json +226 -226
  69. package/dist/locales/fr-FR/pages.json +1762 -1761
  70. package/dist/locales/fr-FR/settings.json +452 -452
  71. package/dist/locales/he-IL/common.json +313 -313
  72. package/dist/locales/he-IL/mobile.json +138 -138
  73. package/dist/locales/he-IL/nav.json +30 -30
  74. package/dist/locales/he-IL/notifications.json +228 -228
  75. package/dist/locales/he-IL/pages.json +1796 -1795
  76. package/dist/locales/he-IL/settings.json +483 -483
  77. package/dist/locales/hu-HU/common.json +298 -298
  78. package/dist/locales/hu-HU/mobile.json +138 -138
  79. package/dist/locales/hu-HU/nav.json +30 -30
  80. package/dist/locales/hu-HU/notifications.json +228 -228
  81. package/dist/locales/hu-HU/pages.json +1792 -1791
  82. package/dist/locales/hu-HU/settings.json +482 -482
  83. package/dist/locales/it-IT/common.json +284 -284
  84. package/dist/locales/it-IT/mobile.json +101 -101
  85. package/dist/locales/it-IT/nav.json +10 -10
  86. package/dist/locales/it-IT/notifications.json +227 -227
  87. package/dist/locales/it-IT/pages.json +1779 -1778
  88. package/dist/locales/it-IT/settings.json +451 -451
  89. package/dist/locales/ja-JP/common.json +283 -283
  90. package/dist/locales/ja-JP/mobile.json +98 -98
  91. package/dist/locales/ja-JP/nav.json +9 -9
  92. package/dist/locales/ja-JP/notifications.json +226 -226
  93. package/dist/locales/ja-JP/pages.json +1779 -1778
  94. package/dist/locales/ja-JP/settings.json +451 -451
  95. package/dist/locales/ko-KR/common.json +313 -313
  96. package/dist/locales/ko-KR/mobile.json +138 -138
  97. package/dist/locales/ko-KR/nav.json +30 -30
  98. package/dist/locales/ko-KR/notifications.json +228 -228
  99. package/dist/locales/ko-KR/pages.json +1796 -1795
  100. package/dist/locales/ko-KR/settings.json +483 -483
  101. package/dist/locales/nl-NL/common.json +283 -283
  102. package/dist/locales/nl-NL/mobile.json +91 -91
  103. package/dist/locales/nl-NL/nav.json +10 -10
  104. package/dist/locales/nl-NL/notifications.json +226 -226
  105. package/dist/locales/nl-NL/pages.json +1768 -1767
  106. package/dist/locales/nl-NL/settings.json +444 -444
  107. package/dist/locales/no-NO/common.json +283 -283
  108. package/dist/locales/no-NO/mobile.json +96 -96
  109. package/dist/locales/no-NO/nav.json +8 -8
  110. package/dist/locales/no-NO/notifications.json +226 -226
  111. package/dist/locales/no-NO/pages.json +1778 -1777
  112. package/dist/locales/no-NO/settings.json +451 -451
  113. package/dist/locales/pl-PL/common.json +283 -283
  114. package/dist/locales/pl-PL/mobile.json +94 -94
  115. package/dist/locales/pl-PL/nav.json +8 -8
  116. package/dist/locales/pl-PL/notifications.json +226 -226
  117. package/dist/locales/pl-PL/pages.json +1778 -1777
  118. package/dist/locales/pl-PL/settings.json +451 -451
  119. package/dist/locales/pt-BR/common.json +286 -286
  120. package/dist/locales/pt-BR/mobile.json +138 -138
  121. package/dist/locales/pt-BR/nav.json +17 -17
  122. package/dist/locales/pt-BR/notifications.json +226 -226
  123. package/dist/locales/pt-BR/pages.json +1781 -1780
  124. package/dist/locales/pt-BR/settings.json +454 -454
  125. package/dist/locales/pt-PT/common.json +289 -289
  126. package/dist/locales/pt-PT/mobile.json +97 -97
  127. package/dist/locales/pt-PT/nav.json +9 -9
  128. package/dist/locales/pt-PT/notifications.json +226 -226
  129. package/dist/locales/pt-PT/pages.json +1780 -1779
  130. package/dist/locales/pt-PT/settings.json +452 -452
  131. package/dist/locales/ro-RO/common.json +283 -283
  132. package/dist/locales/ro-RO/mobile.json +98 -98
  133. package/dist/locales/ro-RO/nav.json +9 -9
  134. package/dist/locales/ro-RO/notifications.json +226 -226
  135. package/dist/locales/ro-RO/pages.json +1779 -1778
  136. package/dist/locales/ro-RO/settings.json +451 -451
  137. package/dist/locales/ru-RU/common.json +288 -288
  138. package/dist/locales/ru-RU/mobile.json +97 -97
  139. package/dist/locales/ru-RU/nav.json +8 -8
  140. package/dist/locales/ru-RU/notifications.json +226 -226
  141. package/dist/locales/ru-RU/pages.json +1781 -1780
  142. package/dist/locales/ru-RU/settings.json +451 -451
  143. package/dist/locales/sr-SP/common.json +313 -313
  144. package/dist/locales/sr-SP/mobile.json +138 -138
  145. package/dist/locales/sr-SP/nav.json +30 -30
  146. package/dist/locales/sr-SP/notifications.json +228 -228
  147. package/dist/locales/sr-SP/pages.json +1796 -1795
  148. package/dist/locales/sr-SP/settings.json +483 -483
  149. package/dist/locales/sv-SE/common.json +284 -284
  150. package/dist/locales/sv-SE/mobile.json +100 -100
  151. package/dist/locales/sv-SE/nav.json +9 -9
  152. package/dist/locales/sv-SE/notifications.json +226 -226
  153. package/dist/locales/sv-SE/pages.json +1777 -1776
  154. package/dist/locales/sv-SE/settings.json +451 -451
  155. package/dist/locales/tr-TR/common.json +313 -313
  156. package/dist/locales/tr-TR/mobile.json +138 -138
  157. package/dist/locales/tr-TR/nav.json +30 -30
  158. package/dist/locales/tr-TR/notifications.json +228 -228
  159. package/dist/locales/tr-TR/pages.json +1792 -1791
  160. package/dist/locales/tr-TR/settings.json +483 -483
  161. package/dist/locales/uk-UA/common.json +283 -283
  162. package/dist/locales/uk-UA/mobile.json +98 -98
  163. package/dist/locales/uk-UA/nav.json +8 -8
  164. package/dist/locales/uk-UA/notifications.json +226 -226
  165. package/dist/locales/uk-UA/pages.json +1779 -1778
  166. package/dist/locales/uk-UA/settings.json +451 -451
  167. package/dist/locales/vi-VN/common.json +313 -313
  168. package/dist/locales/vi-VN/mobile.json +138 -138
  169. package/dist/locales/vi-VN/nav.json +30 -30
  170. package/dist/locales/vi-VN/notifications.json +228 -228
  171. package/dist/locales/vi-VN/pages.json +1796 -1795
  172. package/dist/locales/vi-VN/settings.json +483 -483
  173. package/dist/locales/zh-CN/common.json +283 -283
  174. package/dist/locales/zh-CN/mobile.json +95 -95
  175. package/dist/locales/zh-CN/nav.json +8 -8
  176. package/dist/locales/zh-CN/notifications.json +226 -226
  177. package/dist/locales/zh-CN/pages.json +1778 -1777
  178. package/dist/locales/zh-CN/settings.json +451 -451
  179. package/dist/locales/zh-TW/common.json +293 -293
  180. package/dist/locales/zh-TW/mobile.json +137 -137
  181. package/dist/locales/zh-TW/nav.json +30 -30
  182. package/dist/locales/zh-TW/notifications.json +228 -228
  183. package/dist/locales/zh-TW/pages.json +1798 -1797
  184. package/dist/locales/zh-TW/settings.json +482 -482
  185. package/package.json +3 -2
  186. package/src/locales/af-ZA/common.json +313 -313
  187. package/src/locales/af-ZA/mobile.json +138 -138
  188. package/src/locales/af-ZA/nav.json +30 -30
  189. package/src/locales/af-ZA/notifications.json +228 -228
  190. package/src/locales/af-ZA/pages.json +1776 -1775
  191. package/src/locales/af-ZA/settings.json +483 -483
  192. package/src/locales/ar-SA/common.json +289 -289
  193. package/src/locales/ar-SA/mobile.json +96 -96
  194. package/src/locales/ar-SA/nav.json +8 -8
  195. package/src/locales/ar-SA/notifications.json +227 -227
  196. package/src/locales/ar-SA/pages.json +1779 -1778
  197. package/src/locales/ar-SA/settings.json +452 -452
  198. package/src/locales/ca-ES/common.json +286 -286
  199. package/src/locales/ca-ES/mobile.json +125 -125
  200. package/src/locales/ca-ES/nav.json +8 -8
  201. package/src/locales/ca-ES/notifications.json +228 -228
  202. package/src/locales/ca-ES/pages.json +1775 -1774
  203. package/src/locales/ca-ES/settings.json +471 -471
  204. package/src/locales/cs-CZ/common.json +284 -284
  205. package/src/locales/cs-CZ/mobile.json +99 -99
  206. package/src/locales/cs-CZ/nav.json +8 -8
  207. package/src/locales/cs-CZ/notifications.json +226 -226
  208. package/src/locales/cs-CZ/pages.json +1766 -1765
  209. package/src/locales/cs-CZ/settings.json +451 -451
  210. package/src/locales/da-DK/common.json +284 -284
  211. package/src/locales/da-DK/mobile.json +99 -99
  212. package/src/locales/da-DK/nav.json +9 -9
  213. package/src/locales/da-DK/notifications.json +226 -226
  214. package/src/locales/da-DK/pages.json +1775 -1774
  215. package/src/locales/da-DK/settings.json +451 -451
  216. package/src/locales/de-DE/common.json +285 -285
  217. package/src/locales/de-DE/mobile.json +102 -102
  218. package/src/locales/de-DE/nav.json +10 -10
  219. package/src/locales/de-DE/notifications.json +226 -226
  220. package/src/locales/de-DE/pages.json +1775 -1774
  221. package/src/locales/de-DE/settings.json +451 -451
  222. package/src/locales/el-GR/common.json +283 -283
  223. package/src/locales/el-GR/mobile.json +97 -97
  224. package/src/locales/el-GR/nav.json +8 -8
  225. package/src/locales/el-GR/notifications.json +226 -226
  226. package/src/locales/el-GR/pages.json +1781 -1780
  227. package/src/locales/el-GR/settings.json +451 -451
  228. package/src/locales/en/pages.json +2 -1
  229. package/src/locales/en-US/common.json +280 -280
  230. package/src/locales/en-US/nav.json +20 -20
  231. package/src/locales/en-US/notifications.json +222 -222
  232. package/src/locales/en-US/pages.json +1553 -1552
  233. package/src/locales/en-US/settings.json +432 -432
  234. package/src/locales/es-ES/common.json +283 -283
  235. package/src/locales/es-ES/mobile.json +96 -96
  236. package/src/locales/es-ES/nav.json +8 -8
  237. package/src/locales/es-ES/notifications.json +226 -226
  238. package/src/locales/es-ES/pages.json +1774 -1773
  239. package/src/locales/es-ES/settings.json +451 -451
  240. package/src/locales/fi-FI/common.json +284 -284
  241. package/src/locales/fi-FI/mobile.json +97 -97
  242. package/src/locales/fi-FI/nav.json +9 -9
  243. package/src/locales/fi-FI/notifications.json +226 -226
  244. package/src/locales/fi-FI/pages.json +1776 -1775
  245. package/src/locales/fi-FI/settings.json +451 -451
  246. package/src/locales/fr-FR/common.json +284 -284
  247. package/src/locales/fr-FR/mobile.json +10 -10
  248. package/src/locales/fr-FR/nav.json +11 -11
  249. package/src/locales/fr-FR/notifications.json +226 -226
  250. package/src/locales/fr-FR/pages.json +1762 -1761
  251. package/src/locales/fr-FR/settings.json +452 -452
  252. package/src/locales/he-IL/common.json +313 -313
  253. package/src/locales/he-IL/mobile.json +138 -138
  254. package/src/locales/he-IL/nav.json +30 -30
  255. package/src/locales/he-IL/notifications.json +228 -228
  256. package/src/locales/he-IL/pages.json +1796 -1795
  257. package/src/locales/he-IL/settings.json +483 -483
  258. package/src/locales/hu-HU/common.json +298 -298
  259. package/src/locales/hu-HU/mobile.json +138 -138
  260. package/src/locales/hu-HU/nav.json +30 -30
  261. package/src/locales/hu-HU/notifications.json +228 -228
  262. package/src/locales/hu-HU/pages.json +1792 -1791
  263. package/src/locales/hu-HU/settings.json +482 -482
  264. package/src/locales/it-IT/common.json +284 -284
  265. package/src/locales/it-IT/mobile.json +101 -101
  266. package/src/locales/it-IT/nav.json +10 -10
  267. package/src/locales/it-IT/notifications.json +227 -227
  268. package/src/locales/it-IT/pages.json +1779 -1778
  269. package/src/locales/it-IT/settings.json +451 -451
  270. package/src/locales/ja-JP/common.json +283 -283
  271. package/src/locales/ja-JP/mobile.json +98 -98
  272. package/src/locales/ja-JP/nav.json +9 -9
  273. package/src/locales/ja-JP/notifications.json +226 -226
  274. package/src/locales/ja-JP/pages.json +1779 -1778
  275. package/src/locales/ja-JP/settings.json +451 -451
  276. package/src/locales/ko-KR/common.json +313 -313
  277. package/src/locales/ko-KR/mobile.json +138 -138
  278. package/src/locales/ko-KR/nav.json +30 -30
  279. package/src/locales/ko-KR/notifications.json +228 -228
  280. package/src/locales/ko-KR/pages.json +1796 -1795
  281. package/src/locales/ko-KR/settings.json +483 -483
  282. package/src/locales/nl-NL/common.json +283 -283
  283. package/src/locales/nl-NL/mobile.json +91 -91
  284. package/src/locales/nl-NL/nav.json +10 -10
  285. package/src/locales/nl-NL/notifications.json +226 -226
  286. package/src/locales/nl-NL/pages.json +1768 -1767
  287. package/src/locales/nl-NL/settings.json +444 -444
  288. package/src/locales/no-NO/common.json +283 -283
  289. package/src/locales/no-NO/mobile.json +96 -96
  290. package/src/locales/no-NO/nav.json +8 -8
  291. package/src/locales/no-NO/notifications.json +226 -226
  292. package/src/locales/no-NO/pages.json +1778 -1777
  293. package/src/locales/no-NO/settings.json +451 -451
  294. package/src/locales/pl-PL/common.json +283 -283
  295. package/src/locales/pl-PL/mobile.json +94 -94
  296. package/src/locales/pl-PL/nav.json +8 -8
  297. package/src/locales/pl-PL/notifications.json +226 -226
  298. package/src/locales/pl-PL/pages.json +1778 -1777
  299. package/src/locales/pl-PL/settings.json +451 -451
  300. package/src/locales/pt-BR/common.json +286 -286
  301. package/src/locales/pt-BR/mobile.json +138 -138
  302. package/src/locales/pt-BR/nav.json +17 -17
  303. package/src/locales/pt-BR/notifications.json +226 -226
  304. package/src/locales/pt-BR/pages.json +1781 -1780
  305. package/src/locales/pt-BR/settings.json +454 -454
  306. package/src/locales/pt-PT/common.json +289 -289
  307. package/src/locales/pt-PT/mobile.json +97 -97
  308. package/src/locales/pt-PT/nav.json +9 -9
  309. package/src/locales/pt-PT/notifications.json +226 -226
  310. package/src/locales/pt-PT/pages.json +1780 -1779
  311. package/src/locales/pt-PT/settings.json +452 -452
  312. package/src/locales/ro-RO/common.json +283 -283
  313. package/src/locales/ro-RO/mobile.json +98 -98
  314. package/src/locales/ro-RO/nav.json +9 -9
  315. package/src/locales/ro-RO/notifications.json +226 -226
  316. package/src/locales/ro-RO/pages.json +1779 -1778
  317. package/src/locales/ro-RO/settings.json +451 -451
  318. package/src/locales/ru-RU/common.json +288 -288
  319. package/src/locales/ru-RU/mobile.json +97 -97
  320. package/src/locales/ru-RU/nav.json +8 -8
  321. package/src/locales/ru-RU/notifications.json +226 -226
  322. package/src/locales/ru-RU/pages.json +1781 -1780
  323. package/src/locales/ru-RU/settings.json +451 -451
  324. package/src/locales/sr-SP/common.json +313 -313
  325. package/src/locales/sr-SP/mobile.json +138 -138
  326. package/src/locales/sr-SP/nav.json +30 -30
  327. package/src/locales/sr-SP/notifications.json +228 -228
  328. package/src/locales/sr-SP/pages.json +1796 -1795
  329. package/src/locales/sr-SP/settings.json +483 -483
  330. package/src/locales/sv-SE/common.json +284 -284
  331. package/src/locales/sv-SE/mobile.json +100 -100
  332. package/src/locales/sv-SE/nav.json +9 -9
  333. package/src/locales/sv-SE/notifications.json +226 -226
  334. package/src/locales/sv-SE/pages.json +1777 -1776
  335. package/src/locales/sv-SE/settings.json +451 -451
  336. package/src/locales/tr-TR/common.json +313 -313
  337. package/src/locales/tr-TR/mobile.json +138 -138
  338. package/src/locales/tr-TR/nav.json +30 -30
  339. package/src/locales/tr-TR/notifications.json +228 -228
  340. package/src/locales/tr-TR/pages.json +1792 -1791
  341. package/src/locales/tr-TR/settings.json +483 -483
  342. package/src/locales/uk-UA/common.json +283 -283
  343. package/src/locales/uk-UA/mobile.json +98 -98
  344. package/src/locales/uk-UA/nav.json +8 -8
  345. package/src/locales/uk-UA/notifications.json +226 -226
  346. package/src/locales/uk-UA/pages.json +1779 -1778
  347. package/src/locales/uk-UA/settings.json +451 -451
  348. package/src/locales/vi-VN/common.json +313 -313
  349. package/src/locales/vi-VN/mobile.json +138 -138
  350. package/src/locales/vi-VN/nav.json +30 -30
  351. package/src/locales/vi-VN/notifications.json +228 -228
  352. package/src/locales/vi-VN/pages.json +1796 -1795
  353. package/src/locales/vi-VN/settings.json +483 -483
  354. package/src/locales/zh-CN/common.json +283 -283
  355. package/src/locales/zh-CN/mobile.json +95 -95
  356. package/src/locales/zh-CN/nav.json +8 -8
  357. package/src/locales/zh-CN/notifications.json +226 -226
  358. package/src/locales/zh-CN/pages.json +1778 -1777
  359. package/src/locales/zh-CN/settings.json +451 -451
  360. package/src/locales/zh-TW/common.json +293 -293
  361. package/src/locales/zh-TW/mobile.json +137 -137
  362. package/src/locales/zh-TW/nav.json +30 -30
  363. package/src/locales/zh-TW/notifications.json +228 -228
  364. package/src/locales/zh-TW/pages.json +1798 -1797
  365. package/src/locales/zh-TW/settings.json +482 -482
@@ -1,2058 +1,2059 @@
1
1
  {
2
+ "login": {
3
+ "title": "",
4
+ "tagline": "Tracearr - إدارة الوصول إلى البث",
5
+ "createAccountHeading": "أنشئ حسابك للبدء",
6
+ "signInHeading": "تسجيل الدخول إلى حسابك",
7
+ "createAccountDescription": "إنشاء حساب لإدارة خوادم الوسائط الخاصة بك",
8
+ "signInDescription": "قم بتسجيل الدخول للوصول إلى لوحة التحكم",
9
+ "selectPlexServer": "حدد خادم Plex الخاص بك",
10
+ "waitingForPlex": "في انتظار إذن Plex...",
11
+ "completeInPopup": "إكمال تسجيل الدخول في النافذة المنبثقة",
12
+ "reopenPlexLogin": "إعادة فتح Plex تسجيل الدخول",
13
+ "continueWith": "",
14
+ "usernameOrEmail": "",
15
+ "identifierPlaceholder": "",
16
+ "username": "",
17
+ "usernamePlaceholder": "",
18
+ "emailPlaceholder": "خاصتك @email.com",
19
+ "displayNamePlaceholder": "اختر اسم العرض",
20
+ "passwordPlaceholder": "8 أحرف على الأقل",
21
+ "yourPasswordPlaceholder": "كلمة المرور الخاصة بك",
22
+ "setupNote": "بعد إنشاء حسابك، ستضيف خوادم Plex أو Jellyfin من الإعدادات.",
23
+ "localDisabledHint": "",
24
+ "oidcError": "",
25
+ "accountCreated": "تم إنشاء الحساب بنجاح!",
26
+ "connectedTo": "متصل بـ {{name}}",
27
+ "plexAuthFailed": "فشل مصادقة Plex",
28
+ "plexStartFailed": "فشل في بدء تسجيل الدخول لـ Plex",
29
+ "serverConnectFailed": "فشل الاتصال بالخادم",
30
+ "signupFailed": "فشل التسجيل",
31
+ "createAccountFailed": "فشل في إنشاء الحساب",
32
+ "loginFailed": "فشل تسجيل الدخول",
33
+ "invalidCredentials": "البريد الإلكتروني أو كلمة المرور غير صالحة",
34
+ "claimCodeRequired": "يتطلب الإعداد لأول مرة رمز المطالبة",
35
+ "enterClaimCode": "أدخل رمز المطالبة",
36
+ "claimCodeDescription": "تحقق من سجلات الخادم الخاص بك للحصول على رمز المطالبة للمضي قدما في الإعداد",
37
+ "claimCodeLabel": "رمز المطالبة",
38
+ "claimCodeHint": "يتم طباعة رمز المطالبة في سجلات الخادم عند بدء تشغيل الحاوية",
39
+ "validateClaimCode": "",
40
+ "claimCodeSecurityNote": "هذا التدبير الأمني يضمن فقط للمستخدمين المصرح لهم بإكمال الإعداد لأول مرة"
41
+ },
42
+ "dashboard": {
43
+ "alerts": "التنبيهات",
44
+ "plays": "مشغلات",
45
+ "watchTime": "وقت المشاهدة",
46
+ "activeUsers": "المستخدمين النشطين",
47
+ "nowPlaying": "تشغيل الآن",
48
+ "streamLocations": "مواقع البث",
49
+ "serverResources": "موارد الخادم",
50
+ "bandwidth": "عرض التردد",
51
+ "noActiveStreams": "لا توجد تدفقات نشطة",
52
+ "streamsAppearHere": "ستظهر البث النشط هنا عندما يبدأ المستخدمون بمشاهدة"
53
+ },
54
+ "users": {
55
+ "title": "المستخدمون",
56
+ "showRemoved": "",
57
+ "noUsersFound": "لم يتم العثور على مستخدمين.",
58
+ "searchPlaceholder": "البحث عن المستخدمين...",
59
+ "selectAllUsers": "حدد جميع المستخدمين {{count}}",
60
+ "serversColumn": "",
61
+ "resetTrustScore": "إعادة تعيين نقاط الثقة",
62
+ "resetTrustScoreTitle_one": "إعادة تعيين درجة الثقة للمستخدم {{count}}",
63
+ "resetTrustScoreTitle_other": "إعادة تعيين درجة الثقة للمستخدمين {{count}}",
64
+ "resetTrustScoreConfirm": "هل أنت متأكد من أنك تريد إعادة تعيين نقاط الثقة إلى 100؟ لا يمكن التراجع عن هذا الإجراء.",
65
+ "mergeUsers": "",
66
+ "mergeDialogTitle": "",
67
+ "mergeDialogDescription": "",
68
+ "mergePickPrimary": "",
69
+ "mergePrimaryBadge": "",
70
+ "mergePrimaryForced": "",
71
+ "mergeSameServerWarningTitle": "",
72
+ "mergeSameServerDialogDescription": "",
73
+ "mergeSameServerWarning": "",
74
+ "mergeSameServerAcknowledge": "",
75
+ "mergeSameServerFallbackName": "",
76
+ "mergeServerAccountRemoved": "",
77
+ "mergeConfirm": "",
78
+ "mergeSelectTwo": "",
79
+ "mergeSameIdentity": "",
80
+ "mergeSelectAllActive": "",
81
+ "suggestionsTitle": "",
82
+ "suggestionsDescription": "",
83
+ "suggestionsReview": "",
84
+ "suggestionsMatchEmail": "",
85
+ "suggestionsMatchUsername": "",
86
+ "suggestionsError": "",
87
+ "filterHasAccessTo": "",
88
+ "filterHasAccessToPlaceholder": "",
89
+ "filterHasAccessToHint": ""
90
+ },
91
+ "userDetail": {
92
+ "backToUsers": "العودة إلى المستخدمين",
93
+ "userNotFound": "المستخدم غير موجود",
94
+ "userInfo": "معلومات المستخدم",
95
+ "statistics": "الإحصائيات",
96
+ "sessions": "الجلسات",
97
+ "violations": "المخالفات",
98
+ "terminationHistory": "تاريخ الإنهاء",
99
+ "noViolationsFound": "لا توجد انتهاكات لهذا المستخدم.",
100
+ "noTerminationsFound": "لا توجد إنهاءات بث لهذا المستخدم.",
101
+ "byRule": "بواسطة / قاعدة",
102
+ "manual": "دليل",
103
+ "unknownRule": "قاعدة غير معروفة",
104
+ "adjustTrustScore": "ضبط نقاط الثقة",
105
+ "linkedAccounts": "",
106
+ "splitAccount": "",
107
+ "splitConfirmTitle": "",
108
+ "splitConfirmDescription": "",
109
+ "splitConfirmLoading": "",
110
+ "acrossAllServers": "",
111
+ "overallTrust": "",
112
+ "serverScope": "",
113
+ "allServers": "",
114
+ "title": ""
115
+ },
116
+ "history": {
117
+ "title": "التاريخ",
118
+ "description": "تصفح جميع جلسات البث مع تصفية قوية",
119
+ "loadingMore": "تحميل المزيد...",
120
+ "scrollForMore": "التمرير للمزيد",
121
+ "showingAllResults": "عرض جميع النتائج {{total}}",
122
+ "deleteSession_one": "حذف جلسة {{count}}",
123
+ "deleteSession_other": "حذف جلسه {{count}}",
124
+ "deleteSessionsConfirm": "هل أنت متأكد من أنك تريد الحذف؟ لا يمكن التراجع عن هذا الإجراء."
125
+ },
126
+ "library": {
127
+ "title": "المكتبة",
128
+ "description": "أفضل الأفلام والعروض على الخادم الخاص بك",
129
+ "topMovies": "أفضل الأفلام",
130
+ "topShows": "أفضل المسلسلات التلفزيونية",
131
+ "noMoviePlays": "لا يوجد أفلام مشغلة في هذه الفترة",
132
+ "noShowPlays": "لا يوجد مسلسل تلفزيوني في هذه الفترة",
133
+ "overview": {
134
+ "description": "مقاييس صحة المكتبة ونموها",
135
+ "lastUpdated": "آخر تحديث:",
136
+ "totalItems": "مجموع العناصر",
137
+ "shows": "مسلسل",
138
+ "added": "أضيف",
139
+ "libraryGrowth": "نمو المكتبة",
140
+ "failedToLoad": "فشل تحميل إحصائيات المكتبة",
141
+ "failedToLoadDesc": "تعذر جلب بيانات المكتبة. الرجاء المحاولة مرة أخرى.",
142
+ "thisPeriod": "هذه الفترة",
143
+ "thisWeek": "هذا الأسبوع",
144
+ "thisMonth": "هذا الشهر",
145
+ "thisYear": "هذا العام",
146
+ "serversNeedSync": ""
147
+ },
148
+ "quality": {
149
+ "title": "الجودة",
150
+ "description": "الدقة وتوزيع الكود البرمجي",
151
+ "qualityEvolution": "تطور الجودة",
152
+ "all": "الكل",
153
+ "failedToLoad": "فشل تحميل بيانات الجودة",
154
+ "failedToLoadDesc": "تعذر جلب بيانات الجودة. الرجاء المحاولة مرة أخرى."
155
+ },
156
+ "storage": {
157
+ "title": "التخزين",
158
+ "description": "استخدام التخزين، والتنبؤات، والتحسين",
159
+ "totalStorage": "إجمالي التخزين",
160
+ "growthRate": "معدل النمو",
161
+ "duplicates": "التكرارات",
162
+ "groups": "المجموعات",
163
+ "recoverable": "يمكن الاسترداد",
164
+ "staleContent": "محتوى عادي",
165
+ "staleContentDesc": "المحتوى الذي قد يكون مرشحاً للإزالة",
166
+ "items": "العناصر",
167
+ "unused": "غير مستعمل",
168
+ "storageTrend": "اتجاه التخزين",
169
+ "confidence": "الثقة",
170
+ "confidenceHigh": "مرتفع",
171
+ "confidenceMedium": "متوسط",
172
+ "confidenceLow": "منخفض",
173
+ "zeroGrowth": "",
174
+ "predictions": "التنبؤات",
175
+ "contentROI": "",
176
+ "contentROIDesc": "قيمة المشاهدة لكل تكلفة تخزين",
177
+ "avgHoursPerGB": "متوسط الساعات/غيغابايت",
178
+ "insufficientData": "بيانات غير كافية",
179
+ "of": "من",
180
+ "days": "أيام",
181
+ "failedToLoad": "فشل تحميل بيانات التخزين",
182
+ "failedToLoadDesc": "تعذر جلب بيانات التخزين. الرجاء المحاولة مرة أخرى.",
183
+ "duplicatesTitle": "",
184
+ "duplicatesSubtitle": "",
185
+ "growthPreChangeover": "",
186
+ "loadingDuplicates": "",
187
+ "duplicatesFailed": "",
188
+ "noDuplicatesTitle": "",
189
+ "noDuplicatesDesc": "",
190
+ "colTitle": "",
191
+ "colMatchType": "",
192
+ "colCopies": "",
193
+ "colRecoverable": "",
194
+ "sameServer": "",
195
+ "mirror": ""
196
+ },
197
+ "watch": {
198
+ "title": "تحليلات المشاهدة",
199
+ "description": "عرض السلوك وإشراك المحتوى",
200
+ "watched": "مشاهدة",
201
+ "percentWatched": "% مشاهدة",
202
+ "totalWatchTime": "مجموع وقت المشاهدة",
203
+ "avgPerItem": "متوسط لكل عنصر",
204
+ "completed": "مكتمل",
205
+ "peakHour": "ساعة الذروة",
206
+ "viewingHours": "عرض الساعات",
207
+ "peak": "ذروة:",
208
+ "monthlyTrends": "الاتجاهات الشهرية",
209
+ "busiest": "مشغول:",
210
+ "quietest": "هادئ:",
211
+ "bingeHighlights": "أضواء Binge",
212
+ "bingeHighlightsDesc": "يظهر مع أنماط العرض الأكثر كثافة",
213
+ "bingeSessions": "جلسات باينج",
214
+ "noData": "لا توجد بيانات مشاهدة بعد",
215
+ "noDataDesc": "سوف تظهر تحليلات المشاهدة هنا بمجرد تشغيل المحتوى. تحقق مرة أخرى بعد بعض نشاط المشاهدة.",
216
+ "failedToLoad": "فشل تحميل تحليلات الساعة",
217
+ "failedToLoadDesc": "لا يمكن جلب بيانات الساعة."
218
+ },
219
+ "emptyState": {
220
+ "checkingStatus": "",
221
+ "backfillAvailable": {
222
+ "title": "",
223
+ "bodyWithDays": "",
224
+ "bodyGeneric": "",
225
+ "syncRunningTitle": "",
226
+ "syncRunningBody": ""
227
+ },
228
+ "generateHistory": "",
229
+ "starting": "",
230
+ "syncInProgress": {
231
+ "title": "",
232
+ "body": ""
233
+ },
234
+ "notSynced": {
235
+ "title": "",
236
+ "body": ""
237
+ },
238
+ "noMedia": {
239
+ "title": "",
240
+ "body": ""
241
+ },
242
+ "syncNow": "",
243
+ "syncing": "",
244
+ "notSyncedShort": "",
245
+ "backfillRunning": {
246
+ "title": "",
247
+ "fallbackBody": "",
248
+ "progress": "",
249
+ "snapshotsSuffix": ""
250
+ },
251
+ "multiServer": {
252
+ "title": "",
253
+ "body": "",
254
+ "needsBackfillIntro": ""
255
+ },
256
+ "toast": {
257
+ "noServerSelected": "",
258
+ "syncStartedTitle": "",
259
+ "syncStartedDesc": "",
260
+ "syncFailedTitle": "",
261
+ "genericRetry": "",
262
+ "backfillStartedTitle": "",
263
+ "backfillStartedDesc": "",
264
+ "backfillFailedTitle": "",
265
+ "backfillCompleteTitle": "",
266
+ "backfillErrorTitle": ""
267
+ }
268
+ },
269
+ "versionsBackfill": {
270
+ "banner": "",
271
+ "action": "",
272
+ "syncFailed": "",
273
+ "syncStarted": ""
274
+ }
275
+ },
2
276
  "activity": {
3
- "activityByDayOfWeek": "النشاط حسب يوم الأسبوع",
4
- "activityByHourOfDay": "نشاط ساعة من اليوم",
5
- "concurrentStreams": "البث المتزامن",
277
+ "title": "النشاط",
6
278
  "description": "تشغيل الاتجاهات، الأنماط، وسلوك البث",
279
+ "playsOverTime": "تشغيل عبر الوقت",
280
+ "concurrentStreams": "البث المتزامن",
7
281
  "engagementBreakdown": "توزيع المشاركة",
8
282
  "howUsersEngage": "كيفية مشاركة المستخدمين مع المحتوى",
9
- "platforms": "المنصات",
10
- "playsOverTime": "تشغيل عبر الوقت",
11
283
  "playsVsSessions": "اللعب ضد الجلسات",
12
284
  "playsVsSessionsDesc": "إكمال كامل فقط — يعد مسرحية عندما يغطي مجموع وقت ساعة تشغيل المحتوى كامل وقت تشغيله",
13
- "streamQuality": "جودة البث",
14
- "title": "النشاط"
285
+ "activityByDayOfWeek": "النشاط حسب يوم الأسبوع",
286
+ "activityByHourOfDay": "نشاط ساعة من اليوم",
287
+ "platforms": "المنصات",
288
+ "streamQuality": "جودة البث"
15
289
  },
16
- "apiDocs": {
17
- "apiKeyAutoLoaded": "مفتاح API التحميل التلقائي",
18
- "backToSettings": "العودة إلى الإعدادات",
19
- "noApiKey": "لم يتم إنشاء مفتاح API - إنشاء واحد في الإعدادات لاختبار نقاط النهاية",
20
- "specLoadError": "Failed to load the API specification. Check your API key and try again.",
21
- "versionSwitcherLabel": "API documentation version",
22
- "versionV1": "API v1",
23
- "versionV2": "API v2"
290
+ "violations": {
291
+ "title": "المخالفات",
292
+ "tryAdjustingFilters": "حاول ضبط الفلاتر الخاصة بك",
293
+ "selectAllViolations": "حدد جميع الخروقات {{count}} المطابقة للفلاتر",
294
+ "dismissViolation": "نبذ الانتهاك",
295
+ "dismissViolationConfirm": "هل أنت متأكد من أنك تريد رفض هذا الانتهاك؟ سيؤدي هذا إلى إزالته من سجل الانتهاكات بشكل دائم.",
296
+ "dismissViolation_one": "رفض انتهاك {{count}}",
297
+ "dismissViolation_other": "تجاهل الانتهاكات {{count}}",
298
+ "dismissViolationsConfirm": "هل أنت متأكد من رغبتك في الرفض؟ سيؤدي هذا إلى إزالتهم من سجل الانتهاكات بشكل دائم واستعادة نقاط الثقة المرتبطة بها.",
299
+ "noViolationsFound": "لم يتم العثور على أي انتهاكات",
300
+ "noViolationsRecorded": "ولم تسجل أي انتهاكات حتى الآن.",
301
+ "allSeverities": "جميع الجوانب",
302
+ "allStatuses": "جميع الحالات",
303
+ "allRules": "",
304
+ "filterPeople": "",
305
+ "allPeople": "",
306
+ "peopleSelectedCount": "",
307
+ "personFilterPlaceholder": "",
308
+ "personFilterEmpty": "",
309
+ "personFilterError": "",
310
+ "filterByPerson": "",
311
+ "detail": {
312
+ "notFound": "لم يتم العثور على انتهاك",
313
+ "violationDetails": "تفاصيل الانتهاك",
314
+ "userInfo": "المستخدم",
315
+ "sessions": "الجلسات",
316
+ "noSessions": "لا توجد جلسات مرتبطة بهذا الانتهاك",
317
+ "trigger": "المشغل",
318
+ "map": "مواقع الجلسة",
319
+ "actions": "الإجراءات المتخذة",
320
+ "timestamps": "الطوابع الزمنية",
321
+ "created": "أنشئ",
322
+ "acknowledged": "معترف به",
323
+ "detected": "اكتشف",
324
+ "inactivity": "تفاصيل عدم النشاط",
325
+ "daysInactive": "الأيام غير النشطة",
326
+ "threshold": "عتبة",
327
+ "lastActivity": "آخر نشاط",
328
+ "neverActive": "لا تنشط أبدا",
329
+ "conditionEvidence": "دليل الحالة",
330
+ "conditionGroup": "مجموعة الشروط {{index}}",
331
+ "matched": "{{matched}}/{{total}} مطابقة",
332
+ "actual": "فعلي",
333
+ "relatedSessions": "",
334
+ "relatedSessions_one": "",
335
+ "relatedSessions_other": ""
336
+ }
24
337
  },
25
338
  "automations": {
26
339
  "actions": {
27
- "kill_stream": {
28
- "description": "Terminate the active stream",
340
+ "send": {
341
+ "label": "",
342
+ "description": "",
29
343
  "fields": {
30
344
  "cooldown_minutes": {
31
- "description": "Minimum time between terminations for the same user"
32
- },
33
- "delay_seconds": {
34
- "description": "Waits this many seconds, then kills the stream only if the automation still matches. 0 kills right after a final re-check.",
35
- "label": "Sustain window"
36
- },
37
- "message": {
38
- "placeholder": "Optional message"
39
- },
40
- "target": {
41
- "description": "Which sessions to terminate"
345
+ "description": ""
42
346
  }
43
347
  },
44
- "label": "Kill Stream",
45
- "ran": "Stopped the stream"
348
+ "ran": ""
46
349
  },
47
- "message_client": {
48
- "description": "Send a message to the media player",
350
+ "trust": {
351
+ "label": "",
352
+ "description": "",
49
353
  "fields": {
50
- "message": {
51
- "placeholder": "Message to display…"
354
+ "mode": {
355
+ "label": ""
52
356
  },
53
- "target": {
54
- "description": "Which sessions to message"
357
+ "amount": {
358
+ "label": "",
359
+ "description": ""
360
+ },
361
+ "value": {
362
+ "label": ""
55
363
  }
56
364
  },
57
- "hint": "Jellyfin and Emby only. Plex only supports messages when killing a stream.",
58
- "label": "Message Client",
59
- "ran": "Put a message on the player"
365
+ "ran": ""
60
366
  },
61
- "send": {
62
- "description": "Send to one or more destinations",
367
+ "kill_stream": {
368
+ "label": "",
369
+ "description": "",
63
370
  "fields": {
64
371
  "cooldown_minutes": {
65
- "description": "Minimum time between notifications"
372
+ "description": ""
373
+ },
374
+ "delay_seconds": {
375
+ "label": "",
376
+ "description": ""
377
+ },
378
+ "target": {
379
+ "description": ""
380
+ },
381
+ "message": {
382
+ "placeholder": ""
66
383
  }
67
384
  },
68
- "label": "Send Notification",
69
- "ran": "Sent a notification"
385
+ "ran": ""
70
386
  },
71
- "trust": {
72
- "description": "Adjust, set, or reset the trust score",
387
+ "message_client": {
388
+ "label": "",
389
+ "description": "",
390
+ "hint": "",
73
391
  "fields": {
74
- "amount": {
75
- "description": "Positive to increase, negative to decrease",
76
- "label": "Amount"
77
- },
78
- "mode": {
79
- "label": "Mode"
392
+ "target": {
393
+ "description": ""
80
394
  },
81
- "value": {
82
- "label": "Value"
395
+ "message": {
396
+ "placeholder": ""
83
397
  }
84
398
  },
85
- "label": "Trust Score",
86
- "ran": "Changed the trust score"
399
+ "ran": ""
87
400
  }
88
401
  },
89
402
  "activity": {
90
- "branch": {
91
- "else": "Took the second branch",
92
- "then": "Took the first branch"
93
- },
94
- "description": "What this automation did, newest first. Runs are kept for {{days}} days.",
95
- "empty": "No runs yet",
96
- "emptyDescription": "Runs are listed here once a trigger matches.",
97
- "finished": "Finished",
98
- "from": "From",
99
- "group": "Group {{number}}",
100
- "noSummary": "No notes",
101
- "openInEditor": "Open in the builder with this run",
102
- "outcome": "Outcome",
403
+ "title": "",
404
+ "description": "",
405
+ "outcome": "",
406
+ "who": "",
407
+ "where": "",
408
+ "playing": "",
409
+ "from": "",
410
+ "summary": "",
411
+ "started": "",
412
+ "finished": "",
413
+ "noSummary": "",
103
414
  "outcomes": {
104
- "completed": "Ran",
105
- "error": "Failed",
106
- "stopped_by_condition": "No match"
107
- },
108
- "playing": "Playing",
109
- "runLoading": "Loading the run",
110
- "runTitle": "Run",
111
- "started": "Started",
112
- "summary": "Summary",
415
+ "completed": "",
416
+ "stopped_by_condition": "",
417
+ "error": ""
418
+ },
419
+ "empty": "",
420
+ "emptyDescription": "",
421
+ "runTitle": "",
422
+ "runLoading": "",
423
+ "triggeredBy": "",
424
+ "unknownStep": "",
113
425
  "tabs": {
114
- "all": "All",
115
- "completed": "Ran",
116
- "error": "Failed",
117
- "stopped_by_condition": "No match"
118
- },
119
- "tabsLabel": "Filter by outcome",
120
- "title": "Activity",
121
- "triggeredBy": "Triggered by {{trigger}}",
122
- "unknownStep": "Unrecognized step",
123
- "where": "Where",
124
- "who": "Who",
125
- "whyBranch": "What it read",
126
- "emptyRan": "Nothing has matched yet",
127
- "emptyRanDescription_one": "{{count}} check ran and did not match.",
128
- "emptyRanDescription_other": "{{count}} checks ran and did not match.",
129
- "item": "Item",
130
- "recordedViolation": "Recorded a violation"
426
+ "all": "",
427
+ "completed": "",
428
+ "stopped_by_condition": "",
429
+ "error": ""
430
+ },
431
+ "group": "",
432
+ "branch": {
433
+ "then": "",
434
+ "else": ""
435
+ },
436
+ "whyBranch": "",
437
+ "openInEditor": "",
438
+ "tabsLabel": "",
439
+ "emptyRan": "",
440
+ "emptyRanDescription_one": "",
441
+ "emptyRanDescription_other": "",
442
+ "item": "",
443
+ "recordedViolation": ""
131
444
  },
132
- "allKinds": "All kinds",
133
- "allStatuses": "All statuses",
134
- "allSeverities": "All severities",
445
+ "allKinds": "",
446
+ "allStatuses": "",
447
+ "allSeverities": "",
135
448
  "bind": {
136
- "accountLabel": "Which account",
137
- "activeLabel": "Turn it on now",
138
- "anyServer": "Any server",
139
- "back": "Back",
140
- "created": "{{name}} is set up and running.",
141
- "createdOff": "{{name}} was created and is off. Turn it on from the list.",
142
- "customize": "Open in the builder",
143
- "destinationsLabel": "Send to",
449
+ "nameHelper": "",
450
+ "namePlaceholder": "",
451
+ "activeLabel": "",
452
+ "back": "",
453
+ "submit": "",
454
+ "submitting": "",
455
+ "customize": "",
144
456
  "doors": {
145
- "helper": "Use this keeps the steps as they are; the answers above can change later. Open in the builder makes every step editable and ends the link to the ready-made automation."
457
+ "helper": ""
458
+ },
459
+ "anyServer": "",
460
+ "serverHelper": "",
461
+ "serverLabel": "",
462
+ "accountLabel": "",
463
+ "personLabel": "",
464
+ "destinationsLabel": "",
465
+ "required": "",
466
+ "needs": {
467
+ "title": ""
146
468
  },
147
- "failed": "Couldn't set that up. Try again.",
148
469
  "helper": {
149
- "clientMessage": "Shown on the player while it keeps playing.",
150
- "killMessage": "Shown on the player when the stream stops."
470
+ "killMessage": "",
471
+ "clientMessage": ""
151
472
  },
152
- "nameHelper": "The name in the automations list.",
153
- "namePlaceholder": "A name for this automation",
154
- "needs": {
155
- "title": "What it needs"
156
- },
157
- "noInputs": "Nothing to fill in.",
158
- "personLabel": "Which person",
159
- "required": "Pick at least one.",
160
- "serverHelper": "Any server means all of them.",
161
- "serverLabel": "Which server",
162
- "submit": "Use this",
163
- "submitting": "Setting it up…"
473
+ "noInputs": "",
474
+ "failed": "",
475
+ "created": "",
476
+ "createdOff": ""
164
477
  },
165
478
  "builder": {
166
- "actions": {
167
- "add": "Add action",
168
- "addBranch": "Add action",
169
- "branchElse": "Otherwise…",
170
- "branchElseEmpty": "Nothing. The automation carries on.",
171
- "branchName": "this branch",
172
- "branchThen": "then",
173
- "collapseBranch": "Hide this branch's steps",
174
- "confirmRemoveDescription": "Stops happening on save.",
175
- "confirmRemoveTitle": "Remove this action?",
176
- "emptyAction": "Choose what happens",
177
- "emptyDescription": "Send a notification, stop the stream, change a trust score, or run steps only when an extra check passes.",
178
- "emptyTitle": "What should happen?",
179
- "expandBranch": "Show this branch's steps",
180
- "helper": "These run in order, top to bottom.",
181
- "ifAddCheck": "Add another check",
182
- "ifNothing": "nothing yet",
183
- "ifTitle": "If…",
184
- "menu": "More for {{name}}",
185
- "moveDown": "Move {{name}} down",
186
- "moveUp": "Move {{name}} up",
187
- "policyNote": "A branch does not decide whether this is flagged; the And only if… section does.",
188
- "sectionTitle": "Do this…"
189
- },
190
- "activeLabel": "Active",
191
- "clearSelection": "Clear selection",
192
- "conditions": {
193
- "addAnother": "Add another condition",
194
- "addFirst": "Add a condition",
195
- "addGroup": "Add AND condition group",
196
- "all": "all of these",
197
- "allCountries": "All countries",
198
- "allDeviceTypes": "All device types",
199
- "allHint": "and: every check has to pass",
200
- "any": "any of these",
201
- "anyHint": "or: any one check is enough",
202
- "canNeverPass": "This can never pass. The trigger already fires at {{threshold}}.",
203
- "deviceTypesHint": "Counts only streams from the selected device types. Empty means every device.",
204
- "emptyLine": "No extra checks. This runs every time.",
205
- "fieldLabel": "Condition",
206
- "fieldPlaceholder": "Select field",
207
- "groupSeparator": "and also",
208
- "helper": "Checks that must pass first. Empty means it runs every time.",
209
- "matchLabel": "How these conditions combine",
210
- "no": "No",
211
- "noFields": "No checks are available for these triggers. Add a stream or account trigger first.",
212
- "operatorLabel": "Comparison",
213
- "optional": "optional",
214
- "recentlySeen": "Recently seen",
215
- "removeGroup": "Remove this set of checks",
216
- "sectionTitle": "Only when…",
217
- "uniqueDevices": "Unique devices",
218
- "uniqueDevicesHint": "Counts only sessions from different physical devices.",
219
- "uniqueIps": "Unique IPs",
220
- "uniqueIpsHint": "Counts only sessions from different IP addresses, so same-household streams are not counted.",
221
- "valueLabel": "Value",
222
- "windowPrefix": "in",
223
- "windowUnit": "hrs",
224
- "yes": "Yes"
225
- },
226
- "destinationDisabled": "Disabled destination",
479
+ "destinationDisabled": "",
480
+ "noDestinations": "",
481
+ "newDestination": "",
227
482
  "errors": {
228
- "actionUnavailable": "These triggers do not supply what this action needs",
229
- "daysRange": "Between {{min}} and {{max}} days",
230
- "fieldNotAvailableFor": "Not available for: {{triggers}}",
231
- "fieldUnavailable": "This check is not available for every trigger here",
232
- "measureInvalid": "Pick how the minutes are counted",
233
- "messageRequired": "Type the message to show",
234
- "minutesRange": "Between {{min}} and {{max}} minutes",
235
- "nameRequired": "Automation name is required",
236
- "operatorInvalid": "This comparison does not fit the condition",
237
- "policyNeedsSubject": "A policy needs a stream or account trigger: violations are about a person",
238
- "scopeIncomplete": "Pick a target for the selected scope",
239
- "sendNeedsDestination": "Pick at least one destination",
240
- "tooLong": "At most {{max}} characters",
241
- "triggerRequired": "Add what starts this, or switch one back on",
242
- "trustAmountRange": "Trust changes by between -100 and 100 points",
243
- "trustValueRange": "Trust score is between 0 and 100",
244
- "valueInvalid": "This value does not fit the condition",
245
- "variableUnavailable": "The message names something not every trigger here supplies"
483
+ "sendNeedsDestination": "",
484
+ "nameRequired": "",
485
+ "scopeIncomplete": "",
486
+ "triggerRequired": "",
487
+ "policyNeedsSubject": "",
488
+ "fieldUnavailable": "",
489
+ "operatorInvalid": "",
490
+ "valueInvalid": "",
491
+ "actionUnavailable": "",
492
+ "variableUnavailable": "",
493
+ "minutesRange": "",
494
+ "daysRange": "",
495
+ "measureInvalid": "",
496
+ "fieldNotAvailableFor": "",
497
+ "trustAmountRange": "",
498
+ "trustValueRange": "",
499
+ "messageRequired": "",
500
+ "tooLong": ""
246
501
  },
247
- "footer": {
248
- "problems_one": "{{count}} problem",
249
- "problems_other": "{{count}} problems",
250
- "ready": "Ready to save",
251
- "remaining_one": "{{count}} left to finish",
252
- "remaining_other": "{{count}} left to finish",
253
- "search": "to search"
502
+ "recordAs": {
503
+ "label": "",
504
+ "policy": "",
505
+ "policyDescription": "",
506
+ "notification": "",
507
+ "notificationDescription": ""
508
+ },
509
+ "severityLabel": "",
510
+ "activeLabel": "",
511
+ "saving": "",
512
+ "selectPlaceholder": "",
513
+ "searchPlaceholder": "",
514
+ "noMatches": "",
515
+ "clearSelection": "",
516
+ "selectedCount": "",
517
+ "scope": {
518
+ "label": "",
519
+ "global": "",
520
+ "server": "",
521
+ "account": "",
522
+ "person": "",
523
+ "serverLabel": "",
524
+ "serverPlaceholder": "",
525
+ "accountLabel": "",
526
+ "accountPlaceholder": "",
527
+ "personLabel": "",
528
+ "personPlaceholder": "",
529
+ "personHelper": "",
530
+ "noServers": "",
531
+ "enforceAcrossServers": "",
532
+ "enforceAcrossServersDescription": ""
533
+ },
534
+ "conditions": {
535
+ "addGroup": "",
536
+ "fieldPlaceholder": "",
537
+ "windowPrefix": "",
538
+ "windowUnit": "",
539
+ "uniqueDevices": "",
540
+ "uniqueDevicesHint": "",
541
+ "uniqueIps": "",
542
+ "uniqueIpsHint": "",
543
+ "allDeviceTypes": "",
544
+ "deviceTypesHint": "",
545
+ "yes": "",
546
+ "no": "",
547
+ "recentlySeen": "",
548
+ "allCountries": "",
549
+ "sectionTitle": "",
550
+ "optional": "",
551
+ "helper": "",
552
+ "emptyLine": "",
553
+ "all": "",
554
+ "any": "",
555
+ "allHint": "",
556
+ "anyHint": "",
557
+ "matchLabel": "",
558
+ "fieldLabel": "",
559
+ "operatorLabel": "",
560
+ "valueLabel": "",
561
+ "canNeverPass": "",
562
+ "noFields": "",
563
+ "groupSeparator": "",
564
+ "addAnother": "",
565
+ "addFirst": "",
566
+ "removeGroup": ""
567
+ },
568
+ "actions": {
569
+ "add": "",
570
+ "sectionTitle": "",
571
+ "ifTitle": "",
572
+ "helper": "",
573
+ "emptyTitle": "",
574
+ "emptyDescription": "",
575
+ "emptyAction": "",
576
+ "moveUp": "",
577
+ "moveDown": "",
578
+ "menu": "",
579
+ "branchName": "",
580
+ "confirmRemoveTitle": "",
581
+ "confirmRemoveDescription": "",
582
+ "policyNote": "",
583
+ "branchThen": "",
584
+ "branchElse": "",
585
+ "branchElseEmpty": "",
586
+ "ifNothing": "",
587
+ "ifAddCheck": "",
588
+ "addBranch": "",
589
+ "expandBranch": "",
590
+ "collapseBranch": ""
591
+ },
592
+ "when": {
593
+ "title": "",
594
+ "helper": "",
595
+ "emptyTitle": "",
596
+ "emptyDescription": "",
597
+ "emptyAction": "",
598
+ "add": "",
599
+ "or": ""
254
600
  },
255
601
  "heldFor": {
256
- "current": "this time",
257
- "measureLabel": "Counted",
258
- "minutesLabel": "Minutes",
259
- "prefix": "A stream has been paused for",
260
- "total": "in total",
261
- "unit": "minutes"
602
+ "prefix": "",
603
+ "minutesLabel": "",
604
+ "unit": "",
605
+ "measureLabel": "",
606
+ "current": "",
607
+ "total": ""
262
608
  },
263
609
  "inactiveFor": {
264
- "daysLabel": "Days",
265
- "prefix": "An account has been inactive for",
266
- "unit": "days"
610
+ "prefix": "",
611
+ "daysLabel": "",
612
+ "unit": ""
267
613
  },
268
- "leave": {
269
- "confirm": "Leave",
270
- "title": "Leave without saving?"
614
+ "rows": {
615
+ "toggle": "",
616
+ "remove": "",
617
+ "skipped": "",
618
+ "toggleHint": "",
619
+ "removeHint": "",
620
+ "expandHint": "",
621
+ "moveHint": ""
271
622
  },
272
- "liveCheck": {
273
- "actual": "now {{value}}",
274
- "backToLive": "Back to what's playing now",
275
- "checking": "Checking against the sessions playing now…",
276
- "empty": "Nothing is playing right now; nothing to check against.",
277
- "expand": "Show what matched for {{name}}",
278
- "failed": "Could not reach the servers to check.",
279
- "footnote": "Cooldowns and already-handled sessions aren't simulated.",
280
- "notPassed": "Did not pass",
281
- "passed": "Passed",
282
- "paused": "Paused while this saves",
283
- "sampleGone": "That session is no longer on record; nothing to check against.",
284
- "sampleTitle": "What this would do to that run",
285
- "title": "Right now on the servers",
286
- "unfinished": "Shows what this would do once the automation is complete."
287
- },
288
- "newDestination": "New destination",
289
- "noDestinations": "No destinations yet. Add one to send notifications.",
290
- "noMatches": "No matches",
291
623
  "picker": {
292
- "close": "close",
293
- "empty": "Nothing matches that.",
294
- "navigate": "move",
295
- "searchPlaceholder": "Search or describe what should happen",
296
- "select": "pick"
297
- },
298
- "recordAs": {
299
- "label": "When this runs, record it as",
300
- "notification": "An alert",
301
- "notificationDescription": "Recorded in Activity; never a violation.",
302
- "policy": "A violation",
303
- "policyDescription": "Listed in Violations; can be acknowledged."
624
+ "searchPlaceholder": "",
625
+ "empty": "",
626
+ "navigate": "",
627
+ "select": "",
628
+ "close": ""
304
629
  },
305
- "rows": {
306
- "expandHint": "open",
307
- "moveHint": "reorder",
308
- "remove": "Remove {{name}}",
309
- "removeHint": "remove",
310
- "skipped": "Skipped",
311
- "toggle": "Include {{name}}",
312
- "toggleHint": "skip"
313
- },
314
- "saving": "Saving…",
315
- "scope": {
316
- "account": "Specific account",
317
- "accountLabel": "Account",
318
- "accountPlaceholder": "Select account",
319
- "enforceAcrossServers": "Enforce across servers",
320
- "enforceAcrossServersDescription": "Acts on the person's sessions on any of their servers, not only the one that triggered it. Off by default.",
321
- "global": "Global",
322
- "label": "Scope",
323
- "noServers": "No servers connected yet.",
324
- "person": "Person (all their servers)",
325
- "personHelper": "Matches this person on every server they have an account on.",
326
- "personLabel": "Person",
327
- "personPlaceholder": "Select person",
328
- "server": "Specific server",
329
- "serverLabel": "Server",
330
- "serverPlaceholder": "Select server"
331
- },
332
- "searchPlaceholder": "Search…",
333
- "selectPlaceholder": "Select…",
334
- "selectedCount": "{{count}} selected",
335
630
  "sentence": {
336
- "label": "What this automation does",
337
- "placeholderAction": "do something",
338
- "placeholderTrigger": "something happens"
631
+ "label": "",
632
+ "placeholderTrigger": "",
633
+ "placeholderAction": ""
339
634
  },
340
- "severityLabel": "Severity",
341
- "when": {
342
- "add": "Add trigger",
343
- "emptyAction": "Choose what starts it",
344
- "emptyDescription": "A stream starting, a server going down, an account going quiet.",
345
- "emptyTitle": "What should start this?",
346
- "helper": "Any one of these starts it. At least one is required.",
347
- "or": "or",
348
- "title": "When…"
349
- }
350
- },
351
- "catalog": {
352
- "actions": {
353
- "if": {
354
- "description": "Run one set of steps when a condition holds and another when it does not.",
355
- "label": "Branch on a condition",
356
- "synonyms": "if, else, otherwise, branch, split, condition"
357
- },
358
- "kill_stream": {
359
- "synonyms": "stop, terminate, cut, end playback"
360
- },
361
- "message_client": {
362
- "synonyms": "warn, tell, notice, on screen"
363
- },
364
- "send": {
365
- "synonyms": "notify, alert, discord, email, webhook, push"
366
- },
367
- "trust": {
368
- "synonyms": "score, reputation, penalise, reward"
369
- }
635
+ "footer": {
636
+ "problems_one": "",
637
+ "problems_other": "",
638
+ "remaining_one": "",
639
+ "remaining_other": "",
640
+ "ready": "",
641
+ "search": ""
370
642
  },
371
- "groups": {
372
- "accounts": "Accounts",
373
- "control": "Control flow",
374
- "library": "Library",
375
- "notify": "Notify",
376
- "policy": "Policy",
377
- "servers": "Servers",
378
- "sessions": "Sessions",
379
- "updates": "Updates"
380
- },
381
- "suggested": "Suggested",
382
- "triggers": {
383
- "accountInactiveFor": {
384
- "description": "An account has watched nothing for the set number of days.",
385
- "label": "An account goes quiet",
386
- "synonyms": "inactive, dormant, unused, stale, cleanup"
387
- },
388
- "accountNewDevice": {
389
- "description": "An account streams from a device for the first time.",
390
- "synonyms": "device, new, unknown, unrecognized, phone, login, sharing"
391
- },
392
- "accountTrustChanged": {
393
- "description": "An account's trust score changes, whether an automation or an owner moved it.",
394
- "synonyms": "trust, score, reputation, penalty, adjusted"
395
- },
396
- "mediaAdded": {
397
- "description": "A library item shows up on a server for the first time.",
398
- "synonyms": "new, added, library, movie, episode, import"
399
- },
400
- "mediaUpgraded": {
401
- "description": "A library item that was already there changes quality.",
402
- "synonyms": "upgrade, quality, replaced, remux, 4k, resolution"
403
- },
404
- "pluginUpdateAvailable": {
405
- "description": "The Tracearr plugin on a server has a newer release.",
406
- "synonyms": "plugin, upgrade, version, release"
407
- },
408
- "serverDown": {
409
- "description": "A media server stops answering.",
410
- "synonyms": "unreachable, offline, outage, down"
411
- },
412
- "serverUp": {
413
- "description": "A media server answers again.",
414
- "synonyms": "online, recovered, restored, back"
415
- },
416
- "serverUpdateAvailable": {
417
- "description": "A media server has a newer release.",
418
- "synonyms": "upgrade, version, release, patch"
419
- },
420
- "sessionHeldFor": {
421
- "description": "A stream has been paused longer than the set number of minutes.",
422
- "label": "A stream sits paused",
423
- "synonyms": "pause, idle, abandoned, stuck, afk"
424
- },
425
- "sessionPaused": {
426
- "description": "The moment a stream is paused.",
427
- "synonyms": "pause, hold, idle"
428
- },
429
- "sessionStarted": {
430
- "description": "The moment play is pressed.",
431
- "synonyms": "play, watch, begin, start, viewing"
432
- },
433
- "sessionStopped": {
434
- "description": "Playback ends, however it ended.",
435
- "synonyms": "end, finish, quit, close"
436
- },
437
- "sessionTranscodeChanged": {
438
- "description": "The server switches a stream between direct play and transcoding.",
439
- "synonyms": "transcode, convert, direct play, cpu"
440
- },
441
- "tracearrUpdateAvailable": {
442
- "description": "Tracearr itself has a newer release.",
443
- "synonyms": "upgrade, version, release, self"
444
- }
643
+ "leave": {
644
+ "title": "",
645
+ "confirm": ""
646
+ },
647
+ "liveCheck": {
648
+ "title": "",
649
+ "checking": "",
650
+ "empty": "",
651
+ "failed": "",
652
+ "footnote": "",
653
+ "expand": "",
654
+ "passed": "",
655
+ "notPassed": "",
656
+ "actual": "",
657
+ "unfinished": "",
658
+ "paused": "",
659
+ "sampleTitle": "",
660
+ "sampleGone": "",
661
+ "backToLive": ""
445
662
  }
446
663
  },
447
664
  "categories": {
448
- "device_client": "Device & Client",
449
- "media": "Media",
450
- "network_location": "Network & Location",
451
- "scope": "Scope",
452
- "session_behavior": "Session Behavior",
453
- "stream_quality": "Stream Quality",
454
- "user_attributes": "User Attributes"
455
- },
456
- "configFields": {
457
- "cooldown_minutes": {
458
- "label": "Cooldown"
459
- },
460
- "message": {
461
- "label": "Message"
462
- },
463
- "target": {
464
- "label": "Target"
465
- }
665
+ "session_behavior": "",
666
+ "stream_quality": "",
667
+ "user_attributes": "",
668
+ "device_client": "",
669
+ "network_location": "",
670
+ "scope": "",
671
+ "media": ""
466
672
  },
467
- "createAutomation": "Create Automation",
468
- "customAutomation": "Custom automation",
469
- "deleteAutomationConfirm": "Are you sure you want to delete this automation? This action cannot be undone.",
470
- "deleteAutomation_one": "Delete {{count}} Automation",
471
- "deleteAutomation_other": "Delete {{count}} Automations",
472
- "deleteAutomationsConfirm": "Are you sure you want to delete? This action cannot be undone.",
673
+ "createAutomation": "",
674
+ "customAutomation": "",
675
+ "deleteAutomationConfirm": "",
676
+ "deleteAutomation_one": "",
677
+ "deleteAutomation_other": "",
678
+ "deleteAutomationsConfirm": "",
473
679
  "describe": {
474
- "actions": {
475
- "doNothing": "do nothing",
476
- "flagIt": "Flag it",
477
- "if": "if",
478
- "kill_stream": "stop the stream",
479
- "message_client": "message the player",
480
- "send": "send to {{destinations}}",
481
- "sendAnywhere": "send a notification",
482
- "trustAdjust": "adjust trust by {{amount}}",
483
- "trustDown": "drop trust by {{amount}}",
484
- "trustReset": "reset trust",
485
- "trustSet": "set trust to {{value}}",
486
- "trustUp": "raise trust by {{amount}}"
487
- },
488
- "allOf": "all of:",
489
- "andAlso": "and also",
490
- "anyOf": "any of:",
491
- "appliesTo": "Applies to {{name}}",
492
- "deviceTypesOnly": "{{types}} only",
680
+ "more_one": "",
681
+ "more_other": "",
682
+ "noValues": "",
683
+ "includesSameDevice": "",
684
+ "uniqueIps": "",
685
+ "deviceTypesOnly": "",
686
+ "when": "",
687
+ "or": "",
688
+ "nothing": "",
689
+ "onlyWhen": "",
690
+ "andAlso": "",
691
+ "allOf": "",
692
+ "anyOf": "",
693
+ "joinAll": "",
694
+ "joinAny": "",
695
+ "then": "",
696
+ "otherwise": "",
697
+ "appliesTo": "",
493
698
  "duration": {
494
- "days_one": "{{count}} day",
495
- "days_other": "{{count}} days",
496
- "minutes_one": "{{count}} minute",
497
- "minutes_other": "{{count}} minutes"
699
+ "minutes_one": "",
700
+ "minutes_other": "",
701
+ "days_one": "",
702
+ "days_other": ""
703
+ },
704
+ "triggers": {
705
+ "sessionStarted": "",
706
+ "sessionStopped": "",
707
+ "sessionTranscodeChanged": "",
708
+ "sessionPaused": "",
709
+ "sessionHeldFor": "",
710
+ "sessionHeldForTotal": "",
711
+ "accountInactiveFor": "",
712
+ "accountNewDevice": "",
713
+ "accountTrustChanged": "",
714
+ "mediaAdded": "",
715
+ "mediaUpgraded": "",
716
+ "serverDown": "",
717
+ "serverUp": "",
718
+ "pluginUpdateAvailable": "",
719
+ "serverUpdateAvailable": "",
720
+ "tracearrUpdateAvailable": ""
498
721
  },
499
- "fields": {
500
- "account_age_days": "the account age",
501
- "active_session_distance_km": "the distance between streams",
502
- "audio_channels_after": "the audio channels",
503
- "client_name": "the player",
504
- "concurrent_streams": "the stream count",
505
- "country": "the country",
506
- "current_pause_minutes": "the current pause",
507
- "device_type": "the device type",
508
- "dynamic_range_after": "the dynamic range",
509
- "file_size_after": "the file size",
510
- "inactive_days": "the time since the last stream",
511
- "ip_in_range": "the IP address",
512
- "is_local_network": "the local network",
513
- "is_transcode_downgrade": "the downgrade",
514
- "is_transcoding": "the transcoding",
515
- "library_item_type": "the item type",
516
- "library_name": "the library",
517
- "media_type": "the media type",
518
- "output_resolution": "the output resolution",
519
- "platform": "the platform",
520
- "resolution_after": "the resolution",
521
- "server_id": "the server",
522
- "source_bitrate_mbps": "the source bitrate",
523
- "source_resolution": "the source resolution",
524
- "total_pause_minutes": "the total pause time",
525
- "travel_speed_kmh": "the travel speed",
526
- "trust_score": "the trust score",
527
- "unique_devices_in_window": "the number of devices",
528
- "unique_ips_in_window": "the number of IP addresses",
529
- "user_id": "the user",
530
- "video_codec_after": "the video codec"
531
- },
532
- "includesSameDevice": "includes same device",
533
- "joinAll": "and",
534
- "joinAny": "or",
535
- "more_one": "+{{count}} more",
536
- "more_other": "+{{count}} more",
537
- "noValues": "(none)",
538
- "nothing": "nothing yet",
539
- "onlyWhen": "only when",
540
722
  "operators": {
541
- "contains": "contains",
542
- "eq": "is",
543
- "gt": "is above",
544
- "gte": "is at least",
545
- "in": "is one of",
546
- "lt": "is below",
547
- "lte": "is at most",
548
- "neq": "is not",
549
- "not_contains": "does not contain",
550
- "not_in": "is not one of"
551
- },
552
- "or": "or {{text}}",
553
- "otherwise": "Otherwise",
554
- "sameDeviceInput": "same device: {{input}}",
555
- "scope": {
556
- "account": "one account",
557
- "person": "one person",
558
- "server": "one server"
723
+ "eq": "",
724
+ "neq": "",
725
+ "gt": "",
726
+ "gte": "",
727
+ "lt": "",
728
+ "lte": "",
729
+ "in": "",
730
+ "not_in": "",
731
+ "contains": "",
732
+ "not_contains": ""
733
+ },
734
+ "fields": {
735
+ "concurrent_streams": "",
736
+ "active_session_distance_km": "",
737
+ "travel_speed_kmh": "",
738
+ "unique_ips_in_window": "",
739
+ "unique_devices_in_window": "",
740
+ "inactive_days": "",
741
+ "current_pause_minutes": "",
742
+ "total_pause_minutes": "",
743
+ "source_resolution": "",
744
+ "output_resolution": "",
745
+ "is_transcoding": "",
746
+ "is_transcode_downgrade": "",
747
+ "source_bitrate_mbps": "",
748
+ "user_id": "",
749
+ "trust_score": "",
750
+ "account_age_days": "",
751
+ "device_type": "",
752
+ "client_name": "",
753
+ "platform": "",
754
+ "is_local_network": "",
755
+ "country": "",
756
+ "ip_in_range": "",
757
+ "server_id": "",
758
+ "media_type": "",
759
+ "library_item_type": "",
760
+ "library_name": "",
761
+ "resolution_after": "",
762
+ "dynamic_range_after": "",
763
+ "video_codec_after": "",
764
+ "audio_channels_after": "",
765
+ "file_size_after": ""
559
766
  },
560
767
  "states": {
561
768
  "is_local_network": {
562
- "no": "the user is not on the local network",
563
- "yes": "the user is on the local network"
769
+ "yes": "",
770
+ "no": ""
564
771
  },
565
772
  "is_transcode_downgrade": {
566
- "no": "the stream is not downgraded",
567
- "yes": "the stream is downgraded"
773
+ "yes": "",
774
+ "no": ""
568
775
  },
569
776
  "is_transcoding": {
570
- "audio": {
571
- "no": "the stream is not transcoding audio",
572
- "yes": "the stream is transcoding audio"
573
- },
574
- "neither": {
575
- "no": "the stream is transcoding",
576
- "yes": "the stream is not transcoding"
577
- },
578
777
  "video": {
579
- "no": "the stream is not transcoding video",
580
- "yes": "the stream is transcoding video"
778
+ "yes": "",
779
+ "no": ""
780
+ },
781
+ "audio": {
782
+ "yes": "",
783
+ "no": ""
581
784
  },
582
785
  "video_or_audio": {
583
- "no": "the stream is not transcoding",
584
- "yes": "the stream is transcoding"
786
+ "yes": "",
787
+ "no": ""
788
+ },
789
+ "neither": {
790
+ "yes": "",
791
+ "no": ""
585
792
  }
586
793
  }
587
794
  },
588
- "then": "then {{text}}",
589
- "triggers": {
590
- "accountInactiveFor": "an account has been inactive for {{duration}}",
591
- "accountNewDevice": "an account plays from a new device",
592
- "accountTrustChanged": "an account's trust score changes",
593
- "mediaAdded": "media is added",
594
- "mediaUpgraded": "media is upgraded",
595
- "pluginUpdateAvailable": "a plugin update is available",
596
- "serverDown": "a server goes down",
597
- "serverUp": "a server comes back up",
598
- "serverUpdateAvailable": "a server update is available",
599
- "sessionHeldFor": "a stream has been paused for {{duration}}",
600
- "sessionHeldForTotal": "a stream has been paused for {{duration}} in total",
601
- "sessionPaused": "a stream is paused",
602
- "sessionStarted": "a stream starts",
603
- "sessionStopped": "a stream stops",
604
- "sessionTranscodeChanged": "transcoding starts or stops",
605
- "tracearrUpdateAvailable": "a Tracearr update is available"
606
- },
607
- "uniqueIps": "unique IPs",
608
- "uniqueIpsInput": "unique IPs: {{input}}",
609
- "when": "When {{text}}",
795
+ "actions": {
796
+ "if": "",
797
+ "flagIt": "",
798
+ "doNothing": "",
799
+ "send": "",
800
+ "sendAnywhere": "",
801
+ "kill_stream": "",
802
+ "message_client": "",
803
+ "trustUp": "",
804
+ "trustDown": "",
805
+ "trustAdjust": "",
806
+ "trustSet": "",
807
+ "trustReset": ""
808
+ },
809
+ "scope": {
810
+ "server": "",
811
+ "account": "",
812
+ "person": ""
813
+ },
814
+ "sameDeviceInput": "",
815
+ "uniqueIpsInput": "",
610
816
  "unbound": {
611
- "server": "a chosen server",
612
- "account": "a chosen account",
613
- "person": "a chosen person",
614
- "destinations": "a chosen destination",
615
- "field_value": "a chosen value",
616
- "select": "a chosen option",
617
- "number": "a chosen number",
618
- "duration": "a chosen length of time",
619
- "text": "a chosen message",
620
- "boolean": "a chosen setting",
621
- "listed": "those chosen"
817
+ "server": "",
818
+ "account": "",
819
+ "person": "",
820
+ "destinations": "",
821
+ "field_value": "",
822
+ "select": "",
823
+ "number": "",
824
+ "duration": "",
825
+ "text": "",
826
+ "boolean": "",
827
+ "listed": ""
622
828
  }
623
829
  },
624
- "description": "Automations watch your servers and act when their conditions match",
830
+ "description": "",
625
831
  "detail": {
626
- "notFound": "Automation not found",
627
- "title": "Automation",
628
- "unsaved": "Unsaved changes",
629
- "runsLine_one": "1 run · last run {{when}}",
630
- "runsLine_other": "{{count}} runs · last run {{when}}",
631
- "noRuns": "No runs yet"
832
+ "notFound": "",
833
+ "title": "",
834
+ "unsaved": "",
835
+ "runsLine_one": "",
836
+ "runsLine_other": "",
837
+ "noRuns": ""
632
838
  },
633
- "disable": "Disable",
634
- "editAutomation": "Edit Automation",
839
+ "disable": "",
840
+ "editAutomation": "",
635
841
  "effects": {
636
- "allServers": "Runs on every server unless one is chosen.",
637
- "everyServer": "Runs on every server.",
638
- "kill": "Can stop a stream that is playing.",
639
- "message": "Puts a message on a player.",
640
- "oneServer": "Runs on {{server}} only.",
641
- "tellsOnly": "Only notifies. Never stops a stream or changes an account.",
642
- "title": "What this will do",
643
- "trust": "Changes trust scores.",
644
- "violation": "Records a violation against the matched person."
842
+ "title": "",
843
+ "kill": "",
844
+ "trust": "",
845
+ "message": "",
846
+ "violation": "",
847
+ "tellsOnly": "",
848
+ "allServers": "",
849
+ "everyServer": "",
850
+ "oneServer": ""
645
851
  },
646
- "emptyDescription": "Ready-made automations. Pick one and fill in the blanks.",
647
- "emptySeeAll": "See all {{count}}",
648
- "emptySeeAllLoading": "See all",
649
- "emptyTitle": "No automations yet",
650
- "enable": "Enable",
852
+ "emptyTitle": "",
853
+ "emptyDescription": "",
854
+ "emptySeeAll": "",
855
+ "emptySeeAllLoading": "",
856
+ "enable": "",
651
857
  "evaluations": {
858
+ "disclosure": "",
652
859
  "reasons": {
653
- "cooldown_active": "Cooldown was active",
654
- "edge_replayed": "Same edge already handled",
655
- "gate_blocked": "An open run already covers this",
656
- "trigger_filter_failed": "Trigger threshold not reached"
657
- },
658
- "disclosure": "Matches that did not start a run ({{total}})"
860
+ "cooldown_active": "",
861
+ "edge_replayed": "",
862
+ "gate_blocked": "",
863
+ "trigger_filter_failed": ""
864
+ }
659
865
  },
660
866
  "export": {
661
- "authorHelper": "Shown on the gallery page and carried in the code. Optional.",
662
- "authorLabel": "Author",
663
- "authorPlaceholder": "Name",
664
- "carries": "The code carries the steps only. Destinations, servers and accounts are not included; the receiving side fills in its own.",
665
- "copyCode": "Copy the share code",
666
- "copyJson": "Copy the JSON",
667
- "description": "A code another Tracearr can paste in.",
668
- "failed": "Couldn't make a code for this one.",
669
- "save": "Save as ready-made",
670
- "saveFailed": "Could not save it.",
671
- "saved": "{{name}} saved as a ready-made automation.",
672
- "title": "Share this automation",
673
- "saveHelper": "Adds it to this server's list of ready-made automations.",
674
- "authorInCode": "The code includes the author name.",
675
- "groupLabel": "Section",
676
- "groupHelper": "Which part of the gallery it is listed under.",
867
+ "title": "",
868
+ "description": "",
869
+ "carries": "",
870
+ "copyCode": "",
871
+ "copyJson": "",
872
+ "authorLabel": "",
873
+ "authorPlaceholder": "",
874
+ "authorHelper": "",
875
+ "save": "",
876
+ "saved": "",
877
+ "saveFailed": "",
878
+ "failed": "",
879
+ "saveHelper": "",
880
+ "authorInCode": "",
881
+ "groupLabel": "",
882
+ "groupHelper": "",
677
883
  "gallery": {
678
- "trigger": "Put this in the community gallery",
679
- "body": "The gallery at docs.tracearr.com/templates lists shared automations. Adding one is a pull request to Tracearr/automation-templates with the JSON below. Tracearr never reads the gallery."
884
+ "trigger": "",
885
+ "body": ""
680
886
  },
681
- "openRepository": "Open the repository"
887
+ "openRepository": ""
682
888
  },
683
889
  "fields": {
684
- "account_age_days": {
685
- "description": "Days since account creation",
686
- "label": "Account Age"
890
+ "concurrent_streams": {
891
+ "label": "",
892
+ "description": ""
687
893
  },
688
894
  "active_session_distance_km": {
689
- "description": "Distance between simultaneous sessions",
690
- "label": "Distance Between Sessions"
895
+ "label": "",
896
+ "description": ""
691
897
  },
692
- "audio_channels_after": {
693
- "description": "Audio channel count the item ends up with",
694
- "label": "Audio Channels"
898
+ "travel_speed_kmh": {
899
+ "label": "",
900
+ "description": ""
695
901
  },
696
- "client_name": {
697
- "description": "Media player application",
698
- "label": "Client/Player",
699
- "placeholder": "e.g., Plex for iOS"
902
+ "unique_ips_in_window": {
903
+ "label": "",
904
+ "description": ""
700
905
  },
701
- "concurrent_streams": {
702
- "description": "Number of active streams from the same user",
703
- "label": "Concurrent Streams"
906
+ "unique_devices_in_window": {
907
+ "label": "",
908
+ "description": ""
704
909
  },
705
- "country": {
706
- "description": "Geographic country",
707
- "label": "Country",
708
- "placeholder": "Select countries…"
910
+ "inactive_days": {
911
+ "label": "",
912
+ "description": ""
709
913
  },
710
914
  "current_pause_minutes": {
711
- "description": "How long the session has been continuously paused",
712
- "label": "Current Pause Duration"
713
- },
714
- "device_type": {
715
- "description": "Type of device used",
716
- "label": "Device Type"
915
+ "label": "",
916
+ "description": ""
717
917
  },
718
- "dynamic_range_after": {
719
- "description": "HDR format the item ends up with",
720
- "label": "Dynamic Range"
721
- },
722
- "file_size_after": {
723
- "description": "Size the item ends up at, across every copy",
724
- "label": "File Size"
918
+ "total_pause_minutes": {
919
+ "label": "",
920
+ "description": ""
725
921
  },
726
- "inactive_days": {
727
- "description": "Days since last activity",
728
- "label": "Days Inactive"
922
+ "source_resolution": {
923
+ "label": "",
924
+ "description": ""
729
925
  },
730
- "ip_in_range": {
731
- "description": "IP address in a CIDR range, IPv4 or IPv6",
732
- "label": "IP Range",
733
- "placeholder": "e.g., 192.168.1.0/24 or 2001:db8:abcd:7800::/64"
926
+ "output_resolution": {
927
+ "label": "",
928
+ "description": ""
734
929
  },
735
- "is_local_network": {
736
- "description": "Streaming from the local network",
737
- "label": "Local Network"
930
+ "is_transcoding": {
931
+ "label": "",
932
+ "description": ""
738
933
  },
739
934
  "is_transcode_downgrade": {
740
- "description": "Output resolution is lower than source",
741
- "label": "Transcode Downgrade"
935
+ "label": "",
936
+ "description": ""
742
937
  },
743
- "is_transcoding": {
744
- "description": "Whether video or audio streams are being transcoded",
745
- "label": "Is Transcoding"
938
+ "source_bitrate_mbps": {
939
+ "label": "",
940
+ "description": ""
746
941
  },
747
- "library_item_type": {
748
- "description": "What kind of library item it is",
749
- "label": "Item Type"
942
+ "user_id": {
943
+ "label": "",
944
+ "description": "",
945
+ "placeholder": ""
750
946
  },
751
- "library_name": {
752
- "description": "Name of the library it landed in",
753
- "label": "Library",
754
- "placeholder": "Movies"
947
+ "trust_score": {
948
+ "label": "",
949
+ "description": ""
755
950
  },
756
- "media_type": {
757
- "description": "Type of content",
758
- "label": "Media Type"
951
+ "account_age_days": {
952
+ "label": "",
953
+ "description": ""
759
954
  },
760
- "output_resolution": {
761
- "description": "Transcoded or delivered resolution",
762
- "label": "Output Resolution"
955
+ "device_type": {
956
+ "label": "",
957
+ "description": ""
763
958
  },
764
- "platform": {
765
- "description": "Operating system",
766
- "label": "Platform/OS"
959
+ "client_name": {
960
+ "label": "",
961
+ "description": "",
962
+ "placeholder": ""
767
963
  },
768
- "resolution_after": {
769
- "description": "Resolution the item ends up at",
770
- "label": "Resolution"
964
+ "platform": {
965
+ "label": "",
966
+ "description": ""
771
967
  },
772
- "server_id": {
773
- "description": "Specific media server",
774
- "label": "Server",
775
- "placeholder": "Select servers…"
968
+ "is_local_network": {
969
+ "label": "",
970
+ "description": ""
776
971
  },
777
- "source_bitrate_mbps": {
778
- "description": "Original media bitrate",
779
- "label": "Source Bitrate"
972
+ "country": {
973
+ "label": "",
974
+ "description": "",
975
+ "placeholder": ""
780
976
  },
781
- "source_resolution": {
782
- "description": "Original media resolution",
783
- "label": "Source Resolution"
977
+ "ip_in_range": {
978
+ "label": "",
979
+ "description": "",
980
+ "placeholder": ""
784
981
  },
785
- "total_pause_minutes": {
786
- "description": "Total accumulated pause time across all pause/resume cycles",
787
- "label": "Total Pause Duration"
982
+ "server_id": {
983
+ "label": "",
984
+ "description": "",
985
+ "placeholder": ""
788
986
  },
789
- "travel_speed_kmh": {
790
- "description": "Calculated travel speed between locations",
791
- "label": "Travel Speed"
987
+ "media_type": {
988
+ "label": "",
989
+ "description": ""
792
990
  },
793
- "trust_score": {
794
- "description": "The user's trust score, from 0 to 100",
795
- "label": "Trust Score"
991
+ "library_item_type": {
992
+ "label": "",
993
+ "description": ""
796
994
  },
797
- "unique_devices_in_window": {
798
- "description": "Number of unique devices in the time window",
799
- "label": "Unique Devices in Window"
995
+ "library_name": {
996
+ "label": "",
997
+ "description": "",
998
+ "placeholder": ""
800
999
  },
801
- "unique_ips_in_window": {
802
- "description": "Number of unique IP addresses in the time window",
803
- "label": "Unique IPs in Window"
1000
+ "resolution_after": {
1001
+ "label": "",
1002
+ "description": ""
804
1003
  },
805
- "user_id": {
806
- "description": "Specific users by account",
807
- "label": "User",
808
- "placeholder": "Select users…"
1004
+ "dynamic_range_after": {
1005
+ "label": "",
1006
+ "description": ""
809
1007
  },
810
1008
  "video_codec_after": {
811
- "description": "Video codec the item ends up with",
812
- "label": "Video Codec"
1009
+ "label": "",
1010
+ "description": ""
1011
+ },
1012
+ "audio_channels_after": {
1013
+ "label": "",
1014
+ "description": ""
1015
+ },
1016
+ "file_size_after": {
1017
+ "label": "",
1018
+ "description": ""
813
1019
  }
814
1020
  },
815
1021
  "gallery": {
816
- "builtin": "Built-in",
817
- "description": "Ready-made automations. Pick one and fill in the blanks.",
818
- "failed": "Couldn't load the ready-made automations.",
1022
+ "title": "",
1023
+ "description": "",
1024
+ "searchPlaceholder": "",
1025
+ "noMatches": "",
1026
+ "noMatchesHint": "",
819
1027
  "group": {
820
- "housekeeping": "Housekeeping",
821
- "notifications": "Notifications",
822
- "other": "Other ways to start",
823
- "policies": "Limits and rules",
824
- "server_health": "Server health"
825
- },
826
- "hint": {
827
- "close": "close",
828
- "move": "move",
829
- "use": "use"
1028
+ "notifications": "",
1029
+ "server_health": "",
1030
+ "policies": "",
1031
+ "housekeeping": "",
1032
+ "other": ""
830
1033
  },
1034
+ "builtin": "",
831
1035
  "kind": {
832
- "notification": "An alert",
833
- "policy": "A violation"
1036
+ "policy": "",
1037
+ "notification": ""
834
1038
  },
835
- "loading": "Loading…",
836
- "missing": "That ready-made automation is not on this server.",
837
- "noMatches": "Nothing matches “{{query}}”.",
838
- "noMatchesHint": "Try a word from the outcome: discord, offline, paused.",
839
1039
  "paste": {
840
- "description": "Paste a code and review what it does before adding it.",
841
- "title": "Paste a share code"
1040
+ "title": "",
1041
+ "description": ""
842
1042
  },
843
- "retry": "Try again",
844
1043
  "scratch": {
845
- "description": "Build it step by step.",
846
- "title": "Start from scratch"
1044
+ "title": "",
1045
+ "description": ""
847
1046
  },
848
- "searchPlaceholder": "Search",
849
- "title": "New automation"
1047
+ "failed": "",
1048
+ "retry": "",
1049
+ "missing": "",
1050
+ "hint": {
1051
+ "move": "",
1052
+ "use": "",
1053
+ "close": ""
1054
+ },
1055
+ "loading": ""
850
1056
  },
851
1057
  "import": {
852
- "adding": "Adding it…",
853
- "check": "Check it",
854
- "checking": "Reading it…",
855
- "codeShort": "Code {{fingerprint}}",
1058
+ "title": "",
1059
+ "description": "",
1060
+ "reviewDescription": "",
1061
+ "placeholder": "",
1062
+ "formatHint": "",
1063
+ "check": "",
1064
+ "checking": "",
1065
+ "valid": "",
1066
+ "madeBy": "",
1067
+ "codeShort": "",
1068
+ "paused": {
1069
+ "label": "",
1070
+ "helper": ""
1071
+ },
1072
+ "submit": "",
1073
+ "adding": "",
1074
+ "existing": "",
1075
+ "existingUse": "",
856
1076
  "collision": {
857
- "add": "Keep both",
858
- "replace": "Replace mine",
859
- "title": "A different automation named {{name}} already exists."
1077
+ "title": "",
1078
+ "add": "",
1079
+ "replace": ""
860
1080
  },
861
- "description": "Paste the code. Everything is in the code; Tracearr fetches nothing.",
1081
+ "raw": "",
862
1082
  "errors": {
863
- "notACode": "That doesn't look like a Tracearr share code.",
864
- "notACodeHint": "A code starts with tracearr1. The JSON works too.",
865
- "rejected": "Tracearr couldn't read this one.",
866
- "rejectedHint": "It may come from a different tool or have been edited by hand.",
867
- "tooBig": "That's too big to be a Tracearr automation.",
868
- "tooBigHint": "Codes are a few thousand characters at most.",
869
- "tooMany": "That's a lot of codes in one minute.",
870
- "tooManyHint": "Wait a moment, then check it again.",
871
- "tooNew": "This needs Tracearr {{required}} or newer.",
872
- "tooNewHint": "This server runs {{current}}. Update Tracearr, then paste again.",
873
- "truncated": "This code looks cut off.",
874
- "truncatedHint": "Copy the whole code and paste it again; some chat apps split long codes across lines."
875
- },
876
- "existing": "Already saved as {{name}}.",
877
- "existingUse": "Use it",
878
- "formatHint": "A code starts with tracearr1.",
879
- "madeBy": "Author: {{author}}, as written in the code",
880
- "paused": {
881
- "helper": "Turn it on from the list after review.",
882
- "label": "Start paused"
883
- },
884
- "placeholder": "tracearr1.…",
885
- "raw": "Show the JSON",
886
- "reviewDescription": "What the code does, and what to fill in.",
887
- "submit": "Add it",
888
- "title": "Paste a share code",
889
- "valid": "Tracearr can read this code.",
890
- "source": "Shared automations are listed at docs.tracearr.com/templates.",
891
- "validCaveat": "Nothing in a code says who wrote it or whether it is safe. The steps are below.",
892
- "builtinMatch": "This is {{name}}, one of the automations Tracearr ships."
1083
+ "notACode": "",
1084
+ "notACodeHint": "",
1085
+ "tooBig": "",
1086
+ "tooBigHint": "",
1087
+ "truncated": "",
1088
+ "truncatedHint": "",
1089
+ "tooNew": "",
1090
+ "tooNewHint": "",
1091
+ "tooMany": "",
1092
+ "tooManyHint": "",
1093
+ "rejected": "",
1094
+ "rejectedHint": ""
1095
+ },
1096
+ "source": "",
1097
+ "validCaveat": "",
1098
+ "builtinMatch": ""
893
1099
  },
894
1100
  "kind": {
895
- "notification": "Alert",
896
- "policy": "Violation"
1101
+ "policy": "",
1102
+ "notification": ""
897
1103
  },
898
- "kindColumn": "Kind",
899
- "name": "Automation Name",
900
- "namePlaceholder": "A name for this automation",
901
- "nameInvalid": "Give it a name.",
902
- "descriptionLabel": "Description",
903
- "descriptionPlaceholder": "What this is for",
904
- "thisAutomation": "This automation",
905
- "cooldownLabel": "At most once every",
906
- "cooldownInvalid": "Enter a whole number of minutes, 0 or more, or leave it empty.",
907
- "retentionLabel": "Keep runs for",
908
- "retentionPlaceholder": "{{days}}",
909
- "retentionInvalid": "Enter a whole number of days, at least 1, or leave it empty.",
910
- "newAutomation": "New automation",
911
- "noAutomationsFound": "No automations found",
1104
+ "kindColumn": "",
1105
+ "name": "",
1106
+ "newAutomation": "",
1107
+ "namePlaceholder": "",
1108
+ "nameInvalid": "",
1109
+ "descriptionLabel": "",
1110
+ "descriptionPlaceholder": "",
1111
+ "thisAutomation": "",
1112
+ "cooldownLabel": "",
1113
+ "cooldownInvalid": "",
1114
+ "retentionLabel": "",
1115
+ "retentionPlaceholder": "",
1116
+ "retentionInvalid": "",
1117
+ "noAutomationsFound": "",
912
1118
  "operators": {
913
- "contains": "contains",
914
- "eq": "equals",
915
- "gt": "greater than",
916
- "gte": "at least",
917
- "in": "is one of",
918
- "lt": "less than",
919
- "lte": "at most",
920
- "neq": "not equals",
921
- "not_contains": "does not contain",
922
- "not_in": "is not one of"
1119
+ "eq": "",
1120
+ "neq": "",
1121
+ "gt": "",
1122
+ "gte": "",
1123
+ "lt": "",
1124
+ "lte": "",
1125
+ "in": "",
1126
+ "not_in": "",
1127
+ "contains": "",
1128
+ "not_contains": ""
923
1129
  },
924
1130
  "options": {
925
- "1080p": "1080p",
926
- "1440p": "1440p",
927
- "480p": "480p",
928
- "4K": "4K (2160p)",
929
- "720p": "720p",
930
- "8K": "8K",
931
- "SD": "SD",
932
- "android": "Android",
933
- "androidtv": "Android TV",
934
- "audio": "Audio",
935
- "browser": "Browser",
936
- "desktop": "Desktop",
937
- "dolby vision": "Dolby Vision",
938
- "episode": "TV Episode",
939
- "hdr": "HDR",
940
- "hdr10": "HDR10",
941
- "hdr10+": "HDR10+",
942
- "hlg": "HLG",
943
- "ios": "iOS",
1131
+ "4K": "",
1132
+ "1080p": "",
1133
+ "720p": "",
1134
+ "480p": "",
1135
+ "SD": "",
1136
+ "unknown": "",
1137
+ "mobile": "",
1138
+ "tablet": "",
1139
+ "tv": "",
1140
+ "desktop": "",
1141
+ "browser": "",
1142
+ "ios": "",
1143
+ "android": "",
1144
+ "windows": "",
1145
+ "macos": "",
1146
+ "linux": "",
1147
+ "tvos": "",
1148
+ "androidtv": "",
1149
+ "roku": "",
1150
+ "webos": "",
1151
+ "tizen": "",
1152
+ "movie": "",
1153
+ "episode": "",
1154
+ "track": "",
1155
+ "photo": "",
1156
+ "live": "",
1157
+ "trailer": "",
1158
+ "video": "",
1159
+ "audio": "",
1160
+ "video_or_audio": "",
1161
+ "neither": "",
1162
+ "8K": "",
1163
+ "1440p": "",
1164
+ "sdr": "",
1165
+ "hdr": "",
1166
+ "hdr10": "",
1167
+ "hdr10+": "",
1168
+ "hlg": "",
1169
+ "dolby vision": "",
944
1170
  "libraryItemType": {
945
- "album": "Album",
946
- "artist": "Artist",
947
- "episode": "Episode",
948
- "movie": "Movie",
949
- "photo": "Photo",
950
- "season": "Season",
951
- "show": "Show",
952
- "track": "Track"
953
- },
954
- "linux": "Linux",
955
- "live": "Live TV",
956
- "macos": "macOS",
957
- "mobile": "Mobile",
958
- "movie": "Movie",
959
- "neither": "Neither (Direct Play)",
960
- "photo": "Photo",
961
- "roku": "Roku",
962
- "sdr": "SDR",
963
- "tablet": "Tablet",
964
- "tizen": "Tizen",
965
- "track": "Music",
966
- "trailer": "Trailer",
967
- "tv": "TV",
968
- "tvos": "tvOS",
969
- "unknown": "Unknown",
970
- "video": "Video",
971
- "video_or_audio": "Video or Audio",
972
- "webos": "webOS",
973
- "windows": "Windows"
1171
+ "movie": "",
1172
+ "show": "",
1173
+ "season": "",
1174
+ "episode": "",
1175
+ "artist": "",
1176
+ "album": "",
1177
+ "track": "",
1178
+ "photo": ""
1179
+ }
974
1180
  },
975
1181
  "provenance": {
976
- "builtin": "Built-in · {{name}} {{version}}",
977
- "customized": "Customized from {{name}}",
978
- "customizedFromRemoved": "Customized from a ready-made automation that has since been removed",
979
- "imported": "Imported from a share code on {{date}} · {{name}} {{version}}",
980
- "importedBy": "Imported from a share code by {{author}} on {{date}} · {{name}} {{version}}",
981
- "saved": "Saved here from {{name}} on {{date}} · {{version}}"
1182
+ "builtin": "",
1183
+ "imported": "",
1184
+ "importedBy": "",
1185
+ "saved": "",
1186
+ "customized": "",
1187
+ "customizedFromRemoved": ""
982
1188
  },
983
- "recordsOnly": "Records runs only",
1189
+ "recordsOnly": "",
984
1190
  "scope": {
985
- "account": "Account",
986
- "crossServer": "Cross-server",
987
- "global": "Global",
988
- "person": "Person"
1191
+ "global": "",
1192
+ "person": "",
1193
+ "account": "",
1194
+ "crossServer": ""
989
1195
  },
990
- "searchPlaceholder": "Search automations…",
1196
+ "searchPlaceholder": "",
991
1197
  "sessionTargets": {
1198
+ "triggering": {
1199
+ "label": "",
1200
+ "tooltip": ""
1201
+ },
1202
+ "oldest": {
1203
+ "label": "",
1204
+ "tooltip": ""
1205
+ },
1206
+ "newest": {
1207
+ "label": "",
1208
+ "tooltip": ""
1209
+ },
992
1210
  "all_except_one": {
993
- "label": "All except one (keep oldest)",
994
- "tooltip": "All sessions except the oldest, bringing the user down to one stream"
1211
+ "label": "",
1212
+ "tooltip": ""
995
1213
  },
996
1214
  "all_user": {
997
- "label": "All user sessions",
998
- "tooltip": "Every active session for this user"
1215
+ "label": "",
1216
+ "tooltip": ""
1217
+ }
1218
+ },
1219
+ "configFields": {
1220
+ "cooldown_minutes": {
1221
+ "label": ""
999
1222
  },
1000
- "newest": {
1001
- "label": "Newest session",
1002
- "tooltip": "The user's most recently started session"
1223
+ "target": {
1224
+ "label": ""
1003
1225
  },
1004
- "oldest": {
1005
- "label": "Oldest session",
1006
- "tooltip": "The user's longest-running active session"
1226
+ "message": {
1227
+ "label": ""
1228
+ }
1229
+ },
1230
+ "trustModes": {
1231
+ "adjust": {
1232
+ "label": ""
1007
1233
  },
1008
- "triggering": {
1009
- "label": "Triggering session",
1010
- "tooltip": "Only the session that triggered this automation"
1234
+ "set": {
1235
+ "label": ""
1236
+ },
1237
+ "reset": {
1238
+ "label": ""
1011
1239
  }
1012
1240
  },
1013
1241
  "severity": {
1014
- "high": "High",
1015
- "low": "Low",
1016
- "warning": "Warning"
1242
+ "low": "",
1243
+ "warning": "",
1244
+ "high": ""
1017
1245
  },
1018
1246
  "template": {
1019
- "after": "After the update",
1020
- "before": "Now",
1021
- "customize": "Customize",
1022
- "customizeConfirm": "Opening it in the builder makes this automation independent: every step is editable, and it no longer receives updates from the ready-made one. This cannot be undone.",
1023
- "customizeConfirmAction": "Customize it",
1024
- "customizeFailed": "Could not open it in the builder.",
1025
- "customizeFirst": "This automation follows a ready-made one. Open it in the builder first.",
1026
- "customizeTitle": "Open this in the builder?",
1027
- "gone": "The ready-made automation this was built from is no longer on this server.",
1028
- "review": "Review and update",
1029
- "save": "Save changes",
1030
- "updateAvailable": "An update is available",
1031
- "updatedBody": "Review the answers below, then update.",
1032
- "updatedTitle": "The ready-made automation is now on v{{version}}",
1033
- "upgradeFailed": "Couldn't update that. Try again.",
1034
- "version": "v{{version}}",
1035
- "doorsHelper": "The steps come from the ready-made automation and are fixed. Open in the builder makes every step editable and ends the link."
1247
+ "version": "",
1248
+ "updateAvailable": "",
1249
+ "updatedTitle": "",
1250
+ "updatedBody": "",
1251
+ "before": "",
1252
+ "after": "",
1253
+ "review": "",
1254
+ "save": "",
1255
+ "customize": "",
1256
+ "customizeTitle": "",
1257
+ "customizeConfirm": "",
1258
+ "customizeConfirmAction": "",
1259
+ "customizeFirst": "",
1260
+ "customizeFailed": "",
1261
+ "upgradeFailed": "",
1262
+ "gone": "",
1263
+ "doorsHelper": ""
1036
1264
  },
1037
1265
  "templates": {
1038
1266
  "account-inactivity": {
1039
- "description": "Raise a violation when an account goes unused for the days you allow.",
1040
- "keywords": "idle dormant unused stale cleanup inactive account",
1041
- "name": "Inactive account"
1267
+ "name": "",
1268
+ "description": "",
1269
+ "keywords": ""
1042
1270
  },
1043
1271
  "concurrent-streams": {
1044
- "description": "Raise a violation when an account plays more streams at once than you allow.",
1045
- "keywords": "limit cap concurrent simultaneous sharing too many streams",
1046
- "name": "Too many streams at once"
1272
+ "name": "",
1273
+ "description": "",
1274
+ "keywords": ""
1047
1275
  },
1048
1276
  "device-velocity": {
1049
- "description": "Raise a violation when an account streams from more IP addresses in a window than you allow.",
1050
- "keywords": "ip addresses vpn sharing devices window",
1051
- "name": "Many IPs in a window"
1277
+ "name": "",
1278
+ "description": "",
1279
+ "keywords": ""
1052
1280
  },
1053
1281
  "geo-restriction": {
1054
- "description": "Raise a violation when a stream comes from a country you block.",
1055
- "keywords": "country geo vpn abroad region block travel",
1056
- "name": "Blocked countries"
1282
+ "name": "",
1283
+ "description": "",
1284
+ "keywords": ""
1057
1285
  },
1058
1286
  "impossible-travel": {
1059
- "description": "Raise a violation when two sessions sit further apart than anyone could travel between them.",
1060
- "keywords": "vpn travel speed distance location sharing",
1061
- "name": "Impossible travel"
1287
+ "name": "",
1288
+ "description": "",
1289
+ "keywords": ""
1062
1290
  },
1063
1291
  "kill-paused-streams": {
1064
- "description": "Stop a stream that has sat paused past the minutes you allow.",
1065
- "keywords": "pause idle afk stop kill terminate reclaim",
1066
- "name": "Stop paused streams"
1292
+ "name": "",
1293
+ "description": "",
1294
+ "keywords": ""
1067
1295
  },
1068
1296
  "media-added": {
1069
- "description": "Tell a destination when a library item shows up for the first time.",
1070
- "keywords": "new library movie episode added import notify discord email webhook",
1071
- "name": "New media added"
1297
+ "name": "",
1298
+ "description": "",
1299
+ "keywords": ""
1072
1300
  },
1073
1301
  "media-upgraded": {
1074
- "description": "Tell a destination when a library item changes quality.",
1075
- "keywords": "upgrade quality remux 4k resolution replaced notify discord email webhook",
1076
- "name": "Media upgraded"
1302
+ "name": "",
1303
+ "description": "",
1304
+ "keywords": ""
1077
1305
  },
1078
1306
  "new-device": {
1079
- "name": "New device",
1080
- "description": "Tell a destination the first time an account streams from a device you have not seen.",
1081
- "keywords": "device new unknown unrecognized phone login sharing notify discord email webhook"
1307
+ "name": "",
1308
+ "description": "",
1309
+ "keywords": ""
1082
1310
  },
1083
1311
  "no-4k-transcodes": {
1084
- "description": "Stop a stream that transcodes 4K source video.",
1085
- "keywords": "4k transcode quality cpu bandwidth stop",
1086
- "name": "No 4K transcodes"
1312
+ "name": "",
1313
+ "description": "",
1314
+ "keywords": ""
1087
1315
  },
1088
1316
  "paused-too-long": {
1089
- "description": "Tell a destination when a stream sits paused past the minutes you allow.",
1090
- "keywords": "pause idle afk stuck abandoned notify discord email webhook",
1091
- "name": "Paused too long"
1317
+ "name": "",
1318
+ "description": "",
1319
+ "keywords": ""
1092
1320
  },
1093
1321
  "plugin-update": {
1094
- "description": "Tell a destination when a server has a newer Tracearr plugin to install.",
1095
- "keywords": "plugin update upgrade version release notify discord email webhook",
1096
- "name": "Tracearr plugin update"
1322
+ "name": "",
1323
+ "description": "",
1324
+ "keywords": ""
1097
1325
  },
1098
1326
  "server-down": {
1099
- "description": "Tell a destination when a media server stops answering.",
1100
- "keywords": "offline outage unreachable down notify discord email webhook",
1101
- "name": "Server down"
1327
+ "name": "",
1328
+ "description": "",
1329
+ "keywords": ""
1102
1330
  },
1103
1331
  "server-up": {
1104
- "description": "Tell a destination when a media server answers again.",
1105
- "keywords": "online recovered restored back up notify discord email webhook",
1106
- "name": "Server back up"
1332
+ "name": "",
1333
+ "description": "",
1334
+ "keywords": ""
1107
1335
  },
1108
1336
  "server-update": {
1109
- "description": "Tell a destination when a media server has an update available.",
1110
- "keywords": "update upgrade version release plex jellyfin emby notify discord",
1111
- "name": "Media server update"
1337
+ "name": "",
1338
+ "description": "",
1339
+ "keywords": ""
1112
1340
  },
1113
1341
  "simultaneous-locations": {
1114
- "description": "Raise a violation when one account streams from two distant places at the same time.",
1115
- "keywords": "distance location sharing vpn two places at once",
1116
- "name": "Two places at once"
1342
+ "name": "",
1343
+ "description": "",
1344
+ "keywords": ""
1117
1345
  },
1118
1346
  "stream-ended": {
1119
- "description": "Tell a destination every time a stream stops.",
1120
- "keywords": "stop end finish playback notify discord email webhook",
1121
- "name": "Stream ended"
1347
+ "name": "",
1348
+ "description": "",
1349
+ "keywords": ""
1122
1350
  },
1123
1351
  "stream-started": {
1124
- "description": "Tell a destination every time a stream starts.",
1125
- "keywords": "play watch begin start viewing notify discord email webhook",
1126
- "name": "Stream started"
1352
+ "name": "",
1353
+ "description": "",
1354
+ "keywords": ""
1127
1355
  },
1128
1356
  "tracearr-update": {
1129
- "description": "Tell a destination when a new Tracearr release is out.",
1130
- "keywords": "update upgrade version release tracearr notify discord email webhook",
1131
- "name": "Tracearr update"
1357
+ "name": "",
1358
+ "description": "",
1359
+ "keywords": ""
1132
1360
  },
1133
1361
  "transcode-started": {
1134
- "description": "Tell a destination when a stream transcodes video or audio.",
1135
- "keywords": "transcode convert cpu direct play quality notify discord email webhook",
1136
- "name": "Stream is transcoding"
1362
+ "name": "",
1363
+ "description": "",
1364
+ "keywords": ""
1137
1365
  },
1138
1366
  "trust-score-changed": {
1139
- "name": "Trust score changed",
1140
- "description": "Tell a destination when an account's trust score changes.",
1141
- "keywords": "trust score reputation penalty adjusted notify discord email webhook"
1367
+ "name": "",
1368
+ "description": "",
1369
+ "keywords": ""
1142
1370
  }
1143
1371
  },
1144
- "title": "Automations",
1145
- "toggleAutomation": "Turn {{name}} on or off",
1146
- "trustModes": {
1147
- "adjust": {
1148
- "label": "Adjust by amount"
1149
- },
1150
- "reset": {
1151
- "label": "Reset to default (100)"
1372
+ "title": "",
1373
+ "toggleAutomation": "",
1374
+ "tryAdjustingFilters": "",
1375
+ "units": {
1376
+ "km": "",
1377
+ "kmh": "",
1378
+ "mbps": "",
1379
+ "days": "",
1380
+ "minutes": "",
1381
+ "hours": "",
1382
+ "gb": "",
1383
+ "seconds": ""
1384
+ },
1385
+ "updateAutomation": "",
1386
+ "catalog": {
1387
+ "groups": {
1388
+ "sessions": "",
1389
+ "accounts": "",
1390
+ "library": "",
1391
+ "servers": "",
1392
+ "updates": "",
1393
+ "notify": "",
1394
+ "policy": "",
1395
+ "control": ""
1396
+ },
1397
+ "suggested": "",
1398
+ "triggers": {
1399
+ "sessionStarted": {
1400
+ "description": "",
1401
+ "synonyms": ""
1402
+ },
1403
+ "sessionStopped": {
1404
+ "description": "",
1405
+ "synonyms": ""
1406
+ },
1407
+ "sessionTranscodeChanged": {
1408
+ "description": "",
1409
+ "synonyms": ""
1410
+ },
1411
+ "sessionPaused": {
1412
+ "description": "",
1413
+ "synonyms": ""
1414
+ },
1415
+ "sessionHeldFor": {
1416
+ "label": "",
1417
+ "description": "",
1418
+ "synonyms": ""
1419
+ },
1420
+ "accountInactiveFor": {
1421
+ "label": "",
1422
+ "description": "",
1423
+ "synonyms": ""
1424
+ },
1425
+ "accountNewDevice": {
1426
+ "description": "",
1427
+ "synonyms": ""
1428
+ },
1429
+ "accountTrustChanged": {
1430
+ "description": "",
1431
+ "synonyms": ""
1432
+ },
1433
+ "mediaAdded": {
1434
+ "description": "",
1435
+ "synonyms": ""
1436
+ },
1437
+ "mediaUpgraded": {
1438
+ "description": "",
1439
+ "synonyms": ""
1440
+ },
1441
+ "serverDown": {
1442
+ "description": "",
1443
+ "synonyms": ""
1444
+ },
1445
+ "serverUp": {
1446
+ "description": "",
1447
+ "synonyms": ""
1448
+ },
1449
+ "pluginUpdateAvailable": {
1450
+ "description": "",
1451
+ "synonyms": ""
1452
+ },
1453
+ "serverUpdateAvailable": {
1454
+ "description": "",
1455
+ "synonyms": ""
1456
+ },
1457
+ "tracearrUpdateAvailable": {
1458
+ "description": "",
1459
+ "synonyms": ""
1460
+ }
1152
1461
  },
1153
- "set": {
1154
- "label": "Set to value"
1462
+ "actions": {
1463
+ "send": {
1464
+ "synonyms": ""
1465
+ },
1466
+ "trust": {
1467
+ "synonyms": ""
1468
+ },
1469
+ "kill_stream": {
1470
+ "synonyms": ""
1471
+ },
1472
+ "message_client": {
1473
+ "synonyms": ""
1474
+ },
1475
+ "if": {
1476
+ "label": "",
1477
+ "description": "",
1478
+ "synonyms": ""
1479
+ }
1155
1480
  }
1156
1481
  },
1157
- "tryAdjustingFilters": "Try adjusting your filters.",
1158
- "units": {
1159
- "days": "days",
1160
- "gb": "GB",
1161
- "hours": "hours",
1162
- "km": "km",
1163
- "kmh": "km/h",
1164
- "mbps": "Mbps",
1165
- "minutes": "minutes",
1166
- "seconds": "seconds"
1167
- },
1168
- "updateAutomation": "Update Automation",
1169
1482
  "filters": {
1170
- "source": "Where it came from",
1171
- "allSources": "Anywhere",
1483
+ "source": "",
1484
+ "allSources": "",
1172
1485
  "sources": {
1173
- "builtin": "Built-in",
1174
- "import": "Imported",
1175
- "local": "Saved here",
1176
- "own": "Built in the builder"
1486
+ "builtin": "",
1487
+ "import": "",
1488
+ "local": "",
1489
+ "own": ""
1177
1490
  },
1178
- "trigger": "What starts it",
1179
- "allTriggers": "All triggers"
1491
+ "trigger": "",
1492
+ "allTriggers": ""
1180
1493
  },
1181
- "openGallery": "Open the gallery"
1494
+ "openGallery": ""
1182
1495
  },
1183
- "dashboard": {
1184
- "activeUsers": "المستخدمين النشطين",
1185
- "alerts": "التنبيهات",
1186
- "bandwidth": "عرض التردد",
1187
- "noActiveStreams": "لا توجد تدفقات نشطة",
1188
- "nowPlaying": "تشغيل الآن",
1189
- "plays": "مشغلات",
1190
- "serverResources": "موارد الخادم",
1191
- "streamLocations": "مواقع البث",
1192
- "streamsAppearHere": "ستظهر البث النشط هنا عندما يبدأ المستخدمون بمشاهدة",
1193
- "watchTime": "وقت المشاهدة"
1496
+ "terminateStream": {
1497
+ "title": "إنهاء البث",
1498
+ "stopMedia": "إيقاف \"{{mediaTitle}}\" لـ @{{username}}؟",
1499
+ "messageLabel": "رسالة إلى المستخدم (اختياري)",
1500
+ "messagePlaceholder": "على سبيل المثال، الرجاء عدم مشاركة حسابك",
1501
+ "messageHint": "سيتم عرض هذه الرسالة لهم أثناء التشغيل",
1502
+ "terminating": "الإنهاء...",
1503
+ "killStream": "اقتل البث"
1194
1504
  },
1195
- "debug": {
1196
- "clearAutomations": "Delete all automations and runs",
1197
- "clearAutomationsConfirm": "Delete every automation and all of their runs?",
1198
- "clearLibraryCache": "مسح ذاكرة التخزين المؤقت للمكتبة",
1199
- "clearMobileDevices": "مسح الأجهزة المحمولة",
1200
- "clearQueryCache": "مسح ذاكرة التخزين المؤقت للاستعلام",
1201
- "clearServers": "مسح الخوادم",
1202
- "clearSessions": "مسح الجلسات",
1203
- "clearStuckJobs": "مسح وظائف عالقة",
1204
- "clearTerminationLogs": "مسح سجلات الإنهاء",
1205
- "clearUsers": "مسح المستخدمين",
1206
- "clearViolations": "مسح الانتهاكات",
1207
- "clickLoadToView": "انقر فوق \"تحميل\" لعرض لقطات سريعة",
1208
- "cpu": "المعالج",
1209
- "database": "قاعدة البيانات",
1210
- "databaseDesc": "حجم قاعدة البيانات وإحصاءات الجدول",
1211
- "deleteAllSuspicious": "حذف كل الاشتباه",
1212
- "deleteSelected": "حذف المحدد",
1213
- "description": "المرافق الإدارية لاستكشاف الأخطاء وإدارة البيانات",
1214
- "destructiveActions": "الإجراءات المدمرة",
1215
- "environment": "البيئة",
1216
- "factoryReset": "إعادة تعيين المصنع",
1217
- "libraryItems": "عناصر المكتبة",
1218
- "librarySnapshots": "لقطات المكتبة",
1219
- "load": "تحميل",
1220
- "logExplorerUnavailable": "مستكشف السجل متاح فقط في بيئات Docker",
1221
- "logs": "السجلات",
1222
- "maintenance": "صيانة",
1223
- "manageSnapshots": "إدارة لقطات المكتبة المستخدمة لمخططات اتجاه التخزين و جودة التطور",
1224
- "memory": "الذاكرة",
1225
- "noSuspiciousSnapshots": "لم يتم العثور على لقطات مشبوهة",
1226
- "obliterateAllJobs": "محو جميع الوظائف",
1227
- "of": "من",
1228
- "ok": "حسناً",
1229
- "overview": "نظرة عامة",
1230
- "plexAccounts": "حسابات Plex",
1231
- "refreshAggregates": "تحديث المجاميع",
1232
- "selected": "المحدد",
1233
- "snapshots": "snapshot(s)",
1234
- "suspicious": "مشبوهة",
1235
- "suspiciousOnly": "مشبوهة فقط",
1236
- "systemInformation": "معلومات النظام",
1237
- "tasks": "مهام",
1238
- "terminations": "الإنهاء",
1239
- "title": "أدوات التصحيح",
1240
- "totalSize": "الحجم الإجمالي",
1241
- "uptime": "وقت التحديث"
1505
+ "notFound": {
1506
+ "title": "",
1507
+ "heading": "الصفحة غير موجودة",
1508
+ "description": "الصفحة التي تبحث عنها غير موجودة أو تم نقلها."
1509
+ },
1510
+ "settings": {
1511
+ "plex": {
1512
+ "noServersFound": "لم يتم العثور على خوادم Plex",
1513
+ "noServersFoundHint": "تأكد من أن لديك خادم واحد على الأقل من Plex",
1514
+ "noReachableConnections": "لا توجد اتصالات يمكن الوصول إليها",
1515
+ "local": "محلي",
1516
+ "remote": "عن بعد",
1517
+ "custom": "",
1518
+ "secure": "آمن",
1519
+ "mayNotConnect": "قد لا يتم الاتصال",
1520
+ "recommended": "موصى",
1521
+ "customUrl": "عنوان URL مخصص",
1522
+ "connectionError": {
1523
+ "timeout": "",
1524
+ "dns": "",
1525
+ "refused": "",
1526
+ "unreachable": "",
1527
+ "reset": "",
1528
+ "tls": "",
1529
+ "http": "",
1530
+ "unknown": ""
1531
+ },
1532
+ "connectionsReachable": "",
1533
+ "connectionsAvailable": "تتوفر اتصالات {{count}}",
1534
+ "hideFiltered": "إخفاء الفلتر",
1535
+ "showAll": "إظهار الكل",
1536
+ "moreConnections": "+{{count}} المزيد من الاتصالات",
1537
+ "connectingTo": "جاري الاتصال بـ {{name}}...",
1538
+ "noAccountsLinked": "لا توجد حسابات Plex مرتبطة",
1539
+ "noAccountsLinkedHint": "اربط حساب Plex لإضافة خوادم Plex إلى Tracearr.",
1540
+ "linkPlexAccount": "ربط حساب Plex",
1541
+ "linkAnotherAccount": "ربط حساب Plex آخر",
1542
+ "linking": "ربط...",
1543
+ "accountsLinked_one": "ربط حساب Plex {{count}}",
1544
+ "accountsLinked_other": "{{count}} حسابات Plex مرتبطة",
1545
+ "noAccountsLinkedShort": "لا توجد حسابات Plex مرتبطة",
1546
+ "loginEnabled": "تسجيل الدخول مفعل",
1547
+ "serversConnected_one": "",
1548
+ "serversConnected_other": "متصل بخوادم {{count}}",
1549
+ "unlinkAccount": "إلغاء ربط حساب Plex هذا",
1550
+ "reauthorizeAccount": "",
1551
+ "deleteServersFirst": "حذف الخوادم المتصلة أولاً لإلغاء ربط هذا الحساب",
1552
+ "linkedAccounts": "حسابات Plex المرتبطة",
1553
+ "linkedAccountsDesc": "إدارة حسابات Plex يمكنك إضافة خوادم منها.",
1554
+ "noAccountsYet": "لا توجد حسابات Plex مرتبطة بعد.",
1555
+ "unlinkPlexAccount": "إلغاء ربط حساب Plex",
1556
+ "unlinkConfirm": "هل أنت متأكد من أنك تريد إلغاء ربط حساب Plex هذا؟ لن تتمكن من إضافة خوادم من هذا الحساب حتى تقوم بربطه مرة أخرى."
1557
+ },
1558
+ "destinations": {
1559
+ "add": "",
1560
+ "builtinNote": "",
1561
+ "clearSecret": "",
1562
+ "delete": "",
1563
+ "deleteConfirm": "",
1564
+ "description": "",
1565
+ "empty": "",
1566
+ "fields": {
1567
+ "webhookUrl": "",
1568
+ "url": "",
1569
+ "serverUrl": "",
1570
+ "apiUrl": "",
1571
+ "topic": "",
1572
+ "authToken": "",
1573
+ "userKey": "",
1574
+ "apiToken": ""
1575
+ },
1576
+ "hints": {
1577
+ "authTokenOptional": ""
1578
+ },
1579
+ "ownerOnly": "",
1580
+ "pushNote": "",
1581
+ "receiveViolations": "",
1582
+ "receiveViolationsHint": "",
1583
+ "reencrypt": "",
1584
+ "secretSet": "",
1585
+ "test": "",
1586
+ "testHint": "",
1587
+ "testNeedsForm": "",
1588
+ "title": "",
1589
+ "types": {
1590
+ "discord": "",
1591
+ "jsonWebhook": "",
1592
+ "ntfy": "",
1593
+ "gotify": "",
1594
+ "apprise": "",
1595
+ "pushover": "",
1596
+ "push": "",
1597
+ "webToast": ""
1598
+ },
1599
+ "usedBy": "",
1600
+ "usedBy_other": "",
1601
+ "webToastNote": ""
1602
+ },
1603
+ "jobs": {
1604
+ "runNow": "تشغيل الآن",
1605
+ "running": "جارٍ...",
1606
+ "lastRun": "آخر تشغيل",
1607
+ "nextRun": "التشغيل التالي",
1608
+ "schedule": "الجدول"
1609
+ },
1610
+ "mobile": {
1611
+ "editDisplayName": "تحرير اسم العرض",
1612
+ "editDisplayNameDesc": "تغيير كيفية ظهور هذا الجهاز في قائمة جهازك",
1613
+ "displayName": "اسم العرض",
1614
+ "displayNamePlaceholder": "على سبيل المثال أيفون الخاص بي",
1615
+ "updating": "تحديث..."
1616
+ }
1617
+ },
1618
+ "maintenance": {
1619
+ "startingTitle": "بدأ Tracearr في الإنتظار...",
1620
+ "interruptionTitle": "انقطاع الخدمة",
1621
+ "startingDescription": "الخادم في انتظار أن تصبح خدمات الخلفية متاحة. سيتم تحديث هذه الصفحة تلقائياً عندما يكون كل شيء جاهزاً.",
1622
+ "interruptionDescription": "واحدة أو أكثر من خدمات النسخ الاحتياطي أصبحت غير متوفرة. سيتم تحديث هذه الصفحة تلقائياً عند استعادة الاتصال.",
1623
+ "unreachable": "",
1624
+ "restoreTitle": "الاستعادة من النسخة الاحتياطية...",
1625
+ "restoreFailed": "فشل الاستعادة",
1626
+ "restorePhase": {
1627
+ "validating": "التحقق من النسخ الاحتياطي",
1628
+ "creating_restore_point": "إنشاء نقطة الاستعادة",
1629
+ "shutting_down": "إغلاق الخدمات",
1630
+ "restoring_database": "استعادة قاعدة البيانات",
1631
+ "running_migrations": "عمليات هجرة جارية",
1632
+ "rebuilding_aggregates": "إعادة بناء المجاميع",
1633
+ "restarting": "خدمات إعادة التشغيل",
1634
+ "complete": ""
1635
+ },
1636
+ "initStep": {
1637
+ "migrations": "",
1638
+ "timescale": "",
1639
+ "services": ""
1640
+ },
1641
+ "doNotRestart": ""
1642
+ },
1643
+ "map": {
1644
+ "allUsers": "جميع المستخدمين",
1645
+ "allTypes": "جميع الأنواع",
1646
+ "heatmap": "خريطة حرارية",
1647
+ "circles": "دوائر",
1648
+ "streams": "تدفق",
1649
+ "locations": "المواقع",
1650
+ "allActivity": "جميع الأنشطة",
1651
+ "basemapMissing": "Basemap not installed"
1242
1652
  },
1243
1653
  "devices": {
1244
- "analyzedSessions": "Analyzed Sessions",
1245
- "analyzedSessionsTooltip": "Sessions in device + codec combinations with at least {{count}} sessions and a known codec. Rare combinations and sessions with no codec info aren't counted.",
1246
- "compatibilityMatrix": "مصفوفة التوافق",
1247
- "compatibilityMatrixDesc": "معدلات التشغيل المباشر حسب الجهاز وترميز الفيديو. مرتبة حسب حجم الجلسة.",
1654
+ "title": "توافق الجهاز",
1248
1655
  "description": "شاهد الأجهزة التي توجه اللعب ضد الترميز كل كود",
1249
- "deviceAndCodec": "الجهاز + الترميز",
1656
+ "analyzedSessions": "",
1657
+ "analyzedSessionsTooltip": "",
1658
+ "directPlayRate": "معدل اللعب المباشر",
1659
+ "videoAndAudio": "الفيديو + الصوت",
1660
+ "uniqueDevices": "أجهزة فريدة",
1661
+ "uniqueCodecs": "ترميز فريد",
1250
1662
  "deviceHealth": "صحة الجهاز",
1251
1663
  "deviceHealthDesc": "معدل التشغيل المباشر حسب نوع الجهاز",
1252
- "directPlayHigh": "> 80% مباشر",
1253
- "directPlayLow": "<50%",
1254
- "directPlayMid": "50-79%",
1255
- "directPlayRate": "معدل اللعب المباشر",
1256
- "legend": "اسطوري:",
1257
- "noDeviceDataPeriod": "لا توجد بيانات الجهاز في هذه الفترة",
1258
- "noTranscodeHotspots": "لا توجد نقاط اتصال",
1259
- "noTranscodingUsers": "لم يتم العثور على مستخدمين ترميز",
1260
- "pctOfTotal": "% من المجموع",
1261
- "title": "توافق الجهاز",
1262
- "topTranscodingUsers": "أعلى المستخدمين المترجمين",
1263
- "topTranscodingUsersDesc": "المستخدمين الذين يسببون أكثر المعاملات على الخادم الخاص بك",
1264
1664
  "transcodeHotspots": "النقاط الساخنة للتحرير",
1265
1665
  "transcodeHotspotsDesc": "التركيبات المتسببة في أكثر التعاملات",
1666
+ "deviceAndCodec": "الجهاز + الترميز",
1266
1667
  "transcodes": "شفرات",
1267
- "uniqueCodecs": "ترميز فريد",
1268
- "uniqueDevices": "أجهزة فريدة",
1269
- "videoAndAudio": "الفيديو + الصوت"
1668
+ "pctOfTotal": "% من المجموع",
1669
+ "noTranscodeHotspots": "لا توجد نقاط اتصال",
1670
+ "compatibilityMatrix": "مصفوفة التوافق",
1671
+ "compatibilityMatrixDesc": "معدلات التشغيل المباشر حسب الجهاز وترميز الفيديو. مرتبة حسب حجم الجلسة.",
1672
+ "noDeviceDataPeriod": "لا توجد بيانات الجهاز في هذه الفترة",
1673
+ "legend": "اسطوري:",
1674
+ "directPlayHigh": "> 80% مباشر",
1675
+ "directPlayMid": "",
1676
+ "directPlayLow": "",
1677
+ "topTranscodingUsers": "أعلى المستخدمين المترجمين",
1678
+ "topTranscodingUsersDesc": "المستخدمين الذين يسببون أكثر المعاملات على الخادم الخاص بك",
1679
+ "noTranscodingUsers": "لم يتم العثور على مستخدمين ترميز"
1270
1680
  },
1271
- "history": {
1272
- "deleteSession_one": "حذف جلسة {{count}}",
1273
- "deleteSession_other": "حذف جلسه {{count}}",
1274
- "deleteSessionsConfirm": "هل أنت متأكد من أنك تريد الحذف؟ لا يمكن التراجع عن هذا الإجراء.",
1275
- "description": "تصفح جميع جلسات البث مع تصفية قوية",
1276
- "loadingMore": "تحميل المزيد...",
1277
- "scrollForMore": "التمرير للمزيد",
1278
- "showingAllResults": "عرض جميع النتائج {{total}}",
1279
- "title": "التاريخ"
1681
+ "statsBandwidth": {
1682
+ "title": "عرض التردد",
1683
+ "description": "تبث استخدام عرض النطاق الترددي وتحليل معدل البتة",
1684
+ "dataTransferred": "البيانات المنقولة",
1685
+ "avgBitrate": "متوسط معدل البيتر",
1686
+ "avgBitrateMbps": "متوسط معدل البيت (Mbps)",
1687
+ "peakBitrate": "الذروة: {{value}} Mbps",
1688
+ "totalWatchTime": "مجموع وقت المشاهدة",
1689
+ "uniqueUsers": "المستخدمين الفريدين",
1690
+ "dailyUsage": "استخدام عرض التردد اليومي",
1691
+ "dailyUsageDesc": "متوسط معدل البتات وعدد الجلسات بمرور الوقت",
1692
+ "topUsers": "أعلى عرض ترددي للمستخدمين",
1693
+ "topUsersDesc": "المستخدمين الذين يستهلكون أكثر عرض ترددي",
1694
+ "noData": "لا تتوفر بيانات عرض النطاق الترددي"
1280
1695
  },
1281
- "library": {
1282
- "description": "أفضل الأفلام والعروض على الخادم الخاص بك",
1283
- "emptyState": {
1284
- "backfillAvailable": {
1285
- "bodyGeneric": "Generate historical snapshots to see library trends over time.",
1286
- "bodyWithDays": "Your library has {{days}} days of history. Generate snapshots to see trends in charts.",
1287
- "syncRunningBody": "Historical data generation will start automatically once the sync completes.",
1288
- "syncRunningTitle": "Library sync in progress...",
1289
- "title": "Historical data available"
1290
- },
1291
- "backfillRunning": {
1292
- "fallbackBody": "Creating snapshots from library history. This may take a few minutes.",
1293
- "progress": "{{processed}} of {{total}} libraries",
1294
- "snapshotsSuffix": " ({{count}} snapshots)",
1295
- "title": "Generating historical data..."
1296
- },
1297
- "checkingStatus": "Checking library status...",
1298
- "generateHistory": "Generate History",
1299
- "multiServer": {
1300
- "body": "Sync the servers below to see combined library statistics.",
1301
- "needsBackfillIntro": "These servers are synced but have no historical data yet:",
1302
- "title": "Some libraries need attention"
1696
+ "statsUsers": {
1697
+ "noActivity": "لا يوجد نشاط بعد",
1698
+ "noActivityDesc": "ابدأ البث لرؤية أعلى المستخدمين هنا",
1699
+ "top3": "أفضل 3",
1700
+ "runnersUp": "تشغيل أعلى"
1701
+ },
1702
+ "plexCallback": {
1703
+ "authComplete": "اكتمل المصادقة",
1704
+ "windowWillClose": "سيتم إغلاق هذه النافذة تلقائياً..."
1705
+ },
1706
+ "apiDocs": {
1707
+ "backToSettings": "العودة إلى الإعدادات",
1708
+ "apiKeyAutoLoaded": "مفتاح API التحميل التلقائي",
1709
+ "noApiKey": "لم يتم إنشاء مفتاح API - إنشاء واحد في الإعدادات لاختبار نقاط النهاية",
1710
+ "versionSwitcherLabel": "",
1711
+ "versionV1": "",
1712
+ "versionV2": "",
1713
+ "specLoadError": ""
1714
+ },
1715
+ "debug": {
1716
+ "title": "أدوات التصحيح",
1717
+ "description": "المرافق الإدارية لاستكشاف الأخطاء وإدارة البيانات",
1718
+ "overview": "نظرة عامة",
1719
+ "librarySnapshots": "لقطات المكتبة",
1720
+ "tasks": "مهام",
1721
+ "logs": "السجلات",
1722
+ "plexAccounts": "حسابات Plex",
1723
+ "terminations": "الإنهاء",
1724
+ "libraryItems": "عناصر المكتبة",
1725
+ "environment": "البيئة",
1726
+ "systemInformation": "معلومات النظام",
1727
+ "cpu": "المعالج",
1728
+ "memory": "الذاكرة",
1729
+ "uptime": "وقت التحديث",
1730
+ "database": "قاعدة البيانات",
1731
+ "databaseDesc": "حجم قاعدة البيانات وإحصاءات الجدول",
1732
+ "totalSize": "الحجم الإجمالي",
1733
+ "maintenance": "صيانة",
1734
+ "destructiveActions": "الإجراءات المدمرة",
1735
+ "refreshAggregates": "تحديث المجاميع",
1736
+ "clearStuckJobs": "مسح وظائف عالقة",
1737
+ "obliterateAllJobs": "محو جميع الوظائف",
1738
+ "clearQueryCache": "مسح ذاكرة التخزين المؤقت للاستعلام",
1739
+ "clearMobileDevices": "مسح الأجهزة المحمولة",
1740
+ "clearViolations": "مسح الانتهاكات",
1741
+ "clearAutomations": "",
1742
+ "clearAutomationsConfirm": "",
1743
+ "clearTerminationLogs": "مسح سجلات الإنهاء",
1744
+ "clearLibraryCache": "مسح ذاكرة التخزين المؤقت للمكتبة",
1745
+ "clearSessions": "مسح الجلسات",
1746
+ "clearUsers": "مسح المستخدمين",
1747
+ "clearServers": "مسح الخوادم",
1748
+ "factoryReset": "إعادة تعيين المصنع",
1749
+ "manageSnapshots": "إدارة لقطات المكتبة المستخدمة لمخططات اتجاه التخزين و جودة التطور",
1750
+ "suspiciousOnly": "مشبوهة فقط",
1751
+ "load": "تحميل",
1752
+ "noSuspiciousSnapshots": "لم يتم العثور على لقطات مشبوهة",
1753
+ "clickLoadToView": "انقر فوق \"تحميل\" لعرض لقطات سريعة",
1754
+ "deleteSelected": "حذف المحدد",
1755
+ "deleteAllSuspicious": "حذف كل الاشتباه",
1756
+ "suspicious": "مشبوهة",
1757
+ "ok": "حسناً",
1758
+ "selected": "المحدد",
1759
+ "snapshots": "",
1760
+ "of": "من",
1761
+ "logExplorerUnavailable": "مستكشف السجل متاح فقط في بيئات Docker"
1762
+ },
1763
+ "media": {
1764
+ "landing": {
1765
+ "title": "وسائط",
1766
+ "lens": {
1767
+ "label": "العرض كـ",
1768
+ "allUsers": "جميع المستخدمين"
1303
1769
  },
1304
- "noMedia": {
1305
- "body": "This library is synced but doesn't have any movies or shows in it yet.",
1306
- "title": "No movies or shows yet"
1770
+ "shelves": {
1771
+ "recentlyAddedMovies": "",
1772
+ "recentlyAddedShows": "",
1773
+ "mostPopularMovies": "",
1774
+ "mostPopularShows": "",
1775
+ "emptyRecentlyAdded": "",
1776
+ "emptyMostPopular": "",
1777
+ "captionRecentlyAdded": "",
1778
+ "captionMostPopular": {
1779
+ "day": "",
1780
+ "week": "",
1781
+ "month": "",
1782
+ "year": "",
1783
+ "all": "",
1784
+ "custom": ""
1785
+ }
1307
1786
  },
1308
- "notSynced": {
1309
- "body": "Library statistics will appear here once the library has been synced. This typically happens automatically every hour.",
1310
- "title": "Library not synced yet"
1787
+ "card": {
1788
+ "newEpisodes_one": "{{count}} حلقة جديدة",
1789
+ "newEpisodes_other": "{{count}} حلقات جديدة",
1790
+ "addedAgo": "أُضيف {{date}}",
1791
+ "addedCompactAgo": "",
1792
+ "newEpisodesChip": ""
1311
1793
  },
1312
- "notSyncedShort": "Not synced yet",
1313
- "starting": "Starting...",
1314
- "syncInProgress": {
1315
- "body": "Library statistics will appear once the sync completes. This may take a few minutes depending on library size.",
1316
- "title": "Library sync in progress..."
1794
+ "deadWeight": {
1795
+ "title": "",
1796
+ "summary": "",
1797
+ "empty": "",
1798
+ "columns": {
1799
+ "poster": "",
1800
+ "title": "",
1801
+ "size": "",
1802
+ "added": "",
1803
+ "servers": ""
1804
+ },
1805
+ "viewAll": "",
1806
+ "viewAllTooltip": ""
1317
1807
  },
1318
- "syncNow": "Sync Now",
1319
- "syncing": "Syncing...",
1320
- "toast": {
1321
- "backfillCompleteTitle": "Backfill complete",
1322
- "backfillErrorTitle": "Backfill failed",
1323
- "backfillFailedTitle": "Failed to start backfill",
1324
- "backfillStartedDesc": "Historical snapshots are being generated.",
1325
- "backfillStartedTitle": "Backfill started",
1326
- "genericRetry": "Please try again.",
1327
- "noServerSelected": "No server selected",
1328
- "syncFailedTitle": "Failed to start sync",
1329
- "syncStartedDesc": "This may take a few minutes depending on library size.",
1330
- "syncStartedTitle": "Library sync started"
1331
- }
1332
- },
1333
- "noMoviePlays": "لا يوجد أفلام مشغلة في هذه الفترة",
1334
- "noShowPlays": "لا يوجد مسلسل تلفزيوني في هذه الفترة",
1335
- "overview": {
1336
- "added": "أضيف",
1337
- "description": "مقاييس صحة المكتبة ونموها",
1338
- "failedToLoad": "فشل تحميل إحصائيات المكتبة",
1339
- "failedToLoadDesc": "تعذر جلب بيانات المكتبة. الرجاء المحاولة مرة أخرى.",
1340
- "lastUpdated": "آخر تحديث:",
1341
- "libraryGrowth": "نمو المكتبة",
1342
- "serversNeedSync": "These servers need to sync:",
1343
- "shows": "مسلسل",
1344
- "thisMonth": "هذا الشهر",
1345
- "thisPeriod": "هذه الفترة",
1346
- "thisWeek": "هذا الأسبوع",
1347
- "thisYear": "هذا العام",
1348
- "totalItems": "مجموع العناصر"
1349
- },
1350
- "quality": {
1351
- "all": "الكل",
1352
- "description": "الدقة وتوزيع الكود البرمجي",
1353
- "failedToLoad": "فشل تحميل بيانات الجودة",
1354
- "failedToLoadDesc": "تعذر جلب بيانات الجودة. الرجاء المحاولة مرة أخرى.",
1355
- "qualityEvolution": "تطور الجودة",
1356
- "title": "الجودة"
1357
- },
1358
- "storage": {
1359
- "avgHoursPerGB": "متوسط الساعات/غيغابايت",
1360
- "colCopies": "Copies",
1361
- "colMatchType": "Match Type",
1362
- "colRecoverable": "Recoverable Space",
1363
- "colTitle": "Title",
1364
- "confidence": "الثقة",
1365
- "confidenceHigh": "مرتفع",
1366
- "confidenceLow": "منخفض",
1367
- "confidenceMedium": "متوسط",
1368
- "contentROI": "Content ROI",
1369
- "contentROIDesc": "قيمة المشاهدة لكل تكلفة تخزين",
1370
- "days": "أيام",
1371
- "description": "استخدام التخزين، والتنبؤات، والتحسين",
1372
- "duplicates": "التكرارات",
1373
- "duplicatesFailed": "Failed to load duplicates",
1374
- "duplicatesSubtitle": "Titles with more than one copy or file, across servers, libraries, and versions",
1375
- "duplicatesTitle": "Duplicates",
1376
- "failedToLoad": "فشل تحميل بيانات التخزين",
1377
- "failedToLoadDesc": "تعذر جلب بيانات التخزين. الرجاء المحاولة مرة أخرى.",
1378
- "groups": "المجموعات",
1379
- "growthPreChangeover": "based on pre-update history",
1380
- "growthRate": "معدل النمو",
1381
- "insufficientData": "بيانات غير كافية",
1382
- "items": "العناصر",
1383
- "loadingDuplicates": "Loading duplicates...",
1384
- "mirror": "Mirror",
1385
- "noDuplicatesDesc": "No titles with more than one physical file detected.",
1386
- "noDuplicatesTitle": "No duplicates found",
1387
- "of": "من",
1388
- "predictions": "التنبؤات",
1389
- "recoverable": "يمكن الاسترداد",
1390
- "sameServer": "Same server",
1391
- "staleContent": "محتوى عادي",
1392
- "staleContentDesc": "المحتوى الذي قد يكون مرشحاً للإزالة",
1393
- "storageTrend": "اتجاه التخزين",
1394
- "title": "التخزين",
1395
- "totalStorage": "إجمالي التخزين",
1396
- "unused": "غير مستعمل",
1397
- "zeroGrowth": "0 GB/mo"
1808
+ "loadError": ""
1398
1809
  },
1399
- "title": "المكتبة",
1400
- "topMovies": "أفضل الأفلام",
1401
- "topShows": "أفضل المسلسلات التلفزيونية",
1402
- "versionsBackfill": {
1403
- "action": "Sync now",
1404
- "banner": "File version data is still being collected for this server. Run a library sync to finish.",
1405
- "syncFailed": "Sync failed to start on {{count}} server(s). Check your permissions and server status.",
1406
- "syncStarted": "Library sync started."
1810
+ "movies": {
1811
+ "title": "أفلام"
1407
1812
  },
1408
- "watch": {
1409
- "avgPerItem": "متوسط لكل عنصر",
1410
- "bingeHighlights": "أضواء Binge",
1411
- "bingeHighlightsDesc": "يظهر مع أنماط العرض الأكثر كثافة",
1412
- "bingeSessions": "جلسات باينج",
1413
- "busiest": "مشغول:",
1414
- "completed": "مكتمل",
1415
- "description": "عرض السلوك وإشراك المحتوى",
1416
- "failedToLoad": "فشل تحميل تحليلات الساعة",
1417
- "failedToLoadDesc": "لا يمكن جلب بيانات الساعة.",
1418
- "monthlyTrends": "الاتجاهات الشهرية",
1419
- "noData": "لا توجد بيانات مشاهدة بعد",
1420
- "noDataDesc": "سوف تظهر تحليلات المشاهدة هنا بمجرد تشغيل المحتوى. تحقق مرة أخرى بعد بعض نشاط المشاهدة.",
1421
- "peak": "ذروة:",
1422
- "peakHour": "ساعة الذروة",
1423
- "percentWatched": "% مشاهدة",
1424
- "quietest": "هادئ:",
1425
- "title": "تحليلات المشاهدة",
1426
- "totalWatchTime": "مجموع وقت المشاهدة",
1427
- "viewingHours": "عرض الساعات",
1428
- "watched": "مشاهدة"
1429
- }
1430
- },
1431
- "login": {
1432
- "accountCreated": "تم إنشاء الحساب بنجاح!",
1433
- "claimCodeDescription": "تحقق من سجلات الخادم الخاص بك للحصول على رمز المطالبة للمضي قدما في الإعداد",
1434
- "claimCodeHint": "يتم طباعة رمز المطالبة في سجلات الخادم عند بدء تشغيل الحاوية",
1435
- "claimCodeLabel": "رمز المطالبة",
1436
- "claimCodeRequired": "يتطلب الإعداد لأول مرة رمز المطالبة",
1437
- "claimCodeSecurityNote": "هذا التدبير الأمني يضمن فقط للمستخدمين المصرح لهم بإكمال الإعداد لأول مرة",
1438
- "completeInPopup": "إكمال تسجيل الدخول في النافذة المنبثقة",
1439
- "connectedTo": "متصل بـ {{name}}",
1440
- "continueWith": "Continue with {{provider}}",
1441
- "createAccountDescription": "إنشاء حساب لإدارة خوادم الوسائط الخاصة بك",
1442
- "createAccountFailed": "فشل في إنشاء الحساب",
1443
- "createAccountHeading": "أنشئ حسابك للبدء",
1444
- "displayNamePlaceholder": "اختر اسم العرض",
1445
- "emailPlaceholder": "خاصتك @email.com",
1446
- "enterClaimCode": "أدخل رمز المطالبة",
1447
- "identifierPlaceholder": "Username or email address",
1448
- "invalidCredentials": "البريد الإلكتروني أو كلمة المرور غير صالحة",
1449
- "localDisabledHint": "Local sign-in is disabled for this instance. Ask an admin to run `enable-local-login` from the Tracearr CLI to re-enable it.",
1450
- "loginFailed": "فشل تسجيل الدخول",
1451
- "oidcError": "Single sign-on failed. Please try again or use another sign-in method.",
1452
- "passwordPlaceholder": "8 أحرف على الأقل",
1453
- "plexAuthFailed": "فشل مصادقة Plex",
1454
- "plexStartFailed": "فشل في بدء تسجيل الدخول لـ Plex",
1455
- "reopenPlexLogin": "إعادة فتح Plex تسجيل الدخول",
1456
- "selectPlexServer": "حدد خادم Plex الخاص بك",
1457
- "serverConnectFailed": "فشل الاتصال بالخادم",
1458
- "setupNote": "بعد إنشاء حسابك، ستضيف خوادم Plex أو Jellyfin من الإعدادات.",
1459
- "signInDescription": "قم بتسجيل الدخول للوصول إلى لوحة التحكم",
1460
- "signInHeading": "تسجيل الدخول إلى حسابك",
1461
- "signupFailed": "فشل التسجيل",
1462
- "tagline": "Tracearr - إدارة الوصول إلى البث",
1463
- "title": "Tracearr",
1464
- "username": "Username",
1465
- "usernameOrEmail": "Username or Email",
1466
- "usernamePlaceholder": "yourusername",
1467
- "validateClaimCode": "Validate Claim Code",
1468
- "waitingForPlex": "في انتظار إذن Plex...",
1469
- "yourPasswordPlaceholder": "كلمة المرور الخاصة بك"
1470
- },
1471
- "maintenance": {
1472
- "doNotRestart": "Do not restart or stop the server while this runs. Interrupting it can leave the database half-upgraded.",
1473
- "initStep": {
1474
- "migrations": "Applying database migrations",
1475
- "services": "Starting services",
1476
- "timescale": "Preparing TimescaleDB (this can take a while after an upgrade)"
1813
+ "shows": {
1814
+ "title": "مسلسلات"
1477
1815
  },
1478
- "interruptionDescription": "واحدة أو أكثر من خدمات النسخ الاحتياطي أصبحت غير متوفرة. سيتم تحديث هذه الصفحة تلقائياً عند استعادة الاتصال.",
1479
- "interruptionTitle": "انقطاع الخدمة",
1480
- "restoreFailed": "فشل الاستعادة",
1481
- "restorePhase": {
1482
- "complete": "Restore complete",
1483
- "creating_restore_point": "إنشاء نقطة الاستعادة",
1484
- "rebuilding_aggregates": "إعادة بناء المجاميع",
1485
- "restarting": "خدمات إعادة التشغيل",
1486
- "restoring_database": "استعادة قاعدة البيانات",
1487
- "running_migrations": "عمليات هجرة جارية",
1488
- "shutting_down": "إغلاق الخدمات",
1489
- "validating": "التحقق من النسخ الاحتياطي"
1816
+ "genres": {
1817
+ "title": "الأنواع",
1818
+ "subtitle": "",
1819
+ "chart": {
1820
+ "title": "",
1821
+ "valueLabel": "",
1822
+ "itemCount_one": "",
1823
+ "itemCount_other": "",
1824
+ "ariaLabel": ""
1825
+ },
1826
+ "table": {
1827
+ "title": "",
1828
+ "columns": {
1829
+ "genre": "",
1830
+ "items": "",
1831
+ "plays": "",
1832
+ "watchTime": ""
1833
+ },
1834
+ "browseMovies": "",
1835
+ "browseShows": ""
1836
+ },
1837
+ "empty": {
1838
+ "title": "",
1839
+ "description": ""
1840
+ },
1841
+ "loadError": ""
1490
1842
  },
1491
- "restoreTitle": "الاستعادة من النسخة الاحتياطية...",
1492
- "startingDescription": "الخادم في انتظار أن تصبح خدمات الخلفية متاحة. سيتم تحديث هذه الصفحة تلقائياً عندما يكون كل شيء جاهزاً.",
1493
- "startingTitle": "بدأ Tracearr في الإنتظار...",
1494
- "unreachable": "Can't reach the Tracearr server right now. Live updates are paused and will resume on their own."
1495
- },
1496
- "map": {
1497
- "allActivity": "جميع الأنشطة",
1498
- "allTypes": "جميع الأنواع",
1499
- "allUsers": "جميع المستخدمين",
1500
- "circles": "دوائر",
1501
- "heatmap": "خريطة حرارية",
1502
- "locations": "المواقع",
1503
- "streams": "تدفق"
1504
- },
1505
- "media": {
1506
1843
  "detail": {
1844
+ "title": "تفاصيل الوسائط",
1507
1845
  "breadcrumb": {
1508
- "ariaLabel": "Breadcrumb"
1846
+ "ariaLabel": ""
1509
1847
  },
1510
- "copies": {
1511
- "columns": {
1512
- "added": "Added",
1513
- "episodes": "Episodes",
1514
- "library": "Library",
1515
- "quality": "Quality",
1516
- "server": "Server",
1517
- "size": "Size"
1518
- },
1519
- "loadError": "Couldn't load copies",
1520
- "title": "Copies",
1521
- "unknownLibrary": "Unknown library",
1522
- "versionLabel": "File {{index}}"
1848
+ "notFound": {
1849
+ "title": "",
1850
+ "message": "",
1851
+ "backLink": ""
1523
1852
  },
1524
1853
  "hero": {
1525
- "actions": {
1526
- "fullHistory": "Full history",
1527
- "openOnServer": "Open on server"
1854
+ "loadError": "",
1855
+ "meta": {
1856
+ "seasons_one": "",
1857
+ "seasons_other": "",
1858
+ "episodes_one": "",
1859
+ "episodes_other": ""
1528
1860
  },
1529
1861
  "availability": {
1530
- "added": "added {{date}}",
1531
- "addedRemoved": "added {{added}} – removed {{removed}}",
1532
- "replaced": "replaced {{date}}"
1533
- },
1534
- "loadError": "Couldn't load this title",
1535
- "meta": {
1536
- "episodes_one": "{{count}} episode",
1537
- "episodes_other": "{{count}} episodes",
1538
- "seasons_one": "{{count}} season",
1539
- "seasons_other": "{{count}} seasons"
1862
+ "added": "",
1863
+ "addedRemoved": "",
1864
+ "replaced": ""
1540
1865
  },
1541
1866
  "removedEverywhere": {
1542
- "caption": "No longer available on any connected server"
1543
- }
1544
- },
1545
- "history": {
1546
- "columns": {
1547
- "content": "Content",
1548
- "date": "Date",
1549
- "duration": "Duration",
1550
- "server": "Server",
1551
- "user": "User"
1867
+ "caption": ""
1552
1868
  },
1553
- "empty": "No plays recorded yet",
1554
- "loadError": "Couldn't load history",
1555
- "notWatched": "Not finished",
1556
- "title": "History",
1557
- "watched": "Watched"
1869
+ "actions": {
1870
+ "fullHistory": "",
1871
+ "openOnServer": ""
1872
+ }
1558
1873
  },
1559
1874
  "kpis": {
1560
- "ariaLabel": "Watch statistics",
1561
- "completion": {
1562
- "detail": "{{finished}} of {{total}} finished every episode",
1563
- "detailMovie": "{{finished}} of {{total}} watched to completion",
1564
- "label": "Avg completion"
1565
- },
1566
- "completionLoadError": "Couldn't load completion",
1567
- "loadError": "Couldn't load watch statistics",
1875
+ "ariaLabel": "",
1876
+ "loadError": "",
1877
+ "completionLoadError": "",
1568
1878
  "plays": {
1569
- "caption": "resume chains, short sessions excluded",
1570
- "label": "Plays, all time"
1879
+ "label": "",
1880
+ "caption": ""
1881
+ },
1882
+ "watchTime": {
1883
+ "label": "",
1884
+ "detail": ""
1571
1885
  },
1572
1886
  "viewers": {
1573
- "detail": "across all servers",
1574
- "label": "Viewers"
1887
+ "label": "",
1888
+ "detail": ""
1575
1889
  },
1576
- "watchTime": {
1577
- "detail": "+{{hours}}h in the last 30 days",
1578
- "label": "Watch time"
1890
+ "completion": {
1891
+ "label": "",
1892
+ "detail": "",
1893
+ "detailMovie": ""
1579
1894
  }
1580
1895
  },
1581
- "notFound": {
1582
- "backLink": "Back to Media",
1583
- "message": "This title doesn't exist or you don't have access to it.",
1584
- "title": "Media not found"
1585
- },
1586
- "platforms": {
1896
+ "watchers": {
1897
+ "title": "",
1898
+ "loadError": "",
1899
+ "empty": "",
1900
+ "lastWatchedAgo": "",
1901
+ "completionLabel": "",
1587
1902
  "columns": {
1588
- "platform": "Platform",
1589
- "plays": "Plays",
1590
- "watchTime": "Watch time"
1591
- },
1592
- "empty": "No platform data yet",
1593
- "loadError": "Couldn't load platform breakdown",
1594
- "title": "Platforms",
1595
- "unknown": "Unknown"
1903
+ "user": "",
1904
+ "plays": "",
1905
+ "episodes": "",
1906
+ "completion": "",
1907
+ "lastWatched": ""
1908
+ }
1596
1909
  },
1597
1910
  "seasons": {
1598
- "empty": "No season data yet",
1599
- "episodeCount_one": "{{count}} episode",
1600
- "episodeCount_other": "{{count}} episodes",
1911
+ "title": "",
1912
+ "loadError": "",
1913
+ "empty": "",
1914
+ "episodeCount_one": "",
1915
+ "episodeCount_other": "",
1916
+ "watchedPct": "",
1917
+ "stripSummary": "",
1601
1918
  "episodeLabel": {
1602
- "partial": "{{code}}: partially watched",
1603
- "unwatched": "{{code}}: unwatched",
1604
- "watched": "{{code}}: watched"
1605
- },
1606
- "loadError": "Couldn't load season data",
1607
- "stripSummary": "{{season}}: {{percent}}% watched",
1608
- "title": "Seasons",
1609
- "watchedPct": "{{percent}}% watched"
1919
+ "watched": "",
1920
+ "partial": "",
1921
+ "unwatched": ""
1922
+ }
1610
1923
  },
1611
- "title": "تفاصيل الوسائط",
1612
- "watchers": {
1924
+ "platforms": {
1925
+ "title": "",
1926
+ "loadError": "",
1927
+ "empty": "",
1928
+ "unknown": "",
1613
1929
  "columns": {
1614
- "completion": "Completion",
1615
- "episodes": "Episodes",
1616
- "lastWatched": "Last watched",
1617
- "plays": "Plays",
1618
- "user": "User"
1619
- },
1620
- "completionLabel": "{{percent}}% complete",
1621
- "empty": "No one has watched this yet.",
1622
- "lastWatchedAgo": "{{age}} ago",
1623
- "loadError": "Couldn't load watchers",
1624
- "title": "Watchers"
1625
- }
1626
- },
1627
- "genres": {
1628
- "chart": {
1629
- "ariaLabel": "Bar chart of plays by genre, sorted highest to lowest. The full breakdown is available in the table below.",
1630
- "itemCount_one": "{{count}} title",
1631
- "itemCount_other": "{{count}} titles",
1632
- "title": "Plays by genre",
1633
- "valueLabel": "Plays"
1634
- },
1635
- "empty": {
1636
- "description": "Genres come from your media servers' metadata sync. Check back after the next sync completes.",
1637
- "title": "No genres captured yet"
1930
+ "platform": "",
1931
+ "plays": "",
1932
+ "watchTime": ""
1933
+ }
1638
1934
  },
1639
- "loadError": "Couldn't load genres",
1640
- "subtitle": "Plays and watch time by genre, across every server in view.",
1641
- "table": {
1642
- "browseMovies": "Browse {{genre}} movies",
1643
- "browseShows": "Browse {{genre}} shows",
1935
+ "history": {
1936
+ "title": "",
1937
+ "loadError": "",
1938
+ "empty": "",
1939
+ "watched": "",
1940
+ "notWatched": "",
1644
1941
  "columns": {
1645
- "genre": "Genre",
1646
- "items": "Items",
1647
- "plays": "Plays",
1648
- "watchTime": "Watch time"
1649
- },
1650
- "title": "Genre breakdown"
1651
- },
1652
- "title": "الأنواع"
1653
- },
1654
- "grid": {
1655
- "clearJumpAction": "Clear",
1656
- "emptyAnchored": "Nothing at or after \"{{letter}}\" under these filters",
1657
- "emptyFilter": "No titles match these filters",
1658
- "emptySearch": "No titles match \"{{query}}\"",
1659
- "loadError": "Couldn't load the catalog",
1660
- "loaderError": "Couldn't load more titles",
1661
- "retry": "Retry",
1662
- "scrubber": {
1663
- "current": "Letter {{letter}}",
1664
- "label": "Jump to letter"
1665
- },
1666
- "showAll": "Show all",
1667
- "showingFrom": "Showing from {{letter}}",
1668
- "toolbar": {
1669
- "ariaLabel": "Filters and sort",
1670
- "count": "{{loaded}} of {{total}} titles · {{size}}",
1671
- "countTotal_one": "{{count}} title · {{size}}",
1672
- "countTotal_other": "{{count}} titles · {{size}}",
1673
- "done": "Done",
1674
- "filtersLabel": "Filters",
1675
- "filtersSheetTitle": "Filters",
1676
- "genreAll": "Any genre",
1677
- "genreLabel": "Genre",
1678
- "hdrAll": "Any",
1679
- "hdrChip": "HDR",
1680
- "hdrLabel": "Dynamic range",
1681
- "hdrOnly": "HDR only",
1682
- "libraryAll": "Any library",
1683
- "libraryLabel": "Library",
1684
- "moviesToggle": "Movies",
1685
- "removeFilter": "Remove {{label}} filter",
1686
- "resolutionAll": "Any resolution",
1687
- "resolutionLabel": "Resolution",
1688
- "searchLabel": "Search titles",
1689
- "searchPlaceholder": "Search titles…",
1690
- "serverAll": "Any server",
1691
- "serverLabel": "Server",
1692
- "showsToggle": "Shows",
1693
- "sizeChipAtLeast": "≥ {{min}} GB",
1694
- "sizeChipAtMost": "≤ {{max}} GB",
1695
- "sizeChipRange": "{{min}}–{{max}} GB",
1696
- "sizeGbMaxLabel": "Max size (GB)",
1697
- "sizeGbMinLabel": "Min size (GB)",
1698
- "sort": {
1699
- "added": "Recently added",
1700
- "plays": "Plays",
1701
- "title": "Title A–Z",
1702
- "viewers": "Viewers",
1703
- "watch_time": "Watch time",
1704
- "year": "Year"
1705
- },
1706
- "sortLabel": "Sort",
1707
- "typeLabel": "Media type",
1708
- "unwatchedByLens": "Unwatched by {{name}}",
1709
- "watched": {
1710
- "all": "All",
1711
- "partial": "Partially watched",
1712
- "unwatched": "Unwatched",
1713
- "watched": "Watched"
1714
- },
1715
- "watchedLabel": "Watched",
1716
- "yearFromLabel": "From year",
1717
- "yearToLabel": "To year"
1718
- }
1719
- },
1720
- "landing": {
1721
- "card": {
1722
- "addedAgo": "أُضيف {{date}}",
1723
- "addedCompactAgo": "added {{age}} ago",
1724
- "newEpisodesChip": "{{count}} new",
1725
- "newEpisodes_one": "{{count}} حلقة جديدة",
1726
- "newEpisodes_other": "{{count}} حلقات جديدة"
1942
+ "date": "",
1943
+ "user": "",
1944
+ "content": "",
1945
+ "server": "",
1946
+ "duration": ""
1947
+ }
1727
1948
  },
1728
- "deadWeight": {
1949
+ "copies": {
1950
+ "title": "",
1951
+ "loadError": "",
1952
+ "unknownLibrary": "",
1729
1953
  "columns": {
1730
- "added": "Added",
1731
- "poster": "Poster",
1732
- "servers": "Servers",
1733
- "size": "Size",
1734
- "title": "Title"
1735
- },
1736
- "empty": "Nothing to reclaim - everything in your library has been watched",
1737
- "summary": "{{count}} never-watched titles · {{size}}",
1738
- "title": "Dead Weight",
1739
- "viewAll": "View all",
1740
- "viewAllTooltip": "Coming soon"
1741
- },
1742
- "lens": {
1743
- "allUsers": "جميع المستخدمين",
1744
- "label": "العرض كـ"
1745
- },
1746
- "loadError": "Couldn't load your media library",
1747
- "shelves": {
1748
- "captionMostPopular": {
1749
- "all": "all time",
1750
- "custom": "selected date range",
1751
- "day": "today",
1752
- "month": "last 30 days",
1753
- "week": "last 7 days",
1754
- "year": "last 12 months"
1954
+ "server": "",
1955
+ "library": "",
1956
+ "quality": "",
1957
+ "episodes": "",
1958
+ "size": "",
1959
+ "added": ""
1755
1960
  },
1756
- "captionRecentlyAdded": "deduped across servers",
1757
- "emptyMostPopular": "No plays in this period",
1758
- "emptyRecentlyAdded": "Nothing added in this period",
1759
- "mostPopularMovies": "Most Popular Movies",
1760
- "mostPopularShows": "Most Popular Shows",
1761
- "recentlyAddedMovies": "Recently Added Movies",
1762
- "recentlyAddedShows": "Recently Added Shows"
1763
- },
1764
- "title": "وسائط"
1765
- },
1766
- "movies": {
1767
- "title": "أفلام"
1961
+ "versionLabel": ""
1962
+ }
1768
1963
  },
1769
1964
  "posterCard": {
1770
- "addedLabel": "أُضيف {{date}}",
1771
- "moreServers": "+{{count}} more",
1965
+ "rankSuffix": "، الترتيب {{rank}}",
1772
1966
  "onServers": "على {{servers}}",
1773
- "playsCompact_one": "{{compact}} play",
1774
- "playsCompact_other": "{{compact}} plays",
1967
+ "addedLabel": "أُضيف {{date}}",
1775
1968
  "plays_one": "{{count}} تشغيل",
1776
1969
  "plays_other": "{{count}} تشغيلات",
1777
- "rankChip": "#{{rank}}",
1778
- "rankSuffix": "، الترتيب {{rank}}",
1779
- "tileLabel": {
1780
- "added": "أُضيف",
1781
- "plays": "تشغيلات",
1782
- "resolution": "resolution",
1783
- "viewers": "مشاهدون"
1784
- },
1785
- "versionsChip": "{{count}}×",
1786
- "versions_one": "{{count}} version",
1787
- "versions_other": "{{count}} versions",
1788
1970
  "viewers_one": "{{count}} مشاهد",
1789
1971
  "viewers_other": "{{count}} مشاهدين",
1790
1972
  "watchedState": {
1791
- "partial": "مشاهدة جزئية",
1792
1973
  "watched": "تمت المشاهدة",
1793
- "watchedByOthers": "Watched by others",
1794
- "watchedByYou": "Watched by you"
1795
- }
1796
- },
1797
- "shows": {
1798
- "title": "مسلسلات"
1799
- }
1800
- },
1801
- "notFound": {
1802
- "description": "الصفحة التي تبحث عنها غير موجودة أو تم نقلها.",
1803
- "heading": "الصفحة غير موجودة",
1804
- "title": "404"
1805
- },
1806
- "plexCallback": {
1807
- "authComplete": "اكتمل المصادقة",
1808
- "windowWillClose": "سيتم إغلاق هذه النافذة تلقائياً..."
1809
- },
1810
- "settings": {
1811
- "destinations": {
1812
- "add": "Add destination",
1813
- "builtinNote": "Built in",
1814
- "clearSecret": "Clear",
1815
- "delete": "Delete",
1816
- "deleteConfirm": "Delete {{name}}? Rules that send to it will be blocked until they are updated.",
1817
- "description": "Where notifications go. Add as many as you like, and automations can send to any of them.",
1818
- "empty": "No destinations yet.",
1819
- "fields": {
1820
- "apiToken": "API token",
1821
- "apiUrl": "API URL",
1822
- "authToken": "Auth token",
1823
- "serverUrl": "Server URL",
1824
- "topic": "Topic",
1825
- "url": "URL",
1826
- "userKey": "User key",
1827
- "webhookUrl": "Webhook URL"
1974
+ "partial": "مشاهدة جزئية",
1975
+ "watchedByOthers": "",
1976
+ "watchedByYou": ""
1828
1977
  },
1829
- "hints": {
1830
- "authTokenOptional": "Optional for public topics"
1831
- },
1832
- "ownerOnly": "Only the owner can manage notification destinations.",
1833
- "pushNote": "Delivered to paired mobile devices; each device filters in its own notification settings.",
1834
- "receiveViolations": "Receive violations",
1835
- "receiveViolationsHint": "Send every violation to this destination",
1836
- "reencrypt": "Re-enter this destination's secret",
1837
- "secretSet": "Set (leave blank to keep)",
1838
- "test": "Test",
1839
- "testHint": "Save first to test",
1840
- "testNeedsForm": "Fill in the required fields to test",
1841
- "title": "Notification destinations",
1842
- "types": {
1843
- "apprise": "Apprise",
1844
- "discord": "Discord",
1845
- "gotify": "Gotify",
1846
- "jsonWebhook": "Webhook (JSON)",
1847
- "ntfy": "ntfy",
1848
- "push": "Mobile push",
1849
- "pushover": "Pushover",
1850
- "webToast": "Browser toasts"
1851
- },
1852
- "usedBy": "Used by {{count}} rule",
1853
- "usedBy_other": "Used by {{count}} rules",
1854
- "webToastNote": "Toasts in this browser."
1855
- },
1856
- "jobs": {
1857
- "lastRun": "آخر تشغيل",
1858
- "nextRun": "التشغيل التالي",
1859
- "runNow": "تشغيل الآن",
1860
- "running": "جارٍ...",
1861
- "schedule": "الجدول"
1862
- },
1863
- "mobile": {
1864
- "displayName": "اسم العرض",
1865
- "displayNamePlaceholder": "على سبيل المثال أيفون الخاص بي",
1866
- "editDisplayName": "تحرير اسم العرض",
1867
- "editDisplayNameDesc": "تغيير كيفية ظهور هذا الجهاز في قائمة جهازك",
1868
- "updating": "تحديث..."
1978
+ "tileLabel": {
1979
+ "added": "أُضيف",
1980
+ "plays": "تشغيلات",
1981
+ "viewers": "مشاهدون",
1982
+ "resolution": ""
1983
+ },
1984
+ "rankChip": "",
1985
+ "playsCompact_one": "",
1986
+ "playsCompact_other": "",
1987
+ "versionsChip": "",
1988
+ "versions_one": "",
1989
+ "versions_other": "",
1990
+ "moreServers": ""
1869
1991
  },
1870
- "plex": {
1871
- "accountsLinked_one": "ربط حساب Plex {{count}}",
1872
- "accountsLinked_other": "{{count}} حسابات Plex مرتبطة",
1873
- "connectingTo": "جاري الاتصال بـ {{name}}...",
1874
- "connectionError": {
1875
- "dns": "DNS error",
1876
- "http": "HTTP {{status}}",
1877
- "refused": "Connection refused",
1878
- "reset": "Connection reset",
1879
- "timeout": "Timed out",
1880
- "tls": "TLS error",
1881
- "unknown": "Connection failed",
1882
- "unreachable": "Host unreachable"
1992
+ "grid": {
1993
+ "toolbar": {
1994
+ "ariaLabel": "",
1995
+ "typeLabel": "",
1996
+ "moviesToggle": "",
1997
+ "showsToggle": "",
1998
+ "searchPlaceholder": "",
1999
+ "searchLabel": "",
2000
+ "removeFilter": "",
2001
+ "filtersLabel": "",
2002
+ "filtersSheetTitle": "",
2003
+ "done": "",
2004
+ "watchedLabel": "",
2005
+ "watched": {
2006
+ "all": "",
2007
+ "watched": "",
2008
+ "partial": "",
2009
+ "unwatched": ""
2010
+ },
2011
+ "unwatchedByLens": "",
2012
+ "resolutionLabel": "",
2013
+ "resolutionAll": "",
2014
+ "hdrLabel": "",
2015
+ "hdrAll": "",
2016
+ "hdrOnly": "",
2017
+ "hdrChip": "",
2018
+ "genreLabel": "",
2019
+ "genreAll": "",
2020
+ "serverLabel": "",
2021
+ "serverAll": "",
2022
+ "libraryLabel": "",
2023
+ "libraryAll": "",
2024
+ "yearFromLabel": "",
2025
+ "yearToLabel": "",
2026
+ "sizeGbMinLabel": "",
2027
+ "sizeGbMaxLabel": "",
2028
+ "sizeChipAtLeast": "",
2029
+ "sizeChipAtMost": "",
2030
+ "sizeChipRange": "",
2031
+ "sortLabel": "",
2032
+ "sort": {
2033
+ "title": "",
2034
+ "added": "",
2035
+ "year": "",
2036
+ "plays": "",
2037
+ "watch_time": "",
2038
+ "viewers": ""
2039
+ },
2040
+ "count": "",
2041
+ "countTotal_one": "",
2042
+ "countTotal_other": ""
1883
2043
  },
1884
- "connectionsAvailable": "تتوفر اتصالات {{count}}",
1885
- "connectionsReachable": "{{reachable}} of {{total}} connections reachable",
1886
- "custom": "Custom",
1887
- "customUrl": "عنوان URL مخصص",
1888
- "deleteServersFirst": "حذف الخوادم المتصلة أولاً لإلغاء ربط هذا الحساب",
1889
- "hideFiltered": "إخفاء الفلتر",
1890
- "linkAnotherAccount": "ربط حساب Plex آخر",
1891
- "linkPlexAccount": "ربط حساب Plex",
1892
- "linkedAccounts": "حسابات Plex المرتبطة",
1893
- "linkedAccountsDesc": "إدارة حسابات Plex يمكنك إضافة خوادم منها.",
1894
- "linking": "ربط...",
1895
- "local": "محلي",
1896
- "loginEnabled": "تسجيل الدخول مفعل",
1897
- "mayNotConnect": "قد لا يتم الاتصال",
1898
- "moreConnections": "+{{count}} المزيد من الاتصالات",
1899
- "noAccountsLinked": "لا توجد حسابات Plex مرتبطة",
1900
- "noAccountsLinkedHint": "اربط حساب Plex لإضافة خوادم Plex إلى Tracearr.",
1901
- "noAccountsLinkedShort": "لا توجد حسابات Plex مرتبطة",
1902
- "noAccountsYet": "لا توجد حسابات Plex مرتبطة بعد.",
1903
- "noReachableConnections": "لا توجد اتصالات يمكن الوصول إليها",
1904
- "noServersFound": "لم يتم العثور على خوادم Plex",
1905
- "noServersFoundHint": "تأكد من أن لديك خادم واحد على الأقل من Plex",
1906
- "reauthorizeAccount": "Reauthorize this Plex account",
1907
- "recommended": "موصى",
1908
- "remote": "عن بعد",
1909
- "secure": "آمن",
1910
- "serversConnected_one": "{{count}} server connected",
1911
- "serversConnected_other": "متصل بخوادم {{count}}",
1912
- "showAll": "إظهار الكل",
1913
- "unlinkAccount": "إلغاء ربط حساب Plex هذا",
1914
- "unlinkConfirm": "هل أنت متأكد من أنك تريد إلغاء ربط حساب Plex هذا؟ لن تتمكن من إضافة خوادم من هذا الحساب حتى تقوم بربطه مرة أخرى.",
1915
- "unlinkPlexAccount": "إلغاء ربط حساب Plex"
2044
+ "scrubber": {
2045
+ "label": "",
2046
+ "current": ""
2047
+ },
2048
+ "loaderError": "",
2049
+ "retry": "",
2050
+ "clearJumpAction": "",
2051
+ "showingFrom": "",
2052
+ "showAll": "",
2053
+ "emptyFilter": "",
2054
+ "emptySearch": "",
2055
+ "emptyAnchored": "",
2056
+ "loadError": ""
1916
2057
  }
1917
- },
1918
- "statsBandwidth": {
1919
- "avgBitrate": "متوسط معدل البيتر",
1920
- "avgBitrateMbps": "متوسط معدل البيت (Mbps)",
1921
- "dailyUsage": "استخدام عرض التردد اليومي",
1922
- "dailyUsageDesc": "متوسط معدل البتات وعدد الجلسات بمرور الوقت",
1923
- "dataTransferred": "البيانات المنقولة",
1924
- "description": "تبث استخدام عرض النطاق الترددي وتحليل معدل البتة",
1925
- "noData": "لا تتوفر بيانات عرض النطاق الترددي",
1926
- "peakBitrate": "الذروة: {{value}} Mbps",
1927
- "title": "عرض التردد",
1928
- "topUsers": "أعلى عرض ترددي للمستخدمين",
1929
- "topUsersDesc": "المستخدمين الذين يستهلكون أكثر عرض ترددي",
1930
- "totalWatchTime": "مجموع وقت المشاهدة",
1931
- "uniqueUsers": "المستخدمين الفريدين"
1932
- },
1933
- "statsUsers": {
1934
- "noActivity": "لا يوجد نشاط بعد",
1935
- "noActivityDesc": "ابدأ البث لرؤية أعلى المستخدمين هنا",
1936
- "runnersUp": "تشغيل أعلى",
1937
- "top3": "أفضل 3"
1938
- },
1939
- "terminateStream": {
1940
- "killStream": "اقتل البث",
1941
- "messageHint": "سيتم عرض هذه الرسالة لهم أثناء التشغيل",
1942
- "messageLabel": "رسالة إلى المستخدم (اختياري)",
1943
- "messagePlaceholder": "على سبيل المثال، الرجاء عدم مشاركة حسابك",
1944
- "stopMedia": "إيقاف \"{{mediaTitle}}\" لـ @{{username}}؟",
1945
- "terminating": "الإنهاء...",
1946
- "title": "إنهاء البث"
1947
- },
1948
- "userDetail": {
1949
- "acrossAllServers": "Across all linked accounts:",
1950
- "adjustTrustScore": "ضبط نقاط الثقة",
1951
- "allServers": "All servers",
1952
- "backToUsers": "العودة إلى المستخدمين",
1953
- "byRule": "بواسطة / قاعدة",
1954
- "linkedAccounts": "Linked accounts",
1955
- "manual": "دليل",
1956
- "noTerminationsFound": "لا توجد إنهاءات بث لهذا المستخدم.",
1957
- "noViolationsFound": "لا توجد انتهاكات لهذا المستخدم.",
1958
- "overallTrust": "Overall Trust",
1959
- "serverScope": "Server",
1960
- "sessions": "الجلسات",
1961
- "splitAccount": "Split into separate user",
1962
- "splitConfirmDescription": "Detach this server account into its own user. Its watch history and violations move with it.",
1963
- "splitConfirmLoading": "Splitting...",
1964
- "splitConfirmTitle": "Split server account",
1965
- "statistics": "الإحصائيات",
1966
- "terminationHistory": "تاريخ الإنهاء",
1967
- "title": "User Details",
1968
- "unknownRule": "قاعدة غير معروفة",
1969
- "userInfo": "معلومات المستخدم",
1970
- "userNotFound": "المستخدم غير موجود",
1971
- "violations": "المخالفات"
1972
- },
1973
- "users": {
1974
- "filterHasAccessTo": "Has access to",
1975
- "filterHasAccessToHint": "Shows people with an active account on every server selected.",
1976
- "filterHasAccessToPlaceholder": "Any server",
1977
- "mergeConfirm": "Merge",
1978
- "mergeDialogDescription": "Every server account, session, and violation from the duplicate moves to the primary. The duplicate identity is deleted.",
1979
- "mergeDialogTitle": "Merge users",
1980
- "mergePickPrimary": "Choose the primary identity",
1981
- "mergePrimaryBadge": "Primary",
1982
- "mergePrimaryForced": "This account can log in, so it must stay the primary.",
1983
- "mergeSameIdentity": "These accounts already belong to the same user",
1984
- "mergeSameServerAcknowledge": "I understand the same-server history combine cannot be undone",
1985
- "mergeSameServerDialogDescription": "This merge permanently combines both accounts on the same server. It cannot be undone.",
1986
- "mergeSameServerFallbackName": "this server",
1987
- "mergeSameServerWarning": "Both identities already have an account on the same server. Merging will permanently combine their session history, violations, and trust score into a single account on that server. This cannot be undone, and splitting the account afterward will not restore the original two accounts.",
1988
- "mergeSameServerWarningTitle": "This action is irreversible",
1989
- "mergeSelectAllActive": "Clear the select-all selection and pick exactly two users to merge",
1990
- "mergeSelectTwo": "Select exactly two users to merge",
1991
- "mergeServerAccountRemoved": "Removed",
1992
- "mergeUsers": "Merge users",
1993
- "noUsersFound": "لم يتم العثور على مستخدمين.",
1994
- "resetTrustScore": "إعادة تعيين نقاط الثقة",
1995
- "resetTrustScoreConfirm": "هل أنت متأكد من أنك تريد إعادة تعيين نقاط الثقة إلى 100؟ لا يمكن التراجع عن هذا الإجراء.",
1996
- "resetTrustScoreTitle_one": "إعادة تعيين درجة الثقة للمستخدم {{count}}",
1997
- "resetTrustScoreTitle_other": "إعادة تعيين درجة الثقة للمستخدمين {{count}}",
1998
- "searchPlaceholder": "البحث عن المستخدمين...",
1999
- "selectAllUsers": "حدد جميع المستخدمين {{count}}",
2000
- "serversColumn": "Servers",
2001
- "showRemoved": "Show removed",
2002
- "suggestionsDescription": "These identities look like the same person across servers. Review and merge them if they match.",
2003
- "suggestionsError": "Could not load merge suggestions",
2004
- "suggestionsMatchEmail": "Same email",
2005
- "suggestionsMatchUsername": "Same username",
2006
- "suggestionsReview": "Review",
2007
- "suggestionsTitle": "Possible duplicate users",
2008
- "title": "المستخدمون"
2009
- },
2010
- "violations": {
2011
- "allPeople": "All people",
2012
- "allRules": "All rules",
2013
- "allSeverities": "جميع الجوانب",
2014
- "allStatuses": "جميع الحالات",
2015
- "detail": {
2016
- "acknowledged": "معترف به",
2017
- "actions": "الإجراءات المتخذة",
2018
- "actual": "فعلي",
2019
- "conditionEvidence": "دليل الحالة",
2020
- "conditionGroup": "مجموعة الشروط {{index}}",
2021
- "created": "أنشئ",
2022
- "daysInactive": "الأيام غير النشطة",
2023
- "detected": "اكتشف",
2024
- "inactivity": "تفاصيل عدم النشاط",
2025
- "lastActivity": "آخر نشاط",
2026
- "map": "مواقع الجلسة",
2027
- "matched": "{{matched}}/{{total}} مطابقة",
2028
- "neverActive": "لا تنشط أبدا",
2029
- "noSessions": "لا توجد جلسات مرتبطة بهذا الانتهاك",
2030
- "notFound": "لم يتم العثور على انتهاك",
2031
- "relatedSessions": "{{count}} related session",
2032
- "relatedSessions_one": "{{count}} related session",
2033
- "relatedSessions_other": "{{count}} related sessions",
2034
- "sessions": "الجلسات",
2035
- "threshold": "عتبة",
2036
- "timestamps": "الطوابع الزمنية",
2037
- "trigger": "المشغل",
2038
- "userInfo": "المستخدم",
2039
- "violationDetails": "تفاصيل الانتهاك"
2040
- },
2041
- "dismissViolation": "نبذ الانتهاك",
2042
- "dismissViolationConfirm": "هل أنت متأكد من أنك تريد رفض هذا الانتهاك؟ سيؤدي هذا إلى إزالته من سجل الانتهاكات بشكل دائم.",
2043
- "dismissViolation_one": "رفض انتهاك {{count}}",
2044
- "dismissViolation_other": "تجاهل الانتهاكات {{count}}",
2045
- "dismissViolationsConfirm": "هل أنت متأكد من رغبتك في الرفض؟ سيؤدي هذا إلى إزالتهم من سجل الانتهاكات بشكل دائم واستعادة نقاط الثقة المرتبطة بها.",
2046
- "filterByPerson": "Filter violations by this person",
2047
- "filterPeople": "People",
2048
- "noViolationsFound": "لم يتم العثور على أي انتهاكات",
2049
- "noViolationsRecorded": "ولم تسجل أي انتهاكات حتى الآن.",
2050
- "peopleSelectedCount": "{{count}} people",
2051
- "personFilterEmpty": "No matching people found",
2052
- "personFilterError": "Failed to load people",
2053
- "personFilterPlaceholder": "Filter by person",
2054
- "selectAllViolations": "حدد جميع الخروقات {{count}} المطابقة للفلاتر",
2055
- "title": "المخالفات",
2056
- "tryAdjustingFilters": "حاول ضبط الفلاتر الخاصة بك"
2057
2058
  }
2058
2059
  }