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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/dist/config.d.ts +3349 -1105
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +3349 -1105
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js +2 -2
  7. package/dist/locales/af-ZA/common.json +282 -250
  8. package/dist/locales/af-ZA/nav.json +21 -17
  9. package/dist/locales/af-ZA/notifications.json +22 -38
  10. package/dist/locales/af-ZA/pages.json +1170 -97
  11. package/dist/locales/af-ZA/settings.json +455 -426
  12. package/dist/locales/ar-SA/common.json +282 -250
  13. package/dist/locales/ar-SA/nav.json +21 -17
  14. package/dist/locales/ar-SA/notifications.json +22 -38
  15. package/dist/locales/ar-SA/pages.json +1170 -97
  16. package/dist/locales/ar-SA/settings.json +455 -426
  17. package/dist/locales/ca-ES/common.json +282 -250
  18. package/dist/locales/ca-ES/nav.json +21 -17
  19. package/dist/locales/ca-ES/notifications.json +22 -38
  20. package/dist/locales/ca-ES/pages.json +1170 -97
  21. package/dist/locales/ca-ES/settings.json +455 -426
  22. package/dist/locales/cs-CZ/common.json +282 -250
  23. package/dist/locales/cs-CZ/nav.json +21 -17
  24. package/dist/locales/cs-CZ/notifications.json +22 -38
  25. package/dist/locales/cs-CZ/pages.json +1170 -97
  26. package/dist/locales/cs-CZ/settings.json +455 -426
  27. package/dist/locales/da-DK/common.json +282 -250
  28. package/dist/locales/da-DK/nav.json +21 -17
  29. package/dist/locales/da-DK/notifications.json +22 -38
  30. package/dist/locales/da-DK/pages.json +1170 -97
  31. package/dist/locales/da-DK/settings.json +455 -426
  32. package/dist/locales/de-DE/common.json +282 -250
  33. package/dist/locales/de-DE/nav.json +21 -17
  34. package/dist/locales/de-DE/notifications.json +22 -38
  35. package/dist/locales/de-DE/pages.json +1170 -97
  36. package/dist/locales/de-DE/settings.json +455 -426
  37. package/dist/locales/el-GR/common.json +282 -250
  38. package/dist/locales/el-GR/nav.json +21 -17
  39. package/dist/locales/el-GR/notifications.json +22 -38
  40. package/dist/locales/el-GR/pages.json +1170 -97
  41. package/dist/locales/el-GR/settings.json +455 -426
  42. package/dist/locales/en/common.json +36 -4
  43. package/dist/locales/en/nav.json +6 -2
  44. package/dist/locales/en/notifications.json +13 -29
  45. package/dist/locales/en/pages.json +1187 -114
  46. package/dist/locales/en/settings.json +31 -2
  47. package/dist/locales/en-US/common.json +282 -250
  48. package/dist/locales/en-US/nav.json +21 -17
  49. package/dist/locales/en-US/notifications.json +22 -38
  50. package/dist/locales/en-US/pages.json +1170 -97
  51. package/dist/locales/en-US/settings.json +455 -426
  52. package/dist/locales/es-ES/common.json +282 -250
  53. package/dist/locales/es-ES/nav.json +21 -17
  54. package/dist/locales/es-ES/notifications.json +22 -38
  55. package/dist/locales/es-ES/pages.json +1170 -97
  56. package/dist/locales/es-ES/settings.json +455 -426
  57. package/dist/locales/fi-FI/common.json +282 -250
  58. package/dist/locales/fi-FI/nav.json +21 -17
  59. package/dist/locales/fi-FI/notifications.json +22 -38
  60. package/dist/locales/fi-FI/pages.json +1170 -97
  61. package/dist/locales/fi-FI/settings.json +455 -426
  62. package/dist/locales/fr-FR/common.json +282 -250
  63. package/dist/locales/fr-FR/nav.json +21 -17
  64. package/dist/locales/fr-FR/notifications.json +22 -38
  65. package/dist/locales/fr-FR/pages.json +1170 -97
  66. package/dist/locales/fr-FR/settings.json +455 -426
  67. package/dist/locales/he-IL/common.json +282 -250
  68. package/dist/locales/he-IL/nav.json +21 -17
  69. package/dist/locales/he-IL/notifications.json +22 -38
  70. package/dist/locales/he-IL/pages.json +1170 -97
  71. package/dist/locales/he-IL/settings.json +455 -426
  72. package/dist/locales/hu-HU/common.json +282 -250
  73. package/dist/locales/hu-HU/nav.json +21 -17
  74. package/dist/locales/hu-HU/notifications.json +22 -38
  75. package/dist/locales/hu-HU/pages.json +1170 -97
  76. package/dist/locales/hu-HU/settings.json +455 -426
  77. package/dist/locales/it-IT/common.json +282 -250
  78. package/dist/locales/it-IT/nav.json +21 -17
  79. package/dist/locales/it-IT/notifications.json +22 -38
  80. package/dist/locales/it-IT/pages.json +1170 -97
  81. package/dist/locales/it-IT/settings.json +455 -426
  82. package/dist/locales/ja-JP/common.json +282 -250
  83. package/dist/locales/ja-JP/nav.json +21 -17
  84. package/dist/locales/ja-JP/notifications.json +22 -38
  85. package/dist/locales/ja-JP/pages.json +1170 -97
  86. package/dist/locales/ja-JP/settings.json +455 -426
  87. package/dist/locales/ko-KR/common.json +282 -250
  88. package/dist/locales/ko-KR/nav.json +21 -17
  89. package/dist/locales/ko-KR/notifications.json +22 -38
  90. package/dist/locales/ko-KR/pages.json +1170 -97
  91. package/dist/locales/ko-KR/settings.json +455 -426
  92. package/dist/locales/nl-NL/common.json +282 -250
  93. package/dist/locales/nl-NL/nav.json +21 -17
  94. package/dist/locales/nl-NL/notifications.json +22 -38
  95. package/dist/locales/nl-NL/pages.json +1170 -97
  96. package/dist/locales/nl-NL/settings.json +455 -426
  97. package/dist/locales/no-NO/common.json +282 -250
  98. package/dist/locales/no-NO/nav.json +21 -17
  99. package/dist/locales/no-NO/notifications.json +22 -38
  100. package/dist/locales/no-NO/pages.json +1170 -97
  101. package/dist/locales/no-NO/settings.json +455 -426
  102. package/dist/locales/pl-PL/common.json +282 -250
  103. package/dist/locales/pl-PL/nav.json +21 -17
  104. package/dist/locales/pl-PL/notifications.json +22 -38
  105. package/dist/locales/pl-PL/pages.json +1170 -97
  106. package/dist/locales/pl-PL/settings.json +455 -426
  107. package/dist/locales/pt-BR/common.json +282 -250
  108. package/dist/locales/pt-BR/nav.json +21 -17
  109. package/dist/locales/pt-BR/notifications.json +22 -38
  110. package/dist/locales/pt-BR/pages.json +1170 -97
  111. package/dist/locales/pt-BR/settings.json +455 -426
  112. package/dist/locales/pt-PT/common.json +282 -250
  113. package/dist/locales/pt-PT/nav.json +21 -17
  114. package/dist/locales/pt-PT/notifications.json +22 -38
  115. package/dist/locales/pt-PT/pages.json +1170 -97
  116. package/dist/locales/pt-PT/settings.json +455 -426
  117. package/dist/locales/ro-RO/common.json +282 -250
  118. package/dist/locales/ro-RO/nav.json +21 -17
  119. package/dist/locales/ro-RO/notifications.json +22 -38
  120. package/dist/locales/ro-RO/pages.json +1170 -97
  121. package/dist/locales/ro-RO/settings.json +455 -426
  122. package/dist/locales/ru-RU/common.json +282 -250
  123. package/dist/locales/ru-RU/nav.json +21 -17
  124. package/dist/locales/ru-RU/notifications.json +22 -38
  125. package/dist/locales/ru-RU/pages.json +1170 -97
  126. package/dist/locales/ru-RU/settings.json +455 -426
  127. package/dist/locales/sr-SP/common.json +282 -250
  128. package/dist/locales/sr-SP/nav.json +21 -17
  129. package/dist/locales/sr-SP/notifications.json +22 -38
  130. package/dist/locales/sr-SP/pages.json +1170 -97
  131. package/dist/locales/sr-SP/settings.json +455 -426
  132. package/dist/locales/sv-SE/common.json +282 -250
  133. package/dist/locales/sv-SE/nav.json +21 -17
  134. package/dist/locales/sv-SE/notifications.json +22 -38
  135. package/dist/locales/sv-SE/pages.json +1170 -97
  136. package/dist/locales/sv-SE/settings.json +455 -426
  137. package/dist/locales/tr-TR/common.json +282 -250
  138. package/dist/locales/tr-TR/nav.json +21 -17
  139. package/dist/locales/tr-TR/notifications.json +22 -38
  140. package/dist/locales/tr-TR/pages.json +1170 -97
  141. package/dist/locales/tr-TR/settings.json +455 -426
  142. package/dist/locales/uk-UA/common.json +282 -250
  143. package/dist/locales/uk-UA/nav.json +21 -17
  144. package/dist/locales/uk-UA/notifications.json +22 -38
  145. package/dist/locales/uk-UA/pages.json +1170 -97
  146. package/dist/locales/uk-UA/settings.json +455 -426
  147. package/dist/locales/vi-VN/common.json +282 -250
  148. package/dist/locales/vi-VN/nav.json +21 -17
  149. package/dist/locales/vi-VN/notifications.json +22 -38
  150. package/dist/locales/vi-VN/pages.json +1170 -97
  151. package/dist/locales/vi-VN/settings.json +455 -426
  152. package/dist/locales/zh-CN/common.json +282 -250
  153. package/dist/locales/zh-CN/nav.json +21 -17
  154. package/dist/locales/zh-CN/notifications.json +22 -38
  155. package/dist/locales/zh-CN/pages.json +1170 -97
  156. package/dist/locales/zh-CN/settings.json +455 -426
  157. package/dist/locales/zh-TW/common.json +282 -250
  158. package/dist/locales/zh-TW/nav.json +21 -17
  159. package/dist/locales/zh-TW/notifications.json +22 -38
  160. package/dist/locales/zh-TW/pages.json +1170 -97
  161. package/dist/locales/zh-TW/settings.json +455 -426
  162. package/package.json +1 -1
  163. package/src/index.ts +2 -2
  164. package/src/locales/af-ZA/common.json +282 -250
  165. package/src/locales/af-ZA/nav.json +21 -17
  166. package/src/locales/af-ZA/notifications.json +22 -38
  167. package/src/locales/af-ZA/pages.json +1170 -97
  168. package/src/locales/af-ZA/settings.json +455 -426
  169. package/src/locales/ar-SA/common.json +282 -250
  170. package/src/locales/ar-SA/nav.json +21 -17
  171. package/src/locales/ar-SA/notifications.json +22 -38
  172. package/src/locales/ar-SA/pages.json +1170 -97
  173. package/src/locales/ar-SA/settings.json +455 -426
  174. package/src/locales/ca-ES/common.json +282 -250
  175. package/src/locales/ca-ES/nav.json +21 -17
  176. package/src/locales/ca-ES/notifications.json +22 -38
  177. package/src/locales/ca-ES/pages.json +1170 -97
  178. package/src/locales/ca-ES/settings.json +455 -426
  179. package/src/locales/cs-CZ/common.json +282 -250
  180. package/src/locales/cs-CZ/nav.json +21 -17
  181. package/src/locales/cs-CZ/notifications.json +22 -38
  182. package/src/locales/cs-CZ/pages.json +1170 -97
  183. package/src/locales/cs-CZ/settings.json +455 -426
  184. package/src/locales/da-DK/common.json +282 -250
  185. package/src/locales/da-DK/nav.json +21 -17
  186. package/src/locales/da-DK/notifications.json +22 -38
  187. package/src/locales/da-DK/pages.json +1170 -97
  188. package/src/locales/da-DK/settings.json +455 -426
  189. package/src/locales/de-DE/common.json +282 -250
  190. package/src/locales/de-DE/nav.json +21 -17
  191. package/src/locales/de-DE/notifications.json +22 -38
  192. package/src/locales/de-DE/pages.json +1170 -97
  193. package/src/locales/de-DE/settings.json +455 -426
  194. package/src/locales/el-GR/common.json +282 -250
  195. package/src/locales/el-GR/nav.json +21 -17
  196. package/src/locales/el-GR/notifications.json +22 -38
  197. package/src/locales/el-GR/pages.json +1170 -97
  198. package/src/locales/el-GR/settings.json +455 -426
  199. package/src/locales/en/common.json +36 -4
  200. package/src/locales/en/nav.json +6 -2
  201. package/src/locales/en/notifications.json +13 -29
  202. package/src/locales/en/pages.json +1187 -114
  203. package/src/locales/en/settings.json +31 -2
  204. package/src/locales/en-US/common.json +282 -250
  205. package/src/locales/en-US/nav.json +21 -17
  206. package/src/locales/en-US/notifications.json +22 -38
  207. package/src/locales/en-US/pages.json +1170 -97
  208. package/src/locales/en-US/settings.json +455 -426
  209. package/src/locales/es-ES/common.json +282 -250
  210. package/src/locales/es-ES/nav.json +21 -17
  211. package/src/locales/es-ES/notifications.json +22 -38
  212. package/src/locales/es-ES/pages.json +1170 -97
  213. package/src/locales/es-ES/settings.json +455 -426
  214. package/src/locales/fi-FI/common.json +282 -250
  215. package/src/locales/fi-FI/nav.json +21 -17
  216. package/src/locales/fi-FI/notifications.json +22 -38
  217. package/src/locales/fi-FI/pages.json +1170 -97
  218. package/src/locales/fi-FI/settings.json +455 -426
  219. package/src/locales/fr-FR/common.json +282 -250
  220. package/src/locales/fr-FR/nav.json +21 -17
  221. package/src/locales/fr-FR/notifications.json +22 -38
  222. package/src/locales/fr-FR/pages.json +1170 -97
  223. package/src/locales/fr-FR/settings.json +455 -426
  224. package/src/locales/he-IL/common.json +282 -250
  225. package/src/locales/he-IL/nav.json +21 -17
  226. package/src/locales/he-IL/notifications.json +22 -38
  227. package/src/locales/he-IL/pages.json +1170 -97
  228. package/src/locales/he-IL/settings.json +455 -426
  229. package/src/locales/hu-HU/common.json +282 -250
  230. package/src/locales/hu-HU/nav.json +21 -17
  231. package/src/locales/hu-HU/notifications.json +22 -38
  232. package/src/locales/hu-HU/pages.json +1170 -97
  233. package/src/locales/hu-HU/settings.json +455 -426
  234. package/src/locales/it-IT/common.json +282 -250
  235. package/src/locales/it-IT/nav.json +21 -17
  236. package/src/locales/it-IT/notifications.json +22 -38
  237. package/src/locales/it-IT/pages.json +1170 -97
  238. package/src/locales/it-IT/settings.json +455 -426
  239. package/src/locales/ja-JP/common.json +282 -250
  240. package/src/locales/ja-JP/nav.json +21 -17
  241. package/src/locales/ja-JP/notifications.json +22 -38
  242. package/src/locales/ja-JP/pages.json +1170 -97
  243. package/src/locales/ja-JP/settings.json +455 -426
  244. package/src/locales/ko-KR/common.json +282 -250
  245. package/src/locales/ko-KR/nav.json +21 -17
  246. package/src/locales/ko-KR/notifications.json +22 -38
  247. package/src/locales/ko-KR/pages.json +1170 -97
  248. package/src/locales/ko-KR/settings.json +455 -426
  249. package/src/locales/nl-NL/common.json +282 -250
  250. package/src/locales/nl-NL/nav.json +21 -17
  251. package/src/locales/nl-NL/notifications.json +22 -38
  252. package/src/locales/nl-NL/pages.json +1170 -97
  253. package/src/locales/nl-NL/settings.json +455 -426
  254. package/src/locales/no-NO/common.json +282 -250
  255. package/src/locales/no-NO/nav.json +21 -17
  256. package/src/locales/no-NO/notifications.json +22 -38
  257. package/src/locales/no-NO/pages.json +1170 -97
  258. package/src/locales/no-NO/settings.json +455 -426
  259. package/src/locales/pl-PL/common.json +282 -250
  260. package/src/locales/pl-PL/nav.json +21 -17
  261. package/src/locales/pl-PL/notifications.json +22 -38
  262. package/src/locales/pl-PL/pages.json +1170 -97
  263. package/src/locales/pl-PL/settings.json +455 -426
  264. package/src/locales/pt-BR/common.json +282 -250
  265. package/src/locales/pt-BR/nav.json +21 -17
  266. package/src/locales/pt-BR/notifications.json +22 -38
  267. package/src/locales/pt-BR/pages.json +1170 -97
  268. package/src/locales/pt-BR/settings.json +455 -426
  269. package/src/locales/pt-PT/common.json +282 -250
  270. package/src/locales/pt-PT/nav.json +21 -17
  271. package/src/locales/pt-PT/notifications.json +22 -38
  272. package/src/locales/pt-PT/pages.json +1170 -97
  273. package/src/locales/pt-PT/settings.json +455 -426
  274. package/src/locales/ro-RO/common.json +282 -250
  275. package/src/locales/ro-RO/nav.json +21 -17
  276. package/src/locales/ro-RO/notifications.json +22 -38
  277. package/src/locales/ro-RO/pages.json +1170 -97
  278. package/src/locales/ro-RO/settings.json +455 -426
  279. package/src/locales/ru-RU/common.json +282 -250
  280. package/src/locales/ru-RU/nav.json +21 -17
  281. package/src/locales/ru-RU/notifications.json +22 -38
  282. package/src/locales/ru-RU/pages.json +1170 -97
  283. package/src/locales/ru-RU/settings.json +455 -426
  284. package/src/locales/sr-SP/common.json +282 -250
  285. package/src/locales/sr-SP/nav.json +21 -17
  286. package/src/locales/sr-SP/notifications.json +22 -38
  287. package/src/locales/sr-SP/pages.json +1170 -97
  288. package/src/locales/sr-SP/settings.json +455 -426
  289. package/src/locales/sv-SE/common.json +282 -250
  290. package/src/locales/sv-SE/nav.json +21 -17
  291. package/src/locales/sv-SE/notifications.json +22 -38
  292. package/src/locales/sv-SE/pages.json +1170 -97
  293. package/src/locales/sv-SE/settings.json +455 -426
  294. package/src/locales/tr-TR/common.json +282 -250
  295. package/src/locales/tr-TR/nav.json +21 -17
  296. package/src/locales/tr-TR/notifications.json +22 -38
  297. package/src/locales/tr-TR/pages.json +1170 -97
  298. package/src/locales/tr-TR/settings.json +455 -426
  299. package/src/locales/uk-UA/common.json +282 -250
  300. package/src/locales/uk-UA/nav.json +21 -17
  301. package/src/locales/uk-UA/notifications.json +22 -38
  302. package/src/locales/uk-UA/pages.json +1170 -97
  303. package/src/locales/uk-UA/settings.json +455 -426
  304. package/src/locales/vi-VN/common.json +282 -250
  305. package/src/locales/vi-VN/nav.json +21 -17
  306. package/src/locales/vi-VN/notifications.json +22 -38
  307. package/src/locales/vi-VN/pages.json +1170 -97
  308. package/src/locales/vi-VN/settings.json +455 -426
  309. package/src/locales/zh-CN/common.json +282 -250
  310. package/src/locales/zh-CN/nav.json +21 -17
  311. package/src/locales/zh-CN/notifications.json +22 -38
  312. package/src/locales/zh-CN/pages.json +1170 -97
  313. package/src/locales/zh-CN/settings.json +455 -426
  314. package/src/locales/zh-TW/common.json +282 -250
  315. package/src/locales/zh-TW/nav.json +21 -17
  316. package/src/locales/zh-TW/notifications.json +22 -38
  317. package/src/locales/zh-TW/pages.json +1170 -97
  318. package/src/locales/zh-TW/settings.json +455 -426
@@ -22,6 +22,1164 @@
22
22
  "versionV1": "API v1",
23
23
  "versionV2": "API v2"
24
24
  },
25
+ "automations": {
26
+ "actions": {
27
+ "kill_stream": {
28
+ "description": "Terminate the active stream",
29
+ "fields": {
30
+ "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"
42
+ }
43
+ },
44
+ "label": "Kill Stream",
45
+ "ran": "Stopped the stream"
46
+ },
47
+ "message_client": {
48
+ "description": "Send a message to the media player",
49
+ "fields": {
50
+ "message": {
51
+ "placeholder": "Message to display…"
52
+ },
53
+ "target": {
54
+ "description": "Which sessions to message"
55
+ }
56
+ },
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"
60
+ },
61
+ "send": {
62
+ "description": "Send to one or more destinations",
63
+ "fields": {
64
+ "cooldown_minutes": {
65
+ "description": "Minimum time between notifications"
66
+ }
67
+ },
68
+ "label": "Send Notification",
69
+ "ran": "Sent a notification"
70
+ },
71
+ "trust": {
72
+ "description": "Adjust, set, or reset the trust score",
73
+ "fields": {
74
+ "amount": {
75
+ "description": "Positive to increase, negative to decrease",
76
+ "label": "Amount"
77
+ },
78
+ "mode": {
79
+ "label": "Mode"
80
+ },
81
+ "value": {
82
+ "label": "Value"
83
+ }
84
+ },
85
+ "label": "Trust Score",
86
+ "ran": "Changed the trust score"
87
+ }
88
+ },
89
+ "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",
103
+ "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",
113
+ "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"
131
+ },
132
+ "allKinds": "All kinds",
133
+ "allStatuses": "All statuses",
134
+ "allSeverities": "All severities",
135
+ "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",
144
+ "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."
146
+ },
147
+ "failed": "Couldn't set that up. Try again.",
148
+ "helper": {
149
+ "clientMessage": "Shown on the player while it keeps playing.",
150
+ "killMessage": "Shown on the player when the stream stops."
151
+ },
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…"
164
+ },
165
+ "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",
227
+ "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"
246
+ },
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"
254
+ },
255
+ "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"
262
+ },
263
+ "inactiveFor": {
264
+ "daysLabel": "Days",
265
+ "prefix": "An account has been inactive for",
266
+ "unit": "days"
267
+ },
268
+ "leave": {
269
+ "confirm": "Leave",
270
+ "title": "Leave without saving?"
271
+ },
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
+ "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."
304
+ },
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
+ "sentence": {
336
+ "label": "What this automation does",
337
+ "placeholderAction": "do something",
338
+ "placeholderTrigger": "something happens"
339
+ },
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
+ }
370
+ },
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
+ }
445
+ }
446
+ },
447
+ "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
+ }
466
+ },
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.",
473
+ "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",
493
+ "duration": {
494
+ "days_one": "{{count}} day",
495
+ "days_other": "{{count}} days",
496
+ "minutes_one": "{{count}} minute",
497
+ "minutes_other": "{{count}} minutes"
498
+ },
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
+ "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"
559
+ },
560
+ "states": {
561
+ "is_local_network": {
562
+ "no": "the user is not on the local network",
563
+ "yes": "the user is on the local network"
564
+ },
565
+ "is_transcode_downgrade": {
566
+ "no": "the stream is not downgraded",
567
+ "yes": "the stream is downgraded"
568
+ },
569
+ "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
+ "video": {
579
+ "no": "the stream is not transcoding video",
580
+ "yes": "the stream is transcoding video"
581
+ },
582
+ "video_or_audio": {
583
+ "no": "the stream is not transcoding",
584
+ "yes": "the stream is transcoding"
585
+ }
586
+ }
587
+ },
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}}",
610
+ "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"
622
+ }
623
+ },
624
+ "description": "Automations watch your servers and act when their conditions match",
625
+ "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"
632
+ },
633
+ "disable": "Disable",
634
+ "editAutomation": "Edit Automation",
635
+ "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."
645
+ },
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",
651
+ "evaluations": {
652
+ "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}})"
659
+ },
660
+ "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.",
677
+ "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."
680
+ },
681
+ "openRepository": "Open the repository"
682
+ },
683
+ "fields": {
684
+ "account_age_days": {
685
+ "description": "Days since account creation",
686
+ "label": "Account Age"
687
+ },
688
+ "active_session_distance_km": {
689
+ "description": "Distance between simultaneous sessions",
690
+ "label": "Distance Between Sessions"
691
+ },
692
+ "audio_channels_after": {
693
+ "description": "Audio channel count the item ends up with",
694
+ "label": "Audio Channels"
695
+ },
696
+ "client_name": {
697
+ "description": "Media player application",
698
+ "label": "Client/Player",
699
+ "placeholder": "e.g., Plex for iOS"
700
+ },
701
+ "concurrent_streams": {
702
+ "description": "Number of active streams from the same user",
703
+ "label": "Concurrent Streams"
704
+ },
705
+ "country": {
706
+ "description": "Geographic country",
707
+ "label": "Country",
708
+ "placeholder": "Select countries…"
709
+ },
710
+ "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"
717
+ },
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"
725
+ },
726
+ "inactive_days": {
727
+ "description": "Days since last activity",
728
+ "label": "Days Inactive"
729
+ },
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"
734
+ },
735
+ "is_local_network": {
736
+ "description": "Streaming from the local network",
737
+ "label": "Local Network"
738
+ },
739
+ "is_transcode_downgrade": {
740
+ "description": "Output resolution is lower than source",
741
+ "label": "Transcode Downgrade"
742
+ },
743
+ "is_transcoding": {
744
+ "description": "Whether video or audio streams are being transcoded",
745
+ "label": "Is Transcoding"
746
+ },
747
+ "library_item_type": {
748
+ "description": "What kind of library item it is",
749
+ "label": "Item Type"
750
+ },
751
+ "library_name": {
752
+ "description": "Name of the library it landed in",
753
+ "label": "Library",
754
+ "placeholder": "Movies"
755
+ },
756
+ "media_type": {
757
+ "description": "Type of content",
758
+ "label": "Media Type"
759
+ },
760
+ "output_resolution": {
761
+ "description": "Transcoded or delivered resolution",
762
+ "label": "Output Resolution"
763
+ },
764
+ "platform": {
765
+ "description": "Operating system",
766
+ "label": "Platform/OS"
767
+ },
768
+ "resolution_after": {
769
+ "description": "Resolution the item ends up at",
770
+ "label": "Resolution"
771
+ },
772
+ "server_id": {
773
+ "description": "Specific media server",
774
+ "label": "Server",
775
+ "placeholder": "Select servers…"
776
+ },
777
+ "source_bitrate_mbps": {
778
+ "description": "Original media bitrate",
779
+ "label": "Source Bitrate"
780
+ },
781
+ "source_resolution": {
782
+ "description": "Original media resolution",
783
+ "label": "Source Resolution"
784
+ },
785
+ "total_pause_minutes": {
786
+ "description": "Total accumulated pause time across all pause/resume cycles",
787
+ "label": "Total Pause Duration"
788
+ },
789
+ "travel_speed_kmh": {
790
+ "description": "Calculated travel speed between locations",
791
+ "label": "Travel Speed"
792
+ },
793
+ "trust_score": {
794
+ "description": "The user's trust score, from 0 to 100",
795
+ "label": "Trust Score"
796
+ },
797
+ "unique_devices_in_window": {
798
+ "description": "Number of unique devices in the time window",
799
+ "label": "Unique Devices in Window"
800
+ },
801
+ "unique_ips_in_window": {
802
+ "description": "Number of unique IP addresses in the time window",
803
+ "label": "Unique IPs in Window"
804
+ },
805
+ "user_id": {
806
+ "description": "Specific users by account",
807
+ "label": "User",
808
+ "placeholder": "Select users…"
809
+ },
810
+ "video_codec_after": {
811
+ "description": "Video codec the item ends up with",
812
+ "label": "Video Codec"
813
+ }
814
+ },
815
+ "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.",
819
+ "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"
830
+ },
831
+ "kind": {
832
+ "notification": "An alert",
833
+ "policy": "A violation"
834
+ },
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
+ "paste": {
840
+ "description": "Paste a code and review what it does before adding it.",
841
+ "title": "Paste a share code"
842
+ },
843
+ "retry": "Try again",
844
+ "scratch": {
845
+ "description": "Build it step by step.",
846
+ "title": "Start from scratch"
847
+ },
848
+ "searchPlaceholder": "Search",
849
+ "title": "New automation"
850
+ },
851
+ "import": {
852
+ "adding": "Adding it…",
853
+ "check": "Check it",
854
+ "checking": "Reading it…",
855
+ "codeShort": "Code {{fingerprint}}",
856
+ "collision": {
857
+ "add": "Keep both",
858
+ "replace": "Replace mine",
859
+ "title": "A different automation named {{name}} already exists."
860
+ },
861
+ "description": "Paste the code. Everything is in the code; Tracearr fetches nothing.",
862
+ "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."
893
+ },
894
+ "kind": {
895
+ "notification": "Alert",
896
+ "policy": "Violation"
897
+ },
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",
912
+ "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"
923
+ },
924
+ "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",
944
+ "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"
974
+ },
975
+ "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}}"
982
+ },
983
+ "recordsOnly": "Records runs only",
984
+ "scope": {
985
+ "account": "Account",
986
+ "crossServer": "Cross-server",
987
+ "global": "Global",
988
+ "person": "Person"
989
+ },
990
+ "searchPlaceholder": "Search automations…",
991
+ "sessionTargets": {
992
+ "all_except_one": {
993
+ "label": "All except one (keep oldest)",
994
+ "tooltip": "All sessions except the oldest, bringing the user down to one stream"
995
+ },
996
+ "all_user": {
997
+ "label": "All user sessions",
998
+ "tooltip": "Every active session for this user"
999
+ },
1000
+ "newest": {
1001
+ "label": "Newest session",
1002
+ "tooltip": "The user's most recently started session"
1003
+ },
1004
+ "oldest": {
1005
+ "label": "Oldest session",
1006
+ "tooltip": "The user's longest-running active session"
1007
+ },
1008
+ "triggering": {
1009
+ "label": "Triggering session",
1010
+ "tooltip": "Only the session that triggered this automation"
1011
+ }
1012
+ },
1013
+ "severity": {
1014
+ "high": "High",
1015
+ "low": "Low",
1016
+ "warning": "Warning"
1017
+ },
1018
+ "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."
1036
+ },
1037
+ "templates": {
1038
+ "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"
1042
+ },
1043
+ "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"
1047
+ },
1048
+ "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"
1052
+ },
1053
+ "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"
1057
+ },
1058
+ "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"
1062
+ },
1063
+ "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"
1067
+ },
1068
+ "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"
1072
+ },
1073
+ "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"
1077
+ },
1078
+ "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"
1082
+ },
1083
+ "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"
1087
+ },
1088
+ "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"
1092
+ },
1093
+ "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"
1097
+ },
1098
+ "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"
1102
+ },
1103
+ "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"
1107
+ },
1108
+ "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"
1112
+ },
1113
+ "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"
1117
+ },
1118
+ "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"
1122
+ },
1123
+ "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"
1127
+ },
1128
+ "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"
1132
+ },
1133
+ "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"
1137
+ },
1138
+ "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"
1142
+ }
1143
+ },
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)"
1152
+ },
1153
+ "set": {
1154
+ "label": "Set to value"
1155
+ }
1156
+ },
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
+ "filters": {
1170
+ "source": "Where it came from",
1171
+ "allSources": "Anywhere",
1172
+ "sources": {
1173
+ "builtin": "Built-in",
1174
+ "import": "Imported",
1175
+ "local": "Saved here",
1176
+ "own": "Built in the builder"
1177
+ },
1178
+ "trigger": "What starts it",
1179
+ "allTriggers": "All triggers"
1180
+ },
1181
+ "openGallery": "Open the gallery"
1182
+ },
25
1183
  "dashboard": {
26
1184
  "activeUsers": "Usuários ativos",
27
1185
  "alerts": "Atenção",
@@ -35,10 +1193,11 @@
35
1193
  "watchTime": "Tempo de Observação"
36
1194
  },
37
1195
  "debug": {
1196
+ "clearAutomations": "Delete all automations and runs",
1197
+ "clearAutomationsConfirm": "Delete every automation and all of their runs?",
38
1198
  "clearLibraryCache": "Limpar cache da biblioteca",
39
1199
  "clearMobileDevices": "Limpar dispositivos móveis",
40
1200
  "clearQueryCache": "Limpar Cache de Consulta",
41
- "clearRules": "Limpar Regras",
42
1201
  "clearServers": "Limpar Servidores",
43
1202
  "clearSessions": "Limpar Sessões",
44
1203
  "clearStuckJobs": "Limpar trabalhos travados",
@@ -226,7 +1385,6 @@
226
1385
  "noDuplicatesDesc": "No titles with more than one physical file detected.",
227
1386
  "noDuplicatesTitle": "No duplicates found",
228
1387
  "of": "de",
229
- "pageOf": "Page {{page}} of {{totalPages}}",
230
1388
  "predictions": "Previsão",
231
1389
  "recoverable": "recuperável",
232
1390
  "sameServer": "Same server",
@@ -649,83 +1807,6 @@
649
1807
  "authComplete": "Autenticação concluída",
650
1808
  "windowWillClose": "Esta janela será fechada automaticamente..."
651
1809
  },
652
- "rules": {
653
- "accountInactivity": "Inatividade da conta",
654
- "accountInactivityDesc": "Seja notificado quando os usuários não observarem nada por um período específico",
655
- "addRule": "Adicionar regra",
656
- "allowed": "Permitido",
657
- "allowedCountries": "Países permitidos",
658
- "allowlist": "Lista de permissões (só permitir estes países)",
659
- "allowlistNote": "Fluxos de qualquer outro país ativarão uma violação.",
660
- "blocked": "Bloqueado",
661
- "blockedCountries": "Países Bloqueados",
662
- "blocklist": "Lista de bloqueio (bloquear estes países)",
663
- "builder": {
664
- "destinationDisabled": "Disabled destination",
665
- "errors": {
666
- "sendNeedsDestination": "Pick at least one destination"
667
- },
668
- "noDestinations": "No destinations yet. Add one to send notifications."
669
- },
670
- "chooseTemplate": "Escolha um modelo de regra",
671
- "chooseTemplateDesc": "Selecione um tipo de regra pré-configurado para começar rapidamente.",
672
- "classicRule": "Regra Clássica",
673
- "concurrentStreams": "Fluxos simultâneos",
674
- "concurrentStreamsDesc": "Limitar o número de streams simultâneos por usuário",
675
- "createDescription": "Configure uma nova regra de detecção para os seus servidores de mídia.",
676
- "createFirstRule": "Crie sua primeira regra de detecção para começar a monitorar para o compartilhamento da conta.",
677
- "createRule": "Criar Regra",
678
- "customRule": "Regra personalizada",
679
- "days": "dias",
680
- "deleteRule": "Excluir regra",
681
- "deleteRuleConfirm": "Tem certeza que deseja excluir esta regra? Esta ação não pode ser desfeita.",
682
- "deleteRule_one": "Excluir regra {{count}}",
683
- "deleteRule_other": "Excluir Regras {{count}}",
684
- "deleteRulesConfirm": "Tem certeza que deseja excluir? Esta ação não pode ser desfeita.",
685
- "description": "Configurar regras de detecção para compartilhamento de conta e violações de políticas",
686
- "deviceVelocity": "Velocidade do dispositivo",
687
- "deviceVelocityDesc": "Detectar quando um usuário se conectar a partir de IPs demais em uma janela de tempo",
688
- "disable": "Desligado",
689
- "editRule": "Editar regra",
690
- "enable": "Habilitado",
691
- "excludeLocalNetwork": "Excluir rede local",
692
- "excludeLocalNetworkDesc": "Ignorar sessões de IPs local/privados (por exemplo, 192.168.x.x, 10.x.x.x.x)",
693
- "geoRestriction": "Restrição Geográfica",
694
- "geoRestrictionDesc": "Bloquear streaming de países específicos",
695
- "groupByDevice": "Agrupar por dispositivo",
696
- "groupByDeviceDesc": "Contar por dispositivo ao invés de IP. Impede falsos positivos de VPN, DHCP ou Canais Virtuais.",
697
- "impossibleTravel": "Viagem impossível",
698
- "impossibleTravelDesc": "Detecta quando um usuário transmite de locais muito distantes em um curto período de tempo",
699
- "inactiveFor": "Inativo para {{value}} {{unit}}",
700
- "inactivityNote": "Cria um alerta quando um usuário não estiver observando nada para este período. Verifica a hora de execução.",
701
- "inactivityPeriod": "Período de inatividade",
702
- "maxIps": "Máximo de IPs",
703
- "maxIpsDefault": "Máximo de IPs exclusivos permitidos dentro da janela de tempo. Padrão: 5 IPs em 24 horas",
704
- "maxSpeed": "Velocidade Máxima ({{unit}})",
705
- "maxSpeedDefault": "Velocidade máxima de viagem realista. Padrão: {{value}} {{unit}} (velocidade do avião)",
706
- "maxStreams": "Máximo de Streams",
707
- "maxStreamsDefault": "Máximo de streams simultâneos por usuário. Padrão: 3",
708
- "minDistance": "Distância Mínima ({{unit}})",
709
- "minDistanceDefault": "Distância mínima entre os locais para acionar. Padrão: {{value}} {{unit}}",
710
- "mode": "Modo",
711
- "months": "Meses",
712
- "noRulesConfigured": "Nenhuma regra configurada",
713
- "none": "Nenhuma",
714
- "recordsOnly": "Records violations only",
715
- "ruleName": "Nome da Regra",
716
- "ruleNamePlaceholder": "ex.: Limite de Transmissão Concorrente",
717
- "ruleType": "Tipo de regra",
718
- "selectAllowedCountries": "Selecione os países permitidos...",
719
- "selectCountriesToBlock": "Selecione países para bloquear...",
720
- "simultaneousLocations": "Localizações simultâneas",
721
- "simultaneousLocationsDesc": "Detectar quando um usuário transfere de vários locais distantes de uma só vez",
722
- "timeWindow": "Janela de Tempo (horas)",
723
- "title": "Regras",
724
- "unit": "Unidade",
725
- "updateDescription": "Atualizar a configuração da regra abaixo.",
726
- "updateRule": "Atualizar Regra",
727
- "weeks": "semanas"
728
- },
729
1810
  "settings": {
730
1811
  "destinations": {
731
1812
  "add": "Add destination",
@@ -733,17 +1814,8 @@
733
1814
  "clearSecret": "Clear",
734
1815
  "delete": "Delete",
735
1816
  "deleteConfirm": "Delete {{name}}? Rules that send to it will be blocked until they are updated.",
736
- "description": "Where notifications go. Add as many as you like; each one picks the system events it receives, and rules can send to any of them.",
1817
+ "description": "Where notifications go. Add as many as you like, and automations can send to any of them.",
737
1818
  "empty": "No destinations yet.",
738
- "events": {
739
- "plugin_update_available": "Plugin update available",
740
- "server_down": "Server down",
741
- "server_up": "Server up",
742
- "stream_started": "Stream started",
743
- "stream_stopped": "Stream stopped",
744
- "violation_detected": "Violation detected"
745
- },
746
- "eventsLabel": "Events",
747
1819
  "fields": {
748
1820
  "apiToken": "API token",
749
1821
  "apiUrl": "API URL",
@@ -759,6 +1831,8 @@
759
1831
  },
760
1832
  "ownerOnly": "Only the owner can manage notification destinations.",
761
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",
762
1836
  "reencrypt": "Re-enter this destination's secret",
763
1837
  "secretSet": "Set (leave blank to keep)",
764
1838
  "test": "Test",
@@ -829,6 +1903,7 @@
829
1903
  "noReachableConnections": "Sem conexões acessíveis",
830
1904
  "noServersFound": "Nenhum servidor Plex encontrado",
831
1905
  "noServersFoundHint": "Certifique-se de possuir pelo menos um servidor Plex",
1906
+ "reauthorizeAccount": "Reauthorize this Plex account",
832
1907
  "recommended": "Recomendados",
833
1908
  "remote": "Remoto",
834
1909
  "secure": "Seguro",
@@ -836,7 +1911,6 @@
836
1911
  "serversConnected_other": "Servidores {{count}} conectados",
837
1912
  "showAll": "Mostrar todos",
838
1913
  "unlinkAccount": "Desvincular esta conta Plex",
839
- "reauthorizeAccount": "Reauthorize this Plex account",
840
1914
  "unlinkConfirm": "Tem certeza de que deseja desvincular esta conta Plex? Você não poderá adicionar servidores a partir desta conta até que você faça o link novamente.",
841
1915
  "unlinkPlexAccount": "Desvincular a conta Plex"
842
1916
  }
@@ -878,9 +1952,7 @@
878
1952
  "backToUsers": "Voltar para Usuários",
879
1953
  "byRule": "Por / regra",
880
1954
  "linkedAccounts": "Linked accounts",
881
- "locations": "Alocações",
882
1955
  "manual": "Manualmente",
883
- "noSessionsFound": "Não foram encontradas sessões para este usuário.",
884
1956
  "noTerminationsFound": "Sem terminações de fluxo para este usuário.",
885
1957
  "noViolationsFound": "Sem violações para este usuário.",
886
1958
  "overallTrust": "Overall Trust",
@@ -892,12 +1964,16 @@
892
1964
  "splitConfirmTitle": "Split server account",
893
1965
  "statistics": "estatísticas",
894
1966
  "terminationHistory": "Histórico de rescisão",
1967
+ "title": "User Details",
895
1968
  "unknownRule": "Regra desconhecida",
896
1969
  "userInfo": "Informações do usuário",
897
1970
  "userNotFound": "Usuário não encontrado",
898
1971
  "violations": "Violações"
899
1972
  },
900
1973
  "users": {
1974
+ "filterHasAccessTo": "Has access to",
1975
+ "filterHasAccessToHint": "Shows people with an active account on every server selected.",
1976
+ "filterHasAccessToPlaceholder": "Any server",
901
1977
  "mergeConfirm": "Merge",
902
1978
  "mergeDialogDescription": "Every server account, session, and violation from the duplicate moves to the primary. The duplicate identity is deleted.",
903
1979
  "mergeDialogTitle": "Merge users",
@@ -932,8 +2008,8 @@
932
2008
  "title": "Utilizadores"
933
2009
  },
934
2010
  "violations": {
935
- "allClear": "Tudo limpo",
936
2011
  "allPeople": "All people",
2012
+ "allRules": "All rules",
937
2013
  "allSeverities": "Todas as Severidades",
938
2014
  "allStatuses": "Todos os Status",
939
2015
  "detail": {
@@ -969,8 +2045,6 @@
969
2045
  "dismissViolationsConfirm": "Tem certeza de que deseja descartar? Isto irá removê-los do registro de violação permanentemente e restaurar os pontos de confiança associados.",
970
2046
  "filterByPerson": "Filter violations by this person",
971
2047
  "filterPeople": "People",
972
- "noMatches": "Sem Correspondências",
973
- "noViolationsDetected": "Nenhuma violação de regras detectada",
974
2048
  "noViolationsFound": "Nenhuma violação encontrada",
975
2049
  "noViolationsRecorded": "Nenhuma violação foi registrada ainda.",
976
2050
  "peopleSelectedCount": "{{count}} people",
@@ -979,7 +2053,6 @@
979
2053
  "personFilterPlaceholder": "Filter by person",
980
2054
  "selectAllViolations": "Selecionar todas as {{count}} violações de filtros correspondentes",
981
2055
  "title": "Violações",
982
- "tryAdjustingFilters": "Tente ajustar seus filtros",
983
- "violationLog": "Registro de Violação"
2056
+ "tryAdjustingFilters": "Tente ajustar seus filtros"
984
2057
  }
985
2058
  }